• Non ci sono risultati.

Architettura degli Elaboratori Corso di Laurea in Informatica

N/A
N/A
Protected

Academic year: 2022

Condividi "Architettura degli Elaboratori Corso di Laurea in Informatica"

Copied!
4
0
0

Testo completo

(1)

Architettura degli Elaboratori

Corso di Laurea in Informatica

Appello del 22 settembre 2002 – tempo a disposizione: 2 ore

SOLUZIONI

COGNOME____________________________ NOME __________________________________

MATRICOLA N. _________________________ CORSO (indicare con una croce sopra):

A B

1. (punti 2) Un calcolatrice tascabile rappresenta gli interi su 9 bit utilizzando la rappresentazione complemento a due. Dire quanti distinti valori sono rappresentabili, il valore positivo più grande e il valore negativo più piccolo. Ripetere l’esercizio supponendo che la rappresentazione adottata sia quella complemento a uno.

Complemento a due:

valori distinti rappresentabili: 512 (=29)

valore positivo piu` grande: 011111111 (= 28 -1 = 255)

valore negativo piu` piccolo: 100000000 (= -28 = -256) Complemento a uno:

valori distinti rappresentabili: 511 (=29 - 1), due rappresentazioni per lo stesso valore (zero)

valore positivo piu` grande: 011111111 (= 28 -1 = 255)

valore negativo piu` piccolo: 100000000 (= 1-28 = -255)

2. (punti 4) Date le microistruzioni Mic-1 che implementano l’istruzione IJVM ILOAD n

iload1 H = LV

iload2 MAR = MBRU + H; rd

iload3 MAR = SP = SP + 1

iload4 PC = PC + 1; fetch; wr

iload5 TOS = MDR; goto Main1

Si commentino le istruzioni “rd”, “fetch” e “wr” presenti nelle istruzioni iload2 e iload 4. In particolare:

a) contestualmente all’istruzione ILAOD n quale informazione leggono o scrivono (si specifichi anche sorgente e destinazione)

b) per ognuna si dica se sia possibile anticiparla o posticiparla senza alterare la funzionalita` del codice stesso.

rd (iload2): legge il valore in memoria centrale all'indirizzo specificato dal registro MAR memorizzando il risultato sul registro MDR, valore disponibile a partire dall'istruzione iload4. Il valore letto in questo caso rappresenta il valore della variabile di offset n del corrente record di attivazione. Non e` possibile ne` anticiparla (perche` MAR non contiene ancora il valore da cui prelevare il valore dalla memoria) ne` posticiparla (perche` MAR viene modificato nell'istruzione successiva e quindi si leggerebbe un valore non corretto).

fetch (iload4): legge dalla memoria centrale, all'indirizzo specificato dal registro PC, e memorizza sul registro MBR il successivo opcode da interpretare. Non e` possibile ne` anticiparla (perche` il PC deve essere prima incrementato) ne` posticiparla (perche` il valore MBR deve essere disponibile in Main1 e la fetch impiega un ciclo di data path per recuperare il valore specificato).

1 / 4

(2)

wr (iload4): scrive all'indirizzo specificato dal valore corrente di MAR (il nuovo top dello stack) il valore memorizzato nel registro MDR (in questo caso il valore della variabile di offset n del corrente record di attivazione. Non e` possibile anticipare la write perche` solo dal ciclo che esegue l'istruzione iload4 il valore da scrivere sul nuovo top dello stack e` disponibile nel registro MDR ma e` possibile posticiparla in quanto non interferisce con l'istruzione Main1.

3. (punti 4) Data l’espressione (x + y) * 2 + (x – y):

a) scrivere le istruzioni IJVM per la sua valutazione, specificando eventuali assunzioni sulla memorizzazione delle variabili coinvolte nell’espressione;

b) simulare il frammento di codice generato indicando l’evoluzione dello stack;

c) dire quanti byte occupa il codice generato.

Assumo che le variabili x e y abbiano offset 0 e 1 rispettivamente.

Due possibili soluzioni a seconda che si usi IMULT o IDUP, la prima occupa 14 byte mentre la seconda solo 13.

ILOAD 0 ILOAD 0

ILOAD 1 ILOAD 1

IADD IADD

BIPUSH 2 IDUP

IMULT IADD

ILOAD 0 ILOAD 0

ILOAD 1 ILOAD 1

ISUB ISUB

IADD IADD

Simulazione ...

4. (punti 3) Si descriva il funzionamento del “full-adder” in termini di “half-adder” (cioè si assuma come componente di base “half-adder”). Si disegni il circuito corrispondente al full adder e si riporti la definizione del circuito mediante tavola di verita`.

La tavola di verità del “full-adder” è la seguente:

A B Carry in Somma Carry out

0 0 0 0 0

0 0 1 1 0

0 1 0 1 0

0 1 1 0 1

1 0 0 1 0

1 0 1 0 1

1 1 0 0 1

1 1 1 1 1

2 / 4

(3)

5. (punti 4) Si supponga di avere una CPU che dispone di 8 registri: R0, ... , R7 ciascuno di 16 bit, dove il registro R0 è riservato come puntatore alla base del record di attivazione corrente il cui livello ISA e` una macchina a due indirizzi (alcune istruzioni sono riportate nella seguente tabella).

Tipo ISA Istruzione Spiegazione

ISA a due indirizzi MOV dst, src Copia src in dst

MUL dst, src Moltiplica src e dst e pone il risultato in dst

ADD dst, src Somma src a dst

Dove per dst e src sono permessi i registri o indirizzi di memoria, le modalità di indirizzamento consentite sono: immediata, diretta, registro, indiretto su registro, indice.

immediata (si usi la notazione #numero);

diretta (si usi il nome della variabile per indicarne l'indirizzo, es. MOV x, #5 copia il valore 5 nella variabile x);

registro (si usi il nome del registro per indicarne l'indirizzo, es. MOV R1, #5 copia il valore 5 nel registro R1);

indiretto su registro (si usi la notazione il nome del registro tra parentesi tonde per indicare che il registro contiene un indirizzo di memoria, es. MOV R1, (R2) copia in R1 il valore puntato da R2);

indice (si usi la notazione Ri(offset), es. MOV R1, R2(5) copia in R1 il valore puntato da R2 + 5.

Supponendo che venga eseguito il seguente programma:

1. MOV R1, R0(0)

2. ADD R1, R0(1)

3. MUL R1, R0(2)

4. MOV R1, R0(0)

Rappresentare, ad ogni esecuzione di istruzione, l'evoluzione del contenuto dei registri e delle celle di memoria, supponendo che i contenuti iniziali siano quelli riportati sotto in esadecimale:

inizio dopo 1 dopo 2 dopo 3 dopo 4

R0 00FE 0x00FE 0x00FE 0x00FE 0x00FE

R1 1000 0x0003 0x0005 0x000A 0x0003

00FE 0003 0x0003 0x0003 0x0003 0x0003

00FF 0002 0x0002 0x0002 0x0002 0x0002

0100 0002 0x0002 0x0002 0x0002 0x0002

0101 100F 0x100F 0x100F 0x100F 0x100F

6. (punti 3) Un elaboratore esprime gli interi su 8 bit utilizzando la rappresentazione complemento a due. Scrivere le rappresentazioni di A = 65 e B = – 96 ed eseguire (in binario!) i calcoli “A + B” e

“A – B”. Si segnalino gli eventuali overflow.

A = 6510 = 010000012

B = -9610 = 101000002 (nota, 9610 = 01100002) A + B = 111000012

A – B = 101000012 overflow, gli ultimi due bit di riporto non sono concordi

7. (punti 2) Dire quanti byte sono necessari per memorizzare:

a) un’immagine di 1024 x 512 pixel con quattro livelli di grigio;

b) una pagina di testo di 32 righe, 80 caratteri per riga (in caratteri UNICODE).

1024⋅512⋅2

8 =210⋅29⋅2

23 =217=27⋅210=128 Kbyte 32⋅80⋅2=25⋅24⋅5⋅2=5⋅210=5 Kbyte

3 / 4

(4)

8. (punti 2) Quanti bit sono necessari per indirizzare (al byte) 512 Mbyte di memoria? E se raddoppiassimo la memoria e l’unita` minima indirizzabile fosse la parola composta da 4 byte?

Per 512 Mbyte indirizzabili al byte:

512 ⋅2

20

1 = 2

9

⋅2

20

1 =2

29 , quindi servono 29 bit Per 1024 Mbyte indirizzabili alla parola (4 byte):

1024 ⋅2

20

4 = 2

10

⋅2

20

2

2

= 2

30

2

2

=2

28 , quindi

servono 28 bit

9. (punti 3) Quale e` la funzione, i possibili vantaggi e i possibili svantaggi dell’introduzione del livello di microarchitettura nella progettazione di un elaboratore?

Risposta ...

10. (punti 3) Spiegare la funzione di MBR e MBR2 nella architettura MIC-2. Si specifichi inoltre quando vengono riempiti e con quali dati.

Risposta ...

11. (punti 3) Specificare le principali differenze tra un bus sincrono ed un bus asincrono.

Risposta ...

4 / 4

Riferimenti

Documenti correlati

Il valore della fcem in per unit corrisponde a quello della velocità, in quanto la costante di tensione è pari a Ke = 40V/krpm.. Il primo moltiplicatore da la quantità di perdite

Perci` o l’u- tilizzo della disuguaglianza di Chebyshev `e limitato ai casi in cui non `e nota la forma della distribuzione della variabile casuale... Sia X la variabile

Durante la fase di aspirazione occorre aprire la valvola di aspirazione e il pistone scende, durante la fase di compressione il pistone sale con entrambe le valvole chiuse, durante

Possiamo descrivere bene cosa succede alla funzione in questo punto utilizzando il concetto di

[r]

La prima fase del concorso prevede una selezione delle migliori iniziative imprenditoriali sulla base di un business plan che descriva dettagliatamente l’idea d’impresa che si intende

Il 70% degli antidepressivi inefficaci fa ridere (almeno) tanto quanto il farmaco esaminato; quindi accettiamo H 0 (cio`e l’ipotesi che non abbia effetto).. p =

Esercizio 9 Un discriminatore d’ampiezza `e un circuito che consente la trasmissione di una parte sola di una generica forma d’onda