Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
59
Добавлен:
28.01.2014
Размер:
44.03 Кб
Скачать

Кэш-память. Для достижения более высокого быстродействия между сравнительно медленной основной памятью, использующей динамические элементы, и относительно быстрым процессором размещают буферную память, получившую название кэша, или кэш-памяти. Ее использование позволяет избегать циклов ожида­ния в работе процессора, которые снижают производительность всей системы.

Кэш-память предназначена для кратковременного хранения информации и выдачи ее в процессор. Она не является программ­но доступной и служит только для повышения производительно­сти, но не увеличивает общую емкость памяти и не влияет на программирование. Кэш-память бывает нескольких уровней. Кэш первого уровня Ы обычно интегрируется с процессором и слу­жит для предварительной выборки команд и данных. Во многих процессорах кэш первого уровня разделен на два: кэш команд и кэш данных (см. рис. 5.10). Его объем в современных процессорах составляет от 4 до 64 Кбайт (и даже до 128 Кбайт), а время обра­щения около 10 не. Когда говорят о кэш-памяти, то обычно под­разумевают кэш второго уровня, или L2. Он служит для ускорения обращений процессора к программам и данным при их обработке. Этот кэш строится на базе очень быстрой и довольно дорогой статической памяти (SRAM) и хранит наиболее часто используе­мую процессором информацию. Физически кэш второго уровня выполняют в виде отдельной микросхемы или интегрированным с процессором в зависимости от возможностей технологии. Объем кэш-памяти второго уровня в процессорах разного назначения составляет от 256 Кбайт (в персональных компьютерах) до 8 Мбайт (в серверах), а время обращения 15...20 не. В некоторых компью­терах предусматривается также кэш третьего уровня L3, однако его эффективность невелика.

Наличие кэш-памяти не должно вызывать затруднений при про­граммировании и нарушать принятые принципы адресации. Чтобы скрыть от программиста наличие кэш-памяти, в ней используют ассоциативный принцип хранения и поиска информации.

В кэш-памяти располагается та же информация, что и в ОП. Любое обращение процессора к памяти вначале всегда направля­ется в кэш-память, и только при отсутствии в ней соответствую­щей информации продолжается ее поиск в ОП. Найденное слово передается в процессор для обработки, но при этом из ОП заби­рается целый блок информации, состоящий из нескольких слов, которые заносятся в кэш-память. При повторном обращении про­цессора к данным или командам из этого блока они уже будут находиться в кэш-памяти. Так как и команды, и данные обычно занимают последовательные ячейки памяти, высока вероятность, что следующее обращение в кэш-память будет успешным. При работе с кэш-памятью применяется ассоциативный принцип: стар­шие разряды адреса используются в качестве признака, а млад­шие — для выбора слова.

Существует три вида организации кэш-памяти: с прямым ото­бражением, полностью ассоциативная и множественно ассоциа­тивная.

В кэш-памяти с прямым отображением информационный блок из ОП записывается всегда в одно и то же фиксированное место. При записи блока в кэш-память используются младшие разряды его адреса ОП. Они также записываются в виде тега вместе с ин­формацией. Для информации, хранящейся в ячейках ОП с одина­ковыми младшими разрядами адреса, предназначен один блок кэш­памяти. Так, если ОП разделена на 16 384 блока, а объем кэш­памяти позволяет разместить только 128 блоков, то в строке 0

кэш-памяти могут находиться данные из 0, 128, 256,..., 16 256 блоков ОП, в строке 1 — данные из 1, 129, 257, ..., 16 257 блоков ОП и т.д. Такая кэш-память наиболее дешева, но и требует очень частой замены блоков; вероятность «попадания» сравнительно низ­кая. Кэш с прямым отображением используется в простых недо­рогих компьютерах.

Если информационный блок ОП может быть помещен на лю­бое место кэш-памяти, то она называется полностью ассоциатив­ной. Ее почти не используют из-за сложности схем управления.

В множественно ассоциативной кэш-памяти информационный блок ОП может располагаться на ограниченном числе мест. Обыч­но такое множество состоит из четырех каналов. В персональных компьютерах, как правило, используют именно четырехканаль-ную множественно ассоциативную кэш-память. В ней сочетаются достоинства прямого и полностью ассоциативного отображения.

На рис. 6.7 приведена одна из возможных организаций множе­ственно ассоциативной кэш-памяти. Такая память состоит из соб­ственно блочного запоминающего устройства (БЗУ), в котором хранятся копии взятых в ОП информационных блоков, таблицы адресов (ТА) и управляющих схем. Рассмотрим операцию чтения. Поступающий из процессора адрес разбивается на три части: поле смещения в), служащее для выбора нужного байта внутри бло­ка, поле индекса(Аинд), определяющее номер множества, и поле тега (Ат), т.е.

А = Ат, Аинд, Ад.

Обмен данными между кэш-памятью и ОП производится бло­ками. В таблице адресов (называемой также справочником) для каждого блока, расположенного в ЗУ по адресу Аинд, находятся адреса страниц, или тегов, А,, тех блоков, которые были уже ско­пированы в кэш-память во время предыдущих операций чтения. При обращении процессора адрес запрашиваемой информациипередается в регистр, где он разбивается на три части. Находящи­еся в таблице адресов номера страниц сравниваются с номером страницы (т. е. старшими разрядами адреса) запрашиваемого бло­ка. Если выявляется совпадение адресов страниц, то запрашивае­мый блок находится в соответствующем разделе кэш-памяти.

Производится выборка этого блока по адресу А = Аинд, AD. Если совпадения номеров страниц не произошло, то искомый блок отсутствует в ассоциативной памяти, и адрес нужного слова пе­редается ОП. (Для ускорения работы памяти обычно адрес пере­дается в кэш-память и ОЗУ одновременно, но если искомое слово находится в кэш-памяти, то там оно будет найдено быстрее, по­этому результат поиска в ОЗУ будет не нужен.)

Найденное слово из оперативной памяти передается в процес­сор для обработки, а весь блок переписывается в кэш-память. При копировании блока он направляется в раздел кэш-памяти, адрес которого определяется с помощью таблицы активности блоков (на рисунке она не показана). Эта таблица содержит предысторию обращений к каждому блоку и служит для вытеснения из кэш­памяти неиспользуемых блоков. Применяется одна из двух страте­гий — случайная или LRU (least recently used — заменяется блок, который дольше других не использовался). В первом случае новый блок вытесняет из кэш-памяти любой блок, выбираемый случай­ным образом; эту стратегию значительно проще реализовать в аппаратуре. Во втором случае из кэш-памяти удаляется блок, к которому в течение последнего времени не было обращений. Эта стратегия требует фиксации обращений в таблице активности, что может значительно усложнить ее реализацию. Обычно реализация этой стратегии выполняется с помощью очереди, в которую за­носятся ссылки на заполняемые строки кэш-памяти. При обраще­нии к строке ссылка на нее перемещается в конец очереди. Таким образом, в начале очереди всегда будет находиться ссылка к стро­ке, к которой обращение производилось раньше, чем к другим строкам.

Операции записи в память встречаются намного реже опера­ций чтения; обычно они составляют менее 10 % общего числа опе­раций, но пренебрегать ими нельзя. Существует две возможности:

сквозная запись (write through), при которой запись осуществ­ляется одновременно и в кэш-память, и в ОП. В этом случае нали­чие кэш-памяти никак не повлияет на скорость работы машины при записи обработанной информации в память. Время, необхо­димое для записи слова в ОП, превышает длительность записи в кэш-память, а пока не завершена запись результата предыдущей операции, продолжать работу невозможно;

запись с обратным копированием (write back), при которой запись информации при обработке производится только в кэш­память. Это происходит быстро, но при этом в кэш-памяти и ОП могут храниться различающиеся копии одних и тех же данных. Измененный блок из кэш-памяти передается в ОП только при его замещении. Для еще большего сокращения операций записи каждому блоку ставится в соответствие бит модификации, кото­рый отменяет запись блока в ОП, если он не изменялся.

Как правило, в персональных компьютерах сегодня использу­ют сквозную запись, хотя она и не обеспечивает выигрыша во времени при записи. Это вызвано тем, что ее проще реализовать, чем запись с обратным копированием. Кроме того, при сквозной: записи ОП и кэш-память всегда содержат одинаковые копии дан­ных, что значительно упрощает процедуру ввода-вывода и орга­низацию мультипроцессорных систем.

1

156

Соседние файлы в папке Ответы