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

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

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

ПроцессорГодТранзисторовЧто это было
Intel 400419712 3004-битный, 46 инструкций, делался по заказу
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 00022 нм, больше кэша, встроенная графика
Apple M1202016 000 000 0005 нм
Apple M2202220 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 году Гордон Мур заметил, что число транзисторов на кристалле растёт предсказуемо, и сформулировал наблюдение, которое затем стали называть законом Мура: число транзисторов на кристалле удваивается примерно раз в год. В 1975 году Мур пересмотрел прогноз: удвоение занимает около двух лет. Пятьдесят лет график следовал этому правилу буквально, и на нём строилась вся индустрия.

Дальше правило начало работать наполовину. Транзисторы по-прежнему добавляют, но удвоение перестало означать удвоение скорости: частоту ограничивает выделение тепла, транзисторы пришлось делать трёхмерными, чтобы запихнуть их больше на ту же площадь. С 2015 года чаще удваивают не кристалл целиком, а его части: несколько чипов на одной подложке и вертикальные стопки памяти. В современных многочиповых сборках (вроде Apple M1/M2 Ultra или чиплетных AMD Ryzen и Intel Core Ultra) десятки миллиардов транзисторов получают объединением нескольких кристаллов на одной подложке.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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