Сделай Сам Свою Работу на 5

Теоретическое обоснование

Цель: изучить конструкцию и алгоритмы работы кэш-памяти

Блок кэш-памяти имеет следующие параметры:

• объем кэша 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- 2017 stydopedia.ru Все материалы защищены законодательством РФ.