Сколько транзисторов в процессоре: от 2300 до 20 миллиардов

Вопрос «сколько транзисторов в процессоре» задают чаще всего новички, и на него есть точный ответ: в Intel 4004, первом процессоре, поставленном на продажу в 1971 году, было 2300 транзисторов, а в современных микросхемах счёт идёт на десятки миллиардов. За пятьдесят лет это рост примерно в десять миллионов раз. Ниже — как менялись числа, из чего на самом деле состоит кристалл, почему транзисторов больше, чем работы, и сколько понадобилось бы процессору, который вы собираете в этом курсе. Путь от транзистора до процессора идёт через четыре навыка — они собраны на странице «Схемотехника».

Как менялись числа

ПроцессорГодТранзисторовЧто это было
Intel 400419712 3004-битный, 16 инструкций, делался по заказу
Intel 8086197829 00016-битный, основа IBM PC
Intel 803861985275 00032-битный с виртуальной памятью
Intel Pentium19933 100 000Конвейер, два блока выполнения
Intel Pentium 4200042 000 000Частота важнее энергопотребления
Intel Core 22006291 000 000Два ядра, 65-нанометровая технология
Intel Haswell20131 420 000 00014 нм, больше кэша, встроенная графика
Apple M1202016 000 000 000Кристалл 119 мм², 5 нм
Apple M2202320 000 000 000Следующее поколение, тот же подход

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

4004 8086 Pentium Pentium 4 Core 2 Haswell M1 M2 2 300 29 000 3,1 млн 42 млн 291 млн 1,42 млрд 16 млрд 20 млрд 10³ 10⁴ 10⁵ 10⁶ и выше
Рост числа транзисторов в логарифмическом масштабе: шаг между делениями — десятикратное увеличение

Закон Мура и его границы

В 1965 году Гордон Мур заметил, что число транзисторов на кристалле растёт предсказуемо, и сформулировал наблюдение, которое затем стали называть законом Мура: примерно раз в два года ёмкость микросхемы удваивается. Пятьдесят лет график следовал этому правилу буквально, и на нём строилась вся индустрия.

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

Один расчёт показывает, где взялась эта цифра. Площадь кристалла M1 — 119 мм², транзисторов 16 миллиардов, а значит плотность около 134 миллионов транзисторов на квадратный миллиметр. Чтобы уместить 20 миллиардов транзисторов с такой плотностью, нужно примерно 150 мм²: площадь небольшой ногтевой пластинки, и она всё ещё не помещается в голову без калькулятора.

Из чего состоит кристалл

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

Часть кристаллаИз чего сделанаДоля объёма
Кэш-памятьСтатическая память: один бит — несколько транзисторовОсновная часть транзисторов ядра
Оперативная память рядомОтдельные кристаллы DRAM, иногда сложенные в стопкуСчитается отдельно от ядра
Логика и арифметикаВентили на полевых транзисторахДесятки процентов
Аналоговая частьГенераторы, компараторы, преобразователиМалый объём, но обязательна
Ввод и выводДрайверы сигналов, преобразователи уровнейНемного, но они решают, что плата вообще заработает

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

Больше транзисторов — не значит больше работы

Распространённое объяснение гласит, что процессор грузит один процент транзисторов. Исследование Карла Фрица из Университета Эрлангена-Нюрнберга, опубликованное в журнале IEEE Micro в 2017 году, показало другую картину: в процессоре Haswell примерно пятая часть транзисторов в произвольный момент не работает, потому что площадь под них есть, а выполняемая программа до них не доходит.

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

Сколько нужно процессору из курса

Учебный процессор с 15 командами, 8-битными регистрами и гарвардской памятью относится к классу, который в конце 1970-х делали на транзисторах NMOS. Для сравнения: в 6502 было 3510 транзисторов, в Z80 — 8486. Обе микросхемы умели то, что умеет процессор этого курса: считать, сравнивать, ветвиться, работать с памятью по адресу.

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

Сколько транзисторов было в первом процессоре?

В Intel 4004, вышедшем в 1971 году, было 2300 транзисторов. Это был 4-битный процессор с 16 инструкциями, рассчитанный на калькуляторы, и для одной только он делался по заказу японской компании Busicom.

Зачем в процессоре так много транзисторов, если он выполняет простые операции?

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

Все ли транзисторы процессора работают?

Нет. Исследование Карла Фрица, опубликованное в IEEE Micro в 2017 году, показало, что около 20 % транзисторов процессора Haswell не задействованы в произвольный момент работы программы: под них есть площадь, но конкретная задача до них не доходит.

Сколько транзисторов понадобилось бы процессору из этого курса?

Процессоры этого класса делали на NMOS в конце 1970-х: у 6502 было 3510 транзисторов, у Z80 — 8486. Учебный процессор курса с 15 командами и 8-битными регистрами относится к тому же классу, то есть речь идёт о тысячах транзисторов, а не о миллиардах.

Проверьте себя

Почему один бит памяти стоит дороже, чем один вентиль?

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

Что было раньше транзистора?

До появления транзистора логику строили на электромеханических реле, а позже на вакуумных лампах. Релейный компьютер из 1940-х годов занимал комнату, потреблял киловатт и считала секунды на операцию. Транзистор в 1947 году заменил один узел размером с ящик элементом размером с ноготь, и число таких элементов на кристалле стало расти по закону Мура.

Почему современный процессор нельзя назвать «миллиароны раз быстрее» 4004?

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

Как из транзистора получается логический элемент, разобрано в статье от транзистора к вентилю, как устроен процессор целиком — в статье как работает процессор, а как устроен кристалл целиком, а не только ядро, — в статье Tang Nano 9K от ZIP до платы.

Попробовать в симуляторе →