Dunque hai chiesto:
Perchè trovo su diverse dispense che la CPU è formata da due componenti (CU e ALU) e poi scopro che esistono anche i REGISTRI di memoria? è perchè sono interni alla CU e all'ALU?
Risposta:
La CU è la Central Unit e si occupa di controllare i trasferimenti di dati dalla CPU e interni alla stessa, l'ALU è l'unità che si occupa dei calcoli. Queste sono da intendersi come unità logiche. Nelle CPU moderne possono esistere anche più di una ALU ma deve esistere una sola CU (o meglio una sola per Core + una di supervisione). Ora i registri, sai che i dati per essere elaborati devono essere sulla memoria volatile (RAM) per poter essere letti velocemente, stessa cosa accade per le istruzioni da eseguire. Ma questo non è tutto esistono operazioni della CPU che sono di fatto iterazioni di operazioni più semplici, inoltre alla CPU occorre conoscere una certa serie di informazioni per operare correttamente. Siccome sia il Bus, sia la RAM, sia la Cache seppur veloci sono molto lente in relazione alla velocità della CPU per non fare rallentare la CPU durante l'elaborazione con inutili accessi in memoria, in essa sono state sistemate delle allocazioni specifiche, pertanto ad accesso virtualmente a tempo 0 che sono chiamate registri. Alcuni di questi hanno un compito specifico, come ad esempio il program counter o lo stack pointer, altri no. Alcuni vengono usati per i controlli altri per le elaborazioni, ecc.
Poi scopro che esiste anche il clock: ma dove si trova, anche lui all'interno di CU o ALU?
In nessuna delle due, il clock è un chip sulla motherboard del PC, ha come unico scopo fornire il sincronismo a tutte le periferiche del PC, infatti questo Chip da un segnale ripetitivo su un apposito pin della CPU sulla quale essa si sincronizza e tramite il quale la stessa definisce i cicli interni e la loro durata.
E poi, leggo che il clock serve a sincronizzare le operazioni della CPU: ma come funziona esattamente?
Vedi sopra
Come funziona quindi la CPU nell'eseguire il suo ciclo macchina (si chiama così) ? Meglio se mi spiegate con un esempio!
Beh di fatto il suo ciclo macchina è composto da ciò che può fare in un intervallo di tempo fra due segnali di clock, e non da ciò che fa, esistono infatti istruzioni che hanno bisogno di più cicli macchina per poter essere eseguite, infatti se guardi le specifiche di una CPU con le istruzioni, la loro durata è espressa da un numero intero che è il numero di cicli macchina nei quali essa viene eseguito.
Per farti un esempio da chiarirti meglio il funzionamento:
Diciamo che hai un programma con un'istruzione macchina che dice di fare un trasferimento di 2 byte in un registro a 16 bit della CPU (ld o mv in Assembler), arriva un segnale di clock, la CU legge il Program Counter va in memoria all'allocazione riportata, legge l'istruzione che deve eseguire, aggiunge al PC il numero di byte di cui è composta l'istruzione che ha letto tramite una sua unità interna e aggiorna il PC. Nel frattempo predispone l'accesso in memoria e il registro per il caricamento del dato, manda l'ordine all'unità di memoria di mettere il suo dato sul bus e dice al registro di leggere quello che c'è sul bus al momento giusto. Il tutto viene gestito attraverso sincronismi dati dal segnale di clock e variano da CPU a CPU.
E come fa la ALU a fare le operazioni matematiche?
La ALU opera solo sui registri, e per associazioni logiche bit a bit o byte a byte fra due valori di 2 registri. E se succede qualche cosa di inatteso usa il registro di flag. Per estrapolare il risultato di una operazione viene fatta una combinazione fra il contenuto del registro in cui viene messo il risultato detto anche accumulatore, e quello del registro coi flag. Per essere più specifico dovremmo parlare di una singola CPU.
Appena si accende il PC come fa la CPU a capire quale operazione far partire per prima?
Infatti non è la CPU a saperlo, lei sa solo che deve accedere a un certo indirizzo di memoria, che le viene passato attraverso il PC da un altro chip un DMA comandato da quello che contiene il Bios e lo manda in esecuzione. Dopodichè la CPU non fa altro che interpretare ciò che legge all'allocazione in questione.
2007-03-05 00:59:28
·
answer #1
·
answered by Anonymous
·
5⤊
1⤋
purtroppo non e' cosi' facile, per entrare nel livello di dettaglio che desideri, ci andrebbe molto tempo e molto spazio per scrivere, si dovrebbe introdurre oltre ai registri, la cache, concetti di paginazione, memoria virtuale, e soprattutto di pipe e parallelizzazione delle istruzioni,mi piacerebbe riuscire a riassumerti tutto in poche righe ma mi e' proprio impossibile, vorrebbe dire riassumere corsi di interi periodi universitari in poche righe. L'unico consiglio che ti posso dare, se sei curioso di conoscere bene questo argomento, e di partire dalla storia, nel senso prima di cercare di capire come funziona il P4, cerca di capire il funzionamento dei vecchi 8086, 80286 etc... perche racchiudono molte delle idee tuttora usate ma ovviamente molto piu' semplificate.... buono studio allora
2007-03-05 07:09:30
·
answer #2
·
answered by geppoz 2
·
3⤊
1⤋