DMA Kontroler

download DMA Kontroler

of 22

Transcript of DMA Kontroler

  • 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.