XDR DRAM ( Extreme Data Rate Dynamic Random-Access Memory ) — это высокопроизводительный интерфейс динамической памяти с произвольным доступом . Он основан на RDRAM и является его преемником . Конкурирующие технологии включают DDR2 и GDDR4 .
XDR был разработан для эффективной работы в небольших потребительских системах с высокой пропускной способностью, высокопроизводительных приложениях памяти и высокопроизводительных графических процессорах . Он устраняет проблемы необычно высокой задержки, которые преследовали ранние формы RDRAM. Кроме того, XDR DRAM делает сильный акцент на пропускной способности на каждый вывод, что может принести пользу дальнейшему контролю затрат на производство печатных плат. Это связано с тем, что для той же пропускной способности требуется меньше полос. Права на технологию принадлежат Rambus. XDR используется Sony в консоли PlayStation 3. [1]
Высокоскоростные сигналы чипа XDR RAM — это дифференциальный тактовый вход (такты от ведущего устройства, CFM/CFMN), 12-битная однопроводная шина запроса/команды (RQ11..0) и двунаправленная дифференциальная шина данных шириной до 16 бит (DQ15..0/DQN15..0). Шина запроса может быть подключена к нескольким чипам памяти параллельно, но шина данных является двухточечной; к ней может быть подключен только один чип RAM. Для поддержки различных объемов памяти с помощью контроллера памяти фиксированной ширины чипы имеют программируемую ширину интерфейса. Контроллер DRAM шириной 32 бита может поддерживать 2 чипа по 16 бит или подключаться к 4 чипам памяти, каждый из которых поставляет 8 бит данных, или до 16 чипов, настроенных с 2-битными интерфейсами.
Кроме того, каждый чип имеет низкоскоростную последовательную шину, используемую для определения его возможностей и настройки его интерфейса. Она состоит из трех общих входов: линии сброса (RST), последовательного командного ввода (CMD) и последовательного тактового сигнала (SCK), а также последовательных линий ввода/вывода данных (SDI и SDO), которые соединены последовательно и в конечном итоге подключаются к одному выводу на контроллере памяти.
Все несимметричные линии имеют активный низкий уровень ; подтвержденный сигнал или логическая 1 представлены низким напряжением.
Шина запроса работает с удвоенной скоростью передачи данных относительно тактового входа. Две последовательные 12-битные передачи (начинающиеся с заднего фронта CFM) создают 24-битный командный пакет.
Шина данных работает на 8-кратной скорости часов; тактовая частота 400 МГц генерирует 3200 МТ/с. Все операции чтения и записи данных выполняются пакетами по 16 передач, длящимися 2 такта.
Форматы пакетов запросов следующие:
Существует большое количество ограничений по времени, определяющих минимальное время, которое должно пройти между различными командами (см. Динамическая память с произвольным доступом § Синхронизация памяти ); отправляющий их контроллер DRAM должен гарантировать, что все они соблюдены.
Некоторые команды содержат поля задержки; они задерживают эффект этой команды на заданное количество тактовых циклов. Это позволяет нескольким командам (для разных банков) вступать в силу на одном и том же тактовом цикле.
Это работает эквивалентно стандартной команде активации SDRAM, указывающей адрес строки для загрузки в массив усилителей считывания банка. Для экономии энергии чип может быть настроен на активацию только части массива усилителей считывания. В этом случае биты SR1..0 указывают половину или четверть строки для активации, и последующие адреса столбцов команд чтения/записи должны быть ограничены этой частью. (Операции обновления всегда используют полную строку.)
Они работают аналогично командам чтения или записи стандартной SDRAM, указывая адрес столбца. Данные предоставляются чипу через несколько циклов после команды записи (обычно 3) и выводятся чипом через несколько циклов после команды чтения (обычно 6). Как и в других формах SDRAM, контроллер DRAM отвечает за то, чтобы шина данных не была запланирована для использования в обоих направлениях одновременно. Данные всегда передаются пакетами по 16 передач, длящимися 2 такта. Таким образом, для устройства ×16 за пакет передается 256 бит (32 байта).
Если чип использует шину данных шириной менее 16 бит, один или несколько битов адреса подстолбца используются для выбора части столбца, которая будет представлена на шине данных. Если шина данных шириной 8 бит, SC3 используется для определения, к какой половине считываемых данных получить доступ; если шина данных шириной 4 бита, используются SC3 и SC2 и т. д.
В отличие от обычной SDRAM, здесь нет возможности выбора порядка, в котором данные поставляются в пакете. Таким образом, невозможно выполнять критические чтения по слову.
Команда записи с маской похожа на обычную запись, но задержка команды не допускается, и предоставляется байт маски. Это позволяет контролировать, какие 8-битные поля записываются. Это не битовая карта, указывающая, какие байты должны быть записаны; она не будет достаточно большой для 32 байтов в пакете записи. Скорее, это битовый шаблон, которым контроллер DRAM заполняет незаписанные байты. Контроллер DRAM отвечает за поиск шаблона, который не появляется в других байтах, которые должны быть записаны. Поскольку существует 256 возможных шаблонов и только 32 байта в пакете, найти один из них просто. Даже когда несколько устройств подключены параллельно, байт маски всегда можно найти, когда ширина шины не превышает 128 бит. (Это даст 256 байтов на пакет, но команда записи с маской используется только в том случае, если хотя бы один из них не должен быть записан.)
Каждый байт — это 8 последовательных бит, передаваемых по одной линии данных в течение определенного тактового цикла. M0 соответствует первому биту данных, передаваемому в течение тактового цикла, а M7 соответствует последнему биту.
Это соглашение также мешает выполнению критически важных чтений слов; любое слово должно включать биты как минимум из первых 8 переданных бит.
Эта команда похожа на комбинацию команд предварительной зарядки и обновления обычного SDRAM. Биты POP x и BP x определяют операцию предварительной зарядки, тогда как биты ROP x , DELR x и BR x определяют операцию обновления. Каждая из них может быть включена отдельно. Если включена, каждая может иметь различную задержку команды и должна быть адресована другому банку.
Команды предварительной зарядки могут быть отправлены только одному банку за раз; в отличие от обычной SDRAM, здесь нет команды «предварительной зарядки всех банков».
Команды обновления также отличаются от обычной SDRAM. Нет команды «обновить все банки», а операция обновления разделена на отдельные операции активации и предварительной зарядки, поэтому синхронизация определяется контроллером памяти. Счетчик обновления также программируется контроллером. Операции:
Эта команда выполняет ряд различных функций, определяемых полем XOP x . Хотя существует 16 возможностей, фактически используются только 4. Три подкоманды запускают и останавливают калибровку выходного драйвера (которая должна выполняться периодически, каждые 100 мс).
Четвертая подкоманда переводит чип в режим пониженного энергопотребления. В этом режиме он выполняет внутреннее обновление и игнорирует высокоскоростные линии данных. Его необходимо разбудить с помощью низкоскоростной последовательной шины.
XDR DRAM тестируются и конфигурируются с помощью низкоскоростной последовательной шины. Сигналы RST, SCK и CMD передаются контроллером на каждый чип параллельно. Линии SDI и SDO соединены последовательно, причем последний выход SDO подключен к контроллеру, а первый вход SDI подключен к высокому уровню (логический 0).
При сбросе каждый чип переводит свой вывод SDO в низкий уровень (1). Когда сброс отпускается, на чипы отправляется серия импульсов SCK. Каждый чип переводит свой выход SDO в высокий уровень (0) на один цикл после того, как увидит свой вход SDI в высокий уровень (0). Кроме того, он подсчитывает количество циклов, прошедших между сбросом и появлением своего входа SDI в высокий уровень, и копирует это число во внутренний регистр идентификатора чипа. Команды, отправляемые контроллером по линии CMD, включают адрес, который должен соответствовать полю идентификатора чипа.
Каждая команда либо считывает, либо записывает один 8-битный регистр, используя 8-битный адрес. Это позволяет использовать до 256 регистров, но в настоящее время назначен только диапазон 1–31.
Обычно линия CMD остается высокой (логический 0), а импульсы SCK не оказывают никакого эффекта. Для отправки команды последовательность из 32 бит тактируется по линиям CMD:
1100
, сигнал запуска команды.