Anteprima
Vedrai una selezione di 7 pagine su 27
Esercitazione Architettura degli Elaboratori 2 Pag. 1 Esercitazione Architettura degli Elaboratori 2 Pag. 2
Anteprima di 7 pagg. su 27.
Scarica il documento per vederlo tutto.
Esercitazione Architettura degli Elaboratori 2 Pag. 6
Anteprima di 7 pagg. su 27.
Scarica il documento per vederlo tutto.
Esercitazione Architettura degli Elaboratori 2 Pag. 11
Anteprima di 7 pagg. su 27.
Scarica il documento per vederlo tutto.
Esercitazione Architettura degli Elaboratori 2 Pag. 16
Anteprima di 7 pagg. su 27.
Scarica il documento per vederlo tutto.
Esercitazione Architettura degli Elaboratori 2 Pag. 21
Anteprima di 7 pagg. su 27.
Scarica il documento per vederlo tutto.
Esercitazione Architettura degli Elaboratori 2 Pag. 26
1 su 27
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Prova 1 - 6/5/2021

1 a) Si programmi il metodo in JVY che restituisce il valore assoluto di un intero (abs(n))

abs(n) = if (n < 0) return (-n), else return n; (per ottenere -n: 0-n).

Due possibili implementazioni

  1. .method abs(n)
  2. .var
  3. .end-var
  4. ILOAD n
  5. DUP
  6. IFLT cambioSegno
  7. IRETURN
  8. cambioSegno:
  9. BIPUSH 0
  10. SWAP
  11. ISUB
  12. IRETURN
  13. .end-method
  1. .method abs(n)
  2. .var
  3. .end-var
  4. ILOAD n
  5. IFLT cambioSegno
  6. ILOAD n
  7. IRETURN
  8. cambioSegno:
  9. BIPUSH 0
  10. ILOAD n
  11. ISUB
  12. IRETURN
  13. .end-method

b) Si scriva il programma JVY corrispondente al seguente codice C:

int y = 12;

int x = 10-k;

int y = abs(x)+2-y;

(k = costante definita nel programma)

  1. .constant
  2. OBJREF 0 x00
  3. k 42
  4. .end-constant
  1. .main
  2. .var
  3. x
  4. y
  5. .end-var
  6. BIPUSH 12
  7. ISTORE y
  8. BIPUSH 10
  9. LDC-W k
  10. ISUB
  11. ISTORE x
  12. LDC_W OBJREF
  13. ILOAD x
  14. INVOKEVIRTUAL abs
  15. BIPUSH 2
  16. IADD
  17. ILOAD y
  18. ISUB
  19. ISTORE y
  20. HALT
  21. .end-main

2.2

Si estenda il micro-interprete MIC-1 per JVM con l'istruzione:

CODICE OPERATIVONOME MNEMONICOSEMANTICA OPERATIVA0 x 88IINC1 varnumIncremento di 1 la variabile locale con indice varnum

Direttiva per il compilatore: 0 x 88 IINC1 varnum

Direttiva per il caricamento del microprogramma: label iinc11 0 x 88

Se invece di iinc1 si indica iinc, si va a creare conflitto con la direttiva relativa a IINC

Sequenza di microistruzioni:

  • iinc11 H = LV // MBR contains index, copy LV to H
  • iinc12 MAR = H+BRU + H; rd; // Copia LV index to MAR, read variable
  • iinc13 PC = PC + 1; Fetch; // Fetch next opcode
  • iinc14 MDR = MDR + 1; wr; goto Main 1 // MDR++, update variable

D) Discutere gli eventuali vantaggi e svantaggi dell'introduzione della IINC1 rispetto all'uso dell'istruzione IINC varnum 1.

→ MANCANTE

a) Qual è la durata, misurata in cicli di clock, dell'esecuzione delle due istruzioni?

  • IINC: 6 (+1 per Main1)
  • IINC1: 4 (+1 per Main1)

2.3

a) Descrivere il funzionamento della Instruction Fetch Unit (IFU) di MIC-2

