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

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

CC BY
49
5
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СЕТЬ НА КРИСТАЛЛЕ / СИСТЕМА НА КРИСТАЛЛЕ / ОЦЕНКА ПРОИЗВОДИТЕЛЬНОСТИ / ВЕРИФИКАЦИЯ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Чусов С.А., Моргаль Н.А., Габец О.В., Герявенко А.А.

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

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

CONFIGURABLE TEST ENVIRONMENT FOR RTL SIMULATION AND PERFORMANCE EVALUATION OF NETWORK ON CHIP AS PART OF SOC

Nowadays, the System on Chip (SoC) industry is rapidly developing. One of the objectives of SoC developers is to provide the most efficient communication between computational units. One of the possible solutions is using Networks on Chip (NoC) of various topologies with different routing algorithms. In this paper, a configurable test environment designed for cycle-accurate NoC simulation as part of a SoC, used to provide statistics about network behavior during test process, is presented. The environment is designed to evaluate NoC performance as part of a specific SoC at the development stage, when there is a full or partial RTL description of the system. The environment configuration options, its application area, general scheme and calculated NoC performance characteristics are considered. As a conclusion, an example of using the environment to evaluate the performance of a specific NoC is described in detail.

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

Конфигурируемое тестовое окружение для RTL-симуляции и оценки производительности сети на кристалле как части системы на кристалле

С. А. Чусов, Н. А. Моргалъ, О. В. Габец, А. А. Герявенко Национальный исследовательский университет «МИЭТ»

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

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

Введение

Ускоренное развитие в области микроэлектроники приводит не только к общему усложнению дизайна вычислительных узлов СнК, но и к стремительному росту их количества в рамках одной системы. Современные высокопроизводительные СнК могут включать в себя сотни вычислительных блоков [1]. Задача обеспечения максимально эффективной связи между вычислительными блоками СнК в современных реалиях постепенно приобретает статус основной. Именно перемещение данных в системе, а не арифметика и общая логика управления, становится фактором, ограничивающим характеристики системы [2].

Одним из возможных решений данной задачи является построение СнК с использованием Сетей на Кристалле (Network on Chip, NoC) c различными топологиями и алгоритмами распределения данных в сети. Как правило, чем больше вычислительных узлов в проектируемой СнК, тем большее преимущество показывает NoC над стандартными типами соединений (такими, как, к примеру, общая шина) относительно

возможностей масштабирования, повторного использования дизайна и оптимизации электрических параметров [3]. Выбор топологии NoC определяется множеством факторов, а известные алгоритмы маршрутизации могут модифицироваться разработчиками для реализации всех необходимых функциональных возможностей сети.

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

Большинство симуляторов №С основано на статистическом тестировании, где для каждого входного воздействия на сеть определена своя вероятность [4, 5]. Стоит отметить, что данный способ подходит для получения общих характеристик сети в условиях, лишь частично соответствующих условиям реального использования №С с определенной СнК.

Часть симуляторов реализует подход, в котором используется набор моделей вычислительных блоков и процессоров, моделируя СнК в связке с NoC определенной топологии [6]. Данный подход дает более полную картину поведения сети, нежели способ, основанный на статистическом тестировании, так как входные воздействия определяются не статистически, а основаны на определенном поведении узлов СнК.

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

вычислительный узел системы, остается неизменным, либо изменяется в минимальной степени.

Тестовая среда, представленная в данной статье, позволяет разработчику оценить производительность RTL-дизайна №С в составе СнК на текущем этапе разработки. При этом условия тестирования являются максимально приближенными к реальным условиям использования №С. Это становится возможным благодаря:

• функциональной RTL-симуляции с использованием реального исходного кода №С, учитывающего все особенности ее построения;

• использованию реального RTL-описания вычислительных блоков или же HDL-моделей, их заменяющих (что во втором случае дает возможность разработчикам использовать простые несинтезируемые модели вычислительных блоков при отсутствии их RTL-описания);

• настройке типа и положения каждого вычислительного блока в сети.

Общие сведение и возможности среды

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

М Инженерный вестник Дона, №12 (2022) ivdon.ru/ru/magazine/arcliive/nl2y2022/8040

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

За реализацию функционала среды отвечают следующие компоненты:

• Python-скрипт, отвечающий за конфигурацию параметров и расположение вычислительных узлов в сети;

• SystemVerilog - генератор подключений вычислительных узлов/их моделей;

• SystemVerilog - генератор уникальных идентификаторов транзакций;

• SystemVerilog - ЦУЖ-окружение [7, 8], отвечающее за входные воздействия, сбор информации о поведении сети и генерацию лог-файлов;

• Matlab-класс, реализующий извлечение данных из лог-файлов и предоставляющий набор методов обработки полученной информации.

Описание процесса работы среды

Взаимодействие пользователя со средой делится на 3 этапа:

• этап конфигурации;

• этап симуляции;

• этап анализа.

На этапе конфигурации пользователь передает в руШоп-скрипт необходимые параметры. Также на этапе конфигурации пользователь передает среде информацию о необходимых для запуска симуляции исходных файлах сети и вычислительных узлов/их моделей.

На этапе симуляции средой выполняется RTL-симуляция №С с подключенными к ней вычислительными узлами/их моделями. Результатом

данного этапа является набор лог-файлов, содержащих информацию о поведении сети в процессе симуляции.

На этапе анализа пользователю предоставляется возможность воспользоваться Ма^аЬ-классом, реализующим извлечение и анализ данных, полученных на этапе симуляции.

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

Рис.1. - Схема процесса работы среды

Структура и описание основных компонентов фазы симуляции

На рис. 2 приведена структура главного тестового модуля, являющегося основным компонентом в фазе симуляции. Прямоугольниками

и

со скругленными краями обозначены компоненты среды, обычными прямоугольниками обозначены пользовательские экземпляры модулей. Стрелками обозначены линии связи между компонентами/экземплярами.

Рис.2. - Структурная схема главного тестового модуля NoC under test - это экземпляр модуля сети, анализ поведения которой проводится средой.

ID NoC - это второй экземпляр модуля сети, использующийся для передачи уникальных идентификаторов транзакций в сети.

Model connection generator - модуль, выполняющий функцию подключения вычислительных узлов/их моделей к сети. В зависимости от параметра, определяющего положение вычислительных узлов/их моделей в сети, их интерфейсы связываются с конкретными узлами NoC.

Transaction ID generator - модуль, генерирующий уникальные идентификаторы транзакций, поступающих в сеть. Алгоритм работы зависит от статусных сигналов интерфейсов связи узлов сети и вычислительных узлов СнК.

и

UVM Environment - это верификационное UVM-окружение для логирования потоков данных и функциональной проверки сети. На рис.3 приведена его структура.

Рис.3. - Структура верификационного UVM-окружения среды

В верификационном UVM-окружении определен класс UVM Top Environment, содержащий класс UVM Top Scoreboard, необходимый для логирования потоков данных в сети, и массив классов UVM Environment. Каждый из классов массива содержит UVM Monitor и UVM Scoreboard для логирования потоков данных конкретного узла. Для каждого UVM Monitor определен свой интерфейс узла, с которым он может взаимодействовать.

Описание основных компонентов фазы анализа

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

В классе определены методы, реализующие запросы на получение характеристик производительности NoC.

Характеристики производительности, которые могут быть получены при помощи Matlab-класса:

• максимальное/минимальное значение задержки передачи данных от узла А к узлу B (без учета задержки сети на принятие данных) в течение времени симуляции;

• максимальное/минимальное значение задержки передачи данных от узла А к узлу B (с учетом задержки сети на принятие данных) в течение времени симуляции;

• количество транзакций, переданных от узла А к узлу B в течение времени симуляции;

• количество транзакций, переданных от узла А к узлу B в течение времени симуляции, относительно их общего количества, переданного сетью за время симуляции;

• относительная пропускная способность сети для пары узлов А и В;

• получение характеристик из вышестоящих пунктов в виде матрицы, содержащей характеристики каждого узла;

• относительная пропускная способность сети.

Отслеживание и логирование потоков информации в тестируемой сети

В данном параграфе будут рассмотрены основные концепции, применяемые в среде в фазе симуляции для отслеживания и логирования потоков данных в NoC.

В верификационном окружении каждой паре узел NoC -вычислительный узел СнК выделен свой UVM Monitor, отслеживающий поток транзакций текущей пары. Отслеживая сигналы интерфейса, связывающего узел NoC и вычислительный узел, UVM Monitor собирает необходимую информацию о конкретной транзакции и отправляет данные в UVM Scoreboard.

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

UVM Top Scoreboard также получает информацию о факте испускания или получения транзакций узлами. Дополнительно этот класс получает информацию о времени инициации узлами передачи транзакций, времени попадания транзакций в сеть и времени выхода транзакций из сети (т.е. времени получения транзакций узлами). На основании полученных данных UVM Top Scoreboard формирует основной лог-файл, содержащий информацию о перемещении транзакций в сети. Формат основного лог-файла представлен на рис.4.

На рис.4 source - адрес источника данных в сети, destination - адрес приемника данных в сети, data - данные, init time - время инициации передачи транзакции, from time - время попадания транзакции в сеть, to time - время получения транзакции приемником.

source destination data init time from, time to time

[1 1] [i 0] С000004590С44447 1665000 1665000 1725000

[1 1] [i 0] c00000400dlel4ca 1555000 1555000 1735000

[1 1] [1 l] c0000047ba536e7c 1705000 1705000 1755000

[1 1] [i 0] C0000048a4e48dce 1725000 1735000 1755000

[1 в] [i 0] 800000460C000138 1605000 1605000 1815000

Рис.4. - Формат основного лог-файла Стоит отметить, что иУМ-окружение не имеет прямого доступа ко внутренним линиям сети, т.е. не может получить информацию о текущем расположении транзакций в сети. В связи с этим, при определенных условиях может возникнуть конфликт значений полезных данных в транзакциях, что приведет к невозможности оценить временные характеристики транзакций.

Условием для возникновения конфликта значений полезных данных является нахождение в сети более одной транзакции из узла А в узел B с одинаковыми значениями полезных данных. Рассмотрим пример возникновения конфликта.

На рис.5 представлена временная диаграмма передачи транзакций между двумя вычислительными устройствами.

Clock signal elk rLTL

i_ch_data Some IP-Core i_ch_addr I-Channel signals icnvalid i_ch_ready dats X*data ШШШШ. Ж

«¡addr tad& Immmmdmmm, Ш

Г-4 \ / \

\ / \

,„„ . , , , o ch data IP-Core with <addr> position in NoC o_ch_valid O-Channel signals ° o_ch ready шшшМ, ^щшшй data w

\_r^ V Y time 3

/ \ /

time 0 time 1 time 2

Рис.5. - Временная диаграмма условия возникновения конфликта в UVM окружении.

В момент времени time 0 и time 1 от определенного устройства в сеть попадают транзакции с одинаковыми полезными данными data. Далее в течение некоторого времени данные передаются в сети к узлу с адресом addr. В моменты времени time 2 и time 3 транзакции передаются на устройство, подключенное к узлу с адресом addr в сети. Из-за эквивалентности полезных данных в транзакциях, а также эквивалентности адреса отправителя транзакции, возникает ситуация, в которой невозможно точно определить время нахождения транзакции в сети. К примеру, для транзакции,

переданной в момент времени time 0, время пребывания транзакции в сети может быть равно time 2 - time 0 или же time 3 - time 0.

Для решения данной проблемы в среде каждой транзакции присваивается уникальный идентификатор. Для их генерации используется Transaction ID generator. Связь данного компонента с остальными компонентами среды представлена на рис. 2. Генератор подключается ко второму экземпляру NoC, который используется для передачи идентификаторов в сети (ID NoC). Введение ID NoC необходимо, так как передача уникальных идентификаторов через основной экземпляр NoC приведет к модификации полезных данных, что в свою очередь может нарушить протокол обмена данными между вычислительными узлами СнК.

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

Интеграция сети в среду

По умолчанию в среде для связи вычислительных узлов/их моделей и узлов NoC используется интерфейс, передача данных по которому осуществляется при помощи так называемых "рукопожатий" на линиях сигналов valid и ready (см. рис. 6). Данный интерфейс используется в Hoplite NoC [9]. Если интерфейс связи пользователя отличается от интерфейса связи в среде по умолчанию, то, для интеграции своего интерфейса в среду, пользователю достаточно заменить стандартный интерфейс на пользовательский.

и

Рис.6. - "Рукопожатие" Данный подход реализуем, так как в верификационном окружении взаимодействие с интерфейсами реализуется при помощи абстрактных классов [10]. На рис.7 представлена схема замены интерфейса по умолчанию на пользовательский. В базовом классе интерфейса определен минимальный набор методов для взаимодействия с ним. При интеграции пользователю необходимо переопределить виртуальные методы базового класса для взаимодействия с пользовательским интерфейсом.

Рис.7. - Замена стандартного интерфейса пользовательским

Пример применения среды для анализа производительности NoC

В данном параграфе будет рассмотрен пример оценки производительности Hoplite NoC размерностью 4x3. В данной сети ^пользуется топология Torus, алгоритмы маршрутизации Dimension Order Routing (DOR) и Deflection Routing.

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

На рис. 8 в главном экземпляре сети выделены параметры, которые необходимо определить при подключении.

drt_noc #(

. X_SIZE X_ SIZE / r

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

. Y_SIZE Y_ SIZE ) t

.DATA_WIDTH DATA_WIDTH ) r

.X_ADDR_WIDTH X_ ADDR_WIDTH ) r

.Y_ADDR_WIDTH Y_ ADDR_WIDTH )

JT {

.clk_i /* Clock signal */ ),

. aresetn_i /* Reset signal */ ),

.i_data_i /* Connection 1 */ ),

. i_x_addr_i /* Connection 2 */ ),

■i_y_addr_i /* Connection 3 */ ),

.i_va1i d_i /* Connection 4 */ ),

.o_ready_i /* Connection 5 */ ),

.i_ready_o /* Connection 6 */ ),

.o_dat a_o /* Connection 7 */ ),

.o_va1i d_o /* Connection 8 */ )

);

Рис.8. - Параметры экземпляра HDL-дизайна сети На этапе конфигурации данные параметры указываются в файле конфигурации РуШоп-скрипта. Также в файле конфигурации указываются названия моделей узлов (имена модулей), которые будут подключены к сети на кристалле. Содержание файла конфигурации РуШоп-скрипта показано на рис. 9.

и

DRT_NOC_MODELS = [

"simple_node_model"

]

DRT_NOC_PARAMETERS = [

" X_SIZ E11,

"Y_SIZ E", "DATA_WIDTH",

"X_ADD R_WID T H", "Y ADDR WIDTH"

Рис.9. - Пример файла конфигурации РуШоп-скрипта В процессе RTL-симуляции окружением генерируются лог-файлы, обработка которых будет производиться в фазе анализа.

На рис. 10 приведен пример МаАаЬ-скрипта, реализующего создание

экземпляра Matlab-класса и взаимодействие с ним.

%% Create class instance

%% Methods data processing

Рис.10. - Пример использования Matlab-класса В данном примере вызывается метод получения относительной пропускной способности для всех пар вычислительных устройств, подключенных к сети. Затем выполняется вывод матрицы относительной пропускной способности для всех пар узлов, где получателем является узел с

адресом (0; 0) в сети. Результат выполнения представлен на рис. 11.

Throughputs to node [0,0] :

0 . 5667 0.5291 0.5915

0 . 5301 0.5395 0.5595

0 . 5271 0 .5505 0 .5331

0.5731 0.5301 0.5771

Рис.11. - Результат использования Matlab-класса

Заключение

В данной статье была представлена тестовая среда для оценки производительности RTL-дизайна сети на кристалле в составе СнК в условиях тестирования, максимально приближенных к реальным условиям использования устройства.

Средой выполняется функциональная RTL-симуляция сети в составе СнК с использованием реального HDL-описания сети. Роль вычислительных узлов СнК выполняют HDL-модули с синтезируемым дизайном или же их несинтезируемые модели.

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

Работа выполнена при финансовой поддержке Фонда содействия инновациям (договор № 39ГУРЭС14/72784 от 26.12.2021).

Литература (References)

1. Jones Andrew, Ryan Stuart Enabling High Performance SoCs Through Multi-Die Re-use. URL: design-reuse.com/articles/29013/multi-die-re-use.html (Date accessed: 09.11.22).

2. Dally W., Towles B. Principles and Practices of Interconnection Networks. San Francisco, Morgan Kaufmann Publ., 2003, pp. 1-2.

3. Umit Y. Ogras, Radu Marculescu Modeling, Analysis and Optimization of Network-on-Chip Communication Architectures. New York, Springer, 2013, pp. 1-3.

4. Jiang N, Becker DU, Michelogiannakis G, Balfour J, Towles B, Shaw DE, Kim J, Dally WJ. A detailed and flexible cycle-accurate Network-on-Chip

simulator // IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS), 21-23 April 2013, pp. 86-96.

5. Catania, V., Mineo, A., Monteleone, S., Palesi, M. and Patti, D.,. Noxim: An open, extensible and cycle-accurate network on chip simulator // 2015 IEEE 26th International Conference on Application-specific Systems, Architectures and Processors (ASAP), 21-23 April 2015, pp. 162-163.

6. Van Laer, A., Jones, T. and Watts, P.M.. Full system simulation of optically interconnected chip multiprocessors using gem5 // 2013 Optical Fiber Communication Conference and Exposition and the National Fiber Optic Engineers Conference (OFC/NFOEC), 17-21 March 2013, pp. OTh1A-2.

7. Universal Verification Methodology (UVM) 1.2 User's Guide. URL: accellera.org/images/downloads/standards/uvm/uvm_users_guide_1.2.pdf (Date accessed: 16.11.22).

8. Standard Universal Verification Methodology. URL: accellera.org/downloads/standards/uvm (Date accessed: 16.11.22).

9. Kapre N, Gray J.. Hoplite: Building Austere Overlay NoCs. In 2015 25th international conference on field programmable logic and applications (FPL) 2015 Sep 2. Pp. 1-8.

10. How to Access a Parameterized SystemVerilog Interface from UVM. URL: doulos.com/knowhow/systemverilog/uvm/easier-uvm/easier-uvm-deeper-explanations/parameterized-interface-example/ (Date accessed: 09.11.22).

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