Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT...

50
Richiami sull’architettura Richiami sull’architettura del processore MIPS a 32 del processore MIPS a 32 bit bit Lucidi fatti in collaborazione con dell’Ing. Valeria Cardellini

Transcript of Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT...

Page 1: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

Richiami sull’architettura del Richiami sull’architettura del processore MIPS a 32 bitprocessore MIPS a 32 bit

Lucidi fatti in collaborazione con dell’Ing. Valeria Cardellini

Page 2: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

2

Caratteristiche principali dell’architettura Caratteristiche principali dell’architettura del processore MIPSdel processore MIPS

• E’ un’architettura RISC (Reduced Instruction Set Computer)– Esegue soltanto istruzioni con un ciclo base ridotto, cioè costituito

da poche attività elementari, con l’obiettivo di migliorare le prestazioni fornite dalle architetture CICS

• le istruzioni più comuni vengono eseguite nel modo più veloce possibile • si riduce la flessibilità di indirizzamento della memoria (p.e. non si

prevedono accessi in memoria di tipo indiretto)

• Architettura di tipo registro-registro (load/store)– Gli operandi dell’ALU possono provenire solo dai registri di uso

generale interni al processore e non possono provenire direttamente dalla memoria (cache)

• operazioni di load: caricamento dei dati dalla memoria ai registri del processore

• operazioni di store: memorizzazione dei dati contenuti nei registri del processore in memoria

Page 3: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

3

Richiami riguardanti …Richiami riguardanti …

• Sottoinsieme di istruzioni sufficiente però a far vedere l’architettura del processore

• Esecuzione delle istruzionicicli istruzioni semplici

• Struttura del processore tre possibili soluzioni, SCA-SCO: uniciclo, multiciclo, pipeline

Page 4: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

4

Insieme di istruzioni semplificato del MIPSInsieme di istruzioni semplificato del MIPS

• Consideriamo un’implementazione semplificata del processore MIPS– In particolare, no istruzioni di I/O

• Tre classi di istruzioni– Istruzioni logico-aritmetiche– Istruzioni di trasferimento da/verso la memoria (load/store)– Istruzioni di salto (condizionato e incondizionato) per il

controllo del flusso di programma

Page 5: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

5

Esempi di istruzioniEsempi di istruzioni

• Istruzioni logico-aritmetiche (tra registri)– add $s0, $s0, $s1 # $s0 = $s0 + $s1– and $s1, $s2, $s3 # $s1 = $s2 && $s3

• Istruzioni logico-aritmetiche (con immediato)– addi $t0, $t0, 1 # $t0 = $t0 + 1 (non la implementeremo)

• Istruzioni di trasferimento dati (da/verso la memoria)– lw $s1, 8($s2) # $s1 = Mem[$s2+8]– sw $s1, 8($s2) # Mem[$s2+8] = $s1

Page 6: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

6

Esempi di istruzioni (2)Esempi di istruzioni (2)

• Istruzioni di salto condizionato– beq $s0, $s1, L1 # salta all’indirizzo L1

se ($s0 == $s1)– bne $s0, $s1, L1 # salta all’indirizzo L1

se ($s0 != $s1)

• Istruzioni di salto incondizionato – j L1 # salta a L1– jr $s1 # salta all’indirizzo memorizzato in $s1 ( non la implementeremo)– jal L1 # salta a L1 e salva l’indirizzo

della prossima istruzione in $ra( dove $ra = $31, vedere lucido successivo) ( non la implementeremo)

Page 7: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

7

Registri del processore MIPS a 32 bitRegistri del processore MIPS a 32 bit

• 32 registri di uso generale– Per convenzione si usano nomi simbolici preceduti da $

• $s0, $s1, …, $s7 (detti registri saved) per contenere variabili• $t0, $t1, …, $t9 (detti registri temporanei) per contenere variabili

temporanee– I registri possono anche essere indicati solo dal loro numero

preceduto da $: $0, …, $31– dei 32 registri alcuni sono special-purpose, ossia dedicati per

l’esecuzione di alcune istruzioni• Es.: $ra (= $31) è il registro di ritorno

• 32 registri in virgola mobile (che non vedremo negli esempi)– $f0, …, $f31

Page 8: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

8

Formato delle istruzioni MIPSFormato delle istruzioni MIPS

• Tutte le istruzioni MIPS hanno la stessa lunghezza (32 bit)• Le istruzioni MIPS che vedremo sono di 3 formati

– Formato R (registro)• Istruzioni logico-aritmetiche (con operandi solo nei registri)

– Formato I (immediato/indirizzo)• Istruzioni con operandi immediati (non le implementeremo)

• Istruzioni di accesso in memoria (load/store)• Istruzioni di salto condizionato

– Formato J (jump)• Istruzioni di salto incondizionato

• I diversi formati sono riconosciuti tramite il valore dei 6 bit del primo campo, detto codice operativo (opcode), che indica anche come trattare i rimanenti 26 bit dell’istruzione

Page 9: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

9

Formato delle istruzioni MIPS (2)Formato delle istruzioni MIPS (2)

Formato R

Formato I

Formato J

• I campi delle istruzioni– op (opcode): identifica il formato di istruzione– rs, rt, rd:

• Caso R: registri sorgente (rs e rt) e registro destinazione (rd)• Caso load: registro sorgente (rs) e registro destinazione (rt)• Caso altre I: registri sorgente (rs e rt)

– shamt (shift amount): necessario per le operazioni di scorrimento– funct: indica la variante specifica dell’operazione nel campo op– indirizzo/immediato: offset dell’indirizzo o valore immediato– indirizzo di destinazione: una parte dell’indirizzo di destinazione

op indirizzo di destinazione02631

6 bit 26 bit

op rs rt rd shamt funct061116212631

6 bit 6 bit5 bit5 bit5 bit5 bit

op rs rt indirizzo/immediato016212631

6 bit 16 bit5 bit5 bit

Page 10: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

10

Modalità di indirizzamentoModalità di indirizzamento

• Le modalità di indirizzamento indicano i diversi modi con i quali fare riferimento agli operandi nelle istruzioni

• MIPS ha solo 5 modalità di indirizzamento:– tramite registro– immediato– tramite base o spiazzamento – relativo al Program Counter– pseudo-diretto

• Una singola istruzione può usare più modalità di indirizzamento – es.: addi $t0, $t0, 4, immediato e tramite registro

Istruzione che non implementeremo,

Page 11: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

11

Modalità di indirizzamento (2)Modalità di indirizzamento (2)

• Indirizzamento tramite registro– L’operando è il contenuto di un registro del processore– Esempio: add $s0, $s1, $s2 (formato tipo R)

• Indirizzamento immediato (che non implementeremo)– Uno degli operandi è una costante, il cui valore è specificato

nell’istruzione– Esempio: addi $s0, $s1, 1 (formato tipo I)

• Indirizzamento con base o spiazzamento– L’operando è in una locazione di memoria, il cui indirizzo si ottiene

sommando il contenuto di un registro base ad un valore costante (offset o spiazzamento) specificato nell’istruzione

– Esempio: lw $t1, 4($s0) (formato tipo I)

Page 12: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

12

Modalità di indirizzamento (3)Modalità di indirizzamento (3)

• Indirizzamento relativo al Program Counter – L’operando è in una locazione di memoria, il cui indirizzo si ottiene

sommando il contenuto del Program Counter (PC) ad un valore costante (offset o spiazzamento) specificato nell’istruzione

– Esempio: beq $s0, $s1, L1 (formato tipo I)» Indirizzo= PC+4+L1

• Indirizzamento pseudo-diretto– Una parte dell’indirizzo è presente come valore costante (offset)

nell’istruzione, ma deve essere completato– L’indirizzo di destinazione del salto si ottiene traslando a sinistra di

2 bit i 26 bit di offset specificati nell’istruzione e concatenando i 28 bit così ottenuti con i 4 bit più significativi del PC

– Esempio: j L2 (formato tipo J)» Indirizzo = 4 bit più sign.di (PC+4)*L2*00

