Как разрабатываются и производятся процессоры: проектирование ЦП

Теперь, когда мы знаем, как работают процессоры на высоком уровне, настало время углубиться в разбор процесса проектирования их внутренних компонентов. Это вторая статья из серии, посвящённой разработке процессоров. Рекомендую изучить для начала первую часть, чтобы вы понимать изложенные ниже концепции.
Часть 1: Основы архитектуры компьютеров (архитектуры наборов команд, кэширование, конвейеры, hyperthreading)
Часть 2: Процесс проектирования ЦП (электрические схемы, транзисторы, логические элементы, синхронизация)
Часть 3: Компонование и физическое производство чипа (VLSI и изготовление кремния)
Часть 4: Современные тенденции и важные будущие направления в архитектуре компьютеров (море ускорителей, трёхмерное интегрирование, FPGA, Near Memory Computing)
Как вы возможно знаете, процессоры и большинство других цифровых устройств состоят из транзисторов. Проще всего воспринимать транзистор как управляемый переключатель с тремя контактами. Когда затвор включён, электрический ток может течь по транзистору. Когда затвор отключён, ток течь не может. Затвор похож на выключатель света в комнате, только он гораздо меньше, быстрее и может управляться электрически.
Существует два основных типа транзисторов, используемых в современных процессорах: pMOS (PМОП) и nMOS (NМОП). nMOS-транзистор пропускает ток, когда затвор (gate) заряжен или имеет высокое напряжение, а pMOS-транзистор пропускает ток, когда затвор разряжен или имеет низкое напряжение. Сочетая эти типы транзисторов комплементарным образом, мы можем создавать логические элементы КМОП (CMOS). В этой статье мы не будем подробно разбирать особенности работы транзисторов, но коснёмся этого в третьей части серии.
Логический элемент — это простое устройство, получающее входные сигналы, выполняющее какую-то операцию, и выводящее результат. Например, элемент И (AND) включает свой выходной сигнал тогда и только тогда, когда включены все входы затвора. Инвертор, или элемент НЕ (NOT) включает свой выход, если вход отключён. Можно скомбинировать эти два затвора и получить элемент И-НЕ (NAND), который включает выход, тогда и только тогда, когда не включён ни один из входов. Существуют другие элементы со своей логической функциональностью, например ИЛИ (OR), ИЛИ-НЕ (NOR), исключающее ИЛИ (XOR) и исключающее ИЛИ с инверсией (XNOR).
Ниже показано, как из транзисторов собраны два простых элемента: инвертор и NAND. В инверторе pMOS-транзистор (сверху) соединён с питанием, а nMOS-транзистор (снизу) соединён с заземлением. На обозначении pMOS-транзисторов есть небольшой кружок, соединённый с затвором. Мы сказали, что pMOS-устройства пропускают ток, когда вход отключен, а nMOS-устройства пропускают ток, когда вход включен, поэтому легко заметить, что сигнал на выходе (Out) будет всегда противоположным сигналу на входе (In). Взглянув на элемент NAND, мы видим, что для него требуется четыре транзистора, и что выход всегда будет отключен, если выключен хотя бы один из входов. Соединение подобным образом транзисторов для образования простых сетей — это тот же процесс, который используется для проектирования более сложных логических элементов и других схем внутри процессоров.

Строительные блоки в виде логических элементов так просты, что трудно понять, как они превращаются в функционирующий компьютер. Процесс проектирования заключается в комбинировании нескольких элементов для создания небольшого устройства, способного выполнять простую функцию. Затем можно объединить множество таких устройств, чтобы создать нечто, выполняющее более сложную функцию. Процесс комбинирования отдельных компонентов для создания работающей структуры — это именно тот процесс, который используется сегодня для создания современных чипов. Единственное отличие заключается в том, что современный чип состоит из миллиардов транзисторов.
В качестве небольшого примера давайте возьмём простой сумматор — 1-битный полный сумматор. Он получает три входных сигнала — A, B, и Carry-In (входной сигнал переноса), и создаёт два выходных сигнала — Sum (сумма) и Carry-Out (выходной сигнал переноса). В простейшей схеме используется пять логических элементов, и их можно соединить вместе для создания сумматора любого размера. В современных схемах этот процесс усовершенствован оптимизацией части логики и сигналов переноса, но фундаментальные основы остаются теми же.
Выход Sum равен или A, или B, но никогда обоим, или есть входящий сигнал переноса, и тогда A и B или оба включены, или оба выключены. Выходной сигнал переноса немного сложнее. Он активен, когда или A и B включены одновременно, или есть Carry-in и один из A или B включен. Чтобы соединить несколько 1-битных сумматоров для создания более широкого сумматора, нам просто нужно соединить Carry-out предыдущего бита с Carry-in текущего бита. Чем сложнее становятся схемы, тем запутанней получается логика, но это самый простой способ сложения двух чисел. В современных процессорах используются более изощрённые сумматоры, но их схемы слишком сложны для подобного обзора. Кроме сумматоров процессоры также содержат устройства для деления, умножения и версий всех этих операций с плавающей точкой.

