133
Институт Электронных Управляющих Машин УДК 004.383.4 На правах рукописи Юрлин Сергей Владимирович Разработка специализированных прототипов на основе программируемой логики для эффективной функциональной верификации многоядерных микропроцессоров 05.13.05 Элементы и устройства вычислительной техники и систем управления Диссертация на соискание учёной степени кандидата технических наук Научный руководитель: Бычков И.Н. Москва – 2014 г.

Институт Электронных ...mcst.ru/files/542283/350cd8/507a08/000000/dissertatsiya_yurlin_s.v... · HSTDM – High-Speed Time ... HAPS от компании Synopsys)

  • Upload
    leminh

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

Институт Электронных Управляющих Машин

УДК 004.383.4

На правах рукописи

Юрлин Сергей Владимирович

Разработка специализированных прототипов на основе

программируемой логики для эффективной функциональной

верификации многоядерных микропроцессоров

05.13.05 − Элементы и устройства вычислительной техники и систем

управления

Диссертация на соискание учёной степени

кандидата технических наук

Научный руководитель: Бычков И.Н.

Москва – 2014 г.

2

Содержание

Содержание .............................................................................................................. 2

Используемые сокращения .................................................................................... 6

Определения ............................................................................................................ 7

Введение................................................................................................................... 8

Актуальность работы........................................................................................... 8

Цель исследования............................................................................................... 9

Научная новизна работы ................................................................................... 10

Практическая ценность ..................................................................................... 11

Достоверность научных положений и выводов ............................................. 11

Личный вклад автора......................................................................................... 12

Апробация........................................................................................................... 12

Публикации по теме диссертации.................................................................... 12

Глава 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

3

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

4

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

5

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

Литература и ссылки........................................................................................... 128

6

Используемые сокращения

FPGA – Field-Programmable Gate Array

ICE – In-Circuit Emulator

LVDS – Low Voltage Differential Signaling

SSTL – Stub Series Terminated Logic

HPC – High Performance Computing

MC – Memory Controller

JTAG – Joint Test Action Group

DDR3 – Double-Data-Rate

SRAM – Static Random Access Memory

RTL – Register Transfer Language

CPLD – Complex Programmable Logic Device

PLL – Phase-locked loop

DPA – Dynamic Phase Alignment

TDM – Time-Division Multiplexing

HSTDM – High-Speed Time-Domain Multiplexing

ОП – Оперативная Память

СБИС – Сверхбольшая Интегральная Схема

ПЛИС – Программируемая Логическая Интегральная Схема

ВЧПП – Высокочастотные приёмо-передатчики

МПП – Многослойная печатная плата

СнК – Система на Кристалле

МП – Микропроцессор

САПР – Система Автоматического Проектирования

7

Определения

Прототип – аппаратное изделие на основе конфигурационной логики,

предназначенное для эмуляции описания микропроцессора на уровне

регистровых передач (RTL-описания).

Эмуляция – процесс копирования функций оригинального

проектируемого микропроцессора при помощи аппаратуры с целью

достижения максимального соответствия.

Моделирование (симуляция) – процесс копирования функций

оригинального проектируемого микропроцессора при помощи программных

продуктов с целью достижения максимального соответствия.

Специализированные прототипы – прототипы, созданные с учётом

структуры проектируемого микропроцессора в составе реальной

вычислительной системы с целью улучшения характеристик.

Несинтезируемость – отсутствие возможности при эмуляции

достижения полного соответствия оригиналу.

Частота эмуляции – частота тактирования логики микропроцессора при

её реализации в прототипе.

Частота синхронизации – частота, на которой происходит передача

данных от логики в каналы передачи данных.

Сбалансированное разделение – разделение RTL-модели

микропроцессора, при котором между полученными блоками передача

данных синхронизована по фронту частоты эмуляции, то есть отсутствует

комбинационная логика, требующая дополнительной отправки данных в

пределах одного и того же такта.

8

Введение

Актуальность работы

Для высокопроизводительных микропроцессоров характерна тенденция

постоянного увеличения количества вычислительных ядер при усложнении

подсистемы памяти. Наблюдается появление различных режимов

энергосбережения, увеличение пропускной способности каналов памяти,

межпроцессорного обмена и каналов ввода/вывода. Как следствие, при

разработке таких процессоров повышается сложность этапа функциональной

верификации модели микропроцессора в составе вычислительной системы.

Обеспечение за приемлемое время наиболее полного тестового

покрытия модели многоядерного процессора в виде RTL-описания (англ.

register transfer level, RTL) является основной задачей функциональной

верификации. В условиях сокращения сроков создания и выпуска новых

версий микропроцессоров общепринятым является применение

вспомогательной аппаратуры. Ведущими производителями в области

автоматизации проектирования предлагается несколько классов такой

аппаратуры:

Многоядерные серверы для программной симуляции на основе

процессоров общего назначения (напр. VCS от компании Synopsys);

Ускорители программной симуляции на основе графических

процессоров (напр. RocketSim от компании Rocketick);

Эмуляторы на основе специализированных процессоров (напр.

Palladium от компании Cadence);

Эмуляторы на основе микросхем программируемой логики (напр.

Veloce от компании Mentor Graphics);

Прототипы на основе микросхем программируемой логики (напр.

HAPS от компании Synopsys).

9

Анализ и применение вспомогательной аппаратуры от ведущих

производителей выявило недостатки её эксплуатационных характеристик при

существенных затратах на приобретение и использование.

Значительная минимизация затрат на вспомогательную аппаратуру,

уменьшение трудоёмкости её сопровождения и времени, необходимого для

проведения этапа функциональной верификации, достигается путём создания

специализированных прототипов на основе микросхем программируемой

логики (ПЛИС). При этом учитывается структура проектируемого

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

условиями при создании таких прототипов являются ограниченный бюджет и

строгие сроки на разработку, изготовление и наладку при увеличении

количества необходимого оборудования. Следовательно, актуальным

становится исследование и создание методов разработки эффективных

специализированных прототипов на основе ПЛИС и их реализация для

оптимального и успешного выполнения этапа функциональной верификации

многоядерных микропроцессоров.

Цель исследования

Цель диссертационной работы заключается разработке

специализированных прототипов на основе ПЛИС для эффективной

функциональной верификации многоядерных микропроцессоров и их

окружения.

В соответствии с этим были определены следующие задачи:

Проведение теоретических и экспериментальных исследований с

целью определения узких мест, замедляющих ввод

специализированных прототипов многоядерных микропроцессоров на

основе ПЛИС в эксплуатацию и ограничивающих их

производительность;

10

Разработка технических решений по созданию специализированных

прототипов на основе ПЛИС в пределах выделенного интервала

времени от момента определения структуры многоядерных

микропроцессоров до момента готовности их RTL-описания с учётом

увеличения количества оборудования;

Обеспечение максимальной частоты эмуляции специализированных

прототипов многоядерных микропроцессоров на основе ПЛИС;

Разработка специализированных прототипов на основе ПЛИС для

эффективной функциональной верификации четырёхъядерного и

восьмиядерного микропроцессоров серии «Эльбрус» и их окружения.

Научная новизна работы

Решение поставленных в диссертационной работе задач определяет

научную новизну исследования, которая заключается в следующем:

Определены узкие места, замедляющие ввод специализированных

прототипов многоядерных микропроцессоров на основе ПЛИС в

эксплуатацию и ограничивающие их частоту эмуляции;

Решена проблема унификации подключения в проекте ПЛИС блоков

RTL-описания к различным физическим уровням, что позволило

автоматизировать этот процесс;

Реализована система автоматизированной диагностики

функционирования аппаратуры специализированного прототипа на

основе ПЛИС, позволяющая определить её работоспособность,

выявить неисправные места и обеспечить контроль корректности

работы в процессе использования;

Предложен метод обеспечения максимальной частоты эмуляции

многоядерного микропроцессора в специализированном прототипе на

основе ПЛИС;

11

Разработаны специализированные прототипы на ПЛИС

четырёхъядерного и восьмиядерного микропроцессоров в составе

реальной вычислительной системы, обеспечившие успешное и

эффективное выполнение этапа функциональной верификации.

Практическая ценность

Практическая значимость исследований, выполненных по теме

диссертации, заключается в разработке специализированных прототипов

четырёхъядерного и восьмиядерного микропроцессоров на основе ПЛИС в

пределах выделенного интервала времени от момента определения

структуры многоядерных микропроцессоров до момента готовности их RTL-

описания. При этом была обеспечена максимальная, с учётом доступной

элементной базы, частота эмуляции микропроцессора в прототипе.

Разработанные методы нашли применение в четырёх различных

проектах, выполняемых для ЗАО «МЦСТ» в рамках задачи функциональной

верификации микропроцессоров: «Эльбрус-2S», «Эльбрус-8С», «МП-Ч», – а

также контроллера периферийных интерфейсов «КПИ-2». Применение

созданных решений при реализации прототипов позволило за отведённое

время успешно завершить этап функциональной верификации RTL-описания

указанных изделий, обеспечив минимизацию затрат.

Достоверность научных положений и выводов

Достоверность научных положений и выводов, полученных

соискателем, подтверждается теоретическими выкладками,

экспериментальными данными и успешным внедрением в процесс

функциональной верификации многоядерных микропроцессоров.

12

Личный вклад автора

Рассматриваемые в диссертации методы, уменьшающие время ввода в

эксплуатацию специализированных прототипов на основе ПЛИС и

повышающие частоту эмуляции, создавались коллективом разработчиков

ОАО «ИНЭУМ им. И.С. Брука» при личном участии автора. Научные

положения, рекомендации и выводы сформулированы лично автором.

Специализированные прототипы на основе ПЛИС, реализованные в

рамках задачи функциональной верификации RTL-описания многоядерных

микропроцессоров, спроектированы автором лично и реализованы

коллективом разработчиков в ОАО «ИНЭУМ им. И.С. Брука» и ЗАО

«МЦСТ» при личном участии автора. Система разделения RTL-описания

микропроцессоров разработана при личном участии автора.

Апробация

Результаты диссертационной работы изложены в ряде печатных

публикаций, докладывались на международных и всероссийских научных

конференциях в период с 2011 по 2014 гг. В их число входят: молодёжная

международная научная конференция «Гагаринские чтения» (Москва, 2011),

I-ая всероссийская научно-техническая конференция «Расплетинские

чтения» (Москва, 2014), научная сессия НИЯУ МИФИ-2014.

Публикации по теме диссертации

По теме диссертации опубликованы в 5 печатных работ в период с 2011

по 2014 гг:

1. Юрлин С.В. – Методы создания систем прототипирования на

основе программируемой логики. Труды молодёжной

международной научной конференции "Гагаринские чтения" –

Москва 2011, с. 126.

13

2. Будылин Ф.К., Полищук И.А., Слесарев М.В., Юрлин С.В. – Опыт

прототипирования микропроцессоров компании ЗАО «МЦСТ».

Журнал «Вопросы РадиоЭлектроники» – 2012, с. 132.

3. Бычков И.Н., Рябцев Ю.С., Юрлин С.В. – Варианты

распределенной сети питания для многоядерных

микропроцессоров. Журнал «Вопросы РадиоЭлектроники» – 2013,

с. 157.

4. Юрлин С.В., Бычков И.Н. – Прототипы микропроцессоров с

архитектурой «Эльбрус». Сборник тезисов докладов I-ой

всероссийской научно-технической конференции «Расплетинские

чтения» – Москва 2013, с. 216.

5. Слесарев М.В., Юрлин С.В. – Определение расчётной частоты

эмуляции микропроцессора в прототипе на основе ПЛИС. Журнал

«Вопросы РадиоЭлектроники» – 2014, с.119.

6. С.В. Юрлин – Реализация прототипов на основе ПЛИС для

функциональной верификации многоядерных микропроцессоров –

Научная сессия МИФИ-2014. Аннотация докладов. Т. 3., с. 65.

14

Глава 1. Аппаратные средства ускорения

функциональной верификации

В данной главе рассматривается задача обеспечения полного тестового

покрытия RTL-описания многоядерного микропроцессора при его

функциональной верификации, раскрывается проблема повышения скорости

тестирования при минимизации стоимости, анализируются существующие

способы её решения и предлагается использование специализированных

прототипов, повышающих эффективность проведения этапа функциональной

верификации.

1.1 Классификация

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

уровне регистровых передач являются RTL-симуляторы. Высокая сложность

моделей современных многоядерных микропроцессоров приводит к

неприемлемо длительному времени проведения этапа функциональной

верификации. Для сокращения сроков выпуска новых микросхем требуется

применять вспомогательные аппаратные средства, повышающие скорость

тестирования. В таблице 1.1 приведено их сравнение.

Применение для программной симуляции многоядерных серверов на

основе процессоров общего назначения (VCS от компании Synopsys) и

ускорителей на основе графических процессоров (RocketSim от компании

Rocketick) позволяет получить увеличение скорости тестирования. Но

существенное её увеличение возможно только путём использования

специальной аппаратуры. Её можно разделить на три основные группы.

Ускорители программного моделирования (от англ. hardware accelerator)

предназначены для увеличения скорости обработки данных в RTL-

симуляторах. Примером такого решения являются Palladium фирмы Cadance,

VStation PRO и Veloce фирмы Mentor Graphics. Их реализация основана на

15

использовании микросхем специального применения (от англ. application-

specific integrated circuit, ASIC), поэтому стоимость подобных систем крайне

высока. Кроме того, при моделировании крупных многоядерных

микропроцессоров, габариты аппаратуры существенно растут.

Аппаратные эмуляторы (от англ. hardware emulator) – это аппаратные

средства, предназначенные для имитации поведения проектируемых

микросхем. Они реализованы с использованием большого количества ПЛИС

(сотни штук), соединённых друг с другом линиями связи, например ZeBu

фирмы Synopsys. Такая организация позволяет сохранять прозрачность

эмулируемого RTL-описания микропроцессора путём вывода большого

количества диагностической информации, но недостаток такого решения –

высокая стоимость.

Более дешёвым решением в области эмуляции микропроцессоров

является прототип на основе ПЛИС (от англ. FPGA prototype), например

HAPS фирмы Synopsys. Здесь количество ПЛИС составляет от единиц до

нескольких десятков, что существенно снижает стоимость. Весьма

ограниченное количество конфигурационной логики увеличивает сложность

перевода RTL-описания для загрузки на прототип. Кроме того, снижается

количество диагностической информации, что осложняет локализацию

ошибок при функциональной верификации.

Для многих небольших компаний единственно приемлемым способом

макетирования является моделирование с помощью прототипа на основе

ПЛИС. Кроме того, для изготовления мелкосерийных образцов СБИС с

фабрикой согласовываются жёсткие сроки производства, причём в случае

неудачной итерации повторное изготовление может привести к превышению

отведённого времени до завершения проекта. Поэтому решение использовать

прототип на основе ПЛИС вместо реализации первой итерации СБИС

является целесообразным.

16

Специали

-зированные

прототипы

на

ПЛИС

Ограниченная

20 М

Гц

750

MG

ates

Долгое

0,6 х

0,5 х

0,2 м

1-3

Прототипы

на

ПЛИС

HA

PS

от

S

ynop

sys

Ограниченная

10 М

Гц

144

MG

ates

Долгое

0,6 х

0,4 х

0,4 м

2-4

Аппаратные

эмуляторы

Vel

oce

от

M

ento

r G

raph

ics

Подробная

1 МГц

1 B

Gat

es

Среднее

2 х

2 х

3 м

20-5

0

Аппаратные

ускорители

програм

много

моделирования

Pal

ladi

um

от

Cad

ence

Полная

100 кГц

2 B

Gat

es

Среднее

Ком

ната

100-

300

Серверы

и

граф

ические

ускорители

VC

S от

Syn

opsy

s,

Roc

ketS

im от

Roc

keti

ck

Полная

100 Гц

600

MG

ates

Низкое

Сервер

1

Таблица

1.1

. Сравнение

категорий

аппаратны

х средств функциональной верификации

Тип

Пример

изделия

Диагностическая

информация

Частота

моделирования

Максимальный

объём

эмулируемой

логики

Время подготовки

аппаратуры

Габариты

Относительная

стоимость

необходимой

ком

плектации

17

Производителями прототипов рассматриваются случаи, когда между

блоками RTL-описания устанавливается относительно небольшое количество

логических связей, среда передачи данных считается достаточно надёжной, а

тестирование подсистемы памяти требует дополнительных аппаратных

модулей. В рамках этого решения рост количества логических связей между

блоками RTL-описания и масштабов подсистемы памяти (как, например, в

многоядерных микропроцессорах серии «Эльбрус»), ввиду ограниченного

количества контактов ввода/вывода ПЛИС, приводит к существенному

снижению эффективности предлагаемых универсальных изделий. Решением

является изменение аппаратуры прототипа с учётом топологической

структуры проектируемого многоядерного микропроцессора. Такие

прототипы имеют более высокую скорость тестирования, что позволяет

обеспечить наиболее полное тестовое покрытие в кратчайшие сроки.

Поэтому, четвёртой группой специальных аппаратных средств можно

выделить специализированные прототипы на основе ПЛИС. Кроме того,

специфичность аппаратуры позволяет эмулировать работу многоядерного

микропроцессора в составе реальной вычислительной системы и, кроме

самого RTL-описания, проводить верификацию операционной системы,

программы начального старта и периферийного оборудования.

1.2 Программное моделирование

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

программное моделирование с помощью RTL-симуляторов (напр. ModelSim).

Оно повышает детализацию, однако существенно снижает покрытие тестами

из-за низкой скорости тестирования. Опыт ЗАО «МЦСТ» показывает, что

при симуляции целого четырёхъядерного микропроцессора серии «Эльбрус»

(Эльбрус-2S) вместе с южным мостом максимальная установленная частота

симуляции равна 30 Гц. А для восьмиядерного микропроцессора («Эльбрус-

8С») всего 1 Гц. При этом для моделирования работы от этапа включения до

18

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

Это слишком долгий срок для верификации. Поэтому для функциональной

верификации методом программного моделирования используются короткие

тесты, не требующие загрузки операционной системы. Это является

существенным ограничением, так как нет возможности обеспечения сложных

тестовых воздействий, обеспечивающих комплексную проверку

проектируемых структур. Для уменьшения времени программного

моделирования необходимо применение высокопроизводительной

аппаратуры.

1.3. Серверы на основе процессоров общего назначения

Наиболее очевидным и доступным вариантом становятся многоядерные

серверы на основе микропроцессоров общего назначения (напр. VCS от

компании Synopsys [3]). Это позволяет достигать ускорения моделирования

до 10 раз. Но для больших проектов многоядерных микропроцессоров этого

недостаточно. Для преодоления этого ограничения существует метод

контрольных точек. Он заключается в том, что симулятором, написанным на

языках высокого уровня, формируются фиксированные точки загрузки

операционной системы и состояния сигналов и регистров в них. Таким

образом, появляется возможность задания некоторого набора входных

воздействий с равномерным шагом, вплоть до загрузки операционной

системы. Симуляцию можно запускать с каждой контрольной точки

независимо. Тогда, имея N контрольных точек и N вычислительных машин,

есть возможность за относительно короткое время (порядка месяца) получить

результат моделирования целого микропроцессора. Очевидна низкая

эффективность данного метода, так как в случае исправления найденной

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

19

1.4. Ускорители на основе графических ядер

Одним из вариантов ускорения программного моделирования RTL-

описания микропроцессора является использование ускорителей на основе

графических процессоров (напр. RocketSim от компании Rocketick [61]).

Производителем данного решения заявлено ускорение в 10 раз, но опыт

использования графических процессоров с большим количеством ядер

показал ускорение симуляции до 25 раз [34]. Однако, дальнейшее ускорение

оказалось весьма затруднительным из-за низкого распараллеливания

симуляции и высоких накладных расходов на передачу результатов

вычислений [33]. Кроме того, у графических ускорителей есть ограничение в

эмулируемой логике (до 600 MGates), которое не позволяет моделировать

объёмное RTL-описание многоядерных микропроцессоров целиком.

1.5 Промышленные аппаратные средства

Для больших проектов многоядерных микропроцессоров возможностей

многоядерных серверов на основе процессоров общего назначения и

ускорителей на основе графических процессоров недостаточно. Для

получения значимого ускорения моделирования необходимо применение

промышленных аппаратных средств, предназначенных для функциональной

верификации.

1.5.1 Аппаратные ускорители программного моделирования

Существенного увеличения частоты программного моделирования

позволяют достичь промышленные аппаратные ускорители на основе

множества микросхем специального применения (ASIC). Архитектура

данных микросхем и системы в целом специализированны под программное

моделирование RTL-описания микропроцессора, что позволяет добиться

достаточно высокой частоты эмуляции микропроцессора по сравнению с

вычислениями на обычных серверах.

20

Предлагаемое производителем программное обеспечение позволяет

быстро производить переход к моделированию. Недостатком данного

предложения становится тестовое окружение. Его расположение вне

ускорителя существенно занижает производительность за счёт затрат на

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

Поэтому, для получения максимальной скорости моделирования,

производителями таких систем рекомендуется размещать тестовое

окружение в ускорителе. Это требует определённой его переделки под

определённый шаблон. А наличие весьма большой базы тестов, накопленной

