Функциональная организация процессора
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Функциональная организация процессора

 

Процессор должен выполнять следующие команды:

И непосредственное

Сложение с нормализацией

Загрузка и проверка

Загрузка PSW

1.1 Описание команды “И непосредственное "

 

NI D1 (B1), I2 (SI)

 9416  I2  B1 D1

 0          8            16          20 31

 

Поразрядное логическое произведение (И) первого и второго операндов помещается на место первого операнда.

Операнды обрабатываются как логические величины, не имеющие внутренней структуры, и к соответствующим битам применяется операция логического И. В бите результата устанавливается 1, если в соответствующих битах обоих операндов содержатся единицы, в противном случае - устанавливается 0.

В случае команды NC поля операндов обрабатываются слева направо. Если операнды перекрываются, результат получается таким, как если бы операнды обрабатывались побайтно, каждый байт результат записывался в память сразу же после выборки нужного байта операнда.

Признак результата:

0-результат равен 0;

1-результат не равен 0;

2-



Сложение с нормализацией

 

AER R1,R2 (RR, короткие операнды)

 3A16  R1  R2

0     8          12         15

 

Второй операнд складывается с первым операндом, и нормализованная сумма помещается в ячейку первого операнда.

Сложение двух чисел с плавающей точкой заключается в выравнивании характеристик и сложении мантисс. Характеристики обоих операндов сравниваются, и мантисса операнда с меньшей характеристикой сдвигается вправо; при каждом сдвиге на шестнадцатеричную цифру производится увеличение характеристики этого операнда на 1. Сдвиг продолжается до тех пор, пока характеристики обоих операндов не станут равными.

Если операнд сдвинут вправо во время выравнивания, то самая левая шестнадцатеричная цифра поля, выдвинутого за пределы разрядной сетки, сохраняется в качестве дополнительной цифры. Считается, что операнд, который не подвергся сдвигу, имеет дополнительную младшую цифру, равную 0. Если выравнивающий сдвиг не производится, то считается, что оба операнда расширены младшими шестнадцатеричными нулями. Затем производится алгебраическое сложение мантисс для получения промежуточной суммы.

При сложении коротких операндов мантисса промежуточной суммы состоит из 7 шестнадцатеричных цифр и, возможно, цифры переноса. Если перенос имеет место, сумма сдвигается вправо на одну цифру, и характеристика увеличивается на 1.

После сложения промежуточная сумма сдвигается влево таким образом, чтобы получить нормализованное число, при условии, что мантисса не равна 0. В освободившиеся младшие шестнадцатеричные позиции записываются нули, а характеристике уменьшается на число единиц, равное числу сдвигов, затем мантисса промежуточной суммы усекается таким образом, чтобы получить мантиссу результата нужной длины.

Знак суммы определяется по правилам алгебры, за исключением случая, когда все цифры мантиссы промежуточной суммы равны 0. В этой ситуации устанавливается положительный знак.

Если перенос из старшей позиции мантиссы промежуточной суммы характеристики нормализованной суммы превышает число 127, то фиксируется особый случай переполнения порядка. Операция завершается путем формирования характеристики, которая на 128 меньше действительного значения, и происходит программное прерывание из-за переполнения порядка. При этом результат будет нормализованным, а знак и мантисса сохраняют правильные значения. В случае команды сложение для расширенных операндов (AXR) сохраняется также правильное значение характеристики младшей части.

Если характеристика нормализованной суммы меньше 0, а мантисса не равна 0, имеет место особый случай исчезновения порядка. Если бит маски исчезновения порядка равен 1, операция завершается путем формирования характеристики, которая на 128 больше действительного значения. Результат нормализуется, а знак и мантисса сохраняют правильные значения. Затем происходит программное прерывание из-за исчезновения порядка. Если исчезновение порядка имеет место, а бит маски исчезновения порядка равен 0, то программное прерывание не происходит. Вместо этого операция завершается путем формирования результата, равного истинному 0. В случае команды сложение для расширенных операндов исчезновение порядка не фиксируется, если характеристика младшей части меньше 0, а характеристика старшей части больше или равна 0.

Если мантисса промежуточной суммы, включая дополнительную цифру, равна 0, имеет место особый случай потери значимости. Если бит маски потери значимости равен 1, то характеристика промежуточной суммы не меняется и становится характеристикой результата. Нормализация не производится, и происходит программное прерывание из-за потери значимости.

Если бит маски потери значимости равен 0, программное прерывание не происходит; Вместо этого формируется результат, равный истинному 0.

Признак результата:

0-Мантисса результата равна 0;

1-Результат меньше 0;

2-Результат больше 0;

Программные прерывания:

Операция (если в данной установке отсутствует средство обработки чисел с плавающей точкой или в случае команды AXR отсутствует средство обработки чисел с плавающей точкой повышенной точности)

Спецификация;

Переполнение порядка;

Исчезновение порядка;

Потеря значимости.

Загрузка и проверка

 

LTR R1,R2 (RR)

 1216  R1  R2

0            8        12           15

 

Второй операнд без изменения помещается на место первого операнда. Поля R1 и R2 должны определять регистры 0,2,4 или 6; в противном случае фиксируется особый случай спецификации.

Признак результата:

0-результат равен 0;

1-результат меньше 0;

2 - результат больше 0;

3-

Программные прерывания отсутствуют.

Загрузка PSW

 

LPSW D2 (B2) (S)

 8216  // // // // /  B2  D2

0      8           16  20          31

 

Двойное слово из области, указанной адресом второго операнда, замещает текущее PSW.

Если в новом PSW задан режим BC, то при загрузке PSW содержимое позиции 16-33 нового PSW не сохраняется. Когда в последствии PSW записывается в память. Эти позиции содержат новый код прерывания и код длины команды.

Производится временная отмена совмещения. Выполнение операции в процессоре задерживается до тех пор, пока не будет завершены предыдущие доступы этого процессора в основную память по отношению к другим каналам и процессором.

До тех пор пока выполнение данной команды не будет завершено, доступ к последующим командам и их операндом не производится.

Операнд должен быть расположен на границе двойного слова; в противном случае распознается особый случай спецификации и операция подавляется и тогда, когда имеет место особый случай защиты или адресации.

Биты 8-15 команды игнорируются.

Признак результата определяется содержимым соответствующего поля нового PSW.

Программное прерывание:

Привилегированная операция;



Синтез операций

Выборка команды

 

Перед выполнением любой команды нужно считать ее из памяти в регистр команд РК. Адрес считываемой команды задается в счетчике адреса команды СЧАК, представляющего собой биты 40. .62 из слова состояния программы PSW. Из памяти одновременно считываются 32 разряда - Регистр ОП, адрес которого находится в Адресном регистре ОП. Так как длина команды может быть равно 16 или 32 разрядам, то за одно обращение к памяти может быть считана одна или две команды либо одна команда и часть следующей.

Чтобы не производить повторное считывание, разряды РОП (16: 31) могут быть запомнены в буферном регистре БР. Для того, чтобы определить, находится ли в БР полезная информация, используется триггер переходов ТП, единичное значение которого означается, что информация в БР не может быть использована для формирования новой команды. Если ТП=0, то содержимое БР может быть использовано для формирования новой команды.

Если выбираемая команда имеет формат RR, первое полуслово, представляющее собой команду, передается на РК,

а разряды (16: 31) сохраняются на БР. При этом СЧАК увеличивается на “1".

Если выбираемая команда начинается со второго полуслова

и имеет длину в слово, то на РК разряды (0: 15) передаются разряды (16: 31) РОП, СЧАК увеличивается на “2” и происходит повторное обращение к ОП. Разряды (0: 15) РОП передаются на РК (16: 31).

Функциональная микропрограмма выборки команды приведена на рис.1

в приложении 1. После выборки команда находится в РК. Ее КОП мы

поочередно сравниваем с КОПами наших команд, как только они совпадут идем на выполнение. Если такого КОПа нет, то вызывается программное прерывание.

2.2 Реализация команды “И непосредственное "

 

В команде “И непосредственное “ явно дан второй операнд, длина которого 1 байт-это поле I2. Второй операнд находится в ОП. Его адрес

вычисляется следующим способом: из РП по адресу В1 извлекается РОН который складывается со смещением D1. В результате получаем адрес операнда в ОП. В зависимости от последних 2-х битов адреса извлекаем соответствующий байт и проводим операцию “И непосредственное ". Затем результат записываем на место 1-го операнда и производим запись полученного регистра в память. Признак результата устанавливается в соответствии вышеописанного условия.

Блок-схема алгоритма показана на рисунке 2.

2.2 Реализация команды “Сложение с нормализацией”

 

Для реализации команды “Сложение с нормализацией" были использованы следующие элементы. Триггера SA, SB, которые служат для хранения знака (модернизированный код); триггер DS используется как флаг переполнения при сложении. Четырехразрядные регистры DOPA и DOPB, где хранятся дополнительные цифры для соответствующих операндов. Операнды находятся в регистровой памяти по адресам R1 и R2 соответственно. При извлечении операндов проверяется корректность задания адресов. Для удобства операнды разбиты по полям: РА и РВ - поля характеристик, МА и МВ - поля мантисс. Программа реализуется в соответствии с описанием -подраздел 1.2 Схема алгоритма программы представлена на рисунке 3.

2.3 Реализация команды “ Загрузка и проверка”

 

При выполнении этой команды проверяется корректность задания адресов R1 и R2. В соответствии с заданием устанавливается признак результата.

2.4 Реализация команды “ Загрузка PSW"

 

Операнд находится в ОП. Его адрес вычисляется следующим способом: из РП по адресу В2 извлекается РОН который складывается со смещением D2. В результате получаем адрес операнда в ОП. Извлекаем регистр и записываем его в PSW (0: 31), затем увеличиваем на 1-у и записываем регистр в PSW (32: 63).



Процессор

 

Процессор состоит из следующих основных частей:

32-разрядной магистрали М;

32-разрядного регистра Z для сопряжения с магистралью;

32-разрядного ALU

32-разрядных регистров А, В;

Триггеры DS,SA,SB;

4-разрядных регистров DOPA, DOPB;

16-разрядного буферного регистра БР и 32-разрядного регистра команд РК;

64-разрядного PSW;

Триггера перехода ТП;

Формирователей кодов ФК1-ФК6;

Различных схем сравнения, мультиплексоров и линий связи.

Кроме того, для работы процессора необходимы РП и ОП, которые могут находиться внутри процессора или подключаться в виде внешних устройств.

Магистраль процессора служит для связи РП и ОП с внутренними регистрами. РП подключена к М через регистр РРП. ОП подключена к М через регистр РОП. Z служит для связи РРП и РОП с регистрами процессора. БР и РК связаны с М непосредственно. ALU служит для выполнения различных операций и для связи между внутренними регистрами.



Оперативная память

 

В оперативной памяти емкостью 256 килобайт хранятся 32 - разрядные слова. Слово читается и записывается в оперативную память только целиком за одно обращение к ОП. Адрес слова, к которому производится обращение, указывается на регистре адреса основной памяти АОП. Длина регистра АОП равняется , где -емкость ОП в словах. Слово информации, которое записывается или читается из ОП, размешается в регистре РОП. Операция в ОП возбуждается сигналами чтения из основной памяти ЧТОП и записи в основную память ЗПОП. Момент окончания операции в ОП отмечается сигналом . Так как цикл основной памяти имеет длительность большую такта работы процессора, то должна обеспечиваться синхронизация работы процессора и оперативной памяти за счет ждущих вершин графа микропрограммы.

Регистровая память

 

Регистровая память применяется для увеличения быстродействия процессора. РП состоит из регистров общего назначения (РОН) и регистров с плавающей запятой (РПЗ). РОНы используются в качестве индекс регистров, базовых регистров, а также для хранения слов и полуслов, участвующих в операциях с фиксированной запятой. РОНы представляют собой 32 - разрядные регистры и адресуются числами от 0 до 15. Для обращения к РОНам в командах любого формата отводится четырехразрядное поле R.

При выполнении операций с плавающей запятой один или оба операнда могут располагаться на РПЗ. Всего используется четыре регистра длиной 8 байтов с адресами 0,2,4,6 соответственно.

РОНы и РПЗ структурно объединены в 24-регистровую память РП, регистры 0-15 представляют собой РОНы, а остальные 8 регистров используется для хранения четырех восьмибайтных слов. Длина регистра РП равна 32 разрядам. Адрес регистра указывается на 5-разрядном регистре АРП. Операнд, который записывается или читается из РП, помещается на регистр РРП. Чтение и запись слова инициируются соответственно сигналами ЧТРП и ЗПРП.

Для хранения текущей информации используется РК. Данные с него могут поступать на АРП и на ALU.

Слово состояния процессора

 

Слово-состояние процессора PSW содержит информацию о состоянии процессора. В связи с ограниченным набором команд используются не все разряды. Разряды 16-31 содержат код ошибки, вызвавшей программное прерывание. В данном случае используют

разряды 28-31. Разряды 32-33 хранят информацию о длине последней выполнившейся команды. В разряды 34-35 записывается признак результата. Разряды 36-39 хранят маску прерываний. Разряды 40-63 используются для хранения адреса команды. ФК1 используется для формирования кода длины ошибки. ФК2 - кода длины команды, ФК3 - признака результата, ФК4 - адреса памяти, ФК5 и ФК6 - для формирования некоторого кода при выполнении унарных операций.

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

При написании микропрограмм надо учитывать набор имеющегося оборудования. Для облегчения определения необходимого оборудования вначале пишем микропрограмму для самой большей по затратам оборудования команды. Ей является команда с плавающей запятой. Команда сравнения двух операндов с плавающей запятой. числа представляются в коротком формате.

 

± Характеристика  Мантисса

 0           1            7            8           31

 

Отрицательные числа изображаются в прямом коде. Характеристика Х равна порядку числа, увеличенному на 64, и представляет значения порядка в диапазоне от -64 до +63. Набор символов (_=) обозначает присвоение переменной в начале машинного такта, а набор символов (: =) обозначает присвоение переменной в конце такта.

Структурная схема процессора (операционная часть) приведена в приложении 2.

Разметка граф схемы

 

Разметка осуществляется следующим образом: операционный блок и логическое условие представляются одним состоянием - Pi, где i изменяется от 0 до 50 (по заданию). Если между операционным блоком и логическим условием есть разветвления, то операционный блок и логическое условие размечаются как два различных состояния - Рi и Pi+1 соответственно.

Разметка ограничена количеством состояний (по заданию) - их должно быть 50. На размеченной ГСА все микрокоманды заменены на yi, а логические условия на xi. полученная ГСА изображена в приложении 1.

Прошивка МПЗУ

 

Для прошивки МПЗУ необходимо подсчитать, сколько разрядов надо выделить для РАМК. У нас 50 состояний и возможно появится пару БП, поэтому n =] ln2 (60) [=6. В поле команды адрес укорочен на один бит: А (0: 4). После того как мы разбили микрооперации на поля и закодировали логические условия, команда имеет следующий вид:

 

Y1 Y2 Y3 Y4 Y5 X A

 0           3 7  10         13          16 21          26

 

Прошивка МПЗУ производится по следующим правилам.

1) Если в состоянии Рi есть операционный блок и (или) логическое условие, то их коды вписываются в соответствующие поля.

2) Поле А - это укороченное значение РАМК на 1 бит. В нем указывается адрес перехода по "0", укороченный на единицу, на следующее состояние.

3) Последний бит адреса равен значению Xi, поэтому за состоянием, куда мы переходим по "0", должно следовать состояние, куда мы переходим по "1". Если

такие состояния уже описаны, то записываем безусловный переход.

4) При отсутствии в состоянии логического условия, последний бит адреса кодируется "0" либо "1", в зависимости от того где мы разместили следующее состояние.

5) Алгоритм вычисления РАМК представлен на рисунке 1.


Рис.1. Алгоритм вычисления РАМК.

 

Следуя вышеизложенным правилам проведем прошивку ПЗУ (таблица 6).

 

Прошивка МПЗУ таблица 6

РАМК Y1 Y2 Y3 Y4 Y5 X A

P (t)

P (t+1)
000000 0000 0000 000 000 000 00001 00001 P0

P3

000001 0110 0101 010 111 011 10000 10101 P29

P31

000010 0000 0000 000 000 000 00010 00010 P3

P1

000011 0011 0000 000 000 000 00000 00000 P2

P0

000100 0010 0000 000 000 000 00000 00000 P1

P0

000101 0000 0000 000 000 000 00011 00011 P4

P7

000110 0000 0000 000 000 000 00100 00100 P7

P5

000111 0110 0000 010 101 010 00000 10010 P33

P34

001000 0100 0010 000 000 000 11111 00101 P5

P6

001001 0101 0001 000 000 000 01101 00110 P8

P10

001010 0001 0001 010 000 000 00100 00111 P9

P14

001011 0000 0000 000 000 000 00111 00101 P6

P9

001100 0000 0000 000 000 000 00010 01000 P10

БП1

001101 0000 0000 000 000 000 00111 01100 P20

P24

001110 0000 0000 000 000 000 00101 01010 P14

P9

001111 0000 0000 000 000 000 00110 01011 P17

P19

010000 0000 0000 000 000 000 00000 00010 БП1

P1

010001 0100 0010 000 000 000 11111 01001 P11

P12

010010 0001 0001 0001 001 001 11111 00110 P13

P20

010011 0000 0000 000 000 000 00111 01001 P12

P13

010100 0000 0011 000 000 000 00000 00110 P15

P10

010101 0000 0011 011 000 000 11111 00110 P16

P20

010110 0000 0011 000 011 001 11111 00110 P19

P20

010111 0000 0001 011 010 000 11111 00110 P18

P20

011000 0000 0000 000 000 000 01000 01101 P24

БП2

011001 0000 0000 000 000 000 01110 10000 P21

P22

011010 0000 0000 000 000 000 00000 00000 БП2

P0

011011 0000 0000 000 000 000 00000 01110 P25

P28

011100 0111 0100 100 110 101 01001 01111 P27

P28

011101 0011 1101 000 000 000 00000 00000 P26

P0

011110 0110 0100 010 000 101 11111 00000 P28

P29

011111 0000 0000 000 000 000 11111 01110 БП3

P26

100000 0000 0000 000 000 000 01001 10001 P22

P32

100001 0011 1101 000 000 000 00000 00000 P23

P0

100010 1111 1101 000 100 000 11111 00011 P32

P33

100011 0000 0000 000 000 000 11111 10000 БП4

P23

100100 0000 0101 000 000 000 01011 10011 P34

P35

100101 0000 0000 000 000 000 10000 10110 P39

P40

100110 0000 0000 000 000 000 01010 10100 P35

P36

100111 1001 0000 000 000 000 00000 00000 P38

P0

101000 0000 1010 000 000 000 00000 00000 P36

P0

101001 1000 0000 000 000 000 00000 00000 P37

P0

101010 1001 0101 101 000 100 11111 10010 P31

P39

101011 1110 0000 110 000 000 11111 10010 P30

P39

101100 1001 0000 101 000 000 11111 10010 P40

P39

101101 0000 0000 000 000 000 10001 10111 P41

P43

101110 0000 0000 000 000 000 10010 11000 P43

P45

101111 1100 0000 000 000 000 00000 10111 P42

43

110000 0000 1011 000 000 000 10011 11001 P45

P47

110001 1100 0000 000 000 000 00000 11000 P44

P45

110010 0000 0000 000 000 000 10100 11010 P47

P48

110011 0000 0000 000 101 000 00000 11001 P46

P47

110100 0000 0000 000 000 000 00000 00000 P48

P0

110101 0000 0000 000 000 000 10001 11011 P49

P50

110110 0000 1001 101 000 110 00000 00000 P50

P0

110111 1110 1100 101 000 111 00000 00000 P52

P0

                     



Список используемой литературы

 

1. Райков "Принципы работы IBM/370". - М.: Мир, 1975;

2. Каган В.М. "электронные вычислительные машины и системы". - М.: Энергия, 1979;

3. Майоров С.А., Новиков Г.И. "Структура электронных вычислительных машин". - Л.: Машиностроение, 1976;

4. Методические указания к курсовому проектированию по дисциплине "Теория и проектирование ЦВМ". - Одесса ОПИ-1981;

5. Н.Н. Акимов "Резисторы, конденсаторы, трансформаторы, дроссели,

6. коммутационные устройства, РЭА". - Минск, Беларусь 1994;

7. Тарабрин, справочник "Цифровые и интегральные микросхемы";

8. Петровский И.И., справочник "Логические ИС КР1533 и Кр1554". - Москва: Бином, 1993;

9. Нешумова К.А. "Электронные вычислительные машины и системы" - Москва: Высшая школа, 1989.

10. ГОСТ 2.708. - 81. ЕСКД. Правила выполнения электрических схем

11. цифровой вычислительной техники;

12. ГОСТ 2.743-82. ЕСКД. Обозначения условные графические в схемах.

13. Элементы цифровой техники.



Заключение

 

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

По своей структуре операционная часть процессора ближе к структуре М-автомата, в котором все регистры связаны между собой через АЛУ. В данном процессоре таким образом связаны регистры непосредственно участвующие в арифметических операциях, хотя и между не которыми их них имеется непосредственная связь. Такая структура позволила значительно упростить операционный автомат.

В М-автомате возможно выполнение только одной микрооперации за один машинный такт, а данный процессор позволил значительно нейтрализовать это ограничение за счет введения некоторых непосредственных связей и за счет разрядности АЛУ в два раза превышающую разрядность одного внутреннего регистра общего назначения, что позволило использовать АЛУ, как единое целое при выполнении микроопераций над 64-разрядными операндами либо как два независимых АЛУ при работе с 32-разрядными операндами. Кроме того, одновременно с выполнением арифметико-логических операций возможна выборка данных из оперативной или регистровой памяти, установка признаков результата и не которых других действий за счет непосредственной связи с магистралью регистров, не связанных с выполнением арифметико-логических операций.

Функциональная организация процессора

 

Процессор должен выполнять следующие команды:

И непосредственное

Сложение с нормализацией

Загрузка и проверка

Загрузка PSW

1.1 Описание команды “И непосредственное "

 

NI D1 (B1), I2 (SI)

 9416  I2  B1 D1

 0          8            16          20 31

 

Поразрядное логическое произведение (И) первого и второго операндов помещается на место первого операнда.

Операнды обрабатываются как логические величины, не имеющие внутренней структуры, и к соответствующим битам применяется операция логического И. В бите результата устанавливается 1, если в соответствующих битах обоих операндов содержатся единицы, в противном случае - устанавливается 0.

В случае команды NC поля операндов обрабатываются слева направо. Если операнды перекрываются, результат получается таким, как если бы операнды обрабатывались побайтно, каждый байт результат записывался в память сразу же после выборки нужного байта операнда.

Признак результата:

0-результат равен 0;

1-результат не равен 0;

2-



Сложение с нормализацией

 

AER R1,R2 (RR, короткие операнды)

 3A16  R1  R2

0     8          12         15

 

Второй операнд складывается с первым операндом, и нормализованная сумма помещается в ячейку первого операнда.

Сложение двух чисел с плавающей точкой заключается в выравнивании характеристик и сложении мантисс. Характеристики обоих операндов сравниваются, и мантисса операнда с меньшей характеристикой сдвигается вправо; при каждом сдвиге на шестнадцатеричную цифру производится увеличение характеристики этого операнда на 1. Сдвиг продолжается до тех пор, пока характеристики обоих операндов не станут равными.

Если операнд сдвинут вправо во время выравнивания, то самая левая шестнадцатеричная цифра поля, выдвинутого за пределы разрядной сетки, сохраняется в качестве дополнительной цифры. Считается, что операнд, который не подвергся сдвигу, имеет дополнительную младшую цифру, равную 0. Если выравнивающий сдвиг не производится, то считается, что оба операнда расширены младшими шестнадцатеричными нулями. Затем производится алгебраическое сложение мантисс для получения промежуточной суммы.

При сложении коротких операндов мантисса промежуточной суммы состоит из 7 шестнадцатеричных цифр и, возможно, цифры переноса. Если перенос имеет место, сумма сдвигается вправо на одну цифру, и характеристика увеличивается на 1.

После сложения промежуточная сумма сдвигается влево таким образом, чтобы получить нормализованное число, при условии, что мантисса не равна 0. В освободившиеся младшие шестнадцатеричные позиции записываются нули, а характеристике уменьшается на число единиц, равное числу сдвигов, затем мантисса промежуточной суммы усекается таким образом, чтобы получить мантиссу результата нужной длины.

Знак суммы определяется по правилам алгебры, за исключением случая, когда все цифры мантиссы промежуточной суммы равны 0. В этой ситуации устанавливается положительный знак.

Если перенос из старшей позиции мантиссы промежуточной суммы характеристики нормализованной суммы превышает число 127, то фиксируется особый случай переполнения порядка. Операция завершается путем формирования характеристики, которая на 128 меньше действительного значения, и происходит программное прерывание из-за переполнения порядка. При этом результат будет нормализованным, а знак и мантисса сохраняют правильные значения. В случае команды сложение для расширенных операндов (AXR) сохраняется также правильное значение характеристики младшей части.

Если характеристика нормализованной суммы меньше 0, а мантисса не равна 0, имеет место особый случай исчезновения порядка. Если бит маски исчезновения порядка равен 1, операция завершается путем формирования характеристики, которая на 128 больше действительного значения. Результат нормализуется, а знак и мантисса сохраняют правильные значения. Затем происходит программное прерывание из-за исчезновения порядка. Если исчезновение порядка имеет место, а бит маски исчезновения порядка равен 0, то программное прерывание не происходит. Вместо этого операция завершается путем формирования результата, равного истинному 0. В случае команды сложение для расширенных операндов исчезновение порядка не фиксируется, если характеристика младшей части меньше 0, а характеристика старшей части больше или равна 0.

Если мантисса промежуточной суммы, включая дополнительную цифру, равна 0, имеет место особый случай потери значимости. Если бит маски потери значимости равен 1, то характеристика промежуточной суммы не меняется и становится характеристикой результата. Нормализация не производится, и происходит программное прерывание из-за потери значимости.

Если бит маски потери значимости равен 0, программное прерывание не происходит; Вместо этого формируется результат, равный истинному 0.

Признак результата:

0-Мантисса результата равна 0;

1-Результат меньше 0;

2-Результат больше 0;

Программные прерывания:

Операция (если в данной установке отсутствует средство обработки чисел с плавающей точкой или в случае команды AXR отсутствует средство обработки чисел с плавающей точкой повышенной точности)

Спецификация;

Переполнение порядка;

Исчезновение порядка;

Потеря значимости.

Загрузка и проверка

 

LTR R1,R2 (RR)

 1216  R1  R2

0            8        12           15

 

Второй операнд без изменения помещается на место первого операнда. Поля R1 и R2 должны определять регистры 0,2,4 или 6; в противном случае фиксируется особый случай спецификации.

Признак результата:

0-результат равен 0;

1-результат меньше 0;

2 - результат больше 0;

3-

Программные прерывания отсутствуют.

Загрузка PSW

 

LPSW D2 (B2) (S)

 8216  // // // // /  B2  D2

0      8           16  20          31

 

Двойное слово из области, указанной адресом второго операнда, замещает текущее PSW.

Если в новом PSW задан режим BC, то при загрузке PSW содержимое позиции 16-33 нового PSW не сохраняется. Когда в последствии PSW записывается в память. Эти позиции содержат новый код прерывания и код длины команды.

Производится временная отмена совмещения. Выполнение операции в процессоре задерживается до тех пор, пока не будет завершены предыдущие доступы этого процессора в основную память по отношению к другим каналам и процессором.

До тех пор пока выполнение данной команды не будет завершено, доступ к последующим командам и их операндом не производится.

Операнд должен быть расположен на границе двойного слова; в противном случае распознается особый случай спецификации и операция подавляется и тогда, когда имеет место особый случай защиты или адресации.

Биты 8-15 команды игнорируются.

Признак результата определяется содержимым соответствующего поля нового PSW.

Программное прерывание:

Привилегированная операция;



Синтез операций

Выборка команды

 

Перед выполнением любой команды нужно считать ее из памяти в регистр команд РК. Адрес считываемой команды задается в счетчике адреса команды СЧАК, представляющего собой биты 40. .62 из слова состояния программы PSW. Из памяти одновременно считываются 32 разряда - Регистр ОП, адрес которого находится в Адресном регистре ОП. Так как длина команды может быть равно 16 или 32 разрядам, то за одно обращение к памяти может быть считана одна или две команды либо одна команда и часть следующей.

Чтобы не производить повторное считывание, разряды РОП (16: 31) могут быть запомнены в буферном регистре БР. Для того, чтобы определить, находится ли в БР полезная информация, используется триггер переходов ТП, единичное значение которого означается, что информация в БР не может быть использована для формирования новой команды. Если ТП=0, то содержимое БР может быть использовано для формирования новой команды.

Если выбираемая команда имеет формат RR, первое полуслово, представляющее собой команду, передается на РК,

а разряды (16: 31) сохраняются на БР. При этом СЧАК увеличивается на “1".

Если выбираемая команда начинается со второго полуслова

и имеет длину в слово, то на РК разряды (0: 15) передаются разряды (16: 31) РОП, СЧАК увеличивается на “2” и происходит повторное обращение к ОП. Разряды (0: 15) РОП передаются на РК (16: 31).

Функциональная микропрограмма выборки команды приведена на рис.1

в приложении 1. После выборки команда находится в РК. Ее КОП мы

поочередно сравниваем с КОПами наших команд, как только они совпадут идем на выполнение. Если такого КОПа нет, то вызывается программное прерывание.

2.2 Реализация команды “И непосредственное "

 

В команде “И непосредственное “ явно дан второй операнд, длина которого 1 байт-это поле I2. Второй операнд находится в ОП. Его адрес

вычисляется следующим способом: из РП по адресу В1 извлекается РОН который складывается со смещением D1. В результате получаем адрес операнда в ОП. В зависимости от последних 2-х битов адреса извлекаем соответствующий байт и проводим операцию “И непосредственное ". Затем результат записываем на место 1-го операнда и производим запись полученного регистра в память. Признак результата устанавливается в соответствии вышеописанного условия.

Блок-схема алгоритма показана на рисунке 2.

2.2 Реализация команды “Сложение с нормализацией”

 

Для реализации команды “Сложение с нормализацией" были использованы следующие элементы. Триггера SA, SB, которые служат для хранения знака (модернизированный код); триггер DS используется как флаг переполнения при сложении. Четырехразрядные регистры DOPA и DOPB, где хранятся дополнительные цифры для соответствующих операндов. Операнды находятся в регистровой памяти по адресам R1 и R2 соответственно. При извлечении операндов проверяется корректность задания адресов. Для удобства операнды разбиты по полям: РА и РВ - поля характеристик, МА и МВ - поля мантисс. Программа реализуется в соответствии с описанием -подраздел 1.2 Схема алгоритма программы представлена на рисунке 3.

2.3 Реализация команды “ Загрузка и проверка”

 

При выполнении этой команды проверяется корректность задания адресов R1 и R2. В соответствии с заданием устанавливается признак результата.

2.4 Реализация команды “ Загрузка PSW"

 

Операнд находится в ОП. Его адрес вычисляется следующим способом: из РП по адресу В2 извлекается РОН который складывается со смещением D2. В результате получаем адрес операнда в ОП. Извлекаем регистр и записываем его в PSW (0: 31), затем увеличиваем на 1-у и записываем регистр в PSW (32: 63).



Дата: 2019-12-10, просмотров: 200.