Платформа автоматизированного проектирования проблемно-ориентированных реконфигурируемых вычислительных систем тема диссертации и автореферата по ВАК РФ 05.13.12, кандидат наук Румянцев, Александр Сергеевич
- Специальность ВАК РФ05.13.12
- Количество страниц 151
Оглавление диссертации кандидат наук Румянцев, Александр Сергеевич
СОДЕРЖАНИЕ
СОДЕРЖАНИЕ
Введение
1. Обзор существующих реконфигурируемых вычислительных систем
1.1. Введение
1.2. Текущее состояние развития вычислительной техники
1.3. Понятие «реконфигурируемая вычислительная система»
1.4. Классификация существующих реконфигурируемых вычислительных систем
1.5. Методы проектирования и программирования крупногранулярных реконфигурируемых вычислительных систем
1.6. Выводы
1.7. Постановка задачи
2. Архитектура шаблона крупногранулярного реконфигурируемого аппаратного ускорителя
2.1. Введение
2.2. Структура крупногранулярного реконфигурируемого аппаратного ускорителя
2.3. Операционный элемент крупногранулярного реконфигурируемого аппаратного ускорителя
2.4. Многофункциональный операционный элемент
2.5. Анализ производительности разработанного шаблона крупногранулярного реконфигурируемого аппаратного ускорителя
2.6. Выводы
3. Маршрут автоматизированного проектирования проблемно-ориентированных реконфигурируемых вычислительных систем
3.1. Введение
3.2. Маршрут автоматизированного проектирования крупногранулярных реконфигурируемых вычислительных систем
3.3. Задача выделения вычислительно емких ядер в исходном приложении
3.4. Задача отображения вычислительно емкого ядра программы на крупногранулярный реконфигурируемый аппаратный ускоритель
3.4.1. Разработанный алгоритм отображения вычислительно емких ядер программ
3.4.2. Разработанный эвристический метод отображения вычислительно емких ядер программ
3.4.2.1. «Кластеризация» вычислительно емких ядер на граф неограниченного количества операционных элементов ускорителя
3.4.2.2. Планирование отображения «кластеризованного» графа
3.4.2.3. Непосредственное назначение ресурсов реконфигурируемого аппаратного ускорителя
3.5. Выводы
4. Прототип платформы автоматизированного проектирования
4.1. Описание прототипа платформы автоматизированного проектирования
4.2. Экспериментальные результаты
4.3. Выводы
ЗАКЛЮЧЕНИЕ
ЛИТЕРАТУРА
Список сокращений и обозначений
Приложение I. Листинг программ расчета параметров многофункционального комплексного операционного элемента в среде МаШЬ
Приложение 2. Листинг шаблона архитектуры разработанного реконфигурируемого аппаратного ускорителя на языке 8у81етС
Рекомендованный список диссертаций по специальности «Системы автоматизации проектирования (по отраслям)», 05.13.12 шифр ВАК
Методы и средства программирования софт-архитектур для реконфигурируемых вычислительных систем2012 год, кандидат технических наук Коваленко, Василий Борисович
Полузаказное проектирование специализированных реконфигурируемых вычислительных систем2003 год, кандидат технических наук Чистяков, Алексей Григорьевич
Метод, алгоритм и устройство расположения задач в реконфигурируемых вычислительных системах2022 год, кандидат наук Масюков Илья Игоревич
Разработка и исследование архитектурных стилей проектирования уровневой организации встроенных систем2016 год, кандидат наук Пенской, Александр Владимирович
Методы и средства автоматизированного сопряжения функциональных узлов и блоков в приложениях для реконфигурируемых вычислителей2010 год, кандидат технических наук Раскладкин, Максим Константинович
Введение диссертации (часть автореферата) на тему «Платформа автоматизированного проектирования проблемно-ориентированных реконфигурируемых вычислительных систем»
Введение
Широкое распространение информационных технологий в различных областях человеческой деятельности привело к большому разнообразию вычислительных платформ. Способы реализации вычислительных систем варьируются от специализированных аппаратных вычислительных устройств, ориентированных на узкий круг задач (например, свертка и дискретное косинусное преобразование), до архитектур на основе процессоров общего назначения, которые могут быть адаптированы к широкому диапазону приложений. Решением, обеспечивающим баланс между производительностью и гибкостью конечной системы, является использование реконфигурируемых вычислительных систем, в которых для решения задачи имеется возможность изменять вычислитель, в том числе во время работы.
Существенный вклад в теорию реконфигурируемых вычислительных систем внесли Каляев А. В., Эстрин Г., Юзвиак Л., Дихон А. и многие другие видные ученые и специалисты.
Реконфигурируемые вычислительные системы создаются с начала 60-х годов прошлого столетия, однако недостаточное развитие технологической базы вычислительных систем до недавнего времени сдерживало их распространение на фоне архитектур с программируемыми процессорами общего назначения. В настоящее время ситуация изменилась в связи с развитием электронной базы и технологий проектирования вычислительных систем, таких как НХУУБЭД" Соёез!§п, А81Р, АБАМ. Множество реконфигурируемых вычислительных систем с инструментальными цепочками программирования было создано для отдельных узких областей применения, таких как помехоустойчивое кодирование Рида-Соломона, конвейеризация циклов в мультимедиа приложениях, выполнение матричных преобразований и т.д. Однако по-прежнему существует потребность в САПР для создания специализированных вычислителей на базе реконфигурируемых архитектур. Это и определило направление диссертационной работы.
Объектом исследования являются проблемно-ориентированные реконфигурируемые аппаратные ускорители и инструментальные средства их проектирования.
Предметом исследования является методы проектирования проблемно-ориентированных реконфигурируемых аппаратных ускорителей.
Целью диссертационной работы является создание платформы автоматизированного проектирования проблемно-ориентированных аппаратных ускорителей на основе реконфигурируемых архитектур с комплексными операционными элементами.
В рамках диссертационного исследования были решены следующие задачи:
1. Анализ архитектур реконфигурируемых вычислительных систем и методов их программирования. Выбор структуры САПР и базовых методов для проектирования и программирования проблемно-ориентированных реконфигурируемых аппаратных ускорителей.
2. Исследование и разработка микроархитектуры операционных элементов и коммуникационной среды проблемно-ориентированных реконфигурируемых аппаратных ускорителей.
3. Исследование и разработка методов автоматизированного программирования проблемно-ориентированных реконфигурируемых аппаратных ускорителей.
4. Разработка методов параметризации микроархитектуры и алгоритмов отображения прикладной задачи для проектируемой платформы САПР на основе проблемно-ориентированных реконфигурируемых аппаратных ускорителей.
5. Создание прототипа САПР проблемно-ориентированных реконфигурируемых аппаратных ускорителей для оценки эффективности
предлагаемых научно-технических решений на примере задач цифровой обработки сигналов и мультимедийных данных.
В диссертационной работе получены следующие результаты, характеризующиеся научной новизной:
1) Выполнена классификация существующих реконфигурируемых вычислительных систем на основе разработанной системы критериев. Представленная классификация отличается от существующих анализом структурных, функциональных и конфигурационных аспектов реконфигурируемых вычислительных систем.
2) Предложен принцип автоматизированного проектирования проблемно-ориентированных реконфигурируемых аппаратных ускорителей на основе параметризации шаблона микроархитектуры и набора алгоритмов отображения прикладной задачи для построения САПР.
3) При построении САПР в качестве платформы выбрана архитектура, включающая в себя разработанный шаблон проблемно-ориентированного реконфигурируемого аппаратного ускорителя с сервисным процессором и инструментальную систему отображения целевых алгоритмов.
4) Разработан маршрут проектирования проблемно-ориентированных реконфигурируемых аппаратных ускорителей на базе выбранной платформы автоматизированного проектирования.
5) Разработан многофункциональный комплексный операционный элемент, осуществляющий выполнение приближенных арифметических операций над целыми числами или над числами с плавающей запятой в логарифмической области.
6) Представлены критерии адаптивного выделения вычислительно емких ядер из графа потока данных прикладного алгоритма для использования в САПР,
учитывающие выбранные параметры шаблона реконфигурируемого аппаратного ускорителя.
7) Разработан алгоритм отображения графа потока данных исходной программы на вычислительные ресурсы параметризируемого шаблона проблемно-ориентированного реконфигурируемого аппаратного ускорителя, основанный на решении задачи целочисленного линейного программирования, а также предложен альтернативный эвристический метод отображения, позволяющий учесть ограничение на время работы САПР.
Практическая ценность результатов работы состоит в том, что в результате проведенного исследования были разработаны:
1) Схемные реализации многофункционального операционного элемента для проблемно-ориентированных крупногранулярных реконфигурируемых аппаратных ускорителей.
2) Имитационная модель параметризируемого шаблона крупногранулярного реконфигурируемого аппаратного ускорителя для цифровой обработки сигналов и мультимедийных данных.
3) Прототип транслятора исходной программы цифровой обработки сигналов и мультимедийных данных на параметризируемый шаблон реконфигурируемого аппаратного ускорителя.
4) Прототип САПР на основе разработанного шаблона крупногранулярного реконфигурируемого аппаратного ускорителя для цифровой обработки сигналов и мультимедийных данных.
Разработанный прототип платформы проектирования позволяет автоматизировать процесс параметризации шаблона крупногранулярного реконфигурируемого аппаратного ускорителя с сервисным процессором общего назначения и компиляции программы под такую гетерогенную структуру. В платформе
обеспечена возможность адаптивного задания условий отображения целевых алгоритмов на параметризованный шаблон крупногранулярного реконфигурируемого аппаратного ускорителя и прозрачного выполнения вычислений как на крупногранулярном реконфигурируемом аппаратном ускорителе, так и на сервисном процессоре общего назначения.
Методическую базу диссертационной работы составляют положения системного анализа, математического и натурного моделирования, дискретного программирования, раздела математики изучающей вопросы целочисленного линейного программирования, логарифмической системы счисления, теории графов, статистического анализа и экспертных оценок.
Основные результаты работы были внедрены в проведенных в НИУ ИТМО НИР № 07.514.11.4073 и НИР № 1-CT-ITMO-0212, в научно-производственной фирме ООО «ЛМТ» и в учебном процессе на кафедре Вычислительной техники НИУ ИТМО. Исследования поддержаны грантами Правительства Санкт-Петербурга в 2012 г. (№ ПСП-12316) и 2013 г. (№ ПСП-13382). Акты о внедрении прилагаются. Кроме того, был получен международный патент: «W0/2013/081484: UNIFIED COMPUTATION SYSTEMS AND METHODS FOR ITERATIVE MULTIPLICATION AND DIVISION».
Апробация работы произведена в 9 докладах на 8 конференциях. Основные результаты диссертации опубликованы в 10 работах.
1. Обзор существующих реконфигурируемых
вычислительных систем
1.1. Введение
В данном разделе приводятся основные понятия, концепции и особенности РВС, а также области их применения. Кроме того, были предложены критерии классификации, с помощью которых была выполнена классификация наиболее используемых РВС. Также представлено состояние развития средств разработки систем на базе РВС.
1.2. Текущее состояние развития вычислительной техники
Стремительный прогресс в полупроводниковой электронике вместе с появлением совершенно новых областей ее применения неизбежно приводит не только к повышению требований со стороны вычислительной техники, но и к большей степени зависимости этих требований от решаемой задачи. Повышение уровня интеграции микросхем позволяет разместить сотни миллионов транзисторов на одном кристалле, но это также приводит к более жестким требованиям к процессу разработки и средствам проектирования, увеличению полного времени разработки и единовременных затрат на создание интегральных схем [39]. Традиционные задачи теперь могут быть решены с большей эффективностью, кроме того технологически возможно и экономически оправданной стала реализация многочисленных новых видов систем [1]. В особенности большой импульс в развитии получили системы для встраиваемых применений, требующих миниатюризации, работы в реальном масштабе времени, производительности, автономности вычислений и беспроводной / удаленной связи [6]. С другой стороны, данный прогресс приводит значительной степени
сложности проектируемых систем. Из-за сложности и, особенно, высокой плотности компоновки устройств и его коммуникационной системы, небольшого физического размера устройств, огромной длины коммутационных линий, уменьшения напряжений питания, работы на очень высоких частотах (более 100 МГц) многие ранее игнорируемые явления теперь имеют большое влияние на аппаратную схему, безошибочное функционирование, производительность и ряд других аспектов качества конечной системы. Это приводит к появлению множества новых трудноразрешимых проблем, в том числе кризиса в энергоэффективности, увеличения токов утечки, доминирующее влияние коммуникационной среды на основные физические характеристики системы, снижение надежности системы, уменьшение времени наработки на отказ и т.д. В результате этого появляются все более сложные ВсС, которые должны надежно выполнять вычисления в реальном масштабе времени с никогда ранее не требовавшимся энергопотреблением, размерами и потребляемой мощностью [10]. Существует общее мнение, что прогресс в микроэлектронных технологиях сам по себе не может гарантировать удовлетворение растущих вычислительных, физических и экономических требований при решении большинства современных задач. Возможности, связанные с современными технологиями, могут быть эффективно использованы только при применении специализированных систем и интегральных схем, базирующихся на адекватных концепциях вычислений, хранения и обмена. Для этого требуются эффективные методы проектирования и САПР для синтеза аппаратного обеспечения и отображения целевой задачи на аппаратную платформу.
На рисунке 1.1., иллюстрирующем компромисс между эффективностью и гибкостью, показаны три различных подхода к проектированию вычислительных программно-аппаратных комплексов [40].
Гибкость, программируемое!*, модифицируемость
Производительность (MIPS. MOPS, бенчмарки), энергоэффективность
Все множество задач
Приложения \ I I
(по) JL_■_L
Класс задач
Аппаратное обеспечение и// или приложения (АО и/или НОу
Процессор общего назначения. ЦСИ /
Процессорный модуль
Реконфи! урируемый аппаратный блок
Модули, ориентированные на классы проблем
Специализированная СБИС
Специализированные модули
Рисунок 1.1. Спектр вычислительных систем.
Текущей тенденцией в компьютерной архитектуре является концентрация внимания на гибкости программирования с высокой эффективностью процессоров общего назначения. Поэтому архитектура процессора общего назначения наиболее широко изучена и основным направлением ее улучшения является улучшение производительности процессора на ватт потребляемой энергии. Процессоры общего назначения могут быть запрограммированы на выполнение практически любой вычислительной задачи, они должны платить за такую гибкость высоким энергопотреблением и значительными накладными расходами на выборку, декодирование и выполнение потока инструкций над данными, пересылаемыми по сложным коммуникационным шинам. Энергопотребление из-за этих накладных расходов подчас в несколько раз превышает требуемое в соответствии с техническим заданием энергопотребление.
Целью специализированных интегральных схем (ASIC) является оптимизация общей экономической эффективности системы, а не только производительности. Применение специализированных решений представляет собой наиболее эффективный способ снижения энергопотребления. Выполнение сложной обработки данных, например мультимедийных данных, на
специализированных аппаратных средствах, которые оптимизированы с точки зрения энергопотребления, позволяет снизить количество потребляемой энергии на несколько порядков по сравнению с программным выполнением всех операций на процессоре общего назначения. Однако недостатком специализированных аппаратных средств является отсутствие гибкости и возможности быстрого программирования, кроме того их функциональные возможности ограничены заранее реализованным набором аппаратных средств. Технологические проблемы в проектировании пользовательских специализированных интегральных схем, как правило, значительно меньше, чем у интегральных схем общего назначения. Это означает, что высокопроизводительные специализированные микросхемы могут быть изготовлены по относительно низкой цене. Тем не менее, за эту производительность приходится расплачиваться меньшей гибкостью и, следовательно, необходимостью проектирования новых чипов даже для самых маленьких изменений в функциональных требованиях.
Множество ВсС и исследовательских проектов показали, что гетерогенные ВС, использующие традиционные МВ на основе машины Фон-Неймана совместно с реконфигурируемой параллельной обработкой больших массивов данных, способны обеспечить более высокую производительность при снижении энергопотреблении по сравнению с традиционными процессорами общего назначения и сохранении возможности программирования по сравнению со специализированными аппаратными средствами [24, 29, 30]. При этом достигается значительная экономия при выпуске данной продукции, и уменьшаются сроки выхода готового изделия на рынок, по сравнению с решением на основе аппаратных схем без возможности реконфигурации. Кроме того они обеспечивают гибкость, которая часто требуется для адаптивных и отказоустойчивых систем (например, для адаптации к новому стандарту, к изменениям в окружающей среде, для совместного использования ресурсов и т.д.) [42]. Благодаря гетерогенности, гибкости и большому потенциалу для оптимизации приложения под конкретную задачу, такие системы, получившие
название реконфигурируемых вычислительных систем, способны исполнять широкий круг приложений в различных индустриальных секторах. Для многих областей применения, РВС могут быть на множество порядков быстрее, чем традиционные ВС, потребляя в несколько раз меньше энергии (например, при анализе ДНК, криптографии, обработки сигналов, проводной и беспроводной связи и т.д.) [5, 45, 71]. Основными проблемами на пути распространения парадигмы РВС является отсутствие адекватных методологий программирования и САПР для данного вида систем [37, 43]. В идеальном случае должна быть возможность автоматизированного синтеза РВС и трансляция высокоуровневой спецификации вычислительного процесса (например, на языке С или Simulink / Matlab) в оптимизированные машинные коды для выполнения на процессорах общего назначения и специализированных РАУ для параллельной обработки потоков данных. Хотя огромное количество исследований и разработок направлены на решение данной проблемы, но до сих пор не существует эффективных методологий и инструментальных цепочек для совместного синтеза программной и аппаратной компоненты [43]. На сегодняшний момент все реализуемые алгоритмы должны быть проанализированы с использованием автоматизированных или частично автоматизированных инструментов профилирования с целью выделения вычислительно емких ядер и векторной обработки данных для последующей реализации их на РАУ. В дальнейшем эти выделенные части должны быть реализованы в виде аппаратных модулей (например, на языке описания регистровых пересылок - RTL) или скомпилированы из промежуточного представления на существующие аппаратные ускорители. Как можно было заметить, на всех этих этапах проектирования существует достаточно большой риск ошибки проектирования и получения неэффективной системы. Поэтому разработка консистентных, взаимосвязанных и качественных инструментов для этой цепочки проектирования и программирования имеет решающее значение для удовлетворения разноплановых требований к ВсС и высокопроизводительным ВС.
Все вышеупомянутые тенденции вкупе с ограничением по энергопотреблению и стремлением к уменьшению времени выхода продукта на рынок приводят к необходимости наличия реконфигурируемости и гибкости в будущих проектах специализированных интегральных схем. Реализация определенного функционала целиком на аппаратной платформе дает лучшую энергоэффективность с точки зрения количества операций на потребляемую мощность за единицу времени, но данный подход имеет ограниченную гибкость для удовлетворения будущих или изменчивых требований к системе. Архитектуры на основе процессоров, в особенности на основе процессоров общего назначения, обеспечивают лучшую гибкость, но имеют низкую энергоэффективность с точки зрения количества операций на потребляемую мощность за единицу времени. Реконфигурируемые архитектуры должны занять пустующую нишу между специализированными системами и системами общего назначения.
Большинство современных задач по обработке мультимедийных данных, цифровой обработки сигналов, компьютерному зрению, навигации и т.д. требуют все более возрастающую вычислительную мощность и способность адаптироваться к изменению алгоритмов, лежащих в основе этих задач, параметров окружающей среды и требований к системе. Кроме того, современные условия требуют уменьшения время выхода законченных ВС на рынок, затрат на их проектирование и энергопотребления систем, а также увеличения степени повторного использования, как в целом систем, так и их отдельных подсистем.
В качестве примера изменяющихся требований к системе можно рассмотреть задачи из области аэрокосмических встроенных систем. Аэрокосмические встроенные системы должны выполнять множество алгоритмов: навигацию, обработку изображений и сигналов, обеспечение коммуникации с Землей, автономное и удаленное управление всеми подсистемами и т.д., при этом существуют жесткие ограничения на габариты, энергопотребление и надежность этих систем. В большинстве космических
миссий одновременное выполнение различных классов алгоритмов с различными вычислительными скоростями крайне необходимо для успеха. Допустим, когда космический аппарат с аэрокосмической встроенной системой на борту попадает в облако астероидов или оказывается на пути космического мусора, то ему необходимо быстро оценить состояние всей системы, выполнить навигацию в межзвездном пространстве и начать маневр по уходу от столкновения. В это время любые задачи по приему и обработке изображений могут быть замедлены или полностью приостановлены. В противоположной ситуации, когда космический аппарат наблюдает быстро протекающий космический феномен: столкновение астероида с красным гигантом, взрыв сверхновой и т.д., то ему необходимо переориентировать как можно больше вычислительных ресурсов на прием и обработку изображений, спектральный анализ и другие цели, позволяющие зафиксировать более детальную информацию о наблюдаемом феномене. В это время задачи по навигации и маневрированию отходят на второй план, более того, ради редчайших феноменов можно пожертвовать космическим аппаратом. Применение специализированных микропроцессоров в аэрокосмических встроенных системах до сих пор является основным способом решения приведенных выше задач. Однако, как уже было упомянуто, повышение требований к вычислительной мощности аэрокосмических ВсС наряду с повышением требований к гибкости этих систем для будущих космических миссий приводит к тому, что подход на основе специализированных микропроцессоров перестает удовлетворять новым требованиям. Использование РВС в данной области видится наиболее перспективным решением возникшей проблемы. В рамках РВС была сделана попытка взять лучшие технические идеи из области процессоров общего назначения, суперскалярных процессоров [9], систолических структур [65] и транспьютеров [76] (рисунок 1.2.). В России по данному направлению исследований стоит отдельно отметить коллектив ученых из Таганрогского государственного радиотехнического университета [2, 3].
Модель CISC и RISC процессоров
Регистр команд __ч_
г ~~~~ \
еэ
Модель суперскалярных и VLIW процессоров
ivyjj
Конфигурация ПЛИС
........... ^
Г~- ' л
ЩЩ ■■
ЙК
УУ
г \
«я» «ps*li«Mä |«в> IШ
fii] [¡Щ [вб| |вб| ... liir
m&flBff**
ПЛИС Реконфигурируемая вычислительная система
(мелкозернистая конфигурируемость) с крупнозернистой конфигурируемостью
Легенда
1. УУ - устройство управления
2. ком. # - команда #
3. ВБ • вычислительный блок
Рисунок 1.2. Структурные модели процессоров и РВС.
На данный момент в области реконфигурируемых вычислительных систем одну из ведущих ролей играют программируемые логические интегральные схемы (ПЛИС, БРвА) [49, 82]. Коммерчески доступные программируемые логические интегральные схемы представляют собой матрицу реконфигурируемых вычислительных ячеек, как правило, с битовой гранулярностью, взаимодействующих между собой посредством программируемой коммуникационной сети. Благодаря подобной архитектурной организации, программируемые логические интегральные схемы обеспечивают высокую степень параллелизма, контроль со стороны пользователя над низкоуровневыми ресурсами схемы и эффективное представление пользовательских форматов данных в аппаратуре. Недостаток данных схем вытекает из поддержки битовой гранулярности, что приводит к использованию большого количества ресурсов (вычислительных ячеек, линий коммуникационной сети) при реализации поддержки много битовых операций. Это приводит к большим накладным расходам при маршрутизации обрабатываемых данных и
низкой эффективности в использовании ПЛИС. Другим недостатком ПЛИС является большой объем конфигурационных данных необходимых для конфигурирования вычислительных ячеек и коммуникационной среды. Данное обстоятельство значительно увеличивает необходимое на реконфигурацию время и потребляемую схемой мощность, особенно когда для вычислительной задачи необходима поддержка множества аппаратных конфигураций. Подобные особенности делают ПЛИС слишком дорогими и недостаточно эффективными для большинства мультимедийных приложений и задач обработки сигналов. Однако стоит отметить, что крупные производители ПЛИС в последнее время стремятся уменьшить влияние данных проблем путем внедрения в структуру производимых схем специализированных блоков для много битовых операций (сложение, умножение) и выделения в структуре ПЛИС областей, поддерживающих независимую частичную реконфигурацию [63, 64]. К сожалению, поддержка данных возможностей в инструментальных системах требует ручной настройки или находится в зачаточном состоянии.
1.3. Понятие «реконфигурируемая вычислительная система»
Термин «реконфигурируемая вычислительная система» или «РВС» до сих пор не имеет устоявшегося определения:
• Система, которая обладает возможностью «аппаратного программирования» (изменение способа использования аппаратных блоков посредством определенного набора управляющих линий) [24].
• Система, обладающая способностью к изменению «воплощаемой» при реализации модели вычислений [7].
• Система, в которой конфигурация аппаратной подсистемы и/или подсистем может быть изменена или модифицирована после производства для (лучшего) достижения определенной цели [42].
Однако среди множества определений РВС можно выделить следующее определение, как наиболее точное:
• Система, в которой для решения задачи имеется возможность изменять вычислитель, в том числе во время работы [8].
Основные концепции, на которых основаны РВС, могут быть определены следующим образом:
1. Разработка проблемно-ориентированных аппаратных блоков с учетом уровня гранулярности вычислительного процесса и обрабатываемых данных для определенного класса задач.
2. Использование параллелизма при выполнении вычислений за счет наличия нескольких обрабатывающих блоков и конвейеризации.
3. Реконфигурация проблемно-ориентированных аппаратных блоков для адаптации к изменившимся параметрам решаемой задачи (класса задач), для совместного и повторного использования вычислительных ресурсов и т.д.
Похожие диссертационные работы по специальности «Системы автоматизации проектирования (по отраслям)», 05.13.12 шифр ВАК
Автономные системы управления на базе динамически реконфигурируемых процессоров для промышленных роботов2013 год, кандидат технических наук Павельев, Сергей Александрович
Методы и средства создания параллельно-конвейерных программ для решения графовых NP-полных задач на реконфигурируемых вычислительных системах2021 год, кандидат наук Касаркин Алексей Викторович
Разработка и исследование алгоритмов синтеза конечных автоматов для автономных эволюционных аппаратных средств2012 год, кандидат технических наук Ляшов, Максим Васильевич
Математическое и программное обеспечение систем автоматизации проектирования цифровых систем обработки сигналов2013 год, кандидат наук Андреев, Валерий Сергеевич
Синтезатор структурных параллельных прикладных программ для многокристальных реконфигурируемых вычислителей2011 год, кандидат технических наук Гуленок, Андрей Александрович
Список литературы диссертационного исследования кандидат наук Румянцев, Александр Сергеевич, 2013 год
ЛИТЕРАТУРА
1. Александров E.K. Микропроцессорные системы. Учебное пособие для вузов. [Текст] / Е.К. Александров, Р.И. Грушвицкий, М.С. Куприянов, O.E. Мартынов, Д.И. Панфилов, Т.В. Ремизевич, Ю.С. Татаринов, Е.П. Угрюмов, И.И. Шагурин; Под общей редакцией Пузанкова Д.В. // СПб.: Политехника, -2002.-935с.: ил.
2. Дордопуло А.И. Семейство многопроцессорных вычислительных систем с динамически перестраиваемой архитектурой [Текст] / А.И. Дордопуло, И.А. Каляев, И.И. Левин и Е.А. Семерников // Сб. материалов Международной научно-технической конференции «Многопроцессорные вычислительные и управляющие системы». - Таганрог: Изд-во ТТИ ЮФУ, 2007. - Т. 1. - С. 11-17.
3. Каляев И.А., Левин И.И., Семерников Е.А., Шмойлов В.И. Реконфигурируемые мультиконвейерные вычислительные структуры. — Ростов-на-Дону: Изд-во ЮНЦ РАН, 2008. — 397 с.
4. Карманов В. Г. Математическое программирование. — Наука, 1986. — 288 с.
5. Петров C.B. Сравнительный анализ сложности реализации быстрых цифровых преобразований на RISC-процессорах [Текст] / C.B. Петров, К.В. Юрков, Е.П. Овсянников // СПб.: НИУ ИТМО, Известия ВУЗов. Приборостроение, - 2011. С. 34 - 38.
6. Шатунов А.Е. Единое проектное пространство плюс аспектная технология - перспективная парадигма проектирования встраиваемых систем [Текст] / А.Е. Шатунов, Н.П. Постников // Научно-технический вестник СПбГУ ИТМО. - 2003. -№ 11. -С. 121-128.
7. Платунов, А.Е. Теоретические и методологические основы высокоуровневого проектирования встраиваемых вычислительных систем [Текст] / А.Е. Платунов // СПбГУ ИТМО (ТУ) - СПб.: СПбГУ ИТМО(ТУ). -2010.
8. Справочник научно-образовательное направление «Встроенные вычислительные системы» НИУ ИТМО [Электронный ресурс] / Режим доступа: http://embedded.ifmo.ru/wiki, свободный.
9. Танненбаум Э. Архитектура компьютера. - СПб.: Питер, 2002. - 704с. Ю.Топорков В.В. Генерация архитектурных решений вычислительных систем
на основе масштабирования операций. / В.В. Топорков // "Автоматика и вычислительная техника", - 2001. - №6. - С.42-51.
11.Ahn M. A spatial mapping algorithm for heterogeneous coarse-grained reconfigurable architectures [Текст] / M. Ahn, J. W. Yoon, Y. Paek, Y. Kim, M. Kiemb, and K. Choi //Proc. DATE'06, - 2006. - pp. 363-368.
12.Battista G. D. A split-push approach to 3D orthogonal drawing [Текст] / G. D. Battista, M. Patrignani, and F. Vargiu // Graph Drawing, - 1998. - pp. 87-101.
13.Becker J. Architecture and Application of a Dynamically Reconfigurable Hardware Array for future Mobile Communication Systems [Текст] / J. Becker et al. // Proc. FCCM'OO, Napa, CA, USA, - 2000. - 7 p.
14.Benoit P. Metrics for reconfigurable architectures characterization: remanence and scalability [Текст] / P. Benoit et al. // PDP Symposium, - 2003. - pp. 8-16.
15.Bittner R. A. Colt: An Experiment in Wormhole Run-time Reconfiguration [Текст] / R. A. Bittner et al. // SPIE Photonics East '96, Boston, MA, USA, -1996.-6 p.
16.Bondalapati K. Mapping Applications onto Reconfigurable Architectures using Dynamic Programming [Текст] / К. Bondalapati, G. Papavassilopoulos, and V. K. Prasanna // Military and Aerospace Applications of Programmable Devices and Technologies, - 1999. - 8 p.
17.Bondalapati K. Loop Pipelining and Optimization for Run Time Reconfiguration [Текст] / К. Bondalapati and V. K. Prasanna // Lecture Notes in Computer Science, - 2000. - pp. 906-914.
18.Bondalapati K. Parallelizing DSP Nested Loops on Reconfigurable Architectures using Data Context Switching [Текст] / К. Bondalapati // In Design Automation Conference, - 2001. - pp. 273-276.
19.Bouallegue A. System Level Methodology Evaluation of Reconfigurable Computing Architectures [Текст] / F. Abdallah and A.Bouallegue // 2nd ICTTA Conference, - 2006. - pp. 2567-2572.
20.Brunelli C. A coarse-grain reconfigurable architecture for multimedia applications supporting subword and floating-point calculations [Текст] / С. Brunelli, F. Garzia, D. Rossic, J. Nurmi // Journal of Systems Architecture, — 2010. - Volume 56, Issue 1. - pp. 38-47
21.Callahan T.J. The Garp architecture and С compiler [Текст] / T.J. Callahan, J.R. Hauser and J. Wawrzynek // IEEE Computer Society, - 2000. - vol. 33, № 4. -pp. 62-69.
22.Chalamalasetti S.R. MORA - An Architecture and Programming Model for a Resource Efficient Coarse Grained Reconfigurable Processor [Текст] / S.R. Chalamalasetti, S. Purohit et al. // IEEE Adaptive Hardware and Systems Conference, - 2009. - pp. 389-396.
23.Cherepacha D. A Datapath Oriented Architecture for FPGAs [Текст] / D. Cherepacha and D. Lewis // Proc. FPGA'94, Monterey, CH, USA, - 1994. - 4 p.
24.Compton К. Reconfigurable computing: A survey of systems and software [Текст] / К. Compton and S. Hauck // ACM Computer Survey, - 2002. - № 34. -pp. 171-210.
25.DeHon A. Comparing computing machines [Текст] / A. DeHon // UC Berkeley Press,-1998.- 10 p.
26.DSP Compiler and Processor Evaluation - DSPstone [Электронный ресурс] / Режим доступа: http://www.ice.rwth-aachen.de/research/tools-projects/entry/detail/dspstonе/. свободный.
27.Ebeling С. RaPiD - Reconfigurable Pipelined Datapath [Текст] / С. Ebeling, D. C. Cronquist, and P. Franklin // 6th International Workshop on Field Programmable Logic and Applications (FPL '96). Field- Programmable Logic: Smart Applications, New Paradigms and Compilers, - 1996. - pp. 126-135.
28.E1-Rewini H., Lewis Т., and Ali H., Task Scheduling in Parallel and Distributed Systems. Prentice Hall, - 1994. - 304 p.
29.Estrin G. Organization of Computer Systems—The Fixed Plus Variable Structure Computer [Текст] / G. Estrin // Proc. Western Joint Computer Conf., Western Joint Computer Conference, New York, - 1960. - pp. 33-40.
30.Estrin G. Reconfigurable computer origins: the UCLA fixed-plus-variable (F+V) structure computer [Текст] / G. Estrin // IEEE Ann. Hist. Comput. 24, - 2002. -pp. 3-9.
31.GNU Linear Programming Kit. [Электронный ресурс]. Режим доступа: http://www.gnu.org/software/glpk/, свободный.
32.Guo Y. A graph covering algorithm for a coarse grain reconfigurable system [Текст] / Y. Guo, G. J. M. Smit, H. Broersma, P. M. Heysters // LCTES, - 2003. -pp. 199-208.
33.Guo Y. Template Generation and Selection Algorithms [Текст] / Y. Guo, G. J. M. Smit, H. Broersma, P. M. Heysters // IWSOC, - 2003. - pp. 2-6.
34.Han K.-H. Quantum-Inspired Evolutionary Algorithm for a Class of Combinatorial Optimization [Текст] / K.-H. Han and J.-H. Kim // IEEE Trans. Evolutionary Computation, - 2002. - Vol. 6, No. 6. - pp.580-593.
35.Hannig F. Mapping of Regular Nested Loop Programs to Coarse-Grained Reconfigurable Arrays Constraints and Methodology [Текст] / F. Hannig, H. Dutta, and J. Teich // 18th International Parallel and Distributed Processing Symposium (IPDPS'04), - 2004. - 12 p.
36.Hardware-Software Codesign //IEEE Design & Test of Computers, - 2000, - pp. 92-99.
37.Hartenstein R. A decade of reconfigurable computing: a visionary retrospective [Текст] / R. Hartenstein // In Proceedings of the Conference on Design, Automation and Test in Europe (DATE 2001), - 2001. - pp. 642-649.
38.Hartenstein R. Coarse Grain Reconfigurable Architectures [Текст] / R. Hartenstein // CS Dept., University of Kaiserslautem, - 2001. - 6 p.
39.International Technology Roadmap for Semiconductors [Электронный ресурс] / Режим доступа: http://pub1ic.itrs.net, свободный
40 Jan R.M. Reconfigurable Computing: The Solution to Low Power Programmable DSP [Текст] / Rabaey Jan M. // IEEE ICASSP Conference, - 1997. - pp. 275278.
41. Jiang Y.-C. Temporal partitioning data flow graphs for dynamically reconfigurable computers [Текст] / Y.-C. Jiang et al. // IEEE Transactions on Very Large Scale Integration VLSI Systems, - 2007. - vol. 15, №. 12. - pp. 1351-1361.
42. Jozwiak L. Modern architectures for embedded reconfigurable systems - a survey [Текст] / L. Jozwiak, N.Nedjah // Journal of Circuits, Systems, and Computers, -2009.-№2.-pp. 209- 254.
43.Jozwiak L. Modern development methods and tools for embedded reconfigurable systems: a survey [Текст] / L. Jozwiak, N.Nedjah, M. Figueroa //, Integration, the VLSI Journal,-2010.-№1.-pp. 1-33.
44.Kim S. A general approach to mapping of parallel computation upon multiprocessor architectures [Текст] / S. Kim and J. C. Browne // Proc. Int. Conf. on Parallel Processing, - 1988. - pp. 1-8.
45.Kurose Y. A 90 nm embedded single DRAM chip LSI with a 3D graphics, H.264 codec engine, and a reconfigurable processor [Текст] / Y. Kurose, I. Kumata, M. Okabe, H. Hanaki, K. Seno, K. Hasegawa, H. Ozawa, S. Horiike, T. Wada, S. Arima, K. Taniguchi, К. Ono, H. Hokazono, T. Hiroi, T. Hirano and S. Takashima // Proc. Hot Chips, - 2004. - 16 p.
46.Kwan A. W. Improving parallel program performance using critical path analysis [Текст] / A. W. Kwan, L. Bic, and G. Gajski // Languages and Compilers for Parallel Computing, Cambridge, MA: The MIT Press, - 1990. - 12 p.
47.Lee G. Routing-Aware Application Mapping Considering Steiner Point for Coarse-Grained Reconfigurable Architectures [Текст] / G. Lee, S. Lee, K. Choi and N. Dutt // ARC, - 2010. - pp. 231 -243.
48.Lee J.-e. Compilation Approach for Coarse-Grained Reconfigurable Architectures [Текст] / J.-e. Lee, K. Choi and N. Dutt // IEEE Design & Test of Computers, - 2003. - Vol. 20, No. 1. - pp. 26-33.
49.Li F. Architecture evaluation for power-efficient FPGAs [Текст] / F. Li, D. Chen, L. He and J. Cong // Proc. ACM Int. Symp. Field-Programmable Gate Arrays, -2003.-pp. 175-184.
50.Liou J.-C. Performance analysis of task clustering heuristics for scheduling static DAGs on multiprocessor [Текст] / J.-C. Liou, M. A. Palis, and D. S. Wei // Parallel Algorithms and Applications, - 1997. - № 12. - pp. 185-203.
51 .Liou J.-C. A New Heuristic for Scheduling Parallel Programs on Multiprocessor [Текст] / J.-C. Liou and M. A. Palis // In Proceedings of the 1998 International Conference on Parallel Architectures and Compilation Techniques (PACT '98). IEEE Computer Society, Washington, DC, USA, - 1998. - pp. 358-364.
52.Mahlke S. A. Effective compiler support for predicated execution using the hyperblock [Текст] / S. A. Mahlke, D. C. Lin, W. Y. Chen, R. E. Hank, and R. A. Bringmann // Proc. MICRO 25, - 1992. - pp. 45-54.
53.Marshall A. A Reconfigurable Arithmetic Array for Multimedia Applications [Текст] / A. Marshall et al. // Proc. ACM/SIGDA FPGA'99, Monterey, - 1999. -6 p.
54.Mei B. DRESC: a retargetable compiler for coarse-grained reconfigurable architectures [Текст] / В. Mei, S. Vernalde, D. Verkest, H. De Man, R. Lauwereins // Proceedings. 2002 IEEE International Conference on Field-Programmable Technology, - 2002. - pp.166- 173.
55.Mei B. Exploiting Loop-Level Parallelism on Coarse-Grained Reconfigurable Architectures Using Modulo Scheduling [Текст] / В. Mei, S. Vernalde, D. Verkest, H. De Man, R. Lauwereins // Design Automation and Test in Europe Conf.,-2003.- 11 p.
56.Mirsky E. MATRIX: A Reconfigurable Computing Architecture with Configurable Instruction Distribution and Deployable Resources [Текст] / E. Mirsky, A. DeHon // IEEE Symposium on FPGAs for Custom Computing Machines (FCCM'96). - Napa Valley, California, April 1996. - pp. 157-166.
57.Miyamori T. A Quantitative Analysis of Reconfigurable Coprocessors for Multimedia Applications [Текст] / Miyamori T., Olukotun K. // In: Proc. of the IEEE Symp. On FPGAs for Custom-Computing Machines (FCCM), Napa, California, USA, - 1998, - pp. 2-11.
58.Moreira O. Online resource management in a multiprocessor with a network-on-chip [Текст] / О. Moreira et al. // Proc. of Symposium On Applied Computing (SAC07), - 2007. - pp. 1557-1564.
59.Motomura M. A Dynamically Reconfigurable Processor Architecture [Текст] / M. Motomura // Microprocessor Forum, - 2002. - 13 p.
60.Nageldinger U. KressArray Xplorer: A New CAD Environment to Optimize Reconfigurable Datapath Array Architectures [Текст] / U. Nageldinger et al. // ASPDAC, Yokohama, Japan, - 2000. - 6 p.
61.Noguera J. System-level power-performance trade-offs in task scheduling for dynamically reconfigurable architectures [Текст] / J. Noguera et al. // Proc. of
International Conference on Compilers, Architecture, and Synthesis for Embedded Systems (CASES03), - 2003. - pp. 73-83.
62.Park H. Edge-Centric Modulo Scheduling for Coarse-Grained Reconfigurable Architectures [Текст] / H. Park, K. Fan, S.A. Mahlke, T. Oh and H. Kim. // PACT,-2008.-8 p.
63.Partial Reconfiguration in the ISE Design Suite [Электронный ресурс] / Режим доступа: http://www.xilinx.com/tools/partial-reconfiguration.htm, свободный.
64.Partial Reconfiguration with Altera FPGAs [Электронный ресурс] / Режим доступа: http://www.altera.com/education/training/courses/IPR100. свободный.
65.Petkov N. Systolic Parallel Processing Elsevier, - 1993 - 712 p.
66.Pulley D. Software Defined Baseband Processing for 3G Base Stations [Текст] / D. Pulley and R. Baines // 4th International Conference on 3G Mobile Communication Technologies (3G 2003). London, U.K.: Institution of Electrical Engineers, London, U.K., - 2003. - pp. 123-127.
67.Ramakrishna B. Iterative Modulo Scheduling [Текст] / В. Ramakrishna // Technical report HPL-94-115, HP Laboratories, - 1995. - 23 p.
68.Robins G. Improved Steiner tree approximation in graphs [Текст] / G. Robins and A. Zelikovsky // SODA '00 Proceedings of the eleventh annual ACM-SIAM symposium on Discrete algorithms, - 2000. - pp. 770-779.
69.Sangiovanni-Vincentelli A. Defining platform-based design. // EEDesign, - 2002.
70.Sarkar V. Partitioning and Scheduling Parallel Programs for Execution on Multiprocessors [Текст] / V. Sarkar. // MIT Press, - 1989. - 252 p.
71.Shikano H. Performance evaluation of heterogeneous chip multiprocessor with MP3 audio encoder [Текст] / H. Shikano, Y. Suzuki, Y. Wada, J. Shirako, K. Kimura and H. Kasahara // Proc. COOL Chips, - 2006. - pp. 349-363.
72.Sima M. Coarse-Grain Reconfigurable Architectures - Taxonomy - [Текст] / Mihai SIMA, M. McGuire, J. Lamoureux // Dept. of Electr. & Comput. Eng., Univ. of Victoria, Victoria, ВС, Canada, - 2009. - 4 p.
73.Sima M. Reconfigurable Array for Transcendental Functions Calculation [Текст] / M. Sima, M. McGuire, and S. Miller // Proceedings of the IEEE International Conference on Field-Programmable Technology (ICFPT 2008), Taipei, Taiwan, -2008.-pp. 49-56.
74.Singh H. MorphoSys: An Integrated Reconfigurable Architecture [Текст] / H. Singh, et al. // Proceedings RTOS System Concepts and Integration, Monterey, CA, USA,-1998.-6 p.
75.Singh H. MorphoSys: An Integrated Reconfigurable System for Data-Parallel and Computation-Intensive Applications [Текст] / H. Singh, Ming-Hau Lee, G. Lu, F. J. Kurdahi, N. Bagherzadeh, E. M. C. Filho // IEEE Trans. Computers, - 2000. -№5.-pp. 465-481.
76.Stakem P. The Hardware and Software Architecture of the Transputer, — 2011 — 62 p.
77. SUIF Compiler system [Электронный ресурс] / Режим доступа: http://suif.stanford.edu, свободный.
78.Synopsys SystemC tools [Электронный ресурс] / Режим доступа: http://www.svnopsys.com/communitv/interoperabilitv/pages/systemc.aspx, свободный.
79.Tensilica - Customizable Processor Cores for the Dataplane [Электронный ресурс] / Режим доступа: http://www.tensilica.com/, свободный.
80.Toi Т. High-Level Synthesis Challenges and Solutions for a Dynamically Reconfigurable Processor [Текст] / T. Toi, N. Nakamura, Y. Kato, T. Awashima, K. Waabayashi and L. Jing // ICCAD, - 2006. - pp. 702-708.
81.Waingold E. Bring it all to Software: RAW Machines [Текст] / E. Waingold et al. // IEEE Computer, - 1995, - pp. 86-93
82.Wilton S. J. E. A synthesizable datapath-oriented embedded FPGA fabric [Текст] / S. J. E. Wilton, C. H. Ho, P. H. W. Leong, W. Luk and B. Quinton // Proc. ACM/SIGDA Int. Symp. Field Programmable Gate Arrays, - 2007. - pp. 33-41.
83.Yang T. DSC: Scheduling parallel tasks on an unbounded number of processors [Текст] / T. Yang and A. Gerasoulis // IEEE Transactions on Parallel and Distributed Systems, - 1994. - pp. 951-967.
84.Ye Z. A. CHIMAERA: A High-Performance Architecture with a Tightly-Coupled Reconfigurable Functional Unit [Текст] / Z. A. Ye, A. Moshovos, S. Hauck, and P. Banerjee // In ISCA, - 2000. - pp. 225-235.
85.Yeung A. K. A Reconfigurable Data-driven Multiprocessor Architecture for Rapid Prototyping of High Throughput DSP Algorithms [Текст] / A. K. Yeung, J.M. Rabat // Roc. HICSS-26, Kauai, - 1993. - pp. 169-178.
86.Yoon J. W. A Graph Drawing Based Spatial Mapping Algorithm for CoarseGrained Reconfigurable Architectures [Текст] / J. W. Yoon, A. Shrivastava, S. Park, M. Ahn, and Y. Paek // IEEE transactions on very large scale integration (VLSI) systems,-2009.-vol. 17, №. Ц.-рр. 1565-1578.
Список сокращений и обозначений
ВС вычислительная система
ВсС встроенная вычислительная система, embedded system
ГПД граф потока данных
ГПДК граф потока данных и команд
ИУС информационно-управляющая система
KMC коммуникационная среда
КРАУ крупногранулярный реконфигурируемый аппаратный ускоритель
MB модель вычислений
ОС операционная система
ОСМВ объектно-событийная модель вычислений
ОСРВ операционная система реального времени
ОЭ операционный элемент
РАУ реконфигурируемый аппаратный ускоритель
РВС реконфигурируемая вычислительная система
ПДП прямой доступ к памяти
ПЛИС программируемая логическая интегральная схема
ПК персональный компьютер
ПО программное обеспечение
РИУС распределенная информационно-управляющая система
САПР система автоматизированного проектирования
СППП средства прикладного пользовательского программирования
ТЗ техническое задание
ФБ функциональный блок
ЦЛП целочисленное линейное программирование
ЯВУ язык высокого уровня
API application programming interface
CFSM codesign finite state machine
CPLD complex programmable logic device
DFD data flow diagram
DMA direct memory access
FPGA field programming gate array
FSM finite state machine
FW firmware
HW hardware
SIMD Single-Instruction Multiple-Data
SOC System-On-a-Chip
SW software
Приложение 1. Листинг программ расчета параметров многофункционального комплексного операционного элемента в среде
МаНаЬ
%Функция вычисления двоичного логарифма по методу Митчелла function у = log2_mitchell(х)
х = х - 1;
if (~((х >= 0) && (х < 1))) х = 1;
end
у = х; end
%Функция преобразования мантиссы числа с плавающей запятой в десятичное значение с учетом мнимой единицы
function [ у ] = fman2dec( str, precision, len, use_hidden_one )
if (strcmp(precision,'single 1))
man = substr(str, 10, len); elseif (strcmp(precision,1 double1)) man = substr(str, 13, len);
else
error(1 PRECISION must be ''single'' or ''double''\n');
end
delim = 0.5; tmp =0;
%Цикл по всей мантиссе числа for k=l:len
if (man (k) == 4')
tmp = tmp + del intend
delim = delim * 0.5;
end
%Добавление мнимой единицы? if (use_hidden_one > 0) tmp = tmp + 1;
end
у = tmp; end
%Функция преобразования десятичного числа в число с плавающей запятой в формате IEEE-754
function x=dec2ieee754(г,precision) % x=dec2ieee754(г,precision)
% Returns binary string in IEEE754 floating point format % that represents the decimal number r. % precision = 'single' or 'double' if (strcmp(precision, 'single'))
у = sprintf('%tx', r); elseif (strcmp(precision,'double')) у = sprintf('%bx', r);
else
error('PRECISION must be ''single'' or ''double''\n');
у;
X =
for i=l:length(у)
x = strcat(x,h2b(у(i)));
end
%Шестнадцатеричное представление в бинарное function x=h2b(y)
= [1 0 0 0 0 1; о. о 0
1 0 0 011 ; о "О 1
'0010'; о "О 2
'0011'; О, "О 3
■ 0100е; о "О 4
1 01011; о 5
1 0110 1 ; о б
'0111'; о "О 7
11000 т; о, о 8
4001'; о, о 9
11010 1; о о а
Ч0111; о о b
111001; о о с
11101'; о. о d
'1110'; о о е
f11111]; о. о f
х = X (sscanf(у, "О
end
end
%Функция преобразования числа с плавающей запятой в формате IEEE-754 в десятичное число
function r=ieee7542dec(х,precision)
% r=ieee7542dec(r,precision)
% Returns decimal version of the binary IEEE754 floating point
% number x (x must be a string of size 32 or 64)
% precision = 'single' or 'double'
if (iszeroieee754(x)) r = 0; return;
end
if (isinfieee754(x,precision)) r = inf; return;
end
if (isninfieee754(x,precision)) r = -inf; return;
end
if (strcmp(precision,'single')) eV = x (2 : 9) ; mV = x(10:32); b = 127;
elseif (strcmp(precision,'double')) eV = x (2:12); mV = x (13 : 64) ; b = 1023;
else
error('PRECISION must be ''single'1 or ''double''\n');
if (x(1)=='01) s = 1;
else
s = -1;
end
e = 0; m = 1;
for i=l:length(eV)
e = e + str2num(eV(i))*(2Л(length(eV)-i));
end
for i=l:length(mV)
m = m + str2num(mV(i))*(2A-i);
end
r = s*m*2A(e-b);
%Определение нуля по стандарту IEEE-754
function y=iszeroieee754(x)
y=l;
for i=2:length(x) if (x(i)=='l') У = 0;
break;
end
end return
%Определение положительной бесконечности по стандарту IEEE-754 function y=isinfieee754(x,precision) if (x(l)=='l')
У=0;
return
end y=l;
if (strcmp(precision, 1 single') )
imax = 9; elseif (strcmp (precision,'double')) imax = 12;
else
error('PRECISION must be ''single'' or ''double''\n');
end
for i=2:imax
if (x (i) ==' 0 ') у = 0; break;
end
end return
%Определение отрицательной бесконечности по стандарту IEEE-754 function y=isninfieee754 (х,precision) if (x(1)=='0') y=0; return
end y=l;
if (strcmp(precision, 'single'))
imax = 9; elseif (strcmp(precision,'double'))
imax = 12;
else
error('PRECISION must be '* single 11 or 1■double 1'\n1);
end
for i=2:imax
if (x (i) ==' 0 ') У = 0; break;
end
end return
%Функциональная реализация аппаратного логарифма function [ у ] = hw_log( t, k, s, precision, val ) % 1 <= val < 2 MUST be
if (strcmp(precision,'single 1)) exp_size = 8; man_size = 23; elseif (strcmp(precision,'double 1)) exp_size = 11; man_size = 52;
else
error(1 PRECISION must be ''single 11 or 1'double 1'\n');
end
%ideal and real error LUT forming and analisys el = linspace(l, 2, 2At);
er_lut_real = zeros(1, 2At); for i = l:2At
bin_rep = dec2ieee754(el(i), precision); for j = (exp_size + 2 + t):(exp_size + man_size + 1) bin_rep(j) = ' 0';
end
el(i) = ieee7542dec(bin_rep, precision);
real_el_log2 = log2(el(i));
real_sized_mant = bin2dec (substr (ieee7542denorm (real_el__log2, precision), 1, s));
if (i == 2At)
er_lut_real(i) = (er_lut_real(i-1) - (er_lut_real(i-2) -er_lut_real(i-1))); %must be choosed upon t
else
er_lut_real(i) = real_sized_mant - bin2dec(substr(bin_rep, exp_size + 2, s));
end
end
%real method
bin_rep = dec2ieee754(val, precision);
man_msb_t = bin2dec(substr(bin_rep, exp_size +2, t)) + 1; a_er = er_lut_real(man_msb_t);
if ( (man_msb_t + 1) > 2At) b_er = 0;
else
b_er = er_lut_real(man_msb_t + 1);
end
0;
bin2dec(substr(bin_rep, exp_size + 2 + t, к - t));
if (k == t )
man_msb_t_k =
else
man msb t к =
end
if (val == 2) tmp = 1;
else
man_val_l = bin2dec(substr(bin_rep, exp_size +2, s)) + a_er;
man_val_2 = ((b_er - a_er) * man_msb_t_k) / (2A(k - t));
man_val_2_r = round(man_val_2);
man_val = man_val_l + man_val_2_r;
tmp = man2dec(dec2bin(man_val), s, precision);
end
y = tmp; end
%Функциональная реализация аппаратного антилогарифма function [ у ] = hw_antilog( t, k, s, precision, val ) % 0 <= val < 1 MUST be
if (strcmp(precision,1 single') ) exp_size =8; man_size = 23; elseif (strcmp (precision,1 double 1)) exp_size = 11; man_size = 52;
else
error('PRECISION must be ''single 11 or 1'double''\n1);
end
%ideal and real error LUT forming and analisys el = linspace(0, 1, 2At) ;
er lut real = zeros(1, 2At);
for i = 1:2At
bin_rep = dec2ieee754(el(i) + 1, precision); for j = (exp_size +2 + t):(exp_size + man_size + 1) bin_rep(j) = ' 0';
end
el(i) = ieee7542dec(bin_rep, precision);
real_el_2m = 2A(el(i) - 1);
real_sized_mant = bin2dec(substr(ieee7542denorm(el (i) -precision), 1, s));
if (i == 2At)
er_lut_real(i) = (er_lut_real (i-1) - (er_lut_real(i er_lut_real(i-1))); %must be choosed upon t
else
er_lut_real(i) = real_sized_mant -bin2dec(substr(ieee7542denorm(real_el_2m - 1, precision), 1
end
end
%real method
bin_rep = dec2ieee754(val + 1, precision);
man_msb_t = bin2dec(substr(bin_rep, exp_size +2, t)) + 1
a_er = er_lut_real(man_msb_t);
if ((man_msb_t + 1) > 2At) b_er =0;
else
b_er = er_lut_real(man_msb_t + 1);
end
if (k == t )
man_msb_t_k = 0;
else
man_msb_t_k = bin2dec(substr(bin_rep, exp_size + 2 + t, к
end
if (val == 1) tmp = 2;
else
man_val_l = bin2dec(substr(bin_rep, exp_size + 2, s));
man_val_2 = ((b_er - a_er) * man_msb_t_k) / (2A(k - t) )
man_val_2_r = round(man_val_2);
man_val = man_val_l - (a_er + man_val_2_r);
tmp = 1 + man2dec(dec2bin(man_val), s, precision)
end
y = tmp; end
Приложение 2. Листинг шаблона архитектуры разработанного реконфигурируемого аппаратного ускорителя на языке Systeme
/*
* г am_s р_а r_aw.h
*
*/
//
// Асинхронная по чтению и записи память //
#ifndef RAM_SP_AR_AW_H #define RAM SP AR AW H
#include "systemc.h"
#define DATA_WIDTH #define ADDR_WIDTH #define RAM DEPTH
32 32
1 « ADDR WIDTH
class ram_sp_ar_aw: public sc_module { public:
sc_in <sc_uint<ADDR_WIDTH> > address
sc_in <bool> es
sc_in <bool> we
sc_in <bool> oe
sc_in <sc_uint<DATA_WIDTH> > data_in
sc out <sc uint<DATA WIDTH> > data out
private:
//-----------Internal variables-----------------
sc_uint <DATA_WIDTH> mem [RAM_DEPTH];
SC_HAS_PROCESS(ram_sp_ar_aw); ram_sp_ar_aw(sc_module_name name_);
void read_mem (); void write_mem();
};
#endif /* RAM_SP_AR_AW_H_ */ /*
* ram_sp_ar_aw.cpp
*
//
// Asynchronous read write RAM //
#include "ram_sp_ar_aw.h"
ram_sp_ar_aw::ram_sp_ar_aw(sc_module_name name_) { SC_METHOD (read_mem);
sensitive « address « cs « we « oe; SC_METHOD (write_mem);
sensitive « address « cs « we « data_in;
}
// Memory Write Block
// Write Operation : When we = 1, es = 1 void ram_sp_ar_aw::write_mem () { if (cs.readO && we.read() ) {
mem[address.read()] = data_in.read();
}
}
// Memory Read Block
// Read Operation : When we = 0, oe = 1, es = 1 void ram_sp_ar_aw: :read_mem () {
if (cs.readO && !we.read() && oe.readO) { data_out.write(mem[address.read()]);
}
}
#ifndef GLOBAL_H_ #define GLOBAL_H_
#include "système.h" #include "stdint.h" #include <iostream>
typedef uint32_t cpe_dt;
const uint8_t MAX_IN_OUT_PORTS
const uint8_t MAX_RPE_IN_ONE_DIM
const uint8_t MAX_RPE_IN_MESH MAX RPE IN ONE DIM;
= 8;
= (MAX_IN_OUT_PORTS / 2); = MAX RPE IN ONE DIM *
const uint8_t MAX_RPE_CONFIG_MUX_CFGS = 10;
struct CPE_CONFIG { //Тип конфигурации ОЭ uint8_t cfg;
inline bool operator == (const CPE_CONFIG& temp) const { if(temp.cfg != cfg) return false;
else
return true;
}
};
inline ostreamS operator « ( ostreams os, const CPE_CONFIG& temp ) {
os«"CPE_CONFIG: "«temp. cfg«endl; return os;
}
//Отладочный вывод
inline void sc_trace( sc_trace_file*& tf, const CPE_CONFIG& a, const std::string& name) {
sc_trace(tf, a.cfg, name+".cfg");
}
//Конфигурация внутренней коммутации ОЭ struct RPE_CONFIG {
uint8_t mux_cfg_cnt;
uint8_t mux_cfg[MAX_RPE_CONFIG_MUX_CFGS]; RPE_CONFIG (uint8_t cfg_cnt =10) {
mux_cfg_cnt = cfg_cnt; reset () ;
}
void reset () {
for (uint32_t i = 0; i < MAX_RPE_CONFIG_MUX_CFGS; i++) mux_cfg[i] = 0;
}
inline bool operator == (const RPE_CONFIG& temp) const { if (temp.mux_cfg_cnt != mux_cfg_cnt) return false;
for (uint32_t i = 0; i < mux_cfg_cnt; i++) if (temp.mux_cfg[i] != mux_cfg[i]) return false;
return true;
Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.