Corso di. Realizzazione del Data path Data path a ciclo singolo. Anno Accademico 2006/2007 Francesco Tortorella

Documenti analoghi
Università degli Studi di Cassino

Università degli Studi di Cassino

Università degli Studi di Cassino e del Lazio Meridionale

Calcolatori Elettronici

Astrazione dell implementazione. Il processore: unità di elaborazione e unità di controllo (2) Il controllo della ALU.

Calcolatori Elettronici

Il processore: unità di elaborazione e unità di controllo (3)

Il processore: unità di elaborazione

Progettazione dell unità di elaborazioni dati e prestazioni. Il processore: unità di elaborazione. I passi per progettare un processore

Problemi dell implementazione singolo ciclo

Cosa abbiamo fatto. Dove stiamo andando.. Perché: per poter capire cosa deve offrire al programmatore il processore come istruzioni

Calcolatori Elettronici

Architettura degli elaboratori

Controllo di un processore a singolo ciclo

Architetture dei Calcolatori (Lettere. Organizzazione di un Calcolatore. Processore. Il Processore. Livello 1: Macchina Firmware Microarchitettura

Architetture dei Calcolatori (Lettere. Organizzazione di un Calcolatore. Processore. Il Processore. Livello 1: Macchina Firmware Microarchitettura

Progetto CPU (ciclo singolo)

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Progetto CPU (ciclo singolo) Salvatore Orlando

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Organizzazione pipeline della CPU

CALCOLATORI ELETTRONICI B 23 giugno 2008

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Calcolatori Elettronici B a.a. 2008/2009

Processore: Datapath & Control. Progetto CPU (ciclo singolo) Rivediamo i formati delle istruzioni. ISA di un MIPS-lite

Architettura degli Elaboratori B Introduzione al corso

Calcolatori Elettronici A a.a. 2008/2009

L unità di controllo di CPU a singolo ciclo

Un quadro della situazione. Cosa abbiamo fatto. Lezione 29 La Pipeline. Dove stiamo andando.. Perché: Università degli Studi di Salerno

Lezione 28 Il processore: unità di controllo (1)

L'architettura del processore MIPS

Architettura degli Elaboratori B. Introduzione al corso. Componenti di un calcolatore convenzionale. (ciclo singolo) Progetto CPU. Contenuti del corso

Richiami sull architettura del processore MIPS a 32 bit

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

L unità di controllo di CPU a singolo ciclo

Richiami sull architettura del processore MIPS a 32 bit

Università degli Studi di Cassino

Architettura degli Elaboratori

Calcolatori Elettronici B a.a. 2005/2006

Gestione degli hazard

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

Architettura del processore MIPS

Progetto CPU a singolo ciclo

Architettura degli Elaboratori

Architettura degli elaboratori - CPU multiciclo - Part 1 A.A. 2017/18

Calcolatori Elettronici B a.a. 2007/2008

CPU a singolo ciclo: l unità di controllo, esecuzione istruzioni tipo J

Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS)

Linguaggio macchina e register file

Corso di Architettura (Prof. Scarano) 09/06/2002

Unità di controllo della pipeline

Calcolatori Elettronici

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti. Proff. A. Borghese, F. Pedersini

CPU a singolo ciclo: l unità di controllo, istruzioni tipo J

Progetto CPU a singolo ciclo

Implementazione semplificata

Il Processore: l Unità di Controllo Principale Barbara Masucci

Architettura degli Elaboratori e Laboratorio. Matteo Manzali Università degli Studi di Ferrara Anno Accademico

Lezione 20. della CPU MIPS. Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano

CPU a ciclo multiplo

Architettura dei calcolatori e sistemi operativi. Il processore Capitolo 4 P&H

Un quadro della situazione. Lezione 15 Il Set di Istruzioni (2) Le operazioni e gli operandi. Dove siamo nel corso. Cosa abbiamo fatto

CPU pipeline hazards

Riassunto. Riassunto. Ciclo fetch&execute. Concetto di programma memorizzato. Istruzioni aritmetiche add, sub, mult, div

Lezione 20. della CPU MIPS. Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano

CPU a ciclo multiplo

Circuiti Sequenziali

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

La pipeline. Sommario

L unità di controllo di CPU a singolo ciclo. Sommario

CPU (2) 2 CPU (2) 3 CPU (2) 4

Lezione 29 Il processore: unità di controllo (2)

La pipeline. Sommario

Elementi base per la realizzazione dell unità di calcolo

ISA (Instruction Set Architecture) della CPU MIPS

Un quadro della situazione. Cosa abbiamo fatto. Lezione 30 Valutazione delle Prestazioni. Dove stiamo andando.. Perché:

CALCOLATORI ELETTRONICI 30 agosto 2010

Schema generale. Realizzazione della macchina hardware. Varietà di architetture HW. Gerarchie di macchine. varietà di sistemi operativi!

Calcolatori Elettronici B a.a. 2005/2006

L unità di controllo di CPU multi-ciclo. Sommario

ISA (Instruction Set Architecture) della CPU MIPS32

Il processore: unità di controllo

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

CALCOLATORI ELETTRONICI 27 giugno 2017

Manualino minimale MIPS

Istruzioni di trasferimento dati

Una CPU multi-ciclo. Sommario

Architettura degli elaboratori - II Le architetture multi-ciclo

CALCOLATORI ELETTRONICI 14 giugno 2010

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j

La Microarchitettura. Davide Bertozzi

Architettura degli elaboratori CPU a ciclo singolo

Rappresentazione dell informazione

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Calcolatori Elettronici T Ingegneria Informatica. DLX: implementazione sequenziale

CALCOLATORI ELETTRONICI 9 gennaio 2013

La CPU a singolo ciclo

La CPU a singolo ciclo

Transcript:

Corso di Realizzazione del path path a ciclo singolo Anno Accademico 26/27 Francesco Tortorella (si ringrazia il prof.. De Santo per il materiale presente in qeste slides) Realizzazione del data path. Analizzare l instrction set => Specifiche sl datapath il significato di ciascna istrzione è dato dai register transfers il datapath deve incldere elementi di memoria per i registri necessari alla ISA il datapath deve spportare ciascn trasferimento tra registri 2. Selezionare l insieme di componenti del datapath e stabilire na metodologia di tempificazione 3. Costrire il datapath rispettando le specifiche 4. Analizzare l implementazione di ciascna istrzione per determinare i pnti di controllo che abiliteranno i trasferimenti 5. Costrire la control logic path -

Formati Istrzioni del IPS R-type I-type 3 26 2 6 op rs rt rd shamt fnct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits 3 26 2 op rs rt immediate 6 bits 5 bits 5 bits bits 3 26 J-type op target address 6 bits 26 bits path - 2 Passo a: Il sottoinsieme IPS-lite 3 ADD e SUB addu rd, rs, rt sbu rd, rs, rt 3 OR Immediato: ori rt, rs, imm LOAD e STORE Word3 lw rt, rs, imm sw rt, rs, imm BRANCH: 3 beq rs, rt, imm 26 2 op rs rt rd shamt fnct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits 26 2 op rs rt immediate 6 bits 5 bits 5 bits bits 26 2 op rs rt immediate 6 bits 5 bits 5 bits bits 26 2 op rs rt immediate 6 bits 5 bits 5 bits bits 6 path - 3

Trasferimenti tra Registri Forniscono il significato delle istrzioni Ttto comincia con il fetch op rs rt rd shamt fnct = E[ PC ] op rs rt Imm = E[ PC ] inst Register Transfers ADDU R[rd] R[rs] + R[rt]; PC PC + 4 SUBU R[rd] R[rs] -- R[rt]; PC PC + 4 ORi R[rt] R[rs] + zero_et(imm); PC PC + 4 LOAD R[rt] E[ R[rs] + sign_et(imm)]; PC PC + 4 STORE E[ R[rs] + sign_et(imm) ] R[rt]; PC PC + 4 BEQ if ( R[rs] == R[rt] ) then PC PC + sign_et(imm)] else PC PC + 4 path - 4 Passo2: Componenti del path emoria instrzioni & dati Registri ( ) read RS read RT Write RT o RD PC Etender (estensione in segno) Addiz e Sottraz di registri o di immediati (estesi) Somma 4 o immediati estesi al PC path - 5

Passo2: Componenti del path Elementi Combinatori Elementi di emoria tempificazione (Clocking methodology) path - 6 Elementi Combinatori Adder A B CarryIn Adder Sm Carry UX Selec t A Y B UX OP path - 7 A B Risltato

Elementi di emoria: Registro Registro Ingressi N-bit Write Enable Write Enable: Write Enable In negato (): Ot non cambia asserito (): Ot diventa In N Ot N path - 8 Elementi di emoria: Banco di Registri Il Banco di Registri consiste di registri: RWRARB Write Enable De bs a -bit di otpt: 5 5 5 bsa e bsb Un bs di inpt a -bit : bsw bsw Registri a -bit Un Registro viene selezionato da: RA seleziona il registro da mettere sl bsa RB seleziona il registro da mettere sl bsb RW seleziona il registro da scrivere mediante il bsw qando Write Enable è Il Clock (CLK) Il CLK è significativo SOLO drante le operazioni di write Drante le operazioni di read, il Banco si comporta come se fosse combinatorio: RA o RB validi => bsa o bsb validi dopo n tempo di accesso (access time) path - 9 bsa bsb

Elementi di emoria: Banco di Registri Banco di registri: schema di accesso in lettra path - Elementi di emoria: Banco di Registri Banco di registri: schema di accesso in scrittra path -

