Структура микропроцессора В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 вызывают прерывания по фиксированным векторам 1008 и 2708 соответственно (при переходе из высокого уровня в низкий).
Сигнал предоставления прерывания IAK0 процессор вырабатывает в ответ на внешний сигнал VIRQ. Сигнал IAK0 передается по очереди, начиная с устройства с максимальным приоритетом, ретранслируясь от одного устройства к другому в порядке уменьшения приоритетов. Устройство с наибольшим приоритетом из числа выставивших запрос на прерывание (сигнал VIRQ) запрещает дальнейшее распространение сигнала IAK0, таким образом запрещая на время обработки данного прерывания запросы от устройств с тем же или более низким приоритетом. Однако устройства с более высоким приоритетом могут прервать обработку повторным («вложенным») прерыванием.
Сигнал DMR вырабатывается внешним активным устройством, требующим передачи ему системной магистрали (режим прямого доступа к памяти). В ответ па него процессор устанавливает сигнал DMGO, предоставляющий системную магистраль внешнему устройству с наивысшим приоритетом из числа запросивших прямой доступ (механизм реализации приоритетов - тот же, что и для прерываний). Это устройство прекращает дальнейшее распространение сигнала DMGO и выставляет сигнал SACK, ОЗначающий, что устройство прямого доступа к памяти (ПДП) может производить обмен данными, независимо от процессора используя стандартные циклы обращения к системной магистрали.
Низкий уровень сигнала BSY означает, что микропроцессор начинает обмен по магистрали (т.е. что она занята для других устройств). Переход сигнала из низкого уровня в высокий указывает на окончание обмена.
Сигнал аварии источника питания DCLO вызывает установку микропроцессора в исходное состояние и появление сигнала INIT. Сигнал аварии сетевого питания ACLO вызывает переход микропроцессора на обработку прерывания по сбою питании (высокий уровень свидетельствует о нормальном сетевом напряжении).
Сигнал SEL1 инициализирует обращение к регистру управления системными внешними устройствами, а сигнал SEL2 - к регистру порта ввода-вывода. Направление обмена данными между микропроцессором и регистрами определяется сигналами DIN или DOUT соответственно. Выставление сигнала RPLY от этих регистров не требуется. Длительности сигналов SEL1 и SEL2 совпадают с длительностью сигнала BSY.
Сигнал INIT является ответом микропроцессора на сигнал DCLO и используется, как правило, для установки периферийной части системы в исходное состояние.
Общие характеристики микропроцессора К1801ВМ1
Представление чисел В дополнительном коде с фиксированной запятой
Виды команд Безадресные, одноадресные, двухадресные
Виды адресации Регистровая, регистровая косвенная, автоинкрементная, автоинкрементная косвенная, автодекрементная, автодекрементная косвенная, индексная, индексная косвенная
Количество регистров общего значения 8
Количество уровней прерывания 4
Тип системной магистрали Q-bus (МПИ, ОСТ 11.305.903-80)
Адресное пространство, Кб 64
Тактовая частота, МГц До 5
Максимальное быстродействие при выполнении регистровых операций, оп./с До 500000
Потребляемая мощность, Вт Не более 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
Метод мнемоника
0. регистровая R
1. косвенная регистровая ( R ) или @R
2. автоинкрементная ( R )+
3. косв. автоинкрементная @( R )+
4. автодекрементная -( R )
5. косв. автодекрементная @-( R )
6. индексная X( R )
7. косв. индексная @X( R )
Команды работы с программами
000000 HALT останов
000001 WAIT пауза - ожидания прерывания
000002 RTI возврат из прерывания ( PC
000003 BPT отладочное прерывание (-(SP)
000004 IOT вызов системы ввода вывода ( -(SP)
000005 RESET сброс магистрали и процессора
000006 RTT возврат, с запретом прерывания по Т-разряду до исполнения следующей команды ( PC
0001DD JMP безусловный переход ( PC
00020R RTS возврат из подпрограммы ( PC
000240 NOP нет операции
004RDD JSR вызов подпрограммы (-(SP)
0064NN MARK восстановление стека ( -(SP)
077RNN SOB выч. 1 и ветвл., если (R#) не 0 ( R#
104000-104277 EMT вызов подпрограммы ПЗУ (-(SP)
1064SS MTPS запись PSW ( PSW
1064Dd MFPS чтение PSW ( d
Переходы по условию (ветвления)
Базовый КОП ? XXX
15 8 7 0
Если условие выполняется, то (PC)
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
Переход по знаку
100000 + 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)
*051DD COM(B) побитная инверсия (d)
*052DD INC(B) прибавление 1 (d)
*053DD DEC(B) вычитание 1 (d)
*054DD NEG(B) изменение знака (d)
*055DD ADC(B) прибавить перенос (d)
*056DD SBC(B) вычесть перенос (d)
*057DD TST(B) проверка (d)
*060DD ROR(B) циклич. сдвиг вправо => C,d * * * *
*061DD ROL(B) циклич. сдвиг влево C,d
*062DD ASR(B) арифм. сдвиг вправо (d)
*063DD ASL(B) арифм. сдвиг влево (d)
*067DD SXT расширить знак N=0 (d)
Двух операторные команды
КОП SS DD
15 12 11 6 5 0
N S V C
*1SSDD MOV(B) переслать (d)
*2SSDD CMP(B) сравнить (s)-(d) * * * *
*3SSDD BIT(B) проверить разряды (s)/\(d) * * 0 -
*4SSDD BIC(B) очистить разряды (d)
*5SSDD BIS(B) установить разряды (d)
06SSDD ADD сложить (d)
074RSS XOR исключающее или (s)
16SSDD SUB вычесть (d)
Операции с разрядами 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 (Приложение к журналу «Информатика и образование» )
10
Микропроцессор В1801ВМ1 его структура и система команд.