Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВМСиC / Лаб ВМСиС / CASH / курсовик кэш.doc
Скачиваний:
29
Добавлен:
29.03.2015
Размер:
198.66 Кб
Скачать
  1. Кэш-память

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

Для пользователей IBM PC-совместимых компьютеров исполь­зование кэш-памяти началось еще с 386-х микропроцессоров. Для таких устройств, синхронизируемых, например, частотой 33 МГц, тактовый период составляет приблизительно 30 нc. Обычные микросхемы динамической памяти имеют время вы­борки от 60 до 100 нc. Отсюда, в частности, следует, что цен­тральный процессор вынужден простаивать 2—3 периода такто­вой частоты (то есть имеет 2—3 цикла ожидания), пока инфор­мация из соответствующих микросхем памяти установится на системной шине данных компьютера. Понятно, что в это время процессор не может выполнять никакую другую работу. Такая ситуация приводит к снижению общей производительности сис­темы, что, разумеется, крайне нежелательно. Таким образом, узким местом системы становится оперативная динамическая память. Из этого положения существует, казалось бы, простой выход — использовать в качестве основной памяти достаточно быструю статическую. Однако если основную оперативную па­мять выполнить на микросхемах статической памяти, то стои­мость компьютера возрастет очень существенно. Таким обра­зом, с помощью технологии обработки, использующей кэш-па­мять, найден определенный компромисс между стоимостью и производительностью системы.

Заметим, что работа кэш-памяти практически "прозрачна" (то есть невидима) для пользователя. Тем не менее она очень важна. В IBM PC-совместимых компьютерах технология использования кэш-памяти помимо обмена данными между микропроцессором и основной оперативной памятью находит применение также ме­жду основной оперативной памятью и внешней (накопителями на сменных и несменных носителях).

    1. Архитектура кэш-памяти

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

Итак, архитектура кэш-памяти определяется тем, каким обра­зом достаточно большая по размеру основная память отобража­ется на сравнительно небольшой кэш. Существуют, вообще го­воря, три разновидности отображения: кэш-память с прямым отображением (direct-mapped cache), частично, или наборно-ассоциативная (set-associative cache) и полностью ассоциативная (rally associative cache). Все эти архитектуры так или иначе ис­пользуются для построения кэш-памяти современных микропро­цессоров.

      1. Кэш-память с прямым отображением

Самой простой организацией обладает кэш-память с прямым отображением. В этом случае адрес памяти полностью определя­ет используемую строку кэша. Таким образом, один или несколько блоков оперативной памяти строго соответствуют одной строке кэша, однако поскольку занимать ее в одно и то же время может только один из них, то для каждой строки используется специ­альный признак — тег (tag). Более подробно рассмотрим работу кэш-памяти с прямым отображением по схеме, изображенной на рис. 22.

Допустим, что гипотетический микропроцессор использует 10-разрядный адрес, размер кэша составляет 8 строк, а длина каж­дой строки — 8 байт. В какой-то момент времени процессор хочет прочитать два байта информации, хранимой в оперативной памя­ти, с адреса 0010001100. Для кэш-памяти этот адрес подразделяет­ся на три части. В данном случае три младших разряда называются смещением (offset) и полностью определяют положение каждого из восьми байт в строке. Средние три разряда позволяют однозначно выбрать одну из восьми строк (line) кэша. Оставшиеся стар­шие разряды несут информацию о теге. И только в том случае, если тег строки кэша совпадает со значением, определяемым стар­шими разрядами адреса, байты информации считываются из кэш­памяти. В противном случае чтение должно идти из основной па­мяти или информация в строке должна быть заменена. Разумеет­ся, в случае ее замены меняется и значение ее тега.

Преимуществом реализации такого типа архитектуры являют­ся довольно низкие затраты, поскольку, по сути, требуется всего лишь одна операция сравнения (для тегов). Недостатки ее, впро­чем, также очевидны. Например, если два блока данных основ­ной памяти, используемые одинаково часто, претендуют на одну и ту же строку в кэше. Внешняя кэш-память с прямым отображе­нием используется, например, вместе с 386-ми процессорами (кэш-контроллер 182385), а внутренняя — в микропроцессоре DEC Alpha 21064.