за годы верификации, осложняет данный переход.

Наиболее распространёнными аппаратными ускорителями

программного моделирования являются:

Palladium от Cadance [13, 14, 15, 16],

VStation PRO от Mentor Graphics [9],

Рисунок 1.1. Система прототипирования Palladium.

21

Рисунок 1.2. Аппаратный ускоритель программного моделирования фирмы

Mentor Graphics .

Отличительными особенностями данных систем является:

Возможность просмотра всех сигналов и памятей проектируемой

микросхемы.

Сохранения истории работы модели.

Возможность остановки модели и последующего его запуска с этого

места.

Основными недостатками аппаратных ускорителей являются:

Высокая стоимость оборудования

Существенный размер при проектировании серверных

микропроцессоров.

Высокое энергопотребление.

Отсутствие специализированной периферии.

В таблице 1.2 приведены максимальные характеристики для аппаратных

ускорителей программного моделирования. Такие значения, как правило, не

достигаются в реальных системах. Особенно это касается частоты эмуляции.

Например, для системы Palladium частота в 4 МГц может быть достигнута

практически на нулевой загрузке системы. Реальный показатель существенно

ниже.

22

Таблица 1.2. Характеристики аппаратных ускорителей

Параметр Palladium VStation

PRO Ёмкость на штуку, MG 8 6,67 Ёмкость кластера, MG 2000 120 Частота эмуляции, МГц 4 1 Скорость компиляции, MG/час 35 5 Оперативная память, ГБ 1000 0,5 Количество портов ввода/вывода 147456 4608

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

может уместиться на столе. Однако, при проектировании больших систем

необходимо объединять такие блоки в кластеры. Размер таких кластеров для

моделирования проекта микропроцессора содержащего 1GGates сопоставим

с серверной комнатой. Естественно появляются накладные расходы на

охлаждение и энергопотребление такой системы.

1.5.2 Аппаратные Эмуляторы

Промежуточное место между аппаратными ускорителями и прототипами

занимают аппаратные эмуляторы на основе микросхем программируемой

логики. Преимуществом данных систем является унифицированность и

масштабность. Это позволяет эмулировать большие проекты микросхем без

уменьшения диагностической информации. Это выгодно отличает их от

прототипов. Это достигается за счёт использования большого числа ПЛИС,

соединённых друг с другом. Очевидным недостатком системы является

высокая стоимость. Кроме того, в эмуляторах отсутствует возможность

эмуляции окружения проектируемого микропроцессора. То есть аппаратные

эмуляторы предназначены для верификации лишь самих микросхем.

Наиболее распространёнными эмуляторами являются:

Veloce от фирмы Mentor Graphics [8, 11];

ZeBu-Server Enterprise Emulator от фирмы Synopsys [6, 7];

23

HPC (High Performance Computing) системы от фирмы Dini Group

[48, 50, 51]

Суть конструкции эмуляторов состоит в том, чтобы создать

унифицированный модуль (рис. 1.3), а затем использовать множество таких

модулей объединённых в одну систему для эмуляции больших систем (рис.

1.4).

Рисунок 1.3. Унифицированные модули для масштабируемых систем

прототипирования.

А Б

Рисунок 1.4. Кластер на ПЛИС DNBFC_S12_12.

Ещё одним недостатком таких систем является узкий канал передачи

данных между модулями (чаще всего это PCIe x4). Причём часто такие

системы объединяются по принципу «звезда», где в центре располагается

коммутатор PCIe. Особенно критичным это становится при необходимости

связывать один модуль с несколькими. В этом случае возникает каскадный

24

рост количества маршрутизаторов в линии связи, что существенно замедляет

частоту эмуляции больших систем. Кроме того, в результате использования

унифицированных модулей нет возможности эмуляции некоторых блоков

микропроцессора, что потребует разработки специализированных модулей.

Характеристики аппаратных эмуляторов приведены в таблице 1.3.

Таблица 1.3. Характеристики ZeBu-Server Enterprise Emulator.

Параметр Veloce ZeBu HPC Ёмкость на штуку, MG 8 6, 12 или 22 12 – 20 Ёмкость кластера, MG 512 1000 Частота эмуляции, МГц 1,5 2 - 8 Скорость компиляции, MG/час 25 Оперативная память, ГБ 32 4 - 200 4 - N Количество ПЛИС, шт. До сотен До сотен Количество портов ввода/вывода 8192 1,200

Рисунок 1.5. ZeBu-Server Enterprise Emulator от Synopsys.

Рисунок 1.6. Система прототипирования фирмы Mentor Graphics.

25

1.5.3 Прототипы на основе ПЛИС

Прототип микропроцессора представляет собой сложную систему на

основе нескольких микросхем ПЛИС, соединённых между собой. Он

предназначен для создания реконфигурируемой аппаратной копии

проектируемой микросхемы. Достоинствами данной системы являются:

Низкая стоимость в сравнению с аппаратными ускорителями.

Большая частота эмуляции

Компактность

Основными недостатками аппаратных эмуляторов на ПЛИС являются:

Необходимость перекомпиляции проекта и переконфигурации

ПЛИС при любом исправлении содержимого проекта.

Наличие специализированного программного обеспечения для

разделения модели микросхемы на части для загрузки в отдельные

ПЛИС.

В некоторых случаях системой прототипирования называют аппаратно-

программную симуляцию. В ней аппаратно эмулируется только ключевая

часть разрабатываемого изделия, а всё остальное моделирование проводится

посредством программным способом.

Наиболее известными промышленными системами прототипирования на

основе ПЛИС являются:

Система HAPS от Synopsys [4],

Внутрисхемная эмуляция (In-circuit emulation) [40, 41, 44],

Модульная система фирмы proFPGA [71].

Наиболее известной универсальной системой прототипирования на

ПЛИС являются прототипы HAPS производства Synopsys. Она основана на

обеспечении возможности масштабирования, что обеспечивается благодаря

использованию стандарта hapstrak [47]. В данной реализации отсутствуют

связи ПЛИС-ПЛИС, реализованные на МПП, и всё взаимодействие между

26

ними ведётся через жгутовые соединения. Кроме того, предлагаемые модули

расширения не предназначены для непосредственной коммутации в корпусе

и также должны подключаться жгутовыми соединениями.

В результате реализации прототипа большой системы данное решение

будет массивным, так как для эмуляции микропроцессора «Эльбрус-8С»

потребуется 4 системы с рисунка 1.7-А, дополненных несколькими модулями

с периферией, и менее надёжным за счёт длинных связей между блоками.

А Б

Рисунок 1.7. Система прототипирования серии HAPS-70.

Таблица 1.4. Характеристики системы HAPS-70.

Параметр HAPS-70 Ёмкость, MG 48 Ёмкость кластера, MG 144 Оперативная память, ГБ Дочерняя плата Количество ПЛИС, шт. 12 Количество портов ввода/вывода 13512 Время ввода в эксплуатацию, мес 3

Другим вариантом реализации универсальных прототипов является

решение фирмы proFPGA (рис. 1.8). Эта фирма предлагает организовывать

большие системы из универсальных модулей. К достоинствам данной

системы можно отнести лёгкость сборки. Но возможности расширения в ней

ограничены. Кроме того, как и все подобные системы, она предназначена для

эмуляции работы только микропроцессора, то есть не позволяет

27

верифицировать его работу в составе реальной вычислительной системы без

дополнительной разработки модулей.

Рисунок 1.8. Пример соединения модулей фирмы proFPGA.

1.6 Специализированные прототипы на ПЛИС

В отдельный класс устройств были выделены специализированные

прототипы на основе ПЛИС. Их отличие от унифицированных прототипов

заключается в организации связей и структуры прототипа с учётом

структуры проектируемого микропроцессора. Это позволяет увеличивать

частоту эмуляции, проводить эмуляцию в составе реальной вычислительно

машины, в которой предполагается использовать микропроцессор.

1.6.1 Система прототипирования Intel

Для функциональной верификации четырёхъядерного микропроцессора

с микроархитектурой Nehalem в фирме Intel был создан специализированный

прототип на основе ПЛИС [62]. На рисунке 1.9 представлен один модуль

данной системы, а на 1.10 – система, состоящая из 9 модулей. Система была

названа MCEMU (The Many-Core Emulation System) и предназначалась

только для эмуляции вычислительных ядер без подсистемы памяти и

внешнего окружения микропроцессора. Именно специфичность

подключения ПЛИС между собой, ориентированная на структуру

28

эмулируемого ядра, свидетельствует о принадлежности к классу

специализированных прототипов.

Рисунок 1.9. Модуль системы MCEMU.

Рисунок 1.10. Система MCEMU из девяти модулей.

Небольшие размеры эмулируемого оборудования и специфичность

модулей прототипа позволили получить частоту эмуляции в 10 МГц при

небольших габаритах системы. Основными недостатками данной системы

является наличие определённых ресурсов системы, например памяти DDR

или высокоскоростных линий связи, только у определённых ПЛИС.

29

1.6.2 Система прототипирования IBM

Для функциональной верификации многоядерного микропроцессора

Bluegene/Q в фирме IMD был создан специализированный прототип на

основе ПЛИС [58]. Для его реализации была выбрана топология двойной

звезды (Twinstar). Прототип состоит из 28 небольших модулей, которые

могут быть двух типов: логические (два ПЛИС) и для взаимодйствия с

оперативной памятью (1 ПЛИС + DDR2). Взаимодействие между модулями

происходит через коммутаторы, реализованные на отдельных ПЛИС на

соединительной панели.

Создание данной системы позволило проводить эмуляцию

микропроцессора на частоте 4 МГц. Здесь также отсутствует возможность

функциональной верификации в составе вычислительной машины.

Рисунок 1.11. Модульная система Twinstar от фирмы IBM.

1.6.3 Прототипы ЗАО «МЦСТ»

При проектировании предыдущих поколений микропроцессоров серии

«Эльбрус» в компании ЗАО «МЦСТ» также столкнулись с проблемой выбора

средства функциональной верификации. Высокая стоимость промышленных

30

решений была существенным ограничивающим фактором. По той же

причине отказались от итерационного макетирования кристалла. Поэтому

решено было разрабатывать специализированные прототипы на основе

ПЛИС своими силами. Этому способствовало наличие квалифицированных

кадров по разработке вычислительных машин.

Создание специализированных прототипов на основе ПЛИС помогает

точнее воспроизвести особенности функционирования проектируемого

микропроцессора и его окружения, сохраняя при этом стоимость и темпы

верификации на приемлемом уровне. В результате, минимизируется

стоимость проведения этапа функциональной верификации и обеспечивается

выход микросхем с минимально возможным количеством итераций.

Рисунок 1.12. Прототипы двухъядерного микропроцессора в ЗАО «МЦСТ».

Опыт работы ЗАО «МЦСТ» показал эффективность разработки

собственной системы прототипирования [49]. Для нескольких проектов были

созданы прототипы на основе ПЛИС с учётом структуры микропроцессора.

На созданных прототипах были достигнуты параметры, приведённые в

таблице 1.5. Их разработка и использование позволило выявить большое

число ошибок.

Таблица 1.5. Параметры прототипов микропроцессоров.

31

Параметр Прототип

микропроцессора «Эльбрус-S»

Прототип двухъядерного

микропроцессора«Эльбрус-2С+»

Количество транзисторов эмулированного микропроцессора, млн. шт.

218 368

Количество процессорных ядер, шт. 1 2 Частота эмуляции, МГц 5 3 Пиковая потребляемая мощность, Вт 100 330

Используемые ПЛИС Stratix II EP2S180

Stratix III EP3S340

Количество ПЛИС 7 11 Количество доступных логических элементов, млн. шт.

1,3 3,7

Количество и тип каналов памяти 2 канала DDR2 2 канала DDR2 Размеры корпуса, мм 483х130х680 483х130х680 Стоимость, усл.ед. 4.3 4.8 Время изготовления, мес. 8 7 Время ввода в эксплуатацию, мес. 7 4

1.6.3.1 Недостатки созданных специализированных прототипов на

основе ПЛИС

Основным недостатком созданных в ЗАО «МЦСТ» специализированных

прототипов на основе ПЛИС является его создание под структуру

конкретного микропроцессор. Их повторное применение весьма

маловероятно. Причём это касается как аппаратной, так и программной

части. В такой ситуации конкурентным преимуществом становится только

эффективность применения прототипа в каждом проекте отдельно. Поэтому

при его реализации необходимо учитывать особенности проектируемого

микропроцессора. Наиболее критичными с точки зрения реализации

прототипа становятся:

большой объём RTL-описания,

высокая связность блоков микропроцессора,

необходимость наличия специализированной периферии.

Неравномерность распределения логических связей в структуре

микропроцессора и использование интерфейсов собственной разработки

вынуждает отказаться от универсальных систем прототипирования, так как

32

их использование будет уменьшать скорость этапа функциональной

верификации и также потребует проектирования и изготовления

дополнительного оборудования.

В сфере прототипирования отсутствуют стандарты разработки

аппаратуры. Поэтому при решении каждой конкретной задачи выбирается

наиболее оптимальный форм фактор аппаратуры с точки зрения

минимизации стоимости и габаритов. Причём из-за того, что подобные

системы – это не массовый продукт, то часто выигрыш в производительности

аппаратного эмулятора ставят выше полного соответствия выбираемому

стандарту. Кроме того, реализация прототипа микропроцессора на

унифицированных модулях на данном уровне развития технологии ПЛИС

ограничивает производительность системы. В результате происходит отход

от универсальности.

В силу ограниченных сроков реализации прототипов микропроцессоров

зачастую отсутствует возможность повторной итерации изготовления с

учётом исправления допущенных в аппаратуре ошибок. Поэтому

неработоспособность первой версии прототипа и длительный поиск

допущенной ошибки может привести к срыву работ по верификации RTL-

описания микропроцессора.

В прототипах микропроцессоров «Эльбрус-S» и «Эльбрус-2С+»

основным недостатком конструкции была большая МПП, в реализации

которой не было заложено конструктивной жёсткости. Поэтому при

перепайке некоторых соединений и микросхем в плате возникали

деформации, что приводило к поломке других связей. В результате

получился замкнутый цикл перепайки, в течение которого весь прототип

оставался в неработоспособном состоянии.

Другим недостатком созданных систем являлась организация передачи

данных. При сериализации все данные равномерно в ручном режиме

укладывались на все линии связи между микросхемами. Таким образом, для

33

исправления даже одного неработающего бита приходилось переделывать

всю систему сериализации и десериализации, что, естественно, требовало

большого количества времени.

Так как неизвестен действительный режим работы прототипов, то

необходимо наличие регулировок для управления уровнями напряжения и

частотой. В реализованных системах прототипирования уровень напряжения

задавался резисторами жёстко. Поэтому, в случае необходимости его

изменения, требовалась перепайка резистора на другой номинал.

Этап функциональной верификации разрабатываемого микропроцессора

– это длительный процесс, поэтому от надёжности используемой аппаратуры

зависит многое. Созданные прототипы на основе ПЛИС не отличались

надёжностью исполнения, а отсутствие методики проверки

работоспособности не позволило выявлять и устранять нестабильности

работы. Поэтому при работе с ними происходили сбои. Их возникновение

останавливало процесс функциональной верификации.

1.6.3.2 Функциональная верификация с использованием созданных

специализированных прототипов на основе ПЛИС

Все указанные недостатки созданных специализированных прототипов

на основе ПЛИС создали трудности для начала и выполнения этапа

функциональной верификации. Тем не менее, прототипы позволили

производить поиск и локализацию ошибок в RTL-описании. На рисунке 1.13

можно увидеть зависимость выявленных и исправленных ошибок от времени

при верификации различных микропроцессоров на прототипе.

Согласно статистике за время тестирования было выявлено:

146 ошибок на "Эльбрус-S" за 4 года отладки;

32 ошибки на "Эльбрус-2С+" за 3,5 года отладки;

Разница интенсивности нахождения ошибок обуславливается не только

эффективностью созданного прототипа, но и количеством нововведений в

проектируемом микропроцессоре. Выход кривых на горизонтальный участок

34

говорит о выявлении большинства ошибок. Однако, некоторые ошибки,

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

изготовленного. При этом ошибку удаётся повторить и на прототипе

изготовленного микропроцессора. На последнем участке кривых графика

можно наблюдать подобную ситуацию. Это связано не с низким качеством

прототипов, а с методикой тестирования, которой данная работа не касается.

0

20

40

60

80

100

120

140

160

0 12 24 36 48 60

Месяцы

Ошибки, шт.

Эльбрус-S Эльбрус-2C+

Рисунок 1.13. График исправления ошибок при верификации

микропроцессоров семейства "Эльбрус" на прототипе.

1.6.4 Программное обеспечение для функционирования прототипа

микропроцессора

Программное обеспечение специализированных прототипов на основе

ПЛИС аналогично универсальным прототипам. Технологический процесс

прототипирования предполагает обеспечение функций взаимодействия

между ПЛИС, разделения RTL-описания на части и инженерных функций по

контролю, диагностике и синхронизации.

35

Учёт недостатков созданных специализированных прототипов требует

контроля выполнения всех функций. Для проверки функционирования

каналов передачи данных необходимы тесты связей прототипа. При этом для

гарантии надёжной работы важно обеспечить возможность длительного

тестирования.

Разделение RTL-описания микропроцессора на части для их загрузки и

исполнения в ПЛИС требует наличия специального программного продукта.

Для каждого прототипа был создан отдельный набор командных файлов,

который приходится переделывать даже при незначительных изменениях

архитектуры микропроцессора.

В силу сложности полученной системы необходима проверка

правильности разделения RTL-описания в прототипе. Особенно это

актуально с учётом необходимости замены ряда элементов микропроцессора

на их прототипипный аналог. Для верификации полученной системы

создаётся модель прототипа. Она представляет собой программно описанную

структуру, совпадающую со структурой аппаратуры. Результат исполнения

тестов на модели прототипа должен полностью совпадать с результатом

работы модели самого микропроцессора. Причём подключение обновлённого

блока может приводить к каскадным изменениям в командных файлах, что

отнимает значительное количество времени.

1.7 Сравнение способов функциональной верификации

Аппаратные ускорители хоть и позволяют проводить гораздо более

быстрое моделирование RTL-описания, но требуют для этого огромных

затрат на создание и поддержание полученной системы прототипирования.

Размеры данной системы значительны. Например, для моделирования

проектируемых многоядерных микропроцессоров серии «Эльбрус» они

будут сравнимы с комнатой. А тот факт, что современные микропроцессоры

имеют межпроцессорные связи, то для их тестирования необходимо 4

36

прототипа, а значит четыре комнаты. Естественно, в этом случае растёт не

только количество необходимого места, но и геометрически увеличивается

стоимость данной системы.

В то же время специализированные прототипы на основе ПЛИС

обладают самой быстрой частотой эмуляции микропроцессоров, а также

возможностью верификации, как RTL-описания микропроцессора с

использованием реальных устройств памяти и ввода/вывода, так и

программного обеспечения. Его недостатком является необходимость

разработки собственного прототипа на основе ПЛИС, и его последующее

сопровождение. Однако, с учётом необходимости создания

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

помощью аппаратного ускорителя и эмулятора, этот недостаток прототипов

нивелируется.

При выборе способа верификации разрабатываемого RTL-описания

процессора важно помнить, что при увеличении частоты эмуляции снижается

детализация ошибок. Это осложняет их локализацию (рис. 1.10).

37

Рисунок 1.14. Схематичная зависимость точности верификации и

производительности для различных вариантов функциональной

верификации.

Опыт создания специализированных прототипов на основе ПЛИС для

функциональной верификации показывает, что проектирование с учётом

структуры многоядерного микропроцессора и ввод в эксплуатацию

собственных прототипов на основе ПЛИС укладывается в доступный

интервал времени до готовности RTL-описания. Размер реализованных

систем прототипирования на ПЛИС позволяет проводить эмуляцию четырёх

процессорного режима работы микропроцессоров в небольших помещенияю

и при минимизации расходов на сопровождение. Кроме того, стоимость

специализированных прототипов существенно ниже стоимости других

промышленных универсальных аппаратных средств ускорения этапа

функциональной верификации.

1.8 Выводы

При функциональной верификации многоядерных микропроцессоров

промышленные универсальные решения оказываются неподходящими по

следующим причинам:

При росте окружения блоков RTL-описания и количества

логических связей между ними, как, например, у микропроцессоров

серии «Эльбрус», требуется целостное моделирование

микропроцессора, что приводит к большим размерам и стоимости

промышленной эмулирующей аппаратуры;

Ограниченные сроки проектирования и, соответственно, этапа

функциональной верификации требуют максимальную

производительность от эмулирующей аппаратуры;

38

Поддержка незнакомой аппаратуры требует привлечение сторонних

специалистов;

Высокая стоимость промышленной универсальной аппаратуры для

ускорения этапа функциональной верификации, что не коррелирует

с ограниченным бюджетом на разработку микросхем.

Отсутствие отработки решений планируемых к применению в

вычислительной системе на основе проектируемого

микропроцессора.

В результате из доступных решений оптимальным с точки зрения

минимизации стоимости при сохранении темпов верификации оказываются

прототипы на основе ПЛИС. В тоже время способ реализации предлагаемых

универсальных прототипов показывает возможность увеличения темпов

функциональной верификации путём оптимизации связей в прототипе. Всё

это делает специализированные прототипы на основе ПЛИС оптимальным

способом для эмуляции многоядерных микропроцессоров на этапе

функциональной верификации. Однако, опыт их применения показывает

большую сложность и длительность их проектирования, реализации и

использования. При этом время ввода их в эксплуатацию ограничено

временем готовности RTL-описания микропроцессора. Следовательно,

необходима разработка эффективных методов реализации и эксплуатации

прототипов для повышения интенсивности тестирования на этапе

функциональной верификации многоядерных микропроцессоров.

39

Глава 2. Особенности применения специализированных

прототипов на основе ПЛИС

В этой главе рассматриваются основные процессы, замедляющие ввод

специализированных прототипов многоядерных микропроцессоров на основе

ПЛИС в эксплуатацию и ограничивающих частоту эмуляции. Для

повышения эффективности применения прототипов вводится интерфейс

взаимодействия ПЛИС между собой, обеспечивающий максимизацию

частоты эмуляции при росте окружения блоков RTL-описания и количества

логических связей между ними. Он позволяет унифицирующий подключение

эмулируемой блоков RTL-описания, и автоматизировать диагностику

функционирования прототипа для оценки его надежности и определения

конкретных неработоспособных мест, в случае их наличия. Раскрывается

метод повышения частоты эмуляции микропроцессора в прототипе,

учитывающий особенности передачи данных между ПЛИС при росте

окружения блоков RTL-описания и количества логических связей между

ними.

2.1 Маршрут прототипирования

Многоядерные микропроцессоры представляет собой целостную

систему большого размера. Ёмкости одной микросхемы недостаточно для его

эмуляции целиком. Поэтому необходим набор ПЛИС. Это приводит к

возникновению ряда задач [58, 65].

В первую очередь, реализация специализированного прототипа на основе

ПЛИС осложнена необходимостью создания аппаратуры, срок разработки

которой ограничен. Начало её проектирования зависит от определения

топологического устройства микропроцессора, а окончание – от времени

готовности его RTL-описания. Следует учесть, что увеличение времени

разработки специализированного прототипа на основе ПЛИС в таких

40

условиях может свести на нет все его преимущества, связанные с

увеличением скорости тестирования RTL-описания.

Во-вторых – разделение RTL-описания на части для их эмуляции в

различных ПЛИС. Здесь возникают сложности, связанные с

ограниченностью ресурсов микросхем (ёмкость, встроенная память,

количество контактов ввода/вывода), что требует грамотного распределения

элементов микропроцессора по блокам, и адаптацией несинтезируемых в

ПЛИС элементов микропроцессора. Под несинтезируемостью понимается

невозможность реализации средствами ПЛИС. В этом случае, требуется

дополнительная работа по замене таких элементов на их «прототипный»

аналог. Достоверность полученных аналогов доказывается сравнением

результатов моделирований исходного RTL-описания микропроцессора и его

прототипного аналога при выполнении специфичных данному блоку задач.

При этом большая часть заменяемых элементов является конечными

устройствами (например, блоки памяти, физические уровни интерфейсов

каналов ввода/вывода и внешней памяти). Такие замены сохраняют высокую

степень идентичности полученного решения оригиналу и не влияют на

результат функциональной диагностики. Наличие ПЛИС разных типов и

разного набора ввода/вывода в одном прототипе, увеличивает сложность

прототипирования в соответствующее число раз.

В-третьих – необходимость поддержания синхронности полученных

блоков микропроцессора. Особенно это актуально при выделении в

прототипе нескольких модулей. Идеальная синфазность синхросигналов в

разных микросхемах невозможна. Это связано с разными физическими

задержками при работе для каждого отдельного элемента системы, так как их

использование и регулировка в ПЛИС обеспечивается аналоговыми схемами.

Поэтому в реальной системе необходимо определить погрешность синфазной

работы. Для её определения в системе предлагается ввести частоту

синхронизации, частота которой существенно выше частоты эмуляции

41

микропроцессора. А под синфазностью синхросигналов эмуляции во всех

ПЛИС прототипа будем понимать их одновременное переключение в

пределах одного такта частоты синхронизации.

Сложность вышеуказанных работ неизбежно приводят к возникновению

ошибок (в том числе неявных), а ограниченные сроки проектирования

совместно с длительным временем поиска неисправностей зачастую не

позволяют произвести их исправление путём создания второй версии

изделия. Поэтому четвёртой задачей является быстрое проведение

диагностики функционирования применяемой впервые аппаратуры

прототипа, надёжность которой неизвестна. Для этого необходимо

тестирование под шаблонной задачей. Корректность её исполнения в течение

длительного времени, покрывающего запуск и исполнение самого

длительного процесса, покажет надёжность реализованного прототипа.

Анализ всех сложностей и этапов проектирования прототипов на основе

ПЛИС позволил вывести зависимости между ними. Результатом стал

маршрут прототипирования микропроцессоров (рис. 2.1).

В маршруте прототипирования присутствует большое число обратных

связей. Их наличие обусловлено многочисленными исправлениями текущих

реализации на этапе адаптации RTL-описания к исполнению на прототипе и

диагностикой функционирования аппаратуры. Кроме того, указанные задачи

функционально зависят друг от друга, что приводит к увеличению

длительности ввода прототипа в эксплуатацию.

42

Рисунок 2.1. Маршрут прототипирования.

2.2 Разработка специализированного прототипа на основе

ПЛИС

2.2.1 Проблема ограниченной ёмкости ПЛИС

Одним из основных параметром специализированного прототипа

является частота эмуляции микропроцессора – частота работы

микропроцессора при его реализации в прототипе. Для малых систем она

43

ограничена возможностями микросхемы ПЛИС, то есть её максимальной

частотой работы [57]. При прототипировании многоядерных

микропроцессоров емкости одной ПЛИС недостаточно для конфигурации

всей системы. Поэтому необходимо использовать набор ПЛИС [56]. Прямой

зависимости количества логических элементов ПЛИС логическим элементам

микропроцессора нет. Однако, из опыта работы ЗАО «МЦСТ» можно

оценочно положить:

1 MG ~ 30000 LE

Следуя данной оценке, получим, что для реализации в прототипе

четырёхъядерного микропроцессора «Эльбрус-2S» (~250MGates)

минимально необходимо – 7 680 000 LE, а для восьмиядерного

микропроцессора «Эльбрус-8С» – 22 500 000 LE.

В таблице 2.1 приведены оценки доступных на момент исследования

ПЛИС при использовании их для создания прототипа.

Таблица 2.1. Сравнение ПЛИС.

Altera Stratix IV

Xilinx Virtex-6

Количество логических элементов ПЛИС (LE)

813 000 758 000

Количество логических элементов микропроцессора на один ПЛИС (Mgates)

20-30 17-27

Количество контактов ввода/вывода 1120 1200 Минимально необходимое количество микросхем для четырёхядерного микропроцессра серии «Эльбрус»

9,3 10,1

Минимально необходимое количество микросхем для восьмиядерного микропроцессра серии «Эльбрус»

27,4 29,6

Использование Altera позволит сократить расходы на изготовление

прототипов. Дополнительным достоинством данной фирмы является более

быстрая компиляция проектов в сопутствующем программном обеспечении.

При учёте предварительной документации на следующие поколения

микросхем ПЛИС [28, 29, 30] видно, что увеличение количества логических

элементов у Altera составит 950 000, а Xilinx – 2 000 000. С учётом данных

44

значений с точки зрения логического объёма целесообразно использование

микросхем от Xilinx. Однако, количество необходимой периферии и линий

связи между ПЛИС не дало бы возможности получить выгоду от их

использования.

Применение нескольких ПЛИС для эмуляции одного микропроцессора

требует разделения его RTL-описания на блоки, каждому из которых

соответствует одна ПЛИС. Оно должно проводиться таким образом, чтобы

количество логических связей к другим блокам было минимальным, а объём

блока допускал его представление внутри одной микросхемы [1, 36, 37, 38].

Однако даже в этих условиях количество логических связей значительно

больше контактов ввода/вывода ПЛИС (для одного из блоков RTL-описания

восьмиядерного микропроцессора серии «Эльбрус» было получено

соотношение 5 к 1). Кроме того, не все контакты ввода/вывода ПЛИС могут

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

микропроцессора. Это связано с наличием элементов архитектуры

микропроцессора или его сопровождающих, которые невозможно

реализовать средствами самой микросхемы ПЛИС. Поэтому необходимо их

отдельное размещение в прототипе и соединение с логикой

микропроцессора.

Малое количество доступных контактов, а значит и проводников в

линии связи, требует применение различных методов сериализации. В

результате растёт время на передачу данных между ПЛИС, что снижает

производительность прототипа.

2.2.2 Проблема разработки аппаратуры прототипа

При использовании специализированного прототипа на основе ПЛИС

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

аппаратуры [40, 41]. Большой масштаб системы повышает вероятность

появления ошибок и риск срыва сроков проектирования. Для минимизации

45

рисков и времени на разработку аппаратуры, а также повышения надёжности

необходимо придерживаться принципа модульности.

Деление на модули разумно провести аналогично делению

проектируемого микропроцессора на блоки верхнего уровня. Это позволит

минимизировать ширину логической шины данных. При такой реализации

уменьшается количество ресурсов, необходимое для создания целого

прототипа микропроцессора, и увеличивается частота эмуляции за счёт

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

Таким образом, первый этап разработки аппаратуры

специализированного прототипа на основе ПЛИС заключается в оценке

необходимой ёмкости ПЛИС прототипа для эмуляции проектируемого

микропроцессора. В соответствии с данной оценкой определяется

необходимые габариты и структура прототипа. После этого рассчитывается

количество логических связей между блоками RTL-описания. Это

необходимо для определения типа и ширины интерфейсов, а также

количество служебных сигналов, между ПЛИС и, соответственно, модулями

прототипа. Выполнение этого этапа обеспечивает дальнейшую реализацию

модулей прототипа независимо друг от друга. Определение типа и ширины

интерфейса между модулями определяется исходя из физических

возможностей ПЛИС.

Второй этап заключается в аппаратном проектировании каждого из

модулей прототипа. На данном этапе производится расчет значений

потребляемой мощности, частот работы интерфейсов, производится

определение конструктива, выбор компонентной базы и осуществляется

топологическое проектирование. При этом объём работы по проектированию

напрямую зависит от сложности эмулируемого микропроцессора. Большой

объём RTL-описания приводит к использованию более мощных ПЛИС, а

наличие у каждого блока множества смежных ему с существенным

46

количеством логических связей между ними – к увеличению количества

проводников на многослойной печатной плате (МПП).

Ограниченные сроки проектирования приводят к увеличению темпов

проектирования, что неминуемо повышает вероятность появления ошибок.

Поэтому третий этап состоит в диагностике функционирования модулей

прототипа и всей системы целиком. На данном этапе требуется осуществить

проверку паяных соединений, работоспособность источников питания,

генераторов синхросигналов, передатчиков и приёмников.

2.3 Адаптация RTL-описания для эмуляции на ПЛИС

2.3.1 Разделение RTL-описания микропроцессора на блоки

Для проведения функциональной верификации RTL-описания

проектируемого микропроцессора на прототипе необходимо произвести

конфигурацию ПЛИС. Так как возможности микросхемы ограничены, то

необходимо разделение RTL-описания на части. Данное разделение может

быть реализовано в САПР Design Compiler фирмы Synopsys путём создания

серии командных файлов.

Для достижения большей эффективности специализированного

прототипа на основе ПЛИС необходимо разделение делать

сбалансированным. В [66] предлагается учитывать задержки передачи

распространения сигналов и срабатывания логики микропроцессора, а в

случаях расхождений добавлять регистров для уравнивания времени

передачи данных (рис. 2.2). При таком подходе необходимо учитывать и

распределение логики по ПЛИС, расположение ПЛИС друг относительно

друга и время передачи данных между ПЛИС [68] (рис. 2.3).

47

Рисунок 2.2. а) несбалансированное разделение; б) сбалансированное

разделение.

Рисунок 2.3. Распределение логики RTL-описания для обеспечения

сбалансированного разделения.

Более простым способом является деление RTL-описания в соответствии

с блоками его верхнего уровня. При этом необходимо, чтобы между

полученными блоками передача данных была синхронизована по фронту

48

частоты эмуляции, то есть отсутствовала комбинационная логика,

требующая дополнительной отправки данных в пределах одного и того же

такта.

Так как сам специализированный прототип создавался с учётом

структуры микропроцессора, то разделение осуществляется в соответствии с

функциональным разделением микропроцессора на блоки. Однако

вследствие продолжения изменений RTL-описания во время проектирования

и создания прототипа может возникнуть ситуация, когда не хватает ресурсов

ПЛИС для эмуляции полученных частей. Решение данной проблемы

возможно благодаря гибкости коммутации ПЛИС друг с другом, в частности

применению алгоритмов сериализации и десериализации. Поэтому в этом

случае выполняется перекомпоновка RTL-описания, то есть перенос блоков

более глубокого уровня иерархии между блоками верхнего уровня.

После описанных выше преобразований структуры RTL-описания

микропроцессора в САПР Design Compiler между полученными частями

образуется большое количество неструктурированных связей. Поэтому

необходимо использование алгоритмов мультиплексирования [5, 63, 67] (рис.

2.4).

Рисунок 2.4. Распределение логики RTL-описания для обеспечения

сбалансированного разделения.

49

То есть изначально они не являются единой шиной, а состоят из

множества шин и одиночных сигналов. Их передача между ПЛИС

осуществляется через каналы ввода вывода, ширина входной шины которых

меньше передаваемого количества данных. Для корректной передачи

необходимо производить подключение связей смежных блоков RTL-

описания микропроцессора в одной и той же последовательности. При этом

правильный порядок подключения с разных сторон линии связи в

предыдущих прототипах обеспечивается ручной сортировкой (рис. 2.5).

ПЛИС 1Файл верхнего

уровня

ПЛИС 2Файл верхнего

уровня

п1ш1п2п3ш2

п1ш1п2п3ш2

Физ. уровни

Физ. уровни

п1ш1п2п3ш2

Физ. уровни

Физ. уровни

Рисунок 2.5. Схема организации последовательности соединения логических

связей.

Такая организация подключения логических связей к линиям связи

между ПЛИС приводит к образованию набора логических шин данных

подключаемых непосредственно на линий связи физических уровней

интерфейсов. При этом количество и тип каналов может существенно

отличаться, что приводит к сложности восприятия процесса адаптации RTL-

описания. В результате для каждой микросхемы такое подключение делается

вручную, а внесение исправлений занимает длительное время.

50

2.3.2 Адаптация несинтезируемых в ПЛИС блоков исходного RTL-

описания микропроцессора

При проектировании высокопроизводительных микропроцессоров

некоторые элементы проекта не разрабатываются и применяются в виде

готового топологического блока. Наиболее часто это применимо к таким

блоками как физические уровни интерфейсов и конечных устройств

(например, оперативной памяти). Дополнительной сложностью могут стать

специализированные блоки микропроцессора (например, многопортовые

памяти в микропроцессорах серии «Эльбрус»). Подобные аналоговые или

нестандартные вещи не могут быть синтезированы в ПЛИС. Поэтому

требуется их замена на аналоги, функционально идентичные оригиналам.

2.3.2.1 Подключение оперативной памяти

В современных микропроцессорах для взаимодействия с оперативной

памятью (ОП) используются физические уровни (например, фирмы

Synopsys). Чаще всего они поставляются в виде готового топологического

проекта без исходных кодов. Это делает его не синтезируемым для

микросхем Altera. Поэтому необходима его замена на синтезируемый аналог.

Логичным решением стало использование физического уровня DDR3,

предлагаемого производителем ПЛИС. Он адаптирован для использования с

их микросхемами. Однако, его использование в прототипе невозможно без

дополнительной доработки.

Во-первых, физуровень Altera обладает другим интерфейсом

взаимодействия с контроллером (afi против dfi у Synopsys). Поэтому

необходим переходник с одного интерфейса на другой. Во-вторых, работа

интерфейсов в составе прототипа определяется его тактовой частотой

эмуляции микропроцессора (5-10 МГц), в то время как стандарт на

интерфейс с памятью DDR3 требует рабочей частоты не ниже 300 МГц. Это

требует пересинхронизации данных в переходнике.

51

Кроме рабочего режима отладки на прототипе существует тестовый

режим. Его использование необходимо для проверки работоспособности

аппаратной части прототипа. Так как в данном режиме не производится

подключение логики микропроцессора, то в модулях тестирования должен

располагаться дополнительный физический уровень интерфейса памяти

DDR3. Для предотвращения конфликтов компиляции используются

взаимоисключающие определители режима работы (рис. 2.6). Они сообщают

компилятору о том, какой из них использовать.

В пределах одного проекта недостаточно один раз произвести

подключение физического уровня интерфейса DDR3 от Altera. Это связано с

тем, что разработка RTL-описания микропроцессора ведётся независимо от

создания программной части прототипа. Поэтому периодически необходимо

повторный проход всего алгоритма разделения. Автоматическое

подключение физуровня памяти на этом этапе позволяет избежать ошибок

при повторном проведении подключения и может быть использовано, также

в следующих проектах.

ПЛИСФайл верхнего уровня

Часть процессора Интерфейсы

Модуль памяти DDR3

Altera MC phy

Altera MC phy

Synopsys MC phy

Логика

Процессор

ПрототипТест

прототипа без логикиМост

переходник

Рисунок 2.6. Схема подключения физического уровня контроллера памяти

DDR3.

52

Проверка подключения обеспечивается моделью прототипа. Для этого к

внешнему интерфейсу памяти подключается модель модуля памяти DDR3.

Затем производится её инициализация и обращения к ней при штатной

работе микропроцессора. При правильном подключении результаты

выполнения модели прототипа совпадают с результатами модели

микропроцессора.

2.3.2.2 Замена внутренних памятей микропроцессора

В микропроцессоре используются внутренние памяти. При их

небольшом объёме нет ничего сложного для реализации прототипа, так как в

ПЛИС достаточно встроенной памяти её для эмуляции. Сложности

возникают с увеличением объёма памяти. Когда её размер оказывается

больше доступного в ПЛИС, необходимо или использовать несколько

микросхем, что экономически нецелесообразно, или реализовать

подключение внешней памяти. Обычно внутренняя память микропроцессора

является статической. Конечно, в прототипе её можно реализовать

множеством способов, но для более полного соответствия логично

использовать модули статической памяти. В любом случае для подключения

внешней памяти, также как и для DDR3 необходимо обеспечить интерфейс

взаимодействия между логическими выводами микропроцессора и

интерфейсом памяти (рис. 2.7).

Рисунок 2.7. Различие подключения памяти L3 в микропроцессоре и в

прототипе.

53

Однако, особенности архитектуры дополнительно усложняют ситуацию

адаптации встроенной памяти микропроцессора для прототипа. В

микропроцессорах серии «Эльбрус» используются многопортовые памяти,

причём с возможностью одновременного доступа с нескольких портов и

одновременного проведения операций записи и чтения. На подобное не

рассчитано оборудование и программное обеспечение ПЛИС Altera. Поэтому

необходимо заменять подобные памяти на синтезируемые в САПР путём

разработки сложных элементов памяти, реализованных на доступных в

ПЛИС. Правильность реализации проверяется на тестах, в процессе которых

производится сравнение функционирования созданной памяти с её

действительным аналогом. Все полученные прототипные аналоги

объединены в библиотеку замен для их быстрого повторного использования

в очередных проектах.

2.3.2.3 Подключение высокочастотных интерфейсов микропроцессора

Увеличение пропускной способности каналов памяти,

межпроцессорного обмена и каналов ввода/вывода приводит к применению

высокочастотных физических уровней, реализованных в виде

топологических блоков, несинтезируемых в ПЛИС. Они позволяют ему

достигать существенных частот передачи данных. Однако в прототипе,

вследствие существенно более низкой частоты эмуляции по сравнению с

реальной частотой работы микропроцессора, такие частоты не нужны.

Поэтому возможна безболезненная замена топологических блоков на

аналоги.

Сложность здесь могут представлять некоторые логические сигналы, а

также протоколы передачи данных, завязанные на заменяемые физические

уровни интерфейсов микропроцессора. Особенно это актуально для NUMA

систем. В этом случае невозможно обойтись простой передачей данных,

аналогично взаимодействию ПЛИС-ПЛИС и эмуляцией только блока

54

межпроцессорных связей. Поэтому в создаваемых аналогах требуется

учитывать специфику оригинальных структур и организовывать

взаимодействие двух и более прототипов.

2.3.3 Результат разделения RTL-описания микропроцессора

При разбиении RTL-описания микропроцессора высока вероятность

возникновения ошибок. Для проверки правильности полученной структуры

используется модель прототипа. Данная модель представляет собой

программное описание прототипа. Все аппаратные связи и блоки

описываются программными модулями. К полученной структуре

добавляется тестовое окружение, которое моделирует внешние воздействия

на прототип и непосредственно полученные блоки логики микропроцессора.

Результаты работы модели прототипа сравниваются с результатами модели

самого микропроцессора. Расхождения в результатах, полученных при

моделировании, свидетельствует о наличии допущенных ошибок. Причём

ошибки могут быть двух типов:

Неправильно выполнено разбиение RTL-описания

RTL-описание микропроцессора выполнены не корректно.

Ошибки алгоритмов разделения достаточно очевидное явление. Куда

более интересным является второй пункт. С одной стороны RTL-модель

микропроцессора – это эталон, по которому работает модель прототипа.

Однако принцип построения прототипа основан на некоторых свойствах

архитектуры. Одним из таких свойств является синхронизация работы

крупных блоков по переднему фронту синхросигнала. Это означает, что

передача данных между ними возможна в течение всего такта синхросигнала.

Если некоторые элементы этих блоков, связанные с передачей данных между

ними, работают асинхронно, например комбинационная логика, то может

возникнуть ситуация, когда данные должны быть переданы обратно в том же

такте. Это эквивалентно двум передачам за один такт. Реализовать прототип

под такую систему становится сложнее. В этом случае желательно перенести

55

передачу в обратную сторону в следующий такт. Это делается исправлением

RTL-описания. Для предотвращения подобных ситуаций необходимо либо

контролировать разработку RTL-описания микропроцессора, либо

уменьшать частоту эмуляции.

Несколько другим классом ошибок является ситуация, когда работа с

моделью прототипа показывает необходимость изменения структуры RTL-

описания микропроцессора. Это изменение часто требует корректировки

системы разделения RTL-описания микропроцессора. Например, на модели

прототипа можно увидеть несоответствие скорости работы зависимых

блоков микропроцессора, что без должных проверок приводт к

неправильным результатам.

2.4 Организация передачи данных между ПЛИС

2.4.1 Подключение RTL-описания в ПЛИС

Маршрут прототипирования многоядерных микропроцессоров в общем

случае содержит этапы создания и настройки аппаратуры прототипа,

разделения RTL-описания на блоки для их эмуляции в нескольких ПЛИС,

адаптация несинтезируемых в ПЛИС конструкций. После проведения

указанных этапов необходимо скомпоновать все результирующие блоки

каждого этапа по проектам ПЛИС для их дальнейшей компиляции. Для этого

широкие шины логических связей блоков RTL-описания подключают на

набор схем мультиплексирования. Каждая из этих схем позволяет передавать

по одиночной линии последовательно передавать нескольких бит

информации (Time-Domain Multuplexing (TDM)). Блоки RTL-описания

подключаются в каждую ПЛИС с учётом топологии заложенной в прототипе,

при этом используются результаты работы по организации взаимодействия

между ПЛИС. В результате возникает циклические процессы (рис. 2.8),

которые усложняют процесс адаптации проектов ПЛИС.

56

Начало прототипирования

Предварительное разделение СнК на части

Верификация на прототипе

RTL-описание СнК

Разделение RTL-описания СнК на части

и адаптация несинтезируемых

в ПЛИС конструкций

Проектирование и реализация прототипа

Разработка блоков сериализации/десериализации

и тестирование прототипа

Создание проектов ПЛИС, их синтез, размещение и

трассировка

Рисунок 2.8. Блок схема перехода к этапу функциональной верификации на

прототипе.

При росте окружения блоков RTL-описания и количества логических

связей между ними выявляется существенное увеличение сложности

описанной задачи. Кроме того при прототипировании многоядерных

микропроцессоров в прототипе присутствует несколько уникальных

проектов ПЛИС, что в соответствующее число раз увеличивает сложность.

Это связано с различным назначением контактов микросхем, направлением

коммутации и оборудованием, подключенным к ПЛИС.

Производителями прототипов данная задача решается возможностями

только физических уровней одного типа, при этом среда передачи данных

57

считается достаточно надёжной, а влияние топологии ПЛИС и

эмулированной логики на процесс передачи данных не рассматривается.

Такое решение, в совокупности с множеством вариантов коммутации ПЛИС

друг с другом, приводит к чрезмерному усложнению при подключении

блоков RTL-описания.

2.4.2 Особенности топологической трассировки ПЛИС

Применение метода TDM возможно только при увеличении частоты

передачи данных в физических линиях между ПЛИС. При этом необходимо

синхронизовать работу всех внутренних схем передатчиков и приёмников с

блоками мультиплексирования и демультиплексирования соответственно.

Как следствие, растёт сложность топологической трассировки ПЛИС.

При взаимодействии в проектируемом микропроцессоре блоков RTL-

описания верхнего уровня только через регистровые передачи отсутствует

необходимость синхронизации работы алгоритмов передачи данных и логики

микропроцессора, а также передачи данных на разных физических уровнях.

Однако, при наличии комбинационных схем, работы которых должна быть

завершена до активного фронта частоты эмуляции и произведена после него

возникает необходимость такой синхронизации. А при увеличении

окружения блоков RTL-описания и количества логических связей между

ними сложность данной работы существенно растёт. Это связано с

необходимостью синхронизации работы большого количества

высокочастотных схем ПЛИС.

Опыт показал, что с такой задачей САПР для топологической

трассировки ПЛИС самостоятельно справиться не может. После завершения

его работы присутствуют расхождения в работе высокочастотных схем.

Такая ситуация наблюдается даже при заданных временных ограничениях. В

результате необходима ручная работа по оптимизации топологии ПЛИС.

58

2.4.3 Сложность длительной передачи данных между ПЛИС

Функционирование прототипа подразумевает длительную и

безошибочную работу. В противном случае гарантировать качество

функциональной верификации невозможно. Особенно это касается линий

передачи данных. Использование высокочастотных физических уровней

повышает вероятность возникновения ошибок.

Производителями прототипов среда передачи между ПЛИС считается

достаточно надёжной. Поэтому при взаимодействии ПЛИС они не

используют методов контроля качества передачи данных. Это становится

возможным прежде всего при регистровом взаимодействии блоков верхнего

уровня в RTL-описании без участия комбинационной логики.

При прототипировании в ЗАО «МЦСТ» было выявлено увеличение

частоты одиночных ошибок. Это связано с синхронной передачей большого

количества данных как в ПЛИС, так и по МПП. Возникновение ошибок

достаточно редкое – одна ошибка в неделю. Но при увеличении значений

частоты до предельных они возникают чаще. Соответственно появление

таких ошибок во время длительного запуска тестов приводит к сбою в

работе. А при запуске операционной системы на прототипе к потере от

одного до трёх дней работы прототипа.

2.4.4 Сравнение существующих методов передачи данных между ПЛИС

Эффективность специализированного прототипа многоядерного

микропроцессора на основе ПЛИС напрямую зависит от частоты эмуляции,

которую можно на нём достичь. Быстродействие прототипа определяется

передачей данных между ПЛИС в силу необходимости за ограниченное

время (такт процессора) передавать состояния всех логических связей (рис.

2.9).

59

Рисунок 2.9. Быстродействие прототипа определяется передачей данных

между ПЛИС.

Все вышеизложенные особенности требуют решения при

прототипировании микропроцессоров с увеличенным окружением блоков

RTL-описания и большим количеством логических связей между ними. Для

определения путей выхода из данной ситуации был проведён анализ

современных систем прототипирования и методов передачи данных между

ПЛИС. В таблице 2.2 приведено их сравнение.

Во всех специализированных прототипах применяются одинаковые

методы. Во-первых, они используют только один физический уровень. Во-

вторых, применяют алгоритмы мультиплексирования без учёта работы

комбинационной логики в микропроцессоре и без учёта топологических

особенностей ПЛИС. В-третьих не применяют контроля качества передачи.

Таблица 2.2. Сравнение методов взаимодействия ПЛИС

Физический уровень

Проверка ошибок

Количество передатчиков

Синхронизация ПЛИС друг с

другом

Synopsys HAPS

LVDS Отсутствует 104

Внешняя синхронизация эмуляции по

отдельной линии Intel MCEM (The Many-Core Emulation System) [62]

CDR-трансиверы

Отсутствует 16 Внешняя

синхронизация через cPCI шину

IBM LVDS Отсутствует 84 Внешняя

60

Физический уровень

Проверка ошибок

Количество передатчиков

Синхронизация ПЛИС друг с

другом Twinstar FPGA system [58]

синхронизация эмуляции по

отдельной линии через

маршрутизатор

LIP6, 2FLEXRAS Technologies, CES Lab [63]

LVDS Передача чётности

140

Внешняя синхронизация эмуляции по

отдельной линии. Передача данных синхронизована с частотой эмуляции

ЗАО «МЦСТ» прототип КУБ_ПРОТО

SSTL Отсутствует 17

Внешняя синхронизация эмуляции по

отдельной линии. Передача данных синхронизована с частотой эмуляции

2.5 Оптимизация интерфейсов взаимодействия ПЛИС

2.5.1 Оптимизация подключения блоков RTL-описания

С целью унификации подключения эмулируемой логики и генераторов

тестовых данных (рис. 2.10) предлагается определить структуру интерфейса

на канальном, сетевом и транспортном уровнях представления модели

OSI/ISO, и реализовывать его аппаратно в виде отдельного модуля в каждой

ПЛИС. При этом физический уровень может быть произвольным.

61

Рисунок 2.10. Схема унификации интерфейса взаимодействия ПЛИС друг с

другом.

Это позволит распараллелить и упростить работы по введению

прототипа в эксплуатацию, в том числе автоматизировать подключение

блоков RTL-описания микропроцессора и диагностику функционирования

прототипа для оценки его надежности и определения конкретных

неработоспособных мест, в случае их наличия. Причём диагностику

предлагается проводить путём замены блока RTL-описания на генератор

тестовых данных. В результате будут проверены алгоритмы сериализации и

десериализации, а также наиболее высокочастотные схемы прототипа.

2.5.2 Выбор интерфейса передачи данных

Повышение скорости эмуляции требует сокращения времени передачи

данных между ПЛИС прототипа. Этого можно достичь использованием

высокоскоростных стандартных интерфейсов или непосредственным

применением схем физического уровня, дополненных логикой

группирования пакетов. При этом особо существенны следующие их

характеристики:

Количество оборудования, необходимого для реализации

логической части интерфейсов в ПЛИС;

Пропускная способность;

62

Количество используемых контактов ПЛИС.

Ограниченность ёмкости и контактов ввода/вывода ПЛИС прототипа, а

также необходимость длительной надёжной работы и синхронизации

эмулируемой логики не позволяют эффективно применять стандартные

интерфейсы. К примеру:

PCIe – из-за большого объёма их логической части и задержек,

вносимых протоколами установки соединения и контроля

целостности передачи данных,

SpaceWire – из-за нерационального использования контактов

ввода/вывода при организации линии связи и отсутствия

необходимости маршрутизации,

JESD204B – из-за и невозможности синхронизации всей системы и

отсутствия контроля целостности передачи.

Таким образом, высокоуровневые интерфейсы не лучшим образом

подходят для прототипирования из-за их объёмной логической части. Она

снижает емкость прототипа, непосредственно предназначенную для

эмуляции микропроцессора. Кроме того, сложность алгоритмов установки

соединения и маршрутизации приводит к недопустимому увеличению

времени передачи данных.

На данный момент приемлемых характеристик прототипа можно

достичь только непосредственным применением схем физического уровня

определенной ПЛИС и связанной с ними упрощенной логики, которые

совместно будут обозначаться как «базовый стандартный интерфейс ПЛИС».

Его пропускная способность в основном определяется частотой передачи,

временем отправки и приёма пакета, а также протоколом группировки

пакетов. При этом условии следует иметь в виду то обстоятельство, что

увеличению частоты канала сопутствуют большие задержки при передаче

пакетов (таблица 2.3). В этой таблице аббревиатура CDR обозначает

63

высокочастотные приёмо-передатчики (clock data recovery (CDR)-based

transceivers), появившиеся в ПЛИС последних серий. Значения

характеристики Dотпр/приёма получены экспериментально.

Дополнительным ограничением является фиксированная максимальная

ширина линии связи. Она определяется возможностями ПЛИС.

Таблица 2.3. Максимальные характеристики интерфейсов ПЛИС Altera.

Интерфейс ПЛИС

Fк, МГц Fсинхр, МГц

Dотпр/приёма, такты

Ксер.ф.ур. Wк Wлин.св

Кол-во необхо-димых

контактов LVCMOS 100 100 2 1 1 140 140

LVDS 1200 200 8 6 1 66 132 SSTL 600 300 6 2 8 11 110 CDR 10000 250 21 40 1 24 48

Заключению о предпочтительности физических параметров

определенного интерфейса должна предшествовать оценка влияния этих

параметров на частоту эмуляции микропроцессора.

2.5.3 Определение интерфейса прототипа

В прототипе для физического уровня каждого типа определены и

применимы: коэффициент сериализации, коэффициент сериализации

физического уровня, и время отправки/получения. Это делает алгоритм

группировки пакетов индифферентным к типу применяемой аппаратной

части интерфейса, хотя он, а также ширина линии связи, устанавливаемая на

его основе, и будут определять темп передачи данных. Поэтому назовём

интерфейсом прототипа – обобщенный интерфейс ПЛИС, в котором не

специфицируется среда передачи, но определяется общий для всех её видов

протокол, который полностью обеспечивает взаимодействие между ПЛИС. В

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

аппаратной.

В работе интерфейсов прототипа выделяется два этапа: начальная

настройка и непосредственно постоянная передача данных, которая

64

прерывается только ошибками в линии связи или изменением конфигурации

прототипа.

Синхронность всех блоков RTL-описания в прототипе – важная

составляющая его работоспособности, по этой причине все передачи между

ПЛИС осуществляются одновременно. В начальный момент времени, после

включения питания или сброса прототипа, эти условия не выполняются. Так

как алгоритм группировки пакетов основан на частоте синхронизации,

которая существенно выше частоты эмуляции, то появляется возможность

синхронизовать фронт последней с точностью до периода первой.

Затем осуществляется тонкая настройка каналов – их тренировка. Её

необходимость обусловлена особенностями высокоскоростных физических

уровней и осуществляется для каждого канала в отдельности, что позволяет

проводить независимую оценку их работоспособности и на ее основе

динамически распределять данные между каналами в линии связи.

Надёжность функционирования такой системы определяется алгоритмом

подстройки в процессе работы, а при его отсутствии – стабильностью

начальной настройки. Практика показала, что начальная настройка и

внутренние свойства физических уровней позволяют в достаточной степени

гарантировать надёжность передачи данных даже при длительном

использовании. Отсутствие реакции на редкие ошибки вынуждает

периодически перезапускать работу прототипа. Чтобы этого избежать,

необходимо при несовпадении контрольных сумм задерживать фронт

синхросигнала эмуляции с тем, чтобы осуществить повторную передачу.

Время, заложенное на распространение сигналов по ПЛИС и их обработку

эмулируемой логикой до активного фронта, используется для создания

соответствующих управляющих воздействий. Здесь необходимо отметить,

что задерживать фронт очередного такта необходимо во всём прототипе

одновременно.

65

Постоянная синхронность частот эмуляции в разных блоках RTL-

описания требует одинаковой частоты синхронизации в каждой ПЛИС. Это

может быть обеспечено путём использования одного генератора, выход

которого разветвляется на необходимое число линий, что возможно только

при небольших размерах системы. В противном случае дрожание сигнала

может приводить к сбоям в работе. Поэтому в большой или распределённой

системе будет использоваться несколько генераторов. Из-за

технологического разброса их частота будет незначительно отличаться, что

при длительной работе приведёт к смещению друг относительно друга

фронтов частоты эмуляции в разных ПЛИС. Поддержание их синхронности

обеспечивается кратковременными задержками фронтов частоты

синхронизации опережающего ПЛИС.

2.6 Особенности передачи данных в прототипе

В этой главе предлагается и обосновывается метод расчёта частоты

эмуляции микропроцессора в прототипе, учитывающий особенности

сериализации и десериализации при передаче данных между ПЛИС.

2.6.1 Основные понятия

Корректное функционирование прототипа требует передачи и обработки

состояний всех логических связей между смежными парами блоков RTL-

описания (Nлог.св) в каждом такте микропроцессора.

Определим линию связи двух ПЛИС, как набор каналов передачи

данных, общее число которых равно Wлин.св. Каждый канал соответствует

одному из интерфейсов ПЛИС, характеризуемому «шириной» – количеством

цепей, по которым одновременно передаются биты данных (Wк). Это

количество отличается для различных интерфейсов, например, у LVDS оно

66

равно 1, у SSTL – до 9. Чтобы упростить анализ, будем считать, что в линии

связи применяются интерфейсы одного типа.

Рисунок 2.11. Схема организации линии связи.

Для оценки загруженности одного канала введём коэффициент

сериализации (Ксер) – количество логических связей, состояние которых

необходимо передавать по каждой цепи канала данных при соединении двух

микросхем линией связи. Его дробное значение означает неполную загрузку

одного или нескольких каналов. Время передачи данных по линии связи

определяется задержкой передачи самого загруженного канала, поэтому

целесообразно говорить о значении коэффициента сериализации, которое

больше расчётного значения и находится в области натуральных чисел:

клин.св

лог.св.

WW

NK сер (1)

Большинство высокоскоростных интерфейсов имеет встроенную

аппаратную сериализацию, то есть, данные в канале передаются на более

высокой частоте (частоте канала, Fк), чем поступают со стороны логики на

частоте синхронизации (Fсинхр). Коэффициент сериализации физического

уровня – количество логических связей, состояние которых может быть

передано по каждой цепи канала за один такт синхронизации, равен:

синхр

к... F

FK урфсер (2)

Обычно количество логических связей больше, чем может быть

передано через линию связи за один такт синхронизации, следовательно, их

67

надо разбить на несколько пакетов. Число тактов (и число пакетов) Nпакетов ,

необходимое для передачи всех данных равно отношению (3). Дробное

значение этого коэффициента означает неполную загрузку одного или

нескольких каналов в линии связи. Его необходимо округлять в большую

сторону до целого числа, поскольку для передачи остатка данных требуется

дополнительный такт синхронизации.

...

.

урфсер

серпакетов K

KN (3)

На рисунке 2.12 показан пример временной диаграммы передачи 24-х

битов данных между двумя ПЛИС, сформированных по переднему фронту

синхроимпульса эмуляции, по каналам на основе интерфейсов LVDS,

передающих по 6 битов данных за такт синхронизации, и SSTL – по 2 бита за

такт. На ней отмечены длительности всех этапов передачи данных: обработка

данных эмулируемой логикой и распространение, подлежащих передаче

данных по ПЛИС до передатчиков (tуст), параллельно-последовательного

преобразования и отправки (tотпр), распространения в среде передачи (tраспр),

последовательной записи в приёмник пакетов данных (tзап), приёма и

последовательно-параллельного преобразования (tлриёма), а также

распространение полученных на приёмнике данных по ПЛИС и их обработка

эмулируемой логикой (tуст). Первый и последний этап передачи

функционально схожи, поэтому обозначаются одинаково. При этом,

рассматривая влияние на этот процесс интерфейсных схем, введем

характеристику канала:

приёмаотпраотпр/приём DDD (4),

где все величины определяют время соответствующих этапов в тактах

синхронизации (Dотпр соответствует tотпр, а Dприёма – tлриёма). В этой

характеристике не учитывается время распространения пакетов в среде

передачи и их запись в приемник.

68

Частота синхронизации

Частота эмуляции

Готовность данных

tуст

Отправка по LVDS 6 6 6 6tотпр

tзапtраспр

Получение по LVDS 6 6 6 6

Данные для отправки

24 24

24Полученные данные

Отправка по SSTL

tраспр

tотпр

Получение по SSTL

tприёма

tуст

tзапtприёма

Рисунок 2.12. Временная диаграмма передачи данных между двумя ПЛИС.

Надёжность процесса обеспечивается заключительной передачей

контрольного пакета группы с суммой всех предыдущих пакетов по модулю

2, по времени совмещенной с tприема.

2.6.2 Передача «точка-точка»

С учетом синфазности тактовых сигналов в ПЛИС прототипа будем

полагать, что распространение сигнала данных по линии связи укладывается

в один такт синхронизации, тогда время распространения сигнала не окажет

влияния на период частоты микропроцессора. В этом случае отправка

данных в линию связи начинается по фронту синхросигнала с регистра

данных на последнем этапе отправки, а запись в приёмнике осуществляется в

следующем такте. При этом время работы выходного и входного буферов

интерфейсов может существенно ограничить длину линии связи (10 см

против 1,5 м).

Таким образом, период синхросигнала эмуляции микропроцессора в

прототипе определяется по формуле:

69

синхрсинхраотпр/приём2 TFMRTNDDT пакетовустП , (5)

где в единицах измерения, равных количеству тактов синхронизации,

заданы: суммарная длительность распространения данных и их обработки

эмулируемой логикой в передающей и принимающей ПЛИС. (2·Dуст),

длительность параллельно-последовательного преобразования, отправки,

приёма и последовательно-параллельного преобразования (Dотпр/приёма),

длительность последовательной записи в приёмник пакетов данных (Nпакетов),

результирующее количество тактов аппаратной модели, необходимое для

эмуляции одного такта микропроцессора (FMR).

Полученная формула справедлива при работе микропроцессора только

по переднему фронту синхросигнала в том случае, когда связанная

комбинационная логика не требует обратной передачи данных между ПЛИС

в пределах того же такта. Работа микропроцессора по обоим фронтам

синхросигнала и необходимость обратной связи в интервале между ними

могут уменьшить частоту эмуляции в 4 раза.

Аналогичные расчеты были получены во французском институте [63].

Отличием их результата от предложенного в диссертации является

возможность оценки эффективности применения различных физических

уровней при организации связи между ПЛИС. Это позволяет оптимальным

образом реализовывать структуру прототипа для достижения максимальных

характеристик.

На основе данных таблицы 2.3 и вычислений по формуле (5) для

различных интерфейсов между ПЛИС был построен график зависимости

частоты эмуляции микропроцессора в прототипе от количества

используемых контактов ввода/вывода (рис. 2.13) и от количества логических

связей (рис. 2.14). За допустимое количество трасс была взята половина

доступных для использования на одной стороне ПЛИС контактов. Тем

самым обеспечена возможность дуплексной передачи между микросхемами

по 4-ём направлениям. Для расчетов использовалось наибольшее количество

70

логических связей в одном направлении между блоками RTL-описания

восьмиядерного микропроцессора серии «Эльбрус», округлённое до круглого

значения в большую сторону (2000). Из графиков видно, что использование

интерфейсов ПЛИС типа LVDS и SSTL с минимизированной для передачи

данных логикой приводит к более высокой частоте эмуляции за счёт

большего количества контактов, однако, ВЧПП лучше сохраняют частоту

эмуляции при увеличении количества передаваемых данных.

Nлог.св. = 2000

0

2

4

6

8

10

12

0 20 40 60 80 100 120 140 160 180Nтрасс

Fп, МГц

CDR(10G) CDR(5G) LVDS SSTL LVCMOS

Рисунок 2.13. График зависимости частоты эмуляции на прототипе от

количества трасс для различных интерфейсов.

71

Nтрасс = 10

0

2

4

6

8

10

0 200 400 600 800 1000 1200 1400 1600 1800 2000 2200 2400 2600 2800 3000

Nлог.св.

Fп, МГц

CDR(10G) CDR(5G) LVDS SSTL LVCMOS

Рисунок 2.14. График зависимости частоты эмуляции на прототипе от

количества логических связей для различных интерфейсов.

2.6.3 Использование коммутаторов

Увеличение количества взаимодействующих ПЛИС затрудняет задачу

их стыковки в пределах одного прототипа, ввиду необходимости большого

числа линий связи. Распространенным способом решения проблемы является

использование коммутаторов, позволяющим сократить число линий связи,

при этом сохраняя необходимую гибкость коммутации [58]. При этом общее

условие минимального времени передачи данных в прототипе требует в

возможной степени сократить задержки, вызванные внутренней пересылкой

пакетов в коммутаторе между его входным и выходным интерфейсом (рис.

2.15). По этой причине недопустимо непосредственное использование

стандартных интерфейсов, приводящее в силу их сложности к относительно

большой задержке «порт-порт» (Infiniband – 100 нс [59], PCIe – 150-300 нс

[60]), которая снижает частоту эмуляции процессора более чем в два раза.

72

Таким образом, как и в рассмотренном варианте «точка-точка» здесь

возникает проблема приемлемого упрощения стандартного интерфейса.

Рисунок 2.15. Схема передачи через маршрутизатор.

В прототипе в качестве коммутатора будет использоваться ПЛИС,

поэтому следует считать параметры интерфейсов одинаковыми.

Возможность переконфигурации ПЛИС позволяет создавать различные пары

входных и выходных каналов коммутатора, жёстко ассоциируя их друг с

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

потребуется выполнение только этапов приёма и отправки. Необходимость

соединения ПЛИС в произвольных соотношениях в рамках одной

конфигурации требует наличия служебной информации в передаваемых

пакетах и их обработки коммутатором. Добавление служебной информации

учитывается в формулах путём увеличения Nлог.св на значение Nслуж.

Уменьшению задержки в коммутаторе способствует расположение

служебной информации вначале каждой передачи, поэтому, учитывая

алгоритмы сериализации, количество служебной информации в соответствии

с формулами (1), (2) и (3) будет пропорционально коэффициенту

сериализации интерфейса, ширине линии связи, ширине канала и количеству

тактов синхронизации:

ксвлининтерфсертактовслуж WWKKN .....служ. , (6)

Дополнительные сложности возникают при несимметричном

взаимодействии, когда число ПЛИС передатчиков отличается от числа

73

ПЛИС приёмников. Тогда при допущении наличия у каждой ПЛИС лишь

одной линии связи с коммутатором, одна или несколько из них будут

загружены в несколько раз больше. Для оценки загрузки коммутатора введём

коэффициент связности блоков (Ксвязи). Он представляет собой отношение

большего количества линий связи (Nлин.св. 1) к меньшему (Nлин.св. 2):

2..

1..

свлин

свлинсвязи N

NK , 1связиK , NK связи (7)

При одновременной передаче данных с нескольких ПЛИС на один

задержку добавит только отправка последних передач. Таким образом, при

использовании маршрутизатора время обработки данных выражается

аналогично формуле (5):

синхртактовсвязиустМ TKKDDt 12отпр/получ , (8)

При подстановке в формулу значений для ПЛИС получим время

задержки «порт-порт» при прохождении маршрутизатора 60-100 нс. Это

быстрее, чем при использовании стандартных интерфейсов Infiniband и PCIe.

Использование коммутаторов актуально при создании прототипа

достаточно большого масштаба и при большом количестве межсоединений,

поэтому в отличие от передачи «точка-точка» здесь длина линии связи может

быть длиннее 1,5 м. Следовательно, необходимо учитывать время

распространения по проводам, которое в тактах синхронизации будет равно

Краспр:

синхрраспр Tc

lK

, NK распр (9)

Таким образом, добавив к передаче между двумя ПЛИС время

распространения по проводникам и время задержки в маршрутизаторах,

общее последовательное количество которых Nм, получим результирующую

формулу для расчета периода частоты эмуляции:

синхротпр/получ21 TKKKDDNT распрсвязитактовустмП , (10)

Анализ графиков на рисунке 3.2 и 3.3 показывает, что для подключения

ПЛИС к маршрутизатору эффективно использовать ВЧПП. Это обеспечит

74

минимизацию ширины линии связи при сохранении пропускной способности

и позволит производить подключение жгутами.

Для определения зависимости частоты эмуляции на прототипе от

параметров линии связи через маршрутизатор (Kсвязи, Nм) построен график

(рис. 2.16). Из него видно, что частота эмуляции при увеличении количества

маршрутизаторов убывает в 2,5-3 раза быстрее, чем при увеличении

коэффициента связности. То есть применение маршрутизаторов оправдано

при обеспечении гибкости соединений ПЛИС друг с другом в универсальных

прототипах, либо при значительной связности, когда имеющейся

интерфейсных передатчиков недостаточно для подключения всех соседних

ПЛИС даже при минимальной ширине линии связи.

Wлин.св=8; Nлог.св.=2000

0

1

2

3

4

5

6

7

0 1 2 3 4

Fп, МГц

Kсвязи=1 Kсвязи=2 Kсвязи=3 Kсвязи=4

Рисунок 2.16. График зависимости частоты эмуляции от количества

маршрутизаторов для различных коэффициентов связности.

2.7. Диагностика функционирования аппаратуры прототипа

Прототип на основе ПЛИС, создаваемый с учётом структуры

многоядерного микропроцессора, сложное изделие, в котором применяется

большое число новых и специфичных решений. Ограниченные сроки

75

изготовления не позволяют осуществить достаточно надёжную проверку.

Поэтому высока вероятность каких-либо ошибок проектирования или

дефектов производства. В результате сразу гарантировать его работу

невозможно. Однако штучное изготовление прототипа позволяет допускать

подобную ситуацию, так как в случае выявления ошибок, возможно их

устранение навесным монтажом.

Проверка работоспособности созданного специализированного

прототипа подразумевает проверку следующих аспектов:

Работоспособность ПЛИС,

Корректность трассировки,

Целостность сигналов,

Корректная работа блоков сериализации и десериализации,

Корректность функционирования периферийного оборудования,

Корректность изготовленной МПП,

Надёжность аппаратуры прототипа.

Поскольку рабочий режим прототипа подразумевает постоянную

передачу данных между ПЛИС, которая возможна только при выполнении

всех предыдущих этапов, предлагается осуществлять проверку

работоспособности путём тестирования всех связей прототипа. Причём

проверка должна быть организована при помощи ПЛИС. По способу

взаимодействия в прототипе условно можно выделить три типа связей:

Однонаправленные – связи с различными видами внешней памяти

(DDR3, SRAM).

Симметричные – связи для передачи данных между ПЛИС.

Квазистатичные – связи отображающие статус работоспособности

системы. Их изменение означает переход между различными

состояниями прототипа (готовность питания, сброс и др.).

76

Система тестирования должна обеспечивать исключение всех

возможных неисправностей. К их числу относятся:

Отсутствие контакта

Константа «логический 0»

Константа «логическая 1»

Исключение указанных неисправностей возможно путём переключений

сигнала на линии связи из «0» в «1» и при их корректном приёме. Для

проверки квазистатичных связей достаточно провести прототип через все

состояния. Например, нажимать кнопку и наблюдать реакцию на нажатие. С

проверкой симметричных связей дело обстоит сложнее. Количество данных

необходимое к передаче по линиям связи между ПЛИС существенно выше

доступного количества контактов микросхем. Поэтому при тестировании

необходимо применять алгоритмы сериализации на высокоскоростных

интерфейсах. Их использование требует окончания этапа синхронизации.

После включения системы и окончания двух последовательных сбросов

(PLL, и логики) начинается тренировка интерфейсов. Задача тренировки

заключается в подстройке фазы приёма. Её реализация основана на отправке

передатчиком определённых тестовых последовательностей, благодаря

которым происходит синхронизация абонентов линии связи. Затем

приёмник, зная, что именно он должно быть получено, принимает тестовые

последовательности и подстраивает фазы синхросигнала для их корректного

приёма. Если полученные данные совпадают с тестовыми

последовательностями, то тренировка считается завершённой (рис. 2.17). Для

различных интерфейсов алгоритмы тренировки могут отличаться.

77

Рисунок 2.17. Алгоритм работы интерфейсов.

Тестовая последовательность может отличаться для каждого

интерфейса. В некоторых случаях она задана аппаратно. В прототипах на

основе ПЛИС, созданных с учётом структуры многоядерных

микропроцессоров серии «Эльбрус», в интерфейсах LVDS и SSTL такая

последовательность задавалась программно. Её алгоритм делится на три

этапа:

1. Последовательная передача «0» и «1» в каналах данных между

ПЛИС. По данным переключениям производится подстройка фазы

78

приёма данных. То есть фиксируется момент захватывания данных

на высокой частоте. Данный этап производится на протяжении

заданного параметром времени. Если после его окончания

приёмник не выполнит захват данных, то тренировку считаем

неоконченной. Это приводит к ошибке и дальнейшая работа не

осуществляется.

2. Фиксация момента начала посылок данных. Она происходит

дважды. Фиксируется время одного такта эмуляции

микропроцессора для отсчёта момента времени начала и

длительности передачи в канала данных.

3. Начало работы интерфейса с установленными параметрами.

Проверка однонаправленных связей прототипа схожа с проверкой

симметричных связей. Однако, она не сводится к простой корректировки

фазы приёма, так как силами оконечных устройств это не реализуется.

Поэтому необходимо усложнение алгоритма. Например, для внешней памяти

операция простой передачи преобразуется к операциям записи чтения.

Дополнительным отличием является необходимость отдельного и полного

тестирования оконечных устройств. То есть, кроме единичной успешной

операции записи чтения, производится запись и чтение по всем адресам

используемой памяти. Только в случае успешного завершения полного теста,

можно говорить о работоспособности оконечных устройств и связей с ними.

Окончание всех тренировок не гарантирует надёжность работы системы.

Это связано с возможностью накопительных эффектов (электромагнитных

наводок, перегрев и прочее). Проверка надёжности прототипа

обеспечивается за счёт длительного тестирования. Для этого создаётся

генератор данных и подключается ко входам передатчиков. Это позволяет

вести постоянную посылку данных. В результате накопительные эффекты от

внешних или внутренних источников помех спустя время могут привести к

79

ошибкам. Их фиксация означает отсутствие надёжности прототипа, но также

даёт возможность локализовать и исключить различные дестабилизирующие

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

связано с высокой параметризацией исходных данных, то есть определением

типа и свойств сигнальных проводников. Особенно это актуально при

использовании высокочастотных передатчиков и задании синхросигналов,

когда разница длин проводников приводит к рассинхронизации и

невозможности работы на необходимой частоте.

В специализированных прототипах на основе ПЛИС, созданных ранее,

применялось тестирование только непосредственно на определение констант.

Что привело впоследствии к многочисленным неопределённым сбоям. В

результате отсутствия времени на поиск и исправление ошибок была

существенно снижена частота передачи данных между ПЛИС. Кроме того,

подобная проверка осуществлялась вручную и отдельно для каждой линии

интерфейсов, что приводило к трудностям восприятия и длительному

процессу проверки.

В результате описанной перекомпоновки создаётся простой базис для

диагностики функционирования аппаратуры прототипа. Данная процедура

осуществляется проверкой длительной работы проверяемой аппаратуры, где

ключевую роль при этом выполняют высокочастотные схемы, вынесенные в

интерфейсный модуль. Поэтому подключение на его универсальные шины

простого генератора тестовых данных создаст условия для достаточно

полного тестирования. Тогда в случае неисправностей функционирования

достаточно будет исправить интерфейсный блок конкретного ПЛИС без

изменения остальной структуры проекта.

Фиксированный интерфейс подключения логических связей RTL-

описания к линиям связи позволяет автоматизировать переход от

тестирования аппаратуры прототипа к эмуляции микропроцессора (рис.

2.18), что обеспечит возможность распараллеливания задач и уменьшение

80

времени, необходимого на переход к этапу функциональной верификации

микропроцессора на прототипе.

Рисунок 2.18. Схема перехода от тестов к функциональной верификации.

2.8 Программное моделирование интерфейса

В прототипе используется сериализация и десериализация при передаче

данных между ПЛИС. В результате появляется различие между исполнением

команд на модели прототипа и на модели процессора. При включении

системы начинается тренировка интерфейсов передачи данных, в течение

которой передаются специальные тестовые последовательности.

Одновременно начинается генерация синхросигнала эмуляции

микропроцессора. В результате, по его фронту логика микропроцессора

захватывает данные тестовых последовательностей и начинает их

обрабатывать. Так как эти данные для процессора могут быть ошибочными,

то иногда случаются срабатывания блоков проверки его работы. Их

прерывания останавливают модель прототипа. Модель может быть запущена

на дальнейшую работу. Но так как моделирование может занимать несколько

часов, то такое наблюдение за его работой как минимум неудобно. Для

борьбы с этим явлением реализована защита от синхронного срабатывания.

Она состоит во введении разрешающем сигнале генерации процессорного

синхросигнала. Генерация синхросигнала разрешается только после

окончания тренировки интерфейсов. В результате после включения питания

81

происходит настройка аппаратуры и, только после этого, запуск выполнения

логики.

Защита от синхронного взаимодействия не может полностью защищать

от ложных срабатываний. Это связано с тем, что через интерфейс между

ПЛИС могут передаваться асинхронные сигналы, например сбросы. В

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

блоком процессора как сигнал к действию. Для защиты от таких

срабатываний необходимы защёлки. Их использование позволит иметь не

переключаемые данные на протяжении всего такта процессора (рис. 2.19).

Подобную реализацию назовём защитой от асинхронного взаимодействия. Её

использование занимает около 50 – 80 тысяч регистров и такт частоты

синхронизации при передаче данных. Если внешний интерфейс блоков

микропроцессора синхронен и работает только по переднему фронту, то от

такой защиты в принципе можно отказаться. Это оправдано, так как

использование высокоскоростных интерфейсов требует наличия

достаточного количества регистров, особенно непосредственно у портов, для

сохранения временных ограничений.

Рисунок 2.19. Временная диаграмма приёма данных в прототипе.

2.8 Перспективы развития

Различные источники [26, 27, 31, 32, 33] говорят, что дальнейшее

увеличение пропускной способности медных линий связи затруднительно. И

в качестве альтернативы предполагаются использование оптических каналов

данных.

82

Организациями Altera и Avago был создан тестовый образец со

встроенной оптикой [25]. Такая реализация не увеличивает темпов передачи

данных, так как построена на ВЧПП ПЛИС. Однако, существенно

увеличивается надёжность передачи по сравнению с медью, особенно при

передачах на длинные расстояния. При этом, в связи с уменьшением

плотности трассировки, уменьшается сложность печатных плат.

Введение полноценной оптической технологии сделает возможным

реализацию HPC на ПЛИС без существенных ограничений по пропускной

способности между модулями.

2.9 Выводы

При реализации специализированных прототипов возникает множество

сложностей. Они связаны с реализацией и диагностикой функционирования

его аппаратуры, адаптацией RTL-описания микропроцессора и подготовкой

для выполнения задач этапа функциональной верификации. Большинство

трудностей связано с отсутствием грамотного разделения задач. Введение

интерфейса взаимодействия ПЛИС друг с другом, унифицирующего

подключение эмулируемой логики и каналов передачи данных, позволяет

автоматизировать разбиение RTL-описания микропроцессора, а также

диагностику функционирования прототипа для оценки его надежности и

определения конкретных неработоспособных мест, в случае их наличия.

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

прототипа, уменьшить затраты и сложность его реализации, а также

повысить ремонтопригодность и обеспечить надёжность его работы.

Большое количество логических связей, состояния которых необходимо

передавать между ПЛИС в прототипе микропроцессора, и недостаточное

число контактов ввода/вывода накладывает ограничения на частоту

эмуляции. В данной главе рассмотрены принципы передачи данных с

применением различных интерфейсов ПЛИС. Определена зависимость

83

частоты эмуляции микропроцессора в прототипе от ширины линии связи

между ПЛИС и пропускной способности интерфейса. Благодаря полученным

данным, становится возможным прогнозировать характеристики прототипов

ещё до их физической реализации и производить коррекцию структуры

связей для увеличения частоты эмуляции микропроцессора.

84

Глава 3. Реализация прототипов и анализ конструкции

Данная глава посвящена результатам применения предложенных

методов для разработки прототипов на основе ПЛИС, анализу полученного

решения и определению дальнейшего пути развития. В ней предлагается

метод самосинхронизации модулей прототипа многоядерного

микропроцессора, позволяющий отказаться от передачи синхросигнала

между ними по выделенной линии.

3.1 Основа реализации

Проверка описанных в диссертации положений и определение

эффективности предложенных методов проводилось в рамках задачи

функциональной верификации четырёхъядерного («Эльбрус-2S») и

восьмиядерного («Эльбрус-8С») микропроцессоров. При этом были

реализованы их прототипы на основе ПЛИС.

Каждый прототип представляет собой законченную вычислительную

систему с применением проектируемого микропроцессора, содержащую

северный мост, южный мост, периферийное оборудование. Особенность

данной системы в том, что микропроцессор реализован на наборе ПЛИС. Тем

не менее, такая реализация позволяет полноценно выполнять задачи

функциональной верификации RTL-описания, а также тестирования

операционной системы и программы начального старта.

3.2 Прототип четырёхъядерного микропроцессора «Эльбрус-

2S»

3.2.1 Особенности проектируемого микропроцессора

В микропроцессоре «Эльбрус-2S», впервые для архитектуры «Эльбрус»,

применяется четырёхъядерная конфигурация. При создании его RTL-

85

описания применялось множество новых решений. Блок схема верхнего

уровня приведена на рисунке 3.1.

Рисунок 3.1. Схема структуры микропроцессора «Эльбрус-2S».

Основными сложностями для прототипирования являются:

Большой объём логического оборудования (~250 MGates). Это

требует набора ПЛИС для аппаратной эмуляции всего

микропроцессора. Учитывая возможности ПЛИС, для реализации

прототипа микропроцессора «Эльбрус-2S» необходимо до 10 самых

ёмких микросхем.

Наличие центрального элемента – коммутатора, на котором

сходятся логические связи от всех остальных блоков. Объём

оборудования коммутатора и ограниченные возможности ПЛИС не

позволили объединить его с другими блоками RTL-описания, что

привело к большой плотности связей в прототипе.

Большое количество интерфейсов ввода/вывода: 3 канала

оперативной памяти, 3 канала межпроцессорного канала данных, 2

канала межмашинного обмена данных. Каждый из интерфейсов

86

должен быть протестирован как отдельно, так и при совместной

работе.

3.2.2 Определение структуры прототипа

Для верификации данного микропроцессора необходимо разработать

достаточно сложную систему. Для уменьшения времени и затрат на её

создание, а также увеличения ремонтопригодности оборудования

использовался метод реализации прототипов на основе ПЛИС с

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

организации понадобится всё остальное оборудование микропроцессора

разместить на дополнительном модуле – коммутаторе системном.

Схема модулей прототипа микропроцессора «Эльбрус-2S» приведены на

рисунке 3.2. Модуль унифицированного ядра был функционально разделен

на кэш (L1 и L2) и арифметико-логический блок. Такое разделение

обусловлено особенностями блоков и возможностями ПЛИС. Для

реализации арифметико-логического блока необходимо большое количество

логических элементов, а для реализации кэша это не столь важно, но

существенно наличие внутренней памяти в ПЛИС. Учитывая ограничения,

стало возможным использование менее ёмкой микросхемы для реализации

кэш блока.

Особенности реализации межпроцессорных и межмашинных связей

требуют использования отдельных PLL в ПЛИС, а контроллеры оперативной

памяти дополнительно ещё и DLL. Особенности расположения в ПЛИС

указанных элементов, приводит к необходимости выделения двух микросхем

и в модуле коммутатора. Дополнительным аргументом в пользу этого

решения была оценка необходимой ёмкости ПЛИС, которая показала

отсутствие запаса. В результате одна микросхема предназначалась для связи

с модулями ядра и использование одного канала оперативной памяти (ОП), а

87

вторая для обеспечения внешних связей микропроцессора и использования

двух других каналов ОП.

Рисунок 3.2. Схема процессорного ядра (слева) и коммутатора (справа) в

прототипе микропроцессора «Эльбрус-2S».

В силу ограниченных сроков проектирование прототипа началось ещё до

окончательной фиксации RTL-описания микропроцессора. В результате не

было возможности установить точное количество устанавливаемых между

блоками логических связей. Однако оценочные данные и желание

максимизировать частоту эмуляции микропроцессора позволили путём

применения метода расчёта частоты эмуляции микропроцессора в прототипе,

учитывающего особенности сериализации и десериализации данных и

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

связи. В результате оказалось, что использование максимального количества

каналов на основе физических уровней LVDS, доступных в ПЛИС, для связи

коммутатора с модулями ядрами (как места с максимальной плотностью

связей) позволяет достичь эффективной частоты эмуляции микропроцессора

в 5-10 МГц.

88

Наличие в структуре микропроцессора межмашинного канала

ввода/вывода подразумевает работу с южным мостом, так как без него

невозможно обеспечить штатное функционирование. Поэтому решено было

реализовать модуль южного моста, содержащий всю периферию и

соединяющийся с микропроцессором по штатному каналу ввода/вывода.

Для обеспечения надёжности решено было применять индустриальный

конструктив на основе спецификации CPCI для реализации прототипа.

Однако огромное количество связей модуля коммутатора с другими

модулями, частота передачи по которым достигает 1 ГГц, потребовало

применения специальных высокоплотных и высокочастотных разъёмов.

Однако, несмотря на их свойства, количества контактов оказалось

недостаточным. Поэтому для связи с южным мостом понадобился ещё один

разъём. А из-за перегруженной лицевой панели пришлось разместить его

таким образом, чтобы подключаться к нему через боковую стенку корпуса

(рис. 3.3).

Использование новых разъёмов означало отсутствие спецификации, по

которой можно реализовать конструктив. То есть необходимо было

самостоятельно определять позиционирование разъёмов на модуле

коммутатора системного.

.

255,

5

Блок питания ATX 470W

Диск

Диск

Соединительная панель

Корпус 24579-026 (заказ без соед. панели )

84 HP

Разъёмы питания и инерфейсов на соединительной

панели

Про-блок

89

Рисунок 3.3. Схема размещения модулей в прототипе микропроцессора

«Эльбрус-2S».

3.2.3 Организация системы синхронизации

Всю системы синхронизации прототипа можно разделить на три

основные группы:

Синхронизация логики ПЛИС

Интерфейсная синхронизация

Синхронизация конфигурационной схемы

Синхронизация логики всех ПЛИС друг с другом осуществляется

благодаря реализации дерева синхросигналов. Суть состоит в том, что длины

трасс синхросигналов каждого уровня дерева выровнены между собой. Это

обеспечивает одновременное поступление фронтов синхросигналов на входы

ПЛИС. Затем, имея синфазный входной синхросигнал, необходимо

нивелировать влияние задержек на линиях передачи. Для этого используется

специально разработанный модуль синхронизации, который обеспечивает

одновременный старт работы логики ПЛИС.

90

1-to-5 LVPECL Zero Delay BufferICS8634-01

EP

4SE

820H

40C

4

EP

4SE

530H

40C

4

1-to-5 LVPECL Zero Delay BufferICS8634-01

1-to-5 LVPECL Zero Delay BufferICS8634-01

1-to-5 LVPECL Zero Delay BufferICS8634-01

EPM570T144C3EPM570T144C3EPM570T144C3EPM570T144C3

core0 core3core2core1

SG-8002CA-100.000-PC-M

SG-8002CA-100.000-PC-M

SG-8002CA-100.000-PC-M

SG-8002CA-100.000-PC-M

50 – 100 МГц 50 – 100 МГц 50 – 100 МГц 50 – 100 МГц

1-to-5 LVPECL Zero Delay BufferICS8634-01

1-to-5 LVPECL Zero Delay BufferICS8634-01

LVPECL CLKHigh Frequency SYNTHESIZER(differential clk)ICS8430B-71

~20 MHz

Микропереключатель

EP

4SE

820F

43C

4

EP

3SL2

00F

1517

C4

EPM570T144C3

«E2S-КС»

SG-8002CA-100.000-PC-M

30 – 100 МГц

50 – 100 МГц

SG-8002CA-24.000-PC-MUSB3500-

ABZJ

8

EP

4SE

820H

40C

4

EP

4SE

530H

40C

4

EP

4SE

820H

40C

4

EP

4SE

530H

40C

4

EP

4SE

820H

40C

4

EP

4SE

530H

40C

4

s_strobe_core[0:3]Необходимо

выравнивание!

sclk_core[0:3](lvpecl)

1-to-5 LVPECL Zero Delay BufferICS8634-01

1-to-5 LVPECL Zero Delay BufferICS8634-01

Рисунок 3.4. Схема распространения синхросигнала в прототипе

микропроцессора «Эльбрус-2S».

Интерфейсная синхронизация необходима для того, чтобы обеспечить

взаимодействие приёмников и передатчиков ПЛИС друг с другом.

Синхронизация происходит на высокой частоте на уровне протоколов

интерфейсов ПЛИС. Передача синхросигналов происходит согласно

правилам подключения физических уровней. Для ряда интерфейсов

требуется выравнивание проводников данных по проводнику синхросигнала,

что может приводить к трудностям при большой ширине линий связи.

Работа конфигурационной системы основана независимо от работы всех

остальных систем. Синхросигнал системы конфигурации должен быть

отдельным от синхросигнала основных ПЛИС с логикой микропроцессора.

Это связано с необходимостью поддержания определённых задержек, а при

регулировке входного основного синхросигнала они могу изменяться.

91

3.2.4 Анализ реализации прототипа микропроцессора "Эльбрус-2S"

Реализованный прототип микропроцессора «Эльбрус-2S» изображён на

рисунке 3.5.

Рисунок 3.5. Прототипы микропроцессора «Эльбрус-2S».

В результате сложности системы и ограниченных сроков

проектирования в одном из модулей были допущены ошибки, которые

оказались критическими. В результате прототип оказался в не

работоспособном состоянии. Потребовался перевыпуск модуля. Однако,

время подготовки RTL-описания микропроцессора оказалось больше, чем

время необходимое на аппаратную наладку прототипа. В результате

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

Опыт применения новых для конструктива cPCI разъёмов выявил

наличие большого трения при коммутации модуля к соединительной панели.

В результате для их соединения увеличивалось усилие нажима, что

приводило к деформации соединительной панели и пропаданию контакта в

разъёмах. Последнее связано с разной длиной штырей на соединительной

панели в разъёмах cPCI и z-PACK. Решением этой проблемы стала доработка

корпуса путём подпиливания рельсы крепления соединительной панели. А

92

для нивелирования изгиба панели было разработано и размещено

специальное ребро жёсткости.

Таблица 3.1. Частота эмуляции микропроцессора «Эльбрус-2S» в

прототипе.

Линия связи

SIC_com SIC_phys

SIC_com L1L2

L1L2 Alc_cu_com

Интерфейс SSTL LVDS LVDS Fк, МГц 400 1200 1200

Fсинхр, МГц

200 200 200

Tк, нс 2.50 0.83 0.83

Tсинхр, нс 5.00 5.00 5.00

Dуст 3 3 3

Dсинхр 3 3 3

Nлог.св. 1390 667 2482

Wлин.св. 10 30 50

Wк 8 8 1

Kтактов 9 1 9

Fп, МГц 9.52 15.38 9.52

Применение метода расчета частоты эмуляции микропроцессора при

проектировании прототипа дали результаты, приведённые в таблице 3.1.

Однако на практике частота оказалась ниже теоретически доступной. Это

связано с особенностями топологии ПЛИС и печатной платы. Обобщающие

характеристики прототипа микропроцессора «Эльбрус-2S» приведены в

таблице 3.2. При этом достижение полученной частоты эмуляции

потребовало длительного времени адаптации прототипа.

Таблица 3.2. Характеристики прототипа микропроцессора «Эльбрус-2S».

Параметр Прототип

микропроцессора «Эльбрус-2S»

Количество транзисторов эмулированного микропроцессора, млн. шт. 1112

93

Параметр Прототип

микропроцессора «Эльбрус-2S»

Количество процессорных ядер, шт. 4

Частота эмуляции, МГц 8,3

Пиковая потребляемая мощность, Вт 400

Используемые ПЛИС Stratix IV EP4SE820 EP4SE530

Количество ПЛИС 10

Количество доступных логических элементов, млн. шт. 8,1

Количество и тип каналов памяти 3 канала DDR3

Размеры корпуса, мм 483х350х289

Стоимость, усл.ед. 4,8

Время изготовления, мес. 6

Время ввода в эксплуатацию, мес. 6

Реализованный прототип микропроцессора «Эльбрус-2S» показал свою

надёжность на длительном отрезке времени. Что позволило эффективно

проводить функциональную верификацию проектируемой микросхемы.

График выявленных и исправленных ошибок приведён на рисунке 3.6.

Отсутствие ошибок вначале связано с длительным временем наладки

аппаратной и программной частей прототипа, а также отсутствием готового

RTL-описания микропроцессора на более раннем этапе работы.

Последующий рост количества ошибок связан с большим объёмом

нововведений в архитектуру микропроцессора.

94

0

20

40

60

80

100

120

140

160

180

0 4 8 12 16 20 24 28 32 36 40

Месяцы

Ошибки, шт.

Рисунок 3.6. График верификации на прототипе микропроцессора «Эльбрус-

2S».

3.3 Прототип восьмиядерного микропроцессора «Эльбрус-8С»

3.3.1 Особенности проектируемого микропроцессора

В микропроцессоре «Эльбрус-8C», впервые для архитектуры «Эльбрус»,

применяется восьмиядерная конфигурация. При создании его RTL-описания

применялось множество новых решений. Блок схема верхнего уровня

приведена на рисунке 3.7.

95

Core4 Core5

SIC Global

SIC_47

L3 bank4

L3 bank5

~7

50

SIC_03

~45

00~

450

0

MemCh1

MemCh3

MemCh0

MemCh2

2x729

2x729

CPU_L0

CPU_L1

CPU_L2

IO

3x326

TD_47

TD_03

~20

0~

200

L3_com2

~7

50

Core6 Core7

L3 bank6

L3 bank7

~7

50

L3_com3

~7

50Core3 Core2

L3 bank3

L3 bank2

~7

50

L3_com1

~7

50Core1 Core0

L3 bank1

L3 bank0

~7

50

L3_com0

~7

50

980

98098

0

980

620

620

620

620

620

620

620

620

850 850

850850

326

Рисунок 3.7. Блок схема микропроцессора «Эльбрус-8С».

Создание прототипа микропроцессора «Эльбрус-8С» осложнено

большим количеством его внутренней аппаратуры и необходимостью

подключения внешних устройств. К их числу относятся:

Большой объём логического оборудования (~750 MGates). Это

требует набора ПЛИС для аппаратной эмуляции всего

микропроцессора. Учитывая возможности ПЛИС, для реализации

прототипа микропроцессора «Эльбрус-2S» необходимо до 21 самых

ёмких микросхем.

8 процессорных ядер;

96

Большое количество интерфейсов ввода/вывода: 4 канала

оперативной памяти, 3 канала межпроцессорного канала данных,

канал межмашинного обмена данных. Каждый из интерфейсов

должен быть протестирован как отдельно, так и при совместной

работе.

кэш третьего уровня (L3) объёмом 16МБ с кольцевым доступом.

Большое количество логических связей между функциональными

блоками.

3.3.2. Определение структуры прототипа

Для микропроцессора «Эльбрус-8С» ядро процессорное так же, как и у

«Эльбрус-2S», является унифицированным блоком. Поэтому ядро было

вынесено на отдельную ячейку. Однако, в отличие от предыдущего

микропроцессора, оставшееся количество оборудования микропроцессора

имеет значительный объём. В основном это связано с появлением кэша

третьего уровня и увеличением размера системного коммутатора в два раза.

В результате оценок необходимого объёма логики под них суммарно

понадобилось использовать 5 ПЛИС.

Рисунок 3.8. Схема связей для модуля П1-МЯП.

97

Введение в микропроцессоре «Эльбрус-8С» большого КЭШа третьего

уровня сделало невозможным его реализацию только лишь с использованием

микросхем ПЛИС. Это связано с ограниченным количеством памяти в них.

Так как объём КЭШа составляет 16 МБ, то для его воплощения в прототипе

пришлось использовать внешнюю память. При выборе типа памяти решено

было использовать статическую память SRAM. Её использование

обеспечивает максимальное сопоставление аппаратной эмуляции конечному

изделию, так как в процессоре КЭШ организован на статической памяти.

Применение конструктива прототипа микропроцессора «Эльбрус-2S»

оказалось невозможным. Желание сохранения достаточно высокой частоты

эмуляции микропроцессора в прототипе потребовало наличия большого

количества связей между ПЛИС, которое превысило доступные контакты

разъёмов на соединительную панель. Введение нового конструктива для

прототипирования противоречило ограниченным срокам на изготовление.

После оценки схемы связей между всеми блоками микропроцессора стало

понятно, что оптимальным для данного прототипа станет вынесение

центральной части микропроцессора на материнскую плату и вынесение

модулей ядра в качестве периферийных слотов.

Количество модулей процессорных ядер не позволило разместить их в

один ряд, что потребовало продумывания системы крепления четырёх

модулей ядра. Такое расположение компонент обеспечило симметричность

основной панели прототипа и позволило максимально распараллелить

длительный процесс трассировки. В результате чего были выдержаны

ограниченные сроки проектирования прототипа.

98

Рисунок 3.9. Схема связей для панели П1-ПСП.

Ещё одной сложностью реализации прототипа микропроцессора

«Эльбрус-8С» стала реализация нового интерфейса для его взаимодействия с

южным мостом. Его изменение, с одной стороны, не позволило использовать

существующие модули. А с другой – нового модуля с периферийным

оборудованием не существовало на момент проектирования. Поэтому для

99

экономии времени проектирования было решено использовать модуль

переходника для связи «нового» микропроцессора и «старого»

периферийного модуля. При этом способ его организации позволил

осуществлять тестирование и работу прототипа автономно от южного моста

и периферии. Всё необходимое для этого: BIOS, COM-порт, и USB канал для

подкачки тестов (аналогично прототипу микропроцессора «Эльбрус-2S»),

было размещено на переходнике.

3.3.3 Система синхронизации

Технология системы синхронизации прототипа микропроцессора

«Эльбрус-8С» такая же, как прототипа микропроцессора «Эльбрус-2S». Она

представлена деревом синхросигналов, ветви которого распространяются в

каждый модуль системы. Однако недостатки этой системы синхронизации

были устранены в этой реализации. Одним из таких недостатков стало малое

количество входных синхросигналов приходящих в ПЛИС. Суть в том, что

при использовании большого количества высокоскоростных интерфейсов

необходимо использование PLL, расположенных непосредственно на стороне

размещения каждого интерфейса. В результате в прототипе микропроцессора

«Эльбрус-2S» ощущалась нехватка входных синхросигналов на разных

сторонах ПЛИС. Поэтому в прототипе микропроцессора «Эльбрус-8С» на

каждую сторону ПЛИС был заведён отдельный синхросигнал.

Синхронность подаваемых входных синхросигналов позволила

отказаться от передачи интерфейсного синхросигнала в составе LVDS путём

использования режима DPA. Тем самым уменьшилось количество линий и

используемых контактов разъёмов модулей ядра, а также количество

необходимых PLL в ПЛИС. Последнее обеспечило лучшее размещение

логики в микросхеме за счёт лучшего использования внутренней сетки

синхросигналов.

100

Рисунок 3.10. Схема распространения синхросигнала.

Для обеспечения синхронизации микропроцессора в прототипе была

заложена схема распространения сигналов синхронизации (рис. 5.14).

Особенность данной схемы состоит в том, что на модули ядра сигналы

синхронизации поступают не с центрального элемента микропроцессора, как

это было в прототипе микропроцессора «Эльбрус-2S», а из промежуточного

101

в цепи КЭШа L3. Такая организация позволяет минимизировать количество

используемых контактов микросхемы центрального блока микропроцессора.

Это немаловажно, учитывая большое количество сигналов данной

микросхемы.

Str

obe

Str

obe

Str

obe

Str

obe

Str

obe

Str

obe

Str

obe

Str

obe

Str

obe

Str

obe

Рисунок 3.11. Схема распространения стробов для синхронизации

процессорного синхросигнала.

3.3.4 Особенности конструкции

Опыт прототипирования ЗАО «МЦСТ» показывает, что в процессе

использования больших МПП часто возникают деформации их поверхности.

Это может приводить к различным дефектам, в том числе к разрывам связей.

Особенно это актуально при ремонте модулей, когда производится демонтаж

и монтаж больших микросхем в корпусе BGA. Прототипы микропроцессоров

относятся к типу устройств с повышенной вероятностью ремонта при

изготовлении первой итерации.

При использовании некоторых элементов монтажа МПП вероятность

деформации понижается. Однако, учитывая размеры панели, в данном случае

их оказалось недостаточно. Поэтому для ликвидации возможности

102

деформации на данном прототипе были введены специальные рёбра

жёсткости. На рисунке 3.12 изображены все элементы жёсткости основной

панели прототипа.

Рисунок 3.12. Схема расположения элементов жёсткости для панели П1-

ПСП.

При использовании прототипа возникла необходимость проведения

ремонта микросхемы в корпусе BGA. Был произведён демонтаж левой

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

рёбер жёсткости. Выбранное для них расположение не обеспечило

достаточной фиксации горизонталей и вертикалей. В дополнение к этому,

при ремонте, зона микросхемы была сильно перегрета. Всё это привело к

неработоспособности модуля.

Для крепления модулей ядра процессорного был выбран принцип трёх

точечного крепежа. Сам модуль вставляется в слот, а в верхней части

прикручивается к направляющим при помощи болтов. Для обеспечения

такого крепления потребовалось изготовить две дополнительные

направляющие (рис. 3.13).

103

3.3.5 Анализ прототипа микропроцессора «Эльбрус-8С»

Реализованный прототип микропроцессора «Эльбрус-8С» приведён на

рисунке 4.17. Качество изделия оказалось на достаточно высоком уровне. В

процессе эксплуатации в схемных решениях было найдено всего две

некритичные ошибки. К недостаткам прототипа стоит также отнести

отсутствие жёсткого крепления модуля канала ввода/вывода. В результате

его фиксации осуществляется только PCIe х16 слотом.

Рисунок 3.13. Фото прототипа микропроцессора «Эльбрус-8С».

В соответствии с методом расчета частоты эмуляции микропроцессора в

прототипе был произведён расчет. Результаты приведены в таблице.3.3. Из

таблицы следует, что максимальная частота прототипа составляет 9МГц. Это

значение определено погрешностью оценки связей будущего

микропроцессора на этапе проектирования прототипа. В результате,

заложенное количество связей между указанными блоками микропроцессора

не позволяет достигать больших частот. Также этого означает об отсутствии

необходимости проведения столь большого количества связей между

другими блоками в данном прототипе.

104

Таблица 3.3. Оценка частоты эмуляции на прототипе микропроцессора

«Эльбрус-8С»

Линия связи

SIC_global SIC_left

SIC_left L3_left

L3_left L3_right

L3_left L1L2_com

L1L2_com Alc_cu_com

Интерфейс SSTL SSTL LVDS LVDS LVDS

Fк, МГц 400 400 1200 1200 1200

Fсинхр, МГц

200 200 200 200 200

Dуст 3 3 3 3 3

Dсинхр 3 3 4 4 4

Nлог.св. 1759 872 984 374 1122

Wлин.св. 17 6 50 15 111

Wк 8 8 1 1 1

Kтактов 7 20 4 5 2

Fп, МГц 10.53 9.09 11.11 10.53 12.50

В связи с особенностями топологии ПЛИС и печатной платы

максимальной частоты сразу достичь не удалось. На линиях связи

происходили частые ошибки вследствие разброса задержек распространения

сигнала в системе. Обобщающие характеристики прототипа

микропроцессора «Эльбрус-8С» приведены в таблице 3.4. При этом

достижение полученной частоты эмуляции потребовало длительного

времени адаптации прототипа.

Таблица 3.4. Характеристики прототипа микропроцессора

«Эльбрус-8С».

Параметр Прототип

микропроцессора «Эльбрус-8С»

Количество транзисторов эмулированного микропроцессора, млн. шт. 3000

Количество процессорных ядер, шт. 8

Частота эмуляции, МГц 9

105

Параметр Прототип

микропроцессора «Эльбрус-8С»

Пиковая потребляемая мощность, Вт 800

Используемые ПЛИС Stratix IV EP4SE820

Количество ПЛИС 21

Количество доступных логических элементов, млн. шт. 17

Количество и тип каналов памяти 4 канала DDR3

Размеры корпуса, мм 483х222х716

Стоимость, усл.ед. 6

Время изготовления, мес. 7

Время ввода в эксплуатацию, мес. 7

Реализованный прототип микропроцессора «Эльбрус-8С» показал

стабильную работу на длительном отрезке времени. Что позволило

эффективно проводить функциональную верификацию проектируемой

микросхемы. Особенностью прототипирования микропроцессора «Эльбрус-

8С» стал тот факт, что готовность RTL-описания оказалось раньше ввода в

строй прототипа.

3.4 Анализ полученных прототипов

За последние годы в связи с резким ростом логической ёмкости

многоядерных микропроцессоров сложность функциональной верификации

заметно возросла. Также увеличилась вероятность появления системных

ошибок. Опыт показал эффективность использования прототипов в качестве

средства верификации. Их достоинством является системность верификации.

На прототипе в составе с проектируемым микропроцессором может

верифицироваться операционная система, программа начального старта и

периферийное оборудование, в том числе и специфичное. Прототипы

106

позволяют на достаточно высокой скорости эффективно проводить

совместную верификацию в составе целостной системы, что минимизирует

количество ошибок как в готовой микросхеме, так и в целой вычислительной

системе.

Однако практика показала, что основным недостатком использования

прототипов на основе ПЛИС, создаваемых с учётом структуры

многоядерного микропроцессора, в маршруте функциональной верификации

является его длительное время ввода в эксплуатацию. При этом с

изменениями в архитектуре микропроцессора, требуется коррекция

организации прототипа. Поэтому часто возникает необходимость повторения

цикла проектирования «с нуля». А введение новых элементов в структуру

микропроцессора осложняет адаптацию созданного программного

обеспечения прототипа.

Применение унифицированного интерфейса ПЛИС позволяет добиться

существенного ускорения адаптации программной части нового прототипа,

за счёт корректировки выделенного интерфейсного модуля. Однако,

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

линейному увеличению сложности данной процедуры. В то же время

существенное время отнимает создание новой аппаратуры прототипа.

Сохранение преимуществ специализированного прототипа перед

прототипом общего назначения возможно только путём повторного

применения разработанной аппаратуры, сохраняя при этом возможность

соединения с новыми элементами системы. Здесь важно отметить, что

методика, применённая в HAPS, основанная на стандарте HAPSTrack,

предполагает вывод на каждый разъём целаго банка ПЛИС. Получается, что

каждый канал взаимодействия модулей обладает весьма большой шириной.

В результате или растут затраты на организацию связей между модулями,

или неэффективно применяются контакты микросхем.

107

Для определения оптимального взаимодействия модулей необходимо

исследование и реализация методов по уменьшению связности между ними,

которые обеспечат взаимодействие модулей разного поколение, а также

позволит минимизировать время на разработку аппаратуры и доработку

программного обеспечения прототипа. Реализация данной идеи требует

разработки принципиально новой организации прототипов на основе ПЛИС.

3.4.1 Анализ созданных специализированных прототипов на основе

ПЛИС

3.4.1.1 Выявление недостатков программной части прототипа

Изготовление каждого нового специализированного прототипа на основе

ПЛИС с учётом структуры многоядерного микропроцессора предполагает

повторное исполнение каждого пункта маршрута прототипирования (рис.

2.1). Это занимает значительное время. Его можно сократить за счёт

использования программного обеспечения, созданного для предыдущего

прототипа. Однако опыт показывает, что объём заимствования ограничен. В

основном это связано с новым аппаратным устройством прототипа. В

результате требуется переработка не только разделения RTL-описания

нового микропроцессора на части, но и обновление или дополнение заказных

и специализированных блоков, блоков сериализации. Нпример, в прототипах

разных микропроцессоров использование памяти одного типа, например

DDR3, может означать возможность заимствования программной

составляющей. Однако, в связи с различными особенностями проектируемых

микропроцессоров, в частности их подсистемы памяти, аппаратная

реализация их прототипов окажется тоже различной. Это в результате могут

быть использованы другие планки памяти, что приведёт к очередной

адаптации и конфигурации контроллера и физического уровня Altera DDR3.

Ещё одной очевидной сложностью становится использование новой

компонентной базы. В восьмиядерном микропроцессоре «Эльбрус-8С»

108

появилась статическая память КЭШа L3 большого объёма. Для её реализации

наиболее близко к проектируемому образцу желательно использовать

статическую память и в прототипе. Ограниченность памяти данного типа в

ПЛИС приводит к применению дополнительных внешних микросхем, а их

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

ними. К этому относятся контроллер SRAM от Altera, мост для

пересинхронизации и изменения интерфейса, а также тест проверки памяти

для тестирования аппаратуры.

Разработка нового прототипа также означает создание уникальных

программных модулей, так для каждой ПЛИС создаётся свой экземпляр. В

результате увеличивается количество базовых проектов ПЛИС. При этом

присутствует линейная зависимость между количеством различных

микросхем и длительностью настройки и верификации программной и

аппаратной составляющих прототипа. К примеру, в прототипе

микропроцессора «Эльбрус-2S» было 4 ПЛИС с различными

конфигурациями, а в прототипе «Эльбрус-8С» уже 7. При этом трассировка,

выполняемая системой Quartus, не обеспечивает необходимой стабильности

высокочастотных сигналов. Поэтому для работы на высокой частоте

требуется длительное время на ручную корректировку расположения

регистров в каждой отдельной ПЛИС.

Другой сложной составляющей программной части прототипа является

моделирование RTL-описания прототипа. Фактически для выполнения

данной задачи необходимо полное и правильное завершения нескольких

этапов: разделения RTL-описания микропроцессора, создание тестов связей

прототипа, реализация специализированных блоков. В результате большого

объёма указанных работ могут возникать множественные ошибки связанные

как с не готовностью некоторых блоков, так и человеческим фактором. К

числу таких ошибок относятся:

109

Отсутствие стандарта подключения файлов к проекту. Используемые

приложения (Quartus, ModelSim, Desing Compiler) имеют различные

алгоритмы подключения файлов, что провоцирует частое внесение

исправлений при переходе между ними.

Заимствование результатов созданных тестов связей и заданных в них

временных ограничений производится вручную и один раз. После этого

работы по наладке и стабилизации аппаратуры и программное

моделирование RTL-описания прототипа и его компиляция на ПЛИС идут

параллельно. Это приводит к возникновению несоответствия версий

конфигурационных файлов с логикой микропроцессора версиям для

тестирования аппаратуры. В результате приходится локализовывать и

исправлять одни и те же ошибки по два раза.

Неправильное разбиение RTL-описания микропроцессора и некорректно

описанная модель аппаратуры прототипа. Выявление таких ошибок

осложняется большой шириной шин данных между блоками. В результате

выявление ошибок происходит непосредственно при запуске модели

прототипа, выполнение которой занимает длительное время.

Неправильное описание модулей соединения микропроцессора и

периферийной аппаратуры, например внешней памяти.

Неправильная замена не синтезируемых элементов микропроцессора. К

их числу относятся внутренние памяти, регистровый файл, физические

уровни периферийных интерфейсов. Особенно это актуально при смене

поколений ПЛИС.

3.4.1.2 Выявление недостатков аппаратной части прототипа

Уникальность прототипов на основе ПЛИС, созданных с учётом

структуры многоядерного микропроцессора серии «Эльбрус», требует

создания каждого нового прототипа «с нуля». При этом заимствование

модулей предыдущего прототипа оказывается невозможным по следующим

причинам:

110

Добавление новых элементов в архитектуре микропроцессора;

Изменение топологии микропроцессора;

Рост объёма RTL-описания микропроцессора;

Моральное старение ПЛИС, используемых в предыдущем

прототипе, ёмкости которых не достаточно, чтобы вместить

обновлённое оборудование микропроцессора;

Замена периферийного оборудования и принципов его

взаимодействия с микропроцессором.

В результате при проектировании нового микропроцессора для его

аппаратной эмуляции требуется полная замена прототипа. При этом

отсутствует возможность повторного использования даже унифицированного

модуля процессорного ядра. Поэтому за достаточно короткий промежуток

времени необходимо полностью спроектировать, разработать и изготовить

технически сложное устройство. Высокий темп проектирования часто

приводит к ошибкам, некоторые из которых могут потребовать

переизготовления одного или нескольких модулей прототипа.

Дополнительной сложностью при создании аппаратной части прототипа

является введение новых решений. К ним относятся:

Новая компонентная база.

Новые способы организации передачи данных между ПЛИС.

Подобные нововведения не только повышают вероятность ошибок, но и

увеличивают время адаптации программного обеспечения прототипа. Всё это

неминуемо приводит к увеличению времени ввода прототипа в

эксплуатацию. Таким образом, основным уязвимым местом

специализированных прототипов на основе ПЛИС, создаваемых с учётом

структуры многоядерного микропроцессора, является отсутствие

унификации в аппаратуре.

111

3.4.1.3 Синхронизация частоты эмуляции во всех ПЛИС прототипа

Создание прототипов базируется на условии, что блоки RTL-описания,

реализуемые в разных ПЛИС, работают синхронно. Для обеспечения их

синхронизации необходимо, чтобы частоты эмуляции микропроцессора во

всех ПЛИС прототипа была одинакова и синфазна. Идеальная синфазность

синхросигналов в разных микросхемах невозможна. Это связано с разными

физическими задержками в работе каждого отдельного элемента системы,

так как создание и регулировка и использование синхросигналов в прототипе

обеспечивается аналоговыми схемами. Поэтому в реальной системе

необходимо определить погрешность синфазной работы. Для этого введём

частоту синхронизации. Важно, чтобы она была существенно выше частоты

эмуляции микропроцессора.

псинхр FF

Поэтому под синфазностью синхросигналов эмуляции микропроцессора

во всех ПЛИС прототипа будем понимать их одновременное переключение в

пределах в пределах одного такта частоты синхронизации (рис. 3.14). Это

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

прототипе, но и при передаче данных между ПЛИС.

Частота синхронизации

ПЛИС[1]

Частота эмуляции

ПЛИС[2]

ПЛИС[i]

Рисунок 3.14. Синхронность работы ПЛИС прототипа.

Синфазность синхросигналов эмуляции обеспечивается в несколько

этапов. Первый из них – включение питания прототипа. Так система питания

не идеальна, то выставление номиналов питания происходит не

одновременно. Поэтому на данном этапе считаем всю систему асинхронной.

112

Кроме того, при включении питания может возникнуть ситуация, когда

ПЛИС начнёт работать раньше, чем генератор синхросигнала выйдет на

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

синхросигнала произвольной частоты на входе PLL ПЛИС. Поэтому после

окончательного включения питания и стабилизации генератора, задающего

входной в ПЛИС синхросигнал, необходимо провести сброс PLL в ПЛИС.

Это позволит гарантировать безошибочную фиксацию синхросигнала

нужной частоты и создание стабильных и правильных вторичных

синхросигналов внутри ПЛИС.

Сброс аналоговых схем PLL требует неопределённого времени. В

результате в разных ПЛИС окончание сброса и повторная фиксация входного

синхросигнала закончится в разное время. Поэтому для достижения

окончательной синфазности частот эмуляции необходим дополнительный

сброс – логический, который запускает работу внутренней логики ПЛИС и

блоков микропроцессора. На него накладывается два ограничения:

Момент подачи логического сброса отнесён во времени от сброса

PLL на достаточный промежуток времени, необходимый для

окончания работы аналоговых схем в PLL.

Момент подачи логических сбросов в разных ПЛИС должен быть

синхронным в пределах одного такта частоты синхронизации.

Синхронность подачи логического сброса важна не только для работы

логики микропроцессора, но и для интерфейсов передачи данных между

ПЛИС. При рассмотрении небольших изделий расхождение сбросов в разных

ПЛИС минимально. Однако прототипы микропроцессоров серии «Эльбрус»

имеют значительный объём оборудования. В результате приобретают

размеры стендов. В них неизбежно увеличивается длина связей и разброс

времени срабатывания. В этом случае синхронность логического сброса

обеспечивается внешним арбитром. Наличие нескольких модулей делает

113

систему распределённой, что может потребовать применения нескольких

арбитров, по одному на каждый модуль.

Для синхронизации начала работы арбитров используется алгоритм

определения задержки распространения. Он позволяет автоматически

определять и учитывать время распространения по длинным линиям, а также

задержку внутри микросхем. В результате его использования гарантируется

синхронность начала работы арбитров. На рисунке 3.15 приведён пример

подобной реализации. Он идентичен как для синхронизации нескольких

ПЛИС арбитром, так и для синхронизации арбитров между собой.

Рисунок 3.15. Временная диаграмма определения задержки линии связи.

Сброс логики арбитра инициирует работу. Сразу после него

выставляется сигнал запроса абонента, который реагирует немедленным

ответом. Время получения ответного сигнала делится пополам и фиксируется

в качестве задержки распространения сигнала до абонента. Затем полученное

114

значение используется для определения момента времени сброса устройств

подключённых непосредственно к арбитру.

После прихода повторенного сигнала запроса начинается генерация

синхросигнала эмуляции микропроцессора в абоненте. Сложности

возникают, когда растет число ПЛИС. В случаях проектируемых

микропроцессоров серии "Эльбрус" число ПЛИС уже находится в диапазоне

десятков единиц. В этом случае подключение одной центральной

микросхемы со всеми остальными потребует большого числа контактов

микросхемы. Поэтому для синхронизации частоты эмуляции в прототипах

применяется последовательная синхронизация (рис.3.16).

ПЛИС 1 ПЛИС 3ПЛИС 2

MATERM

ENDPOINTE2

ENDPOINTE1

SLAVES

sync_stobe_out

sync_stobe_out

Задержка перед началом генерации

clk_sys

Задержка перед передачей

sync_strobe_out

Рисунок 3.16. Схема соединения блоков синхронизации.

Рисунок 3.17. Временная диаграмма процессорных синхросигналов в разных

ПЛИС.

При последовательном включении ПЛИС будет производиться их по-

парная синхронизация. После инициализации сброса будет произведена

115

синхронизация ПЛИС[1] и ПЛИС[2] (рис. 3.17). Синхронизировать с ними

ПЛИС[3] в тот же момент невозможно, так как еще не создан синхросигнал в

первых двух. Поэтому сделать это можно только на следующем такте

созданного синхросигнала. То есть момент начала генерации синхросигнала

в ПЛИС[3] будет сдвинут. Однако благодаря алгоритму он будет синфазным

с синхросигналом из ПЛИС[2]. С учетом того, что алгоритм синхронизации

обеспечивает учет задержек распространения, созданные синхросигналы

эмуляции микропроцессора будут синфазными в пределах одного такта

частоты синхронизации.

3.4.2 Оптимизация устройства прототипа

Анализ маршрута прототипирования многоядерных микропроцессоров,

а также созданных прототипов на основе ПЛИС, показывает

неэффективность принятой концепции с точки зрения времени ввода

прототипа в эксплуатацию. Безусловно применение унифицированного

интерфейса взаимодействия ПЛИС друг с другом существенно улучшило

ситуацию. Однако, этот положительный эффект достигается только для

нивелирования сложностей программной составляющей прототипа

микропроцессора, но не улучшают ситуацию с уникальностью его

аппаратного устройства. В результате практически отсутствует возможность

использования более половины результатов предыдущих проектов.

Оптимизация маршрута прототипирования сводится к ликвидации

последовательных связей между разными направлениями работы. А именно

между аппаратной и программной частями прототипа. Это возможно только

созданием унифицированного прототипа микропроцессора. Причём под

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

микропроцессора на одинаковых модулях, соединения между которыми

стандартизовано.

Основным препятствием для реализации унифицированного прототипа

микропроцессора является наличие уникальных составляющих в архитектуре

116

микропроцессора. К ним относятся кеш L3 и системный коммутатор. Именно

эти элементы невозможно было реализовать на тех же модулях, что и

процессорные ядра, ввиду необходимости наличия внешней памяти. А их

заимствование для нового прототипа невозможно из-за изменений в

архитектуре микропроцессора. Таким образом, концепция унификации на

основе модулей ядра процессорного не оправдала себя.

Альтернативным решением проблемы унификации может стать

унификация модуля подсистемы памяти. На его основе также можно будет

реализовать модуль процессорного ядра. Конечно, само по себе наличие

унифицированного модуля не обеспечит возможности повторного

использования прототипов. Но возможность интеграции различных

поколений устройств возможно при унификации линии связи между

модулями. Поэтому важно создать правило, по которому эти модули будут

объединяться, то есть определить способ взаимодействия модулей между

ними.

Здесь необходимо отметить основное отличие предлагаемого от решения

фирмы Synopsys в системе HAPS. Система взаимодействия, применённая в

HAPS, основанная на стандарте HAPSTrack, предполагает вывод на каждый

разъём целого банка ПЛИС. Получается, что каждый канал взаимодействия

модулей обладает весьма большой шириной. В результате или растут затраты

на организацию связей между модулями, или неэффективно применяются

контакты микросхем. Кроме того, затруднительно взаимодействие между

ПЛИС разных поколений.

В отличие от решения фирмы Synopsys предлагается унификацию

осуществить по методу минимизации количества значимых линий передачи,

в том числе служебных. В этом случае активными останутся только линии

передачи данных между ПЛИС. При этом в качестве физических уровней, на

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

CDR-трансиверы. Это даст минимизацию количества используемых

117

контактов ввода/вывода и, соответственно, ширины каналов передачи

данных, высокую частоту передачи данных, что в совокупности лишь

незначительно занижает частоту эмуляции микропроцессора. При этом

ключевой особенностью этого типа физических уровней является

возможность восстанавливать синхросигнал по переключениям данных. То

есть нет необходимости передавать его дополнительно между различными

модулями.

Такое изменение архитектуры построения прототипа предполагает

внесение изменений в одну из основных систем прототипа – систему

синхронизации. Дело в том, что в текущих реализациях аппаратуры

прототипа создано дерево синхросигналов, благодаря выравниванию всех

уровней которого обеспечивается синхронность входных частот. Однако,

такая реализация предполагает передачу базового синхросигнала между

модулями. В результате образуется структура с центральным элементом. Что

противоречит понятию "унифицированный". Также организована система

синхронизации в HAPS.

При отказе от базового системного модуля возникает вопрос о

расположении источника синхросигналов. Для решения данного вопроса

предлагается сделать генераторы на каждом модуле независимыми и

локальными, однако настроенными на одинаковую частоту. Это становится

возможным благодаря тому, что нам важно не одновременное начало

генерации, а синхронная работа в пределах одного такта синхронизации. Её

можно добиться благодаря особенностям взаимодействия ПЛИС в

прототипе. Алгоритм настройки синхронной работы прототипа без передачи

базового синхросигнала назовём самосинхронизацией.

118

3.5 Самосинхронизация модулей прототипа

3.5.1 Протокол работы

Для решения проблемы отсутствия унификации предлагается метод

самосинхронизации. Он позволяет обеспечить синфазную работу блоков

RTL-описания микропроцессора во всех ПЛИС без необходимости передачи

синхросигнала по выделенной линии между модулями прототипа. Очевидно,

что отказ от передачи синхросигнала не отменяет необходимость синхронной

работы блоков микропроцессора. Это достигается по следующему ниже

алгоритму.

На каждом модуле прототипа располагаются генераторы, настроенные

на одинаковую частоту, что обеспечит одинаковые в пределах погрешности

интервалы передачи данных. Погрешность обусловлена не одновременным

началом генерации, а также небольшими расхождениями характеристик

аналоговых цепей. При одинаковой выставленной частоте, с известной

степенью приближения, можно говорить об одинаковых периодах частоты

эмуляции. А поскольку передачи между ПЛИС осуществляются раз в такт

микропроцессора, можно произвести синхронизацию по данным посылкам.

Компенсация погрешности обеспечивается двухсторонней передачей

информации между ПЛИС о расхождении времён возникновения фронта

частоты эмуляции. Этот процесс происходит после завершения передачи

состояний всех логических связей и не влияет на частоту эмуляции.

Фиксация времени приёма и отправления пакетов в каждой из микросхем

позволит с точностью до одного такта синхронизации сказать отстаёт в ней

частота эмуляции или опережает оную у соседа. После этого на следующий

такт микропроцессора осуществляется задержка фронта синхросигнала

опережающего блока RTL-описания микропроцессора до наиболее

отстающего.

Данный метод позволяет исключить необходимость центрального

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

119

между собой. Появляется возможность создания перспективной базовой

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

однотипных, но не унифицированных, модулях, соединения между которыми

стандартизованы. Существенно сократить ширину каналов между модулями

и обеспечить высокую частоту передачи данных при сохранении частоты

эмуляции на приемлемом уровне позволяет применение физических уровней

CDR-трансиверов. А использование предложенного интерфейса

взаимодействия ПЛИС обеспечит стандартизацию.

Определение базовой модульной конструкции позволит сократить объём

проектирования специализированных прототипов на основе ПЛИС до

разработки одного модуля, повысить ремонтопригодность, обеспечить

интеграцию модулей следующих поколений в текущие прототипы и

создавать масштабируемые промышленные конфигурируемые системы.

Подобная задержка фронтов частот эмуляции позволяет преодолеть

проблему простоя системы при возникновении ошибок передачи данных

между ПЛИС. Ранее при их появлении дальнейшая работа системы считалась

неисправной, и требовался её перезапуск. Теперь в такой ситуации

происходит переповтор последней посылки путем остановки фронта частоты

эмуляции то тех пор, пока ошибка не исчезнет. Со стороны микропроцессора

данная ошибка не различима, т. к. он работает по фронту. Здесь есть

ограничение на распространение сигнала ошибки – блокировка должна

сработать до формирования фронта системной частоты, то есть за время tуст.

3.5.2 Масштабируемая система прототипирования

Анализ прототипов на основе ПЛИС, созданных с учётом структуры

многоядерного микропроцессора, и требований по их оптимизации можно

обозначить структуру унифицированного модуля. На нём должны

располагаться следующие элементы:

ПЛИС.

Планка памяти DDR3.

120

Микросхема памяти SRAM.

Генератор синхросигналов.

Микросхема управления системой конфигурации и синхронизации.

Микросхема памяти Flash для хранения конфигурационных файлов

ПЛИС.

В созданных прототипах на основе ПЛИС с учётом структуры

многоядерного микропроцессора серии «Эльбрус» процессорные ядра

выделены в отдельные модули. Это было обосновано с точки зрения

минимизации связей и оптимального разделения логической ёмкости по

модулям прототипа. В результате было использовано две микросхемы Stratix

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

связи наружу модуля была достаточно узкой для проведения её через разъём.

Разумно в унифицированном модуле также использовать два ПЛИС. Это даст

возможность широкие каналы данных реализовывать на модуле, что

освободит соединительную панель от огромного числа проводников и

упростит топологию системы. С точки зрения ремонтопригодности и

универсальности модули логичным кажется дублирование внешней памяти

на каждый ПЛИС.

На данный момент в прототипах на основе ПЛИС, созданных с учётом

структуры многоядерного микропроцессора серии «Эльбрус», для передачи

данных хорошо себя зарекомендовал интерфейс LVDS. При переходе к

новым прототипам с его помощью практически без доработок удаётся

наладить передачу широких шин логических данных. Конечно, для

сохранения частоты эмуляции требуется также большая ширина линии связи

между ПЛИС. Поэтому этот интерфейс больше подходит для передачи

внутри модуля. Для передачи наружу модуля необходима более узкая линия

связи. С этой точки зрения оптимальными выглядят передатчики ВЧПП. Их

количество в ПЛИС относительно небольшое. Однако высокая частота

передачи позволит минимизировать количество линий.

121

Важной особенностью масштабируемой системы прототипирования

является гибкость. При проведении всех связей между модулями через

соединительную панель гибкость минимальна, так как при изменении

топологии необходимо переделывать и соединительную панель. Гибкость

может быть обеспечена с помощью жгутовых соединений. Однако

проведение всех межмодульных связей через жгуты сильно усложнит

систему. Поэтому разумным кажется использование обоих решений. Часть

связей провести по соединительной панели, а другую часть вывести наружу

через жгуты.

Блок схема полученного унифицированного модуля прототипа

микропроцессора приведена на рисунке 3.18.

При организации полужёсткой системы коммутации модулей стоит

особе внимание уделить соединениям на соединительной панели. Это важно,

так как проведение связей через печатные платы упрощает коммутацию, так

как используется меньше жгутов. Одной из трудностей создания прототипов

на основе ПЛИС с учётом структуры многоядерного микропроцессора

является большая связность блоков микропроцессора. Для некоторых блоков

она достигает 6, при этом их ширина относительно небольшая. Поэтому для

минимизации и исключения транзитных связей необходимо обеспечить

соответствующую топологию связей на соединительной панели.

122

MAX2периф

ПЛИС1

ПЛИС2

Генератор синхро-сигналов

SRAM SRAM

SRAM SRAM

LVDS

LVD

S

LVDS

LVD

S

DDR3

DDR3

CDR-tranceivers x8CDR-tranceivers x8

CDR-tranceivers x8CDR-tranceivers x8

Рисунок 3.18. Блок схема унифицированного модуля прототипа

микропроцессора.

Схема коммутации модулей через соединительную панель приведена на

рисунке 3.19.

123

Рисунок 3.19. Схема межмодульных связей на соединительной панели в

масштабируемой системе прототипирования.

Проблема подачи питания состоит в том, что при реализации

масштабируемой системы неизвестна её результирующая мощность. В

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

привести к превышению разрешённой крутизны роста тока для блока

питания. Устранение этого эффекта возможно путём применения

последовательного включения модулей системы.

3.5.3 Оценка характеристик масштабируемой системы

прототипирования

Известно, что при создании любой унифицированной системы её

характеристики ухудшаются в сравнении со специализированной системой.

Однако при этом повышается гибкость использования и

ремонтопригодность. А реализация на унифицированном модуле позволит

создать масштабируемую систему, что выгодно отличает данное решение от

прототипов на основе ПЛИС с учётом структуры многоядерного

микропроцессора.

Для сравнения масштабируемого и структурно-зависимого прототипов

был проведён анализ ожидаемых характеристик масштабируемой системы

прототипирования. Анализ проводился на основе опыта прототипирования с

учётом структуры многоядерного микропроцессора и методе расчета частоты

124

эмуляции микропроцессора в прототипе. Сравнение характеристик

приведено в таблице 3.5. Из таблицы видно, что использование

масштабируемой системы увеличивает скорость запуска прототипа в

эксплуатацию не менее чем в два раза. При этом обеспечивается

возможность повторного использования созданных прототипов повторно в

следующих проектах.

Ещё одним преимуществом масштабируемой системы является лёгкий

переход на новую компонентную базу. Особенно это актуально при смене

поколения ПЛИС. В прототипах на основе ПЛИС, созданных с учётом

структуры многоядерного микропроцессора, требуется полное

переделывание прототипа, а в данной реализации изменения ограничиваются

одним модулем.

Таблица 3.5. Сравнение характеристик масштабируемого и структурно-

зависимого прототипов.

Характеристика Минимум Максимум Текущие значения

Частота эмуляции микропроцессора в прототипе

1 МГц 6 МГц 7-9 МГц

Время разработки аппаратуры очередного прототипа (с учётом производства)

0-2 мес. 4 мес. 6-8 мес.

Время адаптации ПО прототипа

1 мес. 3 мес. 6-7 мес.

Итого времени на прототип 3 мес. 7 мес. 15 мес. Размеры прототипа стенд стойка стенд

3.6 Выводы

С каждым следующим поколением микропроцессоров серии «Эльбрус»

увеличивается их сложность, объём проектируемой логики и используемой

памяти. Всё это осложняет создание прототипов на основе ПЛИС с учётом

структуры многоядерного микропроцессора. В процессе работы было

125

введено множество технических и конструкторских решений, совокупность

которых позволила создавать сложные изделия в кратчайшие сроки.

Заимствование данных решение для построения очередных систем позволило

обеспечить сокращение сроков выполнения работы. Полученные прототипы

позволяют проводить достаточно полную функциональную верификацию

RTL-описания микропроцессора, операционной системы и их

взаимодействия.

Несмотря на практически полное отсутствие заимствования аппаратуры

предыдущих прототипов, стоимость создания системы прототипирования

остаётся в несколько раз ниже стоимости изготовления одной итерации

микропроцессора. А срок использования прототипов достаточно долгий для

перекрытия нескольких итераций.

Создание прототипов на основе ПЛИС с учётом структуры

многоядерного микропроцессора позволяет увеличивать частоту эмуляции

микропроцессора в прототипе за счёт обеспечения максимальной пропускной

способности канала передачи данных. Данная концепция организации систем

прототипирования привела к чрезмерному увеличению сложности системы.

А это существенно увеличивает стоимость и время изготовления конечного

продукта.

Применение концепции масштабируемого прототипа и нового

интерфейса позволяет сохранить частоту эмуляции на приемлемом уровне.

Предложенная система прототипирования позволит проводить эмуляцию

различных существующих и перспективных микропроцессоров серии

«Эльбрус». При этом обеспечена высокая степень ремонтопригодности и

повторного использования для следующих проектов.

126

Заключение

В процессе исследования по теме диссертации автором были получены

следующие результаты:

1. Определены узкие места, замедляющие ввод специализированных

прототипов многоядерных микропроцессоров на основе ПЛИС в

эксплуатацию и ограничивающие их частоту эмуляции;

2. Обеспечена унификация подключения в проекте ПЛИС блоков

RTL-описания к различным физическим уровням за счёт

выделении последних в отдельный высокочастотный блок, что

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

3. Создана система автоматизированной диагностики

функционирования аппаратуры специализированного прототипа

на основе ПЛИС для оценки её работоспособности, определения

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

эксплуатации;

4. Решена задача максимизации частоты эмуляции за счёт

распределения линий связи в аппаратуре специализированного

прототипа на основе ПЛИС с учётом структуры многоядерного

микропроцессора и типом используемых интерфейсов;

5. Разработаны специализированные прототипы на ПЛИС

четырёхъядерного и восьмиядерного микропроцессоров в составе

реальной вычислительной системы, обеспечившие успешное и

эффективное выполнение этапа функциональной верификации.

Результаты диссертации были разработаны, внедрены и используются в

организации ЗАО «МЦСТ». В настоящее время система прототипирования

микропроцессоров серии «Эльбрус» продолжает развиваться и активно

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

Универсальность и масштабируемость, заложенная в основу построения

новой системы прототипирования обеспечит возможность повторного

127

использования прототипов, уменьшит затраты на их ввод в эксплуатацию и

сделает возможным адаптацию для других архитектур современных

микропроцессоров.

128

Литература и ссылки

1. Бычков И.Н. – Разработка методов и средств диагностики,

повышающих эффективность верификации модулей

вычислительной техники. – Диссертация на соискание учёной

степени кандидата технических наук. – На правах рукописи, 2007.

2. Воробушков В.В. – обеспечение целостности сигналов при

разработке современных вычислительных устройств –

Диссертация на соискание учёной степени кандидата технических

наук. – На правах рукописи, 2011.

3. Synopsys Inc. – VCS. Functional Verification Choice of Leading SoC

Design Teams– 2013.

4. Synopsys Inc. – Synopsys HAPS-70 FPGA-based Prototyping Solution.

– 2003.

5. Synopsys Inc., Xilinx Inc. – FPGA-based Prototyping Methodology

Manual – 2011.

6. Synopsys Inc. – ZeBu-Server Enterprise Emulator – datasheet, 2012.

7. Synopsys Inc. – ZeBu-Blade2 Enterprise Emulator – datasheet, 2012.

8. Menthor Graphics. – Veloce Family of Emulators. – Datasheet, 2011.

9. Menthor Graphics. – VStationPRO. High-Performance System

Verification. – datasheet, 2003.

10. Menthor Graphics. – Hardware-assisted verification for efficient

validation of multi-processor based designs – White paper, 2008.

11. Menthor Graphics. – Veloce System-Level Power Analysis and

Verification – White paper, 2012.

12. Menthor Graphics. – Virtual Devices for Protocol-Specific Host and

Peripheral Interfaces – White paper, 2011.

13. Cadence Design Systems, Inc. – Cadence Palladium XP Verification

Computing Platform . – 2010.

129

14. Cadence Design Systems, Inc. – Cadence Rapid Prototyping Platform

FPGA-Based Prototyping Solution – 2011.

15. Cadence Design Systems, Inc. – Hardware verification with incisive

software extentions – Technical paper, 2010.

16. Cadence Design Systems, Inc. – Cadence Palladium Series with

Incisive XE Software – Technical paper, 2011.

17. Cadence Design Systems, Inc. – Accelerated hardware/software co-

verification – White paper, 2005.

18. Cadence Design Systems, Inc. – ASIC Prototyping Simplified – White

paper, 2005.

19. Cadence Design Systems, Inc. – Allegro FPGA System Planner. FPGA-

PCB co-design with automatic rules-driven pin assignment – White

paper, 2005.

20. Xilinx Inc. – Virtex-6 Family Overview – Product Specification, 2012.

21. Xilinx Inc. – 7 Series FPGAs Overview – Product Specification, 2012.

22. Altera Corp. – Stratix IV Device Handbook – 2012.

23. Altera Corp. – Stratix V Device Handbook – 2012.

24. Altera Сorp. – Thermal Management for FPGAs. – 2012

25. Altera, Avago – Transferring High-Speed Data over Long Distances

with Combined FPGA and Multichannel Optical Modules – white

paper, 2012.

26. Altera Сorp. – Overcome Copper Limits with Optical Interfaces. – 2011

27. Altera Сorp. – FPGAs at 40 nm and >10 Gbps: Jitter-, Signal Integrity-,

Power-, and Process-Optimized Transceivers. – white paper, 2011.

28. Altera – The Breakthrough Advantage for FPGAs with Tri-Gate

Technology – white paper, 2013.

29. Altera – Expect a Breakthrough Advantage in Next-Generation FPGAs

– white paper, 2013.

130

30. Altera – Meeting the Performance and Power Imperative of the

Zettabyte Era with Generation 10 – white paper, 2013.

31. ITRS – International technology roadmap for semiconductors – 2007.

32. ITRS – International technology roadmap for semiconductors – 2009.

33. ITRS – International technology roadmap for semiconductors – 2010.

34. Tun Li, Yang Guo, SiKun Li, FuJiang Ao, GongJie Liu. Parallel –

Verilog Simulation: Architecture and Circuit Partition. – National

University of Defense Technology, P. R. China.

35. SimCluster. Parallel Simulation. – Avery Design Systems, 2005.

36. ZiedMarrakchi, Hayder Mrabet, Umer Farooq, and HabibMehrez –

FPGA Interconnect Topologies Exploration – International Journal of

Reconfigurable Computing, 2009.

37. Terrence Mak, Crescenzo D’Alessandro†, Pete Sedcole, Peter Y.K.

Cheung, Alex Yakovlev, Wayne Luk – Global Interconnections in

FPGAs: Modeling and Performance Analysis – Dept of Electrical and

Computer Engineering, 2005.

38. Jing Huang, Mehdi Baradaran Tahoori, and Fabrizio Lombardi –

Routability and Fault Tolerance of FPGA Interconnect Architectures –

Dept of Electrical and Computer Engineering, 2005.

39. Scott Hauck, Gaetano Borriello – Pin Assignment for Multi-FPGA

Systems – IEEE Transactions on Computer-Aided Design of Integrated

Circuits & Systems, Vol. 16, No. 9, pp. 956-964, September, 1997.

40. S2C Inc. – Design SoC using FPGA-based IP. An FGPA-Based ESL

Methodology. – white paper, 2005.

41. S2C Inc. – A Multi-FPGA Based Platform for emulating a 100M-

transistor-scale Processor with High-speed Peripherals – white paper,

2009.

42. Karl Pereira, Peter Athanas, Heshan Lin, Wu Feng – Spectral Method

Characterization on FPGA and GPU Accelerators

131

43. Doug Amos, Austin Lesea, Rene Richter. – FPGA-Based Prototyping

Metodology Manual. – Synopsis, Xilinx, 2011.

44. Weiwu Hu, Huandong Wang, Xiang Gao, Yunji Chen, Dan Tang. – A

Multi-FPGA Based Platform for emulating a 100M-transistor-scale

Processor with High-speed Peripherals. – S2C Inc. white paper, 2009.

45. MIT, UT Austin, CMU, Stanford, Intel, U Washington, UC Berkeley .

– RAMP: Research Accelerator for Multiple Processors - A community

Vision for a Shared Experimental Parallel HW/SW Platform. – Tecnical

Report, 2005.

46. Institute of Computer Science. – Prototyping Efficient Interprocessor

Communication Mechanisms. – IEEE, 2007.

47. Synplicity, Inc. – HapsTrak II standard – August 28, 2007

48. Dini Group – Product Brief DNBFC_S12_12_Cluster – June 2010.

49. Ф.К. Будылин, И.А. Полищук, М.В. Слесарев, С.В. Юрлин – Опыт

прототипирования микропроцессоров компании ЗАО «МЦСТ» –

журнал «Вопросы радиоэлектроники», 2012.

50. BEEcube Inc.. – A multi-FPGA application-specific architecture for

accelerating a floating point Fourier Integral Operator – white paper,

2008.

51. Alan George, Herman Lam, Greg Stitt – Novo-G: At the Forefront of

Scalable Reconf igurable Supercomputing – 2011.

52. Кожин А.С., д.т.н., проф. Сахин Ю.Х. – Коммутация соединений

процессорных ядер с общим кэшем третьего уровня

микропроцессора "Эльбрус-8С" – Вопросы радиоэлектроники

серия электронная вычислительная техника (ЭВТ), выпуск 3, 2013,

стр. 5 – 14.

53. Вараксин В.Н., Исаев М.В., д.т.н., проф. Сахин Ю.Х. –

Оптимизация межпроцессорного ротокола когерентности с

помощью справочника в микропроцессоре "Эльбрус-8С" –

132

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

техника (ЭВТ), выпуск 3, 2013, стр. 14 – 26.

54. Кожин А.С., Кожин Е.С., Костенко В.О., Лавров А.В. – Кэш

третьего уровня и поддержка когерентности микропроцессора

"Эльбрус-8С" – Вопросы радиоэлектроники серия электронная

вычислительная техника (ЭВТ), выпуск 3, 2013, стр. 26 – 38.

55. Ю.В. Байда, А. В. Бутузов, А. Г. Ефимов, М. С. Цветков –

Методология перехода от программной потактовой модели

микропроцессора к аппаратному симулятору на базе

программируемой логики – ТРУДЫ МФТИ, 2012, Том 4, № 3.

56. Schelle G., Collins J., Schuchman E., [et al ]. – Intel Nehalem processor

core made FPGA synthesizable – Proceedings of the 18th

ACM/SIGDA international symposium on Field programmable gate

arrays, 2010, P. 3–12.

57. Wang P.H., Collins J.D., Weaver C.T., [et al ]. Intel Atom processor

core made FPGA synthesizable – Proceeding of the 17th ACM/SIGDA

annual international symposium on Field programmable gate arrays,

2009, P. 209–218.

58. Sameh Asaad, Ralph Bellofatto, Bernard Brezzo, Chuck Haymes,

Mohit Kapur, Benjamin Parker, Thomas Roewer, Proshanta Saha, Todd

Takken, José Tierno – A Cycle-accurate, Cycle-reproducible multi-

FPGA System for Accelerating Multi-core Processor Simulation –

FPGA, page 153-162. ACM, (2012).

59. IS5025. 36-port Non-blocking Unmanaged 40Gb/s InfiniBand Switch

System. Product Brief – Mellanox tech., 2012.

60. Jack Regula, Chief Technology Officer, PLX Technology –

Overcoming Latency in PCIe Systems Using PLX – PLX tech.

61. Rocketick – RocketSim. GPU-based acceleration for simulators –

prodact brochure.

133

62. Коллектив авторов – Intel Nehalem Processor Core Made FPGA

Synthesizable – ACM, February 21–23 2010.

63. Mariem Turki, Zied Marrakchi, Habib Mehrez, andMohamed Abid –

Frequency Optimization Objective during System Prototyping on

Multi-FPGA Platform – International Journal of Reconfigurable

Computing, Received 30 April 2013; Accepted 16 October 2013.

64. United States Patent, Patent N0.: US 8,640,070 B2, Date of Patent: Jan.

28, 2014.

65. Yangfan Liu, Peng Liu*, Yingtao Jiang, Mei Yang, Kejun Wu,

Weidong Wang and Qingdong Yao – Building a Multi-FPGA-based

Emulation Framework to Support NoC Design and Verification.

66. Dinesh Baviskar, Sachin Patkar – A Pipelined Simulation Approach for

Logic Emulation using multi-FPGA platforms – IEEE, 2009.

67. Hsiao-Pin Su and Youn-Long Lin – A Phase Assignment Method for

Virtual-Wire-Based Hardware Emulation – IEEE, 1997.

68. Young-Su Kwon, Chong-Min Kyung – Performance-Driven Event-

Based Synchronization for Multi-FPGA Simulation Accelerator With

Event Time-Multiplexing Bus – IEEE, 2005 .

69. Jonathan Babb, Russell Tessier, Matthew Dahl, Silvina Zimi Hanono,

David M. Hoki, and Anant Agarwal – Logic Emulation with Virtual

Wires – IEEE, 1997.

70. proFPGA – FPGA Based Prototyping Solution – white paper, 2012.