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

DMA adatátvitel.

Hasonló előadás


Az előadások a következő témára: "DMA adatátvitel."— Előadás másolata:

1 DMA adatátvitel

2 DMA adatátvitel A DMA közvetlen adatátvitelt eredményez a memória és az I/O készülék között, a CPU igénybevétele nélkül. A periféria közvetlen memória-hozzáféréssel rendelkezik Cél: a közvetlen vezérléssel nagysebességű adatátvitel elérése

3 DMA (Direct Memory Access)
Közvetlen kapcsolat a memóriával. Sok esetben az adatokat egy ellenőrző- vagy port-kártya (CD-ROM Interface, merevlemez ellenőrző, I/O-kártya) szállítja el a számítógép memóriájának egy meghatározott helyére. Normál esetben ezt a feladatot a számítógép főprocesszora látja el. Azért, hogy kevésbé legyen terhelt a processzor, és hogy az adatközvetítés gyorsabb legyen, néhány ilyen kártya a DMA-eljárást használja: miközben a főprocesszor egy teljesen más feladattal van elfoglalva, ez az eljárás közvetlenül hozzákapcsolódik a RAM-hoz, és a kívánt címen tárolja az adatokat. E feladat elvégzéséhez a kártyának meg kell adni azt a lehetőséget, hogy csak ő kapcsolódhasson hozzá a számítógépen kijelölt DMA-csatornához.

4 DMA sematikus ábra

5 DMA adatátvitel A CPU, az I/O készülékek és a memória közös buszon osztozkodnak. A CPU és az I/O készülékek azonos ciklusban nem férhetnek hozzá a memóriához A DMA végezhet memória-memória, vagy I/O-I/O adatátvitelt is.

6 DMA adatátvitel folyamata

7 DMA adatátviteli eljárások
CPU leállítás (CPU halt): a DMA kérésére a CPU leáll, és lekapcsolódik a buszról a DMA adatátvitel tartama alatt. CPU működésének lassítása! Memória időszelet: a memória ciklus két időtartamra oszlik. Az egyik a CPU-é, a másik a DMA-é. Ez a módszer nagy CPU végrehajtási és nagy DMA adatátviteli sebességet eredményez. CPU és DMA memória-hozzáférés minden ciklusban van. (Nagy sebességű memóriát igényel)

8 DMA adatátvitel processzor leállításával

9 DMA adatátviteli eljárások
Ciklus lopás: kompromisszum a CPU halt és a memória időszelet között, ami átlapoláshoz vezet a CPU program végrehajtása és a DMA adatátvitele között. Ha a CPU-nak és a DMA-nak azonos időben lenne szüksége memóriára, a DMA-nak prioritása van a CPU-val szemben. A CPU működését lassítja, de nem állítja le.

10 DMA által használt regiszterek
Címregiszter: azokat a memória-rekesz címeket tárolja, amelyek a következő írási/olvasási műveletekhez szükséges információkat, adatokat tárolják. Számláló regiszter: a szavakat számlálja Állapot regiszter: tartalma meghatározza az adatáramlás irányát, vagyis a hardware üzemmódját. A CPU szempontjából nézve ezek a regiszterek úgy kezelhetők, mint az I/O portok, vagy a címezhető memória rekeszek.

11 címregiszter 0080 Számláló-regiszter 007F 003 Állapot-regiszter Az ábráról leolvasható a szószám, vagyis, hogy az adatbuffer 7F16 byte hosszú és a külső eszközről érkező adat a memóriarekeszbe kerül tárolásra.

12 Állapot-regiszter 7 6 5 4 3 2 1 0 Bit szám
0 = Adatbemenet külső eszközről Nem használt 1 = Adatkimenet külső eszközre 1 = DMA logika aktív 0 = DMA logika inaktív

13 DMA művelet kezdeményezésekor a következő program-lépéseket kell végrehajtani
Be kell tölteni az induló cím alacsonyabb helyértékű felét a DMA címregiszterébe Be kell tölteni az induló cím magasabb helyértékű felét a DMA címregiszterébe Be kell tölteni a szószámra vonatkozó adatokat a DMA számláló regiszterébe Be kell tölteni egy vezérlő-kódot (pl:0316) a DMA állapotregiszterébe. A vezérlő-kód megállapítja az adatátvitel irányát és annak megfelelően állítja be a DMA-t

