Calcolatori Elettronici



Documenti analoghi
Architettura di tipo registro-registro (load/store)

CALCOLATORI ELETTRONICI 15 aprile 2014

CALCOLATORI ELETTRONICI 29 giugno 2011

L unità di controllo di CPU multi-ciclo

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

CALCOLATORI ELETTRONICI 29 giugno 2010

CPU. Maurizio Palesi

CALCOLATORI ELETTRONICI 31 marzo 2015

Tutorato Architettura degli elaboratori

Hazard sul controllo. Sommario

Calcolatori Elettronici

Esercitazione sulle CPU pipeline

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti

Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica. prof. ing. Corrado Santoro

Controllo con macchina a stati finiti

L unità di controllo di CPU a singolo ciclo

Corso di Calcolatori Elettronici I A.A Il processore Lezione 18

Calcolatori Elettronici. La Pipeline Criticità sui dati Criticità sul controllo Cenni sull unità di controllo

La macchina programmata Instruction Set Architecture (1)

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

Architettura del calcolatore

ESERCIZIO 1 Riferimento: PROCESSORE PIPELINE e CAMPI REGISTRI INTER-STADIO

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

L architettura di riferimento

Architettura di un calcolatore: introduzione

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

Calcolatori Elettronici

Lezione n.19 Processori RISC e CISC

Implementazione semplificata

Progetto CPU (ciclo singolo) Salvatore Orlando

Struttura del calcolatore

Richiami sull architettura del processore MIPS a 32 bit

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

Il Processore: l Unità di Controllo Principale Barbara Masucci

Calcolatori Elettronici B a.a. 2006/2007

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

L'architettura del processore MIPS

Richiami sull architettura del processore MIPS a 32 bit

ESERCIZIO 1 Riferimento: PROCESSORE PIPELINE e CAMPI REGISTRI INTER-STADIO

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

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

Sommario Introduzione al linguaggio Assembly. Calcolatori Elettronici Prof. Gian Luca Marcialis. Le operazioni fondamentali

ARCHITETTURE MICROPROGRAMMATE. 1. Necessità di un architettura microprogrammata 1. Cos è un architettura microprogrammata? 4

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

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):

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

La microarchitettura. Didattica della strumentazione digitale e sistemi a microprocessore anno accademico pagina 1

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata

ARCHITETTURA DELL ELABORATORE

Elementi di Informatica e Programmazione. # Memoria di massa. Problema: comprare un PC. Architettura del calcolatore. Architettura di Von Neumann

Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014

C. P. U. MEMORIA CENTRALE

Esame di INFORMATICA

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

Prelievo di un istruzione. Istruzioni macchina. Tipi di istruzioni. Registri principali della CPU e loro ruolo

Elementi base per la realizzazione dell unità di calcolo

Transcript:

Calcolatori Elettronici CPU a singolo ciclo assimiliano Giacomin

Schema del processore (e memoria) Unità di controllo Condizioni SEGNALI DI CONTROLLO PC emoria indirizzo IR dato letto UNITA DI ELABORAZIONE (DATAPATH) dato scritto 2

Processore a singolo ciclo: idea di base Unità di controllo COBINATORIA Condizioni SEGNALI DI CONTROLLO PC ES: istrzione add rd, rs, rt emoria indirizzo dato letto rs rt rd Regwrite Reg. File Src2 Src ALUctrl dt dato scritto 3

Spiegazione lcido precedente I segnali di controllo determinano, a seconda del tipo di istrzione: - il percorso sorgente-destinazione dei dati mediante: indirizzi e nmeri registri + segnali di controllo ai mltipleer - le operazioni aritmetiche e logiche effettivamente svolte mediante: segnali di controllo alle ALU - se n elemento di memoria deve scrivere e/o leggere n dato mediante: segnali di tipo read/write Avremo qindi la determinazione di n percorso del tipo: CK Sorgente F Dest. CK dove: - sorgente e destinazione possono coincidere - valore sorgente disponibile nel corso del ciclo, destinazione scritta alla fine 4

Temporizzazione PC emoria istrzioni fornisce istrzione corrente all nità di controllo Unità di controllo prodce in otpt segnali di controllo al datapath: controllo UX, read e write ad elementi di memoria, controllo ALU è si crea n percorso stabile sorgente-destinazione Valori all ingresso della destinazione (registri o memoria) stabili prima della fine del ciclo Valori in ingresso scritti nella destinazione: disponibili in lettra drante il prossimo ciclo 5

PROGETTAZIONE DATAPATH (CASO IPS) 6

Nella progettazione della CPU, faremo riferimento alle segenti istrzioni: Istrzioni aritmetiche: add, sb, and, or, slt add rd, rs, rt // rd rs + rt slt rd, rs, rt // rd = se rs < rt, altrimenti Istrzioni di accesso a memoria: lw rt, offset(rs) // rt [rs+offset] sw rt, offset(rs) // [rs+offset] rt Istrzioni di salto condizionato: beq rs, rt, offset // se rs=rt salta a offset istrzioni rispetto a PC (aggiornato a istrzione corrente + 4 bytes!) in bytes: PC + (offset ) Salto incondizionato: j offset // salta all indirizzo in istrzioni ottento da: 4 bit di PC offset [3 bit] indirizzo in byte è la concatenazione di 4 bit di PC offset [32 bit] 7

Codifica delle istrzioni viste: 3 26 25 22 6 5 Op rs rt rd Shift_amont fnct Aritmetiche: Tipo-R ADD: op 6 5 SUB: AND: OR: SLT: 3 6 5 Op rs rt offset = : lw = : sw beq 26 25 22 = + PC + (offset ) lw, sw, beq: Tipo-I 3 26 25 Op offset J: Tipo-J PC offset 8

Note slla codifica tili per la progettazione - Aritmetiche e logiche - lw, sw - beq - j Tipo-R Tipo-I Tipo-J 3 26 25 Op rs rt rd Shift_amont fnct 3 26 25 22 22 6 5 6 5 Op rs rt offset 6 5 Tipo-R Tipo-I 3 26 25 Op offset Tipo-J La progettazione è facilitata dal fatto che: - Campo Op sempre in [3-26] - i registri da leggere sono sempre in rs e rt - il registro base [da sommare] per lw e sw è rs [primo ingresso della ALU] - l offset a 6 bit da sommare per beq, lw, sw è in [5-] Il registro s ci scrivere pò essere rd (per operaz. di TIPO-R) o rt (per lw) 9

Le fasi (informalmente) Fetch (gale per ttte le istrzioni) Lettra registri: - Tipo-R, beq, sw: rs e rt - lw: rs Uso della ALU: - Tipo-R (per esegire l operazione): rs e rt - accesso alla memoria (per calcolare l indirizzo): rs e offset - beq (per confrontare i registri): rs e rt Uso della memoria - lw: in lettra (per prelevare rt) - sw: in scrittra (per memorizzare rt) Scrittra registri - Tipo-R: rd - lw: rt

Consideriamo inizialmente solo le istrzioni aritmetiche (es. add) FETCH

Consideriamo inizialmente solo le istrzioni aritmetiche (es. add) READ WRITE EX 2

Integrazione delle altre istrzioni Ogni elemento sato più di na volta nell eseczione di na istrzione dplicato: - emoria dati (lw, sw) emoria programmi (fase di fetch di ttte le istrzioni) - ALU (lw, sw, beq, aritmetiche) Sommatore PC + 4 (ttte le istrzioni) Sommatore PC+offset (beq) Per integrare i diversi elementi: - ALU principale deve effettare diverse operazioni a seconda dell istrzione - servono UX per selezionare i dati s ci n elemento fnzionale lavora (diversi da istrzione a istrzione) 3

Integrazione della lw e sw ALUoper 4

Integrazione della beq ALUoper 5

Integrazione della j Shift left 2 2 ALUoper 6

PROGETTAZIONE UNITA DI CONTROLLO 7

Il controllo (combinatorio) della ALU Unità di controllo è critica dal pnto di vista delle performance più livelli di controllo: dimensioni, velocità fnct A L U ALU control zero ris AlOper AlOp opcode ALUOp Operation fnct ALU fnction ALU Oper lw load word XXXXXX add sw store word XXXXXX add beq branch eqal XXXXXX sbtract R-type add add sbtract sbtract AND AND OR OR set-on-less-than set-on-less-than 8

Shift left 2 2 9

Semplificazione segnale di controllo per beq (senza la j) Shift left 2 Branch 2

Semplificazione segnale di controllo per beq e j + CONTROLLO! Instrction [25 ] Shift Jmp address [3 ] left 2 26 28 4 Add PC+4 [3 28] Instrction [3 26] Control RegDst Jmp Branch em emtoreg ALUOp em ALUSrc Reg Shift left 2 Add ALU reslt PC address Instrction memory Instrction [3 ] Instrction [25 2] Instrction [2 6] Instrction [5 ] register data register 2 Registers data 2 register data Zero ALU ALU reslt Address data Data memory data Instrction [5 ] 6 Sign 32 etend ALU control Instrction [5 ] 2

Nota si segnali di controllo: - i segnali di controllo sono determinati in modo combinatorio soltanto slla base del campo Opcode - non è in generale possibile prevedere l ordine di arrivo dei segnali di controllo: le operazioni non sono esegite in seqenza, controllo combinatorio (è necessario che T clock sia sfficientemente lngo) Prima di progettare l nità di controllo, vediamo allora alcni esempi di eseczione delle istrzioni 22

Esempio: istrzione di tipo-r Instrction [25 ] Shift Jmp address [3 ] left 2 26 28 4 Add PC+4 [3 28] Instrction [3 26] Control RegDst Jmp Branch em emtoreg ALUOp em ALUSrc Reg Shift left 2 Add ALU reslt PC address Instrction memory Instrction [3 ] Instrction [25 2] Instrction [2 6] Instrction [5 ] register data register 2 Registers data 2 register data Zero ALU ALU reslt Address data Data memory data Instrction [5 ] 6 Sign 32 etend ALU control Instrction [5 ] 23

Esempio: istrzione lw Instrction [25 ] Shift Jmp address [3 ] left 2 26 28 4 Add PC+4 [3 28] Instrction [3 26] Control RegDst Jmp Branch em emtoreg ALUOp em ALUSrc Reg Shift left 2 Add ALU reslt PC address Instrction memory Instrction [3 ] Instrction [25 2] Instrction [2 6] Instrction [5 ] Instrction [5 ] register data register 2 Registers data 2 register data 6 Sign 32 etend ALU control Zero ALU ALU reslt Address data read Data memory data Instrction [5 ] 24

Esempio: istrzione beq Instrction [25 ] Shift Jmp address [3 ] left 2 26 28 4 Add PC+4 [3 28] Instrction [3 26] Control RegDst Jmp Branch em emtoreg ALUOp em ALUSrc Reg Shift left 2 Add ALU reslt PC address Instrction memory Instrction [3 ] Instrction [25 2] Instrction [2 6] Instrction [5 ] register data register 2 Registers data 2 register data Zero ALU ALU reslt Address data Data memory data Instrction [5 ] 6 Sign 32 etend ALU control Instrction [5 ] 25

Progetto e realizzazione dell nità di controllo principale RegDst Istrzione[3-26]: campo opcode Jmp Branch emread emtoreg ALUOp em ALUSrc Reg E na rete combinatoria: - slla base di opcode (istrzione da esegire) deve selezionare i valori dei segnali di controllo Pò essere specificata da tabella di verità e implementata nei modi visti (porte logiche, PLA, RO) 26

ISTRUZ RegDst Jmp Branch em emto Reg ALUOp em ALUSrc Tipo-R lw sw X X beq X X j X X X XX X Opcode [6 bit] Reg 27

PRESTAZIONI DEL PROCESSORE SINGOLO CICLO Prestazioni di n processore valtate slla base del tempo di eseczione di n dato programma T CPU = #istrzioni * T istrzione Per n processore a singolo ciclo T CPU = #istrzioni * T clock T clock = ma {T I } = ma {T I a + T Ik } I istrzioni I istrzioni cammino critico T clock determinato dall istrzione più lnga 28

Esempio: istrzione di tipo-r Instrction [25 ] Shift Jmp address [3 ] left 2 26 28 4 Add PC+4 [3 28] Instrction [3 26] Control RegDst Jmp Branch em emtoreg ALUOp em ALUSrc Reg Shift left 2 Add ALU reslt PC address Instrction memory Instrction [3 ] Instrction [25 2] Instrction [2 6] Instrction [5 ] register data register 2 Registers data 2 register data Zero ALU ALU reslt Address data Data memory data Instrction [5 ] 6 Sign 32 etend ALU control Instrction [5 ] 29

Tipo-R emoria Istrz. Reg. File A L U Reg. File sw emoria Istrz. Reg. File A L U emoria Dati lw emoria Istrz. Reg. File A L U emoria Dati Reg. File Istrzione più lnga: lw 3