История вычислительной техники уходит в глубь тысячелетий. Первоначально в роли «элементов вычислительной машины» использовалось то, что было наиболее доступно,— пальцы рук и ног, а некоторыми народами также отдельные суставы. Примерно 5000 лет назад были изобретены счеты абак, а через 2500 лет после этого в Китае появились счеты с мелкими предметами на веревочках, по конструкции практически полностью идентичные бухгалтерским счетам, широко распространенным еще буквально вчера. Проект первого механического вычислителя приписывается Леонардо да Винчи и датируется соответственно концом пятнадцатого века, а создание реально работающего устройства, «паскалина» Блеза Паскаля, — серединой семнадцатого. История же развития электронной вычислительной техники насчитывает лишь немногим более 60 лет, первые 50 из которых рост вычислительной мощи обеспечивался практически только за счет повышения производительности арифметико-логического устройства, т. е. процессора. Оперативная память при этом обладала скоростными характеристиками, заведомо более высокими, чем требовалось процессору. Поэтому при оценке вычислительной системы время доступа к памяти не рассматривалось в качестве существенного параметра, а в тестах не учитывалось количество обращений к памяти, так как считалось, что затраченное на это время определенно меньше времени, необходимого для выполнения арифметических и логических операций.
Появление микропроцессоров и быстрый рост их тактовых частот, однако, сломали эту тенденцию.
Тактовые частоты процессоров семейства x86 за время существования этой архитектуры увеличились почти на три порядка: частота процессора IBM PC составляла 4,77 МГц, а Pentium 4 работает на частотах до 3,8 ГГц, т.е. разница приблизительно 800-кратная. В принципе нет никаких серьезных препятствий для практически пропорционального увеличения скорости работы динамической памяти, и пример кэш-памяти, работающей на частоте процессорного ядра, это подтверждает. Но с увеличением производительности процессора, естественно, существенно вырос и объем работы по обработке данных, которую этот процессор способен выполнить за приемлемое время. Компьютеру стали доступны более сложные алгоритмы. Вполне закономерно, что это привело к значительному росту количества обрабатываемых данных, а следовательно, и к пропорциональному увеличению объема памяти, устанавливаемого в ПК. Причем последний параметр растет быстрее тактовой частоты: в IBM PC было 64 Кбайт памяти, а для современного компьютера характерно значение 2 Гбайт, что почти в 33 тыс. раз больше.
Но динамическая память представляет собой матрицу конденсаторов, которые нужно регулярно подзаряжать, причем максимальный ток подзарядки ограничен, например, конструктивными особенностями преобразователя напряжения и сглаживающих фильтров. Значит, время перезарядки зависит от количества подзаряжаемых конденсаторов, т.е. от объема памяти. С одной стороны, этим обстоятельством лимитируется рост объема кэш-памяти, которая должна обладать определенными скоростными характеристиками (для сравнения: объем кэш-памяти в системах на базе Intel 386 составлял 128 Кбайт, а частота работы — 25—40 МГц), с другой — не дает увеличить скорость работы оперативной памяти при все увеличивающемся ее объеме.
Доступ к ячейкам современных разновидностей динамической памяти может осуществляться по одному из двух сценариев:
-
произвольный доступ, когда в модуль памяти передается полный адрес ячейки и сначала происходит считывание информации из строки матрицы в буфер, сопровождающееся разрядкой конденсаторов, а затем выборка из буфера нужного фрагмента и передача его на внешнюю шину, а также перезарядка конденсаторов считанной строки матрицы информацией из буфера:
-
последовательный доступ, при котором информация передается из уже заполненного буфера на внешнюю шину по тактовым импульсам без передачи адреса и без операций с матрицей конденсаторов.
Очевидно, что второй способ намного быстрее. Кроме того, оказывается, что приведенные выше причины, ограничивающие скорость работы памяти, влияют в основном на произвольный доступ, тогда как скорость работы последовательного — с помощью определенных технологических хитростей можно увеличить.
Собственно, переход с DDR на DDR2, а затем и на DDR3 и есть пример этих «технологических хитростей». По сути дела скорость работы самой памяти для любого из перечисленных типов лежит в пределах 100—200 МГц, изменяется только скорость работы внешней шины. Частота же последней совпадает с частотой памяти DDR, вдвое выше, чем у DDR2, и вчетверо выше, чем у DDR3. Данные при этом передаются по переднему и заднему фронтам тактового импульса, поэтому частота передачи данных вдвое выше частоты шины.
Примечательно, что на фоне четырехкратного роста частоты передачи данных время полного цикла обращения к ячейке памяти (т.е. скорость произвольного доступа) практически остается неизменным. Впрочем, любой современный процессор оборудован двух-, а то и трехуровневой кэш-памятью, алгоритм работы которой оптимизирован таким образом, чтобы по возможности уменьшить количество обращений за пределы кэш-памяти по сценарию произвольного доступа. Естественно, удается это не всегда. Но в любом случае как максимальная, так и средняя производительность компьютера в значительной степени определяется скоростью работы именно кэш-памяти. Скорость основного объема оперативной памяти сказывается лишь на скорости первоначального заполнения кэш-памяти либо на достаточно специфических алгоритмах, равномерно использующих большие объемы памяти. А перенос информации из оперативной в кэш-память и обратно осуществляется достаточно крупными блоками, в результате чего память обычно работает в более быстром режиме последовательного доступа.
Как отмечено выше, разница между DDR2 и DDR3 состоит в различном соотношении между частотами работы памяти и внешней шины. Формально младшей моделью DDR3 является та, что работает на частоте 800 МГц, но очевидно, что при равной частоте внешней шины и вдвое более низкой частоте памяти по сравнению со старшей моделью DDR2 она может демонстрировать только худшую производительность. Следовательно, так же как это было с DDR2-400, модель DDR3-800 никакого практического интереса не представляет. Поэтому рассмотрение памяти DDR3 разумно начинать на примере DDR3-1066, которая, по всей видимости, и будет являться де-факто младшей моделью новой разновидности динамической памяти.
Для сравнения скорости работы памяти типов DDR2 (Corsair DDR2 SDRAM 800 МГц) и DDR3 (Kingston DDR3 SDRAM 1066 МГц) мы провели ряд тестов. Для обоих типов использовался процессор Intel Core 2 Duo E6700 (FSB 1066 МГц) и системная плата на HMC Intel P35. Остальные элементы тестового стенда также были идентичными. В обоих случаях мы задействовали двухканальный режим работы памяти. Тайминги памяти совпадают с указанными в таблице.
Профиль скорости последовательного доступа (пересылка), как и следовало ожидать, вне пределов объема кэш-памяти процессора демонстрирует убыстрение примерно на 20% для DDR3. Профиль скорости произвольного доступа демонстрирует сходное увеличение производительности: для записи — чуть меньше, а для чтения — чуть больше. Из таблицы видно, что длительность цикла обмена с памятью действительно меньше для нового типа памяти (правда, к нам в редакцию попал один, притом далеко не дешевый образец памяти DDR3, и совсем не очевидно, что у последующих массовых моделей время цикла не увеличится), но решающим фактором здесь, пожалуй, является то, что на частоте 1066 МГц внешняя шина процессора и шина памяти работают в синхронном режиме. В случае же асинхронного режима с памятью 800 МГц появляются дополнительные задержки при передаче как адреса от процессора оперативной памяти, так и данных — в направлении туда и обратно.
Конечно, в подавляющем большинстве прикладных программ эффект от применения нового типа памяти будет существенно меньше, чем в приведенных выше тестах. В конце концов, на ПК используется не так много ресурсоемких программ, а в значительной части последних немалый вклад в производительность вносит видеоплата (так, например, обстоит дело практически со всеми современными играми). В таких программах результаты тестирования показали прирост производительности за счет применения нового типа памяти в пределах от 0 до 2%, но случаев снижения производительности не зафиксировано.
Из других типов приложений не так мал процент тех, которые интенсивно используют лишь небольшой объем данных, умещающийся в кэш-память. В качестве примера можно привести аудио- и видеосжатие, когда вообще не было замечено какого-либо различия при использовании разных типов памяти.
Помимо отмеченных выше двух ресурсоемких типов приложений существует масса других, не столь требовательных к ресурсам, скажем, многочисленные офисные и интернет-приложения. Здесь прирост производительности составил в среднем 2—2,5%.
Тем более интересно, что все-таки встречаются программы, в которых эффект от применения быстродейст-вующей памяти достаточно ощутим. В их число попадают хотя и мало распространенные, но очень ресурсоемкие научные вычисления. Из использованных в тестах, например, к ним относятся нахождение всех простых чисел в заданном диапазоне методом решета Эратосфена (примерно 15%) и решение системы линейных уравнений при объеме данных, существенно превосходящем объем кэш-памяти процессора (15—20%). Интересно, что последняя задача первоначально рассматривалась как тест процессорной производительности при обработке чисел с плавающей запятой, но постепенно, по мере увеличения производительности, стала в большей степени характеризовать скорость доступа к памяти.
Память DDR3-1066 работает на частоте в полтора раза ниже, чем DDR2-800, с которой производилось сравнение. Тем не менее ни в одном из тестов не было отмечено снижения производительности, а в большинст-ве хоть небольшое (1—2,5%), но увеличение. Эта ситуация немного отличается от той, которая была три с половиной года назад в момент появления памяти DDR2. Тогда DDR2-400 и DDR2-533 демонстрировали примерно равную производительность, но в некоторых тестах новая разновидность памяти уступала старой, несмотря на более высокую частоту внешней шины. Теперь при том же соотношении частот (как самой памяти — 0,667, так и внешней шины — 1,333) преимущество целиком на стороне DDR3. Однако дело здесь совсем не в конст-руктивных особенностях того или иного типа памяти, а исключительно в соотношении между частотами работы внешних шин памяти и процессора.
Во время перехода с DDR на DDR2 большинство процессоров Intel, относящихся к верхнему и среднему сегментам рынка, обладали частотой внешней шины 200 МГц и частотой передачи данных 800 МГц. Это позволяло им работать в синхронном режиме с памятью DDR, частота шины которой составляла также 200 МГц. А вот у DDR2-533 внешняя частота равнялась 266 МГц, что влекло за собой асинхронный режим работы и снижение в результате этого пропускной способности.
Сегодня же основу среднего и верхнего ценовых диапазонов процессоров Intel составляют модели с частотой передачи данных 1066 МГц, и именно такую же частоту предлагает очередная модель DDR3, что также обеспечивает синхронный режим работы. А вот
DDR2-800 этим похвастаться не может. С этим и связано преимущество, демонстрируемое DDR3 по результатам тестовых испытаний.
В заключение необходимо подчеркнуть, что при выборе конфигурации системы следует обращать внимание на соотношение частот внешних шин процессора и оперативной памяти. Хотя современные НМС способны работать практически при любом соотношении этих частот, но наивысшая производительность будет достигаться лишь при синхронном режиме их работы (соотношение частот 1:1 или 2:1). Поэтому неразумно, например, ставить память DDR3, если внешняя частота процессора составляет 800 МГц, или использовать процессор с внешней частотой 1333 МГц совместно с памятью, внешняя частота которой ниже этого значения.
Собственно, и само появление новой разновидности динамической памяти DDR3 связано не с абстрактным повышением тактовой частоты, а с тем, чтобы для процессора с любой внешней частотой (которая постепенно повышается от одной модели к другой) можно было подобрать адекватную память для работы в синхронном режиме. Таким образом, DDR3 хотя и не революционное достижение, но небольшой эволюционный шажок вперед, основное значение которого проявится при переходе к более высоким тактовым частотам — 1333 и 1600 МГц.
Таблица. Наиболее характерные тайминги памяти, работающей на разных частотах.