- •Пояснительная записка к курсовому проекту
- •1. Теоретическая часть
- •История
- •Функционирование
- •Политика записи при кэшировании
- •Кэширование интернет-страниц
- •Кэширование результатов работы
- •Кэш центрального процессора
- •Уровни кэша
- •Организация кэш
- •Кэширование внешних накопителей
- •Кэширование, выполняемое операционной системой
- •Алгоритм работы кэша с отложенной записью
- •Алгоритм вытеснения
- •2. Практическая часть
- •Задание на проектирование алу
- •Проектирование операционного автомата алу
- •Определение форматов данных
- •2.2.2 Объединенная гса деления и дизъюнкции
- •2.2.3. Разработка структуры операционного автомата
- •2.2.4. Список микроопераций и логических условий, реализуемых в оа
- •2.2.5 Микропрограмма выполняемых в алу операций
- •Проектирование управляющего автомата алу
- •2.3.1 Определение формата микрокоманд
- •Кодирование микроопераций и логических условий
- •Структурная схема управляющего автомата
- •2.3.4 Содержимое пзу микропрограмм
Организация кэш
Принципы размещения блоков в кэш-памяти определяют три основных типа их организации:
-
Если каждый блок основной памяти имеет только одно фиксированное место, на котором он может появиться в кэш-памяти, то такая кэш-память называется кэшем с прямым отображением (direct mapped). Это наиболее простая организация кэш-памяти, при которой для отображение адресов блоков основной памяти на адреса кэш-памяти просто используются младшие разряды адреса блока. Таким образом, все блоки основной памяти, имеющие одинаковые младшие разряды в своем адресе, попадают в один блок кэш-памяти.
Рис. 1.2. Кэш с прямым отображением
-
Если некоторый блок основной памяти может располагаться на любом месте кэш-памяти, то кэш называется полностью ассоциативным (fully associative).
Рис. 1.3. Полностью ассоциативный кэш
-
Если некоторый блок основной памяти может располагаться на ограниченном множестве мест в кэш-памяти, то кэш называется множественно-ассоциативным (set associative).
Рис. 1.4. Множественно-ассоциативный кэш
Ассоциативность ‑ одна из фундаментальных характеристик кэш-памяти — уровень ассоциативности — отображает её логическую сегментацию. Дело в том, что последовательный перебор всех строк кэша в поисках необходимых данных потребовал бы десятков тактов и свёл бы на нет весь выигрыш от использования встроенной в ЦП памяти. Поэтому ячейки ОЗУ жёстко привязываются к строкам кэш-памяти (в каждой строке могут быть данные из фиксированного набора адресов), что значительно сокращает время поиска. Обычно множество представляет собой группу из двух или большего числа блоков в кэше. Если множество состоит из n блоков, то такое размещение называется множественно-ассоциативным с n каналами (n-way set associative). Для размещения блока прежде всего необходимо определить множество. Множество определяется младшими разрядами адреса блока памяти (индексом).
Далее, блок может размещаться на любом месте данного множества.
Диапазон возможных организаций кэш-памяти очень широк: кэш-память с прямым отображением есть просто одноканальная множественно-ассоциативная кэш-память, а полностью ассоциативная кэш-память с m блоками может быть названа m-канальной множественно-ассоциативной. В современных процессорах как правило используется либо кэш-память с прямым отображением, либо двух- (четырех-) канальная множественно-ассоциативная кэш-память. [4-5]
-
Кэширование внешних накопителей
Многие периферийные устройства хранения данных используют кэш для ускорения работы, в частности, жёсткие диски используют кэш-память от 1 до 64 Мбайт, устройства чтения CD/DVD/BD-дисков также кэшируют прочитанную информацию для ускорения повторного обращения. Операционная система также использует часть оперативной памяти в качестве кэша дисковых операций (в том числе для внешних устройств, не обладающих собственной кэш-памятью, в том числе жёстких дисков, flash-памяти и гибких дисков).
Применение кэширования внешних накопителей обусловлено следующими факторами:
-
скорость доступа процессора к оперативной памяти во много раз больше, чем к памяти внешних накопителей;
-
некоторые блоки памяти внешних накопителей используются несколькими процессами одновременно и имеет смысл прочитать блок один раз, затем хранить одну копию блока в оперативной памяти для всех процессов;
-
доступ к некоторым блокам оперативной памяти происходит гораздо чаще, чем к другим, поэтому использование кэширования для таких блоков в целом увеличивает производительность системы;
-
для некоторых блоков памяти внешних накопителей не требуется непосредственной записи после модификации, и использование кэша для таких блоков оптимизирует использование ввода-вывода. [5]