Struttura del processore. Funzionamento del processore

Похожие документы
Introduzione alla Microprogrammazione

Esercizio n. 7 - Microcodice

Architettura degli elaboratori Tema d esame del 20/01/2016

Elementi di informatica

Architettura del calcolatore (Seconda parte)

Introduzione all'architettura dei Calcolatori. Maurizio Palesi

Architettura degli elaboratori - CPU multiciclo A.A. 2016/17. Architettura degli elaboratori

Richiami sull architettura del processore MIPS a 32 bit

Architettura degli elaboratori

Esercizi su microistruzioni. 1 Esercizi con architettura a 1 bus

Architettura del Calcolatore

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni

Componenti principali

Richiami sull architettura del processore MIPS a 32 bit

che vengano generati nell ordine corretto i sistema (es., la memoria, l unità aritmetico-

CPU a ciclo multiplo

Il processore. Istituzionii di Informatica -- Rossano Gaeta

L unità di controllo di CPU a singolo ciclo

Componenti e connessioni. Capitolo 3

Elementi di informatica

Componenti di un processore

L'architettura del processore MIPS

1 Esercizi con architettura a 1 bus

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

Il processore: unità di controllo

CPU pipeline hazards

ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).!

Architettura del Calcolatore

Struttura CPU. Struttura e Funzione del Processore. Capitolo 12. Compiti CPU:

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche

Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini

Il Processore: l unità di controllo

ISA DLX: Implementazione Tramite Struttura Sequenziale

Corso di Laurea in Informatica Architetture degli Elaboratori

Corso di Laurea in Informatica Architetture degli Elaboratori

Architettura hardware

Транскрипт:

Struttura del processore L unità di elaborazione Funzionamento del processore. Prelievo dell istruzione dalla memoria al processore (dall indirizzo indicato dal PC al registro di istruzione IR) IR [[PC]] 2. Incremento del PC PC [PC] + 4 3. Esecuzione dell istruzione - 2 - Pag.

Struttura del processore con un solo bus interno bus interno del processore ordini PC linee di indirizzo bus di memoria linee di dato MAR MDR decodificatore di istruzioni e circuito di controllo IR costante 4 V R select MUX linee di comando della ALU add sub and A ALU R B riporto in ingresso R n TEMP Z - 3 - Registri MDR: Memory Data Register (che cosa va scritto in memoria/si è letto dalla memoria) MAR: Memory Address Register (dove si scrive/da dove si legge in memoria) registri di interfacciamento con la memoria R,, R n- registri vari (es.: SP, FP) V, Z, TEMP: depositi temporanei di dati e risultati parziali ALU: unità aritmetico logica - 4 - Pag. 2 2

Istruzioni macchina Lettura di un registro e scrittura del suo contenuto in un altro registro o invio verso la ALU Operazione aritmetico logica tramite la ALU e scrittura del risultato in un registro Lettura di una parola di memoria e scrittura del contenuto in un registro (caricamento) Lettura di un registro e scrittura del contenuto in una parola di memoria (memorizzazione) Combinazione delle suddette istruzioni - 5 - Trasferimento di registro Ogni registro Ri è comandato da due segnali Ri in e Ri out Quando Ri in è a il segnale presente sul bus interno viene salvato nel registro Quando Ri out è a il contenuto del registro viene emesso sul bus Gli ordini vengono dati all inizio del ciclo di clock e i valori vengono salvati alla fine del ciclo, sul nuovo fronte di salita - 6 - Pag. 3 3

Figura 8-2: 8 collegamenti di ingreso e uscita dei registri bus interno del processore Riin R i Riout V in V costante da 4 bit select MUX A A LU R B Z in Z - 7 - Z out Esempio: trasferimento da R a R4 R out viene posto a per attivare l uscita di R e il suo contenuto viene emesso sul bus R4 in viene posto a per attivare l ingresso di R4, che riceve il valore presente sul bus - 8 - Pag. 4 4

