Администрирование Железо Как работает память DDR/SDRAM Wed, November 13 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


Как работает память DDR/SDRAM Печать
Добавил(а) microsin   

В процессе эволюции микросхем динамической памяти произошел переход от синхронных микросхем с одиночной скоростью передачи данных (single data rate synchronous DRAM, сокращенно SDR, или SDRAM) к микросхемам динамической памяти с двойной скоростью передачи данных (double data rate synchronous DRAM, сокращенно DDR). Хотя в обоих этих технологиях много общего, DDR все же предлагает значительные улучшения.

Если коротко, то память DDR предоставляет синхронный захват данных на удвоенной частоте тактирования. Таким образом, устройство DDR266 на тактовой частоте 133 МГц даст пиковую полосу пропускания для данных 266 мегабит/сек, или 2.1 гигабайт/сек для модулей x64 DIMM. Это стало реальным с появлением архитектуры двойной упреждающей выборки (2n-prefetch architecture), где внутренняя шина данных в 2 раза шире внешней шины данных, и данные захватываются дважды за 1 такт. Чтобы обеспечить целостность сигналов на высокой скорости, микросхемы DDR SDRAM применяют двунаправленный строб данных и интерфейс SSTL_2 с дифференциальными входами и сигналами тактов.

Цель этого апноута (перевод [1]) - предоставить обзор архитектуры 2n-prefetch, шины данных на основе стробирования и интерфейса SSTL_2, т. е. технологий, используемых в микросхемах DDR SDRAM. Это также прольет свет на функциональные отличия между SDR (обычная синхронная память) и улучшенной технологией памяти DDR. Подробно про дизайн и критерии интервалов времени для систем, основанных на DDR SDRAM, см. даташиты компании Micron [3].

Примечание: объяснение непонятных терминов и сокращений см. в статье [4].

Таблица 1. Краткий обзор технологий SDR и DDR.

Параметр SDR DDR Примечания
DQM ДА нет Используется для маски записи данных и чтения OE.
DM (Data Mask) нет ДА Заменяет DQM, используется только для маскирования записи данных.
DQS (Data Strobe) нет ДА Новый сигнал, используется для захвата данных.
CK# (System Clock) нет ДА Новый сигнал, поскольку DDR использует дифференциальные сигналы тактов.
VREF нет ДА Опорное напряжение для дифференциальных входов (уровень на нем поддерживается на половине напряжения питания, VDD/2).
VDD и VDDQ 3.3V 2.5V У DDR уменьшенное напряжение питания и пониженная потребляемая мощность.
Сигнальный интерфейс LVTTL SSTL_2 DDR использует дифференциальный ввод/вывод (I/O).
Нагрузочная способность выходов Фиксированная Изменяемая Устройства x16 DDR предоставляют опцию снижения мощности выходных драйверов.
Скорость передачи данных 1x 2x DDR перемещает данные на двойной частоте тактов.
Архитектура Синхронная Синхронная по отношению к источнику данных DDR использует двунаправленный строб данных.

TN 46 05 SDR DDR block diagram fig01

Рис. 1. Функциональная блок-схема массива памяти 2M ячеек, каждая по 4 разряда, с интерфейсом SDR и интерфейсом DDR.

Примечания к рис. 1:

REFRESH COUNTER - счетчик (строк) для обновления ячеек памяти.
SENSE AMPLIFIERS - усилители считывания заряда на конденсаторах ячеек памяти.

[Отличия функционала DDR и SDR]

Технология SDR SDRAM хорошо известна и её принципы обычно хорошо понимают разработчики. Так что сосредоточимся на вопросах отличий DDR от SDR.

Если посмотреть на блок-диаграммы 32M x 4 SDR и DDR, то видно, что ядро ячеек памяти у них одинаковое (см. рис. 1). Обе микросхемы имеют одинаковую адресацию и управляющий интерфейс команд; у обоих система памяти построена на основе 4 банков массивов памяти; и обе налагают одинаковые требования к обновлению массивов памяти. Фундаментальные отличия кроются именно в интерфейсе данных.

Интерфейс памяти SDR имеет полностью синхронный дизайн, где данные захватываются только по положительному перепаду сигнала тактов. У внутренней шины данных такая же ширина, как и у внешней, и данные защелкиваются во внутренний массив памяти последовательно, по мере их передачи через буферы I/O. Память SDR также поддерживает сигнал DQM, который действует как маска данных во время операции записи (WRITE), или разрешения выходов для операции чтения (READ).

Данные памяти DDR имеют честный синхронный дизайн по отношению к источнику (source-synchronous), где данные захватываются дважды с помощью двунаправленного строба данных. Здесь реализована архитектура двойной упреждающей выборки 2n-prefetch, где внутренняя шина данных в 2 раза шире внешней шины. Это позволяет ячейкам внутренней памяти парами передавать данные буферам I/O. У DDR нет сигнала разрешения выхода для операций чтения (READ), но DDR поддерживает команду BURST TERMINATE, чтобы быстро завершить процесс чтения. Во время операции записи (WRITE) доступны сигналы DM, чтобы позволить маскирование недопустимых данных записи.

Шина команд DDR состоит из сигналов разрешения тактов (clock enable, CKE), выборки микросхемы (chip select, CS#), адреса строки (row) и адреса столбца (column), адреса банка, и сигнала записи (write enable, WE#), как показано на рис. 4. Команды вводятся по положительным перепадам тактов, и данные появляются как по положительным, так и отрицательным перепадам сигнала тактов.

Память DDR использует дифференциальную пару для системной тактовой частоты, поэтому сигнал таков имеет 2 линии: такт CK и комплементарный ему CK#. Положительным перепадом для DDR называют момент времени, когда уровень сигнала тактов пересекает спадающий уровень комплементарного ему сигала, и термин негативного перепада тактов обозначает момент, когда спад уровня сигнала тактов пересекается с нарастающим уровнем комплементарного сигнала.

Архитектура 2n-Prefetch. Термин DDR (или DDRI) должен быть специально связан с устройством 2n-prefetch, поскольку будущие разработки в области динамической памяти (DDRII) будут использовать архитектуру 4n-prefetch.

Для вендора DRAM термин 2n-prefetch означает, что внутренняя шина данных может быть двойной ширины по сравнению с внешней шиной данных, и таким образом частота доступа к внутреннему столбцу может быть в 2 раза меньше скорости передачи внешних данных. Поэтому для каждого одиночного доступа на чтения внутри устройства предоставляется 2 внешних слова данных (как показано на рис. 2). Подобным образом в устройство записывается 2 внешних слова данных, когда эти 2 записи внутри устройства комбинируются в один внутренний доступ на запись (как показано на рис. 3).

TN 46 05 simple block diagram 2n Prefetch READ fig02

Рис. 2. Упрощенная блок-схема 2n-Prefetch READ.

TN 46 05 simple block diagram 2n Prefetch WRITE fig03

Рис. 3. Упрощенная блок-схема 2n-Prefetch WRITE.

На верхнем уровне, с точки зрения пользователя, 2n-prefetch означает, что доступ к данным происходит парами; например, одиночный доступ на чтение делает выборку двух слов данных; и при одиночном доступе на запись должны быть предоставлены два слова данных (и/или масок битов данных). Это влияет и на минимальный размер пакета (burst size), и на не минимальные обрывы пакетов. Минимальный размер пакета архитектуры 2n-prefetch составляет 2 переноса внешних данных.

TN 46 05 DDR Command Bus for WRITE cycle fig04

Рис. 4. Пример сигналов на шине для операции WRITE устройства DDR.

Примечания к рис. 4:

CA = Column Address, адрес столбца.
RA = Row Address, адрес строки.
Ai = самый значимый по весу разряд адреса.
BA = Bank Address, адрес банка.
EN AP = Enable Auto Precharge, разрешение функции автоматического предзаряда.
DIS AP = Disable Auto Precharge, запрет функции автоматического предзаряда.

Минимальные интервалы времени (Time Slots). Для операций READ контроллер может выбрать игнор любого из этих двух слов, но интервалы времени для обоих все равно должны быть соблюдены (см. рис. 5). Подобным образом для операций WRITE контроллер может маскировать любое из этих двух слов, но опять-таки они займут свои слоты времени (см. рис. 6). Для каждой выданной команды READ или WRITE (и адреса столбца) предоставляются 2 слова данных. Поскольку устройство применяет двойную скорость передачи данных, как и 2n-prefetch, то оптимально для передачи минимум 2 слова данных (так как команды не могут выдаваться более часто).

TN 46 05 Minimum Data Time Slot for 2n Prefetch READ fig05

Рис. 5. Минимальный интервал времени для 2n-Prefetch READ.

Примечания к рис. 5:

1. Показана операция вывода данных DO n, начиная от столбца n, и так далее.
2. n', и т. д. соответствует следующему за DO n слову данных, и т. д., в соответствии с запрограммированным порядком выдачи пакета.
3. В показанных случаях длина пакета (Burst Length, BL) = 2, 4 или 8.
4. Операции READ для активных строк в любых банках.
5. Показано с номинальными интервалами tAC и tDQSQ.
6. Контроллер хочет получить первые 2 слова для первой команды READ, оба слова для второй, и второе из 2 слов для третьей.

TN 46 05 Minimum Data Time Slot for 2n Prefetch WRITE fig06

Рис. 6. Минимальный интервал времени для 2n-Prefetch WRITE.

Примечания к рис. 6:

1. Показана операция ввода данных DI b, где слово данных соответствует столбцу b, и т. д.
2. b', и т. д. соответствует входному слову данных, которое идет за DI b, в соответствии с запрограммированным порядком пакета.
3. В показанных случаях запрограммированная длина пакета (Burst Length, BL) = 2, 4 или 8.
4. Каждая команда WRITE может относиться к любому банку.
5. Контроллер хочет записать первые 2 слова для первой команды WRITE, оба слова для второй, и второе слово из двух слов третьей.

Для не минимальных по длине пакетов READ (4 или 8 слов) это помогает связать каждый положительный перепад с парой слов данных. Таким способом обрывы команд READ проще понять. Например, с длиной пакета (burst length, BL) = 8, команда чтения READ, за которой идут 3 прерывающие команды, нуждается в доступе ко всему пакету. Если команда, обрывающая пакет, прикладывается на первом положительном перепаде, следующем за командой READ, то будет осуществлен доступ только к двум словам; если команда, прерывающая пакет, будет приложена на втором положительном перепаде тактов за командой READ, то доступ будет осуществлен только к 4 словам, и т. п. (см. рис. 7).

TN 46 05 Relating Command Slots to Read Data fig07

Рис. 7. Связь слотов команд и читаемых данных.

Примечания к рис. 7:

1. DO n соответствует выводу данных из столбца n.
2. Команды NOP представляют любую допустимую не прерывающую пакет команду.
3. Команды BST представляют любую допустимую прерывающую пакет команду.
4. Управление слотами команд помечены для каждой пары; если прерывающая команда прикладывается в контролируемом слоте команды для имеющейся пары слов данных, то эта пара не будет прочитана.
5. Пара 1 всегда будет выведена (например, это пакет минимальной длины), когда применяется команда READ.

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

Шина данных, основанная на стробировании. В полностью синхронной системе вывод и захват данных происходят относительно общей, постоянно работающей тактовой частоте системы (system clock). Однако максимальная скорость передачи для такой системы достигается, когда сумма времени доступа на вывод и времен задержек укладывается в битовый интервал (величину, обратную скорости передачи данных). Хотя генерация отложенных тактов для раннего поступления данных и/или позднего захвата данных позволят повысить скорость передачи, эти техники не учитывают тот факт, что окно допустимых данных (так называемый "глаз данных", data eye) перемещается относительно любого фиксированного тактового сигнала - из-за изменений температуры, напряжения питания или нагрузки. Таким образом, чтобы все равно достичь высоких скоростей данных, для устройств DDR добавлены стробы сигналов данных. Стробы сигналов данных не являются постоянно генерируемыми, как сигналы тактов, и они генерируются выводящим устройством (контроллером памяти для операций WRITE, микросхемами DRAM для операций READ). На уровне устройства DRAM для операций READ сигналы строба данных (DQS) эффективно представлены как дополнительные выходы данных (DQ) с заранее определенным шаблоном; для операций WRITE сигналы строба используются как такты для захвата соответствующих входных данных. На уровне печатной платы сигналы строба имеют нагрузку, идентичную сигналам данных, и разводятся проводниками точно так же.

Тут стоит сделать маленькое отступление, чтобы показать соотношение сигналов строба к данным (strobe-to-data). Это техническое замечание фокусируется на типичных приложениях памяти десктопов PC, которые используют x64 модули DIMM, построенные из x8 или x16 микросхем DRAM. Контроллеры для этих приложений будут разработаны с одним стробом на байт; например, здесь будет один строб для каждого устройства x8 DRAM, или 2 строба для каждого устройства x16.

Другие типы приложений могут использовать другие соотношения данные/строб. Например, серверы используют x72 модули DIMM, основанные на микросхемах x4, что требует контроллеров, генерирующих отдельный строб для каждой четверки бит, и контроллеры для графики или приложений коммуникаций могут использовать от одного до 4 стробов на 32 бита. Продвинутые техники могут быть задействованы для смешивания и соответствия различных отношений данные/строб в системе, но такие случаи здесь не рассматриваются. В этом апноуте сделан фокус для соотношения одного строба на 1 байт. Синхронизация и описанные вычисления применяются независимо к каждой группе сигналов.

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

Для операций записи (WRITE) контроллер должен предоставить стробы данных, выровненные по центру относительно своих данных. Так что перепады уровня стробов происходят номинально с фазой 90 градусов (относительно тактовой частоты) относительно перепадов уровня данных. Устройство DRAM использует внутреннюю подходящую маршрутизацию стробов и данных так, чтобы стробы могли быть использованы напрямую для захвата входных данных. Обратите внимание, что причина различий операций READ и WRITE состоит в использовании разных схем выравнивания, чтобы схема задержки была сосредоточена в одном месте (в контроллере), и не должна тиражироваться с каждым устройством DRAM, находящимся в системе. Этот подход, как ожидается, будет перенесен в будущем на следующие генерации дизайна DDR, чтобы усовершенствовать установленную инфраструктуру.

Преамбула и постамбула. Шаблон параметров времени строба данных состоит из порций преамбулы, переключения и постамбулы. Рис. 8 показывает шаблон строба и выравнивание данных для операций READs, и рис. 9 показывает то же самое для операций WRITE. Порция преамбулы предоставляет окно времени для принимающего устройства, чтобы разрешить его схему захвата данных, в то время как известный/допустимый уровень присутствует в сигнале строба, что позволяет избежать ложных срабатываний схемы захвата. За преамбулой стробы будут переключаться с той же частотой, что и тактовый сигнал, в течение передачи пакета данных (data burst). Каждый переход в лог. 1 и в лог. 0 связан с передачей одной порции данных. Малый интервал времени за последним переходом называется постамбулой. Большинство контроллеров имеют внутренний источник тактов с частотой в 2 раза выше частоты тактов памяти, так что генерация строба, сдвинутого по фазе на 90 градусов относительно данных осуществляется довольно просто. Обычно данные и строб тактируются с использованием двукратной частоты тактов, с данными, поступающими на выход по перепадам с одной полярностью, и стробы переключаются по перепадам тактов противоположной полярности. Дополнительно привлекается задержка приходящего строба для операций READ, что подробно рассматривается в отдельном апноуте.

TN 46 05 DQS Pattern for READ Showing Preamble and Postamble fig08

Рис. 8. Шаблон DQS для операции READ, показывающий преамбулу и постамбулу.

Примечания к рис. 8:

1. DO n соответствует выводу данных для столбца n.
2. Длина пакета (Burst Length, BL) = 4, CAS latency = 2.
3. Три следующие друг за другом элемента данных появляются в запрограммированном порядке после DO n.
4. Для иллюстрации сигналы показаны с tAC и tDQSQ = 0.

TN 46 05 DQS Pattern for WRITE Showing Preamble and Postamble fig09

Рис. 9. Шаблон DQS для операции WRITE, показывающий преамбулу и постамбулу.

Примечания к рис. 9:

1. DI b соответствует входным данным для столбца b.
2. Поступают три следующие друг за другом входных элемента данных в запрограммированном порядке после DI b.
3. Показан пакет из 4 элементов данных.
4. Для иллюстрации показан номинальный интервал tDQSS и без битов DM.

Для переходах от чтения к чтению (read-to-read) шины данных, где операции READ происходят из разных физических банков DRAM, или для переходов от чтения к записи (read-to-write) шины данных (например, переходы из состояния, когда оно устройство управляет шиной данных, к состоянию, когда другое устройство управляет шиной данных), имеются сигналы строба передачи управления, и для каждого источника нужен полный шаблон строба (включая преамбулы и постамбулы). Консервативный подход решения проблемы - состоит в расположении интервалов между запросами, так чтобы постамбула от первого устройства завершилась до начала преамбулы от другого устройства. Последовательные пакеты READ из одного и того же банка DRAM выполняются расширением порции переключения шаблона строба данных (постамбула и преамбула не нужна между следующими друг за другом пакетами READ из одного и того же устройства). Последовательные пакеты WRITE также возможны, даже если они осуществляются в разные физические банки DRAM. Это несколько менее интуитивно потому что, в отличие от случая последовательных чтений (READ) из одного и того же источника, место назначения данных в DRAM для второй последовательного пакета WRITE нет способа узнать, что первый пакет WRITE осуществлялся в другой банк DRAM. Это означает, что DRAM должны быть способны принимать разные времена преамбулы, в зависимости от того, какая была перед этим активность записи на шине.

Интерфейс SSTL_2. Предыдущие технологии памяти SDR использовали LVTTL и фиксированные уровни напряжения для интерфейса передачи сигналов. Микросхемы DDR SDRAM задействуют дифференциальные входы и опорное напряжение для всех сигналов интерфейса. Этот интерфейс называется SSTL_2, и он работает на специально логике с уровнями напряжения питания 2.5V. SSTL_2 является индустриальным стандартом, определенным документом JEDEC #EIA/JESD8-9. Хотя некоторые DRAM будут поддерживать сниженный по мощности выход, большинство будет совместимо с уровнями переключения SSTL_2 Class II.

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

Драйверы выхода и приемники. Выходные буферы и входные приемники поменялись от LVTTL к SSTL_2. Выходная логика буфера не поменялась, но напряжение питания VDDQ для DDR перешло от 3.3V к 2.5V.

Входные приемники мигрировали от обычного каскада на n-канальном и p-канальном транзисторах к усилителю с дифференциальным входом. Более сложный приемник, используемый в DDR, предоставляет большую полосу пропускания и меньшую зависимость от температуры, чтобы повысить возможности приема в более жестких условиях передачи сигнала. Напряжение VREF было добавлено, чтобы улучшить работу при изменении температуры и напряжения питания VDD.

TN 46 05 Typical LVCMOS Receiver fig10 TN 46 05 Typical SSTL 2 Receiver fig11
Рис. 10. Типичный приемник LVCMOS. Рис. 11. Типичный приемник SSTL_2.

Сигналы I/O. Типичный интерфейс SSTL_2 включает последовательное терминирующее сопротивление и верхний нагрузочный резистор (pull-up), подключенные к терминирующему напряжению, см. рис. 12a. Интерфейс SSTL_2 использует опорное напряжение и дифференциальные входы для определения логических уровней. Опорное напряжение определяется как половина от напряжения питания, и терминирующее напряжение равно опорному напряжению (VDD = 2.5V, VREF = VTT = 1.25V).

TN 46 05 Typical SSTL 2 Interface fig12a

Рис. 12a. Типичный интерфейс SSTL_2.

TN 46 05 SSTL 2 Interface Input Levels fig12b

Рис. 12b. Типичные уровни интерфейса SSTL_2.

Для интерфейса SSTL_2 имеются входные уровни DC (постоянный ток) и AC (переменный ток). Обычно DRAM начнут переключаться к новому логическому уровню, когда входной сигнал переходит через целевой уровень DC, и будет захвачен, когда входной сигнал пересечет входной уровень AC. Как только логический уровень был захвачен, он останется захваченным, пока входной сигнал не перейдет обратно через уровень DC. См. рис. 12b, где показан типичный входной сигнал SSTL_2.

[Характеристики по постоянному току (DC) и рабочие условия]

Параметры в таблице заданы для условий 0°C ≤ TA ≤ +70°C; VDD = +2.5V ±0.2V, VDDQ = +2.5V ±0.2V.

Параметр/условие Символ MIN MAX Ед.
Опорное напряжение I/O VREF 0.49 x VDDQ 0.51 x VDDQ V
Напряжение I/O в условиях нагрузки (в системе) VTT VREF - 0.04 VREF + 0.04 V
Напряжение высокого входного уровня (лог. 1) VIH(DC) VREF + 0.15 VDD + 0.3 V
Напряжение низкого входного уровня (лог. 0) VIL(DC) -0.3 VREF - 0.15 V
Напряжение высокого входного уровня (лог. 1) AC VIH(AC) VREF + 0.310 - V
Напряжение низкого входного уровня (лог. 0) AC VIL(AC) - VREF - 0.310 V

Тактовые входы. Чтобы повысить точность и уменьшить эффект джиттера тактов, в DDR были добавлены дифференциальные такты. Устройства SDR используют среднюю точку при нарастании положительного перепада тактов, чтобы определить момент захвата данных, так что для этого момента возможно дрожание фазы выборки (повышенный джиттер тактов). Устройства DDR используют точку пересечения дифференциальных сигналов CK и CK#. Использование точки пересечения вместо средней точки помогают снизить эффект джиттера и повысить качество тактирования. Также такты, используемые DDR, работают с учетом набора параметров, определенных JEDEC (см. рис. 13).

TN 46 05 Typical SSTL 2 Clocks fig13

Рис. 13. Типичная осциллограмма тактов SSTL_2.

[Общие замечания]

Схожесть хранения данных в SDR и DDR SDRAM предоставляют производителям микросхем DRAM выигрыш в экономии на процессе производства, и при этом получать большую выгоду, связанную с новыми качествами получаемого продукта. Эта схожесть также помогает разработчику лучше понять суть DDR, и позволить ему применить оптимальные техники предыдущих разработок в новых платформах DDR. Хотя схемы адресации, требования к разводке и конфигурации устройства для DDR почти такие же, как у SDR, получается двойное увеличение производительности вместе с выигрышем в энергопотреблении. Например, потребление мощности для DDR намного меньше, чем для сравнимого устройства SDR, и пиковые скорости передачи могут превысить 2.1 гигабайта/сек для стандартных модулей x64 DDR DIMM.

[Ссылки]

1. TN-46-05 GENERAL DDR SDRAM FUNCTIONALITY site:micron.com.
2. SDRAM Tutorial site:embeddedmicro.com.
3. Micron DDR SDRAM.
4. SDR SDRAM MT48LC16M16A2.

 

Комментарии  

 
0 #2 Сергей 07.08.2023 00:08
Цитирую ложкорез:
Так и не понял, можно ли всю память записать непрерывно (с одинаковыми тиками)? То есть как бы непрерывный burst.

Длина последовательно го чтения 2, 4, 8 задается в регистре mode, в микросхеме DDR, например в одной из просмотренных мной DDR2 только 4 или 8, 2х нет.
Цитировать
 
 
0 #1 ложкорез 04.07.2020 19:18
Так и не понял, можно ли всю память записать непрерывно (с одинаковыми тиками)? То есть как бы непрерывный burst.
Цитировать
 

Добавить комментарий


Защитный код
Обновить

Top of Page