- •Организация эвм и систем
- •Глава 1 эвм общего назначения
- •Структура эвм общего назначения.
- •Арифметико-логические устройства.
- •Устройства управления.
- •Risc и cisc процессоры.
- •1.5 Форматы машинных команд.
- •Inc byte ptr [40h] – одноадресная
- •Способы адресации.
- •Стековая адресация. Виды стеков.
- •Глава 2
- •2.1 Микропроцессор к1810вм86.
- •2.2 Назначение входов/выходов вм86 в минимальном режиме.
- •2.3 Назначение входов/выходов вм86 в максимальном режиме.
- •Внутренняя архитектура мп вм86.
- •Сегментация памяти.
- •2.6 Программная модель мп вм86.
- •2.7 Организация оперативной памяти.
- •2.8 Организация адресного пространства портов ву.
- •2.9 Методы обмена информацией между мп и портами ву.
- •2.10 Параллельный программируемый адаптер к1810вв55 (i8255).
- •Пример использования и программирования адаптера
- •2.12 Программируемый таймер к1810ви54 (i8254).
- •2.13 Пример использования таймера.
- •2.14 Обработка прерываний.
- •2.15 Система прерываний вм86.
- •2.16 Контроллер прерываний к1810вн59 (i8259).
- •Дополнительная информация о настройке вн59.
- •Прямой доступ к памяти.
- •Программирование кпдп вт37
- •2.21 Организация процессорного модуля вм86.
- •2.20. Организация шинного интерфейса в максимальном режиме
- •2.23. Слабо связанные конфигурации.
- •2.24. Арбитр шин к1810вб89 (i8289).
- •2.25 Сильно связанные конфигурации на примере совместной работы мп86 и арифметического сопроцессора вм87.
- •2.26. Формат машинной команды вм86.
Дополнительная информация о настройке вн59.
Хотя с практической точки зрения приведенной в предыдущем разделе информации о ВН59 вполне достаточно для успешной работы с этой микросхемой, в этом разделе без комментариев приводятся полные сведения о настройке контроллера.
Формат ICW1

Формат ICW 2 (имеется два варианта этой команды)
|
А0=1 |
А15 |
А14 |
А13 |
А12 |
А11 |
А10 |
А9 |
А8 |
Это вариант для МП 580. Команда задает старший байт адреса для команды
call addr16, которую формирует ВН59 для МП 580.
|
А0=1 |
Т7 |
Т6 |
Т5 |
Т4 |
Т3 |
* |
* |
* |
Это вариант для ВМ86 и старше. В команде задаются пять старших разряда типа прерывания для линии IR0. Значение трех младших разрядов команды безразличны. Вместо этих разрядов ВН59 автоматически подставляет номер линии, по которой он принял запрос. Например, если пришел запрос на линию IR2, ВН59 сформирует следующий тип прерывания: Т7 Т6 Т5 Т4 Т3 0 1 0.
Формат ICW3 (имеется два варианта этой команды).
|
А0=1 |
I 7 |
I 6 |
I 5 |
I 4 |
I 3 |
I 2 |
I 1 |
I 0 |
Это вариант для ведущего КП. Если в разряде Ii стоит единица, к входу IRi подключен ведомый КП. Например, ICW3 = 00101100 - в системе три ведомых КП, подключенных к входам IR5, IR3 и IR2 ведущего КП.
|
А0=1 |
* |
* |
* |
* |
* |
N2 |
N1 |
N0 |
Это вариант для ведомого КП. Три младших бита команды задают ведомому номер линии ведущего, к которой данный ведомый подключен. Остальные биты команды не имеют смысла. Например, ICW3 = 00000101 – ведомому сообщают, что он подключен к IR5 ведущего.
Формат ICW4

Формат OCW1
|
А0=1 |
M7 |
M6 |
M5 |
M4 |
M3 |
M2 |
M1 |
M0 |
Единица в i-ом разряде OCW1 маскирует линию IRi. Напрмер, OCW1 = 00011001 – маскируются линии IR4, IR3 и IR0. Для того чтобы размаскировать все линии надо подать OCW1 = 00000000.
Формат OCW2

Здесь Ц – циклический сдвиг приоритетов, СКП – специальный конец прерывания, КП – конец прерывания (снятие шторы), N2, N1, N0 – номер линии IRi.
№1 – обычный конец прерывания (сброс шторы);
№2 – специальный конец прерывания ( сброс шторы с i-й линии);
№3 – циклический сдвиг уровней приоритета с обычным концом прерывания, установка дна приоритетного кольца по обслуженному запросу;
№4 – циклический сдвиг уровней приоритета со специальным концом прерывания;
№5 – разрешение вращения уровней приоритетов;
№6 – сброс разрешения вращения уровней приоритетов;
№7 – циклический сдвиг уровней приоритетов без окончания прерывания, N2-0 – двоичный кол дна приоритетного кольца.
Формат OCW3 (A0 = 0) здесь не приводится.
Прямой доступ к памяти.
Обычно передача байта, например, из ВУ в ОП производится по следующей схеме. За один цикл шины информация считывается из порта ВУ и запоминается во внутреннем регистре процессора, затем, также за один цикл шины, эта информация передается из процессора в ОП. Таким образом, данная схема требует двух циклов шины на передачу одного байта. Однако скорость обмена можно увеличить, если передавать байт из порта ВУ в ОП напрямую, минуя процессор. Обмен при этом требует только одного цикла шины. Такой режим обмена называется прямым доступом к памяти (ПДП).
На время ПДП процессор отключается от системной шины, поэтому в систему вводится специальная схема контроллера ПДП (КПДП), которая и управляет обменом.
Пусть, например, надо передать байт информации из ОП в порт ВУ. Предварительно КПДП должен быть задан адрес ячейки ОП, откуда будет передаваться информация и направление передачи. Когда ВУ потребуется прочитать данный байт, оно формирует запрос на ПДП, поступающий на контроллер. Последний формирует активный сигнал на вход HOLD МП. Получив этот сигнал МП, прекращает выполнение программы, отключается от шин и вырабатывает сигнал подтверждения захвата HLDA. С этого момента управление системной шиной берет на себя КПДП. Для нашего примера КПДП выполняет следующие действия: вырабатывает сигнал подтверждения ПДП, подключающий порт ВУ к ШД, выставляет на ША адрес ячейки ОП, вырабатывает сигналы MR и IOW, задающие вид операции соответственно для ОП и ВУ. После передачи байта КПДП снимает активный сигнал с входа HOLD МП, возвращая последнему управление системной шиной.
Передача байта из ВУ в ОП производится аналогично, меняются только сигналы, задающие вид операции для ОП и ВУ.
При ПДП возможна передача целого блока информации. В этом случае КПДП предварительно задается направление передачи, начальный адрес блока в ОП и размер блока. После передачи очередного байта сигнал HOLD не снимается, содержимое счетчика байт уменьшается на единицу, а адрес ячейки ОП либо уменьшается, либо увеличивается (в зависимости от настройки КПДП) на единицу. Процесс обмена продолжается, пока счетчик байт не обнуляется.
Контроллер прямого доступа к памяти К1810ВТ37 (i8237).
Данная микросхема включает в себя четыре независимых канала ПДП: соответственно канал 0, канал1, канал 2 и канал 3. Каждый канал может находится в двух основных режимах: режиме программирования и режиме ПДП. В процессе программирования канал может быть настроен на работу в следующих режимах:
Режим одиночной передачи. В этом режиме канал осуществляет передачу байта информации между ОП и портом ВУ, после чего КПДП возвращает шину МП. В этом режиме можно задавать блок информации, но передаваться он будет побайтно.
Режим блоковой передачи. В этом режиме канал производит передачу блока информации. КПДП не возвращает шину МП до тех пор, пока не будет передан весь блок.
Режим передачи по требованию. По смыслу это та же блоковая передача, однако, после передачи каждого байта КПДП проверяет вход запроса на ПДП (DREQ) канала. Если на нем стоит активный сигнал, значит ВУ готово к дальнейшему обмену и передача продолжается. Если на DREQ стоит пассивный сигнал, значит ВУ к дальнейшему обмену не готово, передача прекращается (до нового запроса от этого ВУ) и шина возвращается МП.
Каскадный режим. В системе может стоять несколько КПДП, но при этом они соединяются каскадно (один ведущий, остальные ведомые). Сигнал с выхода HRQ ведомого заводится не на вход HOLD МП, а на вход DREQ одного из каналов ведущего. Если какой-либо канал КПДП настроен на каскадный режим, значит к входу DREQ этого канала подключен ведомый контроллер.
Существует специфический вид передачи, который называется «память – память». Как следует из названия, обмен здесь идет не между ОП и ВУ, а между двумя областями ОП. Для такой передачи используются два фиксированных канала: канал 0 и канал 1. В канале 0 задается начальный адрес области ОП, откуда будет передаваться информация. В канале 1 – начальный адрес области ОП, куда будет передаваться информация, и размер передаваемого блока. Запрос на передачу «память – память» подается на канал 0. Получив этот запрос КПДП за один цикл шины считывает из ОП байт, адрес которого он берет из канала 0, и помещает его в свой внутренний регистр временного хранения. Затем КПДП формирует второй цикл шины, в котором этот байт записывается в ОП, по адресу, взятому из канала 1. После этого производится автодекремент счетчика байт и автоинкремент (или автодекремент) адресов в каналах 0 и 1. И так далее.
При передаче «память – память» можно использовать режим автофиксации, при котором в процессе передачи адрес в канале 0 не меняется. То есть этот режим позволяет заполнять заданную область памяти константой.
Режим «память – память» используется, например, для регенерации динамического ОЗУ.
Обычно по окончании передачи блока канал надо перепрограммировать. Однако, если канал настроен на автоинициализацию, перенастройка канала не требуется, поскольку канал автоматически перезагружается исходными данными.
Во избежание конфликтных ситуаций, всем каналам КПДП присваивается приоритет. По умолчанию старший приоритет имеет канал 0, однако мы можем программно изменять приоритеты каналов.
На рис. 26 приведено обозначение ВТ37 на функциональных схемах.
Рассмотрим вкратце назначение входов/выходов ВТ37.
CLK – вход синхроимпульсов, синхросерия подается с генератора ГФ84, КПДП использует эту синхросерию, находясь в режиме ПДП, для формирования циклов шины.
CS – выбор кристалла, нужен в режиме программирования, активный сигнал на этом входе означает что процессор обращается к одному из внутренних регистров КПДП. В режиме ПДП вход CS блокируется.
RESET – сброс. По этому сигналу все каналы переводятся в режим программирования. Все каналы при этом маскируются, то есть запрещается восприятие запросов от ВУ по линиям DREQ 3-0. Поэтому после программирования канала последний надо демаскировать.
READY – готовность. Аналогичен одноименному входу ВМ86. Используется в режиме ПДП. С помощью этого входа синхронизируется работ КПДП и медленнодействующих ОП и или ВУ.
HLDA – подтверждение захвата. Сигнал на этот вход заводится с одноименного выхода МП. Когда на HLDA приходит активный сигнал, КПДП берет управление системной шиной на себя.
IOR и IOW – в режиме программирования это входы. Сигналы на них задают КПДП вид операции, с которой обращается к нему МП. В режиме ПДП это выходы. На них КПДП выставляет сигналы, задающие вид операции порту ВУ.
DREQ 3-0 (DMA request) – входы запросов на ПДП для каналов 3-0. Активный уровень этих сигналов задается при программировании.
А3-0 и А7-4 – на этих линиях в режиме ПДП контроллер формирует младший байт адреса ОП. Адрес на этих линиях стоит до конца цикла шины и его не надо запоминать во внешнем регистре. В остальное время линии А3-0 являются входами. Комбинация сигналов на этих входах задает внутренний регистр КПДП. То есть внутри КПДП имеется шестнадцать адресуемых устройств.



