Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

45
Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma “Tor Vergata”

Transcript of Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

Page 1: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

Virtual CPU - Eniac

Dr.ssa Veronica Marchetti

Università degli Studi di Roma “Tor Vergata”

Page 2: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 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

Page 3: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

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).

Page 4: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

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.

Page 5: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 5

Esempio : LOADLOAD ‘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)

Page 6: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

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

Page 7: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 17

Esempio : LOAD @LOAD @5

LOAD @5 1 01 00 000 001 0000000000101

LOAD @BX 1 01 00 000 101 0000000000001

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)

Page 8: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 8

LOAD 5

OpCode

Page 9: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 9

LOAD 5

OpCode

Page 10: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 10

LOAD @5

OpCode

Page 11: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 11

LOAD @5

OpCode

Page 12: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 12

LOAD @@5

OpCode

Page 13: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 13

LOAD @@5

OpCode

Page 14: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 14

LOAD BX

OpCode

Page 15: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 15

LOAD BX

OpCode

Page 16: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 16

LOAD @BX

OpCode

Page 17: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 17

LOAD @BX

OpCode

Page 18: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 18

STORE @6

OpCode

Page 19: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 19

STORE @6

OpCode

Page 20: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 20

STORE @@6

OpCode

Page 21: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 21

STORE @@6

OpCode

Page 22: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 22

Esempio : SOMMAADD 7 1 10 01 000 000 0000000000111

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)

Page 23: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 23

ADD 5

OpCode

Page 24: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 24

ADD 5

OpCode

Page 25: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 25

‘ADD 5’ : Cosa accade all’interno dell’ ALU

Page 26: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 26

MUL @5

OpCode

Page 27: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 27

MUL @5

OpCode

Page 28: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 28

‘MUL @5’ : Cosa accade all’interno dell’ ALU

Page 29: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 29

Un semplice esempioProgramma che calcola (senza istruzioni condizionate) il cubo del

numero contenuto nella cella di memoria 5.

Address Content

0

1 LOAD @5

2 MUL @5

3 MUL @5

4 STORE @6

5 3

6

Page 30: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 30

Cosa accade…Address Content

0

1 LOAD @5

2 MUL @5

3 MUL @5

4 STORE @6

5 3

6

Page 31: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 31

STORE CX

OpCode

Page 32: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 32

STORE CX

OpCode

Page 33: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 33

STORE @CX

OpCode

Page 34: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 34

STORE @CX

OpCode

Page 35: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 35

SUB 0

OpCode

Page 36: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 36

SUB 0

OpCode

Page 37: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 37

JZ 21

OpCode

Page 38: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 38

JZ 21

OpCode

Page 39: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 39

JMP 11

OpCode

Page 40: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 40

JMP 11

OpCode

Page 41: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 41

‘DEC X’ : Cosa accade all’interno dell’ ALU

Page 42: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 42

‘INC X’ : Cosa accade all’interno dell’ ALU

Page 43: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 43

‘NOT X’ : Cosa accade all’interno dell’ ALU

Page 44: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

rev 1 44

‘NEG X’ : Cosa accade all’interno dell’ ALU

Page 45: Virtual CPU - Eniac Dr.ssa Veronica Marchetti Università degli Studi di Roma Tor Vergata.

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 :

http://sourceforge.net/projects/eniac/