Architettura del processore MIPS - Intranet...

28
Maggio 2003 Prof. Cristina Silvano – Politecnico di Milano Pag. 1 Architettura del processore MIPS Architettura del processore MIPS Prof. Cristina Silvano Prof. Cristina Silvano Dipartimento di Elettronica e Informazione Dipartimento di Elettronica e Informazione Politecnico di Milano Politecnico di Milano email email : silvano@ : silvano@elet elet.polimi polimi.it it Prof. Cristina Silvano Prof. Cristina Silvano –Politecnico di Milano Politecnico di Milano -2- Sommario Sommario Instruction Set semplificato Esecuzione delle istruzioni Struttura del processore

Transcript of Architettura del processore MIPS - Intranet...

Page 1: Architettura del processore MIPS - Intranet DEIBhome.deib.polimi.it/.../ARC-MULTIMEDIA/Lez_Arch_MIPS.pdf · 2007-09-25 · Architettura del processore MIPS ... ¾ Tutte le istruzioni

Maggio 2003

Prof. Cristina Silvano – Politecnico di Milano Pag. 1

Architettura del processore MIPSArchitettura del processore MIPS™™

Prof. Cristina SilvanoProf. Cristina SilvanoDipartimento di Elettronica e InformazioneDipartimento di Elettronica e Informazione

Politecnico di MilanoPolitecnico di Milanoemailemail: silvano@: [email protected]

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 22 --

SommarioSommario

Instruction Set semplificatoEsecuzione delle istruzioniStruttura del processore

Page 2: Architettura del processore MIPS - Intranet DEIBhome.deib.polimi.it/.../ARC-MULTIMEDIA/Lez_Arch_MIPS.pdf · 2007-09-25 · Architettura del processore MIPS ... ¾ Tutte le istruzioni

Maggio 2003

Prof. Cristina Silvano – Politecnico di Milano Pag. 2

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 33 --

Caratteristiche principali dellCaratteristiche principali dell’’architettura MIPSarchitettura MIPS™™

Architettura RISC (Reduced Instruction Set Computer):ispirata al principio di eseguire soltanto istruzioni semplici in un ciclo base ridotto, con l’obiettivo di migliorare le prestazioni ottenibili dalle CPU CISC.Architettura LOAD/STORE: gli operandi dell’ALU possono provenire soltanto dai registri ad uso generale contenuti nella CPU e nonpossono provenire direttamente dalla memoria. Sono necessarie apposite istruzioni di:

• caricamento (load) dei dati da memoria ai registri;• memorizzazione (store) dei dati dai registri alla memoria.

Architettura pipeline: tecnica per migliorare le prestazioni basata sulla sovrapposizione dell’esecuzione di più istruzioni appartenenti ad un flusso di esecuzione sequenziale.

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 44 --

InstructionInstruction Set semplificato del processore MIPSSet semplificato del processore MIPS™™

Page 3: Architettura del processore MIPS - Intranet DEIBhome.deib.polimi.it/.../ARC-MULTIMEDIA/Lez_Arch_MIPS.pdf · 2007-09-25 · Architettura del processore MIPS ... ¾ Tutte le istruzioni

Maggio 2003

Prof. Cristina Silvano – Politecnico di Milano Pag. 3

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 55 --

Instruction Instruction Set semplificato del MIPSSet semplificato del MIPS™™

Analizzeremo un’implementazione semplificata dal processore MIPS (in particolare trascurando le istruzioni di I/O).L’insieme ridotto delle istruzioni che studieremo possono essere classificate nelle seguenti tre categorie:

• Istruzioni aritmetico-logiche• Istruzioni di trasferimento da/verso la memoria

(load/store)• Istruzioni di salto (condizionato e incondizionato) per

il controllo del flusso di programma

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 66 --

Istruzioni aritmeticoIstruzioni aritmetico--logiche e logiche e loadload//storestore

Istruzioni aritmetico-logiche, esempi:add $s1, $s2, $s3 # $s1 ← $s2 + $s3

addi $s1, $s1, 4 # $s1 ← $s1 + 4

Istruzioni di trasferimento da/verso la memoria (load/store), esempi:

lw $s1, offset ($s2) # $s1 ← M[$s2+offset]

sw $s1, offset ($s2) # M[$s2+offset] ← $s1

Page 4: Architettura del processore MIPS - Intranet DEIBhome.deib.polimi.it/.../ARC-MULTIMEDIA/Lez_Arch_MIPS.pdf · 2007-09-25 · Architettura del processore MIPS ... ¾ Tutte le istruzioni

Maggio 2003

Prof. Cristina Silvano – Politecnico di Milano Pag. 4

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 77 --

Istruzioni di salto: caricato un nuovo indirizzo nel Program Counter (PC) invece dell’indirizzo seguente l’indirizzo di salto secondo l’ordine sequenziale delle istruzioni.Istruzioni di salto condizionato (conditional branch): il salto viene eseguito solo se una certa condizione risulta soddisfatta. Esempi: beq (branch on equal) e bne (branch on not equal)

beq $s1, $s2, L1 # go to L1 if ($s1 == $s2)

bne $s1, $s2, L1 # go to L1 if ($s1 != $s2)

Istruzioni di salto incondizionato ( unconditional jump): il salto viene sempre eseguito.Esempi: j (jump) e jr (jump register) e jal (jump and link)

j L1 # go to L1jr $s1 # go to add. contained in $s1

jal L1 # go to L1; save add. of next# instruction in reg. $ra

Istruzioni di saltoIstruzioni di salto

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 88 --

Registri del processore MIPSRegistri del processore MIPS

32 registri general-purpose da 32-bit. Per convenzione si usano nomi simbolici preceduti da $ per denotare i registri, ad esempio: $s0$s0, $s1$s1, ... per indicare variabili$t0$t0, $t1$t1, ... per indicare variabili temporanee

• I registri general-purpose possono essere anche direttamente indicati mediante il loro numero preceduto da $: $: $0, $1, …, $31 $0, $1, …, $31

Alcuni registri special purpose cioè dedicati per l’esecuzione di alcune operazioni

• Esempio: $$rara per return address32 registri floating point: $f0, …, $f31

Page 5: Architettura del processore MIPS - Intranet DEIBhome.deib.polimi.it/.../ARC-MULTIMEDIA/Lez_Arch_MIPS.pdf · 2007-09-25 · Architettura del processore MIPS ... ¾ Tutte le istruzioni

Maggio 2003

Prof. Cristina Silvano – Politecnico di Milano Pag. 5

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 99 --

Convenzione per l’uso dei registri del Convenzione per l’uso dei registri del processore MIPSprocessore MIPS

Associazione tra nomi simbolici dei registri general-purpose e numeri dei registri:

$zero → 0 (costante zero)$at → 1 (registro riservato)$v0, $v1 → 2, 3 (valutazione di un’espressione e valori di ritorno da funzioni)$a0 - $a3 → 4 – 7 (registri argomento)$t0 $t0 -- $t7 $t7 → 8 – 15 (registri temporanei non salvati)$s0 $s0 -- $s7 $s7 → 16 – 23 (registri di supporto salvati)$t8, $t9 → 24, 25 (registri temporanei non salvati)$k0, $k1 → 26, 27 (registri riservati)$gp → 28 (global pointer)$sp → 29 (stack pointer)$fp → 30 (frame pointer)$ra → 31 (return address)

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 1010 --

Formato delle istruzioni MIPSFormato delle istruzioni MIPS

Tutte le istruzioni MIPS hanno la stessa dimensione (32 bit)

Le istruzioni MIPS sono di 3 tipi (formati):• Tipo R (register)

• Istruzioni aritmetico-logiche• Tipo I (immediate)

• Istruzioni con immediati• Istruzioni di accesso alla memoria (load/store) • Istruzioni di salto condizionato

• Tipo J (jump) • Istruzioni di salto incondizionato

Page 6: Architettura del processore MIPS - Intranet DEIBhome.deib.polimi.it/.../ARC-MULTIMEDIA/Lez_Arch_MIPS.pdf · 2007-09-25 · Architettura del processore MIPS ... ¾ Tutte le istruzioni

Maggio 2003

Prof. Cristina Silvano – Politecnico di Milano Pag. 6

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 1111 --

Formato istruzioniFormato istruzioni

I diversi formati (R, I, J) sono riconosciuti tramite il valore del primo campo codice operativo (opcode) di 6 bit che indica alla macchina come trattare i rimanenti bit dell’istruzione.

op indirizzoJop rs rt indirizzoIop rs rt rd shamt functR

6-bit 5-bit 5-bit 5-bit 5-bit 6-bit056101115162021252631

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 1212 --

Formato istruzioni di tipo RFormato istruzioni di tipo R

op rs rt rd shamt funct

6 bit 5 bit 5 bit 5 bit 5 bit 6 bit

Ai vari campi sono stati assegnati dei nomi mnemonici:• op: (opcode) identifica il tipo di istruzione• rs: registro contenente il primo operando sorgente• rt: registro contenente il secondo operando sorgente• rd: registro destinazione contenente il risultato• shamt: shift amount (scorrimento)• funct: indica la variante specifica dell’operazione

Formato usato per istruzioni aritmetico-logiche

Page 7: Architettura del processore MIPS - Intranet DEIBhome.deib.polimi.it/.../ARC-MULTIMEDIA/Lez_Arch_MIPS.pdf · 2007-09-25 · Architettura del processore MIPS ... ¾ Tutte le istruzioni

Maggio 2003

Prof. Cristina Silvano – Politecnico di Milano Pag. 7

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 1313 --

Formato istruzioni di tipo IFormato istruzioni di tipo I

op rs rt

6 bit 5 bit 5 bit 16 bit

indirizzo

Nel caso di istruzioni load/store, i campi hanno il seguente significato:• op (opcode) identifica il tipo di istruzione;• rs indica il registro base;• rt indica il registro destinazione dell’istruzione di caricamento;• indirizzo riporta lo spiazzamento (offset).

Con questo formato, un’istruzione lw (sw) puòindirizzare parole nell’intervallo -215 +215-1 rispetto all’indirizzo base.

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 1414 --

Formato istruzioni di tipo IFormato istruzioni di tipo I

op rs rt

6 bit 5 bit 5 bit 16 bit

indirizzo

Nel caso di istruzioni con immediati, i campi hanno il seguente significato:• op (opcode) identifica il tipo di istruzione;• rs indica il registro sorgente;• rt indica il registro destinazione;• indirizzo contiene il valore dell’operando immediato.

Con questo formato, un’istruzione con immediato puòcontenere costanti nell’intervallo -215 +215-1.

Page 8: Architettura del processore MIPS - Intranet DEIBhome.deib.polimi.it/.../ARC-MULTIMEDIA/Lez_Arch_MIPS.pdf · 2007-09-25 · Architettura del processore MIPS ... ¾ Tutte le istruzioni

Maggio 2003

Prof. Cristina Silvano – Politecnico di Milano Pag. 8

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 1515 --

Formato istruzioni di tipo IFormato istruzioni di tipo I

op rs rt

6 bit 5 bit 5 bit 16 bit

indirizzo

Nel caso di salti condizionati, i campi hanno il seguente significato:• op (opcode) identifica il tipo di istruzione;• rs indica il primo registro;• rt indica il secondo registro;• indirizzo riporta lo spiazzamento (offset).

Per l’offset si hanno a disposizione solo 16-bit del campo indirizzo ⇒ rappresentano un indirizzo di parola relativo al PC (PC-relative word address)

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 1616 --

Formato istruzioni di tipo JFormato istruzioni di tipo J

6 bit 26 bit

op indirizzo

In questo caso, i campi hanno il seguente significato:• op (opcode) indica il tipo di operazione;• indirizzo (composto da 26-bit) riporta una parte (26 bit su 32)

dell’indirizzo assoluto di destinazione del salto.

I 26-bit del campo indirizzo rappresentano un indirizzo di parola (word address)

Il terzo tipo di formato istruzione (Formato J) è il formato usato per le istruzioni di salto incondizionato (jump):

Page 9: Architettura del processore MIPS - Intranet DEIBhome.deib.polimi.it/.../ARC-MULTIMEDIA/Lez_Arch_MIPS.pdf · 2007-09-25 · Architettura del processore MIPS ... ¾ Tutte le istruzioni

Maggio 2003

Prof. Cristina Silvano – Politecnico di Milano Pag. 9

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 1717 --

Modalità di Modalità di indirizzamentoindirizzamento

Le modalità di indirizzamento indicano le diverse modalità attraverso le quali far riferimento agli operandinelle istruzioni.L’esempio più comune di modalità di indirizzamento è l’indirizzamento a registro nel quale gli operandidell’istruzione sono contenuti nei registri: ad esempio add $s0, $s1, $s2.

Una singola istruzione può usare più di una modalità di indirizzamento, ad esempio: addi $s0, $s0, 4

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 1818 --

Modalità di Modalità di indirizzamentoindirizzamento

MIPS ha solo cinque modalità di indirizzamento:• A registro• Immediato• Con base o spiazzamento• Relativo al Program Counter• Pseudo-diretto

Page 10: Architettura del processore MIPS - Intranet DEIBhome.deib.polimi.it/.../ARC-MULTIMEDIA/Lez_Arch_MIPS.pdf · 2007-09-25 · Architettura del processore MIPS ... ¾ Tutte le istruzioni

Maggio 2003

Prof. Cristina Silvano – Politecnico di Milano Pag. 10

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 1919 --

Modalità di Modalità di indirizzamentoindirizzamento

A registro• L’operando (l’indirizzo) è il contenuto di un registro della CPU:

add $s1, $s2, $s3 (Formato tipo R)

Immediato• L’operando è una costante il cui valore è contenuto

nell’istruzione:addi $s1, $s1, 4 (Formato tipo I)

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) contenuto nell’istruzione:lw $t0, 32 ($s3) (Formato tipo I)

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 2020 --

Modalità di Modalità di indirizzamentoindirizzamento

Relativo al Program Counter• L’operando è in una locazione di memoria il cui

indirizzo si ottiene sommando il contenuto del Program Counter ad un valore costante (offset o spiazzamento) contenuto nell’istruzione.

• Il calcolo del valore corrispondente all’etichetta L1(indirizzo di destinazione del salto) è relativo al Program Counter (PC): (L1- PC) /4beq $s1, $s2, L1 (Formato tipo I)

Page 11: Architettura del processore MIPS - Intranet DEIBhome.deib.polimi.it/.../ARC-MULTIMEDIA/Lez_Arch_MIPS.pdf · 2007-09-25 · Architettura del processore MIPS ... ¾ Tutte le istruzioni

Maggio 2003

Prof. Cristina Silvano – Politecnico di Milano Pag. 11

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 2121 --

Modalità di Modalità di indirizzamentoindirizzamento

Pseudo-diretto• Una parte dell’indirizzo è presente come valore

costante (offset) nell’istruzione ma deve essere completato

• L’indirizzo di destinazione del salto si calcola facendo uno shift a sinistra di 2 bit dei 26-bit di offset contenuti nell’istruzione (aggiungendo 00 nei bit meno significativi per passare da 26 a 28-bit) e concatenando i 28-bit con i 4-bit più significativi del Program Counter:j 32 (Formato tipo J)

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 2222 --

Instruction Set semplificato del processore MIPS

Page 12: Architettura del processore MIPS - Intranet DEIBhome.deib.polimi.it/.../ARC-MULTIMEDIA/Lez_Arch_MIPS.pdf · 2007-09-25 · Architettura del processore MIPS ... ¾ Tutte le istruzioni

Maggio 2003

Prof. Cristina Silvano – Politecnico di Milano Pag. 12

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 2323 --

Esecuzione delle istruzioni nel processore MIPSEsecuzione delle istruzioni nel processore MIPS

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 2424 --

Passi svolti durante lPassi svolti durante l’’esecuzione delle esecuzione delle istruzioni aritmeticoistruzioni aritmetico--logichelogiche

Un’istruzione aritmetico-logica (tipo R), ad esempio add $x, $y, $z, viene eseguita in 4 passi:

• Prelievo istruzione dalla memoria istruzioni e incremento del PC.

• Lettura dei 2 registri sorgente ($y e $z) dal banco dei registri.

• Operazione dell’ALU sui dati letti dal banco dei registri, utilizzando il codice operativo per realizzare la funzione aritmetico-logica.

• Scrittura del risultato dell’ALU nel banco dei registri utilizzando i bit [15-11] dell’istruzione per selezionare il registro destinazione ($x).

Istruzioni aritmetico-logiche: op $x,$y,$z

Lettura Registri Sorgente $y e $z

Prelievo Istruz. & Increm. PC

Op. ALU sui DatiLetti ($y op $z)

Scrittura nel Reg. Destinazione $x

Page 13: Architettura del processore MIPS - Intranet DEIBhome.deib.polimi.it/.../ARC-MULTIMEDIA/Lez_Arch_MIPS.pdf · 2007-09-25 · Architettura del processore MIPS ... ¾ Tutte le istruzioni

Maggio 2003

Prof. Cristina Silvano – Politecnico di Milano Pag. 13

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 2525 --

Passi svolti durante lPassi svolti durante l’’esecuzione delle esecuzione delle istruzioni di istruzioni di loadload

Un’istruzione di load (tipo I), ad esempio lw $x,offset($y)viene eseguita in 5 passi:· Prelievo istruzione dalla memoria istruzioni e incremento del PC.· Lettura del registro base ($y) dal banco dei registri.

· Operazione dell’ALU per calcolare la somma del valore letto dal registro base e dei 16 bit meno significativi dell’istruzione estesi in segno (offset).

· Prelievo del dato nella memoria dati utilizzando come indirizzo di lettura il risultato dell’ALU.

· Scrittura del dato proveniente dalla memoria nel banco dei registri; il registro destinazione ($x) è indicato dai bit [20-16] dell’istruzione.

Istruzioni di load: lw $x,offset($y)

Lettura Registro Base $y

Prelievo Istruz. & Increm. PC

Op. ALU ($y+offset)

Prelievo Dato M($y+offset)

Scrittura nel Reg. Destinazione $x

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 2626 --

Passi svolti durante lPassi svolti durante l’’esecuzione delle esecuzione delle istruzioni di istruzioni di storestore

Un’istruzione di store (tipo I), ad esempio sw $x,offset($y)viene eseguita in 4 passi:· Prelievo istruzione dalla memoria istruzioni e incremento del PC.· Lettura del registro base ($y) e del registro sorgente ($x) dal banco

dei registri; il registro sorgente è indicato dai bit [20-16] dell’istruzione.· Operazione dell’ALU per calcolare la somma del valore letto dal registro

base e dei 16 bit meno significativi dell’istruzione estesi in segno (offset).

· Scrittura del dato proveniente dal registro sorgente ($x) nella memoria dati utilizzando come indirizzo di scrittura il risultato dell’ALU.

Istruzioni di store: sw $x,offset($y)

Lettura Registri Base $y & Sorg. $x

Prelievo Istruz. & Increm. PC

Op. ALU ($y+offset)

Scrittura Dato M($y+offset)

Page 14: Architettura del processore MIPS - Intranet DEIBhome.deib.polimi.it/.../ARC-MULTIMEDIA/Lez_Arch_MIPS.pdf · 2007-09-25 · Architettura del processore MIPS ... ¾ Tutte le istruzioni

Maggio 2003

Prof. Cristina Silvano – Politecnico di Milano Pag. 14

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 2727 --

Passi svolti durante lPassi svolti durante l’’esecuzione delle esecuzione delle istruzioni di salto condizionatoistruzioni di salto condizionato

Un’istruzione di salto condizionato (tipo I), ad esempio beq $x, $y,offset viene eseguita in 4 passi:· Prelievo istruzione dalla memoria istruzioni e incremento del PC.· Lettura dei 2 registri sorgente ($x e $y) dal banco dei registri.

· Operazione dell’ALU per effettuare la sottrazione tra i valori letti dal banco dei registri. Il valore (PC+4) viene sommato ai 16 bit meno significativi dell’istruzione estesi in segno (offset); il risultato è l’indirizzo di destinazione del salto (Branch Target Address).

· L’uscita Zero dell’ALU viene utilizzata per decidere quale valore debba essere memorizzato nel PC: (PC+4) oppure (PC+4+offset).

Istruzioni di salto condizionato: beq $x,$y,offset

Lettura Registri Sorgente $x e $y

Prelievo Istruz. & Increm. PC

Op. ALU ($x-$y)& (PC+4+offset)

Scrittura nel PC

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 2828 --

Passi svolti durante lPassi svolti durante l’’esecuzione delle esecuzione delle istruzioniistruzioni

Istruzioni aritmetico-logiche: op $x,$y,$z

Lettura Registri Sorgente $y e $z

Prelievo Istruz. & Increm. PC

Op. ALU sui DatiLetti ($y op $z)

Scrittura nel Reg.Destinazione $x

Istruzioni di salto condizionato: beq $x,$y,offset

Lettura Registri Sorgente $x e $y

Prelievo Istruz. & Increm. PC

Op. ALU ($x-$y)& (PC+4+offset)

Scrittura nel PC

Istruzioni di caricamento (load): lw $x,offset($y)

Lettura Registro Base $y

Prelievo Istruz. & Increm. PC

Op. ALU ($y+offset)

Prelievo Dato M($y+offset)

Scrittura nel Reg. Destinazione $x

Istruzioni di memorizzazione (store): sw $x,offset($y)

Lettura Registri Base $y & Sorg. $x

Prelievo Istruz. & Increm. PC

Op. ALU ($y+offset)

Scrittura Dato M($y+offset)

Page 15: Architettura del processore MIPS - Intranet DEIBhome.deib.polimi.it/.../ARC-MULTIMEDIA/Lez_Arch_MIPS.pdf · 2007-09-25 · Architettura del processore MIPS ... ¾ Tutte le istruzioni

Maggio 2003

Prof. Cristina Silvano – Politecnico di Milano Pag. 15

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 2929 --

Unità funzionali richieste durante Unità funzionali richieste durante l’esecuzione delle istruzionil’esecuzione delle istruzioni

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 3030 --

Tempo di esecuzione delle istruzioniTempo di esecuzione delle istruzioni

Nota: se il processore deve effettuare ogni istruzione in un solo ciclo di clock, la durata del ciclo non deve essere inferiore a 8 ns, perché si deve tenere conto dell’istruzione più lenta

Page 16: Architettura del processore MIPS - Intranet DEIBhome.deib.polimi.it/.../ARC-MULTIMEDIA/Lez_Arch_MIPS.pdf · 2007-09-25 · Architettura del processore MIPS ... ¾ Tutte le istruzioni

Maggio 2003

Prof. Cristina Silvano – Politecnico di Milano Pag. 16

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 3131 --

Esecuzione delle istruzioniEsecuzione delle istruzioni

Per ogni tipo di istruzione i primi 2 passi da eseguire sono identici:• Inviare il contenuto del Program Counter (PC) ad una memoria che

contiene il codice per prelevare l’istruzione (Memoria Istruzioni).• Leggere uno o due registri dal banco dei registri utilizzando i campi

dell’istruzione per selezionare i registri ai quali accedere.

Dopo questi 2 passi, le azioni necessarie per concludere l’esecuzione dell’istruzione dipendono dal tipo di istruzione (codice operativo), sebbene tutte le istruzioni utilizzino l’ALU dopo la lettura deiregistri:

• Le istruzioni aritmetico-logiche per l’esecuzione dell’operazione;• Le istruzioni di riferimento a memoria per il calcolo dell’indirizzo

effettivo;• I salti condizionati per valutare l’esito dei confronti.

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 3232 --

Esecuzione delle istruzioni (Esecuzione delle istruzioni (contcont.).)

Dopo aver utilizzato l’ALU, le azioni richieste per completare le varie istruzioni si differenziano ulteriormente:Le istruzioni aritmetico-logiche devono scrivere nel registro destinazione il risultato dell’ALU;Le istruzioni di load richiedono l’accesso in lettura alla Memoria Dati ed eseguono il caricamento del dato letto nel registro 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, possono cambiare l’indirizzo dell’istruzione successiva in base al risultato del confronto.

Page 17: Architettura del processore MIPS - Intranet DEIBhome.deib.polimi.it/.../ARC-MULTIMEDIA/Lez_Arch_MIPS.pdf · 2007-09-25 · Architettura del processore MIPS ... ¾ Tutte le istruzioni

Maggio 2003

Prof. Cristina Silvano – Politecnico di Milano Pag. 17

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 3333 --

Struttura base del processore MIPSStruttura base del processore MIPS

Memoria Istruzioni (memoria a sola lettura) separata dalla Memoria Dati.I 32 registri del processore sono organizzati in una struttura chiamata Banco di Registri (Register File - RF) con due porte il lettura e una porta in scrittura.

I campi dell’istruzione indicano direttamente i registri che debbono essere utilizzati come operandi dell’istruzione e vengono perciò collegati agli ingressi del Register File

Dati

Dati

MemoriaIstruzioni

Registro #

Registro #Registro #

Istruzione

Indirizzoistruzione

ALU

PCBanco di Registri

Memoria Dati

Indirizzo

Dati

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 3434 --

Struttura base del processore MIPS (Struttura base del processore MIPS (contcont.).)

Il Register File possiede 4 ingressi e 2 uscite:· 3 ingressi sono collegati ai campi dell’istruzione che specificano i registri

sorgente o base e il registro destinazione (corrispondenti alle 2 porte in lettura e 1 porta in scrittura); 1 ingresso è per i dati che possono essere scritti nel registro destinazione;

· 2 uscite del banco dei registri riportano il contenuto dei 2 registri letti.Gli operandi dell’ALU sono utilizzati per:· Calcolare un risultato aritmetico (per un’istruzione aritmetico-logica);· Calcolare un indirizzo di memoria (per load/store);· Effettuare un confronto (per un salto condizionato).Il risultato dell’ALU è utilizzato per:· Scrittura in un registro destinazione (se l’istruzione è aritmetico-logica);· Essere usato come indirizzo di lettura/scrittura della Memoria Dati (se

l’istruzione è load/store);· Calcolare l’indirizzo della prossima istruzione, secondo un’apposita logica di

controllo (se l’istruzione è di salto condizionato).

Page 18: Architettura del processore MIPS - Intranet DEIBhome.deib.polimi.it/.../ARC-MULTIMEDIA/Lez_Arch_MIPS.pdf · 2007-09-25 · Architettura del processore MIPS ... ¾ Tutte le istruzioni

Maggio 2003

Prof. Cristina Silvano – Politecnico di Milano Pag. 18

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 3535 --

Esecuzione della fase di caricamento Esecuzione della fase di caricamento ((fetchfetch))delle istruzionidelle istruzioni

Una memoria, detta Memoria Istruzioni, per mantenere e fornire le istruzioni di un programma una volta noto un indirizzo;Un registro, detto Program Counter (PC) per memorizzare l’indirizzo dell’istruzione corrente;Un Sommatore per incrementare il PC in modo da poter indirizzare l’istruzione successiva (PC + 4).

MemoriaIstruzioni

Istruzione

Indirizzolettura

+4Sommatore

PC

Elementi necessari per prelevare le istruzioni da memoria e per incrementare il contenuto del PC:

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 3636 --

Esecuzione delle istruzioni aritmeticoEsecuzione delle istruzioni aritmetico--logichelogiche

Elementi necessari per eseguire le istruzioni aritmetico-logiche:

Un banco di registri (Register File) composto da 32 registri da 32 bit;Una ALU a 32 bit che riceve 2 ingressi da 32 bit e che restituisce un risultato da 32 bit.

Dati perscrittura

Registrolettura 2

Registrolettura 1

Registroscrittura

WR

[20-16]

[25-21]

[15-11] Risultato

ZeroIstruzione ALU

Banco di RegistriContenuto registro 2

Contenutoregistro 1

OP

Page 19: Architettura del processore MIPS - Intranet DEIBhome.deib.polimi.it/.../ARC-MULTIMEDIA/Lez_Arch_MIPS.pdf · 2007-09-25 · Architettura del processore MIPS ... ¾ Tutte le istruzioni

Maggio 2003

Prof. Cristina Silvano – Politecnico di Milano Pag. 19

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 3737 --

Esecuzione delle istruzioni aritmeticoEsecuzione delle istruzioni aritmetico--logiche (logiche (contcont.).)

Le istruzioni aritmetico-logiche hanno come operandi 3 registri: per ogni istruzione si devono leggere due parole di dati dal banco di registri e se ne deve scrivere una. Per ogni parola letta dai registri sorgente sono necessari un ingresso (5 bit) al banco di registri, per specificare il numero del registro che si vuole leggere, ed un’uscita dal banco (32 bit) per il valore letto dal registro. Per scrivere una parola nel registro destinazione sono necessari due ingressi: un ingresso (5 bit) per specificare il numero del registro in cui si vuole scrivere ed un ingresso (32 bit) per il dato da scrivere.Il banco di registri fornisce sempre in uscita il contenuto dei registri di lettura, mentre le scritture sono controllate da un apposito segnale di controllo della scrittura (WR).Il segnale di controllo OP provvede a specificare all’ALU il tipo di operazione.

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 3838 --

Esecuzione delle istruzioni di Esecuzione delle istruzioni di loadload

Elementi necessari per eseguire istruzioni di load:

Un banco di registri (Register File) composto da 32 registri da 32 bit;Una ALU a 32 bit;Una Memoria Dati da cui leggere;Un’unità per estendere con il segno corretto il valore dello spiazzamento(offset) dai 16 bit contenuti nell’istruzione ad un valore con segno a 32 bit.

