Architecture and religion – 3

Главная вера

И все же важнейшей религией компании является сама x86 Instruction Set Architecture[10]. Intel изначально свято придерживался принципа backward compatibility[11] – программы, написанные для предыдущих поколений процессора, работают на следующих без изменений (ну, разве что требуют эмулятора операционки). Без этого нельзя построить никакой экосистемы, ибо ее формирование – процесс, занимающий многие годы. И именно благодаря последовательности Intel x86 ISA стала для компьютерного мира чем-то вроде христианства. Аналогию можно продолжить, сравнив разделение христианства на католическую и православную ветви – Intel и AMD (или наоборот). Но мы этого делать не будем. Однако принцип backward compatibility требует, чтобы любое изменение ISA оставалось в ней навсегда. И, наверно, нам следовало относиться к архитектуре более бережно. Когда я был маленьким, а деревья большими, один умный человек (Ronak Singhal) говорил мне, что тут, дескать, не о чем печалиться. С каждым shrink (переходом на более совершенный процесс изготовления чипов) площадь, необходимая для поддержки legacy[12] инструкций, «сжимается» в два раза. Но вот когда Intel серьезно «застрял» на 10-нм техпроцессе, мои опасения вернулись с удвоенной силой.

Отчасти, впрочем, наши промахи можно объяснить тем, что x86 – «закрытый клуб», в отличие от ARM и тем более RISC–V. Ну, например, собирается ARM «выкатить» новую версию ISA. Он будет согласовывать ее со всеми основными вендорами – Apple, Samsung, Qualcomm и т. д. Поэтому у него куда меньше шансов совершить какую-нибудь глупость. Intel, конечно, тоже советуется с основными партнерами – Microsoft, Google, Amazon. Но основные решения все же принимаются внутри. Мне это почему-то представлялось так. На унылом севере, вдали от людского жилья, стоит темная башня. Лишь на последнем этаже ее горит свет. И там наверху собрались адепты тайного ордена… В случае с «Интел» «орден» имеет вполне конкретное название – ISA CPT. Именно там принимаются самые важные архитектурные решения. На этот митинг вхожи лишь ведущие технические лидеры компании – Fellows, Senior Principal Engineers. Мне трудно всерьез назвать себя одним из адептов (так, скорее, младшим послушником). Но я всегда был юношей любопытным, и время от времени мне удавалось туда пролезть – (восьмым) содокладчиком в какой-нибудь презентации или просто «вольным слушателем». Чаще все же приходилось довольствоваться информацией из вторых-третьих рук. И сегодня я немного расскажу вам о разного рода «ересях», которые зарождались и погибали внутри «Интел».

Гибель «Титаника»

Хотя Itanium нарекли «Титаником» сразу же после анонса архитектуры 4 октября 1999-го, он не был поначалу и вполовину так плох, как его реноме. Архитектура VLIW/EPIC смотрелась необычно по сравнению с CISC и манила новыми возможностями. Мою фантазию будоражили предикатное исполнение, вращающиеся регистры и explicit software pipelining[13]. К тому же IA-64 была in-order[14] архитектурой – можно было точно предсказать, сколько будет обрабатываться один элемент достаточно длинного цикла при условии прогретых кэшей. Для кого как, а для меня эта «иллюзия контроля» почему-то всегда была важна. Тогда я еще плохо представлял себе важность software ecosystem[15] для успеха платформы. Да, понимал, что работа предстоит огромная, но шансы представлялись вполне себе неплохими.

Но все же Itanium, как и «Титаник», видимо, был проклят с самого начала. Дело в том, что против него играли как религия (not invented here[16]!), так и политика. А в средневековом государстве это необоримая сила. «Крестным отцом» Itanium был Mike Fister, тогдашний глава серверного подразделения Intel. И в начале 2000-х между ним и Полом Отеллини развернулась борьба за то, кто станет следующим CEO Intel после Kрейга Баррета. Борьбу эту Captain Itanic[17] проиграл и ушел в CEO в Cadence (который, безусловно, уважаемая компания, но все же не Intel). Также ко дну пошло его детище. А спасать было некому – Отеллини Itanium не жаловал. Уж не знаю, вследствие «разборок» начала 2000-х или по каким-то другим причинам… К тому же обнаружилась масса других проблем.

• Индустрия как-то сразу не поверила в Itanium. Портирование софта шло без особого энтузиазма. А Intel не решился на большую ставку – Itanium enabling strategy[18] всегда оставляла у меня ощущение какой-то недосказанности…

• Возможно, расчет был на x86 compatibility block[19], но именно он стал больным местом Itanium – энергии потреблял больше, чем весь остальной процессор, и грелся, как сволочь. Бинарный транслятор также не выглядел панацеей: преобразование из CISC в VLIW является одним из самых сложных (хотя на «Эльбрусе» как-то работает).

• Насколько увлекательным являлось написание микрокернелов для Itanium на ассемблере – настолько кошмарным было портирование приложений. Компилятор является основным камнем преткновения для архитектуры VLIW/EPIC. Одно из немногих исключений, которое я знаю, – опять же «Эльбрус». Но для того чтобы довести его компилятор до ума, потребовалось порядка 20 лет. «Интел» столько ждать не захотел…

• Ну и последнее – Itanium всегда выпускался с отставанием на шаг по техпроцессу от x86. И в этом трудно не усмотреть наличие «доброй» политической воли.

IA-64 влачила жалкое существование до начала 20-х. И лишь в феврале 2019-го Linus Torvalds сказал: «It’s dead, Jim[20]». Но можно было спокойно сделать это и на 10 лет раньше. И все же у меня осталось от Itanium ощущение «неспетой песни». Да, я не люблю VLIW (я тоже религиозен) и мне кажется, что рано или поздно мы бы все равно «уперлись» в его ограничения. Но все же стоило пытаться по-честному пройти этот путь…

X-Files

Архитектура StrongArm (а впоследствии XScale) – еще одно наследие, полученное Intel от DEC. Было тогда в компании подразделение Intel Communication Group[21]. Ваяло контроллеры для IO и сетевых устройств. И там неприхотливый и экономичный ARM пришелся весьма ко двору. Но именно в этот момент наступила эпоха handheld-девайсов (наладонников, как их тогда называли) – предтечи современных смартфонов. Intel попробовал – и оно как-то сразу полетело. BlackBerry, Dell, Compaq, Toshiba, Palm, Amazon Kindle – вот далеко не полный список компаний, начавших производство продуктов на базе XScale. Воодушевившись, в 2004-м Intel выпустил SIMD-расширение ISA под названием Wireless MMX. И в отделе IPP (в котором я пребывал с 2002-го по 2005-й) закипела работа по оптимизации библиотек.

И вдруг… как гром среди ясного неба в 2006-м грянула новость – Intel продает XScale бизнес Marvell за жалкие 600 миллионов долларов. Бросьте в меня камень, но я по чисто бизнесовым причинам считаю это одной из самых больших ошибок компании. Недостатки этого решения более чем очевидны.

• Мы в очередной раз «прокинули» своих клиентов (впрочем, не в первый и не в последний).

• Вместе с XScale ушла команда, наработавшая уникальную экспертизу в области мобильных устройств. И потом ее ой как не хватило…

• XScale был «входным билетиком» в мобильную экосистему. А кому как не Intel понимать ее значение. И беспечно выбросив его, мы сами захлопнули дверь перед собственным носом.

• Именно в тот момент, недооценив потенциал рынка смартфонов и планшетов, Intel обрек на неудачу свои дальнейшие (дорогостоящие) попытки стать там существенным игроком. (Способности Intel предсказывать индустриальные тренды я еще коснусь в одной из следующих глав.)


Объяснение у меня только одно, чисто религиозного характера. XScale был ARM-ом. Not made at Intel. Уже зрел в недрах компании Atom – low-power[22] процессор с «православным» набором команд. И Intel принял решение избавиться от «чужеродного» продукта (мне до сих пор представляется правильной стратегией на тот момент – тащить одновременно две линейки). Я сейчас выскажу очень спорную мысль – ни одна другая компания так бы не поступила. Но Intel, безусловно, уникален в своей вере.

Поначалу Atom достиг определенного успеха в сегменте нетбуков и неттопов. Тут надо понимать, что Intel все еще играл на своем поле – батарейки у этих устройств мощнее, чем у телефона, а стандартной операционкой является Windows co всем набором классического x86 софта. А вот дальнейшее «наступление» в область смартфонов и планшетов успеха не имело. Экосистема уже полностью сложилась вокруг ARM, и даже трюк Houdini – бинарный транслятор ARM > x86 – не спас положения.

Но главная беда даже не в этом. Дело в том, что мобильные процессоры – это с необходимостью System on Chip[23] (SoC). По сути, не так важно, какое ядро тащит операционную систему: ARM или Atom – Android неплохо оптимизирован под оба. Важно то, что большинство стандартных функций – поддержка wireless[24], медиа-кодеки, шифрование/дешифрование – выполняются на отдельных IP-блоках. Мне довелось попасть на «разбор полетов» (вроде бы он тоже был на ISA CPT) по поводу этих функций. И там все говорили одно и то же – здесь конкуренты сделали на доллар дешевле, здесь на полватта эффективнее и т. п. Что совершенно неудивительно – пока мы решали вопрос религиозной чистоты, потом восстанавливали легкомысленно потерянную экспертизу, потом заново выстраивали экосистему, наши конкуренты занимались оптимизацией. Так что, как и в случае с Xeon Phi, к неудачам Intel в мобильном сегменте ISA как таковая не имеет особого отношения. Просто мы упустили время, которое потом не смогли наверстать…

Индульгенция

Мне не сосчитать различных ISA, которые нашли свой конец в Intel, не выдержав противостояния с х86. Впрочем, есть одно исключение – встроенной интеловской графике всегда позволялось иметь instructions set[25], отличный от ортодоксального. Как будто она получила некую «папскую грамоту» которая хранила ее в самые темные времена костров инквизиции. Что можно объяснить бизнесовыми причинами, но все равно немного удивительно. Но тем не менее интеловская графика продолжает жить с начала 2000-х как независимая программируемая структура. Так, глядишь, и саму x86 переживет.

Варфоломеевская ночь

Ну и, конечно, мой рассказ об истории архитектуры был бы неполным, если не упомянуть о драматических столкновениях различных религиозных течений. Вообще, история развивалась циклически – вначале «еретические» архитектуры плодились (хотя бы в виде экспериментальных проектов), и потом «консерваторы» собирались с силами и брали «кровавый реванш». Я расскажу об одном случае 2013 года, когда «ортодоксы» Per Hammarlund и Bryant «Большой Полосатый Мух» Bigbee в один день «похоронили» проекты «вольнодумцев» VIP Бориса Бабаяна и Moonrun Дейва Дитцела (ex-Transmeta). Я тогда сумел просочиться на ISA CPT в день postmortem[26]. Арташесович отстрелялся минут за десять. Во-первых, он был расстроен. Во-вторых, длинные речи на английском ему не очень даются. Зато Дитцел выдал настоящее шоу. Там было все – картинки, жесты, эмоции и очень много стоящих мыслей. Наконец спустя полтора часа Дейв открыл свой последний слайд «New Architectural Ideas at Intel[27]». Слайд был пустой. В гробовой тишине заседание закончилось. Занятно, однако, что из четырех упомянутых мной Intel Fellow[28] дольше всех продержался в конторе именно Бабаян (aж до декабря 2021-го). Дитцел отвалил практически сразу после описанных событий и создал свою фирму Esperanto Technologies. Hammarlund ушел в Apple в начале 2015-го. Bigbee продержался немногим дольше…

Но мне особенно врезалось в память, как примерно спустя год после Варфоломеевской ночи на ISA CPT кто-то вдруг задал риторический вопрос:

– А помните тех, которых мы сожгли на костре в прошлый раз? Возможно, они были не так уж и неправы…

Загрузка...