Научная статья на тему 'Технология внутрисхемного программирования. Внутрисхемные сети программируемых логических интегральных схем (ПЛИС)'

Технология внутрисхемного программирования. Внутрисхемные сети программируемых логических интегральных схем (ПЛИС) Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
348
46
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
РЕКОНФИГУРИРУЕМЫЕ ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ / RECONFIGURABLE COMPUTING SYSTEMS / ПЛИС / FPGA / ВНУТРИСХЕМНОЕ ПРОГРАММИРОВАНИЕ / IN-CIRCUIT PROGRAMMING / ВНУТРИСХЕМНАЯ СЕТЬ / IN-CIRCUIT NETWORK

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Глухих Владимир Иванович, Феоктистов Григорий Викторович

Рассмотрена концепция реконфигурируемых вычислительных систем, дано их определение, перечислены преимущества таких систем, описана их структура и отличие от традиционных вычислительных систем с «жесткой» архитектурой. Поставлена задача организации межмодульного информационного взаимодействия. Предложен вариант ее решения на основе построения в пространстве программируемых логических интегральных схем (ПЛИС) внутрисхемных сетей, объединяющих модули с типовыми интерфейсами для отдельных подсетей. Подробно разобраны внутреннее устройство и принципы работы предложенных сетей, приведены временные диаграммы.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

IN-CIRCUIT PROGRAMMING TECHNOLOGY. FPGA IN-CIRCUIT NETWORKS

The paper deals with the conception of reconfigurable computing systems. It provides their definition, lists advantages describes their structure and differences from traditional computing systems with “hard” architecture. The task of intermodular information exchange organization is set. A possible solution is proposed on the basis of spatial building of in-circuit network FPGAs that integrate the modules with standard interfaces for individual subnets. The internal organization and working principles of the proposed networks are discussed in details, waveforms are provided.

Текст научной работы на тему «Технология внутрисхемного программирования. Внутрисхемные сети программируемых логических интегральных схем (ПЛИС)»

УДК 004.272

ТЕХНОЛОГИЯ ВНУТРИСХЕМНОГО ПРОГРАММИРОВАНИЯ. ВНУТРИСХЕМНЫЕ СЕТИ ПРОГРАММИРУЕМЫХ ЛОГИЧЕСКИХ ИНТЕГРАЛЬНЫХ СХЕМ (ПЛИС)

1 9

© В.И. Глухих1, Г.В. Феоктистов2

Иркутский национальный исследовательский технический университет, 664074, Россия, г. Иркутск, ул. Лермонтова, 83.

Рассмотрена концепция реконфигурируемых вычислительных систем, дано их определение, перечислены преимущества таких систем, описана их структура и отличие от традиционных вычислительных систем с «жесткой» архитектурой. Поставлена задача организации межмодульного информационного взаимодействия. Предложен вариант ее решения на основе построения в пространстве программируемых логических интегральных схем (ПЛИС) внутрисхемных сетей, объединяющих модули с типовыми интерфейсами для отдельных подсетей. Подробно разобраны внутреннее устройство и принципы работы предложенных сетей, приведены временные диаграммы.

Ключевые слова: реконфигурируемые вычислительные системы; ПЛИС; внутрисхемное программирование; внутрисхемная сеть.

IN-CIRCUIT PROGRAMMING TECHNOLOGY. FPGA IN-CIRCUIT NETWORKS V.I. Glukhikh, G.V. Feoktistov

Irkutsk National Research Technical University, 83 Lermontov St., Irkutsk, 664074, Russia.

The paper deals with the conception of reconfigurable computing systems. It provides their definition, lists advantages describes their structure and differences from traditional computing systems with "hard" architecture. The task of inte r-modular information exchange organization is set. A possible solution is proposed on the basis of spatial building of incircuit network FPGAs that integrate the modules with standard interfaces for individual subnets. The internal organization and working principles of the proposed networks are discussed in details, waveforms are provided. Keywords: reconfigurable computing systems; FPGA; in-circuit programming; in-circuit network.

Введение

