stringtranslate.com

Реконфигурируемые вычисления

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

История

Концепция реконфигурируемых вычислений существует с 1960-х годов, когда в статье Джеральда Эстрина была предложена концепция компьютера, состоящего из стандартного процессора и набора «реконфигурируемого» оборудования. [1] [2] Главный процессор будет управлять поведением реконфигурируемого оборудования. Последний затем будет адаптирован для выполнения конкретной задачи, такой как обработка изображений или сопоставление с образцом , так же быстро, как и выделенное аппаратное обеспечение. Как только задача была выполнена, оборудование можно было настроить для выполнения другой задачи. В результате была создана гибридная компьютерная структура, сочетающая в себе гибкость программного обеспечения и скорость аппаратного обеспечения.

В 1980-х и 1990-х годах в этой области исследований наблюдался ренессанс, когда в промышленности и научных кругах было разработано множество реконфигурируемых архитектур, [3] таких как: Copacobana, Matrix, GARP, [4] Elixent, NGEN, [5] Polyp, [ 6] MereGen, [7] PACT XPP, Silicon Hive, Montium, Pleiades, Morphosys и PiCoGA. [8] Такие конструкции стали возможными благодаря постоянному развитию кремниевых технологий, которые позволяли реализовывать сложные конструкции на одном кристалле. Некоторые из этих реконфигурируемых компьютеров с массовым параллелизмом были созданы в первую очередь для специальных подобластей, таких как молекулярная эволюция, нейронная обработка или обработка изображений. Первый в мире коммерческий реконфигурируемый компьютер Algotronix CHS2X4 был завершен в 1991 году. Он не имел коммерческого успеха, но был настолько многообещающим, что компания Xilinx (изобретатель программируемой вентильной матрицы , FPGA) купила технологию и наняла персонал Algotronix. . [9] Более поздние машины позволили впервые продемонстрировать научные принципы, такие как спонтанная пространственная самоорганизация генетического кодирования с помощью MereGen. [10]

Теории

Классификация Треденника

Фундаментальная модель парадигмы реконфигурируемой вычислительной машины, антимашина, основанная на потоке данных , хорошо иллюстрируется различиями с другими машинными парадигмами, которые были представлены ранее, как показано в следующей схеме классификации вычислительных парадигм Ника Треденника (см. 1: Схема классификации парадигм Ника Треденника»). [11]

Компьютер Хартенштейна

Ученый-компьютерщик Райнер Хартенштейн описывает реконфигурируемые вычисления как антимашину , которая, по его мнению, представляет собой фундаментальный сдвиг парадигмы в сторону от более традиционной машины фон Неймана . [12] Хартенштейн называет это «парадоксом реконфигурируемых вычислений»: миграция программного обеспечения в конфигурируемое (программное обеспечение в FPGA ) приводит к получению ускорения более чем на четыре порядка, а также к снижению потребления электроэнергии на почти на четыре порядка — хотя технологические параметры ПЛИС отстают от кривой Гордона Мура примерно на четыре порядка, а тактовая частота существенно ниже, чем у микропроцессоров. Этот парадокс частично объясняется синдромом фон Неймана .

Высокопроизводительные вычисления

Высокопроизводительные реконфигурируемые вычисления (HPRC) — это компьютерная архитектура , сочетающая реконфигурируемые вычислительные ускорители, такие как программируемая вентильная матрица, с центральными или многоядерными процессорами .

Увеличение логики в FPGA позволило программировать в FPGA более крупные и сложные алгоритмы. Подключение такой FPGA к современному ЦП через высокоскоростную шину, такую ​​как PCI Express , позволило настраиваемой логике действовать скорее как сопроцессор , чем как периферийное устройство . Это привело к появлению реконфигурируемых вычислений в сфере высокопроизводительных вычислений .

Кроме того, копирование алгоритма на FPGA или использование множества FPGA позволило создать реконфигурируемые SIMD- системы, в которых несколько вычислительных устройств могут одновременно работать с разными данными, что представляет собой высокопараллельные вычисления .

Этот метод гетерогенных систем используется в компьютерных исследованиях и особенно в суперкомпьютерах . [13] В документе 2008 года сообщается о коэффициентах ускорения более чем на 4 порядка и коэффициентах энергосбережения почти на 4 порядка. [14] Некоторые фирмы, производящие суперкомпьютеры, предлагают в качестве ускорителей гетерогенные блоки обработки, включая FPGA. [ нужна цитация ] Одной из областей исследований является производительность потока инструментов программирования с двумя парадигмами, полученная для таких гетерогенных систем. [15]

Национальный научный фонд США имеет центр высокопроизводительных реконфигурируемых вычислений (CHREC). [16] В апреле 2011 года в Европе прошла четвертая конференция по многоядерным и реконфигурируемым суперкомпьютерам. [17]

Коммерческие высокопроизводительные реконфигурируемые вычислительные системы начинают появляться после объявления IBM об интеграции FPGA со своими микропроцессорами IBM Power . [18]

Частичная реконфигурация

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

Электронное оборудование , как и программное обеспечение , можно проектировать модульно, создавая подкомпоненты, а затем компоненты более высокого уровня для их создания. Во многих случаях полезно иметь возможность заменить один или несколько из этих подкомпонентов, пока FPGA еще работает.

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

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

Частичная реконфигурация поддерживается не всеми FPGA. Требуется специальный программный поток с упором на модульную конструкцию. Обычно модули проектирования строятся по четко определенным границам внутри FPGA, что требует специального сопоставления проекта с внутренним оборудованием.

По функциональности конструкции частичную реконфигурацию можно разделить на две группы: [20]

Текущие системы

Компьютерная эмуляция

Для воссоздания компьютера Вектор-06С используется плата FPGA.

С появлением доступных плат FPGA проекты студентов и любителей стремятся воссоздать старинные компьютеры или реализовать более новые архитектуры. [21] [22] [23] Такие проекты создаются с использованием реконфигурируемого оборудования (FPGA), а некоторые устройства поддерживают эмуляцию нескольких старинных компьютеров с использованием одного реконфигурируемого оборудования ( C-One ).

КОПАКОБАНА

Компьютер, полностью основанный на FPGA, — это COPACOBANA, оптимизированный по затратам взломщик и анализатор кодов и его преемник RIVYERA. Дочерняя компания SciEngines GmbH проекта COPACOBANA университетов Бохума и Киля в Германии продолжает разработку компьютеров, полностью основанных на FPGA.

Митрионикс

Mitrionics разработала SDK, который позволяет компилировать и выполнять программное обеспечение, написанное с использованием единого языка присваивания, на компьютерах на базе FPGA. Язык программного обеспечения Mitrion-C и процессор Mitrion позволяют разработчикам программного обеспечения писать и выполнять приложения на компьютерах на базе FPGA так же, как и с другими вычислительными технологиями, такими как графические процессоры («GPU»), процессоры на основе ячеек, параллельная обработка. блоки («PPU»), многоядерные процессоры и традиционные одноядерные кластеры процессоров. (из бизнеса)

Национальные инструменты

Компания National Instruments разработала гибридную встраиваемую вычислительную систему под названием CompactRIO . Он состоит из реконфигурируемого шасси, в котором размещается программируемая пользователем FPGA, модули ввода-вывода с возможностью горячей замены, контроллер реального времени для детерминированной связи и обработки, а также графическое программное обеспечение LabVIEW для быстрого программирования RT и FPGA.

Ксилинкс

Компания Xilinx разработала два стиля частичной реконфигурации устройств FPGA: на основе модулей и на основе различий . Частичная реконфигурация на основе модулей позволяет переконфигурировать отдельные модульные части конструкции, тогда как частичная реконфигурация на основе различий может использоваться, когда в конструкцию вносятся небольшие изменения.

Интел

Intel [24] поддерживает частичную реконфигурацию своих устройств FPGA на 28-нм устройствах, таких как Stratix V, [25] и на 20-нм устройствах Arria 10. [26] Процесс частичной реконфигурации Intel FPGA для Arria 10 основан на методологии иерархического проектирования в программном обеспечении Quartus Prime Pro, где пользователи создают физические разделы FPGA, которые можно реконфигурировать [27] во время выполнения, в то время как остальная часть проекта продолжает выполняться. действовать. Программное обеспечение Quartus Prime Pro также поддерживает иерархическую частичную реконфигурацию и моделирование частичной реконфигурации.

Классификация систем

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

Детализация

