CPU
La CPU (Central Processing Unit) contiene i componenti fondamentali per la gestione del calcolatore. Descritta dalla macchina di Von Neumann è composta da quattro parti di cui due logiche e due di memoria:
- CU (Control Unit) Dirige tutte le funzioni, decodificando e ordinando le istruzioni da compiere. Contiene anche le micro-istruzioni conosciute dalla CPU
- ALU (Unità logica aritmetica) Si occupa di effettuare tutti i calcoli ordinati dalla CU
- Registri: Sono piccole ma velocissime memorie che vengono sfruttate per immagazzinare piccoli dati.
- Clock (Orologio di sistema) Si occupa di sincronizzare tutte le operazioni
Le prestazioni di una CPU (o processore) vengono misurate in frequenze di clock. I computer moderni (2007) sono CPU in grado di eseguire Miliardi di istruzioni al secondo (1 GHz). Nel Corso di Architetture si possono reperire maggiori informazioni sul quantitativo di istruzioni che un processore è stato in grado di eseguire nel tempo.
Registri
modificaUn registro è una unità di memoria veloce interna alla CPU (al processore). Nell' architettura MIPS la dimensione di questi registri è di 32bits. Taluni di questi registri sono stati assegnati a funzioni particolari ovvero al controllo di taluni tipi di informazioni.
Una classificazione dei registri di una CPU potrebbe essere il seguente:
- AX (Accumulatore): vengono salvate tutti i dati necessarie alle operazioni matematiche. Normalmente è il più utilizzato.
- BX (Base): viene utilizzato come puntatore ad altre istruzioni. Spesso è utilizzato per indicare l'istruzione successiva.
- CX (Contatore): viene utilizzato quando si eseguono cicli.
- DX (Data): vengono salvati tutti i dati di operazioni I/O oppure i dati in eccesso ad AX.
- CS (Code Segment): è destinato a contenere parte dell'eseguibile in linguaggio macchina.
- SS (Stack Segment): area dedicata allo Stack
- DS (Data Segment): può essere utilizzato dal programmatore per salvare dati particolari (memoria limitata a 64kb!)
- ES (Extra Segment): può essere utilizzato con particolari restrizioni come supplemento del DS
- IP (Istruction Pointer): puntatore speciale a CS
- SP (Stack Pointer): puntatore speciale a SS
- BP (Sbase Pointer): un altro puntatore speciale a SS
- SI (Source Index): puntatore all'area di input
- DI (Destination Index): puntatore all'area di output
Esistono altri 9 registri, ma vengono utilizzati solo nella programmazione Assembly.
- MAR (Memory Address Register) vengono indicati gli indirizzi per l'accesso alla memoria. Questo registro è in sola lettura da parte della memoria stessa.
- MBR (Memory Buffer Register - o anche MDR, Data Register) viene scritto il valore del dato che viene letto/scritto dalla/nella memoria
- PC (Program Counter) indica l'indirizzo dell'istruzione in esecuzione
- H (Primo Input della ALU) viene utilizzato per memorizzare il primo dei due operatori della ALU
- MPC (Micro-Program Counter) indica l'indirizzo della microistruzione in esecuzione