Сделай Сам Свою Работу на 5

Прямой доступ к памяти — DMA





Прямой доступ к памяти позволяет абоненту шины организовывать обмен дан­ными между своим регистром и памятью под управлением контроллера DMA, минуя центральный процессор. До выполнения обмена канал DMA должен быть инициализирован — задан начальный адрес и размер пересылаемого блока памя­ти, направление и режим обмена. После инициализации канала обмен выполня­ется по инициативе ПУ.

Для интерфейса ПУ каждый канал DMA представляется парой сигналов: запрос об­мена — DRQx и подтверждение обмена — DACKx#, где х — номер используемого ка­нала. На рис. 6.3 приведена диаграмма стандартного цикла передачи байта (для 8-битного канала) или слова (для 16-битного) от ПУ в память по каналу DMA. Цикл передачи блока байтов или слов в память будет выглядеть следующим образом.

1. По сигналу DRQx контроллер DMA запрашивает управление шиной и дожидается его предоставления процессором (и другими контроллерами шины).

2. Контроллер выставляет адрес ячейки памяти и формирует в одном цикле шины
сигналы IOR#, DACKx* и MEMW#. Адрес на всех линиях, включая LA[23:17], дей­ствителен во время всего цикла (защелкивание не требуется), BALE=H в тече­ние всего цикла. Сигнал DACKx# указывает на то, что операция выполняется для канала х, a IOR# — на направление в канале (для пересылки из памяти в канал использовался бы сигнал IOW#). Чтобы по сигналу IOR# не было ложного чте­ния (по IOW# — ложной записи) порта, адрес которого совпадает с адресом памяти, присутствующим в цикле DMA, контроллер высоким уровнем сигнала





Глава 6. Шины и карты расширения


AEN запрещает портам дешифрацию адреса. Байт, считанный из ПУ, в том же цикле шины записывается в ячейку памяти.

3. Контроллер модифицирует счетчик адреса и повторяет шаги 1-2 для каждого следующего сигнала DRQx, пока не будет исчерпан счетчик циклов. В последнем цикле обмена контроллер формирует общий сигнал окончания ТС (Terminate Count), который может быть использован устройством для формирования сиг­нала аппаратного прерывания.

Рис.6.З. Цикл обмена DMA

Диаграмма обратной пересылки (из памяти в ПУ) отличается только тем, что на месте сигнала IOR# будет сигнал MEMR#, а на месте MEMW* — сигнал IOW#. Направление обмена и параметры режима задаются программированием кон­троллера DMA.



Цикл DMA, и так довольно длинный, может быть растянут устройством с помо­щью сигнала IOCHRDY (но сократить его сигналом OWS# невозможно). Запраши­вать удлинение цикла может только адресованная память — подразумевается, что когда ПУ выставляет запрос DRQx, оно уже должно быть готово к обмену.

На 16-битной шине ISA доступно 7 каналов DMA: четыре 8-битных (номера 0-3) и три 16-битных (5-7), подключенные к первичному и вторичному контроллерам соответственно. Канал 4 используется для каскадирования (соединения контрол­леров). На 8-битном слоте доступны только четыре 8-битных канала (в XT только 3 — канал 0 требовался для регенерации памяти).

Кроме приведенного на рисунке режима одиночной передачи возможны и иные, описанные в п. 12.4.


6.1. Шины ISA, EISA и PC/104 159

Напомним, что по 8-битным каналам DMA за один сеанс настройки контроллера можно передавать не более 64К байт данных, начинающихся с любого адреса (но не пересекая границ страниц, см. п. 12.3.2 и 12.5). По 16-битным каналам за сеанс можно передавать не более 64К слов данных, начинающихся с четного адреса, и границы страниц иные. Используя DMA в режимах, отличных от одиночного, длительность непрерывной передачи не должна превышать 15 мкс (для обесцече­ния регенерации памяти).

Прямое управление шиной

В случае прямого управления шиной (bus mastering) инициатором обмена стано­вится контроллер какого-либо устройства или интерфейса, но не процессор и не канал DMA. Прямое управление позволяет контроллеру, не отвлекая централь­ный процессор, выполнять обмен данными с высокой производительностью и, воз­можно, по более сложным правилам и без ограничений, присущих каналам DMA (невозможность пересечения границы страницы). Контроллер, как правило, обес­печивает обмен данными между системным ОЗУ и своим периферийным устрой­ством или интерфейсом. В принципе он может общаться с памятью или портами другого абонента шины, но для упрощения организации всех информационных связей центральным «перевалочным пунктом» все-таки является системное ОЗУ. Получить право на управление шиной ISA может только контроллер, подключен­ный к 16-битному слоту. Для арбитража запросов на управление шиной от не­скольких источников — центрального процессора, контроллера DMA и контрол­леров-абонентов шины используется второй контроллер DMA (каналы 5-7). Устройство, желающее получить управление, выставляет запрос DRQx (x=5...7), по которому контроллер DMA запрашивает управление шиной у центрального процес­сора. Получив подтверждение от процессора, контроллер устанавливает сигнал AEN (для блокировки дешифрации адреса портов) и формирует сигнал DACKx. Полу­чив этот сигнал, устройство устанавливает низкий уровень на линии MASTER*, по которому контроллер шины DMA снимает сигнал AEN и освобождает линии команд­ных сигналов. Таким образом, управление шиной переходит к данному устройству до тех пор, пока оно не снимет запрос DRQx. В режиме прямого управления шиной ISA устройство становится полновластным и бесконтрольным хозяином как са­мой шины, так и системы в целом (через мост шины). Если шина захватывается более чем на 15 мкс, контроллер устройства должен заботиться о регенерации па­мяти (см. ниже). Устройства (и память), к которым обращается задатчик шины, могут потребовать введения тактов ожидания сигналом IOCHRDY, и это требова­ние должно удовлетворяться.



Регенерация памяти

Динамическая память, применяемая в компьютере в качестве системного ОЗУ, а также, возможно, находящаяся на картах расширения, требует регенерации — пе­риодического обновления (refresh) всех строк матрицы. На системной плате всег­да имеется контроллер регенерации памяти, в задачу которого входит регуляр-


160_____________________________________ Глава 6. Шины и карты расширения

ный перебор строк памяти с формированием специального цикла регенерации. Каждые 15 мкс контроллер регенерации формирует цикл регенерации (сигнал REFRESH*), диаграмма которого аналогична циклу DMA, но вместо чтения дан­ных выполняется регенерация. В этом цикле считывания данных из микросхем памяти не производится, но стробы строк формируются (подробнее о методах ре­генерации см. в книге «Аппаратные средств IBM PC. Энциклопедия»). На шине ISA контроллер регенерации работает как нулевой канал DMA (в старых маши­нах он непосредственно и использовался). Каждые 15 мкс контроллер регенера­ции формирует сигнал REFRESH*, во время действия которого устанавливается AEN=H и BALE=H, формируется сигнал MEMR#, а на линиях SA[7:0] устанавлива­ется адрес текущей регенерируемой строки. Диаграмма цикла регенерации ана­логична циклу DMA, но сигнал REFRESH* указывает на то, что вместо чтения дан­ных выполняется регенерация.

Если какое-либо устройство захватывает управление шиной более чем на 15 мкс, оно должно позаботиться о регенерации памяти. Для этого раз в 15 мкс оно долж­но вырабатывать сигнал REFRESH*, «отпуская» все адресные и управляющие сигналы. При этом контроллер шины, расположенный на системной плате и отве­чающий за регенерацию памяти, сформирует очередной адрес на линиях SA[7:0] и сигнал MEMR*, а также установит AEN=0 и BALE=1 на все время цикла регенера­ции. Если устройство, надолго захватившее шину, сигнал регенерации не форми­рует, то запросы регенерации накапливаются в контроллере регенерации, и, как только управление будет возвращено, эти запросы будут немедленно удовлетво­рены. Однако число безнаказанно пропущенных запросов ограничено свойства­ми динамической памяти, и очередь запросов в контроллере регенерации может ограничиваться, например, четырьмя.

Прерывания

На шине ISA имеются линии запросов маскируемых и немаскируемых аппарат­ных прерываний. Линии запросов маскируемых прерываний IRQ2-IRQ7 поступа­ют на входы первичного контроллера прерываний, IRQ9-IRQ15 — на входы вто­ричного. Контакт В4 (IRQ2/9) запрос IRQ2 вырабатывал только у машин РХ/ХТ. На всех современных машинах (класса AT) он является запросом IRQ9, хотя на многих адаптерах (всех 8-битных) он обозначается как IRQ2. Приоритеты у запро­сов убывают по порядку IRQ9...IRQ15 и далее IRQ3...IRQ7. Запросы от конкретных линий могут быть замаскированы записью в регистры контроллера (см. п. 12.4), общий запрет/разрешение осуществляется манипулированием флагом разреше­ния прерываний (IF) процессора. Устройство может использовать одну или не­сколько линий запроса прерывания. На используемой линии запроса устройство в покое должно формировать низкий уровень сигнала, а при возникновении усло­вия прерывания устанавливать на нем высокий уровень запроса. Неиспользуемые линии должны быть электрически отключены от шины или же их выходные фор­мирователи должны переводиться в третье состояние. Переход из низкого в высо­кий уровень является сигналом для контроллера прерываний на формирование запроса прерывания к процессору. Устройство должно удерживать высокий уро-


6.1. Шины ISA, EISA и PC/104_________________________________________ 161

вень запроса до тех пор, пока к нему не обратится программа-обработчик преры­вания, что будет означать не только обнаружение, но и правильную идентифика­цию источника запроса прерывания. Если запрос снят преждевременно, иденти­фикация будет некорректной. Детально механизм обслуживания прерываний рассмотрен в п. 12.4.

Способ подачи сигнала прерывания, принятый в ISA, — чувствительность к уров­ню, причем к высокому, — имеет меньшую помехозащищенность, чем срабатыва­ние по отрицательному перепаду, и отрезает путь к нормальному разделению (совместному использованию) линий запросов.

Линия ЮСНК# позволяет вызывать немаскируемое прерывание (NMI), на которое процессор реагирует вне зависимости от каких-либо флагов. Это прерывание при­нято использовать для сообщения о серьезных ошибках, требующих реакции си­стемы, но не для регулярной работы. Вызов NMI от данной линии разрешается установкой бита 3 (EIC) системного порта 06lh, а признаком того, что прерыва­ние NMI вызвано сигналом ЮСНК#, является единичное значение бита 6 (IOCHK) того же порта.

Шина РС/104

Шина РС/104, предназначенная для построения относительно несложных встра­иваемых контроллеров, логически эквивалентна ISA. В ее названии 104 — число контактов коннектора, на который выводятся сигналы шины ISA. От ISA шина РС/104 отличается только типом коннектора и нагрузочными характеристиками линий: поскольку протяженность линий значительно сократилась, сигнальные цепи могут быть слаботочными. Формирователи сигналов MEMCS16#, IOCS16*, MASTER* и OWS# должны обеспечивать вытекающий ток до 20 мА, для остальных достаточно 4 мА.

Вид платы РС/104 приведен на рис. 6.4, назначение контактов дано в табл. 6.5 и 6.6. Плата компьютера с шиной РС/104 имеет разъемы-розетки. Плата рас­ширения имеет вилку РС/104, которая вставляется в плату контроллера. Кроме вилки на плате расширения может присутствовать и розетка РС/104 (коннектор двусторонний), так что можно собрать «бутерброд» из нескольких плат (рис. 6.4, а). Для предотвращения неправильного соединения у розеток в позициях В10 и С19 нет ни контактов, ни отверстий; у вилок в этих позициях штырек отсутствует. Если плат более трех, то сверху «бутерброда» устанавливают терминатор. Для фиксации плат стандартизовано расположение крепежных отверстий. Платы скрепляются четырьмя несущими стоечками высотой 0,6" (или длинными винтами с втулками). Отметим особенности коннекторов^ ! — коннектор шины ISA-8, J2 — его расшире­ние до ISA-16; эти коннекторы обычно имеют дюймовый шаг контактов (2,54 мм), но могут встречаться и метрические, с шагом 2,5 мм (они взаимно несовместимы!). Обратим внимание и на специфическую нумерацию рядов контактов В, А, С, D и номеров контактов (у J2 нумерация начинается с нуля, нулевые контакты не ис­пользуются).



Глава 6. Шины и карты расширения


Рис.6.4. Компьютер с шиной РС/104: а — стопка плат, б — расположение системных

коннекторов

С широким использованием процессоров Pentium и следующих моделей в модуль ввели еще и шину PCI, так появился стандарт PC/104-Plus (именно такая карта показана на рис. 6.4). Трехрядный коннектор PCI имеет метрический шаг контак­тов 2 мм. Платы микрокомпьютеров с шинами РС/104 могут иметь и краевые разъемы ISA, PCI или комбинированный; с их помощью контроллеры подключа­ются к пассивной кросс-плате, в которую устанавливаются карты расширения (ISA, PCI) обычного (PC) конструктива.

Таблица 6.5.Разъем J1/P1 шины PC-104


РЯДА



РядВ



IOCHK# GND
SD7 RESET
SD6 +5 В
SD5 IRQ2/9
SD4 -5 В
SD3 DRQ2
SD2 -12В
SD1 OWS#
SDO +12В
IOCHDRY Ключ
AEN SMEMW#
SA19 SMEMR#
SA18 IOWR#
SA17 IORD#
SA16 DACK3#


6.1. Шины ISA, EISA и PC/104



 


РЯДА



РядВ



SA15 DRQ3
SAM DACK1*
SA13 DRQ1
SA12 REFRESH*
SA11 BCLK
SA10 IRQ7
SA9 IRQ6
SA8 IRQ5
SA7 IRQ4
SA6 IRQ3
SA5 DACK2*
SA4 TC
SA3 BALE
SA2 +5 В
SA1 OSC
SAO GND
GND GND

Таблица 6.6.Разъем J2/P2 шины PC-104


РядС



РядО


     
 
 
 


GND GND
SBHE MEMCS16#
LA23 IOCS16*
LA22 IRQ10
LA21 IRQ11
LA20 IRQ12
LA19 IRQ15
LA18 IRQ14
LA17 DACKO*
MEMR# DRQO
MEMW# DACK5*
SD8 DRQ5
SD9 DACK6*
SD10 DRQ6
SD11 DACK7*
SD12 DRQ7
SD13 +5 В
SD14 MASTER#
SD15 GND
Ключ GND

164_____________________________________ Глава 6. Шины и карты расширения

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.