Page 13: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

13

Il processore (1)Il processore (1)

Distinguiamo unità di elaborazione (SCA) e unità di controllo (SCO)

• Unità di elaborazione dati– Hardware per compiere le operazioni necessarie all’esecuzione

delle istruzioni

• Unità di controllo– Riceve dei segnali di ingresso e genera in uscita segnali per la

lettura/scrittura degli elementi di memoria, segnali di selezione per i multiplexer, segnali per il controllo della ALU

Page 14: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

14

Il processore (2)Il processore (2)

• Implementazione dell’unità di elaborazione a ciclo singolo – tutte le istruzioni vengono eseguite in un solo ciclo di clock, la cui

durata è determinata dal percorso critico• Implementazione dell’unità di elaborazione a ciclo

multiplo (daremo solo cenni perchè simile al PD32)– l’esecuzione di un’istruzione richiede più cicli di clock

• Implementazione dell’unità di elaborazione a pipeline – l’esecuzione di un’istruzione richiede più cicli di clock – nel SCA ci sono tante istruzioni per quanti sono gli stadi della

pipeline

Page 15: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

15

I cinque passi delle istruzioniI cinque passi delle istruzioni

• Ogni istruzione può al più essere eseguita in cinque passi (i primi tre vengono sempre eseguiti):– prelievo dell’istruzione (Instruction fetch: IF) – decodifica dell’istruzione/prelievo dei dati dai registri

(Instruction decode: ID)– Esecuzione e/o calcolo dell’indirizzo di memoria (Execute:

EX)– accesso alla memoria in lettura o scrittura (Memory

access: MEM)– scrittura del risultato nel registro destinazione (Write-back:

WB)

IFInstruction Fetch

IDInstruction Decode

EXEXecute

MEMMEMory access

WBWrite-Back

Page 16: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

16

Esecuzione delle istruzioni logico-aritmeticheEsecuzione delle istruzioni logico-aritmetiche

• Esempio: op $x, $y, $z• Un’istruzione logico-aritmetica viene eseguita in 4

passi1. Prelievo dell’istruzione dalla memoria istruzioni e incremento

del PC2. Lettura dei due registri sorgente ($y e $z) dal banco dei

registri3. Esecuzione dell’operazione (op) da parte dell’ALU sui valori

letti dal banco dei registri4. Scrittura del risultato dell’ALU nel registro destinazione ($x)

del banco dei registri

Page 17: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

17

Esecuzione delle istruzioni di loadEsecuzione delle istruzioni di load

• Esempio: lw $x, offset($y)• Un’istruzione di load viene eseguita in 5 passi

1. Prelievo dell’istruzione dalla memoria istruzioni e incremento del PC

2. Lettura del registro base ($y) dal banco dei registri3. Esecuzione dell’operazione (somma) da parte dell’ALU per

calcolare l’indirizzo di memoria ($y + offset), notare che i registri sono a 32 bit mentre l’offset è di 16 bit (estensione del segno)

4. Lettura del dato dalla memoria dati (Mem[$y + offset]) utilizzando come indirizzo il risultato della ALU

5. Scrittura del dato proveniente dalla memoria nel registro destinazione ($x) del banco dei registri

Page 18: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

18

Esecuzione delle istruzioni di storeEsecuzione delle istruzioni di store

• Esempio: sw $x, offset($y)• Un’istruzione di store viene eseguita in 4 passi

1. Prelievo dell’istruzione dalla memoria istruzioni e incremento del PC

2. Lettura del registro base ($y) e del valore da memorizzare in memoria ($x) dal banco dei registri

3. Esecuzione dell’operazione (somma) da parte dell’ALU per calcolare l’indirizzo di memoria ($y + offset), notare che i registri sono a 32 bit mentre l’offset è di 16 bit (estensione del segno)

4. Scrittura del dato proveniente dal banco dei registri ($x) nella memoria dati (Mem[$y + offset]) utilizzando come indirizzo il risultato della ALU

Page 19: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

19

Esecuzione delle istruzioni di salto condizionatoEsecuzione delle istruzioni di salto condizionato

