Научная статья на тему 'МЕТОД МОДЕЛИРОВАНИЯ АСИММЕТРИЧНОГО ДОСТУПА К ПАМЯТИ ПРИ РЕШЕНИИ ЗАДАЧ СИНХРОНИЗАЦИИ МНОГОПРОЦЕССОРНЫХ СИСТЕМ'

МЕТОД МОДЕЛИРОВАНИЯ АСИММЕТРИЧНОГО ДОСТУПА К ПАМЯТИ ПРИ РЕШЕНИИ ЗАДАЧ СИНХРОНИЗАЦИИ МНОГОПРОЦЕССОРНЫХ СИСТЕМ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
15
7
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МОДЕЛИРОВАНИЕ СИСТЕМ НА КРИСТАЛЛЕ / СИНХРОНИЗАЦИЯ МНОГОПРОЦЕССОРНЫХ СИСТЕМ / АСИММЕТРИЧНЫЙ ДОСТУП К ПАМЯТИ / SYSTEMS ON A CHIP MODELING / MULTIPROCESSOR SYNCHRONIZATION / ASYMMETRICAL MEMORY ACCESS

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Гаврилов Виталий Сергеевич, Казённов Геннадий Георгиевич

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Гаврилов Виталий Сергеевич, Казённов Геннадий Георгиевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

METHOD OF MODELING ASYMMETRIC ACCESS TO MEMORY FOR SOLVING SYNCHRONIZATION IN MULTIPROCESSOR SYSTEMS

The method and the algorithm to improve the simulation speed in the route of the hardware-software verification system-on-chip “Multicore” have been developed. The distinctive feature of the proposed approach is modeling an asymmetric memory access, ensuring the synchronization solutions for the multiprocessor systems with the performance significant improvement compared with the simulation of the RTL model.

Текст научной работы на тему «МЕТОД МОДЕЛИРОВАНИЯ АСИММЕТРИЧНОГО ДОСТУПА К ПАМЯТИ ПРИ РЕШЕНИИ ЗАДАЧ СИНХРОНИЗАЦИИ МНОГОПРОЦЕССОРНЫХ СИСТЕМ»

УДК 621.38

Метод моделирования асимметричного доступа к памяти при решении задач синхронизации многопроцессорных систем

В.С. Гаврилов, Г.Г. Казённое

Национальный исследовательский университет «МИЭТ.»

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

Ключевые слова: моделирование систем на кристалле, синхронизация многопроцессорных систем, асимметричный доступ к памяти.

В микроэлектронике широко используются микросхемы, оснащенные программируемыми микропроцессорами и банками ПЗУ и ОЗУ [1]. Отладка программного обеспечения (ПО) является неотъемлемой частью процесса разработки таких устройств и занимает около 50% временных затрат. С момента получения первых тестовых образцов микросхемы до выхода серийных экземпляров проходит достаточно много времени в процессе тестирования. Отладка сложных прикладных программ на реальной аппаратуре также затруднительна. В связи с этим моделирование является одним из основных и доступных средств отладки прикладного ПО, а также разработки системы тестов для будущего кристалла.

Наиболее распространенным подходом является моделирование на базе языков описания аппаратуры Verilog [2] или VHDL [3]. Использование этих языков позволяет построить полную достоверную модель, отладить (верифицировать) архитектуру и систему команд и в конечном счете спроектировать систему на кристалле (СнК). Однако ввиду сложности полного моделирования очереди событий использование модели Verilog на этапе программно-аппаратной верификации требует больших вычислительных затрат.

Другим подходом является эмуляция многопроцессорных систем в системе команд моделирующего компьютера. К таким средствам моделирования СнК относится система Open Virtual Platforms (OVP) [4], которая обеспечивает динамическую трансляцию команд в двоичный код моделирующего компьютера. Основными преимуществами OVP являются высокая скорость моделирования, открытые функции API, которые спроектированы для простоты сборки мультипроцессорных гетерогенных и гомогенных платформ со сложной организацией памяти, системой кеш-памяти и уровнями встраиваемого программного обеспечения.

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

