Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Máté: Architektúrák4. előadás1 ; B = A n-dik hatványa, ; A és n előjel nélküli byte, B word ; Feltétel: A n-1 –dik hatványa elfér AL –ben. movcl, n; a.

Hasonló előadás


Az előadások a következő témára: "Máté: Architektúrák4. előadás1 ; B = A n-dik hatványa, ; A és n előjel nélküli byte, B word ; Feltétel: A n-1 –dik hatványa elfér AL –ben. movcl, n; a."— Előadás másolata:

1 Máté: Architektúrák4. előadás1 ; B = A n-dik hatványa, ; A és n előjel nélküli byte, B word ; Feltétel: A n-1 –dik hatványa elfér AL –ben. movcl, n; a ciklus előkészítése xorch, ch moval, 1; lehetne:mov ax, 1 xorah, ah; akkor ez nem kell JCXZkesz; ha n=0, akkor 0-szor ; fut a ciklus mag c_mag:mulA; ciklus mag LOOPc_mag; ismétlés, ha kell kesz:movB, ax

2 Máté: Architektúrák4. előadás2 ; Két vektor skalár szorzata. 1. változat codesegment para public ’code’ assume cs:code, ds:data, ss:stack, es:nothing skalarprocfar pushds; visszatérési cím a verembe xorax,ax; ax  0 pushax; visszatérés offset címe movax,data; ds a data szegmensre mutasson mov ds,ax; sajnos „mov ds,data” ; nem megengedett ; A

3 Máté: Architektúrák4. előadás3 movcl,n; cl  n, 0  n  255 xorch,ch; cx = n szavasan xordx,dx; az eredmény ideiglenes helye jcxzkesz; ugrás a kesz címkére, ; ha CX (=n) = 0 xorbx,bx; bx  0, ; bx-et használjuk indexezéshez

4 Máté: Architektúrák4. előadás4 ism:moval,a[bx]; al  a[0], később a[1],... imulb[bx]; ax  a[0]  b[0], a[1]  b[1],... adddx,ax; dx  részösszeg incbx; bx  bx+1, az index növelése ; B deccx; cx  cx-1, (vissza)számlálás jcxzkesz; ugrás a kész címkére, ha cx=0 jmpism; ugrás az ism címkére kesz: movax,dx; a skalár szorzat értéke ax-ben ; C

5 Máté: Architektúrák4. előadás5 callhexa; az eredmény kiírása ; hexadecimálisan movsi,offset kvse ; kocsi vissza soremelés callkiiro; kiírása ret; vissza az Op. rendszerhez skalarendp; a skalár eljárás vége ; D

6 Máté: Architektúrák4. előadás6 Egyszerűsítési lehetőség: ; B deccx; cx  cx-1, (vissza)számlálás jcxzkesz; ugrás a kész címkére, ha cx=0 jmpism; ugrás az ism címkére kesz: movax,dx ; a skalár szorzat értéke ax-ben helyett: ; B LOOPism; ugrás az ism címkére, ; ha kell ismételni kesz: movax,dx ; a skalár szorzat értéke ax-ben

7 Máté: Architektúrák4. előadás7 Annak érdekében, hogy a skalárszorzatot kiszámító program ne rontson el regisztereket, kívánatos ezek mentése: ; A PUSHBX; mentés PUSHCX PUSHDX és visszamentése: POPDX; visszamentés POPCX POPBX ; C

8 Máté: Architektúrák4. előadás8 A paraméterek szabványos helyen történő átadása ; Két vektor skalár szorzata. 2. változat... ; A ; ELJÁRÁS HÍVÁS A PARAMÉTEREK ; SZABVÁNYOS HELYEN TÖRTÉNŐ ÁTADÁSÁVAL CALLSKAL; ELJÁRÁS HÍVÁS ; eredmény az AX regiszterben ; C callhexa; az eredmény kiírása movsi,offset kvse ; kocsi vissza, soremelés callkiiro; kiírása... ret; vissza az Op. rendszerhez skalarendp; a skalár eljárás vége ; D

9 Máté: Architektúrák4. előadás9 SKALPROC; KÖZELI (NEAR) ELJÁRÁS ; KEZDETE ; Az A-tól C-ig tartó program rész: PUSHBX; MENTÉSEK PUSHCX PUSHDX movcl,n; cl  n, 0  n  255 xorch,ch; cx = n szavasan xordx,dx; az eredmény ideiglenes helye jcxzkesz; ugrás a kesz címkére, ha n=0 xorbx,bx; bx  0, ; bx-et használjuk indexezéshez

10 Máté: Architektúrák4. előadás10 ism:moval,a[bx]; al  a[0], később a[1],... imulb[bx]; ax  a[0]  b[0], a[1]  b[1],... adddx,ax; dx  részösszeg incbx; bx  bx+1, az index növelése ; B LOOPism; ugrás az ism címkére, ; ha kell ismételni kesz: movax,dx; a skalár szorzat értéke ax-ben POPDX; VISSZAMENTÉSEK POPCX POPBX ; C RET; VISSZATÉRÉS A HÍVÓ ; PROGRAMHOZ SKALENDP; A SKAL ELJÁRÁS VÉGE ; D … Csak az a és b vektor skalár szorzatát tudja kiszámolni!

