Устройство управления конвейерным вычислительным устройством

 

Союз Советских

Социалистических

Республик

ОПИСАНИЕ

ИЗОБРЕТЕНИЯ о»896623

К АВТОРСКОМУ СВИДЕТИЗЬСТВУ (61) Дополнительное к авт. свид-ву (22) Заявлено 22.04.80 (21) 2916535/18-24 с присоединением заявки HP (23) Приоритет

Опубликовано 07.0182. Бюллетень И9 1

Дата опубликования описания р7. р1. 82 (51)М. Кл з

6 06 F 9/30

Государстаенный комитет.СССР ио делам изобретений и открытий (53) УДК 681.З (088. 8) (72) Авторы изобретения

Л.К. Самойлов, С.В. Николаев и С.В. Левонюк ,1"=-. »

/ ДР

Таганрогский радиотехнический институт ифр-,В, -кал;-". в

7 (71) Заявитель (54) УСТРОЙСТВО УПРАВЛЕНИЯ КОНВЕЙЕРНЫМ ВИЧИСЛИТЕЛЬНЫЙ

УСТРОЙСТВОМ

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

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

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

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

896623 с выходом группы буферов, а выход группы буферов соединен со входом арифметического блока, выход которого соединен со второй и третьей вспомогательной памятью и со входом буфера записи, выход буфера записи соединен со входом основной памя- 5 ти f2).

В известном устройстве возможны случаи, когда очередная считанная из памяти команда не может быт выполнена. Это происходит, когда для выполнения данной команды требуется операнд, являющийся Результатом одной из предыдущих команд, выполнение которых еще не. завершено (например, команда условной передачи управле- 15 ния в зависимости от знака операнда не может быть выполнена, пока не будет вычислен сам операнд).Возникновение таких ситуаций приводит к тому, что устройство простаивает неко- 2О торое время, ожидая, пока не будет подготовлен операнд. В результате скорость выполнения команд, опредеnsi " ая частотой поступления потока команд на выполнение, снижается.

Цель изобретения - повышение быстродействия устройства.

Поставленная цель достигается тем, что в устройство управления конвейерным вычислительным устройством, содержащее память к манд, сумматор, ЗО регистр адресов команд, регистр команд, первый второй регистры кода операции„ регистр адресов операндов, блок синхронизации, выход которого соединен со входами синхронизации И регистра адресов команд, регистра команд, первого и второго регистров кода операции, регистра адресов операндов и памяти команд, выход которой соединен со входом регистра ко- 4О манд, выход регистра адресов команд соединен с информационным входом памяти команд и со входом сумматора, выход первого регистра кода операции соединен со входом второго регистра кода операции, выходы блока синхронизации, регистра адресов операндов, второго регистра кода опера-, ции являются соответственно выходом синхронизации, пеРвым и вторым управляющими выходами устройства, дополнительно введены шесть. блоков элементов И, два блока элементов ИЛИ, два элемента НЕ, группа регистров задержки, два регистра задержки,дешифратор, вход, первая и вторая груп- 55 пы выходов которого соединены соот.ветственно с первым выходом регистра. команд, группами входов первого регистра кода операции и первого регистра задержки, выход которого является у» третьим выходом устройства, первый .выход дешифратора соединен с первьм входом первого,блска элементов И, второй выход дешифратора соединен с первьюли входами второго и третьего .у блоков элементов И, третий выход дешифратора соединен с первым входом четвертого блока элементов И, выход сумматора соединен со входом второго регистра задержки, выход которого .. соединен со вторыми входами первого и второго блоков элементов И, выходы первого, второго, третьего и четвертого блоков элементов И соединены с соответствующими входами первого блока элементов ИЛИ, выход которого соединен со входом первого регистра задержки группы, вход каждого последующего регистра задержки группы соединен с выходом предыдущего регистра задержки группы, выход последнего регистра задержки группы соединен со входом регистра адресов команд, второй выход регистра команд соединен с первым входом пятого блока элементов И и через первый элемент НЕ с первым входом шестого блока элементов И, третий выход регистра команд соединен си вторыми входами третьего, .четвертого и пятого блоков элементов И, выходы пятого и шестого блоков элементов И соединены с соответствующими входами второго блока элементов ИЛИ, выход которого соединен со входом регистра адресов операндов, первый вход устройства соединен со вторым входом шестого блока элементов И, второй вход устройства соединен с третьим входом третьего блока элементов И и через второй элемент НŠ— с третьим входом второго блока элементов И, входы синхронизации регистров задержки группы, первого и второго регистров задержки соединены с выходом блока синхронизации.