© В.С. Гаврилов, Г.Г. Казённов, 2013

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

Методы моделирования 81М3х. Для достижения разумного компромисса между скоростью работы программы моделирования и точностью результатов с учетом синхронизации микропроцессоров разработана система SIM3x для моделирования СнК «Мультикор».

Компоненты разрабатываемой системы можно разбить на две группы: компоненты микросхемы, такие как процессоры, контроллеры прямого доступа в память, порты ввода-вывода и другие; служебные подсистемы - подсистемы памяти, регистров, исключений и прерываний. Каждое устройство работает независимо и на своей частоте. Исключение составляет зависимость при использовании общих регистров или общей памяти. Реализация отдельных вычислительных блоков предполагает потоковую работу с данными, в рамках которой операции выполняются по мере готовности операндов. При рассмотрении моделируемых устройств на более высоком уровне следует учитывать очередность событий с последовательным моделированием отдельных устройств во времени.

Работа по выполнению инструкции отдельно взятого устройства может быть описана в функциональной форме ^ + А;) = ^(Хп({),...,Х1п(¿)), где j, ] = 1,...,п -

входные данные (на регистрах или в памяти); - выходные данные; I - текущее время моделирования; - выполняемая функция, А; - задержка или время выполнения инструкции. Адреса входных и выходных данных обозначим А(Х^),А(У1) соответственно. Последовательное моделирование должно учитывать конвейерную обработку инструкций на фиксированном наборе стадий конвейера, таких как чтение команды (ЯС), декодирование команды (DC), чтение входных данных Х;j,j = 1,...,п (ER), непосредственно выполнение команды (Е1, E2, ...), запись выходных данных У1 (EW). Последовательность выполнения команд 7-стадийного конвейера показана в табл. 1.

Таблица 1

Последовательность выполнения команд 7-стадийного конвейера

№ Код £=00 £=01 £=02 £=03 £=04 £=05 £=06 £=07 £=08 £=09 £=10 £=11 £=12

ста-

дии

1 ЯС1 1 2 3 4 5 6 7 8 9 10 11

2 ЯС2 1 2 3 4 5 6 7 8 9 10

3 БС 1 2 3 4 5 6 7 8 9

4 ЕЯ 1 2 3 4 5 6 7 8

5 Е1 1 2 3 4 5 6 7

6 Е2 1 2 3 4 5 6

7 EW 1 2 3 4 5

К менеджеру устройств предъявляется требование распределения времени исполнения каждого устройства. Для этого работа каждого устройства разбивается на малые операции - шаги, «время» исполнения каждого шага соответствует частоте устройства. Пусть / = 1и(7,к); 7 = 1,...,7тах; к = 0,...,ктах- номер инструкции устройства с порядковым номером и, выполняемой на у-й стадии конвейера в момент времени к

t = кРи = —, где Ри, /и - соответственно период и частота устройства с порядковым

номером и. Тогда 1и (к) = 1и и-1, к-1) для всех 7 = 2,..., 7тах; к = 1,..., ктах. В ВДе-

альном случае полной загрузки конвейера 1и (7, к +1) = 1и (7, к) + 1. Обработка инструкций в рамках к-го такта отдельно взятого устройства сводится к последовательной обработке инструкций столбца матрицы 1М (7,к) в обратном порядке снизу вверх:

7 = 7тах, 7тах —1,...,1. Обратный порядок обеспечивает контроль блокировки операции чтения данных ER в ситуации с задержкой записи данных EW на этапе выполнения предыдущей операции при использовании общих регистров или памяти, в частности при А(X/ ^) = А(У/) (в табл.1 - задержка выполнения операции 5, вызванная записью в

операции 4). В случае блокировки программа моделирования обеспечивает сдвиг диагонали 1и (7, к + пА ) = 1и (7, к) +1, где 1 < пА <—- - время ожидания следующей инст-

Ри

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

