dma kontroler
Embed Size (px)
TRANSCRIPT
-
7/22/2019 DMA Kontroler
1/22
DMA(Direct Memory Access)KONTROLER
student:
Bojan Nastasijevi 9435
UNIVERZITET U NIUELEKTRONSKI FAKULTET
mentor:
prof. Mile K. Stojev
-
7/22/2019 DMA Kontroler
2/22
Globalna struktura raunara
-
7/22/2019 DMA Kontroler
3/22
Osnovne jedinice raunara
Centralni procesor predstavlja mozak raunara.Njegova funkcija je da izvrava program smeten umemoriji.
Memorijski sistem koristi se za uvanje programa ipodataka koji su potrebni procesoru.
U/I sistem predstavljaju svi U/Iuredjji koji su povezani
na CPU. U/I ureaji su deo maine koji mogu damemoriu informaciju itljivu od strane raunara,konvertuju ulaze okruenjau formu koju raunarmoeda zazume i konvertuju podatke na izlazu raunara u
formu koja je razumljiva okruenju.
-
7/22/2019 DMA Kontroler
4/22
Ulazno-izlazne tehnike za prenos
podataka
Programirani U/I prenos - U/I operacije su u
potpunosti kontrolisane od straneCPU-a.
Prekidni U/I prenos- CPU izda U/I komandu, zatimproduava da izvrava druge instrukcije, a prekidase od strane U/I interfejsa kada je interfejs spremanda primi ili preda podatke.
Direktni pristup memoriji (Direct Memory Access-DMA) - obezbediti mogunost da vri direktanprenos blokova informacije ka ili iz glavne memorijebez intervencije CPU-a.
-
7/22/2019 DMA Kontroler
5/22
Tokovi podataka kod DMA U/I prenosa
-
7/22/2019 DMA Kontroler
6/22
DMA kontroler
Kod DMA prenosa U/I ureaj se povezuje nasistem preko specijalnog interfejs kola koje sezove DMA kontroler. Sastavni delovi DMAkontrolera su:
IODR - ulazno/izlazni baferi podataka
IOAR -generator adresa
DC - brojaprenetih podataka CUD - upravljakajedinica
-
7/22/2019 DMA Kontroler
7/22
Tipina sekvenca dogaaja u toku
DMA prenosa
-
7/22/2019 DMA Kontroler
8/22
Tipovi DMA prenosa
Kraa ciklusa - DMA kontroler koristi sistemskumagistralu za vreme prenosa jednog bajta ili reci na
principu kraemagistralnih ciklusa mikroprocesoru. Normalni- DMA kontroler koristi sistemsku magistralu
u toku trajanja celokupnog vremena koje je potrebnoza prenos bloka podataka, a mikroprocesoru jezabranjen pristup na magistralu za taj duiperiod.
Transparentni - DMA kontroler koristi sistemskumagistralu samo za vreme onih taktnih intervala uokviru procesorskih ciklusa kada mikroprocesor nekoristi sistemsku magistralu.
-
7/22/2019 DMA Kontroler
9/22
Blok ema
DMAkontrolera
Za realizaciju DMA
kontrolera korienje programski paket
Active-HDL 6.3
DATA(31:0)
DACK(31:0) DMA_REQ
mem_r_w io_r_w DMA_ACK R_W
en
able
out1
in1
mem
buf1
en
able
out1
in1io
buf1
jedan( 15:0)
adresiranje_memorije(15:0)
in1out1
invertor1
inv
zahtev_za_DMA
pom c m em
pom c int er f ejs
in1out1
in2
U2
i_kolo
clk
DMA_ACK
ADR
R_W
ASK_p om StopDMA
DMA_REQ
zahtev_za_DMA
RW
U3
upravljanje
c lk pom
enable
out1(31:0)in1(31:0)
U5
buf
enable
out1(31:0) in1(31:0)
U6
buf
enable
out1(15:0)in1(15:0)
U7
buf_adr
enable
out1(15:0) in1(15:0)
U8
buf_adr
enable
out1(15:0) in1(15:0)
U9
buf_adr
CLK
Q(15:0)DATA(15:0)
Reset
U10
registar
A(15:0)
Q(15:0)
B(15:0)
U11
sabirac
CLK
Q(31:0)DATA(31:0)
LOAD
U1
brojac
I(31:0)O
U12
and32
br ojac 1( 31: 0)
CUD
IODR
IOAR
DC
-
7/22/2019 DMA Kontroler
10/22
Blok CUD
(upravljaka jedinica)
zaxtev_za_DMA predstavlja ulazni signal koji dolazi od periferije i predstavlja zahtevza prenos podataka,
DMA_REQ predstavlja izlazni signal koji je upuen procesoru kako bi se zaustavio
njegov rad i omoguiopristup magistrali podataka, DMA_ACKpredstavlja ulazni signal kojim procesor javlja DMA kontroleru da je prestaosa radom i da moeda ponasa prenosom podataka,
R_Wpredstavlja ulazni signal koji nam govori o tome dali se radi o prenosu pidatakasa periferije u memoriju ili iz memorije na periferiju,
mem_r_wpredstavlja izlazni signal koji se upuujememoriji i on joj javlja dali se vriitanjeiz nje ili upisivanje u nju,
io_r_wpredstavlja signal koji se upuujeperiferiji i on joj javlja dali se vriitanjesanje ili upisivanje na nju,
ADRpredstavlja signal koji se upuujeadresnom baferu kako bi se u njega upisalaadresa sa magistrale podataka,
R iW predstavljaju signale koji se upuuju trostatikim baferima i oni predstavljejudozvole za unos podatka
StopDMA predstavlja signal koji dolazi iz brojaa i on nosi informaciju ozavretkuprenosa
c lkclock
-
7/22/2019 DMA Kontroler
11/22
Blok IOAR
(generator adresa )
adresiranje_memori je ulaz-izlaz koji predstavlja
vezu DMA kontrolera sa magistralom podataka
ADR, DMA_ACK i zaxtev_za_DMA su ulazi preko
kojih je generator adrese povezan sa upravljakomjedinicom
Ovo je deo DMA kontrolera koji odreuje sa koje
adrese se itapodatak iz memorije ili na koju adresu seupisuje podatak u memoriju.
-
7/22/2019 DMA Kontroler
12/22
B lok IODR
(ulazno/izlazni baferi podataka)
Ri Wulazi preko kojih se vri kontrola bafera iz
upravljake jedinice DATA -ulaz-izlaz povezan sa memorijom
DACK-ulaz-izlaz povezan sa periferijom
Ovaj deo DMA kontrolera nam omoguava prenospodataka iz memorije na periferiju i obrnuto. Postoje dva
32-bitna bafera i u zavisnosti od smera prenosapodataka uvek je jedan zatvoren a jedan otvoren.
-
7/22/2019 DMA Kontroler
13/22
B lok DC
(broja prenetih podataka)
StopDMA izlaz koji nosi informaciju o zavretkuprenosa do upravljake jedinice
Ovaj deo DMA kontrolera uva broj rei koje trebajo preneti. DC se automatski dekrementira nakon
svake prenete rei a nakon toga njegov sadraj setestira za nulu. Kada sadraj registra DC dostignevrednost 0 DMA prenos se zaustavlja.
-
7/22/2019 DMA Kontroler
14/22
Osnovni elementi DMA kontrolera
-
7/22/2019 DMA Kontroler
15/22
Postupak programiranja DMA kontrolera u sluajukada se eli upisati neki podatak sa periferije u
memoriju
Korak 1.- zahtev_za_DMA - 0 (periferija jo nije uputila zahtev za prenos podataka),- DMA_ACK- 0 (procesor nije dao dozvolu DMA kohtroleru za prenos podataka),- R_W - 1 (vri se prenos podataka iz periferije u memoriju)- clk - postavlja se da okida 1
Pretisne se F5 i prati se ta se desilo na izlazima Korak 2.- zahtev_za_DMA - 1 (periferija je uputila zahtev za prenos podataka),- DMA_ACK -0 (procesor nije dao dozvolu DMA kohtroleru za prenos podataka),- adresiranje_memorije -unosi se 16-bitna adresa memorijske lokacije u koju e poeti upisivanje podataka- DATA - unosi se binaran broji koji kazuje koliko rei treba preneti
Pretisne se F5 i prati se ta se desilo na izlazima Korak 3.
- DMA_ACK- 1 (procesor nije dao dozvolu DMA kohtroleru za prenos podataka),- adresiranje_memorije - iskljuuje se- DATA -unosi se 32-bitni broj koji predstavlja podatak koji se prenosi
Pretisne se F5 i prati se ta se desilo na izlazima Korak 4.- DATA -unosi se 32-bitni broj koji predstavlja podatak koji se prenosi u datom koraku
Pretisne se F5 i prati se ta se desilo na izlazima
Korak 4. se ponavlje sve dok brojane doena 0 kada se prenos prekida i preko DMA_REQ sealjeinformacija procesoru da je prenos zavrsen.
-
7/22/2019 DMA Kontroler
16/22
Primer di jagram stanja DMA kontro lera za
sluaj prenosa podatka sa periferije u
memor i ju
-
7/22/2019 DMA Kontroler
17/22
Postupak programiranja DMA kontrolera u sluajukada se eli upisati neki podatak iz memorije na
periferiju
Korak 1.- zahtev_za_DMA - 0 (periferija jo nije uputila zahtev za prenos podataka),- DMA_ACK- 0 (procesor nije dao dozvolu DMA kohtroleru za prenos podataka),- R_W - 0 (vri se prenos podataka iz memorije u periferiju)
- clk - postavlja se da okida 1Pretisne se F5 i prati se ta se desilo na izlazima Korak 2.- zahtev_za_DMA - 1 (periferija je uputila zahtev za prenos podataka),- DMA_ACK -0 (procesor nije dao dozvolu DMA kohtroleru za prenos podataka),- adresiranje_memorije -unosi se 16-bitna adresa memorijske lokacije sa koje e poeti itanje podataka- DATA - unosi se binaran broji koji kazuje koliko rei treba preneti
Pretisne se F5 i prati se ta se desilo na izlazima Korak 3.
- DMA_ACK- 1 (procesor nije dao dozvolu DMA kohtroleru za prenos podataka),- adresiranje_memorije - iskljuuje se- DATA - iskljuuje se jer se tu sad prenosi podatak sa DACK-DACK- unosi se 32-bitni broj koji predstavlja podatak koji se prenosi
Pretisne se F5 i prati se ta se desilo na izlazima Korak 4.- DACK -unosi se 32-bitni broj koji predstavlja podatak koji se prenosi u datom koraku
Pretisne se F5 i prati se ta se desilo na izlazima
Korak 4. se ponavlje sve dok brojane doena 0 kada se prenos prekida i preko DMA_REQ sealjeinformacija procesoru da je prenos zavrsen.
-
7/22/2019 DMA Kontroler
18/22
Primer d i jagram stanja DMA kontro lera za
sluaj prenosa podatka iz memorije naperiferi ju
-
7/22/2019 DMA Kontroler
19/22
Implementacija DMA kontrolera unutar
ipa 2v80fg256 iz familije Xil inx6x VIRTEX2
ema veze u FPGA ipuZauzetost pinova elija u FPGA ipu
-
7/22/2019 DMA Kontroler
20/22
Unutranja iskorienost i zauzetost
elija u FPGA ipu
-
7/22/2019 DMA Kontroler
21/22
Rezultati testiranja rada ipa
Iz izvetaja, koji su dostupni nakon imlementacije, moemo dazakljuimoda najveevreme kanjenjamoeda bude 8.774 ns
---------------+-----------------------+---------+
Source Pad |Destination Pad | Delay |
---------------+-----------------------+---------+
DMA_ACK |DATA | 8.774|
-
7/22/2019 DMA Kontroler
22/22
Laboratorijska vebaZadatak: Proveriti ispravnost DMA kontrolera testirajui tanost prenosa podataka.
Posmatrati dijagrame stanja za sluaj kada se radi o prenosu podataka iz memorijeraunarana periferne ureajei kada se radi o prenosu podataka sa periferije u memoriju ipopuniti datu tabelu.