Производительность

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

 


(1.2.)

 


где

СS — средняя стоимость одного бита двухуровневой памяти,

C1 — средняя стоимость одного бита памяти верхнего уровня Ml,

С2 – средняя стоимость одного бита памяти нижнего уровня М2,

S1 — емкость Ml,

S2 — емкость М2.

Желательно добиться соотношения CS=C2. При условии С1>>С для этого требуется, чтобы выполнялось условие S1=S2. Получающаяся зависимость представлена на рис. 1.22.

 

 

Теперь рассмотрим время доступа. Для высокой производительности двух­уровневой памяти необходимо, чтобы TS=T1. Поскольку обычно T1<<T2, нуж­но, чтобы результативность поиска была близка к 1.

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

· Какая результативность поиска удовлетворяет требованиям производитель­ности?

· Какая емкостьMl даст гарантию достижения требуемой результативности поиска?

· Будет ли эта емкость иметь приемлемую стоимость?

Чтобы ответить на эти вопросы, рассмотрим, величину T1/TS, которая называ­ется эффективностью доступа. Она является мерой того, насколько среднее время доступа TS отличается от времени доступа T1 к Ml. Из уравнения (1.1) находим

 

(1.3)

На рис. 1.23 представлен график зависимости T1/TS от результативности поиска Н при разных значениях параметра T2/T1. Обычно время доступа к кэшу в пять-десять раз меньше, чем время доступа к основной памяти (т.е. отношение T2/T1 лежит в пределах от 5 до 10), а время доступа к основной памяти приблизительно в 1000 раз меньше, чем время доступа к диску (T2/T1->1000). Таким образом, чтобы удовлетворить требованиям эффективности, величина результативности поиска должна находится в пределах от 0.8 до 0.9.

 

 

Теперь вопрос об относительной емкости памяти можно сформулировать более точно. Можно ли при условии S1=S2 добиться, чтобы результативность поиска достигала значения 0.8 или превышала его? Это зависит от нескольких факторов, в число которых входит вид используемого программного обеспечения и детали устройства двухуровневой памяти. Основное влия­ние, конечно, оказывает степень локализации. На рис. 1.24 показано,какое влияние оказывает локализация на результативность поиска. Очевидно, что если емкость уровня Ml равна емкости уровняМ2, то результативность по­иска будет 1.0, поскольку все содержимое М2 находится в Ml. Теперь пред­положим, что нет никакой локализации, т.е. все обращения происходят в случайном порядке. В этом случае результативность поиска линейно зависит от относительного размера памяти. Например, если объем Ml равен половине объема М2, то в любой момент времени на уровне Ml находится ровно поло­винавсех данных уровня М2, и результативность поиска равна 0.5. Однако на практике проявляется эффект локализации обращений. На графике пока­зано влияние локализации средней и сильной степени.


 

Таким образом, сильная локализация позволяет достичь высокой результативности поиска даже при сравнительно небольших объемах памяти верхнего уровня. Например, многочисленные исследования подтверждают, что при сравнительно небольшом размере кэша результативность поиска превышает 0.75, причем этот показатель не зависит от размера основной памяти (см., например, [AGAR89], [PRZY88], [STRE83] и [SMIT82]). В то время как типичный размер основной памяти в наши дни составляет многие мегабайты, вполне достаточным является кэш, емкость которого лежит в пре­делах от 1 до 128 Кбайт. При рассмотрении виртуальной памяти и дискового кэша можно сослаться на другие исследования, подтверждающие справедливость такого же утверждения, а именно — благодаря локализации относительно малый размер Ml обеспечивает высокую результативность поиска.

Теперь можно перейти к последнему из перечисленных ранее вопросов: удовлетворяет ли относительный размер двух уровней памяти требованиям стоимости? Ответ очевиден: да. Если для повышения производительности достаточно добавить верхний уровень сравнительно небольшой емкости, то средняя стоимость обоих уровней в расчете на один бит будет лишь немного превосходить стоимость бита более дешевой памяти второго уровня.

 

ПРИЛОЖЕНИЕ Б. УПРАВЛЕНИЕ ПРОЦЕДУРАМИ

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