Для реализации очереди событий на межпроцессорном уровне предлагается использовать два связных списка устройств. Элементом связного списка является упорядоченная тройка и, р), где I - время выполнения; и - номер устройства; р - приоритет устройства для разрешения конфликтов с близкими или равными значениями Первый список Ь1 = {е1} = ,и1,р1), I = 1,...,/1тах} - список активных устройств, второй список Ь2 = ($ } = , и1, р1), I = 1,..., /2тах} - список неактивных или замороженных устройств. Первый список отсортирован по времени и приоритету исполнения устройств: V/, 7 : (/ < 7) ^ ti < tj V (^ = tj & р/ > Р7 ) . Это позволяет быстро получать наиболее готовое устройство и определять текущее время ядра системы моделирования. Алгоритм выполнения очередного шага модели (рисунок) включает следующие операции:

1) выбрать наиболее готовое устройство е = (Ь, и, р);

2) выполнить шаг наиболее готового устройства в соответствии со списком операций столбца матрицы 1и (Л к); 7 = ^а^ 7тах — ^..Д; к = -у;

3) при обнаружении блокировки перевести е = (^, и, р) из в ;

4) при отсутствии блокировки изменить системное время исполнения данного уст-

* * *

ройства: t* = ^ +Аг. , переместить е* = ^*, и, р) в списке Ьх в соответствии с требованиями порядка V/, 7 : (/ < 7) ^ ti < tj V (^ = tj & р1 > р7-).

Схема алгоритма исполнения шага модели

Устройства заключены в списки, ограниченные сверху и снизу специальными маркерами. Для снижения числа маркеров и упрощения обработки общих операций с устройствами целесообразно использовать всего два маркера: маркер списка активных устройств и маркер списка отключенных устройств. В этом случае списки замыкаются друг на друга, что позволяет использовать опрос всех устройств модели в цикле, упрощая тем самым структуру данных менеджера устройств.

Каждый шаг модели может являться шагом любого из активных устройств. Так, например, шаг модели может вызвать шаг канала прямого доступа в память (DMA). Однако при пошаговой отладке разработчик может не следить за регистрами DMA, а в таком случае шаг модели будет для него незаметен. Для этого в режиме пошаговой отладки на каждом шаге пользователя (среды разработки и отладки программ для плат «Мультикор») необходимо сохранить важные служебные регистры и производить шаг модели до изменения одного из них.

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

По мере готовности входных данных Xn(t),..., Xin (t) выполняется разблокировка

замороженных устройств. В этом случае требуется сообщить устройству текущее время исполнения системы и поместить его в начало списка активных устройств.

Использование механизма моделирования параллельной работы устройств позволило существенно повысить скорость моделирования по сравнению с прежней программной моделью, поскольку в разрабатываемой модели производится исполнение

лишь действительно активных устройств. Предварительные испытания показали ускорение более чем в 2 раза.

Механизм обработки асимметричного доступа к памяти. Платы «Мультикор» содержат большое количество компонентов и, следовательно, регистров. Все регистры, за исключением регистров центрального процессора, являются адресуемыми. При их помощи настраивается каждый из компонентов системы. В процессе работы устройство затрагивает не только значительную часть своих регистров, но и многие системные регистры.

Использование операций прямой синхронизации с ячейкой памяти недопустимо из-за высокой сложности операций доступа к памяти. Согласно проведенному профилированию, 80% операций, производимых в прежней программной модели «Мультикор», являлись операциями чтения или записи регистров (а именно, синхронизацией значений регистров с памятью). По результатам профилирования принималось решение о переориентации функции доступа к памяти на регистры, в результате чего скорость моделирования прежней программной модели была удвоена.

Один и тот же регистр в составе разных плат «Мультикор» может иметь не только разные маски чтения или записи, но и разные адреса A(Xi j) и начальные значения.

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

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

Рассмотрим задачи поддержки точек останова и адресуемых регистров. Обе задачи можно обобщить: при доступе к памяти необходимо проверить адрес памяти в таблице соответствия регистров выделенным ячейкам памяти - T(A), где A = A(X) - адрес чтения для (X = Xi j ) или записи при (X = Yi) . Если адрес найден (T(A) Ф NULL),

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

ее текущее значение равно значению - метке (Xi j =Х), то в этом и только в этом случае следует производить поиск в таблице T(A(Xi j)) . Каждая ячейка памяти обычно

^ 32

содержит от 32 до 64 бит, поэтому количество возможных значений составляет 2 или больше. Использование определенной метки снижает количество обращений к таблице соответствия более чем в 109 раз.

Экспериментальные результаты. Предложенные методы и алгоритмы реализованы на языке С++. В качестве испытаний рассмотрены специальные тесты производительности микропроцессоров: Coremark, Dhrystone, Whetstone, Linpack. Проводилось сравнение Verilog - модели (RTL) [2], ARM RTSM [5], OVR [4] и предлагаемой в рамках данной работы модели SIM3x.

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

Таблица 2

Экспериментальные результаты испытаний

Тест Скорость работы алгоритма (млн инструкций / с)

RTL ARM RTSM OVP SIM3x

Coremark 0,079 2,12 93 8,4

Dhrystone 0,081 2,13 95,5 8,3

Whetstone 0,078 1,80 15 3,8

Linpack 0,073 1,85 13,5 4,3

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

Анализ различных подходов к моделированию СнК типа «Мультикор» показывает, что наиболее полным и точным является моделирование RTL на основе Verilog. Однако данный подход не обеспечивает требуемой скорости моделирования. Альтернативный вариант моделирования на основе платформы OVP обеспечивает наибольшую скорость, но не гарантирует синхронизацию отдельных процессоров в многопроцессорной системе.

Для достижения разумного компромисса между скоростью и полнотой моделирования разработана система моделирования SIM3x. Отличительными особенностями системы является конвейерная обработка инструкций при моделировании отдельных устройств с сохранением конкурентного доступа отдельных компонентов к ресурсам модели. Использование специальной таблицы соответствия регистров ячейкам памяти существенно повышает скорость механизма синхронизации между процессорами многопроцессорной системы.

Литература

1. Солохина Т.В. Архитектура DSP-акселераторов на базе платформы "Мультикор" для суперкомпьютеров нового поколения // Проблемы разработки перспективных микро- и наноэлектронных систем -2008: сб. науч. тр. / Под общ. ред. А.Л.Стемпковского. - М.:ИППМ РАН, 2008. - С. 415-418.

2. Samir Palnitkar. Verilog HDL - A Guide to Digital Design and Synthesis // Pearson Education. -2003. - 450 с.

3. Бибило П.Н. Основы языка VHDL. - М.: Солон-Р, 2002. - 224 c.

4. Overview - First time use of OVP simulators and emulators with MIPS processors and platforms. -URL: http://www.ovpworld.org/first_MIPS.php (дата обращения: 15.03.2012).

5. Emulation Baseboard Real-Time System Model User Guide. - URL:http://infocenter.arm.com/help/ index.jsp?topic=/com.arm.doc.dui0424b/index.html (дата обращения: 15.03.2012).

Статья поступила 26 июня 2012 г.

Гаврилов Виталий Сергеевич - аспирант кафедры проектирования и конструирования интегральных микросхем (ПКИМС) МИЭТ. Область научных интересов: высокоуровневое моделирование систем на кристалле с асимметричным доступом к памяти. E-mail:vitaly.s.gavrilov@gmail.com

Казённов Геннадий Георгиевич - доктор технических наук, лауреат Государственной премии СССР, профессор кафедры ПКИМС МИЭТ. Область научных интересов: теоретические основы проектирования САПР, БИС, СБИС, УБИС, методология проектирования, структурный синтез на этапах проектирования, параметрическая оптимизация, статистический анализ, экспертные системы, интеллектуализация творческих процессов, функциональные подсистемы САПР УБИС, маршруты проектирования БИС.

Г Уважаемые авторы и читатели! Вышел в свет журнал

иг RUSSIAN MICROELECTRONICS

RUSSIAN MICROELECTRONIC! English translation of selected articles from

Bias Izvestiya Vysshikh Uchebnykh Zavedenii. Elektronika. - Vol. 41,N7,2012.-ISSN: 1063-7397

-——------

»и««» па««О http://www.maik.ru http://www.springerlink.com J

i Надоели баннеры? Вы всегда можете отключить рекламу.