XDR DRAM (динамическая память с произвольным доступом с экстремальной скоростью передачи данных ) является высокопроизводительным динамическая оперативная память интерфейс. Он основан на RDRAM и является его преемником. Конкурирующие технологии включают DDR2 и GDDR4.
XDR был разработан, чтобы быть эффективным в небольших потребительских системах с высокой пропускной способностью, приложениях с высокопроизводительной памятью и высокопроизводительных графических процессорах. Это устраняет проблемы с необычно высокой задержкой, которые преследовали ранние формы RDRAM. Кроме того, в XDR DRAM большое внимание уделяется полосе пропускания на вывод, что может способствовать дальнейшему снижению затрат при производстве печатных плат. Это связано с тем, что для той же полосы пропускания требуется меньше полос. Права на технологию принадлежат Rambus. XDR используется Sony в консоли PlayStation 3.
Высокоскоростные сигналы микросхемы ОЗУ XDR разные вход стандартного тактового сигнала (тактовый сигнал от главного, 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 тактовых цикла.
Форматы пакетов запроса следующие:
Clock. edge | Bit | NOP | чтение / запись столбца | Калибровка / отключение питания | Предварительная зарядка / обновление | Активировать строку | Маскированная запись | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Бит | Бит | Описание | Бит | Описание | Бит | Описание | Бит | Описание | Бит | Описание | ||||||||
↓ | RQ11 | 0 | 0 | Код операции COL | 0 | Код операции COLX | 0 | Код операции ROWP | 0 | Код операции ROWA | 1 | Код операции COLM | ||||||
↓ | RQ10 | 0 | 0 | 0 | 0 | 1 | M3 | Маска записи. младшие биты | ||||||||||
↓ | RQ9 | 0 | 0 | 1 | 1 | R9 | Адрес строки. старшие биты | M2 | ||||||||||
↓ | RQ8 | 0 | 1 | 0 | 1 | R10 | M1 | |||||||||||
↓ | RQ7 | x | WRX | Бит записи / чтения | x | зарезервирован | POP1 | Задержка предварительной зарядки (0–3) | R11 | M0 | ||||||||
↓ | RQ6 | x | C8 | Адрес столбца. старшие биты | x | POP0 | R12 | зарезервировано | C8 | Адрес столбца. старшие биты | ||||||||
↓ | RQ5 | x | C9 | x | x | зарезервировано | R13 | C9 | ||||||||||
↓ | RQ4 | x | C10 | зарезервировано | x | x | R14 | C10 | зарезервировано | |||||||||
↓ | RQ3 | x | C11 | XOP3 | Subopcode | x | R15 | C11 | ||||||||||
↓ | RQ2 | x | BC2 | Запрет k адрес | XOP2 | BP2 | Банк предварительной оплаты | BA2 | Адрес банка | BC2 | Адрес банка | |||||||
↓ | RQ1 | x | BC1 | XOP1 | BP1 | BA1 | BC1 | |||||||||||
↓ | RQ0 | x | BC0 | XOP0 | BP0 | BA0 | BC0 | |||||||||||
↑ | RQ11 | x | DELC | Задержка команды (0–1) | x | зарезервировано | POP2 | Разрешение предварительной зарядки | DELA | Задержка команды (0–1) | M7 | Маска записи. старшие биты | ||||||
↑ | RQ10 | x | x | зарезервировано | x | ROP2 | Команда обновления | R8 | Адрес строки. младшие биты | M6 | ||||||||
↑ | RQ9 | x | x | x | ROP1 | R7 | M5 | |||||||||||
↑ | RQ8 | x | x | x | ROP0 | R6 | M4 | |||||||||||
↑ | RQ7 | x | C7 | Адрес столбца. младшие биты | x | DELR1 | Задержка обновления (0–3) | R5 | C7 | Адрес столбца. младшие биты | ||||||||
↑ | RQ6 | x | C6 | x | DELR0 | R4 | C6 | |||||||||||
↑ | RQ5 | x | C5 | x | x | зарезервировано | R3 | C5 | ||||||||||
↑ | RQ4 | x | C4 | x | x | R2 | C4 | |||||||||||
↑ | RQ3 | x | SC3 | Адрес подстолбца | x | x | R1 | SC3 | Адрес подстолбца | |||||||||
↑ | RQ2 | x | SC2 | x | BR2 | Обновить банк | R0 | SC2 | ||||||||||
↑ | RQ1 | x | SC1 | x | BR1 | SR1 | Адрес подстроки | SC1 | ||||||||||
↑ | RQ0 | x | SC0 | x | BR0 | SR0 | SC0 |
Есть большое количество временных минусов следы, указывающие минимальное время, которое должно пройти между различными командами (см. Динамическая память с произвольным доступом § Тайминги памяти ); отправляющий их контроллер 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. Биты POPx и BPx определяют операцию предварительной зарядки, а биты ROPx, DELRx и BRx определяют операцию обновления. Каждый может быть включен отдельно. Если этот параметр включен, каждый может иметь различную задержку команды и должен быть адресован в другой банк.
Команды предварительного пополнения могут быть отправлены одновременно только в один банк; в отличие от обычной SDRAM, здесь нет команды «предварительно зарядить все банки».
Команды обновления также отличаются от обычных SDRAM. Команды «обновить все банки» нет, и операция обновления разделена на отдельные операции активации и предварительной зарядки, поэтому время определяется контроллером памяти. Счетчик обновления также программируется контроллером. Доступны следующие операции:
Эта команда выполняет ряд различных функций, как определено в поле XOPx. Хотя существует 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 не действуют. Для отправки команды по линиям CMD синхронизируется последовательность из 32 бита:
1100
, сигнал запуска команды.