- •Базовый компьютер. Терминология
- •1.1. Типы шин
- •1.2. Центральная часть компьютера
- •1.3. Клавишное устройство ввода
- •1.4. Контроллер прямого доступа к памяти
- •1.5. Контроллер гибкого диска
- •1.6. Дисковод гибкого диска
- •1.7. Жесткий диск
- •1.8. Интерфейсы жесткого диска
- •1.9. Системная шина с квитированием
- •1.10. Шина расширения
1.9. Системная шина с квитированием
Устаревшие интерфейсы Multibus и 15Априведены в этом разделе с целью показать в наиболее простой форме общие принципы подключения периферийных устройств к системным шинам, изложить накопленный схемотехнический опыт, который используется в более сложных современных интерфейсах. Кроме того, средства сопряжения этих интерфейсов аналогичны средствам подключения каких-либо блоков к шинам процессоров (микроконтроллеров) периферийных устройств. Поэтому этот раздел имеет практическую значимость. Функциональные признаки шины Multibus с квитированием:
-
Дисциплина обслуживания - однозвенная децентрализованная временная коммутация параллельного информационного канала, работающего по типу «задатчик-исполнитель».
-
Структура информации-8-, 16- или 32-битные адреса и данные заданного формата.
-
Временное согласование - асинхронное, а точнее апериодическое, так как в шине используется обязательный интерфейсный сигнал квитирования, сообщающий о завершении цикла на шине.
-
Арбитраж-фиксированный, определяемый местом подключения устройства к арбитру, и циклический (равноправный). Различают схемы параллельного и последовательного арбитража.
-
Режимы обмена - прерывание и прямой доступ.
-
Вид передачи с учетом направления - симплексный и полудуплексный.
-
Контроль данных - в базовом варианте отсутствует.
-
Способ передачи информации - параллельно по битам и последовательно по байтам (словам).
-
Представление сигналов на шине - отрицательная логика (логической 1 соответствует низкий уровень напряжения, а логическому 0 - высокий уровень).
Системный интерфейс Multibus является магистральным (машинным и многопроцессорным) интерфейсом с квитированием. Интерфейсы с квитированием иногда называют асинхронными интерфейсами. Интерфейс Multibus удовлетворяет требованиям стандарта, принятым Институтом по электронике и электротехнике (1ЕЕЕ), и является аналогом интерфейса IEEE 796. Различают интерфейс Multibus-1, проложивший путь к многошинному подходу построения интерфейсов, и интерфейс Multibus-2, совершенствующий первый и расширяющий диапазон его применения (например, использования 32-разрядных микропроцессоров, реализации монопольного режима передачи данных, применения параллельных и последовательных системных шин и т. д.), В предлагаемой главе основное внимание уделяется интерфейсу Multibus-1 (в дальнейшем просто Multibus). Аналогом интерфейса Multibus является отечественный интерфейс И41. Интерфейс Multibus может быть использован для построения вычислительных систем на базе 32-разрядных (64-разрядных) микропроцессоров.
Для простого варианта персонального компьютера (ПК) задатчик (процессор) выполняет выбор ячейки ОП с помощью 20-разрядного адреса, устанавливаемого на линиях (односторонней шины адреса) Ā0-Ā19. С целью доступа к регистрам периферийного устройства (ПУ) используется 10-разрядный адрес Ā0-Ā19. причем разряд является младшим. Передача данных осуществляется по двунаправленной шине данных Ď0-Ďl5 (бит D0 - младший). Логическая 1 на шинах адреса и данных представляется низким уровнем (Н), а логический 0 - высоким уровнем (В) сигнала (инверсная логика). Чтобы подчеркнуть этот факт, разряды адреса и данных изображаются на схемах с чертой над символом, например Ā0-Ā19 и Ď0-Ď7. Следующий пример показывает представление уровней адреса 378h (h -знак 16-ричной записи) регистра адаптера ПУ на шине адреса интерфейса.
А9 А8 А7 А6 А5 А4 А3 А2 А1 А0
1 1 0 1 1 1 1 0 0 0
В В Н В В В В Н Н Н - прямая логика
Н Н В Н Н Н Н В В В- инверсная логика
Интерфейс обеспечивает выполнение следующих процедур: арбитраж, прерывание и пересылку данных. Кроме того, обмен данными между задатчиком и исполнителем через интерфейс может быть выполнен в режимах безусловного и условного (с опросом флага готовности) программного обмена по инициативе процессора, обмена в режиме прерывания по инициативе ПУ процессора и обмена в режиме прямого доступа к памяти (ПДП), при котором аппаратно реализуется передача данных между ОП и ВЗУ.
Процедура прерывания имеет два варианта реализации: прерывание с интерфейсным вектором и прерывание с внеинтерфейсным вектором. В первом случае адрес вектора прерывания передается по шине данных интерфейса от исполнителя к задатчику. а во втором случае не передается.
В ПК наиболее употребительным является внеинтерфейсное прерывание, при котором в контроллер прерывания задатчика поступают запросы прерывания по интерфейсным линиям INT0-INT7. Сигнал INT0 имеет наивысший приоритет, и его формирует системный таймер (часы) ПК. Запрос INT1, вырабатывает клавиатура. Прерывание заключается в переходе на программу обработки прерывания по 4-байтному коду (вектору прерывания), хранящемуся в памяти и определяющему программу обслуживания (драйвер) ПУ, требующего прерывание. Адрес вектора прерывания (адрес ячейки памяти) используется для нахождения этого вектора. Различают немаскируемые внутренние и внешние прерывания (например, при делении на 0, прерывание от процессора) и внешние (маскируемые) прерывания от адаптеров ПУ.
В интерфейсе реализуются следующие пересылки данных: запись в порт (ячейку памяти) и чтение из порта (ячейки памяти). Для реализации этих операций используются интерфейсные сигналы: чтение порта (IORC), чтение памяти (MRDC), запись в порт (IOWC), запись в память (MWTC), которые формируются задатчиком (З1). Обмен осуществляется в режиме квитирования с формированием исполнителем ответного сигнала ХАСК. Временные диаграммы чтения данных из порта (памяти) и записи данных в порт (память) представлены соответственно на рис. 1.25 и 1.26.
Рис. 1.25. Чтение данных
Рис. 1.26.3апись данных
Из временной диаграммы чтения видно, что сигнал IORC (MRDC) должен быть установлен не менее чем за 50 не после выдачи адреса. Этот период времени необходим для компенсации переходных процессов, связанных с декодированием адреса исполнителем.
Кроме того, после снятия сигнала IORC (MRDC) адрес должен оставаться на линиях шины минимум 50 нс. Ответный сигнал ХАСК может совпадать по времени с моментом выдачи данных или следовать за ним. Сброс ХАСК выполняется после снятия IORC (MRDC). Сигнал ХАСК удерживается максимум 65 нс после снятия сигнала IOWC (IORC) или MWTC (MRDC). При записи адрес и данные должны быть установлены как минимум за 50 нс до появления сигнала IOWC (MWTC) и сняты спустя не менее чем через 50 нс после сброса IOWC (MWTC). Эта задержка связана, во-первых, с необходимостью декодирования адреса и, во-вторых, с целью возможности записи данных как по переднему, так и по заднему фронту сигнала IOWC (MWTC). На рис. 1.27 показана структурная схема подключения к интерфейсу следующих портов: регистра ввода (РВв) и регистра вывода (РВыв).
Термины Ввод или Вывод следует всегда рассматривать относительно процессора, то есть процессор выводит байт данных и записывает в порт РВыв ПУ или процессор читает содержимое порта РВв ПУ и вводит в собственные регистры.
Рис. 1.27. Структурная схема подключения регистров РВв и РВыв к интерфейсу
Под портом понимается адресуемый триггер, регистр или схема. Схема (рис. 1.27) содержит шину адреса (ША), шину управления (ШУ), шину данных (ШД) интерфейса, дешифратор адреса (ДшА), дешифратор управляющих сигналов (ДшУС), приемопередатчик (ПП), 8-разрядные регистры РВв и РВыв и передатчик, формирующий ХАСК. Рассмотрим работу схемы в режиме вывода данных (записи в РВыв) в соответствии с временной диаграммой (рис. 1.26). Процессор устанавливает адрес Ā0-Ā9 на ША и данные D0-D7 на ШД интерфейса. Адрес и данные поступают на все ПУ, подключенные к интерфейсу, но только одно ПУ с помощью ДшА декодирует собственный адрес, например 3C0h. В этом случае на выходе ДшА формируется сигнал ВыбПУ. разрешающий работу ДшУС. Данные проходят через ПП, открытый для передачи от В к А (от ШД к внутренней шине данных (ВШД)). ПП выполняет двустороннюю передачу данных в зависимости от сигнала на входе Т. Если Т= 1, то данные передаются с ВШД на ШД интерфейса. Если Т=0, то наоборот (ШД→ВШД). Так как в этот момент времени сигнал ЧтРВыв=0 (пассивный уровень), то данные проходят через ПП и поступают на входы РВыв. Через 50 нс после декодирования адреса (формирования сигнала ВыбПУ) процессор устанавливает сигнал записи IOWC. по которому дешифратор ДшУС вырабатывает сигнал ЗпРВыв=1 (активный уровень), записывающий данные с ВШД в РВыв и формирующий сигнал квитирования ХАСК, сообщающий процессору о завершении операции. Если сигнал ХАСК не поступает в процессор, то считается, что произошла ошибка на интерфейсе.