Устройство для распаковки команд
Иллюстрации
Показать всеРеферат
(iu972507
ОПИСАНИЕ
ИЗОБРЕТЕНИЯ
К АВТОРСКОМУ СВИДЕТЕЛЬСТВУ
Союз Советских
Социалистических
Реслублик (61) Дополнительное к авт. свид-ву(22) Заявлено 210581 (21) 3292105/18-24
Р1 М К з
G 06 F 9/00 с прксоединением заявки ¹вЂ”
Государственный комитет
СССР по делам изобретений и открытий (23) Приоритет(53) УДК б21. 325 (088.8) Опубликовано 0711.82. Бюллетень ¹ 41
Дата опубликования описания 07.11.82
1...
° A.Ê.Ãîëîâàí, В.Н.Эаблоцкий и A.Ë.Ðàäêåâè÷ (72) Авторы изобретения (71) Заявитель (54) УСТРОИСТВО ДЛЯ РАСПАКОВКИ КОИАНД
Изобретение относится к вычислительной технике и может быть исполь зовано для распаковки командной ин формации в процессоре вычислительной машины среднего быстродействия . и при построении мультиблочных и мультипроцессорных систем обработки данных.
Известно устройство обработки дан. ных, в котором для выполнения подготовки машинных команд имеется процессор первичной обработки команд, .содержащий буфер команд, два компаратора, три мультиплексора, микропрограммную память управления состоянием и адресную арифметику 11.
Недостатком устройства является использование большого объема оборудования.
Наиболее близким по технической сущности является устройство для распаковки команд, содержащее блок наращивания адресов командной информации, регистр адреса памяти, первый и второй буферные регистры команд, регистр адреса общих регистров, блок управления выборкой коt. 21
Недостатками устройства являются использование большого объема обору» дования и низкое быстродействие устройства при заполнении буферных регистров командной информацией.
5 Цель изобретения — сокращение объема оборудования и повышение быстродействия.
Поставленная цель достигается тем, что в устройство, содержащее счетчик адресов командной информации, регистр адреса памяти, первый и второй буферные регистры команд, регистр адреса общих регистров, блок управления выборкой команд, выход обращения которого соединен с первым входом регистра адреса памяти и входом счетчика адресов командной информации, выход которого соединен с вторым входом регистра адреса памяти, выход которого соединен с первым выходом устройства, первый и второй выходы смещения первого буферного регистра команд соединены с вторым выходом устройства; первый вход которого соединен с входом второго буфер25 ного регистра команд, первый, второй и третий адресные выходы и выход индекса первого буферйого регистра команд соединены соотве"."твенно с первым, вторым н третьим адресными вхо30 дами и входом индекса регистра адреса
972507 общих регистров, выход которого соединен с третьим выходом устройства, четвертый выход которого соединен с выход эм команды первого буферного регистра команд, дополнительно введены счетчик полуслов, блок управления, 5 элемент ИЛИ, элемент И, первый, второй и третий мультиплексоры, первые, вторые, третьи и четвертые информа, ционные входы которых соединены соответственно с первым, вторым, третьим 1О и четвертым информационными выходами второго буферного регистра команд, группа выходов формата команды которого соединена с группой входов формата команды блока управления, первый, второй и третий управляющие выходы которого соединены соответственно с управляющими входами первого
1 второго и третьего мультиплексоров, выходы которых соединены соответственно с первым, вторым и третьим информационными входами первого буферного регистра команд, группа разрешающих входов которого соединена с группой разрешающих выходов блока управления и группой входов элемента
ИЛИ, выход которого соединен с первым вхадом элемента И, выход которОго соединен с пятым выходом устройства, а второй вход элемента И соединена с вторым выходом блока управле- ния выборкой команд, первый вход которого соединен с информационным выходом блока управления, управляющий вход которого соединен с управляющим выходом блока управления выборкой команд, группа выходов увеличения значения блока управления соединена соответственно с группой входов счетчика полуслов, первый и второй выходы которого соединены соответствен-40 но с первым и вторым разрешающими вховходами блока управления, а третий выход счетчика полуслов соединен с третьим разрешающим входом блока управления и с разрешающим входом бло- 45 ка управления выборкой команд, вход сброса которого и вход сброса счетчика полуслов срединены с вторым входом устройства, третий вход которого соединен с входами счета счетчика Полуслов и блока управления выборкой команд.
На фиг. 1 представлена структурная схема устройства для распаковки команд; на фиг. 2 - функциональная схе->5 ма блока управления выборкой команд; на фиг. 3 - функциональная схема счетчика полуслов: на Фиг. 4 — функциональная схема блока управления.
Устройство для распаковки команд 60 (Фиг. 1) содержит счетчик 1 адресов командной инфорМации, регистр 2 адреса памяти, блок 3 управления выборкой команд, первый буферный регистр
4 команд, второй буферный регистр
5 команд, регистр 6 адреса общих регистров, первый мультиплексор 7, второй мультиплексор 8, третий мультиплексор 9, счетчик 10 полуслов, блок 11 управления, элемент ИЛИ 12, элемент И 13, первый вход 14 устройства, второй вход 15 устройства (импульс "Сброс" ), третий вход 16 устройства (импульс "Счет"р, первый выход 17 устройства, второй выход 18 устройства, третий выход 19 устройства, четвертый выход 20 устройства, пятый выход 21 устройства, выходы пятый, шестой, седьмой и восьмой второго буферного регистра 5 команд соответственно 22 — 25, выходы, первого, второго и третьего разрядов счетчика 10 полуслов соответственно
26 — 28, первый, второй и третий выходы блока 3 управления выборкой команд соответственно 29-31, первый
32, второй 33, третий 34, четвертый
35, пятый 36, шестой 37, седьмой 38, восьмой 39, девятый 40 и десятый 41 выходы блока 11.
Блок 3 управления выборкой команд (фиг. 2) содержит элемент ИЛИ 42, триггер 43 остатка, элемент ИЛИ 44, регистр 45 признаков.
Счетчик 10 полуслов (фиг. 3» содержит три 7)-триггера, обозначенных соответственно 46.1 — первый (младший), 46.2 — второй и 46.3 — третий разряды счетчика 10 полуслов, элемент И 47, элемент И-ИЛИ 48, элемент И 49, элементы HJIH 50 и 51 °
Блок 11 (фиг. 4 } представляет собой программируемую логическую матрицу и содержит группу элементов
И 52.1-52.20 (на фиг. 4 показана только часть элементов И группы), инверторы прямого (обратного) кода входных сигналов 53.1-53.13, группу элементов ИЛИ 54 ° 1-54.14 (на фиг.4 показана только часть элементов ИЛИ группы).
Блок 11(фиг. 4) предназначен для приема кодов форматов команд, находящихся во втором, буферном регистре 5 команд, и формирования на соответствующих выходах управляющих сигналов в зависимости от значения кода счетчика 10 полуслов, кода формата распаковываемой команды и подаваемой с блока 3 управления выборкой команд информации о неполном занесении распаковываемой команды в первый буферный регистр 4 команд.
Блок 11 выполняет двухуровневые комбинационные логические функции и позволяет реализовать И-ИЛИ, НЕ-ИЛИ и их эквиваленты. Блок 11 функционирует в соответствии с таблицей его кодирования. Первый уровень логики составляет группа элементов И 52.152.20 (изображены на фиг. 4 не полностью ), соединенные с любым
972507 из входов (таблица кодирования) че-, рез инверторы прямого (обратного) кода входных сигналов 53.1.-53.13.
Второй логический уровень образует группа. элементов ИЛИ 54.1.-54.14 .(по одному на :выход логической матрицьф каждый из которых может быть выборочно связан с любым as элементов И группы И 52 (таблица кодирования .
В описании использованы следую щие обозначения, принятые в системе команд ЭВМ: RR - формат команды длиСтро ка
- Входы матрицы позиционные обозначения на фиг. 4) 22.1 23.1 24.1 25.1
28
222 232 242 252
000 00 .. .. .. A..
000 00 ;." ° A .. AA.,А, 2 01
3 10
000 00 .. .A .. AA.
° A, А,, 000 00,. .A A. AAA
001 00 .A .. .. A..
° ° A
00 б
001 00 .A A. ° . AA..А.
4 °
001 00 .A А... A3L.
° Ae.
001 00 .A A. AA AAA
Ае °..A
010 00 A. .. .. A..
010.А.
10
010 00 A. AA AA,А, 10
010 00 A. 3A .. AA.
00 011 00 AA .. .. А..,А
12..A
01 011 00 AA .. .. A..
А, 14
10 011 00 AA .. .. A..
A..
° ° Ф
11 011 00 AA
А,, 16..A
000 01 .. . ° .. ° ° A
17..A
° °
000 10 .. .. . ° ° A.,А, 000 11 ° . ., .А .АА
100 00
° ° ° 1 ° ° ° ° °
20 — истинное значение входа; — дополнение значения входа; значение входа несущественно; выход активный; выход неактивный. и и пАп
П р и м е ч а н н е. "1" ! и 0 е ной в одно полуслово (два байта);
RX, RS, St, S - форматы команд длиной в два полуслова (четыре байта);
SS - формат команды длиной в три полуслова (шесть байтов); Rz - адрес
5 регистра первого операнда; R - адрес регистра второго операнда; В— адрес первого регистра базы; В - aZtpec второго регистра базы; ))„ - смещение адреса первого регистра базы;
<() > .- смещение адреса второго регистра базы; 3, - адрес регистра числа для индексации адреса второго ре» гистра базы.
Выходы матрицы (позиционные обозначения на фиг. 4) 31132133134140381
37 39 38.2
00 A. AA . ° AA.
972507
Распаковка команд организована так, что иэ командной информации, принятой во второй буферный регистр
5 команд в первый, буферный регистр
4 команд всегда заносится только одна команда независимо от ее формата которая затем может быть выдана на обработку. Если в процессе распаковки команд окажется, что во втором. буферном регистре 5 команд находится только часть команды, то эта часть команды загружается в соответствующую часть первого буферного регистра
4 команд, после чего производится обращение к оперативной памяти и недостающая командная информация считывается во второй буферный регистр 5 команд, из которого недостающая часть команды заносится в соответствующую часть первого буферного регистра 4 команд. После этого полностью сформированная команда может быть выдана на обработку.
Работу устройства рассмотрим на примере выборки командной информации при- обработке некоторой последовательности команд.
Предположим, что второй буферный регистр 5 команд имеет 64 разряда (0-63 разряда - 4 полуслова), а первый буферный регистр команд 4 должен быть рассчитан на максимальную длину формата команды, т.е. на 48 разрядов или три полуслова. Таким образом, у нас во втором буферном регистре 5 команд в исходном (начальном) состоянии всегда будет находиться, как минимум, одна команда для ее выделения. Пусть мы обрабатываем последовательность команд RX, RR, SS, RS.
По начальной выборке значение счет-. чика адреса команд из счетчика 1 через регистр 2 адреса памяти выдается на первый выход 17 устройства.II<5 этому адресу из памяти считывается двойное слово, которое поступает на первый вход 14 устройства и записывается во второй буферный регистр 5 команд, на второй вход устройства 15 поступает импулвс "Сброс", по которому сбрасывается в нулевое состояние (код 000) счетчик полуслов 10, а блок 3 управления выбоцкой команд на своем втором выходе 30,устанавливает разрешающий потенциал, который подается на второй вход- элемента И 13.
Таким образом, первое полуслово распаковываемой команды формата RX оказалось в первом полуслове второго буферного регистра 5 команд.. С выхо да 22 второго буферного регистра 5 команд два старших разряда (О и 1) определяющие формат команды, подаются на первый вход блока 11, который функционирует в соответствии с таблицей ei о кодирования.
65;ния)первого буферного регистра 4 ко5
В рассматриваемом случае команде формата НХ сдответствует вторая строка таблицы кодирования, которая указывает, что на первом 32 выходе блока 11 будет код 00 и первое нолуслово распаковываемой команды с выхода второго буферного .регистра команд
5 передается через мультиплексор 7 на первый вход первого буферного регистра 4 команд, а на выходе 33 блока 11 будет код 01; что обеспечивает передачу второго полуслова распаковываемой команды с второго выхода второго буферного регистра команд 5 через мультиплексор 8 на второй вход первого буферного регистра 4 команд. Первое и второе полуслова распаковываемой команды принимаются в первый буферный регистр команд 4 при наличии сигналов разрешения приема на четвертом 35 и пятом 36 выходах блока 11.
На входы 39 - 41 счетчика 10 полуслов подаются соответственные сигналы, разрешающие увеличение текущего значения счетчика на +1, +2 и
+3. На четвертый вход счетчика с второго 15 входа устройства поступает сигнал сброса счетчика 10 полуслов в нулевое состояние, а с третьего входа 16 устройства поступает импульс "Счет", по которому производится увеличение текущего значения счетчика полуслов 10 на величину, определяемую соответствующим разрешающим сигналом на одном из входов
39, 40 или 41. Значение первого (младшего ) разряда выдается на первый выход 26 счетчика 10 полуслов, второго — на второй выход 27, третьего †.на третий выход 28.
При выполнении команды формата
RX производится увеличение значения счетчика на +2. Одновременно с этим на выходе элемента ИЛИ 12 появляется команда, которая проходит на выход элемента И 13 как команда, разрешающая использование выделенной команды для дальнейшей обработки. Выделенная. команда с выхода первого буферного регистра 4 команд может полностью или частично (например, код операции) быть выдана на четвертый выход 20 устройства. Распакованная команда всегда полностью находится на первом буферном регистре команд 4.
Кцрес R (разряды 8-11 — первый
1 1 адресный выход блока 4), индекс Х (разряды 12-15 — второй адресный выход блока 4 и адрес В (разряды
16-19 — третий адресный выход блока 4) могут пересылаться в регистр
6 адреса общих регистров, с которого могут выдаваться на третий 19 выход устройства. Смещение 3)z выдается из
20-31 разрядов (первый выход смеще972507
:манд на второй выход 18 устройства.
Информация, снимаемая с выходов 18 .и 19 устройства необходима для адресной арифметики, которая может производиться иа общем арифметическом устройстве процессора (не.показано).
По окончании действий, заданных командой формата RX или частичного ее выполнения (определяется конкретной реализацией процессора) на третий 16 вход устройства, поступает импульс "Счет", который в счетчике полуслов 10 устанавливает код 010.
Начинает распаковываться следующая команда Формата RR, которая полностью находится в третьем полуслове (разряды 32-47) второго буферного регистра 5 команд, а поэтому не требуется обращение к памяти. При выполнении команды формата RR третье полуслово с третьего выхода второго буферного регистра 5 команд через
Мультиплексор 7 пересылается на первый вход первого буферного регистра
4 команд. В результате полного (или частичного выполнения)команды фор мата RR в счетчике 10 полуслов устанавливается код 011(девятая стро ка таблицы кодирования). тьем 31 выходе блока 3 управления выборкой команд устанавливается код 00.
Начало следующей команды формата
RS находится в третьем полуслове втОрого буферного регистра 5 команд, т.е. команда формата RS полностью находится в нем(одиннадцатая строка таблицы кодирования блока 11). В рЕзультате полного (или частичного) выполнения команды формата RS в счет25 чике 10 полуслов устанавливается . код 100, который означает, что во втором буферном регистре 5 команд нет командной информации. С третьего
28 выхода счетчика 10 полуслов сигнал поступает на второй вход блока
3 управления выборкой команд, где формируется сигнал, позволяющий выдать на первый выход 17 устройства модифицированный на восемь адрес памяти, по которому производится считывание из памяти следующего дзойно» го слова командной информации иа первый 14 вход устройства и npagranжается процесс распаковки команд с
40 учетом длины их форматов. если выполняемая команда окажется командой перехода, то, чтобы избежать лишних обращений к памяти,блокируется на втором входе 16 уст45 ройства прием импульса "Счет" и вы- . дача адреса в регистр 2 адреса па» мяти (на фиг. 1 не показано).
Прием информации- во второй буферный регистр 5 команд и запись рас5р пакованных команд в первый буферный регистр 4 команд производится по сиихросигналам (не показано).
Предлагаемое устройство позволяет уменьшить объем оборудования в 3,5
55 раза за счет упрощения схемы управления распаковкой команд, так как ие нужны узел анализа заполнения буфера,. узел продвижения информации, регистр кода операции и регистр непосредственного байта, а также упрощается оу-. ганиэация буферных регистров.
Начало следующей команды формата
SS находится в четвертом полуслове второго буферного регистра 5 команд (шестнадцатая строка таблицы кодирования). При выполнении команды формата SS четвертое полуслово с четвертого выхода второго буферного регистра 5 команд мультиплексор 7 пересылается на первый вход первого буферного регистра 4 команд, а на седьмом выходе 38 блока 11 устанавливается значение кода (отлич-.*се от нуля), которое заносится в двухразрядный регистр 45 признаков. С выхода регистра 45 признаков записанная информация поступает на пятый вход 31 блока 11, а также через элемент ИЛИ 44 устанавливает в единичное значение триггер остатка 43 и формирует на втором выходе 30 блока
3 управления выборкой команд запрещающей сигнал, а на первом выходе
29 — формируется команда, позволяющая произвести обращение к памяти за следующим двойным словом командной информации, которое поступает на первый вход 14 устройства и записывается во второй буферный регистр
5 команд. Одновременно на второй вход 15 устройства поступает импульс
"Сброс", по которому в счетчике 10 полуслов устанавливается код 000 и на втором выходе 30 блока 3 управления выборкой команд устанавливается разрешающий потенциал. Продолжается выполнение команды формата SS в соответствии с девятнадцатой строкой таблицы кодирования блока 11. При этом первое и второе полуслова вто рого буферного регистра 5 команд через мультиплексоры 8 и 9 соответственно передаются на второй и третий входы первого буферного регистра
4 команд. Таким образом, в первом буферном регистре 4 команд оказалась полностью размещенной команда формата SS которая может быть .выдана на обработку по сигналу, появившемуся на пятом 21 выходе устройства. В результате полного (или частичного) выполнения команды формата SS в счетчике 10 полуслов по импульсу "Счет" устанавливается код 010, а на треПредлагаемое устройство позволяет повысить также и быстродействие про» ектируемого процессора по сравнению с известным за счет обеспечения воэ
972507
12 можности приема за один такт во второй буферный регистр команд двойного слова командной информации из оперативной памяти и за счет использования в схеме управления распаковкой команды программируемой логической матрицы, позволяющей значительно упростить схему управления и уменьшить время распаковки команды для дальнейшей ее обработки..
Формула изобретения
Устройство для распаковки команд, содержащее счетчик адресов командной информации, регистр адреса памяти, первый и второй буферные регистры команд, регистр адреса общих регистров, блок управления выборкой команд, выход обращения которого соединен с первым входом регистра адреса памяти и входом счетчика адресов командной информации, выход которого соединен с вторым входом регистра адреса памяти, выход которого соединен с первым выходом устройства, первый и второй выходы смещения первого буферного регистра команд соединены с вторым выходом устройства, первый вход которо-, го соединен с входом второго буферного регистра команд, первый, второй и третий адресные вы ды и выход индекса первого буферного регистра команд соединены соответственно с первым, вторым и третьим адресными входами и входом индекса регистра ад 35 реса общих регистров, выход которого соединен с третьим выходом устройст-. ва, четвертый выход которого соединен с выходом команды первого буферного регистра команд, о т л и ч а ю щ е - 4Q е с я тем, что, с целью сокращения оборудования и повышения быстродействия, оно дополнительно содержит счетчик полуслов, блок управления, элемент ИЛИ, элемент И, первый, второй и третий мультиплексоры, первые, вторые, третьи и четвертые информационные входы которых соединены соответственно с первым, вторым, третьим и четвертым информационными выходами второго буферного регистра команд, группа выходов формата команды которого соединена с группой входов формата команды блока управления, первый, второй и третий управляющие выходы которого соединены соответственно с управляющими входами первого, второго и третьего мультиплексоров, выходы которых соединены соответственно с первым, вторым и третьим информационными входами первого буферного регистра команд, группа разрешающих входов которого соединена с группой разрешающих выходов блока управления и группой входов элемента
ИЛИ, выход которого соединен с первым входом элемента И, выход которого соединен с пятым выходом устройства, а второй вход элемента И соединен с вторым выходом блока управления выборкой команд, первый вход которого соединен с информационным выходом блока управления, управляющий вход которого соединен с управляющим выходом блока управления выборкой команд, группа выходов увеличения значения блока управления соединена с группой входов счетчика полуслов, первый и второй выходы которого соединены соответственно с первым и вторым разрешающими входами блока управления, а третий выход счетчика полуслов соединен с третьим разрешающим входом блока управления и с разрешающим входом блока управления выборкой команд, вход сброса которого и вход сброса счетчика полуслов соединены с вторым входом устройства, третий вход которого соединен с входами счета счетчика полуслов и блока .управления выборкой команд.
Источники информации, принятые во внимание при экспертизе
1. Патент ФРГ Р 2704560, кл. G 06 F 9/12, опублик. 1978.
2. Авторское свидетельство СССР
9 610109, кл.G 06 F 9/00, 1976 (прототип).
972507
Составитель Г.Понамарева
Редактор A.Êoçîðèç Техред Т.Маточка Корректор В.Вутяга
Заказ 8518/41 Тираж 731 Подписное
ВНИИПИ Государственного комитета СССР о делам изобретений и .открытий
113035, Москва, Ж-35, Раушская наб., д. 4/5
Филиал.ППП "Патент", r. Ужгород, ул. Проектная, 4