Architettura degli Elaboratori

Corso di Laurea in Informatica

Appello del 25 luglio 2002 – tempo a disposizione: 2 ore

 

 

COGNOME______________________________ NOME __________________________________

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

 

 

  1. (punti 4) Riportare nella seguente tabella, , la corrispondente configurazione binaria su 8 bit di ciascun numero indicato nella prima colonna secondo quanto indicato. Qualora la codifica non sia possibile ciòo' deve essere indicato esplicitamente.
  2.  

    Binario con segno

    Rappresenta-zione in complemento a 1

    Rappresenta-sione in complemento a 2

    Rappresenta-zione in eccesso 2 alla 7

    127

    -1

    255

    0

    -128

    1

     

  3. (punti 3) Partendo dalle microistruzioni Mic-1 che implementano l’istruzione IJVM ILOAD n
  4. iload1

    H = LV

    MBR contiene l’indice; copia LV in H

    iload2

    MAR = MBRU + H; rd

    MAR = indirizzo della variabile locale da mettere in cima allo stack

    iload3

    MAR = SP = SP + 1

    SP punta alla nuova cima dello stack; prepara la scrittura

    iload4

    PC = PC + 1; fetch; wr

    Incrementa PC; legge il prossimo opcode; scrive la cima dello stack

    iload5

    TOS = MDR; goto Main1

    Corregge il valore di TOS

    Scrivere una sequenza di microistruzioni MAL che realizzi l’istruzione ILOAD_1 (formata da un solo byte, opcode 0x1B) che carica la variabile locale di offset 1 sullo stack.

     

     

     

     

     

     

     

     

     

     

     

  5. (punti 4) Sapendo che il processore denominato DragonBall Super VZ costruito dalla Motorola e che equipaggia diversi personal digital assistant elenca tra le altre le seguenti caratteristiche:

Indicare la dimensione del registro MBRMAR, del registro MDR, la dimensione massima teorica della memoria indirizzabile in Mbyte (indirizzameno al byte), l’intero massimo leggibile dalla memoria con un solo ciclo di lettura e, infine, la durata di un ciclo di clock in nsec (valore approssimativo).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  1. (punti 3) Trasformare la seguente espressione infissa nella corrispondente in notazione polacca inversa (postfissa) e simularne il calcolo per mezzo di uno stack: 4 * (3 + 2) + 5 * 3.
  2.  

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  3. (punti 6) Si supponga di avere una CPU che dispone di 8 registri: R0, ..., R7 ciascuno di 32 bit, dove il registro R0 è riservato come puntatore alla base del record di attivazione corrente. Si generi il codice per eseguire l’istruzione ad alto livello t = x + y + z nei tre seguenti due casi:

  1. il livello ISA è una macchina a due indirizzi;
  2. il livello ISA è una macchina a tre indirizzi di tipo load/store.

il livello ISA e` una macchina a zero indirizzi, a due indirizzi e a tre indirizzi (aAlcune istruzioni sono riportate nella tabella sottostante). Si assuma che le variabili t, x, y e z siano a distanza 0, 1, 2 e 3 rispetto alla base del record di attivazione (nota: per le macchine a due indirizzi e a tre indirizzi per l’indirizzamento indice si può utilizzare la notazione Ri(offset) per intendere Ri + offset come indirizzo di memoria).

 

Tipo ISA

Istruzione

Spiegazione

ISA a due indirizzi

MOV dst, src

Copia src in dst

ADD dst, src

Somma src a dst

Dove per dst e src sono permesse le seguenti registri o indirizzi di memoria, le modalità di indirizzamento: consentite sono quella 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 vaore puntato da R2);
  • indice (si usi la notazione Ri(offset), es. MOV R1, R2(5) copia in R1 il valore puntato da R2 + 5.

ISA a tre indirizzi

LDSW addr, dst

Load signed word

STW src, addr

Store signed word

ADD src1, src2, dst

Somma

Dove per dst e src è permessa la sola modalità di indirizzamento su registro, mentre per addr è consentita la sola modalità di indirizzamento indice (si usi la stessa notazione introdotta per la macchina a due indirizzi). e` un indirizzo di memoria e dst e src sono registri, le modalità di indirizzamento consentite sono quella immediata, registro, indice

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  1. (punti 4) Un circuito riceve in input 4 bit e fornisce in output il valore 1 se l’input è formato da un numero uguale di 0 e 1, 0 altrimenti. Ricavare la tavola di verità, la funzione booleana (non è necessaria la semplificazione) e il circuito corrispondente.
  2.  

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  3. (punti 32) Il formato della microistruzione per la macchina Mic-1 è il seguente, dove, in particolare, sono riservati 9 bit per l’indirizzo dell’istruzione successiva (si ricordi che le istruzioni nel control store del Mic-1 non sono solitamente contigue). Spiegare come con tale formato sia possibile rappresentare i due indirizzi T e F nella istruzione MAL seguente Z = OPC H; if (Z) goto T; else goto F (è ificmpeq6).
  4.  

     

     

     

     

     

     

     

     

     

     

     

  5. (punti 3) Dire quali sono le modalità di indirizzamento presenti nell’ISA IJVM fornendo degli esempi e spiegandone il funzionamento.
  6.  

     

     

     

     

     

     

     

     

     

     

     

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

  1. un’immagine di 5121024 x 512 pixel con quattro 256 livelli di grigio;
  2. una pagina di testo di 32 righe, 80 caratteri per riga (in caratteri UNICODE).

 

 

 

 

 

 

 

  1. (punti 2) Si spieghi la differenza tra bus interno e bus esterno indicando per ognuno alcuni dispositivi collegati e le velocità (indicative) espresse in MHz per gli attuali PC da tavolo.