Operazioni aritmetico logiche Svolte dalla ALU, che è un circuito di natura combinatoria, senza stato interno L ingresso A della ALU è una costante oppure il contenuto del registro V (scelta tramite il segnale di selezione) L ingresso B della ALU proviene dal bus interno L operazione da eseguire è determinata dai segnali di controllo della ALU - 9 - Esempio Si vuole sommare i contenuti di R e di R2 e scrivere il risultato in R3 I segnali da attivare nei vari passi sono:. R out, V in 2. R2 out, select V, add, Z in 3. Z out, R3 in - - Pag. 5 5

Caricamento di parola Il registro che contiene i dati che il processore riceve dalla memoria è MDR MDR è collegato sia col bus interno al processore, sia col bus esterno MDR ha quindi quattro segnali di controllo: MDR out MDR in MDR oute MDR ine - - Collegamenti e segnali di MDR linee di dato del bus esterno di memoria MDR oute MDR out bus interno del processore MDR MDR ine MDR in - 2 - Pag. 6 6

Attesa della memoria Occorre un comando ausiliario: WMFC (wait for memory function completion) Il processore deve attendere il completamento del trasferimento da parte della memoria WMFC è l istruzione che pone il processore in attesa della memoria - 3 - Esempio: MOVE (R), R2 Leggere la cella di memoria all indirizzo indicato da R e scriverne il contenuto in R2:. R out, MAR in, read 2. MDR ine, WMFC 3. MDR out, R2 in - 4 - Pag. 7 7

passo 2 3 clock 2 3 4 5 MARin indirizzo read R / W MDRinE dato MFC (riscontra) MDRout - 5 - Memorizzazione di parola Si procede in maniera analoga, ma nella direzione opposta: da registro del processore verso la memoria Esempio: move R2, (R). R out, MAR in 2. R2 out, MDR in, write 3. MDR oute, WMFC - 6 - Pag. 8 8

Esempio: add (R3),R L istruzione consta della seguente sequenza:. Prelevamento dell istruzione dalla memoria 2. Lettura del primo addendo 3. Somma del contenuto di R con la parola letta 4. Scrittura del risultato in R - 7 - add (R3),R. PC out, MAR in, read, select 4, add, Z in 2. Z out, V in, WMFC 3. MDR out, IR in 4. R3 out, MAR in, read 5. R out, V in, WMFC PRELIEVO DELL ISTRUZIONE 6. MDR out, select V, add, Z in 7. Z out, R in, end - 8 - Pag. 9 9

Altre istruzioni (fetch( già eseguito) MOVE (R), R R out, MAR in, Read WMFC MDR out, R in, end MOVE #LABEL,R (istruzione codificata su 2 parole) PC out, MAR in, Read, select 4, Add, Z in, WMFC MDR out, R in, end BRA ETICHETTA (long istruzione codificata su 2 parole) PC out, MAR in, Read, select 4, Add, Z in, V in,wmfc MDR out, select V, Add, Z in, end - 9 - Le istruzioni ISA di salto condizionato PC out, MAR in, Read, select 4, Z in Add, V in, WMFC (Wait for Memory Function Completion) MDR out, IR in BRA ETICHETTA (long istruzione codificata su 2 parole) PC out, MAR in, Read, select 4, Add, Z in, V in,wmfc MDR out, select V, Add, Z in, end Bcc < OFFSET (long istruzione codificata su 2 parole) PC out, MAR in, Read, select 4, Add, Z in, V in,wmfc, if bit N= end MDR out, select V, Add, Z in, end - 2 - Pag.

Figura 8-: 8 struttura del processore con un solo bus interno bus interno del processore ordini PC linee di indirizzo bus di memoria linee di dato MAR MDR decodificatore di istruzioni e circuito di controllo IR costante 4 V R select MUX linee di comando della ALU add sub and A ALU R B riporto in ingresso R n TEMP Z - 2 - Istruzioni di salto Il contenuto del PC viene calcolato come somma del suo valore con uno spiazzamento che è argomento dell istruzione di salto stessa:. PC out, MAR in, read, select 4, add, Z in 2. Z out, V in, WMFC 3. MDR out, IR in PRELIEVO DELL ISTRUZIONE 4. Offset field of IR out, add, Z in 5. Z out, end - 22 - Pag.

Istruzione di salto condizionato (branch < ). PC out, MAR in, read, select 4, add, Z in 2. Z out, V in, WMFC 3. MDR out, IR in 4. Offset field of IR out, add, Z in, if (N=) then end 5. Z out, end - 23 - Struttura con bus multipli Nel processore con un solo bus interno, solo un dato può essere trasferito per ogni ciclo di clock La dotazione di bus interni multipli permette l accelerazione l esecuzione di molte istruzioni - 24 - Pag. 2 2

Struttura a tre bus Con tre bus interni (A,B,e C) i primi due possono essere usati per trasmettere gli operandi alla ALU, e il terzo per trasportare il risultato La ALU può trasmettere in uscita uno dei due operandi, senza modificarlo, riemettendolo sul bus C (R = A, R = B) I registri sono raggruppati in un banco V e Z non servono più Il PC è incrementato da una nuova unità - 25 - Figura 8-8: 8 8: processore con 3 bus bus A bus B bus C incrementatore PC banco di registri costante 4 M U X A B ALU R decodificatore di istruzioni IR MDR MAR linee di - 26 - dato linee di indirizzo Pag. 3 3

Esempio: add R4,R5,R6 Si sommano i contenuti di R4 e di R5 e il risultato viene scritto in R6:. PC out, R = B, MAR in, read, increment PC 2. WMFC PRELIEVO DELL ISTRUZIONE 3. MAR outb, R = B, IR in 4. R4 outa, R5 outb, select A, add, R6 in, end - 27 - bus interno del processore ordini PC linee di indirizzo bus di memoria linee di dato MAR MDR decodificatore di istruzioni e circuito di controllo IR costante 4 V R select MUX linee di comando della ALU add sub and A ALU R B riporto in ingresso R n TEMP Z - 28 - Pag. 4 4

Data-path ad un solo bus interno Faremo riferimento ad una generica CPU e a una memoria con parole da 32 bit I registri: PC; MAR/MDR (di appoggio per accesso a memoria); IR (istruzione in esecuzione); R Rn; TEMP, V, Z (non visibili da assembler); L unità di controllo: Decodifica le istruzioni; emette i segnali di controllo interni e esterni (bus per accesso a memoria e periferiche); può essere cablata o microprogrammata. - 29 - Sequenza di controllo La sequenza di controllo per eseguire una istruzione assembler è composta da passi, uno per ogni ciclo di clock del processore. Per eseguire UNA istruzione assembler sono generalmente necessari più passi della sequenza di controllo, almeno per: fetch; decode; execute Ad ogni passo vengono generati gli ordini (attivi in parallelo) Esempi di ordini Lettura di un registro (dal registro al bus interno) Scrittura su un registro (dal bus interno al registro) Operazione dell ALU: add, sub,... Lettura e scrittura su memoria: read, write Ordini mutuamente esclusivi Lettura da registro: un solo registro alla volta può essere portato sul bus interno Operazione dell ALU... - 3 - Pag. 5 5

Collegamenti registri e bus Riin bus interno del processore Ingresso e uscita del registro Ri sono collegati al bus interno tramite due segnali Ri in e Ri out Quando Ri in = il contenuto del bus viene scritto in Ri Quando Ri out = il contenuto di Ri viene emesso sul bus. select costante da 4 bit MUX R i V Riout V in A ALU R B Z in Z Z out - 3 - Sequenza di controllo Esempi di ordini Lettura di un registro (dal registro al bus interno) R out Scrittura su un registro (dal bus interno al registro) R in Operazione dell ALU: add, sub,... Lettura e scrittura su memoria: read, write Ordini mutuamente esclusivi Lettura da registro: un solo registro alla volta può essere portato sul bus interno Operazione dell ALU... Esempio: ipotizzando il fetch già completato, consideriamo l istruzione MOVE.L R, R R out, R in - 32 - Pag. 6 6

Sequenza di controllo completa Consideriamo l istruzione ASM ADD R, R Fetch (identica per tutte le istruzioni): PC out, MAR in, Read, select 4, Z in Add, V in, WMFC (Wait for Memory Function Completion) MDR out, IR in Decode: decodificare l IR; eventualmente recuperare le parole di memoria aggiuntive (se necessario) e riaggiornare il PC. Execute: R out, V in R out, Add, Z in, R in, end /* goto(fetch) - 33 - Accesso a memoria e/o dispositivo di I/O Riscontro del completamento dell operazione Segnale MFC (Memory function completion) E attivato dallo slave e indica il completamento dell operazione Ad esempio in lettura indica che il dato è presente sul bus Ordine WMFC (wait for MFC): questo ordine blocca l avanzamento dei passi di controllo finchè il processore non riceve il segnale FMC. Lettura da memoria: l uso del registro MDR può avvenire solo al passo successivo a quello associato a WMFC. In generale quindi l ordine WFMC viene emesso al passo precedente a quello in cui si utilizza il registro MDR Scrittura in memoria: l ordine WMFC viene emesso in generale nello stesso passo in cui viene emesso il segnale di write Clock e temporizzazione: Il fronte attivo per la memorizzazione in un registro è quello di salita - 34 - Pag. 7 7

Il registro MDR linee di dato del bus esterno di memoria MDRoutE MDRout bus interno del processore MDR MDRinE MDRin - 35 - passo 2 3 Lettura da memoria clock 2 3 4 5 MARin indirizzo read R / W MDRinE dato MFC (riscontra) MDRout - 36 - Pag. 8 8

Altre istruzioni (fetch( già eseguito) MOVE (R), R R out, MAR in, Read WMFC MDR out, R in, end MOVE #LABEL,R (istruzione codificata su 2 parole) PC out, MAR in, Read, select 4, Add, Z in, WMFC MDR out, R in, end BRA ETICHETTA (long istruzione codificata su 2 parole) PC out, MAR in, Read, select 4, Add, Z in, V in,wmfc MDR out, select V, Add, Z in, end - 37 - Le istruzioni ISA di salto condizionato PC out, MAR in, Read, select 4, Z in Add, V in, WMFC (Wait for Memory Function Completion) MDR out, IR in BRA ETICHETTA (long istruzione codificata su 2 parole) PC out, MAR in, Read, select 4, Add, Z in, V in,wmfc MDR out, select V, Add, Z in, end Bcc < OFFSET (long istruzione codificata su 2 parole) PC out, MAR in, Read, select 4, Add, Z in, V in,wmfc, if bit N= end MDR out, select V, Add, Z in, end - 38 - Pag. 9 9

Struttura del processore L unità di controllo Unità di controllo L unità di controllo emette i segnali di controllo (ordini) che regolano il funzionamento del data-path. L unità di controllo può essere: cablata: costruita ad-hoc; basata su decodificatore di istruzioni (che utilizza l IR), contatore (per scandire la successione dei passi di controllo), codici di condizione, segnali esterni e rete combinatoria in grado di generare gli ordini ad ogni passo di controllo. microprogrammata: decodifica le istruzioni e legge in una memoria di controllo (control-store) tramite micropc una microparola con i segnali di controllo da emettere. - 4 - Pag. 2 2

Unità di controllo cablata clock blocca il conteggio contatore passi di controllo decodificatore di passo ripristina lo stato iniziale T T 2 T n IR decodificatore di istruzione ISTR ISTR 2 ISTR m generatore di ordini segnali esterni bit di esito (codici di cond.) run (WMFC) end - 4 - ordini Unità di controllo cablata Z in = PC out = T OR T4 AND "IR=branch" OR T5 AND "IR=add" OR... T OR T3 OR T4 AND "IR=branch" OR... - 42 - Pag. 2 2

Generazione segnale Z in branch add T 4 T 6 T Z in - 43 - Unità di controllo microprogrammata Il comportamento dell unità di controllo microprogrammata dipende esclusivamente dal contenuto della memoria di controllo (control store). I segnali di controllo di ogni passo sono memorizzati in una parola di memoria della control store Ogni parola di memoria viene chiamata micro-istruzione La sequenza di microistruzioni corrispondenti ai passi di controllo per l esecuzione di un istruzione ISA costituisce una microroutine L insieme di microroutine costituisce il microprogramma I calcolatori dove è possibile modificare il contenuto del control store sono detti microprogrammabili. - 44 - Pag. 22 22

Esempio di control store μ istruz. 2 PCin PCout MARin read MDRout IRin Vin select add Zin Zout Rout Rin R3out WMFC end 3 4 5 6 7-45 - Struttura unità di controllo μprogrammata IR generatore di μ indirizzo iniziale e di micro salto ingressi esterni (bus) bit di esito (codici di cond.) clock μ PC memoria di μ programma - 46 - μ istruzione (ordini al processore) Pag. 23 23

Esempio di micro routine. PC out, MAR in, Read, select 4, Z in Add 2. Z out, V in,wmfc 3. MDR out, IR in 4. Salta al microindirizzo della micro routine appropriata... 25.PC out, MAR in, Read, select 4, Add, Z in 26.Z out, V in,wmfc, if bit N= end (goto microistr. ) 27.MDR out, select V, Add, Z in 28.Z out, end (goto microistr. ) - 47 - Formato μistruzione (codificata) μ istruzione suddivisa in campi di bit C i (C i codifica un gruppo di ordini mutuamente esclusivi) C C 2 C 3 C 4 C 5 C 6 C 7 C 8-48 - Pag. 24 24

Formato μistruzione (codificata) - 49 - Formato μistruzione (codificata) - 5 - Pag. 25 25

Salti e calcolo del prossimo microindirizzo () Per ottimizzare la struttura del microcodice Riuso di parti del microcodice per scrivere le micro routine associate alla fase di esecuzione di ogni istruzione ISA Ad esempio per gestire le varie modalità di indirizzamento parti comuni a diverse modalità di indirizzamento Tecnica: mascheratura del microindirizzo Il microindirizzo generale (o base) viene modificato mascherando alcuni bit per generare gli indirizzi corretti (vedi figura 8.2) - 5 - Salti e calcolo del prossimo microindirizzo (2) Aumento delle prestazioni Le microistruzioni di salto non svolgono alcuna operazione utile ma pilotano solo il flusso di esecuzione del programma (altrimenti governato dal micro PC) Sono cicli macchina persi ai fini dell esecuzione di una istruzione ISA Soluzione alternativa di gestione del sequenziamento Ogni microistruzione contiene il microindirizzo di quella successiva da eseguire Il sequenziamento puro è tradotto in un micro salto ed è inutile il registro micro PC E chiaro che i salti condizionati rimangono - 52 - Pag. 26 26

IR ingressi esterni (bus) bit di esito (cod. di cond.) circuiti di mascheratura e decodifica schiera di porte OR μ MAR memoria di μ programma μ indirizzo campi di μ istruzione μ IR decodificatore di μ ordini μ ordini controllo delle funzioni (diretti al processore) di mascheratura e - 53 - decdifica del μ indirizzo Formato μistruzione (codificata) μ istruzione suddivisa in campi di bit C i (C i codifica un gruppo di ordini mutuamente esclusivi) C C C2 C3 C4 C5 C6 C7 C8 C9 C - 54 - Pag. 27 27

Formato μistruzione (codificata) - 55 - Formato μistruzione (codificata) - 56 - Pag. 28 28

Esempio di memoria di controllo ind. ottale C C C 2 C 3 C 4 C 5 C 6 C 7 C 8 C 9 C 2 3 2 2 2 7 7 7 2 7 3-57 - Figura 8.25-58 - Pag. 29 29

Struttura del processore L unità di elaborazione a tre bus Costi vs prestazioni La definizione della microarchitettura dipende da un compromesso tra costi e prestazioni. Incremento della prestazioni determinato da: tecnologia; architettura. Costi difficili da definire (progetto, dimensioni, produzione, resa...). - 6 - Pag. 3 3

Incremento delle prestazioni Ipotesi: definite tecnologia e ISA. Approcci microarchitetturali per migliorare prestazioni: riduzione del numero di cicli di clock per l esecuzione di ogni istruzione; riduzione della durata del ciclo di clock semplificando l organizzazione dell architettura; sovrapposizione dell esecuzione delle istruzioni (pipelining). - 6 - Esecuzione di un istruzione L esecuzione di ogni istruzione richiede: lettura dell istruzione dalla memoria; decodifica dei campi dell istruzione. In termini di microistruzioni: PC passa attraverso la ALU e viene incrementato; PC viene usato per leggere la parola seguente nel programma; PC ed ALU vengono usati per leggere gli eventuali operandi. La ALU è utilizzata per diversi cicli di clock: per operazioni non legate alla esecuzione di una istruzione ma piuttosto al suo caricamento; per caricare un operando in attesa che sia poi disponibilie il secondo operando. Ciò comporta un notevole spreco di tempo. - 62 - Pag. 3 3

Riduzione del numero di cicli di clock Replicazione di moduli hardware per evitare conflitti di risorse. Soluzione : inserire un sommatore aggiuntivo per incrementare il PC: costoso in termini di area sul silicio; non si verifica un vantaggio sostanziale: incremento del PC avviene durante la fase di lettura dell istruzione e quindi la ALU non è impegnata. Soluzione 2: aggiungere percorsi addizionali: ad esempio percorsi diretti fra alcuni registri; aumento del numero dei segnali di controllo; microistruzioni e microcodice più complessi. Soluzione 3: aggiungere un bus addizionale. - 63 - Architettura a tre bus Le operazioni aritmetiche richiedono: un primo ciclo di clock per caricare un operando nel registro V; durante tale ciclo la ALU non viene utilizzata; un secondo ciclo di clock per eseguire l operazione. Un possibile miglioramento consiste nel rendere possibile la connessione diretta di tutti i registri con entrambi gli ingressi dati della ALU. Questa soluzione richiede l aggiunta di un ulteriore bus. L architettura risultante è pertanto detta a tre bus: BUS A: lettura dei registri sull operando A della ALU BUS B: lettura dei registri sull operando B della ALU BUS C: scrittura dell uscita della ALU sui registri L'unità di controllo deve oportunamente essere modificata per controllare correttamente un processore dotato di tre bus. - 64 - Pag. 32 32

bus A bus B bus C incrementatore PC banco di registri costante 4 M U X A B ALU R decodificatore di istruzioni IR MDR MAR linee di dato - 65 - linee di indirizzo Sequenza di controllo completa (3 bus) Consideriamo l istruzione ASM ADD R, R Fetch (identica per tutte le istruzioni): PC outa, MAR inc, Enable A, Read, PCIncrement WMFC (Wait for Memory Function Completion) MDR outc, IR inc, Decode: decodificare l IR; eventualmente recuperare le parole di memoria aggiuntive (se necessario) e riaggiornare il PC. Execute: R outa, R outb, Add, R inc, goto(fetch) - 66 - Pag. 33 33