Un modello ideale di emoria Write Enable Indirizzo emoria (ideale) Un bs di inpt: In In Ot Un bs di otpt: Ot Accesso a na parola di emoria : Indirizzo seleziona la parola da inviare s Ot Se Write Enable = : indirizzo seleziona la parola di memoria da scrivere mediante il bs In Clock inpt (CLK) Il CLK è significativo SOLO drante le operazioni di write Drante le operazioni di read, la emoria si comporta come se fosse combinatoria: Indirizzo valido => Ot valido dopo n tempo di accesso path - 2 Passo 3 Specifiche dei Trasferimenti tra Registri Assemblaggio del path Fetch Leggi gli Operandi ed Esegi l Operazione path - 3

3a: Unità di Fetch Operazioni previste Fetch dell Istrzione: mem[pc] Aggiornamento del program conter: Codice Seqenziale: PC PC + 4 Branch e Jmp: PC qalcos altro PC Net Address Logic Address Word path - 4 3b: Add & Sbtract R[rd] R[rs] op R[rt] Esempio: addu rd, rs, rt Ra, Rb e Rw dai campi rs, rt e rd dell istrzione ctr e RegWr: dalla control logic dopo la decodifica dell istrzione 3 26 2 6 op rs rt rd shamt fnct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits RegWr bsw Rd Rs 5 5 5 Rw Ra Rb -bit Registers Rt bsa bsb ctr Reslt path - 5

PC Register-Register Timing Rs, Rt, Rd, Op, Fnc ctr Val. Prec. -to-q Val. Scc. Val. Prec. Val. Prec. Tempo di Accesso alla Val. Scc. Ritardo introdotto dalla Control Logic Val. Scc. RegWr bsa, B bsw bsw RegWr Val. Prec. Val. Prec. Val. Prec. Rd Rs Rt 5 5 5 Rw Ra Rb Registri a -bit path - bsa bsb Val. Scc. Tempo di accesso Banco di Registri Val. Scc. ctr Ritardo Val. Scc. Reslt Qi avviene il Register Write 3c: Operazioni Logiche con Immediati R[rt] R[rs] op ZeroEt[imm] ] Rd Rt RegDst Rs RegWr 5 5 5 bsw imm Rw Ra Rb Registri a -bit path - 7 3 op rs rt immediate bsb ZeroEt 26 bsa 2 6 bits 5 bits 5 bits rd? bits 3 5 bits Src ctr Risltato immediate bits

