`

СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Как изменилось финансирование ИТ-направления в вашей организации?

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Михаил Закусило

Архитектура x86 под угрозой вымирания

+610
голосов

Не верьте тем, кто говорит о стабильности x86-архитектуры, одновременно надеясь на ее умеренную эволюцию. И с эволюцией по-разному, и о стабильности можно только мечтать: о проекте Itanium ни слова, а на совместимости с x86 первой крест поставила AMD. Я не о доминирующей сегодня системе команд AMD64, она же Intel EM64T. Я о принципах старта персональной платформы, которая в момент появления по эффекту была близка к праздничному фейерверку. Но, как говорится, недолго музыка...

Все это время Intel методично развивал процессорное хозяйство — сначала рост частот, затем — рост количества ядер, каналов памяти. Сокет за сокетом компания пришла к тому, что в самых многоядерных чипах предложила концепцию Cluster-on-Die, которая оказалась не готова к стремительному росту количества процессорных ядер.

На повестке дня новое веяние — 2D-mesh интерконнект для поддержки высокопроизводительных параллельных вычислений. Проблемы с этим у процессоров общего назначения возникли не сегодня, но благодаря крипто-валютчикам с особой остротой встала актуальность и неотвратимость архитектурной трансформации. В майнинге CPU выполняют роль «официанта», неспешно принимающего и раздающего блюда, приготовлением которых заняты многочисленные квалифицированные и высокооплачиваемые «повара» — видеокарты.

Вряд ли такое положение дел устраивает Intel. Обещания сделать доступными 512-битные вычисления не упредили ситуацию, а плетутся в ее хвосте. Но, похоже, Bootable Xeon Phi становится реальностью. На наших глазах разворачивается, как сейчас модно говорить, баттл между концепцией SIMD от Intel и ее соперником от NVIDIA — моделью SIMT. Вся разница в последней литере: Single Instruction Multiple — Data или Thread? Вот в чем вопрос.

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

Другой вопрос, как это все будет греться при экстремальных нагрузках? У AMD совсем недавно между строк пресс-релизов прозвучал тезис, что можно принести в жертву производительность одного отдельно взятого ядра (речь там шла про ARM), добиваясь его ничтожно малого теплорассеивания, если количество ядер возрастет многократно — в десятки, а то и в сотни раз. Оптимизацию вычислений при таком архитектурном подходе можно делегировать компилятору, как это ранее было сделано в Itanium, хотя на этом все аналогии с ним у ARM и заканчиваются.

Избежать «тепловой смерти» (будем реалистами — отложить апокалипсис x86) можно пожертвовав чем-то не главным. Как это было при переходе к 64-битной архитектуре: тогда пришлось отказаться от операций десятичной коррекции («отряд не заметил потери бойца»). На сей раз люстрация коснется MMX-операций. При наличии 512-битных регистров тянуть за собой воз совместимости с операциями, разрядность которых в 8 раз меньше не имеет смысла. Легкий налет иронии дает отсутствие значимого ПО для More Money eXtraction. Ну, у 1С точно нет оптимизации под MMX, а будет ли под AVX512 — это не моего ума дело.

Следующим в «расстрельном списке» идут операции с дорогими мне портами ввода-вывода. В свое время появление этой архитектурной новации выгодно отличало x86 от мастодонтов типа IBM/360. Но уже на заре Pentium-эры стало понятно, что IN/OUT не поспевают за эволюцией, оставаясь рудиментом и атавизмом. Когда для инициализации системной логики Intel предложил вместо портов технологию конфигурационных регистров в пространстве памяти (memory-mapped), стало понятно, что отказ от них — вопрос времени. Мало кто задумывался, правда, о том, что логичным финалом станет исчезновение портов и операций с ними (привет, совместимость).

Есть еще две группы инструкций, с которыми мы скоро распрощаемся насовсем. Вряд ли они на слуху у широкой публики, да и сказанного вполне достаточно для короткого вывода — балласт в x86 идет за борт полным ходом. «Хьюстон, у нас проблемы!»

+610
голосов

Напечатать Отправить другу

Читайте также

Апну свой пост в контексте первого упоминания AMD (т.к. получил ряд замечаний по этому вопросу):

С усложнением PC-платформы уже в системах AMD Socket A была реализована ранняя аппаратная инициализация чипсета и процессора, в частности — настройка на тактовую частоту системной шины по Platform-Specific алгоритму. Только после такой инициализации платформа готова отработать цикл выборки первой инструкции по адресу FFFFFFF0h. Оптимальным носителем инициализационных параметров является микросхема системного ROM. В результате была разработана процедура, при которой несколько циклов доступа к системному ROM, связанных с чтением инициализационных параметров, выполнялись до выборки первой инструкции процессором. Затем, инициативу перехватила Intel, разместив в ROM структуру Flash Descriptor, определяющую разделение постоянного запоминающего устройства на несколько аппаратно защищенных регионов и детерминирующую доступ каждого из устройств платформы к закрепленному за ним региону. Это лишь один из теневых Platform-Specific механизмов, преобладание которых над унификацией позволяет говорить о кризисе совместимости.

Опять пришли копатели хоронить x86-архитектуру, а она живее всех остальных.
1. Вот график положении процессоров в истории TOP500: https://qph.ec.quoracdn.net/main-qimg-23666887ddffc3fef5ddfdb307359f37
2.

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

И такое умеет: http://ark.intel.com/products/97927/Intel-Atom-Processor-C3958-16M-Cache...
и такое умеет
https://ark.intel.com/ru/products/93790/Intel-Xeon-Processor-E7-8890-v4-...
3.

При наличии 512-битных регистров тянуть за собой воз совместимости с операциями, разрядность которых в 8 раз меньше не имеет смысла.

Смотрим что такое "CPU microcode" и такие вопросы больше не появляются на горизонте, кстати, сюда же можно добавить исправление ошибок в процессоре.

Смотрим, что такое "CPU microcode" и с удивлением обнаруживаем, что исчезли ММХ-регистры. Снова смотрим, что такое "CPU microcode". Вжух — и уже нет портов ввода/вывода. Absolute, прекращайте крушить х86 архитектуру! Умоляю, оставьте хоть что-нибудь детям.

Каким исчо детям? О_О, взрослый человек, а за оболтусов не знаете! :-)

Д_И_тям - ARM, пенсионерам Пентиум, на базе архитектуры Атома, угу.

Ну на самом деле, как уже не дитё, а тинейджер второй половины 90х: уже даже не интересно наблюдать, сколько раз архитектуру х86 переобували в прыжке технологий. 16 битный нортон никому уже не впился. Слои совместимости с "вы[_ерами" погроммистов пром оборудования будут стараться убрать или переписать.

в результате возникает вопрос: а зачем вам х86 вариант старого Пентиума1...PIII? Если я правильно помню, Борланд Паскаль7 не мог работать на новых проциках, там что-то не так компилировалось с какой-то библиотекой, слишком быстрый процессор был для пост супер-сокет7. Это я к тому, что старый чистый х86 код для IBM XT/286AT ну может и не работать на ЦПУ после 2000 года выпуска.

А давайте еще прикинем Intel ME где 3 х86 процессора в южном мосте(PCH) и 3 копии unix-like ядер крутятся только для того, чтобы запустить дранный десктопный компьютер? Это вообще VM-on-VM-inside-VM получается и где там железная реализация х86 в современных Core i* мало кого волнует.

Жалко, что в этом блоге нет отметки "лайк" :)
Проблемы с некоторыми продуктами Borland а также с приложениями, скомпилированными с их помощью, были связаны с процедурой измерения производительности с помощью системного таймера, для определения констант в процедурах задержек. Ошибочный фрагмент добавлялся компилятором всегда, независимо от того, нужно ли формирование задержек в данной конкретной программе.

Измерение зашкаливало на быстрых процессорах. Было три решения, каждое со своими недостатками:

  • Перепрограммировать системный таймер загрузив новое значение делителя частоты в порт 0040h, но при этом спешат системные часы в рантайме.
  • Запретить кэш-память установкой бита 30 (CD=Cache Disable) в регистре управления CR0, но при этом все работает медленно.
  • Редактировать код Borland и приложений, что трудоемко.

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

Не думаю что они радикально покромсают поддержку "компилированного" для платформы х86_64, процесс затянется лет на 15.

Но сам смысл в "виртуальной и бумажной" поддержке бинарной совместимости с продуктами ниже чем для архитектуры PentiumPro... Да нету смысла.

Но учитывая сегодняшний вскрытый гнойничок от АМД, с его 4мя блоками по 8 ядер и то, как они маркетингово это дело испачкали. Наверное нас ждут большие перемены на десктопном фронте. Да в принципе уже, анонс раб станций HP Z8 как бы намекает. (хотя и предыдущие были по 44 ядра)

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

Согласен, аппаратная совместимость с 32/64-битными режимами Protected Mode, необходимая для запуска приложений в среде ОС, может продержаться еще достаточно долго. А вот 16-битный Real Mode, обеспечивающий прохождение BIOS POST и старт Legacy Boot, видимо, уйдет раньше — ведь UEFI boot и UEFI API уже работают в Protected Mode. И тогда MS DOS и Norton Commander мы сможем увидеть только в окне виртуальной машины, также как эмулятор ZX Spectrum.

Кстати, запускать "настоящую" DOS на некоторых современных платформах не совсем безопасно из-за неработоспособности подсистемы Power Management: процессор работает с максимальной производительностью и нагревом.

 
 
IDC
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT