Донецкий техникум промышленной автоматики

64-розрядні мікропроцесори AMD

  1. У статті проаналізовано запропонована компанією AMD архітектура x86-64 і розглянуті деякі її переваги...
  2. мікроархітектура Hammer
  3. Побудова систем на базі Hammer
  4. В очікуванні Hammer
  5. література
У статті проаналізовано запропонована компанією AMD архітектура x86-64 і розглянуті деякі її переваги і недоліки в порівнянні з іншими 64-розрядними архітектурою, в першу чергу Intel / HP IA-64. Дан короткий огляд мікроархітектури процесорів AMD Hammer, в яких вперше буде реалізована архітектура x86-64. Характеристики Hammer зіставлені з іншими сучасними і перспективними високопродуктивними процесорами.

Якщо все високопродуктивні мікропроцесори RISC-архітектури, що випускаються з кінця 90-х років, є 64-розрядними (Сompaq / DEC Alpha, SGI / MIPS R1x000, IBM Power, HP PA-8x00, Sun UltraSPARC), то основні CISC-архітектури (Intel x86, IBM S / 390) переходять від 32 до 64 розрядів тільки зараз (IA-64 [1, 2], IBM z / Architecture [3]).

Перехід від S / 390 до z / Architecture виглядає досить природним розширенням, в той час як перехід від x86 (нині IA-32) до IA-64 означає, по суті, повну зміну системи команд. Думаю, це обумовлено тим, що х86 розпочала свій історичний розвиток з 8-ми, а потім 16-розрядних систем. Тому що залишалася з міркувань сумісності відносно статичною протягом дуже багатьох років система команд з часом стала досить «неприродною» з точки зору інших 32-розрядних процесорів.

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

Зовсім іншим шляхом пішла компанія AMD. Вона запропонувала власну модернізацію архітектури x86, яка (як і у випадку з IBM) є природним еволюційним розвитком - подібно до того, як х86 свого часу була модернізована з 16 до 32 розрядів.

Чому ж 32-розрядні CISC-платформи стають 64-розрядними тільки зараз, хоча потреби в 64-розрядних додатках стали досить великими вже кілька років тому? Крім вже зазначеної складності переходу (очевидною в разі IA-64 і z / Architecture) слід вказати і на різке здешевлення оперативної пам'яті при одночасному зростанні ємності модулів пам'яті. В результаті 4-гігабайтний межа ємності для 32-розрядних систем виявляється цілком досяжний вже в сучасних ПК. Так чому б не підняти продуктивність ПК-сервера за рахунок установки додаткової пам'яті, якщо це стає не так дорого?

архітектура х86-64

Звісно ж, що відмінності архітектури х86-64 від IA-32 навіть менше, ніж відмінності IBM z / Architecture від S / 390. В AMD всіляко намагаються підкреслити, що внесені зміни мінімальні [4], хоча аналіз повного опису [5] дозволяє виявити достатню кількість дрібних нюансів, що стосуються, правда, в першу чергу розробників системного програмного забезпечення, а не додатків.

Ключових же змін х86-64 в порівнянні з сьогоднішнім станом IA-32 дійсно не так багато і вони в певному сенсі аналогічні тим, які були внесені під час переходу від 16-ти до 32-розрядної архітектури х86. Ці нововведення включають:

  • 64-розрядні віртуальні адреси (в конкретної реалізації можлива менша розрядність);
  • "Плоске" (flat) адресний простір з єдиним простором кодів, даних і стека;
  • 64-розрядний лічильник команд (RIP);
  • режим адресації щодо лічильника команд;
  • розширення регістрів загального призначення (цілочисельних) до 64 розрядів;
  • додавання 8 нових регістрів загального призначення (R8-R15);
  • додавання ще 8 SSE-регістрів XMM8-XMM15 розрядністю 128 (відповідає запропонованим Intel розширенню SSE2).

