Что такое SDRAM? Типы и характеристики оперативной памяти Английская аббревиатура динамической памяти


Память SDRAM: что мы имеем?

Последние программные продукты, активно проникающие на жесткие диски наших персональных компьютеров, очень разные. Но есть у них и нечто общее. И это общее - небывалая доселе требовательность в отношении аппаратных ресурсов. А особенно объема оперативной памяти (про ненавязчивый "совет" использовать 3D-акселератор я уже даже и не говорю). Если ранее необходимым и достаточным считалось иметь 32 Мб RAM, то сегодня это уже 64, и уже явно видно то время, когда "прожорливость" ПО (и в первую очередь игр) потребует не менее 96-128 Мб. И выхода нет - приходится "наращивать" мощь своего ПК установкой дополнительных модулей памяти. Вот о них самых и поговорим.

Больше всего не повезло владельцам компьютеров на базе материнских плат Socket-7, поддерживающих только асинхронную динамическую память в виде 72-х контактных модулей памяти SIMM (DRAM Single In-line Memory Modules). Все эти модули 32-х битные и могут устанавливаться в "пентиумные" материнские платы только попарно (ввиду 64-х битной структуры шины памяти), что не дешево. Другая проблема в том, что они уже давно не выпускаются (во всяком случае массово). А с рук и со складов некоторых фирм в основном продают модули SIMM объемом 4 или 8 Мб (максимум 16 Мб), что не позволяет во многих ПК дотянуть даже до 64 Мб. А если сюда добавить еще неоднородность памяти SIMM (типы FPM и EDO, которые часто не уживаются друг с другом) и бесполезность наращивания памяти ввиду откровенной слабости центрального процессора (ниже Pentium-166) и графической карты (менее 4 Мб видеопамяти), то вывод напрашивается сам собой - в этом случае требуется коренная модернизация всего ПК до уровня хотя бы Pentium Celeron или AMD K6-2.

Сегодня практически все компьютеры на базе процессоров семейства Р6 оснащаются синхронной динамической оперативной памятью в виде 168-контактных, 64-х битных модулей DIMM (Synchronous DRAM Dual In-line Memory Modules).

Первоначально вся память была асинхронной. При асинхронной передаче гарантируется, что определенная операция будет закончена за фиксированный промежуток времени (около 60-70 нс). Работа асинхронной памяти не привязана к тактовой частоте системной шины, и данные появляются на этой шине в произвольные моменты времени. С системной шины данные считываются контролером, который синхронизирован тактовой частотой, и если данные появляются в ближайший момент за фронтом тактового импульса, то они будут считаны только с началом следующего тактового импульса, т.е. возникает задержка с обработкой данных. Осуществляя специальные режимы доступа, проектировщики памяти смогли улучшить работу обычной памяти. В памяти FPM (Fast Page Mode) применялся режим постраничной адресации и при этом удалось увеличить тактовую частоту до 40 МГц.

Следующим шагом на пути улучшения памяти был переход к стандарту EDO (Extended data output), который характеризовался увеличенным по сравнению с FPM временем хранения данных на выходе микросхемы памяти. В сочетании с пакетным режимом передачи данных (Burst Mode) эта память обеспечила хорошую производительность и с успехом применяется и сейчас в системах, не требующих более 66 МГц системной шины. Но процессор, работающий с асинхронной памятью, вынужден праздно ждать DRAM, чтобы завершить внутренние действия, для чего обычно требуется 60 нс.

При синхронной работе с памятью DRAM выдает информацию на системную шину по тактам системного генератора. При этом управление памятью усложняется, так как приходится вводить дополнительные "защелки", которые хранят адреса, данные и управляющие сигналы, в то время как процессор, передав их в память, продолжает работать с другими устройствами. После определенного числа тактовых циклов, количество которых считает специальный счетчик, данные становятся доступными и процессор может получить их с системной шины. При этом для описания быстродействия памяти вместо продолжительности цикла доступа стали применять минимально допустимый период тактовой частоты. Так, если говорят, что модуль 10 нс, это означает, что он тактируется последовательностью импульсов с частотой 100 МГц.

Именно частота системного генератора является характеристикой любого применяемого в системе синхронного модуля памяти. При этом не нужны делители или умножители частоты, нет необходимости в расчете времени подачи управляющих сигналов (стробов). Запись информации в модуль также упрощается, так как адреса, данные и стробы "защелкиваются" тактовым генератором без вмешательства центрального процессора, который ранее был вынужден контролировать синхронизацию хранения данных в памяти и запись в память.

На частотах до 83 МГц не было никакой реальной причины переходить с EDO на SDRAM. Цена SDRAM была значительно выше, а производительность возрастала незначительно. С появлением системной шины 100 МГц все изменилось. EDO DRAM уже не могла устойчиво работать на данной частоте, а производительность SDRAM на частоте 100 МГц была выше.

Работа любого типа памяти определяется временными диаграммами. Так, работа SDRAM описывается диаграммой 5-1-1-1. Это означает, что при считывании из памяти четырех последовательных слов, первое слово будет считано за пять тактов, а каждое последующее - за один. Для сравнения: память FPM имеет диаграмму 5-3-3-3, а память EDO - 5-2-2-2. Правда, это все теоретические "предпосылки" (в реальной системе есть масса устройств, мешающих выполнению этих диаграмм), доказывающие преимущества применения SDRAM.

Для первых SDRAM, работающих с чипсетами Intel TX и VX, предусматривалась тактовая частота 66 МГц. Но вскоре появились чипсеты, работающие на частоте шины 100 МГц. Производимые SDRAM-модули могли довольно устойчиво работать на частотах более 66 МГц, а некоторые образцы этой памяти даже и сейчас работают на частоте 100 МГц. Планируя обеспечить потребности в памяти для 66-мегагерцовых систем, многие производители выпустили слишком много 66-мегагерцовых SDRAM-модулей. Хотя уже год назад существовали настоящие 10- и 8-наносекундные чипы памяти SDRAM, но производство 100-мегагерцовых SDRAM-модулей не форсировалось, т.к. запаздывала спецификация, получившая название РС100 и вышедшая только в феврале 1998 года.

Большая масса ныне существующих чипов памяти SDRAM являются 10 нс и, согласно спецификации, не позволяют модулю памяти устойчиво работать на частотах 100 MГц и более, хотя их и называют "100-мегагерцовыми". Технология изготовления памяти, работающей на частоте более 100 МГц, чрезвычайно сложна и требует специального отношения ко всем элементам цифрового тракта передачи данных. Спецификация модулей памяти PC100, разработанная Intel, содержит более 250 страниц текста. Этой спецификацией Intel сильно ограничила число возможных производителей памяти, настолько высоки требования к технологии изготовления SDRAМ.

В настоящее время в предложениях продавцов 100-мегагерцовой памяти можно встретить 2 класса памяти, отвечающих стандарту PC100 для применения в компьютерных системах: PC100 SDRAM Unbuffered DIMM и PC100 SDRAM Registered DIMM. Unbuffered модули, иначе называемые "небуферизированными", выпускаются как в 64-разрядном исполнении, так и в 72-разрядном (с использованием функции ЕСС), и их максимальная емкость составляет 512 Мб. DIMM-модули стандарта Registered выпускаются только в 72-разрядном исполнении, и их емкость на данный момент достигает 1024 Мб. Подобные типы DIMM применяются в системах, требующих более 1 Гб оперативной памяти (мощные многопроцессорные серверы, специализированные системы обработки информации и т.д.) и отличаются от Unbuffered DIMM увеличенным размером печатной платы (PCB), а также наличием специальных микросхем - регистров (Registers) на модуле, которые обеспечивают страничную организацию памяти.

На нашем рынке практически все модули DIMM являются небуферизированными и трехвольтовыми. Об этом свидетельствуют два небольших паза (ключи) на РСВ. Первый ключ, расположенный между 10-м и 11-м выводами (пинами) идентифицирует DIMM как небуферизированный. Второй паз, расположенный по центру между 40-м и 41-м контактом, определяет напряжение питания модуля - 3,3V.

Предвидя сложности функционирования систем с SDRAM от разных производителей, а также для облегчения установки SDRAM в систему, Intel разработал спецификацию на последовательную EEPROM-память, названную Serial Presence Detect (SPD).

Присутствие SPD-контроллера на DIMM-модулях, отвечающих спецификации РС100, - необходимое условие, т.к. он содержит точные характеристики чипов памяти, которые необходимы BIOS для правильной конфигурации системы. При старте системы чипсет материнской платы последовательно прочитывает байты из EEPROM для идентификации модуля SDRAM и устанавливает параметры системы так, чтобы обеспечить корректную работу с данным видом памяти. Надо понимать, что производителей SDRAM-модулей очень много. Их производят компании, которые потратили "всего" около 40 000 долларов на приобретение станции монтажа и на аппарат тестирования контроля годности модулей. Как правило, такие компании не получают первосортные чипы SDRAM и, соответственно, параметры готового SDRAM-модуля не лучшие. Вводя спецификацию РС100, корпорация Intel старалась ограничить число производителей SDRAM-модулей. Ниже в таблице приводятся компании, модули памяти которых прошли тестирование и могут называться 100-мегагерцовыми:

В соответствии с требованиями Intel плата SDRAM PC100-модуля должна быть маркирована как "PCSDRAM-REV#.#". Обозначение символов #.# - номер версии спецификации, которая использовалась во время разработки и производства платы РСВ. Спецификация 1.0 - современная и была принята в феврале 1998 г. К этому моменту многие производители уже выпустили большое количество DIMM-модулей, отвечающих спецификации REV 0.9 (октябрь 1997 г.). Эти SDRAM-модули предназначались для работы только в системах с частотой шины 66 МГц. Поэтому наклейка или надпись выполненная краской на РСВ, не даст Вам полной уверенности, что данный DIMM-модуль - 100-мегагерцовый.

В последнее время у пользователей огромной популярностью пользуются модули памяти с 8-наносекундными микросхемами SDRAM. Считается, что такая память быстрее 10-наносекундной и может работать на частоте шины чуть ли не до 133 МГц.

Это не совсем так. Одним из важнейших параметров памяти, влияющих на ее быстродействие, является CAS Latency. Он обозначает минимальное количество циклов тактового сигнала от момента запроса данных сигналом CAS (выборка столбца) до их появления и устойчивого считывания с выводов модуля. Значения CL может быть "2" или "3". Чем меньше число, тем чип быстрее и стоит дороже. Если сравнить два модуля PC100 с микросхемами 10 нс и 8 нс, то быстрее на 100 МГц будет работать тот, у которого параметр CL меньше (т.е. равен 2). И нередко это именно SDRAM 10 нс. Правда, такие модули обычно не работают на частоте более 100 МГц, в то время как 8-наносекундные модули теоретически могут устойчиво функционировать до 125 МГц (иногда выше).

Но вернемся к недавней истории. Постепенно с целью увеличения пропускной способности системной шины возникла необходимость в более быстрой памяти, работающей на частотах выше 100 МГц. Многими производителями памяти были начаты работы по проектированию совершенно новых типов памяти: DDR (Double Data Rate) SDRAM и Rambus. Но все упиралось в высокую стоимость такой памяти. До конца эта проблема не решена и сегодня. Но рынок не терпит пустоты. И в итоге группа компаний - VIA Technologies, IBM Microelectronics, Micron Semiconductor Products, NEC Electronics, Samsung Semiconductor - продолжила спецификацию PC133 SDRAM DIMM (Revision 0.4, 7 июня 1999 г.). Они решили, что пусть память будет совместима с нынешними технологиями, дешевле стоить, хотя и не сможет работать на частотах выше 133 МГц. По большому счету, память PC133 - это лучшие образцы памяти стандарта PC100, разогнанные на 133 МГц.

При этом специально для памяти PC133 разрабатывался новый чипсет Apollo Pro 133 от второго крупнейшего в мире производителя чипсетов - VIA Technologies.

Позже и гигант Intel решил наряду с развитием памяти Rumbus временно поддержать проект PС133. Так появились процессоры Pentium III с добавлением "В", означающим, что он рассчитан на частоту системной шины (FSB) 133 МГц. Спецификация PC133 почти ничем не отличается от PC100.

Пиковая пропускная способность PC133 SDRAM приблизительно равна 1 Гб/с и средняя пропускная способность около 250 Мб/с, что соответствует пропускной способности AGP 4x (1 Гб/с - пиковая и 200 Мб/с - средняя). Пиковая пропускная способность PC100 SDRAM приблизительно 800 Мб/с, что меньше, чем у порта AGP 4x. То есть, память PC133 пригодится в графических станциях и геймерских системах.

Напомню, что стандарт PC133 SDRAM Unbuffered DIMM был принят 7 июня 1999 года. С этого момента производители смогли официально начать производство и продажу SDRAM-модулей стандарта PC133.

В сентябре 1999 года VIA Technologies Inc. опубликовала список производителей, чьи чипы соответствуют стандарту PC133. Вот они: Micron, Infineon, Samsung, Hitachi, Toshiba, Mitsubishi, Fujitsu, Mosel Vitelic.

Модуль SDRAM PC133 полностью совместим по контактам и конструктивному исполнению модулю SDRAM PC100, но должен быть построен на базе чипов со временем доступа не более 7.5 нс. Пока память PC133 дороже памяти РС100.

Сегодня у многих пользователей, имеющих платформу на базе чипсета i440BX, возникает желание поднять частоту FSB до 133 МГц. При этом система работает довольно устойчиво с памятью PC133, так как ВХ-чипсет такой разгон безболезненно позволяет, но при этом нет стабильной работы через AGP-порт, так как тактирующая частота АGР станет 88 МГц (что на 22 МГц больше допустимой 66 МГц). Есть проблемы и с функционированием PCI устройств. По тесту памяти при использовании модулей PC133 и чипсета ВХ с FSB 133 МГц на компьютерах РІІ-РIII 450 МГц с объемом памяти 128 Мб и выше мы получаем увеличение производительности не более чем на 10% по сравнению с такой же системой, в которой установлена память PC100. Много ли это? Решать Вам.

И напоследок несколько практических советов по покупке памяти. Сразу отмечу, что стопроцентно сказать заранее, какой тип памяти подойдет для Вашего ПК невозможно. Нужно пробовать и экспериментировать. Поэтому старайтесь договориться с продавцом о системе "money back".

Впрочем, кое-какие данные можно получить, внимательно присмотревшись к самому модулю памяти. Прежде всего, он должен быть аккуратно выполненным. Далее взглянем на маркировку чипов SDRAM. Вы увидите что-то типа: HM5264805FTT-75. HM означает, что изготовитель чипов - Hitachi. Если есть желание, можно на сайте производителя в INTERNET отыскать характеристики именно таких чипов. Ну а если нет такой возможности, то остается лишь "догадаться", что это 7.5 наносекундная память, что косвенно указывает на способность устойчиво работать при FSB 133 МГц (1 делить на 7.5 нс).

Отсутствие SPD-контроллера (маленькой микросхемки где-нибудь в уголке платы памяти) указывает на то, что модуль был изготовлен до принятия спецификации PC100 и скорее всего будет устойчиво работать только при FSB 66 МГц. Об этом же можно сказать и по дате изготовления чипов памяти. Она обычно имеет следующий вид: 9951. Где первые две цифры - год выпуска, а две последние - неделя выпуска (51 - примерно конец декабря). Если дата до февраля 1998 г., то память почти наверняка не PC100, хотя, возможно, и сможет работать на 100 МГц. Кроме этого, могу порекомендовать несколько небольших DOS-программ для определения типа памяти. Для начала можно запустить, к примеру, SYSTEM SPEED TEST ver. 4.27 (http://dxover.stealth.ru), который выдаст рейтинг Вашей памяти и попытается определить ее тип.

Далее, рекомендую ctsmb - System-Management-Bus-Scanner 1.2 (http://www.epos.kiev.ua/pub/ctsmb.exe), которая работает при наличии на материнской плате South-Bridge PIIX4, т.е. для тестирования памяти нужна "материнка" с чипсетом ТХ,LX, BX, ZX или EX в режиме MS-DOS. Программа реализует 3 основных режима работы: формирование полного отчета тестирования DIMM-модулей в соответствии со спецификацией Intel; формирование распечатки содержимого EEPROM в таблице, содержащей шестнадцатеричные коды; при наличии на плате чипа LM75 производит анализ температурных режимов платы. Во втором режиме работы возможно побайтное либо пословное (2 байта) чтение из EEPROM по указанному шестнадцатеричному адресу.

Быстрый анализ типа DIMM-модуля, установленного в системном блоке, может быть произведен также программой dimm_id (http://www.epos.kiev.ua/pub/dimm_id.exe). На программу распространяются все ограничения, рассмотренные выше: наличие South Bridge PIIX4, работа под DOS. Однако она может быть также запущена в окне под Windows. Программа DIMM_ID указывает номер банка памяти, в который установлен DIMM-модуль, наименование фирмы производителя, номер партии и серийный номер продукта, тип памяти и ее размер и, самое главное, максимальную частоту системной шины, с которой может работать данный DIMM-модуль. К недостаткам программы относится, в первую очередь, ограниченное число распознаваемых ведущих производителей DIMM-модулей: Hyundai, Samsung, TI, Fujitsu, Micron, Vanguard, Siemens. В остальных случаях она указывает на "неизвестного" производителя. Существует еще программка spd_tool (ftp://abis-gw.paco.odessa.ua/pub/tools/spd_tool.rar). Но с ней я еще не работал, так что пробуйте сами.

Да, и еще относительно памяти PC133! В силу ряда причин, Intel в свое время отказалась от PC133. В результате стандарты ушли вперед, а мы получили поле в SPD I-Spec, которое для памяти PC133 будет соответствовать PC100. Это не глюки программ, а сделано для совместимости со старыми матерями. К тому же производители модулей памяти могут занести в SPD-контроллер заведомо ложную или не полную информацию. Помните об этом и... удачи всем многострадальным пользователям персоналок!

Валерий Владынцев

Самым распространённым на сегодня типом ОЗУ, является SDRAM. Если перевести дословно, то это значит синхронная динамическая память с произвольным доступом.

Не вдаваясь в технические подробности, отличие данного типа ОЗУ состоит в том, что, когда сигнал поступает на ОЗУ, ответ от неё поступает не сразу, а только в случае поступления ответного сигнала. Ещё из особенностей можно выделить параллельную обработку команд (последующая команда начинает обрабатываться, не дожидаясь, завершение предыдущей).

Начало продаж

Собственно эра SDRAM берёт начало в 1993 году, когда SDRAM начали массово производить. В те времена использовался другой тип ОЗУ, именуемый VRAM, но он был достаточной дорогой для обычного пользователя. Выпускаемые ОЗУ получили наименование SDR SDRAM, и подходили для форм-фактора (по-простому: разъёма на материнской плате) модулей памяти DRAM.

Широко выпускались 64 мегабайтные модули, с тактовой частотой 66 - 133 МГц. Кое-где они ещё используются, но это уже большая редкость.

DDR SDRAM

Но прогресс не стоял на месте, и через некоторое время появляется новый стандарт ОЗУ, названный DDR SDRAM. В котором, за счёт технических ухищрений, удалось достигнуть удвоения скорости работы, при сохранении частоты.

Из новшеств, ещё был введён синхронизирующий сигнал между модулями (при использовании более одного модуля). В случае использования нескольких модулей, один из них будет расположен дальше другого от контроллера памяти. Соответственно и сигналы с модулей ОЗУ будут доходить до него с разной временной задержкой (конечно для человека эта разница покажется ничтожной, но для компьютера это существенно). Синхронизирующий сигнал устранял этот нюанс.

Оперативная память DDR выпускались на тактовую частоту до 350 МГц. Для электропитания модуля, требовалось напряжение в 2.6 В. По объёму памяти, производились модули на 256 и 512 Мб.

На сегодняшний момент DDR SDRAM мало где применяются.

ОЗУ DDR 2

В 2003 году, появились DDR2 (полное название DDR2 SDRAM). Главное преимущество перед предшественницей - увеличенная тактовая частота шины. Улучшенная конструкция, позволяющая лучше охлаждаться электронным компонентам модуля. Но кроме плюсов, появился и недостаток, итоговые задержки при обработке команд выше, чем для DDR.

В модулях DDR2 была внедрена новая (на то время) технология применения т.н. ECC-памяти. Один микро чип на ОЗУ отводится для автоматического распознавания и исправления, спонтанно возникших ошибок памяти (возникающих например, от электромагнитных помех генерируемых самим компьютером, или при воздействии космического излучения).

DDR2 выпускались на тактовую частоту до 600 МГц. Для электропитания модуля, требовалось 1.8 В напряжения, а потребляемая мощность составляла 247 мВт. По объёму памяти, производились модули на 512 - 4096 Мб.

По широте использования, это самый распространённый тип ОЗУ на просторах СНГ. Хотя в целом по планете, DDR2 широко заменяются на более новые.

Оперативная память DDR 3

В 2010 году в свет вышел новый тип ОЗУ, DDR3. Ещё большая рабочая частота, ещё больший объём чипов памяти.

DDR3 выпускались на частоту шины до 1200 МГц. Для электропитания модуля, требуется напряжение всего в 1.5 В. По максимальному объёму памяти, модули начали производиться, с неслыханными до этого 16 ГБ оперативной памяти.

Большинство продаваемых компьютеров в настоящее время используют ОЗУ типа DDR3.

DDR 4

В 2014 году в свет вышел новый тип ОЗУ, DDR4. Созданный как улучшенная версия DDR3. Рабочая частота некоторых образцов достигает 3333 МГц. Объёмы памяти от 4 до 128 Гб.

Увидеть где-либо DDR4, на просторах СНГ сейчас всё ещё большая редкость. Но как показывает практика, это всего лишь вопрос времени.

Использующегося в компьютере и других цифровых устройствах в качестве ОЗУ .

В отличие от других типов DRAM, использовавших асинхронный обмен данными, ответ на поступивший в устройство управляющий сигнал возвращается не сразу, а лишь при получении следующего тактового сигнала . Тактовые сигналы позволяют организовать работу SDRAM в виде конечного автомата , исполняющего входящие команды. При этом входящие команды могут поступать в виде непрерывного потока, не дожидаясь, пока будет завершено выполнение предыдущих инструкций (конвейерная обработка): сразу после команды записи может поступить следующая команда, не ожидая, когда данные окажутся записаны. Поступление команды чтения приведёт к тому, что на выходе данные появятся спустя некоторое количество тактов - это время называется задержкой и является одной из важных характеристик данного типа устройств.

Циклы обновления выполняются сразу для целой строки, в отличие от предыдущих типов DRAM , обновлявших данные по внутреннему счётчику, используя способ обновления по команде CAS перед RAS.

История использования

Массовый выпуск SDRAM начался в 1993 году. Первоначально этот тип памяти предлагался в качестве альтернативы для дорогой видеопамяти (VRAM), однако вскоре SDRAM завоевал популярность и стал применяться в качестве ОЗУ, постепенно вытесняя другие типы динамической памяти. Последовавшие затем технологии DDR позволили сделать SDRAM ещё эффективнее. За разработкой DDR SDRAM последовали стандарты DDR2 SDRAM , DDR3 SDRAM и DDR4 SDRAM .

SDR SDRAM

Первый стандарт SDRAM с появлением последующих стандартов стал именоваться SDR (Single Data Rate - в отличие от Double Data Rate). За один такт принималась одна управляющая команда и передавалось одно слово данных. Типичными тактовыми частотами были 66, 100 и 133 МГц. Микросхемы SDRAM выпускались с шинами данных различной ширины (обычно 4, 8 или 16 бит), но как правило, эти микросхемы входили в состав 168-контактного модуля DIMM , который позволял прочитать или записать 64 бита (в варианте без контроля чётности) или 72 бита (с контролем чётности) за один такт.

Использование шины данных в SDRAM оказалось осложнено задержкой в 2 или 3 такта между подачей сигнала чтения и появлением данных на шине данных, тогда как во время записи никакой задержки быть не должно. Потребовалась разработка достаточно сложного контроллера, который не позволял бы использовать шину данных для записи и для чтения в один и тот же момент времени.

Управляющие сигналы

Команды, управляющие модулем памяти SDR SDRAM, подаются на контакты модуля по 7 сигнальным линиям. По одной из них подается тактовый сигнал, передние (нарастающие) фронты которого задают моменты времени, в которые считываются команды управления с остальных 6 командных линий. Имена (в скобках - расшифровки имен) шести командных линий и описания команд приведены ниже:

  • CKE (clock enable) - при низком уровне сигнала блокируется подача тактового сигнала на микросхему. Команды не обрабатываются, состояние других командных линий игнорируется.
  • /CS (chip select) - при высоком уровне сигнала все прочие управляющие линии, кроме CKE, игнорируются. Действует как команда NOP (нет оператора).
  • DQM (data mask) - высокий уровень на этой линии запрещает чтение/запись данных. При одновременно поданной команде записи данные не записываются в DRAM. Присутствие этого сигнала в двух тактах, предшествующих циклу чтения, приводит к тому, что данные не считываются из памяти.
  • /RAS (row address strobe) - несмотря на название, это не строб, а всего лишь один командный бит. Вместе с /CAS и /WE кодирует одну из 8 команд.
  • /CAS (column address strobe) - несмотря на название, это не строб, а всего лишь один командный бит. Вместе с /RAS и /WE кодирует одну из 8 команд.
  • /WE (write enable) - Вместе с /RAS и /CAS кодирует одну из 8 команд.

Устройства SDRAM внутренне разделены на 2 или 4 независимых банка памяти. Входы адреса первого и второго банка памяти (BA0 и BA1) определяют, какому банку предназначена текущая команда.

Принимаются следующие команды:

/CS /RAS /CAS /WE BAn A10 An Команда
В x x x x x x задержка команды (нет операции)
Н В В В x x x нет операции
Н В В Н x x x остановить текущую операцию пакетного чтения или записи.
Н В Н В № банка Н № столбца считать пакет данных из активного в данный момент ряда.
Н В Н В № банка В № столбца
Н В Н Н № банка Н № столбца записать пакет данных в активный в данный момент ряд.
Н В Н Н № банка В № столбца как и предыдущая команда, а по завершении команды регенерировать и закрыть этот ряд.
Н Н В В № банка № ряда открыть ряд для операций записи и чтения.
Н Н В Н № банка Н x деактивировать текущий ряд выбранного банка.
Н Н В Н x В x деактивировать текущий ряд всех банков.
Н Н Н В x x x регенерировать по одному ряду каждого из банков, используя внутренний счётчик. Все банки должны быть деактивированы.
Н Н Н Н 0 0 РЕЖИМ с линий A0-A9 загрузить в микросхему параметры конфигурирования. Наиболее важные - CAS latency (2 или 3 такта) и длина пакета (1, 2, 4 или 8 тактов)

Новые поколения процессоров стимулировали разработку более скоростной памяти SDRAM (Synchronous Dynamic Random Access Memory) с тактовой частотой 66 МГц, а модули памяти с такими микросхемами получили название DIMM(Dual In-line Memory Module).
Для использования с процессорами Athlon, а потом и с Pentium 4, было разработано второе поколение микросхем SDRAM - DDR SDRAM (Double Data Rate SDRAM). Технология DDR SDRAM позволяет передавать данные по обоим фронтам каждого тактового импульса, что предоставляет возможность удвоить пропускную способность памяти. При дальнейшем развитии этой технологии в микросхемах DDR2 SDRAM удалось за один тактовый импульс передавать уже 4 порции данных. Причем следует отметить, что увеличение производительности происходит за счет оптимизации процесса адресации и чтения/записи ячеек памяти, а вот тактовая частота работы запоминающей матрицы не изменяется. Поэтому общая производительность компьютера не увеличивается в два и четыре раза, а всего на десятки процентов. На рис. показаны частотные принципы работы микросхем SDRAM различных поколений.

Существуют следующие типы DIMM:

    • 72-pin SO-DIMM (Small Outline Dual In-line Memory Module) - используется для FPM DRAM (Fast Page Mode Dynamic Random Access Memory) и EDO DRAM (Extended Data Out Dynamic Random Access Memory)

    • 100-pin DIMM - используется для принтеров SDRAM (Synchronous Dynamic Random Access Memory)

    • 144-pin SO-DIMM - используется для SDR SDRAM (Single Data Rate …) в портативних компьютерах

    • 168-pin DIMM - используется для SDR SDRAM (реже для FPM/EDO DRAM в рабочих станциях/серверах

    • 172-pin MicroDIMM - используется для DDR SDRAM (Double date rate)

    • 184-pin DIMM - используется для DDR SDRAM

    • 200-pin SO-DIMM - используется для DDR SDRAM и DDR2 SDRAM



    • 214-pin MicroDIMM - используется для DDR2 SDRAM

    • 204-pin SO-DIMM - используется для DDR3 SDRAM

    • 240-pin DIMM - используется для DDR2 SDRAM, DDR3 SDRAM и FB-DIMM (Fully Buffered) DRAM





    • 244-pin Mini-DIMM – для Mini Registered DIMM

    • 256-pin SO-DIMM - используется для DDR4 SDRAM

    • 284-pin DIMM - используется для DDR4 SDRAM

Чтобы нельзя было установить неподходящий тип DIMM-модуля, в текстолитовой плате модуля делается несколько прорезей (ключей) среди контактных площадок, а также справа и слева в зоне элементов фиксации модуля на системной плате. Для механической идентификации различных DIMM-модулей используется сдвиг положения двух ключей в текстолитовой плате модуля, расположенных среди контактных площадок. Основное назначение этих ключей - не дать установить в разъем DIMM-модуль с неподходящим напряжением питания микросхем памяти. Кроме того, расположение ключа или ключей определяет наличие или отсутствие буфера данных и т. д.

Модули DDR имеют маркировку PC. Но в отличие от SDRAM, где PC обозначало частоту работы (например PC133 – память предназначена для работы на частоте 133МГц), показатель PC в модулях DDR указывает на максимально достижимую пропускную способностью, измеряемую в мегабайтах в секунду.

DDR2 SDRAM

Название стандарта Тип памяти Частота памяти Частота шины Передача данных в секунду (MT/s)
PC2-3200 DDR2-400 100 МГц 200 МГц 400 3200 МБ/с
PC2-4200 DDR2-533 133 МГц 266 МГц 533 4200 МБ/с
PC2-5300 DDR2-667 166 МГц 333 МГц 667 5300 МБ/с
PC2-5400 DDR2-675 168 МГц 337 МГц 675 5400 МБ/с
PC2-5600 DDR2-700 175 МГц 350 МГц 700 5600 МБ/с
PC2-5700 DDR2-711 177 МГц 355 МГц 711 5700 МБ/с
PC2-6000 DDR2-750 187 МГц 375 МГц 750 6000 МБ/с
PC2-6400 DDR2-800 200 МГц 400 МГц 800 6400 МБ/с
PC2-7100 DDR2-888 222 МГц 444 МГц 888 7100 МБ/с
PC2-7200 DDR2-900 225 МГц 450 МГц 900 7200 МБ/с
PC2-8000 DDR2-1000 250 МГц 500 МГц 1000 8000 МБ/с
PC2-8500 DDR2-1066 266 МГц 533 МГц 1066 8500 МБ/с
PC2-9200 DDR2-1150 287 МГц 575 МГц 1150 9200 МБ/с
PC2-9600 DDR2-1200 300 МГц 600 МГц 1200 9600 МБ/с

DDR3 SDRAM

Название стандарта Тип памяти Частота памяти Частота шины Передач данных в секунду(MT/s) Пиковая скорость передачи данных
PC3-6400 DDR3-800 100 МГц 400 МГц 800 6400 МБ/с
PC3-8500 DDR3-1066 133 МГц 533 МГц 1066 8533 МБ/с
PC3-10600 DDR3-1333 166 МГц 667 МГц 1333 10667 МБ/с
PC3-12800 DDR3-1600 200 МГц 800 МГц 1600 12800 МБ/с
PC3-14400 DDR3-1800 225 МГц 900 МГц 1800 14400 МБ/с
PC3-16000 DDR3-2000 250 МГц 1000 МГц 2000 16000 МБ/с
PC3-17000 DDR3-2133 266 МГц 1066 МГц 2133 17066 МБ/с
PC3-19200 DDR3-2400 300 МГц 1200 МГц 2400 19200 МБ/с

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

Пропускная способность = Частота шины x ширину канала x кол-во каналов

Для всех DDR — количество каналов = 2 и ширина равна 64 бита.
Например, при использовании памяти DDR2-800 с частотой шины 400 МГц пропускная способность будет:

(400 МГц x 64 бит x 2)/ 8 бит = 6400 Мбайт/с

Каждый производитель каждому своему продукту или детали дает его внутреннюю производственную маркировку, называемую P/N (part number) — номер детали.
Для модулей памяти у разных производителей она выглядит примерно так:

  • Kingston KVR800D2N6/1G
  • OCZ OCZ2M8001G
  • Corsair XMS2 CM2X1024-6400C5

На сайте многих производителей памяти можно изучить, как читается их Part Number.

Kingston Part Number Description
KVR1333D3D4R9SK2/16G 16GB 1333MHz DDR3 ECC Reg CL9 DIMM (Kit of 2) DR x4 w/TS

– Организация и принципы работы

– Физическая организация

– Организация модулей памяти SDRAM

– Микросхема SPD

Тайминги памяти

– DDR/DDR2 SDRAM: Отличия от SDR SDRAM

Организация и принципы работы

В современных персональных компьютерах применяется память стандарта SDRAM . Аббревиатура эта расшифровывается как Synchronous Dynamic Random Access Memory – синхронная динамическая память с произвольным доступом.

Под синхронностью обычно понимается строгая привязка управляющих сигналов и временных диаграмм функционирования памяти к частоте системной шины. Вообще говоря, изначальный смысл понятия синхронности уже стал достаточно условным. Во-первых, частота шины памяти может отличаться от частоты системной шины (существующий «асинхронный» режим работы памяти DDR SDRAM, в которых частоты системной шины процессора и шины памяти могут соотноситься как 133/166 или 166/200 МГц). Во-вторых, существуют системы, в которых само понятие «системной шины» становится условным – речь идет о платформах класса AMD Athlon 64 с интегрированным в процессор контроллером памяти. Частота «системной шины» (под которой в данном случае понимается не шина HyperTransport для обмена данными с периферией, а непосредственно «шина» тактового генератора) в этих платформах является лишь опорной частотой, которую процессор умножает на заданный коэффициент для получения собственной частоты. При этом контроллер памяти всегда функционирует на той же частоте, что и сам процессор, а частота шины памяти задается целым делителем, который может не совпадать с первоначальным коэффициентом умножения частоты «системной шины». Так, например, режиму DDR-333 на процессоре AMD Athlon 64 3200+ будут соответствовать множитель частоты «системной шины» 10 (частота процессора и контроллера памяти 2000 МГц) и делитель частоты памяти 12 (частота шины памяти 166.7 МГц). Таким образом, под «синхронной» операцией SDRAM в настоящее время следует понимать строгую привязку временных интервалов отправки команд и данных по соответствующим интерфейсам устройства памяти к частоте шины памяти (проще говоря, все операции в ОЗУ совершаются строго по фронту/срезу синхросигнала интерфейса памяти). Так, отправка команд и чтение/запись данных может осуществляться на каждом такте шины памяти (по положительному перепаду – «фронту» синхросигнала; в случае памяти DDR/DDR2 передача данных происходит как по «фронту», так и по отрицательному перепаду – «срезу» синхросигнала), но не по произвольным временным интервалам (как это осуществлялось в асинхронной DRAM).

Понятие «динамической » памяти, DRAM, относится ко всем типам оперативной памяти, начиная с самой древней, «обычной» асинхронной динамической памяти и заканчивая современной DDR2. Этот термин вводится в противоположность понятия «статической » памяти (SRAM) и означает, что содержимое каждой ячейки памяти периодически необходимо обновлять (ввиду особенности ее конструкции, продиктованной экономическими соображениями). В то же время, статическая память, характеризующаяся более сложной и более дорогой конструкцией ячейки и применяемая в качестве кэш-памяти в процессорах (а ранее – и на материнских платах), свободна от циклов регенерации, т.к. в ее основе лежит не емкость (динамическая составляющая), а триггер (статическая составляющая).

Наконец, стоит также упомянуть о «памяти с произвольным доступом » – Random Access Memory , RAM. Традиционно, это понятие противопоставляется устройствам «памяти только для чтения » – Read-Only Memory , ROM. Тем не менее, противопоставление это не совсем верно, т.к. из него можно сделать вывод, что память типа ROM не является памятью с произвольным доступом. Это неверно, потому как доступ к устройствам ROM может осуществляться в произвольном, а не строго последовательном порядке. И на самом деле, наименование «RAM» изначально противопоставлялось ранним типам памяти, в которых операции чтения/записи могли осуществляться только в последовательном порядке (например, стример). В связи с этим, более правильно назначение и принцип работы оперативной памяти отражает аббревиатура «RWM» (Read-Write Memory ), которая, тем не менее, встречается намного реже. Заметим, что русскоязычным сокращениям RAM и ROM – ОЗУ (оперативное запоминающее устройство) и ПЗУ (постоянное запоминающее устройство), соответственно, подобная путаница не присуща.

Общий принцип организации и функционирования микросхем динамической памяти (DRAM) практически един для всех ее типов – как первоначальной асинхронной, так и современной синхронной. Исключение составляют разве что экзотические варианты, тем не менее, существовавшие еще до появления SDRAM, вроде Direct Rambus DRAM (DRDRAM). Массив памяти DRAM можно рассматривать как матрицу (двумерный массив) элементов, каждый из которых содержит одну или несколько физических ячеек (в зависимости от конфигурации микросхемы), способных вмещать элементарную единицу информации – один бит данных. Ячейки представляют собой сочетание транзистора (ключа) и конденсатора (запоминающего элемента). Доступ к элементам матрицы осуществляется с помощью декодеров адреса строки и адреса столбца, которые управляются сигналами RAS# (сигнал выбора строки – Row Access Strobe ) и CAS# (сигнал выбора столбца – Column Access Strobe ).

Из соображений минимизации размера упаковки микросхемы, адреса строк и столбцов передаются по одним и тем же адресным линиям микросхемы – иными словами, говорят о мультиплексировании адресов строк и столбцов (упомянутые выше отличия в общих принципах функционирования микросхем DRDRAM от «обычных» синхронных/ асинхронных DRAM проявляются, в частности, здесь – адреса строк и столбцов передаются по разным физическим интерфейсам). Так, например, 22-разрядный полный адрес ячейки может разделяться на два 11-разрядных адреса (строки и столбца), которые последовательно (через определенный интервал времени, определяемый «таймингом » памяти ) подаются на адресные линии микросхемы памяти. Одновременно со второй частью адреса (адреса столбца) по единому командно-адресному интерфейсу микросхемы SDRAM подается соответствующая команда (чтения или записи данных). Внутри микросхемы памяти адреса строки и столбца временно сохраняются в буферах (защелках ) адреса строки и адреса столбца, соответственно.

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

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

Схема обращения к ячейке памяти в самом общем случае может быть представлена следующим образом:

1. На адресные линии микросхемы памяти подается адрес строки. Наряду с этим подается сигнал RAS#, который помещает адрес в буфер (защелку) адреса строки.

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

3. На адресные линии микросхемы памяти подается адрес столбца вместе с подачей сигнала CAS#, помещающего адрес в буфер (защелку) адреса столбца.

4. Поскольку сигнал CAS# также служит сигналом вывода данных, по мере его стабилизации усилитель уровня отправляет выбранные (соответствующие адресу столбца) данные в буфер вывода.

5. Сигналы CAS# и RAS# последовательно дезактивируются, что позволяет возобновить цикл доступа (по прошествии промежутка времени, в течение которого данные из усилителя уровня возвращаются обратно в массив ячеек строки, восстанавливая его прежнее логическое состояние).

Так выглядела реальная схема доступа к ячейке DRAM в самом первоначальном ее варианте, реализованном еще до появления первых реально используемых микросхем/модулей асинхронной памяти типа FPM (Fast Page Mode ) DRAM. Тем не менее, нетрудно заметить, что эта схема является достаточно неоптимальной. Действительно, если нам требуется считать содержимое не одной, а сразу нескольких подряд расположенных ячеек, отличающихся только адресом столбца, но не адресом строки, то нет необходимости каждый раз подавать сигнал RAS# с одним и тем же адресом строки (т.е. выполнять шаги 1-2). Вместо этого, достаточно удерживать сигнал RAS# активным на протяжении промежутка времени, соответствующего, например, четырем последовательным циклам чтения (шаги 3-4, с последующей дезактивацией CAS#), после чего дезактивировать сигнал RAS#. Именно такая схема применялась в асинхронной памяти типа FPM DRAM и более поздней EDO (Enhanced Data Output ) DRAM. Последняя отличалась опережающей подачей адреса следующего столбца, что позволяло достичь меньших задержек при операциях чтения. В современных микросхемах SDRAM схема обращения к ячейкам памяти выглядит аналогично.

Физическая организация

Микросхема DRAM фактически представляет собой двумерный массив (матрицу) элементов, состоящих из одного или нескольких элементарных физических ячеек. Очевидно, что главной характеристикой этого массива является его емкость, выражающаяся количеством бит информации, которую он способен вместить. Часто можно встретить понятия «256-Мбит», «512-Мбит» микросхем памяти – речь здесь идет именно об этом параметре. Однако составить эту емкость можно разными способами – здесь имеется в виду не количество строк и столбцов, а размерность или «вместимость» индивидуального элемента. Последняя прямо связана с количеством линий данных, т.е. шириной внешней шины данных микросхемы памяти (но не обязательно с коэффициентом пропорциональности в единицу, что будет видно ниже, при рассмотрении отличий памяти типа DDR и DDR2 SDRAM от «обычной» SDRAM). Ширина шины данных самых первых микросхем памяти составляла всего 1 бит, в настоящее же время наиболее часто встречаются 4-, 8- и 16- (реже – 32-) битные микросхемы памяти. Таким образом, микросхему памяти емкостью 512 Мбит можно составить, например, из 128М (134 217 728) 4-битных элементов, 64М (67 108 864) 8-битных элементов или 32М (33 554 432) 16-битных элементов – соответствующие конфигурации записываются как «128Mx4», «64Mx8» и «32Mx16». Первая из этих цифр именуется глубиной микросхемы памяти (безразмерная величина), вторая – шириной (выраженная в битах).

Существенная отличительная особенность микросхем SDRAM от микросхем более ранних типов DRAM заключается в разбиении массива данных на несколько логических банков (как минимум – 2, обычно – 4). Не следует путать это понятие с понятием «физического банка» (называемого также «рангом» (rank ) памяти), определенным для модуля, но не микросхемы памяти. Внешняя шина данных каждого логического банка (в отличие от физического, который составляется из нескольких микросхем памяти для «заполнения» шины данных контроллера памяти) характеризуется той же разрядностью (шириной), что и разрядность (ширина) внешней шины данных микросхемы памяти в целом (x4, x8 или x16). Иными словами, логическое разделение массива микросхемы на банки осуществляется на уровне количества элементов в массиве, но не разрядности элементов. Таким образом, рассмотренные выше реальные примеры логической организации 512-Мбит микросхемы при ее «разбиении» на 4 банка могут быть записаны как 32Mx4x4 банка, 16Mx8x4 банка и 8Mx16x4 банка, соответственно. Тем не менее, намного чаще на маркировке микросхем памяти встречаются именно конфигурации «полной» емкости, без учета ее разделения на отдельные логические банки, тогда как подробное описание организации микросхемы (количество банков, строк и столбцов, ширину внешней шины данных банка) можно встретить лишь в подробной технической документации на данный вид микросхем SDRAM.

Разбиение массива памяти SDRAM на банки было введено, главным образом, из соображений минимизации задержек поступления данных в систему – после осуществления любой операции со строкой памяти, после дезактивации сигнала RAS#, требуется определенное время для осуществления ее «подзарядки». И преимущество «многобанковых » микросхем SDRAM заключается в том, что можно обращаться к строке одного банка, пока строка другого банка находится на «подзарядке». Можно расположить данные в памяти и организовать к ним доступ таким образом, что далее будут запрашиваться данные из второго банка, уже «подзаряженного» и готового к работе. В этот момент вполне естественно «подзаряжать» первый банк и так далее. Такая схема доступа к памяти называется «доступом с чередованием банков» (Bank Interleave ).

Организация модулей памяти SDRAM

Основные параметры логической организации микросхем памяти – емкость, глубину и ширину, можно распространить и на физические модули памяти типа SDRAM. Понятие емкости (или объема) модуля очевидно – это максимальный объем информации, который данный модуль способен в себя вместить. Теоретически он может выражаться и в битах, однако «потребительской» характеристикой модуля памяти является его объем (емкость), выраженный в байтах – точнее, учитывая современный уровень используемых объемов памяти, – в мега- или гигабайтах.

Ширина модуля – это разрядность его интерфейса шины данных, которая соответствует разрядности шины данных контроллера памяти и для всех современных типов контроллеров памяти SDRAM (SDR, DDR и DDR2) составляет 64 бита. Таким образом, все современные модули характеризуются шириной интерфейса шины данных «x64». Соответствие между 64-битной шириной шины данных контроллера памяти (64-битным интерфейсом модуля памяти) и шириной внешней шины данных микросхем памяти, которая обычно составляет всего 4, 8 или 16 бит, достигается вследствие того, что интерфейс шины данных модуля составляется простым последовательным «слиянием» внешних шин данных индивидуальных микросхем модуля памяти. Такое «заполнение» шины данных контроллера памяти принято называть составлением физического банка памяти. Таким образом, для составления одного физического банка 64-разрядного модуля памяти SDRAM необходимо и достаточно наличие 16 микросхем x4, 8 микросхем x8 (это наиболее часто встречаемый вариант) или 4 микросхем x16.

Оставшийся параметр – глубина модуля, являющаяся характеристикой емкости модуля памяти, выраженной в количестве «слов» определенной ширины, вычисляется простым делением полного объема модуля на разрядность внешней шины данных (всё выражено в битах). Так, типичный 512-МБ модуль памяти SDR/DDR/DDR2 SDRAM имеет глубину, равную 512МБайт * 8 (бит/байт) / 64 бита = 64М. Соответственно, произведение ширины на глубину дает полную емкость модуля и определяет его организацию, или геометрию, которая в данном примере записывается в виде «64Мx64».

При использовании достаточно «широких» микросхем x8 или x16 ничего не мешает поместить и большее их количество, соответствующее не одному, а двум физическим банкам – 16 микросхем x8 или 8 микросхем x16. Так различают однобанковые (single-rank ) и двухбанковые (dual-rank ) модули. Двухбанковые модули памяти наиболее часто представлены конфигурацией «16 микросхем x8», при этом один из физических банков (первые 8 микросхем) расположен с лицевой стороны модуля, а второй из них (оставшиеся 8 микросхем) – с тыльной. Наличие более одного физического банка в модуле памяти нельзя считать определенным преимуществом, т.к. может потребовать увеличения задержек командного интерфейса, которые рассмотрены в соответствующем разделе.

Микросхема SPD

Еще до появления первого типа синхронной динамической оперативной памяти SDR SDRAM стандартом JEDEC предусматривается, что на каждом модуле памяти должна присутствовать небольшая специализированная микросхема ПЗУ, именуемая микросхемой последовательного обнаружения присутствия (Serial Presence Detect , SPD). Эта микросхема содержит основную информацию о типе и конфигурации модуля, временных задержках («таймингах »), которых необходимо придерживаться при выполнении той или иной операции на уровне микросхем памяти, а также прочую информацию, включающую в себя код производителя модуля, его серийный номер, дату изготовления и т.п. Последняя ревизия стандарта SPD модулей памяти DDR2 также включает в себя данные о температурном режиме функционирования модулей, которая может использоваться, например, для поддержания оптимального температурного режима посредством управления синхронизацией памяти (так называемый «троттлинг памяти », DRAM Throttle ). Более подробную информацию о микросхеме SPD и о том, как выглядит ее содержимое, можно получить в статье журнала iXBT «SPD – схема последовательного детектирования» .

Тайминги памяти

Теорией характеристик микросхем/модулей памяти являются «тайминги памяти». Понятие «таймингов » происходит от задержек, возникающими при любых операциях с содержимым ячеек памяти в связи со вполне конечной скоростью функционирования устройств SDRAM как интегральных схем. Задержки, возникающие при доступе в память, также принято называть «латентностью» памяти (этот термин не совсем корректен и пришел в обиход с буквальным переводом термина latency , означающего «задержка»).

Схема доступа к данным микросхемы SDRAM

1. Активизация строки

Перед осуществлением любой операции с данными, содержащимися в определенном банке микросхемы SDRAM (чтения – команда READ, или записи – команда WRITE), необходимо «активизировать» соответствующую строку в соответствующем банке. С этой целью на микросхему подается команда активизации (ACTIVATE) вместе с номером банка (линии BA0-BA1 для 4-банковой микросхемы) и адресом строки (адресные линии A0-A12, реальное количество которых зависит от количества строк в банке, в рассматриваемом примере 512-Мбит микросхемы памяти SDRAM их число составляет 213 = 8192).

Активизированная строка остается открытой (доступной) для последующих операций доступа до поступления команды подзарядки банка (PRECHARGE), по сути, закрывающей данную строку. Минимальный период «активности» строки – от момента ее активации до момента поступления команды подзарядки, определяется минимальным временем активности строки (Row Active Time , tRAS ).

Повторная активизация какой-либо другой строки того же банка не может быть осуществлена до тех пор, пока предыдущая строка этого банка остается открытой (т.к. усилитель уровня, содержащий буфер данных размером в одну строку банка и описанный в разделе «Микросхемы SDRAM: Физическая организация и принцип работы», является общим для всех строк данного банка микросхемы SDRAM). Таким образом, минимальный промежуток времени между активизацией двух различных строк одного и того же банка определяется минимальным временем цикла строки (Row Cycle Time , tRC ).

В то же время после активизации определенной строки определенного банка микросхеме SDRAM ничего не мешает активизировать какую-либо другую строку другого банка (в этом и заключается рассмотренное выше преимущество «многобанковой » структуры микросхем SDRAM) на следующем такте шины памяти. Тем не менее, в реальных условиях производителями устройств SDRAM обычно здесь также умышленно вводится дополнительная задержка, именуемая задержкой между активациями строк (Row-to-Row Delay , tRRD ). Причины введения этой задержки не связаны с функционированием микросхем памяти как таковых и являются чисто электрическими – операция активизации строки потребляет весьма значительное количество электрического тока, в связи с чем частое их осуществление может приводить к нежелательным избыточным нагрузкам устройства по току.

2. Чтение/запись данных

Следующий временной параметр функционирования устройств памяти возникает в связи с тем, что активизация строки памяти сама по себе требует определенного времени. В связи с этим, последующие (после ACTIVATE) команды чтения (READ) или записи (WRITE) данных не могут быть поданы на следующем такте шины памяти, а лишь спустя определенный временной интервал, задержку между подачей адреса строки и столбца (RAS#-to-CAS# Delay , tRCD ).

Итак, после прошествия интервала времени, равного tRCD , при чтении данных в микросхему памяти подается команда READ вместе с номером банка (предварительно активизированного командой ACTIVATE) и адресом столбца. Устройства памяти типа SDRAM ориентированы на чтение и запись данных в пакетном (Burst ) режиме. Это означает, что подача всего одной команды READ (WRITE) приведет к считыванию из ячеек (записыванию в ячейки) не одного, а нескольких подряд расположенных элементов, или «слов» данных (разрядность каждого из которых равна ширине внешней шины данных микросхемы – например, 8 бит). Количество элементов данных, считываемых одной командой READ или записываемых одной командой WRITE, называется длиной пакета (Burst Length ) и обычно составляет 2, 4 или 8 элементов (за исключением экзотического случая передачи целой строки (страницы) – «Full-Page Burst », когда необходимо дополнительно использовать специальную команду BURST TERMINATE для прерывания сверхдлинной пакетной передачи данных). Для микросхем памяти типа DDR и DDR2 параметр Burst Length не может принимать значение меньше 2 и 4 элементов, соответственно в связи с особенностями их архитектуры.

Существует две разновидности команды чтения. Первая из них является «обычным» чтением (READ), вторая называется «чтением с автоматической подзарядкой» (Read with Auto-Precharge , «RD+AP»). Последняя отличается тем, что после завершения пакетной передачи данных по шине данных микросхемы автоматически будет подана команда подзарядки строки (PRECHARGE), тогда как в первом случае выбранная строка микросхемы памяти останется «открытой» для осуществления дальнейших операций.

После подачи команды READ, первая порция данных оказывается доступной не сразу, а с задержкой в несколько тактов шины памяти, в течение которой данные, считанные из усилителя уровня, синхронизируются и передаются на внешние выводы микросхемы. Задержка между подачей команды чтения и фактическим «появлением» данных на шине считается наиболее важной и именуется наверняка известной многим задержкой сигнала CAS# (CAS# Latency , tCL ). Последующие порции данных (в соответствии с длиной передаваемого пакета) оказываются доступными без каких-либо дополнительных задержек, на каждом последующем такте шины памяти (по 1 элементу за такт для устройств SDR, по 2 элемента в случае устройств DDR/DDR2).

Операции записи данных осуществляются аналогичным образом. Точно также существуют две разновидности команд записи – простая запись данных (WRITE) и запись с последующей автоматической подзарядкой строки (Write with Auto-Precharge , «WR+AP»). Точно также при подаче команды WRITE/WR+AP на микросхему памяти подаются номер банка и адрес столбца. Наконец, точно также запись данных осуществляется «пакетным» образом. Отличия операции записи от операции чтения следующие. Во-первых, первую порцию данных, подлежащих записи, необходимо подать по шине данных одновременно с подачей по адресной шине команды WRITE/WR+AP, номера банка и адреса столбца, а последующие порции, количество которых определяется длиной пакета – на каждом последующем такте шины памяти. Во-вторых, вместо «задержки сигнала CAS#» (tCL ) важной здесь является иная характеристика, именуемая периодом восстановления после записи (Write Recovery Time , tWR ). Эта величина определяет минимальный промежуток времени между приемом последней порции данных, подлежащих записи, и готовности строки памяти к ее закрытию с помощью команды PRECHARGE. Если вместо закрытия строки требуется последующее считывание данных из той же самой открытой строки, то приобретает важность другая задержка, задержка между операциями записи и чтения (Write-to-Read Delay , tWTR ).

3. Подзарядка строки

Цикл чтения/записи данных в строки памяти, который в общем случае можно назвать циклом доступа к строке памяти, завершается закрытием открытой строки банка с помощью команды подзарядки строки – PRECHARGE,которая может подаваться автоматически при операциях «RD+AP» или «WR+AP». Последующий доступ к этому банку микросхемы становится возможным не сразу, а по прошествии интервала времени подзарядки строки (Row Precharge Time , tRP ). За этот период времени осуществляется собственно операция «подзарядки», т.е. возвращения элементов данных, соответствующих всем столбцам данной строки с усилителя уровня обратно в ячейки строки памяти.

Соотношения между таймингами

Как указано выше, для пакетного считывания заданного количества данных (2, 4 или 8 элементов) необходимо осуществить следующие операции:

1. активизировать строку в банке памяти с помощью команды ACTIVATE;

2. подать команду чтения данных READ;

4. закрыть строку с помощью команды подзарядки строки PRECHARGE (как вариант, это делается автоматически, если на втором шаге использовать команду «RD+AP»).

Временной промежуток между первой и второй операцией составляет «задержку между RAS# и CAS#» (tRCD ), между второй и третьей – «задержку CAS#» (tCL ). Промежуток времени между третьей и четвертой операциями зависит от длины передаваемого пакета. Строго говоря, в тактах шины памяти он равен длине передаваемого пакета (2, 4 или 8), поделенного на количество элементов данных, передаваемых по внешней шине за один ее такт – 1 для устройств типа SDR, 2 для устройств типа DDR. Условно назовем эту величину «tBL ».

Микросхемы SDRAM позволяют осуществлять третью и четвертую операции в каком-то смысле почти «параллельно». Чтобы быть точным – команду подзарядки строки PRECHARGE можно подавать за некоторое количество тактов (x ) до наступления того момента, на котором происходит выдача последнего элемента данных запрашиваемого пакета, не опасаясь при этом возникновения ситуации «обрыва» передаваемого пакета (последняя возникнет, если команду PRECHARGE подать после команды READ с временным промежутком , меньшим x ). Не вдаваясь в подробности, достаточно отметить, что x составляет величину, равную величине задержки сигнала CAS# за вычетом единицы (x = tCL - 1).

Промежуток времени между четвертой операцией и последующим повтором первой операции цикла составляет «время подзарядки строки» (tRP ).

В то же время, минимальному времени активности строки (от подачи команды ACTIVATE до подачи команды PRECHARGE, tRAS ), по его определению, как раз отвечает промежуток времени между началом первой и началом четвертой операции. Отсюда вытекает первое важное соотношение между таймингами памяти:

min (tRAS ) = tRCD + tCL + (tBL - (tCL - 1)) - 1.

Вычитание единицы производится вследствие того, что период tRAS не включает в себя такт, на котором осуществляется подача команды PRECHARGE. Сокращая это выражение, получаем:

min (tRAS ) = tRCD + tBL .

Вывод, вытекающий из детального рассмотрения схемы доступа к данным, содержащимся в памяти типа SDRAM, заключается в том, что минимальное значение tRAS , как это ни странно, не зависит от величины задержки CAS#, tCL . Зависимость первого от последнего –з аблуждение, довольно часто встречающееся в различных руководствах по оперативной памяти.

В качестве примера первого соотношения рассмотрим типичную высокоскоростную память типа DDR с величинами задержек (tCL-tRCD-tRP ) 2-2-2. При минимальной длине пакета BL = 2 (минимально возможной для DDR) необходимо затратить не менее 1 такта шины памяти для передачи пакета данных. Таким образом, в этом случае минимальное значение tRAS оказывается равным 3 (столь малое значение tRAS не позволяет выставить подавляющее большинство контроллеров памяти). Передача более длинных пакетов, состоящих из 4 элементов (BL = 4, tBL = 2), увеличивает это значение до 4 тактов, наконец, для передачи максимального по длине 8-элементного пакета (BL = 8, tBL = 4) требуемое минимальное значение tRAS составляет 6 тактов. Отсюда следует, что, поскольку большинство контроллеров памяти не позволяют указать значение tRAS < 5, разумно настроить подсистему памяти таким образом, чтобы длина передаваемого пакета была максимальной (BL = 8, в том случае, если этот параметр присутствует в настройках подсистемы памяти в BIOS материнской платы), а величина tRAS принимала значение, равное 6. Альтернативный вариант – BL = 4, tRAS = 5.

Второе важное соотношение между таймингами вытекает из того факта, что полный цикл пакетного чтения данных – от 1-й стадии до ее повторения – называетсяминимальным временем цикла строки , tRC . Поскольку первые три стадии не могут занимать время, меньшее tRAS , а последняя занимает время, строго равное tRP , из этого следует:

tRC = tRAS + tRP .

Некоторые контроллеры памяти (например, интегрированный контроллер памяти процессоров AMD64) позволяют независимо устанавливать значения таймингов tRAS и tRC , что, в принципе, может привести к несоблюдению указанного выше равенства. Тем не менее, какого-то смысла это неравенство иметь не будет и лишь будет означать, что значение одного из настроенных параметров (tRAS или tRC ) будет автоматически подстроено в большую сторону для соблюдения равенства.

Схемы таймингов

Четыре важнейших параметра таймингов памяти, расположенных в такой последовательности: tCL-tRCD-tRP-tRAS , принято называть «схемой таймингов ». Такие схемы (например, 2-2-2-5 или 2.5-3-3-7 для памяти типа DDR; 3-3-3-9, 4-4-4-12 и 5-5-5-15 для памяти типа DDR2) достаточно часто можно встретить в спецификациях на модули оперативной памяти.

Строго говоря, такая последовательность не соответствует фактической последовательности возникновения задержек при доступе в микросхему памяти (так, tRCD располагается перед tCL , а tRAS – «где-то посередине»), поэтому на самом деле она отражает основные тайминги памяти, расположенные в порядке их значимости. Действительно, наиболее значимой является величина задержки CAS# (tCL ), проявляющая себя при каждой операции чтения данных, тогда как параметры tRCD и tRP актуальны лишь при операциях на уровне строки памяти в целом (ее открытия и закрытия, соответственно).

Задержки командного интерфейса

Особой категорией таймингов , не связанных с доступом к данным, находящимся в ячейках микросхем SDRAM, можно считать задержки командного интерфейса или обратную им характеристику – «скорость подачи команд» (command rate ). Эти задержки связаны с функционированием подсистемы памяти на уровне не индивидуальных микросхем, а составляемых ими физических банков. При инициализации подсистемы памяти каждому сигналу выбора кристалла (chip select ), ассоциированному с определенным физическим банком памяти, в регистрах чипсета присваивается определенный номер (как правило, по емкости физических банков – например, по убывающей), уникальным образом идентифицирующий данный физический банк при каждом последующем запросе (все физические банки разделяют одни и те же, общие шины команд/адресов и данных). Чем больше физических банков памяти присутствует на общей шине памяти, тем больше электрическая емкостная нагрузка на нее, с одной стороны, и тем больше задержка распространения сигнала (как прямое следствие протяженности пути сигнала) и задержка кодирования/декодирования и работы логики адресации и управления, с другой.

Так возникают задержки на уровне командного интерфейса, которые на сегодняшний день наиболее известны для платформ, основанных на процессорах семейства AMD Athlon 64 с интегрированным контроллером памяти, поддерживающим память типа DDR SDRAM. Разумеется, это не означает, что задержки командного интерфейса присущи лишь этому типу платформ – для этого типа платформ, как правило, в настройках подсистемы памяти в BIOS есть настройка параметра «Command Rate : 1T/2T», тогда как в других современных платформах (например, семейства Intel Pentium 4 с чипсетами Intel 915, 925, 945, 955 и 975 серий) настройки задержек командного интерфейса отсутствуют в явном виде и, по всей видимости, регулируются автоматически. На платформах AMD Athlon 64 включение режима «2T» приводит к тому, что все команды подаются (наряду с соответствующими адресами) на протяжении не одного, а двух тактов шины памяти, что серьёзно сказывается на производительности, но может быть оправдано с точки зрения стабильности функционирования подсистемы памяти .

DDR/DDR2 SDRAM: Отличия от SDR SDRAM

Оба типа микросхем (DDR SDRAM, SDR SDRAM), как правило, имеют одинаковую логическую организацию (при одинаковой емкости), включая 4-банковую организацию массива памяти, и одинаковый командно-адресный интерфейс. Фундаментальные различия между SDR и DDR лежат в организации логического слоя интерфейса данных. По интерфейсу данных памяти типа SDR SDRAM данные передаются только по положительному перепаду («фронту») синхросигнала. При этом внутренняя частота функционирования микросхем SDRAM совпадает с частотой внешней шины данных, а ширина внутренней шины данных SDR SDRAM (от непосредственно ячеек до буферов ввода-вывода) совпадает с шириной внешней шины данных. В то же время, по интерфейсу данных памяти типа DDR (а также DDR2) данные передаются дважды за один такт шины данных – как по положительному перепаду синхросигнала («фронту»), так и по отрицательному («срезу»).

Возникает вопрос: как можно организовать удвоенную скорость передачи данных по отношению к частоте шины памяти? Возможны два решения – можно либо увеличить в 2 раза внутреннюю частоту функционирования микросхем памяти (по сравнению с частотой внешней шины), либо увеличить в 2 раза внутреннюю ширину шины данных (по сравнению с шириной внешней шины). Достаточно наивно было бы полагать, что в реализации стандарта DDR было применено первое решение, но и ошибиться в эту сторону довольно легко, учитывая «чисто маркетинговый» подход к маркировке модулей памяти типа DDR, якобы функционирующих на удвоенной частоте (так, модули памяти DDR с реальной частотой шины 200 МГц именуются «DDR-400»). Тем не менее, гораздо более простым и эффективным – исходя как из технологических, так и экономических соображений – является второе решение, которое и применяется в устройствах типа DDR SDRAM. Такая архитектура, применяемая в DDR SDRAM, называется архитектурой «2n-предвыборки» (2n-prefetch). В этой архитектуре доступ к данным осуществляется «попарно» – каждая одиночная команда чтения данных приводит к отправке по внешней шине данных двух элементов (разрядность которых, как и в SDR SDRAM, равна разрядности внешней шины данных). Аналогично, каждая команда записи данных ожидает поступления двух элементов по внешней шине данных. Именно это обстоятельство объясняет, почему величина «длины пакета» (Burst Length , BL) при передаче данных в устройствах DDR SDRAM не может быть меньше 2.

Устройства типа DDR2 SDRAM являются логическим продолжением развития архитектуры «2n-prefetch», применяемой в устройствах DDR SDRAM. Вполне естественно ожидать, что архитектура устройств DDR2 SDRAM именуется «4n-prefetch» и подразумевает, что ширина внутренней шины данных оказывается уже не в два, а в четыре раза больше по сравнению с шириной внешней шины данных. Однако речь здесь идет не о дальнейшем увеличении количества единиц данных, передаваемых за такт внешней шины данных – иначе такие устройства уже не именовались бы устройствами «Double Data Rate 2-го поколения». Вместо этого дальнейшее «расширение» внутренней шины данных позволяет снизить внутреннюю частоту функционирования микросхем DDR2 SDRAM в два раза по сравнению с частотой функционирования микросхем DDR SDRAM, обладающих равной теоретической пропускной способностью. С одной стороны, снижение внутренней частоты функционирования микросхем, наряду со снижением номинального питающего напряжения с 2.5 до 1.8 V (вследствие применения нового 90-нм технологического процесса), позволяет ощутимо снизить мощность, потребляемую устройствами памяти. С другой стороны, архитектура 4n-prefetch микросхем DDR2 позволяет достичь вдвое большую частоту внешней шины данных по сравнению с частотой внешней шины данных микросхем DDR – при равной внутренней частоте функционирования самих микросхем. Именно это и наблюдается в настоящее время – модули памяти стандартной скоростной категории DDR2-800 (частота шины данных 400 МГц) на сегодняшний день достаточно распространены на рынке памяти, тогда как последний официальный стандарт DDR ограничен скоростной категорией DDR-400 (частота шины данных 200 МГц).