WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте
Микропроцессор К1801ВМ1 в керамическом корпусе(производитель - завод "Ангстрем")

К1801ВМ1 — однокристальный 16-разрядный микропроцессор (ОМП).

Предназначен для обработки цифровой информации в системах управления техпроцессами в контрольно — измерительной аппаратуре и системах связи, а также решения в составе ЭВМ инженерно — технических и экономических задач. Архитектура К1801ВМ1 очень близка к архитектуре PDP-11 и в большинстве случаев совместима с ней, но не является её точной копией.

Состав микросхемы

Снимок кристалла К1801ВМ1

В состав микросхемы входят следующие основные функциональные блоки:

  • 16-разрядный операционный блок, выполняющий операции формирования адресов команд и операндов, логические и арифметические, хранения операндов и результатов.
  • Блок микропрограммного управления, вырабатывающий последовательность микрокоманд на основе кода принятой команды. В нём закодирован полный набор микрокоманд для всех типов команд.
  • Блок прерываний, организующий приоритетную систему прерываний ОМП. Выполняет приём и предварительную обработку внешних и внутренних запросов на прерывание вычислительного процесса.
  • Интерфейсный блок, выполняющий обмены информацией между ОМП и устройствами, расположенными на системной магистрали. Осуществляет арбитраж при операциях прямого доступа к памяти. В интерфейсном блоке формируется последовательность управляющих сигналов системной магистрали.
  • Блок системной магистрали, связывающей внутреннюю магистраль ОМП с внешней. В нём производится управление усилителями приёма и выдачи информации на совмещённые выводы адресов и данных.
  • Схема тактирования, обеспечивающая синхронизацию внутренних блоков.

См. Раздел: Структурная схема

Основные параметры

Разрядность: 16 двоичных разрядов

Представление чисел: Доп. код с фиксированной запятой

Система команд: Безадресная, Одноадресная, Двухадресная

Виды адресации: Регистровая, Косвенно — регистровая, Автоникрементная, Косвенно Автоникрементная, Косвенно автодекрементная, Индексная, Косвенно индексная

Число регистров общего назначения (РОН): 8

Число линий запросов на прерывания: 4

Системная магистраль: Типа МПИ с совмещёнными шинами для передачи адреса и данных

Адресное пространство: 64К байт

Тактовая частота: От 100 кГц до 5 МГц

Максимальное быстродействие выполнения команд сложения в составе ЭВМ при регистровом методе адресации: До 500 тыс. операций/с

Потребляемая мощность: До 1,2 Вт

Назначение выводов[1]

ВыводОбозначениеТип выводаФункциональное назначение выводов
1CLCВходСинхронизация
2SACKВход/выходПодтверждение захвата ПДП
3DMGIВходВход предоставления ПДП
4DMGOВыходВыход предоставления ПДП
5DMRВходТребование ПДП
6SPВходНедокументированная функция — внешний источник частоты для таймера[2]. Соединить с +5V
7SEL1ВыходВыборка первого регистра ввода-вывода
8SEL2ВыходВыборка второго регистра ввода-вывода
9-20, 22-25AD0-AD15Вход/ВыходРазряды адреса данных
21GND-Общий
26PA1ВходНомер процессора
27PA0ВходНомер процессора
28BSYВыходСигнал занятости канала
29DCLOВходАвария источника питания
30ACLOВходАвария сетевого питания
31IRQ1ВходПервый запрос радиального прерывания «Пульт»
32IRQ2ВходВторой запрос радиального прерывания (вектор 100)
33IRQ3ВходТретий запрос радиального прерывания (вектор 270)
34INITВход/ВыходУстановка исходного состояния
35VIRQВходТребование векторного прерывания
36IAKOВыходПредоставление прерывания
37DOUTВыходВывод данных (запись данных)
38DINВыходВвод данных (чтение данных)
39RPLYВход/ВыходСинхронизация пассивного устройства (ответ)
40WTBTВыходВывод байта (запись/байт)
41SYNCВыходСинхронизация активного устройства (обмен)
42Ucc-Напряжение Питания

Подробное описание выводов

