close

Вход

Забыли?

вход по аккаунту

?

Syvorova

код для вставкиСкачать
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное
образовательное учреждение высшего образования
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ
Е. А. Суворова, Н. А. Матвеева, Ю. Е. Шейнин
РАЗРАБОТКА
ДИНАМИЧЕСКИ РЕКОНФИГУРИРУЕМЫХ
СИСТЕМ И СЕТЕЙ НА КРИСТАЛЛЕ
Учебное пособие
Санкт-Петербург
2016
УДК 004.3
ББК 32.973-04
С89
Рецензенты:
доктор технических наук, профессор В. А. Фетисов;
доктор технических наук, профессор В. М. Дегтярев
Утверждено
редакционно-издательским советом университета
в качестве учебного пособия
Суворова, Е. А.
С89 Разработка динамически реконфигурируемых систем и сетей на кристалле: учеб. пособие / Е. А. Суворова, Н. А. Матвеева, Ю. Е. Шейнин. – СПб.: ГУАП, 2016. – 75 с. ISBN 978-5-8088-1159-1
Рассмотрены современные подходы к проектированию динамически реконфигурируемых систем и сетей-на-кристалле (СнК, СенК),
показаны возможности и ограничения реализации механизмов динамической реконфигурации при использовании технологий FPGA и
ASIC и описаны основные причины, из-за которых динамическая реконфигурация необходима для широкого класса СнК и СенК.
Пособие предназначено для использования магистрантами, обучающимися по направлению 09.04.01 «Информатика и вычислительная техника», по магистерской программе «Встроенные системы обработки информации и управления» по дисциплине «Системы и сетина-кристалле» и при самостоятельном изучении материала дисциплины, а также при проведении исследований и разработок по теме
магистерской диссертации. Учебное пособие будет полезно магистрантам и аспирантам, обучающимся и проводящим исследования
по близким научно-техническим направлениям.
УДК 004.3
ББК 32.973-04
ISBN 978-5-8088-1159-1
©
©
Суворова Е. А., Матвеева Н. А.,
Шейнин Ю. Е., 2016
Санкт-Петербургский государственный
университет аэрокосмического
приборостроения, 2016
Введение
В результате интенсивного развития интегральных технологий
количество компонентов, размещаемых на одном кристалле, постоянно растет. Для обеспечения повышения производительности при
одновременном сокращении сроков проектирования используются
реконфигурируемые системы и сети-на-кристалле (СнК, СенК).
Реконфигурирование систем и сетей-на-кристалле может быть
использовано для расширения области применения, адаптации
характеристик системы в соответствии с текущим набором решаемых задач, реализации большего набора функциональности, парирования сбоев и отказов, возникающих в ходе функционирования
систем. Выделяют статическую и динамическую реконфигурацию
СнК, СенК. При статической реконфигурации структура и поведение системы могут меняться за счет параметризации функциональных моделей. Изменение характеристик системы после изготовления уже не может быть изменено. Динамически реконфигурируемые системы напротив могут менять поведение в ходе функционирования готового изделия. Вследствие этого динамическая
реконфигурация становится необходимой чертой для широкого
класса систем.
В ходе динамической реконфигурации может осуществляться
изменение структуры связей между компонентами и/или изменение поведения самих компонентов. Динамическая реконфигурация
СнК, СенК может быть реализована с использованием технологии
FPGA и ASIC. Как правило изначально в микросхеме, реализованной по технологии FPGA, уже заложены ресурсы и механизмы, необходимые для реализации реконфигурации. Для СнК, реализуемых по технологии ASIC, проектировщик самостоятельно разрабатывает механизмы и алгоритмы реконфигурации системы.
3
Список сокращений
ALU – Arithmetic Logic Unit
ASIC – Application Specific Integration Circuit
BFU – Base Functional Unit
CLB – Configurable Logic Block
DPU – Dataplane Processor Unit
FIFO – First In First Out
FPGA – Field Programmable Gate Array
FU – Functional Unit
ICAP – Internal Configuration Access Port
IP – Intellectual Property
SRAM – Static Random Access Memory
АЛУ – арифметико-логическое устройство
КМОП – комплементарная структура металл-оксид-полупроводник
СДНФ – совершенная дизъюнктивная нормальная форма
СКНФ – совершенная конъюнктивная нормальная форма
СенК – сеть-на-кристалле
СнК – система-на-кристалле
4
1. ПРИЧИНЫ ИСПОЛЬЗОВАНИЯ
ДИНАМИЧЕСКОГО РЕКОНФИГУРИРОВАНИЯ
Реконфигурирование СнК – это изменение структуры связей между
компонентами системы, схемы поведения компонентов. Оно позволяет изменить правила функционирования системы, достичь гибкости,
адаптивности поведения системы к решаемым задачам [1, 2, 3, 4, 5].
Различают понятие статической и динамической реконфигурации.
К статически реконфигурируемым относят системы, структура и
поведение которых могут меняться за счет параметризации функциональных моделей (моделей уровня регистровых передач – RTL). Такого рода параметризация позволяет менять свойства и характеристики
СнК за счет изменения значений параметров без изменения исходного
кода моделей. Однако, после того как выполнен синтез такой модели,
какое-либо изменение ее характеристик уже становится невозможным.
К динамически реконфигурируемым СнК относят системы,
свойства и характеристики которых можно менять уже после их
изготовления в ходе эксплуатации, в том числе и непосредственно
во время функционирования. Динамическое реконфигурирование
СнК может быть использовано для [6]:
– расширения области применения СнК;
– адаптации характеристик системы в соответствии с текущим
набором решаемых задач;
– реализации большего набора функциональности;
– парирования ошибок, возникающих в ходе функционирования.
Основные типы реконфигурации представлены на рис. 1.
При динамической реконфигурации существует возможность
изменения поведения в ходе функционирования изделия. Динамическая реконфигурация может осуществляться в начале работы,
при выходе СнК из состояния сброса. Также динамическая реконфигурация отдельных компонентов СнК может осуществляться
в процессе функционирования.
Если динамическое конфигурирование системы осуществляется
в начале функционирования, то, как правило, никакие штатные процессы функционирования системы не должны проходить параллельно
с процессом конфигурирования. Если же динамическая реконфигурация осуществляется в ходе функционирования и является частичной,
затрагивает только часть системы, то при этом штатное функционирование остальной части системы, как правило, должно продолжаться.
В ходе динамической реконфигурации может осуществляться
изменение структуры связей между компонентами и/или измене5
Реконфигурация систем-на-кристалле
Статическая
На этапе разработки
RTL-модели, списков связей
Динамическая
В ходе функционирования
готового изделия
В начале работы
(по выходу из состояния сброса)
В ходе работы
Конфигурирование Конфигурирование
части системы
всей системы
Штатное функционирование
не останавливается
на время конфигурирования
Изменение
структуры связей
между компонентами
Технология FPGA:
Частичная замена
прошивки
Включение/отключение
отдельных элементов
(использование избыточности
на уровне компонентов
и связей)
Штатное функционирование
приостанавливается
на время конфигурирования
Изменение поведения
компонентов
Технология ASIC:
Использование
Использование
библиотек
look-up-таблиц логических элементов,
допускающих
конфигурирование
функции
(NAND, NOR...)
Рис. 1. Основные типы реконфигурации СнК
ние поведения самих компонентов. Динамически реконфигурируемые СнК могут быть реализованы с использованием технологии
FPGA и с использованием технологии ASIC.
При использовании технологии FPGA динамическая реконфигурация достигается за счет частичной замены прошивки.
При использовании технологии ASIC динамическая реконфигурация может быть обеспечена за счет:
– включения/отключения отдельных элементов, в этом случае
используется избыточность на уровне компонентов и связей;
6
– использования look-up-таблиц;
– использования библиотек логических элементов, допускающих возможность конфигурирования (логический элемент в зависимости от конфигурации может выполнять различные функции,
например NAND, NOR, NOT).
Реализация механизмов динамической реконфигурации связана с дополнительными накладными расходами. Требуются ресурсы
памяти для хранения конфигурационной информации, требуются
дополнительные компоненты и линии связи. Это приводит к существенному увеличению площади и энергопотребления системы.
Сам процесс динамической реконфигурации осуществляется не
мгновенно, является распределенным во времени. Время выполнения процесса динамической реконфигурации является критическим параметром для многих систем.
7
2. ВОЗМОЖНОСТИ ТЕХНОЛОГИИ FPGA
ДЛЯ ДИНАМИЧЕСКОЙ РЕКОНФИГУРАЦИИ
FPGA в своей основе являются реконфигурируемыми структурами, возможности по реконфигурированию закладываются в них
на этапе разработки [3, 7, 8, 9]. Ресурсы и механизмы, необходимые
для реализации реконфигурации, изначально присутствуют в микросхеме, реализованной по технологии FPGA, независимо от того, для
реализации какого пользовательского проекта данная микросхема
будет использована, требуется ли в этом проекте динамическая конфигурация. Соответственно, накладные расходы на реализацию механизмов динамической реконфигурации уже «заложены» в микросхемы. Если же используется технология ASIC, пользователь должен
сам разработать схему реконфигурирования, механизмы и алгоритмы
реконфигурирования. Это и определит, с одной стороны, возможности
по реконфигурированию для данного проекта, накладные расходы на
реализацию этих механизмов – с другой. Накладные расходы на реализацию механизмов динамического реконфигурирования в FPGA
очень велики. Например, если сравнить характеристики реализаций
FPGA и ASIC по одной и той же проектной норме 90 нм с использованием технологии КМОП, то площадь, необходимая для реализации
одного логического элемента в FPGA в среднем в 18 раз больше, энергопотребление в 14 раз выше, а быстродействие в 3–5 раз ниже, чем
при реализации в ASIC [10]. Однако реализация механизмов динамического реконфигурирования в ASIC связана с очень большими накладными расходами. Эти накладные расходы могут быть выше, чем
накладные расходы реализации в FPGA, поскольку технологические
библиотеки ASIC не включают в себя ряд специализированных компонентов, таких, например, как переключатели соединений. В результате аналогичную функциональность приходится реализовывать с использованием мультиплексоров, которые имеют существенно большую площадь и меньшее быстродействие. Размер накладных расходов
в значительной степени зависит от выбора механизмов динамического
реконфигурирования и особенностей их реализации.
FPGA относятся к мелкогранулярным реконфигурируемым системам, в которых потенциально любая часть может быть реконфигурирована (независимо от того, действительно ли нужна такая возможность для конкретной СнК). На базе ASIC как правило реализуются
среднегранулярные или крупногранулярные реконфигурируемые системы, в них возможности по реконфигурации могут быть реализованы только для тех частей СнК, где это действительно необходимо.
8
В данном учебном пособии рассматриваются подходы к проектированию динамически реконфигурируемых СнК и СенК на базе
FPGA и ASIC.
2.1. Структурная организация FPGA
Типовая структура FPGA показана на рис. 2. FPGA включает
в себя два слоя: слой, содержащий массив программируемых логических блоков и программируемой системы связей между ними,
и слой, содержащий элементы конфигурации [11]. Разделение на
слои может быть как физическим, так и логическим. В случае логического разделения элементы конфигурации равномерно расположены среди элементов программируемых логических блоков.
По способу программирования FPGA можно разделить на однократно программируемые (на базе технологии antifuse) и многократно программируемые (на базе элементов памяти). Элементы конфигурирования связаны друг с другом системой связей, обеспечиваюа)
б)
Программируемые
логические блоки
Программируемая
структура связей
Рис. 2. Типовая структура FPGA: а – послойная структура;
б – структура слоя, содержащего программируемые логические блоки
и связи между ними
9
а)
Конфигурационные
данные
Конфигурационный
элемент
Тактирование
конфигурационных
элементов
б)
Тактирование
Конфигурационные конфигурационных
Адрес колонки
данные
элементов
Выбор колонки
Рис. 3. Типовая схема записи в конфигурационные элементы:
а – без возможности записи в отдельную колонку; б – с возможностью
записи в отдельную колонку
10
щей задание их значений. Эта система связей является отдельной от
системы связей между программируемыми логическими блоками.
Пример типовой структуры связей приведен на рис. 3, а. Все конфигурационные элементы объединены в единый сдвиговый регистр.
Конфигурация, соответствующая конкретному проекту, представляется в виде битовой последовательности. В ходе конфигурирования
битовая последовательность загружается в этот сдвиговый регистр.
Элементы конфигурации могут быть реализованы:
– как «перемычки», прожигаемые, например, за счет подачи высокого напряжения (antifuse технология);
– как элементы flash-памяти;
– как элементы SRAM-памяти.
2.2. FPGA с возможностью динамической реконфигурации
Динамическая реконфигурация возможна только для многократно
программируемых FPGA. Динамически реконфигурируемые FPGA
можно разделить на реконфигурируемые в пассивном состоянии
(passive) и реконфигурируемые в активном состоянии (active). Для первых из них функционирование всего кристалла должно быть остановлено на время конфигурирования даже в тех случаях, когда меняется
только часть конфигурации. Для систем, реконфигурируемых в активном состоянии, возможно частичное изменение конфигурации на фоне
функционирования остальной части системы. В настоящее время наибольшее распространение получили динамически реконфигурируемые
FPGA семейства Virtex, разработанные фирмой Xilinx. В них поддерживается возможность конфигурирования в активном состоянии. Рассмотрим возможности динамической реконфигурации на их примере.
Совокупность ячеек конфигурационной памяти FPGA Virtex
объединена в несколько сдвиговых регистров (рис. 3, б). Геометрически такой сдвиговый регистр представляет собой колонку
(столбец) конфигурационных элементов, расположенных от одной
границы кристалла до другой. Область, в которой расположены
программируемые логические блоки (CLB), разделяется на фреймы – как правило, вертикальные колонки шириной несколько CLB
(зависит от типа FPGA) и длиной от верхней до нижней границы
зоны CLB [12, 13, 14]. Каждый такой фрейм соответствует одному
сдвиговому регистру. В такой структуре возможна запись в отдельную колонку, т. е. конфигурирование одного фрейма без изменения
конфигурации остальных. Для такой структуры конфигурация
проекта представляется не единой битовой последовательностью, а
11
Рис. 4. Схема частичной перепрошивки FPGA Xilinx Virtex
совокупностью последовательностей, каждая из которых соответствует отдельному фрейму.
За счет того, что возможна запись в один сдвиговый регистр без
изменения значений остальных регистров, для каждой из таких колонок индивидуально в ходе функционирования системы, реализованной на FPGA, может быть выполнена «перепрошивка» – частичная замена конфигурации. Для частичной замены конфигурации
используется «частичный» bitfile. Он включает в себя конфигурацию только для выбранного одного или нескольких фреймов. Частичная замена конфигурации осуществляется через специализированный конфигурационный порт ICAP (рис. 4).
СенК и СнК с поддержкой динамической реконфигурации должны
включать в себя контроллер конфигурации, управляющий портом ICAP.
Данный контроллер должен включать в себя механизмы определения моментов времени, в которые должна быть загружена новая
частичная конфигурация зоны FPGA, которая должна быть реконфигурирована (номер колонки или номера колонок, которые должны
быть реконфигурированы), идентификатор (начальный адрес) необходимой прошивки во внешней памяти, подключенной к порту ICAP.
Такой контроллер может быть реализован как конечный автомат,
выполняющий все вышеуказанные функции, либо функционировать под управлением процессорного ядра, встроенного в FPGA или
внешнего по отношению к FPGA. Во втором случае большая часть
функций реализуется на процессорном ядре и только собственно
управление интерфейсом ICAP реализуется аппаратно. Второй подход в настоящее время получил большее распространение.
12
2.3. Подходы к проектированию СенК с возможностью динамической реконфигурации на базе FPGA
При разработке проекта с возможностью динамической реконфигурации в нем должны быть определены компоненты, для которых требуется динамическая конфигурация, и компоненты, для
которых она не требуется. При реконфигурировании вновь загружаемый компонент должен быть расположен на месте одного или
нескольких выгружаемых компонентов. В соответствии с этим при
проектировании FPGA на логическом уровне разделяется на зоны,
для которых возможна динамическая реконфигурация, и зоны,
для которых невозможна динамическая реконфигурация. Поскольку реконфигурация части фрейма невозможна, во многих случаях
FPGA разбивается на зоны таким образом, чтобы они занимали прямоугольную область от верхней до нижней границы области CLB.
В ряде проектов динамическая реконфигурация реализована для
функциональных блоков [15]. В ходе реконфигурации один компонент
системы может быть заменен на другой, обладающий совершенно другой функциональностью. Например, MP3 ядро может быть заменено на
видео кодек (рис. 5). Для рассматриваемого проекта FPGA может быть
разделена на три зоны. Две из них, содержащие нереконфигурируемые
части системы, закрашены серым. Реконфигурируемая зона, в которую может быть загружен один из вариантов компонента, закрашена
белым. В правой части рисунка представлена совокупность битовых
последовательностей для этого проекта. В зону 1 и зону 3, для которых
не предусмотрена динамическая реконфигурация, загружаются битовые последовательности, отмеченные серым цветом. В зону 2 в зависимости от выбранной конфигурации загружается битовая последовательность, отмеченная зеленым, оранжевым или голубым цветом.
При разработке блоков, которые могут загружаться в данную
зону существуют следующие ограничения:
– ограничение на занимаемое количество ресурсов FPGA (CLB);
– ограничение на расположение, структуру и логику функционирования интерфейсов с остальной частью проекта.
Рассмотрим эти ограничения. Поскольку количество CLB в реконфигурируемой зоне фиксировано, разрабатываемые варианты реконфигурируемого блока должны при своей реализации занимать количество
CLB, не превосходящее количества CLB в реконфигурируемой зоне.
Остальная часть системы не является реконфигуируемой. Интерфейсы блоков, входящих в нереконфигуируемую часть, расположены
в конкретных зонах FPGA (для примера, показанного на рис. 5, места их
13
14
Аудио
Видео
MP3
Нереконфигурируемая
зона 2
Битовые последовательности
для колонок в конфигурации Видео
Битовые последовательности
для колонок в конфигурации Аудио
Битовые последовательности
для колонок в конфигурации MP3
Битовые последовательности
для колонок нереконфигурируемой зоны 1
Рис. 5. Пример реконфигурации на уровне функциональных блоков
Нереконфигурируемая
зона 1
FPGA
Реконфигурируемая зона
расположения указаны синими прямоугольниками), в их состав входит
определенное количество сигналов, функциональное назначение которых определено. Для блока сетевой структуры интерфейсы с остальной
частью системы должны располагаться в смежных зонах (для примера,
показанного на рис. 5, места их расположения указаны красными прямоугольниками), перечень и функциональность интерфейсных сигналов должны соответствовать интерфейсам нереконфигурируемой части.
В других проектах для разрабатываемой СенК может требоваться динамическая реконфигурация сети связей между узлами, реконфигурация самих узлов не требуется [16].
Для проекта с реконфигурируемой СенК FPGA может быть разделена на три зоны (рис. 6). Две из них (закрашенные серым) включают в себя компоненты, динамическое реконфигурирование которых не требуется – узлы сети. Третья зона, реконфигурируемая,
включает в себя коммуникационную систему.
В реконфигурируемую зону могут загружаться сетевые структуры с различным количеством блоков коммутаторов/маршрутизаторов, с различной структурой связи между ними.
Сетевой
интерфейс
Сетевой
интерфейс
память
...
RISCядро
Сетевой
интерфейс
Сетевой
интерфейс
память
Статическая зона
USB
контроллер
Сетевой
интерфейс
Сетевой
интерфейс
USB
контроллер
Реконфигурируемая зона
Коммуникационная
сеть
память
Сетевой
интерфейс
RISCядро
Сетевой
интерфейс
Статическая зона
память
Рис. 6. Структура СенК с возможностью
динамической реконфигурации коммуникационной системы
15
Поскольку смена конфигурации осуществляется путем последовательной записи в сдвиговый регистр, загрузка может занимать
довольно существенное время. Время динамической реконфигурации зависит от количества сдвиговых регистров, содержимое которых должно быть перезаписано, и может составлять до нескольких
мс. Если СенК реализована по схеме, приведенной на рис. 6, то все
это время СенК не сможет функционировать. Для многих классов
систем такое длительное время может быть не приемлемым.
Использование нескольких зон с динамической реконфигурацией может быть использовано для устранения этой проблемы (рис. 7).
Использование нескольких зон позволяет сохранить в ходе динамической реконфигурации возможность работы частей системы, для
которых реконфигурация в данный момент времени не выполняется.
Однако разделение проекта на зоны, расположенные от одного
края кристалла до другого, может приводить к еще нескольким
проблемам:
– из-за очень большой геометрической длины зоны и, соответственно, длины линий связей между CLB в ней временные характеСтатическая Реконфигурируемая Статическая Реконфигурируемая Статическая
зона
зона
зона
зона
зона
Блок
Коммуникационная
сеть
Блок
Блок
Блок
Блок
Коммуникационная
сеть
Блок
...
Блок
Блок
Блок
Блок
...
Блок
Блок
Рис. 7. Структура СенК с возможностью динамической реконфигурации
коммуникационной системы, расположенной
в нескольких отдельных зонах динамической реконфигурации
16
ристики (достижимая таковая частота) для блока, располагаемого
в этой зоне, могут получиться хуже, чем требуемые пользователем;
– размеры блоков, потенциально размещаемых в одной зоне, могут
очень существенно различаться. Размер зоны приходится выбирать
в соответствии с размером самого большого из размещаемых блоков.
Это приводит к неэффективному использованию ресурсов FPGA.
Эти проблемы характерны прежде всего для проектов, в которых
в одну зону загружается один компонент.
Для устранения этих недостатков может быть использован другой
подход к разбиению проекта на зоны. В рамках этого подхода зона
необязательно должна занимать полосу от одного края кристалла до
другого. При использовании этого подхода вся часть FPGA, занимаемая проектом, может быть разделена на прямоугольные зоны или
может быть выделена глобальная реконфигурируемая зона, разделенная на прямоугольные подзоны одинакового размера (рис. 8).
Каждая такая зона может содержать фрагмент коммуникационной системы, целый функциональный блок или фрагмент функциоГлобальная реконфигурируемая зона
Статическая
зона
Статическая
зона
Рис. 8. Структура СенК с возможностью динамической реконфигурации
функциональных блоков и коммуникационной системы между ними
17
Глобальная реконфигурируемая зона
Статическая
зона
Статическая
зона
Специализированный
вычислитель
Специализированный
вычислитель
Маршрутизатор
Маршрутизатор
Маршрутизатор
Маршрутизатор
Специализированный
вычислитель
Специализированный
вычислитель
Глобальная реконфигурируемая зона
Статическая
Статическая
Статическая
Статическая
зона
зона
зона
зона
Специализированный Специализированный
Специализированный
RISC
RISC
вычислитель
вычислитель
вычислитель
Маршрутизатор
Маршрутизатор
Маршрутизатор
Маршрутизатор
Маршрутизатор
FPU
FPU
Маршрутизатор
FPU
RISC
Маршрутизатор
FPU
Специализированный
Специализированный
вычислитель
вычислитель
FPU
FPU
Маршрутизатор
Рис. 9. Примеры возможной конфигурации для одного и того же проекта
18
нального блока. Для каждой подзоны определены места расположения внешних интерфейсов – интерфейсов для связи с компонентами
других зон (на рисунке отмечены красными прямоугольниками).
Если в зону загружается целый компонент, то использоваться могут
все внешние интерфейсы. Если в зону загружается часть компонента, ресурсы, выделенные для интерфейсов с зонами, в которых расположены остальные части этого компонента, могут использоваться
по другому назначению.
Как правило, все зоны имеют одинаковый размер. Это позволяет для одного компонента формировать одну прошивку, которая
Тактирование
Конфигурационные конфигурационных
данные
элементов
Адрес зоны
Выбор зоны
Рис. 10. Схема записи в конфигурационные элементы,
обеспечивающая разделение на зоны, вертикальные границы которых
не совпадают с границами кристалла
19
в дальнейшем может быть загружена в любую зону. На рис. 9 приведены примеры возможной динамической реконфигурации проекта.
Одновременно может быть выполнена реконфигурация одной или
нескольких таких зон. Часть компонентов, расположенных в других
зонах, может продолжать функционировать. Однако необходимо
учитывать, что зоны в этом проекте занимают не фреймы целиком,
а только их части, поэтому в момент загрузки новой конфигурации
в одну из зон, соседние компоненты, находящиеся в тех же фреймах,
что и реконфигурируемая зона, не смогут функционировать.
Для устранения этой проблемы в ряде FPGA вместо организации
сдвиговых регистров как колонок, осуществлен переход к объединению в сдвиговый регистр прямоугольной области конфигурационных ячеек (рис. 10). На этом рисунке зелеными областями выделены группы конфигурируемых элементов, относящиеся к одной
области. В этом случае разбиение на зоны должно соответствовать
этим областям.
Тогда смена конфигурации в одной из зон не будет влиять на
функционирование компонентов, расположенных в других зонах.
Контрольные вопросы
1. Для каких типов FPGA возможна динамическая реконфигурация?
2. Каковы основные функции контроллера динамической реконфигурации?
3. Какие существуют подходы к проектированию СенК с динамической реконфигурацией на базе FPGA?
20
3. ВОЗМОЖНОСТИ ТЕХНОЛОГИИ ASIC
ДЛЯ ДИНАМИЧЕСКОЙ РЕКОНФИГУРАЦИИ
При использовании технологии ASIC существуют следующие
возможности для обеспечения динамической реконфигурации:
– реконфигурация связей между компонентами;
– реконфигурация самих компонентов.
Рассмотрим более подробно эти возможности.
3.1. Реконфигурация связей между компонентами
Реконфигурация путей передачи данных между компонентами в СенК на базе маршрутизаторов может осуществляться за счет
реконфигурирования поведения маршрутизаторов. В этом случае
обеспечивается возможность изменить логическое пути передачи
данных без изменения физической структуры связей между компонентами. Например, маршрутизаторы могут включать в себя
программируемую таблицу маршрутизации, по которой в соответствии с адресом пакета определяется множество портов, в которые
его необходимо передать. Также в алгоритме работы маршрутизатора может существовать возможность контролировать текущую загрузку различных портов и перенаправлять потоки данных в обход
перегруженных участков сети.
Однако в ряде случаев такая реконфигурация путей передачи
данных оказывается недостаточной. Например, в СнК с базовой
структурой связей типа «двумерная решетка» может использоваться для решения различных наборов задач. В рамках одного из них существует необходимость передавать данные только
между узлами, расположенными в одном столбце, потоки данных имеют при этом высокую интенсивность. В рамках другого
набора задач необходимо передавать данные между узлами, находящимися в разных строках и в разных столбцах, интенсивность потоков данных при этом не очень высока. Для того чтобы
оба набора задач решались в системе эффективно, недостаточно
соответствующим образом сконфигурировать логические пути
передачи данных. Для решения первого набора задач необходимо
увеличить пропускную способность каналов связи между узлами, расположенными в одном столбце. Это может быть достигнуто за счет увеличения количества связей на этом направлении.
Для этого требуется реконфигурация структуры связей на физическом уровне.
21
Новая
конфигурация
Элемент памяти
DATA_in_1
DATA_in_2
DATA_out
DATA_in_n
Рис. 11. Типовая структура элемента конфигурации
При использовании технологии ASIC для обеспечения возможности реконфигурировать структуру связей между компонентами
используются:
– дополнительные линии связи;
– дополнительные мультиплексоры для их подключения к компонентам.
Типовая структура элемента конфигурации изображена на рис. 11.
В ходе динамической реконфигурации определяется, какие из дополнительных линий связи будут использоваться – задаются значения,
подаваемые на управляющие входы мультиплексоров, обеспечивающих подключение линий связи к компонентам. В результате формируется конкретный вариант структуры связей между компонентами.
Динамическая реконфигурация связей может осуществляться
на различных уровнях структуры СнК:
– на уровне коммуникационной системы СенК;
– на уровне связей между подблоками в рамках одного блока СнК.
Динамическая реконфигурация на уровне СенК
Существует несколько подходов к организации динамической
реконфигурации на уровне коммуникационной системы СенК. Рассмотрим три типовых подхода.
В рамках первого подхода сеть строится аналогично реконфигурируемой сетевой структуре между CLB, используемой в FPGA.
22
Для названия этого класса систем часто используется термин
Reconfigurable instruction cell array. Коммуникационная система
представляет собой совокупность каналов для передачи данных,
расположенных в структуре вертикально и горизонтально и конфигурируемых коммутаторов каналов, расположенных в зонах пересечения вертикальных и горизонтальных каналов.
Типовым примером такого рода архитектуры является архитектура MARIX (рис. 12) [17]. Каждый блок в этой архитектуре (Base
Functional Unit – BFU) включает в себя АЛУ и блок памяти. АЛУ
может выполнять различные логические и арифметические операции, в том числе умножение. Функциональный блок может выполнять три команды: команда загрузки инструкции, команда загрузки данных, арифметическая/логическая команда на АЛУ.
Сетевая структура обеспечивает соединения между соседними
блоками, а также сквозные соединения через четыре блока и глобальные связи между всеми блоками в строке и всеми блоками
в столбце. Система функционирует в режиме коммутации каналов.
В качестве узлов сети при этом могут выступать блоки различной гранулярности. Это могут быть арифметико-логические устройства (eXtreme Processing Platform (XPP) [18]), RISC ядра, RISC ядра
с блоками памяти (DAPDNA [19]) и даже целые кластеры, включающие в себя несколько процессорных блоков и блоков памяти (Tartan
[20], SiliconHive [21]). Все узлы сети могут быть идентичными или
в системе могут присутствовать узлы разных типов. Например,
могут использоваться узлы двух типов: арифметико-логические
устройства и блоки памяти.
В рамках второго подхода сеть строится на базе специальных реконфигурируемых маршрутизаторов. В данном случае в сети используются и механизмы коммутации каналов и механизмы коммутации
пакетов, что делает ее более гибкой. Данный подход используется
в архитектуре ReNoC [22]. В каждом порту такого маршрутизатора
расположен «топологический коммутатор». Данный топологический
коммутатор обеспечивает возможность подключения нескольких
альтернативных линий связи к каждому порту маршрутизатора.
Выбор конкретной линии связи, которая будет подключена в рамках текущей конфигурации, осуществляется в ходе динамического
реконфигурирования системы связей. Типовая структура СенК, построенной с использованием этого подхода, изображена на рис. 13.
В данном примере базовая структура связей между маршрутизаторами представляет собой двумерную решетку. На вертикальных и
горизонтальных направлениях расположены избыточные линии
23
24
BFU
Порт А
BFU
BFU
BFU
BFU
BFU
BFU
BFU
BFU
BFU
BFU
BFU
BFU
б)
Порт А
АЛУ
Блок памяти
Рис. 12. Структура связей между функциональными блоками (BFU) (а)
и структура функционального блока (б) в архитектуре MATRIX
BFU
BFU
BFU
Порт Б
а)
Порт Б
а)
Network Node
IP1
IP2
IP3
Router
IP4
IP5
IP6
IP7
IP8
IP9
IP10
IP11
IP12
R
Topology switch
б)
Link
Link
Router
Port 1
Port 2
Link
Port 3
Port 4
Port 5
Link
Topology Switch
IP-block
Рис. 13. Типовая структура СенК на базе топологических коммутаторов:
а – структура сети; б – структура топологического коммутатора
связи. К каждому топологическому коммутатору подключены линии
связи, идущие к маршрутизатору от каждого из четырех направлений и от терминального узла. В зависимости от конфигурирования
топологических коммутаторов может быть получена структура свя25
зей, представляющая собой полную или частичную двумерную решетку. Если используется частичная двумерная решетка, например
только с вертикальными линиями связей, порты маршрутизатора,
используемые в базовом варианте для подключения горизонтальных
связей, в данном случае могут быть использованы для подключения
дополнительных вертикальных связей. В результате будет увеличена пропускная способность логических каналов передачи данных,
идущих в вертикальном направлении.
При использовании данного подхода могут быть использованы
другие базовые варианты структуры связей между маршрутизаторами, например тор или трехмерная решетка. Выбор структуры
связей должен осуществляться с учетом технологических ограничений: ограничения на максимально допустимую длину линий связи между маршрутизаторами и ограничения на количество портов
маршрутизатора. Допустимая длина линии связи определяется прежде всего выбранной проектной нормой. Ограничение на количество портов определяется используемым для разводки информационных линий количеством слоев металлизации. Количество портов
маршрутизатора при использовании этого подхода, как правило, не
может превосходить 6–8. Все линии связи, подключаемые к маршрутизатору, должны подключаться к каждому из топологических
коммутаторов. В результате наличие ограничений по разводке
большого количества линий связи в зоне маршрутизатора приводит
к наличию ограничения на количество портов вследствие технологических ограничений на длину линий связи, на количество линий
связи, пересекаемых в одной зоне.
В рамках третьего подхода [23] наряду с дополнительными линиями связей используются:
– отдельные коммутаторы каналов;
– мультиплексоры каналов в каждом порту маршрутизатора и
коммутатора.
Пример структуры сети показан на рис. 14. На рис. 14, а ромбами
отмечены маршрутизаторы, восьмиугольниками – коммутаторы
каналов. В данном примере базовая структура сети представляет
собой двумерную решетку с дополнительными диагональными связями. В качестве базовой могут использоваться и другие структуры,
например тор, трехмерная решетка.
Так же, как и в предыдущем подходе, при выборе структуры связей необходимо учитывать технологические ограничения на допустимое количество портов и длину линий связи. Однако в данном случае
выделенные коммутаторы каналов могут использоваться в качестве
26
а)
Маршрутизатор
Коммутатор каналов
б)
Коммутатор
FIFO
FIFO
FIFO
FIFO
FIFO
FIFO
FIFO
FIFO
FIFO
Контроллер
порта
Контроллер
порта
Терминальный
узел
Кросскоммутатор
Контроллер
порта
FIFO
crossbar
FIFO
FIFO
crossbar
FIFO
Коммутатор
FIFO
FIFO
FIFO
Маршрутизатор
Контроллер
порта
Контроллер
порта
Рис. 14. Пример структуры сети с использованием коммутаторов каналов: а – структура сети; б – фрагмент структуры сети
27
FIFO
FIFO
FIFO
FIFO
FIFO
FIFO
FIFO
FIFO
FIFO
FIFO
FIFO
FIFO
FIFO
FIFO
FIFO
FIFO
4-портовый
коммутатор каналов
FIFO
4-портовый
коммутатор каналов
FIFO
4-портовый
коммутатор каналов
Рис. 15. Пример варианта замены одного 8-портового коммутатора каналов
на группу из четырех коммутаторов с четырьмя портами
FIFO
FIFO
FIFO
FIFO
FIFO
FIFO
FIFO
FIFO
FIFO
FIFO
FIFO
FIFO
FIFO
FIFO
8-портовый
коммутатор каналов
кросскоммутатор
4-портовый
коммутатор каналов
кросскоммутатор
кросскоммутатор
кросскоммутатор
кросскоммутатор
28
«повторителей», это позволяет увеличивать расстояние между маршрутизаторами. Площадь коммутатора каналов на порядок меньше
площади маршрутизатора, что позволяет снижать площадь коммуникационной системы. В тех случаях, когда количество коммутируемых
связей превосходит допустимое с точки зрения технологии количество
портов коммутатора, может использоваться группа из нескольких
объединенных коммутаторов. На рис. 15 представлен вариант замены
одного 8-портового коммутатора на четыре 4-портовых коммутатора.
Аппаратные затраты на реализацию в обоих случаях одинаковы [24].
Таким образом, для систем с большим требуемым количеством
линий связи и портов третий подход является предпочтительным.
Аппаратные затраты на реализацию реконфигурируемой системы связей СенК невелики. Они зависят от количества коммутаторов
каналов и дополнительных линий связи, однако их площадь пренебрежимо мала по сравнению с площадью маршрутизаторов. Для
рассмотренных вариантов реализации накладные расходы на реализацию реконфигурируемой структуры связей не превосходят 10 %
площади СенК без возможности динамической реконфигурации с таким же количеством терминальных узлов и маршрутизаторов. Если
сравнить эти накладные расходы с накладными расходами при реализации аналогичного проекта в FPGA, то они в сотни раз меньше.
Динамическая реконфигурация на уровне связей
между подблоками
Динамическая реконфигурация может осуществляться на уровне
связей между подблоками в рамках одного блока СнК [25]. Это широко
используется для динамического изменения соотношения количество/
разрядность отдельных подкомпонентов. Например, в разных режимах
эксплуатации системы может требоваться конфигурация, состоящая из
четырех АЛУ, обрабатывающих 8-разрядные числа или конфигурация,
состоящая из одного АЛУ, обрабатывающего 32-разрядные числа. Эта
реконфигурация обеспечивается путем постановки N компонентов с минимальной (в соответствии с требованиями реконфигурации) разрядностью. Компоненты могут либо функционировать независимо друг от
друга, либо объединяться в группы по несколько компонентов (рис. 16).
Аппаратные затраты на реализацию этого механизма пренебрежимо малы.
Также этот подход может быть использован для формирования реконфигурируемых блоков обработки потоковых данных (DataPath), в которых меняются пути передачи данных между функциональными блока29
Compute Module
(Structure of RTL Model)
Data or
Data vector
Configuration
data
ALU 3
ALU 2
ALU 1
ALU 0
Data or
Data vector
Рис. 16. Блок АЛУ с конфигурируемой разрядностью
FU
FU
FU
FU
FU
FU
FU
FU
FU
FU
FU
коммутатор
FU
FU
FU
коммутатор
FU
FU
FU
коммутатор
FU
FU
FU
Рис. 17. Пример структуры реконфигурируемого блока обработки
потоковых данных (DataPath)
ми. Этот подход широко используется при реализации Reconfigurable
Instruction Set Architecture [26]. При использовании данного подхода
часть инструкций пользователь может конфигурировать сам в соответствии с задачами, для которых предназначены процессорные ядра.
В частности, он реализуется в Dataplane processors – DPU.
Пример структуры такого блока показан на рис. 17. Функциональные модули, входящие в состав этого блока взаимодействуют через
коммутаторы. Конкретный вариант настройки коммутаторов определяет пути передачи данных между функциональными модулями.
Выполним оценку соотношения аппаратных затрат на реализацию функциональных модулей и аппаратных затрат на реализацию реконфигурируемой коммуникационной системы. На рис. 18
30
2,5
2
1,5
1
0,5
0
4
6
8
количество FU, портов коммутатора (N)
сумматор, 8 разрядов
накопитель, 8 разрядов
накопитель, 32 разряда
сумматор, 32 разряда
Рис. 18. Соотношения площадей функциональных модулей
и коммутаторов
приведены результаты, полученные для относительно простых FU
(сумматор, накопитель). Как можно видеть из графиков, при небольшом количестве функциональных модулей на каждом уровне
и, соответственно, количестве портов коммутаторов, суммарная
площадь FU превосходит площадь коммутаторов. При увеличении
количества FU до восьми, площади становятся равными и далее
площадь коммутаторов начинает превосходить площадь FU.
Таким образом, в данном случае накладные расходы на реализацию реконфигурации велики.
3.2. Реконфигурация компонентов
При использовании технологии ASIC существует также возможность динамического изменения схемы поведения компонентов.
Возможные альтернативы реализации представлены на рис. 19.
Компоненты, конфигурируемые «внутри себя», могут строиться
с использованием следующих подходов:
– компоненты на базе look-up-таблиц;
– компоненты, реализующие совершенную конъюнктивную или
совершенную дизъюнктивную форму (СДНФ, СКНФ);
– технологические библиотеки реконфигурируемых компонентов (NAND, NOR, INV).
31
Схема поведения 1
Схема поведения 2
Компонент
конфигурируемый
«внутри себя»
Схема поведения N
Рис. 19. Возможные подходы к организации динамического изменения
схемы поведения компонентов
Сравним альтернативные варианты изменения схемы поведения
на примере реализации реконфигурируемых автоматов. Рассмотрим
два варианта реализации реконфигурируемого автомата. В первом
случае для каждого варианта реализации разработан отдельный автомат, далее они объединяются по схеме, представленной в левой части
рис. 19. Во втором случае реконфигурируемый автомат реализуется на
базе look-up-таблицы. Рассматриваемый в качестве примера реконфигурируемый автомат используется для обработки заголовков пакетов
в маршрутизаторе СенК. Варианты графа состояний автомата показаны на рис. 20. Площадь варианта автомата, показанного на рис. 20, а
составляет 125 мкм2, рис. 20, б – 198 мкм2, рис. 20, в – 232 мкм2 при
использовании технологи 120 нм.
Рассмотрим теперь реализацию с использованием look-up-таблиц.
Данные таблицы могут быть реализованы на базе отдельных триггеров или блоков памяти SRAM. Содержимое look-up-таблиц может меняться динамически в ходе функционирования системы. Вариант реализации рассматриваемого реконфигурируемого автомата на базе lookup-таблицы показан на рис. 21. В этом примере используется таблица,
включающая в себя 128 строк разрядностью 7. С использованием этой
таблицы могут быть определены различные варианты конечного автомата Мура с количеством состояний, не превосходящим 7, четырьмя
входными и четырьмя выходными сигналами. Как можно видеть из
этого примера, использование данного подхода позволяет очень существенно менять протокол передачи данных по сети – включать/выключать поддержку дополнительных функций, таких как поддержка
32
а)
Idle
000
finish_pack= 1
start_packet = 1
Write_addr
0001
/ wr_addr=1
Work
011
finish_arb = 1
Arbitration
010
б)
Idle
000
start_packet = 1
finish_pack= 1
finish_pack = 1
Del_packet
100
Work
100
finish_arb = 1
& fl_ok = 1
finish_arb = 1
& fl_ok = 0
Write_id_prio
001
/wr_prio = 1
wr_id = 1
Write_addr
010
/wr_addr = 1
Arbitration
011
в)
Idle
000
finish_pack= 1
start_packet = 1
finish_pack =1
Work
110
Del_packet
101
finish_arb = 1
& fl_ok = 1
finish_arb = 1
& fl_ok = 0
Write_flags
001/
wr_fl=1
Write_addr
010
/wr_addr = 1
Arbitration
100
Write_id
011
/wr_id=1
Рис. 20. Примеры вариантов конечного автомата
33
Input port controller
(Structure of RTL Model)
state
start_pack
finish_pack
Look-up table
(SRAM block)
wr_prio
wr_id
finish_arb
wr_addr
fl_ok
wr_fl
Content Reload content
Рис. 21. Модель контроллера входа порта
с возможностью динамической реконфигурации на базе look-up-таблицы
различных уровней приоритета, классов сервиса. Эти возможности существенно превосходят возможности реконфигурации на базе выбора
из трех рассмотренных выше схем поведения.
Однако площадь этого варианта реализации 45040 мкм2 = 0,045
мм2, это в 180–200 раз больше площади отдельно взятого автомата,
в 73 раза больше площади комплекса из трех автоматов с возможностью выбора режима.
Таким образом, если вариантов автомата мало и они заранее известны, то лучше ставить комплексный набор автоматов.
Рассмотрим технологические ограничения на использование
look-up таблиц для реализации конечных автоматов. Количество
разрядов в строке таблицы и количество строк таблицы может быть
определено по следующим формулам:
N
=
c No + Ns
Nl = 2Ni + Ns
где Ni – суммарная разрядность входных сигналов; No – суммарная
разрядность выходных сигналов; Ns – количество разрядов, необходимое для кодирования состояний автомата; Nc – количество разрядов в строке; Nl – количество строк.
Допустимое количество строк для технологий 180 нм–120 нм–
90 нм составляет 1024–4096. Как количество состояний в автоматах
контроллеров входов, выходов портов не велико, для их кодирова34
ния достаточно Ns = 3–4 разряда. В соответствии с этим допустимое
количество входов составляет 6–8. В тех случаях, когда количество
входов автомата больше, может использоваться следующее:
– декомпозиция автомата на подавтоматы;
– в общей структуре автомата выделение подструктур, которые
необходимо реконфигурировать.
Рассмотрим другие способы реализации реконфигурируемых
компонентов.
Компоненты, реализующие совершенную дизъюнктивную нормальную форму (СДНФ), могут использоваться для реализации
комбинационных схем, например:
– блоки арбитража;
– части автоматов Мили и др.
Оценим аппаратные затраты на реализацию этого подхода на
примере схемы арбитража. Графики, соответствующие аппаратным затратам на реализацию схемы арбитража с абсолютными приоритетами, с относительными приоритетами и произвольную схему
арбитража на базе СДНФ в зависимости от количества арбитрируемых входов изображены на рис. 22. Площадь реконфигурируемого
варианта в 50–60 раз больше нереконфигурируемых.
Таким образом, реконфигурируемый вариант целесообразно использовать если:
– варианты конфигурации заранее неизвестны;
мкм2
40000
35000
30000
25000
20000
15000
10000
5000
0
Количество входов/выходов
4
5
6
7
реконфигурируемый
с циклическими приоритетами
с абсолютными приоритетами
Рис. 22. Площадь схемы арбитража
в зависимости от количества портов
35
– вариантов 10 и более (мультиплексирование выходов приводит
к ощутимым аппаратным затратам и ухудшению временных характеристик).
Для реализации реконфигурируемых компонентов также могут
быть использованы специализированные технологические библиотеки, включающие в себя реконфигурируемые компоненты, реализующие различные логические функции типа NAND, NOR, INV
и др. [27, 28]. Пример принципиальной схемы реконфигурируемого
компонента показан на рис. 23. Значения опорных напряжений, подаваемых на управляющие входы схемы, приведены в табл. 1. Элементы специализированных технологических библиотек в 2–3 раза
больше по площади «обычных» компонентов типа AND, OR с таким
же количеством входов. Таким образом, использование такого реконфигурируемого компонента позволяет ощутимо (в 1,5–2 раза) сократить площадь по сравнению с использованием подхода, при котором
формируется группа из нескольких компонентов, не имеющих возможности конфигурирования и через переключатели подключаемых
к одному комплекту линий связи.
clk
Mpc
F
Dm
C ma
M ma
C 2a
D2
D2
M 2a
C 2b
M 2b
C mb
Dm
M mb
D1
M1
clk
M ev
Рис. 23. Пример структурной схемы реконфигурируемого компонента
36
Таблица 1
Функция
Вход Dx используется
Вход Dx не используется
при определении значения выхода при определении значения выхода
Cxa
Cxb
Cxa
Cxa
NAND
0
V–
V+
V–
NOR
V–
0
V–
V–
INV
V–
0
V–
V+
Также использование динамически реконфигурируемых компонентов позволяет в 2–10 раз сократить площадь по сравнению с вариантом реализации отдельных логических элементов с использованием look-up-таблиц.
Аппаратные затраты на реализацию реконфигурируемого поведения компонентов в зависимости от выбранного варианта реализации в разы или даже десятки раз больше, чем при реализации
в FPGA. Однако за счет того, что динамическая реконфигурация
требуется только для ограниченного числа компонентов, как правило аппаратные затраты на реализацию СенК в целом для технологии ASIC все равно оказываются ниже, чем для технологии FPGA.
Подведем итог:
– аппаратные затраты на реконфигурируемую подсистему связей на уровне СенК невелики, они существенно меньше, чем при использовании FPGA;
– аппаратные затраты на реконфигурируемую подсистему связей на более низких уровнях выше, но во многих случаях приемлемы, они также существенно меньше, чем при использовании FPGA;
– аппаратные затраты на реализацию реконфигурируемого поведения компонентов очень велики. Они больше, чем при использовании технологии FPGA;
– аппаратные затраты оправданы: когда требуемая схема поведения на этапе изготовления не известна; когда количество вариантов
схем поведения больше 10–15.
Контрольные вопросы
1. Каковы основные возможности обеспечения динамической реконфигурации при использовании технологии ASIC?
2. Какова типовая структура элемента конфигурации?
3. Каковы основные подходы к динамической реконфигурации
на уровне СенК?
37
4. Привести типовые примеры динамической реконфигурации
на уровне связей между подблоками.
5. За счет каких механизмов может осуществляться динамическая реконфигурация компонентов?
38
4. ПРОЦЕСС ДИНАМИЧЕСКОЙ РЕКОНФИГУРАЦИИ
СЕТИ-НА-КРИСТАЛЛЕ НА БАЗЕ ASIC
В данном разделе мы рассмотрим процесс динамического реконфигурирования СенК, реализованных на базе ASIC. Процесс динамического реконфигурирования ASIC очень существенно отличается от динамического реконфигурирования FPGA. Как было рассмотрено ранее,
FPGA изначально представляет собой реконфигурируемую структуру.
На этапе разработки FPGA, а не конкретного проекта, определены:
– перечень конфигурируемых элементов;
– место хранения конфигурационной информации;
– связи между зоной хранения конфигурационной информации
и соответствующими элементами FPGA;
– схема загрузки конфигурационной информации.
FPGA разделена на зоны, являющиеся минимальными единицами реконфигурирования. Перед разработчиком стоит задача эффективного расположения элементов проекта, для которых возможно
независимое конфигурирование, по этим зонам. В том случае, если
используется технология ASIC, разработчик на этапе разработки
проекта сам определяет перечень конфигурируемых элементов,
способы передачи, хранения и загрузки конфигурационной информации. Поэтому подходы, разработанные для FPGA, в общем случае не применимы для ASIC, так как при проектировании реконфигурируемых ASIC требуется решать совершенно другие задачи.
Большинство существующих подходов к реконфигурированию
СенК ASIC ориентировано на полное прекращение штатной работы
даже при частичном реконфигурировании [29, 30]. Однако, так же как
и при использовании FPGA, конфигурирование может занимать довольно существенное время, до нескольких мс. Вследствие этого для
систем, ориентированных на решение задач с требованиями реального
времени, к которым относится, например, большинство систем аэрокосмического назначения, такое временное прекращение функционирования зачастую является неприемлемым. Мы будем рассматривать
процесс динамического реконфигурирования ряда компонентов, входящих в состав СенК, без останова ее функционирования.
4.1. Этапы процесса динамического реконфигурирования СенК
Процесс реконфигурирования СенК включает в себя следующие
основные этапы:
– определение необходимости реконфигурирования;
39
– определение новой конфигурации системы;
– реконфигурирование системы.
Определение необходимости реконфигурирования может осуществляться в «ручном режиме» – пользователь в явном виде может подавать команду на реконфигурирование системы. Например,
СенК может быть переведена в энергосберегающий режим, если
пользователь не планирует ее активного использования в ближайшее время.
Определение необходимости конфигурирования может осуществляться также средствами самой системы (аппаратными или программными) в случае изменения набора решаемых задач, изменения загрузки различных частей системы, выявления ошибок в ходе
функционирования.
Можно выделить два основных подхода к определению новой
конфигурации. В рамках одного из них для СенК может быть заранее определен набор возможных конфигураций. Такой набор может
быть сформирован на этапе проектирования СенК, либо на этапе
проектирования системы, в состав которой входит рассматриваемая
СенК. В случае существования набора возможных конфигураций
при определении необходимости конфигурирования осуществляется выбор одной из возможных конфигураций. Для СенК должен
быть разработан набор правил определения новой конфигурации,
позволяющих в соответствии с причиной, приведшей к необходимости реконфигурирования определить конфигурацию из набора.
При использовании этого подхода вместо термина «конфигурация»
может использоваться термин «режим функционирования». Например, СенК может быть переведена в режим пониженного энергопотребления. Для этого режима заранее определен, например, перечень компонентов, которые в этом режиме должны быть выключены и перечень компонентов, для которых должна быть снижена
тактовая частота.
В рамках другого подхода новая конфигурация определяется
динамически в соответствии с причиной реконфигурирования. Например, если было определено, что нагрузка на один из компонентов сети снизилась, для данного компонента может быть снижена
тактовая частота.
Основным недостатком первого подхода является необходимость
хранить конфигурационную информацию для определенного набора конфигураций. Для этого требуется большой объем памяти
(от нескольких Кбайт до сотен Мбайт). При использовании второго
подхода столь большого объема памяти не требуется, однако логи40
ка определения новой конфигурации может быть очень сложной.
Поведение системы в результате конфигурирования может стать
сложно предсказуемым. Вследствие этого, если СенК используется в системах, ошибки в ходе функционирования которых могут
иметь критические последствия, в них, как правило, используется
первый подход.
После того как новая конфигурация определена, она должна
быть загружена в СенК. Механизмы реконфигурирования системы
включают в себя:
– передачу конфигурационной информации;
– замену конфигурационной информации в конфигурируемых
компонентах.
4.2. Требования и ограничения для процесса передачи конфигурационной информации
Процесс передачи конфигурационной информации может быть
охарактеризован временем выполнения и накладными расходами
на реализацию (площадь, энергопотребление). Вариант реализации
процесса динамического реконфигурирования должен выбираться
в соответствии с требованиями пользователя по этим параметрам.
Допустимые значения параметров зависят от задач, решаемых пользователем. Но можно выделить общие тенденции. В большинстве случаев накладные расходы по площади не должны превышать 5–7 %.
Допустимые временные характеристики зависят от времени
решения задач. В большинстве случаев время реконфигурации не
должно превышать 0,1–0,01 от среднего времени выполнения задачи. На передачу конфигурационной информации, как правило, отводится 0,01 от времени реконфигурации. Время выполнения задач
достаточно большой гранулярности, таких как умножение и деление матриц размером несколько сотен элементов может составлять
сотни мс [31, 32]. Выполнение задач средней гранулярности может
составлять сотни мкс – единицы мс [32]. Соответственно, для крупногранулярных задач передача конфигурационной информации
должна осуществляться за десятки мкс, для среднегранулярных
задач – за единицы мкс – сотни нс.
Время передачи конфигурационной информации зависит от размера вектора конфигурации. Выполним оценку возможных размеров векторов конфигурации на примере элементов реконфигурируемой СенК со структурой, представленной на рис. 14. Для конфигурирования коммутатора каналов (его детальная структура пока41
Сваппер
Сваппер
Сваппер
Сваппер
Сваппер
Сваппер
Сваппер
Входные Буфера
Блоки
Кросскомутатор
точки
маршрутизации
подключения
пакетов
внешних
линий
Сваппер
Сваппер
Сваппер
Router
Арбитры Выходные
точки
подключения
внешних
линий
Рис. 24. Маршрутизатор с реконфигурируемой структурой
зана на рис. 14, б) для каждого входного порта должно быть задано
разрешение работы и номер выходного порта, с которым он должен
быть связан. Длина вектора конфигурационной информации может
быть определена по следующей формуле:
=
Lc N p (1 + log2 (N p )),
(1)
где Lc – разрядность вектора; Np – количество портов.
Например, для коммутатора каналов с четырьмя портами длина
вектора настройки составит 12 бит.
Длина вектора конфигурационной информации для маршрутизатора [33], детальная структура которого изображена на рис. 24,
может быть определена по следующей формуле:
Lc = Lsw + Lbuf + Lr + La + Lrt , (2)
где Lsw – длина вектора конфигурационной информации для компонентов переключения связей (swapper); Lbuf – длина вектора конфигурационной информации для буферов; Lr – длина вектора конфигурационной информации для блоков маршрутизации; La – длина
вектора конфигурационной информации для блоков арбитража;
42
Lrt – длина вектора конфигурационной информации для таблицы
маршрутизации.
Например, для простейшего 8-портового маршрутизатора с реконфигурируемой структурой, в котором один компонент переключения связей используется на четыре канала, блоки буферизации
используются только для входных портов и могут находиться только в состоянии включен/отключен. Для блоков буферизации и арбитража существует основной и элементарный (обеспечивающий
минимальную функциональность с минимальным энергопотреблением) варианты: Lsw = 120 бит, Lbuf = 8 бит, Lr = 8 бит, La = 8 бит. Тогда Lc = 144 бит. Если в маршрутизаторе имеется таблица маршрутизации размером, например, 32 строки по 8 бит, то Lrt = 256 бит. Если
используется маршрутизатор с реконфигурируемой структурой и
таблицей маршрутизации, то суммарная длина вектора конфигурации Lc = 400 бит.
4.3. Передача конфигурационной информации
Для передачи конфигурационной информации между местом ее
хранения и конфигурируемым блоком может использоваться либо та
же сеть, которая используется для передачи основных информационных потоков, либо выделенная сеть [12, 13, 14]. Сравним эти варианты.
Использование выделенной сети
для передачи конфигурационной информации
Если для передачи данных используется выделенная сеть, то,
с одной стороны, передача информационных потоков никак не может повлиять/помешать передаче конфигурационной информации.
Требуются специальные механизмы, обеспечивающие гарантированную доставку и гарантированное время доставки конфигурационной информации. Однако, с другой стороны, использование выделенной сети связано с дополнительными аппаратными затратами.
Для организации выделенной сети могут использоваться различные графы связей между узлами. Наибольшее распространение получили цепочечная структура и двумерная решетка [12, 13, 14, 34].
При формировании цепочечной структуры используется подход, аналогичный используемому при формировании цепей сканирования.
Непосредственные связи прокладываются между соседними узлами
в топологическом рисунке схемы, при этом тип узлов роли не играет. Например, фрагмент цепочки может выглядеть следующим об43
разом: …терминальный узел – терминальный узел – терминальный
узел – маршрутизатор – коммутатор – терминальный узел…. Линии
связи при таком подходе будут очень короткими, в результате время
передачи по ним будет мало и накладные расходы по площади будут
очень малы. Всем узлам, входящим в цепочечную структуру, присваиваются уникальные идентификаторы. Значение данных идентификаторов фиксируется на этапе разработки RTL-модели. Каждый
пакет с конфигурационной информацией снабжается заголовком,
состоящим из идентификатора узла. Когда пакет поступает в очередной узел, его заголовок сравнивается со значением идентификатора
данного терминального узла. Если они совпадают, то пакет принимается данным терминальным узлом, в противном случае передается по цепочке дальше. Схема, реализующая данную логику работы,
имеет очень малую площадь и малое время срабатывания.
Максимальное время передачи конфигурации в такой системе
зависит от количества узлов в цепочке (количества терминальных
узлов, коммутаторов, маршрутизаторов в СенК) – в худшем случае
конфигурация будет передаваться через цепочку из всех узлов. Когда это время оказывается неприемлемо большим, вместо цепочки
может использоваться двумерная решетка.
При формировании двумерной решетки, так же как и при формировании цепочечной структуры, непосредственные связи прокладываются между узлами, расположенными рядом в топологическом рисунке схемы. Каждому узлу системы присваивается
уникальный идентификатор, но в данном случае он, как правило,
состоит из двух частей – порядкового номера в ряду и порядкового
номера в столбце (такая организация упрощает процесс маршрутизации пакетов в сети).
Возможно использование неполных решеток, гибридных структур, состоящих из элементов решетки и цепочек. Как правило, такие структуры используются, если геометрические размеры узлов
в СенК очень сильно различаются и формирование классической
двумерной решетки невозможно.
Выполним оценки времени передачи конфигурационной информации в таких структурах. Поскольку положение источника конфигурационной информации заранее не известно, здесь и далее будем рассматривать самый худший случай – передачу информации
между наиболее удаленными узлами. Время передачи информации
может быть определено по следующей формуле:
44
Tc =
(D − 1)Th + (Lc )T1, (3)
нс
где D – диаметр графа связей; Th – время передачи заголовка пакета; Lc – длина вектора конфигурации; T1 – время передачи одного
бита данных между соседними узлами.
На рис. 25 и рис. 26 изображены графики максимального времени передачи конфигурационной информации для этих структур
в зависимости от количества передаваемой информации, количества узлов и скорости передачи. В этом примере мы использовали
два варианта вектора конфигурации – вектор конфигурации для
элементарного 4-портового коммутатора каналов, включающий
в себя 3 бита конфигурации на каждый порт, и вектор конфигурации для таблицы маршрутизации, используемой в маршрутизаторе, размер таблицы 32 строки по 8 бит.
Как можно видеть из этих графиков, время передачи мало зависит от выбранной топологии (разница во времени передачи менее
10 %). Для обоих вариантов топологии время доставки прямо про6000
5000
4000
3000
2000
1000
0
16
3264
128
Количество узлов
256
коммутатор каналов, 4 порта, 100 Мбит/с
таблица маршрутизации: 32 строки по 8 бит, 100 Мбит/с
коммутатор каналов, 4 порта, 200 Мбит/с
таблица маршрутизации: 32 строки по 8 бит, 200М бит/с
коммутатор каналов, 4 порта, 400 Мбит/с
таблица маршрутизации: 32 строки по 8 бит, 400 Мбит/с
коммутатор каналов, 4 порта, 800Мбит/с
таблица маршрутизации: 32 строки по 8 бит, 800 Мбит/с
Рис. 25. Максимальное время передачи конфигурационной информации
в выделенной сети с графом связей на базе цепочки
45
нс
6000
5000
4000
3000
2000
1000
0
16
32
64
128
256
Количество узлов
коммутатор каналов, 4 порта, 100 Мбит/с
таблица маршрутизации: 32 строки по 8 бит, 100 Мбит/с
коммутатор каналов, 4 порта, 200 Мбит/с
таблица маршрутизации: 32 строки по 8 бит, 200М бит/с
коммутатор каналов, 4 порта, 400 Мбит/с
таблица маршрутизации: 32 строки по 8 бит, 400 Мбит/с
коммутатор каналов, 4 порта, 800Мбит/с
таблица маршрутизации: 32 строки по 8 бит, 800 Мбит/с
Рис. 26. Максимальное время передачи конфигурационной информации
в выделенной сети с графом связей на базе двумерной решетки
порционально скорости передачи данных. При скорости передачи 100 Мбит/с максимальное время доставки конфигурационного
пакета, содержащего таблицу маршрутизации, составляет около
5 мкс для системы из 256 узлов. Для многих среднегранулярных
систем такое время является достаточно ощутимым. При скорости
800 Мбит/с время передачи такого же пакета составит около 0,6 мкс.
В соответствии с формулой (3) время передачи конфигурационного
пакета линейно зависит от размера вектора конфигурации. Для рассмотренных размеров сетей и размеров векторов конфигурации временные
характеристики являются приемлемыми для систем, в которых решаются крупно и среднегранулярных задачи, однако при использовании
более длинных векторов конфигурации, время передачи становится неприемлемым для систем со среднегранулярными задачами.
46
Реализация этих структур связана с очень небольшими накладными расходами. Аппаратные затраты на реализацию цепочечной структуры менее 1 % общей площади СнК, аппаратные затраты на реализацию двумерной решетки не превосходят 3 % общей площади СнК при
разрядности каналов передачи данных до 8 бит включительно.
Использование основной сети
для передачи конфигурационной информации
Рассмотрим теперь вариант использования для передачи конфигурационной информации той же сети, которая используется
для передачи основных информационных потоков. Реализация
данного подхода не связана со сколько-нибудь ощутимыми аппаратными затратами. Разрядность каналов передачи данных
основной сети и, соответственно, скорость передачи, как правило, в 4–8 раз выше, чем разрядность каналов выделенной коммуникационной системы. Диаметр и средний диаметр графа
связей для основной сети может быть существенно меньше, чем
для выделенной сети. Например, если в качестве основной сети
используется тор на базе двумерной решетки, его диаметр будет
в два раза меньше диаметра выделенной сети с топологией типа
двумерная решетка. Если же сравнивать его с диаметром выделенной сети на базе цепочки, то с увеличением количества узлов
разница будет расти в квадратичной зависимости. Например, для
сети из 16 узлов диаметр для тора будет в 4 раза меньше, для сети
из 16 узлов – в 8 раз меньше.
Однако этот подход влечет за собой ряд проблем, которые существенно ограничивают область его применения. Решение этих проблем может привести к заметному увеличению накладных расходов
(аппаратных затрат, временных характеристик). Рассмотрим эти
проблемы, возможные пути их устранения и накладные расходы на
их реализацию.
Если конфигурирование одной части системы может осуществляться на фоне штатной работы остальной части системы, то передача пакетов с конфигурационной информацией может привести к увеличению времени доставки штатных пакетов. Это может быть недопустимым для систем жесткого реального времени, к которым относятся
многие СнК аэрокосмического назначения. В ряде систем с поддержкой жесткого реального времени этот вариант все-таки используется.
При организации передачи в сети с использованием временного планирования, для передачи конфигурационных пакетов резервируются
47
таймслоты – служебные таймслоты. Время передачи конфигурационного пакета может быть определено по следующей формуле:
Tc =Tt + (D − 1)Th + (Lc )T1, (4)
где Tt – время ожидания служебного таймслота.
Существенным недостатком данного подхода является увеличение времени передачи конфигурационной информации на время
ожидания служебного таймслота. Время ожидания зависит от количества таймслотов в эпохе и от длительности одного таймслота.
Если эпоха включает в себя один служебный таймслот, то время передачи служебного пакета будет сравнимо с длительностью эпохи.
Сравним, например, время передачи конфигурационного пакета
(размер пакета 64 байта) через основную сеть с топологией типа тор
на базе двумерной решетки (16 таймслотов в эпохе), скорость передачи
данных 12800 Мбит/с (передача 64-битными словами на частоте 200
Мгц) и через выделенную сеть (цепочка и двумерная решетка), скорость передачи 800 Мбит/с (передача 8-битными словами на частоте
100 Мгц), что в 16 раз ниже, чем скорость по основной сети (пример 1).
На рис. 27 приведены графики, показывающие зависимость максимального времени передачи конфигурационного пакета от количества
узлов для рассматриваемых сетей. Как можно видеть из этих графиков, результаты, полученные для выделенной сети, существенно лучше результатов для основной сети. Даже при самой короткой длительности таймслота 100 нс (соответствует 20 тактам системной частоты)
время передачи по выделенной сети в 2 раза меньше; при длительности
таймслота 500 нс (соответствует 100 тактам локальной частоты) время
передачи по выделенной сети в 9,5 раза меньше, чем по основной сети.
Временные характеристики, полученные для основной сети, подходят
для систем с крупной гранулярностью задач, для систем со средней
гранулярностью задач они могут оказаться неприемлемыми.
В рассмотренном примере размер таймслота был выбран таким образом, чтобы конфигурационный пакет успевал полностью передаться за один таймслот. Если размер конфигурационного пакета больше
того, которое может быть передано в одном таймслоте, то время его
передачи увеличится еще более существенно, поскольку придется несколько раз ожидать наступления служебного таймслота.
Время передачи конфигурационного пакета может быть сокращено, если в эпохе выделить большее количество служебных таймслотов. Если в системах, рассмотренных в предыдущем примере
(примере 1) выделить не один, а четыре служебных таймслота, равномерно распределив их в эпохе для того, чтобы минимизировать
48
нс
9000
8000
7000
6000
5000
4000
3000
2000
1000
0
16
32
64
128
Количество узлов
256
выделенная сеть (цепочка)
выделенная сеть (двумерная решетка)
основная сеть, 16 таймслотов, длительность 100 нс
основная сеть, 16 таймслотов, длительность 250 нс
основная сеть, 16 таймслотов, длительность 500 нс
Рис. 27. Зависимость максимального времени передачи
конфигурационного пакета от количества узлов,
в основной сети один служебный слот в эпохе
максимальное время ожидания (например, 3, 7, 11 и 15 таймслоты – служебные) (пример 2), то время передачи конфигурационного
пакета через основную сеть существенно сократится. Графики для
этого варианта изображены на рис. 28.
В данном случае время передачи данных при использовании основной сети в 2–3 раза меньше, чем при использовании выделенной сети.
Однако, если в первом примере 6,25 % времени эпохи было зарезервировано для передачи конфигурационных пакетов, то в этом примере уже
25 % эпохи зарезервировано для передачи конфигурационных пакетов.
Таким образом, использование данного подхода может приводить к нерациональному использованию ресурсов коммуникационной системы, особенно в тех случаях, когда конфигурационные
пакеты передаются только для реконфигурирования системы при
возникновении ошибок.
Если в системе существуют строгие ограничения на время реконфигурирования, количество служебных таймслотов в эпохе должно
выбираться таким образом, чтобы удовлетворить этим требованиям. В результате может возникнуть противоречие между требованием по времени доставки конфигурационных пакетов и долей вре49
нс
1200
1000
800
600
400
200
0
16
32
64
128
Количество узлов
256
выделенная сеть (цепочка)
выделенная сеть (двумерная решетка)
основная сеть, 16 таймслотов, длительность 100 нс
основная сеть, 16 таймслотов, длительность 250 нс
основная сеть, 16 таймслотов, длительность 500 нс
Рис. 28. Зависимость максимального времени передачи
конфигурационного пакета от количества узлов,
в основной сети четыре служебных слота в эпохе
мени в эпохе, которая может быть выделена для передачи конфигурационных пакетов. Это может стать существенным ограничением
по возможности применения данного подхода.
В системах без поддержки жесткого реального времени, но имеющих жесткие ограничения на время реконфигурирования, могут
использоваться подходы, обеспечивающие гарантированное время
доставки для конфигурационных пакетов [35]. Наиболее распространенными среди них являются возможность прерывания передачи штатного пакета для передачи конфигурационного пакета и
возможность использования выделенного виртуального канала
для передачи конфигурационных пакетов. Механизм прерывания
штатного пакета реализуется с использованием специальных кодов
(признаков), указывающих начало и конец специализированного
(конфигурационного) пакета. Для реализации механизма виртуальных каналов используются специальные коды (признаки), указывающие моменты переключения виртуальных каналов. В обоих
случаях они могут передаваться как по основным линиям данных
(за счет использования специализированного форматирования), так
и по выделенным линиям. Аппаратные затраты на их реализацию
50
нс
невелики (менее 0,5 %). При использовании механизма прерывания пакетов дополнительные временные задержки на ожидание
прерывания передачи текущего пакета также невелики. В большинстве случаев они не превышают времени передачи одного флита. На рис. 29 приведены графики зависимости времени передачи
конфигурационного пакета (размер 64 байта) от количества узлов
для выделенной сети и для основной сети с использованием прерывания пакетов и виртуальных каналов. Скорости передачи данных
в выделенной сети и в основной сети такие же, как и в предыдущих
примерах (пример 1, 2). Загрузка сети передачей штатных пакетов
1200
1000
800
600
400
200
0
16
32
64
128
Количество узлов
256
выделенная сеть (цепочка)
выделенная сеть (двумерная решетка)
основная сеть, задержка на одно слово
(прерывание пакетов
или использование виртуальных каналов)
основная сеть, задержка на два слова
(использование виртуальных каналов)
основная сеть, задержка на четыре слова
(использование виртуальных каналов)
основная сеть, передча штатных данных отсутствует
Рис. 29. Зависимость максимального времени передачи
конфигурационного пакета от количества узлов в системах
с поддержкой виртуальных каналов или механизмов прерывания пакетов
51
около 80 % (пример 3). Как можно видеть из этих графиков, время
передачи конфигурационного пакета по основной сети в 2–5 раз
ниже, чем при использовании выделенной сети. Если загрузка сети
передачей штатных пакетов высока (выше 60 %), то время передачи
конфигурационного пакета сильно зависит от размера флита. Так
при размере флита четыре слова время передачи конфигурационного пакета в 2–3 раза больше, чем при размере флита одно слово.
Временные задержки передачи пакетов в сети с прерыванием
передачи пакетов и в сети с использованием виртуальных каналов
и размером флита, равным одному слову, практически совпадают.
Таким образом, если в сети отсутствует требование гарантированного времени доставки основных данных, то использование механизма прерывания пакетов или механизма виртуальных каналов
в основной сети передачи информации в СенК позволяет получить
существенно лучшее время доставки данных по сравнению с использованием выделенной сети.
4.4. Организация процесса динамического реконфигурирования СенК, требования и ограничения
Динамическое реконфигурирование СенК осуществляется под
управлением менеджера конфигурации. Менеджер конфигурации
может быть реализован программно (например, представлять собой один или несколько процессов, входящих в состав ядра операционной системы, управляющей функционированием СенК) или
аппаратно (представлять собой один или несколько конечных автоматов). Возможны также и аппаратно/программные варианты
реализации. Менеджер конфигурации может быть реализован как
централизованный, распределенный или частично распределенный
компонент. Менеджер конфигурации может быть связан с конфигурируемыми компонентами с использованием выделенной системы (сети) связей или использовать основную сеть передачи данных
СенК [36, 37].
Процесс реконфигурации является распределенным во времени
(не одномоментным). Если выполняется реконфигурация нескольких компонентов СенК, например маршрутизаторов, то она может
осуществляться последовательно (компонент за компонентом) или
параллельно (конфигурирование нескольких компонентов осуществляется одновременно или с частичным перекрытием во времени).
Если процесс конфигурирования выполняется последовательно,
то система довольно ощутимое время находится в состоянии, когда
52
в часть компонентов уже загружена новая конфигурация, а часть
компонентов еще функционируют в соответствии с предыдущей
конфигурацией.
Если конфигурационная информация рассылается параллельно нескольким компонентам, то для каждого из них момент начала
конфигурирования может определяться временем получения конфигурационной информации. Процесс конфигурирования отдельных компонентов может начинаться и заканчиваться в псевдослучайные моменты времени. В этом случае система также может
находиться в состоянии, когда в часть компонентов уже загружена новая конфигурация, а часть компонентов еще функционируют
в соответствии с предыдущей. По сравнению со схемой последовательной загрузки, время нахождения системы в этом состоянии будет существенно меньше, однако система все равно некоторое время
может находиться в противоречивом состоянии. Конфигурирование одного (отдельно взятого) компонента также может быть распределенным во времени.
Эта распределенность во времени процесса реконфигурации может привести к переходу системы в противоречивое (inconsistent)
состояние. Реконфигурация должна осуществляться таким образом, чтобы исключить нахождение СенК в противоречивом состоянии, потерю и искажение данных передаваемых через СенК, а
также спонтанное появление новых данных в коммуникационной
системе [38, 39, 40].
Это необходимо учитывать при проектировании реконфигурируемой СенК в целом, компонентов для нее и алгоритмов реконфигурации.
Рассмотрим, за счет чего это может быть достигнуто.
4.5. Структура реконфигурируемой СенК, и IP-блоков для ее формирования
Обобщенная структура реконфигурируемого компонента показана на рис. 30. Элемент памяти должен быть расположен как можно ближе к функциональному компоненту [41, 42]. Разрядность элемента памяти и разрядность линии связи между элементом памяти
и функциональным компонентом равна разрядности вектора конфигурации. Если функциональный компонент имеет сложную внутреннюю структуру, разрядность вектора конфигурации велика, то
элемент памяти может быть на физическом уровне реализован как
совокупность (множество) подэлементов, в каждом из которых хранится подвектор, соответствующий одной из частей функциональ53
Новая
конфигурация
Реконфигурируемый
компонент
Элемент памяти
DATA_out_1
DATA_in_1
DATA_in_2
Функциональный
компонент
DATA_out_2
DATA_out_m
DATA_in_n
Рис. 30. Обобщенная структура реконфигурируемого компонента
ного компонента. Разрядность линии связи, по которой осуществляется запись новой конфигурации, может быть различной.
Разработчик может определять различную степень гранулярности конфигурирования СенК в соответствии с решаемыми задачами
и технологическими ограничениями. Минимальной реконфигурируемой единицей/модуль (reconfiguration unit) может быть [43, 44]:
1) фрагмент СенК (кластер из нескольких терминальных узлов и
маршрутизаторов/коммутаторов) (пример СенК приведен на рис. 31);
2) отдельный терминальный узел, маршрутизатор, коммутатор
(пример СенК – на рис. 32);
3) часть терминального узла, маршрутизатора, коммутатора
(пример СенК – на рис. 32. Однако в отличие от предыдущего варианта возможна смена конфигурации для отдельных блоков, отдельный контроллер конфигурации для каждого блока, как правило, не
реализуется, так как это приводит к недопустимо большим аппаратным затратам).
Вариант 1, как правило, используется в СенК, в которых какоелибо влияние выполняемых задач друг на друга должно быть исключено. В этом случае для каждой задачи выделяются один или
несколько реконфигурируемых модулей (в одном модуле в один
момент времени выполняется только одна задача). Варианты 2 и 3
могут использоваться для систем, в которых подобные требования
отсутствуют.
СенК, проектируемые в соответствии с вариантами 1, 2, 3 могут
реализовывать сходные наборы функций, поэтому для их реализа54
ции потенциально могут быть использованы одни и те же функциональные IP-блоки (например, IP-блоки маршрутизаторов, коммутаторов каналов, процессорных ядер и др., а также IP-блоки с меньшей гранулярностью). Далее мы рассмотрим, как должны проектироваться IP-блоки, чтобы обеспечить такую возможность.
Каждый реконфигурируемый модуль должен включать в себя
память для хранения одной (или нескольких конфигураций). Эта
Реконфигурируемый модуль
Конфигурационная
память
Контроллер
конфигурации
Контроллер
конфигурации
Конфигурационная
память
Реконфигурируемый модуль
TN
TN
R
R
R
R
R
R
Менеджер
конфигурации
R
R
TN
TN
TN
TN
TN
TN
TN
TN
R
R
R
R
R
R
R
R
TN
TN
TN
TN
Реконфигурируемый модуль
Контроллер
конфигурации
Конфигурационная
память
TN
Контроллер
конфигурации
Конфигурационная
память
TN
Реконфигурируемый модуль
Рис. 31. Пример СенК с реконфигурируемыми модулями,
включающими в себя несколько маршрутизаторов и терминальных узлов
55
R
Контроллер
конфигурации
Конфигурационная
память
TN
Контроллер
конфигурации
Конфигурационная
память
R
Контроллер
конфигурации
Конфигурационная
память
TN
Контроллер
конфигурации
Конфигурационная
память
Контроллер
конфигурации
Конфигурационная
память
Контроллер
конфигурации
Конфигурационная
память
R
TN
TN
R
TN
Контроллер
конфигурации
Конфигурационная
память
R
Контроллер
конфигурации
Конфигурационная
память
R
Контроллер
Контроллер
конфигурации
конфигурации
Конфигурационная Конфигурационная
память
память
Менеджер
конфигурации
Контроллер
Контроллер
конфигурации
конфигурации
Конфигурационная Конфигурационная
память
память
Реконфигурируемый
модуль
Реконфигурируемый
модуль
TN
Рис. 32. Пример СенК, в которой отдельными реконфигурируемыми модулями
являются маршрутизаторы и терминальные узлы
память, с одной стороны, должна быть доступна менеджеру конфигурации; с другой стороны, хранимая в ней конфигурация должна
поступать на элементы реконфигурируемого модуля. В простейшем
случае менеджер конфигурации может записывать данные непосредственно в элемент памяти, входящий в состав реконфигурируемого компонента (рис. 33, а). В этом случае элемент памяти может
быть снабжен интерфейсом, обеспечивающим пословную запись
конфигурации. В других случаях может использоваться отдельный
56
а)
Данные
от менеджера
конфигурации
Реконфигурируемый модуль
Сетевой
интерфейс
Реконфигурируемый
компонент 1
Элемент памяти
Функциональный
компонент
б)
Реконфигурируемый модуль
Контроллер конфигурации
Сетевой
интерфейс
Память конфигурации
Данные
от менеджера
конфигурации
Реконфигурируемый
компонент 1
Элемент памяти
Функциональный
компонент
Реконфигурируемый
компонент 2
Элемент памяти
Функциональный
компонент
Рис. 33. Примеры структурной организации памяти конфигурации
блок памяти, доступный менеджеру конфигурации. Из этой памяти
вариант конфигурации под управлением контроллера конфигурации загружается в элемент памяти, входящий в состав реконфигурируемого компонента (рис. 33, б).
Доступ к памяти может быть организован по-разному. В примере
на рис. 31 менеджер конфигурации может обращаться к ней через
основную сеть передачи данных СенК, в примере на рис. 32 – через
выделенную сеть (на рисунке она показана серым цветом).
57
Память может иметь «плоскую» или иерархическую структуру.
При использовании плоской структуры в памяти хранится вектор
конфигурации, который непосредственно передается на соответствующие входы элементов реконфигурируемого модуля. При использовании иерархической структуры в памяти могут храниться отдельно «ссылки»/номера элементов конфигурации, которые
должны быть использованы, и отдельно векторы/подвекторы конфигурации, соответствующие этим номерам. В соответствии с номерами определяется, какие именно векторы/подвекторы передаются
на входы управления конфигурацией элементов реконфигурируемого модуля. Иерархическая структура может иметь один или несколько уровней иерархии.
Если используется схема, изображенная на рис. 33, а, то новая
конфигурация загружается в элемент памяти непосредственно менеджером. Если загрузка конфигурации осуществляется не одномоментно (длина конфигурационной последовательности может существенно превосходить разрядность слова в памяти конфигурации), то
менеджер конфигурации должен загружать конфигурацию в такой
последовательности, чтобы конфигурируемый модуль не оказался
в противоречивом состоянии. Последовательность, обеспечивающая
исключение возможности перехода модуля в противоречивое состояние, может быть обеспечена не для всех конфигурируемых модулей.
Это можно проиллюстрировать на примере коммутатора каналов. Конфигурация данного компонента включает в себя настройку связей между входными и выходными портами. В простейшем
случае, для каждого входного порта настройка может включать
в себя флаг разрешения работы и номер выходного порта, в который
должны передаваться данные. В ходе реконфигурирования новые
настройки могут быть определены для всех портов или только для
какой-то группы портов. Во втором случае, как правило, по остальным портам передача данных в ходе реконфигурирования не должна нарушаться. (Может допускаться непродолжительный перерыв
в ходе передачи данных по этим портам).
Например, до конфигурации данные из входного порта 1 должны
были передаваться в выходной порт 2, а данные из входного порта 2
должны были передаваться в выходной порт 1 (рис. 34, а). В новой
конфигурации данные из входного порта 1 должны передаваться
в выходной порт 1, данные из входного порта 2 должны передаваться в выходной порт 2 (рис. 34, б). В обоих конфигурациях данные
из порта 3 должны передаваться в порт 4, из порта 4 в порт 3. Например, порты 1 и 2 использовались комплектом задач 1, которые
58
в)
б)
а)
1
1
1
1
1
1
2
2
2
2
2
2
3
3
3
3
3
3
4
4
4
4
4
4
Рис. 34. Варианты конфигурации коммутатора каналов
закончили свое функционирование, и вместо них должен начать
выполняться комплект задач 3. Порты же 3 и 4 используются для
передачи данных между задачами из комплекта 2, который продолжает свое функционирование.
В процессе реконфигурирования рассматриваемый коммутатор
каналов может оказаться в противоречивом состоянии.
Настройки каждого из портов могут храниться в отдельном слове элемента памяти. Запись в эти слова осуществляется последовательно. В результате в ходе конфигурирования, если запись настроек осуществляется в порядке возрастания номеров портов, коммутатор каналов окажется в состоянии, когда данные из входного порта 1 и данные из входного порта 2 должны передаваться в выходной
порт 1 (рис. 34, в). Если запись настроек осуществляется в порядке
убывания номеров портов, то оба входных порта окажутся связанными с выходным портом 2.
Соответственно, в данном случае для менеджера конфигурации не
может существовать последовательности записи, которая позволит исключить переход коммутатора каналов в противоречивое состояние.
Можно, конечно, полностью остановить работу коммутатора каналов на время перенастройки и любую перенастройку рассматривать как перенастройку этого компонента целиком. Однако сам по
себе останов работы может привести к возникновению противоречивого состояния, поскольку в момент выполнения останова работы
по портам 3 и 4 может идти передача данных. Останов должен быть
выполнен таким образом, чтобы не пропало, не исказилось слово
данных, передача которого может прийтись на момент останова.
Либо останов должен выполняться после того, как будет завершена
передача текущих пакетов по портам 3 и 4. Во втором случае процесс перехода на новую конфигурацию может существенно затянуться из-за ожидания завершения передачи пакетов.
Если для рассматриваемого конфигурируемого модуля последовательность записи, исключающая противоречивое состояние, не мо59
жет быть обеспечена, то такой модуль должен включать в себя функции контроллера конфигурации, обеспечивающие управление процессом загрузки конфигурации, полученной от менеджера конфигурации, и исключающие переход модуля в противоречивое состояние.
Для различных СенК проектировщик может выбирать вариант
передачи данных через основную или выделенную сеть, различные
варианты архитектуры памяти, с которой взаимодействует менеджер конфигурации, и, соответственно, будут использоваться контроллеры конфигурации, которые могут очень сильно отличаться
друг от друга. Для конкретной СенК может разрабатываться уникальный контроллер конфигурации.
Для того чтобы разрабатываемый реконфигурируемый функциональный IP-блок мог использоваться в дальнейшем в СенК с различными схемами реконфигурации, нами предлагается следующий подход.
Будем называть элементарным реконфигурируемым IP-блоком
блок, который уже не включает в свой состав других реконфигурируемых IP-блоков. Элементарный IP-блок должен включать в себя функциональную часть и элемент памяти. Включение обоих этих частей
в IP-блок обеспечит максимально близкое их расположение в топологии кристалла. Как было показано выше, в различных системах схема
загрузки новой конфигурации может быть организована по-разному,
разрядность шины данных также может быть различной и выбираться в соответствии с допустимыми аппаратными затратами. Для того
чтобы обеспечить включение реконфигурируемого IP-блока в различные системы, нами предлагается следующий интерфейс. Интерфейс
загрузки новой конфигурации включает в себя (рис. 35, а):
– сигнал тактирования (clk);
– линию данных на запись (Data_in);
– строб записи (Wr_en);
– номер записываемого (читаемого) слова (W_num);
– (опционально) строб чтения (Rd_en);
– (опционально) линию данных на чтение (Data_out).
Разрядность линии данных – размер слова данных, записываемого
за один такт – задается параметрически (фиксируется на этапе разработки RTL-модели). Она может не совпадать с разрядностью вектора
конфигурации (быть как больше, так и меньше разрядности вектора).
Номер записываемого (читаемого) слова указывает смещение записываемого слова относительно начала вектора конфигурации. Если количество битов между битом, с которого должно быть записано слово,
и концом вектора конфигурации меньше разрядности слова, то запи60
а)
Реконфигурируемый модуль
clk
Data_in(N)
Wr_en
Сетевой
W_num
интерфейс
Rd_en
Data_out(N)
IP-блок
контроллер
Данные
от менеджера
конфигурации
Элемент
памяти
Функциональный
компонент
б)
Реконфигурируемый модуль
clk
Data_in(N)
Wr_en
W_num
Rd_en
Data_out(N)
IP-блок
контроллер
clk
Data_in(N)
Wr_en
W_num
Rd_en
Data_out(N)
Элемент
памяти
Функциональный
компонент
IP-блок
контроллер
Контроллер конфигурации
Сетевой
интерфейс
Память конфигурации
Данные
от менеджера
конфигурации
Элемент
памяти
Функциональный
компонент
Рис. 35. Примеры структурной организации
реконфигурируемых модулей на базе IP-блоков
сываются только первые биты слова, аналогично при выполнении операции чтения недостающие биты заполняются нулями.
Аппаратные затраты на реализацию предлагаемого контроллера интерфейса не велики (не превышают 1–5 % от аппаратных затрат на реализацию блока памяти для хранения конфигурации).
Элементарный реконфигурируемый IP-блок с таким интерфейсом
может быть подключен к контроллерам конфигурации с различной
61
архитектурой или напрямую к контроллерам сетевых интерфейсов
СенК для обеспечения доступа менеджера конфигурации.
Несколько элементарных IP-блоков могут быть объединены разработчиком в более крупный реконфигурируемый IP-блок. В этом IPблоке разработчик может использовать встроенный контроллер конфигурации (рис. 35, б) или вывести конфигурационные интерфейсы
входящих в его состав IP-блоков на внешний интерфейс. Количество
уровней вложенности при использовании этого подхода не ограничено.
4.6. Процесс замены конфигурационной информации, требования к архитектуре реконфигурируемых IP-блоков
Можно выделить следующие состояния реконфигурируемого
модуля (IP-блоков, входящих в его состав) по отношению к процессу
реконфигурации:
1) в момент, когда может быть начато реконфигурирование (в момент прихода новой конфигурации), модуль не выполняет каких-либо действий по передаче/обработке данных, в ходе выполнения конфигурации в него не поступают новые данные;
2) в момент прихода новой конфигурации модуль выполняет передачу/обработку данных;
3) в момент прихода новой конфигурации модуль не выполняет
передачу/обработку данных, но в ходе выполнения реконфигурации в него поступают новые данные.
IP-блоки, входящие в состав реконфигурируемых модулей, можно разделить на:
– IP-блоки, являющиеся комбинационными схемами (функциональная часть не содержит элементов памяти), например коммутатор каналов;
– IP-блоки, содержащие элементы памяти (например, конечные
автоматы, указатели чтения и записи при реализации FIFO).
Рассмотрим возможность возникновения противоречивых состояний для IP-блоков, являющихся комбинационными схемами.
Значения на выходах таких IP-блоков могут быть определены как
Y = F(X, C),
где X – вектор функциональных входов, С – вектор конфигурационных входов, F – функция, определяющая зависимость между значениями на входах и выходах.
Для такого IP-блока может быть осуществлена формальная проверка возможности перехода в противоречивое состояние путем по62
строения таблиц истинности. В общем случае размер таблиц истинности может быть очень большим при большой разрядности векторов X и C, что может затруднить их анализ. Однако при построении
таблиц истинности вектор X, как правило, может быть разделен на
две составляющие: Xd – информационные сигналы и Xc – управляющие сигналы. Аналогично, вектор Y может быть разделен на Yd
и Yc. Изменение информационных сигналов в системе анализируется только в привязке к изменению управляющих сигналов. Например, в блоке коммутатора каналов имеются входные сигналы
данных и входные сигналы строба. Они транслируются между заданными в соответствии с текущей конфигурацией входами и выходами коммутатора каналов. При поступлении в следующие компоненты СенК (например, маршрутизатор или терминальный узел)
сигналы данных анализируются только в случае, если сигнал строба установлен в активное значение. В соответствии с этим, система
может перейти в противоречивое состояние только в том случае,
если в ходе изменения конфигурации произойдет некорректное изменение вектора Yc. Таким образом, формирование таблиц истинности необходимо только для Yc = F1(X, C). Для большинства систем
(например, рассматриваемый выше коммутатор каналов) зависимость между Xd и Yc отсутствует, поэтому размер таблиц истинности может быть еще сокращен:
Yc = F2(Xc, C).
Поскольку для большинства систем разрядность информационных сигналов в разы (и даже на порядки) больше разрядности
управляющих, это позволяет очень существенно сократить размер
таблицы истинности, что в свою очередь делает возможным выполнение формальной проверки.
Для рассматриваемого в нашем примере коммутатора каналов
противоречивые состояния могут возникать, только если по отношению к процессу реконфигурации он находится в состоянии 2 или 3.
Рассмотрим, как можно исключить возникновение противоречивых состояний.
Рассматриваемый компонент может быть помещен в специальную
оболочку-контейнер (wrapper), обеспечивающую исключение передачи данных через компонент в процессе его реконфигурирования. Данная оболочка обеспечивает установку всех выходов компонента, по которым передаются сигналы управления, в неактивные значения. Например, если интерфейс рассматриваемого нами коммутатора каналов
включает в себя линии данных, линии признаков действительности
63
данных и линии подтверждения приема данных, то выходные линии
признаков действительности данных и выходные линии готовности
приема данных в контейнере должны быть установлены в неактивное
значение, когда компонент находится в процессе реконфигурации.
Аппаратные затраты на реализацию данного метода очень невелики,
контейнер должен включать в себя по одному логическому вентилю на
каждый выход, по которому передаются сигналы управления. Он позволяет исключить возможность выдачи искаженных или некорректных данных на выходы компонента в ходе его реконфигурирования,
позволяет исключить прием в реконфигурируемый компонент данных
извне (что может привести к их потере или искажению). Эта структура
иллюстрируется рис. 36, а.
Если IP-блок используется для передачи/обработки объектов данных,
поступающих в IP-блок целиком, то использование такого контейнера
является достаточным для исключения противоречивых состояний.
Однако, если IP-блок передается/обрабатывается не одномоментно, то такой контейнер не всегда позволяет исключить возникновение
противоречивого состояния в системе в целом. Это можно проиллюстрировать следующим примером. Через рассматриваемый коммутатор каналов началась передача пакета, затем возникла пауза в передаче, во время которой поступила новая конфигурация. В этой конфигурации входной порт, по которому начал поступать пакет, связан
с другим выходным портом по отношению к исходной конфигурации.
В результате оставшаяся часть пакета будет передана в другой выходной порт. Исключение подобных ситуаций требует введения понятия
состояния IP-блока (для нашего примера может быть определено два
состояния: «идет передача пакета» и «не идет передача пакета»). Это
невозможно для IP-блока, являющегося комбинационной схемой. Таким образом, реконфигурируемые IP-блоки, передача данных через
которые осуществляется не одномоментно, должны разрабатываться
как блоки с элементами памяти. Подходы к исключению противоречивых состояний для них будут рассмотрены далее.
Рассмотрим возможность возникновения противоречивых состояний для реконфигурируемых IP-блоков, содержащих элементы
памяти. Значения на выходах таких IP-блоков могут быть определены как
Y = Fy(X, C, S),
где S – текущее состояние IP-блока. S(t+1) = Fs(X, C, S(t)). Для таких
IP-блоков использование формальной проверки возможности перехода в противоречивое состояние по таблицам истинности в общем
64
а)
IP-блок
Элемент
памяти
контроллер
clk
Data_in(N)
Wr_en
W_num
Rd_en
Data_out(N)
Функцио- Функциональный
нальный
интерфейс
компонент
Функциональный
интерфейс
контейнер
б)
Idle
Transmit
_packet
Address
Arbitration
в)
Idle
Transmit
_packet
reconf
Address
del_packet
Arbitration
Рис. 36. Структурная и архитектурная организация
реконфигурируемых IP-блоков
случае не представляется возможным (размер таблицы может быть
бесконечным). Гарантированное исключение противоречивых состояний может быть достигнуто за счет организации конечных автоматов. Конечные автоматы, входящие в состав IP-блока в явном
виде, должны включать в себя состояния, обеспечивающие процесс
реконфигурации и сохранения целостности данных в процессе ре65
конфигурации. В автомат должно быть добавлено, как минимум,
одно состояние, в котором он должен находиться во время смены реконфигурации. Должны быть определены переходы из всех остальных состояний в это состояние. В ряде случаев прямой переход
в состояние реконфигурации невозможен (влечет за собой потерю
целостности данных) и требуется введение дополнительных состояний, позволяющих ее исключить. Разработчик должен определить
также, в какое состояние автомат должен перейти после завершения смены конфигурации.
Например, рассмотрим автомат контроллера входного порта
коммутатора/маршрутизатора, реализованный с использованием
этого метода. Исходный вариант автомата состояний изображен на
рис. 36, б. Команда реконфигурации потенциально может приходить во время передачи очередного пакета через рассматриваемый
входной порт. Разработчик должен определить схему поведения
входного порта в этом случае: пакет может быть либо передан до
конца, либо хвост пакета должен быть стерт, а после уже переданной части пакета должен быть передан маркер конца пакета с индикацией ошибки. Выбранная схема должна быть реализована
в конечном автомате. В конечном автомате должно присутствовать
состояние, в котором выполняется его реконфигурация. В это состояние автомат должен переходить только в том случае, если обработка текущих данных завершена в соответствии с выбранным
сценарием. В этом состоянии на управляющие выходы компонента
должны выдаваться нейтральные значения, обеспечивающие исключение поступления в IP-блок новых данных. После завершения смены конфигурации автомат должен перейти в начальное
состояние (в состояние, в которое он попадает после выхода из состояния сброса/включения питания). В автомат также может быть
добавлено состояние, в котором выполняется стирание хвоста пакета. (Модифицированный вариант автомата состояний изображен на рис. 36, в).
Возникает вопрос, если используется автомат состояний, в который включены состояния, обеспечивающие реконфигурацию, нужно ли использовать контейнер? Если на выходы IP-блока подаются
значения, формируемые в комбинационной схеме (например, если
используется автомат Мили), то в ходе конфигурирования на них
могут возникнуть изменения значений, поэтому в данном случае
контейнер необходим.
Не для всех реконфигурируемых IP-блоков с памятью состояние
(вектор состояния) существует в явном виде, он может иметь со66
ставную структуру. В качестве простейшего примера такого блока
можно рассмотреть реконфигурируемое FIFO. В нашем примере реконфигурируемое FIFO включает в себя один блок памяти, на базе
которого реализовано два FIFO: блок памяти логически разделен
на две части и имеется два комплекта указателей чтения и записи.
В процессе реконфигурации может быть перемещена логическая
граница между частями. Состояние этого IP-блока определяется
значениями счетчиков чтения и записи. С точки зрения сохранения
целостности данных, однако, важны не сами их значения, а соотношения значений счетчиков чтения и записи в паре, соответствующей одному FIFO – это соотношение показывает, есть ли в FIFO данные или оно пусто. Если FIFO используется для передачи/хранения
объектов данных (например, пакетов), размер которых превосходит
размер одной ячейки FIFO, то, даже если в рассматриваемый момент времени FIFO пусто, для корректного определения состояния
необходимо учитывать также информацию, было ли передано через
FIFO целое количество объектов данных или последний объект данных передан частично. Разработчик должен определить правила
поведения автомата, если новая конфигурация поступает в момент,
когда FIFO не пусто или когда через него не полностью прошел объект данных. Например, дождаться, когда из FIFO будут прочитаны
все объекты данных, которые в него начали записываться на момент поступления новой реконфигурации.
Для того чтобы избежать ошибок в ходе проектирования, для реализации этого алгоритма в IP-блоке мы рекомендуем в явном виде
специфицировать конечный автомат, который будет управлять процессом реконфигурации. Кроме состояния реконфигурации он может включать в себя другие дополнительные состояния, например
состояние сброса. Применительно к данному примеру, после собственно загрузки конфигурации данный конечный автомат должен
выполнить дополнительные действия: необходимо сбросить значения счетчиков чтения и записи в новые начальные значения (при
изменении размеров частей, значения счетчиков могут оказаться за
границами соответствующих частей).
Контрольные вопросы
1. В чем состоят основные отличия динамического реконфигурирования ASIC от динамического реконфигурирования FPGA?
2. Каковы основные этапы процесса динамического реконфигурирования СенК?
67
3. Каковы основные механизмы реконфигурирования СенК?
4. Каковы варианты реализации менеджера конфигурации?
5. Сравнить последовательное и параллельное выполнение процесса реконфигурирования.
6. Какова может быть степень гранулярности при реконфигурировании СенК?
7. Какова обобщенная структура реконфигурируемого компонента?
8. Какую структуру может иметь память конфигурации?
9. Каковы состояния реконфигурируемого модуля (IP-блоков,
входящих в его состав) по отношению к процессу реконфигурации?
10. Как может быть осуществлена проверка возможности перехода в противоречивое состояние для IP-блоков, являющихся комбинационными схемами?
11. Как может быть исключен переход в противоречивое состояние IP-блоков, являющихся комбинационными схемами?
68
5. ЗАДАНИЯ НА САМОСТОЯТЕЛЬНУЮ РАБОТУ
1. Разработать динамически реконфигурируемое арифметикологическое устройство, которое в зависимости от конфигурации
может обрабатывать один или несколько наборов входных векторов
различной разрядности. Требования по возможным разрядностям
векторов выдаются преподавателем. Перечень реализуемых функций выдается преподавателем.
Оценить накладные расходы на реализацию разработанного блока (площадь при заданном времени обработки, достижимое время
обработки при фиксированной площади) для заданной преподавателем технологической библиотеки.
Оценить накладные расходы на реализацию механизмов обеспечения динамической реконфигурации. Для этого сравнить с реализацией арифметико-логического устройства без возможности динамической реконфигурации.
Определить размер вектора конфигурации.
2. Разработать динамически реконфигурируемый контроллер
входа порта маршрутизатора. Параметры динамической реконфигурации выдаются преподавателем.
Оценить накладные расходы на реализацию (площадь при заданной частоте работы, достижимая частота работы при фиксированной
площади) для заданной преподавателем технологической библиотеки.
Оценить накладные расходы на реализацию механизмов динамической реконфигурации. Для этого сравнить с реализацией контроллера входа порта без возможности динамической реконфигурации.
Определить размер вектора конфигурации.
3. Разработать динамически реконфигурируемый блок буферизации данных, предназначенный для использования в составе
маршрутизатора СенК. Параметры конфигурации и характеристики блоков памяти, которые в нем должны быть использованы, выдаются преподавателем.
Оценить накладные расходы на реализацию (площадь при заданной частоте работы, достижимая частота работы при фиксированной
площади) для заданной преподавателем технологической библиотеки для нескольких проектных норм, указанных преподавателем.
Оценить накладные расходы по площади на реализацию механизмов динамической реконфигурации. Для этого сравнить с реализацией блока буферизации без возможности динамической реконфигурации.
Определить размер вектора конфигурации.
69
4. Разработать динамически реконфигурируемый блок потоковой
обработки данных. Параметры блока выдаются преподавателем.
Оценить площадь реализации, обеспечивающей заданное преподавателем время обработки одного набора данных для заданной
преподавателем технологической библиотеки.
5. Разработать динамически реконфигурируемый блок коммутатора каналов для СенК. Параметры конфигурации выдаются преподавателем.
Оценить площадь реализации, обеспечивающей заданную преподавателем частоту для заданной преподавателем технологической библиотеки.
Варианты заданий выдаются руководителем курса.
70
Список литературы
1. Jih-Sheng Shen, Pao-Ann Hsiung. Dynamic Reconfigurable Network-on-Chip Design: Innovations for Computational Processing and
Communication. Information science reference. New York. 2010.
2. Chen S.-J., Ying-Cherng L. et al. Reconfigurable Networks-onChip. Springer. 2012.
3. Vassiliadis S., Soudris D. Fine- and Coarse-Grain Reconfigurable
Computing. Springer. 2007.
4. Modarressi M., Tavakkol A., Sarbazi-Azad H. Application-Aware
Topology Reconfiguration for On-Chip Networks // IEEE Transactions
on VLSI Systems. 2011. Vol. 19. No. 11. P. 2010–2022.
5. Bayar S., Yurdakul A. A Dynamically Reconfigurable Communication Architecture for Multicore Embedded Systems // Journal of
Systems Architecture. 2012. Vol. 58. P. 140–159.
6. Qu Yang. System-level design and configuration management for
run-time reconfigurable devices // VTT Publications 659. 2007.
7. Gokhale Maya B., Graham Paul S. Reconfigurable Computing
Accelerating Computation with Field-Programmable Gate Arrays.
Springer. 2005.
8. Bobda C. Introduction to Reconfigurable Computing Architectures, Algorithms and Applications. Springer. 2007.
9. Battezzati N., Sterpone L., Violante M. Reconfigurable Field Programmable Gate Arrays for Mission-Critical Applications. Springer. 2011.
10. Kuon I., Rose J. Measuring the gap between FPGAs and ASICs //
IEEE Transactions on Computer-Aided Design of Integrated Circuits
and Systems. 2007. Vol. 26. No. 2. P. 203–215.
11. Space product assurance. Techniques for radiation effects mitigation in ASICs and FPGAs handbook. ECSS-Q-HB-60–02A. 2016.
12. Richard Neil Pittman. Partial Reconfiguration: A Simple Tutorial. Microsoft Research. 2012.
13. Wang Lie, Wu Feng-yan. Dynamic partial reconfiguration in
FPGAs // Third International Symposium on Intelligent Information
Technology Application. 2009. P. 445–448.
14. Partial Reconfiguration of a Processor Tutorial PlanAhead
Design Tool. Web: https://www.xilinx.com/support/documentation/
sw_manuals/xilinx14_7/PlanAhead_Tutorial_Reconfigurable_Processor.pdf (Дата обращения: 18.05.2016)
15. Albrecht C., Pionteck T., Koch R., Maehle E. Modelling Tile-Based
Run-Time Reconfigurable Systems Using SystemC // Proceedings 21st
European Conference on Modelling and Simulation. 2007.
71
16. Rana V., AtienzaMarco D. et al. A Reconfigurable Network-onChip Architecturefor Optimal Multi-Processor SoC Communication //
IFIP Advances in Information and Communication Technology. 2010.
Vol. 313. P. 232–250.
17. Mirsky E., DeHon A. MATRIX: a reconfigurable computing architecture with configurable instruction distribution and deployable
resources // in Proceedings of IEEE Symposium on FPGAs for Custom
Computing Machines. 1996. P. 157–166.
18. XPP III Processor Overview Web: https://courses.cs.washington.
edu/courses/cse591n/06au/papers/XPP-III_overview_WP.pdf (Дата
обращения: 15.03.2016).
19. DAPDNA-2 Dynamically Reconfigurable Processor product brochure. IPFlex Inc. 2007.
20. Mishra M., Callahan T. J. et al. Tartan: evaluating spatial computation for whole program // In Proceedings of the 12th International
Conference on Architectural Support for Programming Languages and
Operating Systems. 2006.
21. Reconfigurable accelerators that bring computational efficiency
(MOPS/W) and programmability together, to displace ASIC and DSP coprocessors in Systems-on-Chips. Silicon Hive Technology Primer. 2003.
22. Stensgaard M. B. ReNoC: A Network-on-Chip Architecture with
Reconfigurable Topology // Proceedings of Second ACM/IEEE International Symposium. 2008. P. 55–64.
23. Суворова Е. А., Шейнин Ю. Е., Матвеева Н. А. Методы проектирования реконфигурируемых коммуникационных систем для сетей на кристалле, разрабатываемых по 3D технологии // Известия
Самарского научного центра Российской академии наук. 2014. Т. 16,
№ 6(2). C. 605–611.
24. Суворова Е. А. Методика проектирования сети-на-кристалле
с парированием сбоев и отказов // Известия Самарского научного
центра Российской академии наук. 2016 г. Т. 18, № 1(2). C. 421–427.
25. Dynamically Reconfigurable Processor. NEC Electronics. 2007.
26. The What, Why, and How of Customizable Dataplane Processors (DPUs). Tensilica White Paper. 2010.
27. O’Connor I., Hassoune I., Navarro D. Fine-Grain Reconfigurable Logic Cells Based on Double-Gate MOSFETs // IFIP AICT 313. 2010. P. 97–113.
28. Hassoune I., O’Connor I. Double-Gate MOSFET Based Reconfigurable Cells // Electronics Letters. 2007. Vol. 43. No. 23. P. 1273–1274.
29. Murali S. et al. Mapping and physical planning of networks on
chip architectures with quality of service guarantees // In Proc. ASPDAC. 2005. P. 27–32.
72
30. Murali S. et al. Mapping and configuration methods for multiuse-case networks on chips // In Proc. ASP-DAC. 2006.
31. Syschikov A., Sheynin Y., Sedov B., Ivanova V. Domain-Specific
Programming Environment for Heterogeneous Multicore Embedded
Systems // International Journal of Embedded and Real-Time Communication Systems (IJERTCS). 2014. Vol. 5. No.4.
32. David B. Stewart. Measuring Execution Time and Real-Time Performance // In Proceedings of the Embedded Systems Conference. 2006.
33. Suvorova E., Sheynin Y., Matveeva N. Reconfigurable NoC Router
Development with Fault Mitigation. // International Journal of Embedded
and Real-Time Communication Systems (IJERTCS). 2015. Vol. 5. No. 4.
34. Koibuchi M., Hiroki M. et al. A lightweight fault-tolerant mechanism for network-on-chip // in Proceedings of the international symposium on networks-on-chip (NOCS). 2008. P. 13–22.
35. Rantala V., Lehtonen T. et al. Multi Network Interface Architectures for Fault Tolerant Network-on-Chip // In Proceedings of the International Symposium on Signals, Circuits and Systems. 2009. P. 1–4.
36. Cota E. Reliability, Availability and Serviceability of Networkson-Chip. Springer. 2012.
37. Jafri S. et al. Energy-aware fault-tolerant network-on-chips for
addressing multiple traffic classes // Microprocessors and Microsystems. 2013. Vol. 37. No. 8. P. 811–822.
38. Hansson A. et al. Undisrupted quality-of-service during reconfiguration of multiple applications in networks on chip // In Proceedings of the DATE. 2007.
39. Chrysanthou K., Englezakis P. et al. An Online and Real-Time
Fault Detection and Localization Mechanism for Network-on-Chip Architectures // JournalACM Transactions on Architecture and Code Optimization (TACO). 2016. Vol. 13. No. 2.
40. Aisopos K., DeOrio A. et al. ARIADNE: Agnostic reconfiguration in a disconnected network environment // In Proceedings of the
2011 International Conference on Parallel Architectures and Compilation Techniques (PACT’11). 2011. P. 298–309.
41. International Technology Roadmap for Semiconductors (ITRS),
2013. URL: http://www.itrs2.net/2013-itrs.html (Дата обращения:
10.02.2016).
42. Суворова Е. А., Шейнин Ю. Е. Методы динамической реконфигурации сетей-на-кристалле на базе ASIC и FPGA // Научная
сессия ГУАП. 2015. С. 163–175.
43. Yu Qiaoyan; Cano J. et al. Transient and Permanent Error Control for High-End Multiprocessor Systems-on-Chip // In Proceedings
73
of the Sixth IEEE/ACM International Symposium on Networks on Chip
(NoCS). 2012. P.169–176.
44. Vermeulen B., Goossens K. A network-on-chip monitoring infrastructure for communication-centric debug of embedded multi-processor SoCs // In Proceedings of the International Symposium on VLSI
Design, Automation and Test (VLSI-DAT). 2009. P. 183–186.
74
СОДЕРЖАНИЕ
Введение.................................................................................
3
Список сокращений..................................................................
4
1. ПРИЧИНЫ ИСПОЛЬЗОВАНИЯ ДИНАМИЧЕСКОГО
РЕКОНФИГУРИРОВАНИЯ.......................................................
5
2. ВОЗМОЖНОСТИ ТЕХНОЛОГИИ FPGA ДЛЯ ДИНАМИЧЕСКОЙ
РЕКОНФИГУРАЦИИ...............................................................
2.1. Структурная организация FPGA.................................... 2.2. FPGA с возможностью динамической реконфигурации...... 2.3. Подходы к проектированию СенК с возможностью
динамической реконфигурации на базе FPGA........................ Контрольные вопросы......................................................... 3. ВОЗМОЖНОСТИ ТЕХНОЛОГИИ ASIC ДЛЯ ДИНАМИЧЕСКОЙ
РЕКОНФИГУРАЦИИ...............................................................
3.1. Реконфигурация связей между компонентами................. Динамическая реконфигурация на уровне СенК...................... Динамическая реконфигурация на уровне связей
между подблоками............................................................. 3.2. Реконфигурация компонентов....................................... Контрольные вопросы......................................................... 4. ПРОЦЕСС ДИНАМИЧЕСКОЙ РЕКОНФИГУРАЦИИ
СЕТИ-НА-КРИСТАЛЛЕ НА БАЗЕ ASIC......................................
4.1. Этапы процесса динамического реконфигурирования
СенК................................................................................ 4.2. Требования и ограничения для процесса передачи
конфигурационной информации.......................................... 4.3. Передача конфигурационной информации....................... Использование выделенной сети для передачи
конфигурационной информации........................................... Использование основной сети для передачи
конфигурационной информации........................................... 4.4. Организация процесса динамического реконфигурирования
СенК, требования и ограничения.......................................... 4.5. Структура реконфигурируемой СенК, и IP-блоков
для ее формирования.......................................................... 4.6. Процесс замены конфигурационной информации,
требования к архитектуре реконфигурируемых IP-блоков....... Контрольные вопросы......................................................... 8
9
11
13
20
21
21
22
29
31
37
39
39
41
43
43
47
52
53
62
68
5. ЗАДАНИЯ НА САМОСТОЯТЕЛЬНУЮ РАБОТУ.......................
69
Список литературы..................................................................
71
75
Учебное издание
Суворова Елена Александровна,
Матвеева Надежда Александровна,
Шейнин Юрий Евгеньевич
РАЗРАБОТКА
ДИНАМИЧЕСКИ РЕКОНФИГУРИРУЕМЫХ СИСТЕМ
И СЕТЕЙ НА КРИСТАЛЛЕ
Учебное пособие
Редактор А. В. Подчепаева
Компьютерная верстка В. Н. Костиной
Сдано в набор 08.12.16. Подписано к печати 29.12.16. Формат 60 × 84 1/16.
Бумага офсетная. Усл. печ. л. 4,4. Уч.-изд. л. 4,8.
Тираж 50 экз. Заказ № 517.
Редакционно-издательский центр ГУАП
190000, Санкт-Петербург, Б. Морская ул., 67
Документ
Категория
Без категории
Просмотров
1
Размер файла
2 058 Кб
Теги
syvorova
1/--страниц
Пожаловаться на содержимое документа