«Вказівки» на додаткові регістри і розміри даних вводяться як префікс команд. Набір основних регістрів x86-64 представлений на рис. 1. Регістри є 64-розрядними, за винятком 32-розрядного регістра EFLAGS, 128-розрядних регістрів ХММ і 80-розрядних регістрів з плаваючою комою ST. Архітектура x86-64 включає, зокрема, SSE2-розширення IA-32, представлені в Pentium 4.

Архітектура x86-64 включає, зокрема, SSE2-розширення IA-32, представлені в Pentium 4

На рис. 1 показано, яким чином розширені нові 64-розрядні регістри щодо 32-розрядних регістрів в IA-32. Для виконання 16-розрядних операцій регістр А ми звертаємось як АХ, для виконання 32-розрядних операцій - як EAX, а для виконання 64-розрядних - як RAX. При виконанні 32-розрядних операцій, в яких цілочисельний регістр служить регістром результату, 32-розрядні значення доповнюються нулями до 64-розрядних. 8-ми і 16-розрядні операції над цілочисельними регістрами зберігають старші розряди незмінними [4].

Для роботи з 64-розрядної адресацією в х86-64 введений режим Long Mode (назвемо його «розширеним режимом»). Режим роботи задається керуючим бітом LMA (Long Mode Active), який зводиться, якщо мікропроцесор переходить в розширений режим. У розширеному режимі регістри сегментів ES, DS, FS, GS, SS ігноруються. У регістрі CS (дескриптор сегмента коду) знаходяться біти, уточнюючі режими роботи мікропроцесора.

У х86-64 розширений режим має два «підрежиму»: 64-розрядний режим і режим сумісності. У режимі сумісності забезпечується двоичная сумісність з 16-ти і 32-розрядними режимами х86. Вибором підрежиму управляє біт CS.L. Якщо він встановлений в 0 (режим сумісності), 64-розрядна операційна система, працюючи в режимі LMA, може виконувати старі 16-ти і 32-розрядні х86-додатки. За вибір розміру операнда відповідає біт CS.D.

За замовчуванням, в 64-розрядному режимі (зведений біт LMA, CS.L = 1, CS.D = 0) застосовуються 64-розрядні адреси і 32-розрядні операнди. Використовуючи префікси команд, можна змінити розмір операнда (встановити його рівним 64 або 16 розрядів), а також змінити розмір адреси (встановити рівним 32 розрядів). В таблицях 1 і 2 вказані основні допустимі типи режимів процесора і режимів роботи операційної системи і додатків.

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

Для з'ясування особливостей мікропроцесорів з архітектурою х86-64 необхідно аналізувати регістри EAX / EBX / ECX / EDX, в які поміщаються результати виконання команди CPUID (при її виклику, як і раніше, в EAX потрібно покласти 8000_0000h). Якщо 29-й біт в EAX дорівнює 1, мікропроцесор працює в розширеному режимі.

У х86-64 є ще ряд цікавих удосконалень, особливо для задач системного програмування. В якості прикладу відзначимо введення нового регістра пріоритету завдань TPR, який використовується для прискорення обробки переривань. За подробицями відсилаємо читачів до опису x86-64 [5].

мікроархітектура Hammer

Процесор Athlon відноситься до сьомого покоління архітектури x86, реалізованому компанією AMD. Перші процесори, в яких буде реалізована архітектура х86-64, отримали кодову назву Hammer і являють собою восьме покоління х86-процесорів від AMD. У них продовжилася тенденція певного відходу системи команд процесорів AMD від повної тотожності з Intel x86. Однак якщо раніше відмінності були пов'язані з введенням AMD нових команд 3DNow !, то тепер Hammer, на відміну від х86, стає 64-розрядних. У Hammer застосовуються 64-розрядні внутрішні «шини», які використовуються для обміну даними. ВАП є 48-розрядним, а простір фізичних адрес - 40-розрядних.

