L'unità di elaborazione centrale (abbreviazione comunemente utilizzata: "CPU" o processore centrale è una tipologia di processore digitale general purpose la quale si contraddistingue per sovrintendere tutte le funzionalità del computer digitale basato sull'architettura di von Neumann o sull'architettura Harvard.
È detta unità centrale di elaborazione perché coordina in maniera centralizzata tutte le altre unità di elaborazione presenti sulle moderne architetture hardware dei computer ovvero i chip di elaborazione delle varie periferiche interne o schede elettroniche (scheda audio, scheda video, scheda di rete) (es.coprocessore e processore di segnale digitale).
Struttura della CPU Una generica CPU contiene:
- un'unità di controllo (anche nota con l'acronimo "CU") che legge dalla memoria le istruzioni, se occorre legge anche i dati per l'istruzione letta, esegue l'istruzione e memorizza il risultato se c'è, scrivendolo in memoria o in un registro della CPU.
- un'unità aritmetica e logica (anche nota con l'acronimo "ALU") che si occupa di eseguire le operazioni logiche e aritmetiche;
- dei registri, speciali locazioni di memoria interne alla CPU, molto veloci, a cui è possibile accedere molto più rapidamente che alla memoria: il valore complessivo di tutti i registri della CPU costituisce lo stato in cui essa si trova attualmente. Due registri sempre presenti sono:
- il registro IP (Instruction Pointer) o PC (Program Counter), che contiene l'indirizzo in memoria della prossima istruzione da eseguire;
- il registro dei flag: questo registro non contiene valori numerici convenzionali, ma è piuttosto un insieme di bit, detti appunto flag, che segnalano stati particolari della CPU e alcune informazioni sul risultato dell'ultima operazione eseguita. I flag più importanti sono:
- Flag di stato:
- Overflow: indica se il risultato dell'operazione precedente era troppo grande per il campo risultato: 0 assenza di overflow, 1 overflow
- Zero: vale 1 se l'ultima operazione ha avuto risultato zero, altrimenti vale 0.
- Carry: vale 1 se l'ultima operazione ha ecceduto la capacità del registro che contiene il risultato, altrimenti vale 0 (esempio: in un registro a 8 bit, che può rappresentare solo numeri da 0 a 255, la somma 178+250 darebbe come risultato 172, cioè 428 - 256, e il carry verrebbe posto a 1 insieme al flag di overflow).
- Segno: indica il segno del risultato dell'operazione precedente: 0 risultato positivo, 1 risultato negativo
- Flag di controllo:
- Interrupt: se a questo flag viene assegnato valore 1, la CPU smette di rispondere alle richieste di servizio esterne delle periferiche (i segnali delle linee IRQ) finché non viene ripristinato al valore 0, o finché non arriva dall'esterno un segnale di RESET.
- Flag di stato:
CICLO MACCHINA
Tipicamente la CPU è l'Interprete del linguaggio macchina. Come tutti gli interpreti, si basa sul seguente ciclo:
- Acquisizione dell'istruzione (Instruction Fetch): il processore preleva l'istruzione dalla memoria, presente nell'indirizzo (tipicamentelogico) specificato da un registro "speciale" ("speciale" opposto di "generico"), il PC
- Decodifica (Operand Assembly): una volta che la word è stata prelevata, viene determinata quale operazione debba essere eseguita e come ottenere gli operandi, in base ad una funzione il cui dominio è costituito dai codici operativi (tipicamente i bit alti delle word) ed il codominio consiste nei brani di microprogramma da eseguire
- Esecuzione (Execute): viene eseguita la computazione desiderata. Nell'ultimo passo dell'esecuzione viene incrementato il PC: tipicamente di uno se l'istruzione non era un salto condizionale, altrimenti l'incremento dipende dall'istruzione e dall'esito di questa
0 commenti:
Posta un commento