SDR SDRAM (Single Data Rate DRAM)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 18:41, 5 декабря 2016.
SDR SDRAM

SDR SDRAM (англ. Single Data Rate DRAM — синхронная динамическая память с произвольным доступом) — это первая технология оперативной памяти со случайным доступом (DRAM) разработанная для синхронизации работы памяти с тактами работы центрального процессора с внешней шиной данных.

История

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

SDR SDRAM

Чип SDR SDRAM 64Мб[1]

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

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

Общие свойства SDRAM

  • Синхронизированна по тактам с CPU
  • Основана на стандартной DRAM, но значительно быстрее — вплоть до 4 раз
  • Специфические свойства:
  1. синхронное функционирование,
  2. чередование банков ячеек,
  3. возможность работы в пакетно-конвейерном режиме
  • Основной претендент для использования в качестве основной памяти в персональных компьютерах следующего поколения

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

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

SDRAM более быстрая память. Даже при том, что SDRAM основана на стандартной DRAM архитектуре, комбинация указанных выше трех характеристик позволяет получит более быстрый и более эффективный процесс передачи данных. SDRAM уже может передавать данные со скоростью вплоть до 100MHz, что почти в четыре раза быстрее работы стандартной DRAM. Это ставит SDRAM в один ряд с более дорогой SRAM (статическое ОЗУ) используемой в качестве внешней кэш-памяти[2].

Физическая организация и принцип работы

Общий принцип организации и функционирования микросхем динамической памяти (DRAM) практически един для всех ее типов — как первоначальной асинхронной, так и современной синхронной. Исключение составляют разве что экзотические варианты, тем не менее, существовавшие еще до появления SDRAM, вроде Direct Rambus DRAM (DRDRAM). Массив памяти DRAM можно рассматривать как матрицу (двумерный массив) элементов , каждый из которых содержит одну или несколько физических ячеек (в зависимости от конфигурации микросхемы), способных вмещать элементарную единицу информации — один бит данных. Ячейки представляют собой сочетание транзистора (ключа) и конденсатора (запоминающего элемента). Доступ к элементам матрицы осуществляется с помощью декодеров адреса строки и адреса столбца, которые управляются сигналами RAS# (сигнал выбора строки — Row Access Strobe) и CAS# (сигнал выбора столбца — Column Access Strobe).

Из соображений минимизации размера упаковки микросхемы, адреса строк и столбцов передаются по одним и тем же адресным линиям микросхемы — иными словами, говорят о мультиплексировании адресов строк и столбцов. Так, например, 22-разрядный полный адрес ячейки может разделяться на два 11-разрядных адреса (строки и столбца), которые последовательно (через определенный интервал времени) подаются на адресные линии микросхемы памяти. Одновременно со второй частью адреса (адреса столбца) по единому командно-адресному интерфейсу микросхемы SDRAM подается соответствующая команда (чтения или записи данных). Внутри микросхемы памяти адреса строки и столбца временно сохраняются в буферах адреса строки и адреса столбца, соответственно.

Важно заметить, что с динамической матрицей памяти связан особый буфер статической природы, именуемый «усилителем уровня» (SenseAmp), размер которого равен размеру одной строки, необходимый для осуществления операций чтения и регенерации данных, содержащихся в ячейках памяти. Поскольку последние физически представляют собой конденсаторы, разряжающиеся при совершении каждой операции чтения, усилитель уровня обязан восстановить данные, хранящиеся в ячейке, после завершения цикла доступа.

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

Схема обращения к ячейке памяти в самом общем случае может быть представлена следующим образом:

  1. На адресные линии микросхемы памяти подается адрес строки. Наряду с этим подается сигнал RAS#, который помещает адрес в буфер (защелку) адреса строки.
  2. После стабилизации сигнала RAS#, декодер адреса строки выбирает нужную строку, и ее содержимое перемещается в усилитель уровня (при этом логическое состояние строки массива инвертируется).
  3. На адресные линии микросхемы памяти подается адрес столбца вместе с подачей сигнала CAS#, помещающего адрес в буфер (защелку) адреса столбца.
  4. Поскольку сигнал CAS# также служит сигналом вывода данных, по мере его стабилизации усилитель уровня отправляет выбранные (соответствующие адресу столбца) данные в буфер вывода.
  5. Сигналы CAS# и RAS# последовательно дезактивируются, что позволяет возобновить цикл доступа (по прошествии промежутка времени, в течение которого данные из усилителя уровня возвращаются обратно в массив ячеек строки, восстанавливая его прежнее логическое состояние).

Так выглядела реальная схема доступа к ячейке DRAM в самом первоначальном ее варианте, реализованном еще до появления первых реально используемых микросхем/модулей асинхронной памяти типа FPM DRAM. Тем не менее, нетрудно заметить, что эта схема является достаточно неоптимальной. Действительно, если нам требуется считать содержимое не одной, а сразу нескольких подряд расположенных ячеек, отличающихся только адресом столбца, но не адресом строки, то нет необходимости каждый раз подавать сигнал RAS# с одним и тем же адресом строки (т.е. выполнять шаги 1-2). Вместо этого, достаточно удерживать сигнал RAS# активным на протяжении промежутка времени, соответствующего, например, четырем последовательным циклам чтения (шаги 3-4, с последующей дезактивацией CAS#), после чего дезактивировать сигнал RAS#. Именно такая схема применялась в асинхронной памяти типа FPM DRAM и более поздней EDO (Enhanced Data Output) DRAM. Последняя отличалась опережающей подачей адреса следующего столбца, что позволяло достичь меньших задержек при операциях чтения. В современных микросхемах SDRAM схема обращения к ячейкам памяти выглядит аналогично.

Управляющие сигналы

Команды, управляющие модулем памяти 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) определяют, какому банку предназначена текущая команда.[3]

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

/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 тактов)

Источники

  1. Micron [Электронный ресурс]: SDRAM Part Catalog / Дата обращения: 01.12.2016. — Режим доступа: https://www.micron.com/products/dram/sdram/partlist#/
  2. Ixbt [Электронный ресурс]: Общие свойства SDRAM / Дата обращения: 05.12.2016. — Режим доступа: http://www.ixbt.com/mainboard/sdram.html#q2.
  3. Википедия [Электронный ресурс] : SDRAM — Материал из Википедии — свободной энциклопедии: — Режим доступа:https://ru.wikipedia.org/wiki/SDRAM#SDR_SDRAM

Ссылки

  • Faqhard [Электронный ресурс]: Типы и характеристики оперативной памяти / Дата обращения: 05.12.2016. — Режим доступа: https://faqhard.ru/articles/4/07.php.
  • Pascom [Электронный ресурс]: Технология SDRAM: от SDR до DDR4 / Дата обращения: 05.12.2016. — Режим доступа: http://pascom.ru/tehnologiya-sdram-sdr-ddr4.php.