На чертеже представлена блок-схема устройства управления.

Конвейерное вычислительное устройство содержит устройство 1 управления, память 2 операндов, регистр 3 операндов, конвейерное арифлетическологическое устройство (АЛУ) 4, первый

5 и второй 6 выходные регистры. Устройство 1 управления содержит сумматор 7, регистр 8 задержки, элемент HE 9, блоки 10-13 элементов И, блок 14 элементов ИЛИ, группу 15 регистров задержки, регистр 16 адресов команд, память 17 команд, регистр 18 команд, дешифратор 19, элемент HE 20, блоки 21 и 22 элементов И, блок 23 элементов ИЛИ, регистр 24 кода операций, регистр 25 задержки, регистр

26 адресов Операндов, регистр 27 кода операции, блок 28 синхронизации.

Конвейерное АЛу 4 обрабатывает полученную информацию в течении и тактов (такт — время, равное периоду генератора синхроимпульсов) и представляет собой и последовательно соединенных вычислительных звеньев, Каждое звено содержит логическую комбинационную схему и регистр (регист896623 ры). Логическая комбинационная схема данного вычислительного звена,принимая информацию из регистров предыдущего вычислительного звена,выполняет определенную простую арифметическую или логическую функцию (на-, пример, операцию "И", операцию сло5 жения двух двоичных чисел и т.п.) и записывает результат (результаты) в регистр (регистры) данного вычислительного звена. За время прохода информации через все и звеньев выполняются сложные операции. При этом простая операция в АЛУ выполняется в первых звеньях этого АЛУ, и далее результат операции перемещается без преобразований. Конвейерное АЛУ IS позволяет одновременно выполнять и арифметических и логических опера- ций, причем в каждом также производится прием операндов и кода операции для выполнения в АЛУ, и,.со- 2() ответственно, в каждом такте выдаются результаты выполненных операций. В частном случае конвейерное

АЛУ может пропустить на выход без преобразования либо информацию со своего первого информационного- входа, либо со своего второго информа- ционного входа. Запись (прием) информации в регистры вычислительных звеньев конвейерного АЛУ, так же, как и запись информации во все остальные регистры конвейерного вычислительного устройства, производится по приходу синхроимнульса от блока синхронизации. Период синхроимпульсов выбирается так, чтобы за это время можно было или считать команду из памяти 17 команд, или считать либо записать информацию в память 2 операндов, или осуществить преобразование информации в любой 40 комбинационной схеме, принимающей информацию из одного регистра и выдающей результат в другой регистр (например, в логической комбинационной схеме вычислительного звена 45 конвейерного АЛУ). Величина э выбирается в зависимости от соотношения между быстродействием памяти (операндов или команд) и быстродействием логических схем, а также в зависимости от типа команд, выполняемых в конвейерном АЛУ. В конвейерном вычислительном устройстве производится одновременное решение и задач, причем

Устройство работает следующим образом.

По адресу, записанному в регистре 60 адресов 16 команд, производится считывание из памяти 17 команд очередной команды данной программы. Это считывание производится в регистр

18 команд в момент прихода синхро- 65 импульса от генератора синхроимпульсов. Одновременно увеличенное на единицу сумматором 7 значение адреса из регистра 16 записывается в регистр 8 задержки. Далее код операции команды, считанной в регистр 18 команд, расшифровывается дешифратором 19. При этом возбуждается одна из трех линий первой группы выходов дешифратора (э зависимости от того, является ли считанная команда командной безусловной передачи управлейия, командой условной передачи управления или любой другой командой), один из выходов второй группы выходов дешифратора (в зависимости от того, какая функция должна быть реализована конвейерным АЛУ 4 для выполнения считанной команды) и выход дешифратора (в зависимости от того, требует ли считанная команда чтения из памяти 2 операндов, записи в память 2 операндов или не требует ни чтения, ни записи). Если в регистр 18 команд была считана команда безусловной передачи управления, то возбужденная кодом операции этой команды соответствующая линия первой группы выходов дешифратора

19 открывает блок 13 элементов И, что позволяет по приходу синхроимпульса записать через блок 14 элементов HJIH в первый регистр 15.1 группы регистров 15 задержки адрес перехода из адресного поля коканды, находящейся в регистре 18 команд.

Если в регистр 18 команд считана команда условной передачи управления в зависимости от знака результата выполнения предыдущей команды этой же программы, то открыт или блок 11 элементов И или блок 12.

