Аппаратные и программные средства встраиваемых систем


  Контроллер прямого доступа к памяти



Pdf көрінісі
бет40/268
Дата07.01.2022
өлшемі3,23 Mb.
#18255
1   ...   36   37   38   39   40   41   42   43   ...   268
1.2.8  Контроллер прямого доступа к памяти 
Обмен 
данными 
микропроцессора 
с 
медленнодействующими 
периферийными устройствами (ПУ) обычно организуется по прерываниям или 
по  программному  опросу.  Однако  при  передаче  между  основной  и  внешней 
памятью  микро-ЭВМ  больших  блоков  данных  (десятки  байт  и  более) 
производительность процессора в этих режимах является недостаточной. 
Скорость  передачи  данных  в  режиме  программного  ввода-вывода 
ограничивается  только  процессором.  Поэтому  для  передачи  данных  между 
устройствами внешней памяти и ОЗУ разработан специальный метод передачи 
данных  без  участия  процессора,  получившего  название  прямого  доступа  к 
памяти (Direct Memory Access, DMA). Аппаратные средства реализации канала 
ПДП называются контроллером прямого доступа к памяти (КПДП). 


 
39 
DMA-контроллер содержит несколько регистров, доступных центральному 
процессору для чтения и записи. Обычно эти регистры задают порт (или канал), 
который  должен  быть  использован;  направление  переноса  данных 
(чтение/запись); единицу переноса (побайтно/пословно); число байтов, которое 
следует перенести; адрес. 
Необходимо  отметить,  что  контроллер  ПДП  используется  не  только  для 
передачи данных между ПУ и памятью, но и из памяти в память, и из ПУ в ПУ. 
В  идеальном  случае  режим  ПДП  совершенно  не  должен  влиять  на 
действия  процессора,  но  для  этого  потребуется  сложный  и  дорогой  тракт  в 
основную  память  вычислительной  системы.  Поэтому  в  большинстве  систем 
используется  временное  разделение  (мультиплексирование)  общей  системной 
шины между процессором и КПДП. 
Разработано  две  разновидности  ПДП:  режим  без  пропусков  тактов 
микропроцессора и режим с пропуском тактов микропроцессора. 
В  первом  режиме  реализации  прямой  доступ  осуществляется  без  участия 
процессора  (параллельно  микропроцессору).  Для  этого  используются  те 
интервалы  машинных  циклов,  в  течение  которых  микропроцессор  не 
обращается  к  основной  памяти.  Процессор  (или  дополнительная  схема) 
идентифицирует  эти  интервалы  для  КПДП  специальным  сигналом, 
означающим доступность системной шины. Производительность процессора в 
этом  режиме  не  уменьшается,  но  для  каждого  типа  процессора  потребуется 
свой  контроллер  ПДП.  С  другой  стороны,  сами  передачи  будут  носить 
нерегулярный характер ввиду отсутствия у некоторых команд этих интервалов, 
что приведет к уменьшению скорости передачи данных в режиме ПДП. 
Во втором способе реализации КПДП полностью ″захватывает″ системную 
шину на время передачи, при этом процессор отключается от системной шины 
и  переходит  в  режим  холостого  хода.  Таким  образом,  передачи  ПДП 
осуществляются путем пропуска тактов процессора в выполняемой программе. 
При  выполнении  передач  ПДП  содержимое  внутренних  регистров  процессора 
не  модифицируются,  поэтому  его  не  нужно  запоминать  в  памяти,  а  затем 
восстанавливать,  как  при  обработке  прерываний.  Выполнение  программы 
осуществляется  сразу  после  окончания  ПДП.  Тем  не  менее,  в  условиях 
интенсивных  передач  ПДП  эффективная  производительность  процессора 
уменьшается. 
Обычно  блоками  ПДП  снабжаются  сравнительно  мощные  модели 
микроконтроллеров. В основном ПДП используется для взаимодействия памяти 
с  устройствами  ввода-вывода,  которые  могут  создать  большой  поток  данных: 
сетевыми контроллерами, UART, ЦАП и АЦП. 
Как  правило,  блок  ПДП  программисты  встроенных  систем,  особенно 
начинающие, стараются обходить стороной, считая  его излишне сложным. На 
самом  деле,  использование  ПДП  не  является  более  сложным,  чем,  например, 
использование  системы  прерываний,  а  эффект  от  применения  ПДП  может 


 
40 
разгрузить  центральный  процессор  и  увеличить  производительность 
контроллера. 


Достарыңызбен бөлісу:
1   ...   36   37   38   39   40   41   42   43   ...   268




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет