Я подустал от мрачных текстов и вспомнил о своей давней мечте. За 20 с хвостиком лет работы в Интел у меня развеселых историй накопилось на целую книгу. Хотелось в ретроспективе посмотреть на некоторые события, участником которых мне довелось быть. И еще хотелось отдать дань уважения компании и людям, с которыми мне посчастливилось работать. Я уже даже название придумал – Made at Intel. Понятно, что пока я был внутри конторы, речь о публикации этих баек идти не могла. Я сам подшучивал, что для публикации нужно правильно выбрать время. В смысле сначала уволиться, а потом публиковать, а не быть уволенным вследствие публикации. :) Однако примерно 2 года назад я Интел покинул, и казалось бы меня уже ничего не сдерживало. Но тут, как всегда – то перо поломается, то струна порвется, то еще какая бяда приключится. К тому же на то чтобы писать книжку – это же рeшимости набраться надо... И вот – вчера я решил, что большое надо начинать с малого. Буду писать по главке и выкладывать сюда - собирать фидбек. Что-то убирать, что-то редактировать.Так мало –помалу и наберется.

Итак, сегодня вашему вниманию представляется первая глава, в которой эволюция архитектур Intel рассматривается с точки зрения ... истории религиозных течений. Да –да, не удивляйтесь, архитектура вычислительных устройств –это одна из самых религиозных вещей. Не думайте, что все решения по Instruction Set Architecture принимаются исключительно на основе анализа данных – это совсем не так. Скорее похоже на средневековое государство – тут есть немного бизнеса, побольше политики и очень много религии. Все просто – почти любой эксперимент в этой области растягивается на годы и обходится в миллиарды долларов. Хуже всего, что в процессе дизайна можно давать лишь приблизительные оценки ключевых характеристик – частоты, производительности, энергопотребления, температурной карты. То, как все оно будет на самом деле становится понятным уже только тогда, когда чип выходит из печки. Да сейчас в этой области уже накоплен определенный опыт и наши оценки становятся несколько точнее, но и только. А 20 лет назад этих знаний было куда меньше. И пионеры, подобные Интел двигались в темноте на собственный страх и риск. Разумеется, в таких условиях на первый план выходит кто во что ВЕРИТ. Ну да – еще кто лучше говорить умеет. Лучшие архитекторы приходят из школ с углубленным изучением богословия. :)

Именно поэтому история эволюция развития архитектурной мысли так странно напоминает историю религий. Разница только в масштабе времени – то что в религии формируется веками в дизайне чипов складывается за считанные годы, а иногда даже месяцы. Взять хотя бы школу Бориса Арташесовича Бабаяна (наверно самую древнюю из известных мне архитектурных школ). Мне трудно впрямую причислить себя к его ученикам, но то, сколько мы общались и сколько идей я от него набрался, наверно позволяет так говорить. Так вот там на протяжении 60 лет было все – расколы (наподобие католической и лютеранской церкви), формирование новых течений и, разумеется идейные конфликты. Существенную роль играл фактор времени. Отколовшиеся недавно признавались “последователями”, а долго упорствующие в своих “заблуждениях” прямыми “еретиками” :) Много всякого происходило за 60 лет, и я видел из этого лишь малую толику. Поэтому меня подмывает нарисовать полное “генеалогическое древо” этой школы. Когда поеду навестить Арташесовича в следующий раз –надо будет этим заняться :) Но давайте вернемся к Интел. В этой главе я расскажу о трех культах, которые имели все признаки религиозных и формировали историю компании.

Гонка Гигагерц

Это течение сформировалось в конце 20го –начале 21го века. В основе лежала в общем то простая мысль – при повышении тактовой частоты производительность приложений при прочих равных растет. Необязательно линейно (обмены с памятью никто не отменял), но растет. Заменяя процессор на новый пользователь получает ускорение “из коробки”. Без всяких мучительных манипуляций с исходным кодом ради распараллеливания и векторизации. Тенденция эта началась еще во времена Pentium III, но полностью развилась уже в Pentium IV. Все было бы прекрасно, но вот только загвоздка в этом самом “при прочих равных”. Очевидно, что чем короче такт, тем больше их потребуется для выполнения данной инструкции. Ведь x86 - это все же CISC. И Интел задумал поменять архитектуру в угоду частоте. Так родился NetBurst c его гиперпайплайном. Идея в том чтобы разбить команду на микроинструкции (такой RISC внутри CISCa) и запихивать их в огромной длины пайплайн. В Willamette oн составлял 20 стадий, а в Prescott -31, и это не считая декодирования. Суть в том, что эти микроинструкции можно выполнять на гораздо большей частоте, чем настоящие x86 команды. И это неплохо работало на прямых как палка кодах и прогретых кэшах. Но стоило поймать промах в кэш, и в пайплайне образовывался баббл (пузырек) –молотилка работала вхолостую. Еще хуже дело обстояло при неправильном предсказании ветвлений. Они не часто (BTB выдавал 94% точность предсказаний), но все же случались. В этом случае цена была астрономической – только для очистки конвейера (flush) могло потребоваться до 100 тактов. А ведь надо было еще снова его загрузить... Тем не менее Интел твердо уверовал в парадигму и в начале 2000x(если мне память не изменяет) провел публичный эксперимент, где P4 работал на частоте около 8 Гиг, и охлаждался жидким азотом. Это, конечно, вдохновило оверклокеров, и заставило серьезно задуматься всех остальных. Ибо гигагерцы оно конечно круто, но жидкий азот –это все таки жидкий азот...

 “Cамосожжение” Боба Колвелла.

Кульминация, однако, случилась еще раньше. Боб Колвелл (один из самых уважаемых мной дизайнеров) проработал в Интел всего 5 лет (1995-2000), но сумел оставить в истории компании яркий след. Он был одним из ведущих архитекторов линейки Pentium и наверно раньше всех осознал что “гонка гигагерц” – тупиковый путь. Однако, беда была в том, что тогда частота уже превратилась из чисто физического (или инженерного) понятия в предмет новой религии. И обычными средствами, набирающую ход лавину было уже не остановить...

В одно прекрасное утро Бобу Колвеллу позвонил тогдашний CEO Интел Крейг Баррет. С Крейгом я встречался лично раз 5 (больше только с нынешним CEO Пэтом Гелсингером) и он всегда производил впечатление человека исключительно здравомыслящего. Но, видимо, в том момент всеобщий экстаз захватил и его.

- Боб, дружище, нельзя ли поднять частоту еще на 20%? – “поинтересовался” Крейг.

- Это очень сложно. –Ответил Боб. –И более того, контпродуктивно. – Но тем не менее частота была поднята.

Следующий звонок был таким.

- Боб, дорогой. Нельзя ли добавить еще процентов 15?

- Это почти невозможно и бессмысленно.

- Ну постарайтесь, вы же –настоящие гении...

И последний.

- Боб, золотой мой, кровь из носа нужно еще 10%.

- I deliberately do not agree, -ответил Боб, повесил трубу и написал заявление “по собственному желанию”. Позже он описал это в своей замечательной книге The Pentium Chronicles: The People, Passion, and Politics Behind Intel's Landmark Chips.

Дальнейшее развитие.

Но Интел не был бы Интелом, если бы так легко отказывался от своих убеждений. NetBurst вышел на рынок и столкнулся там с платформой AMD Opteron, которая мало того, что имела существенно более короткий конвейер, так еще и обладала встроенным контроллером памяти. В том время как интеловские платформы все еще использовали технологию North Bridge (интересно, кто нибудь еще помнит здесь такие слова? :)). На меня самое большое впечатление произвел следующий эпизод. Мы как то попробовали запустить Linpack (ну а что еще?:) ) на процессоре Irwindale. И не смогли получить более 70% эффективности. Обычно неприхотливый HPL уперся... в memory bandwidth. Возможно, мы что то сделали не так, но шок был настолько велик, что мы очень быстро это занятие бросили.

 Реальность рынка быстро оказала свое отрезвляющее воздействие. Intel начал стремительно терять долю рынку в пользу AMD. Однако ситуация, как ни странно имела и положительные моменты для развития софтовой организации в Интел (и российской в частности). Контора осознала, что программатуру можно использовать для того чтобы прикрыть недостатки архитектуры. Нас бросили “на фронт”, чтобы “распрямлять” коды (уменьшать количество ветвлений) и по возможности уменьшать зависимость от memory bandwidth. В Интеле наступил (второй?) “золотой век софта”. Затем в 2005м году, как глоток свежего воздуха, появился Merom, разработанный в Israel Design Center (IDC). Архитектура Core имела существенно более короткий конвейер, и скорее являлась развитем идей P3. Но окончательно “cмутное время” закончилось с выходом Nehalem. Серверного чипа с архитектурой Core и интегрированным контроллером памяти. Империя встала с колен и нанесла сокрушительный ответный удар.

Linpack – как важнейшее из искусств

Второй важнейший “культ”, который определял развитие серверной архитектуры на протяжении десятилетий – это “сакрализация” Linpack.

To be continued…

Комментарии (35)


  1. tvr
    26.04.2022 16:50
    +6

    Спасибо. Подписался в ожидании следующих глав.


  1. saipr
    26.04.2022 17:10
    +2

    Контора осознала, что программатуру можно использовать для того чтобы прикрыть недостатки архитектуры.

    Как это знакомо. Часто "программатура" приукрашивает возможности железа. С этим часто приходится сталкиваться при работе с различными криптографическими токенами PKCS#11.


    1. vvvphoenix Автор
      26.04.2022 18:19
      +2

      Я думаю сейчас в Интеле опять "золотой век софта" :)


      1. Hidon
        27.04.2022 18:16
        +2

        мне кажется, что там уже давно идут тёмные времена с кабалой из drm и монетизации.


  1. WicRus
    26.04.2022 19:29
    +1

    Разумеется, в таких условиях на первый план выходит кто во что ВЕРИТ.

    С одной стороны звучит крайне странно, в такой глубоко материальной области проявляются идеалистические атавизмы. С другой стороны, проверить все варианты долго и дорого, приходится выбирать один, и тут уже решает не столько материя, сколько умение доносить свою идею.
    Очень интересно. Жду продолжения.


    1. vvvphoenix Автор
      26.04.2022 19:36

      Eще как проявляются :)


  1. chernish2
    26.04.2022 19:30

    Очень интересно! Хотелось бы правда менее эмоционального, более взвешенного изложения событий и их оценки автором.

    Ну и личной информации, а то совершенно непонятно, сам автор чем занимался и на каких ролях.

    С нетерпением жду продолжения!


    1. vvvphoenix Автор
      26.04.2022 19:40

      На тот момент я был по большей части в Сustomer Response Team - команде, которая занималась поддержкой интеловских решений в HPC сегменте. Так что с Оптероном приходилось сталкиваться лоб в лоб не раз и не два...


      1. X3_Shim
        26.04.2022 22:31

        Хм... а я тогда был в MKL, столкнулся с оптероном на работе, но не уверен что будет корректно рассказывать, для каких целей :)


  1. T968
    26.04.2022 19:30

    Разве реальная частота не определяется технологией, в данном случае КМОП.

    Время переключения самого быстрого КМОП всего 2нс, а это совсем не гигагерцы.


    1. vvvphoenix Автор
      26.04.2022 19:35

      Ну вот например про 8 гиг.

      https://overclockers.ru/hardnews/show/26527/Pentium_4_641_i_zhidkij_azot_teper_na_chastote_8320_MGc

      A это более или менее стандартные частотки

      https://ru.wikipedia.org/wiki/Pentium_4


      1. T968
        26.04.2022 22:05
        -5

        Частота излучателя в кухонной СВЧ печи 2.5 ГГц.

        https://ru.m.wikipedia.org/wiki/Микроволновая_печь

        При частоте 4 ГГц проц просто всю энергию бы излучал, как микроволновка.


        1. Serge78rus
          26.04.2022 23:11
          +3

          Смотря как эти 4 ГГц передавать — если по согласованной линии, то, в идеале, она ничего не излучает. А если линию передачи по топологии максимально приблизить к антенне в виде полуволнового вибратора — то… (тот, кто так делает сам виноват).


        1. Tufed
          27.04.2022 10:09
          +1

          Вы можете не верить, но процессоры впринципе на любой частоте излучают практически всю потребляемую энергию в виде тепла.


        1. vvzvlad
          27.04.2022 13:22

          Как же у вас трансиверы на 5ггц работают, интересно?


      1. T968
        27.04.2022 11:26

        Вот тут разгон и BCLK указана в 177 МГц.

        https://umtalelab.com/sergmann-vzobralsya-na-pervoe-mesto-2-yadernogo-zacheta-discziplinyinebench-r20-33271/

        Все гигагерцы в проце получаются не в виде частоты, а расчетом количества команд на конвейере. КМОП ТТЛ не научились ещё так разгонять.

        А реальные гигагерцы там только на шинах обмена и там совсем другие технологии ( почти водопроводные)


        1. nixtonixto
          27.04.2022 16:51

          Если не научились так разгонять, то что за инопланетные технологии используются в Thunderbolt 4, в котором по паре каналов на пару метров передаётся 40 Гбит/с? Это, кстати, и к вашему замечанию — что на больших гигагерцах вся энергия излучится и до конца кабеля сигнал не дойдёт.


          1. T968
            28.04.2022 11:21

            Так там не КМОП ТТЛ.

            Там другие технологии. А сами вычисления и все внутренности процессора это КМОП и ТТЛ.


  1. chernish2
    26.04.2022 19:33

    И ещё пожалуйста поясняйте в тексте аббревиатуры, например linpack и т.д.


    1. vvvphoenix Автор
      26.04.2022 19:38

      Следуюший пост будет целиком про Linpack. Самый знаменитый тест в HPC - https://www.top500.org/project/linpack/


      1. X3_Shim
        26.04.2022 22:34

        И на Итане линпак будет? А то я в процессе работы над ним в славном штате Орегон и познакомился с нашим общим коллегой, он тогда мне как раз свою демку показал, на оптимизированных синусах :) ЕМНИП конечно.


  1. SIMPLicity
    26.04.2022 23:05
    +2

    Про рост гигагерцев и "ускорение из коробки" от новых процессоров:

    1. Очень люблю команду XCHG. Кое кто из системщиков её тоже любит. Но количество тактов, которые тратились на её выполнение различно (в каких-то релизах Intel x86 оно вырастало необосновано велико). Поэтому я вот не уверен, что рост частоты всегда мог скомпенсировать фичи (или баги?) каких-то моделей.

    1. "Очевидно, что чем короче такт, тем больше их потребуется для выполнения данной инструкции." - вообще не понял фразы. Это было о чём? Вот мне без разъяснения явно неочевидно :)))

    1. "BTB выдавал 94% точность предсказаний" - ну да, после того, как Интел рассказ всем, что в ветвлениях (как я понимаю, CMP ...+ JE/JNE... и аналогов,- ибо флаги выставлялись, например, и при вычитании) код по "ложь" начинает выполняться уже до того, как выполняется по условию "истина", то начал писать с учётом этого го*на этой особенности. Стопудово компиляторы с ЯВУ под x86 тоже также делают (код не дизасемблировал и не трэйсил,- поэтому голову на отсечение давать не буду!).

    Жаль что умер PowerPC, хорошо что есть AMD, прекрасно что есть ARM, норм что есть NVidia (конкуренты, ау?!), ну чего-то там делает Apple ... Надеюсь, что всегда будет кому конкурировать с Intel и развитие не застопорится (и гигагерцы тоже будут пребывать!).


  1. eldog
    27.04.2022 10:00

    Говоря о вере, тут, наверно, не следует преуменьшать и значение маркетинга. Ведь вся реклама орала про гигагерцы. Больше - лучше. Верить могли и не все, но "пипл хавает".


    1. vvzvlad
      27.04.2022 13:24
      +2

      Маркетинг — это производное. Была бы команда маркетингу «на частоту не обращаем внимания, топим за нанометры и ядра», не было бы и такого ажиотажа у потребителей.


  1. TalalayM
    27.04.2022 10:10

    Шикарно, жду продолжения


  1. Hidon
    27.04.2022 18:27
    +1

    NetBurst вышел на рынок и столкнулся там с платформой AMD Opteron

    может я чего-то не помню, или мы в то время такие отсталые были, но конкурировал он с athlonXP/MP. ну т.е. потом конечно и с opteron, но когда вышел на рынок, вроде бы никаких opteron ещё не было.


    1. vvvphoenix Автор
      28.04.2022 09:43

      Это так. Оптерон появился чуть позже. Но именно он особенно рельефно показал недостатки netburst


  1. ez2
    27.04.2022 23:50
    +1

    Интересно, но мало. Пишите, пожалуйста, длиннее, не жадничайте.


    1. vvvphoenix Автор
      28.04.2022 10:44
      +1

      Время бы выкроить... :(


  1. mark_ablov
    28.04.2022 04:04

    Интересно было бы узнать про ответвления от x86 - итаниумы, i860, i960, и, конечно же, iAPX 432 с XScale. Но это всё весьма давние истории (кроме IA64, которую пинали очень долго, чтоб придать видимость жизни).


    1. vvvphoenix Автор
      28.04.2022 09:45

      Все будет. Через ход :) В следующий раз у нас культ линпака :)


  1. Newbilius
    28.04.2022 07:37
    +2

    Очевидно, что чем короче такт, тем больше их потребуется для выполнения данной инструкции.

    Увы, очевидно не всем, например мне - нет :-( Разверёте мысль? А то я всегда считал: если некая инструкция занимает 6 тактов, то как не меняй тактовую частоту - инструкция всё равно выполняется 6 тактов, только самих тактов в секунде станет больше.


    1. vvvphoenix Автор
      28.04.2022 10:39
      +1

      Мысль вот в чем. Выполнение команды означает что система система переходит из одного стационарного состояния в другое. То есть успевают пройти все переходные электромагнитные процессы. (Ибо мир там глубоко внутри он все же аналоговый а не цифровой :)). А они таки занимают некоторое времени из-за всяких там паразитных емкостей, инерции и тп. И не факт что при повышении частоты та же инструкция успеет выполниться за 6 тактов а не за 7 или 8...


      1. Newbilius
        28.04.2022 12:26

        Хмммм, спасибо, с этой точки зрения я ситуацию не рассматривал.


      1. Kurochkin
        28.04.2022 23:01

        тайминги оперативной памяти - об этом же, верно?