Изобретение относится к вычислительной технике и может быть использовано для построения ЭВМ с микропрограммным управлением, предназначенных для эффективной реализации микропрограммными средствами проблемно- и машинно-ориентированных языков высокого уровня.
Целью изобретения является повышение производительности процессора (при микропрограммной реализации входных языков высокого уровня с использованием стековой организации данных за счет выравнивания стековых операндов не по правому краю разрядной сетки арифметико-логического блока, а по разрядной сетке результата, помещаемого в стек)
На фиг.1 и 2 представлена структурная схема процессора; на фиг.З - структурная схема кольцевого арифметико-логического блока; на фиг.4 - структурная схема блока стековой памяти операндов, на фиг.5 - пример выполнения блока настройки; на фиг.6 - пример выполнения блока ввода-вывода; на фиг.7 - структура блока дескрипторов; на фиг.8 - пример реализации блока установки переноса; на фиг,9 - пример выполнения блока установки типа и длины поля данных; на фиг, 10 - форматы отдельных микрокоманд процессора; на фиг.11 - варианты стековых арифметико-логических операций; на фиг.12 - пример расположения операндов в стеке.
Процессор микропрогрзммируемой ЭВМ содержит блок (фиг.1 и 2) 1 управления и синхронизации, регистр 2 левого операнда, регистр 3 правого операнда, блок 4 на- стройки, первый Б второй б регистры общего., назначения, блок 1 сдвига, блок 8 дескрипторов, блок 9 установки переноса, блок 10 установки типа и длмны поля дан- ных, блок 11 ввода-вывода, блок 12 стековой памяти операндов, коммутатор 13 данных, кольцевой арифметико-логический блок 14, первый 15 и второй 16 коммутаторы, входы 17 данных и выход 18 данных.
Кольцевой арифметико-логический блок 14 (фиг.З) содержит N байтовых ариф- метико-логических узлов 19 с переменной длиной поля данных, N двухвходовых ком- мутаторов 20, М-входе.вой коммутатор 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 vi управляющий выход 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 управления и синхронизации предназначен для управления и синхронизации работы всех блоков процессора и может быть реализован в виде блока микропрограммного управления. Через информационные вход и выход блока осуществляется доступ к регистрам микрокоманды и адреса микрокоманды, а также управляющей памяти с целью их перезагрузки или использования их информации для вычислений. Два управляющих входа
0 предназначены для вмешательства в ход выполнения микропрограммы с целью организации условных переходов и выполнения микрокоманд переменной длительности (организации их циклического выполнения с
5 выходов по условию, формируемому в исполнительных устройствах процессора). Ус- ловные переходы в процессоре реализуются пропуском микрокоманд безусловного перехода (превращением их в
0 пустые микрокоманды). Блок 1 управления и синхронизации реализует систему микрокоманд процессора. На управляющие выходы блока выдаются сигналы управления записью в регистры, переключением
5 коммутаторов и работой функциональных блоков, а также литералы полей микрокоманд в соответствии с временными диаграммами этих микрокоманд. Для синхронизации внешних объектов процес0 сора и организации работы ЭВМ в целом
предназначен выход синхронизации внеш„ них объектов, выдающий опорную последовательность синхросигналов от
синхрогенератора.
5 Арифметические и логические операции реализуются процессором в кольцевом арифметико-логическом блоке, при каждом обращении к которому на его первом и втором выходах результата, связанных соот0 ветственно с коммутатором 13 данных и с шестым входом данных блока 12 стековой памяти операндов, вырабатывается значение одной из нескольких арифметических или логических функций над операндами,
5 содержащимися в регистрах 2 и 3 левого и правого операнда или блоке 12 стековой памяти операндов. Этими функциями являются Сумма, Разность, Инверсия левого операнда, Инверсия правого
Q операнда, Сумма по модулю 2, Конъюнкция, Маскирование левого операнда, Маскирование правого операнда, Дизъюнкция, причем каждая из этих функций может быть задана в микрокоманде в качес стве регистра источника данных для операций над содержимым регистров 2 и 3 левого и правого операндов или полем микрокоманды для стековых операций и поступает через первый управляющий вход от блока 1 управления и синхронизации. Управляющая информация, необходимая для выполнения указанных функций и содержащая значение переноса заема при выполнении арифметических операций, тип обрабатываемой информации (двоичный, десятичный), а также длина обрабатываемого поля данных поступают из блока 4 настройки через второй управляющий вход кольцевого арифметико-логического блока 14, на третий управляющий вход которого поступает информация о номере старшего и младшего битов обрабатываемой информации из блока 12 стековой памяти операндов.
Первый 5 и второй 6 регистры общего назначения предназначены для работы в качестве универсальных регистров. Каждый из этих регистров разбит на отдельные 4- разрядные секции, самостоятельно адресуемые в микрокомандах. Управление записью в секции осуществляется блоком 1 управления и синхронизации через управляющие входы регистров. На базе второго регистра 6 общего назначения реализован блок 7 сдвига, выполняющий циклический/ациклический сдвиг влево содержимого этого регистра на произвольное число разрядов, а также выделение поля произвольного размера из этого регистра. Требуемая величина сдвига, а также размер выделяемого поля задаются литерально в микрокоманде или блоком 4 настройки и поступают в блок 7 сдвига соответственно через его первый или второй управляющие входы, выделяемое поле выдается всегда прижатым вправо. Управление режимами сдвига производится блоком 1 управления и синхронизации через первый управляющий вход блока 7 сдвига.
Блок 8 дескрипторов предназначен для хранения, смены и модификации дескрипторов данных в основной памяти.
Возможна модификация полей дескриптора на значение текуЩей длины (вход 80) или любое другое значение с выхода коммутатора 13 данных через вход 81. Через этот же вход осуществляется загрузка регистров и памятей блока. Через выходы 83, 84, 86 и 87 блока доступны значения обоих регистров и узлов блока. Связи внутри блока позволяют менять текущий дескриптор из буферной памяти, сохраняя в ней старый дескриптор. Эта же операция возможна для любой половины дескриптора, а также для стекового дескриптора, находящегося в блоке 12 стековой памяти операндов. Последнее возможно через вход 81 и выход 83 блока. Доступ к значениям дескрипторов внутри блока возможен также через коммутатор 79, являющийся частью коммутатора данных 13. Управление записью, чтением и модификацией дескрипторов осуществляется через управляющий вход 82 блоком 1 управления и синхронизации. Через этот же вход в блок передаются 5 адреса чтения и записи в буферную память. Эти адреса выделяются блоком 1 из поля микрокоманды.
Значением переноса, формируемым
0 блоком 9 установки переноса, может быть либо значение переноса-заема, вырабатываемое кольцевым арифметико-логическим .блоком 14 и поступающее на вход данных блока 9 установки переноса, либо значение
5 О. Выбор значения осуществляется соответствующими управляющими сигналами, поступающими на управляющий вход блока 9 установки переноса от блока 1 управления и синхронизации.
0Исходными данными, поступающими
на входы блока 10 установки типа и длины поля данных для формирования указанных величин, являются их текущие значения в блоке 8 дескрипторов и блоке 4 настройки.
5 Управление установкой осуществляется блоком 1 управления и синхронизации в соответствии с алгоритмом выполнения микрокоманды.
Формирование значения длины поля
0 данных в блоке 4 настройки сопровождается анализом этой величины на нулевое значение, в результате чего вырабатывается признак на управляющем выходе блока, который поступает на второй управляющий
5 вход блока 1 управления и синхронизации и используется для организации условных переходов, Длина формируется в результате анализа значений этого параметра в теку.- щих дескрипторах с учетом поля длины в
Q микрокоманде. Варианты настройки задаются микрокомандой. Регистр в блоке настройки содержит поля текущих переноса, типа и длины. Управление настройкой осуществляется блоком 1 управления и синхро5 низации через управляющий вход.
Обращение к полю основной памяти (чтение или запись) реализуется блоком 11 через первые вход и выход данных. Длина поля для одного обращения может быть проQ извольной в пределах разрядной сетки процессора. Она поступает на второй вход данных блока 11 из блока 4 настройки. Начальный адрес поля данных, задаваемый с .точностью до бита, поступает из блока 9
е дескрипторов на третий вход данных блока 11 ввода-вывода. Обмен между основной памятью.и блоком 11 осуществляется словами длиной N байт. Словами такой же длины блок 11 обменивается с блоком 12 стековой памяти операндов. Обмен данными между
блоком 11 и основной памятью осуществляется контроллером основной памяти.
Блок 12 стековой памяти операндов, являющийся аппаратной реализацией вершины стека операндов, предназначен для организации безадресной обработки данных и позволяет сократить количество обращений в основную память. Он позволяет организовать стек операндов с переменным микропрограммно устанавливаемым размером позиции (кратным байту) и осуществлять доступ к данным как по указателю верхней позиции стека, тяк и по смещении в глубину стека. Данные при обращении к стеку поступают в коммутатор 13 данных через блок 7 сдвига прижатыми к правому краю разрядной сетки процессора. Если длина позиции стека превышает разрядную сетку, то обмен данными со стеком происходит за несколько обращений, Данные в стеке хранятся компактно, поэтому очередной операнд перед помещением в стек сдвигается по месту в блоке 7 сдвига. При выполнении арифметико-логических операций над операндами, находящимися в стеке, результат замещает один из операндов. В этом случае выравнивание операндов происходит по замещаемому операнду Чтение и запись в блоке 12 стековой памяти операндов происходит по маске. 3 процессоре имеется возможность организовать перекачку данных между аппаратной вершиной стека и его продолжением в основной памяти под управлением одной микрокоманды Откачка/подкачка стековая, При этом объем перекачиваемых данных кратен размеру позиции стека. Данные передаются в блок 11, минуя блок 7 сдвига, и сдвигаются по месту в блоке сдвига основной памяти. Информация о положении данных в стеке операндов передается из блокз 12 стековой памяти операндов через блок 4 настройки в блок 11.
Кольцевой арифметико-логический блок 14 работает следующим образом.
На первый 24 и второй 25 информационные входы блока 14 поступают соответственно значения левого и правого операндов, а на первый управляющий вход 26 - код операции от блока управления и синхронизации, Нэ второй управляющий вход 27 поступает указание на тип обрабатываемой информации (двоичная или десятичная), длина поля и значение входного переноса от блока 4 настройки, на третий управляющий вход 28 - номера позиций старшего и младшего бит ов поля обработки. Операция над операндами осуществляется побайтно в байтовых арифметико-логических узлах (АЛУ) 19 с переменной длиной
поля данных. Механизм ограничения длины поля обработки включается лишь в АЛУ, обрабатывающем старший байт.
Все младшие байты обрабатываются по
полной длине, Выходной перенос формируется на выходе 31 N-входовым коммутатором 21, который выбирает выходной перенос старшего байтового АЛУ. Поскольку размер позиции стека всегда кратен бай0 ту, а операнды при нестековой операции всегда прижаты к правому краю разрядной сетки, входной перенос всегда подается в нулевой разряд соответствующего байта. Коммутация входных переносов осуществ5 ляется двухвходовыми коммутаторами 20. На вход младшего байтового АЛУ поступает входной перенос, а на входы остальных - переносы от предыдущих АЛУ. Результат операции передается на первый выход 29
0 (ЬИ)-разрядное слово для нестековых операций) и второй выход 30 (N-разрядное слово для стековых операций).
Узел 32 хранения операндов представляет собой ОЗУ с байтовой организацией,
5 причем доступ к нему осуществляется одновременно по М байтам (где М п/8 + 1, п - размер разрядной сетки процессора). При этом выбранная последовательность байтов выделяется в М-байтное слово. Номер j-ro
0 байта в этом слове определяется его адресом в ОЗУ Aj mod M. Считанная из узла 32 . хранения операндов информация поступает на выход 43 блока 12 стековой памяти операндов. Записываемая информация посту5 пает в узел 32 хранения операндов с выхода коммутатора 35, Операнд в стековой памяти хранится в позиции стека, представляющей участок байтовой памяти со смежными адресами байтов. Размер позиции стека, крат0 ный байту, задается программно настройкой узла 33 стековой адресации, в котором формируются адреса обращения к байтам узла 32 хранения операндов. Здесь же осуществляется контроль за правильно5 стью такого обращения и вырабатываются сигналы, индицирующие пересечение позиции стека при обращении, переполнение или опустошение стека. Исходная информация для настройки и выработки адресов
Q поступает в узел 33 стековой адресации с входа 37 блока 12 стековой памяти операндов, а управляющая - от узла 34 стековых операций.
Адрес обращения в стек с точностью до
-с бита, сопровождаемый сигналом Чтение/запись, через выход данных этого узла поступает на адресный вход узла 32 хранения операндов. Через этот же выход передается информация о положении поля обращения в выделенном М-байтном слове
на управляющий выход 47 блока 12 стековой памяти операндов. Эта информация содержит данные о номере начального и конечного битов в слове. Она управляет сдвигом и маскированием поля в блоке 7 сдвига и выполнением арифметико-логических операций в кольцевом арифметико-логическом блоке 14. При нестековых операциях эта информация выделяет поле длиной п бит, прижатое к правому краю разрядной сетки.
Управление выполнением микрокоманд работы со стеком операндов осуществляет узел 34 стековых операций, который под действием сигналов от блока 1 управления и синхронизации, поступающих через управляющий вход 46 блока 12 стековой памяти операндов, вырабатывает пять сигналов управления формированием адреса обращения (Чтение из стека, Запись в стек, Чтение при откачке, Запись при подкачке и Сдвиг указателя стека), поступающих в узел 33 стековой адресации. Управление коммутатором 35 производится также через управляющий вход 46 (микрокоманды подкачки/откачки, стековых операций и обычного обращения в стек). В узле 34 стековых операций хранится и модифицируется информация о длине поля обращения к стеку и о дескрипторе стека, указывающем на длину и размещение в стеке операнда, к которому осуществляется доступ. Длина поля обращения может устанавливаться по информации из блока 4 настройки, блока 10 установки типа и длины поля данных и фиксированной (нулевой) ячейки первого блока буферной памяти в блоке 8 дескрипторов. Эти данные поступают в узел 34 стековых операций через входы 38-40 блока 12 стековой памяти операндов. Значение текущей длины выдается через выход 44 блока 12 стековой памяти операндов. При операциях откачки/подкачки это значение содержит также номер начального бита в М-разряд- ном слове. Узел 34 стековых операций вырабатывает сигналы Текущая длина равна нулю, Пересечение позиции стека и Пересечение границ стека, которые через управляющий выход 48 блока 12 стековой памяти операндов передаются в блок 1 управления и синхронизации для организации условных переходов и циклов. Дескриптор текущего операнда содержит три секции: смещение в глубине стека, начальный адрес в стековой позиции и длины поля текущего операнда. Все три секции могут быть модифицированы на длину поля обращения и на единицу. Поле смещения задает смещение искомой позиции стека относительно вершины в байтах. При откачке/подкачке эта
секция используется как счетчик количества передаваемых позиций. Секции начального адреса и длины операнда позволяют обращаться к операнду по частям, что особенно 5 необходимо, если размер позиции стека больше разрядной сетки процессора. Начальный адрес задает смещение в битах начала поля обращения относительно начала позиции, а длина поля - число битов в поле
10 обращения. Дескриптор хранится в регистре, доступном на микропрограммном уровне. Связь этого регистра с коммутатором 13 данных осуществляется через вход 37 и выход 45 блока 12 стековой памяти операндов.
5При выполнении микрокоманды Смена
дескриптора стека новый дескриптор заносится в регистр из первого блока буферной памяти в блоке 8 дескрипторов через вход 40 блока 12 стековой памяти операндов, а
0 старый дескриптор передается в узел буферной памяти через выход 45 блока 12 стековой памяти операндов и коммутатор 13 данных. Сигналы, индицирующие неверное обращение к стеку, передаются в узел 34
5 стековых операций узла 33 стековой адресации, Они вызывают блокировку исполнения микрокоманд работы со стеком и управляют исполнением микрокоманды откачки/подкачки.
0Коммутатор 35 предназначен для выбора источника информации, записываемой в узел 32 хранения операндов. При выполнении микрокоманды откачки/подкачки выбирается информация, поступающая от. блока
5 11 на вход 42 блока 12 стековой памяти операндов, при выполнении микрокоманды стековой арифметико-логической операции - информация из кольцевого арифметико-логического блока 14 через
Q 41. При исполнении других микрокоманд работы со стеком через вход 36 блока 12 стековой памяти операндов поступает информация из блока 7 сдвига, сдвинутая по месту,
5 На фиг.10 представлена часть микрокоманд (в основном для работы со стеком). Каждая микрокоманда состоит из 16 битов. Часть этих битов от 3 до 12 содержит код микрокоманды. Оставшиеся биты указываQ ют конкретные регистры или их адресуемые части, различные выходные функции кольцевого арифметико-логического блока, варианты исполнения микрокоманд или длины полей.
5Первая микрокоманда Пересылка регистровая имеет код 0001 в старшей тетраде. Следующие шесть битов указывают источник данных (регистр или псевдорегистр, например результат арифметико-логической операции над содержимым
егистров правого и левого операндов), осавшиеся шесть битов указывают регистр- приемник данных.
Микрокоманда Пересылка буферная правляет передачей данных между регистрами и буферной памятью. При этом разряды 6-11 указывают на регистр, разряды 0-3 - адрес в буферной памяти, разряд 4 указывает, с каким блоком (А или Б) буферной памяти ведется пересылка, разряд 5 задает направление обмена.
Микрокоманда Пересылка с ОП управляет обменом с основной памятью. Разряды 0-4 задают длину поля обмена (если их значение равно 0, длина задается блоком 4 настройки), разряд 5 - направление поля, разряды 6-7 задают регистр, участвующий в обмене (регистр левого операнда, регистр правого операнда, первый или второй регистр общего назначения), разряд 11 указывает направление обмена, Если длина операнда превышает разрядную сетку процессора, то обмен происходит за несколько обращений к основной памяти. При этом каждбе обращение сопровождается перемещением начальной точки отсчета адреса на длину поля обращения, т.е. модификацией дескриптора основной памяти, расположенного в блоке дескрипторов. Варианта модификации заданы в разрядах 8-10 микрокоманды.
Микрокоманда Отсчет осуществляет модификацию дескриптора основной памяти. При этом разряды 5-7 задают вариант модификации, а разряды 0-4 - константу модификации аналогично микрокоманде Пересылка с ОП.
Микрокоманда Переход управляет последовательностью исполнения микрокоманд, модифицируя значение в регистре адреса микрокоманды на величину, задаваемую в разрядах 0-11. Разряд 12 указывает на знак модификации (направление перехода).
Микрокоманда Перенос устанавливает значение переноса в блоке 9 настройки по значению переноса или заема на выходе кольцевого арифметико-логического блокг) 14 либо непосредственно в О или в 1.
Микрокоманда Отсчет стековый выполняет модификацию дескриптора стека операндов, расположенного в блоке 34 стековых операций (секции начального адреса и длины операнда), на величину, задаваемую в разрядах 0-4 (при равенстве нулю этого значения величина модификации задается значением длины поля обращения к стеку, на которую настроен блок 34 стековых операций). Вариант модификации задается разрядами 5-7 микрокоманды,
Микрокоманда Чтение стековое управляет выборкой поля данных из стека операндов в регистр, задаваемый разрядом 8 микрокоманды (регистр левого или правого
операнда). Длина поля обращения задается в разрядах 0-4 (при равенстве его нулю длина задается значением из блока 34 стековых операций). Разряды 6-7 задают вариант модификации стекового дескриптора, а разряд
5 управляет перемещением указателя вершины стека. Если длина позиции стека превышает длину поля обращения, то выборка операнда осуществляется за несколько обращений к стеку. При промежуточных обращениях, а также при обращении за операндом по смещению в глубину стека указатель вершины стека перемещать не следует.
Микрокоманда Запись стековая управляет записью поля из первого регистра общего назначения в одну из позиций стековой памяти. Назначение полей в разрядах 0-7 микрокоманды аналогично микрокоманде Чтение стековое.
Микрокоманда Модификация указателя управляет перемещением указателя вершины стека операндов. Разряды 2-3 микрокоманды задают либо имя одного из
регистров (левого или правого операндов, первого общего назначения), значение кото- рого используется для модификации указателя, либо модификацию указателя стека на одну .позицию стека. Разряд 1 задает направление модификации. Разряд 0 управляет пропуском следующей микрокоманды при выходе указателя за пределы стека.
Микрокоманда Обмен стековый управляет сменой стекового дескриптора в узле стековых операций. При этом новое значение дескриптора выбирается из бу- . ферной памяти в блоке дескрипторов по адресу, заданному разрядами 0-3 микрокоманды, а старое значение помещается в эту же память по адресу, заданному разрядами 4-7.
Микрокоманда Настройка стековая управляет настройкой узла 34 стековых операций на длину поля обращения к стеку по
Q комбинациям значений из блока 4 настройки (ДЛ), блока 8 дескрипторов (ПБ или нулевая ячейка МПА) и узла 34 стековых операций (РУС). Разряды 1-3 микрокоманды задают варианты комбинаций. Узел 34
е стековых операций настраивается на длину, равную наименьшему значению в комбинации в пределах разрядной сетки процессора. Разряд 0 управляет пропуском следующей микрокоманды, если результат настройки равен нулю.
Микрокоманда Настройка длины упавляет обменом значением длины обращения к стеку операндов между узлом 34 тековых операций и одним из регистров: евого , правого операнда, первым, вторым бщего назначения или блоком настройки. Разряды 1-3 микрокоманды задают имя регистра, с которым происходит обмен, а разряд 0 задает направление обмена.
Микрокоманда Сдвиг Т управляет циклическим и ациклическим сдвигами влево содержимого второго регистра общего назначения и записью сдвинутого значения в регистр, указанный разрядами 6-11 микокоманды.Тип сдвига задается разрядом , Разряды 0-4 задают константу сдвига случае нулевого значения этих разрядов в ачестве константы сдвига используется соержимое блока настройки.
Микрокоманда Очистка регистровая управляет сбросом в ноль содержимого регистров левого, правого операндов, первого, второго общего назначения, блока настройки, регистров дескриптора в блоке
дескрипторов в произвольном наборе. Требуемый набор регистров и блоков задается разрядами 0-7 микрокоманды.
Микрокоманда Арифметико-логическая операция стековая управляет выполнением одной из арифметических или логических операций над операндами, хранящимися в стеке операндов. Результат помещается в верхнюю позицию стека, занимаемую одним из операндов. Разряды 1-3 микрокоманды задают операцию согласно таблице на фиг.11. Если размер позиции стека превышает размер разрядной сетки процессора, то микрокоманда организует несколько обращений к стеку операндов с модификацией стекового дескриптора.
Микрокоманда Подкачка/откачка стековая управляет обменом информацией между блоком 12 стековой памяти операндов и основной памятью, организуя в основной памяти продолжение стека. Разряд О микрокоманды указывает направление обмена. Объем обмениваемой информации кратен размеру позиции стека операндов. Стековый дескриптор в секции смещения задает количество позиций, подлежащих обмену. Если размер позиции превышает разрядную сетку процессора, то позиция передается за несколько обращений к блоку 12 стековой памяти операндов и к блоку 11 с основной памятью. После завершения подкачки/откачки указатель вершины стека операндов сдвигается вверх или вниз на количество подкачанных или откачанных позиций.
Исполнение микрокоманды Арифметико-логическая операция стековая может
0
5
0
5
0
5
0
5
0
5
быть пояснено на примере выполнения сложения двух операндов А и В.
Пусть разрядная сетка процессора п 24,обьем памяти в узле 32 хранения операндов VCTBK 256 байт, размер позиции стека, на который настроен узел 33 стековой адресации, РПС 9 байт, доступ к стеку осуществляется одновременно по четырем байтам N 4. Пусть стек заполнен, например, пятью позициями (УВ 5x9 45), операнд А находится в позиции стека операндов на две позиции ниже вершины, а операнд В - в позиции на вершине стека операндов. Расположение операндов в стеке относительно дна стека показано на фиг.12.
Стековый дескриптор для операции стекового сложения должен иметь следующие значения в своих позициях: смещение СМ 2x9 18, начальный адрес стековый НАС 0, длина позиции стека ДПС 72,
Операция стекового сложения выполняется за несколько машинных тактов. В первом такте осуществляется подготовка и обращение в стек за операндом А и его выборка в регистр 2 левого операнда. При п 24 длина поля обращения не может превышать 24 бита. Если , то длина поля обращения устанавливается 24 бита независимо от настройки узла 34 стековой адресации. Подготавливаются адрес позиции операнда А в узле 32 хранения операндов и константа циклического сдвига (например, влево) выбранного слова в блоке 7 сдвига. Она равна КСДВ CM mod N 2 байта. - Затем осуществляется выборка операнда А (младшие 24 разряда), сдвиг его в блоке 7 сдвига и запись в регистр 2 левого операнда Через первый коммутатор 15. Во втором такте производится подготовка адреса обращения за операндом В, осуществляется выборка операнда В, передача его через второй коммутатор 16 на второй вход кольцевого арифметико-логического блока 14, запись результата в стек по маске на место младших 24 разрядов операнда В (адреса в памяти не изменяются) и модифицируется стековый дескриптор: НАС увеличивается на 24, а ДПС уменьшается на 24. Значение переноса запоминается в блоке 9 установки переноса. В следующих двух тактах ( третьем и четвер- том) повторяются действия первого и второго тактов над следующим 24-разрядным полем операндов А и В . В пятом и шестом тактах обрабатываются старшие 24 разряда операндое Л и В. Во всех тактах при изменении ДПС анализируется его соотношение с разрядной сеткой. Если
, то длина поля доступа устанавливается равной ДПС. Микрокоманда выполняется до обнуления ДПС (в данном случае 6 тактов). При обнулении ДПС узлом 33 стековой адресации вырабатывается сигнал, индицирующий пересечение границы позиции стека. По этому сигналу вырабатывает- сй признак окончания стековой микрокоманды, который передается через вт орой управляющий выход блока 12 стеко- в0й памяти операндов на первый управляю- Щ Мй вход блока 1 управления и синхронизации и разрешает переход к вы- прлнению следующей микрокоманды.
Исполнение микрокоманды Подкачка/откачка стековая можно пояснить на примере откачки четырех позиций стека операндов в основную память. Для этого в узе л 34 стековых операций должен быть помещен стековый дескриптор, имею - щий следующие значения в своих полях: СМ- 36, НАС О, ДПС 72.
Откачка также выполняется за несколько машинных тактов. В первом такте осуществляется выборка младшего поля операнда длиной 24 бита на дне стека и помещение его в блок 11 через первый выход блока 12 сгековой памяти операндов и пятый вход блока 11. Адрес этого поля вырабатывается в узле 33 стековой адресации по соответствующим сигналам от узла 34 стековых операций с использованием значения регистра указателя дна стека. Передача выбранного поля осуществляется в составе байтного слова. Поскольку размер позиции стека и Передаваемого слова кратен байтудо младшие три разряда значения длины поля обмена предполагаются равными нулю и используются для передачи в контроллер основной памяти информации о положении младшего байта выбранного поля в передаваемом слове. Эта информация передается через второй выход блока 12 стековой памя- операндов в блок 4 настройки через его пятый вход и через его первый выход поступает на второй вход блока 11. Адрес поля в основной памяти передается с четвертого выхода блока 8 дескрипторов на третий вход блока 11. Затем происходит модификация стекового дескриптора в узле 34 стековых операций и дескриптора основной памяти в блоке 8 дескрипторов на длину выбранного поля В стековом дескрипторе модифицируются поля НАС и ДПС: НАС увеличивается, а ДПС уменьшается на длину поля (то есть на 24). Дескриптор основной памяти модифицируется аналогично.
Во втором такте выбирается следующая порция операнда, а выбранная порция передается в основную память Дескрипторы
0
5
0
5
0
5
0
5
также модифицируются. В третьем такте повторяются действия, описанные для первого и второго тактов над старшей порцией операнда.
После модификации стекового дескриптора вырабатывается сигнал пересечения границы позиции стека, по которому в стековом дескрипторе восстанавливаются первоначальные значения полей НАС и ДПС, а поле СМ уменьшается на длину позиции стека. При этом также осуществляется увеличение значения указателя дна и уменьшение значения указателя вершины стека на длину позиции стека. Таким образом, абсолютное значение адреса вершины стека не изменяется.
В следующих девяти тактах повторяются действия, описанные для первых трех тактов, и откачиваются следующие три позиции стека. В последнем, двенадцатом такте после модификации стекового дескриптора поле СМ обнуляется, поэтому на втором управляющем выходе блока 12 стековой памяти операндов вырабатывается сигнал завершения стековой операции, передаваемый на первый управляющий вход блока 1 управления и синхронизации. Этот же сигнал может быть выработан и при опустошении стека (т.е. при обнулении указателя верхней позиции стека). Это произойдет, если значение в поле СМ больше значения указателя верхней позиции.
Последняя порция данных передается в основную память контроллером основной памяти при исполнении следующей микрокоманды.
Операция подкачки осуществляется аналогично, однако данные в составе М-бай- тного слова передаются с третьего выхода блока 11 на седьмой вход данных блока 12 стековой памяти операндов сдвинутыми по месту. При подкачке модификация дескрипторов происходит при поступлении данных в блок 12 стековой памяти операндов, а контролируется ситуация переполнения стека. Во всех случаях при завершении микрокоманды Подкачка/откачка стековая по контролю границ стека в поле СМ записано количество позиций стека, которые не удалось перекачать. Эта информация может быть использована при анализе результатов подкачки или откачки следующими микрокомандами.
Фо-рмула изобретения 1. Процессор микропрограммируемой ЭВМ, содержащий блок управления и синхронизации, регистр левого операнда, регистр правого операнда, блок настройки, первый и второй регистры общего назначения, блок сдвига, блок дескрипторов, блок установки переноса, блок установки типа и длины поля данных, блок ввода-вывода, блок стековой памяти операндов, коммутатор данных, причем первый управляющий выход блока настройки соединен с первым управляющим входом блока сдвига, первый выход данных блока настройки соединен с первыми входами данных блока установки типа и длины поля данных, блока дескрипторов, блока ввода-вывода и блока стековой памяти операндов, выход второго регистра общего назначения подключен к первому входу данных блока сдвига, первый выход данных блока дескрипторов соединен с вторым входом данных блока стековой памяти операндов, второй выход данных блока дескрипторов соединен с вторым входом данных блока установки типа и длины поля- данных и с третьим входом данных блока стековой памяти операндов, третий выход данных олока дескрипторов соединен с вторым входом данных блока ввода-вывода, четвертый выход данных блока дескрипторов соединен с третьим входом данных блока установки типа и длины поля данных, управляющий выход блока установки типа и длины поля данных соединен с первым управляющим входом блока управления и синхронизации, первый и второй выход данных блока установки типа и длины поля данных соединены соответственно с первым и вторым входами данных блока настройки, третий вход данных блока ввода-вывода соединен с входом данных процессора, пер вый выход данных блока ввода-вывода соединен с выходом данных процессора, пер- .вый выход данных блока сдвига соединен с
четвертый входом данных блока стековой памяти операндов, первый и второй выходы i блока стековой памяти операндов соединены соответственно с вторым и третьим входами данных блока сдвига, первый и второй управляющие выходы блока стековой памяти операндов соединены соответственно с 1 вторым управляющим входом блока сдвига и вторым управляющим, входом блока управления и синхронизации, выход блока установки переноса соединен с третьим входом данных блока настройки, первый выход регистра левого операнда, выход регистра правого операнда, информационный выход блока управления и синхронизации, выход первого регистра общего назначения, третий выход данных блока стековой памяти операндов, пятый выход данных блока дескрипторов, второй выход данных блока настройки, второй выход данных блока ввода-вывода, выход второго регистра общего назначения и первый выход блока
0
5
0
5
0
5
0
5
0
5
сдвига соединены соответственно с первого по десятый информационными входами коммутатора данных, выход коммутатора данных соединен с информационным входом блока управления и синхронизации, с пятым входом данных блока стековой памяти операндов, с первым входом данных Олока дескрипторов, с четвертыми входами данных блоков настройки и ввода-вывода и с информационными входами регистра правого операнда, первого и второго регистров общего назначения, управляющие входы регистров левого и правого операндов, блока настройки, первого и второго регистров общего назначения, блока установки переноса, блока установки типа и длины поля данных, блока ввода-вывода,блока стековой памяти операндов, коммутатора данных, блока дескрипторов и третий управляющий вход блока сдвига соединены соответственно с первого по двенадцатый управляющими выходами блока управления и синхронизации, выход синхронизации которого является выходом синхронизации внешних объектов процессора, отличающийся тем, что, с целью повышения производительности, в него введены кольцевой арифметико-логический блок и два коммутатора, причем второй выход регистра левого операнда соединен с первым ин- формационным входом кольцевого арифметико-логического блока, первый информационный вход первого коммутатора соединен с выходом коммутатора данныхТ выход первого коммутатора соединён с информационным входом регистра левого операнда, выход регистра правого операнда соединен с первым информационным входом второго коммутатора, выход которого подключен к второму информационному входу кольцевого арифметико-логического блока, первый выход данных блока стековой памяти операндов соединен с вторым информационным входом второго коммутатора и с пятым входом данных блока ввода-вывода, второй выход данных блока стековой памяти операндов подключен к пя. тому входу данных блока настройки, второй выход блока сдвига соединен с вторым информационным входом первого коммутатора, первый, второй и третий выходы результата кольцевого арифметико-логического блока соединены соответственно с одиннадцатым информационным входом ко ммутатора данных, с шестым входом данных блока стековой памяти операндов и с входом данных блока установки переноса, первый управляющий вход кольцевого арифметико-логического блока, управляющие входы первого и второго коммутаторов
соединены соответственно с тринадцатого по пятнадцатый управляющими выходами блока управления и синхронизации, первый управляющий выход блока настройки соединен с вторым управляющим входом кольцевого арифметико-логическ.ого блока, первый управляющий выход блока стековой памяти операндов соединен с третьим управляющим входом кольцевого арифмети- кр-логического блока, третий выхо д данных ввода-вывода соединен с седьмым входом данных блока стековой памяти опе- рЬндов.
2. Процессор по п.1, о т л и ч а ю щ и й- с я тем, что кольцевой арифметико-логический блок содержит N байтовых арифметико-логических узлов с переменной длиной поля данных, N двухвходовых коммутаторов м,М-входовый коммутатор (где N п/8 при разрядности кольцевого арифметико-логического блока, равной п), первую группу вы- х здных усилителей и вторую группу выходных усилителей , причем 1-й разряд первого входа результата кольцевого ариф- м|етико-логического блока соединен с 1-м разрядом первого информационного входа соответствующего байтового арифметико- лргического узла с переменной длиной поля данных, 1-й разряд второго информационно- гр входа кольцевого арифметико-логическо- гр блока соединен с -м разрядом второго информационного входа соответствующего байтового арифметико-логического узла с геременной длиной поля данных, -й разряд выхода результата соответствующего Еййтового арифметико-логического узла с
5
переменной длиной поля данных подключен к i-м входам выходных усилителей первой (I f, (N ) и второй (I Т7п) групп, выходы которых являются соответственно i-м разрядом первого и второго выходов результата кольцевого арифметико-логического блока, первый управляющий вход кольцевого арифметико-логического блока
соединен с первыми управляющими входами N байтовых арифметико-логических уз,- лов с переменной длиной поля данных, второй управляющий вход кольцевого арифметико-логического блока боединен с первыми информационными входами N двухвходовых коммутаторов и вторыми управляющими входами N байтовых арифметико-логических узлов с переменной длиной поля данных, третий управляющий вход кольцевого арифметико-логического блока сое0 Дйнен с управляющими входами N Гдвухвходовых коммутаторов, N-входового коммутатора и третьими управляющими входами N байтовых арифметико-логических узлов с переменной длиной поля дан5 ных, выход переноса j-ro байтового арифметико-логического узла с переменной длиной поля данных соединен г, вторым информационным входом k-ro двухвходового коммутатора и j-м информационным вхоо дом N-входового коммутатора (где j fTT3, k j + 1 mod N), выход J-ro двухвходового коммутатора соединен с входом переноса j-ro байтового арифметико-логического узла с переменной длиной поля данных выход N-входового коммутатора является третьим выходом результата кольцевбго арифметико-логического блока.
5
.- „ ---
7 ч I v
название | год | авторы | номер документа |
---|---|---|---|
Процессор микропрограммируемой ЭВМ | 1979 |
|
SU860077A1 |
Устройство для обработки выражений языков программирования | 1981 |
|
SU1016790A1 |
Устройство для синтаксически-управляемого перевода | 1982 |
|
SU1062721A1 |
Процессор | 1976 |
|
SU670935A1 |
Устройство для интерпретации выражений языков программирования | 1982 |
|
SU1078432A1 |
ВЫЧИСЛИТЕЛЬНАЯ СИСТЕМА | 1991 |
|
RU2042193C1 |
Процессор | 1984 |
|
SU1247884A1 |
Процессор с микропрограммным управлением | 1983 |
|
SU1149273A1 |
Микропроцессор с контролем | 1981 |
|
SU1016788A1 |
ПРОЦЕССОР ДЛЯ КОНТРОЛЯ ЦИФРОВЫХ СХЕМ | 1972 |
|
SU435527A1 |
Изобретение относится к вычислительной технике и может быть использовано для построения ЭВМ с микропрограммным управлением, предназначенных для эффективной реализации микропрограммными средствами проблемно- и машинно-ориентированных языков высокого уровня. Цель изобретения - повышение производительности процесса. Указанная цель достигается тем, что процессор содержит блок управления и синхронизации, регистр левого операнда, регистр правого операнда, блок настройки, два регистра общего назначения, блок сдвига, блок дескрипторов, блок установки переноса, блок установки типа и длины поля данных, блок ввода-вывода, блок стековой памяти операндов, коммутатор данных, кольцевой арифметико-логический блок и два коммутатора. В предлагаемом процессоре повышение производительности при микропрограммной реализации входных языков высокого уровня с использованием стековой организаций данных достигается за счет выравнивания стековых операндов не по правому краю разрядной сетки арифметико-логического блока, а по разрядной сетке результата, помещаемого в стек. При этом значительно сокращается количество действий, приводящих к тому же результату, что и в аналогичных процессорах. 1 з.п. ф-лы, 12 ил. to С
fiE-CK e C.Э -оэох 5 i.ARO.i,
uЈЈ-cj: v-Q-c 3«-чэо 3t г.чс1.
ct o,cv съ ( со сьм о О
Г
СП
ю 1 о со го
Ј
Сч tXl
У 35 W kl
iffy 45 J7 J3 59 ДО
tf565859
Фиг, 5
73 72
7/ 57 68 69 70
/7
Фиг. б
г
83 86
18
8
80 в/ Фиг. 7
84 87
Упр.
г
О 1
U
-Н 89
L...
УпрМл ПБ БПФ
г
v v v
L.
v
да ,
fЈ7«; (дгц)
Фиг. 9
Перенос
Т1
J
Фиг.8
см
IS
Стековый дескриптор Фиг. 12
Стек операндов НАС
МПС
72
Способ присоединения добавительных трубок инжекторам любой системы | 1921 |
|
SU1700A1 |
Burroughs Corporation,1975, Detroit, Michigan, N 1066941, p.4-18 | |||
Процессор микропрограммируемой ЭВМ | 1979 |
|
SU860077A1 |
Приспособление для точного наложения листов бумаги при снятии оттисков | 1922 |
|
SU6A1 |
Авторы
Даты
1991-12-07—Публикация
1989-07-20—Подача