SzA13. A közvetlen memória-hozzáférés (DMA) Flashcards

1
Q

Fogalma

A

Használata nagy tömegű adat esetén célszerű, ahol gyors perifériákat alkalmazunk. DMA használatával az átvitelt a processzor használata nélkül valósítjuk meg.
kép68

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Feltétele

A

• a vezérlő képes legyen memóriacímek generálására
• képes legyen adatátvitelre
• képes legyen buszfoglalásra (igénylés), vezérlésre (ez a busz arbitrálás tulajdonképpen)
Az adatátvitelt itt is a CPU kezdeményezi.
Előnye: megszakítások száma nagyságrendekkel csökken.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Megvalósítása

A

kép69

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Előkészítés: (ezek a lépések megegyeznek mind a blokkos, mind a cikluslopásos átvitel esetében)

A

A DMA vezérlő „felprogramozása”: programozott I/O-val átvisszük a processzorból a DMA vezérlőbe az adatátvitelhez szükséges információkat (mit, hová kell vinni): (felhelyezzük az adatokat az adatsínre (1.))
• a DC-be beírjuk az átvinni kívánt adategységek számát (2.)
• IOAR-be beírjuk az adat leendő memóriabeli kezdőcímét, (3.) továbbá:
o az egységet (byte, félszó, szó)
o ad átvitel irányát
o a periféria címét
o az átvitel jellegét blokkos vagy cikluslopásos módon
o a részvevő egységeket (mem. – mem. vagy I/O – I/O átvitel)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Működés blokkos (burst) átvitel esetén: (pl.: winchester esetén)

A
  • CPU felprogramozza a DMA vezérlőt (előkészítés fázisa) (1-3)
  • A DMA vezérlő DMA request jelzést küld a processzornak (kéri a rendszersín használati jogot) (4)
  • A processzor DMA acknowledge jelzéssel lemond a rendszersín használati jogról (5)
  • A DMA vezérlő a kapott adatok alapján a perifériáról beírja az első átvinni kívánt adatot az IODR-be (6)
  • A DMA vezérlő az IODR-ben lévő adatot a rendszersínen keresztül beírja az IOAR által meghatározott memóriacímre (7-9)
  • A DMA vezérlő dekrementálja a DC-ben tárolt értéket, és inkrementálja az IOAR-ben tárolt értéket (egy adategységgel növel – 1, 2, 4 byte) (10)
  • DMA ellenőrzi a DC tartalmát. Ha nem 0, vissza a (6)-ra, ha igen, megszakításkéréssel jelzi a CPU felé, hogy befejeződött egy blokk átvitele (pl.: 3200 byte lehet egy HDD esetén)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Cikluslopásos átvitel (cycle stealing)

A

Kevés, de gyors adatátvitele esetén használatos. (pl.: karakteres nyomtatók)
DMA vezérlő és CPU időosztásosan közösen használja a rendszerbuszt.
kép70
• Nincs értelmezve a címgenerálás
• Míg az utasítás-töréspontban a megszakítás feldolgozással a processzorra további munka várhat, addig a DMA töréspontban a DMA vezérlő a processzor helyett végezhet munkát
• Ez a processzor és a DMA vezérlő általi időosztásos rendszersín használat előnye
• Elve: utasítás feldolgozás felbontása pl.: a következő lépésekre: lehívás, dekódolás, operandusok lehívása, végrehajtás, visszaírás a memóriába (ezek látszanak az ábrán is rövidítve)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly