EA003406B1 - Способ иерархического кэширования конфигурационных данных потоковых процессоров и микросхем с двух- или многомерной структурой расположения программируемых ячеек (программируемых пользователем вентильных матриц (ппвм), динамически программируемых вентильных матриц (дпвм) и т.п.) - Google Patents
Способ иерархического кэширования конфигурационных данных потоковых процессоров и микросхем с двух- или многомерной структурой расположения программируемых ячеек (программируемых пользователем вентильных матриц (ппвм), динамически программируемых вентильных матриц (дпвм) и т.п.) Download PDFInfo
- Publication number
- EA003406B1 EA003406B1 EA200000879A EA200000879A EA003406B1 EA 003406 B1 EA003406 B1 EA 003406B1 EA 200000879 A EA200000879 A EA 200000879A EA 200000879 A EA200000879 A EA 200000879A EA 003406 B1 EA003406 B1 EA 003406B1
- Authority
- EA
- Eurasian Patent Office
- Prior art keywords
- command
- memory
- sequence
- commands
- configuration
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Logic Circuits (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
- Image Processing (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
- Hardware Redundancy (AREA)
Abstract
Вместо применявшейся до настоящего времени интеграции в микросхему центрального и глобального устройства, обрабатывающего все конфигурационные запросы, согласно изобретению предлагается использовать несколько иерархически расположенных (в виде древовидной структуры) активных устройств, способных взять на себя выполнение этой задачи. При этом запрос с самого нижнего уровня (листьев в древовидном представлении иерархии) передается далее на расположенный выше него следующий уровень только в том случае, если этот запрос не смог быть обработан. Указанные шаги повторяются на всех существующих уровнях до достижения самого верхнего уровня. Самый верхний уровень соединен с расположенной на более высоком уровне внутренней или внешней конфигурационной памятью, в которой содержатся все конфигурационные данные, которые когда-либо могут потребоваться для выполнения данной программы. Древовидная (иерархическая) структура конфигурационных устройств обеспечивает своего рода кэширование конфигурационных данных. Доступ к конфигурационным данным осуществляется, в основном, на локальном уровне. В самом неблагоприятном случае конфигурационные данные приходится загружать из конфигурационной памяти более высокого уровня, если соответствующих данных нет ни в одной из иерархически организованных таблиц-конфигураторов. При этом взаимоблокировка предотвращается за счет введения жестко заданной временной последовательности при загрузке конфигурационных данных и сведение этих конфигурационных данных в список. Информация о состоянии конфигурируемых элементов (КЭЛ) перед загрузкой сохраняется в виде резервной копии,
Description
Описание изобретения
Вместо практиковавшейся до настоящего времени интеграции в микросхему центрального и общего устройства, которое обрабатывало все запросы на конфигурирование, согласно изобретению используется несколько иерархически расположенных (образующих древовидную структуру) активных устройств, способных взять на себя выполнение этой задачи.
При этом запрос с самого нижнего уровня (от листьев иерархического дерева) перенаправляется дальше на расположенный выше него следующий уровень только в том случае, если этот запрос не смог быть обработан. Указанные шаги повторяются на всех существующих уровнях до достижения самого верхнего уровня.
Самый верхний уровень связан с расположенной на более высоком уровне внутренней или внешней конфигурационной памятью, в которой содержатся все конфигурационные данные, которые когда-либо требовались для выполнения данной программы.
Древовидная структура конфигурационных устройств обеспечивает использование своего рода кэширование конфигурационных данных. Доступ к программам конфигурирования осуществляется, в основном, на локальном уровне. В самом неблагоприятном случае программу конфигурирования приходится загружать из конфигурационной памяти более высокого уровня, если соответствующих данных нет ни в одной из иерархически организованных ТК. Взаимоблокировку предотвращает введение жесткой временной последовательности при загрузке конфигураций и сведение этих конфигураций в таблицу/список. Информация о состоянии ячеек (КЭЛ) перед загрузкой сохраняется в виде резервной копии, благодаря чему она остается неизменной в течение обработки всего списка конфигураций.
Основы таблицы-конфигуратора
Таблица-конфигуратор (ТК) представляет собой активное устройство, срабатывающее на синхронизирующие сигналы, т. е. на запускающие сигналы или так называемые триггерные сигналы. Триггерные сигналы формируются двух- или многомерной матрицей, выполненной из электронных модулей, обычно арифметических или логических устройств, генераторов адресов, арифметическо-логических устройств и т.п., называемых ниже конфигурируемыми элементами или ячейками (КЭЛ). При появлении триггерного сигнала в ТК инициируется выполнение определенной операции. Задача ТК заключается при этом в том, чтобы управлять несколькими КЭЛ и определять их арифметические и/или логические операции. В частности, КЭЛ необходимо конфигурировать и реконфигурировать. Эту задачу берет на себя ТК, управляющая несколькими возможными программами конфигурирования (ПК), каждая из которых, в свою очередь, содержит множество отдельных конфигурационных слов (КС), и конфигурирующая несколько КЭЛ на основании пусковых условий с помощью одной или нескольких программ конфигурирования. При этом в КЭЛ поступает в каждом случае одно или несколько конфигурационных слов, содержащих адрес конфигурируемого КЭЛ. ПК должна быть в этом случае полностью и без искажений отображена на множество КЭЛ, причем по несколько КЭЛ могут быть объединены в группы, каждая из которых конфигурируется различными, но выполняемыми в полном объеме программами конфигурирования. При этом все КЭЛ одной группы закоммутированы таким образом, чтобы после установления необходимости в реконфигурировании все сгруппированные КЭЛ получили сообщение в виде общего сигнала реконфигурирования (Реконфиг) о том, что каждый КЭЛ должен закончить обработку данных и перейти в состояние, допускающее реконфигурирование.
Основы исключающего взаимоблокировку реконфигурирования
У реконфигурируемых в процессе работы систем возникает проблема, состоящая в том, что система может перейти в состояние, при котором две части системы будут соответственно ожидать ответа друг от друга, в результате чего возникнет ситуация взаимоблокировки.
Этой проблемы можно было бы избежать, либо загружая в систему новую конфигурацию целиком, либо вообще не загружая ее или используя своего рода метод блокировки по времени (тайм-аут).
В результате, возникает ряд трудностей (необходимое место, время прогона и т.д.) и проблем, таких, например, как действия в случае невозможности загрузки конфигурации, управление последовательностью загрузки конфигураций, потеря производительности, поскольку не учитываются конфигурации, которые могли бы при известных обстоятельствах быть загружены в КЭЛ.
Описанный ниже способ позволяет решить указанные проблемы. При этом за отправную точку взята известная система с потоковым процессором.
КЭЛ посылает триггерный сигнал в ТК. Эта ТК устанавливает источник триггерного сигнала и выбирает с помощью просмотровой таблицы загружаемую конфигурацию (ПК). Поступающие триггерные сигналы блокируются и никакие дальнейшие триггерные сигналы до полной отработки текущей программы конфигурирования не принимаются. Программа конфигурирования включает несколько команд, передаваемых в определенное количество КЭЛ. Однако в конфигурируемой во время прогона системе не гарантируется выполнение каждой конфигурационной команды (КС). Причина сбоя может состоять, например, в том, что адресуемый конфигурируемый элемент (КЭЛ) еще не закончил выполнение своей задачи и поэтому не может принимать никаких новых конфигурационных данных. Во избежание снижения производительности все те конфигурационные команды, которые не могут быть выполнены [поскольку соответствующие КЭЛ не находились в состоянии, допускающем реконфигурирование, и отклонили запрос на конфигурирование (сигнал НЕПРИНЯТИЕ)], записываются в соответствии с очередью первым пришел - первым обслужен (ΕΙΕΟ) за последней конфигурационной командой, находящейся в специальной памяти (типа ΕΙΕΜΟ, более подробно описана ниже). После этого тем же путем выполняется следующая конфигурационная команда. Этот процесс повторяется до тех пор, пока не будет достигнут конец соответствующей программы конфигурирования.
После этого ТК снова переходит в то состояние, в котором она может принимать триггерные сигналы, с целью при необходимости продолжить загрузку конфигураций. В этом состоянии управляемая таймером ТК через регулярные промежутки времени обрабатывает содержимое памяти типа ΕΙΕΜΟ.
Установление приоритетов при загрузке конфигураций происходит благодаря тому, что ТК перед непосредственной обработкой загружаемой конфигурации вначале осуществляет прогон содержимого памяти типа ΕΙΕΜΟ. Структура этой памяти типа ΕΙΕΜΟ, аналогичная структуре типа ΕΙΕΟ, позволяет автоматически присваивать тем конфигурационным командам, которые не смогли быть выполнены во время запросов, поступивших с предыдущими триггерными сигналами, более высокий приоритет по сравнению с вновь поступившими отрабатываемыми конфигурационными командами (КС). При обработке данных памяти типа ΕΙΕΜΟ перед или во время отправки конфигурационной команды происходит проверка каждого конфигурируемого элемента, которому адресована конфигурационная команда, находится ли он в допускающем реконфигурирование состоянии. При нахождении в таком до
Ί пускающем реконфигурирование состоянии (что подтверждается сигналом ПРИНЯТИЕ) происходит передача данных и их удаление из памяти типа НЕМО. В не допускающем реконфигурирование состоянии (сигнал НЕПРИНЯТИЕ) данные остаются в памяти типа НЕМО и обрабатываются на следующем цикле прогона. ТК переходит к обработке следующего входного сообщения в памяти типа НЕМО. Этот процесс повторяется до тех пор, пока не будет обработано все содержимое памяти типа Е1ЬМО. После этого происходит отработка собственно программы конфигурирования, запущенной по поступившему триггерному сигналу. При этом структура памяти типа НЕМО соответствует структуре очереди типа Е1ЕО, т.е. сначала обрабатываются входные сообщения (записи), поступившие самыми первыми. С целью обработки содержимого памяти типа НЕМО и при отсутствии загрузки новых программ конфигурирования предусмотрен управляемый таймером прогон содержимого памяти типа НЕМО через регулярные промежутки времени.
Остальные, не задействованные конфигурируемые элементы (КЭЛ) продолжают параллельно работать во время этой фазы и не подвергаются при этом никакому функциональному воздействию. В результате, может возникнуть ситуация, при которой, когда ТК обрабатывает содержимое памяти типа НЕМО, один или несколько конфигурируемых элементов (КЭЛ) перейдут в состояние, допускающее реконфигурирование. Поскольку ТК при обработке данных может при этом находиться в любом месте памяти типа НЕМО, возможно возникновение следующей ситуации: ТК пытается отработать первую команду, которая адресована конфигурируемому элементу (КЭЛ), который не находится в состоянии, допускающем реконфигурирование. Таким образом, ТК переходит к следующей конфигурационной команде (КС). В это же время один или несколько конфигурируемых элементов переходят в допускающее реконфигурирование состояние, в том числе и тот конфигурируемый элемент, который мог бы быть указан в первой конфигурационной команде. ТК обрабатывает вторую конфигурационную команду (КС), которая использует тот же конфигурируемый элемент (КЭЛ), что и первая конфигурационная команда, но которая поступила от другой программы конфигурирования. К этому моменту времени указанный конфигурируемый элемент (КЭЛ) находится в допускающем реконфигурирование состоянии и команда может быть успешно выполнена.
В результате, более невозможно обеспечить фактическую приоритетность загрузки той конфигурации, которая должна была быть загружена первой. В данном случае могут существовать две частично готовые конфигурации, каждой из которых для полной загрузки соот ветственно требуются конфигурируемые элементы, занятые другой конфигурацией. При этом наступает ситуация взаимоблокировки (тупиковая ситуация), наглядно показанная на фиг. 18, где требуется настроить конфигурацию А и конфигурацию Б. ТК уже загрузила заштрихованную часть конфигурации А и конфигурации Б. Конфигурации А для завершения ее загрузки дополнительно необходима еще показанная светлой двойной штриховкой область конфигурации Б, а конфигурации Б для завершения ее загрузки необходима еще показанная темной двойной штриховкой область конфигурации А. Поскольку обе конфигурации загружены еще не полностью, а тем самым не могут и работать, ни для одной из обеих конфигураций не наступает того состояния завершения, при котором одну из обеих этих конфигураций можно было бы удалить. Обе конфигурации ждут освобождения дополнительно необходимых им конфигурируемых элементов.
В предлагаемом способе взаимоблокировка предотвращается благодаря тому, что ТК перед обработкой содержимого памяти типа Е1ЬМО определяет состояния всех конфигурируемых элементов и после этого до завершения процесса не допускает больше никаких изменений, соответственно игнорирует возникающие изменения. Иными словами, либо сохраняются состояния всех конфигурируемых элементов, существовавшие до обработки содержимого памяти типа Е1ЬМО, либо предотвращается изменение состояний во время обработки содержимого памяти типа Е1ЬМО. С технической точки зрения для этой цели можно использовать в каждом конфигурируемом элементе регистр, в котором сохраняется информация о состоянии, предшествовавшем обработке содержимого памяти типа Е1ЬМО. ТК работает только на основе зарегистрированных состояний, а не на основе текущих состояний конфигурируемых элементов. Тем самым создаются предпосылки к тому, чтобы каждая подлежащая обработке команда (КС) поступала в конфигурируемые элементы (КЭЛ), находящиеся в одинаковом состоянии. Данный шаг не исключает перехода одного или нескольких конфигурируемых элементов во время обработки содержимого памяти типа Е1ЬМО в допускающее реконфигурирование состояние. Просто ТК выявит это произошедшее во время обработки данных изменение не сразу, а лишь с началом следующего цикла/прогона.
Конфигурационные последовательности
Для конфигурирования определенных алгоритмов обязательно необходимым условием является точное соблюдение той последовательности, в которой происходит запись конфигурационных слов (КС) в КЭЛ. Например, перед подключением КЭЛ к шинной системе целесообразно вначале соответствующим образом сконфигурировать эту шинную систему, чтобы
КЭЛ не был подключен к шине, которая используется другой программой. Иными словами, КЭЛ конфигурируют лишь после того, как предварительно были сконфигурированы соответствующие шинные соединения.
В предлагаемом в изобретении способе соблюдение жесткой процедуры достигается следующим образом.
Организованные в виде конфигурационных слов (КС) команды, выполнение которых имеет решающее значение для использования последующих КС при конфигурировании, маркируются особым образом (и ниже обозначены как КСР). Если процесс конфигурирования при использовании подобного КСР дает сбой, то все последующие КС соответствующих программ конфигурирования (ПК) записываются в память типа НЬМО и в этом цикле не выполняются. Равным образом и при прогоне содержимого памяти типа ИЕМО не выполняются в текущем цикле никакие КС, которые расположены последовательно за тем КСР, в процессе отработки которого произошел сбой.
Метод кэширования
ТК-структура имеет иерархическую организацию, т.е. в одной микросхеме существует несколько уровней ТК. В предпочтительном варианте их расположение соответствует древовидной структуре (дерево ТК). При этом с корневой ТК связана внешняя конфигурационная память (ВКП), в которой содержатся все программы конфигурирования (ПК), а с листьями дерева связаны конфигурируемые элементы (КЭЛ), вызывающие отдельные программы конфигурирования. С ТК средних уровней связаны соответствующие конфигурируемые элементы, которые находятся с ними на одном иерархическом уровне. С каждой ТК связана своя локальная внутренняя память. Данные из этой памяти частично стираются либо при отсутствии места для сохранения вновь поступивших программ конфигурирования, либо по определенному запросу в виде специальной ТКкоманды (команды удаления КЕМОУЕ). При этом удаление ПК происходит попрограммно на основе определенной стратегии, в результате чего, в крайнем случае, удаляются только те ПК, которые больше не требуются, или программы, явно указанные в команде удаления КЕМОУЕ. Кроме того, ПК удаляются по отдельности ровно в таком количестве, чтобы освободить в памяти столько места, сколько необходимо для записи в эту память вновь загружаемых ПК. Благодаря этому в памяти остается максимально возможное количество ПК для оптимизации эффекта кэширования.
Преимущество этого заключается в том, что любая ТК, подчиненная какой-либо таблице-конфигуратору ТКх, т. е. находящейся выше нее на дереве таблиц-конфигураторов, запрашивает хранящуюся в таблице ТКх программу конфигурирования не от внешней конфигураци онной памяти (ВКП), а получает ее непосредственно из таблицы-конфигуратора ТКх. В результате, образуется кэш-структура, охватывающая несколько уровней. Сложность передачи данных по дереву ТК и, прежде всего, необходимая ширина полосы пропускания ВКП существенно уменьшаются.
Иными словами, в каждой ТК временно сохраняются программы конфигурирования таблицы-конфигуратора, находящейся на следующем, более низком уровне. Это означает, что в ТК более низких уровней необходимые ПК поступают непосредственно из таблицконфигураторов, находящихся на следующем, более высоком относительно них уровне, и нет необходимости обращаться к ВКП. Только в том случае, когда требуемая ПК еще отсутствует в одной из ТК более высоких уровней, эту ПК приходится загружать, обращаясь к ВКП. Тем самым обеспечивается наиболее эффективная иерархическая кэш-структура для ПК.
На основе этой структуры можно разрабатывать также различные подходы к удалению данных, которые, однако, должны определяться эмпирическим путем в зависимости от их применения. Некоторыми из таких возможностей являются удаление самых старых записей, удаление наименьших записей, удаление наибольших записей, удаление наиболее редко вызываемых записей.
Основа ТК-иерархий
Для достижения кэш-эффекта таблицыконфигураторы объединяют в иерархию с древовидной структурой. Отдельные узлы (ТК) соединены шинной системой (меж-ТК-шина, т. е. шина, обеспечивающая взаимодействие между отдельными ТК), которой каждый из верхних узлов (ТК) соединен с несколькими нижними узлами (ТК). При этом нижние узлы (ТК) запрашивают данные у верхних узлов (ТК), после чего верхние узлы посылают данные нижним узлам. Нижние узлы обмениваются друг с другом информацией о состоянии с использованием для этой цели сетей между узлами более высоких уровней, которые должны соответствующим образом дешифровать адреса.
Иерархия таблиц-конфигураторов и адресация
Иерархии таблиц-конфигураторов организованы таким образом, что для адресации отдельных ТК можно использовать двоичное дерево. Это означает, что младшим двоичным разрядом адреса обозначаются отдельные листья дерева, а каждый последующий двоичный разряд адреса используется соответственно для выбора следующего, более высокого иерархического уровня. В результате, каждая ТК имеет однозначно определенный адрес.
В приведенной ниже таблице показано распределение отдельных разрядов адреса по соответствующим уровням.
3 | 2 | 1 | 0 | Разрядность адресов | |
- | - | - | * | уровень 0: листья | 1 |
- | - | * | * | промежуточный уровень 1 | 2 |
- | * | * | * | промежуточный уровень 2 | 3 |
* | * | * | * | промежуточный уровень 3 | 4 |
Примечание:
* означает используемые разряды адреса, означает неиспользуемые разряды адреса.
При необходимости назначить какой-либо группе таблиц-конфигураторов таблицу-конфигуратор более высокого уровня несколько разрядов адреса этой группы соответственно объединяют вместе.
В приведенной ниже таблице показано распределение отдельных разрядов адреса по соответствующим уровням, при этом на уровне 0 находится группа из 8 ТК (разряд адреса 2...0).
5 | 4 | 3 | 2...0 | Разрядность адресов | |
- | - | - | * | уровень 0: ветви | 3 |
- | - | * | * | промежуточный уровень 1 | 4 |
- | * | * | * | промежуточный уровень 2 | 5 |
* | * | * | * | промежуточный уровень 3 | 6 |
Примечание:
* означает используемые разряды адреса, - означает неиспользуемые разряды адреса.
Двоичное дерево может иметь одно- и двухмерную структуру, при этом для каждого измерения строится свое двоичное дерево.
При адресации определенной ТК (АДРЕСАТА) инициирующая ТК (ИНИЦИАТОР) указывает либо точный целевой адрес, либо выполняет относительную адресацию АДРЕСАТА.
Обработка относительного адреса происходит следующим образом.
Пример поля относительного адреса при двухмерной адресации:............
15 | 14 | 131121111101987 | б 151413121110 |
ТК более высокого уровня | Широковещание | Адрес +/- Υ | Адрес +/- X |
Бит 15 задают при необходимости выбора ТК следующего более высокого иерархического уровня. Бит 14 означает широковещательный режим, т. е. режим, при котором выбираются все ТК. Адреса Х/Υ указывают адрес АДРЕСАТА, исходя из адреса ИНИЦИАТОРА.
Адреса представляют собой целые числа с определенным знаком (+/-). АДРЕСАТ определяется путем прибавления адресов Х/Υ поля адреса к фактическому разряду адреса. Адреса каждого уровня имеют определенную длину (разрядность адресов). Сумматоры соответствуют этой разрядности.
Положительное или отрицательное переполнение при суммировании означает, что адресуемая ТК не расположена на следующем за текущим узлом нижнем уровне, и поэтому адресный запрос передается далее в ТК, находящуюся на более высоком уровне (в узел следующего, более высокого уровня).
Отсутствие положительного или отрицательного переполнения указывает на то, что АДРЕСАТ находится на следующем под данным узлом уровне. По вычисленному на текущем уровне разряду адреса (см. таблицы) выбирается расположенная непосредственно под данным узлом ТК. Из последней в каждом случае на основании соответственно вычисленного разряда адреса выбирается ТК (узел) следующего, более низкого уровня.
Назначение приоритетов доступа в иерархиях таблиц-конфигураторов
Доступом к меж-ТК-шине управляет арбитр. При этом все узлы нижнего уровня имеют одинаковый приоритет. Узел верхнего уровня обладает более высоким приоритетом. Благодаря этому запросы на доступ, передаваемые узлом более высокого уровня узлам более низких уровней или уже прошедшие по нескольким уровням, считая от ИНИЦИАТОРА, имеют более высокий приоритет по сравнению с другими запросами на доступ.
Основная структура таблицы-конфигуратора
Ниже представлена обзорная информация по ТК, которая дает общее представление об отдельных блоках/модулях. Впоследствии эти блоки/модули рассмотрены более подробно.
Ядром ТК является управляющий конечный автомат (КАТК), который управляет выполнением всех операций по отработке программ конфигурирования (ПК). КАТК подчинены так называемый сборщик мусора (СМ), который управляет удалением ПК из памяти (ТК-ЗУ), память типа Е1ЬМО, которая выполняет функции по управлению еще подлежащими отработке КС, и загрузочный конечный автомат (ЗКА), который управляет загрузкой ПК.
Память (ТК-ЗУ) выполнена в виде обычной допускающей запись/считывание оперативной памяти, которая может быть реализована на базе всех технически возможных запоминающих устройств и которая используется для локального хранения программ конфигурирования для соответствующей ТК и ТК нижних уровней. В особых случаях эта память (ТК-ЗУ) может быть выполнена также в виде постоянного запоминающего устройства (ПЗУ), стираемого программируемого постоянного запоминающего устройства (СНИЗУ), электрически стираемого программируемого постоянного запоминающего устройства (ЭСППЗУ), флэш-памяти и т. п., что позволяет снабдить микросхему функцией хранения, аналогичной специализированной ИС или программируемому логическому устройству (см. уровень техники).
Для генерации ТК-ЗУ-адресов используются четыре следующих указателя, которые выполнены в виде загружаемых счетчиков:
1. указатель свободной ячейки памяти (УСП), который указывает на первую свободную ячейку в памяти, расположенную за последней ПК в ТК-ЗУ;
2. указатель мусора (УМУ), который указывает сборщику мусора на запись, подлежащую удалению из ТК-ЗУ;
3. указатель перемещения (УНЕ), который указывает на то место в ТК-ЗУ, откуда достоверное, не подлежащее удалению КС, т.е. запись соответствующей программы конфигурирования, необходимо скопировать/переместить в место записи, определяемое указателем мусора;
4. указатель программы (УПР), который указывает на КС, выполняемое в текущей момент памятью ТК-ЗУ.
Интерфейс вывода передает КС далее соответствующим КЭЛ. КЭЛ, если они находятся в допускающем реконфигурирование состоянии, квитируют (сигнал ПРИНЯТИЕ) получение КС. Неквитированное КС (сигнал НЕПРИНЯТИЕ) временно сохраняется в памяти (типа ИЕМО), которая по своей структуре аналогична памяти типа Е1ЕО, с тем, чтобы позже без использования указателя программы быть записанным в тот КЭЛ, куда оно было адресовано.
Запрос на выполнение ПК поступает в КАТК в виде триггерных сигналов. Эти триггерные сигналы проходят через маску, которая представляет собой фильтр, отфильтровывающий (отбраковывающий) нежелательные триггерные сигналы. Маска может быть выполнена согласно уровню техники в виде вентиля И, логически объединяющего триггерный сигнал с разрешающим сигналом путем выполнения над ними логической операции И. Работающий по принципу приоритетности арбитр кругового обслуживания (АРБ-ОЦКО) преобразует триггерные сигналы в двоичные сигналы. Такой работающий по принципу приоритетности арбитр кругового обслуживания объединяет в себе преимущество принципа разрешения конфликтов на основе равноправия или кругового, соответственно карусельного обслуживания с распознаванием следующего разрешающего сигнала за один такт, т.е. с преимуществом арбитра, разрешающего конфликты на основе приоритетов.
Прошедшие через маску триггерные сигналы поступают в виде адреса в первую просмотровую таблицу (ПТ1), т. е. в запоминающее устройство, которое присваивает поступающему в виде адреса триггерному сигналу идентификатор (ГО) соответствующей ПК и выдает его на информационные шины.
Во второй просмотровой таблице (ПТ2) идентификатор (ГО) программы конфигурирования присваивается адресу ячейки памяти программы конфигурирования в памяти ТК-ЗУ. Вторая просмотровая таблица используется не только для распределения триггерных сигналов; более того, команды, использующие идентификатор в качестве параметра, также используют
ПТ2 для присвоения, соответственно назначения адресов.
Информация о распределении триггерных сигналов по соответствующим идентификаторам заносится по описанной ниже команде ссылки ΚΕΕΕΚΕΝΟΕ в ПТ1. Управление просмотровой таблицей ПТ2, т.е. распределение идентификаторов по адресам в памяти ТК-ЗУ, происходит автоматически с помощью КАТК и СМ.
Для пояснения принципа, на основе которого работает ТК, ниже приведен возможный список основных команд:
1. Команда начала ΒΕ6ΙΝ <ГО>.
Команда начала ΒΕ6ΙΝ <ГО> указывает на начало ПК. Параметр <ГО> указывает на однозначно определенный идентификатор программы конфигурирования.
2. Команда останова 8ТОР.
Команда останова 8ТОР указывает на конец ПК. В этом месте таблица-конфигуратор (ТК) заканчивает выполнение программы конфигурирования. Сборщик мусора (СМ) заканчивает удаление записей этой программы конфигурирования.
3. Команда выполнения ΕΧΕϋυΤΕ <ГО>.
По этой команде осуществляется переход к началу (ΒΕ6ΙΝ <ГО>) соответствующей программы конфигурирования. Если эта программа отсутствует в памяти ТК, она запрашивается в таблице-конфигураторе более высокого уровня, соответственно загружается из общей памяти.
4. Команда загрузки ЬОАО <ГО>.
По этой команде запрашивается идентификатор <ГО> программы конфигурирования ПК в ТК следующего более высокого уровня.
5. Команда удаления ЯВМОУЕ <ГО>.
По этой команде осуществляется вызов сборщика мусора (СМ) для удаления из памяти ТК программы конфигурирования с соответствующим идентификатором, начиная с команды ΒΕ6ΙΝ <ГО> и заканчивая командой 8ТОР, и для перемещения следующих программ конфигурирования настолько, чтобы в памяти не возникал пропуск в результате удаления программы конфигурирования.
6. Команда помещения в стек ΡυδΗ 1ТЖС1ГО· <ΑΌΌΚΕ88> <ΌΑΤΑ> <ΕΧΙΤ>.
По этой команде осуществляется запись конфигурационных данных <ΌΑΤΑ> в адресный регистр <ΑΌΌΚΕ88>. В принудительном режиме <ΡΌΡί.ΈΟ> запись данных производится даже в том случае, когда в соответствующем регистре-адресате не установлен флаг состояния готовности к реконфигурированию. Сигнал выхода <ЕХГГ> используется для указания на то, что речь идет о КСР, прерывающем в случае поступления сигнала НЕПРИНЯТИЕ дальнейшее выполнение последующих КСР.
7. Команда установки маски МА8К <8Р> <ΤΚ166ΕΚ>.
По этой команде маска для триггерных сигналов либо устанавливается при поступлении триггерного сигнала <ТК.ЮОЕК>, либо отменяется при поступлении триггерного сигнала <ТК.ЮОЕК> в зависимости от параметра <8К> (от англ. 8с1/Кскс1. Установка/Сброс).
8. Команда ожидания \УЛ1Т <υΝΜΑ8ΚΕΌ> <ТК.ЮОЕК>.
По этой команде временно приостанавливается выполнение программы конфигурирования с переходом в режим ожидания триггерного сигнала <ТШ06ЕК>. При задании параметра без маски <υΝΜΑ8ΚΕΌ> срабатывание на ожидаемый триггерный сигнал происходит независимо от состояния маски триггерных сигналов.
9. Команда триггерного сигнала ТК.ЮОЕК. <ТКЮ6ЕК> <СТ#>.
По этой команде двоичное значение триггерного сигнала передается в адресуемую с помощью параметра СТ# (таблицаконфигуратор №) таблицу-конфигуратор более высокого уровня.
10. Команда установления связи СЕТВи8/ ОЕТСТ8.
По этой команде устанавливается связь с меж-ТК-шиной.
11. Команда прекращения связи БОО8ЕВи8/ЬОО8ЕСТ8.
По этой команде прекращается связь с меж-ТК-шиной.
12. Команда ссылки КЕЕЕКЕЖ.’Е <ТВЮСЕК> <ΙΌ>.
По этой команде в просмотровую таблицу ПТ1 по адресу триггерного сигнала <ТК.ЮОЕК> записывается значение идентификатора <Ш>, за счет чего триггерному сигналу ставится в соответствие определенная ПК.
Команды выполнения (ЕХЕСиТЕ), загрузки (ЬОЛО), удаления (КЕМОУЕ), помещения в стек (ΡυδΗ), установки маски (ΜΑ8Κ), ожидания (\УА1Т). триггерного сигнала (ТВЮОЕК), ссылки (КΕЕΕКΕNСΕ) являются допустимыми только в пределах операторных скобок ВЕС1№..8ТОР. Вне этих операторных скобок указанные команды не выполняются.
Структура программы конфигурирования (ПК) выглядит следующим образом:
ВЕОШ <ΙΌ>;
допустимые команды
8ТОР;
Косвенная адресация (использование ссылок)
Используемый в таблицах-конфигураторах принцип кэширования позволяет временно сохранять какую-либо программу конфигурирования в одной таблице-конфигураторе. при этом указанная программа конфигурирования используется несколькими различными таблицами-конфигураторами более низкого уровня или конфигурируемыми элементами.
При обращении устройств/модулей более низких уровней к имеющемуся у микросхемы интерфейсу внешнего устройства (например, запоминающего устройства с произвольной выборкой (ЗУПВ), периферийного устройства) возникает необходимость хранить в памяти различные адреса или разделы информации, относящейся к этому интерфейсу внешнего устройства. В результате, отдельные необходимые программы конфигурирования стали бы принципиально отличаться по своему содержанию. При этом кэширование стало бы невозможным.
Решить эту проблему позволяет использование косвенных ссылок. С этой целью применяют специальные программы конфигурирования (ниже обозначаемые как ПККА), которые содержат и устанавливают необходимые внешние параметры. При необходимости по триггерным сигналам вызываются другие различные ПК, расположенные на различных иерархических уровнях. Лишь программы ПККА не подлежат кэшированию, тогда как вызываемые ПК являются вполне унифицированными, и поэтому их можно кэшировать. Размер ПККА целесообразно сократить до абсолютного минимума, а именно оставить в них только внешние и различающиеся параметры и предусмотреть возможность вызова единой ПК.
Программа конфигурирования с косвенной адресацией (ПККА) имеет следующую структуру:
ВЕОШ <ΙΌ>;
ххх; допустимые команды, при этом они должны управлять только периферийными устройствами
ТК1ССЕК <ΙΌ>; запросы на запуск, окончание или загрузку процессов, выполняемых с использованием периферийных устройств
ООТО <ΙΌ>; переход к единой ПК
8ТОР;
Особые случаи
1. Команда ожидания самозагрузки ХУАкГЕСЖВООТ.
Эта команда допустима только для первого адреса ТК-ЗУ. Во время самозагрузки в ТК-ЗУ вначале полностью записывается используемая для самозагрузки программа конфигурирования Загр-ПК, но без начальной последовательности самозагрузки этой программы ВЕОШ <0>. На этой позиции (по адресу 1) расположена команда ожидания самозагрузки \УЛ[Т_ГОК_ВООТ. которая автоматически устанавливается по команде сброса КЕ8ЕТ. Лишь после того, как Загр-ПК будет полностью записана в ТК-ЗУ, команда ХУАИ-ЕОК-ВООТ перезаписывается командой ВЕОШ <0>, и КАТК начинает выполнение программы Загр-ПК.
Команда ^АГГ_ЕОК_ВООТ не должна появляться в какой-либо машинной программе.
2. Команда самозагрузки ВООТ <СТ-ГО>
Команда самозагрузки ВООТ <СТ-ГО> определяет, в какую ТК (англ. СТ от Сопйдигайоп ТаЫе) должна быть записана следующая программа Загр-ПК. После команды ВООТ <СТГО> не следует начальной команды ΒΕΟΙΝ, и программу Загр-ПК завершает не команда останова 8ТОР, а следующая команда самозагрузки ВООТ <СТ-ГО>. Команда останова 8ТОР заканчивает процесс самозагрузки.
Команда ВООТ <СТ-ГО> не должна появляться в какой-либо машинной программе.
Процесс самозагрузки
После команды сброса РЕ8ЕТ таблицаконфигуратор самого верхнего иерархического уровня (корневая ТК) загружает программу Загр-ПК в ТК нижних иерархических уровней. Для этого предусмотрен переход к определенному адресу самозагрузки во внешней конфигурационной памяти (ВКП), которая связана с корневой ТК. Корневая ТК осуществляет этот переход с достижением последовательности самозагрузки, имеющей следующую структуру:
ВООТ <СТ-Ю0>; (ΌΜΜΑΝΙ λ (ΌΜΜΑΝΙ); ...
ВООТ <СТ-Ю 1>; (ΌΜΜΑΝΙ); (ΌΜΜΑΝΙ); ... ВООТ <СТ-Юп>'; С ΌΜΜΑΝΙ); С ΌΜΜΑΝΙ); . 8ТОР;
В процессе самозагрузки в ТК-ЗУ, начиная с адреса 2 определяемой параметром <СТ-ГО> таблицы-конфигуратора, сначала полностью записывается программа Загр-ПК. Начальная последовательность этой программы Загр-ПК (ВЕСА <0>) по адресу 1 не записывается. На этой позиции расположена команда ожидания самозагрузки \УА1Т_ГОР_ВООТ. которая устанавливается автоматически по команде сброса РЕ8ЕТ. Лишь после записи программы Загр-ПК в ТК-ЗУ в полном объеме и по достижении корневой таблицей-конфигуратором следующей команды самозагрузки ВООТ <СТ-ГО> команда останова 8ТОР будет записана в ТК-ЗУ в конец программы Загр-ПК, а команда \УА1Т_ГОР_ВООТ будет перезаписана командой ВЕСА <0>. После этого КАТК начинает выполнять программу Загр-ПК.
Загрузка программы конфигурирования
Помимо программы Загр-ПК, существуют три следующих основных механизма вызова программы конфигурирования:
1. выполнение команды загрузки идентификатора ЬОАЭ <ГО> управляющим конечным автоматом (КАТК);
2. выполнение команды ЕХЕСИТЕ <ΙΌ> управляющим конечным автоматом в случае, когда программа конфигурирования с соответствующим идентификатором отсутствует в ТКЗУ;
3. появление триггерного сигнала, который с помощью просмотровой таблицы ПТ1 преобразуется (транслируется) в идентификатор <ГО>, соответствующая ПК которого отсутствует в ТК-ЗУ.
Процесс во всех трех случаях выполняется следующим образом.
Идентификатор затребованной ПК поступает в просмотровую таблицу ПТ2 в виде адреса. Просмотровая таблица ПТ2 проверяет наличие достоверного адреса в ТК-ЗУ. В случае его отсутствия, т.е. если в таблице ПТ2 значение идентификатора <ΙΌ> равно 0, то в КАТК отсылается команда загрузки идентификатора ЬОАЭ <ГО>.
После этого КАТК запрашивает соответствующую идентификатору <ГО> программу конфигурирования в ТК более высокого иерархического уровня. Этот запрос поступает в ТК более высокого уровня в виде триггерного сигнала, который соответствующим образом обрабатывается ею.
Указанная ТК более высокого уровня передает запрошенную ПК в пославшую запрос ТК. Данные, начиная с адреса, на который указывает указатель свободной ячейки памяти (УСП), записываются в ТК-ЗУ, при этом значение указателя УСП увеличивается на единицу после каждого обращения для выполнения операции записи.
По достижении указателем УСП верхней границы ТК-ЗУ вызывается сборщик мусора (СМ) для удаления из ТК-ЗУ самой нижней ПК и для уплотнения информации в ТК-ЗУ. УСП при этом обновляется. Этот процесс продолжается до тех пор, пока загружаемая ПК не будет полностью загружена в ТК-ЗУ.
Таблица переходов в конфигурационной памяти В связанной с корневой ТК конфигурационной памяти содержатся все программы конфигурирования, которые необходимо загружать для соответствующего приложения (прикладной программы). Во внешней конфигурационной памяти (ВКП) по определенному адресу самозагрузки находится оператор перехода к ПК самозагрузки. Еще в одной определенной области памяти (ПТ-ВКП), произвольно выбираемой, но фиксированной в пределах приложения длины, находятся операторы перехода к отдельным ПК. При этом идентификатор <ГО> соответствующей программы конфигурирования используется в качестве адреса во внешней конфигурационной памяти, в котором записан начальный адрес соответствующей программы конфигурирования, что позволяет косвенно адресовать программы конфигурирования:
ΙΌ--НТ-ВКН-ПК
Изменение ПК в конфигурационной памяти
Ниже рассмотрен случай, когда необходимо изменить программу ПК с идентификатором ГО <А>. Сначала хост-машина записывает новую ПК для идентификатора ГО <А> в свободное место в ВКП. Идентификатор ГО <А> вместе с новым адресом ПК в конфигурационной памяти записывается устройством более высокого уровня (хост-машиной) в предусмотренный для этого регистр корневой ТК. Корневая ТК посылает всем ТК более низких уровней команду удаления КЕМОУЕ <А>. После этого все ТК по достижении команды останова 8ТОР или во время нерабочих (холостых) циклов, т.е. когда не выполняется ни одна ПК, относящаяся к этому идентификатору программа конфигурирования удаляется из ТК-ЗУ и в просмотровую таблицу ПТ2 для адреса <А> вносится маркер нет_адреса, означающий, что для идентификатора ΙΌ <А> в просмотровой таблице ПТ2 нет достоверной адресной записи. При следующем запросе идентификатора 10 <А> отсутствие адресной записи (нет_адреса) на месте адреса <А> в ПТ2 указывает на то, что каждая таблицаконфигуратор вновь должна запросить ПК <А> в ВКТ.
Память типа Р1ЬМО
ПК включает, в основном, команду РИ8Н, по которой новые конфигурационные слова записываются по определенному адресу. Если запись конфигурационного слова типа КС невозможна, поскольку адресуемый конфигурируемый элемент (КЭЛ) не готов принять новую программу конфигурирования (сигнал НЕПРИНЯТИЕ), то конфигурационное слово вместо адресуемого конфигурируемого элемента (КЭЛ) записывается в буферную память, называемую в дальнейшем памятью типа НЬМО. Последующие команды выполняются обычным образом, пока снова не появится конфигурационное слово, которое невозможно записать в конфигурируемый элемент и которое в этом случае записывается в память типа НЬМО.
Если невозможна запись конфигурационного слова типа КСР, поскольку адресуемый конфигурируемый элемент (КЭЛ) не готов принять новую программу конфигурирования (сигнал НЕПРИНЯТИЕ), то конфигурационное слово вместо адресуемого конфигурируемого элемента (КЭЛ) записывается в память, обозначенную в дальнейшем памятью типа НЬМО. Все последующие команды до конца программы конфигурирования записываются не в конфигурируемый элемент, а непосредственно в память типа НЬМО.
Прогон всего содержимого памяти типа НЬМО осуществляется в холостые циклы и перед каждым выполнением новой ПК. При этом, начиная с хранящегося дольше всех слова данных, каждое считанное из памяти типа НЬМО слово пересылается в соответствии с известной очередью типа Е1ЕО своему адресуемому элементу, при этом указанный адресуемый элемент должен быть готов принять это конфигурационное слово. В том случае, когда эти слова данных можно записывать с самого начала (т.е. когда адресуемые конфигурируемые элементы (КЭЛ) готовы их принимать), запись из памяти типа НЬМО удаляется по типу очереди Е1ЕО. Если конфигурационное слово не может быть записано, оно пропускается и не удаляется из памяти типа НЬМО. В отличие от очереди типа Е1ЕО, считывание данных после пропущенного конфи гурационного слова продолжается. Те конфигурационные слова, которые могут быть записаны после пропущенного конфигурационного слова, в зависимости от исполнения памяти типа НЬМО
1. либо маркируются как записанные и не удаляются из этой памяти типа НЬМО, при этом конфигурационные слова, которые маркированы как записанные, при последующих прогонах больше не считываются, соответственно тут же удаляются в случае, если перед ними больше не имеется пропущенное конфигурационное слово,
2. либо удаляются из памяти типа НЬМО, причем конфигурационные слова перед удаленным конфигурационным словом и за ним сохраняются, при этом для удаления необходимо переместить последующие слова вперед (вверх) или предыдущие слова назад (вниз), причем порядок расположения конфигурационных слов непременно сохраняется.
При выполнении новой ПК конфигурационные слова (КС), которые не смогли быть записаны из ТК-ЗУ в адресуемые элементы (КЭЛ), снова добавляются в память типа Е1ЬМО, т.е. эти КС записываются в конец (исходя из направления считывания) этой памяти типа НЬМО. В случае заполнения памяти типа НЬМО, т.е. при отсутствии свободного места для записи конфигурационных слов, выполнение ПК приостанавливается. Прогон содержимого памяти типа НЬМО выполняется до тех пор, пока не сможет быть записано достаточное количество конфигурационных слов и пока не освободится соответствующее количество мест под новые записи, после чего может быть продолжено выполнение ПК.
Память типа НЬМО представляет собой память, аналогичную памяти типа Е1ЕО, прогон содержимого которой всегда осуществляется линейно, начиная с самой старой записи, однако, в отличие от памяти обратного магазинного типа, т.е. памяти типа Е1ЕО, в данном случае предусмотрен пропуск записей (ΕιγκΙ Ιη, Ьшеаг МиШр1е Он1, первым пришел - многократно линейно обслужен).
Назначение конечного автомата, управляющего таблицами-конфигураторами (КАТК) Такой конечный автомат (КАТК) управляет таблицами-конфигураторами. При этом он выполняет команды программ конфигурирования и срабатывает в ответ на поступающие триггерные сигналы. Он осуществляет управление памятью типа НЬМО, в частности осуществляет считывание данных из этой памяти при холостых циклах и перед выполнением программы конфигурирования. Он срабатывает на генерируемые ПТ-структурой сигналы недопустимый <ТКС> (недопустимые триггерные сигналы, см. фиг. 1, 0102) и загрузка <ΙΌ> (загрузка идентификатора). Сигнал загрузка <ΙΌ> генерируется при наличии в ПТ2 записи кэш-промах (0105) или в случае, когда
ПК/ПККА, на которую ссылается идентификатор, маркирована как удаленная (0107). Конечный автомат срабатывает на управляющие сигналы от ТК более высокого уровня.
Пример обработки команд представлен на фиг. 2-7.
Управляющие сигналы, направляемые в ТК более высокого уровня:
недопустимый <ТКО> (0102): указывает таблице-конфигуратору на появление неизвестного триггерного сигнала <ТКО>;
загрузка <ΙΌ> (0105/0107): посылает в ТК более высокого уровня запрос на загрузку идентификатора <ΙΌ>;
триггерный сигнал <ТКО> <СТ#> (0108): посылает триггерный сигнал <ТКС> в находящуюся на более высоком уровне или в адресуемую ТК <СТ#>.
Управляющие сигналы, поступающие от ТК более высокого уровня:
удаление <ΙΌ> (см. фиг. 15, 1513): требует от ТК удалить идентификатор <ΙΌ>;
запись_в_УСП <ба!а> (см. фиг. 2, 0205): посылает данные <ба!а> в ТК. Данные записываются в конец распределенной памяти.
Функция сборщика мусора (СМ)
У памяти ТК-ЗУ имеются две следующие проблемы.
1. Если команда выполнения ЕХЕСИТЕ или загрузки ЬОАО, соответственно триггерный сигнал ссылается на идентификатор, ПК которого отсутствует в ТК-ЗУ, то эту ПК приходится загружать дополнительно. Однако при определенных условиях в ТК-ЗУ может не хватать места для загрузки запрошенной ПК.
2. При поступлении команды удаления КЕМОУЕ <ΙΌ> соответствующую ПК необходимо удалить из ТК-ЗУ. При этом, если только эта программа не расположена в конце ТК-ЗУ, образуется пропуск. При загрузке новой ПК этот пропуск при определенных условиях не заполняется снова полностью или же оказывается слишком маленьким для новой ПК. Такая ситуация приводит к фрагментации ТК-ЗУ.
Задача сборщика мусора состоит в том, чтобы удалять программы конфигурирования из ТК-ЗУ, освобождая место под новые записи, и после удаления записей таким образом перераспределять ТК-ЗУ, чтобы все оставшиеся ПК располагались в памяти последовательно единым блоком, а освободившиеся блоки памяти были расположены в виде единого блока в конце ТК-ЗУ.
Тем самым достигается оптимальная дозагрузка новых ПК без потери места в памяти.
Обработка триггерных сигналов
Каждая ТК имеет вывод для нескольких относящихся к ее соответствующему иерархическому уровню триггерных сигналов, коммутируемых на одну общую шину. Поступающие триггерные сигналы обрабатываются с помощью маски, которая пропускает для дальнейшей передачи только разрешенные триггерные сигналы. Разрешенные триггерные сигналы поступают в синхронизированном по тактовой частоте режиме на временное хранение в регистр выборок (дискретных значений). Арбитр выбирает один из сохраненных в этом регистре триггерных сигналов и преобразует этот сигнал в двоичный вектор. Выбранный триггерный сигнал удаляется из регистра выборок. Двоичный вектор поступает далее в первую просмотровую таблицу (ПТ1), которая переводит (транслирует) этот вектор в идентификатор (ΙΌ) вызываемой программы конфигурирования (ПК). Вторая просмотровая таблица (ПТ2) транслирует этот идентификатор в адрес программы конфигурирования в памяти ТК (ТК-ЗУ). Управляющий ТК конечный автомат (КАТК) устанавливает свой указатель программы (УПР) на этот адрес и начинает выполнение программы конфигурирования. Необходимым условием для этого является наличие для каждого разрешенного триггерного сигнала, прошедшего через маску, соответствующей записи в ПТ1. При ее отсутствии далее в КАТК выдается сигнал ошибки, соответственно сообщение об ошибке (недопустимый триггерный сигнал), при этом каждый безадресный идентификатор рассматривается как отсутствующая запись (ГО=нет_адреса). Маркер нет_адреса является маркером, выбираемым в зависимости от варианта реализации системы.
При отсутствии соответствующей записи в ПТ2, т. е. в случае, если программа конфигурирования, на которую ссылается идентификатор, не находится в ТК-ЗУ, в КАТК выдается запрос на загрузку (сигнал загрузки <ΙΌ>).
Посылка триггерных сигналов в ТК более высоких уровней
Для взаимодействия с ТК более высокого уровня наряду с уже описанным интерфейсом, который служит для загрузки ПК, предусмотрен еще один интерфейс, который служит для обмена произвольно задаваемыми командами, но, в первую очередь, векторами триггерных сигналов. При этом ТК посылает либо команду широковещания (ВКОАЭСА8Т) всем другим ТК, либо команду адресации (ΑΌΌΡΕ88ΕΌ) любой адресуемой ТК.
Команда вектор триггерного сигнала представляет собой двоичное значение, которое ссылается на запись в просмотровой таблице ПТ2 таблицы-конфигуратора, являющейся получателем данных.
Передача векторов триггерных сигналов необходима, например, для запуска ПК еще в одной ТК в рамках ПККА, например, с целью управления внешним (периферийным) устройством или памятью.
Для дальнейшей передачи векторов триггерных сигналов в ТК более высокого уровня существуют два следующих механизма:
1. В ПТ1 добавляется 1 бит, указывающий, рассматривается ли содержимое памяти в качестве идентификатора программы конфигурирования или в качестве двоичного значения триггерного сигнала. Если имеет место триггерный сигнал, то содержащиеся в ПТ1 данные передаются в виде триггерного сигнала непосредственно в ТК более высокого уровня.
2. Команда ТЕ1ССЕЕ может указывать двоичное значение триггерного сигнала, непосредственно передаваемого в ТК более высокого уровня. (В другом варианте вместо такого двоичного значения триггерного сигнала можно также передавать непосредственно идентификаторы).
Для запуска векторами триггерных сигналов какой-либо ПК не в своей ТК необходимо обеспечить синхронизацию с целью исключить взаимоблокировку. При такой синхронизации должно учитываться, что только одна ПК в определенной группе ТК запускает другие ПК в других ТК этой группы. Одновременный запуск нескольких ПК может привести к взаимоблокировке таблиц-конфигураторов аналогично уже описанной взаимоблокировке на уровне КЭЛ.
Основной принцип подобного метода синхронизации состоит в следующем.
ПК имеет следующую структуру:
6ЕТСТ8/6ЕТВИ8
ТЯЮОЕЯ <ΙΌ>, <СТ#> ТЯЮОЕЯ <ΙΌ>, <СТ#>
ЬОО8ЕСТ8/ЬОО8ЕВи8
Команда ОЕТСТ8 в пределах программы конфигурирования таблицы-конфигуратора (ИНИЦИАТОРА) указывает на то, что в последующем сигналы будут пересылаться в другие ТК (АДРЕСАТЫ). По команде ТЯЮОЕЯ <ΙΌ> <СТ#> идентификатор запускаемой ПК передается в ТК с однозначным указанием идентификатора соответствующей таблицы-конфигуратора (ΙΌ СТ#). При этом такой триггерный сигнал сначала передается в ТК непосредственно более высокого уровня, которая в соответствии с указанием СТ# снова пересылает триггерный сигнал в подчиненную ТК в пределах своего ТК-пространства или направляет его в ТК более высокого по отношению к ней уровня (см. раздел Иерархии таблиц-конфигураторов). При получении команды АДРЕСАТ квитирует ее получение.
При прохождении команды через ТК значение показателя приоритета этой команды увеличивается каждый раз на единицу. При столкновении в пределах одной ТК запроса на дальнейшую передачу команды с другим запросом команда с более низким приоритетом отклоняется.
В результате,
а) внутри оверлейной системы обеспечивается прохождение в определенный момент времени лишь одной команды и, следовательно, запуск лишь одной ПК, что обеспечивает требуемое отсутствие взаимоблокировки,
б) обеспечивается отклонение прошедшей на данный момент наименьший путь команды, что может повысить эффективность системы.
После отклонения определенной команды все предыдущие команды в рамках последовательности команд ОЕТСТ8/ЬОО8ЕСТ8 также отклоняются, т. е. ИНИЦИАТОР посылает всем АДРЕСАТАМ сигнал отмены ΌΙ8ΜΙ88, и выполнение программы конфигурирования по истечении некоторого времени ожидания запускается вновь по команде СЕТСТ8. Квитирующие сигналы для всех триггерных сигналов в пределах последовательности команд ОЕТСТ8...ЬОО8ЕСТ8 передаются в инициирующую ТК. При поступлении каждого квитирующего сигнала происходит переход к обработке следующей команды.
По достижении команды ЬОО8ЕСТ8 ИНИЦИАТОР посылает всем АДРЕСАТАМ сигнал перехода СО. По этому сигналу ТК-адресаты запускают выполнение ПК с переданными с помощью триггерных сигналов идентификаторами.
АДРЕСАТЫ после поступления триггерного сигнала переходят в состояние, в котором они ожидают поступления сигнала перехода СО или сигнала отмены ΌΙ8ΜΙ88.
Учитывая более эффективные возможности реализации, ниже рассмотрен несколько модифицированный подход, состоящий в следующем.
Между ТК одной группы одного иерархического уровня расположена шинная система (меж-ТК-шина). Эта шинная система соединяет все ТК указанной группы и ТК уровня, расположенного непосредственно над этой группой.
По команде 6ЕТВИ8, которая функционально аналогична команде ОЕТСТ8, арбитраж шинной системы осуществляется одной ТК. Команды по шинной системе передаются далее в ТК этой же группы. Если адресуемая по соответствующему номеру ТК (СТ#) не находится в этой группе, то ТК более высокого уровня автоматически осуществляет арбитраж своей шины более высокого уровня и команда проходит дальше. Подвергаемые арбитражу шины остаются подчиненными ИНИЦИАТОРУ и поэтому заблокированными для всех других ТК до тех пор, пока либо не поступит команда отклонения, либо по команде ЬОО8ЕВИ8 не освободится доступ к шине. Команда ЬОО8ЕВИ8 сравнима с командой ЬОО8ЕСТ8. Перед выполнением команды ЬОО8ЕВИ8 во все задействованные ТК посылается сигнал перехода СО. Посылка этого сигнала осуществляется либо по команде ЬОО8ЕВи8, либо по специальной предваряющей ее команде. Команды, прежде всего триггерные сигналы, также обрабатываются в соответствии с уже описанным выше основным способом. Запрос отклоняется в том случае, когда арбитраж шинной системы невозможен. При арбитраже все ТК одного уровня имеют соответственно одинаковые приоритеты, а ТК более высокого уровня имеет более высокий приоритет. Команда при ее передаче по меж-ТК-шине остается действующей до тех пор, пока адресуемая ТК либо не подтвердит ее прием (сигнал ПРИНЯТИЕ), либо не отклонит ее (сигнал НЕПРИНЯТИЕ).
Работающий по принципу приоритетности арбитр кругового обслуживания
Работающий по принципу приоритетности арбитр кругового обслуживания (арбитр одноциклового кругового обслуживания АРБ-ОЦКО (англ. 8тд1е Сус1е Коипб КоЫи АгЬйег)) синхронизируется тактовыми импульсами, т.е. он в зависимости от варианта его исполнения выдает результат по каждому положительному или по каждому отрицательному фронту тактового импульса (ФТ1). На поступающие входные сигналы (АРБ-ВХ) накладывается маска (АРБ-МАСКА), которой управляет сам арбитр в соответствии с описанным ниже способом. Выходные сигналы после наложения маски поступают в известный из уровня техники арбитр разрешения конфликтов на основе приоритетов (АРБ-ПРИО). Арбитр синхронно с тактовой частотой выдает на каждом соответствующем фронте тактового импульса (ФТ1) определенный результат (АРБ-ВЫХ), т.е. двоичное значение сигнала с наивысшим приоритетом согласно наложенной маске (АРБМАСКА). Этому результату соответствует сигнал (ДОСТОВЕРНОСТЬ), который указывает на достоверность или недостоверность соответствующего двоичного значения. В зависимости от конкретного исполнения арбитра разрешения конфликтов на основе приоритетов при наличии сигнала 0 и при отсутствии сигнала можно генерировать одно и то же двоичное значение: в этом случае сигнал ДОСТОВЕРНОСТЬ указывает, что результат является недостоверным, поскольку сигнал отсутствует. Этот сигнал
1. выдается как полученный арбитром результат и
2. коммутируется на дешифратор, который дешифрует двоичные значения способом, проиллюстрированном в приведенной ниже таблице на примере трехразрядного двоичного числа (метод кодирования, основанный на таком принципе, можно адаптировать к двоичному числу любой разрядности).
Двоичное число (АРБ-ВЫХ) | Дешифрованное значение (АРБ-ДЕШ) | Примечание |
111 | 0111 1111 | |
110 | 0011 1111 | |
101 | 0001 1111 | |
100 | 0000 1111 | |
011 | 0000 0111 | |
010 | 0000 0011 | |
001 | 0000 0001 | |
000 | 1111 1111 | Состояние сброса и в случае недостоверности двоичного числа (АРБ-ВЫХ) |
С дешифратором функционально связан регистр (АРБ-РЕГ), в который переписываются дешифрованные дешифратором значения (АРБДЕШ) по тому фронту тактового импульса (ФТ2), который является инверсией фронта ФТ1. Дешифрованное значение АРБ-ДЕШ подается обратно на операцию наложения маски (АРБ-МАСКА), разрешая передачу отдельных входных сигналов (АРБ-ВХ).
Арбитр выполняет операции в следующем порядке:
1. После поступления команды сброса КЕ8ЕТ на все входные сигналы АРБ-ВХ накладывается маска АРБ-МАСКА, поскольку дешифратор АРБ-ДЕШ деблокирует все сигналы.
2. Установленный входной сигнал АРБ-ВХ с наивысшим приоритетом (например, в приведенной выше таблице сигнал 7 (в двоичном представлении 111) обладает наивысшим приоритетом, а сигнал 0 (в двоичном представлении 000) обладает самым низким приоритетом) выдается в виде двоичного числа.
3. Дешифрованное значение АРБ-ДЕШ блокирует этот сигнал, а также все другие, возможно, обладающие еще более высоким приоритетом, но не установленные входные сигналы.
4. Выполнение последующих шагов 5 и 6 повторяется до тех пор, пока процесс не дойдет до сигнала 0 (в двоичном представлении 000) или пока после наложения маски АРБ-МАСКА не останется больше никаких сигналов. После этого дешифрованное значение АРБ-ДЕШ (см. таблицу дешифрования) снова разрешает наложение маски АРБ-МАСКА на все сигналы в виде дешифрованных значений АРБ-ДЕШ и процесс начинается с шага 2.
5. Следующий установленный входной сигнал АРБ-ВХ, обладающий теперь наивысшим приоритетом, выдается в виде двоичного числа.
6. Дешифрованное значение АРБ-ДЕШ блокирует этот сигнал, а также все другие, возможно, обладающие еще более высоким приоритетом, но не установленные входные сигналы (дальнейшее продолжение с шага 4).
Тем самым обеспечивается равноправная обработка всех входных сигналов, а также дешифрование и выдача в виде двоичного числа (АРБ-ВЫХ) одного из входных сигналов (АРБВХ) с каждым тактом.
У регистра АРБ-РЕГ может быть предусмотрен разрешающий вход (ΕΝ), допускающий изменение содержимого этого регистра по фронту ФТ2 только при поступлении соответствующего сигнала. Благодаря этому двоичный вектор выдается не на каждом такте, а в зависимости от деблокирования по соответствующему сигналу, поступающему на разрешающий вход, и по фронту ФТ2. Этот разрешающий вход необходим для синхронизации в тех случаях, когда последующая схема не в состоянии обработать данные за один такт, а ей на такую обработку требуется несколько тактов, и лишь после этого она может принять следующий двоичный вектор.
При определенных условиях может оказаться целесообразным, чтобы арбитр рассматривал ряд сигналов как обладающий более высоким приоритетом, тогда как большинство сигналов будут иметь одинаковый приоритет. Такой подход необходим, например, в рассмотренном выше способе дальнейшей передачи сигналов между ТК. Для присвоения сигналу более высокого приоритета обладающий наивысшим приоритетом порт арбитра разрешения конфликтов на основе приоритетов АРБ-ПРИО не маскируется, т.е. этот порт подсоединяется в обход маски (АРБ-МАСКА). Тем самым обеспечивается приоритетная обработка сигнала.
Организация таблицы-конфигуратора на базе микроконтроллера
В отличие от рассмотренных выше вариантов, ТК также может быть реализована на базе микроконтроллера.
Очевидно, что такие основные функции, как управление с помощью триггерных сигналов, просмотровые таблицы ПТ1 и ПТ2, а также связь между таблицами-конфигураторами и запись конфигурационных слов в КЭЛ могут без особых проблем выполняться и микроконтроллером. При этом лишь с организацией эффективно работающей памяти типа ПЬМО связана определенная проблема, которая проявляется, прежде всего, в достижимом быстродействии. Поэтому структура памяти типа ПЬМО рассматривается отдельно более подробно.
Структура памяти типа ПЬМО
Память типа ПЬМО выполнена не в виде отдельного запоминающего устройства, а обычная память программ расширена с добавлением к ней функций памяти типа ПЬМО. С этой целью каждому КС присваивается дополнительный бит (ПЬМО-БИТ), который указывает на то, было ли соответствующее КС записано в КЭЛ. Если бит ПЬМО-БИТ установлен, то соответствующее КС не выполняется. При записи КС в память этот ПЬМО-БИТ сбрасывается в исходное значение. Все ПК в одной ТК связаны друг с другом связанным списком (ИЬМОСПИСОК) в той последовательности, в какой они вызывались триггерным сигналом или командой загрузки ЬОАЭ <ГО>. ПК остается в этом ПЬМО-СПИСКЕ до ее полного выполнения, после чего она удаляется из списка. Обход связанного ПЬМО-СПИСКА происходит в соответствии с очередью ПЬМО, и поэтому указанный список представляет собой непосредственную замену памяти типа ПЬМО. (При этом следует отметить, что, в отличие от первоначальной очереди типа ПЬМО, ни одна из ПК не может присутствовать в этом списке дважды. При вызове еще стоящей в ПЬМО-СПИСКЕ ПК ее выполнение приходится откладывать до тех пор, пока она не будет удалена из этого ПЬМО-СПИСКА.)
Ячейка памяти типа ПЬМО имеет следующую структуру: ____________________
Г ПЬМО-БИТ I КС
Команды
Микроконтроллер поддерживает следующие команды, которые непосредственно влияют на содержимое памяти типа ПЬМО:
РИ8Н - запись КС в КЭЛ;
РИ8Н8Е - запись КС в КЭЛ и установление ПЬМО-БИТА в случае принятия этого КС (сигнал ПРИНЯТИЕ);
РИ8НКЕТ - запись КС в КЭЛ и возврат (обратный переход) из подпрограммы в случае, если КЭЛ не принял (сигнал НЕПРИНЯТИЕ) это КС. Эта команда используется тогда, когда следующие КС в ПК зависят от конфигурации этого КС (сигнал ПРИНЯТИЕ); в результате возврата из ПК их использование для конфигурирования задерживается до успешного выполнения (сигнал ПРИНЯТИЕ) команды РИ8НКЕТ;
РС8НХК - запись КС в КЭЛ осуществляется только в том случае, если перед этим в ПК не было ни одного сигнала НЕПРИНЯТИЕ. Аналогично команде РИ8НКЕТ эта команда служит для управления зависимостями в конфигурационной последовательности конфигурационных слов.
Сборщик мусора
В соответствии с приведенным выше описанием для удаления ненужных более ПК используется сборщик мусора (СМ). СМ начинает работать либо в том случае, когда в памяти не хватает места для загрузки новой ПК и необходимо удалить идентификаторы, либо при поступлении явного указания на удаление ПК по команде удаления КЕМОУЕ с указанием идентификатора удаляемой ПК.
С целью в максимально возможной степени упростить работу СМ все ПК объединены друг с другом в связанный список. СМ проходит по всему списку и удаляет ненужные более ПК путем перезаписи на их место других ПК и соответствующего согласования записей в списке. При этом все остающиеся ПК сдвигаются в памяти таким образом, чтобы закрыть соответствующие пропуски, образующиеся в памяти в результате удаления ПК, с образованием в конце памяти более значительной взаимосвязанной свободной области.
Структура программы конфигурирования (ПК)
Возможная основная структура программы конфигурирования представлена ниже в таблице.
)тр 8ТАКТ (переход ЗАПУСК); ____________длина____________ _____мусор - предыдущий_____ _____мусор - последующий_____ ПЬМО-запись - предыдущая ПЬМО-запись - следующая _______КЭШ-статистика______ ________ПК-статистика________ ЗАПУСК:
те!: (возврат);
В начале ПК с пропуском следующего заголовка осуществляется переход к запуску последовательностей команд. За этим следует двукратно связанный список для СМ, в который объединены все ПК. Параметр длина указывает длину ПК. Эта информация может использоваться для известных из уровня техники команд перемещения блока ВЬОСК_МОУЕ, применяемых при необходимости переместить ПК в памяти (удаление ненужных данных, загрузка и т.д.). В последующий двукратно связанный список организована память типа МЬМО, при этом в нем взаимно связаны только те ПК, которые содержат такие конфигурационные слова, которые еще не были записаны в конфигурируемые элементы (КЭЛ). Затем следует статистика по кэшированию, в которой содержится, например, информация о количестве вызовов программ конфигурирования (при каждом вызове соответствующее значение увеличивается на единицу), о длительности их хранения (измеряемой по количеству циклов работы СМ при просмотре программ конфигурирования, при этом после каждого такого цикла работы СМ соответствующее значение увеличивается на единицу) и т.д. Эти статистические данные СМ может анализировать, например, при необходимости удалить определенную ПК по причине недостатка места в памяти. Подобные статистические данные обеспечивают достижение значительных преимуществ при кэшировании. Так, например, в зависимости от используемого алгоритма кэширования можно в соответствии с требованиями прикладной программы запрограммировать микроконтроллер таким образом, чтобы при необходимости освободить место в памяти удалять из кэша
1. самую старую/самую новую ПК,
2. наименьшую/наибольшую ПК (см. параметр длина),
3. наиболее часто/наиболее редко вызываемую ПК.
При этом можно, как очевидно, хранить и другую целесообразную информацию о состоянии. Подобное выборочное кэширование при использовании известных на сегодняшний день кэшей невозможно. Так, в частности, перепрограммируемые алгоритмы кэширования не поддерживаются известными на сегодняшний день кэшами. В конце следует ПК-статистика, в которой содержится, например, информация о количестве еще не использованных (сигнал НЕПРИНЯТИЕ) или уже использованных (сигнал ПРИНЯТИЕ) в процессе конфигурирования КС. Одновременно можно хранить в памяти адрес первого КС, еще подлежащего использованию при конфигурировании. Преимущество этого состоит в возможности перейти при прогоне содержимого памяти типа Е1ЬМО непосредственно к этому КС без необходимости прогонять всю ПК, что позволяет значительно повысить быстродействие.
В заключение в отношении ПК следует отметить, что связанные списки предпочтительно строятся на основе ввода предыдущих/последующих идентификаторов, чтобы тем самым СМ мог без проблем перемещать абсолютные адреса ячеек памяти. В ПК следует использовать вместо абсолютных переходов только относительные переходы во избежание проблем с загрузкой программы конфигурирования и с циклами работы СМ, поскольку абсолютные адреса при этом изменяются.
Следует еще отметить, что в соответствии с рассмотренным выше принципом и при использовании микроконтроллера перед выполнением новой ПК (на основании триггерного сигнала или команды, источником которых в том числе может служить другая ТК) происходит прогон содержимого памяти типа Е1ЬМО, а перед прогоном содержимого памяти типа Е1ЬМО информация о состоянии КЭЛ (допускающем или не допускающем реконфигурирование) сохраняется в виде резервной копии.
Чертежи
Ниже на примере одного из вариантов выполнения более подробно рассмотрен принцип управления конфигурационными данными в соответствии с вышеописанным способом со ссылкой на прилагаемые чертежи, на которых показано на фиг. 1 - схема, иллюстрирующая процесс генерации адресов в просмотровых таблицах, на фиг. 2-7 - схемы, иллюстрирующие процесс выполнения (отработки) команд и работу конечных автоматов, на фиг. 8 - структура АРБ-ОЦКО, на фиг. 9 - структура ПТ1 и ПТ2, на фиг. 10 - структура арифметического устройства указателей и памяти ТК-ЗУ, на фиг. 11 - структура памяти типа Е1БМО, на фиг. 12а - схема иерархической структуры расположения таблиц-конфигураторов, на фиг. 12б - схема передачи триггерного сигнала между таблицами-конфигураторами , на фиг. 12в, г - схемы, иллюстрирующие процессы передачи триггерного сигнала между таблицами-конфигураторами, на фиг. 13 - схема, иллюстрирующая процесс вызова одной ПК несколькими ПККА, на фиг. 14 - структура ПТ1 корневой ТК, на фиг. 15 - схема, иллюстрирующая осуществляемый хост-машиной процесс управления корневой ТК, на фиг. 16 - схема, поясняющая концепцию ПТ и ВКТ, на фиг. 17 - схема, иллюстрирующая процесс управления ТК среднего иерархического уровня, соответственно корневой ТК, на фиг. 18 - схема, поясняющая проблему взаимоблокировки при конфигурировании двумерной матрицы (см. выше), на фиг. 19 - схема, поясняющая концепцию памяти типа ΕΙΕΜΟ, на фиг. 20 - схемы, поясняющие основной принцип связи между таблицамиконфигураторами (меж-ТК-связи), на фиг. 21 - пример реализации меж-ТКсвязи с использованием команды СЕТСТ8.
на фиг. 22 - пример реализации меж-ТКсвязи с использованием команды ΟΕΊΒϋδ, на фиг. 23 - структура меж-ТК-шины, на фиг. 24 - схема, поясняющая принцип адресации в пределах иерархий таблицконфигураторов, на фиг. 25 - двумерная древовидная структура таблицы-конфигуратора, на фиг. 26 - схема, поясняющая процесс создания связанного списка для СМ, на фиг. 27 - схема, поясняющая процесс создания связанного списка для памяти типа ΕΙΕΜΟ, на фиг. 28 - схема, поясняющая принцип работы памяти типа ΕΙΕΜΟ в программе конфигурирования, и на фиг. 29 - схема, иллюстрирующая процесс сохранения состояний перед выполнением ПК или прогоном содержимого памяти типа ΕΙΕΜΟ.
Описание чертежей
На фиг. 1 показана схема, иллюстрирующая процесс генерации адресов ТК-ЗУ в пределах ТК. При этом поступающий двоичный вектор (0101) триггерного сигнала транслируется в ПТ1 в достоверный идентификатор ГО программы конфигурирования (ПК) или программы конфигурирования с косвенной адресацией (ПККА). При отсутствии достоверного идентификатора генерируется сигнал недопустимый триггерный сигнал (0102), который указывает на то, что поступивший триггерный сигнал не известен в ПТ1. Этот сигнал может быть передан далее в качестве сообщения об ошибке в ТК более высокого уровня или проигнорирован. Информация, полученная в результате трансляции триггерного сигнала в идентификатор, вносится в ПТ1 с помощью команды ссылки ВЕРЕВЕХСЕ.
Достоверный идентификатор (0103) передается далее в ПТ2. Идентификаторы, указываемые внутри команд, т.е. операндом (0104), поступают непосредственно в ПТ2. В ПТ2 поступивший идентификатор транслируется в адрес ПК/ПККА в памяти ТК-ЗУ. Если ПК/ПККА не хранится в ТК-ЗУ (отсутствует в кэше), то генерируется сигнал отсутствие (0105). Если транслированный адрес ПК/ПККА помечен маркером нет_адреса, свидетельствующим об отсутствии адреса, то выдается сигнал нет_записи (0107), свидетельствующий о том, что адрес удален. Сигналы отсутствие и нет_записи указывают на то, что трансляция во внутренний адрес ТК-ЗУ невозможна. На основании этого сигнала загрузочный конечный автомат (ЗКА) подгружает ПК/ПККА с соответствующим идентификатором из ТК следующего более высокого уровня.
При наличии же достоверного адреса он поступает далее в арифметическое устройство указателей генератора адресов (0106). В ПТ1 поступивший двоичный вектор триггерного сигнала транслируется либо в идентификатор, либо в следующий вектор триггерного сигнала, причем в этом случае выдается вектор триггерного сигнала (0108).
На фиг. 2 показана схема, иллюстрирующая процесс загрузки ПК/ПККА. Сначала идентификатор (0201) загружаемой ПК/ПККА пересылается в ТК следующего более высокого уровня. После этого в то место ПТ2, куда должен быть записан затребованный идентификатор, вносится значение указателя свободной ячейки памяти (УСП). Этот УСП указывает на место записи, находящееся в ТК-ЗУ за записью, которая является последней из использованных для ПК/ПККА. Место такой записи является первым местом, в котором сохраняется загружаемая ПК/ПККА.
Конечный автомат ожидает поступления слова данных от ТК следующего, более высокого уровня. Как только такое слово поступит, оно записывается в место, на которое ссылается УСП. При этом значение УСП увеличивается на единицу. Если УСП указывает на место записи за концом записей в ТК-ЗУ, то для освобождения места из ТК-ЗУ удаляется первая запись (0202), что сопровождается обновлением счетчика УСП. Если из ТК более высокого уровня в качестве слова данных была передана команда останова 8ΤΟΡ, то процесс загрузки прерывается (0203), в остальных же случаях он продолжается с переходом в режим ожидания нового слова данных (0204).
На фиг. 3а показана команда маскирования ΜΑ8Κ. Операнд этой команды записывается в регистр маски. Регистр маски расположен на входе триггерных сигналов перед ПТ1 и отфильтровывает путем наложения маски недостоверные триггерные сигналы.
Согласно фиг. 3б по команде триггерного сигнала ТВЮСЕВ операнд команды передается в качестве вектора триггерного сигнала в другие ТК.
Согласно фиг. 3в по команде ссылки ВЕЕЕВЕХСЕ информация, полученная в результате трансляции триггерного сигнала в соответствующий идентификатор ПК/ПККА, записывается в ПТ1.
На фиг. 4а показана команда ожидания №ΑΙΤ. Операнд этой команды записывается в регистр маски ожидания. Все триггерные сигналы, за исключением ожидаемого(-ых) и поэтому разрешенного(-ых) в регистре маски ожидания сигнала(-ов), игнорируются. Лишь после появления триггерного сигнала происходит возврат к выполнению программы.
На фиг. 4б показана команда помещения в стек РИ8Н. Конфигурационное слово посылается адресуемому конфигурируемому элементу (КЭЛ). Если КЭЛ не принимает конфигурационного слова, поскольку находится, например, в состоянии, не допускающем конфигурирование, то конфигурационное слово записывается в память типа НЬМО (0401).
На фиг. 5 показана схема, иллюстрирующая ход выполнения команды удаления КЕМОУЕ. Существуют два следующих варианта ее вызова:
1. Из ТК-ЗУ удаляется первая находящаяся в этой памяти ПК/ПККА. Указателю мусора (УМУ) присваивается адрес 0 в ТК-ЗУ (0501).
2. Из ТК-ЗУ удаляется конкретная ПК/ПККА, определяемая по ее идентификатору. Указателю мусора (УМУ) присваивается первый адрес удаляемой ПК/ПККА в ТК-ЗУ (0502).
Указатель перемещения (УНЕ) загружается со значением УМУ. УМУ и УНЕ ссылаются на команду ΒΕΟΙΝ <ГО> в ТК-ЗУ даже в том случае, когда первая ПК/ПККА подлежит удалению из ТК-ЗУ. Соответствующий идентификатор маркируется в ПТ2 как недостоверный. Значение УПЕ увеличивается до тех пор, пока не будет достигнута команда ΒΕΟΙΝ <ΙΌ> следующей находящейся в памяти ПК/ПККА или же значение УПЕ равно значению указателя свободных ячеек памяти (УСП), т.е. это означает, что удаляемая ПК/ПККА является последней в ТК-ЗУ (0504).
В этом случае УСП загружается со значением УМУ, в результате чего все занятые стираемой ПК/ПККА ячейки памяти маркируются как свободные, и на этом выполнение связанных с командой удаления КЕМОУЕ операций завершается.
В противном случае (достижение команды начала ВЕСШ <ΙΌ> (0506)) данные, на которые ссылается УПЕ, копируются в ту ячейку памяти, на которую ссылается УМУ. Значения УПЕ и УМУ увеличиваются. Этот процесс продолжается до тех пор, пока УПЕ не достигнет либо конца ТК-ЗУ, либо состояния УСП (0507). Если во время этого процесса УПЕ сошлется на ячейку памяти, в которой находится команда ВЕСШ <ΙΌ>, то на место записи соответствующего идентификатора в ПТ2 перезаписывается указываемое УПЕ значение (0508), чтобы при поиске (просмотре) была выдана правильная ячейка памяти.
На фиг. 6 показана схема, поясняющая работу памяти типа НЕМО. Эта память типа НЬМО имеет три указателя:
1. УЗапис: указатель записи НЬМО-ЗУПВ;
2. УЧтен: указатель чтения НЬМО-ЗУПВ;
3. УЗаполн: указатель заполнения, представляющий собой указатель состояния, который характеризует степень заполнения НЬМО-ЗУПВ и предотвращает антипереполнение (выход за нижнюю границу указателя стека), соответственно переполнение (выход за верхнюю границу указателя стека).
Одноразрядный регистр начала памяти Начало_Е указывает, происходит ли текущее обращение в режиме чтения к началу памяти НЬМО-ЗУПВ (истинное состояние), т.е. действительно ли между указателем чтения и началом записей в НЬМО-ЗУПВ нет никаких не удаленных записей, или же указатель чтения находится в середине НЬМО-ЗУПВ (ложное состояние), т.е. между указателем чтения и началом записей в НЬМО-ЗУПВ имеются используемые записи. Кроме того, предусмотрено два регистра для хранения состояний указателей УЧтен и УЗаполн. При появлении первой неудаленной записи необходимо сохранять содержимое обоих этих регистров, поскольку при последующем обращении в режиме чтения считывание необходимо будет начинать с места расположения этой записи. С другой стороны, однако, необходимо продолжать изменять значения указателя записи и указателя чтения во время текущего процесса чтения с целью получения следующих адресов, по которым осуществляется чтение, соответственно с целью определения конца НЬМО-ЗУПВ. Организация памяти типа НЬМО в виде структуры, схожей со структурой памяти типа НЕО, т.е. в виде так называемой кольцевой памяти, не позволяет определять начало и конец памяти на основании адреса 0 или максимального адреса. Из этого исходного состояния осуществляется переход к одному из двух следующих режимов.
1. Режим чтения (0601).
Значения указателей УЗаполн и УЧтен сохраняются в регистрах. После этого начинается цикл отработки.
Регистр начала памяти Начало_Е находится в состоянии истинно.
Если значение УЗаполн=0, то значения указателей УЧтен и УЗаполн снова считываются из их регистров (0602), а конечный автомат возвращается в исходное состояние.
В остальных случаях (0603) проверяется, не содержит ли запись в памяти типа Е!ЬМО, на которую указывает УЧтен, пустой команды, т.е. не идет ли речь о маркированной как удаленная записи в середине памяти типа ЕШМО. При принятии отрицательного решения (0604) предпринимается попытка ввести данные этой записи в конфигурируемый элемент (КЭЛ). Если сделать этого не удается (сигнал НЕПРИНЯТИЕ, 0605), поскольку КЭЛ находится в не допускающем реконфигурацию состоянии, то регистр Начало_Е устанавливается в состояние ложно, значение УЗаполн уменьшается, а значение УЧтен увеличивается на одну единицу. При этом конечный автомат переходит в начало цикла отработки (0606).
Если же данные соответствующей записи удается записать в КЭЛ (0607) или если запись представляет собой пустую команду, то прове35 ряется регистр Начало_Е, который может находиться в двух следующих состояниях.
Регистр Начало_И находится в состоянии истинно (Начало_И= =истинно (0608)): Перед этим регистром нет никаких неудаленных записей. Значение УЗаполн увеличивается на одну единицу, а значение УЧтен сохраняется в соответствующем регистре с целью зафиксировать новое начало записей в памяти типа НЬМО. Значение УЗаполн сохраняется с целью зафиксировать текущий объем данных; значение УЧтен увеличивается на единицу.
Регистр Начало_И находится в состоянии ложно (Начало_И= =ложно (0609)): Значение УЗаполн увеличивается на единицу, а текущая запись в НЬМО-ЗУПВ перезаписывается пустой командой, т.е. эта запись стирается. Значение УЧтен увеличивается на единицу.
В обоих случаях конечный автомат переходит в начало цикла отработки.
2. Режим записи (0610).
Сначала степень заполнения НЬМО-ЗУПВ путем проверки УЗаполн на максимальное значение. При наличии максимального значения (0611) происходит переход в режим чтения с целью освободить место в памяти.
В остальных случаях слово данных записывается в НЬМО-ЗУПВ, а значения УЗапис и УЗаполн увеличиваются на единицу.
На фиг. 7 показана схема, поясняющая работу главного конечного автомата, который выходит из исходного состояния (холостого режима) при наступлении следующих событий:
1. От ТК более высокого уровня поступает команда удаления КЕМОУЕ (0701).
Эта команда КЕМОУЕ выполняется и конечный автомат возвращается в холостой режим.
2. Поступает триггерный сигнал для генерирования триггерного сигнала, передаваемого между ТК (0702).
Выдается триггерный сигнал, а конечный автомат переходит к команде останова 8ТОР и затем возвращается в холостой режим.
3. Поступает триггерный сигнал для выполнения ПК/ПККА с соответствующим идентификатором <ГО> (0703).
Указатель программы (УПР) загружается с адресом, сгенерированным просмотровой таблицей ПТ2. Если этот адрес недостоверен, т.е. если отсутствует запись для загружаемой ПК/ПККА, то последняя загружается (0704), а значение УПР задается вновь.
После этого начинается цикл выполнения, заключающийся в следующем. Значение УПР увеличивается на единицу (при первом выполнении цикла в результате этого пропускается команда ВЕС1Л <Ш>), появление других триггерных сигналов блокируется и запрещается подача сигнала реконфигурирования Реконфиг. Команды выполняются, и происходит переход в начало цикла (0707). Команда останова
8ТОР выполняется отдельно (0705). После этого вновь разрешается подача триггерных сигналов и сигнала реконфигурации Реконфиг, а конечный автомат переходит в холостой режим.
Команда выполнения ЕХЕСЬТЕ также выполняется отдельно (0706). Указанный в команде ЕХЕСЬТЕ <ГО> идентификатор записывается в регистр идентификаторов (РЕГ-ИД). УПР загружается вновь, и начинается выполнение той ПК/ПККА, на которую указывает идентификатор (0708).
После сброса таблицы-конфигуратора в ТК-ЗУ загружается основная конфигурация и происходит переход к непосредственному выполнению этой основной конфигурации (0709).
На фиг. 8 показана структура АРБ-ОЦКО. Подвергаемые арбитрированию сигналы поступают через информационный вход (входные данные) на маскирование в блок (0801), который в соответствии с известной таблицей разрешает, соответственно блокирует последующую передачу взаимосвязанной части сигналов. Обычный известный из уровня техники арбитр (0802) разрешения конфликтов на основе приоритетов подвергает арбитрированию один сигнал из всего количества разрешенных к дальнейшей передачи сигналов и выдает вектор его двоичного значения (выходной двоичный вектор) вместе с меткой достоверный/недостоверный (выходная метка достоверности) (что также известно из уровня техники) в качестве выходного сигнала АРБ-ОЦКО. Этот сигнал декодируется в соответствии с известной таблицей (0803) и поступает в регистр для тактовой синхронизации (0804). Указанный регистр переключает маску информационного входа. При этом управление этим регистром осуществляется либо тактовым импульсом, либо следующим сигналом (разрешение, ЕЛ), по которому запрашивается следующий достоверный двоичный вектор. При наличии сигнала сброса или при наличии метки, указывающей на недостоверность (вывод метки достоверности), регистр переключается таким образом, чтобы маска информационного входа пропускала все сигналы.
Структура маски показана под позицией 0805. Под позицией 0806 маска изображена еще раз, при этом в соответствии с принципом ОЦКО входные информационные сигналы 0...1 (входные данные 0 ... входные данные 1) имеют одинаковый приоритет, а входные информационные сигналы т.п (входные данные т ... входные данные п) имеют более высокий приоритет.
На фиг. 9 показана структура просмотровой таблицы (ПТ). Двоичный вектор (входной двоичный вектор) подвергаемого арбитрированию триггерного сигнала поступает на адресный вход ПТ1 (0901). ПТ1 транслирует этот двоичный вектор либо в достоверный триггерный сигнал с целью его дальнейшей передачи в другую ТК, либо в достоверный идентификатор.
Оба они выдаются по шине (0910). Сигнал, выдаваемый по шине (0911), указывает, идет ли речь о триггерном сигнале или об идентификаторе.
Если при поступлении команды ссылки ΕΕΕΈΕΕΝί,Έ окажется, что в ПТ1 не содержится никакой информации по трансляции поступившего двойного вектора, то с помощью записи определенного бита или сравнения с определенным маркером (например, с маркером пустая операция) генерируется сигнал недопустимый триггерный сигнал (0914).
Триггерный сигнал по обозначенной позицией 0912 шине поступает во внешние ТК, а идентификаторы в последующем обрабатываются мультиплексором (0902). Мультиплексор (0902) коммутируется либо информационным выходом ПТ1, указывающим достоверный идентификатор, либо регистром идентификатора (0903) ТК на адресный вход ПТ2 (0904). ПТ2 (0904) имеет структуру, аналогичную кэшу, т.е. состоящая из младших разрядов часть (0906) с информационного выхода мультиплексора (0902) коммутируется на адресный вход ПТ2 (0904), а состоящая из старших разрядов часть (0907) коммутируется на информационный вход ПТ2 (0904). Данные с информационного выхода ПТ2 (0904) сравниваются компаратором (0905) со старшими разрядами (0907). Преимущество такого способа заключается в том, что ПТ2 (0904) не должна иметь такой размер, который необходим для трансляции всех идентификаторов, благодаря чему ее размер можно значительно уменьшить. Аналогично обычному кэшу транслируется лишь часть идентификаторов, при этом в ПТ2 на основании старших разрядов (0907) можно установить, соответствует ли выбранный идентификатор идентификатору, указанному ПТ1. Такой подход соответствует известному из уровня техники методу кэширования/тегирования.
Со вторым информационным входом ПТ2 (0904) функционально связан мультиплексор (0908), который в зависимости от выполняемой команды выдает значение указателя свободных ячеек памяти (УСП, команда загрузки ЬОАЭ), значение указателя мусора (УМУ, команда удаления ВЕМОУЕ) или метку/маркер недостоверный (маркер отсутствия адреса нет_адреса, команда удаления ВЕМОУЕ) для сохранения в ПТ2. Оба указателя ссылаются на ячейки памяти в ТК-ЗУ, а маркер нет_адреса указывает на отсутствие записи, соответствующей требуемому идентификатору, т.е. указывает на то, что запись была удалена. Вся эта информация определяется на информационном выходе, где компаратор (0909) сравнивает данные с маркером отсутствия адреса нет_адреса.
Далее в конечный автомат поступает следующая информация:
двоичный вектор, характеризуемый входной меткой достоверности (ср. фиг. 8);
указание на то, является ли результатом трансляции в ПТ1 триггерный сигнал или идентификатор (0911, выходной триггерный сигнал/идентификатор). Триггерные сигналы по шине (0912) подаются далее в другие ТК, а идентификаторы обрабатываются в собственной ТК и передаются далее в ПТ2;
результат, полученный компаратором (0905) и указывающий, хранится ли соответствующий идентификатор в ПТ2 (0904) (выходная информация о совпадении/несовпадении);
результат, полученный компаратором (0909) и определяющий, указывает ли соответствующий идентификатор на достоверный адрес в ТК-ЗУ (выходной сигнал нет_записи).
Адрес, сгенерированный ПТ2 (0904), поступает далее в ТК-ЗУ (выходной адрес ТКЗУ).
По команде ссылки ΒΕΕΕΒΕΝΕΈ в ПТ1 загружается информация, полученная в результате трансляции поступившего двоичного вектора в триггерный сигнал или в идентификатор. Операнды команды по шине (0913) передаются в ПТ1. По той же шине происходит загрузка регистра идентификаторов (0909).
На фиг. 10 показана структура арифметического устройства указателей, обеспечивающего работу указателя мусора (УМУ), указателя программы (УПР), указателя перемещения (УПЕ) и указателя свободных ячеек памяти (УСП). Каждый указатель состоит из отдельно управляемого загружаемого реверсивного счетчика. В каждый такой счетчик при необходимости может быть загружено показание любого другого счетчика, равно как и значение, выдаваемое ПТ2 (1007).
Компаратор определяет, равно ли
1. значение УПР значению УПЕ;
2. значение УПЕ значению УСП;
3. значение УСП максимальному положению в ТК-ЗУ.
Результаты этого сравнения используются для управления конечными автоматами.
Через мультиплексор (1001) значение одного из указателей подается на адресный вход ТК-ЗУ. Кроме того, в ТК-ЗУ через мультиплексор (1002) поступают данные либо из ТК более высокого уровня (1005), либо из регистра (1003). Через мультиплексор (1004) данные либо от ТК более высокого уровня, либо от ТК-ЗУ передаются далее в конечный автомат и в память типа Е1ЬМО (1006). При этом при появлении от ТК более высокого уровня команды удаления КЕМОУЕ она напрямую через мультиплексор (1004) передается в конечный автомат, а в остальных случаях в конечный автомат поступают команды из ТК-ЗУ. Регистр (1003) служит для сохранения тех команд и их подачи по цепи обратной связи на вход ТК-ЗУ, которые в цикле работы сборщика мусора перемещаются с одного адреса на другой.
На фиг. 11 показана структура памяти типа МЬМО. Данные поступают в память типа МЬМО из ТК-ЗУ (1101) и либо записываются через мультиплексор (1102) в МЬМО-ЗУПВ (1103), либо посылаются через мультиплексор (1104) в конфигурируемые элементы (1116). При стирании данных из МЬМО-ЗУПВ (1103) в него через мультиплексор (1102) записывается маркер пустая команда. Наличие этого маркера пустая команда на информационном выходе распознается компаратором (1105) и запись в конфигурируемые элементы блокируется. Через мультиплексор (1106) на адресный вход МЬМОЗУПВ (1103) подается значение либо указателя записи (1107), либо указателя чтения (1108). Значение указателя чтения сохраняется в регистре (1109), что позволяет вернуться к исходному состоянию (ср. фиг. 6).
Значение счетчика степени заполнения (СЗаполн, 1110) МЬМО-ЗУПВ (1103) сохраняется согласно фиг. 6 в регистре (1111) для возможности возврата в исходное состояние. Двумя компараторами проверяется, является ли ИЬМО-ЗУПВ (1103) пустым (1112) или полностью заполненным (1113). Назначение мультиплексора (1115) состоит в выборе, посылать ли в конфигурируемые элементы (1116) управляющие сигналы от конечного автомата (из ТК-ЗУ (1101)) или от памяти типа МЬМО.
На фиг. 12а показана схема иерархической структуры таблиц-конфигураторов. Данные во все ТК поступают от корневой ТК (1201) и из функционально связанной с ней внешней конфигурационной памяти (ВКП, 1204). Для каждого уровня реализации в микросхеме существует одна или несколько ТК. Каждая ТК отвечает за управление своим уровнем и расположенными на более низком уровне ТК. Все ветви дерева необязательно должны иметь одинаковый размер (глубину). Так, например, для управления периферийными устройствами (1202) микросхемы можно предусмотреть меньшее количество уровней, чем для управления рабочими модулями (1203). Пересылка данных происходит по типу древовидной структуры. Каждая ТК работает в качестве кэша для всех расположенных под ней ТК.
На фиг. 12б показана схема, иллюстрирующая поток триггерных сигналов между ТК. Если поток данных имеет древовидную структуру, то структура потока триггерных сигналов однозначно не определена. Любая ТК может послать триггерный сигнал любой другой ТК. Обычно обмен триггерными сигналами происходит только в направлении от листьев (1203) к корневой ТК (1201). Однако при определенных условиях передача этих сигналов может происходить и в обратном направлении.
На фиг. 12в показан вектор триггерного сигнала, передаваемого в широковещательном режиме от ТК (1205) всем другим ТК.
На фиг. 12г показан вектор триггерного сигнала, который ТК (1206) посылает во все ТК, расположенные на более высоком уровне. ТК (1207) посылает вектор триггерного сигнала во все ТК, расположенные на более низком уровне. ТК (1208) передает непосредственно адресованный вектор триггерного сигнала в определенную ТК, не связанную непосредственно с ТК (1207).
На фиг. 13 показана схема, иллюстрирующая процесс, в котором две независимые ПККА пи т вызывают общую, кэшированную в ТК более высокого уровня ПК х. На этой схеме показано, что эта ПК кэшируется всей ветвью и доступна также для соседней ветви (1301) через общую ТК.
На фиг. 14 показана видоизмененная по сравнению с фиг. 9 ПТ-система, используемая в корневых ТК и ТК средних иерархических уровней. Основное отличие от описанных ранее ТК состоит в том, что вместо отдельных триггерных сигналов данная ТК должна управлять векторами идентификаторов и/или триггерных сигналов. При этом для подтверждения достоверности векторов для каждого вектора предусмотрен квитирующий сигнал (ΚΌΥ), который поступает в арбитр (1401). С помощью мультиплексоров (1402, 1403) выбирается либо один из векторов триггерных сигналов, либо один из векторов идентификаторов (1405). Векторы триггерных сигналов поступают непосредственно на адресный вход ПТ1 (1406), которая в остальном имеет показанную на фиг. 9 схему соединений. Регистр идентификаторов (1407) также имеет показанную на фиг. 9 схему соединений. В отличие от фиг. 9, мультиплексор (1408) имеет три входа (ср. 0902). При этом указанным мультиплексором, помимо конечного автомата, дополнительно управляет арбитр (1401). Через дополнительный вход векторы идентификаторов напрямую направляются мультиплексором (1403) дальше в ПТ2. Для этой цели предусмотрена шина (1409). (В принципе, и у ТК по фиг. 9 идентификаторы могут непосредственно подаваться мультиплексором (1408) в ПТ2. В этом случае КЭЛ могут напрямую без трансляции посылать идентификаторы в ПТ2.) Выходной триггерный сигнал/идентификатор формируется аналогично фиг. 9. Входной сигнал с меткой достоверности (входная метка достоверности), который в варианте по фиг. 9 переходит далее в выходной сигнал с меткой достоверности (выходная метка достоверности), в данном случае отсутствует. Вместо него в зависимости от арбитрирования арбитром (1401) формируется выходной достоверный триггерный сигнал для векторов триггерных сигналов и выходной достоверный идентификатор для векторов идентификаторов, что позволяет сообщить конечному автомату, как должна происходить обработка данных.
Шина (1409) через шину (1410) проходит к следующему модулю, который существует только в корневой ТК и описан ниже со ссылкой на фиг. 15.
Для корневой ТК в дополнение к обычным функциям обычной ТК необходим интерфейс для взаимодействия с внешней конфигурационной памятью (ВКП), а также соответствующий генератор адресов и устройства для управления запросами по обращению к этой ВКП.
Обычная ТК транслирует в ПТ1 поступающие векторы триггерных сигналов в определенный идентификатор, а в ПТ2 транслирует идентификатор в адрес ячейки ТК-ЗУ (см. фиг. 1ба). Корневая ТК при обращениях к ВКП транслирует идентификатор в пределах этой ВКП в адрес в ВКП, с которого начинается та ПК/ПККА, на которую ссылается данный идентификатор. С этой целью в ВКП задана определенная область, объем которой соответствует возможному количеству идентификаторов (если, например, один идентификатор имеет 10разрядную длину, то в результате возможно существование 210=1024 идентификаторов, т.е. в ВКП резервируется место под 1024 записей). В рассмотренных ниже примерах эта область памяти расположена в нижнем конце ВКП и названа как ПТ-ВКП для того, чтобы подчеркнуть сходство с просмотровой таблицей ПТ2. Трансляция тригтерного сигнала в определенный идентификатор происходит при этом в ПТ1 в соответствии с уже известными ТК (1б01). Для пояснения на фиг. 1б поясняется процесс обращения к ВКП.
Согласно фиг. 15 идентификатор поступает по показанной на фиг. 14 шине (1410) в мультиплексор (1501). Мультиплексор (1501) записывает этот идентификатор в загружаемый счетчик (1502). Выход счетчика (1502) через мультиплексор (1503) соединен с адресной шиной (1504) ВКП. По информационной шине (1505) полученный в результате трансляции идентификатора адрес ячейки памяти через мультиплексор/демультиплексор (150б) поступает в мультиплексор (1501), который загружает этот адрес ячейки памяти в счетчик (1502). После этого загрузочный конечный автомат (см. фиг. 17) считывает слова данных соответствующих ПК/ПККА из ВКП и записывает их в ТК-ЗУ, при этом значение счетчика (1502) после каждой операции считывания увеличивается. Этот процесс продолжается до тех пор, пока не будет считана команда останова 8ТОР.
Через интерфейс 1507 хост-машина более высокого уровня записывает ПК/ПККА через мультиплексоры (1503/1506) в ВКТ. При этом управляющий конечный автомат (КАТК) осуществляет арбитраж, решая, предоставлять доступ к ВКТ хост-машине или корневой ТК.
После сброса установок микросхемы в начальное состояние необходимо произвести загрузку основной конфигурации (используемая для самозагрузки программа конфигурирования Загр-ПК). С этой целью вводится постоянный адрес ячейки памяти (АДР-ЗАГР), указывающий на первую ячейку памяти Загр-ПК. В качестве адреса самозагрузки (АДР-ЗАГР) целесообразно использовать ячейку памяти 011, если идентификаторы начинаются с 1, в противном случае можно использовать ячейку памяти 2Ιϋ или какую-нибудь другую ячейку. В данном примере используется ячейка памяти 2Ιϋ.
Для загрузки Загр-ПК корневая ТК осуществляет в ячейке памяти, соответствующей адресу АДР-ЗАГР, поиск в том случае, если какаялибо Загр-ПК загружена. Корневая ТК записывает данные в счетчик (1502) с целью загрузить из него Загр-ПК до появления команды останова 8ТОР.
Устройство контроля в корневой ТК берет на себя функции по синхронизации хостмашины с микросхемой. Этот процесс происходит следующим образом.
Адреса со значением меньше 2Ιϋ контролируются блоком (1508), т.е. при обращении по этим адресам со стороны хост-машины в управляющий конечный автомат (КАТК) посылается сигнал АСС-ΙΌ. Аналогичным образом адрес АДР-ЗАГР контролируется блоком (1509), который передает в управляющий конечный автомат (КАТК) сигнал АСС-ВООТ.
Управляющий конечный автомат (КАТК) срабатывает на эти сигналы следующим образом:
если хост-машина осуществляет запись по адресу АДР-ЗАГР, то инициируется загрузка программы Загр-ПК;
если хост-машина осуществляет запись слова данных 0 (1512) по адресу АДР-ЗАГР, то это фиксируется компаратором (1510) с приостановкой работы микросхемы;
если хост-машина осуществляет запись по адресу, значение которого меньше 2Ιϋ, то этот адрес загружается в регистр удаленных идентификаторов (1511). Поскольку этот адрес соответствует идентификатору (см. ПТ-ВКП), то идентификатор измененной ПК/ПККА попадает в этот регистр удаленных идентификаторов (1511). Всем ТК передается (1513) подлежащая немедленному выполнению команда удаления ВЕМОУЕ <ΙΌ>. После этого ТК удаляют из своих ТК-ЗУ, соответственно ПТ2 те ПК/ПККА, которые соответствуют этому идентификатору. При последующем вызове таких ПК/ПККА таблицы-конфигураторы должны автоматически загружать новые ПК/ПККА из ВКП.
На фиг. 17 показана схема, поясняющая работу корневой ТК при загрузке ПК/ПККА из ВКП. При отсутствии идентификатора во внутреннем ТК-ЗУ (ср. фиг. 1, 1701) этот идентификатор записывается (1703) в счетчик (1502). В ответ на обращение к ВКП по адресу, имеющемуся в счетчике (1502), выдается базовый адрес ПК/ПККА. Этот адрес записывается (1704) в счетчик (1502). Далее в соответствии с процессом, описанным со ссылкой на фиг. 2, осуществляется загрузка (1702). При этом данные считываются не из ТК более высокого уровня, а из ВКП (1705) и не только записываются в собственное ТК-ЗУ, но и пересылаются в ТК более низкого уровня (1706).
В ТК среднего иерархического уровня трансляция триггерных сигналов осуществляется аналогично фиг. 1, за исключением того, что обработка векторов триггерных сигналов и векторов идентификаторов выполняется в соответствии с фиг. 14. ПК/ПККА загружаются аналогично фиг. 2, за исключением того, что слова данных не только записываются (0210) в собственное ТК-ЗУ, но и пересылаются в ТК более низкого уровня.
На фиг. 19 поясняется принцип очереди МЬМО. При обращении к памяти типа НЬМО (1901) в режиме чтения и записи прогон ее содержимого всегда выполняется от начала до конца (1902). При записи и стирании записей от начала памяти типа ИЬМО указатель чтения перемещается на первую неудаленную запись (1904). При записи данных в середину памяти типа НЬМО (1905) указатель чтения остается неизменным (1906), а записи помечаются маркером пустая операция (1907). При записи данных в память типа НЬМО (1908) они вводятся с конца, за последней записью (1909). Указатель чтения (1910) остается при этом неизменным.
Очевидно, что ТК можно реализовать только с использованием одного запоминающего устройства, включающего ПТ1, ПТ2 и ТКЗУ. Однако управление такой ТК будет более сложным. При этом структура ТК аналогична структуре корневой ТК, у которой в ВКТ уже интегрированы ПТ2 и ТК-ЗУ. Для пояснения предлагаемого способа нет необходимости в описании таких ТК.
Если ТК используется в качестве системы с кэшированием данных, то триггерные сигналы для записи данных вводятся в ТК-ЗУ. При этом данные записываются в ТК-ЗУ конфигурируемым элементом. Необходимые для этого изменения являются очевидными, а память типа МЬМО можно полностью исключить. При кэшировании данных возникает проблема связности данных. Этой проблемы можно избежать, использовав предложенный в ΌΕ 4221278 А1 способ для маркирования данных и их достоверности на отдельных иерархических уровнях. При запросе данных для выполнения цикла их чтения-изменения-записи (ЧИЗ-цикла) данные на всех иерархических уровнях маркируются как недостоверные с помощью дополнительной записи, вводимой в ТК-ЗУ/ВКП. С этой целью можно ввести запись, которая содержит однозначно определенный идентификатор использующих эти данные ПК/ПККА. Ни одна из ПК/ПККА с другим идентификатором не смо жет использовать эти данные до тех пор, пока использующая эти данные ПК/ПККА не перезапишет указанные данные (ср. известный метод перезаписи) и не удалит свой идентификатор.
Сказанное выше поясняется на примере, представленном на фиг. 20.
Согласно фиг. 20а ТК (2007) запрашивает данные у ТК следующего более высокого уровня, которая, в свою очередь, запрашивает данные у корневой ТК (2004), при этом вместе с запросом данных передается идентификатор запрашивающей ПК/ПККА (2001). Запрошенные данные (2002) пересылаются в ТК (2007). Все остальные, последующие запросы на доступ отклоняются (2003).
Согласно фиг. 20б данные перезаписываются (2005) в другие, последующие запросы на доступ снова принимаются (2006).
Согласно фиг. 20в данные запрашиваются у ТК среднего иерархического уровня, которая имеет эти данные и пересылает их в ТК (2007). Идентификатор для блокирования данных посылается (2001) во все ТК иерархии.
При перезаписи данных согласно фиг. 20г данные записываются во все ТК иерархии, а соответствующий идентификатор удаляется.
На фиг. 21 показана схема, поясняющая связь ТК-ИНИЦИАТОРА (2101) с ТКАДРЕСАТОМ (2102) через несколько промежуточных ТК (2104, 2105, 2106), а также прямую связь без промежуточных уровней с ТКАДРЕСАТОМ (2103) в соответствии с методом, предусматривающим использованием команд СЕТСТ8/ЬОО8ЕСТ8.
ТК (2101) устанавливает связь с ТК (2103). После успешного установления связи ТК (2101) получает от ТК (2103) сигнал РАЗРЕШЕНИЕ, подтверждающий установление связи. После этого ТК (2101) через ТК (2104), ТК (2105), ТК (2106) устанавливает связь с ТК (2102). Связь с ТК (2102) подтверждается (сигнал РАЗРЕШЕНИЕ) лишь после того, как запрос поступит в ТК (2102).
Если связь установить невозможно, поскольку одна из шин занята, в ТК (2101) посылается сигнал отклонения запроса НЕПРИНЯТИЕ и ТК (2101) прекращает этот процесс. Это означает, что прерывается и связь с ТК (2103), а в ТК 2103 передается сигнал НЕПРИНЯТИЕ.
Если же ТК (2102) подтверждает установление связи сигналом РАЗРЕШЕНИЕ, то ТК (2101) посылает в ТК (2103) и ТК (2102) команду перехода СО с целью одновременно подтвердить таблицам-конфигураторам (2103) и (2102) успешное установление связи по шине и синхронизацию. Указанный протокол позволяет передавать данные и команды синхронно и без взаимоблокировки, поскольку команда перехода СО обеспечивает корректный прием команд всеми АДРЕСАТАМИ.
На фиг. 22 показана схема, поясняющая связь между таблицами-конфигураторами (меж45
ТК-связь) в соответствии с методом, предусматривающим использованием команд ΟΕΤΒυ8/^ОО8ΕΒυ8. Если в варианте по фиг. 21 соответствующие ТК более высокого уровня выполняют функцию управления и присвоения приоритетов, то в данном случае функции управления берут на себя меж-ТК-шины (2201).
Связь с ТК (2103) устанавливается при запросе ТК-ИНИЦИАТОРОМ (2101) его локальной меж-ТК-шины (2202). Запросы подтверждаются в том случае, если шина свободна (сигнал ПРИНЯТИЕ), или отклоняются, если шина занята (сигнал НЕПРИНЯТИЕ). После этого ТК-ИНИЦИАТОР передает на шину адрес ТК (2102). В соответствии со схемой адресации контроллер шины определяет, что указанный адрес находится вне адресов локальной шины, и устанавливает через ТК более высокого уровня (2104) связь с ее локальной шиной (2203). Поскольку адрес ТК (2102) находится среди адресов этой шины, через ТК (2106) устанавливается связь с локальной шиной (2204) ТК (2102). Благодаря тому, что по завершении этого процесса ТК (2101) становится единственным устройством, управляющим обменом данных по всем необходимым для передачи таких данных шинам (т.е. является так называемым хозяином шины), обеспечивается беспрепятственная и исключающая взаимоблокировку связь, поскольку для всех других ТК каналы связи заблокированы. При этом ТК (2102) и (2103) также не могут использовать эти шины, поскольку они как АДРЕСАТЫ могут только принимать команды, а посылать данные они могут только по запросу ИНИЦИАТОРА (2101).
Сразу же по окончании связи шины освобождаются по сигналу от ТК (2101).
Если ТК (2101) в процессе установления связи по шинной системе натолкнется на занятую шину, то в эту ТК (2101) посылается сигнал НЕПРИНЯТИЕ и ТК (2101) снова освобождает шинную систему и пытается установить связь в более поздний момент времени. При одновременном запросе несколькими ТК одной и той же шины приоритет отдается ТК более высокого уровня (2205). Тем самым удается избежать возникновения ситуации, при которой процесс установления связи по шине, прошедший уже через несколько уровней, будет прерван другим процессом установления связи по шине, происходящим еще на сравнительно низком локальном уровне.
Расширенный протокол позволяет в случае поступления сигнала НЕПРИНЯТИЕ освобождать только те шины, которые необходимы для имеющего более высокий приоритет процесса установления связи по шине. В результате, может быть достигнуто значительное повышение быстродействия, поскольку в более поздний момент времени не придется снова устанавливать связь по всем шинам.
Структура меж-ТК-шины, используемой для связи согласно фиг. 22, показана на фиг. 23. ТК (2301-2304) через свои интерфейсы (23082311) вместе с ТК (2305) более высокого уровня (интерфейс (2307)) соединены с меж-ТК-шиной (2312). Подключение к меж-ТК-шине происходит через арбитр кругового обслуживания, который присваивает интерфейсам (2308-2311) одинаковый приоритет, а интерфейсу (2307) более высокий приоритет и который управляет мультиплексором для межсоединения шин (2306). С этим арбитром функционально связан конечный автомат, который обрабатывает управляющие сигналы (например, сигналы установления/прекращения связи, сигналы ПРИНЯТИЕ, НЕПРИНЯТИЕ и т.д.).
На фиг. 24 показана схема распределения адресов в одномерном дереве ТК. Каждая таблица-конфигуратор обозначена прямоугольником, внутри которого указан адрес ТК. При этом значком помечены нерелевантные двоичные разряды адреса, которые не подвергаются обработке, релевантные двоичные разряды адреса указаны в виде двоичных значений 0 или 1, а значком * обозначен тот разряд адреса, который может принимать любое из значений. Очевидно, что аналогичная схема равным образом применима и к многомерным деревьям, при этом указанные адреса будут в каждом случае соответствовать одной из осей. Иными словами, для каждой оси существует соответствующая отдельная система адресов.
На фиг. 24а показана схема адресации, осуществляемой из ТК 0001. При этом указан относительный адрес -1. Путем вычисления 1+1=00 (относительное перемещение+адрес ТК-ИНИ-ЦИАТОРА на текущем уровне) можно вычислить ТК 0000, которая закоммутирована на ту же локальную шину.
Согласно фиг. 24б ТК 0010 обращается по относительному адресу +10. Вычисление 10+0=10 (относительное перемещение+адрес ТК-ИНИЦИАТОРА на текущем уровне) дает перенос 1, поскольку поле адресов локальной шины самого нижнего уровня имеет длину ровно 1 бит. В результате, выбирается шина следующего, более высокого уровня. Вычисление ее адреса 10+10=100 (относительное перемещение+адрес ТК-ИНИЦИАТОРА на текущем уровне) снова дает перенос, поскольку ее поле адресов является 2-разрядным, что ровно на один разряд больше поля адресов шины самого нижнего уровня. На следующем, более высоком уровне при вычислении 10+010=0100 не возникает переноса, в результате чего 3-ий (слева) бит адресуется по маршруту 1 * * следующего, более низкого уровня, 2-ой (слева) бит адресуется по маршруту 10 * следующего за предыдущим еще более низкого уровня и, наконец, последним битом выбирается ТК-АДРЕСАТ.
На фиг. 24в показан известный способ прохождения 2-х уровней в положительном (прямом) направлении, а на фиг. 24г показан способ прохождения 3-х уровней в отрицательном (обратном) направлении с отрицательным переносом.
На фиг. 25 показана структура двухмерного дерева ТК. На самом нижнем уровне (2502) находятся ТК (2501) с двухмерным расположением. Адрес соответствующей ТК в таком двухмерном дереве указан в виде х/у. Над уровнем (2502) расположен следующий, более высокий уровень (2504). Каждая из его таблицконфигураторов (2503) управляет своей группой из четырех ТК уровня (2502). Адресное пространство таблиц-конфигураторов на уровне (2504) на один разряд больше, при этом значок * обозначает адресные разряды уровня (2502), не имеющие значения для выбора ТК на уровне (2504). Выше над уровнем (2504) расположена корневая ТК (2505). Ее адрес, в свою очередь, еще на один разряд больше, а значок * имеет при этом то же значение.
На фиг. 26 показана схема, поясняющая процесс создания связанного списка для сборщика мусора при реализации на базе микроконтроллера. При этом все ПК связаны друг с другом через записи-заголовки (предыдущий мусор/следующий мусор). При просмотре списка сборщиком мусора возраст ПК протоколируется для кэш-статистики (2602) путем увеличения записи на (+1). Сборщик мусора проверяет запись в ПК-статистике (2601), которая указывает на то, находится ли еще эта ПК в списке памяти типа ИЬМО. В этом случае ПК не подлежит удалению сборщиком мусора, поскольку она еще содержит не использованные для конфигурирования конфигурационные слова. В другом варианте такую проверку можно также осуществлять по записям в памяти типа ИЬМО, контролируя следующую ИЬМО-запись и предыдущую ИЬМО-запись.
На фиг. 27 показана схема, поясняющая процесс создания связанного списка для памяти типа ИЬМО. При этом в данном случае схема сцепления отдельных элементов может полностью отличаться от схемы, предусмотренной в связанном списке для сборщика мусора (фиг. 26). ПК объединены друг с другом в связанный список предыдущими и следующими ИЬМОзаписями. Записи в ПК-статистике (2701) указывают в каждом случае на первое еще не использованное при конфигурировании КС в соответствующей ПК. Прогон содержимого памяти типа ИЬМО осуществляется таким образом, чтобы с первым идентификатором происходил запуск ПК. После выполнения не использованное при конфигурировании слово записывается в положение, находящееся после ПК-статистики (2701). При выполнении ПК в полном объеме эта ПК удаляется из связанного списка памяти типа ИЬМО, но остается в памяти. После этого осуществляется переход по списку памяти типа
ИЬМО к следующей ПК, обрабатываемой аналогичным образом.
На фиг. 28 показана схема, поясняющая структуру ПК при микроконтроллерном управлении. Вначале стоит команда перехода )шр. по которой осуществляется пропуск заголовка (2801) ПК. Каждому КС соответствует свой двоичный разряд в буферной памяти ИЬМО (ИЬМО-БИТ, 2802). 1 (2803) означает, что КС было принято конфигурируемыми элементами (сигнал ПРИНЯТИЕ) и при следующем прогоне больше не выполняется. 0 (2804) указывает на получение сигнала НЕПРИНЯТИЕ и на необходимость выполнить это КС вновь при следующем прогоне. В информации, содержащейся в ПК-статистике (2701), наличие которой является необязательным, содержится указание на первое маркированное 0 конфигурационное слово. При получении сигнала НЕПРИНЯТИЕ в ответ на команду РИ8НКЕТ (2805) отработка ПК в этом месте прерывается и начинается вновь при следующем прогоне либо с первого КС, либо с того места, на которое указывает запись в ПК-статистике (2701). В остальных случаях происходит надлежащий выход из программы в ее конце на позиции 2806.
На фиг. 29 показана схема, иллюстрирующая процесс сохранения информации о состоянии КЭЛ перед прогоном содержимого памяти типа ИЬМО или перед запуском ПК. Эта информация о состоянии поступает из КЭЛ (2901) в регистр (2902). Перед прогоном содержимого памяти типа ИЬМО или перед запуском ПК таблица-конфигуратор посылает в регистр (2902) разрешающий сигнал (2903). После этого информация о состоянии извлекается из регистра и передается далее в ТК (2904). ТК (2904) остается неизменной до посылки следующего разрешающего сигнала (2903).
Определение понятий
ПРИНЯТИЕ: сигнал, указывающий, что адресуемый КЭЛ находится в допускающем конфигурирование состоянии и принимает КС.
Групповые команды (в частности, команда перемещения блока ВЬОСК-МОУЕ): команды, по которым происходит перемещение группы данных (блока) в памяти или между памятью и периферийными устройствами. При этом указывается исходный адрес перемещаемых данных, адрес получателя данных и размер блока данных.
Широковещание: передача информации множеству получателей данных.
Получатель (адресат) данных: устройство(а), осуществляющее(ие) последующую обработку результатов, полученных в КЭЛ.
Источник данных: устройство(а), предоставляющее(ие) конфигурируемым элементам данные в виде операндов.
Слово данных: слово данных состоит из имеющей произвольную длину последовательности бит. Эта последовательность бит пред49 ставляет собой элементарную единицу информации, обрабатываемую вычислительным устройством. В виде такого слова данных могут быть закодированы как команды для процессоров или аналогичных микросхем, так и данные в чистом виде.
Взаимоблокировка: состояние, в котором из-за взаимной блокировки невозможна никакая обработка данных.
ПП: потоковый процессор, описанный в БЕ 4416881.
ДПВМ: динамически конфигурируемые ПВМ, известны из уровня техники.
Элементы: собирательный термин для всех видов имеющих законченное исполнение блоков и модулей, которые могут быть использованы в электронной микросхеме в качестве единого целого. Таким образом, такими элементами являются следующие:
конфигурируемые ячейки любого вида, кластеры, блоки ЗУПВ, логические схемы, арифметико-логические устройства, регистры, мультиплексоры, штырьковые входные-выходные выводы чипа.
Событие: событие может быть обработано аппаратным элементом каким-либо соответствующим прикладной задаче методом и может инициировать в ответ на такую обработку выполнение обусловленного им действия. Таким образом, в качестве примера таких событий можно назвать следующие:
тактовый импульс вычислительного устройства или компьютера, внутреннее или внешнее прерывание, триггерный сигнал, поступающий от других элементов в пределах микросхемы, сравнение потока данных и/или потока команд с определенным значением, события по вводу-выводу, антипереполнение, переполнение, обновление и т. д. счетчика, обработка сравнения.
ΕΙΕΟ: память типа ΕΙΕΟ (память обратного магазинного типа), известна из уровня техники.
ΕΙΕΜΟ: модифицированная память типа ΕΙΕΟ, из которой данные считываются линейно. Ограничение указателя чтения началом памяти отсутствует.
ПВМ и ИИВМ: программируемый (пользователем) логический элемент, известен из уровня техники.
Фрагментация: разбиение памяти на множество часто небольших и поэтому бесполезных областей.
Сборщик мусора: устройство для управления памятью, предотвращающее ее фрагментацию.
Н-уровень: уровень логической 1, зависит от используемой технологии.
Хост-машина: ведущее вычислительное устройство более высокого уровня по отношению к микросхеме или блоку.
Холостой цикл или холостой режим: цикл, в котором конечный автомат не выполняет никаких операций, соответствует исходному состоянию конечного автомата.
Меж-ТК-шина: система шин между ТК одного уровня и ТК (или группой ТК) более высокого уровня.
ИНИЦИАТОР: ТК, инициирующая доступ к меж-ТК-шине.
Указатель: указатель адреса, соответственно слова данных.
Конфигурируемый элемент (КЭЛ): конфигурируемый элемент представляет собой элемент (блок) логического модуля, которому с помощью конфигурационного слова можно задавать специальную функцию. Таким образом, конфигурируемыми элементами являются ячейки ЗУПВ всех типов, мультиплексоры, арифметико-логические устройства, регистры и все типы описаний по организации внешних и внутренних сетей и т.д.
Конфигурируемая ячейка (КЭЛ): см. Логические ячейки.
Конфигурирование: задание определенной функции и объединение в сеть какого-либо логического элемента, (ПВМ)-ячейки или КЭЛ (см. Реконфигурирование).
Конфигурационные данные: произвольное количество конфигурационных слов.
Программа конфигурирования (ПК): несколько объединенных в единый алгоритм конфигурационных слов.
Конфигурационная память: в конфигурационной памяти хранится одно или несколько конфигурационных слов.
Конфигурационное слово (КС): конфигурационное слово состоит из имеющей произвольную длину последовательности бит. Эта последовательность бит представляет собой достоверную настройку конфигурируемого элемента, в результате которой образуется работоспособный блок (устройство).
Загрузочная логическая схема (загрузочная логика): блок для конфигурирования и реконфигурирования КЭЛ. Выполнена в виде микроконтроллера, специально адаптированного под выполнение своей задачи.
Логические ячейки: конфигурируемые ячейки, используемые в ПП, ППВМ, ДПВМ и выполняющие простые логические и арифметические операции в соответствии со своей конфигурацией.
Просмотровая таблица: известный из уровня техники метод трансляции данных.
ПТ1: просмотровая таблица, по которой триггерный сигнал транслируется в идентификатор и которая определяет, соотносится ли этот триггерный сигнал с достоверным идентификатором.
ПТ2: просмотровая таблица, по которой идентификатор транслируется в адрес соответствующей ПК в локальной памяти и которая определяет наличие этой ПК в локальной памяти.
Ь-уровень: уровень логического О, зависит от используемой технологии.
Маска: комбинация бит, указывающая среди определенного количества сигналов на достоверные сигналы.
Установление приоритетов: установление определенной последовательности обработки.
Сигнал Реконфиг: указывает на допускающее реконфигурирование состояние КЭЛ.
Триггерный сигнал Реконфиг: перевод КЭЛ в допускающее реконфигурирование состояние.
Сигнал НЕПРИНЯТИЕ: сигнал, указывающий, что адресуемый КЭЛ находится в не допускающем конфигурирование состоянии и не принимает посланное КС.
КЕМОУЕ <ΙΌ>:
1. Команда в программе конфигурирования для удаления той программы конфигурирования, на которую ссылается идентификатор.
2. Команда ТК более высокого уровня, посылаемая через отдельный интерфейс или с помощью квитирующего сигнала в ТК более низкого уровня для удаления ПК, на которую ссылается идентификатор.
КЕ8ЕТ (СБРОС): возврат микросхемы или всей компьютерной системы в определенное исходное состояние.
Корневая ТК: ТК самого верхнего иерархического уровня с прямым доступом к внешней конфигурационной памяти.
Арбитр кругового обслуживания: арбитр, работающий по замкнутому циклу и присваивающий каждому последнему из подвергаемых арбитражу сигналу наименьший приоритет.
Синхронизирующие сигналы: сигналы состояния, генерируемые конфигурируемым элементом или арифметическо-логическим устройством и направляемые далее в следующие конфигурируемые элементы или арифметическологические устройства для управления и синхронизации обработки данных. Синхронизирующий сигнал можно также передавать с временной задержкой (с сохранением) назад в один и тот же конфигурируемый элемент или арифметико-логическое устройство.
АДРЕСАТ: ТК, являющаяся конечным объектом доступа к меж-ТК-шине.
Триггерный сигнал: синоним понятия синхронизирующий сигнал.
Реконфигурирование: повторное конфигурирование произвольного количества КЭЛ, при этом произвольное количество оставшихся КЭЛ продолжает выполнять свои собственные функции (ср. Конфигурирование).
Связанный список: составляемая указателем структура данных, известная из уровня техники.
Ячейки: синоним понятия конфигурируемые элементы.
Конечный автомат: логическая схема, способная переходить в различные состояния. Переходы между этими состояниями зависят от различных входных параметров. Указанные конечные автоматы используются для управления сложными функциями и соответствуют уровню техники.
Claims (12)
- ФОРМУЛА ИЗОБРЕТЕНИЯ1. Способ кэширования команд в состоящих из нескольких арифметическо-логических устройств (АЛУ) микропроцессорах и в микросхемах с двух- или многомерной структурой расположения ячеек (например, программируемых пользователем вентильных матриц (ППВМ), динамически программируемых вентильных матриц (ДПВМ), потоковых процессоров (НН) и т.п.), отличающийся тем, что1.1. несколько ячеек и арифметическологических устройств (конфигурируемых элементов (КЭЛ)) объединяют в несколько групп, при этом с каждой отдельной подгруппой функционально связан кэш-блок (таблицаконфигуратор (ТК)),1.2. кэш-блоки отдельных подгрупп коммутируют через древовидную структуру на кэшблок более высокого уровня (корневую ТК), обладающий доступом к программной памяти (ВКП), в которой хранят команды,1.3. команды объединяют в последовательности команд (ПК), которые всегда кэшируют и передают между кэш-блоками только целиком,1.4. каждый кэш-блок на самом нижнем или среднем уровне дерева запрашивает необходимые команды у соответствующего кэшблока более высокого уровня,1.5. кэш-блок более высокого уровня посылает затребованные последовательности команд в блок более низкого уровня в том случае, если эти последовательности команд имеются в его локальной памяти,1.6. если в локальной памяти кэш-блока более высокого уровня не имеется этих последовательностей команд, то он запрашивает затребованные последовательности команд у кэшблока более высокого по отношению к нему уровня.
- 2. Способ по п.1, отличающийся тем, что удаление последовательностей команд происходит целиком.
- 3. Способ по п.1 или 2, отличающийся тем, что последовательности команд кэш-блока удаляют в том случае, когда в локальной памяти недостаточно места для загрузки следующей затребованной последовательности команд.
- 4. Способ по п.1 или 2, отличающийся тем, что присутствующая в последовательности команд команда удаления (КЕМОУЕ) инициирует выполнение процесса, в результате которого удаляют последовательности команд кэш-блока.
- 5. Способ по любому из пп.1-4, отличающийся тем, что присутствующая в последовательности команд команда выполнения (ЕХЕСиТЕ) инициирует загрузку определенной полной последовательности команд.
- 6. Способ по любому из пп.1-5, отличающийся тем, что по любой команде (команда выполнения ЕХЕСиТЕ, команда удаления КЕМОУЕ и т.д.), передаваемой по соединяющим кэш-блоки шинам, в любом адресуемом кэшблоке инициируют соответствующее этой команде действие.
- 7. Способ по любому из пп.1-6, отличающийся тем, что последовательность программ, не поддающаяся эффективному кэшированию, поскольку она используется только одним кэшблоком, разбивают на небольшие частичные последовательности, необходимые нескольким кэш-блокам, при этом еще одна частичная последовательность (программа конфигурирования с косвенной адресацией (ПККА)) содержит не поддающийся кэшированию остаток последовательности команд и вызовы кэшируемых частичных последовательностей.
- 8. Способ по любому из пп.1-7, отличающийся тем, что для каждой последовательности команд предусмотрена статистика, в которой содержится информация о возрасте последовательности команд, т.е. о продолжительности ее нахождения в памяти кэш-блока.
- 9. Способ по любому из пп.1-7, отличающийся тем, что для каждой последовательности команд предусмотрена статистика, в которой содержится информация о частоте вызовов этой последовательности команд.
- 10. Способ по любому из пп.1-7, отличающийся тем, что для каждой последовательности команд предусмотрена статистика, в которой содержится информация о размере последовательности команд.
- 11. Способ по любому из пп.1-10, отличающийся тем, что программа стирания составлена таким образом, чтобы анализировать и обрабатывать статистику каждой последовательности команд и удалять ту последовательность команд, которая в соответствии с выполняемым алгоритмом является наименее значимой.
- 12. Способ по любому из пп.1-11, отличающийся тем, что программа стирания допускает ее перепрограммирование для согласования с выполняемым алгоритмом.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19807872A DE19807872A1 (de) | 1998-02-25 | 1998-02-25 | Verfahren zur Verwaltung von Konfigurationsdaten in Datenflußprozessoren sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstruktur (FPGAs, DPGAs, o. dgl. |
PCT/DE1999/000504 WO1999044147A2 (de) | 1998-02-25 | 1999-02-25 | VERFAHREN ZUM HIERARCHISCHEN CACHEN VON KONFIGURATIONSDATEN VON DATENFLUSSPROZESSOREN UND BAUSTEINEN MIT ZWEI- ODER MEHRDIMENSIONALER PROGRAMMIERBARER ZELLSTRUKTUR (FPGAs, DPGAs, o.dgl.) |
Publications (2)
Publication Number | Publication Date |
---|---|
EA200000879A1 EA200000879A1 (ru) | 2001-12-24 |
EA003406B1 true EA003406B1 (ru) | 2003-04-24 |
Family
ID=7858839
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EA200000880A EA003407B1 (ru) | 1998-02-25 | 1999-02-25 | Способ исключающего взаимоблокировку конфигурирования потоковых процессоров и микросхем с двух- или многомерной структурой расположения программируемых ячеек (ппвм, дпвм и т.п.) |
EA200000879A EA003406B1 (ru) | 1998-02-25 | 1999-02-25 | Способ иерархического кэширования конфигурационных данных потоковых процессоров и микросхем с двух- или многомерной структурой расположения программируемых ячеек (программируемых пользователем вентильных матриц (ппвм), динамически программируемых вентильных матриц (дпвм) и т.п.) |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EA200000880A EA003407B1 (ru) | 1998-02-25 | 1999-02-25 | Способ исключающего взаимоблокировку конфигурирования потоковых процессоров и микросхем с двух- или многомерной структурой расположения программируемых ячеек (ппвм, дпвм и т.п.) |
Country Status (10)
Country | Link |
---|---|
US (3) | US6480937B1 (ru) |
EP (4) | EP1164474A3 (ru) |
JP (2) | JP4215394B2 (ru) |
CN (2) | CN1298520A (ru) |
AT (2) | ATE217715T1 (ru) |
AU (2) | AU3137199A (ru) |
CA (2) | CA2321877A1 (ru) |
DE (5) | DE19807872A1 (ru) |
EA (2) | EA003407B1 (ru) |
WO (2) | WO1999044120A2 (ru) |
Families Citing this family (106)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7266725B2 (en) * | 2001-09-03 | 2007-09-04 | Pact Xpp Technologies Ag | Method for debugging reconfigurable architectures |
WO2003025781A2 (de) | 2001-09-19 | 2003-03-27 | Pact Xpp Technologies Ag | Verfahren zur konfiguration der verbindung zwischen datenverarbeitungszellen |
US7664263B2 (en) | 1998-03-24 | 2010-02-16 | Moskowitz Scott A | Method for combining transfer functions with predetermined key creation |
US6205249B1 (en) | 1998-04-02 | 2001-03-20 | Scott A. Moskowitz | Multiple transform utilization and applications for secure digital watermarking |
US7457962B2 (en) | 1996-07-02 | 2008-11-25 | Wistaria Trading, Inc | Optimization methods for the insertion, protection, and detection of digital watermarks in digitized data |
US7095874B2 (en) | 1996-07-02 | 2006-08-22 | Wistaria Trading, Inc. | Optimization methods for the insertion, protection, and detection of digital watermarks in digitized data |
US7159116B2 (en) | 1999-12-07 | 2007-01-02 | Blue Spike, Inc. | Systems, methods and devices for trusted transactions |
US7177429B2 (en) | 2000-12-07 | 2007-02-13 | Blue Spike, Inc. | System and methods for permitting open access to data objects and for securing data within the data objects |
US7346472B1 (en) | 2000-09-07 | 2008-03-18 | Blue Spike, Inc. | Method and device for monitoring and analyzing signals |
DE19651075A1 (de) * | 1996-12-09 | 1998-06-10 | Pact Inf Tech Gmbh | Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen |
DE19654595A1 (de) | 1996-12-20 | 1998-07-02 | Pact Inf Tech Gmbh | I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen |
DE19654846A1 (de) * | 1996-12-27 | 1998-07-09 | Pact Inf Tech Gmbh | Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.) |
ATE243390T1 (de) | 1996-12-27 | 2003-07-15 | Pact Inf Tech Gmbh | Verfahren zum selbständigen dynamischen umladen von datenflussprozessoren (dfps) sowie bausteinen mit zwei- oder mehrdimensionalen programmierbaren zellstrukturen (fpgas, dpgas, o.dgl.) |
DE19704728A1 (de) * | 1997-02-08 | 1998-08-13 | Pact Inf Tech Gmbh | Verfahren zur Selbstsynchronisation von konfigurierbaren Elementen eines programmierbaren Bausteines |
US6542998B1 (en) | 1997-02-08 | 2003-04-01 | Pact Gmbh | Method of self-synchronization of configurable elements of a programmable module |
DE19704742A1 (de) * | 1997-02-11 | 1998-09-24 | Pact Inf Tech Gmbh | Internes Bussystem für DFPs, sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen, zur Bewältigung großer Datenmengen mit hohem Vernetzungsaufwand |
US8686549B2 (en) | 2001-09-03 | 2014-04-01 | Martin Vorbach | Reconfigurable elements |
DE19861088A1 (de) | 1997-12-22 | 2000-02-10 | Pact Inf Tech Gmbh | Verfahren zur Reparatur von integrierten Schaltkreisen |
US7664264B2 (en) | 1999-03-24 | 2010-02-16 | Blue Spike, Inc. | Utilizing data reduction in steganographic and cryptographic systems |
CN1378665A (zh) | 1999-06-10 | 2002-11-06 | Pact信息技术有限公司 | 编程概念 |
US7475246B1 (en) | 1999-08-04 | 2009-01-06 | Blue Spike, Inc. | Secure personal content server |
DE19946752A1 (de) | 1999-09-29 | 2001-04-12 | Infineon Technologies Ag | Rekonfigurierbares Gate-Array |
EP1342158B1 (de) * | 2000-06-13 | 2010-08-04 | Richter, Thomas | Pipeline ct-protokolle und -kommunikation |
US7127615B2 (en) | 2000-09-20 | 2006-10-24 | Blue Spike, Inc. | Security based on subliminal and supraliminal channels for data objects |
US7502920B2 (en) * | 2000-10-03 | 2009-03-10 | Intel Corporation | Hierarchical storage architecture for reconfigurable logic configurations |
US20040015899A1 (en) * | 2000-10-06 | 2004-01-22 | Frank May | Method for processing data |
US8058899B2 (en) | 2000-10-06 | 2011-11-15 | Martin Vorbach | Logic cell array and bus system |
GB2406416A (en) * | 2000-10-31 | 2005-03-30 | Advanced Risc Mach Ltd | Describing an integrated circuit configuration |
US7444531B2 (en) * | 2001-03-05 | 2008-10-28 | Pact Xpp Technologies Ag | Methods and devices for treating and processing data |
JP2004536373A (ja) | 2001-03-05 | 2004-12-02 | ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト | データ処理方法およびデータ処理装置 |
US20090210653A1 (en) * | 2001-03-05 | 2009-08-20 | Pact Xpp Technologies Ag | Method and device for treating and processing data |
US9037807B2 (en) * | 2001-03-05 | 2015-05-19 | Pact Xpp Technologies Ag | Processor arrangement on a chip including data processing, memory, and interface elements |
US7210129B2 (en) * | 2001-08-16 | 2007-04-24 | Pact Xpp Technologies Ag | Method for translating programs for reconfigurable architectures |
US20090300262A1 (en) * | 2001-03-05 | 2009-12-03 | Martin Vorbach | Methods and devices for treating and/or processing data |
US7844796B2 (en) | 2001-03-05 | 2010-11-30 | Martin Vorbach | Data processing device and method |
US7624204B2 (en) * | 2001-03-22 | 2009-11-24 | Nvidia Corporation | Input/output controller node in an adaptable computing environment |
AU2002347560A1 (en) * | 2001-06-20 | 2003-01-02 | Pact Xpp Technologies Ag | Data processing method |
US7996827B2 (en) | 2001-08-16 | 2011-08-09 | Martin Vorbach | Method for the translation of programs for reconfigurable architectures |
US7434191B2 (en) | 2001-09-03 | 2008-10-07 | Pact Xpp Technologies Ag | Router |
EP1443392A4 (en) * | 2001-09-07 | 2007-08-15 | Ip Flex Inc | DATA PROCESSING DEVICE AND ASSOCIATED CONTROL METHOD |
US8686475B2 (en) | 2001-09-19 | 2014-04-01 | Pact Xpp Technologies Ag | Reconfigurable elements |
DE10147772C1 (de) * | 2001-09-27 | 2003-09-11 | Siemens Ag | Verfahren zum Betreiben eines Übertragungssystems und Übertragungssystem in einem Energieversorgungsnetz |
US7594229B2 (en) * | 2001-10-09 | 2009-09-22 | Nvidia Corp. | Predictive resource allocation in computing systems |
US7644279B2 (en) * | 2001-12-05 | 2010-01-05 | Nvidia Corporation | Consumer product distribution in the embedded system market |
US7577822B2 (en) * | 2001-12-14 | 2009-08-18 | Pact Xpp Technologies Ag | Parallel task operation in processor and reconfigurable coprocessor configured based on information in link list including termination information for synchronization |
WO2003071418A2 (en) * | 2002-01-18 | 2003-08-28 | Pact Xpp Technologies Ag | Method and device for partitioning large computer programs |
AU2003208266A1 (en) | 2002-01-19 | 2003-07-30 | Pact Xpp Technologies Ag | Reconfigurable processor |
AU2003214003A1 (en) | 2002-02-18 | 2003-09-09 | Pact Xpp Technologies Ag | Bus systems and method for reconfiguration |
AU2003223892A1 (en) * | 2002-03-21 | 2003-10-08 | Pact Xpp Technologies Ag | Method and device for data processing |
US8914590B2 (en) | 2002-08-07 | 2014-12-16 | Pact Xpp Technologies Ag | Data processing method and device |
JP4501914B2 (ja) * | 2002-04-03 | 2010-07-14 | ソニー株式会社 | 集積回路、および集積回路装置 |
US7287275B2 (en) | 2002-04-17 | 2007-10-23 | Moskowitz Scott A | Methods, systems and devices for packet watermarking and efficient provisioning of bandwidth |
US7093255B1 (en) * | 2002-05-31 | 2006-08-15 | Quicksilver Technology, Inc. | Method for estimating cost when placing operations within a modulo scheduler when scheduling for processors with a large number of function units or reconfigurable data paths |
US7620678B1 (en) | 2002-06-12 | 2009-11-17 | Nvidia Corporation | Method and system for reducing the time-to-market concerns for embedded system design |
US7802108B1 (en) | 2002-07-18 | 2010-09-21 | Nvidia Corporation | Secure storage of program code for an embedded system |
US20110238948A1 (en) * | 2002-08-07 | 2011-09-29 | Martin Vorbach | Method and device for coupling a data processing unit and a data processing array |
US7657861B2 (en) | 2002-08-07 | 2010-02-02 | Pact Xpp Technologies Ag | Method and device for processing data |
WO2004021176A2 (de) | 2002-08-07 | 2004-03-11 | Pact Xpp Technologies Ag | Verfahren und vorrichtung zur datenverarbeitung |
US7249352B2 (en) * | 2002-08-22 | 2007-07-24 | International Business Machines Corporation | Apparatus and method for removing elements from a linked list |
AU2003289844A1 (en) | 2002-09-06 | 2004-05-13 | Pact Xpp Technologies Ag | Reconfigurable sequencer structure |
US7502915B2 (en) * | 2002-09-30 | 2009-03-10 | Nvidia Corporation | System and method using embedded microprocessor as a node in an adaptable computing machine |
US8949576B2 (en) * | 2002-11-01 | 2015-02-03 | Nvidia Corporation | Arithmetic node including general digital signal processing functions for an adaptive computing machine |
US7617100B1 (en) | 2003-01-10 | 2009-11-10 | Nvidia Corporation | Method and system for providing an excitation-pattern based audio coding scheme |
DE112004000026D2 (de) * | 2003-04-04 | 2006-06-14 | Pact Xpp Technologies Ag | Verfahren und Vorrichtung für die Datenverarbeitung |
US9330060B1 (en) * | 2003-04-15 | 2016-05-03 | Nvidia Corporation | Method and device for encoding and decoding video image data |
US7565677B1 (en) | 2003-04-21 | 2009-07-21 | Microsoft Corporation | Method and apparatus for managing a data carousel |
US7450600B2 (en) * | 2003-04-21 | 2008-11-11 | Microsoft Corporation | Method and apparatus for managing a data carousel |
US8660182B2 (en) * | 2003-06-09 | 2014-02-25 | Nvidia Corporation | MPEG motion estimation based on dual start points |
JP4665760B2 (ja) * | 2003-06-25 | 2011-04-06 | 日本電気株式会社 | 電子計算機、半導体集積回路、制御方法、プログラムの生成方法、及びプログラム |
US8296764B2 (en) * | 2003-08-14 | 2012-10-23 | Nvidia Corporation | Internal synchronization control for adaptive integrated circuitry |
EP1676208A2 (en) * | 2003-08-28 | 2006-07-05 | PACT XPP Technologies AG | Data processing device and method |
US7484045B2 (en) * | 2004-03-30 | 2009-01-27 | Intel Corporation | Store performance in strongly-ordered microprocessor architecture |
US8130825B2 (en) * | 2004-05-10 | 2012-03-06 | Nvidia Corporation | Processor for video data encoding/decoding |
US8018463B2 (en) | 2004-05-10 | 2011-09-13 | Nvidia Corporation | Processor for video data |
US7278122B2 (en) * | 2004-06-24 | 2007-10-02 | Ftl Systems, Inc. | Hardware/software design tool and language specification mechanism enabling efficient technology retargeting and optimization |
TWI256013B (en) * | 2004-10-12 | 2006-06-01 | Uli Electronics Inc | Sound-effect processing circuit |
EP1849095B1 (en) * | 2005-02-07 | 2013-01-02 | Richter, Thomas | Low latency massive parallel data processing device |
CN100476795C (zh) * | 2005-02-21 | 2009-04-08 | 徐建 | 事件处理机 |
DE112005003583B4 (de) * | 2005-06-01 | 2013-11-21 | Siemens Aktiengesellschaft | Mess- oder Schutzgerät mit unabhängigen Software Modulen |
US7281942B2 (en) * | 2005-11-18 | 2007-10-16 | Ideal Industries, Inc. | Releasable wire connector |
US8731071B1 (en) | 2005-12-15 | 2014-05-20 | Nvidia Corporation | System for performing finite input response (FIR) filtering in motion estimation |
WO2007082730A1 (de) | 2006-01-18 | 2007-07-26 | Pact Xpp Technologies Ag | Hardwaredefinitionsverfahren |
US8724702B1 (en) | 2006-03-29 | 2014-05-13 | Nvidia Corporation | Methods and systems for motion estimation used in video coding |
US7827451B2 (en) * | 2006-05-24 | 2010-11-02 | International Business Machines Corporation | Method, system and program product for establishing decimal floating point operands for facilitating testing of decimal floating point instructions |
US8660380B2 (en) * | 2006-08-25 | 2014-02-25 | Nvidia Corporation | Method and system for performing two-dimensional transform on data value array with reduced power consumption |
JP5045036B2 (ja) * | 2006-09-05 | 2012-10-10 | 富士ゼロックス株式会社 | データ処理装置 |
US7999820B1 (en) | 2006-10-23 | 2011-08-16 | Nvidia Corporation | Methods and systems for reusing memory addresses in a graphics system |
US20080111923A1 (en) * | 2006-11-09 | 2008-05-15 | Scheuermann W James | Processor for video data |
WO2008061161A2 (en) * | 2006-11-14 | 2008-05-22 | Star Bridge Systems, Inc. | Execution of legacy code on hybrid computing platform |
US8169789B1 (en) | 2007-04-10 | 2012-05-01 | Nvidia Corporation | Graphics processing unit stiffening frame |
US7987065B1 (en) | 2007-04-17 | 2011-07-26 | Nvidia Corporation | Automatic quality testing of multimedia rendering by software drivers |
US8572598B1 (en) | 2007-04-18 | 2013-10-29 | Nvidia Corporation | Method and system for upgrading software in a computing device |
US20080291209A1 (en) * | 2007-05-25 | 2008-11-27 | Nvidia Corporation | Encoding Multi-media Signals |
US8756482B2 (en) * | 2007-05-25 | 2014-06-17 | Nvidia Corporation | Efficient encoding/decoding of a sequence of data frames |
US8726283B1 (en) | 2007-06-04 | 2014-05-13 | Nvidia Corporation | Deadlock avoidance skid buffer |
US7944453B1 (en) | 2007-06-07 | 2011-05-17 | Nvidia Corporation | Extrapolation texture filtering for nonresident mipmaps |
US7948500B2 (en) * | 2007-06-07 | 2011-05-24 | Nvidia Corporation | Extrapolation of nonresident mipmap data using resident mipmap data |
US9118927B2 (en) * | 2007-06-13 | 2015-08-25 | Nvidia Corporation | Sub-pixel interpolation and its application in motion compensated encoding of a video signal |
US8873625B2 (en) | 2007-07-18 | 2014-10-28 | Nvidia Corporation | Enhanced compression in representing non-frame-edge blocks of image frames |
JP5294304B2 (ja) * | 2008-06-18 | 2013-09-18 | 日本電気株式会社 | 再構成可能電子回路装置 |
US8598990B2 (en) * | 2008-06-30 | 2013-12-03 | Symbol Technologies, Inc. | Delimited read command for efficient data access from radio frequency identification (RFID) tags |
US8666181B2 (en) * | 2008-12-10 | 2014-03-04 | Nvidia Corporation | Adaptive multiple engine image motion detection system and method |
EP2441005A2 (en) | 2009-06-09 | 2012-04-18 | Martin Vorbach | System and method for a cache in a multi-core processor |
JP2016178229A (ja) | 2015-03-20 | 2016-10-06 | 株式会社東芝 | 再構成可能な回路 |
JP6672190B2 (ja) * | 2017-01-16 | 2020-03-25 | 株式会社東芝 | データベースシステムおよびデータ処理方法 |
US11803507B2 (en) | 2018-10-29 | 2023-10-31 | Secturion Systems, Inc. | Data stream protocol field decoding by a systolic array |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4860201A (en) * | 1986-09-02 | 1989-08-22 | The Trustees Of Columbia University In The City Of New York | Binary tree parallel processor |
EP0686915A2 (en) * | 1994-05-27 | 1995-12-13 | Nec Corporation | Hierarchical resource management method |
EP0707269A1 (en) * | 1994-10-11 | 1996-04-17 | International Business Machines Corporation | Cache coherence network for a multiprocessor data processing system |
Family Cites Families (149)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5936857A (ja) | 1982-08-25 | 1984-02-29 | Nec Corp | プロセツサユニツト |
US4739474A (en) | 1983-03-10 | 1988-04-19 | Martin Marietta Corporation | Geometric-arithmetic parallel processor |
US5123109A (en) | 1983-05-31 | 1992-06-16 | Thinking Machines Corporation | Parallel processor including a processor array with plural data transfer arrangements including (1) a global router and (2) a proximate-neighbor transfer system |
USRE34363E (en) | 1984-03-12 | 1993-08-31 | Xilinx, Inc. | Configurable electrical circuit having configurable logic elements and configurable interconnects |
US4870302A (en) | 1984-03-12 | 1989-09-26 | Xilinx, Inc. | Configurable electrical circuit having configurable logic elements and configurable interconnects |
US4761755A (en) | 1984-07-11 | 1988-08-02 | Prime Computer, Inc. | Data processing system and method having an improved arithmetic unit |
US5023775A (en) | 1985-02-14 | 1991-06-11 | Intel Corporation | Software programmable logic array utilizing "and" and "or" gates |
US5247689A (en) | 1985-02-25 | 1993-09-21 | Ewert Alfred P | Parallel digital processor including lateral transfer buses with interrupt switches to form bus interconnection segments |
US4706216A (en) | 1985-02-27 | 1987-11-10 | Xilinx, Inc. | Configurable logic element |
US5015884A (en) | 1985-03-29 | 1991-05-14 | Advanced Micro Devices, Inc. | Multiple array high performance programmable logic device family |
US5225719A (en) | 1985-03-29 | 1993-07-06 | Advanced Micro Devices, Inc. | Family of multiple segmented programmable logic blocks interconnected by a high speed centralized switch matrix |
US4967340A (en) | 1985-06-12 | 1990-10-30 | E-Systems, Inc. | Adaptive processing system having an array of individually configurable processing components |
JPS62109451A (ja) | 1985-11-04 | 1987-05-20 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | データ伝送ネットワークの通信パス確立・不可用性データ収集方法 |
US4852048A (en) | 1985-12-12 | 1989-07-25 | Itt Corporation | Single instruction multiple data (SIMD) cellular array processing apparatus employing a common bus where a first number of bits manifest a first bus portion and a second number of bits manifest a second bus portion |
US5021947A (en) | 1986-03-31 | 1991-06-04 | Hughes Aircraft Company | Data-flow multiprocessor architecture with three dimensional multistage interconnection network for efficient signal and data processing |
US5367208A (en) | 1986-09-19 | 1994-11-22 | Actel Corporation | Reconfigurable programmable interconnect architecture |
US4811214A (en) | 1986-11-14 | 1989-03-07 | Princeton University | Multinode reconfigurable pipeline computer |
US5226122A (en) | 1987-08-21 | 1993-07-06 | Compaq Computer Corp. | Programmable logic system for filtering commands to a microprocessor |
US5115510A (en) | 1987-10-20 | 1992-05-19 | Sharp Kabushiki Kaisha | Multistage data flow processor with instruction packet, fetch, storage transmission and address generation controlled by destination information |
US4918690A (en) | 1987-11-10 | 1990-04-17 | Echelon Systems Corp. | Network and intelligent cell for providing sensing, bidirectional communications and control |
US5113498A (en) | 1987-11-10 | 1992-05-12 | Echelon Corporation | Input/output section for an intelligent cell which provides sensing, bidirectional communications and control |
US5303172A (en) | 1988-02-16 | 1994-04-12 | Array Microsystems | Pipelined combination and vector signal processor |
US4901268A (en) | 1988-08-19 | 1990-02-13 | General Electric Company | Multiple function data processor |
US5204935A (en) | 1988-08-19 | 1993-04-20 | Fuji Xerox Co., Ltd. | Programmable fuzzy logic circuits |
US5353432A (en) * | 1988-09-09 | 1994-10-04 | Compaq Computer Corporation | Interactive method for configuration of computer system and circuit boards with user specification of system resources and computer resolution of resource conflicts |
ATE98833T1 (de) | 1988-09-22 | 1994-01-15 | Siemens Ag | Schaltungsanordnung fuer fernmeldevermittlungsanlagen, insbesondere pcmzeitmultiplex-fernsprechvermittlungsanlagen mit zentralkoppelfeld und angeschlossenen teilkoppelfeldern. |
WO1990004235A1 (en) | 1988-10-07 | 1990-04-19 | Martin Marietta Corporation | Parallel data processor |
US5014193A (en) | 1988-10-14 | 1991-05-07 | Compaq Computer Corporation | Dynamically configurable portable computer system |
US5136717A (en) | 1988-11-23 | 1992-08-04 | Flavors Technology Inc. | Realtime systolic, multiple-instruction, single-data parallel computer system |
US5081375A (en) | 1989-01-19 | 1992-01-14 | National Semiconductor Corp. | Method for operating a multiple page programmable logic device |
GB8906145D0 (en) | 1989-03-17 | 1989-05-04 | Algotronix Ltd | Configurable cellular array |
US5203005A (en) | 1989-05-02 | 1993-04-13 | Horst Robert W | Cell structure for linear array wafer scale integration architecture with capability to open boundary i/o bus without neighbor acknowledgement |
US5109503A (en) | 1989-05-22 | 1992-04-28 | Ge Fanuc Automation North America, Inc. | Apparatus with reconfigurable counter includes memory for storing plurality of counter configuration files which respectively define plurality of predetermined counters |
US5489857A (en) | 1992-08-03 | 1996-02-06 | Advanced Micro Devices, Inc. | Flexible synchronous/asynchronous cell structure for a high density programmable logic device |
US5212652A (en) | 1989-08-15 | 1993-05-18 | Advanced Micro Devices, Inc. | Programmable gate array with improved interconnect structure |
US5233539A (en) | 1989-08-15 | 1993-08-03 | Advanced Micro Devices, Inc. | Programmable gate array with improved interconnect structure, input/output structure and configurable logic block |
US5128559A (en) | 1989-09-29 | 1992-07-07 | Sgs-Thomson Microelectronics, Inc. | Logic block for programmable logic devices |
JP2968289B2 (ja) | 1989-11-08 | 1999-10-25 | 株式会社リコー | 中央演算処理装置 |
GB8925721D0 (en) | 1989-11-14 | 1990-01-04 | Amt Holdings | Processor array system |
US5522083A (en) | 1989-11-17 | 1996-05-28 | Texas Instruments Incorporated | Reconfigurable multi-processor operating in SIMD mode with one processor fetching instructions for use by remaining processors |
US5125801A (en) | 1990-02-02 | 1992-06-30 | Isco, Inc. | Pumping system |
US5142469A (en) | 1990-03-29 | 1992-08-25 | Ge Fanuc Automation North America, Inc. | Method for converting a programmable logic controller hardware configuration and corresponding control program for use on a first programmable logic controller to use on a second programmable logic controller |
US5198705A (en) | 1990-05-11 | 1993-03-30 | Actel Corporation | Logic module with configurable combinational and sequential blocks |
US5483620A (en) | 1990-05-22 | 1996-01-09 | International Business Machines Corp. | Learning machine synapse processor system apparatus |
US5111079A (en) | 1990-06-29 | 1992-05-05 | Sgs-Thomson Microelectronics, Inc. | Power reduction circuit for programmable logic device |
SE9002558D0 (sv) | 1990-08-02 | 1990-08-02 | Carlstedt Elektronik Ab | Processor |
US5765011A (en) | 1990-11-13 | 1998-06-09 | International Business Machines Corporation | Parallel processing system having a synchronous SIMD processing with processing elements emulating SIMD operation using individual instruction streams |
US5590345A (en) | 1990-11-13 | 1996-12-31 | International Business Machines Corporation | Advanced parallel array processor(APAP) |
US5734921A (en) | 1990-11-13 | 1998-03-31 | International Business Machines Corporation | Advanced parallel array processor computer package |
US5588152A (en) | 1990-11-13 | 1996-12-24 | International Business Machines Corporation | Advanced parallel processor including advanced support hardware |
US5713037A (en) | 1990-11-13 | 1998-01-27 | International Business Machines Corporation | Slide bus communication functions for SIMD/MIMD array processor |
CA2051222C (en) * | 1990-11-30 | 1998-05-05 | Pradeep S. Sindhu | Consistent packet switched memory bus for shared memory multiprocessors |
US5301344A (en) | 1991-01-29 | 1994-04-05 | Analogic Corporation | Multibus sequential processor to perform in parallel a plurality of reconfigurable logic operations on a plurality of data sets |
DE59107764D1 (de) | 1991-02-22 | 1996-06-05 | Siemens Ag | Speicherprogrammierbare Steuerung |
JPH04290155A (ja) | 1991-03-19 | 1992-10-14 | Fujitsu Ltd | 並列データ処理方式 |
JPH04293151A (ja) | 1991-03-20 | 1992-10-16 | Fujitsu Ltd | 並列データ処理方式 |
US5617547A (en) | 1991-03-29 | 1997-04-01 | International Business Machines Corporation | Switch network extension of bus architecture |
JPH04328657A (ja) | 1991-04-30 | 1992-11-17 | Toshiba Corp | キャッシュメモリ |
WO1992020850A1 (en) | 1991-05-14 | 1992-11-26 | Idemitsu Kosan Co., Ltd. | Nonwoven fabric and method of manufacturing said fabric |
US5551033A (en) * | 1991-05-17 | 1996-08-27 | Zenith Data Systems Corporation | Apparatus for maintaining one interrupt mask register in conformity with another in a manner invisible to an executing program |
CA2109799A1 (en) | 1991-05-24 | 1992-12-10 | Daniel Mark Nosenchuck | Optimizing compiler for computers |
US5659797A (en) | 1991-06-24 | 1997-08-19 | U.S. Philips Corporation | Sparc RISC based computer system including a single chip processor with memory management and DMA units coupled to a DRAM interface |
US5338984A (en) | 1991-08-29 | 1994-08-16 | National Semiconductor Corp. | Local and express diagonal busses in a configurable logic array |
US5260610A (en) | 1991-09-03 | 1993-11-09 | Altera Corporation | Programmable logic element interconnections for programmable logic array integrated circuits |
AU2939892A (en) | 1991-12-06 | 1993-06-28 | Richard S. Norman | Massively-parallel direct output processor array |
US5208491A (en) | 1992-01-07 | 1993-05-04 | Washington Research Foundation | Field programmable gate array |
JP2791243B2 (ja) | 1992-03-13 | 1998-08-27 | 株式会社東芝 | 階層間同期化システムおよびこれを用いた大規模集積回路 |
US5452401A (en) | 1992-03-31 | 1995-09-19 | Seiko Epson Corporation | Selective power-down for high performance CPU/system |
US5611049A (en) * | 1992-06-03 | 1997-03-11 | Pitts; William M. | System for accessing distributed data cache channel at each network node to pass requests and data |
JP3737104B2 (ja) | 1992-06-04 | 2006-01-18 | ジリンクス,インコーポレーテッド | プログラム可能な集積回路デバイスにユーザ回路を配置するタイミング駆動式の方法 |
DE4221278C2 (de) | 1992-06-29 | 1996-02-29 | Martin Vorbach | Busgekoppeltes Mehrrechnersystem |
US5475803A (en) | 1992-07-10 | 1995-12-12 | Lsi Logic Corporation | Method for 2-D affine transformation of images |
US5590348A (en) | 1992-07-28 | 1996-12-31 | International Business Machines Corporation | Status predictor for combined shifter-rotate/merge unit |
US5684980A (en) * | 1992-07-29 | 1997-11-04 | Virtual Computer Corporation | FPGA virtual computer for executing a sequence of program instructions by successively reconfiguring a group of FPGA in response to those instructions |
US5497498A (en) | 1992-11-05 | 1996-03-05 | Giga Operations Corporation | Video processing module using a second programmable logic device which reconfigures a first programmable logic device for data transformation |
US5392437A (en) | 1992-11-06 | 1995-02-21 | Intel Corporation | Method and apparatus for independently stopping and restarting functional units |
US5361373A (en) | 1992-12-11 | 1994-11-01 | Gilson Kent L | Integrated circuit computing device comprising a dynamically configurable gate array having a microprocessor and reconfigurable instruction execution means and method therefor |
GB9303084D0 (en) | 1993-02-16 | 1993-03-31 | Inmos Ltd | Programmable logic circuit |
JPH06276086A (ja) | 1993-03-18 | 1994-09-30 | Fuji Xerox Co Ltd | フィールドプログラマブルゲートアレイ |
US5548773A (en) | 1993-03-30 | 1996-08-20 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Digital parallel processor array for optimum path planning |
US5596742A (en) | 1993-04-02 | 1997-01-21 | Massachusetts Institute Of Technology | Virtual interconnections for reconfigurable logic systems |
US5473266A (en) | 1993-04-19 | 1995-12-05 | Altera Corporation | Programmable logic device having fast programmable logic array blocks and a central global interconnect array |
DE4416881C2 (de) | 1993-05-13 | 1998-03-19 | Pact Inf Tech Gmbh | Verfahren zum Betrieb einer Datenverarbeitungseinrichtung |
IL109921A (en) * | 1993-06-24 | 1997-09-30 | Quickturn Design Systems | Method and apparatus for configuring memory circuits |
US5444394A (en) | 1993-07-08 | 1995-08-22 | Altera Corporation | PLD with selective inputs from local and global conductors |
JPH0736858A (ja) | 1993-07-21 | 1995-02-07 | Hitachi Ltd | 信号処理プロセッサ |
US5457644A (en) | 1993-08-20 | 1995-10-10 | Actel Corporation | Field programmable digital signal processing array integrated circuit |
US5440538A (en) | 1993-09-23 | 1995-08-08 | Massachusetts Institute Of Technology | Communication system with redundant links and data bit time multiplexing |
US5455525A (en) | 1993-12-06 | 1995-10-03 | Intelligent Logic Systems, Inc. | Hierarchically-structured programmable logic array and system for interconnecting logic elements in the logic array |
US5535406A (en) | 1993-12-29 | 1996-07-09 | Kolchinsky; Alexander | Virtual processor module including a reconfigurable programmable matrix |
DE69529856D1 (de) | 1994-03-22 | 2003-04-10 | Hyperchip Inc | Massive Paralleldatenverarbeitungsvorrichtung mit photovoltaischen Zellen für die Absorption des Umgebungslichtes |
US5561738A (en) | 1994-03-25 | 1996-10-01 | Motorola, Inc. | Data processor for executing a fuzzy logic operation and method therefor |
US5430687A (en) | 1994-04-01 | 1995-07-04 | Xilinx, Inc. | Programmable logic device including a parallel input device for loading memory cells |
US5761484A (en) | 1994-04-01 | 1998-06-02 | Massachusetts Institute Of Technology | Virtual interconnections for reconfigurable logic systems |
US5896551A (en) * | 1994-04-15 | 1999-04-20 | Micron Technology, Inc. | Initializing and reprogramming circuitry for state independent memory array burst operations control |
US5426378A (en) | 1994-04-20 | 1995-06-20 | Xilinx, Inc. | Programmable logic device which stores more than one configuration and means for switching configurations |
US5532693A (en) | 1994-06-13 | 1996-07-02 | Advanced Hardware Architectures | Adaptive data compression system with systolic string matching logic |
US5513366A (en) | 1994-09-28 | 1996-04-30 | International Business Machines Corporation | Method and system for dynamically reconfiguring a register file in a vector processor |
US5493239A (en) | 1995-01-31 | 1996-02-20 | Motorola, Inc. | Circuit and method of configuring a field programmable gate array |
US5532957A (en) | 1995-01-31 | 1996-07-02 | Texas Instruments Incorporated | Field reconfigurable logic/memory array |
US5742180A (en) | 1995-02-10 | 1998-04-21 | Massachusetts Institute Of Technology | Dynamically programmable gate array with multiple contexts |
US5659785A (en) | 1995-02-10 | 1997-08-19 | International Business Machines Corporation | Array processor communication architecture with broadcast processor instructions |
US6052773A (en) | 1995-02-10 | 2000-04-18 | Massachusetts Institute Of Technology | DPGA-coupled microprocessors |
US5537057A (en) | 1995-02-14 | 1996-07-16 | Altera Corporation | Programmable logic array device with grouped logic regions and three types of conductors |
US5892961A (en) | 1995-02-17 | 1999-04-06 | Xilinx, Inc. | Field programmable gate array having programming instructions in the configuration bitstream |
US5570040A (en) | 1995-03-22 | 1996-10-29 | Altera Corporation | Programmable logic array integrated circuit incorporating a first-in first-out memory |
US5541530A (en) | 1995-05-17 | 1996-07-30 | Altera Corporation | Programmable logic array integrated circuits with blocks of logic regions grouped into super-blocks |
US5646544A (en) | 1995-06-05 | 1997-07-08 | International Business Machines Corporation | System and method for dynamically reconfiguring a programmable gate array |
US5559450A (en) | 1995-07-27 | 1996-09-24 | Lucent Technologies Inc. | Field programmable gate array with multi-port RAM |
US5583450A (en) | 1995-08-18 | 1996-12-10 | Xilinx, Inc. | Sequencer for a time multiplexed programmable logic device |
US5784313A (en) * | 1995-08-18 | 1998-07-21 | Xilinx, Inc. | Programmable logic device including configuration data or user data memory slices |
US5778439A (en) | 1995-08-18 | 1998-07-07 | Xilinx, Inc. | Programmable logic device with hierarchical confiquration and state storage |
US5652894A (en) | 1995-09-29 | 1997-07-29 | Intel Corporation | Method and apparatus for providing power saving modes to a pipelined processor |
US5943242A (en) * | 1995-11-17 | 1999-08-24 | Pact Gmbh | Dynamically reconfigurable data processing system |
US5936424A (en) | 1996-02-02 | 1999-08-10 | Xilinx, Inc. | High speed bus with tree structure for selecting bus driver |
US5956518A (en) | 1996-04-11 | 1999-09-21 | Massachusetts Institute Of Technology | Intermediate-grain reconfigurable processing device |
US5894565A (en) | 1996-05-20 | 1999-04-13 | Atmel Corporation | Field programmable gate array with distributed RAM and increased cell utilization |
US6023564A (en) * | 1996-07-19 | 2000-02-08 | Xilinx, Inc. | Data processing system using a flash reconfigurable logic device as a dynamic execution unit for a sequence of instructions |
US5838165A (en) | 1996-08-21 | 1998-11-17 | Chatter; Mukesh | High performance self modifying on-the-fly alterable logic FPGA, architecture and method |
US5828858A (en) | 1996-09-16 | 1998-10-27 | Virginia Tech Intellectual Properties, Inc. | Worm-hole run-time reconfigurable processor field programmable gate array (FPGA) |
US6005410A (en) | 1996-12-05 | 1999-12-21 | International Business Machines Corporation | Interconnect structure between heterogeneous core regions in a programmable array |
DE19651075A1 (de) | 1996-12-09 | 1998-06-10 | Pact Inf Tech Gmbh | Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen |
DE19654595A1 (de) | 1996-12-20 | 1998-07-02 | Pact Inf Tech Gmbh | I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen |
DE19654593A1 (de) * | 1996-12-20 | 1998-07-02 | Pact Inf Tech Gmbh | Umkonfigurierungs-Verfahren für programmierbare Bausteine zur Laufzeit |
DE19654846A1 (de) * | 1996-12-27 | 1998-07-09 | Pact Inf Tech Gmbh | Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.) |
DE19704044A1 (de) * | 1997-02-04 | 1998-08-13 | Pact Inf Tech Gmbh | Verfahren zur automatischen Adressgenerierung von Bausteinen innerhalb Clustern aus einer Vielzahl dieser Bausteine |
DE19704728A1 (de) * | 1997-02-08 | 1998-08-13 | Pact Inf Tech Gmbh | Verfahren zur Selbstsynchronisation von konfigurierbaren Elementen eines programmierbaren Bausteines |
WO1998038958A1 (en) | 1997-03-05 | 1998-09-11 | Massachusetts Institute Of Technology | A reconfigurable footprint mechanism for omnidirectional vehicles |
US5884075A (en) * | 1997-03-10 | 1999-03-16 | Compaq Computer Corporation | Conflict resolution using self-contained virtual devices |
US6125408A (en) * | 1997-03-10 | 2000-09-26 | Compaq Computer Corporation | Resource type prioritization in generating a device configuration |
US6085317A (en) * | 1997-08-15 | 2000-07-04 | Altera Corporation | Reconfigurable computer architecture using programmable logic devices |
US6321366B1 (en) * | 1997-05-02 | 2001-11-20 | Axis Systems, Inc. | Timing-insensitive glitch-free logic system and method |
US6389379B1 (en) * | 1997-05-02 | 2002-05-14 | Axis Systems, Inc. | Converification system and method |
US6421817B1 (en) * | 1997-05-29 | 2002-07-16 | Xilinx, Inc. | System and method of computation in a programmable logic device using virtual instructions |
US6047115A (en) * | 1997-05-29 | 2000-04-04 | Xilinx, Inc. | Method for configuring FPGA memory planes for virtual hardware computation |
US5915123A (en) * | 1997-10-31 | 1999-06-22 | Silicon Spice | Method and apparatus for controlling configuration memory contexts of processing elements in a network of multiple context processing elements |
US6122719A (en) | 1997-10-31 | 2000-09-19 | Silicon Spice | Method and apparatus for retiming in a network of multiple context processing elements |
US6108760A (en) | 1997-10-31 | 2000-08-22 | Silicon Spice | Method and apparatus for position independent reconfiguration in a network of multiple context processing elements |
US6127908A (en) | 1997-11-17 | 2000-10-03 | Massachusetts Institute Of Technology | Microelectro-mechanical system actuator device and reconfigurable circuits utilizing same |
US6389579B1 (en) | 1998-01-26 | 2002-05-14 | Chameleon Systems | Reconfigurable logic for table lookup |
US6282627B1 (en) | 1998-06-29 | 2001-08-28 | Chameleon Systems, Inc. | Integrated processor and programmable data path chip for reconfigurable computing |
US6243808B1 (en) | 1999-03-08 | 2001-06-05 | Chameleon Systems, Inc. | Digital data bit order conversion using universal switch matrix comprising rows of bit swapping selector groups |
US6347346B1 (en) | 1999-06-30 | 2002-02-12 | Chameleon Systems, Inc. | Local memory unit system with global access for use on reconfigurable chips |
US6370596B1 (en) | 1999-08-03 | 2002-04-09 | Chameleon Systems, Inc. | Logic flag registers for monitoring processing system events |
US6341318B1 (en) | 1999-08-10 | 2002-01-22 | Chameleon Systems, Inc. | DMA data streaming |
US6349346B1 (en) | 1999-09-23 | 2002-02-19 | Chameleon Systems, Inc. | Control fabric unit including associated configuration memory and PSOP state machine adapted to provide configuration address to reconfigurable functional unit |
US6311200B1 (en) | 1999-09-23 | 2001-10-30 | Chameleon Systems, Inc. | Reconfigurable program sum of products generator |
US6288566B1 (en) | 1999-09-23 | 2001-09-11 | Chameleon Systems, Inc. | Configuration state memory for functional blocks on a reconfigurable chip |
US6392912B1 (en) | 2001-01-10 | 2002-05-21 | Chameleon Systems, Inc. | Loading data plane on reconfigurable chip |
-
1998
- 1998-02-25 DE DE19807872A patent/DE19807872A1/de not_active Withdrawn
-
1999
- 1999-02-25 EP EP01120095A patent/EP1164474A3/de not_active Withdrawn
- 1999-02-25 CN CN99805452A patent/CN1298520A/zh active Pending
- 1999-02-25 DE DE19980309T patent/DE19980309D2/de not_active Expired - Lifetime
- 1999-02-25 US US09/623,052 patent/US6480937B1/en not_active Expired - Lifetime
- 1999-02-25 WO PCT/DE1999/000505 patent/WO1999044120A2/de active IP Right Grant
- 1999-02-25 EA EA200000880A patent/EA003407B1/ru not_active IP Right Cessation
- 1999-02-25 JP JP2000533829A patent/JP4215394B2/ja not_active Expired - Fee Related
- 1999-02-25 EP EP10012017A patent/EP2293193A1/de not_active Withdrawn
- 1999-02-25 CA CA002321877A patent/CA2321877A1/en not_active Abandoned
- 1999-02-25 EP EP99914430A patent/EP1057102B1/de not_active Expired - Lifetime
- 1999-02-25 AT AT99913087T patent/ATE217715T1/de not_active IP Right Cessation
- 1999-02-25 US US09/623,113 patent/US6571381B1/en not_active Expired - Lifetime
- 1999-02-25 CN CN99805453A patent/CN1298521A/zh active Pending
- 1999-02-25 WO PCT/DE1999/000504 patent/WO1999044147A2/de active IP Right Grant
- 1999-02-25 AU AU31371/99A patent/AU3137199A/en not_active Abandoned
- 1999-02-25 DE DE59901446T patent/DE59901446D1/de not_active Expired - Lifetime
- 1999-02-25 CA CA002321874A patent/CA2321874A1/en not_active Abandoned
- 1999-02-25 EA EA200000879A patent/EA003406B1/ru not_active IP Right Cessation
- 1999-02-25 EP EP99913087A patent/EP1057117B1/de not_active Expired - Lifetime
- 1999-02-25 DE DE19980312T patent/DE19980312D2/de not_active Expired - Fee Related
- 1999-02-25 AT AT99914430T patent/ATE217713T1/de not_active IP Right Cessation
- 1999-02-25 AU AU33262/99A patent/AU3326299A/en not_active Abandoned
- 1999-02-25 JP JP2000533804A patent/JP4338308B2/ja not_active Expired - Fee Related
- 1999-02-25 DE DE59901447T patent/DE59901447D1/de not_active Expired - Lifetime
-
2002
- 2002-07-09 US US10/191,926 patent/US6687788B2/en not_active Expired - Lifetime
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4860201A (en) * | 1986-09-02 | 1989-08-22 | The Trustees Of Columbia University In The City Of New York | Binary tree parallel processor |
EP0686915A2 (en) * | 1994-05-27 | 1995-12-13 | Nec Corporation | Hierarchical resource management method |
EP0707269A1 (en) * | 1994-10-11 | 1996-04-17 | International Business Machines Corporation | Cache coherence network for a multiprocessor data processing system |
Non-Patent Citations (1)
Title |
---|
WADA K. ET AL.: "A PERFORMANCE EVALUATION OF TREE-BASED COHERENT DISTRIBUTED SHARED MEMORY", PROCEEDINGS OF THE PACIFIC RIM CONFERENCE ON COMMUNICATIONS, COMPUT AND SIGNAL PROCESSING, VICTORIA, MAY 19-21, 1993, vol. 2, 19 May 1993 (1993-05-19), pages 390-393, XP000419298, INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS, the whole document * |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EA003406B1 (ru) | Способ иерархического кэширования конфигурационных данных потоковых процессоров и микросхем с двух- или многомерной структурой расположения программируемых ячеек (программируемых пользователем вентильных матриц (ппвм), динамически программируемых вентильных матриц (дпвм) и т.п.) | |
JP4637123B2 (ja) | データ処理方法およびデータ処理ユニット、コンフィギュレーション化可能なエレメントのダイナックな再コンフィギュレーション方法、システムおよびプロセス | |
US20190102173A1 (en) | Methods and systems for transferring data between a processing device and external devices | |
JP3863190B2 (ja) | 実行期間中のプログラミング可能なコンポーネントのための再構成方法 | |
US5822618A (en) | System for automatically switching to DMA data transfer mode to load and unload data frames when there are excessive data frames in memory buffer | |
US5878217A (en) | Network controller for switching into DMA mode based on anticipated memory overflow and out of DMA mode when the host processor is available | |
US8307053B1 (en) | Partitioned packet processing in a multiprocessor environment | |
JP2512678B2 (ja) | デ―タ処理システム | |
US6990555B2 (en) | Method of hierarchical caching of configuration data having dataflow processors and modules having two- or multidimensional programmable cell structure (FPGAs, DPGAs, etc.) | |
US7502876B1 (en) | Background memory manager that determines if data structures fits in memory with memory state transactions map | |
Hayter | A workstation architecture to support multimedia | |
JP2003178039A (ja) | 分散共有仮想メモリーとその構成方法 | |
JP3889879B2 (ja) | 仮想メモリ変換を制御する方法 | |
JPH06511585A (ja) | データ伝送の自動開始装置 | |
JP5769093B2 (ja) | ダイレクトメモリアクセスコントローラ、その方法およびコンピュータプログラム | |
JPH0786861B2 (ja) | 共用メモリ・マルチプロセツサ・システム | |
US20020010825A1 (en) | Memory resource arbitrator for multiple gate arrays | |
EP0536375A1 (en) | Fault tolerant network file system | |
US7552232B2 (en) | Speculative method and system for rapid data communications | |
EP1132818B1 (en) | Method and data processing system for access arbitration of a plurality of processors to a time multiplex shared memory in a real time system | |
JP2003271448A (ja) | スタック管理方法及び情報処理装置 | |
US20150026431A1 (en) | Method of Processing Data with an Array of Data Processors According to Application ID | |
AU722780B2 (en) | Data base for persistent data | |
CN114546287A (zh) | 一种单通道多逻辑单元号交叉传输的方法和装置 | |
CA2193342A1 (en) | Computer system data i/o by reference among multiple cpus |
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 |