Made at Intel. Architecture and religion — 3

698bc967d6324a7481a2bfc3c66ffbb8.png

Сегодня я заканчиваю первую главу (пока еще не написанной :)) книжки Made at Intel. Начало и продолжение — здесь и здесь.

Главная вера

И все же важнейшей религией компании является сама x86 Instruction Set Architecture. Intel изначально свято придерживался принципа backward compatibility — программы написанные для предыдущих поколений процессора работают на следующих без изменений (ну разве что требуют эмулятора операционки). Без этого нельзя построить никакой экосистемы, ибо ее формирование процесс занимающий многие годы. И именно благодаря последовательности Intel x86 ISA стала для компьютерного мира чем то вроде христианства. Аналогию можно продолжить сравнив разделение христианства на католическую и православную ветви — Intel и AMD (или наоборот). Но мы этого делать не будем. :) Однако принцип backward compatibility требует, чтобы любое изменение ISA оставалось в ней «навсегда». И, наверно, нам следовало относиться к архитектуре более бережно. Когда я был маленьким, а деревья большими один умный человек (Ronak Singhal:)) говорил мне, что тут, дескать не о чем печалиться. С каждым shrink (переходом на более совершенный процесс изготовления чипов) площадь необходимая для поддержки legacy инструкций «сжимается» в два раза. Но вот когда 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. К тому же IA-64 была in-order архитектурой — можно было точно предсказать сколько будет обрабатываться один элемент достаточно длинного цикла при условии прогретых кэшей. Для кого как, а для меня эта «иллюзия контроля» почему-то всегда была важна. Тогда я еще плохо представлял себе важность software ecosystem для успеха платформы. Да, понимал, что работа предстоит огромная, но шансы представлялись вполне себе неплохими.

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

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

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

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

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

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

X-Files

Архитектура, а StrongArm (а впоследствии XScale) еще одно наследие, полученное Intel от DEC. Было тогда в компании подразделение Intel Communication Group. Ваяло контроллеры для 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 процессор с «православным» набором команд. И Intel принял решение избавиться от «чужеродного» продукта.(Мне до сих пор представляется правильной стратегией на тот момент — тащить одновременно две линейки). Я сейчас выскажу очень спорную мысль — ни одна другая компания так бы не поступила. Но Intel, безусловно уникален в своей вере.

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

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

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

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

Варфоломеева ночь.

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

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

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

P.S. Не уверен, что у меня часто получится выдавать подобные многостраничные фолианты. Для баечек попроще и покороче, которые, надеюсь, тоже войдут в книгу, у меня есть телеграм-канал «Китайский русский».

© Habrahabr.ru