Проблема согласования данных

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

Наличие в компьютере двух копий данных — в основной памяти и в кэше — порождает проблему согласования данных. Если происходит запись в основную память по некоторому адресу, а содержимое этой ячейки находится в кэше, то в результате соответствующая запись в кэше становится недостоверной. Рассмотрим два подхода к решению этой проблемы:

1. Сквозная запись (write through). При каждом запросе к основной памяти, в том числе и при записи, просматривается кэш. Если данные по запрашиваемому адресу отсутствуют, то запись выполняется только в основную память. Если же данные, к которым выполняется обращение, находятся в кэше, то запись выполняется одновременно в кэш и основную память (рисунок 31). Очевидно, что при этом экономии времени при записи не происходит.

 
 

Рисунок 31. Сквозная запись.

Модификацией метода сквозной записи является буферизованная сквозная запись при которой данные при записи сначала попадают в быстрый буфер, а затем асинхронно в основную память (см. рисунок 31).

 
 

Рисунок 31. Модифицированная сквозная запись

2. Обратная запись (write back). Аналогично при возникновении запроса к памяти выполняется просмотр кэша, и если запрашиваемых данных там нет, то запись выполняется только в основную память. В противном же случае запись производится только в кэш-память, при этом в описателе данных делается специальная отметка (признак модификации), которая указывает на то, что при вытеснении этих данных из кэша необходимо переписать их в основную память, чтобы актуализировать устаревшее содержимое основной памяти (см. рисунок 32).

 
 

Рисунок 32. Обратная запись.

Список терминов.

Bit – бит -минимальная единица хранения и передачи информации для любой цифровой техники, соответствует логическому устройству, имеющему только два возможных состояния - 0 или 1. Обозначается строчной буквой b.

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

CAS (Column Access Strobe) - сигнал, поданный на линию CAS микросхемы, означает, что через адресные линии вводится адрес столбца.

CMOS (Complementary Metal Oxide Semiconductor) - технология полупроводникового производства, энергозависимая память, применяемая для хранения установок BIOS.

DDR (Double Data Rate) = SDRAM II

DIMM (Dual In-Line Memory Module) - наиболее современная разновидность форм-фактора модулей памяти. Отличается от SIMM тем, что контакты с двух сторон модуля независимы (dual), что позволяет увеличить соотношение ширины шины к геометрическим размерам модуля. Наиболее распространены 168-контактные DIMM (ширина шины 64 бит), устанавливаемые в разъем вертикально и фиксируемые защелками. В портативных устройствах широко применяются SO DIMM.

DRAM (Dynamic RAM – динамическая память с произвольным доступом) – получила название по принципу действии своих ячеек, которые выполнены в виде конденсаторов, образованных элементами полупроводниковых микросхем. При отсутствии обращения к ячейке конденсатор за счет токов утечки разряжается, поэтому такая память требует периодической перезарядки (обращения к каждой ячейке) – память может работать только в динамическом режиме.

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

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

EDO DRAM (Extended Data Out - растянутый вывод данных) - разновидность асинхронной DRAM. Представляет собой дальнейшее развитие метода fast page по «конвейерной» схеме - линии ввода-вывода остаются какое-то время открытыми для чтения данных в процессе обращения к следующему адресу, что позволяет организовать цикл доступа более оптимально.

EEPROM (Electric EPROM – репрограммируемая память только для чтения с электрическим стиранием) – разновидность EPROM, стирание информации в которой происходит под воздействием напряжения.

EPROM (Erasable PROM – стираемая программируемая память только для чтения) - позволяет многократно изменять информацию хранящуюся в микросхеме, стирая перед этим старую.

PROM (Programmable ROM – программируемая память только для чтения) – однократно программируемая память. Ячейки такой памяти в процессе производства устанавливаются в логическую единицу (все ячейки соответствуют наличию проводника). Информация в такую микросхему заносится разработчиком аппаратуры самостоятельно и только один раз.

RAM (Random Access Memory– память с произвольным доступом) - предназначена для хранения переменной информации, так как предусматривает изменение своего содержимого в ходе выполнения процессором операций.

Rambus DRAM – шина памяти DRAM, разработанная компанией Rambus и позволяющая создавать память с высокой пропускной способностью (несколько сотен Mb/сек). Поскольку стандарт не является открытым, а защищен патентом и как следствие подлежит лицензированию, широкого распространения такая память не получила.

RAS (Row Access Strobe) - сигнал, поданный на линию RAS микросхемы памяти, означает, что через адресные линии вводится адрес строки.

refresh – подзарядка, освежение. Как известно, состоянием ячейки памяти DRAM является наличие/отсутствие заряда на конденсаторе. Этот заряд подвержен утечке, поэтому для сохранения данных конденсатор необходимо время от времени подзаряжать. Это достигается подачей на него время от времени напряжения (несложная диодная конструкция обеспечивает refresh только тех конденсаторов, на которых уже есть заряд).

ROM (Read-Only Memory - память только для чтения) - ранит информацию, которая не должна изменяться во время выполнения процессором программы.

SDRAM (Synchronous DRAM) - синхронная DRAM - название синхронной памяти "первого поколения", широко применяющейся в настоящее время и имеющей пропускную способность порядка 100Mb/сек.

SGRAM (Synchronous Graphic RAM) - разновидность синхронной видеопамяти.

SIMM (Single In-line Memory Module) - наиболее распространенный в течение долгого времени форм-фактор для модулей памяти. Представляет собой прямоугольную плату с контактной полосой вдоль одной из сторон, фиксируется в разъеме поворотом с помощью защелок. Контакты с двух сторон платы на деле являются одним и тем же контактом (single). Наиболее распространены 72-контактные SIMM (ширина шины 32 бит).

SLDRAM (SyncLink DRAM)- условное название высокоскоростной памяти, разрабатываемой консорциумом производителей в качестве открытого стандарта в противовес Rambus DRAM.

SRAM (Static RAM – статическая память со случайным доступом) – способна хранить информацию в статическом режиме – то есть сколь угодно долго при отсутствии обращений (но при наличие питающего напряжения).

SRAM (Static RAM) - статическая память - разновидность RAM, единицей хранения информации в которой является состояние "открыто-закрыто" в транзисторной сборке. Используется приемущественно в качестве кэш-памяти 2-го уровня. Ячейка SRAM более сложна по сравнению с ячейкой DRAM, поэтому более высокое быстродействие SRAM компенсируется высокой ценой. Несмотря на низкое энергопотребление, является энергозависимой.

UV-EPROM (Ultra Violet EPROM – репрограммируемая память только для чтения с ультрафиолетовым стиранием) – разновидность EPROM, стирание информации в которой происходит под воздействием ультрафиолета. Микросхемы такой памяти имеют стеклянное окошко через которое происходит облучение кристалла памяти ультрафиолетом.

Асинхронный - Asynchronous.Термин применяется к устройствам памяти, цикл обращения к которым состоит из стадий, имеющих разную длительность, что не позволяет оптимизировать совместную работу подсистемы памяти и процессора. В настоящее время происходит вытеснение асинхронных устройств синхронными.

Байт – Byte- единица информации, состоящая из 8 бит, широко используется для практического измерения объемов данных (например, размера файла, а также, что важно для нас, объема оперативной памяти). Обозначается заглавной буквой B.

Банк памяти – совокупность микросхем или модулей памяти, обеспечивающих для данной системы разрядность хранимых данных (шины данных микропроцессора).

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

Виртуальная память - Virtual memory - ресурсы оперативной памяти, выделяемые прикладной программе операционной системой. Физическое расположение виртуальной памяти может не совпадать с логической адресацией данных в прикладной программе. Преобразование логических адресов программы в физические адреса обеспечивается аппаратными средствами и операционной системой.

Временная диаграмма - количества тактов системной шины, необходимых для доступа к случайно выбранному адресу и следующим за ним адресам. Характерные диаграммы для разных типов памяти (в предположении, что они достаточно быстры, чтобы оптимально взаимодействовать с шиной) - 5-3-3-3 (fast page), 5-2-2-2 (EDO), 5-1-1-1 (SDRAM).

Защищённый режим. В защищённом режиме используются полные возможности 32-разрядного процессора — обеспечивается непосредственный доступ к 4 Гбайт физического адресного пространства и многозадачный режим с параллельным выполнением нескольких программ (процессов). Память является сегментированной, сегментам присваиваются определенные атрибуты, такие, что часть контроля за доступом к сегментам можно переложить на сам микропроцессор. В защищенном режиме программа не может обратиться по любому физическому адресу памяти. Для этого она должна иметь определенные полномочия и удовлетворять ряду требований.

Логический адрес –адрес, к которому обращается процесс. Логический адресотличается от адресов, реально существующих в оперативной памяти. В каждом конкретном случае используемые программой адреса могут быть представлены различными способами. Совокупность всех логических адресов называется логическим (виртуальным) адресным пространством. Для процессоров х86 различают реальный и защищенный режим, отличающиеся способом образования логического адреса.

Масочная ПЗУ – память класса ROM, запись информации в такую память осуществляется на этапе производства по заранее заготовленной маске - матрицы состоящей из проводников и промежутков между ними.

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

ОЗУ (Оперативное Запоминающие Устройство) см. RAM.

Отказ страницы - Page fault interrupt. Прерывание «отказ страницы» - аппаратное прерывание, которое вырабатывается, когда программа пытается читать или писать по адресам виртуальной памяти, для которых установлен флаг «отсутствует» (бит присутствия =0).

Пакетный режим - Burst mode,в отличие от обычного режима, при котором запрос по адресу возвращает только данные по этому адресу, в этом режиме такой запрос возвращает пакет данных по этому и последующим адресам.

Память - функциональную часть компьютера, предназначенная для записи, хранения и выдачи информации, представленной в цифровом виде.

Перекачка – Swap - обмен страницами между основной и виртуальной памятью.

ПЗУ (Постоянное Запоминающее Устройство) см. ROM.

ППЗУ (программируемое ПЗУ) см. PROM.

ППЗУ ЭС (РПЗУ с электрическим стиранием) см. EEPROM.

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

Программатор – устройство для прошивки памяти класса ROM.

Прошивка (программирование) – процесс записи информации в память класса ROM.

Реальный режим. Среда выполнения в реальном режиме копирует среду выполнения МП 8086/88. Процессор поддерживает адресное пространство до 1Мбайт. Адресное пространство разбито на сегменты по 64Кбайт. 20-битный базовый адрес сегмента вычисляется сдвигом значения селектора на 4 бита влево. Данные внутри сегмента адресуются 16-битным смещением.

Регенерация – процесс восстановления содержимого ячеек памяти DRAM.

РПЗУ (репрограммируемое ПЗУ) см. EPROM.

РПЗУ УФС (РПЗУ с ультрафиолетовым стиранием) см. UV-EPROM.

Сегмент– область памяти определенного назначения, внутри которой поддерживается линейная адресация.

Статическое ОЗУ см. SRAM.

Страница - Page - минимальная единица памяти, которой оперирует система виртуальной памяти.

Файл подкачки - Paging file- специальный файл, размещающийся на одном или нескольких дисках компьютера и предназначенный для (временного) хранения страниц виртуальной памяти

Физический адрес это адрес, по которому процессор (или другое устройство) обращаются к RAM, используя шину адреса. Физический адрес можно интерпретировать как номер байта в адресном пространстве, к которому происходит обращение.

Цикл - обращения Аccess cycle- последовательность (иногда ее длительность) операций устройства памяти между двумя последовательными актами чтения либо записи. Включает в себя, в частности, все операции, связанные с указанием адреса информации.

Ширина шины - Bus width- количество линий ввода-вывода, т.е. число бит, которое может быть передано одновременно (для устройств с контролем четности из этого количества иногда исключают линии, "отвечающие" за четность, как не передающие информации). Для системной шины определяется в первую очередь типом процессора. Увеличение ширины системной шины - простой способ увеличить общую производительность системы, однако это требует коренной перестройки программного обеспечения и периферии. Все процессоры, начиная с Pentium, имеют ширину шины 64 бит.

Энергонезависимость – способность памяти сохранять информацию после отключения питания. Данный термин принято применять к памяти ROM.

Ячейка памяти – элемент памяти, способный нести один бит информации.

Наши рекомендации