114
Комментарий:
|
← Версия 7 от 2016-04-10 14:44:49 ⇥
4445
|
Удаления помечены так. | Добавления помечены так. |
Строка 2: | Строка 2: |
'''TODO''' | |
Строка 4: | Строка 3: |
1. Зачем. 1. Виды 1. стратегии 1. пример |
1. Зачем.Локальность.За всё время существования вычислительной техники устойчиво наблюдаются два явления: * Основная память работает значительно медленнее процессора. * Обращения к памяти происходят локально в пространстве и времени. Эти замечательные факты позволяют увеличить скорость выполнения вычислений, создав кэш. Кэш — промежуточный буфер с быстрым доступом, содержащий информацию, которая может быть запрошена с наибольшей вероятностью. 1. Организация буферизации: * Вся оперативная память может быть разбита на блоки. * Кэш состоит из строк вида: бит достоверности, тэг, блок, возможная дополнительная информация. * Обмен между ОЗу и кэше происходит блоками. * Среднее время доступа = время доступа к нужному полю кэш-строки + ( 1 - коэффициент совпадения) время доступа к основной памяти. 1. Виды: * прямого отображения * полностью ассоциативный * n-канальный множественно-ассоциативный кэш 1. Промахи 1. стратегии записи: * Сквозная. * Обратная. * С процессом записи связана еще одна проблема: а что происходит, если нужно записать что-либо в ячейку, которая в текущий момент не находится в кэш-памяти? Должны ли данные переноситься в кэш-память или просто записываться в основную память? Ни один из вариантов не является во всех отношениях лучшим. В большинстве разработок, в которых применяется обратная запись, данные переносятся в кэш-память. Эта технология называется заполнением по записи (write allocation). С другой стороны, в тех разработках, где применяется сквозная запись, обычно элемент в кэш-память при записи не помещается, поскольку эта возможность усложняет разработку. Заполнение по аписи полезно только в том случае, если имеют место повторные записи в одно и то же слово или в разные слова в пределах одной строки кэш-памяти. 1. Разделение кэш-памяти на память данных и память инструкций. Разделенная кэш-память позволяет осуществлять параллельный доступ, а общая — нет. К тому же, поскольку команды обычно не меняются во время выполнения, содержание командной кэш-памяти никогда не приходится записывать обратно в основную память, что упрощает реализацию. 1. Уровни кэш-памяти. 1. пример из Marsa Tools-Data Cache Simulator [[attachment:column-major.asm |column-major.asm ]] [[attachment:row-major.asm|row-major.asm]] 1. пример на предсказании не перехода. 1. Управление кэшированием. Текущие абстракции. [[http://compress.ru/article.aspx?id=23541|Что такое кэш процессора, и как он работает]] [[http://iproc.ru/parallel-programming/lection-7/|Кэш процессора]] |
Кэш-память
- Зачем.Локальность.За всё время существования вычислительной техники устойчиво наблюдаются два явления:
- Основная память работает значительно медленнее процессора.
- Обращения к памяти происходят локально в пространстве и времени.
- Организация буферизации:
- Вся оперативная память может быть разбита на блоки.
- Кэш состоит из строк вида: бит достоверности, тэг, блок, возможная дополнительная информация.
- Обмен между ОЗу и кэше происходит блоками.
- Среднее время доступа = время доступа к нужному полю кэш-строки + ( 1 - коэффициент совпадения) время доступа к основной памяти.
- Виды:
- прямого отображения
- полностью ассоциативный
- n-канальный множественно-ассоциативный кэш
- Промахи
- стратегии записи:
- Сквозная.
- Обратная.
- С процессом записи связана еще одна проблема: а что происходит, если нужно записать что-либо в ячейку, которая в текущий момент не находится в кэш-памяти? Должны ли данные переноситься в кэш-память или просто записываться в основную память? Ни один из вариантов не является во всех отношениях лучшим. В большинстве разработок, в которых применяется обратная запись, данные переносятся в кэш-память. Эта технология называется заполнением по записи (write allocation). С другой стороны, в тех разработках, где применяется сквозная запись, обычно элемент в кэш-память при записи не помещается, поскольку эта возможность усложняет разработку. Заполнение по аписи полезно только в том случае, если имеют место повторные записи в одно и то же слово или в разные слова в пределах одной строки кэш-памяти.
- Разделение кэш-памяти на память данных и память инструкций.
- Разделенная кэш-память позволяет осуществлять параллельный доступ, а общая — нет. К тому же, поскольку команды обычно не меняются во время выполнения, содержание командной кэш-памяти никогда не приходится записывать обратно в основную память, что упрощает реализацию.
- Уровни кэш-памяти.
- пример из Marsa
- Tools-Data Cache Simulator
- пример на предсказании не перехода.
- Управление кэшированием. Текущие абстракции.