Автор: Евгений Патий
http://www.comizdat.com/ Выбор оперативной памяти для построения производительной системы - задача не менее ответственная, чем, скажем, выбор процессора. И приведенные ниже результаты тестирования модулей памяти PC3200 DDR SDRAM обязательно помогут пользователю в выборе оптимального комплекта оперативной памяти для двухканальной конфигурации.
Одним из важнейших элементов вычислительной системы является память, "по-научному" называющаяся "оперативным запоминающим устройством". Определение это, хоть и вызывает определенную ностальгию по институтскому курсу микроэлектроники, тем не менее, очень точно и универсально. В нашу эпоху гигагерц и гигабайт развитие памяти достигло некоторой критической точки, когда необходим уже качественный, а не количественный скачок вперед (речь идет, конечно же, о "мэйнстримовом" рынке).
Память DDR сегодня является наиболее востребованной и популярной - и тому масса причин. Время SDRAM прошло, время RDRAM закончилось, так толком и не начавшись… Остается лишь DDR - "скорость и доступность в одном флаконе". Однако уже сейчас невооруженным глазом виден закат DDR в первой ее инкарнации. До массового внедрения памяти DDR II осталось совсем немного (вторжение на рынок памяти запланировано на 2004 год), поэтому сейчас производители всеми силами стараются продать как можно больше памяти первого DDR, попутно осваивая новые стандарты, такие как DDR 450 и DDR 500.
В этом сравнительном тестировании мы решили "столкнуть лбами" модули памяти DDR 400 от различных производителей. Почему именно DDR 400 (она же PC3200)? Все очень просто - именно эта память на сегодня наиболее популярна при проектировании и сборке высокопроизводительных систем. Более того, именно на работу с такой памятью в наиболее "пиковых" конфигурациях рассчитаны новейшие двухканальные наборы логики от Intel (875P) и nVidia (nForce2 Ultra 400). Мы не могли пройти мимо этого обстоятельства - и тестировали память именно в двухканальной конфигурации.
Кроме того, мы позволили себе некоторое отступление от канонов "приличного" тестирования и выясняли возможности модулей памяти от каждого бренда именно с точки зрения "экстрима" - то есть, грубо говоря, разгоняли память. Это никоим образом не относится к манипулированию тактовой частотой шины, а касается лишь изменения таймингов памяти.
Динамическая память
В течение вот уже нескольких десятилетий идеология построения массивов памяти не испытывает каких-то революционных изменений. "Косметически" изменяются лишь принципы транспортировки данных, само же ядро остается неизменным - плоская двумерная матрица ячеек памяти.
Элементарная единица памяти - это ячейка, представляющая собой КМОП-транзистор. Благодаря этому и достигается высокая плотность упаковки ячеек памяти при низкой цене производства. Запоминающим элементом является "конденсатор" (емкость затвора), и ячейка может помнить свое состояние очень недолго - всего десятки миллисекунд. Для длительного хранения требуется регенерация - регулярное "освежение" (refresh) памяти, за что эта память и получила название "динамической" - DRAM (Dynamic Random Access Memory).
За гораздо меньший исторический период только тактовая частота процессоров x86 выросла на два порядка - так что разрыв между потребностями процессоров и возможностями ячеек памяти постоянно увеличивается. Для преодоления этого разрыва, во-первых, увеличивают разрядность данных памяти, а во-вторых, строят вокруг массивов ячеек памяти разные хитрые оболочки, ускоряющие процесс доступа к данным. Об этом-то и пойдет речь дальше. Отметим, что все, даже "самые модные", типы памяти - SDRAM, DDR SDRAM и Rambus DRAM - имеют запоминающее ядро, которое обслуживается описанным выше способом.
Память Double Data Rate SDRAM
Оперативная память DDR, исходя из соотношения "цена/производительность", на сегодня является оптимальной. В самом деле, при очень неплохих своих характеристиках, модули памяти данного типа стоят достаточно недорого, что и обусловило невероятную популярность DDR SDRAM.
Немало уже было написано и сказано о принципах работы памяти DDR. Так вспомним об этом лишь для целостности повествования.
Итак, почему, собственно, Double Data Rate? Почему в два раза больше данных? Все очень просто, если обратиться к механизму работы памяти. Существуют такие понятия, как частота системной шины и частота шины памяти,- причем эти две величины могут как совпадать ("синхронный" режим работы), так и не совпадать ("асинхронный" режим работы). Частота шины, в свою очередь,- это число отсчетов генератора в единицу времени. Именно во время этих отсчетов, как под ритмичный бой барабана, и происходят какие-то действия внутри компьютера.
"Обычная" память SDRAM устроена таким образом, что данные передаются во время отсчета ("такта"), лишь когда уровень тактового сигнала изменяется с низкого на высокий. У памяти же DDR данные передаются как во время изменения тактового сигнала с низкого на высокий, так и во время изменения уровня с высокого на низкий. Как говорится, все гениальное - просто. Итого, при одинаковой частоте шины памяти имеем двукратное увеличение объема прокачанных данных в пользу DDR SDRAM.
CAS, RAS и Latency
Одна из наиболее важных скоростных характеристик памяти DDR - CAS Latency. Уверен, что многие сталкивались с этим параметром в BIOS системной платы и все знают: "чем оно меньше - тем быстрее" - но истинную природу вещей объяснить может далеко не каждый. Разберемся, что же на самом деле означают понятия CAS и CAS Latency и на что эти параметры влияют в первую очередь.
CAS - это сокращение от Column Address Strobe, что в литературном переводе выглядит как "строб доступа к адресу столбца". Как известно, память DRAM структурно может быть представлена в виде плоской двумерной матрицы - наподобие привычной таблицы Excel. Это означает, что каждая отдельно взятая ячейка памяти может быть однозначно адресована с помощью номера строки и номера столбца. Как вы уже догадались, RAS - Row Address Strobe ("строб доступа к адресу строки").
Latency, она же "латентность", она же "задержка",- одно из ключевых явлений микроэлектроники вообще. Грубо говоря, латентность - это время, которое нужно подождать, чтобы что-то получить. Применительно к технике - время между инициацией и ответом.
Теперь же сузим круг наших исследований, вплотную приблизившись к анализу понятия CAS Latency.
Стоит представить себе "на пальцах" механизм работы простейшего контроллера памяти. Изначально контроллер памяти, традиционно входящий в состав набора логики, инициирует доступ к строке матрицы памяти следующим образом: на адресные выводы посылается адрес строки, активизируется строб доступа к адресу строки (RAS, как уже говорилось выше). Затем происходит ожидание длиной в несколько циклов ("тиков" генератора) - оно называется RAS-to-CAS Latency (или RAS-to-CAS Delay). После этого на адресных выводах появляется адрес нужного контроллеру столбца матрицы памяти и активизируется строб доступа к адресу столбца (CAS).
Итак, наш виртуальный контроллер уже "прицелился" на нужную ячейку памяти, остался сущий пустяк: подождать еще несколько циклов, пока данные из ячейки памяти не появятся на выводах памяти. Именно вот этот последний отрезок ожидания и называется "задержка CAS", или же CAS Latency.
Естественно, если CAS Latency = 2, то ожидание появления данных на выводах памяти длится два машинных цикла; если CAS Latency = 3 - то, соответственно, три. Однако здесь имеется один тонкий и довольно неоднозначный момент: например, память с CAS-2 вовсе не быстрее памяти CAS-3 на 33%. Причины таковы:
иногда требуется переместиться к другой строке памяти. В этом случае имеем: активизация RAS, ожидание RAS-to-CAS Delay, затем CAS Latency;
в другом случае требуется выполнить "пакетное" чтение, когда читается большой блок ячеек памяти, расположенных подряд в одной строке. Здесь CAS активизируется лишь однажды, в самом начале пакетного чтения;
фактор, оказывающий наибольшее влияние на механизм RAS/CAS - современные процессоры обладают кэш-памятью значительных размеров! Процент "попадания в кэш" нужных процессору данных может достигать 95-ти - то есть совсем не обязательно постоянно "дергать" память на предмет извлечения данных.
Corsair TWIN512-3200LL
Идеальный набор для построения высокопроизводительной системы. Использованное слово "набор" абсолютно точно описывает данное изделие, так как в этом случае имеет дело именно с комплектом из двух модулей-"близнецов" CMX256A-3200LL, находящихся в одной общей упаковке и, естественно, продающихся как единое целое. Что это означает? Лишь то, что именно TWIN512-3200LL будет гарантированно работать в двухканальной конфигурации - ведь, как известно, стабильная двухканальная работа гарантируется в том случае, когда используются модули памяти не только от одного производителя, но и из одной партии. В случае же с TWIN512-3200LL можно предположить, что оба входящих в комплект модуля не только отвечают названным условиям, но и на заводском конвейере находились на соседних "посадочных местах". Компания Corsair, мировой бренд в производстве оперативной памяти, со смекалкой подошла к вопросу - что явно говорит, что про "набитую руку", по крайней мере, на этом рынке.
Модули CMX256A-3200LL, из которых и состоит комплект TWIN512-3200LL, представляют собой стандартные модули DDR DIMM с 184-мя выводами и содержат по восемь чипов памяти каждый (по четыре чипа с каждой стороны модуля). К сожалению, информация о времени доступа покрыта тайной, поскольку взглянуть на сами чипы памяти нет никакой возможности - они закрыты мощной металлической системой охлаждения (радиатором), снять которую нельзя. Другими словами, радиатор не только надет на модуль, но и надежно приклеен. В Сети даже присутствуют фото, на которых запечатлены результаты излишнего рвения пользователей, а именно: снятый с CMX256A-3200LL радиатор вместе с чипами памяти, которые оказались вырванными "с мясом".
Индекс LL, присутствующий как в маркировке каждого модуля, так и набора в целом, расшифровывается как Low Latency ("низкие задержки"). И действительно, при заявленных производителем таймингах 2-3-2-6 в нашем случае комплект TWIN512-3200LL без особых проблем "завелся" с таймингами 2-3-2-5, вынудив тестовый стенд показать высочайшую производительность. Более того, TWIN512-3200LL - один из немногих в нашем тестировании комплектов, позволивших достичь CAS Latency = 2 при частоте системной шины 800 МГц и шины памяти 200 МГц.
Kingston KVR400X64C3/256
Еще один "тяжеловес" на рынке производителей памяти, Kingston, тоже порядком порадовал нас предоставленными для тестирования модулями. Несмотря на полное отсутствие "шика" (как то: расписные радиаторы на чипах памяти и упаковки с орденами и восторженными отзывами прессы), DDR-память от Kingston скромно, но весьма уверенно вплотную приблизилась к изделию Corsair с точки зрения общей производительности системы. Разница в производительности "реальных" приложений крайне мала - и если бы она не наблюдалась в большинстве измерений, можно было бы говорить о погрешности результатов. Ну а в синтетических тестах "упряжка" из двух KVR400X64C3/256 достаточно заметно отстала от TWIN512-3200LL - однако на то она и "синтетика", чтоб выявить положение дел на самом приближенном к "железу" уровне. KVR400X64C3/256 практически полностью повторили формулу таймингов CMX256A-3200LL - за тем только исключением, что CAS Latency все-таки осталась на отметке 2,5. Хотя "перестраховщики" из Kingston все равно рекомендуют для пущей стабильности устанавливать CAS Latency = 3.
Итого, тайминги KVR400X64C3/256 в нашем случае выглядят как 2,5-3-2-5.