Если результат выполнения предыдущей команды данной программы отрицательный (в знаковом разряде этого результата единица), то открыт блок 12 элементов И, что позволяет по приходу синхроимпульса записать через блок 14 элементов ИЛИ в первый регистр 15.1 группы регистров задержки адрес перехода из адресного поля команды, находящейся в регистре 18 команд, т.е, в данном случае реализуется операция условного перехода по отрицательному значению результата выполнения предыдущей команды данной программы. Если же результат выполнения предыдущей команды данной программы положительный (a знаковом разряде этого результата ноль), то открыт блок 11 элементов И, что позволяет по приходу синхроимпульса записать через блок 14 элементов ИЛИ в первый регистр 15.1 группы регистров задержки адрес из регистра 8 задержки, т.е. в данном случае не реализуется операция условного перехода,так как результат выполнения предыдущей

896623 команды данной программы не является отрицательным. И, наконец, если в регистр 18 команд считана когланда, не являющаяся командой передачи управления (условного или безусловного), то открыт блок 10 элементов И, что позволяет по приходу синхроимпульса записать через блок 14 элементов ИЛИ в первый регистр 15.1 группы регистров задержки адрес из регистра 8 задержки.

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

Одновременно с записью адреса в регистр 15.1 производится запись информации со второй группы выходов . 15 дешифратора 19 в регистр 24 кода операции и информации с выхода дешифратора 19 в регистр 25 задержки.

Регистры 24 и 25 предназначены для задержки информации на один такт. 20

Одновременно с записью адреса в регистр 15.1 производится формирование адреса операнда считанной в регистр 18 команд команды данной программы. В устройстве возможны два типа адресации памяти 2 операндов: прямая и косвенная. При прямой адресации в качестве адреса для обращения к памяти 2 операндов используется содержимое адресного поля текущей когланды данной программы, причем по этому адресу можно или считывать информацию из памяти 2, или записывать информацию в эту память. При косвенной адресации в качестве адреса для обращения к памяти 2.операндов используется результат выполнения предыдущей команды данной программы (например, если предыдущая команда данной программы была командой считывания с прямой адресацией содержимого 40 определенной ячейки памяти 2 операндов, то содержимое этой ячейки и будет являться адресом операнда текущей команды данной. программы, если эта текущая команда использует косвен- 45 ную адресацию). При этом косвенная адресация используется только для считывания информации. Запись с косвенной адресацией производить нельзя. Таким образом, если в разря- 50 де признака адресации регистра 18 команд будет записана "1" (т.е. команда, находящаяся в этом регистре, использует прямую адресацию), то открывается блок 22 элементов И, что позволяет по приходу синхроимпульса записать через блок 23 элементов .ИЛИ в регистр 26 адресов операндов инфорглацию из поля адреса регистра

18 команд (т.е.. адрес операнда текущей команды данной программы). Если 60 же в разряде признака адресации регистра 18 команд записан "0" (т.е. команда, находящаяся в этом регистре использует косвенную адресацию), то открывается блок 21 элементов И, 65 что позволяет по приходу синхроимпульса записать через блок 23 элементов ИЛИ в регистр 26 адресов операндов информацию с выхода конвейерного .АЛУ 4, являющуюся результатом выполнения предыдущей команды данной программы. Одновременно производится запись результата выполнения предыдущей команды данной программы с выхода конвейерного

АЛУ 4 в выходной регистр 5.

Далее, по приходу следующего синхроимпульса производится либо считывание информации из памяти 2 операндов в регистр 3 операндов,либо запись инфорглации с выхода выходного регистра 5 (результат выполнения предыдущей команды данной программы) в память 2 операндов, либо не производится ни считывания, ни записи. Обращение к памяти 2 производится по адресу из регистра 26 адресов операндов с использованием выходных сигналов регистра 25 задерж- ки, управляющих режимом работы памяти 2 (чтение, запись или отсутствие и чтения и записи). Считывание из памяти 2 производится при выполнении команд чтения (с прямой или косвенной адресацией) и команд реализации двухместных арифметических и логических операций (команда умножения, команда ИЛИ и т.п.). Запись в память 2 производится при выполнении команды записи в память результата выполнения предыдущей команды данной программы. Ни запись, ни считывание не производятся при выполнении команд безусловной и условной передачи управления, а также команд реализации одноместных арифметических и логических операций, операнд которых уже находится в конвейерном АЛУ 4 (например, Ко манда циклического сдвига вправо на один разряд результата выполнения предыдущей команды данной программы).

Одновременно со считыванием информации из памяти 2 в регистр 3 операндов производится запись кода операции этой команды из регистра

24 кода операции в регистр 27 кода операции и запись результата выполнения предыдущей команды данной программы иэ выходного регистра 5 в выходной регистр 6.

Далее, по приходу следующего синхроимпульса информация с выходов регистров 3,6 и 27 поступает в конвейерное АЛУ 4. АЛУ начинает выполнять функцию, определяемую кодом oneрации текущей команды данной программы, причем сама функция задается значением выходных сигналов, поступающих иэ регистров 27 кода операции, а в качестве исходных данных для выполнения этой функции используется информация, полученная либо

896623 с выхода регистра 3, либо с выхода регистра 6, либо с выходов обоих этих регистров. Такими функциями могут быть двухместные арифметические и логические операции (здесь в качестве nepaoro операнда используется информация, полученная с выхода регистра 3, а в качестве второго операнда — информация, полученная с выхода регистра 6),одноместные арифметические или логические операции над информацией, полученной с выхода регистра 6, отсутствие преобразования информации, полученной с выхода регистра 3 (т.е. передача этой информации через конвейерное АЛУ 4 без ее изменения),или 15 отсутствие преобразования информации, полученной с выхода регистра 6 (т.е. передача этой информации на выход конвейерного АЛУ 4 без изменения).

Таким образом, конвейерное АЛУ 4 поз- 2() воляет выполнить двухместные арифметические и логические операции,причем первым операндом этих операций является операнд текущей команды данной программы, а вторым операндом— результат выполнения предыдущей команды этой же программы, одноместные арифметические и логические операции над результатом выполнения предыдущей команды данной программы, передачу информации с выхода регистра 3 операндов и на вход АЛУ (при выполнении команд чтения из памяти с прямой или косвенной адресацией) с тем, чтобы последующая команда данной программы могла бы использовать эту информацию, а также передачу результата выполнения предыдущей команды данной программы на выход АЛУ (при выполнении команды записи результата предыдущей операции данной программы 40 в память 2 операндов или команд безусловной либо условной передачи управ- ления) с тем, чтобы последующая команда данной программы могла бы использовать эту информацию. 45

Через и тактов после подачи информации на вход конвейерного АЛУ 4 будет получен результат выполненной операции на выходе этого АЛУ. К этому же моменту времени s регистр 18 команд считана очередная команда данной программы, так как за время считывания текущей команды данной программы из памяти 17 в регистр 18,время формирования адреса операнда этой команды, время чтения этого операнда из памяти 2 в регистр 3 и время выполнения операции для данной команды в конвейерном АЛУ 4 вычислено приращение адреса текущей команды данной программы, сформирован адрес следую- 0 щей команды этой же программы, задержан сформированный адрес с помощью и регистров 15 задержки, записан данный адрес в регистр 16 и считана следующая команда из памяти 17 в регистр g5

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

2, а после задержки результата еще на один такт (с помощью регистра 6) этот результат может использоваться для выполнения операции в конвейерном АЛУ 4.

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

При одновременном решении в конвейерном вычислительном устройстве и задач через каждые N тактов будет считываться из памяти 17 команда данной задачи на выполнение (также по истечении каждых М тактов будет выполняться одна команда данной задачи), т.е. время выполнения любой команды данной задачи равно ТИ где Т - период синхроимпульсов, поступающих от генератора синхроимпульсов. Однако с учетом того, что решаются одновременно N задач, получим, что результирующее время выполнения любой команды равно Т, т.е. из памяти 17 считывается суммарный поток команд (всех N решаемых задач) с частотой, равной частоте работы ге.нератора синхроимпульсов. Эта частота и определяет результирующую скорость выполнения .команд всех задач. В обычных конвейерных вычислительных устройствах (выполняющих решение одной задачи) такая же ско" рость выполнения команд может быть достигнута только в том случае, если каждая вновь считанная из памяти команда не использует результаты предшествующих команд, выполнение которых еще не завершено в конвейерном вычислительном устройстве.

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

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

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

Источники информации, принятые во внимание при экспертизе

1. Патент США М 3728692, кл. 235-153,. онублик. 1973.

2. Патент ChlA Р 3949379. кл. 235-153, опублик. 1976 (прототип).

Устройство управления конвейерным вычислительным устройством Устройство управления конвейерным вычислительным устройством Устройство управления конвейерным вычислительным устройством Устройство управления конвейерным вычислительным устройством Устройство управления конвейерным вычислительным устройством Устройство управления конвейерным вычислительным устройством Устройство управления конвейерным вычислительным устройством 

 

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

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

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

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

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

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

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

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

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