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

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

Авторы: Барабанов, Карпман, Самофалова, Якуба, Ярошук

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

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

Текст

Союз Советских Социалистических РеспубликОП ИКАНИЕИЗОБРЕТЕНИЯК АВТОРСКОМУ СВИДЕТЕЛЬСТВУ пц 860077(22) Звювле 06 Г 15/ присоединением заюв Государствен ный комнтеСРзобретенийрытий(72) Авторы изобретению рдена Ленина институт кибернетики АН Украинской ССР 1) Заювител(54 ) ПРОЦЕССОР МИКРОПРОГРАММИРУЕМОЙ ЭВМ грамм) 1 ),Изобретение относится к нычислительной технике и может быть использовано для построения различных ЭВМ с микропрограммным управлением, предназначенных для эффективной реализации микропрограммными средстнами проблемно и машинно-орйентиронанных языков нысокого уровня,известен микропрограммируемюй 10 процессор, использующий общую дисковую память для хранения микропрограмм и данных, причем память разбита на две самостоятельные области с регулируемой границей, предназначенные для раздельного хранения отдельных подпрограмм (макрокоманд) и последовательностей отдельных микрокоманд (микро 20Отсутствие н данном процессоре специальных аппаратных средств для органиэации безадресной обработки данных, т.е. стеконого механизма, предполагает программную реализацию 25 такого механизма н дисковой памяти процессора, что приводит .к заметному возрастанию числа обращений н дисковую память и снижению производительности процессора при реализации входных языков, предусматривающей безадресную обработку данных.Повышение производительности процессора эа счет использования более быстродействующей основной памяти достигается н известных процессорах микропрограммируемюх ЭВМ (2 1 и 3,. предназначенных для экономной работы с полями переменной длины в основной памяти. В таким процессорах основ ная память совмещает Функции управлякщей и основной памяти и используется для хранения как микропрограмм, так и данных 2 , либо управляющая и основная памяти выполнены раздельно при хранении микропрограмм как н управляющей, так и в основной памяти, и воэможности динамической перезаписи управляющей памяти 3..Однако в упомянутых процессорах также отсутствует аппаратная реализация стекового механизма, и программная реализация его в основной памяти приводит к снижению производительности процессора при выполнении безадресной обработки данных.Известны процессоры 4 ), имеющие в своем составе стековую память для эффективной реализаций безадресной48 настройки стекаоперандов или .нэтот узел.Микрокоманда "Сдвиг-Т" упранляетциклическим или ациклическим сдвигом влево содержимого регистра 11 общего Дескрипторы, описывающие операнды 45 А и В и результат, могут, например, иметь формат, показанный на фиг,23, и размещаться: для операнда А - .в регистре 61 узла 45 поля стековых данных, для операнда Б - в слоне с адресом 0 первого блока 5 буферной памяти, для результата - в слове с адресом 1 того же блока буферной памяти,. При этом поля секций смещения позиции этих дескрипторов содержат: дляоперанда А - нули,для операнда Б и результата - значение, задающее смещение указателя стейа на одну позицию стека вниз, в частности 9 байт.Поскольку операция сложения вы"полняется, начиная с младших разрядон, то дескрипторы должны задавать начальные адреса полей операндов и результата, увеличенные на полную 50 55 длину еще не обработанной части полей 35 5 назначения и записью сдвинутого значения н указанный разрядами 6-11 регистр назначения. Тип сдвига (циклический или ациклический) задается ,.разрядом 5; разряды 0-4 задают константу сдвига (0-24). В случае нулевого значения н разрядах 0-4 в качестве константы сдвига используется содержимое блока 9 настройки.Иикрокоманда "Очистка. Регистровая" управляет сбросом н 0 содержимого регистров: 7 левого, 8 правого операнда, блока 9 настройки, первого 10, второго 11 общего назначения, блока 13 адреса поля данных, блока 14 типа и длины поля данных (в отдельности по каждой из его секций) 20 в произвольном наборе. Требуемый набор регистров и блоков, подлежащих очистке, задается полем вариантов микрокоманды (разряды 0-7).Использование описанных микроно манд для обработки произвольных полей стековых данных может быть пояснено на примере одного из вариантов выполнения операции сложения двух операндов одинаконой длины (А и В), находящихся н вершине стеконой памяти.Пусть операнд А размещен в верхней позиции стека, а операнд Б - в следующей, т.е. непосредственно под верхней позицией, и результат должен быть занесен в стек операндов на место исходных операндов. Пусть задан некоторый размер позиции стековой памяти, например, 9 байт, и размещение операндов внутри позиции стека, 40 например операнд А занимает. разряды 8-39 1 отсчет разрядов в позиции ведется слева направо, начиная с О), операнд Б - разряды 40-71. Для выборки поля на обработку текущий адрес поля должен быть уменьшенна текущую длину обработки, т.к, вы-.борка поля всегда идет и одном чапранлении - от адреса, указанного всекции начального адреса в стековойпозиции регистра 61 узла 45 полястековых данных, в направлении возрастания адресов разрядов н позициистека. Поэтому регистр 61 узла 45поля стековых данных в начальный момент содержит: н секции смещения позиции - О, в секции начального адреса в стеконой позиции - 39, т.е.начальный адрес поля операнда А (адрес разряда с номером 8, увеличенныйна полную длину поля операнда), всекции длины поля - 32, т.е. длинуполя операнда А.Слово "0" первого блока 15 буФерной памяти содержит код, "привязка"которого к формату регистра 61 узла45 поля стеконых данных имеет вид:н фсекцииф смещения позиции - 9, в"секции" начального адреса в стековойпозиции - 71, в "секции" длины поля32. Слово 1 первого блока 15 буфернойпамяти содержит код, "привязка" которого к формату регистра 61 узла45 поля стековых данных соответственно имеет вид - 9, 71, 33. Содержимоепоследнего слова указывает, что результат операции размещен на местеоперанда Б, т.е. его крайним правымразрядом будет разряд 71, а увеличение на 1 длины поля результата (поотношению к длине поля операндов)преследует цель запомнить возможныйперенос при сложении старших разрядов, т.е. в стеке операндов результатзанимает разряды 39-71.Поскольку предлагаемый процессорявляется микропрограммируемым, тообычная операция суммирования двухоперандов и занесения результата наих место реализуется микропрограммой,один из вариантов которой .может.включать следующую последовательностьмикрокоманд:Начало - "Настройка. Стековая подлине, Поля с проверкой"; "Переходна продолжение", "Отсчет. Стеконый вминус по начальному. Адреса"; "Чтение. Стековое в регистр. 7 и минуспо длине. Поля", "Обмен. Стековый иэ0 В 2 ф; "Отсчет. Стеконый .в минус поначальному. Адресу"; "Чтение. Стековое в регистр.8 и минус по длине,Поля", "Настройка. Длины н регистр.9","Пересылка. Регистровая иэ сумма врегистр.11"; "Перенос переноса", "Обмен.Стековый из 1 в 0"; "Отсчет.Стековый н минус по начальному, Адресу",гистр.7 и регистр.8", "Пересылка.Регистровая из сумма в регистр.11", "Настройка.Стековая по длине. Поля",ф "Отсчет,Стеконый .н минус по лачальностройки стека операндов. Для операнда А измененное значение этой секции будет равно 16.По микрокоманде "Чтение.Стековое 1 н регистр 7 левого операнда считываются 24 разряда операнда А разряды 0-4 микрокоманды установлены н О, поэтому длину поля операнда определяетсодержимое регистра 58 узла 48 на"стройки стека операндов, а значениен секции длины поля регистра 61 узла45 поля стеконых данных уменьшаетсяна 24 (вариант 1).35Следующая микрокоманда заменяетдескриптор операнда А, находящийся врегистре 61 узла 45 поля стеконыхданных, дескриптором операнда Б (эначение из регистра 61 узла 45 поля стековых данных засылается в слово 2 первого блока 15 буферной памяти, а в этот регистр загружается значение из слова "О" той же секции.Далее исполняются микрокоманды 40 фОтсчет,Стеконый" и Чтение, Стековое" 45 з регистр 8 правого операнда. За исключением задания начального адреса считываемого поля, исполнение этих микрокоманд совпадает с ранее рассмотренным исполнением аналогичной у пары этих микрокоманд,В результате исполнения предыдущих микрокоманд н регистры 7 левого и 8 правого операнда занесены по 24 разряда значений операндов А и Б.Следующая микрокоманда фНастройка. Длины" передает в блок 9 настройки из регистра 58 узла 48 настройки стека операндов длину частей операндов А и Б, загруженных в регистры 7 левого и 8 правого операнда для выполнения операции в блоке б. На выходеэтого блока формируются значение переноса и двоичная сумма содержимогорегистров 7 левого и 8 правого операнда. Длина результата, определяе му.Адресу","Запись.Стековая".Конец. 5 По первой микрокоманде в регистре 58 узла 48 настройки стека операндон устанавливается длина считываемого поля стековых данных (вариант 1 ) и проверяется, не исчерпаны ли операнды. Поскольку значение н секции дли" ны поля регистра 61 узла 45 поля стековых данных равно 32, то н регистре 58 узла 48 настройки стека операндов устанавливается значение 24, Так как содержимое регистра 58 узла 48 настройки стека операндов - О,то микрокоманда "Переход" пропускается,Иикрокоманда "Отсчет.Стековыйф изменяет содержимое секции начального адреса в стеконой позиции в регистре 61 узла 45 поля стеконых данных на содержимое регистра 58 узла 48 на-мая значением блока 9 настройки, н данном случае составляет 24 разряда.По микрокоманде "Пересылка.Регист-, ровая" полученная сумма передается но второй регистр 11 общего назначения, а по микрокоманде фПеренос" в секцию переноса/заема блока 9 настрой. ки передается значение двоичного переноса, 1 или О. Зто значение переноса будет использовано при последующем суммировании очередных полей операндов А и Б.Следующая микрокоманда "Обмен. Стековый" производит замену в регистре 61 узла 45 поля стековых данных дескриптора операнда Б на дескриптор результата, засылая текущее содержи" мое этого регистра н слово О первого блока 15 буферной памяти и загружая этот регистр значением из слова 1 указанного блока.По микрокоманде "Отсчет.Стековыйф значение в секции начального адреса в стековой позиции регистра 61 узла45 поля стековых данных изменяется на содержимое регистра 58 узла 48 настройки стека операндов. В данном случае измененное значение этой секции равно 48.Иикрокоманда Запись. Стеконая" выполняет запись поля из регистра 11 общего назначения в стек операндов по адресу, указанному в регистре 61 узла 45 поля стеконых данных, т,е. в дескрипторе результата, и модифицирует значение в секции длины поля этого регистра на длину записываемого поля. В данном случае длина запи" сываемого поля задается регистром 58 узла 48 настройки стека операндов и составляет 24 разряда. В результате выполнения данной микрокоманды 24 младших разряда операнда Б заменяются н стеке операндов 24 младшими разрядами результата.Следующая микрокоманда "Обмен, Стеконый" заменяет в регистре 61 узла 45 поля стековых данных дескриптор результата на дескриптор операнда А.Микрокомаида фПереходф возвращает в регистр 3 адреса микрокоманды значение адреса первой .макрокоманды описанной последовательности, т.е. микрокоманды "Настройка. Стековая".Далее выполняется еще один проход по описанной последовательности, но при значении в регистре,58 узла 48 настройки стека операндов, равном 8 (остаток от прежнего значения длины поля операндов - 32, после его модификации на 24).После нторого возврата на перную микрокоманду "Настройка. Стековая" обработка операндов уже закончена, и по этой микрокоманде в регистре 58 узла 48 настройки стека операндон будет установлено нулевое значение, что приведет к выполнению микрокоман 2386007724ды "Переход", следующей за данноймикрокомандой.По микрокоманде "Переход" в регистре 3 адреса микрокоманды установлен адрес микрокоманды "Обмен.Стековый", следующей за описанной последовательностью микрокоманд. Эта микрокоманда восстановит дескриптор результата в регистре 61 узла 45 полястековых данных, причем содержимоесекции длины поля этого регистра 10равно 1.По микрокоманде фочистка.Регистровая" произойдет очистка содержимогорегистров 7 левого и 8 правого операнда, и поэтому по следующей микрокоманде "Пересылка.Регистроваяфво второй регистр 11 общего назначения занесется только значение переноса, полученного в результатеполного суммирования значений обоихоперандов. 20Микрокоманда фНастройка. Стековая"установит в регистре 58 узла 48 настройки стека операндов значение длины поля стековых данных иэ регистра61 узла 45 поля стековых данных, т.е, 251, и по микрокоманде "Отсчет.Стековый" произойдет смещение на эту длину содержимого секции начального.адреса в стековой позиции в регистре61 узла 45 поля стековых данных. Измененное значение этой секции рав"но 39,По микрокоманде "Запись.стековая"произойдет занесение значения переноса из второго регистра 11 общегоназначения на поле результата в стекоперандов.Как видно из примера, основу обработки полей переменной длины встековой памяти составляют микрокомфнды "Отсчет.Стековый", "Настройка. 40Стековаяф, "Чтение.стековое", "Запись.стековаяф. Использование этихмикрокоманд позволяет построитьциклическую обработку длинных последовательностей элементов данных беэявного указания длины обработкина каждом шаге ее выполнения.Кроме того, использование вариан.та 0 в микрокоманде "Настройка. Стековая" позволяет задать последовательную обработку элементов данных,т.е. по 1 разряду, по 1 цифре (4 разряда), по 1 символу (8 разрядов), взависимости от значения в секциитипа данных блока 14 типа и длиныполя данных, Так, при необходимостивыпсйнения посимвольной обработкиоперанда длиной в 40 разрядов (значение в секции длины поля регистра 61узла 45 стековых данных равно 40) при,значении 8 в секции типа данных бло- Щка 14 типа и длины поля данных пред-шествующая установка регистра 58 узла48 настройки стека операндов по значению этой секции (вариант О) заносит в регистр 58 узла 48 настройки 5- время, которое необходимобыло бы потратить на обращение э основную памятьв ходе безадресной обработки данных при программной реализации стековойпамяти в основной памятипроцессора топ и т ъап- угде и =2-3время, которое необходимопотратить на обращение встековую память в ходе безадресной обработки данныхпри аппаратной реализациистековой памяти Т Ой С - доля линейнью участков сарифметической или логической обработкой и вйборкойданных из стека операндовв общем балансе программработы интерпретатора ЯВуили машинно-ориентированного языка с безадресной обработкой данных (С=0,5).С учетом этого введение стековойпамяти в структуру процессора микро- программируемой ЭВМ позволяет .повысить производительность процессора на Р= -ф. -- д ЯВР Лаз. И,.т, +и ТК Оп+и)к 100 .Так, при к=5, ь =5, и 3 величинаРс 10%, а при К=10,и=2,п =3 величина Р=17. формула изобретения 1. Процессор микропрограммнруемойЭВМ, содержащий регистр микрокоманстека значение 8, После этого указа- ние варианта 5 в микрокоманде "Настройка. Стековая" приводит к выборке по 8 разрядов до тех пор, пока не будет исчерпано значение в секции длины поля регистра 61 узла 45 поля стековых данных,Для сщенки эффективности изобретения введены следующие обозначения и допущениясоотношение между быстродействием основной и сте-ковой памяти процессораК ф 5-10;Увремя заполнения стековойпамяти процессора,фТ - время обработки данных стековой памяти на оборудовании процессора,е - соотношение между тозр иды, блок памяти микрокоманд, регистрадреса микрокоманды, блок адресации,блок стековой памяти адресов, арифметическо-логический блок, р гистрлевого операнда, регистр правогооперанда, блок настройки, два регистра общего назначения, блок сдвига,блок адреса поля данных, два блокабуферной памяти, блок модификации,блок установки переноса, блок установки типа и длины поля данных, блокпропуска микрокоманды, блок сопряжения, причем первый вход данных регистра микрокомаиды соединен с выходом данных блока памяти микрокоманды,второй управляющий вход - с управляющим выходом блока пропуска микрокоманды, первый выход данных регистраадреса микрокоманды соединен со входом данных блока памяти микрокоманд,первый вход данных - с первым выходом данных блока адресации, а второй 20выход данных - с первым входом данных блока адресации, второй вход дан-ных блока адресации соединен с выходом данных блока стековой памяти адресов, а второй выход данных - совходом данных блока стековой памятиадресов, первый вход данных арифметическо-логического блока соединенс выходом данных регистра левого операнда, второй вход данных - с выходомданных регистра правого операнда,второй выход данных - со входом дан.ных блока установки переноса, вто"рой управляющий вход - с первым управляющим выходом блока настройки,первый вход данных блока настрой-З 5ки соединен с выходом данных блокаустановки переноса, второй. входданных - с первым вььсодом данныхблока установки типа и длины поляданных, третий вход данных - со вто Орым выходом данных блока установкитипа и длины поля данных, первый выход данных - с первым входом данныхблока модификации, с первым входомданных блока установки типа и длины 4поля данных, со вторым входом данныхблока сопряжения, первый управляющийвыход - со вторым управляющим входомблока сдвига, выход данных второгорегистра общего назначения соедийенс первым входом данных блока сдвигапервый вход данных блока адреса поляданных соединен с первым выходом данных первого блока буферной памяти,второй вход данных - с первым выходомданных блока модификации, первый выход данных - с первым входом данныхпервого блока буферной памяти, третьим входом данных блока модификациии третьим входом данных блока сопряжения, первый вход данных блока типа щи длины поля данных соединен с первым выходом данных второго блока буферной памяти, второй входданныхсо вторым выходом данных блока модификации,первый выход данных - с первым входом данных второго блока буфер" ной памяти, четвертым входом дайных блока модификации и вторым входом данных блока установки типа и длины поля данных, третий вход данных блока установки типа и длины поля данных соединен со вторым выходом данных второго блока буФерной памяти, а управляющий выход - со вторым управляющим входом блока пропуска микрокоман-ды, первый вход данных блока сопряжения соединен с выходом данных процессора, а первый выход данных - со вхо- . дом данных процессора, второй вход и первый выход данных регистра микро- (команды, второй вход и третий выход ,данных регистра адреса микрокоманды, первый выход данных арифметическо-логического блока, вход и выход данных регистра левого операн-да, вход и выход данных регистра правого операнда, четвертый вход и второй выход данных блока настройки, вход и выход данных первого регистра общего назначения, вход и выход дан- ных второго регистра общего назначе- ния, первый выход данных блока сдвига, третий вход и первый выход данных блока адреса поля данных, третий вход и первый выход данных блока типа и длины поля данных, второй вход и вто- . рой выход данных первого блока буфер" ной памяти, второй вход и третий выход данных второго блока буферной памяти, второй вход данных блока буферной памяти, второй вход данных блока модификации, четвертый вход и второй выход данных блока сопряжения ,соединены с шиной данных, а первые управляющие входы регистра адреса микрокоманды, блока адресации, арифметическо-логического блрка, регистров левого и правого операнда, блока настройки, регистров общего назначения, блока сдвига, блока адреса поля данных, блока типа и длины поля данных, блоков буферной памяти, блока модификации, блока установки переноса, блока установки типа и длины oоля данных, блока пропуска микрокоманды, блока сопряжения, а также управляющий выход регистра микрокоманды соединены с шиной управления, о т л и ч а ю щ и й с я тем, что, с целью повышения производительности, он содержит устройство стековой памяти, первый вход данных которого соединен со вторым, выходом данных, блока сдвига, третий вход данныхс первым выходом данных блока настрой ки четвертый вход данных - с первым выходом данных блока типа и длины поля данных, пятый, вход данных - с третьим выходом данных первого блока буферной памяти, первый и второй выходы данных - соответственно со вторым и третьим входами данных блока . сдвига, второй вход и третий выход данных - с шиной данных, первый уп 8600772728равляющий вход - с шиной управления, первый управляющий выход - с третьим управляющим входом блока сднига,второй управлякщий выход - с третьим управляющим входом блока пропуска микрокоманды, 52. Процессор по п.1, о т л и ч а - ю щ и й с я тем, что устройство стековой памяти содержит блок хранения операндов, блок стеконой адресации и блок стековых операций, причем первый вход данных блока хранения операндов соединен с первым входом данных устройства стековой памяти, второй вход данных - с выходом данных блока стековой адресации, выход данных - с 15 . первым выходом данных устройства стековой памяти, вход данных блока стеконой адресации соединен со вторым входом данных устройства стеконой памяти, выход данных - со вторым ны ходом данных устройства стековой памяти, первый-пятый управляющие входы - соответственно с первым-пятым управляющими выходами блока стековых операций, управляющий выход - со вто рым управляющим входом блоха стековых операций, первый вход данных блока стековых операций соединен со вторым входом данных устройства стековой памяти, второй вход данных " с третьим входом данных устройства стековой памяти, третий вход данных " с четвертым входом данных устройства стеконой памяти, четвертый вход данных - с пятым входом данных устройства стековой памяти,;первый выход данных - со вторым выходом данных устройства стековой памяти, второй выход данныхс третьим выходом данных устройства стековой памяти, первый управляющий вкод - с первым управляющим входом 40 устройства стековой памяти, шестой управляющий выход - с первым управляющим ныходом устройства стеконой памяти седьмой управляющий выкод - соювторым управляющим выходом устройства 45стековой памяти.3. Процессор по п,1, о т л и ч аю щ и й с я тем, что блок стековых операций содержит узел настройки стека операндов, узел поля стековых данных, узел установки текущей длины поля стека операндов, узел модификации, распределитель импульсов, первый"восьмой выходы которого соединены соответственно с первымпятыф управляющими выходами блока 55 и с управляющими входами узла настройки стека операндов, узла поля стековых данных, узла установки текущей длины поля стека операндов и узла модификации, первый и второй управляющие входы распределителя импульсон являются первым и вторым управляющими входами блока, первый выход данных узла настройки стека операндов соединен с перным выходом данных блока, второй выход данных узла настройки стека операндов и второй выход данных узла поля стековых данных соединены с первым выходом данных блока, первый вход данных блока соединен с первыми входами данных узла настройки стека операндов, узла поля стеконых данных и узла модификации, третий вход данных блока соединен с первым входом данных узла установки текущей длины поля стека операндов, нторой выход, данных узла настройки стека операндов соединен со вторыми нходами данных узла модификации и узла установки текущей длины поля стека операндов, третий вход данных которого и третий вход данных узла модификации соединены с третьим выходом данных узлаутоля стековых данных, первый выход данных которого соединен с четвертым входом данных узла модификации, первый, второй выходы данных которого соединены соответственно со вторым и третьим входащи данных узла поля стеконых данных, управляющий выход и нторой вход данных узла настройки стека операндов соединены соответственно с шестым управляющим выходом блока и с первым выходом данных узла установки текущей длины поля стека операндов, управляющий выход и четвертый, пятый входы данных которого являются соответственно седьмым управляющим выходом блока и вторым, четвертым входами данных блока.Источники информации,ю принятые во внимание при экспертизе 1. Патент (ЛМА Р 3.725.868,кл. О ОЬ Р 3/00, опублик. 1973.2, Патент ВеликобританииР 1,.436.792., кл. О 06 Г 3/06, опублик. 1976,3 Патент ВеликобританииР 1. 390. 384, кл. 6 ОЬ Р 7/38, опубгглик.1975,4, Королев Л.Н, Структуры ЭВМ и ихматематичеСкое обеспечение. М.,аз нал ППП "Патентф, г.ужгород, ул.Проектная Тираж ИПИ Государ по делам из 035, Москва 5 Подпвенного комитета СССРретений и открытий3-35, Раушская наб., добработки данных, Эти процессоры не микропрограммируемые, отличительной их особенностью является чисто магазинная, стековая органиэация, которой подчинена вся структура процессора и система программирования и которая ориентирована на стековую обработку данных фиксированной длиныОднако применение чисто магазинной организации в структуре процессора микропрограммируемой ЭВМ и ее системе микрокоманд нецелесообразно, так как это приводит к резкому воз-, растанию числа обращений в стековую память и сказывается на производительности процессора. Наиболее близок к предлагаемомупроцессор, включающий регистр микрокоманды, память микрокоманд, регистр,адреса очередной микрокоманды, схему обращения в адресный стек, функциональный блок, регистры левого и правого операнда, регистр настройки,первый и второй регистры общего назначения, схему сдвига, регистр адреса поля данных, регистр типа и длиныполя данных, первую и вторую секциибуферной памяти, схему модификации,схему установки переноса, схему установки типа и длины поля данных, схему пропуска микрокоманды, схему интерфейсс а5 1.Одной из отличительных черт этогопроцессора является возможность доступа к полям переменкой длины с точностью до бита, в байтовой основнойпамяти. Микрокоманды хранятся какв управляющей, так и в основной памяти, Обращение в основную память заочередной микрокомандой происходиттолько в случае ее отсутствия в управляющейпамяти. Микрокоманда, выделяемая из управляющей памяти илиосновной памяти, заносится непосредственно в регистр микрокоманды.К недостатку процессора следуетотнести существенное замедление егоработы при выпоЛнении безадреснойобработки данных. Отсутствие стековой памяти в его структуре приводитк необходимости программной реализации стекового механизма в основнойпамяти процессора и, вследствие этого, к существенному возрастанию числа обращениЯ в основную память при.реализации проблемно и машинно-рриентированных входных языков, предусматривающей безадресную обработку данных,Цель изобретения - снижение частоты обращений из процессора в основную память, и следовательно, повышение производительности процессорапри микропрограммной реализациивходных языков, предусматривающейбезадресную обработку данных.Поставленная цель достигается тем,что в процессор микропрограммируемой ЭВМ, содержащий регистр микрокоманды,блок памяти микрокоманд, регистр адреса микрокоманды, блок адресации,блок стековой памяти адресов, арифметическо-логический блок, регистрЛевого операнда, регистр правогооперанда, блок настройки, два регистра общего назначения, блок сдвига,блок адреса поля данных, блок типа идлины поля данных, два блока буфернойпамяти, блок модификации, блок установки переноса, блок установки типаи длины поля данных, блок пропускамикрокоманды, блок сопряжения, причем первый вход данных регистра микрокоманды .соединен с выходом данныхблока памяти микрокоманд, второй управляющий вход - с управляющим выходом блока пропуска микрокоманды,первый выход данных регистра адресамикрокоманды соединен со входом дан,ных блока памяти микрокоманд, первыйвход данных - с первым выходом данных блока адресации,а второй выходданных - с первым входом данныхблока адресации, второй вход данных 2 блока адресации соединен с выходомданных блока стековой памяти адресов, а второй выход данных - со входом данных блока стековой памятиадресов, первый вход данных арифметическо-логического блока соединенс выходом данных регистра левого операнда, второй вход данных - с выходом данных регистра правого операнда, второй выход данных - со входомданных блока установки переноса,второй управляющий вход - с первымуправляющим выходом блока настройки,первый вход данных блока настройкисоединен с выходом данных блока установки переноса, второй вход дан ных - с первым выходои данных блокаустановки типа и длины поля данных,третий вход данных - со втормм выходом данных блока установки типа идлины поля данных, первый выход дан ных - с первым входом даняых блока модификации, с первым входом данных блока установки типа и длины поля данных, со вторым входом данныхблока сопряжения, первый управляющий щ выход - со вторым управляющим входомблока сдвига, выход данных второгорегистра общего назначения соединенс первым входом данных блока сдвига,первый вход данных блока адреса поляданных соединен с первым выходомданных первого блока буферной памяти, второй вход данных - с первымвыходом данных блока модификации,первый выход данных - с первым входом данных первого блока буферной 60 памяти, третьим входом данных блока модификации и третьим входом данных блока сопряжения, первый входданных блока типа и длины поля данных соединен с первым выходом данных б 5 второго блока буферной памяти, второй вход данных - со вторым выходомданных блока модификации, первыйвыход данных - с первым входом данных второго блока буферной памяти,четвертым входом данных блока модификации и вторым входом данных блокаустановки типа и длины поля данных,третий, вход данных, блока установкитипа и длины поля данных соединенсо вторым выходом данных второгоблока буферной памяти, а управляющийвыход - со вторым управлякщим входомблока пропуска микрокоманды, первыйвход данных блока сопряжения соединен с выходом данных процессора, апервый выход данных - со входом данных процессора, второй вход и первый 35выход данных регистра микрокоманды,второй вход и третий выход данных регистра адреса микрокоманды, первый выход данных арифметическологического блока, вход и выход эОданных регистра левого Операнда,вход и выход данных регистраправого операнда, четвертый вход ивторой выход данных блока настройки,вход и выход данных первого регистраобщего назначения, вход и выход данных второго регистра общего назначения, первый выход данных блока сдвига, третий вход и первый выход данных.блока адреса поля данных, третийвход и первый выход данных блока типа 30и длины поля данных, второй вход ивторой выход данных первого блокабуферной памяти, второй вход и третий выход данных второго блока буферной памяти, второй вход данных 35блока модификации, четвертый вход ивторой выход данных блока сопряжениясоеДинены с шиной данных, а первыеуправляющие входы регистра адресамикрокоманды, блока адресации арифметическо-логического блока, регистров левого и правого операнда, блоканастройки, регистров общего назначения, блока сдвига, блока адреса поляданных, блока типа и длины поля данных, блоков буферной памяти, блокамодификации, блока установки перено- .са, блока установки типа и длины поля данных, блока пропуска микрокоманды, блока сопряжения, а также управляющий выход регистра мнкрокоман- фОды соединены с шиной управления,введено устройство стековой памяти,первый вход данных которого соединенсо вторым выходом данных блока сдвига, третий вход данных - с первым55выходом данных блока настройки, четвертый вход данных - с первым выходом Данных блока типа и длины поляданных, пятый вход данных - с третьим выходом данных первого блока бу- щферной,памяти, первый и второй выходыданных - соответственно со вторым итретьим входами данных блока сдвига,второй вход и третий выход данных -с шиной данных, первый управлякщий д 5 вход - с шиной управления, первыйуправляющий выход - с .третьим управ"ляющим входом блока сдвига, второйуправляющий выход - с третьим управлякщим входом блока лропуска микро"команды.Устройство стековой памяти содержит блок хранения операндов, блокстековой адресации, блок 1 стековыхопераций, причем первый вход данныхблока хранения операндов соединен спервым входом данных устройства стековой памяти, второй вход данных -с выходом данных блока стековой ад"ресации, выход данных - с первым выходом данных устройства стековой памяти, вход данных блока стековой адресации соединен со вторым входомданных устройства стековой памяти,выход данных " со вторым выходом данных устройства стековой памяти, первьб-пятый управляющие входы - со-ответственно с первым-пятым управляющими выходами блока стековых операций, управлякщий выход - со вторымуправляющим входом блока стековыхопераций, первый вход данных блокастековых операций соединен со вторым входом данных устройства стековой памяти, второй вход данных - стретьим входом данных устрсйства стековой памяти, третий вход данныхс четвертым входом данных устройствастековой памяти, четвертый вход данных - с пятым входом данных устройст"ва стековой памяти, первый выход данных - со вторым выходом данных устройства стековой памяти, второй выход данных - с третьим выходом данных устройства стековой памяти, пер.вый управляющий вход - с первымуправляющим входом устройства стековой памяти, шестой управляющийвыход - с первым управляющим выходом устройства стековой памяти,седь.мой управляющий выход - со вторымуправлякщим выходом устройства стековой памяти,Кроме того, блок стековых операций содержит узел настройки стекаоперандов, узел поля стековых данных, узел установки текущей длиныполя стека операндов, узел модификации, распределитель импульсов, первый-восьмой выходы которого соединены соответственно с первым-пятымуправляющими выходами блока и с управляющими входами узла. настройкистека операндов, узла поля стековыхданных, узла установки текущей длины поля стека операндов и узла модификации,первый и второй управляющиевходы распределителя импульсов являются первым и вторым управляющимивходами блока, первый выход данныхузла настройки стека операндов соединен с первым выходом данных блока,первый выход данных узла, настройкистека операндов и второй выходданных узла поля стековых данных соединены с первым выходом данных блока, первый вход данных блока сОе" динен с первыми входами данных узла настройки стека операндов, узла поля стековых данных и узла модификации, третий вход данных блока соединен с первым входом данных узла установки текущей длины поля стека операндов, первый выход данных узла настройки стека операндов соединен со вторыми нходами данных узла модификации и узла установки текущей длины поля стека операндов, третий вход данных которого и третий вход дайных узла модификации соединены с третьим выходом данных узла поля стековых дан ных, первый выход данных которого соединен с четвертым входом данных узла модификации, первый и второй выходы данных которого соединены соответственно со вторым и третьим 20 входами данных узла поля стековых данных, управляющий выход и второй вход узла настройки стека операндов соединены соответственно с шестым управляющим выходом блока и с первым выходом данных узла установки текущей длины поля стека операндон, уп-, равляющий выход и четвертый, пятый входы данных которого являются соответственно седьмым управляющим выходом блока и вторым, четвертым входами данных блока.На фиг.1 представлена структурная 1схема процессора, на Фиг. 2 - структурная схема устройства стековой па,мяти, на фиг,3 - структурная схема блока стековых операций; на фиг.4 вариант выполнения узла настройки стека операндов, на Фиг.5 - вариант выполнения узла поля стековых даннус," на фиг.б - вариант выполнения 40 узла установки текущей длины поля стека операндов;на Фиг.7 - вариант выполнения узла модификации; на Фиг.8 - вариант выполнения распределителя импульсов, на фиг.9 - вариант 45 ныполнения блока сдвига; на Фиг.10 вариант выполнения блока адреса поля данных; на фиг.11 - вариант выполнения блока типа и длины поля данных, на Фиг.12 - вариант ныполнения блока буферной памяти; на Фиг.13 - вариант выполнения блока модификации, на Фиг.14 - вариант выполнения блока настройки; на Фиг.15 - вариант выполнения блока сопряжения; на фиг.16- вариант выполнения блока установки переиф)са; на фиг.17 - вариант выполнения блока установки типа и длины поля данных, на Фиг.18 - Форматы отдельных микрокоманд процессора; на Фиг.19 - варианты модификации значе- О ний в регистре блока адреса поля дан. ных и регистре блока типа и длины поля данных; на фиг,20 - варианты. модификации значений в регистре блока типа и длины поля стековых данных 5 по микрокоманде "Отсчет.Стековый";на Фиг.21 - варианты модификации значений в регистре блока типа и длиныполя стековых данных по микрокомандам "Чтение,Стековое" и "Запись.Сте-.ковая", на фиг.22 - варианты формирования значения в регистре блока настройки стека по микрокоманде "Настройка,Стековая"1 на фиг,23 - форматы дескрипторов операндон и результата, используемых в демонтируемом примере выполнения операции сложения двух операндов.Процессор микропрограммируемойЭВМ содержит (фиг.1) регистр 1 микрокоманды, блок 2 памяти микрокоманд,регистр 3 адреса микрокоманды, блок.4 адресации, блок 5 стековой памятиадресов арифметическо-логическийблок б, регистр 7 левого и регистр8 правого операнда, блок 9 настройки,регистры 10 и 11 общего назначения,блок 12 сдвига, блок 13 адреса поляданных, блок 14 типа и длины поляданных, первый 15 и второй 16 блокибуферной памяти, блок 17 модификации,блок 18 установки переноса, блок 19установки типа и длины поля данных,блок 20 пропуска микрокоманды, блок21 сопряжения и устройство 22 стековой памяти операндов.Устройство стеконой памяти операндов содержит (Фиг.2) блок 23 храненияоперандов, выход 24 данных, вход 25данных, блок 26 стековой адресации,вход 27 данных, блок 28 стеконых операций, выход 29, входы 30-33, выходы34-36,Блок стеконых операций содержит(Фиг.б) распределитель импульсон 37,вход 38, выходы 39-43, вход 44, узел45 поля стековых данных, вход 46,узел 47 модификации, узел 48 настройки стека операндов, узел 49 установки текущей длины поля стека операндов, входы 50-52, выходы 53-55.Узел настройки стека операндовможет быть выполнен в виде (фиг.4)коммутаторов 56 и 57 и регистра 58,узел поля стековых данных (фиг.5)может быть выполнен н виде коммутаторов,59 и 60 и регистра 61.Узел установки текущей длины полястека операндов может быть выполненв виде (фиг.б)коммутатора б 2,регист-,ров 63 и 64 и схемы 65 сравнения.Узел модификации может быть выполнен в виде (Фиг.7) коммутаторов66 и 67, регистра 68 и сумматора 69.Распределитель импульсов можетбыть выполнен в виде (Фиг.8) дешифратора 70, счетчика 71, элемента И 72и генератора импульсов 73.Блок сдвига может быть выполненв виде (Фиг.9) коммутаторов 74 и 75и регистра 76,Бпок адреса поля данных можетбыть выполнен в виде (фиг.10) коммутатора 77 и регистра 78. Аналогичным образом может быть настроен иблок типа и длины поля дайных(фиг,11), содержащий и коммутатор79 и регистр 80,Блоки буферной памяти могут бытьвыполнены в виде (фиг.12) узла 81хранения и двух коммутаторов 82 и83Блох модификации может быть выполнен в виде (фиг.13) коммутаторов 84 и 85, регистра 86 и сумматора 87,Блок настройки может быть выполнен в виде (Фиг,14) коммутаторов 8891 и регистра 92.Блок сопряжения (Фиг.15) можетбыть выполнен в виде коммутатора 93и регистров 94 и 95.Блок установки переноса (фиг.16)в простейшем виде может представлятьсобой триггер 96 и элемент И 97.Блок установки типа и длины .поля.данных может представлять собой совокупность (фиг.17) коммутаторов 98и 99, регистров 100 и 101 и схемы102 сравнения.Блок пропуска микрокоманды в прос-,тейшем случае может представлять собой элемент ИЛИ на три входа.На основании содержимого полейрегистра 1 микрокоманды вырабатываются различные управляющие сигналы,поступающие по шине управления вблоки процессора и организующие егоработу, В частности, эти сигналыуправляют связью по данным междуразличными блоками процессора, реализуемой через общую шину данных и заключающейся в подключении к ее входам выхода одного из связанных с нейблоков для передачи значения этогоблока на выход шины данных и записиэтого значения в конкретный блок.Микрокоманды хранятся в блоке 2памяти микрокоманд и по одной выбираются в регистр 1 микрокоманды дляих выполнения. Блок 2 памяти микрокоманд организован по словам (16"тиразрядным): адрес очередной выполняемой микрокоманды находится в регистре 3 адреса микрокоманды, Обычно значение в регистре 3 адреса микрокоманды увеличивается на единицупосле каждой выполняемой микрокоманды, но при нарушении линейногоследования микрокоманд новое значение адреса очередной микрокомандыможет быть установлено в регистре 3адреса микрокоманды как прямой засылкой содержимого некоторого регистра через общую шину данных, так ивыполнением микрокоманд перехода иобращения к подпрограмме, вызывающих смещения содержимого регистра3 адреса микрокоманды на заданнуювеличину, В случае выполнения микро-,команды обращения к подпрограмме исходное значение регистра 3 адресамикрокоманды, заключающее адрес микрокоманды, следующей за микрокомандой обращения к подпрограмме, черезблок 4 адресации предварительно запоминается в вершине блока 5, работающего по принципу "Первый пришел -первый вышел". При выходе иэ подпрограммы это значение восстанавливаетсяв регистре 3 адреса микрокоманды изблока .5 стековой памяти адресов черезблок 4 адресации.Арифметические и логические операции реализуются в процессоре варифметическо-логическом блоке 6, прикаждом обращении к которому на егопервом выходе данных, связанном собщей шиной данных, вырабатывается15 значение одной из нескольких арифметическихили логических Функцийнад содержимым регистров 7 и 8 левого и правого операнда.Этими функциями являются "Сумма",20 "Разность", "Инверсия левого операнда", "Инверсия правого операнда","Диэъюнкция", причем каждая из этихфункций может быть указана в микрокомандах в качестве "регистрамиисточника данных. Управляющая информация, необходимая для выполненияуказанных функций и содержащая значение переноса-заема при выполненииарифметических операций, тип обрабатываемой информации (двоичный десятичный), а также длина обрабатываемого поля данных поступает изблока 9 настройки через второй управ-.ляющий вход арифметическо-логического блока 6,Первый 10 и второй 11 регистры общего назначения предназначены для40 работы в качестве универсальных регистров. Каждый из этих регистровразбит на отдельные 4-разрядныесекции, самостоятельно адресуеже вмикрокомандах. На базе второго ре"4 гистра 11 общего назначения реализо-ван блок 12 сдвига, выполнякщий циклический/ациклический сдвиг влевосодержимого этого регистра на произвольное число разрядов, а такжевыделение поля произвольного размера иэ этого регистра, Требуемаявеличина сдвига, а также размер выделяемого поля задаются регистром 1микрокоманды или блоком 9 настройкии поступают В блок 12 сдвига СООТветственно через ,.его первый иливторой управляющие входы, выделяе"мое поле выдается всегда прижатымвправо,Адресация к полю оперативной па60 мяти посредством блока 13 адресаполя данных происходит с точностьюдо бита, а тип данных (бит, цифра)и полная длина поля в битах задаются соответствующими секциями блока65 14 типа и длины поля данных.Каждый блок буферной памяти хранит до 16 слов, и обращения н буферную память (запись или чтение) может происходить либо в каждый блок раздельно, либо одновременно в оба блока к словам удвоенной длины. Обращение н перный блок 15 буферной памяти может происходить из блока 13 адреса поля данных по первому входу или выходу данных блока 15, а также через кодовую шину данных по второму входу или выходу данных этого блока; обращение во второй блок 16 буферной памяти может происходить из блока 14 типа идлины поля данных по первому входу или выходу данных блока 16, а также через кодовую шину данных по второму входу или выходу данных блока 16; однонремен ное обращение в оба блока буферной памяти происходит из блока 13 адреса поля данных и блока 14 типа и длины поля данных соответственно н первый блок 15 и второй блок 16 буферной памяти по их первым входам или выходам данных. Модификация значений в блоке 13 адреса поля данных и в блоке 14 типа и длины поля данных выполняется блоком 17 модификации. Параметр модификации этих значений передается из блока 9 настройки или через кодовую шину данных соответственно по первому или второму входу данных блока 17, а исходнйе значения .указанных блоков 13 и 14 поступают соответственно по третьему и четвертому входу данных блока 17 модификации.Значением переноса, формируемым блоком 18 установки переноса, может быть либо значение переноса/заема, вырабатываемое арифметическо-логическим блоком 6 и поступающее через нход данных блока 18 установки переноса, либо значение "1" или " 0", устанавливаемое в соответствии с управляющим сигналом, поступающим по шине управления через управляющий вход блока 18 установки переноса.Исходными данными, поступающими на входы блока 19 установки типа и длины поля данных для формирования указанных величин, являются текущее значение этих величин, содержащееся н блоке 9 настройки, а также значения этих величин, содержащиеся в блоке 14 типа и длины поля данных и в Фиксироанной (нулевой) ячейке второго блокй 16 буферной памяти.Формирование величины длины поля данных в блоке 9 настройки сопровождается анализом этой величины на нулевое значение, что может вызывать, в соответствии с семантикой микрокоманды, блокировку выполнения очередной микрокоманды в регистре 1 ликрокоманды, ее пропуск и переход к выполнению следующей микрокоманды,5 10 15 20 25 ЗО 35 40 45 50 55 60 Указанные дейстния реализуются блоком 20 пропуска микрокоманды; необходимая информация поступает с управляющего ныхода блока 19 установки типа и длины поля данных через второй управляющий вход блока 20 пропуска мик-.рокоманды,Обращение к полю основной памятипроцессора чтение или запись) реализуется блоком 21 сопряжения через егопервый вход и первый выход данных.Длина поля может быть произнольной,но не должна превышать 24 бита для одного обращения к основной памяти, онапоступает на второй вход данных блока 21 из блока 9 настройки; начальныйадрес поля данных, задаваемый с точностью до бита, поступает из блока13 адреса поля данных на третийвход данных блока 21 сопряжения.Реализация языков высокого уровняв микропрограммируемой ЭВМ, предусматривающая безадресную обработкуданных, либо реализация машинно-ориентированных языков с безадреснойобработкой данных предполагают организацию в основной памяти ЭВМ программно-упранляемого стека операндов,обращение к которому происходит через егО вершину. В ходе безадреснойобработки данных происходит чтениетребуемого числа операндов из стекаоперандов в регистры процессора, ихсоответстнующая обработка, возможный возврат результата в вершинустека операндов, последующее извлечение из стека операндов очереднойГруппы операндов, включая ранее запомненный результат, обработка этойгруппы и т.д. Выполнение перечисленных действий приводит к возрастанию числа обращений в основную память, особенно заметному в случае;когда 4 ормат данных превышает форматрегистров процессора.Включение в состав процессораустройства 22 стеконой памяти, являющегося аппаратной реализацией вершины стека операндов и микрокомандработы с ним, позволяет сократитьчисло обращений в основную памятьпри безадресной обработке данных иупростить работу со стекой операндов.Блок 23 хранения операндов данного блока выполняет функции вершиныстека операндов и представляет собойбайтовую намять, адресуемую с точностью до бита, причем каждое обращение в такую память всегда сопровождается одновременным выделением4 байтов, включая начальный байтадресуемого поля. Информация, считываемая из стека операндов, черезпервый выход данных блока 23 и первый выход данных 24 устройстна 22стековой памяти поступает н блок 12сдвига; занесение информации в стекоперандов происходит также из блока12 сдвига через первый вход данных25 устройства 22 стековой памяти ипервый вход данных блока 23.Операнд в стековой памяти хранится в позиции стека, представляющейучасток байтовой памяти со смежнымиадресами байтов, по одному операндув позицИи стека. Максимальная длинаоперанда зависит от размера позициистека. Размер позиции стека в блоке23 не является постоянным и "настраивается" программным способом. Такая"настройка", а также Формированиеадреса обращения в блоке 23 и контроль за правильностью такого обраще"ния осуществляются блоком 26 стековой адресации,15Исходная информация об адресе обращения в стек операндов поступаетна вход данных блока 26 стековойадресации с шины данных через второй вход 27 данных устройства 22 стековой памяти, а управляющая информация, необходимая для Формированияадреса обращения в блок 23, поступает на первый-пятый управляющие входыблока 26 стековой адресации из блока 228 стековых операций.Обращение в стек операндов можетпроисходить только в пределах однойпозиции стека, что контролируетсяблоком 26 стековой адресации, и вся- укое пересечение стековой позициисопровождается выдачей соответствующего сигнала на управляющий выходэтого блока.Адрес обращения в стек операндов,сформированный в блоке 26 стековойадресации, через выход данных этогоблока поступает на второй вход данных блока 23, при этом пять младшихразрядов адреса, задающие в считанныхчетырех байтах номер начального 4 Оразряда адресуемого поля, через второй выход 29 данных устройства 22стековой памяти одновременно поступают в блок 12 сдвига для Формирования константы сдвига поля, выделяемого из стека операндов.Запуск выполнения микрокоманд работы со стеком операндов в устройстве 22 стековой памяти происходит через блок 28 стековых операций. Необходимая информация поступает вэто устройство через первый управляющий вход 30, а также третий 31,четвертый 32 и пятый 33 входы данныхустройства 22 стековой памяти; выдача информации из блока 28 стековыхопераций на шину данных происходитчерез второй выход 34 данных, в блоксдвига 12 - через первый управляющийвыход 35, а в блок 20 пропуска микрокоманды - через второй управляющий 60выход 36 устройства 22 стековой памяти.Работа блока 28 стековых операцийпроисходит под управлением распределителя 37 импульсов, активизируемого 65 по шине управления через первый управляющий вход 38 данного блока;Рас" пределитель 37 импульсов вырабатывает также ряд управляющих сигналов, выдаваемых через первый 39, второй 40, третий 41 четвертый 42 и пятый 43 управляющие выходы блока 28 стековых операций в блок 26 стековой адресации, В свою очередь, из блока 26 стековой адресации в распределитель 37 импульсов через второй управляющий вход 44 блока 28 стековых операций поступает управлякзций сигнал, свидетельствующий о пересечении границ позиции стека или всего стека операндов при обращении к нему и блокирукщий работу блока 28 стековых опеяаяийКаждый операнд в стеке описывается дескриптором, указывающим размещение и длину операнда (поля переменной длины) в позиции стека, а также положение этой позиции относительно вершины стека. Дескриптор текущего операнда стека хранится в узле 45 поля стековых данных, состоящем из трех секций: смещения позиции, начального адреса в стековой позиции, длины поля, Первая секция задает смещение в байтах искомой позиции стека относительно вершины стека операндов, вторая секция - положение начального (левого) бита поля, который отсчитывается в битах от начала позиции стека, третья секция - число битов в поле. Исходное. значение заносятся в узел 45 поля стековых данных с шины данных через первый вход 46 данных блока 28 стековых операций и первый вход данных узла 45. Модификацйя содержимого узла 45 поля стековых данных, в частности секций начального адреса в стековой позиции и дли" ны Поля, выполняется узлом 47 модификации стека операндов соответственно по второму и третьему входу данных этого узла. Исходные значения указанных секций поступают в узел 47 модификации стека операндов по ее первому и второму входу данных соответственно, а параметр модификацйи поступает с шины давних через первый вход 46 данных блока 28 стекощас операций и третий вход данных узла 47 модификации стека операндов или иэ узла 48 настройки стека операндов через четвертый вход данных узла 47 модификации стека операндов.Значение текущей длины поля стека операндов заносится в узел 48 настройки стека операндов с шины данных через первый вход. 46 данных блока 28 стековых операций и первый вход данных этого узла, а также может Формироваться узлом 49 устаибвки текущей длины поля стека операн- довэИсходные данные поступают в эту схему иэ блока 9 настройки (значение длины обрабатываемого поля), блока 14 типа н длины поля данных (значение длины поля данных), фиксированной (нулевой) ячейки первого блока 155 буферной памяти (значение длины поля данных) соответственно через второй 50, третий 51,четвертый 52 входы данных блока 28 стековых операций и первый, второй, третий входы данных узла 49 установки текущей длины поля стека операндов, а также иэ узла 45 поля стековых данных (значение длины поля) и узла 48 настройки стека операндов соответственно через четвертый и пятый входы данных уз ла 49.Содержимое узла 45 поля стековцх данных через третий выход данных этого узла, а также первый выход данных 53 блока 28 ствковцх опера ций и второй выход данных 34 устройства 22 стековой памяти поступает на шину данных, откудаможет подаваться в блок стековой адресации 26 для формирования адреса обращения в блок 23, Содержимое узла 48 настройки стека операндов через первый выход 53 данных блока 28 стековцх операций и второй выход 34 данных устройства 22 стековой памяти поступает на шину данных, а через шестой управляющий выход 54 блока 28.стековцх операций и первый"управляющий выход 35 устройства 22 стековой памяти поступает в блок 12 сдвига в качестве возможногб размера поля, выделяемого из стека операндов.Формирование значения в узле 49настройки стека. операндов сопровождается анализом этой величины на нулевое значение, что может вызывать,в соответствии с семантикой микрокоманды, блокировку выполнения очередной микрокоманды в регистре 1ьыкрокоманды, ее пропуск и переходк выполнению следующей микрокоманды.Необходимая для этого информация Формируется в узле 49 установки текущейдлины поля стека операндов и с ееуправляющего выхода через седьмойуправляющий выход 55 блока 28 стековых операций и второй управляющийвыход 36 устройства 22 стековой памяти поступает в блок 20 пропуска миктрокоманды,Рботу отдельных частей процессора мЬжно пояснить на примере испол".нения отдельных микрокоманд или некоторой типичной последовательностимикрокоманд, причем объектом действия будут, в основном, операнды 60из стековой памяти и дескрипторы,их описывающие.Каждая микрокоманда состоит иэ16 битов (см.фиг.18), Часть этихбитов, от 3 до 12, содержит код 65 микрокоманды. Оставшиеся биты указы вают конкретные регистры илн их адресуемые части, различные выходные Функции блока б, варианты исполнениянекоторых микрокоманд или длины полей. Например, первая микракоманда "Пересылка. Регистровая" (фнг.18) кодируется 0001 в 4-х старших битовых позициях микрокоманды. Следующиешесть битов указывают источник пересылаемых данных (регистр или его адресуемая часть), а оставшиеся шесть битов - приемник этих данных (регистр или его адресуемая часть).Выходные Функции блока б могут быть указаны только в качестве источников данных. Такое указание задает тип выполняемой в блоке б операции над содержимым регистров 7 левого и 8 правого операндов с использованием блока 9 настройки, определяющего значение переноса/заема для арифметических операций, а также значение типа обрабатываеьих данных и длину операндов.Микрокоманда "Пересылка. Буферная" управляет передачей данных между регистром, указанным в 6-11 разрядах микрокоманды, и любым иэ 16 слов одного из блоков буферной памяти, указанным в разрядах 0-3.Разряд 4 указывает, с каким блоком, первым 15 или вторым 16 буферной памяти проводится обмен, разряд 5 задает направление обмена, из регистра в буферную память или наоборот.Микрокоманда "Пересылка.С.ОП" управляет,обменом с основной памятью. Разряд 11 указывает режим обращения в основную память (чтение или запись) разряды б и 7 задают регистр для обмена с основной памятью: регистр 7 левого, 8 правого операнда, пер Ф вый 10, второй 11 регистр общего назначения, разряды 0-4 задают число битов в читаемом (записываемом) поле - от 0 до 24. Если в разрядах 0-4 задано значение О, то число передаваемых битов задаетсясекцией длины обрабатываемого поля блока 9 на;стройки.При длине операнда, првйышающвй 24 бита, извлечение полного операнда происходит эа несколько обращений к основной памяти, причем каждое такое обращение должно сопровождаться перемещением начальной точки отсчета адреса на величину извлеченного поля, т,е. модификацией значений в блоке 13 адреса поля данных и в секции длины поля данных блока 14 типа и длины поля данных. Разряды 8-10 микрокоманды задают варианты модификации значений в регистрах 78 и 80 (фиг.19) . Символы "1" и "-" задают направление изменения значений, увеличение или уменьшение соответственно.Микрокоманда "Отсчет" задает модификацию значений в блоке 13 адресаполя данных и в секции длины поляданных блока.14 типа и длины поляданных. Разряды 5-7 выполняют ту жеФункцию, что и разряды 8-10 дляпредыдущей микрокоманды, Разряды 0-4задают,константу модификации, а вслучае нулевого значения используется содержимое секции длины обрабатываемого поля регистра блока 9 на.стройки.Микрокомаида "Нереход" задает,на какую Величину (раВрщця 0-11) ис каким знаком (разряд 12) следуетизменить значение з регистре 3 адреса микрокоманды: младшие 12 разрядоз 5микрокоманди суммируются или вычитаютса иэ младших разрядов регистра3 адреса мнкрокоманды.Микрокоманде фПеренос" задаетодин из четырех возможных вариантон 20установки значения в секции переноса,заема блока 9 настройки (разряды0-3 иикрокоманды): по значению переноса на ныходе блока 6 (разряд 3),по значению заема на соответствующем рвыходе того же блока (разряд 2) в ф,п 1 фф (разряд 1). в ПОф (разряд 0),Микрокоманда фОтсчет, Стековыйфвыполняет модификацию значений в узле45 поля стековых данных: секции на- ЗОчального адреса в стековой позициии длины поля. Константа модификации,задается разрядами 0-4 микрокоманды,а в случае их нулевого эначения -узлом 48 настройки стека операндов.Варианты модификации задаются раз"рядами 5-7 микрокомандыФиг.20).Значение константы модификации находится в пределах 0-24.Микрокоманда "Чтение. Стековоефуправляет выборкой поля данных иэ 40стека операндов. Разряд 8 микрокоман".ды задает имя регистра=назначения(регистр 7 левого или 8 прямого опе"ранда), разряды 0-4 - длину считыва"емого поля (в пределах 0-24), Еслизаданное значение длины считываемогополя равно О, то для указания длиныполя используется значение из узла48 настройки стека операндов. Разряды 6"7 микрокоманды задают 4 вариан- уота модификации значений начальногоадреса в стековой позиции и длиныполя н узле 45 поля стековых данных(фнг,21),Микрокоманда "Запись. Стековая" управляет пересыпкой поля иэ регистра 11 общего назначения в одну из позиций стековой памяти. Позиции, в которую идет пересылка, задается величиной смещения отйосительно верх- ЮО ней позиции стека, Эта величина содержится в секции смещения,позиции блока 45 поля стековых данных. Положение записываемого поля и его Общая длина указываются значениями в сек цнях начального адреса в стековой позиции и длины поля этого же олока, Разряды 0-4 микрокоманды задают дли" ну поля, ааписынаемого при данном обращении в стек операндов, а в случае нулевого значения этих разрядов используется значение из узла 48 настройки модификации значений начального адреса в стековой позициии длины Поля в узле 45 поля стекозыхданных. Эти варианты совпадают свариантами для микрокоманди "Чтение.Стековое".Микрокоманда фМодификация, Указателя" управляет перемещением указателя стека. Разряды 2-3 микрокомаидызадают либо имя одного ИЗ. Регистрон(7 левого, 8 правого операнда, верного 10 общего назначения), значениекоторого используется для мОдификации указателя стека, юибо модификацию указателя стека на одну позициюстека; разряд 1 задаетнаправлениемодификации (вверх нли вниз); разряд 0 задает необходимость проверки,находится ли модифицированное значение указателя стека в допустимыхпределами т.е. адресуется ли оновнутрь стека,Иикрокоманда "Обмен, Стековый"управляет обменом значениями междуузлом 45 поля стеконых данных и двумя слонами первого блока 15 буфернойпамяти, причем одно иэ них являетсяисточником, а тугое - назначением,т.е. из слова-источника з узел 45поля стековых данных загружается.,значение, а исходное значение этогоузла сохраняется в слове-назначении.Разряды 0-3 микрокоманды задают адрес слова"источника, а разряды 4-7 слова-назначения, ДМная микрокоманда может использозатьая, например,для сменИ в узле 45 поля стеконыхданных дескрипторов стековых данных,хранимых в первом блоке 15 буфернойпамяти,Микрокоманда "Настройка. Стеко"вая" управляет заполнением узла 48настройки стека операндов значениемсогласно представленным на фиг.22вариантам, Разряды 1-3 микрокомандызадают номер варианта, разряд 0 - пронерку условия, является ли значение для данного регистра нулевым,При невыполнении условия происходит пропуск очередной микрокоманды.В вариантах (1-6),содержащих несколЬко источников значений,предусматривается занесение наименьшего иэ эадаваевых значений.Микрокоманда "Настройка. Длины" управляет обменом между узлом 48 настройки стекаоперандов и одним из регистров: 7 левого 8,драного опе-. ранда, 9 настройки, первым 10, вторым 11 общего назначения. Разряди.1-3 микрокоманды задают имя регистра, с которым происходит обмей, а разряд 0 задает направление обмена - из узла

Смотреть

Заявка

2851670, 14.12.1979

ОРДЕНА ЛЕНИНА ИНСТИТУТ КИБЕРНЕТИКИ АН УССР

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

МПК / Метки

МПК: G06F 15/00

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

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

Код ссылки

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

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