Arch: new
Все теоритические билеты по Архитектуре ЭВМ в основном были написаны, кроме: 8.4; 13.4; 14.4; 15.4. Задачи будут позже.
This commit is contained in:
41
2 курс/1 семестр/Архитектура ЭВМ/Лекции/20 билет/2.md
Normal file
41
2 курс/1 семестр/Архитектура ЭВМ/Лекции/20 билет/2.md
Normal file
@ -0,0 +1,41 @@
|
||||
#### Причины кэш-промахов. Уменьшение частоты промахов: дополнительный кэш «жертв», разделение кэша прямого доступа на 2 части, программная предвыборка данных, аппаратная предвыборка команд и данных.
|
||||
|
||||
**Причины кэш промахов:**
|
||||
|
||||
1) **Вынужденный**
|
||||
|
||||
При первом обращении к блоку. Блок должен быть помещен в кэш. Также называется промах холодного старта или промах первого обращения. При запуске программы miss rate $~ 100\%$.
|
||||
Решаются увеличением объема блока и предвыборкой.
|
||||
2) **Ограниченная емкость**
|
||||
|
||||
В случае, когда кэш не может вместить все блоки, востребованные кодом, и возникает «перетасовка» блоков (рабочий набор много больше емкости кэша).
|
||||
Решается увеличением объема кэша.
|
||||
3) **Конфликты**
|
||||
|
||||
В наборно-ассоциативном или кэше с прямым отображением стратегия размещения блоков вызывает конкуренцию нескольких блоков за одну строку кэша;
|
||||
Также называется промахом из-за коллизий или интерференции.
|
||||
**Способ совместить низкое время доступа кэша с прямым отображением и низкую частоту промахов из-за конфликтов 2-х канального наборно-ассоциативного кэша:**
|
||||
|
||||
- Разделим кэш. При промахе проверяем вторую половину кэша, если теперь происходит попадание, то это - «псевдо-попадание» (медленнее нормального).
|
||||
- Недостаток: согласование конвейера CPU с переменной задержкой доступа в кэш ( 1 или 2 такта)Лучше для кэша, не связанного непосредственно с CPU (L2).
|
||||
- Процессор может анализировать шаблон обращения к памяти и может пытаться предсказать адреса, по которым будет обращение к памяти в ближайшее время. Процессор сам инициирует доп. обращение к памяти, выполняя спекулятивную загрузку данных.
|
||||
**Уменьшаем частоту промахов с помощью программной предвыборки данных:**
|
||||
- Загрузка данных в регистры.
|
||||
- Предвыборка в кэш.
|
||||
- Спец. команды предвыборки, не вызывающие сбоев; разновидность спекулятивности.
|
||||
- Обработка команд отнимает время.
|
||||
|
||||
Время на обработку команд предвыборки должно оправдываться сокращением промахов.
|
||||
|
||||
- Высокий уровень суперскалярности снижает «цену» выдачи доп. команд и одновременно повышает «цену» промахов кэша.
|
||||
**Уменьшаем частоту промахов с помощью программной оптимизации компилятором:**
|
||||
**Инструкции:**
|
||||
- Расположение процедур в памяти так, чтобы сократить промахи из-за конфликтов.
|
||||
- Профилирование для обнаружения конфликтов (используя собственное ПО).
|
||||
|
||||
**Данные:**
|
||||
|
||||
- Слияние массивов: увеличение пространственной локальности объединением нескольких массивов в 1
|
||||
- Согласование вложенности циклов: согласование уровня вложенности циклов для обработки в соответствии с порядком хранения данных в памяти
|
||||
- Слияние циклов: составление из независимых циклов, обрабатывающих одни данные, общего.
|
||||
- Поблочная обработка массивов: улучшение временной локальности за счет повторной обработки блоков данных вместо полного обхода по строкам и столбцам.
|
Reference in New Issue
Block a user