• Non ci sono risultati.

Università degli Studi dell’Insubria Dipartimento di Scienze Teoriche e Applicate

N/A
N/A
Protected

Academic year: 2021

Condividi "Università degli Studi dell’Insubria Dipartimento di Scienze Teoriche e Applicate"

Copied!
5
0
0

Testo completo

(1)

Università degli Studi dell’Insubria

Dipartimento di Scienze Teoriche e Applicate Architettura degli Elaboratori

Prof. Marco Tarini

Testo con traccia della soluzione Esercizio 1 (5 pts)

Dato il circuito qui accanto:

a. Determinarne il tempo di commutazione, se ogni porta AND e OR impiega 3 ns, e ogni porta NOT 1 ns.

Risposta: 3+3+1 = 7

b. Scrivere la tabella delle verità della funzione associata.

Scrivere un’espressione equivalente in prima forma canonica., ottimizzata utilizzando le mappe di Karnaugh.

A \B + BC

A B C d =

A+B e =

\B f = C+e Z =

f ∙ d

0 0 0 0 1 1 0

0 0 1 0 1 1 0

0 1 0 1 0 0 0

0 1 1 1 0 1 1

1 0 0 1 1 1 1

1 0 1 1 1 1 1

1 1 0 1 0 0 0

1 1 1 1 0 1 1

f d

e

(2)

Esercizio 2 (5 pts)

Mostare la rappresentazione del numero –146.4 in virgola mobile, con 12 bit di mantissa e 5 bit di esponente (offset a 16), con troncamento (quindi arrotondando per difetto).

146

10

= –10010010

2

0.4

10

= –0.01100…

2

–146.4

10

= –146

10

+ 0.4

10

= –10010010.011001…

2

= –1.0010010011001…

2

x 2

7 (forma canonica)

1 0 0 1 0 0 1 0 0 1 1 0 0 1 0 1 1 1

segno (neg.)

mantissa

(tutti i bit, omettendo il “1 virgola”)

esponente (7 + 16)

Determina quale valore viene effettivamente rappresentato (usando il procedimento inverso).

x = –1.001001001100

2

x 2

7

= –10010010.01100

2

= –10010010

2

+ 0.01100

2

= –146 + 1/4 + 1/8

= –146 + 0.25 + 0.125 = –146.375

Oppure:

= –10010010

2

+ 0.011

2

= –146 + 011

2

/ 2

3

= –146 + 3 / 8

= –146.375

Esercizio 3 (2 pts)

Disegnare un circuito che implementa una funzione OR (a due ingressi) usando solo porte NOR .

Spiegazione: NOT (A NOR B) = ( A OR B )

Ma il NOT lo posso fare con NOR: (A NOR A ) è lo stesso di ( NOT A).

Quindi… A OR B = (A NOR B) NOR (A NOR B)

(3)

Esercizio 4 (6 pts) Si supponga di avere a disposizione il datapath mostrato a fianco (è uno di quelli visti a lezione). L’ALU dispone delle seguenti funzioni dei suoi due ingressi A e B:

Add: R = A+B Sub: R = A – B PassA: R = A PassB: R = B

IsZero: esiti = isZeroA Not: R = not A

Si scriva un microprogramma che realizza l’operazione: JALI imm (“Jump and link to immediate”) avente opcode = 22. L’effetto di tale operazine è quello di memorizzare il Program Counter corrente nel registro 31, e di saltare all’istruzione indicata dal campo immediate. Il microprogramma deve includere la fase di fetch.

OP- Code

Step

(μPC) Esiti Controlli Next

Step (sigificato inteso):

X 0 X MAR_in, PC_OUT

ALUcrt = PassB Read

1 MAR  PC

X 1 X PC_out, PC_in,

sel4, ALUcrt = SUM, WFMC

2 PC  PC + 4 MDR  RAM[ MAR ] X 2 X MDR_out_B , IR_in,

ALUcrt = PassB

3 IR  MDR

22 3 X PC_out, R31_in, ALUcrt = PassB

4 R31  PC

22 4 X PC_in IMM_out ALUcrt = PassB

0 PC  imm (che è parte di IR)

Note:

Passo 0 1 2= istruction fetch (nota che l’opCode non è rilevante, infatti vale X (“qualsiasi valore”) Ogni scrittura di registro passa per il Bus C.

ad es, nel passo 3, il PC viene copiato nel Bus B, da qui entra nella ALU come secondo parametro, che lo riproduce inalterato in uscita. Dall’uscita della ALU, il valore di PC viene riversato nel bus C da dove viene copiato in R31.

In questo es, gli esiti non sono mai rilevanti, infatti sono tutti X (“qualsiasi valore”)

(4)

Esercizio 5 (4 pts)

Realizzare un circuito sequenziale per controllare un dispositivo provvisto di lampadina LED.

L’uscita U del circuito determina se la lampadina è accesa. Il dispositivo ha due stati: disattivato e lampeggiante. Quando è disattivato, la lampadina rimane spenta. Quando è lampeggiante, la lampadina alterna fra accesa e spenta una volta ogni ciclo di clock.

Il dispositivo è provvisto di un solo tasto, collegato direttamente all’unico input del circuito (oltre al clock). Questo segnale alterna fra i due stati del dispositivo.

Si possono usare tutte le comuni porte (AND, OR, XOR, NOT…) e i blocchi funzionali sequenziali (latch, flip flop sincronizzati, etc) o combinatori.

Note:

Il bit A registra lo stato del dispositivo. Alterna fra 0 e 1 quando input vale 1.

Il bit B registra la fase del blink (acceso/spento): alterna fra 0 e 1 ad ogni ciclo di clock.

La lampadina è accesa quando entrambi sono in fase ON.

Questa è solo una delle tante possibili soluzioni.

Notare, tuttavia, che un solo bit di stato non può essere sufficiente.

Esercizio 6 (3 pts)

Si disegni il circuito di un bistabile SR. Si ricorda che tale latch prende in input un segnale S (set) e uno R (reset), e restituisce in uscita un valore corrente Q e il suo negato \Q. Quando S vale 1, il valore di Q viene messo a 1. Quando il R vale 1, il valore di Q assume 0. Quando entrembi valgono 0, il valore di Q rimane inalterato.

Soluz: vedere lucidi

(5)

Esercizio 7 (6 pts)

Si completi il programma Assembly MIPS qui sotto.

Ipotizzare che nella sezione dati sia stato memorizzato un array che contiene un sequenza di un certo numero di valori interi strettamente positivi (maggiori di 0), memorizzati in altrettanti words.

L’array è terminato dal valore speciale 0.

Al termine del programma, il registro s0 deve contenere il maggiore di questi valori, oppure 0 se non è memorizzato alcun valore nell’array.

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

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

Scrivere solo il codice da sostituire alla parte indicata in rosso.

Note: nella soluzione qui sotto si usano tre registri:

t0: memorizza l’indirizzo del dato da leggere t1: il dato letto

s0: il valore del massimo fra tutti i dati letti.

Ad ogni iterazione, si legge un dato dall’indirizzo t0 e lo si mette in t1.

Se t1 0, si interrompe il ciclo (se questo avviene al primo ciclo, s0 mantiene il suo valore iniziale, cioè 0 – come richiesto).

Altrimenti, si paragona t1 con s0: se è maggiore, t1 è il nuovo valore di s0. Il paragone viene fatto sottraendo t1 da s0 e testando se la differnza (cioè t2) è maggiore di 0. L’uguaglianza non conta:

se t1 e s0 sono uguali, si può sovrascrivere s0 con t1 oppure no.

.

data dati:

.word <qui verranno messi i dati>

.globl main .text

main:

la t0 dati li s0 0

ciclo:

lw t1 (t0) addi t0 t0 4 jeqz t1 over sub t2 s0 t1 bgtz t2 ciclo move s0 t1 j ciclo 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)

move regA , regB copia il registro B nel registro A

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

bgez reg , etichetta branch on greater or equal than zero bgtz reg , etichetta branch on greater than

zero

bnez reg , etichetta branch on not equal zero

beqz reg , etichetta branch on equal zero

Riferimenti

Documenti correlati

All’interno di questo complicato arcipelago ho scelto di illustrare un lavoro di rassegna che analizza nel dettaglio il rapporto tra finzione cardiovascolare, in

- nominato Professore associato per la disciplina Neuropatologia presso la Facoltà di Medicina e Chirurgia dell'Università degli Studi di Siena, cessando in pari

Premere il tasto Start ha l’effetto di riazzerare il timer e farlo partire (il timer continua a scorrere, anche se il tasto Start viene rilasciato, fino alla pressione del

(c) Se una porta AND (a due ingressi) costa quanto 2 porte NOT, e una porta OR (a due ingressi) costa quanto 3 porte NOT (e non è disponibile nessun altro tipo di porta), quale

Quindi possiamo considerarlo come un solo array, con il doppio degli elementi.. Scandiamo il doppio degli elementi a partire dal

La valutazione delle candidate e dei candidati è effettuata dal Dipartimento o dall’organo a ciò preposto dal Dipartimento, che in apposita deliberazione darà ragione

Il nuovo percorso di studio di Laurea magistrale in Giurisprudenza è stato ideato tenendo conto della domanda proveniente dal mercato del lavoro, che richiede sempre più

Come si può notare nel nodo 10 del modello ad albero, il tasso di incidenza dell’ipertensione tra i soggetti dello studio che hanno praticato un’attività fisica moderata e a