ПРОЦЕССОРЫ
Редакция THG, 4 сентября 2009
Введение
Нажмите на картинку для увеличения.
Песок… Кремний, после кислорода, является самым распространённым химическим элементом в земной коре (25% по массе). Песок, а особенно кварц, содержит большой процент диоксида кремния (SiO2), который является базовым ингредиентом для производства полупроводников.
Нажмите на картинку для увеличения.
После добычи песка происходит очистка кремния от примесей — кремний очищается в несколько этапов, чтобы достичь достаточного качества для производства полупроводников — его называют кремний полупроводниковой чистоты. Он настолько очищен от примесей, что допускается только один чужеродный атом на каждый миллиард атомов кремния. После процесса очистки начинается фаза плавления кремния. На фотографии выше можно видеть крупный кристалл, выросший из расплавленного очищенного кремния.
Нажмите на картинку для увеличения.
Получившаяся болванка монокристалла весит около 100 килограмм, чистота кремния составляет 99,9999 процентов.
Нажмите на картинку для увеличения.
Затем болванка переходит на стадию пиления, когда из неё вырезаются тонкие отдельные диски кремния, называемые подложками (или «вафлями», wafers). Кстати, некоторые болванки бывают выше полутора метров. Монокристаллы выращивают разного диаметра — всё зависит от нужного диаметра подложек. Сегодня процессоры изготавливаются, как правило, из 300-мм подложек.
Нажмите на картинку для увеличения.
После вырезания подложки полируются, пока их поверхность не достигнет зеркально гладкого состояния. Intel не производит подложки и болванки самостоятельно, вместо этого закупая подложки у сторонних компаний. Улучшенный 45-нм техпроцесс High-K/Metal Gate у Intel подразумевает использование подложек диаметром 300 мм (или 12 дюймов). Когда Intel впервые занялась производством чипов, то использовались подложки диаметром 50 мм (2 дюйма). Сегодня Intel использует 300-мм подложки, что позволяет снизить стоимость изготовления чипов.
Нажмите на картинку для увеличения.
Голубая жидкость, показанная выше, формирует фоторезистивный слой, наподобие того, что используется в фотоплёнке. Подложка во время нанесения жидкости вращается, что позволяет получить равномерное покрытие, которое и гладкое, и очень тонкое.
Нажмите на картинку для увеличения.
Затем подложка с фоторезистивным слоем подвергается облучению ультрафиолетом. Химическая реакция, которая происходит в слое под воздействием ультрафиолета, очень похожа на реакцию в плёнке, когда вы щёлкаете затвором фотоаппарата.
Области фоторезистивного материала подложки, которые подверглись облучению ультрафиолетом, становятся растворимыми. Облучение частей подложки происходит с помощью специальной маски, которая работает трафаретом. Под ультрафиолетовым излучением маски позволяют создавать различные структурные области микрочипа. Во время производства процессора этот этап повторяется по мере нанесения слоёв друг на друга.
Линза (в середине) уменьшает маску до небольшой фокусной области. В итоге «отпечаток» на подложке обычно в четыре раза меньше (линейно), чем трафарет маски.
Нажмите на картинку для увеличения.
На иллюстрации выше показан один транзистор так, если бы мы могли видеть его невооружённым глазом. Транзистор работает как переключатель, управляя течением электрического тока в компьютерном микропроцессоре. Инженеры Intel разработали настолько маленькие транзисторы, что на кончике иголки их умещается около 30 миллионов.
| Нажмите на картинку для увеличения.
После облучения ультрафиолетом голубой фоторезистивный слой, на который попало излучение, полностью растворяется специальной жидкостью. В итоге остаются участки слоя, закрытые маской. Это самое начало нанесения транзисторов, межсоединений и других участков электрической цепи процессора.
| Нажмите на картинку для увеличения.
Фоторезистивный слой защищает материалы подложки, которые не должны быть вытравлены. А облученные области вытравливаются с помощью химикатов.
| Нажмите на картинку для увеличения.
После травления удаляется и фоторезистивный голубой слой, после чего становится видна требуемая форма.
Повторное травление и ионное легирование
| Нажмите на картинку для увеличения.
Затем вновь наносится слой фоторезистивного материала (голубой), и вновь происходит облучение ультрафиолетом через маску. Затем облучённый фоторезистивный слой снова смывается и начинается другой процесс, называемый ионным легированием. На данном шаге участки подложки обогащаются ионами, в результате чего кремний меняет свои физические свойства, позволяя процессору управлять потоками электрического тока.
| Нажмите на картинку для увеличения.
Во время внедрения ионов (часть процесса ионного легирования) открытые области кремниевой подложки бомбардируются потоками ионов. Ионы проникают в кремний, после чего как раз меняют свойства проводимости участка кремниевой подложки. Ионы сталкиваются с подложкой на очень высокой скорости. Электрическое поле ускоряет ионы до скорости более 300 000 км/ч.
| Нажмите на картинку для увеличения.
После внедрения ионов фоторезистивный слой удаляется, а материал, подвергшийся легированию (зелёный) теперь насыщен чужеродными атомами.
| Нажмите на картинку для увеличения.
Транзистор всё ближе к своему завершению. На изолирующем слое над транзистором (фиолетовый) вытравливаются три области. Три этих отверстия будут заполнены медью, которая позволит проводить электрические соединения с другими транзисторами.
| Нажмите на картинку для увеличения.
Подложки на этом этапе погружаются в слой сульфата меди. Ионы меди осаждаются на транзистор через процесс, называемый гальванопокрытием. Медные ионы проходят от положительного электрода (анод) к негативному электроду (катод), которым как раз и является подложка.
| Нажмите на картинку для увеличения.
Ионы меди осаждаются в виде тонкого слоя на поверхности подложки.
| Нажмите на картинку для увеличения.
Затем происходит полировка, и лишняя медь удаляется с поверхности.
| Нажмите на картинку для увеличения.
Нанесение металла происходит в несколько этапов, что позволяет создавать межсоединения (их можно представить как соединительные провода) между отдельными транзисторами. Раскладка таких межсоединений определяется архитектурой микропроцессора, вернее, командой разработчиков, ответственных за тот или иной процессор (например, Intel Core i7). Хотя компьютерный процессор кажется очень плоским, на самом деле он может состоять из более чем 20 слоёв. Если вы посмотрите на увеличенную фотографию чипа, то обнаружите сложную систему межсоединений и транзисторов, которая выглядит как футуристическая многослойная система шоссе и транспортных развязок.
Тестирование подложек
| Нажмите на картинку для увеличения.
На иллюстрации участок готовой подложки проходит первый тест функциональности. На данном этапе тестовые пробы подводятся к каждому чипу, после чего оцениваются ответные сигналы чипа и сравниваются с правильными.
| Нажмите на картинку для увеличения.
После того, как тесты определят, что подложка содержит достаточное число правильно функционирующих блоков, её разрезают на части (кристаллы).
| Нажмите на картинку для увеличения.
Кристаллы, которые прошли тесты, перейдут на следующий шаг упаковки. Плохие кристаллы отбраковываются. Несколько лет назад Intel даже выпустила брелоки из плохих кристаллов CPU.
| Нажмите на картинку для увеличения.
На иллюстрации приведен отдельный кристалл, который был вырезан с подложки. Если быть более конкретным, то перед нами кристалл Core i7.
| Нажмите на картинку для увеличения.
Подложка, кристалл и распределитель тепла соединяются вместе, чтобы сформировать готовый процессор. Зелёная подложка обеспечивает механический и электрический интерфейс процессора с остальной системой. Серебристый распределитель тепла является тепловым интерфейсом с кулером. Он охлаждает кристалл во время работы.
| Нажмите на картинку для увеличения.
Микропроцессор можно назвать самым сложным продуктом производства на Земле. Фактически, производство состоит из сотен шагов, и в нашей статье мы смогли охватить только самые важные из них.
| Нажмите на картинку для увеличения.
Во время финального теста процессоры проверяются по ключевым характеристикам (среди них присутствует тепловыделение и максимальная частота).
| Нажмите на картинку для увеличения.
По результатам тестов процессоры с одинаковыми характеристиками складываются в одни лотки. По-английски данный процесс называют binning, после определения максимальной частоты процессоров они маркируются по моделям и уже продаются в соответствии со спецификациями.
| Нажмите на картинку для увеличения.
Готовые и протестированные процессоры (опять же, на иллюстрации показаны процессоры Core i7) поставляются либо сборщикам систем, либо в розницу.
1. Введение.
Современный процессор – это сложное и высокотехнологическое устройство, включающее в себя все самые последние достижения в области вычислительной техники и сопутствующих областей науки.
Большинство современных процессоров состоит из:
одного или нескольких ядер, осуществляющих выполнение всех инструкций;
нескольких уровней КЭШ-памяти (обычно, 2 или три уровня), ускоряющих взаимодействие процессора с ОЗУ;
контроллера ОЗУ;
контроллера системной шины (DMI, QPI, HT и т.д.);
И характеризуется следующими параметрами:
типом микроархитектуры;
тактовой частотой;
набором выполняемых команд;
количеством уровней КЭШ-памяти и их объемом;
типом и скоростью системной шины;
размерами обрабатываемых слов;
наличием или отсутствием встроенного контроллера памяти;
типом поддерживаемой оперативной памяти;
объемом адресуемой памяти;
наличием или отсутствием встроенного графического ядра;
энергопотреблением.
Упрощенная структурная схема современного многоядерного процессора представлена на рисунке 1.
Начнем обзор устройства процессора с его основной части – ядра.
2. Ядро процессора.
Ядро процессора – это его основная часть, содержащая все функциональные блоки и осуществляющая выполнение всех логических и арифметических операций.
На рисунке 1 приведена структурная схема устройства ядра процессора. Как видно на рисунке, каждое ядро процессора состоит из нескольких функциональных блоков:
блока выборки инструкций;
блоков декодирования инструкций;
блоков выборки данных;
управляющего блока;
блоков выполнения инструкций;
блоков сохранения результатов;
блока работы с прерываниями;
ПЗУ, содержащего микрокод;
набора регистров;
счетчика команд.
Блок выборки инструкций осуществляет считывание инструкций по адресу, указанному в счетчике команд. Обычно, за такт он считывает несколько инструкций. Количество считываемых инструкций обусловлено количеством блоков декодирования, так как необходимо на каждом такте работы максимально загрузить блоки декодирования. Для того чтобы блок выборки инструкций работал оптимально, в ядре процессора имеется предсказатель переходов.
Предсказатель переходов пытается определить, какая последовательность команд будет выполняться после совершения перехода. Это необходимо, чтобы после условного перехода максимально нагрузить конвейер ядра процессора.
Блоки декодирования, как понятно из названия, – это блоки, которые занимаются декодированием инструкций, т.е. определяют, что надо сделать процессору, и какие дополнительные данные нужны для выполнения инструкции. Задача эта для большинства современных коммерческих процессоров, построенных на базе концепции CISC, – очень сложная. Дело в том, что длина инструкций и количество операндов – нефиксированные, и это сильно усложняет жизнь разработчикам процессоров и делает процесс декодирования нетривиальной задачей.
Часто отдельные сложные команды приходится заменять микрокодом – серией простых инструкций, в совокупности выполняющих то же действие, что и одна сложная инструкция. Набор микрокода прошит в ПЗУ, встроенном в процессоре. К тому же микрокод упрощает разработку процессора, так как отпадает надобность в создании сложноустроенных блоков ядра для выполнения отдельных команд, да и исправить микрокод гораздо проще, чем устранить ошибку в функционировании блока.
В современных процессорах, обычно, бывает 2-4 блока декодирования инструкций, например, в процессорах Intel Core 2 каждое ядро содержит по два таких блока.
Блоки выборки данных осуществляют выборку данных из КЭШ-памяти или ОЗУ, необходимых для выполнения текущих инструкций. Обычно, каждое процессорное ядро содержит несколько блоков выборки данных. Например, в процессорах Intel Core используется по два блока выборки данных для каждого ядра.
Управляющий блок на основании декодированных инструкций управляет работой блоков выполнения инструкций, распределяет нагрузку между ними, обеспечивает своевременное и верное выполнение инструкций. Это один из наиболее важных блоков ядра процессора.
Блоки выполнения инструкций включают в себя несколько разнотипных блоков:
ALU – арифметическое логическое устройство;
FPU – устройство по выполнению операций с плавающей точкой;
Блоки для обработки расширения наборов инструкций. Дополнительные инструкции используются для ускорения обработки потоков данных, шифрования и дешифрования, кодирования видео и так далее. Для этого в ядро процессора вводят дополнительные регистры и наборы логики. На данный момент наиболее популярными расширениями наборов инструкция являются:
MMX (Multimedia Extensions) – набор инструкций, разработанный компанией Intel, для ускорения кодирования и декодирования потоковых аудио и видео-данных;
SSE (Streaming SIMD Extensions) – набор инструкций, разработанный компанией Intel, для выполнения одной и той же последовательности операций над множеством данных с распараллеливанием вычислительного процесса. Наборы команд постоянно совершенствуются, и на данный момент имеются ревизии: SSE, SSE2, SSE3, SSSE3, SSE4;
ATA (Application Targeted Accelerator) – набор инструкций, разработанный компанией Intel, для ускорения работы специализированного программного обеспечения и снижения энергопотребления при работе с такими программами. Эти инструкции могут использоваться, например, при расчете контрольных сумм или поиска данных;
3DNow – набор инструкций, разработанный компанией AMD, для расширения возможностей набора инструкций MMX;
AES (Advanced Encryption Standard) – набор инструкций, разработанный компанией Intel, для ускорения работы приложений, использующих шифрование данных по одноименному алгоритму.
Блок сохранения результатов обеспечивает запись результата выполнения инструкции в ОЗУ по адресу, указанному в обрабатываемой инструкции.
Блок работы с прерываниями. Работа с прерываниями – одна из важнейших задач процессора, позволяющая ему своевременно реагировать на события, прерывать ход работы программы и выполнять требуемые от него действия. Благодаря наличию прерываний, процессор способен к псевдопараллельной работе, т.е. к, так называемой, многозадачности.
Обработка прерываний происходит следующим образом. Процессор перед началом каждого цикла работы проверяет наличие запроса на прерывание. Если есть прерывание для обработки, процессор сохраняет в стек адрес инструкции, которую он должен был выполнить, и данные, полученные после выполнения последней инструкции, и переходит к выполнению функции обработки прерывания.
После окончания выполнения функции обработки прерывания, из стека считываются сохраненные в него данные, и процессор возобновляет выполнение восстановленной задачи.
Регистры – сверхбыстрая оперативная память (доступ к регистрам в несколько раз быстрее доступа к КЭШ-памяти) небольшого объема (несколько сотен байт), входящая в состав процессора, для временного хранения промежуточных результатов выполнения инструкций. Регистры процессора делятся на два типа: регистры общего назначения и специальные регистры.
Регистры общего назначения используются при выполнении арифметических и логических операций, или специфических операций дополнительных наборов инструкций (MMX, SSE и т.д.).
Регистры специального назначения содержат системные данные, необходимые для работы процессора. К таким регистрам относятся, например, регистры управления, регистры системных адресов, регистры отладки и т.д. Доступ к этим регистрам жестко регламентирован.
Счетчик команд – регистр, содержащий адрес команды, которую процессор начнет выполнять на следующем такте работы.