22979

Прямий доступ до пам’яті (ПДП)

Лекция

Коммуникация, связь, радиоэлектроника и цифровые приборы

Контролер ПДП Забезпечити роботу в режимі захоплення шин можна за допомогою логічних схем та тригерів саме так це зроблено наприклад у Мікролабі але зручніше скористатися спеціальною ВІС контролером прямого доступу до памяті КПДП. Працює КПДП в двох сильно відмінних один від одного режимах: в режимі програмування коли мікропроцесор закладає в нього необхідні інструкції і в режимі обміну даними між зовнішнім пристроєм і ОЗП. Схематичне зображення ІМС КПДП типу КР580ВТ57 подано на рис. В режимі програмування вони...

Украинкский

2013-08-04

3.8 MB

1 чел.

Лекція № 10

Прямий доступ до памяті (ПДП)

 При роботі з ЕОМ або мікропроцесорними системами часто виникає потреба швидко розмістити в операційній памяті великі масиви даних або швидко перенести їх з памяті до зовнішніх пристроїв. Темп такого обміну даним може бути дуже великим. Так наприклад, при обміні з накопичувачем на магнітних дисках темп, що ним задається, становить порядку кількох байтів за мікросекунду. Високі швидкості обміну задаються також сучасними АЦП, що обробляють дані про швидкоплинні процеси. Так наприклад, паралельний АЦП типу К1107ПВ1 має цикл перетворення тривалістю в 100 нс, а К1107ПВ3А навіть 20 нс.

Шлях обміну даним по ланцюжку “зовнішній пристрій - ППА  мікропроцесор - память” (або в зворотному напрямку) виявляється надто повільним, оскільки акт обміну байтом виконується за кілька машинних циклів, котрі звичайно мають тривалість у кілька мікросекунд. Тому в подібних ситуаціях доцільно використовувати метод прямого доступу до памяті .

Принцип прямого доступу до памяті (ПДП) 

При прямому доступу до памяті керування шинами вилучається спід контролю мікропроцесора і передається спеціальній ІМС, котра і організовує “прямий контакт” зовнішнього пристрою з памяттю, обминаючи мікропроцесор.  На час такого обміну виконання мікропроцесором фонової програми припиняється і він мов-би “завмирає”.

Перехід до режиму ПДП ініціюється сигналом запиту з боку зовнішнього пристрою на “захоплення шин”. Сигнал запиту потрапляє на вхід МП “HOLD“- “Запит на захоплення шин”. У кожному машинному циклі МП перевіряє чи не зявився такий сигнал і якщо він поступив, то по закінченню машинного циклу МП перериває свою роботу, припиняє виконання фонової програми і переводить свої виводи ШД і ША у високоімпедансний стан, відключаючись тим від цих шин. Далі МП виставляє на своєму виході HLDA сигнал високого рівня (“Підтвердження на захоплення шин”), дозволяючи зовнішньому пристрою користуватися шинами для ПДП.

Одержавши право на захоплення шин, зовнішній пристрій використовує системні шини для безпосереднього обміну з памятю, подібно до того, як це звичайно робить мікропроцесор. По закінченню обміну по ПДП зовнішній пристрій виставляє сигнал HOLD = 0 і МП знову одержує можливість нормально працювати і користуватись шинами.

Контролер ПДП

Забезпечити роботу в режимі захоплення шин можна за допомогою логічних схем та тригерів (саме так це зроблено, наприклад, у “Мікролабі”), але зручніше скористатися спеціальною ВІС - контролером прямого доступу до памяті (КПДП). У мікропроцесорному комплекті К580 це ІМС типу КР580ВТ57, або у міжнародних позначеннях 8257. Вона здатна керувати прямим доступом до памяті чотирьох зовнішніх пристроїв. Якщо треба більше, то слід скористатися касадуванням. Слід підкреслити, що контролер ПДП лише керує роботою шин - самі передавані дані через нього не проходять, а ідуть прямо по шині даних, до якої підключені тепер безпосередньо як ЗП, так і оперативна память.

Працює КПДП в двох сильно відмінних один від одного режимах: в режимі програмування, коли мікропроцесор “закладає” в нього необхідні інструкції, і в режимі обміну даними між зовнішнім пристроєм і ОЗП. Схематичне зображення ІМС КПДП типу КР580ВТ57 подано на рис.10.1.

