Il sistema binario, il complemento a Due, virgola mobile
BINARIO PURO
Con m bit è possibile rappresentare 2m-1 numeri
- Il sistema binario è un sistema numerale posizionale pesato
MODULO E SEGNO
SEGNO
1 0 1 0 1 1- n bit incluso segno
- intervallo [-(2n-1-1), 2n-1-1]
- 4 bit [-(24-1-1), 24-1-1]
- [ -7, +7 ]
- 2 bit [-(22-1-1), 22-1-1]
- [ -3, +3 ]
MODULO A DUE
- Numeri positivi: uguale a modulo e segno
NUMERI NEGATIVI
- Inverti cifre
- Somma 1
- +10 → 01010
- -10 → 10110
- 1510 → 01001100
- -1510 → 101100100
ADDITIONS
- Ignorare riporto finale
- Corretto se: se c’è somma di due negativi e si ottiene un positivo, se somma di due positivi è positiva
- Affermare overflow
ESEMPI
- 1.110 = 0110012
- +610 = 001102
- ________
- 0111
- 11000✔
- 1.2
- 011100
- 001100
- ________
- 11100✔
- 2.5
- 0111002
- +710 = 100112
- ________
- 10010
- 1001✘
- 3.10
- 011002
- -310 = 100012
- ________
- +010002
- 1001010 = OVERFLOW
NUMERO FRAZIONARIO
- 0.3210 → 0.32 × 2 = 0.64
- 0.16 → 0.25
- 0.64 × 2 = 1.28
- 0.28 × 2 = 0.56
- 0.56 × 2 = 1.12
- 0.01(2)
CALCOLO MACCHINE ERRORE
0.01012-2 + 2-4 + 2-5 = 0.3185NOTAZIONE SCIENTIFICA
|M| · 10e
- MANTISSA
- BASE DECIMALE
- ESPONENTE LEGATO ALLA VIRGOLA
ES: 437 23, 7% 0,1001
RAPPRESENTAZIONE NORMALIZZATA
- UN SOLO NUMERO PRIMA DELLA VIRGOLA
10,0011 → 1,00011 · 10+1
RAPPRESENTAZIONE INTEGRATA
- ELIMINO PARTE NEGATIVA AGGIUNGENDO BIAS
[−1,9;1,9] → [0,3,65]
VIRGOLA MOBILE
−3276,44685 =
1) NORMALIZZO
1,1001100110011 · 2+11
2) POLARIZZO ESPONENTE
11 + 127 = 138 → 1001010
3) VIRGOLA MOBILE
SEGNO ESPONENTE MANTISSA
1 1001010 1001100110011 0...
127 BIAS CODE RANGE 32
→ Ø NON RAPPRESENTABILE
0 1 0 11 0 1
C0 = X̅SC1 = X̅S
BANCO DEI REGISTRI
- Funziona da 2k vie
- Con 1input (dati dei registri) → ingressi 5bit
- k linee (encode dei comandi → SEL)
- 2k numeri conduttivi da nbit
- k=2 → porte AND (condizioni con comandi esterni) 3? E 1
Caso di lettura
- Le linee del decod. sono i negati di i3, i2, i1, i0
- I due AND attivi ai contatti sui contatti sul registro selezionato
Casco di scrittura
- Vett. vengono portato ad 1
- Viene acceso con iregistri → con icarichi → con ioutput → si lo L2
- Gli ingressi del decoder non sono porte AND con ware
con i comandi presi a contatto, con selezione scrittura avven.: AND=1:1
Il Banco dei Registri
- È un insieme di registri che possono essere letti o scritti
- Input:
- I numeri dei due registri da leggere
- Il numero del registro da scrivere
- Il dato da scrivere
- Output:
- I contenuti (dati) dei due registri letti
- La scrittura di un dato in ingresso viene controllata dal segnale RegWrite che deve essere posto a 1 per poter scrivere nel registro
RegDst=0 perché RegWrite=0
ALUsrc=0 perché il secondo operando viene dal campo rt
MemtoReg=0 perché RegWrite=0
RegWrite=0 perché non viene scritto nulla nel register file
MemRead=0 perché non c’è accesso in lettura alla memoria dati
MemWrite=0 perché non c’è accesso in scrittura alla memoria dati
Branch=1 perché l’indirizzo della prossima istruzione dipende dall’esito della sottrazione ed output Zero della ALU
ALUop=01 sono i segnali di controllo richiesti per beq
Up e Hazard
- L'unica problematica che genera conflitto determinando un non allineamento dei risultati prodotto da diverse istruzioni nel ciclo successivo.
- Tali situazioni vanno battle e derivano dai:
Hazard strutturali
- Qui non possiamo eseguire due istruzioni nello stesso pezzo di circos.
Hazard sui dati
- Quando abbiamo un confine e la necessità di utilizzare un risultato prodotto da una precedente istruzione (ancora in esecuzione):
- Esempio dove B1, om, funziono: somma: and, not, xor, or, not, and or.
Forwarding: avanti di tasso per gli UART
- Facciamo pensare in sede quanto direttamente sostituire:
- Esempio da B2, b3, il m1 cmp: L1, L1, L1, rd1, L1
- Lettura memorizzare effetto
- Uso forwarding Microparallelismo iRE.
- Esempio moltiplicazione
- Due coppie migliorano NEWALING con MD in questo MC evitare
- Res forwarding aumenta di hazard
- 12 ADD $10,$7,$7
- 16 ADD $10,$10,$10
- 20 BNE $7,$6,+6
- 24 ADD $11,$10,$2
- 28 LW $12,0($11)
- 32 ADD $13,$10,$3
- 36 LW $14,0($13)
- 40 ADD $5,$12,$14
- 44 BNE $10,$2,+6
- 48 ADD $15,$10,$1
- 52 SW $5,0($15)
- 56 ADD $5,$6,$0
- 60
ESERCIZIO 8
i = h;
if(i!=0)
A[i] = B[i];
else
A[0] = h*h = i
Assegnazione
- $1 ← i,
- $2 ← h,
- $7 ← indirizzo base di A,
- $6 ← indirizzo base di B,
- 12 ADD $1,$2,$0
- 16 ADD $3,$1,$1
- 20 ADD $3,$3,$3
- 24 BEQ $1,$0,+6
- 28 ADD $4,$5,$6
- 32 LW $4,0($4)
- 36 ADD $8,$3,$7
- 40 SW $8,0($8)
- 44 J 56
- 48 SW $2,0($7)
- 52 ADD $2,$1,$0
- 56
ESERCIZIO 9 - CICLO FOR
g=0
For(i=0; i<100; i++)
{
g=g+2
h=g;
Assegnazione
- $1 ← i,
- $2 ← g
- $3 ← h
- 4 ADD $2,$0,$0
- 8 ADD $1,$0,$0
- 12 SLT $4,$1,100
- 16 BEQ $4,$0,+3
- 20 ADDI $2,$2,2
- 24 ADDI $1,$1,1
- 28 J 12
- 32 ADD $3,$2,$0
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Architettura degli elaboratori
-
Appunti Architettura degli elaboratori
-
architettura
-
Esercitazioni Architettura degli Elaboratori