Микропроцессор В1801ВМ1 его структура и система команд

Микропроцессор В1801ВМ1, его структура и система команд Структура микропроцессора В1801ВМ1 Однокристальный 16-разрядный микропроцессор К1801ВМ1 предназначен для выполнения следующих функций: вычисление. адресов операндов и команд. обмен информацией с другими устройствами; подключенными к системной магистрали; обработка операндов; об р аботка п р е р ываний от клавиатуры и устройств пользователя, подключенных к разъему порта ввода-вывода.
Процессор является единственным активным устройством микроЭВМ, управляющим циклами обращения к системной магистрали и обрабатывающим пр е рывания от пассивных устройств, которые могут посылать или принимать информацию только под управлением пр о цессора. Микропроцессор К1801 ВМ 1 работает в БК с тактовой частотой 3 МГц и содержит следующие основные функциональные блоки : 16-разрядный операцио н ный блок, служащий для формирования адресов команд и операндов, выполнения
логич е ских и арифметических опера ц ий, хранения операндов и результатов; блок микропрограммного управ ле ния , вырабатывающий последовател ь ность микрокоманд, Соот в етствую щу ю коду принятой м а шинной команды. Этот блок построен на базе программируемой логической матрицы (ПЛМ). с одержащей 250 логических произведений; блок прерываний, организующий приоритетную систему прерываний ( прием и п редварительная обработка
внешних и внутренних запросов на прерывание); интерфейсный блок, о беспечивающий обмен информацией между микропроцессором ром и прочими устройств а ми, по д ключ е нными к сист е мной магистрали. Этот же, блок ос уществляет арбитраж при операциях прямого доступа к п а мяти, формир у ет последовательность. управляющих сигналов: блок с и с те мной магистрали, связывающий внутреннюю магистраль однокристального микропроцессора с внешней , управляющий усилителями приема и передачи ин формации на совмещенные выводы адресов и данных; схема тактирования, обеспечивающая синхронизацию работы внутренних блоков микропроцессора. Система команд, реализованная в ПЛМ блока микропрограммного управления микропроцессора К1801BM1, совпадает с системой команд наиболее распространенных отечественных мини- и микро-ЭВМ типа “Электроника 60” (ДВК-2. 3, 4 и т.п.) и практически аналогична принятой для компьютеров серии DEC. Предусмотрен также ряд специальных команд, предназначенных для работы с системным
ПЗУ К1801РЕ1. Сигналы AD0-AD15 представляют собой адреса и данные, передаваемые по совмещенной системной магистрали. Передача адресов и данных по одним и тем же линиям связи обеспечивается путем разделения этих операций во времени. Группа сигналов SYNC, DIN, DOUT, WTBT, RPLY служит для управления передачей информации по системной магистрали: SYNC – вырабатывается процессором как указание, что адрес находится на выводах системной магистрали,
и сохраняет активный уровень до окончания текущего цикла обмена информацией; RPLY – вырабатывается пассивным устройством в от в ет на сигналы DIN и DOUT . При отсутствии сигнала RPLAY (т. е. когда выбранное устройство- регистр или ячейка памяти – не отвечает) процессор отсчитывает 64 такта синхрогенератора и затем отрабатывает прерывание по зависанию (вектор 4); DIN – предназначен для организации ввода данных (когда микропроцессор во время действия
сигнала SYNC готов принять данные от пассивного устройства) и ввода адреса вектора прерывания ( DIN вырабатывается совместно с сигналом IAK0 при пассивном уровне SYNC) ; DOUT – означает, что данные, выдаваемые микропроцессором, установлены на выводах системной магистрали; WTBT – указывает на р а б о ту с отдельными байтами и вырабатывается при обра ще н и и по нечетном у адресу (операнд – старший байт) или при отработке байтовых коман д . Сигнал VIRQ является запросом на пре р ывание от внешнего устройства , информи р ующим микропроцессор о готовности устройства передавать адрес вектора прерывания. Если прерывание разрешено, то в ответ на этот сигнал процессор вырабатывает сигналы DIN и IAK0. Сигнал IRQ1 обеспечивает управление режимом “СТОП-ПУСК” процессора с внешнего переключателя. Низкий уровень сигнала (активный) соответствует режиму “СТОП”.
Сигналы IRQ2 и IRQ3 вызывают прерывания по фиксированным векторам 100 8 и 270 8 соответственно (при переходе из высокого уровня в низкий) . Сигнал предоставления прерывания IAK0 процессор вырабатывает в ответ на внешний сигнал VIRQ . Сигнал IAK0 передается по очереди, начиная с устройства с максимальным приоритетом, ретранслируясь от одного устройства к другому в порядке уменьшения приоритетов.
Устройство с наибольшим приоритетом из числа выставивших запрос на прерывание (сигнал VIRQ ) запрещает дальнейшее распространение сигнала IAK0, таким образом запрещая на время обработки данного прерывания запросы от устройств с тем же или более низким приоритетом. Однако устройства с более высоким приоритетом могут прервать обработку повторным (“вложенным”) прерыванием. Сигнал DMR вырабатывается внешним активным устройством, требующим передачи
ему системной магистрали (режим прямого доступа к памяти). В ответ па него процессор устан а вл и вает сигнал DMGO , предоставляю щ ий системную магистраль внешнему устройству с наивысшим приоритетом из числа запросивших прямой доступ (механизм реализации приоритетов – тот же, что и для прерываний). Это устройство прекращает дальнейшее распространение сигнала
DMGO и выставляет сигнал SACK , означающий, что устройство прямого доступа к памяти (ПДП) может производить обмен данными, независимо от процессора используя стандартные циклы обращения к системной магистрали. Низкий уровень сигнала BSY означает , что микропроцессор начинает обмен по магистрали (т.е. что она занята для других устройств). Переход сигнала из низкого уровня в высокий указывает на окончание обмена. Сигнал ава р ии источника питания D C L O вызывает установку микропроцессора в исходное состояние и появление сигнала INIT . Сигнал аварии сетевого питания ACLO вызывает пер е ход микропро це ссора на обработку прерывания по сбою питании (высокий уровень свидетельствует о нормальном сетевом напряжении). Сигнал SEL1 инициализирует обращение к регистру управления системными внешними устройствами, а сигнал SEL2 – к регистру порта ввода-вывода. Направление обмена данными между микропроцессором и регистрами определяется сигналами
DIN или DOUT соответственно. Выставление сигнала RPLY от этих регистров не требуется. Длительности сигналов SEL1 и SEL2 совпадают с длительностью сигнала BSY . Сигнал INIT является ответом микропроцессора на сигнал DCLO и используется, как правило, для установки периферийной части системы в исходное состояние. Общие характеристики микропроцессора К1801ВМ1 Представление чисел
В дополнительном коде с фиксированной запятой Виды команд Безадресные, одноадресные, двухадресные Виды адресации Регистровая, регистровая косвенная, автоинкрементная, автоинкрементная косвенная, автодекрементная, автодекрементная косвенная, индексная, индексная косвенная Количество регистров общего значения 8 Количество уровней прерывания 4
Тип системной магистрали Q-bus (МПИ, ОСТ 11.305.903-80) Адресное пространство, Кб 64 Тактовая частота, МГц До 5 Максимальное быстродействие при выполнении регистровых операций, оп./с До 50 Потребляемая мощность, Вт Не более 1 Напряжение питания, В +5 ( ± 5% ) Уровни сигналов, В: “лог.0”(активный уровень)
Менее 0,5 “лог.1” Более 2,4 Нагрузочная способность по току, мА 3,2 Емкость нагрузки, пФ До 100 Технология изготовления N-МОП Конструкция Плананарный металлокерамический корпус с 42 выводами Система команд микропроцессора К1801ВМ1 Данный процессор содержит 8 регистров общего назначения (РОН, обозначение в описании команд RN, где N=0 7)один внутренний регистр состояния процессора PSW в котором задействовано 5 битов, каждый из которых имеет свои имена: C-бит переполнения T-бит трассировки V-бит арифметического переполнения Z-бит равенства 0 N-бит отрицательного числа Два регистра из РОН (R6 и R7) отвечают за следующие функции: R6 (SP)-Указатель стека R7 (PC)-Счетчик команд. При описании команд, используются следующие обозначения: “SS”
– поле адресации операнда-источника “DD” – поле адресации операнда-приемника “XXX”- смещение (-128 +128; 8 бит) “N” – число, 3 бита “NN” – число, 6 бит “(N)” -содержимое ячейки или регистра N “s” – операнд -источник “d” – операнд -приемник “r” – содержимое регистра “<=” – становится равным “X” – относительный адрес “%” – определение регистра “/” – логическое И “/” – логическое ИЛИ “\” – исключающее ИЛИ “|” –
НЕ Операции над разрядами PSW “*” – установка/сброс по результату “-” – состояние разряда не меняется “0” – сброс “1” – установка Методы адресации МЕТОД R Метод мнемоника регистровая R косвенная регистровая ( R ) или @R автоинкрементная ( R )+ косв. автоинкрементная @( R )+ автодекрементная -( R ) косв. автодекрементная @-(
R ) индексная X( R ) косв. индексная @X( R ) Команды работы с программами 0 HALT останов 01 WAIT пауза – ожидания прерывания 02 RTI возврат из прерывания ( PC <=(SP)+) 03 BPT отладочное прерывание (-(SP) <=PSW <=(16) ) 04 IOT вызов системы ввода вывода ( -(SP) <=PC <= (22) ) 05 RESET сброс магистрали и процессора 06 RTT возврат, с запретом прерывания по
Т-разряду до исполнения следующей команды ( PC<=(SP)+ PSW<=(SP)+ ) 0001DD JMP безусловный переход ( PC <= d ) 00020R RTS возврат из подпрограммы ( PC <= R <=(SP)+ 000240 NOP нет операции 004RDD JSR вызов подпрограммы (-(SP) <= R <= PC <= d ) 0064NN MARK восстановление стека ( -(SP)<=PC +(2 x NN) PC<=R5 <=(SP)+ 077RNN SOB выч. 1 и ветвл если (R#) не 0 ( R# <= R#-1 PC<=PC=( 2xNN) ) 104000-104277 EMT вызов подпрограммы ПЗУ (-(SP)<= PSW <= (32) -(SP)<= PC <= (30) ) 1064SS MTPS запись PSW ( PSW <= s ) 1064Dd MFPS чтение PSW ( d <= PSW ) Переходы по условию (ветвления)
Базовый КОП ± XXX 15 8 7 0 Если условие выполняется, то (PC) <= (PC) + (2 x NN) 000400 + XXX BR безусловный переход 001000 + XXX BNE нет равенства ( нулю ) Z=0 001400 + XXX BEQ равенство ( нулю ) Z=1 102000 + XXX BVC арифм.переп. отсутствует V=0 102400 + XXX BVS произошло арифм.переп. V=1 103000 + XXX BCC перенос отсутствует
C=0 103400 + XXX BCS произошел перенос С=1 Переход по знаку 10 + XXX BPL знак плюс N=0 100400 + XXX BMI знак минус N=1 002000 + XXX BGE больше или равно (нулю) N\V=0 002400 + XXX BLT меньше (нуля) N\V=1 003000 + XXX BGT больше (нуля) Z/(N\V)=0 003400 + XXX BLE меньше или равно(нулю) Z/(N\V)=1
Переход без знака 101000 + XXX BHI больше C/Z=0 101400 + XXX BLOS меньше или равно C/Z=1 103000 + XXX BHIS больше или равно C=0 103400 + XXX BLO меньше C=1 Одно-операторные команды Код операции (КОП) DD 15 6 5 0 Условные обозначения: “*”=0 операции над словами 1 операции над байтами N Z C V 0003DD SWAB перестановка байтов * * 0 0 * 050DD
CLR(B) очистка (d) <=0 0 1 0 0 * 051DD COM(B) побитная инверсия (d) <= (|d) * * 0 0 * 052DD INC(B) прибавление 1 (d) <=(d)+1 * * *- * 053DD DEC(B) вычитание 1 (d) <=(d)+1 * * *- * 054DD NEG(B) изменение знака (d) <=-(d) * * * * * 055DD ADC(B) прибавить перенос (d)<=(d)+C * * * * * 056DD SBC(B) вычесть перенос (d)<=(d)-C * * * * * 057DD
TST(B) проверка (d)<=(d) * * 0 0 * 060DD ROR(B) циклич. сдвиг вправо => C,d * * * * * 061DD ROL(B) циклич. сдвиг влево C,d <= * * * * * 062DD ASR(B) арифм. сдвиг вправо (d)<=(d)/2 * * * * * 063DD ASL(B) арифм. сдвиг влево (d)<=(d)*2 * * * * * 067DD SXT расширить знак N=0 (d)<=0 0 1 0- N=1 (d)<=17 1 0 0- Двух операторные команды КОП SS DD 15 12 11 6 5 0 N S V C *1SSDD MOV(B) переслать (d)<=(s) * * 0- *2SSDD CMP(B) сравнить (s)-(d) * * * * *3SSDD BIT(B) проверить разряды (s)/(d) * * 0 – *4SSDD BIC(B) очистить разряды (d)<=(|s)/(d) * * 0 – *5SSDD BIS(B) установить разряды (d)<=(s)/(d) * * 0 – 06SSDD
ADD сложить (d)<=(s)+(d) * * * * 074RSS XOR исключающее или (s)<= (r )\(s) * * 0 – 16SSDD SUB вычесть (d)<=(d)-(s) * * * * Операции с разрядами PSW Базовый КОП =240 0/1 N Z V C 15 6 7 4 3 2 1 0 Очистить 000241 CLC C – – – 0 000242 CLV V – – 0 – 000244 CLZ Z – 0 – – 000250 CLN N 0 – – – 000257 CCC N Z V C 0 0 0 0 Установить 000261
SEC C – – – 1 000262 SEV V – – 1 – 000264 SEZ Z – 1 – – 000270 SEN N 1 – – – 000277 SCC N Z V C 1 1 1 1 Список литературы Персональный компьютер БК-0010 (Приложение к журналу “Информатика и образование” )