Я читав історію комп’ютера, і прийшов до процесорів IA-64 (Itanium). Вони звучали по-справжньому цікаво, і я розгубився, чому Intel вирішить їх скинути.
Можливість чітко вибирати 2 інструкції, які ви хотіли виконати в цьому циклі, є чудовою ідеєю, особливо під час написання вашої програми в зборі, наприклад, більш швидкого завантажувача.
У сотнях регістрів повинні бути переконливими для будь-якого складального програміста. По суті, ви можете зберігати всі змінні функції в регістрах, якщо вони не викликають жодних інших.
Можливість виконувати такі інструкції:
(qp) xor r1 = r2, r3 ; r1 = r2 XOR r3
(qp) xor r1 = (imm8), r3 ; r1 = (imm8) XOR r3
проти: робити:
; eax = r1
; ebx = r2
; ecx = r3
mov eax, ebx ; first put r2 into r1
xor eax, ecx ; then set r1 equivalent to r2 XOR r3
mov eax, (imm32) ; first put (imm32) into r1
xor eax, ecx ; then set r1 equivalent to (imm32) XOR r3
Я чув, що це було через відсутність зворотної порівнянності x86, але не вдалося виправити, просто додавши до неї схему Pentium і просто додавши прапор процесора, який переключив би його в режим Itanium (наприклад, перехід на захищений або довгий режим)
Всі чудові речі про це мали б потворно принести їм величезний стрибок попереду AMD.
Будь-які ідеї?
На жаль, це означає, що для цього вам знадобиться дуже просунутий компілятор. Або навіть один на конкретну модель процесора. (Наприклад, новіша версія Itanium з додатковою функцією потребує іншого компілятора).
Коли я працював над проектом WinForms (у цілі був тільки .NET 2.0) у Visual Studio 2010, у мене була ціль компіляції IA-64. Це означає, що існує .NET виконання, яке вдалося скомпілювати для IA-64, а час виконання .NET означає Windows. Крім того, у відповіді Гамільтона згадується Windows NT. Повна роздута ОС, як Windows NT, означає, що існує компілятор, здатний генерувати машинний код IA-64.