KWALIFIKACJA ELM2 + ELM5 - CZERWIEC 2009

PYTANIE NR 7.
Stosowany w mikrokomputerze układ DMA umożliwia
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
DMA (Direct Memory Access) umożliwia transfer danych między urządzeniem a pamięcią RAM bez ciągłego udziału CPU w każdej operacji odczytu/zapisu. Procesor zwykle tylko konfiguruje transfer (adresy, rozmiar, tryb), a sam przesył realizuje kontroler DMA, co odciąża CPU i zwiększa wydajność I/O.

Pełne wyjaśnienie:

DMA (Direct Memory Access – bezpośredni dostęp do pamięci) to mechanizm sprzętowy pozwalający na wykonywanie transferów danych pomiędzy pamięcią RAM a układami wejścia/wyjścia (lub czasem między obszarami pamięci) z minimalnym udziałem procesora.

W praktyce CPU nie musi kopiować danych instrukcja po instrukcji (np. pętlą odczyt-zapis). Zamiast tego zwykle:

  • ustawia parametry transferu (źródło, cel, liczba bajtów/słów, tryb),
  • uruchamia DMA,
  • a następnie może wykonywać inne zadania, czekając na przerwanie lub flagę zakończenia.

Dlatego odpowiedź "korzystanie z pamięci RAM z pominięciem CPU" oddaje sens DMA: przesył danych odbywa się bez bieżącej obsługi przez CPU w każdym cyklu transferu (choć CPU zazwyczaj nadal inicjuje i nadzoruje operację).

Pozostałe odpowiedzi nie opisują funkcji DMA:

  • "wykonywanie podwójnych rozkazów" nie jest cechą DMA; DMA nie dotyczy wykonywania instrukcji procesora, tylko transferu danych.
  • "podwojenie częstotliwości zegara systemowego" to kwestia generatora zegara/PLL i konfiguracji taktowania, niezwiązana z kontrolerem DMA.
  • "zatrzymywanie CPU w dowolnym momencie" może kojarzyć się z arbitrażem magistrali lub sygnałami wstrzymania, ale nie jest główną funkcją DMA w ujęciu egzaminacyjnym; DMA służy do sprawnego przesyłu danych, a nie do "dowolnego" zatrzymywania procesora.

Wskazówka egzaminacyjna: jeśli w odpowiedzi widzisz sformułowania typu "transfer danych bez angażowania CPU" lub "bezpośredni dostęp do RAM", to najczęściej opisują właśnie DMA.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
DMA (Direct Memory Access) to mechanizm umożliwiający transfer danych między pamięcią RAM a układem wejścia/wyjścia bez tego, aby CPU musiał kopiować każde słowo instrukcjami programu. CPU zwykle tylko konfiguruje parametry transferu, a kontroler DMA realizuje przesył.
Najczęściej: 1) CPU ustawia źródło i cel transferu, rozmiar oraz tryb, 2) uruchamia DMA, 3) DMA przejmuje dostęp do magistrali i przenosi dane, 4) po zakończeniu zgłasza przerwanie lub flagę. Dzięki temu CPU może wykonywać inne zadania.
Bez DMA procesor musi wykonywać wiele instrukcji kopiowania (odczyt z peryferium, zapis do RAM i odwrotnie). DMA wykonuje te transfery sprzętowo, więc CPU nie traci czasu na obsługę każdego bajtu/słowa. W efekcie rośnie wydajność i zmniejsza się liczba przerwań.
Nie w pełni. CPU zwykle inicjalizuje transfer (ustawia rejestry DMA i uruchamia zadanie), a po zakończeniu odbiera informację o wyniku. "Ominięcie CPU" dotyczy głównie samego przesyłania danych, które nie wymaga wykonywania instrukcji kopiujących przez procesor.
DMA bywa używane do szybkiej obsługi peryferiów: ADC (buforowanie próbek), UART/SPI/I2C (transfer bloków danych), DAC (odtwarzanie przebiegów), a także do przenoszenia danych w pamięci. Sprawdza się szczególnie przy strumieniach danych i większych blokach.
Nie. Zegar systemowy zależy od generatora, PLL i konfiguracji taktowania. DMA wpływa na sposób transferu danych i obciążenie CPU, ale nie "podkręca" częstotliwości. Na egzaminie odpowiedzi o zmianie zegara zwykle są dystraktorami niezwiązanymi z DMA.
Przerwania informują CPU, że zaszło zdarzenie i CPU wykonuje obsługę (często także kopiuje dane). DMA przenosi dane sprzętowo, a CPU może dostać przerwanie dopiero po zakończeniu transferu lub po zapełnieniu bufora. DMA zwykle lepiej sprawdza się przy dużych ilościach danych.
Przy bardzo krótkich transferach narzut konfiguracji DMA może być porównywalny z ręcznym kopiowaniem przez CPU. Korzyści są największe dla transferów blokowych, cyklicznych lub strumieniowych. W praktyce decyzja zależy od architektury i wymagań czasowych aplikacji.
W wielu systemach DMA może realizować także transfer pamięć–pamięć (np. kopiowanie bloków w RAM), o ile przewiduje to dany kontroler. Nadal jest to transfer wykonywany sprzętowo, co zmniejsza liczbę instrukcji wykonywanych przez CPU i może poprawić deterministykę pracy programu.
Częsty błąd to kojarzenie DMA z "podwajaniem" (instrukcji lub zegara) zamiast z transferem danych. Inny błąd to traktowanie DMA jako funkcji zatrzymywania CPU. Warto pamiętać: DMA dotyczy przede wszystkim przenoszenia danych z minimalnym udziałem procesora.
info

To pytanie poprawnie rozwiązuje 46% zdających egzamin. trudne

Według specjalistów z branży: "DMA (Direct Memory Access) umożliwia transfer danych między urządzeniem a pamięcią RAM bez ciągłego udziału CPU w każdej operacji odczytu/zapisu."

Źródła:

  • Intel, "8237A High Performance Programmable DMA Controller", datasheet/product specification (opis idei DMA i trybów pracy kontrolera)
  • ARM, "AMBA AXI and ACE Protocol Specification", sections dotyczące transferów i mechanizmów dostępu do pamięci przez masterów innych niż CPU (kontekst DMA w nowoczesnych SoC)
  • D. A. Patterson, J. L. Hennessy, "Computer Organization and Design", rozdziały o I/O oraz mechanizmach DMA (omówienie roli DMA i odciążenia CPU)

Materiały:

  • Podręcznik z architektury komputerów (rozdziały o I/O i DMA)
  • Dokumentacja techniczna mikrokontrolera/SoC (rozdział "DMA controller")
  • Noty katalogowe klasycznych kontrolerów DMA (dla zrozumienia idei i sygnałów magistrali)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego