
- •Вопрос: Охарактеризуйте развитие системы внутренних интерфейсов пк.
- •Вопрос: Охарактеризуйте этапы изменения архитектуры свв материнских плат, начиная с пк на базе I 80486 и до Pentium IV.
- •Вопрос: Охарактеризуйте правила программирования подсистемы dma пк
- •3) Обладают более высоким приоритетом по сравнению с каналами контроллера 2 (каналы 5, 6, 7). Передачи dma
- •10.2.7.8. Регистр состояний (stat - 008, 0d0)
- •10.2.8. Программирование контроллера
- •Irq2 ведущего). На входы irq0, irq1, irq3-irq7 ведущей микросхемы и на входы irq8-irq15 ведомой
- •I8259a с целью сохранения совместимости со старым программным обеспечением. Большая часть
- •Вопрос: Охарактеризуйте правила программирования подсистемы cmos/rtc.
- •80H. Когда клавиатура работает в режимах 2 и 3, код отпускания представляет собой двухбайтовый код - код
- •60H. Ответные коды клавиатуры на команды помещаются микроконтроллером адаптера в выходной буфер и
- •1, См. Выше).
- •Раздел 1.4.3). Следует отметить, что функции прерывания int 17h реализуют только протокол интерфейса
- •32 Бит и для них до 4 байт может быть передано за один цикл обращения процессора. Таким образом
- •1.9.3.3. Программирование ерр-порта на уровне epp bios.
- •Irq11, для com2 и com4 — irq3 или irq10. В принципе номер прерывания можно назначать в
- •Video bios хранится в специальном пзу (rom), размещенном на плате видеоадаптера vga. Его
- •2.1.2.1. Видеосервис bios
- •2.1.2.1.1. Аппаратные прерывания
3) Обладают более высоким приоритетом по сравнению с каналами контроллера 2 (каналы 5, 6, 7). Передачи dma
Подсистема DMA может осуществлять обмен данными между устройством ввода-вывода и памятью и
между различными массивами самой памяти.
Передача данных из памяти в память не реализуется в архитектуре PC AT.
При передаче данных из устройств ввода-вывода в память контроллеры DMA и устройства ввода-выво-
да используют сигналы DREQx и DACKx для установления связи. Когда устройству ввода-вывода нужно
передать байт или слово данных, оно возбуждает свою линию DREQx. После возбуждения контроллером ли-
нии DACKx и линии IOR устройство передает свои данные на шину данных для памяти. Когда устройству
ввода-вывода нужен байт или слово данных из памяти, оно возбуждает свою линию DREQx. После возбуж-
дения контроллером линии DACKx и линии IOW устройство "забирает" данные памяти из шины данных. Циклы DMA
Подсистема DMA предназначена для работы в двух основных циклах: холостом и активном. Каждый
цикл - это совокупность некоторого количества ее состояний. Подсистема DMA может иметь семь
состояний, каждое из которых соответствует одному периоду синхронизации.
Состояние SI - неактивное состояние. Подсистема DMA находится в этом состоянии, когда нет действи-
тельных запросов на обслуживание подсистемы DMA. Но в этом состоянии подсистема DMA может про-
граммироваться.
Состояние S0 - первое состояние обслуживания подсистемы DMA, возникающее по действительному
запросу (DREQ). Подсистема DMA запрашивает разрешение у CPU на захват системной шины (HRQ), но до
получения подтверждения захвата (HLDA) может еще программироваться. По HLDA подсистема DMA
переходит в рабочее состояние.
Состояния S1, S2, S3 и S4 - рабочие состояния. Начинают вырабатываться после получения подтвер-
ждения из CPU.
Состояние SW - состояние ожидания. Необходимо, если для завершения передачи требуется больше
времени, чем предполагается обычно. SW могут "вклиниваться" между S2 или S3 и S4, используя вход
READY DMA. Режимы обслуживания
В активном цикле обслуживание подсистемы DMA возможно в одном из четырех режимов. Окончание
обслуживания распознается по переходу регистра счетчика слов из 0000Н в FFFFН. При этом возникает
сигнал окончания счета (TC), который может вызвать автоинициализацию, если она запрограммирована, или
маскирование канала при ее отсутствии. Одновременно с TC вырабатывается выходной сигнал -EOP.
Во время автоинициализации первоначальные значения регистров текущего адреса и счетчика
восстанавливаются из соответствующих базовых регистров. После автоинициализации канал готов
выполнять другое обслуживание подсистемы DMA без вмешательства CPU, как только обнаружится
достоверный DREQ.
10.2.3.1. Режим одиночной передачи (Single Transfer Mode)
В этом режиме контроллер DMA выполняет только одну передачу. Адрес и счетчик слов будут изме-
няться при каждой передаче. DREQ должен быть активным, пока не активизируется соответствующий
DACK. Если DREQ активен на протяжении одиночной передачи, HRQ переходит в неактивное состояние по
выполнении одной передачи и освобождает шину системе. HRQ снова станет активным (при активном
DREQ) и по получении нового HLDA будет выполняться следующий цикл одиночной передачи. Это гаран-
тирует CPU в системе выполнение одного полного машинного цикла между передачами DMA.
10.2.3.2. Режим передачи блока (Single Transfer Mode)
В этом режиме передается блок информации во время обслуживания подсистемы DMA. DREQ должен
быть активным, пока не появиться активный DACK.
10.2.3.3. Режим передачи по требованию (Demand Transfer Mode)
В этом режиме передача данных выполняется до тех пор, пока не появится TC или внешний EOP#, либо
когда DREQ станет неактивным. Таким образом, передачи могут продолжаться до тех пор, пока периферий-
ное устройство не исчерпает объем данных.
10.2.3.4. Каскадный режим (Cascade Mode)
Этот режим использует объединение нескольких контроллеров DMA для расширения числа подключа-
емых каналов.
99
Выходы HRQ и входы HLDA от дополнительных контроллеров соединяются соответственно со вхо-
дами DREQ и выходами DACK первичного контроллера DMA. Это дает возможность запросам от допол-
нительного устройства распространяться через сеть приоритетных цепей предшествующего устройства.
Таким образом, канал первичного контроллера DMA, к которому подключен дополнительный контрол-
лер, программируется на выполнение каскадного режима и служит только для определения приоритета до-
полнительного устройства и транзита сигналов HRQ в CPU и HLDA из CPU. Все другие сигналы каскадного
канала первичного контроллера DMA в формировании циклов подсистемы DMA не участвуют. 10.2.3.5. Режим память-память
Этот режим предназначен для передачи блоков данных из одного адресного пространства памяти в дру-
гое с минимальными программными и временными затратами, но в PC AT не используется. В данном режи-
ме могут работать только нулевой и 1-й каналы контроллера. Эта передача инициируется программной ус-
тановкой REQ для канала 0. Адрес ячейки памяти-источника данных задают в CAR0, а ячейки-приемника - в
CAR1. Байт данных, считанный из памяти, заносится во временный регистр (TR) и затем из TR считывается
в ячейку-приемник. Когда значение счетчика слов канала 1 станет равным FFFFh, обслуживание заканчива-
ется.
10.2.4. Типы передач
Каждый из трех активных режимов предполагает выполнение трех различных передач. Это ЧТЕНИЕ,
ЗАПИСЬ и ПРОВЕРКА. Передача ЧТЕНИЕ пересылает данные из памяти в периферийное устройство при
активизации MEMR# и IOW#. Передача ЗАПИСЬ пересылает данные из периферийного устройства в
память при активизации MEMW# и IOR#. ПРОВЕРКА - это псевдопередача. Подсистема DMA осуществляет
передачи ЧТЕНИЯ или ЗАПИСИ, генерируя адреса и реагируя на EOP#, но сигналы управления памятью и
периферийными устройствами остаются не активными. В режиме ПРОВЕРКИ вход READY игнорируется .
10.2.5. Приоритеты
Подсистема DMA имеет два типа приоритета, которые можно установить программно. Первый из них -
фиксированный приоритет, который фиксирует каналы в последовательности, соответствующей убыванию
их номеров. Низший приоритет имеет канал номер 3, а высший приоритет имеет канал 0. После выбора
какого-либо канала для обслуживания запрещается вмешательство остальных каналов до тех пор, пока
обслуживание не завершится.
Второй тип приоритета - циклический (рис. 6). Последний обслуженный канал становится каналом с
низшим приоритетом согласно циклу. При циклическом приоритете любое устройство, требующее обслужи-
вания, непременно будет распознано после обработки максимум трех более приоритетных обслуживаний.
Это исключает монополизацию всей системы одним каналом.
Во время цикла DMA контроллер для обращения к памяти выдает в CPU младшую часть адреса (стар-
шая часть адреса поступает из регистра страниц DMA). Причем разряды адреса А15-А8 выдаются на шину
данных и далее поступают во внешние защелки, из которых они попадают на адресную шину. Разряды ад-
реса A0-A7 выдаются на адресную шину непосредственно из контроллера DMA .
100
Рис. 6. Циклический приоритет
10.2.6. Генерация адреса
В течение обслуживания режимов передачи блока данных и передачи по требованию генерация адресов
должна быть последовательной. Для большого количества передач данные на внешних адресных защелках
не изменяются. Эти данные нуждаются в обновлении только при переносе из A7 или заеме из A8 в обычной
адресной последовательности, что позволяет вырабатывать состояние S1 только тогда, когда необходимо
обновление A8-A15 в защелках. Это означает, что для длительного обслуживания состояние S1 и адресный
строб могут возникать только один раз на каждые 256 передач.
10.2.7. Регистры контроллера DMA
В этом параграфе приводится детальное описание регистров контроллера DMA.
10.2.7.1. Регистр текущего адреса (CAR).
Каждый канал имеет 16-разрядный регистр текущего адреса. Этот регистр хранит младшие разряды ад-
реса, используемые во время обслуживания ПДП. Адрес автоматически уменьшается или наращивается пос-
ле каждой передачи, а промежуточные значения адреса запоминаются в регистре во время передачи. Содер-
жимое текущего регистра записывается или читается микропроцессором побайтно.
10.2.7.2. Регистр текущего счетчика слов (CCR)
Каждый канал имеет 16-разрядный регистр текущего счетчика слов. Этот регистр определяет количес-
тво передач, которые необходимо выполнить. Количество передач будет на единицу больше, чем число,
программируемое в регистре (т.е. в счетчик заносится число 100, а передач будет 101). Значение счетчика
уменьшается после каждой передачи, а промежуточное значение счетчика записывается в регистр во время
передачи.
В режиме программирования регистр CCR может быть побайтно записан или прочитан микропроцес-
сором. По концу обслуживания, если не задана автоинициализация, значение счетчика после TC равно
FFFFh.
Между обслуживаниями, когда микропроцессору разрешается выполнять операции, промежуточные
значения адреса и счетчика слов хранятся в регистрах текущего адреса и счетчика соответствующего канала.
10.2.7.3. Базовые регистры адреса и счетчика (BAR и CAR)
Каждый канал имеет два регистра: регистр базового адреса и регистр базового счетчика. Эти регистры
хранят начальные значения соответствующих текущих регистров. При авто инициализации они использу-
ются для восстановления первоначальных значений текущих регистров. Базовые регистры загружаются
микропроцессором поразрядно одновременно со своими текущими регистрами в режиме программирования.
Считать содержимое базовых регистров нельзя.
10.2.7.4. Регистр режима (MOD - 00B, 0D6)
Каждый канал имеет 6-разрядный регистр режима (MOD). Запись в регистр производится в режиме
программирования байтом, формат которого представлен на рис. 7. Разряды 0, 1 указывают, в регистр режи-
ма какого канала нужно произвести запись, а разряды 2-7 - информацию непосредственно для соответству-
ющего регистра режима. Для регистра режима разрешена только запись информации.
10.2.7.5. Регистр команд (CR - 008, 0D0)
Этот 8-разрядный регистр управляет операциями контроллера DMA. Он программируется микропро-
цессором и сбрасывается либо по входу RESET либо командой MC (очистка системы). Формат байта записи
представлен на рис. 8. Регистр команд не может быть считан микропроцессором.
10.2.7.6. Регистр запроса (REQ; 009, 0D2)
Контроллер DMA может реагировать на запросы по обслуживанию DMA, которые будут инициировать-
ся программно, как и при DREQ. Каждый канал имеет свой разряд в 4-разрядном регистре запроса. Эти раз-
ряды немаскируемые, приоритет которых устанавливается шифратором приоритетов. Каждый разряд регис-
тра сбрасывается и устанавливается под управлением программы или очищается при генерации TC или
внешнего -EOP.
Весь регистр очищается по RESET. Разряд устанавливается или сбрасывается программой, которая за-
гружает слово данных соответствующего формата, приведенного на рис. 9. Для того чтобы получить про-
граммный запрос, канал должен находиться в режиме блочного обмена.
Регистр запроса не может быть считан микропроцессором. 10.2.7.7. Регистр маски (MASK)
Каждый канал имеет свой разряд в 4-разрядном регистре маски, который может быть установлен, чтобы
заблокировать приходящий DREQ. Каждый разряд маски устанавливается, когда связанный с ним канал
вырабатывает -EOP, если канал не запрограммирован на автоинициализацию (в этом случае по -EOP маска
не устанавливается). Каждый разряд 4-разрядного регистра маски может быть установлен или сброшен под управлением
программы. Весь регистр устанавливается по RESET. При этом блокируются все запросы DMA, пока их не
разрешит команда сброса регистра маски. Команда раздельной установки/сброса маски подобна команде
раздельной установки/сброса регистра запроса. Одновременно все четыре разряда маски могут быть
записаны отдельной командой - Write All Mask Register Bits. Регистр маски не может быть считан
микропроцессором.
При инициализации регистра маски используются байты с форматами, приведенными на рис. 10, 11.