Ця стаття не містить . (червень 2014) |
Прями́й до́ступ до па́м'яті ( англ. Direct Memory Access, DMA) — режим обміну даними між пристроями або ж між пристроєм і основною пам'яттю без участі центрального процесора. У результаті швидкість передачі збільшується, тому що дані не пересилаються до центрального процесора і назад.
Крім того, дані пересилаються відразу пачками слів, адреси яких розташовані поспіль, що дозволяє використання так званого «Пакетного» (burst) режиму роботи шини: один цикл адреси та наступні за ним численні цикли даних.
Аналогічна оптимізація роботи ЦП з пам'яттю вкрай ускладнена.
В оригінальній архітектурі IBM PC (шина ISA) був можливий лише за наявності апаратного DMA-контролера (мікросхема Intel 8237).
DMA-контролер може отримувати доступ до системної шини незалежно від центрального процесора. Контролер містить кілька регістрів, доступних центральному процесору для читання і запису. Регістри контролера задають порт (який повинен бути використаний), напрям перенесення даних (читання / запис), одиницю переносу (побайтово / послівно), число байтів, яке слід перенести.
ЦП програмує контролер DMA, встановлюючи його регістри. Потім процесор дає команду пристрою (наприклад, диску) прочитати дані у внутрішній буфер. DMA-контролер починає роботу, посилаючи пристрою запит читання (при цьому пристрій навіть не знає, чи прийшов запит від процесора або від контролера DMA). Адреса пам'яті вже знаходиться на адресній шині, так що пристрій знає, куди слід переслати наступне слово зі свого внутрішнього буфера. Коли запис закінчено, пристрій посилає сигнал підтвердження контролеру DMA. Потім контролер збільшує використовувану адресу пам'яті і зменшує значення свого лічильника байтів. Після чого запит читання повторюється, поки значення лічильника не стане дорівнювати нулю. По завершенні циклу копіювання пристрій ініціює переривання процесора, що означає завершення перенесення даних.
Контролер може бути багатоканальним, здатним паралельно виконувати кілька операцій.
Захоплення шини (bus mastering)
У шинах Micro Channel Architecture (MCA), [en], а також PCI і її концептуальних похідних AGP і PCI-X, використовується інша реалізація DMA. Ці шини дозволяють будь-якому пристрою заявити про виникнення потреби до захоплення шини, така потреба задовольняється так званим [en] при першій можливості. Пристрій, який успішно здійснив захоплення шини, самостійно виставляє на шину сигнали адреси і керування та виконує протягом якогось часу ту ж провідну роль на шині, що і ЦП. Доступ ЦП до шини при цьому короткочасно блокується.
У такій реалізації DMA не існує DMA-контролера, а також номери входу DMA-контролера.
Деякі старі пристрої PCI, а саме, реалізації звукових карт сімейства Sound Blaster, використовували той же DMA-контролер 8237 з оригінальної архітектури IBM PC. Таке використання є, безумовно, застарілим для PCI, але підтримувалося з метою забезпечити повну сумісність за ПЗ і драйверам з версіями Sound Blaster для шини ISA.
Дана підтримка називається Distributed DMA (D-DMA) і реалізована апаратним чином як у пристрої, так і в логіці моста PCI-ISA, в якій на PCI-системах розміщена і логіка оригінального IBM PC DMA контролера 8237.
Реалізація включає в себе 2 запити: спочатку від пристрою мосту PCI-ISA, потім від мосту основної пам'яті.
Крім згаданих реалізацій Sound Blaster, практично ніякі пристрої PCI не використовують поняття «номер входу DMA-контролера», як і 8237 взагалі.
DMA і IDE / ATA, Ultra DMA
Когеренція кеш-пам'яті
DMA може призвести до проблем кешу, якщо процесор оснащений кеш-пам'яттю і є зовнішня пам'ять, доступ до якої може надаватися безпосередньо пристрою за допомогою DMA. Коли процесор звертається до даних X, розташованих в пам'яті, поточне значення зберігатиметься в кеші. Наступні операції з X будуть оновлювати в кеші копію X, але не версію X в зовнішній пам'яті, припускаючи, що запис в кеші. Якщо кеш не скидається в пам'ять перед наступним разом, коли пристрій намагається отримати доступ до X, то пристрій буде отримувати несвіже значення X.
Аналогічним чином, якщо пристрій записує нове значення в пам'ять, кешована копія Х не є дійсною, і процесор буде працювати з несвіжим значенням X.
Цікава інформація
- У саморобному 8-розрядному комп’ютері Радіо 86РК контролер ПДП (КР580ВТ57) виконував також функцію (регенерації динамічної пам'яті).
Примітки
Див. також
- ATA
- (Ввід/вивід)
- Атака сторонніми каналами
Джерела
- DMA Fundamentals on Various PC Platforms, from A. F. Harvey and Data Acquisition Division Staff NATIONAL INSTRUMENTS
- mmap() and DMA, from Linux Device Drivers, 2nd Edition, Alessandro Rubini &
- Memory Mapping and DMA, from Linux Device Drivers, 3rd Edition, , Alessandro Rubini,
- DMA and Interrupt Handling
- DMA Modes & Bus Mastering
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Cya stattya ne mistit posilan na dzherela Vi mozhete dopomogti polipshiti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Material bez dzherel mozhe buti piddano sumnivu ta vilucheno cherven 2014 Pryami j do stup do pa m yati angl Direct Memory Access DMA rezhim obminu danimi mizh pristroyami abo zh mizh pristroyem i osnovnoyu pam yattyu bez uchasti centralnogo procesora U rezultati shvidkist peredachi zbilshuyetsya tomu sho dani ne peresilayutsya do centralnogo procesora i nazad Krim togo dani peresilayutsya vidrazu pachkami sliv adresi yakih roztashovani pospil sho dozvolyaye vikoristannya tak zvanogo Paketnogo burst rezhimu roboti shini odin cikl adresi ta nastupni za nim chislenni cikli danih Analogichna optimizaciya roboti CP z pam yattyu vkraj uskladnena V originalnij arhitekturi IBM PC shina ISA buv mozhlivij lishe za nayavnosti aparatnogo DMA kontrolera mikroshema Intel 8237 DMA kontroler mozhe otrimuvati dostup do sistemnoyi shini nezalezhno vid centralnogo procesora Kontroler mistit kilka registriv dostupnih centralnomu procesoru dlya chitannya i zapisu Registri kontrolera zadayut port yakij povinen buti vikoristanij napryam perenesennya danih chitannya zapis odinicyu perenosu pobajtovo poslivno chislo bajtiv yake slid perenesti CP programuye kontroler DMA vstanovlyuyuchi jogo registri Potim procesor daye komandu pristroyu napriklad disku prochitati dani u vnutrishnij bufer DMA kontroler pochinaye robotu posilayuchi pristroyu zapit chitannya pri comu pristrij navit ne znaye chi prijshov zapit vid procesora abo vid kontrolera DMA Adresa pam yati vzhe znahoditsya na adresnij shini tak sho pristrij znaye kudi slid pereslati nastupne slovo zi svogo vnutrishnogo bufera Koli zapis zakincheno pristrij posilaye signal pidtverdzhennya kontroleru DMA Potim kontroler zbilshuye vikoristovuvanu adresu pam yati i zmenshuye znachennya svogo lichilnika bajtiv Pislya chogo zapit chitannya povtoryuyetsya poki znachennya lichilnika ne stane dorivnyuvati nulyu Po zavershenni ciklu kopiyuvannya pristrij iniciyuye pererivannya procesora sho oznachaye zavershennya perenesennya danih Kontroler mozhe buti bagatokanalnim zdatnim paralelno vikonuvati kilka operacij Zahoplennya shini bus mastering U shinah Micro Channel Architecture MCA en a takozh PCI i yiyi konceptualnih pohidnih AGP i PCI X vikoristovuyetsya insha realizaciya DMA Ci shini dozvolyayut bud yakomu pristroyu zayaviti pro viniknennya potrebi do zahoplennya shini taka potreba zadovolnyayetsya tak zvanim en pri pershij mozhlivosti Pristrij yakij uspishno zdijsniv zahoplennya shini samostijno vistavlyaye na shinu signali adresi i keruvannya ta vikonuye protyagom yakogos chasu tu zh providnu rol na shini sho i CP Dostup CP do shini pri comu korotkochasno blokuyetsya U takij realizaciyi DMA ne isnuye DMA kontrolera a takozh nomeri vhodu DMA kontrolera Deyaki stari pristroyi PCI a same realizaciyi zvukovih kart simejstva Sound Blaster vikoristovuvali toj zhe DMA kontroler 8237 z originalnoyi arhitekturi IBM PC Take vikoristannya ye bezumovno zastarilim dlya PCI ale pidtrimuvalosya z metoyu zabezpechiti povnu sumisnist za PZ i drajveram z versiyami Sound Blaster dlya shini ISA Dana pidtrimka nazivayetsya Distributed DMA D DMA i realizovana aparatnim chinom yak u pristroyi tak i v logici mosta PCI ISA v yakij na PCI sistemah rozmishena i logika originalnogo IBM PC DMA kontrolera 8237 Realizaciya vklyuchaye v sebe 2 zapiti spochatku vid pristroyu mostu PCI ISA potim vid mostu osnovnoyi pam yati Krim zgadanih realizacij Sound Blaster praktichno niyaki pristroyi PCI ne vikoristovuyut ponyattya nomer vhodu DMA kontrolera yak i 8237 vzagali DMA i IDE ATA Ultra DMADokladnishe UDMAKogerenciya kesh pam yatiNezbigannya danih u pam yati DMA mozhe prizvesti do problem keshu yaksho procesor osnashenij kesh pam yattyu i ye zovnishnya pam yat dostup do yakoyi mozhe nadavatisya bezposeredno pristroyu za dopomogoyu DMA Koli procesor zvertayetsya do danih X roztashovanih v pam yati potochne znachennya zberigatimetsya v keshi Nastupni operaciyi z X budut onovlyuvati v keshi kopiyu X ale ne versiyu X v zovnishnij pam yati pripuskayuchi sho zapis v keshi Yaksho kesh ne skidayetsya v pam yat pered nastupnim razom koli pristrij namagayetsya otrimati dostup do X to pristrij bude otrimuvati nesvizhe znachennya X Analogichnim chinom yaksho pristrij zapisuye nove znachennya v pam yat keshovana kopiya H ne ye dijsnoyu i procesor bude pracyuvati z nesvizhim znachennyam X Cikava informaciyaU samorobnomu 8 rozryadnomu komp yuteri Radio 86RK kontroler PDP KR580VT57 vikonuvav takozh funkciyu regeneraciyi dinamichnoyi pam yati PrimitkiDiv takozhATA Vvid vivid Ataka storonnimi kanalamiDzherelaDMA Fundamentals on Various PC Platforms from A F Harvey and Data Acquisition Division Staff NATIONAL INSTRUMENTS mmap and DMA from Linux Device Drivers 2nd Edition Alessandro Rubini amp Memory Mapping and DMA from Linux Device Drivers 3rd Edition Alessandro Rubini DMA and Interrupt Handling DMA Modes amp Bus Mastering