3d: Operazioni di Load R[rt] em[r[rs] + SignEt[imm]] Esempio: lw rt, imm(rs) Rd Rt RegDst Rs RegWr 5 5 5 bsw imm 3 Rw Ra Rb Registri a -bit 26 2 op rs rt immediate 6 bits 5 bits 5 bits rd bits bsb Etender bsa Src ctr In emwr WrEn Adr W_Src path - 8 EtOp 3e: Operazioni di Store em[ R[rs] + SignEt[imm] R[rt] ] Esempio: sw rt, imm(rs) RegDst bsw 3 Rd 26 RegWr 5 5 2 op rs rt immediato 6 bits 5 bits 5 bits bits imm Rt Rs Rt 5 Rw Ra Rb Registri a -bit bsb Etender bsa ctr In emwr WrEn Adr W_Src path - 9 EtOp Src

3f: L Istrzione di Branch 3 26 2 op rs rt immediate 6 bits 5 bits 5 bits bits beq rs, rt, imm mem[pc] Fetch dell istrzione dalla memoria Eqal R[rs] == R[rt] Calcolo della condizione di branch if (COND eq ) Calcolo indirizzo prossima istrzione PC PC + 4 + ( SignEt(imm) 4 ) else PC PC + 4 path - 2 path per Operazioni di Branch beq rs, rt, imm 3 26 2 op rs rt immediate 6 bits 5 bits 5 bits bits Indirizzo Istrzione Cond 4 imm PC Et npc_sel Adder Adder PC Rs Rt RegWr 5 5 5 bsa Rw Ra Rb bsw Registri a -bit bsb Eqal? path - 2

Single Cycle path Inst Adr Rs <2:25> Rt <:2> Rd <:5> <:5> Imm <3:> imm 4 PC Et Adder Adder npc_sel PC path - 22 RegDst Rd Rt RegWr Rs Rt 5 5 5 bsw bsa Rw Ra Rb Registri a -bit bsb imm Etender EtOp Eqal Src ctr = emwr WrEn Adr In emtoreg Passo 4: Realizzazione del Controllo <3:> Inst Adr <2:25> <26:3> Op Fn <:5> <:5> <:2> <2:25> Rt Rs Rd Imm Logica di Controllo npc_selregwr RegDst EtOp Src ctr emwr emtoreg Eqal DATA PATH path - 23

Significato dei Segnali di Controllo Rs, Rt, Rd e Imm sono cablati nel datapath npc_sel: => PC PC + 4; => PC PC + 4 + SignEt(Im) n= net npc_sel Inst Adr 4 imm PC Et Adder Adder PC path - 24 Significato dei Segnali di Controllo EtOp: zero, sign src: => regb; => immed ctr: add, sb, or RegDst Rd Rt RegWr Rs Rt 5 5 5 bsw bsa Rw Ra Rb Registri da - bit bsb imm path - 25 Etender EtOp Eqal Src emwr: write memory emtoreg: =>; => em RegDst: => rt ; => rd RegWr: write dest register ctr = emwr WrEn Adr In emtoreg

Control Signals inst Register Transfer ADD R[rd] <-- R[rs] + R[rt]; PC <-- PC + 4 src = RegB, ctr = add, RegDst = rd, RegWr, npc_sel = +4 SUB R[rd] <-- R[rs] -- R[rt]; PC <-- PC + 4 src = RegB, ctr = sb, RegDst = rd, RegWr, npc_sel = +4 ORi R[rt] <-- R[rs] + zero_et(imm); PC <-- PC + 4 src = Im, Etop = Z, ctr = or, RegDst = rt, RegWr, npc_sel = +4 LOAD R[rt] <-- E[ R[rs] + sign_et(imm)]; PC <-- PC + 4 src = Im, Etop = Sn, ctr = add, emtoreg, RegDst = rt, RegWr, npc_sel = +4 STORE E[ R[rs] + sign_et(imm)] <-- R[rs]; PC <-- PC + 4 src = Im, Etop = Sn, ctr = add, emwr, npc_sel = +4 BEQ if ( R[rs] == R[rt] ) then PC <-- PC + sign_et(imm)] else PC <-- PC + 4 npc_sel = EQUAL, ctr = sb path - 26 Passo 5: Logica per ciascn segnale di controllo npc_sel <= if (OP == BEQ) then EQUAL else src <=if (OP == ) then regb else immed ctr <= if (OP == ) then fnct elseif (OP == ORi) then OR elseif (OP == BEQ) then sb else add EtOp <= if (OP == ORi) then zero else sign emwr <= (OP == Store) emtoreg<= (OP == Load) RegWr: <= if ((OP == Store) (OP == BEQ)) then else RegDst: <= if ((OP == Load) (OP == ORi)) then else path - 27

La tabella di verità per il controllo op 6 RegDst Src emtoreg RegWrite emwrite PCSrc Jmp EtOp op (Symbolic) path - 28 RegDst fnc Src ctr ain 6 : Control 3 Control op (Local) 3 op R-type ori lw sw beq jmp R-type Or Add Add Sbtract op <2> op <> op <> La tabella di verità per RegWrite op R-type ori lw sw beq jmp RegWrite RegWrite = R-type + ori + lw =!op<5> &!op<4> &!op<3> &!op<2> &!op<> &!op<> (R-type) +!op<5> &!op<4> & op<3> & op<2> &!op<> & op<> (ori) + op<5> &!op<4> &!op<3> &!op<2> & op<> & op<> (lw) op<5>.. op<5>.. op<5>.. op<5>.. op<5>.. op<5>.. <> <> <> <> <> op<> R-type ori lw sw beq jmp RegWrite path - 29

Implementazione PLA del controllo op<5>.. op<5>.. op<5>.. op<5>.. op<5>.. op<5>.. <> <> <> <> <> op<> R-type ori lw sw beq jmp RegWrite Src RegDst emtoreg emwrite Branch Jmp EtOp op<2> op<> op<> path - 3 Vista Astratta dell Implementazione Net Address Ideal Address PC Rd 5 Rs 5 Rw Ra Rt 5 Rb -bit Registers A B Controllo Control Signals path Conditions Address In Ideal Ot path - 3

Schema del datapath con le linee di controllo PCSrc 4 Add RegWrite Shift left 2 Add reslt PC address [3 ] memory [25 2] [2 ] [5 ] RegDst [5 ] register register 2 Write register Write data data data 2 Registers Sign etend Src control Zero reslt emwrite Address Write data memory em data emtoreg [5 ] Op path - Schema del datapath con l nità di controllo Add reslt 4 Add RegDst Branch Shift left 2 PCSrc em [3 26] Control emtoreg Op emwrite Src RegWrite PC address memory [3 ] [25 2] [2 ] [5 ] register register 2 Registers Write register Write data data data 2 Zero reslt Address Write data memory data [5 ] Sign etend control [5 ] path - 33

odifica per implementare jmp [25 ] Shift Jmp address [3 ] left 2 26 28 PC+4 [3 28] Add reslt 4 Add RegDst Jmp Branch Shift left 2 [3 26] Control em emtoreg Op emwrite Src RegWrite PC address memory [3 ] [25 2] [2 ] [5 ] register register 2 Registers Write register Write data data data 2 Zero reslt Address Write data memory data [5 ] Sign etend control [5 ] path - 34 Vista astratta del critical path Definisce la ma freqenza di clock Net Address Ideal Address PC Rd 5 Rs 5 Rt 5 Rw Ra Rb -bit Registers Critical Path (istr. LOAD) = Ritardo tra e ot PC (FFs) + Access Time della em. Istrzioni + Access Time del banco registri+ Tempo di ritardo (add bit) + Access Time della em. Dati + Tempo di hold per il Register File Write Imm A B Address In Ideal path - 35

Riassmendo 5 passi per progettare n processore. Analizzare l instrction set => Specifiche sl datapath 2. Selezionare l insieme di componenti del datapath stabilire na metodologia di clocking 3. Costrire il datapath rispettando le specifiche 4. Analizzare l implementazione di ciascna istrzione per determinare i pnti di controllo che abiliteranno i trasferimenti 5. Costrire la control logic il IPS rende più semplice il progetto Le Istrzioni sono ttte della stessa dimensione I registri sorgente sempre nello stesso posto dell istrzione Gli Immediati stessa dimensione, posizione Le Operazioni sempre s registri/immediati path - 36 Valtazione del data path a ciclo singolo L implementazione realizzata prevede implicitamente che occorra n solo ciclo di clock per esegire na qalnqe istrzione. Sebbene tale implementazione fnzioni correttamente, non è tilizzata in pratica perché inefficiente (qal è il motivo?) Consideriamo n esempio nmerico path - 37

Valtazione del data path a ciclo singolo Assmiamo che i tempi di ritardo di ttti i componenti nel datapath siano trascrabili tranne: Unità di memoria: 2 ps e addizionatori: ps Register file (read e write): 5 ps Confrontiamo le prestazioni di de diverse implementazioni: Implementazione a ciclo singolo di lnghezza fissa Implementazione a ciclo singolo di lnghezza variabile (solzione solo teorica) path - 38 Valtazione del data path a ciclo singolo Spponiamo la segente distribzione per le istrzioni: Load: 25 % Store: % Istrzioni logico-aritmetiche: 45 % Branch: 5 % Jmp: 5 % path - 39

Valtazione del data path a ciclo singolo Tipo di istrzione Unità fnzionali sate Logico aritmetiche Instr. fetch Accesso ai registri Accesso ai registri Load Instr. fetch Accesso ai registri Accesso alla memoria Accesso ai registri Store Instr. fetch Accesso ai registri Accesso alla memoria Branch Instr. fetch Accesso ai registri Jmp Instr. fetch path - 4 Valtazione del data path a ciclo singolo Tipo di istrzione memory Register operation memory Register write Totale (ps) Logico aritmetiche 2 5 5 4 Load 2 5 2 5 6 Store 2 5 2 55 Branch 2 5 35 Jmp 2 2 path - 4

Valtazione del data path a ciclo singolo Ciclo di lnghezza fissa: necessario allinearsi all istrzione che richiede maggior tempo di eseczione. T f = 6 ps Ciclo di lnghezza variabile: occorre valtare il tempo medio di eseczione. T v = 447.5 ps T v = 6*.25+55*.+4*.45+35*.5+2*.5 Consideriamo il rapporto T f /T v =.34 path - 42 Valtazione del data path a ciclo singolo Problemi dell implementazione del data path a ciclo singolo di lnghezza fissa: Condizionato dal worst case (istrzione più lenta) Ogni nità fnzionale è sata na volta sola per ciclo (necessario replicare alcne fnzionalità, es. adder) Sitazione anche peggiore se si considera l introdzione di altre nità necessarie (FPU). Solzioni possibili? Implementazione mlticiclo: ciclo più breve legato al tempo di ritardo dell nità fnzionale più lenta. Le nità vengono sate per più compiti, ma l eseczione di n istrzione richiede più cicli di clock. Implementazione pipeline: data path simile all implementazione a ciclo singolo. Permette l eseczione contemporanea di più istrzioni incrementando l tilizzazione dell hardware e amentando le prestazioni. path - 43