Компания ЭВРИКА, ведущий партнер компании AVAYA Communication в Северо-Западном регионе, проводит для корпоративных клиентов программу тестирования сетевого оборудования AVAYA

Компьютер-Информ || Архив || Рубрики || Поиск || Подписка || Работа || О "КИ" || Карта

ЗАО "Техно-СПб" Системная интеграция

SLDRAM: архитектура и функционирование


Продолжение, начало в ╚КИ╩ ╧15/2001

Материал любезно предоставлен сайтом iXBT.com

Cуществует несколько схем построения системы памяти SLDRAM. Передача данных в этих конфигурациях требует выбора одной микросхемы памяти. Остальные требуют одновременного выбора специфического режима параллельных предустановок микросхем памяти. Традиционные микросхемы ДОЗУ адресуются каждая самостоятельно, однако тогда корректное управление в случае использования высокоскоростного протокола весьма проблематично. SyncLink же использует кодирование посылок выбора кристалла (CS ≈ Chip Select) для всех микросхем по командной шине, что позволяет обходить эти проблемы.

Для поддержки ╚разношироких╩ соединений и варьирования ╚глубины╩ конфигураций используется логика сравнения адреса (Address-Compare Logic), выполняющая фазы выбора микросхемы. Данная логика поддерживает разнообразие мультикастовой адресации (x2, x4, ...) и возможность адресной пересылки. Декодирование мультикастовых slaveId-адресов является более простой и гибкой схемой, чем использование стандартных отдельных сигналов выбора кристалла (CS#), использующихся в нынешних синхронных ДОЗУ. Кроме того, контролирование смещения сигналов выбора кристалла и командных сигналов не применяется в ДОЗУ с большой частотой синхронизации.


Кодирование адресов простой конфигурации ограничивается 64 микросхемами памяти. Значения 0-63 используются для адресации индивидуальных микросхем, а значения 64-127 (для конфигураций до 128 микросхем) специфичны для мультакастовых адресов. Логика сравнения и декодирования уникального номера (slaveId Comparision Logic) адресов выглядит следующим образом:

"═Каждый из последующих 64 мультикастовых адресов определяют x2 мультикастовый адрес, где значения slaveId {0,1} назначают доступ к микросхеме, использующей мультикастовый адрес 64; {2,3} ≈ доступ к микросхеме, использующей мультикастовый адрес 66; {4,5} ≈ доступ к микросхеме, применяющей мультикастовый адрес 68, и т.═д.
"═Оставшиеся 32 мультикастовых адреса определяют x4 мультикастовый адрес, где значения slaveId {0,1,2,3} назначают доступ к микросхеме, использующей мультикастовый адрес 65; {4,5,6,7} ≈ доступ к микросхеме, применяющей мультикастовый адрес 69; {8,9,10,11} ≈ доступ к микросхеме, использующей мультикастовый адрес 73, и т.═д.
"═Оставшиеся 16 мультикастовых адреса определяют x8 мультикастовый адрес, где значения slaveId {0,1,...,6,7} назначают доступ к микросхеме, использующей мультикастовый адрес 67; {8,9,...,14,15} ≈ доступ к микросхеме, использующей мультикастовый адрес 75; {16,17,...,22,23} ≈ доступ к микросхеме, применяющей мультикастовый адрес 83, и═т.═д.
"═Оставшиеся 8 мультикастовых адреса определяют x16 мультикастовый адрес, где значения slaveId {0,1,...,14,15} назначают доступ к микросхеме, использующей мультикастовый адрес 71; {16,17,...,30,31} ≈ доступ к микросхеме, применяющей мультикастовый адрес 87; {32,33,...,46,47} ≈ доступ к микросхеме, использующей мультикастовый адрес 103, и т.═д.
"═Оставшиеся адреса 95 и 127 пересылаются и кодируются прямо, но из них для адресации используется только 95, поскольку адрес 127 применяется в псевдослучайном синхронном шаблоне для генерации модели согласования.

Логика назначения мультикастовых slaveId адресов

SlaveId ╚диа-
пазон╩
SlaveId ╚диа-
пазон╩
SlaveId ╚диа-
пазон╩
SlaveId ╚диа-
пазон╩
64 0-1 80 16-17 96 32-33 112 48-49
65 0-2 81 16-19 97 32-35 113 48-51
66 2-3 82 18-19 98 34-35 114 50-51
67 0-7 83 16-23 99 32-39 115 48-55
68 4-5 84 20-21 100 36-37 116 52-53
69 4-7 85 20-23 101 36-39 117 52-55
70 6-7 86 22-23 102 38-39 118 54-55
71 0-15 87 16-31 103 32-47 119 48-63
72 8-9 88 24-25 104 40-41 120 56-57
73 8-11 89 24-27 105 40-43 121 56-59
74 10-11 90 26-27 106 42-43 122 58-59
75 8-15 91 24-31 107 40-47 123 56-63
76 12-13 92 28-29 108 44-45 124 60-61
77 12-15 93 28-31 109 44-47 125 60-63
78 14-15 94 30-31 110 46-47 126 62-63
79 0-31 95 0-63 111 32-63 127 0-63

Архитектура SyncLink позволяет смешивать 16- и 18-разрядные приборы памяти, создавая гибкие конфигурации. Кроме того, 18-разрядные микросхемы можно использовать при наличии 16-разрядного контроллера, причем дополнительные 2 бита будут просто логически ╚отрезаны╩.

Некоторые конфигурации разрабатываются для обеспечения механизма исправления ошибок, чтобы можно было корректировать ошибку в одном разряде или временные ошибки (Soft Errors приводят обычно к однократному изменению информации, однако чаще всего повторно данные записываются в ту же ячейку уже без ошибок) и постоянные ошибки (Hard Errors вызываются неисправностью самих микросхем памяти и часто приводят к потере информации в целом столбце или даже во всей микросхеме). Интерфейс SyncLink поддерживает на уровне контроллера выполнение коррекции ошибок (ECC ≈ Error-Correction Circuitry). Системы, не использующие механизм коррекции ошибок (Nonexistent ECC), являются более эффективными по производительности, но не по надежности.

Контроллер, поддерживающий ЕСС, читает пакеты, состоящие из нескольких 72-разрядных (4x18 бит) слов. Для небольших транзакций записи контроллер формирует транзакцию пакета чтения, вставляет модифицированные данные и регенерирует ЕСС, после чего уже формирует пакет записи. Также для ЕСС может использоваться 16-разрядная память для планирования дополнительных бит и помощи в размещении дополнительных блоков в неиспользуемой части DRAM. Используя ЕСС на широких блоках, типа 64-байтных кэшируемых линий, можно добиться значительной эффективности в ряде приложений. Так, микросхемы памяти ECC SLDRAM, которые обнаружат ошибку, заносят ошибочный бит (Fatal-Error Bit) в собственный специальный регистр, данные из которого будут считаны контроллером, когда сам контроллер выполнит программу проверки количества ╚сбойных╩ бит.

Механизм проверки ошибок SyncLink позволяет контроллеру выполнять простую схему обнаружения ошибки байта четности (Byte-Parity Error-Detection Circuitry, EDC), используя аналогичный транспортный протокол, описываемый ранее. Протокол обнаружения ошибок является менее эффективным для небольших (менее чем 8 байт) передач.

Адресное пространство SyncLink делится на 64 узла ≈ каждый со своим арбитражным пространством. Термин ╚узел╩ используется для описания SLDRAM как контекст CSR-архитектуры. Узел ассоциируется со специфическими установками адресов контрольных регистров, включая идентификационное ПЗУ (ROM). В режиме нормального функционирования каждый узел может быть независимо доступен ≈ модификация контрольного регистра одного узла происходит безо всяких воздействий на контрольный регистр другого узла.

Формат пакета позволяет добавлять адресные байты для неопределенного расширения, однако, учитывая 10-разрядную управляющую шину и 3 бита поля субкоманд, действительный размер адреса составляет 27, 37, 47,... бит. Выравнивание этих бит происходит по схеме ╚Left Justified╩, т.═е. какое количество бит информации потребует чип памяти, начиная со старшего бита адресного поля во втором ╚байте╩ командного пакета. С момента, когда установка команды не требует байтовой адресации на уровне SLDRAM, микросхема памяти сама выбирает адрес как точку действительного размера пакета наименьшей длины (BL=4). Таким образом, минимальный пакет выравнивает данные кратно своей собственной длине. Более длинные пакеты также могут выравнивать данные: пакеты двойной длительности минимального пакета (BL=8) должны иметь ╚0╩ значение менее важного бита адреса, а пакеты четырехкратной длины минимального пакета (BL=16) должны иметь ╚0╩ значение двух менее важных бит адреса.

SyncLink использует транзакции с расщеплением данных (Split-Data Transactions), поскольку пакет чтения данных не возвращается немедленно (или не требуется немедленная запись данных). Другие (возможно, несвязанные) команды могут передаваться по шине команд (или данные по шине данных) пока прибор памяти обрабатывает запрос. Тайминг потока данных, связанный с соответствующим пакетом запроса на шине команд, устанавливается во время процесса инициализации. Синхронизация приборов памяти в случае использования микросхем с различной частотой функционирования происходит согласно значениям таймингов самого низкоскоростного устройства. Для того чтобы установить эти параметры в микросхеме во время инициализации, контроллер использует заранее подготовленную команду для записи соответствующих значений в регистры управления.

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

"═Транзакции чтения (Read Transactions), используемые для считывания пакета данных, расщепляются на две компоненты, являющимися пакетами запроса и ответа. Пакет запроса на чтение передает команду и адрес от контроллера к микросхеме памяти. Пакет данных возвращается через фиксированный интервал (tRC ≈ Open Row to Open Row command period in Read в пределах одного логического банка), который устанавливается в процессе инициализации и является суммой задержек доступа к строке и доступа к столбцу массива памяти. Для обеспечения ╚портированности╩ параметров, используя схему GtG, значение этой задержки может быть установлено (более точно, чем номинальная) с запасом, учитывая значение, хранящееся в соответствующем регистре управления конкретной микросхемы. Чтение в определенный момент времени может осуществляться только из одной микросхемы памяти, а в пределах мультикаста═≈ из нескольких (при использовании нескольких шин данных из одной микросхемы на каждой шине).

"═Транзакции загрузки (Load Transactions) подобны транзакциям чтения, однако используют специальную адресацию для получения информации конкретно о каждом приборе памяти. Задержка для загрузки данных устанавливается как tRC. Загрузка в определенный момент времени может осуществляться только в одну микросхему памяти, а в пределах мультикаста ≈
в несколько.

"═Транзакции записи (Write Transactions). Пакет запроса на запись передает команду и адрес от контроллера к микросхеме памяти, а затем, после четко установленной задержки, передаются на запись в микросхему и сами данные. При этом никаких пакетов ответа на подтверждение записи данных не возвращается. Запись в определенный момент времени может осуществляться только в одну микросхему памяти, в пределах мультикаста ≈ в подчиненную,
а при использовании ретрансляции ≈ во все. Так, микросхема памяти принимает данные, передаваемые контроллером, после задержки (tWC ≈ Open Row to Open Row command period in Write в пределах одного логического банка), которая устанавливается в процедуре инициализации и представляет собой сумму задержек доступа к строке и доступа к столбцу массива микросхемы SLDRAM. Предполагается, что записываемые данные задержатся, чтобы попасть в тот же временной слот на шине данных, который будет использоваться при чтении данных с той же адресацией. Если предыдущая операция не выполнила запись строки, которую ожидалось записать (необходимая строка открыта), тайминги передачи остаются неизмененными, а потребляемая мощность микросхемы может быть уменьшена.

"═Транзакции события (Event Transactions) подобны транзакциям записи, но используемый адрес сокращается и шина данных не используется. Транзакция события передает 7 бит кодированной информации управления от контроллера памяти к микросхеме(-ам).

"═Резервные транзакции (Store Transactions) подобны транзакциям события, однако содержат данные, которые посылаются по командной шине для записи и хранения их в регистрах управления микросхемы. Данные транзакции используются в процессе текущей инициализации микросхемы для установки значений параметров функционирования, которые требуются для согласования с контроллером и другими микросхемами.

В фазе планирования ответов (Response Scheduling) контроллер отвечает за формирование таймингов в соответствии с пакетами запроса и планирование передачи читаемых и записываемых данных для устранения конфликтных ситуаций при передаче различных команд и данных. Изначально контроллер ожидает, что необходимые для инициализации и синхронизации данные запрограммированы в используемых устройствах ≈ в некоторых конфигурациях модули памяти могут содержать ППЗУ (PROM) с уже прошитыми необходимыми параметрами.

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

Топология, транзакции и формат команды

Команды, адреса и контрольная информация посылается от контроллера памяти к микросхемам через однонаправленную командную шину CommandLink, включающую биты тела команд/адреса (CA[9:0]), флага (FLAG) и дифференциальной синхропары (CCLK/CCLK#). Чтение и запись данных производится через двунаправленную шину DataLink, включающую линии данных (DQ[17:0]) и две дифференциальные синхропары данных (DCLK0/DCLK0# и DCLK1/DCLK1#). Шины команд и данных синхронизированы одной частотой и имеют параллельную схему включения относительно микросхем памяти.

Кроме вышеуказанных сигналов шина команд содержит линии LISTEN, LINKON и RESET#. Команды состоят из 4-х последовательных 10-разрядных слов (линия CA[9:0]). Первое слово команды указывается ╚1╩ бита FLAG. Для ╚защелкивания╩ командных слов прибором SLDRAM используются оба фронта дифференциальной синхропары CCLK/CCLK#. Во время пребывания линии LISTEN в высоком состоянии микросхемы SLDRAM следят за поступающими командами с CommandLink. Когда LISTEN переходит в низкое состояние, это означает, что командная шина ╚закрывается╩ и микросхемы переходят в режим экономии энергии (STBY). Выход микросхем из этого состояния возможен только по прошествии двух тактовых интервалов с момента подачи на трассу LISTEN высокого уровня. Когда LINKON переходит в низкое состояние, микросхемы памяти входят в фазу деактивации, где трасса CCLK может быть полностью деактивирована для полного сброса питания (ZPW - Zero PoWer) на шине. По команде RESET# все микросхемы памяти активируют цепи в рамках программы восстановления активности (PWUP - PoWer-UP).

Интерфейс шины SLDRAM

Шина Сигнал Назначение Направление Протокол
CommandLink CCLK/CCLK# Kомандный синхросигнал MC=>SLDRAM SLIO
CA[9:0] Шина адреса команд MC=>SLDRAM SLIO
LISTEN Режим экономии MC=>SLDRAM LVCMOS
LISTEN Режим деактивации MC=>SLDRAM LVCMOS
RESET# Жесткий сброс MC=>SLDRAM LVCMOS
DataLink DCLK0/DCLK0# Синхросигнал данных 0 MC=>SLDRAM SLIO
DCLK1/DCLK1# Синхросигнал данных 1 MC=>SLDRAM SLIO
DQ[17:0] Шина данных MC=>SLDRAM SLIO
Serial SI Последовательный вход MC=>SLDRAM
SLDRAM=>SLDRAM
LVCMOS
SO Последовательный выход SLDRAM=>SLDRAM
SLDRAM=>MC
LVCMOS

Шина данных передает и принимает 16/18-разрядные слова пакетами по четыре. Каждый из них обязательно сопровождается одной из дифференциальной пар DCLK0/DCLK0# или DCLK1/DCLK1#, сдвинутых друг относительно друга на 13N интервалов (╚тиков╩), длительность которых обратно пропорциональна удвоенной частоте следования синхросигналов. Две установочные пары DCLK применяются для контроля фаз приема/передачи по шине данных от одного устройства к другому с минимальными задержками.

Последовательная шина цепочечного типа интерфейса SLBus соединяется со входом SI и выходом SO в каждом приборе памяти и используется на стадии PWUP для коммуникации микросхем SLDRAM и выполнения фазы назначения уникальных собственных идентификаторов. Конфигурация ╚сквозной╩ последовательной SI/SO-цепочки (selectIn/selectOut Daisy Chain) в случае использования модульного расширения соединяет микросхемы собственной внутренней последовательной цепью, обеспечивая соединительный электрический интерфейс всех микросхем в составе модуля с внешней последовательной цепью. Частично расширенная модульная система (некоторые разъемы SLMC могут быть пустыми) должна включать в цепь каждого разъема 1kW согласующий резистор, который является мостом последовательной цепочки ≈ если разъем не заполнен, то в цепи разрыва не произойдет, и система будет функционировать (в DRDRAM, например, для решения этой проблемы используются специальные продолжители канала ≈ D-RIMM-CONT, представляющие собой печатную плату, не содержащую активных компонентов и обеспечивающую непрерывность сигнальных линий). Сигнал последовательного входа является низкоскоростным LVTTL-сигналом, контролируемый приемником с высоким входным сопротивлением, находящимся в контроллере или в следующей микросхеме SLDRAM. Поэтому 1 кОМ ≈ это минимально необходимое сопротивление для прохождения сигнала, не приводящего к проблемам с рассеиванием мощности в короткие периоды, когда сигналы на двух выводах различаются.

Особый интерес представляют конвейеризированные транзакции, отражающиеся на временной диаграмме ниже, где демонстрируются серии команд чтения (Page Read) и записи (Page Write) страницы на выходе контроллера памяти. С целью наглядности все длины пакетов составляют длительность 4N (4 ╚тика╩), несмотря на то, что основные пакеты 4N и 8N могут быть динамически смешаны. Более длинные пакеты могут быть получены путем ╚сцепления╩ 4N и/или 8N пакетов. Время доступа для чтения (tA(R) ≈ Read Access Time) открытого банка, известное как задержка для чтения страницы (Page Read Latency), определяется интервалом длительностью 12 ╚тиков╩ (12N).

Первые две команды являются командами чтения страниц различных банков первой микросхемы памяти ≈ SLDRAM#0. Считанные данные появляются на шине данных по приходу фронта DCLK0. До тех пор, пока первые две команды чтения страницы предназначаются для одной и той же микросхемы памяти SLDRAM, нет необходимости для введения промежутка между двумя 4N-пакетами данных. При этом микросхема ╚самогарантирует╩, что DCLK0 будет управлять ею постоянно без всяких перерывов и сбоев.

Пакет данных для последующего чтения страницы из SLDRAM#1 должен быть разделен промежутком 2N для стабилизации состояния шины данных и резервирования неопределенных таймингов между SLDRAM#0 и SLDRAM#1. Интервал 2N (или ╚правило 2N╩) требуется в любых операциях, производящихся по шине данных от одного устройства к другому, таких как чтения из различных микросхем SLDRAM или переходы ╚чтение-запись╩ и ╚запись-чтение╩ между приборами памяти и контроллером. Контроллер генерирует интервал 2N между данными, вставляя его между командами. Данные для команды Read1 сопровождаются DCLK1, позволяя SLDRAM#1 начать управление линиями DCLK, передавая текущие пакеты данных.

Следующей является команда записи, использующая DCLK0 для стробирования записываемых данных в SLDRAM#2. Задержка для записи страницы (Page Write Latency) программируется аналогично задержке для чтения страницы. В порядке отработки 2N-промежутка между данными Read1 и Write2 на шине данных команда Write2 должна быть задержана на 4 ╚тика╩ после прохождения команды Read1. Программируемая задержка записи в этом случае формируется как 4N-командный слот на шине команд, который может быть использован для команд, ориентированных не для данных (Non-Data Commands) типа ╚строка открыта╩ или ╚строка закрыта╩, ╚запись в регистр╩ или ╚регенерация содержимого регистра╩, без утилизации шины данных. Последующая команда чтения для SLDRAM#3 не требует никаких дополнительных задержек, чтобы выполнить ╚программу 2N╩.

Завершающий пакет этих трех последовательных команд записи показывает, что интервал 2N между пакетами данных не требуется, когда происходит запись в различные приборы SLDRAM. При этом должны использоваться все 4 копии DCLK, поскольку каждая микросхема памяти может устанавливать момент начала собственных пакетов записи. С этого момента все данные, которые требуется записать, начинают поступать из контроллера памяти без каких-либо задержек или прерываний сигналов на линиях DCLK.

После окончания процедуры текущего контроля шины данных от одного устройства к другому шина остается в высокоимпедансном (третьем) состоянии. Это может являться результатом временной неопределенности текущего логического уровня и возможности возникновения множественных переходов у входных буферов, что допустимо для линий данных, но неприемлемо для синхропар данных, которые используются для постоянного стробирования. Для решения этой проблемы синхропары имеют 00010 преамбулу до переходящей ассоциации с первыми битами данных. Входной буфер активизируется в течение первого 000 периода и готов уже принимать данные. ╚Пустой╩ переход 10 включается в преамбулу с целью компенсации для восстановления от временного перекоса длительности фронта сигнала DCLK. Принимающий прибор памяти проигнорирует полностью первый тактовый интервал DCLK и начнет стробирование данных лишь по второму положительному перепаду. Два строба подряд обеспечивают промежуток, в течение которого могут поступить 4N-пакета записи к различным приборам SLDRAM и отправиться 4N-пакета чтения от различных микросхем SLDRAM. В каждом командном пакете контроллер указывает, какую конкретно копию DCLK необходимо использовать.

Контроллер синхронизирует фронты синхропары команд CCLK с фронтами команд CA[9:0] и флага FLAG. Фронты синхропар DCLK синхронизированы с данными DQ[17:0]. Приборы SLDRAM вносят частичную задержку между приходящими CCLK и DCLK для выставления команды и записи данных за оптимальное время. Микросхема памяти программируется контроллером для внесения частичной задержки в пары DCLK, позволяя контроллеру читать данные входных регистров, используя эталонный DCLK без необходимости регулирования любой внутренней задержки.

Продолжение следует


       КОМПЬЮТЕР-ИНФОРМ 
          Главная страница || Статьи ╧ 18'2001 || Новости СПб || Новости России || Новости мира

Анкета || Рубрики || Работа || Услуги || Поиск || Архив || Дни рождения
О "КИ" || График выхода || Карта сайта || Подписка

Главная страница

Сайт газеты "Компьютер-Информ" является зарегистрированным электронным СМИ.
Свидетельство Эл ╧ 77-4461 от 2 апреля 2021 г.
Перепечатка материалов без письменного согласия редакции запрещена.
При использовании материалов газеты в Интернет гиперссылка обязательна.

Телефон редакции (812) 118-6666, 118-6555.
Адрес: 196084, СПб, ул. Коли Томчака, д. 9
Пейджер 238-6931(аб.3365)
e-mail:
Для пресс-релизов и новостей