11 Máté: Architektúrák4. előadás11 A paraméterek regiszterekben történő átadása ; Két vektor skalár szorzata. 3. változat... ; A ; ELJÁRÁS HÍVÁS A PARAMÉTEREK ; REGISZTEREKBEN TÖRTÉNŐ ÁTADÁSÁVAL MOVCL, n; PARAMÉTER BEÁLLÍTÁSOK XORCH, CH; CX = n, ÉRTÉK MOVSI,OFFSET a; SI  a OFFSET CÍME MOVDI,OFFSET b; DI  b OFFSET CÍME callskal; eljárás hívás ; eredmény az ax regiszterben callhexa; az eredmény kiírása movsi,offset kvse ; kocsi vissza, soremelés callkiiro; kiírása... ret; visszatérés az Op. rendszerhez skalarendp; a skalár eljárás vége

12 Máté: Architektúrák4. előadás12 skalproc; Közeli (NEAR) eljárás kezdete pushbx; mentések pushcx pushdx xordx,dx; az eredmény ideiglenes helye jcxzkesz; ugrás a kesz címkére, ha n=0 xorbx,bx; bx  0, ; bx-et használjuk indexezéshez

13 Máté: Architektúrák4. előadás13 ism:moval,[SI+BX]; FÜGGETLEN a-tól imulBYTE PTR [DI+BX]; FÜGGETLEN b-től ; csak „BYTE PTR”-ből derül ki, hogy 8 bites a szorzás adddx,ax; dx  részösszeg incbx; bx  bx+1, az index növelése loopism; ugrás az ism címkére, ; ha kell ismételni kesz: movax,dx; a skalár szorzat értéke ax-ben popdx; visszamentések popcx popbx ret; visszatérés a hívó programhoz skalendp; a skal eljárás vége ; D... Így csak kevés paraméter adható át!

14 Máté: Architektúrák4. előadás14 ; Két vektor skalár szorzata. 4. változat... ; A ; ELJÁRÁS HÍVÁS A PARAMÉTEREK ; VEREMBEN TÖRTÉNŐ ÁTADÁSÁVAL MOVAL,n; AL-t nem kell menteni, mert XORAH,AH; AX-ben kapjuk az eredményt PUSHAX; AX=n a verembe MOVAX,OFFSET a; AX  a OFFSET címe PUSHAX; a verembe MOVAX,OFFSET b; AX  b OFFSET címe PUSHAX; a verembe A verembe került: n értéke, a címe, b címeparaméterek

15 Máté: Architektúrák4. előadás15 callskal; eljárás hívás ; eredmény az ax regiszterben ADDSP,6; paraméterek ürítése a veremből... ret; visszatérés az Op. rendszerhez skalarendp; a skalár eljárás vége callskal Hatására a verembe került a visszatérési cím

16 Máté: Architektúrák4. előadás16 skalproc; Közeli (near) eljárás kezdete PUSHBP; BP értékét mentenünk kell MOVBP,SP; BP  SP, ; a stack relatív címzéshez PUSHSI; mentések PUSHDI pushbx pushcx pushdx A verem tartalma: n értéke, a címe, b címeparaméterek visszatérési cím, bp, si, di, bx, cx, dxmentett regiszterek

17 Máté: Architektúrák4. előadás17 A verem tartalma: n értéke, a címe, b címeparaméterek visszatérési cím, bp, si, di, bx, cx, dxmentett regiszterek (SS:SP)dx PUSHBP; BP értékét mentenünk kell + 2cx MOVBP,SP; BP  SP, + 4bx + 6di + 8si +10bp - - - - - - - - - - - - - - - - - - - - - (SS:BP) +12visszatérési cím+ 2 +14b címe+ 4 +16a címe+ 6 +18n értéke+ 8...korábbi mentések...

18 Máté: Architektúrák4. előadás18 +10bp - - - - - - - - - - - - - - - - - - - - - (SS:BP) +12visszatérési cím+ 2 +14b címe+ 4 +16a címe+ 6 +18n értéke+ 8...korábbi mentések... MOVSI,6[BP]; SI  az egyik vektor címe MOVDI,4[BP]; DI  a másik vektor címe MOVCX,8[BP]; CX  a dimenzió értéke xordx,dx; az eredmény ideiglenes helye jcxzkesz; ugrás a kesz címkére, ha n=0 xorbx,bx; bx  0, indexezéshez

19 Máté: Architektúrák4. előadás19 ism:moval,[si+bx]; független a-tól imulbyte ptr [di+bx]; független b-től ; csak „byte ptr”-ből derül ki, hogy 8 bites a szorzás adddx,ax; dx  részösszeg incbx; bx  bx+1, az index növelése loopism; ugrás az ism címkére, ; ha kell ismételni kesz: movax,dx; a skalár szorzat értéke ax-ben

20 Máté: Architektúrák4. előadás20 popdx; visszamentések popcx popbx POPDI POPSI POPBP ret; visszatérés a hívó programhoz skalendp; a skal eljárás vége ; D... ADDSP,6; paraméterek ürítése a veremből helyett más megoldás: RET6; visszatérés a hívó programhoz ; verem ürítéssel:... SP = SP + 6

