
- •Память Архитектура памяти.
- •Классификация и физическая организация микросхем памяти, области их применения.
- •Постоянная память
- •Р исунок 4. Пример масочной пзу.
- •Оперативная память
- •Технологии системной памяти. Классическая память dram.
- •Р исунок 6. Структурная схема динамической памяти.
- •Память fpm.
- •Память edo dram.
- •Многобанковая организация памяти
- •Технологии синхронной памяти.
- •Память sdram.
- •Память ddr sdram
- •Память Direct Rambus dram.
- •Р исунок 13. Структура подсистемы памяти Direct Rambus dram.
- •Конструктивные исполнения памяти dram (модули памяти)
- •Адресация памяти в реальном режиме. Логический и физический адреса.
- •Сегментная адресация в реальном режиме.
- •Р исунок 18. Вычисление физического адреса в реальном режиме.
- •Область верхней памяти (hma)
- •Логическое распределение оперативной памяти в реальном режиме.
- •Р исунок 20. Логическая организация памяти. Стандартная память
- •Верхний блок памяти
- •Дополнительная память (ems)
- •Расширенная память (Extended память, xms)
- •Адресация памяти в защищенном режиме работы процессора
- •Разделение адресного пространства на сегменты (сегментация)
- •Механизм страничной памяти.
- •Кэширование данных. Иерархия запоминающих устройств.
- •Р исунок 27. Иерархия запоминающих устройств
- •Р исунок 28. Схема функционирования кэш-памяти
- •Способы отображения основной памяти на кэш (архитектура кэш-памяти).
- •Полностью ассоциативная кэш - память.
- •Р исунок 29. Полностью ассоциативный кэш.
- •Наборно - ассоциативная кэш - память.
- •Р исунок 30. Наборно ассоциативный кэш.
- •Проблема выбора блока кэш-памяти для замещения при промахе
- •Проблема согласования данных
- •Р исунок 31. Сквозная запись.
- •Р исунок 31. Модифицированная сквозная запись
- •Р исунок 32. Обратная запись. Список терминов.
Полностью ассоциативная кэш - память.
Другим типом архитектуры является полностью ассоциативная кэш-память (кэш со случайным отображением). В этом случае любой блок памяти может занимать любую строку кэша. Полный адрес памяти делится только на две части: младшие разряды — смещение в строке и старшие разряды — информация о теге (см. рисунок 29). В этой архитектуре решена проблема конфликтов адресов, однако сама кэш-память требует для своей реализации больших аппаратных затрат, поскольку значения тегов должны уже сравниваться для всех линий кэша.
Р исунок 29. Полностью ассоциативный кэш.
В кэшах, построенных на основе случайного отображения, вытеснение старых данных происходит только в том случае, когда вся кэш-память заполнена и нет свободного места. Выбор данных на выгрузку осуществляется среди всех записей кэша. Как именно может выбираться блок кэш для вытеснения будет рассмотрено ниже.
Электронная реализация такой схемы приводит к удорожанию памяти, причем стоимость существенно возрастает с увеличением объема запоминающего устройства. Поэтому ассоциативная кэш-память используется в тех случаях, когда для обеспечения высокого процента попадания достаточно небольшого объема памяти.
Наборно - ассоциативная кэш - память.
Разумным компромиссом между двумя рассмотренными архитектурами является наборно-ассоциативная организация кэш - памяти. В этом случае несколько линий (две, четыре, пять, восемь) объединяются в наборы, и средние биты адреса памяти определяют уже не конкретную линию (как в прямом отображении), а набор (см. рисунок 30).
Р исунок 30. Наборно ассоциативный кэш.
Сравнение тегов (со значением старших разрядов) производится только для линий, входящих в набор. Подобную архитектуру имеет встроенный кэш большей части современных процессоров.
По количеству линий кэша, входящих в набор, подобная архитектура может называться 2-входовой (2-way set associative), 4-входовой (4-way set associative) и т.д.
Проблема выбора блока кэш-памяти для замещения при промахе
При возникновении промаха, контроллер кэш-памяти должен выбрать подлежащий замещению блок. Польза от использования организации с прямым отображением заключается в том, что аппаратные решения здесь наиболее простые. Выбирать просто нечего: на попадание проверяется только один блок и только этот блок может быть замещен. При полностью ассоциативной или множественно-ассоциативной организации кэш-памяти имеются несколько блоков, из которых надо выбрать кандидата в случае промаха. Как правило для замещения блоков применяются две основных стратегии: случайная и LRU.
В первом случае, чтобы иметь равномерное распределение, блоки-кандидаты выбираются случайно.
Во втором случае, чтобы уменьшить вероятность выбрасывания информации, которая скоро может потребоваться, все обращения к блокам фиксируются. Заменяется тот блок, который не использовался дольше всех (LRU - Least-Recently Used).
Достоинство случайного способа заключается в том, что его проще реализовать в аппаратуре. Когда количество блоков увеличивается, алгоритм LRU становится все более дорогим и часто только приближенным.
Проблема согласования данных
В процессе работы содержимое кэш-памяти постоянно обновляется, а значит, время от времени данные из нее должны вытесняться. Вытеснение означает либо простое объявление свободной соответствующей области кэш-памяти (сброс бита действительности), если вытесняемые данные за время нахождения в кэше не были изменены, либо в дополнение к этому копирование данных в основную память, если они были модифицированы. Алгоритм замены данных в кэш-памяти существенно влияет на ее эффективность. В идеале такой алгоритм должен, во-первых, быть максимально быстрым, чтобы не замедлять работу кэш-памяти, а во-вторых, обеспечивать максимально возможную вероятность кэш-попаданий. Поскольку из-за непредсказуемости вычислительного процесса ни один алгоритм замещения данных в кэш-памяти не может гарантировать оптимальный результат, разработчики ограничиваются рациональными решениями, которые по крайней мере, не сильно замедляют работу кэша — запоминающего устройства, изначально призванного быть быстрым.
Наличие в компьютере двух копий данных — в основной памяти и в кэше — порождает проблему согласования данных. Если происходит запись в основную память по некоторому адресу, а содержимое этой ячейки находится в кэше, то в результате соответствующая запись в кэше становится недостоверной. Рассмотрим два подхода к решению этой проблемы:
1. Сквозная запись (write through). При каждом запросе к основной памяти, в том числе и при записи, просматривается кэш. Если данные по запрашиваемому адресу отсутствуют, то запись выполняется только в основную память. Если же данные, к которым выполняется обращение, находятся в кэше, то запись выполняется одновременно в кэш и основную память (рисунок 31). Очевидно, что при этом экономии времени при записи не происходит.