Как разрабатываются и создаются процессоры часть 2

Обновлено: 07.07.2024

Чтобы создать сверхмощный процессор, достаточно простого.

Песок. В наших компьютерах в буквальном смысле песок, вернее — составляющий его кремний. Это основной элемент, благодаря которому в компьютерах всё работает. А вот как из песка получаются компьютеры.

Что такое процессор

Процессор — это небольшой чип внутри вашего компьютера или телефона, который производит все вычисления. Об основе вычислений мы уже писали — это транзисторы, которые собраны в сумматоры и другие функциональные блоки.

Если очень упрощённо — это сложная система кранов и труб, только вместо воды по ним течёт ток. Если правильным образом соединить эти трубы и краны, ток будет течь полезным для человека образом и получатся вычисления: сначала суммы, потом из сумм можно получить более сложные математические операции, потом числами можно закодировать текст, цвет, пиксели, графику, звук, 3D, игры, нейросети и что угодно ещё.

Кремний

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

Самый доступный источник кремния — песок. Но кремний, который получается из песка, на самом первом этапе недостаточно чистый: в нём есть 0,5% примесей. Может показаться, что чистота 99,5% — это круто, но для процессоров нужна чистота уровня 99,9999999%. Такой кремний называется электронным, и его можно получить после цепочки определённых химических реакций.

Когда цепочка заканчивается и остаётся только чистый кремний, можно начинать выращивать кристалл.

Кристалл и подложка

Кристаллы — это такие твёрдые тела, в которых атомы и молекулы вещества находятся в строгом порядке. Проще говоря, атомы в кристалле расположены предсказуемым образом в любой точке. Это позволяет точно понимать, как будет вести себя это вещество при любом воздействии на него. Именно это свойство кристаллической решётки используют на производстве процессоров.

Самые распространённые кристаллы — соль, драгоценные камни, лёд и графит в карандаше.

Большой кристалл можно получить, если кремний расплавить, а затем опустить туда заранее подготовленный маленький кристалл. Он сформирует вокруг себя новый слой кристаллической решётки, получившийся слой сделает то же самое, и в результате мы получим один большой кристалл. На производстве он весит под сотню килограмм, но при этом очень хрупкий.


Готовый кристалл кремния.

После того, как кристалл готов, его нарезают специальной пилой на диски толщиной в миллиметр. При этом диаметр такого диска получается около 30 сантиметров — на нём будет создаваться сразу несколько десятков процессоров.

Каждую такую пластинку тщательно шлифуют, чтобы поверхность получилась идеально ровной. Если будут зазубрины или шероховатости, то на следующих этапах диск забракуют.


Готовые отполированные пластины кремния.

Печатаем транзисторы

Когда диски отполированы, на них можно формировать процессоры. Процесс очень похож на то, как раньше печатали чёрно-белые фотографии: брали плёнку, светили сверху лампой, а снизу клали фотобумагу. Там, куда попадал свет, бумага становилось тёмной, а те места, которые закрыло чёрное изображение на плёнке, оставались белыми.

С транзисторами всё то же самое: на диск наносят специальный слой, который при попадании света реагирует с молекулами диска и изменяет его свойства. После такого облучения в этих местах диск начинает проводить ток чуть иначе — сильнее или слабее.

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

Потом получившийся слой покрывают тонким слоем диэлектрика — это вещество, которое не проводит ток, типа изоленты. Это нужно, чтобы слои процессора не взаимодействовали друг с другом. Процесс повторяется несколько десятков раз. В результате получаются миллионы мельчайших транзисторов, которые теперь нужно соединить между собой.

Соединяем всё вместе

То, как соединяются между собой транзисторы в процессоре, называется процессорной архитектурой. У каждого поколения и модификации процессоров своя архитектура. Все производители держат в секрете тонкости архитектуры, потому что от этого может зависеть скорость работы или стоимость производства.

Так как транзисторов много, а связей между ними нужно сделать немало, то поступают так: наносят токопроводящий слой, ставят фильтр и закрепляют проводники в нужном месте. Потом слой диэлектрика и снова токопроводящий слой. В результате выходит бутерброд из проводников, которые друг другу не мешают, а транзисторы получают нужные соединения.


Токопроводящие дорожки крупным планом. На фото они уже в несколько слоёв и не мешают друг другу.

В чём сложность

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

Если, например, во время печати очень толстый мальчик упадёт на пол в соседнем цехе, еле заметная ударная волна прокатится по перекрытиям завода и печатная форма немного сдвинется, а напечатанные таким образом транзисторы окажутся бракованными. Пылинка, попавшая на пластину во время печати — это, считай, загубленное ядро процессора.

Поэтому на заводах, где делают процессоры, соблюдаются жёсткие стандарты чистоты, все ходят в масках и костюмах, на всех воздуховодах стоят фильтры, а сами заводы находятся на сейсмических подушках, чтобы толчки земной коры не мешали производить процессоры.

Крышка и упаковка

Когда дорожки готовы, диск отправляют на тесты. Там смотрят на то, как работает каждый процессор, как он греется и сколько ему нужно энергии, заодно проверяют на брак.

После тестов диск разрезают на готовые процессорные ядра.

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

После этого к ядру процессора добавляют контакты, чтобы можно было вставить его в материнскую плату, и накрывают крышкой. Чёрный или металлический прямоугольник, из которого торчат ножки, — это как раз крышка.

Крышка выполняет две функции: защищает сам кристалл от повреждений и отводит от него тепло во время работы. Дело в том, что миллионы транзисторов при работе нагреваются, и если процессор не остужать, то он перегреется и кристалл может испортиться. Чтобы такого не произошло, на крышку процессора ставят воздушные кулеры или делают водяное охлаждение.

Система на чипе

Чипы процессоров уже настолько маленькие, что под одной крышкой можно поместить какое-нибудь ещё устройство. Например, видеосистему — то, что обсчитывает картинку перед выводом на экран. Или устройство радиосвязи с антенной.

В какой-то момент на маленьком чипе площадью около 1 см 2 уже можно было поместить процессор, видео, модем и блютус, сделать всё нужное для поддержки памяти и периферии — в общем, система на чипе. Подключаете к этому хозяйству экран, нужное количество антенн, портов и кнопок, а главное — здоровенную батарею, и у вас готовый смартфон. По сути, все «мозги» вашего смартфона находятся на одном маленьком чипе, а 80% пространства за экраном занимает батарея.

image

Мы воспринимаем центральный процессор как «мозг» компьютера, но что это значит на самом деле? Что именно происходит внутри миллиардов транзисторов, благодаря которым работает компьютер? В нашей новой мини-серии из четырёх статей мы рассмотрим процесс создания архитектуры компьютерного оборудования и расскажем о принципах его работы.

В этой серии мы расскажем о компьютерной архитектуре, проектировании процессорных плат, VLSI (very-large-scale integration), производстве чипов и тенденциях будущего в области вычислительной техники. Если вам было интересно разобраться в подробностях работы процессоров, то начинать изучение лучше с этой серии статей.

Мы начнём с очень высокоуровневого объяснения того, чем занимается процессор и как строительные блоки соединяются в функционирующую конструкцию. В том числе мы рассмотрим процессорные ядра, иерархию памяти, предсказание ветвлений и другое. Во-первых, нам нужно дать простое определение тому, что делает ЦП. Простейшее объяснение: процессор следует набору инструкций для выполнения определённой операции над множеством входящих данных. Например, это может быть считывание значения из памяти, затем прибавление его к другому значению, и наконец сохранение результата в память по другому адресу. Это может быть и нечто более сложное, например, деление двух чисел, если результат предыдущего вычисления больше нуля.

Программы, например, операционная система или игра, сами по себе являются последовательностями инструкций, которые должен выполнять ЦП. Эти инструкции загружаются из памяти и в простом процессоре выполняются одна за другой, пока программа не завершится. Разработчики программного обеспечения пишут программы на высокоуровневых языках, например, на C++ или на Python, но процессор не может их понимать. Он понимает только единицы и нули, поэтому нам нужно каким-то образом представить код в этом формате.


Программы компилируются в набор низкоуровневых инструкций, называемых языком ассемблера, который является частью архитектуры набора команд (Instruction Set Architecture, ISA). Это набор команд, которые должен понимать и выполнять ЦП. Одними из наиболее распространённых ISA являются x86, MIPS, ARM, RISC-V и PowerPC. Точно так же, как синтаксис написания функции на C++ отличается от функции, выполняющей то же действие в Python, у каждой ISA есть свой отличающийся синтаксис.

Эти ISA можно разбить на две основных категории: с фиксированной и с переменной длиной. ISA RISC-V использует инструкции с фиксированной длиной, и это означает, что определённое заранее заданное количество битов в каждой инструкции определяет, какой тип имеет эта инструкция. В x86 всё иначе, в нём используются инструкции с переменной длиной. В x86 инструкции могут кодироваться различным способом с разным количеством битов для разных частей. Из-за такой сложности декодер инструкций в процессоре x86 обычно является самой сложной частью всего устройства.

Инструкции с фиксированной длиной обеспечивают простое декодирование благодаря постоянной структуре, но ограничивают общее количество инструкций, которые могут поддерживаться ISA. В то время, как у популярных версий архитектуры RISC-V есть примерно 100 инструкций и все они имеют открытый исходный код, архитектура x86 проприетарна и никто не знает, сколько всего инструкций в ней есть. Обычно считается, что существует несколько тысяч инструкций x86, но точное число никто не публикует. Несмотря на различия между ISA, по сути все они имеют одинаковую базовую функциональность.


Пример некоторых инструкций RISC-V. Опкод справа имеет длину 7 бит и определяет тип инструкции. Кроме того, каждая инструкция содержит биты, определяющие используемые регистры и выполняемые функции. Так ассемблерные инструкции разбиваются на двоичный код, чтобы его понимал процессор.

Теперь мы готовы включить компьютер и начать выполнять программы. Выполнение инструкции имеет несколько базовых частей, которые разбиты на множество этапов процессора.

Первый этап — передача инструкции из памяти в процессор для начала выполнения. На втором этапе инструкция декодируется, чтобы ЦП мог понять, какого типа эта инструкция. Существует множество типов, в том числе арифметические инструкции, инструкции ветвления и инструкции памяти. После того, как ЦП узнает, инструкцию какого типа он выполняет, операнды для инструкции берутся из памяти или внутренних регистров ЦП. Если вы хотите сложить число A и число B, то не можете выполнять сложение, пока не знаете значений A и B. Большинство современных процессоров являются 64-битными, то есть размер каждого значения данных составляет 64 бита.


64 бита — это ширина регистра процессора, канала передачи данных и/или адреса памяти. Для обычных пользователей это означает, какой объём информации компьютер может обработать за один раз, и лучше всего это понять в сравнении с младшим родственником по архитектуре — 32-битным процессором. 64-битная архитектура может обрабатывать за раз в два раза больше бит информации (64 бит против 32).

Получив операнды для инструкции, процессор переносит их на этап выполнения, где производится операция над входящими данными. Это может быть сложение чисел, выполнение логических манипуляций с числами или просто передача чисел без их изменения. После вычисления результата может потребоваться доступ к памяти для его сохранения, или процессор может просто хранить значение в одном из своих внутренних регистров. После сохранения результата ЦП обновляет состояние различных элементов и переходит к следующей инструкции.

Это объяснение, разумеется, сильно упрощено, и большинство современных процессоров для повышения эффективности разбивает эти несколько этапов на 20 или даже больше мелких этапов. Это означает, что хотя процессор начинает и завершает в каждом цикле несколько инструкций, может потребоваться 20 или больше циклов, чтобы выполнить одну инструкцию от начала до конца. Такая модель обычно называется pipeline («трубопровод», на русский обычно переводят как «конвейер»), потому что для заполнения трубопровода жидкостью и полного её прохождения требуется время, но после заполнения расход (вывод данных) будет постоянным.


Пример 4-этапного конвейера. Разноцветные прямоугольники обозначают независящие друг от друга инструкции.

Весь проходимый инструкцией цикл — это очень тщательно скоординированный процесс, но не все инструкции могут завершаться одновременно. Например, сложение выполняется очень быстро, а деление или загрузка из памяти может занимать тысячи циклов. Вместо останова всего процессора до момента завершения одной медленной инструкции большинство современных процессоров выполняют их с изменением очерёдности. То есть они определяют, какую из инструкций выгоднее всего выполнить в текущий момент и буферизируют другие инструкции, которые пока не готовы. Если текущая инструкция ещё не готова, то процессор может перепрыгнуть вперёд по коду, чтобы посмотреть, готово ли что-то ещё.

Кроме выполнения с изменением очерёдности современные процессоры применяют технологию под названием суперскалярная архитектура. Это означает, что в любой момент времени процессор одновременно выполняет на каждом этапе конвейера множество инструкций. Он может также ожидать ещё сотни других, чтобы начать их выполнение, и для того, чтобы иметь возможность одновременного выполнения нескольких инструкций внутри процессоров есть несколько копий каждого этапа конвейера. Если процессор видит, что к выполнению готовы две инструкции, и между ними нет зависимости, то он не ждёт, пока они завершатся по отдельности, а выполняет их одновременно. Одна из популярных реализаций такой архитектуры называется Simultaneous Multithreading (SMT) и также известна, как Hyper-Threading. Процессоры Intel и AMD сейчас поддерживают двухсторонний SMT, а IBM разработала чипы, поддерживающие до восьми SMT.


Для завершения этого тщательно скоординированного выполнения процессор кроме базового ядра имеет множество дополнительных элементов. В процессоре есть сотни отдельных модулей, у каждого из которых есть специфическая функция, но мы рассмотрим только основы. Самыми важными и выгодными являются кэши и предсказатель переходов. Есть и другие дополнительные структуры, которые мы рассматривать не будем: буферы переупорядочивания, таблицы переименования регистров и станции резервирования.

Необходимость кэшей иногда может сбивать с толку, ведь они хранят данные, как и ОЗУ или SSD. Но кэши отличаются задержкой и скоростью доступа. Даже несмотря на то, что память ОЗУ чрезвычайно быстра, она на порядки величин медленнее, чем нужно для ЦП. Для ответа с передачей данных ОЗУ может потребоваться сотни циклов, и процессору в это время будет нечем заняться. А если данных нет в ОЗУ, то могут потребоваться десятки тысяч циклов для получения доступа к ним с SSD. Без кэшей процессоры бы постоянно стопорились.

Обычно процессоры имеют три уровня кэша, образующих так называемую иерархию памяти. Кэш L1 — самый маленький и быстрый, L2 находится посередине, а L3 — самый крупный и медленный из всех кэшей. Выше кэшей в иерархии находятся мелкие регистры, хранящие во время вычислений единственное значение данных. По порядку величин эти регистры являются самыми быстрыми устройствами хранения в системе. Когда компилятор преобразует высокоуровневую программу в язык ассемблера, он определяет наилучший способ использования этих регистров.

Когда ЦП запрашивает данные из памяти, то сначала проверяет, хранятся ли эти данные уже в кэше L1. Если да, то можно всего за пару циклов получить к ним доступ. Если их там нет, то процессор проверяет L2, а затем и кэш L3. Кэши реализованы таким образом, что в общем случае они прозрачны для ядра. Ядро просто запрашивает данные по указанному адресу памяти, и тот уровень в иерархии, на котором они есть, отвечает ему. При переходе к последующим уровням в иерархии памяти размер и задержки обычно растут на порядки величин. В конце концов, если ЦП не находит данные ни в одном из кэшей, то обращается в основную память (ОЗУ).


В обычном процессоре каждое ядро имеет два кэша L1: один для данных и другой для инструкций. Кэши L1 обычно имеют в целом объём порядка 100 килобайт и размер очень варьируется в зависимости от чипа и поколения процессора. Кроме того, обычно для каждого ядра есть свой кэш L2, хотя в некоторых архитектурах он может быть общим для двух ядер. Кэши L2 обычно имеют размер несколько сотен килобайт. Наконец, есть единственный кэш L3, общий для всех ядер, имеющий размер порядка десятков мегабайт.

Когда процессор выполняет код, самые часто используемые инструкции и значения данных кэшируются. Это значительно ускоряет выполнение, потому что процессору не нужно постоянно обращаться за нужными данными в основную память. Во второй и третьей частях серии мы подробнее поговорим о том, как реализованы эти системы памяти.

Кроме кэшей одним из самых важных строительных блоков современного процессора является точный предсказатель переходов. Инструкции переходов (ветвлений) схожи с конструкциями «if» для процессора. Один набор инструкций выполняется, если условие истинно, а другой — если оно ложно. Например, нам нужно сравнить два числа, и если они равны, выполнить одну функцию, а если не равны, то выполнить другую. Эти инструкции ветвления применяются чрезвычайно часто и могут составлять примерно 20% всех инструкций в программе.

На первый взгляд кажется, что эти инструкции ветвления не должны вызывать проблем, но их правильное выполнение может оказаться очень сложным для процессора. В любой момент времени процессор может находиться в процессе одновременного выполнения десяти или двадцати инструкций, поэтому очень важно знать, какие инструкции выполнять. Может потребоваться 5 циклов, чтобы определить, что текущая инструкция — это переход и ещё 10 циклов, чтобы определить истинность условия. В это время процессор уже может начать выполнение десятков дополнительных инструкций, даже не зная, действительно ли это подходящие для выполнения инструкции.

Чтобы обойти эту проблему, все современные высокопроизводительные процессоры используют методику под названием «упреждение» (speculation). Это означает, что процессор отслеживает инструкции ветвления и гадает, будет ли выполнен условный переход, или нет. Если предсказание верно, то процессор уже начал выполнять последующие инструкции, и это обеспечивает рост производительности. Если предсказание неверно, то процессор останавливает выполнение, удаляет все неверные инструкции, которые он начал выполнять, и начинает заново с правильной точки.