Идея реконфигурируемых вычислительных систем была впервые представлена в 1960 году Джеральдом Эстрином (Калифорнийский университет, Беркли) в докладе «Organization of computer system: the fixed plus variable structure computer» [13], в котором была изложена концепция вычислительной системы с реконфигурируемой архитектурой. В работе был описан набор модулей, на основе которых предполагалось создание различных специализированных вычислительных систем, ориентированных на определенную задачу. В докладе были сформулированы теоретические основы, но воплощение и внедрение в практику данной концепции сдерживалось отсутствием соответствующей ей элементной базы. Активное развитие реконфигурируемые вычислительные системы получили с появлением программируемых логиче-

ских интегральных схем (ПЛИС) типа FPGA (Field Programmable Gate Array) высокой степени интеграции. Это связано с тем, что ПЛИС образует класс цифровых интегральных схем с заранее неопределенной конфигурацией, в которые изначально заложены возможности реконфигурирования их внутренней архитектуры. По ряду критериев ПЛИС наилучшим образом соответствуют концепции реконфигурируемых вычислительных систем [11].

К настоящему моменту концепция создания реконфигурируемых вычислительных систем (РВС), принципы их построения, а также опыт практической реализации таких систем изложен в работах А.В. Каляева, И.И. Левина, Е.А. Семерни-кова и др. [7, 9, 11]. Проблемам создания высокопроизводительных РВС посвящены работы А.В. Палагина, В.Н. Опанасенко [10, 14].

1

Глухих Владимир Иванович, кандидат химических наук, доцент кафедры вычислительной техники, тел.: 89834626163, e-mail: gluxix_v@mail.ru

Glukhikh Vladimir, Candidate of Chemistry, Associate Professor of the Computer Engineering Department, tel.: 89834626163 e-mail: gluxix_v@mail.ru

2Феоктистов Григорий Викторович, аспирант, тел.: 89500885709, e-mail: strvl54@rambler.ru

Feoktistov Grigory, Postgraduate, tel.: 89500885709, e-mail: strvl54@rambler.ru_

Реконфигурируемая вычислительная система представляет собой вычислительную систему с «гибкой» модульной архитектурой, динамически перестраиваемой на основе реконфигурируемой элементной базы. В отличие от традиционных вычислительных систем с «жесткой» архитектурой архитектура РВС может динамически изменяться в процессе ее функционирования. Характерной особенностью РВС является возможность адаптации архитектуры вычислительной системы под структуру решаемой ею задачи. Иными словами, оставаясь в рамках базовой архитектуры системы, реконфигурируемые вычислительные системы позволяют создавать проблемно-ориентированные вычислители, структура которых соответствует решаемой задаче. В работах [7, 9, 11] выделены следующие преимущества РВС:

- высокая реальная производительность, близкая к пиковой на широком классе задач;

- возможность создания высокопроизводительных систем, существенно опережающих суперЭВМ по показателям эффективности (реальная производительность/пиковая производительность), компактности (реальная производительность/объем), энергоэффективности и экономичности;

- практически линейный рост производительности при наращивании аппаратного ресурса [8];

- достигается наиболее оптимальный баланс между высокой производительностью, гибкостью и материальными затратами по сравнению с вычислительными системами других типов [3].

Типовая РВС состоит, как правило, из 2 частей: постоянной (или «фиксированной») части (Host) и переменной части (реконфигурируемой подсистемы - РПС), которые можно объединять в различные конфигурации [10]. Под конфигурацией понимается определенная совокупность аппаратных средств и соединений между ними, которая реализует заданный алгоритм функционирования в течение определенного периода времени (сеанса работы). Ре-

конфигурируемость - свойство РВС динамически переопределять совокупность аппаратных средств, реализуемых алгоритмов и соединений между ними в соответствии с необходимым алгоритмом функционирования. Файл конфигурации - программный файл, сформированный с помощью системы автоматизированного проектирования (САПР) для конкретного типа ПЛИС, предназначенный для создания необходимой конфигурации в кристалле ПЛИС [10].

