Přidání poznámek z POT k řadiči DMA
This commit is contained in:
parent
3106d9001b
commit
ca4cf3a179
1 changed files with 68 additions and 0 deletions
68
KIV POT/13. Řadič DMA.md
Normal file
68
KIV POT/13. Řadič DMA.md
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
# Řízení IO přenosů řadičem DMA
|
||||||
|
|
||||||
|
**Koncepce DMA**
|
||||||
|
- při vstupu nebo výstupu dat se opakují jednoduché činnosti
|
||||||
|
- jednotlivé kroky je možné realizovat speciálním HW
|
||||||
|
- CPU - řadič DMA - řadič IO
|
||||||
|
|
||||||
|
**Průběh DMA přenosu**
|
||||||
|
- IO řadič indikuje požadavek na přenos dat signálem DRQ (Data Request)
|
||||||
|
- DMA řadič žádá CPU o uvolnění sběrnice signálem BREQ (Bus Request)
|
||||||
|
- CPU indikuje uvolnění sběrnice signálem BUSACK (Bus Acknowledge)
|
||||||
|
- DMA řadič požaduje přenos dat do/z IO siználem DACK (DMA Acknowledge)
|
||||||
|
- čtení/zápis dat z/do paměti se řídí obvyklmi signály na sběrnici
|
||||||
|
- po přenesení celého bloku může DMA řadič generovat přerušení
|
||||||
|
- indikaci konce přenosu
|
||||||
|
|
||||||
|
**Přenos DMA**
|
||||||
|
1. datový registr IO řadiče je plný
|
||||||
|
2. IO řadič generuje DRQ
|
||||||
|
3. DMA řadič generuje BREQ
|
||||||
|
4. procesor dokončí probíhající sběrnicový cyklus a odpojí se od sběrnice
|
||||||
|
- aktivuje BUSACK
|
||||||
|
5. DMA řadič aktivuje DACK a na sběrnici vysílá adresu a povel k zápisu
|
||||||
|
6. IO řadič vysílá na datovou sběrnici obsah datového registru
|
||||||
|
7. IO řadič zruší DRQ
|
||||||
|
8. DMA řadič zruší BREQ a DACK a přestane vysílat adresu a povel k zápisu
|
||||||
|
- registr adresy se inkrementuje, registr délky se dekrementuje
|
||||||
|
9. CPU zruší BUSACK
|
||||||
|
10. CPU se připojí ke sběrnici
|
||||||
|
11. po přenesení celého bloku generuje DMA řadič přerušení
|
||||||
|
|
||||||
|
**DMA řadič se dvěma cykly**
|
||||||
|
- jednodušší návrh IO řadiče
|
||||||
|
- univerzální použití (přenosy paměť -> paměť)
|
||||||
|
- funkce
|
||||||
|
1. čtení ze zdroje dat do interního datového registru
|
||||||
|
2. zápis dat z interního datového registru do cíle
|
||||||
|
|
||||||
|
**Charakteristika DMA přenosu**
|
||||||
|
- velmi rychlý přenos dat (nejrychlejší způsob přenosu)
|
||||||
|
- vhodný pro blokové přenosy
|
||||||
|
- vyžaduje speciální HW prostředky
|
||||||
|
- komplikovaný provoz na sběrnici
|
||||||
|
|
||||||
|
**Sdílení sběrnice**
|
||||||
|
- dva způsoby sdílení sběrnice mezi CPU a DMA
|
||||||
|
1. DMA uvolňuje sběrnici po každém přenosu (cycle stealing)
|
||||||
|
- procesor není trvale blokován, pomalejší přiřazení DMA řadiči
|
||||||
|
2. DMA drží obsazenou sběrnici po celou dobu přenosu (burst mode)
|
||||||
|
- procesor blokován po celou dobu přenosu, nejrychlejší DMA přenos
|
||||||
|
|
||||||
|
**Připojení mastera**
|
||||||
|
- adresní a datové vodiče a signály /RD a /HWR připojeny na sdílenou sbernici pomocí třístavových budičů
|
||||||
|
- ty jsou v aktivním nebo HiZ stavu (= master čeká na stav sběrnice WAIT)
|
||||||
|
|
||||||
|
**Decentralizovaný arbiter**
|
||||||
|
- každý master ovládá jeden arbitrační vodič, současně sleduje aktivitu
|
||||||
|
ostatních vodičů a porovnává prioritu aktivních vodičů se svou prioritou
|
||||||
|
|
||||||
|
„Bus Fairness“: vítězný master si pamatuje, že zablokoval přístup na sběrnici jinému masteru (s nižší prioritou) a příště mu dá ve stejné situaci přednost
|
||||||
|
|
||||||
|
**Složitější architektura**
|
||||||
|
- každý procesor může používat nezávislou lokální sběrnici a lokální paměť
|
||||||
|
- pro sdílená data je určena sdílená paměť přístupná všem procesorům
|
||||||
|
- adresní prostor systému s lokální a sdílenou pamětí
|
||||||
|
- obě paměti ve stejném adresním prostoru
|
||||||
|
- každá z pamětí pokrývá jiný rozsah adres
|
||||||
|
- při adresování sdílené paměti žádá adaptér bus-bus o přístup na sdílenou sběrnici
|
Loading…
Reference in a new issue