vuoi
o PayPal
tutte le volte che vuoi
C=D+A;
D=C-A;
dove A,B,C,D sono indirizzi di memoria di dati da 4 byte, codificarlo in assembly per una macchina:
b1- Memoria - memoria;
b2- Load-Store;
b3- ad accumulatore.
Assunto per la codifica in linguaggio macchina che:
- tutte le macchine hanno codice operativo di 1 byte;
- tutti gli indirizzi sono di 2 byte;
- la specifica dei registri avviene usando 4 bit per registro;
- le istruzioni possono avere lunghezza variabile ma sono comunque lunghe un numero intero di byte
Confrontare i programmi scritti nei 3 casi in termini di byte letti/scritti dalla memoria dati.
c) ???
27 Marzo 2006
OBBLIGATORI
1) Trovare il massimo degli elementi di un vettore di N elementi (doppia word unsigned).
2) Scrivere in RTL il codice SD F2,R31+,R1. Discutere i conflitti nella pipeline.
3) Matrice di double allocata per righe (64x10). Su DLXV fare il prodotto tra la I e la III colonna.
FACOLTATIVI
4) Store di un dato allineato e non.
5) Per architetture Memoria-Memoria, Load/Store, Accumulatore. Calcolare i byte trasferiti da e verso la
memoria per le seguenti istruzioni:
A=B+C
C=D+A
D=C-A
6) Ipercubo di quarto livello. Calcolare il passaggio da 1010-->0110.
24 luglio 2007
1) Microprogramma per l'istruzione SW R0,R31+,R1 e discussione conflitti in pipeline con istruzioni
successive.
2) Programma in DLXV di Y=(aX+bY)/c con vettori anche di dimensione > 64.
3) Programma in DLX non pipe della somma di due vettori di dimensione N.
Teoria
1) Disegnare i possibili modi di collegamento dei banchi di memoria.
2) Non ricordo bene, ma dovrebbe essere la descrizione del formato istruzioni inerenti la
microprogrammazione
3) Descrivere l'architettura superscalare e quando essa raggiunge le prestazioni ottimali.
22 novembre 2007
1)RTL e discussione dei conflitti su MULTW2L
2)DLXv calcolare Y = (a X + bY)/c
3)Memoria condivisa e distribuita
4)Pipeling da programma
5)Ipercubo
6)Disegno della cache set associativa
19 Febbraio 2008
1) Scrivere un microprogramma per l'istruzione ADDMEM R1 R2 R3 che fa M[R1]=M[R2]+M[R3] per un DLX-
pipeline, discutere i conflitti e possibili soluzioni architetturali
2) Fare un routine in assembler del minimo di un vettore nel DLX
3) Descrivere i campi delle microistruzioni di una memoria di microprogramma e il loro utilizzo
4) Scrivere una STORE disallineata
5) Dato uno spazio di indirizzi di 2 GB specificare campi ed etichette che si strutturano per l'uso di una
cache nei seguenti casi, nell'ipotesi di word da 4 bytes:
- cache se-associativa a 4 set e 16 blocchi, ciascun blocco comprendente 64 words
- cache ad indirizzamento diretto con 128 blocchi da 32 words
- cache pienamente associativa di 16 MB e 256 blocchi
6) Scrivere in ASSEMBLY di un DLXV la procedura che esegue in calcolo A=A+B, con A e B due matrici NxM
con N ed M generici ma maggiori di 64
6 maggio 2008
OBBLIGATORI
1) scrivere in RTL per un DLX-pipe l'istruzione ADD3 R1, R2, R3 che fa R1<--R1+R2+R3 e discutere gli
eventuali conflitti con le istruzioni successive;
2) enunciare vantaggi e svantaggi dei multiprocessori a memoria condivisa e a memoria distribuita;
3) dire in cosa consiste la tecnica del pipeline da programma e qual è il suo scopo;
FACOLTATIVI
4) enunciare vantaggi e svantaggi delle tecniche di sostituzione dei blocchi in cache LRU, FIFO e Random e
descrivere l'implementazione hardware della LRU;
5) ricavare in assembly per un DLXV lo scalare derivante dal prodotto scalare fra 2 vettori di 64 elementi
ciascuno;
6) indicare il formato della microistruzione di un'unità di controllo microprogrammata e cosa è codificato
da ciascun campo
DATA INCOGNITA
1) SL (#100,R3), R6 ; rtl + discussione conflitti
2) Somma matrici NxM in DLVX, N e M > 64
3) Discussione cambiamenti strutturali del DLX pipe
A) Store non allineata
B) Formato microistruzioni
C) Ipercubo - costi/prestazioni + passaggio di stato
24 luglio 2008
OBBLIGATORI
1)SW R1, R31+, R5 non ricordo bene se fosse una SW o LW.
2) DLXV: Y = (aX + bY)/c, con N e M > 64
3) Connessioni memoria - cache - I/O
FACOLTATIVI
A) Collegamento banchi multipli di memoria
B) DLX: Somma di due vettori - (se non ricordo male; a quanto pare sono già con la testa ad agosto )
C) Architettura superscalare
12 febbraio 2009
OBBLIGATORI
1) ADDMEM r1,r2,r3 r1<-M[r2]+M[r3]
2) vantaggi e svantaggi della memoria distribuita e condivisa
3) tecnica del pipeline da programma
FACOLTATIVI
4) lru,random,fifo e realizzazione hw del lru
5) data una sequenza di operazioni (Load,load,load,mult,mult,mult naturalmente c'erano dei registri che
provocavano dei conflitti) fare ciclo per ciclo l'algoritmo di tomasulo
vecchio programma (al posto della 5)
5) Per un DLXV calcolare il prodotto scalare tra 2 vettori con il metodo della riduzione a scalare (20 minuti)
6) Descrivere i campi di una microistruzione (20 minuti)
23 luglio 2009
1) R1<-M[R2]+M[R3]
2) Buffer di scrittura cache
3) Pipeline da programma
4) spiegare come è possibile, anche con l'ausilio di schemi, gestire una memoria di 1 MB con soli 10 pin per
il circuito
5) In assembler dlx scrivere una procedura che calcoli la media di un vettore
6) Campi della microistruzione
27 settembre 2009
OBBLIGATORI
1) Descrivere in RTL una ADD3 con relativi conflitti in pipe (c'è sul suo CD)
2) Vantaggi e Svantaggi della Memoria Condivisa e Distribuita
3) Pipeline da programma
FACOLTATIVI
1) Campi di una microistruzione
2) Vantaggi e Svantaggi delle tre filosofie FIFO, LRU e RANDOM per le cache
3) Una domanda sul DLXV che non ricordo
19 novembre 2009
OBBLIGATORI (60 Minuti)
1) Istruzione MAC R1,(R2),R3 che in RTL significa R1<-R1+M[R2]*R3
2) Buffer di scrittura cache.
3) Descrivere in cosa consiste la tecnica del pipeline da programma e dire quale è il suo scopo.
FACOLTATIVI
1) Spiegare come è possibile, anche con l'ausilio di schemi, gestire una memoria di 1 MB con soli 10 pin per
il circuito. (20 Minuti)
2) Algoritmo di Tomasulo. (40minuti, solo per quelli che portano il nuovo programma)
3)Scrivere in assembly di un DLX la procedura per determinare la media degli N elementi di un vettore. (20
Minuti)
4)Descrivere i campi delle microistruzioni di una memoria di microprogramma e il loro utilizzo. (20 Minuti)
Febbraio 2010
ESERCIZI OBBLIGATORI
-1 esercizio riguardante microcodice in cui erano richieste 2 accessi a memoria
-1 esercizio sulle cache
-1 esercizio ??
ESERCIZI FACOLTATIVI
-1 esercizio su Tomasulo
-media di 1 vettore con processore pipeline normale
22 Luglio 2011
1) MULTMEM R1, R2, R3, 1000 = Mem[1000(R3)]<--R1*R2
2) Discutere delle strategie di sostituzione con spiegazione della realizzazione del metodo LRU
3) Parlare della buffer di scrittura
FACOLTATIVI
4) Non ricordo i dati comunque riguardava il ridimensionamento dei campi di una istruzione da 32 bit
(Etichetta, Indice, Offset) per cache a Set- Associativa e ad Indirizzamento diretto
5)Prodotto di due matrici considerando una memorizzata con lo stride (aiutatemi perchè non ricordo
l'esercizio) o matrice salvata per colonne per un vettore
18 febbraio 2011
Nota: purtroppo limitata ai soli esercizi sul processore MIPS:
QUESITI OBBLIGATORI
60 minuti totali
1) scrivere un microprogramma che, in un processore MIPS like-pipeline con registri da 64 bit, esegua la
seguente istruzione:
ADDREL R1 (R2) (R3)
il cui risultato è il seguente: R1 <- M[R2] + M[R3]
Discutere di eventuali conflitti e possibili soluzioni architetturali.
2) spiegare il funzionamento e l'utilità del buffer di memoria cache nelle operazioni di scrittura.
3) descrivere il funzionamento e l'utilità della tecnica di pipeline da programma.
QUESITI FACOLTATIVI
1) spiegare, utilizzando eventualmente degli schemi, come sia possibile eseguire l'indirizzamento di un chip
di memoria da 1 Megabyte che dispone di soli 10 pin di indirizzo.
20 minuti
2) descrivere come procede, passo dopo passo, l'esecuzione del seguente codice di basso livello:
L.D F2, 0(R1)
L.D F4, 8(R1)
L.D F6, 16(R1)
MULT.D F8, F4, F6
MULT.D F10, F2, F4
MULT.D F8, F8, F10
utilizzando il meccanismo delle stazioni di prenotazione e considerando di disporre di 2 moltiplicatori
floating-point. Il candidato scelga delle latenze plausibili per le unità funzionali coinvolte.
40 minuti
11 luglio 2011
Obbligatori (60 min.)
1) Scrivere e commentare il microcodice relativo all'istruzione
LOAD R1+, R2, 1000
che faccia R2<-MEM[R1+1000] ed incrementi R1.
2) Scrivere il codice per una routine che effettui la media di un vettore (tramite processore scalare). Fare le
opportune ipotesi su come vengono passati i parametri e restituiti i valori dalla routine
3) descrivere in funzionamento e lo scopo dei banchi di memoria interlacciati e paralleli
Opzionali:
4) Descrivere WB, WT e come viene gestito l'I/O (e problematiche connesse)
5) Mostrare come si evolve il seguente programma:
L.D F2 0(R1)
L.D F4 8(R1)
L.D F6 16(R1)
13 Settembre 2011
1) scrivere microcodice di R1 + R2 + R3 => M [1000]
2) esercizio stupidotto sulla memoria piu un disegno da fare che nn ho capito
3) in assembly = trovare il minimo in un vettore di numeri
4) nn me lo ricordo , riguardava moltiplicazione tra matrici e vattori
per la 270 invece:
OBBLIGATORI
1) uguale a quello della 509 (20 minuti)
2) parecchio difficile...chiedeva di disegnare NEL DETTAGLIO una memoria cache set-associativa (i dati non
me li ricordo) (20 minuti)...sembra una domanda di elettronica...(20 minuti)
Facoltativi:
3) ipercubo (descrzione del sistema di trasmissione dati fra i nodi) e confronto di prestazioni con altri tipi di
collegamento...(20 minuti)
4) se non sbaglio era un operazione fra matrici utilizzando un processore vettoriale...non so dirvi altro
perchè non mi ricordo la traccia di questo esercizio nel dettaglio...(40 minuti)
21 Febbraio 2012
1- MICROPROGRAMMA PER MULTMEM R2,R3,R4,1000
CHE FACCIA Mem[1000+R2]<---R3xR4
2- Vantaggi e svantaggi delle tecniche di sostituzione LRU, FIFO e RANDOM
3- Buffer di memoria
fin qui 60 minuti
4- Esercizio su memoria set-associativa e ad indirizzamento diretto
5- Programma in DLXV per il prodotto tra un vettore di 300 elementi salvato a partire dall'indirizzo 1000 e
una matrice 300 x 300 salvata per colonne a partire dall'indirizzo 5000
2 Marzo 2012
Obbligatori:
1) SDD F4, 1200(R3)
Store di una doppia double
Processore con bus da 64 bit
2) procedura di un processore scalare che scambi in memoria gli elementi di due vettori di dimensione N
con elementi pari ad una word, caricati a partire da indirizzi contenuti rispettivamente nei registri R1 e R2
Facoltativi:
<