21 Máté: Architektúrák4. előadás21 C konvenció Hogy egy eljárás különböző számú paraméterrel legyen hívható, azt úgy lehet elérni, hogy a paramétereket fordított sorrendben tesszük a verembe, mert ilyenkor a visszatérési cím alatt lesz az első, alatta a második, stb. paraméter, és általában a korábbi paraméterek döntik el, hogy hogyan folytatódik a paramétersor. f(x,y); push y push x call f

22 Máté: Architektúrák4. előadás22 Lokális adat terület, rekurzív és re-entrant eljárások Ha egy eljárás működéséhez lokális adat területre, munkaterületre van szükség, és a működés befejeztével a munkaterület tartalma fölösleges, akkor a munkaterületet célszerűen a veremben alakíthatjuk ki. A munkaterület lefoglalásának ajánlott módja:...proc... PUSHBP; BP értékének mentése MOVBP,SP; BP  SP, ; a stack relatív címzéshez SUBSP,n; n byte-os munkaterület lefoglalása...; további regiszter mentések

23 Máté: Architektúrák4. előadás23 Lokális adat terület (NEAR eljárás esetén) (SS:SP) lokális adat terület... + 2.........– 2 bp - - - - - - - - - - - - - - - - - - - - - (SS:BP) visszatérési cím+ 2 paraméterek... korábbi mentések... A munkaterület negatív displacement érték mellett stack relatív címzéssel érhető el. (A veremben átadott paraméterek ugyancsak stack relatív címzéssel, de pozitív displacement érték mellett érhetők el.)

24 Máté: Architektúrák4. előadás24 A munkaterület felszabadítása visszatéréskor a...; visszamentések MOVSP,BP; a munkaterület felszabadítása POPBP; BP értékének visszamentése ret...; visszatérés utasításokkal történhet.

25 Máté: Architektúrák4. előadás25 Rekurzív és re-entrant eljárások Egy eljárás rekurzív, ha önmagát hívja közvetlenül, vagy más eljárásokon keresztül. Egy eljárás re-entrant, ha többszöri belépést tesz lehetővé, ami azt jelenti, hogy az eljárás még nem fejeződött be, amikor újra felhívható. A rekurzív eljárással szemben a különbség az, hogy a rekurzív eljárásban „programozott”, hogy mikor történik az eljárás újra hívása, re-entrant eljárás esetén az esetleges újra hívás ideje a véletlentől függ. Ez utóbbi esetben azt, hogy a munkaterületek ne keveredjenek össze, az biztosítja, hogy újabb belépés csak másik processzusból képzelhető el, és minden processzus saját vermet használ.

26 Máté: Architektúrák4. előadás26 Rekurzív és re-entrant eljárások Ha egy eljárásunk készítésekor betartjuk, hogy az eljárás a paramétereit a vermen keresztül kapja, kilépéskor visszaállítja a belépéskori regiszter tartalmakat – az esetleg eredményt tartalmazó regiszterek kivételével –, továbbá a fenti módon kialakított munkaterületet használ, akkor az eljárásunk rekurzív is lehet, és a többszöri belépést is lehetővé teszi (re-entrant).

27 Máté: Architektúrák4. előadás27 Gyorsító tár (cache – 2.16. ábra) A processzorok mindig gyorsabbak a memóriáknál. A CPU lapkára integrálható memória gyors, de kicsi. Feloldási lehetőség: a központi memória egy kis részét (gyorsító tár) a CPU lapkára helyezni: Amikor egy utasításnak adatra van szüksége, akkor először itt keresi, ha nincs itt, akkor a központi memóriában. Lokalitási elv: Ha egy hivatkozás a memória A címére történik, akkor a következő valószínűleg valahol A közelében lesz (ciklus, mátrix manipulálás, …). Ha A nincs a gyorsító tárban, akkor az A-t tartalmazó (adott méretű) blokk (gyorsító sor - cache line) kerül beolvasásra a memóriából a gyorsító tárba.

28 Máté: Architektúrák4. előadás28 Találati arány (h): az összes hivatkozás mekkora hányada szolgálható ki a gyorsító tárból. Hiba arány: 1-h. Ha a gyorsító tár elérési ideje: c, a memória elérési ideje: m, akkor az átlagos elérési idő = c + (1- h) m. A gyorsító tár mérete: nagyobb tár – drágább. A gyorsító sor mérete: nagyobb sor – nagyobb a sor betöltési ideje is. Ugyanakkora tárban kevesebb gyorsító sor fér el.

29 Máté: Architektúrák4. előadás29 Osztott (külön utasítás és adat) gyorsító tár előnyei: Egyik szállítószalag végzi az utasítás, másik az operandus előolvasást. Az utasítás gyorsító tárat sohasem kell visszaírni (az utasítások nem módosulnak). Egyesített gyorsító tár: nem lehetséges párhuzamosítás. Hierarchia: elsődleges, a CPU lapkán, másodlagos, a CPU-val egy tokban, külön tokban.

30 Máté: Architektúrák4. előadás30 Direkt leképezésű gyorsító tár működése: (4_38_abrahoz) Bitek:161132 32 bites cím:TAGVonal (Line)SZÓBÁJT EntryVTAGData (32 bájt) 2047 …… 1 0 Ha a gyorsító tár Vonal által mutatott sorában V=1 (valid), és a TAG megegyezik a címben lévő TAG-gel, akkor az adat bent van a gyorsító tárban (ebben a sorban).

31 Máté: Architektúrák4. előadás31 Halmazkezelésű (csoportasszociatív) gyorsító tár Ha egy program gyakran használ olyan szavakat, amelyek távol vannak egymástól, de ugyanoda képződnek le a gyorsító tárban, akkor sűrűn kell cserélni a gyorsító sort. Ha minden címhez n bejegyzés van, akkor n utas halmazkeresésű gyorsító tárról beszélünk. Ritka a több, mint 4 utas kezelés. LRU (Least Recently Used) algoritmus: gyorsító sor betöltése előtt a legrégebben használt bejegyzés kerül ki a gyorsító tárból.

32 Máté: Architektúrák4. előadás32 Halmaz kezelésű gyorsító tár (4.39. ábra) Ha a gyorsító tár Vonal által mutatott sorában az A, B, C és D bejegyzések egyikében V=1 (valid), és a hozzá tartozó TAG megegyezik a címben lévő TAG-gel, akkor az adat bent van a gyorsító tárban (ebben a bejegyzésben). EntryVTagDataVTagDataVTagDataVTagData 2 k -1 1 0 A bejegyzés B bejegyzés C bejegyzés D bejegyzés

33 Máté: Architektúrák4. előadás33 Memóriába írás Stratégiák: Írás áteresztés (write through): az írás a memóriába történik. Ha a cím a gyorsítóban van, oda is be kell írni, különben el kellene dobni a gyorsító sort. Késleltetett írás (write deferred, write back): ha a cím bent van a gyorsító tárban, akkor csak a gyorsító tárba írunk, a memóriába csak gyorsító sor cserénél. Ha a cím nincs a gyorsító tárban, akkor előtte betölthetjük: írás allokálás (write allocation) – többnyire ezt alkalmazzák késleltetett írás esetén.

34 Máté: Architektúrák4. előadás34 Memória hierarchia (2.18. ábra) Elérési idő: néhány nanosec >100 msec Kapacitás: néhány bájt néhány száz GB regiszterek Gyorsító tár Központi memória Mágneslemez Szalag Optikai lemez

35 Máté: Architektúrák4. előadás35 CPU (Central Processing Unit) Általában egyetlen lapkán van. Lábakon keresztül kommunikál a többi egységgel (3.34. ábra). címzés adat sínvezérlés megszakítások sínütemezés/kiosztás segédprocesszor állapot vegyes Φ +5V földelés órajel tápfeszültség CPU

36 Máté: Architektúrák4. előadás36 Lábak (pins) három típusa: cím, adat, vezérlés. Ezek párhuzamos vezetékeken, az un. sínen keresztül kapcsolódnak a memória, az I/O egységek hasonló lábaihoz. címzés adat sínvezérlés megszakítások sínütemezés/kiosztás segédprocesszor állapot vegyes Φ +5V CPU

37 Máté: Architektúrák4. előadás37 Lényeges a cím- és adatlábak száma (3.34. ábra): Ha m címláb van, akkor 2 m memóriarekesz érhető el (tipikus m = 16, 20, 32, 64). Ha n adatláb van, akkor egyszerre n bit olvasható illetve írható (tipikus n = 8, 16, 32, 36, 64). címzés adat sínvezérlés megszakítások sínütemezés/kiosztás segédprocesszor állapot vegyes Φ +5V CPU

38 Máté: Architektúrák4. előadás38 Óra, áram (3.3 v. 5V), föld, továbbá vezérlőlábak: sín vezérlés (bus control): mit csináljon a sín, megszakítások, sín kiosztás (ütemezés, egyeztetés – bus arbitration): kinek dolgozzon a sín, segéd processzor vezérlése, jelzései, állapot, egyebek. címzés adat sínvezérlés megszakítások sínütemezés/kiosztás segédprocesszor állapot vegyes Φ +5V CPU

39 Máté: Architektúrák4. előadás39 Pl. utasítás betöltése: A CPU kéri a sín használat jogát, Az utasítás címét a cím lábakra teszi, vezérlő vonalon informálja a memóriát, hogy olvasni szeretne, a memória a kért szót az adat vonalakra teszi, kész jelzést tesz egy vezérlő vonalra, a CPU végrehajtáshoz átveszi az utasítást. címzés adat sínvezérlés megszakítások sínütemezés/kiosztás segédprocesszor állapot vegyes Φ +5V CPU

40 Máté: Architektúrák4. előadás40 Sín (bus): Korai személyi számítógépeknél egyetlen (külső) rendszersín, manapság legalább kettő van: egy belső és egy külső (I/O), 3.35. ábra. sínvezérlő memória lemez modemnyomtató memória- sín B/K sín CPU lapka regiszterek Lapkán belüli sínek ALU

