Niveauer af abstrakte maskiner



Relaterede dokumenter
Mikroprogrammering. Niels Olof Bouvin Institut for Datalogi Aarhus Universitet

Mikroarkitektur. Niels Olof Bouvin Institut for Datalogi Aarhus Universitet

Eksamen dcomnet Q2/2010. Navn

Eksamen dcomnet Q2/2012. Studiekortsnummer Navn

Eksamen dcomnet 2012Q4. Årskortsnummer Navn

Maskinarkitektur. Lars Kristensen Christian Storm dmasark 1

dcomnet-nr. 6 Talrepræsentation Computere og Netværk (dcomnet)

Computerarkitektur Eksamen 2014Q3. Niels Olof Bouvin. Studienummer Navn

Computerarkitektur Eksamen 2014Q2. Niels Olof Bouvin A. Studienummer Navn

Eksamen Computerarkitektur 2013Q4. Niels Olof Bouvin. Studienummer Navn

Computere og Netværk (dcomnet)

Lageret i maskinarkitekturen. Beregningsenhed, lagre (registre, RAM, disk), ydre enheder

dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet)

CPUer og maskinkode DM534. Rolf Fagerberg

Computerarkitektur. - en introduktion til computerarkitektur med LINDA

Introduktion til Computerarkitektur. Niels Olof Bouvin Institut for Datalogi Aarhus Universitet

Niveauer af abstrakte maskiner

Lageradministration. dopsys

Design af et ISA. Niels Olof Bouvin Institut for Datalogi Aarhus Universitet

Processoren: Fler-cyklus implementation

Processoren: Enkelt-cyklus implementation

Niveauer af abstrakte maskiner

Oversættere Skriftlig eksamen onsdag d. 25. januar 2006

uprocessorens hardware

MIPS, registerallokering og MARS

program fibomain(input,output); var i, j,result : integer; var x, y: integer;

DATALOGI 1E. Skriftlig eksamen fredag den 7. juni 2002

Lageradministration Paging og segmentering

DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi Opgave: Brev til Sigurd Lære: John Austin Side 1 af 8 Dato:

DATALOGI MASKINARKITEKTUR

Sider og segmenter. dopsys 1

Chapter. Information Representation

DATALOGI 1E. Skriftlig eksamen fredag d. 16. januar 2004

Sider og segmenter. dopsys 1

Project Step 7. Behavioral modeling of a dual ported register set. 1/8/ L11 Project Step 5 Copyright Joanne DeGroat, ECE, OSU 1

DATALOGI MASKINARKITEKTUR Blok 2 samt Reeksamination i DATALOGI MASKINARKITEKTUR Blok 1 og arkitekturdelen af DATALOGI 1E

PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU

Processer og tråde. dopsys 1

DM13-3. Obligatorisk opgave E.05 Håndoptimering af SPARC assembler-kode

INGENIØRHØJSKOLEN I ÅRHUS Elektro- og IKT-afdelingen. I3PRG3 + I3DTM3 + I3ISY1-3. semester

DATALOGI 1E. Skriftlig eksamen mandag den 23. juni 2003

// Definition af porte og funktioner

Design by Contract Bertrand Meyer Design and Programming by Contract. Oversigt. Prædikater

Boligsøgning / Search for accommodation!

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi C Opgave: Brev til Sigurd Lære: John Austin Side 1 af 13 Dato:

SIMD. 2.1 Computation Reuse [1] Memoization [2] Nagoya Institute of Technology. Nara Institute of Science and Technology

Operativsystemer - dopsys

Processer og koordinering. dopsys 1

Koordinering. dopsys

Peter Kellberg. Rundt om Danmarks Statistiks makroer. Design, Standardisering, Teknik

AVR MP Ingeniørhøjskolen i Århus Michael Kaalund

Online kursus: Programming with ANSI C

Grådige algoritmer. Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Internt interrupt - Arduino

Grundlæggende Algoritmer og Datastrukturer. Analyseværktøjer [CLRS, 1-3.1]

Pentium IA-32 Maskinarkitekturen

Planen for idag. Kontrol af ydre enheder. Systemarkitektur. Synkronisering ved aktiv venten. Multiprogrammering[1]: Ydre enheder og multiprogrammer

