Similar presentations:
Кэширование данных. Кэш процессора
1.
Кэширование данных. Кэш процессора.Институт Информационных Технологий
Челябинский Государственный Университет
2.
Кэширование данныхКэш кеш — промежуточный буфер с быстрым доступом, содержащий
информацию, которая может быть запрошена с наибольшей вероятностью.
Доступ к данным в кэше идёт быстрее, чем выборка исходных данных из
основной памяти, за счёт чего уменьшается среднее время доступа и
увеличивается общая производительность компьютерной системы.
Основная
память.
Источник
запросов к
памяти
Кэш память
Большая по
объему но
медленная
3.
Кэширование данныхКэш веб-обозревателя
Примеры
кэширования
Браузер
Кэш браузера
Интернет
Миллионы терабайт
информации
4.
Кэширование данныхКэш жесткого диска
Примеры
кэширования
Обращение к
жесткому диску
Кэш жесткого
диска
Несколько
мегабайт
Поверхность жесткого диска
Гигабайты информации
5.
Кэширование данныхARP кэш
Примеры
кэширования
ARP запрос
ARP кэш
Широковещательный
запрос по сети
Хост – получатель фрейма
6.
Кэширование данныхОбщие принципы функционирования кэш памяти
Содержимое кэш-памяти
представляет собой
совокупность записей:
значение элемента данных;
адрес элемента данных в
основной памяти;
дополнительная информация;
При каждом обращении к основной
памяти просматривается
содержимое кэш-памяти
Если данные обнаруживаются – они
считываются, результат передается
источнику запроса (кэш-попадание)
Если данные отсутствуют (кэшпромах)– они считываются из
основной памяти и копируются в
кэш
7.
Кэширование данныхСогласование данных
Сквозная запись
(+) Данные всегда согласованы
(- ) Медленная запись
1. Данные в кэше отсутствуют
Если данные в кэше отсутствуют, то
запись выполняется только в
основную память
2. Данные находятся в кэше
Если данные находятся в кэше, то запись
выполняется одновременно в кэш
и основную память
Запрос на
запись
Кэш
Запрос на
запись
Кэш
Основная
память
Основная
память
8.
Кэширование данныхСогласование данных
Обратная запись
(- ) Данные не всегда согласованы
(+) Быстрая запись
1. Данные в кэше отсутствуют
Если данные в кэше отсутствуют, то
запись выполняется только в
основную память
2. Данные находятся в кэше
Если данные находятся в кэше, то запись
производится только в кэш-память, в
описателе данных делается специальная
отметка
Запрос на
запись
Кэш
Запрос на
запись
Кэш
Основная
память
Основная
память
9.
Кэширование данныхОтображение основной памяти на кэш
Ассоциативный поиск со случайным отображением
Элемент оперативной памяти
может быть размещен в
произвольном месте кэшпамяти. Данные
помещаются вместе с их
адресом
Электронная реализация
памяти должна позволять
параллельный поиск
произвольного адреса.
(- ) Дорого в реализации
(+) Эффективное
использование всего
пространства кэш-памяти
10.
Кэширование данныхОтображение основной памяти на кэш
Детерминированный способ отображения
Элемент основной памяти
всегда отображается в
одно и то же место
Кэш-память разделена на
строки, одному номеру
строки соответствует
несколько адресов
основной памяти
(+ ) Дешево в реализации
(-) Неэффективное
использование
пространства кэш-памяти
11.
Кэширование данныхОтображение основной памяти на кэш
Детерминированный способ отображения
12.
Кэширование данныхОтображение основной памяти на кэш
Смешанный способ отображения
(N-Way Set Associative
N-канальная ассоциативность)
Произвольный адрес основной
памяти отображается на
группу адресов кэшпамяти
(+ ) Относительно дешево в
реализации
(+) Относительно эффективное
использование
пространства кэш-памяти
13.
Кэширование данныхАлгоритмы вытеснения
Если свободных записей кэша больше нет, то выполняется алгоритм
вытеснения. Алгоритм вытеснения существенно влияет на
производительность кэша.
Алгоритм Белади
Отбрасывать из кэша ту информацию, которая не понадобится в будущем
дольше всего. Так как в общем случае невозможно предсказать когда
именно в следующий раз потребуется именно эта информация, то на
практике (опять же, в общем случае) подобная реализация
невозможна.
Least Recently Used (LRU): в первую очередь, вытесняется
неиспользованный дольше всех. Этот алгоритм требует отслеживания
того, что и когда использовалось, что может оказаться довольно
накладно.
Общая реализация этого метода требует сохранения «битов возраста» для
строк кэша.
При каждом обращении к строке кэша увеличивается «возраст» всех
остальных строк.
14.
Кэширование данныхАлгоритмы вытеснения
Most Recently Used (MRU): В первую очередь вытесняется
последний использованный элемент.
Такой алгоритм полезен для схем с циклическим сканированием
данных.
Исследования показывают, что для схем случайного доступа и
циклического сканирования больших наборов данных
алгоритмы кэширования MRU имеют больше попаданий по
сравнению с LRU за счет их стремления к сохранению старых
данных.
Псевдо-LRU (PLRU): Для кэшей с большой ассоциативностью
(обычно >4 каналов), цена реализации LRU становится
непомерно высока. В этом случае можно использовать
алгоритм PLRU, требующий для элемента кэша только один
бит.
15.
Кэширование данныхКэш процессора
До начала 80-х память и процессор работали на одной и той же
частоте, с использованием одного тактового генератора.
Доступ в память был лишь немного медленнее доступа к
процессорным регистрам.
Ранние кэши были внешними по
отношению к процессору
с 1980х разрыв в производительности
между процессорами и памятью
стал нарастать. Микропроцессоры
совершенствовались быстрее чем
память. Память становилась узким
местом при достижении полной
производительности от системы.
Решение – ввести в систему
небольшую, но быструю кэш
память, для смягчения разрыва
в производительности
16.
Кэширование данныхКэш процессора – процессоры Intel
Внешняя кэш память впервые добавлена для Intel 80386.
Процессор работал на частоте 20 и более мегагерц.
Системное ОЗУ DRAM, имела задержки до 120 нс.
Кэш был построен на базе быстрой SRAM, которая в те времена
имела задержки около 10 нс.
С выходом процессора Intel 80486 8 КБ кэша было интегрировано
непосредственно на кристалл микропроцессора.
Этот кэш был назван L1. Кэш на материнской плате назван L2.
В процессоре Pentium
впервые используется
раздельный кэш, команд
и данных
17.
Кэширование данныхКэш процессора
В современных многоядерных процессорах может использоваться
несколько кэшей
L1 – максимальное быстродействие, минимальный объем
L2
L3 – минимальное быстродействие, максимальный объем
Пример
Ядро1
Ядро2
Ядро3
Ядро4
L1
L1
L1
L1
L2
L2
L3