Архитектура ПЛИС (FPGA)
FPGA – это сокращение от английского словосочетания Field Programmable Gate Array.
ПЛИС – это сокращение от словосочетания «Программируемая Логическая Интегральная Схема». Слово ПЛИС встречается в русскоязычных документациях и описаниях вместо слова FPGA. Далее по тексту в основном будет использоваться этот термин – ПЛИС.
ПЛИС и FPGA – это аббревиатуры, обозначающие один и тот же класс электронных компонентов, микросхем. Это микросхемы, применяемые для создания собственной структуры цифровых интегральных схем.
Логика работы ПЛИС определяется не на фабрике изготовителем микросхемы, а путем дополнительного программирования (в полевых условиях, field-programmable) с помощью специальных средств: программаторов и программного обеспечения.
Микросхемы ПЛИС – это не микропроцессоры, в которых пользовательская программа выполняется последовательно, команда за командой. В ПЛИС реализуется именно электронная схема, состоящая из логики и триггеров.
Проект для ПЛИС может быть разработан, например, в виде принципиальной схемы. Еще существуют специальные языки описания аппаратуры типа Verilog или VHDL.
В любом случае, и графическое и текстовое описание проекта реализует цифровую электронную схему, которая в конечном счете будет «встроена» в ПЛИС.
Обычно, сама микросхема ПЛИС состоит из:
- конфигурируемых логических блоков, реализующих требуемую логическую функцию;
- программируемых электронных связей между конфигурируемыми логическими блоками;
- программируемых блоков ввода/вывода, обеспечивающих связь внешнего вывода микросхемы с внутренней логикой.
Строго говоря это не полный список. В современных ПЛИС часто бывают встроены дополнительно блоки памяти, блоки DSP или умножители, PLL и другие компоненты. Здесь, в этой статье я их рассматривать не буду.
Разработчик проекта для ПЛИС обычно абстрагируется от внутреннего устройства конкретной микросхемы. Он просто описывает желаемую логику работы «своей» будещей микросхемы в виде схемы или текста на Verilog/ VHDL. Компилятор, зная внутреннее устройство ПЛИС сам пытается разместить требуемую схему по имеющимся конфигурируемым логическим блокам и пытается соединить эти блоки с помощью имеющихся программируемых электронных связей. В общем случае размещение и трассировка связей между логическими блоками в ПЛИС остается за компилятором.
Классификация ПЛИС по типу хранения конфигурации.
SRAM-Based.
Это одна из самых распространенных разновидностей ПЛИС. Конфигурация ПЛИС хранится ячейках статической памяти, изготовленной по стандартной технологии CMOS.
Достоинство этой технологии – возможность многократного перепрограммирования ПЛИС. Недостатки – не самое высокое быстродействие, после включения питания прошивку нужно вновь загружать. Значит на плате должен еще стоять загрузчик, специальная микросхема FLASH или микроконтроллер – все это удорожает конечное изделие.
Flash-based.
В таких микросхемах хранение конфигурации происходит во внутренней FLASH памяти или памяти типа EEPROM. Такие ПЛИС лучше тем, что при выключении питания прошивка не пропадает. После подачи питания микросхема опять готова к работе. Однако, у этого типа ПЛИС есть и свои недостатки. Реализация FLASH памяти внутри CMOS микросхемы – это не очень просто. Требуется совместить два разных техпроцесса для производства таких микросхем. Значит они получаются дороже. Кроме того, такие микросхемы, как правило, имеют ограниченное количество циклов перезаписи конфигурации.
Antifuse.
Специальная технология по которой выполняются однократно программируемые ПЛИС. Программирование такой ПЛИС заключается в расплавлении в нужных местах чипа специальных перемычек для образования нужной схемы.
Недостаток – собственно программировать / прошивать чип можно только один раз. После этого исправить уже ничего нельзя. Сам процесс прошивки довольно не быстрый. Зато есть масса достоинств у таких ПЛИС: они довольно быстрые (могут работать на больших частотах), меньше подвержены сбоям при радиации – все из-за того, что конфигурация получается в виде перемычек, а не в виде дополнительной логики, как у SRAM-based.
Конфигурируемые логические блоки.
В документации компании Альтера встречается выражение Logic Array Block (LAB) – массив логики. У компании Xilinx в микросхемах ПЛИС есть примерно такие же блоки – Configurable Logic Block (CLB). Конфигурируемый логический блок – это базовый элемент в ПЛИС, в нем может быть выполнена какая-то простая логическая функция или реализовано хранение результата вычисления в регистрах (триггерах).
Сложность и структура конфигурируемого логического блока (CLB) определяется производителем.
Теоретически, конфигурируемый логический блок может быть, например, очень простым, просто как отдельный транзистор. Или он может быть очень сложным, как целый процессор. Это крайние точки реализации.
В первом случае потребуется огромное число программируемых связей, чтобы потом из отдельных транзисторов собрать требуемую схему. Во втором случае связей может нужно и не так много, но теряется гибкость проектирования пользовательской схемы.
Именно поэтому конфигурируемый блок обычно представляет из себя что-то среднее: он обычно достаточно сложен, чтобы можно было бы зашить туда некоторую функцию, но и довольно мал, чтобы разместить множество таких блоков внутри ПЛИС и чтобы была возможность связать их в единую схему.
Таким образом, выбор структуры конфигурируемого логического блока производителем ПЛИС – это всегда поиск компромиса по площади кристалла, по быстродействию, энергопотреблению и так далее.
Конфигурируемый логический блок может состоять из одного или нескольких базовых логических элементов. В англоязычной литературе это Basic Logic Element (BLE) или просто Logic Element (LE). В ПЛИС обычно используются так называемые LUT-based базовые логические элементы. Что-то вроде этого:
Рис. 1. Пример традиционного базового логического элемента.
LUT – это Look-Up Table, таблица преобразования. Например, на Рис.1 показан четырехбитный LUT в составе базового логического блока. Здесь четырехбитному числу на входе логической функции ставится в соответствие однобитный результат. Красные квадратики на Рис. 1 обозначают программируемый элемент, регистр – это та память, где хранится прошивка для ПЛИС. Видно, что для конфигурации 4-х битного LUT требуется 16 конфигурационных регистра. Содержимое этих регистров определяют логическую функцию, реализованную внутри базового логического элемента.
Еще один конфигурационный регистр (на Рис. 1 это одиночный красный квадратик справа) определяет нужно ли на выход базового логического элемента выдавать прямо значение с LUT или нужно выдать зафиксированное в D-триггере значение с LUT. Фиксация и хранение данных в цифровых схемах нужна практически в любом проекте.
Примерно такой логический элемент использовался в моем экспериментальном проекте «ПЛИС внутри ПЛИС».
Рассматривая Рис. 1 как пример традиционного базового логического элемента понимаешь какая избыточность заложена внутрь современного кристалла ПЛИС (SRAM-based). Ведь в самом деле, конфигурационные регистры (красные квадратики) прямо не доступны для использования в цифровом проекте. Они только служат для формирования пользовательской функции. Для одного D-триггера в пользовательском проекте требуется более 16 (иногда много больше) триггеров для хранения конфигурации ПЛИС.
На самом деле базовый логический элемент в разных ПЛИС оказывается гораздо сложнее, чем показано на Рис. 1. Ниже есть некоторые примеры из документации на разные типы ПЛИС.
Рис. 2. Базовый логический элемент CPLD MAX II компании Альтера.
Здесь хорошо видны LUT и D-Триггер хранения результата. Ниже, на Рис. 3 представлен базовый элемент Cyclone III.Рис. 3. Базовый логический элемент FPGA Cyclone III компании Альтера.
В микросхемах Альтеры в одном LAB может содержаться 10-16 LE.
В микросхемах компании Xilinx Virtex-6 базовый логический элемент – это так называемый Slice. В одном CLB всего два Slice. Зато один Slice – это довольно сложное устройство:
Рис. 4. Базовый элемент Xilinx Virtex-6 Slice.
В одном CLB Virtex-6 имеется 8 LUT и 16 D-Триггеров и еще кое-что плюс к этому. Вот так все сложно.
Другая крайность – микросхемы FPGA компании Microsemi (бывшая Actel).
Например, в микросхемах серии 40MX базовый логический элемент выглядит вот так:
Рис. 5. Logic Module of Microsemi 40MX serie.
Восемь входов и один выход.
Здесь нет ни Look-Up Table, ни даже D-Триггера. Триггера, как и остальная логика, формируются где нужно из вот таких крошечных кирпичиков – Logic Module.
Почему у разных компаний получилась такая большая разница в реализации базового логического элемента? Видимо в микросхемах Microsemi связь между базовыми блоками обходится гораздо дешевле: серия 40MX является однократно программируемой. В ней межблочные связи «проплавляются» между соединяющими дорожками и позже не могут быть изменены. Нет никаких регистров для временного хранения прошивки. Здесь нет программируемых переключателей, мультиплексоров, как в FPGA других типов. Ну микросхемы компании Microsemi – это несколько особый случай. Это технология называется antifuse – для производства таких микросхем используется модифицированный техпроцесс CMOS с дополнительными слоями для организации межблочных связей.
Программируемые связи между логическими блоками.
Чтобы в ПЛИС заработала нужная нам цифровая схема мало того, что нужно сконфигурировать имеющиеся логические блоки особым образом, еще нужно создать, запрограммировать связи между логическими блоками.
Для этого в ПЛИС имеются специальные конфигурируемые коммутаторы.
В англоязычной документации встречаются следующие термины: FPGA Routing Architecture и Programmable Routing Interconnect. Это все об этом, о программируемых связях между логическими блоками.
Известно две основных методики построения ПЛИС по типу архитектуры связей: островная и иерархическая.
Рис. 6. Островная ПЛИС.
Островная ПЛИС называется так потому, что конфигурируемые блоки все равны между собой и находятся, как острова в океане, между узлами коммутации и линиями связи.
Здесь, на Рис. 6 обозначаются CB – Connection Box и SB – Switch Box. В сущности это программируемые мультиплексоры, подключающие тот или иной CLB к другому CLB через цепочки проводов в ПЛИС.
Это island-style FPGA или mesh-based FPGA. Типичный пример таких микросхем – это серии Altera Cyclone и Stratix.
Второй известный тип ПЛИС – это иерархические ПЛИС. Здесь идет расчет на то, что в схеме всегда есть участки которые взаимодействуют друг с другом более тесно, чем с отдаленными модулями проекта.
Рис. 7. Иерархическая ПЛИС.
Здесь близлежащие CLB соединить довольно просто, нужно не много коммутаторов и получающиеся связи работают быстро. Вот если нужен более крупный блок вычислителей, то сигнал должен выйти на более высокий уровень иерархии и потом зайти вглубь в соседнюю «комнату».
Нельзя сказать, что это существенно хуже, чем island-style. Просто каждый метод имеет свои плюсы и минусы.
Типичные представители иерархических ПЛИС – это микросхемы компании Альтера серии Flex10K, APEX.
Программное обеспечение для проектирования ПЛИС.
Программное обеспечение для проектирования ПЛИС, а именно компилятор (синтезатор логики и фиттер и ассемблер) – это, возможно, самая сложная часть всей ПЛИС технологии.
Компилятор должен проанализировать пользовательский проект (схемы и текстовые описания на Verilog HDL или VHDL ) и сгенерировать нетлист (netlist) – список всех элементов схемы и связи между ними. Netlist должен быть оптимизирован – логические функции нужно минимизировать, возможные дублированные регистры нужно удалить.
Затем компилятор должен вместить всю логику из netlist в имеющуюся архитектуру ПЛИС. Это делает фиттер (fitter). Он размещает логические элементы и выполняет трассировку связей между ними (процесс place and route). Сложность состоит в том, что один и тот же проект может быть размещен в ПЛИС разными способами и этих способов миллионы. Некоторое размещение и трассировка оказываются лучше, другие хуже. Главный критерий качества полученной системы – максимальная частота, на которой сможет работать проект при данном размещении элементов и при данной трассировке связей. Здесь оказывает влияние длина связей между логическими блоками и количество программируемых коммутаторов между ними.
Компилятор, зная архитектуру ПЛИС по результатам работы дополнительно выдает отчет о времени прохождении сигналов от регистра до регистра. Эта информация часто бывает полезной для разработчика высокопроизводительных систем. Разработчик для ПЛИС имеет возможность давать некоторые советы компилятору где, в каком месте кристалла лучше разместить тот или иной модуль проекта.
Выбирая для своего проекта, для своей платы конкретную микросхемы ПЛИС разработчик в некоторой мере попадает в зависимость от производителя этой ПЛИС, так как должен в работе пользоваться программным обеспечением от этого же производителя.
Программное обеспечение компании Альтера: Quartus II.
ПО Xilinx для проектирования для ПЛИС: ISE Suite, Vivaldo Design Suite.
ПО компании Microsemi: Libero IDE, Libero SoC.
Возможно, программное обеспечение, компиляторы для ПЛИС – это важнейшая составляющая интеллектуальной собственности компаний производителей ПЛИС.
На страницах нашего сайта https://marsohod.org мы уделяем внимание прежде всего проектированию систем на базе ПЛИС компании Альтера и пользуемся средой разработки Altera Quartus II.
Особенности архитектуры нового поколения ПЛИС с архитектурой FPGA фирмы xilinx Текст научной статьи по специальности «Электротехника, электронная техника, информационные технологии»
Валерий ЗОТОВ
Общая характеристика и особенности кристаллов программируемой логики с архитектурой FPGA нового поколения
Новое поколение кристаллов программируемой логики с архитектурой FPGA будет представлено тремя сериями ПЛИС —
□ Конфигурируемые логические блоки
~ || ш~п CLB
□ Блочная память Block RAM
“■“■“■“■“■“П Секции цифровой
обработки сигналов Artix-/ FPUA DSP48E1
□ Последовательные
высокоскоростные – -И-И-ЦИ-Ш-1 приемопередатчики
□ Комбинированные
модули управления ‘ ННШННН синхронизацией ММСМ
□ Модули интерфейса
PCI Express
□ Блоки ввода/вывода
Vîrtex-7 FPGA
Рис. 1. Топология логических и специализированных аппаратных блоков в ПЛИС серий Artix-7, Kintex-7 и Virtex-7
Особенности архитектуры нового поколения ПЛИС
с архитектурой FPGA фирмы Xilinx
В текущем году фирма Xilinx приступила к серийному выпуску последних семейств ПЛИС, относящихся к сериям Virtex-6 и Spartan-6, информация о которых была представлена в [1—3]. Вместе с тем, подтверждая статус ведущего производителя кристаллов программируемой логики с архитектурой FPGA (Field Programmable Gate Array), фирма Xilinx сообщила о разработке нового поколения ПЛИС, производство которых должно начаться в следующем, 2011 году. Цель этой статьи — ознакомление разработчиков с наиболее существенными особенностями, основными характеристиками и составом новых серий ПЛИС.
Artix-7, Kintex-7 и Virtex-7, производимыми по High-K Metal Gate (HKMG) технологии 28 нм. Таким образом, фирма Xilinx существенно обновляет спектр продукции, который традиционно был представлен ею на рынке ПЛИС в последнее десятилетие [4]. Прекращается разработка новых семейств кристаллов линейки Spartan, архитектура которых, за исключением Spartan-6, соответствовала структуре ПЛИС серии Virtex предыдущего поколения. При проектировании серий Virtex-6 [5-16] и Spartan-6 [17-26] был сделан первый шаг в процессе перехода к одновременному выпуску нескольких линеек кристаллов программируемой логики с архитектурой FPGA, соответствующих одному поколению.
В кристаллах программируемой логики всех семейств нового поколения применяется единая унифицированная архитектура, которая является результатом дальнейшего развития архитектуры ПЛИС серии Virtex-6. Тем самым созданы все необходимые предпосылки для быстрого и легкого переноса разработанных ранее проектов в кристаллы соответствующей серии — Artix-7, Kintex-7 или Virtex-7. Одновременный выпуск трех указанных линеек ПЛИС с унифицированной архитектурой позволяет выбрать для реализации проектируемого устройства и последующего серийного производства кристалл с оптимальным сочетанием объемов логических ресурсов, специализированных аппаратных блоков, быстродействия и потребляемой мощности. В ПЛИС всех серий нового поколения применяется единая масштабируемая топология логических и специализированных аппаратных блоков (рис. 1).
Основу архитектуры кристаллов серий Artix-7, Kintex-7 и Virtex-7 образует мас-
сив конфигурируемых логических блоков (Configurable Logic Block, CLB), каждый из которых содержит две секции. Во всех трех сериях используются секции двух типов SLICEM и SLICEL, структура которых унаследована от ПЛИС серии Virtex-6 [1]. Каждая из этих секций включает в себя четыре реальные шестивходовые таблицы преобразования Look-Up Table (LUT), с выходами которых сопряжено по паре триггеров. В состав конфигурируемого логического блока могут входить секции двух типов (CLB_LM) или только одного типа SLICEL (CLB_LL). На рис. 2 представлена структура двух ти-
Рис. 2. Обобщенная структура конфигурируемых логических блоков CLB, применяемых в ПЛИС серий Aгtix-7, Kintex-7 и Viгtex-7
Тип ресурсов ПЛИС Тип кристалла
XC7A20 XC7A40 XC7A105 XC7A175T XC7A355T
Логические ресурсы Количество секций (Slices) 2800 6200 16 200 27 050 55 050
Общее число триггеров (CLB) 22 400 49 600 129 600 216 400 440 400
Число логических ячеек (Logic Cells) 17 920 39 680 103 680 173 120 352 320
Ресурсы памяти Объем распределенной памяти (1К = 1024 бит) 225K 450K 1275K 2063K 4188K
Количество модулей блочной памяти (Block RAM) емкостью 36 кбит 20 40 120 185 335
Объем блочной памяти (1К = 1024 бит) (Block RAM) 720K 1440K 4320K 6660K 12060K
Модули синхронизации Количество блоков управления синхронизацией (Clock Management Tiles, CMT) 6 9 9
Число модулей управления синхронизацией (Mixed-Mode Clock Managers, MMCM) 6 9 9
Встроенные специализи- рованные аппаратные модули Число аппаратных секций цифровой обработки сигналов DSP48E1 40 80 240 400 700
Число аппаратных модулей PCI Express – – – 1 1
Количество аппаратных блоков HMAC – – 1 1 1
Число высокоскоростных последовательных приемопередатчиков RocketIO GTP – – – 4 4
Количество аналого-цифровых блоков XADC – – 1 1 1
Ресурсы ввода/вывода Максимальное число пользовательских выводов 100 200 300 450 450
Максимальное число дифференциальных пар выводов 48 96 144 216 216
Поддерживаемые стандарты сигналов ввода/вывода LVCMOS (3,3; 2,5; 1,8; 1,5 и 1,2 В), HSTL I (1,8 и 1,5 В), HSTL II (1,8 и 1,5 В), Diff HSTL I (1,8 и 1,5 В), Diff HSTL II (1,8 В), LVDS, Mini LVDS, PPDS, RSDS (pt-to-pt), SSTL I (1,8 В), SSTL II (1,8 В), SSTL (1,5 В), PCI, TMDS
Варианты быстродействия ПЛИС Варианты быстродействия для коммерческого исполнения -L1, -1, -2, -3 -L1, -1, -2, -3 -L1, -1, -2, -3 -L1, -1, -2, -3 -L1, -1, -2, -3
Варианты быстродействия для промышленного исполнения -L1, -1, -2 -L1, -1, -2 -L1, -1, -2 -L1, -1, -2 -L1, -1, -2
Конфигурационная память Объем конфигурационной памяти, Мбит 5,3 10,5 27,1 45,1 84,6
пов конфигурируемых логических блоков CLB, применяемых в ПЛИС серий Artix-7, Kintex-7 и Virtex-7. В отличие от ПЛИС серии Spartan-6 в архитектуре кристаллов нового поколения отсутствуют секции SLICEX.
Блочная память Block RAM в кристаллах серий Artix-7, Kintex-7 и Virtex-7 имеет ту же организацию, что и в ПЛИС серии Virtex-6. Каждый модуль двухпортовой блочной памяти емкостью 36 кбит, который может использоваться в виде двух независимых блоков объемом 18 кбит, оснащен встроенной системой обнаружения и коррекции ошибок и специальной схемой управления, необходимой для организации запоминающих устройств, функционирующих по принципу «первым вошел – первым вышел» (first-in first-out, FIFO).
Наиболее заметными отличиями кристаллов программируемой логики нового поколения по сравнению с ПЛИС серий Virtex-6 и Spartan-6 являются:
• Снижение уровня потребляемой мощности.
• Повышение производительности реализуемых устройств и систем.
• Усовершенствованная комплексная система распределения тактовых сигналов внутри кристалла, включающая совокупность различных типов линий и соответствующих буферных элементов и обеспечивающая минимизацию задержек распространения сигналов синхронизации.
• Внедрение модернизированных блоков управления синхронизацией Clock Management Tile (CMT), включающих в себя комбинированный модуль управления синхронизацией Mixed-Mode Clock Managers (MMCM) и систему ФАПЧ (Phase-Locked Loop, PLL).
• Применение интегрированных аппаратных модулей интерфейса PCI Express следующего поколения, соответствующих спецификации PCI Express Base Specification Revision 2.1 (Geni, Gen2), которые могут конфигурироваться как конечное устройство (Endpoint) или как корневой порт (Root Port).
• Возможность реализации в кристаллах серий Kintex-7 и Virtex-7 модулей интерфейса PCI Express, соответствующих спецификации PCI Express Base Specification Revision 3.0 (Gen3) на основе синтезируемых IP-ядер.
• Поддержка расширенного спектра однополюсных и дифференциальных цифровых стандартов ввода/вывода с уровнями сигналов от 1,2 до 3,3 В, что является результатом дальнейшей модернизации технологии SelectI/O, включающей в себя модули цифрового управления импедансом Digitally controlled impedance (DCI) и интерфейсные блоки ChipSync.
• Применение усовершенствованных блоков ввода/вывода, поддерживающих режим энергосбережения.
• Наличие в каждом кристалле, содержащем более 100 000 логических ячеек, аналогоцифрового блока XADC, предоставляющего возможность преобразования в цифровую форму 17 внешних аналоговых сигналов, а также контроля значений уровней напряжений питания и температуры ПЛИС.
• Применение новых модификаций высокоскоростных приемопередатчиков RocketIO с максимальной скоростью приема и передачи данных до 13,1 Гбит/с, обеспечивающих возможность реализации широкого спектра интерфейсов вычислительных и телекоммуникационных систем, включая PCI Express, SATA/SAS, DisplayPort, Ethernet, SONET/OTU, Interlaken, Aurora.
• Поддержка новых низковольтных (1,2, 1,35 В) высокоскоростных интерфейсов памяти различного типа.
• Использование во всех сериях ПЛИС (Artix-7, Kintex-7 и Virtex-7) единой архитектуры секций цифровой обработки сигналов (ЦОС) DSP48E1.
• Новый расширенный ряд корпусного исполнения, включающий компактные варианты корпусов, обеспечивающие минимизацию площади печатной платы, занимаемой ПЛИС.
• Возможность реализации встраиваемых микропроцессорных систем на основе новой версии конфигурируемого 32-разрядного ядра MicroBlaze v8.
Поддержка кристаллов нового поколения средствами проектирования Xilinx ISE (Integrated Software Environment/Integrated Synthesis Environment) Design Suite будет осуществляться, предположительно, начиная с 13-й версии.
Состав и основные характеристики ПЛИС серии Artix-7
Кристаллы программируемой логики серии Artix-7 характеризуются среди ПЛИС нового поколения наименьшими значениями потребляемой мощности и низкой стоимостью, поэтому ориентированы на применение в составе серийно выпускаемой аппаратуры. ПЛИС этой линейки наиболее эффективно подходят для реализации проектируемых устройств, выполняемых в настоящее время на базе кристаллов серий Spartan-3 и Spartan-6.
В составе серии Artix-7 предполагается выпуск пяти типов кристаллов, содержащих от 17 920 до 352 320 логических ячеек (Logic Cells). Сведения об основных функциональных возможностях ПЛИС серии Artix-7 представлены в таблице 1, которая содержит данные об объеме доступных ресурсов различного типа. Эту серию условно можно разбить на два семейства, по аналогии с линейкой ПЛИС Spartan-6. К первому семейству относятся кристаллы XC7A20, XC7A40 и XC7A105, которые не содержат высокоскоростных приемопередатчиков и аппаратных блоков интерфейса PCI Express. Второе семейство представлено двумя типами ПЛИС — XC7A175T и XC7A355T, в состав которых входят четыре высокоскоростных приемопередатчика RocketIO типа GTP, поддерживающие скорости приема и передачи данных до 3,75 Гбит/с, и аппаратный блок интерфейса PCI Express, соответствующий спецификации PCI Express Base 2.1 Specification (Gen1) с поддержкой скорости передачи данных 2,5 Гбит/с.
Информация о корпусном исполнении каждого типа ПЛИС серии Artix-7, с указанием количества доступных высокоскорост-
Тип кристалла Тип корпуса ПЛИС
CPG236 CSG324 CSG484 FTG256 FGG484 FGG 784
10×10 мм 15×15 мм 19×19 мм 17×17 мм 23×23 мм 29×29 мм
Количество высокоскоростных приемопередатчиков RocketIO GTP Число пользовательских выводов Количество высокоскоростных приемопередатчиков RocketIO GTP Число пользовательских выводов Количество высокоскоростных приемопередатчиков RocketIO GTP Число пользовательских выводов Количество высокоскоростных приемопередатчиков RocketIO GTP Число пользовательских выводов Количество высокоскоростных приемопередатчиков RocketIO GTP Число пользовательских выводов Количество высокоскоростных приемопередатчиков RocketIO GTP Число пользовательских выводов
XC7A20 – 100 – – – – – 100 – – – –
XC7A40 – 140 – 200 – – – 170 – – – –
XC7A105 – 140 – 210 – 285 – – – 300 – –
XC7A175T – – – 210 4 285 – – – 325 450
XC7A355T – – – – 4 285 – – – 325 450
ных последовательных приемопередатчиков RocketIO типа GTP и пользовательских входов/выходов, приведена в таблице 2. Судя по этой таблице, в кристалле XC7A175T, выпускаемом в корпусах CSG324 и FGG484, а также в ПЛИС XC7A355T в корпусе FGG484 отсутствуют высокоскоростные последовательные приемопередатчики RocketIO GTP. Такое решение объясняется необходимостью обеспечения совместимости по выводам с другими ПЛИС серии Artix-7, которые производятся в указанных корпусах. Все пользовательские выводы кристаллов этой серии поддерживают цифровые сигнальные стандарты с уровнями сигналов до 3,3 В включительно.
Состав и основные характеристики кристаллов программируемой логики серии Kintex-7
ПЛИС серии Kintex-7 отличаются оптимальным соотношением производительности и стоимости. Эта линейка будет представлена пятью типами кристаллов, которые содержат от 30 400 до 406 720 логических ячеек (Logic Cells). Основные параметры ПЛИС этой серии, отражающие сведения о количестве доступных логических и специализированных аппаратных ресурсов каждого типа, представлены в таблице 3.
По сравнению с кристаллами программируемой логики серии Artix-7 ПЛИС линейки Kintex-7 обладают более высокой концентрацией секций цифровой обработки сигналов DSP48E1 и модулей двухпортовой блочной памяти Block RAM. Кроме того, каждый кристалл серии Kintex-7 содержит модифицированные последовательные высокоскоростные приемопередатчики RocketIO типа GTX, которые поддерживают скорость приема и передачи данных до 10,3125 Гбит/с. В составе каждой ПЛИС указанной серии присутствует аппаратный модуль интерфейса PCI Express, который соответствует спецификации PCI Express Base Specification Revision 2.1 (Geni, Gen2) и поддерживает скорости передачи данных 2,5 и 5 Гбит/с соответственно.
Блоки ввода/вывода кристаллов серии Кп:ех-7 подразделяются на две группы. В первую группу входят блоки ввода/вывода, поддерживающие цифровые сигнальные стандарты с уровнями сигналов до 3,3 В. Ко второй группе относятся блоки ввода/вывода, в которых предусмотрена поддержка только низковольтных цифровых сигнальных стандартов с уровнями сигналов до 1,8 В.
Информация о применяемых разновидностях корпусов для каждого типа кристалла программируемой логики серии Кт:ех-7, с указанием количества доступных пользовательских выводов, поддерживающих сиг-
нальные стандарты с максимальными уровнями 1,8 и 3,3 В, и последовательных приемопередатчиков RocketIO GTX, приведена в таблице 4.
Состав и основные характеристики ПЛИС серии Virtex-7
Кристаллы программируемой логики серии Virtex-7 из всей совокупности ПЛИС нового поколения обладают максимальным объемом логических и специализированных аппаратных ресурсов, включающих в себя секции цифровой обработки сигналов, сверхскоростные последовательные приемопередатчики и модули интерфейса PCI Express. Максимальный объем ресурсов различного типа и производительность представителей линейки Virtex-7 более чем в два раза превосходят аналогичные показатели серии Virtex-6 [5-16]. Поэтому кристаллы этой серии могут рассматриваться в качестве перспективной элементной базы для реализации сверхпро-изводительных телекоммуникационных устройств и систем.
В составе серии Virtex-7 первоначально планируется выпуск двух семейств ПЛИС — Virtex-7 T и Virtex-7 XT. Наиболее заметные различия в архитектуре кристаллов этих семейств — тип применяемых высокоскоростных последовательных приемопередатчиков и совокупность цифровых сигнальных
Таблица 3. Основные параметры ПЛИС серии Kintex-7
Тип ресурсов ПЛИС Тип кристалла
XC7K30T XC7K70T XC7K160T XC7K325T XC7K410T
Логические ресурсы Количество секций (Slices) 4750 10 550 25 350 50 950 63 550
Общее число триггеров CLB 38 000 84 400 202 800 407 600 508 400
Число логических ячеек (Logic Cells) 30 400 67 520 162 240 326 080 406 720
Ресурсы памяти Объем распределенной памяти (1К = 1024 бит) 413K 838K 1938K 4000K 5663K
Количество модулей блочной памяти (Block RAM) емкостью 36 кбит 65 135 225 445 795
Объем блочной памяти (1К = 1024 бит) (Block RAM) 2340K 4860K 8100K 16 020K 28620K
Модули синхронизации Количество блоков управления синхронизацией (Clock Management Tiles, CMT) 8 10 10
Число модулей управления синхронизацией (Mixed-Mode Clock Managers, MMCM) 8 10 10
Встроенные специализи- рованные аппаратные модули Число аппаратных секций цифровой обработки сигналов DSP48E1 120 240 400 840 1540
Число аппаратных модулей PCI Express 1 1 1
Количество аппаратных блоков HMAC 1 1 1
Число высокоскоростных последовательных приемопередатчиков RocketIO GTX 8 16 16
Количество аналого-цифровых блоков XADC – – 1 1 1
Ресурсы ввода/вывода Максимальное число пользовательских выводов 150 300 400 500 500
Максимальное число дифференциальных пар выводов 72 144 192 240 240
Поддерживаемые стандарты сигналов ввода/вывода 1) LVCMOS (3,3; 2,5; 1,8; 1,5 и 1,2 В), HSTL I (1,8 и 1,5 В), HSTL II (1,8 и 1,5 В), Diff HSTL I (1,8 и 1,5 В), Diff HSTL II (1,8 В), LVDS, Mini LVDS, PPDS, RSDS (pt-to-pt), SSTL_I (1,8 В), SSTL_II (1,8 В), SSTL (1,5 и 1,35 В), PCI, TMDS; 2) LVCMOS (1,8; 1,5 и 1,2 В), SSTL I (1,8 В), SSTL I DCI (1,8 В), SSTL_II (1,8 В), SSTL_II_DCI (1,8 В), SSTL_II_T_DCI (1,8 В), DIFF SSTL II T DCI (1,8 В), DIFF SSTL I (1,8 В), DIFF SSTL I DCI (1,8 В), DIFF SSTL II (1,8 В), DIFF SSTL II DCI (1,8 В), HSTL I (1,8; 1,5 и 1,2 В), HSTL I DCI (1,8 и 1,5 В), HSTL II (1,8 и 1,5 В), HSTL II DCI (1,8 и 1,5 В), HSTL II T DCI (1,8 и 1,5 В), DIFF HSTL II T DCI (1,8 и 1,5 В), DIFF HSTL I (1,8 и 1,5 В), DIFF HSTL I DCI (1,8 и 1,5 В), DIFF HSTL II (1,8 и 1,5 В), DIFF HSTL II DCI (1,8 и 1,5 В), LVDCI (1,8 и 1,5 В), HSTLVDCI (1,8 и 1,5 В), LVDCI DV2 (1,8 и 1,5 В), SSTL (1,5 и 1,35 В), SSTL DCI (1,5 и 1,35 В), DIFF SSTL (1,5 и 1,35 В), DIFF SSTL dci (1,5 и 1,35 В), DIFF SSTL T DCI (1,5 и 1,35 В).
Варианты быстродействия ПЛИС Варианты быстродействия для коммерческого исполнения -L1, -1, -2, -3 -L1, -1, -2, -3 -L1, -1, -2, -3 -L1, -1, -2, -3 -L1, -1, -2, -3
Варианты быстродействия для промышленного исполнения -L1, -1, -2 -L1, -1, -2 -L1, -1, -2 -L1, -1, -2 -L1, -1, -2
Конфигурационная память Объем конфигурационной памяти, Мбит 11,6 23,2 45,1 88,2 122,0
Таблица 4. Типы корпусного исполнения ПЛИС серии Kintex-7
0 « IX * 1— Тип корпуса ПЛИС
SBG324 FBG484 FBG676 FBG900 FFG676 FFG900
15×15 мм 23×23 мм 27×27 мм 31×31 мм 27×27 мм 31×31 мм
Количество высокоскоростных приемопередатчиков RocketIO GTX Число пользовательских выводов, совместимых с 3,3 В Число пользовательских выводов, совместимых с 1,8 В Количество высокоскоростных приемопередатчиков RocketIO GTX Число пользовательских выводов, совместимых с 3,3 В Число пользовательских выводов, совместимых с 1,8 В Количество высокоскоростных приемопередатчиков RocketIO GTX Число пользовательских выводов, совместимых с 3,3 В Число пользовательских выводов, совместимых с 1,8 В Количество высокоскоростных приемопередатчиков RocketIO GTX Число пользовательских выводов, совместимых с 3,3 В Число пользовательских выводов, совместимых с 1,8 В Количество высокоскоростных приемопередатчиков RocketIO GTX Число пользовательских выводов, совместимых с 3,3 В Число пользовательских выводов, совместимых с 1,8 В Количество высокоскоростных приемопередатчиков RocketIO GTX Число пользовательских выводов, совместимых с 3,3 В Число пользовательских выводов, совместимых с 1,8 В
XC7K30T 100 50 4 100 50 – – – – – – – – – – –
XC7K70T 114 50 4 185 100 8 200 100 – – – – – – – –
XC7K160T – – – 4 185 100 8 250 150 – – – 8 250 150 – – –
XC7K325T – – – – – – 8 250 150 16 350 150 8 250 150 16 350 150
XC7K410T – – – – – – 8 250 150 16 350 150 8 250 150 16 350 150
Таблица 5. Основные параметры ПЛИС семейства Virtex-7 T
Тип ресурсов ПЛИС Тип кристалла
XC7V285T XC7V450T XC7V585T XC7V855T XC7V1500T XC7V2000T
Логические ресурсы Количество секций (Slices) 44 700 70 450 91 050 133350 229 050 305 400
Общее число триггеров (CLB) 357 600 563600 728 400 1 066 800 1 832 400 2 443 200
Число логических ячеек (Logic Cells) 286 080 450880 582720 853 440 1 465 920 1 954560
Ресурсы памяти Объем распределенной памяти (1К = 1024 бит) 3475K 5388K 6938K 10313K 16 163K 21 550K
Количество модулей блочной памяти (Block RAM) емкостью 36 кбит 410 615 795 1155 969 1292
Объем блочной памяти (1К = 1024 бит) (Block RAM) 14760K 22 140K 28620K 41580K 34884K 46 512K
Модули синхронизации Количество блоков управления синхронизацией (Clock Management Tiles, CMT) 14 14 18 18 18 24
Число модулей управления синхронизацией (Mixed-Mode Clock Managers, MMCM) 14 14 18 18 18 24
Встроенные специализированные аппаратные модули Число аппаратных секций DSP48E1 700 980 1260 1800 1620 2160
Число аппаратных модулей PCI Express 2 3 3 4
Количество аппаратных блоков HMAC 1 1 1 1
Число высокоскоростных последовательных приемопередатчиков RocketIO GTX 28 28 36 36 36 36
Количество аналого-цифровых блоков XADC 1 1 1 1
Ресурсы ввода/вывода Максимальное число пользовательских выводов 700 700 850 850 850 1200
Максимальное число дифференциальных пар выводов 336 336 408 408 408 576
Поддерживаемые стандарты сигналов ввода/вывода 1) LVCMOS (3,3; 2,5; 1,8; 1,5 и 1,2 В), HSTL I (1,8 и 1,5 В), HSTL II (1,8 и 1,5 В), Diff HSTL I (1,8 и 1,5 В), Diff HSTL II (1,8 В), LVDS, Mini LVDS, PPDS, RSDS (pt-to-pt), SSTL I (1,8 В), SSTL II (1,8 В), SSTL (1,5 и 1,35 В), PCI, TMDS; 2) LVCMOS (1,8; 1,5 и 1,2 В), SSTL I (1,8 В), SSTL I DCI (1,8 В), SSTL II (1,8 В), SSTL II DCI (1,8 В), SSTL II T DCI (1,8 В), DIFF SSTL II T DCI (1,8 В), DIFF SSTL I (1,8 В), DIFF SSTL I DCI (1,8 В), DIFF SSTL II (1,8 В), DIFF SSTL II DCI (1,8 В), HSTL I (1,8 В, 1,5 В, 1,2 В), HSTL I DCI (1,8 и 1,5 В), HSTL II (1,8 и 1,5 В), HSTL II DCI (1,8 и 1,5 В), HSTL II T DCI (1,8 и 1,5 В), DIFF HSTL II T DCI (1,8 и 1,5 В), DIFF HSTL I (1,8 и 1,5 В), DIFF HSTL I DCI (1,8 и 1,5 В), DIFF HSTL II (1,8 и 1,5 В), DIFF HSTL II DCI (1,8 и 1,5 В), LVDCI (1,8 и 1,5 В), HSTLVDCI (1,8 и 1,5 В), LVDCI DV2 (1,8 и 1,5 В), SSTL (1,5 и 1,35 В), SSTL DCI (1,5 и 1,35 В), DIFF SSTL (1,5 и 1,35 В), DIFF SSTL dci (1,5 и 1,35 В), DIFF SSTL T DCI (1,5 и 1,35 В).
Варианты быстродействия ПЛИС Варианты быстродействия для коммерческого исполнения -L1, -1, -2, -3 -L1, -1, -2, -3 -L1, -1, -2, -3 -L1,-1,-2,-3 -L1, -1, -2 -L1, -1, -2
Варианты быстродействия для промышленного исполнения -L1, -1, -2 -L1,-1,-2 -L1,-1,-2 -L1, -1, -2 -L1, -1 -L1, -1
Конфигурационная память Объем конфигурационной памяти, Мбит 75,4 115,4 148,4 214,9 314,4 419,1
стандартов, поддерживаемых блоками ввода/вывода. Кроме того, отличия проявляются в функциональных возможностях отдельных блоков, в частности модуля интерфейса PCI Express.
Семейство Virtex-7 T будет представлено шестью типами кристаллов, содержащих от 286 080 до 1 954 560 логических ячеек Logic Cells. Детальная информация об объеме доступных ресурсов различного типа и вариантах быстродействия ПЛИС этого семейства приведена в таблице 5.
В составе всех кристаллов семейства Virtex-7 T используются только модифицированные последовательные высокоскоростные приемопередатчики RocketIO типа GTX, поддерживающие скорости приема и передачи данных до 10,3125 Гбит/с. В составе ПЛИС этого семейства, как и в кристаллах серии Kintex-7, присутствуют блоки ввода/вывода двух видов, отличающиеся совокупностью
Таблица 6. Типы корпусного исполнения ПЛИС семейства Virtex-7 T
Тип кристалла Тип корпуса ПЛИС
FFG 484 FFG 784 FFG1157 FFG1761 FFG1925
23x 23 мм 29×29 мм 35×35 мм 42,5×42,5 мм 45×45 мм
X T ых GT х О о 2 о… 2 8 ов ков S * ыч ват од ве стр ф ф X О лим ое Ки р Число пользовательских выводов, совместимых с 3,3 В Число пользовательских выводов, совместимых с 1,8 В Количество высокоскоростных приемопередатчиков RocketIO GTX Число пользовательских выводов, совместимых с 3,3 В Число пользовательских выводов, совместимых с 1,8 В X T ых GT х О о 2 о… 2 8 ов ков S * ыч ват од ве стр ф ф X О лим ое Ки р Число пользовательских выводов, совместимых с 3,3 В Число пользовательских выводов, совместимых с 1,8 В Количество высокоскоростных приемопередатчиков RocketIO GTX Число пользовательских выводов, совместимых с 3,3 В Число пользовательских выводов, совместимых с 1,8 В Количество высокоскоростных приемопередатчиков RocketIO GTX Число пользовательских выводов, совместимых с 3,3 В Число пользовательских выводов, совместимых с 1,8 В
XC7V285T 8 0 250 12 50 350 20 0 6 О О 28 50 650 – – –
XC7V450T – – – 12 50 350 20 0 6 о о 28 50 650 – – –
XC7V585T – – – – – – 20 0 6 о о 36 100 750 – – –
XC7V855T – – – – – – 20 0 6 о о 36 100 750 – – –
XC7V1500T – – – – – – 20 0 6 о о 36 0 850 – – –
XC7V2000T 36 0 850 16 0 1200
Тип ресурсов ПЛИС Тип кристалла
XC7VX415T XC7VX485T XC7VX575T XC7VX690T XC7VX850T XC7VX865T
Логические ресурсы Количество секций (Slices) 64 400 75 900 90 000 107 800 133 000 135 000
Общее число триггеров (CLB) 515 200 607 200 720 000 862 400 1 064000 1 080 000
Число логических ячеек (Logic Cells) 412 160 485 760 576 000 689 920 851 200 864 000
Ресурсы памяти Объем распределенной памяти (1К = 1024 бит) 6525K 8000K 8850K 10850K 13 125K 13275K
Количество модулей блочной памяти (Block RAM) емкостью 36 кбит 880 1030 1200 1460 1740 1800
Объем блочной памяти (1К = 1024 бит) (Block RAM) 31680K 37080K 43 200K 52 560K 63 360K 64 800K
Модули синхронизации Количество блоков управления синхронизацией (Clock Management Tiles, CMT) 12 14 12 20 18 18
Число модулей управления синхронизацией (Mixed-Mode Clock Managers, MMCM) 12 14 12 20 18 18
Встроенные специализированные аппаратные модули Число аппаратных секций DSP48E1 2160 2800 2640 3600 3960 3960
Число аппаратных модулей PCI Express 4 – 4 4 –
Количество аппаратных блоков HMAC 1 1 1 1 1
Число высокоскоростных последовательных приемопередатчиков RocketIO GTX 24 56 – 56 48 –
Число высокоскоростных последовательных приемопередатчиков RocketIO GTH 24 – 48 24 24 72
Количество аналого-цифровых блоков XADC 1 1 1 1 1
Ресурсы ввода/вывода Максимальное число пользовательских выводов 600 700 600 1000 880 640
Максимальное число дифференциальных пар выводов 288 336 288 480 422 307
Поддерживаемые стандарты сигналов ввода/вывода LVCMOS (1,8; 1,5 и 1,2 В), SSTL I (1,8 В), SSTL I DCI (1,8 В), SSTL II (1,8 В), SSTL II DCI (1,8 В), SSTL II T DCI (1,8 В), DIFF SSTL II T DCI (1,8 В), DIFF SSTL I (1,8 В), DIFF SSTL I DCI (1,8 В), DIFF SSTL II (1,8 В), DIFF SSTL II DCI (1,8 В), HSTL I (1,8; 1,5 и 1,2 В), HSTL I DCI (1,8 и 1,5 В), HSTL II (1,8 и 1,5 В), HSTL II DCI (1,8 и 1,5 В), HSTL II T DCI (1,8 и 1,5 В), DIFF HSTL II T DCI (1,8 и 1,5 В), DIFF HSTL I (1,8 и 1,5 В), DIFF HSTL I DCI (1,8 и 1,5 В), DIFF HSTL II (1,8 и 1,5 В), DIFF HSTL II DCI (1,8 и 1,5 В), LVDCI (1,8 и 1,5 В), HSTLVDCI (1,8 и 1,5 В), LVDCI DV2 (1,8 и 1,5 В), SSTL (1,5 и 1,35 В), SSTL DCI (1,5 и 1,35 В), DIFF SSTL (1,5 и 1,35 В), DIFF SSTL dci (1,5 и 1,35 В), DIFF SSTL T DCI (1,5 и 1,35 В).
Варианты быстродействия ПЛИС Варианты быстродействия для коммерческого исполнения -1,-2,-3 -1, -2,-3 -1, -2 -1, -2,-3 -1, -2 -1, -2
Варианты быстродействия для промышленного исполнения -1, -2 -1, -2 -1 -1, -2 -1 -1
Конфигурационная память Объем конфигурационной памяти, Мбит 126,7 150,3 171,8 211,1 258,8 257,7
Таблица 8. Типы корпусного исполнения ПЛИС семейства Virtex-7 XT
Тип корпуса ПЛИС
FFG1157 FFG1761 FFG1158 FFG1159 FFG1926 FFG1927 FFG1928 FFG1929 FFG1930
35×35 мм 42,5×42,5 мм 35×35 мм 35×35 мм 45×45 мм 45×45 мм 45×45 мм 45×45 мм 45×45 мм
0 0 IX * 1— Количество высокоскоростных приемопередатчиков GTX Количество высокоскоростных приемопередатчиков GTH Число пользовательских выводов, совместимых с 1,8 В Количество высокоскоростных приемопередатчиков GTX Количество высокоскоростных приемопередатчиков GTH Число пользовательских выводов, совместимых с 1,8 В Количество высокоскоростных приемопередатчиков GTX Количество высокоскоростных приемопередатчиков GTH Число пользовательских выводов, совместимых с 1,8 В Количество высокоскоростных приемопередатчиков GTX Количество высокоскоростных приемопередатчиков GTH Число пользовательских выводов, совместимых с 1,8 В Количество высокоскоростных приемопередатчиков GTX Количество высокоскоростных приемопередатчиков GTH Число пользовательских выводов, совместимых с 1,8 В Количество высокоскоростных приемопередатчиков GTX Количество высокоскоростных приемопередатчиков GTH Число пользовательских выводов, совместимых с 1,8 В Количество высокоскоростных приемопередатчиков GTX Количество высокоскоростных приемопередатчиков GTH Число пользовательских выводов, совместимых с 1,8 В Количество высокоскоростных приемопередатчиков GTX Количество высокоскоростных приемопередатчиков GTH Число пользовательских выводов, совместимых с 1,8 В Количество высокоскоростных приемопередатчиков GTX Количество высокоскоростных приемопередатчиков GTH Число пользовательских выводов, совместимых с 1,8 В
XC7VX415T 24 24 320 24 24 6 О О
XC7VX485T 20 0 6 О О 28 0 700 48 0 320 56 0 560 – – –
XC7VX575T 0 48 6 О О
XC7VX690T 48 0 320 24 24 320 48 24 640 24 24 880 – – – 56 24 560 28 0 1000
XC7VX850T 48 24 640 24 24 880
XC7VX865T 640 0 72
поддерживаемых цифровых сигнальных стандартов.
Подробные сведения о линейке корпусов для каждого типа ПЛИС семейства Virtex-7 T с указанием количества доступных высокоскоростных последовательных приемопередатчиков RocketIO типа GTX и пользовательских входов/выходов, соответствующих цифровым сигнальным стандартам с максимальными уровнями сигналов 1,8 и 3,3 В, представлены в таблице 6.
Семейство Virtex-7 XT будет также включать в себя шесть типов ПЛИС, которые содержат от 412 160 до 864 000 логических ячеек (Logic Cells). Кристаллы этого семейства отличаются от ПЛИС семейства Virtex-7 T, прежде всего, наличием сверхскоростных последовательных приемопередатчиков RocketIO типа GTH, которые обеспечивают возможность приема и передачи данных
со скоростью до 13,1 Гбит/с. В ПЛИС семейства Virtex-7 ХТ используются различные комбинации последовательных приемопередатчиков GTX и GTH. Таким образом, разработчику предоставляется возможность выбора кристалла с оптимальным сочетанием приемопередатчиков GTX и GTH для реализации проектируемой системы.
Основные параметры ПЛИС семейства Virtex-7 ХТ, отражающие сведения о количестве доступных логических и специализированных аппаратных ресурсов каждого типа и вариантах быстродействия, содержатся в таблице 7.
При ознакомлении с данными, приведенными в указанной таблице, следует обратить внимание на то, что блоки ввода ПЛИС семейства Virtex-7 ХТ поддерживают только цифровые сигнальные стандарты с максимальными уровнями сигналов до 1,8 В.
Информация о применяемых разновидностях корпусов для ПЛИС семейства Virtex-7 ХТ, с указанием количества доступных пользовательских выводов и высокоскоростных приемопередатчиков RocketЮ типов GTX и GTH, отражена в таблице 8.
Оптимизация энергопотребления кристаллов программируемой логики серий Аг^х-7, К^ех-7 и У^ех-7
Существенная особенность ПЛИС серий АГ!х-7, ИП:ех-7 и Virtex-7 — это значительное снижение уровня потребляемой мощности при сохранении и увеличении производительности по сравнению с соответствующими кристаллами предыдущего поколения. Например, использование ПЛИС серии Ай1х-7 вместо соответствую-
Рис. 3. Изменение плотности тока, протекающего через вентиль, в зависимости от технологических норм при использовании традиционной и HKMG-технологии
щих кристаллов программируемой логики семейств Spartan-6 позволяет в два раза сократить значение потребляемой мощности, повысив при этом производительность реализуемого устройства на 30%. ПЛИС серии Kintex-7 также позволяют получить двукратный выигрыш в энергопотреблении по сравнению с однотипными кристаллами серии Virtex-6.
Снижение значения потребляемой мощности достигается за счет сочетания различных методов. Прежде всего, уменьшение уровня потребления в статическом режиме обусловлено внедрением нового технологического процесса High-K Metal Gate High-Performance Low-Power Process при производстве кристаллов. Необходимость перехода к новому процессу вызвана тем, что в случае использования вентилей, выполненных на основе традиционной Poly/SiON-технологии, при сокращении технологических норм от 45 до 28 нм и далее начинает значительно возрастать плотность тока, протекающего через вентиль (рис. 3). Применение вентилей, основанных на внедрении HKMG-технологии, позволяет добиться снижения значений этого параметра.
Еще одним фактором, оказывающим влияние на сокращение статической и динамической потребляемой мощности, является понижение значения дополнительного питающего напряжения VCCAUX с 2,5 до 1,8 В. Кроме того, в каждой серии ПЛИС нового поколения предусмотрены варианты кристаллов, в которых значение напряжения питания ядра составляет 0,9 В. Дополнительное снижение потребляемой мощности обеспечивает возможность отключения неиспользуемых блоков. Сокращению энергопотребления способствует также поддержка блоками ввода/вывода ПЛИС серий Artix-7, Kintex-7 и Virtex-7 низковольтных интерфейсов памяти и режима энергосбережения.
Для уменьшения значения потребляемой мощности в динамическом режиме фирмой Xilinx предложена методика Intelligent Clock Gating, которая основана на реорганизации используемых логических ресурсов
До применения оптимизации Intelligent Clock Gating
После применения оптимизации Intelligent Clock Gating
CLK
EN
CLK
Gâter
Рис. 4. Использование методики Intelligent Clock Gating для сокращения динамического энергопотребления ПЛИС серий Artix-7, Kintex-7 и Virtex-7
в процессе синтеза проектируемого устройства. Динамическая составляющая энергопотребления ПЛИС прямо пропорциональна частоте переключения сигналов реализуемого устройства. Поэтому в процессе синтеза проектов для последующего размещения и трассировки в кристаллах программируемой логики нового поколения будет выполняться дополнительная оптимизация HDL-описания разрабатываемого устройства, направленная на сокращение количества переключений сигналов с высокой частотой. На рис. 4 показано использование методики Intelligent Clock Gating для снижения мощности, потребляемой ПЛИС серий Artix-7, Kintex-7 и Virtex-7 в динамическом режиме.
Аналого-цифровой блок XADC, применяемый в составе ПЛИС нового поколения
Структура аналого-цифрового блока XADC, входящего в состав кристаллов программируемой логики серий Artix-7, Kintex-7 и Virtex-7, изображена на рис. 5. Основу этой структуры образуют два 12-разрядных аналого-цифровых преобразователя (АЦП) и мультиплексор.ех-7 и Virtex-7
Рис. 6. Структура встраиваемой микропроцессорной системы, включающей аналого-цифровой блок XADC
компонентов устройств цифровой обработки сигналов, реализуемых на базе аппаратного блока XADC, в новой версии системы проектирования Xilinx ISE предусмотрен соответствующий режим «мастера» Architecture Wizard [31].
Аппаратный аналого-цифровой блок XADC можно также применять в составе встраиваемых микропроцессорных систем, выполняемых на базе конфигурируемых 32-разрядных ядер семейства MicroBlaze [32-35] с помощью комплекса средств Xilinx Embedded Development Kit (EDK) [36]. На рис. 6 показан пример встраиваемой
IP2INTC _lrpt <—
32
Блок управления ядра AXIXADC
CONVST OR
Register Logic
Л
\
SYSMON Reset Register
Software Reset Register
Status Register
Reset
Logic
Data Register
Alarm Rigister
16,
■V-
DEN & DWE
Control Logic
Коктроль прерываний
Interrupt Register (GIER)
Interrupt Register (IPISR)
Interrupt Register (IPIER)
I*
Аппаратный
модуль
XADC
CONVST
RESET
JTAGBUSY
JTAGLOCKED
JTAGMODIFIED
BUSY
EOC
EOS
CHANNEL[4:0]
D0[15:0]
ALM[2:0]
ОТ
Dl[15:0] DADDR[6:0]
DEN
DWE
ALM[7:0]
ОТ
EOS
EOC
JTAGLOCKED
JTAGMODIFIED
VAUXN
[15:0]
VAUXP
[15:0]
ALARM
[7:0]
У-*
MUXADDR
[4:0]
7^
Рис. 7. Структура IP-ядра, включающего аналого-цифровой блок XADC
микропроцессорной системы, включающей модуль XADC, которая осуществляет регистрацию и обработку значений аналоговых сигналов с последующей передачей результатов вычислений через сетевой интерфейс. Представленная система может быть реализована на базе кристаллов программируемой логики серий Artix-7, Kintex-7 и Virtex-7, содержащих более 100 000 логических ячеек.
Для эффективного использования аналого-цифрового блока XADC в составе встраиваемых микропроцессорных систем, создаваемых на основе новой версии конфигурируемого 32-разрядного ядра семейства MicroBlaze, предусмотрено соответствующее IP-ядро с интерфейсом AXI4-Lite. Структура этого ядра показана на рис. 7.
Для аналого-цифрового блока XADC предусмотрена возможность осуществления отладочных операций и мониторинга с использованием комплекса средств внутрикристальной отладки цифровых устройств и встраиваемых микропроцессорных систем ChipScope Pro [37].
Новая версия микропроцессорного ядра семейства MicroBlaze для ПЛИС серий Artix-7, Kintex-7 и Virtex-7
Представители всех серий нового поколения кристаллов программируемой логики могут эффективно использоваться для реализации встраиваемых микропроцессорных систем, разрабатываемых на основе конфигурируемых 32-разрядных ядер семейства MicroBlaze с помощью комплекса средств Xilinx Embedded Development Kit (EDK). Для этой цели фирма Xilinx предлагает очередную версию ядра MicroBlaze V8, которая будет представлена в двух вариантах. В первом варианте сохранена поддержка интерфейсов Peripheral Local Bus (PLB) v46, Xilinx CacheLink (XCL) и Fast Simplex Link (FSL). Второй вариант основан на использовании протокола AXI (Advanced eXtensible Interface) Protocol.XI4Stream
TEMAC
AXI Interconnect . Block
GPIO
UARTLITE
Timer
Interrupt
Controller
Flash
Interface
Рис. 9. Пример архитектуры встраиваемой микропроцессорной системы, основанной на использовании интерфейса АХ14
ции, представленной фирмой Xilinx. Поэтому для уточнения конкретных параметров ПЛИС серий Artix-7, Kintex-7 и Virtex-7 рекомендуется обратиться к официальной документации на эти кристаллы, которая должна появиться в следующем году.
Новое поколение ПЛИС, по всей видимости, не ограничится кристаллами, рассмотренными в этой статье. Еще раньше фирмой Xilinx было анонсировано семейство ПЛИС, производимых по технологии 28 нм, в которых будут применяться встроенные аппаратные микропроцессорные ядра с ARM-архитектурой Cortex-A9. Кроме того, планируется выпуск кристаллов, содержащих сверхскоростные последовательные приемопередатчики RocketIO типа TBD, поддерживающие скорость передачи данных до 28 Гбит/с. Более подробная информация об этих кристаллах будет представлена в последующих публикациях. ■
Литература
1. Зотов В. Особенности архитектуры нового поколения высокопроизводительных ПЛИС FPGA
фирмы Xilinx серии Virtex-б // Компоненты и технологии. 2009. № S.
2. Зотов В. Особенности архитектуры нового поколения ПЛИС FPGA фирмы Xilinx серии Spartan-б // Компоненты и технологии. 2009. № 9.
3. Зотов В. Новое семейство высокопроизводительных ПЛИС с архитектурой FPGA фирмы Xilinx Virtex-б HXT // Компоненты и технологии. 2010. № 1.
4. Кузелин М. О., Кнышев Д. А., Зотов В. Ю. Современные семейства ПЛИС фирмы Xilinx / Справочное пособие. М.: Горячая линия -Телеком, 2004.
5. Virtex-б Family Overview. Xilinx, 2009.
6. Virtex-б FPGA Configuration User Guide. Xilinx, 2009.
7. Virtex-б FPGA SelectIO Resources User Guide. Xilinx, 2009.
S. Virtex-б FPGA Clocking Resources User Guide. Xilinx, 2009.
9. Virtex-б FPGA Memory Resources User Guide. Xilinx, 2009.
10. Virtex-б FPGA Configurable Logic Block User Guide. Xilinx, 2009.
11. Virtex-б FPGA GTX Transceivers User Guide. Xilinx, 2009.
12. Virtex-б FPGA Embedded Tri-Mode Ethernet MAC User Guide. Xilinx, 2009.
13. Virtex-б FPGA DSP4SE1 Slice User Guide. Xilinx, 2009.
14. Virtex-б FPGA System Monitor User Guide. Xilinx, 2009.
15. Virtex-б FPGA Data Sheet: DC and Switching Characteristics. Xilinx, 2009.
16. Virtex-б FPGA Packaging and Pinout Specifications. Xilinx, 2009.
17. Spartan-б Family Overview. Xilinx, 2009.
18. Spartan-б FPGA Configuration User Guide. Xilinx, 2009.
19. Spartan-б FPGA SelectIO Resources User Guide. Xilinx, 2009.
20. Spartan-б FPGA Clocking Resources User Guide. Xilinx, 2009.
21. Spartan-б FPGA Block RAM User Guide. Xilinx, 2009.
22. Spartan-б FPGA Configurable Logic Block User Guide. Xilinx, 2009.
23. Spartan-б FPGA GTP Transceivers User Guide. Xilinx, 2009.
24. Spartan-б FPGA Memory Controller User Guide. Xilinx, 2009.
25. Spartan-б FPGA DSP4SA1 User Guide. Xilinx, 2009.
26. Spartan-б FPGA Data Sheet: DC and Switching Characteristics. Xilinx, 2009.
27. Virtex-5 Family Overview. Xilinx, 2008.
28. Virtex-5 FXT Family: Data Sheet. Xilinx, 2008.
29. Virtex-5 FPGA User Guide. Xilinx, 2008.
30. Virtex-5 FPGA System Monitor User Guide. Xilinx, 2008.
31. Зотов В. Разработка компонентов устройств цифровой обработки сигналов, реализуемых на базе аппаратных модулей DSP48E в ПЛИС FPGA серии Virtex-5, с помощью «мастера» Architecture Wizard САПР серии Xilinx ISE // Компоненты и технологии. 2008. № 12. 2009. № 3-7.
32. Зотов В. Проектирование встраиваемых микропроцессорных систем на основе ПЛИС фирмы Xilinx. М.: Горячая линия – Телеком, 200б.
33. Зотов В. MicroBlaze — семейство 32-разрядных микропроцессорных ядер, реализуемых на основе ПЛИС фирмы Xilinx // Компоненты и технологии. 2003. № 9.
34. Зотов В. Система команд микропроцессорного ядра MicroBlaze // Компоненты и технологии. 2004. № 1-3.
35. Зотов В. Организация памяти микропроцессорного ядра MicroBlaze // Компоненты и технологии. 2004. № 5.
36. Зотов В. Embedded Development Kit — система проектирования встраиваемых микропроцессорных систем на основе ПЛИС серий FPGA фирмы Xilinx // Компоненты и технологии. 2004. № 4.
37. Зотов В. Средства внутрикристальной отладки цифровых устройств и встраиваемых микропроцессорных систем, разрабатываемых на базе ПЛИС с архитектурой FPGA фирмы Xilinx-ChipScope Pro // Компоненты и технологии. 2008. № 10.
Курс по ПЛИС фирмы Altera
Актуальность | Идёт набор |
---|---|
Стоимость | По запросу |
Продолжительность | 72 часа |
Группа | от 8 до 10 человек |
Начало занятий | По мере формирования группы |
Цель программы – повышение профессионального уровня работников высокотехнологичных производств в рамках имеющейся квалификации в разработке электронных устройств на базе программируемых логических интегральных схем фирмы Altera.
Обращаем внимание, что ввиду специфики обучения по данному курсу сборные группы не обучаются. Слушатели курса должны быть работниками одной организации или одной отрасли.
Разработка электронных устройств производится с использованием систем автоматизированного проектирования (САПР), выраженное в качественном изменении профессиональных компетенций, необходимых для выполнения следующих видов деятельности:
- разработка, тестирования и отладка эл. устройств с использованием языков проектирования аппаратуры;
- применения современных программируемых интегральных микросхем классов CPLD, FPGA. SOPC;
- выбор методологии и маршрутов проектирования, знакомство с основными возможностями современных САПР.
В результате освоения программы слушатели должны приобрести следующие знания, умения и навыки, необходимые для качественного изменения компетенций, указанных выше.
Результаты освоение курса
Выпускники знают
- основы методики проектирования средств вычислительной техники с использованием языковых средств представления проектов;
- типовые синтаксические конструкции некоторых языков проектирования;
- принципы представления типовых дискретных устройств на языке проектирования аппаратуры;
- архитектуру современных ПЛИС и SOPC, особенности кристаллов фирмы Altera;
- основные возможности систем автоматизированного проектирования фирмы Altera;
Выпускники умеют
- описывать и моделировать специализированные цифровые устройства средней сложности;
- разрабатывать с использованием базовой системы проектирования с привлечением САПР сторонних фирм;
- имплементировать цифровые устройства в микросхемы программируемой логики фирмы Altera;
Выпускники владеют
- ПО для разработки, моделирования и синтеза дискретных устройств на базе их языкового описания;
- навыками разработки эффективных маршрутов проектирования в рамках набора САПР;
- методиками внутрикристальной отладки проектов средствами соответствующих САПР.
Категория слушателей – работники высокотехнологичных производств в рамках имеющейся квалификации в разработке электронных устройств, имеющие высшее профессиональное образование.
Форма обучения – очная, с отрывом от работы.
Учебный план
№ п/п | Наименование разделов | Всего часов | В том числе | |
---|---|---|---|---|
Лекции | Практические и лабораторные занятия | |||
1 | Основы языка VHDL | 34 | 18 | 16 |
2 | Архитектура современных ПЛИС и SOP | 12 | 12 | 0 |
3 | Системы проектирования для ПЛИС | 26 | 12 | 14 |
Итого: | 72 | 42 | 30 | |
Итоговая аттестация | Выполнение проверочной работы |
№ п/п | Наименование разделов | Всего часов | В том числе | |
---|---|---|---|---|
Лекции | Практические и лабораторные занятия | |||
1 | Основы языка VHDL | 34 | 18 | 16 |
1.1 | Краткая характеристика языков проектирования аппаратуры. Принципы интерпретации поведения в моделирующих системах. | 2 | 0 | |
1.2 | Язык VHDL. Базовые концепции языка. Структурное представление проекта. Время, сигналы. Дельта-циклы. | 2 | 4 | |
1.3 | Язык VHDL. Структура программы. Типы данных, операции. | 2 | 2 | |
1.4 | Язык VHDL. Параллельные операторы. | 2 | 2 | |
1.5 | Язык VHDL. Последовательные операторы языка. | 2 | 2 | |
1.6 | Язык VHDL. Описание типовых дискретных устройств. Комбинационные схемы, регистры, счетчики. | 2 | 2 | |
1.7 | Язык VHDL. Описание типовых дискретных устройств (автоматы). Подпрограммы, пакеты. | 2 | 2 | |
1.8 | Язык VHDL. Способы построения операционных устройств: микропрограммные потоковые и конвейерные реализации. | 2 | 2 | |
1.9 | Краткая характеристика других языков. | 2 | ||
2 | Архитектура современных ПЛИС и SOP | 12 | 12 | 0 |
2.1 | Архитектура SPLD. Классификация и обзор рынка PLD(Xilinx, ALTERA, Actel, Atmel,..). | 2 | ||
2.2 | Архитектура FPGA фирмы Altera | 2 | ||
2.3 | Архитектура SOPC фирмы Altera | 2 | ||
2.4 | Архитектура аналоговых ПЛИС. Работа с PSOC. | 4 | ||
2.5 | Тенденции развития и применения архитектуры SOPC. | 2 | ||
3 | Системы проектирования для ПЛИС | 26 | 12 | 14 |
3.1 | Методология проектирования. Маршруты проектирования. | 2 | 2 | |
3.2 | Знакомство с новыми возможностями современных САПР (Quartus II). | 2 | 2 | |
3.3 | JTAC-интерфейс и граничное сканирование. | 2 | 2 | |
3.4 | Современные подходы к тестированию. | 2 | 2 | |
3.5 | Верификации в современных САПР. Внутрикристальная отладка. Signal Tap | 2 | 4 | |
3.6 | Средства структурной реализации распространенных задач ЦОС. | 2 | 2 |
Контактная информация
Запись на курс
Обзор архитектуры ПЛИС семейства Virtex-5 – Компоненты и технологии
Необходимо напомнить, что первые сообщения о работах фирмы Xilinx над переходом на 65-нанометровый техпроцесс появились еще в 2005 году. Уже тогда можно было предположить, что речь идет о дальнейшей модификации серии Virtex. Однако изучение предварительных характеристик анонсированного семейства вызывает желание проанализировать их, не дожидаясь полной технической информации и появления поддержки всех подсемейств в САПР ISE (в настоящее время в ISE 8.2 доступны устройства Virtex-5LX). Необходимо отметить два момента. Во-первых, производители ПЛИС (в первую очередь Xilinx) в последнее время весьма оперативно осваивают новые технологические процессы. Можно повториться, что речь идет об устройствах, выполненных с соблюдением технологических норм 65 нм с медными проводниками и напряжением питания ядра 1,0 В. Достаточно небольшое число производителей полупроводниковых устройств имеет в своем активе подобные технологии, и тот факт, что ПЛИС практически не отстают от заказных микросхем класса high-end, весьма показателен. Во-вторых, после того пакета оригинальных архитектурных решений, который появился в семействе Virtex-4 (архитектура ASMBL, разделение на подсемейства, аппаратные блоки Ethernet, блоки цифровой обработки сигналов DSP48), от 65-нанометрового техпроцесса можно было ожидать скорее некоторого улучшения характеристик уже существующей архитектуры. Однако изменения оказались не просто достойными внимания, а весьма существенными.
Итак, напомним еще раз устройство ПЛИС с архитектурой FPGA. Основой этих микросхем является матрица логических ячеек (Configurable Logic Block, CLB), каждая из которых состоит из логического генератора (таблицы истинности, Look-Up Table, LUT) и триггера. Логические ячейки окружены блоками ввода/вывода, непосредственно подключаемыми к выводам ПЛИС. С учетом современных тенденций в данной области на кристалл помещаются также аппаратные блоки, которые часто используются в практических проектах, но весьма дороги для реализации на базе логических ячеек. Cегодня это блочная память с синхронным интерфейсом и аппаратные умножители независимых целочисленных операндов (часто используемые в алгоритмах цифровой обработки сигналов).
Программируемые логические генераторы
Практически стандартным решением для логического генератора являлась 4-входовая таблица истинности. Ее очевидная реализация — блок памяти 16×1, непосредственно хранящий все возможные варианты состояния выхода в зависимости от комбинаций входных сигналов. Отличительной особенностью FPGA Xilinx является возможность конфигурирования этого блока как обычной синхронной памяти с организацией 16×1, или в виде 16-разрядного сдвигового регистра. Такое решение несколько увеличивает задержки распространения сигналов, и в последних семействах возможностью подобного универсального конфигурирования обладает только половина логических генераторов. Собственно говоря, какие-то изменения в LUT автором статьи ожидались чуть ли не в последнюю очередь. Однако взглянем на рис. 1.
Рис. 1. Структура логической ячейки ПЛИС Virtex-5
Итак, главное изменение более чем кардинально. Логический генератор теперь представляет собой 6-входовую таблицу истинности! Соответственно, она конфигурируется как 32-разрядный сдвиговый регистр или блок памяти с организацией 64×1. То есть добавление новых входов произошло действительно за счет увеличения объема конфигурационной памяти для таблиц истинности (причем в 4 раза!), а не за счет добавления мультиплексоров, что в ряде случаев позволяет получать в пределах логической ячейки устройства комбинаторной логики с числом входов до 8. Однако комбинация «генератор + мультиплексоры» позволяет реализовать не всякую логическую функцию, в отличие от физически увеличенного объема памяти для хранения таблиц истинности.
Значение данного нововведения трудно переоценить. Прежде всего, для сложных проектов существенно уменьшается число последовательно соединяемых логических ячеек, реализующих функцию для большого числа входов. Экономия ячеек при этом не так важна, как важен тот факт, что в цепях комбинаторной логики оказывается в среднем в полтора раза меньше ячеек, что соответственно во столько же раз уменьшает задержку распространения сигнала. Поскольку период тактового сигнала определяется максимальной задержкой внутри кристалла, очевидно, что уменьшение задержки распространения позволяет увеличить тактовую частоту проекта. Разумеется, данный вопрос требует дополнительного исследования и проведения тестов для типичных цифровых узлов, но уже сейчас становится ясно, что имеют место и количественное (65 нм вместо 90), и качественное улучшение (меньшее число последовательно включенных ячеек в цепях распространения сигнала).Что касается увеличения числа входов, то здесь важно обратить внимание на следующий факт. Добавление одного входа увеличивает объем памяти логического генератора в 2 раза. Тем не менее, рост производительности далеко не всегда пропорционален числу входов (многим цифровым узлам достаточно 4 входов), тем более он не пропорционален объему памяти, который возрастает в геометрической прогрессии, а не в арифметической. Соответственно, существует оптимальное число входов, которое при приемлемых затратах на реализацию LUT обеспечивает достаточную их функциональность. Долгое время стандартным значением было 4 входа, и переход к 6 входам заслуживает самого пристального внимания. Достаточно сравнить такое решение, к примеру, с 5-входовыми таблицами истинности, которые требуют в 2 раза меньше памяти, но имеют всего на один вход меньше. Насколько значимым окажется выигрыш от добавления одного входа? Будут ли цифровые узлы, в полной мере задействующие возможности новых ПЛИС, достаточно эффективными и востребованными в практических проектах, чтобы 6-входовые таблицы истинности оправдали свое применение? Можно подчеркнуть, однако, что серия Virtex в последнее время концентрирует в себе наиболее производительные решения в области цифровой схемотехники и системной архитектуры, поэтому решение конструкторов Xilinx остановиться именно на 6-входовых LUT вполне оправданно. Кроме того, FPGA состоит не только из конфигурационной памяти таблиц истинности, поэтому удельный вес дополнительных ресурсов в конечном итоге не так уж велик. Достаточно посмотреть на соотношение распределенной памяти (ее объем соответствует значениям, хранящимся в LUT) и общего объема конфигурационного потока, загружаемого в ПЛИС. Нетрудно убедиться, что «учетверение» коснулось относительно небольшого участка кристалла.
Какие конкретно выгоды получает разработчик от 6-входовой LUT? Обратим внимание на то, что базовая организация блочной памяти соответствует 18-разрядным данным. Такую же разрядность входных операндов имеют и выделенные умножители современных FPGA. Соответственно, программируемые логические ресурсы часто решают задачи управления высокопроизводительными блоками DSP путем формирования вспомогательных сигналов, включающих и выключающих счет, переключающих режимы и т. п. Часто это происходит именно на основании анализа значений операндов, циркулирующих в блочных ресурсах. Итого, для вычисления некоторой логической функции от 18-разрядного числа требуется не менее пяти 4-входовых LUT, или всего три 6-входовых! Для сравнения: три 5-входовые LUT имеют только 15 входов. Таким образом, новая организация логических генераторов вполне обоснована. К этому можно добавить, что для объединения выходов пяти 4-входовых LUT в общем случае недостаточно еще одной 4-входовой ячейки (!), и в ряде случаев это может приводить к формированию чрезмерно длинных цепочек из логических ячеек и цепей трассировки. Данная проблема не фатальна (к тому же в большинстве случаев САПР удается решить задачу объединения выходов LUT с помощью встроенных мультиплексоров логических ячеек), но тем не менее 6-входовые LUT даже формально могут сформировать результат вычисления комбинаторного выражения с помощью меньшего числа уровней.
Работа с семейством Virtex-5 стала возможной в САПР ISE 8.2, которая уже выпущена (несмотря на то, что сами ПЛИС пока недоступны). Для иллюстрации рассуждений, приведенных выше, рассмотрим пример реализации 18-разрядного компаратора двоичного значения (устройство, выдающее на выходе логическую единицу, если комбинация на входе равна некоторой константе). Подобные устройства достаточно характерны для целого ряда цифровых устройств, в том числе для цифровой обработки сигналов и конфигурируемых процессоров. Оба этих класса устройств способны эффективно использовать 18-разрядную память, и уменьшение задержек при операциях с числами такой разрядности весьма положительно сказывается на их характеристиках.
Итак, тестирование 18-разрядного устройства сравнения с константой дает предсказуемые результаты: ПЛИС Virtex-4 требует для его реализации 6 LUT, тогда как Virtex-5 — всего 4. Кроме того, задержка распространения сигнала (maximum pin delay) также существенно уменьшилась: с более чем 3 нс у Virtex-4 до 1,075 нс у Virtex-5. Как уже отмечалось, этот эффект достигается не только за счет экстенсивных мер (перехода к 65-нанометровому техпроцессу), но и за счет более компактной реализации логических функций. Тестирование возможностей Virtex-5 в более сложных проектах с большим числом сложных логических выражений также подтверждает, что наблюдается 25–30%-ное уменьшение числа логических уровней.
На рис. 2 проиллюстрирована проблема, связанная с увеличением числа уровней логики. Показано распространение сигнала от выхода первого триггера к входу второго. При этом сигнал последовательно проходит через 2 LUT, получая в каждой задержку tπ. Кроме того, при прохождении по трассировочным цепям добавляется задержка tтр. Чем большее число LUT будет вовлечено в процесс обработки, тем больше времени придется выделить на распространение сигнала до входа следующего триггера. Время распространения сигнала в самой длинной цепи определяет минимально допустимый период тактового сигнала, следовательно, даже для ПЛИС с высокой максимальной тактовой частотой возможна ситуация, когда слишком сложные логические выражения приведут к использованию большого числа последовательно соединяемых LUT, что сильно снизит реальную частоту проекта.
Рис. 2. Иллюстрация к проблеме увеличения числа уровней логики
Можно также обратить внимание на материалы сайта Xilinx, иллюстрирующие переход к памяти, состоящей из 64 ячеек вместо 16. Для предыдущих семейств требовалось 4 блока, объединяемых к тому же двумя уровнями мультиплексоров (что вносило дополнительную задержку и вызывало необходимость использования дополнительных мультиплексоров). В семействе Virtex-5 блок памяти 64×1 реализуется в единственной LUT, что исключает проблемы, связанные с объединением блоков. Таким образом, «минимальный размер» распределенной памяти увеличился ровно в 4 раза.
Блочная память
Изменения коснулись не только распределенной (рис. 3), но и блочной памяти (рис. 4). Объем базового блока увеличен ровно в 2 раза и составляет теперь 36 Кбит. Тем не менее, каждый блок может быть использован как два независимых блока по 18 Кбит. Дополнительно в составе блока присутствуют цепи, облегчающие построение модулей FIFO (очередей) и устройства коррекции ошибок. Логика FIFO обеспечивает флаги «FIFO полон», «FIFO пуст», а также флаги «FIFO почти полон» и «FIFO почти пуст» с программируемыми порогами срабатывания. Память может использоваться с шириной данных от 1 до 72 разрядов. В 72-разрядном варианте доступен только так называемый «простой двухпортовый режим», в котором один порт используется для чтения, а другой — для записи. В остальных вариантах доступен «истинный двухпортовый режим», при котором оба порта могут использоваться как для чтения, так и для записи. Частота работы блочной памяти достигает 550 МГц, а ее объем10 Мбит.
Рис. 3. Изменения в реализации распределенной памяти
Рис. 4. Блочная память
Качественные изменения, произошедшие в способе организации блочной памяти, соответствуют общей тенденции увеличения пиковой пропускной способности интерфейсов обмена между памятью и арифметическими устройствами. Не секрет, что в микропроцессорной технике пропускная способность подсистемы памяти является одной из важнейших характеристик, и слишком низкое ее значение может существенно ухудшить показатели системы даже при наличии высокопроизводительного процессора. В этой связи устройства на базе ПЛИС находятся в достаточно выгодной ситуации, поскольку каждый из блоков внутренней памяти доступен независимо, к тому же большое количество программируемых выводов позволяет реализовать параллельный доступ к нескольким устройствам внешней памяти. По некоторым оценкам, суммарная пропускная способность устройств Virtex-5 составляет 389 Гбит/с! Это весьма впечатляющая цифра, позволяющая позиционировать ПЛИС этого семейства в качестве аппаратной платформы для высокопроизводительных параллельных вычислений. Вообще говоря, в подобном качестве успешно выступали и ПЛИС Virtex-4, однако по оценке производителя они имеют в 4,4 раза меньшую пропускную способность памяти.
Аппаратные умножители — блоки DSP48E
С блочной памятью обычно ассоциированы аппаратные умножители. Точнее говоря, такое соответствие наблюдалось в семействах Virtex-II/II Pro, где число блоков памяти было строго равно числу умножителей. Подразумевалось, что память хранит коэффициенты цифровых фильтров. Однако с увеличением уровня интеграции и распространением софтпроцессоров появилась возможность реализовать на том же кристалле не только блоки цифровой обработки сигналов, но и управляющий процессор (например, MicroBlaze), который также требует памяти для хранения программы и данных. Поэтому по мере увеличения общей емкости ПЛИС количество блоков памяти растет быстрее, чем количество блоков DSP.
Структурная схема блока цифровой обработки сигналов показана на рис. 5. В этом блоке также были сделаны изменения. Прежде всего, вместо умножения двух 18-разрядных операндов стало доступно перемножение 25-разрядного числа на 18-разрядное. Аккумулятор заменен 48-разрядным сумматором-вычитателем. Введена возможность каскадирования с получением 96-разрядного результата (что достаточно важно для ряда современных алгоритмов корреляционной обработки). Кроме того, возможно каскадирование блоков DSP с применением выделенных трассировочных ресурсов в пределах одной колонки. Наконец, добавлен независимый 48-разрядный вход и возможность суммирования трех операндов в пределах одного блока. Остается упомянуть повышение тактовой частоты до 550 МГц (500 МГц у Virtex-4) и примерно 40%-ное снижение потребляемой мощности по сравнению с тем же Virtex-4. Таким образом, можно сказать, что кроме очевидных преимуществ современного технологического процесса имеют место качественные улучшения, связанные с применением новой архитектуры блока.
Рис. 5. Блок DSP48E
Трассировочные ресурсы
Программируемые соединения различных типов, имеющиеся в составе любой ПЛИС, на первый взгляд могут казаться сугубо вспомогательными устройствами. Действительно, все оценки производителей, касающиеся программируемых устройств, используют в основном сведения о числе логических ячеек, реже уточняется объем блочной памяти и прочих выделенных ресурсов. Программируемые соединения при этом упоминаются редко, и считается, что их количество вполне достаточно для формирования на кристалле различных цифровых узлов. Отчасти ситуация обстоит именно так, хотя можно отметить, что практически никогда не удается получить 100%-ного заполнения кристалла FPGA ввиду невозможности провести соединения со всеми без исключения логическими ячейками (не хватит именно свободных трассировочных ресурсов). Сравнительные характеристики проектов на базе дешевой серии Spartan и высокопроизводительной Virtex также подтверждают, что количественный и качественный состав трассировочных линий оказывают прямое влияние на характеристики проектов.
В публикациях, посвященных архитектуре семейства Virtex и сравнительному анализу архитектур основных семейств ПЛИС Xilinx, рассматривались вопросы организации трассировочных ресурсов и типов этих ресурсов. В частности, одним из наиболее эффективных видов трассировочных линий являются короткие локальные связи, соединяющие соседние ячейки. Очевидно, что соединить близко расположенные ячейки по принципу «каждый с каждым» невозможно, и соединения в пределах некоей области могут выполняться путем последовательной передачи сигнала от ячейки к ячейке. В англо-язычной документации для такого элементарного шага используется термин hop. На рис. 6 показана схема соединений базовой ячейки (показана в центре) с соседними, причем цветами выделены ячейки, достижимые за 1, 2 и 3 шага (hops) локальных соединений.
Рис. 6. Схема расположения логических ячеек, доступных за различное число шагов
Изменения в схеме трассировочных ресурсов поясняются достаточно простой формулировкой: diagonal routing. Иными словами, в дополнение к вертикальным и горизонтальным трассировочным линиям, в Virtex-5 предусмотрены диагональные соединения между логическими ячейками. Это весьма интересное решение, которое к тому же обеспечивает существенно лучшие характеристики компактных цифровых узлов (до сотни ячеек). В таблице 1 приведено количество CLB, доступных за 1, 2 и 3 шага трассировки для ПЛИС Virtex-4 и Virtex-5. Видно, что основной выигрыш Virtex-5 получил для двух шагов: вместо 68 ячеек доступно 96 — почти в полтора раза больше. Такое решение существенно повышает привлекательность нового семейства в реальных проектах среднего и большого размера, поскольку в синтетических тестах, обычно имеющих небольшой объем, проблемы трассировки ресурсов зачастую в явном виде не проявляются.
Таблица 1. Число логических ячеек, доступных за фиксированное число шагов в матрице локальных соединений
Блоки формирования тактового сигнала
При работе на высоких частотах формирование тактового сигнала становится весьма ответственной задачей. Кроме задачи быстрого и одновременного распространения тактового сигнала по всему кристаллу требуется решить задачу устранения джиттера, который при таких небольших временах должен измеряться уже сотнями пикосекунд и менее. Даже ранние семейства Virtex имели на кристалле модули цифровой автоподстройки тактового сигнала (DLL — Delay Locked Loop). В семействе Virtex-4 эти модули были заменены на более мощные DCM (Digital Clock Manager) с функциями умножения и деления частоты, сдвига фазы и синхронизации как с внутренним, так и с внешним источниками сигнала обратной связи. Альтернативой DLL является фазовая подстройка частоты (PLL — Phase Locked Loop), обладающая рядом преимуществ. Именно модули PLL и стали добавлением к существующим ресурсам формирования тактового сигнала (рис. 7).
Рис. 7. Формирование тактового сигнала в ПЛИС Virtex-5
Новый вариант модуля формирования тактового сигнала носит название Clock Manager Tile (CMT). На одном кристалле расположено 6 таких блоков, в каждом из которых имеется два устройства DCM (цифровых) и одно устройство PLL (аналоговое). В комбинации с глобальными трассировочными ресурсами для распространения тактового сигнала проекты на базе Virtex-5 могут достигать тактовой частоты 550 МГц.
Состав семейства
ПЛИС Virtex-5, так же как и Virtex-4, разбиты на подсемейства, отличающиеся соотношением логических ресурсов, памяти, блоков DSP, наличием процессорных ядер и высокоскоростных приемопередатчиков. В настоящее время доступно первое из подсемейств — Virtex-5LX. Сведения о нем приведены в таблице 2.
Таблица 2. Ресурсы ПЛИС семейства Virtex-5LX
Примечание: каждая секция Virtex-5 содержит 4 LUT и 4 триггера (в Virtex-4 — 2 LUT и 2 триггера)
Можно заметить, что в связи с «укрупнением» секции действительное число триггеров и LUT в кристалле можно получить, умножив количество секций на 4 (а не на 2). Таким образом, наибольшее количество триггеров, доступное в семействе, — 207 360. Тем не менее, в обозначение ПЛИС входит число 330, которое призвано соответствовать числу логических ячеек. Налицо некоторая путаница, для прояснения которой необходимо обратиться к понятию «стандартная логическая ячейка» и вспомнить архитектуру LUT в Virtex-5. Дело в том, что за понятием «стандартная логическая ячейка» стоит 1 триггер и 4-входовая LUT. Очевидно, что такое же количество связок «триггер + 6-входовая LUT» сможет обеспечить существенно большую функциональность. Для отражения данного факта Xilinx предлагает некую собственную методику пересчета имеющихся 6-входовых LUT в «эквивалентные ресурсы». При этом физически реализованные 207 тыс. ячеек в сочетании с выделенными аппаратными ресурсами рассматриваются как 330 тыс. «эквивалентных». Разумеется, такой подход выглядит неоднозначно и дает повод для критики, поскольку формально число «физических» триггеров в полтора раза меньше числа в обозначении ПЛИС. Однако следует еще раз подчеркнуть, что оценка современных high-end FPGA является достаточно сложным и длительным процессом, где требуется учесть множество факторов. С учетом достаточно высокой цены высокопроизводительных ПЛИС изучение их технических характеристик попросту не может ограничиваться изучением таблицы со сводной информацией. Перед выполнением сложных и высокоскоростных проектов рекомендуется проводить предварительные исследования при помощи пакетов моделирования цифровых устройств (таких как ModelSim) и всесторонне изучить характеристики выбранной ПЛИС до ее непосредственного приобретения.
Производительность
Для оценки производительности ПЛИС Virtex-5 воспользуемся тем же набором синтетических тестов, который был приведен автором в одной из предыдущих публикаций [1] для оценки производительности ПЛИС Virtex предыдущих семейств.
Набор тестов состоит из простого 16-разрядного счетчика, 16-разрядного АЛУ, выполняющего элементарные арифметические и логические операции над двумя операндами, и блока цифровой обработки, выполняющего перемножение 18-разрядных операндов с накоплением в 48-разрядном аккумуляторе. Результаты работы САПР приведены после этапа Translate, который дает верхнюю оценку тактовой частоты без учета задержек на трассировочных линиях. ПЛИС Virtex-5, как и прочие FPGA Xilinx, имеют так называемую speed grade, которая представляет собой интегральную оценку скорости микросхемы. ПЛИС с большим классом допускает большие тактовые частоты.
Можно отметить, что счетчик на Virtex-5 перешагнул барьер в 500 МГц (хотя и всего на 1 МГц), а операции «умножение с накоплением» можно выполнять на частотах 300–400 МГц. В данном тесте использовалась схема синхронного сброса аккумулятора, которая несколько снизила тактовую частоту по сравнению с заявленной производителем частотой 550 МГц, теоретически достижимой на выделенных умножителях (рис. 8).
Рис. 8. Тактовая частота проектов в ПЛИС семейства Virtex-5 (МГц) для различных классов скорости
При практической работе с высокопроизводительными ПЛИС имеет смысл уделять серьезное внимание алгоритмам трассировки и соответствующему размещению отдельных блоков на кристалле. Хорошие результаты получаются при использовании САПР PlanAhead, которая представляет собой один из новых продуктов Xilinx.
Поддержка САПР и отладочные платы
Для быстрого освоения ПЛИС нового семейства фирмой Xilinx выпущена плата ML-501. Платы серии ML-x0x представляют собой удобные средства для начала работы с ПЛИС Virtex. Достаточно обратиться к линейке ML-401/402/403, которая представляет собой весьма удобную платформу для освоения ПЛИС Virtex-4. Платы такого типа имеют большое количество разнообразных периферийных устройств и, что весьма удобно, допускают подключение устройств пользователя с помощью широко распространенных разъемов с шагом 2,5 мм. Внешний вид платы ML-501 показан на рис. 9.
Рис. 9 Внешний вид платы ML-501
- Установлена ПЛИС XC5VLX50FFG676.
- DDR2 SODIMM (256 MB).
- ZBT SRAM (1 MB).
- Flash-ПЗУ (32 MB).
- Контроллер System ACE CF (Compact Flash) для загрузки ПЛИС и работы в качестве твердотельного диска.
- Platform Flash для загрузки ПЛИС.
- SPI Flash.
- Интерфейс JTAG.
- USB.
- PS/2 — клавиатура, мышь.
- Разъем RJ-45 и контроллер локальной сети на 10/100 Мбит/с.
- Порт RS-232.
- 2 аудиовхода — линейный и микрофонный.
- 2 аудиовыхода.
- Выход DVI/VGA.
- Single-Ended and Differential I/O Expansion.
- Набор переключателей (8), кнопок (5) и светодиодов (8).
Подробная информация о новом семействе приведена на сайте фирмы-производителя www.xilinx.com/virtex5, а также по адресу www.plis.ru.
Литература- Тарасов И. Эволюция ПЛИС серии Virtex // Компоненты и технологии. 2005. № 1.
CPLD и FPGA 7-й серии.MOBILE
Соловьев В.
есть в наличии
Как найти в магазине
Этаж: 1 | Шкаф: 17.05 |
Зал: 1 | Полка: 2 |
Нет отзывов о товаре
Популярные книги автора
Реконфигурируемые микроэлектронные устройства | Институт компьютерных наук и технологий Санкт-Петербургский политехнический университет Петра Великого
Международная дополнительная образовательная программаРеконфигурируемые микроэлектронные устройства (архитектура, средства разработки, язык программирования)
Reconfigurable Microelectronic Devices (architecture, development tools, programming language)
Форма обучения: очная.
Режим занятий обучающихся (6 часов в день, не более 5 дней в неделю).
Срок освоения программ: 4 / 144 (кредитов ECTS/часов).
Дисциплины:
1. История и архитектура современных СБИС ПЛ
History of programmable devices and architecture of modern FPGA
2. Современные средства, методики и процедуры проектирования реконфигурируемых микроэлектронных устройств на базе СБИС ПЛ
Modern development tools, methodology, procedures for development and implementation of reconfigurable microelectronic devices based on FPGA
3. Язык описания аппаратных средств Verilog HDL: грамматика, возможности, особенности использования для проектирования реконфигурируемых микроэлектронных устройств на базе СБИС ПЛ
Hardware Description Language (HDL) Verilog: gramma, features and specificity in development and implementation of reconfigurable microelectronic devices based on FPGA
Программа знакомит слушателей:
- с новейшей элементной базой для реализации реконфигурируемых микроэлектронных устройств – Сверх Большими Интегральными Схемами Программируемой Логики (СБИС ПЛ), выпускаемыми фирмами Intel и Xilinx;
- с современными средствами проектирования реконфигурируемых микроэлектронных устройств;
- с современными методиками и процедурами проектирования реконфигурируемых микроэлектронных устройств;
- с современным языком описания аппаратных средств Verilog HDL.
Руководитель программы – Антонов Александр Петрович
Развертывание моделей машинного обучения в FPGA – Azure Machine Learning
- Чтение занимает 7 мин
В этой статье
В этой статье вы узнаете о FPGA и о том, как развернуть модели машинного обучения в Azure FPGA с помощью пакета Python для моделей с аппаратным ускорением из машинное обучение Azure.In this article, you learn about FPGAs and how to deploy your ML models to an Azure FPGA using the hardware-accelerated models Python package from Azure Machine Learning.
Что такое FPGA?What are FPGAs?
ППВМ содержат массив программируемых логических блоков и иерархию настраиваемых взаимоподключений.FPGAs contain an array of programmable logic blocks, and a hierarchy of reconfigurable interconnects. Взаимоподключения позволяют настраивать эти блоки различными способами после производства.The interconnects allow these blocks to be configured in various ways after manufacturing. В отличие от других микросхем, ППВМ обеспечивают сочетание программируемости и производительности.Compared to other chips, FPGAs provide a combination of programmability and performance.
FPGA позволяет достичь низкой задержки при выполнении запросов на вывод в режиме реального времени (или в результате оценки модели).FPGAs make it possible to achieve low latency for real-time inference (or model scoring) requests. Асинхронные запросы (пакетная обработка) не нужны.Asynchronous requests (batching) aren’t needed. Пакетная обработка может повысить задержку, так как необходимо обработать больше данных.Batching can cause latency, because more data needs to be processed. Для реализации модулей обработки нейронных процессоров не требуется пакетирование. Поэтому задержка может быть меньше, чем в сравнении с процессорами ЦП и GPU.Implementations of neural processing units don’t require batching; therefore the latency can be many times lower, compared to CPU and GPU processors.
ППВМ можно перенастроить для различных типов моделей машинного обучения.You can reconfigure FPGAs for different types of machine learning models. Такая гибкость упрощает ускорение приложений на основе наиболее оптимальной точности числовых значений и используемой модели памяти.This flexibility makes it easier to accelerate the applications based on the most optimal numerical precision and memory model being used. Так как ППВМ перенастраиваются, они могут поддерживать актуальные требования быстро меняющихся алгоритмов ИИ.Because FPGAs are reconfigurable, you can stay current with the requirements of rapidly changing AI algorithms.
ПроцессорProcessor | СокращениеAbbreviation | ОписаниеDescription |
---|---|---|
Микросхемы приложенийApplication-specific integrated circuits | ASICASICs | Пользовательские каналы, такие как единицы процессора тензорные Google (ТПУ), обеспечивают максимальную эффективность.Custom circuits, such as Google’s Tensor Processor Units (TPU), provide the highest efficiency. Их нельзя настраивать повторно в случае изменения требований.They can’t be reconfigured as your needs change. |
Программируемые пользователем вентильные матрицыField-programmable gate arrays | FPGAFPGAs | ППВМ (например те, что доступны в Azure) обеспечивают производительность, близкую к микросхемам ASIC.FPGAs, such as those available on Azure, provide performance close to ASICs. Они также гибкие и поддерживают перенастройку для реализации новой логики.They are also flexible and reconfigurable over time, to implement new logic. |
Графические процессорыGraphics processing units | GPUGPUs | Широко применяются для вычислений с использованием ИИ.A popular choice for AI computations. Они обеспечивают возможности параллельной обработки, что позволяет выполнять отрисовку изображений быстрее, чем ЦП.GPUs offer parallel processing capabilities, making it faster at image rendering than CPUs. |
Центральные процессорыCentral processing units | ЦПCPUs | Процессоры общего назначения, производительность которых не подходит для обработки графики и видео.General-purpose processors, the performance of which isn’t ideal for graphics and video processing. |
Поддержка FPGA в AzureFPGA support in Azure
Microsoft Azure – крупнейшая в мире облачная инвестиция в FPGA.Microsoft Azure is the world’s largest cloud investment in FPGAs. Корпорация Майкрософт использует FPGA для оценки глубокой нейронной сети (DNN), ранжирования поиска Bing и ускорения программно-определяемой сети (SDN) для сокращения задержки, при этом освобождая процессоры для других задач.Microsoft uses FPGAs for deep neural networks (DNN) evaluation, Bing search ranking, and software defined networking (SDN) acceleration to reduce latency, while freeing CPUs for other tasks.
FPGA в Azure базируется на устройствах Intel FPGA, которые специалисты по обработке и анализу данных и разработчики используют для ускорения вычислений искусственного интеллекта в реальном времени.FPGAs on Azure are based on Intel’s FPGA devices, which data scientists and developers use to accelerate real-time AI calculations. Эта архитектура с поддержкой ППВМ доступна в Azure и обеспечивает производительность, гибкость и масштабирование.This FPGA-enabled architecture offers performance, flexibility, and scale, and is available on Azure.
Azure FPGAs интегрируется с Машинное обучение Azure.Azure FPGAs are integrated with Azure Machine Learning. Azure может обучить предварительно обученные DNN по FPGA, чтобы масштабировать службу.Azure can parallelize pre-trained DNN across FPGAs to scale out your service. DNN можно предварительно обучить как глубокий характеризатор для переноса обучения или настроить с использованием обновленных весовых коэффициентов.The DNNs can be pre-trained, as a deep featurizer for transfer learning, or fine-tuned with updated weights.
Сценарии & конфигурации в AzureScenarios & configurations on Azure | Поддерживаемые модели DNNSupported DNN models | Региональная поддержкаRegional support |
---|---|---|
+ Классификация образов и сценарии распознавания+ Image classification and recognition scenarios + TensorFlow развертывание (требуется Tensorflow 1. x)+ TensorFlow deployment (requires Tensorflow 1.x) + Оборудование Intel FPGA+ Intel FPGA hardware | -ResNet 50- ResNet 50 -ResNet 152- ResNet 152 -Денсенет-121- DenseNet-121 -ВГГ-16- VGG-16 -SSD-ВГГ- SSD-VGG | -Восточная часть США- East US — Юго-Восточная Азия- Southeast Asia — Западная Европа- West Europe -Западная часть США 2- West US 2 |
Чтобы оптимизировать задержку и пропускную способность, клиент, отправляющий данные в модель FPGA, должен находиться в одном из регионов выше (то, в котором была развернута модель).To optimize latency and throughput, your client sending data to the FPGA model should be in one of the regions above (the one you deployed the model to).
Семейство виртуальных машин Azure содержит Intel АРРИА 10 FPGA.The PBS Family of Azure VMs contains Intel Arria 10 FPGAs. При проверке выделения квоты Azure она будет отображаться как “Стандартная гарнитура виртуальных ЦП”.It will show as “Standard PBS Family vCPUs” when you check your Azure quota allocation. Виртуальная машина PB6 имеет шесть виртуальных ЦП и одно FPGA.The PB6 VM has six vCPUs and one FPGA. Виртуальная машина PB6 автоматически подготавливается Машинное обучение Azure во время развертывания модели в FPGA.PB6 VM is automatically provisioned by Azure Machine Learning during model deployment to an FPGA. Он используется только с МАШИНным обучением Azure и не может выполнять произвольный битстреамс.It is only used with Azure ML, and it cannot run arbitrary bitstreams. Например, вы не сможете зафлэшировать FPGA с битстреамс для шифрования, кодирования и т. д.For example, you will not be able to flash the FPGA with bitstreams to do encryption, encoding, etc.
Развертывание моделей в ППВМDeploy models on FPGAs
Вы можете развернуть модель как веб-службу на FPGA с помощью Машинное обучение Azure модели с аппаратным ускорением.You can deploy a model as a web service on FPGAs with Azure Machine Learning Hardware Accelerated Models. Использование FPGA обеспечивает немалое определение задержки, даже с одним размером пакета.Using FPGAs provides ultra-low latency inference, even with a single batch size.
В этом примере вы создадите граф TensorFlow для предварительной обработки входного изображения, сделайте его характеризатора с помощью ResNet 50 для FPGA, а затем запустите эти функции с помощью классификатора, обученного в наборе данных ImageNet.In this example, you create a TensorFlow graph to preprocess the input image, make it a featurizer using ResNet 50 on an FPGA, and then run the features through a classifier trained on the ImageNet data set. Затем модель развертывается в кластере AKS.Then, the model is deployed to an AKS cluster.
Предварительные требованияPrerequisites
Подписка Azure.An Azure subscription. Если у вас ее нет, создайте учетную запись с оплатой по мере использования (свободные учетные записи Azure не подходят для квоты FPGA).If you do not have one, create a pay-as-you-go account (free Azure accounts are not eligible for FPGA quota).
Установлена рабочая область Машинное обучение Azure и пакет SDK для Машинное обучение Azure для Python, как описано в разделе Создание рабочей области.An Azure Machine Learning workspace and the Azure Machine Learning SDK for Python installed, as described in Create a workspace.
Пакет моделей с аппаратным ускорением:
pip install --upgrade azureml-accel-models[cpu]
The hardware-accelerated models package:pip install --upgrade azureml-accel-models[cpu]
Интерфейс командной строки AzureThe Azure CLI
Квота FPGA.FPGA quota. Отправьте запрос на квотуили выполните команду CLI, чтобы проверить квоту:Submit a request for quota, or run this CLI command to check quota:
az vm list-usage --location "eastus" -o table --query "[?localName=='Standard PBS Family vCPUs']"
Убедитесь, что в куррентвалуе возвращено по меньшей мере 6 виртуальных ЦП.Make sure you have at least 6 vCPUs under the CurrentValue returned.
Определение модели TensorFlowDefine the TensorFlow model
Начните с использования пакета SDK для машинное обучение Azure для Python , чтобы создать определение службы.Begin by using the Azure Machine Learning SDK for Python to create a service definition. Определение службы представляет собой файл, описывающий конвейер графов (входящие данные, характеризатор и классификатор) на основе TensorFlow.A service definition is a file describing a pipeline of graphs (input, featurizer, and classifier) based on TensorFlow. Команда развертывания сжимает определение и графики в ZIP-файл и загружает ZIP-архив в хранилище больших двоичных объектов Azure.The deployment command compresses the definition and graphs into a ZIP file, and uploads the ZIP to Azure Blob storage. DNN уже развернут для запуска в FPGA.The DNN is already deployed to run on the FPGA.
Рабочая область Машинное обучение Azure нагрузкиLoad Azure Machine Learning workspace
import os import tensorflow as tf from azureml.core import Workspace ws = Workspace.from_config() print(ws.name, ws.resource_group, ws.location, ws.subscription_id, sep='\n')
Предварительная обработка образа.Preprocess image. Входными данными для веб-службы являются изображения JPEG.The input to the web service is a JPEG image. Первым шагом является декодирование изображения JPEG и его предварительная обработка.The first step is to decode the JPEG image and preprocess it. Изображения JPEG обрабатываются как строки, а результатом являются десятки, которые будут входными данными для модели ResNet 50.The JPEG images are treated as strings and the result are tensors that will be the input to the ResNet 50 model.
# Input images as a two-dimensional tensor containing an arbitrary number of images represented a strings import azureml.accel.models.utils as utils tf.reset_default_graph() in_images = tf.placeholder(tf.string) image_tensors = utils.preprocess_array(in_images) print(image_tensors.shape)
Загрузите характеризатора.Load featurizer. Инициализируйте модель и загрузите контрольную точку TensorFlow квантованной версии ResNet50 для использования в качестве характеризатора.Initialize the model and download a TensorFlow checkpoint of the quantized version of ResNet50 to be used as a featurizer. Замените “QuantizedResnet50” в фрагменте кода для импорта других глубоких нейронных сетей:Replace “QuantizedResnet50” in the code snippet to import other deep neural networks:
- QuantizedResnet152QuantizedResnet152
- QuantizedVgg16QuantizedVgg16
- Densenet121Densenet121
from azureml.accel.models import QuantizedResnet50 save_path = os.path.expanduser('~/models') model_graph = QuantizedResnet50(save_path, is_frozen=True) feature_tensor = model_graph.import_graph_def(image_tensors) print(model_graph.version) print(feature_tensor.name) print(feature_tensor.shape)
Добавьте классификатор.Add a classifier. Этот классификатор был обучен по набору данных ImageNet.This classifier was trained on the ImageNet data set.
classifier_output = model_graph.get_default_classifier(feature_tensor) print(classifier_output)
Сохранение модели.Save the model. Теперь, когда препроцессор, ResNet 50 характеризатора и классификатор загружены, сохраните граф и связанные с ним переменные в качестве модели.Now that the preprocessor, ResNet 50 featurizer, and the classifier have been loaded, save the graph and associated variables as a model.
model_name = "resnet50" model_save_path = os.path.join(save_path, model_name) print("Saving model in {}".format(model_save_path)) with tf.Session() as sess: model_graph.restore_weights(sess) tf.saved_model.simple_save(sess, model_save_path, inputs={'images': in_images}, outputs={'output_alias': classifier_output})
Сохраняйте входные и выходные десятки, так как они будут использоваться для преобразования модели и запросов вывода.Save input and output tensors as you will use them for model conversion and inference requests.
input_tensors = in_images.name output_tensors = classifier_output.name print(input_tensors) print(output_tensors)
При использовании классификатора по умолчанию в списке доступны следующие модели со следующими моделями выходных данных классификатора для вывода.The following models are available listed with their classifier output tensors for inference if you used the default classifier.
- Resnet50, QuantizedResnet50Resnet50, QuantizedResnet50
output_tensors = "classifier_1/resnet_v1_50/predictions/Softmax:0"
- Resnet152, QuantizedResnet152Resnet152, QuantizedResnet152
output_tensors = "classifier/resnet_v1_152/predictions/Softmax:0"
- Densenet121, QuantizedDensenet121Densenet121, QuantizedDensenet121
output_tensors = "classifier/densenet121/predictions/Softmax:0"
- Vgg16, QuantizedVgg16Vgg16, QuantizedVgg16
output_tensors = "classifier/vgg_16/fc8/squeezed:0"
- Ссдвгг, КуантизедссдвггSsdVgg, QuantizedSsdVgg
output_tensors = ['ssd_300_vgg/block4_box/Reshape_1:0', 'ssd_300_vgg/block7_box/Reshape_1:0', 'ssd_300_vgg/block8_box/Reshape_1:0', 'ssd_300_vgg/block9_box/Reshape_1:0', 'ssd_300_vgg/block10_box/Reshape_1:0', 'ssd_300_vgg/block11_box/Reshape_1:0', 'ssd_300_vgg/block4_box/Reshape:0', 'ssd_300_vgg/block7_box/Reshape:0', 'ssd_300_vgg/block8_box/Reshape:0', 'ssd_300_vgg/block9_box/Reshape:0', 'ssd_300_vgg/block10_box/Reshape:0', 'ssd_300_vgg/block11_box/Reshape:0']
- Resnet50, QuantizedResnet50Resnet50, QuantizedResnet50
Преобразование модели в формат открытого нейронного сетевого обмена (ONNX)Convert the model to the Open Neural Network Exchange format (ONNX)
Прежде чем можно будет выполнить развертывание в FPGA, преобразуйте модель в формат ONNX .Before you can deploy to FPGAs, convert the model to the ONNX format.
Зарегистрируйте модель с помощью пакета SDK и ZIP-файла в хранилище BLOB-объектов Azure.Register the model by using the SDK with the ZIP file in Azure Blob storage. Добавление тегов и других метаданных о модели помогает контролировать обученные модели.Adding tags and other metadata about the model helps you keep track of your trained models.
from azureml.core.model import Model registered_model = Model.register(workspace=ws, model_path=model_save_path, model_name=model_name) print("Successfully registered: ", registered_model.name, registered_model.description, registered_model.version, sep='\t')
Если вы уже зарегистрировали модель и хотите загрузить ее, вы можете получить ее.If you’ve already registered a model and want to load it, you may retrieve it.
from azureml.core.model import Model model_name = "resnet50" # By default, the latest version is retrieved. You can specify the version, i.e. version=1 registered_model = Model(ws, name="resnet50") print(registered_model.name, registered_model.description, registered_model.version, sep='\t')
Преобразуйте граф TensorFlow в формат ONNX.Convert the TensorFlow graph to the ONNX format. Необходимо указать имена десятков входных и выходных данных, чтобы клиент мог использовать их при использовании веб-службы.You must provide the names of the input and output tensors, so your client can use them when you consume the web service.
from azureml.accel import AccelOnnxConverter convert_request = AccelOnnxConverter.convert_tf_model( ws, registered_model, input_tensors, output_tensors) # If it fails, you can run wait_for_completion again with show_output=True. convert_request.wait_for_completion(show_output=False) # If the above call succeeded, get the converted model converted_model = convert_request.result print("\nSuccessfully converted: ", converted_model.name, converted_model.url, converted_model.version, converted_model.id, converted_model.created_time, '\n')
Контейнеризовать и развертывание моделиContainerize and deploy the model
Затем создайте образ DOCKER из преобразованной модели и всех зависимостей.Next, create a Docker image from the converted model and all dependencies. После этого образ DOCKER можно развернуть и создать экземпляр.This Docker image can then be deployed and instantiated. Поддерживаемые целевые объекты развертывания включают службу Azure Kubernetes Service (AKS) в облаке или пограничном устройстве, например Azure Data Box Edge.Supported deployment targets include Azure Kubernetes Service (AKS) in the cloud or an edge device such as Azure Data Box Edge. Вы также можете добавить теги и описания для зарегистрированного образа DOCKER.You can also add tags and descriptions for your registered Docker image.
from azureml.core.image import Image
from azureml.accel import AccelContainerImage
image_config = AccelContainerImage.image_configuration()
# Image name must be lowercase
image_name = "{}-image".format(model_name)
image = Image.create(name=image_name,
models=[converted_model],
image_config=image_config,
workspace=ws)
image.wait_for_creation(show_output=False)
Выведите список образов по тегу и получите подробные журналы для любой отладки.List the images by tag and get the detailed logs for any debugging.
for i in Image.list(workspace=ws):
print('{}(v.{} [{}]) stored at {} with build log {}'.format(
i.name, i.version, i.creation_state, i.image_location, i.image_build_log_uri))
Развертывание в кластере службы Kubernetes AzureDeploy to an Azure Kubernetes Service Cluster
Чтобы развернуть модель в качестве высокомасштабируемой рабочей веб-службы, используйте AKS.To deploy your model as a high-scale production web service, use AKS. Создать новую можно с помощью Машинное обучение Azure пакета SDK, интерфейса командной строки или машинное обучение Azure Studio.You can create a new one using the Azure Machine Learning SDK, CLI, or Azure Machine Learning studio.
from azureml.core.compute import AksCompute, ComputeTarget # Specify the Standard_PB6s Azure VM and location. Values for location may be "eastus", "southeastasia", "westeurope", or "westus2". If no value is specified, the default is "eastus". prov_config = AksCompute.provisioning_configuration(vm_size = "Standard_PB6s", agent_count = 1, location = "eastus") aks_name = 'my-aks-cluster' # Create the cluster aks_target = ComputeTarget.create(workspace=ws, name=aks_name, provisioning_configuration=prov_config)
Развертывание AKS может занять около 15 минут.The AKS deployment may take around 15 minutes. Проверьте, прошло ли развертывание.Check to see if the deployment succeeded.
aks_target.wait_for_completion(show_output=True) print(aks_target.provisioning_state) print(aks_target.provisioning_errors)
Разверните контейнер в кластере AKS.Deploy the container to the AKS cluster.
from azureml.core.webservice import Webservice, AksWebservice # For this deployment, set the web service configuration without enabling auto-scaling or authentication for testing aks_config = AksWebservice.deploy_configuration(autoscale_enabled=False, num_replicas=1, auth_enabled=False) aks_service_name = 'my-aks-service' aks_service = Webservice.deploy_from_image(workspace=ws, name=aks_service_name, image=image, deployment_config=aks_config, deployment_target=aks_target) aks_service.wait_for_deployment(show_output=True)
Развертывание на локальном пограничном сервереDeploy to a local edge server
Все Azure Data Box Edge устройства содержат FPGA для запуска модели.All Azure Data Box Edge devices contain an FPGA for running the model. Только одна модель может быть запущена в FPGA за один раз.Only one model can be running on the FPGA at one time. Чтобы запустить другую модель, просто разверните новый контейнер.To run a different model, just deploy a new container. Инструкции и примеры кода можно найти в этом примере Azure.Instructions and sample code can be found in this Azure Sample.
Использовать развернутую модель.Consume the deployed model
Наконец, используйте пример клиента для вызова образа DOCKER, чтобы получить прогнозы из модели.Lastly, use the sample client to call into the Docker image to get predictions from the model. Пример кода клиента доступен:Sample client code is available:
Образ DOCKER поддерживает gRPC и TensorFlow, обслуживающий API-интерфейс “Predict”.The Docker image supports gRPC and the TensorFlow Serving “predict” API.
Вы также можете скачать пример клиента для TensorFlow.You can also download a sample client for TensorFlow Serving.
# Using the grpc client in Azure ML Accelerated Models SDK package
from azureml.accel import PredictionClient
address = aks_service.scoring_uri
ssl_enabled = address.startswith("https")
address = address[address.find('/')+2:].strip('/')
port = 443 if ssl_enabled else 80
# Initialize Azure ML Accelerated Models client
client = PredictionClient(address=address,
port=port,
use_ssl=ssl_enabled,
service_name=aks_service.name)
Поскольку этот классификатор был обучен в наборе данных ImageNet , сопоставьте классы с легко читаемыми метками.Since this classifier was trained on the ImageNet data set, map the classes to human-readable labels.
import requests
classes_entries = requests.get(
"https://raw.githubusercontent.com/Lasagne/Recipes/master/examples/resnet50/imagenet_classes.txt").text.splitlines()
# Score image with input and output tensor names
results = client.score_file(path="./snowleopardgaze.jpg",
input_name=input_tensors,
outputs=output_tensors)
# map results [class_id] => [confidence]
results = enumerate(results)
# sort results by confidence
sorted_results = sorted(results, key=lambda x: x[1], reverse=True)
# print top 5 results
for top in sorted_results[:5]:
print(classes_entries[top[0]], 'confidence:', top[1])
Очистка ресурсовClean up resources
Чтобы избежать ненужных затрат, очистите ресурсы в следующем порядке: веб-служба, затем изображение, а затем модель.To avoid unnecessary costs, clean up your resources in this order: web service, then image, and then the model.
aks_service.delete()
aks_target.delete()
image.delete()
registered_model.delete()
converted_model.delete()
Дальнейшие действияNext steps
На пути к количественным показателям гибкости информационных систем производственной линии (PLIS)
Аннотация
Гибкость в системах корпоративной информации (EIS) и бизнес-аналитики (BI) резюмируется как оперативность содержания и структурная гибкость в связи с изменяющимися требованиями бизнеса. Мы утверждаем, что производственные линии являются ключевыми факторами гибкости организации, и любое враждебное и дрейфующее поведение может превратить потенциальные возможности в убытки, помимо того факта, что гибкая EIS хорошо интегрирована.Существует множество ИС, разработанных для контроля и мониторинга дрейфующего поведения производственных линий, таких как обнаружение и классификация неисправностей (FDC), статистическое управление процессами (SPC) и системы автоматизации. Они предлагают отличные механизмы обнаружения известных дрейфов; однако реальная проблема заключается в проведении анализа первопричин неизвестных дрейфов. Таким образом, в этой статье мы предлагаем новую категорию ИБ для производственных линий как гибкий PLIS, способный контролировать, обнаруживать, оценивать и прогнозировать потенциальные отклонения для упреждающих мер.Предлагается определение гибкой ИБ для производственной линии с атрибутами качества, выбранными из литературы, стандарта качества программного обеспечения ISO 91261 и особенностей производственной линии. Кроме того, для измерения отклонений в маневренности производственной линии предлагаются общие меры маневренности производственной линии, такие как локальные (LAI) и глобальные (GAI) индексы маневренности. Гибкость в ИБ создается, а не проектируется; поэтому мы также представляем матрицу соответствия наиболее широко используемых архитектур информационных систем (ISA) предлагаемому гибкому PLIS с атрибутами качества.Эта статья завершается проверкой предложенных количественных показателей гибкости для гибкой системы PLIS с использованием данных известного производителя полупроводников.
Ключевые слова
Организационная гибкость
IS agility
Производственная линия IS
Стили архитектуры IS
Рекомендуемые статьи Цитирующие статьи (0)
Просмотреть аннотацию© 2016, IFAC (Международная федерация автоматического управления) Хостинг от Elsevier Ltd.
Рекомендуемые статьи
Цитирование статей
Поразительный современный стеклянный дом – идеальное место для отдыха
Этот пост может содержать партнерские ссылки.Если вы совершите покупку, My Modern Met может получать партнерскую комиссию. Пожалуйста, прочтите наше раскрытие для получения дополнительной информации.
Работая над возрождением некогда почти заброшенной сельской местности в Албании, основатели Mrizi i Zanave Agroturizëm создали поразительное видение, которое смотрит в будущее, сохраняя при этом прошлое. В центре отеля находится современный стеклянный фермерский дом, который выглядит элегантно и гармонично сочетается с окружающей средой. В этом фермерском доме вам предложат потрясающую кухню, приготовленную из местных продуктов, и дизайнерские номера, поэтому вы сразу же захотите забронировать билет в Албанию.
Это сочетание старого и нового было частью видения шеф-повара и основателя Алтина Пренги, когда он начал проект 8 лет назад. Этот фермерский дом, спроектированный Plis Atelier, играет с использованием различных природных текстур. Снаружи традиционная каменная облицовка прерывается двухэтажным панорамным окном в углу здания. Это не только наполняет интерьер светом, но и заявляет о том, что традиции могут быть сохранены, но при этом обновлены.
Перемещаясь внутрь, гостевой комнате придается ощущение тепла с добавлением дерева.Толстые потолочные балки перекликаются с мебелью, поскольку кровать установлена на базе из деревянных бревен. Даже небольшой стол и табуреты отделаны тем же древесным материалом, что придает интерьеру ощущение шикарного обновленного бревенчатого домика.
Ресторан оформлен в том же стиле, с большими панорамными окнами, через которые открывается вид на обширную территорию, окружающую ферму. Здесь небольшие бревна были вырезаны в простые и эффективные потолочные светильники, а обшитые деревом стены и потолок создают уютную атмосферу, способствующую интимной трапезе с друзьями и семьей.
Невероятно, но проживание в этом современном фермерском доме не так дорого, как можно было бы подумать. Стоимость номеров начинается примерно от 50 долларов за ночь, включая завтрак.
Этот потрясающий современный стеклянный фермерский дом находится в сельской местности Албании.
Он включает в себя несколько номеров с уютным интерьером, создающим атмосферу современного бревенчатого коттеджа.
Это действующая ферма, которая является частью Слоу Фуд Албания.
Ресторан отражает архитектуру, в которой сохранены местные традиции, но в современной интерпретации.
Мризи и Занаве Agroturizëm: Веб-сайт | Facebook | Instagram
My Modern Met разрешил размещать фотографии Mrizi i Zanave Agroturizëm.Статьи по теме:
Архитекторы превратили фермерский дом 18-го века в самодостаточный современный дом
Скоро вы сможете переночевать в недавно отреставрированном французском замке XVIII века
Архитекторы превратили пустую крышу в современный дом
Сарай 20-го века превратился в великолепный современный дом, который выставлен на продажу
Шелли Бэй / Моту Кайранги
Шелли Бэй / Моту Кайранги: Генеральный план
Развитие Motu Kairangi представляет собой важную веху для Веллингтона.Он представляет собой один из самых уникальных прибрежных комплексов Новой Зеландии, занимающий более 11 гектаров полуострова Мирамар Веллингтона в окружении нетронутой морской гавани.
Shelly Bay станет одним из самых привлекательных жилых районов Веллингтон-Сити. Предоставление универсального запланированного решения для объекта, ориентированного на предоставление жителям и посетителям поистине уникального опыта.
Shelly Bay станет разнообразным сообществом с более чем 300 жилищами, расположенными в двух бухтах по обе стороны от Shelly Bay Wharf, где есть несколько характерных зданий наследия.Сочетание квартир, таунхаусов и индивидуальных домов создаст множество типологий зданий, подходящих для разных бюджетов и демографических категорий.
Созданный как первое эко-прибрежное поселение Веллингтона, он будет работать в гармонии с природной средой и культурным наследием этого места. Обширная работа над общественными территориями сосредоточена на обеспечении доступных соединений как с пристанью, так и с береговой линией, а также с покрытым кустарником склоном холма.
Четкая и прочная городская структура основана на
(a) соответствующем уровне развития смешанного использования
(b) балансе перепрофилированных существующих зданий и элементов ландшафта и новых современных зданий и общественных объектов
(c) принятия стратегий, которые приведут к желаемому объему и результатам
Участок имеет пять выдающихся ландшафтов и построенных элементов формы, которые составляют основу разработки сайта.Два мыса ограничивают участок с каждого конца. Между этими двумя точками две отдельные бухты будут в основном застроены жилыми помещениями и общественными открытыми пространствами. В центре района находится пристань, которая образует сердце района с коммерческими, культурными, общественными и общественными удобствами.
Городской план устанавливает строгие параметры для обеспечения относительной целостности контекста городской сети. В рамках этих параметров будет достаточная гибкость и высокий уровень свободы для создания разработок, ориентированных на потребителя.
Использование SQL * Plus с Oracle Database Exadata Express Cloud Service
Соединение с SQL * Plus 18c
SQL * Plus 18c может подключаться к Oracle Database Exadata Express Cloud Service. Сетевая безопасность обеспечивается с помощью Oracle Wallet, который можно загрузить из службы базы данных.
1. Загрузите и установите SQL * Plus 18c
- Получите мгновенный клиент SQL * Plus 18c, загрузив пакеты sqlplus и basic для желаемой архитектуры:
Для других платформ загрузите, используя ссылки со страницы Oracle Instant Client.Просмотрите примечание поддержки 2183770.1 на предмет необходимых обновлений.
Меньший пакет «basiclite» может использоваться вместо «базового». Пакет меньшего размера содержит только сообщения об ошибках на английском языке и поддерживает наборы символов Unicode, ASCII и западноевропейских символов.
- Распакуйте пакеты sqlplus и basic (или basiclite) в один и тот же каталог, например, в
C: \ Instantclient_18_5 или / home / myuser / Instantclient_18_5.
В Windows добавьте
C: \ instantclient_18_5
к переменной PATH в разделе «Системные переменные» на панели переменных среды.В Windows 8 к этому можно получить доступ, перейдя в Панель управления> Система> Расширенные настройки системы> Переменные среды. Если у вас установлено несколько версий библиотек Oracle, убедитесь, что новый каталог находится первым в пути.- В Windows установите Visual Studio Redistributable от Microsoft. Для Instant Client 18c и 12.2 установите распространяемый компонент VS 2013. Используйте 64-разрядный или 32-разрядный распространяемый компонент в соответствии с архитектурой вашего Instant Client.
- На платформах, отличных от Windows, создайте символическую ссылку для libclntsh.поэтому, если он еще не существует, например:
компакт-диск / главная / myuser / Instantclient_18_5 ln -s libclntsh.so.18.1 libclntsh.so И установите пути к библиотеке и исполняемому файлу: экспорт LD_LIBRARY_PATH = / home / myuser / Instantclient_18_5: $ LD_LIBRARY_PATH экспорт PATH = / home / myuser / Instantclient_18_5: $ PATH Вместо установки LD_LIBRARY_PATH вы можете создать файл конфигурации ldconfig если нет другого программного обеспечения Oracle, которое будет затронуто: sudo sh -c "echo / home / myuser / Instantclient_18_5> / etc / ld.so.conf.d / oic.conf " sudo ldconfig
Также можно использовать пакеты RPM Linux sqlplus и basic. При этом нет необходимости создавать символическую ссылку libclntsh.so.
2. Включите сетевое подключение Oracle и загрузите клиентский кошелек
- В веб-браузере перейдите к сервисной консоли Exadata Express.
- Если клиентский доступ в настоящее время не включен, щелкните «Включить клиентский доступ» на консоли.
- Щелкните Загрузить учетные данные клиента на консоли, чтобы загрузить
client_credentials.zip
, содержащий ваши учетные данные безопасности и файлы конфигурации сети, которые позволят клиенту получить доступ к вашей облачной базе данных. Сохраните этот zip-файл в безопасном месте. - Создайте подкаталоги
network
иnetwork / admin
в каталоге Instant Client, если они не существуют, и распакуйте туда учетные данные клиента. Например, разархивируйте бумажник, чтобы файлы оказались в каталоге.
C: \ instantclient_18_5 \ network \ admin, / home / myuser / instantclient_18_5 / network / admin
или /usr/lib/oracle/18.5/client64/lib/network/admin
Защитите файлы, чтобы к ним имели доступ только пользователи, авторизованные для подключения к службе Exadata Express. По умолчанию Oracle рекомендует предоставлять разрешения только владельцу файла.
TNS_ADMIN
имя этого каталога.3. Запустите SQL * Plus
См. Создание схем баз данных, если вам нужно создать пользователя.
`Ресурсы Exadata Express
аспирантов Гарвардского университета – ScholarshipCare
Ниже приведены курсы повышения квалификации, предлагаемые Гарвардским университетом. Гарвардский университет занимает первое место в мире среди университетов. Таким образом, окончание этого университета – дело большой чести. В этом университете есть все необходимое оборудование и инструкторы мирового класса, чтобы должным образом выполнять программы магистратуры и воспитывать лучших студентов этого университета.
- Высшее образование
- Афро-американские исследования
- Антропология
- Прикладная математика
- Прикладная математика
- Прикладная физика
- Прикладная физика
- Архитектура, ландшафтная архитектура и градостроительство
- Астрономия
- Биологические и биомедицинские науки
- Биологические науки в стоматологической медицине
- Биологические науки в общественном здравоохранении
- Биология, иммунология
- Биология, молекулярная и клеточная
- Биология, неврология
- Биология, организм и эволюция
- Биология, вирусология
- Биофизика
- Биостатистика
- Биостатистика
- Экономика бизнеса
- Кельтские языки и литературы
- Химическая биология
- Химическая физика
- Химия и химическая биология
- совместных степеней через Гарвардский институт медицинских наук и технологий
- Сравнительная литература
- Компьютерные науки
- Компьютерные науки
- Науки о Земле и планетах
- Восточноазиатские программы
- Экономика
- Инженерные и прикладные науки, Школа
- Технические науки
- Технические науки, биоинженерия
- Технические науки, электротехника
- Технические науки, науки об окружающей среде и инженерия
- Технические науки, материаловедение и машиностроение
- Английский
- Здоровье окружающей среды
- Эпидемиология
- Исполнительное образование
- Кино и визуальные исследования
- Лесное хозяйство
- Генетика и сложные болезни
- Германские языки и литературы
- Глобальное здравоохранение и народонаселение
- Правительство
- Гарвардский комплекс наук о жизни
- Политика здравоохранения
- Политика и управление в области здравоохранения
- История
- История американской цивилизации
- История искусства и архитектуры
- История науки
- Эволюционная биология человека
- Иммунология и инфекционные болезни
- Внутренние азиатские и алтайские исследования
- Совместные и параллельные степени
- Юрис Доктор
- Языкознание
- Магистр архитектуры
- Магистр архитектуры
- Магистр исследований в области дизайна
- Магистр ландшафтной архитектуры
- Магистр ландшафтной архитектуры
- Магистр государственного управления
- Магистр государственного управления / международного развития
- Магистр государственной политики
- Магистр городского планирования
- Магистр архитектуры в области городского дизайна
- Мастер божественности
- Магистр педагогических наук
- Магистр образования – политика и управление образованием
- Магистр образования – высшее образование
- Магистр образования – человеческое развитие и психология
- Магистр образования – Международная образовательная политика
- Магистр образования – язык и грамотность
- Магистр образования – обучение и преподавание
- Магистр образования – разум, мозг и образование
- Магистр образования – профилактика науки и практики / CAS в области консультирования
- Магистр педагогических наук – руководство школой
- Магистр педагогических наук
- Магистр образования – Программа педагогического образования
- Магистр образования, технологий, инноваций и образования
- Магистр ландшафтной архитектуры в городском дизайне
- Магистр права
- Магистр богословских исследований
- Магистр богословия
- Математика Программа
- MBA
- Медицинские науки
- Магистр среднего звена государственного управления
- Ближневосточные исследования
- Музыка
- Ближневосточные языки и цивилизации
- Питание
- Организационное поведение
- Философия
- Физика
- Политическая экономия и правительство
- Психология
- Государственная политика
- Региональные исследования – Россия, Восточная Европа и Центральная Азия
- Религия
- Романские языки и литература
- Санскрит и индийские или тибетские и гималайские исследования
- Школа инженерных и прикладных наук
- Наука, технологии и менеджмент
- Славянские языки и литературы
- Социальная политика
- Общество, человеческое развитие и здоровье
- Социология
- Специальные программы: византиноведение, средневековье
- Статистика
- Системная биология
- Классика
- Новый путь М.D. Программа
<Назад
Окончание Гарвардского университета – это всегда престижно. Но иногда это невозможно. После программ бакалавриата большинство студентов устраиваются на работу и никогда не заканчивают магистерскую программу. Однако программа онлайн-обучения может изменить текущий сценарий. Онлайн-магистерские программы в сфере образования экономят время, и можно одновременно продолжать работу и магистерские программы в образовании. Например, если кто-то заинтересован в онлайн-программе получения степени MBA, он может работать днем и посещать онлайн-классы ночью.Некоторые аккредитованные университеты действительно хороши в онлайн-программах магистратуры MBA. Выпускников, которых они выпускают по онлайн-программам MBA, ценят все. Так что поступить в магистратуру в сфере образования никогда не поздно. Всегда есть возможность получить степень магистра.
Архитектурный квартал Бикон-Хилл | Boston.gov
Архитектурный район Бикон-Хилл был основан в 1955 году и расширен в 1958 и 1963 годах.
ОБНОВЛЕНИЕ COVID-19: Заявки могут быть отправлены по электронной почте с бумажной копией и проверкой заявки, отправленной по почте в Департамент окружающей среды, кабинет 709, мэрия Бостона, 1 Ратушная площадь, Бостон, Массачусетс 02201.
Архитектурная комиссия Бикон-Хилл (BHAC) собирается в третий четверг каждого месяца для рассмотрения предлагаемых внешних изменений. Узнайте о процессе назначения уполномоченного в первоначальном уполномочивающем законодательстве округа. Хотите стать комиссаром? Пожалуйста, проверьте раздел информации о комиссии внизу этой страницы. Если вы видите кнопку «подать заявку онлайн», у нас есть открытие для комиссии, и вы можете подать заявку на нее.
ПРОЦЕСС РАССМОТРЕНИЯ ПРОЕКТА
Все внешние работы, видимые с общественной дороги, подлежат проверке BHAC.
- Чтобы сэкономить время и деньги, ознакомьтесь со Стандартами и критериями округа на ранней стадии процесса планирования.
- Ознакомьтесь со всеми инструкциями и требованиями к документации перед подачей заявки, чтобы убедиться, что она заполнена. Незавершенные заявки не будут добавлены в повестку дня публичных слушаний.
- Подайте заявку заблаговременно до крайнего срока подачи, если она неполная и необходимо предоставить дополнительную или исправленную информацию. Сотрудники
- недоступны для проверки полноты заявок сразу после подачи.
- Не начинайте никаких работ и не покупайте материалы до тех пор, пока вы не получите подтверждение, что ваш проект одобрен Комиссией.
- Когда работы действительно начнутся, обязательно повесьте свой плакат с разрешением рядом с разрешением на строительство на время строительства.
ИСТОРИЯ
Строительство на Бикон-Хилл началось со строительства нового государственного дома, спроектированного знаменитым архитектором Чарльзом Булфинчем и завершенного в 1798 году. Примерно в то же время была создана компания Mount Vernon Proprietors, одна из первых девелоперских компаний в стране. приобрел 18 ½ соток земли западнее Государственного дома под жилую застройку.Резиденции на Бикон-Хилл также демонстрируют работы других известных архитекторов, таких как Ашер Бенджамин, Соломон Уиллард и Александр Пэррис в стилях федерального и греческого возрождения. Во второй половине XIX века в окрестностях также были жилые дома. Некоторые ранние примеры адаптивного повторного использования в Beacon Hill включают преобразование конюшен и каретных домов в чердаки и студии. Вы можете больше узнать о Бикон-Хилл из этой брошюры, посвященной истории этого района.
manfredsteyer / ngx-build-plus: расширить стандартное поведение сборки Angular CLI без извлечения, e.грамм. для угловых элементов
Расширить поведение сборки Angular CLI по умолчанию без извлечения:
- 📄 Расширьте поведение по умолчанию, предоставив частичную конфигурацию , которая просто содержит ваши дополнительные настройки
- 📄 Альтернатива: расширить поведение по умолчанию, предоставив настраиваемую функцию
- 📦 Необязательно: создайте единый комплект (например, для угловых элементов)
- ☑️ Наследуется от конструктора по умолчанию, поэтому у вас те же параметры
- ☑️ Предоставляет схемы для некоторых сложных случаев использования, таких как внешние веб-пакеты. 8.9.0.0
Обновление до версии 8
ng update ngx-build-plus --force
Критические изменения
Версия 7
- Коммутатор
single-bundle
теперь по умолчанию имеет значениеfalse
для согласования с поведением CLI по умолчанию.
Версия 9
-
keepPolyfills
иkeepStyles
по умолчанию имеет значение true, чтобы избежать недоразумений.
Схемы и опции
Опции
-
ng build --single-bundle
: Помещает все, что доступно из основной точки входа, в один пакет.Полифилы, скрипты и стили остаются в своих собственных пакетах, поскольку у потребляющего приложения могут быть их собственные версии.
Схемы
-
нг добавить ngx-build-plus
-
ng g ngx-build-plus: wc-polyfill
: добавляет полифилы веб-компонентов в ваше приложение -
ng g ngx-build-plus: externals
: обновляет ваше приложение для использования внешних веб-пакетов (см. Пример в конце)
Начало работы
Это минимальный пример для начала.Он использует минимальную частичную конфигурацию веб-пакета, которая объединена с CLI. Типичный для всех возможных пользовательских конфигураций веб-пакетов, используемый просто использует DefinePlugin
для создания глобальной константы VERSION
во время сборки.
Вы можете найти показанный здесь пример в образце приложения в папке projects / Getting Started
.
Создайте новый проект Angular с помощью интерфейса командной строки
Добавить ngx-build-plus:
ng добавить ngx-build-plus
Примечание: Если вы хотите добавить его в конкретный подпроект в папке
projects
, используйте переключатель--project
, чтобы указать на него:ng add ngx-build-plus --project Начало работы
Замечание: На этом шаге пакет устанавливается через npm и обновляется файл angular.json, чтобы в вашем проекте использовались пользовательские компоновщики для
ng serve
иng build
.Добавьте файл
webpack.partial.js
в корень вашего (под-) проекта:const webpack = require ('webpack'); module.exports = { плагины: [ новый webpack.DefinePlugin ({ «ВЕРСИЯ»: JSON.stringify («4711») }) ] }
Используйте глобальную переменную VERSION в своем
app.component.ts
:импортировать {Компонент} из '@ angular / core'; объявить const ВЕРСИЯ: строка; @Составная часть({ селектор: 'app-root', templateUrl: './app.component.html ', styleUrls: ['./app.component.css'] }) export class AppComponent { title = 'Версия:' + ВЕРСИЯ; }
Запустите приложение с переключателем
--extra-webpack-config
, указывающим на частичную конфигурацию веб-пакета:ng serve --extra-webpack-config webpack.partial.js -o
Если ваш проект является подпроектом на основе интерфейса командной строки, используйте также переключатель
--project
:ng serve --project Начало работы -o --extra-webpack-config webpack.partial.js
Подсказка : рассмотрите возможность создания сценария npm для этой команды.
Убедитесь, что отображается ВЕРСИЯ, указанная в конфигурации вашего веб-пакета.
ngx-build-plus и Angular Elements
Хотя ngx-build-plus
может использоваться в любой конфигурации Angular, он также поставляется с некоторыми схемами, автоматизирующими некоторые сценарии для Angular Elements. Более подробную информацию можно найти здесь.
Использование плагинов
Плагиныпозволяют вам предоставить некоторый собственный код, который изменяет конфигурацию вашего веб-пакета.В дополнение к этому они также предоставляют предварительную и последующую привязку для задач, которые необходимо выполнить до и после объединения. Это пример плагина:
экспорт по умолчанию { pre (options) { console.debug ('предварительно'); }, config (cfg) { console.debug ('конфигурация'); return cfg; }, post (options) { console.debug ('сообщение'); } }
Поскольку этот плагин написан на TypeScript, вам необходимо его скомпилировать.
Метод config
работает как configHook
(см. Выше).
Чтобы использовать плагин, укажите его представление JavaScript (не файл TypeScript) с помощью переключателя --plugin
:
ng build --plugin ~ dist \ out-tsc \ hook \ plugin
Префикс ~
указывает на текущий каталог. Без этого префикса ngx-build-plus предполагает, что подключаемый модуль является установленным node_module
.
Использование различных стратегий слияния
Вы также можете использовать плагины для реализации различных стратегий слияния.Следующий плагин демонстрирует это:
var merge = require ('webpack-merge'); var webpack = require ('webpack'); export.default = { config: function (cfg) { const strategy = merge.strategy ({ 'плагины': 'добавить' }); стратегия возврата (cfg, { плагины: [ новый webpack.DefinePlugin ({ «ВЕРСИЯ»: JSON.stringify («4711») }) ] }); } }
Чтобы выполнить это, используйте следующую команду:
ng build --plugin ~ мой-плагин.js
Еще раз, ~
сообщает ngx-build-plus, что плагин является не установленным node_module, а локальным файлом.
Расширенный пример: внешние и угловые элементы
Это другой пример использования ngx-build-plus
. Он использует настраиваемую конфигурацию веб-пакета для определения некоторых зависимостей элемента Angular как внешних, которые можно загружать отдельно в браузер и совместно использовать несколькими пакетами.
Если вас не интересует именно этот вариант использования, пропустите этот раздел.
Результат этого описания можно найти в каталоге репозитория sample
.
Создайте новый проект на основе Angular CLI и установите
@ angular / elements
, а также@ webcomponents / custom-elements
, который предоставляет необходимые полифиллы:npm i @ angular / elements --save
Показать компонент как настраиваемый элемент:
импортировать {BrowserModule} из '@ angular / platform-browser'; импортировать {NgModule, Injector} из '@ angular / core'; импортировать {createCustomElement} из '@ angular / elements'; импортировать {AppComponent} из './app.component '; @NgModule ({ импорт: [ BrowserModule ], объявления: [ AppComponent ], провайдеры: [], бутстрап: [], entryComponents: [AppComponent] }) export class AppModule { конструктор (частный инжектор: инжектор) { } ngDoBootstrap () { const elm = createCustomElement (AppComponent, {инжектор: this.injector}); customElements.define ('настраиваемый элемент', вяз); } }
Установить
ngx-build-plus
:При использовании Angular> = 7 и CLI> = 7 вы можете просто использовать
ng add
для установкиngx-build-plus
:нг добавить ngx-build-plus
Если вы используете монорепозиторий, укажите проект, для которого вы хотите установить ngx-build-plus:
нг добавить ngx-build-plus --project myProject
Добавить полифиллы:
ngx-build-plus: wc-polyfill --project myProject
Выполнить внешнюю схему:
ngx-build-plus: externals --project myProject
Это создает частичную конфигурацию веб-пакета в корне вашего проекта:
модуль.