Попередження: це дещо складніше питання, ніж ви могли зрозуміти, і, звичайно, більше, ніж більшість відповідей. Щоб спробувати висвітлити хоча б трохи більше історії, ця публікація досить довга ...
Перш за все ситуація з відеопам'яттю. Повна пам'ять відеокарти не є (принаймні нормально) безпосередньо видимою в адресному просторі процесора. Зазвичай у вас є "вікно" близько 128-256 мегабайт відеопам'яті, видимого для процесора. Графічний процесор може зіставити різні частини своєї пам’яті у цьому вікні, тому типово ти можеш записати в більшість пам’яті GPU з процесора, але перед тим, як ти можеш це зробити, потрібно повідомити GPU до того, що ти збираєшся написати. Наприклад, коли ви використовуєте DirectX і хочете записати безпосередньо у графічну пам'ять, ви можете це зробити - але для цього ви почнете, зателефонувавши, LockRect
щоб отримати GPU для відображення потрібної пам'яті у вікно (і як як тільки ти закінчиш, дзвонишUnlockRect
щоб він міг зіставити іншу пам'ять за потребою). Принаймні у типовому випадку ви можете налаштувати розмір вікна відео в налаштуваннях BIOS.
По-друге, навіть у 32-бітному режимі процесори x86 підтримують те, що називається Physical Address Extensions (PAE), що дозволяє процесору звертатися до більш ніж 4 Gig. пам'яті. Microsoft підтримує PAE в деяких версіях Windows, але лише відносно дорогий Enterprise Edition Windows Server. Крім того, програма повинна бути написана спеціально для використання AWE. Є лише кілька програм (наприклад, SQL Server Enterprise Edition), які коли-небудь робили це. Підсумок: це можливо, але досить рідко.
Що стосується зчитування 64 біт за раз: останній процесор, який читав дані лише 32 біти за один раз, був 486. Починаючи з Pentium, усі процесори мали 64 бітні шини даних. Зауважте, що шина адреси не є такою ж, як шина даних, тому розширення на 64-бітну шину даних не дозволило процесору працювати з більшою кількістю пам'яті (хоча, як це буває, PAE було додано в Pentium Pro, так що був майже одночасно з розширенням до шини даних 64-біт).
Навіть незважаючи на те, що Pentium міг прочитати 64 біти даних за один тактовий цикл, внутрішньо він (в основному) обробляв дані 32 біти одночасно. Ширша шина в першу чергу допомогла компенсувати різницю швидкості між процесором та основною пам'яттю. Інструкції MMX Pentium MMX підтримували обробку даних в 64-бітних шматках, але це було досить незграбно у використанні, і (зокрема) більшість компіляторів не генерували код MMX, тож вам довелося писати мовою асемблера, щоб використовувати його . Pentium також підтримував 64-бітні (і 80-бітні) операції для чисел з плаваючою комою, але це використовується лише для досить невеликої меншини більшості програмувань (і взагалі було повільніше, ніж робота з цілими числами в будь-якому разі).
Дизайн x86-64 має вдвічі більше регістрів загального призначення, ніж 32-розрядний x86 дизайн, і кожен з цих регістрів має 64 біт шириною. Однак, коли ЦП працює в 32-бітному режимі, можна використовувати лише підмножину регістрів, що існували на 32-бітних процесорах.
На мить повернувшись до плаваючої точки, в 32-бітному режимі математика з плаваючою комою проводиться за допомогою набору інструкцій, розроблених спочатку для математичного співпроцесора Intel 8087. Для цього використовується модель, яка робить досить важким повною мірою використання її можливостей. Intel (та AMD) нещодавно додали "Потокове розширення SIMD" або SSE. Більшість 64-бітних компіляторів генерують код, який може / не використовує SSE замість 8087-сумісної плаваючої точки. "SIMD" в SSE означає "одна інструкція, кілька даних". Це означає, що одна інструкція SSE може виконувати дві операції з плаваючою точкою на двох окремих фрагментах даних. Хоча це не обов'язково вдвічі перевищує швидкість, зазвичай, як мінімум, покращує швидкість.
Нарешті, я, мабуть, мушу зазначити, що є одна частина порівняння, яка взагалі трохи несправедлива. Під час встановлення нової ОС це майже завжди принаймні трохи швидше, ніж ОС, яка використовується досить довго. Програми зберігають дані в реєстрі, на жорсткому диску тощо. Чим більше даних ви додаєте, тим більше роботи, як правило, бере участь у пошуку потрібних даних у будь-який момент. Хоча компанії, що продають "очищувачі реєстрів" і такі часто перебільшують цей ефект, це все одно в деякій мірі. Таким чином, якщо все, що ви робили, було переформатувати ваш жорсткий диск і перевстановити саме ту саму ОС, ви можете розраховувати на деяке поліпшення швидкості - і якщо у вас старі ОС встановлені та активно використовуються протягом тривалого часу , що вдосконалення (все само собою) можебути досить істотним. Принаймні частина покращення швидкості, яку ви бачите, може бути незалежною від будь-якої реальної різниці між двома ОС.
Звичайно, є більше, але ви починаєте розуміти. Справа не стільки в тому, що одна особливість робить величезну різницю, як багато функцій, які зазвичай роблять досить невеликі відмінності окремо, але багато з них додають (або навіть примножують) разом, щоб зробити загалом істотну різницю.