|
Микропроцессор В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
Максимальное быстродействие при выполнении регистровых операций, оп./с
До 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
Метод мнемоника
регистровая R
косвенная регистровая ( R ) или @R
автоинкрементная ( R )+
косв. автоинкрементная @( R )+
автодекрементная -( R )
косв. автодекрементная @-( R )
индексная X( R )
косв. индексная @X( R )
Команды работы с программами
000000 HALT останов
000001 WAIT пауза - ожидания прерывания
000002 RTI возврат из прерывания ( PC <=(SP)+)
000003 BPT отладочное прерывание (-(SP) <=PSW <=(16) )
000004 IOT вызов системы ввода вывода ( -(SP) <=PC <= (22) )
000005 RESET сброс магистрали и процессора
000006 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
Переход по знаку
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) <=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)<=177777 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 (Приложение к журналу “Информатика и образование” )
|
|
|