Calcolatori Elettronici Il Processore

Slides:



Advertisements
Presentazioni simili
La struttura fisica e logica di un elaboratore
Advertisements

Classe III A A.s – 2011 Sistemi di Elaborazione e Trasmissione dell’Informazione 4 ore settimanali (2 laboratorio) Docenti Prof. Alberto Ferrari.
Dalla scrittura all’esecuzione
Definizione e tipi di implementazione
Introduzione allarchitettura dei calcolatori 2/ed Carl Hamacher, Zvonko Vranesic, Safwat Zaky Copyright © 2007 – The McGraw-Hill Companies srl Versione.
Architettura di un sistema informatico Hardware
Il Linguaggio Macchina
Architetture dei Calcolatori (Lettere j-z) Il Processore (2)
2 Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione dati memorizzazione dati trasferimento.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Caratteristiche principali dell’architettura del processore MIPS
Caratteristiche principali dell’architettura del processore MIPS
Criticità sui dati Consideriamo una sequenza di 5 istruzioni
Criticità sui dati (1° esempio)
Caratteristiche principali dell’architettura del processore MIPS
Criticità sul controllo
Criticità sui dati (esempio da fare on line)
Criticità sul controllo
Criticità sul controllo
Il livello Microarchitetturale
Il Linguaggio Macchina
Com’è fatto un elaboratore?
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per lambiente e il territorio Il calcolatore Stefano Cagnoni e Monica Mordonini Dipartimento.
L’Architettura del Sistema di Elaborazione
Architettura dell’elaboratore
ARCHITETTURA DEGLI ELABORATORI
ELETTRONICA DIGITALE (II Parte)
I blocchi fondamentali dell’elaborazione Componenti e funzionamento del calcolatore I blocchi fondamentali dell’elaborazione.
Architettura degli elaboratori
Architetture dei Calcolatori (Lettere j-z ) Il Processore
Architettura del calcolatore
Calcolatori Elettronici Introduzione al Pipelining Francesco Lo Presti Rielaborate da Salvatore Tucci.
ARCHITETTURA DI UN ELABORATORE
Unità centrale di processo
Informatica Lezione 4 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico:
Architettura di una CPU
Arch. Elab. - S. Orlando 1 Progetto del processore e supporto del processore al SO (interruzioni – eccezioni) Salvatore Orlando.
Corso di Laurea in Informatica Architettura degli elaboratori a.a La macchina programmata Instruction Set Architecture (1) Schema base di esecuzione.
Calcolatori Elettronici Introduzione al Pipelining
Architettura del calcolatore
3  Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione  elaborazione dati  memorizzazione dati 
Sistemi Elettronici Programmabili: Riepilogo 1 Sistemi digitali : Riepilogo Sistemi Elettronici Programmabili.
Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Calcolatori Elettronici Il Processore (2)
Corsi di Laurea in Biotecnologie
CALCOLATORI ELETTRONICI
Corso di Laurea in Informatica Architettura degli elaboratori a.a La macchina programmata Instruction Set Architecture (2) Istruzioni I-type Indirizzamento.
Calcolatori Elettronici Valutazione delle Prestazioni Francesco Lo Presti Rielaborate da Salvatore Tucci.
Architettura di un calcolatore e linguaggio macchina.
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
L’esecuzione dei programmi
Informatica Generale Marzia Buscemi
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Il calcolatore Stefano Cagnoni e Monica Mordonini
1 Informatica Generale Marzia Buscemi Ricevimento: Giovedì ore , Dipartimento di Informatica, stanza 306-PS o per posta.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Informatica Lezione 4 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
Struttura Fondamentale degli Elaboratori Elaboratore –È un sistema numerico –È un sistema automatico –È un sistema a programamzione registrabile –Ha una.
STRUTTURA DELL’ELABORATORE
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il sistema di elaborazione Marco D. Santambrogio – Ver. aggiornata al 15 Maggio.
Il Processore Il processore è la componente dell’unità centrale che elabora le informazioni contenute nella memoria principale L’elaborazione avviene eseguedo.
Corso di Laurea in Informatica Architettura degli elaboratori a.a La macchina programmata (3) Istruzioni J-type Istruzioni di salto Istruzioni.
Presentazione di sistemi Ambrosio Federica Anna Esposito 3C inf.
Click to add text L’ Unità di Elaborazione. Struttura : Unità di controllo: coordina attività CPU ALU: unità aritmetico-logica, esegue operazioni tra.
I Microprocessori Unità 3 del libro Internet Working Sistemi e reti.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Architettura degli elaboratori
Cammino dei Dati (Datapath)
Transcript della presentazione:

