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

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

CC BY
18
5
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
АРХИТЕКТУРА "ОРХИДЕЯ" / МИКРОПРОЦЕССОР / ДИСПЕТЧЕР ПАМЯТИ / КЭШ-ПАМЯТЬ / ПОПАДАНИЕ / ПРОМАХ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Лисов Олег Иванович, Махалов Алексей Анатольевич

Методом статистического анализа с использованием функционального симулятора проведено исследование аппаратуры для оценки эффективности работы диспетчера памяти ядра архитектуры «Орхидея». Приведены результаты сравнения производительности двух реализаций диспетчеров памяти.The device research has been conducted by the statistical analysis method using the functional simulator for the assessment of the efficiency performance of the Orchid architecture memory management unit. The performance comparison of two implementations of the memory management unit has been executed.

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

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

МИКРОПРОЦЕССОРНАЯ ТЕХНИКА

УДК 004.942:004.254

Оценка эффективности двух вариантов реализации диспетчера памяти для ядра архитектуры «Орхидея»

О.И.Лисов, А.А.Махалов

Московский государственный институт электронной техники (технический университет)

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

Ключевые слова: архитектура «Орхидея», микропроцессор, диспетчер памяти, кэш-память, попадание, промах.

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

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

Диспетчер памяти состоит из кэш-памяти команд и кэш-памяти данных, таблицы преобразования адресов команд и данных. Кэш-память хранит копии данных из различных адресных областей основной памяти. Чтение из кэш-памяти производится гораздо быстрее, чем чтение из оперативной памяти [1]. Если информация присутствовала в кэш-памяти во время обращения к основной памяти, то данная ситуация называется попадание в кэш-память, иначе - промах, что приводит к загрузке кэш-линии непосредственно из памяти.

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

© О.И.Лисов, А.А.Махалов, 2010

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

Описание аппаратуры. Первый вариант реализации диспетчера памяти для архитектуры «Орхидея» [3] (рис.1) имеет две кэш-памяти: команд и данных. Размер каждой составляет 8 Кбайт с прямым отображением в память. Кэш-память располагается по виртуальным адресам до таблицы преобразования адресов. Политика записи в память - сквозная.

Рис. 1. Первый вариант реализации диспетчера памяти для ядра архитектуры

«Орхидея»

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

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

Второй вариант реализации диспетчера памяти для ядра архитектуры «Орхидея» (рис.2) также имеет две кэш-памяти: команд и данных. Размер кэш-памяти данных 16К, размер кэш-памяти команд 32К, тип множественно-ассоциативный со случайным алгоритмом замещения. Кэш-память размещается на физических адресах, после таблицы преобразования адресов. Политика записи в память - сквозная.

Рис. 2. Второй вариант реализации диспетчера памяти для ядра архитектуры

«Орхидея»

Недостаток новой версии диспетчера памяти: когда процессор совершает запрос по виртуальному адресу, сначала начинает работать таблица преобразования адресов. Если адрес преобразован, то он поступает на вход кэш-памяти только в следующем такте. А значит, при такой структуре диспетчера памяти процессор получит запрашиваемые данные минимум за 2 такта. Для решения этой проблемы был использован механизм предварительного преобразования адреса. По сути, это мини-таблица преобразования адресов, содержащая копию последних активных записей из основной таблицы, которая в случае попадания подает на кэш-память физический адрес страницы в этом же такте. В этом случае процессор получит запрашиваемые данные уже в следующем такте, что аналогично предыдущему варианту реализации диспетчера памяти. Для того чтобы поиск по мини-таблице успевал отрабатывать запрос за один такт, ее размер должен быть предельно мал и равен одной записи для шины команд и четырем записям для шины данных. Это обусловлено тем, что команды имеют лучшую пространственную и временную локальность в пределах страницы по сравнению с данными [4].

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

Моделирование аппаратуры. Задача исследования аппаратуры решается в следующей последовательности: смоделировать работу исполняемой задачи под ОС Linux; собрать и обработать статистические данные работы кэш-памяти и таблицы преобразования адресов для двух вариантов реализации диспетчеров памяти; вычислить среднее время доступа к памяти через кэш-память и таблицу преобразования адресов как в от-

дельности, так и в совокупности; сравнить производительность предыдущего и нового вариантов реализации диспетчеров памяти. В качестве исполняемой задачи использовалась работа видеоплеера mplayer (декодирование MPEG4, 100 кадров, без отображения). Параметры файла видео: MPEG4 640x480 24bpp 30 fps 815.9 kbps. Задача исполнялась на симуляторе. Симулятор представляет собой поведенческую модель ядра архитектуры «Орхидея». Он включает в себя большое разнообразие периферийных устройств, а также два рассматриваемых варианта реализации диспетчеров памяти. Симулятор имеет возможность сбора статистических данных о работе различных блоков ядра архитектуры «Орхидея», в том числе кэш-памяти, и таблицы преобразования адресов. Производительность диспетчера памяти вычисляется по собранным статистическим данным.

Алгоритм исследования. Во время исполнения приложения снимаются статистические данные по работе устройств. После исполнения по кэш-памяти команд и данных доступны следующие параметры: HC - количество попаданий в кэш-память, MC -

количество промахов в кэш-памяти, CC - количество обращений к памяти через кэшпамять, Cc = Hc +MC , Ic - количество очистки кэш-памяти. Проценты промахов, попаданий и процент сброса кэш-памяти от общего числа обращений вычисляется по следующим формулам [5]:

hpc=hC / cC > (1)

Mpc =MC / Cc , (2)

Ipc=Ic /Cc • (3)

Если принять за TC7 время отрабатывания попадания в кэш-память, за ТС2 - время загрузки кэш-линии из памяти в случае промаха, то среднее время доступа в память через кэш Тс будет вычисляться по формуле

Tc=TCHPC+TCMPC • (4)

Если в формуле (4) учесть издержки, связанные с очисткой кэш-памяти, приняв за ТС3 время очистки в тактах системной шины, то получим следующую формулу:

ТС = TC1HPC + ТС2мPC +TC3IPC • (5)

Формула (5) верна как для кэш-памяти команд, так и для кэш-памяти данных.

В табл.1 представлено количество тактов, которое требуется для загрузки кэш-линии определенного размера (параметр Тс 2 ). Данные представлены для архитектуры «Орхидея» при частоте системной шины 100 МГц. На данной частоте для настройки динамической памяти на обмен и ожидание готовности требуется 7 тактов. Надо учесть, что на более низкой частоте эта величина будет меньше, соответственно выигрыш кэш-памяти будет менее значителен.

Таблица 1

Количество тактов, необходимое для загрузки кэш-линии определенного

размера из памяти

Размер кэш-линии, байт 4 8 16 32 64 128 256 512 1024

Количество тактов 8 9 11 15 23 39 71 135 264

Время составляет 1 такт. Время составляет 512 тактов для первой версии диспетчера памяти и 1 такт - для второй версии диспетчера памяти при условии, что частота системной шины равна частоте ядра процессора. После исполнения задачи по таблицам преобразования адресов команд и данных доступны следующие параметры: Нт - количество попаданий в таблице преобразования адресов, Н]тт - количество попаданий в мини-таблице; данный параметр актуален только для второго варианта реализации диспетчера памяти; Мт - количество промахов; Сг - количество обращений к памяти, С = Нт +МТ . Проценты промахов и попаданий вычисляются по формулам

Ирт = Нт / Ст , (6)

Н»рт = Н,т / Ст , (7)

МРТ=МТ / Ст . (8)

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

тт ттНрт + т2Мрт . (9)

В случае второго варианта реализации таблицы преобразования адресов тт1 - время, которое тратится на обработку попадания в основной таблице в случае промаха в мини-таблице. Тогда

TT=TTlИPT ~ Н]\Рт) +тт2МРт +ттЪН]\Рт , (10)

где тт 3 - время, которое необходимо на обработку попадания в мини-таблице преобразования адресов.

Формулы (9) и (10) верны как для шины команд, так и для шины данных.

В табл.2 представлены временные данные таблиц преобразования адресов.

Таблица 2

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

Время Первый вариант Второй вариант

тт1 0 1

тт 2 176 18

тт 3 - 0

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

памяти). Принимая во внимание этот факт, получаем среднее время доступа в память через диспетчер памяти

тмми

Тт+Тс .

(11)

Результат исполнения приложения представлен в табл.3.

Таблица 3

Статистические данные по кэш-памяти и таблице преобразования адресов первой и второй версий диспетчера памяти, представленные в количестве событий