Структурная схема

    1          34        30    29    35    31    32    33
    |           |         |     |     |     |     |     |
 CLC|           |     ACLO| DCLO| VIRQ| IRQ1| IRQ2| IRQ3|
    |       INIT|         |     |     |     |     |     |
   \|/          |        \|/   \|/   \|/   \|/   \|/   \|/
    |          \|/        |     |     |     |     |     |
|___|___|      /|\      |_|_____|_____|_____|_____|_____|_|
|схема  |       |       |              Блок               |
|такти- |       |       |           Прерываний            |
|рования|       |       |_______________|_________________|
|___|___|       |                       |
    |           |                      /|\
   /|\          |                       |
    |           |                       |
    |___________________________________|____________________________________
                        |                    |          |           |
                |      \|/                  \|/         |          \|/
                |       |                    |          |           |
       |________|_______|________|  |________|________| |    |______|_____|
       | Блок микропрограммного  |  |  Операционный   | |    |            | IAKO
       |       управления        |  |      Блок       | |    |            -->>>--36
       |___________|_____________|  |________|________| |    |            |
                   |                         |          |    |            | SP
                  \|/                       \|/         |    |            --<<<--27
                  /|\                       /|\         |    |            |
                   |                         |          |    |            | SP
                   |____________|____________|          |    |            -->>>--26
                                |                       |    |            |
                               \|/                      |    |            | RPLY
                                |                       |    |            --<<<--39
                  |_____________|_____________|         |    |            |
                  |                           |         |    |            | SYNC
                  |          Системная        ----<<<---|    |            -->>>--41
                  |          магистраль       |              |            |
                  |                           ----<<<---------            | DOUT
                  |_|_______|_______|_______|_|              | бЛОК       -->>>--37
                    |       |       |       |                | управления |
                   \|/     \|/     \|/     \|/               | системной  | DIN
                   /|\     /|\     /|\     /|\               | магистралью-->>>--38
                    |       |       |       |                | и          |
                 AD0|   AD11|   AD12|   AD15|                | регистрами | WTBT
                    |-------|       |-------|                | ввода\     -->>>--40
                    |       |       |       |                | вывода     |
                                                             |            | DMR
                                                             |            --<<<--5
                                                             |            |
                                                             |            | SACK
                                                             |            --<<<--2
                                                             |            |
                                                             |            | DMGO
                                                             |            -->>>--4
                                                             |            |
                                                             |            | SP
                                                             |            --<<<--3
                                                             |            |
                                                             |            | SEL1
                                                             |            -->>>--7
                                                             |            |
                                                             |            | SEL2
                                                             |            -->>>--8
                                                             |            |
                                                             |            | BSY
                                                             |            -->>>--28
                                                             |____________|

Команды

Код команды указан восьмеричным числом. Именно такой вид удобен для наглядного восприятия команд данного процессора.

Обозначение командыКод командыКоманда
HALT000000Остановка
WAIT000001Ожидание
RTI000002Возврат из прерывания
BPT000003Командное прерывание для отладки
IOT000004Командное прерывание для ввода-вывода
RESET000005Сброс внешних устройств
RTT000006Возврат из прерывания
JMP0001DDБезусловный переход по абсолютному адресу, закодированному в DD. Например последовательность
000137  JMP @#7000
007000

указывает процессору взять адрес из ячейки, следующей за командой перехода, и перейти по указанному адресу (в данном случае это восьмеричный адрес 7000).

RTS00020RВозврат из подпрограммы
JSR004RDDОбращение к подпрограмме
EMT104000-104377Командное прерывание для системных программ. Например, EMT 16 имеет код 104016. Для всех EMT-команд прерывание имеет один и тот же вектор, по адресу которого должна находиться подпрограмма, выделяющая номер (в нашем примере это 16) из команды и находящая по зашитой в ПЗУ таблице адрес подпрограммы, обслуживающей конкретную EMT-команду.
TRAP104400-104777Командное прерывание. Например, TRAP 4 имеет код 104404. Для всех TRAP-команд прерывание имеет один и тот же вектор, по адресу которого должна находиться подпрограмма, выделяющая номер (в нашем примере это 4) из команды и находящая по зашитой в ПЗУ таблице адрес подпрограммы, обслуживающей конкретную TRAP-команду.

