Устройство для распаковки команд

 

Изобретение относится к вычислительной технике и может быть использовано для распаковки командной информации в конвейере команд процессоров с сокращенным набором команд. Цель изобретения - расширение области применения за счет организации выполнения команд переходов и повышение быстродействия за счет сокращения потерь времени при выполнении команд переходов. Устройство содержит счетчик адресов команд, первый и второй буферные регистры команд, первый и второй мультиплексоры, блок управления, первый и второй элементы ИЛИ, первый и второй триггеры, регистр хранения следующего адреса, мультиплексор выбора адреса. Достижение цели обеспечивается путем реализации опережающего формирования одного из возможных адресов следующей команды при выполнении условных переходов . 10 фиг. И

СОЮЗ СОВЕТСКИХ

СОЦИАЛИСТИЧЕСКИХ

РЕСПУБЛИК (st)s G 06 F 9/00

ГОСУДАРСТВЕННЫЙ КОМИТЕТ

ПО ИЗОБРЕТЕНИЯМ И ОТКРЫТИЯМ

ПРИ ГКНТ СССР I

ОПИСАНИЕ ИЗОБРЕТЕНИЯ

К АВТОРСКОМУ СВИДЕТЕЛЬСТВУ

О

M (л) (ь (21) 4806337/24 (22) 26.03,90 (46) 30.12.91. Бюл. ¹ 48 (71) Научно-исследовательский институт многопроцессорных вычислительных систем при Таганрогском радиотехническом институте им, В.Д. Калмыкова (72) О,В. Катаев и А.С. Чирский (53) 681.325 (088.8) (56) Авторское свидетельство СССР № 1107123, кл. G 06 F 9/46, 1983.

Авторское свидетельство СССР

N. 1251075, кл. 6 06 F 9/00, 1985.

Авторское свидетельство СССР

N . 972507, кл. G 06 F 9/00, 1981. (54) УСТРОЙСТВО ДЛЛ РАСПАКОВКИ КОМАНД (57) Изобретение относится к вычислительной технике и может быть использовано для

Изобретение относится к вычислительной технике и может быть использовано для распаковки командной информации в конseAepe команд процессоров с сокращенным набором команд.

Известно устройство. содержащее блок регистров команд, блок управления выборкой команд и блок управления, причем информационный вход устройства соединен с информационным входом блока регистров команд, выход которого является информационным выходом устройства, первый выход блока управления соединен с управляющим входом блока регистров команд, первый выход блока управления выборкой команд является адресным выходом

„„5%„„17G2367 Al распаковки командной информации в конвейере команд процессоров с сокращенным набором команд. Цель изобретения — расширение области применения за счет организации выполнения команд переходов и повышение быстродействия за счет сокращения потерь времени при выполнении команд переходов. Устройство содержит счетчик адресов команд, первый и второй буферные регистры команд; первый и второй мультиплексоры, блок управления, первый и второй элементы ИЛИ, первый и второй триггеры, регистр хранения следующего адреса, мультиплексор выбора адреса.

Достижение цели обеспечивается путем реализации опережающего формирования одного из возможных адресов следующей команды при выполнении условных переходов. 10 фиг. устройства, мультиплексор, дешифратор и блок хранения команд перехода, содержащий регистр сдвига, элемент задержки, элемент Н Е,элемент ИЛИ, две группы элементов И, группу сумматоров по модулю два, две группы регистров, группу элементов ИЛИ, блок управления выборкой команд содержит элемент И, три элемента ИЛИ, сумматор по модулю два, параллельный накапливающий сумматор, два.мультиплексора и счетчик, а блок управления содержит группу элементов ИЛИ, группу элементов И, элемент ИЛИ и регистр сдвига, причем первые входы сумматора по модулю два групп ы блока хранения команд перехода соединены с выходами счетчика параллельного на1702367 капливающего сумматора, элемента И и первым выходом блока управления выборкой команд, входы адреса перехода устройства соединены с первыми входами элементов И первой группы, с входами элемен1а НЕ и элемента задержки, с информационными входами регистров первой и, второй групп блока хранения команд перехода, выход элемента ИЛИ и выходы элементов ИЛИ группы которого соединены с первыми группами информационных входов первого и второго мультиплексоров, с первыми управляющими входами первого и второго мультиплексоров и с первым входом первого элемента ИЛИ блока управления выборкой команд, вторые группы информационных входов первого и второго мультиплексоров которого соединены с группой входов адреса команд устройства, вторым входом первого элемента ИЛИ, с вторым и третьим управляющим входами первого и второго мультиплексоров блока управления выборкой команд, инверсный вход элемента И соединен с разрядным выходом регистра сдвига блока управления, выходы элементов ИЛИ группы которого соединены с первым выходом этого блока, первый и второй входы элемента ИЛИ, установочные входы регистра сдвига и первые входы элементов И группы которого соединены с установочным входом устройства, rlepBblA и второй Входы сумматора по модулю два блока управления выборкой команд соединены с первым и вторым входами элемента ИЛИ этого блока и с выходом мультиrlneKcopa, первый M второй axopt l которого соединены соответственно с информационным входом устройства и с вь1ходом дешифратора, группа входов которого соединена с группой выходов параллельного накапливающего сумматора блока управления выборкой команд, выход первого элемента ИЛИ которого соединен с первым входом третьего элемента ИЛИ этого блока и с входом запуска блока регистров команд, а в блоке управления выборкой команд выходы первого и второго мультиплексоров соединены соответственно с первым входом счетчика и входом параллельного накапливающего сумматора, разрядный выход которого соединен с вторыми входами счетчика и третьего элемента ИЛИ, выход которого соединен с прямым входом элемента И, выходы сумматора по модулю два и второго элемента ИЛИ соединены с третьей группой информационных входов второго мультиплексора, а в блоке управления вторые входы э låментов И группы соединены с соответствующими выходами регистра сдвига, выходы элементов И группы соединены с первыми входами элемента ИЛИ группы, вторые входы которого соединены с выходом элемента ИЛИ и с соответствующим установочным входом регистра сдвига, 5 а в блоке хранения команд перехода выходы регистра сдвига соединены с вторыми входами соответствующих элементов И первой группы, выходы которых соединены с первыми управляющими входами регистров

10 первой и второй групп, вторые управляющие входы последних соединены с выходами соответствующих элементов И второй группы и с соответс вующими входами элемента ИЛИ, выходы регистров первой груп15 пы соединены с вторыми входами соответствующих сумматоров по модулю два группы, выходы которых соединены с входами соответствующих элементов И второй группы, выход каждого регистра второй

20 группы соединен с соответствующими входами всех элементов ИЛИ группы, выход элемента HE: соединен с вторыми управляющими входами всех регистров первой группы, выход элемента задержки соединен

25 с входом регистра сдвига.

Кроме того, блок регистров команд содержит группу регистров, информационные входы которых соединены с информационным входом блока и с первыми выходами

30 предыдущих регистров группы, а первый управляющий вход каждого из регистров группы соединен с управляющим входом блока и с вторым выходом предыдущего регистра группы, вход запуска блока соединен с вто35 рыми управляющими входами регистров группы, а выход блока соединен с выходами первого регистра группы, выходами первых тридцати двух разрядов и BTopbIM разрядом выходом второго регистра группы, 40 Известно также устройство, содержащее первый и второй буферные регистры команд, первый, второй и третий мультплекСоры, счетчик адресов команд, D-триггер полуслова, первый и второй 0-триггеры

45 формата, 0-триггер блокировки, первый,. второй и третий элементы ИЛИ, с первого по девятый элементы И, первый и второй элементьч НЕ и элемент НЕ-И, причем выходы первого, второго и третьего мультиплек50 соров являются выходами первого, второго и третьего полуслов устройства. B устройстве имеются также выход признака типа адресации команд устройства, выход адреса команды устройства, выход запрета выдачи

55 команды устройства, выход запроса следующего слова команды. Информационный вход буферного регистра команд являешься входом команд устройства. В устройстве имеются также первый синхровход устроиства, вход разрешения приема команды ус1702367 второго буферного регистра 6 команд, первый информационный выход которого является выходом 35 команды устройства. первым адресным выходом 37 которого является первый выход счетчика 7 адресов, который своим входом подключен к выходу мультиплексора 9 выбора адреса„который первым информационным входом подключен к выходу 36 адреса команды перехода второго буферного регистра 6, вторым информационным входом подключен к адресному входу 14 устройства, управляющим входом подключен к седьмому выходу 28 блока 2 управления, шестой вход 27 которого подключен к второму управляющему входу счетчика 7 адресов, подключенного первым 37 и вторым 38 выходами к первому и второму входам регистра 10 хранения следующего адреса, выход которого является вторым адресным выходом 39 устройства, а управляющий вход регистра 10 хранения соединен с восьмым выходом 29 блока 2 управления, девятый выход 30 которого соединен с входом установки первого триггера 11, выход которого является выходом 40 признака готовности команды устройства и подключен к восьмому входу блока 2 управления, вход сброса первого триггера 11 соединен с выходом первого элемента ИЛИ, первый вход которого подключен к одиннадцатому выходу 32 блока управления, второй вход подключен к входу 19 сброса признака готовности команды устройства, третий вход соединен с входом 17 начальной установки устройства, который соединен с вторым входом второго элемента ИЛИ

8, первый вход которого подключен к десятому выходу 31 блока 2 управления, выход второго элемента ИЛИ 8 соединен с входом сброса второго триггера 12, вход установки которого подключен к входу 18 сигнала невыполнения команды перехода выход второго триггера является выходом 41 признака невыполнения команды перехода, к которому подключен седьмой вход блока

2 управления, шестой и девятый входы которого соединены соответственно с выходом 34 признака команды перехода второго буферного регистра 6 и вторым выходом 38 счетчика 7 адресов команд, а двенадцатый выход 33 является выходом запроса командной информации устройства.

Первый буферный регистр 1 служит для приема и временного хранения командной информации.

Блок 2 управления предназначен для управления работой устройства.

Первый мультиплексор 3 служит для организации пересылки командной информации в старшую половину второго буферного

55 регистра 6 из старшей (или из младшеи) половины первого буферного регистра 1.

Второй мультиплексор 4 служит для организации пересылки командной информации в младшую половину второго буферного регистра 6 из младшей (или из старщей) половины первого буферного регистра 1, Первый элемент ИЛИ 5 предназначен для объединения сигналов, сбрасывающих в нулевое состояние первый триггер 11.

Второй буферный регистр 6 служит для формирования и временного хранения команды.

Счетчик 7 адресов команд служит для адресации команд в оперативной памяти.

Второй элемент ИЛИ 8 предназначен для объединения сигналов, сбрасывающих в нулевое состояние второй триггер 12.

Мультиплексор 9 выбора адреса служит для организации пересылки адресной информации из поля адреса второго буферного регистра 6 команд или с входа 14 адресной информации устройства.

Регистр 10 хранения следующего адреса предназначен для временного хранения адреса команды, следующей за командой, сформированной во втором буферном регистре 6 команд.

Первый триггер 11 служит для запоминания признака готовности команды, находящейся во втором буферном регистре 6 команд, второй триггер 12 — для запоминания признака невыполнения команды перехода.

Блок 2 управления может быть реализован в виде микропрограммного автомата в соответствии с алгоритмом, приведенным на фиг.2 и 3.

Блок 2 управления (фиг,4) содержит счетные триггеры 421 — 424, дешифратор 43. четырехканальный распределитель 44 импульсов, блок 45 формирования сигналов возбуждения памяти автомата и блок 46 формирования управляющих сигналов.

Счетные триггеры 421 — 424 выполняют функции памяти автомата.

Дешифратор 43 декодирует состояния атомата а1.

Распределитель 44 импульсов формирует четыре синхросерии, используемые для синхронизации работы блока 2 управления, Блок 45 формирования сигналов возбуждения памяти автомата обеспечивает выполнение переходов памяти автомата из состояния а в состояние а соответствии с алгоритмом, приведенным на фиг.2 и 3. Этот блок строится в соответствии со следующими логическими выражениями:

T1 = в Х1 в Х1кв х1Х2 м бзХ4ven v

" а5Х6 ввУа1 ввХ1Х2 вах1Х2 авХ1:

T2 = s>X1X2vstX1X2X3i sqveqvsg s ааХ1Х2

1гввх1Х2ХЗ /ввХ1Х2;

1702367

13 = аа«4>7И> >Х«Х2ХЗ;

Т4 = а» адХ1Х2Х7 ваХ1Х2Х4Х7 аах« "ввХ1Х2

Ь apX«ea»X I X2, Блок 46 формирования управляющих сигналов форМирует управляющие сигналы 5 в соответствии со следующими логическими выражениями:

УЗ Ú6-а>X1X2X3> àa аахб;

23 = Y4 = азХ4;

24 = Y4"Y5 «2 =аз авХ>Х:>:,„

25 = азХ4 as;

26 = Y3» Y6>,V6> Y«1 = >X«Y2X3>в в.."6»г

> а4Х5ваах! Х2Х4Х7;

Выход

Выход

Выход

Выход

Выход

У« Y2>V««> = в,х174>Х1Х2> авх1Х2>ввх! Х2»"а»Х IX2X7;

28 = Yl> Y2 = а>,Х1> а>Х1Х2авх1Х2> гах«Х>;

Выход

Выход

29= Y9=87;

ЗО=-У9=а7;

31 =- Y3 = а1Х1Х2ХЗ а2, 32 -- 2 Y«3 = ;»0

Выход Выход

Выход

Выход а>Х1Х2/аах1Х2> аа>Х1Х". а>Х1:. а У1 эаХ1;

2> :, Выход 33 =- Y3» Y6 — — а х«х2хз a;pa х6.

PaccMorpI4M работу устройства a I >римере распаковки пос»«едоватал»,наст«коОсновные принципь» работы устройства заключаются в следующем, В устройстве используются командь» 30 только двух форматов, причем разрядность команд короткого формата вдвое меньше

РазРЯДнасти команД ДлиннОгО фОР«а«а» а, КО манды перехода имею> только длинныл формат. Форматы команд привед .-.:нь«на 35 фи r.5.

Командная информация выбирается ; ..-. памяти, ширина которой равна разрядности команды длинного формата.

Для увеличения производительности 40 при выполнении команд переходов используется механизм предсказания г«ра«»иль««>ого адреса ветвления, основанный на следующих фактах; свь«ше 50 Д условных переходов выполняется; переходь«го с:ет- 45 чику выполняются в и-1 слу >аях из «I безусловные переходы выполняются 3сег;«а«, Поэгому в случае «1оявле««» я в патоке команд команды перехода следующая,«аманда всегда выбирается по адресу ««е;>входа. 50

Если на этапе выполнения команды Обнаруживается, что переход не должен выполняться, тогда отменяется выполнение команд, выбранных после команды перехода, и в счетчик адресов команд загру>каетс«1 55 адрес команды, следующеи I«> г«оряд«<у за командой перехода. манд, расположенных в памяти, как показано на фиг.6, «Зременные диаграммы сигналов 22-33 блока 2 управления и сигналов логических условий 15 (Х1), 20(Х5), 21(X6), 34(X7), 38(X4), 40(ХЗ), 41(Х2) приведены на фиг. 7-10 и соответствуют двенадцати тактам распаковки последовател ьности команд, изобра>кен ной на фиг,6. Временные диаграммы, приведенные на фиг.9, и 1«0, соответствуют выполнению и невыполнени«а команды перехода, размещенной по адресу А+4. На временных диаграммах приведены также сигналы » 8, l 9, последовательность состояний микропрограммногоа автомата (авт,) и состояние сче чика 7 адресов командной информации (ОТАК). При иэображе««ии временных диаграмм были приняты следующие допущения; конвейер команд состолт из двух ступеней

-- устройства для распаковки команд и устройства исполнения команд; каждая из выполняемых команд требует двух тактов для исполнения:, неопределенная информация помечается символами ХХ. ,Для облегчения восприятия временных диаграмм сигналы запроса командной информации (выход 33) по«печень«адресами запрашиваемой информации, При атом следует учитывать то обстоятельство, что младший разряд 38 счетчика 7 не поступает в память K0MBI!äL«Î«4 информации, Перед началом раба-ы по с>лгналу начальной установки, подаваемому на вход 17 ус-ройства, приводится в исходное состояние а блок 2 управления и сбрасываются в ноль триггеры 11 и 12, Затем на вход 14 подае«ся начальный адрес А(четный) выполняемо»л программы, а на вход 15 — активный пате«-«циал запуска устройства. Блок управления проверяет наличие этого сигнала (условная вершина Х1) и переходит в состопь«ие а (такт 1-й), выполняя операторную вершину (У1), При этом сигнал на выходе 28 блока управления разрешает прохождение начального адреса А через муль.>«4«:3«åêcop 9 выбора адреса на вход сче">чика / адресов команд а сигнал записи (выход 27 блока управления) производит запись на «ального адреса в счетчлк. После анализа условньо;: вершин Х1 (проверка на,:«и-«ия сигнала запуска), Х2 (проверка признака невыполнения команды перехода) и

ХЗ j«Ã p:>33«.>êа прлзнака готовности команд) блок.управленля пеоеходит в состояние аз (выполняетсв операторная вершина Y3).

Прл эта;-. блок 2 управления (такт 2-й) выда:, т сигналы запроса «(Ома««дной информации (вь«ход 3)., а затсм заг«исывает Гlолученное слово 3 первый буферны>л регистр 1 г«о сигнал. :;:, >«114ñè (выход 22) и увеличивает содер1702367 которого соединена с группой входов фор- 40

50 тройства, вход признака типа команд устройства, вход адреса команд устройства и второй синхровход устройства.

Однако известные устройства имеют большие потери времени при выполнении команд переходов.

Наиболее близким к предлагаемому по технической сущности является устройство, содержащее счетчик адресов командной информации, регистр адреса памяти, первый и второй буферные регистры команд,-ре.гистр адреса общих регистров, блок управления выборкой команд, выход обращения которого соединен с первым входом регистра адреса памяти и входом счетчика адресов командной информации, выход которого соединен с первым выходом устройства, первый и второй выходы смещения первого буферного регистра команд соединены с вторым выходом устройства, первый вход которого соединен с входом второго буферного регистра команд, первый, второй и третий адресные входы и выход индекса первого буферного регистра команд соединены соответственно с первым, вторым и третьим адресными входами и входом индекса регистра адреса общих регистров, выход которого соединен с третьим выходом устройства, четвертый выход которого соединен с выходом команды первого буферного регистра команд. Кроме того, устройство содержит блок управления, элемент ИЛИ, элемент И, первый, второй и третий мультиплексоры, первые, вторые, третьи и четвертые информационные входы которых соединены соответственно с первым, вторым, третьим и четвертым информационными входами второго буферного регистра команд, группа выходов формата команды мата команды блока управления, первый, второй и третий управляющие выходы которого соединены соответственно с управляющими входами первого, второго и третьего мультиплексоров, выходы которых соединены соответственно с первым, вторым и третьим информационными входами первого буферного регистра команд, группы разрешающих входов которого соединены с группой разрешающих выходов блока управления и группой входов элемента ИЛИ, выход которого соединен с первым входом элемента И, выход которого соединен с пятым выходом устройства, второй вход элемента И соединен с вторым выходом блока управления выборкой команд, первый вход которого соединен с информационным выходом блока управления, управляющий вход которого соединен с управляющим выходом блока управления выборкой команд, 5

35 группа выходов увеличения значения блока управления соединена соответственно с группой входов счетчика полуслов, первый и второй выходы которого соединены соответственно с первым и вторым разрешаю-, щими входами блока управления, а третий выход счетчика полуслов соединен с третьим разрешающим входом блока управления и с разрешающим входом блока управления выборкой команд, вход сброса которого и вход сброса счетчика полуслов соединены с вторым входом устройства, третий вход которого соединен с входами счета счетчика полуслов и блока управления выборкой команд.

Однако с помощью такого устройства невозможно формирование адреса перехода.

Цель изобретения — расширение области применения за счет организации выполнения команд переходов и повышение быстродействия путем сокращения потерь времени при выполнении команд переходов при предсказании правильного адреса ветвления, Поставленная цель достигается тем, что в устройство, содержащее счетчик адресов команд, первый и второй мультиплексоры, первый и второй буферные регистры команд, причем вход командной информации устройства подключен к информационному входу первого буферного регистра команд, первый информационный выход которого подключен к первому информационному входу первого мультиплексора и второму информационному входу второго мультиплексора, второй информационный выход первого буферного регистра подключен к второму информационному входу первого мультиплексора и к первому информационному входу второго мультиплексора, выходы первого и второго мультиплексора, выходы первого и второго мультиплексоров подключены соответственно к первому и второму информационным входам второго буферного регистра команд, первый информационный выход которого является выходом команды устройства, первым адресным выходом которого является первый выход счетчика адресов команд, дополнительно введены блок управления, первый и второй элементы ИЛИ, первый и второй триггеры, . регистр хранения следующего адреса и мульти-, плексор выбора адреса, который первым информационным входом подключен к второму информационному выходу второго буферного регистра, вторым информационным входом подключен к адресному входу устройства, управляющим входом подключен к седьмому выходу блока управления, а буферного регистра, вторым информационным входом подключен к адресному входу устройства, управляющим входом подключен к седьмому выходу блока управления, а выходом соединен с входом счетчика адресов, подключенного первым и вгорым управляющими входами соответственно к пятому и шестому выходам блока yr равления, первым и вторым выходами к первому и второму входам регистра хранения следующего адреса, выход которого является вторым адресным выходом устройства, а управляющий вход регистра хранения следующего адреса соединен с восьмым выходом блока управления, девятый выход которого соединен с входом установки первого триггера, выход которого senseт я признаком готовности команды устройства и подключен к восьмому в ду блока управления, вход сброса первого триггера соединен

:с выходом первого элемента ИЛИ, первый вход которого подключен к одиннадцатому выходу блока управления, второй вход подключен к входу сброса признака готовности команды устройства, третий вход соединен с входом начальной установки устройства, который соединен с вторым входом второго элемента ИЛИ, первый вход которо".-о подключен к десятому выходу блока управления, выход второго элемента ИХ1И соединен с входом сброса второго триггера, вход установки которого подключен к входу сигнала невыполнения команды перехода, выход второго триггера является признаком невыполнения команды перехода устройства, к которому подключен седьмой входблокауправления, u;э"..стой и девятый входы которого соединень1 соответственно с. выходом признака команды перехода второго буферного регистра и вторым выходом счетчика адресов команд, первый выход блока управления соединен с входом записи первого буферного регистра команд, второй выход соединен с управляющими входами первого и второго мультиплексоров, третий и четвертый выходы соединены соответственно с первым и вторым вхо(дами записи второго буферного регистра команд, первый и второй входы соединены соответственно с первым и вторым выходами признаков форма га команды первого буферного регистра, третий, четвертый и пятый входы являются соответственно входами запуска, синхронизации и начальной установки устройства, а двенадцатый выход подкг ючен к выходу запроса командной информации устройства.

На фиг.1 представлена схема предлагаемого устройства; на фиг.2 и 3 — алгоритм работы блока управления, на фиг,4 — схема блока управления; на фиг.5 — форматы команд; на фиг.6 — пример расположения команд в памяти; на фиг, 7 — 10 — временные диаграммы, поясняющие работу устройства

Устройство для распаковки команд (фиг.1) содержит первый буферный регистр

1 команд, блок 2 управления, первый 3 и второй 4 мультиплексоры, первый элемент

ИЛИ 5, второй буферный регистр 6 команд, счетчик 7 адресов команд, второй элемент

ИЛИ 8, мультиплексор 9 выбора адреса, регистр 10 хранения следующего адреса, первый 11 и второй 12 триггеры, вход 13 командной информации, адресный вход 14„ вход "-5 запуска, вход 16 синхронизации, вход 17 начальной установки, вход 18 сигнала невыполнения команды перехода. вход

19 сброса признака готовности команды, первый 20 и второй 21 выходы признаков формата команды, rpynny выходов 22-33 блока управления, выход 34 признака команды перехода, выход 35 команды, выход

36 адреса команды перехода, первый адресный выход 37, выход 38 младшего разряда сгетчика адресов. второй адресный выход

39, выход 40 признака готовности команды, вь.ход 41 признака невыполнения команды перехода, причем первый выход 22 блока управления 2 соединен с входом записи первого буферного регистра 1 команд, второй выход 23 — с управляющими входами первого 3 и второго 4 мультиплексоров, третий 24 и четвертый 25 выходы — соответственно с первым и вторым входами записи второго буферного регистра команд 6, пятый выход 26 — с первым управляющим sxoдом счетчика адресов 7, первый и второй входы блока управления 2 — соответственно с первым 20 и вторым 21 выходами признаков формата команды первого буферного регистра 1, третий четвертый и пятый входы являются соответственно входами 15 запуска, 16 синхронизации и 17 начальной установки устройства, вход 13 командной информации которого подключен к информационному входу первого буферного регистра 1, первый информационный выход

xoYoparo подключен к первому информационному входу первого мультиплексора 3 и вторсму информационному входу второго мультиплексора 4„второй информационный выход первого буферного регистра 1 подключен к второму информационному входу первого мультиплсксора 3 и первому информационному входу второго мультиплексора

4, вьходы первого 3 и второго 4 мультиплексоров подключены соответственно к первому и второму информационным входам

1702367

>кимое счетчика адресов на единицу (выход

26). Содержимое счетчика .".тановится равным А+1. Анализируя, равен ли единице младший разряд (выход 38) счетчика адресов (условная вершина Х4), блок управления переходит в состояние а .(такт З-й), организуя прямую передачу командной информации из первого буферного регистра 1 во второй буферный регистр 6 через первые входы мультиплексоров 3 и 4 (выполняется операторная вершина Y4). При этом блок управления формирует соответствующие управляющие сигналы: управлениямультиплексорами (выход 23), записи в старшую(выход 24) и младшую (выход 25) половины второго буферного регистра 6. Анализ выхода 20 признака формата команды (условная вершина Х5) показывает, что первая команда имеет короткий формат и, следовательно, готова для передачи из второго буферного регистра для дальнейшей обработки. Блок управления переходит в состояние а7, а затем в состояние аз. При переходе из состояния а7 в состояние ав выполняется операторная вершина У9, При этом содержимое счетчика 7 адресов (адрес первого полуслова второй команды А+1) записывается в регистр хранения следующего адреса сигналом с выхода 29 и сигналом с выхода

30 устанавливается в "1" триггер 11 — признак готовности команды к дальнейшей обработке, Проверка условных вершин Х1 (наличие сигнала запуска), Х2 (признак невыполнения команды), Х7 {признак команды перехода — выход 34 второго буферного регистра 6) и Х4 (проверка, равен ли единице младший разряд счетчика 7) приводит к переходу в состояние Bg (выполняется операторная вершина V11), При этом содержимое счетчика адреса увеличивается на единицу по сигналу, формируемому на выходе 26 блока управления, и становится равным А+2.

Если следующая ступень конвейера команд готова к обработке команды, находящейся во втором буферном регистре 6, и признак готовности команды (выход 40 устройства) равен единице, то происходит перезапись информации из второго буферного регистра 6 и регистра 10 хранения в соответствующие регистры следующей ступени конвейера. Одновременко следующая ступень конвейера сбрасывает признак готовности команды (триггер 11) в

"0" по входу 19 устройства (такт З-й), сигнализируя блоку управления о том, что можно продол>кать распаковку командной информации, Признак готовности команды проверяется блоком 2 управления в условных вершинах Х2.

После проверки условных вершик Х1 (наличие сигнала запуска), Х2 (признак невыполнения команды перехода) и ХЗ (признак готовности команды) блок управления

5 переходит в состояние а5(выполняется операторная вершина Y12). При этом осуществляется пересылка первой половины второй команды из младшей половины первого буферного регистра 1 в старшую половину вто10 рого буферного регистра 6 по единичкому сигналу управления мультиплексорами 3 и 4 (выход 23) и запись в старшую половину второго буферного регистра 6 (выход 24), Анализ выхода 21 признака формата коман15 ды (условная вершина Х6) указывает на то, что в первый буферный регистр 6 была записана старшая часть команды длинного формата и поэтому надо. выбрать следующее слово командной информации, в котором

20 содержится вторая половина этой команды, Блок управления переходит в состояние ag (выполняется операторная вершина У6).

При этом формируются сигналы (такт

4-й) запроса командной информации (выход

25 33), записи слова командной информации, полученной из ячейки с адресом А+2, в первый буферный регистр 1 (выход 22) и увеличения содержимого счетчика адресов команд на единицу (выход 26). Содержимое

30 счетчика 7 адресов после выполнения операторной вершины У6 равно А+3. Затем блок управления (такт 5-й) переходит в состояние а7 {выполняется операторная вершина Y7). Управляющие сигналы этой

35 вершины осуществляют запись содержимо- го старшей половины первого буферного регистра в младшую половину второго буферного регистра (единичный сигнал на выходе 23 и сигнал с выхода 25 блока управ40 ления). После оперативной вершины У7 выполняется операторная вершина У9 (выполняется переход в состояние аз), во время выполнения которой происходит запись содержимого счетчика 7 адреса в ре45 гистр 10 храненния следующего адреса (сигналом с выхода 29) и установка признака готовности команды в "1" {сигналом с выхода 30), Анализ условных вершин Х1, Х2, Х7, Х4 приводит к выполнению операторной

50 вершины У11 (переход в состояние ag), сигнал которой (выход 26) увеличивает содержимое счетчика адресов на единицу.

Содер>кимое счетчика адресов становится равным А+4. После того как будет сброшен

55 признак готовности команды от следующей ступени конвейера команд, выполняется операторная вершина У12 (переход в состояние а ), сигналы которой записывают содержимое младшей половины первого буферного регистра в старшую половину

1702367

40 второго буферного регистра (выходы 23 и 24 блока управления). Анализ выхода 21 признака формата команды (условная вершина

Х6) показывает, что распаковываемая команда имеет короткий формат. Блок управления переходит в состояние as и выполняет операторную вершину У9 (запись в регистр

10 хранения адреса А+4 и установка признака готовности команды). После этого в результате анализа условных вершин Х1, Х2, Х7 и Х4 микропрограммный автомат блока управления переходит в состояние а1(без выполнения операторных вершин), к анализу условных вершин Х1, Х2 и ХЗ. В такте 7-м признак готовности команды ХЗ (выход 40) равен единице — продолжает выполняться предыдущая команда, поэтому нет перехода в состояние аз. Если триггер 11 признака готовности команд сброшен в "О", (выход

40), блок управления выполняет операторную вершину УЗ (такт 8-й), формирует сигналы запроса командной информации (выход

33), записи в первый буферный регистр {выход 22) и увеличения содержимого счетчика адресов команд (выход 26).

Содержимое счетчика адресов команд становится равным А+5, а очередное слово командной информации, выбранное из ячейки памяти с адресом А+4, записывается в первый буферный регистр 1. Анализ услов. ной вершины Х4 (четный ли адрес в счетчике адресов) приводит к выполнению операторной вершины У4 (переход в состояние а4), Сигналы, формируемые блоком управления во время выполнения операторной вершины V4 (выходы 23, 24 и 25 блока управления), осуществляют прямую пересылку содержимого первого буферного регистра 1 во второй буферный регистр 6. Анализ выхода 20 ггризнака формата команд(условная вершина Х5) показывает, что в первом буферном регистре 1 команд, а следовательно, и.во втором буферном регистре) находится команда длинного формата. Блок управления выполняет операторную вершину YB (переход в состояние а7), в которой наращивается на единицу содержимое счетчика адресов команд (сигнал с выхода 26 блока управления). В результате содержимое счетчика адресов становится равным А+6, адресуя следующую команду. После выполнения операторной вершины У9 (переход в состояние ав) блок управления анализирует условные вершины Х1, Х2 и Х7. Анализ условной вершины Х7 (проверка признака команды условного перехода — выход 34 второго буферного регистра 6) приводит к выполнениюоператорной вершины Y10{neреход в состояние а1), так как во втором буферном регистре находится команда перехода, Во время выполнения операторной вершины У10 по сигналу с выхода 27 блока управления в счетчик 7 адресов с выхода 36 второго буферного регистра 6 заносится адрес перехода А+9. После того, как по входу

19 устройства будет сброшен в ноль признак готовности команды, блок 2 управления выполняет операторную вершину YÇ (переход s состояние аз): запрашивает слово командной информации по адресу А+8 (младший разряд адреса памяти команд соответствует не младшему разряду счетчика

7 адресов команд, а следующему разряду), записывает зто слово в первый буферный регистр 1 и увеличивается содержимое счетчика адресов команд нэ единицу (содержимое его становится равным А+10). Анализ младшего разряда счетчика адресов (условная вершина Х4) показывает, что начало команды, на которую был совершен переход (в нашем случае вся команда), находится во второй половине слова и, следовательно, в младшей половине первого буферного регистра. Блок 2 управления осуществляет запись этой информации в старшую половину второго буферного регистра 6, формируя соответствующие сигналы (выходы 23 и 24 блока управления) при выполнении операторной вершины У5 {переход в состояние as), Анализ формата команды (условная вершина Х6 проверяет выход 21 признака формата команды) показывает, что распаковываемая команда имеет коротких формат, и блок управления переходит к выполнению операторной вершины У9 и так далее.

Рассмотрим, как работает устройство в случае невыполнения команды перехода (фиг.10). Этот факт определяется на этапе выполнения анализа условия перехода в завершающей фазе исполнения команды. При этом сигнал от блока микропрограммного управления, поданный на вход 18 устройства, устанавливает в" 1" триггер 12 признака невыполнения команды перехода (такт

11-й). Блок управления анализирует этот сигнал в одной из условных вершин Х2 (в зависимости от того, какую ветвь алгоритма обрабатывает микропрограммный автомат блока управления) и производит перезапись адреса А+6 команды, следующей за командой перехода, в счетчик 7 адресов (выполняется операторная вершина Y2). В данном конкретном случае анализ Х2 выполняется при переходе микропрограммного автомата из состояния as в состояние ар. Адрес А+6 поступает на вход,14 устройства из регистра хранения следующего адреса той ступени конвейера, на которой производится выполнение команд. Одновременно с формированием сигналов (выходы 27 и 28 блока

1702367

18 управления), обеспечивающих перезапись содержимого счетчика адресов, выполняется сброс триггера 11 (с выхода 32 блока управления). Это необходимо сделать, так как команды, выбранные начиная с адреса перехода, не должны выполняться (неправильно выбрана ветвь программы). Действия блока управления при переходе иэ состояния а2,в состояние аз . запрос командной информации по адресу А+6, запись этой информации в первый буферный регистр, наращивание счетчика адресов на единицу. Кроме этих действий, в операторной вершине УЗ всегда выполняется сброс триггера 12 признака невыполнения команды перехода сигналом с выхода 31 блока управления. Дальнейшая работа устройства аналогична описанной выше.

Окончание работы устройства выполняется по команде "Останов", которая убирает активный потенциал запуска устройгтва.

Анализ наличия сигнала запуска в одной из условных вершин Х1 приводит микропрограммный автомат блока управления к выполнению операторной вершины У13 и переходу блока управления в исходное состояние а (" Конец" ). При выполнении операторной вершины У13 сигнал с выхода 32 блока управления сбрасывает триггер 11 признака готовности команды в нулевое состояниее.

Использование в устройстве для распаковки команд блока управления, первого и второго элементов ИЛИ, первого и второго триггеров, регистра хранения следующего адреса и мультиплексора выбора адреса позволяет по сравнению с прототипом расширить функциональные возможности за счет выполнения команд переходов на этапе распаковки и повысить быстродействие, Допустим, каждая команда переходит и этапов формирования и исполнения. На каждом этапе команда обрабатывается за один такт. Если потребуется организовать в программе К раз возврат, то есть цикл с использованием команды типа перехода по счетчику, то при применении устройствапрототипа, в котором отменяется совмещение в случае команды перехода, потери на отмене совмещения будут составлять и k тактов. В предлагаемом устройстве потери будут в и тактов. Таки образом, потери в предлагаемом устройстве сокращаются в

k раз, Формула изобретения

Устройство для распаковки команд, содержащее счетчик адресов команд, первый и второй мультиплексоры, первый и второй буферные регистры команд, причем вход команды устройства подключен к информэци5

20

25 сокращения потерь времени при выполне30

55 онному входу первого буферного регистра команд, первый информационный выход которого подключен к первому информационному входу первого мультиплексора, второй информационный выход первого буферного регистра подключен к второму информационному входу первого мультиплексора и к первому информационному входу второго мультиплексора, первый информационный выход первого буферного регистра команд соединен с вторым информационным входом второго мультиплексора, выходы первого и второго мультиплексоров. подключены соответственно к первому и второму информационнымм входам второго буферного регистра команд, первый информационный выход которого является выходом команды устройства, первый информационный выход счетчика адресов команд подключен к первому адресному выходу устройства, о т л и ч а ю щ е е с я тем, что, с целью расширения области применения эа счет организации выполнения команд переходов и повышения быстродействия за счет нии команд переходов, устройство дополнительно содержит блок управления, первый и второй элементы ИЛИ, первый и второй триггеры, регистр хранения следующего адреса и мультиплексор выбора адреса, причем второй информационный выход второго буферного регистра соединен с первым информационным входом мультиплексора выбора адреса, второй информационный вход которого подключен к входу адреса устройства, выход мультиплексора выбора адреса соединен с информационным входом счетчика адресов, первый и второй информационные выходы которого подключены соответственно к первому и второму информационным входам регистра хранения следующего адреса, выход которого является вторым адресным выходом устройства, выход первого триггера является признаком готовности команды устройства, вход установки в "0" первого триггера соединен с выходом первого элемента ИЛИ, первый вход которого подключен к входу признака сброса готовности команды устройства, вход начальной установки устройства соединен с вторым входом первого элемента

ИЛИ и с первым входом второго элемента

ИЛИ, выход второго элемента ИЛИ соединен с входом установки в "0" второго триггера, вход установки в "1" которого подключен к входу признака невыполнения команды перехода устройства. выход второго триггера является выходом признака невыполнения команды перехода устройства. выход первого разряда поля честного уп20 равления блока управления соединен с входом записи первого буферного регистра команд, выход второго разряда поля мест-,, ного управления блока управления соединен с управляющими входами первого и 6 второго мультиплексоров, выходы третьего и четвертого разрядов поля местного управления блока ynpàâëeíèÿ соединены соот-!

I ветственно с первым и вторым входами записи второго буферного регистра команд, 10 выход пятого разряда поля местного управления блока управления соединен с входом записи-счета счетчика адресов команд, первый и второй входы условий блока управления соединены соответственно с выходами 15 первого и второго признаков формата команды первого буферного регистра, входы запуска, синхронизации и начальной установки блока управления соединены соответственно с входами запуска, 20

1синхронизации и начальной установки устройства, выход поля внешнего управления блока управления подключен к выходу запроса командной информации устройства, с третьего по шестой входы условий блока управления соединены соответственно с выходом признака команды перехода второго буферного регистра команды, с выходом второго триггера, с выходом первого триггера и с вторым информационным выходом счетчика, выходы с шестого по одиннадцатый разрядов поля местного управления блока управления соединены соответственно с входом синхронизации счетчика адресов команд, с управляющим входом мультиплексора выбора адреса, с входом записи регистраадреса, с входом установки в "Il" первого триггера, с вторым входом второго элемента ИЛИ, с третьим входом первого элемента ИЛИ.

1702367

1702367

Фиг.У l702367

/ У

i..

О у/, т

I ( (, / (/ 1 ,/,,, c ! ! :/ 7 ,1;Х\ ! а .1, /

1 !

1 /

1 I

/

1 !

J/

) I !

I (,:i

) ) 1

М/

1.

Ф1/ 8. M Г

= T

"p

//!

ы

27 (Д6.1

1, I

/) ,1,у

/7

1 г .4

1, ;/

j !

1 /

Р,), 1702367 — сртлкий popMem юм

rpgaee с лоЖ= б5 1б

Фио 7 р < rrw ю. о" Я.ы, ФМ юсЬ ар о,чо рар олю, <-»" о"

Ж эяыы

$DOQPfO

/фри l ао ao +ела»

1702367

7сус Я

7о:сг pó

Фи8. N

Редактор Л,Веселовская Техред М.Моргентал Корректор М.Демчик

Производственно-издательский комбинат "Патент", г. Ужгород, ул.Гагарина, 101

Заказ 4543 Тираж Подписное

ВНИИПИ Государственного комитета по изобретениям и открытиям при ГКНТ СССР

113035, Москва. Ж-35, Раушская наб., 4/5

Устройство для распаковки команд Устройство для распаковки команд Устройство для распаковки команд Устройство для распаковки команд Устройство для распаковки команд Устройство для распаковки команд Устройство для распаковки команд Устройство для распаковки команд Устройство для распаковки команд Устройство для распаковки команд Устройство для распаковки команд Устройство для распаковки команд Устройство для распаковки команд Устройство для распаковки команд Устройство для распаковки команд 

 

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

Изобретение относится к вычислительной технике и может быть использовано для управления многопроцессорной вычислительной системой

Изобретение относится к вычислительной технике и может быть использовано для доступа двух абонентов к общему ресурсу

Изобретение относится к вычислительной технике и может быть использовано в многопроцессорных вычислительных системах при обслуживании потока заявок

Изобретение относится к вычислительной технике и может быть применено при построении вычислительных комплексов

Изобретение относится к вычислительной технике и может быть использовано в составе процессоров быстрого преобразования Фурье или быстрого преобразования в базисах ортогональных функций, используемых в спектроанализаторах

Изобретение относится к вычислительной технике и предназначено для управления устройствами процессора микропрограммной ЭВМ

Изобретение относится к вычислительной технике и может быть использовано в устройствах прерывания программ и в составе систем управления для обеспечения индивидуального и синхронного группового обслуживания запросов различных устройств

Изобретение относится к вычислительной технике и может быть использовано для управления обработкой заявок в вычислительных системах реального времени и систем массового обслуживания , построенных на базе одной ЭВМ

Изобретение относится к вычисли тельной технике и может найти применение в многомашинных системах и локальных сетях для управления доступом к общей магистрали

Изобретение относится к устройствам программного управления и предназначено для использования в составе автоматизированных систем управления и регулирования с использованием ЭВМ вышестоящего уровня

Изобретение относится к устройству и способу, обеспечивающим повышение надежности, удобство сопровождения и удобочитаемость программных средств

Изобретение относится к устройству и способу, обеспечивающим повышение надежности, удобство сопровождения и удобочитаемость программных средств

Изобретение относится к транслятору для машинного языка программирования высокого уровня, в частности к способу и устройству для реализации таблицы кодировки символов, которая обеспечивает быстрый доступ к идентификаторам таблицы кодировки символов

Изобретение относится к транслятору для машинного языка программирования высокого уровня, в частности к способу и устройству для реализации таблицы кодировки символов, которая обеспечивает быстрый доступ к идентификаторам таблицы кодировки символов

Изобретение относится к автоматике и вычислительной технике, а точнее к приоритетной обработке данных, и предназначено для использования в мультипроцессорных системах, в локальных сетях и в системах распределенного управления

Изобретение относится к вычислительной технике и может быть использовано для организации доступа к коллективно используемому ресурсу

Изобретение относится к области цифровой вычислительной техники и предназначено для обработки двух или больше компьютерных команд параллельно

Изобретение относится к автоматике и вычислительной технике и может найти применение при построении распределенных систем программного управления технологическими процессами
Наверх