ВУЗ:
Составители:
72
составляют менее 10% общего трафика памяти. Желание сделать общий случай
более быстрым означает оптимизацию кэш-памяти для выполнения операций
чтения, однако при реализации высокопроизводительной обработки данных
нельзя пренебрегать и скоростью операций записи.
К счастью, общий случай является и более простым. Блок из кэш-памяти
может быть прочитан в то же самое
время, когда читается и сравнивается его
тег. Таким образом, чтение блока начинается сразу как только становится
доступным адрес блока. Если чтение происходит с попаданием, то блок
немедленно направляется в процессор. Если же происходит промах, то от
заранее считанного блока нет никакой пользы, правда нет и никакого вреда.
Однако при выполнении операции
записи ситуация коренным образом
меняется. Именно процессор определяет размер записи (обычно от 1 до 8
байтов) и только эта часть блока может быть изменена. В общем случае это
подразумевает выполнение над блоком последовательности операций чтение-
модификация-запись: чтение оригинала блока, модификацию его части и запись
нового значения блока. Более того, модификация блока
не может начинаться до
тех пор, пока проверяется тег, чтобы убедиться в том, что обращение является
попаданием. Поскольку проверка тегов не может выполняться параллельно с
другой работой, то операции записи отнимают больше времени, чем операции
чтения.
Очень часто организация кэш-памяти в разных машинах отличается
именно стратегией выполнения записи. Когда выполняется
запись в кэш-память
имеются две базовые возможности:
- сквозная запись (write through, store through) - информация
записывается в два места: в блок кэш-памяти и в блок более низкого
уровня памяти.
- запись с обратным копированием (write back, copy back, store in) -
информация записывается только в блок кэш-памяти.
Модифицированный блок кэш-памяти записывается в основную
память только когда он
замещается. Для сокращения частоты
копирования блоков при замещении обычно с каждым блоком кэш-
памяти связывается так называемый бит модификации (dirty bit). Этот
бит состояния показывает был ли модифицирован блок, находящийся
в кэш-памяти. Если он не модифицировался, то обратное копирование
отменяется, поскольку более низкий уровень содержит ту же самую
информацию, что и кэш
-память.
Оба подхода к организации записи имеют свои преимущества и
недостатки. При записи с обратным копированием операции записи
выполняются со скоростью кэш-памяти, и несколько записей в один и тот же
блок требуют только одной записи в память более низкого уровня. Поскольку в
этом случае обращения к основной памяти происходят
реже, вообще говоря
требуется меньшая полоса пропускания памяти, что очень привлекательно для
мультипроцессорных систем. При сквозной записи промахи по чтению не
составляют менее 10% общего трафика памяти. Желание сделать общий случай
более быстрым означает оптимизацию кэш-памяти для выполнения операций
чтения, однако при реализации высокопроизводительной обработки данных
нельзя пренебрегать и скоростью операций записи.
К счастью, общий случай является и более простым. Блок из кэш-памяти
может быть прочитан в то же самое время, когда читается и сравнивается его
тег. Таким образом, чтение блока начинается сразу как только становится
доступным адрес блока. Если чтение происходит с попаданием, то блок
немедленно направляется в процессор. Если же происходит промах, то от
заранее считанного блока нет никакой пользы, правда нет и никакого вреда.
Однако при выполнении операции записи ситуация коренным образом
меняется. Именно процессор определяет размер записи (обычно от 1 до 8
байтов) и только эта часть блока может быть изменена. В общем случае это
подразумевает выполнение над блоком последовательности операций чтение-
модификация-запись: чтение оригинала блока, модификацию его части и запись
нового значения блока. Более того, модификация блока не может начинаться до
тех пор, пока проверяется тег, чтобы убедиться в том, что обращение является
попаданием. Поскольку проверка тегов не может выполняться параллельно с
другой работой, то операции записи отнимают больше времени, чем операции
чтения.
Очень часто организация кэш-памяти в разных машинах отличается
именно стратегией выполнения записи. Когда выполняется запись в кэш-память
имеются две базовые возможности:
- сквозная запись (write through, store through) - информация
записывается в два места: в блок кэш-памяти и в блок более низкого
уровня памяти.
- запись с обратным копированием (write back, copy back, store in) -
информация записывается только в блок кэш-памяти.
Модифицированный блок кэш-памяти записывается в основную
память только когда он замещается. Для сокращения частоты
копирования блоков при замещении обычно с каждым блоком кэш-
памяти связывается так называемый бит модификации (dirty bit). Этот
бит состояния показывает был ли модифицирован блок, находящийся
в кэш-памяти. Если он не модифицировался, то обратное копирование
отменяется, поскольку более низкий уровень содержит ту же самую
информацию, что и кэш-память.
Оба подхода к организации записи имеют свои преимущества и
недостатки. При записи с обратным копированием операции записи
выполняются со скоростью кэш-памяти, и несколько записей в один и тот же
блок требуют только одной записи в память более низкого уровня. Поскольку в
этом случае обращения к основной памяти происходят реже, вообще говоря
требуется меньшая полоса пропускания памяти, что очень привлекательно для
мультипроцессорных систем. При сквозной записи промахи по чтению не
72
Страницы
- « первая
- ‹ предыдущая
- …
- 70
- 71
- 72
- 73
- 74
- …
- следующая ›
- последняя »