Lageradministration Intel Pentium og Unix/Linux

ECE 551: Digital System * Design & Synthesis Lecture Set 5

up/ansi Eksamensspørgsmål

Programmering i C Intro og grundlæggende C 5. marts 2007

Sproget Rascal (v. 2)

DM13-1. Obligatoriske Opgave - Kredsløbs design

To mikroarkitekturer til MIPS Karakteropgave på Maskinarkitektur 1B

Computer Literacy. En stationær bordmodel. En Bærbar Notebook, Labtop, Slæbbar, Blærebar mm.

Sproget Six. Til brug i rapportopgaven på kurset Oversættere. Vinter Abstract

Engineering of Chemical Register Machines

Abstrakte datatyper C#-version

DATALOGI 1E. Vejledende løsninger til Skriftlig eksamen fredag den 7. juni 2002

Algoritmer og invarianter

DET KONGELIGE BIBLIOTEK NATIONALBIBLIOTEK OG KØBENHAVNS UNIVERSITETS- BIBLIOTEK. Index

3D NASAL VISTA TEMPORAL

Verilog HDL. Presented by: Amir Masoud Gharehbaghi

Egenskaber for ROM/RAM

Tilgang til data. To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (også kaldet key, nøgle) for dataelementer.

Filsystemer: Anvendelse. dopsys

Sammenlign og byt. Et eksempel på dokumentering af et program

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Ideen er simpel:

Det Digitale Niveau. Niels Olof Bouvin Institut for Datalogi Aarhus Universitet

DM507 Algoritmer og datastrukturer

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

3D NASAL VISTA 2.0

Kernealphaerne Indhold af G1

Algoritmer og Datastrukturer 1. Gerth Stølting Brodal

Algoritmer og Datastrukturer 1

Tilgang til data. To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (key, nøgle) for dataelementer.

DM507 Algoritmer og datastrukturer

Planen for idag. Indhold af G1. Kernealphaerne. Alpha erne. Datalogi 1F Forår 2003

DATALOGI 1E. Vejledende løsninger til Skriftlig eksamen mandag den 28. maj min min min min.

Virtuel Hukommelse. Niels Olof Bouvin Institut for Datalogi Aarhus Universitet

Part 5 Leisure Time and Transport

Design by Contract. Design and Programming by Contract. Oversigt. Prædikater

Bits DM534. Rolf Fagerberg, 2012

Maskinsprog. Martin Zachariasen, DIKU. Programmer og ordrer. Ordretyper. Operander og deres placering. Ordreformat. Procedurekald. Andre arkitekturer

Dette korte foredrag er opdelt i 3 dele: 1. ARDUINO i flere versioner, hvad er det? 2. DEMO-video 3. Din fremtidige Oscillator, SI5351A 4.

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Introduktion til datastrukturer. Introduktion til datastrukturer. Introduktion til datastrukturer. Datastrukturer

ARP og ICMP. - service protokoller, som vi ikke kan undvære! Netteknik 1

Transkript:

Mikroarkitektur

Niveauer af abstrakte maskiner Spørgsmål... Hvordan realiseres IJVM maskinen (lev. 2), eller hvordan ser en IJVM-CPU ud? Opbygning (mikroarkitekturen Mic-1) Anvendelse (mikroprogrammet IJVM)

Maskinniveau Vores fokus er på IJVM maskinen

IJVM instruktioner Afvikles i en fetch-decode-execute cyklen af CPU'en

Fetch-decode-execute 1. Fetch the next instruction from memory into the instruction register. 2. Change the program counter to point to the following instruction. 3. Determine the type of the instruction just fetched. 4. If the instruction uses a word in memory, determine where it is. 5. Fetch the word, if needed, into a CPU register. 6. Execute the instruction. 7. Go to step 1 to begin executing the following instruction. Se SCO side 54

Mikroarkitektur: Mic-1

Mikroarkitektur: Mic-1 CPU registre kontrolenhed fetch- decode- Execute af IJVM instruktioner beregningsenhed

Registre: MAR: Memory Address Register. MDR: Memory Data Register. PC: Program Counter MBR: Memory Byte/Buffer Register SP: Stack Pointer LV: Local Variable Frame CPP: Constant Pool Pointer TOS: Top Of Stack OPC: Old Program Counter H: Help register

Kontrol af beregningsenheden Shifter kontrol: SLL8 (shift left logical 8) SRA1 (shift right arithmetic 1)

Timing af beregningsenheden

Eksempel: PC=PC+1 1 1 110101 00

Eksempel: PC=PC+1 1 1 110101 00

Eksempel: PC=PC+1 1 1 110101 00

Eksempel: PC=PC+1 1 1 110101 00

Eksempel: PC=PC+1 1 1 110101 00

Lager tilgang Stack Constant Pool Method Area 4.294.967.296 bytes (32 bit) / 1.073.741.824 words (30 bit) PC/MBR bruges til at tilgå Method Area ved brug af byte adresser. MAR/MDR bruges til at tilgå Stack og Constant Pool ved brug af word adresser. Timing: hvis PC (MAR) sættes i cycle k indeholder MBR (MDR) indholdet af lagercellen i starten af cycle k+2.

Timing ved lager tilgang MDR/MBR kan læses Cykel k Cykel k+1 Cykel k+2 MAR/PC sættes Bus/lager opererer PC/MBR bruges til at tilgå Method Area ved brug af byte adresser. MAR/MDR bruges til at tilgå Stack og Constant Pool ved brug af word adresser. Timing: hvis PC (MAR) sættes i cycle k indeholder MBR (MDR) indholdet af lagercellen i starten af cycle k+2.

Timing ved lager tilgang Mulighed for back-to-back reads jvf. SCO 240 MDR/MBR kan læses Cykel k Cykel k+1 Cykel k+2 MAR/PC sættes Bus/lager opererer PC/MBR bruges til at tilgå Method Area ved brug af byte adresser. MAR/MDR bruges til at tilgå Stack og Constant Pool ved brug af word adresser. Timing: hvis PC (MAR) sættes i cycle k indeholder MBR (MDR) indholdet af lagercellen i starten af cycle k+2.

Tolkning af MAR adresse MAR indeholde word-adressen [0, 1.073.741.824] på det maskinord der skal indlæses. Dette skal oversættes til en byte-adresse i et 4 Gb lager... Dette gøres ved at gange med 4, dvs. skifte to plads til venstre

Udlæsning af MBR til B-bus MBR (en byte) kan udlæses til B-bus, som 1) unsigned, hvis fx argument til iload 2) signed, hvis fx argument til bipush unsigned: w 7 w 6 w 5 w 4 w 3 w 2 w 1 w 0 00... 00w 7 w 6 w 5 w 4 w 3 w 2 w 1 w 0 signed: w 7 w 6 w 5 w 4 w 3 w 2 w 1 w 0 w 7 w 7... w 7 w 7 w 7 w 6 w 5 w 4 w 3 w 2 w 1 w 0 Sign extension

Mikroarkitektur: Mic-1 CPU registre kontrolenhed fetch- decode- Execute af IJVM instruktioner beregningsenhed

Mikroinstruktions format 8 1

Mikroinstruktion: PC=PC+1 1 1 110101 00

Mikroinstruktion: PC=PC+1 1 1????????? 000 00110101 000000100 000 0001 110101 00

Der afvikles een mikroinstruktion per clock-cycle, timing er vigtig...

Der afvikles een mikroinstruktion per clock-cycle, timing er vigtig... T = 0

Der afvikles een mikroinstruktion per clock-cycle, timing er vigtig... T = [0, w]

Der afvikles een mikroinstruktion per clock-cycle, timing er vigtig... T = [ w, w+ x]

Der afvikles een mikroinstruktion per clock-cycle, timing er vigtig... T = [ w+ x, w+ x+ y]

Der afvikles een mikroinstruktion per clock-cycle, timing er vigtig... T = [ w+ x+ y, w+ x+ y+ z]

Der afvikles een mikroinstruktion per clock-cycle, timing er vigtig... T = end of cycle

Der afvikles een mikroinstruktion per clock-cycle, timing er vigtig... T = end of cycle Hvorfor 1-bit flip-flops?

Bestemmelse af næste mikroinstruktion N Z JAMN JAMZ Addr MBR JMPC resultat fra ALU er Negativt resultat fra ALU er 0 (Zero) angiver om N/Z skal bruges ved beregning af næste mikroinstruktion 9 bit fra aktuel mikroinstruktion 8 bit fra MBR register angiver om MBR skal bruges ved beregning af næste mikroinstruktion

Bestemmelse af næste mikroinstruktion N Z JAMN JAMZ Addr MBR JMPC resultat fra ALU er Negativt resultat fra ALU er 0 (Zero) angiver om N/Z skal bruges ved beregning af næste mikroinstruktion 9 bit fra aktuel mikroinstruktion 8 bit fra MBR register angiver om MBR skal bruges ved beregning af næste mikroinstruktion w 8 w 7 w 6 w 5 w 4 w 3 w 2 w 1 w 0 or N or Z? w 7 w 6 w 5 w 4 w 3 w 2 w 1 w 0 or u 7 u 6 u 5 u 4 u 3 u 2 u 1 u 0 fra Addr hvis JAMN=1 hvis JAMZ=1 fra MBR hvis JMPC=1

Eksempel: JAMZ=1 Et betinget hop på Z (indikeret ved JAMZ=1) kan kun hoppe til adresse x (ved Z=0) eller adresse x+256 (Z=1). I eksempelt ovenfor er x = 0x92.

Ordreafkodning.method main // int main.args 3 // (int a, int b).define a = 1.define b = 2 iload a iload b isub ireturn main index: 0 method area: 10 bytes 00 03 00 00 15 01 15 02 64 ac constant pool: 1 words 00000000 goto(mbr), Addr=000000000, JMPN=0, JMPZ=0, JMPC=1

Ordreafkodning Første mikroinstruktion for iload Første mikroinstruktion for isub 0x15 0x64.method main // int main.args 3 // (int a, int b).define a = 1.define b = 2 iload a iload b isub ireturn main index: 0 method area: 10 bytes 00 03 00 00 15 01 15 02 64 ac constant pool: 1 words 00000000 Hvis 0x15 er indlæst i MBR (via læsning fra adresse PC i lageret), så vil goto(mbr) hoppen til celle 0x15 i mikrolageret... goto(mbr), Addr=000000000, JMPN=0, JMPZ=0, JMPC=1

Mikroarkitektur: Mic-1 CPU registre kontrolenhed fetch- decode- Execute af IJVM instruktioner beregningsenhed

Mikroprogrammering

Mikroprogrammering Skal have et mikroprogram, dvs. et indhold af mikrolageret der realiserer IJVMs instruktionssæt Fetch-Decode-Execute...

Fetch-decode-execute 1. Fetch the next instruction from memory into the instruction register. 2. Change the program counter to point to the following instruction. 3. Determine the type of the instruction just fetched. 4. If the instruction uses a word in memory, determine where it is. 5. Fetch the word, if needed, into a CPU register. 6. Execute the instruction. 7. Go to step 1 to begin executing the following instruction. Se SCO side 54

Fetch Stack Constant Pool Method Area 4.294.967.296 bytes (32 bit) / 1.073.741.824 words (30 bit) PC/MBR bruges til at tilgå Method Area ved brug af byte adresser. MAR/MDR bruges til at tilgå Stack og Constant Pool ved brug af word adresser. Timing: hvis PC (MAR) sættes i cycle k indeholder MBR (MDR) indholdet af lagercellen i starten af cycle k+2.

Fetch MDR/MBR kan læses Cykel k Cykel k+1 Cykel k+2 MAR/PC sættes Bus/lager opererer PC/MBR bruges til at tilgå Method Area ved brug af byte adresser. MAR/MDR bruges til at tilgå Stack og Constant Pool ved brug af word adresser. Timing: hvis PC (MAR) sættes i cycle k indeholder MBR (MDR) indholdet af lagercellen i starten af cycle k+2.

