Техническое описание алгоритма

Техническое описание алгоритма. При начале функционирования процессора производится установка в нулевое состояние счетчика стека дно стека, установка счетчика команд в начальное состояние равное 1610, т.е. первая команда будет выбрана из ОЗУ по адресу 1610. На регистр адреса ОЗУ засылается значение адреса СТК и по данному адресу выбирается и пересылается команда в старшие 16 разрядов RGbuf, инкремент СТК операторная вершина F12. После увеличения счетчика команд идет проверка на максимальное значение, при максимуме выставляется флажок и происходит переход на ОСТАНОВ. Далее производится довыборка команды в младшие разряды аналогичным путем.

Команда пересылается в RGK, происходит дешифрация команды и производится формирование исполнительного адреса.

Команды формата RX. Для формата RX проверяются на нуль поля Rb и Rx, в случае равенства нулю на RGadr пересылается значение поля D операторная вершина X15 и А2исп будет сформирован.

В случае Rb 0, то на RG2IALU засылается операнд из РОН, адрес которого указан по полю Rx в RGK операторная вершина АB18, производится сложение данного регистра и смещения D. При наличии переполнения выставляется флажок и процессор переходит в режим ОСТАНОВ, иначе получаем А2исп в RGadr. В случае Rx 0, то на RG1IALU засылается операнд из РОН, адрес которого указан по полю Rb в RGK операторная вершина Y17, производится сложение данного регистра и смещения D. При наличии переполнения выставляется флажок и процессор переходит в режим ОСТАНОВ, иначе получаем А2исп в RGadr. В случае Rb0 и Rx0, то на RG1IALU заносится значение РОН, адрес которого берется из поля Rb, а на RG2IALU заносится значение РОН, адрес которого берется по полю Rx операторная вершина M17. В RGadr суммируются содержимое регистров операторная вершина M18 и при отсутствии переполнения происходит сложение полученной суммы со значением поля D, таким образом, получаем А2исп. После формирования исполнительного адреса, данные для выполнения операций выдаются на шины, а затем заносятся в соответствующие регистры АЛУ операторная вершина АE45, далее происходит дешифрация кода операции 3 и 4 бита для определения конкретного типа операции.

Операнды представлены в дополнительном коде. Сложение.

Выполняется сложение содержимого регистров АЛУ с записью результата в RGres. При наличии переполнения выставляется соответствующий флажок в RGf и процессор переходи в режим ОСТАНОВ. При отсутствии переполнения выставляется флажок, говорящий о положительном или отрицательном значении данных, а также проверяется условие на нулевой результат операторная вершина E19 с выставлением соответствующего флажка. После этого результат выдается на шину и затем заносится в соответствующий РОН операторная вершина D22. Вычитание.

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

Умножение.

При умножении счетчик циклов устанавливается в значение равное 3110 и в нуль устанавливается RGres операторная вершина AA8. Младший разряд RG1ALU - множитель проверяется на равенство единице.

При равенстве суммируется значение множимое со значением регистра результата.

Далее, а также и при равенстве нулю младшего разряда множителя происходит сдвиг вправо на один разряд RG1ALU и RGres операторная вершина Y14. Затем проверяется значение счетчика циклов на равенство нулю, при отсутствии нуля повторяется цикл с операторной вершины AA11. При установке счетчика циклов в нулевое состояние проверяется условие на положительное или отрицательное значение множителя, если множитель отрицательное число, то произведение чисел дополнительного кода получается прибавлением поправки к произведению дополнительных кодов сомножителей поправка проинвертируемое множимое и подача на сумматор входного переноса.

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

Команды формата RS. Логические операции.

RGadr загружается содержимым поля RGK831, адрес передается на регистр адреса ОЗУ, по которому на буферный регистр заносятся данные, сначала старшие, а затем младшие разряды.

В RG1ALU заносятся данные из буфера, а на RG2ALU заносятся данные из РОН РОН выбирается по полю R1,операнды из буфера и из РОН выдаются на шины ШД0 и ШД1, а затем уже непосредственно в регистры индексного АЛУ операторная вершина АР18. Далее дешифрация 3 и 4 бита кода операции.

После дешифрации выполняются логические операции И операторная вершина T4, ИЛИ операторная вершина Z4 и сложение по модулю два операторная вершина AG4. Каждая операция при завершении проверяется на равенство результата нулевому значению, затем содержимое RGres переносится в соответствующий РОН через шину данных.

Запись.

По данной команде производится запись из РОН, адрес которого указан в поле R1, в ОЗУAdr. В СТadr заносится адрес ячейки памяти. В регистр буфера из РОН пересылается операнд, затем из СТadr содержимое пересылается в регистр адреса ОЗУ, а в регистр слова ОЗУ пересылаются старшие 16 разрядов вершина M37, СТadr увеличивается на единицу, проверяется на максимальное значение.

При отсутствии максимума в ОЗУ передаются младшие 16 разрядов M46. При полном заполнении СТadr, выставляется флажок о переполнении и переход на ОСТАНОВ. Загрузка. Загрузка операнда производится из ячейки ОЗУ по адресу, занесенному в регистр адреса ОЗУ из CTadr вершина Т37 в один из РОН. Загрузка производится через буферный регистр вершина Т40 сначала старших, а затем младших разрядов.

Из буфера 32 разрядный операнд передается в РОН, адрес которого указан по полю R1 операторная вершина Т51. Команды формата S. Условный переход по флагу. Анализируется флаг Z, характеризующий нулевое значение результата, флаг вырабатывается в АЛУ. При наличии этого флажка в СТК заносится адрес перехода вершина В34, взятый по полю Adr из RGK. В противном случае переход на начало. Безусловный переход с возвратом. Для выполнения данной команды используется стек, находящийся в ОЗУ. Указателем стека является СТST. При получении КОП данной команды СТК заносится в буферный регистр вершина F33. Содержимое СТST заносится в регистр адреса ОЗУ, а старшие разряды RGbuf заносятся в регистр слова ОЗУ вершина F36. СТST увеличивается на единицу, проверяется на переполнение и при отсутствии его происходит повтор, начиная с заноса содержимого СТST в регистр адреса ОЗУ операторная вершина F46. СТST увеличивается на единицу, проверяется на переполнение, при отсутствии переполнения в счетчик команд заносится адрес перехода, взятый из RGK по полю Adr 528. Останов.

При проверке 0-го разряда КОП и равенстве его единице выставляется в единичное состояние триггер END вершина C26 и процессор заканчивает обработку программ. 2.