Используемый в IBM PC/XT процессор i8086 через свои 20 адресных линий может иметь доступ к пространству памяти всего в 1 Мбайт. Но в то время, когда появились эти компьютеры, возможность увеличения доступной оперативной памяти в 10 раз (по сравнению с обычными 64 Кбайт) была просто фантастической. Отсюда наверно и появилась «волюнтаристская» цифра — 640 Кбайт. Эти первые 640 Кбайт адресуемого пространства в IBM-совместимых компьютерах называют обычно стандартной памятью (conventional memory). Оставшиеся 384 Кбайт были зарезервированы для систем использования и носят название памяти в верхних или высших адресах (UMB, Upper Memory Blocks). Эта область памяти резервируется под размещение системного ROM BIOS (Read Only Меш Basic Input Output System), видеопамяти и ROM-памяти, полнительных адаптеров.
Дополнительная, или ехрanded-памягь
Почти на всех персональных компьютерах область UMB редко оказывается заполненной полностью. Пустует, как правило, область расширения системного ROM BIOS часть видеопамяти и области под дополнительные модули ROM. На этом и базируется спецификация дополнительной памяти EMS (Expanded Memory Specification), разработка фирмами Lotus Development, Intel и Microsoft (поэтому называемая иногда LIM-спецификацией) еще в 1985 г. и позволяющая использовать оперативную память свыше стандартных 640 Кбайт для прикладных программ. Принцип использования дополнительной памяти основан на переключении блоков (страниц) памяти. В выделяется незанятое «окно» (page frame) в 64-Кбайт, которое разбито на 16-килобайтные страницы. Программные и аппаратные средства позволяют отображать любой 16-килобайтный сегмент этой дополнительной expanded-иамйти в любой из выделенных 16-килобайтных страниц окна. Хотя микропроцессор всегда обращается к данным, хранимым в окне (адрес 1 Мбайт), адреса этих данных могут быть смещены в дополнительной памяти относительно окна на несколько мегабайт. Спецификация LIM/EMS 4.0 позволяет использовать до 2048 логических страниц и расширить объем адресуемой памяти до 32 Мбайт. Кроме этого, как и в EMS, физические страницы могут быть расположены в любом месте памяти , отличный от 16 Кбайт. Таким образом могут задействоваться области видеопамяти и UMB. Возможности спецификации позволяют, в частности, организовать многозадачный режим работы.
Paсширенная, или ехрanded-памягь
Компьютеры, использующие процессор i80286 с 24-разрядными адресными шинами, физически могут адресовать 16 Мбайт, а в случае процессоров i80386/486 — 4 Гбайта памяти. Такая возможность появляется только при защищённом режиме работы процессора (protected mode), которого операционная система MS DOS не поддерживает. Расширенная память располагается выше области адресов 1 Мбайт. Для работы с extended-памятью микропроцессор должен переходить из реального в защищенный режим и обратно. Микропроцессоры i80386/486 выполняют эту операцию достаточно легко, чего не скажешь о i80286. При наличии соответствующего программного драйвера расширенную память можно эмулировать как дополнительную. Аппаратную поддержку в этом случае должен обеспечивать процессор не ниже i80386 или вспомогательный набор специальных микросхем.
Кэш-память предназначена для согласования скорости работы сравнительно медленных устройств, таких, например как динамическая память с относительно быстрым микропроцессором. Использование кэш-памяти позволяет избегать циклов ожидания в его работе, которые снижают производительность всей системы.
У микропроцессора, синхронизируемого, например, тактовой частотой 33 МГц, тактовый период составляет приблизительно 30 нс. Обычные современные микросхемы динамической памяти имеют время выборки от 60 до 80 нс. Отсюда, в частности, следует, что центральный процессор вынужден простаивать 2-3 периода тактовой частоты (т.е. имеет 2-3 цикла ожидания), пока информация из соответствующих микросхем памяти установится на системной шине данных компьютера. Понятно, что в это время процессор не может выполнять никакую другую работу. Такая ситуация ведет обычно к тому, что общая производительность системы снижается, что, разумеется, крайне нежелательно.
С помощью технологии обработки, использующей кэш-память, обычно делается попытка согласовать работу медленных внешних устройств с быстрым процессором. В переводе с английского слово «сасhе» означает не что иное, как убежище или тайник. Эти значения, очевидно, можно толковать по-разному: и как то, что кэш, по сути, является промежуточным буферным запоминающим устройством, и как то, что работа кэш-памяти практически прозрачна (т.е. невидима) для пользователя. Кстати, в отечественной литературе синонимом кэш-памяти является термин «сверхоперативная память».
Соответствующий контроллер кэш-памяти должен заботиться о том, чтобы команды и данные, которые будут необходимы микропроцессору в определенный момент времени, оказывались в кэш-памяти именно к этому моменту. При некоторых обращениях к оперативной памяти соответствующие значения заносятся в кэш. В ходе последующих операций чтения по тем ке адресам памяти обращения происходят только к кэш-память, без затраты процессорного времени на ожидание, которое неизбежно при работе с основной динамической памятью. В персональных компьютерах технология использования кэш-памяти находит применение прежде всего при обмене данными между микропроцессором и оперативной памятью, а также между основной памятью и внешней (накопителями на магнитных носителях).
На кристалле микросхемы оперативной памяти SRАМ находится огромное количество транзисторов. Как уже говорилось, принщп работы ячейки динамической памяти состоит в сохранении ; заряда на крошечном конденсаторе, выполненном в полупроводниковой структуре кристалла. Понятно, что для того чтобы зарядить конденсатор до определенного значения, необходимо некоторое время. Чтобы конденсатор разрядился, также необходимо определенное время. Таким образом, в результате процессов заряда и разряда конденсатора ячейка памяти устанавливает либо в состояние 1, либо в состояние 0. Поскольку для заряда и разряда конденсатора необходимо вполне определенное (и немалое) время, то в этом и кроется причина ограниченного быстродействия динамической памяти.
Статическая же память основана на триггерах, в которых применяются интегральные транзисторы-переключатели. Такие транзисторы используют ключевой принцип работы: они либо закрыты, либо открыты. Конечно, на переход транзистора из одного состояния в другое также необходимо какое-то время, однако оно существенно меньше времени заряда-разряда конденсатора, выполняющего роль элемента памяти. Наряду с таким достоинством, как быстродействие по отношению к динамической памяти, статическая память имеет и недостатки. Она потребляет больший ток и имеет более сложную архитектуру -- на одну ячейку памяти требуется больше транзисторов. Как следствие этого, статическая память существенно дороже динамической. Кроме того, при одинаковом коэффициенте интеграции статическая память обладает значительно меньшей информационной емкостью.
При обмене данными возникает похожая проблема. Адреса данных, которые вскоре понадобятся процессору для обработки, находятся в большинстве случаев рядом с адресами данных, обрабатываемых непосредственно в данное время. Поэтому кэш-контроллер должен также заботиться о размещении всего блока данных в статической памяти.
Метод Write Through, называемый также методом сквозной записи, предполагает наличие двух копий данных — одной в основной памяти, а другой — в кэш-памяти. Каждый цикл записи процессора в память идет через кэш. Это обусловливает, конечно, высокую загрузку системной шины, так как на каждую операцию модификации данных приходится две операции записи. Поэтому каждое обновление содержимого кэш-памяти ощутимо сказывается на работе шины. С другой стороны, микропроцессор по-прежнему вынужден ожидать окончания записи в основную память.
Метод Buffered Write Through является разновидностью метода Write Through и называется также методом буферизованной сквозной записи. Для того чтобы как-то уменьшить загрузку шины, процесс записи выполняется в один или несколько буферов, которые работают по принципу FIFO (First Input-First Output). Таким образом, цикл записи для микропроцессора заканчивается практически мгновенно (т.е. когда данные записаны в буфер), хотя информация в основной памяти еще не сохранена. Сам же микропроцессор может выполнять дальнейшую обработку команд. Конечно, соответствующая логика управления должна заботиться о том, чтобы своевременно опустошать заполненные буферы. При использовании данного метода процессор полностью освобожден от работы с основной памятью.
При использовании метода Write Back, называемого также методом обратной записи, цикл записи микропроцессора происходит сначала в кэш-память, если там есть адрес приемника. Если адреса приемника в кэш-памяти не оказывается, то информация записывается непосредственно в память. Содержимое основной памяти обновляется только тогда, когда из кэш-памяти в нее записывается полный блок данных, называемый длиной строки-кэша (cache-line).
При работе с кэш-памятью применяется ассоциативный принцип, когда старшие разряды адреса используются в качестве признака, а младшие — для выбора слова. Архитектура кэш-памяти определяется тем, каким образом память отображается на кэш. Существуют три разновидности отображения: кэш-память с прямым отображением, частично ассоциативная и полностью ассоциативная. При прямом отображении каждая ячейка основной памяти может отображаться только на одну ячейку кэша, в частично ассоциативной —на две и больше (т.е., если одна ячейка кэша занята, можно использовать другую). В случае наличия четырех входов кэш-память называют 4-канальной частично ассоциативной, как, например, у i486. При полностью ассоциативном подходе в качестве разрядов признаков используются все адресные разряды.