Architettura degli elaboratori Primo Appello A.A gennaio 2018

Documenti analoghi
Architettura degli elaboratori A.A aprile 2019

Architettura degli Elaboratori A.A Appello 5 settembre 2016

Architettura degli elaboratori A.A

Archittettura degli elaboratori A.A

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

Architettura degli Elaboratori A.A Quarto Appello 14 gennaio 2015

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

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

Architettura degli Elaboratori

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

Architettura degli Elaboratori

Architettura degli elaboratori A.A

Architettura degli Elaboratori

Prima prova di verifica intermedia

Architettura degli elaboratori A. A o Appello 7 febbraio 2017

Architettura degli Elaboratori A.A appello 23 giugno 2010

Architettura degli Elaboratori

Architettura degli Elaboratori Seconda prova di verifica intermedia

Architettura degli Elaboratori

Architettura degli Elaboratori. Domanda 1 (per tutti)

Architettura degli Elaboratori

Architettura degli elaboratori A. A

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

Architettura degli Elaboratori

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 22 giugno Attenzione:

Architettura degli Elaboratori, a.a Correzione

Architettura degli Elaboratori - Correzione Appello del 18 luglio 2006, A.A. 2005/06

Architettura degli Elaboratori,

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

Seconda Esercitazione di Verifica Intermedia

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

Esercitazione su Instruction Level Parallelism

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

Instruction Level Parallelism Andrea Gasparetto

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

Esercitazione 4 di verifica

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

Architettura degli Elaboratori, Domanda 1

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

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 12 Gennaio Attenzione:

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

Note sull utilizzazione di componenti logici di tipo memoria

Introduzione all'architettura dei Calcolatori. Maurizio Palesi

Architettura degli Elaboratori - Correzione

Esercizio n. 7 - Microcodice

Esercitazione su Instruction Level Parallelism Salvatore Orlando

Modifiche di orario. Lezione 19 Il Set di Istruzioni (6) Dove siamo nel corso. Un quadro della situazione

Architettura degli elaboratori - Esame del 13 luglio 2015 A.A

ESERCIZIO: PROGETTO DI UNA CPU A PIU REGISTRI

Prima Esercitazione di Verifica Intermedia

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

Testi di Esercizi e Quesiti 1

Lezione 7 ALU: Moltiplicazione e divisione

Lezione 7 Sommatori e Moltiplicatori

Memoria centrale (RAM) Registri della CPU. Definizioni. Architettura considerata in CPUSim. Programma in linguaggio macchina

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

Esercizio 1.A Aritmetica binaria (nel presentare le soluzione mostrare, almeno nei passaggi piú significativi, i calcoli eseguiti) (3 punti)

Evoluzione delle architetture Evoluzione strutturale

Architettura degli elaboratori

Fondamenti di Informatica

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

PROVA SCRITTA DEL MODULO DI NOME: COGNOME: MATRICOLA:

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

Calcolatore: sottosistemi

Corso di Laurea in Informatica

Il linguaggio macchina

Progetto del processore e supporto del processore al SO (interruzioni eccezioni) Salvatore Orlando

Come si definisce il concetto di performance? Tempo di esecuzione di un programma. numero di task/transazioni eseguiti per unità di tempo

L'architettura del processore MIPS

Corso di Laurea in Informatica

ARCHITETTURE DEI CALCOLATORI (canale A-I) - Prima prova in itinere del 16/6/2003 Compito tipo A

Architettura degli elaboratori Tema d esame del 8/2/2016

PROVA SCRITTA DEL MODULO DI. CORSO DI LAUREA IN INGEGNERIA ELETTRICA ED ELETTRONICA, INGEGNERIA BIOMEDICA 14 febbraio 2017

Architetture moderne

MIPS MIPS MIPS MIPS. Registri. Dati e modi di indirizzamento. Formato Istruzioni. Lezione 5 e 6. Architettura degli Elaboratori A.

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

informatica di base per le discipline umanistiche

Esame di Architetture Canale AL Prof. Sterbini 17/6/13 Compito A

Architettura degli elaboratori Tema d esame del 20/01/2016

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

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

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

Fasi (MIPS) Dove NPC è un registro temporaneo PC (program counter) è il registro IP (instruction pointer)

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

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 20 Giugno Attenzione:

Corso di Laurea in Informatica Architetture degli Elaboratori

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

Università degli studi di Bologna Anno Accademico 2000/2001 Corso di Architettura degli elaboratori

Richiami sull architettura del processore MIPS a 32 bit

Esercitazione su Gerarchie di Memoria

Esercizio 1.A Aritmetica binaria (nel presentare le soluzione mostrare, almeno nei passaggi piú significativi, i calcoli eseguiti) (3 punti)

