Коммуникационные фабрики и с чем их едят

в 11:23, , рубрики: intel, Блог компании Intel, высокая производительность, Железо, метки: ,

Коммуникационные фабрики и с чем их едят
Если у человека, далекого от компьютерной индустрии, спросить, что находится внутри процессора, ответ, скорее всего, ограничится словами «мозг компьютера». Те, кому эта тема ближе, назовут примерно десяток различных блоков (например, кэш, ядра и контроллер памяти). Но вот как эти блоки соединены друг с другом, ответить, скорее всего, затруднятся или ответят неверно. А ведь кому-то наверняка хочется это знать! Давайте удовлетворим здоровое любопытство уважаемых хаброжителей.

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

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

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

Коммуникационные фабрики и с чем их едят
Система соединений Intel Atom CE4100 и подключенные к ней блоки

Однако, с проектированием коммуникационных фабрик связано множество трудностей, которые я попробую вкратце обрисовать.

Сейчас коммуникационные фабрики используются в процессорах для практически всех сегментов компьютерного рынка: от высокопроизводительных серверных и графических решений, до настольных и встраиваемых систем. Архитектура фабрик для hi-end систем (rings, meshes, etc.) существенно отличается от используемой во встраиваемых системах (ad-hoc). В составе систем на кристалле коммуникационные фабрики нередко решают задачи ввода/вывода и выполнения протокола целостности кэша. Поэтому дизайн коммуникационных фабрик предъявляет повышенные требования к качеству (корректность, производительность, энергопотребление, надежность) и скорости интеграции в современные и будущие продукты.

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

Коммуникационные фабрики и с чем их едят
Кольцевая шина SandyBridge-EX и подключенные к ней блоки

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

Если рассматривать проблему проверки характеристик фабрики, то оказывается, что текущие средства формальной верификации не способны анализировать системы такой сложности. Как правило, проводимый анализ производительности и корректности основывается на имитационном моделировании. При этом высока вероятность упустить существенные граничные случаи, что не позволяет получить надежных гарантий производительности. А убедиться в отсутствии тупиковых состояний (так называемых deadlocks и livelocks) при таком подходе просто невозможно. Кроме того, ряд тупиковых сценариев в принципе невозможно обнаружить, анализируя части системы по отдельности – необходимо рассматривать коммуникационную фабрику в конкретной конфигурации, вместе с подключенными к ней агентами.

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

Автор: yurav

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js