SDRAM

SDRAM (Synchronous Dynamic Random Access Memory) - синхронная динамическая память, обладающая произвольным доступом. Это вид запоминающего устройства, которое применяется в ПК и выполняет роль оперативной памяти.

Данный тип памяти особо отличается от других типов DRAM, в которых применяется асинхронный обмен данными. В случае с SDRAM, ответ на поступивший управляющий сигнал возвращается не моментально, а только после получения следующего тактового сигнала. Тактовые сигналы организуют работу SDRAM, которая принимает вид конечного автомата, исполняющего команды, входящие в него. Команды при этом могут принимать вид непрерывного потока: следующие команды не ждут завершения выполнения предыдущих. По сути, работа представляет собой конвейерную обработку: сразу за командой записи следует новая команда, минуя ожидания завершения записи предыдущих данных.

Так, поступление команды чтения приводит к тому, что на выходе данные появляются через какое-то число тактов. Такое время именуется задержкой (SDRAM latency) и является чуть ли не самым главным показателем этого типа устройств.

Циклы обновления производятся сразу для всей строки, по сравнению с предыдущими типами DRAM, которые обновляли данные по внутреннему счетчику. В них применялся метод обновления по команде CAS перед RAS.

История

Массовое производство и популярность SDRAM зародились в 1993 году. Изначально, данный тип памяти выступал в виде альтернативы дорогой видеопамяти (VRAM). Впрочем, в скором времени, SDRAM завоевал широкую популярность и стал использоваться как ОЗУ, вытесняя с рынка прочие типы динамической памяти. Затем, на рынке стали появляться новые разработки, в частности, технология DDR, которая позволила существенно усовершенствовать SDRAM. После создания модернизированного стандарта DDR SDRAM последовала целая цепочка логических обновлений: DDR2 SDRAM, а позже - DDR3 SDRAM.

SDR SDRAM

При выходе на рынок стандартов-последователей, SDRAM стал называться SDR (Single Data Rate — в противоположность Double Data Rate). Одним тактом считалась одна управляющая команда, в которой передавалось одно слово данных. Стандартными тактовыми частотами считались: 66, 100 и 133 MHz. 

Микросхемы SDRAM имели различные шины данных, ширина которых различалась (4, 8 или 16 бит). Обычно, такие микросхемы входили в состав 168-пинного модуля DIMM, который давал возожность прочитать/записать 64 бита (без контроля четности) или 72 бита (с контролем четности) за один такт.

Шина данных SDRAM отличалась задержкой в 2-3 такта, существовшей между подачей сигнала и получением данных. При этом, согласно спецификации, во время записи не должно было быть задержек. Специалисты решили эту проблему путем создания специального контроллера, который не допускал применения шины данных в одновременных операциях записи и чтения.

Управляющие команды

Команды управления модулем памяти SDR SDRAM подаются по 7 сигнальным линиям. Одна из них несет тактовый сигнал, передние фронты которого задают моменты времени, за которые производится считывание команды управления с остальных 6 линий. 

Приведем имена и расшифровки командных линий:

  • CKE (clock enable) — блокировка подачи тактового сигнала на микросхему, в случае возникновения сигнала низкого уровня. Обработка команд не производится, состояние прочих командных линий не рассматривается.
  • /CS (chip select) — все другие управляющие линии, за исключением CKE, не рассматриваются, в случае высокого уровня сигнала. Аналогична команде NOP (отсутствие оператора).
  • DQM (data mask) — запрет высокого уровня линии на чтение или запись данных. В случае одновременно-поданной команды записи, запись данных в DRAM не производится. Этот сигнал, находящийся в двух тактах, предшествующих циклу чтения, не дает данным считываться из памяти. 
  • /RAS (row address strobe) — Один командный бит, способный совместно с /CAS и /WE осуществлять кодировку одной из восьми команд.
  • /CAS (column address strobe) — Один командный бит, способный совместно с /RAS и /WE осуществлять кодировку одной из восьми команд.
  • /WE (write enable) — Совместно с /RAS и /CAS осуществляет кодировку одной из восьми команд.

Модули памяти SDRAM разделены внутренне на 2 или 4 независимых банка памяти. Входами адреса 1-го и 2-го банка памяти (BA0 и BA1) определяется, какому банку предназначена команда.

Принимаются следующие команды:

/CS

/RAS

/CAS

/WE

BAn

A10

An

Команда

В

x

x

x

x

x

x

задержка команды (отсутствие операции)

Н

В

В

В

x

x

x

отсутствие операции

Н

В

В

Н

x

x

x

остановить текущую операцию пакетного чтения/записи.

Н

В

Н

В

№ банка

Н

№ столбца

считать пакет данных из активного в настоящий момент ряда.

Н

В

Н

В

№ банка

В

№ столбца

считать пакет данных из активного в настоящий момент ряда, а по завершении команды регенерировать и закрыть текущий ряд.

Н

В

Н

Н

№ банка

Н

№ столбца

записать пакет данных в активный в настоящий момент ряд.

Н

В

Н

Н

№ банка

В

№ столбца

записать пакет данных в активный в настоящий момент ряд, а по завершении команды регенерировать и закрыть текущий ряд.

Н

Н

В

В

№ банка

№ ряда

открыть ряд для операций записи/чтения.

Н

Н

В

Н

№ банка

Н

x

деактивировать текущий ряд выбранного банка.

Н

Н

В

Н

x

В

x

деактивировать текущий ряд всех банков.

Н

Н

Н

В

x

x

x

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

Н

Н

Н

Н

0 0

РЕЖИМ

с линий A0—A9 загрузить в микросхему параметры конфигурирования.

Наиболее важные — CAS latency (2-3 такта) и длина пакета (1, 2, 4, 8 тактов)

#