Dati letti

Dati per scrittura

Registrolettura 2

Registrolettura 1

Registroscrittura

32 bit16 bit

Istruzione

Risultato

ALU

Banco di Registri

Estensionedi segno

Contenutoregistro 2

Contenutoregistro 1

Dati per scrittura

Indirizzo di scrittura

Indirizzodi lettura

MemoriaDati

[15-0]

[25-21]

[20-16]

WR

WR RDOP

Page 20: Architettura del processore MIPS - Intranet DEIBhome.deib.polimi.it/.../ARC-MULTIMEDIA/Lez_Arch_MIPS.pdf · 2007-09-25 · Architettura del processore MIPS ... ¾ Tutte le istruzioni

Maggio 2003

Prof. Cristina Silvano – Politecnico di Milano Pag. 20

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 3939 --

Esecuzione delle istruzioni di Esecuzione delle istruzioni di storestore

Elementi necessari per eseguire istruzioni di store:

Un banco di registri (Register File) composto da 32 registri da 32 bit;Una ALU a 32 bit;Una Memoria Dati nella quale scrivere il dato;Un’unità per estendere con il segno corretto il valore dello spiazzamento(offset) dai 16 bit contenuti nell’istruzione ad un valore con segno a 32 bit.

Dati le tti

Dati per scrittura

Regis tro le ttura 2

Regis tro le ttura 1

Regis tro scrittura

32 bit16 bit

Is truzione

Risulta to

ALU

Banco di Regis tri

Es tens ione di segno

Contenuto regis tro 2

Contenuto regis tro 1

Dati per scrittura

Indirizzo di scrittura

Indirizzo di le ttura

Memoria Dati

[15-0]

[25-21]

[20-16]

WR

WR RDOP

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 4040 --

Esecuzione delle istruzioni di Esecuzione delle istruzioni di loadload//storestore

Il valore dello spiazzamento (offset), dopo l’estensione di segno, è utilizzato come secondo operando dell’ALU;Ogni operazione è costituita da lettura del RF, calcolo nell’ALU di un indirizzo di lettura/scrittura per accedere alla Memoria Dati, lettura/scrittura della Memoria Datie, nel caso di load , scrittura del RF.Durante la load, il valore letto dalla Memoria Dati deve essere scritto nel registro destinazione del RF. Durante la store, il valore da scrivere nella Memoria Dati deve essere letto dal registro sorgente del RF.

Da ti le tti

Da ti pe r scrittura

Regis tro le ttura 2

Regis tro le ttura 1

Regis tro scrittura

32 bit16 bit

Is truzione

Risulta to

ALU

Banco di Regis tri

Estens ione di s egno

Contenuto regis tro 2

Contenuto regis tro 1

Dati per scrittura

Indirizzo di s crittura

Indirizzo di le ttura

Memoria Dati

[15-0]

[25-21]

[20-16]

[20-16]

WR WR RDOP

Page 21: Architettura del processore MIPS - Intranet DEIBhome.deib.polimi.it/.../ARC-MULTIMEDIA/Lez_Arch_MIPS.pdf · 2007-09-25 · Architettura del processore MIPS ... ¾ Tutte le istruzioni

Maggio 2003

Prof. Cristina Silvano – Politecnico di Milano Pag. 21

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 4141 --

Esecuzione delle istruzioni di salto condizionatoEsecuzione delle istruzioni di salto condizionato

Elementi necessari per eseguire istruzioni di salto condizionato:

Un banco di registri (Register File) composto da 32 registri da 32 bit;Una ALU a 32 bit per valutare la condizione di salto;Un Sommatore per calcolare l’indirizzo di destinazione del salto;Un’unità per l’estensione del segno e uno shifter a sinistra di 2 bit;Logica di controllo per decidere, in base al valore dell’uscita Zero dell’ALU, il nuovo valore del PC.

PC + 4 (proviene da lla parte che

e ffe ttua il pre lievo)

Dati per scrittura

Regis tro le ttura 2

Regis tro le ttura 1

Regis tro scrittura

16 bit

Zero

32 bit

Is truzione

ALUBanco di Regis tri

Es tens ione di segno

Contenuto regis tro 2

Contenuto regis tro 1

Ind. Des tinaz. de l sa lto condiziona to

Alla logica di controllo de l sa lto condiziona to

Scorrimento a s inis tra di 2 bit

Sommatore

[15-0]

[25-21]

[20-16]

WR

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 4242 --

Esecuzione delle istruzioni di salto Esecuzione delle istruzioni di salto condizionato (condizionato (contcont.).)

La base per il calcolo dell’indirizzo di destinazione di un salto condizionato è l’indirizzo dell’istruzione che segue quella di salto (PC + 4).Poiché ogni istruzione occupa 4 byte, prima di effettuare la somma dello spiazzamento (offset) con il contenuto di (PC+4), bisogna moltiplicare per 4 il valore contenuto nell’istruzione ⇒ scorrimento a sinistra di 2 bit.L’operazione di salto condizionato è costituita da due operazioni:

• Calcolo dell’indirizzo di destinazione del salto attraverso un sommatoreche effettua la somma tra il (PC+4) e il valore contenuto nell’istruzione dopo avere esteso il segno e fatto scorrere a sinistra di 2 bit;

• Confronto nell’ALU del contenuto dei registri operandi letti dal RF.Se il segnale di uscita Zero dell’ALU è asserito ⇒ la condizione di salto è verificata e l’indirizzo di destinazione del salto diventa il nuovo PC. Se invece la condizione non è verificata ⇒ il PC incrementato sostituisce il PC attuale.

Page 22: Architettura del processore MIPS - Intranet DEIBhome.deib.polimi.it/.../ARC-MULTIMEDIA/Lez_Arch_MIPS.pdf · 2007-09-25 · Architettura del processore MIPS ... ¾ Tutte le istruzioni

Maggio 2003

Prof. Cristina Silvano – Politecnico di Milano Pag. 22

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 4343 --

