• Non ci sono risultati.

ALUPCMARMDRIRReg. fileR0..RnTempAddrDataVZABR4selectALUctrlMUXZoutZinVinMDRinRi_inRi_outTemp_inTemp_outIRinZExtoutSignExtoutMDRoutMARinPCinPCoutExtenderCPU BUS

N/A
N/A
Protected

Academic year: 2021

Condividi "ALUPCMARMDRIRReg. fileR0..RnTempAddrDataVZABR4selectALUctrlMUXZoutZinVinMDRinRi_inRi_outTemp_inTemp_outIRinZExtoutSignExtoutMDRoutMARinPCinPCoutExtenderCPU BUS"

Copied!
2
0
0

Testo completo

(1)

Università degli Studi dell’Insubria

Dipartimento di Scienze Teoriche e Applicate Architettura degli Elaboratori

Prof. Marco Tarini

Cognome e nome Matricola

Esercizio 1 (5 pts)

Si desidera un circuito combinatorio che realizza la funzione da a,b,c,d a Z definita dalla tavola delle verità qui a fianco .

Realizzare il circuito, utilizzando le mappe di Karnaugh, e sintetizzando l’espressione come prodotto di somme.

Esercizio 2 (4 pts)

Mostare la rappresentazione del numero 52:

 in complemento a due su 8 bit, esteso in segno a 12 bit

 in virgola mobile con 6 bit di mantissa e 5 bit di esponente (offset a 16).

Esercizio 3 (3 pts)

Scrivere la tabella di verità dell’espressione: (a NAND b) XOR a .

Esercizio 4 (6 pts)

Si supponga di avere a disposizione il datapath mostrato a fianco (è quello visto a lezione). L’ALU dispone delle funzioni:

Add: R = A+B Pass: R = B Sub: R = A – B IsZero: R = A and B Shl: R = shift left(A)

Not: R = not A ALU

PC

MAR MDR

IR

Reg. file R0..Rn

Temp Addr

Data

V

Z

A B

R 4

select

ALUctrl MUX

Zin Zout Vin MDRin

Ri_in Ri_out Temp_in Temp_out

IRin ZExtout SignExtout

MDRout MARin

PCin PCout

Extender

CPU BUS

Si scriva un microprogramma che realizza l’operazione StoreTwo Rd Rs Rt

avente opcode = 42 e che ha l’effetto di assegnare il valore di Rd alla locazione di memoria indicata da Rs, e Rt in quella immediatamente successiva (quattro bytes avanti). Si richiede di minimizzare il numero di microistruzioni. Non è richiesta la fase di fetch: il microprogramma parte dal passo di indice 3, dopo la fase di fetch.

a b c d Z 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 1 0 1 0 1 X 0 1 1 0 1 0 1 1 1 1 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 1 0 0 1 1 1 0 1 0 1 1 1 0 1 1 1 1 1 0

(2)

Esercizio 5 (4 pts)

Si desidera realizzare un circuito avente le seguenti caratteristiche:

 L’ingresso A, da 5 bit, è un numero intero rappresentato in complemento a due.

 L’ingresso B, da 5 bit, è un numero naturale.

 L’uscita U rappresenta un numero intero in complemento a due su 6 bit: U = |A|+B.

Progettare il circuito. Si possono usare sommatori, multiplexer, selezionatori, etc.

Esercizio 6 (3 pts)

In un sistema di memoria con due livelli di cache, si ha:

 hit rate di livello 1 = 75%, tempo di accesso 4 ns;

 hit rate di livello 2 = 80%, tempo di accesso 10 ns;

 tempo di accesso alla memoria principale: 120 ns.

Si calcoli il tempo medio di accesso a memoria. Suggerimento: usare frazioni, non percentuali.

Esercizio 7 (6 pts)

Si completi il programma Assembly MIPS qui sotto.

Nella sezione dati, come si vede, viene memorizzato un array, terminato da 0, che contiene una sequenza di anni di nascita. Il programma deve riempire un secondo array, “età” (il cui spazio, come si vede, è già allocato), che contiene le rispettive età alla mezzanotte del 31 Dic 2016. Non è necessario che il secondo array sia terminato da 0.

Indizio: bastano meno di una dozzina fra istruzioni ed etichette.

Per agevolare la scrittura, si fornisce qua a fianco una tabella con le sintassi di alcune possibili istruzioni.

Scrivere solo il codice da sostituire alla parte indicata.

.

data

anni_nascita:

.word 1978 2001 1999 2010 0 eta: .space 16

.globl main .text

main:

<il tuo codice viene copiato qui>

over:

# exit program li $v0 10

syscall

la reg , etichetta load address (copia l’indirizzo nel registro)

li reg , valore load immediate (copia il valore nel registro)

lw reg , offset(reg) load word

(l’offset è opzionale) sw reg , offset(reg) store word

(l’offset è opzionale) add reg , reg , reg add (somma) addi reg,reg,valore add immediate sub reg , reg , reg subtract (differenza)

j etichetta jump

jr reg jump register

jal etichetta jump and link bnez reg , etichetta branch on not equal

zero

beqz reg , etichetta branch on equal zero

Riferimenti

Documenti correlati

Il programma deve scopire se nella sequenza compaia un numero di numeri 7 maggiore che non di numeri 17 (gli altri numeri non contano), e saltare

Il programma deve riempire un secondo array, memorizzato alla locazione “dest” (destinazione), che contenga tutti gli elementi strettamente positivi del primo array,

Elisabetta Berardi, Paolo De Paolis, Massimo Manca, Enrico Medda, Alberto Pelissero, Donato

Francesco Mosetti Casaretto Bryan De Notariis Pasquale Porro Sabrina Stroppa Andrea Taddei Étienne Wolff Comitato scientifico. Elisabetta Berardi, Paolo De Paolis, Massimo

[r]

materie prime a basso costo. Gran

Descrivere le indicazioni cliniche e le tecniche di gestione, riguardanti gli accessi venosi a impianto brachiale (PICC, Midline e Periferiche lunghe o Mini-Midline),

В 2003 году на азербайджанский язык были переведены рекомендации Совета Европы по «Торговле людьми в целях сексуальной