Decode.method main // int main.args 3 // (int a, int b).define a = 1.define b = 2 iload a iload b isub ireturn main index: 0 method area: 10 bytes 00 03 00 00 15 01 15 02 64 ac constant pool: 1 words 00000000 goto(mbr), Addr=000000000, JMPN=0, JMPZ=0, JMPC=1

Decode Første mikroinstruktion for iload Første mikroinstruktion for isub 0x15 0x64.method main // int main.args 3 // (int a, int b).define a = 1.define b = 2 iload a iload b isub ireturn main index: 0 method area: 10 bytes 00 03 00 00 15 01 15 02 64 ac constant pool: 1 words 00000000 Hvis 0x15 er indlæst i MBR (via læsning fra adresse PC i lageret), så vil goto(mbr) hoppen til celle 0x15 i mikrolageret... goto(mbr), Addr=000000000, JMPN=0, JMPZ=0, JMPC=1

Execute Sekvens af mikroinstruktioner der implementerer Meaning...

Symbolsk mikroprogrammering (Absolut) Mikroprogram 000: 0048148005 001: 0058148005 002: 0018118400 003: 00203d8404 004: 00283d8404 005: 00303c0804 006: 0038370805 007: 0040148005 008: 00013f0004 009: 000a3f0004 00a: 00603f0805 00b: 00603f0404 00c: 0038000000 00d: 0000000000 100: 0800000000 101: 0050148004 1ff: 0000000000 Behov for et symbolsk mikroprogrammeringssprog med tilhørende mikroassembler Micro Assembly Language (MAL) Mikroassembler: mic1-asm

Symbolsk mikroprogrammering Behov for at specificere: ALU input registre, ALU og skifter operationer, output registre. Lager operationer (rd,wr,fetch). Ubetingede hop: ifm. næste mikroinstruktion og JMPC bit. Betingede hop: JAMN og JAMZ bits

ALU og skifter operationer i MAL Skifter operationer: 1 bit aritmetisk højreskift: >> 1 8 bit logisk venstre skift: << 8

Lager operationer Læsning/skrivning af ord (words) i stakområdet: Specificeres ved brug af rd og wr. Ord der læses/skrives udpeges af MAR. Læsning af ord i Constant Pool: Specificeres ved brug af rd. Ord der læses/skrives udpeges af MAR. Læsning af byte i Method Area: Specificeres ved brug af fetch. Byte der læses udpeges af PC.

Hop instruktioner Ubetingede hop: goto L På indholdet af MBR (JMPC=1): goto MBR Betingede hop: På N (JAMN = 1) ALU output negativt: if N goto L1; else goto L2 På Z (JAMZ = 1) ALU output 0 (Zero): if Z goto L1; else goto L2

Mikroassembler Oversætte symbolsk mikrokode til absolut mikrokode Problem: beregne absolutte adresser for labels under hensyntagen til: Mikroinstruktioner hvis placering er absolut (ordreafkodning). Betingede hop på N og Z. Resultat af oversættelse (512 x 36 bit) lægges ind i kontrollageret.

IJVM mikroprogrammet SCO figur 4.17

IJVM mikroprogrammet Fetch Decode Execute SCO figur 4.17

Invariant ved main1 PC udpeger den byte i Method Area, som indeholder instruktionskoden for den IJVM instruktion der skal afvikles MBR indeholder instruktionskoden for den IJVM instruktion, der skal afvikles, MBR=m[PC] SP udpeger det øverste ord på stakken LV udpeger det første ord i det aktuelle stakafsnit CPP udpeger det første ord i Constant Pool TOS indeholder det øverste ord på stakken, TOS=m[SP]

Eksempel: iadd Method Area: 0x60 0x10 0x2a 0x64 PC Opkode for næste instruktion Invariant: MBR=0x60, TOS=m[SP] Ønsker: SP b a SP a+b PC=PC+1 MBR=0x10 SP=SP-1 TOS=a+b

Eksempel: bipush Method Area: 0x60 0x10 0x2a 0x64 PC Opkode for næste instruktion Invariant: MBR=0x10, TOS=m[SP] Ønsker: SP a+b SP 0x2a a+b PC=PC+2 MBR=0x64 SP=SP+1 TOS=0x2a

Mic-1 værktøjer Beskrevet i Mic-1 Tools Manual MAL Mikroassembler Oversætte MAL programmer til absolut mikrokode: $ mic1-asm ijvm.mal ijvm.mic1 Mic-1 Simulator Afvikle IJVM programmer i bytekode format: $ mic1 ijvm.mic1 min.bc 53 174 IJVM instruktioner fortolkes nu af mikroprogrammet.

IJVM mikroprogrammet Tilgængelig i filen ijvm.mal main: PC = PC + 1; fetch; goto (MBR) nop = 0x00: goto main iadd = 0x60: MAR = SP = SP - 1; rd H = TOS MDR = TOS = MDR + H; wr; goto main

Oversættelse til absolut mikrokode $ mic1-asm ijvm.mal ijvm.mic1 entry: 003 000: 0010000000 goto 0x002; 001: 0208350201 PC = PC + 1; goto 0x041; 002: 0004350211 PC = PC + 1; fetch; goto (MBR); 003: 0228000000 goto 0x045; 004: 0028148007 H = TOS; goto 0x005; 005: 00103c2140 MDR = TOS = H + MDR; wr; goto 0x002; 006: 0038148007 H = TOS; goto 0x007; 007: 00103f2140 MDR = TOS = MDR - H; wr; goto 0x002; 008: 0048148007 H = TOS; goto 0x009; 009: 00100c2140 MDR = TOS = H and MDR; wr; goto 0x002;

Eksempel IJVM program.method main.args 3.define a = 1.define b = 2 bipush 88 iload a iload b invokevirtual min ireturn $ ijvm-asm min.j min.bc main index: 0 method area: 40 bytes 00 03 00 00 10 58 15 01 15 02 b6 00 01 ac 00 03 00 01 15 01 15 02 64 9b 00 0a 15 02 36 03 a7 00 07 15 01 36 03 15 03 ac constant pool: 2 words 00000000 0000000e

Mic-1 simulator $ mic1 ijvm.mic1 min.bc 53 174 Mic1 Trace of ijvm.mic1 with min.bc stack = 0, 1, 174, 53, 15 bipush 88 [10 58] stack = 88, 0, 1, 174, 53, 15 iload 1 [15 01] stack = 53, 88, 0, 1, 174, 53, 15 iload 2 [15 02] stack = 174, 53, 88, 0, 1, 174, 53, 15 invokevirtual 1 [b6 00 01] stack = 12, 13, 0, 174, 53, 21, 0, 1 iload 1 [15 01] stack = 53, 12, 13, 0, 174, 53, 21, 0 iload 2 [15 02] stack = 174, 53, 12, 13, 0, 174, 53, 21 isub [64] stack = -121, 12, 13, 0, 174, 53, 21, 0 iflt 10 [9b 00 0a] stack = 12, 13, 0, 174, 53, 21, 0, 1 return value: 53

Mic-1 simulator %>mic1 b istore ijvm.mic1 min.bc 53 174 Mic1 Trace of ijvm.mic1 with min.bc stack = 0, 1, 174, 53, 15 bipush 88 [10 58] stack = 88, 0, 1, 174, 53, 15 iload 1 [15 01] stack = 53, 88, 0, 1, 174, 53, 15 iload 1 [15 01] stack = 53, 12, 13, 0, 174, 53, 21, 0 istore 3 [36 03] MAR=23 MDR=53 PC=35 MBR=54 MBRU=54 SP=23 LV=17 CPP=10 TOS=53 OPC=23 H=17 0x002: PC = PC + 1; fetch; goto (MBR); MAR=23 MDR=53 PC=36 MBR=54 MBRU=54 SP=23 LV=17 CPP=10 TOS=53 OPC=23 H=17 0x036: H = LV; goto 0x01d; MAR=23 MDR=53 PC=36 MBR=3 MBRU=3 SP=23 LV=17 CPP=10 TOS=53 OPC=23 H=17 iload 3 [15 03] stack = 53, 12, 13, 53, 174, 53, 21, 0

Mikroarkitektur: Mic-1 CPU registre kontrolenhed fetch- decode- Execute af IJVM instruktioner beregningsenhed