14 A DMA rendelkezik olvasás és írás vezérlő vonalakkal
A DMA rendelkezik olvasás és írás vezérlő vonalakkal. WRITE vezérlés hatására a DMA adatokat ír be a RAM-ba, READ vezérlés hatására pedig adatokat olvas ki a RAM vagy ROM memóriából. A DMA adatátvitel irányát az állapot-regiszter tartalmának átírásával változtatjuk meg. Ha az állapot-regiszter 1-es bithelyére 0 kerül, akkor a végrehajtás alatt lévő művelet leáll.

15 DMA művelet végrehajtása
A DMA vezérlő egy adatszót fogad az I/O interface-től és kéri a rendszerbusz használatát a DMA átvitelhez Amint megkapta a buszt, kiküldi a memória-rekesz címét és az adatszót A memória kész jel vételekor a DMA vezérlő megvizsgálja a szószámot Ha a szószám ≠ 0-val, akkor : a számláló-regiszter tartalmát 1-gyel csökkenti, A címregiszter tartalmát pedig 1-gyel növeli így a perifériából memóriába egy újabb adatszó átvitele megy végbe Ha a szószámláló = 0, akkor a DMA befejezi az adatátvitelt és közli a CPU-val, hogy az adatátvitel kész.

16 READ művelet időzítése
órajel DMAREQ INHIBIT CPU 0 A0-A15 DMACK DMARW D0-D7 WRITE DMA Óra ciklus

17 Események sorrendje Amikor a DMA érzékeli a logikai 1-et, a DMA REQ vonalon az INHIBIT jel logikai 0 lesz. Az INHIBIT logikai 0 marad, amíg a második logikai 1-be menő óraimpulzus meg nem jelenik Egy óraciklus ideig a CPU műveletek szünetelnek, mert az INHIBIT a CPU órajel vonalat logikai 0-n tartja. Ilyenkor a CPU nagy ellenállással kapcsolódik a cím és az adatbuszokra, vagyis gyakorlatilag lekapcsolja magát a buszról. Ha az INHIBIT 0, akkor a címregiszter tartalma megjelenik a buszregiszter címvonalon. A DMA eszköz a DMAC logikai 1 szintre helyezésével nyugtázza a DMA kérést A DMA állapotregiszter tartalma határozza meg a DMARW vezérlő vonal beállítását (0-külső eszközről kell adatot vinni a buszrendszer adatvonalaira) Az állapotregiszter 0 bithelye határozza meg a WRITE vezérlővonal beállítását. A címvonalon lévő címet minden RAM interface dekódolja és a címnek megfelelően kerül kiválasztásra a megcímzett RAM. Amikor a WRITE vezérlőjel logikai1, az adat a megcímzett memóriarekeszbe kerül.

18 DMA vezérlő funkciók Címvonal vezérlés Adatátviteli vezérlés
Cím tárolás Szószám-tárolás Üzemmód-vezérlés

19 Címvonal vezérlés A DMA rendszerben a memória-címbuszt vagy a CPU, vagy a DMA hajtja meg attól függően, hogy az adott ciklusban a memóriát melyik eszköz használja. A DMA ciklusban a DMA vezérlőnek a kívánt DMA művelet elvégzéséhez szükséges címet kell a címbuszra adni.

20 Adatátviteli vezérlés
A DMA vezérlőnek a memória és az I/O készülék közötti közvetlen adatátvitelhez –megfelelő időzítéssel- vezérlőjeleket kell szolgáltatni. Ezek a vezérlőjelek csak a DMA ciklusban kapcsolódnak a vezérlő-buszra.

21 Cím-tárolás A DMA vezérlő címregisztere tartalmazza a következő írásra vagy olvasására kerülő szó címét. Ezt minden szó-átvitelénél inkrementálni vagy dekrementálni kell.