Calcolatori Elettronici Il Processore Francesco Lo Presti Rielaborate da Salvatore Tucci Give qualifications of instructors: DAP teaching computer architecture at Berkeley since 1977 Co-athor of textbook used in class Best known for being one of pioneers of RISC currently author of article on future of microprocessors in SciAm Sept 1995 RY took 152 as student, TAed 152,instructor in 152 undergrad and grad work at Berkeley joined NextGen to design fact 80x86 microprocessors one of architects of UltraSPARC fastest SPARC mper shipping this Fall 1

Architettura a Livelli: Livelli 1 e 2 Livello 2: Livello del Linguaggio Macchina (ISA) Macchina nuda come appare al programmatore di sistema. Le istruzioni del suo linguaggio sono interpretate ed eseguite dai microprogrammi del processore Moduli: Programmi L2: Linguaggio macchina R2: Registri, spazio di memoria Livello 1: Macchina Firmware – Microarchitettura Interpreta ed esegue le istruzioni del linguaggio macchina E’ direttamente realizzato con i componenti della macchina hardware Moduli - Unita’ di Elaborazione: CPU, Memoria, Unita’ di I/O L1: Linguaggio di Microprogrammazione R1: Reti combinatorie e sequenziali CPU 2 2

Unità di elaborazione dati Organizzazione di un Calcolatore Unità di controllo Unità di elaborazione dati Memoria Processore Dispositivi di I/O Interfaccia di I/O Bus dati indirizzi controllo CPU 3 3

Processore - Central Processing Unit (CPU) Provvede all’esecuzione delle istruzioni macchina Ciclo di Esecuzione Prelievo Istruzione dalla Memoria Decodifica Istruzione Esecuzione Istruzione Processore e’ composto da due sottosistemi: Unità di Controllo (Control) – Parte di Controllo Controlla il sequenziamento e l’esecuzione delle istruzioni generando i segnali di controllo Unita’ di Elaborazione Dati (Datapath) – Parte Operativa Esegue le istruzioni ALU Esegue operazioni logico aritmetiche sui dati Banco di Registri (Register File) Memoria interna CPU Program Counter (PC) Indirizzo Prossima Istruzione Instruction Register (IR) Codice Istruzione da eseguire CPU 4 4

Processore - Central Processing Unit (CPU) Implementazione set ridotto del MIPS Istruzioni di accesso alla memoria: lw e sw Istruzioni logico-aritmetiche: add, sub, and, or e slt Istruzioni di branch: beq Istruzioni di jump: j Lunghezza formato: 32 bit; i tre formati delle istruzioni: Tipo R Tipo I Tipo J I campi op: operazione dell’istruzione rs, rt, rd: registri sorgente (due) e destinazione shamt: shift amount funct: seleziona la variante dell’operazione nel campo op address/immediate: offset dell’indirizzo o valore immediato target address: indirizzo dell’istruzione di jump op target address 26 31 6 bits 26 bits rs rt rd shamt funct 6 11 16 21 5 bits immediate 16 bits CPU 5 5

Passi di Progetto 1. Selezionare i Componenti del Datapath Analizzare il set di Istruzioni: Requisiti del Dapapath Analizzare la semantica di ogni istruzione Espressa intermini di trasferimenti e operazioni tra registri Il datapath deve includere il banco dei registri (register file) Sono necessari altri registri, non visibili a livello ISA, e.g., PC Il datapath deve fornire i cammini per permettere tutti i trasferimenti tra registri necessari, e gli accessi in memoria Includeremo la memoria nel progetto (per semplicita’) 1. Selezionare i Componenti del Datapath 2. Assemblare il Datapath secondo i requisiti aggiungendo i segnali di controllo 3. Analizzare l’implementazione di ogni istruzione per determinare quali segnali di controllo devono essere affermati o meno per permetterne l’esecuzione 4. Realizzare la Parte di Controllo (Control) in accordo a quanto stabilito al punto 4 del paragrafo precedente. CPU 6 6

Semantica Istruzioni e RTL RTL (Register-Transfer Language): Linguaggio per esprimere i trasferimenti tra registri (e memoria), Permette di definire la semantica di ogni istruzione M[x] contenuto della memoria indirizzo x R[y] contenuto registro y Es: add rd, rs, rt R[rd]=R[rs]+R[rt], PC=PC+4; Es:load rt, offset(rs) R[rt]=M[R[rs]+sign_ext(offset)], PC=PC+4; Es: beq rs, rt, address If(R[rs]==R[rt]) then PC=PC+4+sign_ext(address)<<2; else PC=PC+4; Tutte richiedono come passo preliminare il prelievo dell’istruzione dalle memoria (fetch) Istruzione=M[PC] CPU 7 7

Implementazione del set ridotto I primi due passi da implementare sono comuni a tutte le istruzioni,indipendentemente dalla classe di istruzione: Inviare l’uscita del Program Counter (PC) alla memoria che contiene il programma, caricare l’istruzione (Fetch) ed aggiornare PC Decodifica dell’Istruzione (Decode) (e lettura registri) La fase di esecuzione (Execute) dipende dall’istruzione Sono comunque raggruppabili per classi di istruzioni Dopo aver letto i registri, tutte le istruzioni usano l’ALU (eccetto j) Le istruzioni di accesso alla memoria per calcolare l’indirizzo Le istruzioni logico-aritmetiche per effettuare l’operazione L’istruzione beq per verificare l’uguaglianza fra registri CPU 8 8

Implementazione del set ridotto (2) Poi il comportamento delle istruzioni si differenzia Istruzioni di accesso alla memoria Devono accedere alla memoria per leggere/scrivere il dato Istruzioni logico-aritmetiche Devono accedere ad un registro per scrivere il risultato Istruzioni di branch e jump Devono modificare il Program Counter Vantaggio della semplicità nella progettazione Pochi formati di istruzione facilitano l’implementazione dell’unità di elaborazione CPU 9 9

I cinque passi delle istruzioni I cinque passi delle istruzioni da effettuare Fetch (caricamento) dell’istruzione dalla memoria Decode dell’istruzione e fetch dei registri Execute Uso della ALU (esecuzione dell’operazione o calcolo dell’indirizzo) Memory Access Accesso ad un operando in memoria Write-back Scrittura del risultato in un registro CPU 10 10

Una visione astratta 5: write-back 1: fetch 2: decode e register fetch 3: execute 4: mem. CPU 11 11

Progettazione dell’unità di elaborazioni dati e prestazioni Le prestazioni di un calcolatore sono determinate da: Numero di istruzioni Instruction Count (IC) Durata del ciclo di clock (TCLOCK) Cicli di clock per istruzione Clock cycle Per Instruction (CPI) La progettazione del processore (unità di elaborazione e unità di controllo) determina Durata del ciclo di clock Cicli di clock per istruzione (CPI) CPI IC TCLOCK CPU 12 12

Implementazione del Processore: Approcci Singolo Ciclo Esecuzione di ogni istruzione richiede 1 ciclo di clock =>Il ciclo di clock deve essere abbastanza lungo da permettere il completamento dell’istruzione piu’ lenta Svantaggio: velocita’ limitata dall’istruzione piu’ lenta supportata, alcune risorse devono essere replicate Multi-Ciclo Suddividere l’esecuzione in piu’ passi Eseguire un passo per ciclo Vantaggio: ogni istruzione richiede il solo numero di cicli (tempo) richiesto Tclock(Singolo Ciclo)> Tclock (Multiplo Ciclo) Pipelined Processare piu’ istruzioni in parallelo Elaborazione in contemporanea di step diversi di istruzioni consecutive (linea di assemblaggio) CPU 13 13

Implementazione Singolo Ciclo Prima implementazione impiega in singolo ciclo di clock per ogni istruzione Ogni istruzione inizia sul fronte attivo di un ciclo di clock e termina sul fronte attivo del ciclo di clock successivo Approccio non pratico e inefficiente rispetto ad una implementazione multiciclo Ogni istruzione richiede esattamente tanto tempo quanto il tempo di esecuzone dell’istruzione piu’ lenta Nell’implementazioni multiciclo questo problema si evita permettendo alle istruzioni piu’ veloci di essere eseguite in un numero inferiore di cicli Tuttavia e’ semplice e utile da un punto di vista didattico Nota: Implementeremo il jump solo alla fine della trattazione CPU 14 14

