Теоретическое обоснование
Цель: изучить конструкцию и алгоритмы работы кэш-памяти
Блок кэш-памяти имеет следующие параметры:
• объем кэша 64 Кбайт;
• размер блока, которым обмениваются кэш и оперативная память, 4 байт; это означает, что кэш состоит из 16К = 214cтpoк по 4 байт в каждой;
• объем оперативной памяти 16 Мбайт, т.е. длина кода адреса — 24 бит; таким образом, с точки зрения обмена информацией с кэшем оперативная память состоит из 4М блоков по 4 байт в каждом.
Прямая функция отображения. При таком способе за каждым блоком оперативной памяти "закрепляется" фиксированная строка кэша. Схема на рис. 1 поясняет общий принцип прямого отображения.
Рисунок 1 – Схема функционирования кэш-памяти при использовании прямой функции отображения
Для определения номера строки кэша используется соотношение:
Функция прямого отображения, использующая в качестве исходной информации адрес слова, довольно просто реализуется. Схема поиска информации в кэше рассматривает переданный процессором код адреса слова как состоящий из трех полей. Младшие w бит идентифицируют слово (в нашем случае — байт, поскольку длина слова равна 1 байт) внутри блока оперативной памяти. Старшие s бит определяют один из 2s блоков в оперативной памяти. В схемах управления кэшем эти s бит разбиваются на два поля: старшие s-rбит — поле тэга, а младшие rбит — поле номера строки, которое однозначно задает одну из m = 2r строк кэша. Результат реализации такой функции отображения следующий:
Таким образом, использование части разрядов кода адреса в качестве номера строки кэша устанавливает однозначное(но не взаимно однозначное) соответствие между блоком оперативной памяти и строкой кэша. Каждому блоку памяти назначена своя строка кэша, но каждая строка кэша может принимать информацию из разных блоков. Какой именно блок в текущий момент находится в данной строке, определяет поле тэга — старшие s-r разрядов кода адреса.
На рисунке 2 показано, как будет выглядеть применение прямой функции отображения в той системе, параметры которой указаны в начале теоретического обоснования.
Рисунок 2 – Пример применения прямой функции отображения строк кэша
В системе, взятой для примера, m = 16К = 214 и m =j mod 214.При таких параметрах функция прямого отражения дает следующие результаты:
Обратите внимание на то, что все блоки оперативной памяти, назначенные одной и той же строке кэша, имеют разные значения тэга — значения восьми старших двоичных (двух шестнадцатеричных) разрядов адреса. Например, блоки с адресами 000000, 010000, ..., FF0000 имеют, соответственно, значения тэгов 00, 01, ..., FF.
Прямую функцию отображения довольно просто реализовать в схеме управления блоком кэш-памяти, но у нее есть существенный недостаток (который, как это почти всегда бывает, является продолжением ее достоинств). Фиксированное назначение строк кэша блокам оперативной памяти может привести к тому, что одни строки кэша будут обновляться очень часто, в то время как другие вообще не используются, поскольку к ним процессор не обращается. Так, если в программе имеется несколько повторяющихся обращений к двум разным блокам, отображаемым на одну и ту же строку кэша, эти блоки будут постоянно "курсировать" между оперативной памятью и кэшем, и проку кэша в этом случае будет мало.
Ассоциативная функция отображения. Суть данного метода в том, что тэгомявляются все старшие разряды кода адреса, т.е. те, которые при прямой функции делились на поле тэга и поле номера строки. В результате ассоциативная функция отображения разрывает жесткую связь между блоком оперативной памяти и определенной строкой кэша — теперь любой блок может оказаться в любой строке кэша. Такое решение серьезно усложняет логику поиска в кэше затребованного слова. Схема управления кэшем при выполнении операции чтения должна сравнить старшие разряды кода адреса с тэгами всех строк кэша, причем для обеспечения нужного быстродействия сравнение должно осуществляться параллельно по всем строкам (рисунок 3).
Рисунок 3 – Схема функционирования кэш-памяти при использовании ассоциативной функции отображения
На рисунке 4 схематически представлено соответствие между содержимым строк кэша и блоков оперативной памяти при реализации ассоциативной функции отображения. Код адреса в оперативной памяти рассматривается как состоящий из двух полей: 22-разрядного поля тэга и 2-разрядного поля номера байта. Таким образом, в каждой строке кэша нужно хранить помимо блока данных длиной в 4 байт (32 бит) еще и 22-разрядный код тэга этого блока. Так 24-разрядному адресу 16339С будет соответствовать 22-разрядный код тэга 058СЕ7 (коды представляются в шестнадцатеричной СС). Как формируется такой код, легко проследить, если воспользоваться двоичной СС:
Рисунок 4 – Пример применения ассоциативной функции отображения
Применение ассоциативной функции отображения обеспечивает известную гибкость при распределении данных между строками кэша, поскольку позволяет применять более сложные алгоритмы при выборе строк, в которые считывается очередной блок из оперативной памяти. Эти алгоритмы, позволяют так организовать обновление строк, что вероятность обнаружения нужного слова данных в кэше (кэш-попадания) значительно возрастает, а это значит, что значительно реже нужно обращаться за новыми данными к оперативной памяти. Недостаток - блок кэш-памяти должен располагать ресурсами хранения информации, более чем в полтора раза превышающими объем полезной информации. Логические схемы анализа и сравнения тэгов при такой схеме также значительно сложнее, чем при использовании простой функции отображения.
Секционированная ассоциативная функция отображения — является комбинацией двух первых. В ней сочетается относительная простота реализации прямой функции отображения с гибкостью, которую обеспечивает ассоциативная функция. При реализации этого метода весь массив кэш-памяти делится на vсекций, каждая из которых состоит из k строк. Таким образом, имеют место соотношения:
В каждой секции используется ассоциативная функция отображения, и блок Вj может быть передан в любую строку секции i. Схемы управления блока кэш-памяти анализируют три поля в составе кода адреса, поступившего от процессора: тэг, номер секции, и номер слова(байта). Поле номера секции имеет длину d разрядов, и задает одну из v = 2d секций. Поле тэга длиной s разрядов совместно с полем номера секции определяют один из 2sблоков в оперативной памяти, который может быть помещен в любую строку этой секции. На рисунке 5 приведена схема управления блоком кэш-памяти, в котором использована секционированная ассоциативная функция отображения. При использовании чисто ассоциативной функции поле тэга в строке кэша имело довольно большую длину и значение тэга из кода адреса, полученного от процессора, нужно было сравнить со значениями в полях тэга всех строк кэша. При использовании секционированной ассоциативной функции поле тэга в коде адреса имеет несколько меньшую длину, и при анализе адреса это поле нужно сравнивать только с полями тэгов строк одной секции (обычно их бывает 2, 4 или 8).
Рисунок 5 – Схема функционирования кэш-памяти при использовании
секционированной ассоциативной функции отображения
На рисунке 6 схематически представлено соответствие между содержимым строк кэша и блоков оперативной памяти при реализации секционированной ассоциативной функции отображения. Каждая секция включает две строки кэша и, следовательно, номер секции задается 13-разрядным двоичным числом. Блоки в оперативной памяти, номера которых, взятые по модулю 213, совпадают с номером секции, будут отображаться на строки этой секции кэша. Так блоки 000000, 00А000, ..., FF4000 будут отображаться на строки секции 0. Каждый из этих блоков может быть помещен в любую из двух строк секции 0. Обратите внимание на то, что ни один из двух блоков, которые отображаются на одну и ту же секцию, не имеют одинаковых кодов тэга. При выполнении операции чтения 13-разрядный номер секции определяет, какую из двухстрочных секций кэша следует анализировать на предмет того, не содержится ли в ней искомый блок. При этом анализируются поля тэгов обеих строк секции.
Если v = т, k = 1, то секционированная ассоциативная функция сводится к прямой функции отображения, а при v = 1, k = т секционированная ассоциативная функция сводится к чистой ассоциативной. Разделение кэша на 2-строчные секции (у = т/2, k = 2) — самый распространенный вариант использования секционированной ассоциативной функции, который дает наибольший прирост эффективности по сравнению с прямой функцией отображения.
Рисунок 6 – Пример применения секционированной ассоциативной функции отображения строк кэша
Ход работы
1. Изучить три функции отображения информации в оперативной памяти и в кэш-памяти (рисунки 1-6).
2. Решить задачи:
2.1. Пусть имеется блок кэш-памяти, состоящий из 64 строк, разбитых на 4- строчные секции, в котором используется секционированная ассоциативная функция отображения. Оперативная память имеет объем 4К блоков по 128 слов в каждом. Как интерпретируется контроллером кэша переданный процессором адрес в оперативной памяти?
2.2. Для адресов в оперативной памяти 11111, 666666, ВВВВВВ (шестнадцатеричная СС) представьте значения следующих полей в шестнадцатеричном формате:
- тэг, номер строки и номер слова в строке при использовании прямой функции отображения (рисунок 2);
- тэг и номер слова в строке при использовании ассоциативной функции отображения (рисунок 4);
- тэг, номер секции и номер слова в строке при использовании секционированной ассоциативной функции отображения с двумя строками в секции (рисунок 6).
2.3 Представьте себе 32-разрядный микропроцессор, который имеет встроенный кэш объемом 16 Кбайт. В кэше используется 4-строчная секционированная ассоциативная функция отображения. Размер строки — четыре 32-битовых слова. Где в кэше следует искать слово, адрес которого в оперативной памяти ABCDE8F8?
Содержание отчёта
1. Тема
2. Цель
3. Ход работы
3.1. Изучить и описать схемы функционирования кэш-памяти при использовании прямой, ассоциативной и секционированной ассоциативной функций отображения (рисунки 1,3,5)
3.2. Изучить примеры применения кэш-памяти при использовании прямой, ассоциативной и секционированной ассоциативной функций отображения (рисунки 2,4,6)
3.3. Решить задачи пп.2.1-2.3
4. Ответы на контрольные вопросы.
Контрольные вопросы
1. Назначение кэш-памяти
2. Достоинства и недостатки использования прямой, ассоциативной и секционированной ассоциативной функций отображения информации в кэш-памяти.
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|