Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kompyuterni_sistemi_lektsiyi_1_1.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
241.66 Кб
Скачать

4 Реалізація smp систем

AMD

Шина Hyper Transport — це двонаправлена послідовно-паралельна комп’ютерна шина з високою пропускною здатністю та малими затримками. Дана шина може працювати в діапазоні частот [200 MHz; 3,2 HHz]. Використовується DDR, що означає, що вона зчитує дані не тільки по фронту, а й по зрізу сигналу. Частота сигналу синхронізації встановлюється автоматично. Також Hyper Transport підтримує автоматичне визначення ширини шини від 2 до 32 бітів. Повно розрядна 32-бітна шина в двонаправленому режимі забезпечує пропускну здатність 51600 Мбайт/с, що є самою високошвидкісною шиною в даний час. Дана шина може використовуватися в підсистемах з високими вимогами до пропускної здатності (ОП або ЦП), так і в системах з низькими вимогами.

Дана шина базується для передачі пакетів. Кожен пакет складається з 32 бітних слів незалежно від ширини шини. Перше слово в пакеті завжди управляюче. Пакети передаються по шині послідовно і можуть бути posted і/або non-posted. Posted операції запису заключаються в передачі єдиного пакету, який містить адресу, по якому необхідно провести запис і дані. Ця операція зазвичай використовується для обміну даними з високошвидкісними пристроями (наприклад, DMA). Non-posted операції складаються з посилки двох пакетів: пристрій, який ініціює передачу даних; присилає пакет з адресою і даними відповідно, приймаючий пристрій повинен відправити пакет підтвердження, таким чином підвищити надійність, але зменшити швидкодію.

Шина підтримує технологію енергозбереження ACPI.

Першим процесором, який підтримував роботу в багатопроцесорних системах це AMD OPTERON. Кожен процесор мав свій власний контролер пам’яті з окремою шиною, яка напряму підключалася до модуля пам’яті (двоканальна, 128-бітна). Вся ОП ділилася на модулі і кожен процесор мав прямий доступ до свого модуля. Для зв’язку між процесорами використовувалася шина Hyper Transport. Кожен процесор підтримував 3 такі шини, через які він взаємодіє з іншими процесорами або іншими пристроями. Відповідно, для доступу в не свою пам’ять, процесор повинен бів звертатись до інших процесорів.

Нестандартна архітектура пам’яті потребує перебудову системної логуки. Відповідно, чіпсет для даного процесора AMD 8000 не містив звичних північних і південних мостів. Замість них він складався з так званих тунелей контролерів, які дозволяють створювати єдиний тунель (канал передачі даних по шині Hyper Transport) між всіма вузлами системи. Даний чіпсет підтримував 1-, 2-, 4-процесорні системи. Сам чіпсет, представлений трьома типами мікросхем. Головний компонент. AMD 8111 Hyper Transport I/O Hub. Ця мікросхема виконує роль південного моста і реалізує підтримку мережевого контролера, USB, шини PCI та шестиканальний звук ІС 97. Для підтримки 64-бітної PCI-X використана мікросхема AMD-8131 Hyper Transport PCI-X Tunnel, а для підтримки AGP 3.0 Tunnel AMD -8151. Сам OPTERON випускався в 3-х видах:

  • Якщо серія починається з 1, то даний процесор можна використовувати тільки в одно процесорній системі;

  • Якщо з 2 — в двопроцесорній системі;

  • Якщо з 8 — в чотирьох- і восьми процесорних системах.

Intel

Вперше SMP системи на базі процесорів Intel з’явилися в 1993 р. Тоді Intel опублікував специфікацію MPS (Multiprocessing Specification), яка описувала багатопроцесорні системи на базі процесорів Intel. В більшій мірі Intel дотримується даної специфікації до цих часів. Однією з особливостей даної специфікації є відсутність симетричності на етапі включення/виключення комп’ютера. В ці моменти один з процесорів позначається як BootStrap процесор, він проводить завантаження операційної системи. Інші процесори називаються Application Processors, і вони вступають в роботу після завантаження операційної системи. Для забезпечення коректної роботи з апаратними перериваннями. Intel використала вдосконалений APIC програмований контролер переривань (Advanced Programmable Interrupt Controller).

Переваги даного контролера:

  1. Можливість реалізації між процесорних переривань, тобто можливість предачі сигналу від одного процесора до іншого;

  2. Підтримка до 256 вхідних IRQ замість 16, які доступні на звичайних PC;

  3. Швидкий доступ до регістрів поточного переривання та підтвердження переривання. Сам контролер складається з двох модулів:

  • Local APIC;

  • IO APIC.

Local APIC розміщується в ядрі процесора. Якщо система багатоядерна, то в кожному з ядер.

IO APIC розміщується на системній шині. Провідники IRQ від пристроїв під’єднуються до IO APIC. Для обміну даними ці модулі використовують системну шину, проте в деяких багатопроцесорних специфікаціях для цього використовують окремі шини ICC bus (Interrupt Controller Communication). В даний час даний контролр встановлений і на одно процесорних системах, для забезпечення взаємодії з більшою кількістю пристроїв. Проте в наш час є тенденція відмови віл контролера переривань і перехід на MSI (Message Signaled Interrupt). В даній технології кожен пристрій в момент настання певної події записує повідомлення в певну область ОП. Для запису повідомлення кожен пристрій може мати від 1 до 32 унікальних областей пам’яті.

Переваги MSI:

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

  2. Можливість повної відмови від контролера переривань IO APIC, що значно спрощує схемо технічну конфігурацію

В даний час для використання в багатопроцесорних системах використовуються процесорних системах використовуються процесори марки Xeon або Itanium.

В багатопроцесорних системах на базі Intel використовуються загальна напівдуплексна шина, яка в випадку з інтенсивною роботою з ОП стає «вузьким місцем» роботи. Тому в даних процесорах збільшують кеш пам’ять на відміну від інших процесорів. Для заміни повільної FSB (Front Side Bus) Intel запропонував шини QPI (Quick Path Interconnect)

Дана шина — це послідовність, кеш когерентна шина типу точка-точка для з’єднання процесорів між собою та чіпсетом. Дана шина реалізується тільки в процесорах Xeon, Itanium i Core IC. Кожне з’єднання шини Quick Path складається з пари односторонніх каналів, кожен з який фізично складається з 20 окремих пар провідників. Дані передаються в вигляді пакетів (дельтаграм), пропускна здатність одного каналу від 4,8 до 6,4 мільярд передач в секунд. 1 передача — 16 біт корисної інформації, а отже максимальна пропускна здатність 25,6 ГБіт/с.

Hyper-threading

Це ТМ Intel, яка реалізує технологію одночасної мультипоточності. В процесорі з використанням даної технології кожен фізичний процесор може зберігати стан 2 потоків одночасно, що для ОС проявляється як наявність 2 логічних процесорів. Фізично у кожного з двох фізичних процесорів є свій набір регістрів і APIC, а решта елементів є спільними. Коли при виконанні одного з потоків виникає пауза, процесор переключається на інший потік. Збільшення продуктивності даної технології складає від 15% до 30%, проте в деяких випадках спостерігається сповільнення виконання програми при включенні Hyper-threading (особливо у випадках старого ПЗ). В процесорах Core 2 Duo Hyper-threading не підтримується, проте підтримується в Xeon, Core i3, Core i7.

Процесори Xeon включають в себе значну кількість серверних процесорів з різними мікроархітектурами. В даний час випускається процесор Xeon на базі архітектур Neholem, Westmure, Sandy Bridge.

Архітектура Neholem — мікроархітектура процесорів компанії Intel, що була представлена в кінці 2008 р. дана архітектура побудована на базі мікроархітектури Core, проти містить деякі зміни:

  • Вбудований контролер пам’яті;

  • Використання шини QPI;

  • Можливість випуску процесора з вбудованим графічним ядром;

  • Доданий кеш 3-го рівня;

  • Підтримка Hyper-threading

Процесори по даній архітектурі містять більше 731 мільйонів транзисторів на площі кристала 263 мм2 і виконується по технології 45 нанометрів.

Використовуються сокети LGA 1366 і LGA 1156. Мікроархітектура Westmure відрізняється тим, що виконується по технології 32 нанометри, а також збільшеним об’ємом кешу 3-го рівня.

Sandy Bridge основана на 32 нанометровому технологічному процесі, підтримує частоту ЦП до 3,5 ГГц та високопродуктивне графічне відео ядро, яке працює на частоті 1,35 ГГц. Також процесор інтегрований в схему північного мосту (контролер PCI Express, контролер пам’яті). В багатоядерних процесорах кожне ядро має 256 Кб 2-го рівня кеш, а також до 8 Мб спільного 3-го рівня. Енергоспоживання не виходить за межі 130 Вт.

Нововведення:

Дана мікроархітектура забезпечує реалізацію векторних команд AVX (Advanced Vector Extension). Також Intel додала в архітектуру підтримку технології Quick Sync, яка призначена для апаратного кодування і декодування відео контенту.

В процесорних ядрах нововведення наступні:

  1. Додані кеш інструкції 0-го рівня, який може містити до 1500 декодованих мікрокоманд;

  2. Блок вибірки може зупинити декодування команди, якщо така команда є вже в кеші;

  3. Оптимізована і покращена точність передбачення переходів.

Структуру чіпу Sandy Bridge можна умовно поділити на наступні основні елементи:

  1. Процесорні ядра;

  2. Графічне ядро;

  3. Кеш 3-го рівня.

Всі перераховані елементи об’єднані за допомогою 256 бітної між компонентної кільцевої шини, яка виконується на основі технології QPI. Шина складається з 4-х 32-хбітних кілець: шина даних, шина запитів, шина моніторингу стану, шина підтвердження. Завдяки такому підходу забезпечуються наступні переваги:

  • Висока масштабованість (до 20 ядер на кристал)

  • Зменшення затримок кешу 3-го рівня

  • Використання графічним ядром кешу 3-го рівня.

Продуктивність даної шини складає 96 Гбайт/с.

5 VLIW (Very Long Instruction Word)

Архітектура з командним словом надвеликої довжини. Ідея даної архітектури базується на тому, що одна інструкція процесора може містити декілька операцій, які виконуються паралельно. Процес формування даної надвеликої команди повністю покладається на компілятор. Компілятор аналізує вхідний код і виявляє команди, які можуть виконуватися паралельно і з них формує надвелику команду. Об’єднання декількох простих команд виконується за наступними правилами:

  1. Кількість простих команд, що об’єднуються в надвелику команду, повинна бути рівна кількості функціональних пристроїв, наявних у процесора;

  2. В надвеликій команді вхідні команди виконуються різними функціональними пристроями.

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

Однією з найпоширеніших архітектурі на основі VLIW є IA-64, яка реалізується в процесорах Intel Itanium. Дана архітектура була розроблена спеціально Intel. В даному процесорі є 128 64бітних регістрів для роботи з цілими числами, 128 регыстрыв для роботи з плаваючою комою, а також 64 однобітних предикатних регістрів. Довжина команди дорівнює 128 біт і складається з 3 полів по 41 біту та 5-бітному шаблону.

Кожна команда має наступну структуру:

40 26 20 13 6 0

Код операції

Предикат

Адреса ОП2

Адреса ОП1

Адреса результату

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

Архітектура IA-64 визначає 6 типів команд та 4 типи виконавчих пристроїв (команди — І, пам’ять — М, операції з плаваючою комою — F і розгалуження — В).

Типи команд:

А — цілочисельна операція в операційному пристрої. Виконується над І,М.

І — цілочисельна операція, але поза АЛП (І).

М — звернення до пам’яті (М).

F — операція з плаваючою комою (F).

В — операція розгалуження (В).

L — операція з безпосереднім операндом (І).

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

Завантаження по пропозиції

При виконанні завантаження даних в регістр приводить до значних втрат продуктивності ЦП, навіть в тому випадку, коли дані в кеші. Особливістю IA-64 є попереднє завантаження даних. Вона дозволяє не тільки завантажувати дані з пам’яті до того, як вони знадобляться програмі, а також генерує виняткову ситуацію у випадку некоректного завантаження. Мета попереднього завантаження — це розділити власне завантаження даних та використання даних. Сам процес попереднього завантаження залежить від компілятора. Спочатку компілятор переглядає код програми, визначає команди, що використовують дані з пам’яті. Там, де це можливо, вставляється команда завантаження даних на досить великій відстані від команди, яка буде ці дані використовувати. І в команді перевірки даних безпосередньо перед командою, що використовує дані. На етапі виконання процесор спочатку виконує команди попереднього завантаження і відповідно намагається завантажити дані з ОП в процесор. Іноді дана спроба виявляється неуспішною. Наприклад, команда, що працює з даними, знаходиться за операцією розгалуження, умови якого ще невідомі. В такому випадку генерується виключна ситуація, але в момент виклику команди, якій необхідні ці дані.

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

Є два види завантаження по пропозиції: по управлінню і по даним.

Завантаження по управлінню дозволяє розміщувати завантаження вище розгалужень. Для цього використовують спеціальні Nat-розряди цілочисельних регістрів.

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

Переваги VLIW:

  1. Велика кількість регістрів;

  2. Можливість масштабування архітектури;

  3. Явний паралелізм в машинному коді.

Недоліки:

  1. Потреба в складному компіляторі, який би оптимально використовував можливості процесора;

  2. Прості суперскалярні програми працюють повільно.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]