- •Довгий Павел Семенович Высокопроизводительные системы
- •Оценка производительности вычислительных систем
- •Пиковая и реальная производительность вс.
- •Опирается на число команд, выполняемых компьютером в единицу премени. Единицы измерения этой оценки, как правило, является mips (million instruction per second).
- •Классическими примерами тестов фирм производителей компьютеров можно считать:
- •Принцип построения и организиции кэш-памяти.
- •Концепция кэш памяти.
- •Принципы отображения блоков оп на блоки кэш памяти.
- •Основные принципы реализации стратегии lru.
- •Стратегия замещения блоков в кэш память.
- •Обобщение понятия кэШирования.
- •Страничная организация памяти.
- •Упрощенная схема преобразования линейного адреса в физический
- •Ускорение процесса преобразования линейного адреса в физический
Стратегия замещения блоков в кэш память.
При использовании любой стратегии отображения, кроме принципа прямого отображения, между некоторым множеством блоков ОП существует конкуренция на захват места в КЭШ памяти. В связи с этим возникает прблема выбора блока, кандидата на удаления из КЭШ памяти, при очередном КЭШ промахе. Эта проблема решается с использованием одной из стратегий замещения блока. В зависимости от используемого принципа отображения, выбор кандидата на удаление из КЭШ памяти осуществляется так:
-
Для полностью ассоциативной КЭШ памяти на всем множестве блоков.
-
Для КЭШ памяти ассоциативной по множеству, в пределах блоков принадлежащих выбранному массиву.
-
Для секторированной КЭШ памяти внутри множества секторов.
Несмотря на существование достаточно большого числа стратегий замещений (несколько десятков) наибольшее распространение получили следующие: (все они реализуются на аппаратном уровне)
-
Случайное замещение (RAND) не требует никакой истории, самый простой в реализации.
-
Стратегия с использованием принципа FIFO, удалению подлежит блок, который наиболее давно был помещен в КЭШ память.
-
LFU – Least Frequenly Used наименее часто используемый блок. Собирается статистика по частоте обращения между двумя последовательными КЭШ промахами.
-
LRU – Least Resentely Used В соответствии с ней удалению подлежит блок, к которому наиболее долго не было обращений.
Сложность реализации приведенных стратегий возрастает 1->4. Эффективность использования возрастает также. При реализации КЭШ в современных процессорах наибольшее распространение получила стратегия LRU.
Основные принципы реализации стратегии lru.
Наиболее просто если эта стратегия реализуется для частично ассоциативной памяти с организацией 2WSA – Way Set Associative. 2-а блока внутри множества. В этом случае каждый блок КЭШ памяти снабжается спец битом обращения (обычно бит used). При обращении к какому-либо блоку множества осуществляется установка этого бита для одного блока и сброс для другого. В ситуации КЭШ промаха из 2-х блоков множества удаляется блок со сброшенным битом обращения. Можно ли обойтись одним блоком, и как тогда работать? При увеличении числа блоков внутри множества сложность реализации стратегии существенно возрастает. Классический способ реализации стратегии LRU является т.н. LRU – стек. Автоматная модель LRU-стека для выбора одного кандидата из 3-х приведена на рис5 на самостоятельное изучение. Как будет выглядеть граф для 4-х блоков? В связи с тем, что для организации КЭШ памяти с 4WSA аппаратная реализация принципа LRU выглядит достаточно сложно, в КЭШ памяти современных процессорах (INTEL) для выбора блока кандидата на удаление используется упрощенная стратегия LRU, называемая псевдо LRU (Pseudo LRU).
--------------------------20,11,03------------------------------------------------------------------------------------------
Реализация стратегии PLRU основывается на использовании 3-х битов (b0,b1,b2). Для каждого множества блоков КЭШ памяти. Модификация этих битов осуществляется при любом обращении к блоку в рамках этого множества (по чтению и по записи). Алгоритм установки битов LRU приведен на рис7а. Выбор блока, кандидата на удаление (одного из 4-х в рамках множества) осуществляется на основе значений битов LRU в соответствии с таблицей.
|
Значения битов LRU |
Блок, кандидат на удаление |
||
|
B0 |
B1 |
B2 |
|
|
0 |
0 |
Х |
L0 |
|
0 |
1 |
X |
L1 |
|
1 |
X |
0 |
L2 |
|
1 |
X |
1 |
L3 |
Алгоритм выбора блока кандидата на удаление, реализованный в процессорах Intel, в некоторых случаях выбирает не последний блок к которому осуществлялось обращение, а предпоследний (отсюда и название PLRU). Примером использования нестрогого принципа LRU может служить временная последовательность обращений к блокам следующего вида:
|
L0 |
L2 |
L3 |
L1 |
|
T1 |
T2 |
T3 |
T4 |
В соответствии с рассмотренной последовательностью обращений кандидатом на удаление должен быть блок L0 с наиболее ранним по времени обращением. В соответствии же с таблицей, комбинация битов LRU на момент времени T4 (100) соответствует выбор блока L2; не наиболее раннего, а предпоследнего. По мнению специалистов стратегия РLRU лишь немногим уступает по эффективности. При каком количестве блоков LRU можно реализовать чистую стратегию LRU? Наихудшая, но и самая простая стратегия: случайный выбор блока по мнению большинства специалистов отличается от стратегии LRU на 10-15%.
Проблема согласования данных в ОП и КЭШ памяти.
Стратегии обновления ОП.
После того как некоторый блок ОП копируется в КЭШ память в вичислительной системе существует 2-е копии одного блока данных. Копия блока в КЭШ памяти может быть изменена при обращении к ней со стороны ЦП по записи. Если это изменение не отслеживать для копии в ОП, то она становиться не актуальной, по стравнению с изменением копии в КЭШ памяти. С Другой стороны к ОП кроме ЦП могут обращаться так же устройства ввода вывода ко каналу прямого доступа. В связи с этим копия блока в ОП может измениться по сравнению с ее содержимым в КЭШ памяти. Еще более сложной эта проблема согласования становиться в много процессорных системах, где каждый процессор имеет собственных КЭШ, а ОП является разделяемым ресурсом. В литературе эта проблема называется «Проблема поддержания информационной целостности (когерентности) данных в КЭШах и ОП». Наиболее простыми и раними по времени их появления являются 2-е основные альтернативные стратегии: сквозная запись (WT – Write Through); обратная запись (WB – Write Back). Стратегия WT предполагает при любом обращении к КЭШ памяти по записи, параллельно осуществлять модификацию копии блока в ОП. Стратегия WB предполагает осуществлять содификацию блока ОП при изменении его копии в КЭШ памяти только в тот момент, когда этот блок в КЭШ памяти стаковиться кандидатом на удаление и требуется его обратная пересылка в ОП. Использование стратегии WT предполагает полное поддержание актуальности копии блоков ОП при их модификациях в КЭШ памяти. Отрицательной стороной такого подхода являются большие затраты времени на перезапись всех изменений в ОП. В свою очередь использование стратегии WB с одной стороны уменьшает затраты времени для копирования блоков ОП, но с другой стороны на некоторое время нарушается согласование содержимого копии в КЭШ памяти и ОП. Существуют несколько модификаций стратегий WT и WB. Основными являются:
|
WT |
WTWA (WT with Allocation с распределением) |
|
WTNWA (WT non with Allocation безраспределения) |
Отличие модификации стратегии WT проявляются в условиях КЭШ промаха при записи. Использование WTWA предполагает первоначальное копирование блока из ОП в КЭШ память, а затем параллельную запись в ОП и в КЭШ память. В свою очередь стратегия WTNWA предполагает выполнение операции запись только в ОП без копирования блока в КЭШ память.
|
WB |
FWB |
FRWB |
Flag WB |
|
RWB |
Registor WB |
При использование модификации FWB предполагается наличие у каждого блока в КЭШ памяти спец бита (флага) модификации, установка которого производиться при выполнении обращения к этому блоку по записи. Использование флага модификации позволяет предотвратить лишние пересылки блоков кандидатов на удаление из КЭШ памяти в ОП. Если для блока кандидата на удаление флаг модификации сброшен, то отпадает необходимость его пересылки в ОП. Модификация RWB предролагает использование быстрого буфера (регистровой памяти) для пересылки блока, кандидата на удаление из КЭШ памяти в ОП. Благодаря наличию этого буфера новый блок, пересылаемый из ОП в КЭШ память становиться наиболее быстро доступным ЦП по сравнению с предварительной пересылкой удаляемого блока не в буфер, а прямо в ОП. Пересылка удаляемого блока из буфера в ОП реализуется при освобождении шины ОП от более важных пересылок. На рис 1б предполагается использование стратегии WTNWA и FWB.
-----------------26,11,03---------------------------------------------------------------------------------------------------
В процессорах предназначенных для использование в много процессорных системах, применяются более сложные стратегии поддержания когерентности данных. Одной из таких стратегий являются протокол MESI, реализованной во внутренней КЭШ памяти процессоров Pentium, а так же Power PC. Название этого протокала соответствует определенным им состоянием блоков (строк) КЭШ памяти: M – Modified, E – Exclusive, S – Shared (разделяемая), I – Invalid (недостоверная). Эти состояния имеют следующий смысл.
М – стока присудствует в КЭШ памяти только этого процессора и модифицирована, т.е. отличается от копии строки в ОП.
Е – строка присутствует в КЭШ памяти, только этого процессора, но не модифицирована, т.е. ее копия в ОП действительна.
S – строка присутствует в КЭШ памяти, но потенциально может присутствовать в КЭШ памяти других процессоров, копия строки в ОП действительна.
I – строка содержит недостоверные (не обновленные) данные.
Более детально состояния строк КЭШ памяти можно описать таблицей.
|
|
Состояния строк |
|||
|
Характеристики строки |
M |
E |
S |
I |
|
Достоверные данные в строке КЭШа |
Да |
Да |
Да |
Нет |
|
Достоверные данные в копии строк в ОП |
Нет |
Да |
Да |
Нет |
|
Наличие копии строки в других КЭШах |
Нет |
Нет |
Возможно |
Возможно |
|
Реакция на запись в строку КЭШа |
Не выводиться на магистраль |
Не выводиться на магистраль |
Выводиться на магистраль и другие КЭШи |
Выводиться прямо на магистраль |
