DMA - Zasady i tryby pracy

DMA (Direct Memory Access) służy do tego, aby odciążyć procesor z operacji na pamięci w przypadku, gdy chodzi tylko o przesyłanie z jednego urządzenia do drugiego. Przykładowo, gdy chcemy z pamięci wysłać coś przez modem, procesor musiałby pobrać te dane z pamięci i wysłać do modemu. DMA robi to za niego, dzięki czemu procesor może zająć się w tym momencie czymś innym.

DMA nie jest w stanie samodzielnie ,,myśleć'', czyli jeśli trzeba wykonać na danych dodatkowe operacje, to musi już zająć się tym procesor. DMA tylko sobie spokojnie czeka na dane, a gdy dostanie zlecenie (musi mieć określone źródło i cel transmisji, samodzielnie DMA nie jest w stanie nic wymyślić), to bierze się do roboty.

Warto zauważyć, że DMA konkuruje z procesorem o magistralę (co jest zrozumiałe, bo musi jakąś drogą te dane przesłać i pobrać), jednak upomina się o nią tylko, gdy dostanie zadanie do wykonania.

Tryby pracy

Wyróżniamy następujące tryby pracy:

Blokowy - DMA dostaje zlecenie na przesłanie danych, to je przesyła. Wszystkie na raz. W związku z tym procesor nie ma dostępu do magistrali, więc musi siedzieć cicho i czekać, aż wszystko się prześle. Oczywiście, może sobie coś niecoś obliczać samodzielnie w tym czasie, ale bez dostępu do urządzeń zewnętrznych zwykle niewiele może zrobić. Za to transmisja w tym czasie jest najszybsza.

Wykradanie taktów - Procesor ustala, kiedy DMA może wysyłać dane, a kiedy nie. Dzięki temu może on korzystać z magistrali wtedy, kiedy tylko potrzebuje, ale DMA musi dłużej czekać.

Zgodnie z zapotrzebowaniem - Ustalane jest na początku to, ile danych DMA może na raz przesłać, i kiedy magistrala jest wolna, to DMA sobie przesyła. Po przesłaniu danej porcji (czyli bloku), jeśli procesor nie zażąda dostępu do magistrali, to przesyłany jest następny blok.

 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki