Часть 1 >> Часть 2 >> Часть 3 >> Часть 4 >> Часть 5 >> Часть 6 >> Часть 7 >> Часть 8 >> Часть 9 >> Часть 10 >> Часть 11 >> Часть 12 >> Часть 13 >> Часть 14 >> Часть 15 >> Часть 16 >> Часть 17 >> Часть 18 >> Часть 19 >> Часть 20 >> Часть 21 >> Часть 22 >> Эпилог   Сегодня я заканчиваю первую главу (пока еще не написанной :)) книжки 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 (я тоже религиозен 😁) и мне кажется, что рано или поздно мы бы все равно “уперлись” в его ограничения. Но все же стоило пытаться по-честному пройти этот путь ... Архитектура 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”. Слайд был пустой. В гробовой тишине заседание закончилось. Занятно, однако, что из 4х упомянутых мной Intel Fellow дольше всех продержался в конторе именно Бабаян (aж до декабря 21го). Дитцел отвалил практически сразу после описанных событий и создал свою фирму Esperanto Technologies. Hammarlund ушел в Apple в начале 2015го. Bigbee продержался немногим дольше... Но мне особенно врезалось в память, как примерно спустя год после Варфоломеевой ночи на ISA CPT кто-то вдруг задал риторический вопрос. -А помните тех, которых мы сожгли на костре в прошлый раз? Возможно они были не так уж и неправы... P.S. Не уверен, что у меня часто получится выдавать подобные многостраничные фолианты. Для баечек попроще и покороче, которые, надеюсь, тоже войдут в книгу, у меня есть телеграм-канал “Китайский русский”.  Vice President NNRC, Советник Губернатора НО