ВЕСТНИК ТОМСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА
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. (1)
г=0
Важнейшей операционной характеристикой кэша заданного уровня и является вероятность попадания в кэш, которая определяется соотношением [2]
-1М„-1
Пи = ЕЕ Пи (8 + °ит) • Р( 8 + °и т) , ()
£=0 т=0
где Пи (g + Gu т) - вероятность того, что т-й блок ОЗУ, отображаемый на g-ю
группу кэша, находится в кэше. Тогда среднее время доступа к адресуемым объ-
ектам многоуровневой памяти блокирующего типа [3]
и и-1
Т (1, К2Ки ) = Е К П Ъ , (3)
и=1 /=1
где Я[ = 1 - Пг- - вероятность промаха в кэш уровня г. Операционная характеристика «среднее время доступа» позволяет оценивать эффективность работы подсистемы памяти в целом. Чем меньше среднее время, тем лучше работает многоуровневая память.
2. Вероятность попадания в кэш
Одна из основных проблем получения вероятностей попадания в кэши различных уровней состоит в построении по одному известному распределению востребованности блоков ОЗУ вычислителем (1) отображений элементов ОЗУ в группу кэша каждого уровня [4]. Поскольку механизм идеального вытеснения обладает свойством концентрации в А-1 блоках каждой группы кэша самых востребованных вычислителем блоков памяти, то без ограничения общности можно считать, что вероятности востребованности блоков памяти, отображаемых на каждую группу кэша первого уровня, упорядочены по убыванию:
Р(Е + 610 > р(Е + ), г < у; г, у = 0, Мх -1, Уg = 0, 6 -1.
Для выполнения сравнительного анализа вероятностей попадания в кэши различных уровней иерархической памяти необходимо по заданному отображению распределения востребованности блоков ОЗУ центральным процессором на один из кэшей (кэш первого уровня) получить отображения на кэши других уровней.
В случае, когда количество групп в кэше и-го уровня кратно количеству групп в кэше первого уровня, то есть
Gи = еи ■ , еи - натуральное число , (4)
последовательность блоков ОЗУ, отображаемых на g-ю группу кэша первого уровня
И + и = 0, G1 -1, тх = 0, Ых -1,
отображается на еи групп кэша уровня и:
8 + ^п + Оити, g = 0, 01 -1,
П = 0, еи -1, ти = 0, Ми -1
Видно, что при (4) последовательность блоков памяти, отображаемых на группу кэша уровня и, также упорядочена по убыванию. Так как процесс накопления блоков в кэше рассматривается независимо от кэшей других уровней, то вероятность попадания блока из основной памяти в идеальный кэш уровня и [2]
пи (8 + Си т) =
1,
Р( 8 + Си т)
т = О, А - 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
(5)
а вероятность попадания в кэш уровня и имеет вид
-1 еи -1
п = ЕЕ
g=0 п=0
Е П2 (Я + °1П + еи С1т) • Р(8 + ^1п + еи °1т)
т=0
Ог-1 е,-1
= ЕЕ
g=0 п=0
м„-1
4-2 Е р(с+°1п+еи°1т)
Е Р(8 + °1п + Ф1т) + т=М±1--------------------
1 _и
т= Е Р С + С1п + еи°1т)
т=4,-1
(6)
Для упрощения вычислений можно ввести верхнюю П и нижнюю П оценки вероятности попадания в кэш уровня и:
П„ <П„ <11 „ .
Верхняя и нижняя оценки вероятности попадания в кэш первого уровня определяются на основе (5) следующими зависимостями:
О, -1
А1 = Е
я=0
'4 -1
0,-1
П = Е
я=0
'Л,-2
Е Р( + От) + р(£ + С(М1 -1)
_ т=0
(7)
(8)
Верхняя и нижняя оценки вероятности попадания в кэш уровня и определяются из (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
(9)
(10)
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 + q )■( - ,"A‘ )
а вероятность попадания в кэш уровня и
l + qe“ - 2qe“A + qaA‘ (l - qe« )
Пи =---------------------—:---------—-------------. 0 < q < l.
U (l + qe“ ) • (l — qaA )
(12)
В случае равномерного распределения (д = 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 + Яе - 2#еЛ + #“А (1- 4е)
1 _ (1+д )• (1 - даА) ; 2 = (1 + *е )• (1 -^) .
При равном количестве групп в кэшах первого и второго уровней (е=1) функцио-
нальные зависимости (11) и (12) принимают вид
п = 1 + д - 2дА + даА (1 - д) _ = 1 + д - 2дА + даА (1- д)
1_ (1 + д )-(1 - д"1) ; 2" (1+д )•( - д“*) .
В случае, когда кэш первого уровня является кэшем прямого отображения
(Ах = 1) из (11) и (12), получаем
_ = (1 - д )■(! + да ) _ = 1 + де - 2д^ + да (1 - де )
1_ (1+д )■ (1 - да ) 2" (1+д)-(1-д“) .
Если при этом кэш второго уровня также является кэшем прямого отображения (А2 = 1), то выражение для вероятности попадания в кэш второго уровня преобразуется к следующему виду:
(1 - де) ■ (1 + да)
П 2 =
(1 + де )(1 - да )
Вид зависимости вероятностей попадания в кэши первого и второго уровней, а также их оценки от параметра усеченного геометрического распределения д представлены на рис. 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 г.