41 Máté: Architektúrák4. előadás41 Sínprotokoll: a sín működésének + a csatlakozások mechanikai, elektronikus definíciója Mesterek (masters): aktív (kezdeményező) berendezések (CPU, lemez vezérlő). Szolgák (slaves): passzív (végrehajtó) berendezések (lemez vezérlő, CPU), 3.35. ábra. Ez a szereposztás tranzakciónként eltérő lehet. MesterSzolgapélda CPUSegéd proc.CPU felkínálja az utasítást Segéd proc.CPUSegéd proc. kéri az operandusokat A memória sohasem lehet mester!

42 Máté: Architektúrák4. előadás42 A sínhez kapcsolódó lapkák lényegében erősítők. Mester – sín vezérlő (bus driver) – sín. Sín – sín vevő (bus receiver) – szolga. Mester–szolgáknál: sín adó-vevő (bus transceiver). A csatlakozás gyakran tri-state device vagy open collector – wired-OR segítségével történik. Sávszélesség: (továbbítható bitek száma) / sec. Sávszélesség növelése: Gyorsítás: probléma a sín aszimmetria (skew), kompatibilitás. Sínszélesség: szélesebb sín  drágább, kompatibilitás.

43 Máté: Architektúrák4. előadás43 Sínszélesség (pl. IBM PC: 3.37., 3.51. ábra). 8086 20 bites cím vezérlés 80286 4 bites 80386 8 bites 3.37. ábra. A cím szélességének növekedése az elmúlt időszakban

44 Máté: Architektúrák4. előadás44 3.51. ábra. A PC/AT sín két komponense, az eredeti PC és az új rész

45 Máté: Architektúrák4. előadás45 Alaplap (motherboard, parentboard, 3.51. ábra) Rajta van a CPU, sín(ek), ezen illesztő helyek (slots) a memória és a beviteli/kiviteli (Input/Output – I/O) eszközök számára (3.51., 2.28. ábra). I/O eszköz: maga az eszköz + vezérlő (controller) külön kártyán vagy az alaplapon (2.29. ábra). Gyorsabb CPU gyorsabb sínt igényel! Kívánság: PC cseréjénél megmaradhasson a régi perifériák egy része: az új gépben is kell a régi sín! Sínek szabványosítása. Egy gépen belül több sín is használható: 2.30. ábra.

46 Máté: Architektúrák4. előadás46 2.30. ábra. Egy tipikus modern PC PCI, SCSI és ISA sínnel Hálózati vezérlő SCSI sín Memóriasín SCSI- szkenner SCSI- lemez SCSI- vezérlő Video vezérlő PCI-híd CPU Gyorsító tár Központi memória Nyomtató vezérlő HangkártyaISA-hídModem PCI sín ISA sín

47 Máté: Architektúrák4. előadás47 Sokszorozott (multiplexed) sín: pl. először a cím van a sínen, majd az adat (ugyanazokon a vezetékeken). Ilyenkor a sín szélesség lényegesen csökken (olcsóbb, kevesebb láb szükséges a sínhez való csatlakozáshoz), csökken a sáv szélesség is, de nem olyan mértékben. Általában bonyolultabb a sín protokoll.

