Организация программно-управляемого обмена
Пространство ввода-вывода. Подсистема ВВ—один из трех компонентов МС, ответственный за связь с периферийными устройствами (ПУ), а в некоторых случаях и за организацию самих ПУ [З].
С точки зрения программиста, работающего на командном уровне, систему ВВ можно представить в виде пространства ВВ IOSEG и ряда команд ВВ, имеющих к нему доступ [11]. Пространство IOSEG обычно организовано в виде набора n-разрядных ячеек—портов, каждый из которых может быть адресован независимо от других. Типичная разрядность порта для большинства МС равна восьми. В некоторых системах допускается объединение двух и более элементарных портов в многобайтовые, доступ к которым реализуется как к единому целому. Так, в МС на базе МП К1810ВМ86 допускаются и 8-, и 16-разрядные порты.
Подобно пространству памяти пространство ВВ, как правило, линейно упорядочено. Каждому элементарному порту поставлен в соответствие его адрес. Множество адресов занимает целочисленный диапазон от 0 до 2P – 1. Правила организации и адресации многобайтовых портов могут соответствовать аналогичным правилам размещения и адресации многобайтовых объектов в памяти МС.
В качестве примера приведем систему ВВ для МС на базе МП ВМ80. Пространство IOSEG такой системы организовано в виде 256 8-разрядных портов ВВ с линейно упорядоченными адресами от 0 до 28 – 1. В распоряжение пользователя предоставляются две команды ВВ, содержащиеся в системе команд:
IN port ;Aport
OUT port ;portA
Архитектура ВМ85А позволяет расширить данное пространство ВВ. К нему добавляется изолированный одноразрядный порт ввода SID и изолированный одноразрядный порт вывода SOD, доступ к которым осуществляется с помощью команд
RIM ;A7SID
SIM ;SODA7
Здесь А7—старший разряд аккумулятора А (см. § 2.7). Далее рассматриваются другие организации подсистемы ВВ.
Программно-управляемый обмен. Между МС и ПУ происходит обмен информацией двух типов: служебной и собственно данных. Служебная информация от МС инициирует действия, связанные с обменом данных, и передается с помощью управляющих слов CW (Control Word). Служебные сообщения от ПУ, информирующие систему о его текущем состоянии, называются словами состояния SW (Status Word). В отличие от них данные передаются с помощью слов данных DW (Data Word) [3, 10].
Объем служебной информации, которой обмениваются ПУ и МС, а также ее интерпретация зависят от типа ПУ. Для наиболее простых устройств, таких как прямо управляемые клавишные матрицы или светодиодные линейки, служебная информация не нужна. В других случаях, например при взаимодействии с накопителем на гибких магнитных дисках, управляющая информация и данные о состоянии ПУ могут иметь значительный объем. В любом случае для связи с ПУ отводится ряд портов ВВ, через которые и проходит вся информация: сигналы управления, слова состояния или непосредственно данные. С точки зрения программиста множество портов ВВ образует пространство доступа к ПУ.
Отметим, что размер пространства доступа в общем случае не зависит от объема информации, которой обмениваются ПУ и МС. Распространена практика последовательной передачи массива информации через один и тот же порт. Это связано не только с экономией пространства IOSEG, но и с минимизацией ширины физического интерфейса ПУ, а также с его стандартизацией. Вместе с тем существует некоторая договоренность или правила обмена информацией между конкретным ПУ и МС, называемые протоколом обмена. Совокупность этих правил—основа для составления драйвера ПУ, представляющего набор подпрограмм, организующих взаимодействие с ним.
В тех случаях, когда процедуры обмена информацией с ПУ инициируются и выполняются непосредственно программой, реализуемой ЦП, говорят о программно-управляемом обмене. Программно-управляемый обмен не является единственным типом обмена. Но судя по аппаратным затратам, это наиболее эффективный тип обмена, поэтому он находит самое широкое применение в разнообразных МС.
Прямой ввод-вывод. В наиболее простом виде процедура ввода или вывода выполняется независимо от состояния ПУ. Такой вид обмена назван прямым или безусловным. Процедуры прямого ВВ в чистом виде возможны только при управлении всегда готовыми к обмену простейшими ПУ. К тому же они являются составными элементами более сложных процедур программно-управляемого обмена, к числу которых относится условный ВВ.
Простейшая процедура ввода информации из подсистемы ВВ связана с чтением отдельного порта пространства IOSEG. С этой целью физические линии подсистемы ВВ упаковываются в байтовые и многобайтовые наборы, состояние каждого из которых может быть передано на шину данных МС во время цикла чтения порта ВВ. Физическое управление вводом состояния конкретного набора лучше всего осуществлять с помощью шинного формирователя с тремя состояниями (рис. 3.1), открываемого стробом при условии его выбора. Выбор или адресация формирователей возлагается на специальную декодирующую схему, называемую логикой выборки кристаллов, которая, в свою очередь, управляется сигналами шины адреса и при необходимости шины управления, ответственными за кодирование размера передаваемых данных: байта, слова, двойного слова.
Рис. 3.1. Схема порта ввода | Рис. 3.2. Схема порта вывода |
Запись данных в порт соответствует их выводу в подсистему ВВ. В простейшем варианте порта вывода (рис. 3.2) данные фиксируются в регистре по стробу или при условии его выбора. Роль адресации регистра выполняет логика выборки кристаллов. При использовании строба данные могут фиксироваться его низким уровнем напряжения, при стробе они должны восприниматься только по его фронту.
Примерами процедур прямого ввода служат следующие подрограммы:
IXHL: PUSH PSW
IN CSD ;Ввод данных из порта CSD
MOV M, A ;Запись данных по адресу HL
POP PSW
RET
IAC: MOV A, C ;Пересылка адреса порта
STA IAC + 5 ;Модификация команды IN 0
IN 0 ;Ввод данных
RET
Процедуры для прямого вывода аналогичны:
OXHL: PUSH PSW
MOV A, M ;Чтение данных по адресу HL
OUT CSD ;Вывод данных
POP PSW
RET
OAC: PUSH PSW
MOV A, C ;Пересылка адреса порта
STA OAC + 7 ;Модификация команды OUT 0
POP PSW ;Восстановление данных
OUT 0 ;Вывод данных
RET
Быстродействия шинных формирователей и регистровых схем обычно достаточно, чтобы поддержать обмен с максимальной для ЦП скоростью (синхронный режим работы системной магистрали). Поэтому подтверждение обмена сводится к как можно более быстрому возврату сигнала подтверждения XACK, образуемому стробами , или по схеме
XACK = IORC∙CSD Ú IOWC∙CSD Ú …
В системах с инверсным сигналом ХАСК частные сигналы подтверждения обмена формируются буферами с открытым коллектором и объединяются по принципу «монтажное ИЛИ». В малых МС с активной по умолчанию линией подтверждения ХАСК не требуется логика подтверждения (см. рис. 3.1, 3.2). Это может быть использовано для упрощения подсистемы ВВ.
Отметим, что в отличие от памяти данные, выводимые и вводимые через порты с одним и тем же адресом, в общем случае никак не связаны между собой. Вместе с тем прямое соединение выходных DO и входных DI линий портов ВВ дает возможность чтения выведенных ранее данных, что может быть полезным в ряде практических случаев, например при тестировании порта вывода или восстановлении его текущего состояния. Однако ввод внешних данных через такой порт невозможен.
Для поддержки двустороннего ВВ очень широко применяется псевдодвунаправленный порт (рис. 3.3). В данной схеме к выходам DO подключены буферы с открытым коллектором, допускающие объединение с линиями ввода внешних данных по схеме «монтажное ИЛИ». При этом нагрузочные резисторы могут быть встроены в порт. Установка на шине порта вывода напряжения высокого уровня обеспечивает ввод внешних данных без каких-либо искажений. При необходимости некоторые линии ввода могут быть выборочно замаскированы установлением на соответствующих им линиях DO напряжения низкого уровня. Допускается в качестве входных линий использовать лишь часть порта, тогда как оставшаяся часть может выполнять роль выходной шины. В целом схема, приведенная на рис. 3.3, достаточно универсальна, что объясняет ее широкое распространение, например, в однокристальных микроЭВМ.
Рис. 3.3. Схема псевдодвунаправленного порта | Рис. 3.4. Процедуры программно-управляемого обмена: а—прямого; б—условного с занятием цикла; в—условного совмещенного |
Условный ввод-вывод. Способность ПУ к скоростному ВВ данных не безгранична и, как правило, во много раз ниже скорости работы ЦП. Поэтому прежде чем приступить к чтению новых данных из порта ввода, необходимо удостовериться, что ПУ готово предоставить или уже предоставило эти данные. Иначе операция сведется к вводу недействительных или старых данных. Аналогичная ситуация складывается и при выводе данных, когда требуется проверка готовности ПУ к приему новых данных. В противном случае неразрешенный вывод со стороны ЦП может привести к потере нового или предыдущего элемента данных.
Типичное решение проблемы синхронизации обмена состоит в сопровождении операции условного ВВ специальным сигналом готовности RDY (Ready), генерируемым ПУ. Сигнал вводится в МС в составе слова состояния SW и служит для информирования ЦП о готовности ПУ принять или передать новые данные.
Наряду с прямым (рис. 3.4, а) существуют два типа условного ВВ: с занятием цикла (рис. 3.4, б) и совмещенный (рис. 3.4, в). В первом случае МС зависает на цикле ожидания готовности, тратя на это все машинное время. Во втором случае, если ПУ не готово к обмену, ЦП возвращается к основной задаче без выполнения операции ВВ. Однако он может снова проверить готовность ПУ к обмену и при удачном исходе выполнить ее.
После завершения операции ВВ сигнал готовности RDY должен быть снят и выставлен заново только при новой готовности к обмену. С этой целью ПУ следует проинформировать об окончании операции, для чего используется включенный в одно из управляющих слов CW сигнал подтверждения АСК (Acknowledgement). Протокол обмена служебной информацией такого типа (рис. 3.5) называется квитированием. Он обеспечивает надежную асинхронную передачу данных со скоростями, определяемыми ПУ.
Рис. 3.5. Временные диаграммы условного обмена:
а—ввод; б—вывод
Приведем пример процедуры условного ВВ с занятием цикла и программно-управляемым квитированием (см. рис. 3.4, б):
PUSH PSW
WAIT1: IN CSSC ;Ввод слова состояния
ANI RDY ;Выделение сигнала RDY
JZ WAIT1 ;Если RDY = 0, то ждать
POP PSW
;Процедура прямого ВВ
PUSH PSW
MVI А, АСК ;Вывод сигнала
OUT CSSC ;подтверждения АСК
WAIT2: IN CSSC ;Выделение сигнала RDY
JNZ WAIT2 ;Если RDY = 1, то ждать
MVI A, NACK ;Сброс сигнала
OUT CSSC ;подтверждения АСК
POP PSW
RET
В сравнении с прямым условный ВВ с программным квитированием связан с увеличением аппаратных затрат (рис. 3.6). Однако это наиболее типичный вид обмена с ПУ. Он распространен в системах, где эффективность не связана с ожиданиями. При этом вариант совмещенного условного обмена обеспечивает оперативное отслеживание внешних событий и своевременную реакцию на их возникновение.
Рис. 3.6. Схема порта ввода с программным квитированием
Признаком окончания операции может служить само обращение к порту данных. Это упрощает как схему порта, так и процедуру обмена, освобождая пользователя от работы с управляющим словом.
Очень часто на входе порта ввода (рис. 3.7, а) предусматривается регистр-защелка, фиксирующий входные данные по стробу STB (Strobe), генерируемому ПУ. Устанавливает флажок готовности IBF (Input Buffer Full), инициируя операцию ввода (рис. 3.7, б). Флажок сбрасывается автоматически при чтении содержимого порта ввода. Необходимо обратить внимание на логику формирования флажка готовности, который переключается только после завершения операции зашелкивания во входной регистр или считывания из него данных. Что произойдет, если это условие не будет выполнено?
Рис. 3.7. Порт условного ввода: а—структурная схема; б—временные диаграммы | Рис. 3.8. Порт условного вывода: а—структурная схема; б—временные диаграммы |
Введение логики формирования флажка готовности в состав входного порта освободило ПУ от необходимости прямого управления им, придало процедуре обращения к порту с обеих сторон симметричный вид. Применение этой методики к выходному порту приводит к схеме на рис. 3.8, а, в которой роль флажка готовности выполняет флажок (Output Buffer Full), сигналом окончания операции вывода и установки флажка OBF служит сигнал АСК, генерируемый ПУ. Процедуры условного ВВ упростились. Например, для условного ВВ с занятием цикла имеем
IA: IN CSS ;Ввод слова состояния
ANI IBF ;Выделение флажка IBF
JZ IA ;Если IBF = 0, то ждать
IN CSD ;Иначе—ввод данных
RET
ОА: PUSH PSW
WAIT: IN CSS ;Ввод слова состояния
ANI NOBF ;Выделение флажка
JZ WAIT ;Если = 0, то ждать
POP PSW
OUT CSD ;Иначе—вывод данных
RET
При необходимости на выходе порта вывода может быть предусмотрен трехстабильный буфер, открываемый сигналом АСК. Это важно, например, при организации двунаправленного порта (рис. 3.9). Состояние входного и выходного регистров порта отображается флажками готовности IBF и OBF соответственно. Одновременная активизация линий АСК и STB реализует выходной порт с обратной связью.
Рис. 3.9. Порт двунаправленного обмена:
а—структурная схема; б—временные диаграммы
Рассмотренные выше порты являются простейшими схемными элементами, на основе которых реализуется связь с ПУ. Они образуют первый, наиболее близкий к МС уровень аппаратных средств подсистемы ВВ. В ряде случаев этот уровень единственный.
Периферийные БИС
Адаптеры и контроллеры периферийных устройств. Под ПУ понимается любое устройство, обменивающееся информацией с МС. Роль физической среды обмена выполняют порты ВВ. Примерами ПУ могут служить клавиатура, индикаторы, счетчики/таймеры, преобразователи информации, исполнительные устройства, цифровые датчики и т. д. Некоторые из этих устройств или их определенные части могут встраиваться в подсистему ВВ и размещаться непосредственно за портами.
Периферийные устройства, встроенные в МС, могут либо представлять законченные автономные средства, например системный таймер или клавишный регистр, либо образовывать дополнительные средства связи с устройствами, расположенными вне МС. В качестве примеров внешних ПУ можно привести дисплеи на электронно-лучевых трубках (ЭЛТ), внешние запоминающие устройства, каналы передачи информации, измерительные приборы и т. д. Связь с устройствами подобного рода осуществляется встроенными в МС промежуточными преобразователями, которые совместно с относящимися к ним портами ВВ получили название периферийных адаптеров и контроллеров. В некоторых наиболее сложных случаях им присвоен статус периферийного сопроцессора.
Унификация интерфейсов внешних ПУ или периферийных интерфейсов привела к созданию ряда стандартных адаптеров и контроллеров. В их функции кроме ВВ входит: формирование периферийного интерфейса; физическое управление внешними ПУ в соответствии с командами ЦП; перенос протокола обмена с ЦП на более высокий уровень интеллектуальности; электрическое согласование сигналов.
Передача функции физического управления ПУ его периферийному адаптеру или контроллеру освобождает ЦП от трудоемких обязанностей низкоуровневого управления устройствами. Функции ЦП сводятся к общему управлению контроллеров ПУ с помощью высокоуровневых команд и слов состояния, что упрощает ПО, уменьшает загрузку ЦП и повышает общую производительность МС [7].
Благодаря успехам электронной промышленности во второй половине 70-х гг. удалось разработать множество однокристальных периферийных адаптеров и контроллеров, а также ряд вспомогательных схем к ним, которые называются периферийными БИС. Приведем далеко не полный набор таких БИС для МС на базе МП ВМ80/ВМ85А:
К589ИР12 Многорежимный буферный регистр
КР580ВВ51/ВВ51А Программируемый связной адаптер
КР580ВИ53, 8254 Программируемый интервальный таймер
КР580ВВ55/ВВ55А Программируемый периферийный адаптер
КР580ВТ57 Контроллер прямого доступа к памяти
КР580ВН59, К1810ВН59А Программируемый контроллер прерываний
КР580ВГ71/ВГ72, К1818ВГ93 Контроллер накопителя на гибких магнитных дисках
8273 Контроллер линии передачи данных
КР580ВГ75 Контроллер ЭЛТ
КР580ВВ79 Контроллер клавиатуры и ЭЛТ
КР580ВК91А, КР580ВА93 Приемопередатчики шины IЕЕЕ-488
8292 Контроллер шины IEEE-488
8041 Универсальный периферийный интерфейс
К1810ВМ89 Сопроцессор ВВ
Этим приборы не только упрощают разработку ПО и повышают производительность МС, но и облегчают проектирование аппаратуры. Заменяя большие объемы аппаратных средств, которые в противном случае пришлось бы разрабатывать на основе малой логики, они повышают компактность и надежность систем. Если первые контроллеры (КР580ВВ51/ВИ53/ВВ55/ВТ57/ВН59) были ориентированы на решение общих прикладных задач, то последующие либо их улучшали (КР580ВВ51А/ВВ55А, К1810ВН59А), либо выполняли более узкие функции (КР580ВГ72/ВГ75/ВВ79/ВК91А и др.).
В любом случае эти устройства решали узкоспециальные задачи, такие как организация параллельного или последовательного интерфейса, распределение интервалов времени или управления ЭЛТ. Однако несмотря на большое число контроллеров и их повышенную гибкость остается еще много нерешенных проблем управления ПУ. Для их решения вводятся универсальные ПУ сопряжения типа 8041 фирмы Intel [59], которые представляют собой однокристальные микроЭВМ с системным интерфейсом подчиненного типа (см. § 4.9). Еще большую общность предоставляют сопроцессоры ВВ [58], например К1810ВМ89.
Стандартная шина для периферийных БИС. Периферийные БИС серии КР580 удовлетворяют электрическим и логическим спецификациям на микропроцессорную шину Microbus фирмы National Semiconductor (США)—унифицированную 8-разрядную шину, объединяющую в функционально законченный модуль отдельные компоненты, размещенные в непосредственной близости друг от друга. В 1978 г. она была признана стандартным интерфейсом периферийных БИС (стандарт Р696-3 IEEE), обеспечивающим совместимость уже существующих микропроцессорных кристаллов с вновь разработанными [42].
Основная задача проектирования систем на базе МП и микропроцессорных БИС состоит в выборе внутрисистемной магистрали и сопряжении с ней приборов. Функциональные требования, накладываемые на внутрисистемную магистраль, рассмотрены в § 1.3. Они были сформулированы исходя из возможностей физических интерфейсов МП и ЦП на их основе. Другие требования предъявляются к интерфейсам периферийных БИС, призванным расширить функциональные возможности МС на аппаратном уровне. Попытка унифицировать эти требования привела к разработке ряда стандартных внутренних интерфейсов периферийных БИС, в числе которых шина Microbus. В случае простейших МС, состоящих из нескольких кристаллов, она может интерпретироваться как системная.
Двунаправленная трехстабильная шина данных D7—D0 (Data Bus) используется для ВВ данных, информации о состоянии и управляющих слов, организованных в 8-разрядные наборы (рис. 3.10). В простейших случаях эти линии могут быть однонаправленными.
Рис. 3.10. Временные диаграммы сигналов шины
а—состав сигналов периферийных БИС; б—цикл чтения; в—цикл записи;
г—цикл обработки запроса прерывания; д—цикл обработки запроса ПДП
Наличие напряжения низкого уровня на линии выбора кристалла (Chip Select) показывает, что производится обращение к данному прибору. Сигнал должен действовать в сочетании с другими сигналами, такими как строб чтения или записи . Так, при напряжении низкого уровня на входной линии RD (Read) разрешает прибору выдачу информации на шину D7—D0 при условии, что он выбран ( = 0). Необходимо, чтобы на срезе строба на линиях шины D7—D0 находились действительные данные. В случае невыполнения условия = 0 передатчики шины данных прибора должны находиться в высокоомном состоянии. Аналогично низкий уровень напряжения на входном контакте (Write) в совокупности с низким уровнем на входе дает возможность БИС принять данные из шины D7—D0. Для приборов первого поколения информация на шине данных D7—D0 должна быть истинной во время действия сигнала записи . БИС второго поколения требуют ее истинности только на срезе сигнала записи.
Во многих МС предполагается использование раздельных стробов чтения-записи при обращении к памяти— , и к портам BB— , (изолированный ВВ). В тех случаях, когда БИС содержит и память, и порты ВВ, должны быть предусмотрены обе пары стробов чтения-записи.
Сигналы адресной шины А15—А0 применяются для адресации внутренних регистров БИС сопряжения. Сигналы адреса, поступающие на интерфейс, выбирают один из его внутренних регистров или ячеек памяти и в сочетании с входными сигналами , или определяют тип выполняемого обмена: ВВ данных, ввод управляющей информации или вывод состояния БИС.
Выходной сигнал готовности к обмену READY предназначен для реализации асинхронного обмена по шине Microbus. Стробы и будут сняты только после появления активного уровня на линии READY, что гарантирует успешный обмен данными с медленно действующими интерфейсными БИС. В приборах с быстрым доступом ответный сигнал READY может отсутствовать.
Сигнал сброса (допускается вариант прямого сигнала RESET) выдается МП при включении источника питания или нажатии кнопки сброса. При получении данного сигнала интерфейсная БИС устанавливается в исходное состояние, при этом шина данных БИС должна быть отключена от системной шины Microbus.
Перекрестные устройства часто выдают в систему запросы на прерывание IRQ0, IRQ1,…, которые служат признаками программно не предсказуемых событий. Сигнал прерывания IRQ, после того как он выработан асинхронно по отношению к другим сигналам шины, должен оставаться в активном состоянии до тех пор, пока не будет обработан. Он снимается только по срезу соответствующего строба или .
Для МС с ПДП в шине Microbus предусмотрены один обычный DRQ (Direct Request) и два специальных сигнала: (Direct Acknowledge) и ТС (Terminal Count). Каждый ПДП-канал формирует свой собственный сигнал запроса DRQ0, DRQ1,…, на который МС реагирует выдачей специального сигнала подтверждения (квитанции) . Этот сигнал должен быть эквивалентным сигналу выборки кристалла и иметь такие же временные характеристики. При этом в канале ПДП одновременно выполняются операции чтения и записи. Еще один специальный сигнал ТС выдается контроллером ПДП-каналу как указание о том, что настоящий цикл обмена является последним циклом для текущего блока данных.
Микросистемы, построенные с расчетом на универсальную 8-разрядную шину Microbus, обеспечиваются средствами прямого сопряжения с большинством выпускаемых сегодня периферийных БИС, ориентированных на стандарт шины Microbus. Благодаря этому возможна дальнейшая модификация МС, что очень важно для сложных МПК.
Вариантами, альтернативными интерфейсу Microbus, являются двухшинные интерфейсы внутриплатного уровня. Сюда прежде всего следует отнести двухшинную магистраль ВМ85А, обеспечивающую прямое подключение периферийных БИС и МП ВМ85А. Вторым широко распространенным в отечественной практике стандартом на внутрисистемную магистраль периферийных БИС является МПИ-шина (аналог Q-bus). Стандарт предназначен для МПК БИС серий К1801, К1809, К581, К588 и др.
Приведенная на рис. 2.17 схема 5-кристального ЦП не обеспечивает МС полным набором сигналов шины Microbus. Отсутствуют такие важные для системы линии, как , ,…—линии выбора кристалла, IRQ0, IRQ1,…—линии запросов на прерывание, а также набор сигналов ПДП.
Сигналы обычно формируются из комбинации старших разрядов адресной шины ADR15—ADR0 логикой выбора кристалла, которая представляет собой комбинационный дешифратор и легко реализуется с помощью ПЗУ, ПЛМ [13, 50] или логических схем малой степени интеграции. Для получения оставшихся сигналов шины Microbus необходимо в МС ввести контроллер обработки прерываний и контроллер ПДП (рис. 3.11), реализуемые с помощью специальных БИС типов КР580ВН59 и КР580ВТ57 соответственно [1].
Рис. 3.11. Схема контроллера шины Microbus | Рис. 3.12. Многорежимный буферный регистр ИР12: а—структурная схема; б—условное графическое обозначение |
Дата добавления: 2019-02-07; просмотров: 829;