Подобное объединение последовательностей элементов для выполнения некой функции над входными сигналами называется комбинаторной логикой. Однако это не единственный тип логики, используемый в компьютерах. Не будет особой пользы, если мы не сможем хранить данные или отслеживать состояние. Для того, чтобы иметь возможность сохранять данные, нам нужна секвенциальная логика.
Секвенциальная логика строится аккуратным соединением инверторов и других логических элементов так, чтобы их выходы передавали сигналы обратной связи на вход элементов. Такие контуры обратной связи используются для хранения одного бита данных и называются статическим ОЗУ (Static RAM), или SRAM. Эта память называется статическим ОЗУ в противовес динамической (DRAM), потому что сохраняемые данные всегда напрямую соединены с положительным напряжением или заземлением.
Стандартный способ реализации одного бита SRAM — это показанная ниже схема из 6 транзисторов. Самый верхний сигнал, помеченный как WL (Word Line) — это адрес, и когда он включен, то данные, хранящиеся в этой 1-битной ячейке передаются в Bit Line, помеченную как BL. Выход BLB называется Bit Line Bar; это просто инвертированное значение Bit Line. Вы должны узнать два типа транзисторов и понять, что M3 с M1, как и M4 с M2, образуют инвертор.

SRAM используется для построения сверхбыстрых кэшей и регистров внутри процессоров. Эта память очень стабильна, но для хранения каждого бита данных требует от шести до восьми транзисторов. Поэтому по сравнению с DRAM она чрезвычайно затратна с точки зрения стоимости, сложности и площади на чипе. С другой стороны, Dynamic RAM хранит данные в крошечном конденсаторе, а не использует логические элементы. Она называется динамической, потому что напряжение на конденсаторе может значительно изменяться, так как он не подключён к питанию или заземлению. Есть только один транзистор, используемый для доступа к хранящимся в конденсаторе данным.
Поскольку DRAM требует всего по одному транзистору на бит и очень масштабируема, её можно плотно и дёшево упаковывать. Недостаток DRAM заключается в том, что заряд конденсатора так мал, что его необходимо постоянно обновлять. Именно поэтому после отключения питания компьютера все конденсаторы разряжаются и данные в ОЗУ теряются.

Такие компании, как Intel, AMD и Nvidia, не публикуют схем работы своих процессоров, поэтому невозможно показать подобных полных электрических схем для современных процессоров. Однако этот простой сумматор позволит вам получить представление о том, что даже самые сложные части процессора можно разбить на логические и запоминающие элементы, а затем и на транзисторы.
Теперь, когда мы знаем, как производятся некоторые компоненты процессора, нам нужно разобраться, как соединить всё вместе и синхронизировать. Все ключевые компоненты процессора подключены к синхронизирующему (тактовому) сигналу (clock signal). Он попеременно имеет высокое и низкое напряжение, меняя его с заданным интервалом, называемым частотой (frequency). Логика внутри процессора обычно переключает значения и выполняет вычисления, когда синхронизирующий сигнал меняет напряжение с низкого на высокое. Синхронизируя все части, мы можем гарантировать, что данные всегда поступают в правильное время, чтобы в процессоре не возникали «глюки».
Вы могли слышать, что для повышения производительности процессора можно увеличить частоту тактовых сигналов. Это повышение производительности происходит благодаря тому, что переключение транзисторов и логики внутри процессора начинает происходить чаще, чем предусмотрено. Поскольку в секунду происходит больше циклов, то можно выполнить больше работы и процессор будет иметь повышенную производительность. Однако это справедливо до определённого предела. Современные процессоры обычно работают с частотой от 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-нанометровый, и т.д.), но что же на самом деле означают эти числа? Об этом мы расскажем в следующей части.
Как разрабатываются и создаются процессоры? Часть 2: Процесс проектирования процессора
Теперь, когда мы знаем, как работают процессоры на высоком уровне, пришло время заглянуть внутрь процессора, чтобы понять, как устроены его внутренние компоненты. Эта статья является второй частью нашей серии, посвященной устройству процессоров. Если вы не читали первую часть, советуем ознакомиться с ней прежде, чем вы начнете читать дальше, поскольку в этой статье мы будем использовать понятия, освещенные ранее.
Как вы, вероятно, знаете, процессоры и большинство других современных цифровых технологий основаны на транзисторах. Самый простой способ представить транзистор – это управляемый переключатель с тремя контактами. Когда затвор включен, ток пропускается через транзистор. А когда выключен, транзистор ток не проводит. Точно так же, как и выключатель света на вашей стене, только транзистор гораздо меньше, гораздо быстрее и может управляться электрически.
В современных процессорах используются два основных типа транзисторов: pMOS и nMOS. Транзистор nMOS позволяет току течь, когда подается ненулевое напряжение на затвор, а транзистор pMOS – наоборот, проводит ток, когда напряжение на затворе стремится к нулю. Комбинируя эти типы транзисторов, мы можем создать логические вентили CMOS. В третьей части серии мы ещё остановимся подробней на физике работы процессоров.
Логический вентиль (логический элемент, гейт) – это простейшее устройство, которое принимает входной сигнал, выполняет некоторые операции и выводит результат в виде выходного сигнала. Например, вентиль AND (И) включит свой выход тогда и только тогда, когда все входы в вентиль включены. Инвертор или вентиль отрицания NOT (НЕ) включит свой выход, если вход отключен. Объединив эти два гейта, мы получим логический элемент NAND (И-НЕ), который включает свой выход, если и только если ни один из входов не включен. К другим логическим гейтам, с иной логической функциональностью, относятся OR (ИЛИ), NOR (ИЛИ-НЕ), XOR (Исключающее ИЛИ) и XNOR (Исключающее ИЛИ с инверсией).
Ниже показаны схемы двух основных логических элементов, реализованных с помощью транзисторов: вентиль отрицания (инвертор) и вентиль NAND (И-НЕ). В инверторе сверху находится транзистор pMOS, подключенный к питанию, а снизу транзистор nMOS, подключенный к земле. Транзисторы pMOS обозначаются с небольшим кружочком на затворе. Поскольку устройства pMOS срабатывают при отключенном входе, а устройства nMOS наоборот – при включенном, то несложно понять, что сигнал на выходе всегда будет противоположным сигналу на входе. Глядя на вентиль NAND, мы видим, что для него требуются четыре транзистора и что выход будет включен, пока хотя бы один из входов отключен. По такому же принципу, как формируются приведенные примеры элементарных транзисторных схем, проектируются и более сложные логические гейты и прочие схемы внутри процессоров.
Трудно представить, как из таких простейших кирпичиков – логических элементов – может получиться функционирующий компьютер. Сперва из нескольких отдельных вентилей создаётся простейшее устройство, способное выполнять какую-то простую функцию. Затем из нескольких таких простых устройств создаётся более сложное, выполняющее более сложную задачу. Процесс объединения отдельных компонентов для получения требуемой функциональности – это именно то, что применяется сегодня при создании чипов. Современные чипы имеют миллиарды транзисторов.
В качестве примера, взглянем на простой полный одноразрядный сумматор. Он имеет три входа – А, B и Вход переноса (Cin), и два выхода – Сумма (Sum) и Выход переноса (Carry out). Базовая схема такого сумматора строится на пяти логических гейтах, которые можно сгруппировать для получения сумматора требуемого размера. Современные схемы вносят некоторые улучшения, оптимизируя работу логики и работу с переносами, но суть остаётся прежней.
Вывод Суммы (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 обнаружила баг в модуле деления с плавающей запятой у некоторых чипов Pentium, и теперь этот баг обошёлся компании в 2 миллиарда долларов.
Непросто осмыслить то, что в одном чипе может быть несколько миллиардов транзисторов и понять, что все они делают. Если разбить чип на его отдельные внутренние компоненты, становится немного легче. Из транзисторов составляются логические вентили, логические вентили соединяются в функциональные модули, выполняющие определённую задачу, а эти функциональные модули собираются вместе, образуя архитектуру компьютера, о которой мы говорили в первой части серии.
Бо́льшая часть работ по проектированию автоматизирована, но изложенное выше позволяет нам осознать, насколько сложен только что купленный нами новый процессор.
Эта вторая часть нашей серии посвящена процессу проектирования процессора. Мы рассмотрели транзисторы, логические элементы (они же вентили, гейты), подачу питания и синхронизирующих сигналов, синтез конструкции и верификацию. В третьей части мы узнаем, что требуется для физического производства чипа. Все компании любят хвастаться тем, насколько современен их техпроцесс (Intel 10 нм, Apple и AMD 7 нм, и т.д.), но что же на самом деле означают эти числа? Об этом мы расскажем в следующей части.
Производство процессора компьютера: технологический процесс
![]()
Несколько лет тому назад компания Intel представила пошаговый процесс производства микропроцессоров: от песка до конечного продукта. Фактически процесс производства полупроводниковых элементов выглядит поистине удивительным.
Шаг 1. Песок

Кремний, составляющий по общей массе около 25 процентов всех химических элементов в земной коре, является вторым по распространению после кислорода. Песок имеет высокое процентное содержание диоксида кремния (SiO2), который является основным ингредиентом не только для производства процессоров Intel, но и вообще для полупроводникового производства.
Расплавленный кремний
Вещество очищается в течение нескольких этапов, пока не получится кремний полупроводниковой чистоты, используемый в полупроводниках. В конечном счете, он поступает в виде монокристаллических слитков диаметром около 300 миллиметров (12 дюймов). Ранее слитки имели диаметр 200 миллиметров (8 дюймов), а в далеком 1970 году – еще меньше – 50 миллиметров (2 дюйма).
На данном уровне производства процессоров после очистки чистота кристалла составляет один атом примеси на миллиард атомов кремния. Вес слитка составляет 100 килограмм.
Шаг 3. Нарезание слитка
Слиток нарезается очень тонкой пилой на отдельные ломтики, называемые подложками. Каждая из них впоследствии полируется, чтобы получилась бездефектная зеркально-гладкая поверхность. Именно на эту гладкую поверхность впоследствии будут наноситься крошечные медные провода.
Экспонирование фоторезистивного слоя
На вращающуюся с высокой скоростью подложку заливается фоторезистивная жидкость (такие же материалы используются в традиционной фотографии). При вращении на всей поверхности подложки образуется тонкий и равномерный резистивный слой.
Ультрафиолетовый лазер через маски и линзу воздействует на поверхность подложки, образуя на ней небольшие освещенные ультрафиолетовые линии. Линза делает сфокусированное изображение в 4 раза меньше маски. Везде, где ультрафиолетовые линии воздействуют на резистивный слой, возникает химическая реакция, в результате которой данные участки становятся растворимыми.

Шаг 5. Травление
Растворимый фоторезистивный материал затем полностью растворяется с помощью химического растворителя. Таким образом, для частичного растворения или травления небольшого количества полированного полупроводникового материала (подложки) используется химический травитель. Оставшаяся часть фоторезистивного материала удаляется путем похожего процесса промывки, открывая (экспонируя) протравленную поверхность подложки.
Формирование слоев
Для создания крошечных медных проводов, которые в конечном счете будут передавать электричество к/от различных соединителей, добавляются дополнительные фоторезисты (светочувствительные материалы), которые также промываются и экспонируются. В дальнейшем выполняется процесс ионного легирования для добавления примесей и защиты мест осаждения ионов меди от медного купороса во время процесса гальваностегии.
На различных этапах этих процессов производства процессора добавляются дополнительные материалы, которые протравливаются и полируются. Данный процесс повторяется 6 раз для формирования 6 слоев.
Конечный продукт выглядит как сетка из множества микроскопических медных полос, проводящих электричество. Некоторые из них соединены с другими, а некоторые – расположены на определенном расстоянии от других. Но все они используются для реализации одной цели – для передачи электронов. Другими словами, они предназначены для обеспечения так называемой «полезной работы» (например, сложение двух чисел с максимально возможной скоростью, что является сутью модели вычислений в наши дни).
Многоуровневая обработка повторяется на каждом отдельном небольшом участке поверхности подложки, на котором будут изготовлены чипы. В том числе к таким участкам относятся те из них, которые частично расположены за пределами подложки.
Шаг 7. Тестирование
Как только будут нанесены все металлические слои и созданы все транзисторы, наступает время следующего этапа производства процессоров «Интел» – тестирования. Устройство с множеством штырьков размещается в верхней части чипа. К нему прикрепляется множество микроскопических проводков. Каждый такой проводок имеет электрическое соединение с чипом.
Для воспроизведения работы чипа ему передается последовательность тестовых сигналов. При тестировании проверяются не только традиционные вычислительные способности, но также выполняется внутренняя диагностика с определением значений напряжения, каскадных последовательностей и другие функции. Ответ чипа в виде результата тестирования сохраняется в базе данных, специально выделенной для данного участка подложки. Данный процесс повторяется для каждого участка подложки.
Нарезание пластин
Для нарезания пластин применяется очень маленькая пила с алмазным наконечником. База данных, заполненная на предыдущем этапе, используется для определения, какие чипы, отрезанные от подложки, сохранены, а какие отброшены.
Шаг 9. Заключение в корпуса
Все рабочие пластины помещаются в физические корпуса. Несмотря на то, что пластины были предварительно протестированы и в отношении их было принято решение, что они работают корректно, это не означает, что они являются хорошими процессорами.
Процесс заключения в корпуса означает помещение кремниевого кристалла в материал подложки, к контактам или массиву шариковых выводов которого подсоединены миниатюрные золотые проводки. Массив шариковых выводов можно обнаружить на обратной стороне корпуса. В верхней части корпуса устанавливается теплоотвод. Он представляет собой металлический корпус. По завершении этого процесса центральный процессор выглядит как готовый продукт, предназначенный для потребления.
Примечание: металлический теплоотвод является ключевым компонентом современных высокоскоростных полупроводниковых устройств. Раньше теплоотводы были керамическими и не использовали принудительное охлаждение. Оно потребовалось для некоторых моделей 8086 и 80286 и для моделей, начиная с 80386. Предшествующие поколения процессоров имели намного меньше транзисторов.
Например, процессор 8086 имел 29 тысяч транзисторов, в то время как современные центральные процессоры имеют сотни миллионов транзисторов. Столь маленькое по нынешним меркам количество транзисторов не вырабатывало достаточно тепла, чтобы требовалось активное охлаждение. Чтобы отделить данные процессоры от нуждающихся в таком типе охлаждения, впоследствии на керамические чипы ставилось клеймо «Требуется теплоотвод».
Современные процессоры генерируют достаточно тепла, чтобы расплавиться в считанные секунды. Только наличие теплоотвода, подсоединенного к большому радиатору и вентилятору, позволяет им функционировать в течение продолжительного времени.

Сортировка процессоров по характеристикам
К этому этапу производства процессор выглядит таким, каким его покупают в магазине. Однако для завершения процесса его производства требуется еще один этап. Он называется сортировкой.
На этом этапе измеряются действительные характеристики отдельного центрального процессора. Измеряются такие параметры, как напряжение, частота, производительность, тепловыделение и другие характеристики.
Лучшие чипы откладываются как изделия более высокого класса. Они продаются не только как самые быстрые компоненты, но и как модели с низким и сверхнизким напряжением.
Чипы, которые не вошли в группу лучших процессоров, часто продаются как процессоры с более низкими тактовыми частотами. Кроме того, четырехъядерные процессоры более низкого класса могут продаваться как двух- или трехъядерные.
Производительность процессоров

В процессе сортировки определяются конечные значения скорости, напряжения и тепловые характеристики. Например, на стандартной подложке только 5 % произведенных чипов могут функционировать на частоте более 3,2 ГГц. В то же время 50 % чипов могут функционировать на частоте 2,8 ГГц.
Производители процессоров постоянно выясняют причины, почему основная часть производимых процессоров работает на частоте 2,8 ГГц вместо требуемой 3,2 ГГц. Иногда для увеличения производительности в конструкцию процессора могут быть внесены изменения.
Рентабельность производства
Рентабельность бизнеса по производству процессоров и большинства полупроводниковых элементов лежит в пределах 33-50 %. Это означает, что, по меньшей мере, от 1/3 до 1/2 пластин на каждой подложке рабочие, а компания в этом случае рентабельна.
У компании Intel операционная прибыль при применении технологии 45 нм для подложки 300 мм составляет 95 %. Это означает, что если из одной подложки возможно изготовить 500 кремниевых пластин, 475 из них будут рабочими и только 25 будут выброшены. Чем больше пластин можно получить с одной подложки, тем большую прибыль будет иметь компания.
Технологии Intel, используемые в наши дни

История применения новых технологий Intel для массового производства процессоров:
- 1999 г. – 180 нм;
- 2001 г. – 130 нм;
- 2003 г. – 90 нм;
- 2005 г. – 65 нм;
- 2007 г. – 45 нм;
- 2009 г. – 32 нм;
- 2011 г. – 22 нм;
- 2014 г. – 14 нм;
- 2019 г. – 10 нм (планируется).
В начале 2018 г. компания Intel объявила о переносе массового производства 10-нм процессоров на 2019 год. Причина этого – в большой стоимости производства. На данный момент компания продолжает поставлять 10-нм процессоры в небольших объемах.
Охарактеризуем технологии производства процессоров Intel с точки зрения стоимости. Дороговизну технологического процесса руководство компании объясняет длинным производственным циклом и применением большого количества масок. В основе 10-нм технологии лежит глубокая ультрафиолетовая литография (DUV) с применением лазеров, работающих на длине волны 193 нм.
Для 7-нм процесса будет использоваться экстремальная ультрафиолетовая литография (EUV) с применением лазеров, работающих на длине волны 13,5 нм. Благодаря такой длине волны удастся избежать применения мультипаттернов, широко используемых для 10-нм процесса.
Инженеры компании считают, что на данный момент нужно отшлифовать технологию DUV, а не прыгать напрямую на 7-нм процесс. Таким образом, пока будут снятыми с производства процессоры, использующие 10-нм технологию.

Перспективы микропроцессорного производства компании AMD
Единственным реальным конкурентом «Интел» на рынке производства процессоров на сегодняшний день является AMD. Из-за ошибок «Интел», связанных с 10-нм технологией, AMD немного поправила свое положение на рынке. У Intel массовое производство с использованием технологического процесса 10 нм сильно запоздало. Компания AMD, как известно, использует для производства своих чипов третью сторону. И теперь сложилась ситуация, когда AMD для производства использует во всю 7-нм технологии производства процессоров, не уступающие главному конкуренту.
Основными сторонними производителями полупроводниковых устройств с использованием новых технологий для сложной логики являются Тайваньская компания производства полупроводников (TSMC), американская компания GlobalFoundaries и корейская Samsung Foundry.
AMD планирует использовать TSMC исключительно для производства микропроцессоров следующего поколения. При этом будут применяться новые технологии производства процессоров. Компания уже выпустила ряд продуктов с применением 7-нм процесса, включая 7-нм графический процессор. Первый планируется выпустить в 2019 г. Уже через 2 года планируется начать массовое производство 5-нм микросхем.
GlobalFoundaries отказалась от разработки процесса 7 нм, чтобы сосредоточить свои усилия на развитии своих 14/12 нм процессов для клиентов, ориентированных на быстрорастущие рынки. AMD вкладывает в GlobalFoundaries дополнительные инвестиции для производства процессоров AMD текущего поколения Ryzen, EPYC и Radeon.

Производство микропроцессоров в России
Основные микроэлектронные производства расположены в городах Зеленоград («Микрон», «Ангстрем») и Москва («Крокус»). Собственное микроэлектронное производство имеется также и в Беларуси – компания «Интеграл», использующая технологический процесс 0,35 мкм.
Производством процессоров в России занимаются компании «МЦСТ» и «Байкал Электроникс». Последняя разработка «МЦСТ» – процессор «Эльбрус-8С». Это 8-ядерный микропроцессор с тактовой частотой 1,1-1,3 ГГц. Производительность российского процессора составляет 250 гигафлопс (операций с плавающей запятой в секунду). Представителями компании заявляется, что по ряду показателей процессор может конкурировать даже с лидером отрасли – компанией Intel.
Производство процессоров «Эльбрус» продолжится моделью «Эльбрус-16» частотой 1,5 ГГц (цифровой индекс в названии обозначает количество ядер). Массовое изготовление этих микропроцессоров будет осуществляться в Тайване. Это должно способствовать уменьшению цены. Как известно, цена на продукцию компании заоблачная. При этом, по характеристикам комплектующие значительно уступают ведущим компаниям в этом секторе экономики. Пока такие процессоры будут использоваться только в государственных организациях и для оборонных целей. В качестве технологии производства процессоров этой линейки будет применяться 28-нм технологический процесс.
«Байкал Электроникс» производит процессоры, предназначенные для использования в промышленности. В частности, это относится к модели «Байкал Т1». Область ее применения – маршрутизаторы, системы с ЧПУ и офисная техника. Компания на этом не останавливается и уже разрабатывается процессор для персональных компьютеров – «Байкал М». Сведений о его характеристиках пока немного. Известно, что у него будет 8-ядерный процессор с поддержкой до 8 графических ядер. Преимущество этого микропроцессора будет заключаться в его энергоэффективности.