Полная версия

Главная arrow Информатика arrow Вычислительная техника

  • Увеличить шрифт
  • Уменьшить шрифт


<<   СОДЕРЖАНИЕ ПОСМОТРЕТЬ ОРИГИНАЛ   >>

ЭШ-память

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

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

В микропроцессорах ассоциативные ЗУ используются в составе кэшпамяти для хранения адресной части команд и операндов исполняемой программы. При этом нет необходимости обращаться к ОП за следующей командой или требуемым операндом: достаточно поместить в маску необходимый адрес, если искомая информация имеется в СОЗУ, то она будет сразу выдана. Обращение к ОП будет необходимо лишь при отсутствии требуемой информации в СОЗУ. За счет такого использования СОЗУ сокращается число обращений к ОП, а это позволяет экономить время, так как обращение к СОЗУ требует в 2-10 раз меньше времени, чем обращение к ОП.

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

Кэш-память может быть размещена в кристалле процессора (так называемая «кэш-память 1 уровня» для команд и для данных, «кэш-память 2 уровня») или выполнена в виде отдельной микросхемы (внешняя кэш-память или кэш-память 3 уровня, а в проекте и 4-го). Например, встроенная кэшпамять (1 уровня) в процессорах Pentium имеет объем около 16 Кбайт, время доступа - 5-10 нс, работает с 32-битными словами и при частотах 75-166 МГц обеспечивает пропускную способность от 300 до 667 Мбайт/с. Типичная емкость кэш-память 2-го уровня имеет как, правило, объем 256 Кбайт - 1 Мбайт, время доступа - менее 15 нс, работает с 64-битными словами и при этом на частоте 66 МГц обеспечивает максимальную пропускную способность 528 Мбайт/с.

Место кэш-памяти в структуре ЭВМ показано на рисунке 6.18. Процессор ничего «не знает» о существовании кэша. Он просто выдает запросы чтения и записи, используя адреса, которые указывают на память. В ответ схема управления кэшем выясняет, имеется ли в таковом запрошенное слово. Если «да», то в операции чтения или записи задействуется слово из кэша. При этом говорят, что имеет место ПОПАДАНИЕ В КЭШ. В случае операции считывания обращение к основной памяти вообще не происходит. Если же выполняется операция записи, система может действовать одним из двух способов. При использовании первого из них, называемого протоколом сквозной записи, предполагается, что кэш и основная память обновляются одновременно.

Место кэш-памяти в структуре ЭВМ

Рис. 6.18 Место кэш-памяти в структуре ЭВМ

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

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

Существующие функции отображения:

  • - прямое отображение - простейший способ сопоставления адресов блоков в кэше и в памяти;
  • - ассоциативное отображение;
  • - множественно-ассоциативное отображение.
 
<<   СОДЕРЖАНИЕ ПОСМОТРЕТЬ ОРИГИНАЛ   >>