Top Banner
Máté: Architektú rák 5. előadás 1 Pentium II Felülről kompatibilis az I8088, , Pentium Pro-val. 29.000, …, 7.5 millió tranzisztor, 242 láb, 233 MHz, 32 bites gép, 64 bites adat sín. SEC (Single Edge Cartridge) tokozás (3. 43. ábra). Két szintű belső gyorsító tár: 16 KB utasítás + 16 KB adat, 512 KB közös, másodlagos (fele olyan gyors, mint a CPU), 32 B-os gyorsító sor (cashe line). 1 vagy 2 CPU közös memóriával (szimatolás - snoop). Gépi utasítások RISC szerű mikroutasítások, több mikroutasítás futhat egyszerre: szuperskaláris gép. Két külső szinkron sín (PCI és ISA): 3. 50. ábra.
61

Pentium II Felülről kompatibilis az I8088 , … , Pentium Pro -val.

Jan 08, 2016

Download

Documents

Myrrh

Pentium II Felülről kompatibilis az I8088 , … , Pentium Pro -val. 29.000, …, 7.5 millió tranzisztor, 242 láb, 233 MHz , 32 bites gép, 64 bites adat sín. SEC (Single Edge Cartridge) tokozás ( 3. 43. ábra ). - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 1

Pentium IIFelülről kompatibilis az I8088, …, Pentium Pro-val.29.000, …, 7.5 millió tranzisztor, 242 láb, 233 MHz,

32 bites gép, 64 bites adat sín.SEC (Single Edge Cartridge) tokozás (3. 43. ábra). Két szintű belső gyorsító tár: 16 KB utasítás + 16 KB

adat, 512 KB közös, másodlagos (fele olyan gyors, mint a CPU), 32 B-os gyorsító sor (cashe line).

1 vagy 2 CPU közös memóriával (szimatolás - snoop).Gépi utasítások RISC szerű mikroutasítások, több

mikroutasítás futhat egyszerre: szuperskaláris gép.Két külső szinkron sín (PCI és ISA): 3. 50. ábra.

Page 2: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 2

3.50. ábra. Egy tipikus Pentium II rendszer architektúrája

SCSI USB Grafikus illesztő

PCI-híd

CPU

Gyorsító tárFő

memória

NyomtatóHangkártya

ISA-híd

Monitor

PCI sín

Memória sín

ISA sín

Másodlagos gyorsító tár

Egér Billentyűzet

Monitor

Szabad PCI bővítő hely

Szabad ISA bővítő helyek

Gyorsító tár sín

IDE diszk

Page 3: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 3

Pentium II logikai lábkiosztása (3.44. ábra)

Pentium IICPU

táp

BPRI#LOCK#

Misc#

A#ADS#REQ#

Paritás#

Misc#

Misc#

RS#TRDY#Paritás#

D#DRY#

DBSY#Paritás#

Sínütemezés

Kérés

HibaSzimatolás

Válasz

Adat

RESET#

Megszakítások

VID

Kompatibilitás

Diagnosztika

Inicializálás

Energia ellátás vezérlése

Egyéb

3

33

5

3

5

3

64

8

7

2

3

11

4

Φ 27 35

3

5

Page 4: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 4

táp

Pentium II logikai lábkiosztása (3.44. ábra)

RESET#: a CPU alapállapotba hozatala,

Megszakítások: régi vezérlő, és APIC (Advanced Programmable Interrupt Controller),

VID: a különböző tápfeszültségek kiválasztására szolgál,

Pentium IICPU

RESET#

Megszakítások

VID

Kompatibilitás

Diagnosztika

Inicializálás

Energia ellátás vezérlése

Egyéb7

2

3

11

4

Φ 27 35

5

Page 5: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 5

Pentium II logikai lábkiosztása (3.44. ábra)

Sín ütemezés: BPRI#: magas prioritású igény engedélyezése, LOCK#: sín foglalás több ciklusra,

Kérés: A#: 8 bájtos adat címe (64 GB címezhető), ADS#: a cím érvényes, REQ#: kívánság,

Válasz: RS#: státus, TRDY#: a szolga tud adatot fogadni,

Adat: D#: 8 bájtos adat, DRDY#: az adat a sínen van, DBSY#: a sín foglalt.

BPRI#LOCK#

Misc#

A#ADS#REQ#

