Выпуск #7/2012
Дж.Янг, Б.Макхесни
Оптимизация процессорных ядер Проверка в реальных условиях
Оптимизация процессорных ядер Проверка в реальных условиях
Просмотры: 3610
Производительность процессорного ядра в системе на кристалле (SoC, System on Chip) зачастую становится важнейшей характеристикой изделия, особенно, если речь идет о смартфонах или планшетах. Чтобы оставаться конкурентоспособной, система на кристалле должна быть не только высокопроизводительной, но и удовлетворять требованиям к энергопотреблению и занимаемой площади. При реализации процессорных ядер необходимо иметь в виду, что характеристики, заявленные производителем IP-ядра, могут быть недостижимы на практике.
Что стоит за числами?
Тактовая частота – наиболее "популярная" характеристика процессорных ядер. Фирмы, которые продают изделия с процессорами, часто используют тактовую частоту как самую важную характеристику устройства. Для настольных компьютеров этот подход действительно был справедлив. Однако сравнивать производительность современных встраиваемых систем, основываясь на значениях тактовой частоты, не всегда корректно, так как на результаты сравнений таких систем в большей степени влияют архитектура и условия эксплуатации, а полученные показатели часто не соответствуют заявленной изготовителем производительности.
Для производителей IP-ядер ситуация дополнительно осложняется тем, что в реальных приложениях, кроме "чистой" производительности, важны также и некоторые другие параметры. При создании SoC должен быть найден практический компромисс между производительностью, энергопотреблением и занимаемой площадью (известный как PPA – Power, Performance, Area); ситуации, когда разработчики стараются любой ценой достичь максимальной частоты, крайне редки. Сроки разработки, общую стоимость SoC, другие параметры конфигурации и интеграции в систему также необходимо рассматривать при выборе процессорного IP-ядра для SoC. Для понимания заявленных производителем характеристик IP-ядер важно знать, как параметры реализации процессора влияют на PPA, а также стоимость и коэффициент выхода годных изделий (табл.1).
Сегодня большинство разработчиков SoC используют либо так называемые soft IP-блоки микропроцессора (т.е. RTL) в исходных кодах, либо hard IP-блоки, реализованные в базисе определенного технологического процесса (GDSII). В отдельных случаях IP-блок может быть реализован как полностью заказной блок, разработанный на транзисторном уровне (также GDSII). Soft IP-ядра позволяют разработчикам микросхемы выбирать параметры конфигурации (например, размер кэша), форму и соотношение сторон IP-ядра микропроцессора и включать дополнительные функции (такие как управление электропитанием, тестированием). Есть возможность выбора технологического процесса, провайдера логических библиотек и блоков встраиваемой памяти, удовлетворяющих их потребностям. Hard IP-ядра – это предварительно сконфигурированные и имеющие законченную, оптимизированную реализацию в определенном технологическом базисе блоки, но при этом они ограничивают возможности разработчиков SoC в выборе параметров конфигурации и технологического процесса. Полностью заказные IP-ядра позволяют разработчикам проводить оптимизацию на уровне транзисторов и соединений и достигать высокой производительности, низкого энергопотребления и минимальной занимаемой площади, но исключительно только за счет значительного усложнения процесса реализации ядра по сравнению с hard- и soft-ядрами (табл.2). Поэтому далее будут рассмотрены эти два типа IP-ядер.
Гибкость, свойственная soft IP-ядрам, требует, чтобы у разработчиков SoС был некоторый опыт конфигурирования и реализации IP-ядер процессора: только в этом случае можно получить оптимальный результат (рис.1). Требуемые затраты по оптимизации, примененные в каждом случае технологии и методы и приблизительно достижимые параметры PPA говорят о том, что разработчики нard IP-ядер должны иметь высокую квалификацию.
При выборе способа реализации IP-ядра определенные трудности могут возникнуть при сравнении приведенной в документации производительности ядер, так как существует множество влияющих на нее факторов:
конфигурация ядра (т.е. функциональные особенности);
условия эксплуатации (специфика работы, номинальное напряжение питания, температура окружающей среды);
технологический процесс;
свойства библиотек стандартных ячеек (типы ячеек, наличие ячеек с разными уровнями пороговых напряжений и мультиканальных ячеек);
характеристики блоков встроенной памяти и кэша;
условия успешного завершения проектирования (допустимые отклонения характеристик);
простота интеграции.
Успех проекта SoC зависит от понимания того, какое влияние эти параметры оказывают на характеристики конечного продукта. Далее рассмотрим стандартные критерии, которые позволят разработчику оценить ситуацию намного глубже, чем простое сравнение характеристик, приведенных в документации, и создать основу для сравнения процессорных ядер.
Основные параметры конфигурации
Многие процессорные ядра позволяют настраивать различные параметры, например, такие как:
количество операционных блоков в ядре;
вспомогательная вычислительная логика;
конфигурация кэш-памяти;
обработка прерываний и функции отладки;
встроенное самотестирование;
системы управления электропитанием.
Из-за того что одни параметры больше, чем другие влияют на характеристики PPA, конфигурация ядра процессора должна быть известна заранее. Дополнение конфигурации приведет к увеличению площади, занимаемой ядром процессора, что в свою очередь приводит к появлению более длинных проводников в кристалле и, как следствие, к негативному влиянию на тактовую частоту. Это влияние может быть компенсировано увеличением занимаемой площади, использованием различных методов трассировки проводников и активного управления электропитанием.
Количество вычислительных блоков в процессоре. Современные процессорные ядра могут иметь один, два или четыре вычислительных блока, каждый со своей собственной кэш-памятью команд и данных (L1). Программное обеспечение, работающее на многопотоковых и многопроцессорных системах, может потребовать использования кэш-памяти L2 и контроллера, поддерживающего когерентность между кэшами нескольких процессоров.
Так как вычислительное ядро и кэш-память, как правило, работают на одной тактовой частоте, а шина кэш-памяти – это "узкое" место в многопроцессорной системе, общее число вычислительных блоков будет влиять на максимально достижимую тактовую частоту. Фактически, для каждого конкретного ядра максимально достижимая тактовая частота может быть разной. Поэтому нужно убедиться в том, что указанные производителем ядра характеристики PPA соответствуют конфигурации, необходимой для конкретного приложения, и что характеристики указаны для всех ядер либо для самого медленного из них.
Вспомогательная вычислительная логика. Процессорные ядра обычно состоят из блоков, выполняющих операции с фиксированной точкой и имеющих скалярную или суперскалярную архитектуру. Для ускорения выполнения определенных задач к основному ядру может быть добавлена вспомогательная вычислительная логика. Например, производительность приложений для обработки мультимедиа с защищенным содержимым или ПО связи может быть улучшена за счет включения в ядро модуля для вычислений с плавающей точкой, расширяющей систему команд логики или векторного процессора с архитектурой SIMD (единственная инструкция, множественные данные) или MIMD (множественные инструкция, множественные данные). Использование дополнительной площади может отрицательно повлиять на максимальную тактовую частоту, энергопотребление или стоимость. С другой стороны, характеристики PPA, приведенные в документации, могут быть получены без использования какой-либо вспомогательной вычислительной логики, влияющей на достижение максимальных характеристик. Таким образом, если конкретное приложение требует наличия этой логики, необходимо сделать дополнительный анализ ее влияния на характеристики PPA.
Кэш-память. Характеристики кэш-памяти данных и команд могут влиять на производительность приложений, и большой объем памяти ее улучшает. Очевидно, что память большего объема использует больше площади, расходует больше энергии. В то же время количество, размер, организация и функции контроля четности каждого блока статической памяти непосредственно влияют на тактовую частоту. О влиянии кэш-памяти на характеристики PPA будет рассказано ниже.
Прерывания и функции отладки. Сигналы запроса прерываний, которые генерируются как аппаратными, так и программными ресурсами, часто используются для управления ОС и прикладными программами. Обработка прерываний обычно осуществляется комбинацией аппаратного и программного обеспечения. Так как архитектура устройств обработки прерываний может влиять на физическую реализацию процессорного ядра, то при рассмотрении характеристик PPA необходимо учитывать и эти детали.
При разработке ПО возможна установка контрольных точек в программе. Аппаратные средства отладки, включенные в процессорное ядро, могут оказать негативное влияние на его характеристики. Поэтому этот аспект также нуждается в разъяснении.
Тестовые функции. Для проверки исправности изготовленных SoC они должны быть протестированы либо на пластине, либо в корпусе. С помощью специализированного тестера на SoC подаются специальные автоматически сгенерированные тестовые последовательности (ATPG). Микросхема может иметь встроенные средства самотестирования (BIST). Кроме этого, разработчик SoC, использующий IP-ядра, может применять и свои собственные тесты с возможной поддержкой стандарта IEEE 1149.1. Так как тестовая логика может оказаться глубоко интегрированной в логику ядра микропроцессора, дополнительная площадь и ресурсы трассировки, которые она занимает, могут оказать негативное влияние на характеристики PPA.
Подсистемы управления питанием. Снижение технологических норм до 90 нм и ниже привело к тому, что потребляемая мощность стала одним из ключевых параметров микроэлектронных изделий, и с дальнейшим уменьшением размеров транзисторов важность этого параметра только возрастает. Энергопотребление микросхемы складывается из следующих составляющих:
статическая – энергопотребление утечки или покоя, измеряется, когда устройство находится в неактивном режиме;
динамическая – переключательная или динамическая потребляемая мощность при переключении в схеме элементов под влиянием изменяющихся сигналов данных или синхроимпульсов.
Снижение потребляемой мощности важно не только для увеличения продолжительности работы от батареи (мобильные применения), но и для высокопроизводительных SoC, требующих сложных и надежных систем теплоотвода и охлаждения. Кроме этого, при производственном тестировании схема находится в режимах с повышенной переключательной активностью и может выйти за расчетные параметры нагрева. Поэтому тщательный анализ и снижение потребляемой мощности для производственного тестирования являются обязательными этапами проектирования.
Снижения статического энергопотребления можно достичь отключением питающего напряжения с тех блоков схемы, которые в данный момент не используются. Так как отключаемые части схемы в процессе включения/отключения не могут выполнять свою рабочую функцию и существует взаимозависимость компонентов внутри отключаемых элементов, размеры и параметры отключаемых блоков должны выбираться, исходя из требуемого времени активации/деактивации этих узлов и результирующего эффекта экономии энергии.
Сохранение состояния схемы на регистрах с двойным питанием (state retention) позволяет значительно ускорить "пробуждение" отключаемых блоков без сброса управляющих автоматов, сделать отключение более выборочным и, следовательно, повысить эффект экономии энергии.
Для снижения динамического энергопотребления можно использовать техники динамического регулирования напряжения питания и основной тактовой частоты. Кроме того, во многих проектах возможно организовать работу отдельных блоков схемы на различных напряжениях питания. Это может стать хорошей альтернативой полному отключению питания с хранением состояния.
Однако существуют следующие особенности, которые необходимо учитывать при анализе суммарной потребляемой мощности, площади и производительности:
интегральные выключатели питания, регистры хранения состояния и трансляторы логических уровней занимают дополнительную площадь, что может привести к некоторой потере производительности;
падение напряжения питания на выключателях питания снижает общее напряжение на схеме, что снижает ее производительность либо вынуждает использовать более сложные алгоритмы построения схемы;
регистры хранения состояния могут иметь меньшую производительность, чем обычные регистры.
Условия эксплуатации: преодолевая закон Мура
Основные характеристики полупроводниковых изделий традиционно приводятся для режимов работы с минимальными, нормальными и максимальными условиями характеризации библиотек и технологических процессов. Применительно к процессорным ядрам наиболее важны напряжение питания и температура, так как они оказывают значительный эффект на тактовую частоту и потребляемую мощность. До появления технологических процессов 65 нм функции максимальной тактовой частоты и потребляемой мощности монотонно возрастали с ростом напряжения питания и убывали с ростом температуры. Для транзисторов с размерами в несколько нанометров происходящие физические процессы гораздо сложнее, чем наблюдалось ранее. В настоящее время серьезное влияние на мощность и тактовую частоту также оказывают вариации технологического процесса*. Поэтому важно понимать, какие комбинации библиотек и параметров условий эксплуатации следует использовать для оценки успешного завершения проектирования.
Диапазон напряжений питания, покрываемый имеющимся набором библиотек для данной технологии, традиционно составляет 10% от номинального значения. Так как прирост производительности микроэлектронных изделий с уменьшением технологических норм более выражен по сравнению с приростом, вызванным увеличением питающего напряжения, многие разработчики используют напряжение питания, выходящее за пределы диапазона в 10% от номинального значения для технологического процесса (так называемый overdrive). Повышенное напряжение может быть включено постоянно либо включаться периодически при необходимости. Последний вариант позволяет также частично нейтрализовать отрицательный эффект сокращения срока службы изделия из-за чрезмерно высокого напряжения питания и повышенной общей потребляемой мощности. Следуют учитывать подобные особенности изделий при сравнении заявленных производителем характеристик PPA.
SoC, как правило, проектируются с условием обеспечения определенного уровня производительности для наихудших условий эксплуатации (worst case). Как будет рассмотрено далее, разработчики стараются учитывать возможное дрожание фазы синхросигнала (джиттер) и влияние шума и вариаций технологического процесса внутри кристалла. Такой запас еще больше снижает резервы оптимизации и прогнозируемую производительность (рис.2).
Выбор оптимального технологического процесса
С внедрением технологических процессов с нормами 0,35 мкм и ниже в полупроводниковой индустрии получила распространение углубленная специализация техпроцессов. Например, часть пластин можно изготавливать с расчетом на схемы с высокой производительностью. Они имеют больше и более толстые слои металлизации для уменьшения паразитных емкостей глобальных межсоединений, в то же время часть пластин изготавливается, исходя из минимизации стоимости и, как следствие, обеспечивает заметно более низкую производительность.
Снижение потребляемой мощности, а также прогресс технологии изготовления микроэлектронных изделий за последнее время привели к тому, что на технологии 28 нм (и даже более ранних) существует уже не две, а гораздо больше ветвей техпроцесса, решающих следующие задачи:
применение подзатворного диэлектрика различной толщины и разных профилей легирования для обеспечения заданных пороговых напряжений и поддержки электрической совместимости со старыми техпроцессами;
применение подзатворного диэлектрика с высокой диэлектрической проницаемостью и металлических затворов для снижения утечек без ухудшения характеристик нагрузочной способности;
наличие библиотек ячеек, включающих элементы с различными пороговыми напряжениями и длинами каналов, позволяющих подобрать максимально сбалансированный библиотечный элемент для каждого конкретного элемента схемы с точки зрения потребляемой мощности и задержек;
выбор оптимального числа слоев, толщины и шага трассировки для балансировки задержек и занимаемой площади.
В целом, при выборе маршрута проектирования оптимизированных процессорных ядер важность детального понимания потенциального технологического процесса сложно переоценить, так как это определяет и стоимость изготовления пластин, и тактовую частоту, энергопотребление и занимаемую площадь, а также доступность дополнительных библиотечных опций или библиотек, позволяющих получить более сбалансированный конечный продукт.
Пять важнейших характеристик библиотек стандартных ячеек
Библиотеки стандартных ячеек – это наборы логических элементов различной сложности: от выполняющих простейшие логические операции до счетчиков, мультиплексоров и арифметических блоков. Соединения транзисторов в библиотечных ячейках обычно осуществляются при помощи одного или двух первых слоев металлизации (для технологии 20 нм и ниже используется три слоя). В процессе физического проектирования инструменты САПР размещают макроячейки, заказные блоки и стандартные ячейки на сетке и соединяют их проводниками подходящих по ограничениям слоев металлизации. IP-ядра, различные подсистемы, среди которых также одно- и многоядерные микропроцессоры, строятся на базе стандартных ячеек и блоков памяти и являются, в свою очередь, очередными блоками, из которых строится система.
При оценке маршрута проектирования и оптимизации процессора важны пять основных характеристик, присущих любой библиотеке ячеек:
высота ячейки. Обычно выражается в количестве шагов трассировочной сетки по вертикали. Более высокие ячейки обеспечивают более высокое быстродействие, облегченную трассируемость. Однако схемы, построенные на таких элементах, больше по площади и суммарной длине проводников, а вследствие более высокой паразитной емкости они менее экономичны в отношении статического и динамического энергопотребления;
наличие групп элементов с различными пороговым напряжением и длиной канала. Такое разнообразие элементов позволяет значительно снизить статическое энергопотребление схемы за счет использования элементов с пониженными утечками с высоким пороговым напряжением и/или увеличенной длиной канала для некритичных путей. Надо отметить, что элементы с высоким пороговым напряжением требуют более высокого минимального рабочего напряжения, чем остальные элементы, поэтому в схемах и блоках с динамическим регулированием напряжения питания следует избегать использования таких элементов. Элементы с пониженным пороговым напряжением, напротив, обеспечивают повышенное быстродействие за счет многократно более высоких токов утечки. Использование дополнительных библиотек с различным пороговым напряжением увеличивает число фотошаблонов, требуемое для изготовления микросхемы, что влияет как на стоимость изготовления инженерных образцов (NRE), так и на конечную цену изделия;
наличие библиотек, характеризованных при различных напряжениях питания. Такие библиотеки позволяют организовать работу различных блоков процессора на разных напряжениях питания (например, в зависимости от загрузки). Использование нескольких напряжений питания, разумеется, усложняет проект, а также требует реализации соответствующего числа различных условий эксплуатации;
наличие специализированных или заказных блоков. Некоторые ядра процессоров могут иметь критичные цепи логических элементов, влияющие на характеристики PPA. В этом случае проблему можно решить при использовании специальных заказных ячеек, покрывающих функциональность требуемого блока. Данный подход позволяет снизить потребляемую мощность и повысить качество устройства. Заказные блоки должны быть надлежащим образом охарактеризованы и верифицированы до начала их использования в проекте;
рабочий диапазон библиотеки. Использование повышенного рабочего напряжения для ускорения работы процессора требует тщательного анализа используемой библиотеки в точке, соответствующей ожидаемым условиям эксплуатации.
При условии использования идентичного техпроцесса для проектирования процессора и вспомогательной логики могут применяться разные библиотеки. Экономия площади кристалла, достигаемая при использовании высокопроизводительной библиотеки для критичных частей схемы и библиотек компактных ячеек высокой плотности для остальных блоков, может в конечном итоге окупить расходы на дополнительные библиотеки и фотошаблоны. Всесторонний анализ IP-ядра микропроцессора, планируемого к использованию, является ключом к пониманию заявленных провайдером и ожидаемых характеристик PPA после реализации ядра.
Важнейшая роль встроенной памяти
Блоки памяти, использующиеся для временного хранения данных и команд процессора, часто входят в состав критического пути, влияющего на максимально достижимую тактовую частоту. Эти блоки памяти, как правило, имеют значительный объем из-за большой разрядности шин данных и команд в современных микропроцессорах. Большой объем памяти увеличивает производительность приложений, так как уменьшается число обращений к относительно медленным ресурсам внутренней шины SoC или внешней памяти. С этой точки зрения производительность блоков памяти обычно определяется суммой времени установки адреса на шине (setup) и времени выборки данных (access time).
Функции самодиагностики и восстановления в настоящее время являются обязательными средствами для обеспечения исправной работы SoC, изготовленных по субмикронным технологиям. Встроенные схемы самодиагностики (MBIST) снижают стоимость производства изделий за счет отказа от тестирования памяти при помощи тестовой установки в процессе производственного тестирования. Кроме этого, процесс тестирования с помощью MBIST производится на рабочей тактовой частоте. Подсистемы восстановления памяти позволяют динамически заменять выявляемые MBIST дефектные фрагменты памяти специально предусмотренными резервными, что значительно повышает коэффициент выхода годных изделий. Разработчик должен оценить, учтены ли подобные функции и подсистемы, влияющие на общее быстродействие схемы и занимаемую площадь, в заявленных характеристиках процессора и можно ли их интегрировать в проектируемый SoC, включая архитектуру DFT (design-for-test).
Для увеличения времени работы от батареи для портативных и снижения тепловыделения для стационарных систем режим энергосбережения памяти должен соответствовать стратегии энергосбережения ядра процессора:
снижение напряжения питания и использование режимов "сна" для неиспользуемых блоков памяти;
отключение синхросигналов для блоков вычислительной логики и блоков хранения значений, которые не переключаются в данный момент времени;
сохранение состояний логики и значений данных для быстрого вывода блоков из режима энергосбережения.
Как и в случае с библиотеками стандартных ячеек, условия эксплуатации блоков памяти значительно влияют на максимальные тактовые частоты, достижимые для этих блоков. Кроме того, блоки памяти могут работать в режимах с повышенным напряжением питания для увеличения скорости и в режимах с пониженным напряжением для хранения данных и уменьшения потребляемой мощности. Блоки памяти также должны быть охарактеризованы, а результаты сведены в библиотечные файлы.
Критерии успешного окончания проектирования
Как упоминалось в предыдущих разделах, характеристики PPA процессорных ядер напрямую зависят от характеристик производственного процесса, температуры и номинального напряжения питания, при которых функционирует устройство. Каждый набор условий эксплуатации (corner) – важнейшая характеристика состояния проекта, используемая как в процессе разработки, так и в последующем нормоконтроле. Современные САПР позволяют проводить одновременный синтез, оптимизацию и анализ проекта в нескольких режимах работы и в разных условиях эксплуатации MCMM (Multi-Corner Multi-Mode) для достижения оптимальных параметров по производительности, мощности и занимаемой площади в соответствии с заданными проектными ограничениями.
Как правило, диапазон, в котором могут варьироваться характеристики транзисторов и проводников, определяется фабрикой-изготовителем. Он может быть сужен или искусственно смещен, однако это потребует дополнительных финансовых вложений. При этом возможно снижение выхода годных изделий и потребуется дополнительный технический контроль и отбраковка. Покупатели IP-блоков должны запрашивать, были ли подобные изменения при измерении заявленных провайдером характеристик PPA.
При экстракции параметров технологического процесса, которую использует САПР для вычисления внутрисхемных емкостей и сопротивлений в нанометровых технологических процессах, имеет большое значение количество и сложность технологических файлов. Для проведения адекватного сравнения конкурентных решений с характеристиками рассматриваемого блока необходимо убедиться в том, что для экстракции в обоих случаях были использованы идентичные технологические файлы и условия эксплуатации.
Что касается уровня СБИС в целом, экстракция оказывает серьезное влияние на анализ производительности как стандартных ячеек, так и модулей памяти. Полная экстракция стандартных ячеек и модулей памяти в высокопроизводительных проектах, использующих современные технологические процессы, позволяет серьезно повысить уровень корреляции приводимых параметров быстродействия с параметрами реальных устройств. Вот некоторые рекомендации по проведению экстракции:
включать релевантную часть окружения верхнего уровня, причем для "медленных" условий эксплуатации использовать технологические файлы, отражающие наименьшее быстродействие блока, а для "быстрых" условий – наиболее "быстрые" файлы;
по возможности (если таковая предоставляются изготовителем) использовать технологические файлы, в которых учитываются физические эффекты изготовления схемы (объемные искажения формы элементов слоев СБИС, геометрические искажения полигонов для разных слоев из-за оптических эффектов и т.п.).
Временной статический анализ (STA) – главный инструмент разработчика по оценке быстродействия схемы. Локальные и распределенные на плоскости кристалла вариации параметров схемы вносят неопределенность в характеристики работы транзисторов и параметры проводников. Учет эффекта дрожания синхросигналов, введение запасов для времени предустановки, удержания, а также вариаций задержек элементов на кристалле позволяют достичь высокой корреляции параметров быстродействия с реальными устройствами. Введение избыточных или, наоборот, недостаточных запасов приводит к излишне пессимистичным или оптимистичным оценкам, что делает схему менее гибкой и более сложной для интеграции в верхний уровень проекта. Использование инструментов STA, способных анализировать эффекты взаимовлияния проводников и шума внутри схем, точных библиотек типа CCS на моделях источников тока также способствует формированию верных ожиданий разработчика при анализе производительности схемы.
Обязательными для применения в глубоко субмикронных технологиях являются средства и методики производствопригодного проектирования DFM (design-for-manufacturing) и DFY (design-for-yield). Отказ от них с большой вероятностью приведет к удлинению этапов физической верификации, финального нормоконтроля и может оказать негативное влияние на характеристики PPA.
За пределами блока: вопросы интеграции верхнего уровня
Независимо от того, проектирует ли разработчик IP-блок процессора самостоятельно, доверяет его разработку сторонней организации или покупает готовое универсальное решение (soft или hard IP-ядро), он должен быть встроен в разрабатываемую SoC на этапе ее сборки. Кроме того, при сборке верхнего уровня проводятся функциональное моделирование, анализ и моделирование энергопотребления, формальная верификация, физический синтез и верификация, интеграция подсистем производственного тестирования и финальный нормоконтроль. Для получения достоверных результатов все эти этапы необходимо проводить оперативно, но с высокой степенью надежности. Для успешной интеграции IP-ядра разработчик должен иметь пакет сопровождающих материалов (табл.3).
Ситуация с характеристиками производительности процессоров сегодня до крайности схожа с "войной частот", которая наблюдалась на рынке персональных компьютеров в 90-е годы прошлого века. Но в отличие от этого рынка с его большими форм-факторами и радиаторами для отвода десятков ватт тепла для современного рынка очень важна ниша мобильных решений с высокой производительностью и одновременно длительным сроком службы от батареи. Разработчик, предложивший удовлетворяющее этим требованиям и в то же время недорогое решение, станет в итоге победителем.
Для того чтобы верно оценить достоверность характеристик производительности системы с IP-ядром, стоит задать следующие вопросы:
Каковы условия эксплуатации для заявляемых параметров производительности: худшие или нормальные?
Эти параметры получены на реальном изделии или в результате моделирования?
Использовалось ли повышенное напряжение питания?
Сколько ядер в системе? Одинаково ли они сконфигурированы?
Заложены ли запасы для получения приемлемого выхода годных изделий (например, учтены ли вариации)?
Не была ли пожертвована потребляемая мощность в пользу повышенной производительности (например, повышенное напряжение питания или использование элементов с низким пороговым напряжением)?
Не была ли упрощена спецификация в пользу высокого быстродействия?
Анализ лишь лежащих на поверхности данных о производительности, потребляемой мощности и занимаемой площади без учета особенностей проектирования и условий характеризации может привести к несоответствию заявленных и реально полученных характеристик. Смотрите дальше заявленных цифр и защищайте свои вложения! ●
*Bernstein K. et al. High performance CMOS variability in the 65-nm regime and beyond. – IBM J.RES & DEV., July/September 2006, v.50, № 4/5.
Таблица 1. Влияние параметров реализации и условий эксплуатации ядра микропроцессора на ключевые параметры продукта
Параметры ядра
Степень влияния
Снижение стоимости пластины
Повышение тактовой частоты
Снижение энергопотребления
Снижение занимаемой площади
Повышение выхода годных изделий
Динамическое
Статическое
Наличие дополнительных1 функциональных блоков
–
▷
▷
▷
▷
–
Наличие библиотек с низким пороговым напряжением
▷
2
◀
–
▶
◁
–
Использование повышенного напряжения питания
–
◀
▶
▶
◁
–
Наличие систем1 самодиагностики и восстановления
–
▷
▷
▷
▷
◀
Использование селективного выключения питания
–
▷
–
◁
▷
–
Эксплуатация
в условиях повышенной температуры
–
▶
◁
3
–
–
▶
Искусственное смещение параметров техпроцесса
быстрое
▷
4
◀
◁
–
–
◀
медленное
▶
–
–
–
▶
Дополнительный запас для временных ограничений
–
▷
–
–
–
–
Использование расширенного режима статического временного анализа (AOCV)
–
◁
–
–
–
–
Условные обозначения:
◀
значительно улучшает;
◁
немного улучшает; – не влияет;
▷
немного ухудшает;
▶
значительно ухудшает.
Примечания.
1 Использование большого количества операционных блоков, вспомогательной вычислительной логики, кэш-памяти и логических схем обработки прерываний, отладки, тестирования и управления электропитанием приводит к увеличению площади, занимаемой микропроцессором на кристалле. Это, в свою очередь, приводит к увеличению длины соединений (проводников) и, как следствие, к увеличению динамической потребляемой мощности при одинаковой тактовой частоте. 2 Каждое дополнительное пороговое напряжение приводит к использованию при изготовлении SoC двух дополнительных фотошаблонов. 3 Высокие температуры уменьшают активные токи, протекающие через транзисторы и, как следствие, уменьшают тактовую частоту и динамическое энергопотребление. 4 Нормирование технологического процесса позволяет нейтрализовать негативные краевые эффекты.
Параметр
Ядро в исходных кодах (soft core)
Ядро в топологии (hard core)
Самостоятельно спроектированное ядро на транзисторном уровне
Тактовая частота
90% от hard core
Высокая
Самая высокая
Коррелируемость оценки параметров проекта и готового результата
Сильно зависит от используемой методологии
Самая высокая
Гибкость
Высокая. Наличие RTL позволяет реконфигурировать блок под требования конкретного проекта
Отсутствует – готовый GDSII-блок
Переносимость
Высокая. Наличие RTL позволяет синтезировать блок в базисе различных библиотек и техпроцессов
Отсутствует – фиксированный техпроцесс и фабрика
Затраченные усилия на разработку
3–6 человеко-месяцев
Soft core + 6–9 человеко-месяцев для каждого техпроцесса
>10 человеко-лет
Таблица 2. Сравнение некоторых характеристик IP-ядер
Рис.1. Относительный уровень характеристик PPA по сравнению с затрачиваемыми усилиями реализации soft IP-блока
Рис.2. Ухудшение реальных характеристик IP-блока по сравнению с заявленными
Наименование
Ядро в исходных кода (soft core)
Ядро в топологии (нard core)
Используемое число слоев металлизации, ограничения на трассировку
•
•
Размеры и расположение портов данных
•
•
Параметры питания и расположение портов питания
•
•
Руководство по установке защитных диодов
•
•
Скрипты для проведения DRC
•
•
Рекомендуемые запасы по временам предустановки и удержания
•
•
Топология в формате GDSII
•
Абстрактные физические модели (например, LEF)
•
Модели для функционального моделирования
•
Тестовая модель DFT
•
Схема для проведения LVS
•
Библиотечные файлы .lib/.db или SDF
•
Временные ограничения для интеграции на верхний уровень
•
Руководство по синхросигналам
•
Отчет DRC
•
Подробное функциональное описание и руководство по интеграции
•
Таблица 3. Сопровождающие IP-ядро материалы
Тактовая частота – наиболее "популярная" характеристика процессорных ядер. Фирмы, которые продают изделия с процессорами, часто используют тактовую частоту как самую важную характеристику устройства. Для настольных компьютеров этот подход действительно был справедлив. Однако сравнивать производительность современных встраиваемых систем, основываясь на значениях тактовой частоты, не всегда корректно, так как на результаты сравнений таких систем в большей степени влияют архитектура и условия эксплуатации, а полученные показатели часто не соответствуют заявленной изготовителем производительности.
Для производителей IP-ядер ситуация дополнительно осложняется тем, что в реальных приложениях, кроме "чистой" производительности, важны также и некоторые другие параметры. При создании SoC должен быть найден практический компромисс между производительностью, энергопотреблением и занимаемой площадью (известный как PPA – Power, Performance, Area); ситуации, когда разработчики стараются любой ценой достичь максимальной частоты, крайне редки. Сроки разработки, общую стоимость SoC, другие параметры конфигурации и интеграции в систему также необходимо рассматривать при выборе процессорного IP-ядра для SoC. Для понимания заявленных производителем характеристик IP-ядер важно знать, как параметры реализации процессора влияют на PPA, а также стоимость и коэффициент выхода годных изделий (табл.1).
Сегодня большинство разработчиков SoC используют либо так называемые soft IP-блоки микропроцессора (т.е. RTL) в исходных кодах, либо hard IP-блоки, реализованные в базисе определенного технологического процесса (GDSII). В отдельных случаях IP-блок может быть реализован как полностью заказной блок, разработанный на транзисторном уровне (также GDSII). Soft IP-ядра позволяют разработчикам микросхемы выбирать параметры конфигурации (например, размер кэша), форму и соотношение сторон IP-ядра микропроцессора и включать дополнительные функции (такие как управление электропитанием, тестированием). Есть возможность выбора технологического процесса, провайдера логических библиотек и блоков встраиваемой памяти, удовлетворяющих их потребностям. Hard IP-ядра – это предварительно сконфигурированные и имеющие законченную, оптимизированную реализацию в определенном технологическом базисе блоки, но при этом они ограничивают возможности разработчиков SoC в выборе параметров конфигурации и технологического процесса. Полностью заказные IP-ядра позволяют разработчикам проводить оптимизацию на уровне транзисторов и соединений и достигать высокой производительности, низкого энергопотребления и минимальной занимаемой площади, но исключительно только за счет значительного усложнения процесса реализации ядра по сравнению с hard- и soft-ядрами (табл.2). Поэтому далее будут рассмотрены эти два типа IP-ядер.
Гибкость, свойственная soft IP-ядрам, требует, чтобы у разработчиков SoС был некоторый опыт конфигурирования и реализации IP-ядер процессора: только в этом случае можно получить оптимальный результат (рис.1). Требуемые затраты по оптимизации, примененные в каждом случае технологии и методы и приблизительно достижимые параметры PPA говорят о том, что разработчики нard IP-ядер должны иметь высокую квалификацию.
При выборе способа реализации IP-ядра определенные трудности могут возникнуть при сравнении приведенной в документации производительности ядер, так как существует множество влияющих на нее факторов:
конфигурация ядра (т.е. функциональные особенности);
условия эксплуатации (специфика работы, номинальное напряжение питания, температура окружающей среды);
технологический процесс;
свойства библиотек стандартных ячеек (типы ячеек, наличие ячеек с разными уровнями пороговых напряжений и мультиканальных ячеек);
характеристики блоков встроенной памяти и кэша;
условия успешного завершения проектирования (допустимые отклонения характеристик);
простота интеграции.
Успех проекта SoC зависит от понимания того, какое влияние эти параметры оказывают на характеристики конечного продукта. Далее рассмотрим стандартные критерии, которые позволят разработчику оценить ситуацию намного глубже, чем простое сравнение характеристик, приведенных в документации, и создать основу для сравнения процессорных ядер.
Основные параметры конфигурации
Многие процессорные ядра позволяют настраивать различные параметры, например, такие как:
количество операционных блоков в ядре;
вспомогательная вычислительная логика;
конфигурация кэш-памяти;
обработка прерываний и функции отладки;
встроенное самотестирование;
системы управления электропитанием.
Из-за того что одни параметры больше, чем другие влияют на характеристики PPA, конфигурация ядра процессора должна быть известна заранее. Дополнение конфигурации приведет к увеличению площади, занимаемой ядром процессора, что в свою очередь приводит к появлению более длинных проводников в кристалле и, как следствие, к негативному влиянию на тактовую частоту. Это влияние может быть компенсировано увеличением занимаемой площади, использованием различных методов трассировки проводников и активного управления электропитанием.
Количество вычислительных блоков в процессоре. Современные процессорные ядра могут иметь один, два или четыре вычислительных блока, каждый со своей собственной кэш-памятью команд и данных (L1). Программное обеспечение, работающее на многопотоковых и многопроцессорных системах, может потребовать использования кэш-памяти L2 и контроллера, поддерживающего когерентность между кэшами нескольких процессоров.
Так как вычислительное ядро и кэш-память, как правило, работают на одной тактовой частоте, а шина кэш-памяти – это "узкое" место в многопроцессорной системе, общее число вычислительных блоков будет влиять на максимально достижимую тактовую частоту. Фактически, для каждого конкретного ядра максимально достижимая тактовая частота может быть разной. Поэтому нужно убедиться в том, что указанные производителем ядра характеристики PPA соответствуют конфигурации, необходимой для конкретного приложения, и что характеристики указаны для всех ядер либо для самого медленного из них.
Вспомогательная вычислительная логика. Процессорные ядра обычно состоят из блоков, выполняющих операции с фиксированной точкой и имеющих скалярную или суперскалярную архитектуру. Для ускорения выполнения определенных задач к основному ядру может быть добавлена вспомогательная вычислительная логика. Например, производительность приложений для обработки мультимедиа с защищенным содержимым или ПО связи может быть улучшена за счет включения в ядро модуля для вычислений с плавающей точкой, расширяющей систему команд логики или векторного процессора с архитектурой SIMD (единственная инструкция, множественные данные) или MIMD (множественные инструкция, множественные данные). Использование дополнительной площади может отрицательно повлиять на максимальную тактовую частоту, энергопотребление или стоимость. С другой стороны, характеристики PPA, приведенные в документации, могут быть получены без использования какой-либо вспомогательной вычислительной логики, влияющей на достижение максимальных характеристик. Таким образом, если конкретное приложение требует наличия этой логики, необходимо сделать дополнительный анализ ее влияния на характеристики PPA.
Кэш-память. Характеристики кэш-памяти данных и команд могут влиять на производительность приложений, и большой объем памяти ее улучшает. Очевидно, что память большего объема использует больше площади, расходует больше энергии. В то же время количество, размер, организация и функции контроля четности каждого блока статической памяти непосредственно влияют на тактовую частоту. О влиянии кэш-памяти на характеристики PPA будет рассказано ниже.
Прерывания и функции отладки. Сигналы запроса прерываний, которые генерируются как аппаратными, так и программными ресурсами, часто используются для управления ОС и прикладными программами. Обработка прерываний обычно осуществляется комбинацией аппаратного и программного обеспечения. Так как архитектура устройств обработки прерываний может влиять на физическую реализацию процессорного ядра, то при рассмотрении характеристик PPA необходимо учитывать и эти детали.
При разработке ПО возможна установка контрольных точек в программе. Аппаратные средства отладки, включенные в процессорное ядро, могут оказать негативное влияние на его характеристики. Поэтому этот аспект также нуждается в разъяснении.
Тестовые функции. Для проверки исправности изготовленных SoC они должны быть протестированы либо на пластине, либо в корпусе. С помощью специализированного тестера на SoC подаются специальные автоматически сгенерированные тестовые последовательности (ATPG). Микросхема может иметь встроенные средства самотестирования (BIST). Кроме этого, разработчик SoC, использующий IP-ядра, может применять и свои собственные тесты с возможной поддержкой стандарта IEEE 1149.1. Так как тестовая логика может оказаться глубоко интегрированной в логику ядра микропроцессора, дополнительная площадь и ресурсы трассировки, которые она занимает, могут оказать негативное влияние на характеристики PPA.
Подсистемы управления питанием. Снижение технологических норм до 90 нм и ниже привело к тому, что потребляемая мощность стала одним из ключевых параметров микроэлектронных изделий, и с дальнейшим уменьшением размеров транзисторов важность этого параметра только возрастает. Энергопотребление микросхемы складывается из следующих составляющих:
статическая – энергопотребление утечки или покоя, измеряется, когда устройство находится в неактивном режиме;
динамическая – переключательная или динамическая потребляемая мощность при переключении в схеме элементов под влиянием изменяющихся сигналов данных или синхроимпульсов.
Снижение потребляемой мощности важно не только для увеличения продолжительности работы от батареи (мобильные применения), но и для высокопроизводительных SoC, требующих сложных и надежных систем теплоотвода и охлаждения. Кроме этого, при производственном тестировании схема находится в режимах с повышенной переключательной активностью и может выйти за расчетные параметры нагрева. Поэтому тщательный анализ и снижение потребляемой мощности для производственного тестирования являются обязательными этапами проектирования.
Снижения статического энергопотребления можно достичь отключением питающего напряжения с тех блоков схемы, которые в данный момент не используются. Так как отключаемые части схемы в процессе включения/отключения не могут выполнять свою рабочую функцию и существует взаимозависимость компонентов внутри отключаемых элементов, размеры и параметры отключаемых блоков должны выбираться, исходя из требуемого времени активации/деактивации этих узлов и результирующего эффекта экономии энергии.
Сохранение состояния схемы на регистрах с двойным питанием (state retention) позволяет значительно ускорить "пробуждение" отключаемых блоков без сброса управляющих автоматов, сделать отключение более выборочным и, следовательно, повысить эффект экономии энергии.
Для снижения динамического энергопотребления можно использовать техники динамического регулирования напряжения питания и основной тактовой частоты. Кроме того, во многих проектах возможно организовать работу отдельных блоков схемы на различных напряжениях питания. Это может стать хорошей альтернативой полному отключению питания с хранением состояния.
Однако существуют следующие особенности, которые необходимо учитывать при анализе суммарной потребляемой мощности, площади и производительности:
интегральные выключатели питания, регистры хранения состояния и трансляторы логических уровней занимают дополнительную площадь, что может привести к некоторой потере производительности;
падение напряжения питания на выключателях питания снижает общее напряжение на схеме, что снижает ее производительность либо вынуждает использовать более сложные алгоритмы построения схемы;
регистры хранения состояния могут иметь меньшую производительность, чем обычные регистры.
Условия эксплуатации: преодолевая закон Мура
Основные характеристики полупроводниковых изделий традиционно приводятся для режимов работы с минимальными, нормальными и максимальными условиями характеризации библиотек и технологических процессов. Применительно к процессорным ядрам наиболее важны напряжение питания и температура, так как они оказывают значительный эффект на тактовую частоту и потребляемую мощность. До появления технологических процессов 65 нм функции максимальной тактовой частоты и потребляемой мощности монотонно возрастали с ростом напряжения питания и убывали с ростом температуры. Для транзисторов с размерами в несколько нанометров происходящие физические процессы гораздо сложнее, чем наблюдалось ранее. В настоящее время серьезное влияние на мощность и тактовую частоту также оказывают вариации технологического процесса*. Поэтому важно понимать, какие комбинации библиотек и параметров условий эксплуатации следует использовать для оценки успешного завершения проектирования.
Диапазон напряжений питания, покрываемый имеющимся набором библиотек для данной технологии, традиционно составляет 10% от номинального значения. Так как прирост производительности микроэлектронных изделий с уменьшением технологических норм более выражен по сравнению с приростом, вызванным увеличением питающего напряжения, многие разработчики используют напряжение питания, выходящее за пределы диапазона в 10% от номинального значения для технологического процесса (так называемый overdrive). Повышенное напряжение может быть включено постоянно либо включаться периодически при необходимости. Последний вариант позволяет также частично нейтрализовать отрицательный эффект сокращения срока службы изделия из-за чрезмерно высокого напряжения питания и повышенной общей потребляемой мощности. Следуют учитывать подобные особенности изделий при сравнении заявленных производителем характеристик PPA.
SoC, как правило, проектируются с условием обеспечения определенного уровня производительности для наихудших условий эксплуатации (worst case). Как будет рассмотрено далее, разработчики стараются учитывать возможное дрожание фазы синхросигнала (джиттер) и влияние шума и вариаций технологического процесса внутри кристалла. Такой запас еще больше снижает резервы оптимизации и прогнозируемую производительность (рис.2).
Выбор оптимального технологического процесса
С внедрением технологических процессов с нормами 0,35 мкм и ниже в полупроводниковой индустрии получила распространение углубленная специализация техпроцессов. Например, часть пластин можно изготавливать с расчетом на схемы с высокой производительностью. Они имеют больше и более толстые слои металлизации для уменьшения паразитных емкостей глобальных межсоединений, в то же время часть пластин изготавливается, исходя из минимизации стоимости и, как следствие, обеспечивает заметно более низкую производительность.
Снижение потребляемой мощности, а также прогресс технологии изготовления микроэлектронных изделий за последнее время привели к тому, что на технологии 28 нм (и даже более ранних) существует уже не две, а гораздо больше ветвей техпроцесса, решающих следующие задачи:
применение подзатворного диэлектрика различной толщины и разных профилей легирования для обеспечения заданных пороговых напряжений и поддержки электрической совместимости со старыми техпроцессами;
применение подзатворного диэлектрика с высокой диэлектрической проницаемостью и металлических затворов для снижения утечек без ухудшения характеристик нагрузочной способности;
наличие библиотек ячеек, включающих элементы с различными пороговыми напряжениями и длинами каналов, позволяющих подобрать максимально сбалансированный библиотечный элемент для каждого конкретного элемента схемы с точки зрения потребляемой мощности и задержек;
выбор оптимального числа слоев, толщины и шага трассировки для балансировки задержек и занимаемой площади.
В целом, при выборе маршрута проектирования оптимизированных процессорных ядер важность детального понимания потенциального технологического процесса сложно переоценить, так как это определяет и стоимость изготовления пластин, и тактовую частоту, энергопотребление и занимаемую площадь, а также доступность дополнительных библиотечных опций или библиотек, позволяющих получить более сбалансированный конечный продукт.
Пять важнейших характеристик библиотек стандартных ячеек
Библиотеки стандартных ячеек – это наборы логических элементов различной сложности: от выполняющих простейшие логические операции до счетчиков, мультиплексоров и арифметических блоков. Соединения транзисторов в библиотечных ячейках обычно осуществляются при помощи одного или двух первых слоев металлизации (для технологии 20 нм и ниже используется три слоя). В процессе физического проектирования инструменты САПР размещают макроячейки, заказные блоки и стандартные ячейки на сетке и соединяют их проводниками подходящих по ограничениям слоев металлизации. IP-ядра, различные подсистемы, среди которых также одно- и многоядерные микропроцессоры, строятся на базе стандартных ячеек и блоков памяти и являются, в свою очередь, очередными блоками, из которых строится система.
При оценке маршрута проектирования и оптимизации процессора важны пять основных характеристик, присущих любой библиотеке ячеек:
высота ячейки. Обычно выражается в количестве шагов трассировочной сетки по вертикали. Более высокие ячейки обеспечивают более высокое быстродействие, облегченную трассируемость. Однако схемы, построенные на таких элементах, больше по площади и суммарной длине проводников, а вследствие более высокой паразитной емкости они менее экономичны в отношении статического и динамического энергопотребления;
наличие групп элементов с различными пороговым напряжением и длиной канала. Такое разнообразие элементов позволяет значительно снизить статическое энергопотребление схемы за счет использования элементов с пониженными утечками с высоким пороговым напряжением и/или увеличенной длиной канала для некритичных путей. Надо отметить, что элементы с высоким пороговым напряжением требуют более высокого минимального рабочего напряжения, чем остальные элементы, поэтому в схемах и блоках с динамическим регулированием напряжения питания следует избегать использования таких элементов. Элементы с пониженным пороговым напряжением, напротив, обеспечивают повышенное быстродействие за счет многократно более высоких токов утечки. Использование дополнительных библиотек с различным пороговым напряжением увеличивает число фотошаблонов, требуемое для изготовления микросхемы, что влияет как на стоимость изготовления инженерных образцов (NRE), так и на конечную цену изделия;
наличие библиотек, характеризованных при различных напряжениях питания. Такие библиотеки позволяют организовать работу различных блоков процессора на разных напряжениях питания (например, в зависимости от загрузки). Использование нескольких напряжений питания, разумеется, усложняет проект, а также требует реализации соответствующего числа различных условий эксплуатации;
наличие специализированных или заказных блоков. Некоторые ядра процессоров могут иметь критичные цепи логических элементов, влияющие на характеристики PPA. В этом случае проблему можно решить при использовании специальных заказных ячеек, покрывающих функциональность требуемого блока. Данный подход позволяет снизить потребляемую мощность и повысить качество устройства. Заказные блоки должны быть надлежащим образом охарактеризованы и верифицированы до начала их использования в проекте;
рабочий диапазон библиотеки. Использование повышенного рабочего напряжения для ускорения работы процессора требует тщательного анализа используемой библиотеки в точке, соответствующей ожидаемым условиям эксплуатации.
При условии использования идентичного техпроцесса для проектирования процессора и вспомогательной логики могут применяться разные библиотеки. Экономия площади кристалла, достигаемая при использовании высокопроизводительной библиотеки для критичных частей схемы и библиотек компактных ячеек высокой плотности для остальных блоков, может в конечном итоге окупить расходы на дополнительные библиотеки и фотошаблоны. Всесторонний анализ IP-ядра микропроцессора, планируемого к использованию, является ключом к пониманию заявленных провайдером и ожидаемых характеристик PPA после реализации ядра.
Важнейшая роль встроенной памяти
Блоки памяти, использующиеся для временного хранения данных и команд процессора, часто входят в состав критического пути, влияющего на максимально достижимую тактовую частоту. Эти блоки памяти, как правило, имеют значительный объем из-за большой разрядности шин данных и команд в современных микропроцессорах. Большой объем памяти увеличивает производительность приложений, так как уменьшается число обращений к относительно медленным ресурсам внутренней шины SoC или внешней памяти. С этой точки зрения производительность блоков памяти обычно определяется суммой времени установки адреса на шине (setup) и времени выборки данных (access time).
Функции самодиагностики и восстановления в настоящее время являются обязательными средствами для обеспечения исправной работы SoC, изготовленных по субмикронным технологиям. Встроенные схемы самодиагностики (MBIST) снижают стоимость производства изделий за счет отказа от тестирования памяти при помощи тестовой установки в процессе производственного тестирования. Кроме этого, процесс тестирования с помощью MBIST производится на рабочей тактовой частоте. Подсистемы восстановления памяти позволяют динамически заменять выявляемые MBIST дефектные фрагменты памяти специально предусмотренными резервными, что значительно повышает коэффициент выхода годных изделий. Разработчик должен оценить, учтены ли подобные функции и подсистемы, влияющие на общее быстродействие схемы и занимаемую площадь, в заявленных характеристиках процессора и можно ли их интегрировать в проектируемый SoC, включая архитектуру DFT (design-for-test).
Для увеличения времени работы от батареи для портативных и снижения тепловыделения для стационарных систем режим энергосбережения памяти должен соответствовать стратегии энергосбережения ядра процессора:
снижение напряжения питания и использование режимов "сна" для неиспользуемых блоков памяти;
отключение синхросигналов для блоков вычислительной логики и блоков хранения значений, которые не переключаются в данный момент времени;
сохранение состояний логики и значений данных для быстрого вывода блоков из режима энергосбережения.
Как и в случае с библиотеками стандартных ячеек, условия эксплуатации блоков памяти значительно влияют на максимальные тактовые частоты, достижимые для этих блоков. Кроме того, блоки памяти могут работать в режимах с повышенным напряжением питания для увеличения скорости и в режимах с пониженным напряжением для хранения данных и уменьшения потребляемой мощности. Блоки памяти также должны быть охарактеризованы, а результаты сведены в библиотечные файлы.
Критерии успешного окончания проектирования
Как упоминалось в предыдущих разделах, характеристики PPA процессорных ядер напрямую зависят от характеристик производственного процесса, температуры и номинального напряжения питания, при которых функционирует устройство. Каждый набор условий эксплуатации (corner) – важнейшая характеристика состояния проекта, используемая как в процессе разработки, так и в последующем нормоконтроле. Современные САПР позволяют проводить одновременный синтез, оптимизацию и анализ проекта в нескольких режимах работы и в разных условиях эксплуатации MCMM (Multi-Corner Multi-Mode) для достижения оптимальных параметров по производительности, мощности и занимаемой площади в соответствии с заданными проектными ограничениями.
Как правило, диапазон, в котором могут варьироваться характеристики транзисторов и проводников, определяется фабрикой-изготовителем. Он может быть сужен или искусственно смещен, однако это потребует дополнительных финансовых вложений. При этом возможно снижение выхода годных изделий и потребуется дополнительный технический контроль и отбраковка. Покупатели IP-блоков должны запрашивать, были ли подобные изменения при измерении заявленных провайдером характеристик PPA.
При экстракции параметров технологического процесса, которую использует САПР для вычисления внутрисхемных емкостей и сопротивлений в нанометровых технологических процессах, имеет большое значение количество и сложность технологических файлов. Для проведения адекватного сравнения конкурентных решений с характеристиками рассматриваемого блока необходимо убедиться в том, что для экстракции в обоих случаях были использованы идентичные технологические файлы и условия эксплуатации.
Что касается уровня СБИС в целом, экстракция оказывает серьезное влияние на анализ производительности как стандартных ячеек, так и модулей памяти. Полная экстракция стандартных ячеек и модулей памяти в высокопроизводительных проектах, использующих современные технологические процессы, позволяет серьезно повысить уровень корреляции приводимых параметров быстродействия с параметрами реальных устройств. Вот некоторые рекомендации по проведению экстракции:
включать релевантную часть окружения верхнего уровня, причем для "медленных" условий эксплуатации использовать технологические файлы, отражающие наименьшее быстродействие блока, а для "быстрых" условий – наиболее "быстрые" файлы;
по возможности (если таковая предоставляются изготовителем) использовать технологические файлы, в которых учитываются физические эффекты изготовления схемы (объемные искажения формы элементов слоев СБИС, геометрические искажения полигонов для разных слоев из-за оптических эффектов и т.п.).
Временной статический анализ (STA) – главный инструмент разработчика по оценке быстродействия схемы. Локальные и распределенные на плоскости кристалла вариации параметров схемы вносят неопределенность в характеристики работы транзисторов и параметры проводников. Учет эффекта дрожания синхросигналов, введение запасов для времени предустановки, удержания, а также вариаций задержек элементов на кристалле позволяют достичь высокой корреляции параметров быстродействия с реальными устройствами. Введение избыточных или, наоборот, недостаточных запасов приводит к излишне пессимистичным или оптимистичным оценкам, что делает схему менее гибкой и более сложной для интеграции в верхний уровень проекта. Использование инструментов STA, способных анализировать эффекты взаимовлияния проводников и шума внутри схем, точных библиотек типа CCS на моделях источников тока также способствует формированию верных ожиданий разработчика при анализе производительности схемы.
Обязательными для применения в глубоко субмикронных технологиях являются средства и методики производствопригодного проектирования DFM (design-for-manufacturing) и DFY (design-for-yield). Отказ от них с большой вероятностью приведет к удлинению этапов физической верификации, финального нормоконтроля и может оказать негативное влияние на характеристики PPA.
За пределами блока: вопросы интеграции верхнего уровня
Независимо от того, проектирует ли разработчик IP-блок процессора самостоятельно, доверяет его разработку сторонней организации или покупает готовое универсальное решение (soft или hard IP-ядро), он должен быть встроен в разрабатываемую SoC на этапе ее сборки. Кроме того, при сборке верхнего уровня проводятся функциональное моделирование, анализ и моделирование энергопотребления, формальная верификация, физический синтез и верификация, интеграция подсистем производственного тестирования и финальный нормоконтроль. Для получения достоверных результатов все эти этапы необходимо проводить оперативно, но с высокой степенью надежности. Для успешной интеграции IP-ядра разработчик должен иметь пакет сопровождающих материалов (табл.3).
Ситуация с характеристиками производительности процессоров сегодня до крайности схожа с "войной частот", которая наблюдалась на рынке персональных компьютеров в 90-е годы прошлого века. Но в отличие от этого рынка с его большими форм-факторами и радиаторами для отвода десятков ватт тепла для современного рынка очень важна ниша мобильных решений с высокой производительностью и одновременно длительным сроком службы от батареи. Разработчик, предложивший удовлетворяющее этим требованиям и в то же время недорогое решение, станет в итоге победителем.
Для того чтобы верно оценить достоверность характеристик производительности системы с IP-ядром, стоит задать следующие вопросы:
Каковы условия эксплуатации для заявляемых параметров производительности: худшие или нормальные?
Эти параметры получены на реальном изделии или в результате моделирования?
Использовалось ли повышенное напряжение питания?
Сколько ядер в системе? Одинаково ли они сконфигурированы?
Заложены ли запасы для получения приемлемого выхода годных изделий (например, учтены ли вариации)?
Не была ли пожертвована потребляемая мощность в пользу повышенной производительности (например, повышенное напряжение питания или использование элементов с низким пороговым напряжением)?
Не была ли упрощена спецификация в пользу высокого быстродействия?
Анализ лишь лежащих на поверхности данных о производительности, потребляемой мощности и занимаемой площади без учета особенностей проектирования и условий характеризации может привести к несоответствию заявленных и реально полученных характеристик. Смотрите дальше заявленных цифр и защищайте свои вложения! ●
*Bernstein K. et al. High performance CMOS variability in the 65-nm regime and beyond. – IBM J.RES & DEV., July/September 2006, v.50, № 4/5.
Таблица 1. Влияние параметров реализации и условий эксплуатации ядра микропроцессора на ключевые параметры продукта
Параметры ядра
Степень влияния
Снижение стоимости пластины
Повышение тактовой частоты
Снижение энергопотребления
Снижение занимаемой площади
Повышение выхода годных изделий
Динамическое
Статическое
Наличие дополнительных1 функциональных блоков
–
▷
▷
▷
▷
–
Наличие библиотек с низким пороговым напряжением
▷
2
◀
–
▶
◁
–
Использование повышенного напряжения питания
–
◀
▶
▶
◁
–
Наличие систем1 самодиагностики и восстановления
–
▷
▷
▷
▷
◀
Использование селективного выключения питания
–
▷
–
◁
▷
–
Эксплуатация
в условиях повышенной температуры
–
▶
◁
3
–
–
▶
Искусственное смещение параметров техпроцесса
быстрое
▷
4
◀
◁
–
–
◀
медленное
▶
–
–
–
▶
Дополнительный запас для временных ограничений
–
▷
–
–
–
–
Использование расширенного режима статического временного анализа (AOCV)
–
◁
–
–
–
–
Условные обозначения:
◀
значительно улучшает;
◁
немного улучшает; – не влияет;
▷
немного ухудшает;
▶
значительно ухудшает.
Примечания.
1 Использование большого количества операционных блоков, вспомогательной вычислительной логики, кэш-памяти и логических схем обработки прерываний, отладки, тестирования и управления электропитанием приводит к увеличению площади, занимаемой микропроцессором на кристалле. Это, в свою очередь, приводит к увеличению длины соединений (проводников) и, как следствие, к увеличению динамической потребляемой мощности при одинаковой тактовой частоте. 2 Каждое дополнительное пороговое напряжение приводит к использованию при изготовлении SoC двух дополнительных фотошаблонов. 3 Высокие температуры уменьшают активные токи, протекающие через транзисторы и, как следствие, уменьшают тактовую частоту и динамическое энергопотребление. 4 Нормирование технологического процесса позволяет нейтрализовать негативные краевые эффекты.
Параметр
Ядро в исходных кодах (soft core)
Ядро в топологии (hard core)
Самостоятельно спроектированное ядро на транзисторном уровне
Тактовая частота
90% от hard core
Высокая
Самая высокая
Коррелируемость оценки параметров проекта и готового результата
Сильно зависит от используемой методологии
Самая высокая
Гибкость
Высокая. Наличие RTL позволяет реконфигурировать блок под требования конкретного проекта
Отсутствует – готовый GDSII-блок
Переносимость
Высокая. Наличие RTL позволяет синтезировать блок в базисе различных библиотек и техпроцессов
Отсутствует – фиксированный техпроцесс и фабрика
Затраченные усилия на разработку
3–6 человеко-месяцев
Soft core + 6–9 человеко-месяцев для каждого техпроцесса
>10 человеко-лет
Таблица 2. Сравнение некоторых характеристик IP-ядер
Рис.1. Относительный уровень характеристик PPA по сравнению с затрачиваемыми усилиями реализации soft IP-блока
Рис.2. Ухудшение реальных характеристик IP-блока по сравнению с заявленными
Наименование
Ядро в исходных кода (soft core)
Ядро в топологии (нard core)
Используемое число слоев металлизации, ограничения на трассировку
•
•
Размеры и расположение портов данных
•
•
Параметры питания и расположение портов питания
•
•
Руководство по установке защитных диодов
•
•
Скрипты для проведения DRC
•
•
Рекомендуемые запасы по временам предустановки и удержания
•
•
Топология в формате GDSII
•
Абстрактные физические модели (например, LEF)
•
Модели для функционального моделирования
•
Тестовая модель DFT
•
Схема для проведения LVS
•
Библиотечные файлы .lib/.db или SDF
•
Временные ограничения для интеграции на верхний уровень
•
Руководство по синхросигналам
•
Отчет DRC
•
Подробное функциональное описание и руководство по интеграции
•
Таблица 3. Сопровождающие IP-ядро материалы
Отзывы читателей