220 likes | 377 Views
Il Processore. Il processore è la componente dell’unità centrale che elabora le informazioni contenute nella memoria principale L’elaborazione avviene eseguedo sequenze di istruzioni ( istruzioni macchina ) Il linguaggio in cui si scrivono queste istruzioni viene chiamato linguaggio macchina
E N D
Il Processore • Il processore è la componente dell’unità centrale che elabora le informazioni contenute nella memoria principale • L’elaborazione avviene eseguedo sequenze di istruzioni (istruzioni macchina) • Il linguaggio in cui si scrivono queste istruzioni viene chiamato linguaggio macchina • Il ruolo del processore è quindi quello di eseguire programmi in linguaggio macchina
REGISTRI Bus Interno Program Counter (PC) Registro di Stato (PS) Unità di Registro Istruzioni (RI) Controllo Registri Generali (16 o 64) Unità Aritmetico- Registro Indirizzi Memoria (RIM) Logica Registro Dati Memoria (RDM) Registro di Controllo (RC) Componenti di un processore
L’unità di controllo • L’Unità di Controllo (UC) si occupa di coordinare le diverse attività che vengono svolte all’interno del processore • Il processore svolge la sua attività in modo ciclico: ad ogni ciclo corrisponde l’esecuzione di una istruzione macchina • Ad ogni ciclo vengono svolte diverse attività controllate e coordinate dalla UC • si legge dalla memoria principale la prossima istruzione da eseguire • si decodifica l’istruzione letta • si esegue l’istruzione
La frequenza con cui vengono eseguiti i cicli di esecuzione è scandita da una componente detta clock • Ad ogni impulso di clock la UC esegue una istruzione macchina • La velocità di elaborazione di un processore dipende dalla frequenza del suo clock • I processori attuali hanno valori di frequenza di clock che variano tra i 100 MHz e 1000 MHz (tra 100 milioni e 1miliardo di impulsi al secondo)
Il Processore: i registri • Il processore contiene al suo interno un certo numero di registri (unità di memoria estremamente veloci) • Le dimensioni di un registro sono tipicamente quelle di una parola di memoria (ad esempio 4 o 8 byte)
Esistono due tipi di registri: • i registri speciali utilizzati dalla UC per scopi particolari: • controllo dell’esecuzione del programma • scambio di dati con la memoria centrale • i registri generali (registri aritmetici)
I registri speciali • PC: program counter, contiene l’indirizzo della prossima istruzione da eseguire • RI: registro istruzioni, contiene l’istruzione in esecuzione • PS: process state, informazione sullo stato dell’esecuzione e possibili errori • RIM: registro indirizzi di memoria, contiene l’indirizzo di memoria della cella (parola) in esame
RDM: registro dati memoria, contiene il dato da trasferire in o dalla cella di memoria in esame • RC: registro di controllo, contiene il codice dell’istruzione da eseguire
Codice op. Argomento1 Argomento2 100 Formato istruzione (esempio) Gli argomenti possono essere indirizzi
La memoria principale (RAM) 0 cod. op.mem. Ind1/Reg1 Ind2/Reg2 1 2 istr. lettura (load)/scrittura (store) in memoria-registri ... cod. op. reg. Reg1 Reg2 istr. per operazione tra due registri ... + -2 00003752 k numero rappr.con segno, esponente e mantissa
PS:= start PC:= ind. 1a istr. inizio RI:= istr ind. in PC PC:=PC+1 RC:= cod. istr. in RI esegui istruzione no PS = stop? si fine Il ciclo di esecuzione
RC load RIM:= ind. arg. in RI RDM:= cont. ind. in RIM store ... add R1:= R1+R2 jump PC:= ind. arg. in RI ... stop PS:= stop Esecuzione istruzione
Load 3568 R1 Add R1 R2 Store R1 3568 Jump 1000 1000 R1 1001 R2 30 1002 1003 44 3568
Load 3568 R1 Add R1 R2 Store R1 3568 Jump 1000 1000 R1 44 1001 R2 30 1002 1003 44 3568
Load 3568 R1 Add R1 R2 Store R1 3568 Jump 1000 1000 R1 74 1001 R2 30 1002 1003 44 3568
Load 3568 R1 Add R1 R2 Store R1 3568 Jump 1000 1000 R1 74 1001 R2 30 1002 1003 74 3568
Load 3568 R1 Add R1 R2 Store R1 3568 Jump 1000 1000 R1 74 1001 R2 30 1002 1003 74 3568
Esecuzione di (Load, 3568,R1) • PC = 1000 • RC = Load • RIM = 1000 • RDM = (Load, 3568, R1) • RI = (Load, 3568, R1) • PC = 1001 • RC = Load • RIM = 3568 • RDM = 44 • R1 = 44 Lettura dell’istruzione all’indirizzo 1000
Esecuzione di (Add, R1,R2)Supponendo che R2 contenga il numero 30 • PC = 1001 • RC = Load • RIM = 1001 • RDM = (Add, R1,R2) • RI =(Add, R1,R2) • PC = 1002 • RC = Add Viene attivata la ALU • R1 = 44+30 = 74
Esecuzione di (Store, R1, 3568) • PC = 1002 • RC = Load • RIM = 1002 • RDM = (Store, R1, 3568) • RI = (Store, R1, 3568) • PC = 1003 • RC = Store • RIM = 3568 • RDM = 74 • Nella locazione 3568 viene scritto il numero 74
Esecuzione di (Jump 1000) • PC = 1003 • RC = Load • RIM = 1003 • RDM = (Jump 1000) • RI = (Jump 1000) • PC = 1004 • RC = Jump • PC = 1000
L’Unità Aritmetico-Logica • L'Unità Aritmetico-Logica (ALU) è costituita da un insieme di circuiti in grado di svolgere le operazioni di tipo aritmetico e logico • La ALU legge i dati contenuti all'interno dei registri generali, esegue le operazioni e memorizza il risultato in uno dei registri generali • Ad esempio, vi sono circuiti in grado di eseguire la somma di due numeri binari contenuti in due registri e di depositare il risultato in un registro, circuiti in grado di eseguire il confronto tra due numeri • In alcuni elaboratori oltre alla ALU si può avere un processore specializzato per effettuare operazioni matematiche particolari (floating point), il coprocessore matematico