RU2087031C1 - Операционное устройство для процессора с ассоциативной матрицей однородной структуры - Google Patents

Операционное устройство для процессора с ассоциативной матрицей однородной структуры Download PDF

Info

Publication number
RU2087031C1
RU2087031C1 SU843711202A SU3711202A RU2087031C1 RU 2087031 C1 RU2087031 C1 RU 2087031C1 SU 843711202 A SU843711202 A SU 843711202A SU 3711202 A SU3711202 A SU 3711202A RU 2087031 C1 RU2087031 C1 RU 2087031C1
Authority
RU
Russia
Prior art keywords
output
multiplexer
information input
inputs
input
Prior art date
Application number
SU843711202A
Other languages
English (en)
Inventor
Грегори Мортон Стивен
Майкл Коттон Джон
Original Assignee
Алкатель Н.В.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US06/473,362 external-priority patent/US4580215A/en
Priority claimed from US06/473,364 external-priority patent/US4546428A/en
Application filed by Алкатель Н.В. filed Critical Алкатель Н.В.
Application granted granted Critical
Publication of RU2087031C1 publication Critical patent/RU2087031C1/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8023Two dimensional arrays, e.g. mesh, torus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8038Associative processors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Multi Processors (AREA)
  • Logic Circuits (AREA)
  • Complex Calculations (AREA)
  • Dram (AREA)

Abstract

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

Description

Изобретение относится к матричному процессору с однородной структурой или к ассоциативной обработке, а более конкретно к структуре матрицы ассоциативной обработки с переменной длиной слова, управляемой битами конфигурации, содержащимися в отдельных ассоциативных ячейках. Биты конфигурации могут обозначать, например, старший значащий и младший значащий бит в слове.
Битами конфигурации могут обозначаться и другие функции в слове, такие, как запирание или пропуск. Кроме того, любая ассоциативная ячейка в матрице может быть исключена из слова. Матрица содержит также расширенный набор команд, включающих булевское умножение, деление, а также все комбинации одинарной и двоичной точности, сдвига или поворота, левосторонних или правосторонних операций. Матрица ассоциативной обработки по данному изобретению дает особые преимущества при реализации его с использованием больших интегральных схем (БИС) или очень больших интегральных схем (ОБИС), которые позволяют повысить степень универсальности системы без увеличения количества схем и штыревых соединений.
Ассоциативные процессоры с изменяемой с помощью битов конфигурации длиной слова, с возможностью исключения битов и выполнения арифметических операций и сдвига могут быть использованы не только в ассоциативных ЭВМ, но и в системах, к которым предъявляются требования отказоустойчивости, быстродействия и приспосабливаемости к различным вычислениям. К таким системам могут быть отнесены, например, конструкторские рабочие станции, системы управления базами данных, топологические анализаторы, графические дисплеи, системы распознавания речи, системы улучшения изображения, элементы радиолокационных систем, такие, как сфазированные решетки, синтетические апертуры, устройства слежения и анализа эхосигналов, системы обработки текста, телекоммуникационные системы, а также системы цифровой фильтрации.
Ассоциативные процессоры можно рассматривать как матрицы из однобитовых процессоров, в которых каждая отдельная ячейка имеет доступ только к соседней ячейке. Доступ в ассоциативные процессоры осуществляется с помощью взаимно параллельных потоков данных, а память таких процессоров адресуется по содержанию и структуре данных на основе признаков.
Если обычный процессор в каждый момент времени оперирует одним элементом данных, то ассоциативный процессор работает со множеством объектов данных одновременно. С этой точки зрения полезно, чтобы объекты данных для каждой отдельной команды были однотипны, с тем чтобы имело смысл использовать один и тот же поток последовательных команд для одновременных операций над этими объектами данных. Процессор такого класса известен под названием SIMD "Одна команда много потоков данных".
Такой ассоциативный процессор может состоять из прямоугольной матрицы из реализованных на БИС однобитовых компьютеров, каждый из которых может иметь память объемом от 2 К до 64 К бит. Эти компьютеры, представляющие собой ячейки однородной структуры, одновременно подчиняются одной команде, однако каждый оперирует своими данными. Эти ячейки могут связываться со своими соседями по всем четырем направлениям, а также с входными и выходными регистрами внешних данных.
Ячейки в строке матрицы ассоциативного процессора могут быть динамически (от одной команды до другой) организованы в произвольное число полей произвольной длины (ограниченной шириной матрицы). После этого каждое поле работает самостоятельно как отдельный компьютер с данной длиной слова, который может выполнять арифметические и логические операции. Эти поля могут либо одновременно подчиняться одной и той же команде, либо быть селективно заперты по программе.
В итоге набор компьютеров с произвольной длиной слова, которые оказываются включенными, выполняют одновременно одинаковые арифметические или логические операции над различными данными. Такой набор компьютеров может быть использован для решения задач, требующих использования матричной арифметики, алгебры, векторных расчетов, обработки изображения, задач поиска и распознавания образа и распознавания речи. Арифметические операции заданной точности при этом могут выполняться как с фиксированной, так и с плавающей запятой. Пропускная способность такого набора процессоров зависит от размера матрицы, длины и количества полей и соотношения матрицы, используемой для конкретной операции. Например, матрица из 128•128 ячеек, оперирующая с 2048 восьмибитовыми числами одновременно при тактовой частоте 10 МГц, может выполнять до 4000 миллионов сложений или логических операций в секунду или порядка 1000 миллионов умножений в секунду.
Устройства ассоциативной памяти, именуемые иногда "Память, адресуемая по содержанию", достаточно широко известны и организуются в ассоциативном процессоре таким образом, что арифметические операции могут выполняться на одном или многих хранящихся в этой памяти цифровых словах одновременно. Такие ассоциативные процессоры описаны в патенте США N 4068305. Как показано в патенте США N 4296475, такая адресуемая по содержанию память организована словами, и предприняты попытки сокращения количества контактных штырьков, необходимых для использования такой памяти. Связь между определенными битами слова команды и ранее установленными флажками (от триггеров состояния, например) используется в тех случаях, когда процессор данных выполняет команды по условию путем создания в словах команды битов маскирования для того, чтобы отвергать один или более битов связи. Это описано в патенте США N 4010452. B патенте США N 4044338 описана ассоциативная память с отдельными ассоциативными зонами. Селективная связь схемных элементов с шиной данных, при которой каждый схемный элемент имеет ассоциативный адрес, описана в патенте США N 4188670. В патенте США N 4159538 описана ассоциативная память на БИС, в которой число контактных штырьков уменьшено за счет совместного использования определенного набора штырьков входными данными, выходными данными и маскировочной информацией. Ассоциативная память с последовательным доступом описана в патенте США N 4153943. Устройство ассоциативной памяти для сравнения между определенными пределами описано в патенте США N 3845465. Матричный процессор, процессорные элементы которого организованы в прямоугольную матрицу, описан в патенте США N 3979728. Мультиплексирование аналоговых сигналов описано в патенте США N 3654394 "Ключ на полевом транзисторе, в частности, для мультиплексирования". В патентной заявке США N 452596, поданной С. Мортоном 23 декабря 1982 г. под названием "Восстановление импеданса для быстрого переноса", описано однородное суммирующее устройство с динамической конфигурацией.
Описан ассоциативный процессор, в котором матрица из ячеек ассоциативной обработки организована в соответствии с форматом, определяемым битами конфигурации, которые выполняют функции, ранее выполняемые внешними масками. При этом достигается улучшение гибкости применения ассоциативной матрицы благодаря тому, что длина слова может быть произвольно расширена, желаемые функции могут произвольно выполняться внутри матрицы, например, функции пропуска или запрета. Кроме того, исключается необходимость во внешней маске для определения ячеек, которые должны работать определенным образом.
Соседние горизонтальные ячейки в матрице ассоциативного процессора связаны с помощью пяти линий. При этом обеспечивается минимальное количество связей и, следовательно, минимальное количество контактов, а также аппаратных средств, необходимых для выполнения операций умножения, деления, поворота влево и вправо с удвоенной точностью.
Описан четырехзвенный мультиплексор, позволяющий соединять последовательно произвольное количество таких устройств. Каждый из таких мультиплексоров образует часть обрабатывающей ячейки и обеспечивает различные связи между соседними обрабатывающими ячейками.
Такой мультиплексор может быть реализован на интегральных схемах с МОП-транзисторами или ДМОП-транзисторами (дополняющими) и может быть динамически организован таким образом, чтобы исключать неисправную или ненужную обрабатывающую ячейку из работы. При этом обеспечивается минимальная задержка в процессе сбора обрабатывающих ячеек. Все это обеспечивает повышение надежности, гибкости и быстродействия обрабатывающей матрицы. Длина слова может быть произвольно увеличена и достигнута максимальная скорость вычисления, причем для компенсации ячеек, отказавших в процессе изготовления или эксплуатации, могут быть предусмотрены запасные ячейки.
Цель настоящего изобретения состоит в улучшении гибкости при использовании ассоциативных процессоров.
Другая цель изобретения состоит в том, чтобы функции маскирования выполнялись в соответствии с информацией, хранящейся во внутренней памяти ячейки, благодаря чему снимаются ограничения, налагаемые при использовании внешних масок.
Еще одна цель изобретения состоит в том, чтобы реализовать произвольную длину слова безотносительно к числу обрабатывающих ячеек, расположенных на чипе.
Еще одна цель изобретения состоит в том, чтобы обеспечить зависимость присваемых функций маскирования от содержимого входа в ячейку.
И еще одна цель состоит в уменьшении количества связей между обрабатывающими ячейками ассоциативного процессора.
На фиг. 1 дана блок-схема ассоциативного процессора; на фиг. 2 чип ассоциативного процессора и связи между обрабатывающими ячейками; на фиг. 3 - основные горизонтальные связи между соседними обрабатывающими ячейками; на фиг. 4 вертикальные связи между обрабатывающими ячейками; на фиг. 5 все связи обрабатывающей ячейки; на фиг. 6 структура сдвига одного слова; на фиг. 7 структура сдвига сдвоенного слова; на фиг. 8 использование слоя; на фиг. 9 схема магистрали общей логической команды в чипе ассоциативного процессора; на фиг. 10 схема логической матрицы, программируемой логическо-арифметической командой ячейки; на фиг. 11 схема арифметического ядра обрабатывающей ячейки; на фиг. 12 линейная матрица поперечных горизонтальных мультиплексоров; на фиг. 13 потоки данных в поперечных горизонтальных мультиплексорах; на фиг. 14 детальная схема поперечного горизонтального мультиплексора; на фиг. 15 упрощение схемы управляющего сигнала; на фиг. 16a схема вентиля передачи; на фиг. 16b эквивалентная схема с сосредоточенными элементами схемы по фиг. 16a в состоянии проводимости; на фиг. 17 упрощенная эквивалентная схема последовательности вентилей передачи; на фиг. 18 использование маршрута сигнала в ассоциативном процессоре, выполняющем команду сложения; на фиг. 19 использование маршрута сигнала в ассоциативном процессоре, выполняющем арифметическо-логическую команду сдвига вправо; на фиг. 20 использование маршрута сигнала в ассоциативном процессоре, выполняющем пропуск поля в промежуточной части операции слова; на фиг. 21 использование маршрута сигнала в ассоциативном процессоре, выполняющем знаковую операцию; на фиг. 22 использование маршрута сигнала в ассоциативном процессоре, выполняющем команду поворота влево; на фиг. 23 использование маршрута сигнала в ассоциативном процессоре, выполняющем команду поворота влево с удвоенной точностью; на фиг. 24 использование маршрута сигнала в ассоциативном процессоре, выполняющем промежуточную команду умножения с фиксированной запятой; на фиг. 25 использование маршрута сигнала в ассоциативном процессоре, выполняющем команду деления с фиксированной запятой.
1. Введение
Обработка данных в показанном на фиг. 1 ассоциативном процессоре выполняется на матрице N•M. Размер матрицы не является существенным для данного изобретения, хотя чем матрица больше, тем больше пропускная способность. Матрица N•M благодаря динамической компенсированности ассоциативного процессора может одинаково хорошо оперировать с N числами по M битов каждое, 2N числами по M/2 битов каждое, 4N числами по M/4 битов каждое или с любой другой комбинацией, имеющей такое же общее количество битов. Кроме того, такая матрица может работать и с меньшим общим количеством битов, хотя при этом будут использованы не все ячейки матрицы.
Матрица такого ассоциативного процессора имеет M строк и столбцов одинаковых ячеек. Каждая ячейка представляет собой однобитовый процессор, который по горизонтали связан со своим левым и правым соседями, а по вертикали с верхним и нижним соседями, а под прямыми углами в плоскости ячеек с памятью, расположенной вне чипа. Все ячейки в столбце связаны вертикальной шиной, а все ячейки в строке горизонтальной шиной. В предпочтительном варианте множество ячеек выполняется в виде одной интегральной схемы. Часть такого ассоциативного процессора показана на фиг. 2.
Для того чтобы обработать информацию в ассоциативном процессоре, необходимо определить количество битов, составляющих одно число. Это количество рассматривается как размер слова. Внутри ассоциативного процессора слова формируются из групп совместно работающих однобитовых ячеек. Любая ячейка в ассоциативном процессоре может занимать любое положение в слове, хотя значение бита ячейки в слове должно либо оставаться неизменным, либо постепенно увеличиваться в строке. Кроме того, перенос в ходе арифметической операции должен осуществляться справа налево, т.е. от столбца с меньшим номером к столбцу с большим номером. Для логических операций минимальный размер слова равен одному биту, а для арифметических операций с фиксированной запятой двум битам.
Слова могут формироваться из ячеек, расположенных на различных чипах. При этом верхний предел размера слова по существу не ограничивается. Ячейки, расположенные по краям чипа, работают так же, как остальные, поскольку для работы каждой ячейки не существенно, где находится соседняя ячейка на этом же чипе или же на другом. Не существенно также, находится ли другой чип в той же строке или в другой. На фиг. 3 показаны горизонтальные связи между ячейками, состоящие из пяти арифметических соединений линии переноса, линии ALU, линии MQ, линии цикла и линии состояния.
Матрица чипов может быть скомпонована либо путем размещения чипов бок о бок, что увеличивает ширину матрицы, либо один над другим, что увеличивает ее высоту. В любом случае сигналы вниз для нижнего ряда обычно связаны с сигналами вверх для верхнего ряда. Пять арифметических сигналов будут описаны ниже. Для простоты в дальнейшем мы будем иметь в виде матрицу, состоящую из 16 строк и 16 столбцов.
Работа каждой ячейки такой матрицы определяется двумя факторами. (1) Существуют управляющие биты, которые посылаются ко всем ячейкам, и предполагается, что таких битов 32. Эти биты подаются извне чипа и делятся на 24 бита управления маршрутом данных, пять битов управления состоянием, 2 бита управления регистром данных памяти и один бит запирания. Биты управления маршрутом данных включают 6 битов команды, которые выбирают арифметическую или логическую операцию или операцию сдвига или конфигурации, которая должна быть выполнена над словом.
(2) Существуют биты конфигурации, которые хранятся в многопортовой памяти с произвольным доступом в каждой ячейке. Три из этих битов дешифрируются для идентификации, среди прочего, LSS, ISS и MSS в слове. Всего в каждой ячейке содержится 7 битов конфигурации, 3 горизонтальные маски ALUP (арифметическологический единичный процессор), 3 вертикальные маски AIP и маска восстановления импеданса.
Как показано на фиг. 11, каждая ячейка состоит из 64 ячеек памяти с произвольным доступом, причем каждая такая ячейка содержит один бит. Эта память является многопортовой памятью с произвольным доступом, которая с точки зрения арифметического и логического блока имеет два выхода A и B. 6-битовый адрес считывания (R ADDP) выбирает одну ячейку, в то время как 6-битовый адрес считывания-записи (R/W ADDP) выбирает другую ячейку. Если результат должен быть записан в память, то адрес считывания-записи специфицирует как один из источников, так и место назначения данных.
Концептуально многопортовая память с произвольным доступом делится на верхнюю и нижнюю половины. Нижние 32 ячейки считаются памятью пользователя и не имеют специальных характеристик. Верхние 32 ячейки считаются системной памятью и имеют множество специальных характеристик.
Существует множество прямых входов и прямых выходов из системной памяти для того, чтобы создать управление и линии данных, работающие в параллель с арифметическим и логическим блоком. Доступ к памяти, находящейся вне чипа, линии вверх и вниз, а также вертикальная и горизонтальная шины обеспечиваются системной памятью. В верхней памяти находятся также биты конфигурации, регистры множителя/частного, а также биты состояния.
Соединения чипа, а также между ячейками в общем показаны на фиг. 2. Подробности горизонтальных соединений между двумя ячейками показаны на фиг. 3, а вертикальных соединений между двумя ячейками на фиг. 4. Эти соединения реализуются вне зависимости от того, находятся ли эти ячейки на одном или на различных чипах. Все соединения одной ячейки показаны на фиг. 5.
Пять связывающих чипы линий арифметических сигналов позволяют словам связывать различные чипы. Линии "ALU влево", "перенос влево", "MQ влево", "цикл влево" и "состояние влево", отходящие от самого левого столбца чипа, обычно подходят к правой стороне самого правого столбца чипа, который является левым в той же строке или, если чип находится в самом левом столбце матрицы, то к правой стороне самого правого чипа в матрице, строкой выше. Эти же сигналы от чипа, находящегося в левом краю верхней строки матрицы, обычно подводятся к правой стороне самого правого чипа матрицы в нижней строке.
2. Типы слоев
Ячейки организованы в слова с помощью трех горизонтальных масок ALUP. Команда конфигурации предназначена для облегчения загрузки этих масок независимо от их состояния. Эти маски должны быть загружены до выполнения набора других команд, нежели команды конфигурации.
Способ выполнения команды конкретной ячейкой зависит от типа слоя, в котором эта ячейка установлена. Разделение слоев в слои показано на фиг. 8, а использование пяти реализуемых слоев, которые выбираются битами трех горизонтальных масок ALUP, осуществляется следующим образом:
неактивный заставляет ячейку замораживать свою память и делает ее невидимой по горизонтали;
горизонтальный пропуск заставляет ячейку становиться невидимой по горизонтали, но допускает обновление ее памяти. Слой горизонтального пропуска полезен в тех случаях, когда требуется скопировать бит в несколько слоев, например, для расширения знака.
Арифметика с фиксированной запятой, которая также может включать знаки, имеет процессорные слои трех логических типов.
LSS младший значащий слой. Условие конца слова может быть специфицировано: вводом для арифметической команды или последовательным вводом, поскольку сдвиг влево выбирается путем выбора последовательного ввода.
MSS старший значащий слой. Условие конца слова может быть специфицировано последовательным вводом, поскольку сдвиг вправо выбирается путем выбора последовательного ввода.
ISS промежуточный значащий слой. Все соединения специфицируются командой, например, ввод (carri IN) выходит из слоя вправо, в вывод (carry out) входит в слой слева.
Одиночные биты, логические уровни могут быть слоем типа LSS. Арифметические команды и команды поворота, требующие слов, состоящих по меньшей мере из двух битов, могут быть LSS и MSS, а также могут иметь любое число ISS.
3. Основные блоки аппаратных средств.
3.1 Магистраль команд.
Магистраль команд состоит из общей логическо- командной магистрали, показанной на фиг.9, а также из логическо-командной ячейки PLA, показанной на фиг.10, 29 сигналов управления ALUP должны стабилизироваться непосредственно перед падающим фронтом тактового импульса ALUP. Таким образом, для установления этих сигналов имеется время, составляющее большую часть длительности первого тактового импульса.
Во время второго тактового импульса эти 29 сигналов управления ALUP передаются из общей логики к ячейкам и поступают на входы команды RLA ячейки и дешифраторы адреса многопортовой памяти с произвольным доступом.
Эти команды выполняются во время третьего тактового импульса. Сигнал состояния из предыдущего цикла модифицирует выход выходного регистра команды PLA. Состояние может изменяться каждый цикл, но не может поступать на входы RLA, которые находятся за один цикл до выполнения.
Показанные на фиг.2 три бита горизонтальной маски ALUP управляют PLA, и поэтому следует с осторожностью относиться к изменению маски, поскольку изменение маски влияет на выполнение команды, а результат задерживается на один тактовый период. На чип могут подаваться либо неиспользуемые сигналы управления состоянием, либо команда конфигурации, которая не зависит от маски и может следовать за изменением маски.
3.2 Многопортовая память с произвольным доступом.
Показанная на фиг. 11 многопортовая память с произвольным доступом емкостью в 64 слова концептуально делится на две половины, нижняя половина или половина пользователя включает память общего назначения без специальных входов или выходов. Верхняя, или системная половина, имеет множество специальных входов и выходов и выполняет множество специальных функций. Пример присвоения адреса показан в табл. 1. Ко всем из этих битов имеется доступ для записи и считывания внутри ячейки.
Эта память имеет три порта. Два выходных порта RAM A и RAM B адресуются адресом считывания и адресом считывания/записи соответственно. RAM A проходит ко входу ALU "A", а RAM B ко входу ALU "B". Выходной порт BIN также адресуется адресом записи/считывания.
Операция типа:
A OPERATION B__→ B
читается "операция B переходит к B" и может быть выполнена в течение одного цикла. Операция над содержимым A, выбираемым адресом считывания, совершается только с помощью B, выбираемым адресом считывания/записи, а результат условно хранится в B. Загружается или не загружается B, зависит от сигналов отпирания ALUP, отпирания (enable) памяти и отпирания памяти состояния, что будет описано далее.
Эти операции включают исчерпывающий набор арифметических и логических команд, а также команд сдвига и поворота. Структуры сдвига одного слова показаны на фиг. 6, а структуры сдвига сдвоенного слова показаны на фиг.7. Набор команд сведен в табл. 3-6.
Системная половина многопортовой памяти с произвольным доступом обеспечивает доступ к различным линиям входа выхода, а также к битам управления конфигурацией и состоянием. Эти биты используются следующим образом:
3.2.1. MQ
Бит MQ, множитель/частное используется при выполнении команд умножения, деления, а также сдвига и поворота сдвоенного слова. Доступ к этому биту может осуществляться независимо от адресов считывания и считывания-записи через линию MO.
3.2.2. MDR
MDR регистр данных памяти связывает ячейку с внешней памятью. Доступ к этому регистру может осуществляться независимо от адресов считывания/записи и считывания через линию внешней памяти и управляется двумя сигналами управления MDR "направление" и "строб".
3.2.3. Регистр состояния
Биты "перенос", "отрицательный", "нулевой" и "переполнение" составляют регистр состояния. Входами к каждому биту является шина ALU D, которая используется при выборе бита адресом считывания/записи и другими источниками, выбранными командой PLA. Запись в эти ячейки управляется отдельно от записи в ячейки, выбираемые адресом считывания/записи. Такое независимое управление осуществляется по линиям отпирания памяти.
Входами к битам регистра состояния для арифметической и логической команд являются: бит переноса вывод ALU, отрицательный бит ALUD BUS, нулевой бит мультиплексор состояния влево/вправо, бит переполнение переполнение ALU. Бит "нулевой", фактически бит "ненулевой" называется также триггером состояния и используется всеми зависящими от данных командами, такими, как уплотнение и деление и, следовательно, его значения изменяются от команды и команде. Триггер нуля является инвертированным, поскольку арифметическая и логическая команды являются действительными, когда результат является ненулевым.
3.2.4. Стойкое переполнение (Sticky Over flow).
Бит стойкого переполнения управляется отдельно от регистра состояния. Он реализует логическую операцию ИЛИ между собой и переполнением ALU и может быть использован для текущей проверки наличия или отсутствия состояния ошибки. Обычно загружается, когда действительным становится младший значений бит слова, например, последний цикл последовательности умножения.
3.2.5. Шина и линия
Четыре регистра, а именно: регистры горизонтальной шины, вертикальной шины, линии вверх и линии вниз обеспечивают вход и выход ячейки. Каждый регистр может загружаться от шины или линии, имеющей такое же название, и наоборот, каждая шина или линия может непосредственно управляться от одноименного регистра. Кроме того, эти регистры обеспечивают выполнение трехадресных операций, а именно A PLUS B__→C, где C один из регистров. Любой из этих битов может загружаться из ALUD BUS независимо от адреса считывания/записи. Эти регистры могут также быть обойдены, т.е. шина или линия могут быть непосредственно соединены со входом ALU, а содержимое этих регистров остается неизменным. Такой прямой ввод наряду с прямым выводом из ALU обеспечивает накопление результатов от строки к строке, что называется "бортовая операция", которая будет разъяснена далее. Эти регистры управляются функцией ввода/вывода и сигналами выбора ввода/вывода, которые являются частью управляющих сигналов линии данных.
3.2.6. Маска восстановления импеданса
Маска восстановления импеданса используется пятью арифметическими линиями для сведения к минимуму времени распределения сигналов в чипе. Эта маска не имеет специальных входов и должна обеспечить уменьшение выдержки в чипе на 50 Использование маски восстановления импеданса в линии переноса описано в ранее поданной заявке Мортона N 452592 от 23 декабря 1982 г.
3.2.7. Горизонтальная маска ALUP
Три горизонтальных маски ALUP организуют ячейки в слова. См. "Типы слоев".
3.2.8. Вертикальные маски ALUP
Три вертикальные маски ALUP управляют потоком информации по линиям вверх и вниз. Маски 0 и 1 дешифрируются для управления информацией, подводимой к строке, а маска 2 выбирает данные, которые выводятся из строки (см. табл. 2). Если вертикальная маска 2 действительна, то выход ALU может стать выходом из строки, а использование команды прямого ввода позволяет этому выходу стать входом ALU следующей строки. Эти операции являются многострочными или "бортовыми". Таким образом, множество строк может оперировать данными, накопленными поперек строк. Таким образом, сумма данных от всех строк может быть вычислена в одном цикле. Кроме того, данные могут перемещаться вверх и вниз в соответствии с выбором, который осуществляется сигналами выбора ввода/вывода.
3.3. Арифметический и логический блок
Арифметический и логический блок (ALU) выполняет семь арифметических, семь логических и две постоянные функции. Эти функции отражены в табл. 3 и в первых семи командах в табл. 4. Эти функции явно выполняются логическими командами и некоторыми из арифметических команд и неявно выполняются другими командами.
3.4. Горизонтальные линии данных
Между соседними ячейками имеется пять основных горизонтальных линий данных. Эти линии, а именно ALU, "перенос", MQ "цикл" и "состояние" поддерживают арифметические операции. Эти линии являются существенными для работы чипа и обеспечивают возможность реализации произвольной длины слова, перекрытия диапазона от множества слов в одном чипе до множества чипов на одно слово. Эти линии выводятся из чипа из каждой строки с левой стороны самого левого столбца и с правой стороны крайнего правого столбца, четыре из этих линий, а именно ALU, MQ, "цикл" и "состояние" являются двунаправленными, а их работа зависит от поперечных горизонтальных мультиплексоров. Линия переноса является однонаправленной и описана в патентной заявке Мортона "Восстановление импеданса для распределения быстрого переноса".
Основной проблемой обеспечения произвольной длины слова является проблема связи противоположных концов слова между собой. В обычных ЭВМ с фиксированной длиной слова младший значащий слой связан со старшим значением слоев одним проводом. Это соединение используется для операций с одиночным словом, таких, как поворот, и операций со сдвоенным словом, таких, как умножение и деление. Один 16-ти битовый чип ассоциативного процесса может потребовать сотен проводов, если каждый возможный старший значащий слой непосредственно связывать с каждым возможным младшим значащим слоем. Произвольной является не только длина слова, но и положение слова в последовательности ячеек. Проблема осложняется также тем, что необходимо обеспечить возможность соединения произвольного количества чипов ассоциативного процесса в матрицу различных размеров. Число возможных соединений при этом оказывается очень большим.
3.4.1. Поперечный горизонтальный мультиплексор
Поперечный горизонтальный мультиплексор перемещает бит из ячейки к ее левому или правому соседу или перемещает бит от левого или правого соседа к другому соседу, обходя ячейку. Таким образом, последовательность ячеек может быть произвольно разделена в слова путем выбора некоторых мультиплексоров для связи битов в группы, образующие собственно слова, а мультиплексоров в других ячейках для формирования граничных битов, т.е. в младшем и старшем значащих слоях, разделяющих слова. Команда PLA использует горизонтальные маски ALUP, которые идентифицируют типы слоев, а также коды команды для надлежащего управления различными горизонтальными мультиплексорами.
Поперечные горизонтальные мультиплексоры в основном реализуются в виде интегральных схем с МОП-транзисторами и ДМОП-транзисторами. Настоящее изобретение направлено на использование таких устройств в матрице. При этом облегчается связь между тремя соседними устройствами (см. фиг. 12). Сигнал "влево" от поперечного горизонтального мультиплексора, расположенного в середине, т. е. ячейки М, проходит к контакту "вправо" ячейки М+1, а сигнал "вправо" от ячейки М проходит к контакту "влево" ячейки М-1.
На фиг. 13 показаны потоки данных, которые могут иметь место при наличии поперечного горизонтального мультиплексора. Каждый мультиплексор имеет четыре сигнальных узла, из каждого из которых выходит однобитовая линия, а также управляющие коды. Имеется однонаправленный вход данных и однонаправленный выход данных. Линия сигнала "влево" к контакту "вправо" левого соседа, как и линия сигнала "вправо" к контакту "влево" правого соседа, являются двунаправленными. Управляющие входы позволяют выбрать пять потоков данных:
1. от ячейки M к ячейке M+1 линия 1A связывает вход данных с контактом "влево", а линия 2B связывает контакт "вправо" с выходом данных;
2. от ячейки M к ячейке M+1 линия 2A связывает вход данных с контактом "вправо", а линия 2B связывает контакт "влево" с выходом данных;
3. от ячейки М-1 к ячейкам М+1 линия 3 обеспечивает однонаправленное соединение от контакта "вправо" к контакту "влево", а линия 1B обеспечивает соединение контакта "вправо" с выходом данных;
4. от ячейки М+1 к ячейке М-1 линия 4 обеспечивает однонаправленное соединение контакта "влево" с контактом "вправо", а линия 2B обеспечивает соединение контакта "влево" с выходом данных;
5. между ячейками М+1 и М-1 линия 5 обеспечивает двунаправленное соединение между контактами "влево" и "вправо".
Преимущество поперечного горизонтального мультиплексора состоит в том, что он позволяет строить упорядоченные структуры, обеспечивающие произвольную длину слова, используя связи данных только между соседними ячейками. Кроме того, находящиеся в ячейке данные могут не использоваться в операции, а количество соединений между ячейками сводится к минимуму без обращения к мультиплексированию соединений с разделением времени.
Поперечный горизонтальный мультиплексор состоит из трех двухвходовых мультиплексоров, двух буферов, имеющих три состояния, и двунаправленного вентиля передачи. Мультиплексор М3 называется "Мультиплексор влево/вправо", поскольку он осуществляет выбор между сигналами влево и вправо. Требуется лишь по одному соединению с левым и правым соседями (см. фиг.14).
Существуют пять управляющих сигналов: "обход", "выбор влево/вправо", "выбор выхода", "стрелка влево" и "стрелка вправо". Логика, показанная на фиг. 15, позволяет использовать только три управляющих сигнала, а сигналы "стрелка влево", "стрелка вправо" и "выбор выхода" вырабатываются из сигнала направления. Использование такой логики предполагалось и выше и обеспечивает протекание входных данных либо вправо, либо влево, но не в оба направления одновременно, а входные данные выходят из входных данных справа и слева, но не из выходных.
Далее используется следующее определение:
1. вентиль передачи вход и выход взаимозаменяемы, между входом и выходом имеет место большой импеданс, если сигнал на линии управления соответствует логическому нулю, и малый импеданс, если сигнал на линии управления соответствует логической единице;
2. буфер выход повторяет вход, малый импеданс по отношению к линии питания или земле имеет место, когда сигнал на линии управления соответствует логической единице, и высокий выходной импеданс, если сигнал на линии управления соответствует логическому нулю;
3. двухвходовый мультиплексор выход Y повторяет вход "0", если сигнал на линии выбора соответствует логическому нулю; выход повторяет вход "1", если сигнал на линии выбора соответствует логической единице.
Далее приводится подробное описание работы поперечного горизонтального мультиплексора.
1. Данные проходят от входа данных к выходу влево: сигнал "обход" на Т1 соответствует логическому нулю. "Выбор влево/ вправо" устанавливается соответствующим логическому нулю для "выбора ввода данных", "стрела влево" устанавливается на логическую единицу, так что контакт "влево" принимает выбранные данные от М1, а "стрела вправо" устанавливается на логический нуль, так что данные могут входить справа. Выбор выхода устанавливается на логическую единицу, так что данные на контакте "вправо" посылаются к выходу данных на М3.
2. Данные проходят от ввода данных к контакту "вправо": то же самое, что в случае 1, за исключением того, что "стрелка вправо" соответствует логической единице, а "стрелка влево" и выбор выхода логическому нулю.
3. Данные проходят от контакта "вправо" к контакту "влево": "обход" устанавливается на логический нуль, а ввод данных не используется. "Выбор влево/вправо" устанавливается на логическую единицу, так что данные от контакта "влево" проходят к выходу М2. "Стрелка вправо" устанавливается на логическую единицу, так что выход М2 проходит через В2 к контакту "вправо". Стрелка "влево" устанавливается на логический нуль, как и "выбор выхода", так что управляющий вход проходит через М3 к выходу данных.
4. Данные проходят от контакта "влево" к контакту "вправо" то же, что и в случае 3, за исключением того, что "стрелка вправо" и "выбор выхода" соответствуют логической единице, а "стрелка" вправо" логическому нулю.
5. Данные проходят между левой и правой ячейками: сигналы "выбор входа", "выбор выхода" и "выбор приема" не используются. "Стрелка влево" и "стрелка вправо" устанавливаются на логический нуль. "Обход" устанавливается на единицу, так что между контактом "влево" и контактом "вправо" устанавливается двунаправленное соединение со сравнительно малым импедансом. Это состояние используется при отказе ячейки, поскольку для протекания данных через ячейку требуется минимальное количество работающей логики.
Другим признаком изобретения является то, что оно позволяет динамически создавать линии с минимальной задержкой распространения. Отметим, что сигнал должен пройти через набор поперечных горизонтальных мультиплексоров, чтобы пройти от одного конца слова к другому, как в команде левого или правого состояния. Существуют два пути сигнала через ячейку, через мультиплексор и буфер (М1 и В1 или М2 и В2 на фиг.14) или через вентиль передачи (Т1 на фиг. 14).
Трудность состоит в том, что даже в активном состоянии вентиль передачи имеет сравнительно большой импеданс. Поскольку количество мультиплексоров, через которые проходят данные, увеличивается, то работа схемы замедляется из-за наличия распределенной емкости и увеличения импеданса цепочки вентилей передачи.
На фиг. 16А показана схема вентиля передачи на ДМОП-транзисторе. Вентиль передачи состоит из двух последовательных транзисторов, одного p-канального, а другого n-канального. Если в линии управления имеет место высокий уровень, то в зависимости от состояния входного сигнала проводит либо один, либо другой транзистор, представляющие сравнительно низкий импеданс между входом и выходом. При этом вентиль считается активным. Если на линии управления имеет место низкий уровень, то ни один из транзисторов не проводит, и вход отключен от выхода.
На фиг. 16В показана эквивалентная схема вентиля передачи с сосредоточенными постоянными. Для активного вентиля минимальных размеров в соответствии с правилом конструирования 4 и при рабочем напряжении схемы 5 B C0 + C1 0,5 n ф, R 1, к Ом.
На фиг. 17 показан набор последовательно соединенных эквивалентных схем с сосредоточенными постоянными, образующих длинную цепочку. Активное сопротивление, через которое заряжается емкость C, связанная с узлом 1, равно R плюс S, где S сопротивление источника. Подобно этому активное сопротивление, через которое заряжается емкость C, связанная с узлом 4, составляет 4R плюс S и т.д. Таким образом, быстродействие схемы ухудшается с увеличением последовательно соединенных вентилей передачи.
Если каждый вентиль передачи заменить буфером, то управление каждым узлом будет осуществляться через одинаковое сопротивление. Однако задержка сигнала при прохождении через буфер значительно больше, чем через одиночный вентиль передачи. Оптимальное функционирование обеспечивается некоторой комбинацией вентилей передачи и буферов.
Задержка при минимальных размерах схем на базе ДМОП-транзисторов, напряжении питания 5 В и минимальной нагрузке составляет примерно:
1. мультиплексор и буфер 10 нс,
2. вентиль передачи (3+N) нс для небольших значений N, где N индекс вентиля в цепочке вентилей.
Таким образом, четыре поперечных горизонтальных мультиплексора, соединенных последовательно, создают задержку 40 нс для четырех последовательных буферов, и только 22 нс при последовательном соединении трех вентилей передачи и одного буфера. Таким образом, быстродействие схемы, в которой используется комбинация вентилей передачи и буфером, почти в два раза выше, чем схемы, состоящей только из буферов. Для обеспечения малого импеданса следует использовать буфер, если паразитные задержки не перевешивают выгоды от соединения через вентиль передач.
В общем, набор уровней для сигналов "обход", "стрелка влево" и "стрелка вправо" выбирается из соображений минимизации времени распространения. Этот выбор зависит от технологии изготовления схем, характеристик интерфейса между ячейками (которые могут быть на различных чипах) и размера слова. В предыдущем примере предполагалось, что следует задействовать лишь каждый четвертый буфер, оставляя три взаимосвязанных вентиля передачи потенциально активными.
Программист устанавливает маску восстановления импеданса на логическую единицу в тех ячейках, где используется буфер, а не вентиль передач. Если команда PLA специфицирует связи от контакта "влево" к контакту "вправо" или наоборот, то маска восстановления импеданса устанавливается на логический нуль, сигнал "обход" устанавливается на логическую единицу, а сигналы "стрелка влево" и "стрелка вправо" на логический нуль. При этом используется вентиль передачи. Подобно этому, если маска восстановления импеданса установлена на логическую единицу, то сигнал "обход" останавливается на логический нуль, задействуется буфер, выбираемый сигналом "стрелка влево" или "стрелка вправо".
Подобно этому, если данные в ячейке должны быть исключены из операции, то сигнал "обход" может быть установлен на логическую единицу, а сигналы "стрелка влево" и "стрелка вправо" на логический нуль.
3.4.2. Использование линии
Система с динамической конфигурацией размера слова требует для поддержки большого набора команд лишь пяти горизонтальных линий связи между соседними ячейками. Эти линии используются следующим образом:
"Перенос" транслирует арифметический перенос от выхода переноса ALU влево или перемещает перенос справа налево.
ALU перемещает бит из одной ячейки в следующую. Это перемещение может совершаться влево, вправо, справа налево или слева направо. Типовым входом для этой линии является шина C ALU, т.е. выход ALU, и типовым местом назначения является многопортовая память с произвольным доступом.
MQ множитель/частное перемещает бит от одной ячейки к следующей. Это перемещение может совершаться влево, вправо, справа налево или слева направо. Типовым входом для этой линии является триггер MQ и типовым местом назначения триггер MQ.
"Цикл" перемещает бит из одной ячейки к следующей. Типовым входом этой линии является шина C ALU, т.е. выход ALU, а типовым местом назначения -триггер MQ. С помощью этой линии обычно обеспечивается связь концов при операциях с удвоенным словом.
"Состояние" перемещает бит из одной ячейки в другую. Это перемещение может совершаться влево, вправо, справа налево или слева направо. Кроме того, с использованием логики, расположенной вне поперечного горизонтального мультиплексора, могут выполняться операции OR и XOR, благодаря чему проверка нуля или четкости может совершаться на полном слове в ходе одной операции. Типовым входом этой линии является шина D ALU, а типовым местом назначения - регистр состояния. В отличие от других линий, точкой назначения которых обычно является один триггер, линия состояния является широко используемой линией. Команды умножения и деления используют эту линию для передачи одного бита состояния ко всем триггерам состояния в слове, в результате чего координируется работа слова.
Использование этих линий в ключевых командах показано на фиг. 18-25. В этих фигурах используются следующие термины: A/S определяется линией выбора последовательного входа; A выход ALU мультиплексора влево/вправо; D шина D ALU; L выход "цикл" мультиплексора влево/вправо; M выход MQ мультиплексора влево-вправо; S выход "состояние" мультиплексора влево/вправо; MPR - многопортовая память с произвольным доступом; MUX мультиплексор; THMUX - поперечный горизонтальный мультиплексор; MULMSB старший значащий бит множителя.
На фиг. 18 показано использование линии в команде ADD. Линия переноса перемещает выход переноса ALU каждого слоя, за исключением MSS, к следующему слою влево. Линия состояния с логическими схемами ИЛИ, расположенными вне поперечных горизонтальных мультиплексоров, обеспечивает выполнение операции ИЛИ над каждым битом суммы, справа налево, так что триггер "нуль/состояние" в MSS имеет нулевой логический уровень только в том случае, если все биты суммы имеют нулевые логические уровни. Перенос в LSS выбирается линиями последовательного ввода, которые выбирают из нуля, единицы и других.
На фиг. 19 показано использование линий в команде ARITHMETIC/LOGIC SHIFT RIGHT (арифметическо-логический сдвиг вправо). Линия ALU переносит бит шина C ALU каждого слоя, за исключением LSS, на один бит вправо, где он запоминается в многопортовой памяти с произвольным доступом. Линия состояния переносит сдвинутый из LSS бит ко всем триггерам состояния для использования в сдвигах множеств слов. Вход в MSS выбирается линиями выбора последовательного входа, которые выбирают между нулем и шиной G ALU, причем последняя используется для копирования знакового бита в арифметических сдвигах.
На фиг. 20 показано использование линий на примере операции пропуска поля. Выполняется команда арифметическо-логического сдвига вправо, однако ячейки в середине слова устанавливаются в неактивное состояние. Данные из третьей ячейки слева проходят в линию ALU, минуя три неактивные ячейки, и запоминаются в третьей ячейке справа. Количество ячеек, находящихся в неактивном состоянии, тип слоя источника и ячейки приема данных, а также направление потока данных являются произвольными.
На фиг. 21 показано использование линий на примере операции, в которой используется горизонтальный пропуск. Если при выполнении команды арифметическо-логического сдвига вправо все ячейки, за исключением MSS и LSS, установлены в состояние горизонтального пропуска, бит из MSS проходят по линии ALU ко всем другим ячейкам слова и в них запоминается.
На фиг. 22 показано использование линий в команде поворот влево. Адрес считывания выбирает ячейку в многопортовой памяти. Содержимое ячейки в LSS и всех ISS сдвигается на один бит влево через линию AI. Содержимое ячейки MSS входит в линию цикла, которая переносит его к LSS. Сдвинутые данные записываются в ячейку многопортовой памяти, выбранную адресом считывания записи.
На фиг. 23 показано использование линий в команде DOUBLE ROTA TE LEFT. Эта операция подобна повороту влево, за исключением того, что сдвигается пара слов. Слово в ячейке многопортовой памяти выбирается адресом считывания и сдвигается на один бит влево через линию ALU, а бит, сдвинутый из MSS, вводится в LSS специальной ячейки многопортовой памяти, в регистр MQ по линии состояния. Регистр MQ сдвигается на один бит влево через линию MQ, а бит, сдвинутый из MSS, вводится в LSS ячейки, выбранной адресом считывания, через линию цикла.
На фиг. 24 показано использование линии в команде MULTIPLY INTERMEDIATE. Используемый алгоритм предназначен для суммирования множимого с частичным произведением, если текущий младший значащий бит множителя соответствует логической единице. После этого частичное произведение сдвигается вместе с множителем на один бит вправо. Триггер состояния определяет, следует или нет суммировать множимое с частичным произведением. Линия переноса перемещает выход переноса ALU каждого слоя, за исключением MSS, к следующему слою влево. Линия ALU перемещает каждый бит суммы частичного произведения на один бит вправо, за исключением MSS, который получает старший значащий бит множителя, знаковый бит, который скорректирован на переполнение. Сдвинутая сумма загружается в многопортовую память с произвольным доступом. Линия MQ перемещает каждый бит множителя в триггер MQ на один бит вправо, за исключением MSS. Сдвинутый результат загружается в триггер MQ. Линия цикла перемещает сумму частичного произведения в MSS, минуя остальные слои, к MSS триггера MQ. Триггер состояния в LSS принимает бит множителя, сдвинутый из второго LSS триггера MQ. Линия состояния переносит этот же бит из второго LSS триггера MQ влево ко всем триггерам состояния, кроме LSS. Этот бит состояния используется в следующем цикле. Эта команда выполняется для каждого бита множителя, за исключением последнего бита, если данные представлены в виде второго дополнения.
На фиг. 25 показано использование линии для команды DIVIDE INTERMEDIATE. Используется алгоритм деления без восстановления. Операция ALU зависит от триггера состояния, который запоминает результат предыдущего цикла. Линия ALU сдвигает частичный остаток, вначале старшую значащую половину числителя на один бит влево, в то время как линия MQ сдвигает младшую значащую половину числителя, а иногда и частное на один бит влево. Половинки числителя связаны линией цикла. Линия состояния переносит сравнение знака их MSS ко всем слоям памяти в регистр состояния для использования в следующем цикле. Сравнение знака определяет, следует ли прибавлять знаменатель к частичному остатку или вычитать.
3.5 Горизонтальные шины
Горизонтальная шина и шина ИЛИ (ORed BuS) включены параллельно всем ячейкам в строке и выводятся из чипа.
Горизонтальная шина является двунаправленной и может загружаться непосредственно в триггер горизонтальной шины в каждой ячейке или может быть использована непосредственно в качестве входа в ALU. Горизонтальная шина может управляться триггером горизонтальной шины выбранной ячейки. В каждой стоке одна ячейка выбирается путем ввода линии вертикальной шины. Работой горизонтальной шины управляют линии функции ввода/вывода и выбора ввода/вывода.
Шина ИЛИ, вырабатывающая инвертированный выход, является однонаправленной. Выход этой линии подлежит операции ИЛИ наряду с подобными выходами других чипов в строке, причем операция ИЛИ выполняется логической схемой ИЛИ. Драйвер шины всегда работает. Шиной, представляющей собой внутренний разомкнутый коллектор, управляет одна или более ячеек, если вводится одна или более линий вертикальной шины. Источником данных для этой шины является триггер горизонтальной шины.
3.6 Вертикальные соединения
Между ячейками имеются три вертикальные связи, линия вверх, линия вниз и вертикальная шина. В пределах чипа ассоциативного процессора вертикальная шина включена параллельно всем ячейкам столбца, а линии вверх и вниз соединяют все ячейки столбца последовательно.
Работой этих линий управляют сигналы "функция ввода/вывода" и "выбор ввода/вывода". Каждая линия может управляться конкретным битом могопортовой памяти, и каждая линия может непосредственно загружаться в этот бит или может быть непосредственно связано со входом ALU, причем управление осуществляется адресом считывания и адресом считывания/записи. Кроме того, загрузкой битов многопортовой памяти, управляющих этими линиями, управляют отдельно от адресов считывания/записи линии функции ввода/вывода. Существует трехадресный механизм, позволяющий выполнять операцию вида
A OPERATION B__→ C,
где C является одним из регистров вертикальной шины, регистром "вверх" и регистром "вниз".
Для ускорения попеременного перемещения данных как вверх, так и вниз по линиям "вверх" и "вниз" предусмотрены отдельные регистры, т.е. биты многопортовой памяти.
Лишь небольшое количество логики каждой строки чипов предназначено для общего пользования. Двунаправленные буферы предназначены для горизонтальной шины. Выходной буфер горизонтальной шины отпирается, когда линии выбора ввода/вывода и функции ввода/вывода находятся в состоянии разрешения выхода горизонтальной шины, а вертикальная шина введена. Управление входом/выходом в каждый момент вращения может осуществляться только одной ячейкой. Входной буфер горизонтальной шины отпирается, когда линии выбора ввода/вывода и функции ввода/вывода не находятся в состоянии разрешения выхода горизонтальной шины.
Каждый столбец чипа имеет общий двунаправленный буфер. Выходной буфер отпирается, когда линии выбора ввода/вывода и функции ввода/вывода находятся в состоянии разрешения выхода вертикальной шины и когда введена любая горизонтальная шина. Входной буфер отпирается, когда линии выбора ввода/вывода и функции ввода /вывода не находятся в состоянии разрешения выхода вертикальной шины.
3.7. Логическая матрица, программируемая командой
Конфигурация каждой ячейки определяется собственным набором масок ячейки, и следовательно, каждая ячейка должна иметь свой собственный дешифратор команд. Такой дешифратор представляет собой программируемую логическую матрицу (PLA). Эта матрица является упорядоченной структурой, которая облегчает изменение определения или корректировку функций. Она имеет небольшое количество входов 10, но сравнительно большое количество выходов 40, из которых одновременно используются только немногие.
Коды операций команд, нумерация слоев, а также коды выбора внутреннего мультиплексора выбираются таким образом, чтобы свести к минимуму размер PLA. Чем больше входов в мультиплексор используется, тем меньше их число в коде выбора.
Некоторые выходы PLA модифицируются триггером состояния с тем, чтобы команды могли зависеть от данных. Архитектура сравнительно проста с той точки зрения, что зависимым от данных является лишь выбор операции ALU, но не работа линии. Команды умножения и деления используют это свойство зависимости от данных и могут применяться в варианте, специально приспособленном для быстрых операций.
Мультиплексор ALU OP на фиг. 10 выбирает один из двух наборов по четыре бита ALU OP в зависимости от состояния триггера состояния. Если состояние не соответствует конкретной команде, то наборы битов ALU OP одинаковы.
4. Сигналы арифметического процессора
Управление линией данных внутри арифметически-логического единичного процессора осуществляется регистрами магистрали команды. Сигналы чипа сведены в таблицу 7.
4.1.Управление линией данных
Далее перечислены все входы:
1. Код команды 5-0 эти сигналы определяют подлежащую выполнению команду. Перечень таких команд приведен в табл. 3, 4 и 5.
2. Выбор последовательного ввода 1,0 эти сигналы выбирают один из четырех входов схемы переноса LSS ALU в арифметической команде. Этими входами являются: перенос вправо; логический нуль; логическая единица; триггер переноса.
Эти сигналы выбирают также один из четырех входов в регистр сдвига LSS или MSS в команде сдвига и поворота. Входами являются: логический нуль; ALU вправо или ALU влево в линию ALU или MQ вправо или MQ влево в линию MQ; триггер переноса; шина C ALU.
3. Адрес считывания 5-0 эти сигналы выбирают один из 64 входов ко входу "A" ALU, как показано в табл. 1.
4. Адрес считывания/записи 5-0 эти сигналы выбирают один из 64 входов ко входу "B" ALU, как показано в табл. 1. Если запись осуществляется в многопортовую память, то эти же входы выбирают ячейку, в которую запись должна быть произведена.
5. Выбор ввода/вывода 1,0 ввод или вывод в арифметический процессор выбирается из: вертикальной шины; горизонтальной шины; линии вниз; линии вверх.
6. Функции ввода/вывода 1,0 операции шины, линии или ячейки связанной памяти с произвольным доступом выбираются посредством выбора ввода/вывода. Этими операциями являются:
разрешение вывода (управление выбранной шиной или линией от связанной ячейки памяти);
прямой ввод (разрешение на использование внешней шины или линии в качестве входа ALU);
загрузка извне (загрузка связанной ячейки памяти из выбранной внешней шины или линии);
загрузка изнутри (загрузка связанной ячейки памяти от шины D ALU).
Если с помощью функции разрешения вывода выбирается вертикальная шина, то осуществляется вывод из строки, в горизонтальной шине которой имеет место сигнал логической единицы. Если с помощью функции разрешения вывода выбирается горизонтальная шина, то осуществляется вывод из столбца, в вертикальной шине которого имеет место сигнал логической единицы. Выбор линии вверх или линии вниз разрешает вывод независимо от функции ввода/вывода.
4.2. Управление состоянием
Эти входы управляют загрузкой многопортовой памяти, регистратора состояния и триггера стойкого переполнения. Все операции выполняются последовательно, ячейка за ячейкой. Загрузка памяти зависит от: (1) разрешения ALUP, (2) команды, (3) разрешения памяти и (4) горизонтальной маски ALUP. Отметим, что триггер нуля имеет различные применения и называется также "Триггер нуль/состояние" и "Триггер состояния".
1. Разрешение памяти 1,0 загрузка триггеров состояния, триггера стойкого переполнения и многопортовой памяти разрешается в следующих комбинациях: может загружаться только многопортовая память; может загружаться только регистр состояния и многопортовая память; может загружаться только регистр состояния; может загружаться все.
2. Разрешение, зависящее от состояния, 2,1,0-память может загружаться по условию, только если специфицированы выбранные условия: горизонтальная шина должна соответствовать логической единице; триггер переноса должен соответствовать логической единице; отрицательный триггер должен соответствовать логической единице; триггер нуль/состояние должен соответствовать логической единице; загрузка имеет место; триггер переноса должен соответствовать логическому нулю; отрицательный триггер должен соответствовать логическому нулю; триггер нуль/состояние должен соответствовать логическому нулю.
4.3. Сигналы для ячейки
1. Внешняя память вход или выход с тремя состояниями. На контакте имеется выходной сигнал, если "направление" соответствует логической единице. В противном случае контакт является входным.
4.4 Сигналы для строки
Если нет других указаний, то выходы имеют три состояния.
1. Шина ИЛИ инвертированный выход, имеющий два состояния. Сигнал является логическим НЕ-ИЛИ от (данные (N) И вертикальная шина (N)) для всех столбцов.
2. Горизонтальная шина вход или выход. Сигнал является результатом логической операции ИЛИ от (триггер горизонтальной шины (N) И вертикальная шина (N)) для всех столбцов. Единовременно во всю строку чипов может быть введено не более одной линии вертикальной шины. Эта шина управляется только в том случае, если она выбрана выбором ввода/вывода, выход функции ввод/вывод разрешен, а также любая вертикальная линия в чипе соответствует логической единице. Данные поступают через регистр горизонтальной шины.
3. ALU влево, ALU вправо вход и выход или выход и вход соответственно. Сигналы используются для операций сдвига.
4. MQ влево, MQ вправо вход и выход или выход и вход соответственно. Эти сигналы используются для операций, в которых одновременно сдвигаются два слова.
5. Перенос влево, перенос вправо выход и вход соответственно. Данные проходят справа налево для распространения переноса через ALU.
6. Состояние влево, состояние вправо вход и выход или выход и вход соответственно. Сигналы используются для определения нуля логическими и некоторыми из арифметических команд, а также для специальных функций сдвигов двойного слова и команд циркулярного состояния.
7. Цикл влево, цикл вправо вход и выход или выход и вход соответственно. Эти сигналы используются во многих операциях для соединения старшего значащего слоя с младшим значащим слоем.
4.5 Сводка сигналов для столбца
1. Вертикальная шина вход или выход. Выход вертикальной шины является активным, если он выбран с помощью выбора ввода/вывода, выход функции ввод/вывод разрешен, а горизонтальная шина введена. Данные выдаются регистром вертикальной шины.
2 и 3. Вверх, вниз могут быть входом и выходом или выходом и входом в зависимости от того, что определено вертикальной маской ALUP 0 и 1, выбором ввода/вывода и функцией ввода/вывода. Источник данных выбирается вертикальной маской ALU P 2.

Claims (2)

1. Операционное устройство для процесса с ассоциативной матрицей однородной структуры, содержащее матрицу из N рядов и M колонок операционных блоков, отличающееся тем, что каждый операционный блок включает в себя запоминающий узел, арифметико-логический узел, два мультиплексора, два регистра и триггер, причем первый выход запоминающего узла соединен с первым информационным входом арифметико-логического узла, второй выход запоминающего узла соединен с вторым информационным входом арифметико-логического узла, выход суммы арифметико-логического узла соединен с первыми информационными входами первого и второго мультиплексоров, выход первого мультиплексора соединен с информационным входом триггера, информационный вход первого регистра соединен с выходом второго мультиплексора, информационный вход второго регистра соединен с выходом результата арифметико-логического узла, выход триггера соединен с вторыми информационными входами первого и второго мультиплексоров, кроме того, выход второго мультиплексора соединен с третьим информационным входом первого мультиплексора и информационным входом запоминающего узла, причем выход суммы арифметико-логического узла является первым выходом результата операционного блока, выход второго мультиплексора является вторым выходом результата операционного блока, первые выходы результата N операционных блоков в i-й колонке
Figure 00000001
образуют первую группу из N выходов результата устройства, вторые выходы результата М операционных блов в i-м ряде
Figure 00000002
образуют вторую группу из М выходов результата устройства, первая группа управляющих входов устройства соединена с адресными и управляющими входами всех запоминающих узлов, вторая группа управляющих входов устройства соединена с входами кода операции всех арифметико-логических узлов, группа информационных входов устройства соединена с четвертыми информационными входами первых мультиплексоров всех операционных блоков и с третьими информационными входами вторых мультиплексоров операционных блоков.
2. Устройство по п. 1, отличающееся тем, что дополнительно содержит матрицу из поперечно-горизонтальных мультиплексоров, информационные входы, выходы и входы-выходы каждого из которых соединены с соответствующими информационными входами и выходами устройства, причем каждый поперечно-горизонтальный мультиплексор содержит три мультиплексора, два буферных узла с тремя состояниями и узел двунаправленной передачи, первый информационный вход-выход которого является одноименным входом-выходом поперечно-горизонтального мультиплексора и соединен с первыми информационными входами первого и второго мультиплексоров и выходом первого буферного узла с тремя состояниями, информационный вход которого соединен с выходом мультиплексора, первый информационный вход которого соединен с вторым информационным входом первого мультиплексора и является информационным входом поперечно-горизонтального мультиплексора, второй информационный вход третьго мультиплексора сосединен с вторым информационным входом-выходом узла двунаправленной передачи, выходом второго буферного узла с тремя состояниями и вторым информационным входом второго мультиплексора и является вторым информационным входом-выходом поперечно-горизонтального мультиплексора, выход которого подключен к выходу второго мультиплексора, информационный вход второго буферного узла с тремя состояниями соединен с выходом первого мультиплексора, управляющие входы первого, второго и третьего мультиплексоров, первого и второго буферных узлов с тремя состояниями и узла двунаправленной передачи образуют управляющий вход поперечно-горизонтального мультиплексора, управляющие входы всех поперечно-горизонтальных мультиплексоров матрицы подключены к соответствующим управляющим входам устройства.
SU843711202A 1983-03-08 1984-03-07 Операционное устройство для процессора с ассоциативной матрицей однородной структуры RU2087031C1 (ru)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US47336583A 1983-03-08 1983-03-08
US473364 1983-03-08
US473362 1983-03-08
US06/473,362 US4580215A (en) 1983-03-08 1983-03-08 Associative array with five arithmetic paths
US473365 1983-03-08
US06/473,364 US4546428A (en) 1983-03-08 1983-03-08 Associative array with transversal horizontal multiplexers

Publications (1)

Publication Number Publication Date
RU2087031C1 true RU2087031C1 (ru) 1997-08-10

Family

ID=27413239

Family Applications (1)

Application Number Title Priority Date Filing Date
SU843711202A RU2087031C1 (ru) 1983-03-08 1984-03-07 Операционное устройство для процессора с ассоциативной матрицей однородной структуры

Country Status (12)

Country Link
EP (1) EP0121763B1 (ru)
KR (1) KR910009095B1 (ru)
AR (1) AR242309A1 (ru)
AU (2) AU569729B2 (ru)
BR (1) BR8401012A (ru)
CA (1) CA1209711A (ru)
DE (1) DE3483016D1 (ru)
ES (1) ES8503867A1 (ru)
IN (1) IN161952B (ru)
MX (1) MX161700A (ru)
NZ (1) NZ207326A (ru)
RU (1) RU2087031C1 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8154900B2 (en) 2006-08-04 2012-04-10 Qualcomm Incorporated Method and apparatus for reducing power consumption in a content addressable memory

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1986007174A1 (en) * 1985-05-20 1986-12-04 Shekels Howard D Super-computer system architectures
GB8517376D0 (en) * 1985-07-09 1985-08-14 Jesshope C R Processor array
CN1012297B (zh) * 1985-11-13 1991-04-03 奥尔凯托N·V公司 具有内部单元控制和处理的阵列结构
US4907148A (en) * 1985-11-13 1990-03-06 Alcatel U.S.A. Corp. Cellular array processor with individual cell-level data-dependent cell control and multiport input memory
EP0231686A3 (en) * 1985-12-12 1989-06-14 Itt Industries, Inc. Cellular array processing apparatus with variable nesting depth vector processor control structure
US4783732A (en) * 1985-12-12 1988-11-08 Itt Corporation Two-wire/three-port RAM for cellular array processor
US4783738A (en) * 1986-03-13 1988-11-08 International Business Machines Corporation Adaptive instruction processing by array processor having processor identification and data dependent status registers in each processing element
GB2211638A (en) * 1987-10-27 1989-07-05 Ibm Simd array processor
US4792894A (en) * 1987-03-17 1988-12-20 Unisys Corporation Arithmetic computation modifier based upon data dependent operations for SIMD architectures

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
1. Патент США N 3979728, кл. G 06 F 15/16, 1976. 2. Патент США N 4068305, кл G 06 F 13/00, 1978. *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8154900B2 (en) 2006-08-04 2012-04-10 Qualcomm Incorporated Method and apparatus for reducing power consumption in a content addressable memory

Also Published As

Publication number Publication date
CA1209711A (en) 1986-08-12
IN161952B (ru) 1988-03-05
KR910009095B1 (ko) 1991-10-28
NZ207326A (en) 1988-03-30
AU593964B2 (en) 1990-02-22
AU569729B2 (en) 1988-02-18
ES530374A0 (es) 1985-03-01
AU8283787A (en) 1988-04-14
ES8503867A1 (es) 1985-03-01
EP0121763A2 (en) 1984-10-17
BR8401012A (pt) 1984-10-16
AR242309A1 (es) 1993-03-31
EP0121763B1 (en) 1990-08-22
KR840008190A (ko) 1984-12-13
AU2527584A (en) 1984-09-13
DE3483016D1 (de) 1990-09-27
MX161700A (es) 1990-12-14
EP0121763A3 (en) 1988-01-27

Similar Documents

Publication Publication Date Title
US4580215A (en) Associative array with five arithmetic paths
US4546428A (en) Associative array with transversal horizontal multiplexers
KR960016880B1 (ko) 연관 병렬 처리 시스템
US6266760B1 (en) Intermediate-grain reconfigurable processing device
US4907148A (en) Cellular array processor with individual cell-level data-dependent cell control and multiport input memory
EP0100511B1 (en) Processor for fast multiplication
EP0208457A2 (en) A processor array
JPH0776923B2 (ja) 並列コンピュータ・システム
US4872137A (en) Reprogrammable control circuit
US20060101231A1 (en) Semiconductor signal processing device
RU2087031C1 (ru) Операционное устройство для процессора с ассоциативной матрицей однородной структуры
EP0007504B1 (en) Bubble domain relational data base system
US7409529B2 (en) Method and apparatus for a shift register based interconnection for a massively parallel processor array
EP0223690A2 (en) Processor array with means to control cell processing state
US4536855A (en) Impedance restoration for fast carry propagation
US5502832A (en) Associative memory architecture
Mandal et al. Use of multi-port memories in programmable structures for architectural synthesis
CA1215470A (en) Associative array
Delgado-Frias et al. A programmable dynamic interconnection network router with hidden refresh
NZ220079A (en) Transversal horizontal multiplexer
Ramamoorthy et al. Impact of VLSI on computer architectures
US6263482B1 (en) Programmable logic device having macrocells with selectable product-term inversion
Kartashev et al. Architectures for supersystems of the'80s
Ghose The architecture of response-pipelined content addressable memories
Wehner Memoryless Bit-Serial Processing Element For Highly Parallel Computing