SDRAM
И так, синхронная память SDRAM! Все рассмотренные в предыдущих статьях типы памяти (FPM, EDO, BEDO) являются асинхронными. При асинхронной передаче данных гарантируется, что определенная операция будет закончена за фиксированный промежуток времени, например за 60 нс. Работа асинхронной памяти не синхронизирована с тактовой частотой системной шины, то есть данные появляются на этой шине в произвольные моменты времени.
С системной шины данные считываются контроллером, который синхронизирован с тактовой частотой. Следовательно, если данные появляются в ближайший момент за фронтом тактового импульса, то они будут считаны только с началом следующего тактового импульса. Так происходит потому, что сигналом к считыванию данных является не уровень тактового импульса (высокий или низкий), а его фронт. Поэтому при использовании асинхронной памяти часто возникает задержка с обработкой данных, что, в свою очередь, приводит к жестким ограничениям на частоту системной шины FSB. Так, память страничного доступа FPM DRAM обеспечивала работу при тактовой частоте не более 40 МГц. Вследствие улучшения организации доступа к памяти (EDO и BEDO) удалось повысить тактовую частоту до 66 МГц.
66 МГц — предельное значение частоты для асинхронной памяти. При более высоких частотах системной шины потребовалось найти способ преодоления существенных задержек. Поэтому на смену асинхронной памяти пришла синхронная динамическая память SDRAM (Synchronous DRAM).
Синхронная память SDRAM
При синхронной работе с памятью SDRAM обеспечивается синхронизация всех входных и выходных сигналов с тактами системного генератора. Однако управление памятью усложняется, так как приходится вводить дополнительные регистры- защелки, которые хранят адреса, данные и управляющие сигналы, в то время как процессор, передав их в память, продолжает работать с другими устройствами. После определенного числа тактовых циклов, количество которых считает специальный счетчик, данные становятся доступными и процессор может получить их с системной шины.
Помимо организации синхронного доступа к данным, память SDRAM имеет еще ряд принципиальных отличий от асинхронной памяти.
Весь массив памяти SDRAM модуля разделен на два независимых банка. Такое решение позволяет совмещать выборку данных из одного банка с установкой адреса в другом банке, то есть иметь одновременно две открытые страницы. Доступ к этим страницам чередуется (bank interleaving), и соответственно устраняются задержки, что обеспечивает создание непрерывного потока данных.
В SDRAM-памяти, как и в BEDO-памяти, организована конвейерная обработка данных, что позволяет производить обращение по новому адресу столбца ячейки памяти на каждом тактовом цикле. В микросхеме SDRAM имеется счетчик для наращивания адресов столбцов ячеек памяти с целью обеспечения быстрого доступа к ним.
Существовало два типа синхронной динамической SDRAM-памяти: РС100 и РС133. Числа 100 и 133 определяют частоту системной шины, которую поддерживает эта память. Соответственно, память PC 100 поддерживает максимальную частоту 100 МГц, а РС133 — 133 МГц. По своей внутренней архитектуре, способам управления и внешнему дизайну модули памяти РС100 и РС133 были полностью идентичны. Можно сказать, что память PC 133 — это разогнанный вариант PC 100.
Память принято характеризовать различными параметрами, среди которых основным (точнее, первым из называемых) является пропускная способность канала данных — максимальное количество байт, передаваемых по каналу данных за единицу времени (за одну секунду). Память PC 100 и PC 133 имеет 64-битную (восьмибайтную) шину данных, то есть за каждый такт можно передать 8 байт данных. Следовательно, чтобы определить пропускную способность памяти, нужно умножить количество тактов передачи за одну секунду на количество байт, передаваемых за один такт. Количество тактов обращений к памяти за одну секунду — это частота работы памяти. Таким образом, пропускная способность канала памяти определяется по формуле:
Пропускная способность (Мбайт/с) = Частота системной шины (МГц) • 8 байт.
Для памяти РС100 пропускная способность составит 100 МГц • 8 байт = 800 Мбайт/с, а для памяти РС133 — 1064 Мбайт/с, или приблизительно 1 Гбайт/с.
Следует иметь в виду, что здесь речь идет о максимально возможной пропускной способности, которая реализуется только в случае последовательной передачи данных (в режиме страничного доступа), когда данные передаются с каждым тактом обращения. В то же время при этом не учитывается количество тактов, необходимых для получения доступа к самой строке, а также для настроек (пробуждения) модуля памяти. Поэтому другими важными характеристиками памяти являются время доступа и время цикла.
Время доступа (RAS to active time, Tras) — это время, проходящее с момента обращения к памяти до момента считывания данных. Данная величина приблизительно одинакова для всех типов динамической памяти и составляет примерно 50 не. Время доступа актуально при случайном доступе к памяти, то есть когда последовательные считываемые ячейки памяти принадлежат различным строкам. Если же говорить о блочной передаче, то более показательной характеристикой является время цикла, то есть время между двумя последовательными обращениями к ячейкам памяти. Первый цикл обращения всегда равен времени доступа, то есть около 50 не. Но при последующих циклах обращения в пределах одной страницы время существенно меньше и составляет 10 не для памяти РС100 и 7,5 не для РС133 (7,5 не — длительность одного такта при частоте шины 133 МГц).
SDRAM: время доступа

