Особливості архітектури 64-розрядних процесорів. Процесори зсередини. Схема платформи AMD Spider

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

10.1 Архітектура Intel Core 2

Восьме покоління процесорів Intel, яке отримало назву Core 2, без частки сумніву можна назвати революційним.

Інженери Intel після досить тривалого відставання від AMD не вигадали кардинально нову архітектуру. Як водиться, все нове – це добре забуте старе. В основу Conroe лягли напрацювання мобільного Pentium M - процесора настільки успішного, що деякі виробники стали застосовувати його не тільки для переносних комп'ютерів, але і для робочих станцій. У свою чергу Pentium M теж з'явився не на порожньому місці. Його прабатьком є ​​Pentium III, який, як відомо, був еволюційним продовженням Pentium Pro.

Відповідний еволюційний ланцюжок виглядає наступним чином: Pentium Pro Pentium II Pentium III Pentium M Core 2.

Цей випадок є прикладом, коли крок назад став значним кроком уперед. Якщо дуже абстрагуватися від деталей, то розробники з Intel зробили таке. Створили до 1995 досить успішний процесор Pentium Pro, наростили його потужність (Pentium II, Pentium III), розробили механізм зниження енергоспоживання (Pentium M), створили ефективну систему взаємодії декількох процесорних ядер (Core 2). Ця схема дуже умовна, тому що на кожному з етапів були й інші істотні доробки (такі як перехід до 64-розрядної архітектури), але деякі спадкові риси все ж таки збереглися.

Залежно від цільового сегмента процесори мають технологічні особливості. Для настільних систем призначені Conroe-L (одне ядро), Allendale (два ядра), Conroe та Wolfdale (два ядра), Kentsfield та Yorkfield (чотири ядра). Кодові імена Merom та Penryn носять продукти, орієнтовані на мобільний сегмент ринку. Останньою реінкарнацією архітектури Core 2 стануть шестиядерні процесори Dunnington.

Наступне за Core 2 покоління процесорів продається під брендом Core i7 (архітектура Nehalem).

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

Що ж змінилося у Intel Core 2 у порівнянні з Pentium 4? Одна з важливих відмінностей – уникнення довгоконвеєрної архітектури NetBrust, головним завданням якої було забезпечити певну перевагу в умовах «гонки гігагерц». Крім того, сталося суттєве скорочення довжини конвеєра. В архітектурі Core його довжина становить 14 ступенів, у той час як у попередньому поколінні процесорів вона дорівнювала 31 ступені (ядро Prescott), а це більш ніж дворазове скорочення. Натомість перші NetBrust-процесори на ядрі Northwood розганялися з 1,6 до 3,4 ГГц. Не зайвим буде нагадати, що таке підвищення тактової частоти загрожує надмірним енергоспоживанням (для топових процесорів TDP воно доходило до 160-170 Вт). Однак, як показувала практика, всі ці гігагерці дуже слабко трансформувалися у зростання продуктивності.

Об'єм L2-кешу у нових моделей варіюється від 3 Мбайт у Wolfdale-3М до 12 Мбайт у Yorkfield.

Перш ніж переходити до вивчення структурної схеми, наголосимо на ключових технологічних моментах, які лежать в основі архітектури Core:

    Intel Wide Dynamic Execution забезпечує виконання до п'яти мікрооперацій за один такт.

    Intel Intelligent Power Capability - це цілий набір технологій, покликаних істотно знизити енергоспоживання.

    Intel Advanced Smart Cache - має на увазі наявність спільної для всіх ядер кеш-пам'яті L2, яка динамічно розподіляється між ними в залежності від завдань, що виконуються.

    Intel Smart Memory Access – комплекс технологій оптимізації алгоритмів доступу до пам'яті та попереднього завантаження даних.

    Intel Advanced Digital Media Boost – це технологія, спрямована на оптимізацію декодування мультимедійного контенту. Дозволяє обробляти всі 128-розрядні команди SSE, SSE2 та SSE3, що широко використовуються в мультимедійних та графічних програмах, за один такт.

    Intel 64 Technology – 64-бітовий (ЕМ64Т) режим цілісної та адресної арифметики. Він дозволяє працювати з числами великої розрядності, а також адресувати понад 1 Тб пам'яті. 32-бітна архітектура дозволяла адресувати трохи більше 4 Гбайт оперативної пам'яті. Це накладає певні обмеження під час роботи з великими обсягами даних.

Особливості побудови та функціонування

Випуск мікропроцесорних комплектів великих інтегральних схем (МПК БІС) з кожним роком зростає. Для задоволення запитів споживачів нині здійснюється виробництво мікропроцесорів та периферійного обладнання, що забезпечує їхню роботу, розрядністю від 8 до 64 біт. На рис. 3 наведено залежності, що характеризують обсяги виробництва мікропроцесорів та мікроконтролерів різної розрядності з 1994 по 2000 включно.

Рис. 3. Обсяги виробництва МП

та мікроконтролерів

З рис. 3 очевидно, що зростання 4-розрядних МП та мікроконтролерів з 1997 р. припинилося. Випуск 8-розрядних пристроїв, принаймні, до 2000 р., продовжуватиме зростати. Основу цього зростання складають мікроконтролери, що застосовуються під час розробки різних пристроївпромислового (верстатобудування, приладобудування, машинобудування, хімічна промисловість тощо) та побутового призначення.

Зростання високорозрядних МП (вище 16 розрядів) менш помітний на тлі низькорозрядних процесорів, але він має стійкість на найближчі 10-15 років.

Найбільшу увагу розробки нових МП приділяється підвищенню їх розрядності. В даний час найбільше загальнотехнічне застосування знайшли 32- і 64-розрядні МП американських фірм Intel, Cyrix, AMD, Apple, Motorola, SUN Microsystems та ін.

32-розрядні МП фірми INTEL 80386 та 80486 були найпопулярнішими мікропроцесорами до появи Pentium. У цих МП реалізовано багато логічних властивостей, які ще недавно вважалися приналежністю великих ЕОМ (захист пам'яті, кеш - пам'ять, сегментована віртуальна пам'ять тощо).

Фірмою Intel було розроблено та випущено кілька модифікацій МП 80386 та 80486 (табл. 1).

Таблиця 1

Мікропроцесор Рік випуску Розрядність ШД Розрядність ША Тактова частота *, МГц Об'єм пам'яті ОЗУ, Мбайт Об'єм кеш-пам'яті, Кбайт
80386 SX 25,33,40 -
80386 DX 25,33,40 -
80386 SL 25,33,40 -
80486 DX 33,40,50
80486 SX
80486 DX2
80486 DX4

* - Тактові частоти різних виробників можуть дещо відрізнятися від табличних значень.

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



Мікропроцесори 80386 Мікро процесори Intel 80386 -

Великий крок у розвитку технології та архітектури мікропроцесорних засобів. Вони були виготовлені за КМОП – технологією з проектною нормою на ширину провідників 1,5 мкм, що дозволила на кристалі площею приблизно 100 мм 2 розмістити близько 275 000 транзисторів. При тактовій частоті 33 МГц МП виконують до 12 млн оп/с. Кристал знаходиться в керамічному корпусі зі 132 висновками.

До основних особливостей архітектури МП 80386 слід зарахувати:

Наявність коштів, що забезпечують реалізацію мультипрограмного (багатозадачного) та розрахованого на багато користувачів режимів роботи МП та режиму “системи віртуальних машин”, у якому користувацькі програми можуть виконуватися паралельно у часі під управлінням різних операційних систем;

Безпосередній доступ до фізичного адресного простору в 4 Гбайт та віртуальної пам'яті ємністю 64 Тбайт (приблизно 70 трлн байт) (для 80386 DX);

Сегментно – сторінкова організація пам'яті;

Висока продуктивність, що в 2 - 3 рази перевершує продуктивність МП 80286 і досягається за рахунок більшої тактової частоти, швидшого доступу до пам'яті завдяки використанню розміщених на кристалі МП кеш - пам'яті, блоку управління та захисту пам'яті (у тому числі блоку швидкого перетворення адрес);

Система команд МП є розширенням системи команд МП 8086, забезпечується програмна сумісність із МП 8086 та 80286 (на рівні двійкових кодів програм);

Обробка даних різних типів: цілі числа, числа з плаваючою точкою, десяткові числа, байти, рядки символів, ланцюжки біт до 4 Гбіт;

Використання в командах 32-, 16-, 8-розрядних операндів;

Наявність вбудованих засобів самотестування, що запускаються сигналом скидання та перевіряють приблизно 75% всіх транзисторів, розташованих на кристалі.

Спрощена структура МП 80386 наведена на рис. 4.

Рис. 4. Структура МП 80386

Блок даних містить вісім 32-розрядних загальних регістрів. З метою створення умов виконання операцій з 16 - і 8 - розрядними словами (зокрема для сумісності з МП 8086 і 80286) у кожному загальному регістрі адресуємо молодше півслово, а кожному з чотирьох 16 - розрядних регістрів адресуємо окремо старший і молодші байти. Для підвищення швидкодії МП в блок даних введено 4-розрядний зсувний регістр ("зсувник") та апаратурні засоби прискореного виконання операцій множення та поділу.

Вектор стану процесора утворюють вміст 32-розрядних лічильника команд (зміщення адреси команди щодо базової адреси) та регістру ознак (прапорців). У регістрі ознак формуються три групи ознак:

Ознаки результату (знака результату, нуля, перенесення, переповнення та інших.);

Ознаки управління (напрямок та ін.);

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

Мікропроцесор через шинний інтерфейс має доступ до зовнішніх 32-розрядної шини адреси, 32-розрядної двонаправленої шині даних, лініях управління шинами, лініями: захоплення (Hold), підтвердження захоплення (Hold Acknowledge) запиту співпроцесора (PERCC).

Пристрій управління (УУ), що містить керуючу пам'ять (УП) мікропрограм, з урахуванням зовнішніх сигналів (зайнято - Busy, помилка - Error, переривання - INTR, NMI, скидання - Reset, подвійна тактова частота - DFG) виробляє керуючі сигнали, що ініціюють відповідні мікрооперації . У МП виконується конвеєрна обробка команд на восьми позиціях, утворених вісьма його основними блоками.

Пам'ять, що використовується користувачем, може бути розділена на кілька сегментів, кожен розміром до 4 Гбайт. Сегменти складаються із сторінок розміром 4 Кбайти.

При роботі з сегментно-сторінковою пам'яттю використовуються розташовані на кристалі МП сегментні регістри та швидкодіючі (приховані від користувача) кеш-пам'яті, що зберігають дескриптори (описувачі) сегментів та сторінок. Так, дескриптор сегмента визначає базову адресу сегмента, адресні межі, умови захисту та інші дані (рис. 5 а).

МП містить такі сегментні регістри: CS – сегмент командних кодів; DS – сегмент даних; SS – сегмент стеку; ES, FS, GS – додаткові сегменти даних. Сегментні регістри зберігають "селектори", що адресують відповідні дескриптори в кеш - пам'яті таблиці дескрипторів сегментів. Самі сегментні регістри в командах явно не адресуються (імовірна адресація).

Рис. 5. Організація сегментування

Формування "лінійної адреси" у сегментованій пам'яті пояснюється рис. 5,б. Адресний покажчик, утворений зміщенням в команді і селектором, що міститься в сегментному регістрі, визначальним відповідний дескриптор сегмента, перетворюється в 32 - розрядний лінійний адресу.

Мікропроцесор 80386 може одночасно виконувати програми, призначені для МП 8086, 80286 і 80386. МП 80386 можливі два режими роботи:

Реальний режим

Захищений режим віртуальної пам'яті

У реальному режимі МП емулює із підвищеною швидкістю МП 8086/8088, працюючи в однопрограмному режимі з адресним простором, обмеженим 1 Мбайт.

У захищеному режимі МП може використовувати весь свій простір і реалізовувати "систему віртуальних 80 '86 - машин" з розподілом пам'яті відповідно до рис. 4.

Рис. 4. Режим віртуальних процесорів 8086

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

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

ний мікропроцесор 80486 (i486) забезпечує більш високу швидкість (до 40 млн. оп/с) виконання прикладних програм, написаних для операційних систем DOS, OS/2, Windows та UNIX, ніж усі попередні моделі МП 80´86. Він програмно сумісний з мікропроцесорами 80286, 80386 DX&SX та містить близько 1,2 млн. транзисторів (разом з кеш-пам'яттю, розташованою на одному з МП кристалі).

Для збільшення продуктивності в процесор введено математичний співпроцесор (крім моделей SX), додаткова надшвидка кеш-пам'ять для зберігання інформації, що часто використовується, обсягом 8 Кбайт, конвеєрна обробка і т.д. Часто використовувані операції виконуються за один цикл, що можна порівняти зі швидкістю виконання RISC - команд. Кеш-пам'ять з'єднана з шиною пакетного обміну даними і дозволяє обмінюватись інформацією зі швидкістю 80/106 Мбайт/сек при частоті 25/33 МГц.

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

Можливості мікропроцесора 80486 включають:

Повну програмну сумісність із МП 80386 DX, 80386 SX, вбудованим 80376(TM) процесором, процесорами 80286, 8086 та 8088;

Реалізацію блоком виконання команд часто зустрічаються операцій за один цикл;

32 - розрядний процесор для виконання арифметичних та логічних операцій;

Вбудований модуль обробки арифметичних операцій з плаваючою точкою для підтримки 32, 64 та 80 -розрядних форматів;

Внутрішню кеш – пам'ять, яка забезпечує швидкий доступдо часто використовуваних даних та операцій;

Сигнали керування шиною для підтримки несуперечності кеш-пам'яті в багатозадачних системах;

Сегментацію, що здійснює керування пам'яттю для створення незалежних, захищених адресних просторів;

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

Оператори, що перезапускаються, які дозволяють перезапуск програми після виключення (необхідні для підтримки посторінкового доступу до віртуальної пам'яті);

Конвеєрне виконання команд, що перекривається за часом з інтерпретацією інших команд;

Регістри налагодження для апаратної підтримки контрольних точок у командах та даних;

Мікропроцесор 80486 має три режими виконання програм:

Захищений режим, де використовується природне безліч 32-розрядних команд процесора. У цьому режимі доступні всі команди та всі його архітектурні можливості.

Режим реальної (прямої) адресації (називається також "реальним режимом"), в якому здійснюється емуляція програмного середовищапроцесора 8086, з деякими додатковими можливостями (такими, наприклад, як можливість перервати даний режим). При перезавантаженні процесор встановлюється саме цей режим.

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

Програмно – доступні регістри МП.Процесор 80486 містить блок регістрів із 16 програмно-доступних регістрів, які можуть використовуватися програмістами. До нього входять:

32 - розрядні регістри загального призначення,

Сегментні регістри, що містять селектори сегментів, що відповідають різним формам доступу до пам'яті.

Системні регістри.

1. Регістри загального призначення - це 32-бітні регістри EAX, EBX, ECX, EDX, EBP, ESP, ESI та EDI. Дані регістри використовуються для зберігання операндів логічних та арифметичних команд. Крім того, вони можуть використовуватися для зберігання операндів при обчисленні адрес (крім регістру ESP, який не може бути використаний як індексний операнд).

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

2. Сегментні регістри CS, DS, SS, ES, FS та GS містять 16-розрядні селектори сегментів, які вказують на таблицю розподілу пам'яті. Ця таблицямістить базові адреси сегментів та іншу інформацію, що регламентує доступом до пам'яті.

У кожний момент часу пам'яті безпосередньо доступні трохи більше шести сегментів. Їхні селектори містяться в сегментних регістрах. Кожен регістр свідчить про конкретний сегмент, використовуваний програмою. Інші сегменти можуть бути використані після завантаження відповідних селекторів сегментні регістри.

Селектор сегмента коду, що містить послідовність команд, що виконуються, міститься в регістрі CS. Процесор 80486 вибирає команди з цього сегмента, використовуючи вміст покажчика команд ЕIP як відносну адресу всередині сегмента. Вміст регістру CS змінюється в результаті виконання міжсегментних команд управління потоком, переривань та винятків.

Виклики підпрограм, запису параметрів та активізація процедур зазвичай потребує стікової області пам'яті. Усі операції зі стеком використовують регістр SS. На відміну від регістру CS, регістр SS може бути завантажений за допомогою команди програми.

Інші чотири регістри - DS, ES, FS і CS, є регістрами сегментів даних, кожен із яких використовується поточної виконуваної програмою. Наявність чотирьох роздільних областей даних має на меті підвищити ефективність програм та безпеку доступу при зверненні до різних типів структур даних, наприклад, при рознесенні по різних сегментах власних даних програмного модуля, даних, отриманих, з модуля вищого рівня, за динамічно створюваних структур даних та даних , що поділяються поточним модулем з іншими модулями.

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

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

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

Вони поділяються на такі категорії:

Реєстр прапорів EFLAGS,

Реєстри управління пам'яттю,

Керівні регістри,

Налагоджувальні регістри,

Тестові регістри.

Реєстр прапорів EFLAGSкерує введенням/виводом, перериваннями, що маскуються, налагодженням, перемиканням між завданнями, а також віртуальним режимом 8086. Прикладними програмами ці прапори повинні ігноруватися, а спроби модифікації їх стану з прикладних програм неприпустимі. У більшості систем спроба зміни системного прапора прикладної програми призводить до виникнення виключення (особливої ​​ситуації).

Регістр прапорів включає:

Прапор AC, що забезпечує режим контролю вирівнювання у віртуальній пам'яті (віртуальний режим 8086),

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

Прапор NT – прапор вкладеності задачі. Мікропроцесор використовує прапор вкладеності завдання для управління послідовністю виконання перерваних та викликаних задач.

Прапор IOPL - рівень привілеїв вводу/виводу. Рівень привілейованості вводу/виводу використовується механізмом захисту для керування доступом до адресного простору вводу/виводу.

Прапор IF дозволу переривань переводить процесор в режим, в якому він відповідає на запити переривань, що маскуються (переривання INTR). Очищення прапора IF скасовує ці переривання. Прапор IF не впливає на особливі ситуації або неперервні (NMI) переривання.

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

Реєстри управління пам'яттюмікропроцесора 40486 задають розташування структур даних, що управляють організацією сегментованої пам'яті. До них відносяться:

Регістр таблиці глобальних дескрипторів GDTR, який містить 32 - бітову базову адресу та 16 -бітову межу сегмента для таблиці глобальних дескрипторів.

Регістр таблиці локальних дескрипторів LDTR, який містить 32 - бітову базову адресу, 16 - бітову межу сегмента та 16 - бітовий селектор сегмента для таблиці локальних дескрипторів.

Регістр таблиці дескриптора переривань IDTR, який містить 32-розрядну базову адресу та 16-розрядну межу сегмента для таблиці дескрипторів переривань. Коли відбувається переривання, вектор переривання використовується як індекс для отримання з даної таблиці дескриптора шлюзу. Останній дотримується покажчика, який використовується для запуску обробника переривань.

Регістр задачі TR, який містить 32 - розрядну базову адресу, 16 - розрядну межу сегмента, атрибути дескриптора і 16 - розрядний селектор сегмента для поточного завдання. Він містить посилання дескриптор сегмента стану завдання, що у таблиці глобального дескриптора.

Керуючі регістри CR0, CR1, CR2 та CR3.У більшості систем завантаження регістрів з прикладних програм неможливе (хоча в незахищених системах таке завантаження дозволяється). Прикладні програми мають можливість зчитувати ці регістри визначення наявності математичного співпроцесора.

Регістр CR0 містить системні прапори, що управляють режимами або вказують на стан процесора в цілому, а не щодо виконання конкретних завдань. Програма не повинна намагатися змінити стан будь-яких бітів у зарезервованих позиціях. Ці зарезервовані біти завжди повинні встановлюватися в стан, який вони мали раніше при зчитуванні.

Регістр CR1 резервується виконання окремих програм, мають складну структуру даних.

Регістр CR2 ​​містить 32-розрядну лінійну адресу, що викликав цей виняток.

Регістр CR3 є базовим регістром сторінки каталогу.

Налагоджувальні регістридають мікропроцесору 80486 розширені можливості налагодження, включаючи контрольні точки даних та засіб встановлювати контрольні точки команд без модифікації кодових сегментів (що може бути корисним при налагодженні ПЗП – резидентного програмного забезпечення). Доступ до цих регістрів мають лише програми з найвищим рівнем привілейованості.

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

Операції зі стеком підтримуються трьома регістрами мікропроцесора:

Регістр сегмента стека SS. Стек розміщується у пам'яті. Кількість стеків у системі обмежується лише максимальною кількістю сегментів. Розмір стека не може перевищувати 4 Гбайт, що відповідає максимальному розміру сегмента для процесора 80486. У кожний момент часу доступний тільки стек, селектор сегмента якого міститься в регістрі SS. Цей стек називається поточним. Регістр SS автоматично використовується процесором для виконання всіх операцій зі стеком.

Реєстр покажчика стека ESP. Регістр ESP містить відносну адресу вершини стека в поточному сегменті стека. Його значення використовується командами виклику підпрограм та повернення, винятками та перериваннями. При занесенні елемента в стек процесор зменшує значення регістру ESP, а потім записує елемент за адресою нової вершини.

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

При використанні регістру EBP для зберігання адреси пам'яті поточний сегмент обов'язково має бути обраний (встановлений регістр SS). Оскільки немає необхідності вказувати сегмент стека в кожній команді, їх кодування стає компактнішим. Для зручного доступу до змінних регістр EBP може використовуватися для адресації інших сегментів.

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

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

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

Для управління пам'яттю використовуються такі засоби, як сегментація пам'яті і підкачування сторінок.

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

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

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

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

Сегментація не є прозорою для прикладних програм. Ці програми повинні в процесі виконання повинні звертатися до тих сегментів, призначених для використання при розробці цих програм.

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

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

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

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

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

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

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

Лінійна адреса, вироблена пристроєм сегментації, використовується безпосередньо як фізична адреса. Для перетворення лінійної адреси у фізичну використовується пристрій підкачки сторінок. Пристрій підкачування сторінок забезпечує інший рівень пам'яті. Воно розбиває лінійний адресний простір на блоки фіксованої довжини (4Кбайт) – сторінки. Логічне адресне місце відображається в лінійному адресному просторі, яке відображається на кілька сторінок. Сторінки можуть бути як у пам'яті, так і на диску.

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

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

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

Сегментований адресний простір з різними сегментами для простору коду, даних та стеку. Може бути використано до 16383 лінійних адресних просторів, розміром до 4 Гбайт кожне.

Обидві ці моделі також можуть забезпечувати захист пам'яті.

Несегментована чи "плоска" модель. Несегментована модель – це найпростіша модель пам'яті. Ефективний доступ до осередків пам'яті досягається відображенням всіх сегментів у єдиний лінійний адресний простір. Внаслідок цього всі операції з пам'яттю звертаються до загального простору пам'яті. У плоскій моделі сегменти можуть покривати весь 4 Гбайт діапазон фізичних адрес, або тільки адреси, які відображаються на фізичну пам'ять.

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

Сегментована модель. У сегментованій моделі організації пам'яті логічний адресний простір містить до 16 383 сегментів, розміром до 4 Гбайт кожен, тобто загальний обсяг може досягати 246 байт (64 Тбайт). МП відображає це 64 - терабайтовий логічний адресний простір у фізичний адресний простір (до 4 Гбайт).

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

Доступ до сегментованого адресного простору здійснюється за допомогою покажчика, що складається з двох частин:

16 - розрядне поле селектора сегмента, яке ідентифікує сегмент.

Зміщення, яке являє собою 32-розрядну адресу всередині сегмента.

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

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

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

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

був розроблений процесор Pentium P5 класу 80'86, який використовує архітектурну концепцію CISC (Completed Instruction Set Computer). Корпус процесора квадратний із 321 контактними висновками матричного типу, тобто висновки розташовані по всьому периметру корпусу в кілька рядів (конструктив Socket 7).

Він має тактову частоту до 100 МГц і більше, виконаний за технологією субмікронної (з шириною провідників менше 1 мкм), що дозволила розмістити на кристалі близько 3,1 млн. транзисторів. Завдяки такій компактності скорочується час передачі всередині мікропроцесора, і цим забезпечується більш висока продуктивність роботи системи загалом (до 200 млн. оп/с).

Процесор має виконану на кристалі процесора кеш-пам'ять першого рівня (L1) об'ємом 32 Кбайт, розбиту на два банки: кеш-пам'ять даних та кеш-пам'яті команд, кожна з яких має об'єм 16 Кбайт. Кеш-пам'ять призначена для тимчасового зберігання багаторазово використовуваних програмою команд і даних, що дозволяє процесору рідше звертатися за ними до зовнішньої повільно основної пам'яті (ОП). Кожен банк пам'яті з'єднується з ядром власною шиною і забезпечує високошвидкісний обмін інформацією з двох фізично рознесених шин. Така архітектура забезпечує усунення конфліктів у системі під час передачі команд та даних.

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

Незважаючи на велику обчислювальну потужність процесора Р5, обробка програм тривимірної графіки, Число яких неухильно зростає, є найвужчим місцем при обробці команд. Збільшення ж продуктивності процесора за рахунок підвищення тактовою частотоюмалоефективно. Це пов'язано з тим, що підвищення тактової частоти вдвічі веде до збільшення продуктивності в інтервалі 15 - 45% в залежності від тактової частоти (що вище тактова частота процесора, тим менше приріст продуктивності). Ця обставина поставила завдання пошуку інших шляхів підвищення продуктивності процесорів.

Одним із таких шляхів є збільшення ємності кеш-пам'яті першого рівня з 16 до 32 Кбайт, другий шлях – впровадження технології ММХ (ММХ – Multi Media Extension).

Збільшення ємності кеш-пам'яті забезпечує збільшення ймовірності знаходження даних у кеш-пам'яті при їх зчитуванні процесором. Так при обсязі кеш-пам'яті 8 Кбайт процесор у більш ніж 80% випадків звернення до пам'яті без «промаху» знаходить дані в кеш-пам'яті. Дворазове збільшення обсягу кеш-пам'яті забезпечує 5% приріст «попадань», а чотириразове збільшення – приріст близько 8%. Очевидно, що подальше нарощування виявляється невиправданим: кожне подальше подвоєння обсягу приносить лише відсоток (або менше) збільшення ймовірності «влучення». Іншими словами, 32 Кбайт – оптимальний обсяг, і тому кеш-пам'ять нового процесора Pentium була збільшена лише вдвічі.

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

У конвеєр команд був введений додатковий ступінь визначення взаємозалежності інструкцій, завдяки чому позначилося можливим удосконалити механізм передбачення розгалужень. Всі описані заходи дозволили збільшити продуктивність приблизно на 10-20%.

Другий шлях, пов'язаний із використанням технології ММХ, зобов'язаний широкому використанню мультимедійних програм. ММХ – це архітектура процесора, що забезпечує ефективне виконання команд тривимірної графіки за рахунок високошвидкісної обробки речових чисел (чисел із плаваючою точкою). Вона включає спеціальні набори команд та пристроїв, які використовують принцип виконання одного потоку команд над безліччю потоків даних – SIMD (Single Instruction Multiplay Data). У цьому випадку забезпечується конвеєризація при виконанні команд: наприклад, у 64-розрядному арифметико-логічному пристрої одночасно можуть виконуватися дві 32-розрядні, чотири 16-розрядні або вісім 8-розрядних операцій; введені комбіновані команди типу "множення зі складанням", інструкції пакування - розпакування даних тощо.

Так, якщо для виконання більшості офісних завдань вистачало навіть продуктивності 100 МГц Pentium, то повнорозмірне екранне відео з одночасною обробкою звукової інформації виявлялося на межі можливостей самих продуктивних процесорів. У той же час обробку аудіо- та відеоінформації цілком можна було б доручити спеціалізованому вбудованому співпроцесору, подібно до Pentium для прискорення операцій з плаваючою комою. Для того, щоб якнайменше переробляти пристрій дешифрації команд, коди мультимедійних інструкцій були зроблені збігаються з кодами математичного співпроцесора і заборонена його одночасна робота з вбудованим мультимедійним співпроцесором. У результаті обробки мультимедіа інформації включається одні співпроцесор, при математичних розрахунках - інший. Перемикання здійснюється установкою чи скиданням відповідного прапора. Таким чином, подібний мультимедійний процесор може працювати з аудіо- і відеоінформацією на 50-80% швидше свого не мультимедійного аналога.

Перші мультимедійні процесори на 166 МГц P5 ММХ та на 200 МГц P5 ММХ з'явилися у січні 1997 р. Корпуси процесорів P5 та P5 MMX аналогічні за виконанням Р5.

Архітектурно-структурні особливості.Характерною рисою процесорів Р5 є численні архітектурно-структурні особливості, які включають:

Використання суперскалярної архітектури;

Роздільне кешування програмного коду та даних;

Наявність буфера адреси розгалуження;

Використання високопродуктивного блоку обчислень із плаваючою комою;

Наявність розширеної 64 – бітової шини даних;

забезпечення підтримки багатопроцесорного режиму роботи;

Застосування засобів завдання розміру сторінки пам'яті;

Використання засобів виявлення помилок та функціональної надмірності;

Управління продуктивністю;

Нарощування за допомогою Intel Overdrive процесора.

Суперскалярна архітектура.Суперскалярна архітектура Р5 є сумісною тільки з INTEL двоконвеєрною архітектурою, що дозволяє процесору досягати нових рівнів продуктивності за допомогою виконання більш ніж однієї команди за один період тактової частоти.

Термін "суперскалярна" означає мікропроцесорну архітектуру, яка містить більше одного обчислювального блоку. Ці обчислювальні блоки, або конвеєри є вузлами, де відбуваються всі основні процеси обробки даних і команд. Можливість виконувати безліч команд за період тактової частоти існує завдяки тому, що Р5, маючи два конвеєри, може виконувати дві інструкції одночасно. Подвійний конвеєр Р5 виконує просту команду за п'ять етапів:

Попередня підготовка,

Перше декодування (декодування команди),

Друге декодування (генерація адреси),

Виконання,

Зворотне розвантаження.

Поетапне виконання команд дозволяє кільком командам перебувати у різних стадіях виконання, збільшуючи цим обчислювальну продуктивність.

Двоконвеєрна обробка даних здійснюється двома секціями обробки даних – U та V (рис. 5).

Кожна з них включає блок формування адреси та АЛУ. Первинна U - секція може виконувати всі операції над цілими числами та операції з плаваючою комою. Вторинна V-секція може виконувати лише прості операції з цілими числами та частково – операції з плаваючою комою. Блоки читання-запису, що входять в секції, розділені на блоки читання і блоки запису. Кожна з них забезпечена своїм буфером-накопичувачем. Таке виконання ядра процесора дозволяє послідовно йдуть команди читання та записи вести одночасно, що повністю виключає конфліктні ситуації в магістралі та підвищує швидкість при вводі-виводі команд.

Рис. 5. Архітектура мікропроцесора Pentium Р5

Для ефективного обміну внутрішня магістраль виконана 64-розрядною. При цьому вона є двома незалежними 32-розрядними шинами, до кожної з якої можуть підключатися пристрої залежно від її стану – вільна шина або зайнята передачею інформації.

Одночасне виконання двох команд у різних секціях називається здвоюванням. Не всі команди, що послідовно виконуються, допускають здвоювання. У цьому випадку використовується лише одна U – секція. Щоб досягти максимальної ефективності роботи процесора P5, бажано перекомпілювати програми так, щоб можна було подвоїти найбільшу кількість команд.

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

Роздільне кешування програмного коду та даних є іншим найважливішим удосконаленням, реалізованим у Р5. У ньому є кеш-пам'ять першого рівня L1, розбита на дві кеш-пам'яті по 8 (пізніше по 16) Кбайт кожен – програмний кеш та кеш даних, керовані своїм контролером. Схеми кеш-контролера та самі блоки кеш-пам'яті розміщені на кристалі МП. У кеш-пам'ять із різних областей системного ОЗУ копіюється інформація - дані та програмні коди.

Загальна характеристика 64-розрядних процесорів

Перевагою 64-бітних процесорів над своїми 32-бітними аналогами є розширення адресного простору, збільшення розрядності та збільшення кількості регістрів загального призначення.

Розширений 64-бітний адресний простір теоретично дозволяє процесору працювати з 16 екзабайт (2 64) фізичної пам'яті в рамках плоскої моделі організації. І хоча сучасні 64-розрядні процесори на практиці можуть забезпечити доступ лише до 1 терабайту (2 40) пам'яті, цей показник все одно вже значно перевершує можливості 32-бітної адресації. Збільшення обсягу доступної пам'яті, у свою чергу, дає можливість виключити або сильно скоротити кількість вкрай повільних операцій з підкачування даних з диска.

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

Варто пам'ятати, що для отримання реального приросту продуктивності на 64-розрядному процесорі необхідно транспонувати програму із застосуванням 64-бітної версії компілятора з огляду на зміну моделі даних (нові розмірності типів). Запуск неадаптованого для 64-бітної платформи програми, навпаки, може, в залежності від особливостей архітектури використовуваного процесора, призвести до істотних втрат у продуктивності.

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

64-бітне розширення класичної 32-бітної архітектури IA32 було запропоновано в 2002 році компанією AMD (спочатку називалося x86-64, зараз – AMD64) у процесорах сімейства К8. Через деякий час компанією Intel було запропоновано власне позначення – EM64T (Extended Memory 64-bit Technology). Але, незалежно від назви, суть нової архітектури та сама: розрядність основних внутрішніх регістрів 64-бітних процесорів подвоїлася (з 32 до 64 біт), а 32-бітові команди x86-коду отримали 64-бітові аналоги. Крім того, за рахунок розширення розрядності шини адрес обсяг адресованої процесором пам'яті істотно збільшився.

Для компаній Intel та Hewlett-Packard не існує "проблеми 2000 року" - для них це рік нових можливостей. Наприкінці 1999 року Intel планує представити Merced – перший процесор, збудований з використанням архітектури нового покоління, спільно розробленої двома компаніями. Хоча ця 64-розрядна архітектура заснована на багаторічних дослідженнях Intel, HP, інших компаній та університетів, вона радикально відрізняється від усього, що було й досі представлено на ринку. Досягне ця архітектура успіху чи ні, очевидно вже зараз: вона змінить всю комп'ютерну індустрію.

Ця архітектура, відома під назвою Intel Architecture-64 (IA-64), повністю "пориває з минулим". IA-64 не є як 64-розрядним розширенням 32-розрядної архітектури х86 компанії Intel, так і переробкою 64-розрядної архітектури PA-RISC компанії HP. IA-64 є щось абсолютно нове - передову архітектуру, що використовує довгі слова команд (long instruction words - LIW), предикати команд (instruction predication), усунення розгалужень (branch elimination), попереднє завантаження даних (speculative loading) та інші хитрощі для того , щоб "витягти більше паралелізму" з програмного коду.

Незважаючи на те, що Intel і HP обіцяли домогтися зворотної сумісності з існуючим програмним забезпеченням, що працюють на процесорах архітектури х86 і PA-RISC, вони досі не розголошують, як це буде зроблено. Насправді, забезпечити таку сумісність зовсім не просто; досить згадати набагато менш кардинальний перехід з 16-розрядною на 32-розрядну архітектуру х86, який тривав 12 років і досі не завершений.

Щодо сумісності, слід зазначити, що але в Merced насправді існує два режими декодування команд VLIW та старий CISC. Тобто. програми переключаються у необхідний режим виконання. В архітектурі х86 було додано ряд команд для переходу в новий режим, а також передачі даних. У IA-64 такі команди є спочатку. Отже тепер ОС утримуватимуть і 64-х розрядну частину на IA-64 і стару 32-х розрядну.

Щоправда, перехід до архітектури IA-64 найближчим часом навряд чи торкнеться більшості користувачів, оскільки Intel заявила, що Merced розробляється для серверів та робочих станцій класу high-end, а не для комп'ютерів середнього рівня. Фактично компанія заявила, що IA-64 не замінить х86 в найближчому майбутньому. Схоже, що Intel та інші постачальники продовжать розробляти чіпи х86.

Перед тим, як заглибитися в технічні деталі, спробуємо зрозуміти, чому Intel і HP ризикнули вдатися до таких кардинальних змін. Причина зводиться до наступного: вони вважають, що CISC і RISC-архітектури вичерпали себе.

Невеликий екскурс у минуле. Архітектура х86 компанії Intel – CISC архітектура, що з'явилася у 1978 році. У ті часи процесори являли собою скалярні пристрої (тобто могли в кожний момент часу виконувати тільки одну команду), причому конвеєрів практично не було. Процесори містили десятки тисяч транзисторів. PA-RISC компанії HP була розроблена в 1986 році, коли технологія суперскалярних (з можливістю виконання кількох команд одночасно) конвеєрів тільки-но почала розвиватися. Процесори містили сотні тисяч транзисторів. Наприкінці 90-х найбільш досконалі процесори містять мільйони транзисторів. На момент початку випуску Merced компанія Intel планує перейти на 0.18-мікронну технологію замість нинішньої 0.25-мікронної. Вже перші чіпи архітектури IA-64 утримуватимуть десятки мільйонів транзисторів. У подальших модифікаціях їхня кількість збільшиться до сотень мільйонів.

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

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

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

Говорячи про те, що CISC- та RISC-архітектури вичерпали себе, Intel та HP мають на увазі обидві ці проблеми. У двох розлогих інтерв'ю журналу BYTE вони розкрили деякі деталі архітектури IA-64.

  • Команди у форматі IA-64 упаковані по три в 128-бітний пакет для найшвидшої обробки. Зазвичай це називають "LIW encoding". (Російський аналог підібрати складно. Найбільш адекватно, на мій погляд, перекласти як "кодування в довгі слова команд".) Проте компанія Intel уникає такої назви, заявляючи, що з нею пов'язані "негативні асоціації" (negative connotation). З тієї ж причини Intel не любить називати самі команди RISC-подібними (RISC-like), навіть незважаючи на те, що вони мають фіксовану довжину і імовірно оптимізовані для виконання за один такт в ядрі, що не потребує мікрокоду. Intel вважає за краще називати свою нову LIW-технологію Explicitly Parallel Instruction Computing або EPIC (Обчислення з Явною Паралельністю Інструкцій, де "явною" означає явно вказану при трансляції). У будь-якому випадку формат команд IA-64 не має нічого спільного з х86. Команди Х86 можуть мати довжину від 8 до 108 біт, і процесор повинен послідовно декодувати кожну команду після визначення її меж.
  • Кожен 128-бітний пакет містить шаблон (template) довжиною кілька біт, що міститься в нього компілятором, який вказує процесору, які з команд можуть виконуватися паралельно. Тепер процесору не потрібно буде аналізувати потік команд у процесі виконання для виявлення "прихованого паралелізму". Натомість наявність паралелізму визначає компілятор і поміщає інформацію в код програми. Кожна команда (як для обчислень, так і для обчислень з плаваючою точкою) містить три 7-бітових поля регістру загального призначення (РОН). З цього випливає, що процесори архітектури IA-64 містять 128 цілих РОН і 128 регістрів для обчислень з плаваючою точкою. Усі вони доступні програмісту і є регістрами з довільним доступом (programmer-visible random-access registers). Порівняно з процесорами х86, у яких всього вісім цілих РОН і стек глибини 8 для обчислень з плаваючою точкою, IA-64 набагато "ширше" і, відповідно, буде рідше простоювати через "нестачі регістрів".
  • Компілятори для IA-64 будуть використовувати технологію "відзначених команд" (predication) для усунення втрат продуктивності через неправильно передбачені переходи та необхідність пропуску ділянок коду після розгалужень. Коли процесор зустрічає "відзначене" розгалуження у процесі виконання програми, він починає одночасно виконувати усі гілки. Після того, як буде визначена "істинна" гілка, процесор зберігає необхідні результати та скидає решту.
  • Компілятори для IA-64 також переглядатимуть вихідний код з метою пошуку команд, що використовують дані з пам'яті. Знайшовши таку команду, вони додаватимуть пару команд - команду попереднього завантаження (speculative loading) та перевірки завантаження (speculative check). Під час виконання програми перша з команд завантажує дані на згадку до того, як вони знадобляться програмі. Друга команда перевіряє, чи успішно відбулося завантаження, перш ніж дозволити програмі використовувати ці дані. Попереднє завантаження дозволяє зменшити втрати продуктивності через затримки при доступі до пам'яті, а також підвищити паралелізм.

З усього вищесказаного слід, що компілятори для процесорів архітектури IA-64 повинні бути набагато розумнішими і краще знати мікроархітектуру процесора, код для якого вони виробляють. Існуючі чіпи, у тому числі і RISC-процесори, виробляють набагато більше оптимізації на етапі виконання програм, навіть при використанні компіляторів, що оптимізують. IA-64 перекладає майже всю роботу з оптимізації потоку команд на компілятор. Таким чином, програми, скомпільовані для одного покоління процесорів архітектури IA-64, на процесорах наступного покоління без перекомпіляції можуть виконуватись неефективно. Це ставить перед постачальниками нелегке завдання з випуску кількох версій файлів для досягнення максимальної продуктивності.

Іншим не дуже приємним наслідком буде збільшення розмірів коду, оскільки команди IA-64 довші, ніж 32-бітові RISC-команди (близько 40 біт). Компіляція при цьому займатиме більше часу, оскільки IA-64, як було зазначено, вимагає від компілятора набагато більше дій. Intel і HP заявили, що вже працюють разом із постачальниками засобів розробки над переробкою цих програмних продуктів.

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

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

Коли компілятор для IA-64 знаходить оператор розгалуження у вихідному коді, він досліджує розгалуження, визначаючи, чи варто його відзначати. Якщо таке рішення прийнято, компілятор позначає всі команди, що належать до одного шляху розгалуження, унікальним ідентифікатором, який називається предикатом (predicate). Наприклад, шлях, який відповідає значенню умови розгалуження TRUE, позначається предикатом Р1, а кожна команда шляху, що відповідає значенню умови розгалуження FALSE - предикатом Р2. Система команд IA-64 визначає для кожної команди 6-бітове поле для зберігання цього предикату. Таким чином, одночасно можуть бути використані 64 різних предикатів. Після того, як команди "позначено", компілятор визначає, які з них можуть виконуватись паралельно. Це знову вимагає від компілятора знання архітектури конкретного процесора, оскільки різні чіпи архітектури IA-64 можуть мати різну кількість і тип функціональних вузлів. Крім того, компілятор, природно, повинен враховувати залежності даних (дві команди, одна з яких використовує результат іншої, не можуть виконуватися паралельно). Оскільки кожен шлях розгалуження явно не залежить від інших, якась "кількість паралелізму" майже завжди буде знайдена.

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

Після цього компілятор транслює вихідний код машинний і упаковує команди в 128-бітові пакети. Шаблон пакета (bundle"s template field) вказує не тільки на те, які команди в пакеті можуть виконуватися незалежно, але і які команди з наступного пакета можуть виконуватися паралельно. Команди в пакетах не обов'язково повинні бути розташовані в тому ж порядку, що і в машинному коді, і можуть належати до різних шляхів розгалуження.Компілятор може також поміщати в один пакет залежні та незалежні команди, оскільки можливість паралельного виконання визначається шаблоном пакета. додає команд "Немає операції" (NOPS) для доповнення пакетів.

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

Вочевидь, рано чи пізно процесор нарешті обчислить значення умови розгалуження у нашому операторі IF-THEN-ELSE. Припустимо, воно одно TRUE, отже, правильний шлях відзначений предикатом Р1. 6-бітному полю предикату відповідає набір з 64 предикатних регістрів (predicate registers) Р0-Р63 завдовжки 1 біт. Процесор записує 1 в регістр Р1 і 0 у решту.

До цього часу процесор, можливо, вже виконав кілька команд, що відповідають обом можливим шляхам, але досі не зберіг результат. Перед тим, як це зробити, процесор перевіряє відповідний предикатний регістр. Якщо ньому 1 - команда вірна і процесор завершує її виконання і зберігає результат. Якщо 0 – результат скидається.

Технологія "відзначених команд" суттєво знижує негативний вплив розгалужень на машинному рівні. У той самий час, якщо компілятор не " відмітив " розгалуження, IA-64 діє майже як і, як і сучасні процесори: намагається передбачити шлях розгалуження тощо. Випробування показали, що описана технологія дозволяє усунути більше половини розгалужень у типовій програмі, і, отже, зменшити більш ніж удвічі число можливих помилоку пророкуваннях.

Іншою ключовою особливістю IA-64 є попереднє завантаження даних. Вона дозволяє не тільки завантажувати дані з пам'яті до того, як вони знадобляться програмі, але й генерувати виняток лише у випадку, якщо завантаження пройшло невдало. Мета попереднього завантаження - розділити власне завантаження та використання даних, що дозволяє уникнути простою процесора. Як і в технології "відзначених команд" тут також поєднується оптимізація на етапі компіляції та на етапі виконання.

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

На етапі виконання процесор спочатку виявляє команду попереднього завантаження та, відповідно, намагається завантажити дані з пам'яті. Іноді спроба виявляється невдалою - наприклад, команда, яка вимагає дані, перебуває після розгалуження, умови якого ще не обчислені. "Звичайний" процесор відразу генерує виняток. IA-64 відкладає генерацію виключення доти, коли зустріне відповідну команду перевірки завантаження. Але до цього часу умови розгалуження, що викликали виняток, вже будуть обчислені. Якщо команда, що ініціювала попереднє завантаження, відноситься до невірного шляху, завантаження визнається невдалим і генерується виняток. Якщо ж шлях вірний, то виняток взагалі не генерується. Таким чином, попереднє завантаження в архітектурі IA-64 працює аналогічно до структури типу TRY-CATCH.

Можливість розташовувати команду попереднього завантаження до розгалуження дуже істотна, оскільки дозволяє завантажувати дані задовго до використання (нагадаю, що у середньому кожна шоста команда є командою розгалуження).

У 80-ті роки деякі розробники RISC-процесорів висміювали CISC-архітектуру і пророкували швидку смерть сімейства х86. Але технології та бізнес – різні речі. Незважаючи на технологічні переваги RISC-архітектури, величезні ресурси корпорації Intel та панування операційних систем DOS та Windows призвели до того, що процесори архітектури х86 залишаються конкурентоспроможними досі. Тепер Intel заявляє, що RISC-архітектура застаріла. Чи не робить корпорація тієї ж помилки? У будь-якому випадку, до появи першого процесора архітектури IA-64 залишається ще два роки, і у конкурентів є час вжити заходів у відповідь.

Питання: Архітектура процесора – що це?
Відповідь: Термін "архітектура процесора" в даний час не має однозначного тлумачення З погляду програмістів, під архітектурою процесора мається на увазі його здатність виконувати певний набір машинних кодів. Більшість сучасних десктопних CPU відносяться до сімейства x86 або Intel-сумісних процесорів архітектури IA32 (архітектура 32-бітних процесорів Intel). Її основа була закладена компанією Intel у процесорі i80386, однак у наступних поколіннях процесорів вона була доповнена та розширена як самої Intel (введені нові набори команд MMX, SSE, SSE2 та SSE3), так і сторонніми виробниками (набори команд EMMX, 3DNow! та Extended 3DNow!, Розроблені компанією AMD). Однак розробники комп'ютерного заліза вкладають у поняття "архітектура процесора" (іноді, щоби остаточно не заплутатися, використовується термін "мікроархітектура") дещо інший сенс. З їхньої точки зору, архітектура процесора відображає основні принципи внутрішньої організації конкретних сімейств процесорів. Наприклад, архітектура процесорів Intel Pentium позначалася як Р5, процесорів Pentium II та Pentium III – Р6, а популярні в недавньому минулому Pentium 4 відносилися до архітектури NetBurst. Після того, як компанія Intel закрила архітектуру Р5 для сторонніх виробників, її основний конкурент – компанія AMD була змушена розробити власну архітектуру – К7 для процесорів Athlon та Athlon XP, та К8 для Athlon 64.

Питання: Які процесори кращі, 64-бітові чи 32-бітові? І чому?
Відповідь: Досить вдале 64-бітне розширення класичної 32-бітної архітектури IA32 було запропоновано в 2002 році компанією AMD (спочатку називалося x86-64, зараз - AMD64) у процесорах сімейства К8. Через деякий час компанією Intel було запропоновано власне позначення – EM64T (Extended Memory 64-bit Technology). Але, незалежно від назви, суть нової архітектури та сама: розрядність основних внутрішніх регістрів 64-бітних процесорів подвоїлася (з 32 до 64 біт), а 32-бітові команди x86-коду отримали 64-бітові аналоги. Крім того, за рахунок розширення розрядності шини адрес обсяг адресованої процесором пам'яті істотно збільшився.

І все. Так що ті, хто очікує від 64-бітних CPU скільки-небудь істотного приросту продуктивності, будуть розчаровані - їх продуктивність у переважній більшості сучасних додатків (які в масі своїй заточені під IA32 і навряд чи в найближчому майбутньому будуть перекомпілювані під AMD6) та ж, що й у старих добрих 32-бітових процесорів. Весь потенціал 64-бітної архітектури може розкритися лише у віддаленому майбутньому, коли у масових кількостях з'являться (а, може, і не з'являться) програми, оптимізовані під нову архітектуру. У будь-якому випадку, найбільш ефективний перехід на 64-біт буде для програм, що працюють з базами даних, програм класу CAD/CAE, а також програм для роботи з цифровим контентом.

Запитання: Що таке процесорне ядро?
Відповідь: В рамках однієї і тієї ж архітектури різні процесори можуть досить сильно відрізнятися один від одного І ці відмінності втілюються в різноманітних процесорних ядрах, що володіють певним набором строго обумовлених характеристик. Найчастіше ці відмінності втілюються у різних частотах системної шини (FSB), розмірах кешу другого рівня, підтримці тих чи інших нових систем команд чи технологічних процесах, якими виготовляються процесори. Нерідко зміна ядра в тому самому сімействі процесорів тягне за собою заміну процесорного роз'єму, з чого випливають питання подальшої сумісності материнських плат. Однак у процесі вдосконалення ядра, виробникам доводиться вносити до нього незначні зміни, які можуть претендувати на "власне ім'я". Такі зміни називаються ревізіями ядра і, найчастіше, позначаються цифробуквенними комбінаціями. Однак у нових ревізіях одного й того ж ядра можуть зустрічатися досить помітні нововведення. Так, компанія Intel запровадила підтримку 64-бітної архітектури EM64T в окремі процесори сімейства Pentium 4 саме у процесі зміни ревізії.

Питання: У чому полягає перевага двоядерних процесорів перед одноядерними?
Відповідь: Найзначнішою подією 2005 року стала поява двоядерних процесорів На цей час класичні одноядерні CPU практично повністю вичерпали резерви зростання продуктивності з допомогою підвищення робочої частоти. Каменем спотикання стало не лише надто високе тепловиділення процесорів, що працюють на високих частотах, а й проблеми зі стабільністю. Так що екстенсивний шлях розвитку процесорів на найближчі роки був замовлений, і їх виробникам хоч-не-хоч довелося освоювати новий, інтенсивний шлях підвищення продуктивності продукції. Найрозумнішою на ринку десктопних CPU, як завжди, виявилася Intel, що першою анонсувала двоядерні процесори Intel Pentium D і Intel Extreme Edition. Втім, AMD з Athlon64 X2 відстала від конкурента буквально за лічені дні. Безперечною перевагою двоядерників першого покоління, до яких належать вищезгадані процесори, є їхня повна сумісність з існуючими системними платами(Звісно, ​​досить сучасними, у яких доведеться лише оновити BIOS). Друге покоління двоядерних процесорів, зокрема, Intel Core 2 Duo, "вимагає" спеціально розроблених для них чіпсетів і зі старими материнськими платами не працює.

Не слід забувати, що, на сьогоднішній день для роботи з двоядерними процесорами більш менш оптимізовано в основному тільки професійне ПЗ (включаючи роботу з графікою, аудіо- та відео даними), тоді як для офісного або домашнього користувача друге процесорне ядро ​​іноді приносить користь, але набагато частіше є мертвим вантажем. Користь від двоядерних процесорів у разі видно неозброєним поглядом лише тоді, як у комп'ютері запущені будь-які фонові завдання (перевірка на віруси, програмний файервол тощо.). Щодо приросту продуктивності в існуючих іграх, то він мінімальний, хоча вже з'явилися перші ігри популярних жанрів, які повноцінно використовують переваги від використання другого ядра.

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

Питання: Що таке кеш?
Відповідь: У всіх сучасних процесорахє кеш (англійською - cache) - масив надшвидкісної оперативної пам'яті, що є буфером між контролером порівняно повільною системної пам'ятіта процесором. У цьому буфері зберігаються блоки даних, з якими CPU працює зараз, завдяки чому суттєво зменшується кількість звернень процесора до надзвичайно повільної (порівняно зі швидкістю роботи процесора) системної пам'яті. Тим самим помітно зростає загальна продуктивність процесора.

При цьому в сучасних процесорах кеш давно не є єдиним масивом пам'яті як раніше, а розділений на кілька рівнів. Найбільш швидкий, але відносно невеликий за обсягом кеш першого рівня (який позначається як L1), з яким працює ядро ​​процесора, найчастіше ділиться на дві половини - кеш інструкцій та кеш даних. З кешем L1 взаємодіє кеш другого рівня - L2, який, як правило, набагато більший за обсягом і є змішаним, без поділу на кеш команд та кеш даних. Деякі десктопні процесори, наприклад серверних процесорів, також іноді обзаводяться кешем третього рівня L3. Кеш L3 зазвичай ще більший за розміром, хоча і трохи повільніше, ніж L2 (за рахунок того, що шина між L2 і L3 більш вузька, ніж шина між L1 і L2), однак його швидкість, у будь-якому випадку, незрівнянно вища, ніж швидкість системної пам'яті

Кеш буває двох типів: ексклюзивний та не ексклюзивний кеш. У першому випадку інформація в кешах всіх рівнів чітко розмежована - у кожному з них міститься виключно оригінальна, тоді як у разі неексклюзивного кешу інформація може дублюватися на всіх рівнях кешування. Сьогодні важко сказати, яка з цих двох схем правильніша – і в тій, і в іншій є як мінуси, так і плюси. Ексклюзивна схема кешування використовується у процесорах AMD, тоді як не ексклюзивна – у процесорах Intel.

Запитання: Що таке процесорна шина?
Відповідь: Процесорна (інакше - системна) шина, яку найчастіше називають FSB (Front Side Bus), є сукупністю сигнальних ліній, об'єднаних за своїм призначенням (дані, адреси, управління), які мають певні електричні характеристики та протоколи передачі інформації. Таким чином, FSB виступає в якості магістрального каналу між процесором (або процесорами) та іншими пристроями в комп'ютері: пам'яттю, відеокартою, жорстким дискомі так далі. Безпосередньо до системній шиніпідключений тільки CPU, решта пристроїв приєднуються до неї через спеціальні контролери, зосереджені в основному в північному мосту набору системної логіки (чіпсета) материнської плати. Хоча можуть бути і винятки - так, в процесорах AMD сімейства К8 контролер пам'яті інтегрований безпосередньо в процесор, забезпечуючи тим самим набагато ефективніший інтерфейс пам'ять-CPU, ніж рішення від Intel, що зберігають вірність класичним канонам організації зовнішнього інтерфейсу процесора. Основні параметри FSB деяких процесорів наведено в табл.

Процесор частота FSB, МГц Тип FSB Теоретична пропускна здатність FSB, Мб/с
Intel Pentium III 100/133 AGTL+ 800/1066
Intel Pentium 4 100/133/200 QPB 3200/4266/6400
Intel Pentium D 133/200 QPB 4266/6400
Intel Pentium 4 EE 200/266 QPB 6400/8533
Intel Core 133/166 QPB 4266/5333
Intel Core 2 200/266 QPB 6400/8533
AMD Athlon 100/133 EV6 1600/2133
AMD Athlon XP 133/166/200 EV6 2133/2666/3200
AMD Sempron 800 HyperTransport <6400
AMD Athlon 64 800/1000 HyperTransport 6400/8000

Процесори компанії Intel використовують системну шину QPB (Quad Pumped Bus), яка передає дані чотири рази за такт, тоді як системна шина EV6 процесорів AMD Athlon та Athlon XP передає дані двічі за такт (Double Data Rate). В архітектурі AMD64, що використовується компанією AMD у процесорах лінійок Athlon 64/FX/Opteron, застосовано новий підхід до організації інтерфейсу CPU - тут замість процесорної шини FSB і для спілкування з іншими процесорами використовуються: швидкісна послідовна (пакетна) шина HyperTransport, побудована за схемою Peer -to-Peer (крапка-крапка), що забезпечує високу швидкість обміну даними при порівняно низькій латентності.

Операційні системи (ОС)