Никакой принципиальной разницы между EMT и TRAP нет. Принято команду ЕМТ использовать в системных программах (для компьютера БК - это монитор и система диагностики), а команду TRAP - в программах пользователя.

NOP000240(10100000) Нет операции
CLC000241(10100001) Очистка флага С (carry = перенос)
CLV000242(10100010) Очистка флага V (oVerflow = переполнение)
CLZ000244(10100100) Очистка флага Z (zero = ноль)
CLN000250(10101000) Очистка флага N (negative = отрицательное значение)
CCC000257(10101111) Очистка всех разрядов
SEC000261(10110001) Установка флага C (carry = перенос)
SEV000262(10110010) Установка флага V (oVerflow = переполнение)
SEZ000264(10110100) Установка флага Z (zero = ноль)
SEN000270(10111000) Установка флага N (negative = отрицательное значение)
SCC000277(10111111) Установка всех разрядов
Фактически вышеприведённые команды с кодами от 240 до 277 это одна команда изменения флагов в слове состояния процессора:

101PNZVC

где:
101xxxxx - код команды
P - операция над флагами: 0 = сброс, 1 = установка
N,Z,V,C - единица в соответствующем разряде означает, что операция затронет данный флаг, ноль означает, что на данный флаг операция не будет иметь никакого влияния.

Например:
263 10110011 Установка одновременно и флага C, и флага V.

NOP (240) это частный случай данной команды, когда не затрагивается ни один флаг.
Также есть ещё один вариант NOP:
260 10110000 NOP

SWAB0003DDПерестановка байтов местами в 16-разрядном слове, на которое указывает значение DD.
BR000400Безусловный переход по смещению относительно ячейки, следующей за командой. Например, код 000400 означает переход на ячейку, следующую за командой BR, код 000401 — перепрыгнуть через одну 16-разрядную ячейку, 000402 — через две и т. д. Строго говоря, эту команду и все команды перехода по смещению, лучше рассматривать в двоичном или шестнадцатиричном виде. Тогда она будет иметь вид 1NNNNNNNN(bin) или 1NN(hex), где N — значение смещения. То есть команда записывается в старшем байте слова, а смещение — в младшем. Отрицательные значения смещения записываются в дополнительном коде. Это значит, что смещение −1 будет закодировано как FF (hex), и команда будет иметь вид 1FF (hex) или, что то же самое, 777 (oct). При коде 777 будет произведён переход на одну 16-разрядную ячейку назад, то есть на саму команду BR, и произойдёт зацикливание. При коде 776 — на 2 ячейки назад, 775 — на три. и т. д.
BNE001000Переход по смещению, если не равно. Код команды — 2NN (hex) — см. описание команды BR. Переход срабатывает, если флаг Z процессора равен 0.
Адрес   Команда        Текст программы на ассемблере
1000:  020104                 CMP R1,R4
1002:  001001                 BNE MET
1004:  010102                 MOV R1,R2
1006:  010103          MET:   MOV R1,R3

Здесь команда сравнения CMP производит сравнение содержимого регистров общего назначения R1 и R4 и устанавливает флаги процессора C, V, Z, N согласно результатам сравнения, а команда BNE осуществляет переход на +1 шестнадцатиразрядное слово вперёд, если флаг Z=0.

CLR(B)*050DDОчистка битов слова, на которое указывает DD. Команда 0050DD имеет мнемонику CLR, а 1050DD мнемонику CLRB.
COM(B)*051DDИнвертирование битов слова, на которое указывает DD.
INC(B)*052DDПрибавление 1 в слове, на которое указывает DD.
DEC(B)*053DDВычитание 1 из слова, на которое указывает DD.
NEG(B)*054DDИзменение знака
ADC(B)*055DDПрибавление переноса
SBC(B)*056DDВычитание переноса
TST(B)*057DDПроверка слова и установка флагов процессора C, V, Z, N по результатам такой проверки.
ROR(B)*058DDЦиклический сдвиг вправо
ROL(B)*059DDЦиклический сдвиг влево
ASR(B)*060DDАрифметический сдвиг вправо
ASL(B)*061DDАрифметический сдвиг влево
MARK*062DDВосстановление указателя стека (УС)
SXT*063DDРасширение знака
MTPS0061NNЗапись слова состояния процессора (ССП)
MFPS0067DDЧтение ССП
MOV(B)*1SSDDПересылка
CMP(B)*2SSDDСравнение
BIT(B)*3SSDDПроверка разрядов
BIC(B)*4SSDDОчистка разрядов
BIS*5SSDDЛогическое сложение
XOR074RDDИсключающее ИЛИ
ADD06SSDDСложение
SUB16SSDDВычитание
BR0004XXXВетвление безусловное
BNE0010XXXВетвление, если не равно 0
BEQ0014XXXВетвление, если равно 0
  •  — на месте звёздочки может быть либо ноль, либо единица. Соответственно, при 0 команда работает с 16-разрядными словами, при 1 — с 8-разрядными (байтами). При байтовой команде берётся младший байт 16-разрядного машинного слова.

