Процессор микропрограмируемой эвм
Иллюстрации
Показать всеРеферат
Изобретение относится к вычислительной технике и может быть использовано для построения ЭВМ с микропрограммным управлением , предназначенных для эффективной реализации микропрограммными средствами проблемнои машинно-ориентированных языков высокого уровня. Цель изобретения - повышение производительности процесса. Указанная цель достигается тем, что процессор содержит блок управления и синхронизации, регистр левого операнда, регистр правого операнда, блок настройки, два регистра общего назначения , блок сдвига, блок дескрипторов, блок установки переноса, блок установки типа и длины поля данных, блок ввода-вывода, блок стековой памяти операндов, коммутатор данных, кольцевой арифметико-логический блок и два коммутатора. В предлагаемом процессоре повышение производительности при микропрограммной реализации входных языков высокого уровня с использованием стековой организаций данных достигается за счет выравнивания стековых операндов не по правому краю разрядной сетки арифметико-логического блока, а по разрядной сетке результата, помещаемого в стек. При этом значительно сокращается количество действий, приводящих к тому же результату, что и в аналогичных процессорах. 1 з.п. ф-лы, 12 ил. to С
СОЮЗ СОВЕТСКИХ
СОЦИАЛИСТИЧЕСКИХ
РЕСПУБЛИК (st)s G 06 F 15/00, 15/78
ГОСУДАРСТВЕННЫЙ КОМИТЕТ
ПО ИЗОБРЕТЕНИЯМ И ОТКРЫТИЯМ
ПРИ ГКНТ СССР
ОПИСАНИЕ ИЗОБРЕТЕНИЯ
К АВТОРСКОМУ СВИДЕТЕЛЬСТВУ (21) 4721849/24 (22) 20.07.89 (46) 07 12.91. Бюл. М 45 (71) Институт кибернетики им. В.М.Глушкова (72) Б.M.Êpè÷åàcêèé, В.Ф.Любарский и
А.А,Якуба (53) 681.3(088.8) (56) В1700 Series central System technical
manual. Burroughs Corporation,1975, Detroit, Michigan, N 11006666994411, р.4-18.
Авторское свидетельство СССР
hh 860077, кл. G 06 F 15/00, 1980. (54) ПРОЦЕССОР МИКРОПРОГРАММИРУЕМОЙ ЭВМ (57) Изобретение относится к вычислительной технике и может быть использовано для построения 3ВМ с микропрограммным управлением, предназначенных для эффективной реализации микропрограммными средствами проблемно- и машинно-ориентированных языков высокого уровня. Цель изобретения — повышение и роиэводител ьИзобретение относится к вычислительной технике и может быть использовано для построения ЭВМ с микропрограммным управлением, предназначенных для эффективной реализации микропрограммными средствами проблемно- и машинно-ориентированных языков высокого уровня.
Целью изобретения является повышение производительности процессора (при микропрограммной реализации входных языков высокого уровня с использованием стековой организации данных за счет выБЫ 1697082 А1
2 ности процесса. указанная цель достигается тем, что процессор содержит блок управления и синхронизации, регистр левого операнда, регистр правого операнда, блок настройки, два регистра общего назначения, блок сдвига, блок дескрипторов, блок установки переноса, блок установки типа и .длины поля данных, блок ввода-вывода, блок стековой памяти операндов, коммутатор данных, кольцевой арифметико-логический блок и два коммутатора. В предлагаемом процессоре повышение производительности при микропрограммной реализации входных языков высокого уровня, с использованием стековой организаций данных достигается за счет выравнивания стековых операндов не по правому краю разрядной сетки арифметико-логического блока, а по разрядной сетке результата, помещаемого в стек. При этом значительно сокращается количество действий, приводящих к тому же результату, что и в аналогичных процессорах, 1 з.п. ф-лы, 12 ил, равнивания стековых операндов не по правому краю разрядной сетки арифметико-логического блока, а по разрядной сетке результата, помещаемого в стек).
На фиг.1 и 2 представлена структурная схема процессора; на фиг.3 — структурная схема кольцевого арифметико-логического блока; на фиг.4 — структурная схема блока стековой памяти операндов; на фиг.5— пример выполнения блока настройки; на фиг.6 — пример выполнения блока ввода-вывода; на фиг.7 — структура блока дескрипто1697082
55 ров; нэ фиг.8 — пример реализации блока установки переноса; на фиг,9 — пример выполнения блока установки типа и длины поля данных; на фиг,10 — форматы отдельных микрокоманд процессора; на фиг.11 — варианты стековых арифметико-логических операций; на фиг.12 — пример расположения операндов в стеке.
Процессор микропрограммируемой
Э ВМ содержит блок (фиг.1 и 2) 1 управления и синхронизации, регистр 2 левого операнда, регистр 3 правого операнда, блок 4 на стройки, первый 5 второй 6 регистры общего, назначения, блок 7 сдвига, блок 8, дескрипторов, блок 9 установки переноса,, блок 10 установки типа и длины поля дан ных, блок 11 ввода-вывода, блок 12 стековой памяти операндов, коммутатор 13 данных, кольцевой арифметика-логический блок 14, первый 15 и второй 16 коммутаторы, входы
17 данных и выход 18 данных.
Кольцевой арифметико-логический, блок 14 (фиг,3) содержит N байтовых ариф метика-логических узлов 19 с переменной, длиной поля данных, N двухвходовых коммутаторов 20, N-входовой коммутатор 21, первую и вторую 23 группы выходных усилителей, первый 24 и второй 25 информационные входы, первый 26, второй 27 и третий
28 управляющие входы, первый 29, второй . 30 и третий 31 выходы результата, Блок 12 стековой памяти операндов (фиг,4) содержит узел 32 хранения операндов, узел 33 стековой адресации, узел 34 стековых операций, коммутатор 35, входы . 36 — 42 данных, выходы 43 — 45 данных, управляющий вход 46, первый 47 и второй 48 управляющие выходы.
Блок 4 настройки (фиг.5) содержит коммутаторы 49-53, регистр 54, входы 55-59, управляющий вход 60, выходы 61 и 62 и управляющий выход 63.
Блок 11 ввода-вывода (фиг,6) может быть выполнен в виде коммутатора 64, регистров 65 и 66, информационных входов 17, 67 — 70, управляющего входа 71, выходов 18, 72 и 73.
Блок 8 дескрипторов (фиг.7) содержит первый 74 и второй 75 узлы буферной памяти, узел 76 формирования адреса поля данных, узел 77 типа и длины поля данных, узел
78 модификации и коммутатор 79, входы
80 — 82 и выходы 83 — 87.
Блок 9 установки переноса (фиг,8) содержит коммутатор 88 и триггер 89, Блок 10 установки типа и длины поля данных (фиг,9) содержит коммутатор 90, регистр 91 и элемент ИЛИ 92.
Блок 1 управления и синхронизации предназначен для уг1равлен я и синхрони5
1I5
30 о
45 зации работы всех блоков процессора и может быть реализован в виде блока микропрограммного управления, Через информационные вход и выход блока осуществляется доступ к регистрам микрокоманды и адреса микрокоманды, а также управляющей памяти с целью их перезагрузки или испдльзования их информации для вычислений. Два управляющих входа предназначены для вмешательства в ход выполнения микропрограммы с целью организации условных переходов и выполнеиия микрокоманд переменной длительности (организации их циклического выполнения с выходов по условию, формируемому в исполнительных устройствах процессора). Условные переходы в процессоре реализуются пропуском микрокоманд безусловного перехода (превращением их в
"пустые микрокоманды"). Блок 1 управления и синхронизации реализует систему микрокоманд процессора. На управляющие выходы блока выдаются сигналы управления записью в регистры, переключением коммутаторов и работой функциональных блоков, а также литералы полей микрокоманд в соответствии с временными диаграммами этих микрокоманд. Для синхронизации внешних объектов процессора и организации работы ЭВМ в целом предназначен выход синхронизации внешних объектов, выдающий опорную последовательность синхросигналов от синхрогенератора.
Арифметические и логические операции реализуются процессором в кольцевом арифметика-логическом блоке, при каждом обращении к которому на его первом и втором выходах результата, связанных соответственно с коммутатором 13 данных и с шестым входом данных блока 12 стековой памяти операндов, вырабатывается значение одной из нескольких арифметических или логических функций над операндами, содержащимися в регистрах 2 и 3 левого и правого операнда или блоке 12 стековой памяти операндов. Этими функциями являются "Сумма", "Разность", "Инверсия левого операнда", "Инверсия правого операнда", "Сумма по модулю 2", "Конъюнкция", "Маскирование левого операнда", "Маскирование правого операнда", "Дизьюнкция", причем каждая из этих функций может быть задана в микрокоманде в качестве "регистра" источника данных для операций над содержимым регистров 2 и 3 левого и правого операндов или полем микрокоманды для стековых операций и поступает через первый управляющий вход от блока 1 управления и синхронизации. Уп1697082 равляющая информация, необходимая для выполнения указанных функций и содержащая значение переноса заема при выполнении арифметических операций, тип обрабатываемой информации (двоичный, десятичный), а также длина обрабатываемого поля данных поступают из блока 4 настройки через второй управляющий вход кольцевого арифметика-логического блока
14, на третий управляющий вход которого поступает информация о номере старшего и младшего битов обрабатываемой информации из блока 12 стековой памяти операндов.
Первый 5 и второй 6 регистры общего назначения предназначены для работы в качестве универсальных регистров. Каждый из этих регистров разбит на отдельные 4разрядные секции, самостоятельно адресуемые в микрокомандах. Управление записью в секции осуществляется блоком 1 управления и синхронизации через управляющие входы регистров. На базе второго регистра
6 общего назначения реализован блок 7 сдвига, выполняющий циклическийlациклический сдвиг влево содержимого этого регистра на произвольное число разрядов, а также выделение поля произвольного размера из этого регистра. Требуемая величина сдвига, а также размер выделяемого поля задаются литерально в микрокоманде или блоком 4 настройки и поступают в блок 7 сдвига соответственно через его первый или второй управляющие входы, выделяемое поле выдается всегда прижатым вправо. Управление режимами сдвига производится блоком 1 управления и синхронизации через первый управляющий вход блока 7 сдвига.
Блок 8 дескрипторов предназначен для хранения, смены и модификации дескрипторов данных в основной памяти.
Возможна модификация полей дескриптора на значение текущей длины (вход
80) или любое другое значение с выхода коммутатора 13 данных через вход 81. Через этот же вход осуществляется загрузка регистров и памятей блока. Через выходы
83, 84, 86 и 87 блока доступны значения обоих регистров и узлов блока, Связи внутри блока позволяют менять текущий дескриптор из буферной памяти, сохраняя в ней старый дескриптор. Этэ же операция возможна для любой половины дескриптора, а также для стекового дескриптора, находящегося в блоке 12 стековой памяти операндов. Последнее возможно через вход
81 и выход 83 блока. Доступ к значениям дескрипторов внутри блока возможен также через коммутатор 79, являющийся частью коммутатора данных 13. Управление записью, чтением и модификацией дескрипторов осуществляется через управляющий вход 82 блоком 1 управления и синхронизации. Через этот же вход в блок передаются адреса чтения и записи в буферную память.
Эти адреса выделяются блоком 1 из поля микрокоманды.
Значением переноса, формируемым
10 блоком 9 установки переноса, может быть либо значение переноса-заема, вырабатываемое кольцевым арифметика-логическим . блоком 14 и поступающее на вход данных блока 9 установки переноса, либо значение
15 "1" или "0". Выбор значения осуществляется соответствующими управляющими сигналами, поступающими на управляющий вход блока 9 установки переноса от блока 1 управления и синхронизации.
20 Исходными данными, поступающими на входы блока 10 установки типа и длины поля данных для формирования указанных величин, являются их текущие значения в блоке 8 дескрипторов и блоке 4 настройки, Управление установкой осуществляется блоком 1 управления и синхронизации в соответствии с алгоритмом выполнения микрокоманды.
Формирование значения длины поля данных в блоке 4 настройки сопровождает1 ся анализом этой величины на нулевое значение, в результате чего вырабатывается признак на управляющем выходе блока, который поступает на второй управляющий вход блока 1 управления и синхронизации и используется для организации условных переходов, Длина формируется в результате анализа значений этого параметра в теку.— щих дескрипторах с учетом поля длины в
40 микрокоманде. Варианты настройки задаются микрокомандой. Регистр в блоке настройки содержит поля текущих переноса, типа и длины. Управление настройкой осуществляется блоком 1 управления и синхронизации через управляющий вход.
Обращение к полю основной памяти (чтение или запись) реализуется блоком 11 через первые вход и выход данных. Длина поля для одного обращения может быть произвольной в пределах разрядной сетки процессора. Она поступает на второй вход данных блока 11 из блока 4 настройки. Начальный адрес поля данных, задаваемый с .точностью до бита, поступает из блока 9
55 дескрипторов на третий вход данных блока
11 ввода-вывода, Обмен между основной памятью.и блоком 11 осуществляется словами длиной N байт, Словами такой же длины блок 11 обменивается с блоком 12 стековой памяти операндов. Обмен данными между
1697082 блоком 11 и основной памятью осуществляется контроллером основной памяти.
Блок 12 GTGKGBOA памяти операндов, являющийся аппаратной реализацией вершины стека операндов, предназначен для 5 организации безадресной обработки данныхх и позволяет сократить ксличество обращений в основную память. Он позволяет .организовать стек операндов с переменным .микропрограммно устанавливаемым рэзме- 10 ром позиции (кратным байту) и осуществлять доступ к данным как по указателю .верхней позиции стека, так и по смещению в глубину стека. Данные при обращении к стеку поступают в коммутатор .13 данных. 15 через блок 7 сдвига прижатыми к правому краю разрядной сетки процессора, Если длина позиции стека превышает разрядную сетку, то обмен данными со стеком происходит эа несколько обращений, Данные в сте- 20 ке хранятся компактно, поэтому очередной операнд перед помещением в стек сдвигается по месту в блоке 7 сдвига, При выполнении арифметико-логических операций .надоперандами, находящимися в стеке, ре- 25 зультат замещает один иэ операндов, В атом случае выравнивание операндов про; исходит по замещаемому операнду, Чтение и запись в блоке 12 стековой памяти операндов происходит по маске. В процессоре 30 имеется возможность организовать перекачку данных между аппаратной вершиной стека и его продолжением в основной пВМАти под управлением одной микрокоманды
"Откачка/подкачка стековая", При этом обь- 3ем перекачиваемых данных кратен размеру позиции стека. Данные передаются в блок
11, минуя блок 7 сдвига, и сдвигаются по месту в. блоке сдвига основной памяти. Информация о положении данных в стеке операндов передается иэ блокз 12 стековой памяти операндов через блок 4 настройки в блок 11.
Кольцевой арифметика-логический блок 14 работает следующим образом.
На первый 24 и второй 25 информационные входы блока 14 поступают соответственно значения левого и правого операндов, а на первый управляющий вход
26 — код операции от блока ; управления и синхронизации, На второй управляющий вход 27 поступает указание на тип обрабатываемой информации (двоичная или десятичная), длина поля и значение входного переноса от блока 4 настройки, на третий управляющий вход 28 — номера позиций старшего и младшего битов поля обработки.
Операция над операндами осуществляется побайтно в байтовых эрифметико-логических узлах (АЛУ) 19 с переменной длиной поля данных. Механизм ограничения длины поля обработки включается лишь в АЛУ, обрабатывающем старший байт.
Все младшие байты обрабатываются по полной длине, Выходной перенос формируется на выходе 31 К-входовым коммутатором 21, который выбирает выходной перенос старшего байтового АЛУ. Поскольку размер позиции стека всегда кратен байту, а операнды при нестековой операции всегда прижаты к правому краю разрядкой сетки, входной перенос всегда подается в нулевой разряд соответствующего байта, Коммутация входных переносов осуществляется двухвходовыми коммутаторами 20.
На вход младшего байтового АЛУ поступает входной перенос, а на входы остальных— переносы от предыдуших АЛУ. Результат операции передается на первый выход 29 (й-1)-разрядное слово для нестековых операций) и второй выход 30 (N-разрядное слово дпя стековых операциИ).
Узел 32 хранения операндов представляет собой ОЗУ с байтовой организацией, причем доступ к нему осуществляется одновременно по M байтам (где М = и/8+ 1, и— размер разрядной сетки процессора). При этом выбранная последовательность байтов выделяется в M-байтное слово. Номео )-ro байта в этом слове определяется его адресом в ОЗУ (A1) mod M. Считанная из узла 32 хранения операндов информация поступает на выход 43 блока 12 стековой памяти операндов. Записываемая информация поступает в узел 32 хранения операндов с выхода коммутатора 35, Операнд в стековой памяти хранится в позиции стека, представляющей участок байтовой памяти со смежными адресами байтов. Размер позиции стека, кратный байту, задается и рограммно настройкой узла ЗЗ стековой адресации, в котором формируются адреса обращения к байтам узла 32 хранения операндов. Здесь же осуществляется контроль за правильностью такого обращения и вырабатываются сигналы, индицирующие пересечение позиции стека при обращении, переполнение или опустошение стека. Исходная информация для "настройки" и выработки адресов поступает в узел 33 стековой адресации с входа 37 блока 12 стековой памяти операндов, а управляющая — от узла 34 стековых операций, Адрес обращения в стек с точностью до бита, сопровождаемый сигналом "Чтение/запись", через выход данных этого узла поступает на адресный вход узла 32 хранения операндов. Через этот же выход передается информация о положекии поля обоащения в выделенном М-байтном слове
1697082
15
50 на управляющий выход 47 блока 12 стековой памяти операндов. Эта информация содержит данные о номере начального и конечного битов в слове, Она управляет сдвигом и маскированием поля в блоке 7 сдвига и выполнением арифметика-логических операций в кольцевом арифметико-логическом блоке 14. При нестековых операциях эта информация выделяет поле длиной пбит,,прижатое к правому краю разрядной сетки.
Управление выполнением микрокоманд работы со стеком операндов осуществляет узел 34 стековых операций, который под действием сигналов от блока 1 управления и синхронизации, поступающих через управляющий вход 46 блока 12 стековой памяти операндов, вырабатывает пять сигналов управления формированием адреса обращения (" Чтение из стека", "Запись в стек", "Чтение при откачке", "Запись при подкачке" и "Сдвиг указателя стека"), поступающих в узел 33 стековой адресации.
Управление коммутатором 35 производится также через управляющий вход 46 (микрокоманды подкачки/откачки, стековых операций и обычного обращения в стек). В узле 34 стековых операций хранится и модифицируется информация о длине поля обращения к стеку и о дескрипторе стека, указывающем на длину и размещение в стеке операнда, к которому осуществляется доступ, Длина поля обращения может устанавливаться по информации из блока 4 настройки, блока 10 установки типа и длины поля данных и фиксированной (нулевой) ячейки первого блока буферной памяти в блоке 8 дескрипторов.
Эти данные поступают в узел 34 стековых операций через входы 38-40 блока 12 стековой памяти операндов. Значение текущей длины выдается через выход 44 блока 12 стековой памяти операндов. При операциях откачки/подкачки зто значение содержит также номер начального бита в M-разрядном слове. Узел 34 стековых операций вырабатывает сигналы "Текущая длина равна нулю", "Пересечение позиции стека" и "Пересечение границ стека", которые через управляющий выход 48 блока 12 стековой . памяти операндов передаются в блок 1 управления и синхронизации для организации условных переходов и циклов. Дескриптор текущего операнда содержит три секции: смещение в глубине стека, начальный адрес в стековой позиции и длины поля текущего операнда. Все три секции могут быть модифицированы на длину поля обращения и на единицу. Поле смещения задает смещение искомой позиции стека относительно вершины в байтах. При откачке/подкачке зта секция используется кэк счетчик количества передаваемых позиций. Секции начального адреса и длинь: операнда позволяют обращаться к операнду по частям, что особенно необходимо, если размер позиции стека больше разрядной сетки процессора. Начальный адрес задает смещение в битах начала поля обращения относительно начала позиции, а длина поля — число битов в поле обращения. Дескриптор хранится в регистре, доступном на микропрограммном уровне, Связь этого регистра с коммутатором 13, данных осуществляется через вход 37 и выход 45 блока 12 стековай памяти операндов.
При выполнении микрокоманды "Смена дескриптора стека" новый дескриптор заносится в регистр из первого блока буферной памяти в блоке 8 дескрипторов через вход
40 блока 12 стековой памяти операндов, а старый дескриптор передается в узел буферной памяти через выход 45 блока 12 стековой памяти операндов и коммутатор 13 данных. Сигналы, индицирующие неверное обращение к стеку, передаются в узел 34 стековых операций узла ЗЗ стековой адресации, Они вызывают блокировку исполнения микрокоманд работы со стеком и управляют исполнением микрокоманды откачки/подкачки.
Коммутатор 35 предназначен для выбора источника информации, записываемой в узел 32 хранения операндов. При выполнении микрокомэнды откачки/подкачки выбирается информация, поступающая от блока
11 на вход 42 блока 12 стековой памяти операндов, при выполнении микрокоманды стековой арифметико-логической операции — информация из кольцевого арифметика-логического блока 14 через вход 41. При исполнении других микрокоманд работы со стеком через вход 36 блока
12 стековой памяти операндов поступает информация из блока 7 сдвига, сдвинутая по месту, На фиг.10 представлена часть микрокоманд (в основном для работы со стеком).
Каждая микрокомэндэ состоит из 16 битов.
Часть этих битов от.3 до 12 содержит код микрокоманды. Оставшиеся биты указывают конкретные регистры или их адресуемые части, различные выходные функции кольцевого арифметико-логического блока, варианты исполнения микрокоманд или длины полей.
Первая микрокомэнда "Пересылка регистровая" имеет код 0001 в старшей тетраде. Следующие шесть битов указывают источник данных {регистр или псевдорегистр, например результат арифметика-логической операции нэд содержимым
1697082
5
15 регистров правого и левого операндов), оставшиеся шесть битов указывают регистрприемник данных.
Микрокоманда "Пересылка буферная" управляет передачей данных между регистрами и буферной памятью. При этом разряды 6 — 11 указывают на регйстр, разряды
0 — 3 — адрес в буферной памяти, разряд 4 указывает, с каким блоком (А или Б) буферной памяти ведется пересылка, разряд 5 задает направление обмена.
Микрокоманда "Пересылка с ОП* управляет обменом с основной памятью. Разряды 0 — 4 задают длину поля обмена (если их, значение равно О, длина задается блоком 4 настройки), разряд 5 — направление поля, разряды 6 — 7 задают регистр, участвующий в обмене (регистр левого операнда, регистр правого операнда, первый или второй регистр общего назначения), разряд 11 указывает направление обмена, Если длина операнда превышает разрядную сетку процессора, то обмен происходит эа несколько обращений к основной памяти, При этом каждде обращение сопровождается перемешением начальной тачки отсчета адреса на длину поля обращения, т.е, модификацией дескриптора основной памяти, расположенного в блоке дескрипторов, Варианть:, модификации заданы в разрядах 8 — 10 микрокоманды.
Микрокоманда "Отсчет" осуществляет модификацию дескриптора основной памяти, При этом разряды 5-7 задают вариант модификации, а разряды 0 — 4 — константу модификации аналогично микрокоманде
"Пересылка с, ОП".
Микрокоманда "Переход управляет последовательностью исполнения микрокоманд, модифицируя эначенйе в регистре адреса микрокоманды на величину, задаваемую в разрядах 0-11. Разряд 12 указывает на знак модификации (направление перехода).
Микрокоманда "Перенос" устанавливает значение перенос- в блоке 9 настройки по значению переноса или заема на выходе кольцевого арифметика-логического блока
14 либо непосредственно в "0" или в "1".
Микрокоманда "Отсчет стековый" выполняет модификацию дескриптора стека операндов, расположенного в блоке 34 стековых операций (секции начального адреса и длины операнда), на величину, эадаваемукэ в разрядах 0-4 (при равенстве нулю этого значения величина модификации задается значением длины поля обращения к стеку, на которую настроен блок 34 стековых операций), Вариант модификации задается разрядами 5 — 7 микрокоманды, 20
Микрокоманда "Чтение стековое" управляет выборкой поля данных из стека операндов в регистр, задаваемый разрядом 8 микрокоманды (регистр левого или правого операнда). Длина поля обращения задается в разрядах 0-4 (при равенстве его нулю длина задается значением из блока 34 стековых операций), Разряды 6 — 7 задают вариант модификации стекового дескриптора, а разряд
5 управляет перемещением указателя вершины стека. Если длина позиции стека превышает длину поля обращения, то выборка операнда осуществляется эа несколько обращений к стеку, При промежуточных обращениях, а также при обращении за операндом по смещению в глубину стека указатель вершины стека перемещать не следует.
Микрокоманда "Запись стековая" управляет записью поля из первого регистра общего назначения в одну из позиций стековой памяти. Назначение полей в разрядах
0-7 микрокоманды аналогично микрокоманде "Чтение стековое".
Микрокоманда "Модификация указателя" управляет перемещением указателя вершины стека операндов, Разряды 2 — 3 микрокоманды задают либо имя одного из регистров (левого или правого операндов, первого общего назначения), значение которого используется для модификации указателя, либо модификацию указателя стека на одну, позицию стека. Разряд 1 задает направление модификации. Разряд 0 управляет пропуском следующей микрокоманды при выходе указателя за пределы стека.
Микрокоманда "Обмен стековый" управляет сменой стекового дескриптора в узле стековых операций. При этом новое значение дескриптора выбирается из бу-, ферной памяти в блоке дескрипторов по адресу, заданному разрядами 0-3 микрокоманды, а старое значение помещается в эту же память по адресу, заданному разрядами 4-7.
Микрокоманда "Настройка стековая" управляет настройкой узла 34 стековых операций на длину поля обращения к стеку по комбинациям значений из блока 4 настройки (ДЛ), блока 8 дескрипторов (ПБ или нулевая ячейка МПА) и узла 34 стековых операций (РУС), Разряды 1 — 3 микрокоманды задают варианты комбинаций. Узел 34 стековых операций настраивается на длину, равную наименьшему значению в комбинации в пределах разрядной сетки процессора. Разряд 0 управляет пропуском следующей микрокоманды, если результат настройки равен нулю.
1697082
Микрокоманда "Настройка длины" управляет обменом значением длины обращения к стеку операндов между узлом 34 стековых операций и одним из регистров: левого, правого операнда, первым, вторым общего назначения или блоком настройки.
Разряды 1 — 3 микрокоманды задают имя регистра, с которым происходит обмен, а разряд 0 задает направление обмена, Микрокоманда "Сдвиг Т" управляет циклическим и ациклическим сдвигами влево содержимого второго регистра общего назначения и записью сдвинутого значения в регистр, указанный разрядами 6-11 микрокоманды.Тип сдвига задается разрядом
5, Разряды 0 — 4 задают константу сдвига
В случае нулевого значения этих разрядов в качестве константы сдвига используется содержимое блока настройки.
Микрокоманда "Очистка регистровая" управляет сбросом в ноль содержимого регистров левого, правого операндов, первого, второго общего назначения, блока настройки, регистров дескриптора в блоке дескрипторов в произвольном наборе. Требуемый набор регистров и блоков задается разрядами 0 — 7 микрокоманды.
Микрокоманда "Арифметико-логическая операция стековая" управляет выполнением одной из арифметических или логических операций нэд операндами, хранящимися в стеке операндов. Результат помещается в верхнюю позицию стека, занимаемую одним из операндов. Разряды
1-3 микрокоманды задают операцию согласно таблице на фиг.11. Если размер позиции стека превышает размер разрядной сетки процессора, то микрокоманда организует несколько обращений к стеку операндов с модификацией стекового дескриптора.
Микрокоманда "Подкачка/откачка стековая" управляет обменом информацией между блоком 12 стековой памяти операндов и основной памятью, организуя в основной памяти продолжение стека, Разряд 0 микрокоманды указывает направление обмена. Объем обмениваемой информации кратен размеру позиции стека операндов.
Стековый дескриптор в секции смещения задает количество позиций, подлежащих обмену. Если размер позиции превышает разрядную сетку процессора, то позиция передается за несколько. обращений к блоку
12 стековой памяти операндов и к блоку 11 с основной памятью. После завершения подкачки/откачки указатель вершины стека операндов сдвигается вверх или вниз на количество подкачанных или откачанных позиций.
Исполнение микрокоманды "Арифметико-логическая операция стековая" может быть пояснено на примере выполнения сложения двух операндов А и В, Пусть разрядная сетка процессора и =
24, обьем памяти в узле 32 хранения операндов Ч „, = 256 байт, размер позиции стека, на который настроен узел 33 стековой адресации, РПС = 9 байт, доступ к стеку осуществляется одновременно по четырем байтам N = 4. Пусть стек заполнен, например, пятью позициями (УВ = 5 х 9 = 45), операнд А находится в позиции стека операндов на две позиции ниже вершины, а операнд  — в позиции на вершине стека операндов. Расположение операндов в стеке относительно дна стека показано нэ фиг.12, 5
Стековый дескриптор для операции стекового сложения должен иметь следующие значения в своих позициях: смещение операнда В (адреса в памяти не изменяются) и модифицируется стековый дескриптор;
НАС увеличивается на 24, э ДПС уменьшается на 24. Значение переноса запоминает50 ся в блоке 9 установки переноса. B следующих двух тактах (третьем и четвертом) повторяются действия первого и второго тактов над следующим 24-разрядным полем операндов A и В . В пятом и шестом тактах обрабатываются старшие
24 разряда опсрандо A и В. Во всех тактах при изменении ДПС анализируется его соотношение с разрядной сеткой. Если
CM= 2x9= 18, начальный адрес стековый
НАС = О, длина позиции стека ДПС = 72, Операция стекового сложения выполняется за несколько машинных тактов. В пер2 вом такте осуществляется подготовка и обращение в стек за операндом А и его выборка в регистр 2 левого операнда. При и= 24 длина поля обращения не может превышать 24 бита. Если ДПС 24, то длина поля обращения устанавливается 24 бита независимо от настройки узла 34 стековой адресации. Подготавливаются адрес позиции операнда А в узле 32 хранения операндов и константа циклического сдвига (например, влево) выбранного слова в блоке 7 сдвига, Она равна КСДВ = (СМ) mod N = 2 байта, .
Затем осуществляется выборка операнда А (младшие 24 разряда), сдвиг его в блоке 7 сдвига и запись в регистр 2 левого операнда
40 через первый коммутатор 15. Во втором такте производится подготовка адреса обращения за операндом В, осуществляется выборка операнда В, передача его через второй коммутатор 16 на второй вход кольцевого а рифмети ко-логического блока 14, запись результата в стек по маске на место младших 24 разрядов
1697082
55
ДПС<24, то длина поля доступа устанавливается равной ДПС. Микрокоманда выполняется до обнуления ДПС (в данном случае
6 тактов). При обнулении ДПС узг!ом 33 стековой адресации вырабатывается сигнал, индицирующий пересечение границы позиции стека. По этому сигналу вырабатываетcs! и ризнак окончания стековой макрокоманды, который передается через второй управляющий выход блока 12 стековой памяти операндов на первый управляющий вход блока 1 управления и синхронизации и разрешает переход к выполнению следующей микрокоманды, Исполнение микрокоманды "ПодкачKcil/oòêà÷êà стековая" можно пояснить на примере откачки четырех позиций стека операндов в основную память. Для этого в узел 34 стековых операций должен быть. прмещен стековый дескриптор, имеющи!й следующие значения в своих полях; CM= 4(9= 36, НАС= О, ДПС=: 72.
Откачка так>ке выполняется за несколько машинных тактов, В первом такте осуществляется выборка младшего поля операнда д !иной 24 бита на дне стека и помещение его в блок 11 через первый выход блока 12 стековой памяти операндов и пятый вход блока 11. Адрес этого поля вырабатывается в узле 33 стековой адресации по соответствующим сигналам от узла 34 стековых операций с использованием значения регистра указателя дна стека. Передача выбранного полл осуществл !ется в составе байтного слова. Поскольку размер позиции стека и передаваемого слова кратен байту,то младшие три разряда значения длины паля обмена предполагаются равными нулю и используются для передачи в контроллер
Основной памяти информации о положении младшего байта выбранного полл в передаваемом слове, Эта информация передается через второй выход блока 12 стековой памяти операндов вблок 4 нас,т-ройки через его пятый вход и через его первый выход поступает на второй вход блока 11. Адрес поля в основной памяти передается с четвертого выхода блока 8 дескрипторов на третий вход блока 11. Затем происходит модификация стекового дескриптора s узле 34 стековых операций и дескриптора основной памяти в блоке 8 дескрипторов на длину выбранного поля. В стековом дескрипторе модифицируются поля НАС и ДПС: НАС увеличивается, а ДПС уменьшается на длину поля (то есть на 24), Дескриптор основной памяти модифицируется аналогично.
Во втором такте выбирается следующая порция операнда, а выбранная порция передается в основную память. Дескрипторы
5 !
О !
50 также модифицируются. В третьем такте по- вторяются действия, описанные для первого и второго тактов над старшей порцией операнда, После модификации стекового дескриптора вырабатывается сигнал пересечения границы позиции стека, по которому в стековом дескрипторе восстанавливаются первоначальные значения полей НАС и ДПС, а поле СМ уменьшается на длину позиции стека. При этом также осуществляется увеличение значения указателя дна и уменьшение значения указателя вершины стека на длину позиции стека. Таким образом, абсолютное значение адреса вершины стека не изменяется, В следующих девяти тактах повторяются действия, описанные для первых трех тактов, и откачиваются следующие три hoзиции стека. В последнем, двенадцатом такте после модификации стекового дескриптора поле СМ обнуляется, поэтому на втором управляющем выходе блока 12 стековой памяти операндов вырабатывается сигйал завершения стековой операции, передаваемый на первый управляющий вход блока 1 управления и синхронизации.
Этот же сигнал может быть выработан и при опустошении стека (т.е. при обнулении указателя верхней позиции стека). Это произойдет, если значение в поле CM больше значения указателя верхней позиции.
Последняя порция данных передается в основную память контроллером основной памяти при исполнении следующей микрокоманды.
Операция подкачки осуществляется аналогично, однако данные в составе N-байтного слова передаются с третьего выхода блока 11 на седьмой вход данных блока 12 стековой памяти операндов сдвинутыми по месту. При подкачке модификация дескрипторов происходит при поступлении данных в блок 12 стековой памяти операндов, а контролируется ситуация переполнения стека.
Во всех случаях при завершении микрокоманды "Подкачка/откачка стековая" по контролю границ стека в поле СМ записано количество позиций стека, которые не удалось перекачать. Эта информация может быть использована при анализе результатов подкачки или откачки следующими микрокоманда