Реклама:

Вернемся к рассмотренной ранее аналогии, используя в качестве примера современный процессор с тактовой частотой 3,6 ГГц. Теперь скорость поглощения вами пищи равна двум байтам в секунду (тактовой частоте 3,6 ГГц соответствует длительность цикла 0,28 не). Кэшпамять первого уровня работает на этой же частоте, т.е. скорость поглощения блюд, находящихся на вашем столе, равна скорости процессора (а столик соответствует кэш-памяти первого уровня). Ощутимое повышение быстродействия происходит в том случае, когда вы заказываете блюдо, которого нет на столе (промах кэша первого уровня), и официанту приходится обращаться к столику с "дежурными" блюдами. В девяти случаях из десяти он находит там нужное блюдо, которое приносит через полсекунды (частота кэш-памяти второго уровня равна 3,6 ГГц, что соответствует скорости 0,28 не). Итак, современные системы работают 99% времени (суммарный коэффициент совпадения кэш-памяти первого и второго уровней) с частотой 3,6 ГГц и, как и прежде, в одном случае из ста понижают скорость до частоты оперативной памяти (приготовление блюда на кухне). При увеличении скорости памяти до 800 МГц (1,25 не) время ожидания заказанного блюда из кухни достигнет 1,25 с. Эх, если бы скорость обслуживания в ресторане повышалась бы ТЭ.К jK6, КЭ.К быстродействие процессора!

Организация работы кэш-памяти

Как известно, кэш хранит копии данных из различных адресных областей основной памяти. Поскольку в кэше невозможно одновременно хранить копии данных из всех адресных областей, необходим такой метод определения адресов, данные которых скопированы в кэш, чтобы нужные данные считывались непосредственно из кэша, а не из основной оперативной памяти. Для этого применяется ОЗУ тегов — дополнительная область памяти кэша, в которой содержится индекс адресов, скопированных в кэш. Каждая строка памяти кэша имеет соот-

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

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

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

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


⇐ Предыдущая страница| |Следующая страница ⇒