Процессор микропрограммируемой эвм

Иллюстрации

Показать все

Реферат

 

Союз Советских

Социалистических

Республик

ОП ИКАНИЕ

ИЗОБРЕТЕНИЯ

К АВТОРСКОМУ СВИДЕТЕЛЬСТВУ (u>860077 (61) Дополнительное к авт. свид-ву(22) Заявлено 1412.79 (21) 2851670/18-24 с присоединением заявки Йо (23) ПриоритетОпубликовано 300881. Бюллетень 8о 32

Лата опубликоваиию описанию 3008.81 (53)М. Клз

G 06 F 15/00

Государственный комитет

СССР по делам изобретений н открытий (53) УДК 681.325 (088. 8) A.A. ÁàðàáàHoâ, Л.Я. Карпман, А.М. Самофалов)а, A.À.ßêóáà и О.И.Ярошук (72) Авторы изобретения

Ордена Ленина институт кибернетики AH украинской CCP (71) Заявитель (54 ) ПРОЦЕССОР МИКРОПРОГРАММИРУЕМОЙ ЭВМ

30

Изобретение относится к вычислительной технике и может быть использовано для построения различных ЭВМ с микропрограммным управлением, предназначенных для эффективной реализации микропрограммными средствами проблемно и машинно-орйентированных языков высокого уровня.

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

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

Повышение производительности процессора эа счет использования более быстродействующей основной памяти достигается в известных процессорах микропрограммируеьых ЭВМ (2 1 и (3},. предназначенных для экономной работы с полями переменной длины в основной памяти. В таких процессорах основная память совмещает функции управлякщей и основной памяти и используется для хранения как микропрограмм, так и данных (2 j, либо управляющая и основная памяти выполнены раздельно при хранении микропрограмм как в управляющей, так и в основной памяти, и воэможности динамической перезаписи управляющей памяти (3). .Однако в упомянутых процессорах также отсутствует аппаратная реализация стекового механизма, и программная реализация его в основной памяти приводит к снижению производительности процессора при выполнении безадресной обработки данных.

Известны процессоры (4 $, имеющие в своем составе стековую память для эффективной реализаций безадресной

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

Однако применение чисто магазинной организации в структуре процессора микропрограммируемой ЭВМ и ее системе микрокоманд нецелесообразно, так как это приводит к резкому воз-, растанию числа обращений в стековую память и сказывается на производиJ тельности процессора.

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

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

К недостатку процессора следует отнести существенное замедление его работы при выпоЛнении безадресной обработки данных. Отсутствие стековой памяти в его структуре приводит к необходимости программной реализации стекового механизма в основной памяти процессора и, вследствие этого, к существенному возрастанию числа обращений в основную память при. реализации проблемно и машинно-рриентированных входных языков, предусматривающей безадресную обработку данных, Цель изобретения - снижение частоты обращений из процессора в основную память, и следовательно, повышение производительности процессора при микропрограммной реализации входных языков, предусматривающей безадресную обработку данных.

Поставленная цель достигается тем, что в процессор микропрограммируемой

Э BN, содержащий регистр микрокоманды, блок памяти микрокоманд, регистр адреса микрокоманды, блок адресации, блок стековой памяти адресов, арифметическо-логический блок, регистр

Левого операнда, регистр правого операнда, блок настройки, два регистра общего назначения, блок сдвига, блок адреса поля данных, блок типа и длины поля данных, два блока буферной памяти, блок модификации, блок установки переноса, блок установки типа и длины поля данных, блок пропуска микрокоманды, блок сопряжения, причем первый вход данных регистра микрокоманды .соединен с выходом данных блока памяти микрокоманд, второй управляющий вход — c управляющим выходом блока пропуска микрокоманды, первый выход данных регистра адреса микрокоманды соединен со входом дан20,ных блока памяти микрокоманд, первый вход данных — с первым выходом данных блока адресации,а второй выход данных — с первым входом данных блока адресации, второй вход данных блока адресации соединен с выходом данных блока стековой памяти адресов, а второй выход данных — со входом данных блока стековой памяти адресов, первый вход данных арифметическо-логического блока соединен с выходом данных регистра левого orieранда, второй вход данных — с выходом данных регистра правого операнда, второй выход данных — со входом данных блока установки переноса, второй управляющий вход — с первым управляющим выходом блока настройки, первый вход данных блока настройки соединен с выходом данных блока установки переноса, второй вход данных — с первым выходец данных блока установки типа и длины поля данных, третий вход данных — со втор м выходом данных блока установки типа и ° длины поля данных, первый выход дан4$ ных — с первым входом даняых блока модификации, с первым входом данных блока установки типа и длины поля данных, со вторым входом данных блока сопряжения, первый управляющий щ выход — co вторым управляющим входом блока сдвига, выход данных второго регистра общего назначения соединен с первым входом данных блока сдвига, первый вход данных блока адреса поля данных соединен с первым выходом данных первого блока буферной памяти, второй вход данных — с первым выходом данных блока модификации, первый выход данных — с первым входом данных первого блока буферной

60 памяти, третьим входом данных блока модификации и третьим входом данных блока сопряжения, первый вход данных блока типа и длины поля данных соединен с первым выходом данных

á5 второго блока буферной памяти, вто860077 рой вход данных — co вторым выходом данных блока модификации, первый выход данных - с первым входом данных второго блока буферной памяти, четвертым входом данных блока модификации и вторым входом данных блока установки типа и длины поля данных, третий .вход данных, блока установки типа и длины поля данных соединен со вторым выходом данных второго блока буферной памяти, а управляющий выход — со вторым управлякщим входом блока пропуска микрокоманды, первый вход данных блока сопряжения соединен с выходом данных процессора, а первый выход данных — со входом данных процессора, второй вход и первый выход данных регистра микрокоманды, второй вход и третий выход данных регистра адреса микрокоманды, первый выход данных арифметическо логического блока, вход и выход эО данных регистра левого операнда, вход и выход данных регистра правого операнда, четвертый вход и второй выход данных блока настройки, вход и выход данных первого регистра общего назначения,. вход и выход данных второго регистра общего назначения, первый выход данных блока сдвига, третий вход и первый выход данных. блока адреса поля данных, третий вход и первый выход данных блока типа 30 и длины поля данных, второй вход и второй выход данных первого блока буферной памяти, второй вход и третий выход данных второго блока буферной памяти, второй вход данных 35 блока модификации, четвертый вход и второй выход данных блока сопряжения соеДинены с шиной данных, а первые управляющие входы регистра адреса микрокоманды, блока адресации ариф- 4g метическо-логического блока, регистров левого и правого операнда, блока настройки, регистров общего назначения, блока сдвига, блока адреса поля данных, блока типа и длины поля дан- 4 ных, блоков буферной памяти, блока модификации, блока установки переноса, блока установки типа и длины поля данных, блока пропуска микрокоманды, блока сопряжения, а также управляющий выход регистра мнкрокоманды соединены с шиной управления, введено устройство стековой памяти, первый вход данных которого соединен со вторым выходом данных блока сдви га, третий вход данных — с первым 55 выходом данных блока настройки, четвертый вход данных — с первым выхо-дом данных блока типа и длины поля данных, пятый вход данных — с третьим выходом данных первого блока бу- нО ферной.памяти, первый и второй выходы данных — соответственно со вторым и третьим входами данных блока сдвига, второй вход и третий выход данных— с шиной данных, первый управлякщий вход — с шиной управления, первый управляющий выход — с .третьим управляющим входом блока сдвига, второй управляющий выход — с третьим управлякщим входом блока лропуска микрокоманды.

Устройство стековой памяти содержит блок хранения операндов, блок стековой адресации, блок(стековых операций, причем первый вход данных блока хранения операндов соединен с первым входом данных устройства стековой памяти, второй вход данных— с выходом данных блока стековой адресации, выход данных - с первым выходом данных устройства стековой памяти, вход данных блока стековой адресации соединен со вторым входом данных устройства стековой памяти, выход данных - co вторым выходом данных устройства стековой памяти, первы -пятый управляющие входы — со- ответственно с первым-пятым управляющими выходами блока стековых операций, управлякщий выход — со вторым управляющим входом блока стековых операций, первый вход данных блока стековых операций соединен со вторым входом данных устройства стековой памяти, второй вход данных — с третьим входом данных устрсйства стековой памяти, третий вход данныхс четвертым входом данных устройства стековой памяти, четвертый вход данных — с пятым входом данных устройства стековой памяти, первый выход данных — со вторым выходом данных устройства стековой памяти, второй выход данных — с третьим выходом данных устройства стековой памяти, первый управляющий вход — с первым управляющим входом устройства стековой памяти, шестой управляющий выход - с первым управляющим выходом устройства стековой памяти,седьмой управляющий выход — со вторым управлякщим выходом устройства стековой памяти.

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

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

На фиг.1 представлена структурная

| схема процессора, на фиг. 2 - структурная схема устройства стековой па-! мяти; н а фиг. 3 — структурная схема блока стековых операций; на фиг.4 вариант выполнения узла настройки стека операндов, на фиг.5 — вариант выполнения узла поля стековых даннц3х," на фиг.б — вариант выполнения 4() узла установки текущей длины поля стека операндов;на фиг.7 — вариант выполнения узла модификации, на фиг.8 - вариант выполнения распределителя импульсов, на фиг.9 — вариант 4 ныполнения блока сдвига, на фиг.10 вариант выполнения блока адреса поля данных; на фиг.11 — вариант выполнения блока типа и длины поля данных, на фиг.12 - вариант ныполнения блока буферной памяти; на фиг.13 — вариант выполнения блока модификации, на фиг.14 — вариант выполнения блока настройки, на фиг.15 - вариант выполнения блока сопряжения; на фиг.16вариант выполнения блока установки переиф)са, на фиг.17 -- вариант выполнения блока установки типа и длины поля данных, на фиг.18 - форматы отдельных микрокоманд процессора; на фиг.19 — варианты модификации значе- ) ний в регистре блока адреса поля данных и регистре блока типа и длины поля данных, на фиг.20 — варианты. модификации значений в регистре блока типа и длины поля стековых данных по микрокоманде "Отсчет.Стековый"; на фиг.21 — варианты модификации значений в регистре блока типа и длины поля стековых данных по микрокомандам "Чтение.Стековое" и "Запись.Сте-. ковая", на фиг.22 — варианты формирования значения в регистре блока настройки стека по микрокоманде "Настройка.Стековая"; на фиг.23 — форматы дескрипторов операндон и результата, используемых в демонтируемом примере выполнения операции сложения двух операндов.

Процессор микропрограммируемой

ЭВМ содержит (фиг.1) регистр 1 микрокоманды, блок 2 памяти микрокоманд, регистр 3 адреса микрокоманды, блок.

4 адресации, блок 5 стековой памяти адресов арифметическо-логический блок б, регистр- 7 левого и регистр

8 правого операнда, блок 9 настройки, регистры 10 и 11 общего назначения, блок 12 сдвига, блок 13 адреса поля данных, блок 14 типа и длины поля данных, первый 15 и второй 16 блоки буферной памяти, блок 17 модификации, блок 18 установки переноса, блок 19 установки типа и длины поля данных, блок 20 пропуска микрокоманды, блок

21 сопряжения и устройство 22 стековой памяти операндов.

Устройство стеконой памяти операндов содержит (фиг.2) блок 23 хранения операндов, выход 24 данных, вход 25 данных, блок 26 стековой адресации, вход 27 данных, блок 28 стеконых операций, выход 29, входы 30-33, выходы

34-36.

Блок стеконых операций содержит (фиг.б) распределитель импульсон 37, вход 38, выходы 39-43, вход 44, узел

45 поля стековых данных, вход 46, узел 47 модификации, узел 48 настройки стека операндов, узел 49 установки текущей длины поля стека операндов, входы 50-52, выходы 53-55.

Узел настройки стека операндов может быть выполнен в виде (Фиг.4) коммутаторов 56 и 57 и регистра 58. узел поля стековых данных (фиг.5) может быть выполнен н виде коммутаторов,59 и 60 и регистра 61.

Узел установки текущей длины поля стека операндов может быть выполнен в виде (фиг.б) коммутатора б2,регист-, ров 63 и 64 и схемы 65 сравнения.

Узел модификации может быть выполнен в виде (фиг.7) коммутаторов

66 и 67, регистра 68 и сумматора 69.

Распределитель импульсов может быть выполнен в виде (фиг.8) дешифратора 70, счетчика 71, элемента И 72 и генератора импульсов 73.

Блок сдвига может быть выполнен в виде (фиг.9) коммутаторов 74 и 75 и регистра 76.

Бпок адреса поля данных может быть выполнен в виде (фиг.10) коммутатора 77 и регистра 78. Аналогич860077

10 ным образом может быть настроен и блок типа и длины поля дайных (фиг.11), содержащий и коммутатор

79 и регистр 80, Блоки буферной памяти могут быть выполнены в виде (фиг.12) узла 81 хранения и двух коммутаторов 82 и

83 °

Блох модификации может быть выполнен в виде (фиг.13) коммутаторов 84 и 85, регистра 86 и сумматора 87.

Блок настройки может быть выполнен в виде (фиг.14) коммутаторов 8891 и регистра .92.

Блок сопряжения (фиг.15) может быть выполнен в виде коммутатора 93 и регистров 94 и 95.

Блок установки переноса (фиг.16) в простейшем виде может представлять собой триггер 96 и элемент И 97.

Блок установки типа и длины .поля .данных может представлять собой совокупность (фиг.17) коммутаторов 98 и 99, регистров 100 и 101 и схемы

102 сравнения.

Блок пропуска микрокоманды в прос-, тейшем случае может представлять собой элемент ИЛИ на три входа.

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

Микрокоманды хранятся в блоке 2 памяти микрокоманд и по одной выбираются в регистр 1 микрокоманды для их выполнения. Блок 2 памяти микрокоманд организован по словам (16"ти разрядным): адрес очередной выполняемой микрокоманды находится в регистре 3 адреса микрокоманды. Обычно значение в регистре 3 адреса микрокоманды увеличивается на единицу после каждой выполняемой микрокоманды, но при нарушении линейного следования микрокоманд новое значение адреса очередной микрокоманды может быть установлено в регистре 3 адреса микрокоманды как прямой засылкой содержимого некоторого регистра через общую шину данных, так и выполнением микрокоманд перехода и обращения к подпрограмме, вызывающих смещения содержимого регистра

3 адреса микрокоманды на заданную величину. В случае выполнения микро-, команды обращения к подпрограмме исходное значение регистра 3 адреса микрокоманды, заключающее адрес микрокоманды, следующей за микрокомандой обращения к подпрограмме, через блок 4 адресации предварительно запоминается в вершине блока 5, работающего по принципу "Первый пришел— первый вышел". При выходе иэ подпрограммы это значение восстанавливается в регистре 3 адреса микрокоманды из блока 5 стековой памяти адресов через блок 4 адресации.

Арифметические и логические операции реализуются в процессоре в арифметическо-логическом блоке 6, при каждом обращении к которому на его первом выходе данных, связанном с общей шиной данных, вырабатывается значение одной из нескольких. арифметических или логических функций над содержимым регистров 7 и 8 левого и правого операнда.

Этими функциями являются "Сумма", 20 "Разность", "Инверсия левого операнда", "Инверсия правого операнда", "Сумма по модулю"2", "Конъюнкция", "Маскирование левого операнда", "Маскирование правого операнда", "Диэъюнкция", причем каждая из этих функций может быть указана в микрокомандах в качестве "регистра" источника данных. Управляющая информация, необходимая для выполнения указанных функций и содержащая значение переноса-заема при выполнении арифметических операций, тип обрабатываемой информации (двоичный десятичный), а также длина обрабатываемого поля данных поступает из блока 9 настройки через второй управ-. ляющий вход арифметическо-логического блока 6, Первый 10 и второй 11 регистры общего назначения предназначены для

40 работы в качестве универсальных регистров. Каждый из этих регистров разбит на отдельные 4-разрядные секции, самостоятельно адресуеьые в микрокомандах. На базе второго ре4я гистра 11 общего назначения реализо- ван блок 12 сдвига, выполняющий циклический/ациклический сдвиг влево содержимого этого регистра на произвольное число разрядов, а также выделение поля произвольного размера иэ этого регистра. Требуемая величина сдвига, а также размер выделяемого поля задаются регистром 1 микрокоманды или блоком 9 настройки

H nocTynatoT s блок 12 cpanra cooTветственно через ..его первый или второй управляющие входы, выделяемое поле выдается всегда прижатым вправо.

Адресация к полю оперативной па

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

65 14 типа и длины поля данных.

860077

65

Каждый блок буферной памяти хранит до 16 слов, и обращения н буферную память (запись или чтение) может происходить либо в каждый блок раздельно, либо одновременно в оба блока к словам удвоенной длины.

Обращение н перный блок 15 буферной памяти может происходить из блока

13 адреса поля данных по первому входу или выходу данных блока 15, а также через кодовую шину данных по второму входу или выходу данных этого блока; обращение во второй блок 16 буферной памяти может происходить из блока 14 типа и длины поля данных по первому входу или выходу данных блока 16, а также через кодовую шину данных по второму входу или выходу данных блока 16; однонремен» ное обращение в оба блока буферной памяти происходит из блока 13 адреса поля данных и блока 14 типа и длины поля данных соответственно н первый блок 15 и второй блок 16 буферной памяти по их первым входам или выходам данных.

Модификация значений в блоке 13 адреса поля данных и в блоке 14 типа и длины поля данных выполняется блоком 17 модификации. Параметр модификации этих значений передается из блока 9 настройки или через кодовую шину данных соответственно по первому или второму входу данных блока 17, а исходнйе значения .указанных блоков

13 и 14 поступают соответственно по третьему и четвертому входу данных блока 17 модификации.

Значением переноса, формируемым блоком 18 установки переноса, может быть либо значение переноса/заема, вырабатываемое арифметическо-логическим блоком 6 и поступающее через нход данных блока 18 установки переноса, либо значение "1" или " 0", устанавливаемое в соответствии с управляющим сигналом, поступающим по шине управления через управляющий вход блока 18 установки переноса.

Исходными данными, поступающими на входы блока 19 установки типа и длины поля данных для формирования указанных величин, являются текущее значение этих величин, содержащееся н блоке 9 настройки, а также значения этих величин, содержащиеся в блоке

14 типа и длины поля данных и в фиксиро анной (нулевой) ячейке второго блокй 16 буферной памяти.

Формирование величины длины поля данных в блоке 9 настройки сопровождается анализом этой величины на нулевое значение, что может вызывать, в соответствии с семантикой микракоманды, блокировку выполнения очередной микрокоманды в регистре 1 ликрокоманды, ее пропуск и переход к выполнению следующей микрокоманды.

)G

3S

Указанные дейстния реализуются блоком

20 пропуска микрокоманды; необходимая информация поступает с управляющего ныхода блока 19 установки типа и длины поля данных через второй управляющий вход блока 20 пропуска мик-рокоманды.

Обращение к полю основной памяти процессора (чтение или запись) реализуется блоком 21 сопряжения через его первый вход и первый выход данных.

Длина поля может быть произнольной, но не должна превышать 24 бита для одного обращения к основной памяти, она поступает на второй вход данных блока 21 из блока 9 настройки; начальный адрес поля данных, задаваемый с точностью до бита, поступает из блока

13 адреса поля данных на третий вход данных блока 21 сопряжения.

Реализация языков высокого уровня в микропрограммируемой 3ВМ, предусматривающая безадресную обработку данных, либо реализация машинно-ориентированных языков с безадресной обработкой данных предполагают организацию в основной памяти ЭВМ программно-упранляемого стека операндов, обращение к которому происходит через егО вершину. В ходе безадресной обработки данных происходит чтение требуемого числа операндов из стека операндов в регистры процессора, их соответстнующая обработка, возможный возврат результата в вершину стека операндов, последующее извлечение из стека операндов очередной группы операндов, включая ранее запомненный результат, обработка этой группы и т.д. Выполнение перечисленных действий приводит к возрастанию числа обращений в основную память, особенно заметному в случае когда формат данных. превышает формат регистров процессора.

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

Блок 23 хранения операндов данного блока выполняет функции вершины стека операндов и представляет собой байтовую амять, адресуемую с точностью до бита, причем каждое обращение в такую память всегда сопровождается одновременным выделением

4 байтов, включая начальный байт адресуемого поля. Информация, считываемая из стека операндов, через первый выход данных блока 23 и первый выход данных 24 устройстна 22 стековой памяти поступает н блок 12 сдвига, занесение информации в стек операндов происходит также из блока

13

860077

12 сдвига через первый вход данных

25 устройства 22 стековой памяти и первый вход данных блока 23.

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

23 не является постоянным и "настраивается" программным способом. Такая

"настройка", а также формирование адреса обращения в блоке 23 и контроль за правильностью такого обращения осуществляются блоком 26 стековой адресации. 15

Исходная информация об адресе обращения в стек операндов поступает на вход данных блока 26 стековой адресации с шины данных через второй вход 27 данных устройства 22 сте- 20 ковой памяти, а управляющая информация, необходимая для формирования адреса обращения в блок 23, поступает на первый-пятый управляющие входы блока 26 стековой адресации из блока g$

28 стековых операций.

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

Адрес обращения в стек операндов, сформированный в блоке 26 стековой адресации, через выход данных этого блока поступает на второй вход данных блока 23, при этом пять младших разрядов адреса, задающие в считанных четырех байтах номер начального разряда адресуемого поля, через второй выход 29 данных устройства 22 стековой памяти одновременно поступают в блок 12 сдвига для формирования константы сдвига поля, выделяе- 45 мого из стека операндов.

Запуск выполнения микрокоманд работы со стеком операндов в устройстве 22 стековой памяти происходит через блок 28 стековых операций. Необходимая информация поступает в это устройство через первый управляющий вход 30, а также третий 31, четвертый 32 и пятый 33 входы данных устройства 22 стековой памятир выдача информации из блока 28 стековых операций на шину данных происходит через второй выход 34 данных, в блок сдвига 12 - через первый управляющий выход 35, а в блок 20 пропуска микрокоманды — через второй управляющий 60 выход 36 устройства 22 стековой памяти.

Работа блока 28 стековых операций происходит под управлением распределителя 37 импульсов, активизируемого 65 по шине управления через первый управляющий вход 38 данного блока:.Pac" пределитель 37 импульсов вырабатывает также ряд управляющих сигналов, выдаваемых через первый 39, второй 40, третий 41,, четвертый 42 и пятый 43 управляющие выходы блока 28 стековых операций в блок 26 стековой адресации. В свою очередь, из блока 26 стековой адресации в распределитель

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

Каждый операнд в стеке описывается дескриптором, указывающим размещение и длину операнда (поля переменной длины) в позиции стека, а также положение этой позиции относительно вершины стека. Дескриптор текущего операнда стека хранится в узле 45 поля стековых данных, состоящем из трех секций: смещения позиции, начального адреса в стековой позиции, длины поля. Первая секция задает смещение в байтах искомой позиции стека относительно вершины стека операндов, вторая секция — положение начального (левого) бита поля, который отсчитывается в битах от начала позиции стека, третья секция - число битов в поле.

Исходное.значение заносится в узел

45 поля стековых данных с шины данных через первый вход 46 данных блока 28 стековых операций и первый вход данных узла 45. Модификацйя содержимого узла 45 поля стековых данных, в частности секций начального адреса в стековой позиции и длины поля, выполняется узлом 47 модификации стека операндов соответственно по второму и третьему входу данных этого узла. Исходные значения указанных секций поступают в узел

47 модификации стека операндов по ее первому и второму входу данных соответственно, а параметр модификацйи поступает с шины данных через nåðвый вход 46 данных блока 28 стекомас операций и третий вход данных узла 47 модификации стека операндов или иэ узла 48 настройки стека операндов через четвертый вход данных узла 47 модификации стека операндов.

Значение текущей длины поля стека операндов заносится в узел 48 настройки стека операндов с шины данных через первый вход. 46 данных блока 28 стековых операций и первый вход данных этого узла, а также может формироваться узлом 49 устаибв» ки текущей длины поля стека операндов °

860077

Исходные данные поступают в эту схему иэ блока 9 настройки (значение длины обрабатываемого поля), блока 14 типа н длины поля данных (значение длины поля данных), фиксированной (нулевой) ячейки первого блока 15

5 буферной памяти (значение длины поля данных) соответственно через второй

50, третий 51, четвертый 52 входы данных блока 28 стековых операций и первый, второй, третий входы данных узла 49 установки текущей длины поля стека операндов, а также иэ узла

45 поля стековых данных (значение длины поля) и узла 48 настройки стека операндов соответственно через четвертый и пятый входы данных узла 49.

Содержимое узла 45 поля стековых данных через третий выход данных этого узла, а также первый выход данных 53 блока 28 стековых опера- 20 ций и второй выход данных 34 устройства 22 стековой памяти поступает на шину данных, откуда может подаваться в блок стековой адресации 26 для формирования адреса обращения в блок

23. Содержимое узла 48 настройки стека операндов через первый выход 53 данных блока 28 стековых операций и второй выход 4 данных устройства 22 стековой памяти поступает на шину данных, а через шестой управляющий выход 54 блока 28.ñòeêîâbIõ операций и первый управляющий выход 35 устройства 22 стековой памяти поступает в блок 12 сдвига в качестве возможно.гб размера поля, выделяемого из стека операндов.

Формирование значения в узле 4ф настройки стека. операндов сопровождается анализом этой величины на ну- 40 левое значение, что может вызывать, в соответствии с семантикой микрокоманды, блокировку выполнения очередной микрокоманды в регистре 1 ьыкрокоманды, ее пропуск и переход к выполнению следующей микрокоманды.

Необходимая для этого информация формируется в узле 49 установки текущей длины поля стека операндов и с ее управляющего выхода через седьмой управляющий выход 55 блока 28 стековых операций и второй управляющий выход 36 устройства 22 стековой памяти поступает в блок 20 пропуска мик„рокоманды.

Р боту отдельных частей процессора мЬжно пояснить на примере испол-. нения отдельных микрокоманд или некоторой типичной последовательности микрокоманд, причем объектом действия будут, в основном, операнды 60 из стековой памяти и дескрипторы, их описывающие.

Каждая микрокоманда состоит иэ

16 битов (см.фиг.18),.Часть этих битов, от 3 до 12, содержит код 65 микрокоманды. Оставшиеся биты указы вают конкретные регистры илн их адресуемые ча"ти, различные выходные функции блока 6, варианты исполнения некоторых микрокоманд или длины полей. Например, первая микракоманда

"Пересылка. Регистровая" (фнг.18) кодируется 0001 в 4-х старших битовых позициях микрокоманды. Следующие шесть битов указывают источник пересылаемых данных (регистр или его адресуемая часть), а оставшиеся шесть битов — приемник этих данных (регистр или его адресуемая часть).

Выходные функции блока 6 могут быть указаны только в качестве источников данных. Такое указание задает тип выполняемой в блоке 6 операции над содержимым регистров 7 левого и 8 правого операндов с использованием блока 9 настройки, определяющего значение переноса/заема для арифметических операций, а также значение типа обрабатываеьих данных и длину операндов.

Микрокоманда "Пересылка. Буферная" управляет передачей данных между регистром, указанным в 6-11 разрядах микрокоманды, и любым иэ

16 слов одного из блоков буферной памяти, указанным в разрядах 0-3.

Разряд 4 указывает, с каким блоком, первым 15 или вторым 16 буферной памяти проводится обмен, разряд 5 задает направление обмена, из регистра в буферную память или наоборот.

Микрокоманда "Пересылка.С.ОП" управляет.обменом с основной памятью.

Разряд 11 указывает режим обращения в основную память (чтение или записью разряды 6 и 7 задают регистр для обмена с основной памятью: регистр

7 левого, 8 правого операнда, пер- вый 10,. второй 11 регистр общего назначения, разряды 0-4 задают число битов в читаемом (записываемом) поле - от 0 до 24 ° Если в разрядах

0-4 задано значение О, то число передаваемых битов задаетсясекцией длины обрабатываемого поля блока 9 на.стройки.

При длине операнда, превышающей

24 бита, извлечение полного операнда происходит эа несколько обращений к основной памяти, причем каждое такое обращение должно сопровождаться перемещением начальной точки отсчета адреса на величину извлеченного поля, т.е. модификацией значений в блоке 13 адреса поля данных и в секции длины поля данных блока 14 типа и длины поля данных. Разряды 8-10 микрокоманды задают варианты модификации значений в регистрах 78 и 80 (фиг.19) . Символы "1" и "-" задают направление изменения значений, увеличение или уменьшение соответственно.

17

860077

Микрокоманда "Отсчет" задает модификацию значений в блоке 13 адреса поля данных и в секции длины поля данных блока 14 типа и длины поля данных. Разряды 5-7 выполняют ту же функцию, что и разряды 8-10 для предыд