Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
18
Добавлен:
31.05.2015
Размер:
1.54 Mб
Скачать

Lection 14

Кэширование памяти (продолжение)

Физический факультет, ЭВУ и системы, 7 семестр,2013 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2013 Dr. Mokhovikov

Outline

Структура записи в кэш :

строка кэша;

размер тэга и индекса .

Уровни кэша :

Cache L1;

Cache L2;

Cache L3.

Кэш жертв.

Способы отображения основной памяти на кэш :

случайное отображение;

детерминированное отображение;

комбинирование отображение.

Архитектуры кэша:

кэш прямого отображения;

наборно-ассоциативный кэш;

полностью ассоциативный кэш.

Список используемой литературы

Физический факультет, ЭВУ и системы, 7 семестр,2013 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2013 Dr. Mokhovikov

 

 

 

Структура записи в кэш

Типичная структура записи в кэше

 

 

 

 

 

dynamic

static

 

 

Блок данных

тег

 

индекс

смещение

бит

 

актуальности

 

 

 

 

 

непосредственную копию

 

 

 

 

данная запись содержит

данных из основной памяти.

 

 

 

 

актуальную (самую свежую) копию.

Адрес памяти разделяется (от старших бит к младшим)

 

 

 

на тег, индекс и смещение.

 

Для абстрактной системы с макс.

Размер индекса зависит от

При обращении к такой кэшу происходит

 

 

 

 

 

кэшируемым объёмом RAM в

 

размеров сегмента кэш-

 

сравнение тега адреса с тегами всех

1Гб и кэш-памятью (неважно

 

памяти и строки.

 

строк кэша, причем это сравнение

какого уровня) размером в 1Мб с

Фактически, его должно быть

происходит за один такт. если в

2-канальной ассоциативностью

достаточно для нумерации

результате сравнения тег адреса

совпадет с тегом одной из строк, то это

потребуется ровно 11 бит для

 

всех строк в пределах

 

 

 

значит, что произошло КЭШ попадание, и

каждого тэга.

 

отдельно взятого сегмента.

 

нужный байт будет прочитан из

 

 

 

 

 

Другими словами, для адресации

Например, если имеется

 

выбранной строки по полю

любым отдельным тэгом 1Гб /

сегмент кэш-памяти в 512Кб

смещения. Если же тег адреса не

512Кб = 2048 сегментов памяти

с 32-байтными строками, то

совпал ни с одним тегом строк, то это –

потребуется log2(2048) = 11 бит.

размер индекса составит

 

промах и нужная строка в кэша

 

отсутствует.

 

 

log2(512Кб / 32б) = 14 бит.

 

 

 

Физический факультет, ЭВУ и системы, 7 семестр,2013 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2013 Dr. Mokhovikov

 

 

 

 

Строка кэша

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Блок данных

тег

индекс

 

смещение

бит

 

 

 

актуальности

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Каждая строка в каком-либо сегменте имеет свой постоянный номер, который не

подлежит изменению.

Если имеется N сегментов кэш-памяти, => N строк кэш-памяти с одинаковым индексом. Увеличение размера строки при неизменном размере сегмента приведёт к уменьшению

размера индекса, а также и к уменьшению их количества вследствие уменьшения числа строк.

В то же время увеличение размера строки приводит к увеличению задержек при

загрузке/выгрузке строк из других уровней кэш-памяти или RAM.

К тому же, больший размер строки ухудшает эффективность кэш-памяти вследствие

большей степени её засорения ненужной информацией.

Среднее время доступа к кэшу можно определить следующим образом: tср = tобр + Рпр * tпр, где tобр - время обращения при попадании;

tпр - потери времени при промахе; Рпр– вероятность промаха.

Физический факультет, ЭВУ и системы, 7 семестр,2013 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2013 Dr. Mokhovikov

Кэш-память: Размер строки, тэга и индекса

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.Как правило, поля данных защищаются либо

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.Ко всему прочему, каждая строка кэш-памяти

 

 

 

 

 

 

 

 

 

 

 

проверкой чётности (parity checking) на уровне

 

 

 

обычно обладает некоторой избыточной

 

 

 

 

 

 

 

 

 

 

 

 

 

отдельных байт, либо одним из протоколов

 

 

 

информацией для надлежащего контроля за

 

 

 

 

 

 

 

 

 

 

 

 

 

проверки и коррекции ошибок (ECC — Error

 

 

 

ошибками.

 

 

 

 

 

 

 

 

 

 

 

 

 

Checking and Correcting) на уровне целого поля,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

большинство из которых основывается на

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

алгоритме Хэмминга (the Hamming algorithm).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.Тэги могут защищаться однобитовой

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

проверкой чётности, хотя эта практика

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

распространена в значительно меньшей

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

степени, чем защита полей данных.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.Тем не менее, какой бы из алгоритмов защиты

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

информации ни был выбран, его обслуживающая

 

 

 

 

 

 

 

 

 

 

 

 

логика привнесёт сложности в существующую

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

разработку и неминуемо отразится на задержках при

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5.Если точнее, то при каждой операции

 

 

 

 

 

 

 

 

 

 

 

 

работе.

 

 

 

 

 

 

чтения контрольная сумма поля данных

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

должна быть сосчитана и сверена с

 

 

 

 

 

 

 

 

 

 

 

 

 

 

сохранённой. Наиболее тяжёлым является

 

 

 

 

 

 

 

 

 

 

 

 

 

 

случай частичной записи в

 

 

 

 

 

 

 

 

 

 

 

 

 

 

действительную строку, т.к. контрольная

 

 

 

 

 

 

 

 

 

 

 

 

 

 

сумма должна быть сосчитана дважды: до и

 

 

 

 

 

 

 

 

 

 

 

 

 

 

после изменения строки.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Физический факультет, ЭВУ и системы, 7 семестр,2013 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2013 Dr. Mokhovikov

Уровни кэша

Кэш центрального процессора разделён на несколько уровней. В универсальном процессоре в настоящее время число уровней может достигать 3.

Кэш-память уровня N+1 как правило больше по размеру и медленнее по скорости доступа и передаче данных, чем кэшпамять уровня N.

Самой быстрой памятью является кэш первого уровня — L1-cache. По сути, она является неотъемлемой частью процессора, поскольку расположена на одном с ним кристалле и входит в состав функциональных блоков.

В современных процессорах обычно кэш L1 разделен на два кэша: кэш команд (инструкций) и кэш данных (в соответствии с Гарвардской архитектурой)

Физический факультет, ЭВУ и системы, 7 семестр,2013 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2013 Dr. Mokhovikov

L1 Cache

Большинство процессоров без L1 кэша не могут функционировать.

L1 кэш работает на частоте процессора, и, в общем случае, обращение к нему может производиться каждый такт.

Зачастую является возможным выполнять несколько операций чтения/записи одновременно.

Латентность доступа обычно равна 2−4 тактам ядра, т.е. время доступа для выполнения элементарных операций.

Объём обычно невелик — не более 128 Кбайт.

Физический факультет, ЭВУ и системы, 7 семестр,2013 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2013 Dr. Mokhovikov

Cache L2

Вторым по быстродействию является L2-cache — кэш второго уровня, обычно он расположен на кристалле, как и L1.

В старых процессорах — набор микросхем на системной плате. Объём L2 кэша от 128 Кбайт до 1−12 Мбайт.

В современных многоядерных процессорах кэш второго уровня, находясь на том же кристалле, является памятью раздельного пользования — при общем объёме кэша в nM Мбайт на каждое ядро приходится по nM/nC Мбайта, где nC количество ядер процессора.

Обычно латентность L2 кэша, расположенного на кристалле ядра, составляет от 8 до 20 тактов ядра.

Физический факультет, ЭВУ и системы, 7 семестр,2013 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2013 Dr. Mokhovikov

Cache L3

Кэш третьего уровня наименее быстродействующий, но он может быть очень внушительного размера — более 24 Мбайт. L3 кэш медленнее предыдущих кэшей, но всё равно значительно быстрее, чем оперативная память.

В многопроцессорных системах находится в общем пользовании и предназначен для синхронизации данных различных L2.

Иногда существует и 4 уровень кэша, обыкновенно он расположен в отдельной микросхеме. Применение кэша 4 уровня оправдано только для высоко производительных серверов и мейнфреймов.

Физический факультет, ЭВУ и системы, 7 семестр,2013 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2013 Dr. Mokhovikov

Уровни кэша

Проблема синхронизации между различными кэшами (как одного, так и множества процессоров) решается когерентностью кэша.

Существует 3 варианта обмена информацией между кэш-памятью различных уровней

инклюзивный

эксклюзивный

неэксклюзивный

Инклюзивная архитектура предполагает дублирование информации кэша верхнего уровня в нижнем

Эксклюзивная кэш-память предполагает уникальность информации, находящейся в различных уровнях кэша

Неэксклюзивный

кэш может вести

себя как угодно.

Физический факультет, ЭВУ и системы, 7 семестр,2013 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2013 Dr. Mokhovikov