Realizzazione del processore completoRealizzazione del processore completo

Esaminati gli elementi richiesti da ogni tipo di operazione, è possibile combinarli in un’unica unità di elaborazione.Si assume che tutte le istruzioni siano eseguite in un solo ciclo di clock

• Nessuna risorsa può essere utilizzata più di una volta per istruzione

• Qualsiasi risorsa di cui si ha bisogno più di una volta deve essere duplicata

Occorre quindi una Memoria Istruzioni distinta dalla Memoria Dati.

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 4444 --

Realizzazione del processore completo Realizzazione del processore completo ((contcont.).)

Alcune unità funzionali devono essere duplicate nel momento in cui si combinano le varie unità di calcolo definite nella precedente sezione, mentre altre unità possono essere condivise da differenti flussi di istruzioni.Per condividere un elemento tra due diversi tipi di istruzione, si deve introdurre un multiplexer o selezionatore di dati per permettere connessioni multiple all’ingresso di un elemento e selezionare uno tra i vari ingressi in base alla configurazione delle linee di controllo.

Page 23: Architettura del processore MIPS - Intranet DEIBhome.deib.polimi.it/.../ARC-MULTIMEDIA/Lez_Arch_MIPS.pdf · 2007-09-25 · Architettura del processore MIPS ... ¾ Tutte le istruzioni

Maggio 2003

Prof. Cristina Silvano – Politecnico di Milano Pag. 23

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 4545 --

Esecuzione delle istruzioni Esecuzione delle istruzioni aritmeticoaritmetico--logiche e logiche e loadload//storestore

Differenze principali tra CPU che svolgono istruzioni aritmetico-logiche e CPU dedicate alle istruzioni di load/store:Il numero del registro in cui si vuole scrivere il risultato è indicato da diversi campi (i bit [15-11] per le istruzioni di tipo R e bit [20-16] per istruzioni di load/store)⇒ MUX all’ingresso del Registro Scrittura del RF.Il secondo ingresso dell’ALU è un registro (istruzione di tipo R) oppure la metà meno significativa dell’istruzione (istruzione diload/store)⇒ MUX al secondo ingresso dell’ALU;Il valore scritto nel registro destinazione proviene dal risultato dell’ALU (istruzione tipo R) oppure dalla Memoria Dati (istruzione di load)⇒ MUX all’ingresso dei Dati per Scrittura del RF.

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 4646 --

Esecuzione delle istruzioni Esecuzione delle istruzioni aritmeticoaritmetico--logiche e logiche e loadload//store store ((contcont.) .)

ALUDati le tti

Dati per scrittura

Regis tro le ttura 2

Regis tro le ttura 1

Regis tro scrittura

Zero

32 bit16 bit

Is truzione

MUX

M U X Risulta to

Banco di Regis tri Contenuto regis tro 2

Contenuto regis tro 1

Dati per scrittura

Indirizzo di scrittura

Indirizzo di le ttura

Memoria Dati

Es tens ione di segno

[15-0]

[25-21]

[15-11]

[20-16]

M U X

WR WR RD OP

Page 24: Architettura del processore MIPS - Intranet DEIBhome.deib.polimi.it/.../ARC-MULTIMEDIA/Lez_Arch_MIPS.pdf · 2007-09-25 · Architettura del processore MIPS ... ¾ Tutte le istruzioni

Maggio 2003

Prof. Cristina Silvano – Politecnico di Milano Pag. 24

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 4747 --

Esecuzione delle istruzioni aritmeticoEsecuzione delle istruzioni aritmetico--logiche e logiche e loadload//storestore ((contcont.).)

Aggiungendo la parte di CPU dedicata al prelievo dell’istruzione si ottiene la seguente struttura:

Aggiungendo anche gli elementi richiesti dai salti condizionati, si ottiene la struttura completa della CPU che può eseguire istruzioni elementari (aritmetico-logiche, load/store e salti condizionali) in un unico ciclo di clock.

[15-0]

[25-21]

[15-11]

[20-16] Dati le tti

Dati per s crittura

Regis tro le ttura 2

Regis tro le ttura 1

Regis tro s crittura

Zero

32 bit16 bit

MUX

M U X Risulta to

ALU

Banco di Regis tri Contenuto regis tro 2

Contenuto regis tro 1

Dati pe r scrittura

Indirizzo di scrittura

Indirizzo di le ttura

Me moria Dati

Es tens ione di segno

Memoria Is truzioni

Is truzione

Indirizzo le ttura

+4 Sommatore

PC

M U X

WR

WR RD OP

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 4848 --

Struttura della CPUStruttura della CPU

Contenuto regis tro 2

Contenuto regis tro 1

[15-0]

[25-21]

[20-16]

[15-11]

Da ti le tti

Dati per s crittura

Regis tro le ttura 2

Regis tro le ttura 1

Regis tro s crittura

Zero

32 bit16 bit

MUX

M U X Risulta to

ALU

Banco di Regis tri

Da ti pe r scrittura

Indirizzo di scrittura

Indirizzo di le ttura

Memoria Dati

Es tens ione di segno

Memoria Is truzioni

Is truzione

Indirizzo le ttura

+4

Sommatore

PC

Scorrimento a s inis tra di 2 bit

Sommatore

MUX

M U X

WR

WR RD OP

Page 25: Architettura del processore MIPS - Intranet DEIBhome.deib.polimi.it/.../ARC-MULTIMEDIA/Lez_Arch_MIPS.pdf · 2007-09-25 · Architettura del processore MIPS ... ¾ Tutte le istruzioni

Maggio 2003

Prof. Cristina Silvano – Politecnico di Milano Pag. 25

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 4949 --

Struttura della CPU con unitStruttura della CPU con unitàà di controllodi controllo

Contenuto regis tro 2

Contenuto regis tro 1

[15-0]

[25-21]

[20-16]

[15-11]

Dati le tti

Da ti pe r scrittura

Regis tro le ttura 2

Regis tro le ttura 1

Regis tro scrittura

Zero

