EA005344B1 - Интегральная схема - Google Patents

Интегральная схема Download PDF

Info

Publication number
EA005344B1
EA005344B1 EA200301290A EA200301290A EA005344B1 EA 005344 B1 EA005344 B1 EA 005344B1 EA 200301290 A EA200301290 A EA 200301290A EA 200301290 A EA200301290 A EA 200301290A EA 005344 B1 EA005344 B1 EA 005344B1
Authority
EA
Eurasian Patent Office
Prior art keywords
data
operating units
integrated circuit
processing
types
Prior art date
Application number
EA200301290A
Other languages
English (en)
Other versions
EA200301290A1 (ru
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
Application filed by Ай Пи ФЛЕКС ИНК. filed Critical Ай Пи ФЛЕКС ИНК.
Publication of EA200301290A1 publication Critical patent/EA200301290A1/ru
Publication of EA005344B1 publication Critical patent/EA005344B1/ru

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • 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/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design

Abstract

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

Description

Настоящее изобретение относится к устройству, представляющему собой интегральную схему, в которой множество операционных блоков выполнено в виде матрицы.
Уровень техники
Общеизвестными являются ППВМ (программируемые пользователем вентильные матрицы (ЕРОА)), представляющие собой устройства, выполненные в виде интегральных схем, в которых логические элементы скомпонованы в виде массивов, а взаимные соединения между логическими элементами могут быть легко изменены. Конструкция ППВМ может быть грубо подразделена на множество логических блоков и межсоединений, соединяющих эти логические блоки. Логический блок представляет собой элемент схемы, содержащий таблицу преобразования (подстановки) и триггер, и путем изменения установленных значений в таблице преобразования он функционирует как логический элемент, обеспечивая побитовое выполнение логической функции, например И или ИЛИ. Множество логических блоков расположено в виде массива или матрицы, которые соединены посредством проводников для строк и проводников для столбцов. Проводники для строк и проводники для столбцов соединены посредством коммутационных матриц или аналогичных устройств в точках пересечения проводников, что обеспечивает возможность реконфигурации межсоединений. Изменение конфигурации логических блоков может быть осуществлено путем реконфигурации межсоединений.
ППВМ создают имеющими такую архитектуру, в которой соединения могут быть изменены на транзисторном уровне, и они представляют собой устройства в виде интегральных схем, в которых исполняемые функции могут быть в некоторой степени изменены даже после изготовления ППВМ. Следовательно, архитектура ППВМ позволяет реализовать множество специализированных вычислительных схем посредством одних и тех же аппаратных средств, и обеспечивает возможность реализации некоторой ограниченной степени динамического управления их функционированием. Для создания архитектуры, которая может быть использована в разнообразных областях применения, логические блоки, из которых состоит ППВМ, имеют одинаковую конструкцию, а логическая функция, которая может быть реализована посредством каждого из логических блоков, ограничена приблизительно уровнем логических операций И, ИЛИ или И-НЕ. Операции с данными, предназначенными для обработки, выполняют побитовым способом, поэтому каждый из логических блоков снабжен всего лишь таблицей преобразования, состоящей из статического оперативного запоминающего устройства (ОЗУ), для 4 битов или около того.
ИИВМ реализуют функции логических элементов, например логического элемента И и логического элемента ИЛИ, путем использования логических блоков, содержащих таблицы преобразований, и путем соединения таких логических блоков с использованием реконфигурируемого набора проводников обеспечивают реализацию функций множества специализированных вычислительных схем. Следовательно, для реализуемых функций эффективность использования площади является низкой, а скорость вычислений также является не особенно высокой. При изменении функций, реализуемых посредством ППВМ, необходимо обеспечивать изменение функций чрезвычайно большого количества логических блоков, поэтому затруднительно выполнять динамические изменения. Тем не менее, даже при наличии возможности уменьшения времени, требуемого для изменения функций за счет создания специализированных аппаратных средств, обеспечивающих прямое управление каждым логическим блоком по отдельности, осуществление динамического управления такими специализированными аппаратными средствами во время выполнения прикладной задачи является затруднительным, и это техническое решение не является экономически целесообразным.
Авторами настоящего изобретения предложено устройство, представляющее собой интегральную схему, которое содержит множество операционных блоков различных типов, снабженных трактами прохождения данных (аппаратно реализованными посредством логических устройств или схем), приспособленными для требуемой или для специализированной обработки, в котором функциональные возможности интегральной схемы, действующей в качестве требуемого специализированного процессора, могут быть заданы путем изменения соединений между операционными блоками. В этом устройстве, представляющем собой интегральную схему, в отличие от ППВМ отсутствует необходимость изменения всех соединений на уровне транзисторов, поэтому изменение конфигурации аппаратных средств может быть выполнено за короткое время. Поскольку при использовании данной архитектуры отсутствует необходимость обеспечения универсальной применимости на уровне транзисторов подобно тому, как это делают в ППВМ, то может быть увеличена плотность упаковки и может быть создана компактная, экономичная система. Также могут быть устранены излишние компоненты, что приводит к увеличению скорости обработки и к улучшению характеристик по переменному току.
Однако поскольку ППВМ состоит из множества аналогичных функциональных устройств или функциональных блоков, процесс топологического размещения таких функциональных блоков в виде матрицы и позиционирования между ними проводников для строк и проводников для столбцов имеет высокую степень регулярности, что облегчает разработку ППВМ и приводит к высокой эффективности использования площади на уровне элементов. С другой стороны, операционные блоки, содержащие тракты прохождения данных, которые приспособлены для специализированной обработки, имеют раз
-1005344 личные тракты прохождения данных, соответствующие выполняемым операциям специализированной обработки, поэтому не все операционные блоки имеют одинаковые по конструкции схемы. Это означает, что площадь, необходимая для создания операционного блока на кремниевой подложке, не является одинаковой для всех операционных блоков. Для создания матрицы тем же самым способом, что и в ППВМ, состоящей из функциональных блоков одного типа, различные типы операционных блоков могут быть расположены таким образом, что каждый операционный блок занимает одинаковую площадь вне зависимости от того, какой тракт прохождения данных содержится в операционном блоке. Другими словами, множество операционных блоков может быть расположено в виде матрицы, в которой каждому операционному блоку выделена область, равная области, занятой тем операционным блоком, которому необходима область наибольшей площади. Однако это снижает эффективность использования площади, что приводит к чрезвычайно большому размеру интегральной схемы, а также приводит к ухудшению характеристик по переменному току. Это не позволяет полностью достичь основных достоинств интегральной схемы, состоящей из операционных блоков с трактами прохождения данных, приспособленными для специализированной обработки.
С учетом вышеизложенного, задачей настоящего изобретения является создание реального устройства, представляющего собой интегральную схему, которое содержит операционные блоки различных типов с трактами прохождения данных, приспособленные для специализированной обработки, и создание устройства, представляющего собой интегральную схему, в котором могут быть использованы преимущества таких операционных блоков. Еще одной задачей настоящего изобретения является создание компактной и экономичной интегральной схемы, имеющей высокую скорость обработки и хорошие характеристики по переменному току.
Сущность изобретения
Предложенное в настоящем изобретении устройство, представляющее собой интегральную схему, содержит блок обработки данных, включающий в себя множество операционных блоков, расположенных в первом и во втором направлениях в виде матрицы, множество первых наборов проводников, проходящих в первом направлении, соответствующем схеме расположения множества операционных блоков в этом первом направлении, и обеспечивающих передачу входных данных и/или выходных данных для каждого из операционных блоков, множество вторых наборов проводников, проходящих во втором направлении, соответствующем схеме расположения множества операционных блоков в этом втором направлении, и обеспечивающих передачу входных данных и/или выходных данных для каждого из операционных блоков, и множество коммутационных устройств, расположенных в каждой точке пересечения между первыми и вторыми наборами проводников и способных осуществлять выбор и соединение любого проводника, входящего в состав первых наборов проводников, с любым проводником, входящим в состав вторых наборов проводников. В этом устройстве, представляющем собой интегральную схему, вышеупомянутое множество операционных блоков содержит операционные блоки множества типов с различными трактами прохождения данных, которые приспособлены для специализированной обработки, или является упорядоченным по множеству типов операционных блоков, при этом схема расположения операционных блоков выполнена таким образом, что в первом или во втором направлении она состоит из операционных блоков одного и того же типа.
В данном описании выражение операционные блоки относится к устройствам малой степени интеграции, которые (1) осуществляют обработку данных побайтно или пословно, (2) снабжены трактами прохождения данных, приспособленными для специализированной обработки или для выполнения конкретных операций обработки, и (3) может выполнять специализированную или конкретную арифметическую операцию, специализированную или конкретную логическую операцию, либо эти операции в комбинации. Эти операционные блоки также именуют элементами, логическими элементами, логическими блоками или элементами схемы. Площадь, необходимая для создания на полупроводниковой подложке множества типов операционных блоков, содержащих различные или уникальные тракты прохождения данных, приспособленные для специализированной обработки, вероятно, является различной для каждого типа операционных блоков. Однако операционные блоки одного и того же типа занимают одинаковую площадь. Следовательно, за счет использования схемы расположения, в которой в первом направлении или во втором направлении расположены операционные блоки одного и того же типа, обеспечивают устранение отклонений, обусловленных различием размеров операционных блоков. Если первым направлением является направление вдоль строки (горизонтальное направление, поперечное направление или направление по ширине), то вторым направлением является направление вдоль столбца (вертикальное направление, продольное направление или направление по высоте). В качестве одного из примеров приведен следующий: если операционные блоки одного и того же типа расположены в первом направлении, то множество операционных блоков может быть расположено таким образом, что они образуют прямую полосу одинаковой ширины. Следовательно, множество операционных блоков, для которых тракт прохождения данных отличается в соответствии с их типом, и которые, вероятно, будут иметь различные размеры, могут быть расположены по прямой линии в первом направлении, не создавая избыточного расстояния во втором направлении. Поскольку в первом направлении операционные блоки выровнены вдоль прямой линии без колебаний размера, то, по меньшей мере, наборы проводников, прохо
-2005344 дящие в первом направлении, можно расположить по прямой линии. Это позволяет увеличить эффективность использования площади и степень интеграции интегральной схемы, в которой операционные блоки, содержащие различные тракты прохождения данных, расположены в виде матрицы, что обеспечивает возможность создания экономичной интегральной схемы, имеющей высокую скорость обработки и хорошие характеристики по переменному току.
При размещении большого количества операционных блоков одинаковых типов операционные блоки могут быть расположены таким образом, чтобы образовать множество линий в первом или во втором направлении. В том случае, если количество операционных блоков одного типа, например операционных блоков первого типа, является намного большим, чем количество операционных блоков второго типа, и если операционные блоки первого типа расположены просто в соответствии с длиной схемы расположения операционных блоков второго типа, то общая форма блока обработки данных в конечном итоге является слишком длинной и узкой, что может привести к снижению эффективности использования площади. В этом случае предпочтительно улучшить форму блока обработки данных путем соединения схемы расположения операционных блоков первого типа со схемой расположения операционных блоков второго типа. В этом случае схему расположения операционных блоков одного и того же типа в первом или во втором направлении создают, по меньшей мере, в некоторой части блока обработки данных, т. е. в области, имеющей ширину, равную ширине схемы расположения операционных блоков второго типа.
В том случае, когда операционные блоки одного и того же типа расположены в первом направлении, даже те операционные блоки, которые имеют различные размеры, соответствующие типам операционных блоков, могут быть выровнены вдоль прямой или прямолинейной линии без отклонений, хотя нет никакой гарантии того, что операционные блоки будут расположены вдоль прямой линии во втором направлении. Следовательно, предпочтительным вариантом является расположение операционных блоков множества типов на равном расстоянии друг от друга в первом направлении для гарантии того, что во втором направлении операционные блоки будут расположены вдоль прямой линии. В этом случае наборы проводников во втором направлении могут быть размещены вдоль прямой линии, что обеспечивает возможность минимизировать длину проводников, соединяющих операционные блоки. Кроме того, появляется возможность расположить как первые наборы проводников, так и вторые наборы проводников, вдоль прямой линии, что облегчает разработку интегральной схемы, в которой операционные блоки с различными трактами прохождения данных расположены в виде матрицы. В том случае, когда размеры операционных блоков различных типов в первом направлении являются различными, наиболее эффективная компоновка во втором направлении не может быть достигнута. Однако путем проектирования операционных блоков каждого типа таким образом, чтобы во втором направлении разности между областями, необходимыми для размещения операционных блоков различных типов, были одинаковыми, и поглощения этих разностей в первом направлении, может быть обеспечено эффективное размещение различных видов операционных блоков с наиболее высокой возможной плотностью в первом и во втором направлениях.
В предпочтительном варианте первые и вторые наборы проводников в дополнение к проводникам шин, образующих шины данных, служащие для передачи данных, должны содержать проводникиносители, служащие для передачи сигналов переноса. В такой конструкции передача сигналов переноса и сигналов, указывающих значение истинный или ложный, из одного операционного блока в другой операционный блок может быть осуществлена по маршруту, совпадающему с маршрутом шин данных.
Ввод данных в операционные блоки может быть осуществлен из любого из первых наборов проводников и вторых наборов проводников, а вывод данных может быть осуществлен в любой набор проводников. Однако путем установления правила, согласно которому ввод данных осуществляют из одного набора проводников, а вывод данных осуществляют в другой набор проводников, всегда может быть обеспечена передача данных из одного операционного блока в другой операционный блок только лишь через одно коммутационное устройство. Следовательно, в предпочтительном варианте операционные блоки содержат средство, обеспечивающее ввод сигнала из любого проводника, входящего в состав вторых наборов проводников, и средство, обеспечивающее вывод сигнала в любой проводник, входящий в состав первых наборов проводников.
Каждый операционный блок содержит тракты прохождения данных, приспособленные для специализированной обработки, поэтому каждый операционный блок может иметь соответствующие тракты прохождения данных для операций обработки, например, для арифметической операции, для логической операции и т.д., даже в том случае, когда для выполнения этой операции необходимо множество фрагментов входных данных. В предпочтительном варианте вторые наборы проводников образуют входные проводники и содержат два набора проводников, проходящих с обеих сторон относительно мест расположения операционных блоков во втором направлении, при этом подобный способ разводки проводников облегчает получение множества фрагментов входных данных операционными блоками.
При увеличении количества операционных блоков, содержащихся в матрице, в том случае, если эти операционные блоки соединены трансформируемым образом, то требуемое количество межсоединений соответствует количеству операционных блоков, вследствие чего становится необходимым чрезвычайно
-3005344 большое количество межсоединений. Поэтому в предпочтительном варианте матрица должна быть разделена на множество матриц для того, чтобы обеспечить размещение операционных блоков, приспособленных для обработки, задерживающей передачу данных, на границе между первой и второй матрицами, расположенными рядом друг с другом, для того, чтобы обеспечить разделение первых и вторых наборов проводников между первой и второй матрицами, и для того, чтобы обеспечить использование межсоединений как первой, так и второй матриц только для сигналов, передаваемых между первой и второй матрицами.
В предпочтительном варианте в состав операционных блоков с трактами прохождения данных, приспособленными для специализированной обработки, также входят операционные блоки нескольких типов, содержащие тракты прохождения данных, приспособленные для выполнения по меньшей мере одной иной операции обработки по команде или на уровне команд. В данном описании, если не указано иное, то выражение команда относится к любой команде, образующей собой часть набора команд для составления программы, и содержит составные команды, макрокоманды, вызовы функций и т.д. Следовательно, каждый операционный блок осуществляет побайтовую обработку данных, т.е. по 8 бит, или пословно по единичным 16, 32 или 64-битовым словам. В том случае, если обработка, выполняемая в этой интегральной схеме, может быть описана в виде команд языка программирования, поддерживаемых операционными блоками, путем изменения программы размещения операционных блоков и трассировки соединений, то может быть обеспечена простота разработки и изготовления интегральной схемы для выполнения этой обработки.
Другими словами, в настоящем изобретении предложено устройство, представляющее собой интегральную схему, содержащую блок обработки данных, который содержит операционные блоки множества типов, расположенных в первом и во втором направлениях в виде матрицы, и группу межсоединений, обеспечивающую соединение операционных блоков множества типов между собой, при этом в состав операционных блоков множества типов входят операционные блоки различных типов с трактами прохождения данных, приспособленными для выполнения по меньшей мере одной иной команды. При проектировании этого устройства, представляющего собой интегральную схему, осуществляют преобразование по меньшей мере части операций обработки, выполняемых в интегральной схеме, в промежуточное описание, написанное на языке программирования, содержащее команды, которые подают или которые могут быть выполнены одним или более из операционных блоков множества типов. Затем осуществляют генерацию исполнительной конфигурации из операционных блоков множества типов, которая может обеспечить выполнение этого промежуточного описания, и генерацию блока обработки данных, в котором операционные блоки множества типов расположены таким образом, что обеспечивают получение исполнительной конфигурации. Таким образом, разработка и изготовление устройства, представляющего собой интегральную схему, которая может выполнять предусмотренную обработку, могут быть выполнены легко и за короткое время. Устройство, представляющее собой интегральную схему, созданное посредством этого способа разработки и изготовления, выполняет предусмотренную обработку аппаратными средствами и, следовательно, имеет высокую скорость обработки.
Возможны следующие варианты типов операционных блоков, используемых в качестве операционных блоков, содержащих тракты прохождения данных, приспособленные для выполнения обработки на уровне команд, но они не являются ограничивающими. Операционный блок первого типа содержит тракт прохождения данных, приспособленный для обработки данных на входе. Операционный блок второго типа содержит тракт прохождения данных, приспособленный для обработки, указывающей адрес ввода данных. Операционный блок третьего типа содержит тракт прохождения данных, приспособленный для обработки данных на выходе. Операционный блок четвертого типа содержит тракт прохождения данных, приспособленный для обработки, указывающей адрес вывода данных. Операционный блок пятого типа содержит тракт прохождения данных, приспособленный для выполнения арифметических операций, например, сложения или вычитания целых чисел, и/или логических операций, например, операций сравнения и выбора. Операционный блок пятого типа может также содержать функции умножения, но если это приводит к тому, что операционный блок пятого типа становится слишком большим, то целесообразно создать отдельный операционный блок шестого типа, содержащий тракт прохождения данных, приспособленный для обработки путем умножения. Использование операционных блоков этих типов обеспечивает возможность выполнения команд, описывающих или определяющих поисковую обработку или вычислительную обработку, на выполнение которой затрачивается большое количество времени и которая является частью большого количества процессов. Операции обработки, выполняемые многократно с высокой частотой, например, обработка сигналов или обработка с обратной связью, могут быть выполнены с высокой скоростью с использованием большого количества аппаратных ресурсов или путем распределения по ним.
Другими словами, в настоящем изобретении те операции обработки, скорость выполнения которых не может быть увеличена обычным программным способом, в котором многократно используют небольшое количество аппаратных ресурсов, могут быть выполнены путем создания или распределения большого количества аппаратных ресурсов и реализации одновременного выполнения операций, за счет чего становится возможным повышение производительности.
-4005344
Для размещения операционных блоков таким образом, чтобы обеспечить получение гладкого потока данных в блоке обработки данных, операционные блоки с трактами прохождения данных, приспособленными для обработки по командам ввода данных и/или по командам вывода данных в предпочтительном варианте должны быть расположены на двух концах блока обработки данных. Для обеспечения выполнения конвейерной обработки необходимо установить количество тактовых импульсов, используемых каждым операционным блоком. Поэтому в предпочтительном варианте каждый операционный блок снабжен входным триггером, обеспечивающим фиксацию входных данных, и выходным триггером, обеспечивающим фиксацию выходных данных. Однако тракт прохождения данных, приспособленный для обработки по командам ввода или по командам вывода, может сам представлять собой триггер, осуществляющий побайтовую фиксацию данных или фиксацию слов, и в этом случае фиксацию входных данных и выходных данных осуществляют посредством единственного триггера.
В том случае, когда внутренние тракты прохождения данных являются различными, количество тактовых импульсов, используемых каждым операционным блоком, также является различным. Если тракты в блоках обработки данных являются различными, то данные достигают операционного блока также в различные моменты времени. Поэтому в предпочтительном варианте создают операционный блок седьмого типа, который содержит тракт прохождения данных, приспособленный для выполнения операции обработки, обеспечивающей задержку момента времени передачи данных. При генерации конфигурации операционных блоков осуществляют генерацию исполнительной конфигурации, содержащей операционный блок этого типа, обеспечивающий регулировку привязки по времени.
Для расширения диапазона операций обработки, которая может быть выполнена посредством операционных блоков, целесообразным является использование операционного блока восьмого типа, который содержит тракт прохождения данных, приспособленный для обработки, связанной с вычислительной схемой, расположенной снаружи блока обработки данных. Также целесообразным является использование операционного блока девятого типа, содержащего тракт прохождения данных, в котором может быть осуществлен выбор операции обработки согласно таблице преобразования. Кроме того, путем размещения операционных блоков одинакового типа в одном и том же направлении, может быть обеспечена связь множества операционных блоков одинакового типа между собой, что обеспечивает расширение вычислительных функций. Для этого в предпочтительном варианте операционные блоки одинакового типа, расположенные в одном и том же направлении, содержат тракт, обеспечивающий связь между множеством операционных блоков одинакового типа, расположенных в одном и том же направлении, и расширение вычислительных функций. В качестве одного из примеров приведен следующий: в том случае, когда операционные блоки, приспособленные для обработки посредством арифметических операций, вычислительная обработка может быть выполнена с более высокой точностью путем размещения операционных блоков, имеющих более низкую точность, в одном и том же направлении.
За счет создания множества блоков обработки данных и третьего набора проводников для соединения этих блоков обработки данных, диапазон операций обработки, управление которым может быть осуществлено путем изменения конфигурации операционных блоков, может быть значительно расширен.
В предложенном в настоящем изобретении устройстве, представляющем собой интегральную схему, маршрут прохождения данных, подаваемых в операционные блоки, может быть изменен путем управления коммутационными устройствами, которые могут осуществлять выбор и соединение любого проводника из первых наборов проводников с любым проводником из вторых наборов проводников, что дает возможность изменять конфигурацию операционных блоков для обработки данных. Соответственно, в настоящем изобретении предложено устройство, представляющее собой интегральную схему, которое содержит блок обработки данных, в котором размещено множество типов операционных блоков, а конфигурацию множества типов операционных блоков для обработки данных изменяют путем изменения маршрута прохождения данных, подаваемых во множество типов операционных блоков посредством группы проводников, при этом в состав множества типов операционных блоков входят операционные блоки различных типов, которые содержат тракты прохождения данных, приспособленные, по меньшей мере, для выполнения одной иной операции обработки на уровне команд. В этом устройстве, представляющем собой интегральную схему, функционирование блока обработки данных и содержимого выполняемой операции обработки может быть изменено уже после изготовления устройства, представляющего собой интегральную схему. В отличие от ППВМ, которая, как подразумевают, соответствует схеме на уровне транзисторов, конфигурация операционных блоков с трактами прохождения данных, заранее приспособленными для специализированной обработки, может быть изменена, поэтому содержимое операции обработки может быть изменено за короткое время. Следовательно, существует возможность создания устройства, представляющего собой интегральную схему, в котором может быть реализовано динамическое изменение содержимого операции обработки, выполняемой аппаратными средствами.
Несмотря на то, что блок обработки данных этого устройства, представляющего собой интегральную схему, имеет универсальную общую применимость, обеспечивая возможность выполнения различных операций обработки, каждый из операционных блоков представляет собой специализированный элемент схемы с трактом прохождения данных, заранее приспособленным для специализированной об
-5005344 работки или для выполнения конкретных операций обработки, что снижает область применимости каждого операционного блока. Это уменьшает степень избыточности схемы, поэтому ненужная схема вряд ли будет оставлена для выполнения обработки, что обеспечивает создание компактной и экономичной интегральной схемы, обладающей высокой скоростью обработки.
Для улучшения трансформируемости (гибкости) конфигурации операционных блоков в предпочтительном варианте операционные блоки содержат средство, осуществляющее операцию выбора любого проводника из первых наборов проводников и из вторых наборов проводников и операцию ввода или вывода сигнала. К тому же, в предпочтительном варианте операционные блоки содержат перезаписываемое запоминающее устройство для хранения данных о конфигурации, в котором запоминают данные о выбираемых проводниках, а коммутационные устройства также содержат перезаписываемое запоминающее устройство для хранения данных о конфигурации, в котором запоминают данные о выбираемых проводниках. Путем перезаписи содержимого запоминающих устройств для хранения данных о конфигурации, которыми являются, например регистры, может быть осуществлено динамическое изменение функционирования блока обработки данных. Путем предварительного запоминания подлежащего изменению содержимого в запоминающем устройстве может быть легко произведено изменение функционирования, осуществляемого посредством широкого разнообразия операционных блоков, за один тактовый импульс.
Путем установки в устройство, представляющее собой интегральную схему, блока управления, служащего для перезаписи содержимого запоминающих устройств для хранения данных о конфигурации, можно создать такую интегральную схему, в которой содержимое обработки, выполняемой аппаратными средствами, может быть изменено посредством программы. Блок управления может представлять собой компонент малой степени интеграции, например, контроллер последовательности или запоминающее устройство для микропрограмм. Однако в предпочтительном варианте блок управления представляет собой процессор, имеющий достаточное количество функций для изменения конфигурации операционных блоков согласно программе. Путем объединения блока обработки данных, в котором операционные блоки (логические элементы или логические блоки) расположены в виде матрицы, и универсального процессора, например, процессора с сокращенным набором команд (К!8С-процессора) создают устройство, в котором операции обработки, приспособленные для выполнения обычным программным способом с многократным использованием ограниченных аппаратных ресурсов, могут быть выполнены универсальным процессором, а операции обработки, скорость выполнения которых не может быть увеличена, могут быть выполнены блоком обработки данных. Также возможно параллельное выполнение операций обработки универсальным процессором и блоком обработки данных. Кроме того, операционный блок, входящий в состав блока обработки данных, может устанавливать конфигурацию запоминающего устройства другого операционного блока.
В устройстве, представляющем собой интегральную схему, управление которым может быть осуществлено посредством программы, программа, которую должно выполнять устройство, представляющее собой интегральную схему, может быть получена путем (1) создания промежуточного описания выполняемого процесса на языке программирования, содержащем команды, поддерживаемые операционными блоками, и (2) включения команд, указывающих исполнительную конфигурацию множества типов операционных блоков, способных выполнить это промежуточное описание. В предпочтительном варианте промежуточный язык представляет собой язык, подобный языку ассемблера, с высокой линейностью, что обеспечивает простоту создания блок-схем обработки данных.
Диапазон функций и операций обработки, которые могут быть выполнены аппаратными средствами в блоке обработки данных, может быть расширен путем создания операционных блоков, содержащих средство изменения и/или выбора части внутренних трактов прохождения данных в операционных блоках. Данные об изменениях и/или о выборе внутреннего тракта прохождения данных могут быть запомнены в запоминающих устройствах для хранения данных о конфигурации, имеющихся в операционных блоках. Внутренние тракты прохождения данных операционных блоков, приспособленные для обработки на уровне команд, представляют собой тракты прохождения данных, приспособленные для выполнения по меньшей мере одной команды. В процессе проектирования интегральной схемы и создания исполняемой программы осуществляют генерацию исполнительной конфигурации, содержащей результаты выбора и/или изменений внутренних трактов прохождения данных, и исполняемой программы, содержащей команду, указывающую результаты выбора и/или изменения внутренних трактов прохождения данных.
Краткое описание чережей
На фиг. 1 изображена блок-схема, на которой показана конструкция устройства, представляющего собой интегральную схему, согласно одному из вариантов осуществления настоящего изобретения;
на фиг. 2 показана конструкция матрицы;
на фиг. 3 - часть матрицы из фиг. 2 в увеличенном масштабе;
на фиг. 4 - схема расположения проводников, по которым осуществляют передачу сигналов переноса и которые входят в состав наборов проводников матрицы, изображенной на фиг. 2;
на фиг. 5 - пример коммутационного устройства;
-6005344 на фиг. 6 - пример элемента тракта прохождения данных, приспособленного для обработки по команде ввода данных;
на фиг. 7 - пример элемента тракта прохождения данных, приспособленного для обработки по команде вывода адреса;
на фиг. 8 - пример элемента тракта прохождения данных, приспособленного для обработки по команде выполнения арифметической операции и/или логической операции;
на фиг. 9 - пример элемента тракта прохождения данных, приспособленного для выполнения операции обработки, обеспечивающей задержку момента времени передачи данных;
на фиг. 10 - пример элемента тракта прохождения данных, приспособленного для обработки по команде умножения;
на фиг. 11А - пример элемента тракта прохождения данных, приспособленного для обработки, обеспечивающей соединение вычислительной схемы, расположенной снаружи;
на фиг. 11Б - пример элемента тракта прохождения данных, обеспечивающего выбор выполняемой им операции обработки согласно таблице преобразования;
на фиг. 12 - блок-схема, на которой показана конструкция иного варианта осуществления устройства, представляющего собой интегральную схему, согласно настоящему изобретению;
на фиг. 13 - несколько примеров соединения множества больших интегральных схем (БИС) между собой;
на фиг. 14 - способ проектирования и изготовления устройства, представляющего собой интегральную схему, согласно настоящему изобретению;
на фиг. 15 - схема последовательности операций, на которой показан процесс размещения элементов и трассировки соединений;
на фиг. 16 - схема последовательности операций, на которой показаны операции обработки по определению конфигурации для одной блок-схемы обработки данных;
на фиг. 17 - пример описания на промежуточном языке;
на фиг. 18 - пример блок-схемы обработки данных, реализованной в матрице;
на фиг. 19 - пример, в котором блок-схема обработки данных определяется конфигурацией операционных блоков;
на фиг. 20 - пример, в котором блок-схема обработки данных отображается в матрицу;
на фиг. 21 - пример компоновки, обеспечивающий реализацию блок-схемы обработки данных в матрице.
Наилучший вариант осуществления настоящего изобретения
Ниже приведено описание настоящего изобретения со ссылкой на приложенные чертежи. На фиг. 1 показан пример, в котором системная большая интегральная схема (БИС) 10 выполнена в виде устройства, представляющего собой интегральную схему, согласно настоящему изобретению. Эта системная БИС 10 содержит универсальный процессор 11, например процессор с сокращенным набором команд (К18Спроцессор), обеспечивающий выполнение универсальных операций обработки, в том числе, обработки ошибок на основе команд, содержащихся в исполняемой программе 3, и блок обработки данных (именуемый ниже матричной схемой или матрицей) 20, в котором формируют поток данных или псевдопоток данных, приспособленный для специализированной обработки данных посредством множества операционных блоков, расположенных в виде матрицы. Универсальный процессор 11 (именуемый ниже так же как К18С-процессор) также осуществляет управление конфигурацией матрицы 20 на основе исполняемой программы 3, обеспечивая возможность динамического изменения конфигурации матрицы
20. Системная БИС 10 также содержит блок 12 управления прерываниями, обеспечивающий управление обработкой прерываний, поступающих из матрицы 20, тактовый генератор 13, обеспечивающий подачу рабочего тактового сигнала в матрицу 20, устройство 14, представляющее собой ППВМ, которое позволяет улучшить трансформируемость конструкции вычислительной схемы, и блок 15 управления шиной, обеспечивающий управление вводом данных извне и выводом данных наружу. Процессор 11 и матрица 20 соединены между собой шиной 17 данных, по которой может быть осуществлен обмен данными между процессором 11 и матрицей 20, и шиной 18 команд, обеспечивающей процессору 11 возможность управления конфигурацией и функционированием матрицы 20. В блок 12 управления прерываниями также подают сигналы прерываний из матрицы 20 через сигнальную шину 19 таким образом, чтобы в случае возникновения ошибки во время обработки и т. д. данные о состоянии матрицы 20 могли быть возвращены обратно в процессор 11 по окончании обработки посредством матрицы 20.
Матрица 20 и ННВМ 14 соединены между собой шиной 21 данных. Данные подают из матрицы 20 в ППВМ 14, выполняют обработку, а результат возвращают в матрицу 20. Матрица 20 соединена с блоком 15 управления шиной через шину 22 загрузки и шину 23 памяти, и осуществляет обмен данными с внешней шиной данных системной БИС 10. Следовательно, данные могут быть введены в матрицу 20 из внешнего динамического ОЗУ (оперативного запоминающего устройства) 2 или из другого внешнего устройства, а результат обработки этих данных посредством матрицы 20 может быть выведен обратно во внешнее устройство. Процессор 11 также способен осуществлять ввод данных из внешнего устройства и вывод данных во внешнее устройство через совокупность, состоящую из шины 11а данных и блока 15
-7005344 управления шиной. Если процессор 11 выполнен таким образом, что содержит ОЗУ или ПЗУ (постоянное запоминающее устройство) с внутренним кодом, то исполняемая программа (объектная программа) 3 процессора 11 может быть запомнена заранее в процессоре 11. Исполняемая программа 3 может быть также подана в БИС 10 извне через шину 11а.
На фиг. 2 показана конструкция матрицы 20. Матрица 20 состоит из шестидесяти восьми операционных блоков (операционных элементов) 30, которые расположены вдоль семнадцати линий, проходящих в горизонтальном или в поперечном направлении (в направлении вдоль строки), и вдоль четырех линий, проходящих в вертикальном или в продольном направлении (в направлении вдоль столбца), таким образом, что множество операционных блоков 30 расположено в виде массива или матрицы. Между этими операционными блоками 30 расположены наборы 51 проводников для строк, проходящих в горизонтальном направлении и наборы 52 проводников для столбцов, проходящих в вертикальном направлении. Наборы 52 проводников для столбцов содержат два набора 52х и 52у проводников, состоящие из проводников, проходящих в направлении вдоль столбца, соответственно, с левой и с правой сторон операционных блоков 30. Подачу данных в каждый из операционных блоков 30 осуществляют через эти наборы 52х и 52у проводников. Наборы 52 проводников для столбцов разделены в операционных блоках (блоки ИЕЬ), расположенных в девятой строке сверху, а матрица 20 разделена на два сегмента, состоящие из первой матрицы 28, содержащей восемь строк и четыре столбца операционных блоков 30, расположенных сверху, и второй матрицы 29, содержащей девять строк и четыре столбца операционных блоков 30, расположенных снизу.
На фиг. 3 в увеличенном масштабе показаны операционный блок 30 и коммутационное устройство 55, расположенное в точке пересечения набора 51 проводников для строк с набором 52 проводников для столбцов. Набор 51 проводников для строк содержит достаточное количество проводников для передачи байта (8 бит) данных или слова (16-битового или 32-битового) данных, т.е. от 8 до 32 бит данных, из каждого операционного блока 30, расположенного в направлении вдоль строки (которыми в этом варианте являются четыре операционных блока 30). В матрице 20 из данного варианта осуществления изобретения набор 51 проводников для строк представляет собой шину с достаточным количеством проводников, обеспечивающим наличие по меньшей мере четырех каналов. Также предусмотрено наличие проводников для передачи достаточного количества сигналов переноса, соответствующего объему данных.
Наборы 52 проводников для столбцов также содержат достаточное количество проводников для подачи в каждый операционный блок 30 данных пословно или побайтно. В одном из сегментов матрицы 20 восемь операционных блоков 30 расположены вдоль линии столбца таким образом, что в данном варианте осуществления наборы 52 проводников для столбцов представляют собой шины с достаточным количеством проводников, обеспечивающим наличие восьми каналов. Также предусмотрено наличие проводников для передачи достаточного количества сигналов переноса, соответствующего объему данных.
На фиг. 4 показаны проводники 51с, 52сх, и 52су, служащие для передачи сигналов переноса и входящие в состав наборов 51 проводников для строк и наборов 52 проводников для столбцов матрицы 20 из данного варианта осуществления изобретения. Сигналы переноса могут быть использованы в качестве сигналов, указывающих перенос, или в качестве сигналов, указывающих значение истинный или ложный, а из всех операционных блоков 30, содержащихся в матрице 20, сигнал С1 переноса используют те элементы 32Ь (типа 8МЛ) тракта прохождения данных, которые приспособлены для выполнения арифметических операций и логических операций, те элементы 32с (типа ИЕЬ) тракта прохождения данных, которые обеспечивают задержку, и те элементы (типа БРО) тракта прохождения данных, которые служат в качестве интерфейсов с ППВМ. Соответственно, проводники 51с, 52сх и 52у для сигналов переноса расположены таким образом, что соединяют те операционные блоки 30, которые содержат эти элементы тракта прохождения данных.
Коммутационные устройства 55, расположенные в каждой точке пересечения наборов 51 проводников для строк с наборами 52 проводников для столбцов, выполнены из реконфигурируемого тракта передачи данных побайтовым способом или пословно и обеспечивают коммутацию и соединение любого из каналов набора 51 проводников для строк с любым из каналов набора 52 проводников для столбцов. Коммутационное устройство 55, показанное на фиг. 3, содержит множество селекторов 58, посредством которых осуществляют выбор одного канала из набора 51 проводников для строк и соединения этого канала с набором 52 проводников для столбцов, и конфигурационное ОЗУ 59, обеспечивающее сохранение установок (параметров) этих селекторов 58. Данные, содержащиеся в конфигурационном ОЗУ 59, перезаписывают в соответствии с данными, поступившими из процессора 11, поэтому может быть осуществлено требуемое динамическое управление соединением между набором 51 проводников для строк и набором 52 проводников для столбцов под управлением процессора 11.
На фиг. 5 показано коммутационное устройство 56 иного типа, содержащее координатные коммутаторы 57, при этом каждый из координатных коммутаторов 57 соединяет проводники, образующие канал в наборе 51 проводников для строк, и проводники, образующие канал в наборе 52 проводников для столбцов, что обеспечивает возможность изменения соединений между каналами. Коммутационное устройство 56 этого типа также содержит конфигурационное ОЗУ или регистр 59, в котором данные могут
-8005344 быть заданы посредством процессора 11, и может легко изменять соединение между наборами 51 проводников для строк и наборами 52 проводников для столбцов.
Как показано на фиг. 2, каждый из операционных блоков 30, расположенных в виде матрицы 20, содержит два селектора 31х и 31у, посредством которых осуществляют выбор входных данных из соответствующих наборов 52х и 52у проводников для столбцов, и элемент 32 тракта прохождения данных, выполняющий специализированную обработку входных данных 6К и 6, выбранных посредством селекторов 31х и 31у, и вывод выходных данных 6О в набор 51 проводников для строк. В состав множества операционных блоков 30, расположенных в виде матрицы 20, входят операционные блоки множества видов или типов, снабженные трактами прохождения данных, приспособленными для специализированной обработки или для выполнения конкретных операций обработки различного вида. Каждый из операционных блоков 30, из которых состоит каждая строка, снабжен одинаковым трактом 32 прохождения данных, обеспечивающим однотипную обработку. То есть операционные блоки 30, снабженные трактами 32 прохождения данных для выполнения различных операций обработки, расположены в различных строках.
Элементы или операционные блоки 30, расположенные в первой строке, соединены с шиной 22 загрузки и содержат элементы 32£ тракта прохождения данных, приспособленные для обработки, обеспечивающей загрузку данных. На фиг. 6 показан один из примеров конструкции элемента 32£ (типа КО, загрузка) тракта прохождения данных, обеспечивающего загрузку. Элемент 32£ типа ЬЭ содержит триггер 41, осуществляющий фиксацию как входных данных, так и выходных данных, и конфигурационное ОЗУ 39, в котором запоминают информацию для выбора канала при необходимости переключения канала для выходных данных. Элемент 32£ типа ЬЭ представляет собой устройство, выполняющее команду ввода, именуемую ввод или загрузка. Элемент 32£ типа ЬЭ осуществляет прием данных с шины 22 загрузки и вывод данных в набор 51 проводников для строк. Следует отметить, то, что аббревиатура БО, указанная на фиг. 2, и иные аббревиатуры, например ВЛЬ, ЬОЛ, 8МА и ОБЬ, объяснение которых приведено ниже, использованы в данном описании для обозначения типа элемента 32 тракта прохождения данных и операционного блока 30, содержащего элемент 32 тракта прохождения данных этого типа.
Каждый из описанных ниже различных операционных блоков 30 содержит конфигурационное ОЗУ 39, и может быть осуществлена динамическая коммутация соединения операционных блоков 30 с набором 51 проводников для строк и с набором 52 проводников для столбцов путем установки содержимого этих конфигурационных ОЗУ 39 с использованием К18С-процессора 11. В том случае, когда операционный блок 30 снабжен коммутируемым, изменяемым и/или выбираемым посредством селектора трактом прохождения данных и/или функцией с возможностью задания ее режимов и параметров, в том числе начальных значений, управление трактом прохождения данных и/или функцией может быть осуществлено путем задания данных в конфигурационном ОЗУ 39.
Каждый из операционных блоков 30, расположенных во второй и в третьей строках, содержит элемент 32а тракта прохождения данных, приспособленный для обработки, обеспечивающей вывод адреса загрузки данных. На фиг. 7 показан один из примеров конструкции этих элементов 32а тракта прохождения данных (типов ВЬА и БОА) . Элементы 32а типов ВБА и БОА представляют собой устройства, выполняющие команды (функции), указывающие адрес ввода данных в соответствии с командой типа ίηри!.а66ге88_ех!егиа1 (ввод.внешний_адрес) и шри1.а66ге88_т1ета1 (ввод.внутренний_адрес). Элементы 32а типов ВБА и БОА содержат генератор адресов 38, состоящий из счетчика и прочих устройств. Вывод адреса осуществляют посредством схемы 38 выдачи адреса в виде выходных данных 6О и подают через набор 51 проводников для строк и набор 52 проводников для столбцов в виде входных данных 6 или 6. Каждый элемент 32а тракта прохождения данных также содержит селектор 42 для выбора любого из адресов, подаваемых в виде входных данных, и триггер 41, фиксирующий как входные данные, так и выходные данные. Соответственно, загруженные данные 6а об адресе выводят из матрицы 20 и подают в блок 15 управления шиной. Каждый из этих операционных блоков 30 также содержит конфигурационное ОЗУ 39, посредством которого задают состояние генератора 38 адресов и селектора 42. Содержимое (данные) конфигурационного ОЗУ 39 задает процессор 11, поэтому может быть осуществлено динамическое изменение соединения набора 51 проводников для строк с набором 52 проводников для столбцов, и могут быть легко изменены установочные параметры схемы 38 выдачи адреса.
Элементы 32а типа ВБА операционных блоков 30, образующие вторую строку матрицы 20, выдают адрес для загрузки блока. С другой стороны, элементы 32а типа БОА операционных блоков 30, образующие третью строку, выдают адрес для загрузки требуемых данных из поблочно загруженных данных. Несмотря на то, что элементы типов ВБА и БОА тракта прохождения могут иметь некоторые различия в деталях их конструкции, в обоих этих устройствах использована одинаковая общая конструкция, показанная на фиг. 7.
Каждый из операционных блоков 30, расположенных в четвертой и в пятой строках, содержит элемент 32Ь тракта прохождения данных, приспособленный для выполнения арифметических операций и логических операций. На фиг. 8 показан один из примеров конструкции этих элементов 32Ь (типа 8МА) тракта прохождения данных. Элемент 32Ь типа 8МА представляет собой основной элемент для выпол
-9005344 нения вычислений и содержит схемы 43 сдвига разряда и схемы 44 маскирования, служащие для извлечения входных данных б и б, подаваемых либо побайтно или пословно, либо побитно. Каждый элемент 32Ь типа 8МА также содержит АЛУ (арифметико-логическое устройство) 45, которое может выполнять операции сложения, вычитания, сравнения, операции логическое И или логическое ИЛИ над входными данными б и б. Некоторые элементы 32Ь типа 8МА дополнительно содержат логическое устройство (ЛУ) 46, осуществляющее объединение и/или выбор результата вычисления, полученного в соседнем элементе 32Ь типа 8МА.
Элемент 32Ь типа 8МА также содержит конфигурационное ОЗУ 39, служащее для запоминания данных, посредством которого осуществляют выбор и/или изменение операций обработки, выполняемых схемой 43 сдвига разряда, схемой 44 маскирования, АЛУ 45 и ЛУ 46. Элемент 32Ь типа 8МА также содержит триггер 48, служащий для фиксации входных данных, триггер 49, служащий для фиксации выходных данных, и другой триггер ЕЕ или аналогичный ему, служащий для регулировки синхронизации.
Этот элемент 32Ь типа 8МА обеспечивает поддержку команд выполнения арифметических операций и команд выполнения логических операций, таких как сложение, вычитание, сравнение, сдвиг, и и выбор, которые широко используются при составлении программы, имеющей функции сложения, вычитания, сравнения, выбора и иных логических операций. Управление установочными параметрами, определяющими то, какой именно из этих вычислительных процессов или какую именно их комбинацию следует выполнять, может быть легко осуществлено в соответствии с содержимым конфигурационного ОЗУ 39, заданного К18С-процессором 11, и они могут быть изменены в любой момент времени. К тому же, в качестве входных данных б и/или б может быть задано постоянное или непосредственное значение с использованием конфигурационного ОЗУ 39. Условия задания установочных параметров для сигналов С и С переноса являются такими же. К тому же, можно создать конечный автомат или счетчик путем создания тракта, обеспечивающего подачу выходных данных бо обратно в АЛУ 45. Также обеспечена поддержка функции обмена входными данными б и б, и эта функция также может быть использована для расширения свободы выбора и эффективности использования набора 52 проводников для столбцов.
Элемент 32Ь тракта прохождения данных снабжен трактом, по которому может быть осуществлен ввод и выбор сигналов С и С переноса, причем его наличие обеспечивает возможность управления АЛУ 45 и ЛУ 46 в соответствии с этими сигналами переноса. Также предусмотрено наличие тракта вывода сигнала Со переноса, относящегося к результату операции, выполненной АЛУ 45. Результат операции, выполненной над сигналом переноса соседнего элемента 32Ь типа 8МА, может быть введен в АЛУ 45 и в ЛУ 46, и вместо операции, заключающейся просто в выборе сигнала переноса, операции могут быть выполнены над парами сигналов переноса, что обеспечивает возможность более свободного использования сигналов переноса.
ЛУ 46, которым снабжен один из элементов 32Ь типа 8МА, расположенных в левой и в правой парах элементов 32Ь типа 8МА, может выполнять логическую операцию с выходным сигналом АЛУ элемента 32Ь типа 8МА, расположенного слева, и с выходным сигналом АЛУ элемента 32Ь типа 8МА, расположенного справа. Для этого обеспечивают управление ЛУ 46 посредством конфигурационного ОЗУ 39, а расширенная функция может быть выполнена посредством двух элементов 32Ь типа 8МА, расположенных в соседних позициях слева и справа в направлении вдоль строки. В качестве одного из примеров приведен следующий: в том случае, когда входные данные б имеют дину 32 бита, два фрагмента входных данных б и б могут быть представлены в виде одного фрагмента входных данных, что обеспечивает выполнение обработки с удвоенной точностью (64 бита).
В матрице 20 из данного варианта осуществления изобретения седьмая, восьмая, одиннадцатая и тринадцатая строки образованы исполнительными устройствами 30, содержащими элемент 32Ь типа 8МА.
Каждый из операционных блоков 30, расположенных в шестой строке, содержит элемент 32с тракта прохождения данных, приспособленный для выполнения операции обработки, обеспечивающей задержку момента времени передачи данных. На фиг. 9 показан один из примеров конструкции этого элемента 32с (типа ИЕЬ) тракта прохождения данных. Элемент 32с типа ИЕЬ состоит из схем 47 задержки, каждая из которых состоит из комбинации, состоящей из множества селекторов и триггера, входных триггеров 48, выходных триггеров 49 и селекторов 42, служащих для выбора схем. Время задержки каждой схемы 47 задержки может быть установлено посредством данных, содержащихся в конфигурационном ОЗУ 39, равным от 0 до 5 тактов, и, соответственно, может быть осуществлено управление временем задержки в системе Х и Υ в интервале от 1 до 7 тактов. Согласно параметрам, установленным в конфигурационном ОЗУ 39, система Х и система Υ могут быть соединены последовательно, может быть использовано удвоенное время задержки. Также может быть осуществлена задержка сигналов С и С переноса, передаваемых вместе с данными посредством набора 51 проводников для строк и набора 52 проводников для столбцов, и их вывод посредством аналогичных трактов прохождения данных.
Путем создания операционных блоков 30, снабженных элементами 32с типа ИЕЬ тракта прохождения данных для введения задержки, может быть осуществлена требуемая регулировка задержки сигналов в элементах 32 тракта прохождения данных различных типов. Соответственно, можно обеспечить регу
-10005344 лировку разности времени задержки, возникающей при формировании потока данных, путем объединения элементов 32Ь типа 8МА, служащих для выполнения арифметических операций и логических операций, и элементов 326 типа МИЬ (описание которых приведено ниже), служащих для выполнения операций умножения, без необходимости снабжения каждого элемента 32 тракта прохождения данных триггерами и селекторами для регулировки времени задержки. Это упрощает конструкцию каждого элемента 32 тракта прохождения данных, расширяет область применимости элементов 32 тракта прохождения данных и позволяет свести к минимуму площадь, занимаемую каждым элементом 32 тракта прохождения данных. Каждый элемент 32 тракта прохождения данных может быть снабжен входным триггером 48, служащим для фиксации входных данных, и выходным триггером 49, служащим для фиксации выходных данных, или триггером 41, служащим для фиксации как входных данных, так и выходных данных, что обеспечивает возможность управления временем ожидания (временем задержки), необходимым для осуществления вывода входных данных без изменений или после их обработки, в единицах тактов. Следовательно, различия во времени ожидания могут быть легко скомпенсированы функциями элемента 32с типа ΌΕΕ, а посредством совокупности операционных блоков 30 может быть обеспечено сохранение синхронизации вычислительных конвейеров.
К тому же, элементы 32с типа ΌΕΕ тракта прохождения данных функционируют таким образом, что обеспечивают передачу данных, поданных из набора 52 проводников для столбцов в набор 51 проводников для строк. Операционные блоки 30, расположенные в девятой строке, осуществляют выбор данных, подаваемых из набора 52 проводников для столбцов первой матрицы 28, и вывод данных в набор 51 проводников для строк второй матрицы 29. Таким способом обеспечивают возможность выбора данных из первой матрицы 28 с использованием функций элементов 32с типа ΌΕΕ тракта прохождения данных для введения задержки, и их подачи во вторую матрицу 29 таким образом, чтобы набор 52 проводников для столбцов первой матрицы 28 мог быть отделен от набора 52 проводников для столбцов второй матрицы 29. Поэтому количество проводников, входящих в состав набора 52 проводников для столбцов, может оставаться равным их количеству, необходимому для охвата такого количества операционных блоков, из которых состоит либо первая матрица 28, либо вторая матрица 29, что позволяет уменьшить площадь, занятую межсоединениями, и упростить конструкцию коммутационных устройств 55 или 56, осуществляющих выбор данных из группы межсоединений, состоящей из наборов проводников.
Элемент 32с типа ΌΕΕ автоматически вводят в состав цепи для регулировки синхронизации и т.п. при создании потока данных в матрице 20. К тому же, для регулировки синхронизации между потоками данных или между потоком данных и К18С-процессором в программу можно ввести команду задержка, и в этом случае элемент 32с типа ΌΕΕ используют в качестве операционного блока, выполняющего команду задержки.
Каждый из операционных блоков 30, расположенных в десятой строке, содержит элемент 326 тракта прохождения данных, приспособленный для выполнения операций умножения, указанных командой умножение. На фиг. 10 показан один из примеров конструкции элемента 326 тракта прохождения данных (элемента типа МиЬ). Каждый из четырех элементов 326 типа МиЬ содержит устройство 61 умножения типа 16 бит * 16 бит (32-битовый результат), обозначенное как МиЬ, которые расположены в направлении вдоль строки. Также предусмотрено наличие трактов 62 и 63 прохождения данных, обеспечивающих выполнение вычислительной обработки выходных сигналов, поступающих из каждого из четырех устройств 61 умножения МиЬ. В данном варианте осуществления изобретения функции элементов 326 типа МНЕ тракта прохождения данных, служащих для обработки путем умножения, могут быть расширены за счет объединения этих четырех элементов 326 типа МиЬ, расположенных в направлении вдоль строки. В качестве одного из примеров, операции умножения могут быть выполнены с удвоенной точностью. Следовательно, управление функциями элемента 61 типа МиЬ, элемента 62 типа С8А, элемента 63 типа СРА и селектора 64 данных осуществляют посредством данных, заранее введенных в конфигурационные ОЗУ 39 элементов 326 тракта прохождения данных.
В более подробном изложении, крайний левый элемент 61 типа МиЬ (АН*ВН) умножает 16 старших битов входных данных 6 на 16 старших битов входных данных 6, следующий элемент 61 типа МиЬ (АН*ВЬ) умножает 16 старших битов входных данных 6 на 16 младших битов входных данных 6, элемент 61 типа МиЬ (АЬ*ВН) умножает 16 младших битов входных данных 6 на 16 старших битов входных данных 6, а элемент 61 типа МиЬ (АЕ*ВЬ) умножает 16 младших битов входных данных 6 на 16 младших битов входных данных 6. После этого результаты, полученные посредством устройств умножения, суммируют друг с другом посредством элемента 62 типа С8А и элемента 63 типа СРА таким образом, что четыре элемента 326 типа МНЕ, расположенные в направлении вдоль строки, функционируют в качестве устройства умножения типа 32 бита * 32 бита (64-битовый результат). Несмотря на то, что тот же самый результат можно получить путем суммирования результатов операций умножения, полученных посредством каждого элемента 326 типа МиЬ, с использованием элементов 32Ь типа 8МА путем упорядоченного расположения элементов 326 типа МиЬ вдоль линии в направлении вдоль строки и добавления небольшого количества специализированных межсоединений для вычислительного уст
-11005344 ройства, выполняющего операцию сложения, тот же самый результат может быть получен с короткой задержкой и при малом количестве логических элементов.
Вместо элементов 326 типа МиЬ может быть размещен элемент типа 8МАМ тракта прохождения данных, созданный путем добавления к элементу 32Ь типа 8МА функции умножения и заменяющий собой элемент 32Ь типа 8МА или используемый вместе с элементом 32Ь типа 8МА. Количество вычислительных функций, содержащихся в одном операционном блоке 30, а также способ выбора и использования функций в операционном блоке путем задания параметров в конфигурационном ОЗУ 39 зависят от принципа проектирования матрицы 20 и могут отличаться от данного варианта осуществления. В настоящем изобретении в состав матрицы 20 входят операционные блоки 30 множества типов, содержащие различные тракты прохождения данных, даже в случае существования различий в сфере или в области применимости содержимого процесса, который может быть выполнен в каждом одном операционном блоке 30. Следовательно, по сравнению с матрицей, в которой расположены обрабатывающие блоки, имеющие одинаковую конструкцию и поддерживающие все виды операций обработки, обеспечено явное сокращение количества избыточного и бесполезного пространства, сокращение времени, затрачиваемого на избыточную и бесполезную обработку, и улучшение характеристик по переменному току.
Каждый из операционных блоков 30, расположенных в четырнадцатой строке, содержит элемент 32 тракта прохождения данных, служащих в качестве интерфейса с ППВМ 14, находящейся вне матрицы
20. На фиг. 11А показана конструкция элемента 32е (типа РРС) тракта прохождения данных, функционирующего в качестве интерфейса. Элемент 32е типа РРС содержит селектор 42, служащий для выбора входных данных, триггер 48, служащий для фиксации входных данных и подачи входных данных в ППВМ 14, находящуюся вне кристалла, и триггер 49, служащий для фиксации выходного сигнал, поступающего из ППВМ 14, находящейся вне кристалла, и установки этого выходного сигнала в качестве выходных данных. За счет использования этого элемента 32е типа РРС может быть обеспечено непрерывное выполнение операций обработки в матрице 20 путем передачи входных данных в ППВМ 14, находящуюся вне кристалла, и возвращения данных в матрицу 20 после их обработки в ППВМ 14. В качестве операционных блоков 30, входящих в состав матрицы 20, осуществляют выбор, проектирование и размещение таких операционных блоков, которые обеспечивают поддержку команд, очень часто возникающих в прикладной программе, выполняемой БИС 10. Наличие операционных блоков 30, содержащих функции с ограниченной применимостью, привело бы к снижению эффективности использования площади, поэтому в матрице 20 такие операционные блоки 30 отсутствуют. За счет создания элементов 32е типа РРС тракта прохождения данных обработка подобных процедур и функций с ограниченной применимостью может быть выполнена аппаратными средствами с высокой скоростью.
Каждый элемент 32е типа РРС представляет собой элемент тракта прохождения данных, вводящий внешний интерфейс в состав матрицы, и имеет подходящую универсальную применимость, при этом внешними устройствами обработки данных, которые могут быть подключены, являются не только ННВМ. Посредством элементов 32е типа РРС могут быть подключены специализированные интегральные схемы (А81С) или иные БИС, которые могут содержать матрицу 20 из данного варианта осуществления изобретения.
Операционные блоки 30, расположенные в пятнадцатой и в шестнадцатой строках, содержат элементы типа 8ТА и типа В8А тракта прохождения данных, приспособленные для выдачи адресов для операций запоминания. Элементы типа 8ТА и типа В8А тракта прохождения данных выполняют команды, указывающие адрес вывода, при этом формат команд является тем же самым, что и формат вышеописанной команды, указывающей адрес ввода. В качестве устройства, выполняющего функцию выдачи адреса может быть использована схема, аналогичная элементу 32а тракта прохождения данных, показанному на фиг. 7. Для запоминания выдают два типа адреса, причем элемент типа В8А тракта прохождения данных выдает адрес для запоминания данных, уже преобразованных в блоки, а элемент типа 8ТА тракта прохождения данных выдает адрес для предварительных блоков.
Операционные блоки 30, содержащие элементы типа 8Т тракта прохождения данных, приспособленные для вывода данных в соответствии с такими командами, как, например, вывод и запоминание, расположены в нижней семнадцатой строке. Несмотря на то, что эти элементы тракта прохождения данных именуют элементами типа 8Т тракта прохождения данных, могут быть использованы элементы тракта прохождения данных, имеющие почти такую же конструкцию, как и элементы 32Ь тракта прохождения данных для выполнения арифметических операций. Вывод данных через операционный блок типа 8Т осуществляют в том случае, когда в качестве результата арифметических операций, выполненных в матрице 20, указан адрес внешнего запоминающего устройства.
Типы операционных блоков 30 в настоящем изобретении не ограничены приведенными выше примерами. На фиг. 11Б показана конструкция элемента 32д (ОЗУ) тракта прохождения данных, содержащего статическое ОЗУ (8КАМ) 65 для таблицы преобразования. Входные данные 6 могут быть использованы в качестве адреса, а входные данные 6 могут быть использованы в качестве данных, поэтому операцию записи выполняют при одновременной подаче данных и адреса, а операцию считывания выполняют в том случае, когда подан только адрес. Статическое ОЗУ 65 снабжено множеством банков данных, использование которых может быть осуществлено путем коммутации в соответствии с установочными
-12005344 параметрами конфигурационного ОЗУ 39. В том случае, когда четыре ОЗУ 32д расположены на одной линии в направлении вдоль строки, ОЗУ 32д могут быть использованы в качестве четырех 8-разрядных ОЗУ, двух 16-разрядных ОЗУ или одного 32-разрядного ОЗУ. Элемент 32д тракта прохождения данных может быть использован в качестве таблицы преобразования для получения выходных данных согласно требуемой функции, выполняемой с входными данными побайтно или пословно. Целесообразным вариантом является реализация в матрице 20 операции косинусного преобразования или вычисления циклического избыточного кода (ЦИК).
Системная БИС 10 из данного варианта осуществления изобретения является одним из примеров устройства, представляющего собой интегральную схему, и содержит множество операционных блоков 30, расположенных в виде матрицы в первом направлении (в данном варианте осуществления изобретения в направлении вдоль строки или в горизонтальном направлении) и во втором направлении (в данном варианте осуществления изобретения в направлении вдоль столбца или в вертикальном направлении) . Множество операционных блоков 30 содержит множество видов или типов элементов тракта прохождения данных, в том числе, операционные блоки 32, приспособленные для различных специализированных операций обработки, в качестве примеров которых выше были приведены элемент 32£ тракта прохождения данных, приспособленный для ввода данных, элемент 32а тракта прохождения данных, приспособленный для обработки, обеспечивающей выдачу адреса данных, элемент 32Ь тракта прохождения данных, приспособленный для обработки путем выполнения арифметических или логических операций, элемент 326 тракта прохождения данных, приспособленный для выполнения операций умножения, и элемент 32с тракта прохождения данных, приспособленный для обработки, обеспечивающей задержку передачи данных. Управление соединениями между наборами 51 проводников для строк и наборами 52 проводников для столбцов, обеспечивающими передачу данных между операционными блоками 30 множества типов, осуществляют посредством коммутационных устройств 55, а путем изменения соединений между этими операционными блоками 30 в матрице 20 могут быть созданы специализированные вычислительные схемы потоковой обработки данных, выполняющие требуемую обработку данных. Это означает, что изменение конфигурации матрицы 20 из данного варианта осуществления изобретения, выполненной в виде специализированных вычислительных схем с различным содержанием обработки, может быть осуществлено за короткое время путем изменения соединений между операционными блоками 30 без необходимости изменения всех соединений между транзисторами, что имеет место в ИИВМ. В отличие от логических блоков ППВМ, операционные блоки 30 имеют такую архитектуру, для которой отсутствует необходимость универсальной применимости на уровне транзисторов, а каждый операционный блок 30 содержит элемент 32 тракта прохождения данных, предназначенный для специализированной обработки, поэтому избыточные схемы могут быть исключены, а плотность упаковки может быть увеличена. Следовательно, можно создать компактную, экономичную систему, в которой содержимое обработки, выполняемой аппаратными средствами, может быть изменено. Может быть обеспечено значительное уменьшение количества избыточных компонентов по сравнению с ППВМ, может быть обеспечено большое увеличение скорости обработки, а также может быть обеспечено улучшение характеристик по переменному току.
Как показано на фиг. 6-11, элементы 32а-32д тракта прохождения данных, приспособленные для выполнения различных операций, имеют различную конструкцию. Поэтому каждый элемент тракта прохождения данных способен выполнять предназначенные для него операции обработки с высокой скоростью, но существуют различия в площади, занимаемой каждым элементом тракта прохождения данных. Поэтому в матрице 20 из данного варианта осуществления изобретения операционные блоки 30, содержащие элементы 32 тракта прохождения данных, выполняющие одинаковую функцию, расположены вдоль линий в направлении вдоль строки, вследствие чего даже в том случае, если площадь, занимаемая операционным блоком 30, отличается в соответствии с типом элемента 32 тракта прохождения данных в операционном блоке 30, то линейность в направлении вдоль строки может быть сохранена. Даже несмотря на то, что типы элементов 32 тракта прохождения данных являются различными, линейность в направлении вдоль столбца также может быть сохранена путем создания равных промежутков между строками таким образом, чтобы шаг структуры в направлении вдоль строки был одинаковым. Это позволяет расположить наборы 51 проводников для строк и наборы 52 проводников для столбцов линейно.
То есть путем расположения операционных блоков 30 с одинаковыми элементами 32 тракта прохождения данных в направлении вдоль строки с равными промежутками между ними, различия в размере между операционными блоками 30 могут быть поглощены промежутками в направлении вдоль столбца, поэтому даже в том случае, если промежутки в направлении вдоль столбца изменяются от одной строки до другой, линейность может быть сохранена, а проводники могут быть размещены линейно в виде набора 51 проводников для строк. Можно создать матрицу 20 с заменой направления вдоль строки на направление вдоль столбца и наоборот, причем такая матрица также подпадает под объем патентных притязаний настоящего изобретения.
Как описано выше, операционные блоки 30, имеющие различные размеры и содержащие элементы 32 тракта прохождения данных различной конструкции, можно расположить в виде матрицы с чрезвычайно высокой эффективностью. Также можно обеспечить линейное расположение группы межсоедине
-13005344 ний (шин), состоящей из наборов проводников для строк и столбцов, соединяющих эти операционные блоки 30. Следовательно, может быть создана более компактная и дешевая реконфигурируемая интегральная схема, функционирование которой может быть задано после ее изготовления, По сравнению с ППВМ, операционные блоки 30, способные выполнять обработку с высокой скоростью и имеющие хорошие характеристики по переменному току, могут быть размещены более компактно и соединены посредством самых коротких проводников из тех, которые возможны, что позволяет создать интегральную схему, в которой реализована большая часть таких высоких скоростей обработки.
Таким образом, расположение операционных блоков 30, содержащих элементы 32 тракта прохождения данных с одной и той же функцией, в направлении вдоль строки является эффективным в том случае, когда матрица 20 функционирует в качестве приспособления или устройства потоковой обработки данных. В качестве одного из примеров приведен следующий: в вышеописанном варианте операционные блоки 30, предназначенные для ввода данных, расположены в первой строке, т.е. с одного края в направлении вдоль столбца, а операционные блоки 30, предназначенные для вывода данных, расположены в семнадцатой строке, т.е. с другого края в направлении вдоль столбца. Рассматривая это расширительно, в матрице 20 происходит формирование потока данных или потоков данных, направленных сверху вниз, при этом операционные блоки 30, приспособленные для выполнения других операций, расположены в соответствии с потоками данных. Также можно сформировать поток данных или потоки данных, направленные снизу вверх, используя наборы 51 проводников для строк и наборы 52 проводников для столбцов, что позволяет осуществлять такую обработку данных, которая обеспечивает максимальное использование операционных блоков 30, расположенных в виде матрицы 20.
Что касается элемента 32Ь тракта прохождения данных, приспособленного для выполнения арифметических операций, и элемента 326 тракта прохождения данных, приспособленного для выполнения операции умножения, то операционные блоки 30 одинакового типа могут быть связаны между собой путем размещения операционных блоков 30 в одном и том же направлении. В матрице 20 операционные блоки 30 могут быть использованы раздельно, а расширенные вычислительные функции, такие как, например, операции, выполняемые с увеличенной точностью, также могут быть обеспечены путем группировки или соединения операционных блоков, расположенных в направлении вдоль строки, между собой.
Каждый операционный блок 30 и каждое коммутационное устройство 55 или 56 содержат запоминающее устройство для хранения данных о конфигурации, посредством которого осуществляют управление этими устройствами по отдельности посредством установочных данных, поступающих из процессора 11. Следовательно, конфигурация операционных блоков 30 может быть легко изменена посредством процессора 11, и, в отличие от ППВМ, в которой схема соответствует уровню транзисторов, существует возможность изменения конфигурации операционных блоков 30, содержащих элементы 32 тракта прохождения данных, приспособленные для специализированной обработки, которая реализована или создана заранее таким образом, чтобы обеспечить возможность изменения функций, выполняемых посредством совокупности операционных блоков 30, за короткое время, фактически, в течение одного тактового импульса.
Кроме того, в каждом операционном блоке 30 функции, выполняемые логическими элементами, например, селекторами и АЛУ, образующими элемент 32 тракта прохождения данных, могут быть установлены раздельно посредством процессора 11 через конфигурационное ОЗУ 39. В результате, может быть осуществлено гибкое изменение функций самого операционного блока 30 в пределах того диапазона функций, обслуживание которых может быть обеспечено элементом 32 тракта прохождения данных. В матрице 20 из данного варианта осуществления изобретения может быть реализован чрезвычайно широкий диапазон функций обработки с использованием потока данных или псевдопотока данных. Существует возможность выбора и размещения операционных блоков 30 таких типов, которые приспособлены для той области применения, в которой используют БИС 10, например, для сетевой обработки или для обработки изображений, что обеспечивает возможность реализации интегральной схемы с высокой эффективностью упаковки.
Следует отметить, что помимо возможности взаимной замены набора 51 проводников для строк на набор 52 проводников для столбцов, которая изложена выше в описании данного варианта осуществления изобретения, может быть осуществлена взаимная замена строк и столбцов, служащих в качестве направлений расположения операционных блоков 30. Ввод данных в операционные блоки 30 и вывод данных из операционных блоков 30 также может быть осуществлен через любой набор проводников, как через набор проводников для строк, так и через набор проводников для столбцов. Однако показано, что в вышеописанной матрице 20 путем установления правила, в соответствии с которым ввод данных осуществляют через один из наборов проводников (которым в вышеописанном примере является набор 52 проводников для столбцов), а их вывод осуществляют через другой набор проводников (которым в вышеописанном примере является набор 51 проводников для строк), может быть реализована обычная передача данных из одного операционного блока 30 в другой через одно коммутационное устройство 55.
На фиг. 12 показан иной пример БИС, к которой относится настоящее изобретение. На фиг. 12 отсутствуют блок 12 управления прерываниями и устройство 13 генерации тактовых импульсов, хотя в этой БИС содержатся устройства тех же самых типов, что и в БИС, показанной на фиг. 1. В матрице 20,
-14005344 входящей в состав БИС 10 из данного примера, шесть операционных блоков 30 расположены по строкам, начиная со второй строки. Из них четыре операционных блока 30, расположенные слева, представляют собой операционные блоки 30, каждый из которых содержит элемент 32д тракта прохождения данных, функционирующий в качестве ОЗУ, операционные блоки 30, каждый из которых содержит элемент 32а тракта прохождения данных, функционирующий в качестве элемента типа ВЬЛ, осуществляют выдачу адреса данных, предназначенных для загрузки, а операционные блоки 30, каждый из которых содержит элемент 32а тракта прохождения данных, функционирующий в качестве элемента типа БЭЛ, также выдают адрес. Однако два операционных блока 30, расположенные в каждой строке справа, представляют собой операционные блоки 30, каждый из которых содержит элемент 32Ь тракта прохождения данных, функционирующий в качестве элемента типа 8МЛ, обеспечивающего поддержку арифметических и логических операций. Это обусловлено тем, что для обеспечения соответствия техническим требованиям, которым должна удовлетворять данная БИС 10, при выборе операционных блоков 30 необходимо осуществить выбор большего количества операционных блоков, функционирующих в качестве элементов 32Ь типа 8МЛ, чем операционных блоков других типов. Как и прежде, матрицу 20 можно создать путем размещения логических элементов 32Ь типа 8МЛ тем же самым способом, что и в схеме расположения операционных блоков других типов, в которой четыре операционных блока 30 расположены в каждой строке на одной линии. Однако хотя и существует зависимость от расположения других устройств, из которых состоит БИС 10, но по отношению к самой матрице 20 такая схема расположения является удлиненной по высоте или в продольном направлении (в виде столбца), что снижает эффективность использования площади. К тому же поскольку произошло увеличение количества строк в продольном направлении, то возрастает нагрузка на набор 52 проводников для столбцов, и увеличивается количество сегментов, что приводит к необходимости наличия логических элементов 32с типа ЭЕБ и к снижению скорости обработки.
В матрице 20 из данного примера размещение большого количества операционных блоков 30, содержащих элементы 32Ь типа 8МЛ, осуществлено путем добавления операционных блоков 30 иного типа в направлении вдоль строки таким образом, чтобы форма всей матрицы 20 была приближенной к квадрату. В этой матрице 20 все операционные блоки 30, расположенные в одной и той же строке, не обязательно являются однотипными. Однако внутри той области, в которой расположено меньшее количество операционных блоков 30, в том числе, например ОЗУ 32д, элементы типов ВЬЛ и БЭЛ. операционные блоки 30 одинакового типа расположены в направлении вдоль строки, что обеспечивает сохранение линейности в направлении вдоль строки. Линейность в направлении вдоль столбца обеспечивают вышеописанным способом путем размещения операционных блоков 30 различных типов с равным шагом в направлении вдоль строки.
В матрице 20 из данного примера шесть входных буферов 24 и шесть выходных буферов 25 размещены, соответственно, на шине 22 загрузки и на шине 23 сохранения. Из них два входных буфера 24 и два выходных буфера 25 соединены, соответственно, с входным интерфейсом 26 расширения (дополнения или открытого типа) и с выходным интерфейсом 27 расширения (дополнения или открытого типа) вместо их соединения с блоком 15 управления шиной. Интерфейсы 26 и 27 расширения используют в качестве интерфейсов между матрицами 20. Следовательно, на одном и том же кристалле можно разместить множество матриц 20 и обеспечить соединение матриц 20 посредством интерфейсов 26 и 27 расширения или же обеспечить соединение множества микросхем 10 с матрицами 20 посредством интерфейсов 26 и 27 расширения.
Использование интерфейсов 26 и 27 расширения дает возможность расширения или дополнения возможностей компьютера или процессора с потоковой обработкой данных за счет использования множества БИС 10, содержащих матрицы 20. Путем увеличения количества матриц 20, которые могут быть соединены между собой, может быть увеличено количество соединяемых операционных блоков 30, что позволяет выполнять более сложные операции обработки. Это также увеличивает диапазон, в пределах которого может быть осуществлена реконфигурация матрицы, выполняемая путем изменения конфигурации операционных блоков 30, что обеспечивает возможность создания интегральной схемы с еще более высокой степенью трансформируемости. Также обеспечена возможность гибкого выбора конфигураций операционных блоков 30 с улучшенными характеристиками, например, с более высокой степенью параллелизма. К тому же, можно создать трехмерную матрицу путем расположения множества матриц 20 в виде трехмерной структуры.
На фиг. 13 А показана система или интегральная схема 9 вычислительной обработки, в которой было выполнено эффективное расширение матрицы 20 в η раз путем соединения η БИС 10 с использованием интерфейсов 26 и 27 расширения. Может быть осуществлено двухмерное или трехмерное объединение таких БИС.
В системе 9, в которой множество БИС 10 соединены между собой, интерфейсы 26 и 27 расширения можно использовать в качестве шин для передачи требуемой информации во множество матриц 20 или во множество БИС 10, содержащих такие матрицы 20. На фиг. 13Б-13Г показаны различные примеры. На фиг. 13Б БИС 10 соединены посредством интерфейсов расширения последовательно. На фиг. 13В
-15005344
БИС 10 соединены в виде древовидной структуры. На фиг. 13Г БИС 10 соединены в виде кольцеобразной структуры.
Для передачи данных может быть использован простой алгоритм, и в качестве одного из примеров приведен следующий: заранее может быть создана простая программа, служащая для передачи начальных установочных параметров в каждую БИС 10. БИС (первая БИС в цепи в случае использования структуры соединений в виде последовательной цепи), БИС, расположенная на вершине древовидной структуры в случае использования древовидной структуры соединений, или любая БИС в кольце БИС), осуществляющая управление системой 9, передает в следующую БИС 10 информацию в виде данных и маркера, а БИС, осуществляющая прием этой информации, расценивает эту информацию как информацию, предназначенную для себя самой, и одновременно передает эту информацию в следующую БИС 10. В каждой матрице 20 решение о содержимом информации и о том, предназначена ли эта информация для данной матрицы 20, может быть принято с использованием любого из операционных блоков 30 матрицы
20. Адресатом этой передаваемой информации может являться операционный блок 30, содержащий функцию ОЗУ, ОЗУ процессора 11 или конфигурационное ОЗУ 39 каждого операционного блока 30.
Переданная информация содержит программу 3 для К18С-процессора 11, информацию, вводимую в конфигурационное ОЗУ 39, содержащееся в матрице 20, и т.п. Для обеспечения ввода информации в конфигурационное ОЗУ 39 может быть осуществлена запись установочной информации, принятой из входного интерфейса 26 расширения через выходную шину 23 и блок 15 управления шиной, путем указания адреса конфигурационного ОЗУ 39 операционного блока 30 с использованием функции запоминания матрицы 20. Информация может быть временно запомнена во внешнем динамическом ОЗУ 2 и может быть передана в конфигурационное ОЗУ 39 с использованием функций процессора 11.
Переданная информация также содержит информацию для управления синхронизацией. Передача данных может быть осуществлена с постоянным периодом (например, через интервалы, равные одной секунде), представляющем собой основной тактовый сигнал для системы 9, что обеспечивает возможность синхронизации операций обработки, выполняемых во множестве БИС 10, из которых состоит система 9.
На фиг. 14 показан способ проектирования и изготовления БИС 10 из данного варианта осуществления изобретения. После того как операции обработки, которые должна выполнять БИС 10, представлены в виде технических требований 71, выполняют операцию 72, при которой осуществляют преобразование технических требований 71 в исходный файл 73, написанный на языке программирования, который должна выполнять БИС 10. Эта операция 72 преобразования связана с библиотекой 79 операционных блоков и при ее выполнении осуществляют преобразование описания 71, написанного на стандартном языке высокого уровня, например на языке ΑΝδΙ-Си (версия языка Си Национального института стандартизации США), в промежуточное представление 73, написанное на языке программирования (именуемом ниже промежуточным языком), содержащем команды, которые поддерживаются операционными блоками 30. Эта операция 72 преобразования может быть выполнена вручную или может быть выполнена с использованием программного обеспечения, например компилятора.
Из операционных блоков 30, образующих матрицу 20, операционный блок типа ЬБ содержит элемент 32£ тракта прохождения данных и приспособлен для обработки по команде ввода, служащей для ввода данных. Операционные блоки типов ВЬА и ЬБА содержат элементы 32а тракта прохождения данных и приспособлены для обработки по командам, указывающим адреса ввода данных. Операционный блок типа 8Т приспособлен для обработки по команде вывода, служащей для вывода данных. Операционные блоки типа В8А и типа 8ТА содержат элементы 32а тракта прохождения данных и приспособлены для обработки по командам, указывающим адреса вывода данных. Операционный блок типа 8МА содержит элемент 32Ь тракта прохождения данных и приспособлен для обработки по командам выполнения арифметических операций и/или по командам выполнения логических операций, а операционный блок типа МИЬ содержит элемент 32й тракта прохождения данных и приспособлен для обработки по командам умножения. Эти операционные блоки 30 осуществляют обработку данных побайтно или пословно, поэтому один операционный блок 30 пригоден для выполнения обработки по одной команде или по множеству команд.
Следовательно, можно сказать, что операционные блоки 30 множества типов, из которых состоит матрица 20, обеспечивают поддержку команд ввода и вывода данных, команд выполнения арифметических операций и команд выполнения логических операций, поэтому операции обработки по вводу и выводу данных, арифметической обработки и логической обработки могут быть описаны посредством наборов команд (промежуточного языка), которые поддерживаются операционными блоками 30. Для операций, при которых многократно выполняют обработку операций ввода-вывода, обработку сигналов и обработку путем выполнения арифметических операций и/или обработку путем выполнения логических операций, которые представляют собой так называемые циклические операции, трудно обеспечить увеличение скорости обработки в случае использования Ш8С-процессора 11 и в случае циклической обработки программным способом с использованием ограниченных аппаратных ресурсов. С другой стороны, при использовании матрицы 20 из данного варианта осуществления изобретения эти операции могут быть распределены по большому объему имеющихся аппаратных ресурсов, реализованных в виде опера
-16005344 ционных блоков, и может быть обеспечено улучшение производительности за счет одновременной параллельной работы этих операционных блоков. Следовательно, скорость обработки может быть увеличена простым способом, осуществляемым путем обнаружения таких операций с использованием анализатора эффективности или аналогичного средства и последующего преобразования этих операций в аппаратные средства.
Промежуточное представление, созданное путем преобразования предоставленных технических требований 73, содержит часть 73а, написанную на языке Си и выполняемую К18С-процессором 11, и часть 73Ь, написанную на промежуточном языке, что обеспечивает ее выполнение матрицей 20. Часть 73Ь, являющаяся промежуточным представлением на промежуточном языке, показана на фиг. 17. Часть 73Ь, в которой отражены команды, поддерживаемые операционными блоками 30, представляет собой описание, выражающее процедуру обработки способом, обеспечивающим возможность ее преобразования в блок-схемы обработки данных или в блок-схемы обработки управляющих данных, представляющие собой блок-схемы обработки данных с добавленной управляющей информацией. Следовательно, в отличие от языка НБЬ (языка описания аппаратных средств) или аналогичного языка, технические требования, предъявляемые к системе, являются понятными для проектировщика, поэтому после введения в систему изменений или ее модификации подобные изменения или модификации могут быть легко отражены в промежуточном описании 73Ь. Одним из типов промежуточных языков являются языки, подобные ассемблеру, например, языки, подобные макроассемблеру. Такие языки являются менее сложными, чем язык Си, и более легко обеспечивают сохранение линейности, что упрощает создание блок-схем обработки данных и облегчает понимание того, какая именно конфигурация была использована при представлении таких блок-схем обработки данных в виде матрицы 20. Следовательно, подобные языки облегчают разработку как матриц 20, так и программ, при этом они также обеспечивают простоту отладки и сопровождения.
Часть 73Ь, описанная на промежуточном языке, написана в командах, которые поддерживаются операционными блоками 30, поэтому обработка, соответствующая этой части 73Ь, может быть представлена в виде конфигурации операционных блоков 30 матрицы 20. Затем путем выполнения 75 операции размещения элементов и трассировки соединений осуществляют генерацию конфигурации или конфигураций (исполнительной конфигурации) 76 операционных блоков 30, способных выполнять операции 73Ь обработки, описанные на промежуточном языке. Эту операцию выполняют посредством компилятора (программы). После генерации исполнительной конфигурации 76 осуществляют вывод информации 78 о матрице 20, в которой операционные блоки 30 размещены таким образом, что обеспечивают реализацию исполнительной конфигурации 76. Если матрица 20 создана на основе этой информации 78, то процедура основного проектирования БИС 10 завершена, и на основе этого может быть осуществлено изготовление БИС 10. Также осуществляют генерацию команды 80, указывающей исполнительную конфигурацию 76. Затем осуществляют генерацию исходного файла 74 на языке Си, содержащего вместо описания на промежуточном языке 73Ь команду 80, указывающую исполнительную конфигурацию 76, и команду, вводящую эту конфигурацию в действие, и выполняют его компиляцию посредством компилятора языка Си, в результате чего осуществляют генерацию программы (объектной программы) 3, исполняемой БИС 10.
В том случае, когда отсутствует необходимость изменения конфигурации операционных блоков 30 в матрице 20 для выполнения предусмотренных технических требований 71, также отсутствует необходимость в генерации команд, указывающих конфигурацию, и достаточно лишь создать матрицу 20, содержащую операционные блоки 30, способные выполнять обработку части 73Ь, написанной на промежуточном языке. В том случае, когда существующая матрица 20 обеспечивает выполнение предусмотренных технических требований 71, генерацию матрицы 20 не производят. В этом случае осуществляют генерацию команды 80 установки конфигурации уже размещенных в матрице 20 операционных блоков 30 в виде исполнительной конфигурации 76, которая заменяет часть 73Ь, написанную на промежуточном языке, а затем выполняют компиляцию, посредством которой осуществляют генерацию исполняемой программы 3.
Для регулировки синхронизации обработки между парами или между множеством операционных блоков 30 в процессе 75 размещения элементов и трассировки соединений необходимо осуществить генерацию исполнительной конфигурации 76, содержащей операционные блоки типа БЕЬ, служащие для введения задержки, которые содержат элемент 32с тракта прохождения данных. В процессе 75 размещения элементов и трассировки соединений необходимо найти надлежащую конфигурацию путем многократного выполнения операций проектирования матрицы 20 с различными схемами расположения элементов и подтверждения того, действительно ли все исполнительные конфигурации могут быть использованы при применении соответствующего алгоритма.
Конфигурация внутреннего тракта прохождения данных в каждом из операционных блоков 30 может быть также изменена или выбрана посредством конфигурационного ОЗУ 39. В операционном блоке типа 8МЛ, содержащем элемент 32Ь тракта прохождения данных, необходимо задать содержание или подробные параметры операции с использованием конфигурационного ОЗУ 39. Следовательно, в процессе 75 размещения элементов и трассировки соединений необходимо осуществить генерацию такой
-17005344 исполнительной конфигурации, в состав которой входят конфигурации внутренних трактов 32 прохождения данных объединенных операционных блоков 30. Установочные параметры операционных блоков 30 подают в матрицу 20 таким образом, чтобы эти установочные параметры стали активными в конфигурационном ОЗУ 39, содержащемся в каждом операционном блоке 30, что обеспечивают посредством имеющейся в исполняемой программе 3 команды, указывающей конфигурацию.
Ниже приведено описание процедуры генерации конфигурации операционных блоков 30 со ссылкой на фиг. 15-21. На фиг. 15 приведена схема последовательности операций, на которой показаны операции обработки, осуществляемой компилятором 75, который выполняет процедуру размещения элементов и трассировки соединений. Сначала выполняют операцию 91, при которой осуществляют генерацию блок-схемы 101 обработки данных (БСОД) (последовательности выполнения операций), показанной на фиг. 18, исходя из описания 73Ь на промежуточном языке, показанного на фиг. 17. При необходимости создания множества блок-схем 101 обработки данных осуществляют генерацию таких блок-схем 101 обработки данных. Затем выполняют операцию 92, при которой осуществляют генерацию матрицы 20 с соответствующей схемой расположения элементов, содержащей операционные блоки 30, из которых могут состоять эти блок-схемы 101 обработки данных, и операцию 93, при которой осуществляют размещение элементов и трассировку соединений для каждой отдельной блок-схемы 101 обработки данных, в результате чего получают (находят) схему расположения элементов матрицы 20, в которой могут быть распределены все блок-схемы 101 обработки данных, и исполнительную конфигурацию, соответствующую матрице 20. При выполнении операции 94 в том случае, когда в процессе размещения элементов и трассировки соединений невозможно разместить одну или большее количество блок-схем 101 обработки данных, результат процесса размещения элементов и трассировки соединений расценивают как неосуществимый для данной матрицы, и в процессе обработки возвращаются к выполнению операции 92, при которой осуществляют генерацию матрицы 20 с новой схемой расположения элементов. Операционные блоки типа 8Т, которые выполняют обработку, обеспечивающие вывод данных, расположены на выходной стороне матрицы 20, и если блок-схемы 101 обработки данных могут быть распределены с использованием вплоть до всех операционных блоков типа 8Т, то результат процесса размещения элементов и трассировки соединений считают успешным.
На фиг. 16 показана схема последовательности операций обработки, посредством которых осуществляют генерацию конфигурации операционных блоков 30 для выполнения одной блок-схемы 101 (последовательности операций) обработки данных. Для облегчения сохранения задержки в предпочтительном варианте установлен определенный порядок следования операционных блоков 30, начиная с нижнего конца блок-схемы 101 обработки данных. Следовательно, при выполнении операции 111 получают подтверждение того, действительно ли в надлежащем месте может быть найден операционный блок для конечного участка блок-схемы 101 обработки данных, и действительно ли такой операционный блок может быть соединен посредством проводников с операционным блоком типа 8Т, осуществляющим вывод данных. При выполнении операции 112 в том случае, если соответствующие операционные блоки 30 и наборы проводников, соединяющие операционные блоки 30, могут быть найдены, результат процесса размещения элементов и трассировки соединений, выполняемого при этой операции, считают успешным. Затем выполняют операцию 113, при которой отмечают найденные ресурсы, которыми являются операционные блоки 30 и наборы проводников, а последний операционный блок 30 отмечают как уже размещенный. После этого выполняют операцию 114, при которой путем прослеживания блок-схемы обработки данных снизу вверх получают подтверждение того, действительно ли может быть обнаружен операционный блок 30, который становится источником входных данных для операционных блоков 30, отмеченных как уже скомпонованные, и к которому может быть проведена разводка или трассировка соединений. При выполнении операции 115 блок-схему 101 обработки данных в матрице 20 считают сконфигурированной в том случае, когда в надлежащем месте может быть найден операционный блок 30, являющийся источником входных данных, и к которому может быть проведена разводка соединений, и могут быть найдены или скомпонованы все операционные блоки 30, являющиеся источниками входных данных, и к которым может быть проведена разводка соединений.
Блок-схема 101 (последовательность операций) обработки данных, показанная на фиг. 18, выполняет две операции сложения двух фрагментов входных данных, в результате чего получают выходные данные, и может быть заменена конфигурацией операционных блоков 30, показанной на фиг. 19. В более подробном изложении, начиная с нижнего конца, эта конфигурация содержит выходной операционный блок типа 8Т, два операционных блока типа 8МЛ, выполняющих арифметические операции, и два входных логических блока типа Б-Ό. При операции сложения, выполняемой этими двумя операционными блоками типа 8МЛ, служащими для выполнения арифметических операций, используют два тактовые сигнала, поэтому в состав конфигурации входит логический блок типа ΌΕΗ вводящий задержку, который служит для регулировки синхронизации (времени задержки). К тому же, в зависимости от схемы расположения элементов матрицы 20, в состав конфигурации должны входить соответствующие логические блоки типа ОББ, служащие для регулировки времени задержки.
На фиг. 20 показано то, каким образом выполняют распределение (размещение) блок-схемы 101 обработки данных в матрице 20. Операционный блок типа 8МЛ, расположенный в конце блок-схемы, на
-18005344 ходится в том же самом столбце, что и операционный блок типа 8Т, осуществляющий вывод значения, созданного операционным блоком типа 8МЛ. Операционный блок типа ΌΕΕ, представляющий собой источник, из которого осуществляют ввод одного из значений, суммируемых посредством этого операционного блока типа 8МЛ, находится в том же самом столбце, что и операционный блок типа 8МЛ, а операционный блок типа 8МЛ, представляющий собой источник, из которого осуществляют ввод другого значения, находится в соседнем столбце. Матрица 20, показанная на фиг. 20, разделена на три сегмента 29 таким образом, что операционный блок типа ЬЭ представляющий собой источник, из которого осуществляют ввод данных в операционный блок типа ΌΕΕ, находящийся в этом же столбце, соединен с этим операционным блоком типа ΌΕΕ через два другие операционные блока типа ΌΕΕ. Аналогичным образом, операционный блок типа ЕЭ, представляющий собой источник данных для операционного блока типа 8МА, расположенного в соседнем столбце, соединен с этим операционным блоком типа 8МА через два операционных блока типа ΌΕΕ. Следовательно, реальная конфигурация блок-схемы 101 обработки данных, отображенная в виде матрицы 20, является такой, как показано на фиг. 21. Команда или команды 80, указывающие эту конфигурацию, встроены в исполняемую программу 3 для БИС 10, содержащей эту матрицу 20, при этом управление конфигурацией матрицы 20 в соответствии с командами 80 осуществляет К18С-процессор 11. Таким способом обеспечивают выполнение операций обработки промежуточного описания 73Ь аппаратными средствами, содержащимися в матрице 20.
Как описано выше, предложенное в настоящем изобретении устройство, представляющее собой интегральную схему, содержит блок обработки данных (матрицу), в котором расположены операционные блоки различных типов, содержащие тракты прохождения данных, приспособленные для специализированной обработки, а путем выбора или задания конфигурации или конфигураций этих операционных блоков различных типов разработка и изготовление устройства, представляющего собой интегральную схему, которое способно полностью или частично выполнять предусмотренные технические требования аппаратными средствами, могут быть осуществлены за чрезвычайно короткое время. Операционные блоки, размещенные в блоке обработки данных, снабжены функциями (функциональными блоками), обеспечивающими выполнение команд, поэтому программная обработка может быть преобразована в аппаратную обработку просто путем преобразования предусмотренных технических требований в описание, написанное на промежуточном языке, которое содержит команды, поддерживаемые операционными блоками. К тому же, операции обработки, выполняемые этим блоком обработки данных, могут быть заданы просто путем определения конфигурации операционных блоков. Это означает, что для изготовления аппаратных средств, обеспечивающих выполнение предусмотренных технических требований, отсутствует необходимость в использовании языка описания аппаратных средств, служащего для осуществления логического синтеза конфигурации на уровне транзисторов и последующей генерации аппаратных средств, или служащего для осуществления преобразования в информацию, которая может быть загружена в ППВМ. Промежуточный язык, на котором выполнено описание, созданное для генерации конфигурации операционных блоков, представляет собой язык программирования, позволяющий проектировщику легко понять операции обработки и обеспечивающий возможность введения изменений или модификаций с высокой степенью технологической гибкости и за короткое время.
Не обязательно, чтобы все операционные блоки, расположенные в блоке обработки данных, имели широкую область применимости, а каждый из них имел одинаковую конструкцию, и, следовательно, они содержат различные или уникальные тракты прохождения данных, приспособленные для выполнения операций обработки, указанных посредством команд, что приводит лишь к небольшой избыточности схемы. Это позволяет создать компактную и экономичную интегральную схему. Также можно создать устройство, представляющее собой интегральную схему, которое обладает высокой скоростью обработки и хорошими характеристиками по переменному току. В этом устройстве, представляющем собой интегральную схему, выполняемые функции, скомпонованные или сконфигурированные посредством множества операционных блоков, могут быть легко изменены всего лишь за один тактовый импульс, поэтому для различных типов обработки может быть обеспечено эффективное использование ресурсов, в состав которых входят операционные блоки и группы межсоединений, из которых состоит блок обработки данных.
Вышеописанный вариант осуществления изобретения является всего лишь одним из примеров настоящего изобретения, и как раскрыто в данном описании, возможно множество вариантов его видоизменений. Одним из примеров является следующий: блок-схемы обработки данных, заданные посредством конфигураций операционных блоков, расположенных в виде матрицы, содержат все блок-схемы обработки данных, начиная с неперестраиваемых блок-схем обработки данных, содержащихся в матрице, и заканчивая теми блок-схемами обработки данных, содержащимися в матрице, конфигурация которых может быть динамически изменена посредством программы. Способы управления конфигурацией операционных блоков и выбором трактов прохождения данных в операционных блоках не ограничены указаниями, поступающими из К18С-процессора, так что эти указания могут поступать из другой БИС, из другой матрицы или даже из операционного блока, находящегося в матрице. Вышеописанные операционные блоки представляют собой примеры, содержащие тракты прохождения данных, приспособленные для специализированной обработки, например для выполнения арифметических операций, логических
-19005344 операций, операций умножения, операций введения задержки и т.д., однако, функции и конструкции трактов прохождения данных, содержащихся в операционных блоках, не ограничены этими примерами. К тому же, типы операционных блоков, размещенных в матрице, не ограничены вышеописанными примерами. Полезные эффекты настоящего изобретения могут быть также получены путем создания операционных блоков, содержащих тракты прохождения данных различных типов, которые выполняют функции, соответствующие прикладной задаче, выполняемой устройством обработки данных из настоящего изобретения, путем упорядоченного размещения этих операционных блоков и путем прокладки схем соединений этих операционных блоков с шинами.
Промышленная применимость
Предложенное в настоящем изобретении устройство или приспособление, представляющее собой интегральную схему, может быть выполнено в виде системной БИС, способной выполнять различные виды операций обработки данных. К тому же, предложенное в настоящем изобретении устройство, представляющее собой интегральную схему, не ограничено электронной схемой и может быть выполнено в виде оптической схемы или оптико-электронной схемы. Предложенное в настоящем изобретении устройство, представляющее собой интегральную схему, может выполнять высокоскоростную обработку данных с использованием реконфигурируемых аппаратных средств, и целесообразным может являться его использование в качестве устройства обработки данных, которое должно функционировать с высокой скоростью и в реальном масштабе времени, например, в качестве устройства обработки данных для сетевой обработки или для обработки изображений.

Claims (41)

  1. ФОРМУЛА ИЗОБРЕТЕНИЯ
    1. Устройство, представляющее собой интегральную схему, которое содержит блок обработки данных, содержащий множество операционных блоков, расположенных в первом и во втором направлениях в виде матрицы, множество первых наборов проводников, проходящих в первом направлении, соответствующем схеме расположения множества операционных блоков в первом направлении, и обеспечивающих передачу входных данных и/или выходных данных каждого из операционных блоков, множество вторых наборов проводников, проходящих во втором направлении, соответствующем схеме расположения множества операционных блоков во втором направлении, и обеспечивающих передачу входных данных и/или выходных данных каждого из операционных блоков, и множество коммутационных устройств, расположенных в каждой точке пересечения между первыми наборами проводников и вторыми наборами проводников и способных осуществлять выбор и соединение любого проводника, входящего в состав первых наборов проводников, с любым проводником, входящим в состав вторых наборов проводников, в котором вышеупомянутое множество операционных блоков упорядочено во множество типов операционных блоков, содержащих различные тракты прохождения данных, приспособленные для специализированной обработки, а схема расположения элементов в первом направлении или во втором направлении формируется из операционных блоков одинакового типа, по меньшей мере, в части вышеупомянутого блока обработки данных, и в котором в состав вышеупомянутых операционных блоков множества типов входит операционный блок типа устройства задержки, содержащий тракт прохождения данных, приспособленный для выполнения операции обработки, обеспечивающей задержку момента времени передачи данных.
  2. 2. Устройство, представляющее собой интегральную схему, по п.1, в котором вышеупомянутые операционные блоки множества типов расположены через равные интервалы в первом направлении.
  3. 3. Устройство, представляющее собой интегральную схему, по п.1, в котором в состав вышеупомянутых операционных блоков множества типов входят операционные блоки различных типов, которые содержат тракты прохождения данных, приспособленные для выполнения по меньшей мере одной иной операции обработки на уровне команд.
  4. 4. Устройство, представляющее собой интегральную схему, по п.1, в котором в состав вышеупомянутых операционных блоков множества типов входят операционные блоки, которые содержат тракты прохождения данных, приспособленные для выполнения операций обработки, обеспечивающих ввод и/или вывод данных, и которые расположены на одном краю и на другом краю блока обработки данных.
  5. 5. Устройство, представляющее собой интегральную схему, по п.1, в котором каждый операционный блок содержит триггер, обеспечивающий фиксацию входных данных, и триггер, обеспечивающий фиксацию выходных данных, а управление вышеупомянутыми триггерами осуществляют единичным тактовым импульсом, устанавливая количество тактовых импульсов, используемых в каждом операционном блоке.
  6. 6. Устройство, представляющее собой интегральную схему, по п.1, в котором в состав вышеупомянутых операционных блоков множества типов входят операционные блоки по меньшей мере одного ти
    -20005344 па, содержащие тракт, соединяющий их с другими операционными блоками, расположенными в том же самом направлении, и обеспечивающий расширение рабочих функций.
  7. 7. Устройство, представляющее собой интегральную схему, по п.1, в котором каждый операционный блок содержит средство, обеспечивающее выбор проводников, входящих в состав первых наборов проводников и/или вторых наборов проводников, а также ввод и/или вывод сигнала.
  8. 8. Устройство, представляющее собой интегральную схему, по п.7, в котором каждый операционный блок содержит перезаписываемое запоминающее устройство для хранения данных о конфигурации, в котором сохраняют данные о выбираемых проводниках, а каждое коммутационное устройство содержит перезаписываемое запоминающее устройство для хранения данных о конфигурации, в котором сохраняют данные о выбираемых проводниках.
  9. 9. Устройство, представляющее собой интегральную схему, по п.8, в котором каждый операционный блок включает в себя средство изменения и/или выбора части внутреннего тракта прохождения данных, а запоминающее устройство хранит данные о конфигурации - запомнены данные об изменении и/или о выборе внутреннего тракта прохождения данных.
  10. 10. Устройство, представляющее собой интегральную схему, по п.9, в котором внутренний тракт прохождения данных приспособлен для выполнения по меньшей мере одной операции обработки на уровне команд.
  11. 11. Устройство, представляющее собой интегральную схему, по п.8, дополнительно содержащее универсальный процессор, способный осуществлять перезапись содержимого запоминающего устройства для хранения данных о конфигурации.
  12. 12. Устройство, представляющее собой интегральную схему, по п.1, дополнительно содержащее множество блоков обработки данных и третий набор проводников, соединяющий вышеупомянутое множество блоков обработки данных между собой.
  13. 13. Устройство, представляющее собой интегральную схему, по п.1, в котором каждый операционный блок осуществляет обработку данных побайтно и/или пословно.
  14. 14. Устройство, представляющее собой интегральную схему, по п.1, в котором первые и вторые наборы проводников включают в себя проводники шин, служащие для передачи данных, и проводникиносители, служащие для передачи сигналов переноса.
  15. 15. Устройство, представляющее собой интегральную схему, по п.1, в котором каждый операционный блок содержит средство ввода сигнала из любого проводника, входящего в состав вторых наборов проводников, и средство вывода сигнала в любой проводник, входящий в состав первых наборов проводников, а вторые наборы проводников содержат два набора проводников, проходящих с обеих сторон относительно мест расположения множества операционных блоков во втором направлении.
  16. 16. Устройство, представляющее собой интегральную схему, по п.1, в котором блок обработки данных содержит первую матрицу и вторую матрицу, соединенные между собой посредством схемы расположения операционных блоков типа устройств задержки.
  17. 17. Устройство, представляющее собой интегральную схему, по п.1, в котором в состав вышеупомянутых операционных блоков множества типов входит по меньшей мере один из следующих операционных блоков:
    операционный блок первого типа, содержащий тракт прохождения данных, приспособленный для обработки данных на входе;
    операционный блок второго типа, содержащий тракт прохождения данных, приспособленный для обработки, указывающей адрес ввода данных;
    операционный блок третьего типа, содержащий тракт прохождения данных, приспособленный для обработки данных на выходе;
    операционный блок четвертого типа, содержащий тракт прохождения данных, приспособленный для обработки, указывающей адрес вывода данных;
    операционный блок пятого типа, содержащий тракт прохождения данных, приспособленный для выполнения арифметических операций и/или логических операций;
    операционный блок шестого типа, содержащий тракт прохождения данных, приспособленный для обработки путем умножения;
    операционный блок седьмого типа, содержащий тракт прохождения данных, приспособленный для выполнения операции обработки, обеспечивающей соединение с вычислительной схемой, расположенной вне блока обработки данных; и операционный блок восьмого типа, содержащий тракт прохождения данных, выбор выполняемой им операции обработки осуществляют с использованием таблицы преобразования.
  18. 18. Устройство, представляющее собой интегральную схему, которое содержит блок обработки данных, содержащий операционные блоки множества типов и группу межсоединений, обеспечивающих соединение вышеупомянутых операционных блоков множества типов, в котором операционные блоки множества типов включают в себя операционные блоки различных типов, содержащие тракты прохождения данных, приспособленные для выполнения по меньшей мере одной иной команды, и операцион
    -21005344 ный блок типа устройства задержки, содержащий тракт прохождения данных, приспособленный для выполнения операции обработки, обеспечивающей задержку момента времени передачи данных.
  19. 19. Устройство, представляющее собой интегральную схему, по п.18, в котором в состав вышеупомянутых операционных блоков множества типов входит по меньшей мере один из следующих операционных блоков:
    операционный блок первого типа, содержащий тракт прохождения данных, приспособленный для выполнения команды ввода данных;
    операционный блок второго типа, содержащий тракт прохождения данных, приспособленный для выполнения команды, указывающей адрес ввода данных;
    операционный блок третьего типа, содержащий тракт прохождения данных, приспособленный для выполнения команды вывода данных;
    операционный блок четвертого типа, содержащий тракт прохождения данных, приспособленный для выполнения команды, указывающей адрес вывода данных;
    операционный блок пятого типа, содержащий тракт прохождения данных, приспособленный для выполнения команды выполнения арифметической операции и/или команды выполнения логической операции; и операционный блок шестого типа, содержащий тракт прохождения данных, приспособленный для выполнения команды умножения.
  20. 20. Устройство, представляющее собой интегральную схему, по п.19, в котором в состав вышеупомянутых операционных блоков множества типов дополнительно входит по меньшей мере один из следующих операционных блоков:
    операционный блок седьмого типа, содержащий тракт прохождения данных, приспособленный для выполнения операции обработки, обеспечивающей соединение с вычислительной схемой, расположенной вне блока обработки данных; и операционный блок восьмого типа, содержащий тракт прохождения данных, в котором осуществляют выбор выполняемой им операции обработки с использованием таблицы преобразования.
  21. 21. Устройство, представляющее собой интегральную схему, которое содержит блок обработки данных, содержащий операционные блоки множества типов и группу межсоединений, обеспечивающих соединение вышеупомянутых операционных блоков множества типов, в котором в состав вышеупомянутых операционных блоков множества типов входят операционные блоки различных типов, содержащие тракты прохождения данных, приспособленные для выполнения по меньшей мере одной иной команды, и в котором каждый операционный блок содержит триггер, обеспечивающий фиксацию входных данных, и триггер, обеспечивающий фиксацию выходных данных, а управление вышеупомянутыми триггерами осуществляют единичным тактовым импульсом, устанавливая количество тактовых импульсов, используемых в каждом операционном блоке.
  22. 22. Устройство, представляющее собой интегральную схему, по п.18, в котором вышеупомянутые операционные блоки множества типов расположены в первом и во втором направлениях в виде матрицы.
  23. 23. Устройство, представляющее собой интегральную схему, по п.22, в котором в состав вышеупомянутых операционных блоков множества типов входят операционные блоки, которые содержат тракты прохождения данных, приспособленные для выполнения команд ввода и/или команд вывода данных, и которые расположены на одном краю и на другом краю блока обработки данных.
  24. 24. Устройство, представляющее собой интегральную схему, по п.22, в котором вышеупомянутая группа межсоединений содержит множество первых наборов проводников, проходящих в первом направлении, соответствующем схеме расположения вышеупомянутых операционных блоков множества типов в первом направлении, и обеспечивающих передачу входных данных и/или выходных данных каждого из операционных блоков;
    множество вторых наборов проводников, проходящих во втором направлении, соответствующем схеме расположения вышеупомянутых операционных блоков множества типов во втором направлении, и обеспечивающих передачу входных данных и/или выходных данных каждого из операционных блоков; и множество коммутационных устройств, расположенных в каждой точке пересечения между первыми наборами проводников и вторыми наборами проводников и способных осуществлять выбор и соединение любого проводника, входящего в состав первых наборов проводников, с любым проводником, входящим в состав вторых наборов проводников, при этом каждое из множества типов вышеупомянутых операционных блоков содержит средство, обеспечивающее выбор любого из проводников, входящего в состав первых наборов проводников и/или вторых наборов проводников, а также ввод и/или вывод сигнала.
  25. 25. Устройство, представляющее собой интегральную схему, по п.18, в котором группа межсоединений изменяет конфигурацию операционных блоков множества типов, служащих для обработки данных, путем изменения маршрута прохождения данных, подаваемых в вышеупомянутые операционные блоки множества типов.
  26. 26. Устройство, представляющее собой интегральную схему, по п.25, в котором каждое из множества типов операционных блоков содержит перезаписываемое запоминающее устройство для хранения
    -22005344 данных о конфигурации, в котором запоминают данные о выбираемых проводниках, а каждое коммутационное устройство также содержит перезаписываемое запоминающее устройство для хранения данных о конфигурации, в котором запоминают данные о выбираемых проводниках.
  27. 27. Устройство, представляющее собой интегральную схему, по п.26, в котором операционные блоки множества типов включает в себя операционные блоки по меньшей мере одного типа, содержащие внутренний тракт прохождения данных, приспособленный для выполнения по меньшей мере одной команды, и средство выбора и/или изменения части внутреннего тракта прохождения данных, а в запоминающем устройстве для хранения данных о конфигурации, содержащемся в вышеупомянутых операционных блоках по меньшей мере одного типа, запомнены данные о выборе и/или об изменении внутреннего тракта прохождения данных.
  28. 28. Устройство, представляющее собой интегральную схему, по п.26, дополнительно содержащее устройство управления, осуществляющее перезапись содержимого запоминающих устройств для хранения данных о конфигурации посредством программы.
  29. 29. Устройство, представляющее собой интегральную схему, по п.25, дополнительно содержащее устройство управления, осуществляющее управление конфигурацией операционных блоков множества типов на основе программы.
  30. 30. Устройство, представляющее собой интегральную схему, по п.29, в котором операционные блоки множества типов включают в себя операционные блоки по меньшей мере одного типа, содержащие внутренний тракт прохождения данных, приспособленный для выполнения по меньшей мере одной команды, и средство выбора и/или изменения части внутреннего тракта прохождения данных, а устройство управления также осуществляет управление выбором и/или изменением внутреннего тракта прохождения данных.
  31. 31. Устройство, представляющее собой интегральную схему, по п.29, в котором вышеупомянутым устройством управления является универсальный процессор.
  32. 32. Устройство, представляющее собой интегральную схему, по п.18, дополнительно содержащее множество блоков обработки данных и другую группу межсоединений, обеспечивающих соединение вышеупомянутого множества блоков обработки данных между собой.
  33. 33. Устройство, представляющее собой интегральную схему, которое содержит блок обработки данных, содержащий множество операционных блоков и группу межсоединений, обеспечивающих соединение вышеупомянутого множества операционных блоков между собой, в котором вышеупомянутое множество операционных блоков упорядочено по множеству типов операционных блоков, содержащих различные тракты прохождения данных, приспособленные для специализированной обработки, а каждый операционный блок осуществляет обработку данных побайтно и/или пословно.
  34. 34. Устройство, представляющее собой интегральную схему, по п.33, в котором в состав вышеупомянутых операционных блоков множества типов входят операционные блоки различных типов, которые содержат тракты прохождения данных, приспособленные для выполнения по меньшей мере одной иной операции обработки на уровне команд.
  35. 35. Способ проектирования устройства, представляющего собой интегральную схему, которое содержит блок обработки данных, состоящий из операционных блоков множества типов, расположенных в первом направлении и во втором направлении в виде матрицы, и группу межсоединений, обеспечивающих соединение вышеупомянутых операционных блоков множества типов между собой, при этом в состав операционных блоков множества типов входят операционные блоки различных типов, которые содержат тракты прохождения данных, приспособленные для обработки по меньшей мере одной иной команды, и операционный блок типа устройства задержки, содержащий тракт прохождения данных, приспособленный для выполнения операции обработки, обеспечивающей задержку момента времени передачи данных, а вышеупомянутый способ проектирования содержит следующие этапы:
    осуществляют преобразование по меньшей мере части операций обработки, выполняемых в интегральной схеме, в промежуточное описание, написанное на языке программирования, содержащем команды, выполняемые операционными блоками соответствующих типов, входящими в состав вышеупомянутых операционных блоков множества типов;
    осуществляют генерацию исполнительной конфигурации, содержащей вышеупомянутые операционные блоки множества типов и операционный блок типа устройства задержки, при этом операционный блок типа устройства задержки служит для регулировки синхронизации, а вышеупомянутая исполнительная конфигурация способна выполнять операции обработки согласно вышеупомянутому промежуточному описанию, и осуществляют генерацию блока обработки данных, в котором вышеупомянутые операционные блоки множества типов расположены таким образом, что обеспечивают реализацию вышеупомянутой исполнительной конфигурации.
  36. 36. Способ проектирования устройства, представляющего собой интегральную схему, содержащего блок обработки данных, в котором расположены операционные блоки множества типов и в котором конфигурацию вышеупомянутых операционных блоков множества типов, предназначенных для обработки данных, изменяют путем изменения тракта прохождения данных, подаваемых в операционные
    -23005344 блоки множества типов посредством группы межсоединений, при этом в состав вышеупомянутых операционных блоков множества типов входят операционные блоки различных типов, содержащие тракты прохождения данных, приспособленные для выполнения операций обработки согласно по меньшей мере одной иной команде, и операционный блок типа устройства задержки, содержащий тракт прохождения данных, приспособленный для выполнения операции обработки, обеспечивающей задержку момента времени передачи данных, а вышеупомянутый способ проектирования содержит следующие этапы:
    осуществляют преобразование по меньшей мере части операций обработки, выполняемых в устройстве, представляющем собой интегральную схему, в промежуточное описание, написанное на языке программирования, содержащем команды, выполняемые операционными блоками соответствующих типов, входящими в состав вышеупомянутых операционных блоков множества типов;
    осуществляют генерацию исполнительной конфигурации, содержащей вышеупомянутые операционные блоки множества типов и операционный блок типа устройства задержки, при этом операция задержки служит для регулировки синхронизации, а вышеупомянутая исполнительная конфигурация способна выполнять операции обработки согласно вышеупомянутому промежуточному описанию;
    осуществляют генерацию блока обработки данных, в котором расположены вышеупомянутые операционные блоки множества типов, необходимые для вышеупомянутой исполнительной конфигурации; и осуществляют генерацию исполняемой программы для устройства, представляющего собой интегральную схему, при этом вышеупомянутая исполняемая программа содержит команду, указывающую исполнительную конфигурацию.
  37. 37. Способ проектирования по п.36, в котором операционные блоки по меньшей мере одного типа, входящие в состав вышеуказанных операционных блоков множества типов, содержат внутренний тракт прохождения данных, приспособленный для обработки по меньшей мере одной команды, и средство выбора и/или изменения части внутреннего тракта прохождения данных, и содержащий этап генерации исполнительной конфигурации, выбора и/или изменения внутреннего тракта прохождения данных, выполняемую при операции генерации исполнительной конфигурации.
  38. 38. Способ генерации исполняемой программы для устройства, представляющего собой интегральную схему, которое содержит блок обработки данных, в котором расположены операционные блоки множества типов и в котором конфигурацию операционных блоков множества типов, предназначенных для обработки данных, изменяют путем изменения маршрута прохождения данных, подаваемых в операционные блоки множества типов посредством группы межсоединений, при этом в состав вышеупомянутых операционных блоков множества типов входят операционные блоки различных типов, содержащие тракты прохождения данных, приспособленные для выполнения операций обработки согласно по меньшей мере одной иной команде, и операционный блок типа устройства задержки, содержащий тракт прохождения данных, приспособленный для выполнения операции обработки, обеспечивающей задержку момента времени передачи данных, а вышеупомянутый способ проектирования содержит следующие операции:
    осуществляют преобразование по меньшей мере части операций обработки, выполняемых в устройстве, представляющем собой интегральную схему, в промежуточное описание, написанное на языке программирования, содержащем команды, выполняемые операционными блоками соответствующих типов, входящими в состав вышеупомянутых операционных блоков множества типов;
    осуществляют генерацию исполнительной конфигурации, содержащей вышеупомянутые операционные блоки множества типов и операционный блок типа устройства задержки, при этом операционный блок типа устройства задержки служит для регулировки синхронизации, а вышеупомянутая исполнительная конфигурация способна выполнять операции обработки согласно вышеупомянутому промежуточному описанию; и осуществляют генерацию исполняемой программы, содержащей команду, указывающую исполнительную конфигурацию.
  39. 39. Способ генерации по п.38, в котором по меньшей мере один из множества операционных блоков содержит внутренний тракт прохождения данных, приспособленный для обработки по меньшей мере одной команды, и средство выбора и/или изменения части внутреннего тракта прохождения данных, и содержащий этап генерации исполнительной конфигурации, причем операция генерации исполнительной конфигурации содержит также этап выбора и/или изменения внутреннего тракта прохождения данных.
  40. 40. Устройство, представляющее собой интегральную схему, по п.33, в котором в состав вышеуказанных операционных блоков множества типов входит операционный блок типа устройства задержки, содержащий тракт прохождения данных, приспособленный для выполнения операции обработки, обеспечивающей задержку момента времени передачи данных.
  41. 41. Устройство, представляющее собой интегральную схему, по п.33, в котором каждый операционный блок содержит триггер, обеспечивающий фиксацию входных данных, и триггер, обеспечивающий фиксацию выходных данных, а управление вышеупомянутыми триггерами осуществляют единичным
    -24005344 тактовым импульсом, устанавливая количество тактовых импульсов, используемых в каждом операционном блоке.
EA200301290A 2001-05-24 2002-05-24 Интегральная схема EA005344B1 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2001155759 2001-05-24
PCT/JP2002/005047 WO2002095946A1 (fr) 2001-05-24 2002-05-24 Dispositif a circuit integre

Publications (2)

Publication Number Publication Date
EA200301290A1 EA200301290A1 (ru) 2004-06-24
EA005344B1 true EA005344B1 (ru) 2005-02-24

Family

ID=18999886

Family Applications (1)

Application Number Title Priority Date Filing Date
EA200301290A EA005344B1 (ru) 2001-05-24 2002-05-24 Интегральная схема

Country Status (9)

Country Link
US (2) US7191312B2 (ru)
EP (1) EP1391991A4 (ru)
JP (1) JP4208577B2 (ru)
KR (1) KR100952760B1 (ru)
CN (1) CN1274085C (ru)
CA (1) CA2448549A1 (ru)
EA (1) EA005344B1 (ru)
TW (1) TWI234737B (ru)
WO (1) WO2002095946A1 (ru)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8412915B2 (en) * 2001-11-30 2013-04-02 Altera Corporation Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements
US7542041B2 (en) * 2003-04-03 2009-06-02 Nxp B.V. Runtime configurable virtual video pipeline
JP2005018626A (ja) * 2003-06-27 2005-01-20 Ip Flex Kk 並列処理システムの生成方法
JP4423953B2 (ja) * 2003-07-09 2010-03-03 株式会社日立製作所 半導体集積回路
JP3887622B2 (ja) * 2003-10-17 2007-02-28 松下電器産業株式会社 データ処理装置
US20050093572A1 (en) * 2003-11-03 2005-05-05 Macronix International Co., Ltd. In-circuit configuration architecture with configuration on initialization function for embedded configurable logic array
US20050097499A1 (en) * 2003-11-03 2005-05-05 Macronix International Co., Ltd. In-circuit configuration architecture with non-volatile configuration store for embedded configurable logic array
US20050102573A1 (en) * 2003-11-03 2005-05-12 Macronix International Co., Ltd. In-circuit configuration architecture for embedded configurable logic array
US7425841B2 (en) * 2004-02-14 2008-09-16 Tabula Inc. Configurable circuits, IC's, and systems
JP4208919B2 (ja) * 2004-03-19 2009-01-14 アイピーフレックス株式会社 活性化コードの生成方法
JP4546775B2 (ja) 2004-06-30 2010-09-15 富士通株式会社 時分割多重処理可能なリコンフィギュラブル回路
WO2006019165A1 (ja) 2004-08-20 2006-02-23 Ipflex Inc. ラベルイメージの生成方法および画像処理システム
US7330050B2 (en) 2004-11-08 2008-02-12 Tabula, Inc. Storage elements for a configurable IC and method and apparatus for accessing data stored in the storage elements
JP3810419B2 (ja) * 2004-12-07 2006-08-16 松下電器産業株式会社 再構成可能な信号処理プロセッサ
JP4810090B2 (ja) 2004-12-20 2011-11-09 キヤノン株式会社 データ処理装置
JP4654731B2 (ja) * 2005-03-31 2011-03-23 富士ゼロックス株式会社 集積回路装置および信号処理装置
US7926055B2 (en) 2005-04-12 2011-04-12 Panasonic Corporation Processor capable of reconfiguring a logical circuit
US7389481B2 (en) * 2005-05-12 2008-06-17 International Business Machines Corporation Integrated circuit design utilizing array of functionally interchangeable dynamic logic cells
JP4720436B2 (ja) 2005-11-01 2011-07-13 株式会社日立製作所 リコンフィギュラブルプロセッサまたは装置
JP2007141132A (ja) * 2005-11-22 2007-06-07 Renesas Technology Corp 動的再構成可能プロセッサおよびそれを制御するプロセッサ制御プログラム
JPWO2007074583A1 (ja) * 2005-12-27 2009-06-04 パナソニック株式会社 再構成可能な演算器を持つプロセッサ
JP4838009B2 (ja) * 2006-02-22 2011-12-14 富士通セミコンダクター株式会社 リコンフィグラブル回路
JP4782591B2 (ja) * 2006-03-10 2011-09-28 富士通セミコンダクター株式会社 リコンフィグラブル回路
JP4702159B2 (ja) * 2006-04-25 2011-06-15 富士ゼロックス株式会社 集積回路装置
WO2008026731A1 (fr) * 2006-08-31 2008-03-06 Ipflex Inc. Procédé et système pour le montage d'un modèle de circuit sur un dispositif reconfigurable
JP4866194B2 (ja) 2006-09-29 2012-02-01 富士通セミコンダクター株式会社 集積回路及びリコンフィギュラブル回路の入力データ制御方法
JP5079342B2 (ja) 2007-01-22 2012-11-21 ルネサスエレクトロニクス株式会社 マルチプロセッサ装置
TW200849087A (en) * 2007-06-01 2008-12-16 Holtek Semiconductor Inc Method of accelerating the excution of repeatative commands and its micro controller
EP2201569A4 (en) 2007-09-06 2011-07-13 Tabula Inc CONFIGURATION CONTEXT SWITCH
JP5119902B2 (ja) * 2007-12-19 2013-01-16 富士通セミコンダクター株式会社 動的再構成支援プログラム、動的再構成支援方法、動的再構成回路、動的再構成支援装置および動的再構成システム
WO2009148021A1 (ja) * 2008-06-03 2009-12-10 株式会社日立製作所 パケット解析装置
EP2175374A1 (en) * 2008-10-08 2010-04-14 Panasonic Corporation Method and apparatus for scalable array configuration
DE102008037431B4 (de) * 2008-10-10 2013-06-06 Lear Corporation Gmbh Verfahren zur dynamischen Konfiguration eines Signalaufbereiters
JP5590849B2 (ja) * 2009-10-08 2014-09-17 キヤノン株式会社 複数の処理モジュールを有する並列処理回路を備えるデータ処理装置、その制御装置、およびその制御方法、プログラム
JP2011209948A (ja) * 2010-03-29 2011-10-20 Canon Inc 情報処理装置、情報処理方法、プログラム及び記憶媒体
US8996906B1 (en) 2010-05-13 2015-03-31 Tabula, Inc. Clock management block
US9148151B2 (en) 2011-07-13 2015-09-29 Altera Corporation Configurable storage elements
JP5653865B2 (ja) * 2011-08-23 2015-01-14 日本電信電話株式会社 データ処理システム
WO2014103235A1 (ja) 2012-12-25 2014-07-03 日本電気株式会社 演算装置及び演算方法
US9000801B1 (en) 2013-02-27 2015-04-07 Tabula, Inc. Implementation of related clocks
EA201591613A1 (ru) * 2013-03-01 2016-05-31 Атонарп Инк. Устройство обработки данных и способ управления им
US10833843B1 (en) * 2015-12-03 2020-11-10 United Services Automobile Association (USAA0 Managing blockchain access
FR3063855B1 (fr) * 2017-03-08 2019-04-12 Areva Np Circuit logique programmable de commande d'une installation electrique, en particulier une installation nucleaire, dispositif et procede de commande associes
AU2018248439C1 (en) * 2017-04-06 2021-09-30 Goldman Sachs & Co. LLC General-purpose parallel computing architecture
US10796048B1 (en) * 2017-06-16 2020-10-06 Synopsys, Inc. Adding delay elements to enable mapping a time division multiplexing circuit on an FPGA of a hardware emulator
CN111897580B (zh) * 2020-09-29 2021-01-12 北京清微智能科技有限公司 一种可重构阵列处理器的指令调度系统及方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0786921A (ja) * 1993-08-20 1995-03-31 Actel Corp 現場プログラム可能なディジタル信号処理アレイ集積回路
JPH0851356A (ja) * 1994-04-20 1996-02-20 Xilinx Inc プログラマブルアレイ
JPH08101761A (ja) * 1994-02-17 1996-04-16 Pilkington Germany Number 2 Ltd 再構成可能な応用特定装置
JPH08510885A (ja) * 1993-05-28 1996-11-12 リージェンツ オブ ザ ユニバーシティー オブ カリフォルニア ダイナミックロジックコアに動的に相互接続するフィールドプログラマブル・ロジックデバイス
JPH09246954A (ja) * 1995-06-07 1997-09-19 Internatl Business Mach Corp <Ibm> 改善されたメモリ割り当てを行うプログラマブル・ゲート・アレイ
WO1999000731A1 (en) * 1997-06-27 1999-01-07 Chameleon Systems, Inc. Method for compiling high level programming languages
JPH11120210A (ja) * 1997-10-21 1999-04-30 Toshiba Corp 再構成可能な回路の設計装置、及び再構成可能な回路装置
JPH11353152A (ja) * 1998-06-04 1999-12-24 Nec Corp プログラマブル機能ブロック
JP2000512097A (ja) * 1996-06-07 2000-09-12 シストリックス リミテッド 現場においてプログラム可能なプロセッサ

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4967340A (en) * 1985-06-12 1990-10-30 E-Systems, Inc. Adaptive processing system having an array of individually configurable processing components
US4943909A (en) * 1987-07-08 1990-07-24 At&T Bell Laboratories Computational origami
US5450557A (en) * 1989-11-07 1995-09-12 Loral Aerospace Corp. Single-chip self-configurable parallel processor
US6057367A (en) 1996-08-30 2000-05-02 Duke University Manipulating nitrosative stress to kill pathologic microbes, pathologic helminths and pathologically proliferating cells or to upregulate nitrosative stress defenses
US5841296A (en) * 1997-01-21 1998-11-24 Xilinx, Inc. Programmable delay element
US6122719A (en) * 1997-10-31 2000-09-19 Silicon Spice Method and apparatus for retiming in a network of multiple context processing elements
DE60025435T2 (de) * 1999-09-13 2006-09-21 Nippon Telegraph And Telephone Corp. Parallelverarbeitungsvorrichtung und -verfahren
US6633181B1 (en) * 1999-12-30 2003-10-14 Stretch, Inc. Multi-scale programmable array
US6469540B2 (en) * 2000-06-15 2002-10-22 Nec Corporation Reconfigurable device having programmable interconnect network suitable for implementing data paths
US20030088757A1 (en) * 2001-05-02 2003-05-08 Joshua Lindner Efficient high performance data operation element for use in a reconfigurable logic environment

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08510885A (ja) * 1993-05-28 1996-11-12 リージェンツ オブ ザ ユニバーシティー オブ カリフォルニア ダイナミックロジックコアに動的に相互接続するフィールドプログラマブル・ロジックデバイス
JPH0786921A (ja) * 1993-08-20 1995-03-31 Actel Corp 現場プログラム可能なディジタル信号処理アレイ集積回路
JPH08101761A (ja) * 1994-02-17 1996-04-16 Pilkington Germany Number 2 Ltd 再構成可能な応用特定装置
JPH0851356A (ja) * 1994-04-20 1996-02-20 Xilinx Inc プログラマブルアレイ
JPH09246954A (ja) * 1995-06-07 1997-09-19 Internatl Business Mach Corp <Ibm> 改善されたメモリ割り当てを行うプログラマブル・ゲート・アレイ
JP2000512097A (ja) * 1996-06-07 2000-09-12 シストリックス リミテッド 現場においてプログラム可能なプロセッサ
WO1999000731A1 (en) * 1997-06-27 1999-01-07 Chameleon Systems, Inc. Method for compiling high level programming languages
JPH11120210A (ja) * 1997-10-21 1999-04-30 Toshiba Corp 再構成可能な回路の設計装置、及び再構成可能な回路装置
JPH11353152A (ja) * 1998-06-04 1999-12-24 Nec Corp プログラマブル機能ブロック

Also Published As

Publication number Publication date
CA2448549A1 (en) 2002-11-28
WO2002095946A1 (fr) 2002-11-28
US20030184339A1 (en) 2003-10-02
CN1274085C (zh) 2006-09-06
KR20040004631A (ko) 2004-01-13
JPWO2002095946A1 (ja) 2004-09-09
US20070186078A1 (en) 2007-08-09
CN1518798A (zh) 2004-08-04
EA200301290A1 (ru) 2004-06-24
KR100952760B1 (ko) 2010-04-14
TWI234737B (en) 2005-06-21
US7191312B2 (en) 2007-03-13
US7577821B2 (en) 2009-08-18
JP4208577B2 (ja) 2009-01-14
EP1391991A4 (en) 2007-10-24
EP1391991A1 (en) 2004-02-25

Similar Documents

Publication Publication Date Title
EA005344B1 (ru) Интегральная схема
Majer et al. The Erlangen Slot Machine: A dynamically reconfigurable FPGA-based computer
US9135387B2 (en) Data processing apparatus including reconfiguarable logic circuit
US5551039A (en) Compiling a source code vector instruction by generating a subgrid loop for iteratively processing array elements by plural processing elements
JP2005182654A (ja) リコンフィギュラブル回路、リコンフィギュラブル回路を備えた処理装置、リコンフィギュラブル回路における論理回路の機能決定方法、回路生成方法および回路
US20050283743A1 (en) Method for generating hardware information
US7500043B2 (en) Array of data processing elements with variable precision interconnect
KR100711082B1 (ko) 연산 장치, 연산 장치의 제어 방법 및 컴퓨터로 판독가능한 기록 매체
JP4971998B2 (ja) 半導体集積回路、プログラム変換装置及びマッピング装置
JP4484756B2 (ja) リコンフィギュラブル回路および処理装置
JP2005044329A (ja) 半導体集積回路
Sousa et al. A reconfigurable memory architecture for system integration of coarse-grained reconfigurable arrays
CN110609804A (zh) 半导体器件和控制半导体器件的方法
Mayer-Lindenberg High-level FPGA programming through mapping process networks to FPGA resources
JP4553615B2 (ja) 処理装置
JP4562679B2 (ja) データフローグラフ生成装置
JP4208919B2 (ja) 活性化コードの生成方法
JP4562678B2 (ja) データフローグラフ再構成装置、リコンフィギュラブル回路の設定データ生成装置、及び処理装置
JP4436734B2 (ja) 処理装置
JPWO2011102362A1 (ja) 集積回路及びその使用方法
Boland et al. Reconfigurable Computing
JP2008090869A (ja) 処理装置

Legal Events

Date Code Title Description
MM4A Lapse of a eurasian patent due to non-payment of renewal fees within the time limit in the following designated state(s)

Designated state(s): AM AZ BY KZ KG MD TJ TM

MM4A Lapse of a eurasian patent due to non-payment of renewal fees within the time limit in the following designated state(s)

Designated state(s): RU