Anteprima
Vedrai una selezione di 3 pagine su 9
Prove svolte di Architettura degli elaboratori Pag. 1 Prove svolte di Architettura degli elaboratori Pag. 2
Anteprima di 3 pagg. su 9.
Scarica il documento per vederlo tutto.
Prove svolte di Architettura degli elaboratori Pag. 6
1 su 9
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Università degli Studi di Udine Matematiche, Informatiche e Fisiche

Esame A di Architetture degli Elaboratori

Soluzione

A.A. 2017-18 — III appello — 19 giugno 2018

N.B.: il punteggio associato ad ogni domanda è solo una misura della difficoltà, e peso, di ogni domanda.

Per calcolare il voto complessivo bisogna normalizzare a 32 (circa).

alla base 8.

1. Convertire il valore 13.2

4

R: (3 pt) Trattandosi di basi che sono una potenza di due, conviene dapprima convertire alla base 2 e

poi raggruppare le cifre risultanti per riscrivere il valore nella base 8:

= 01 11 . = 0 111 . . = 7.52

13.2 = 01 11 . 10 101010 101 010 .

4 2 2 2 8

|{z} |{z} |{z}

| {z } |{z} |{z}

|{z} |{z} |{z} 1 3 7

1 3 222 5 2

4 4 8

2

4 4 4 8 8

4

2. Sono date le seguenti codifiche in complemento a 2 a 8 bit: n = n = Se esiste,

10110100, 00000100.

1 2

si calcoli il rapporto n /n e se possibile lo si esprima nella stessa codifica.

1 2 |n |/|n |

R: (3 pt) Per sicurezza conviene calcolare e poi ricordare che n codifica un valore negativo.

1 2 1

−n

Dunque, cambiando di segno n si ha = Poiché n vale 4, il calcolo del rapporto è

01001100.

1 1 2

|n |/|n | |n |/n

immediato: basta traslare n di due bit, ottenendo = = Complementando

00010011.

1 1 2 1 2

−|n |/n

nuovamente si ha subito n /n = = 11101101.

1 2 1 2

Si noti che lo stesso risultato sarebbe uscito anche senza passare per il valore assoluto di n .

1

3. [INF] Fornire il risultato dell’esercizio precedente in codifica floating point IEEE 754 a 32 bit.

−1.0011E4.

R: (3 pt) Il risultato trovato sopra può essere subito messo nella forma La codifica richiesta

avrà dunque bit di segno asserito, esponente uguale a 127+4 = 131 = e infine mantissa uguale

10000011 2

a Sistemando sui 32 bit previsti dallo standard IEEE 754 e convertendo alla base esadecimale:

0011.

1|1 0 0 0 0 0 1 1|0 0 1 1 0 0 0 0 ...

C | 1 | 9 | 8 | 0 ...

da cui la codifica richiesta: 0xC1980000.

4. La legge di Moore afferma che il numero di transistor nell’unità di memoria quadruplica ogni tre anni.

Se un chip di memoria di forma rettangolare oggi misura mediamente 1×0.5 cm, quanto misuravano

mediamente i lati di un chip analogo 18 mesi fa, a parità di capacità di memoria?

R: (3 pt) Se il numero di transistor nell’unità di memoria quadruplica ogni tre anni allora il raddoppio

della densità avviene ogni anno e mezzo. Quindi, a parità di capacità di memoria un anno e mezzo prima

√ √

√ · × · ≈ ×

2: 1 2 0.5 2 1.4 0.7 cm.

i lati erano mediamente più lunghi di un fattore

5. È dato il seguente listino prezzi in microeuro (µ): porta NAND 1 µ; porta NOR 5 µ; porta NOT 10

µ; porta AND 20 µ; porta OR 20 µ. Adoperando le regole di equivalenza booleana, dare il circuito

che realizza l’espressione booleana A + B al costo minimo, quantificando inoltre il costo stesso.

R: (3 pt) Adoperando le regole di De Morgan si ha A + B = AB = AB, che adopera una porta NAND

e una porta NOT costando dunque 1 + 10 = 11 µ. Questa soluzione ha ricevuto punteggio pieno.

· · ·

Il costo minimo in assoluto si trovava ricordando l’uguaglianza E = E E . . . E. Di qui l’ulteriore

·

espressione AB = AB AB che, richiedendo solo due porte NAND, costa 1 + 1 = 2 µ.

6. [INF] Si provi ad abbassare ulteriormente il costo del circuito all’esercizio precedente, ricordando che

esso può accedere anche alle tensioni nulla e di alimentazione le quali rappresentano, rispettivamente, gli

stati logici 0 e 1. ·

R: (3 pt) Continuando ad adoperare le regole di De Morgan si ha A + B = AB = AB + 0 = AB 1,

che adoperando due porte NAND costa 1 + 1 = 2 µ. Chi all’esercizio precedente aveva già trovato la

soluzione in assoluto migliore non poteva comunque scendere sotto il costo di 1 + 1 = 2 µ.

7. Realizzare l’espressione all’esercizio 5 adoperando un multiplexer, il cui circuito combinatorio dev’essere

chiaramente esplicitato all’interno della rete booleana proposta.

R: (3 pt)

1

0 A B

8. [INF] Disegnare il diagramma della macchina di Mealy che, leggendo simbolo dopo simbolo una sequenza

A {0,

indefinitamente lunga di caratteri appartenenti all’alfabeto = riconosce ogni istanza delle

1, 2},

due sottosequenze e all’interno della sequenza letta. Per esempio, la sequenza

0012 0010 22001001022

contiene due istanze della sottosequenza A ogni ciclo di lettura la macchina in questione genera

0010.

le seguenti uscite: se non ha riconosciuto alcuna sottosequenza; nell’istante in cui riconosce la

0 1

sottosequenza nell’istante in cui riconosce la sottosequenza

0010; 2 0012.

R: (3 pt) 0 / 1

1,2 / 0 0 / 0

0 / 0 1 / 0

0 / 0

q0 q1 q2 q3

1,2 / 0

2 / 0 1 / 0 v 2 / 2

9. Quanti bit contenenti dati informativi possiede un codice di Hamming a N bit?

R: (3 pt) I codici di Hamming a N bit contengono log (N + 1) bit di controllo. Di conseguenza i bit

2

− −

informativi sono N log (N + 1). Per esempio, il codice di Hamming a 7 bit contiene 7 3 = 4 bit

2

informativi.

10. In un elementare sistema che deve servire un’unica periferica si deve scegliere tra un protocollo I/O, di

tipo programmato oppure controllato. Di essi si sa che il primo serve la periferica in 3 ms, mentre il

secondo necessita di 4 ms per espletare il medesimo servizio. In più si sa che la periferica può chiedere

di essere servita esattamente ogni 100 ms, tuttavia questo avviene appunto solo se la periferica ha fatto

richiesta; altrimenti essa non necessita di essere servita, e forse farà una richiesta trascorsi esattamente

altri 100 ms. Sulla base di questi dati si calcoli qual è il minimo numero di richieste che rende mediamente

conveniente adoperare il protocollo I/O di tipo programmato.

R: (3 pt) Se la periferica necessita di essere servita ogni 100 ms allora il protocollo I/O di tipo pro-

grammato fa guadagnare al sistema 1 ms di tempo di calcolo ogni 100 ms. Il punto di parità tra i due

protocolli avviene quando la periferica dev’essere mediamente servita tre volte su quattro, cioé il 75%

delle volte. In tal caso anche il protocollo I/O di tipo controllato richiede 12 ms di tempo al sistema per

le interruzioni. In definitiva il numero medio minimo di interruzioni che rende conveniente adoperare il

protocollo I/O di tipo programmato è uguale a 3 ogni 400 ms.

11. Con riferimento all’esercizio precedente, si dica quante sono le richieste che saturano il sistema nel caso in

cui si scelga di usare a) il protocollo I/O di tipo programmato e b) il protocollo I/O di tipo controllato.

R: (3 pt) Il protocollo I/O di tipo programmato è saturato quando la periferica richiede il servizio ogni

100 ms. Il protocollo I/O di tipo controllato non può essere mai saturato da una periferica che richiede

il servizio ogni 100 ms, in quanto la serve in 4 ms.

12. Si dia un esempio in cui un’operazione di logical shift right (lsr) eseguita da un processore ARM non

corrisponde all’operazione di arithmetic shift right (asr) eseguita sullo stesso dato.

R: (3 pt) Le due operazioni hanno esito diverso per esempio quando il dato rappresenta la codifica in

complemento a due di un valore intero negativo.

13. Una memoria virtuale di 1 GB è organizzata in pagine di 64 kB, che possono trovare posto in memoria

di massa oppure in posizioni casuali di una memoria principale di 4 MB. Non è prevista la presenza di

pagine virtuali inesistenti. Come dev’essere dimensionata la corrispondente page table?

R: La memoria principale necessita di 30 bit per essere indirizzata. Di essi, 16 individuano l’offset

10+6 30−16 14

all’interno di ogni pagina di 2 = 64 kB. La page table dunque dev’essere formata da 2 = 2

righe indirizzate dalla parte più significativa dell’indirizzo. Ciascuna di esse dovrà contenere 22 bit per

22

indirizzare ciascuna pagina casualmente in 2 = 4 Mbyte più il bit di presenza/assenza della pagina in

14

memoria fisica, per un totale di 2 righe di 23 bit ciascuna.

14. [INF] Con riferimento all’esercizio 8, scrivere un programma in assembly per ARM il quale legge dal

A {0,1,2}

file di testo una sequenza di caratteri appartenenti all’alfabeto = e quindi realizza

file.txt

la macchina sequenziale colà descritta. Il file di testo per comodità riporta nella prima riga il numero

di caratteri presenti nel file a partire dalla seconda riga. L’output è scritto a ogni ciclo di lettura nel

registro Il programma termina allorquando il file è stato letto interamente.

r5.

R: (9 pt)

.data

stringa:

.asciiz "input.txt"

.text

main: ldr r0, =stringa ; file name address in r0

mov r1, #0 ; read mode

swi 0x66 ; open file in read mode

mov r2, r0 ; save file handler

swi 0x6c ; read number of integers

mov r3, r0 ; save number of integers in r3

mov r6, #1 ; r6 loaded with one

machine_q0:

subs r3, r3, r6 ; decrement number of integers..

beq end ; ..and exit if zero

mov r5, #0 ; output zero

mov r0, r2 ; load file handler

swi 0x6c ; read integer from file

cmp r0, #0 ; if input==0..

beq machine_q1 ; ..jump to state q1

b machine_q0 ; else stay in current state

machine_q1:

subs r3, r3, r6 ; decrement number of integers..

beq end ; ..and exit if zero

mov r5, #0 ; output zero

mov r0, r2 ; load file handler

swi 0x6c ; read integer from file

cmp r0, #0 ; if input==0..

beq machine_q2 ; ..jump to state q2

b machine_q0 ; else jump to state q0

machine_q2:

subs r3, r3, r6 ; decrement number of integers..

beq end ; ..and exit if zero

mov r5, #0 ; output zero

mov r0, r2 ; load file handler

swi 0x6c ; read integer from file

cmp r0, #1 ; if..

beq machine_q3 ; ..input==1 jump to state q3

bgt machine_q0 ; ..input==2 jump to state q0

blt machine_q2 ; ..input==0 stay in current state

machine_q3:

subs r3, r3, r6 ; decrement number of integers..

beq end ; ..and exit if zero

mov r0, r2 ; load file handler

swi 0x6c ; read integer from file

cmp r0, #0 ; if..

bne non_zero ; ..input!=0 jump to non_zero

mov r5, #1 ; else output one

b machine_q1 ; and jump to state q1

non_zero:

cmp r0, #1 ; if..

bne non_one ; ..input!=1 jump to non_one

mov r5, #0 ; else output zero

b machine_q0 ; and jump to state q0

non_one:

mov r5, #2 ; output two

b machine_q0 ; jump to state q0

end: ;; end

swi 0x11 ; exit

.end DMIF — Dipartimento di Scienze

Università degli Studi di Udine Matematiche, Informatiche e Fisiche

Esame di Architetture degli Elaboratori

Soluzione

A.A. 2017-18 — IV appello — 3 luglio 2018

N.B.: il punteggio associato ad ogni domanda è solo una misura della difficoltà, e peso, di ogni domanda.<

Dettagli
Publisher
A.A. 2023-2024
9 pagine
SSD Ingegneria industriale e dell'informazione ING-INF/01 Elettronica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher danciogancio di informazioni apprese con la frequenza delle lezioni di Architettura dei calcolatori e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Udine o del prof Fontana Federico.