Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Virtual CPU - Eniac Dr.ssa Veronica Marchetti
Università degli Studi di Roma “Tor Vergata” Dr.ssa Veronica Marchetti
2
In dettaglio... Vedremo oggi cosa accade all’ interno della vCPU a fronte della esecuzione delle diverse operazioni : Load numero ( ‘LOAD 0’ non setta il bit ZE a 1) Somma Prodotto Memorizzazione rev 1
3
Ricordiamo il formato dell’istruzione
Fissato a 24 bit. 8 bit dedicati al codice operativo (b23…b16). b23 =1 instruzione di tipo o . 3 bit per il tipo dell’argomento (b15…b13). 13 per l’argomento (b12…b0).
4
Ricordiamo le 2 Classi di istruzioni
La differenza tra le due categorie è formalizzata tramite la specifica di due classi di istruzioni: la classe e la classe . Le due classi si distinguono per mezzo dell’MSB dell’istruzione: il bit b23. Nella classe i bit b15…b13 sono sempre assegnati a zero in quanto inutilizzati. La tipologia dell’argomento è insita nel codice operativo.
5
Esempio : LOAD LOAD ‘numero’ LOAD 5 1 01 00 000 000 0000000000101
b23 =1 istruzioni di tipo b22b21 = categoria b20...b16 codificano la specifica operazione all’interno della categoria (per questa categoria si usano solo i bit b20 b 19) rev 1
6
Ricordiamo: Istruzioni classe α (tipologia variabile) Codifica del tipo di argomento
Come detto la tipologia dell’argomento delle istruzioni di tipo α viene specificata dai 3 bit di tipo (b15...b13) b15 identifica la natura dell’argomento dell’istruzione : 1 indica che l’argomento è un nome di registro 0 indica che è un numero naturale Gli altri due bit, b14b13, assumono di conseguenza significati diversi in base alla natura dell’argomento rev 1
7
Esempio : LOAD @ LOAD @5 LOAD @5 1 01 00 000 001 0000000000101
b23 =1 istruzioni di tipo b22b21 = categoria b20...b16 codificano la specifica operazione all’interno della categoria (per questa categoria si usano solo i bit b20 b 19) rev 1
8
LOAD 5 OpCode rev 1
9
LOAD 5 OpCode rev 1
10
OpCode rev 1
11
OpCode rev 1
12
LOAD OpCode rev 1
13
LOAD OpCode rev 1
14
LOAD BX OpCode rev 1
15
LOAD BX OpCode rev 1
16
OpCode rev 1
17
OpCode rev 1
18
OpCode rev 1
19
OpCode rev 1
20
STORE OpCode rev 1
21
STORE OpCode rev 1
22
Esempio : SOMMA ADD 7 b23 =1 istruzioni di tipo b22b21 = categoria b20...b16 codificano la specifica operazione all’interno della categoria (per questa categoria si usano solo i bit b20 b 19) rev 1
23
ADD 5 OpCode rev 1
24
ADD 5 OpCode rev 1
25
‘ADD 5’ : Cosa accade all’interno dell’ ALU
rev 1
26
OpCode rev 1
27
OpCode rev 1
28
‘MUL @5’ : Cosa accade all’interno dell’ ALU
rev 1
29
Un semplice esempio Programma che calcola (senza istruzioni condizionate) il cubo del numero contenuto nella cella di memoria 5. Address Content 1 2 3 4 5 3 6 rev 1
30
Cosa accade… Address Content 1 LOAD @5 2 MUL @5 3 MUL @5 4 STORE @6
1 2 3 4 5 3 6 rev 1
31
STORE CX OpCode rev 1
32
STORE CX OpCode rev 1
33
OpCode rev 1
34
OpCode rev 1
35
SUB 0 OpCode rev 1
36
SUB 0 OpCode rev 1
37
JZ 21 OpCode rev 1
38
JZ 21 OpCode rev 1
39
JMP 11 OpCode rev 1
40
JMP 11 OpCode rev 1
41
‘DEC X’ : Cosa accade all’interno dell’ ALU
rev 1
42
‘INC X’ : Cosa accade all’interno dell’ ALU
rev 1
43
‘NOT X’ : Cosa accade all’interno dell’ ALU
rev 1
44
‘NEG X’ : Cosa accade all’interno dell’ ALU
rev 1
45
Eniac Emulatore di una CPU virtuale progettata e realizzata dal Dott. Mauro Codella e Dott. Dario Dussoni Attualmente il software è reperibile alla seguente URL : rev 1
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.