Title: Pentium 4 (2000. november)
1- Pentium 4 (2000. november)
- Felülrol kompatibilis az I8088, , Pentium
III-mal. - 29.000, , 42 ? 55 M tranzisztor, 1,5 ? 3,2 GHz,
63-82W, 478 láb (3. 44. ábra), 32 bites gép, 64
bites adat sín. - NetBurst architektúra. 2 fixpontos ALU ?
többszálúság (hyperthreding) 5 többlet a
lapkán két CPU. - Mindkét ALU kétszeres órajel sebességgel fut
2- Többszálúság (hyperthreding, 8.7. ábra)
- Többszörözött regiszter készlet esetén
valósítható meg némi szervezo hardver
hozzáadásával.
(a) A1 A2 A3 A4 A5 A6 A7 A8
(b) B1 B2 B3 B4 B5 B6 B7 B8
(c) C1 C2 C3 C4 C5 C6 C7 C8
A1 B1 C1 A2 B2 C2 A3 B3 C3 A4 B4 C4
Óraciklus ? Óraciklus ? Óraciklus ? Óraciklus ? Óraciklus ? Óraciklus ? Óraciklus ? Óraciklus ? Óraciklus ? Óraciklus ? Óraciklus ? Óraciklus ?
Az (a), (b) és (c) processzus külön futtatva az
üres négyzeteknél várakozni kényszerül a
memóriához fordulások miatt.
3- Pentium 4
- Gépi utasítások ? RISC szeru mikroutasítások,
több mikroutasítás futhat egyszerre
szuperskaláris gép, megengedi a sorrenden kívüli
végrehajtást is. - 2-3 szintu belso gyorsító tár.
- L1 8 KB utasítás nyomköveto akár 12000
dekódolt mikroutasítás tárolására 16 KB adat. - L2 256 KB 1 MB, 8 utas halmaz kezelésu, 128
bájtos gyorsító sor. - Az Extrem Edition-ban 2 MB (közös) L3 is van.
- Multiprocesszoros rendszerekhez szimatolás -
snoop.
4- Két külso szinkron sín (memória és PCI) 3. 52.
ábra.
5BPRILOCKBR0 AADSREQParitás Misc RS
TRDYParitásBNR DDRDYDBSYParitásEgyéb
RESET Megszakítások Energiaellátás Homenedzsme
nt Órajel Diagnosztika Inicializálás Egyéb
Sín ütemezés KérésHiba SzimatolásVálasz
Adat
3
33
14
5
2
4
Pentium 4CPU
5
5
2
23
2
2
7
64
- Pentium 4 logikai lábkiosztása (3.45. ábra)
4
13
180
85
F
táp
6- Pentium 4 logikai lábkiosztása (3.45. ábra)
- RESET a CPU alapállapotba hozatala,
- Megszakítások régi vezérlo, és Advanced
Programmable Interrupt Controller (APIC) - Különbözo tápfeszültségek, alvási állapotok,
- Jelzés 1300 fölött,
- Rendszersín frekvenciája,
Pentium 4 CPU
RESET Megszakítások Energiaellátás Homenedzs-
ment Órajel Diagnosztika Inicializálás
Egyéb
3
14
4
5
23
2
7
7- Pentium 4 logikai lábkiosztása
- (3.45. ábra)
- Sín ütemezés BPRI magas, BR0 normál
prioritású igény LOCK sín foglalás
több ciklusra, - Kérés A 8 bájtos adat címe (64 GB címezheto),
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.
BPRILOCKBR0 AADSREQParitás Misc Misc
RSTRDYParitásBNR DDRDYDBSYParitásE
gyéb
Pentium 4 CPU
Sín ütemezés KérésHiba SzimatolásVálasz
Adat
33
5
2
5
2
2
64
4
13
8- Pentium 4 memória sín
- A memóriaigények, tranzakciók 6 állapota 6
fázisú csovezeték (3.45. ábra bal oldal)
fázisonként külön vezérlo vonalakkal (amint a
mester megkap valamit, elengedi a vonalakat) - 0. Sín ütemezés (kiosztás, bus arbitration)
eldol, hogy melyik sínmester következik, - Kérés cím a sínre, kérés indítása,
- Hibajelzés a szolga hibát jelez(het),
- Szimatolás a másik CPU gyorsító tárában,
- Válasz kész lesz-e az adat a következo
ciklusban, - Adat megvan az adat.
9- Pentium 4 memória sín csovezetéke (3.46. ábra)
F 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 A
4 K H S V A
5 K H S V V A
6 K H S V A
7 K H S V A
Ütemezés (nem ábrázoltuk), csak akkor kell, ha
másé a sín. K kérés, H hiba, S szimatolás
(átkérés), V válasz, A adat
10A Pentium 4 mikroarchitektúrája
4.46. ábra. A Pentium 4 blokkdiagramja
11- 4.46. ábra. A Pentium 4 memória alrendszere
Memória sínhez
L2 256 KB az elso, 512 KB a második, 1 MB a
harmadik generációs Pentium 4-ben.
Memória alrendszer
Rendszerinterfész
L2 DI
L2 8 utas halmaz kezelésu, késleltetve
visszaíró128 bájtos gyorsító sor, minden második
ciklusban kezdodhet egy 64 bájtos feltöltés a
memóriából. Elore betölto megpróbálja L2-be
tölteni azt a gyorsító sort, amelyre majd szükség
lesz (nincs az ábrán).
12- 4.46. ábra. A Pentium 4 bemeneti rész
- L2-bol betölti és dekódolja a programnak
megfelelo sorrendben az utasításokat. Az
utasításokat RISC szeru mikromuveletek sorozatára
bontja. Ha több, mint 4 mikromuvelet szükséges,
akkor ?ROM-ra
történik utalás. A dekó-dolt mikromuveletek a
Nyomkövetobe kerülnek (nem kell újra
dekódol-ni). Elágazás jövendölés.
L2 DI
Betölto dekódoló
Nyomköveto
?ROM
Elágazás jövendölo
Bemeneti rész
13- A bemeneti rész az utasításokat L2-bol kapja,
egyszerre 64 bitet. Ezeket dekódolja, a
nyomköveto gyorsító tárban tárolja (akár 12 K
mikromuveletet). 6 mikromuveletet csoportosít
minden nyomköveto sorban. - Feltételes elágazásnál az utolsó 4 K elágazást
tartalmazó L1 BTB-bol (Branch Target Buffer
elágazási cél puffer) kikeresi a jövendölt címet,
és onnan folytatja a dekódolást. Ha az elágazás
nem szerepel L1 BTB-ben, akkor statikus
jövendölés történik visszafelé ugrást végre kell
hajtani, elore ugrást nem.
14- 4.46. ábra. Sorrenden kívüliség vezérlo
- Az utasítások a programnak megfelelo sorrendben
kerülnek az ütemezobe, eltéro sorrendben
kezdodhet a végrehajtásuk (esetleg regiszter
átnevezéssel), de a pontos megszakítás
követelménye miatt az eloírt sorrendben
fejezodnek be.
Nyomköveto
Ütemezok
Befejezo egység
?ROM
Elágazás jövendölo
Bemeneti rész
Sorrenden kívüliség vezérlo
15A Pentium 4 mikroarchitektúrája
4.46. ábra. A Pentium 4 blokkdiagramja
16- 4.47. ábra. A NetBurst csovezeték
Branch Target Bufferelágazási cél puffer
Bemeneti rész
Dekódoló egység
L1 BTB
?ROM
Nyomköveto
Nyomköveto BTB
Memórába/memóriából
Sorrenden kívüliség vezérlo
Lefoglaló/átnevezo egység
L2
Memóriasor
Nem memóriasor
ALU üt.
Bet. üt.
Tár. üt.
ALU üt.
FP regisztergyujto
Egész regisztergyujto
FP MMX SSE
Mozgató
Bet/Tár
L1 D
Egész
Befejezo egység
17Branch Target Bufferelágazási cél puffer
Dekódoló egység
L1 BTB
?ROM
Nyomköveto
Nyomköveto BTB
Lefoglaló/átnevezo egység
A nyomköveto gyorsítótárból ciklusonként három
mikromuvelet kerül a lefoglaló/átnevezo egység
ROB (ReOrder Buffer, átrendezo puffer) nevu
táblájába. Ez a tábla 128 bejegyzést
tartalmazhat.
18- Ha egy mikromuvelet minden inputja rendelkezésre
áll, akkor az esetleges WAR vagy WAW függoséget a
120 firkáló regiszter segítségével kiküszöböli.
RAW függoség esetén a mikromuveletet
várakoztatja, és a rákövetkezo mikromuveleteket
kezdi feldolgozni. Egyszerre akár 126 utasítás
feldolgozása is folyamatban lehet, köztük 48
betöltés és 24 tárolás. - Az utasítások a programnak megfelelo sorrendben
kerülnek az ütemezobe, eltéro sorrendben
kezdodhet a végrehajtásuk, de az eloírt
sorrendben fejezodnek be. - Pontos megszakítás a megszakítás elotti összes
utasítás befejezodött, az utána következokbol egy
sem kezdodött el.
19- A Lefoglaló/átnevezo egység a két várakozási sor
megfelelojébe teszi a mikroutasításokat. Az ALU-k
az órajel kétszeres sebességével dolgoznak, nehéz
folyamatosan munkát adni nekik.
Lefoglaló/átnevezo egység
Memóriasor
Nem memóriasor
ALU üt.
Bet. üt.
Tár. üt.
ALU üt.
Minden órajel ciklusban egy betöltés és egy
tárolás is végrehajtható.
20- Az egyik egész aritmetikájú ALU az összes
logikai, aritmetikai, és elágazó, a másik csak az
összeadó, kivonó, lépteto és forgató utasítás
végrehajtására képes. - Mindkét regisztergyujto 128 regisztert tartalmaz,
idoben változik, hogy melyikben van EAX,
ALU üt.
Bet. üt.
Tár. üt.
ALU üt.
FP regisztergyujto
Egész regisztergyujto
FP MMX SSE
Mozgató
Bet/Tár
Egész
21- A befejezo egység feladata, hogy az utasítások a
programnak megfelelo sorrendben fejezodjenek be. - L1 4 utas halmazkezelésu, írás átereszto
gyorsítótár 64 bájtos gyorsító sorral. Nem lehet
L1-et módosítani, amíg a tárolást megelozo
muveletek be nem fejezodtek (24 bejegyzéses
tároló puffer), de ha egy betölto utasítás onnan
akar olvasni, ahova egy korábbi tárolt, akkor a
tárolások pufferébol megkaphatja a kért adatot
(tárolás utáni betöltés).
FP regisztergyujto
Egész regisztergyujto
Mozgató
Bet/Tár
L1 D
Befejezo egység
22- UltraSPARC III (2000)
- 64 bites RISC gép, felurol kompatibilis a 32
bites SPARC V8 architektúrával és az UltraSPARC
I, II-vel. Új a VIS 2.0 utasításkészlet (3D
grafikus alkalmazásokhoz, tömörítéshez, hálózat
kezeléshez, jelfeldolgozáshoz, stb). - Több processzoros alkalmazásokhoz készült. Az
összekapcsoláshoz szükséges elemeket is
tartalmazza. - 2000-ben 0.6, 2001-ben 0.9, 2002-ben 1.2 GHz,
órajel ciklusonként 4 utasítást tud elvégezni.
2318
Másodlagos gyorsító tár(címkék -tags)
UPAinterfésza fomemóriához
5
Sín ütemezés Memória címCím paritásaÉrvényes
cím Várakozás Válasz Mem. adatECC
Címke cím Érvényes címke Címke adat Címke
paritása Adat címeÉrvényes adat
cím AdatParitás
35
25
4
Másodlagos gyorsító tár(adatok)
4
20
128
vezérlés
5
16
UDB IImemóriapuffer
128
16
24- UltraSPARC III
- CPU 29 millió tranzisztor, 4 CPU közös memóriával
használható. 1368 láb (3. 47. ábra). 64 (jelenleg
csak 43) bites cím és 128 bites adat lehetséges. - Belso gyorsító tár (32 KB utasítás 64 KB adat).
- 2 KB elore betölto és tároló gyorsítótár L2
eléréséhez. - A gyorsító sor (cache line) mérete 64 (32?) B.
- Külso 1 - 8 MB (? UltraSPARC II-nek 0.5-16 MB).
8 K - 256 K db 64 B-os gyorsító sor (cache 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.
25- A cím 64 bit-es, de egyelore 44 bit-re korlátozva
van
?
Entry Valid Tag Cash line
2L-1
2
1
0
. . .
26- 512 KB-os gyorsító tár esetén a 44 bites cím
felosztása 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 mukö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éku
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ó.
27 28Sí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észa fomemóriához
5
35
4
128
16
29- UltraSPARC III
- UPA (Ultra Port Architecture) sín, hálózati
csomópont vagy a ketto kombinációja. Több CPU
esetén egy központi vezérlon keresztül
kapcsolódnak a símhez. Több írást és olvasást tud
egyidejuleg kezelni. - UDB II (UltraSPARC Data Buffer II) ezen
keresztül zajlik a memória és a gyorsító tárak
közötti adatforgalom. - Az adatsín 150 MHz-es 128 bit széles szinkron
sín, így a sávszélesség 2.4 GB/s.
30- Az UltraSPARC III CPU mikroarchitektúrája
Memóriához
L1 I
Rendszer interfész
L2 vezérlo
Memória vezérlo
128 bit széles
L2
Utasítás kiosztó
Ugrótábla
Utasítás puffer
L1 D
Tárolási gyorsítótár
FP/Gr
Egész
Betölto tároló
Elore betölto gyorsítótár
4.48. ábra. Az UltraSPARC III CPU blokkdiagramja
31- L1 I 32 KB 4 utas halmazkezelésu,
- az utasítás kiosztó ciklusonként 4 utasítást tud
kiosztani
Két egész aritmetikájú ALU regiszterek
firkáló regiszterek, Lebegopontos ALU-k
összeadó/kivonó, szorzó/osztó 32 regiszter
grafikai utasítások.
32Rendszer interfész
L2 vezérlo
Memória vezérlo
128 bit széles
L1 I
Utasítás kiosztó
L1 D 64 KB-os 4 utas halmazkezelésu, írás
átereszto, 32 bájtos gyorsító sor. Feltételezett
betöltésre 2 KB elore betölto gyorsítótár. 2 KB
tárolási gyorsítótár. Memória vezérlo virtuális
? fizikai cím.
33- UltraSPARC III CPU mikroarchitektúrája
- A SPARC sorozat RISC elgondoláson alapul. A
legtöbb utasításnak két forrás és egy cél
regisztere van. - Elore betöltés speciális utasításokkal, és a
visszafelé kompatibilitás miatt hardveresen is. - 2 bites elágazás jövendölo statikus elágazás
jövendölés.
34UltraSPARC III csovezetéke (4.49. ábra)
Address generation, cím generáló. Ugrás, csapda,
Az eltolás résben lévo utasítást mindig
végrehajtja! Preliminari Fetch, elozetes betölto.
Legfeljebb 4 utasítást képes betölteni L1 I-bol,
nézi, hogy van-e köztük elágazó, elágazás
jövendölés. Branch target, elágazási cél. Ha kell
ugrani, ? A
35UltraSPARC III csovezetéke
Címmultiplexor
APFBIJRE
Ugrótábla
Utasítás gyorsítótár
Utasítás dekódoló
Cél
Utasítás csoportosító
Munka regisztergyujto
FP regisztergyujto
36UltraSPARC III csovezetéke
Betölto/tároló, speciális egység
Utasítás csoportosító
JREC
Munka regisztergyujto
FP regisztergyujto
L1 D
Instruction group formation, utasítás
csoportosító. Aszerint csoportosítja az
utasításokat, hogy melyik muködési egységet
használják. J instruction stage grouping,
utasítás kiosztó. Az elérheto muködési
egységektol függoen akár 4 utasítást is továbbít
az R szakasznak. Register, függoség esetén vár,
nincs sorrenden kívüli végrehajtás.
37UltraSPARC III csovezetéke
Betölto/tároló, speciális egység
Utasítás csoportosító
JREC
Munka regisztergyujto
FP regisztergyujto
L1 D
Execution, végrehajtó. A legtöbb egész utasítás
itt be is fejezodik. Ha egy utasítás készen van,
akkor frissül a regisztergyujto. Itt dol el,
hogy az ugrás feltétele teljesül-e. Hibás
jövendölés esetén jelzés az A szakasznak, a
csovezeték érvénytelenítése. Cache, gyorsítótár.
Itt zárul L1 D elérése.
38UltraSPARC III csovezetéke
Betölto/tároló, speciális egység
Utasítás csoportosító
JRECMW
Munka regisztergyujto
FP regisztergyujto
L1 D
Elojel kiterjesztés, igazítás Elore
betölto gy.tár
L2
Miss, hiány. L1 hiány esetén L2-höz fordul. Itt
történik az elojel kiterjesztés, igazítás, az
elore betölto gyorsítótárból kiszolgálható
betöltések. Write, író. A speciális egység
eredményei a munka regisztergyujtobe kerülnek.
39UltraSPARC III csovezetéke
eXtended, kiterjesztett. Itt fejezodik be a
legtöbb FP és grafikai utasítás. Trap, csapda. Ez
észleli az egész és FP csapdákat. Pontos
megszakítás.
ECMWXTD
FP regisztergyujto
FP ADD/SUBGrafikus ALU
FP MUL/DIVGrafikus MUL
40UltraSPARC III csovezetéke
Betölto/tároló, speciális egység
RECMWXTD
A D szakasz véglegesíti a regiszterek értékét az
architektúrális regiszter gyujtoben.
Megszakításkor az itteni adatok érvényesek.
Munka regisztergyujto
L1 D
L2
Arch. r.gyujto
Elojel kiterjesztés, igazítás Tárolási
sor Tarolási gy.tár
41UltraSPARC III csovezetéke
Betölto/tároló, speciális egység
Utasítás csoportosító
JRECMWXTD
Munka regisztergyujto
FP regisztergyujto
L1 D
FP ADD/SUBGrafikus ALU
FP MUL/DIVGrafikus MUL
L2
Arch. r.gyujto
Elojel kiterjesztés, igazítás Tárolási
sor Tarolási gy.tár
42- I-8051 (1980)
- Cél beépített rendszerekben való alkalmazás.
- Fo szempont olcsóság (ma már 10-15 ), sokoldalú
alkalmazhatóság. - A memóriával, be- és kivitellel együtt egyetlen
lapkára integrált számítógép. 40 multiplexelt
lábú standard tokban kerül forgalomba. 60 000
tranzisztor. 4 KB ROM, 128 B RAM, max. 64 KB
külso memória.16 címvezeték. 8 bites adat sín.
32 K/B vonal 4 db 8 bites csoportba rendezve,
ezek mindegyike hozzákötheto nyomógombhoz,
kapcsolóhoz, LED-hez, Idozítok. - Pl. Rádiós óra nyomógombok, kapcsolók, kijelzo.
43- Az I-8051 logikai lábkiosztása (3.50. ábra)
Address Data RD olvas a memóriából WR ír a
memóriába Address Latch Enable külso memória
esetén a sínen érvényes a cím Program Store
ENable olvasás a programot tároló
memóriából External Access (az értéke
állandó) (1) a 0-4095 címek a belso, (0) a
külso memóriára vonatkoznak
16
8051
A D RD WR ALE PSEN EA Idozítok
Megszakítások TXD RXD RST
8
8 8 8 8
Port 0 Port 1 Port 2 Port 3
2
2
2
F Táp
44- Az I-8051 logikai lábkiosztása (3.50. ábra)
16
8051
A D RD WR ALE PSEN EA Idozítok
Megszakítások TXD RXD RST
A két idozíto külso áramkörrol kaphat
jelet Megszakítások TXD Transmitted Data,
továbbított adat RXD Received Data, érkezett
adatReSeT Port 0-3 32 (48) bites B/K soros
vonal
8
8 8 8 8
Port 0 Port 1 Port 2 Port 3
2
2
2
F Táp
45Lokális sín
RAM
ROM
Fo sín
RAM ADDR
ROM ADDR
IR
BUFFER
SP
PC növelo
B
PC
ACC
DPTR
TMP2
Idozíto 0
TMP1
Idozíto 1
Idozíto 2
ALU
- Az I-8051 CPU
- mikroarchitektúrája
- (4.50. ábra)
Port 0
Port 1
Port 2
PSW
Port 3
46- Az I-8051 CPU mikroarchitektúrája
- (4.50. ábra)
- RAM 128 bájt
- A regiszterek a RAM-ban vannak
- RAM ADDRess a RAM címzéséhez
- Instruction Register
- Stack Pointer
- B szorzásnál, osztásnál van szerepe, ideiglenes
tárolásra is használható - ACCumulator fo aritmetikai regiszter, a legtöbb
számítás eredménye itt keletkezik - TMP1 TMP2 az ALU bemenetei, az eredmény a fo
sínrol akármelyik regiszterbe kerülhet - Program Status Word
RAM
RAM ADDR
IR
SP
B
ACC
TMP2
TMP1
Fo sín
ALU
PSW
47- Az I-8051 CPU
- mikroarchitektúrája
- (4.50. ábra)
- ROM 4 KB belso, max. 64 KB külso
- 16 bites regiszterek
- ROM ADDRess
- BUFFER
- PC, PC növelo PC-t beírva, majd kiolvasva PC
növelodik - Idozíto 0 2
- Port 0 3
48- Az I-8051 CPU mikroarchitektúrája (4.50. ábra)
- A legtöbb utasítás egy óraciklust igényel. A
ciklus hat állapota - Az utasítás a ROM-ból a fosínre és IR-be kerül.
- Dekódolás, PC növelése.
- Operandusok elokészítése.
- Egyik operandus a fosínre, onnan általában
TMP1-be, a másik ACC-bol TMP2-be kerül. - Az ALU végrehajtja a muveletet.
- Az ALU kimenete a fosínre kerül, ROM ADDR
felkészül a következo utasítás olvasására.
49- Összehasonlítás
- Pentium 4 CISC gép
- egy CISC utasítás ? több RISC mikroutasítás
- UltraSPARC III RISC gép
- I-8051 inkább RISC, mint CISC gép
- picoJava II verem gép, sok memória hivatkozás
- több CISC utasítás ? egy RISC mikroutasítás
50- Assembly programozás
- Pszeudo utasítások
- A pszeudo utasításokat a fordítóprogram hajtja
végre. Ez a végrehajtás fordítás közbeni
tevékenységet vagy a fordításhoz szükséges
információ gyujtést jelenthet.
51- Adat definíciós utasítások
- Az adatokat általában külön szegmensben szokás és
javasolt definiálni iniciálással vagy anélkül. - Az adat definíciós utasítások elé általában
azonosítót (változó név) írunk, hogy
hivatkozhassunk az illeto adatra. Egy-egy adat
definíciós utasítással vesszovel elválasztva
több azonos típusú adatot is definiálhatunk. A
kezdoérték megfelelo típusú tetszoleges
konstans (szám, szöveg, cím, ...) és kifejezés
lehet. Ha nem akarunk kezdoértéket adni, akkor ?
-et kell írnunk. - DUP operátor
- kifejezés DUP (adat)
52- Egyszeru adat definíciós utasítások
- Define Byte (DB)
- Adat1 db 25 1 byte, kezdoértéke decimális 25
- Adat2 db 25H 1 byte, kezdoértéke hexadec. 25
- Adat3 db 1,2 2 byte (nem egy szó!)
- Adat4 db 5 dup (?) 5 inicializálatlan byte
- Kar db a,b,c 3 ASCII kódú karakter
- Szoveg db Ez egy szöveg,13,0AH
- ACSII kódú szöveg és 2 szám
- Szov1 db Ez is szöveg
- Szov2 db és ez is szöveg
53- Define Word (DW)
- Szo dw 0742H,452
- Szo_címe dw Szo Szo offset címe
- Define Double (DD)
- Szo_f dd Szo Szo távoli (segment
offset) címe - Define Quadword (DQ)
- Define Ten bytes (DT)
54- Összetett adat definíciós utasítások
- Struktúra és a rekord.
- Eloször a típust kell definiálni. A típus
definíció nem jelent helyfoglalást. A struktúra
illetve rekord konkrét példányai struktúra
illetve rekord hívással definiálhatók. A
struktúra illetve rekord elemi részeit mezoknek
(field) nevezzük. - A hardver nem ismeri ezeket az adat típusokat, a
kezelésükrol szoftveresen kell gondoskodni!
55- Struktúra
- Struktúra definíció a struktúra típusát
definiálja a késobbi struktúra hívások számára,
ezért a memóriában nem jár helyfoglalással. - Str_típus STRUC struktúra (típus) definíció
- ... mezo (field) definíciók
- ... egyszeru adat definíciós
- ... utasítások
- Str_típus ENDS struktúra definíció vége
- A mezo (field) definíció csak egyszeru adat
definíciós utasítással történhet, ezért struktúra
mezo nem lehet másik struktúra vagy rekord.
56- A mezok definiálásakor megadott értékek
kezdoértékül szolgálnak a késobbiekben történo
struktúra hívásokhoz. A definícióban megadott
kezdoértékek közül azoknak a mezoknek a
kezdoértéke híváskor felülbírálható, amelyek csak
egyetlen adatot tartalmaznak (ilyen értelemben a
szöveg konstans egyetlen adatnak minosül). Pl. - S STRUC struktúra (típus) definíció
- F1 db 1,2 híváskor nem lehet felülírni
- F2 db 10 dup (?) nem lehet felülírni
- F3 db 5 felülírható
- F4 db a,b,c nem lehet felülírni, de
- F5 db abc felülírható
- S ENDS
57- Struktúra hívás A struktúra definíciójánál
megadott Str_típus névnek a muveleti kód részen
történo szerepeltetésével hozhatunk létre a
definíciónak megfelelo típusú struktúra
változókat. A kezdoértékek fölülbírása a kívánt
értékek lt gt közötti felsorolásával történik - S1 S kezdoértékek a definícióból
- S2 S lt,,7,,FGgt F3 kezdoértéke 7,
- F5-é FG
- S3 S lt,,Agt F3 kezdoértéke A ,
- a többi a definícióból
- Struktúrából vektort is eloállíthatunk, pl.
- S_v S 8 dup (lt,,Agt)
- 8 elemu struktúra vektor
58- Struktúra mezore hivatkozás A struktúra változó
nevéhez tartozó OFFSET cím a struktúra OFFSET
címét, míg a mezo neve a struktúrán belüli címet
jelenti. A struktúra adott mezejére úgy
hivatkozhatunk, hogy a struktúra és mezo név közé
.-ot írunk, pl. - MOV AL,S1.F3
- A . bármely oldalán lehet másfajta cím is, pl.
- MOV BX, OFFSET S1
- után az alábbi utasítások mind ekvivalensek az
elozovel - MOV AL,BX.F3
- MOV AL,BXF3
- MOV AL,F3.BX
- MOV AL,F3BX
59- A fentiekbol az is következik, hogy a mezo és
struktúra név ellentétben a magasabb szintu
programozási nyelvekkel szükségképpen egyedi
név, tehát sem másik struktúra definícióban, sem
közönséges változóként nem szerepelhet. - A struktúra vektorokat a hagyományos módon még
akkor sem indexezhetjük, ha az index konstans.
Pl. - MOV AL,S_v5.F3
- szintaktikusan helyes, de
- 5 nem a vektor ötödik elemére mutató címet
fogja eredményezni, csupán 5 byte-tal magasabb
címet, mint S_v.F3. Ha i változó, akkor - MOV AL,S_vi.F3
- szintaktikusan is HIBÁS!
60- Mindkét esetben programmal kell kiszámíttatni az
elem offset-jét, pl. ha i word - MOV AX,TYPE S S hossza byte-okban
- (l. késobb)
- MUL i Az indexet 0-tól számoljuk!
- MOV BX,AX az adat nem lóghat ki a
- szegmensbol (DX0)
- MOV AL,S_v.F3BX AL ? az i-dik
elem F3 mezeje.
61- Rekord
- Rekord definíció Csak a rekord típusát
definiálja a késobbi rekord hívások számára. - Rec_típus RECORD mezo_specifikációk
- Az egyes mezo specifikációkat ,-vel választjuk el
egymástól. - Mezo specifikáció
- mezo_névszélességkezdoérték
- szélesség a mezo bit-jeinek száma.
- Az kezdoérték el is maradhat, ha elmarad, az a
mezo 0-val való inicializálását írja elo.
62- Pl.
- R RECORD X3,Y415,Z5
- Az R rekord szavas (12 bit), a következoképpen
helyezkedik el egy szóban -
X X X Y Y Y Y Z Z Z Z Z
0 0 0 1 1 1 1 0 0 0 0 0
63- Rekord hívás A rekord definíciójánál megadott
névnek a muveleti kód részen történo
szerepeltetésével hozhatunk létre a definíciónak
megfelelo típusú rekord változókat. A
kezdoértékek fölülbírálása a kívánt értékek lt gt
közötti felsorolásával történik. - R1 R lt gt 01E0H, kezdoértékek a
definícióból - R2 R lt,,7gt 01E7H, X, Y kezdoértéke a
- definícióból, Z-é 7
- R3 R lt1,2gt 0240H, X kezdoértéke 1, Y-é 2,
- Z-é a definícióból
- Rekordból vektort is eloállíthatunk, pl.
- R_v R 5 dup (lt1,2,3gt) 0243H,
- 5 elemu rekord vektor
64- Rekord mezore hivatkozás
- A mezo név olyan konstansként használható, amely
azt mondja meg, hány bittel kell jobbra
léptetnünk a rekordot, hogy a kérdéses mezo az
1-es helyértékre kerüljön. - MASK és NOT MASK operátor
- AX ? R3 Y mezeje a legalacsonyabb helyértéken
- MOV AX,R3 R3 szavas rekord!
- AND AX,MASK Y Y mezohöz tartozó bitek
- maszkolása
- MOV CL,Y léptetés elokészítése
- SHR AX,CL kész vagyunk.
- SAR nem lenne korrekt nem biztos, hogy az Y mezo
nem tartalmazza az elojel bitet.
65- Kifejezés
- Egy muvelet operandusa lehet konstans, szimbólum
vagy kifejezés. - Konstans
- A konstans lehet numerikus vagy szöveg konstans.
- A numerikus konstansok decimális, hexadecimális,
oktális és bináris számrendszerben adhatók meg. A
számrendszert a szám végére írt D, H, O illetve B
betuvel választhatjuk ki. - .RADIX n 2 ? n ? 16 , n decimális
- A szöveg konstansokat a DB utasításban vagy
jelek között adhatjuk meg.
66- Szimbólum
- A szimbólum lehet szimbolikus konstans, változó
név vagy címke. - Szimbolikus konstans Az vagy az EQU pszeudo
utasítással definiálható. Szimbolikus szöveg
konstans csak EQU-val definiálható. A szimbolikus
konstans a program szövegnek a definíciót követo
részében használható, értékét a használat helyét
megelozo utolsó definíciója határozza meg. - Ha egy szimbólumot EQU-val definiálunk, akkor ezt
a szimbólumot a modulban másutt nem
definiálhatjuk!
67- S 1 S értéke 1
- N EQU 14 N értéke 14
- MOV CX,N CX ? 14
- ISM
- S S1 S értéke ezután 2, függetlenül
attól, hogy hányadszor fut a ciklus - MOV AX,S AX ? 2
- LOOP ISM
- N 5 hibás
- N EQU 5 hibás
- S 5 helyes
- S EQU 5 hibás
68- Szimbolikus konstansként használhatjuk a jelet
(helyszámláló), melynek az értéke mindenkor a
program adott sorának megfelelo OFFSET cím. A
helyszámláló értékének módosítására az ORG
utasítás szolgál, pl. - ORG 100H 100H byte kihagyása
- a memóriában
-
69- Címke Leggyakoribb definíciója, hogy valamelyik
utasítás elott a sor elso pozíciójától -tal
lezárt azonosítót írunk. Az így definiált címke
NEAR típusú. Címke definícióra további
lehetoséget nyújt a LABEL és a PROC pszeudo
utasítás - ALFA ... NEAR típusú
- BETA LABEL FAR FAR típusú
- GAMMA ... BETA is ezt az utasítást
- címkézi, de GAMMA NEAR típusú
70- Az eljárás deklarációt a PROC pszeudo utasítással
nyitjuk meg. A címke rovatba írt azonosító az
eljárás neve és egyben a belépési pontjának
címkéje. Az eljárás végén az eljárás végét jelzo
ENDP pszeudo utasítás elott meg kell ismételnünk
ezt az azonosítót, de az ismétlés nem minosül
címkének. Az eljárás címkéje aszerint NEAR vagy
FAR típusú, hogy maga az eljárás NEAR vagy FAR.
Pl. - A PROC NEAR típusú
- ...
- B PROC NEAR NEAR típusú
- ...
- C PROC FAR FAR típusú
- ...
71- Címkére vezérlés átadó utasítással
hivatkozhatunk, NEAR típusúra csak az adott
szegmensbol, FAR típusúra más szegmensekbol is. - Változó Definíciója adat definíciós
utasításokkal történik. Néha (adat) címkének is
nevezik.
72- Feladatok
- Mi a többszálúság lényege, haszna?
- Mik a többszálúság megvalósításának feltételei?
- Hogy érvényesül a RISC elv a Pentium 4 esetén?
- Mi a szuperskaláris gép lényege?
- Mit jelent a sorrenden kívüli végrehajtás?
- Milyen gyorsítótárakat használ a Pentium 4?
- Jellemezze a Pentium 4 L2 gyorsítótárát!
- Mire szolgál az elore betölto?
- Mit jelent a szimatolás?
- Hogy muködik a Pentium 4 memória sín csovezetéke?
- Milyen sorrendben dekódolja a Pentium 4 az
utasításokat? - Mire szolgál a ?ROM?
73- Feladatok
- Mire szolgál a nyomköveto gyorsítótár?
- Milyen elágazás jövendölést használ a Pentium 4?
- Mire szolgál az L1 BTB?
- Mire szolgál a nyomköveto BTB?
- Milyen sorrendben kezdodik az utasítások
végrehajtása a Pentium 4-en? - Mire szolgál a lefoglaló/átnevezo egység?
- Mire szolgálnak a regiszter gyujtok?
- Milyen sorrendben fejezodik be az utasítások
végrehajtása a Pentium 4-en? - Mi a különbség a Pentium 4 két egész aritmetikájú
ALU-ja között? - Miért nem tárolható azonnal az eredmény L2-be?
74- Feladatok
- Mit jelent a pontos megszakítás kifejezés?
- Milyen problémát okozhat a tárolás utáni
betöltés? - Hogy muködik az UltraSPARC III másodlagos
gyorsítótára? - Mire szolgál az UPA (Ultra Port Architecture)?
- Mire szolgál az UDB II (UltraSPARC Data Buffer
II)? - Milyen szervezésu az UltraSPARC III L1 I
gyorsítótára? - Mire szolgál a munka regisztergyujto?
- Mire szolgál az architektúrális regisztergyujto?
- Mire szolgál az elore betölto gyorsítótár?
- Mire szolgál a tárolási sor?
- Mire szolgál a tárolási gyorsítótár?
75- Feladatok
- Mire szolgál az UltraSPARC III ugrótáblája?
- Milyen elágazás jövendölést használ az
UltraSPARC III? - Mit nevezünk eltolás résnek?
- Hogy kezeli az UltraSPARC III az eltolás rést?
- Mire szolgál az utasítás csoportosító egység?
- Mire szolgál a munka regisztergyujto?
- Mire szolgál az architektúrális regisztergyujto?
- Hány ALU van az UltraSPARC III-ban?
- Mire szolgál az elore betölto gyorsítótár?
- Mire szolgál a tárolási sor?
- Mire szolgál a tárolási gyorsítótár?
- Hogy kezeli az UltraSPARC III a függoségeket?
76- Feladatok
- Mi az I-8051 fo alkalmazási területe?
- Nagyságrendileg milyen árú egy I-8051?
- Jellemezze az I-8051-et!
- Mi a RAM?
- Mi a ROM?
- Hány bites a RAM ADDR regiszter?
- Hány bites a ROM ADDR regiszter?
- Mekkora az I-8051 RAM-ja?
- Mekkora az I-8051 ROM-ja?
- Hol helyezkednek el az I-8051 regiszterei?
- Mire szolgál az IR, SP, B, ACC, TMP1-2 regiszter?
- Mi a PSW?
- Hogy történik PC növelése?
77- Feladatok
- Milyen és hány be/kimenete van az I-8051-nak?
- Mire használhatók az I-8051 be/kimenetei?
- Hány idozítoje van az I-8051-nak?
- Mire használhatók az I-8051 idozítoi?
- Mik az I-8051 ALU-jának bemenetei?
- Milyen állapotai vannak az óraciklusának?
- Jellemezze a CISC gépeket!
- Jellemezze a RISC gépeket!
- CISC vagy RISC gép a Pentium 4?
- CISC vagy RISC gép az UltraSPARC III?
- CISC vagy RISC gép az I-8051?
- Hasonlítsa össze a Pentium 4-et, az UltraSPARC
III-at és az I-8051-ez!
78- Feladatok
- Milyen adat definíciós utasítást ismer?
- Hogy használható a DUP operátor?
- Milyen adatok definiálhatók a DB operátorral?
- Hogy definiálható ASCII kódú szöveg konstans?
- Milyen adatok definiálhatók a DW operátorral?
- Milyen operátor segítségével adhatunk meg távoli
cím konstanst? - Milyen összetett adat definíciós utasítást ismer?
- Hogy definiálhatunk struktúrát?
- Hogy hozhatunk létre struktúra példányt?
- Hogy hozhatunk létre struktúra vektort?
79- Feladatok
- Hogy inicializálhatjuk egy struktúra valamely
mezejét? - Struktúra híváskor mely mezoket
inicializálhatjuk? - Mit kell tudni a struktúra és mezo névrol?
- Hogy hivatkozhatunk egy struktúra valamely
mezejére? - Hogy hivatkozhatunk egy struktúra vektor valamely
mezejére? - Mi a rekord?
- Hogy definiálhatunk rekordot?
- Hogy adhatunk kezdoértéket egy rekordnak?
- Mit kell tudni a rekord és mezo névrol?
- Hogy hivatkozhatunk egy rekord valamely mezejére?
80- Feladatok
- Hogy hivatkozhatunk egy rekord vektor valamely
mezejére? - Mi a szimbólum?
- Mi a címke?
- Hogy definiálhatunk címkét?
- Mi a változó?
- Hogy definiálhatunk változót?
- Hogy definiálhatunk szimbolikus konstanst?
- Hogy definiálhatunk szimbolikus szöveg konstanst?
- Mi a különbség az EQU-val és az jellel történt
konstans definíció között? - Mi egy szimbolikus konstans értéke?
- Mi a szimbolikus konstans értéke?