В случае РВС на базе ПЛИС с жесткой конфигурацией, РПС может состоять из внутрисхемных модулей, разнесенных по определенным образом скоммутированным микросхемам ПЛИС, при этом реконфигурация (смена алгоритмов работы) обеспечивается путем перезагрузки конфигурационных файлов в память отдельных микросхем.

Реактивность РВС в этом случае определяется временем перезагрузки конфигурационного файла, которая, в свою очередь, зависит от его объема и, возрастая с ростом вычислительных ресурсов ПЛИС, согласно [12], может достигать нескольких секунд для сверхбольших ПЛИС. Это время можно считать верхней границей времени реактивности для систем реального времени с перезагружаемыми алгоритмами работы.

В случае РВС на базе сверхбольших ПЛИС, в пространстве каждой из которых можно разместить достаточное число модулей, РПС может находиться в пределах одной микросхемы, и переключение алгоритмов работы может быть реализовано путем коммутации модулей с разными алгоритмами работы. В этом случае, согласно [12], время переключения алгоритмов работы (реконфигурации) не будет превышать нескольких единиц или десятков наносекунд.

Поскольку ПЛИС по своей природе является параллельно работающим устройством, в пространстве одного кристалла ПЛИС РПС может реализовывать одновременное (параллельное) управление несколькими объектами с возможно-

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

Важным аспектом разработки РВС является обозначенная в работе [4] проблема обеспечения межмодульного взаимодействия, то есть организация единого унифицированного интерфейса взаимодействия, обеспечивающего передачу данных, управляющих сигналов и сигналов состояния между хостом и модулями, а также взаимообмен данными между модулями в рамках РПС. Данный интерфейс определяет порядок информационного обмена как на внутрисхемном уровне в пределах одной микросхемы ПЛИС, так и на уровне соединений между выводами микросхем ПЛИС и аппаратной части хоста.

Построение сложных РВС с возможностью интерактивного доступа к объектам управления требует более гибкой организации модулей РПС в виде их объединения в локальную внутрисхемную сеть (ЛВС) (рис. 2). В свою очередь, сама ЛВС может иметь разветвленную топологию: с главной сетью (MainNet) и несколькими подсетями (SubNet). Управление главной сетью выполняет хост, который может находиться как внутри ПЛИС, так и вне ее: во внешней (распределенной) сети или быть удаленным (сеть Интернет).

Примером такой сети является внутрисхемная сеть стенда «Учебная Научно-Исследовательская Лаборатория» (УНИЛ), предназначенного для выполнения лабораторных и научно-исследовательских работ на кафедре вычислительной техники ИРНИТУ [5, 6]. Стенд представляет собой реконфигурируемую вычислительную систему на базе микроконтроллера Cypress FX2 и ПЛИС серии Cyclone II фирмы Altera. Вопросы проектирования микроэлектронных систем на основе этой элементной базы рассматриваются в источниках [1, 2, 12]. На рис. 2 приведен пример операционной части данного стенда. Ниже перечислены некоторые его особенности:

• Архитектура РПС стенда зависит от вида решаемой задачи, реконфигурация осуществляется путем перезагрузки ПЛИС.

• Внешний интерфейс стенда обеспечивает возможность интерактивной работы с удаленным доступом через Интернет.

• ЛВС состоит из главной сети MainNet и двух подсетей - SubNET-M и SubNET-W:

SubNET-M

предоставляет

устройствам ПЛИС доступ к общему разделяемому ресурсу - внешней статической памяти. Память доступна внешнему серверу через сеть MainNET;

- SubNET-W реализует вычисление функции посредством 10 параллельно работающих контроллеров, которые получают исходные данные и сохраняют результаты вычислений во внешней памяти.

Рис.1. Блок-схема устройства на ПЛИС с прямой коммутацией модулей, управляющего одновременно N объектами

Рис. 2. Блок-схема операционной части лабораторного комплекса УНИЛ

Построение модулей РПС, входящих в состав ЛВС, на ПЛИС может быть формализовано за счет использования сетевых модулей (СМ), имеющих для каждой подсети свой встраиваемый интерфейсный модуль - ВИМ. В этом случае разработка устройства на ПЛИС сводится к объединению интерфейсных модулей в сети.

Локальная внутрисхемная сеть MainNET

Локальная внутрисхемная сеть (ЛВС) предназначена для организации интерактивного управления объектами ПЛИС и реализации модульного принципа построения (проектирования) сложных устройств на ПЛИС. При модульном проектировании, помимо стандартных примитивов и библиотечных параметризируемых модулей, используются специальные сетевые модули, которые объединяются в сети своими, определенными для каждой подсети, интерфейсными частями - встраиваемыми интерфейсными модулями. ЛВС может содержать несколько, не обязательно связанных между собой, подсетей, но обязательно связанных с одной, главной сетью - МатМЕТ. Она обеспечивает обмен данными и командами с внешней средой (Ех-

tNET, InterNET и др.). Главная сеть, MainNET, имеет шинную архитектуру, тогда как подсети (SubNET) могут иметь произвольную архитектуру.

Требования к сети:

- 2-байтовая адресация модулей (до 255 типов модулей и до 256 модулей одного типа);

- одновременно в сети MainNET может использоваться до 64 модулей (зависит от ресурсов используемой ПЛИС);

- широковещательный (пакетный) способ задания режимов работы и чтения состояний (одновременно для всех модулей);

- адресный способ чтения и записи данных объемом до 232 байтов (по запросам от модулей);

- аппаратный запрос прерываний от модулей;

- минимизация ресурсов интерфейса сети при максимальной скорости обмена данными.

Протоколы сети

Режим работы сети определяется значениями сигналов RDD (0 - запись, 1 - чтение), DAT (0 - команда/состояние,

1 - данные) и содержанием регистра ADR (адресный регистр интерфейсного модуля), которые задаются интерфейсным контроллером (SERVER).

Ренумерация модулей (RDD = 0, DAT = 0, ADR = 0). Сразу после загрузки ПЛИС модули распределены во всем доступном адресном пространстве, хотя число самих модулей ограничено и обычно не превышает нескольких десятков. Для сокращения времени доступа и реализации потокового способа обращения, модулям присваиваются порядковые номера их следования в потоке - ренумерация. Потоковая запись команд сокращает время обращения к ренумерованным модулям приблизительно в 1000 раз. Потоковое чтение состояний неренумерованных модулей в принципе невозможно, так как знание адреса модуля не позволяет определить положение пакета в потоке. Алгоритмы ренуме-рации модулей контроллером сети, интерфейсными модулями сети и временная диаграмма сигналов шины сети приведены на рис. 3.

Ренумерация происходит сразу после получения интерфейсным контроллером сообщения от ПЛИС об успешной загрузке конфигурационного файла. В момент загрузки все триггеры и регистры ПЛИС, как и регистр адреса (ADR) модулей, сброшены в 00 h.

Интерфейсный контроллер формирует пакеты из 8 байт и выставляет их за 8 тактов, последовательно перебирая все 16-разрядное адресное пространство моду-

лей. Первому пакету присваиваются N = 1, J = 0, K = 0.

Для интерфейсного модуля нулевое содержание адресного регистра (ADR = 0) является признаком режима ренумерации. Модуль синхронно с тактовыми импульсами интерфейсного контроллера (CLK), посредством 3-разрядного счетчика формирует восемь синхронных состояний (1...8) и два асинхронных (9 и 10). Получив совпадение своих констант TYP и nUm с содержимым 2-го и 3-го байтов пакета, соответственно, модуль помещает в свой адресный регистр номер модуля ADR = N и сигнализирует об этом интерфейсному контроллеру, выставив на линию прерывания импульс INT = puls.

Интерфейсный контроллер, получив на 3-м такте ренумерации отклик от модуля, увеличивает номер пробного пакета на единицу - inc(N).

После ренумерации адресный регистр модулей ADR содержит номер порядка следования пакета для данного модуля в потоке.

Запись команды модуля (RDD = 0,

DAT = 0, ADR > 0). Контроллер сети формирует поток пакетов, состоящий из восьми байтов: адрес модуля (ADR), тип модуля (TYP), номер модуля (NUM), код команды (CMD) и 4-х дополнительных байтов, расширяющих команду. Отдельные биты команды повторяются, сбрасываются или устанавливаются и сохраняются в регистре CMD интерфейсной части модуля.

Рис.3. Ренумерация модулей: а - граф контроллера; Ь - граф модуля; с - временная диаграмма сигналов шины

Байт команды (CMD[7...0]), помимо параметров работы модуля, содержит три бита:

- CMD[7]=eDAT - признак перехода модуля в режим чтения/записи данных;

- CMD[6]=eWR - признак вывода 4-х дополнительных байтов команды (D0...D3) через порт WR[7...0] в сопровождении стробов (eW0...eW3).

- CMD[5]=eRD - признак чтения 4-х дополнительных байтов состояния из модуля через порт RD[7...0] в режиме «Чтение состояния модуля».

Модуль, синхронно с тактовыми импульсами интерфейсного контроллера (CLK), посредством 3-разрядного счетчика формирует восемь синхронных состояний (1.8) и шесть асинхронных (9...14) (рис. 4).

Чтение состояния модуля (RDD = 1, DAT = 0, ADR > 0). Байт состояния (SOS[7...0]), помимо отражения состояния модуля, передает хосту три запроса:

- SOS[7]=askINT - запрос прерывания;

- SOS[6]=askWR - запрос записи данных;

- SOS[5]=askRD - запрос чтения данных.

Модуль синхронно с тактовыми импульсами интерфейсного контроллера (CLK), посредством 3-разрядного счетчика формирует восемь синхронных состояний (1.8) и восемь асинхронных (9...16) (рис. 5).

Чтение/запись данных (RDD = 1, DAT = 1, ADR > 0 / RDD = 0, DAT = 1,

ADR > 0). Обмен данными между сервером и одним активным модулем производится путем передачи потока байтов заданного объема (до 232). Перед обменом данными в режиме записи команды для активируемого модуля устанавливаются биты: eDAT и eWR или eRD.

Рис. 4. Запись команды модуля: а - граф модуля; Ь - временная диаграмма сигналов шины

Рис. 5. Чтение состояния модуля: а - граф модуля; Ь - временная диаграмма сигналов шины

Сигналы шины

Шина главной сети MainNET,

I [11___0], связывает двунаправленные

(BIDIR) порты ВИМ между собой и контроллером сети (SERVER). Шина содержит сигналы:

- I[7...0] - двунаправленные данные;

- CLK - входные тактовые синхроимпульсы;

- RDD - входной сигнал чтения (1)/записи (0);

- DAT - входной сигнал обработки данных (1) или команд/состояний (0);

- INT - выходной сигнал (строб) запроса прерывания.

Входные сигналы, поступающие с предопределенных входных выводов ПЛИС, должны быть имплементированы в двунаправленную шину, а выходные выводятся из интерфейсных модулей через трехстабильные буферы (tri) (рис. 6).

Интерфейс модулей

Сетевые модули ПЛИС могут иметь несколько внешних интерфейсов, обеспечивающих их связь, по меньшей мере, с

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

Доступ модулей к главной сети MainNET обеспечивает встраиваемый интерфейсный модуль - MAIN. ВИМ должен обходиться минимальными вычислительными ресурсами ПЛИС и обеспечивать полный доступ ко всем ресурсам сети MainNET, включая доступ к ресурсам внешних распределенных и удаленных сетей. Обычно ВИМ входит в состав других модулей, выполняющих узкие специальные функции.

На рис. 7 приведен пример устройства универсального модуля TERMINAL, основным звеном которого является встраиваемый интерфейсный модуль - MAIN. Через модуль MAIN сервер задает режим работы (порт CMD), считывает текущее состояние (порт SOS), обеспечивает ввод/вывод данных (порты RD и WR).

Рис. 6. Шина сети MainNET

Рис. 7. Универсальный модуль TERMINAL

Заключение

РВС являются перспективным направлением развития высокопроизводительной вычислительной техники, которое в противоположность кластерным суперЭВМ позволяет создавать внутрисхемные специализированные вычислители, структура которых соответствует решаемой задаче. Их качественно новым свойством, при реализации на ПЛИС, является возможность динамически изменять внутреннюю структуру реконфигурируемого устройства непосредственно в процессе вычислений.

Предложенный вариант внутрисхемной сети решает проблему обеспечения межмодульного взаимодействия в РВС: типовой встраиваемый интерфейсный модуль предоставляет унифицированный внутрисхемный интерфейс доступа к ресурсам сети модулям РПС, а также внешний интерфейс информационного обмена и

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

управления модулями для хоста. Шинная топология внутрисхемной сети делает возможным создание сложных, распределенных между несколькими микросхемами ПЛИС конфигураций РПС с возможностью динамического изменения структуры сети и состава модулей путем реконфигурации отдельных микросхем.

Рассмотренный вариант организации внутрисхемных сетей реализован в лабораторном комплексе УНИЛ кафедры вычислительной техники ИРНИТУ. Комплекс используется для построения и исследования аппаратных и программно-аппаратных реализаций систем управления, параллельных вычислений, моделирования производственных процессов и др. Библиотека комплекса содержит модули: отладки проектов, виртуальных приборов, автоматизации решения ряда прикладных задач.

Статья поступила 30.11.2015 г.

Библиографический список

1. Амосов В.В. Схемотехника и средства проектирования цифровых устройств. СПб.: БХВ-Петербург, 2007. 560 с.

2. Бродин В.Б., Калинин А.В. Системы на микроконтроллерах и БИС программируемой логики. М.: ЭКОМ, 2002. 400 с.

3. Гильгурт С.Я. Реконфигурируемые вычислители. Аналитический обзор // Электронное моделирование. 2013. Т. 35. № 4. С. 49-72.

4. Гильгурт С.Я., Гиранова А.К. Некоторые вопросы обмена данными между персональным компьютером и реконфигурируемым устройством // Моделирование и информационные технологии. 2007. № 43. С. 86-94.

5. Глухих В.И. Цифровая схемотехника. Технология внутрисхемного программирования. Иркутск: Изд-во ИрГТУ, 2001. 160 с.

6. Глухих В.И., Кирий В.Г. Учебная научно-исследовательская лаборатория // Компьютерное моделирование 2004: труды 5-й Международной научно-технической конференции. СПб.: Изд-во «Нестор», 2004. Ч. 2. 224 с.

7. Каляев А.В. Многопроцессорные вычислительные системы с программируемой архитектурой. М.: Радио и связь, 1984. 240 с.

8. Каляев А.В., Левин И.И. Модульно-наращиваемые многопроцессорные системы со

структурно-процедурной организацией вычислении. М.: Янус-К, 2003. 380 с.

9. Каляев И.А., Левин И.И. Высокопроизводительные модульно-наращиваемые многопроцессорные системы на основе реконфигурируемой элементной базы // Вычислительные методы и программирование. 2007. Т. 8. № 1. С. 181-190.

10. Опанасенко В.Н. Высокопроизводительные реконфигурируемые компьютеры на базе FPGA // Journals of Qafqaz University. 2010. № 30. С. 114-118.

11. Семейство многопроцессорных вычислительных систем с динамически перестраиваемой архитектурой / Н.Н. Дмитренко, И.А. Каляев, И.И. Левин, Е.А. Семерников // Вестник компьютерных и информационных технологий. 2009. № 6. С. 2-10.

12. Стешенко В.Б. ПЛИС фирмы Altera: элементная база, система проектирования и языки описания аппаратуры. М.: Издательский дом «Додека-XXI», 2002. 576 с.

13. Estrin G. Organization of computer system: the fixed plus variable structure computer // Proc. Western Joint Computer Conf. New York, 1960. № 5. С. 33-40.

14. Palagin A.V., Opanasenko V.N. Reconfigurable computing technology // Cybernetics and Systems Analysis. 2007. Vol. 43. № 5. С. 675-686.

i Надоели баннеры? Вы всегда можете отключить рекламу.