Обчислювальна техніка та програмне забезпечення 101 УДК 004.27 Марченко А.И., к.т.н., доц. каф. ПМ НТУУ „КПІ” Богуславский О.В., аспірант каф. СКС НТУУ „КПІ” КЛАССИФИКАЦИЯ И АНАЛИЗ ВОЗМОЖНОСТЕЙ ВНУТРЕННИХ ШИН ОДНОКРИСТАЛЬНЫХ МНОГОПРОЦЕССОРНЫХ СИСТЕМ В статье проанализированы основные характеристики, особенности и возможности внутренних шин однокристальных многопроцессорных систем, приведена их классификация и рекомендации, позволяющие сделать оптимальный выбор внутренней шины при проектировании однокристальной многопроцессорной системы. In this article the main characteristics, specifics and capabilities of multiprocessor systems-on-chip internal buses were analyzed. The classification of internal buses was proposed. The recommendations, which allow selecting the most suitable internal bus during the design of multiprocessor system-on-chip, were provided. Однокристальные многопроцессорные системы (ОМС) все чаще используются для построения сложных программно-аппаратных комплексов. Такие системы должны 102 Наукові записки УНДІЗ, №1, 2007 обрабатывать большие объемы информации в реальном времени, потреблять мало электроэнергии и иметь минимальную стоимость [1]. Одними из наиболее востребованных являются ОМС, в состав которых одновременно входят процессоры общего назначения и процессоры ЦОС. Для ОМС разработано большое количество спецификаций шин с высокой пропускной способностью, позволяющих минимизировать задержки при передаче данных. При проектировании сложных ОМС становится все сложнее сделать выбор в пользу того или иного стандарта или подхода в связи с отсутствием четких критериев для классификации внутренних шин ОМС [8]. В работах [5, 6, 7, 14, 16] были рассмотрены некоторые стандарты внутренних шин и интерфейсов ОМС. В частности, авторы [14] проанализировали возможности разработанных ними шин и сравнили их со стандартом CoreConnect. Р.Уссельман [16] сосредоточил внимание на стандартах AMBA, CoreConnect и WishBone. Б.Кордан [7] подробно рассмотрел шину CoreFrame. Д.Бэйнбридж и С.Фарбер [5,6] проанализировали стандарты асинхронных шин Chain и Marble. Эти работы дают общее представление о функционировании внутренних шин ОМС и подчеркивают их основные особенности. Однако авторы не приводят критериев, с помощью которых можно было бы сравнить все существующие стандарты внутренних шин ОМС. Таким образом, основной целью данной статьи является выработка критериев классификации внутренних шин ОМС на основании анализа их основных характеристик и возможностей. Для достижения поставленной цели была поставлена задача охарактеризовать и классифицировать существующие стандарты и подходы к построению внутренних шин ОМС. Внутренние шины ОМС Приведем краткую характеристику существующих в настоящее время стандартов и спецификаций внутренних шин ОМС и выделим характерные особенности, позволяющие выбрать наиболее подходящую шину для проектируемой ОМС. AMBA. Стандарт AMBA [2] изначально был разработан для эффективного взаимодействия между процессорами ARM. На данный момент AMBA наиболее часто используется при построении ОМС главным образом потому, что этот стандарт не накладывает жестких ограничений на метод арбитража шины. Это позволяет реализовать арбитраж в соответствии с требованиями, которые предъявляются к проектируемому устройству. AMBA иерархически разделена на два уровня: – Шина Advanced High-Performance Bus (AHB) или ее более старая спецификация – Advanced System Bus (ASB). – Шина Advanced Peripheral Bus (APB). AHB – это высокоскоростная шина, соединяющая процессоры ОМС, внутренние модули памяти, интерфейсы к внешним модулям памяти и мосты APB. В качестве процессоров в современных ОМС на базе шины AMBA используются процессоры ARM, MIPS, AVR, 8051 и др. На шине AHB может быть несколько ведущих и несколько ведомых устройств. Шина APB используется для подключения медленных периферийных устройств, и подключается к шинам AHB или ASB через специальный APB-мост. Эта шина оптимизирована для минимального потребления энергии [ryi]. APB-мост является ведущим устройством по отношению к подключенным к нему периферийным устройствам, и все задержки, связанные с низкой скоростью обмена информацией с периферийными устройствами, буферизируются APB-мостом [2]. В более новой спецификации AMBA [3] были добавлены две новых шины: Обчислювальна техніка та програмне забезпечення 103 – Многоуровневая AHB. – AMBA Advanced Extensible Interface (AXI). Многоуровневая AHB позволяет создавать более гибкие, по сравнению с AHB, архитектуры (например, матричного типа, в которых имеется возможность параллельных пересылок между несколькими ведущими и ведомыми устройствами). AMBA AXI построена по принципу двухточечного соединения («точка-точка»); между ведущим и ведомым устройством передача данных происходит по отдельным каналам записи и чтения [3]. Avalon. В спецификации Avalon [4] определен набор типов сигналов и пересылок, которые осуществляются с помощью этих сигналов. С помощью этой спецификации можно описать как традиционные периферийные интерфейсы (например, SRAM, который поддерживает только простые пересылки с фиксированной длительностью), так и более сложные конвейерные интерфейсы, поддерживающие пакетные пересылки. Эта шина допускает наличие нескольких ведущих устройств. Ведущие и ведомые устройства взаимодействуют между собой по принципу распределенного арбитража. Размер пересылки изменяется в пределах 8 бит – 1024 бита (может изменяться динамически в зависимости от того, какие устройства были подключены к шине), минимальное время пересылки – 1 цикл. Передача адреса, данных и контрольной информации осуществляется по отдельным каналам. Шина Avalon была разработана компанией Altera для соединения процессоров и периферийных устройств на однокристальной программируемой системе. В основном в качестве процессоров выступает процессоры Nios и Nios II [4]. CoreConnect. Шина CoreConnect [16], разработанная компанией IBM, состоит из трех шин, каждая из которых имеет большой набор опций. Это позволяет интегрировать в одну систему процессоры и периферийные устройства различных производителей. Как и AMBA, CoreConnect является иерархической архитектурой, которая включает в себя следующие шины: – Processor Local Bus (PLB). – On-Chip Peripheral Bus (OPB). – Device Control Register (DCR) Bus. PLB является главной системной шиной и предназначена для интенсивных обменов данными. К этой шине можно подключать до 16 ведущих устройств (количество ведомых устройств не ограничено). Разделенные шины адреса и данных поддерживают одновременные операции чтения и записи. Шина поддерживает специальные операции доступа к памяти типа «просмотр-на-лету». Шина OPB так же, как и шина APB, подключена к шине PLB через OPB-мост, который является ведомым устройством со стороны PLB и ведущим устройством для периферийных устройств. Основное отличие от шины APB – разрядность. К шине DCR подключается только одно ведущее устройство (как правило, управляющий процессор), которое опрашивает и конфигурирует ведомые устройства. Эта особенность DCR делает архитектуру CoreConnect малопригодной для построения ОМС, хотя при этом наличие шины DSR позволяет уменьшить загрузку основной системной шины. Поэтому в большинстве ОМС на базе архитектуры CoreConnect присутствует процессор PowerPC, имеющий специальный набор инструкций для чтения/запи-си регистров DCR, находящихся вне ядра процессора [14]. CoreFrame. CoreFrame представляет собой процессорно-независимую, синхронную архитектуру, центром которой является память. В рамках этой архитектуры выделяют следующие шины [7]: Наукові записки УНДІЗ, №1, 2007 104 – MBus – шина для работы с памятью. Она ориентирована на быстродействующие устройства. Эта шина предполагает наличие только одного приемника – контроллера памяти, который одновременно выполняет функции арбитра и управляет всем потоком данных на шине. Как и для в случае с AHB, может быть реализован произвольный способ арбитража, соответствующий требованиям к проектируемой ОМС. – PalmBus – шина для работы с периферийными устройствами. На этой шине присутствует только одно ведущее устройство – интерфейсный контроллер PalmBus. В основном эта шина предназначена для конфигурирования устройств и чтения их статуса. – CPU Bus – шина, которая соединяет процессор с памятью, PalmBus (через интерфейсный контроллер этой шины) и MBus (через кэш или мост). Физическая реализация CoreFrame имеет топологию типа «звезда». Широковещательные сигналы от контроллера PalmBus или котроллера памяти подключены ко всем периферийным устройствам, выходящим на данную шину. Эта шина не позволяет передавать данные от одного периферийного устройства к другому [7], поэтому данная архитектура (как и архитектура CoreConnect) мало пригодна для построения высокопроизводительных ОМС. LotteryBus. Подход LotteryBus [9] определяет исключительно механизм арбитража, не зависящий от шины. Для реализации LotteryBus в системе аппаратно реализовывается арбитр, который накапливает запросы от n ведущих устройств, каждому из которых было выделено (статически или динамически) определенное количество «лотерейных билетов» ti ,( i 1,2,...,n ) . Пусть в каждом машинном цикле множество устройств, отправивших запрос арбитру, будет представлено множеством булевых переменных ri ,( i 1,2,...,n ) , где ri 1 если модуль i ожидает доступа к шине, и ri 0 в противном случае. Тогда вероятность того, что i -е устройство получит доступ к шине, вычисляется по формуле: r t (1) P( i ) n i i rj t j j 1 Для определения устройства, которое получит доступ к шине, арбитр вычисляет n знаменатель выражения (1) и генерирует случайное число в диапазоне [0, rj t j ] . Доступ j 1 к шине передается i i 1 k 1 k 1 i 1 -му устройству, если это число лежит в диапазоне [ rk tk , rk tk ] . Основной недостаток этого подхода – опасность блокировки ведущих устройств, которым в определенной ситуации были присвоены неверные значение ti . В данном случае может произойти переполнение внутренних очередей, потеря информации и т.п. В то же время возможность динамического изменения значений ti дает возможность системе, в которой реализован механизм мониторинга загруженности ведущих устройств, оптимальным образом разграничивать доступ к шине в зависимости от текущего состояния системы. dTDMA. Как и LotteryBus, dTDMA [13] описывает способ функционирования арбитра, позволяющий минимизировать число конфликтов на шине и максимально эффективно использовать пропускную способность шины. Суть подхода состоит в следующем: модуль, которому необходим доступ к шине, запрашивает таймслот у арбитра, который принимает решение (используя любой заложенный в него алгоритм) о Обчислювальна техніка та програмне забезпечення 105 распределении таймслотов между модулями, создает новую конфигурацию для каждого активного передатчика и приемника до начала следующего такта. По фронту следующего синхроимпульса активные передатчики и приемники загружают новую конфигурацию таймслотов. Когда модуль заканчивает пересылку данных, он прекращает запрашивать таймслот, и арбитр освобождает занимаемый им таймслот. Теоретически такой способ динамического выделений таймслотов является наиболее эффективным, поскольку таймслоты существуют только в том случае, если они были выделены по запросу того или иного модуля системы. Благодаря этому есть возможность полностью использовать пропускную способность шины. Единственным источником задержек является время выделения таймслота (которое может происходить за один такт). В данный момент подход dTDMA не стандартизирован, но является очень перспективным для систем, осуществляющих пакетную передачу речи, потокового видео и т.д. WishBone. Архитектура WishBone [18] является наиболее гибкой из существующих архитектур. В рамках спецификации есть возможность реализовывать произвольный механизм арбитража и использовать любую подходящую топологию (за исключением иерархической – в случае, если в системе необходимо иметь 2 и более шины, необходимо создавать отдельные интерфейсы WishBone). Разрядность шин адреса и данных может варьироваться от 8 до 64 бит. Для обеспечения гибкости при построении системы на базе архитектуры WishBone имеется возможность определять назначение специальных сигналов – тегов. Они могут использоваться, например, для передачи сигналов прерывания или для определения дополнительного набора команд на шине. Стандарт включает в себя возможность пакетной передачи данных и циклы «чтение-модификациязапись». PIBus. Спецификация PIBus [11] определяет синхронную шину, разрядность линий адреса и данных которой может настраиваться в широких пределах. Верхняя граница этих параметров не определена. Как и в архитектурах WishBone, Avalon и др. на шине может присутствовать несколько ведущих устройств, а реализация алгоритмов арбитража зависит от требований к ОМС. Данная спецификация ориентирована на использование в системах, в которых не требуется поддержки когерентности кэша, широковещательной передачи данных, различной разрядности шин в рамках одной ОМС и доступа к невыровненным данным. OCP. Стандартом OCP (Open Core Protocol) [10] определяется конфигурируемый и независимый от шины интерфейс типа «точка-точка» между процессорными модулями и коммуникационными подсистемами ОМС. OCP является синхронным интерфейсом типа «ведущий-ведомый» с однонаправленными сигналами. Все сигналы (за исключением CLK и RESET) являются сигналами типа «точка-точка». Скорость передачи может контролироваться как ведущим, так и ведомым устройством; пересылки могут быть как конвейерными, так и блочными. При разработке интерфейса используются только те сигналы и функциональность из всего стандарта OCP, которые необходимы для покрытия всех требований к сигналам управления, контроля и передачи данных проектируемой ОМС. Некоторые стандартные шины (такие, как AMBA и Silicon Backplane) используют OCP. VSIA. В рамках стандартов VSIA [17] определяется протокол запроса-ответа, протокол для передачи запросов и ответов, структура и способы их кодирования. Эти стандарты не определяют параметры шины, методы арбитража и т.д., потому что предполагается, что все устройства будут подключаться к шине через специальный переходной компонент. На данный момент существуют следующие стандарты VSIA: Advanced Virtual Component Interface (AVCI), Basic VCI (BVCI) и Peripheral VCI (PVCI). 106 Наукові записки УНДІЗ, №1, 2007 Основной особенностью стандартов является то, что инициатор обмена данными всегда может послать запрос до получения ответа на предыдущий запрос, хотя при этом ответы должны быть получены в том же порядке, а котором были отправлены запросы [17]. Для того, чтобы переходные компоненты не приводили к снижению производительности системы, они снабжаются специальными буферами, построенными по принципу кэша, и системой предсказания адресов обращений. Однако все существующие решения не позволили полностью решить проблемы с производительностью, поэтому если в системе присутствует группа модулей, интенсивно взаимодействующих с процессором, для их объединения рекомендуется использовать шину, отличную от стандарта VSIA. Далее эта группа может быть подсоединена к PVCI или BVCI как единый компонент. STBus. В спецификации STBus [15] описываются протоколы и компоненты синхронной шины, предназначенной для построения коммуникационной сети ОМС. В данной спецификации выделяют следующие протоколы: – "Периферийный" протокол (в терминологии STBus – протокол типа 1). Является простым протоколом с подтверждением связи с минимальным набором команд и ограниченной длиной передаваемых сообщений. Используется для связи с медленными периферийными устройствами. – "Базовый" протокол (протокол типа 2). Является более эффективным, чем протокол типа 1, поскольку поддерживает конвейеризацию и операции типа "чтениемодификация-запись". Обычно используется для обмена информацией с контроллерами внешней памяти. – "Расширенный" протокол (протокол типа 3). В отличии от протоколов 1 и 2 позволяет осуществлять транзакции с изменением последовательности и асимметричный обмен данными (длина запроса может отличаться от длины ответа). Протокол типа 3 может использоваться процессорами, многоканальными контроллерами прямого доступа к памяти и т.д. Компонентами STBus являются: – Коммутатор. Выполняет функции арбитра и занимается маршрутизацией запросов и ответов. – Преобразователь. Отвечает за сопряжение между тремя описанными выше протоколами. – Устройство масштабирования. Используется для сопряжения двух одинаковых шин с различной разрядностью, поддерживает буферизацию. В настоящее на базе шина STBus используется в ОМС, встроенных в системы глобального позиционирования, цифровые камеры, системы для обработки видео и т.д. Зачастую модули подключаются к шине через интерфейсы, соответствующие стандарту OCP. Marble. Шина Marble [5] является полностью асинхронной двухканальной шиной, позволяющей переупорядочивание пересылок между различными инициаторами. По одному из этих каналов передается команда от инициатора передачи к приемнику. По другому каналу передается ответ от приемника к инициатору пересылки, а также осуществляется непосредственно чтение или запись данных. Шины адреса и данных снабжены отдельными наборами управляющих сигналов, и на каждой из них присутствует отдельный арбитр. Выдача на шину адреса и данных сопровождается соответствующим стробом и специальным тегом – идентификатором запроса. Это позволяет приемнику не только правильно принять данные, но и восстановить контекст, в котором они передавались, если порядок следования адресов оказался отличным от порядка следования данных. Однако организация таких интерфейсов связана с большими аппаратными затратами, поэтому Обчислювальна техніка та програмне забезпечення 107 такая шина используется как правило для организации взаимодействия между несколькими процессорами и контроллерами памяти. Несмотря на то, что шина не поддерживает возможность пересылки нескольких пакетов с помощью одной команды, правильно рассчитанная пропускная способность обоих каналов и строгое соответствие между командами и ответами позволяет максимально эффективно использовать шину [5]. Классификация внутренних шин ОМС На основании приведенных выше характеристик и возможностей внутренних шин ОМС появляется возможность выделить следующие критерии: 1. Тип топологии: "Точка-точка" (AMBA AXI, Avalon, WishBone, CoreFrame, OCP). Кольцо (CoreConnect, WishBone). Универсальная общая шина (WishBone, PIBus). Иерархическая шина (AMBA, CoreConnect, LotteryBus, dTDMA, Marble). Сеть (WishBone, Chain [6]). 2. Способ синхронизации: Синхронный (все шины, кроме Marble и Chain). Асинхронный (Marble и Chain [6]). 3. Способ арбитража [12]: Арбитраж со статически заданными приоритетами (все шины, кроме LotteryBus). Арбитраж Time Division Multiple Access (TDMA). Можно реализовать для всех описанных в статье шин, кроме LotteryBus и Marble. «Лотерея». Можно реализовать для всех описанных в статье шин, кроме Marble. Циклический (round-robin) арбитраж. Можно реализовать для всех описанных в статье шин, кроме LotteryBus и Marble. Арбитраж с помощью маркеров. Можно реализовать для всех описанных в статье шин, кроме LotteryBus и Marble. Арбитраж Code Division Multiple Access. Можно реализовать для всех описанных в статье шин, кроме LotteryBus и Marble. 4. Разрядность шины: Разрядность шины данных. В статье были приведены стандарты, в которых разрядность шины данных могла изменяться от 1 до 1024 бит. Разрядность шины адреса. В статье были приведены стандарты, в которых разрядность шины данных могла изменяться от 1 до 64 бит. 5. Частота шины (необходимо отметить, что для большинства рассмотренных стандартов эта информация является закрытой): Фиксированная. Определяемая при разработке системы (AMBA, WishBone). Зависящая от разрядности шины (CoreConnect). 6. Способ передачи данных по шине: Обмен с подтверждением. Поддерживают все рассмотренные в статье стандарты, кроме LotteryBus. Разделенная передача (Split Transfer). Поддерживают шины AMBA, CoreConnect, Marble, VCI и STBus. Конвейерная передача (поддерживают все рассмотренные в статье стандарты, кроме LotteryBus, WishBone и CoreFrame). 108 Наукові записки УНДІЗ, №1, 2007 Пакетная передача (поддерживают все рассмотренные в статье стандарты, кроме LotteryBus и PIBus). Широковещательная передача (поддерживается в стандартах OCP, CoreFrame и Marble). Многоадресная передача (Marble). Выводы В результате анализа основных характеристик и возможностей 12 подходов к построению внутренних шин ОМС были выработаны критерии их классификации. На основе результатов данной статьи могут быть предложены модели ОМС, которые охватывают большинство аспектов функционирования внутренних шин и учитывают особенности их организации. Эти модели предоставят возможность получать более точные оценки производительности ОМС на этапе начального проектирования системы. Литература 1. Головкин Б.А. Вычислительные системы с большим числом процессоров. – М.:Радио и связь, 1995 – 320 с. 2. AMBA Specification. Revision 2.0 // http://www.arm.com/products/solutions/AMBA_Spec.htm 3. AMBA Specification. Revision 3.0 // http://www.arm.com/products/solutions/axi_spec.htm 4. Avalon Memory-Mapped Interface Specification // http://www.altera.com/literature/manual/ mnl_avalon_spec.pdf 5. Bainbridge W.J., Furber S.B. Asynchronous Macrocell Interconnect Using MARBLE // Proc. of ASync. – Paris, 1998. - pp. 122-139. 6. Bainbridge W.J., Furber S.B. CHAIN: A Delay-Intensive Chip Area Interconnect // IEEE Micro, 2002 - №5, pp.16-23. 7. Cordan B. A Bus Architecture for System-On-Chip Designs // http://www.us.designreuse.com/PAPERS/palmchip.html 8. Jerraya A., Wolf W. Multiprocessor Systems-on-Chips. – San Francisco (USA):2004. –582 p. 9. Lahiri K. et al LotteryBus: A New High-Performance Communication Architecture for Systemon-Chip designs // Proc. of 38th Design Automation Conference. – Las Vegas (USA), 2001. - pp.15-20. 10. Open Core Protocol Specification. Release 1.0 // http://www.ocpip.org/library/ 11. PI-Bus VHDL Toolkit. Version 3.1 // Centre of VLSI and Computer Graphic, 1997 – 132p. 12. Poletti F., Bertozzi D., Benini L., Bodgliolo A. Performance Analysis of Arbitration Policies for SoC Communication Architectures // Design Automation for Embedded Systems, 2001. №8. – pp. 189210. 13. Richardson T. et al. A Hybrid SoC Interconnect with Dynamic TDMA-Based Transaction-Less Buses and On-Chip Networks // Proc. of 19th International Conference on VLSI Design. – Hyderabad (India), 2006 – pp.657-664. 14. Ryu K., Shin E., Mooney V. A Comparison of Five Different Multiprocessor SoC Bus Architectures // Proc. of the EUROMICRO Symposium on Digital Systems Design. – Washington (USA), 2001. - pp. 202-209. 15. Strano G., Tiralongo S., Pistritto C. OCP/STBus Plug-In Methodology // http://www.synopsys. com/sps/pdf/gspx_paper.pdf 16. Usselmann R. OpenCores SoC Bus Review. Revision 1.0 // http://www.opencores.org/projects. cgi/web/wishbone/soc_bus_comparison.pdf 17. Virtual Component Interface Standard. Version 2 (OCB 2.2.0) // http://www.comelec.enst. fr/dessin/canex/VCI.pdf 18. WishBone SoC Architecture Specification, Revision B.3 // http://www.opencores.org/projects. cgi/web/wishbone/wishbone