По знаменитому выражению Марка Андриссена, программное обеспечение пожирает мир. Но пока это сдерживает Intel — ее расширения набора команд x86 берут на себя все больше работы. В чем причины и, главное, хорошо ли это?

Принято считать, что архитектура набора команд (instruction set architecture, ISA) процессорной платформы x86 устоялась на долгое время. (ISA определяет команды, а также регистры, память и другие ключевые ресурсы.)

Однако Intel постоянно изменяет x86 ISA. «Умные» компиляторы скрывают многие из этих изменений, но некоторые из них весьма сложны. В недавней работе исследователя Microsoft Эндрю Баумана ставится вопрос, имеет ли смысл постоянно добавлять к ISA все больше сложных расширений.

Для чего?

Хотя действие закона Мура замедляется, миниатюризация технологических процессов продолжает увеличивать число транзисторов на чипе заданного размера. За последние 20 лет x86-процессоры прошли путь от менее 10 млн. до почти 10 млрд. транзисторов на чипе.

До 2010 г. все время росли и тактовые частоты, и, значит, чипы не только усложнялись, но и работали все быстрее. Однако с 2010 г. прирост тактовой частоты стал минимальным. Так что же делать с добавленными транзисторами?

Ответ Intel главным образом состоял в добавлении к x86 ISA новых функций. Некоторые были очевидными, например, 256-разрядные векторные операции (на очереди 512 разрядов), аппаратный генератор случайных чисел или поддержка HEVC (высокоэффективное кодирование видеосигнала). С 2010 г. компания добавила к x86 ISA больше 200 новых инструкций.

Мотивация Intel — как и остальных игроков рынка — проста: без новых функций у людей нет стимулов покупать новые компьютеры.

RISC против CISC

Однако у стратегии Intel есть и теневая сторона. Она в некотором смысле повторяет войну 1980-х между архитектурами CISC (Complex Instruction Set Computing) и RISC (Reduced Instruction Set Computing) со сложным и сокращенным наборами команд.

Миникомпьютеры, такие как 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 «... уже не является границей между аппаратурой и ПО, это просто еще один уровень трансляции в стеке».

Иными словами, теперь все становится программным обеспечением, даже центральный процессор.