Такие предсказатели перехода — одни из самых простейших разновидностей машинного обучения, потому что предсказатель изучает поведение ветвей в процессе выполнения. Если он предсказывает неверно слишком часто, то начинает обучаться правильному поведению. Десятилетия исследований методик предсказания переходов привели к тому, что в современных процессорах точность предсказаний превышает 90%.

Хотя упреждение обеспечивает огромный рост производительности, потому что процессор может выполнять инструкции, которые уже готовы, вместо того, чтобы ожидать в очереди завершения выполняемых, оно в то же время создаёт уязвимости в защите. Знаменитая атака Spectre эксплуатирует баги в предсказании и упреждении переходов. Атакующий использует специально подобранный код, чтобы заставить процессор упреждающе выполнить код, благодаря чему происходит утечка значений из памяти. Для предотвращения утечки данных необходимо было переделать конструкцию отдельных аспектов упреждения, что привело к небольшому падению производительности.

За последние десятилетия используемая в современных процессорах архитектура прошла долгий путь. Инновации и разработка продуманной структуры привели к повышению производительности и более оптимальному использованию аппаратных средств. Однако разработчики центральных процессоров тщательно хранят секреты их технологий, поэтому мы не можем точно узнать, что происходит у них внутри. Тем не менее, фундаментальные принципы работы процессоров стандартированы для всех архитектур и моделей. Intel может добавлять свои секретные ингредиенты, чтобы повысить долю попаданий кэша, а AMD может добавить улучшенный предсказатель переходов, но процессоры обеих компаний выполняют одинаковую задачу.

В этом первом взгляде и обзоре мы рассмотрели основы работы процессоров. В следующей части мы расскажем, как разрабатываются компоненты, входящие в состав процессоров, поговорим о логических элементах, тактовых частотах, управлении питанием, принципиальных электросхемах и другом.

Теперь, когда мы знаем, как работают процессоры на высоком уровне, пришло время заглянуть внутрь процессора, чтобы понять, как устроены его внутренние компоненты. Эта статья является второй частью нашей серии, посвященной устройству процессоров. Если вы не читали первую часть, советуем ознакомиться с ней прежде, чем вы начнете читать дальше, поскольку в этой статье мы будем использовать понятия, освещенные ранее.

Как вы, вероятно, знаете, процессоры и большинство других современных цифровых технологий основаны на транзисторах. Самый простой способ представить транзистор – это управляемый переключатель с тремя контактами. Когда затвор включен, ток пропускается через транзистор. А когда выключен, транзистор ток не проводит. Точно так же, как и выключатель света на вашей стене, только транзистор гораздо меньше, гораздо быстрее и может управляться электрически.



В современных процессорах используются два основных типа транзисторов: pMOS и nMOS. Транзистор nMOS позволяет току течь, когда подается ненулевое напряжение на затвор, а транзистор pMOS – наоборот, проводит ток, когда напряжение на затворе стремится к нулю. Комбинируя эти типы транзисторов, мы можем создать логические вентили CMOS. В третьей части серии мы ещё остановимся подробней на физике работы процессоров.

Логический вентиль (логический элемент, гейт) – это простейшее устройство, которое принимает входной сигнал, выполняет некоторые операции и выводит результат в виде выходного сигнала. Например, вентиль AND (И) включит свой выход тогда и только тогда, когда все входы в вентиль включены. Инвертор или вентиль отрицания NOT (НЕ) включит свой выход, если вход отключен. Объединив эти два гейта, мы получим логический элемент NAND (И-НЕ), который включает свой выход, если и только если ни один из входов не включен. К другим логическим гейтам, с иной логической функциональностью, относятся OR (ИЛИ), NOR (ИЛИ-НЕ), XOR (Исключающее ИЛИ) и XNOR (Исключающее ИЛИ с инверсией).

Ниже показаны схемы двух основных логических элементов, реализованных с помощью транзисторов: вентиль отрицания (инвертор) и вентиль NAND (И-НЕ). В инверторе сверху находится транзистор pMOS, подключенный к питанию, а снизу транзистор nMOS, подключенный к земле. Транзисторы pMOS обозначаются с небольшим кружочком на затворе. Поскольку устройства pMOS срабатывают при отключенном входе, а устройства nMOS наоборот – при включенном, то несложно понять, что сигнал на выходе всегда будет противоположным сигналу на входе. Глядя на вентиль NAND, мы видим, что для него требуются четыре транзистора и что выход будет включен, пока хотя бы один из входов отключен. По такому же принципу, как формируются приведенные примеры элементарных транзисторных схем, проектируются и более сложные логические гейты и прочие схемы внутри процессоров.


Трудно представить, как из таких простейших кирпичиков – логических элементов – может получиться функционирующий компьютер. Сперва из нескольких отдельных вентилей создаётся простейшее устройство, способное выполнять какую-то простую функцию. Затем из нескольких таких простых устройств создаётся более сложное, выполняющее более сложную задачу. Процесс объединения отдельных компонентов для получения требуемой функциональности – это именно то, что применяется сегодня при создании чипов. Современные чипы имеют миллиарды транзисторов.

Вывод Суммы (Sum) включается, если A или B включены (но не оба сразу), либо если есть сигнал переноса (Cin), при этом A и B одновременно включены или выключены. Вывод переноса (Carry out) функционирует несколько сложнее – он срабатывает либо при одновременном включении A и B, либо если есть сигнал переноса и один из A или B (но не оба сразу). Чтобы соединить несколько однобитных сумматоров в один более широкий, нам попросту нужно последовательно соединить вывод переноса предыдущего бита с входом переноса текущего бита. Чем сложнее схемы, тем сложнее логика, но это самый простой способ сложить два числа. Современные процессоры используют более сложные сумматоры, рассматривать их в нашем обзоре будет излишним. Помимо сумматоров, процессоры также содержат узлы для деления и умножения, включая версии всех этих операций с плавающей запятой.



Объединение групп логических элементов для выполнения какой-либо функции, подобное этому, называется комбинационной логикой. Но этот тип логики не единственный, что встречается в компьютерах. Было бы мало толку, если бы мы не могли хранить данные или отслеживать состояние чего-либо. Для этого нам нужна секвенциальная логика, которая обеспечивает возможность хранить данные.

Секвенциальная логика строится путем подключения инверторов и других гейтов таким образом, что их выходы возвращают сигналы на вход гейтов. Эти контуры обратной связи используются для хранения одного бита данных и известны как статическое ОЗУ или SRAM (Static RAM). Статическим оно называется в противоположность динамическому (DRAM), поскольку сохраняемые в нём данные всегда напрямую связаны с положительным напряжением или землей.

Ниже показан стандартный способ имплементации одного бита SRAM на шести транзисторах. Верхний сигнал WL (Word Line, словная линия) является адресным, и когда он включен, данные, хранящиеся в этой 1-битной ячейке, подаются на битовую линию BL (Bit Line). Вывод BLB (Bit Line Bar, шина битовой линии) это просто инвертированное значение битовой линии, но физически это одна и та же линия. Помимо двух типов транзисторов, мы видим и знакомые нам схемы инверторов, выполненные на транзисторах M3/M1 и M2/M4.



SRAM используется для создания сверхбыстрых кэшей и регистров внутри процессоров. Такая память очень стабильна, но требует от шести до восьми транзисторов для хранения каждого бита данных. Это делает его чрезвычайно дорогим по стоимости, сложности и площади чипа по сравнению с Dynamic RAM. DRAM, в свою очередь, хранит данные в крошечном конденсаторе, а не с помощью логических вентилей. Динамическим оно называется потому, что напряжение на конденсаторе может динамически изменяться, поскольку оно не подключено напрямую к питанию или земле.

Поскольку для доступа к данным, хранящимся в конденсаторе, требуется только один транзистор на бит и конструкция схемы очень масштабируема, DRAM может быть «упакован» компактно и дешево. Одним из недостатков DRAM является то, что заряд в конденсаторе настолько мал, что его необходимо постоянно поддерживать. Именно поэтому при выключении компьютера все конденсаторы разряжаются и данные в оперативной памяти теряются.



Принципиальная схема DRAM. Address Line – адресная шина (словная линия); Bit Line – битовая шина (битовая линия); Transistor – транзистор; Storage capacitor – конденсатор; Ground – земля.

Такие производители, как Intel, AMD и Nvidia, не публикуют схем работы своих процессоров, поэтому и мы не можем предоставить точные схемы узлов современных процессоров. Однако этот простой сумматор позволяет получить достаточное представление о том, как даже самые сложные части процессора можно разбить на составляющие логические элементы, элементы памяти, и в конечном итоге – на транзисторы.

Теперь, когда мы знаем об устройстве некоторых компонентов процессора, нам нужно выяснить, как они соединяются и согласуются между собой. Все важнейшие узлы процессора подключены к тактовому сигналу (синхросигналу), который представляет собой чередование верхнего и нижнего уровня сигнала с заданным интервалом, называемым частотой. Логика внутри процессора обычно переключает значения и выполняет вычисления в момент переключения синхросигнала с низкого уровня на высокий. Синхронизируя все вместе, мы можем быть уверены, что данные всегда распределяются корректно по времени, тем самым исключая сбои в работе процессора.

Многие, наверное, слышали о так называемом «разгоне» – увеличении тактовой частоты процессора с целью повысить его производительность. Этот выигрыш в производительности достигается за счет более быстрого переключения транзисторов и внутрипроцессорной логики, чем предусмотрено производителем. Поскольку число тактов в секунду становится больше, то и операций может быть произведено больше, отчего и повышается производительность процессора. Но это справедливо лишь до определенного предела. Большинство современных процессоров работают с частотой от 3,0 до 4,5 ГГц, и за последнее десятилетие ситуация не сильно изменилась. Точно так же, как металлическая цепь не прочнее её самого слабого звена, процессор не может быть быстрее его самой медленной части. К концу каждого такта каждый из элементов процессора должен завершить свою работу. Если какой-то элемент не успевает, значит заданная частота слишком высока, и процессор не сможет работать. Разработчики называют эту самую медленную часть «критическим путем», и именно по ней производителем задаётся максимальная частота процессора. Выше определенной частоты транзисторы просто не могут переключаться достаточно быстро и начинают глючить или давать неправильные выходные сигналы.

Мы можем ускорить переключение транзисторов, повысив напряжение питания процессора, но это тоже срабатывает до определённого предела. Если подать слишком большое напряжение, то мы рискуем сжечь процессор. При увеличении частоты или повышении напряжения процессора, усиливаются его нагрев и потребляемая мощность. Это происходит потому, что мощность процессора прямо пропорциональна частоте и пропорциональна квадрату напряжения. Чтобы определить энергопотребление процессора, мы рассматриваем каждый транзистор как маленький конденсатор, который нужно заряжать или разряжать при изменении его значения.

Подача питания — настолько важная часть процессора, что в некоторых случаях до половины физических контактов на чипе может использоваться только для питания или заземления. Некоторые чипы при полной нагрузке могут потреблять больше 150 ампер, и весь этот ток должен крайне аккуратно управляться. Чтобы представить такое количество энергии, заметим: центральный процессор производит больше тепла на единицу площади, чем ядерный реактор.

Тактовый сигнал в современных процессорах отнимает примерно 30-40% от его общей мощности, потому что он очень сложен и должен управлять множеством различных устройств. Для сохранения энергии большинство процессоров с низким потреблением отключают части чипа во время их бездействия. Это реализуется отключением тактового сигнала (Clock Gating) или отключением питания (Power Gating).

