Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
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
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.