Как устроены современные процессоры
Обновлено: 21.11.2024
Этот номер штрих-кода позволяет убедиться, что вы получаете именно ту версию или издание книги. Работают как 13-значный, так и 10-значный форматы.
Добавьте свой клуб в книжные клубы Amazon, создайте новый книжный клуб и пригласите своих друзей присоединиться к нему или найдите подходящий вам клуб бесплатно.
электронный учебник
Концептуальный и точный, Modern Processor Design объединяет многочисленные методы микроархитектуры в ясной, понятной структуре, которая легко доступна как для выпускников, так и для студентов. Сложные практики переработаны в основополагающие принципы, раскрывающие идеи и практический опыт авторов в эффективной разработке современных высокопроизводительных микропроцессоров для мобильных, настольных и серверных рынков. Ключевые теоретические и основополагающие принципы представлены систематически, чтобы обеспечить понимание важных вопросов реализации.
В тексте представлены фундаментальные концепции и базовые методы, такие как проектирование процессоров, конвейерные процессоры, память и системы ввода-вывода, а также особенно суперскалярная организация и реализация. Два тематических исследования и обширный обзор реальных коммерческих суперскалярных процессоров раскрывают реальные разработки в области проектирования и производительности процессоров. Включен подробный обзор передовых методов потока команд, включая разработки в области расширенных предсказателей переходов. Каждая глава завершается домашним заданием, которое создаст основу для новых методов в этой области и введения в многопроцессорные системы.
Материалы для преподавателей, не предназначенные для продажи, доступны только преподавателям колледжей и университетов; свяжитесь с издателем напрямую.
Клиенты, просматривавшие этот товар, также просматривали
Computer Organization and Design MIPS Edition: The Hardware/Software Interface (серия Моргана Кауфмана по компьютерной архитектуре и дизайну)
Энтони Хеддингс
Энтони Хеддингс
Писатель
Энтони Хеддингс (Anthony Heddings) – штатный облачный инженер LifeSavvy Media, технический писатель, программист и эксперт по платформе Amazon AWS. Он написал сотни статей для How-To Geek и CloudSavvy IT, которые были прочитаны миллионы раз. Подробнее.
фотографии/Shutterstock
Хотя то, как работают процессоры, может показаться волшебством, на самом деле это результат многолетних умных инженерных разработок. Поскольку транзисторы — строительные блоки любого микрочипа — уменьшаются до микроскопических размеров, способы их производства становятся все более сложными.
Фотолитография
Дж. Роберт Уильямс / Shutterstock
Транзисторы теперь настолько невероятно малы, что производители не могут создавать их обычными методами. Хотя прецизионные токарные станки и даже 3D-принтеры могут создавать невероятно сложные изделия, они обычно достигают микрометрового уровня точности (около одной тридцатитысячной дюйма) и не подходят для нанометровых масштабов, на которых строятся современные чипы. /p>
Фотолитография решает эту проблему, избавляя от необходимости точно перемещать сложное оборудование. Вместо этого он использует свет, чтобы вытравить изображение на чипе — как старинный диапроектор, который вы можете найти в классах, но наоборот, уменьшая трафарет до нужной точности.
Изображение проецируется на кремниевую пластину, которая обрабатывается с очень высокой точностью в контролируемых лабораториях, поскольку любая пылинка на пластине может означать потерю тысяч долларов. Пластина покрыта материалом, называемым фоторезистом, который реагирует на свет и вымывается, оставляя травление ЦП, которое можно заполнить медью или легировать для формирования транзисторов. Затем этот процесс повторяется много раз, наращивая ЦП так же, как 3D-принтер наращивает слои пластика.
Проблемы с наноразмерной фотолитографией
Неважно, сможете ли вы уменьшить размер транзисторов, если они на самом деле не работают, а нанотехнологии сталкиваются с множеством проблем с физикой. Транзисторы должны останавливать поток электричества, когда они выключены, но они становятся настолько маленькими, что электроны могут течь прямо через них. Это называется квантовым туннелированием и представляет собой серьезную проблему для разработчиков кремния.
Дефекты — это еще одна проблема. Даже фотолитография имеет предел своей точности. Это аналог размытого изображения с проектора; это не так ясно, когда он взорван или сжался. В настоящее время литейщики пытаются смягчить этот эффект, используя «экстремальный» ультрафиолетовый свет, длина волны которого намного выше, чем люди могут воспринимать, используя лазеры в вакуумной камере. Но проблема останется, когда размер станет меньше.
Иногда дефекты можно устранить с помощью процесса, называемого биннингом. Если дефект затрагивает ядро ЦП, это ядро отключается, а чип продается как младшая часть. На самом деле, большинство линеек процессоров производятся по одному и тому же плану, но имеют отключенные ядра и продаются по более низкой цене. Если дефект касается кэш-памяти или другого важного компонента, этот чип, возможно, придется выбросить, что приведет к снижению производительности и повышению цены. Более новые технологические узлы, такие как 7-нм и 10-нм, будут иметь более высокий процент брака и, как следствие, будут дороже.
Упаковка
МчлСхрв / Shutterstock
Упаковать ЦП для потребительского использования — это больше, чем просто положить его в коробку с пенополистиролом. Когда ЦП закончен, он по-прежнему бесполезен, если он не может подключиться к остальной части системы. Процесс «упаковки» относится к методу, при котором тонкий кремниевый кристалл прикрепляется к печатной плате, которую большинство людей называют «процессором».
Этот процесс требует большой точности, но не такой, как предыдущие шаги. Кристалл ЦП монтируется на кремниевой плате, и электрические соединения проходят ко всем контактам, которые соприкасаются с материнской платой. Современные ЦП могут иметь тысячи контактов, а у высокопроизводительного AMD Threadripper их 4094.
Поскольку ЦП выделяет много тепла, а также должен быть защищен спереди, сверху установлен «встроенный теплоотвод». Это контактирует с кристаллом и передает тепло охладителю, установленному сверху. Для некоторых энтузиастов термопаста, используемая для этого соединения, недостаточно хороша, что приводит к тому, что люди отказываются от своих процессоров, чтобы применить решение более высокого качества.
После того, как все это будет собрано, его можно будет упаковать в настоящие коробки, чтобы он попал на полки и был вставлен в ваш будущий компьютер. Учитывая сложность производства, удивительно, что большинство процессоров стоят всего пару сотен долларов.
Если вам интересно узнать еще больше технической информации о том, как создаются ЦП, ознакомьтесь с объяснениями Викичипа о процессах литографии и микроархитектурах.
- › Что такое процессор и для чего он нужен?
- › Что такое «биннинг» для компьютерных компонентов?
- › ЦП расшифрованы: понимание названий микроархитектур Intel
- › Как установить Google Play Маркет в Windows 11
- › Как восстановить метки панели задач в Windows 11
- ›5 шрифтов, которые следует прекратить использовать (и лучшие альтернативы)
- › Почему не было Windows 9?
- › Что означает XD и как вы его используете?
Теперь, когда мы знаем, как работают процессоры на высоком уровне, пришло время углубиться в процесс проектирования их внутренних компонентов. Это вторая статья из серии о разработке процессоров. Я рекомендую вам сначала изучить первую часть, чтобы вы поняли концепции, изложенные ниже.
Часть 1: Основы компьютерной архитектуры (архитектура набора команд, кэширование, конвейеры, гиперпоточность)
Часть 2: Процесс проектирования ЦП (схемы, транзисторы, логические элементы, синхронизация)
Часть 3: Компоновка микросхемы и физическое производство (СБИС и производство кремния)
Часть 4: Текущие тенденции и важные будущие направления в компьютерной архитектуре (море ускорителей, трехмерная интеграция, ПЛИС, вычисления с ближней памятью)
Как вы, возможно, знаете , процессоры и большинство других цифровых устройств состоят из транзисторов. Проще всего воспринимать транзистор как управляемый переключатель с тремя контактами. Когда затвор открыт, через транзистор может протекать электрический ток. Когда затвор выключен, ток не может течь. Затвор похож на выключатель света в комнате, только он намного меньше, работает быстрее и может управляться электрически.
В современных процессорах используются два основных типа транзисторов: pMOS (PMOS) и nMOS (NMOS). Транзистор nMOS пропускает ток, когда затвор заряжен или имеет высокое напряжение, а транзистор pMOS пропускает ток, когда затвор разряжен или имеет низкое напряжение. Комбинируя эти типы транзисторов взаимодополняющим образом, мы можем создавать логические элементы КМОП. В этой статье мы не будем подробно разбирать особенности работы транзисторов, но коснемся этого в третьей части серии.
Логический элемент — это простое устройство, которое получает входные сигналы, выполняет операцию и выводит результат. Например, элемент И (AND) включает свой выходной сигнал тогда и только тогда, когда включены все входы вентилей. Инвертор, или элемент НЕ (NOT), включает свой выход, если вход отключен. Можно объединить эти две заслонки и получить элемент И-НЕ, который включает выход, если и только если не включен ни один из входов. Есть и другие элементы со своей логической функциональностью, например, ИЛИ (ИЛИ), ИЛИ-НЕ (NOR), исключающее ИЛИ (XOR) и исключающее ИЛИ с инверсией (XNOR).
Ниже показано, как из транзисторов собираются два простых элемента: инвертор и И-НЕ. В инверторе транзистор pMOS (вверху) подключен к питанию, а транзистор nMOS (внизу) подключен к земле. На обозначении транзисторов pMOS есть маленький кружок, соединенный с затвором. Мы сказали, что устройства pMOS пропускают ток, когда вход выключен, а устройства nMOS пропускают ток, когда вход включен, поэтому легко заметить, что выходной сигнал (Out) всегда будет противоположен входному сигналу (In). . Глядя на элемент И-НЕ, мы видим, что для него требуется четыре транзистора, и что выход всегда будет отключен, если выключен хотя бы один из входов. Соединение транзисторов таким образом для формирования простых цепей — это тот же процесс, который используется для проектирования более сложных логических элементов и других схем внутри процессоров.
Строительные блоки в виде логических элементов настолько просты, что сложно понять, как они превращаются в функционирующий компьютер. Процесс проектирования состоит из объединения нескольких элементов для создания небольшого устройства, которое может выполнять простую функцию. Затем вы можете комбинировать многие из этих устройств, чтобы создать нечто, выполняющее более сложную функцию. Процесс объединения отдельных компонентов для создания работающей структуры — это именно тот процесс, который используется сегодня для создания современных чипов. Разница лишь в том, что современный чип состоит из миллиардов транзисторов.
В качестве небольшого примера возьмем простой сумматор — 1-битный полный сумматор. Он получает три входных сигнала — A, B и Carry-In (входной сигнал передачи), и формирует два выходных сигнала — Sum (сумма) и Carry-Out (выходной сигнал передачи). В простейшей схеме используется пять логических элементов, и их можно соединить вместе, чтобы создать сумматор любого размера. В современных схемах этот процесс совершенствуется за счет оптимизации части логики и сигналов передачи, но основные принципы остаются прежними.
Выход Sum относится либо к A, либо к B, но никогда к обоим, или есть входной сигнал переноса, а затем A и B либо включены, либо оба выключены. Выход передачи немного сложнее. Он активен, когда либо A и B включены одновременно, либо есть Carry-in и включен один из A или B. Чтобы соединить несколько 1-битных сумматоров для создания более широкого сумматора, нам просто нужно соединить перенос предыдущего бита с переносом текущего бита. Чем сложнее становятся схемы, тем более запутанной становится логика, но это самый простой способ сложить два числа. Современные процессоры используют более сложные сумматоры, но их схемы слишком сложны для такого обзора. Помимо сумматоров процессоры также содержат устройства для деления, умножения и версии всех этих операций с плавающей запятой.
Такая комбинация последовательностей элементов для выполнения функции над входными сигналами называется комбинаторной логикой . Однако это не единственный тип логики, используемый в компьютерах. От этого не будет толку, если мы не сможем хранить данные или отслеживать статус. Чтобы иметь возможность сохранять данные, нам нужна последовательная логика.
Последовательная логика строится путем аккуратного соединения инверторов и других логических элементов таким образом, чтобы их выходы передавали сигналы обратной связи на вход элементов. Эти циклы обратной связи используются для хранения одного бита данных и называются Static RAM или SRAM. Эта память называется статической ОЗУ, а не динамической ОЗУ (DRAM), поскольку хранимые данные всегда напрямую подключены к положительному напряжению или земле.
Стандартный способ реализации одного бита SRAM — схема из 6 транзисторов, показанная ниже. Самый верхний сигнал, отмеченный как WL ( Word Line ), является адресом, и когда он включен, данные, хранящиеся в этой 1-битной ячейке, передаются в Bit Line отмечен как БЛ. Выход BLB называется Bit Line Bar ; это просто перевернутое значение битовой строки. Вы должны различать два типа транзисторов и понимать, что M3 с M1, как M4 с M2, образуют инвертор.
SRAM используется для создания сверхбыстрых кэшей и регистров внутри процессоров. Эта память очень стабильна, но для хранения каждого бита данных требуется от шести до восьми транзисторов. Поэтому по сравнению с DRAM она чрезвычайно дорога по стоимости, сложности и площади на кристалле. Динамическое ОЗУ, с другой стороны, хранит данные в крошечном конденсаторе, а не в логических элементах. Он называется динамическим, потому что напряжение на конденсаторе может существенно меняться, так как он не подключен к питанию или земле. Для доступа к данным, хранящимся в конденсаторе, используется только один транзистор.
Поскольку для DRAM требуется только один транзистор на бит и она очень масштабируема, ее можно компактно и дешево упаковать. Недостатком DRAM является то, что заряд на конденсаторе настолько мал, что его необходимо постоянно обновлять. Именно поэтому после отключения питания компьютера все конденсаторы разряжаются и данные в оперативной памяти теряются.
Такие компании, как Intel, AMD и Nvidia, не публикуют схемы своих процессоров, поэтому показать такие полные электрические схемы для современных процессоров невозможно. Однако этот простой сумматор позволяет получить представление о том, что даже самые сложные части процессора можно разделить на логические элементы и элементы памяти, а затем и на транзисторы.
Теперь, когда мы знаем, как производятся некоторые компоненты процессора, нам нужно выяснить, как собрать все вместе и синхронизировать. Все ключевые компоненты процессора подключены к тактовому сигналу . Он попеременно имеет высокое и низкое напряжение, изменяя его с заданным интервалом, называемым частотой (частотой). Логика внутри процессора обычно переключает значения и выполняет вычисления, когда тактовый сигнал меняет напряжение с низкого на высокий. Синхронизируя все части, мы можем гарантировать, что данные всегда поступают в нужное время, чтобы не возникало сбоев в работе процессора.
Возможно, вы слышали, что для повышения производительности процессора можно увеличить тактовую частоту. Такой прирост производительности связан с тем, что переключение транзисторов и логики внутри процессора начинает происходить чаще, чем предполагалось. Поскольку циклов в секунду больше, можно выполнить больше работы, и производительность процессора возрастет. Тем не менее, это верно в определенной степени. Современные процессоры обычно работают на частотах от 3,0 ГГц до 4,5 ГГц, и это значение не сильно изменилось за последние десять лет. Подобно тому, как металлическая цепь не прочнее своего самого слабого звена, процессор не может работать быстрее, чем его самая медленная часть. К концу каждого такта каждый процессорный элемент должен завершить свою работу. Если какие-то части еще не доделали, значит часы слишком быстрые и процессор не заработает. Дизайнеры называют это самой медленной частью критического пути (Critical Path) и она определяет максимальную частоту, с которой может работать процессор. Выше определенной частоты транзисторы просто не успевают достаточно быстро переключаться и начинают выходить из строя или выдавать неверные выходные значения.
Повышая напряжение процессора, мы можем ускорить переключение транзисторов, но и это работает до определенного предела. Если подать слишком большое напряжение, то мы рискуем спалить процессор.Когда мы увеличиваем частоту или напряжение процессора, он всегда начинает излучать больше тепла и потреблять больше энергии. Это связано с тем, что мощность процессора прямо пропорциональна частоте и пропорциональна квадрату напряжения. Для определения энергопотребления процессора мы рассматриваем каждый транзистор как небольшой конденсатор, который нужно заряжать или разряжать при изменении его номинала.
Блок питания — настолько важная часть процессора, что в некоторых случаях до половины физических контактов на микросхеме можно использовать только для питания или заземления. Некоторые микросхемы при полной нагрузке могут потреблять более 150 ампер, и при всем этом токе нужно контролировать крайне внимательно. Для сравнения: центральный процессор выделяет больше тепла на единицу площади, чем ядерный реактор.
Тактовый сигнал в современных процессорах занимает около 30-40% его общей мощности, потому что он очень сложный и должен управлять множеством разных устройств. Для экономии энергии большинство маломощных процессоров отключают части чипа, когда они не используются. Это можно сделать, выключив часы (этот метод называется Clock Gating) или отключив питание (Power Gating).
Тактовые сигналы создают еще одну сложность в конструкции процессора: поскольку их частоты постоянно растут, на работу начинают влиять законы физики. Несмотря на чрезвычайно высокую скорость света, она недостаточно велика для высокопроизводительных процессоров. Если вы подключите тактовый сигнал к одному концу микросхемы, то к тому времени, когда сигнал достигнет другого конца, он будет значительно рассинхронизирован. Для синхронизации всех частей чипа тактовый сигнал распространяется с помощью так называемого H-Tree. Это структура, которая гарантирует, что все конечные точки находятся на одинаковом расстоянии от центра.
Может показаться, что проектирование каждого отдельного транзистора, тактового сигнала и силового контакта в микросхеме — крайне монотонная и сложная задача, и это действительно так. Несмотря на то, что тысячи инженеров работают в таких компаниях, как Intel, Qualcomm и AMD, они не смогут вручную спроектировать каждый аспект чипа. Для разработки чипов такого масштаба они используют множество сложных инструментов, которые автоматически генерируют конструкции и электрические схемы. Такие инструменты обычно получают высокоуровневое описание того, что должен делать компонент, и определяют наилучшую конфигурацию оборудования, отвечающую этим требованиям. Недавно появилась линия разработки под названием High Level Synthesis, которая позволяет разработчикам указать в коде необходимую функциональность, после чего компьютеры определяют, как лучше всего добиться ее в оборудовании.
Точно так же, как вы можете описывать компьютерные программы с помощью кода, дизайнеры могут описывать аппаратные устройства с помощью кода. Такие языки, как Verilog и VHDL, позволяют разработчикам оборудования выражать функциональность любой создаваемой ими схемы. После выполнения моделирования и проверки таких проектов их можно синтезировать в конкретные транзисторы, из которых и будет состоять электрическая схема. Хотя этап проверки может показаться не таким захватывающим, как проектирование нового кеша или ядра, он гораздо важнее их. На каждого инженера-проектировщика, нанятого компанией, может приходиться пять или более инженеров по проверке.
Проверка нового проекта часто занимает больше времени и денег, чем создание самого чипа. Компании тратят столько времени и денег на проверку, потому что после отправки чипа в производство его невозможно исправить. В случае ошибки в ПО можно выпустить патч, но оборудование работает иначе. Например, компания Intel обнаружила ошибку в модуле деления с плавающей запятой некоторых процессоров Pentium, и в результате это привело к убыткам, эквивалентным нынешним 2 миллиардам долларов.
Трудно понять, что в одном чипе может быть несколько миллиардов транзисторов, и понять, что они все делают. Если разбить чип на отдельные внутренние компоненты, становится немного легче. Логические элементы состоят из транзисторов, логические элементы объединены в функциональные модули, выполняющие определенную задачу, и эти функциональные модули соединены вместе, чтобы сформировать компьютерную архитектуру, которую мы обсуждали в первой части серии.
Большая часть работы по проектированию автоматизирована, но вышеизложенное позволяет нам понять, насколько сложен новый ЦП, который мы только что купили.
Во второй части серии статей я рассказал о процессе проектирования ЦП. Мы обсудили транзисторы, логические элементы, силовые и тактовые сигналы, синтез конструкции и проверку. В третьей части мы узнаем, что требуется для физического производства чипа. Все компании любят хвастаться, насколько современен их техпроцесс (Intel — 10 нм, Apple и AMD — 7 нм и т. д.), но что на самом деле означают эти цифры?Об этом мы поговорим в следующей части.
Многие компании заинтересованы в разработке собственных процессоров после успеха RISC-V, но проверка является сложной задачей.
Появление и первоначальный успех процессора RISC-V ISA возродили интерес к разработке нестандартных процессоров, но сейчас отрасль пытается решить, как их проверить. Опыт и инструменты, которые когда-то были на рынке, были объединены в руках нескольких компаний, которые поставляли процессорные чипы или IP-ядра в течение последних 20 лет.
Проверка процессора отличается от проверки других частей ИС или даже SoC. Процессор — это самая совершенная часть аппаратного обеспечения общего назначения, и это создает свой собственный уникальный набор проблем.
"На нем можно запускать любую программу", – говорит Пол Каннингем, корпоративный вице-президент и генеральный менеджер Cadence Design Systems. «Это одно из самых настраиваемых устройств глубокого состояния, которое только можно себе представить. На самом деле сказать, что я завершил проверку процессора, значит сказать, что вы запустили все возможные программы, которые могли работать на этом процессоре, чего вы, конечно же, никогда не сделаете. Это совершенно неразрешимо. Проверка процессора чрезвычайно сложна».
В эпоху, когда аппаратное обеспечение должно быть максимально гибким, разумно делать все возможное в программном обеспечении. «Одна компания обнаружила, что гораздо лучше создавать конечные автоматы в процессоре с использованием небольшого количества программного обеспечения, чем создавать конечные автоматы в Verilog», — говорит Саймон Дэвидманн, генеральный директор Imperas Software. «Если вы строите свои конечные автоматы в Verilog и что-то делаете не так, вам нужно заново раскрутить чип. Но если вы создадите небольшие контроллеры и запрограммируете конечные автоматы, вы сможете разобраться во всем позже, если возникнут проблемы».
Но это создает две проблемы. «В ходе недавнего проекта проверки процессоров было обнаружено, что в этот процесс необходимо вовлекать команду разработчиков программного обеспечения, — говорит Хагай Арбель, генеральный директор VTool. «Это создает целый ряд новых проблем, потому что они говорят на совершенно другом языке, как технически, так и мысленно».
Вторая проблема — проверка. «Процессор хорош ровно настолько, насколько он проверен», — говорит Дуэйн Прайор, главный технолог Mentor, Siemens Business. «Решения грубой силы для закрытия проверки невозможны. Мы видим, как это проявляется как в дорогом, так и в бюджетном сегментах рынка».
Независимо от того, основано ли ядро процессора на RISC-V или уникальной архитектуре набора инструкций (ISA), тщательная проверка имеет решающее значение. «Пользователи больше не могут рассчитывать на десятилетия проверки кремния, которыми они наслаждались с устаревшими процессорами, — говорит Николае Тусински, эксперт по проверке проектов в OneSpin Solution. «Пользователи RISC-V не получают специального пропуска; опыт показал, что многие ядра с открытым исходным кодом слабо проверены и содержат много ошибок. Все разработчики процессоров должны тщательно проверять свои конструкции ядер, документировать процессы и достигнутый охват, а также предоставлять пользователям возможность использовать эту проверку для полных конструкций систем на кристалле (SoC), содержащих ядра».
Некоторые аспекты процессоров являются общими, независимо от масштаба проекта. «Проверку процессора можно в целом разделить на проверку управления и проверку пути данных», — говорит Даниэль Шостак, архитектор и сотрудник центральной инженерной группы в Arm. «Ни один из них не прост, и у обоих есть свои проблемы. При проверке управления основными проблемами являются количество взаимодействующих компонентов и обеспечение охвата всех крайних случаев, в то время как при проверке пути данных основная проблема заключается в разработке граничных случаев, чтобы их можно было должным образом охватить. Эти проблемы могут быть дополнительно усложнены микроархитектурными особенностями в отношении площади, производительности или мощности».
Проблема усугубляется в сфере открытого исходного кода, особенно когда речь идет о RISC-V. «С одной стороны, у вас есть функциональная проверка», — сказал Луи Де Луна, директор по маркетингу в Aldec. «Но тогда у вас также есть тестирование на соответствие. Вы должны убедиться, что любые пользовательские инструкции соответствуют исходному коду. Это влияет на вашу модель покрытия, а потока инструментов де-факто еще нет. В этой области предстоит еще много работы. Помимо изучения того, как использовать все инструменты, вы также должны увидеть, как их можно использовать для тестирования».
Изменение сложности.
Хотя производительность процессора существенно не увеличилась примерно с 2000 года, это не означает, что сложность осталась неизменной. «Мы по-прежнему наблюдаем рост сложности процессоров, — говорит Колин МакКеллар, вице-президент по платформам проверки Imagination Technologies. «Нарастает желание выжимать из процесса все больше и больше.И есть очень сильное желание иметь какой-то уникальный набор функций или уникальный способ работы».
Это стремление к уникальности является движущей силой текущей тенденции. «На нижнем уровне, особенно для периферийных устройств, ограничения по мощности и стоимости намного жестче; цены ниже», — говорит Прайор из Mentor. «Это означает, что более тесно связанное ускорение, настраиваемость и даже удаление инструкций являются ценными. Меньший дизайн и специализированное программное обеспечение способствуют снижению затрат на повторную проверку по сравнению с более дорогими моделями. RISC-V предоставляет легко настраиваемую платформу по более низкой цене. В совокупности преимуществ настройки больше, чем недостатков, что создает новую группу инженеров по проверке, сталкивающихся с проблемой (повторной) проверки процессора, хотя и на небольших и более закрытых системах».
На высоком уровне в игру вступают другие силы. «Архитектура процессора началась с перехода более сложных инструкций в сторону RISC, — говорит Каннингем из Cadence. «Это начало сглаживаться, и мы начали переходить на многоядерность. И тогда у нас закончилось масштабирование на многоядерности. На данный момент все новые уровни сложности связаны с настраиваемой конкретной архитектурой — различными типами вычислительных механизмов, которые адаптированы к конкретным вертикалям, таким как ИИ, графика или видео. Базовая сложность основного конвейера может меняться не так быстро, как раньше, но она все еще существует. Есть больше вещей, связанных с безопасностью. И так много спекулятивного исполнения».
Спекулятивное выполнение – это метод оптимизации, связанный с рядом известных уязвимостей процессора, таких как Spectre и Meldown. Безопасность — это постоянная проблема, и это область, в которой все еще добавляются требования к дизайну.
«Безопасность — это новое измерение для современных процессоров, и ключевое значение имеет обеспечение того, чтобы процессор обеспечивал эффективный аппаратный корень доверия (HRoT), — говорит Дэйв Келф, вице-президент и директор по маркетингу компании Breker Verification Systems. «Чтобы убедиться в этом, важна отрицательная проверка (доказывающая, что нет никакого доступа к областям, кроме предписанного механизма). Формальный подходит для этого, но его возможности на системном уровне иссякают. Таким образом, инструменты, позволяющие задавать и анализировать пространство состояний системы, станут важным компонентом набора инструментов для группы проверки процессоров».
Если ожидается, что операционная система будет работать на процессоре, необходимо предоставить дополнительные уровни поддержки. «Ожидается, что процессоры общего назначения будут поддерживать все современные операционные системы и множество приложений, — говорит Шубходип Рой Чоудхури, соучредитель Valtrix Systems. «Большинство этих вариантов использования требуют аппаратной поддержки, такой как TLB/MMU для виртуальной памяти, гипервизоры для виртуализации и FPU для вычислений с плавающей запятой. Поддержка параллельных потоков выполнения влияет на порядок памяти и когерентность кэша. Учитывая количество вариантов использования, процессорных блоков и перекрестных продуктов, проверка процессоров общего назначения является гораздо более сложной задачей по сравнению с другими проектами».
Плата за проверку
Невозможно избежать цены, которую необходимо заплатить за проверку ядра процессора. Вы можете либо оплатить стоимость самостоятельно, либо заплатить кому-то другому, чтобы тот сделал это за вас.
"Ведущие компании-производители вложили огромные средства и обладают большим опытом, чтобы создавать хорошие продукты", – говорит Каннингем. «Необходимо помнить, что RISC-V — это набор инструкций. Это не фактическая реализация процессора. Реализация должна быть проверена и должна быть достаточного качества, а также соответствовать определенным целям мощности, производительности и площади. Arm — это не просто набор инструкций. Они предлагают всю экосистему. Они тратят на это миллионы долларов».
Качество важно для процессоров. «Arm выполняет около 10 15 инструкций на ядро», — говорит Дэвидманн из Imperas. «Много инструкций. У среднего разработчика RISC-V или провайдера IP нет даже аппаратных эмуляторов. Они нигде не могут сделать такой объем проверки. На протяжении многих лет, когда люди покупали процессоры Arm или MIPS и Power, они полагались на поставщика IP для проверки».
Но не все ядра такие большие и сложные. «Сегодня многие проекты RISC-V довольно малы, а их сложность вполне управляема, — говорит МакКеллар из Imagination. «Затраты, связанные с его проверкой, не будут огромными. Но когда вы начинаете улучшать производительность или добавлять сложность, выполняя многопоточные и параллельные операции, она может расти довольно быстро. Я полагаю, что половина компаний, которые пытаются создавать сложные процессоры, сочтут это слишком сложной задачей, и люди, находящиеся выше по пищевой цепочке, прекратят финансирование, связанное с этим, потому что это было дорого и не обязательно работало правильно».
Вице-президент Codasip Джерри Ардиццоне согласен с этим.«Один из наших клиентов собирался использовать ядро RISC-V с открытым исходным кодом с инструментами с открытым исходным кодом, создав 108 воспроизводимых сопроцессоров, и столкнулся с рядом проблем. Во-первых, им нужно было доказать, что ядро работает. Затем они поняли, что единственный тестовый набор, доступный для этого ядра, был с открытым исходным кодом, потому что все другие коммерческие инструменты были в наборах инструментов, разработанных такими компаниями, как Arm, Codasip, MIPS и Synopsys. А потом им нужно было показать, что все эти процессоры могут обрабатывать 35 инструкций для очень специфического ускорения, что в опенсорсе очень сложно. Вы можете купить все это у Arm и быть уверенным, что это работает. Вы также можете создать собственное ядро, что предполагает, что вы знаете, как собрать процессор, и можете убедиться, что он не зависнет. Но проверка всегда является большим узким местом».
Это также может оказаться довольно дорогим. «Проверка — самая сложная и самая дорогая часть», — говорит Ардиццоне. «Это узкое место, и оно требует как минимум пары четвертей работы. И каждый раз, когда вы прикасаетесь к аппаратному обеспечению, вам приходится его повторно проверять».
Для оборудования с открытым исходным кодом более низкая стоимость является одним из ключевых преимуществ. «Такие компании, как Intel и Arm, действительно хороши в этом, и вы знаете, что когда вы интегрируете их в SoC, вы сможете убедиться, что они работают», — сказал Де Луна из Aldec. «Теперь индустрия говорит, что это не так просто. Если вы думаете о сообществе открытого исходного кода, многое из того, что происходит, зависит от бюджета. Но есть много частей, которые должны быть вместе. Отрасли необходимо наладить сквозной поток, а это возможно только при большем сотрудничестве».
Экспертиза по проверке
Двадцать лет назад несколько компаний производили инструменты для проверки процессоров. В то время у большинства системных компаний были собственные проприетарные процессорные ядра. С тех пор все они перешли в одну из крупных перерабатывающих компаний, и теперь экспертиза сконцентрирована в этих компаниях.
«Многолетний опыт и разработка методологии — это огромное преимущество, позволяющее надежно проверять процессоры», — говорит Прайор. «Мы постоянно впечатлены тем, как процессоры продвигают инновации и эффективность процессов проверки».
Консалтинговые компании, которые недавно помогали другим проверять процессорные ядра, говорят о том, насколько важен этот опыт. «Наш предыдущий опыт и знания были очень важны», — говорит Арбель из VTool. «Впервые я начал проверку процессоров 20 лет назад, но если бы это был первый раз, когда я говорил о проблемах такого типа, я бы споткнулся, пытаясь решить проблемы. Даже если у вас очень маленький или простой процессор, группы проверки проекта должны быть готовы к таким знаниям. Есть несколько возможных решений, и мы, возможно, не сделали это наилучшим образом. Но вам определенно нужно подойти к проблеме иначе, чем к другим типам дизайна».
МакКеллар соглашается. «Вам нужен как опыт, так и методология. Они очень идут рука об руку. Без экспертов инструменты могут не иметь такой ценности. Без инструментов эксперты будут бороться, потому что набор инструментов будет слишком слабым. В мире не хватает высококлассных инженеров по верификации, и множество компаний конкурируют друг с другом за необходимый набор навыков. Многим из них не хватает глубины для того, что им нужно делать».
И получить эти знания сложно. «То, как тестировать процессор, в основном стало закрытым и инкапсулированным внутри этих основных трех или четырех крупных поставщиков», — говорит Дэвидманн. "Просто не так много документов, публикаций или инструментов, которые могут помочь".
Полезный совет
Каннингем предлагает этот совет. «Прежде всего, наймите кого-нибудь. Убедитесь, что вы знаете, действительно ли вы хотите пойти и построить свой собственный процессор, и если вам нужно, отнеситесь к этому серьезно. Это все еще большое дело. Вам нужен кто-то, кто будет руководить и владеть этим».
Все начинается с планирования. «Будьте разумны в отношении того, чего вы действительно можете достичь, и сроков, которые вам нужны для выхода на рынок», — говорит МакКеллар. «Сосредоточьтесь на попытке ограничить комбинации и уменьшить количество функций. Некоторые высокоуровневые функции или комбинации функций могут быть не столь ценными для конечного пользователя, но вам потребуется много времени и усилий для их правильной проверки. Будьте достаточно открытыми, потому что нет единого ответа. Нет одной вещи, которая подходит всем. Отзывы имеют огромное значение. Очень важно иметь независимые обзоры и принимать критику. И будьте очень внимательны к тестированию новых вещей на ранней стадии. Вы должны делать новые и сложные вещи как можно раньше, тратя на это много времени и усилий и меньше времени и усилий на старые вещи».
А также спросите себя, почему вы это делаете. «Если вы действительно не пытаетесь сделать что-то инновационное и индивидуальное, хорошие решения уже существуют», — говорит Дэвидманн.«Если вы пытаетесь добавить какие-то очень интересные вещи из ткани или специальные инструкции, то, возможно, именно поэтому вам стоит пойти по пути RISC-V. Все больше людей создают или настраивают собственные процессоры, что означает гораздо большую сложность, гораздо больше проверок и гораздо больше возможностей для индустрии проверки».
Проверка с открытым исходным кодом
RISC-V, безусловно, расширил понятие аппаратного обеспечения с открытым исходным кодом, и некоторые задаются вопросом, могут ли они также ожидать появления проверки с открытым исходным кодом. «Для успеха модели с открытым исходным кодом требуется инфраструктура, которая позволяет создавать реальные проекты и продукты, запускать их в производство и поставлять на рынок», — говорит Бипул Талукдар, директор по разработке приложений SmartDV. «Ключевой частью необходимой инфраструктуры является платформа проверки RISC-V, которая точно проверяет проекты с использованием спецификаций с открытым исходным кодом с помощью ЦП, выполняющего ISA».
Некоторые видят надежду. «Сообщество RISC-V работает вместе над поиском решений, — говорит Кевин Макдермотт, вице-президент по маркетингу Imperas Software. «Возможно, это лучше всего иллюстрирует работа Google Cloud по разработке и усовершенствованию проекта с открытым исходным кодом для генератора случайных инструкций RISC-V, который использует бесплатную эталонную модель riscvOVPsim».
Тем не менее маловероятно, что основные инструменты EDA будут заменены открытым исходным кодом. Реальная стоимость — это не инструменты EDA. Это сложность, и крупные поставщики процессоров все еще находят неожиданные ошибки и уязвимости, несмотря на многолетний опыт решения этих проблем.
Вторая часть этой серии статей о проверке процессоров будет посвящена новым методологиям и инструментам, используемым первыми пользователями.
Похожие статьи
Центр знаний по верификации
Репозиторий основных статей, специальных отчетов, технических документов, блогов и видео
Убедимся, что проекты RISC-V работают должным образом
Открытый исходный код прогнозы роста впечатляют, но процесс проверки может быть сложнее, чем с коммерческими ISA.
Приведут ли процессоры с открытым исходным кодом к изменению верификации?
Инструменты и методологии существуют, но неясно, кто на самом деле будет проводить проверку.
Рынки RISC-V, безопасность и перспективы роста
Эксперты за столом, часть 1: преимущества и ограничения новой архитектуры набора команд.
Проблемы и возможности RISC-V
Кто зарабатывает на ISA с открытым исходным кодом, текущее состояние экосистемы RISC-V и чем отличается один поставщик от другого.
Будет ли работать EDA с открытым исходным кодом?
Программа DARPA подталкивает к более дешевым и простым инструментам, но это может быть не так просто.
Открытые ISA набирают обороты
Упор на гибкость, время выхода на рынок и неоднородность требует больше вариантов обработки
Читайте также: