La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Controllo e microprogrammazione

Presentazioni simili


Presentazione sul tema: "Controllo e microprogrammazione"— Transcript della presentazione:

1 Controllo e microprogrammazione
Architettura 1/2000

2 Cosa imparerete Come una CPU fa quello che fa
Schema logico (4.1) Implementazione di base (4.3) Un nuovo ISA: quello usato dalla catena programmativa Java (4.2) December 18

3 ISA per Java Modello programmativo Istruzioni Programma Java
Compilatore Istruzioni della Java Virtual Machine (byte code) December 18

4 ISA per Java Per semplicita’ si usa una versione semplificata della Java Virtual Machine chiamata Integer JVM. Niente istruzioni floating point Niente gestione delle caratteristiche object-oriented (ad esempio la chiamata a metodi) Niente gestione interruzioni December 18

5 Cammino didattico Imparare il modello programmativo
Imparare le istruzioni IJVM Imparare come le istruzioni Java si mappano in istruzioni IJVM Imparare come le istruzioni IJVM vengono eseguite in una CPU didattica chiamata Mic-1 December 18

6 Modello programmativo di IJVM
Uso della memoria Indirizzo lineare Stack Tipi di memoria: Costanti Parametri e variabili locali Metodi (codice) December 18

7 Stack Per passare parametri December 18

8 Stack Per eseguire calcoli a1  a2 + a3 December 18

9 Stack Le CPU moderne tendono a non usare la stack per i calcoli (ad esempio MIPS) ma ad usarla per il passaggio parametri. JVM e’ intesa principalmente per essere interpretata e fa eccezione: Usa istruzioni molto piccole con pochissimi operandi (byte code). Non usa registri. December 18

10 Modello di memoria 232 byte o 4 Gbyte
Indirizzamento per mezzo di offset da puntatori che definiscono aree di memoria con un uso specifico December 18

11 Constant pool Costanti, Puntata da un registro (CPP)
Area a sola lettura da parte del programma Area scritta dal caricatore quando il programma e’ caricato in memoria Puntata da un registro (CPP) December 18

12 Frame delle variabili locali
Un frame per ciascuna chiamata a metodo: Parametri di chiamata Variabili locali e operandi Delimitata da due registri LV e SP December 18

13 Area dei metodi Semplicemente il codice Puntata da un registro (PC)
December 18

14 Memoria JVM Sommario December 18

15 Granularita’ di indirizzamento
La memoria JVM e’ indirizzata a word di 4 byte quando si accede ai dati (LV, CPP, SP) La memoria JVM e’ indirizzata a byte quando si accede al codice (PC) December 18

16 Instruction set (1) BIPUSH byte Push di un byte sulla stack
DUP Copia della prima parola sulla stack e push IADD Pop di due parole dalla stack; push della loro somma IAND Pop di due parole dalla stack; push dell’AND logico IOR Pop di due parole dalla stack; push dell’OR logico ISUB Pop due parole dalla stack; push la loro differenza December 18

17 Instruction set (2) GOTO offset Branch non condizionato
IFEQ offset Pop di una parola e branch se è zero IFLT offset Pop di una parola e branch se è negativa IFICMPEQ offset Pop di due parole dalla stack; branch se sono uguali IINC varnum const Somma una costante a una variabile locale ILOAD varnum Push di una variabile locale sulla stack December 18

18 Instrucion set (3) ISTORE varnum Pop una parola dalla stack e memorizzala in una variabile locale LDCW index Push di una costante dalla constant pool sulla stack NOP Nessuna operazione POP Cancella una parola dalla cima della stack SWAP Scambia le due parole in cima alla stack WIDE Prefisso; l’istruzione seguente ha un indice di 16 bit December 18

19 Instrucion set (4) INVOKEVIRTUAL disp Chiama un metodo
IRETURN Ritorno da un metodo con un valore intero December 18

20 Chiamata dei “metodi” In realta’ semplicemente una chiamata di funzione in IJVM December 18

21 Prima e dopo IRETURN December 18

22 Da Java all’ISA di IJVM December 18

23 Seconda parte Come si fa ad “eseguire” i byte-code, cioe’ l’ISA, di IJVM? Ciclo fetch-execute Il datapath Il control-path Le microistruzioni December 18

24 Ciclo fetch-execute Leggi byte da RAM
Interpreta byte come istruzione IJVM Esegui istruzione, possibilmente leggendo e scrivendo word (4 byte) in RAM December 18

25 Data path December 18

26 ALU Output= December 18

27 Sincronizzazione del data path
December 18

28 Indirizzamento Dati Codice MAR (indirizzo 30 bit) e MDR (dati 32 bit)
PC (indirizzo 32 bit) e MBR (codice 8 bit) December 18

29 Dettagli dell’accesso in memoria
MBR unsigned: portato sul bus con 24 zeri nella parte piu’ significativa MBR signed: portato sul bus con i 24 bit significativi “estesi” dal bit di segno del byte meno significativo Quindi, se il byte conteneva un numero in complemento a due, lo stesso numero sara’ presente nei 32 bit del bus interno December 18

30 Microistruzioni Quanti segnali sono necessari per controllare il datapath? 9 C-registri 9 registri – B 8 ALU 3 controllo memoria December 18

31 Formato microistruzioni
December 18

32 Mic-1 December 18

33 Fetch December 18


Scaricare ppt "Controllo e microprogrammazione"

Presentazioni simili


Annunci Google