Как известно, память и центральный процессор — основа любого компьютера. Поэтому от скорости ее работы существенно зависит производительность всей вычислительной системы. В то же время скоростные характеристики памяти (конкретного типа) исчерпывающе описываются всего лишь несколькими цифрами, а именно частотой синхронизации и таймингами (временными задержками сигнала). Казалось бы, измерять здесь особенно нечего. Тем не менее, исходя из упомянутых параметров, можно определить лишь максимальную скорость работы памяти. Однако вследствие особенностей ее работы средняя скорость значительно отличается от максимальной.
Динамическая память представляет собой матрицу запоминающих элементов — конденсаторов, каждый из которых хранит один бит информации (заряжен или разряжен). Для считывания и записи служат буферы объемом в одну строку матрицы. Например, для микросхемы памяти объемом 1 Мбит размер матрицы составит 1024x1024 конденсатора, а размер буфера — 1024 бита. При обращении к ячейке памяти по адресной шине передаются последовательно номера строки и столбца, синхронизируемые сигналами RAS и CAS. Затем в буфер считывается нужная строка. При этом заряженные конденсаторы, естественно, разряжаются и теряют информацию. Если выполняемой операцией будет запись, то нужный бит в буфере (в соответствии с номером столбца) изменяется и вся строка записывается обратно, восстанавливая содержимое памяти. При чтении нужный бит выбирается из строки и подается на выход, а строка записывается без изменений. Уже из этого описания понятно, что процесс доступа к памяти содержит много шагов и требует для своего выполнения нескольких тактов внешнего сигнала. Кроме того, идеальных диэлектриков в природе не бывает, и поэтому у конденсаторов есть токи утечки и определенное время саморазряда. Поскольку их емкость очень невелика, то и время саморазряда получается весьма малым — порядка единиц или долей миллисекунды. Поэтому память нуждается в процессе регенерации, периодически восполняющем заряд конденсаторов. Собственно, сама запись из буфера строки и является операцией регенерации. Необходимо лишь позаботиться о том, чтобы регенерации подвергался весь объем памяти, а не только тот ее фрагмент, с которым происходит интенсивная работа.
Однако если для работы программы требуются последовательные адреса памяти (а такое происходит достаточно часто), то ячейки могут оказаться в пределах одной строки. Значит, обмен с ними может происходить гораздо быстрее, так как работать приходится уже не с матрицей конденсаторов, а лишь с буфером, содержащим одну строку. Существуют и другие способы повышения скорости последовательного доступа, например при обеспечении параллельной работы нескольких банков памяти. Это не скажется на времени первоначального доступа к произвольной ячейке памяти, а вот устоявшуюся скорость передачи последовательных данных можно увеличивать пропорционально количеству банков, работающих параллельно. Оба эти способа широко используются в современных модулях памяти, в результате чего скорость последовательного доступа уже в 10—15 раз превышает скорость произвольного доступа. Тем не менее средняя устоявшаяся скорость доступа заметно ниже максимальной, поскольку периодически все-таки приходится передавать адреса строк и производить обмен между буфером и массивом конденсаторов, т.е. проводить полный цикл, а также циклы регенерации.
Во многих случаях основной характеристикой установленной в компьютере оперативной памяти является ее объем. Из-за недостатка памяти производительность системы может снизиться на один-два порядка. Известно, что при работе с офисными приложениями человек способен заметить различие в скорости системы лишь тогда, когда оно составляет не менее 15—20%. Однако иногда возникает необходимость выжать из системы все возможное. Один из наиболее распространенных способов сделать это — повысить частоты работы компонентов выше номинальных, т.е. «разогнать» компьютер. Нередко производители модулей памяти явно намекают на «разгонный» потенциал своих изделий, указывая для них нестандартные значения тактовой частоты. Поэтому в настоящем тестировании исследовалась не только производительность в штатном режиме, но и возможность «разгона». Известно, что для работы на более высоких тактовых частотах приходится поднимать напряжение питания. Такая возможность, как правило, предусматривается в BIOS Setup. Кроме того, чтобы справиться с повышенным энерговыделением (выделение тепла возрастает как при увеличении тактовой частоты, так и при повышении напряжения), производители модулей памяти нередко снабжают их металлическими теплоотводами.
Чтобы в какой-то степени удостовериться в том, что ограничение по тактовой частоте обусловлено именно возможностями модулей памяти, а не других компонентов вычислительной системы, была взята системная плата, поддерживающая частоту FSB до 1066 МГц, тогда как в штатном режиме эта частота составляла только 800 МГц. Максимальная заявленная частота памяти для данной платы равнялась 667 МГц, а при проведении тестов «разгон» проводился от номинального значения 533 МГц. Кроме того, процессор, промаркированный как 3,6-ГГц Pentium 4, работал с коэффициентом умножения 14 вместо 18, что соответствует номинальной частоте 2,8 ГГц. При «разгоне», естественно, все частоты возрастали пропорционально частоте FSB. В то же время частота внешних цепей процессора (FSB) оказывалась выше номинала.
К сожалению, «текучесть» аппаратного обеспечения в тестовых лабораториях не всегда позволяет вернуться к использованной ранее конфигурации испытательного стенда. В случае «разгона» это приобретает особое значение, ведь его возможность сильно зависит от используемой системной платы. Впрочем, нередко наблюдается и просто несовместимость между определенной платой и конкретным модулем памяти. В нашем случае, например, модули Kingston отказались работать при номинальном напряжении — для обеспечения нормальной работы его пришлось несколько увеличить. Кроме того, хотя все узлы системной платы и функционировали без выхода за пределы номинального диапазона частот, оказалось, что результаты «разгона» модулей Corsair заметно отличаются от полученных на другой плате. Дело в том, что ширина синхронизирующих импульсов, а также фазовые соотношения между ними могут существенно зависеть от схемотехники применяемого синтезатора частот, НМС и разводки платы. Есть также подозрение, что модули, рассчитанные на достижение наивысшей производительности, более «капризны» (правда, это наблюдение пока нельзя считать прошедшим длительную статистическую проверку). Значит, выше вероятность того, что они могут быть несовместимы с той или иной системной платой.
При проведении тестов тайминги памяти выставлялись по SPD (параметры, «зашитые» в ПЗУ модуля памяти), однако для одного из модулей велич?ины таймингов, показываемые программой CPU-Z, не совпали со значениями, рекомендованными SPD, поэтому в таблице приведены оба показателя для всех модулей.
Модули памяти Kingston были заявлены как работающие на частоте 667 МГц. Но с целью сопоставимости результатов они были использованы в основной массе тестов при частоте 553 МГц. К тому же специально для них была проведена серия испытаний при номинальной частоте 667 МГц.
Как мы тестировали
Тестовая платформа была выполнена на базе 3,6-ГГц процессора Intel Pentium 4 (Prescott, работал с коэффициентом умножения 14), 1024-Мбайт ОЗУ типа DDR2 SDRAM (два модуля объемом по 512 Мбайт), системной платы Elitegroup PF88, видеоплаты Albatron GeForce PCX PC5750, 200-Гбайт жесткого диска Western Digital WD2000JD-00HBB0 SATA-150, CD-ROM-дисковода Lite On LTN483L 48x и 400-Вт блока питания VT-420LD. Операционная система — Windows XP SP1.
Одна из основных задач тестирования — установить «разгонный» потенциал модулей памяти.
Для этого сначала измерялась производительность с помощью набора тестовых утилит в стандартном режиме. Затем с использованием утилиты BIOS Setup последовательно повышалась частота FSB, после чего для уменьшения риска повреждения данных на жестком диске из-за неустойчивой работы системы проводились загрузка с дискеты и запуск CheckIt 7.0 для DOS. После прохождения теста памяти загружалась Windows и последовательно проводились тесты 3DMark03, 3DMark05, SiSoft Sandra 2004, aCPURAMtest 2.6. Потом запускалась диагностическая утилита CPU-Z. Если какой-либо тест завершался аварийно (компьютер зависал, перезагружался и т.п.), понижалась частота. Таким образом, с точностью до 2 МГц определялась наивысшая частота, при которой может работать система. Результаты измерения производительности для этой частоты заносились в таблицу, после чего напряжение на модулях памяти повышалось и проводился следующий цикл измерений.