Лекция 7. Память

7.1. Как устроена память

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

Байты могут объединяться в ячейки, которые называются также словами. Для каждого компьютера характерна определенная длина слова — два, четыре или восемь байтов. Это не исключает использования ячеек памяти другой длины (например, полуслово, двойное слово). Как правило, в одном машинном слове может быть представлено либо одно целое число, либо одна команда. Однако, допускаются переменные форматы представления информации. Разбиение памяти на слова для четырехбайтовых компьютеров представлено в таблице:

Байт 0 Байт 1 Байт 2 Байт 3 Байт 4 Байт 5 Байт 6 Байт 7
ПОЛУСЛОВО ПОЛУСЛОВО ПОЛУСЛОВО ПОЛУСЛОВО
СЛОВО СЛОВО
ДВОЙНОЕ СЛОВО

Широко используются и более крупные производные единицы объема памяти: Килобайт, Мегабайт, Гигабайт, а также, в последнее время, Терабайт и Петабайт.

Современные компьютеры имеют много разнообразных запоминающих устройств, которые сильно отличаются между собой по назначению, временным характеристикам, объёму хранимой информации и стоимости хранения одинакового объёма информации.  Различают два основных вида памяти — внутреннюю и внешнюю.

7.2. Какие устройства образуют внутреннюю память

В состав внутренней памяти входят оперативная память, кэш-память и специальная память.

1.  Оперативная память

Оперативная память (ОЗУ, англ. RAM, Random Access Memory — память с произвольным доступом) — это быстрое запоминающее устройство не очень большого объёма, непосредственно связанное с процессором и предназначенное для записи, считывания и хранения выполняемых программ и данных, обрабатываемых этими программами.

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

Объем ОЗУ обычно составляет от 32 до 512 Мбайт. Для несложных административных задач бывает достаточно и 32 Мбайт ОЗУ, но сложные задачи компьютерного дизайна могут потребовать от 512 Мбайт до 2 Гбайт ОЗУ.

Обычно ОЗУ исполняется из интегральных микросхем памяти SDRAM (синхронное динамическое ОЗУ). Каждый информационный бит в SDRAM запоминается в виде электрического заряда крохотного конденсатора, образованного в структуре полупроводникового кристалла. Из-за токов утечки такие конденсаторы быстро разряжаются, и их периодически (примерно каждые 2 миллисекунды) подзаряжают специальные устройства. Этот процесс называется регенерацией памяти (Refresh Memory).  Микросхемы SDRAM имеют ёмкость 16 — 256 Мбит и более. Они устанавливаются в корпуса и собираются в модули памяти.

Большинство современных компьютеров комплектуются модулями типа DIMM (Dual-In-line Memory Module — модуль памяти с двухрядным расположением микросхем).  В компьютерных системах на самых современных процессорах используются высокоскоростные модули Rambus DRAM (RIMM) и DDR DRAM.

Микросхемы памяти RIMM (сверху) и DIMM (снизу)
 
Рис. 7.1. Микросхемы памяти RIMM (сверху) и DIMM (снизу)

Модули памяти характеризуются такими параметрами, как объем —(16, 32, 64, 128, 256 или 512 Мбайт), число микросхем, паспортная частота(100 или 133 МГц), время доступа к данным (6 или 7 наносекунд) и число контактов (72, 168 или 184).   В 2001 г. начинается выпуск модулей памяти на 1 Гбайт и опытных образцов модулей на 2 Гбайта.

2.  Кэш-память

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

Кэш-памятью управляет специальное устройство — контроллер, который, анализируя выполняемую программу, пытается предвидеть, какие данные и команды вероятнее всего понадобятся в ближайшее время процессору, и подкачивает их в кэш-память. При этом возможны как "попадания", так и "промахи". В случае попадания, то есть, если в кэш подкачаны нужные данные, извлечение их из памяти происходит без задержки. Если же требуемая информация в кэше отсутствует, то процессор считывает её непосредственно из оперативной памяти. Соотношение числа попаданий и промахов определяет эффективность кэширования.

Кэш-память реализуется на микросхемах статической памяти SRAM (Static RAM), более быстродействующих, дорогих и малоёмких, чем DRAM  (SDRAM).   Современные микропроцессоры имеют встроенную кэш-память, так называемый кэш первого уровня размером 8, 16 или 32 Кбайт. Кроме того, на системной плате компьютера может быть установлен кэш второго уровня ёмкостью 256, 512 Кбайт и выше.

3.  Специальная память

К устройствам специальной памяти относятся постоянная память (ROM), перепрограммируемая постоянная память (Flash Memory), память CMOS RAM, питаемая от батарейки, видеопамять и некоторые другие виды памяти.

Постоянная память (ПЗУ, англ. ROM, Read Only Memory — память только для чтения) — энергонезависимая память, используется для хранения данных, которые никогда не потребуют изменения. Содержание памяти специальным образом "зашивается" в устройстве при его изготовлении для постоянного хранения. Из ПЗУ можно только читать.

Перепрограммируемая постоянная память (Flash Memory) — энергонезависимая память, допускающая многократную перезапись своего содержимого с дискеты.

Прежде всего в постоянную память записывают программу управления работой самого процессора. В ПЗУ находятся программы управления дисплеем, клавиатурой, принтером, внешней памятью, программы запуска и остановки компьютера, тестирования устройств.

Важнейшая микросхема постоянной или Flash-памяти — модуль BIOS. Роль BIOS двоякая: с одной стороны это неотъемлемый элемент аппаратуры, а с другой строны — важный модуль любой операционной системы.

BIOS (Basic Input/Output System — базовая система ввода-вывода) — совокупность программ, предназначенных для автоматического тестирования устройств после включения питания компьютера  и  загрузки операционной системы в оперативную память.

Разновидность постоянного ЗУ — CMOS RAM.

CMOS RAM — это память с невысоким быстродействием и минимальным энергопотреблением от батарейки. Используется для хранения информации о конфигурации и составе оборудования компьютера, а также о режимах его работы.


 
Интегральные схемы BIOS и CMOS

Содержимое CMOS изменяется специальной программой Setup, находящейся в BIOS (англ. Set-up — устанавливать, читается "сетап").

Для хранения графической информации используется видеопамять.

Видеопамять (VRAM) — разновидность оперативного ЗУ, в котором хранятся закодированные изображения. Это ЗУ организовано так, что его содержимое доступно сразу двум устройствам — процессору и дисплею. Поэтому изображение на экране меняется одновременно с обновлением видеоданных в памяти.

7.3. Логическая организация оперативной памяти

На современную организацию основной памяти существенное влияние оказали конструкции предыдущих моделей компьютеров.

Процессор 8088 имеет доступ всего к 1 Мбайту основной памяти (по тем временам такой объем памяти казался неисчерпаемым). Основная память имеет для ОЗУ и ПЗУ единое адресное пространство. Адресное пространство определяет максимально возможное число непосредственно адресуемых ячеек основной памяти. Первые 640 Кбайт адресного пространства называются стандартной памятью (СМА), а оставшиеся 384 Кбайта - памятью в верхних адресах (UMB или UMA). В стандартной памяти располагается выполняемая в данный момент программа, а UMB резервируется для размещения системных программ: базовой системы ввода-вывода, служебных программ, видеопамяти. Именно в области UMB располагаются адреса ПЗУ, в котором записаны программы начальной загрузки ЭВМ, драйверы и т.д. Обычно в верхней памяти остаются свободные участки, которые могут быть использованы по усмотрению разработчиков.

Когда возникла необходимость увеличения объема основной памяти, то была разработана спецификация EMS, которая позволяет через пустые участки в области UMB размером 64 Кбайта обмениваться информацией с дополнительной памятью, объемом до 32Мбайт. Процессор 286 имеет 24-разрядную адресную шину, что позволяет работать с памятью объемом 16 Мбайт. У процессоров 386, 486 и Pentium адресная шина 32-разрядная, поэтому допустимый объем памяти составляет 4 Гбайта.

При разработке компьютеров на новых процессорах необходимо было обеспечить совместимость с предыдущими моделями и в то же время использовать расширенную память свыше 1 Мбайта. Режим совместимости новых процессоров с 8088 называется обычным режимом. Второй режим, при котором эти процессоры могут обращаться к памяти свыше 1 Мбайт, называется защищенным. Для работы с расширенной памятью разработана спецификация XMS.