Устройство для выборки команд
Иллюстрации
Показать всеРеферат
Е 726533
ИЗОВРЕТЕ Н ИЯ
Союз Советски н
Социалистических
Ресттублик
К АВТОРСКОМУ СВИДЕТЕЛЬСТВУ (6I ) Дополнительное к авт. свил-ву (22) Заявлено 18.01.78(21) 2569665/18-.24 (5 ) ) Щ. ф(л с присоединением заявки,%
G06 F 13/06
Государственник комитет
СССР (23 ) П риори тет(53 ) Уд К 68 1.32 5, (088.8) до делам изобретений и открытий
Опубликовано05.04.80. Бюллетень J% 13
Дата опубликования описания 10,04.80
Ю. Х. Сахин, А. 3. Сугатов, А. H. Багаев и П. Н. Назаров (72) Авторы изобретения (7I) Заявитель (54) УСТРОЙСТВО ДЛЯ ВЫБОРКИ КОМАНД
Изобретение может быть использовано в области вычислительной техники, в частности в командном блоке центрального процессора, который осуществляет подготовку команд для выполнения их исполнительными устройствами.
Известно устройство для выборки команд 1), содержащее регистр состояния программы, счетчик адреса программы, регистр адреса программы, соединен- ные между собой соответствующим образом для выработки исполнительного адреса команд, который поступает с выхода регистра адреса программы на первый адресно выход устройства, два регистра команд, которые предназначены ;для приема командных слов иэ оперативной. памяти через информационный вход устройства и выдачи их на узел распаковки, который управляется счетчиком адресов команд и дешифратором распаковки, регистр смешения, регистры общего назначения, адресный сумматор, предназначенный для суммирования смешения с ба2 зой,.считанной из соответствующего pe= гистра общего назначения с целью формирования исполнительного адреса для команд считывания, записи или ветвления, .который с выхода адресного сумматора поступает на вход регистра состояния программы и второй адресный выход устройства.
Устройство из-за малой буферизации командных слов имеет ограниченные возможности .при работе с оперативной памятью, быстродействие которой меньше быстродействия центрального процессора. Кроме того, команды ветвления вызывают значительные перерывы в потоке дешифрируемых команд, связанные с вызовом из памяти первой команды новой ветви.
Увеличение степени буферизации командных слов за счет введения буферной памяти команд, а также многократного использования команд, ранее вызванных в буферную память, позволяет сформировать команднътй поток с плотностью,„одна «о-!
72653
l1 манда за такт процессора при работе с памятью меньшего быстродействия, чем
="процессор, и сократить. во многих слу=чаях перерывы в потоке команд, связанные с ветвлениями. 5
Наиболее близким по технической сущ1 ности к изобретению является устройство для выборки команд 2, содержащее буфер команд из восьми адресуемых
" "+рЖ йистреови,— два- допОлнительных адресуе -, 10 . мых регистра, которые используются при обработке команд условного. перехода, регистр верхней границы со схемой приращения, определяющий вместе с регистром верхней границы количество команд- 15 ных слоев в буфере команд и их расположение в оперативной памяти, регистр считывания со схемой приращения для считывания командных слов из буфера команд на регистр операций, узел выделе. ия коман- 20 ды,- -выделяющий команду из регистра операций для последующих ее дешифрации и выдачи в исполнительные устройства, адресный сумматор для формирования адреса обращения к оперативной памяти из базового адреса и смещения, причем базовый адрес поступает на сумматор из одного из шестнадцати регистров общего назначения, которые как и устрой-. ство для выборки команд входят в состав центрального процессора, а смещение задано в дешифрируемой команде, рабочий адресный регистр, вход которого сое "динен с -выходом адресного сумматора, а выход подключен к адресной шине уст- ЗБ ройства, к регистрам считывания верхней и нижйеи"границ "для "их установки
-" в ходе выполнения команд ветвления, а
" также к узлу анализа перехода на локальность в буфере команд, с помощью кото- 40 рере,бррейеттяитея ;" иииопится" ия-и регистрах буфера команд команда, на- которую передается управление командой ветвлеМйЗГ," к Яз" им входам ужа айвза пере хода на локальность в буфере команд 4 подключены выходы регистров верхней и нижней границ.
Введение буфера» коМатйЬ из во ьми
1 слов, а также указателей верхней и нижней границ, позволяет обеспечить при . ветвлениях быстрый -доступ к командам, расположеннымвнутрибуфера команд.
Однако перерывы в потоке дешифрируемых команд все же имеют место. Для команд условного перехода перерывы связаны с отменой условнц расшифрованных команд. При обработке команд без фИЬййог@ перехиода юить ьЖжтЬ йереры3 4 ва в дешифрации складывается из двух величин. Первая обусловлена временем формирования адреса перехода. Вторая зависит от условий, находится ли команда, на которую производится переход, в буфере команд. Если ответ положителен, команда считывается из буфера команд без обращения в оперативную память, если отрицателен — очередная команда считывается из оперативной памяти.
Для ветвлений на команды, расположенные внутри буфера команд, время формирования адреса перехода составляеч
75 Ь от полного времени выполнения команды безусловного перехода, что замедляет выполнение ветвления.
Целью изобретения является повышение, быстродействия за счет уменьшения времени выполнения ветвлений командами бузусловного перехода.
Поставленная цель достигается тем, что в известное устройство для выборки команд, содержащее блок буферных регист ров команд, информационный и адресный входы которого являются первым, и вторым входами устройства, выходы, блока буферных регяистров" команд соединены с группой входов первого коммутатора, выход которого соединен с входом регист» ра команд и через дешифратор длины команды с первым входом второго коммутатора, выкод которого соединен с управляющим входом первого коммутатора, выход регистра команд является первым выходом устройства и соединен через регистр индекса с первым входом пер вого сумматора адреса, второй вход и выход которого являются третьим входом и вторым выходом устройства соответственно, регистры верхней и нижней границы введены регистр базы текущей процедуры, второй сумматор адреса, узел анализа перехода на локальность в буфере команд. Вход регистра базы текущей процедуры является четвертым входом устройства, второй вход второго коммутатора и первые входы регистров верхней и нижней границ объединены и являются пятым входом устройства. Выход регистра верхней границы является третьим выходом устройства и соединен с первыми входами узла анализа перехода на локальность в буфере команд и- второго сумматора адреса, второй вход которого соеди нен с выходом регистра базы текущей процедуры. Выход второго сумматора адреса является четвертым выходом устройств», 72653
5
Выход регистра команды соединен с третьим входом второго коммутатора и вторыми входами регистров верхней и нижней границ. Выход регистра нижней границы соединен с TpBThHM входом узла 5 анализа перехода на локальность в буфере команд, выход которого является пятым выходом устройства и узел анализа перехода на локальность в буфере команд содержит два сумматора и элемент ИЛИ. Первые входы сумматоров соединены с первым и третьим входами узла, вторые входы. — со вторым входом узла, а выходы через элемент
ИЛИ вЂ” с выходом узла.
Структурная схема устройства приведена на чертеже.
Устройство содержит блок 1 буферных регистров, коммутатор 2, регистр 3 считывания, сумматоры 4,5 адреса, регистр 6 команды, регистр 7- индекса, регистр 8 нижней границы, регистр 9 верхней границы, регистр 10 базы текушей процедуры, дешифратор 11 длины команды, узел 12 анализа перехода на
25 локальность в буфере команд.
Узел 12 содержит сумматоры 13,14 и элемент HIM 15.
Устройство работает следующим обра:30 зом.
Программы пользователя и опера-, . ционйой системы представляют собой совокупность процедур, каждая из которых обладает свойством повторной входимости.
Доступ к командам и данным процедур
35 осушествляется через таблицы управляюшттх слоев — дескрипторов, каждый из которых описывает некоторую логическую область памяти произвольной длины. В
40 общем случае дескриптор содержит базу— адрес начала массива некоторой процедуры, и количество-величину, опредепяюшую размер массива.
43
Доступ к слову, расположенному внут ри массива, осушествляется путем индексирования соответствуюшего дескриптора°
Сушность этой операции состоит в следуюшем. Команды считывания, записи и ветв ления включают в себя информацию о рас50 положении дескриптора и смешение-индекс.
Из дескриптора выделяется база и суммируется с индексом.
Полученный таким образом исполнительный адрес идентифицирует расположение
5а требуемого слова в оперативной памяти.
Выполнению процедуры предшествуют анализ метки процедуры и занесение соответствующих дескрипторов в базовые регистры, чтобы обеспечить после дуюшим операциям считывания и записи доступ к параметрам процедуры, которые определены контекстом. Дескриптор ко-, мандного сегмента запускаемой процедуры выбирается из таблицы дескрипторов командных сегментов, а выделенная из него база поступает на регистр 10.
После первой команды выделяется из метки процедуры и поступает в регистры
3, 8 и 9.
Команды ветвления делятся на два типа — йепосредственные и динамические.
Непосредственные команды передают управление на другие команды текушей процедуры. Динамические команды ветвления передают управление на команды других процедур, что равнозначно входу в новую проц сдуру. Динамические команды ветвления встречаются в потоке команд: намного реже непосредственных команд и в описании не рассматриваются. В связи с этим команда непосредственного ветвления включает в себя код операции и индекс — смещение относительно базы текущей процедуры.
После входа в процедуру начинается подкачка командных слов из оперативной, памяти в буферные регистры команд бло ка 1. Содержимое регистра 9 суммирует ся с базой текущей процедуры на сумматоре: 5.
Выработанный таким образом адрес является адресом первсго командного слова по оперативной памяти. Три младш разряда регистра 9 определяют номер ре гистра блока 1, в который необходимо з, писать вызываемое командное слово. Пос ле выдачи запроса в оперативную память содержимое регистра 9 увеличивается н:единицу, и формируется адрес очередногс командного слова. Когда разница между содержимым регистра 9 и регистра 8 достигнет восьми, содержимое регистра начинает увеличиваться на единицу синхронно с содержимым рагистра 9, Вызванное иэ оперативной, памяти командное слово и номер регистра блока
1 поступают на соответствуюшие входы устройства. Дешифратор адреса регистра блока
1 выбирает регистр, в который необходимо произнести запись коматщного слова. После записи командного слова в блок 1 начи« нается формирование потока команд для . их дешифрации и выполнения, Все команды имеют длину кратную байту, и расположены в командном массиве вплотную дpyt аа другом Длина командттого слова . восемь байтов.
726533
Содержимое регистра 3 представляет собой шестиразрядное число. Три старших разряда обозначают номер регистра блока
1 в котором расположено начало коман ды, а три младших разряда — номер бай" та, " которого начинается команда. Коммутатор 2 выделяет четыре смежных байта, начиная с определяемого регистром 3, так что код операции команды оказывается сдвинутым влево. in
Большинство команд имеют длину от одного до четырех байтов, Команды с большей длиной обрабатываются за несколько тактов. Дешифратор 11 в зависимости от кода операции вырабатывает i5 длину команды, достигающую на вход приращения регистра 3, вследствие чего указатель увеличивается на соответствующую величину, переходя, таким образом, к выделению следующей коман- 20 дыв Разность между сОдержимыми регистр ров 3 и 9 определяет необходимость вы дачи- очередного запроса в оперативную память, создавая необходимый запас нерасшифрованных команд.
Информация с выхода коммутатора 2 поступает на регистр 6, с которого команды поступают на дешифрацию и выполнение.
При дешифрации команд считывания или записи исполнительный адрес формируется следующим образом.
Иэ регистра 6 поле, означающее номер базового регистра, поступает для считывания соответствующей . базы, кото- >5 рая затем поступает на сумматор 4. Поле регистра 6 означающее,смещение требуемой информации относительно базы, подается на регистр 7„c выхода которо40 го после необходимой задержки оно поступает на.сумматор 4.
В результате суммирования вырабатывается исполнительный адрес, который передается на соответствующий выход
45 устройства.
При дешифрации команды ветвления (в частности, команды непосредственного перехода) поле регистра 6, означающее индекс перехода, поступает в сумматоры
13, 14 узла 12, где проверяется условие ВГ ИП НГ. (Вà — значение регист ра 9, ИП вЂ” индекс перехода, Нà — значение регистра 8). Результаты анализа через элемент ИЛИ 15 перед аются насоот-55 ветствующий выход устройства.
Если неравенство выполняется, соот"" =в6тствуюшие шесть клладших разрядов индекса перехода с выхода регистра 6 поступают на регистр 3 и ориентируют его на начало ветви. Если неравенство не выполняется, регистры блока. 1 обнуляются, а индекс перехода передается с выхода регистра 6 дополнительно на регистры 8,9. Подкачка в регистры блока 1 начинается с командного слова, в котором находится первая команда ветви.
Таким образом, в предложенное устройство при выполнении безусловного перехода на команды, расположенные внутри блока буферных регистров команд, отсутствует этап формирования адреса перехода, а все ветвление сводится лишь к передаче соответствующих разрядов регистра команд на регистр считывания.
При этом время выполнения ветвления сокращается в два раза.
Устройство входит в состав центральных процессоров многопроцессорного вычислительного комплекса.
Формула изобретения
1. Устройство для выборки команд, содержащее блок буферных регистров команд, информационный и адресный входы которого являются первым и вторым входами устройства, выходы блока буферных регистров команд соединены с группой входов первого коммутатора, выход которого соединен с входом регистра команд и через дешифратор длины команды с первым входом второго коммутатора, выход которого соединен с управляю.щим входом первого коммутатора, выход регистра команд является первым выходом устройства и соединен через регистр индекса с первым входом первого сумматора адреса, второй вход и выход которого являются третьим входом и вторым вы.ходом устройства соответственно, регистры верхней и нижней границ, о т л ич а ю ш е е с я тем, что, с целью повышения быстродействия, в него введены регистр базы текущей процедуры, второй сумматор адреса, узел анализа перехода на локальность в буфере команд. Вход регистра базы текущей процедуры является четвертым входом устройства, второй вход второго коммутатора и первые входы регистров верхней и нижней границ обьединены и являются пятым входом устройства, выход регистра верхней границы является третьим выходом устройства и соединен с первыми входами узла анализа перехода на локальность в буфере команд и второго сумматора адреса, вто9 726533 10 рой вход которого соединен с выходом на локальность в буфере команд содеррегистра базы текущей процедуры, выход жит два сумматора и элемент ИЛИ причем, второго сумматора адреса является чет- первые входы первого и, второго сумматовертым выходом устройства, выход регист- ров соединены соответственно с первым ./ ра команды соединен с третьим входом > и третьим входами узла, вторые входы второго коммутатора и вторыми входами сумматоров соединены со вторым входом регистров верхней и нижней границ, вы- узла, выходы сумматоров через элементы ход регистра нижней границы соединен ИЛИ соединены с выходом узла. с третьим входом узла анализа перехода Источники информации, на локальность в буфере команд, выход >о принятые во внимание при экспертизе которого является пятым выходом уст- 1. Патент США ¹ 3959177, ройства. кл. 340-172.5, 1976 . 2. Устройство по п. 1, о т л и ч а ю- 2. Патент США № 3418638, щ е е с я тем, что узел анализа перехода кл. 340-172.5, 1968 (прототип).
Составитель А. Багаев
Редактор JI; Утехина Техред Н, Ковалева Корректор Ю, Макаренко
Заказ 675/43 Тираж 751 Подписное
ЦНИИПИ Государственного комитета СС(:Р по делам изобретений и открытий
113035, Москва, Ж-35 Раушская наб., д. 4/5
Филиал ППП Патент, r. Ужгород, ул. Проектная, 4