Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
Pentium 4 logikai lábkiosztása (3.45. ábra)
BPRI# LOCK# BR0# A# ADS# REQ# Paritás# Misc# RS# TRDY# Paritás# BNR# D# DRDY# DBSY# Paritás# Egyéb# Sín ütemezés Kérés Hiba Szimatolás Válasz Adat RESET# Megszakítások Energiaellátás Hőmenedzsment Órajel Diagnosztika Inicializálás Egyéb 3 33 14 5 2 4 Pentium 4 CPU 5 5 2 23 2 2 7 64 Pentium 4 logikai lábkiosztása (3.45. ábra) 4 13 85 180 Φ táp Máté: Architektúrák 8. előadás
2
Pentium 4 logikai lábkiosztása (3.45. ábra)
RESET#: a CPU alapállapotba hozatala, Megszakítások: régi vezérlő, és Advanced Programmable Interrupt Controller (APIC) Különböző 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 Hő- menedzsment Órajel Diagnosztika Inicializálás Egyéb 3 14 4 5 23 2 7 Máté: Architektúrák 8. előadás
3
Pentium 4 logikai lábkiosztása
BPRI# LOCK# BR0# A# ADS# REQ# Paritás# Misc# RS# TRDY# Paritás# BNR# D# DRDY# DBSY# Paritás# Egyéb# 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í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. Sín ütemezés Kérés Hiba Szimatolás Válasz Adat Pentium 4 CPU 33 5 2 5 2 2 64 4 13 Máté: Architektúrák 8. előadás
4
Kérés: cím a sínre, kérés indítása,
Pentium 4 memória sín A memóriaigények, tranzakciók 6 állapota: 6 fázisú csővezeték (3.45. á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, 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övetkező ciklusban, Adat: megvan az adat. Máté: Architektúrák 8. előadás
5
Pentium 4 memória sín csővezetéke (3.46. ábra)
Φ: tranzakció T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 T11 T12 1 K H S V A 2 3 4 5 6 7 Ütemezés (nem ábrázoltuk), csak akkor kell, ha másé a sín. K: kérés, H: hiba, S: szimatolás, V: válasz, A: adat Máté: Architektúrák 8. előadás
6
A Pentium 4 mikroarchitektúrája
Memória alrendszer Memória sínhez Végrehajtó egység Rendszerinterfész Egész és lebegőpontos végrehajtó egység L2 D+I L1 D Betöltő dekódoló Nyomkövető ROM Ütemezők Befejező egység Elágazás jövendölő Bemeneti rész Sorrenden kívüliség vezérlő 4.46. ábra. A Pentium 4 blokkdiagramja Máté: Architektúrák 8. előadás
7
4.46. ábra. A Pentium 4 memória alrendszere
Memória sínhez L2 256 KB az első, 512 KB a második, 1 MB a harmadik generációs Pentium 4-ben. Memória alrendszer Rendszerinterfész L2 D+I L2 8 utas halmaz kezelésű, késleltetve visszaíró 128 bájtos gyorsító sor, minden második ciklusban kezdődhet egy 64 bájtos feltöltés a memóriából. Előre betöltő: megpróbálja L2-be tölteni azt a gyorsító sort, amelyre majd szükség lesz (nincs az ábrán). Máté: Architektúrák 8. előadás
8
4.46. ábra. A Pentium 4 bemeneti rész
L2-ből betölti és dekódolja a programnak megfelelő sorrendben az utasításokat. Az utasításokat RISC szerű mikroműveletek sorozatára bontja. Ha több, mint 4 mikroművelet szükséges, akkor ROM-ra történik utalás. A dekó-dolt mikroműveletek a Nyomkövetőbe kerülnek (nem kell újra dekódolni). Elágazás jövendölés. L2 D+I Betöltő dekódoló Nyomkövető ROM Elágazás jövendölő Bemeneti rész Máté: Architektúrák 8. előadás
9
A bemeneti rész az utasításokat L2-ből kapja
A bemeneti rész az utasításokat L2-ből kapja. Ezeket dekódolja, RISC szerű mikroműveletekre bontja, a nyomkövető gyorsító tárban tárolja (akár 12 K mikroműveletet) a programnak megfelelő sorrendben. 6 mikroműveletet csoportosít minden nyomkövető sorban. Feltételes elágazásnál az utolsó 4 K elágazást tartalmazó L1 BTB-ből (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, előre ugrást nem. Máté: Architektúrák 8. előadás
10
4.46. ábra. Sorrenden kívüliség vezérlő
Az utasítások a programnak megfelelő sorrendben kerülnek az ütemezőbe, eltérő sorrendben kezdődhet a végrehajtásuk (esetleg regiszter átnevezéssel), de a pontos megszakítás követelménye miatt az előírt sorrendben fejeződnek be. Nyomkövető Ütemezők Befejező egység ROM Elágazás jövendölő Bemeneti rész Sorrenden kívüliség vezérlő Máté: Architektúrák 8. előadás
11
A Pentium 4 mikroarchitektúrája
Memória alrendszer Memória sínhez Végrehajtó egység Rendszerinterfész Egész és lebegőpontos végrehajtó egység L2 D+I L1 D Betöltő dekódoló Nyomkövető ROM Ütemezők Befejező egység Elágazás jövendölő Bemeneti rész Sorrenden kívüliség vezérlő 4.46. ábra. A Pentium 4 blokkdiagramja Máté: Architektúrák 8. előadás
12
4.47. ábra. A NetBurst csővezeték
Branch Target Buffer elágazási cél puffer Bemeneti rész Dekódoló egység L1 BTB ROM Nyomkövető Nyomkövető BTB Memórába/memóriából Sorrenden kívüliség vezérlő Lefoglaló/átnevező egység Nem memóriasor Memóriasor L2 ALU üt. ALU üt. Bet. üt. Tár. üt. FP regisztergyűjtő Egész regisztergyűjtő FP MMX SSE Mozgató Bet/Tár L1 D Egész Befejező egység Máté: Architektúrák 8. előadás
13
Branch Target Buffer elágazási cél puffer Lefoglaló/átnevező egység
Dekódoló egység L1 BTB ROM Nyomkövető Nyomkövető BTB Lefoglaló/átnevező egység A nyomkövető gyorsítótárból ciklusonként három mikroművelet kerül a lefoglaló/átnevező egység ROB (ReOrder Buffer, átrendező puffer) nevű táblájába. Ez a tábla 128 bejegyzést tartalmazhat. Máté: Architektúrák 8. előadás
14
Ha egy mikroművelet minden inputja rendelkezésre áll, akkor az esetleges WAR vagy WAW függőséget a 120 firkáló regiszter segítségével kiküszöböli. RAW függőség esetén a mikroműveletet várakoztatja, és a rákövetkező mikroműveleteket 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 megfelelő sorrendben kerülnek az ütemezőbe, eltérő sorrendben kezdődhet a végrehajtásuk, de az előírt sorrendben fejeződnek be. Pontos megszakítás: a megszakítás előtti összes utasítás befejeződött, az utána következőkből egy sem kezdődött el. Máté: Architektúrák 8. előadás
15
Lefoglaló/átnevező egység
A Lefoglaló/átnevező egység a két várakozási sor megfelelőjé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ó/átnevező egység Nem memóriasor Memóriasor ALU üt. ALU üt. Bet. üt. Tár. üt. Minden órajel ciklusban egy betöltés és egy tárolás is végrehajtható. Máté: Architektúrák 8. előadás
16
Egész regisztergyűjtő
Az egyik egész aritmetikájú ALU az összes logikai, aritmetikai, és elágazó, a másik csak az összeadó, kivonó, léptető és forgató utasítás végrehajtására képes. Mindkét regisztergyűjtő 128 regisztert tartalmaz, időben változik, hogy melyikben van EAX, … ALU üt. ALU üt. Bet. üt. Tár. üt. FP regisztergyűjtő Egész regisztergyűjtő FP MMX SSE Mozgató Bet/Tár Egész Máté: Architektúrák 8. előadás
17
Egész regisztergyűjtő
A befejező egység feladata, hogy az utasítások a programnak megfelelő sorrendben fejeződjenek be. L1 4 utas halmazkezelésű, írás áteresztő gyorsítótár 64 bájtos gyorsító sorral. Nem lehet L1-et módosítani, amíg a tárolást megelőző műveletek be nem fejeződtek (24 bejegyzéses tároló puffer), de ha egy betöltő utasítás onnan akar olvasni, ahova egy korábbi tárolt, akkor a tárolások pufferéből megkaphatja a kért adatot (tárolás utáni betöltés). FP regisztergyűjtő Egész regisztergyűjtő Mozgató Bet/Tár L1 D Befejező egység Máté: Architektúrák 8. előadás
18
4.47. ábra. A NetBurst csővezeték
Branch Target Buffer elágazási cél puffer Bemeneti rész Dekódoló egység L1 BTB ROM Nyomkövető Nyomkövető BTB Memórába/memóriából Sorrenden kívüliség vezérlő Lefoglaló/átnevező egység Nem memóriasor Memóriasor L2 ALU üt. ALU üt. Bet. üt. Tár. üt. FP regisztergyűjtő Egész regisztergyűjtő FP MMX SSE Mozgató Bet/Tár L1 D Egész Befejező egység Máté: Architektúrák 8. előadás
19
UltraSPARC III (2000) 64 bites RISC gép, felűről 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. Máté: Architektúrák 8. előadás
20
Másodlagos gyorsító tár (címkék -tags)
18 UltraSPARC III központi egység Első szintű gyorsító tárak 5 UPA interfész a fő memóriához Címke cím Érvényes címke Címke adat Címke paritása Adat címe Érvényes adat cím Adat Paritás Sín ütemezés Memória cím Cím paritása Érvényes cím Várakozás Válasz Mem. adat ECC 35 25 4 Másodlagos gyorsító tár (adatok) 20 4 128 vezérlés 16 5 UDB II memória puffer 128 UltraSPARC III 16 Máté: Architektúrák 8. előadás
21
Belső gyorsító tár (32 KB utasítás + 64 KB adat).
UltraSPARC III CPU 29 millió tranzisztor, 4 CPU közös memóriával használható láb ( ábra). 64 (jelenleg csak 43) bites cím és 128 bites adat lehetséges. Belső gyorsító tár (32 KB utasítás + 64 KB adat). 2 KB előre betöltő és tároló gyorsítótár L2 eléréséhez. A gyorsító sor (cache line) mérete 64 (32?) B. Külső MB (? UltraSPARC II-nek MB). 8 K 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. Máté: Architektúrák 8. előadás
22
A cím 64 bit-es, de egyelőre 44 bit-re korlátozva van
Tag Line 25 bit 18 bit 5 bit átfedés 6 bit bájt cím =? Entry Valid Tag Cash line 2L-1 2 1 . . . Máté: Architektúrák 8. előadás
23
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 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 8. előadás
24
UltraSPARC III 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 Adat Paritás UltraSPARC III központi egység Első szintű gyorsító tárak 18 20 25 4 128 16 UDB II memória puffer 5 vezérlés UltraSPARC III Máté: Architektúrák 8. előadás
25
UltraSPARC III központi egység Első szintű gyorsító tárak
Sín ütemezés Memória cím Cím paritása Érvényes cím Várakozás Válasz 5 UPA interfész a fő memóriához 35 4 UPA (Ultra Port Architecture) sín, hálózati csomópont vagy a kettő kombinációja. Több CPU esetén egy központi vezérlőn keresztül kapcsolódnak a sínhez. Több írást és olvasást tud egyidejűleg kezelni. Máté: Architektúrák 8. előadás
26
Első szintű gyorsító tárak UPA interfész a fő memóriához
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. UltraSPARC III CPU Első szintű gyorsító tárak UDB II memória puffer 5 vezérlés Válasz Memória adat Hiba javító kód UPA interfész a fő memóriához 4 128 16 Máté: Architektúrák 8. előadás
27
Másodlagos gyorsító tár (címkék -tags)
18 UltraSPARC III központi egység Első szintű gyorsító tárak 5 UPA interfész a fő memóriához Címke cím Érvényes címke Címke adat Címke paritása Adat címe Érvényes adat cím Adat Paritás Sín ütemezés Memória cím Cím paritása Érvényes cím Várakozás Válasz Mem. adat ECC 35 25 4 Másodlagos gyorsító tár (adatok) 20 4 128 vezérlés 16 5 UDB II memória puffer 128 UltraSPARC III 16 Máté: Architektúrák 8. előadás
28
Az UltraSPARC III CPU mikroarchitektúrája Előre betöltő gyorsítótár
Memóriához L1 I Rendszer interfész L2 vezérlő Memória vezérlő 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öltő tároló Előre betöltő gyorsítótár 4.48. ábra. Az UltraSPARC III CPU blokkdiagramja Máté: Architektúrák 8. előadás
29
L1 I 32 KB 4 utas halmazkezelésű,
az utasítás kiosztó ciklusonként 4 utasítást tud kiosztani L1 I Ugrótábla Utasítás kiosztó Utasítás puffer FP/Gr Egész Betöltő tároló Két egész aritmetikájú ALU + regiszterek + firkáló regiszterek, Lebegőpontos ALU-k: összeadó/kivonó, szorzó/osztó + 32 regiszter + grafikai utasítások. Máté: Architektúrák 8. előadás
30
Tárolási gyorsítótár 2 KB Előre betöltő gyorsítótár 2 KB
L1 D L2 Betöltő tároló Tárolási gyorsítótár 2 KB Előre betöltő gyorsítótár 2 KB Memóriához Rendszer interfész L2 vezérlő Memória vezérlő 128 bit széles L1 I Utasítás kiosztó L1 D 64 KB-os 4 utas halmazkezelésű, írás áteresztő, 32 bájtos gyorsító sor. Feltételezett betöltésre 2 KB előre betöltő gyorsítótár. 2 KB tárolási gyorsítótár. Memória vezérlő: virtuális → fizikai cím. Máté: Architektúrák 8. előadás
31
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. Előre betöltés: speciális utasításokkal, és a visszafelé kompatibilitás miatt hardveresen is. 2 bites elágazás jövendölő + statikus elágazás jövendölés. Máté: Architektúrák 8. előadás
32
UltraSPARC III csővezetéke (4.49. ábra)
Címmultiplexor Utasítás gyorsítótár Utasítás dekódoló Ugrótábla Cél APF B Address generation, cím generáló. Ugrás, csapda, … Az eltolás résben lévő utasítást mindig végrehajtja! Preliminari Fetch, előzetes betöltő. Legfeljebb 4 utasítást képes betölteni L1 I-ből, 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 Máté: Architektúrák 8. előadás
33
UltraSPARC III csővezetéke Utasítás csoportosító
Címmultiplexor APF B I J Ugrótábla Utasítás gyorsítótár Cél Utasítás dekódoló Utasítás csoportosító Instruction group formation, utasítás csoportosító. Aszerint csoportosítja az utasításokat, hogy melyik működési egységet használják. Máté: Architektúrák 8. előadás
34
UltraSPARC III csővezetéke Utasítás csoportosító Munka regisztergyűjtő
J RE C Betöltő/tároló, speciális egység Utasítás csoportosító Munka regisztergyűjtő FP regisztergyűjtő L1 D J instruction stage grouping, utasítás kiosztó. Az elérhető működési egységektől függően akár 4 utasítást is továbbít az R szakasznak. Register, függőség esetén vár, nincs sorrenden kívüli végrehajtás. Máté: Architektúrák 8. előadás
35
UltraSPARC III csővezetéke Utasítás csoportosító Munka regisztergyűjtő
Betöltő/tároló, speciális egység Utasítás csoportosító J RE C Munka regisztergyűjtő FP regisztergyűjtő L1 D Execution, végrehajtó. A legtöbb egész utasítás itt be is fejeződik. Ha egy utasítás készen van, akkor frissül a regisztergyűjtő. Itt dől el, hogy az ugrás feltétele teljesül-e. Hibás jövendölés esetén jelzés az A szakasznak, a csővezeték érvénytelenítése. Cache, gyorsítótár. Itt zárul L1 D elérése. Máté: Architektúrák 8. előadás
36
UltraSPARC III csővezetéke Utasítás csoportosító Munka regisztergyűjtő
Betöltő/tároló, speciális egység Utasítás csoportosító J RE C M W Munka regisztergyűjtő FP regisztergyűjtő L1 D Előjel kiterjesztés, igazítás Előre betöltő gy.tár Miss, hiány. L1 hiány esetén L2-höz fordul. Itt történik az előjel kiterjesztés, igazítás, az előre betöltő gyorsítótárból kiszolgálható betöltések. Write, író. A speciális egység eredményei a munka regisztergyűjtőbe kerülnek. L2 Máté: Architektúrák 8. előadás
37
Trap, csapda. Ez észleli az egész és FP csapdákat.
UltraSPARC III csővezetéke eXtended, kiterjesztett. Itt fejeződik 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. E C M W X T D FP regisztergyűjtő FP ADD/SUB Grafikus ALU FP MUL/DIV Grafikus MUL Máté: Architektúrák 8. előadás
38
UltraSPARC III csővezetéke Munka regisztergyűjtő
Betöltő/tároló, speciális egység A D szakasz véglegesíti a regiszterek értékét az architektúrális regiszter gyűjtőben. Megszakításkor az itteni adatok érvényesek. RE C M W X T D Munka regisztergyűjtő L1 D L2 Arch. r.gyűjtő Előjel kiterjesztés, igazítás Tárolási sor Tarolási gy.tár Máté: Architektúrák 8. előadás
39
UltraSPARC III csővezetéke Betöltő/tároló, speciális egység
Utasítás csoportosító J RE C M W X T D Munka regisztergyűjtő FP regisztergyűjtő L1 D FP ADD/SUB Grafikus ALU FP MUL/DIV Grafikus MUL L2 Arch. r.gyűjtő Előjel kiterjesztés, igazítás Tárolási sor Tarolási gy.tár Máté: Architektúrák 8. előadás
40
Cél: beépített rendszerekben való alkalmazás.
I-8051 (1980) Cél: beépített rendszerekben való alkalmazás. Fő szempont: olcsóság (ma már ¢), 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 tranzisztor. 4 KB ROM, 128 B RAM, max. 64 KB külső 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öthető nyomógombhoz, kapcsolóhoz, LED-hez, … Időzítők. Pl. Rádiós óra: nyomógombok, kapcsolók, kijelző. 59-61, Máté: Architektúrák 8. előadás
41
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ülső 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 címek a belső, (0) a külső memóriára vonatkoznak 16 A D RD# WR# ALE PSEN# EA# Időzítők Megszakítások TXD RXD RST 8051 8 8 Port 0 Port 1 Port 2 Port 3 2 2 2 Φ Táp Máté: Architektúrák 8. előadás
42
Az I-8051 logikai lábkiosztása (3.50. ábra)
16 A D RD# WR# ALE PSEN# EA# Időzítők Megszakítások TXD RXD RST 8051 A két időzítő külső áramkörről kaphat jelet Megszakítások TXD Transmitted Data, továbbított adat RXD Received Data, érkezett adat ReSeT Port (4*8) bites B/K soros vonal 8 8 Port 0 Port 1 Port 2 Port 3 2 2 2 Φ Táp Máté: Architektúrák 8. előadás
43
Az I-8051 CPU mikroarchitektúrája (4.50. ábra) Lokális sín Fő sín ALU
RAM ROM Lokális sín Fő sín RAM ADDR ROM ADDR IR BUFFER SP PC növelő B PC ACC DPTR TMP2 Időzítő 0 TMP1 Időzítő 1 Időzítő 2 ALU Port 0 Az I-8051 CPU mikroarchitektúrája (4.50. ábra) Port 1 Port 2 PSW Port 3 Máté: Architektúrák 8. előadás
44
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: fő aritmetikai regiszter, a legtöbb számítás eredménye itt keletkezik TMP1 – TMP2 az ALU bemenetei, az eredmény a fő sínről akármelyik regiszterbe kerülhet Program Status Word RAM RAM ADDR IR SP B ACC TMP2 TMP1 Fő sín ALU PSW Máté: Architektúrák 8. előadás
45
ROM 4 KB belső, max. 64 KB külső 16 bites regiszterek: ROM ADDRess
Az I-8051 CPU mikroarchitektúrája ROM 4 KB belső, max. 64 KB külső 16 bites regiszterek: ROM ADDRess BUFFER PC, PC növelő PC-t beírva, majd kiolvasva PC növelődik DPTR Időzítő 0 – 2 Port 0 – 3 ROM ROM ADDR BUFFER PC növelő PC DPTR Időzítő 0 Időzítő 1 Port 0 Időzítő 2 Port 1 Port 2 Port 3 Lokális sín Máté: Architektúrák 8. előadás
46
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 fősínre és IR-be kerül. Dekódolás, PC növelése. Operandusok előkészítése. Egyik operandus a fősínre, onnan általában TMP1-be, a másik ACC-ből TMP2-be kerül. Az ALU végrehajtja a műveletet. Az ALU kimenete a fősínre kerül, ROM ADDR felkészül a következő utasítás olvasására. Máté: Architektúrák 8. előadás
47
egy CISC utasítás → több RISC mikroutasítás UltraSPARC III RISC gép
Ö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 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 Máté: Architektúrák 8. előadás
48
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ó gyűjtést jelenthet. A57 Máté: Architektúrák 8. előadás
49
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 illető adatra. Egy-egy adat definíciós utasítással – vesszővel elválasztva – több azonos típusú adatot is definiálhatunk. A kezdőérték – megfelelő típusú – tetszőleges konstans (szám, szöveg, cím, ...) és kifejezés lehet. Ha nem akarunk kezdőértéket adni, akkor ? -et kell írnunk. DUP operátor kifejezés DUP (adat) A57-58 Máté: Architektúrák 8. előadás
50
Egyszerű adat definíciós utasítások
Define Byte (DB): Adat1 db 25 ; 1 byte, kezdőértéke decimális 25 Adat2 db 25H ; 1 byte, kezdőé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’” A58 Máté: Architektúrák 8. előadás
51
Szo_címe dw Szo ; Szo offset címe Define Double (DD):
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) A58 Máté: Architektúrák 8. előadás
52
Összetett adat definíciós utasítások
Struktúra és a rekord. Előszö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 mezőknek (field) nevezzük. A hardver nem ismeri ezeket az adat típusokat, a kezelésükről szoftveresen kell gondoskodni! A59 Máté: Architektúrák 8. előadás
53
Struktúra Struktúra definíció: a struktúra típusát definiálja a későbbi 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ó ; mező (field) definíciók: ; egyszerű adat definíciós ; utasítások Str_típus ENDS ; struktúra definíció vége A mező (field) definíció csak egyszerű adat definíciós utasítással történhet, ezért struktúra mező nem lehet másik struktúra vagy rekord. A59 Máté: Architektúrák 8. előadás
54
S STRUC ; struktúra (típus) definíció
A mezők definiálásakor megadott értékek kezdőértékül szolgálnak a későbbiekben történő struktúra hívásokhoz. A definícióban megadott kezdőértékek közül azoknak a mezőknek a kezdőértéke híváskor felülbírálható, amelyek csak egyetlen adatot tartalmaznak (ilyen értelemben a szöveg konstans egyetlen adatnak minősü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 A59 Máté: Architektúrák 8. előadás
55
S1 S ; kezdőértékek a definícióból
Struktúra hívás: A struktúra definíciójánál megadott Str_típus névnek a műveleti kód részen történő szerepeltetésével hozhatunk létre a definíciónak megfelelő típusú struktúra változókat. A kezdőértékek fölülbírása a kívánt értékek < > közötti felsorolásával történik S1 S ; kezdőértékek a definícióból S2 S <,,7,,’FG’> ; F3 kezdőértéke 7, ; F5-é ’FG ’ S3 S <,,’A’> ; F3 kezdőértéke ’A’ , ; a többi a definícióból Struktúrából vektort is előállíthatunk, pl.: S_v S 8 dup (<,,’A’>) ; 8 elemű struktúra vektor A60 Máté: Architektúrák 8. előadás
56
A . bármely oldalán lehet másfajta cím is, pl. MOV BX, OFFSET S1
Struktúra mezőre hivatkozás: A struktúra változó nevéhez tartozó OFFSET cím a struktúra OFFSET címét, míg a mező neve a struktúrán belüli címet jelenti. A struktúra adott mezejére úgy hivatkozhatunk, hogy a struktúra és mező 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 előzővel: MOV AL,[BX].F3 MOV AL,[BX]+F3 MOV AL,F3.[BX] MOV AL,F3[BX] A60 Máté: Architektúrák 8. előadás
57
; szintaktikusan helyes, de
A fentiekből az is következik, hogy a mező és struktúra név – ellentétben a magasabb szintű 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_v[5].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_v[i].F3 ; szintaktikusan is HIBÁS! A60-61 Máté: Architektúrák 8. előadás
58
Mindkét esetben programmal kell kiszámíttatni az elem offset-jét, pl
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ésőbb) MUL i ; Az indexet 0-tól számoljuk! MOV BX,AX ; az adat nem „lóghat ki” a ; szegmensből (DX=0) MOV AL,S_v.F3[BX] ; AL az i-dik elem F3 mezeje. A61 Máté: Architektúrák 8. előadás
59
Rekord Rekord definíció: Csak a rekord típusát definiálja a későbbi rekord hívások számára. Rec_típus RECORD mező_specifikációk Az egyes mező specifikációkat ,-vel választjuk el egymástól. Mező specifikáció: mező_név:szélesség=kezdőérték szélesség a mező bit-jeinek száma. Az =kezdőérték el is maradhat, ha elmarad, az a mező 0-val való inicializálását írja elő. A61 Máté: Architektúrák 8. előadás
60
Pl.: R RECORD X:3,Y:4=15,Z:5 Az R rekord szavas (12 bit), a következőképpen helyezkedik el egy szóban: X Y Z 1 A61-62 Máté: Architektúrák 8. előadás
61
R1 R < > ; 01E0H, kezdőértékek a ; definícióból
Rekord hívás: A rekord definíciójánál megadott névnek a műveleti kód részen történő szerepeltetésével hozhatunk létre a definíciónak megfelelő típusú rekord változókat. A kezdőértékek fölülbírálása a kívánt értékek < > közötti felsorolásával történik. R1 R < > ; 01E0H, kezdőértékek a ; definícióból R2 R <,,7> ; 01E7H, X, Y kezdőértéke a ; definícióból, Z-é 7 R3 R <1,2> ; 0240H, X kezdőértéke 1, Y-é 2, ; Z-é a definícióból Rekordból vektort is előállíthatunk, pl.: R_v R 5 dup (<1,2,3>) ; 0243H, ; 5 elemű rekord vektor A62 Máté: Architektúrák 8. előadás
62
Rekord mezőre hivatkozás
A mező 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 mező 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 mezőhöz tartozó bitek ; maszkolása MOV CL,Y ; léptetés előkészítése SHR AX,CL ; kész vagyunk. SAR nem lenne korrekt: nem biztos, hogy az Y mező nem tartalmazza az előjel bitet. A62 Máté: Architektúrák 8. előadás
63
Egy művelet operandusa lehet konstans, szimbólum vagy kifejezés.
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 betűvel 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. A63 Máté: Architektúrák 8. előadás
64
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övető részében használható, értékét a használat helyét megelőző 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! A64 Máté: Architektúrák 8. előadás
65
S = 1 ; S értéke 1 N EQU 14 ; N értéke 14 MOV CX,N ; CX 14 ISM:
S = S+1 ; 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 A64 Máté: Architektúrák 8. előadás
66
ORG $+100H ; 100H byte kihagyása ; a memóriában
Szimbolikus konstansként használhatjuk a $ jelet (helyszámláló), melynek az értéke mindenkor a program adott sorának megfelelő 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 A64 Máté: Architektúrák 8. előadás
67
BETA LABEL FAR ; FAR típusú GAMMA: ... ; BETA is ezt az utasítást
Címke: Leggyakoribb definíciója, hogy valamelyik utasítás előtt a sor első 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 lehetősé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ú A64 Máté: Architektúrák 8. előadás
68
B PROC NEAR ; NEAR típusú C PROC FAR ; FAR típusú
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 jelző ENDP pszeudo utasítás előtt meg kell ismételnünk ezt az azonosítót, de az ismétlés nem minősü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ú A64-65 Máté: Architektúrák 8. előadás
69
Címkére vezérlés átadó utasítással hivatkozhatunk, NEAR típusúra csak az adott szegmensből, FAR típusúra más szegmensekből is. Változó: Definíciója adat definíciós utasításokkal történik. Néha (adat) címkének is nevezik. A65 Máté: Architektúrák 8. előadás
70
Utasításrendszer-architektúra szintje (ISA)
Amit a fordító program készítőjének tudnia kell: memóriamodell, regiszterek, adattípusok, utasítások. A hardver és szoftver között helyezkedik el, 5.1 ábra. FORTRAN program C program Fordítás szoftver ISA szint hardver ISA szint végrehajtása microprogram vagy hardver által Hardver Általában a mikroarchitektúra nem tartozik hozzá. Máté: Architektúrák 8. előadás
71
Utasítások szintje (ISA) A jóság két kritériuma:
hatékony hardver megvalósítási lehetőség, jó médium a fordítóknak. Továbbfejlesztéseknél ügyelni kell a kompatibilitásra! Nyilvános definíció: van: SPARC, JVM (tervezők); nincs: Pentium 4 (gyártók). kernelmód (user) felhasználói mód Máté: Architektúrák 8. előadás
72
ASCII kód 7 bit + paritás → Byte (bájt) Szó: 4 vagy 8 byte.
Memória modellek ASCII kód 7 bit + paritás → Byte (bájt) Szó: 4 vagy 8 byte. Igazítás (alignment), 5.2. ábra: hatékonyabb, de probléma a kompatibilitás (a Pentium 4-nek két ciklusra is szüksége lehet egy szó beolvasásához). cím 8 bájt 8 16 24 cím 8 bájt 8 16 24 Nem igazított 8 bájtos szó a 12-es címtől 8 bájtos szó 8 határra igazítva Néha (pl. 8051) külön memória az adatoknak és az utasításoknak (nem ugyanaz, mint az osztott gyorsítótár!). Máté: Architektúrák 8. előadás
73
Mi a többszálúság lényege, haszna?
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 előre betöltő? Mit jelent a szimatolás? Hogy működik a Pentium 4 memória sín csővezetéke? Milyen sorrendben dekódolja a Pentium 4 az utasításokat? Mire szolgál a ROM? Máté: Architektúrák 8. előadás
74
Mire szolgál a nyomkövető gyorsítótár?
Feladatok Mire szolgál a nyomkövető 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övető BTB? Milyen sorrendben kezdődik az utasítások végrehajtása a Pentium 4-en? Mire szolgál a lefoglaló/átnevező egység? Mire szolgálnak a regiszter gyűjtők? Milyen sorrendben fejeződik 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? Máté: Architektúrák 8. előadás
75
Mit jelent a pontos megszakítás kifejezés?
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 műkö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ésű az UltraSPARC III L1 I gyorsítótára? Mire szolgál a munka regisztergyűjtő? Mire szolgál az architektúrális regisztergyűjtő? Mire szolgál az előre betöltő gyorsítótár? Mire szolgál a tárolási sor? Mire szolgál a tárolási gyorsítótár? Máté: Architektúrák 8. előadás
76
Mire szolgál az UltraSPARC III ugrótáblája?
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 regisztergyűjtő? Mire szolgál az architektúrális regisztergyűjtő? Hány ALU van az UltraSPARC III-ban? Mire szolgál az előre betöltő 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üggőségeket? Máté: Architektúrák 8. előadás
77
Mi az I-8051 fő alkalmazási területe?
Feladatok Mi az I-8051 fő 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? Máté: Architektúrák 8. előadás
78
Milyen és hány be/kimenete van az I-8051-nek?
Feladatok Milyen és hány be/kimenete van az I-8051-nek? Mire használhatók az I-8051 be/kimenetei? Hány időzítője van az I-8051-nak? Mire használhatók az I-8051 időzítői? 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! Máté: Architektúrák 8. előadás
79
Milyen adat definíciós utasítást ismer?
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? Máté: Architektúrák 8. előadás
80
Hogy inicializálhatjuk egy struktúra valamely mezejét?
Feladatok Hogy inicializálhatjuk egy struktúra valamely mezejét? Struktúra híváskor mely mezőket inicializálhatjuk? Mit kell tudni a struktúra és mező névről? 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 kezdőértéket egy rekordnak? Mit kell tudni a rekord és mező névről? Hogy hivatkozhatunk egy rekord valamely mezejére? Máté: Architektúrák 8. előadás
81
Hogy hivatkozhatunk egy rekord vektor valamely mezejére?
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? Máté: Architektúrák 8. előadás
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.