• Esempio: beq $x, $y, offset• Un’istruzione di salto condizionato viene eseguita in 4

passi1. Prelievo dell’istruzione dalla memoria istruzioni e incremento

del PC2. Lettura dei due registri sorgente ($x e $y) dal banco dei

registri3. Esecuzione dell’operazione (sottrazione) da parte dell’ALU

per confrontare i valori letti dal banco dei registri ($x - $y) e calcolo dell’indirizzo di destinazione del salto

4. L’uscita Zero della ALU viene utilizzata per decidere quale valore deve essere memorizzato nel PC: (PC+4) oppure (PC+4+offset), notare che il registro PC è a 32 bit mentre l’offset è di 16 bit (estensione del segno)

Page 20: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

20

Esecuzione delle istruzioniEsecuzione delle istruzioni

• Per ogni tipo di istruzione, i primi due passi da eseguire sono uguali– Prelievo dell’istruzione dalla memoria istruzioni e incremento del

PC– Lettura di uno o due registri dal banco dei registri, selezionando i

registri a cui accedere tramite i campi dell’istruzione

• Le azioni successive dipendono dal tipo di istruzione (codice operativo), sebbene tutte le istruzioni utilizzino l’ALU dopo il secondo passo– Le istruzioni logico-aritmetiche per eseguire l’operazione– Le istruzioni di load e store per calcolare l’indirizzo di memoria– Le istruzioni di salto condizionato per effettuare il confronto

Page 21: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

21

Esecuzione delle istruzioni (2)Esecuzione delle istruzioni (2)

• Dopo aver utilizzato l’ALU, le azioni richieste per completare le varie istruzioni si differenziano ulteriormente– Le istruzioni logico-aritmetiche devono scrivere il risultato della

ALU nel registro destinazione– Le istruzioni di load richiedono l’accesso in lettura alla

memoria dati ed eseguono il caricamento del dato letto nel registro di destinazione

– Le istruzioni di store richiedono l’accesso in scrittura alla memoria dati ed eseguono la memorizzazione del dato proveniente dal registro sorgente

– Le istruzioni di salto condizionato devono scrivere il valore del PC in base al risultato del confronto

Page 22: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

SCO-SCA unicicloSCO-SCA uniciclo

22

Page 23: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

23

Struttura di base del processore MIPSStruttura di base del processore MIPS

• Per eseguire tutte le istruzioni in un solo ciclo di clock– Ogni risorsa/unità funzionale può essere utilizzata una sola

volta per istruzione– Occorre duplicare le risorse/unità funzionali di cui si ha bisogno

più di una volta nello stesso ciclo di clock• memoria dati distinta dalla memoria istruzioni• ALU e sommatori

– Alcune risorse/unità funzionali possono essere condivise da differenti flussi di esecuzione

• tramite l’introduzione di multiplexer

Page 24: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

PCInstruction

Memory

address Instruction

ALU

control

ALUzero

<

result

Addersum

Componenti di base (1)Componenti di base (1)

Load (nel seguito non lo evidenzieremo... Ck)

Page 25: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

Componenti di base (2)Componenti di base (2)

Data

Memory

address

Read data

Registers

Reg Write

(Reg-sorg 1)

Reg-sorg 1

Reg-sorg 2

Reg-dest

Data-to-write

5

325

5

3232

(Reg-sorg 2)

Write data

Mem Read

Mem Write

32Sign

extend

16

I registri commutano

sul fronte positivo

dei segnali di abilitazione

Flip/flop positive/negative edge triggered

Page 26: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

Banco dei registri (scrittura)

R0 R1 R31w0

w1w31

Data to write

Decoder

Reg write

Reg dest

Page 27: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

Banco dei registri (scrittura)

Page 28: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

Banco dei registri (lettura) con decoder

R0 R1 R31

B31-1B0-1 B1-2 B31-2

Reg source 2

DecoderDecoder

Reg source 1

(Reg source 2)(Reg source 1)

Page 29: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

Banco dei registri (lettura) con MUX

Page 30: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

Sincronizzazione tra circuiti sequenziali

I registri commutano

sul fronte positivo

dei segnali di abilitazioneFlip/flop positive edge triggered

Page 31: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit
Page 32: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

HW per eseguire istruzioni CLASSE R

ALU operation

Page 33: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

HW per eseguire istruzioni LOAD e STORE

Manca la parte relativa al fetch,

che è identica a quella delle istruzione di classe R

Page 34: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

HW per eseguire istruzioni BE e BNEManca la parte relativa al fetch,

che è identica a quella delle istruzione di classe R

Lo shift left di 2 bit serve ad avere gli ultimi due bit uguali a 00

Page 35: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

35

L’unità di elaborazione a ciclo singolo L’unità di elaborazione a ciclo singolo con i segnali di controllocon i segnali di controllo

Page 36: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

36

Il significato dei segnali di controlloIl significato dei segnali di controlloSegnale Effetto quando vale 0 Effetto quando vale 1

RegDst Registro destinazione = rt Registro destinazione = rd

RegWrite Nessuno Nel registro indicato sull’ingresso Write register viene scritto il valore Write data

ALUSrc Il secondo operando di ALU viene da Read data 2

Il secondo operando di ALU viene dall’estensione di segno

PCSrc =Branch AND zero

Scrittura di PC con PC+4 Scrittura di PC con l’output del sommatore per il branch

MemRead Nessuno Lettura della locazione di memoria indicata da Address

MemWrite Nessuno Scrittura della locazione di memoria indicata da Address

MemtoReg L’ingresso Write data (banco registri) viene dalla ALU

L’ingresso Write data (banco registri) viene dalla memoria dati

Page 37: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

37

L’unità di elaborazione a ciclo singolo L’unità di elaborazione a ciclo singolo con l’unità di controllocon l’unità di controllo

Page 38: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

38

Il valore dei segnali di controlloIl valore dei segnali di controllo

Istruzione RegDst ALUSrc MemtoReg

RegWrite

MemRead

MemWrite

Branch ALUOp

tipo-R 1 0 0 1 0 0 0 10

lw 0 1 1 1 1 0 0 00

sw X 1 X 0 0 1 0 00

beq X 0 X 0 0 0 1 01

Page 39: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

Progetto SCO con PLA (1/2)

Page 40: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

Progetto SCO con PLA (2/2)

Page 41: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

Controllo ALUL’istruzione set on less than non la implementeremo

Page 42: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

Progettazione classica del controllo ALU

Page 43: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

Soluzione autori “ottimizzata” (la eviteremo)

Page 44: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

Estensione a salto incondizionato

Page 45: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

SCO-SCA con salto incondizionato

Page 46: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

SCO-SCA multiciclo (cenni)SCO-SCA multiciclo (cenni)

46

Page 47: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

47

L’unità di elaborazione a ciclo multiplo L’unità di elaborazione a ciclo multiplo (tecnica utilizzata anche per il PD32)(tecnica utilizzata anche per il PD32)

• L’esecuzione di un’istruzione è distribuita su più cicli• Si utilizza un ciclo di clock di durata inferiore rispetto a

quello dell’implementazione a ciclo singolo• Implementazione dell’unità di elaborazione a ciclo multiplo

– Più complessa del ciclo singolo– Ogni fase di esecuzione di un’istruzione richiede un ciclo di clock– Un’unità funzionale può essere usata più di una volta per

istruzione in cicli differenti (condivisione di unità funzionali ed eliminazione di ridondanze hardware)

• Singola unità di memoria per istruzioni e dati anziché due memorie distinte

• Una sola ALU anziché una ALU e due sommatori– Occorre introdurre dei registri interni addizionali per memorizzare i

valori da usare nei cicli di clock successivi

Page 48: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit
Page 49: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit
Page 50: Organizzazione del corso - Dipartimento di Ingegneria …ciciani/files/MIPS-I(1).ppt · PPT file · Web view2011-01-27 · Richiami sull’architettura del processore MIPS a 32 bit

SCO per soluzione multiciclo