Содержание к диссертации
Введение
Глава 1. Аппаратные средства ускорения функциональной верификации 14
1.1 Классификация 14
1.2 Программное моделирование 17
1.3. Серверы на основе процессоров общего назначения 18
1.4. Ускорители на основе графических ядер 19
1.5 Промышленные аппаратные средства 19
1.5.1 Аппаратные ускорители программного моделирования 19
1.5.2 Аппаратные Эмуляторы 22
1.5.3 Прототипы на основе ПЛИС 25
1.6 Специализированные прототипы на ПЛИС 27
1.6.1 Система прототипирования Intel 27
1.6.2 Система прототипирования IBM 29
1.6.3 Прототипы ЗАО «МЦСТ» 29
1.6.3.1 Недостатки созданных специализированных прототипов на основе ПЛИС 31
1.6.3.2 Функциональная верификация с использованием созданных специализированных прототипов на основе ПЛИС 33
1.6.4 Программное обеспечение для функционирования прототипа микропроцессора 34
1.7 Сравнение способов функциональной верификации 35
1.8 Выводы 37
Глава 2. Особенности применения специализированных прототипов на основе ПЛИС 39
2.1 Маршрут прототипирования 39
2.2 Разработка специализированного прототипа на основе ПЛИС 42
2.2.1 Проблема ограниченной ёмкости ПЛИС 42
2.2.2 Проблема разработки аппаратуры прототипа 44
2.3 Адаптация RTL-описания для эмуляции на ПЛИС 46
2.3.1 Разделение RTL-описания микропроцессора на блоки 46
2.3.2 Адаптация несинтезируемых в ПЛИС блоков исходного RTL-описания микропроцессора 50
2.3.2.1 Подключение оперативной памяти 50
2.3.2.2 Замена внутренних памятей микропроцессора 52
2.3.2.3 Подключение высокочастотных интерфейсов микропроцессора 53
2.3.3 Результат разделения RTL-описания микропроцессора 54
2.4 Организация передачи данных между ПЛИС 55
2.4.1 Подключение RTL-описания в ПЛИС 55
2.4.2 Особенности топологической трассировки ПЛИС 57
2.4.3 Сложность длительной передачи данных между ПЛИС 58
2.4.4 Сравнение существующих методов передачи данных между ПЛИС 58
2.5 Оптимизация интерфейсов взаимодействия ПЛИС 60
2.5.1 Оптимизация подключения блоков RTL-описания 60
2.5.2 Выбор интерфейса передачи данных 61
2.5.3 Определение интерфейса прототипа 63
2.6 Особенности передачи данных в прототипе 65
2.6.1 Основные понятия 65
2.6.2 Передача «точка-точка» 68
2.6.3 Использование коммутаторов 71
2.7. Диагностика функционирования аппаратуры прототипа 74
2.8 Программное моделирование интерфейса 80
2.8 Перспективы развития 81
2.9 Выводы 82
Глава 3. Реализация прототипов и анализ конструкции 84
3.1 Основа реализации 84
3.2 Прототип четырёхъядерного микропроцессора «Эльбрус-2S» 84
3.2.1 Особенности проектируемого микропроцессора 84
3.2.2 Определение структуры прототипа 86
3.2.3 Организация системы синхронизации 89
3.2.4 Анализ реализации прототипа микропроцессора "Эльбрус-2S" 91
3.3 Прототип восьмиядерного микропроцессора «Эльбрус-8С» 94
3.3.1 Особенности проектируемого микропроцессора 94
3.3.2. Определение структуры прототипа 96
3.3.3 Система синхронизации 99
3.3.4 Особенности конструкции 101
3.3.5 Анализ прототипа микропроцессора «Эльбрус-8С» 103
3.4 Анализ полученных прототипов 105
3.4.1 Анализ созданных специализированных прототипов на основе ПЛИС 107
3.4.1.1 Выявление недостатков программной части прототипа 107
3.4.1.2 Выявление недостатков аппаратной части прототипа 109
3.4.1.3 Синхронизация частоты эмуляции во всех ПЛИС прототипа. 111 3.4.2 Оптимизация устройства прототипа 115
3.5 Самосинхронизация модулей прототипа 118
3.5.1 Протокол работы 118
3.5.2 Масштабируемая система прототипирования 119
3.5.3 Оценка характеристик масштабируемой системы прототипирования 123
3.6 Выводы 124
Заключение 126
Литература и ссылки
- Серверы на основе процессоров общего назначения
- Недостатки созданных специализированных прототипов на основе ПЛИС
- Адаптация несинтезируемых в ПЛИС блоков исходного RTL-описания микропроцессора
- Прототип восьмиядерного микропроцессора «Эльбрус-8С»
Серверы на основе процессоров общего назначения
Базовым средством функциональной верификации микропроцессоров на уровне регистровых передач являются RTL-симуляторы. Высокая сложность моделей современных многоядерных микропроцессоров приводит к неприемлемо длительному времени проведения этапа функциональной верификации. Для сокращения сроков выпуска новых микросхем требуется применять вспомогательные аппаратные средства, повышающие скорость тестирования. В таблице 1.1 приведено их сравнение.
Применение для программной симуляции многоядерных серверов на основе процессоров общего назначения (VCS от компании Synopsys) и ускорителей на основе графических процессоров (RocketSim от компании Rocketick) позволяет получить увеличение скорости тестирования. Но существенное её увеличение возможно только путём использования специальной аппаратуры. Её можно разделить на три основные группы.
Ускорители программного моделирования (от англ. hardware accelerator) предназначены для увеличения скорости обработки данных в RTL-симуляторах. Примером такого решения являются Palladium фирмы Cadance, VStation PRO и Veloce фирмы Mentor Graphics. Их реализация основана на использовании микросхем специального применения (от англ. application-specific integrated circuit, ASIC), поэтому стоимость подобных систем крайне высока. Кроме того, при моделировании крупных многоядерных микропроцессоров, габариты аппаратуры существенно растут.
Аппаратные эмуляторы (от англ. hardware emulator) – это аппаратные средства, предназначенные для имитации поведения проектируемых микросхем. Они реализованы с использованием большого количества ПЛИС (сотни штук), соединённых друг с другом линиями связи, например ZeBu фирмы Synopsys. Такая организация позволяет сохранять прозрачность эмулируемого RTL-описания микропроцессора путём вывода большого количества диагностической информации, но недостаток такого решения – высокая стоимость.
Более дешёвым решением в области эмуляции микропроцессоров является прототип на основе ПЛИС (от англ. FPGA prototype), например HAPS фирмы Synopsys. Здесь количество ПЛИС составляет от единиц до нескольких десятков, что существенно снижает стоимость. Весьма ограниченное количество конфигурационной логики увеличивает сложность перевода RTL-описания для загрузки на прототип. Кроме того, снижается количество диагностической информации, что осложняет локализацию ошибок при функциональной верификации.
Для многих небольших компаний единственно приемлемым способом макетирования является моделирование с помощью прототипа на основе ПЛИС. Кроме того, для изготовления мелкосерийных образцов СБИС с фабрикой согласовываются жёсткие сроки производства, причём в случае неудачной итерации повторное изготовление может привести к превышению отведённого времени до завершения проекта. Поэтому решение использовать прототип на основе ПЛИС вместо реализации первой итерации СБИС является целесообразным. Таблица 1.1. Сравнение категорий аппаратных средств функциональной верификации
Производителями прототипов рассматриваются случаи, когда между блоками RTL-описания устанавливается относительно небольшое количество логических связей, среда передачи данных считается достаточно надёжной, а тестирование подсистемы памяти требует дополнительных аппаратных модулей. В рамках этого решения рост количества логических связей между блоками RTL-описания и масштабов подсистемы памяти (как, например, в многоядерных микропроцессорах серии «Эльбрус»), ввиду ограниченного количества контактов ввода/вывода ПЛИС, приводит к существенному снижению эффективности предлагаемых универсальных изделий. Решением является изменение аппаратуры прототипа с учётом топологической структуры проектируемого многоядерного микропроцессора. Такие прототипы имеют более высокую скорость тестирования, что позволяет обеспечить наиболее полное тестовое покрытие в кратчайшие сроки. Поэтому, четвёртой группой специальных аппаратных средств можно выделить специализированные прототипы на основе ПЛИС. Кроме того, специфичность аппаратуры позволяет эмулировать работу многоядерного микропроцессора в составе реальной вычислительной системы и, кроме самого RTL-описания, проводить верификацию операционной системы, программы начального старта и периферийного оборудования.
Наиболее подробным способом функциональной верификации является программное моделирование с помощью RTL-симуляторов (напр. ModelSim). Оно повышает детализацию, однако существенно снижает покрытие тестами из-за низкой скорости тестирования. Опыт ЗАО «МЦСТ» показывает, что при симуляции целого четырёхъядерного микропроцессора серии «Эльбрус» (Эльбрус-2S) вместе с южным мостом максимальная установленная частота симуляции равна 30 Гц. А для восьмиядерного микропроцессора («Эльбрус-8С») всего 1 Гц. При этом для моделирования работы от этапа включения до загрузки операционной системы потребуется уже около более десятка лет. Это слишком долгий срок для верификации. Поэтому для функциональной верификации методом программного моделирования используются короткие тесты, не требующие загрузки операционной системы. Это является существенным ограничением, так как нет возможности обеспечения сложных тестовых воздействий, обеспечивающих комплексную проверку проектируемых структур. Для уменьшения времени программного моделирования необходимо применение высокопроизводительной аппаратуры.
Недостатки созданных специализированных прототипов на основе ПЛИС
Маршрут прототипирования многоядерных микропроцессоров в общем случае содержит этапы создания и настройки аппаратуры прототипа, разделения RTL-описания на блоки для их эмуляции в нескольких ПЛИС, адаптация несинтезируемых в ПЛИС конструкций. После проведения указанных этапов необходимо скомпоновать все результирующие блоки каждого этапа по проектам ПЛИС для их дальнейшей компиляции. Для этого широкие шины логических связей блоков RTL-описания подключают на набор схем мультиплексирования. Каждая из этих схем позволяет передавать по одиночной линии последовательно передавать нескольких бит информации (Time-Domain Multuplexing (TDM)). Блоки RTL-описания подключаются в каждую ПЛИС с учётом топологии заложенной в прототипе, при этом используются результаты работы по организации взаимодействия между ПЛИС. В результате возникает циклические процессы (рис. 2.8), которые усложняют процесс адаптации проектов ПЛИС.
При росте окружения блоков RTL-описания и количества логических связей между ними выявляется существенное увеличение сложности описанной задачи. Кроме того при прототипировании многоядерных микропроцессоров в прототипе присутствует несколько уникальных проектов ПЛИС, что в соответствующее число раз увеличивает сложность. Это связано с различным назначением контактов микросхем, направлением коммутации и оборудованием, подключенным к ПЛИС.
Производителями прототипов данная задача решается возможностями только физических уровней одного типа, при этом среда передачи данных считается достаточно надёжной, а влияние топологии ПЛИС и эмулированной логики на процесс передачи данных не рассматривается. Такое решение, в совокупности с множеством вариантов коммутации ПЛИС друг с другом, приводит к чрезмерному усложнению при подключении блоков RTL-описания.
Применение метода TDM возможно только при увеличении частоты передачи данных в физических линиях между ПЛИС. При этом необходимо синхронизовать работу всех внутренних схем передатчиков и приёмников с блоками мультиплексирования и демультиплексирования соответственно. Как следствие, растёт сложность топологической трассировки ПЛИС.
При взаимодействии в проектируемом микропроцессоре блоков RTL-описания верхнего уровня только через регистровые передачи отсутствует необходимость синхронизации работы алгоритмов передачи данных и логики микропроцессора, а также передачи данных на разных физических уровнях. Однако, при наличии комбинационных схем, работы которых должна быть завершена до активного фронта частоты эмуляции и произведена после него возникает необходимость такой синхронизации. А при увеличении окружения блоков RTL-описания и количества логических связей между ними сложность данной работы существенно растёт. Это связано с необходимостью синхронизации работы большого количества высокочастотных схем ПЛИС.
Опыт показал, что с такой задачей САПР для топологической трассировки ПЛИС самостоятельно справиться не может. После завершения его работы присутствуют расхождения в работе высокочастотных схем. Такая ситуация наблюдается даже при заданных временных ограничениях. В результате необходима ручная работа по оптимизации топологии ПЛИС.
Функционирование прототипа подразумевает длительную и безошибочную работу. В противном случае гарантировать качество функциональной верификации невозможно. Особенно это касается линий передачи данных. Использование высокочастотных физических уровней повышает вероятность возникновения ошибок.
Производителями прототипов среда передачи между ПЛИС считается достаточно надёжной. Поэтому при взаимодействии ПЛИС они не используют методов контроля качества передачи данных. Это становится возможным прежде всего при регистровом взаимодействии блоков верхнего уровня в RTL-описании без участия комбинационной логики.
При прототипировании в ЗАО «МЦСТ» было выявлено увеличение частоты одиночных ошибок. Это связано с синхронной передачей большого количества данных как в ПЛИС, так и по МПП. Возникновение ошибок достаточно редкое – одна ошибка в неделю. Но при увеличении значений частоты до предельных они возникают чаще. Соответственно появление таких ошибок во время длительного запуска тестов приводит к сбою в работе. А при запуске операционной системы на прототипе к потере от одного до трёх дней работы прототипа.
Эффективность специализированного прототипа многоядерного микропроцессора на основе ПЛИС напрямую зависит от частоты эмуляции, которую можно на нём достичь. Быстродействие прототипа определяется передачей данных между ПЛИС в силу необходимости за ограниченное время (такт процессора) передавать состояния всех логических связей (рис. 2.9).
Адаптация несинтезируемых в ПЛИС блоков исходного RTL-описания микропроцессора
Для верификации данного микропроцессора необходимо разработать достаточно сложную систему. Для уменьшения времени и затрат на её создание, а также увеличения ремонтопригодности оборудования использовался метод реализации прототипов на основе ПЛИС с использованием унифицированного модуля процессорного ядра. При такой организации понадобится всё остальное оборудование микропроцессора разместить на дополнительном модуле – коммутаторе системном.
Схема модулей прототипа микропроцессора «Эльбрус-2S» приведены на рисунке 3.2. Модуль унифицированного ядра был функционально разделен на кэш (L1 и L2) и арифметико-логический блок. Такое разделение обусловлено особенностями блоков и возможностями ПЛИС. Для реализации арифметико-логического блока необходимо большое количество логических элементов, а для реализации кэша это не столь важно, но существенно наличие внутренней памяти в ПЛИС. Учитывая ограничения, стало возможным использование менее ёмкой микросхемы для реализации кэш блока.
Особенности реализации межпроцессорных и межмашинных связей требуют использования отдельных PLL в ПЛИС, а контроллеры оперативной памяти дополнительно ещё и DLL. Особенности расположения в ПЛИС указанных элементов, приводит к необходимости выделения двух микросхем и в модуле коммутатора. Дополнительным аргументом в пользу этого решения была оценка необходимой ёмкости ПЛИС, которая показала отсутствие запаса. В результате одна микросхема предназначалась для связи с модулями ядра и использование одного канала оперативной памяти (ОП), а вторая для обеспечения внешних связей микропроцессора и использования
В силу ограниченных сроков проектирование прототипа началось ещё до окончательной фиксации RTL-описания микропроцессора. В результате не было возможности установить точное количество устанавливаемых между блоками логических связей. Однако оценочные данные и желание максимизировать частоту эмуляции микропроцессора позволили путём применения метода расчёта частоты эмуляции микропроцессора в прототипе, учитывающего особенности сериализации и десериализации данных и используемых интерфейсов ПЛИС, определить необходимую ширину линий связи. В результате оказалось, что использование максимального количества каналов на основе физических уровней LVDS, доступных в ПЛИС, для связи коммутатора с модулями ядрами (как места с максимальной плотностью связей) позволяет достичь эффективной частоты эмуляции микропроцессора в 5-10 МГц. Наличие в структуре микропроцессора межмашинного канала ввода/вывода подразумевает работу с южным мостом, так как без него невозможно обеспечить штатное функционирование. Поэтому решено было реализовать модуль южного моста, содержащий всю периферию и соединяющийся с микропроцессором по штатному каналу ввода/вывода.
Для обеспечения надёжности решено было применять индустриальный конструктив на основе спецификации CPCI для реализации прототипа. Однако огромное количество связей модуля коммутатора с другими модулями, частота передачи по которым достигает 1 ГГц, потребовало применения специальных высокоплотных и высокочастотных разъёмов. Однако, несмотря на их свойства, количества контактов оказалось недостаточным. Поэтому для связи с южным мостом понадобился ещё один разъём. А из-за перегруженной лицевой панели пришлось разместить его таким образом, чтобы подключаться к нему через боковую стенку корпуса (рис. 3.3).
Использование новых разъёмов означало отсутствие спецификации, по которой можно реализовать конструктив. То есть необходимо было самостоятельно определять позиционирование разъёмов на модуле коммутатора системного.
Синхронизация логики всех ПЛИС друг с другом осуществляется благодаря реализации дерева синхросигналов. Суть состоит в том, что длины трасс синхросигналов каждого уровня дерева выровнены между собой. Это обеспечивает одновременное поступление фронтов синхросигналов на входы ПЛИС. Затем, имея синфазный входной синхросигнал, необходимо нивелировать влияние задержек на линиях передачи. Для этого используется специально разработанный модуль синхронизации, который обеспечивает одновременный старт работы логики ПЛИС.
Прототип восьмиядерного микропроцессора «Эльбрус-8С»
Анализ маршрута прототипирования многоядерных микропроцессоров, а также созданных прототипов на основе ПЛИС, показывает неэффективность принятой концепции с точки зрения времени ввода прототипа в эксплуатацию. Безусловно применение унифицированного интерфейса взаимодействия ПЛИС друг с другом существенно улучшило ситуацию. Однако, этот положительный эффект достигается только для нивелирования сложностей программной составляющей прототипа микропроцессора, но не улучшают ситуацию с уникальностью его аппаратного устройства. В результате практически отсутствует возможность использования более половины результатов предыдущих проектов.
Оптимизация маршрута прототипирования сводится к ликвидации последовательных связей между разными направлениями работы. А именно между аппаратной и программной частями прототипа. Это возможно только созданием унифицированного прототипа микропроцессора. Причём под унификацией будет пониматься реализация всего прототипа микропроцессора на одинаковых модулях, соединения между которыми стандартизовано.
Основным препятствием для реализации унифицированного прототипа микропроцессора является наличие уникальных составляющих в архитектуре микропроцессора. К ним относятся кеш L3 и системный коммутатор. Именно эти элементы невозможно было реализовать на тех же модулях, что и процессорные ядра, ввиду необходимости наличия внешней памяти. А их заимствование для нового прототипа невозможно из-за изменений в архитектуре микропроцессора. Таким образом, концепция унификации на основе модулей ядра процессорного не оправдала себя.
Альтернативным решением проблемы унификации может стать унификация модуля подсистемы памяти. На его основе также можно будет реализовать модуль процессорного ядра. Конечно, само по себе наличие унифицированного модуля не обеспечит возможности повторного использования прототипов. Но возможность интеграции различных поколений устройств возможно при унификации линии связи между модулями. Поэтому важно создать правило, по которому эти модули будут объединяться, то есть определить способ взаимодействия модулей между ними.
Здесь необходимо отметить основное отличие предлагаемого от решения фирмы Synopsys в системе HAPS. Система взаимодействия, применённая в HAPS, основанная на стандарте HAPSTrack, предполагает вывод на каждый разъём целого банка ПЛИС. Получается, что каждый канал взаимодействия модулей обладает весьма большой шириной. В результате или растут затраты на организацию связей между модулями, или неэффективно применяются контакты микросхем. Кроме того, затруднительно взаимодействие между ПЛИС разных поколений.
В отличие от решения фирмы Synopsys предлагается унификацию осуществить по методу минимизации количества значимых линий передачи, в том числе служебных. В этом случае активными останутся только линии передачи данных между ПЛИС. При этом в качестве физических уровней, на основе которых будет строится взаимодействие оптимально использовать CDR-трансиверы. Это даст минимизацию количества используемых контактов ввода/вывода и, соответственно, ширины каналов передачи данных, высокую частоту передачи данных, что в совокупности лишь незначительно занижает частоту эмуляции микропроцессора. При этом ключевой особенностью этого типа физических уровней является возможность восстанавливать синхросигнал по переключениям данных. То есть нет необходимости передавать его дополнительно между различными модулями.
Такое изменение архитектуры построения прототипа предполагает внесение изменений в одну из основных систем прототипа – систему синхронизации. Дело в том, что в текущих реализациях аппаратуры прототипа создано дерево синхросигналов, благодаря выравниванию всех уровней которого обеспечивается синхронность входных частот. Однако, такая реализация предполагает передачу базового синхросигнала между модулями. В результате образуется структура с центральным элементом. Что противоречит понятию "унифицированный". Также организована система синхронизации в HAPS.
При отказе от базового системного модуля возникает вопрос о расположении источника синхросигналов. Для решения данного вопроса предлагается сделать генераторы на каждом модуле независимыми и локальными, однако настроенными на одинаковую частоту. Это становится возможным благодаря тому, что нам важно не одновременное начало генерации, а синхронная работа в пределах одного такта синхронизации. Её можно добиться благодаря особенностям взаимодействия ПЛИС в прототипе. Алгоритм настройки синхронной работы прототипа без передачи базового синхросигнала назовём самосинхронизацией.