Детализация реконфигурируемой логики определяется как размер наименьшего функционального блока (конфигурируемого логического блока, CLB), к которому обращаются инструменты сопоставления. Высокая степень детализации, которую также можно назвать мелкозернистой, часто подразумевает большую гибкость при реализации алгоритмов в аппаратном обеспечении. Однако с этим связан штраф в виде увеличения мощности, площади и задержки из-за большего количества маршрутизации, требуемой для каждого вычисления. Детализированная архитектура работает на уровне манипуляций на битовом уровне; в то время как элементы крупнозернистой обработки (реконфигурируемый блок тракта данных, rDPU) лучше оптимизированы для стандартных приложений тракта данных. Одним из недостатков крупнозернистых архитектур является то, что они имеют тенденцию терять часть своего использования и производительности, если им необходимо выполнять меньшие вычисления, чем обеспечивает их степень детализации, например, для добавления одного бита к функциональному блоку шириной в четыре бита будет потрачено три бита. . Эту проблему можно решить, разместив на одном чипе крупнозернистый массив ( реконфигурируемый массив каналов данных , rDPA) и FPGA .

Грубозернистые архитектуры ( rDPA ) предназначены для реализации алгоритмов, требующих путей данных разрядности слова (rDPU). Поскольку их функциональные блоки оптимизированы для больших вычислений и обычно содержат арифметико -логические блоки (АЛУ), они будут выполнять эти вычисления быстрее и с большей энергоэффективностью, чем набор взаимосвязанных меньших функциональных блоков; это связано с тем, что соединительные провода короче, что приводит к меньшей емкости проводов и, следовательно, к более быстрым конструкциям с меньшим энергопотреблением. Потенциально нежелательным последствием использования больших вычислительных блоков является то, что размер операндов может не соответствовать алгоритму, что может привести к неэффективному использованию ресурсов. Часто тип запускаемых приложений известен заранее, что позволяет адаптировать ресурсы логики, памяти и маршрутизации для повышения производительности устройства, сохраняя при этом определенный уровень гибкости для будущей адаптации. Примерами этого являются специализированные массивы, нацеленные на повышение производительности с точки зрения мощности, площади и пропускной способности, чем их более общие, более мелкозернистые собратья FPGA , за счет снижения их гибкости.

Скорость реконфигурации

Настройка этих реконфигурируемых систем может происходить во время развертывания, между этапами выполнения или во время выполнения. В типичной реконфигурируемой системе битовый поток используется для программирования устройства во время развертывания. Мелкозернистые системы по своей природе требуют большего времени на настройку, чем более крупнозернистые архитектуры, поскольку необходимо учитывать и программировать большее количество элементов. Таким образом, более крупномасштабные архитектуры выигрывают от потенциально более низких требований к энергии, поскольку передается и используется меньше информации. Интуитивно понятно, что чем медленнее скорость реконфигурации, тем меньше потребляемая мощность, поскольку соответствующие затраты энергии на реконфигурацию амортизируются в течение более длительного периода времени. Частичная реконфигурация направлена ​​на то, чтобы позволить перепрограммировать часть устройства, в то время как другая часть все еще выполняет активные вычисления. Частичная реконфигурация позволяет уменьшить реконфигурируемые потоки битов, таким образом, не тратя энергию на передачу избыточной информации в потоке битов. Сжатие битового потока возможно, но необходимо провести тщательный анализ, чтобы гарантировать, что энергия, сэкономленная за счет использования меньших битовых потоков, не перевешивается вычислениями, необходимыми для распаковки данных.

Соединение с хостом

Часто реконфигурируемый массив используется в качестве ускорителя обработки, подключенного к главному процессору. Уровень связи определяет тип передачи данных, задержку, мощность, пропускную способность и накладные расходы, возникающие при использовании реконфигурируемой логики. Некоторые из наиболее интуитивно понятных конструкций используют периферийную шину для обеспечения структуры, подобной сопроцессору, для реконфигурируемого массива. Однако были также реализации, в которых реконфигурируемая структура располагалась намного ближе к процессору, а некоторые даже внедрялись в тракт данных с использованием регистров процессора. Работа главного процессора заключается в выполнении функций управления, настройке логики, планировании данных и обеспечении внешнего интерфейса.

Маршрутизация/межсоединения

Гибкость реконфигурируемых устройств в основном обусловлена ​​их маршрутизацией. Один из стилей межсоединений, ставший популярным благодаря производителям FPGA , Xilinx и Altera, представляет собой островную компоновку, при которой блоки располагаются в виде массива с вертикальной и горизонтальной маршрутизацией. Схема с неадекватной маршрутизацией может иметь плохую гибкость и недостаточное использование ресурсов, что приводит к ограничению производительности. Если предусмотрено слишком много межсоединений, это потребует большего количества транзисторов, чем необходимо, и, следовательно, большей площади кремния, более длинных проводов и большего энергопотребления.

Проблемы для операционных систем

