Ещё несколько десятилетий назад производительность компьютеров росла настолько быстро, что разработчики создавали более мощное железо с каждым новым поколением процессоров. Но сегодня простого уменьшения размеров транзисторов уже недостаточно.
В этой статье разберёмся, что такое закон Мура, почему он долго работал и как его замедление повлияло на развитие процессоров и программирования.
Закон Мура — это наблюдение Гордона Мура, основателя Fairchild Semiconductor, и Intel, о развитии полупроводниковой индустрии.
Простыми словами закон Мура гласит, что количество транзисторов удваивается каждые 2 года
В 1965 году он заметил, что количество транзисторов на интегральных схемах с течением времени быстро увеличивается.
Изначально Мур предположил, что число компонентов на микросхеме будет удваиваться каждый год. Позже прогноз был скорректирован: ориентиром стало удвоение примерно раз в 2 года.
Зависимость числа транзисторов на кристалле микропроцессора от времени, где количество транзисторов удваивается каждые 2 года
Какое значение имеет количество транзисторов в программировании?
Транзистор — один из базовых элементов современной электроники. Из их огромного количества состоят процессоры и другие микросхемы. Чем больше транзисторов удается разместить на одном кристалле, тем сложнее и производительнее вычислительные системы
Закон Гордона Мура касается аппаратного обеспечения, но его последствия напрямую ощущают разработчики, когда прорабатывают эффективность кода. Современные приложения одновременно обслуживают миллионы запросов, работают с большими объемами данных и запускают множество операций параллельно. Поэтому специалисты регулярно сталкиваются с ограничениями: неудачная архитектура, лишние операции с памятью, блокировки или неправильная работа с конкурентностью становятся узким местом независимо от мощности процессора.
Когда физическое уменьшение размеров транзисторов замедляется, всё больше производительности приходится получать за счет архитектуры процессоров, многопоточности и оптимизации программного обеспечения.
Почему транзисторов становилось всё больше?
Уменьшение размеров транзисторов привело к росту их количества. Процессоры производят на кремниевых пластинах с помощью сложных технологических процессов, одним из ключевых этапов которых является фотолитография. С её помощью на поверхности материала формируется очень мелкий рисунок будущей схемы.
Чем меньше элементы, тем больше их можно разместить на одной и той же площади. Поэтому развитие технологий производства позволяло постоянно увеличивать плотность транзисторов.
Например, в первом ASUS ZenBook, вышедшем в 2011 году, использовался процессор Intel Core i7−2677M с 624 миллионами транзисторов. Для сравнения: в 1965 году, когда Гордон Мур сформулировал своё наблюдение, в актуальном процессоре было всего 64 транзистора.
Спустя десять лет в ZenBook Duo 14 появился Intel Core i7−1165G7 уже с 8,2 миллиарда транзисторов. Это примерно в 13 раз больше — огромный рост за десятилетие.
Но по классическому закону Мура показатель должен был вырасти ещё сильнее — примерно до 19,9 миллиарда транзисторов. Значит, темпы роста замедлились. Почему это произошло?
Почему закон Мура начал замедляться?
Долгое время закон Мура работал почти как часы: транзисторы становились меньше, а их количество и производительность процессоров росли.
Но уменьшать транзисторы бесконечно невозможно. По мере сокращения их размеров инженеры сталкиваются с физическими ограничениями:
Сложность в контроле энергопотребления и утечки тока
Когда элементы схемы становятся очень маленькими и расположены близко друг к другу, всё сложнее контролировать движение электронов и сохранять эффективность работы
Сильный нагрев
Если просто постоянно увеличивать вычислительную нагрузку и тактовую частоту, процессор начинает потреблять больше энергии и сильнее нагреваться
Поэтому стратегия «просто сделать транзисторы меньше и поднять частоту» перестала работать так эффективно, как раньше.
Что пришло на смену увеличения количества?
Когда возможности прежнего подхода ограничились, разработчики нашли способы поднять производительность:
Увеличение количества ядер
Вместо одного очень быстрого вычислительного блока процессор получил несколько ядер, которые могут выполнять разные задачи параллельно
Многопоточность
Она позволяет эффективнее использовать вычислительные ресурсы и одновременно обрабатывать несколько потоков работы
Специализация вычислений
Специализированные ускорители используются для обработки изображений, видео, машинного обучения и других задач
Программное обеспечение
Быстрее работает не только тот компьютер, у которого больше транзисторов, но и тот, для которого правильно подобраны алгоритмы и оптимизирован код
Развитие производительности складывается из нескольких факторов, а не только из уменьшения транзисторов.
Как современные технологии продолжают развитие?
Несмотря на ограничения, производители продолжают уменьшать размеры элементов через освоение новых методов:
EUV-литография или экстремальная ультрафиолетовая литография
Метод использует излучение с длиной волны около 13,5 нм и позволяет создавать более мелкие элементы на современных чипах
Чиплетная архитектура
Вместо одного большого кристалла процессор можно собрать из нескольких меньших вычислительных блоков, что позволяет гибче проектировать современные чипы
Но что будет, когда транзисторы больше нельзя будет уменьшать?
Тогда производители продолжат увеличивать мощность за счёт новых архитектур, специализированных ускорителей, более эффективного использования памяти, параллельных вычислений и оптимизации программ.
Особенно заметно это в области ИИ: для современных нейросетей уже создаются специализированные ускорители, которые выполняют определенные операции значительно эффективнее универсального процессора.
Заключение
Закон Мура показал, насколько быстро может развиваться вычислительная техника, когда транзисторы становятся меньше, а их количество на чипе растёт. Но физические ограничения постепенно усложнили этот процесс, поэтому одного увеличения плотности транзисторов и тактовой частоты уже недостаточно.
Сегодня производительность повышают сразу несколькими способами: за счёт многоядерности, специализированных ускорителей, новых архитектур и оптимизации программного обеспечения.
Для разработчиков это означает, что эффективность кода и умение работать с параллельными вычислениями становятся всё важнее.