L'IFU è una componente che viene inserita nell'architettura per ridurre il carico alla ALU. Questa interpreta ogni OPODE, determinando i parametri, richiesti per piazzarli in un registro in modo che l'istruzione possa essere eseguita. La IFU, al posto di un solo registro MBR a 8 bit, ce ne sono due: MBR1 a 8 bit e MBR2 a 16 bit, che servono da interfacce con il bus B: MBR1 e MBRU. L'IFU è responsabile del prelievo di un flusso di byte e ha un proprio registro IMAR per indirizzare la porzione della memoria in cui si trova la parola da prelevare. Funziona in modo asincrono con D & EU.

b) Illustrare come cambiano i valori dei registri PC e IMAR in corrispondenza delle transizioni nell'automa a stati finiti che descrive il comportamento di IFU.

  • 1) Prelievo di una parola
  • 2) MBR1: PC = PC + 1
  • 3) MBR2: PC = PC + 2

es 3

2

Data un'architettura superscalare con istruzioni a tre operandi del tipo R dest = R source1 OP R source2 (es. R1=R2+R3), descrivere le possibili dipendenze tra istruzioni, fornendo degli esempi.

Le possibili dipendenze sono:

  • RAW: read after write
    1. R3=R1+R2
    2. R1=R1*R3

    si deve aspettare di leggere R3 dopo che l'istruzione (1) ne abbia assegnato il valore.

  • WAR: write after read
    1. R1=R1*R3
    2. R3=R5/R6

    si può (ri)assegnare un valore a R3 solo dopo che l'istruzione (2) abbia letto il valore precedentemente assegnato dall'istruzione (1).

  • WAW: write after write
    1. R3=R1+R2
    2. R3=R1-R5

    si può (ri)assegnare un valore a R3 solo dopo il termine dell'istruzione (1).

D) Indicare quali dipendenze possono essere risolte tramite la tecnica della rinomina dei registri WAR o WAW, ad esempio:

  • WAR
    1. R1=R1*R3
    2. S1=R5/R6
  • WAW
    1. R3=R1+R2
    2. S1=R1-R5

es 4

Una memoria virtuale ha pagine logiche di 1kbyte. Le immagini dei processi hanno 232 indirizzi al byte. La memoria fisica è composta da 216 frame:

  1. Di quante pagine logiche è composta l'immagine di un processo? Di quanti byte è composta la memoria?
    • 232/212 = 220 pagine codificabili con 20 bit
    • 216 locazioni indirizzabili con 16 bit
  2. Data una tabella delle pagine che comprende le seguenti corrispondenze pagine virtuali = frame di memoria:
    1. 0 x 0001 → 0 x A 0 x 0012 → 0 x B 0 x 0114 → 0 x 2 0 x 0022 → 0 x 1

    Indicare e motivare quali delle seguenti traduzioni indirizzo virtuale - locazione di memoria sono corrette.

a) Descrivere come sono realizzate su MIC-1 le chiamate a metodo JVM. Spiegare le fasi di

prologo e epilogo delle chiamate di procedura ed indicare come sono realizzate in JVM su MIC-1.

  1. Il codice del metodo chiamante (o del main) carica sullo stack uno o costante che ha
  2. il ruolo di “placeholder” per il primo elemento del record di attivazione (destinato a
  3. memorizzare il puntatore alle celle dove sono salvati i valori di PC e di LV).
  4. Il codice del metodo chiamante carica sullo stack i parametri attuali della chiamata.
  5. Il codice del metodo chiamante invoca l’istruzione INVOKEVIRTUAL la cui esecuzione
  6. realizza la fase di prologo (alloca lo spazio per la memorizzazione delle variabili locali e
  7. salva le informazioni necessarie per riprendere l’esecuzione del chiamante dopo il
  8. termine del metodo (cioè SP e LV).
  9. Al termine dell’esecuzione del codice del metodo chiamato invoca l’istruzione
  10. IRETURN (la cui esecuzione realizza le fase di epilogo della chiamata) che ripristina
  11. lo stack (mettendo in cima il risultato del metodo) ed i valori di PC ed LV del
  12. chiamante precedentemente salvati.

b) Illustrare come evolve lo stack nell’esecuzione della seconda istruzione compresa l’esecuzione