•Fase di Fetch I Blocchi della Progettazione Accedere all’istruzioni in memoria ed aggiornare PC •Decode, Accesso ai registri ed esecuzione istruzioni formato R Istruzioni logico-aritmetiche •Decode, Accesso ai registri ed operazioni di accesso alla memoria Istruzioni load/store •Decode, Accesso ai registri per i branch Istruzione beq CPU 15 15

Datapath: Fetch Istruzione e aggiornamento PC Instruction = M[PC] PC = PC + 4 CPU 16 16

Datapath: Fetch Istruzione e aggiornamento PC Instruction = M[PC] PC = PC + 4 CPU 17 17

Datapath: Fetch Istruzione e aggiornamento PC Instruction = M[PC] PC = PC + 4 CPU 18 18

Datapath: Istruzioni formato R add rd, rs, rt R[rd] =R[rs] + R[rt]; CPU 19 19

Datapath: Istruzioni formato R add rd, rs, rt R[rd] =R[rs] + R[rt]; CPU 20 20

R[rt] =M[R[rs] + sign_ext(offset)]; Datapath: Istruzioni Load/Store lw rt, offset(rs) R[rt] =M[R[rs] + sign_ext(offset)]; CPU 21 21

R[rt] =M[R[rs] + sign_ext(offset)]; Datapath: Istruzione Load lw rt, offset(rs) R[rt] =M[R[rs] + sign_ext(offset)]; CPU 22 22

M[R[rs] + sign_extend(offset)]=R[rt] Datapath: Istruzione Store sw rt, offset(rs) M[R[rs] + sign_extend(offset)]=R[rt] CPU 23 23

Datapath: Istruzione di Salto beq rs, rt, offset if (R[rs] == R[rt]) then PC = PC+4 + sign_ext(offset)<<2 CPU 24 24

Datapath: Istruzione di Salto beq beq rs, rt, offset if (R[rs] == R[rt]) then PC = PC+4 + sign_ext(offset)<<2 CPU 25 25

Composizione dei blocchi Uniamo il blocco relativo alle istruzioni di accesso alla memoria con quello per le istruzioni di tipo R Multiplexer per scegliere se il secondo operando è un indirizzo (tipo I) oppure il dato in un registro (tipo R) Multiplexer per scegliere se ai registri va il dato dalla memoria (tipo I) oppure il risultato dell’operazione (tipo R) CPU 26 26

Datapath: Istruzioni formato R add rd,rs,rt CPU 27 27

Datapath: Istruzione Load lw rt,offset(rs) CPU 28 28

Datapath: Istruzione Store sw rt,offset(rs) CPU 29 29

Composizione dei blocchi Aggiungere il blocco che esegue il fetch ALU e Adder Separati perche’ entrambi devono Poter essere usati nello stesso ciclo Memoria Istruzioni e dati Separate per Poter leggere e scrivere nello stesso ciclo CPU 30 30

Multiplexer per scegliere indirizzo della prossima istruzione Composizione dei blocchi Multiplexer per scegliere indirizzo della prossima istruzione Aggiungiamo il blocco per il beq Adder addizionale CPU 31 31

Datapath: add add rd, rs, rt CPU 32 32

Datapath: lw lw rt,offset(rs) CPU 33 33

Datapath: sw sw rt,offset(rs) CPU 34 34

Datapath: beq beq r1,r2,offset CPU 35 35

Controllo L’Unita di Controllo deve generare: Basandosi su… I segnali di controllo dell’ALU I segnali di controllo dei vari multiplexer I segnali di abilitazione alla scrittura/lettura dei diversi elementi di memoria Basandosi su… I segnali in ingresso all’unita’ di Controllo I bit del campo opcode (e funct nel caso del formato R) dell’istruzione Opcode Read/Write Memorie 6 Controllo Controllo MUX Funct 6 Controllo ALU rs rt rd shamt funct 6 11 16 21 26 31 6 bit 5 bit 25 20 15 10 5 Istruzione di tipo R 35 o 43 rs rt address 16 21 26 31 6 bit 16 bit 5 bit 25 20 15 Istruzione di load o store 4 rs rt address 16 21 26 31 6 bit 16 bit 5 bit 25 20 15 Istruzione beq CPU 36 36

Suddivisione in Main Control e ALU Control Per semplificare la progettazione/circuito Bit di funct (formato R) servono solo per il controllo dell’ALU Specificano l’operazione da eseguire: add,sub,and,or, o slt ALUOp serve per specificare il tipo di istruzione lw/sw beq o formato R) Opcode ed ALUOp load/store ALUOp=00 beq ALUOp=01 Formato R ALUOp=10 Opcode Read/Write Memorie Opcode Read/Write Memorie 6 6 Controllo Controllo MUX Controllo Controllo MUX Funct 6 Controllo ALU ALUOp 2 ALU Control Controllo ALU Funct 6 CPU 37 37

Controllo ALU=ALU operation Controllo dell’ALU Istruzioni ed Operazioni Richieste Load/store ALUOp=00 somma beq ALUOp=01 sottrazione Formato R ALUOp=10 spec. dal campo funct Linee di controllo Ainvert (1 bit), Bnegate (1 bit) e Operation (2 bit) dell’ALU 0000 = and 0001 = or 0010 = add 0110 = sub 0111 = slt 1100 = nor Poiche’ manca nor nel set ristetto ignoriamo Ainvert Il controllo dell’ALU richiede solo gli ultimi 3 bit ALUOp 2 ALU Control Controllo ALU=ALU operation Funct 6 CPU 38 38

Controllo dell’ALU (2) * Input Output Instruction AluOp Instruction Funct Field Desired ALU control opcode operation ALU action LW 00 load word xxxxxx add 010 SW 00 store word xxxxxx add 010 Branch eq 01 branch eq xxxxxx sub 110 R-type 10 add 100000 add 010 R-type 10 sub 100010 sub 110 R-type 10 AND 100100 and 000 R-type 10 OR 100101 or 001 R-type 10 set on less 101010 set on less 111 Input Output Tabella di Verita’ dell’ ALU Control ALUOp Funct field ALU Control ALUOp1 ALUOp0 F5 F4 F3 F2 F1 F0 X 010 1 110 000 001 111 * ALUOp 2 ALU Control Controllo ALU Funct 6 CPU 39 39

Controllo dell’ALU: Implementazione Input Output ALUOp Funct field ALU Control Tabella di Verita’ dell’ ALU Control ALUOp1 ALUOp0 F5 F4 F3 F2 F1 F0 X X X X X X 010 * 1 X X X X X X 110 1 X X X 010 1 X X X 1 110 1 X X X 1 000 1 X X X 1 1 001 1 X X X 1 1 111 CPU 40 40

Progettazione dell’Unita’ di Controllo R-type opcode rs rt rd shamt funct 31-26 25-21 20-16 15-11 10-6 5-0 Load/store or branch opcode rs rt address 31-26 25-21 20-16 15-0 Osservazioni sul formato Istruzioni MIPS Il codice operativo (campo opcode) e’ sempre nei bit 31-26 I due registri da leggere sono sempre rs (bit 25-21) e rt (bit 20-16) Il registro base per load e store e’ sempre il registro rs (bit 25-21) L’offset a 16-bit per beq,load e store e’ sempre nei bit 15-0 Il registro di destinazione e’ bit 20-16 (rt) per load bits 15-11 (rd) per le istruzioni R Occorre un ulteriore multiplexer per indicare quale campo dell’istruzione indica il registro destinazione CPU 41 41

Registro da scrivere viene da rt o da rd Datapath e Controllo I M e m t o R g a d W r i A L U O p S c D s P C I n u y [ 3 1 – ] 2 6 5 4 x l Z h f Registro da scrivere viene da rt o da rd CPU 42 42

I segnali di controllo ad 1 bit Segnale 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 Scrittura di PC con PC+4 Scrittura di PC con l’output del sommatore per il branch MemRead Lettura della locazione di memoria indicata da Address MemWrite Scrittura della locazione di memoria indicata da Address MemtoReg Il valore in Write data (registri) viene dalla ALU Il valore in Write data (registri) viene dalla memoria dati CPU 43 43

Datapath e Controllo II CPU 44 44

Datapath con Controllo II PCSrc non dipende dal solo opcode PCSrc=1 se l’istruzione e’ beq e Zero=1 Datapath con Controllo II Opcode Istruzione e Segnali di Controllo Instruction RegDst ALUSrc Memto- Reg Write Mem Read Branch ALUOp1 ALUp0 R-format 1 lw sw X beq CPU 45 45

Segnali di Controllo: Istruzioni Formato R ??? Value depends on funct 1 1 Control signals shown in blue CPU 46 46

Segnali di Controllo: Istruzione lw 010 1 1 1 Control signals shown in blue 1 CPU 47 47

Segnali di Controllo: Istruzione sw 010 X 1 X 1 Control signals shown in blue CPU 48 48

Segnali di Controllo: Istruzione beq 1 if Zero=1 110 X X Control signals shown in blue CPU 49 49

Datapath con Controllo II PCSrc non dipende dal solo opcode PCSrc=1 se l’istruzione e’ beq e Zero=1 Datapath con Controllo II Opcode Istruzione e Segnali di Controllo Instruction RegDst ALUSrc Memto- Reg Write Mem Read Branch ALUOp1 ALUp0 R-format 1 lw sw X beq CPU 50 50

Implementazione dell’unita’ di Controllo Principale Rete Combinatoria realizzabile tramite PLA Segnale form. lw sw beq R Op5 0 1 1 0 Op4 0 0 0 0 Op3 0 0 1 0 Op2 0 0 0 1 Op1 0 1 1 0 Op0 0 1 1 0 RegDst 1 0 x x ALUSrc 0 1 1 0 MemtoReg 0 1 x x RegWrite 1 1 0 0 MemRead 0 1 0 0 MemWrite 0 0 1 0 Branch 0 0 0 1 ALUOp1 1 0 0 0 ALUOP0 0 0 0 1 Inputs =Opcode Outputs Tabella di verita’ dell’unita’ di Controllo CPU 51 51

Controllo a Singolo Ciclo Definito da una coppia di tabelle di verita’ Controllo Principale e Controllo ALU Rete Combinatoria Zero PCSrc CPU 52 52

Controllo a Singolo Ciclo Il Controllo della CPU a singolo ciclo e’ una rete combinatoria Il Datapath e’ una rete sequenziale L’output dipende dagli ingressi e dai valori dagli elementi di memoria (Registri e PC) Il ciclo di clock deve durare abbastanza da stabilizzare le uscite di tutte le reti combinatorie prima del fronte di discesa del clock Clock in AND con i segnali di controllo di scrittura I valori in ingresso vengono scritti solo se i segnali sono affermati Ciclo di Clock determinato sulla base del percorso piu’ lungo CPU 53 53

Operation=f(ALUOp,funct) Diagramma a blocchi della CPU (Datapath e Control) e Memoria Istruzione <31:26> <5:0> Mem. Istr. rs,rt,rd,Imm Addr Opcode Funct CONTROLLO Operation=f(ALUOp,funct) PCRsr=Branch∙Zero RegDst ALUSrc MemtoReg MemWr MemRd RegWr Zero PC Register file ALU DATAPATH Addr Mem. Dati CPU 54 54

Datapath e Controllo III: Istruzione j Jump opcode address 31-26 25-0 Ulteriore multiplexer con Segnale di controllo jump Calcolo dell’indirizzo di salto CPU 55 55

Datapath e Controllo III: Istruzione j CPU 56 56

Ciclo di Clock dell’Implementazione a singolo ciclo L’implementazione singolo ciclo e’ inefficiente Una istruzione per ciclo, CPI=1, ma… Il tempo di ciclo e’ determinato dall’istruzione piu’ lunga Quale? CPU 57 57

Ciclo di Clock dell’Implementazione a singolo ciclo Calcolo del tempo di ciclo assumendo ritardi nulli per multiplexer, unita’ di controllo, estensione del segno, accesso PC, shift left, linee) eccetto : Memoria Istruzione e Dati (2ns) ALU ed addizionatori (2ns) Accesso al banco dei registri (1ns) Instr. Mem I Reg Rd ALU Op Mem D Reg Wr Total R-type load store beq jump 2 1 6 2 1 8 2 1 7 2 1 5 2 CPU 58 58

Problemi con l’Implementazione a Singolo Ciclo Il tempo di ciclo e’ determinato dall’istruzione piu’ lenta Nel nostro caso e’ load, ma cosa succederebbe se considerassimo anche istruzioni floating point? Perdita di tempo moltre istruzioni possono essere eseguite in un tempo minore Le risorse che devono essere usate piu’ di una volta nello stesso ciclo devono essere duplicate Spreco di hardware/chip area CPU 59 59

Problemi con l’Implementazione a Singolo Ciclo Possibili soluzioni Usare un periodo di clock variabile per ogni tipo di istruzione Soluzione non pratica Approccio Multiciclo Usare un tempo di ciclo piu’ piccolo… Ma permettere l’esecuzione di istruzioni diverse sia completata in piu’ cicli Dividendo l’esecuzione in passi Eseguendo un singolo passo per ciclo CPU 60 60