48 Máté: Architektúrák4. előadás48 Sínek időzítése Szinkron sín: 5 – 100 MHz-es órajel van a sín egy vezetékén. Minden síntevékenység az órajelhez van igazítva. Síntevékenységek: cím megadása, vezérlőjelek (MREQ#, RD#, WAIT#), adat megérkezése, … (3.38. ábra) JelölésTevékenységminmaxidő T AD Cím megérkezési ideje a sínre11ns T ML Cím a sínen van MREC# előtt6ns ……………

49 Máté: Architektúrák4. előadás49 adat A kiolvasandó rekesz címe T AD T ML T 1 T 2 T 3 Olvasási ciklus 1 várakozó állapottal A memóriából történő olvasás ideje Φ cím adat MREQ# RD# WAIT# Kicsit hosszabb válasz idő esetén még egy várakozó ciklusra lenne szükség.

50 Máté: Architektúrák4. előadás50 Minden sínművelet a ciklusidő (sín ciklus) egész számú többszöröséig tart: pl. 2.1 ciklusidő helyett 3 ciklusidő kell. A leglassabb eszközhöz kell a sín sebességét igazítani, a gyors eszköz is lassan fog működni.

51 Máté: Architektúrák4. előadás51 Aszinkron sín: Minden eseményt egy előző esemény okoz! Nincs órajel, WAIT. MSYN# (kérés - Master SYNchronization), SSYN# (kész - Slave SYNchronization). Ugyanazon a sínen gyors és lassú mester - szolga pár is lehet.

52 Máté: Architektúrák4. előadás52 Aszinkron sín működése (3.39. ábra) Akkor indulhat újabb tranzakció, ha SSYN# negált. adat A kiolvasandó rekesz címe cím MREQ# RD# MSYN# adat SSYN# Ugyanazon a sínen gyors és lassú mester - szolga pár is lehet.

53 Máté: Architektúrák4. előadás53 Teljes kézfogás (full handshake): Akkor indulhat, ha SSYN# negált! Mester: kívánságok beállítása, majd MSYN#, vár, Szolga: látja MSYN#-t: dolgozik, majd SSYN#, vár, Mester: látja SSYN# -t (kész), dolgozik, ha kell, majd negálja MSYN# -t, Szolga: látja MSYN# negálását, negálja SSYN# -t. Ugyanazon a sínen gyors és lassú mester - szolga pár is lehet.

54 Máté: Architektúrák4. előadás54 Sínütemezés (kiosztás) Ha egyszerre többen is igénylik a sínt (CPU, I/O vezérlő), akkor a sínütemező (bus arbiter) dönt. Általában I/O elsőbbséget kap (cikluslopás).

55 Máté: Architektúrák4. előadás55 Sínütemezés (kiosztás – bus arbitration) Centralizált (3.40. (a) ábra): (margaréta) láncolás (daisy chaining), egy vagy többszintű lehet. Ha van kérés és a sín szabad: sín foglalási engedély.

56 Máté: Architektúrák4. előadás56 Néha további vezeték van az engedély fogadásának jelzésére (újabb sín kérés kezdődhet a sín használata közben).

57 Máté: Architektúrák4. előadás57 decentralizált - pl. 16 prioritású: 16 eszközhöz 16 kérés vonal, minden eszköz minden kérés vonalat figyel, tudja, hogy a saját kérése volt-e a legmagasabb prioritású. - 3.41. ábra: ha nem foglalt és be, akkor kérheti a sínt (ki negálása, foglalt beállítása).

58 Máté: Architektúrák4. előadás58 Sín műveletek Az eddigiek közönséges sín műveletek voltak. Blokkos átvitel (3.42. ábra): A kezdő memória címen kívül az adat sínre kell tenni a mozgatandó adatok számát. Esetleges várakozó ciklusok után ciklusonként egy adat mozgatása történik. Megszakítás kezelés: később tárgyaljuk részletesen. Több processzoros rendszerekben: olvasás – módosítás – visszaírás ciklus: szemafor.

59 Máté: Architektúrák4. előadás59 Példák sínekre Az első IBM PC (3.37. ábra) 62 vonalas (vezeték, line), 20 címnek, 8 adatnak + DMA, megszakítás … PC/AT szinkron sín (3.51. ábra): további 36 vezeték (címnek összesen 24, adatnak 16, … ). Microchannel (IBM OS/2 gépekhez), szabadalmak ISA (Industry Standard Architecture) lényegében 8.33 MHz-es PC/AT sín (sávszélesség: 16.7 MB/s). EISA (Extended ISA) 32 bitesre bővített ISA (sávszélesség: 33.3 MB/s). Színes TV-hez 135 MB/s sávszélesség kellene (1024*768 pixel, 3 bájt*2, 30 kép/sec). lemez  memória  képernyő

60 Máté: Architektúrák4. előadás60 PCI (Peripheral Component Interconnect): 32 bites adat átvitel (33,3 MHz, sávszélesség: 133 MB/s) szabadon felhasználható licensz. Multiplexelt cím- és adatkivezetések. Új változatai: 64 bites adat, 66 MHz, 528 MB/s. Problémák: a memóriához lassú, nem kompatíbilis az ISA bővítőkártyákkal. Megoldás (3.52. vagy 2.30. ábra): több sín Belső sín, PCI híd, PCI sín, ISA híd, ISA sín.

61 Máté: Architektúrák4. előadás61 PCI sín ütemezés (kiosztás): request, grant. PCI ütemező PCI eszköz REQ# GNT# PCI eszköz REQ# GNT# PCI eszköz REQ# GNT# PCI eszköz REQ# GNT# 3.54. ábra. A PCI sín centrális ütemezőt használ.

62 Máté: Architektúrák4. előadás62 Általános soros sín (USB) Igény: bármikor könnyen lehessen perifériát kapcsolni a géphez, ne kelljen szétszedni a gépet, újra boot- olni, ne kelljen áramellátásról gondoskodni, … Plug ’n Play (csatlakoztasd és működik) perifériák. Sokféle perifériát lehessen azonos módon csatlakoztatni, akár a gép működése közben, hardver ismeretek nélkül.

63 Máté: Architektúrák4. előadás63 USB (Universal Serial Bus - általános soros sín): Négy vezeték: adatok (2), tápfeszültség (1), föld (1). USB 1.01,5 Mbps (billentyűzet, egér,…) USB 1.112 Mbps (nyomtató, fényképezőgép,…) USB 2.0480 Mbps (DVD lejátszó,…) A központi elosztó (root hub) 1 ms-onként üzenetekkel (frame, 3.54. ábra) kommunikál az eszközökkel. A frissen csatlakoztatott eszköz címe 0. Ha a központi elosztó tudja fogadni az eszközt, akkor egyedi címet (1-127) ad neki (konfigurálja).

64 Máté: Architektúrák4. előadás64 Frame – keret Egy vagy több csomagból áll. Az egyes csomagok haladhatnak a központból az eszközök felé vagy fordítva. A haladási irány egy kereten belül is változhat. Az első csomag mindig SOF: Start Of Frame – keret kezdet, szinkronizálja az eszközöket.

65 Máté: Architektúrák4. előadás65 A keret lehet Control – vezérlő:  Eszköz konfigurálás,  Parancs,  Állapot lekérdezés. Isochronous – izoszinkron: valós idejű eszközök használják, pl. telefon. Hiba esetén nem kell ismételni az üzenetet. Bulk – csoportos: nagy tömegű adat átvitelére szolgál. Interrupt – megszakítás: Az USB nem támogatja a megszakítást, helyette pl. 50 ms-enként lekérdezhető az eszköz állapota.

66 Máté: Architektúrák4. előadás66 A csomag lehet Token – parancs (központ küldi az eszköznek):  SOF.  IN – be: adatokat kér az eszköztől. Az IN parancsban meg lehet adni, melyik eszköztől milyen adatokra van szükség.  OUT – ki: adatok fogadására kéri az eszközt.  SETUP – beállítás: konfigurálja az eszközt.

67 Máté: Architektúrák4. előadás67 A csomag lehet (folytatás) Data – adat: 64 bájt információ mozgatása akármelyik irányban. A Data csomag részei:  SYN: 8 bit szinkronizáció,  PID: a csomag típusa (8 bites),  PAYLOAD: hasznos adat,  CRC: Cyclic Redundancy Code – ciklikus redundancia kód (16 bit az adatátvitel helyességének ellenőrzésére). Handshake – kézfogás:  ACK: az előző adatcsomagot hibátlanul vettem,  NAK: CRC hibát észleltem,  STALL: kérem, várjon, el vagyok foglalva. Special – speciális.

68 Máté: Architektúrák4. előadás68 3.52. ábra. Egy korai Pentium rendszer architektúrája SCSIUSB Grafikus illesztő PCI-híd CPU Gyorsító tár Fő memória NyomtatóHangkártya ISA-híd Monitor PCI sín Memória sín ISA sín Másodlagos gyorsító tár EgérBillentyűzet Monitor Szabad PCI bővítő hely Szabad ISA bővítő helyek Gyorsító tár sín IDE diszk

69 Máté: Architektúrák4. előadás69 3.53. ábra. Egy modern Pentium 4 rendszer sín struktúrája PCI sín Pentium 4 CPU I D Csatoló lapka Fő memória Grafikus kártya Monitor ATAPI vezérlőUSB 2 SCSI Egér Billen- tyűzet Mágneslemez- egység DVD- meghajtó Memóriasín AGP sín Lokális sín 1. szintű gyorsítótárak 2. szintű gyorsítótár Szabad bővítőhely

70 Máté: Architektúrák4. előadás70 3.57. ábra. Egy tipikus PCI Express rendszer vázlata 2. szintű gyorsítótár CPU Csatoló lapka Memória Kapcsoló Grafika Mágnes- lemezek Hálózat USB 2 Egyéb Soros kapcsolatot biztosító csatorna párok Egy csatorna csak két vezeték PCI Express

71 Máté: Architektúrák4. előadás71 Hagyományos sínPCI Express Több leágazású sínKözpontosított kapcsoló Széles, párhuzamos sínKeskeny, közvetlen soros kapcsolat Bonyolult mester – szolga kapcsolatKicsi, csomagkapcsolt hálózat CRC kód: nagyobb megbízhatóság A csatlakozó kábel > 50 cm lehet Az eszköz kapcsoló is lehet Meleg csatlakoztatási lehetőség Kisebb csatlakozók: kisebb gép Nem kell nagy bővítőkártyával csatlakozni a sínhez A winchester a monitorba is kerülhet Egy csatorna hasznos sávszélessége minimum 2 Gbps, de bíznak benne, hogy hamarosan 10 Gbps

72 Máté: Architektúrák4. előadás72 3.58. ábra. A PCI Express protokollrendszer A csomagok formátuma Fejléc cím, magas/alacsony prioritás, … Seq# az üzenet sorszáma CRC ciklikus redundanciakód (Cyclic Redundancy Check) Ha a számított és kapott CRC megegyezik, akkor nyugtázza, különben újra kéri az adatot. Rétegek Szoftver TranzakciósFejlécHasznos adat KapcsolatiSeq#FejlécHasznos adatCRC FizikaiKeretSeq#FejlécHasznos adatCRCKeret

73 Máté: Architektúrák4. előadás73 Feladatok Milyen paraméter átadási módszereket ismer? Alakítsa át a skalárszorzat kiszámításának változatait, hogy előjeles/előjel nélküli bájt/word vektor elemeit összegezze (számítson arra, hogy az eredmény nem fér el egy bájton/word-ön)! Készítsen eljárást 2 jegyű előjeles/előjel nélküli szám decimálissá konvertálására és kiírására! Készítsen eljárást előjeles/előjel nélküli word decimálissá konvertálására és kiírására!

74 Máté: Architektúrák4. előadás74 Feladatok Eljárás hívás esetén mit jelent a C konvenció? Hogy történik a paraméter átadás C függvények esetén? Mi a lokális adat terület? Hogy alakíthatunk ki lokális adat területet? Mi a rekurzív, és mi a re-entrant eljárás? Készítsen rekurzív eljárást n! kiszámítására! Készítsen rekurzív eljárást a és b legnagyobb közös osztójának meghatározására (euklideszi algoritmus)!

75 Máté: Architektúrák4. előadás75 Feladatok Hol helyezkedhet el a gyorsítótár? Mi a lokalitási elv? Mit nevezünk találati aránynak? Mi a szerepe a találati aránynak? Mi a hiba arány? Hogy határozható meg az átlagos keresési idő? Mi a gyorsító sor? Mit nevezünk osztott gyorsítótárnak? Mit nevezünk egyesített gyorsítótárnak? Mik az osztott gyorsító tár előnyei?

76 Máté: Architektúrák4. előadás76 Feladatok Mit tartalmaz a direkt leképezésű gyorsító tár egy bejegyzése? Mi a TAG? Mire szolgál a valid (érvényes) jelzés? Hogy működik a direkt leképezésű gyorsító tár? Egy memória cella hány helyen lehet egy direkt leképezésű gyorsító tárban? Hogy dönthető el, hogy egy memória cella bent van-e egy direkt leképezésű gyorsító tárban? Milyen esetben nem hatékony egy direkt leképezésű gyorsító tár?

77 Máté: Architektúrák4. előadás77 Feladatok Milyen a halmazkezelésű gyorsító tár felépítése? Hogy működik a halmazkezelésű gyorsító tár? Mi a halmazkezelésű gyorsító tár előnye a direkt leképezésűvel szemben? Mi az LRU algoritmus? Milyen memóriába írási stratégiákat ismer gyorsító tár esetén? Mit nevezünk írás áteresztésnek (write through)? Mit nevezünk késleltetett írásnak (write deferred, write back)? Mit nevezünk írás allokálásnak (write allocation)?

78 Máté: Architektúrák4. előadás78 Feladatok Mit jelent a CPU rövidítés? Hogy tartja a kapcsolatot a CPU a környezetével? Milyen lábai vannak egy CPU-nak? Miért lényeges a cím és adat lábak száma? Hány cím adható meg k cím vezetéken? Mit nevezünk sínnek? Mit nevezünk sín vezérlésnek? Mit nevezünk sín ütemezésnek? Hogyan történik egy adat beolvasása a memóriából? Hogyan történik egy adat kiírása a memóriába?

79 Máté: Architektúrák4. előadás79 Feladatok Mi a sínprotokoll? Mi a mester, és mi a szolga? Mit nevezünk sín vezérlőnek/vevőnek/adó-vevőnek? Mi a sávszélesség? Mi a sín aszimmetria? Hogy növelhető egy sín sávszélessége? Miért nem növelhető szabadon a sín sávszélessége? Miért volt szükség a sínek szabványosítására? Mit jelent a sokszorozott (multiplexed) sín?

80 Máté: Architektúrák4. előadás80 Feladatok Milyen hatása van a sokszorozott sín használatának? Hogy működik a szinkron/aszinkron sín? Mire szolgál a mester/szolga szinkronizáció? Mi a teljes kézfogás? Milyen sín ütemezőket ismer? Hogy működik a centralizált sín ütemező? Hogy működik a decentralizált sín ütemező? Milyen sín műveleteket ismer? Miért előnyös a blokkos átvitel?

81 Máté: Architektúrák4. előadás81 Feladatok Milyen sínt ismer? Ismertesse az ISA sínt! Ismertesse az EISA sínt! Ismertesse az PCI sínt! Hogy használható több sín egy gépen belül? Miért volt fontos az ISA sín megtartása fejlettebb sín alkalmazása esetén? Hogy történik a PCI sín ütemezése? Miért használnak külön sínt a memória eléréséhez? Hogy illeszkedik a PCI sín a memória sínhez?

82 Máté: Architektúrák4. előadás82 Feladatok Milyen igények kielégítésére szolgál az általános soros sín (USB)? Milyen vezetékeket tartalmaz az USB sín, és miért? Miért kényelmes az USB sín használata? Mi a központi elosztó (root hub), és hogy működik? Mi történik eszköz USB porthoz csatlakoztatásakor? Mit jelent egy eszköz konfigurálása? Mi a keret (frame), és milyen kereteket ismer? Mi a csomag, és milyen csomagokat ismer? Milyen irányban haladhatnak a csomagok?

83 Máté: Architektúrák4. előadás83 Feladatok Mire szolgál a SOF csomag? Mire szolgál az IN/OUT csomag? Mire szolgál az ACK/NAK csomag? Mi a CRC? Mire szolgál a PCI Express? Hogy kapcsolódik a PCI Express a CPU-hoz? Hogy kapcsolódik a PCI Express az eszközökhöz? Milyen előnyei vannak a PCI Express-nek a sínnel szemben? Milyen rétegei vannak a PCI Express protokollnak?


Letölteni ppt "Máté: Architektúrák4. előadás1 ; B = A n-dik hatványa, ; A és n előjel nélküli byte, B word ; Feltétel: A n-1 –dik hatványa elfér AL –ben. movcl, n; a."

Hasonló előadás


Google Hirdetések