Кольцевая шина процессора что это такое

Процессоры Intel. Внутренняя кольцевая шина (ring bus) и топология сетки (mesh).

Кольцевая шина процессора что это такое

Видео:Частота процессора или частота системной шины?Скачать

Частота процессора или частота системной шины?

Процессоры Intel. Внутренняя кольцевая шина (ring bus) и топология сетки (mesh).

Intel в процессорах Skylake-X и -SP использует топологию сетки (mesh) вместо кольца. В новой архитектуре процессоров Intel отказалась от внутренней кольцевой шины.Intel продолжает увеличивать число ядер в своих процессорах. Skylake-X и Kaby Lake-X будут содержать до 18 ядер, что ставит перед Intel новые проблемы — инженерам компании пришлось серьезно пересмотреть структуру чипа. Еще с поколения Sandy Bridge Intel для соединения ядер использовала (рис. 1) так называемую кольцевую шину (ring bus). В последующих поколениях она тоже использовалась, пусть и с некоторыми изменениями. Хотя Intel вплоть до третьего поколения Ring Bus расширяла число поддерживаемых ядер (рис. 2), но технология достигла предела своих возможностей.

Кольцевая шина процессора что это такое

Рис. 1. Каждый процессор обслуживался двумя кольцевыми шинами.

Процессоры Skylake-SP и Skylake-X используют топологию сетки (mesh) для связи ядер. Кэш L3, контролеры памяти и ввода/вывода тоже интегрируются в сетку. В результате можно легко наращивать число ядер процессора, сочетая высокую пропускную способность и низкие задержки. Технология для Intel не новая, поскольку она уже использовалась в вычислительных ускорителях Xeon Phi.

При переходе на топологию сетки Intel пришлось изменить расположение контроллеров памяти. Раньше они располагались ниже ядер, теперь вынесены в правую и левую часть. Все это обеспечивает более эффективную работу с памятью (рис. 3).

Тесты покажут, насколько существенно Intel смогла увеличить производительность благодаря переходу на сетчатую топологию в многопоточных приложениях. В теории новая топология обеспечивает большую пропускную способность по сравнению с кольцевой шиной, а также меньшие задержки, что должно увеличить производительность.

Ещё в марте 2017 года компания Intel показала изображение 28-ядерного кристалла процессора Skylake-SP. Тогда все обратили внимание, что расположение ядер и интерфейсов претерпели значительные изменения. Как выяснилось, в дальнейшем Intel откажется (и уже отказалась для процессоров Skylake в версиях Xeon и настольных решений высшей производительности) от внутрипроцессорной кольцевой шины.

Кольцевая шина процессора что это такое

Рис. 2. Intel Xeon Processor E5 v4 Product Family HCC.

Кольцевая шина (ring bus) была представлена еще в 2008 году вместе с архитектурой Nehalem и процессорами Westmere-EX. Она была необходима в связи с увеличением числа ядер на кристалле. Разработчики Intel использовали три варианта дизайна процессоров (в зависимости от максимального числа ядер на кристалле) с тремя вариантами кольцевой шины. В самом сложном случае процессор внутри разделялся на два кластера, каждый из которых обслуживался двумя кольцевыми шинами (рис. 2). Между собой шины соединялись двунаправленными коммутаторами с буферизацией (на диаграмме выше обозначены серым цветом).

По мере роста числа ядер кольцевая шина стала препятствием на пути увеличения пропускной способности и снижения задержек. Точнее, она стала слишком много потреблять, чтобы её можно было масштабировать в сторону увеличения скорости по обмену данными. Поэтому в процессорах Skylake-SP разработчики Intel решили применить иную структуру для связи ядер друг с другом — хорошо опробованную в архитектуре Intel Xeon Phi (Knights Landing) ячеистую сеть (рис. 3).

Кольцевая шина, как вы можете знать, в максимальной конфигурации представляет собой четыре двунаправленных кольца (по два кольца на кластер из ядер), соединённых двумя двунаправленными коммутаторами с буферами. Дальнейшее наращивания числа ядер, кластеров и коммутаторов значительно увеличивает потребление и задержки при обмене данными между ядрами из разных кластеров. Выход найден в переходе на ячеистую сеть, в которой каждое ядро поддержано собственным коммутатором и возможностью координатной пересылки данных фактически напрямую любому другому ядру в процессоре.

Ранее подобную сеть Intel реализовала в архитектуре процессоров Xeon Phi (Knights Landing и другие), так что разработка опробована на практике и показала свою эффективность, ведь в составе ускорителей и процессоров Xeon Phi может быть свыше 70 ядер.

Кольцевая шина процессора что это такое

Рис. 3. Структура ячеистой сети.

Архитектура ячеистой 2D-сети дебютировала в продуктах Intel Knights Landing. Сеть состоит из горизонтальных и вертикальных межсоединений между ядрами, кэшем и контроллерами ввода-вывода. На схеме отсутствуют буферизированные переключатели, которые очень негативно сказываются на задержках. Возможность «ступенчатого» движения данных через ядра позволяет осуществлять гораздо более сложную и предположительно эффективную маршрутизацию. Intel утверждает, что 2D-сеть имеет более низкое напряжение и частоту, чем у кольцевой шины, но при этом обеспечивает более высокую пропускную способность и более низкую задержку.

Каждое ядро в новой архитектуре имеет свой коммутатор с буфером и связано с любым другим ядром в составе процессора только через два узла — исходящий и входящий. Это позволяет ячеистой шине работать на относительно небольших частотах и существенно снизить общее потребление интерфейса без ухудшения пропускной способности и увеличения задержек. К тому же подобная структура коммуникаций очень хорошо масштабируется, позволяя Intel в будущем наращивать число ядер на кристалле без заметного увеличения энергетических затрат на внутреннюю транспортировку данных. Разъяснение сути новой внутренней шины, а также появление изображения 18-ядерного процессора с новым дизайном, позволяет также убедиться, что новые процессоры действительно несут интегрированный 6-канальный контроллер памяти, который теперь разнесён по краям сбоку на кристалле чуть выше середины.

Читайте также: Грузовая шина satoya su 022

Видео:Разгон кольцевой шины и кэша L3 процессораСкачать

Разгон кольцевой шины и кэша L3 процессора

Кольцевая шина процессора что это такое

Ещё в марте компания Intel показала изображение 28-ядерного кристалла процессора Skylake-SP. Тогда мы обратили внимание, что расположение ядер и интерфейсов претерпели значительные изменения. Вчера в компании Intel на одном из домашних мероприятий пояснили, с чем связаны эти перемены в дизайне. Как выяснилось, в дальнейшем Intel откажется (и уже отказалась для процессоров Skylake в версиях Xeon и настольных решений высшей производительности) от внутрипроцессорной кольцевой шины.

реклама

Кольцевая шина (ring bus) была представлена в 2008 году вместе с архитектурой Nehalem и процессорами Westmere-EX. Она была необходима в связи с увеличением числа ядер на кристалле. Разработчики Intel использовали три варианта дизайна процессоров (в зависимости от максимального числа ядер на кристалле) с тремя вариантами кольцевой шины. В самом сложном случае процессор внутри разделялся на два кластера, каждый из которых обслуживался двумя кольцевыми шинами. Между собой шины соединялись двунаправленными коммутаторами с буферизацией (на диаграмме выше обозначены серым цветом).

По мере роста числа ядер кольцевая шина стала препятствием на пути увеличения пропускной способности и снижения задержек. Точнее, она стала слишком много потреблять, чтобы её можно было масштабировать в сторону увеличения скорости по обмену данными. Поэтому в процессорах Skylake-SP разработчики Intel решили применить иную структуру для связи ядер друг с другом — хорошо опробованную в архитектуре Intel Xeon Phi (Knights Landing) ячеистую сеть.

Каждое ядро в новой архитектуре имеет свой коммутатор с буфером и связано с любым другим ядром в составе процессора только через два узла — исходящий и входящий. Это позволяет ячеистой шине работать на относительно небольших частотах и существенно снизить общее потребление интерфейса без ухудшения пропускной способности и увеличения задержек. К тому же подобная структура коммуникаций очень хорошо масштабируется, позволяя Intel в будущем наращивать число ядер на кристалле без заметного увеличения энергетических затрат на внутреннюю транспортировку данных.

Видео:03. Основы устройства компьютера. Память и шина. [Универсальный программист]Скачать

03. Основы устройства компьютера. Память и шина. [Универсальный программист]

Intel Sandy Bridge. Микроархитектура

Обзор микроархитектуры процессоров Intel Sandy Bridge (обновлено)

Видео:Преимущества от разгона процессора и памяти в играх. Как, что и когда разгонять?Скачать

Преимущества от разгона процессора и памяти в играх. Как, что и когда разгонять?

Кольцевая шина

В системах предыдущего поколения обмен данными между различными функциональными частями системы происходил через специализированные шины данных — QPI и DMI. В случае Sandy Bridge, где графическая часть и системная логика интегрированы в процессор, вместо внешних шин QPI и DMI используется внутренняя кольцевая шина (Ring Interconnect):

Кольцевая шина процессора что это такое

Кольцевая шина объединила каждое ядро процессора, графическое ядро, кэш последнего уровня (LLC) и системный агент, в котором находится управляющая логика.

По сути, кольцевая шина — это протокол, который включает в себя комбинацию протокола QPI и протокола коррекции ошибок.

Кольцевая шина Sandy Bridge — это общее понятие, а сам обмен данными происходит посредством четырех функциональных шин шириной по 32 байта:

  • Data Ring
  • Request Ring
  • Acknowledge ring
  • Snoop Ring

Все четыре используются на разных фазах транзакции, поэтому для полного доступа к кольцевой шине необходимо четыре такта. Организация кольцевой шины позволяет любому из компонентов, которые она объединяет, обращаться друг к другу напрямую. Таким образом, в одно и то же время кеш может использоваться как ядрами, так и графической системой.

Если в ядре Westmere EX кольцевая шина имела общую точку доступа ядрам процессора, то организация индивидуальных точек доступа (Cache Box) дала серьезный задел для масштабируемости. В четырехядерных процессорах скорость доступа ядер к кешу последнего уровня возросла с 96 Gb/s у Westmere EX до 384 Gb/s у Sandy Bridge.
Задержка доступа к кешу сократилось с примерно 36 циклов у Westmere до 26-31 циклов в Sandy Bridge.

Кольцевая шина имеет общее питание и частоту с ядрами процессора и кэшем последнего уровня. При увеличении нагрузки на процессор, увеличивается частота ядер, а вместе с ней — тактовая частота кольцевой шины и кеша последнего уровня. Такая реализация позволяет добиться реальной масштабируемости пропускной способности системы и энергопотребления. Однако лично мне пока не ясно, как скажется такая реализация на производительности графической системы при условии нагрузки только на графическую часть, когда кольцевая шина и LCC будут работать вместе с простаивающими ядрами на пониженной частоте.

Читайте также: Шины pirelli formula energy 235 55 r19 105v xl

Видео:Системная шина процессораСкачать

Системная шина процессора

Процессоры Intel Sandy Bridge — все секреты

Оглавление

  • «Крутой и холодный».
  • Фронт конвейера: Предсказание переходов; Декодирование и IDQ; Стековый движок; Тайная жизнь нопов.
  • Кэш мопов: Цели и предшественники; Устройство; Размеры; Ограничения; Работа.
  • Диспетчер и планировщик: Переименование и размещение; Новый старый стиль.
  • Исполнительная стадия: Тракты данных; Конфликты завершения; Межтрактные шлюзы; Вещественные денормалы; Частичный доступ к регистрам.
  • AVX: Реализация; Подножка; Решение; Сохранение состояния; Динамические тайминги; Новые и отсутствующие команды.
  • Тайминги команд.
  • Кэши: L1D; LSU; Внеочерёдный доступ; STLF; Задержки чтения; TLB; Аппаратная предзагрузка.
  • Hyper-Threading.
  • Внеядро: Кэш L3; Кольцевая шина; Поддержка аппаратной отладки; Когерентность и «поддержка» OpenCL; Системный агент и ИКП.
  • Turbo Boost 2.0.

В скобках указаны значения для Nehalem (если есть отличие).

КэшL0m (новый)L1IL1DL2L3
Размер1536 мопов32 КБ256 КБ1–20 (2–30) МБ
Ассоциативность88 (4)888, 12, 16, 20 (12, 16, 24)
Размер строки6 мопов64 байта
Задержка, тактов3?44–7 (4)11–12 (10)≈26–31 (≈35–40)
Число портов213 (2)11 на банк, 2–8 банков
(2 на кэш, 1–10 банков)
Разрядность портов4 мопа16 байт64 байта64? (32) байта
Частота
(f — частота ядра)
ff/2Максимум всех f
(2,13–2,66 ГГц)
Политика работыВключающаяВключающая
Свободная
Только чтениеОтложенная запись
Общий для …Потоков ядраВсех ядер, включая ГП

Сразу скажем, что кэши L1I и L2 почти не изменились — у первого ассоциативность снова (как и до Nehalem) стала 8, а у второго чуть увеличилась задержка. Самое главное изменение в ядрах, касаемое кэшей, кроется в доступе к L1D, который теперь стал 3-портовым: к раздельным портам чтения и записи добавили ещё один для чтения. Кроме того, как уже было указано, в планировщике Nehalem 2-й порт вычисляет адрес чтения и исполняет само чтение, 3-й вычисляет адрес записи (только), а 4-й — исполняет саму запись. В SB же порты 2 и 3 могут и вычислить любой адрес, и исполнить чтение.

Внимательный Читатель сразу найдёт подвох: портов L1D — 3, а адресных генераторов — 2. При не более чем 16-байтовых обменах их устоявшийся максимальный темп составит 32 байта/такт (либо два чтения, либо чтение и запись). 32-байтовые операции каждым портом обслуживаются за два такта, причём вычисление адреса для конкретной команды происходит в течение первого из них. Так что для двух чтений и одной записи требуется три адреса в течение двух тактов — тогда при потоковых обменах один из трёх нужных адресов можно вычислить заранее в течение второго такта предыдущей 32-байтовой операции. Только так мы получим искомый максимум в 48 байт/такт.

Возникает довольно странный компромисс: три 16-байтовые операции за такт в потоке сделать нельзя. С другой стороны, за такт можно вычислить адреса для двух 32-байтовых обменов, но даже одно 32-байтовое чтение за такт не запустишь, потому что порты чтения не объединяются. Т. е. либо нам не будет хватать числа AGU (тех, что в портах 2 и 3), либо ширины портов, либо возможности их объединения.

Как мы знаем из теории, многопортовость в кэшах чаще всего делается не явная, а мнимая, с помощью многобанковости. Однако Nehalem нарушил это правило, внедрив 8-транзисторные битовые ячейки для всех кэшей ядра. Помимо большей экономии (об этом подробно рассказывалось в статье о микроархитектуре Intel Atom, который тоже применяет такую схему), это также даёт возможность получить истинную 2-портовость (чтение + запись), что и было использовано в L1D — никаких конфликтов по адресам в имеющихся 8 банках не было. В SB банков по-прежнему 8, а портов уже 3. Очевидно, конфликты неизбежны, но только среди адресов портов чтения.

Каждый банк L1D имеет ширину в 8 байт, вместе составляя строку, поэтому каждый из 16-байтовых портов использует 1–2 банка при выровненном доступе и 2–3 при невыровненном. Например, 8-байтовое чтение, пересекающее 8-байтовую границу, использует 2 банка, как и выровненное 16-байтовое. В SB конфликт происходит, если хоть один из банков, нужных одному чтению, также нужен и второму, причём для доступа к другой строке. Последнее означает, что если оба чтения требуют не только одинаковый(ые) банк(и), но и одинаковые номера строк в нём (них), то конфликта не будет, т. к. фактический доступ произойдёт один, и он обслужит оба обращения. В Nehalem, с его единственным чтением за такт, такого, очевидно, быть не могло.

Читайте также: Шина соединительная типа pin 12 штырей 3р 63а 22см iek

Упомянув о невыровненном доступе, скажем и о более «грешных» делах — пересечении строки кэша, что обойдётся 5-тактным штрафом, и границы страницы виртуальной памяти (чаще всего — 4 КБ), что наказывается в среднем 24 тактами (ситуация требует сериализации конвейера). Причём последняя цифра малообъяснима, т. к. TLB, как мы увидим ниже, способны на одновременную обработку обеих смежных страниц — но даже при последовательном доступе двухзначной цифры получиться не может…

Изменений в LSU (контроллере L1D, который Intel упорно называет MOB) не меньше, чем в само́м кэше. Начнём с того, что очередь чтения удлинилась с 48 до 64 ячеек, а записи — с 32 до 36. Каждая ячейка привязана к одному мопу, а очередь записи хранит ещё и 32 байта данных (было 16). Очередь чтения хранит все команды считываний, но в каждый момент не более 32 могут обрабатываться на разных стадиях. Фактически, это отдельные диспетчер и планировщик, «ROB» которых хранит 64 мопа, а «резервация» — 32. Когда чтение завершено, моп удаляется из этой резервации, но остаётся в очереди чтения до отставки. Очередь записи хранит информацию до отставки предыдущих команд, когда ясно, что адрес, данные и сам факт исполнения команды верны, а значит её можно попытаться записать в кэш. Если попытка успешна — моп записи уходит в отставку, освобождая место и в очереди, и в ROB. При промахе или других проблемах запись задержится.

Как и все современные кэши, L1D является неблокирующим — после промаха он может принимать дальнейшие запросы одновременно с заполнением себя подгруженными данными. Кэш может выдержать даже 3 промаха/такт. Одновременно удерживается столько промахов, сколько имеется буферов заполнения. В SB, как и в его предшественнике, у L1D таковых 10, а у L2 — 16. Политика отложенной записи в L1D и L2 означает, что модифицированная строка остаётся в кэше до вытеснения, однако информация о факте её модификации (если до этого данные были «свежие») отправляется в теги соответствующей строки в L3.

Внеочерёдный доступ

Внеочерёдный движок получил любопытное дополнение: предсказание адресов, на основе которого порядок обращений в кэш может быть переставлен, делается не отдельными адресами, а целыми диапазонами — предсказывается верхнее и нижнее значения адреса, в пределах которых, как предполагается, произойдёт запись. Если точно известный адрес чтения не попадает ни в один диапазон ещё не исполненных записей — чтение можно запустить заранее. Такой вариант срабатывает чаще имевшегося ранее, который разрешал внеочерёдную загрузку, только если есть высокая вероятность несовпадения с конкретным адресом записи. Сама вероятность рассчитывается, как в предсказателе переходов — в LSU, видимо, есть некий аналог таблицы BHT со счётчиком вероятности в каждой ячейке. Когда адрес записи становится известен, счётчик увеличивается при несовпадении адресов и уменьшается при конфликте.

Однако предсказатель оперирует только выровненными на 16 байт чтениями размером до 16 байт, а также выровненными 32-байтовыми — остальные будут ждать вычисления адресов всех предыдущих записей. Ещё одна проблема нового движка в том, что он предсказывает лишь младшие 12 бит адресов: если у записи и чтения они равны (даже если они не предсказаны, а точно известны), то чтение считается зависимым от записи. Т. е. фактически предсказывается лишь 8 бит адреса — с 5-го по 12-й. Возможно, ложная зависимость обусловлена тем, что в ячейках таблицы счётчиков нет поля, хранящего старшую часть адреса.

…серьёзно улучшен. Описывать громоздкие старые правила для Nehalem мы не будем, укажем сразу новые:

  • байты для чтения должны полностью содержаться в записи, вне зависимости от выровненности адресов и размеров операций; это эквивалентно следующему: W-байтовая запись по адресу A перенаправляется в R-байтовое чтение по адресу B, если A≤B и A+W≥B+R; далее указаны исключения:
  • если запись 16- или 32-байтовая — 4- и 8-байтовые чтения обрабатываются в пределах её 8-байтовых порций;
  • если запись 32-байтовая — все чтения, кроме 32-байтовых, обрабатываются в пределах её 16-байтовых половин;

Ясно, что STLF не может работать одновременно с внеочерёдной загрузкой: адреса записей должны быть известны точно, а не только 8 битами.

  • Свежие записи
    • Нужно ли менять пружины при замене амортизаторов
    • Скрипят амортизаторы на машине что делать
    • Из чего состоит стойка амортизатора передняя
    • Чем стянуть пружину амортизатора без стяжек
    • Для чего нужны амортизаторы в автомобиле


    🔍 Видео

    Частота процессора, множитель и системная шинаСкачать

    Частота процессора, множитель и системная шина

    Частота процессора, множитель и системная шинаСкачать

    Частота процессора, множитель и системная шина

    Как разогнать процессор и память? Гоним по шине и множителю.Скачать

    Как разогнать процессор и память? Гоним по шине и множителю.

    КАК работает ПРОЦЕССОР? ОБЪЯСНЯЕМСкачать

    КАК работает ПРОЦЕССОР? ОБЪЯСНЯЕМ

    Как работает процессор: частоты, шины и т.д.Скачать

    Как работает процессор: частоты, шины и т.д.

    Шина компьютера, оперативная память, процессор и мостыСкачать

    Шина компьютера, оперативная память, процессор и мосты

    Разгон на "постоянку" в современных процессорахСкачать

    Разгон на "постоянку" в современных процессорах

    Как работает компьютер? Шины адреса, управления и данных. Дешифрация. Взгляд изнутри!Скачать

    Как работает компьютер? Шины адреса, управления и данных. Дешифрация. Взгляд изнутри!

    Как разогнать процессор. Инструкция для чайников. Intel.Скачать

    Как разогнать процессор. Инструкция для чайников. Intel.

    Святой разгон Intel. Гайд для чайниковСкачать

    Святой разгон Intel. Гайд для чайников

    Влияние шин PCI-e и внутренней шины видеокарты на производительностьСкачать

    Влияние шин PCI-e и внутренней шины видеокарты на производительность

    Шины ввода-выводаСкачать

    Шины ввода-вывода

    Принцип работы процессора на уровне ядраСкачать

    Принцип работы процессора на уровне ядра

    Intel Alder Lake (12 gen) | Две новые микроархитектуры на одно поколение.Скачать

    Intel Alder Lake (12 gen) | Две новые микроархитектуры на одно поколение.

    Работа vGFX Core и шины SVID на примере asus x55aСкачать

    Работа vGFX Core и шины SVID на примере asus x55a
Поделиться или сохранить к себе:
Технарь знаток