• Non ci sono risultati.

Esercitazione del 21 Gennaio 2011

N/A
N/A
Protected

Academic year: 2021

Condividi "Esercitazione del 21 Gennaio 2011"

Copied!
6
0
0

Testo completo

(1)

Esercitazione del 21 Gennaio 2011

Es 1

Vedere appunti

Es 2

A = -15 B = -23

Traduco -15 e -23

001111 ! --- 110000

1 + --- 110001 <- -15

010111 ! --- 101000

1 + --- 101001 <- -23 A + B

110001 101001 + --- 1011010

Essendoci un overflow C = 1 (riporto)

N = 0 (per errore) Z = 0 (non è zero) V = 1 (overflow)

(fare prima la somma aritmetica decimale e vedere se ci sta)

A – B (prendo il 23 non complementato a 2 e lo sommo) 1 1111 //Riporti

110001 + 010111 = --- 1001000 C = 1 N = 0 Z = 0 V = 0

(2)

a, b, c, d

Mintermini in dec: 1,3,5,6,7,9,11,12.14. Traduco in binario

a b c d

1 0 0 0 1

3 0 0 1 1

5 0 1 0 1

6 0 1 1 0

7 0 1 1 1

9 1 0 0 1

11 1 0 1 1

12 1 1 0 0

14 1 1 1 0

Costruisco la mappa di Carnot, deve cambiare un solo bit ad ogni colonna. Metto 1 nei mintermini c/d a/b -> 0/0 0/1 1/1 1/0

0/0 1

0/1 1 1 1

1/1 1 1 1

1/0 1 1

La mappa di Carnot è toroidale o, per dirla meno da matematici, funziona come lo Snake sul cellulare, se uscite da un lato entrate dall’altro (Barenghi)

Vanno cerchiati a bit di potenze di 2 prendendo i più grandi possibili Le 4 bolle (evidenziate con i 4 colori diversi) vanno in or

Bolla rossa: a resta fermo a 0 (quindi negato), d resta fermo positivo -> ̅ Bolla azzurra: d fermo a 0, b fermo a 1, c fermo a 1 -> ̅

Bolla gialla: b fermo a 0, d fermo a 1 -> ̅

Bolla verde: a fermo a 1, b fermo a 1, d fermo a 0 -> ̅ ̅ ̅ ̅ ̅

Nella seconda parte ci viene chiesto di minimizzare a mano

 

G

abcd

abcd

abcd

abcd

Cercare di raccogliere a fattor comune. Ricordiamo che C or C negato è vero, C and C negato è falso

   

 

abd c c abd c c abd abd

ad b b ad

    

  

  

Ci ricordiamo dall’Amleto che essere o non essere è vero (Barenghi)

(3)

Es 4

Addr 32 b Int 32 b

f 1 -> ARG : D0 RET: A0 f 2 -> ARG : D0 RET : A0 INT * f1(INT), INT * f2(INT),

INT * funz(INT a, INT b) { INT* TMP

DO {

TMP = f1 (10 + a *(*f2(b)), //Moltiplicazione con un puntatore WHILE (TMP==NULL)

RETURN TMP, }

funz -> PUSH a,b

Situazione Pila TMP

(4)

RET A B

Tabella spiazzamenti:

TMP: -4 B: 8 A: 12 Assembly:

FUNZ: LINK FP, #-4 // Spazio per il ritorno a 32 bit -> 4 B MOVEM D0-D2/A0,-(SP) // Salvo i registri

A: EQ 12

B: EQ 8

TMP: EQ -4

LOOP: MOVE.L B(FP), D0 BSR F2

MOVE.L (A0), D1 // Tradotta *f2(b) MOVE.L A(FP), D0 // Carico A

MULS.L D1, D0

ADDI.L #10, D0 // Tradotta la moltiplicazione BSR F1

MOVEA.L A0, TMP(FP) CMPA.L #0.L, A0 BEQ LOOP

MOVEA.L TMP(FP), B(FP) MOVEM (SP)+, D0-D7/A0 UNLK.L FP

RTS

Es 5

A che indirizzo siamo per ognuna di queste righe?

Mem Word = 16 b Addr to Byte

ORG 2000 Indirizzo (byte):

DIM: EQ 20 2000

VECT 1: DS.L DIM 2000

VECT 2: DS.L DIM 2080

START: MOVEA.L #DIM.L, A0 2160 // + 16b istr, 32b per .L LOOP: BEQ FINISH 2166 // Branch -> 1 word -> 2B

MOVE.L VECT1(A0),D0 2168

MOVE.L VECT2(A0),VECT1(A0) 2172 MOVE.L D0, VECT2(A0) 2178

SUBI.W #1.W, D0 2183

CMP LOOP.W 2186 // Cmp con label (1W): 4B

END START 2190

(5)

Es 6

Microarchitettura a Bus singolo Da implementare

PUSHBLOCK: #NUMWORD, (R0)+

(num word 32 bit) Possiamo usare DECR

UPDATE_FLAG GOTO

IF (…) GOTO (…)

STEP CODE

1 PCOUT, MARIN, SELECT 4, ADD, ZIN, READ, WFMC

2 ZOUT, PCIN

3 MDROUT, IRIN

4 PCOUT, MARIN, SELECT 4 ADD, ZIN, READ, WFMC

5 ZOUT, PCIN

6 MDROUT, VIN, UPDATE_FLAG

7 IF (Z), GOTO (…)

8 ROUT, MARIN, READ, ADD, SELECT 4, ZIN, WFMC

9 ZOUT, R0IN

10 SPOUT, SELECT 4, SUB, ZIN

11 SPIN, MARIN, ZOUT, WRITE 12 SELECT V, DECREMENT, ZIN 13 ZOUT, VIN, IF (Z=0&N=0)GOTO (8)

(6)

HIT = 1 CLK

MISS = 20 CLK (19 + 1) HIT_RATE_IST = 90%

HIT_R_D = 80%

T1 = INT_R_I * HIT + (1-HIT_R_I)*MISS = 2,9 CLK TD = HIT_R_D * HIT + (1-HIT_R_D)*MISS = 4,8 CLK TM = w1 * T1 + WD * TD = 3,5 CLK

Es 8

Vedere appunti

Riferimenti

Documenti correlati

Calcolare la temperatura finale e il lavoro compiuto dal gas durante questa trasformazione, sapendo che il volume iniziale7. `e di 3

Assumiamo i seguenti valori per i parametri della circolazione del sangue: pressione aortica media p = 100 mmHg; raggio dell’aorta r = 1 cm; velocit`a media del sangue nell’aorta v =

Un oggetto di massa 50 g attaccato a una molla si muove di moto armonico semplice con frequenza 50 Hz e ampiezza 10 cm.. Quanto vale, in modulo, la massima forza

A quale distanza p dalla lente bisogna collocare un oggetto affinch`e l’immagine che si forma sia reale e posta a 20 cm dalla lente.. Fare un grafico con la

Sapendo che il calore latente di evaporazione dell’acqua `e K ev = 2256 kJ/kg, determinare la variazione di energia interna di 1 litro di acqua quando ha completato la sua

Si calcoli con che velocit`a arriva al suolo un corpo lasciato cadere da fermo nel vuoto da una altezza di 10 metri?. Si applichi il teo- rema di conservazione

Si semplifichino i seguenti radicali, portando i fattori fuori dal segno di radice e mettendo, dove necessario, il valore assoluto. Si determini il campo di

[r]