Анализ производительности многоуровневой подсистемы памяти

ВЕСТНИК ТОМСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА

2007 Управление, вычислительная техника и информатика № 1

УДК 681.324

Д.В. Биматов, С.П. Сущенко АНАЛИЗ ПРОИЗВОДИТЕЛЬНОСТИ МНОГОУРОВНЕВОЙ ПОДСИСТЕМЫ ПАМЯТИ

Предложена модель многоуровневой памяти. Исследуется влияние архитектурных параметров памяти и специфики решаемых на вычислительной системе задач на операционные характеристики подсистемы памяти: вероятность попадания в кэш, среднее время доступа к адресуемым объектам. Найдены аналитические зависимости для нахождения вероятности попадания в кэш заданного уровня. Проведен сравнительный анализ функционирования двухуровневой и трехуровневой памяти. Сформулированы критерии целесообразности перехода от двухуровневой к трехуровневой памяти.

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

В наиболее общем случае организации многоуровневой памяти кэш и оперативное запоминающее устройство (ОЗУ) разбиты на блоки фиксированной длины. В кэше блоки объединяются в группы объемом А блоков. Число А называется коэффициентом ассоциативности.

Процесс выбора данных из многоуровневой памяти блокирующего типа производится следующим образом: сначала процессор обращается в кэш уровня 1. Если требуемый блок находится в кэше («попадание»), то элемент извлекается из кэша, иначе («промах») происходит обращение к следующему уровню памяти [1].

1. Модель многоуровневой памяти

Рассмотрим многоуровневую подсистему памяти с количеством уровней в иерархии равным и > 1. На каждом уровне и = 1 ...и -1, кроме последнего, находится кэш; последний уровень и = и занимает ОЗУ (рис. 1). Количество блоков в ОЗУ равно Уи = УОЗУ = V . Время выбора блока из ОЗУ равно Ки = КОЗУ = К , а время поиска и выбора блока из кэша уровня и равно Ки. Кэш каждого уровня характеризуется следующими параметрами: объемом кэша в блоках - V,; количеством групп - Gu, коэффициентом ассоциативности - Аи = V, / Gu; количеством блоков ОЗУ, отображаемых на группу кэша и-го уровня Ми = VОЗУ / Gu. По логике

Рис. 1. Схема многоуровневой памяти

построения многоуровневой памяти с ростом номера уровня времена обращения и объемы памяти возрастают:

К < К; , V, * V; , / < ] .

Для исследования эффективности работы кэша используется модель с идеальной стратегией вытеснения блоков [2]. В этом случае предполагается, что заранее известно распределение вероятностей востребованности блоков памяти вычислителем:

------- V-1

р{1), / = 0, V -1, х р{1) = 1.

г=0

Важнейшей операционной характеристикой кэша заданного уровня и является вероятность попадания в кэш, которая определяется соотношением [2]

-1М„-1

Пи = ЕЕ Пи

£=0 т=0

где Пи (g + Gu т) - вероятность того, что т-й блок ОЗУ, отображаемый на g-ю

группу кэша, находится в кэше. Тогда среднее время доступа к адресуемым объ-

ектам многоуровневой памяти блокирующего типа [3]

и и-1

Т

и=1 /=1

где Я[ = 1 - Пг- - вероятность промаха в кэш уровня г. Операционная характеристика «среднее время доступа» позволяет оценивать эффективность работы подсистемы памяти в целом. Чем меньше среднее время, тем лучше работает многоуровневая память.

2. Вероятность попадания в кэш

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

Р(Е + 610 > р(Е + ), г < у; г, у = 0, Мх -1, Уg = 0, 6 -1.

Для выполнения сравнительного анализа вероятностей попадания в кэши различных уровней иерархической памяти необходимо по заданному отображению распределения востребованности блоков ОЗУ центральным процессором на один из кэшей (кэш первого уровня) получить отображения на кэши других уровней.

В случае, когда количество групп в кэше и-го уровня кратно количеству групп в кэше первого уровня, то есть

Gи = еи  , еи - натуральное число ,

последовательность блоков ОЗУ, отображаемых на g-ю группу кэша первого уровня

И + и = 0, G1 -1, тх = 0, Ых -1,

отображается на еи групп кэша уровня и:

8 + ^п + Оити, g = 0, 01 -1,

П = 0, еи -1, ти = 0, Ми -1

Видно, что при (4) последовательность блоков памяти, отображаемых на группу кэша уровня и, также упорядочена по убыванию. Так как процесс накопления блоков в кэше рассматривается независимо от кэшей других уровней, то вероятность попадания блока из основной памяти в идеальный кэш уровня и [2]

пи (8 + Си т) =

1,

Р

т = О, А - 2,

М-1

Ё Р8 + Си О

=А,-1

Соответственно, исходя из общей зависимости (2), вероятность попадания в кэш первого уровня составит

61 -1 Мг-1

п1 = Ё Ё П1 (8 + ^1т) • ^(8 + ^1т) =

%=0 т= 0

6-1

= Ё

%=0

Мх -1

А-2

Ё [(8 + °1т)\

т=А-1

т=0

Мг -1

Ё Р8 + °1т) т=А-1

а вероятность попадания в кэш уровня и имеет вид

-1 еи -1

п = ЕЕ

g=0 п=0

Е П2

т=0

Ог-1 е,-1

= ЕЕ

g=0 п=0

м„-1

4-2 Е р

Е Р(8 + °1п + Ф1т) + т=М±1--------------------

1 _и

т= Е Р С + С1п + еи°1т)

т=4,-1

Для упрощения вычислений можно ввести верхнюю П и нижнюю П оценки вероятности попадания в кэш уровня и:

П„ <П„ <11 „ .

Верхняя и нижняя оценки вероятности попадания в кэш первого уровня определяются на основе (5) следующими зависимостями:

О, -1

А1 = Е

я=0

'4 -1

0,-1

П = Е

я=0

'Л,-2

Е Р

_ т=0

Верхняя и нижняя оценки вероятности попадания в кэш уровня и определяются из (6) соотношениями

G1 -1 eu-1

G, -1 e„-1

п = ZZ

g=0 n=0

in«= z z

g=0 n=0

“ A-2

A-1

z pig + G1n + euG1m)

Z p g+G1n+e« G1m)+p g+G1n+e« G1l ~-1

m=0

M1

3. Анализ вероятности попадания в кэш при усеченном геометрическом распределении востребованости блоков памяти вычислителем

Для простоты предположим, что вероятность востребованности т-го блока основной памяти, отображаемой на группу кэша первого уровня, не зависит от номера группы:

p(g + Gjm) = p (h + Gjm), Vg, h = 0, Gj -1, m = 0, Mj -1.

Полагаем, что вероятности востребованности блоков основной памяти определены на интервале m = 0, aAl -1 и убывают с ростом m по усеченному геометрическому закону (заданному на конечной области определения): p(g + Gjw) = р(g) • qm, g = 0, Gj -1.

Здесь — < a < -—1 - доля ОЗУ, занятая востребованными вычислителем прило-

A

A

жениями, выраженная в количестве объемов кэша первого уровня, а 0 < # < 1 -

параметр усеченного геометрического распределения. Учитывая условие нормировки

Иг-1

m=0 G1

первый элемент геометрической прогрессии

р( g) =

l-q