Paritás#

Misc#

Misc#

RS#TRDY#Paritás#

D#DRDY#DBSY#Paritás#

Sínütemezés

Kérés

HibaSzimatolás

Válasz

Adat

3

33

5

3

5

3

64

8

Pen

tiu

m I

I C

PU3

Page 6: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 6

Pentium II memória sínA memóriaigények, tranzakciók 6 állapota: 6 fázisú

csővezeték (3.44. ábra bal oldal) fázisonként külön vezérlő vonalakkal (amint a mester megkap valamit, elengedi a vonalakat):

0. Sín ütemezés (kiosztás, bus arbitration): eldől, hogy melyik sínmester következik,

1. Kérés: cím a sínre, kérés indítása,2. Hibajelzés: a szolga hibát jelez(het),3. Szimatolás: a másik CPU gyorsító tárában,4. Válasz: kész lesz-e az adat a következő ciklusban,5. Adat: megvan az adat. (3.45. ábra)

Page 7: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 7

Φ:

tranzakció

T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 T11 T12

1 K H S V A

2 K H S V A

3 K H S V A

4 K H S V A

5 K H S V A

6 K H S V A

7 K H S V A

Pentium II memória sín csővezetéke (3.45. ábra)

K: kérés, H: hiba, S: szimatolás (átkérés), V: válasz, A: adat

Page 8: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 8

UltraSPARC II64 bites RISC gép, felűről kompatibilis a 32 bites

SPARC V8 architektúrával.CPU 5.4 millió tranzisztor, 4 CPU közös memóriával

használható. 787 láb (3.46-47. ábra). 64 (jelenleg csak 44) bites cím és 128 bites adat lehetséges.

Belső gyorsító tár (16 KB utasítás + 16 KB adat).Külső 512 KB - 16 MB.

8 K - 256 K db 64 B-os gyorsító sor (cashe line) lehet. A címzéséhez 13 – 18 bit szükséges. A CPU mindig 18 bites Line címet (Címkeazonosítót) ad át. Csak maximális méret esetén van mind a 18 bit kihasználva.

Page 9: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 9

512 KB –os gyorsító tár esetén a 44 bites cím felosztása (3.47. ábra, 3_47_abrahoz): Tag: 25 bit, Line: 13 bit, bájt cím: 6 bit = 44 bit.

16 MB –os tár esetén 18 bites Line kell, és 20 bites Tag (Címkeadat) is elég lenne, de ilyekor – hogy a CPU egységesen működhessen – a gyorsító tárban tárolt 20 bites Tag –et a gyorsító tár kiegészíti Line 5 legmagasabb helyértékű bitjével.

Az Adat címe a gyorsító sor címén (Címkeazonosító, Line) kívül még 2 bitet tartalmaz, mert egy átvitel során a gyorsító sornak csak negyed része (16 bájt) mozgatható.

Page 10: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 10

Address: 64 bit-es, de egyelőre 44 bitre van korlátozva

Entry Valid Tag Cashe line2L -1…210

Tag Line Word Byte

5 bit átfedés 4 bit 2 bit

25 bit 18 bit Address in cashe line

= ?

Enrty: bejegyzés a gyorsító tárbanCashe line: gyorsító sor 64 bájtEgyszerre mozgatható adat 16 bájt (1/4 gyorsító sor)

Page 11: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 11

UltraSPARC II

Másodlagos gyorsító tár(címkék -

tags)

Másodlagos gyorsító tár

(adatok)

Címke cím (Line)Érvényes címke

Címke adat (tag)Címke paritása

Adat címeÉrvényes adat cím

AdatParitás

UltraSPARC IIközpontiegység

Első szintűgyorsító tárak

18

20

254

12816

UDB IImemória

puffer

5vezérlés

Page 12: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 12

UltraSPARC II

UPA (Ultra Port Architecture) sín, kapcsoló vagy mindkettő. A memóriák és max. 4 CPU kommunikációját kezeli.

UDB II (UltraSPARC Data Buffer II): ezen keresztül zajlik a memória és a gyorsító tárak közötti adatforgalom.

SBus: 25 MHz-es szinkron sín a perifériáknak. A memóriához lassú lenne!

Page 13: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 13

UltraSPARC IIközpontiegység

Első szintűgyorsító tárak

UDB IImemória

puffer

5vezérlés

