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

 

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

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

Республик

ОП ИКАНИЕ

ИЗОБРЕТЕНИЯ

К АВТОРСКОМУ СВИДЕТЕЛЬСТВУ (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 для предыдущей микрокоманды. Разряды 0-4 задают,константу модификации, а в случае нулевого значения используется содержимое секции длины обрабатываемого поля регистра блока 9 на стройки.

Микрокомаида "Нервход" задает, Яа какую Величину (разрзцця 0-1 1) и е каким .знаком (раэряд 12) следует изменить значение э регистре 3 адре са микрокоманды: младшие 12 разрядов микрокоманди суммируются или вычитаютса иэ младших разрядов регистра

3 адреса мнкрокоманды.

Микрокоманда "Перенос" задает один as четырех возможных вариантов 20 установки значения в секции переноса, заема блока 9 настройки (раэряды

0-3 иикрокоманды): по значению переноса на выходе блока 6 (разряд 3), по значению заема на соответствующем выходе того же блока (разряд 2) в

"1" (разряд 1). в "0" (разряд О), Микрокомаида "Отсчет. Стековый" выполняет модификацию значений в узле

45 поля стековых данных: секции на- ЗО чального адреса в стековой позиции и длины поля. Константа модификации. ,задается разрядами 0-4 микрокоманды, а в случае их нулевого эначенияузлом 48 настройки стека операндов.

Варианты модификации задаются разрядами 5-7 микрокоманды l фиг.20).

Значение константы модификации находится в пределах 0-24.

Микрокоманда "Чтение. Стековов" управляет выборкой поля данных иэ 40 стека операндов. Разряд 8 микрокоман-. ды задает имя регистра=назначения (регистр 7 левого или 8 прямого операнда), разряды 0-4 — длину считываемого поля (в пределах 0-24) . Если заданное значение длины считываемого поля равно О, то для указания длины поля используется значение из узла

48 настройки стека операндов. Разряды 6-7 микрокоманды задают 4 варианта модификации значений начального адреса в стековой позиции и длины поля в узле 45 поля стековых данных (фнг.21).

Микрокоманда "Запись. Стековая"

y ïðàâëÿåò пересыпкой поля иэ регистра 11 общего назначения в одну из позиций стековой памяти. Позиции, в которую идет пересылка, задается величиной смещения отйосительно верх- в0 ней позиции стека. Эта величина содержится в секции смещения,позиции блока 45 поля стековых данных. Положение записываемого поля и его общая длина указываются значениями в сек- 65 цяях начального адреса в стековой позиции и длины поля этого же блока.

Разряды 0-4 микрокоманды задают длину поля, записываемого при данном обращении в стек операндов, а в случае нулевого значения этих разрядов используется значение из узла

48 настройки модификации значений начального адреса в стековой позиции и длины Поля в узле 45 поля стеко9ых данных. Эти варианты совпадают с вариантами для микрокоманди "Чтение.

Стековое".

