Центральный процессор

 

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

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

РЕСПУБЛИК. Ж, 1804645 А3 (я)з G 06 F 15/76

ГОСУДАРСТВЕННОЕ ПАТЕНТНОЕ

ВЕДОМСТВО СССР (ГОСПАТЕНТ СССР) щ ГЙЯ.дД @

ОПИСАНИЕ ИЗОБРЕТЕНИЯ =""" -:"

К ПАТЕНТУ Ю !

C)

1ф, (21) 4920073/24 (22) 27,03,91 (46) 23.03.93. Бюл. ¹ 11 (71) Институт точной механики и вычислительной техники им. С;А.Лебедева (72) Б,А.Бабаян, В,Ю.Волконский, В.Я,Горштейн; А.К.Ким, Л.Н.Назаров, Ю,Х,Сахин и

С.В.Семенихин (73) Институт точной механики и вычислительной техники им. С.А.Лебедева (56) Авторское свидетельство СССР

¹ 692400, кл. G 06 F 15/16, 1977, Заявка РСТ/SU 90/09134, кл, G 06 F

15/16, 1990. (54) ЦЕНТРАЛЬНЫЙ ПРОЦЕССОР (57) Изобретение относится к вычислительной технике и может быть использовано при проектировании вычислительных комплексов высокой производительности. Целью изобретения является повышение быстродействия за счет исключения потерь тактов

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

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

Для этого в центральный процессор, содержащий буферную память команд, устройство управления, буферную память данных, коммутатор данных, арифметикологическое устройство, блок управления выпри остановке конвейера обработки и динамического переименования управляющих признаков, В центральный процессор, содер>кащий буферную память команд, устройство управления, буферную память данных, коммутатор данных, арифметикологическое устройство. блок управления вызовом — записью данных, блок индексации, ассоциативное запоминающее устройство, блок поеобразования математического адреса в физический, устройство сопря>кения, блок хранения подпрограмм, блок управления буферной памятью команд, введены блок формирования управляющих признаков и узел блокировки дешифрации команд, Введение блока управляющих признаков и узла блокировки дешифрации команд позволяет исключить потерю времени на повторение выдачи команд при блокировке, а также исключить удлинение программного кода. 1 з.п. ф-лы, 12 ил. зовом — записью данных, блок индексации, ассоциативное запоминающее устройство, Ф блок преобразования математического ад- (Jll реса в физический, устройство сопряжения, блок хранения подпрограмм, блок уп реале- ) ния буферной памятью команд, информационный выход устройства сопряжения соединен с информационным входом буферной памяти команд, с первым информационным входом буферной памяти данных, информационным входом ассоциативного запоминающего устройства и первым информационным входом блока хранения подпрограмм. выход буферной памяти команд

1804645

15

25

35

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

1804645

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

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

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

50 управления буферной памятью команд; на фиг.7 — блок — схема коммутатора данных; на фиг,8 — блок — схема блока индексации; на фиг.9 — блок — схема блока преобразования математического адреса в физический; на фиг.10 — блок †схе блока хранения подпрограмм; на фиг.11 — блок — схема арифметико-логического устройства; на фиг.12— блок — схема блока управления вызовом — записью.

Центральный процессор содержит буферную память 1 команд, устройство 2 управления, буферную память 3 данных, коммутатор 4 данных, арифметико-логическое устройство 5, блок 6 управления вызгвом — записью данных, блок 7 индексации, ассоциативное запомина ощее устройство

8, блок 9 преобразования математического адреса в физический, устройство 10 сопряжения, блок 11 хранения подпрограмм, блок

12 управления буферной памятью 1 команд, блок 13 формирования управляющих признаков и узел 14 блокировки дешифрации команд, шину 15 выдачи данных в буферную память 1 команд, буферную память 3 данных, ассоциативное запоминающее устройстов 8, блок 11 хранения подпрограмм и узел 14 блокировки дешифрации команд. подключенные к информационному выходу устройства 10 сопря>кения, шину 16 выборки команд, подключенную к выходу буферной памяти 1 команд, шину 17 распакованной команды, подкл оченную к выходу устройства 2 управления, шину 18 выборки данных, шину 19 выдачи операндов из коммутатора 4 данных, шину 20 записи данных, шину 21 результатов операций арифметико-логического устройства 5 и блока 6 управления вызовом — записью, шину 22 передачи данных из блока 6 управления вы-. зовом-записью в блок 7 индексации, шину

23 выдачи адресов и данных в ассоциативное запоминающее устройство 8 и блок 9 преобразования математического адреса в физический, шину 24 выдачи адреса в ассоциативное запОминающее устройство 8 и блок 9 преобразования математического адреса в физический, шину 25 выдачи данных в память 3 и блок 11 храненил подпрограмм, подключенную к выходу устройства 8, шину

26 выдачи адресов и данных в устройство 10 сопряжения, шину 27 выхода блока 11 хранЕнил пбдпрОграмм, шину 28 управлЕния выборкой из буферной памяти 1 команд, шину 29 выдачи адресов команд в устройство 10 сопряжения, подключенные к выходам блока 12 управления памятью, шину 30 обмена с общей оперативной памятью. Управляющий вход 31 узла 14 блокировки дешифрации команд соединен с шиной 26

1804645 выдачи адресов и данных в устройство 10 сопряжения. Первый и второй управляющие входы 32 и 33 устройства 2 управления подключены к выходам блока 13 формирования управляющих признаков и узла 14 блокировки дешифрации команд, В устройство 2 управления (фиг,2) входят счетчик 34 дешифрации команд, четыре регистра 35 — 38 дешифрации команд, сдвигатель 39 выборки команд, сдвигатель 40 распаковки команд, три сумматора 41 — 43 формирования полей распакованной команды, блок 44 буферной памяти распакованной команды, причем к командному входу устройства 2 управления подключены входы регистров 35 — 38 дешифрации команд, выходы которых подключены к первому входу сдвигателя 39 выборки команд, второй вход которого является первым управляющим входом устройства 2 управле-ния, второй управляющий вход которого соединен со входом управления блока 44 буферной памяти распакованной команды, выход которого является выходом устройства 2 управления, информационный вход которого подключен к первому входу первого сумматора 41 формирования полей распакованной команды, а адресный вход устройства 2 управления соединен с первыми входами второго и третьего сумматоров 42 и 43 формирования полей распакованной команды, вторые входы которых и вторые входы первого сумматора 41 формирования полей распакованной команды соединены с выходом сдвигателя 40 распаковки команд, выходы первого, второго и третьего сумматоров 41 — 43 формирования полей распакованной команды подключены к третьему входу блока 44 буферной памяти распакованной команды, командный выход сдвигателя 39 выборки команд соединен со входом сдвигателя 40 распаковки команд, выход длины команды сдвигателя 39 выборки команд соединен со счетчиком 34 дешифрации команд, выход которого соединен с третьим входом сдвигателя 39 выборки команд, В буферную память 3 данных входят блок 45 буферной памяти стека, блок 46 буферной памяти считывания, блок 47 выходной буферной памяти.

В узел 14 блокировки дешифрации команд (фиг.3) входят элемент ИЛИ 48. трехпортовая память иэ одноразрядных К блоков 49-1...49-К памяти, двухпортовая память из К блоков 50-1...50-К памяти, счетчик

51 тактов, К счетчики считывания 52-1...52-К и К-счетчики 53-1...53-К записи и сумматор

54, Выходы 55-1...55-К блоков 49-1...49-К памяти соединены с соответствующими вхо40

65 и выход коммутатора 66 соединены с шиной 30 обмена с общей оперативной памят,ью.

В блок 12 (фиг.6) управления буферной памятью команд входят четыре регистра 6770 номера команд, ассоциативный запоминающий узел 71, счетчик 72 номера команд, счетчик 73 индекса команд, четыре регистра

74-77 индекса команд, Коммутатор 4 (фиг.7) данных содержит блок 78 памяти результатов, регистры 79 результатов, коммутатор 80 операндов, коммутатор 81 результатов, Блок 7 (фиг.8) индексации содержит К идентичных узлов 82-1 — 82-К индексации, каждый из которых содержит блок 83 буферной памяти операций, блок 84 буферной памяти описателей массивов, регистр 85 приращения базы, регистр 86 базы, сумматор 87 формирования текущего адреса, сумматор 88 формирования текущего индекса. дами элемента ИЛИ 48, а выходы 56-1...56-К блоков 50-1...50-К памяти подключены к первым адресным входам записи блоков 491...49-К памяти, вторые адресные входы за5 писи которых подключены к информационному выходу 57 сумматора 54, управляющий выход 58 которого подключен ко входам счетчиков 53-1...53-К, Выход 59 счетчика 51 тактов подключен к адресному

10 входу считывания каждого блока 49-1...49-К памяти и к первому информационному входу сумматора 54, второй информационный вход которого подключен к первому управляющему входу 31 узла 14 блокировки де15 шифрации команд, второй управляющий вход которого соединен со входом счетчика

51 тактов.

В блок 13 формирования управляющих признаков (фиг.4) входят первый и второй

20 сумматоры 60 и 61, соответственно, регистр

62 управляющих признаков и счетчик 63 циклов, К шине 17 распакованной команды подключены входы счетчика 63 и сумматоров 60 и 61, к шине 21 — информационный

25 вход регистра 62, а выход сумматора 60 соединен с управляющим входом 32 устройства 2 управления. ,В устройство 10 сопряжения (фиг.5) входят блок 64 буферных регистров, блок 65

30 адресов назначения и выходной коммутатор

66, адресно-числовой вход которого, являющийся первым входом устройства 10 сопряжения, соединен с шиной 26 адресов и данных, а адресный вход, являющийся вто35 рым входом устройства 10 сопряжения, соV единен с шиной 29 выдачи адресов команд.

Выход блока 64, являющийся информацион- . ным выходом устройства 10 сопряжения, соединен с шиной 15, а входы блока 64, блока

1804645

1О сумматор 89 формирования адреса записи в блок буферной памяти считывания, сумматор 90 формирования нового значения базы, Блок 9 (фиг.9) преобразования математического адреса в физический содержи. К идентичных ассоциативных запоминающих узлов 91-1 — 91-К и узел 92 таблицы страниц оперативной памяти, . Каждый ассоциативный запоминающий узел 91-1„,91-К содержит блок 93 входной буферной памяти, сумматор 94 формирования адреса следующей страницы, блок 95 буферной памяти данных, блок 96 ассоциативной памяти соответствия математических и физических адресов, сумматор 97 формирования физического адреса слова.

Узел 92 таблицы страниц оперативной памяти содержит регистр 98 базы страниц, сумматор 99 формирования адреса строки таблицы, блок 100 памяти таблицы страниц.

Блок 11 (фиг.10) хранения подпрограмм содержит дешифратор 101 команд, базовые регистры 102, дополнительные базовые регистры 103, блок 104 буферной памяти,связывающей информации, управляющие регйстры 105, сумматор 106.

М ногоканальное арифметико-логическое устройство 5 (фиг.11) содержит блоки

107 и 108 сложения, блоки 109 и 110 умножения, блоки 111 и 112 логических преобразований, блок 113 деления, Блок 6 (фиг.12) управления вызовом — записью данных содержит блок 114 входных регистров, сумматор 115 формирования адреса обращения в память, сумматор 116 сравнения индекса и размера массива, блок

117 формирования записываемого числа, выходной регистр 118 адреса, выходной регистр 119 числа.

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

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

ЦП работает следующим образом.

После начальной иницианизации блок

12 выполняет подкачку программного кода из оперативной памяти. С этой целью он выдает запросы по шине 29 через устройство 10 сопряжения, Программный код через устройство 10 сопряжения по шине 15 почтению и записи, В случае чтения данных в памяти 3, блок 6 по шине 23 выдает адреса

30 в ассоциативное запоминающее устройство

40 ройство 10 сопряжения по шине 15 заносятся в буферную память 3 данных и в

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

25 ступает в буферную память 1 команд. Блок

12 управления по шине 28 управляет выборкой программного кода из буферной памяти

1 команд. По шине 16 он поступает в устройство 2 управления.

Устройство 2 управления по шине 17 выдает команду в арифметика-логическое устройство 5, в блок 6 управления вызовом— записью данных, в блок 7 индексации, в блок 11 хранения подпрограмм и в блок 12 управления, читает операнды из буферной памяти 3 данных и управляет работой коммутатора 4 данных, обеспечивая передачу данных по шине 18 из памяти 3 и по шине

21 результатов операций арифметика-логического устройства 5 и блока 6 управления вызовом — записью. Данные поступают на информационные входы операндов арифметико-логического устройства 5 и блока 6 по шине 19. По шине 20 указанные данные поступают в буферную память 3 данных и в блок 11 хранения подпрограмм. Данные, необходимые для работы блока 7 индексации. передаются через блок 6 управления вызовом-записью данных по шине 22.

Основное назначение блока б — скалярные обращения в оперативную память по

8 и блок 9 преобразования математического адреса в физический.

При удачном поиске в устройстве 8 данные по шине 25 передаются в память 3, в противном случае преобразованный физический адрес из блока 9 по шине 26 поступает в устройство 10 сопряжения и далее в общую оперативную память по шине 30.

Данные из оперативной памяти через устассоциативное запоминающее устройство

8, чтобы сократить время доступа к ним при повторных обращениях.

При выполнении записи в память, в блок 6 по шине 19 поступает адрес записи и по шине 20 — записываемое число, Далее адрес и число по шине 23 выдаются в устройство 8 и блок 9.

Блок 7 индексации является генератором адресов элементов массивов. Перед циклическим участко 4 программы в него через блок 6 управления вызовом-записью данных по шине 22 загружаются дискриптодексные слова(начальный индекс и шаг приращения адреса) и программа формирования адресов элементов массивов. В циклическом участке программы, по

1804645

12 команде, поступающей по шине 17 из устройства 2 управления, блок 7 индексации по шине 24 выдает требуемые адреса элементов массивов в устройство 8 и блок 9 аналогично описанному выше для блока 6 управления вызовом-записью данных.

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

Устройство 2 управления каждый такт может выдавать по шине 17 распакованную команду максимального размера и обеспечить тем самым полную загрузку арифметико-логического устройства 5, блока 6 управления вызовом †запис данных и блока 7 индексации.

Большинство блоков в процессоре и связи между ними имеют параллельную организацию, Так устройство 10 сопряжения, блок 9 преобразования математического адреса в физический, блоки 6 и 7 управления вызовом — записью и индексации в каждом такте могут обрабатывать до К заявок в оперативную память, где К вЂ” максимальная ширина шины связи с памятью в словах.

Буферная память 1 команд выполнена .по двухпортовой схеме и позволяет в каждом такте записывать К слов из оперативной памяти и читать командные слова для исполнения.

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

Блок 11 хранения подпрограмм выполняет подготовку адресного контекста трех процедурных переходов и процедурное переключение (смену контекста и вызов программного кода) без приостановки дешифрации команд.

Таким образом, структура центрального процессора за счет существенно параллельной организации и архитектуры широкого . командного слова дает возможность распараллеливать не только вычисления в цикле, но и сугубо скалярные вычисления. Этому способствует наличие коммутатора 4 данных, который обеспечивает быструю передачу результатов в качестве операндов. в последующие операции (уменьшение влияния зависимости по данным), ветвление по одному из нескольких направлений и услов15 ное выполнение нескольких параллельных ветвей программы (уменьшение влияния зависимости по управлению), быстрый процедурн ый переход без приостановки дешифрации, Передача управления осуществляется как и в прототипе в два этапа, На первом этапе в блоке 12 по команде подготовки перехода происходит. запоминание индекса перехода на одном из регистров 67 — 70 номера команд, поиск по заданному индексу в ассоциативном запоминающем узле 71, выдача в соответствующий регистр 74 — 77 индекса команды адреса перехода по бч<Ьеаной памяти 1 команд.

В случае неуспешного поиска счетчик 72 номера команды выдает в устройство 10 сопряжения по шине 29 серию запросов на всю страницу программного кода, после че- . го программный код через устройство 10

35 сопряжения по шине 15 поступает в буферную память 1 команд.

Адреса чтения команд по шине 28 поступают в буферную память 1 и обеспечивают выборку в течение одного такта требуемого

40 количества командных слов на соответствующий регистр 35 — 38 дешифрации команды устройства 2 управления. Кроме того, адрес поступает в счетчик 34 индекса команды для формирования последующих адресов про45 граммного кода.

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

50 передачи управления ветвление программы по одному из заранее подготовленных направлений, беэ приостановки дешифрации, так как коды всех направлений имеются на регистрах 35 — 38 дешифрации команд, Ветвление выполняется с помощью блока 13 формирования управляющих признаков, в котором по шине 21 загружаются условные признаки передачи управления, вычисленные по командам отношений в арифметикологическом устройстве 5.

13

5

30

Для того, чтобы в коротком цикле, в случае приостановки дешифрации команд сохранить управляющие признаки, находящиеся в конвейере, в блоке 13 выполняется переименование адресов регистра управляющих признаков. Этой цели служат два сумматора — 61 и 60, для переименования адреса записи и для переименования адреса чтения, соответственно. Переименование выполняется путем базирования младшими разрядами счетчика 63 цикла.

Программный код хранится в буферной памяти 1 команд в упакованном виде. Это значит, что в любой широкой команде фрагменты размещаются без пропусков. Информация о составе значимых фрагментов задается полем шкалы широкой команды и используется сдвигателями 39 и 40 выборки и распаковки устройства 2 управления при формировании исполнительного распакованного представления команды, Счетчик 34 дешифрации команд содержит адрес команды по регистрам 35 — 38 дешифрации команд. Сумматоры 41, 42, 43 используются для формирования абсолютных адресов считывания и записи по буферу стека — блоку 45 и абсолютных адресов по буферу считывания — блоку 46 путем базирования относительных адресов из команды.

-Распакованная команда поступает в блок 44 буферной памяти распакованной команды и далее по шине 17 в буферную память 3 данных (чтение операндов), в коммутатор 4 данных (выборка результатов, коммутация операндов и результатов), в устройство 5 и блоки 6, 7, 13, 12 (коды операций и короткие константы из программного кода).

8 общем случае из-за наличия ассоциативного запоминающего устройства.8 и конфликтов в оперативной памяти на этапе трансляции не представляется воэмо>кным определить время доступа эа операндом в оперативную память.

Это приводит к тому, что при попытке чтения операндов из буферной памяти 3 данных может оказаться, что данные еще не поступили, что приводит к блокировке очередной широкой команды в блоке 44 и остановке конвейера на ступенях ниже блока 44.

Блокировка выдается по шине 33, из узла 14 блокировки, как результат проверки наличия операндов.

Каждый блок 49-1...49-К памяти узла 14 соответствует одному каналу чтения из оперативной памяти. При обращении в оперативную память по шине 30, в сумматор 54 из блока 9 преобразования математического адреса в физический по входу 31 выдается целое число, определяющее максимальное количество тактов, через которое должна поступить в центральный процессор прочитанная информация. Это целое число, определяемое компилятором, в сумматоре 54 складывается с текущим значением номера такта счетчика 51. Полученное значение определяет адрес в блоке 49 — l (1 Ы 5 K) памяти соответствующего направления, по которому пишется "1" (или "0"), Кроме —.oro, это же значение, определяющее номер такта, к которому должна быть считана информация иэ оперативной памяти, по адресу счетчика 53-! записывается в блок 50-i двухпортовой памяти соответствующего направления, При каждом обращении в оперативную память соответствующий счетчик 53-I увеличивает свое значение на единицу, Так же, как и блоки 49-i и 50-i памятей сумматор 54 имеет

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

50-i памяти и в качестве адреса, подается на блок 49-i памяти для установки бита в состояние "0" (или "1"), При этом счетчик 52-i считывания увеличивается на единицу.

Счетчик 51 текущего номера такта читает все К блоков 49-1...49-К памятей и, если хотя бы в одном иэ них в соответствующей позиции имеется "1" ("0"), через элемент ИЛИ 48 по управляющему входу 33 в устройство 2 управления выдается сигнал блокировки дешифрации команд, При поступлении данных блокировка снимается, операнды выбираются из блоков

45 и 46 и через блок 47 по шине 18 поступают s коммутатор 4 данных, Наличие в буферной памяти 3 данных двух блоков 45 и 46 буферной памяти стека и буферной памяти считывания вызвано необходимостью обеспечить высокую эффективность в условиях смешанных скалярно-векторных вычислений: При работе с массивами данных память 3 является проме>куточным буфером ме>кду оперативной памятью и арифметико-логическим устройством 5. Это обеспечивает предварительную выборку элементов массивов и сохраняет рабочую совокупность скалярных переменных, Коммутатор 4 данных, как и в прототипе, позволяет быстро испольэовать результаты операций в качестве входных операндов арифметико-логического устройства 5 и блока 6 управления вызовом-записью данных, записать. результаты в оперативную память и буферную память 3 данных, что сокращает критический путь при выполнении прогpBMMbl. Регистр результатов коммутатора 4 данных использу15

16 ется в тех случаях, когда результат операции должен быть использован в промежуток времени между передачей через коммутатор 4 и передачей через буферную память 3 данных, В основном, обращение к элементам массива выполняется с постоянным шагом, Это определяет организацию блока 7 индексации, который, как и в прототипе, для создания высокого темпа генерации адресов содержит К параллельно работающих узлов, в каждом из которых имеются блоки буферной памяти описателей массива и блок буферной памяти операЦий, содержимое которых заносится вне циклического участка программы по шине 22 из блока 6 управления вызовом — записью данных, Фактически, блок 7 содержит программу доступа к элементам массивов и их описателям.

При исполнении циклического участка программы устройство 2 управления по шине 17 выдает в блок 7 индексации номер команды по блоку буферной памяти операций, Далее все узлы блока 7 индексации по заданному номеру выполняют команду Bblчисления адреса элемента массива, который формируется путем сложения базового адреса массива со значением текущего индекса по массиву. Также формируется значение текущей переменной для следующего обращения в массив (изменяется на шаг п родвижение по массиву) и за носится в блок 84 буферной памяти описателей массивов, Сумматоры 89 и 90 служат для формй рования адресов назначения по блоку 46 буферной памяти считывания, Для обеспечения доступа в блок 46 используется метод передвигаемых баз, когда в циклической программе адрес загружаемой ячейки остается постоянным, а базовый адрес, формирующий адрес назначения, изменяется в каждом цикле на шаг приращения базы, С этой целью в каждом узле блока 7 индексации имеются регистры 86 и 85 базы и приращения базы. На сумматоре 89 формируется текущий адрес назначения по блоку 46, а на сумматоре 90 — модифицируется текущее значение базы нэ шаг приращения.

Новое значение базы заносится в регистр

86 базы, а сформированные математический адрес элемента массива и адрес назначения по шине 24 из всех узлов выдаются в ассоциативное запоминающее устройство 8 и блок 9 преобразования математи <еского адреса в физический.

Для поддержания вь<соког6 темпа обращений в оперативную память блок 9 преоб50

5

45 разования математического адреса в физический содержит К (на фиг.7 K=8) узлов 91-1—

91-8, каждый из которых с помощью блока

96 ассоциативной памяти соответствия математических и физических адресов обеспечивает требуемое преобразование, Заполнение блока 96 имеет привентивный характер. С этой целью блок 96 выполнен по двухпортовой схеме, и параллельно с поиском строки соответствия по заданному адресу выполняется поиск следующей математической страницы. Для векторных обращений следующая страница определяется в зависимости от шага приращения.

Формирование адреса следующей страницы выполняется сумматором 94.

При отсутствии строки в блоке 96 выдается запрос в узел 92 таблицы страниц оперативной памяти. Блок 100 памяти таблицы страниц содержит полную таблицу соответствия математической и физической оперативной памяти, На сумматоре 99 формируется адрес требуемой строки таблицы, и выполняется чтение из блока 100 памяти таблицы страниц, При организации таблицы страниц используются методы Н-кодирования, в связи с чем возможно вторичное обращение с выхода блока 100 на собственный вход.

Выбранная строка соответствия заносится в блок 96 ассоциативной памяти заданного узла 91. Таким образом, на фоне обращений в текущую математическую страницу выполняется подКачка гстроки соответствия для следующей математической страницы. блок 93 входной буферной памяти служит для хранения запросов в случае выполнения поиска в узле 92 таблицы страниц оперативной памяти для текущей математической страницы, После ее вызова запросы в блок 96 ассоциативной памяти повторяются, ъ

Сумматор 97 служит для формирования физического адреса слова (складываются физический адрес текущей страницы и адрес слова внутри страницы).

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

По шине 26 физического адреса и данные (в случае записи) выдаются в устройство

10 сопряжения.

Заполнение блока 100 памяти таблицы страниц и регистра 98 базы страниц производится по шине 23 из блока 6 управления вызовом †запис.

1804645

Блок 11 хранения подпрограмм выполняет подготовку и переключение контекста при процедурных переходах, При этом базовые регистры 102 определяют контекст текущей процедуры, дополнительные базовые регистры 103 служат для создания контекста вызываемых процедур, блок 104 буферной памяти связующей информации для хранения динамической истории запущенных процедур, а управляющие регистры

105 содержат общесистемные регистры (таймер, часы, регистры конфигурации и т.д.), Процедурные переключения, как и внутрипроцедурные передачи управления, выполняются в две фазы. На фазе подготовки происходит копирование контекста из основных базовых регистров 102 в дополнительные базовые регистры 103, "упрятывание" в блок 104 связующей информации регистра контекста, подлежащих коррекции при процедурном переключении, выход иэ оперативной памяти или формирование контекста вызываемой процедуры в дополнительных базовых регистрах 103, передача дескриптора программного сегмента в блок 12 управления для подкачки кода вызываемой процедуры в буферную память 1 команд и устройство 2 управления.

На фазе переключения происходит передача подготовленного контекста в базовые регистры 102 и переключение на дешифрацию программы вызванной процедуры в устройстве 2 и блоке 12 управления.

Возврат в процедуру выполняется аналогичным образом за исключением того, что коррекция контекста выполняется из блока

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

Блок 6 управления вызовом — записью данных выполняетоперации формирования математического адреса, который может быть запомнен в буферной памяти 3 данных, либо по нему выполнено обращение в оперативную память. а также передачу операндов в блок 7 индексации, При формировании математического адреса с записью результата в стек, операнды (дескриптор и индекс) из блока 114 входных регистров передаются на сумматоры

115, 116, где на сумматоре 115 формируется математический адрес путем сложения адреса начала массива из дискриптора и индекса. а на сумматоре 116 выполняется

45 ния буферной памятью команд, информационный выход устройства сопря50

5

40 вычитание индекса из размера массива.

Сформированный математический адрес через выходной регистр 118 адреса передается по шине 21 на второй информационный вход коммутатора 4 данных и далее по шине

21 на третий информационный вход буферной памяти 3 данных.

При обращении в оперативную память по чтению сформированный адрес с выходного регистра 118 адреса по шгне 23 передается на первый адресный и информационный вход ассоциативного запоминающего устройства 8 и первый адресный и информационный вход блока 9 преобразования математического адреса в физический.

При обращении в оперативную память по записи дополнительно вместе с адресом по шине 23 выдается записываемое число.

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

Введение блока 13 формирования управляющих признаков и узла 14 блокировки дешифрации команд позволяет, по сравнению с прототипом, повысить быстродействие за счет сокращения потерь тактов в конвейере обработки команд, Формула изобретения

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

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

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

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

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

2. Процессор по п.1, о т л и ч а ю щ и йс я тем, что устройство управления содержит

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

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

50 управления соединен с первыми входами второго и третьего сумматоров формирования полей распакованной команды, вторые входы которых и вторые входы первого сумматора и блока буферной памяти распакованной ко55 манды соединены с выходом сдвигателя распаковки команд, выходы первого, второго и третьего сумматоров формирования полей распакованной команды подключены к третьему входу.

1804 б45

1804645

1804 б45

1804645

26

1 Во-Е

1 !

I

1

1

1 !

27

И-5

2(17 (9 Pu (, И

1804645

21.

g7 f9 20

Редактор Q.ÑTåíèíà

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

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

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

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

1

1

1

Составитель Л,Багян

Техред M.Ìoðãåíòàë Корректор С,Патрушева

I

1

1

I

Центральный процессор Центральный процессор Центральный процессор Центральный процессор Центральный процессор Центральный процессор Центральный процессор Центральный процессор Центральный процессор Центральный процессор Центральный процессор Центральный процессор Центральный процессор Центральный процессор Центральный процессор Центральный процессор Центральный процессор 

 

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

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

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

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

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

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

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

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

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

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

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