Architettura degli elaboratori A.A aprile 2019

Documenti analoghi
Architetture degli Elaboratori Prima prova di verifica intermedia bozza di soluzione

Architettura degli elaboratori A.A

Architettura degli elaboratori Primo Appello A.A gennaio 2018

Esercizio 1. Progettare la PO a partire dal microprogramma eseguibile e successivamente:

Architettura degli Elaboratori A.A Seconda Verifica Intermedia

Architettura degli Elaboratori A.A Quarto Appello 14 gennaio 2015

Domanda 2 Si dica se le seguenti affermazioni sono vere o false, dandone opportuna e sintetica motivazione:

Architettura degli Elaboratori A.A Quarto Appello 14 gennaio 2015

Archittettura degli elaboratori A.A

Architettura degli Elaboratori A.A Appello 5 settembre 2016

Architettura degli elaboratori A.A

Architettura degli Elaboratori

Architettura degli Elaboratori - A.A Primo Appello - 5 giugno 2015 Risultati e calendario degli orali su web appena disponibili

Architettura degli elaboratori A. A o Appello 7 febbraio 2017

Architettura degli Elaboratori

Prima prova di verifica intermedia

Esercitazione 4 di verifica

Architettura degli Elaboratori

Architettura degli elaboratori Anno Accademico Appello del 4 settembre 2017

Architettura degli Elaboratori Seconda prova di verifica intermedia

Architettura degli Elaboratori,

Esercizi sulla macchina assembler, strutturazione a livelli, spazio di indirizzamento

Architettura degli Elaboratori

Architettura degli elaboratori

Architettura degli Elaboratori A.A appello 23 giugno 2010

Architettura degli Elaboratori. Domanda 1 (tutti)

Architetture degli elaboratori A.A

Architettura degli Elaboratori Appello del 21 febbraio Domanda 1 (tutti)

Architettura degli Elaboratori A. A Prima prova di verifica intermedia e appello straordinario 3 novembre 2017

Architettura degli Elaboratori, Prima prova di verifica intermedia. 7 novembre Domanda 1

Architettura degli Elaboratori, a.a Correzione della Prima Prova di Verifica Intermedia

Architettura degli Elaboratori

Architettura degli Elaboratori

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

Architettura degli elaboratori A. A

Domande di Reti Logiche compito del 6/6/2017

Lezione 17: Indirizzamento della memoria LC-3

Architettura degli elaboratori

Corso di Laurea in Informatica

Corso di Architettura dei Calcolatori (I anno) Prova scritta finale 19 gennaio 2006

Fondamenti di Programmazione

Seconda Esercitazione di Verifica Intermedia

Architettura degli Elaboratori. Domanda 1 (per tutti)

Reti combinatorie. Reti combinatorie (segue) Struttura di un elaboratore - introduzione. Architettura degli Elaboratori T.

Corso di Laurea in Informatica Architetture degli Elaboratori

Architettura degli Elaboratori, Domanda 1

Esercitazione 5 di verifica

Architettura degli Elaboratori, a.a Correzione

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

Corso di Architettura dei Calcolatori (I anno) Prova scritta finale 29 gennaio 2007

Note sull utilizzazione di componenti logici di tipo memoria

ESERCIZIO 1 Si consideri la seguente funzione f (A, B, C, D) non completamente specificata definita attraverso il suo ON-SET e DC-SET:

Esercizio n. 7 - Microcodice

Programmazione Assembly. RISC e CISC Esecuzione sequenziale Esecuzione condizionata Cicli Subroutine

Corso di Architettura dei Calcolatori (I anno) Prova scritta finale 20 giugno 2005

Domande di Reti Logiche compito del 27/6/2017

Domande di Reti Logiche - compito del 16/07/2019

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 10 Febbraio Attenzione:

PROVA SCRITTA DEL MODULO DI NOME: COGNOME: MATRICOLA:

Fetch Decode Execute Program Counter controllare esegue prossima

Laboratorio di Architettura degli Elaboratori LabArch 2006 Secondo Quadimestre, a.a Docente: H. Muccini

Rappresentazione dell informazione

Microarchitettura: Livello 1

ESERCIZIO 1 (12 punti) 1. (2 punti) Scrivere la sequenza di istruzioni MIPS che implementino lo pseudocodice:

Esame di Architetture Canale AL Prof. Sterbini 8/7/13 Compito A

L'architettura del processore MIPS

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Pre-appello del 12 Gennaio Attenzione:

Architettura degli Elaboratori, Esercitazione 2

Corso di Architettura dei Calcolatori (I anno) Prova scritta finale 14 gennaio 2010

Instruction Level Parallelism Andrea Gasparetto

Corso di Laurea in Informatica

SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. 27 Febbraio 2001

Tutorato architettura degli elaboratori modulo I (lezione 4)

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 18 Febbraio Attenzione:

Evoluzione delle architetture Evoluzione strutturale

SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO 28 Settembre 2006

Assembly (3): le procedure

Calcolatore: sottosistemi

Architettura degli elaboratori - CPU multiciclo A.A. 2016/17. Architettura degli elaboratori

Memoria: lettura, scrittura e indirizzamento

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 25 Febbraio Attenzione:

Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)

Laboratorio di Architettura degli Elaboratori

Corso di Laurea in Informatica Architetture degli Elaboratori

Corso di Architettura dei Calcolatori (I anno) Prova scritta finale 19 settembre 2008

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

Esercitazione su Instruction Level Parallelism Salvatore Orlando

Lezione 12: L architettura LC-3

Corso di Architettura dei Calcolatori (I anno) Prova scritta finale 24 luglio 2009

Istruzioni di trasferimento dati

Calcolatori Elettronici A.A. 2004/2005 Seconda Prova in Itinere, 17 marzo 2005

Corso di Fondamenti di Informatica

Assembly IV Le procedure

Istruzioni di controllo del flusso

Controllo di flusso. Università degli Studi di Milano Corso di Laurea in Informatica, A.A Homepage del corso

Architettura degli Elaboratori, Esercitazione 1

Laboratorio

Sistemi di Elaborazione delle Informazioni

Transcript:

Architettura degli elaboratori A.A. 2018-2019 1 aprile 2019 Riportare in alto a destra di ciascun foglio consegnato Nome, Cognome, numero di Matricola e corso di appartenenza. I risultati e il calendario degli esami saranno pubblicati su WEB appena disponibili. Domanda 1 Per l automa in figura (sotto a sinistra) si fornisca la rete sequenziale che ne implementa le funzionalità, specificandone il tipo (Moore o Mealy) e le prestazioni. Domanda 2 Si consideri un microcodice con 3 microistruzioni (0. 1. e 2.), che rappresenta il programma di controllo di una unità firmware in grado di eseguire 2 distinte operazioni esterne: op 1 e op 2. La prima microistruzione è una istruzione condizionale con 3 frasi, che utilizza variabili di condizionamento complesse. La prima delle tre frasi attende che venga richiesta un operazione, la seconda implementa completamente op 1. La terza frase prepara i dati per il calcolo di op 2, che avviene mediante le istruzioni 1. e 2. L istruzione 1. non prevede test di variabili di condizionamento. L istruzione 2. è ancora una istruzione condizionale con due frasi: la prima rimanda alla istruzione 1., mentre la seconda conclude op 2 e ritorna all istruzione 0 (vedi figura in alto a destra). Si discuta sotto quali condizioni potrebbe risultare conveniente trasformare il microcodice in modo da eliminare le variabili di condizionamento complesse dalla prima microistruzione in funzione: del numero k i di microistruzioni eseguite per op i (ricordando che k 1 = 1) e della probabilità che venga richiesta una certa operazione esterna (p i ), dei tempi della parte controllo T PC e T PC dei tempi T PO-0 e T PO-2 necessari a calcolare le variabili di condizionamento delle microistruzioni 0. e 2., e dei tempi T PO-ij necessari per eseguire ciascuna delle frasi delle tre microistruzioni (con i numero di microistruzione e j numero della frase nella microistruzione). Domanda 3 Si fornisca la compilazione in Assembler D-RISC del seguente pseudo-codice e se ne valutino le prestazioni (tempo di completamento) su un processore D-RISC standard con unità slave a due stadi per la moltiplicazione fra interi, assumendo che il passaggio dei parametri da e per la procedura avvenga utilizzando un area di memoria. Main X1 = F(a,b,n); Y1 = F(c,d,n); a[0] = X1+Y1; END Funzione int F(int x[], int y[], int n) { int sum = 0; for(int i=0; i<n; i++) sum+=x[i]*y[i]; return sum; }

Bozza di soluzione Domanda 1 L automa è di Mealy visto che le uscite dipendono sia dagli ingressi che dallo stato interno. È implementato mediante una rete di Mealy con un registro di stato da 2 bit (00=S0, 01=S1 e 10=S2) con le due componenti e definite dalle seguenti tabelle di verità (ne riportiamo una sola, la colonna delle uscite (Z) definisce la tabella di verità della PC e quella relativa ai nuovi valori del registro di stato interno (S 1 S 2 ) definisce quella della PC: S 0 S 1 X Z S 1 S 0 ' 0 0 0 1 1 0 0 0 1 0 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 0 1 0 1 0 0 1 Tre ingressi per il livello AND e al massimo 3 ingressi per il livello OR fanno sì che entrambe le reti abbiamo un ritardo di 2t p. Questo comporta un ciclo di clock pari a 3t p, dal momento che = max{t, T } + Il comportamento dell automa su una sequenze di input è esemplificato dalla seguente traccia, ricavata programmando l automa in Verilog e testandone il funzionamento con la sequenza di ingresso: 1 0 1 1 0 0 0 0 Domanda 2 La lunghezza del ciclo di clock del microprogramma come descritto è il massimo delle lunghezze necessarie per eseguire le varie frasi del microcodice. Li riportiamo in tabella: Microistruzione Frase Tempo di stabilizzazione 0 1 T PO-0 + T PC + T PO-01 + 0 2 T PO-0 + T PC + T PO-02 + 0 3 T PO-0 + T PC + T PO-03 +

1 1 0 + T PC + T PO-11 + 2 1 T PO-2 + T PC + T PO-21 + 2 2 T PO-2 + T PC + T PO-22 + Se spezziamo la 0 in modo da avere due microistruzioni, una (0.0.) che calcola le variabili di condizionamento complesse (magari dopo aver testato il RDY che segnala la presenza di una richiesta di operazione) e una (0.1.) che testa i valori così calcolati, otterremmo una tabella come quella che segue: Microistruzione Frase Tempo di stabilizzazione 0.0 1 0 + T PC + T PO-0 + 0.1 1 0 + T PC + T PO-01 + 0.1 2 0 + T PC + T PO-02 + 0.1 3 0 + T PC + T PO-03 + 1 1 0 + T PC + T PO-11 + 2 1 T PO-2 + T PC + T PO-21 + 2 2 T PO-2 + T PC + T PO-22 + dal momento che il lavoro che prima si faceva nel T PO della prima microistruzione è stato spostato nel T PO dell istruzione 0.0 aggiunta, mentra la ex 0. è diventata la 0.1. che testa il registro in cui è stato scritto nella 0.0 il valore della (ex) variabile di condizionamento complessa, e quindi ha ora un T PO nullo e il T PO originale. Dobbiamo considerare due casi, a seconda di dove troviamo il massimo valore del ciclo di clock nel programma originale: il massimo della terza colonna è in una delle prime tre posizioni della prima tabella. In questo caso il ciclo di clock diminuisce. Supponiamo che la diminuzione sia pari a. Va considerato che il numero totale di istruzioni eseguite per la op 2 rimane invariato mentre il numero di quelle eseguite per la op 1 raddoppia. Quindi prima avremmo avuto (p 1 + p 2 k 2 ) istruzioni ciascuna eseguita in un, e adesso avremmo (2 p 1 + p 2 k 2 ) istruzioni che costerebbero ciascuna -. Quindi il guadagno avviene per la seconda operazione esterna (ed è pari a k 2 ) mentre la perdita è per la prima operazione esterna (ed è pari a 2( - ) - = - ). Se p 2 k 2 > p 1 ( - ) abbiamo un guadagno, altrimenti abbiamo una perdita e la modifica non conviene. Il massimo è in una delle ultime tre righe. In questo caso il ciclo di clock non diminuisce ma aumenta il numero di microistruzioni eseguite per la op1 e dunque la cosa non conviene in nessun caso. Domanda 3 La procedura sarà compilata come segue, assumendo che l indirizzo dell area di memoria per il passaggio dei parametri e per l indirizzo di ritorno siano in Rm e Rr e che nell area di memoria ad offset consecutivi a partire da 0 si trovino l indirizzo base di X, quello di Y, l intero N e la locazione che serve a contenere il risultato:

f: LOADi Rm, #0, Rbasex LOADi Rm, #1, Rbasey LOADi Rm, #2, Rn CLEAR Ri CLEAR Rsum Loop: LOAD Rbasex, Ri, Rxi LOAD Rbasey, Ri, Ryi MUL Rxi, Ryi, Rtemp ADD Rsum, Rtemp, Rtemp INC Ri IF< Ri, Rn, loop STOREi Rm, #3, Rsum GOTO Rr Il codice fornito è compilato invece come segue: STOREi Rm, #0, RbaseA STOREi Rm, #1, RbaseB STOREi Rm. #2, Rn CALL Rf, Rr LOADi Rm, #3, Rx1 STOREi Rm, #0, RbaseC STOREi Rm, #1, RbaseD CALL Rf, Rr LOADi Rm, #3, Ry1 ADD Rx1, Ry1, Rtemp STORE RbaseA, R0, Rtemp END L esecuzione del codice avviene come segue: la prima chiamata della procedura richiede 4t più una bolla da salto di 1t. L'esecuzione del preambolo della funzione (fuori dal loop) richiede 5t (senza bolle) L esecuzione di una singola iterazione richiede 8t, avendo avuto cura di invertire la ADD (che dipende dal risultato della MUL (EU-EU) con la INC, che crea una dipendenza sulla IF< di fine ciclo

In realtà, la prima iterazione ha un t in più, legato al fatto che c è una dipendenza fra la CLR Ri e la LOAD RbaseX, Ri, Rxi. Dunque al conto totale va aggiunto un t. L ultima iterazione richiede 10t (dipendenza della STORE con la MUL) + 1t di bolla di salto preso per il ritorno La seconda chiamata richiede 4t + 1t di bolla salto preso Come sopra la funzione richiede 5t + (N-1)*8t + 10t + 1t ovvero 5t (preambolo) + N*8t (iterazioni) +2t (extra ultima iterazione) = 7t + 8Nt L'ultima parte del codice chiamante richiede 6t (2t di bolla per la dipendenza IU-EU ADD-STORE) In totale quindi avremmo: 2*(4t + 1t) (doppia chiamata) + 6t (fine main) + 2*(7t+8Nt) + t (dip prima iterazione con CLR) = 31t + 16Nt A fronte di 12 istruzioni del main 2*(5 + 6*N + 2) istruzioni della funzione

Per un totale di (12+14) + 12N = 26+12N istruzioni. Calcolando il tempo di servizio sul solo ciclo interno della funziona (che è la parte che pesa di più) abbiamo t = 8t / 6 = 4t/3 con una efficienza di pari a ¾. Invece come tempo di servizio totale avremmo T = (31+16N)t / (26+12N). Per N grande la parte significativa è quella moltiplicata per N, che è sempre quella di prima e dunque T = 4t/3. Per N piccolo le cose cambiano leggermente. Per esempio, per vettori lunghi 2 abbiamo un T = 63t/50 che è ca. 1.24 t contro l 1.33 t del ciclo interno.