Что такое SDRAM?

Не так давно в разных компьютерных таблицах появились загадочные слова SDRAM и BEDO RAM. Легко догадаться, что относятся они к оперативной памяти (RAM). Появление чего-то нового в этой области интересно уже само по себе, но глядя на приведенную рядом величину времени доступа (10ns вместо 50 - 70 ns для EDO), задаешься вопросом: что же за монстр выполз из подземных лабораторий разработчиков микросхем. Еще больший разброд и шатание в ряды пользователей вносят длинные 168-pin'овые разъемы под память на новых системных платах. Попробую внести некоторую ясность в этот вопрос.

Итак, за аббревиатурой SDRAM скрывается синхронная динамическая оперативная память (synchronous dynamic RAM). Из названия уже можно сделать кое-какие выводы о принципе ее работы. Во-первых, это память динамическая, то есть требует периодического обновления данных и вообще основана на той же технологии, что и современная EDO- и FPM-память (см. "КВ" №38). Во-вторых, это память синхронная, значит, синхронизируется каким-то сигналом. Самый логичный кандидат на эту роль - тактовая частота шины, именно по ней и происходит синхронизация. Возникает законный вопрос: зачем это нужно?

Дело в том, что при частоте шины 66 МГц доступ к той же EDO памяти происходит следующим образом: первый байт считывается за 5 тактов (минимум), последующие байты в той же строке считываются за 2 такта (тоже минимум). Таким образом время на считывание четырех байтов можно представить так: 5-2-2-2 (чтобы заполнить строку кэша, необходимо считать все четыре байта). Очевидно, что процессору приходится некоторое время простаивать. Если же синхронизировать процесс считывания с частотой шины, то получится 5-1-1-1, значит, время простоя будет меньше. В этом и заключается основная идея работы синхронной памяти. Рассмотрим этот процесс подробнее.

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

Далее, на обычную память необходимо было подавать внешний сигнал при считывании каждого байта (значит, операция считывания может занимать несколько тактов). Микросхема SDRAM имеет специальный регистр (Mode Register), с помощью которого задается режим чтения (или записи). После обращения к первому байту сигналы для считывания последующих значений генерируются самой микросхемой каждый такт. Таким образом можно запрограммировать считывание одного, двух, четырех, восьми байт или считывание всей строки матрицы. При таком пакетном режиме (burst mode) работы задержка в несколько тактов будет только между обращением к памяти и первым байтом данных, последующие же байты будут поступать на шину данных каждый такт (см. рис. 1).

 
Рис.1

Еще одна особенность SDRAM заключается в том, что на одном модуле (DIMM) может находиться несколько (два или четыре) банков памяти. Это позволяет одновременно держать несколько активных строк и осуществлять к ним поочередный доступ. В результате можно получить непрерывный поток данных, поскольку во время подготовки к работе одного банка можно считывать данные из другого (этот метод называется interleaving).

Если пересказать все это простыми словами, то получится, что данная память работает синхронно с шиной, причем, частота шины не обязательно должна быть равна 66 МГц. На самом деле время доступа 10ns, приводимое в качестве параметра SDRAM, представляет собой минимальное время между циклами чтения последовательных байтов (то есть характеризует максимальную частоту шины, с которой может синхронизироваться такая память). 10 наносекунд соответствуют частоте шины 100 МГц. Учитывая стремительный рост скоростей процессоров, такой частоты остается ждать не так уж долго (некоторые материнские платы уже сейчас поддерживают тактовые частоты 75 и 83 МГц).

Память SDRAM целесообразно использовать в многозадачных, многопользовательских системах, поскольку ее быстродействие сравнимо с кэшем второго уровня (соответственно 5-1-1-1 и 2-1-1-1 тактов для шины 66 МГц).

SDRAM выпускается в виде 168 pin'овых модулей DIMM (dual in line memory module). Учтите, что если на системной плате есть такой разъем под память, это еще не значит, что плата поддерживает SDRAM - EDO тоже выпускается в виде 168 контактных DIMM'ов. SDRAM точно поддерживают Intel'овские чипсеты VX и TX, насчет остальных не знаю.

Однако SDRAM не сразу стала стандартом. Первоначально разработки в области синхронной динамической памяти производились многими фирмами, но поскольку Intel упорно поддерживал шинные частоты не выше 66 МГц (83 МГц и сейчас обычно не документируется на системных платах, а 75 МГц официально используется только процессором Cyrix 200+), то работа над памятью, предназначенной для частот до 100 МГц показалась им нерентабельной. Поэтому идеи, заложенные в SDRAM (внутренняя генерация адреса и пакетный режим работы), были использованы в обычной EDO-памяти.

В результате получилась BEDO DRAM (Burst EDO DRAM). В ней применяется внутренний счетчик, позволяющий автоматически генерировать адреса для чтения последующих байтов. Чтение осуществляется пакетами фиксированного размера (4 байта). BEDO DRAM оптимизирована для работы при частоте шины 66 МГц и позволяет добиться времени считывания 5-1-1-1. Соответствующая временная диаграмма приведена на рисунке 2.

Рис.2

Из нее видно, что на схему необходимо подать адрес только первого из четырех столбцов. Если следующие четыре байта читаются из этой же строки, то между первым и вторым пакетом не будет разрыва, то есть мы получим время доступа 5-1-1-1-1-1-1-1, а не 5-1-1-1-5-1-1-1. Однако при повышении частоты ее временные характеристики неизбежно ухудшатся, чего не скажешь о SDRAM. Из-за появления последней BEDO DRAM не получила особого распространения. Насколько я знаю, BEDO поддерживают чипсеты VP580, VP590 и VP680 фирмы VIA, но это - непроверенные данные.

Константин АФАНАСЬЕВ,
AKG_Monster@usa.net

Версия для печатиВерсия для печати

Номер: 

40 за 1997 год

Рубрика: 

Hardware
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!