Все теоритические билеты по Архитектуре ЭВМ в основном были написаны, кроме: 8.4; 13.4; 14.4; 15.4. Задачи будут позже.
3.2 KiB
Кэш прямого отображения(Direct mapped cache). Поля строки/блока кэша. Проецирующая функция.
Кэш прямого отображения - стратегия размещения блока основной памяти в кэше, где блок размещается в одном строго определенном месте, определяемом функцией размещения. Существует три стратегии размещения или проецирования блока основной памяти в кэш:
- Direct mapped cache
Строго в одно определенное место, определяемое функцией проецирования: index = (адрес блока) MOD (число блоков в кэше) 2) Fully associative cache
В любом месте (нет проецирующей функции). 3) Set associative cache:
В ограниченном наборе мест. Набор - группа блоков в кэше. Блок проецируется строго на один набор, но он может размещен в любом месте набора. Функция проецирования: index = (адрес блока) MOD (число блоков в кэше) Кэш, имеющий n блоков в наборе называется $n$-канальным наборно-ассоциативным ($n$-way set-associative). Функция проецирования - функция, определяющая место размещения данных из основной памяти в кэше. Для любой строки кэша нужно хранить:
- Кэшированные данные.
- Tag - адрес оперативной памяти, из которой данные кэшированы. Если адрес совпадает с адресом, к которому мы обратились, значит там наши данные. В противном случае надо читать данные из памяти.
- Бит валидности - признак того, что содержимое записи кэша актуально, т.е строка действительно содержит закэшированные данные. 32-битный адрес разбивается на следующие поля:
- Последние 2 бита - биты смещения.
Относятся к адресации внутри кэш-блока, т.е это внутри блока байты с номерами 0,1,2,3. 2) Предыдущие 3 бита - биты, которые были получены от операции: (адрес блока) MOD (число блоков в кэше) 3) Все остальное - тег. Возможные адреса блоков, которые могут храниться в конкретной записи в кэше. Если тэг из кэша равен тэгу из адреса, по которому обратились, и бит валидности установлен, то диагностируем попадание и берем данные из кэша.