Рис.5. Страничный режим считывания стандартной DRAM (FPM)
Обратим внимание на то, что информация на выходе микросхем стандартной DRAM появляется с некоторой задержкой относительно спада импульса CAS# и держится только во время его низкого уровня. После подъема CAS# выходной буфер микросхемы переводится в третье (высокоимпедансное) состояние. Стандартная память со временем доступа 60-70 нс в режиме быстрого страничного обмена при частоте системной шины 66 МГц может обеспечить лучший пакетный цикл чтения 5-3-3-3.
Следующей модификацией памяти, направленной на повышение производительности при том же быстродействии запоминающих элементов, явилась память EDO (Extended или Enhanced Data Out) DRAM. Эта память содержит регистр-защелку (data latch) выходных данных, что обеспечивает некоторую конвейеризацию работы для повышения производительности при чтении. Регистр "прозрачен” при низком уровне сигнала CAS#, а по его подъему фиксирует текущее значение выходных данных до следующего его спада. Перевести выходные буферы в высокоимпедансное состояние можно либо подъемом сигнала ОЕ# (Output Enable), либо одновременным подъемом сигналов CAS# и RAS#, либо импульсом WE#, который при высоком уровне CAS# не вызывает записи (в PC управление по входу ОЕ# практически не используют).
Временная диаграмма работы с EDO-памятью в режиме страничного обмена приведена на рис.6, этот режим иногда называют гиперстраничным режимом обмена НРМ (Hyper Page mode). Его отличие от стандартного заключается подъеме импульса CAS# до появления действительных данных на выходе микросхемы. Считывание выходных данных может производиться внешними схемами вплоть до спада следующего импульса CAS#, что позволяет экономить время за счет сокращения длительности импульса CAS#. Время цикла внутри страницы Для памяти со временем доступа 60 нс уменьшается с 35 нс (28,5 МГц) у стандартной DRAM до 25 нс (40 МГц) у EDO, повышая производительность в страничном режиме на 40%. EDO-память со временем доступа 60-70 нс в режиме гиперстраничного обмена при частоте системной шины 66 МГц может обеспечить лучший пакетный цикл чтения 5-2-2-2. Благодаря простоте данного усовершенствования при одном и том же времени доступа запоминающих элементов цена EDO-памяти почти не отличается от цены стандартной памяти. Однако ее применение дает эффект, соизмеримый с эффектом от установка стандартного асинхронного внешнего кэша. Более того, установка такого кэша в систему с EDO-памятью практически не дает повышения производительности. В результате распространилось мнение, что в EDO-памяти содержится внутренний кэш, однако для простого регистра-защелки название "кэш” звучит слишком торжественно.
Рис.6. Страничный режим считывания EDO DRAM (HPM)
Микросхемы EDO DRAM применяются в современных SIMM-72 и DIMM-модулях, эти модули конструктивно и по назначению выводов совместимы со стандартными (FPM). Все EDO-модули не имеют бит паритета (однобитные микросхемы EDO не выпускаются). Контрольные разряды 36-битных EDO-модулей могут использоваться только в ЕСС-памяти, в которой доступ осуществляется всегда сразу ко всем байтам.
Установка EDO DRAM вместо стандартной в неприспособленные для этого системы может вызвать конфликты выходных буферов устройств, разделяющих с памятью общую шину данных. Скорее всего этот конфликт возникнет с соседним банком памяти при использовании чередования (Bank Interleaving). Для отключения выходных буферов EDO-памяти внутри страничного цикла обычно используют сигнал WE#, не вызывающий записи во время неактивной фазы CAS# (рис.7, кривая а). По окончании цикла буферы отключаются лишь по снятию сигнала RAS# (рис.7, кривая б).
Рис.7. Управление выходным буфером EDO DRAM
Из принципиального различия в работе выходных буферов следует, что в одном банке не стоит смешивать модули EDO и стандартные. EDO-модули поддерживаются не всеми чипсетами и системными платами (в большей мере это относится к системным платам для процессоров 486). Кроме того, не все системные платы, поддерживающие EDO-память, используют потенциальный выигрыш в производительности от ее "малой конвейеризации” (это замечание больше относится к дешевым системным платам). Задержка отключения выходных буферов затрудняет применение чередования банков, из-за чего некоторые системные платы не поддерживают Bank Interleaving для EDO-памяти.
Многие современные чипсеты совместно с BIOS автоматически определяют тип установленных модулей и даже допускают смесь EDO и стандартных модулей в разных банках. Для определения типа чипсет организует специальный цикл обращения, в котором "прощупывает” все банки и заполняет таблицу, после чего переводится в режим нормального обращения (с таким специальным циклом возможна и обычная работа с памятью, но ее производительность будет на удивление низкой). В нормальном режиме обращения в зависимости от адреса, определяющего номер банка, по значению соответствующего ему полю таблицы будет организован требуемый цикл.
Микросхемы EDO применяются как в основной памяти, так и в видеопамяти современных графических адаптеров.
Результатом дальнейшего развития конвейерной архитектуры модулей памяти явилась BEDO (Burst EDO) DRAM. В микросхемах данного типа кроме регистра-защелки выходных данных, стробируемого теперь по фронту импульса CAS#, содержится еще и внутренний счетчик адреса колонок для пакетного цикла. Это позволяет выставлять адрес колонки только в начале пакетного цикла (рис.8), а во 2-й, 3-й и 4-й передачах импульсы CAS# только запрашивают очередные данные. В результате удлинения конвейера выходные данные как бы отстают на один такт CAS#, зато следующие данные появляются без тактов ожидания процессора, чем обеспечивается лучший цикл чтения 5-1-1-1 для BEDO-памяти со временем доступа 60 нс при частоте шины до 66 МГц. Задержка появления первых данных пакетного цикла окупается повышенной частотой приема последующих. BEDO-память применяется в модулях SIMM-72 и DIMM, но поддерживается далеко не всеми чипсетами.
Рис.8. Страничный режим считывания BEDO DRAM
Наиболее перспективна SDRAM (Synchronous DRAM) — быстродействующая синхронная динамическая память, работающая на частоте системной шины без тактов ожидания внутри пакетного цикла, и обеспечивающая цикл чтения 5-1-1-1 на частотах до 100 МГц. От обычной (асинхронной) динамической памяти, у которой все внутренние процессы инициируются только сигналами RAS#, CAS# и WE#, память SDRAM отличается использованием постоянно присутствующего сигнала тактовой частоты системной шины. Это позволяет создавать внутри микросхемы высокопроизводительный конвейер на основе ячеек динамической памяти со вполне обычным временем доступа (50-70 нс). Синхронный интерфейс обеспечивает трехкратный выигрыш в производительности по сравнению с традиционными микросхемами DRAM, имеющими запоминающие ячейки с тем же быстродействием. Микросхемы SDRAM являются устройствами с программируемыми параметрами, со своим набором команд и внутренней организацией чередования банков. Кроме команд записи и чтения с программируемыми параметрами пакетного цикла имеются команды автоматической регенерации и перевода в режим хранения данных с пониженным энергопотреблением. Длина пакетного цикла чтения и записи (burst length) может программироваться (1, 2, 4, 8 или 256 элементов), цикл может быть прерван специальной командой (без потери данных). Задержка данных (количество тактов) относительно команды чтения (read latency) программируется для оптимального согласования быстродействия памяти с частотой системной шины. Конвейерная адресация позволяет инициировать очередной цикл обращения до завершения предыдущего. Автоматическая регенерация (цикл CBR) выполняется по командам "Auto Refresh” (REFR), для сохранения информации требуется выполнение команд REFR с периодом 15,6 мкс (стандартная регенерация, 4096 команд за 64 мс). Существуют и модификации с пониженной частотой регенерации (extended refresh). По команде "Self Refresh” (SLFR) память переходит в режим саморегенерации, для которой не требуется никаких внешних обращений. В этом режиме операции чтения и записи запрещены. Возможен также и перевод в режим хранения с пониженным потреблением, при котором отключается питание внешних буферов. На рис.9 приведены временные диаграммы пакетных циклов записи и чтения синхронной памяти. Все входные сигналы считаются действительными во время положительного перепада тактового сигнала CLK. Текущая команда определяется комбинацией сигналов на управляющих входах RAS#, CAS#, WE#, All и AID при низком уровне CS#. Набор команд включает следующие:
-
MRS (Mode Register Set) — программирование параметров.
-
ACTV x (Bank activate/row-address entry) — активация банка и ввод адреса строки, х ~ внутренний банк: Т (Top) - "верхний”, В (Bottom) - "нижний”.
-
WRT x (Column-address entry/write operation) — команда записи и ввод адреса столбца.
-
READ x (Column-address entry/read operation) — команда чтения и ввод адреса столбца.
-
DEACx (Bank deactivate) — деактивация банка, предзаряд (precharge) RAS.
-
REFR (Auto-refresh), NOOP (No Operations), STOP и DESL (Deselect) - вспомогательные команды.
-
SLFR (Self-refresh), PDE (Power-down entry), HOLD - команды саморегенерации и энергосбережения, вводящиеся с помощью сигнала СКЕ.
-
MASK, ENBL — команды разрешения операций с байтами для каждого такта пакетного цикла, вводимые сигналами DQMx.
Рис.9. Временные диаграммы пакетных циклов SDRAM:А и В — данные для записи по адресу R0/С0 и R0/C0+1; С и D —данные, считанные по адресу R0/C1 и RO/C1+1
Обратим внимание, что внутренний счетчик адреса работает по модулю, равному запрограммированной длине пакетного цикла (например, при burst Length = 4 он не позволяет перейти границу обычного четырехэлементного пакетного цикла). Кроме того, порядок счета адресов внутри пакетного цикла соответствует специфическому порядку (interleaved), принятому в процессорах i486 и старше. Микросхемы синхронной памяти обычно имеют сигнал, выбирающий режим счета: чередование (для процессоров Intel) или последовательный счет (для Power PC).
По причине существенного отличия интерфейса микросхемы SDRAM не могут быть установлены в модули SIMM, они применяются в DIMM или устанавливаются прямо на системную (или графическую) плату.