Одной из ключевых задач реконфигурируемых вычислений является обеспечение более высокой производительности проектирования и предоставление более простого способа использования реконфигурируемых вычислительных систем для пользователей, которые не знакомы с основными концепциями. Один из способов сделать это — обеспечить стандартизацию и абстракцию, обычно поддерживаемые и реализуемые операционной системой. [28]

Одна из основных задач операционной системы — скрыть оборудование и предоставить программам (и их программистам) красивые, чистые, элегантные и последовательные абстракции для работы. Другими словами, две основные задачи операционной системы — это абстракция и управление ресурсами . [28]

Абстракция — это мощный механизм для решения сложных и различных (аппаратных) задач четко определенным и общепринятым способом. Одной из самых элементарных абстракций ОС является процесс. Процесс — это работающее приложение, которое воспринимает (обеспечиваемое ОС) что оно работает само по себе на базовом виртуальном оборудовании. Это можно смягчить с помощью концепции потоков, позволяющей одновременно выполнять различные задачи на этом виртуальном оборудовании для использования параллелизма на уровне задач. Чтобы позволить различным процессам и потокам координировать свою работу, ОС должна предоставлять методы связи и синхронизации. [28]

Помимо абстракции, необходимо управление ресурсами базовых аппаратных компонентов, поскольку виртуальные компьютеры, предоставляемые процессам и потокам операционной системой, должны совместно использовать доступные физические ресурсы (процессоры, память и устройства) пространственно и временно. [28]

Смотрите также

Рекомендации

  1. ^ Эстрин, Г (2002). «Происхождение реконфигурируемого компьютера: компьютер со структурой фиксированных плюс переменных (F + V) Калифорнийского университета в Лос-Анджелесе». IEEE Энн. Хист. Вычислить . 24 (4): 3–9. дои : 10.1109/MAHC.2002.1114865. S2CID  7923912.
  2. ^ Эстрин, Г., «Организация компьютерных систем - компьютер с фиксированной и переменной структурой», Proc. Западная объединенная компьютерная конференция. , Western Joint Computer Conference, Нью-Йорк, 1960, стр. 33–40.
  3. ^ К. Бобда: Введение в реконфигурируемые вычисления: архитектуры; Спрингер, 2007 г.
  4. ^ Хаузер, Джон Р. и Вавжинек, Джон, «Гарп: процессор MIPS с реконфигурируемым сопроцессором», Труды симпозиума IEEE по программируемым пользовательским вычислительным машинам (FCCM '97, 16–18 апреля 1997 г.), стр. 24–33.
  5. ^ Маккаскилл, Джон С.; Хоронгиевски, Харальд; Мекельбург, Карстен; Танген, Уве; Гемм, Удо (1 сентября 1994 г.). «NGEN — Конфигурируемое компьютерное оборудование для моделирования длительной самоорганизации биополимеров». Berichte der Bunsengesellschaft für Physikalische Chemie . 98 (9): 1114. doi :10.1002/bbpc.19940980906. ISSN  0005-9021.
  6. ^ Развивающиеся системы: от биологии к аппаратному обеспечению: вторая Международная конференция ICES 98, Лозанна, Швейцария, 23-25 ​​сентября 1998 г.: материалы . Сиппер, Моше, Манге, Даниэль, 1940 г., Перес-Урибе, Андрес, Международная конференция по эволюционирующим системам (2-я: 1998 г.: Лозанна, Швейцария). Берлин: Шпрингер. 1998. ISBN 978-3-540-64954-0. ОСЛК  39655211.{{cite book}}: CS1 maint: другие ( ссылка )
  7. ^ Соединение биологических и электронных систем: материалы 2-го Цезариума, Бонн, 1-3 ноября 2000 г. Хоффманн, К.-Х. (Карл-Хайнц). Берлин: Шпрингер. 2002. ISBN 978-3-540-43699-7. ОСЛК  49750250.{{cite book}}: CS1 maint: другие ( ссылка )
  8. ^ Кампи, Ф.; Тома, М.; Лоди, А.; Каппелли, А.; Канегалло, Р.; Геррьери, Р., «Процессор VLIW с реконфигурируемым набором команд для встроенных приложений», Конференция по твердотельным схемам, 2003. Сборник технических статей. ISSCC. 2003 IEEE International, том, №, стр. 250–491, том. 1, 2003 г.
  9. ^ История Алготроникса
  10. ^ Фюкслин, Рудольф М.; Маккаскилл, Джон С. (31 июля 2001 г.). «Эволюционная самоорганизация бесклеточного генетического кодирования». Труды Национальной академии наук . 98 (16): 9185–9190. Бибкод : 2001PNAS...98.9185F. дои : 10.1073/pnas.151253198 . ISSN  0027-8424. ПМК 55395 . ПМИД  11470896. 
  11. ^ Н. Треденник: Аргументы в пользу реконфигурируемых вычислений; Отчет о микропроцессоре, Том. 10 № 10, 5 августа 1996 г., стр. 25–27.
  12. ^ Хартенштейн, Р. 2001. Десятилетие реконфигурируемых вычислений: дальновидная ретроспектива. В материалах конференции по проектированию, автоматизации и испытаниям в Европе (ДАТА 2001 г.) (Мюнхен, Германия). В. Небель и А. Джеррая, ред. Проектирование, автоматизация и тестирование в Европе. IEEE Press, Пискатауэй, Нью-Джерси, 642–649.
  13. ^ Н. Ворос, Р. Николаос, А. Рости, М. Хюбнер (редакторы): Динамическая реконфигурация системы на гетерогенных платформах - подход MORPHEUS; Спрингер Верлаг, 2009 г.
  14. ^ Тарек Эль-Газави; и другие. (февраль 2008 г.). «Обещание высокопроизводительных реконфигурируемых вычислений». IEEE-компьютер . 41 (2): 69–76. CiteSeerX 10.1.1.208.4031 . дои : 10.1109/MC.2008.65. S2CID  14469864. 
  15. ^ Эсам Эль-Араби; Иван Гонсалес; Тарек Эль-Газави (январь 2009 г.). «Использование частичной реконфигурации среды выполнения для высокопроизводительных реконфигурируемых вычислений». Транзакции ACM по реконфигурируемым технологиям и системам . 1 (4): 1–23. дои : 10.1145/1462586.1462590. S2CID  10270587.
  16. ^ «Центр высокопроизводительных реконфигурируемых вычислений NSF» . Официальный веб-сайт . Проверено 19 августа 2011 г.
  17. ^ «Конференция по многоядерным и реконфигурируемым суперкомпьютерам». Официальный веб-сайт . 2011. Архивировано из оригинала 12 октября 2010 года . Проверено 19 августа 2011 г.
  18. ^ «Altera и IBM представляют POWER-системы с ускорением FPGA» . HPCwire. 17 ноября 2014 г. Проверено 14 декабря 2014 г.
  19. ^ Ванта, Дамиан; Смолик, Вальдемар Т.; Крышин, Яцек; Врублевский, Пшемыслав; Мидура, Матеуш (2022). «Метод реконфигурации во время выполнения системы электроемкостной томографии на основе FPGA». Электроника . 11 (4): 545. doi : 10.3390/electronics11040545 .
  20. ^ Вишневский, Ремигиуш (2009). Синтез композиционных микропрограммных блоков управления программируемых устройств . Зелёна-Гура: Зелёногурский университет. п. 153. ИСБН 978-83-7481-293-1.
  21. ^ "Apple2 FPGA" . Проверено 6 сентября 2012 г.
  22. ^ Никлаус Вирт. «Проектирование RISC-архитектуры и ее реализация с помощью FPGA» (PDF) . Проверено 6 сентября 2012 г.[ мертвая ссылка ]
  23. ^ Ян Грей. «Проектирование простого RISC-процессора и системы на кристалле, оптимизированного для FPGA» (PDF) . Проверено 6 сентября 2012 г.
  24. ^ «Intel завершает приобретение Altera» . Проверено 15 ноября 2016 г.
  25. ^ «FPGA Stratix V: максимальная гибкость за счет частичной и динамической реконфигурации» . Проверено 15 ноября 2016 г.
  26. ^ «Инструменты и функции повышения производительности программного обеспечения Intel Quartus Prime» . Проверено 15 ноября 2016 г.
  27. ^ «Справочник Quartus Prime Standard Edition, том 1: Проектирование и синтез» (PDF) . Интел. стр. 4–1 . Проверено 15 ноября 2016 г.
  28. ^ abcd Эккерт, Марсель; Мейер, Доминик; Хаазе, Ян; Клауэр, Бернд (30 ноября 2016 г.). «Концепции операционных систем для реконфигурируемых вычислений: обзор и обзор». Международный журнал реконфигурируемых вычислений . 2016 : 1–11. дои : 10.1155/2016/2478907 . ISSN  1687-7195. Эта статья содержит цитаты из этого источника, который доступен по лицензии Creative Commons Attribution 4.0 International (CC BY 4.0).

дальнейшее чтение

Внешние ссылки