Цілями AMD при створенні даного сімейства мікропроцесорів, крім очевидної мети підтримай х86-64, були [6]:

  • по можливості мінімальне збільшення площі мікросхеми;
  • забезпечення можливостей подальшого безперешкодного зростання тактової частоти процесора на сучасному рівні розвитку технологій;
  • забезпечення при цьому прискорення як 64-розрядних, так і 32-розрядних додатків. Загальне уявлення про мікроархітектурі Hammer дає Мал. 2 [6, 7].

В сучасних найбільш потужних RISC-процесорах є тенденція інтеграції в мікропроцесор кеш-пам'яті другого рівня великої місткості. Як Intel, так і AMD в своїх високопродуктивних процесорах не так давно зменшили ємність кеша другого рівня з 512 Кбайт до 256 Кбайт, одночасно інтегрувавши його в процесор. Але в Pentium 4 Northwood розробники Intel знову розширили кеш другого рівня до 512 Кбайт. Відповідні офіційні дані по Hammer відсутні; тим часом ємність кеша другого рівня може сильно вплинути на його продуктивність. На думку деяких аналітиків, ємність кеша другого рівня в старших моделях Hammer буде вчетверо вище, ніж у сучасних моделей Athlon.

Буфери швидкої переадресації в даному процесорі в порівнянні з Athlon модернізовані. I-TLB першого рівня в Hammer має ємність 40 рядків (на 16 рядків більше, ніж раніше) і є повністю асоціативним. У D-TLB першого рівня ті ж характеристики. Обидва буфера TLB забезпечують роботу зі сторінками пам'яті ємністю 4 Кбайт, 2 Мбайт і 4 Мбайт.

I-TLB другого рівня, як і D-TLB другого рівня, містять по 512 рядків (удвічі більше, ніж в Athlon) і є 4-канальними частково-асоціативними. Як зазначено в [6], TLB мають зменшеними в порівнянні з Athlon затримками. Крім того, апаратно реалізована можливість поділу TLB між декількома процесами (для цього передбачений спеціальний «фільтр підпалу»).

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

Традиційним напрямком удосконалення сучасних мікропроцесорів є поліпшення точності передбачення переходів. У Hammer є масив адрес переходів ємністю 2К рядків, а також таблиця всесвітньої історії переходів, що містить 16К 2-розрядних лічильників (в 4 рази більше, ніж у Athlon). Нарешті, ємність стека адрес повернення - 12 рядків.

Важливою особливістю, що сприяє підвищенню продуктивності, є інтеграція в Hammer контролера оперативної пам'яті. Це дозволяє і пропускну здатність збільшити, і зменшити затримки. Дані характеристики будуть автоматично поліпшуватися з зростанням частоти процесора. Для архітектури х86 ця особливість унікальна; Compaq ж в своїх новітніх процесорах Alpha EV7 йде тим самим шляхом.

Контролер пам'яті матиме інтерфейс шириною 8 або 16 байт до оперативної пам'яті типу DDR. В останньому випадку мова йде про двоканальної DDR-пам'яті, по 4 реєстрових DIMM-модулів на канал. AMD обіцяє підтримку як реєстрових, так і небуферізованних DIMM-модулів для пам'яті типу DDR ​​PC1600 / PC2100 / PC2700. При використанні PC2700 в двоканальному варіанті пропускна здатність оперативної пам'яті досягне значення 5,3 Гбайт / с. Для порівняння, процесор Intel McKinley, який внаслідок особливостей архітектури IA-64 потребує підвищеної пропускної здатності оперативної пам'яті, буде забезпечений системною шиною лише трохи швидше - 6,4 Гбайт / с.

Застосування при побудові систем на базі Hammer технології HyperTransport дозволить зменшити затримки оперативної пам'яті з ростом тактової частоти мікропроцесора, автоматично підвищувати пропускну здатність так званих snoop-проб при підтримці когерентності кеша в багатопроцесорних системах зі зростанням частоти і, нарешті, масштабувати пропускну здатність і ємність оперативної пам'яті з ростом числа процесорів в системі.

Фронтальна частина конвеєра включає вибірку і декодування команд ( Мал. 2 ). Логіка роботи цих стадій в Hammer ускладнилася, зросла ступінь упаковки команд, які направляються декодерами до планувальників. У порівнянні з Athlon довжина цієї частини конвеєра зросла на 2 стадії, так що загальна довжина целочисленного конвеєра Hammer дорівнює 12, а конвеєра з плаваючою комою - 17 стадій [6]. На думку розробників, це повинно сприяти безпроблемному зростання тактової частоти процесора в міру вдосконалення технології виготовлення. Спочатку планується використовувати 0,13-микронную технологію «кремній-на-ізоляторі»; у другій половині 2003 року планується перехід до 0,09 мкм.

Треба відзначити, офіційні дані про площі, займаної Hammer, відсутні. Тим часом, з'явилися повідомлення про те, що процесор ClawHammer буде володіти площею всього 105 мм 2, в той час як Athlon / Palomino, виконаний за тією ж технологією на 0,13 мкм - 80 мм 2. Для порівняння, площа McKinley, судячи з представленим Intel на міжнародній конференції ISSCC? 2002 даними, - 464 мм 2.

Недоліки та гідності довгих конвеєрів добре відомі: легше збільшувати тактову частоту, але більше втрати на перезаполненія конвеєра, зокрема, при неправильному прогнозі переходу. Цікаво порівняти довжину конвеєра Hammer з іншими сучасними мікропроцесорами Intel. У Pentium 4, добівшемся рекордних частот в 2,2 ГГц, в порівнянні з Pentium III довжина конвеєра завдяки використанню технології HyperPipeline зросла вдвічі - до 20 стадій. Це мало ту ж мету - забезпечення безперешкодного зростання тактової частоти; в Intel говорять про 10 ГГц до 2005-2006 років. У McKinley довжину конвеєра, навпаки, скоротили - до 8 стадій проти 10 в Itanium, але його очікувана частота - 1 ГГц.

Продуктивність, як відомо, залежить не тільки від тактової частоти, а й від числа реально виконуваних за такт команд. За твердженням AMD [6, 7], в Hammer число це підвищиться. А ось на якій частоті буде працювати Hammer, не повідомляється; можна припустити, що цей показник виявиться близько 2 ГГц.

Побудова систем на базі Hammer

Ми розглянули основні особливості мікроархітектури Hammer, за винятком застосування технології HyperTransport. Вона використовується в Hammer як для під'єднання системи введення-виведення, так і для організації міжпроцесорних зв'язків. Фактично завдяки вбудованому в Hammer контролеру оперативної пам'яті і застосування технології HyperTransport в Hammer інтегровані основні функції набору мікросхем (точніше кажучи, північного моста).

Власне технологія HyperTransport розвивається однойменною консорціумом, заснованому компаніями AMD, Sun Microsystems, Cisco Systems, Nvidia, Transmeta і Apple Computer. Думаю, потреби в розробці такої технології диктувалися в першу чергу виникненням вузьких місць в системах введення / виведення в ПК і взагалі використанням шин PCI, наведені цифри щодо яких не задовольняють вимогам сучасних високопродуктивних мережевих плат і каналів введення / виводу для жорстких дисків.

Канали HyperTransport при тому ж числі контактів, що і PCI, забезпечують набагато більш високу пропускну здатність: пікова величина її становить 3,2 Гбайт / с. Канали HyperTransport мають ширину 16 розрядів, забезпечуючи 1,6 мільярда передач в секунду в кожному напрямку. HyperTransport дозволяє здійснити з'єднання типу «точка-точка» з повнодуплексним режимом і розщепленої обробкою транзакцій. Такі характеристики даної технології дозволяють використовувати її і для організації міжпроцесорних зв'язків; в останньому випадку, на відміну від введення / виводу, застосовується варіант HyperTransport з підтриманням когерентності кеша.

Процесори Hammer мають по три порти для каналів HyperTransport (рис. 3), плюс порт до контролера оперативної пам'яті. Тому до складу процесора введений комутатор ХВОХ [6], який маршрутизує команди і дані між цими портами і інтерфейсом системних запитів (черга SRQ). Ця чергу має довжину 24 рядки, а чергу до DRAM-контролера (Memory Command Queue) - 20 рядків [7]. Для зв'язку з підсистемою введення / виводу в Hammer використовується міст Host Bridge, тоді два інших каналу HyperTransport задіюються в міжпроцесорних обмінах.

Єдине, що не вбудовано в Hammer - це інтерфейс з AGP; тому мікросхемі, що займає місце північного моста (рис. 4), необхідно підтримувати цей інтерфейс. Передбачається, що це буде AGP 8X.

З цієї мікросхемою з'єднаний південний міст. Хоча AMD традиційно пропонує набір мікросхем для своїх нових процесорів і зробить це, очевидно, і для Hammer, вже відомо про розробки південного моста для цього процесора компаніями Nvidia і VIA Technologies. Крім того, в багатопроцесорних системах очікується застосування «шлюзу» між HyperTransport і PCI-X [7]; можливе застосування аналогічних засобів для інших стандартів вводу / виводу.

Схеми, представлені на рис. 4, демонструють ефективність побудови багатопроцесорних систем на базі Hammer. У таких комп'ютерах з ростом числа процесорів масштабируются не тільки обчислювальна потужність, ємність і пропускна здатність оперативної пам'яті, а й ресурси підсистеми вводу / виводу. Так, в 8-процесорної системі доступними будуть 64 (8х8) DIMM-модуля (до 128 Гбайт) і 4 канали HyperTransport з сумарною пропускною спроможністю 25 Гбайт / с для дуплексного передачі.

AMD анонсувала набір мікросхем серії 8000, який буде доступний в четвертому кварталі 2002 року. Він включає мікросхеми AMD-8151 (організовує інтерфейс з AGP 3.0), AMD-8131 (міст від HyperTransport до PCI-X) і AMD-8111 (концентратор вводу / виводу, забезпечує підтримку PCI-32/33 МГц, USB, IDE і т .п.).

Цікаво організовано забезпечення когерентності кеша з використанням каналів HyperTransport при числі процесорів від 4 і вище: в обробці відповідних запитів беруть участь кілька утворених каналами HyperTransport шляхів між процесорами [7], що сприяє прискоренню роботи. В принципі можлива побудова систем з числом процесорів Hammer, більшому 8, але для цього знадобиться комутатор HyperTransport.

Затримки при роботі з локальною (ближній до мікропроцесора) оперативною пам'яттю незначно зростають при зверненні до «віддаленої» пам'яті. На ненагруженной 4-процесорної системі затримка дорівнює 140 нс, на аналогічній 8-процесорної системі - 160 нс. Це дозволяє говорити про архітектуру SMP, а не ссNUMA. Разом з тим застосування технології комутації замість системних шин дозволяє досягти високих показників і по пропускній здатності оперативної пам'яті. Для операцій типу копіювання вона становить 8 Гбайт / с для 4-процесорної системи, що, за твердженням AMD, істотно вище, ніж в шинних архітектур [7].

В очікуванні Hammer

Початок продажів Hammer почнеться орієнтовно в третьому кварталі 2002 року. Першим мікропроцесором даного сімейства стане ClawHammer, орієнтований на одно- і двопроцесорні системи; потім з'явиться SledgeHammer. Хоча по суті Hammer повинен вступити в конкуренцію з мікропроцесорами архітектури IA-64 (на той час повинен з'явитися і McKinley), можна припустити, що в майбутньому Hammer виявиться в змозі витіснити Athlon на всьому спектрі застосувань (але на це може піти не один рік) . Це означає також, що Hammer може стати конкурентом Pentium 4.

Крім існуючих 32-розрядних операційних систем, на 64-розрядну архітектуру Hammer переносяться NetBSD, FreeBSD і Linux, а також сучасні різновиди Windows.

Перевагами х86-64 і Hammer є:

  • сумісність з 16-ти і 32-розрядними додатками при високому рівні продуктивності виконання;
  • відносна (в порівнянні з IA-64) простота переходу від х86 і відповідно відсутність необхідності надмірних фінансових витрат на цей перехід;
  • менший ризик невдачі нової архітектури;
  • простота розробки і реалізації;
  • невелика площа, що підвищує вихід придатних і полегшує масштабування по тактовій частоті.

Можна сказати, що завдяки обраному «еволюційному» підходу можна більш надійно передбачити успіхи в зростанні продуктивності.

Перераховані переваги супроводжуються і деякими потенційно «небезпечними» для AMD моментами. Архітектура х86-64 не настільки «революційна», як IA-64; більш того, число регістрів в порівнянні з сучасними RISC-процесорами не виглядає досить великим, що, як відомо, ускладнює оптимізацію програм.

AMD доведеться продемонструвати, що висоти продуктивності досяжні головним чином за рахунок технології (і відповідного зростання тактової частоти), але не за рахунок архітектури. Поки це успішно доводить, зокрема, Pentium 4, а ось зворотних доказів з боку IA-64 поки не отримано.

Для створення 64-розрядних додатків знадобиться розробити оптимізують компілятори, інформація про яких поки відсутня. Нарешті, сучасна комп'ютерна індустрія стоїть на порозі вибору нових стандартів введення / виведення - Infiniband, PCI-X, 3GIO, HyperTransport. Жорстка прив'язка до технології HyperTransport здатна вивести AMD в лідери, але і несе в собі певний ризик.

Що стосується областей застосування, де потрібна 64-розрядна архітектура, то AMD вказує в першу чергу на СУБД, САПР, засоби створення цифрового «змісту». На думку автора, процесори Hammer можуть виявитися активно затребувані на швидко зростаючому сегменті ринку - кластерах (в першу чергу, Linux-кластерах) з двухпроцессорними вузлами.

В даний час дуже популярною є така платформа на базі Athlon MP; аналогічні системи на базі Pentium 4 / Xeon коштують помітно дорожче. При збереженні такого співвідношення AMD зможе розраховувати на успіх і в цій частині ринку.

Робота підтримана РФФД, проект 01-07-90072.

література
  1. Михайло Кузьмінський, "Короткий огляд IA-64" . "Відкриті системи", 1999, № 9-10
  2. Михайло Кузьмінський, "Мікроархітектура Itanium" . Відкриті системи, № 9, 2001.
  3. Михайло Кузьмінський, "Z-архітектура. Сучасні 64-розрядні мейнфрейми IBM" . "Відкриті системи", 2001, № 10
  4. "X86-64 Technology White Paper", 2001, AMD
  5. "AMD 64-Bit Technology. The AMD x86-64 Architecture Programmers Overview", AMD, 2001., Jan.
  6. "AMD Eight-Generation Processor Architecture. White Paper", AMD, 2001., Oct.
  7. F. Weber, "AMD Next Generation Microprocessor Architecture", Microprocessor Forum, 2001.

Михайло Кузьмінський ( [email protected] ) - старший науковий співробітник Центру комп'ютерного забезпечення ІОХ РАН (Москва).

Чому ж 32-розрядні CISC-платформи стають 64-розрядними тільки зараз, хоча потреби в 64-розрядних додатках стали досить великими вже кілька років тому?
Так чому б не підняти продуктивність ПК-сервера за рахунок установки додаткової пам'яті, якщо це стає не так дорого?
2. Для порівняння, площа McKinley, судячи з представленим Intel на міжнародній конференції ISSCC?