Sín ütemezés

Memória címCím paritásaÉrvényes cím

Várakozás

Válasz

Memória adatHiba javító kód

UPAinterfész

a főmemóriához

5

35

4

12816

Page 14: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 14

picoJava II

JVM-et (Java Virtual Machine) megvalósító hardver.

Elsősorban beépített számítógépekben alkalmazzák.

Szabványos BGA (Ball Grid Array) tokban: SUN microJava 701 lapka + 316 láb, benne a SUN picoJava II központi egység (3.48. ábra).

Page 15: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 15

Lábak vezérlés, órák, megszakítás, tesztelés, …számára.Programozható B/K (nyomógombok, lámpák, …)Memória sín (64 bites adat, 32 bites cím) és 32 bites PCI sínFlash PROM.

A

MicroJava 701CPU

Első szintűgyorsító tárak U

FlashPROM

Főmemória

Memória sín

ProgramozhatóB/K vonalak

PC sín

16

3.48. ábra. A microJava 701-es rendszer

Page 16: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 16

Egyszerűsített lexikális elemző

Feladata, hogy azonosító, szám, speciális jelek és a program vége jel előfordulásakor rendre A, 0, , és . karaktert írjon a képernyőre. Az esetleges hibákat ? jelezze.

XLAT utasítás alkalmazásának tervezése:

Karakter típusok karakterek kód

Betű A … Z a … z 2

Számjegy 0 … 9 4

Speciális jel , . ; + - ( ) cr lf 6

Vége jel $ 8

Hibás karakter a többi 0

Page 17: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 17

data segment para public ’data’

; ugró táblák a szintaktikus helyzetnek megfelelően:

; kezdetben, speciális és hibás karakter után

t_s dw hiba ; hibás kar.: spec. jel szint

dw lev_a ; betű:

dw lev_n ; számjegy:

dw lev_s ; spec. jel:

dw vege ; szöveg vége: program vége

Page 18: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 18

; azonosító szintt_a dw hiba ; hibás kar.: spec. jel szint

dw OK ; betű: nincs teendődw OK ; számjegy: nincs teendődw lev_s ; speciális jel: azonosító végedw vege ; szöveg vége: program vége

; szám szintt_n dw hiba ; hibás kar.: spec. jel szint

dw hiba ; betű: hiba: spec. jel szintdw OK ; számjegy: nincs teendődw lev_s ; speciális jel: szám végedw vege ; szöveg vége: program vége

Page 19: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 19

level dw ? ; az aktuális ugrótábla címe

c_h db 0 ; hibás karakter kódjac_b db 2 ; betű kódjac_n db 4 ; számjegy kódjac_s db 6 ; speciális jel kódjac_v db 8 ; végjel kódjaspecjel db ’ ,. ;+-()’, 13, 10 ; a speciális jelekvegjel db ’$’ ; vége jel, kihasználjuk,

; hogy itt van!

table db 256 dup (?) ; átkódoló tábla (256 byte)

text db ’a,tz.fe&a 21 a12 12a $’ ; elemzendő szöveg

DATA ends

Page 20: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 20

code segment para public ’CODE’assume cs:code, ds:data, es:data, ss:stack

Lex proc farpush dsxor ax,axpush ax ; visszatérési cím a

verembenmov ax,datamov ds,axmov es,ax ; assume miatt

call prepare ; átkódoló tábla elkészítésemov si, offset text ; az elemzendő szöveg

; kezdőcímecall parsing ; elemzés

ret ; vissza az Op. rendszerhez

Lex endp

Page 21: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 21

prepare proc ; az átkódoló tábla elkészítése

; az eljárás rontja AX, BX, CX, DI, SI tartalmát

cld ; a string műveletek iránya pozitív

mov bx, offset table

mov di,bx

mov al,c_h ; hibás karakter kódja

mov cx,256 ; a tábla hossza

rep stos table; table minden karakter hibás

Page 22: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 22

mov al,c_b ; betű kódja

mov di,’A’ ; A ASCII kódja

add di,bx ; A helyének offset címe

mov cx,’Z’-’A’+1 ; a nagybetűk száma

; a betűk ASCII kódja folyamatos!

rep stosb

mov di,’a’ ; a ASCII kódja

add di,bx ; a helyének offset címe

mov cx,’z’-’a’+1 ; a kisbetűk száma

rep stosb

Page 23: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 23

mov al,c_n ; számjegy kódja

mov di,’0’ ; 0 ASCII kódja

add di,bx ; 0 helyének offset címe

mov cx,’9’-’0’+1 ; a számjegyek száma

; a számjegyek ASCII kódja folyamatos!

rep stosb

Page 24: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 24

mov si,offset specjel; speciális jelek

; feldolgozása

xor ah,ah ; hogy ax=al legyen

pr1: lods specjel ; speciális jel ASCII kódja

mov di,ax ; ah=0 miatt ax = a jel kódja

cmp al,vegjel ; vegjel közvetlenül a

; speciális jelek után van!

je pr2 ; ez már a vegjel

mov al,c_s ; speciális karakter kódja

mov [BX+DI],al ; elhelyezés a táblában

jmp pr1 ; ciklus vége

Page 25: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 25

pr2: mov al,c_v ; a végjel kódja

mov [BX+DI],al ; elhelyezés a táblában

ret ; vissza a hívó eljáráshoz

prepare endp

Page 26: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 26

parsing proc ; elemzés; az eljárás rontja AX, BX, CX, DI, SI tartalmát

cld ; a string műveletek iránya pozitívmov bx, offset tablemov di,offset t_s ; spec. jel szint

lv1: mov level,di ; szint beállításxor ah,ah ; hogy ax=al legyen

OK: lods text ; a következő karakterXLAT ; AL 0, 2, 4, 6 vagy 8ADD AX,LEVEL ; AX az aktuális

; ugró táblán belüli címJMP [AX] ; kapcsoló utasítás

Page 27: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 27

hiba: mov di,offset t_s ; hibás karakter,

; spec. jel szint következik

mov al,’?’

lv2: mov ah,14 ; BIOS hívás előkészítése

int 10h ; BIOS hívás:

; karakter írás a képernyőre

jmp lv1

lev_a: mov di,offset t_a ; azonosító kezdődik

mov al,’A’

jmp lv2

Page 28: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 28

lev_n: mov di,offset t_n ; szám kezdődikmov al,’0’jmp lv2

lev_s: mov di,offset t_s ; speciális jelmov al,’,’jmp lv2

vege: mov al,’.’ ; szöveg végemov ah,14 ; BIOS hívás előkészítéseint 10h ; BIOS hívás:

; karakter írás a képernyőreret ; elemzés vége, vissza a hívóhoz

parsing endp

code ends

Page 29: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 29

stack segment para stack ’stack’

dw 100 dup (?) ; 100 word legyen a verem

stack ends

end Lex ; modul vége, start cím: Lex

Page 30: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 30

Mikroarchitektúra szint

Feladata az ISA (Instruction Set Architecture – gépi utasítás szint) megvalósítása. Nincs rá általánosan elfogadott, egységes elv.

A ISA-szintű utasítások „függvények”, ezeket egy főprogram hívja meg végtelen ciklusban.

A függvények a mikroarchitektúra szintjén valósulnak meg (mikroprogram).

A mikroprogram változói (a regiszterek) definiálják a számítógép állapotát, pl.: PC (Program Counter, utasításszámláló).

Page 31: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 31

IJVM (Integer Java Virtual Machine): a JVM egész értékű aritmetikát tartalmazó része.

Az IJVM utasítások szerkezete: • az első mező az opcode (Operation Code, műveleti

kód), • az esetleges második mezőben az operandus

meghatározására szolgáló adat van. Nem használjuk a C-ben írt SUN JVM interpretert,

mert nem elég hatékony az elemi logikai áramkörök kezelésére.

Mikroprogram: betölti, értelmezi és végrehajtja az IJVM utasításokat:

betöltés-végrehajtás (fetch-execute) ciklus.

Page 32: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 32

Az ALU-nak (3.19-20. ábra) 6 vezérlő bemenete van:

ENA az A bemenet engedélyezése (1) tiltása (0),

ENB a B bemenet engedélyezése (1) tiltása (0),

F0, F1. F0, F1 kiválasztja

az AND, OR, B#, + művelet valamelyikét,

INC: +1.

teljes összeadó

dekódolóF0

F1

INVAA

ENAB

ENB

INVA: Ha ENA = 1, akkor A#,Ha ENA = 0, akkor 0# = FFFF = – 1.

átvitel be

átvitel ki

Page 33: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 33

Néhány példa (4.2. ábra átrendezve)

A könyvben nem logikus, hibás.

F0 F1 ENA ENB INVA INC Tevékenység

0 0 1 1 0 0 A AND B

0 1 1 1 0 0 A OR B

0 1 1 0 0 0 A

0 1 0 1 0 0 B

0 1 1 0 1 0 #A

1 0 0 1 0 0 #B

Page 34: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 34

F0 F1 ENA ENB INVA INC Tevékenység

1 1 0 0 0 0 0

1 1 0 0 0 1 1

1 1 0 0 1 0 – 1

1 1 1 1 0 0 A + B

1 1 1 1 0 1 A + B + 1

1 1 1 0 0 1 A + 1

1 1 0 1 0 1 B + 1

1 1 1 0 1 1 – A

1 1 1 1 1 1 B – A

1 1 0 1 1 0 B – 1

Page 35: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 35

Léptető vezérlés

6

2

ALUvezérlés

A B N 1, ha az eredmény < 0, különben 0,

Z 1, ha az eredmény = 0, különben 0.

Csín

Bsín

Memória vezérlő

regiszterek

Vezérlő jelek

B sínre írja a regisztertC sínt a regiszterbe írja

Adatút (Data Path, 4.1. ábra)32 bites regiszterek, sínek,ALU, léptető SLL8 8 bittel balra, SRA1 1 bittel jobbra léptet. ALU bemenetei: H (Holding – tartó), B sín.

Egy cikluson belül lehetséges egy regiszterből olvasni és az eredményt akár ugyanoda visszaírni 4.3. ábra.

ALU

MAR

MDR

PC

MBR

SP

LV

CPP

TOS

OPC

H

Léptető

mem

ória

Page 36: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 36

Memóriaműveletek (4.1. ábra) • Szócímzés: 32 bites adat írása, olvasása.

szó cím = 4 * (bájt cím), a túlcsorduló bitek elvesznek

MAR (Memory Address Register)MDR (Memory Data Register)

• Bájtcímzés: gépi szintű utasítás bájt olvasás.PC (Program Counter): bájt cím,MBR (Memory Byte Register): bájt.

MBR kétfajta értelmezése (két vezérlőjel):• MBR: MBR előjelesen kerül a B sínre,• MBRU: MBR előjel nélkül kerül a B sínre.

MAR

MDR

PC

MBR

mem

ória

Page 37: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 37

Léptető vezérlés

6

2

ALUvezérlés

A B N

Z

Csín

Bsín

9 jel: a B sínre írás a regiszterekből,8 jel: 6 az ALU és 2 a léptető vezérlésére, 9 jel: a C sínről regiszterekbe írás, 3 jel: a memória eléréshez (nem ábrázoltuk!)

2 jel: szó íráshoz/olvasáshoz 1 jel: bájt olvasáshoz.

Összesen 29 jel szükségesA B sínre csak egy regiszter írhat egyszerre, ezért 9 helyett elég 4 jel, összesen24 vezérlő jelre van szükség.

Az adatút vezérlése (4.1., 5-6. ábra)

ALU

MAR

MDR

PC

MBR

SP

LV

CPP

TOS

OPC

H

Léptető

mem

ória

Page 38: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 38

NE

XT

AD

DR

ES

S

JMP

C

JAM

NJA

MZ

SL

L8

SR

A1

F0

F1

EN

AE

NB

INV

AIN

CH

OP

CT

OS

LV SP

PC

MD

RM

AR

WR

ITE

RE

AD

FE

TC

HB

sín

9 3 8 9 3 4

Mikroutasítások24 bit: az adatút vezérléséhez 9 bit: a következő utasítás címének megadásához, 3 bit: a következő utasítás kiválasztásának módjára. Ez adja a 36 bites mikroutasítást: 4.5. ábra.

0 = MDR 1 = PC 2 = MBR 3 = MBRU 4 = SP

5 = LV 6 = CPP 7 = TOS 8 = OPC 9-15 semmi

Addr JAM ALU C Mem B

Page 39: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 39

Mic-1: 4.6. ábra. • 512x36 bites vezérlőtár a

mikroprogramnak,• MPC (MicroProgram Counter):

mikroprogram-utasításszámláló.• MIR (MicroInstruction Register):

mikroutasítás-regiszter.

Az adatút ciklus (4.6. ábra) elején MIR feltöltődik a vezérlőtár MPC által mutatott szavával.

Addr J ALU C M B

9

512x36 bites vezérlőtár a

mikroprogram tárolására

MIR

MPC

4-ről 16-ra dekódoló

Page 40: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 40

A B6

2

ALUvezérlés

NZALU

MAR

MDR

PC

MBR

SP

LV

CPP

TOS

OPC

H

Léptető

Adatút ciklus (4.6. ábra): • (MIR feltöltődik a vezérlőtár MPC által mutatott szavával.) • Kialakul a B sín kívánt tartalma, ALU és a léptető megtudja, mit kell csinálnia,• Az ALU és a léptető elvégzi a feladatát, a C sín, N (Negative) és Z (Zero) megkapja az új értékét, • A regiszterek feltöltődnek a C sínről.

MBR/MDR megkapja az értékét, ha az előző ciklus adatot kért a memóriából.• Kialakul MPC új értéke.• Memória ciklus kezdete.

Page 41: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 41

Memória ciklus

A memória ciklus az adatút végén kezdődik (MAR ill. PC feltöltése után), ezért ha a memória címet módosította ez a mikroutasítás, akkor a memória cím a módosított MAR ill. PC regiszter értéke lesz.

MAR

MDR

PC

MBR

mem

ória

Olvasásnál az eredmény csak két ciklussal később használható, mert MDR ill. MBR csak a következő adatút ciklus vége felé töltődik fel a memóriából, addig MDR ill. MBR régi értéke érhető el.

Page 42: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 42

Mic-1: 4.6. ábra.

MPC új tartalmának kialakítása.

Addr J ALU C M B

9

9

512x36 bites vezérlőtár a

mikroprogram tárolására

MIR

MPC

N

Z

MBR 8

JAMN/JAMZ

JMPC

1 bites flipflopok

(N&JAMN) + (Z&JAMZ)

+

Page 43: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 43

MPC új tartalma • A 9 bites következő cím (Addr) az MPC-be kerül.• JAMN/JAMZ esetén MPC legmagasabb bitjének

és az N/Z bitnek logikai vagy kapcsolata képződik MPC legmagasabb helyértékével (elágazás). Pl.:

esetén a mikroprogram a 0x092 címen folytatódik, ha Z = 0,0x192 címen folytatódik, ha Z = 1.

Feltételes ugrás – elágazás – a mikroprogramban.

Cím Addr JAM Adatút vezérlő bitek

0x75 0x092 001 . . . JAMZ =1

Page 44: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 44

MPC új tartalma (folytatás)

• JMPC esetén MPC 8 alacsonyabb helyértékű bitjének és MBR 8 bitjének bitenkénti vagy kapcsolata képződik MPC-ben az adatút ciklus vége felé (MBR megérkezése után). Ilyenkor Addr 8 alacsonyabb helyértékű bitje általában 0 Feltétlen ugrás az MBR –ben tárolt címre – kapcsoló utasítás.

Kezdődhet az újabb mikroutasítás végrehajtása.

Page 45: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 45

Mic-1 működése

• (MPC) MIR

• regiszter B sín, Addr MPC

ALU, léptető megtudja,

mit kell csináljon,

• eredmény C, N, Z

• C regiszterekbe JAMN, JAMZ (N, Z)

mem. MDR és/vagy alapján módosul MPC

mem. MBR

• Memória ciklus indítása JMPC (MBR) (rd, wr, fetch) alapján módosul MPC.

Page 46: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 46

Eljárás: paraméterek, munka terület.

A hívó és hívott eljárás paraméterei, változói nem lehetnek azonos területen: lokális változók.

Verem (stack): LV (Local Variable), SP (Stack Pointer) verem mutató (4.8. ábra).

SP → d5d4d3d2

LV → d1a3a2a1

SP → a3a2

LV → a1

SP → b4b3b2

LV → b1a3a2a1

SP → c2LV → c1

b4b3b2b1a3a2a1

Page 47: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 47

A verem operandusok és az eredmény ideiglenes tárolására is használható, pl. (4.9. ábra):

a1 = a2 + a3

SP → a2a3a2

LV → a1

SP → a3a2a3a2

LV → a1

SP → a2+a3a3a2

LV → a1

SP → a3a2

LV → a2+a3

Page 48: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 48

Az IJVM memóriamodellje (4.10. ábra)A 4 GB memória, 1 G szóként is szervezhető.

CPP →

Konstans terület

SP → Aktuálisoperandusok 3.

LV →Aktuális lokális

változók 3.

lokális változók 2.

lokális változók 1.

PC →

Metódusterület

Konstansok, mutatók

Tartalma a program betöltésekor alakul ki, ISA utasítások nem írhatják felül

Program

PC bájtot címez a metódus

területen belül

Verem

lokális változók és operandus verem

Page 49: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 49

IJVM néhány utasítása: 4.11. ábra.

hex Mnemonic jelentés

10 BYPUSH byte Beteszi a byte–ot a verembe

A7 GOTO offset Feltétel nélküli ugrás offset -re

60 IADDKivesz a veremből két szót, az összegüket a verembe teszi

99 IFEQ offset Kivesz a veremből egy szót, ha 0, akkor offset -re ugrik

9F IF_ICMPEQ offsetKivesz a veremből két szót, ha egyenlők, akkor offset -re ugrik

15 ILOAD varnum Beteszi varnum -ot a verembe

36 ISTORE varnum Kivesz a veremből egy szót, és eltárolja varnum -ba

64 ISUBKivesz a veremből két szót, a különbségüket a verembe teszi

00 NOP Nem csinál semmit

5F SWAP A verem két felső szavát megcseréli

Page 50: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 50

Java (C) IJVM program 4.14. ábra Bin. kód

program 1 ILOAD j // i = j + k 15 02

2 ILOAD k 15 03i = j + k; 3 IADD 60if(i = = 3) 4 ISTORE i 36 01 k = 0; 5 ILOAD i // if(i = = 3) 15 01else 6 BIPUSH 3 10 03 j = j – 1; 7 IF_ICMPEQ L1 9F 00 0D 8 ILOAD j // j = j – 1 15 02

9 BIPUSH 1 10 01 10 ISUB 64 11 ISTORE j 36 02 12 GOTO L2 A7 00

0F 13 L1: BIPUSH 0 // k = 0 10 00 14 ISTORE k 36 03 15 L2:

Page 51: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 51

Mic-1 megvalósítása (4.5, 6. ábra)

36 bites bináris utasításokat kellene megadnunk.

Pl.: Egy ciklusban növeljük SP-t 1-gyel és olvasást kezdeményezünk a memóriából, folytatás a 122-es utasításnál. Szimbolikusan ilyesmi:

ReadRegister = SP, ALU = INC, Write SP, Read, NextAddress = 122;

Nehézkes, helyette:

SP = SP + 1; rd

A folytatás címet csak akkor tüntetjük fel, ha az nem a következőként írt mikroutasítás (pl. goto Main1).

Page 52: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 52

MAL (Micro Assembly Language )

SOURCE: a B sínre kötött regiszterek bármelyike: MDR, PC, MBRU (előjel nélküli - Unsigned MBR) MBR, SP, LV, CPP, TOS, OPC.

DEST: a C sínre kapcsolt regiszterek bármelyike: MAR, MDR, PC, SP, LV, CPP, TOS, OPC, H. Több regiszter is kaphatja ugyanazt az értéket.

wr: memóriába írás MDR-ből a MAR címre.

rd: memóriából olvasás MDR-be a MAR címről.

fetch: 8 bites utasításkód betöltése MBR-be a PC címről.

ALU

MAR

MDR

PC

MBR

SP

LV

CPP

TOS

OPC

H

Léptető

Page 53: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 53

Megengedett műveletek: 4.16. ábra

A 4.2. ábra alapján:

DEST = H DEST = SOURCE – H

DEST = SOURCE DEST = SOURCE – 1

DEST = #H DEST = –H

DEST = #SOURCE DEST = H AND SOURCE

DEST = H + SOURCE DEST = H OR SOURCE

DEST = H + SOURCE + 1 DEST = 0

DEST = H + 1 DEST = 1

DEST = SOURCE + 1 DEST = –1

Page 54: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 54

Nem megengedett pl. az alábbi utasítás pár:

MAR = SP; rdMDR = H // A memóriából is most kapna értéket!

Feltétlen ugrás MBR szerint (JMPC = 1): goto (MBR OR value)Ilyenkor value általában 0 vagy 0x100.

