L unità di controllo di CPU a singolo ciclo

Documenti analoghi
L unità di controllo di CPU a singolo ciclo

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

Progetto CPU a singolo ciclo

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

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

Unità di controllo della pipeline

Progetto CPU a singolo ciclo

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

La pipeline. Sommario

La pipeline. Sommario

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

Architettura degli elaboratori CPU a ciclo singolo

Linguaggio macchina e register file

CPU a ciclo multiplo

CPU a ciclo multiplo

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

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

L unità di controllo di CPU multi-ciclo

Architettura degli elaboratori CPU a ciclo singolo

Richiami sull architettura del processore MIPS a 32 bit

CPU pipeline hazards

Richiami sull architettura del processore MIPS a 32 bit

L'architettura del processore MIPS

Architettura della CPU multi-ciclo

Una CPU multi-ciclo. Sommario

La CPU a singolo ciclo

Architettura degli elaboratori - II Le architetture multi-ciclo

CPU a ciclo multiplo: l unità di controllo

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

La CPU a singolo ciclo

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

Il Processore: l Unità di Controllo Principale Barbara Masucci

Architettura degli Elaboratori

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

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

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

Architettura degli Elaboratori

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

Il linguaggio macchina

Il processore: unità di elaborazione

CALCOLATORI ELETTRONICI 30 agosto 2010

Linguaggio macchina. Architettura degli Elaboratori e delle Reti. Il linguaggio macchina. Lezione 16. Proff. A. Borghese, F.

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

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

Elementi base per la realizzazione dell unità di calcolo

Calcolatori Elettronici

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

ISA e linguaggio assembler

Una CPU multi-ciclo. Sommario

Stall on load e Hazard sul controllo

Una CPU multi-ciclo. Sommario

Stall on load e Hazard sul controllo. Sommario

Fetch Decode Execute Program Counter controllare esegue prossima

Stall on load e Hazard sul controllo

Istruzioni di trasferimento dati

La struttura delle istruzioni elementari: il linguaggio Macchina. Sommario

Implementazione semplificata

Rappresentazione dell informazione

Progetto CPU (ciclo singolo)

Progetto CPU (ciclo singolo) Salvatore Orlando

Hazard sul controllo. Sommario

Calcolatori Elettronici

CALCOLATORI ELETTRONICI 27 giugno 2017

CALCOLATORI ELETTRONICI 14 giugno 2010

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

Pipeline criticità e forwarding

Università degli Studi di Cassino

Architettura degli elaboratori - II Introduzione. Introduzione alla CPU

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

Calcolatori Elettronici

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

Università degli Studi di Cassino

CALCOLATORI ELETTRONICI 29 giugno 2015

slt $t1,$t2,$t3 if ($t2<$t3) $t1=1; Confronto tra registri slti $t1,$t2,100 if ($t2<100)$t1=1; Cfr. registro-costante

CALCOLATORI ELETTRONICI 9 gennaio 2013

Lezione 18 Il Set di Istruzioni (4)

Università degli Studi di Cassino

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

Università degli Studi di Cassino e del Lazio Meridionale

CALCOLATORI ELETTRONICI 9 settembre 2011

Corso di Calcolatori Elettronici MIPS: Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M.

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

Architettura degli elaboratori MZ Compito A

CALCOLATORI ELETTRONICI A 25 gennaio 2011

Architettura degli Elaboratori B Introduzione al corso

Un quadro della situazione. Lezione 15 Il Set di Istruzioni (3) Dove siamo nel corso. Organizzazione della lezione. Cosa abbiamo fatto

Linguaggio macchina: utilizzo di costanti, metodi di indirizzamento

31!30!29!28!27!26!25!24!23!22!21!20!19!18!17!16!15!14!13!12!11!10! 9! 8! 7! 6! 5! 4! 3! 2! 1! 0! !

Lezione 17 Il Set di Istruzioni (3)

Esercitazione del 30/04/ Soluzioni

CALCOLATORI ELETTRONICI 20 gennaio 2012

Il Linguaggio Assembly: Controllo del flusso: istruzioni e costrutti

Informazioni varie. Lezione 18 Il Set di Istruzioni (5) Dove siamo nel corso. Un quadro della situazione

ISA (Instruction Set Architecture) della CPU MIPS

CALCOLATORI ELETTRONICI 27 marzo 2018

Realizzazione a cicli di clock multipli

Il processore: unità di controllo

Architettura del processore MIPS

Transcript:

L unità di controllo di CPU a singolo ciclo Prof. Alberto Borghese Dipartimento di Informatica alberto.borghese@unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo 4.2, 4.4, D, D2. /25 Sommario Costruzione di una CPU per le istruzioni di tipo I (branch). UC della CPU Control and Data path 2/25

Ciclo di esecuzione di un istruzione MIPS Prelievo istruzione (fase di fetch) Decodifica Calcolo Lettura / scrittura Esecuzione Write back A.A. 203-204 3/34 Codifica delle istruzioni Tutte le istruzioni MIPS hanno la stessa dimensione ( bit) Architettura RISC. I bit hanno un significato diverso a seconda del formato (o tipo) di istruzione il tipo di istruzione è riconosciuto in base al valore di alcuni bit (6 bit) più significativi (codice operativo - OPCODE) Le istruzioni MIPS sono di 3 tipi (formati): Tipo R (register) Lavorano su 3 registri. Istruzioni aritmetico-logiche. Tipo I (immediate) Lavorano su 2 registri. L istruzione è suddivisa in un gruppo di 6 bit contenenti informazioni + 6 bit riservati ad una costante. Istruzioni di accesso alla memoria o operazioni contenenti delle costanti. Tipo J (jump) Lavora senza registri: codice operativo + indirizzo di salto. Istruzioni di salto incondizionato. 6-bit 5-bit 5-bit 5-bit 5-bit 6-bit R op rs rt rd shamt funct I op rs rt indirizzo J op indirizzo A.A. 203-204 4/34 2

Istruzioni di salto condizionato Salti condizionati relativi: beq r, r2, L (branch on equal) bne r, r2, L (branch on not equal) Salti condizionati relativi: Il flusso sequenziale di controllo cambia solo se la condizione è vera (beq) Il calcolo del valore dell etichetta L (indirizzo di destinazione del salto) avviene a partire dal Program Counter (PC). Indirizzamento del tipo Base (PC) + Spiazzamento. (cond vera) Ind. Salto (cond fals +4 (procedi in sequenza) A.A. 203-204 5/34 CPU per l esecuzione di istruzioni di tipo R/lw/beq ALUs = Somma R op rs rt rd shamt funct 6 bit 5 bit 5 bit 5 bit 5 bit 6 bit 3 #Reg read ALUs ALUop Contenuto a #Reg read 2 Insieme di Zero Contenuto 2 registri da bit Risultato 8000 add $s, $s2, $s3 8004 sub $s4, $s, $t... #Reg write b Overflow R Contenuto Write IR W Unità Segnali di controllo Controllo PC+4 ALUs = Somma 6 #Reg read #Reg read 2 Insieme di registri da bit #Reg write I op rs rt Offset 6 bit 5 bit 5 bit 6 bit 3 Contenuto Contenuto 2 8000 lw $s, 20($s2) ALUop = Somma <$s2> + 20 ALUop = sub Read Contenuto Write A.A. 203-204 8000 beq $s, $s2, Label IR rt = Reg read 2 Unità Controllo 6/34 W Dato Write Dato read Segnali di controllo Indirizzo Memoria Dati R/W 3

Schema generale CPU + UC IR Istruzione [3-26] UC 0 Clk 0 0 R ALUop 0 ALUs Controllore della ALU: ALUop =? (ALUs non utilizzato) Controllore della CPU: Segnali_Controllo = f(opcode) A.A. 203-204 W = Clock 7/34 Osservazioni Il ciclo di esecuzione di un istruzione si compie in un unico ciclo di clock. Ogni unità funzionale può essere utilizzata sola volta. Duplicazione Memoria: Memoria dati e memoria istruzioni. Triplicazione ALU: 3 ALU: 2 sommatori + general purpose. A.A. 203-204 8/34 4

Sommario Costruzione di una CPU per le istruzioni di tipo I (branch). UC della CPU Control and Data path A.A. 203-204 9/34 Segnali di controllo su bit RegDst Nome del segnale Effetto quando è negato Il numero del registro destinazione proviene dal campo rt (R2, bit 20-6) Effetto quando è affermato Il numero del registro destinazione proviene dal campo rd (bit 5-) RegWrite Nessuno Nel registro specificato all ingresso registro scritto del Register File, viene scritto il valore presente all ingresso Dato Scritto ALUSrc Branch Il secondo operando della ALU proviene dalla seconda uscita in lettura del Register File Il valore del PC viene sostituito dall uscita del sommatore che calcola PC+4 (condizionato all uscita di ALU) Il secondo operando della ALU è la versione estesa (con segno) del campo offset Il valore del PC viene sostituito dall uscita del sommatore che calcola la destinazione del salto (condizionato all uscita di ALU) MemRead Nessuno Il contenuto della cella di memoria dati indirizzata dal MAR è posto nel MDR MemWrite Nessuno Il contenuto in ingresso al MDR, viene memorizzato nella cella il cui indirizzo è caricato nel MAR MemtoReg Il valore inviato all ingresso Dato al Register File proviene dalla ALU Il valore inviato all ingresso Dato al Register File proviene dalla memoria 0/25 5

Controllo del data-path Istruzione Reg Mem Mem RegDst ALUSrc MemtoReg (OpCode) Write Read Write Branch ALUs R (000000) 0 0 0 0 0 0 lw (000) 0 0 0 00 sw (00) x x 0 0 0 00 beq (00000) x 0 x 0 0 0 0 addi(00000 0 0 0 0 00 OpCode0 OpCode OpCode2 OpCode4 OpCode5 ALUSrc /25 OpCode0 OpCode OpCode2 OpCode3 OpCode4 OpCode5 OpCode0 OpCode OpCode2 OpCode3 OpCode4 OpCode5 RegWrite Struttura a 2 livelli di una ALU ALUop Selettore dell operazione a k Parte di calcolo Parte di selezione s k b k Le operazioni consentite dalla ALU (selezionate tramite ALUop): and 000 or 00 add 00 sub 0 slt 2/25 6

UC e ALU Data l istruzione, l UC deve inviare il comando opportuno alla ALU. Campo Op Code Campo Funct OpCode Le operazioni consentite dalla ALU: and 000 or 00 add 00 sub 0 slt Funct UC ALU ALUop Input: 6 bit Quali operazioni devono essere eseguite per le diverse istruzioni: R -> Dipende dal campo funct lw -> Somma sw -> Somma beq -> Differenza ALUop = f(opcode, Funct) 3/25 Output: 3 bit Controllo gerarchico Le operazioni consentite dalla ALU: and 000 or 00 add 00 sub 0 slt 6 Op Code UC Principale ALUs = f(opcode) 6 2 Funct UC ALU ALUop = f(alus, Funct) 3 If (OpCode == R) then Funct ALUop Else OpCode ALUop 4/25 7

Controllo della ALU Istr OpCode ALUs lw 0 0 0 0 0 sw 0 0 0 0 beq 0 0 0 0 0 0 add 0 0 0 0 0 0 0 sub 0 0 0 0 0 0 0 and 0 0 0 0 0 0 0 or 0 0 0 0 0 0 0 slt 0 0 0 0 0 0 0 OpCode0 OpCode OpCode2 OpCode3 OpCode4 OpCode5 OpCode0 OpCode OpCode2 OpCode3 OpCode4 OpCode5 ALUs ALUs0 Sintetizzo i 2 bit come SOP ALUs = f(opcode) 5/25 Controllo della ALU Istr OpCode ALUs Funct ALUop lw 0 0 0 0 0 x x x x x x 0 0 sw 0 0 0 0 x x x x x x 0 0 beq 0 0 0 0 0 0 x x x x x x 0 add 0 0 0 0 0 0 0 0 0 0 0 0 0 0 sub 0 0 0 0 0 0 0 0 0 0 0 0 and 0 0 0 0 0 0 0 0 0 0 0 0 0 0 or 0 0 0 0 0 0 0 0 0 0 0 0 slt 0 0 0 0 0 0 0 0 0 0 ALUop = f(alus, Funct) 6/25 SOP 8

Sommario Costruzione di una CPU per le istruzioni di tipo I (branch). UC della CPU Control and Data path 7/25 The control and data path 8/25 9

Rapporto UC - Dati La CPU è un architettura del tipo: Controllore - Data-path Dal mondo esterno Dati Controllore Eventuali segnali al mondo esterno Eventuali informazioni Segnali di controllo (apertura di porte) Data path Risultati Fase comune nel ciclo di esecuzione: Fase di fetch Decodifica (generazione dei segnali di controllo) Fase diversa: Esecuzione (Calcolo, Accesso memoria, WriteBack) 9/25 L unità di controllo Unità di controllo coordina i flussi di informazione (è il cervello della CPU): ) abilitando le vie di comunicazione opportune a seconda dell istruzione in corso di esecuzione. 2) selezionando l operazione opportuna delle ALU. 2 3 6 b b 2.. UC Istruzione b M 20/25 0