G • (l - qMl У

Тогда вероятность попадания в кэш первого уровня будет вычисляться из (5) по формуле

а вероятность попадания в кэш уровня и

l + qe“ - 2qe“A + qaA‘

Пи =---------------------—:---------—-------------. 0 < q < l.

U

В случае равномерного распределения (д = 1) вероятности попадания в кэш первого и и-го уровней выражаются из (5), (6) следующими соотношениями:

1 е А V

п = -, п„ = еи-^ = —^,

а аА1 aVl

где V, г = 1,2 - емкость кэша г-го уровня. Верхняя и нижняя оценки вероятности попадания в кэш первого уровня, вычисленные из (7) и (8) с использованием формулы суммы геометрической последовательности, равны соответственно

п = 1 - дА п = 1 - дА -1 + (1 - д ) даА-1

1 1 - даА , 1 1 - даА .

Верхняя и нижняя оценки вероятности попадания в кэш уровня и, найденные по формуле (9), (10), определятся следующими зависимостями:

1 _ де„А „ 1 - де“(А-1) + (1 - де“)  да

^1 аА ’ и 1 аА-|

1 _ д 1 1 - д 1

В случае, когда коэффициенты ассоциативности в кэше первого и второго уровней совпадают (Д = А2 = А), соотношения (11) и (12) для нахождения вероятности попадания упрощаются:

п _ 1 + д - 2дА + даА

1 _ (1+д )• (1 - даА) ; 2 = (1 + *е )• (1 -^) .

При равном количестве групп в кэшах первого и второго уровней (е=1) функцио-

нальные зависимости (11) и (12) принимают вид

п = 1 + д - 2дА + даА

1_ (1 + д )-(1 - д"1) ; 2" (1+д )•( - д“*) .

В случае, когда кэш первого уровня является кэшем прямого отображения

(Ах = 1) из (11) и (12), получаем

_ =

1_ (1+д ) (1 - да ) 2" (1+д)-(1-д“) .

Если при этом кэш второго уровня также является кэшем прямого отображения (А2 = 1), то выражение для вероятности попадания в кэш второго уровня преобразуется к следующему виду:

П 2 =

Вид зависимости вероятностей попадания в кэши первого и второго уровней, а также их оценки от параметра усеченного геометрического распределения д представлены на рис. 2. Здесь У = 16, У2 = 32, УОЗУ = 64. Л\ = 2, А2 = 4, а = 4, е = 1. Видно, что оценки П и П наиболее точно представляют вероятность попадания П при д близком к единице (равномерное распределение) и при д, близком к нулю (вся вероятностная масса сосредоточена в одном блоке каждой группы). Рис. 3 и 4 иллюстрируют эффект от добавления кэша второго уровня к двухуровневой подсистеме памяти с параметрами У = 16, А\ = 16 (полностью ассоциативный кэш), УОЗУ = 128, а = 8. Объем добавляемого кэша У2 = 64, коэффициент е вычисляется

из соотношения (4). На рис. 3 изображено влияние параметра ассоциативности А2 на вероятность промаха в кэш второго уровня Я2 при различных параметрах усеченного геометрического распределения д.

Видно, что при увеличении параметра ассоциативности вероятность промаха снижается, однако при равномерном распределении (д = 1) вероятность промаха не зависит от коэффициента ассоциативности. Характерная зависимость вероятности промаха в кэш от параметра усеченного геометрического распределения д при различных коэффициентах ассоциативности кэша второго уровня А2 приведена на рис. 4. Видно, что полностью ассоциативный кэш (А2 = У2) обладает наиболее низкой, а кэш прямого отображения (А2 = 1) - наиболее высокой вероятностью промаха на всем диапазоне изменения параметра д.

Рис. 2. Вероятность попадания в кэш и ее оценки

Л

0,8-

0,6-

0,4

0,21

-О- Яг(А2), я =

ЛСД), я -ЛСД), я -

-О- л2(а2), я =

— ЛСД), я --

0,93

0,95

0,97

0,99

1

Л

0,75

0,50

0,25

Я^) ^2(9), А2

*2(9), А *2(9), А2

У

Рис. 3. Влияние коэффициента ассоциативности А2 на вероятность промаха К2 при различных значениях параметра распределения д

0,90 0,92 0,94 0,96 0,98 Я

Рис. 4. Влияние коэффициента ассоциативности А2 на вероятность промаха К2

0

0

4. Сравнительный анализ подсистем памяти с двумя и тремя уровнями

Полагаем, что среднее время доступа к адресуемым объектам многоуровневой памяти определяется выражением (3). Предположим, что в подсистему иерархической памяти добавляется еще один уровень памяти перед уровнем с номером а. Пусть время доступа к добавляемому уровню памяти - К*, а вероятность промаха - Я*. Естественно, что параметры добавляемого уровня памяти должны соответствовать логике построения многоуровневой памяти: кэш более высокого уровня характеризуется большим временем доступа и меньшей вероятностью промаха:

Ка-1 - К* — Ка ,

яа-1 > Я* > я

Целесообразность добавления уровня памяти в существующую систему перед уровнем с номером a выражается неравенством

АТ(а) = Ти (Кц) - Т^ (Ка_1, К*, КаКи) > 0 .

Здесь Ти+1 (Ка-1,К*,КаКи) - среднее время доступа к подсистеме памяти с дополнительно введенным на а-м уровне кэшем. Подставляя в это неравенство соотношение (3), после приведения подобных получим

к _и и-1

< Е к П

1 и=а 1=а

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

Л и и-1 Л / и и-1

