
Лекція 7.
Архітектура IBM PC на базі чіпсетів 4хх 8хх
Шинно-мостова архітектура
У шинно-мостовій архітектурі є центральна магістральна шина, до якої решта компонентів підключається через мости. В ролі центральної магістралі спочатку виступала шина (E)ISA, потім її змінила шина PCI. Шинно-мостова архітектура чіпсетів проіснувала довгий час і пережила багато поколінь процесорів (від 2-го до 7-го). Переміщення вторинного кеша з системної плати на процесор (Р6 і Pentium 4 у Intel і К7 у AMD) дещо спростило північну частину чіпсета — в ній не треба управляти статичною кеш-пам'яттю, а залишається лише забезпечувати когерентність процесорного кеша з основною пам'яттю, доступ до якої можливий і з боку шини PCI.
Шина PCI в ролі головної магістралі утрималася недовго: відеокартам з SD-акселератором її пропускної спроможності, що розділяється між всіма пристроями, опинилося недостатньо. Тоді і з'явився порт AGP як виділений могутній інтерфейс між графічним акселератором і пам'яттю (а також процесором). При цьому завдання північного моста ускладнилися: контроллеру пам'яті доводиться працювати вже на три фронти — йому посилають запити процессор^!), майстра шини PCI (і ISA, але теж через PCI) і порт AGP. Пропускна спроможність AGP в режимі 2х/4х/8х складає 533/1066/2133 Мбайт/с, так що шина PCI по продуктивності стала вже другорядною. Проте в шинно-мостовій архітектурі вона зберігає свою роль магістралі підключення всіх периферійних пристроїв (окрім графічних). Як могутній представник шинно-мостової архітектури можна розглядати чіпсет AM760 (мал. 1). Тут є первинна шина PCI на 64 битий і 66 Мгц, що є «екватором», і вторинна шина для підключення рядової периферії.
Мал. 1. Шинно-мостова архітектура
Шина, до якої підключається безліч пристроїв, є вузьким местомом з ряду причин. По-перше, із-за великого числа пристроїв, підключених (електрично) до шини, не вдається підняти тактову частоту до рівня, досяжного в двоточкових з'єднаннях. По-друге, шина, до якої підключається безліч різнотипних пристроїв (особливо розташованих на картах розширення), обтяжена вантажем зворотної сумісності із старими периферійними пристроями. Наприклад, передбачені можливості підвищення продуктивності PCI використовуються не завжди: розширення розрядності до 64 біт обходиться дуже дорого (велике число провідників породжує свої проблеми), а підвищення частоти до 66 Мгц для шини можливо лише якщо всі її абоненти підтримують цю частоту. Досить встановити одну «просту» карту PCI, і продуктивність центральної шини падає до початкових 133 Мбайт/с.
То ж можна сказати і про PCI-X: досить підключити до неї один застарілий пристрій
PCI, і всі протокольні удосконалення будуть скасовані.
Хабовая архітектура
З введенням високошвидкісних режимів ULTRADMA (ATA/66, ATA/100, а потім і AT А/133) зв'язок двоканального контроллера IDE з пам'яттю через шину PCI став вже дуже сильно навантажувати цю шину. Крім того, з'явилися вы- сокоскоростные інтерфейси Gigabit Ethernet, FireWire (100/200/400/800 Мбіт/с) і USB 2.0 (480 Мбіт/с). Відповіддю на ці зміни в розстановці сил став перехід на хабовую архітектуру чіпсета. У даному контексті хабы — це спеціалізовані мікросхеми, що забезпечують передачу даних між своїми зовнішніми інтерфейсами. Цими інтерфейсами є «прикладні» інтерфейси підключення процесорів, модулів пам'яті, шин розширення і периферійні інтерфейси (ATA, SAT A, USB, FireWire, Ethernet). Оскільки до однієї мікросхеми всі ці інтерфейси не підключити (дуже складна структура і багато потрібний виводів), чіпсет будується, як правило, з пари основних хабов (північного і південного), зв'язаних між собою високопродуктивним каналом.
Мал. 2. Хабовая архітектура
Північний хаб чіпсета виконує ті ж функції, що і північний міст шин-но-мостовой архітектури: він зв'язує шини процесора, пам'яті і порту AGP. Проте на південній стороні цього хаба знаходиться вже не шина PCI, а високопродуктивний інтерфейс зв'язку з південним хабом (мал. 2). Пропускна спроможність цього інтерфейсу складає 266 Мбайт/с і вище, залежно від чіпсета. Якщо чіпсет має інтегровану графіку, то в північний хаб входить і графічний контроллер зі всіма своїми інтерфейсами (аналоговими і цифровими інтерфейсами дисплея, шиною локальної пам'яті). Чіпсети з інтегрованим графічним контроллером можуть мати зовнішній порт AGP, який стає доступним при відключенні вбудованого графічного контроллера. Є чіпсети, у яких порт AGP є чисто внутрен-ним засобом з'єднання вбудованого контроллера, і зовнішній графічний контроллер до них може підключатися тільки по шині PCI.
З появою PCI-E архітектура не дуже змінилася: північний хаб (міст) замість порту AGP тепер пропонує високопродуктивний (8х або 16х) порт, а то і пару портів PCI-E для підключення графічного адаптера. Малопотужні (1х) порти PCI-E можуть надаватися як північним, так і південним хабами (це вирішує розробник чіпсета). У останньому випадку кореневий комплекс PCI-E «розповзається» по двох мікросхемах чіпсета, зв'язаним між собою «фірмовим» інтерфейсом. Використання PCI-E як єдиної комунікаційної бази усередині чіпсета поки не спостерігається.
Архітектура HyperTransport
Технологія (архітектура) HyperTransport (HT) замислювалася як альтернатива шинно-мостовій архітектурі системних плат. Технологія розроблена компаніями AMD, Apple Computers, Broadcom, Cisco Systems, NVIDIA, PMC-Sierra, SGI, SiPackets, Sun Microsystems, Transmeta. Перший релиз вийшов в 2001 році, в 2003-му — версія 1.10. Колишня кодова назва — LDT (Lighting Data Transport).
Основна ідея НТ — заміна шинного з'єднання компонентів (периферійних пристроїв) системою двоточкових зустрічно направлених з'єднань. При цьому досяжна вища тактова частота інтерфейсів, що забезпечує їх вищу (в порівнянні з шиною) пропускну спроможність. Структурна схема комп'ютера архітектури НТ приведена на мал. 6.3. Головний міст (host bridge) забезпечує зв'язок НТ з ядром — процесором і пам'яттю. Периферійні контроллери, що вимагають високої пропускної спроможності, реалізуються у вигляді НТ-туннелей. У архітектурі передбачається і мостовий зв'язок з шиною PCI.
Архітектура НТ забезпечує всі типи транзакцій процесорів і пристроїв PCI, PCI-X і AGP, використовувані в РС. Транзакції виконуються у вигляді серіїв передач пакетів різних типів. У традиційних транзакціях цільовий пристрій ідентифікується адресою: читання і запис в просторі пам'яті, уведення-виведення в конфігураційному просторі, а також прочитування вектора переривання з PIC 8259A і спеціальні цикли PCI . Для уніфікації транзакцій всі простори відображаються на єдиний 40-бітовий простір адрес (об'єм 1 Тбайт), адреса передається в пакетах, що управляють. Перші 1012 Гбайт простору виділено для відображення звичайного простору пам'яті (для ОЗУ і введення-виводу, відображеного на пам'ять). У 12-гігабайтній області, що залишилася, розміщуються конфігураційний простір (32 Мбайт), простір введення-виводу (32 Мбайт), пам'ять SMM, простори адрес для видачі векторів і підтвердження переривань; 54 Мбайт залишилися в резерві. Транзакції НТ забезпечують програмну взаємодію процесора з пристроями, прямий доступ до пам'яті і однорангова взаємодія пристроїв з адресацією в описаному комбінованому просторі. Існує мережеве розширення специфікації, що підтримує обмін повідомленнями (як в мережах), причому можливі і широкомовні сообшения.
Транзакції виконуються розщепленим способом: ініціатор посилає пакет-запит і дані для транзакції записи, цільовий пристрій посилає пакет-відповідь і дані для транзакцій читання. Технологія НТ забезпечує впорядкованість виконання транзакцій; є можливість регулювати якість обслуговування (Quality of Service, QOS), що дозволяє організовувати ізохронні передачі.
Мал. 3. Архітектура HyperTransport
Сигналізація переривань в НТ реалізується теж пакетами: пристрій посилає повідомлення — виконує транзакцію запису за адресою, вказаною йому при конфігурації (аналогічно MSI на шині PCI). Обробник переривання посилає повідомлення про завершення обробки переривання (End Of Interrupt, EOI), роблячи запис за іншою адресою, пов'язаною з даним пристроєм. Такий механізм сигналізації запитів і підтверджень дозволяє подолати неефективність традиционого для РС механізму переривань за допомогою спеціальних ліній IRQ.
Архітектура НТ заснована на двосторонній пакетній передачі даних між парою пристроїв. Пристрій НТ може виступати в ролі ініціатора или/и цільового пристрою транзакцій. По топологічних властивостях розрізняють декілька типів пристроїв НТ:
Тунель (tunnel) — пристрій з двома інтерфейсами НТ; такі пристрої можуть збиратися в ланцюжок (daisy chain), створюючий логічну шину. Ланцюжок підключається до хосту (процесору з головним мостом), що відповідає за конфігурацію всіх пристроїв і керує роботою НТ.
Міст (bridge) — пристрій, що сполучає одну логічно первинну шину (підключену до хосту) з однією або декількома логічно вторинними шинами (ланцюжками). Міст має набір регістрів, інформація яких дозволяє управляти розповсюдженням транзакцій між цими шинами (аналогічно мосту PCI).
Комутатор (switch) — пристрій з декількома интерефейсами НТ, по структурі аналогічне декільком мостам PCI, підключеним до однієї (внутрішньою) шини.
Безвихідь, або печера (cave) — пристрій з одним інтерфейсом НТ.
Хост (host) — це «господар шини», що підключається до неї через головний міст і що виконує функції конфігурації (аналогічно і сумісно з PCI). Основний варіант топології — ланцюжок пристроїв-тунелів, підключений верхнім кінцем до хосту. Кожен інтерфейс НТ складається з двох незалежних частин: передавача і приймача. Кожному пристрою при конфігурації виділяються свої області в адресному просторі. У ланцюжку пристрої-тунелі транслюють пакети зверху вниз (низхідний трафік) і від низу до верху (висхідний). Якщо в низхідному пакеті, що управляє, пристрій виявляє своя адреса, воно «розуміє», що звертаються до нього, і приймає відповідну інформацію (пакети, що управляють, і дані). Висхідний трафік тунель транслює «усліпу». На отримані запити пристрій відповідає посилкою пакетів вгору, включаючи їх в трансльований висхідний трафік. Таким чином забезпечується програмна взаємодія процесора з пристроями. Власні запити на доступ до пам'яті пристрій посилає теж вгору, як і запити (звернення) до інших пристроїв (незалежно від положення цільового пристрою — вище або нижче в ланцюжку). Доставку пакету адресатові забезпечує головний міст: він розгортає пакет, прийнятий з це-цочки (адресований не до ОЗУ), і посилає його вниз — так організовується однорангова взаємодія. На пакет, адресований до ОЗУ, головний міст організовує відповідь від контроллера пам'яті, реалізовуючи таким чином прямий доступ до пам'яті.
Можливі і складніші топології, наприклад дерево (з мостами), що дозволяє підключати більше тупикових пристроїв. Можливий і ланцюжок з двома хостами (на обох кінцях), який може використовуватися двояко. У першому варіанті забезпечуються надмірність (дублювання функцій хоста) і разде-ляемость вузлів (доступність обом хостам). При цьому один головний міст стає таким, що веде («сьогоденням», що розгортає однорангові запити і відповіді), через нього забезпечується конфігурація вузлів. Інший міст стає веденим — він є лише засобом зв'язку другого хоста (процесора) з вузлами. Програмно при конфігурації (ініціалізації НТ) ролі мостів можна поміняти. У другому варіанті один з пристроїв розбиває шину (перестає працювати тунелем), в результаті виходять два хоста зі своїми короткими ланцюжками власних (що не розділяються) пристроїв. Із застосуванням комутаторів можна будувати і складніші, але беспетлевые топології.
Технологія HyperTransport призначена для з'єднання компонентів комп'ютерів і комунікаційної апаратури, але тільки в межах плати. Слоти і карти розширення технологією НТ не розглядаються. Для передачі інформації використовуються два зустрічні однонаправлені набори високошвидкісних сигналів:
CAD[n:0] — шина управління (control), адреси (address) і даних (data) розрядністю 2, 4, 8, 16 або 32 бита, причому в зустрічних напрямах може використовуватися різна розрядність. У передавача сигнали CADOUTx, у приймача — CADINx;
CTL — сигнал-ознака, що дозволяє розрізняти передачі пакетів інформації, що управляє , і даних. У передавача сигнал CTLOUT, у приймача — CTLJN;
CLK — сигнал синхронізації (по фронту і спаду), для кожного байта CAD використовується своя лінія CLK (їх може бути 1, 2 або 4). У передавача сигналу CLKOUTx, у приймача — CLKINx.
Сигнали передаються по диференціальних парах проводів з імпедансом 100 Ом, сигнали — LVDS (низьковольтні диференціальні, рівень!,2 У). Частота синхронізації 200, 300, 400, 500, 600, 800 і навіть 1000 Мгц забезпечує фізичну швидкість передачі 400, 600, 800, 1000, 1200, 1600 і 2000 МТ/С (мільйонів передач в секунду), що при найбільшій розрядності (32 битий) і частоті забезпечує пікову швидкість передачі даних до 8 Гбайт/с. У першій версії гранична частота була 800 Мгц, що давало швидкість 6,4 Гбайт/с. Оскільки пакети можуть передаватися одночасно в обох напрямах, можна говорити про сумарну пропускну спроможність 12,8 або 16 Гбайт/с.
Крім сигналів для передачі пакетів, є сигнали скидання і ініціалізації (PWROK — ознака стабільності живлення і синхронізації, RESETS — скидання ланцюжка пристроїв), а також управління енергоспоживанням (LDTSTOPfl — дозвіл/заборона використання з'єднання при зміні станів системи, LDTREQ# — індикатор активності з'єднання або його запиту пристроєм). Ці сигнали «повільні», їх формують передавачі з відкритим стоком (open-drain), всі однойменні сигнали ланцюжка об'єднуються, виконуючи функцію «монтажного АБО». Рівні сигналів — LVTTL/CMOS (2,4 В).
За задумом розробників, НТ повинна стати архітектурою побудови РС, проте поки що використовується лише технологія НТ. У вищенаведеному прикладі головний міст реалізує інтерфейс AGP. У 64-бітових процесорах AMD, в яких застосовується НТ, головний міст розміщується в самому процесорі. При цьому біля процесора опиняється два інтерфейси: інтерфейс пам'яті (поки що DDR SDRAM) і НТ як системна шина. У поширених чіпсетах (від VIA, SIS) до інтерфейсу НТ підключається тільки північний хаб, інтерфейс підключення графічного адаптера, що забезпечує лише, — AGP або PCI-E. Південний хаб з'єднується з північним власним інтерфейсом, так що використання НТ як універсальної транспортної структури для безлічі компонентів поки не спостерігається.