Pentium 4 (2000. november) - PowerPoint PPT Presentation

About This Presentation
Title:

Pentium 4 (2000. november)

Description:

Title: ARCH/1 - 1 Last modified by: lektor Created Date: 11/7/1995 10:49:56 PM Document presentation format: Diavet t s a k perny re Other titles – PowerPoint PPT presentation

Number of Views:65
Avg rating:3.0/5.0
Slides: 81
Provided by: infUszeg2
Category:

less

Transcript and Presenter's Notes

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.

5
BPRILOCKBR0 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
10
A 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
15
A 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
17
Branch 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.

23
18
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
  • UltraSPARC III

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
  • UltraSPARC III

28
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é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.
32
Rendszer 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.

34
UltraSPARC 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
35
UltraSPARC 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
36
UltraSPARC 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.
37
UltraSPARC 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.
38
UltraSPARC 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.
39
UltraSPARC 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
40
UltraSPARC 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
41
UltraSPARC 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
45
Loká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?
Write a Comment
User Comments (0)
About PowerShow.com