Основы микропроцессорной техники

https://rekforum.ru/viewtopic.php?t=6573          

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


Оперативная память занимает значительную часть адресного пространства компьютера. Ее установленный объем и быстродействие оказывают огромное влияние на быстродействие персонального компьютера в целом (порой даже большее, чем скорость процессора). Надежность ее работы во многом определяет надежность всего компьютера. Поэтому всеми разработчиками ей уделяется большое внимание.

Все персональные компьютеры используют оперативную память динамического типа (DRAM — Dynamic Random Access Memory), основным преимуществом которой перед статической оперативной памятью (SRAM — Static RAM) является низкая цена. Это связано с тем, что если элемент статической памяти (триггер) требует 4—6 транзисторов, то элемент динамической памяти — это интегральный конденсатор, для обслуживания которого требуется 1—2 транзистора. Отсюда же следуют два основных недостатка динамической памяти: она требует регенерации (то есть постоянного возобновления заряда на разряжающемся конденсаторе) и имеет в несколько раз меньшее быстродействие по сравнению со статической памятью. К тому же во время регенерации динамическая память недоступна для обмена, что также снижает быстродействие компьютера. Отметим, что сейчас обычно применяют встроенную регенерацию, не требующую внешнего обслуживания, но опять-таки занимающую время.

Переход на полностью статическую память слишком сильно повысил бы стоимость компьютера в целом (к тому же необходимый объем оперативной памяти компьютера все увеличивается), поэтому статическую память применяют только в самых «узких» местах, там, где без высокой скорости не обойтись, например, для кэш-памяти. Что касается динамической памяти, то ее развитие идет по пути снижения времени доступа благодаря структурным и технологическим усовершенствованиям. Например, второе поколение динамической памяти EDO RAM (Extended Data Output RAM) имело быстродействие примерно на 20—25% выше, чем у обычной памяти. Это достигается за счет того, что следующее обращение к памяти возможно еще до завершения предыдущего обращения.
Третье поколение динамической памяти — SDRAM (Synchronous DRAM) — еще на столько же быстрее (рабочая частота в настоящее время достигает 133 МГц). Еще более быстродействующая память — DDR SDRAM (частота до 400 МГц) и память RDRAM (частота до 1 ГГц и даже выше).

Для упрощения установки оперативной памяти в компьютер ее выполняют в виде небольших модулей — печатных плат с ножевым (печатным) разъемом, на которые установлены микросхемы памяти (SIMM — Single In-Line Memory Module). Эти модули устанавливаются в специальные SIMM-разъемы на материнской плате, что позволяет пользователю легко менять объем памяти компьютера, учитывая при этом необходимый уровень быстродействия, сложность решаемых задач и свои финансовые возможности. Широко применяются 72-контактные SIMM-модули разного объема. Отметим, что не рекомендуется одновременно использовать несколько модулей с разным быстродействием: в некоторых компьютерах это приводит к сбоям. В современных компьютерах на базе процессоров Pentium применяются также модули DIMM (Dual In-Line Memory Module — модуль памяти с двусторонними печатными выводами), имеющие 64 бита данных.

Модули памяти иногда поддерживают проверку содержимого памяти на четность. Для этого к 8 битам данных каждого адреса памяти добавляется девятый бит четности. Он записывается при каждой записи информации в соответствующий байт памяти и проверяется при чтении информации из соответствующего байта памяти. Если обнаруживается несоответствие бита четности байту информации, то вырабатывается сигнал, вызывающий немаскируемое прерывание NMI.

Все адресное пространство памяти компьютера разделяется на несколько областей, что связано, в первую очередь, с необходимостью обеспечения совместимости с первыми компьютерами семейства. В компьютере IBM PC XT на процессоре i8088 процессор мог адресовать 1 Мбайт памяти (20 адресных разрядов). Но все программные и аппаратные средства строились исходя из предположения, что доступное адресное пространство — только младшие 640 Кбайт (тогда это казалось вполне достаточным).


Данная область памяти получила название стандартной памяти (Conventional memory). Именно в пределах этих 640 Кбайт (адреса 0…9FFFF) работает операционная система MS DOS и все ее прикладные программы.

Первые 1024 байта (адреса 0…3FF) хранят таблицу векторов прерывания (Interrupt Vectors) объемом 256 двойных слов, формируемую на этапе начальной загрузки. Однако если процессор работает в защищенном режиме, таблица векторов может располагаться в любом другом месте памяти.

Адреса 400…4FF отводятся под область переменных BIOS (BIOS Data Area). Подробнее о BIOS будет рассказано в следующем разделе.

Адреса 500…9FFFF включают в себя область операционной системы DOS (DOS Area) и память пользователя (User RAM).

Оставшиеся от 1 Мбайта памяти 384 Кбайта (адреса A0000…FFFFF), зарезервированные под другие системные нужды, называются UMA (Upper Memory Area) — область верхней памяти или UMB (Upper Memory Blocks) — блоки верхней памяти или High DOS Memory.

Пространство видеопамяти (адреса A0000…BFFFF) содержит области для хранения текстовой и графической информации видеоадаптера.

Пространство памяти с адресами E0000…FFFFF отведено под системную постоянную память компьютера ROM BIOS.

В этой же области выделено окно размером в 64 Кбайта (page frame) с адресами D0000…DFFFF, через которое программы могли получать доступ к дополнительной (отображаемой) памяти (Expanded memory) объемом до 32 Мбайт, оставаясь в пределах того же 1 Мбайта адресуемой памяти. Это достигается путем поочередного отображения четырех страниц по 16 Кбайт из дополнительной памяти в выделенное окно. При этом положение страниц в дополнительной памяти можно изменять программным путем. Понятно, что работать с дополнительной памятью менее удобно, чем с основной, так как в каждый момент компьютер «видит» только окно в 64 Кбайт. Поэтому сейчас она применяется довольно редко.

В настоящее время область памяти с адресами C0000…DFFFF чаще используется для оперативной и постоянной памяти, входящей в состав различных адаптеров и плат расширения компьютера.



В результате логическая организация адресного пространства в пределах 1 Мбайт получилась довольно сложной (рис. 7.10). И такую же организацию должны поддерживать все персональные компьютеры семейства IBM PC для обеспечения совместимости с предшествующими моделями.


Рис. 7.10.  Распределение адресного пространства памяти.

При дальнейшем расширении адресуемого пространства памяти в последующих моделях компьютеров вся память объемом свыше 1 Мбайт получила название расширенной памяти (Extended memory). Для доступа к ней микропроцессор должен переходить из реального режима в защищенный и обратно. Общий объем памяти персонального компьютера (верхняя граница расширенной памяти) может доходить до 16 Мбайт (24 разряда адреса) или до 4 Гбайт (32 разряда адреса).

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

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

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


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

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

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


Содержание раздела