Изобретение относится к вычислительной технике и предназначено для использования в высокопроизводительных цифровых системах обработки информации.
Известно устройство управления скалярными вычислениями, в котором поток команд разделяется на два потока: в первом осуществляются операции обменов между регистровой и общей памятью и поддержка адресных операций - индексирование, операции с косвенной адресацией, второй поток предназначен для исполнительных операций и работает только с регистровыми данными, Целью разделения является совмещение этих операций и уменьшение времени выполнения программы.
Однако для обеспечения такого разделения необходим механизм проверки информационной независимости между командами двух потоков для блокировки зависимых команд, возможно, на нескольких этапах конвейера, что приводит к усложнению реализации.
Наиболее близким к заявленному устройству является устройство управления конвейерным вычислительным устройством, содержащее память команд, первый и второй регистры кода операций, коммутатор условий, регистр адреса первого операнда, два буферных регистра, дешифратор типа команды и регистр команд.
Это устройство является конвейерным, производит одновременное решение N заVIсл
N
СЛ
VJ
дач, т.е. выполняет N программ, и содержит N этапов обработки, причем п из них () составляет этапы обработки в конвейерном вычислительном устройстве,
К недостаткам данного устройства следует отнести ограниченность обрабатываемой, программной информации (запись результата команды в память операндов производится только по специальной команде записи: в двуместных арифметических и логических операциях один из операндов адресуется только как результат предыдущей команды, поэтому для двуместной команды, не используюш,ей результат предыдущей команды, приходится второй операнд получать как результат паразитной команды пересылки, передаваемой через конвейерное вычислительное устройство без преобразования на п тактов). Кроме того, это устройство относится к классу сиих- ронных устройств с блокировками, в которых 1-я команда j-й программы блокирует но только (Н-1)-ю команду j-й программы, но и 1-ю команду (|+1)-й программы, поэтому время выполнения любой команды любой программы выравнивается до п тактов. В результате программы с разными по длительности командами (арифметические операции с фиксированной запятой и с плавающей запятой, логические операции, операции пересылок и т.п.) выполняются с задержками для коротких команд, что снижает общую скорость выполнения программ тем сильное, чем больше коротких команд содержит программа.
Недостатком данного устройства является также то, что заявки к памяти операндов обязательно должны быть удовлетворены за один такт. Это означает, что при реализации устройства либо тип памяти операндов ограничивается только регистровой памятью и конвейерное вычислительное устройство работает без остановок при наличии всех операндов всех программ в памяти операндов, либо для работы с произвольной памятью следует принять за рабочий такт максимальное время удовлетворения заявки к памяти. В последнем случае в Соответствующее число раз увеличивается время выполнения программы, а в первом случае работе конвейерного вычислительного устройства должен предшествовать режим загрузки регистровой памяти операндов.
Цель изобретения - повышение быстродействия.
Сущность изобретения состоит в следующем,
Устройство управления проектируется как конвейерное устройство с блокировками между командами одной программы и без блокировок между командами разных программ, а именно 1-я команда J-й программы бокирует (1+1 )-ю команду j-й программы,
но не блокирует команды других программ. Благодаря отказу в заявленном (конвейерном) устройстве управления от принципа блокировки между командами разных программ, принятого в прототипе и реализо0 ванного в виде синхронного конвейерного устройства с ги2 этапами обработки (в котором возникают паразитные передачи информации через конвейерное вычислительное устройство без ее измене5 ния), в предлагаемом устройстве достигается повышение быстродействия, причем результирующая скорость выполнения команд любой программы не зависит от того, использует или нет текущая команда ре0 зультат предыдущей команды.
Принцип отказа от блокировки между командами разных программ в устройстве управления конвейерными вычислительными устройством предлагаемтся поддержать
5 применением конвейерного вычислительного устройства с раздельными трактами обработки для разновременных арифметических и логических операций, результаты которых вырабатываются на разных звень0 ях конвейера.
Поставленная цель достигается за счет того, что в устройство управления конвейерным вычислительным устройством, содержащее коммутатор условий, регистр адреса,
5 память команд, регистр команд, буферную память операндов, регистр кода операций, регистр адреса первого операнда, два буферных регистра и дешифратор типа команды, причем вход начальной установки
0 устройства соединен с установочными входами регистра адреса, выход которого соединен с адресным входом памяти команд, выход которой соединен с информационным входом регистра команд, вход записи
5 которого соединен с входом записи регистра адреса и является тактовым входом устройства, выход поля кода операции регистра команд соединен с входом дешифратора типа команды и информационным
0 входом регистра кода операции, синхров- ход и вход записи которого соединены соответственно с тактовым входом устройства и первым выходом дешифратора типа команды, выход поля номера анализируемого ус5 ловия регистра команд соединен с управляющим входом коммутатора условий, выход регистра адреса первого операнда соединен с первым адресным входом буферной памяти операнда, первый выход которого соединен с информационным
входом первого буферного pefucrpa, первый информационный вход второго буферного регистра соединен с выходом регистра ходя операции, синхровходы первого и второго буферных регистров и буферной памяти операндов соединены с тактовым входом устройства, введены коммутатор кодов условий, буферная память кодов условий, формирователь адреса, регистр номера программы, регистр адреса второго операнда, регистр адреса результата, третий и четвертый буферные регистры, коммутатор операндов, блок пересылок и блок распределения результатов, группа входов которого соединена с группой входов устройства для подключения к группе выходов кода результата конвейерного вычислительного устройства, тактовый вход устройства соединен с синхровходом блока распределения результатов, первая и вторая группы управляющих выходов которого соединены соответственно с группой управляющих входов блока пересылок и группой управляющих входов коммутатора кодов условий первая и вторая группы информационных выходов блока распределения результатов соединены соответственно с группой информационных входов блока пересылок и группой информационных входов коммутатора кодов условий, первый выход первой группы выходов коммутатора операндов является выходом устройства для подключения к входам операндов, кода операций конвейерного вычислительного устройства, второй,третий и четвертый выходы первой группы выходов коммутатора соединены соответственно с первым и вторым информационными входами и управляющим входом блока распределения результатов, первыми второй выходы второй группы выходов коммутатора операндов соединены соответственно с первыми управляющим и информационным входами блока пересылок, вторые управляющий и информационный входы которого являются входами устройства для подключения к выходам памяти операндов, выход устройства для подключения к входам памяти операндов является первым входом блока пересылок, второй и третий, четвертый и пятый выходы которого соединены соответственно с информационным входом и входом управления записью буферной памяти операндов, первым и вторым управляющими входами формирователя адреса, тактовый вход устройства соединен с синхровходами блока пересылок, регистра номера программы, регистра адреса второго операнда, регистра адреса результата, формирователя адреса, буферной памяти кодов условий vi
синхровходэми третье о-и четвертого буферных регистров, выходы которых соеди- нень с первым и вторым информационными входами коммутатора операндов, третий и 5 четвертый информационные входы которого соединены с выходом первого буферного регистра и первым выходом второго буфер ного регистра, второй выход которого соединен с управляющим входом коммутатора
0 операндов,ервый выход дешифратора типа команды соединены с входами записи регистров адреса первого операнда, номера программы, адреса второго операнда адре са результата, второй и третий выход де
5 шифра юр типа команды соединены соответственно с третьим и четвертым управляющими входами формирователя адре са выход которого соединен с информационным влодом регистра адреса,
0 выход комм/татора кодов условий соединен с информационным входом буферной памяти кодов условий, выход которой соединен с информационным входом коммутатора условий, выход которого соединен с пятым
5 управляющим входом формирователя адреса, шестой управляющий входи информационный вход которого соединены с выходами признака конца команды и поля адреса перехода регистра команд соответственно,
0 выход поля номера программы которого соединен с адресными входом буферной памяти кодов условий, информационным входом регистра номера программы и седьмым управляющим входом формирователя
5 адреса, выходы полей адреса первого операнда, адреса второго операнда, адреса результата регистра команд соединены с информационными входами соответственно регистров адреса первого операнда, ад0 реса второго операнда и результата, второй адресный вход буферной памятью операндов соединен с выходом регистра адреса второго операнда, выход регистра номера программы соединен с входом управления
5 чтением буферной памяти операндов и рто- рым информационным входом второго буферного регистра, второй выход буферной памяти операндов соединен г информационным входом третьего буферного регист0 ра, информационный вход четвертого буферного регистра соединен с выходом регистра адреса результата.
Кроме того, блок пересылок содержит два коммутатора, группу элементов ИЛИ,
5 группу регистров, группу блоков элементов И, два регистра, блок элементов И, дешифратор, счетчик, элемент И, генератор импульсов, триггер, два элемента ИЛИ, шифратор, блок элементов задержки, блок пемептов ИЛИ, пичем группа управляющих входов, первый и второй управляющие входы блока соединены с группой управляющих входов первого коммутатора, группа выходов которого соединена с входами соответствующих элементов ИЛИ группы, с информационными входами соответствующих элементов ИЛИ группы и с информационными входами соответствующих регистров группы, выход 1-го (М, N, где М - максимальное число одновременно выпол- няемых в конвейерном вычислительном устройстве программ) элемента ИЛИ группы соединен с входом записи 1-го регистра группы, входом установки i-ro разряда 1-ю регистра группы и входом установки 1-го разряда первого регистра, выход которого соединен с первым входом блока элементов И, второй вход которого соединен с выходом дешифратора, вход которого соединен с выходом счетчика, счетный вход которого соединен с выходом элемента И, первый и второй входы которого соединены соответственно с выходом генератора импульсов и выходом триггера, единичный вход которого соединен с входом записи второго реги- стра, синхровходами регистров группы и синхровходом блока пересылок, первый и второй информационные входы и группа ин- формационных входов которого соединены с группой информационных входов первого коммутатора, выход i-ro элемента И блока элементов И соединен с первым входом 1-го блока элемента И группы, с 1-м входом первого элемента ИЛИ, i-м входом шифратора и входом 1-го элемента задержки блока эле- ментов задержки, выход которого соединен с входом сброса соответствующего разряда первого регистра, выход первого элемента ИЛИ соединен с входом сброса триггера, выход i-ro регистра группы соединен с вто- рым входом соответствующего блока элементов И группы, выход которого соединен с i-м входом блока элементов ИЛИ, (М+1)-й вход которого соединен с выходом шифратора, выход блока элементов ИЛИ соединен с информационным входом второго регистра, первая группа выходов которого соединен с группой входов второго элемента ИЛИ и группой информационных входов второго коммутатора, информационный входи труп- па управляющих сходов которого соединены соответственно с выходом второго элемента ИЛИ и второй группой выходов второго регистра, выходы второго коммутатора образуют выходы блока с первого по пятый.
Кроме того, блок распределения результатов содержит три группы регистров, группу дешифраторов и группу демультиплекеоров, причем синхровхрд
блока распределения результатов соединен с входами записи регистров групп с первой по третью, управляющий вход блока распределения результатов соединен с информационным входом первого регистра первой группы, первый и второй информационные входы блока распределения результатов соединены с первым и вторым информационными входами первого регистра второй группы, выход j-ro (., К - число тактов, за которое выполняется самая длинная команда) регистра первой группы соединен с информационным входом 0+1) го регистра первой группы и входом j-ro дешифратора группы, выход которого соединен с управляющим входом j-ro демуль- типлексора группы, информационный вход которого соединен с выходом j-ro регистра второй группы, первый и второй выходы де- мультиплексора соединены соответственно с информационным входом (j+1)-ro регистра второй группы и первым информационным входом j-ro регистра третьей группы, выход (K--l)-ro регистра первой группы соединен с входом (К-1)-го дешифратора группы, выход которого соединен с управляющим входом (K-l)-ro демультиплексора группы, информационный вход которого соединен с выходом (К-1)-го регистра второй группы, первый и второй выходы (К-1)-го демультиплексора соединены соответственно с информационным входом -го регистра второй группы и с первым информационным входом (К-1)-го регистра третьей группы, выход К-го регистра второй группы соединен с первым информационным входом К-го регистра третьей группы, группа входов блока распределения результатов соединены с вторыми информационными входами регистров третьей группы, выходы регистров третьей группы образуют первую и вторую группы выходов блока распределения результатов.
Кроме того, формирователь адреса содержит два дешифратора, две группы элементов И, три группы элементов ИЛИ, группу счетчиков, группу блоков элементов И, группу триггеров, блок элементов И, блок злементоь ИЛИ, элемент ИЛИ, формирователь импульсов, причем первый и второй управляющие входы формирователя адреса соединены с информационным и стробиру- ющим входами nepjaoro дешифратора, 1-1 выход которого (, N. N - число выполняемых одновременно программ) соединен с первым входом 1-го элемента ИЛИ первой группы, выход которого соединен с единичным входом соответствующего триггера группы, выход которого соединен с первым входом соответствующего блока элементов
И группы, выход которого соединен с входом соответствующего элемента ИЛИ второй группы и соответствующим входом блока элементов ИЛИ, выход которого соединен с входом элемента ИЛИ и является выходом формирователя адреса, третий и четвертый управляющие входы которого соединены с первыми, входами элементов ИЛИ третьей группы и элементов И первой группы, выходы которых соединены с вторыми входами соответствующих элементов ИЛИ третьей группы, выходы которых соединены с входами записи/счета соответствующих счетчиков группы, выходы которых соединены с вторыми входами соответствующих блоков элементов И группы, пятый управляющий вход формирователя адреса соединен с вторыми входами элементов И первой группы, третьи входы которых соединены с соответствующими выходами второго дешифратора и первыми входами блока элементов И, вторые входы которых соединены с шестым управляющим входом формирователя адреса, седьмой управ/рю- щий вход которого соединен с входом второго дешифратора, информационный вход формирователя адреса соединен с инфор мационными входами счетчиков группы, выходы блока элементов И соединены с вторыми входами соответствующих элементов ИЛИ первой группы, синхровходформирователя адреса соединен с входом запуска формирователя импульсов и первыми входами элементов И второй группы, выходы которых соединены с входами сброса соответствующих триггеров группы, выход элемента ИЛИ соединен с входом останова формирователя импульсов, группа выходов которого соединена с третьими входами соответствующих блоков.элементов И группы, выходы элементов ИЛИ второй группы соединены с вторыми входами соответствующих элементов И второй группы, синхровход формирователя адреса соединен с синхровходами счетчиков группы, выход i-ro элемента ИЛИ первой группы соединен с входом разрешения счета 1-го счетчика группы.
На фиг. 1 показана функциональная схема устройства управления конвейерным вычислительным устройством; на фиг. 2 - блок пересылок; на фиг. 3 - распределения результатов; на фиг. 4 - формирователь адреса; на фиг. 5 - буферная память операндов. Устройство управления конвейерным вычислительным устройством (фиг. 1) содержит коммутатор 1 кодов условий, буферную память 2 кодов условий, коммутатор 3 условий, формирователь 4 адреса, регистр 5 адреса, память б команд, регистр 7 команд,
дешифратор 8 типа команды, регистр 9 кода операций, регистр 10 адреса первого операнда, регистр 11 номера программы, регистр 12 адреса второго операнда, регистр 5 13 адреса результата, буферную память 14 операндов, четыре буферных регистра 15- 18, коммутатор 19 операндов, блок 20 пересылок, блок 21 распределения результатов, вход 22.1 синхронизации, вход 22.2 началь0 ной установки.
При этом регистр 7 команд имеет выход 23 признака конца команды перехода, выход 24 поля адреса перехода, выход 25 поля кода операции выход 26 гт оля номера прЪ5 граммы, выход 27 поля адреса первого операнда, выход 28 поля адреса второго операнда, выход 29 поля адреса результата и выход 30 поля номера анализируемого условий.
0 Кроме того.стройетво содержит выход 31 для подключение к вводам операндов, кода one рации конвейерного вычислительного устройства, группу входов 32.1-32.К дли подключения к группе выходов кодов
5 результатов конвейерного вычислительного устройства, выход 33 и вход 34 для подключения к памяти операндов.
Дешифратор 8 имеет выход 35 (признака команды безусловного перехода), выход
0 36 (признака команды условного перехода) и выход 37 (признака исполнительной команды или команды пересылок).
Блок 20 пересылок имеет группу управляющих входов 38.1-38.К+2 (где К - макси5 мальное количество поступающих от конвейерного вычислительнбго устройства кодов результатов), группу информационных входовЗЭ. 1-39,К+2, группы информационных выходов 40.1, 40.2, 41.1, 41.2.
0 Блок 21 распределения результатов имеет управляющий вход 42, первый 43 и второй 44 информационные входы. Блок 20 пересылок (фиг. 2) содержит коммутатор 45, группу из элементов ИЛИ 46.1,46.N (где N 5 максимальное количество одновременно выполняемых программ в конвейерном вычислительном устройстве), группу из N регистров 47.1-47.N. группу из N блоков элементов И 48.1-48.N, регистр 49, блок
0 элементов И 50, дешифратор 51, счетчик 52, элемент И 53, генератор 54 импульсов,триг-, , гер 55, элемент ИЛ И 56, шифратор 57, блок 58 элементов задержки, блок 59 элементов ИЛИ, регистр 60, элемент ИЛИ 61 и комму5 татор 62.
Блок 21 распределения результатов (фиг. 3) содержит группу регистров 63, группу дешифраторов 64, группу регистров 65, группу демультиплексоров 66 и группу регистров 67.
Формирователь 4 адреса (фиг, 4) содержит дешифратор 68, группу элементов И 69, группу элементов ИЛИ 70, группу счетчиков 71, группу блоков 72 элементов И, группу триггеров 73, группу элементов ИЛИ 74, группу элементов И 75, группу элементов ИЛИ 76, блок 77 элементов И, дешифратор 78, блок 79 элементов ИЛИ, элемент ИЛИ 80 и формирователь 81 импульсов.
Буферная память 14 операндов (фиг. 5) содержит дешифраторы 82, 83, группу блоков 84 регистров, две группы мультиплексоров 85, 86 и два блока 87, 88 элементов ИЛИ.
Устройство работает следующим образом.
В начальный момент времени все запоминающие узлы и блоки устройства устанавливаются в нулевое состояние (цепи начальной установки на чертежах не показаны). В регистр 5 адреса через вход 22.2 запишется адрес первой команды программы первоначальной загрузки (для этого используются входы асинхронной установки соответствующих разрядов регистра 5). По этому адресу из памяти 6 команд считывается соответствующая команда, и по текущему тактовому импульсу, поступающему на вход 22.1 синхронизации, считанная команда записывается в регистр 7 команд.
В предлох енном устройстве все команды условно делятся на команды передачи управления и остальные команды (исполнительные команды, команды пересылок и т.д.).
Для идентификации типа команды в предлагаемом устройстве используется дешифратор 8 типа команды.
Если записанная в регистр 7 команда является командой безусловной передачи управления, при дешифрации кода операции, поступившего с выхода 25 поля кода операции, на выходе 35 дешифратора появляется единичный сигнал, который поступает на соответстующий управляющий вход формирователя 4 адреса. В результате этого формирователь 4 адреса при условии поступления сигнала признака конца команды, поступающего либо с выхода 23 регистра 7 для команды безусловного перехода, либо с выхода 41,2 блока 20 для исполнительной команды, вырабатывает в текущем такте на своем выходе адрес безусловного перехода (А,б.пер.), поступивший на его информационный вход с выхода 24 регистра 7.
Если записанная в регистр 7 команда является командой условной передачи управления, то при дешифрации кода операции, поступающего с выхода 25 поля кода
операции, на выходе 36 дешифратора 8 появляется единичный сигнал, который поступает на соответствующий управляющий вход формирователя 4 адреса В зависимости от значения логического условия (0 или 1), которое выбирается с выхода коммутатора по коду номера анализируемого условия, поступающему с выхода 30 регистра 7 на управляющий вход коммутатора 3, формирователь 4 адреса, при условии поступления Сигнала признака конца команды, вырабатывает в текущем такте на своем выходе либо адрес условного перехода (при логическом условии, равном 1), поступающий на
его информационный вход с выхода 24 регистра 71 либо (при логическом условии, равном 0) адрес, значнеие которого равно увеличенному на единицу коду адреса, полученному в формирователе 4 в предыдущем
такте.
И, наконец, если записанная в регистр 7 команда относится к остальным типам команд, то на выходе 37 дешифратора 8 появляется единичный сигнал, который
разрешает запись информации в регистры 9-13. При этом по приходу очередного тактового импульса в регистр 9 записывается код операции, в регистр 10 - адрес первого операнда, в регистр 11 - номер программы,
в регистр 12 - адрес второго операнда, а в регистр 13 - адрес результата. С приходом следующего тактового импульса в буферный регистр 15 записывается информация из регистра 9 и регистра 11, в результате чего в
нем хранится информация о коде операции и номере программы. Считанные из буферной памяти 14 операнды записываются в этом же такте в буферные регистры 16 и 17, а в буферный регистр 18 записывается информация из регистра 13.
В зависимости от кода операции, поступающего на управляющий вход коммутатора 19 с выхода регистра 15, информация с выходов регистров 15-18 коммутируется либо на входы 38.К+1, 39.К+1, 39.К+1 блока 20 пересылок (для команд пересылок), либо на входы 42-44 блока 21 распределения результатов и выход 31 для передачи в конвейерное вычислительное устройство (для
исполнительных команд).
Блок 20 пересылок осуществляет распределение операндов, поступающих на его информационные входы 39.К+1.39К+2, и ре- зультатов (в том числе промежуточных), поступающих на его информационные входы 39.1-39.К, на его выходы 40 и 33. Кроме того, блок 20 пересылок осуществляет формирование сигнала признака конца команды по выходу 41.2 и передачу номера программы
по выходу 41.1 для управления формирователем 4 адреса.
Блок 21 распределения результатов осуществляет передачу кодов результатов, номеров программы и номеров регистра результата по выходам 38.1, 38.К, 39.1-39.К для блока 20 пересылок и передачу кодов условий и номеров программы соответственно на информационный и управляющий входы коммутатора 1 кодов условий.
Коды условий (максимальное количество которых равно максимальному количеству одновременно выполняемых программ) поступают в буферную память 2 и по текущему тактовому сигналу записываются в ее регистры. Считывание кодов условия из буферной памяти осуществляется по адресу, формируемому на выходе 26 поля номера программы регистра 7.
Блок 20 пересылок (фиг. 2) работает следующим образом
На группу информационных входов 39.1-39.К блока 20 поступают коды результатов и коды номеров регистра результата с выходом блока 21 распределения результатов, на информационные входы 39.К+1 и 39.К+2 поступают соответственно код операции, номер регистра результата, операнд, адреса операнда с выхода коммутатора 19 и операнд с входа 34 устройства. Все эти входы подключены к информационным входам коммутатора 45. На группу управляющих входов 38.1, 39.К+2 блока 20 пересылок поступают ко ды номеров программы с соответствующих выходов блока 21, коммутатора 19 и с входа 34 устройства, к которым подключены управляющие входы коммутатора 45. Коммутатор осуществляет переключение К+2 его информационных входов к его N выходам, причем порядок подключения регламентируется кодом на его управляющих входах.
При наличии ненулевой информации на его i-м выходе (, N) i-й элемент ИЛИ 46 , формирует единичный сигнал, разрешающий запись информации в i-м регистр 47.1. который записывается в него по текущему тактойому импульсу, и устанавливает в единицу 1-й разряд регистра 49.
Выбор информации, которую необходимо передать через блок 59 элементов ИЛИ, осуществляет совокупность регистра 49, блока 50 элементов И, дешифратора 51, счетчика 52, элемента И 53, генератора 54 импульсов, триггера 55, элемента ИЛИ 56, шифратора 57 и блока 58 элементов задержки с соответствующими связями, представляющая из себя приоритетную схему, которая функционирует следующим образом.
По тактовому CHI налу триггер 55 устанавливается в единичное состояние, разрешая тем самым прохождение импульса с генератора 54 через элемент И 53 Следует 5 при этом отметить, что частота следования импульсов, вырабатываемых генератором 54, выбирается исходя из реализации возможности опроса блоков 48.1-48.N элементов И за период 7 следования тактовых
0 импульсов, поступающих на вход 22.1, т.е. больше N/T.
Счетчик 52 совместно с дешифратором 51 начинает осуществлять распределение импульсов, поступающих с выхода элемента
5 И 53 до того момента, пока единичная информация на I-м выходе регистра 49 не совпадет с единичным импульсом, формируемым на i-м выходе дешифратора 51.
0 В этом случае на i-м выходе блока 50 элементов И появится единичный сигнал, который разрешает передачу информации через i-й блок 48.1 элементов И на 1-й вход блока 59 элементов ИЛИ, заблокирует пере5 дачу импульсов от генератора 54 через элемент И 53 за счет сброса триггера 55 сигналом с выхода элемента ИЛИ 56, сбросит в ноль через блок 58 задержки i-й разряд регистра 49 и позволит получить на выходе
0 шифратора 57 код номера информации (являющийся кодом номера программы), передаваемый через i -и блок 48.1 элементов И. В результате этого на выходе блока 59 элементов ИЛИ будет передаваться инфор5 мация от одного из входов 39.1-39.К+2, сопровождаемая номером программы, которая по очередному тактовому сигналу будет записана в регистр 60. Наличие ненулевой информации в регистре 60 свидетель0 ствует об окончании выполнения команды, что реализуется с помощью элемента ИЛ И 61, на выходе которого формируется единичный признак конца команды.
В зависимости от типа команды пересы5 лок операции передаются либо на выход 33, либо на выходах 41, либо на выход 40, что реализуется с помощью коммутатора 62, на управляющий вход которого поступает код операции. При этом на выход 33 для всех
0 операций обмена передается код операции,
адрес операнда, номер программы, а для
операций записи еще и операнд, на выход
40.1 передается операнд, на выход 40.2 номер программы и номер регистра резуль5 тата, на выход 41.1 - номер программы, на выход41.2 -признак конца команды.
Блок 21 распределения результатов (фиг. 3) работает следующим образом.
С выхода коммутатора 19 на вход 42 поступает код операции, на вход 43 - номер
регистра результата, на вход 44 - номер программы.
Коды операции последовательно по тактовым импульсам записываются в регистры 63 и анализируются в дешифраторах 64, которые служат для определения длительности выполнения команды по коду операции. В соответствии с этим дешифратор 64 позволяет передавать информацию через де- мультиплексор 56 либо с выхода регистра 65 на информационный вход соответствующего регистра 67, либо на информационный вход нижнего регистра 65. В результате этого на выход каждого из регистров 67 передается результат (с признаком результата) выполнения команды, поступающий на его информационный вход с одного из входов 32.1-32.К, сопровождаемый номером регистра результата и номером программы, причем темп поступления названной информации согласован с длительностью выполнения команды.
Формирователь 4 адреса (фиг, 4) работает следующим образом.
При наличии в регистре 7 команды безусловной передачи управления на соединенные между собой входы элементов ИЛИ 70 поступает единичный сигнал с выхода 35 дешифратора 8. В результате этого на выходах всех элементов ИЛИ 70 появятся единичные сигналы, которые разрешают запись адреса перехода с выхода 24 регистра 7 в счетчики 71. С приходом тактового импульса адрес перехода записывается в 1-й счетчик 71.
По номеру программы, который поступает с выхода 26 регистра 7, дешифратор 68 формирует на своем -м выходе единичный сигнал, который передается на 1-й выход блока 77 элементов И, поскольку на выходе 23 регистра 7, при наличии в нем команды безусловной или условной передачи управления, находится единичный сигнал, разрешающий передачу информации через блок 77 элементов И. В результате этого пройдя через 1-й элемент ИЛИ 74, он установит в единицу 1-й триггер 73, подготовив тем самым 1-й блок-72 элементов И к передаче информации с Йыхода 1-го счетчика 71.
Запустившийся по тактовому импульсу формирователь 81 последовательно формирует на своих выходах импульсы, частота следования которых выбирается исходя из реализации возможности опроса N блоков 72 элементов И за период Т следования тактовых импульсов.
Поступивший на соответствующий вход 1-го блока 72 элементов И импульс опроса с соответствующего выхода формирователя
5
81 разрешит передачу адреса перехода с выхода 1-го счетчика 71. который, с одной стороны, через блок 79 элементов ИЛИ поступит на выход формирователя 4 адреса, а с другой стороны, эта (ненулевая) информация, поступив на выходы 1-го элемента ИЛИ 76 по очередному тактовому импульсу, вызовет установку в ноль 1-го триггера 73 (через i-й элемент И 75).
Кроме того, при прохождении ненулевой информации через блок 79 элементов ИЛИ произойдет останов формирователя 81 импульсов посредством формирования единичного сигнала на выходе элемента ИЛИ 80.
При наличии в регистре 7 команды условной передачи управления на соединенные между собой входы элементов И 69
поступает единичный сигнал с выхода 36 дешифратора 8. В зависимости от значения логического условия (0 или 1) выбранный дешифратором 68 i-й элемент И 69 пропу- стит на свой выход соответственно нулевой
или единичный сигнал, который беспрепятственно проходит через 1-й элемент ИЛИ 70. Если на выход 1-го элемента ИЛИ поступит единичный сигнал (успешный переход), то i-й счетчик 71 запишет адрес
перехода с выхода 24 регистра 7. В этом случае дальнейшая работа формирователя 4 адреса будет совпадать с режимом формирования адреса при наличии команды безусловной передачи управления.
Если на выход 1-го элемента ИЛИ 70 поступит нулевой сигнал, а с выхода 1-го элемента ИЛИ 74 поступит единичный сигнал, что соответствует тому, что в текущей команде 1-й программы не произошел успешный переход, то i-й счетчик 71 по тактовому импульсу осуществит наращивание своего содержимого на единицу.
В дальнейшем формирователь 4 адреса будет функционировать так же, как и в режиме безусловной передачи управления.
И, наконец, если в регистре 7 записана какая-либо из других команд (команда пересылок, исполнительные команды), то на выходах 35, 36 дешифратора 8, на выходе 23
регистра 7 формируются нулеыве сигналы. В этом случае 1-й счетчик 71 наращивает на единицу свое содержимое, если на i-м выходе дешифратора 78 формируется единичный сигнал, на стробирующий и
информационный входы которого поступают соответственно признаки конца команды и номер программы с выходов 41.1 и 41.2 блока 20 пересылок. Этим же сигналом осуществляется установка в единицу i-ro триггера 73.
В остальном формирователь 4 адреса функционирует так же, как и в других случаях.
Буферная память операндов (фиг. 5) функционирует следующим образом.
На информационные входы блоков 84 регистров с выхода 40 блока 20 поступают операнды (результаты операций), а на информационный вход дешифратора 83 поступает номер программы и номер регистра результата с выхода 40 блока 20.В результате этого в один из олоков Ь4 регистров по тактовому импульсу осуществляется запись операндов (результатов операции).
Считывание информации из блоков 84 регистров осуществляется посредством групп 85, 86 мультиплексоров, дешифратора 82 и блоков 87, 88 элементов ИЛИ. При этом с помощью дешифратора 82, на вход которого поступает номер программы с выхода регистра 11, осуществляется разрешение работы всех мультиплексоров 85, 86, на информационные входы которых поступает информация со всех регистров 1-го блока 84 регистров.
В зависимости от содержимого регистров 10 и 12 1-е мультиплексоры 85, 86 коммутируют информацию с соответствующих регистров 1-го блока 84 регистров на 1-е входы соответственно блока 87 и блока 88 элементов ИЛИ. Таким образом, в данном устройстве обеспечивается насыщение конвейера обработки команд, начиная с этапа выдачи адреса команды в память 6 команд и кончая этапом выдачи подготовленной операции через коммутатор .19 командами N независимых программ.
Повышение быстродействия устройства по сравнению с прототипом достигается, во-первых, за счет реализации в устройстве выдачи команд разных программ в конвейер обработки, при которой команды одной программы не блокируют команды других программ, во-вторых, указанное отсутствие блокировки между командами разных программ поддерживается введением блока пересылок и блока распределения результатов. Блок пересылок при этом позволяет выделить из общего потока команд параллельный поток команд пересылок, освобождая тем самым конвейерное вычислительное устройство от выполнения этих команд. Блок распределения результатов позволяет согласовать во времени выдачу результатов с конвейерного вычислительного устройства с длительностью выполнения команд, что приводит к уменьшению времени блокировки между соседними командами 1-й программы.
Формуда изобретения 1. Устройство управления конвейерным вычислительным устройством, содержащее коммутатор условий, регистр адреса, па- 5 мять команд, регистр команд, буферную память операндов, регистр кода операций, регистр адреса первого операнда, два буферных регистра и дешифратор типа команды, причем вход начальной установки
0 устройства соединен с установочными входами регистра адреса, выход которого соединен с адресным входом памяти команд, выход которой соединен с информационным входом регистра команд, вход записи
5 которого соединен с входом записи регистра адреса и является тактовым входом устройства, выход поля кода операции регистра команд соединен с входом дешифратора типа команды и информационным
0 входом регистра кода операции, синхров- ход и вход записи которого соединены соответственно с тактовым входом устройства и первым выходом дешифратора типа команды, выход поля номера анализируемого ус5 ловия регистра команд соединен с управляющим входом коммутатора условий, выход регистра адреса первого операнда соединен с первым адресным входом буферной памяти операндов, первый выход
0 которой соединен с информационным входом первого буферного регистра, первый информационный вход второго буферного регистра соединен с выходом регистра кода операций, синхровходы первого и второго
5 буферных регистров и буферной памяти операндов соединены с тактовым входом устройства, отличающееся тем, что, с целью повышения быстродействия, в устройство введены коммутатор кодов усло0 вий, буферная память кодов условий, формировать адреса, регистр номера программы, регистр адреса второго операнда, регистр адреса результата, третий и четвертый буферные регистры, коммутатор опе5 рандов, блок пересылок и блок распределения результатов, группа входов которого соединена с группой входов устройства для подключения к группе выходов кодов результата конвейерного вычисли0 тельного устройства, тактовый вход устройства соединен с синхровходом блока распределения результатов, первая и вторая группа управляющих выходов которого .соединены соответственно с группой управ5 ляющих входов блока пересылок и группой управляющих входов коммутатора кодов условий, первая и вторая группы информационных выходов блока распределения результатов соединены соответственно с группой информационных входов блока пересылок и группой информационных входов коммутатора кодов условий, первый выход первой группы выходов коммутятора операндов является выходом устройства для подключения к входам операндов и кода операций конвейерного вычислительного устройства, второй, третий и четвертый выходы первой группы выходов коммутатора операндов соединены соответственно с первым и вторым информационными входами и управляющим входом блока распределения результата, первый и второй выходы второй группы выходов коммутатора операндов соединены соответственно с первыми управляющим и информационным входами блока пересылок, вторые управляющий и информационный входы которого являются входами устройства для подключения к выходам памяти операндов, выход устройства для подключения к входам памяти операндов является первым выходом блока пересылок, второй и третий, четгзер- тый и пятый выходы которого соединены соответственно с информационным входом и входом управления записью буферной памяти операндов, первым и вторым управляющими входами формирователя адреса, тактовый вход устройства соединен с сиих- ровходами блока пересылок, регистра номера программы, регистра адреса второго операнда, регистра адреса результата, фор- мировз теля1 адреса, буферной памяти кодов условий и синхровходами третьего и четвертого буферных регистров, выходы которых соединены с первым и вторым информационными входами коммутатора операндов, третий и четвертый, информационные входы которого соединены с выходом первого и второго буферных регистров, второй выход первого буферного регистра соединен с управляющим входом коммутатора операндов, первый выход дешифратора типа команды соединен с входами записи регистров адреса первого операнда, номера программы, адреса второго операнда, адреса результата, второй и третий выходы дешифратора типа команды соединены соответственно с третьим и четвертым управляющими входами формирователя адреса, выход которого соединен с информационным входом регистра адреса, выход коммутатора условий соединен с. информационным входом буферной памяти кодов условий, выход которой соединен с информационным входом коммутатора условий, выход которого соединен с пятым управляющим входом формирователя адреса, шестой управляющий вход и информационный вход которого соединены с выходами признака конца команды и поля адреса перехода регистра команд соответственно, выход поля номера программы которого соединен с адресным входом буферной памяти кодов условий, информационным входом
регистра номера программы и седьмым управляющим входом формирователя адреса, выходы полей адреса первого операнда, адреса второго операнда, адреса результата регистра команд соединены с информаци0 онными входами соответственно регистров адреса первого операнда, адреса второго операнда и результата, второй адресный вход буферной памяти операндов соединен г. выходом регистра адреса второго операн5 да, выход регистра номера программы соединен- с входом управления чтением буферной памяти операндов и вторым информационным входом второго буферного регистра, второй выход буферной памяти
0 операндов соединен с информационным входом третьего буферного регистра, информационный вход четвертого буферного регистра соединен с выходом регистра адреса результата.
52. Устройство по п. 1, о т л и ч а ю щ е ес я тем, что блок пересылок содержит два коммутатора, группу элементов ИЛИ, группу регистров, группу блоков элементов И, два регистра, блок элементов И, дешифра0 тор, счетчик, элемент И, генератор импульсов, триггер, два элемента ИЛИ, шифратор, блок элементов задержки, блок элементов ИЛИ, причем группа управляющих первый и второй управляющие входы блока соеди5 иены с группой управляющих входов первого коммутатора, группа выходов которого соединена с входами соответствующих элементов ИЛИ группы и с информационными входами соответствующих регистров груп0 пы, выход i-ro (i-1, N; N - максимальное число программ, одновременно выполняемых в конвейерном вычислительном устройстве ) элемента ИЛИ группы соединен с входом записи i-ro регистра группы и вхо5 дом установки i-ro разряда первого регистра, выход которого соединен с первым входом блока элементов И, второй вход которого соединен с выходом дешифратора, вход которого соединен с выходом счетчика,
0 счетный вход которого соединен с выходом элемента И, первый и второй входы которого соединены соответственно с выходом генератора импульсов и выходом триггера, единичный вход которого соединен с вхо5 дом записи второго регистра, синхровхода- мм регистров группы и синхровходом блока, первый и второй информационные и группа информационных входов которого соединены с группой информационных входов первого коммутатора, выход 1-го элемента И
блока элемента И соединен с первым входом 1-го блока элементов И группы, с 1-м входом первого элемента ИЛИ, 1-м входом шифратора и входом 1-го элемента задержки блока элементов задержки, выход которого соединен с входом сброса соответствующего разряда первого регистра, выход первого элемента ИЛИ соединен с входом сброса триггера, выход 1-го регистра группы соединен с вторым входом соответствующего блока элементов И группы, выход которого соединен с i-м входом блока элементов ИЛИ, (М+1)-й вход которого соединен с выходом шифратора, выход блока элементов
10
лексора соед: пены соответственно с информационным входом К-ro регистра второй группы и с первым информационным входом (К-1)-го регистра третьей группы, выход, К-го регистра второй группы соединен с первым информационным входом К-го регистра третьей группы, группа входов блока распределения результатов соединена с вторыми информационными входами регистров третьей группы выходы которых образуют первую и вторую группу выходов блока распределения результатов
4 Устройство поп 1, о т л и ч а ю щ е е- с я тем, что формирователь адреса содержит
ИЛИ соединен с информационным входом 15 два дешифратора, две группы элементов И,
0
лексора соед: пены соответственно с информационным входом К-ro регистра второй группы и с первым информационным входом (К-1)-го регистра третьей группы, выход, К-го регистра второй группы соединен с первым информационным входом К-го регистра третьей группы, группа входов блока распределения результатов соединена с вторыми информационными входами регистров третьей группы выходы которых образуют первую и вторую группу выходов блока распределения результатов
4 Устройство поп 1, о т л и ч а ю щ е е- с я тем, что формирователь адреса содержит
название | год | авторы | номер документа |
---|---|---|---|
Многопроцессорная вычислительная система | 1982 |
|
SU1168960A1 |
Устройство для управления параллельным выполнением команд в электронной вычислительной машине | 1982 |
|
SU1078429A1 |
ВЫЧИСЛИТЕЛЬНАЯ СИСТЕМА | 1991 |
|
RU2042193C1 |
Устройство для обмена информацией | 1983 |
|
SU1149239A1 |
Микропрограммный процессор | 1982 |
|
SU1070557A1 |
Устройство для решения дифференциальных уравнений | 1983 |
|
SU1233148A1 |
Устройство для контроля условных переходов микропроцессора | 1984 |
|
SU1238076A1 |
Микропрограммное устройство управления | 1982 |
|
SU1030801A1 |
Параллельный процессор | 1985 |
|
SU1315989A1 |
Управляющая векторная вычислительная система | 1982 |
|
SU1120340A1 |
Изобретение относится к вычислительной технике и предназначено для использования в высокопроизводительных цифровых системах обработки информации. Цель изобретения - повышение быстродействия. Указанная цель достигается благодаря сочетанию в его реализации принципа насыщения конвейера командами нескольких независимых программ с принципом конвейера без блокировки между командами независимых программ за счет введения индивидуального управления выдачей на обработку очередной команды каждой из программ. Для этого предлагаемое изобретение содержит коммутатор кодов условий, буферную память кодов условий, коммутатор условий, формирователь адреса, регистр адреса, память команд, регистр команд, дешифратор типа команды, регистр кода операций, регистр адреса первого операнда, регистр номера программы, регистр адреса второго операнда, регистр адреса результата, буферную память операндов, четыре буферных регистра, коммутатор операндов, блок пересыл,ок, блок распределения результатов. 3 з. п. ф-лы, 5 ил. ч сл с
второго регистра, первая группа выходов которого соединена с группой входов второго элемента ИЛИ и группой информационных входов второго коммутатора, информационный и группа управляющих входов которого соединены соответственно с выходом второго элемента ИЛИ и второй группой выходов второго регистра, выходы второго коммутатора образуют выходы блока с первого по пятый
3 Устройство поп 1,отличающее- с я тем, что блок распределения результатов содержит три группы регистров, группу дешифраторов и группу демультиплексоров, причем синхровход блока распределения результатов соединен с входами записи регистров группу с первой по третью, управля- ющий вход блока распределения результатов соединен с информационным входом первого регистра первой группы, первый и второй информационные входы блока распределения результатов соединены с первым и вторым информационными входами первого регистра второй группы, выход j-ro (j fTK-2, К - число тактов, за которое выполняется самая длинная команда) регистра первой группы соединен с информационным входом Q М)-го регистра первой группы и входом j-ro дешифратора группы, выход которого соединен с управляющим входом j-ro демультиплексора группы, информационный вход которого соединен с выходом j-ro регистра второй группы, первый и второй выходы демультиплексора соединены соответственно с информационным входом (j+1)-ro регистра второй группы и первым информационным входом j-ro регистра третьей группы, выход (К-1)-го регистра первой группы соединен с входом (К-1)-го дешифратора группы, выход которого соединен с управляющим входом (К-1}-го демультиплексора группы, информационный вход которого соединен с выходом (К-1)-го регистра второй группы, первый и второй выходы (К-1)-го демультип
0
5
три группы элементов ИЛИ, группу счетчиков, группу блоков элементов И, группу триггеров, блок элементов И, блок элементов ИЛИ, элемент ИЛИ, формирователь импульсов, причем первый и второй управляющие входы формирователя адреса соединены с информационным и стробиру- ющим входами первого дешифратора, i-й выход которого (, Kf, N - число выполняе- 5 мых одновременно программ) соединен с первым входом i-ro элемента ИЛИ первой группы, выход которого сбединен с единичным входом соотве тй твующёго триггера группы, выход которого соединен с первым входом соответствующего блока элементов И группы, выход которого соединен с входом соответствующего элемента ИЛИ второй группы и соответствующим входом блока элементов ИЛИ, выход которого соединен с входом элемента ИЛИ и является выходом формирователя адреса третий и четвертый управляющие входы которого соединены с первыми входами элементов ИЛИ третьей группы и элементов И первой группы, выходы которых соединены с вторыми входами соответствующих элементов ИЛИ третьей группы, выходы которых соединены с входами записи-счета соответствующих счетчиков группы, выходы которых соединены с вторыми входами соответствующих блоков элементов И группы, пятый управляющий вход формирователя адреса соединен с вторыми входами элементов И первой группы, третьи входы которых соединены с соответствующими выходами второго дешифратора и первыми входами блоков элементов И, вторые входы которых соединены с шестым управляющим входом формирователя адреса, седьмой управляющий вход которого соединен с входом второго дешифратора, информационный вход формирователя адреса соединен с информационными входами счетчиков группы выходы блока элементов И соединены с вторыми входами соответствующих элемен0
5
0
5
0
тов ИЛИ первой группы, синхровход формирователя адреса соединен с входом запуска формирователя импульсов и первыми входами элементов И второй группы, выходы которых соединены с входами сброса соответствующих триггеров группы, выход элемента ИЛИ соединен с входом останова формирователя импульсов, группа выходов которого соединена с третьими входами соответствующих блоков элементов И группы,
выходы элементов ИЛИ второй группы соединены с вторыми входами соответствующих элементов И второй группы, синхровход формирователя адреса соединен с синхровходами счетчиков группы, выход 1-го элемента ИЛИ первой группы соединен с входом разрешения счета 1-го счетчика группы.
фцъ.1
J5
j
Tt
H tI
Фиг. 2
i3&i;8. J
38 1
39 f
(-rH-t t
T-3J7.f
W-Л.
-CZD
лг
, млг,, ,,7-v
5г
о
w
С
rb
-&
w
si
Ы
I1МН I11 МН41
JJ4W/.2 -№./ //(.г,
,« ,,
ф фI V
-.
CJ |fb
§ 5
«
&t 3 0
От бл.ЮОтЬлМ От fa 11
I
W
I
фиг, 5
James E | |||
Smith, Shlomowelss, Nicholas Y, Pang | |||
A Simulation Study of Decoupled Architecture Computers | |||
- lEETransactions on Computers, v | |||
Приспособление для точного наложения листов бумаги при снятии оттисков | 1922 |
|
SU6A1 |
Устройство управления конвейерным вычислительным устройством | 1980 |
|
SU896623A1 |
кл | |||
Приспособление для точного наложения листов бумаги при снятии оттисков | 1922 |
|
SU6A1 |
Авторы
Даты
1992-07-30—Публикация
1991-01-21—Подача