Временная диаграмма работы памяти SDRAM
Время доступа (RAS to active time, Tras) — это время, проходящее с момента обращения к памяти до момента считывания данных. Данная величина приблизительно одинакова для всех типов динамической памяти и составляет примерно 50 не. Время доступа актуально при случайном доступе к памяти, то есть когда последовательные считываемые ячейки памяти принадлежат различным строкам. Если же говорить о блочной передаче, то более показательной характеристикой является время цикла, то есть время между двумя последовательными обращениями к ячейкам памяти. Первый цикл обращения всегда равен времени доступа, то есть около 50 не. Но при последующих циклах обращения в пределах одной страницы время существенно меньше и составляет 10 не для памяти РС100 и 7,5 не для РС133 (7,5 не — длительность одного такта при частоте шины 133 МГц).
меньшее количество тактов. Например, при цепочке 5-1-1-1 данные появляются без задержек, то есть с каждым тактовым импульсом. Сумма всех цифр цепочки показывает количество тактов, необходимых для получения четырех элементов. Так, для памяти PC 133 реализуется схема 5-1-1-1, которая означает, что для доступа к данным требуется восемь тактов. Для рассмотренной ранее памяти EDO реализуется схема 5-2-2-2 и для доступа требуется 11 тактов, а для памяти FPM схема 5-3-3-3 дает 14 тактов.
Микросхемы SDRAM-памяти каждый раз перед началом процесса чтения настраиваются (подготовительный период) посредством установки специальных регистров. Регистр режимов устанавливается перед первым обращением к памяти и затем переустанавливается по мере необходимости. После такта записи в регистр режимов обязательно должен следовать пустой такт. Настройке посредством установки регистров подлежат следующие параметры: длина пакетного цикла, порядок счета адресов внутри пакетного цикла, CAS-латентность и тип операции с памятью.
Длина пакетного цикла (Burst Length, BL) — это количество обращений к последовательным ячейкам памяти в пределах одной страницы, когда адресация колонок осуществляется за счет использования внутреннего счетчика адресов. В соответствии с параметром BL настраивается цикл работы счетчика адресов. Длина пакетного цикла может быть равна 1, 2, 4, 8 или Full Page (последнее значение определяется длиной строки и обычно равно 256).
Порядок счета адресов внутри пакетного цикла может быть либо последовательный, либо чередующийся (interleave).
CAS-латентность (CAS latency) определяет задержку по времени в тактах, которая происходит с момента подачи сигнала CAS (с момента получения адреса столбца) до выдачи первого слова данных на шину. Для SDRAM-памяти эта задержка может составлять два или три такта.
SDRAM: тип операции
Тип операции с памятью (Operation Mode) может быть либо нормальным, когда используется пакетный режим для чтения и записи, либо специальным, когда применяется режим пакетного чтения и одиночных операций записи.
Порядок обращения к памяти начинается, как уже отмечалось, с установки регистров управления. На это уходит два такта, после чего начинается активизация нужного банка памяти, то есть ввод адреса строки и подача стробирующего сигнала RAS. С приходом положительного фронта тактового импульса открывается доступ к нужной строке, а адрес строки помещается в адресный буфер строки, где он может удерживаться столько времени, сколько нужно.
Через промежуток времени, называемый RAS to CAS delay (tRCD) — то есть задержка в тактах подачи сигнала CAS относительно сигнала RAS, подается строби- рующий импульс CAS. При установке CAS в низкий уровень после прихода положительного фронта тактирующего импульса происходит выборка адреса столбца, который присутствует в данный момент на шине адреса, и открывается доступ к нужному столбцу матрицы памяти.
Затем, через время CAS latency (tCL), на шине данных появляется первое слово, которое может быть считано процессором. Каждое последующее слово (их количество определяется длиной пакетного цикла) появляется на шине данных в очередном такте.
Завершение цикла обращения к банку памяти осуществляется подачей команды деактивации RAS Pre charge (tRP). Эта команда подается за один (при CAS latency = 2) или за два (при CAS latency = 3) такта перед выдачей последнего слова данных. Время деактивации также измеряется в тактах и может быть равно двум или трем.
Описанные промежутки времени RAS to CAS delay (tRCD), CAS latency (tCL) и время деактивации RAS Pre charge (tRP) определяют тайминг памяти, записываемый в виде последовательности tCL —»tRCD -> tRP. Понятно, что чем меньше тайминг, тем более быстродействующей является память. Часто в характеристиках памяти указываются не все тайминги, а только показатель tCL (например, tCL7 или tCL8 для модулей памяти DDR3).