CALCOLATORI ELETTRONICI 31 marzo 2015



Похожие документы
CALCOLATORI ELETTRONICI 29 giugno 2010

CALCOLATORI ELETTRONICI 15 aprile 2014

CALCOLATORI ELETTRONICI 29 giugno 2011

Architettura di tipo registro-registro (load/store)

Controllo con macchina a stati finiti

L unità di controllo di CPU multi-ciclo

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

Esercitazione sulle CPU pipeline

Hazard sul controllo. Sommario

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

Tutorato Architettura degli elaboratori

Calcolatori Elettronici

CPU. Maurizio Palesi

Calcolatori Elettronici

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

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

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

Architettura del calcolatore

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

Università degli Studi di Cassino e del Lazio Meridionale

Calcolatori Elettronici

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine.

Memoria Virtuale. Anche la memoria principale ha una dimensione limitata. memoria principale (memoria fisica) memoria secondaria (memoria virtuale)

La memoria centrale (RAM)

MODELLO DLX IN UNISIM

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput

Lezione n.19 Processori RISC e CISC

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

Calcolatori Elettronici B a.a. 2008/2009

Lezione 3: Architettura del calcolatore

Richiami sull architettura del processore MIPS a 32 bit

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

Studente: SANTORO MC. Matricola : 528

La macchina programmata Instruction Set Architecture (1)

Architettura dei Calcolatori Parte Operativa e Parte Controllo

Laboratorio di Architettura degli Elaboratori A.A. 2015/16 Circuiti Logici

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

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

Von Neumann. John Von Neumann ( )

Struttura del calcolatore

Calcolatori Elettronici

Architettura di un calcolatore: introduzione

L unità di controllo di CPU a singolo ciclo

CPU pipeline 4: le CPU moderne

Schedulazione dinamica. Elettronica dei Calcolatori 1

Creare diagrammi di Gantt con Visio 2003

L'architettura del processore MIPS

Basi di dati 30 settembre 2010 Compito A

Guida alla registrazione on-line di un DataLogger

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

DMA Accesso Diretto alla Memoria

Basi di Dati Relazionali

Calcolatori Elettronici B a.a. 2006/2007

Basi di dati 9 febbraio 2010 Compito A

Richiami sull architettura del processore MIPS a 32 bit

Транскрипт:

CALCOLATORI ELETTRONICI 31 marzo 2015 NOME: COGNOME: MATR: Scrivere nome, cognome e matricola chiaramente in caratteri maiuscoli a stampa 1. Tradurre in linguaggio assembly MIPS il seguente frammento di codice in linguaggio C. Si assuma che la variabile i sia mantenuta nel registro s0, gli indirizzi dei vettori v1 e v2 nei registri s1 e s2. [6] for(i=0; i<10; i++){ if(v1[i]>v2[i] && v2[i]>10) v1[i]=v1[i]-v2[i]; else v1[i]=i; }

2. Si vuole implementare un processore mediante una pipeline a 4 stadi (F, D, E, W), in grado di eseguire le seguenti istruzioni, il cui significato è riportato a commento (per semplicità, si faccia riferimento solo alle seguenti istruzioni trascurando ad esempio le varie tipologie di salti): add rd, rs lw rd, (rs) sw rd, (rs) // rd rd+rs // rd M[rs] // M[rs] rd Nella pagina seguente è riportato uno schema incompleto di datapath. Si chiede di: 1) completare i collegamenti tra unità funzionali e registri interstadio negli stadi D, E, W inserendo eventualmente opportuni multiplexer e indicando i segnali di controllo necessari; 2) disegnare nel datapath l unità di controllo (che può essere schematizzata con un ovale) e i relativi collegamenti; 3) disegnare accuratamente nel datapath i collegamenti dei segnali di controllo negli stadi D, E, W; 4) fornire per mezzo di una tabella la specifica dell unità di controllo (i codici operativi delle istruzioni possono essere specificati in forma simbolica). [10]

3. Si consideri il seguente frammento di codice MIPS: add $t1, $t0, $t2 lw sw lw $t1, 40($t1) $t1, 28($t1) $t2, 32($t1) sub $t2, $s0, $t2 Si consideri l implementazione con pipeline a 5 stadi (F: Fetch, D: Decode, E: Execute, M: Mem, W: Write-Back). Si chiede di: a) individuare in modo preciso tutte le dipendenze tra i dati b) tracciare il diagramma temporale delle istruzioni (indicando esplicitamente le eventuali propagazioni e, per ognuna di esse, quale dato è propagato) in ognuna delle seguenti ipotesi: - non è disponibile alcuna unità di propagazione - è disponibile un unità di propagazione verso lo stadio E - è disponibile un unità di propagazione verso lo stadio E ed una verso lo stadio M. Nei diagrammi, si chiede di indicare il numero di cicli di penalità. [6]

4. Si consideri un processore MIPS, implementato tramite pipeline a 5 stadi, che disponga di una cache primaria e di una cache secondaria (la cache primaria è distinta per i dati e le istruzioni). La cache primaria presenta le seguenti caratteristiche: - numero di cicli di clock richiesti in caso di successo (hit): 1 (nessuna penalità) - percentuale di successo (hit rate) sia per la cache istruzioni sia per la cache dati: 80% per le operazioni di lettura, 70% per le operazioni di scrittura - penalità di fallimento in assenza della cache secondaria (sia per la cache istruzioni sia per la cache dati): 15 cicli di clock Per la cache secondaria valgono invece le seguenti condizioni: - percentuale di successo (hit rate): 90% per la lettura, 80% per la scrittura - cicli di clock per trasferire un blocco dalla cache secondaria alla cache primaria: 5 Si assuma un carico di lavoro che prevede la seguente distribuzione delle istruzioni MIPS: lw: 10 % sw: 30 % Tipo-R: 30 % beq: 20 % j: 10 % Si supponga inoltre che: - il 40% delle istruzioni Tipo-R siano seguite da istruzioni che ne utilizzano il risultato; - il 30% delle istruzioni lw siano seguite da istruzioni Tipo-R che ne utilizzano il risultato; - il 6% delle istruzioni lw siano seguite da istruzioni sw che ne utilizzano il risultato solo per il calcolo dell indirizzo; - il 20 % delle istruzioni lw siano seguite da istruzioni sw che ne utilizzano il risultato solo per immagazzinarlo in memoria. - il 4% delle istruzioni lw siano seguite da istruzioni sw che ne utilizzano il risultato sia per il calcolo dell indirizzo sia per immagazzinarlo in memoria. Tenendo conto dei miss di cache e delle criticità sui dati, si calcoli il CPI (numero medio di cicli di clock per istruzione) ottenuto nei due casi seguenti: - si dispone di un unità di propagazione solo verso lo stadio E - si dispone di un unità di propagazione verso lo stadio E ed una verso lo stadio M. [4]

5. Si consideri il seguente frammento di codice MIPS: lw $s0, 20($t1) beq $s0, $s1, Eq add $t2, $t2, $t2 Eq: add $t3, $s6, $s6 add $t2, $t3, $t3 sub $s2, $t3, $s3 Si consideri un implementazione tramite pipeline a 6 stadi in cui la decisione e l esecuzione del salto beq avviene nel terzo stadio della pipeline. Per la gestione delle criticità sui salti, viene adottata la tecnica del salto ritardato. Quanti slot di ritardo sono presenti? Perché? Si indichi, motivando brevemente la soluzione proposta, come potrebbe essere riordinato il codice (eventualmente se necessario aggiungendo anche istruzioni NOP) per gestire la criticità sul salto beq. [4]

6. Siete impegnati in un progetto di ottimizzazione di un processore multiciclo basato sul MIPS, costruito secondo il progetto considerato nel corso di Calcolatori: nelle figure alle pagine seguenti sono riportati i formati delle istruzioni, il datapath ed il diagramma a stati finiti che specifica l unità di controllo relativamente alle istruzioni lw, sw, beq, j ed alle istruzioni Tipo-R. Nel contesto applicativo in cui siete impegnati, non è previsto il passaggio a implementazioni più evolute basate su pipeline, inoltre i tempi per le operazioni atomiche che coinvolgono le unità funzionali principali sono pressochè simili. Si osserva però che il carico di lavoro prevede una grande presenza di salti incondizionati (jump), che come noto vengono eseguiti in 3 cicli di clock. A voi viene chiesto se è possibile ridurre il numero di cicli di clock necessari all esecuzione della jump senza sconvolgere il progetto attuale, in particolare l unità di controllo deve basarsi sul modello di Moore per evitare di allungare i tempi di decodifica. Potete però modificare il datapath anche introducendo unità funzionali addizionali e modificare il diagramma a stati finiti. Se riuscite ad individuare una modifica progettuale efficace avrete una promozione con conseguente aumento di stipendio (oltre ai 2 punti previsti da questo esercizio). [2] Promemoria formati delle istruzioni:

2 Memory address computation ALUSrcA = 1 ALUSrcB = 10 ALUOp = 00 Start Instruction fetch 0 MemRead ALUSrcA = 0 IorD = 0 IRWrite ALUSrcB = 01 ALUOp = 00 PCWrite PCSource = 00 6 (Op = 'LW') or (Op = 'SW') Execution ALUSrcA =1 ALUSrcB = 00 ALUOp= 10 8 (Op = R-type) Branch completion ALUSrcA = 1 ALUSrcB = 00 ALUOp = 01 PCWriteCond PCSource = 01 Instruction decode/ register fetch 1 (Op = 'BEQ') 9 ALUSrcA = 0 ALUSrcB = 11 ALUOp = 00 (Op = 'J') Jump completion PCWrite PCSource = 10 3 (Op = 'LW') Memory access (Op = 'SW') 5 Memory access 7 R-type completion MemRead IorD = 1 MemWrite IorD = 1 RegDst = 1 RegWrite MemtoReg = 0 4 Write-back step RegDst = 0 RegWrite MemtoReg =1