Параметры Первый вариант Второй вариант

Команды Данные Команды Данные

сс 823204183 136194047 802 964 939 139 723 338

Нс 803 382 469 126 607 866 802 336 368 134 213 123

мс 19 821 714 9586 181 628 571 5 510215

!с 10 902 27 621 1 1

Ст 808 894 035 191 262 260 802 903 783 194 879 264

Н т 808 731 611 190 905 510 802 336 368 194 451 043

Н ?т - - 794 262 821 182 804 185

мт 162 424 356 750 133 123 425 956

Подставив промежуточные формулы (1)—(10), а также временные данные из табл.2 в формулу (11), получим общие формулы подсчета среднего времени доступа к памяти для различных вариантов реализации диспетчеров памяти:

тммт

Нс /сс +11м /сг + 5\21г /сг +И6МТ /с

1с1 ^с

сс

1Т I ^т-.

т

мми2

т

-- Нс / сс +15мс / сс +1с / сс +(НТ - Нт ) / ст +18мт / ст, ^мми-Нс / сс +1мс / сс +1с / сс +(НТ - Н^т ) / ст +1Шт / ст.

где тмми1 - среднее время доступа к памяти для шин команд или данных диспетчера памяти первого варианта реализации; тмми2 - среднее время доступа в память для шины команд диспетчера памяти второго варианта реализации; тмми2 - среднее время доступа к памяти для шины данных диспетчера памяти второго варианта реализации.

В табл.4 представлены средние времена доступа к памяти через диспетчер памяти для шин команд и данных.

Таблица 4

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

Шина Первый вариант Второй вариант

Команды 1,2829 1,0240

Данные 2,1360 1,4935

Экспериментальные измерения на аппаратуре. Измерялось время декодирования 1000 кадров без отображения. Опции запуска плеера и параметры файла видео такие же, как и при запуске на симуляторе. Приложение выполнялось под операционной системой Linux при частоте системной шины и ядра процессора 40 МГц. Столь малая частота связана с тем, что измерения проводились на FPGA прототипах процессоров «Орхидея». Среднее время декодирования составляет 303,46 с и 245,97 с для первого и второго вариантов реализации диспетчеров памяти соответственно. Выигрыш второго варианта составляет 19%.

В ходе проведенного исследования выяснилось, что новая реализация диспетчера памяти ядра архитектуры «Орхидея» обеспечивает выигрыш в производительности в 20 и 30% для шин команд и данных соответственно. Стоит отметить, что выигрыш в производительности диспетчера памяти не дает такого же выигрыша производительности системы в целом, второй показатель всегда будет меньше. Результаты расчетов подтверждаются практическими измерениями.

Литература

1. Scott Mueller. Upgrading and repairing PCs. - 18-th ed. Que, 2007. - P. 1584.

2. Илюшкин Б.И. Операционные системы. Процессы и потоки: Учеб. пособие. - СПб.: СЗТУ, 2005. -103 с.

3. http://www.unicore.ru/download/unc320ipp01/unc320ipp01/databook-ru/UNC320IPP01_DataBook-0709-Ru_07.pdf

4. Тананбаум Э. Современные операционные системы. - 2-е изд. - СПб.: Питер, 2002. - 1040 с.

5. Баркалов А.А., Зеленева И.Я., Бабаков Р.М. Структуры логических схем управляющих автоматов на программируемых БИС // Зб. наукових праць ДДТУ. Серш «1нформатика, шбернетика та обчислю-вальна техшка». Вип. 6. - Донецк: ДонДТУ, 1999. - С. 208-211.

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

Статья поступила после доработки 6 ноября 2009 г.

Лисов Олег Иванович - доктор технических наук, профессор кафедры информатики и программного обеспечения вычислительных систем (ИПОВС) МИЭТ. Область научных интересов: системный анализ и математическое моделирование; системный анализ экономических систем; общая теория систем; многокритериальная оптимизация систем; информационные системы гомеостаз; синергетика; синер-гетическая теория экономических систем; E-learning системы.

Махалов Алексей Анатольевич - аспирант кафедры ИПОВС МИЭТ. Область научных интересов: системный анализ и математическое моделирование, операционные системы; системы реального времени. E-mail: makhaloff@gmail.com

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