company_banner

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


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

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

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

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


    Система соединений Intel Atom CE4100 и подключенные к ней блоки

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

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

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


    Кольцевая шина SandyBridge-EX и подключенные к ней блоки

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

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

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

    Comments 12

      +1
      yurav
      Если честно, я не понял как устроена сама по себе коммуникационная фабрика. Это шина? Или это отдельный блок? каким образом соединяется коммуникационная фабрика и процессорные блоки?
        0
        Зависит от того, в каком, скажем так, сегменте процессорного рынка, эта фабрика используется. Фабрику для consumer electronics можно рассматривать как отдельный блок, создаваемый для конкретной цели. Для высокопроизводительных систем это как правило одна из модификаций кольцевой или решетчатой топологии, к узлам которой подключаются IP блоки.
        Для подключения блоков к фабрике существует ряд стандартных (но проприетарных) интерфейсов. Интерфейсы отличаются в основном тем, какие типы транзакций поддерживаются и какую пропускную способность они предоставляют.
          0
          Спасибо за сатью. Хотелось бы все-таки более подробно узнать о том как фабрика обеспечивает требуемые пропускную способность и масштабируемость архитектуры. Каким образом осуществляется эффективная обработка множества транзакций? Интересно было бы прочитать отдельную статью про устройство коммуникационных фабрик.
            0
            Боюсь, о глубоко технических деталях я говорить не могу — секрет. Но подумаю что я мог бы написать на этот счет.
            Хотя в чем-то ответ очевиден:
            1) Выиграть у разделяемой шины по пропускной способности можно конвейеризировав обработку транзакций и распараллелив где это возможно. Другое дело, что это просто только на словах, и тут кроется масса технических проблем.
            2) Масштабируемость кольца или решетки гораздо выше чем у общей шины. И опять-таки тут кроется масса проблем, например, алгоритм маршрутизации сообщений между узлами сети, отсутствие тупиковых состояний всех видов, организация распределенного кэша…
        0
        Fabric все-таки должно переводится как ткань, сеть, полотно, коммутационная матрица.
          0
          Если речь идет о переводе отдельностоящего слова «fabric» — согласен. Но в данном случае «коммуникационная фабрика» — это принятый де-факто перевод конкретного технического термина. Правда, принятый в значительной мере благодаря моим трудам и моих коллег. :)
            0
            Имхо перевод довольно неудачный, поскольку переиначивает семантику словосочетания. Что производит эта фабрика? Да и сходный термин switching fabric переводится как раз как коммутирующая матрица, сеть.

            Да, и это репост? Мне казалось, что на Хабре это не поощряется.
              0
              Опять-таки, согласен. Но только отчасти. То, что называется «communication fabric» порой ничего даже близко похожего на матрицу собой не представляет и не содержит

              Нет, не репост. Это копия моего же сообщения из блога на ISN, который, увы, не страдает избытком читателей. А репост — это копия чужого контента. Или я не прав?
                0
                вернее это пересмотренная версия
                  0
                  Учитывая, что в правилах отдельно рассматривается копирование чужого контента (копипаста) и кросспостинг (копирование своего контента) — то я склонен думать, что здесь вы не правы.
            0
            А что за фотка с дорожной развязкой, это где?

          Only users with full accounts can post comments. Log in, please.