32 bit16 bit

MUX

M U X Ris ulta to

ALUBanco di Regis tri

Dati pe r scrittura

Indirizzo di scrittura

Indirizzo di le ttura

Memoria Dati

Es tens ione del segno

Memoria Is truzioni

Is truzione

Indirizzo le ttura

+4

Sommatore

PC

Scorrimento a s inis tra di 2 bit

Sommatore

MUX

M U X

RegWR

MemWRMemRD

OP

[31-26] Unità di controllo

Regis tro des tinazione Branch

MemToReg

ALU_opB

A

B

Unità di controllo

ALU ALU_op

[5-0]

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 5050 --

Implementazione delle istruzioni salto Implementazione delle istruzioni salto incondizionato (incondizionato (jumpjump))

6 bit 5 bit 5 bit 5 bit 5 bit 6 bit Commenti

FormatoJ

op [31-26]

campo indirizzo [25-0]

istruzioni di salto

Calcolo dell’indirizzo di destinazione del salto:

4 bit 26 bit 2 bit

PC+4 [31-28]

campo indirizzo[25-0]

00

Page 26: Architettura del processore MIPS - Intranet DEIBhome.deib.polimi.it/.../ARC-MULTIMEDIA/Lez_Arch_MIPS.pdf · 2007-09-25 · Architettura del processore MIPS ... ¾ Tutte le istruzioni

Maggio 2003

Prof. Cristina Silvano – Politecnico di Milano Pag. 26

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 5151 --

Estensione della CPU con unitEstensione della CPU con unitàà di controllo di controllo per istruzioni di per istruzioni di jumpjump

Contenuto registro 2

Contenuto registro 1

[15-0]

[25-21]

[20-16]

[15-11]

Dati letti

Dati per scrittura

Registro lettura 2

Registro lettura 1

Registro scrittura

Zero

32 bit16 bit

MUX

MUXRisultato

ALUBanco di Registri

Dati per scrittura

Indirizzo di scrittura

Indirizzo di lettura

Memoria Dati

Estensione del s egno

Memoria Istruzioni

Istruzione

Indirizzo lettura

+4

Sommatore

Scorrimento a sinistra di 2 bit

Sommatore

MUX

MUX

RegWR

MemWRMemRD

OP

[31-26] Unità di controllo

Registro destinazione Branch

MemToReg

ALU_opB

A

B

Unità di controllo

ALUALU_op

[5-0]

PC+ 4

Scorrimento a sinistra di 2 bit

[25-0]

MUX

28

PC+4[31 -28]

Jump

PC

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 5252 --

Implementazione della CPU a singolo cicloImplementazione della CPU a singolo ciclo

Si avvia all’esecuzione un’istruzione per ogni ciclo di clock e ogni istruzione deve essere iniziata e completata in un solo ciclo di clockIl ciclo di clock deve avere la stessa lunghezza per ogni istruzione (CPI = 1);La lunghezza del ciclo di clock è determinata dal percorso più lungo (percorso critico o critical path): nell’esempio l’istruzione di loadche utilizza 5 unità funzionali in serie e richiedere T = 8 ns (f = 125 MHz).L’implementazione su singolo ciclo non è molto veloce perché le altre istruzioni potrebbero essere implementate con un ciclo di clock più breve: nell’esempio le istruzioni tipo R richiedono T = 6 ns, le istruzioni di store T = 7 ns, istruzioni di salto condizionato T = 5 ns e istruzioni di salto incondizionato T = 2 ns;

Page 27: Architettura del processore MIPS - Intranet DEIBhome.deib.polimi.it/.../ARC-MULTIMEDIA/Lez_Arch_MIPS.pdf · 2007-09-25 · Architettura del processore MIPS ... ¾ Tutte le istruzioni

Maggio 2003

Prof. Cristina Silvano – Politecnico di Milano Pag. 27

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 5353 --

Implementazione della CPU a ciclo variabileImplementazione della CPU a ciclo variabile

Ipotesi: 24% load; 12% store; 44% tipo R; 18 % branch; 2% jump;Se l’implementazione della CPU fosse a ciclo variabile, il tempo medio per istruzione sarebbe pari a:

• 0.24 * 8 ns + 0.12 * 7 ns + 0.44 * 6 ns + 0.18 * 5 ns + 0.02 * 2 ns = 6.3 ns

L’implementazione a ciclo variabile sarebbe (8 ns / 6.3 ns) = 1.27 volte più veloce dell’implementazione a singolo ciclo.Svantaggi dell’implementazione a ciclo variabile:

• Difficile da realizzare• Richiede alto overhead

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 5454 --

Possibile soluzione: Possibile soluzione: Implementazione della CPU multiImplementazione della CPU multi--ciclociclo

Distribuire l’esecuzione di un’istruzione su più cicli;Usare un ciclo di clock più piccoloImplementazione della CPU MULTI-CICLO:

• Ogni fase d’esecuzione di un’istruzione richiede un ciclo di clock• Un’unità funzionale può essere usata più di una volta per

istruzione in cicli di clock differenti Þ condivisione di unità funzionali. Esempio: singola unità di memoria per Istruzioni e Dati; singola ALU invece di 1 ALU + 2 Sommatori

• Necessario introdurre dei registri interni addizionali per memorizzare i valori da usare nei cicli di clock successivi.

Page 28: Architettura del processore MIPS - Intranet DEIBhome.deib.polimi.it/.../ARC-MULTIMEDIA/Lez_Arch_MIPS.pdf · 2007-09-25 · Architettura del processore MIPS ... ¾ Tutte le istruzioni

Maggio 2003

Prof. Cristina Silvano – Politecnico di Milano Pag. 28

Prof. Cristina Silvano Prof. Cristina Silvano ––Politecnico di MilanoPolitecnico di Milano -- 5555 --

Implementazione multiImplementazione multi--ciclociclo

Da tiRegis tro #

Regis tro #Regis tro #

Banco di Regis tri

ALU

Memoria

Is truzione o dato

Indirizzo PC

Dati

IR

MDR A

B

ALU out