По знаменитому выражению Марка Андриссена, программное обеспечение пожирает мир. Но пока это сдерживает Intel — ее расширения набора команд x86 берут на себя все больше работы. В чем причины и, главное, хорошо ли это?
Принято считать, что архитектура набора команд (instruction set architecture, ISA) процессорной платформы x86 устоялась на долгое время. (ISA определяет команды, а также регистры, память и другие ключевые ресурсы.)
Однако Intel постоянно изменяет x86 ISA. «Умные» компиляторы скрывают многие из этих изменений, но некоторые из них весьма сложны. В недавней работе исследователя Microsoft Эндрю Баумана ставится вопрос, имеет ли смысл постоянно добавлять к ISA все больше сложных расширений.
Для чего?
Хотя действие закона Мура замедляется, миниатюризация технологических процессов продолжает увеличивать число транзисторов на чипе заданного размера. За последние 20 лет x86-процессоры прошли путь от менее 10 млн. до почти 10 млрд. транзисторов на чипе.
До 2010 г. все время росли и тактовые частоты, и, значит, чипы не только усложнялись, но и работали все быстрее. Однако с 2010 г. прирост тактовой частоты стал минимальным. Так что же делать с добавленными транзисторами?
Ответ Intel главным образом состоял в добавлении к x86 ISA новых функций. Некоторые были очевидными, например,
Мотивация Intel — как и остальных игроков рынка — проста: без новых функций у людей нет стимулов покупать новые компьютеры.
RISC против CISC
Однако у стратегии Intel есть и теневая сторона. Она в некотором смысле повторяет войну
Миникомпьютеры, такие как DEC VAX и мэйнфреймы IBM, имели CISC ISA. Когда их разрабатывали, ПО работало намного медленнее аппаратуры, и потому имело смысл закладывать сложные команды в «железо».
Однако для выполнения этих команд может требоваться более десятка рабочих циклов процессора, что ослабляет преимущества аппаратуры. Еще важнее то обстоятельство, что с переходом к однопроцессорному построению систем увеличение быстродействия CISC-процессоров давалось все сложнее.
Дэвид Паттерсон, профессор Калифорнийского университета в Беркли и мастер по созданию броских акронимов (в их числе RAID), придумал термин RISC для описания ISA с небольшим набором простых команд и интерфейсом памяти на базе инструкций загрузки (load) и сохранения (store). И так уж получилось, что большинство CISC-архитектур отмерло, поскольку MIPS, ARM и x86 вобрали в себя концепции RISC, причем x86 в менее чистом виде, но в достаточной мере, чтобы господствовать на настольных ПК, ноутбуках и серверах.
Что в итоге
С наступлением мобильной революции (поздравим iPhone с десятилетием!) Intel по причине излишней сложности x86 стала неспособна соревноваться с ARM. Это не имело особого значения во времена роста продаж ПК, но ныне Intel испытывает проблемы.
Как аппаратурная компания, Intel всегда имела пристрастие к «жирным», энергоемким процессорам, и добавление более 200 новых команд к x86 ISA соответствовало такому менталитету. Но это вряд ли является для Intel позитивным фактором в перспективах на будущее.
Больше транзисторов использует больше энергии. Intel проделала основательную работу по снижению TDP (требований по теплоотводу) для x86-процессоров, но это ей позволяет лишь защищать свои базовые рынки, а не завоевывать новые. Intel необходимо очень серьезно и на самом высоком уровне пересмотреть свою стратегию.
Бауман из Microsoft имеет радикальное предложение, которое могло бы стать отличной точкой старта: ISA «... уже не является границей между аппаратурой и ПО, это просто еще один уровень трансляции в стеке».
Иными словами, теперь все становится программным обеспечением, даже центральный процессор.