Помнить все, или Память глазами "непосвященного" инженера

5 февраль, 2004 - 00:00КО
Времена 8086, когда 640 KB ОЗУ хватало и для DOS, и для выполняемых приложений, давно прошли. А жаль -- имелись бы все шансы "уместить" их в кэше современного процессора. Хотим мы того или нет, а объем данных для производства вычислений, к которым необходим действительно оперативный доступ, растет, и никакие ухищрения процессорным чипмейкерам в этом не помогут. Значит, внешней (по отношению к кристаллу процессора) памяти суждено быть... Ведь большинство "обычных" PC не могут рассчитывать на десятки мегабайт высокоскоростной интегрированной и дорогостоящей внешней SRAM в качестве кэша очередного (энного) уровня. Следовательно, быть и множеству соединений на плате, и контроллеру, управляющему процессами обмена (плохо, хорошо -- не в этом сейчас суть, для нас важно, что сохранится промежуточная ступенька). Не сможет в ближайшее время "бытовой" компьютер вооружиться и суперконтроллером памяти, объединяющим пропускную способность множества каналов DRAM-памяти, как это принято у высокопроизводительных серверов.

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

Функции и особенности работы контроллера памяти неоднократно рассматривались, поэтому для дальнейшего разговора ограничимся выводом о том, что цепочка протекающих процессов обмена процессор--память достаточно длинна, и на каждом этапе есть свои нюансы поведения. Причем оценки успешности работы зависят от того, какое сочетание циклов доступа процессора в память будет создано. Отсюда следует пусть и достаточно спорный вывод по поводу самих методик тестирования: любая из них, будучи нацеленной на конечного пользователя, даст нам некий набор "попугаев", который неминуемо окажется ориентированным на конкретную совокупность операций, и лишь в определенной степени сможет отражать реальные параметры производительности. На этом наши "теоретизирования" остановим -- благо, и в "Компьютерном Обозрении" чуть ли не через номер встречаются статьи о результирующем быстродействии различных систем и о "вкладе", вносимом подсистемой памяти.

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

Прежде чем обратиться к рассмотрению внутреннего устройства и технических параметров модулей и чипов, совершим краткий экскурс в историю, тем более что многие этапы становления DDR могут повториться и с DDR II. DDR SDRAM (Double Data Rate Synchronous DRAM -- синхронная динамическая память с удвоенной пропускной способностью) пришла на рынок, отличаясь умением обмениваться с контроллером чипсета двумя пакетами данных за такт, т. е. вдвое быстрее, чем SDRAM. Таким образом, пиковая пропускная способность DDR-модуля оказывалась в два раза выше, чем у привычного на те времена "обычного" SDRAM, работающего на такой же тактовой частоте. Комитет JEDEC стандартизировал модули DDR SDRAM, функционирующие на частотах 100, 133, 166 и 200 MHz. Как ни странно, в этих стандартах фигурировали не PC200 и т. п., а (слава маркетингу!) PC1600 и т. д. -- вместо эффективной тактовой частоты модуля в названии стала указываться его пиковая пропускная способность. DDR унаследовала от предшественницы немало ограничений. Во-первых, оба типа модулей с одинаковой тактовой частотой имели сходное время доступа. Иными словами, на чтение первых восьми байт как из DDR SDRAM (PC1600), так и из SDR SDRAM (PC100) уходило примерно одинаковое время. Правда, последующие слова первая память способна была поставлять вдвое быстрее. Именно поэтому приложения, обрабатывающие относительно небольшие объемы информации и умещающие большинство данных в кэше процессора, работали на системах с DDR и обыкновенной SDRAM примерно с одинаковой скоростью. В подобных условиях время доступа к памяти оказывалось гораздо важнее ее пропускной способности. Но на смену чипам на 100 и 133 MHz пришли более быстродействующие, и на сегодня при желании (и соответствующих деньгах) можно найти модули памяти, рассчитанные на частоты свыше половины гигагерца. Осталось напомнить о поддержке длинным перечнем прогрессивных чипсетов механизма двухканальности -- и закономерность сегодняшнего успеха DDR SDRAM становится очевидной.


Параметры модулей памяти и чипов, или "Когда на клетке слона..."

Казалось бы, что может быть более простым, чем модуль памяти? Достаточно собрать несколько однотипных (в зависимости от требуемой емкости линейки и внутренней емкости чипа) микросхем на небольшой плате, референсный дизайн которой давно разработан и стандартизирован. "Ухудшить" его (что подтверждается и результатами нашего тестирования) довольно сложно.

Основу сегодняшнего рынка памяти составляют модули объемом 256 MB. Линейки емкостью 128 MB среди новых поступлений наблюдаются все реже и реже. Оснащать компьютер 128 MB (при одном модуле в ПК) смысла нет, особенно для материнских плат с интегрированным графическим ядром. Да и та же ставшая де-факто стандартом Windows XP вряд ли при таком объеме памяти позволит комфортно работать. А применять несколько таких линеек нецелесообразно по экономическим соображениям. Модули 512 MB по цене, сложившейся на сегодняшний день, обходятся несколько дороже, непропорционально увеличению объема. Еще больший прирост цен наблюдается в отношении емкость/стоимость у чипов. Самыми оптимальными по цене для комплектации модулей считают микросхемы емкостью 256 Mb, и недаром биржевым "маркером рынка" продолжают оставаться микросхемы от Hynix организацией 32M 8.

Помнить все, или Память глазами "непосвященного" инженера
Рис. 1. Структурная схема модуля памяти формфактора DIMM емкостью 256 MB
Что же представляет собой обычный (небуферизированный, нерегистровый) модуль памяти (DDR SDRAM DIMM)? Обратимся к структурной схеме (рис. 1).