Тактовые сигналы имеют ещё одну сложность при разработке процессора: так как их частоты постоянно растут, на их пути начинают вставать законы физики. Хоть скорость света и чрезвычайно высока, она недостаточно высока для высокопроизводительных процессоров. Если подключить тактовый сигнал к одному из концов чипа, то ко времени, когда сигнал достигнет другого конца, он уже будет значительно рассинхронизован. Чтобы синхронизировать все части чипа, тактовый сигнал распределяется при помощи так называемого H-дерева (H-Tree). Это структура, обеспечивающая равноудаленность всех конечных точек от центра.



Может показаться, что проектирование каждого отдельного транзистора, тактового сигнала и контакта питания в чипе – чрезвычайно монотонная и сложная задача, и это в самом деле так. Даже несмотря на то, что в таких компаниях, как Intel, Qualcomm и AMD работают тысячи инженеров, они не смогли бы вручную спроектировать каждый аспект чипа. Для их проектирования они используют различные специальные инструменты, помогающие создавать необходимые конструкции и схемы к ним. Такие инструменты обычно получают высокоуровневое описание того, что должен делать компонент, и определяют наилучшую аппаратную конфигурацию, удовлетворяющую этим требованиям. Зародилось технологическое направление под названием "Синтез высокого уровня" (High Level Synthesis), которое позволяет разработчикам задавать в коде желаемую функциональность, после чего компьютеры определяют, как оптимально достичь её в оборудовании.

Точно так же, как вы можете описывать компьютерные программы с помощью кода, проектировщики могут описывать кодом аппаратные устройства. Такие языки, как Verilog и VHDL позволяют разработчикам оборудования выражать функциональность любой создаваемой ими электрической схемы. После успешного выполнения симуляций и верификации таких проектов их можно материализовать в конкретные транзисторы, из которых будет состоять электрическая схема. Хоть этап верификации и не кажется столь же увлекательным, как проектирование нового кэша или ядра, он значительно важнее их. На каждого нанимаемого компанией инженера-проектировщика может приходиться пять или более инженеров по верификации.

Непросто осмыслить то, что в одном чипе может быть несколько миллиардов транзисторов и понять, что все они делают. Если разбить чип на его отдельные внутренние компоненты, становится немного легче. Из транзисторов составляются логические вентили, логические вентили соединяются в функциональные модули, выполняющие определённую задачу, а эти функциональные модули собираются вместе, образуя архитектуру компьютера, о которой мы говорили в первой части серии.

Бо́льшая часть работ по проектированию автоматизирована, но изложенное выше позволяет нам осознать, насколько сложен только что купленный нами новый процессор.

Эта вторая часть нашей серии посвящена процессу проектирования процессора. Мы рассмотрели транзисторы, логические элементы (они же вентили, гейты), подачу питания и синхронизирующих сигналов, синтез конструкции и верификацию. В третьей части мы узнаем, что требуется для физического производства чипа. Все компании любят хвастаться тем, насколько современен их техпроцесс (Intel 10 нм, Apple и AMD 7 нм, и т.д.), но что же на самом деле означают эти числа? Об этом мы расскажем в следующей части.

Как рождались легенды

Intel 8086/8088 и архитектура x86

Процессор Intel 8086

Разработка 8086 была поручена инженеру Стивену Морсу, который скомпилировал основные спецификации процессора и его архитектуры к середине лета 1976 года. Еще два года понадобилось Intel для его создания. И вот 8 июня 1978 года кристалл 8086 был официально анонсирован.

Стивен Морс (справа) — отец «восемьдесят шестого»

Intel 8086 был примерно в 10 раз быстрее, чем модель с индексом 8080. Процессор стал первой реализацией системы команд x86 и одноименной архитектуры, которая впоследствии стала своего рода стандартом и используется в кристаллах AMD и Intel по сей день.

Процессор Intel 8088

Разработка компьютера 5150 имела огромное значение для компании IBM. Во второй половине 1970-х годов рынок персональных десктопов активно развивался, а IBM уделяла этому сегменту недостаточно внимания. Само собой, в компании осознавали всю его перспективность, в связи с чем и было принято решение о разработке собственной модели ЭВМ.

IBM 5150 — первая модель линейки IBM PC — увидела свет в 1981 году. Топовая версия компьютера оценивалась в 3005 долларов США. Она комплектовалась процессором Intel 8088 с частотой 4,77 МГц, а объем оперативной памяти составлял 64 Кбайт. В качестве устройства для хранения данных в IBM 5150 использовались 5,25-дюймовые дискеты. А несколько позже в продаже появились модели компьютера, которые позволяли использовать аудиокассеты как хранилище данных. Установить жесткий диск в систему было невозможно, однако спустя некоторое время IBM выпустила винчестер, который подключался к 5150 в качестве модуля расширения. Компьютер обладал несколькими портами расширения, через которые, кроме винчестера, подключались видеоадаптеры, карты с портами ввода-вывода и другие устройства.

Младшая версия десктопа стоила почти в два раза меньше — 1565 долларов США. В «урезанной» модели использовался тот же Intel 8088, но объем оперативной памяти составлял всего 16 Кбайт. Во-вторых, в отличие от старшей версии, младшая не комплектовалась CGA-монитором и флоппи-дисководом. В качестве дисплея предлагалось использовать телевизор, а хранить данные можно было на кассетном накопителе. Также, в отличие от топовой версии IBM 5150, младшая модель не работала с операционной системой PC-DOS 1.0 (впоследствии ставшей MS-DOS).

Как создаются современные процессоры? Насколько это сложный и интересный процесс и почему так важна некая Экстремальная УФ-литография? В этот раз мы копнули действительно глубоко и готовы рассказать вам об этой магии технологий. Располагайтесь поудобнее, будет интересно.

Вот вам затравочка - 30-килоВаттный лазер в вакууме стреляет по капле олова и превращает ее в плазму - скажете фантастика?

А мы разберемся как это работает и расскажем об одной компании из Европы, которая стоит тенью за всеми гигантами Apple, AMD, Intel, Qualcomm, Samsung и другими и без нее никаких новых процессоров бы и не было. И нет это, к сожалению не Чебоксарский завод электроники.

Чтобы понять процесс экстремальной ультрафиолетовой литографии - нам надо для начала понять, что вообще такое фотолитография. Сам процесс по своей сути очень похож на то как печатаются фотографии с с пленочных негативов на фотобумагу! Не верите - сейчас все объясним.

Фотолитография

Начнем с простого примера - возьмем прозрачное стекло и нанесем на него какой-то геометрический рисунок, оставив при этом какие-то участки без краски. По сути, сделаем трафарет. Приложим этот кусок стекла к фонарику и включим его. Мы получим ровно тот же рисунок в виде тени, который мы нанесли на кусок стекла.

В производстве процессоров этот кусок стекла с рисунком называется маска. Маска позволяет получить на поверхности любого материала “засвеченные и незасвеченные” участки любой плоской формы.

Хорошо - рисунок на поверхности мы получили, но это всего лишь тень. Теперь надо как-то его там сохранить. Для этого на поверхность кремниевой пластины наносится специальный светочувствительный слой, который называют Фоторезистом. Для простоты мы не будем тут говорить о позитивных и негативных фоторезистах, почему они так реагируют, все-таки мы не на уроке Физической химии. Просто скажем, что это такое вещество, которое меняет свои свойства, когда на него попадает свет на определенной частоте, то есть на определенной длине волны. Хорошо - рисунок на поверхности мы получили, но это всего лишь тень. Теперь надо как-то его там сохранить. Для этого на поверхность кремниевой пластины наносится специальный светочувствительный слой, который называют Фоторезистом. Для простоты мы не будем тут говорить о позитивных и негативных фоторезистах, почему они так реагируют, все-таки мы не на уроке Физической химии. Просто скажем, что это такое вещество, которое меняет свои свойства, когда на него попадает свет на определенной частоте, то есть на определенной длине волны.

Опять же как и на фотопленке или фотобумаге - специальные слои материалов реагируют на свет!

После того как нужные нам участки на кремнии мы засветили, именно их мы можем убрать, оставив при этом на месте остальные, то есть незасвеченные участки. В итоге мы получили тот рисунок, который и хотели. Это и есть фотолитография!

Конечно, кроме фотолитографии в производстве процессоров участвуют и другие процессы, такие как травление и осаждение, фактически комбинацией этих процессов вместе с фотолитографией транзисторы как-бы печатаются слой за слоем на кремнии.

Технология не новая, почти все процессоры начиная с 1960-х производятся при помощи фотолитографии. Именна эта технология открыла мир полевых транзисторов и путь ко всей современной микроэлектронике.

Но по-настоящему большой скачок в этой области произошел только недавно! С переходом на EUV. И всё из-за длинный волны 13.5 нм. Не переживайте, сейчас объясню!

Длина волны на которой светит наш “фонарик” - это невероятно важный параметр. Именно она и определяет насколько маленьким вы можете получить элементы на кристалле.

Правило максимально простое: Меньше длина волны - больше разрешение, и меньше техпроцесс!

Обратите внимание на картинку. Абсолютно все процессоры начиная с начала 90-х до 2019 года производились с использованием процесса Глубокой УФ-литографии, или DUV литографии. Это то, что было до Экстремальной.

Он основывался на использовании фторид-аргонового лазера, который испускает свет с длиной волны в 193 нанометра. Этот свет лежит в области глубокого ультрафиолета - отсюда и название.

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

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

Какой же минимальный техпроцесс возможен? Смотрим на формулу (только не пугайтесь):

Здесь Лямбда - это и есть наша длина волны, а CD - это critical dimension, то есть минимальный размер получаемой структуры. То есть с использованием “старой” DUV литографии нельзя получить структуры не меньше примерно 50 нм. Но как же это так спросите вы? Ведь производители отлично делали и 14 и 10 нм, а кто-то даже и 7 нм с использованием DUV литографии.

Они пошли на хитрости. Вместо одного засвета через одну единую маску, они стали использовать несколько масок, с разными рисунками, которые дополняют друг-друга. Это процесс получил название множественное экспонирование . Назовем это принципом слоеного пирога!

Да - производители обошли прямые физические ограничения, но физику не обманули!

Появилась серьезная проблема: эти дополнительные шаги сделали производство каждого чипа гораздо дороже, из-за них увеличивается количества брака, есть и другие проблемы.

То есть в теории можно продолжить работать со старой технологией и путем игры с масками и экспонированием (двойная, тройная, четверная экспозиция) уменьшать размеры и дальше, но это сделает процы золотыми. Ведь с каждым слоем процент брака возрастает все выше, а ошибка накапливается!

То есть можно сказать, что DUV - это тупик! Что делать дальше, как уменьшать?

И тут на помощь приходит великая и ужасная технология Экстремальной УФ-литографии, или EUV-литографии!

Посмотрите на фото - оно прекрасно демонстрирует различие двух технологий. Обе получены с использованием 7-нанометрового техпроцесса, но та что слева получена с использованием DUV-литографии и с теми самыми хитростями о которых мы говорили - тройное экспонирование, то есть с поэтапным использованием 3 разных масок. Справа же - технология EUV литографии на 13.5 нанометрах, с использованием одной единственной маски - разница очевидна - границы гораздо четче, лучший контроль геометрии, ну и сам процесс намного быстрее, меньше процент брака, то есть в конце концов дешевле. Вот она дорога в светлое будущее, почему бы сразу так не делать, в чем проблема?

Как работает EUV-литография

Все дело в том, что хоть EUV это та же литография, внутри в деталях все гораздо сложнее и тут ученые и инженеры столкнулись с новыми проблемами!

Сама технология экстремальной УФ-литографии начала разрабатываться в самом начале 2000 гдов. В ней используется источник, который излучает свет с длинной волны в 13.5 нанометров - то есть на нижней границе УФ-спектра, близко к рентгену!

В теории этим способом можно создавать структуры уже критических размеров - настолько маленьких, что еще чуть-чуть и на них перестанут действовать законы обычной физики. То есть после 5 нм мы попадаем в квантовой мир!

Но даже эта проблема на данный момент решена. Есть источник - возьми, да и делай себе сколь угодно маленькие процессоры.

Все совсем не так просто!

Проблема таких коротких длин волн в том, что они поглощаются почти всеми материалами, поэтому обычные линзы что были раньше уже не подходят. Что делать?

Для управления таким светом было принято решение создать специальные отражающие зеркальные линзы. И эти линзы должны быть гладкими! Очень гладкими. Практически идеально гладкими!

Вот вом аналогия - растянем линзу до размеров, скажем, Германии, так вот ее площадь должна быть такой гладкой, что ничего не должно выпирать больше чем на 1 миллиметр. Этот параметр называется шероховатостью линзы и у нужной нам он должен быть меньше 0.5 нанометра. Это уже близко к размерам АТОМА! Кто же смодет подковать блоху?

Конечно, Zeiss - только они на это способны! Да - та самая компаиня Zeiss, чьи линзы стоят на моем фотике, были в Nokia или во флагманах Sony Xperia.

Одна проблема решена - линзы есть!

Есть и вторая - этот свет рассеивается даже в простом воздухе. Поэтому для того чтобы процесс прошел нормально его надо проводить в вакууме!

Про частички пыли и грязи я вообще молчу - понятно что их там вообще не должно быть. Чистые комнаты на таком производстве на порядки чище, чем операционные в больницах! Люди буквально ходят в скафандрах. Любая, даже самая маленькая частичка грязи кожи воздуха может испортить и маску и зеркала!

А что же с источником? Просто поставили специальный лазер на более короткую длину волны и все? Проблема в том, что ни лампочек, ни лазеров, ни каких-либо других нормальных источников света, которые излучают на такой длине волны просто не существует в природе.

И как же тогда получают нужное излучение? Элементарно, Ватсон - нам нужна плазма.

Надо нагреть оловянный пар до температур в 100 раз больших, чем температура поверхности солнца! Всего-то! И за этим стоит почти 2 десятилетия разработок.

В установке для производства процессоров по EUV-литографии, о которой мы поговорим отдельно установлен специальный углекислотный лазер, который опять же может производиться в тандеме всего двух компаний в мире - немецкой фирмой Trumpf и американской Cymer. Этот монстр мощностью в 30 киловатт стреляет по 2 импульса с частотой 50 килогерц.

Лазер попадает в капли олова, первый выстрел фактически плющит и превращает каплю в блин, которая становится легкой мишенью для второго залпа, который ее поджигает. И происходит это 50 тысяч раз в секунду! А образовавшаяся плазма и излучает этот свет в экстремальном УФ спектре.

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

Компания, стоящая за производством всех процессоров

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

В итоге, чтобы это стало реальностью всем пришлось скинуться - Intel в 2012 году, а TSMC и Samsung где-то в 2015 году приняли участие в общем проекте. Суммарные инвестиции составили, по разным оценкам от 14 до 21 млрд долларов! Из которых почти 10 млрд были вложены в одну единственную нидерландскую компанию ASML. Именно она и стоит за всем производством процессоров в мире по методу EUV-литографии! Вау! Что за ASML и почему мы о ней ничего не слышали? Компания из Нидерландов - что за темная лошадка?

Все дело в том, что ASML создали тот самый инструмент без которого Apple, Самсунг и Intel с AMD фактически как без рук! Речь идёт об установке стоимостью более 120 миллионов долларов. Она огромная, 180-тонная, потребляет почти 1 мегаватт электроэнергии, и ей нужно почти 1.5 тонны воды в минуту для охлаждения! Но даже при такой цене очереди на них стоят годами ведь в год этих машин производится несколько десятков штук.

Тут же стоит упомянуть немалый вклад российских умов. Например, один из создателей этой технологии - Банин Вадим Евгеньевич, сейчас директор по разработке в ASML. Также в компании работают и другие наши соотечественники!

Мы выяснили, что эта компания делает одни из самых технологичных девайсов, в котором собраны все знания человечества и на них производят процессоры все IT-гиганты сразу!

Но не только ASML стоит за спиной нам известных IT-гигантов. Их установки состоят из более чем 100 тысяч деталей, которые производятся более чем тысячей компаний по всему миру. Все эти компании связаны друг с другом!

Будущее

Но что же будет дальше! Вы что - думали, что мы оставим вас оставим в дне сегодняшнем? Нет - мы подглядели в будущее! Мы раздобыли информацию что будет после пяти или даже двух нм!

Во-первых, прямо сейчас, пока вы смотрите это видео TSMC уже штампует новые процессоры для HUAWEI, Apple и Samsung с использованием EUV-литографии, но не на 7 нм, как было с Apple A13 и Kirin 990, а на 5 нм техпроцессе! И этому есть множества потверждений! И о них мы услышим уже этой осенью. Как вам такое - A14 Bionic будет 5нм! Так же ждем новые Exynos на 5нм и процессоры Google, о которых мы рассказывали отдельно! Qualcomm наверняка тоже подтянется за ними, но тут мы не располагаем данными!

А во-вторых, и это вообще взрывает мозг, ASML уже заканчивает разработку установок, которые позволят производить процессоры на 2 нанометровом техпроцессе и даже меньше всего через 4-5 лет!

Для этого ребята из нидерландской компании совместно с немецкой Zeiss разработали новые зеркальные линзы, с высокими значениями апертуры. Это анаморфная оптика - она и многое другое позволит увеличить разрешающую способность.

Сам процесс по сути тот же EUV, но с приставкой High-NA EUV. А сами агрегаты буду занимать еще большие размеры, посмотрите вот так для них делают оптику!

Этот год тяжелый для всех, но в тоже время - посмотрите какими шагами начинают развиваться технологии, все шире и шире. Нас ждут новые процессоры с мощностями, которые нам и не снились.

Кроме этого развиваются совершенно новые типы процессоров такие как NPU - для нейровычислений.

Читайте также: