Чому для процесора Itanium було складно написати компілятор?


50

Зазвичай говорять, що 64-розрядна архітектура процесора Itanium від Intel не вдалася, оскільки революційний набір інструкцій EPIC був дуже важким для написання хорошого компілятора, що означало відсутність хороших інструментів для розробників для IA64, що означало відсутність розробників, які створювали програми для архітектури і тому ніхто не хотів використовувати апаратне забезпечення без особливого програмного забезпечення для цього, і тому платформа вийшла з ладу, і все за бажаннямпідковоподібний цвях хороші компілятори.

Але чому компілятор склав таку складну технічну проблему? Мені здається, що якщо явний паралелізм в EPIC складно було реалізувати постачальникам компіляторів ... навіщо це ставити цей тягар на них в першу чергу? Це не так, як добре, добре зрозуміле рішення цієї проблеми ще не існувало: покладіть цей тягар на Intel, а дайте авторам-компіляторам простішу ціль.

Itanium вийшов у 1997 році. До цього моменту системі байт -кодів UCSD P-Code було майже 20 років, Z-машина трохи молодша, а JVM - гаряча нова зірка у світі мов програмування. Чи є якась причина, чому Intel не вказала "простий байт-код Itanium" і не запропонувала інструмент, який перетворює цей байт-код в оптимізований код EPIC, використовуючи в першу чергу свою експертизу як люди, які проектували систему?


5
Дійсно низькі рівні ІР (які фактично визначені, крім того, що є внутрішніми для одного компілятора, і призначені для компіляції на конкретному апаратному забезпеченні, а не інтерпретуються портативно) - це новіший винахід AFAIK. Це не означає, що вони взагалі не існували, але я думаю, що ідея зовсім не була очевидною чи загальновідомою. Я маю на увазі, більшість людей все ще асоціює "байт-код" з "перекладачем".

4
Якщо припустити, що це не просто вирішує питання "про що вони думали", це досить гарне питання.
Роберт Харві

P-система була собачою повільною порівняно з тим, що міг робити власний машинний код. Для майбутніх архітектур процесорів стратегія, яку ви описуєте, може бути хорошою тепер, коли JVM продемонстрував, що JIT може досягти ефективності коду загального призначення, що є конкурентоспроможною з власним кодом, але я не думаю, що це було зрозуміло, коли розроблявся IA64. Обтяження нової нібито швидшої архітектури з повільним VM, ймовірно, не зробить покупців дуже щасливими.
supercat

@supercat: Я говорю не про гіпотетичний VM, а про гіпотетичний ІР, який би решту шляху склав генератор коду Intel.
Мейсон Уілер

3
Я пам’ятаю, як обговорювали це конкретне питання на моєму випускнику класу «Комп’ютерна архітектура» років тому. Були конкретні причини, чому Intel робила те, що робила, на жаль, я не можу викопати жодних остаточних ресурсів, щоб надати відповідь.

Відповіді:


33

Як я пам’ятаю в той час, питання полягало не лише в деталях IA64, а в конкуренції з набором інструкцій AM86 x86-64. Зробивши назад свою архітектуру сумісною з набором інструкцій x86, AMD змогла використовувати існуючі інструменти та набори навичок розробників. Хід AMD був настільки успішним, що Intel (і Via) по суті були змушені прийняти архітектуру x86-64.

Великим бар'єром на той час була 4 Гб оперативної пам’яті на настільних ПК (більш реально ~ 3,4 ГБ, доступна для Windows). x86-64 зруйнував цей бар'єр і відкрив для всіх обчислювачі вищої потужності. Якби AMD ніколи не придумував x86-64, я впевнений, що Intel був би радий, щоб усі, хто хотів перейти до 4 ГБ + ОЗУ, платили за цю привілей за суттєву премію протягом багатьох років. Демонструючи, як повільно рухаються ринки, потрібні роки, щоб додатки захоплювали 64-бітне багатопотокове програмування, і навіть тепер 4 Гб оперативної пам’яті є стандартним для комп’ютерів низького класу.

Коротше кажучи, Intel намагалася зробити революційний стрибок з архітектурою IA64, а AMD зробила еволюційний крок з x86-64. На усталеному ринку еволюційні кроки, що дозволяють знавцям використовувати існуючі навички, переможуть революційні кроки, які вимагають від кожного освоїти нові навички. Незалежно від якісних відмінностей між архітектурами, IA64 не міг подолати імпульс власної платформи x86, коли AMD додав розширення x86-64.

Я не купую пояснення, що програмування IA64 було надто складно. Це було лише важко стосовно альтернатив. @ Делнан щодо низькорівневої інфрачервоної точці прихильний, я просто не думаю, що це змінило б значення.

А чому Intel не намагався взяти на себе цей тягар, хто знає? Вони в той час були ринковою силою. AMD був чимось загрозою, але Intel був королем пагорба. Можливо, вони думали, що IA64 буде набагато кращим за все, що вони зможуть перемістити весь ринок. Можливо, вони намагалися зробити преміум-рівень і залишити AMD, VIA тощо у другому рівні, бореться за товарне обладнання з низькою маржею - стратегія, яку і Intel, і Apple досить успішно застосовують.

Чи був Itanium навмисною спробою зробити платформу преміум-класу та витягнути килим з-під AMD, VIA тощо? Звичайно, саме так працює бізнес.


4
Все дуже цікаво, але ви здебільшого пояснюєте, чому Itanium зазнав невдачі, тоді як питання стосувалося стратегії Intel у віджиманні Itanium. Є натяк на тему: "Intel був би радий усіх [...]", але мені незрозуміло, якщо ви маєте на увазі, чи це було навмисне рішення Intel (і якщо так, то що ви повинні це підтримати твердження).

2
Чудові моменти. Як колишній письменник-компілятор, це правда, що мати можливість повернути існуючий компілятор і налаштувати його на ефективність - це краще, ніж писати його знову. Тоді (і, можливо, зараз ... не впевнений) написання компілятора бек-ендом було чимось, що команда з 4 або 5 дев може зробити за рік. Це міцна гайка, яка зламається, коли ніхто не прийняв обладнання. Ми вибрали в той час замість того, щоб створити задні цілі PowerPC для підтримки ароматів Unix коробки, які будувалися на ньому.
Кріс Стіл

@delnan, хороший момент, я додав коментар для вирішення інших питань.
Роберт Манн

2
Більш коротко, Intel значно недооцінив інерційність тих, хто носить ярмо відсталої сумісності. AMD перемогла Intel у власній грі, зробивши той самий еволюційний крок із сім'ї x86, що родина x86 зробила із сім'ї 8086/8088.
Blrfl

1
Ерм. 80x86 підтримує 36-бітну фізичну адресацію (або обмеження "не зовсім 64 Гб оперативної пам'яті") з моменту введення PAE та PSE36 приблизно в 1995 році. Проблемою було дуже мало версій Windows, які підтримували PAE через несумісність драйверів пристроїв (але деякі зробили).
Брендан

33

Стаття у Вікіпедії про EPIC вже окреслила багато небезпек, спільних для VLIW та EPIC.

Якщо хтось не вловлює почуття фаталізму з цієї статті, дозвольте мені виділити це:

Завантаження відповідей з ієрархії пам'яті, що включає кеші процесора та DRAM, не мають детермінованої затримки.

Іншими словами, будь-яка апаратна конструкція, яка не справляється з (*) недетермінованою затримкою доступу до пам’яті, просто стане вражаючою помилкою.

(*) "Впораючись з", необхідно досягти досить хороших показників виконання (іншими словами, "економічно вигідних"), що вимагає не дозволяти процесору простоювати на десятки до сотень циклів так часто.

Зауважте, що стратегія подолання, застосована EPIC (згадана у згаданій вище статті Вікіпедії), насправді не вирішує проблему. Це просто говорить, що тягар вказівки залежності даних тепер лягає на компілятор. Це добре; у компілятора вже є ця інформація, тому компілятору дотримуватися її просто. Проблема полягає в тому, що процесор все ще збирається працювати в режимі очікування на десятки-сотні циклів через доступ до пам'яті. Іншими словами, це зовнішньоекспертизу, але все ще не справляється з первинною відповідальністю.

Питання можна перефразовувати так: "Враховуючи апаратну платформу, яка судилася бути провальною, чому (1) не (2) не змогли автори-компілятори докласти героїчних зусиль, щоб викупити її?"

Я сподіваюся, що моє перефразування зробить відповідь на це питання очевидною.


Є другий аспект відмови, який також є смертельним.

Стратегії подолання (згадані в тій же статті) передбачають, що попереднє завантаження на основі програмного забезпечення може бути використане для відновлення принаймні частини втрати продуктивності через недетерміновану затримку доступу до пам'яті.

Насправді попереднє завантаження вигідне лише в тому випадку, якщо ви виконуєте потокові операції (читання пам'яті послідовно або дуже передбачувано).

(Однак, якщо ваш код робить частий доступ до деяких локалізованих областей пам'яті, кешування допоможе.)

Однак більшість програм загального призначення повинні робити безліч випадкових доступів до пам'яті. Якщо ми розглянемо наступні кроки:

  • Обчисліть адресу, а потім
  • Прочитайте значення, а потім
  • Використовуйте це в деяких розрахунках

У більшості програмного забезпечення загального призначення ці три програми повинні виконуватися швидко. Іншими словами, не завжди вдається (в межах програмної логіки) обчислити адресу вперед або знайти достатню роботу, щоб заповнити стійла між цими трьома кроками.

Щоб пояснити, чому не завжди вдається знайти достатньо роботи для заповнення кіосків, ось як можна було б її уявити.

  • Скажімо, для ефективного приховування кіосків нам потрібно заповнити 100 інструкцій, які не залежать від пам’яті (тому не буде страждати від додаткової затримки).
  • Тепер, як програміст, завантажте будь-яке програмне забезпечення на ваш вибір у розбирач. Виберіть випадкову функцію для аналізу.
  • Чи можете ви десь визначити послідовність із 100 інструкцій (*), які виключно не мають доступу до пам'яті?

(*) Якби ми могли коли-небудь зробити NOPкорисну роботу ...


Сучасні процесори намагаються впоратися з тим же самим, використовуючи динамічну інформацію - одночасно відстежуючи хід кожної інструкції під час їх циркуляції по трубопроводах. Як я вже згадував вище, частина цієї динамічної інформації обумовлена ​​недетермінованою затримкою пам’яті, тому компілятори не можуть передбачити в якійсь мірі точності. Взагалі просто немає достатньої кількості інформації, яка була доступна під час збирання для прийняття рішень, які могли б заповнити ці місця.


У відповідь на відповідь AProgrammer

Справа не в тому, що "компілятор ... витягнути паралелізм важко".

Переупорядкування пам'яті та арифметичних інструкцій сучасними компіляторами є свідченням того, що у неї немає проблеми з ідентифікацією операцій, які є незалежними і, таким чином, одночасно виконуються.

Основна проблема полягає в тому, що затримка пам’яті без детермінації означає, що незалежно від того, «яке командування поєднується» для процесора VLIW / EPIC, в кінцевому підсумку буде зупинено доступ до пам'яті.

Оптимізація інструкцій, які не затримуються (лише для реєстрації, арифметики), не допоможуть у вирішенні питань щодо продуктивності, спричинених інструкціями, які дуже ймовірно зупиняються (доступ до пам'яті).

Це приклад неприйняття правила оптимізації 80-20: Оптимізація речей, які вже швидкі, не суттєво покращить загальну ефективність, якщо тільки не будуть оптимізовані повільніші речі.


У відповідь на відповідь Базиле Старинкевича

Це не "... (що завгодно) важко", це те, що EPIC є непридатним для будь-якої платформи, яка має затримуватися з високою динамічністю затримки.

Наприклад, якщо процесор має всі наступні дії:

  • Немає прямого доступу до пам'яті;
    • Будь-який доступ до пам'яті (читання або запис) повинен бути запланований за допомогою передачі DMA;
  • Кожна інструкція має однакову затримку виконання;
  • Виконання замовлення;
  • Широкі / векторизовані одиниці виконання;

Тоді VLIW / EPIC буде добре підходити.

Де можна знайти такі процесори? DSP. І ось тут процвітав VLIW.


Зрештою, невдача Itanium (і продовження виливу науково-дослідних та дослідницьких робіт у невдачу, незважаючи на очевидні докази) є прикладом організаційного провалу і заслуговує на глибоке вивчення.

Звичайно, інші підприємства, такі як гіперточка, SIMD тощо, виявляються дуже успішними. Можливо, що інвестиції в Itanium, можливо, мали б збагачуючий вплив на майстерність його інженерів, що, можливо, дозволило їм створити наступне покоління успішної технології.


7

TL; DR: 1 / є інші аспекти відмови Itanium, ніж проблеми компілятора, і їх цілком може бути достатньо, щоб пояснити це; 2 / байт-код не вирішив би проблеми компілятора.

Зазвичай говорять, що 64-розрядна архітектура процесора Itanium Intel не вдалася, оскільки революційний набір інструкцій EPIC був дуже важким для написання хорошого компілятора для

Ну, вони також запізнювались (планувались на 98, перша доставка в 2001 році), і коли вони нарешті доставили обладнання, я навіть не впевнений, що він доставив те, що було обіцяно на попередню дату (IIRC, вони принаймні скинули частину x86 емуляція, яку спочатку планували), тому я не впевнений, що навіть якщо проблеми з компіляцією будуть вирішені (а AFAIK, ще не було), вони мали б успіх. Аспект компілятора був не єдиним аспектом, який був надто амбітним.

Чи є якась причина, чому Intel не вказала мову "простий байт-код Itanium" і не запропонувала інструмент, який перетворює цей байт-код в оптимізований код EPIC, використовуючи в першу чергу свою експертизу як люди, які проектували систему?

Я не впевнений, де ви розміщуєте інструмент.

Якщо він знаходиться в процесорі, у вас є лише інша мікро-архітектура, і немає ніяких причин не використовувати x86 як публічний ISA (принаймні для Intel, несумісність має більш високу вартість, ніж все, що може принести чистіший публічний ISA).

Якщо це зовні, починаючи з байт-коду, це ще важче, ніж починати з мови вищого рівня. Проблема з EPIC полягає в тому, що він може використовувати лише паралелізм, який може знайти компілятор, і витягти цей паралелізм важко. Знання мовних правил дає вам більше можливостей, ніж якщо вас обмежує щось вже заплановане. Мій (зізнається, ненадійний і від того, хто здалека слідував за цим) - це те, що HP (*) та Intel не змогли досягти на передовій компілятора - це вилучення паралелізму на мовному рівні, а не низький рівень, який би був присутній у байті код.

Ви, мабуть, недооцінюєте вартість, за якою поточний процесор досягає своєї продуктивності. ТОВ є більш ефективним, ніж інші можливості, але він, безумовно, не ефективний. EPIC хотів використати бюджет області, який використовується впровадженням ТОВ, щоб забезпечити більше необроблених обчислень, сподіваючись, що компілятори зможуть ним скористатися. Як було написано вище, ми не тільки не можемо - як AFAIK, навіть теоретично - писати компілятори, які мають таку здатність, але Itanium отримав достатньо інших важких у виконанні функцій, щоб було пізно і його сильна потужність не була навіть конкурентоспроможний (виключається, можливо, на деяких ринках з нішею з великою кількістю обчислень FP) з іншим процесором високого класу, коли він вийшов з файлу.


(*) Ви також, здається, недооцінюєте роль HP в EPIC.


Я оновив свою відповідь у відповідь на один із ваших претензій. На мою думку, невдача із затримкою пам’яті є єдиною причиною загибелі архітектури EPIC. Компілятори мають гідний успіх у вилученні паралелізму на рівні інструкцій, як і сучасне обладнання процесора.
rwong

1
@rwong, я склав TLDR з того, що вважаю своїми основними моментами. BTW, для мене змінна затримка - між моделями, залежними від деяких інструкцій у деяких моделях, доступ до пам'яті, очевидно, є основною категорією тут - один із аспектів складності вилучення паралелізму. Апаратне забезпечення процесора має перевагу в динамічному плануванні, і я не думаю, що є приклад статично запланованого процесора, який є конкурентоспроможним за чистою продуктивністю для однопотокового зв'язку з OOO. Я не думаю, що навіть команда «Мілля» висловлює це твердження (до їхнього фактора належать влада).
AProgrammer

6

Кілька речей.

IPF був в порядку, для одного. Це означало, що ви не можете розраховувати на повторний порядок, щоб врятувати вас у разі пропуску кешу чи іншого тривалого події. Як результат, вам довелося покладатися на спекулятивні особливості, а саме - спекулятивні навантаження (дозволено вийти з ладу - корисні, якщо ви не знали, чи потрібен буде результат навантаження) та розширені навантаження (вантажі, які можуть бути повторно запустіть, використовуючи код відновлення, якщо виникла небезпека.) Виправити це правильно було важко, особливо розширені навантаження! Були також підказки щодо попереднього вибору гілок та кеш-пам'яті, які реально могли інтелектуально використовувати лише програміст-збирач або використовуючи керовану профілем оптимізацію, як правило, із традиційним компілятором.

Інші машини в той час, а саме UltraSPARC, були в порядку, але IPF також мав інші міркування. Один був кодування простору. Інструкції Itanium за своєю природою були не особливо щільними - 128-розрядний пакет містив три операції та 5-бітове поле шаблону, яке описувало операції в пакеті та чи всі вони могли видавати разом. Це дозволило отримати ефективний 42,6 бітний розмір операції - порівняти з 32 бітами для більшості комерційних операцій RISC на той час. (Це було раніше, ніж Thumb2 та ін. - RISC все ще означав жорсткість з фіксованою довжиною.) Ще гірше, у вас не завжди було достатньо ILP, щоб помістити шаблон, який ви використовували - тому вам доведеться NOP-pad для заповнення шаблон або пучок. Це в поєднанні з існуючою відносно низькою щільністю означало, що отримання гідної частоти показів i-кешу було а) дійсно важливим,

Хоча я завжди вважав, що аргумент "компілятор був єдиною проблемою" був надмірно задушеним - існували законні мікроархітектурні проблеми, які насправді не робили I2 ніяких прихильників для коду загального призначення - генерувати код для порівняння було не особливо цікаво до вужчих, високопоставлених OOO машин дня. Коли ви могли справді правильно заповнити його, що часто включало або PGO, або кодування вручну, це було чудово - але багато часу, ефективність від компіляторів була справді просто не натхненною. IPF не полегшив генерацію чудового коду, і було непростим, коли код не був великим.


4

Але чому компілятор склав таку складну технічну проблему? Мені здається, що якщо явний паралелізм в EPIC складно було реалізувати постачальникам компіляторів ... навіщо це ставити цей тягар на них в першу чергу? Це не так, як добре, добре зрозуміле рішення цієї проблеми ще не існувало: покладіть цей тягар на Intel, а дайте авторам-компіляторам простішу ціль.

Те, що ви описуєте, це трохи те, що Transmeta намагалася зробити зі своїм програмним забезпеченням для перетворення коду (яке динамічно переводило x86 "байт-код" у внутрішній машинний код Transmeta).

Як чому Intel не вдалося зробити досить хороший компілятор для IA64 ... Я думаю, що у них не було достатньо досвіду компілятора в будинку (навіть якщо, звичайно , вони мають деякі дуже хороші фахівці компілятора всередині, але , ймовірно , мало зробити критичну масу). Я здогадуюсь, що їх керівництво недооцінило зусилля, необхідні для створення компілятора.

AFAIK, Intel EPIC не вдалося, тому що компіляція для EPIC дійсно важка, а також тому, що, коли технологія компіляції повільно і поступово вдосконалюється, інші конкуренти, де також можуть вдосконалити свій компілятор (наприклад, для AMD64), поділившись деяким ноу-хау компілятора.

До речі, я хотів, щоб AMD64 був ще набором інструкцій RISCy. Це міг бути якийсь POWERPC64 (але, мабуть, це не було через проблеми з патентом, через вимоги Microsoft у той час тощо). Архітектура наборів інструкцій x86-64 насправді не є "дуже хорошою" архітектурою для письменника-компілятора (але це якось "досить добре").

Також архітектура IA64 вбудувала деякі сильні обмеження, наприклад, 3 інструкції / слово були хорошими, доки процесор мав 3 функціональні блоки для їх обробки, але як тільки Intel перейшла на новіші мікросхеми IA64, вони додали більше функціональних одиниць, рівня паралелізму знову було важко досягти.

Можливо, RISC-V (що є ISA з відкритим кодом) поступово матиме успіх, щоб зробити його конкурентоспроможним для інших процесорів.


Intel витрачає мільярди на НДДКР, я важко вірю, що їм буде важко розробити хороший компілятор для нової апаратної платформи.

1
Гроші - це не все: дивіться міфічний місяць чоловіка , жодної срібної кулі і врахуйте, що час на ринок дуже важливий.
Василь Старинкевич

3
У них працюють багато талановитих інженерів та вчених-комп'ютерів. Їх не-VLIW компілятори є першокласними, регулярно викачуючи код набагато швидше, ніж інші компілятори. Intel, напевно, є однією компанією, яка має більше досвід роботи з компіляторів, ніж будь-яка інша компанія. Intel досягає всього іншого: чому Itanium був альбатросом?

1
Це, мабуть, було трохи менш правдою в 1997 році. І, як декілька пояснювали, складання EPIC дійсно важке.
Василь Старинкевич

3

Як зазначав Роберт Манн - саме відсутність сумісності ззаду вбила Itanium (та багато інших "нових" технологій).

Хоча написання нового компілятора може бути важким, вам знадобиться лише декілька з них. Компілятор змінного струму, який виробляє оптимізований код, є обов'язковим - інакше у вас не буде використовувати корисну операційну систему. Вам потрібен компілятор C ++, Java і з огляду на те, що основною базою користувачів буде Windows якось Visual Basic. Тож це насправді не було проблемою. Була доступна гідна операційна система (NT) та хороший компілятор C.

Що може здатися банальним зусиллям компанії, яка пропонує програмний продукт - перекомпілювати та повторно протестувати свою базу коду С (і в той час більшість було б написано в чистому С!), Було не так просто; перетворення великого набору програм C, які передбачали 32-бітне ціле число та передбачали, що 32-бітове адресація до рідної 64-бітової архітектури було повна підводних каменів. Якби IA64 став домінуючим чіпом (або навіть популярним!), Більшість програмних компаній укусили б кулю і доклали зусиль.

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


3

Що вбило Itanium, це затримка відвантаження, що відкрило двері для AMD64, щоб вступити до того, як постачальники програмного забезпечення взяли на себе зобов'язання перейти на IA64 для 64-бітних додатків.

Залишити оптимізацію компілятору було гарною ідеєю. Багато чого можна зробити статичним, що в іншому випадку неефективно в апаратному забезпеченні. Компілятори стали в цьому непогані, особливо при використанні профілю PGO (я працював у HP, і компілятор HP, як правило, перевершував Intel). PGO був важко продати, однак це складний процес виробництва коду.

IPF мав бути зворотним сумісним, але як тільки AMD64 запустив його, суть битви була програна, і я вважаю, що апаратне забезпечення X86 в процесорі було просто позбавлене ретаргета як серверного процесора. Ітаній як архітектура був непоганий, 3 інструкції на слово не були проблемою. Проблема полягала в тому, що реалізація гіперточок шляхом заміни стеків під час IO пам’яті була занадто повільною (для спорожнення та перезавантаження конвеєра) до тих пір, поки Montecito тощо не завадила їй конкурувати проти процесорів PowerPC, які не вийшли з ладу. Компілятори повинні були виправити запізнення, щоб виявити недоліки реалізацій процесора, і деякі переваги продуктивності втратили, щоб важко передбачити помилки.

Архітектура дозволила Itanium бути досить простим, надаючи інструменти для компілятора, щоб отримати з нього ефективність. Якби платформа жила, процесори стали б складнішими і, зрештою, стали б потоковими, вийшли з ладу тощо, як x86. Однак перші транзистори, орієнтовані на ген, орієнтовані на інші схеми продуктивності, оскільки компілятор обробляв багато важких речей.

Платформа IPF зробила ставку на компілятор та інструменти, і це була перша архітектура, яка представила надзвичайно повний та потужний дизайн модуля контролю продуктивності (PMU), який згодом був перенесений на Intel x86. Настільки потужні розробники інструментів досі не використовують його для повного вміння профілювати код.

Якщо ви подивитеся на успіхи ISA, часто не котять технічну сторону, котячи кістки. Це місце у часі та ринкові сили. Погляньте на SGI Mips, DEC Alpha ... Itanium якраз підтримували розпусники, сервери SGI & HP, компанії з управліннями, що нагромаджували стратегічні бізнес-помилки. Microsoft ніколи не була повноцінною і прийняла AMD64, щоб не брати участь у програмі лише Intel, як гравець, і Intel не грала правильно з AMD, щоб дати їм можливість жити в екосистемі, як вони мали намір придушити AMD.

Якщо ви подивитесь, де ми сьогодні перебуваємо, складне обладнання X86 досі призвело до еволюційного тупику. Ми застрягли на 3 + ГГц, і скидаємо ядра з недостатньою кількістю використання для цього. Простіша конструкція Itanium затіснила б більше матеріалів на компіляторі (приміщення для зростання), що дозволить будувати більш тонкі, швидші трубопроводи. У тих же поколіннях і технологіях, які працювали б швидше, було б запущено швидше і обмежено все те саме, але трохи вище, з можливістю відкрити інші двері, щоб підштовхнути закон Мура.

Ну принаймні вище мої переконання :)


1

Пам'ять стає розпливчастою ... Itanium мав кілька чудових ідей, які потребували б чудової підтримки компілятора. Проблема полягала в тому, що це була не одна особливість, а багато. Кожна з них не була великою справою, всі разом були.

Наприклад, була функція циклічного циклу, де одна ітерація циклу діяла б на регістри різних ітерацій. x86 вирішує цю проблему завдяки величезним можливостям поза замовлення.

У той час Java і JVM були в моді. IBM сказав, що за допомогою PowerPC можна було швидко скласти байт-код, і процесор зробив би це швидко. Не на Itanium.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.