HetmanNet написав:0xDADA11C7 написав:Насправді й команди трішки ріжняться, але я щось сумніваюся в суттєвих відмінностях процесорного нутра. От якби АМД не використовувало мікрокод, а навпростець виконувало CISC команди, то була б інша справа. А так - різна реалізація на однакових технологіях.
Саме тут криється фокус, у обох варіантах ми маємо процесори які мають дуже значну кількість наборів команд що спільні для них, але тренд задає Intel. Тобто Intel можна сказати диктує політику яким командам "жити" у цьому світі. Відповідно якщо ти диктуєш правила, то щоб мати це право надалі маєш демонструвати що ти кращий, тож всі вигадані команди на процесорах Intel виконуються як можна швидше ніж на аналогах конкурентів. AMD створює свої набори команд, які ніби мають дати перевагу (якщо без деталей, типу в стилі "одна команда що виконує дві найпопулярніші послідовності команд"), та цього не стається, бо жодний адекватний програміст не захоче орієнтуватися на процесори одного виробника. Тобто коли ти орієнтуєшся на Intel, ти впевнений що на процесорі конкурента 90% знайдеться того самого, що на Intel. Тож пишеш код для Intel та не морочиш голови, це правило що існує від появи мікропроцесорів. Цим користується Intel, йому для цього треба лиш досягати найкращих результатів у часі виконання команд, що є спільними для всіх процесорів даної архітектури. Тому, ніби повільніші за штучними тестами Intel-и в житті часто швидші за аналоги конкурентів. Мета тесту вижати максимальний теоретично можливий бал, а не показати роботу у реаліях.
Дуже смішно, з урахуванням того, що інтелівські процесори підтримують AMDшну 64-бітну архітектуру. Давайте подивимося на набори команд. i7-4770K:
MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, FMA3, F16C, BMI1+BMI2, Intel 64, XD bit, AES-NI
FX-8320
MMX(+), SSE1 - 2 - 3 - 3s - 4.1 - 4.2 - 4a, NX bit, AMD64, AMD-V, AES, CLMUL, AVX, AVX 1.1, XOP, FMA3, FMA4, CVT16, F16C, BMI1 , ABM, TBM
Розбираємо по "авторах":
MMX - Intel
SSE-SSE4.2 - Intel
AVX - Intel
FMA - AMD
F16C, CVT16 - AMD
BMI, ABM, TBM - Intel
AMD64, Intel 64 - AMD
XD bit, NX bit - AMD
AES-NI, AES, CLMUL - Intel
SSE4a - AMD
XOP - AMD
Як бачите, ситуація зовсім не однозначна.
І ще раз повторюю: є зовнішня, віртуальна архітектура (набір команд) і внутрішня; внутрішня там різна (хоч і в дечому схожа), зовнішня - майже однакова.