Download - Fondamenti di Informatica II Ingegneria Informatica e ...staff.icar.cnr.it/cannataro/didattica/L8-IngegneriaInformatica... · Fondamenti Informatica II - Lez. 08 24.05.2006 3 1) Introduzione

Transcript
Page 1: Fondamenti di Informatica II Ingegneria Informatica e ...staff.icar.cnr.it/cannataro/didattica/L8-IngegneriaInformatica... · Fondamenti Informatica II - Lez. 08 24.05.2006 3 1) Introduzione

Fondamenti Informatica II - Lez. 08 24.05.2006 1

Fondamenti di Informatica IIIngegneria Informatica e Biomedica

I anno, II semestreA.A. 2005/2006

Prof. Mario CannataroUniversità degli Studi “Magna Graecia”di Catanzaro

MAL

Page 2: Fondamenti di Informatica II Ingegneria Informatica e ...staff.icar.cnr.it/cannataro/didattica/L8-IngegneriaInformatica... · Fondamenti Informatica II - Lez. 08 24.05.2006 3 1) Introduzione

Fondamenti Informatica II - Lez. 08 24.05.2006 2

Sommario1. Introduzione2. Micro Assembly Language3. Architettura Mic-14. Istruzioni Logico Matematiche5. Istruzioni di Caricamento-Memorizzazione6. Istruzioni di Controllo7. Istruzioni Invokevirtual Ireturn8. Esempi

Page 3: Fondamenti di Informatica II Ingegneria Informatica e ...staff.icar.cnr.it/cannataro/didattica/L8-IngegneriaInformatica... · Fondamenti Informatica II - Lez. 08 24.05.2006 3 1) Introduzione

Fondamenti Informatica II - Lez. 08 24.05.2006 3

1) Introduzione

Ogni istruzione ISA-Level è realizzata mediante l’esecuzione di una sequenza di micro istruzioni. In ogni ciclo, sulla scorta del contenuto della control store, sono definiti:

•Lo stato di ogni segnale di controllo del sistema

•L’indirizzo della micro istruzione seguente.

Ogni micro istruzione determina autonomamente quella successiva:esse non sono eseguite nell’ordine in cui sono memorizzate.

Ogni microistruzione è atomica: non è possibile interromperne l’esecuzione.

Page 4: Fondamenti di Informatica II Ingegneria Informatica e ...staff.icar.cnr.it/cannataro/didattica/L8-IngegneriaInformatica... · Fondamenti Informatica II - Lez. 08 24.05.2006 3 1) Introduzione

Fondamenti Informatica II - Lez. 08 24.05.2006 4

2) MAL:Micro Assembly Language (1/3)

L’esecuzione di ogni istruzione ISA consiste di:Lettura dell’istruzione da memoriaSalto alle micro istruzioni corrispondentiEsecuzione della micro istruzioneRitorno e caricamento della successiva.

La memoria è comandata dai segnali rd e wr, mentre PC è gestito dal segnale fetch.

Page 5: Fondamenti di Informatica II Ingegneria Informatica e ...staff.icar.cnr.it/cannataro/didattica/L8-IngegneriaInformatica... · Fondamenti Informatica II - Lez. 08 24.05.2006 3 1) Introduzione

Fondamenti Informatica II - Lez. 08 24.05.2006 5

2) MAL:Micro Assembly Language (2/3)

Ogni insieme di micro istruzioni termina con un goto a Main1.

Main1 PC=PC+1;fetch;goto(MBR)Questa microistruzione incrementa il PC, comanda il segnale di fetch per il

caricamento della microistruzione successiva e salta all’istruzione contenuta in MBR. In MBR deve essere quindi presente l’opcode di una microistruzione , caricato nel ciclo precedente.

Quando in MBR non è presente alcuna istruzione Main1 salta alla NOP reiterando il ciclo fino a quando non è disponibile una microistruzione in MBR.

Page 6: Fondamenti di Informatica II Ingegneria Informatica e ...staff.icar.cnr.it/cannataro/didattica/L8-IngegneriaInformatica... · Fondamenti Informatica II - Lez. 08 24.05.2006 3 1) Introduzione

Fondamenti Informatica II - Lez. 08 24.05.2006 6

2) MAL:Micro Assembly Language (3/3)SOURCE può essere:

MDR, PC, MBR, MBRU, SP, LV, CPP, TOS, OPC

Questi registri sono sorgenti della ALU per mezzo del bus B.

DEST può essere:

MAR, MDR, PC, SP, LV, CPP, TOS, OPC, H

Questi registri sono output della ALU per mezzo del bus C.

Page 7: Fondamenti di Informatica II Ingegneria Informatica e ...staff.icar.cnr.it/cannataro/didattica/L8-IngegneriaInformatica... · Fondamenti Informatica II - Lez. 08 24.05.2006 3 1) Introduzione

Fondamenti Informatica II - Lez. 08 24.05.2006 7

3) Architettura Mic-1

Page 8: Fondamenti di Informatica II Ingegneria Informatica e ...staff.icar.cnr.it/cannataro/didattica/L8-IngegneriaInformatica... · Fondamenti Informatica II - Lez. 08 24.05.2006 3 1) Introduzione

Fondamenti Informatica II - Lez. 08 24.05.2006 8

4) Istruzioni logico- matematiche (1/3)

Istruzione IADD : richiede quattro cicli di clock1. Lettura dell’elemento sul top dello stack

Etichetta iadd1 MAR=SP=SP-1; rd2. Copia del valore del top dello stack in H

Etichetta iadd2 H=TOS3. Somma dei due valori

Etichetta iadd3 MDR=TOS=MDR+H;wr; goto Main 1

Page 9: Fondamenti di Informatica II Ingegneria Informatica e ...staff.icar.cnr.it/cannataro/didattica/L8-IngegneriaInformatica... · Fondamenti Informatica II - Lez. 08 24.05.2006 3 1) Introduzione

Fondamenti Informatica II - Lez. 08 24.05.2006 9

4) Istruzioni logico- matematiche (2/3)

Istruzione ISUB : richiede quattro cicli di clock1. Lettura dell’elemento sul top dello stack

Etichetta isub1 MAR=SP=SP-1; rd2. Copia del valore del top dello stack in H

Etichetta isub2 H=TOS3. Somma dei due valori

Etichetta isub3 MDR=TOS=MDR-H;wr; goto Main 1

La differenza sta nei differenti bit di comando della ALU che permettono l’esecuzione di una sottrazione anziché di una somma.

Page 10: Fondamenti di Informatica II Ingegneria Informatica e ...staff.icar.cnr.it/cannataro/didattica/L8-IngegneriaInformatica... · Fondamenti Informatica II - Lez. 08 24.05.2006 3 1) Introduzione

Fondamenti Informatica II - Lez. 08 24.05.2006 10

4) Istruzioni logico- matematiche (3/3)

Istruzione IAND : 1. Lettura dell’elemento sul top dello stack

Etichetta iand1 MAR=SP=SP-1; rd2. Copia del valore del top dello stack in H

Etichetta iand2 H=TOS3. Somma dei due valori

Etichetta iand3 MDR=TOS=MDR AND H;wr; goto Main1

La differenza sta nei differenti bit di comando della ALU.

Page 11: Fondamenti di Informatica II Ingegneria Informatica e ...staff.icar.cnr.it/cannataro/didattica/L8-IngegneriaInformatica... · Fondamenti Informatica II - Lez. 08 24.05.2006 3 1) Introduzione

Fondamenti Informatica II - Lez. 08 24.05.2006 11

5) Istruzioni di Caricamento Memorizzazione (1/2)

Istruzione ILOAD : 1. Copia di LV in H

Etichetta iload1 H=LV2. Copia dell’indirizzo della variabile in MAR

Etichetta iload2 MAR=MBRU+H; rd3. Prepara la scrittura su stack

Etichetta iload3 MAR=SP=SP+14. Incrementa il PC e scrive la cima dello stack

Etichetta iload4 PC=PC+1;fetch;wr5. Corregge il valore di TOS

Etichetta iload5 TOS=MDR; goto Main1

Page 12: Fondamenti di Informatica II Ingegneria Informatica e ...staff.icar.cnr.it/cannataro/didattica/L8-IngegneriaInformatica... · Fondamenti Informatica II - Lez. 08 24.05.2006 3 1) Introduzione

Fondamenti Informatica II - Lez. 08 24.05.2006 12

5) Istruzioni di Caricamento Memorizzazione (2/2)

Istruzione ISTORE : 1. Copia di LV in H

Etichetta istore1 H=LV2. Copia dell’indirizzo della variabile in MAR

Etichetta istore2 MAR=MBRU+H; rd3. Copia di TOS in MDR e scrivi su RAM

Etichetta istore3 MDR=TOS;wr4. Legge la parola in cima allo stack

Etichetta istore4 SP=MAR;SP=SP-1;rd5. Incrementa il PC legge il prossimo opcode

Etichetta istore5 PC=PC+1;FETCH6. Corregge il valore di TOS

Etichetta istore6 TOS=MDR;goto Main1

Page 13: Fondamenti di Informatica II Ingegneria Informatica e ...staff.icar.cnr.it/cannataro/didattica/L8-IngegneriaInformatica... · Fondamenti Informatica II - Lez. 08 24.05.2006 3 1) Introduzione

Fondamenti Informatica II - Lez. 08 24.05.2006 13

6) Istruzioni di Controllo (1/5)

Istruzione goto : 1. Salva l’indirizzo dell’opcode

Etichetta goto1 OPC=PC-12. MBR = primo byte dell’offset,legge il secondo byte

Etichetta goto2 PC=PC+1,fetch;3. Sposta e scrive il primo byte in H

Etichetta goto3 H=MBR <<84. H=offset di salto a 16 bit

Etichetta goto4 H=MBRU OR H5. Somma l’offset a PC

Etichetta goto5 PC=OPC+H,fetch6. Aspetta la lettura del prossimo opcode

Etichetta goto6 goto Main1

Page 14: Fondamenti di Informatica II Ingegneria Informatica e ...staff.icar.cnr.it/cannataro/didattica/L8-IngegneriaInformatica... · Fondamenti Informatica II - Lez. 08 24.05.2006 3 1) Introduzione

Fondamenti Informatica II - Lez. 08 24.05.2006 14

6) Istruzioni di Controllo (2/5)

Istruzione iflt : 1. Legge la parola in cima allo stack

Etichetta iflt1 MAR=SP=SP-1;rd2. Salva temporaneamente TOS in OPC

Etichetta iflt2 OPC=TOS;3. Mette la nuova cima dello stack in TOS

Etichetta iflt3 TOS=MDR (caricamento eseguito)4. Salto in funzione di H

Etichetta iflt4 N=opc;if(N) goto T else goto F

Page 15: Fondamenti di Informatica II Ingegneria Informatica e ...staff.icar.cnr.it/cannataro/didattica/L8-IngegneriaInformatica... · Fondamenti Informatica II - Lez. 08 24.05.2006 3 1) Introduzione

Fondamenti Informatica II - Lez. 08 24.05.2006 15

6) Istruzioni di Controllo (3/5)

Istruzione ifeq : 1. Legge la parola in cima allo stack

Etichetta ifeq1 MAR=SP=SP-1;rd2. Salva temporaneamente TOS in OPC

Etichetta ifeq2 OPC=TOS;3. Mette la nuova cima dello stack in TOS

Etichetta ifleq3 TOS=MDR (caricamento eseguito)4. Salto in funzione di H

Etichetta ifleq4 N=opc;if(N) goto T else goto F

Page 16: Fondamenti di Informatica II Ingegneria Informatica e ...staff.icar.cnr.it/cannataro/didattica/L8-IngegneriaInformatica... · Fondamenti Informatica II - Lez. 08 24.05.2006 3 1) Introduzione

Fondamenti Informatica II - Lez. 08 24.05.2006 16

6) Istruzioni di Controllo (4/5)

Istruzione ifcmpeq : 1. Legge la parola in cima allo stack

Etichetta ifcmpeq1 MAR=SP=SP-1;rd2. Prepara MAR per leggere la nuova cima dello stack

Etichetta ifcmpeq2 MAR=SP=SP-1 ;3. Copia la seconda parola dello stack

Etichetta ifcmpeq3 H=MDR,rd;4. Salva temporaneamete TOS in OPC

Etichetta ifcmpeq4 OPC=TOS5. Mette la cima dello stack in TOS

Etichetta ifcmpeq 5 TOS=MDR6. Se le due parole in cima allo stack sono uguali salta

Etichetta ifcmpeq6 Z=OPC-H if (Z) goto N else goto F

Page 17: Fondamenti di Informatica II Ingegneria Informatica e ...staff.icar.cnr.it/cannataro/didattica/L8-IngegneriaInformatica... · Fondamenti Informatica II - Lez. 08 24.05.2006 3 1) Introduzione

Fondamenti Informatica II - Lez. 08 24.05.2006 17

6) Istruzioni di Controllo (5/5)

Istruzione T: 1. Salta all’indirizzo target

OPC=PC-1;fetch;goto goto2

Istruzione F1. Salta il primo byte di offset

OPC=PC+1;

Page 18: Fondamenti di Informatica II Ingegneria Informatica e ...staff.icar.cnr.it/cannataro/didattica/L8-IngegneriaInformatica... · Fondamenti Informatica II - Lez. 08 24.05.2006 3 1) Introduzione

Fondamenti Informatica II - Lez. 08 24.05.2006 18

7) Istruzioni Invokevirtual - Ireturn

Istruzione invokevirtual

Istruzione ireturn

Page 19: Fondamenti di Informatica II Ingegneria Informatica e ...staff.icar.cnr.it/cannataro/didattica/L8-IngegneriaInformatica... · Fondamenti Informatica II - Lez. 08 24.05.2006 3 1) Introduzione

Fondamenti Informatica II - Lez. 08 24.05.2006 19

8) Esempio 1: Moltiplicazione

Page 20: Fondamenti di Informatica II Ingegneria Informatica e ...staff.icar.cnr.it/cannataro/didattica/L8-IngegneriaInformatica... · Fondamenti Informatica II - Lez. 08 24.05.2006 3 1) Introduzione

Fondamenti Informatica II - Lez. 08 24.05.2006 20

8) Esempio 2: Divisione

Page 21: Fondamenti di Informatica II Ingegneria Informatica e ...staff.icar.cnr.it/cannataro/didattica/L8-IngegneriaInformatica... · Fondamenti Informatica II - Lez. 08 24.05.2006 3 1) Introduzione

Fondamenti Informatica II - Lez. 08 24.05.2006 21

8) Esempio 3: IZERO

Implementare nell’architettura mic1 un’istruzione “IZERO var“ che azzeri il valore della variabile (var) passata come argomento ma non modifichi lo stack.

izero1 H = LVizero2 MAR = MBRU + Hizero3 MDR = 0; wrizero4 PC = PC + 1; fetch; goto Main1