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

Номер патента: 1697082

Авторы: Кричевский, Любарский, Якуба

Есть еще 8 страниц.

Смотреть все страницы или скачать ZIP архив

Текст

СОЮЗ СОВЕТСКИХСОЦИАЛИСТИЧЕСКИРЕСПУБЛИК 169 5/ 51)5 0 0615 ОСУДАРСТВЕННЫЙ КОМИТЕТО ИЗОБРЕТЕНИЯМ И ОТКРЫТИЯМРИ ГКНТ СССР ПИСАНИЕ ИЗОБРЕТЕНИЯ Иэобре ной техник построения равлением, тивной реа средствами тированныхЦелью ние произв микропрог языков вцс стековой о осится к вычислитель- быть использовано для икропрограммным упначенных для эффекмикропрограммными но- и машинно-ориенысокого уровня.ния является повыше- ости процессора (при реализации входных вня с использованием и .данных за счет вытение отн е и может ЭВМсм преднаэ лиэации проблем языков в изобрете одительн рамм ной окого уро рганизаци(56) В 1700 Бегез сегпга Яуэ 1 еа тесманса гпапоа, Виггоцдйэ Согрогатоп,1975, Оегот, МсЫдап, й 1066941, р.4-18.Авторское свидетельство СССР В 860077, кл. 6 06 Р 15/00, 1980.(54) ПРОЦЕССОР МИКРОПРОГРАММИРУЕМОЙ ЭВМ(57) Изобретение относится к вычислитель-. ной технике и может быть использовано для построения ЭВМ с микропрограммным управлением, предназначенных для эффективной реализации микропрограммными средствами проблемно- и машинно-ориентированных языков высокого уровня, Цель изобретения - повышение проиэводительФности процесса. указанная цель достигается тем, что процессор содержит блок управления и синхронизации, регистр левого операнда, регистр правого операнда, блок настройки, два регистра общего назначения, блок сдвига, блок дескрипторов, блок установки переноса, блок установки типа и .длины поля данных, блок ввода-вывода, блок стековой памяти операндов, коммутатор данных, кольцевой арифметико-логический блок и два коммутатора. В предлагаемом процессоре повышение производительности при микропрограммной реализации входных языков высокого уровня, с использованием стековой организаций данных достигается за счет выравнивания стековых операндов не по правомукраю разрядной сетки арифметико-логического блока, а по разрядной сетке результата, помещаемого в стек. При этом значительно сокращается количество действий, приводящих к тому же результату, что и в аналогичных процессорах, 1 з.п. ф-лы, 12 ил,равнивания стековых операндов не по правому краю разрядной сетки арифметико-логического блока, а по разрядной сетке результата, помещаемого в стек),На фиг.1 и 2 представлена структурная схема процессора; на фиг.З - структурная схема кольцевого арифметико-логического блока; на фиг.4 - структурная схема блока стековой памяти операндов; на фиг.5 - пример выполнения блока настройки; на фиг,6 - пример выполнения блока ввода-вывода; на фиг.7 - структура блошка дескрипто 1 И 7082 20соединены соответственно с тринадцатого по пятнадцатый управляющими выходами блока управления и синхронизации, первый управляющий выход блока настройки соединен с вторым управляющим входом кольцевого эрифметико-логического блока, первый управляющий выход блока стековой памяти операндов соединен с третьим управляющим входом кольцевого арифметико.логического блока, третий выхОд данных блока ввода-вывода соединен с седьмым входом данных блока стековой памяти оперйндов. 2. Процессор по п.1, о т л и ч а ю щи йся тем, что кольцевой арифметико-логический блок содержит Й байовых арифмети- кЬ-логических узлов с переменной длиной поля данных, Й двухвходовых коммутаторов и, Й-входовый коммутатор (где Й - и/8 при разрядности кольцевого арифметика-логического блока, равной и), первую группу выходных усилителей и вторую группу входных усилителей, причем 1-й разряд первого входа результата кольцевого арифметико-логического блока соединен с 1-м разрядом первого информационного входа соответствующего байтового арифметикологического узла с переменной длиной поля данных, 1-й разряд второго информациойногр входа кольцевого эрифметико-логического блока соединен с 1-м разрядом второго информационного входа соответствующего байтового арифметико-логического узла с временной длиной поля данных, 1-й разряд выхода результата соответствующего байтового арифметико-логического узла с переменной длиной поля данных подключен к 1-м входам выходных усилителей первой ( = 1 ГТ В) и второй (1 = Т,п) групп,выходы которых являются соответственно-м разрядом первого и второго выходов результата кольцевого арифметико-логического блока, первый управляющий входкольцевого арифметико-логического блокасоединен с первыми управляющими входами Й байтовых арифметико-логических уз;лов с переменной длиной поля данных, второй управляющий вход кольцевого арифметико-логического блокасоединен с первыми информационными входами Йдвухвходовых коммутаторов и вторыми управляющими входами Й байтовых арифметико-логических узлов с переменной длинойполя данных, третий управляющий вход кольцевого арифметико-логического блока соедйнен с управляющими входами Й, двухвходовых коммутаторов, Й-входовогокоммутатора и третьими управляющимивходами К байтовых арифметика-логических узлов с переменной длиной поля дан 25 ных, выход переноса )-го байтовогоарифметико-логического узла с переменнойдлиной поля данных соединен с вторым информационным входом 1-го двухвходовогокоммутатора и )-м информационным вхоЗп дом Й-входового коммутатора (где ) = ГЯ;с = Д+ 1 глоб Й), выход)-го двухвходовогокоммутатора соединен с входом переноса)-го байтового арифметико-логического узлас переменной длиной поля данных выходЙ-входового коммутатора является третьимвыходом результата кольцевого арйфметико-логического блока,1697082 Разряды микрокоманды ЙоРание 111 ОУВ 7 Б Абрис регистраисто иника Пересылкареецстролая Адрес регистра истпцникпнази.Перисыякп бурерная УюЯриазЛл Япрцпнп Драно 000 б 110 Отсчет 10 0 000Переюд Пиринпс лереодресацииО 100 Константа б б бб йлсюпстикпбыц дориана 1 0 б 000 О 0 ба Дяино 1110 ,бес /фйю 7- иеця,прес ис- юоинцка настройка стекобая апаа Оббб 110 О 101 0000 А ресрегистра наюаиенияоар ионт 0011 О О 1110 111 Об 00 Пгрисылха с; ОО Чтнце стекпопе Эпацсь стекоооя Юдирикпиияукамтеяя Обмен слекобыд Настройка длины Иие -Т Очисткарееистроооя Арирметикаяоеюескоя ааежиия стекоаая П корж/отмтв 2южюАю А%018баб0 010 О 0 абба Об 001697082 Стек операндеюс екедый пескФиг. /2Составитель Ю,Ланцов Редактор И.Шмакова Техред М.Моргентал Корректор Т.Малец Заказ 4307 Тираж Подписное ВНИИПИ Государственного комитета по изобретениям и открытиям при ГКНТ СССР113035, Москва. Ж, Раушская наб., 4/5роизводственно-издательский комбинат "Патент", г. Ужгород, ул.Гагарина, 10150 55 ров; нэ фиг.8 - пример реализации блокаустановки переноса; на фиг,9 - пример выполнения блока установки типа и длины поля данных; на фиг,10 - форматы отдельныхмикрокоманд процессора; на фиг.11 - вари.энты стековых арифметико-логических операций; на фиг.12 - пример расположенияоперандов в стеке.Процессор микропрограммируемойЭВМ содержит блок (фиг,1 и 2) 1 управленияи синхронизации, регистр 2 левого операнда, регистр 3 правого операнда, блок 4 настройки, первый 5 второй б регистрыобщего, назначения, блок 7 сдвига, блок 8дескрипторов, блок 9 установки переноса,блок 10 установки типа и длины поля дан, ных, блок 11 ввода-вывода, блок 12 стековойпамяти операндов, коммутатор 13 данных,кольцевой арифметика-логический блок 14,первый 15 и второй 16 коммутатооы, входы17 данных и выход 18 дэнньх.Кольцевой арифметико-логический, длиной поля данных, И двухвходовых коммутаторов 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 иуправляющий выход 63.Блок 11 овода-вывода (фиг,б) можетбыть выполнен в виде коммутатора 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 управления и синхронизациипредназначен для управления и синхрони 5 10 15 20 25 30 35 40 45 зации работы всех блоков процессора и может быть реализован в виде блока микропрограммного управления, Через информационные вход и выход блока осуществляется доступ к регистрам микрокоманды и адреса микрокоманды, э также управляющей памяти с целью их перезагрузки или испдльзования их информации для вычислений. Два управляющих входа предназначены для вмешатдльства в ход выполнения микропрограммы с целью организации условных переходов и выполнеиия микрокоманд переменной длительности (организации их циклического выполнения с выходов по условию, формируемому в исполнительных устройствах процессора). Условные переходы в процессоре реализуются пропуском микрокоманд безусловного перехода (превращением их в "пустые микрокоманды"). Блок 1 управления и синхронизации реализует систему микрокоманд процессора. На управляющие выходы блока выдаются сигналы управления записью в регистры, переключением коммутаторов и работой функциональных блоков, а также литералы полей микрокоманд в соответствии с временными диаграммами этих микрокоманд. Для синхронизации внешних объектов процессора и организации работы ЭВМ в целом предназначен выход синхронизации внешних объектов, выдающий опорную последовательность синхросигналов от синхрогенератора.Арифметические и логические операции реализуются процессором в кольцевом арифметика-логическом блоке, при каждом обращении к которому на его первом и втором выходах результата, связанных соответственно с коммутатором 13 данных и с шестым входом данных блока 12 стековой памяти операндов, вырабатывается значение одной из нескольких арифметических или логических функций над операндами, содержащимися в регистрах 2 и 3 левого и правого операнда или блоке 12 стековой памяти операндов, Этими функциями являются "Сумма", "Разность", "Инверсия левого операнда", "Инверсия правого операнда", "Сумма по модулю 2", "Коньюнкция", "Маскирование левого операнда", "Маскирование правого операнда", "Дизьюнкция", причем каждая из этих функций может быть задана в микрокоманде в качестве "регистра" источника данных для операций над содержимым регистров 2 и 3 левого и правого операндов или полем микрокоманды для стековых операций и поступает через первый управляющий вход от блока 1 управления и синхронизации. Уп 1697082равляющая информация, необходимая для выполнения указанных функций и содержащая значение переноса заема при выполнении арифметических операций, тип обрабатываемой информации (двоичный, десятичный), а также длина обрабатываемого поля данных поступают из блока 4 настройки через второй управляющий вход кольцевого арифметика-логического блока 14, на третий управляющий вход которого поступает информация о номере старшего и младшего битов обрабатываемой информации из блока 12 стековой памяти операндов,Первый 5 и второй 6 регистры общего назначения предназначены для работы в качестве универсальных регистров, Каждый из этих регистров разбит на отдельные 4- разрядные секции, самостоятельно адресуемые в микрокомандах. Управление записью в секции осуществляется блоком 1 управления и синхронизации через управляющие входы регистров. На базе второго регистра 6 общего назначения реализован блок 7 сдвига, выполняющий циклический 1 ациклический сдвиг влево содержимого этого регистра на произвольное число разрядов, а также выделение поля произвольного размера из этого регистра. Требуемая величина сдвига, а также размер выделяемого поля задаются литерально в микрокоманде или блоком 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 настройки,25 Управление установкой осуществляетсяблоком 1 управления и синхронизации всоответствии с алгоритмом выполнениямикрокоманды,Формирование значения длины поляданных в блоке 4 настройки сопровождается анализом этой величины на нулевое значение, в результате чего вырабатываетсяпризнак на управляющем выходе блока, который поступает на второй управляющийвход блока 1 управления и синхронизации ииспользуется для организации условных переходов, Длина формируется в результатеанализа значений этого параметра в теку. -щих дескрипторах с учетом поля длины в40 микрокоманде, Варианты настройки задаются микрокомандой, Регистр в блоке настройки содержит поля текущих переноса,типа и длины. Управление настройкой осуществляется блоком 1 управления и синхронизации через управляющий вход.Обращение к полю основной памяти(чтение или запись) реализуется блоком 11через первые вход и выход данных. Длинаполя для одного обращения может быть произвольной в пределах разрядной сетки процессора, Она поступает на второй входданных блока 11 из блока 4 настройки, Начальный адрес поля данных, задаваемый с.точностью до бита, поступает из блока 9дескрипторов на третий вход данных блока11 ввода-вывода, Обмен между основнойпамятью.и блоком 11 осуществляется словами длиной К байт, Словами такой же длиныблок 11 обменивается с блоком 12 стековойпамяти операндов. Обмен данными междублоком 11 и основной памятью осуществляется контроллером основной памяти.БлОк 12 стековой памяти операндов, являющийся аппаратной реализацией вершины стека операндов, предназначен для 5 организации безадресной обработки данныхх и позволяет сократить ксличество обращений в основную память. Он позволяет организовать стек операндов с переменным микропрограммно устанавливаемым разме ром позиции (кратным байту) и осуществлять доступ к данным как по указателю верхней позиции стека, так и по смещению в глубину стека. Данные при обращении к , стеку поступают в коммутатор 13 данных 15 через блок 7 сдвига прижатыми к правому краю разрядной сетки процессора, Если длина позиции стека превышает разрядную сетку, то обмен данными со стеком происходит эа несколько обращений, Данные в сте ке хранятся компактно, поэтому очередной операнд перед помещением в стек сдвигается по месту в блоке 7 сдвиг а, При выполнении арифметико-логических операций . над операндами, находящимися в стеке, ре зультат замещает одЮн иэ операндов, В атом случае выравнивание операндов про, исходит по замещаемому операнду, Чтение и запись в блоке 12 стековой памяти операндов происходит по маске. В процессоре 30 имеется возможность организовать перекачку данных между аппаратной вершиной стека и его продолжением в основной памяти под управлением одной микрокоманды "Откачка/подкачка стековая", При этом обь. 35 ем перекачиваемых данных кратен размеру позиции стека. Данные передаются в блок 11, минуя блок 7 сдвига, и сдвигаются по месту в, блоке сдвига основной памяти. Информация о положении данных в стеке опе рандов передается иэ блокз 12 стековой памяти операндов через блок 4 настройки в блок 11.Кольцевой арифметика-логическийблок 14 работает следующим образом.На первый 24 и второй 25 информаци.онные входы блока 14 поступагот соответственно значения левого и правого операндов, а на первый управляющий вход 26 - код операции от блока , упоавления и синхронизации, На второй управляющий вход 27 поступает указание на тип обрабатываемой информации (двоичная или десятичная), длина поля и значение входного переноса от блока 4 настройки, на третий управляющий вход 28 - номера позиций старшего и младшего битов поля обработки.Операция над операндами осуществляется побайтно в байтовых арифметико-логических узлах (АЛУ) 19 с переменной длиной поля данных. Механизм ограничения длины поля обработки включается лищь в АЛУ, обрабатывающем старший байт,Все младшие байты обрабатываются по полной длине, Выходной перенос формируется на выходе 31 К-входовым коммутатором 21, который выбирает выходной перенос старшего байтового АЛУ. Поскольку размер позиции стека всегда кратен байту, а операнды при нестековой операции всегда прижаты к правому краю разрядкой сетки, входной перенос всегда подается в нулевой разряд соответствующего байта, Коммутация входных переносов осуществляется двухвходовыми коммутаторами 20. На вход младшего байтового АЛУ поступае входной перенос, а на входы остальных - переносы от предыдуших АЛУ. Результат операции передается на первый выход 29 (й)-разрядное слово для нестековых операций) и второй выход 30 (Й-разрядное слово для стековых операциИ).Узел 32 хранения операндов представляет собой ОЗУ с байтовой организацией, причем доступ к нему осуществляется одновременно по М байтам (где М = и/8+ 1, и - размер разрядной сетки процессора). При этом выбранная последовательность байтов выделяется в М-байтное слово. Номео )-го байта в этом слове определяется его адресом в ОЗУ А 1 щоб М. Считанная из узла 32 хранения операндов информация поступает на выход 43 блока 12 стековой памяти операндов. Записываемая информация поступает в узел 32 хранения операндов с выхода коммутатора 35, Операнд в стековой памяти хранится в позиции стека, представляющей участок байтовой памяти со смежными адресами байтов. Размер позиции стека, кратный байту, задается программно настройкой узла ЗЗ стековой адресации, в котором формируются адреса обращения к байтам узла 32 хранения операндов. Здесь же осуществляется контроль за правильно- стью такого обращения и вырабатываются сигналы, индицирующие пересечение позиции стека при обращении, переполнение или опустошение стека. Исходная информация для "настройки" и выработки адресов поступает в узел 33 стековой адресации с входа 37 блока 12 стековой памяти операндов, а управляющая - от узла 34 стековых операций,Адрес обращения в стек с точностью до бита, сопровождаемый сигналом "Чтение/запись", через выход данных этого узла поступает на адресный вход узла 32хранения операндов, Через этот же выход передается информация о положекии поля обоащения в выделенном М-байтном слове15 30 40 45 50 на управляющий выход 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 управления и синхронизации для организации условных переходов и циклов. Дескриптор текущего операнда содержит три секции; смещение в глубине стека, начальный адрес в стековой позиции и длины поля текущего операнда. Все три секции могут быть модифицированы на длину поля обращения и на единицу. Поле смещения задает смещение искомой позиции стека относительно вершины в байтах. При откачке/подкачке зта секция используется кэк счетчик количества передаваемых позиций. Секции начального адреса и длинь: операнда позволяют обращаться к операнду по частям, что особенно необходимо, если размер позиции стека больше разрядной сетки процессора. Начальный адрес задает смещение в битах начала поля обращения относительнс начала позиции, а длина поля - число битов в поле обращения. Дескриптор хранится в регистре, доступном на микропрограммном уровне, Связь этого регистра с коммутатором 13 , данных осуществляется через вход 37 и выход 45 блока 12 стековай памяти операндов. При выполнении микрокоманды "Смена дескриптора стека" новый дескриптор заносится в регистр из первого блока буферной памяти в блоке 8 дескрипторов через вход 40 блока 12 стековой памяти операндов, а старый дескриптор передается в узел буферной памяти через выход 45 блока 12 стековой памяти операндов и коммутатор 13 данных. Сигналы, индицирующие неверное обращение к стеку, передаются в узел 34 стековых операций узла 33 стековой адресации, Они вызывают блокировку исполнения микрокоманд работы со стеком и управляют исполнением микрокоманды откачки/подкачки,Коммутатор 35 предназначен для выбора источника информации, записываемой в узел 32 хранения операндов, При выполнении микрокомэнды откачки/подкачки выбирается информация, поступающая от блока 11 на вход 42 блока 12 стековой памяти операндов, при выполнении микрокоманды стековой арифметико-логической операции - информация из кольцевого арифметика-логического блока 14 через вход 41. При исполнении других микрокоманд работы со стеком через вход 36 блока 12 стековой памяти операндов поступает информация из блока 7 сдвига, сдвинутая по месту,На фиг.10 представлена часть микрокоманд (в основном для работы со стеком). Каждая микрокомэндэ состоит из 16 битов. Часть этих битов от.3 до 12 содержит код микрокоманды, Оставшиеся биты указывают конкретные регистры или их адресуемые части, различные выходные функции кольцевого арифметико-логического блока, варианты исполнения микрокоманд или дин оей.Первая микрокомэнда "Пересылка регистровая" имеет код 0001 в старшей тетраде. Следующие шесть битов указывают источник данных грегистр или псевдорегистр, например результат арифметика-логической операции нэд содержимым5 10 15 регистров правого и левого операндов), оставшиеся шесть битов указывают регистр- приемник данных.Микрокоманда "Пересывка буферная" управляет передачей данных между регистрами и буферной памятью. При этом разряды 6 - 11 указывают на регйстр, разряды 0 - 3 - адрес в буферной памяти, разряд 4 указывает, с каким блоком (А или Б) буферной памяти ведется пересылка, разряд 5 задает направление обмена.Микрокоманда "Пересылка с ОП управляет обменом с основной памятью. Разряды 0 - 4 задают длину поля обмена (если их , значение равно О, длина задается блоком 4 настройки), разряд 5 - направление поля, разряды 6 - 7 задают регистр, участвующий в обмене (регистр левого операнда, регистр правого операнда, первый или второй ре.гистр общего назначения), разряд 11 указывает направление обмена, Если длина операнда превышает разрядную сетку про.цессора, то обмен происходит эа несколько обращений к основной памяти, При этом каждде обращение сопровождается пере.мешением начальной тачки отсчета адреса на длину поля обращения, т,е, модификацией дескриптора основной памяти, расположенного в блоке дескрипторов, Варианть , модификации заданы в разрядах 8 - 10 микрокоманды.Микрокоманда "Отсчет" осуществляет модификацию дескриптора основной памяти, При этом разряды 5-7 задают вариант модификации, а разряды О - 4 - константу модификации аналогично микрокоманде "Пересылка с, ОП".Микрокоманда "Переход управляет последовательностью исполнения микрокоманд, модифицируя эначенйе в регистре адреса микрокоманды на величину, задава емую в разрядах 0-11. Разряд 12 указывает на знак модификации (направление перехо.да).Микрокоманда "Перенос" устанавлива.ет значение переноса в блоке 9 настройки по значению переноса или заема на выходе кольцевого арифметика-логического блока 14 либо непосредственно в "0" или в "1",Микрокоманда "Отсчет стековый" выполняет модификацию дескриптора стека операндов, расположенного в блоке 34 стековых операций (секции начального адреса и длины операнда), на величину, эадаваемукэ в разрядах 0-4 (при равенстве нулю этого значения величина модификации задается значением длины поля обращения к стеку, на которую настроен блок 34 стековых операций), Вариант модификации задается разрядами 5 - 7 микрокоманды,20 25 30 35 40 45 50 55 Микрокоманда "Чтение стековое" управляет выборкой поля данных из стека операндов в регистр, задаваемый разрядом 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 управляет пропуском следующей микрокоманды, если результат настройки равен нулю.Микрокоманда "Настройка длины" управляет обменом значением длины обращения к стеку операндов между узлом 34стековых операций и одним из регистров:левого, правого операнда, первым, вторымобщего назначения или блоком настройки,Разряды 1 - 3 микрокоманды задают имя регистра, с которым происходит обмен, а разряд О задает направление обмена,Микрокоманда "Сдвиг Т" управляетциклическим и ациклическим сдвигами влево содержимого второго регистра общегоназначения и записью сдвинутого значенияв регистр, указанный разрядами 6-11 микрокоманды,Тип сдвига задается разрядом5, Разряды О - 4 задают константу сдвигаВ случае нулевого значения этих разрядов вкачестве константы сдвига используется содержимое блока настройки.Микрокоманда "Очистка регистровая"управляет сбросом в ноль содержимого регистров левого, правого операндов, первого, второго общего назначения, блоканастройки, регистров дескриптора в блокедескрипторов в произвольном наборе. Требуемый набор регистров и блоков задаетсяразрядами О - 7 микракоманды.Микрокоманда "Арифметика-логическая операция стековая" управляет выполнением одной из арифметических илилогических операций нэд операндами, хранящимися в стеке операндов. Результат помещается в верхнюю позицию стека,занимаемую одним из операндов. Разряды1-3 микрокоманды задают операцию согласно таблице на фиг.11, Если размер позиции стека превышает размер разряднойсетки процессора, то микрокоманда организует несколько обращений к стеку операндов с модификацией стекового дескриптора.Микрокоманда "Подкачка/откачка стековая" управляет обменом информациеймежду блоком 12 стековой памяти операндов и основной памятью, организуя в основной памяти продолжение стека, Разряд Омикрокаманды указывает направление обмена, Объем обмениваемой информациикратен размеру позиции стека операндов,Стековый дескриптор в секции смещениязадает количество позиций, подлежащихобмену. Если размер позиции превышаетразрядную сетку процессора, то позицияпередается за несколько обращений к блоку12 стековой памяти операндов и к блоку 11с основной памятью. После завершенияподкачки/откачки указатель вершины стекаоперандов сдвигается вверх или вниз на количество подкачанных или откачанных позиций,Исполнение микрокоманды "Арифметика-логическая операция стекавая" можетбыть пояснена на примере выполнения сложения двух операндов А и В,Пусть разрядная сетка процессора и = 24, обьем памяти в узле 32 хранения операндов Чстек = 256 байт, размер позиции стека, на который настроен узел 33 стековой адресации, РПС = 9 байт, доступ к стеку осуществляется одновременно па четырем байтам М = 4. Пусть стек заполнен, например, пятью позициями (УВ = 5 х 9 = 45), операнд А находится в позиции стека операндов на две позиции ниже вершины, а операнд В - в позиции на вершине стека операндов. Расположение операндов в стеке относительно дна стека показано нэ фиг.12,10 15 Стековый дескриптор для операции стекового сложения должен иметь следующие значения в своих позициях: смещение операнда В (адреса в памяти не изменяются) и модифицируется стекавый дескриптор; НАС увеличивается на 24, э ДПС уменьшается на 24. Значение переноса запоминает 50 ся в блоке 9 установки переноса. В следующих двух тактах ( третьем и четвертам) повторяются действия первого и второго тактов над следующим 24-разрядным полем операндов А и В, В пятом и шестом тактах обрабатываются старшие 24 разряда операндами А и В, Во всех тактах при изменении ДПС анализируется ега соотношение с разрядной сеткой. Если СМ= 2 х 9= 18, начальный адрес стековый НАС = О, длина позиции стека ДПС = 72,Операция стекового сложения выполняется за несколько машинных тактов, В пер вом такте осуществляется подготовка иобращение в стек за операндом А и его выборка в регистр 2 левого операнда, При и= 24 длина паля обращения не может превышать 24 бита, Если ДПС)24, то длина поля обращения устанавливается 24 бита независимо от настройки узла 34 стековай адресации, Подготавливаются адрес позиции операнда А в узле 32 хранения операндов и константа циклического сдвига (например, влево) выбранного слова в блоке 7 сдвига, Она равна КСДВ = СМ 1 тоб И = 2 байта, Затем осуществляется выборка операнда А (младшие 24 разряда), сдвиг его в блоке 7 сдвига и запись в регистр 2 левого операнда 40через первый коммутатор 15. Во втором такте производится подготовка адреса обращения за операндом В, осуществляется выборка операнда В, передача его через второй коммутатор 16 на второй вход кольцевого арифметика-логического блока 14, запись результата в стек по маске на место младших 24 разрядовДПС 24, то длина поля доступа устанавливается равной ДПС, Микрокоманда выполняется до обнуления ДПС (в данном случае 6 тактов). При обнулении ДПС узгом 33 стековой адресации вырабатывается сигнал, индицирующий пересечение границы позиции стека. По этому сигналу вырабатываетс и ризнак окончания стековой макрокоманды, который передается через второй управляющий выход блока 12 стековой памяти операндов на первый управляющий вход блока 1 управления и синхронизации и разрешает переход к выполнению следующей микрокоманды,Исполнение микрокоманды "Подкачка/откачка стековая" можно пояснить на примере откачки четырех позиций стека операндов в основную память. Для этого в узел 34 стековых операций должен быть помещен стековый дескриптор, имеющий следующие значения в своих полйх; СУ= 49= 36, НАС= О, ДПС= 72.Откачка также выполняется за несколько машинных тактов, В первом такте осуществляется выборка младшего поля операнда диной 24 бита на дне стека и помещение его в блок 11 через первый выход блока 12 сгековой памяти операндов и пятый вход блока 11. Адрес этого поля вырабатывается в узле 33 стековой адресации по соответствующим сигналам от узла 34 стековых операций с использованием значения регистра указателя дна стека. Передача выбранного полл осуществляется в составе байтного слова. Поскольку размер позиции стека и передаваемого слова кратен байту,то младшие три разряда значения длины паля обмена предполагаются равными нулю и используются дляпередачи в контроллер Основной памяти информации о положении младшего байта выбранного поля в передаваемом слове, Эта информация передается через второй выход блока 12 стековой памяти операндов в блок 4 настройки через его пятый вход и через его первый выход поступает на второй вход блока 11. Адрес поля в основной памяти передается с четвертого выхода блока 8 дескрипторов на третий вход блока 11, Затем происходит модификация стекового дескриптора в узле 34 стековых операций и дескриптора основной памяти в блоке 8 дескрипторов на длину выбранного поля. В стековом дескрипторе модифицируются поля НАС и ДПС: НАС увеличивается, а ДПС уменьшается на длину поля (то есть на 24), Дескриптор основной памяти модифицируется аналогично,Во втором такте выбирается следующая порция операнда, а выбранная порция передается в основную память, Дескрипторы55 5 О 5 20 25 30 35 40 45 50 также модифицируются. В третьем такте повторяются действия, описанные для первого и второго тактов над старшей порцией операнда,После модификации стекового дескриптора вырабатывается сигнал пересечения границы позиции стека, по которому в стековом дескрипторе восстанавливаются первоначальные значения полей НАС и ДПС, а поле СМ уменьшается на длину позиции стека. При этом также осуществляется увеличение значения указателя дна и уменьшение значения указателя вершины стека на длину позиции стека. Таким образом, абсолютное значение адреса вершины стека не изменяется,В следующих девяти тактах повторяются действия, описанные для первых трех тактов, и откачиваются следующие три позиции стека. В последнем, двенадцатом такте после модификации стекового дескриптора поле СМ обнуляется, поэтому на втором управляющем выходе блока 12 стековой памяти операндов вырабатывается сигйал завершения стековой операции, передаваемый на первый управляющий вход блока 1 управления и синхронизации. Этот же сигнал может быть выработан и при опустошении стека (т.е. при обнулении ука. зателя верхней позиции стека), Это произойдет, если значение в поле СМ больше значения указателя верхней позиции.Последняя порция данных передается в основную память контроллером основной памяти при исполнении следующей микро- команды.Операция подкачки осуществляется аналогично, однако данные в составе М-байтного слова передаются с третьего выхода блока 11 на седьмой вход данных блока 12 стековой памяти операндов сдвинутыми по месту. При подкачке модификация дескрипторов происходит при поступлении данных в блок 12 стековой памяти операндов, а контролируется ситуация переполнения стека, Во всех случаях при завершении микрокоманды "Подкачка/откачка стековая" по контролю границ стека в поле СМ записано количество позиций стека, которые не удалось перекачать. Эта информация может быть использована при анализе результатов подкачки или откачки следующими микро- командами. Формула изобретения1. Процессор микропрограммируемой ЭВМ, содержащий блок управления и синхронизации, регистр левого операнда, регистр правого операнда, блок настройки, первый и второй регистры общего назначе 1697082 18ния, блок сдвига. блок дескрипторов, блок установки переноса, блок установки типа и длины поля данных, блок ввода-вывода, блок стековой памяти операндов, коммутатор данных, причем первый управляющий выход блока настройки соединен с первым управляющим входом блока сдвига, первый выход данных блока настройки соединен с первыми входами данных блока установки типа и длины поля данных, блока дескрипторов, блока ввода-вывода и блока стековой памяти операндов, выход второго регистра общего назначения подключен к первому входу данных блока сдвига, первый выход данных блока дескрипторов соединен с вторым входом данных блока стековой памяти операндов, второй выход данных блока дескрипторов соединен с вторым входом данных блока установки типа и длины поля- данных и с третьим входом данных блока стековой памяти операндов, третий выход данных Олока дескрипторов соединен с вторым входом данных блока ввода-вывода, четвертый выход данных блока дескрипторов соединенс третьим входом данных блока установки типа и длины поля данных, управляющий выход блока установки типа и длины поля данных соединен с первым управляющим входом блока управления и синхронизации, первый и второй выход данных блока установки типа и длины поля данныхсоединены соответственно с первым и вторым входами данных блока настройки, третий вход данных блока ввода-вывода соединен с входом данных процессора, первый выход данных блока ввода-вывода соединен с выходом данных процессора, пер.вый выход данных блока сдвига соединен с четвертыМ входом данных блока стековой , памяти операндов, первый и второй выходыблока стековой памяти операндов соедине, ны соответственно с вторым и третьим входами данных блока сдвига, первый и второй , управляющие выходы блока стековой памяти операндов соединены соответственно свторым управляющим входом блока сдвига и вторым управля ющим входом, блока управления и синхронизации, выход блока установки переноса соединен с третьим входом данных блока настройки, первый выход регистра левого операнда, выход регистра правого операнда, информационный выход блока управления и синхронизации, выход первого регистра общего назначения, третий выход данных блока стековой памяти операндов, пятый выход данных блока дескрипторов, второй выход данныхблока настройки, второй выход данных блока ввода-вывода, выход второго регистра общего назначения и первый выход блока 10 15 20 25 30 35 40 45 50 55 сдвига соединены соответственно с первого по десятый информационными входами коммутатора данных, выход коммутатора данных соединен с информационным входом блока управления и синхронизации, с пятым входом данных блока стековой памяти операндов, с первым входом данных блока дескрипторов, с четвертыми входами данных блоков настройки и ввода-вывода и с информационными входами регистра правого операнда, первого и второго регистров общего назначения, управляющие входы регистров левого и правого операндов, блока настройки, первого и второго регистров общего назначения, блока установки переноса, блока установки типа и длины поля данных, блока ввода-выводаблока стековой . памяти операндов, коммутатора данных, блока дескрипторов и третий управляющий вход блока сдвига соединены соответственно с первого по двенадцатый управляющими выходами блока управлейия и синхронизации, выход синхронизации которого является выходом синхронизации внешних объектов процессора, о т л и ч а ющ и й с я тем, что, с целью повышения производительности, в него введены кольцевой арифметико-логический блок и два коммутатора, причем второй выход регистра левого операнда соединен с первым информационным входом кольцевого арифметико-логического блока, первый информационный вход первого коммутаторасоединен с выходом коммутатора данных, выход первого коммутатора соединен с йнформационным входом регистра левого операнда, выход регистра правого операнда соединен с первым информационным входом второго коммутатора, выход которого подключен к второму информационному входу кольцевого арифметико-логического блока, первый выход данных блока стековой памяти операндов соединен с вторым информационным входом второго коммутатора .и с пятым входом данных блока ввода-вывода, второй выход данных блока стековой памяти операндов подключен к пя- тому входу данных блока настройки, второй выход блока сдвига соединен с вторым информационным входом первого коммутатора, первый, второй и третий выходы результата кольцевого арифметика-логического блока соединены соответственно с одиннадцатым информационным входом коммутатора данных, с шестым входом данных блока стековой памяти операндов и с входом данных блока установки переноса, первый управляющий вход кольцевого арифметика-логического блока, управляющие входы первого и второго коммутаторов

Смотреть

Заявка

4721849, 20.07.1989

ИНСТИТУТ КИБЕРНЕТИКИ ИМ. В. М. ГЛУШКОВА

КРИЧЕВСКИЙ БОРИС МИХАЙЛОВИЧ, ЛЮБАРСКИЙ ВАЛЕРИЙ ФЕДОРОВИЧ, ЯКУБА АНАТОЛИЙ АЛЕКСАНДРОВИЧ

МПК / Метки

МПК: G06F 15/00, G06F 15/78

Метки: микропрограмируемой, процессор, эвм

Опубликовано: 07.12.1991

Код ссылки

<a href="https://patents.su/16-1697082-processor-mikroprogramiruemojj-ehvm.html" target="_blank" rel="follow" title="База патентов СССР">Процессор микропрограмируемой эвм</a>

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