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.
vuoi
o PayPal
tutte le volte che vuoi
CONVERSIONE
Per l'intero 4310 dare gli algoritmi su 8 bit:
- Per codifica in modulo e segno,
- in completamento a 2;
- totale ed essenziale
- rappresentazione esadecimale (6 bit per campo);
- somma con 2110 in complementare dando eventuali motivazioni di OF;
- estensione in segno su 16 bit.
4310
- 2|43 R0=21
- 2|21+ R0=10
- 2|+10+ R1=5
- 2|5+ R2=2
- 2|+2 R3=1
- 2|+1 R4=0
4310=1010112
- Il MSB viene posto a 0 se il numero e' positivo: 00101011mod
- Il numero non vario rispetto a 1: 00101011comp1
- Si convertono 3 bit per volta partendo da LSB
101011 = 5316 = 0000005316
- Si convertono 3 bit per volta partendo da LSB
00101011 = 2B16 = 0000002B16
- Per rappresentare l'operato in compl2 basta eseguire il not bit a bit e aggiungere 1: ~(00101011) = 11010100+1 + 1 = 11010101 = -43
- 43+21=6410
- 2|64 R0=32
- 2|32 R1=16
- 2|16 R2=8
- 2|8 R3=4
- 2|4 R4=2
- 2|2 R5=1
- 2|1 R6=0
Non c'e' IL OV. perché C9=C8
- Per l'estensione in segno:
- per il mod, aggiungiamo tanti bit quanti ne sono necessari e ponendo il MSB con lo stesso valore del vecchio MSB che era 0, sommiamo 0:
- per il comp2 si duplica il MSB su tutti i bit aggiuntivi. 00000000 00101011comp2,mod = +43
Supponendo di usare la rappresentazione in campo su 6 bit, per gli interi -2210 , 1610, eseguire:
- algoritmo per la codifica in binario;
- calcolarne la somma bit a bit
- discutere il risultato della somma;
- progettare l'addizionatore binario per le suddette somme.
1)
-2210
3210 = 25 = R:0 =4 : 1+0 1610 = 24 = R:0 =2 : 1+0 810 = 23 = R:0 =1: 0+2 : 14 410 = 22 = R:0 =0 : 2+0 210 = 21 = R:0 =0 : 1+7
+2210 = 0.014
Considerare +22 , ne eseguo il complement bit a bit, aggiungo 1
-22 = 1 + .7(01 01010) 1000010 1011001 01 01010 = 22
16010 =2lo1 =8+0: lo=82 = R:0 =41: 00 I=41 = Rl:0 =21 = 60 2=1610 = 9 0000(8.10..1) 1000111 1110000
2)
-22+(+1.6)= -38
log2(Ngr d)= log2 (30) = 6 ; a vero occorrano 7 bit
1000000 0101100 100100+ 110000 = -16
3) Rbit Cn +G, quindi CT di alto caria e applicata
Lo sparius già con le formata appo apply
4)
ND= 0+0+0+0=2-66+1
ND=2+1+R=3+10
ND=2+1+R=16+10
ND=2+1+R=4+0
ND=1+O+R+2=4+
ND=2+1+R+4=1+1
ND=2+1+R+4=1+0
ND=2+1+R+4=1+0
Exp=10000101
Segno=1, Exp=10000101; Mantissa=101010111
2,51025/100001010101010110000
Come si è notato il Bit 1 della mantissa è stato eliminato; questo ci è permesso poiché il numero che cerchiamo di normalizzare è un numero fra l'altro prima della virgola, esso nel nostro caso quello del singolo binary con valore 1,3) è sempre 1 quindi la omettiamo. Inoltre evitiamo di convertire direttamente l'exp proferendo l’utilizzo della notazione polarizzata per avere un exp. 20, evitando di rappresentare segni negativi.
Su 8 bit il max è 127 quindi il coefficiente k di polar.
Sione è proprio 127. EXpp= EXpro+ k
Nello standard IEEE 454 c'è un problema di rappresentazio ne di:
Consideriamo Segno=0; Exp=0000000
Mantissa=OO∞ che è 1.2 f07 quindi non possiamo rappresentare da O.
Segno: 0 Exp=1111111 Mantissa=111 1
La mantissa è 110-23 e quindi è 2-23. L'exp è 128, quindi è 1.223/23/128. Non è possibile rappresentare numeri piu grandi di 12,213 198128 e piu piccoli di 12,213 198128.
Vi sono delle triangli costantì per rappresentare
Dopo aver descritto i formati delle istruzioni MIPS
1) illustrare la differenza tra le istruzioni add e addi.
2) Per esse calcolare il no di cicli di clock in una macchina a ciclo multiplo e in una pipe.
3) dire come la PC distingue l'una dall'altra e quale è il valore di $rs per ognuna delle due istruzioni.
I formati sono:
a) R:
opcode rs rt rd sh funct
31 26 25 21 20 16 15 11 10 6 5 0
I:
opcode rs rd | Astart
31 26 25 0
J:
opcode IND (il valore di loop per ognuna delle due istruzioni)
31 26 25
2\2\10 R
b) l'istruzione add è di tipo R mentre l'addi è di tipo I
La prima permette di sommare dei registri fra loro (rs, rt ovvero I e II operanti) e salvarlo in un 4df registro (rd).
La seconda permette di sommer un registro (rs) e una constante (Astart, estesa in segno per essere 32 bit) e di salvarlo nel registro rd.
2) Il numero di cicli di clock in uan macchina a ciclo multiplo (una per le add, sia per le addi) (in una pipe qualsiasi istruzione impiega 5 cicli). Il vantaggio è il parallelismo.
3) La PC individua il opcode e per un'istruzione di tipo R (addi) genera $loop=10 perchè 10=funzione mentre l'addi (i) genera segnale di $loop=01 perchè 01=I.
29/11/10
1) Oggi aver spiegato cosa intende per "formato" di un'istruzione. Per le istruzioni subi e beg a descriveme l'effetto di ciascuna di esse b descriveme il formato a cui appartengono c individuare le altre istruzioni dello stesso formato.
2) La lunghezza delle istruzioni MIPS (32 bit) è fissa. Esistono però 3 possibili formati per le istruzioni: R, I, J.
Under subi permette di effettuare sottrazione dei valori contenuti in due registri e salvare in un teso. Beq permette di effettuare un salto condizionato, ovvero se si verifica una determinate condizione si aggiorna il PC di n posi con la formula: PC=PC+4+N*4
3) Subi è di tipo R:
- Opcode: rs rd function
- Opcode: rs rd Astazi
Disegnare il cammino dei dati per l'unità di calcolo multiciclo
- specificare il ruolo dei registri IR, MDR, A, B, ALUout
- progettare il RW, IORW
- descrivere
- come viene calcolato il segnale Zero
- per l'esecuzione di quale istruzione viene utilizzato
- quale ruolo svolge nell'esecuzione dell'istruzione di cui al punto precedente
1) IRDR: memorizza l’uscita della memoria durante la operazione di lettura di un dato 2) AB: memorizzano i valori dei registri letti dal RT. NNB: memorizzano l’uscita dell’ALU 3) A) Il segnale Zero viene calcolato facendo una sottrazione 2 valori che restituira' o uno 0 rispettivamente a rs=rt, a 5z=1. Il calcolo ci serve per verificare un’eventuale soddisfa mento della bag che permette di effettuare un salto condi zionato se la condizione e' verificata. Il PC oltre al dato t+4 viene incrementato di un certo valore k scelto dal progra matore. 4)