Процессор для выполнения математических операций Советский патент 1988 года по МПК G06F15/00 

Описание патента на изобретение SU1381533A1

«/ 7

со

00 О1

со

со

50

Изобретение относится к классу вспомогательных процессоров., служащих для выполнения арифметических, тригонометрических, логарифмических операций, быстрого преобразования Фурье (БФП) и других чис- ловых преобразований, и предназначено для работы в составе мультипроцессорных систем.

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

На фиг. 1 приведена блок-схема предложенного устройства; на фиг. 2 - схема блока мультиплексирования адреса и блока постоянной памяти констант и адресов; на фиг. 3 4 блок-схемы программ, реализующих последовательность вычислений: С1- МЗ- С2 С2+МЗ- С1 . СЗ-М5- С4 С4 + М5- МЗ . С5-М7- С6 С6 + М7. С5,

где М2 М7 - отсчеты БПФ; а С1-С6 - поворачивающие множители.

Блок-схемы реализуют выполнение указанной последовательности (одной из операций быстрого преобразования Фурье) цент- ральным фоцессором совместно с предлагаемым процессором (фиг. 3) и предлагаемым процессором (фиг. 4).

Процессор содержит блок I памяти микрокоманд, блок 2 управления последова- тельностью микрокоманд, регистр 3 микрокоманд, генератор 4 тактовых импульсов, блок 5 оперативной памяти (БОП), арифметико-логический блок (АЛБ) 6, блок 7 памяти состояния и результата, блок 8 памяти кода операций, блок 9 ввода-вывода (БВВ), блок 10 сопряжения и дешифрации адреса, блок 11 мультиплексирования адреса, блок 12 памяти констант и адресов, шину 13 адреса микрокоманды, шину 14 адреса (А), шину 15 данных (Д), шину 16 данных М, шину 17 внешнего адреса, шину 19 управления приз- наками, шину 20 кода микрокоманды, шину 21 обращения и внешнего адреса 21, адресный вход 22, выход 23 и вход 24 кода микрокоманды, выход 25 и выход 26 поля управления записью в блоки памяти, выход

27поля кода операции и кода маски, выход

28поля разрец ения работы блока 6, выход 29 поля режима фор.мирования адреса следующей микрокоманды, выход 30 поля управления нризнака.ми, вход 31 адреса микрокоманды, вход 32 адреса памяти, вход 33 уп- равления адресом блока памяти констант, выход 34 блокировки выборки блока, выход

35блока мультиплексирования адреса, вход

36адреса блока 12, выход 37 данных, вход 38 блокировки, вход 39 адреса, вход 40 блокировки, вход 41 и выход 42 данных, вход 43 записи, выход 44 разрешения выдачи данных, первый 45 и второй 46 двунаправленные входь1-вых()лы, вход 47 и выход 48

0

5 0

5

о 5 j

0

5

выборки устройства, выход 49 адреса и сигналов управления обменом, вход 50 с внешней НИНЫ, адресный вход 51, вход 52 блокировки, вход 53 и выход 54 данных, вход 55 записи, выход 56 данных, адресный вход 57, вход 58 блокировки, вход 59 записи, вход 60 данных. Блок мультиплексирования адреса (фиг. 2) содержит элемент НЕ 61, первую 62 и вторую 63 группы элементов И с открытым коллектором.

На чертежах приняты следующие сокращения; F - вход кода микрооперации; К - первый информационный вход; М - второй информационный вход; С - синхровход; & - вход разрешения работы АЛБ; В - третий информационный вход; CHis, Со - вход сдвига (переноса); Вл - вход разрешения выдачи данных; СПо,С|5 - выход сдвига (переноса); А первый информационный выход; Д - второй информационный выход; мА - выход адреса микрокоманды; IA - вход адреса следующей микрокоманды; 1Ф - вход управления признаками; К - вход адреса начальной микрокоманды; ЗМ - вход загрузки; С - синхровход; Ф - вход признака; ФВ - выход признака.

Таблица истинности выборки блоков 12, 5, 7 и 8 устанавливает порядок выдачи ими данных на шину М 16 и приема данных блоками 5, 7 и 8 с шины Д15.

Прием информации с шины Д15 блоками 5, 7 или 8 осуществляется при условии адресации блока и наличии сигнала Зп на выходе регистра 3.

Рассмотрим работу предлагаемого процессора.

В процессе выборки (исполнения) микрокоманд участвуют блоки 1, 2, 3, 4 и 6. Ак- тиви1ация и использование остальных блоков, входящих в состав предлагаемого про- tieccnpa, зависят от конкретной микрокоманды или адресной информации на А (блоки 5, 7, 8, 11 и 12), либо от обращения к предлагаемому процессору центрального процессора (блоки 9 и 10).

Расс.мотрим вначале взаимодействие блоков 1, 2, 3, 4 и 6. Однофазный генератор 4 вырабатывает последовательность импульсов, синхронизирующую выдачу адреса следующей микрокоманды блоком 2, запись кода микрокоманды в регистр 3, запоминание и выдачу результатов выполнения микрооперации в АЛБ 6.

Блок 2 под воздействием управляющих сигналов на входах УА, УФ, К, ЗМ, Ф на основе текущего адреса микрокоманды и состояния признаков вырабатывает и выдает на выходах МА адрес следующей микрокоманды, а также управляет сигналом на выходе ФВ. При этом блок 2 вырабатывает последввательные адреса микроко- .манд, выполняет ветвление микропрограммы по ус.ювию (состояние признаков), или загрузку адреса микрокоманды с 8-ми млад- П1ИХ разрядов шины М.

Код микрокоманды на выходе блока 1 однозначно определяется адресом, подаваемым на его вход (через 90 не после установления стабильного адреса).

Разряды 16,...,0 кода микрокоманды записываются в регистр 3 по положительному фронту синхросигнала.

АЛБ в соответствии с кодами микрооперации FO-Ffi, маски Ко, К| и битом разрешения работы выполняет арифметические и логические операции над данными, хранящимися во внутренних регистрах АЛБ либо подаваемыми на его входы М и В, с учетом состояния входа сдвига (переноса). Результат выполнения операции записывается во внутренние регистры АЛБ 6, выдается на выходы А или Д, а также формируется сигнал признака на выходе сдвига (переноса) для дальнейшего использования в блоке 2.

Процесс обмена данными между предла гаемым процессором и центральным процессором (ЦП) происходит следующим образом.

В исходном состоянии АЛБ 6 циклически принимает информацию с входа В и анализирует разряд В/, устанавливающий блок 10 в состояние «1 в случае обращения (для записи или чтения не имеет значения) центрального процессора к предлагаемому устройству. Если В : 1, то АЛБ выдает на выход сдвига (переноса) и вход блока 2 также «1, а блок 2 осуществляет выход из начального цикла опроса. Затем в соответствии с микропрограммой обмена с ЦП АЛБ вновь принимает данные с входа В. В зависимости от состояния разряда Вб («Запись ЦП), передаваемого с выхода сдвига (переноса) АЛБ на вход Ф блока 2 последним производится ветвление микропрограммы обмена с ЦП на ветвь приема или выдачи данных на внещнюю щину через блок 9. Разряды В()...В5 после обработки выдаются на выход АЛБ - на щину А. Эти разряды определяют, с каким из блоков 5, 7 или 8 будет производить обмен информацией ЦП.

В том случае, если ЦП выполняет запись в предлагаемый процессор, блок 9 (из сигнала «Запись ЦП и сигнала выборки устройства, поступающего с блока 10 на вход выборки блока 9) вырабатывает сигнал запрещения выдачи данных, поступающий на вход В АЛБ. Выходы Д АЛБ переходят в высокоимпедансное состояние, а вентили блока 9 открываются для передачи с щины ЦП на щину Д. Данные с тины Д поступают на входы данных блоков 5, 7 и 8. Одна из микрокоманд ветви приема данных микропрограммы обмена с ЦП содержит разряз 3 «Запись Зп 1. При выборке этой .микрокоманды этот разряд вместе с остальными разрядами переписывается в конвейерный регистр и посту0

5

0

5

0

5

0

5

0

5

пает на входы записи блоков 5, 7 и 8. Информация с щины Д записывается в одну ил ячеек блоков 5, 7 или 8 (выбор одного и: этих устройств определяется адресом на тине А). ЦП завершает цикл записи, а лагаемый процессор вновь переходит к опросу выхода обращения к процессору б.ю- ка 10. Если ЦП осу цествляет запись в блок 8 кода операции, в конце цикла записи АЛБ выдает на выход сдвига (перс- носа) и вход Ф блока 2 признак «1, указ1 1- вающий на прием кода операции; блок 2 ос) - п ествляет ветвление мик)опрог раммы на микрокоманду, имеющую разряд ц 1 1. Значение этого разряда поступает на вход строба загрузки ЗМ блока 2. Код операции, являющийся начальным адресом микро- програм.мы, реализующей данную операцию, передаваемый с выхода блока 8 по тине . на входы К адреса начальной микрокоманд| | блока 2, по положительному фронту синхроимпульса загружается в регистр адреса микрокоманды б.тока 2. Следующая микрокоманда выбирается из блока 1 по адресу, указываемому кодом операции, и, таким об- разо.м, предлагаемый процессор «выходит из программы обмена с ЦП и приступает к выполнению заданной операции. По завершению выполнения операции предлагаемый процессор вновь переходит к исио.чненик) программы обмена с ЦП (к циклическому вводу данных с входа в АЛБ, проверке разряда В- и т.п.).

В том случае, если осуществ.мяег чтение данных из предлагаемого процессо 1а в соответствии с «ветвью вывода микро- ггрограммы обмена с ЦП, данные с шишя Л1 считываются в аккумулятор АЛБ и выдаются на Д (источник информации 6,-io- ки 5, 7 и 8 определяется как описано В,Ш10). Сигналом «Чтение ЦП вентили б.юка 9 открываются в направлении передачи ин(})()1- мации с ПИНЫ Д на тину ЦП,-ЦП счи11,1на- ет данные, а АЛБ предлагаемого процессора вновь переходит к onpocv плода В7.

Как указывалось, блок 7 загружапсн кодом , если она име.ча место при выполнении операции. Если ошибок не обнаружено, в блок 7 записывается пуль.

Рассмотрим использование блока памяти 12 адресов и констант. В процессе вычисления, например БПФ, элементарных функций возникает необходимость в использова НИИ различных математических постоянны.х. Так, для вычисления БПФ размерности . необходимо иметь N/4 значений отсчетов косинуса на интервале О, л/2|. При вычислении значений элементарных функций через разложение последних в ряд необходимо имeтьJ pэффициeнты ряда. Такие величиш,, как V 2, л часто используются как масштабирующие множители. Для сдвига данных на определенное число разрядов Fiiia- чале установить про1 раммный счетчик цикла, загрузив в него константу.

В процессоре-прототипе все константы должны перед выполнением операции наряду с исходными данными пересылаться в прототип из и,П, что сучцественно увеличивает время обмена между ЦП и прототипом и снижает производите.льность вычислительной системы в целом. В предлагаемый процессор (фиг. 1) введен блок 12, в котором хранятся все используемые в процессе вычислений константы. Это позволяет за счет сокращения вре.мени обмена между ЦП и предлагаемым процессором повысить быстродействие вычислительной системы в целом.

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

К первому типу относятся константы, однозначно связанные с адресом микрокоманды. Так, если в микропрограмме используется константа, она всякий раз при выполнении этой микропрограммы должна быть считана из блока 12. Поскольку считывание такой константы происходит всег да в одном и том же месте микропрограммы, используется адресация блока 12 от блока 2. В микрокоманде, использующей константу, разряд О () должен быть равен «1. Б.ЛОК II передает на адресный вход блока 12 состояние выходов МА блока 2 - адрес следуюпхей микрокоманды. По этому адресу в блоке 12 записана необходимая константа. Блок 1 1 вырабатывает также сигнал, разре пающий выдачу данных блоком 12. Ца линию блокировки выдается также этот сигнал, переводящий блоки 5, 7 и 8 в пассивное состояние. Код константы поступает по П1ине М на вход М АЛ Б и вход К блока 2 для использования в соответствии с кодом микрокоманды.

Ко второму типу относятся константы, адресуемые АЛБ. Так, при выполнении БПФ использование тех или иных поворачиваю- щи.х множителей (из массива косинусов) зависит от этапа преобразования. Адрес константы в этом случае зачисляется в АЛБ и выдается на тину А адреса. Разряд О (fij) кода микрокоманд в это время равен «О, и блок 11 передает на адресные входы блока 12 состояние щины А. Для активизации блока 12 и перехода блоков 5, 7 и 8 в пассивное состояние АЛБ при подготовке адреса ячейки блока 12 устанавливает старший разряд адреса А|5 в единичное состояние, блок 11 вырабатывает сигнал, разрепшющий выдачу данных блоком 12 на щину М. На линию блокировки подается сиг нал. не сводяп1ий блоки 5, 7 и 8 в пассивное состояние.

Еще одним недостатком прототипа является невозможность в микропрограм.мах подпрограмм. Это связано с отсутствием микрокоманд возврата из подпрограммы в основную микропрограмму в МПК серии INTEL 3000, К589. Использование в пред- ;1агаемом процессоре блоков II и 12 позволяет устранить указанный недостаток.

До перехода к подпрограмме ( влнемого путем выполнения стандартной функции блока 2 «Переход в нулевую стро- кух IZR - при этом информация на входах УА блока 2 однозначно определяет адрес следующей микрокоманды - первой микрокоманды вызываемой подпрограммы) из блока 12 выбирается и запоминается в одном из внутренних регистров АЛБ константа перQ вого типа А . Затем осуществляется переход к подпрограмме и ее выполнение. После заверщения выполнения подпрограммы константа А пересылается в адресный perhfCTp АЛБ и передается на щину А. А является адресом ячейки блока 12, в которой

записана константа Ав второго типа, являющаяся адресом возврата из подпрограммы. Код константы Ав выбирается из ячейки А блока 12 и JO щине М передается на вход К блока 2. В последней микрокоманде подпрограммы вырабатывается сигнал загрузки

0 fi,, подаваемый на вход ЗМ блока 2. Происходит загрузка адреса Ав в регистр адреса мик|)окоманды блока 2, и таким образом осуществляется возврат в основную микропрограмму.

5 Описанный процесс организует коррективное обращение к подпрограмме, поскольку, с одной стороны, константа А , запоминаемая основной микропрограммой в определенном внутреннем регистре АЛБ, однозначно определяет адрес возврата Ав в ос0 новную микропрограмму, а с другой стороны, одна и та же подпрограмма может быть испо. 1ьзована различными вызывающими микропрограммами, поскольку адрес А , задающий адрес возврат Ав, внутри подпрограммы не изменяется, т.е. уровень вложения

5 подпрограмм определяется количеством внутренних регистров АЛБ (ИМС типа К589ИК02 имеет помимо адресного регистра и аккумулятора II регистров).

Переход к подпрограмме может быть осуQ ществлен из любого участка микропрограммы, при этом константа А жестко связана с микрокомандой основной микропрограммы, предшествующей вызову подпрограммы, и однозначно определяет адрес Аи микрокоманды основной микропрограммы, которая испол5 няется первой после выполнения вызываемой подпрограммы. Двойная адресация блока 12 при помощи блока 11 (от блока 2 и щины А) позволяет существенно расширить функциональные возможности предлагаемого процессора по сравнению с про0 тотипом. Например, при вычислении БПФ необходимо осуществлять вычисления: С1-МЗ- С1 С2-)-МЗ- С1 . СЗ-М5- С4 С4+МЗ- СЗ

С5-М7- С6

С6+М7. С5

где М2- М7 - отсчеты БЦф, а С1 -С6 - поворачивающие множители.

На фиг. 3-4 приведены блок-схемы программ,реализующих приведенную последовательность вычислений. Слева на фиг. 3 показана последовательность действий, выполняемых центральным процессором, а справа параллельно ей, - последовательность действий, синхронно с ЦП выполняемая предлагаемым процессором (фиг. 4).

На фиг. 3 приняты следующие сокра щения: НБР - выборка константы или переменной для использования; ПРД - передача константы, переменной или кода операции; ПРМ - прием константы, переменной или кода операции (эти действия происходят синхронно - если ЦП передает, то предлагаемый процессор принимает, и наоборот; ОЖИД - ожидание (состояние, в котором предлагаемый процессор ожидает обращения к нему со стороны ЦП, или ЦП ожидает готовности предлагаемого процессора)

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

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

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

5 тем, что. с целью повышения быстродействия, он содержит блок мультиплексирования адреса, содержащий первую и вторую группы из М элементов (М К + I, где К - разрядность адреса микрокоманды), элемент НЕ и блок памяти констаиг и адресов,

0 выход которого соединен через 1пину дан ных с входо.м адреса начальной микрокоманды блока управления последовательностью микрокоманд и вторым инфо)- мационным входом арифметико-логического блока и выходами блока оперативной n;i5 мяти, блока памяти состояния и результата и блока памяти кодов операций, К выходов адреса микрокоманды блока управления последовательностью микрокоманд соединены с первыми входами элементов Ц пер0 вой группы, выходы с первого по (ДА- 1) -и которых объединены с одноименными выходами элементов И второй группы и соединены с адресными входами блока памяти коркчаит и адресов, выходы М-х элементов П первой и второй групп объединены и соединены с

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

0 элементов И второй группы, первый вход М- го элемента И второй группы соединен с входом логической «1 процессора, выход поля управления адресом блока памяти констант и адресов регистра микрокоманд соединен с вторыми входами элементов И iiefi- вой группы и через элемент НЕ с ми входами элементов Ц второй гругщы.

19 20 21 22

2J 2V 25 26 27

28

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

название год авторы номер документа
Процессор программируемого контроллера 1985
  • Сырель Павел Константинович
  • Сохина Ирина Николаевна
SU1406595A1
Процессор программируемого контроллера 1988
  • Гороховик Сергей Анатольевич
  • Сохина Ирина Николаевна
SU1550515A2
Программируемый процессор спектральной обработки сигналов 1982
  • Каневский Юрий Станиславович
  • Краснощеков Иван Петрович
  • Куц Наталия Евгеньевна
  • Сергиенко Анатолий Михайлович
SU1092517A1
Процессор с микропрограммным управлением 1983
  • Соловьев Алексей Алексеевич
  • Курбатов Борис Юрьевич
  • Барашко Виктор Сергеевич
  • Еремин Алексей Тимофеевич
  • Власов Феликс Сергеевич
  • Румянцев Владимир Ильич
SU1149273A1
Микропроцессор 1984
  • Пушкарев Юрий Яковлевич
  • Полонский Дмитрий Васильевич
SU1179363A1
Управляющая векторная вычислительная система 1982
  • Прангишвили Ивери Варламович
  • Бабичева Елена Владимировна
  • Малюгин Владимир Дмитриевич
  • Соколов Владимир Владимирович
  • Денисенко Сергей Васильевич
  • Вейц Александр Вениаминович
  • Иванов Александр Иванович
  • Шкатулла Анатолий Иванович
  • Зверков Борис Семенович
  • Зрелова Татьяна Ивановна
  • Левертов Яков Анатольевич
  • Тодуа Джондо Альпезович
  • Гоголадзе Омар Васильевич
  • Вепхвадзе Анзор Николаевич
  • Гудушаури Гмаи Шалвович
  • Голубев Александр Павлович
  • Березенко Александр Иванович
  • Корягин Лев Николаевич
SU1120340A1
УСТРОЙСТВО ДЛЯ ОБРАБОТКИ НЕЧЕТКОЙ ИНФОРМАЦИИ 1998
  • Данилюк С.Г.
  • Злобин В.И.
  • Ванюшин В.М.
RU2158441C2
Устройство для сортировки чисел 1985
  • Пшеничный Николай Тихонович
SU1304015A1
Процессор 1974
  • Чичерин Юрий Егорович
  • Кокорин Владимир Сергеевич
  • Смирнов Владимир Васильевич
  • Шевкопляс Борис Владимирович
  • Овсянникова-Панченко Элина Павловна
  • Петрова Людмила Михайловна
  • Плетнер Эдуард Исаакович
SU526902A1
Процессор для мультипроцессорной системы 1985
  • Белицкий Роберт Израилевич
  • Зайончковский Анатолий Иосифович
  • Палагин Александр Васильевич
SU1295410A1

Иллюстрации к изобретению SU 1 381 533 A1

Реферат патента 1988 года Процессор для выполнения математических операций

Изобретение относится к классу вспомогательных процессоров, служащих для выполнения арифметических, тригонометрических, логарифмических операций, быстрого преобразования Фурье и других числовых преобразований, и предназначено для работы в составе мультипроцессорных систем. Цель изобретения - повышение быстродействия процессора. Процессор содержит блок 1 памяти микрокоманд, блок 2 управления последовательностью микрокоманд, регистр 3 микрокоманд, генератор 4 тактовых импульсов, блок 5 оперативной памяти, арифметико- логический блок 6, блок 7 памяти состояния и результата, блок 8 па.мяти кода операции, блок 9 ввода-вывода, блок 10 сопряжения и дешифрации адреса. Введение блока 11 мультиплексирования адреса и блока 12 памяти констант и адресов приводит к достижению цели. 4 ил. С ел

Формула изобретения SU 1 381 533 A1

Документы, цитированные в отчете о поиске Патент 1988 года SU1381533A1

Вспомогательные процессоры для быстрого выполнения арифметических операций в микропроцессорных системах
- Электроника, 1980, № 10
Аналоговые и цифровые интегральные схемы./Под ред
С
В
Якубовского, М.: Советское радио, 1979
Березенко А
И
и др
Микропроцессорные комплекты повышенного быстродействия
М.: Радио и связь, 1981.

SU 1 381 533 A1

Авторы

Чепурнов Алексей Викторович

Касьянов Валерий Васильевич

Даты

1988-03-15Публикация

1986-06-23Подача