Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МПС (лекции).doc
Скачиваний:
8
Добавлен:
26.09.2019
Размер:
2.73 Mб
Скачать

1.23.1.2.Система инструкций

Инструкции ВМ1 можно разбить на 11 групп:

  1. с одним операндом;

  2. с двумя операндами;

  3. сдвига на 1 разряд;

  4. битовые;

  5. циклического сдвига на n разрядов (1  n 15);

  6. циклического сдвига и сравнения;

  7. циклического сдвига и слияния;

  8. шифрации;

  9. генерации избыточного кода (CRC);

  10. установки и проверки состояния;

  11. «нет операции».

1) Инструкции с одним операндом имеют два формата SOR (с использованием РЗУ) и SONR (без использования РЗУ), форматы которых приведены в Табл. 10 .23 и Табл. 10 .24.

15

14 13

12 9

8 5

4 0

SOR

B/W

1 0

К О П

ИСТ, ПРМ

Адрес РЗУ

SONR

B/W

1 1

К О П

ИСТ

ПРМ

Каждая инструкция может работать как с байтом (при B/W = 0), так и со словом (при B/W = 1).

Табл. 10.23. Инструкции SOR с одним операндом

Код операций

Источник, приемник

Код

Мнемо

Операция

Код

Мнемо

Источн.

Приемн.

1100

MOVE

ИСТ  ПМН

0000

SORA

РЗУ

Акк

1101

COMP

ИСТ  ПМН

0010

SORY

РЗУ

Шина Y

1110

INC

ИСТ+1  ПМН

0011

SORS

РЗУ

Рг.С

1111

NEG

ИСТ+1  ПМН

0100

SOAR

Акк

РЗУ

Примечания:

Рг. D.0 – расширение байта нулями;

Рг. D.S– расширение байта знаком

0110

SODR

Рг. D

РЗУ

0111

SOIR

I

РЗУ

1000

SOZR

0

РЗУ

1001

SOZER

Рг. D.0

РЗУ

1010

SOSER

Рг. D.S

РЗУ

1011

SORR

РЗУ

РЗУ

Табл. 10.24. Инструкции SONR с одним операндом

Код операций

Источник, приемник

Код

Мнемо

Операция

Код

Мнемо

Источн.

Приемн.

1100

MOVE

ИСТ  ПМН

0100

SOA

Акк

1101

COMP

ИСТ  ПМН

1100

SOD

Рг. D

1110

INC

ИСТ+1  ПМН

0111

SOI

I

1111

NEG

ИСТ+1  ПМН

1000

SOZ

0

1001

SOZE

Рг. D.0

1010

SOSE

Рг. D.S

00000

NRY

Шина Y

00001

NRA

Акк

00100

NRS

Рг. С

00101

NRAS

Акк, Рг.С

Все однооперандные инструкции передают на шину Y значение, загружаемое в приемник.

Разряды Z, C, N, OVR регистра состояний модифицируются, остальные – не меняются.

Е динственное ограничение на способ адресации: если Акк и Рг.С определены одновременно в качестве приемников, то невозможно использовать РЗУ в качестве источника.

2) Инструкции с двумя операндами имеют следующие форматы:

15

14 13

12 9

8 5

4 0

TOR1

B/W

0 0

ИСТ, ИСТ, ПРМ

К О П

Адрес РЗУ

TOR2

B/W

1 0

ИСТ, ИСТ, ПРМ

К О П

Адрес РЗУ

TONR

B/W

1 1

ИСТ, ИСТ

К О П

ПРМ

Табл. 10.25. Двухоперандные инструкции типа TOR 1,2

ИСТ, ИСТ, ПРМ

К О П

Код

Мнемокод

R

S

ПРМ

Код

Мнемокод

Операция

TOR1

0000

TORAA

РЗУ

Акк

Акк

0000

SUB R

S – R

0010

TORIA

РЗУ

I

Акк

0001

SUB RC

S – R + C

0011

TODRA

Рг.D

РЗУ

Акк

0010

SUB S

R – S

1000

TORAY

РЗУ

Акк

Y

0011

SUB SC

R – S + C

1010

TORIY

РЗУ

I

Y

0100

ADD

R + S

1011

TODRY

Рг.D

РЗУ

Y

0101

ADD C

R + S +C

1100

TORAR

РЗУ

Акк

РЗУ

0110

AND

R & S

1110

TORIR

РЗУ

I

РЗУ

0111

NAND

(R & S)\

1111

TODRR

Рг.D

РЗУ

РЗУ

1000

EXOR

R  S

TOR2

0001

TODAR

Рг.D

Акк

РЗУ

1001

NOR

(R  S)\

0010

TOAIR

Акк

I

РЗУ

1010

OR

R  S

0101

TODIR

Рг.D

I

РЗУ

1011

EXNOR

(R  S)\

Табл. 10.26. Двухоперандные инструкции типа TONR

ИСТ, ИСТ

К О П

ПРМ

Код

Мнемокод

R

S

Код

Мнемокод

Приемник

0001

TODA

Рг.D

Акк

В соответствии с табл. 4

00000

NRI

Y

0010

TOAI

Акк

I

00010

NRA

Акк

0101

TODI

Рг.D

I

00100

NRS

Рг.C

00101

NRAS

Акк, Рг.C

Примечание. Флаги OVR, N, Z, C модифицируются по результатам арифметических операций; в логических операциях OVR := C := 0.

3) Инструкции сдвига на один разряд имеют следующие форматы:

15

14 13

12 9

8 5

4 0

SHFTR

B/W

1 0

ИСТ, ПРМ

К О П

Адрес РЗУ

SHFTNR

B/W

1 1

ИСТ

К О П

ПРМ

При сдвиге модифицируются биты N и Z регистра состояний, а биты C и OVR устанавливаются в «0». Функция NOVR используется при умножении чисел в дополнительном коде.

Рис. 10.81. Выполнение процедур сдвига

Табл. 10.27. Инструкции сдвига на 1 разряд

ИСТ, ПРМ, (ИСТ) (ПРМ)

К О П

Код

Мнемокод

ИСТ

ПРМ

Код

Мнемокод

Направление

Вдвигаемое значение

SHFTR

0110

SHRR

РЗУ

РЗУ

0000

SHUPZ

Влево

0

0111

SHND

Рг.D

РЗУ

0001

SHUP1

Влево

1

SHFTNR

0110

SHA

Акк

0010

SHUPL

Влево

L

0111

SHD

Рг.D

0100

SHDNZ

Вправо

0

00000

NRY

Y

0101

SHDN1

Вправо

1

00001

NRA

Акк

0110

SHDNL

Вправо

L

0111

SHDNC

Вправо

C

1000

SHDNOV

Вправо

NOVR

Табл. 10.28. Управление шиной Y и регистром состояния

Операция

Режим

Шина

Рг. С

N

L

Влево

SHUPZ

SHUP1

SHUPL

W = 1

Y[15:0] := ИСТ[14:0].X

ИСТ[14]

ИСТ[15]

W = 0

Y[7:0] := ИСТ[6:0].X

Y[15:8] := ИСТ[7:1]. ИСТ[7]

ИСТ[6]

ИСТ[7]

Вправо

SHDNZ

SHDN1

SHDNL

SHDNC

SHDNOV

W = 1

Y[15:0] := X .ИСТ[15:1]

X

ИСТ[0]

W = 0

Y[7:0] := X .ИСТ[7:1]

Y[15:8] := X .ИСТ[7:1]

X

ИСТ[0]

Примечания. W = 1 – команды работы со словами; W = 0 – команды работы с байтами; Х – вход при сдвиге.

4) Инструкции с битами имеют следующие форматы:

15

14 13

12 9

8 5

4 0

BOR1

B/W

1 1

n

К О П

Адрес РЗУ

BOR2

B/W

1 0

n

К О П

Адрес РЗУ

BONR

B/W

1 1

n

1 1 0 0

К О П

Табл. 10.29. Инструкции с битами формата BOR 1,2

Код

Мнемокод

Операция

Шина Y

Z-разряд РгС*)

BOR1

1101

SETNR

Устан. РЗУ в «1»

Yi  РЗУi, i  n; Yn  1

0

1110

RSTNR

Сброс в «0»

Yi  РЗУi, i  n; Yn  0

U

1111

TSTNR

Проверка РЗУ

Yi  0, i  n; Yn  РЗУn

U

BOR2

1100

LD2NR

2n  РЗУ

Yi  0, i  n; Yn  1

0

1101

LDC2NR

(2n)\  РЗУ

Yi  1, i  n; Yn  0

0

1110

A2NR

РЗУ + 2n  РЗУ

Y  РЗУ + 2n

U

1111

S2NR

РЗУ - 2n  РЗУ

Y  РЗУ - 2n

U

*) Разряды L, Fl(1:3) не меняются, C, OVR – устанавливаются в «0»

Табл. 10.30. Инструкции с битами формата BONR

Код

Мнемокод

Операция

Шина Y

РгС

Z

C, OVR

00000

TSTNA

Проверка Акк

Yi  0, i  n; Yn  Аккn

U

0

00001

RSTNA

Сброс в «0» Акк

Yi  Аккi, i  n; Yn  0

U

0

00010

SET NA

Устан. в «1» Акк

Yi  Аккi, i  n; Yn  1

0

0

00100

A2NA

Акк + 2n  Акк

Y  Акк + 2n

U

U

00101

S2NA

Акк - 2n  Акк

Y  Акк - 2n

U

U

00110

LD2NA

2n  Акк

Yi  0, i  n; Yn  1

0

0

00111

LDC2NA

(2n)\  Акк

Yi  1, i  n; Yn  0

0

0

10000

TSTND

Проверка РгD

Yi  0, i  n; Yn  РгDn

U

0

10001

RSTND

Сброс в «0» РгD

Yi  РгDi, i  n; Yn  0

U

0

10010

SETND

Устан. в «1» РгD

Yi  РгDi, i  n; Yn  1

0

0

10100

A2NDY

РгD + 2n  Y

Yi  РгDi + 2n

U

U

10101

S2NDY

РгD - 2n  Y

Yi  РгDi - 2n

U

U

10110

LS2NY

2n  Y

Yi  0, i  n; Yn  1

0

0

10111

LDC2NY

(2n)\  Y

Yi  1, i  n; Yn  0

0

0

В табл. 8 и 9 «проверка» – это установка признака Z в состояние, определяемое значением n-го разряда адресуемого объекта. «Установка» и «сброс» – при сохранении всех разрядов, кроме n-го.

5) Инструкции циклических сдвигов на n разрядов имеют следующие форматы:

15

14 13

12 9

8 5

4 0

ROTR1

B/W

0 0

n

ИСТ, ПРМ

Адрес РЗУ

ROTR2

B/W

0 1

n

ИСТ, ПРМ

Адрес РЗУ

ROTNR

B/W

1 1

n

1 1 0 1

ИСТ, ПРМ

Операнд источника циклически сдвигается на n позиций (0  n  15) в сторону старших разрядов (влево), результат сдвига помещается в приемник и/или на шину Y. В режиме слова сдвигаются все биты (что соответствует сдвигу вправо на (16 – n) позиций. В режиме байта сдвигаются только биты (7:0), а сдвиг на n влево эквивалентен сдвигу на (8 - n) вправо. Биты N и Z модифицируются, а биты C и OVR устанавливаются в «0».

Табл. 10.31. Инструкции циклического сдвига

Формат

Код

Мнемокод

ИСТ

ПРМ

ROTR1

1100

RTRA

РЗУ

Акк

1110

RTRY

РЗУ

Шина Y

1111

RTRR

РЗУ

РЗУ

ROTR2

0000

RTAR

Акк

РЗУ

0001

RTDR

РгD

РЗУ

ROTNR

11000

RTDY

РгD

Шина Y

11001

RTDA

РгD

Акк

11100

RTAY

Акк

Шина Y

11101

RTAA

Акк

Акк

Режим B/W

Шина Y

N регистра РгC

0 (байт)

Yi  ИСТ(i-n) mod 16

ИСТ(15-n)

1 (слово)

Yi  ИСТ(i-n) mod 8

Для i = 1.. 7

ИСТ(8-n)

6) Инструкции циклического сдвига и сравнения:

15

14 13

12 9

8 5

4 0

ROTC

B/W

0 1

n

ИСТ, ПРМ, МАСКА

Адрес РЗУ

И нструкция осуществляет поразрядное сравнение двух 16-разрядных векторов, маскированных вектором маски, причем один из входных векторов предварительно (перед маскированием) сдвигается на заданное число разрядов ().

Рис. 10.82. Сдвиг и сравнение

Единичное значение разряда маски исключают из сравнения соответствующие разряды операндов (оба при сравнении равны «0»). Биты N, Z регистра состояний модифицируются, а OVR и C – сбрасываются в «0».

Табл. 10.32. Инструкции циклического сдвига и сравнения

Код [8 : 5]

Мнемокод

Сдвигаемый ИСТ

Несдвигаемый ИСТ, ПРМ

Маска

0010

CDAI

РгD

Акк

I

0011

CDRI

РгD

РЗУ

I

0100

CDRA

РгD

РЗУ

Акк

0101

CRAI

РЗУ

Акк

I

7) Инструкции циклического сдвига и слияния:

15

14 13

12 9

8 5

4 0

ROTM

B/W

0 1

n

ИСТ, ПРМ, МАСКА

Адрес РЗУ

Сдвигаемый операнд U циклически сдвигается на n позиций в сторону старших разрядов, затем с помощью маски формируется результат: в качестве его i-го разряда берется i-й разряд сдвинутого U, если соответствующий разряд маски равен «1», иначе берется разряд Ri. Результат заносится по адресу несдвигаемого операнда.

Пример: n = 4, режим W (работа со словами)

Операнд U

0011 0001 0101 0110

сдвинутый U

0001 0101 0110 0011

Операнд R

1010 1010 1010 1010

Маска S

0000 1111 0000 1111

Результат (R)

1010 0101 1010 0011

Табл. 12. Инструкции циклического сдвига и слияния

Код [8 : 5]

Мнемокод

Сдвигаемый ИСТ

Несдвигаемый ИСТ, ПРМ

Маска

0111

MDAI

РгD

Акк

I

1000

MDAR

РгD

Акк

РЗУ

10011

MDRI

РгD

РЗУ

I

1010

MDRA

РгD

РЗУ

Акк

1100

MARI

Акк

РЗУ

I

1110

MRAI

РЗУ

Акк

I

Биты N, Z регистра состояний модифицируются, а OVR и C – сбрасываются в «0».

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

8) Инструкции шифрации:

15

14 13

12 9

8 5

4 0

PRT1

B/W

1 0

ПРМ

ИСТ (R)

Адрес РЗУ/ Маска S

PRT2

B/W

1 0

Маска S

ПРМ

Адрес РЗУ/ ИСТ

PRT3

B/W

1 0

Маска S

ИСТ (R)

Адрес РЗУ/ ПРМ

PRTNR

B/W

1 1

Маска S

ИСТ (R)

ПРМ

В этих инструкциях производится поразрядная конъюнкция операнда R и инвертированного значения маски S. Нулевое значение разряда маски Si разрешает участие соответствующего разряда операнда R в шифрации приоритета. Выходной 5-разрядный код указывает номер старшей единицы операнда R (с учетом маски). Биты N, Z регистра состояний модифицируются, а OVR и C – сбрасываются в «0». Ограничение на выбор операндов – необходимость использования для операнда и маски различных источников (что, впрочем, логично). Инструкции этого типа могут быть эффективно использованы в операциях нормализации.

Табл. 10.33. Инструкции шифрации

PRT!

ПРМ

ИСТ (R)

Код

Мнемокод

ПРМ

Код

Мнемокод

ИСТ (R)

1000

PR1A

Акк

0111

PRT1A

Акк

1010

PR1Y

Шина Y

1001

PRT1D

РгD

1011

PR1R

РЗУ

PRT2

Маска S

ПРМ

Код

Мнемокод

Маска S

Код

Мнемокод

ПРМ

1000

PRA

Акк

0000

PR2A

Акк

1010

PRZ

0

0010

PR2Y

Шина Y

1011

PRI

I

PRT3

Маска S

ИСТ (R)

Код

Мнемокод

Маска S

Код

Мнемокод

ИСТ (R)

1000

PRA

Акк

0011

PR3R

РЗУ

1010

PRZ

0

0100

PR3A

Акк

1011

PRI

I

0110

PR3D

РгD

Табл. 10.34. Инструкции шифрации PRTNR

Маска S

ИСТ (R)

ПРМ

Код

Мнемокод

Маска S

Код

Мнемокод

ИСТ (R)

Код

Мнемокод

ПРМ

1000

PRA

Акк

0100

PRTA

Акк

00000

NRY

Шина Y

1010

PRZ

0

0110

PRTD

РгD

00001

NRA

Акк

1011

PRI

I

9) Инструкции генерации циклического избыточного кода (CRC) определяются одним полем – адресом РЗУ. Инструкции обеспечивают генерацию контрольных разрядов в циклическом избыточном коде. Одна инструкция – «прямая» (CRCF), другая – «обратная» (CRCR), отличающиеся порядком поступления разрядов на свертку: при прямой свертка начинается со старшего (15-го) разряда, при обратной – с младшего. Две инструкции необходимы, т.к. существующие стандарты применения циклических избыточных кодов не определяют, какой разряд данных (старший или младший) должен передаваться первым.

Форматы инструкций:

15

14 13

12 9

8 5

4 0

CRCF

1

1 0

0110

0011

Адрес РЗУ

CRCR

1

1 0

0110

1001

Адрес РЗУ

На рис. показан процесс реализации инструкции обратной свертки. Бит L используется как вход последовательного кода. В соответствии с полиномом, задаваемым с помощью маски, последовательный вход комбинируется с разрядами регистра контрольной суммы. После того, как последний входной бит будет обработан, регистр РЗУ содержит контрольные разряды. В процессе выполнения инструкций биты L, N, Z регистра состояний РгС модифицируются, а C и OVR – сбрасываются в «0».

Перед началом операции необходимо загрузить в Акк полиноминальную маску, а в разряд L РгС – первый бит данных. В следующем такте этот бит появится на выходе L. Результат операции  этого бита и старшего (младшего – для обратной свертки) бита регистра РЗУ передается на схемы поразрядной конъюнкции для умножения на разряды маски S. Выходы конъюнкторов поступают на входы сумматоров по модулю два , где поразрядно складываются со сдвинутым на один разряд влево (для обратной свертки n = 15, что соответствует сдвигу на один разряд вправо) операндом U (РЗУ). Результат операции поразрядного суммирования записывается в регистр РЗУ.

Очередной такт начинается с загрузки следующего разряда данных в разряд связи L. Процесс продолжается до тех пор, пока все разряды данных не пройдут такой цикл.

Табл. 10.35. Управление шиной Y в инструкциях CRC

Инструкция

Шина Y

Бит L

CRCF

Yi  [(L  РЗУ15) & Аккi]  РЗУi –1 i = 15 .. 1

Y0  [(L  РЗУ15) & Акк0]  0

РЗУ15

CRCR

Yi  [(L  РЗУ0) & Аккi]  РЗУi +1 i = 14 .. 0

Y15  [(L  РЗУ0) & Акк15]  0

РЗУ0

10) Инструкции установки и сохранения состояния оперируют с регистром состояния РгС, формат которого имеет след. вид:

7

6

5

4

3

2

1

0

FL3

FL2

FL1

L

N

OVR

C

Z

Форматы инструкций:

15

14 13

12 9

8 5

4 0

SETST

0

1 1

1011

1010

К О П

RSTST

0

1 1

1010

1010

К О П

SVSTR

B/W

1 0

0111

1010

Адрес РЗУ/ ПРМ

SVSTNR

B/W

1 1

0111

1010

ПРМ

Табл. 10.36. Инструкции SETST и RSTST

SETST

RSTST

Код

Мнемокод

Установка

Код

Мнемокод

Сброс

00011

SONCCZ

OVR, N, C, Z  1

00011

RONCCZ

OVR, N, C, Z  0

00101

SL

L  1

00101

RL

L  0

00110

SF1

F1  1

00110

RF1

F0  0

01001

SF2

F2  1

01001

RF2

F2  0

01010

SF3

F3  1

01010

RF3

F3  0

Y(15:0)  1

Y(15:0)  0

При реализации инструкций SVST в регистр РЗУ (SVSTR) или в Акк (SVSTNR) загружается только младший байт (при B/W = 0) или все слово (при B/W = 1) с шины Y. На шину Y во всех случаях передается: Y(7:0)  РгС, Y(15:8)  0.

11) Инструкции проверки состояния определяют одно из 12 тестовых условий, которое передается на выход CT. Формат инструкций:

15

14 13

12 9

8 5

4 0

TSTST

0

1 1

1001

1010

К О П

Табл. 10.37. Инструкции TSTST

Код (4:0)

Мнемокод

Выдается на СТ

Код (4:0)

Мнемокод

Выдается на СТ

00000

TNOZ

(NOVR)Z

01100

TZC

ZC\

00010

TNO

NOVR

01110

TN

N

00100

TZ

Z

10000

TL

L

00110

TOVR

OVR

10010

TF1

F1

01000

TLOW

0 (Const)

10100

TF2

F2

01010

TC

C

10110

TF3

F3

Состояние шины Y при действии инструкции TSTST не определено, содержимое РгС не меняется.

Содержимое РгС может быть так же проверено (помимо инструкции) через двунаправленную шину Т(4:1), причем код Т(4:1) совпадает с полем кода инструкции I(4:1) для выбора соответствующего условия (см. таблицу). При конфликте кодов I(4:1) и Т(4:1) приоритет имеют линии I(4:1).

12) Инструкция «Нет операции»:

15

14 13

12 9

8 5

4 0

NOP

0

1 1

1000

1010

0000

Значение шину Y не определено; Внутреннее состояние регистров не меняется.

Инструкции с непосредственным операндом – двухтактные – содержат в мнемокоде литеру «I». Операнд размещается в программе (микропрограмме) непосредственно за словом инструкции

.

Рис. 10.83. Реализация обратной свертки