Микрокоманда "Модификация. Укаэртеля" управляет перемещением указателя стека. Разряды 2-3 микрокомаиды задают либо имя одного ИЗ- Регистров (7 левого, 8 правого операнда, ервмо 10 общего назначения), значение которого используется для модификации указателя стека, бибо модификацию указателя стека на одну позицию стека; разряд 1 задает направление модификации (вверх нли вниз ; разряд 0 задает необходимость проверки, находится ли модифицированное значение указателя стека в допустимых пределами т.е. адресуется ли оно внутрь стека.

Иикрокоманда "Обмен. Стековый" управляет обменом значениями между узлом 45 поля стековых данных и двумя словами первого блока 15 буферной памяти, причем одно иэ них является источником, а другов - назначением, т.е. из слова-источника в узел 45 поля стековых данных загружается .,значение, а исходнов значение этого узла сохраняется в слове-назначении.

Разряды 0-3 микрокоманды задают адрес слова"источника, а разряды 4-7слова-назначения. ДМная микрокоманда может использозатьая, например, для сменИ в узле 45 поля стековых данных дескрипторов стековых данных, хранимых в первом блоке 15 буферной памяти.

Микрокоманда "Настройка. Стеко" вая" управляет заполнением узла 48 настройки стека операндов значением согласно представленным на фиг.22 вариантам Разряды 1-3 микрокоманды задают номер варианта, разряд 0 - проверку условия, является ли значение для данного регистра нулевым.При невыполнении условия происходит пропуск очередной микрокоманды.B вариантах (1-6),содержащих несколько источников значений,предусматривается занесение наименьшего иэ эадаваемис значениЯ.

Микрокоманда "Настройка. Длины" управляет обменом между узлом-48 настройки стека операндов и одним из регистров: 7 левого, 8.правого опе-. ранда, 9 настройки, первым 10, вторым 11 общего назначения. Разряди.

1-3 микрокоманды задают имя регистра, с которым происходит обмен, а разряд

0 задает направление Обмена — из узла

860077

48 настройки стека операндов или .н этот узел.

Микрокоманда "Сдвиг-Т" упранляет циклическим или ациклическим сдвигом влево содержимого регистра 11 общего

Дескрипторы, описывающие операнды

A и В и результат, могут, например, иметь формат, показанный на фиг.23, и размещаться: для операнда A — .B регистре 61 узла 45 поля стековых данных, для операнда Б — в слоне с адресом 0 первого блока 15 буферной памяти, для результата — в слове с адресом 1 того же блока буферной памяти.. При этом поля секций смещения позиции этих дескрипторов содержат: для операнда A - нули,для операнда

Б и результата — значение, задающее смещение указателя стейа на одну позицию стека вниз, в частности 9. байт.

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

60 длину еще не обработанной части полей 45

5 назначения и записью сдвинутого значения н указанный разрядами 6-11 регистр назначения. Тип сдвига {циклический или ациклический) задается,. разрядом 5 ; разряды 0-4 задают константу сдвига (0-24) . В случае нулевого значения н разрядах 0-4 в качестве константы сдвига используется содержимое блока 9 настройки.

Иикрокоманда "Очистка. Регистровая" управляет сбросом н 0 содержимого регистров: 7 левого, 8 правого операнда, блока 9 настройки, первого 10, второго 11 общего назначения, блока 13 адреса поля данных, блока

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

MHкрокоманды (разряды 0-7j.

Использование описанных микроно- 25 манд для обработки произвольных полей стековых данных может быть пояснено на примере одного из вариантов выполнения операции сложения двух операндов одинаконой длины (A и Б), находящихся н вершине стеконой памяти.

Пусть операнд A размещен в верхней позиции стека, а операнд Б — в следующей, т.е. непосредственно под верхней позицией, и результат должен быть занесен в стек операндов на место исходных операндов. Пусть задан некоторый размер позиции стековой памяти, например, 9 байт, и размещение операндов внутри позиции стека, 40 например операнд A занимает. разряды

8-39 (отсчет разрядов в позиции ведется слева направо, начиная с О), операнд Б — разряды 40-71.

Для выборки поля н а обработку те кущий адрес поля должен быть уменьшен на текущую длину обработки, т.к. вы-. борка поля всегда идет и одном чапранлении — от адреса, указанного в секции начального адреса в стековой позиции регистра 61 узла 45 поля стековых данных, в направлении возрастания адресов разрядов н позиции стека. Поэтому регистр 61 узла 45 поля стековых данных-в начальный Момент содержит: н секции смещения позиции — О, в секции начального адреса в стеконой позиции — 39, т.е. начальный адрес поля операнда A {адрес разряда с номером 8, увеличенный на полную длину поля операнда), в секции длины поля — 32, т.е. длину поля операнда A.

Слово "0" первого блока 15 буферной памяти содержит код, "привязка" которого к формату регистра 61 узла

45 поля стеконых данных имеет вид: н "секции" смещения позиции — 9, в

"секции" начального адреса в стековой позиции — 71, в "секции" длины поля

32. Слово 1 первого блока 15 буферной памяти содержит код, "привязка" которого к формату регистра 61 узла

45 поля стековых данных соответственно имеет вид — 9, 71, 33. Содержимое последнего слова указывает, что результат операции размещен на месте операнда Б, т.е. его крайним правым разрядом будет разряд 71, а увеличение на 1 длины поля результата (по отношению к длине поля операндов) преследует цель запомнить возможный перенос при сложении старших разрядов, т.е. в стеке операндов результат занимает разряды 39-71.

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

Начало - "Настройка. Стековая по длине. Поля с проверкой"; "Переход на продолжение", "Отсчет. Стеконый в минус по начальному. Адресу "; "Чтение. Стековое в регистр. 7 и минус по длине. Поля", "Обмен. Стековый иэ

0 В 2"; "Отсчет. Стеконый .в минус по начальному. Адресу", "Чтение. Стековое в регистр.8 и минус rio длине.Поля", "Настройка. Длины н регистр.9", "Пересылка. Регистровая иэ сумма в регистр.11"; "Перенос переноса", ."Обмен.Стековый из 1 в 0"; "Отсчет.Стековый н минус по начальному. Адресу", "Запись.Стеконая и минус по длине.

Поля", "Обмен.Стеконый иэ 2 в 1", "Переход на начало", Продолжение — "Обмен. Стеконый из

1 в 0". "Очистка. Регистровая для ре21

22

860077 гистр. 7 и регистр. 8", "Пересылка.

Регистровая из сумма в регистр.11", "Настройка.Стековая по длине. Поля";

"Отсчет.Стековый .в минус по лачальностройки стека операндов. Для операнда

A измененное значение этой секции будет равно 16.

По микрокоманде "Чтение.Стековое" в регистр 7 левого операнда считываются 24 разряда операнда A разряды

0-4 микрокоманды установлены в О, поэтому длину поля операнда определяет содержимое регистра 58 узла 48 настройки стека операндов, а значение в секции длины поля регистра 61 узла

45 поля стековых данных уменьшается на 24 (вариант 1).

Следующая микрокоманда заменяет дескриптор операнда А, находящийся в регистре 61 узла 45 поля стековых данных, дескриптором операнда Б (э н ачение из регистра 61 узла 45 поля стековых данных засылается в слово

2 первого блока 15 буферной памяти, а в этот регистр загружается значение из слова "0" той же секции).

Далее исполняются микрокоманды

"Отсчет.Стековый" и Чтение. Стековое" 45 з регистр 8 правого операнда. 3а исключением задания начального адреса считываемого поля, исполнение этих микрокоманд совпадает с ранее рассмотренным исполнением аналогичной пары этих микрокоманд.

В результате исполнения предыдущих микрокоманд в регистры 7 левого и 8 правого операнда занесены по 24 разряда значений операндов A и Б.

Следующая микрокоманда "Настройка.

Длины" передает в блок 9 настройки из регистра 58 узла 48 настройки стека операндов длину частей операндов

A и Б, загруженных в регистры 7 левого и 8 правого операнда для выполнения операции в блоке 6. На выходе этого блока формируются значение переноса и двоичная сумма содержимого регистров 7 левого и 8 правого oneранда. Длина результата, определяе- „$5 му.Адресу", "Запись.Стековая".

Конец. S

По первой микрокоманде в регистре

58 узла 48 настройки стека операндов устанавливается длина считываемого поля стековых данных (вариант 1 ) и проверяется, не исчерпаны ли операнды. Поскольку значение в секции длины поля регистра 61 узла 45 поля стековых данных равно 32, то в регистре 58 узла 48 настройки стека операндов устанавливается значение 24.

Так как содержимое регистра 58 узла

48 настройки стека операндов - О,то микрокоманда "Переход" пропускается.

Иикрокоманда "Отсчет.Стековый изменяет содержимое секции начального адреса в стековой позиции в регист 20 ре 61 узла 45 поля стековых данных на содержимое регистра 58 узла 48 на- мая значением блока 9 настройки, в данном случае составляет 24 разряда.

По микрокоманде "Пересылка.Регист-, ровая" полученная сумма передается во второй регистр 11 общего назначения, а по микрокоманде "Перенос" в секцию переноса/заема блока 9 настройки передается значение двоичного переноса, 1 или О. Зто значение переноса будет использовано при последующем суммировании очередных полей операндов А и Б.

Следующая микрокоманда "Обмен.

Стековый" производит замену в регистре 61 узла 45 поля стековых данных дескриптора операнда Б на дескриптор результата, засылая текущее содержимое этого регистра в слово О первого блока 15 буферной памяти и загружая этот регистр значением из слова 1 указанного блока.

По микрокоманде "Отсчет.Стековый" значение в секции начального адреса в стековой йозиции регистра 61 узла

45 поля стековых данных изменяется на содержимое регистра 58 узла 48 настройки стека операндов. 8 данном случае измененное значение этой секции равно 48.

Иикрокоманда "Запись. Стековая" выполняет запись поля из регистра 11 общего назначения в стек операндов по адресу, указанному в регистре 61 узла 45 поля стековых данных, т,е. в дескрипторе результата, и модифицирует значение в секции длины поля этого регистра на длину записываемого поля. В данном случае длина записываемого поля задается регистром 58 узла 48 настройки стека операндов и составляет 24 разряда. В результате выполнения данной микрокоманды 24 младших разряда операнда Б заменяются в стеке операндов 2 4 младшими разрядами результата.

Следующая микрокоманда "Обмен, Стековый" заменяет в регистре 61 узла 45 поля стековых данных дескриптор результата на дескриптор операнда A.

Микрокомаида "Переход" возвращает в регистр 3 адреса микрокоманды значение адреса первой .микрокоманды описанной последовательности, т.е. микрокоманды "Настройка. Стековая".

Далее выполняется еще один проход по описанной последовательности, но при значении в регистре,58 узла 48 настройки стека операндов, равном 8 (остаток от прежнего значения длины поля операндов - 32, после его модификации на 24).

После второго возврата на первую микрокоманду "Настройка. Стековая" обработка операндов уже закончена, и по этой микрокоманде в регистре 58 узла 48 настройки стека операндов будет установлено нулевое значение, что приведет к выполнению микрокоман23

860077

24 ды "Переход", следующей за данной микрокомандой.

По микрокоманде "Переход" в регистре 3 адреса микрокоманды установлен адрес микрокоманды "Обмен.Стековый", следующей за описанной последовательностью микрокоманд. Эта микрокоманда восстановит дескриптор результата в регистре 61 узла 45 поля стековых данных, причем содержимое секции длины поля этого регистра fO равно 1.

По микрокоманде "Очистка.Регистровая" произойдет очистка содержимого регистров 7 левого и 8 правого операнда, и поэтому по следующей микрокоманде "Пересылка. Регистровая" во второй регистр 11 общего назначения занесется только значение переноса, полученного в результате полного суммирования значений обоих операндов. 20

Микрокоманда "Настройка. Стековая" установит в регистре 58 узла 48 настройки стека операндов значение длины поля стековых данных иэ регистра

61 узла 45 поля стековых данных, т.е. 25

1, и по микрокоманде "Отсчет.Стековый" произойдет смещение на эту длину содержимого секции начального-адреса в стековой позиции в регистре

61 узла 45 поля стековых данных. Измененное значение этой секции равно 39.

По микрокоманде "Запись.Стековая" произойдет занесение значения переноса из второго регистра 11 общего назначения на поле результата в стек операндов.

Как видно из примера, основу обработки полей переменной длины в стековой памяти составляют микрокомянды -Отсчет.Стековый", "Настройка. 40

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

Кроме того, использование вариан.та 0 в микрокоманде "Настройка. Стековая" позволяет задать последовательную обработку элементов данных, т.е. по 1 разряду, по 1 цифре (4 разряда), по 1 символу (8 разрядов), в зависимости от значения в секции типа данных блока 14 типа и длины поля данных. Так, при необходимости выпсйиения посимвольной обработки операнда длиной в 40 разрядов (значение в секции длины поля регистра 61 узла 45 стековых данных равно 40) при, значении 8 в секции типа данных бло- Щ ка 14 типа и длины поля данных пред- шествующая установка регистра 58 узла

48 настройки стека операндов по значению этой секции (вариант О) заносит в регистр 58 узла 48 настройки

Т - { m 2-5 ), T

T зсхп — время, которое необходимо было бы потратить на обращение в основную память в ходе безадресной обработки данных при программной реализации стековой памяти в основной памяти процессора Т „ м Т „ где и =2-3 — время, которое необходимо потратить на обращение в стековую память в ходе безадресной обработки данных при аппаратной реализации стековой памяти

Ой (=) С вЂ” доля линейньы участков с

-арифметической или логической обработкой и вйборкой данных из стека операндов в общем балансе программ работы интерпретатора ЯВУ или машинно-ориентированного языка с безадресной обработкой данных (С=0,5).

С учетом этого введение стековой памяти в структуру процессора микропрограммируемой 3BN позволяет -повысить производительность процессора на Р @ ---- @ - аЗ.---Ca С= (T +Ton) - Т +Т +T

tl

+ Tgn

C= .------ Сх

+ и T>>< K { + Hp 100 .

Так, при к=5, м-5 и 3 величина 10% а при К=10, их =2, и =3 величина Р=173.

Формула изобретения

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

ЭВМ, содержащий регистр микрокоманстека значение 8. После этого указа- ние варианта 5 в микрокоманде "Настройка. Стековая" приводит к выборке по 8 разрядов до тех пор, пока не будет исчерпано значение в секции длины цоля регистра 61 узла 45 поля стековых данных, Для сщенки эффективности изобретения введены следующие обозначения и допущения соотношение между быстродействием основной и сте- ковой памяти процессора

Кее5-10;

У « время заполнения стековой памяти процессора, Т - время обработки данных стековой памяти на оборудовании процессора, в — соотношение между Тоз> и

8600 77

26 ды, блок памяти микрокоманд, регистр адреса микрокоманды, блок адресации, блок стековой памяти адресов, арифметическо-логический блок, р гистр левого операнда, регистр правого операнда, блок настройки, два регистра общего назначения, блок сдвига, блок адреса поля данных, два блока буферной памяти, блок модификации, блок установки переноса, блок установки типа и длины поля данных, блок © пропуска микрокоманды, блок сопряжения, причем первый вход данных регистра микрокомаиды соединен с выходом данных блока памяти микрокомаиды, второй управляющий вход - с управля ющим выходом блока пропуска микрокоманды, первый выход данных регистра адреса микрокоманды соединен co sxo дом данных блока памяти микрокоманд, первый вход данных - с первым выходом данных блока адресации, а второй 2Q выход данных - с первым входом дан ных блока адресации, второй вход дан- ных блока адресации соединен с выходом данных блока стековой памяти адpecos, а второй выход данных - со входом данных блока стековой памяти адресов, первый вход данных арифметическо-логического блока соединен с выходом данных регистра левого операнда, второй вход данных - с выходом данных регистра правого операнда, второй выход данных — co входом дан. ных блока установки переноса, второй управляющий вход - с первым управляющим выходом блока настройки, первый вход данных блока настройки соединен с выходом данных блока установки переноса, второй. вход данных - с первым вы содом данных блока установки типа и длины поля данных, третий вход данных - co вто- 4р рым выходом данных блока установки типа и длины поля данных, первый выход данных — c первым входом данных блока модификации, с первым входом данных блока установки типа и длины поля данных, со вторым входом данных блока сопряжения, первый управлякбций выход — со вторым управляющим входом блока сдвига, выход данных второго регистра общего назначения соедийен с первым входом данных блока сдвига первый вход данных блока адреса поля данных соединен с первым выходом данных первого блока буферной памяти, второй вход данных — с первым выходом данных блока модификации, первый вы- И ход данных — с первым входом данных первого блока буферной памяти, третьим входом данных блока модификации и третьим входом данных блока сопряжения, первый вход данных блока типа цО и длины поля данных соединен с первым выходом данных второго блока буферной памяти, второй вход данныхсо вторым выходом данных блока модификации,первый выход данных — с первым входом данных второго блока буфер" ной памяти, четвертым входом дайных блока модификации и вторым входом данных блОка установки типа И длины поля данных, третий вход данных блока установки типа и длины поля данных соединен со вторым выходом данных второго блока буферной памяти, а управляющий выход — со вторым управляющим входом блока пропуска микрокоман- ды. первый вход данных блока сопряжения соединен с выходом данных процессора, а первый выход данных - со вхо- . дом данных процессора, второй вход и первый выход данных регистра микро(команды, второй вход и третий выход ,данных регистра адреса микрокоманды, первый выход данных арифметическо-логического блока, вход и выход данных регистра левого операнда, вход и выход данных регистра правого операнда, четвертый вход и второй выход данных блока настройки, вход и выход данных первого регистра общего назначения, вход и выход дан- ных второго регистра общего назначе ния, первый выход данных блока сдвига, третий вход и первый выход данных блока адреса поля данных, третий вход и первый выход данных блока типа и длины поля данных, второй вход и вто- . рой выход данных первого блока буферной памяти, второй вход и третий выход данных второго блока буферной па мяти, второй вход данных блока буферной памяти, второй вход данных блока модификации, четвертый вход и второй выход данных блока сопряжения

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

27

28 равляющий вход — с шиной управления, первый управляющий выход — с третьим управляющим входом блока сдвига,второй управлякщий выход — c третьим управляющим входом блока пропуска микрокоманды. 5

2. Процессор по п.1, о т л и ч а— ю шийся тем, что устройство стековой памяти содержит блок хранения операндов, блок стековой адресации и блок стековых операций, причем первый вход данных блока хранения операндов соединен с первым входом данных устройства стековой памяти, второй вход данных — с выходом данных блока стековой адресации, выход данных — с . первым выходом данных устройства стековой памяти, вход данных блока стековой адресации соединен со вторым входом данных устройства стековой памяти, выход данных — со вторым вы- Щ ходом данных устройства стековой памяти, первый-пятый управляющие входы - соответственно с первым-пятым управляющими выходами блока стековых операций, управляющий выход — со вто- рым управляющим входом блока. стековых операций, первый вход данных блока стековых операций соединен со вторым входом данных устройства стековой памяти, второй вход данных " с третьим входом данных устройства стековой памяти, третий вход данных " с четвертым входом данных устройства стековой памяти, четвертый вход данных— с пятым входом данных устройства стековой памяти,;первый выход данных— со вторым выходом данных устройства стековой памяти, второй выход данныхс третьим выходом данных устройства стековой памяти, первый управляющий вкод — с первым управляющим входом 40 устройства стековой памяти, шестой управляющий выход — с первым управляющим выходом устройства стековой памяти седьмой управляющий выкод — со ю вторым управляющим выходом устройства4 стековой памяти.

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

Источники информации ю принятые во внимание при экспертизе

1. Патент QdA Р 3.725.868, кл. G ОЬ F 3/00, опублик. 1973.

2. Патент Великобритании

Р 1,.436.792., кл. G 06 F 3/06, опублик. 1976, 3 Патент Великобритании

Р 1. 390. 384, кл. G ОЬ F 7/38, опубли лик.1975.

4. Королев Л.Н. Структуры ЭВМ и их математичеСкое обеспечение. N., "Энергия", с.163.

5. В 1720 Series centre1 system

techni са 1 menue 1 . Burroughs corporet ion. 1975, D et го1t, И!ch i дэп, У 1066941, р.1-18 (прототип).

860077

&РРфждд

9 71 yg 62ЦлБтют Ю 7! ЯУ

Puz. ГЯ

Составитель Ф. Шагиахметов

Редактор Н. Бушаева Техред A. Ач Корректор О. Билак

Заказ 7549/32 Тираж 745 Подписное

ВНИИПИ государственного комитета СССР по делам изобретений и открытий

113035, Москва, Й-35, Раушская наб., д.4/5

Филиал ППП "Патент", r.ужгород, ул.Проектнаяр 4

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

 

Похожие патенты:

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

Изобретение относится к вычислительной технике и может быть использовано в электронной цифровой вычислительной машине

Изобретение относится к вычислительной технике и может быть использовано в электронной цифровой вычислительной машине

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

Изобретение относится к вычислительной технике и используется для обработки сигналов, которые состоят из множества компонентов, каждый из которых представляет какой-то один аспект физического объекта

Изобретение относится к электронным играм

Микроэвм // 2108619
Изобретение относится к области микропроцессорной техники, в частности, может применяться для реализации обмена информацией

Изобретение относится к системам передачи стоимости товара при безналичных операциях
Наверх