Кільцева шина процесора має власну усталену назву: Ring Bus або Ring Interconnect. Вона об’єднує обчислювальні ядра, спільний кеш третього рівня, графічне ядро і системний агент в одну замкнену петлю передачі даних. Кожен блок підключений до кільця як окрема зупинка. Дані рухаються по петлі в обидва боки і щоразу обирають коротший шлях до адресата.
Технологія з’явилася на межі 2010 і 2011 років. Спочатку вона з’явилась у серверних процесорах родини Nehalem-EX, а трохи пізніше, у 2011 році, перейшла у споживчі чипи Sandy Bridge. До того ядра і кеш з’єднувала мережа виділених провідників під кожну пару блоків. Ця схема погано витримувала зростання кількості ядер. Кільце дало змогу додавати нові зупинки, майже не змінюючи решту схеми.
Зупинки на кільці: що саме до нього підключено
Кожне обчислювальне ядро утворює власну зупинку разом зі своїм зрізом кеша третього рівня. Кеш третього рівня фізично розділений на однакові частини, по одній на кожне ядро. Логічно він, однак, доступний усім блокам як єдиний спільний масив. Окрему зупинку займає системний агент, до якого належать контролер пам’яті, контролер PCI Express і блок дисплея, а у чипах з інтегрованою графікою до кільця додається ще одна зупинка для графічного ядра. Через це саме кільце графічне ядро отримує доступ до того самого кеша третього рівня, що й процесорні ядра.
Чому шина рухається в обидва боки
Кільце влаштоване як дві зустрічні смуги руху. Дані можна відправити за годинниковою стрілкою або проти неї, а контролер щоразу обирає напрямок із меншою кількістю проміжних зупинок. Без цього прийому пакет даних, який фізично розташований поруч, іноді довелося б проганяти через половину кристала.
Наскільки суттєвий виграш від двонапрямковості, можна порахувати напряму. Для кільця з N зупинок середня відстань до довільної іншої зупинки в односторонньому русі дорівнює половині кількості зупинок мінус одна. У двонапрямковому кільці ця відстань дорівнює сумі мінімальних відстаней у кожен бік, поділеній на кількість можливих адресатів. Модель для шести зупинок ілюструє це найпростіше: так виглядає приблизна схема шестиядерного чипа з графічним ядром і системним агентом. Одностороння середня відстань для неї складає три переходи. Двонапрямкова, за тим самим розрахунком, дає лише 1,8 переходу. Для великого серверного кристала з двадцятьма чотирма зупинками картина інша. Одностороння середня відстань зростає до дванадцяти переходів, а двонапрямкова, порахована за тією ж формулою, до 6,3 переходу. Різниця між шістьма і двадцятьма чотирма зупинками пояснює, чому кільце погано масштабується. Відстань зростає разом із кількістю ядер замість того, щоб залишатися сталою.
Частота кільця і чому вона стрибає разом із ядрами
У ранніх реалізаціях Sandy Bridge кільце працювало на тій самій частоті, що й обчислювальні ядра. Тому його пропускна здатність і затримки прямо залежали від режиму роботи процесора. Пізніше на кристал додали два кільця для великих серверних моделей, наприклад у родині Ivy Bridge-EP. Сумарна частота в такій конфігурації могла сягати трьох гігагерц. У тринадцятому поколінні Intel Core частота кільцевої шини зросла ще помітніше. За даними огляду gagadget від березня 2023 року, приріст склав майже гігагерц порівняно з попереднім поколінням. Саме через цю шину відбувається обмін даними між продуктивними і енергоефективними ядрами гібридного чипа.
Ефект вузького горлечка: коли кільце не встигає за ядрами
Термін «вузьке горлечко» тут означає конкретну ситуацію: ядра здатні обробляти дані швидше, ніж кільце встигає їх підвозити з кеша чи пам’яті. Ядро в такому режимі просто чекає, а частина його обчислювального потенціалу простоює.
Дослідники з академічної роботи про продуктивність кластерів Intel виміряли це напряму. Вони знижували частоту домену uncore, того самого шару, що включає кеш і контролер пам’яті, тільки вже на архітектурі mesh замість кільця. Пропускна здатність пам’яті впала на 29 відсотків. Загальна продуктивність задачі, яка частково впирається в кеш, знизилася на 26 відсотків. Натомість споживання енергії скоротилося на 42 відсотки, тому цей компроміс іноді свідомо використовують для економії живлення, а не як помилку налаштування.
Схожа проблема була відома й раніше, ще на клієнтських чипах із кільцем. У Sandy Bridge частота кільця вперше зрівнялася з частотою ядер, що покращило затримки, але водночас створило побічний ефект. Коли ядра переходили в режим економії і знижували частоту, кільце знижувало частоту разом із ними. Через це вбудована графіка, яка теж стоїть на кільці, отримувала дані з кеша повільніше, навіть якщо сама графіка була завантажена роботою. У Haswell інженери розділили тактові домени ядер і кільця і додали динамічне масштабування частоти кільця залежно від того, скільки циклів ядра простоюють в очікуванні даних. За вимірами того самого дослідження про архітектуру ECM, вимкнення цього механізму знижувало пропускну здатність кеша останнього рівня приблизно на 13 відсотків. Абсолютні цифри: падіння з 24 до 21 гігабайта за секунду. Енергоспоживання при цьому падало приблизно на 27 відсотків.
Вплив на пам’ять, кеш і відеокарту: де саме кільце є вузьким місцем
Вплив кільця на різні компоненти системи нерівномірний. Його варто розвести по вузлах. Оперативна пам’ять відчуває вплив найбільше, оскільки кожен запит, який не потрапив у кеш, все одно проходить через зупинку системного агента на кільці. Кеш третього рівня страждає ще пряміше, адже сам розподілений по зупинках кільця, тому швидкість доступу до чужого зрізу кеша залежить від частоти кільця напряму. З обчислювальними ядрами звʼязок непрямий: ядро чекає на кільце не постійно, а лише тоді, коли йому бракує даних у власному кеші першого і другого рівня. У типових однопотокових і офісних задачах це трапляється рідко, тому приріст від розгону кільця там мінімальний, про що вже згадувалося вище.
З відеокартою ситуація залежить від того, про яку саме графіку йдеться. Вбудована графіка на чипах покоління Sandy Bridge, Ivy Bridge і всіх наступних аж до тринадцятого покоління Intel Core стоїть на самому кільці як окрема зупинка. Через це повільне кільце напряму обмежує швидкість, з якою вона отримує кадри з кеша. Дискретна відеокарта підключена зовсім інакше: вона стоїть за контролером PCI Express, який лише прилягає до кільця через системний агент. Пряма затримка кільця на неї майже не поширюється. Непрямий вплив усе ж можливий у сценаріях, де відеокарта простоює в очікуванні даних від процесора: фізика, розпакування текстур, підготовка кадру. У такому разі повільне кільце вповільнює саме цю підготовку, а не роботу графічного чипа.
Кільцева шина і шина процесора: не однакові поняття
Більшість освітніх матеріалів у топі української видачі за запитом «шина процесора» описують зовсім інший вузол. Йдеться про зовнішню шину між процесором і чипсетом, відому як FSB. Типові характеристики для неї: 64 лінії даних і 32 лінії адреси в чипах покоління Pentium. Ця зовнішня шина втратила актуальність із переходом на прямі з’єднання процесора з північним мостом наприкінці двохтисячних років. Кільцева шина з’явилася пізніше і вирішує зовсім інше завдання. Вона не з’єднує процесор із рештою системної плати. Натомість вона з’єднує блоки всередині одного кристала. Плутанина виникає лише через спільне слово «шина», хоча йдеться про два різні вузли з різних епох.
Чи входять обчислювальні ядра в кільце
В окремих українських гайдах з розгону трапляється твердження, що кільцева шина з’єднує допоміжні елементи процесора, тоді як самі обчислювальні ядра до неї нібито не входять. Архітектурні схеми Intel і опис у статті про Ivy Bridge на україномовній Вікіпедії показують протилежне. Кожне ядро займає власну зупинку на кільці нарівні зі своїм зрізом кеша. Саме через цю зупинку ядро отримує доступ до пам’яті і решти кристала. Джерело плутанини зрозуміле. Параметр розгону з назвою на кшталт Ring Ratio найчастіше згадують поряд із частотою кеша. Через це складається хибне враження, ніби ядра до кільця не входять. Автори гайдів просто пропускають цей нюанс.
Чому Intel відмовився від кільця на серверних чипах
Проблема виявила себе на процесорах із великою кількістю ядер. Флагманський Broadwell-EP мав двадцять два ядра, вже не вміщувався в одне кільце, тому інженери розділили кристал на два кільця і додали між ними міст, а перехід даних з одного кільця на інше додавав окремий стрибок затримки. З наближенням до двадцяти восьми ядер третє кільце зробило б схему надто складною. У 2017 році Intel замінила кільце на серверних і настільних флагманських чипах Skylake-SP і Skylake-X. Нова топологія отримала назву mesh: кожен вузол з’єднаний із сусідами по рядку і по стовпцю, без єдиного замкненого контуру для всього кристала. Сітка працює на нижчій частоті, приблизно 1,8 і 2,4 гігагерца проти трьох гігагерц у старому кільці. Виграш вона отримує за рахунок ширших і пряміших маршрутів між віддаленими вузлами.
Де кільцева шина застосовується сьогодні
У серверному і HEDT сегментах кільце як основна топологія вже не використовується. Intel перевела ці лінійки на mesh ще у 2017 році. У масовому настільному і мобільному сегменті ситуація інша. Кільцева шина залишалася основною схемою щонайменше до тринадцятого покоління Intel Core, випущеного у 2022 році. У поколінні Arrow Lake, яке Intel випустила у 2024 році, схема змінилася ще раз. Кристал розділили на окремі тайли: графічний тайл підключили вже не до кільця, а до окремої тканини NGU через інтерфейс D2D. Тому на цих чипах кільце обслуговує лише продуктивні і енергоефективні ядра та кеш, а вбудована графіка від частоти кільця більше не залежить. Для поколінь, випущених пізніше, варто перевіряти актуальну документацію окремо.
Кільцева шина Intel і Infinity Fabric AMD
У процесорах AMD прямого аналога кільцевої шини немає. Замість замкненого контуру компанія використовує Infinity Fabric, масштабовану мережу зв’язків. Побудована вона за іншим принципом. Infinity Fabric одночасно з’єднує блоки всередині одного кристала і окремі кристали, з яких зібраний процесор, тоді як кільце Intel від початку розраховане апаратно лише на єдиний монолітний кристал. Тому порівнювати частоту кільця і частоту Infinity Fabric напряму некоректно. Це не два варіанти однієї схеми, а дві різні відповіді на те саме завдання: поєднати ядра з кешем і пам’яттю.
| Характеристика | Ring Bus | Mesh | Infinity Fabric |
|---|---|---|---|
| Виробник | Intel | Intel | AMD |
| Топологія | замкнене кільце | сітка рядків і стовпців | масштабована мережа зв’язків |
| Типова частота | до 3 ГГц | 1,8-2,4 ГГц | окремий домен, залежить від моделі |
| Де застосовується | десктоп і мобільні чипи до 2022 року | сервери і HEDT з 2017 року | усі сучасні лінійки AMD |
Що це означає на практиці для розгону
У BIOS платформ Intel параметр кільця зазвичай підписаний як Ring Ratio або Cache Ratio. Виставляється він окремо від множника ядер. Підняття цього значення скорочує затримку доступу до кеша третього рівня. У задачах, чутливих до обсягу пам’яті, це здатне дати помітний приріст швидкодії. Сама по собі частота кільця рідко визначає результат у типових іграх чи офісних задачах сильніше, ніж кількість ядер або частота оперативної пам’яті. На платформах AMD такого параметра немає, оскільки там працює інша схема з’єднання.
Розрахунок середньої відстані на кільці, наведений вище, це спрощена модель для пояснення принципу масштабування. Точних цифр затримки конкретного чипа вона не дає. Реальна затримка залежить ще й від черг арбітражу і фізичної довжини провідників. Для рішень щодо розгону варто спиратися передусім на документацію конкретної материнської плати. Загальний принцип роботи кільця дає лише орієнтир, без гарантії для конкретної моделі.