Рис. 26
D 7-0 – линии адрес/данные. В режиме ПДП в такте Т1 контроллер выставляет на эти линии старший байт адреса ОП. В такте Т2 адрес с этих линий снимается, поэтому его надо фиксировать во внешнем регистре. В остальное время эти линии представляют собой двунаправленную шину данных.
Из вышеизложенного следует, что ВТ37 вырабатывает 16-ти разрядный адрес и может адресовать только 64 Кбайт памяти. Для того, чтобы КПДП мог адресовать 1 Мбайт, в систему вводят страничные регистры (по одному на каждый используемый канал). В эти регистры программист заранее загружает четыре старших разряда адреса. Чтобы обратиться к другой области памяти, надо сменить содержимое страничного регистра.
ADSTB – сигнал, сопровождающий выдачу адреса. Используется для фиксации старшего байта адреса, формируемого на линиях D 7-0 во внешнем регистре.
AEN (address enable) – активный сигнал на этот выход выставляется в режиме ПДП. Обычно этот сигнал используется для блокирования доступа к шине со стороны других устройств системы.
EOP (end of process) – конец операции. Активный сигнал на этом выходе устанавливается, когда счетчик байт канала переходит через ноль. Этот сигнал может оповещать ВУ об окончании передачи. Линия EOP может использоваться и как вход. Если в режиме ПДП внешним образом сформировать на этой линии активный (нулевой) сигнал, передача прекращается.
HRQ (hold request) – запрос на захват. Подается на вход HOLD МП, отключая последний от системной шины.
MR и MW – сигналы на этих выходах в режиме ПДП задают вид операции для ОП.
DACK 3-0 (DMA acknowledge) – подтверждение ПДП для каналов 3-0. Используются для подключения портов ВУ к шине данных. Активный уровень сигнала на этих выходах задается при программировании контроллера.
В IBM PC/XT стоит один КПДП ВТ37. Его регистрам присвоены системные адреса 00h –0fh. Страничные регистры (порты) в ХТ имеют системные адреса:
81h - для канала 2;
82h – для канала 3;
83h – для канала 1;
87h – для канала 0.
Начиная с PC/AT, в системе стоят два ВТ37, соединенных каскадно.
