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

Номер патента: 896623

Авторы: Левонюк, Николаев, Самойлов

ZIP архив

Текст

Союз Советских Социалистических Рвслублик(22) Заявлено 22.04.80 (21) 291 б 535/18-24с присоединением заявки Мо.СССР яо дедам изобретений и открытий(54) УСТРОЙСТВО УПРАВЛЕНИЯ КОНВЕЙЕРНЫМ ВЫЧИСЛИТЕЛЬНЫЙУСТРОЙСТВОМ орой прогй блок обнекоторое корость я команда из в этом конвейерн анд простаивае снижает общую команд. ни очередн раммы. При работки ком время, что выполнения сли- для тениеехниканиявых с м данного устр сложность лог го, возможен с быть выполнены иэ первой прог остатк отнест роме т могут оманда Изобре относится к вычительной т е и предназначеноиспользов в высокопроизводительных цифро истемах обработки инФормации.Известно устройство выборки инструкций для блока обработки инструкций, обслуживающего две различныепрогра "ы которое содержит первый 10вентиль, информационный вход которого соединен с информационным выходомпервого буфера команд, а управляющийвход вентиля, подсоединенный к первому входу триггера, соединен с первымвыходом логической схемы. информационный вход второго вентиля соединен с информационным выходом второго буфера команд, а управляющий входэтого вентиля, подсоединенный ковторому входу триггера, подключен ко 20второму выходу логической схемы,выходы обоих вентилей подсоединены ковходу регистра команд, выход которого связан со входом логической схемь: 1.25К нед а ойстваследует и ическойсхемы. К о лучай,когда не ни очередная к раммы, 30 Наиболее близким к предлагаемому по технической сущности является устройство поточной обработки информации, имеющее быстродействующую вспомогательную память. Данное устройство содержит программный счетчик выход которого соединен с первым входом блока выборки команд, второй вход которого связан с первой вспомогательной памятью, а выход - со входом группы буферов и со входом блока управления стеком, выход послед него блока подключен к первому входу блока обращения к стеку, второй вход которого подсоединен ко второй вспомогательной памяти, а выход соединен со входом блока индексации, выход блока индексации соединен с первью входом блока обращения за операндами, второй вход которого связан с третьей вспомогательной памятью, а выход блока обращения за операндами подключен к первоМУ входу буферов, второй вход группы буферов соединенс выходом группы буферов, а выход группы буферов соединен со входом арифметического блока, выход которого соединен со второй и третьей вспомогательной памятью и со входом буфера записи, выход буфера записи соединен со входом основной памя ти 2).В известном устройстве возможны случаи, когда очередная считанная из памяти команда не может быт выполнена. Это происходит, когда для 10 выполнения данной команды требуется операнд, являющийся результатом одной из предыдущих команд, выполнение которых еще не. завершено (например, команда условной передачи управле ния в зависимости от знака операнда не может быть выполнена, пока не будет вычислен сам операнд).Возникновение таких ситуаций приводит к тому, что устройство простаивает неко О торое время, ожидая, пока не будет подготовлен операнд. В результате скорость выполнения команд, опреде" лЖ"ая частотой поступления потока команд на выполнение, снижается.Цель изобретения - повышение быстродействия устройства.Поставленная цель достигается тем, что в устройство управления конвейерным вычислительным устройством, содержащее память команд, сумматор, ЗО регистр адресов команд, регистр команд, первый второй регистры кода операции регистр адресов операндов, блок синхронизации, выход которого соединен со входами синхронизации З 5 регистра адресов команд, регистра команд, первого и второго регистров кода операции, регистра адресов операндов и памяти команд, выход которой соединен со входом регистра ко О манд, выход регистра адресов команд соединен с информационным входом памяти команд и со входом сумматора, выход первого регистра кода операции соединен со входом второго регистра кода операции, выходы блока синхронизации, регистра адресов операндов, второго регистра кода опера-, ции являются соответственно выходом синхронизации, первым и вторым управляющими выходами устройства, дополнительно введены шесть. блоков элементов И, два блока элементов ИЛИ, два элемента НЕ, группа регистров задержки, два регистра задержки,дешифратор, вход, первая и вторая груп пы выходов которого соединены соот.ветственно с первым выходом регистра. команд, группами входов первого регистра кода операции и первого регист. ра задержки, выход которого является ло третьим выходом устройства, первый .выход дешифратора соединен с первьи входом первого,блска элементов И, второй выход дешифратора соединен с первыли входами второго и третьего у блоков элементов И, третий выход дешифратора соединен с первым входом четвертого блока элементов И, выход сумматора соединен со входом второго регистра задержки, выход которогосоединен со вторыми входами первого и второго блоков элементов И, выходы первого, второго, третьего и четвертого блоков элементов И соединены с соответствующими входами первого блока элементов ИЛИ, выход которого соединен со входом первого регистра задержки группы, вход каждого последующего регистра задержки группы соединен с выходом предыдущего регистра задержки группы, выход последнего регистра задержки группы соединен со входом регистра адресов команд, второй выход регистра команд соединен с первым входом пятого блока элементов И и через первый элемент НЕ с первым входом шестого блока элементов И, третий выход регистра команд соединен со вторыми входами третьего, .четвертого и пятого блоков элементов И, выходы пятого и шестого блоков элементов И соединены с соответствующими входами второго блока элементов ИЛИ, выход которого соединен со входом регистра адресов операндов, первый вход устройства соединен со вторым входом шестого блока элементов И, второй вход устройства соединен с третьим входом третьего блока элементов И и через второй элемент НЕ - с третьим входом второго блока элементов И, входы синхронизации регистров задержки группы, первого и второго регистров задержки соединены с выходом блока синхронизации.На чертеже представлена блок-схема устройства управления.Конвейерное вычислительное устройство содержит устройство 1 управления, память 2 операндов, регистр 3 операндов, конвейерное арифметическологическое устройство (АЛУ) 4, первый 5 и второй 6 выходные регистры. Устройство 1 управления содержит сумматор 7, регистр 8 задержки, элемент НЕ 9, блоки 10-13 элементов И, блок 14 элементов ИЛИ, группу 15 регистров задержки, регистр 16 адресов команд, память 17 команд, регистр 18 команд, дешифратор 19, элемент НЕ 20, блоки 21 и 22 элементов И, блок 23 элементов ИЛИ, регистр 24 кода операций, регистр 25 задержки, регистр 26 адресов Операндов, регистр 27 кода операции, блок 28 синхронизации.Конвейерное АЛУ 4 обрабатывает полученную информацию в течении о тактов (такт - время, равное периоду генератора синхроимпульсов) и представляет собой и последовательно соединенных вычислительных звеньев, Каждое звено содержит логическую комбинационную схему и регистр (регистры). Логическая комбинационная схема данного вычислительного звена,принимая информацию из регистров преды" дущего вычислительного звена,выполняет определенную простую арифметическую или логическую Функцию (на-, пример, операцию "Иф, операцию сло 5 жения двух двоичных чисел и т.п,) и записывает результат (результаты) в регистр (регистры) данного вычислительного звена. За время прохода информации через все и звеньев выполняются сложные операции. При этом простая операция в АЛУ выполняется в первых звеньях этого АЛУ, и далее результат операции перемещается без преобразований. Конвейерное АЛУ 15 позволяет одновременно выполнять о арифметических и логических опера- ций, причем в каждом также производится прием операндов и кода операции для выполнения в АЛУ, и, со ответственно, в каждом такте выдаются результаты выполненных операций. В частном случае конвейерное АЛУ может пропустить на выход без преобразования либо информацию со своего первого информационного. вхо" да, либо со своего второго информа- ционного входа. Запись (прием) информации в регистры вычислительных звеньев конвейерного АЛУ, так же, как и запись информации во все остальные регистры конвейерного вычислительного устройства, производится по приходу синхроимнульса от блока синхронизации. Период синхроимпульсов выбирается так, чтобы за это время можно было или считать команду из памяти 17 команд, или считать либо записать информацию в память 2 операндов, или осуществить преобразование информации в любой 40 комбинационной схеме, принимающей информацию из одного регистра ивыдающей результат в другой регистр (например, в логической комбинационной схеме вычислительного звена 45 конвейерного АЛУ). Величина э выби" рается в зависимости от соотношения между быстродействием памяти (операндов или команд) и быстродействием логических схем, а также в зависимости от типа команд, выполняемых в конвейерном АЛУ. В конвейерном вычислительном устройстве про" изводится одновременное решение й задач, причем55 Устройство работает следующим образом. По адресу, записанному в регистре 60 адресов 16 команд, производится считывание из памяти 17 команд очередной команды данной программы. Это считывание производится в регистр 18 команд в момент прихода синхро импульса от генератора синхроимпульсов. Одновременно увеличенное на единицу сумматором 7 значение адресаиз регистра 16 записывается в регистр 8 задержки. Далее код операции команды, считанной в регистр 18команд, расшифровывается дешифратором 19. При этом возбуждается однаиз трех линий первой группы выходовдешифратора (э зависимости от того,является ли считанная команда команднбй безусловной передачи управлейия, командой условной передачи управления или любой другой командой),один из выходов второй группы выходов дешифратора (в зависимости оттого, какая функция должна бытьреализована конвейерным АЛУ 4 длявыполнения считанной команды) и выход дешифратора (в зависимости оттого, требует ли считанная командачтения из памяти 2 операндов, записи в память 2 операндов или не тре"бует ни чтения, ни записи). Если врегистр 18 команд была считана команда безусловной передачи управления, то возбужденная кодом операцииэтой команды соответствующая линияпервой группы выходов дешифратора19 открывает блок 13 элементов И,что позволяет по приходу синхроимпульса записать через блок 14 элементов ИЛИ в первый регистр 15.1группы регистров 15 задержки адресперехода из адресного поля коканды,находящейся в регистре 18 команд,Если в регистр 18 команд считана команда условнойпередачи управления в зависимости от знака результатавыполнения предыдущей команды этойже программы, то открыт илиблок 11 элементов И или блок 12.Если результат выполнения предыдущей команды данной программы отрицательный (в знаковом разряде этого результата единица), то открытблок 12 элементов И, что позволяетпо приходу синхроимпульса записатьчерез блок 14 элементов ИЛИ в первый регистр 15.1 группы регистровзадержки адрес перехода из адресного поля команды, находящейся в регистре 18 команд, т.е, в данном случае реализуется операция условного перехода по отрицательному значениюрезультата выполнения предыдущейкоманды данной программы. Если жерезультат выполнения предыдущей команды данной программы положительный (э знаковом разряде этого результата ноль), то открыт блок 11элементов И, что позволяет по приходу синхроимпульса записать черезблок 14 элементов ИЛИ в первый регистр 15,1 группы регистров задержки адрес из регистра 8 задержки,т.е. в данном случае не реализуется операция условного перехода,таккак результат выполнения предыдущейкоманды данной программы не являетсяотрицательным. И, наконец, если в регистр 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 операндов, то содержимое этой ячейки и будет являться адресом операнда текущей команды данной. программы, если эта текущая команда использует косвен ную адресацию). При этом косвенная адресация используется только для считывания информации. Запись с косвенной адресацией производить нельзя. Таким образом, если в разряде признака адресации регистра 18 команд будет записана "11 (т,е. команда, находящаяся в этом регистре, использует прямую адресацию), то открывается блок 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. АЛУ начинает выполнять функцию, определяемую кодом операции текущей команды данной программы, причем сама Функция задается значением выходных сигналов, поступающих иэ регистров 27 кода операции, а в качестве исходных данных для выполнения этой функции используется информация, полученная либос выхода регистра 3, либо с выхода регистра б, либо с выходов обоих этих регистров. Такими функциями могут быть двухместные арифметические и логические операции (здесь в качестве первого операнда используется информация, полученная с выхода регистра 3, а в качестве второго операнда - информация, полученная с выхода регистра б),одноместные арифметические или логические операции над информацией, полученной с выхода регистра б, отсутствие преобразования информации, полученной с выхода регистра 3 (т.е. передача этой информации через конвейерное АЛУ 4 без ее изменения),или 15 отсутствие преобразования информации, полученной с выхода регистра б (т.е. передача этой информации на выход конвейерного АЛУ 4 без изменения),Таким образом, конвейерное АЛУ 4 поз воляет выполнить двухместные арифметические и логические операции,причем первым операндом этих операций является операнд текущей команды данной программы, а вторым операндом - результат выполнения предыдущей команды этой же программы, одноместные арифметические и логические операции над результатом выполнения предыдущей команды данной программы, передачу информации с выхода регистра 3 операндов и на вход АЛУ (при выполнении команд чтения из памяти с прямой или косвенной адресацией) с тем, чтобы последующая команда данной программы могла бы использовать эту информацию, а также передачу результата выполнения предыдущей команды данной программы на выход АЛУ (при выполнении команды записи результата предыдущей операции данной программы 40 в память 2 операндов или команд безусловной либо условной передачи управ- ления) с тем, чтобы последующая команда данной программы могла бы использовать эту информацию. 45Через и тактов после подачи информации на вход конвейерного АЛУ 4 будет получен результат выполненной операции на выходе этого АЛУ. К этому же моменту времени в регистр 18 ко манд считана очередная команда данной программы, так как за время считывания текущей команды данной программы из памяти 17 в регистр 18,время формирования адреса операнда этой команды, время чтения этого операнда из памяти 2 в регистр 3 и время выполнения операции для данной команды в конвейерном АЛУ 4 вычислено приращение адреса текущей команды данной программы, сформирован адрес следую щей команды этой же программы, за" держан сформированный адрес с помощью и регистров 15 задержки, записан данный адрес в регистр 16 и считана следующая команда из памяти 17 в регистр 5 18 команд. Таким образом, результатвыполнения текущей команды даннойпрограммы может быть использован следующей командой этой же программыдля формирования адреса очередной команды данной программы и для формирования адреса операнда этой следующейкоманды. После задержки на один тактрегистром 5 результата выполненияданной команды следующая команда может записать этот результат в память2, а после задержки результата ещена один такт (с помощью регистра б)этот результат может использоватьсядля выполнения операции в конвейерном АЛУ 4.Таким образом осуществляется выполнение команд данной программы,т.е. производится решение данной задачи,При одновременном решении в конвейерном вычислительном устройствей задач через каждые й тактов будет считываться из памяти 17 команда данной задачи на выполнение (также по истечении каждых й. тактов будет выполняться одна команда даннойзадачи), т.е. время выполнения любой команды данной задачи равно Тйгде Т - период синхроимпульсов, поступающих от генератора синхроимпульсов. Однако с учетом того, что решаются одновременно й задач,получим,что результирующее время выполнениялюбой команды равно Т, т.е. из памяти 17 считывается суммарный потоккоманд (всех й решаемых задач) счастотой, равной частоте работы генератора синхроимпульсов. Эта частота и определяет результирующуюскорость выполнения .команд всех задач. В обычных конвейерных вычислительных устройствах (выполняющихрешение одной задачи) такая же ско"рость выполнения команд может бытьдостигнута только в том случае, если каждая вновь считанная из памятикоманда не использует результатыпредшествующих команд, выполнениекоторых еще не завершено в конвейерном вычислительном устройстве.формула изобретенияУстройство управления конвейерным вычислительным устройством,содержащее память команд, сумматор, регистр адресов команд, регистр команд, первый и второй регистры кода операции, регистр адресов операндов, блок синхронизации, выход которого соединен со,входами синхронизации регистра адресов команд, регистра команд, первого и второго регистров кода операции, регистра адресов операндов и памяти команд, выход которойсоединен со входом регистра команд, выход регистра ад 896623 12ресов команд соединен с информационным входом памяти команд и совходом сумматора, выход первого регистра кода операции соединен совходом второго регистра кода опера"ции, выходы блока синхронизации,регистра адресов операндов, второгорегистра кода операции являются соответственно выходом синхронизации,первым и вторым управляющими входами устройства, о т л и ч а ю щ ее с я тем, что, с целью повышениябыстродействия, в него дополнительно введены шесть блоков элементов Идва блока элементов ИЛИ, два элемента НЕ, группа регистров задержкидва регистра задержки, дешифратор,вход, первая и вторая группы выходов которого соединены соответственно с первым выходом регистра команд, с группами входов первого регистра кода операции и первого регистра задержки, выход которого является третьим выходом устройства,первый выход дешифратора соединенс первым входом первого блока элементов И, второй выход дешифраторасоединен с первыми входами второгои третьего блоков элементов И,третий выход дешифратора соединен спервым входом четвертого блока элементов И, выход сумматора соединенсо входом второго регистра задержки, выход которого соединен совторыми входами первого и второгоблоков элементов И, выходы первого,второго, третьего и четвертого блоков элементов И соединены с соответствующими входами первого блока элементов ИЛИ, выход которого соединен со входом первого регистразадержки группы, вход каждого по"следующего регистра задержки группысоединен с, выходом предыдущего регистра задержки группы, выход последнего регистра задержки группысоединен со входом регистра адресакоманд, второй выход регистра команд соединен с первым входом пятого блока элементов И и через первый элемент НЕ с первым входом шестого блока элементов И, третий. выходрегистра команд соединен со вторыми входами третьего, четвертого ипятого блоков элементов И, выходы35 пятого и шестого блоков элементов Исоединены с .соответствующими входамивторого блока элементов ИЛИ, выходкоторого соединен со входом регистраадресов операндов, первый вход уст 3) ройства соединен со вторым входомшестого блока элементов И, второйвход устройства соединен с третьимвходом третьего блока элементов Ии через второй элемент НЕ - с третьим входом второго блока элементов И,входы синхронизации регистров задержки группы, первого и второго регистров задержки соединены с выходомблока синхронизации,Источники информации,принятые во внимание при экспертизе1. Патент США В 3728692,кл. 235-153, онублик. 1973.2. Патент СШЛ Р 3949379,кл. 235-153, опублик. 1976 (прототип).

Смотреть

Заявка

2916535, 22.04.1980

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

САМОЙЛОВ ЛЕОНТИЙ КОНСТАНТИНОВИЧ, НИКОЛАЕВ СЕРГЕЙ ВАСИЛЬЕВИЧ, ЛЕВОНЮК СЕРГЕЙ ВЛАДИМИРОВИЧ

МПК / Метки

МПК: G06F 13/30, G06F 9/48

Метки: вычислительным, конвейерным, устройством

Опубликовано: 07.01.1982

Код ссылки

<a href="https://patents.su/7-896623-ustrojjstvo-upravleniya-konvejjernym-vychislitelnym-ustrojjstvom.html" target="_blank" rel="follow" title="База патентов СССР">Устройство управления конвейерным вычислительным устройством</a>

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