J Op Code = 2 L istruzione jump Indirizzo 6 bit 26 bit j 80040 L indirizzo di salto sarà determinato in due passi: A) Calcolo di Indirizzo = Indirizzo * 4. B) Deteminazione dell indirizzo di salto come: Base (PC) 000 000 00 000 0 0 0 0 + Nuovo indirizzo 000 00 0 0000 0000 000 00 00 = Indirizzo salto 000 000 00 0 0000 0000 000 00 00 L indirizzo è un numero positivo (posizione in memoria assoluta). 2/25 CPU + UC completa (aggiunta di jump) RI ALUs ALUs W R ALUop W ALUs 22/25

Controllo del data-path Istruzione (OpCode) Reg Dst ALU Src Memto Reg Reg Write Mem Read Mem Write Branch ALUs Jump R (000000) 0 0 0 0 0 0 0 lw (000) sw (00) beq (00000) J (00000) 0 0 0 00 0 x x 0 0 0 00 0 x 0 x 0 0 0 0 0 x x x 0 0 0 0 xx La lettura della memoria non è indolore soprattutto quando sono presenti dei livelli (di cache). 23/25 Contenuto della CPU per l esecuzione di istruzioni diverse RI CodOp ALUs ALUs Rs W Rt R 0x00008000 add $t0, $t, $t2 W 0x00008004 beq $s0, $s, 4 0x00008008 lw $t, ($s0) 0x0000800C sw $t, ($s0) 0x0000800 addi $t, $t, $t2 Rd Costante Funct 24/25 2

Sommario Costruzione di una CPU per le istruzioni di tipo I (branch). UC della CPU Control and Data path 25/25 3