- •Глава 34. Структуры многоядерных процессоров для пк и серверов
- •34.1. Компоненты многоядерного процессора
- •Системный агент Системный агент — это та часть аппаратуры процессора, которая получается после вычета кэш-памяти l3 и графического процессора (если он входит в состав процессора). Остаются:
- •34.2. Топологии связей между общими компонентами процессора
- •34.3. Когерентность данных Суть проблемы когерентности данных
- •Протоколы обеспечения когерентности
- •Протокол когерентности данных mesi
- •34.5. Энергосбережение
- •Некоторые особенности обеспечения когерентности в процессорах фирмы Intel
- •34.4. Примеры структур многоядерных процессоров
- •34.6. Контрольные вопросы
Системный агент Системный агент — это та часть аппаратуры процессора, которая получается после вычета кэш-памяти l3 и графического процессора (если он входит в состав процессора). Остаются:
арбитр со своим портом кольцевой шины — коммутирует потоки данных между остальными частями системного агента;
порт отладочной шины;
контроллеры интерфейсов QPI (присутствуют только в серверных моделях);
контроллер интерфейса PCIe;
контроллер для соединения с периферийным контроллером (PCH);
ускоритель кодирования/декодирования видео;
контроллер оперативной памяти;
программируемый контроллер управления питанием (Power control unit, PCU) с собственной программой.
34.2. Топологии связей между общими компонентами процессора
Топология «каждый с каждым»
Связь между кэш-памятью L3 и другими общими компонентами процессора может реализовываться различными способами. Как известно, наиболее производительной, но и наиболее дорогой, является топология связей «каждый с каждым». Из-за дороговизны и плохой масштабированности эта топология внутри многоядерных процессоров не применяется.
Коммутатор
Достаточно часто в процессорах используется коммутатор. Примеры упрощенных структур 4-х ядерного процессора Barcelona фирмы AMD и 8-ми ядерного процессора POWER 7 фирмы IBM приведены на рис. 34.2 и 34.3.
Рис. 34.2. Упрощенная структура 4-х ядерного процессора Barcelona с коммутатором для связи всех компонентов
Рис. 34.3. Упрощенная структура 8-ми ядерного процессора POWER 7 с коммутатором для связи всех компонентов
С точки зрения производительности эта топология незначительно уступает топологии «каждый с каждым» (из-за конфликтов, которые могут возникать при одновременных обращениях к одному приемнику).
«Кольцо»
В процессорах фирмы Intel, начиная с процессоров со структурой Sandy Bridge, используется топология «Кольцо» (Ring Interconnect).
Кольцевая шина в многоядерных процессорах служит для обмена данными между следующими ключевыми компонентами процессора:
процессорными ядрами;
графическим ядром (если оно имеется);
сегментами кеш-памяти L3;
системным агентом.
Кольцевая шина состоит из четырёх 32-байтных колец:
кольца данных (Data Ring);
кольца запросов (Request Ring);
кольца мониторинга состояния (Snoop Ring);
кольца подтверждения (Acknowledge Ring).
Управление кольцами осуществляется с помощью коммуникационного протокола распределённого арбитража, при этом конвейерная обработка запросов происходит на тактовой частоте процессорных ядер. Производительность кольцевой шины оценивается на уровне 96 Гбайт в секунду на соединение при тактовой частоте 3 ГГц.
Кольцевая топология обеспечивает хорошие показатели по производительности и хорошую масштабируемость для версий процессоров с различным количеством ядер и других компонентов. В перспективе к кольцевой шине может быть "подключено" до 20 процессорных ядер на кристалл. Кроме того, физически в кристалле процессора кольцевая шина располагается непосредственно над блоками кеш-памяти L3 в верхнем уровне металлизации, что упрощает разводку схемы и позволяет сделать процессор более компактным.