Un altro tipo di indirizzamento. L insieme delle istruzioni (3) Istruz. di somma e scelta con operando (2) Istruzioni di somma e scelta con operando

Lezione 17 Il Set di Istruzioni (3)

Architettura hardware

Laboratorio di Architettura degli Elaboratori

1. L istruzione li $a0, è un istruzione standard del processore MIPS? Se no, a quali istruzioni corrisponde e come viene eseguita?

Transcript:

Domanda 1 Architettura degli elaboratori Primo Appello A.A. 2017-18 24 gennaio 2018 Riportare in alto a destra di ciascun foglio consegnato Nome, Cognome, Corso (A o B) e numero di matricola. I risultati saranno comunicati via web appena disponibili. Si consideri un vettore di M=1K posizioni che contiene in ciascuna posizione l indirizzo base di un vettore di numeri interi. Ciascuno dei vettori di numeri interi contiene a sua volta N=16 elementi, tutti positivi. Si fornisca lo pseudocodice e il codice D-RISC del programma che trova l indirizzo del vettore per cui il prodotto di tutti gli elementi è massimo (si trascuri la possibilità di overflow). Il processore è un processore D-RISC pipeline standard, con unità EU slave da due stadi per l esecuzione di moltiplicazione di numeri interi, con cache di primo livello nelle IM e DM, collegato direttamente alla memoria principale esterna (senza ulteriori componeni cache) che è una memoria interallacciata. Si evidenzino le eventuali dipendenze nell intero codice, si discutano possibili ottimizzazioni del codice D-RISC del ciclo più interno e si discutano le caratteristiche della cache in DM che minimizzano il tempo di completamento, motivando adeguatamente la risposta. Domanda 2 Si progetti un unità firmware U interfacciata a due unità U 1 ed U 2 e, tramite una interfaccia di memoria standard, ad una memoria esterna M da 4G parole. Eventuali errori di lettura da M vanno trattati come errori temporanei, ripetendo quindi la richiesta di operazione. U 1 può richiedere ad U due operazioni: OP 1 (IND,K) ed OP 2 (). OP 1 ha come parametri l indirizzo IND in M di un vettore di interi positivi e il numero K di posizioni nel vettore e calcola il massimo MAX del vettore. Quindi memorizza nel registro R la somma tra il valore di R e MAX. OP 2 non ha parametri e viene eseguita inviando ad U2 il valore di R. R è inizializzato a 0. Si implementi l unità minimizzando il numero di microistruzioni da eseguire per eseguire ciascuna delle due operazioni esterne.

Bozza di soluzione Domanda 1 Pseudo Codice pointer indvec = 0; float maxprod = 0; for(int i=0; i<n; i++) { float prod = 1; for(int j=0; j<n; j++) { prod *= (v[i])[j]; if(prod > maxprod) { maxprod = prod; indvec = v[i]; // v[i] is the Rbase and j the Rindex Assembler D-RISC (ciclo interno non ottimizzato) CLEAR Rindvec // azzera indirizzo vettore CLEAR Rmaxprod // azzera prodotto CLEAR Ri // inizilalizza var iterazione loopi: ADD R0,#1,R0 // inizializza prodotto parziale LOAD RbaseV,Ri,RbaseVi // calcola base vettore i-esimo CLEAR Rj loopj: LOAD RbaseVi, Rj, Rtemp // carica elemento j-esimo MUL Rprod, Rtemp, Rprod // moltiplica per il parziale INC Rj // incremento var iterazione IF< Rj, RN, loopj // controllo fine ciclo IF<= Rprod, Rmaxprod,cont // secondo statement ciclo i ADD Rprod, R0, Rmaxprod // se > aggiorna maxsum ADD RbaseVi, R0, Rindvec // se > aggiorna base vett cont:inc Ri // altrimenti incrementa i IF< Ri, R1024, loopi // controllo fine ciclo END Il costo del calcolo di una iterazione del ciclo interno è 7t:

Ottimizzazione ciclo interno Possiamo anticipare la INC quanto vogliamo e, utilizzando il salto ritardato, mettere la LOAD nello slot del salto di fine ciclo, saltando direttamente alla INC: loopj: LOAD RbaseVi, Rj, Rtemp INC Rj MUL Rprod, Rtemp, Rprod IF< Rj, RN, delayed LOAD RbaseVi, Rj, Rtemp IF<= Rprod Questo permette di ridurre la latenza della singola iterazione a 5t: Caratteristiche minimali cache DM Il working set del programma è costituito dal codice (acceduto con località e riuso), da una linea del vettore V e da una linea del vettore Vi. Il codice viene acceduto in IM e dunque non vi è influenza sulla cache DM. La cache in DM deve permettere l accesso simultaneo delle due linee con I dati di V e Vi. Qualunque cache set aassociativa ad almeno due vie o completamente associativa garantisce che non vi saranno fault spuri. Una cache DM ad indirizzamento diretto potrebbe verificare un conflitto fra gli accessi al vettore degli indirizzi e l accesso alla prima linea del vettore dati corrente. Questo comporterebbe un aumento dei fault dovuti al vettore degli indirizzi.

Domanda 2 Interfacce Assumiamo di avere tre interfacce: con U1, in ingresso RDY1, OP, IND e K, in uscita ACK1 con U2, in ingresso ACK2, in uscita RDY2 e OUTR con M, in uscita RDYm, OPM, INDM, DATAOUTM e in ingresso ACKm, DATAINM, ESITO Microcodice 0. (RDY1,ACK2,OP=0--) nop, 0 // prima operazione, inzializzo I registri // e chiedo la lettura del primo elemento (=1-0) -1 MAX, 1 I, IND INDM, read OPM, set RDYm, 1. // seconda operazione, attendo l ack a trasmettere per U2 e mando R (=101) nop, 0 (=111) R OUTR, set RDY2, reset ACK2, 0 1. // ciclo che implementa la prima operazione: attendo esito lettura in M (ACKm, OR(ESITO), zero(i-k), segno(max-datainm)=0--- ) nop, 1 // esito negativo, ritento la stessa lettura (=11--) reset ACKm, set RDYm, 1 // lettura di un valore più grande del MAX corrente (=1001) DATAINM MAX, I+1 I, IND+I INDM, read OPM, reset ACKm, set RDYm, 1 // lettura dell ultimo valore, che risulta il più grande, // memorizzo e torno alla 0 (=1011) DATAINM + R R, reset RDY1, set ACK1, reset ACKm, 0 // lettura di un valore minore del valore corrente (=1000) I+1 I, IND+I INDM, read OPM, reset ACKm, set RDYm, 1 // lettura dell ultimo valore, minore del massimo corrente (=1010) MAX + R R, reset RDY1, set ACK1, reset ACKm, 0 Per eseguire la prima operazione eseguiamo la 0. una volta (richiedendo la lettura di V[IND]) e la 1 (K) volte, a meno di errori e processando ogni volta il valore letto mentre si ordina la lettura del nuovo valore in M. Per implementare la prima operazione esterna sono necessarie almeno K iterazioni, visto che dobbiamo leggere e confrontare tutti i valori dell array, che sono appunto K. Almeno per la prima iterazione, va prevista una microistruzione per l ordine della lettura in M ed una per l attesa del risultato. Per le successive, l attesa del risultato può inglobare anche la preparazione della nuova richiesta di lettura. Dunque la prima iterazione costa 2 istruzioni (al minimo) e le successive costano 1 singola micro istruzione, per un totale di K+1 micro istruzioni. Il numero minimo di istruzioni per implementare la seconda operazione esterna è 1. Dunque il microprogramma è ottimizzato come richiesto.

La PC può essere realizzata semplicemente con un ritardo di 2t p sia per ω che per σ, visto che abbiamo 1 bit di stato e massimo 4 variabili di condizionamento testate contemporaneamente. Per la PO seguendo il procedimento standard non vi sono particolari accorgimenti, se non che le ALU per il test della variabili di condizionamento sono ALU dedicate. In alternativa, potremmo utilizzare un po di controllo residuo per calcolare il massimo dei due valori. Questo permetterebbe di ridurre il numero delle variabili di condizionamento e delle frasi della microistruzione 1. che potrebbe diventare: 1. // ciclo che implementa la prima operazione: attendo esito lettura in M (ACKm, OR(ESITO), zero(i-k) = 0--) nop, 1 // esito negativo, ritento la stessa lettura (=11-) reset ACKm, set RDYm, 1 // lettura di un valore (=100) max(datain,max) MAX, I+1 I, IND+I INDM, read OPM, reset ACKm, set RDYm, 1 // lettura dell ultimo valore (=101) max(datainm,max) + R R, reset RDY1, set ACK1, reset ACKm, 0 In questo caso max(x,y) viene implementato con un commutatore con ingressi X e Y comandato (α k ) dal bit segno di una ALU che calcola X-Y. Benchè il codice sia più compatto, tutto questo non porta vantaggi dal punto di visto implementativo. I ritardi della PC erano già minimi e non variano. La stabilizzazione della ALU per il calcolo del massimo avviene in parallelo con la stabilizzazione di quella che serve per il calcolo di zero(i-k) e il commutatore lavora mentre si calcola il resto delle operazioni nella frase scelta.