Сразу оговоримся, что для наглядности на ней не показаны резисторы (исполнены в виде микросборок), назначение которых -- упростить проблемы согласования (вспомним о подобных проблемах, повлиявших на судьбу RDRAM).

На плате габаритами, как правило, 13,5 3 см, имеющей на широкой части по 92 контакта с обеих сторон, распаяны: чип EEPROM с последовательным доступом (SPD) и группа микросхем памяти. В зависимости от типа и объема модуля последние располагаются с одной или двух сторон. Как видим, по нынешним меркам не представляет особых сложностей и "разводка" микросхем линейки. Многие из их "ног" соединены параллельно между собой и образуют 64-битную шину данных DQ0-DQ63 и 15-разрядную адресную шину A0-A12 и BA0-BA1. Кроме служебных сигналов с уже известными нам названиями RAS и CAS, в процессе взаимодействия с контроллером памяти участвуют также WE (Write Enable -- сигнал на разрешение цикла записи) и CS0 (Chip Select Input -- разрешение выборки чипа). Синхронность работы обеспечивается с помощью тактовых сигналов, парафазно подаваемых на прямые и инверсный группы входов (CK). К управлению непосредственно микросхемами памяти причастны DQS0-DQS7 (Data Strobe Input/Output) и DM0-DM7 (Data-in-Mask). Заметим, что к каждому из чипов подведены "свои" сигналы последней группы.

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

Помнить все, или Память глазами "непосвященного" инженера
Рис. 2. Функциональная схема чипа памяти (организация 32 Mbx8)
От модуля перейдем к базовому кирпичику этой конструкции -- чипу памяти (рис. 2). Все операции в нем (выполнение команд циклов чтения, записи или регенерации) строго синхронны. Причем формирование внутреннего тактирующего сигнала осуществляется не просто по фронту или спаду импульса тактовой последовательности с контроллера памяти, а по моменту достижения каждым из двух противофазных потенциалов на дифференциальных (прямом CK и инверсном /CK) тактовых входах определенного значения, превышающего пороговое и соответствующего логическим "0" или "1". Такой алгоритм улучшает стабильность работы. Длительность периода, в течение которого сигнал синхронизации через противоположное логическое состояние успевает вернуться к исходному уровню (единицы наносекунд), обычно приводится в качестве одной из характеристик быстродействия в технических описаниях на микросхему. Соответственно, обратная ей величина -- это эффективная рабочая частота чипа.

В основе работы микросхемы всех динамических устройств памяти лежит принцип перезарядки конденсаторов запоминающих ячеек. Доступ к ним осуществляется через ключи, управляемые мультиплексорами-защелками строк и столбцов, которые, в свою очередь, подчинены командам, формируемым блоком логического управления. Для удобства организации доступа множество ячеек разбито на несколько массивов, составляющих банки памяти. Их конфигурация может быть различной: в приведенной нами для примера DDR-микросхеме 256 Mb -- это 32 миллиона слов по 8 бит каждое, полученные при четырехбанковой архитектуре чипа.

У каждой микросхемы рассмотренной нами линейки памяти имеются 13 непосредственно адресных и два дополнительных входа (BA0, BA1). Различными комбинациями логических уровней на них можно задать, к какому из четырех банков памяти происходит обращение. Так как ячейками хранения информации являются конденсаторы, которые разряжаются и с течением времени, и при каждой операции чтения, то возникает необходимость восстановить (регенерировать) потерянный заряд. В соответствии с логикой работы чипа процесс разрядки постоянно контролируется логикой, а счетчик регенерации гарантирует, что все элементы матрицы будут построчно обновлены. Несмотря на достаточно интеллектуальный алгоритм, заложенный в основу процесса регенерации, на практике, особенно при "разгоне", это может означать, что некоторые циклы обращения к памяти удлинятся.

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

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

Определенное влияние на чипмейкеров оказывает и стремление поспеть за требованиями "быстрее и объемнее". Так, некоторые отнеслись к необходимости выйти на рынок DDR-памяти с частотой 400 MHz и выше как к хорошей репетиции по освоению новых конструкторских приемов и технологических процессов. После этого, если верить их собственным заявлениям, перспектива массового выпуска чипов типа DDR II уже не пугает.

Hynix
Infineon Technologies
Micron Technology
Mosel Vitelic
Samsung
Ряд характеристик микросхем, "прозрачных" для неспециалиста (емкость, организация и рабочие тайминги, эксплуатационные характеристики и т. п.), могут быть "вычислены" не только как результат анализа многостраничных спецификаций или "считаны" из SPD-микросхемы модуля, но и содержатся в самом наименовании микросхемы.

В заключение обратим внимание на несколько моментов "нетехнического" плана. Большинство изготовителей микросхем одновременно являются и сборщиками линеек памяти. Кто как не они лучше всех знают особенности поведения своих чипов и способны грамотно изготовить модули. Но, в общем, поставщиков устройств на рынок под различными торговыми марками сохранилось гораздо больше, чем компаний, действительно выпускающих линейки и чипы. Облегчить задачу выбора смогут опубликованные на сайтах ведущих производителей чипсетов так называемые валидационные списки микросхем. В то же время продолжают встречаться модели от сборщиков "энного эшелона", и здесь не обойтись без выяснения того, какой и кем изготовленный чип лежит в основе линейки памяти. Надеемся, что приведенная информация в совокупности с полученными результатами тестирования окажется полезной и тем, кто пытается найти закономерности в поведении тех или иных модулей, и тем, кто столкнется с необходимостью понять, можно ли доверять предлагаемым в продаже линейкам или чего от них ожидать.