Методы адресации

Операнд задаётся значениями SS (source — источник) и DD (destination — приёмник), при этом первая цифра задаёт режим адресации, а вторая — номер регистра общего назначения (РОН) у процессора. Например, если SS=27, то здесь 2 это метод адресации, а 7 — номер регистра.

Процессор имеет 8 шестнадцатиразрядных РОН: R0, R1, R2….R7. При этом R0-R5 используются для хранения операндов команд.

R6 является указателем стека (SP, Stack Pointer) и содержит адрес вершины стека. При каждой записи в стек, значение SP уменьшается, при затребовании значения из стека SP увеличивается. На использование SP рассчитаны специальные команды, такие как RTI.

Регистр R7 обозначается «PC» (Program Counter — счётчик команд) содержит адрес следующей команды, котроую должен выполнить процессор. Запись числа в регистр R7 равносильна переходу по указанному адресу.

Методы адресации:

ЦифраМетодПояснениеПримеры
0РегистровыйОперандом является содержимое регистра. Например, команда 10304 (1SSDD) копирует содержимое регистра R3 в регистр R4 и записывается как MOV R3, R4.10102 MOV R1, R2
1Косвенно-регистровыйРегистр содержит адрес операнда005011 CLR (R1)

005011 CLR @R1

2Автоинкрементныйрегистр содержит адрес операнда. Содержимое регистра после его использования в качестве адреса увеличивается на 2 (для команд над словами) или на 1 (для байтовых команд)005022 CLR (R2)+
3Косвенно-автоинкрементныйрегистр содержит адрес адреса операнда. Содержимое регистра после его использования в качестве адреса увеличивается на 2005032 CLR @(R2)+
4Автодекрементныйсодержимое регистра уменьшается на 2 (для команд над словами) или на 1 (для байтовых команд) и используется как адрес операнда005042 CLR -(R2)
5Косвенно-автодекрементныйсодержимое регистра уменьшается на 2 и используется как адрес адреса операнда.005052 CLR @-(R2)
6Индексныйсодержимое регистра складывается с числом, записанным после команды, и полученная сумма используется в качестве адреса операнда005062 CLR 2(R2)
000002
7Косвенно-индексныйсодержимое регистра складывается с числом, записанным после команды и полученная сумма используется в качестве адреса адреса операнда005072 CLR @22(R2)
000022

При адресации через регистр РС данные способы адресации называются специальным образом:

Способ адресацииКодПояснениеПримеры
непосредственный27Операнд хранится в слове, следующем за командой. Фактически это автоинкрементный способ адресации с использованием регистра PC, т.е. PC содержит адрес операнда, а это всегда адрес ячейки, следующей за командой. После происходит инкремент регистра на 2, что в случае использования PC равносильно "перепрыгиванию" на следующий адрес, через ячейку с данными, и число, хранящееся в ней, не исполняется как команда.012703 MOV #21, R3
000021
012700 MOV #IN,R0
xxxxxx IN:
абсолютный37адрес операнда хранится в слове, следующем за командойCLR @#7000
JMP @#BEN
относительный67содержимое РС складывается со словом, записанным в памяти за командой, и полученная сумма используется как адрес операнда.JMP TV
CLR 5554
косвенно-относительный77содержимое РС складывается со словом, следующим за командой, полученная сумма используется как адрес адреса операнда.CLR @MET
INC @15342

См. также

Примечания

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии