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
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.
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
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
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
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
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)
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.
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ó.
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)
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
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!
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
Máté: Architektúrák 5. előadás 17
data segment para public ’data’
; ugró táblák a szintaktikus helyzetnek megfelelően:
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
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
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
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
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
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
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
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
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
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
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
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
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ó
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.
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.
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)
+
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
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.
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).
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ő
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
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.
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
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.
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.
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
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?
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?
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