К* <П -[X КиП*,'], П. > К* XКиП,

Vи=а , =а / / и=а г=а

где П* = 1 - Я* - вероятность попадания в добавляемый кэш. Тогда целесообразность добавления кэша первого уровня к двухуровневой памяти «Кэш - ОЗУ» будет выражаться неравенством

АТ(1) = Т2 (, Козу ) - 73(1) (К*, Кх, Козу ) 0 .

К*

Отсюда получаем -------< К1 + Я1КОЗУ ,

1 — Я*

К,

К* ^ (1-)• (К1 + ^козу ) или (1-)-^ 7^ .

К1 + ^1КОЗУ

Целесообразность добавления кэша второго уровня к исходной подсистеме памяти задается условием

АТ(2) = Т2 (К1, Козу ) - Т(2) (К1, К*, Козу ) > 0, которое приводит к неравенствам:

К,

—— ^ КОЗУ ,

1 - Я*

К* < (1 - Я») • КОЗУ или (1 - Я») > К» / КОЗУ .

Рис. 5 иллюстрирует в пространстве быстродействия и вероятности промаха в кэш добавляемого уровня области целесообразности добавления кэша к двухуровневой подсистеме памяти с параметрами: Я1 = 0,5, К1 = 8, КОЗУ = 64. Область 0 < Я* < Я1 соответствует добавлению уровня между центральным процессором и существующим кэшем (добавление кэша первого уровня), а область Ях < Я* < 1 -добавлению кэша между существующим кэшем и ОЗУ (добавление кэша второго уровня). Рис. 6 - 8 показывают эффект от добавления кэша второго уровня к двухуровневой системе памяти с параметрами: У1 = 128, УОЗУ = 512 (а = 4), К1 = 8, КОЗУ = 64 при равномерном распределении востребованности блоков ОЗУ вычислителем. На рис. 6 изображена зависимость среднего времени доступа от времени обращения к добавляемому кэшу К*. Горизонтальная линия соответствует среднему времени доступа к исходной двухуровневой памяти. Видно, что чем больше объем добавляемого кэша, тем шире диапазон значений К*, при которых трех-

уровневая память имеет меньшее среднее время доступа. Рис. 7 иллюстрирует влияние объема добавляемого кэша на среднее время доступа к модифицированной подсистеме памяти. Горизонтальная линия соответствует среднему времени доступа к исходной подсистеме памяти. Видно, что чем меньше время обращения к добавляемому кэшу, тем шире диапазон объемов добавляемого кэша V*, при которых имеет смысл использовать трехуровневую память вместо двухуровневой. Наконец, рис. 8 представляет область целесообразности добавления кэша с объемом V* и временем доступа К*.

Рис. 5. Области целесообразности введения кэша первого и второго уровней

Рис. 7. Влияние объема V* добавляемого кэша второго уровня на среднее время доступа Т при равномерном распределении

8 16 24 32 40 48 56 К*

Рис. 6. Влияние времени обращения К* к добавляемому кэшу второго уровня на среднее время доступа Т при равномерном распределении

Рис. 8. Область целесообразности добавления кэша второго уровня с объемом V* и временем доступа К* при равномерном распределении

Рис. 9 и 10 показывают эффект от добавления кэша второго уровня к двухуровневой подсистеме памяти при усеченном геометрическом распределении востребованности блоков ОЗУ вычислителем. Исходная подсистема памяти характеризуется параметрами: V1 = 16, VОЗУ = 64 (а = 4); А1 = 2, К1 = 8, КОЗУ = 64. Добав-

ляемый кэш имеет объем У2 = 32 и ассоциативность А2 = 2. На рис. 9 приведен график среднего времени доступа исходной (Т2) и модифицированной (Г3(2)) подсистем памяти от параметра усеченного геометрического распределения д при различных временах доступа к добавляемому кэшу К2. Рис. 10 показывает выигрыш от добавления кэша при заданном параметре д и различных временах обращения к добавляемому кэшу К2.

0,0 0,2 0,4 0,6 0,8 д 0,0 0,2 0,4 0,6 0,8 д

Рис. 9. Зависимость среднего времени досту- Рис. 10. Выигрыш от добавления кэша па к исходной и измененной подсистемам второго уровня с различными временами памяти от параметра распределения д при обращения К2 различных временах доступа к добавляемому кэшу второго уровня К2

Заключение

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

ЛИТЕРАТУРА

1. Лускинд Ю.И. Буферные запоминающие устройства типа кэш // Зарубежная радиоэлектроника. 1990. № 11. С. 155 - 165.

2. Сушенко М.С., Сущенко С.П. Анализ производительности множественного ассоциативного кэша // Вестник ТГУ. 2002. № 275. С. 218 - 223.

3. Сущенко М.С., Сущенко С.П. Анализ эффективности многоуровневой памяти вычислительных систем // Обозрение прикл. и промышл. матем. 2001. Т. 8. Вып. 1. С. 336 - 337.

4. Биматов Д.В. Моделирование трехуровневой подсистемы памяти // Материалы XI Всероссийской научно-практической конференции «Научное творчество молодежи». Ч. 3. Томск: Изд-во Том. ун-та, 2007. С. 61 - 64

Статья представлена кафедрой прикладной информатики факультета информатики Томского государственного университета, поступила в научную редакцию 2 июля 2007 г.