Понедельник, 07.07.2025, 12:35
Приветствую Вас Гость | RSS
Главная | Каталог статей | Регистрация | Вход
SITE LOGO
Главная » Статьи » ЭВМ

КЭШ-память
Кэш-память. Емкость, размер строки, число уровней. Пристонская и Гарвардская архитектуры. Уилксом в 1965 году в процессе разработки ВМ Atlasи использовал двухуровневую память. Идея Уилкса заключалась в том, чтобы применить двухуровневую память, когда между процессором и ОП размещается небольшая, но быстродействующая буферная память. В процессе работы в буферную память копируются те участки ОП, к которым производится обращение со стороны процессора. В общепринятой терминологии это называется отображением участков ОП на буферную память. Выигрыш получается за счет свойства локальности по обращению. Уилкс называл такую буферную память подчиненной, в современной терминологии за ней закрепилось название кэш, что кроме кошелька, переводится еще и как тайник, поскольку эта память скрыта от программиста в том смысле, что он не может ее адресовать и может вообще не знать о ее существовании. Впервые кэш-память появилась в ВМ модели 85 семейства IBM. В общем виде работу ВМ с кэш-памятью можно пояснить следующим образом. Когда ЦП пытается прочитать слово из ОП, сначала осуществляется поиск копии этого слова в кэше. Если такая копия существует, обращение к ОП не производится, а в ЦП передается слово их кэша. Такая ситуация называется попаданием. При отсутствии слова в кэше (промахе) требуемое слово передается в ЦП из ОП, но одновременно из ОП в кэш передается блок информации, содержащий это слово. На эффективность применения кэш-памяти влияют следующие факторы: -емкость кэша; -размер строки кэша – блок информации, который отображается за 1 операцию обмена между ОП и кэшем; -способ отображения ОП на кэш-память; -алгоритм замещения информации в заполненной кэш-памяти; -алгоритм согласования содержимого ОП и кэша; -число уровней кэш-памяти.
Емкость кэша обуславливается двумя противоречивыми обстоятельствами: с одной стороны кэш должен быть малым, чтобы стоимость ВМ резко не увеличивалась, с другой стороны – кэш должен быть большим, чтобы среднее время обращения к системе ОП - кэш определялось временем доступа к кэш-памяти. Изучение зависимости числа промахов от объема кэша показало, что близкой к оптимальной является емкость кэш от 1 до 512 Кбайт. При выборе размера строки необходимо учесть следующие обстоятельства:
-большие размеры строки уменьшают общее количество строк в кэш заданного объема, а малые размеры приводят к необходимости частой смены строк;
-по мере увеличения размера строки каждое дополнительное слово оказывается дальше от запрошенного и вследствие этого уменьшается вероятность обращения к нему в ближайшем будущем. Первые варианты ВМ с кэш-памятью использовали кэш как для команд, так и для данных. Такую кэш-память принято называть смешанной, а соответствующую архитектуру ВМ – Пристонской. Сравнительно недавно стали разделять кэш-память на две – отдельно для команд и отдельно для данных. Подобная архитектура получила название Гарвардской, поскольку в одноименном университете был впервые создан компьютер "Марк-1” (1950 год), имевший отдельное ЗУ для команд и отдельное ЗУ для данных.
Кэш-память. Способ отображения ОП на кэш-память. Уилксом в 1965 году в процессе разработки ВМ Atlasи использовал двухуровневую память. Идея Уилкса заключалась в том, чтобы применить двухуровневую память, когда между процессором и ОП размещается небольшая, но быстродействующая буферная память. В процессе работы в буферную память копируются те участки ОП, к которым производится обращение со стороны процессора. В общепринятой терминологии это называется отображением участков ОП на буферную память. Выигрыш получается за счет свойства локальности по обращению. Уилкс называл такую буферную память подчиненной, в современной терминологии за ней закрепилось название кэш, что кроме кошелька, переводится еще и как тайник, поскольку эта память скрыта от программиста в том смысле, что он не может ее адресовать и может вообще не знать о ее существовании. Впервые кэш-память появилась в ВМ модели 85 семейства IBM. В общем виде работу ВМ с кэш-памятью можно пояснить следующим образом. Когда ЦП пытается прочитать слово из ОП, сначала осуществляется поиск копии этого слова в кэше. Если такая копия существует, обращение к ОП не производится, а в ЦП передается слово их кэша. Такая ситуация называется попаданием. При отсутствии слова в кэше (промахе) требуемое слово передается в ЦП из ОП, но одновременно из ОП в кэш передается блок информации, содержащий это слово. На эффективность применения кэш-памяти влияют следующие факторы: -емкость кэша; -размер строки кэша – блок информации, который отображается за 1 операцию обмена между ОП и кэшем; -способ отображения ОП на кэш-память;
-алгоритм замещения информации в заполненной кэш-памяти; -алгоритм согласования содержимого ОП и кэша; -число уровней кэш-памяти. Способы отображения оперативной памяти на кэш-память.
Сущность отображения блока основной памяти на кэш-память состоит в копировании этого блока в какую-то строку кэш-памяти, после чего все обращения к блоку в ОП должны переадресовываться на соответствующую строку кэш-памяти. Удачным может быть признан лишь такой способ отображения, который одновременно отвечает трем требованиям: обеспечивает быструю проверку кэш-памяти на наличие в ней копии блока основной памяти; обеспечивает быстрое преобразование адреса блока ОП в адрес строки кэша; реализует достижение первых двух требований наиболее экономными средствами. Кэш-память разбита на строки такого же размера, что и в ОП(применительно к кэш-памяти вместо слова «блок» принято использовать термин «строка»), то есть содержит 128 = 27 строк. Известные варианты отображения основной памяти на кэш можно свести к трем видам: прямому, полностью ассоциативному и частично-ассоциативному, причем последний имеет две модификации — множественно-ассоциативное отображение и отображение секторов. Прямое отображение. При прямом отображении адрес строки i кэш-памяти, на которую может быть отображен блок j из ОП, однозначно определяется выражением: i =j mod т, где т-общее число строк в кэш-памяти. Полностью ассоциативное отображение. Полностью ассоциативное отображение позволяет преодолеть недостаток прямого, разрешая загрузку любого блока ОП в любую строку кэш-памяти. Логика управления кэш-памяти выделяет в адресе ОП два поля: поле тега и поле слова. Поле тега совпадает с адресом блока основной памяти. Множественно-ассоциативное отображение. Множественно-ассоциативное отображение относится к группе методов частично-ассоциативного отображения. Оно является одним из возможных компромиссов, сочетающим достоинства прямого и ассоциативного способов отображения и, в известной мере, свободным от их недостатков. Кэш-память (как тегов, так и данных) разбивается на v подмножеств (в дальнейшем будем называть такие подмножества модулями), каждое из которых содержит k строк (принято говорить, что модуль имеет k входов). Зависимость между модулем и блоками ОП такая же, как и при прямом отображении: на строки, входящие в модуль i, могут быть отображены только вполне определенные блоки основной памяти, в соответствии с соотношением i = j mod v, где j — адрес блока ОП.
Кэш-память. Алгоритмы замещения строк и согласования содержимого ОП и кэш-памяти. Уилксом в 1965 году в процессе разработки ВМ Atlasи использовал двухуровневую память. Идея Уилкса заключалась в том, чтобы применить двухуровневую память, когда между процессором и ОП размещается небольшая, но быстродействующая буферная память. В процессе работы в буферную память копируются те участки ОП, к которым производится обращение со стороны процессора. В общепринятой терминологии это называется отображением участков ОП на буферную память. Выигрыш получается за счет свойства локальности по обращению. Уилкс называл такую буферную память подчиненной, в современной терминологии за ней закрепилось название кэш, что кроме кошелька, переводится еще и как тайник, поскольку эта память скрыта от программиста в том смысле, что он не может ее адресовать и может вообще не знать о ее существовании. Впервые кэш-память появилась в ВМ модели 85 семейства IBM. В общем виде работу ВМ с кэш-памятью можно пояснить следующим образом. Когда ЦП пытается прочитать слово из ОП, сначала осуществляется поиск копии этого слова в кэше. Если такая копия существует, обращение к ОП не производится, а в ЦП передается слово их кэша. Такая ситуация называется попаданием. При отсутствии слова в кэше (промахе) требуемое слово передается в ЦП из ОП, но одновременно из ОП в кэш передается блок информации, содержащий это слово. На эффективность применения кэш-памяти влияют следующие факторы: -емкость кэша; -размер строки кэша – блок информации, который отображается за 1 операцию обмена между ОП и кэшем; -способ отображения ОП на кэш-память; -алгоритм замещения информации в заполненной кэш-памяти; -алгоритм согласования содержимого ОП и кэша; -число уровней кэш-памяти. Алгоритмы замещения информации. Когда кэш-память заполнена, занесение в нее нового блока связано с замещением содержимого одной из строк. При прямом отображении каждому блоку основной памяти соответствует только одна определенная строка в кэш-памяти, и никакой иной выбор удаляемой строки здесь невозможен. При полностью и частично ассоциативных способах отображения требуется какой-либо алгоритм замещения (выбора удаляемой из кэш-памяти строки). Основная цель стратегии замещения — удерживать в кэш-памяти строки, к которым наиболее вероятны обращения в ближайшем будущем, и заменять строки, доступ к которым произойдет в более отдаленном времени или вообще не случится. Очевидно, что оптимальным будет алгоритм, который замещает ту строку, обращение к которой в будущем произойдет позже, чем к любой другой строке кэша. К сожалению, такое предсказание практически нереализуемо, и приходится привлекать алгоритмы, уступающие оптимальному. Среди множества возможных алгоритмов замещения наиболее распространенными являются четыре, рассматриваемые в порядке уменьшения их относительной эффективности. Наиболее эффективным является алгоритм замещения на основе наиболее давнего использования (LRU — Least Recently Used), при котором замещается та строка кэш-памяти, к которой дольше всего не было обращения. Второй способ реализуется с помощью очереди, куда в порядке заполнения строк кэш-памяти заносятся ссылки на эти строки. При каждом обращении к строке ссылка на нее перемещается в конец очереди. В итоге первой в очереди каждый раз оказывается ссылка на строку, к которой дольше всего не было обращений. Именно эта строка прежде всего и заменяется. Другой возможный алгоритм замещения-алгоритм, работающий по принципу «первый вошел-первый вышел»(FIFO-First In-First Out). Здесь заменяется строка, дольше всего находившаяся в кэш-памяти.
Еще один алгоритм — замена наименее часто использовавшейся строки ( LFU-Least Frequently Used). Заменяется та строка в кэш-памяти, к которой было меньше всего обращений. Простейший алгоритм-произвольный выбор строки для замены. Замещаемая строка выбирается случайным образом.



Категория: ЭВМ | Добавил: aLex (11.05.2010)
Просмотров: 4502 | Комментарии: 1 | Рейтинг: 2.3/3
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]