della chiamata al metodo f. Si assuma che N valga 5.

Il metodo adotta lo schema dell’ I/O programmato con attesa attiva. Infatti, fino a quando non è premuto nessun tasto l’esecutore continuerà ad iterare eseguendo le istruzioni: 1 - 2 - 3 - 5 - 6.

  • L’istruzione IN carica sulla stack il valore 0 ( = NULL) per cui eseguendo l'istruzione IFEQ l’esecutore esegue il salto.
  • Nel momento in cui si sollecitano un tasto l’istruzione IN carica sulla stack un valore differente da 0, per cui l’esecutore non effettua il salto ed esegue l’istruzione RETURN.

Il modo per incrementare l'efficienza di una CPU è quello di farle eseguire più istruzioni in parallelo. Tra le possibili modalità per ottenere il parallelismo a livello di emettere più istruzioni per ciclo di clock. Due tipi di CPU che adottano questa modalità sono i processori superscalari e i processori VLIW (Very Long Instruction Word). Descrivere e comparare queste due tecniche.

VEDI PAG. 563

a) Ricordando che nelle architetture di tipo load/store le uniche istruzioni in cui si accede allamemoria sono le istruzioni di load (copia di un dato da una locazione di memoria ad unregistro) e di store (copia di un dato da un registro ad una locazione di memoria), allora:

  1. È un'istruzione adeguata: copio un dato dalla locazione di memoria puntata dal registroR2 nel registro R1
  2. È un'istruzione adeguata: copio un dato dal registro R1 alla locazione di memoria#0xABCD1234 (indirizzamento diretto)
  3. Non è un'istruzione adeguata, in quanto l'istruzione di somma ADDR ha comedestinazione una locazione di memoria.
  4. È un'istruzione adeguata perché l'istruzione di somma ADDR coinvolge solo registri.

b) Descrivere il ruolo della Tabella delle Pagine, in un'architettura dotata di memoria virtualerealizzata secondo il metodo della paginazione. Fornire dagli esempi.

La tabella delle pagine ha il compito di memorizzare le informazioni necessarie a realizzarel'associazione tra gli indirizzi virtuali e le locazioni fisiche. Per ogni processo è mantenutauna tabella delle pagine che indica, per ciascuna pagina, dove spazio di indirizzi del processo,se si trova o meno in memoria RAM e se si trova in memoria, in quale frame è allocata.Tali informazioni sono utilizzate dalla MMU (Memory Management Unit) per la traduzionedegli indirizzi, nel caso in cui la pagina virtuale si trovi già in memoria e per causareuna trap di tipo page fault, nel caso in cui sia necessario portare la pagina in memoria.

B. Se la dimensione delle pagine è di 4096 byte, gli indirizzi virtuali sono di 30 bit e la memoriaha 128 frame:

  1. Quante posizioni/entry deve avere la tabella delle pagine?La tabella delle pagine deve avere tante entry quante sono le pagine virtuali in cui è divisal'immagine di un processo: in questo caso la dimensione dell'immagine è di 230 bytee la dimensione delle pagine è di 212 byte, per cui il numero di pagine è di 218(230/212) il numero di entry è pari a 218. La posizione in memoria le informazionirelative alla pagina virtuale n (corrispondente ai bit più significativi dell'indirizzo virtuale)
  2. Quanti bit sono necessari per codificare le informazioni da memorizzare in ogni posizione? - 1 bit per indicare se la pagina virtuale si trova o meno in memoria currale. - una sequenza di bit per codificare il frame di memoria in cui eventualmente è memorizzata la pagina virtuale. In questo caso, siccome la memoria ha 128 (=27) frame, la sequenza è lunga 7 bit. - quindi in totale ogni posizione occupa 8 bit.
Dettagli
Publisher
A.A. 2021-2022
27 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher flaviabat di informazioni apprese con la frequenza delle lezioni di Architettura degli Elaboratori 2 e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Piemonte Orientale Amedeo Avogadro - Unipmn o del prof Moiso Corrado.