Тут  D0 - D7 - входи/виходи даних. В режимі програмування вони використовуються для введення програми роботи КПДП; в режимі обміну даними виводи D0 - D7 служать виходами  для видачі старших бітів  адреси (А15 - А8) комірок памяті ОЗП.  Через виводи А7 - А0  видаються молодші біти адреси шістнадцятирозрядної адреси ОЗП.. В режимі програмування А3 - А0 служать як входи для вибору і програмування  каналів обміну; А7 - А4 відключені.

 - вибір мікросхеми; активізується нулем при програмуванні контролера. Підключається до ША ( до розрядів А7 - А4) через дешифратор. В режимі обміну  відключено.

 та  в режимі програмування вказують на напрямок руху даних ( = 0 - запис програми до КПДП;   = 0 -  читання слова стану з КПДП). В режимі обміну вони вказують зовнішньому пристрою, що той має робити:  = 0 - сприймати дані;  = 0 - видавати дані.

,  - сигнали для керування ОЗП:  = 0 - запис до ОЗП;   = 0 - читання з ОЗП.

 DRQ N ( N від 0 до 3) - вхід для сигналу запиту на захоплення шин, що надходить від N - того зовнішнього пристрою.

 HRQ - сигнал запиту на захоплення шин, що його надсилає КПДП на вхід HOLD мікропроцесора.

HLDA - згода на захоплення шин (надходить від мікропроцесора).

      CLK - вхід для тактових імпульсів (надходить від F2 ).

      RESET - скидання. Після зняття сигналу RESET = 1 контролер готовий для сприймання програмування.

     READY - підтвердження готовності від зовнішнього пристрою або ОЗП.

     N - підтвердження запиту на прямий доступ до памяті, що його надсилає КПДП до N - того зовнішнього пристрою. N = 0 дозволяє N-тому  ЗП здійснювати обмін.

    ADSTB та AEN - службові сигнали; їх зміст ми розглянемо трохи згодом.

         MARС та TC - сигнали що інформують про наближення до кінця обміну та кінець обміну. ( MARK - попередження, що до кінця обміну лишається кількість циклів кратне до 128 10 ).

Табл.10.1.

Призначення виводів КПДП типу КР580ВТ57

    N виводів

Позна-

чення

          В режимі

       програмування

      В режимі обміну

Примітки

21  -  23

26  -  30

D7 - D0

Підключені до ШД  МП.

Сприймають керуючі слова

або виводять слово стану.

Підключені через буферний

регістр до ША. Видають          старший  байт адреси

           А15 - А8.

32  -  35

37  -  40

А3  -  А0

А7  -  А4

Служать для вибору каналів.

Відключені від ША.

Видають молодший байт

    адреси А7  -  А0.

   11

  

= 0 дозволяє програму-

   вання від МП по ШД.

     Підключений через     дешифратор  до А7  -  А4.

     Відключений.

    1

 

 При  = 0 МП читає

         слово стану

По  = 0 відбувається

  читання з зовн. пристрою.

ЗП ОЗП

    4

      Відключений 

По = 0 відбувається

        запис у память

“----------“

     2

 

  При   = 0  КПДП

 сприймає керуюче слово

             віл МП.

По   = 0 відбувається

       запис у память

ОЗП ЗП

     3

 

      Відключений

По =0 відбувається

читання з памяті за адресами  що їх вилає        КПДП

“----------“

 

В режим програмування

КПДП входить після зняття

сигналу RESET=1 і встанов-

        лення = 0

Після програмування КПДП

  знаходиться у холостому

режимі . В режим обміну

входить за сигналом HLDA=1від мікропроцесора.

Режим програмування КПДП

Підготування до програмування КПДП полягає в подачі на вхід RESET сигналу високого рівня тривалістю не менш 0.3 мкс.  Тоді входи , ,

А3 - А0 і  переходять у стан сприймання інформації і контролер настроюється на режим програмування.

При програмуванні мікропроцесор визначає, які з чотирьох каналів  звязку з ЗП діятимуть, і з якими пріоритетами, а також повідомляє контролеру таку інформацію:1

- початкову адресу ОЗП тої області памяті куди записуватимуться дані або з якої вони будуть зчитуватися;

- обєм масиву, що підлягає обміну;

- напрямок обміну (з зовнішнього пристрою в память або навпаки).

Усі ці дані закладаються до КПДП за допомогою трьох керуючих слів, для кожного з каналів окремо. По закінченню сприймання керуючих слів контролер переходить у холостий стан і готовий здійснювати керування обміном як тільки від одного з ЗП надійде запит на захоплення шин.

Для перевірки стану контролера мікропроцесор має змогу запитати слово стану контролера.

Робота в режимі обміну

 Після того як КПДП запрограмований, він перебуває у холостому стані і очікує надходження запиту на захоплення шин. Як тільки такий запит надійде від будь-якого зовнішнього пристрою ( напр. DRQ N = 1, тобто від N - того ЗП), контролер виробляє запит на захоплення шин HRQ і надсилає його до мікропроцесора. Той зупиняє свою роботу і відповідає сигналом згоди HLDA. Контролер пересилає сигнал згоди ( N = 0)  N - тому зовнішньому пристрою, котрий надсилав запит, і той приступає до обміну.

Рис 10.2

Трохи раніше за сигнал   контролер виставляє адресу вказаної в програмі першої комірки памяті. Молодший байт адреси надходить до ОЗП з виходів А7 - А0 звичайним шляхом по шині адреси. Що ж до старшого байту, то він видається з виходів D7 - D0 і потрапляє на ШД. Щоб вивести його на ША використовується буферний регістр - фіксатор (напр. КР580ИР82) . Старший байт адреси надходить по ШД на його інформаційні входи і записується по адресному стробу ADSTB що його виставляє КПДП. Сигналом AEN  записана адреса виводиться на інформаційні виходи регістра - фіксатора і по лініях А15 - А8 подається на ОЗП.2  . Одночасно  сигналом AEN  блокується системний контролер (по його входу ), щоб той не заважав роботі КПДП.

Одночасно з формуванням адреси контролером виробляються сигнали  і   (при запису з зовнішнього пристрою з память) або  і  ( при запису з памяті у зовнішній  пристрій). Якщо ОЗП і ЗП готові до обміну (READY = 1), то відбувається обмін одним байтом . Обмін іде поза мікропроцесором і КПДП, безпосередньо по шині даних, до якої підключені як ОЗП, так і ЗП. Цим забезпечується швидкість обміну.

 По закінченню обміну байтом лічильник адреси комірки памяті інкрементується, а вміст лічильника кількості актів обміну декрементується, і акт обміну байтом повторюється . Коли вміст лічильника КПДП стає рівним нулю, видається сигнал закінчення обміну ( ТС = 1) і робота КПДП припиняється.

Наступний запит на захоплення шин відновлює процес обміну за тією ж програмою, котра була закладена в контролер при його попередньому програмуванні. Якщо ж бажано щось змінити в програмі, то КПДП слід програмувати знову.

Програмування КПДП

Щоб розпочати програмування  слід подати і зняти сигнал RESET = 1 і подати   = 0. Після цього КПДП входить у режим програмування. При програмуванні керуючими словами  має бути надіслана до КПДП така інформація (окремо для кожного каналу):

     - початкова адреса масиву в ОЗП;

- обєм масиву;

- напрямок передачі;

- пріоритети обслуговування каналів ;

    - і ще деяка службова інформація.

Для цього КПДП програмується трьома однобайтовими керуючими словами: словом початкової адреси, словом обєму масиву і словом режиму.

 Початкова адреса масиву являє собою 16 - розрядне число. Воно передається по частинам; спочатку молодший байт, потім старший. Запис адреси масиву відбувається за адресою відповідного каналу КПДП. Старші розряди цієї адреси  А7 - А4 фіксовані ( ними КПДП активізується через дешифратор), молодші задані для відповідного каналу в першій частині табл.10.2. Так наприклад, для каналу з нульовим номером К0  запис адреси масиву проводиться за адресою А3 - А0 = 0000; для  К1    А3 - А0 = 0010.

 Приклад:   Нехай старший напівбайт адреси КПДП  А7 - А4 = 1111. Треба записати в канал К0  початкову адресу масиву 0415Н. Програма матиме такий вигляд:

                        MVI A, 15     -молодший байт адреси масиву

                            OUT F0     - адреса першого керуючого слова К0

                        MVI A, 04     - старший  байт адреси масиву

                          OUT F0   - адреса першого керуючого слова К0

 

 Обєм масиву   може складати до 16 кбайт. Тому його розмір описується 14 - розрядним числом. Два надлишкових старших біти використовуються для визначення напрямку передачі: 01 - в память  з ЗП; 10 - з памяті до ЗП. Одержане 16 - розрядне число також передається по окремих байтах за адресами, які вказані у другій частині табл.10.2.

Слід спеціально відмітити що при запису обєму масиву треба вказувати число на одиницю менше за реальний обєм масиву. Так наприклад,  для запису в ОЗП масиву з пяти чисел слід скласти таку програму:

                                             MVI A, 04   -молодший байт величини обєму

                                             OUT F1    - адреса  другого керуючого слова К0

                                             MVI A, 40   - молодший байт величини обєму

                                             OUT F1    - адреса  другого керуючого слова К0

 Керуюче слово режиму (третє керуюче слово) має таку структуру:

 D0 - D3 - дозвіл на обслуговування запитів на ПДП по каналах. Одиниця у N - тому розряді означає що відповідний N - тий канал задіяно. Якщо ж стоїть нуль, то цей канал не працює, він, як то кажуть, “замаскованний”.

 D4 визначає пріоритет каналів. При D4 = 0 пріоритети фіксовані (К0 має найвищий пріоритет); при D4 = 1 пріоритети циклічно змінюються.

 D5 = 1 визначає що тривалість сигналів та  збільшена для узгодження зі швидкодією зовнішніх пристроїв;

 D6 = 1  забороняє роботу каналу по закінченню обміну;

D7 = 1 визначає режим автозавантаження.

Третє керуюче слово записується за адресою А3 - А0 = 1000; за цією ж адресою можна прочитати слово стану КПДП. Біти А7 - А4 фіксовані (як і у попередніх випадках).

Так наприклад, при роботі тільки по каналах К0 та К1 (інші канали замасковані), з фіксованими пріоритетами, з забороною роботи по закінченню обміну, керуюче слово режиму матиме вигляд 0100 0011 = 43Н.

Отже, програма запису цього слова буде

                                          MVI A, 43

                                          OUT  F8 

 Після запису керуючих слів КПДП переходить у холостий стан і очікує на запит на захоплення шин. Одержавши такий запит він переходить у режим обміну (якщо тільки при попередньому обміні його не було заблоковано бітом D6 = 1 керуючого слова режиму). 

  


 

А также другие работы, которые могут Вас заинтересовать

13697. Правонарушение. Что есть право и в чем состоит правонарушение, это должен определить закон 13.59 KB
  Что есть право и в чем состоит правонарушение это должен определить закон Латинское юридическое изречение.Эссе № 1На протяжении многих столетий государство принимает законы которым должен следовать каждый. Любое непослушание несоблюдение этих законов ведет к нак...
13698. Есть 2 мирные формы насилия: закон и приличия 14.97 KB
  Есть 2 мирные формы насилия: закон и приличия И.Гете.Что такое насилие Обычно говоря о насилии мы имеем в виду жестокость. Но в высказывании Гете слово насилие имеет иное значение: запрет ограничение свободы. Значит смысл этого высказывания заключается в том что обществ...
13699. Законы нужны не только для того, чтобы устрашать граждан, но и для того, чтобы помогать им 13.87 KB
  Законы нужны не только для того чтобы устрашать граждан но и для того чтобы помогать им Вольтер /Правоведение/ Я согласна с Вольтером. Действительно система законодательства в государстве создана именно с этой целью. Вся система законов направлена на то чтобы упоряд...
13700. Имею право или обязан 14.15 KB
  Имею право или обязан Конституция РФ предусматривает как соблюдение прав так и соблюдение обязанностей всех людей находящихся на территории РФ. Но что же всётаки первично: права или обязанностиВозьмём Конституцию. Статья 30 гласит: Каждый имеет право на объединени...
13701. Когда гремит оружие, законы молчат 14.46 KB
  Когда гремит оружие законы молчат. Цицерон Данная мудрость высказанная Цицероном является из по кон веков актуальной ведь проблема войны и мира всегда волновала человечество. Всего 250 лет на Земле царил мир и это дает повод задуматься. Каждый день происходят локальн
13702. Совесть есть закон законов 14.25 KB
  Совесть есть закон законов Ламартин Французский поэт и историк Ламартин ставит совесть выше закона. В данном эссе я решила проанализировать эту точку зрения и выяснить так ли это на самом деле. Стоит отметить что я придерживаюсь той же позиции что и Ламартин и что мо
13703. Обществознание Я считаю обязательным для каждого бесприкословно и неуклонно повиноваться законам 14.21 KB
  Я считаю обязательным для каждого бесприкословно и неуклонно повиноваться законам Сократ Эссе:В своем высказывании Сократ говорил о верховенстве права в обществе. Предположим если в обществе граждане отказываются повиноваться законам это приведет к росту преступн
13704. Демократия – это право делать неправильный выбор 14.61 KB
  Демократия это право делать неправильный выбор Дж. Патрик Американский журналист и политический деятель Дж. Патрик автор книги Смерть Запада характеризует демократию как право свободного выбора пусть даже иногда ошибочного. Я пожалуй соглашусь с позицией ...
13705. Неверно, будто политика есть искусство возможного. Политика - это выбор между гибельным и неприятным 14.14 KB
  Неверно будто политика есть искусство возможного. Политика это выбор между гибельным и неприятным. Джон Гэлбрейт Говоря это Д. Гэлбрейт наверное вспоминал историю происхождения понятия политика. Политика в древности означала искусство управлять. Поэтому чем ...