SDRAM

SDRAM (англ. Synchronous Dynamic Random Access Memory — синхронная динамическая память с произвольным доступом) — тип запоминающего устройства, использующегося в компьютере и других цифровых устройствах в качестве ОЗУ.

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

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

История использования

Массовый выпуск SDRAM начался в 1997 году. Первоначально этот тип памяти предлагался в качестве альтернативы для дорогой видеопамяти (VRAM), однако вскоре SDRAM завоевал популярность и стал применяться в качестве ОЗУ, постепенно вытесняя другие типы динамической памяти. Последовавшие затем технологии DDR позволили сделать SDRAM ещё эффективнее. За разработкой DDR SDRAM последовали стандарты DDR2 SDRAM, DDR3 SDRAM, DDR4 SDRAM и DDR5 SDRAM.

SDR SDRAM

Первый стандарт SDRAM с появлением последующих стандартов стал именоваться SDR (Single Data Rate — в отличие от Double Data Rate). За один такт принималась одна управляющая команда и передавалось одно слово данных. Типичными тактовыми частотами были 66, 100 и 133 МГц. Микросхемы SDRAM выпускались с шинами данных различной ширины (обычно 4, 8 или 16 бит), но как правило, эти микросхемы входили в состав 168-контактного модуля DIMM, который позволял прочитать или записать 64 бита (в варианте без контроля чётности) или 72 бита (с контролем чётности) за один такт.

SDR SDRAM 168-pin модуль памяти (20 Pins 60 Pins 88 Pins)

Использование шины данных в 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 кодирует одну из 8 команд.
  • /CAS (англ. column address strobe, строб адреса столбца) — несмотря на название, это не строб, а всего лишь один командный бит. Вместе с /RAS и /WE кодирует одну из 8 команд.
  • /WE (англ. write enable, разрешение записи) — вместе с /RAS и /CAS кодирует одну из 8 команд.

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

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

/CS/RAS/CAS/WEBAnA10AnКоманда
Вxxxxxxзадержка команды (нет операции)
НВВВxxxнет операции
НВВНxxxостановить текущую операцию пакетного чтения или записи.
НВНВ№ банкаН№ столбцасчитать пакет данных из активного в данный момент ряда.
НВНВ№ банкаВ№ столбцакак и предыдущая команда, а по завершении команды регенерировать и закрыть этот ряд.
НВНН№ банкаН№ столбцазаписать пакет данных в активный в данный момент ряд.
НВНН№ банкаВ№ столбцакак и предыдущая команда, а по завершении команды регенерировать и закрыть этот ряд.
ННВВ№ банка№ рядаоткрыть ряд для операций записи и чтения.
ННВН№ банкаНxдеактивировать текущий ряд выбранного банка.
ННВНxВxдеактивировать текущий ряд всех банков.
НННВxxxрегенерировать по одному ряду каждого из банков, используя внутренний счётчик. Все банки должны быть деактивированы.
НННН0 0РЕЖИМс линий A0—A9 загрузить в микросхему параметры конфигурирования. Наиболее важные — CAS latency (2 или 3 такта) и длина пакета (1, 2, 4 или 8 тактов)

Примеры

Ссылки

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.