22 Szószám-tárolás A DMA adatátvitel indításakor a CPU betölti a DMA vezérlő számláló-regiszterébe az átvitelre kerülő szavak számát. A DMA adatátvitel alatt a DMA vezérlő számlálja az átvitt szavakat és a megadott számú szó átvitele után befejezi az adatátvitelt.

23 DMA vezérlés Elosztott DMA: mindegyik I/O készülékben van egy DMA vezérlő Centralizált DMA: Egyetlen DMA szolgál az összes I/O készülék vezérlésére. DMA adatátvitel indításakor a CPU előírja: az üzemmódot, a kezdő memória-címet az átviendő szavak számát az átvitel irányát

24

25 Repeatitive DMA Néhány alkalmazásnál igény a DMA adatátvitel többszöri ismétlése a CPU beavatkozása nélkül. Ez a ~ A funkció megvalósításához 2 regiszter kell. Az egyik tárolja kezdőcímet A másik az induló szószámot Így lehetővé válik, hogy a DMA vezérlő automatikusan újra induljon a CPU beavatkozása nélkül.

26 Multiplex DMA/CPU A nagy sebességű DMA adatátvitel mellett lehetővé teszi a nagysebességű CPU működést is. A leggyorsabb DMA működés a CPU megállításával jön létre Multiplex esetben 20%-kal csökken, de CPU leállás helyett tovább dolgozik Hátrány: jobb hardware igény. (nagysebességű RAM, két háromállapotú és kétirányú buszmeghajtó szükséges)

27

28 Gyakorlati példa Zuhanyzó vízhőmérsékletének szabályozása
Hideg-meleg víz keverékének hőmérsékletét mérjük Feladat: a mért hőmérséklet összehasonlítása az előre megadott kívánt hőmérséklettel, a különbségtől függően szabályozza a melegvíz hozzáadás mennyiségét. A beállítást szabályozó program neve: „BEALLIT”

29 I/O portra küldött jel nem jó, adatvesztés
Program: START memória 0400 Memória címek BEALLIT 073E Program END A hőmérséklet érzékelőtől belépő adatok befolyásolják a szabályozásban résztvevő eszközök működését. Megszakítási program „MEGSZAKIT” I/O portra küldött jel nem jó, adatvesztés

30 Hogyan tudja meg a mikroszámítógép, hogy új hőmérsékleti adat szerint kell szabályozni?
Program: memória „MEGSZAKIT” program elhelyezi az adatot az adatbufferbe adat START MEGSZAKIT END START BEALLIT END A BEALLIT program kiolvashatja az adatbufferből

31 Programmegszakítás lépései
A hőmérséklet érzékelő átviszi a külső buszrendszer vezérlővonalain lévő megszakítás jelet (IREQ- Interrupt REQuest) a mikroszámítógépbe A mikroszámítógép „dönti el”, hogy fogadja, vagy visszautasítja a megszakítás kérést. Ha fogadja, akkor a külső buszrendszer vezérlő vonalain keresztül jelzi azzal, hogy kiküld egy megszakítás nyugtázó IACK (Interrupt AC Knowlendge) jelet A hőmérséklet érzékelő az IACK jelet engedélyező jelként értelmezi

32 Megszakítás Megszakítás-kérés BEALLIT Végrehajtás folytatása
D végrehajtás BEALLIT végrehajtás C B MEGSZAKIT A hőmérésklet-érzékelő megváltozott adata a mikroszámítógépbe kerül

33 Mit kell megőrizni? Az éppen futó program fontos információi az:
Állapotjelzőben (status flag) Adatszámlálóban (DC) Akkumulátorban(A) vannak, amelyeket az új program „kisepri”. Az információ megőrzéséről, beleértve a programszámláló (PC) tartalmát is ,a megszakítás program indítása előtt gondoskodni kell. A megszakítás program befejeztével, a megőrzött programszámláló (PC) érték annak az utasításnak a címe, amelyik éppen végrehajtás alatt volt a megszakításkor.

34 Megszakítás-cím vektor
A CPU annak a programnak kapja meg a címét, amelynek a végrehajtását a megszakítás-logikával előírjuk. Ez a cím megszakítás-cím vektor. Jelentősége, ha több program kér megszakítást.

35 Időzítés kérdése Az egyes hőmérsékleti adatok továbbítása a számítógép felé nem egyenletes időközönként történik a rendszer aszinkron módon bekövetkező eseményeket érzékel. Ha a bevitel idejét megszabtuk volna, akkor az adatok egy részét elveszítenénk. bejut elvész M M B M M B t(idő)

36 Megszakítás utasítás-sorozat lépései
A CPU-ban folyik a „beállít” program végrehajtása Megszakítás-kérés érzékelésekor a CPU a program megszakításával kapcsolatos teendőket végzi pl: regiszterek tartalmának megőrzése, megszakítás nyugtázása A CPU-ban megkezdődik a „Megszakít” program végrehajtása „Megszakít” program befejezése 1. lépésbeli állapot visszaállítása „Beállít” program folytatása Egy megszakítási utasítás sorozat min. 50µs-ig tart! IDŐVESZTESÉG! RAM külső eszköz

37 Emlékeztető: A programozott IO hátrányai
az IO átvitel sebessége attól függ, hogy a CPU milyen gyorsan tudja az IO eszközt vizsgálni és kiszolgálni... a CPU (feleslegesen) sok időt „veszít” az az eszköz állapotának a vizsgálatával és az adatátvitellel... ha több (vizsgálandó) eszköz van... az adat a CPU-n halad keresztül, ahelyett hogy közvetlenül a memóriába jutna...

38 Szabványok Hasznos link: http://dmoz.org/Computers/Hardware/Buses/
Sín vagy buszrendszer Szabványok Hasznos link:

39 Mi a busz? A busz a számítógép-architektúrákban a számítógép olyan, jól definiált része, alrendszere, amely: lehetővé teszi adatok vagy tápfeszültségek továbbítását a számítógépen belül vagy számítógépek, illetve a számítógép és a perifériák között. Eltérően a pont-pont kapcsolattól, a busz logikailag összekapcsol több perifériát ugyanazt a vezetékrendszert használva. Minden buszhoz számos csatlakozó tartozik, amelyek lehetővé teszik a kártyák, egységek vagy kábelek elektromos csatlakoztatását.

40

41 Történet: Első generációs buszrendszer
A korai számítógép buszok huzalkötegek voltak, amelyek összekötötték a memóriákat és a perifériákat. Ezeket a huzalkötegeket nevezték később elektromos buszoknak vagy buszvonalaknak. Majdnem mindig volt egy memória busz és egy periféria busz, és mivel ezek eltérő funkciókat valósítottak meg, ezért különböző utasítások, teljesen más időzítések, és protokollok tartoztak hozzájuk.

42 CPU vezérelt „mindent”
A kommunikációt a CPU vezérelte, a periféria vezérlők felé az adatok írása és olvasása előre meghatározott memóriaterületeken keresztül történt (legtöbb esetben), a központi órajeleknek megfelelő sebesség mellett. A külső egységek a CPU egy csatlakozójára adott jellel jelezték, hogy kiszolgálási igényük van, amihez általában valamilyen megszakítás (interrupt) is hozzá volt rendelve.

43 Megszakítások Kidolgozták a perifériák megszakítási rendszerét, amely biztosította a CPU által végzett művelet megszakítását. A megszakításokat prioritási csoportokba rendezték, mivel a CPU egyszerre csak egy feladatot tudott végrehajtani, így az időkritikus perifériális műveletek kapták a legmagasabb prioritást. A megszakításhoz rendelt program végrehajtása utána CPU visszatért a következő, alacsonyabb szintű megszakítási programhoz, vagy ha az nem volt, a főprogram végrehajtásához.

44 Problémák Gyors CPU – lassú perifériavezérlő
Gyakorlatilag minden művelethez a CPU-t igénybe kellett venni (más feladatok végzésére már esetleg foglalt volt), tehát a CPU valódi áteresztőképessége drasztikusan leesett. Néhény busz rendszer konfigurálása nagyon bonyolulttá vált, ha minden "polcról levett" berendezéssel együtt kellett működnie. ( alaplapokon és a csatolókártyákon lévő kisméretű kapcsolók (jumper) megjelenése, amelyek megfelelő helyre dugásával a memória címek, az I/O címek, megszakítási címek és prioritások bizonyos határok között, de megváltoztathatók voltak.)

45

46 "Második generációs" busz rendszerek
NuBus Ezek a buszok mereven két részre osztották a "világot": az egyikbe a CPU és a memória tartozott, a másikba pedig a számos vezérlőegység, a két világ közötti kapcsolatot a busz vezérlő (bus controller) biztosította. Ez a megoldás megengedte a CPU sebességének növelését anélkül, hogy buszra hatással lett volna. a terhelést a CPU-ról a csatolókártyák felé mozdította

47 Jobb teljesítmény 8 bites párhuzamos buszok
16 bites, majd a 32 bites adatutak (szoftver segítségével történő konfigurálás, most ezt szabványosították, mint Plug-n-play)- a manuális jumper dugdosás kiváltására

48 Előnyök a buszon lévő egységek azonos sebességgel kommunikálnak egymással. a CPU és memória függetlenné vált az egyéb berendezésektől (a CPU és memória sebességét addig lehetett emelni, amíg a technikai lehetőségek azt lehetővé tették )

49 Probléma az adat ki-bevitel továbbra is szűk keresztmetszetet jelent
videó kártyák PCI buszok már nem elég gyorsak, AGP buszok nagyteljesítményű (high-end) videó kártyák már az új PCI Express buszokat igénylik.

50 A PCI (Peripheral Component Interconnect) sínrendszer
Intel – 1991 ISA buszrendszer kiegészítésre 'patchelésére‘tervezték 'PCI bridge’ felelős a CPU és a PCI perifériák közötti forgalom bonyolításáért Speciális pufferrel rendelkezik, melynek segítségével a CPU a transzfer befejezése előtt már más feladattal foglalkozhat A puffer és a perifériák közötti tényleges adatátvitelt a CPU helyett a PCI bridge vezérli.

51 AGP(Accelerated Graphics Port )
Intel – 1997 Gyorsított grafikus port AGP (1x): 66MHz , 8 bytes/clock, 266MB/s [3.3V or 1.5V signal swing ] AGP 2x: 133MHz, 8 bytes/clock, 533MB/s [3.3V or 1.5V signal swing] AGP 4x: 266MHz clock, 16 bytes/clock, 1066MB/s [1.5V signal swing] AGP 8x: 533MHz clock, 32 bytes/clock, Bandwidth: 2.1GB/s [0.8V signal swing],

52

53 USB (Universal Serial Bus)
teljeskörűen Plug and Play (korábban dipswitch, jumper, szoftver) összes modern operációs rendszer támogatja azonos felépítésű, akár PC akár Mac Osztható - USB hubok (Minden USB bővítőkártyán van egy integrált ún. root hub (gyökérhub). Erre csatlakoztathatunk USB eszközöket, vagy akár egy külső hubot) USB 1.0 (1,5 Mbit/sec) vagy 1.1 (12 Mbit/sec) USB 2.0 van (480 Mbit/sec)

54 USB eszközök Pendrive USB Merevlemez Fényképezőgép Nyomtató
Hangeszközök, pl. hangkártya Egér Billentyűzet Ethernet hálókártya WLAN hálókártya Gamepad Tunerkártya (TV-nézéshez, video-digitalizáláshoz) Soros-, párhuzamos- és infra-port Webkamera, és még sok más egyéb eszköz

55 Összehasonlító adatok
TÍPUS SÁVSZÉLESSÉG ÓRAJEL SEBESSÉG ISA 16 bit 8MHz 5 MB/s(8MB/s) PCI 32 bit 33MHz 132 MB/s Dupla PCI 64 bit 66MHz 264 MB/s AGP(2) 66MHz(2/3) 266MB/s PCI Express 2,5 Gbit/s USB 480 Mbit/s FireWire 400 400 Mbit/s

56 Külső eszközök kommunikációja
perifériák - saját buszok használata SCSI IDE (nem foglaltak minden diszk egységhez egy-egy busz csatlakozót) Új szemlélet: Helyi busz (belső busz) Külső busz

57 Harmadik generációs buszok
HyperTransport InfiniBand Ezek a buszok rendelkeznek azzal a tulajdonsággal, hogy a képesek nagysebességű kommunikációra a CPU, memória, videó kártyák irányába, de ugyanakkor a sokkal lassabb perifériákkal (lemezegység) is együtt tudnak működni. Kezelésük már inkább szoftveres megoldásokat igényel, mint hardveres beavatkozásokat.

58 Megvalósítások párhuzamos buszok (parallel) soros buszok (serial)
amelyek egy időben általában egy szót visznek át a vezetékeken soros buszok (serial) amelyek bit-soros formában továbbítják az adatokat. USB, FireWire, Serial ATA

59

60 Példák belső számítógép buszokra (párhozamos)
CAMAC nukleáis mérőrendszerekhez Extended ISA vagy EISA Industry Standard Architecture vagy ISA NuBus vagy IEEE 1196 Peripheral Component Interconnect vagy PCI VESA Local Bus vagy VLB vagy VL-bus (videókártyákra)

61 Példák belső számítógép buszokra (soros)
HyperTransport I2C PCI Express or PCIe Serial Peripheral Interface Bus vagy SPI bus

62 Példák külső számítógép buszokra Párhuzamos
Advanced Technology Attachment vagy ATA (megfelel a PATA, az IDE, az EIDE, az ATAPI stb. megnevezéseknek) lemez/szalag priféria csatolásához kialakított busz (az eredeti ATA párhuzamos, de létezik a soros ATA vagy Serial ATA busz is, lásd később) Centronics párhuzamos (általában egy berendezés csatolására, esetleg láncban 2 egységre) PCMCIA, úgy is ismert, mint a PC kártya, leggyakrabban a hordozható és laptop gépekben használják, de egyre inkább háttérbe szorul a USB és beépített hálózati és modem kapcsolódási lehetőségek miatt. SCSI Small Computer System Interface, lemez/szalag egység csatlakoztatására szolgáló busz

63 Példák külső számítógép buszokra soros
IEEE 1394 (FireWire) RS-485 Serial ATA or SATA Serial Storage Architecture (SSA) Universal Serial Bus (USB)

64 A sínrendszer felépítése
címsín, amely az eszközök címzését szolgálja, azok címét továbbítja rajta a processzor, szélessége 32 (esetleg 64) bitnek megfelelően ugyanennyi vezeték; adatsín, amelyen keresztül a továbbítandó adatot küldi, vagy fogadja a processzor. Az adatsín szélessége többnyire 32 (vagy 64) bit, illetve ugyanennyi vezeték; vezérlősín, amelynek vezetékeit a processzor a vezérlőjelek kiküldésére, vagy azok fogadására használja fel. A vezérlőjelek száma változó, általában körül van minimálisan.

65 Sínfoglalás (buszfoglalás – bus arbitration)
Az adatátvitelek lebonyolításához egy időben több aktív eszköz (master) is igényelheti a busz használatát. Ilyenkor valamilyen eljárással el kell dönteni, hogy melyik eszköz kapja meg először a buszhasználat jogát. A buszhasználat jogának eldöntésére szolgáló folyamatot nevezik buszfoglalásnak, busz arbitrációnak (bus arbitration).

66 párhuzamos kiszolgálási mód
alkalmazásakor minden eszköz önálló buszkérő és buszengedélyező vezetékkel rendelkezik. A beérkező igényeket a vezérlő logika sorolja, dekódolja és a legmagasabb prioritású eszköz számára engedélyezi a busz használatát.

67 Soros kiszolgálási mód
alkalmazásakor az eszközök sorba vannak kötve és a lánc mentén az elhelyezkedésük szabja meg, hogy mikor kaphatják meg a sín használatát. Amelyik eszköz a legközelebb van a vezérlőhöz, annak a prioritása a legmagasabb

68 Mindkét esetben a jogosultság megállapítása történhet:
centralizált módon, amely esetben egy központi prioritásvezérlő logika szabja meg a hozzáférés sorrendjét decentralizált módon, amely esetben a priorizáló logika elosztott formában valósul meg, az egyes eszközök vezérlői által


Letölteni ppt "DMA adatátvitel."

Hasonló előadás


Google Hirdetések