Page 55: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 55

Feltételes elágazás, pl.: (TOS Top Of Stack)Z = TOS ; if (Z) goto L1; else goto L2

// Z=1, ha TOS=0, különben Z=0.

esetén a mikroprogram az L2 0x092 címen folytatódik, ha Z = 0,L1 0x192 címen folytatódik, ha Z = 1.

A címek különbsége 256 (0x100) kell legyen (4.7. ábra)!

Cím Addr JAM Adatút vezérlő bitek

0x75 0x092 001 . . . JAMZ =1

Page 56: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 56

IJVM megvalósítása Mic-1-en (4.11., 17. ábra) Előkészület a gép indításakor: PC a végrehajtandó

utasítás címét, MBR magát az utasítást tartalmazza.A legelső végrehajtandó mikroutasítás a Main1, ez:

PC=PC+1; fetch; goto(MBR);

PC most a végrehajtandó utasítás utáni bájtra mutat, ez lehet egy újabb utasítás kódja, vagy operandus.

PC új értékének kialakulása után indul a fetch-csel kezdeményezett memória ciklus, ez a program következő bájtját olvassa MBR-be (a következő mikroutasítás végén lesz MBR-ben a bájt) .

goto (MBR) elugrik az utasítás feldolgozásához.

Page 57: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 57

Minden utasítás feldolgozását végző függvény első mikroutasítása az utasítás kódnak megfelelő címen van a mikroprogram tárban. Ez az oka, hogy nem helyezhetjük egymás után az egyes utasítások feldolgozását végző mikroutasítás sorozatot, ezért inkább azt a megoldást választottuk, hogy minden mikroutasítás tartalmazza a következő címét.

Ha az első utasítás pl. NOP (No OPeration, nem csinál semmit), ennek a kódja 0x00, ezért a 0x00 címen kezdődik a NOP feldolgozását végző függvény. Ez egyetlen goto Main1 mikroutasítás.

Page 58: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 58

IJVM megvalósítása Mic-1-en (4.11., 17. ábra)

A főciklus a Main1-nél kezdődik; PC a végrehajtandó utasítás címét, MBR magát az utasítást tartalmazza.

Main1 a következő utasítást vagy adatbájtot olvassa.

Címke Műveletek // kommentár

Main1 PC = PC + 1; fetch; goto(MBR)

nop1 goto Main1

iadd1 MAR = SP = SP – 1; rd

iadd2 H = TOS

iadd3 MDR = TOS = MDR + H; wr; goto Main1

Page 59: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 59

Feladatok

Mi a lexikális elemző feladata?

Milyen adatokat tartalmaz az ugró tábla?

Hogy működik az XLAT utasítás?

Az átkódoló tábla kialakításakor más módszert alkalmaztunk a nagy betűk kódjának beírásához, mint a speciális jelek kódjának beírásához. Miért?

Milyen karakter eredményez hibát szám beolvasása közben?

Hogyan kezeli a program a különböző szintaktikus helyzeteket?

Page 60: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 60

FeladatokMilyen részei vannak az egy bites ALU-nak?Milyen vezérlő bemenetei vannak az ALU-nak?Milyen vezérlő bemenetek esetén lesz 1 az eredmény?Milyen eredményt szolgáltat az F0=0, F1=1, ENA=0,

ENB=0, INVA=1, INC=1 vezérlő bemenet? Mi az adatút?Milyen jelek szükségesek az adatút vezérléséhez?Milyen részei vannak a Mic-1 mikroutasításainak?Milyen részei vannak az adatút ciklusnak?Hogy alakul ki MPC új tartalma?

Page 61: Pentium II Felülről kompatibilis az  I8088 ,  … ,  Pentium Pro -val.

Máté: Architektúrák 5. előadás 61

FeladatokIsmertesse az IJVM memóriamodelljét!Milyen utasításai vannak a Mic-1 gépnek?Milyen ugró utasításai vannak a Mic-1 gépnek?Milyen értékeket vehet föl a SOURCE operandus?Milyen értékeket vehet föl a DEST operandus?Mit jelent a wr?Mely utasítások tudnak olvasni a memóriából, és hogy

működnek?Hogy lehet védekezni az ellen, hogy MDR egyszerre

kapjon értéket a memóriából és a C sínről?