Bezpośredni dostęp do pamięci (DMA)

Dlaczego warto zaufać Techopedii

Co oznacza bezpośredni dostęp do pamięci?

Bezpośredni dostęp do pamięci (DMA) to metoda, która umożliwia urządzeniu wejścia/wyjścia (I/O) wysyłanie lub odbieranie danych bezpośrednio do lub z pamięci głównej z pominięciem procesora, co ma na celu przyspieszenie operacji na pamięci.

Proces ten jest zarządzany przez układ znany jako kontroler DMA (DMAC).

Techopedia wyjaśnia czym jest bezpośredni dostęp do pamięci (DMA)

Określona część pamięci służy do wysyłania danych bezpośrednio z urządzenia peryferyjnego do płyty głównej bez angażowania mikroprocesora, dzięki czemu proces ten nie zakłóca ogólnego działania komputera.

W starszych komputerach cztery kanały DMA miały numery 0, 1, 2 i 3. Jednak po wprowadzeniu 16-bitowej magistrali rozszerzającej Industry Standard Architecture (ISA) dodano kanały 5, 6 i 7.

ISA było standardem magistrali komputerowej dla komputerów kompatybilnych z IBM, umożliwiając urządzeniom inicjowanie transakcji (mastering magistrali) z większą prędkością.

Kontroler ISA DMA posiada 8 kanałów DMA, z których każdy powiązany jest z 16-bitowym adresem i rejestrami zliczającymi.

Od tego czasu ISA zostało zastąpione przez karty rozszerzeń AGP (accelerated graphics port) i PCI (peripheral component interconnect), które są znacznie szybsze. Każde DMA przesyła około 2 MB danych na sekundę.

Narzędzia zasobów systemowych komputera służą do komunikacji między sprzętem a oprogramowaniem i dzielą się na cztery rodzaje:

  • Adresy wejścia/wyjścia;
  • Adresy pamięci;
  • Żądania przerwań (IRQ);
  • Kanały bezpośredniego dostępu do pamięci (DMA).

Wszystkie cztery zasoby systemowe zależą od określonych linii na magistrali. Niektóre linie są używane dla IRQ, niektóre dla adresów (adresy I/O i adres pamięci), a niektóre dla kanałów DMA.

Kanały DMA służą do przesyłania danych między urządzeniem peryferyjnym a pamięcią systemową bez narażania procesora na przeciążenie pracą.

Bez kanałów DMA procesor kopiowałby każdy fragment danych za pomocą magistrali peryferyjnej z urządzenia I/O.

Byłoby to problematyczne, ponieważ korzystanie z magistrali peryferyjnej zajmuje CPU podczas procesu odczytu/zapisu i nie pozwala na wykonywanie innych zadań do czasu zakończenia operacji.

Dzięki DMA, CPU może przetwarzać inne polecenia podczas transferu danych.

Sam transfer najpierw jest inicjowany przez procesor. Blok danych może być przesyłany do i z pamięci przez DMAC na trzy sposoby:

  • W trybie burst magistrala systemowa jest zwalniana dopiero po zakończeniu transferu danych.
  • W trybie kradzieży cykli magistrala systemowa jest zwalniana na kilka cykli zegara podczas przesyłania danych między kanałem DMA a urządzeniem I/O, dzięki czemu CPU może wykonywać inne zadania. Po zakończeniu transferu danych CPU otrzymuje żądanie przerwania od kontrolera DMA.
  • W trybie przezroczystym DMAC może przejąć magistralę systemową tylko wtedy, gdy nie jest ona wymagana przez procesor.

Korzystanie z kontrolera DMA może jednak powodować problemy ze spójnością pamięci podręcznej.

Wynika to z faktu, że dane przechowywane w pamięci RAM, do których dostęp uzyskuje kontroler DMA, mogą nie być aktualizowane poprawnymi danymi z pamięci podręcznej, jeśli procesor korzysta z pamięci zewnętrznej.

Aby rozwiązać ten problem, można opróżnić linię pamięci podręcznej przed rozpoczęciem wychodzących transferów DMA lub wykonać unieważnienie pamięci podręcznej w przychodzących transferach DMA, gdy zewnętrzne zapisy są sygnalizowane do kontrolera pamięci podręcznej.

Powiazane hasła

Margaret Rouse
Technology expert
Margaret Rouse
ekspertka ds. technologii

Margaret jest nagradzaną technical writerką, nauczycielką i wykładowczynią. Jest znana z tego, że potrafi w prostych słowach pzybliżyć złożone pojęcia techniczne słuchaczom ze świata biznesu. Od dwudziestu lat jej definicje pojęć z dziedziny IT są publikowane przez Que w encyklopedii terminów technologicznych, a także cytowane w artykułach ukazujących się w New York Times, w magazynie Time, USA Today, ZDNet, a także w magazynach PC i Discovery. Margaret dołączyła do zespołu Techopedii w roku 2011. Margaret lubi pomagać znaleźć wspólny język specjalistom ze świata biznesu i IT. W swojej pracy, jak sama mówi, buduje mosty między tymi dwiema domenami, w ten…