Integer Java Virtual Machine (IJVM)



Documenti analoghi
06 Livello di micro architettura

La microarchitettura. Didattica della strumentazione digitale e sistemi a microprocessore anno accademico pagina 1

Corso di Laurea in Informatica Architetture degli Elaboratori

Corso di Laurea in Informatica Architetture degli Elaboratori

Il livello della CPU, e in particolare come le istruzioni ISA (Instruction Set Architecture) che costituisce la CPU.

Corso di Laurea in Informatica Architetture degli Elaboratori

ARCHITETTURE MICROPROGRAMMATE. 1. Necessità di un architettura microprogrammata 1. Cos è un architettura microprogrammata? 4

Livello microarchitettura. Corso di. Architetture degli Elaboratori. Central Processing Unit (richiamo) Esempio: una microarchitettura per IJVM

MAL. Fondamenti di Informatica II Ingegneria Informatica e Biomedica I anno, II semestre A.A. 2005/2006

Corso di Laurea in Informatica Architetture degli Elaboratori

Corso di Laurea in Informatica Architetture degli Elaboratori

Lezione n.9. Introduzione al linguaggio macchina

Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica. prof. ing. Corrado Santoro

Una microarchitettura per IJVM. Corso di Architettura degli Elaboratori. Architetture degli Elaboratori. Central Processing Unit (richiamo)

Struttura del calcolatore

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):

Il simulatore SPIM SPIM

IJVM. Fondamenti di Informatica II Ingegneria Informatica e Biomedica I anno, II semestre A.A. 2005/2006

Architettura del calcolatore

Microarchitettura. Giacomo Fiumara Anno Accademico / 101

Corso di. Stack: Procedure e variabili locali. Architetture degli Elaboratori. Uno stack anche per i calcoli. Lo stack di esecuzione

Corso di Laurea in Informatica Architetture degli Elaboratori

Laboratorio di Architettura degli Elaboratori

Corso di Laurea in Informatica

Il livello della CPU, e in particolare come le istruzioni ISA (Instruction Set Architecture) che costituisce la CPU.

[

Laboratorio di Architettura degli Elaboratori Laurea A.A

Procedure e variabili locali. Corso di Architettura degli Elaboratori. Uno stack anche per i calcoli. Lo stack di esecuzione

Esempio di moltiplicazione come somma e spostamento

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine.

Corso di Calcolatori Elettronici I A.A Il processore Lezione 18

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

Il Processore: i registri

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti

Corso di Informatica Applicata. Lezione 3. Università degli studi di Cassino

IJVM. Danilo Dessì. Architettura degli Elaboratori.

CORSO DI ARCHITETTURA DEGLI ELABORATORI Linguaggio IJVM

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

Architettura di un calcolatore: introduzione

Dispensa di Informatica I.1

CPU. Maurizio Palesi

Lezione n.19 Processori RISC e CISC

Ing. Paolo Domenici PREFAZIONE

Contenuto della lezione

Protezione. Protezione. Protezione. Obiettivi della protezione

3. Programmazione strutturata (testo di riferimento: Bellini-Guidi)

Testi di Esercizi e Quesiti 1

Tutorial per l installazione del J2SE 6 e configurazione del sistema operativo

Lezione 7 Sommatori e Moltiplicatori

Corso di Laurea in Informatica

La Macchina Virtuale

Calcolatori Elettronici Parte X: l'assemblatore as88

Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)

Architettura hw. La memoria e la cpu

La macchina programmata Instruction Set Architecture (1)

IJVM 2/2. Fondamenti di Informatica II Ingegneria Informatica e Biomedica I anno, II semestre A.A. 2005/2006

MODELLO DLX IN UNISIM

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

L architettura di riferimento

Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre

Contenuto della lezione

Integer Java VM: IJVM

Calcolatori Elettronici A a.a. 2008/2009

Esegue la sommatral'accumulatoreac e Se I=1, ilcontenutodellacelladi memoriailcui indirizzoè

Appunti di Informatica 1

AXO Achitettura dei Calcolatori e Sistema Operativo. Instruction Set Architecture (ISA) e 68000

Calcolatori Elettronici

Programmare in Java. Olga Scotti

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Corso di Laurea in Informatica

Il memory manager. Gestione della memoria centrale

Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014

Architetture dei Calcolatori (Lettere. Installazione di SPIM. Interfaccia Grafica

Prelievo di un istruzione. Istruzioni macchina. Tipi di istruzioni. Registri principali della CPU e loro ruolo

Ciclo di Istruzione. Ciclo di Istruzione. Controllo. Ciclo di Istruzione (diagramma di flusso) Lezione 5 e 6

Parte II.2 Elaboratore

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

CALCOLATORI ELETTRONICI 29 giugno 2011

Progettare l'isa. Progettare l'isa. Corso di Architettura degli Elaboratori. Interpretazione

Aritmetica dei Calcolatori 2

Capitolo Quarto...2 Le direttive di assemblaggio di ASM Premessa Program Location Counter e direttiva ORG

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

CALCOLATORI ELETTRONICI 29 giugno 2010

CALCOLATORI ELETTRONICI 15 aprile 2014

E possibile modificare la lingua dei testi dell interfaccia utente, se in inglese o in italiano, dal menu [Tools

che vengano generati nell ordine corretto i sistema (es., la memoria, l unità aritmetico-

Corso di Laurea in Informatica

Esercizi di Microprogrammazione (Parte 1: MIC-1)

Architettura di tipo registro-registro (load/store)

MODULO STAMPA BOLLETTINO PDF

- Algoritmi ed esecutori di algoritmi - ALGORITMI MACCHINA DI VON NEUMANN

Politecnico di Milano Dipartimento di Elettronica e Informazione. Cognome Nome

Architettura di un computer

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput

Panoramica: che cosa è necessario

Sottosistema di Ingresso/Uscita (I/O)

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a prof.

I componenti di un Sistema di elaborazione. Memoria centrale. È costituita da una serie di CHIP disposti su una scheda elettronica

Transcript:

Integer Java Virtual Machine (IJVM) Calcolatori Elettronici II Prof. Antonino Mazzeo mazzeo@unina.it Ing. Luigi Romano Ing. Alessandro Cilardo Ing. Luigi Coppolino lrom@unina.it acilardo@unina.it lcoppoli@unina.it Architetture a stack (a) (b) (c) (d) PUSH a2 PUSH a3 ADD POP 1

Integer Java Virtual Machine Java Virtual Machine IJVM» include un sottoinsieme limitato alle operazioni su interi dell Instruction Set della JVM» non è orientata alla programmazione ad oggetti Mic-1» implementazione della IJVM IJVM: struttura della memoria 2

Tempificazione 3

Unità Logico-Aritmetica (ALU) Inoltre, sull uscita della ALU opera un blocco shifter che può realizzare:» shift a sinistra di 8 bit (per estendere MBR a 16 bit)» shift a destra di 1 bit Operazioni in memoria (1) Indirizzi a 32 bit Parole dati a 32 bit Opcode da 8 bit 4

Operazioni in memoria (2) MAR contiene l indirizzo di parola (da moltiplicare per 4) PC contiene l indirizzo di byte Controllo di flusso nel microprogramma MPC[8] = (JAMZ AND Z) OR (JAMN AND N) OR ADDR[8] MPC[0..7] = ADDR[0..7] OR (MBR[0..7] AND JMPC) 5

Instruction Set della IJVM Microprogrammazione 6

Ciclo base Microistruzioni: iadd 7

Microistruzioni: bipush Microistruzioni: iload 8

Microistruzioni: goto Microistruzioni: ifeq 9

Microistruzioni: wide iload Microistruzioni: invokevirtual 10

invokevirtual: evoluzione della memoria Microistruzioni: ireturn 11

ireturn: evoluzione della memoria Simulatore Mic-1 Prerequisiti» JDK1 o superiori Scaricare il file self-extracting ZIP archive dal sito http://www.ontko.com/mic1/ Eseguire il file autoestraente dalla directory di lavoro. Assicurarsi che il path verso la cartella /bin del java SDK sia presente nella variabile di ambiente PATH Aggiungere il percorso completo verso il file classes.zip nella variabile ambiente CLASSPATH 12

Utilities: mic1asm mic1asm» assemblatore per il microprogramma > java mic1asm input-file output-file Legge un file testo contenente il microprogramma nel MicroAssembler Language (MAL) per Mic-1 e produce un file binario caricabile nella microrom dell architettura simulata. Esempio: > java mic1asm mic1ijvm.mal mic1ijvm.mic1 Utilities: ijvmasm ijvmasm» compilatore assembler per l ISA della IJVM > java ijvmasm input-file output-file Legge un file testo contenente un programma nel linguaggio assembler IJVM e produce un file binario eseguibile dalla Mic1 e caricabile nel simulatore mic1sim Esempio: > java ijvmasm echo.jas echo.ijvm 13

Utilities: mic1sim mic1sim» simulatore della microarchitettura Mic1 > java mic1sim [ mic1-file ] [ ijvm-file ] Simula l architettura Mic1 caricando la microrom con il microprogramma mic1-file e la memoria esterna del processore con il macroprogramma ijvm-file Esempio: > java mic1sim mic1ijvm.mic1 echo.ijvm Simulatore Consente l esecuzione step-by-step del microprogramma, visualizzando il contenuto dei registri macchina ad ogni colpo di clock. E fornito di una console per le operazioni di input/output implementate da due speciali istruzioni a livello ISA:» IN: legge una parola da una speciale locazione di memoria e ne fa il push sullo stack» OUT: fa il pop dallo stack e scrive la parola letta in una speciale locazione di memoria 14

Compilazione e simulazione Simulatore in esecuzione 15

Struttura del file.mal (1) Con il simulatore è fornito il file mic1ijvm.mal che implementa l ISA della Mic1 descritta nel Cap. 4 del Tanenbaum (più le istruzioni IN e OUT). Il file.mal contiene prima di tutto delle direttive.label che associano ad alcune label utilizzate nel seguito del file gli indirizzi fisici della microrom in cui le corrispondenti microistruzioni saranno poste. Il resto del file contiene coppie label-microistruzione su ciascuna riga. Il next-address di ogni microistruzione è implicitamente fissato alla microistruzione sulla riga successiva, a meno che non siano usati costrutti goto. Struttura del file.mal (2) //.label nop1 0x00.label bipush1 0x10.label ldc_w1 0x13 // Main1 PC = PC + 1; fetch; goto (MBR) nop1 goto Main1 iadd1 iadd2 iadd3 MAR = SP = SP - 1; rd H = TOS MDR = TOS = MDR + H; wr; goto Main1 16

Modifica del microassembler Il file.mal può essere modificato per cambiare l implementazione di alcune macroistruzioni o aggiungerne altre Se si aggiungono macroistruzioni, è anche necessario modificare coerentemente il file ijvm.conf, che associa ad ogni codice mnemonico assembler un opcode. Esercizio Estendere l ISA della IJVM con una istruzione di Shift a sinistra che preleva dallo stack due parole: la testa dello stack rappresenta il numero di bit da shiftare, la seconda l operando. Come al solito, il risultato è posto a sua volta nello stack:» BIPUSH 42 // push dell operando ([SP]=42)» BIPUSH 1 // push del numero di bit ([SP]=1)» ISHL // 42 << 1 ([SP]=84) Il codice mnemonico della nuova istruzione sarà ISHL ed il corrispodente opcode 0x78 Il numero di bit da shiftare deve essere compreso tra 0 e 31 17

Modifica del file.conf Aggiungere nel file ijvm.conf la seguente riga. 0x78 è l opcode della nuova istruzione (ma anche l indirizzo fisico nella microrom che conterrà la prima microistruzione che la implementa) 0x78 ISHL Modifica del file.mal Copiare il vecchio file mic1ijvm.mal in un nuovo file (ad es. newmic1.mal) ed aggiungere le seguenti righe, che rappresentano le microistruzioni che implementano la ISHL.label ishl1 0x78 ishl1 MAR = SP = SP - 1; rd ishl2 ishl3 H = OPC = MDR ishl4 Z = TOS; if (Z) goto NoShift; else goto DoShift DoShift OPC = H = OPC + H DoShift2 TOS = TOS - 1; goto ishl4; NoShift MDR = TOS = OPC; wr; goto Main1 18

Programma assembler di test: echo.main L1: IN // request character input from memory DUP // duplicate top of stack (inputed char) for comparing BIPUSH 0x0 // push 0x0 for comparison IF_ICMPEQ L2 // if no characters are available for input, loop BIPUSH 1 ISHL OUT // else, print character GOTO L1 // loop back to beginning of program L2: POP // No key has been pushed, so clear the stack, GOTO L1 // and start over.end-main Compilazione e Simulazione 19

Simulatore in esecuzione Il programma riceve caratteri ASCII in ingresso, shifta il corrispondente codice esadecimale di un bit a sinistra, e stampa il risultato. Nell esempio, l utente ha digitato i caratteri 1 (0x31) e 2 (0x32), e riceve in output b (0x62) e d (0x64) Esercizio L istruzione ISHL implementata in precedenza non esegue alcun controllo sul numero di bit da shiftare (prima parola prelevata dallo stack). Ovviamente, questo meccanismo non garantisce un limite accettabile sul numero di passi che l istruzione compie (potrebbero arrivare a 2 32-1!). Come esercizio, imporre che la ISHL consideri solo i 5 bit meno significativi della parola contenente il numero di shift da effettuare, in modo tale che tale numero sia minore o uguale a 31. 20