Программные продукты и системы /Software & Systems
№ 4 (108), 2014
УДК 519.68 Дата подачи статьи: 04.07.2014
DOI: 10.15827/0236-235X.108.037-040
СПОСОБЫ ИНИЦИАЛИЗАЦИИ МНОГОПРОЦЕССОРНОЙ СИСТЕМЫ
Г.А. Лавринов, зав. сектором, [email protected] (НИИСИ РАН, Нахимовский просп., 36, корп. 1, г. Москва, 11 7218, Россия)
Любая многопроцессорная система должна быть проинициализирована по включении питания. В данной работе рассматриваются системы на базе RapidIO. От правильной настройки маршрутов среды RapidIO зависит корректная работа системы в целом. Существуют два алгоритма инициализации - динамический и статический. Алгоритм динамической инициализации RapidIO, приведенный в спецификации, имеет ряд недостатков, одним из которых является отсутствие информации о физическом составе системы после инициализации. Для некоторых задач, к примеру, по тестированию многопроцессорной системы, это недопустимо. Поэтому необходимо использовать статическую инициализацию, которая подразумевает уже заранее подготовленный набор команд для настройки маршрутов между устройствами. Для эффективного создания набора команд, осуществляющих инициализацию, предлагается применять конфигуратор, использующий базовые блоки RapidIO. Система рассматривается как набор базовых блоков, имеющих уникальные номера портов коммутаторов RapidIO. Конфигуратор, принимая на вход структуру из географического адреса модуля, модели модуля и связи с остальными модулями, формирует на выходе набор служебных пакетов для инициализации коммуникационной среды RapidIO. Эффективность данного способа в большей мере проявляется при построении различных модификаций многопроцессорной системы. В статье описаны существующая на сегодняшний день аппаратная поддержка инициализации среды и ее применение в тестируемой системе.
Ключевые слова: RapidIO, многопроцессорные системы, инициализация, конфигуратор, тестирование, маршрутизация, алгоритм.
Любая многопроцессорная система должна быть проинициализирована по включении питания для корректной работы всех ее узлов. В многопроцессорных системах важнейшими компонентами являются процессорные элементы (процессор + память) и коммуникационная сеть, соединяющая процессорные элементы и крэйты [1]. В данной работе рассматриваются высокопроизводительный интерфейс RapidIO (RIO) и способы инициализации такой среды.
Коммуникационная среда RIO состоит из коммутаторов и оконечных устройств (ОУ) [2]. Спецификацией определены два физических уровня:
LP-LVDS - канал точка-точка, представляющий собой параллельный 8-и 16-разрядный дуплексный интерфейс с максимальной частотой тактового сигнала 1000 МГц, и LP-Serial - канал точка-точка, представляющий собой последовательный дуплексный интерфейс, состоящий из 1, 2, 4, 8 или 16 подканалов с максимальной скоростью передачи битового потока по каждому подканалу 10,3125 Гбод [3, 4].
Инициализация коммуникационной среды RIO включает в себя назначение ОУ идентификаторов (8 или 16 бит) и прописывание коммутаторов маршрутами, определяющими пути пакетов от ОУ к ОУ [5]. Выделяют два подхода к инициализации коммуникационной среды - динамический и статический.
Пример динамического подхода спецификации RIO [6] показан на рисунке 1.
37
Программные продукты и системы /Software & Systems
№ 4 (108), 2014
На практике приведенный алгоритм необходимо модифицировать прокладкой перекрестных маршрутов между всеми процессорными элемен-
тами (ПЭ) и ограничениями на просмотр портов коммутаторов (отдельные крэйты в сложной системе могут включаться неодновременно) - необходима локализация алгоритма в крэйте или в группе крэйтов. Кроме того, совершенно не учитываются предполагаемые потоки данных между ПЭ. Данный подход не подходит и для случая, когда требуется знание физической конфигурации вычислительного комплекса (ВК) после инициализации. В этом подходе при изменении физического состава ВК функциональный состав может ос-
таться прежним. На примере процессорных модулей ЦП-РИО-64 и мезонина М-РИО-А, разработанных в НИИСИ РАН (рис. 2), показан результат
определения устройств RIO. Процессорный модуль ЦП-РИО-64А включает в себя два процессора 1890ВМ6Я (устройство К64РИО) и коммутатор 1890КП3Я (устройство КПЗ) [7], а модуль ЦП-РИО-64Г - один процессор 1890ВМ6Я и коммутатор 1890КП3Я. Мезонин М-РИО-А включает только процессор 1890ВМ6Я. И, если подключить М-РИО к модулю ЦП-РИО-64Г, полученный функциональный состав ВК после применения алгоритма обхода среды RIO будет совпадать, как и для модуля ЦП-РИО-64А.
1-й вариант 2-й вариант
Рис. 2. Пример совпадения функционального состава ВК после применения динамического подхода
Fig. 2. An example of functional structure coincidence of computer system after using dynamic approach
38
Программные продукты и системы /Software & Systems
№ 4 (108), 2014
С данной задачей позволяет справиться статический подход. Он реализуется по заранее составленному набору служебных операций записи MAINTENANCE WRITE [8], которыми осуществляется инициализация устройств RIO в системе. Сложность этого подхода растет с количеством используемых устройств RIO.
Для более эффективного составления набора операций MAINTENANCE WRITE предлагается использовать конфигуратор на основе базовых блоков RIO, которые представляют собой модели используемых модулей. Каждый модуль имеет порты RIO для связи с другими модулями, причем номера портов могут совпадать. Для описания модуля каждому порту присваивается уникальный номер, не зависящий от физического номера порта коммутатора (указанного в документации на микросхему), чтобы исключить пересечение номеров портов в модели (рис. 3). Каждый модуль уже имеет определенный состав устройств RIO, поэтому программно описать состав модуля и таблицу маршрутизации обмена в рамках модуля не составляет труда. Полученные базовые блоки подключаются между собой, используя географический адрес, уникальные номера портов и тип связей (например, объединительная плата или кабель). В итоге конфигуратору на вход поступают структуры вида: {географический адрес, модель,
соединения}. Например: {rA_N, Модель_^ {Тип связи, порт_ГА_^ ГА_К, порт_ГА_К}}, где K и N - любые два модуля.
По этим данным формируется набор служебных пакетов записи MAINTENANCE WRITE. Так как каждый ВК в основном содержит в себе набор однотипных модулей, связи между оконечными устройствами внутри модуля в ВК повторяются. При использовании базовых блоков модуля в несколько раз сокращается время, которое требуется на описание повторяющихся связей между устройствами RIO, в зависимости от используемых модулей в ВК. Полученная инициализация позволяет провести проверку соответствия ВК с заявленной схемой подключения прибора.
В случае, если полученная инициализация RIO для тестирования многопроцессорной системы используется многократно, можно воспользоваться аппаратной поддержкой инициализации таблицы маршрутизации RIO, встраиваемой в коммутаторы. Принцип работы следующий: к коммутатору подключается EEPROM по интерфейсу I2C, в него прописываются (по определенному формату) адреса регистров и их значения, после включения питания производится выгрузка этих значений в регистры коммутатора RIO. В результате настраиваются таблицы маршрутизации этих коммутаторов при загрузке системы и сокращается время на
Рис. 3. Присвоение уникальных номеров портам RIO-модулей Fig. 3. Unique number assignment for ports of RIO modules
39
Программные продукты и системы /Software & Systems
№ 4 (108), 2014
программную инициализацию среды. Данный подход реализован в коммутаторах 1890КП3Я (микросхема) НИИСИ РАН и в коммутаторах компании Integrated Device Technology (IDT) [9].
Динамический подход применяется на этапе отладки многопроцессорных систем и в тестовых задачах. Предлагаемый способ инициализации среды RIO хорошо применим к тестируемой системе [10]. Эффективность данного способа в большей мере проявляется при построении различных модификаций многопроцессорной системы на базе подготовленных базовых блоков RIO.
Литература
1. Бобков С.Г., Косарев И.М. Методы повышения производительности вычислительных систем // Прилож. к журн. «Информационные технологии». 2012. № 10. 32 с.
2. Fuller S. RapidIO. The Embedded Systems Interconnect. John Wiley & Sons, Ltd, 2005.
3. RapidIO Interconnect Specification. Part 4: Physical Layer 8/16 LP-LVDS Specification. Revision 3.0. RapidIO Trade Asso-
ciation, 2013. URL: http://www.rapidio.org/specs/current/2013-oct23.zip (дата обращения: 16.01.2014).
4. RapidIO Interconnect Specification. Part 6: LP-Serial Physical Layer Specification. Revision 3.0. RapidIO Trade Association, 2013. URL: http://www.rapidio.org/specs/current/2013-oct23.zip (дата обращения: 16.01.2014).
5. Бакулин А.А. Проверка допустимости схемы маршрутизации в системе RapidIO // Программные продукты и системы. 2011. № 4. С. 20-23.
6. RapidIO Interconnect Specification. Annex 1: Software/ System Bring Up Specification. Revision 3.0. RapidIO Trade Association, 2013. URL: http://www.rapidio.org/specs/current/2013-oct-23.zip (дата обращения: 16.01.2014).
7. Сердин О.В., Бобков С.Г., Кондратьева Н.В., Еремин А.А. Разработка высоконадежных многопроцессорных модулей на базе высокоскоростных каналов rapidio // Программные продукты и системы. 2013. № 4. С. 49-55.
8. RapidIO Interconnect Specification. Part 1: Input/Output Logical Specification. Revision 3.0. RapidIO Trade Association, 2013. URL: http://www.rapidio.org/specs/current/2013-oct23.zip (дата обращения: 16.01.2014).
9. IDT. URL: www.idt.com/document/man/tsi578-user-ma-nual (дата обращения: 26.09.2014).
10. Лавринов Г.А. Способы повышения эффективности отладки и тестирования многопроцессорных систем // Программные продукты и системы. 2012. № 3. С. 86-89.
DOI: 10.15827/0236-235X.108.037-040 Received 04.07.2014
METHODS OF MULTIPROCESSOR SYSTEM INITIALIZATIONS Lavrinov G.A., Head of Sector, [email protected] (SRISA RAS, Nakhimovskiy Ave. 36/1, Moscow, 117218, Russian Federation)
Abstract. Any multiprocessor system must be initialized on power. This article considers RapidIO systems. Correct RapidIO routers configuration influences on proper work of the whole system. There are two initialization algorithms: dynamic and static. RapidIO dynamic initialization algorithm indicated in the specification has a number of faulties including a lack of information about physical structure after initialization. For example, it is unacceptable for some tasks on testing of a multiprocessor system. Therefore, static initialization should be used as it already envisages a set of commands for setting up routes between devices. It is proposed to apply the configurator that uses basic RapidIO switch ports in order to create a set of commands performing initialization effectively. The system is considered as a set of basic blocks with unique numbers of RapidIO switch ports. A configurator takes the input of the structure from a module geographical address, module models and connections between other modules. Output it creates a set of service packages to initialize RapidIO communicative interface.
The effectiveness of this method appears mostly during the creating of various multiprocessor system modifications. This article also describes the current hardware support for initialization interface and its application in the testing system.
Keywords: RapidIO, multiprocessor systems, initialization, configurator, testing, routing, algorithm.
References
1. Bobkov S.G., Kosarev I.M. Methods of computer systems performance increasing. Informatsionnye tekhnologii [Information technologies]. 2012, no. 10, pp. 1-32 (in Russ.).
2. Fuller S. RapidIO. The Embedded Systems Interconnect. John Wiley & Sons Publ., Ltd, 2005.
3. RapidIO Interconnect Specification. P. 4: Physical Layer 8/16 LP-LVDS Specification. Revision 3.0. RapidIO Trade Association, 2013, available at: http://www.rapidio.org/specs/current/2013-oct23.zip (accessed January 16, 2014).
4. RapidIO Interconnect Specification. P. 6: LP-Serial Physical Layer Specification. Revision 3.0. RapidIO Trade Association, 2013, available at: http://www.rapidio.org/specs/current/2013-oct23.zip (accessed January 16, 2014).
5. Bakulin A.A. Validation of routing scheme in rapidio system. Programmnye produkty i sistemy [Software & Systems]. 2011, no. 4, pp. 20-23 (in Russ.).
6. RapidIO Interconnect Specification. Annex 1: Software/System Bring Up Specification. Revision 3.0. RapidIO Trade Association, 2013, available at: http://www.rapidio.org/specs/current/2013-oct23.zip (accessed January 16, 2014).
7. Serdin O.V., Bobkov S.G., Kondrateva N.V., Eremin A.A. Design of high reliability multiprocessor modules based on high-performance rapidio interconnect architecture. Programmnyeprodukty i sistemy [Software & Systems]. 2013, no. 4, pp. 49-55 (in Russ.).
8. RapidIO Interconnect Specification. P. 1: Input/Output Logical Specification. Revision 3.0. RapidIO Trade Association, 2013, available at: http://www.rapidio.org/specs/current/2013-oct23.zip (accessed January 16, 2014).
9. IDT, available at: www.idt.com/document/man/tsi578-user-manual (accessed September 26, 2014).
10. Lavrinov G.A. Methods of efficiency increasing of debugging and testing for multiprocessor systems. Programmnye produkty i sistemy [Software & Systems]. 2012, no. 3, pp. 86-89 (in Russ.).
40