sonyps4.ru

На что влияет частота в оперативной памяти. На что влияет частота оперативной памяти? ⇡ Условия тестирования

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

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

Какой оптимальный объем ОЗУ выбрать для ПК?

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

Передача данных между ОЗУ и процессором может осуществляться двумя способами:

  • Через память нулевого уровня;
  • Через кэш.

А вот скорость этой передачи зависит от объема ОЗУ. И если 32-битные системы не поддерживают больше 4 Гб, то более мощные 64-битные сборки могут поддерживать до 64 Гб оперативной памяти. Редко можно встретить ПК с 512 Мб и 1 Гб памяти. Это зачастую старые устройства с Windows XP.

Для функционирования системы и запуска большинства приложений нужно 2 Гб памяти. Однако скорость запуска программ будет не высокой и время отклика на действия пользователя составит от нескольких секунд до минуты.

Размера в 4 Гб памяти хватит для просмотра видео на YouTube, загрузки красочных интернет-страниц, просмотра фильмов, запуска игр на минимальных и средних настройках.

Объема 8 и 16 гигабайт более чем достаточно для любых задач, которые пользователь возлагает на свою операционную систему. В том числе, хорошо будет работать Windows 10, системные требования которой достаточно приличные.

32 Гб хватит для того, чтобы не беспокоиться о работе самых современных игр и мощных приложений. При этом запаса ОЗУ хватит на нескольких лет вперед.

ВАЖНО! Если у вас старый ПК, покупка дополнительных модулей ОЗУ не ускорит работы системы. Скорость ОЗУ будет заметна при модернизации процессора и видеокарты.

Влияние типа ОЗУ на скорость работы системы

Скорость работы приложений и передачи данных зависит не только от объема оперативной памяти, но и от её типа. В компьютерах, собранный за последние несколько лет, можно найти четыре варианта модулей ОЗУ:

  • DDR (DDR1) – рабочая частота до 400 МГц. Используется на ПК старых образцов.
  • DDR2 – рабочая частота до 1200 МГц. Использовалась на новых ПК несколько лет назад, но была практически полностью вытеснена новым поколением.
  • DDR3 – рабочая частота до 2400 МГц. Это сравнительно новый вариант, который устанавливается на большинстве компьютерах бюджетного и среднего уровня.
  • DDR4 – рабочая частота до 3200 МГц. Поддерживается только современными материнскими платами, и то не всеми. Имеет высокие показатели передачи данных.

Важно отметить, что чем выше рабочая частота оперативной памяти, тем быстрее работают приложения, в том числе запущенные одновременно на одном ПК. Поэтому, установив на своём компьютере планку DDR4, можно повысить скорость передачи информации практически в 2 раза. Однако с её заменой придётся менять и материнскую плату, и процессор. А это очень дорого и не всем по карману. Иногда гораздо выгоднее поставить ОЗУ большего объёма или с лучшими показателями частоты, нежели менять всю начинку системного блока.

Значение частоты для материнской платы

Показатели частоты важны для скорости работы компьютера. И практически все современные модели материнских плат выпускаются с величиной этого параметра для ОЗУ не меньше 1600 МГц. Однако, решив заменить на своём ПК или ноутбуке планку, стоит обратить внимание на возможности самой платы. Если мамка не поддерживает больше, к примеру, 1663 МГц, а установленная планка имеет частоту 1833 МГц, то скорость передачи информации будет ограничена меньшим значением, то есть 1663 МГц и модернизация не даст результатов.

Посмотреть допустимое значение для материнской платы можно в инструкции, которая поставляется вместе с продуктом.

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

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

Зависимость общей производительности системы от памяти имеет сложный характер, что затрудняет прямую оценку скорости памяти, то есть сравнения различных модулей. Например, память с частотой 1600 МГц имеет вдвое большую пропускную способность, чем 800-мегагерцовая. И синтетические тесты памяти прилежно выведут столбик в два раза выше. Но если вы протестируете целую систему с этими двумя видами памяти с помощью популярных тестовых приложений, на которых обычно тестируют процессоры, то и близко не получите двухкратной разницы в производительности. Интегральный индекс быстродействия может отличаться максимум на несколько десятков процентов.

Это делает синтетические тесты памяти малоинформативными с практической точки зрения. Нельзя, однако, поручиться и за то, что подход с применением реальных приложений дает нам стопроцентно достоверную картину, поскольку велика вероятность, что какие-то режимы, где производительность памяти действительно критична, остались без внимания и не были учтены.

Краткая теория

Чтобы понять специфику проблемы, рассмотрим принципиальную схему взаимодействия приложения, ЦП и подсистемы памяти. Уже давно для описания работы центрального процесса считается удачной аналогия с заводским конвейером. И движутся по этому конвейеру инструкции из программного кода, а функциональные модули процессора обрабатывают их словно станки. Тогда современные многоядерные ЦП будут подобны заводам с несколькими цехами. Например, работу технологии Hyper-Threading можно сравнить с конвейером, по которому едут вперемешку детали сразу нескольких автомобилей, и умные станки обрабатывают их одновременно, по метке на деталях определяя, к какой модели машины они относятся. Например, собирается красная и синяя машины, тогда красящий станок использует красную краску для деталей красной машины и синюю краску для синей. И поток деталей сразу для двух моделей позволяет лучше загрузить станки. А если аппарат для покраски будет иметь два распылителя, и сможет красить одновременно две детали в разные цвета, конвейер сможет работать на полную мощность вне зависимости от того, в каком порядке будут поступать детали. Наконец, последний писк моды, реализуемый в будущих процессорах AMD, в которых различные ядра ЦП будут иметь некоторые общие функциональные блоки, можно сравнить с идеей сделать часть особо громоздких и дорогих станков общей для двух цехов, чтобы сэкономить заводскую площадь и сократить капитальные затраты.

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

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

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

Другие же программы имеют так называемый локальный доступ к памяти, то есть они читают или пишут в близко расположенные ячейки памяти - им относительно безразлична скорость случайного доступа. Это свойство программ объясняет эффект от наращивания объемов кэш-памяти в процессорах, которая, благодаря близкому расположению к ядру, в десятки раз быстрее. Даже если программа требует, например, 512 МБ общей памяти, в каждый отдельный небольшой промежуток времени (например, миллион тактов, то есть одна миллисекунда), программа может работать только с несколькими мегабайтами данных, которые успешно помещаются в кэше. И потребуется только обновлять время от времени содержимое кэша, что, в общем, происходит быстро. Но может быть и обратная ситуация: программа занимает всего 50 МБ памяти, но постоянно работает со всем этим объемом. А 50 МБ значительно превышают типичный размер кэша существующих настольных процессоров, и, условно говоря, 90% обращений к памяти (при размере кэша в 5 МБ) не кэшируются, то есть 9 из 10 обращений идут непосредственно в память, так как необходимых данных нет в кэше. И общая производительность будет почти полностью лимитирована скоростью памяти, так как процессор практически всегда будет находиться в ожидании данных.

Время доступа к памяти в случае, когда данных нет в кэше, составляет сотни тактов. И одна инструкция обращения к памяти по времени равноценна десяткам арифметических.

«Памятенезависимые» приложения

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

Кроме того, важно, как часто в коде программы встречаются сами инструкции обращения к памяти. Если значительная часть вычислений происходит с регистрами, велик процент арифметических операций, то влияние скорости памяти снижается. Тем более что современные ЦП умеют изменять порядок выполнения инструкций и начинают загружать данные из памяти задолго до того, как те реально понадобятся для вычислений. Такая технология называется предвыборкой данных (prefetch). Качество реализации данной технологии также влияет на памятезависимость приложения. Теоретически, ЦП с идеальным prefetch не потребуется быстрая память, так как он не будет простаивать в ожидании данных.

Активно развиваются технологии спекулятивной предвыборки, когда процессор, даже ещё не имея точного значения адреса памяти, уже посылает запрос на чтение. Например, процессор для номера некоторой инструкции обращения к памяти запоминает последний адрес ячейки памяти, которая читалась. И когда ЦП видит, что скоро потребуется исполнить данную инструкцию, он посылает запрос на чтение данных по последнему запомненному адресу. Если повезет, то адрес чтения памяти не изменится, или изменится в пределах читаемого за одно обращение к памяти блока. Тогда латентность доступа к памяти отчасти скрадывается, поскольку параллельно с доставкой данных процессор исполняет инструкции, предшествующие чтению из памяти. Но, разумеется, такой подход не является универсальным и эффективность предвыборки сильно зависит от особенностей алгоритма программы.

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

Еще одна причина, по которой пользователь может не обнаружить разницы при смене памяти, состоит в том, что она и так слишком быстрая для используемого процессора. Если бы сейчас все процессоры вдруг замедлились в 10 раз, то для производительности системы в большинстве программ стало бы абсолютно все равно, какой тип памяти в ней установлен - хоть DDR-400, хоть DDR3-1600. А если бы ЦП радикально ускорились, то производительность значительной части программ наоборот стала бы гораздо существеннее зависеть от характеристик памяти.

Таким образом, реальная производительность памяти есть величина относительная, и определяется в том числе и используемым процессором, а также особенностями ПО.

«Памятезависимые» приложения

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

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

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

Достаточно сильно от производительности памяти могут зависеть и игры других жанров, пусть не со столь умным искусственным интеллектом, зато с собственными алгоритмами имитации виртуального мира, включая физическую модель. Впрочем, они на практике чаще всего упираются в производительность видеокарты, поэтому тестировать на них память также бывает не очень удобно. Кроме того, важным параметром комфортного игрового процесса в трехмерных играх от «первого лица» является минимальное значение fps: его возможное проседание в пылу жестокой битвы может иметь самые плачевные для виртуального героя последствия. А минимальный fps тоже, можно сказать, невозможно измерить. Опять же - из-за вариативного поведения ИИ, особенностей расчета «физики» и случайных системных событий, которые тоже могут приводить к проседанию. Как прикажете в таком случае анализировать полученные данные?

Тестирование скорости игр в демо-роликах имеет ограниченное применение еще и потому, что не все части игрового движка бывают задействованы для воспроизведения демки, и в реальной игре на скорость могут влиять иные факторы. Причем даже в таких наполовину искусственных условиях минимальный fps непостоянен, и его редко приводят в отчетах о тестировании. Хотя, повторимся, это наиболее важный параметр, и в тех случаях, когда идет обращение к данным, проседание fps весьма вероятно. Ведь современные игры, в силу своей сложности, разнообразия кода, включающего помимо поддержки физического движка и искусственного интеллекта также подготовку графической модели, обработку звука, передачу данных через сеть и пр., очень зависят как от объема, так и от производительности памяти. Кстати, будет заблуждением считать, что графический процессор обрабатывает сам всю графику: он только рисует треугольники, текстуры и тени, а формированием команд все равно занимается ЦП, и для сложной сцены это вычислительно емкая задача. К примеру, когда вышел Athlon 64 с интегрированным контроллером памяти, наибольший прирост в скорости по сравнению со старым Athlon был именно в играх, хотя там не использовались 64-битность, SSE2 и другие новые «фишки» Athlon 64. Именно существенное повышение эффективности работы с памятью благодаря интегрированному контроллеру сделало тогдашний новый процессор AMD чемпионом и лидером по производительности в первую очередь в играх.

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

Ещё одним принципиальным случаем усиленной зависимости от памяти является режим многозадачности, то есть запуск нескольких ресурсоемких приложений одновременно. Вспомним снова все тот же AMD Athlon 64 с интегрированным контроллером памяти, который к моменту анонса Intel Core выпускался уже в двухъядерном варианте. Когда вышел Intel Core на новом ядре, процессоры AMD стали проигрывать везде, кроме SPEC rate - многопоточном варианте SPEC CPU, когда запускается столько копий тестовой задачи, сколько ядер в системе. Новое интеловское ядро, обладая большей вычислительной мощностью, тупо затыкалось в этом тесте в производительность памяти, и даже большой кэш и широкая шина памяти не помогали.

Но почему это не проявлялось в отдельных пользовательских задачах, в том числе многопоточных? Главной причиной было то, что большинство пользовательских приложений, которые в принципе хорошо поддерживают многоядерность, всячески оптимизированы. Вспомним в очередной раз пакеты для работы с видео и графикой, которые больше всех получают прирост от многопоточности - всё это оптимизированные приложения. К тому же объем используемой памяти меньше, когда код параллелится внутри программы - по сравнению с вариантом, когда запускаются несколько копий одной задачи, а тем более - разные приложения.

А вот если запустить на ПК сразу несколько различных приложений, нагрузка на память возрастет многократно. Это произойдет по двум причинам: во-первых, кэш-память будет поделена между несколькими задачами, то есть каждой достанется только часть. В современных ЦП кэш L2 или L3 - общий для всех ядер, и если одна программа использует много потоков, то они все могут выполняться на своем ядре и работать с общим массивом данных в L3-кэше, а если программа однопоточна, то ей достается весь объем L3 целиком. Но если потоки принадлежат различным задачам, объем кэша будет вынужденно делиться между ними.

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

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

Типичным примером такой ситуации на ПК будет одновременный запуск игры, «скайпа», антивируса и программы кодирования видеофайла. Пусть не типичная, но совсем не фантастическая ситуация, в которой очень сложно корректно измерить скорость работы, так как на результат влияют действия планировщика в составе ОС, который при каждом замере может по-иному распределять задачи и потоки по разным ядрам и давать им различные приоритеты, временны́е интервалы и делать это в разной последовательности. И опять-таки, наиболее важным параметром будет пресловутая плавность работы - характеристика, по аналогии с минимальным fps в играх, которую в данном случае измерить еще сложнее. Что толку от запуска игры или какой-то другой программы одновременно с кодированием видеофайла, если поиграть нормально не удастся из-за рывков изображения? Пусть даже видеофайл быстро сконвертируется, поскольку многоядерный процессор в данном случае может быть и недогружен. Здесь нагрузка на систему памяти будет гораздо больше, чем при исполнении каждой из перечисленных задач по отдельности.

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

Проблемы тестирования

Сразу целая группа факторов снижает чувствительность ЦП-ориентированных тестов к скорости памяти. Очень чувствительные к памяти программы представляют собой плохие тесты ЦП - в том смысле, что они слабо реагируют на модель ЦП. Такие программы могут различать процессоры с контроллером памяти, снижающим латентность доступа к памяти, и без оного, но при этом в пределах одного семейства почти не реагировать на частоту процессора, показывая сходные результаты при работе на частоте 2500 и 3000 МГц. Часто такие приложения отбраковываются как тесты ЦП, ибо тестеру просто непонятно, что лимитирует их производительность, и кажется, что дело в «чудачествах» самой программы. Будет удивительно, если все процессоры (и AMD, и Intel) покажут в тесте одинаковый результат, но такое вполне возможно для приложения, очень сильно зависимого от памяти.

Чтобы избежать упреков в необъективности и вопросов, почему выбрана та или иная программа, в тесты стараются включать только наиболее популярные приложения, которыми все пользуются. Но такая выборка не совсем репрезентативна: наиболее популярные приложения из-за своей массовости часто очень хорошо оптимизированы, а оптимизация программы начинается с оптимизации её работы с памятью - она важнее, например, чем оптимизация под SSE1-2-3-4. Но совсем не все на свете программы так хорошо оптимизируются; попросту на все программы не хватит программистов, которые умеют писать быстрый код. Опять возвращаясь к популярным программам кодирования, многие из них были написаны при непосредственном активном участии инженеров фирм-изготовителей ЦП. Как и некоторые другие популярные ресурсоемкие программы, в частности медленные фильтры двухмерных графических редакторов и движки рендеринга студий трехмерного моделирования.

В свое время было популярно сравнивать компьютерные программы с дорогами. Эта аналогия потребовалась, чтобы объяснить, почему на некоторых программах быстрее работает Pentium 4, а на некоторых Athlon. Интеловский процессор не любил ветвления и быстрее «ехал» по прямым дорогам. Это очень упрощенная аналогия, но она удивительно хорошо передает суть. Особенно интересно, когда две точки на карте соединяют две дороги - «оптимизированная» прямая качественная дорога и «неоптимизированная» кривая ухабистая. В зависимости от выбора одной из дорог, ведущих к цели, выигрывает тот или иной процессор, хотя в каждом случае они делают одно и тоже. То есть на неоптимизированном коде выигрывает Athlon, а при простой оптимизации приложения выигрывает Pentium 4 - и сейчас мы даже не говорим о специальной оптимизации под архитектуру Netburst: в таком случае Pentium 4 мог бы посоревноваться даже с Сore. Другое дело, что хорошие «оптимизированные» дороги строить дорого и долго, и это обстоятельство во многом предопределило печальную участь Netburst.

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

Специальный тест памяти

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

Какие плюсы есть у такого подхода? Их очень много. В отличие от «натуральных» программ, возможен контроль над объемом используемой памяти, контроль над её распределением, контроль над количеством потоков. Специальное контролируемое выделение памяти позволяет нивелировать влияние особенностей менеджера памяти программы и операционной системы на производительность, чтобы результаты были не зашумлены, и можно было корректно и быстро тестировать. Точность измерения позволяет производить тест за относительно небольшое время и оценить большее количество конфигураций.

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

В качестве модельной задачи была взята модификация теста Astar из SPEC CPU 2006 Int (кстати, предложенный для включения в этот пакет автором статьи; для теста памяти использован адаптированный для графов алгоритм) и задача сортировки данных с помощью различных алгоритмов. Программа Astar имеет сложный алгоритм с комплексным доступом к памяти, а алгоритмы сортировки числового массива - базовая задача программирования, использующаяся во множестве приложений; она включена, в том числе, для дополнительного подтверждения результатов сложного теста данными производительности простой, но распространенной и классической задачи.

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

Согласно исследованиям набора тестов SPEC CPU 2006, тест Astar - один из нескольких, в наибольшей мере коррелирующих с общим результатом пакета на x86-совместимых процессорах. Но в нашем тесте памяти объем используемых программой данных был увеличен, так как со времени выпуска теста SPEC CPU 2006 типичный объем памяти возрос. Также программа приобрела внутреннюю многопоточность.

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

Программа осуществляет операции с графом, соединяющим пункты карты. То есть каждый элемент содержит ссылки на соседние, они как бы соединены дорогами. Есть два подтеста: в одном граф строится на основе двухмерной матрицы, то есть плоской карты, а во втором - на основе трехмерной матрицы, которая представляет собой некий сложный массив данных. Структура данных аналогична так называемым спискам - популярному способу организации данных в программах с динамическим созданием объектов. Такой тип адресации в целом характерен для объектно-ориентированного ПО. В частности, это практически все финансовые, бухгалтерские, экспертные приложения. И характер их обращений к памяти разительно контрастирует с типом доступа у оптимизированных на низком уровне вычислительных программ, вроде программ видеокодирования.

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

Таким образом, в первой версии теста получается 6 подтестов:

  • Поиск пути на 2D-матрице, общая карта
  • Поиск пути на 2D-матрице, отдельная карта для каждого потока
  • Поиск пути на 3D-матрице, общая карта
  • Поиск пути на 3D-матрице, отдельная карта для каждого потока
  • Сортировка массива с использованием алгоритма quicksort (локальный доступ к памяти)
  • Сортировка массива с использованием алгоритма heapsort (сложный доступ к памяти)

Результаты теста

Результаты теста отражают время нахождения заданного количества путей и время сортировки массива, то есть меньшее значение соответствует лучшему результату. В первую очередь качественно оценивается: реагирует ли в принципе данный процессор на заданной частоте на изменение частоты памяти или её настройки, частоту шины, тайминги и т. п. То есть отличаются ли результаты теста на данной системе при использовании различных типов памяти, или процессору хватает минимальной скорости.

Количественные результаты в процентах относительно конфигурации по умолчанию дают оценку прироста или падения скорости работы памятезависимых приложений или мультизадачной конфигурации при использовании различных типов памяти.

Тест сам по себе не предназначен для точного сравнения различных моделей ЦП, так как из-за того, что организация кэшей и алгоритмы предвыборки данных могут у них существенно отличаться, тест может отчасти благоволить определенным моделям. Но качественная оценка семейств ЦП между собой вполне возможна. А память производства различных компаний устроена одинаково, поэтому здесь субъективная составляющая исключена.

Также тест может быть использован для оценки масштабируемости процессоров по частоте при разгоне или внутри модельного ряда. Он позволяет понять, с какой частоты процессор начинает «затыкаться» в память. Часто процессор формально разгоняется сильно, и синтетические тесты, основанные на выполнении простых арифметических операций, показывают соответствующий изменению частоты прирост, но в памятезависимом приложении прироста может и не быть вообще из-за отсутствия соответствующего прироста в скорости памяти. Другая причина заключается в том, что ядро ЦП теоретически может потреблять больше энергии в случае сложного приложения и начнет либо сбоить, либо само снижать частоту, что не всегда возможно выявить в простых арифметических тестах.

Заключение

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

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

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

В данном исследовании мы попробуем найти ответ на следующий вопрос - что важнее для достижения максимальной производительности компьютера, высокая частота оперативной памяти или же ее низкие тайминги. А помогут нам в этом два комплекта оперативной памяти производства Super Talent. Давайте посмотрим, как выглядят модули памяти внешне, и какими характеристиками обладают.

⇡ Super Talent X58

Данный комплект производитель "посвятил" платформе Intel X58, о чем свидетельствует надпись на наклейке. Однако здесь сразу же возникает несколько вопросов. Как всем хорошо известно, для достижения максимальной производительности на платформе Intel X58 настоятельно рекомендуется использовать трехканальный режим работы оперативной памяти. Несмотря на это, данный комплект памяти Super Talent состоит лишь из двух модулей. Конечно, у ортодоксальных сборщиков систем такой подход может вызвать недоумение, однако рациональное зерно в этом все же есть. Дело в том, что сегмент топовых платформ относительно невелик, и большинство персональных компьютеров используют оперативную память в двухканальном режиме. В этой связи покупка комплекта из трех модулей памяти обычному пользователю может показаться неоправданной, а если необходимо действительно много оперативной памяти, можно приобрести три комплекта по два модуля в каждом. Производитель указывает, что память Super Talent WA1600UB2G6 может работать на частоте 1600 МГц DDR при таймингах 6-7-6-18. Теперь давайте посмотрим, какая информация зашита в SPD профиле этих модулей.

И опять наблюдается некоторое несоответствие реальных и заявленных характеристик. Максимальный профиль JEDEC предполагает работу модулей на частоте 1333 МГц DDR при таймингах 9-9-9-24. Впрочем, присутствует расширенный профиль XMP, частота которого совпадает с заявленной - 800 МГц (1600 МГц DDR), но тайминги несколько отличаются, причем в худшую сторону - 6-8-6-20, вместо 6-7-6-18, которые указаны на наклейке. Тем не менее, данный комплект оперативной памяти без проблем работал в заявленном режиме - 1600 МГц DDR при таймингах 6-7-6-18 и напряжении 1,65 В. Что касается разгона, то более высокие частоты модулям не покорились, несмотря на установку повышенных таймингов и увеличение напряжения питания. Более того, при увеличении напряжения Vmem до уровня 1,9 В наблюдалась нестабильность работы и в исходном режиме. К сожалению, радиаторы очень прочно приклеены к чипам памяти, поэтому мы не рискнули их снимать, опасаясь повредить модули памяти. А жаль, тип используемых микросхем мог бы пролить свет на такое поведение модулей.

⇡ Super Talent P55

Второй комплект оперативной памяти, который мы рассмотрим сегодня, производитель позиционирует как решение для платформы Intel P55. Модули оснащены низкопрофильными радиаторами черного цвета. Максимальный заявленный режим предполагает работу данных модулей на частоте 2000 МГц DDR при таймингах 9-9-9-24 и напряжении 1,65 В. Теперь посмотрим на зашитые в SPD профили.

Наиболее производительный профиль JEDEC предполагает работу модулей на частоте 800 МГц (1600 МГц DDR) при таймингах 9-9-9-24 и напряжении 1,5 В, а профили XMP в данном случае отсутствуют. Что касается разгона, то при небольшом повышении таймингов данные модули памяти оказались способны работать на частоте 2400 МГц DDR, о чем свидетельствует скриншот ниже.

Более того, система загружалась и при частоте модулей 2600 МГц DDR, однако запуск тестовых приложений приводил к зависанию или перезагрузке. Как и в случае с предыдущим комплектом памяти Super Talent, данные модули никак не реагировали на повышение напряжения питания. Как оказалось, лучшему разгону памяти и стабильности работы системы более способствовало увеличение напряжения контроллера памяти, встроенного в процессор. Впрочем, поиск максимально возможных частот и параметров, при которых достигается стабильность работы в таких экстремальных режимах, оставим энтузиастам. Далее мы сосредоточимся на изучении следующего вопроса - в какой степени частота работы оперативной памяти и ее тайминги влияют на общую производительность компьютера. В частности, мы попробуем выяснить, что лучше - установить скоростную оперативную память, работающую с высокими таймингами, или же предпочтительнее использовать как можно более низкие тайминги, пусть и не при максимальных рабочих частотах.

⇡ Условия тестирования

Тестирование проводилось на стенде следующей конфигурации. Во всех тестах процессор работал на частоте 3,2 ГГц, причины этого будут объяснены ниже, а мощная видеокарта была необходима для тестов в игре Crysis.

Как уже говорилось выше, мы попробуем выяснить, как частота работы оперативной памяти и ее тайминги влияют на общую производительность компьютера. Конечно, данные параметры можно просто задать в BIOS и провести тесты. Но, как оказалось, при частоте Bclk равной 133 МГц, диапазон рабочих частот оперативной памяти в использованной нами материнской плате составляет 800 - 1600 МГЦ DDR. Этого оказывается недостаточно, ведь один из рассматриваемых сегодня комплектов памяти Super Talent поддерживает режим DDR3-2000. Да и вообще, скоростных модулей памяти выпускается все больше, производители уверяют нас в их небывалой производительности, так что выяснить их реальную производительность определенно не помешает. Для того, чтобы установить частоту памяти, скажем, 2000 МГц DDR, необходимо увеличить частоту шины Bclk. Однако при этом изменятся частоты как ядра процессора, так и его кэш-памяти третьего уровня, которая работает с той же частотой, что и шина QPI. Разумеется, сравнивать результаты, полученные в таких разных условиях, некорректно. Кроме того, степень влияния частоты CPU на результаты тестирования может оказаться куда значительнее таймингов и частоты оперативной памяти. Возникает вопрос - нельзя ли как-то обойти эту проблему? Что касается частоты процессора, то в некоторых пределах ее можно изменять с помощью множителя. Однако при этом желательно выбирать такое значение частоты bclk, чтобы итоговая частота оперативной памяти была равна одному из стандартных значений 1333, 1600 или 2000. Как известно, в настоящее время базовая частота bclk в процессорах Intel Nehalem равна 133.3 МГц. Давайте посмотрим, какова будет частота оперативной памяти при разных значениях частоты шины bclk с учетом множителей, которые может выставить используемая нами материнская плата. Результаты приведены в таблице ниже.

Частота bclk, МГц
133.(3) 150 166.(6) 183.(3) 200
Множитель памяти Частота оперативной памяти, МГц DDR
6 800 900 1000 1100 1200
8 1066 1200 1333 1466 1600
10 1333 1500 1667 1833 2000
12 1600 1800 2000 2200 2400

Как видно из таблицы, при частоте bclk равной 166 МГц, для оперативной памяти можно получить частоты 1333 и 2000 МГц. Если частота bclk равна 200 МГц, то получаем совпадение частот оперативки при 1600 МГц, а также требуемые 2000 МГц. В остальных случаях совпадений со стандартными частотами памяти не наблюдается. Так какую же частоту bclk в итоге предпочесть - 166 или 200 МГц? Ответ на этот вопрос подскажет следующая таблица. Здесь приведены значения частоты CPU, в зависимости от множителя и частоты bclk. Для оценки влияния таймингов нам необходимы не только одинаковые частоты памяти, но и CPU, чтобы это не влияло на получаемые результаты.

Частота bclk, МГц
Множитель CPU 133.(3) 150.0 166.(6) 183.(3) 200.0
9 1200 1350 1500 1647 1800
10 1333 1500 1667 1830 2000
11 1467 1650 1833 2013 2200
12 1600 1800 2000 2196 2400
13 1733 1950 2167 2379 2600
14 1867 2100 2333 2562 2800
15 2000 2250 2500 2745 3000
16 2133 2400 2667 2928 3200
17 2267 2550 2833 3111 3400
18 2400 2700 3000 3294 3600
19 2533 2850 3167 3477 3800
20 2667 3000 3333 3660 4000
21 2800 3150 3500 3843 4200
22 2933 3300 3667 4026 4400
23 3067 3450 3833 4209 4600
24 3200 3600 4000 4392 4800

В качестве отправной точки мы брали максимальную частоту процессора (3200 МГц), которую он может показать при базовой частоте bclk равной 133 МГц. Из таблицы видно, что в данных условиях только при частоте bclk=200 МГц можно получить точно такую же частоту CPU. Остальные частоты хоть и близки к 3200 МГц, но не точно равны ей. Конечно, в качестве исходной можно было взять частоту CPU и поменьше, скажем - 2000 МГц, тогда можно было бы получить корректные результаты при всех трех значениях шины bclk - 133, 166 и 200 МГц. Тем не менее, мы отказались от этого варианта. И вот почему. Во-первых, настольных процессоров Intel c архитектурой Nehalem с такой частотой нет, и вряд ли они появятся. Во-вторых, снижение частоты CPU более чем в 1,5 раза может привести к тому, что он станет ограничивающим фактором, и разница в результатах практически не будет зависеть от режима работы оперативной памяти. Собственно, первые прикидки именно это и показывали. В-третьих, вряд ли тот пользователь, который покупает заведомо слабый и дешевый процессор, будет сильно озабочен вопросом выбора дорогой скоростной оперативной памяти. Итак, мы будем тестировать при значениях базовой частоты bclk - 133 и 200 МГц. Частота CPU в обоих случаях одинакова и равна 3200 МГц. Ниже приведены скриншоты утилиты CPU-Z в данных режимах.

Если вы обратили внимание, частота QPI-Link зависит от частоты bclk и, соответственно, они отличаются в 1,5 раза. Это, кстати, позволит выяснить, как влияет частота кэш-памяти третьего уровня в процессорах Nehalem на общую производительность. Итак, приступим к тестированию.

В данном обзоре будет изучено влияние частоты оперативной памяти DDR3 на производительность актуальных процессоров.

Для этого были взяты следующие модели ЦП:

  • Core i7-3770К;
  • Core i3-3240;
  • FX-8320;
  • A10-5800K.

Работать они будут в связке с оперативной памятью, функционирующей на следующих частотах:

  • DDR3 2133 МГц;
  • DDR3 1866 МГц;
  • DDR3 1600 МГц;
  • DDR3 1333 МГц;
  • DDR3 1066 МГц.

В графическую подсистему вошли видеокарты GeForce GTX 780 3072 Мбайт и Radeon R9 290X 4096 Мбайт. Сделано это для того, чтобы наиболее полно изучить поставленную цель материала.

Тестовая конфигурация

Тесты проводились на следующем стенде:

  • Материнская плата №1: GigaByte GA-Z77X-UD5H, LGA 1155, BIOS F14;
  • Материнская плата №2: GigaByte GA-990FXA-UD5, АМ3+, BIOS F12;
  • Материнская плата №3: ASRock FM2A85X Extreme4, FM2, BIOS 1.70;
  • Видеокарта №1: GeForce GTX 780 3072 Мбайт - 863/6008 МГц (Palit);
  • Видеокарта №2: Radeon R9 290X 4096 Мбайт - 1000/5000 Мбайт (Sapphire);
  • Система охлаждения CPU: Corsair Hydro Series H100 (~1300 об/мин);
  • Оперативная память: 2 x 4096 Мбайт DDR3 Geil BLACK DRAGON GB38GB2133C10ADC (Spec: 2133 МГц / 10-11-11-30-1t / 1.5 В) , X.M.P. - off;
  • Дисковая подсистема: 64 Гбайта, SSD ADATA SX900;
  • Блок питания: Corsair HX850 850 Ватт (штатный вентилятор: 140 мм на вдув);
  • Корпус: открытый тестовый стенд;
  • Монитор: 27" ASUS PB278Q BK (Wide LCD, 2560x1440 / 60 Гц).

Процессоры:

  • Core i7-3770К @ 4600 МГц;
  • Core i3-3240 @ 3400 МГц;

  • FX-8350 BE @ 4600 МГц;
  • A10-5800K @ 4500 МГц.

Программное обеспечение:

  • Операционная система: Windows 7 x64 SP1;
  • Драйверы видеокарты: NVIDIA GeForce 335.23 WHQL и AMD Catalyst 14.3 Beta.
  • Утилиты: FRAPS 3.5.9 Build 15586, AutoHotkey v1.0.48.05, MSI Afterburner 3.0.0 Beta 19.

Инструментарий и методика тестирования

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

В качестве средств измерения быстродействия применялись встроенные бенчмарки, утилиты FRAPS 3.5.9 Build 15586 и AutoHotkey v1.0.48.05. Список игровых приложений:

  • Assassin"s Creed 3 (Бостонский порт).
  • Batman Arkham City (Бенчмарк).
  • Call of Duty: Black Ops 2 (Ангола).
  • Crysis 3 (Добро пожаловать в джунгли).
  • Far Cry 3 (Глава 2. Охотники).
  • Formula 1 2012 (Бенчмарк).
  • Hard Reset (Бенчмарк).
  • Hitman: Absolution (Бенчмарк).
  • Medal of Honor: Warfighter (Сомали).
  • Saints Row IV (Начало игры).
  • Sleeping Dogs (Бенчмарк).
  • The Elder Scrolls V: Skyrim (Солитьюд).

Во всех играх замерялись минимальные и средние значения FPS. В тестах, в которых отсутствовала возможность замера минимального FPS , это значение измерялось утилитой FRAPS. VSync при проведении тестов был отключен.

Разгон процессоров

Процессоры разгонялись следующим образом. Стабильность разгона проверялась утилитой ОССТ 3.1.0 «Perestroika» путем получасового прогона ЦП на максимальной матрице с принудительной 100% нагрузкой. Соглашусь с тем, что разгон тестируемых CPU не является абсолютно стабильным, но для любой современной игры он подходит на все сто.

При максимальном разгоне у всех процессоров AMD частота контроллера памяти была поднята до 2400-2800 МГц.

Core i7-3770К

Процессор разогнан до частоты 4600 МГц. Для этого множитель был поднят до 46 (100х46), напряжение питания – до 1.2 В, напряжение питания DDR3 – 1.5 В, Turbo Boost – выключен, Hyper Threading – выключен.

Core i3-3240

Штатный режим. Тактовая частота 3400 МГц, базовая частота 100 МГц (100х34), напряжение питания 1.1 В, напряжение питания DDR3 – 1.5 В, Hyper Threading – включен.

  • Частота DDR3 – 2133 МГц (100х21.33);
  • Частота DDR3 – 1866 МГц (100х18.66);
  • Частота DDR3 – 1600 МГц (100х16.0);
  • Частота DDR3 – 1333 МГц (100х13.33);
  • Частота DDR3 – 1066 МГц (100х10.66).

FX-8320 BE

Процессор разогнан до частоты 4600 МГц. Для этого множитель процессора был поднят до значения 23 (200х23), напряжение питания ядра – до 1.53 В, напряжение питания DDR3 – 1.5 В, Turbo Core и APM – выключены.

  • Частота DDR3 – 2133 МГц (200х10.66);
  • Частота DDR3 – 1866 МГц (200х9.33);
  • Частота DDR3 – 1600 МГц (200х8.0);
  • Частота DDR3 – 1333 МГц (200х6.66);
  • Частота DDR3 – 1066 МГц (200х5.33).

A10-5800K

Процессор разогнан до частоты 4500 МГц. Для этого множитель процессора был поднят до значения 45 (100х45), напряжение питания ядра – до 1.45 В, напряжение питания DDR3 – 1.5 В, Turbo Core и APM – выключены.

  • Частота DDR3 – 2133 МГц (100х21.33);
  • Частота DDR3 – 1866 МГц (100х18.66);
  • Частота DDR3 – 1600 МГц (100х16.0);
  • Частота DDR3 – 1333 МГц (100х13.33);
  • Частота DDR3 - 1066 МГц (100х10.66).

Перейдем непосредственно к тестам.

ВКонтакте Facebook Одноклассники

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

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

Сложность осмысленного выбора подходящей памяти заключается прежде всего в «размытости» влияния ее параметров на итоговую производительность всего ПК. Например, замена процессора с частотой 2,5 ГГц на кристалл того же семейства с аналогичными параметрами, но частотой 3,2 ГГц однозначно приведет к приличному росту производительности если не во всех, то в большинстве приложений. В то же время увеличение частоты ОЗУ с мизерных по нынешним временам 1066 до 2133 МГц более-менее ощутимо скажется лишь на немногих задачах, да и то заметить разницу «невооруженным глазом», то есть по субъективным ощущениям, без проведения точных замеров, скорее всего, не получится.

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

Тестирование проводилось на материнской плате Intel DP67BG с процессором Intel Core i7-2600K, жестким диском Western Digital WD1002FAEX и видеоконтроллером KFA GeForce 460. Все модули памяти работали на максимальных частотах и таймингах, которые нам удалось «выжать» без превышения заявленных производителями напряжений питания и без повышения напряжения на других компонентах. Производительность оценивалась по методике, аналогичной тестированию процессоров, но с несколько меньшим набором испытаний. Результаты представлены в таблице.

Как видим, из четырех попавших к нам оверклокерских комплектов ровно половина - два набора - заработала лишь на 1600 МГц, хотя для них была указана частота 2400 МГц. Вторая пара успешно «завелась» на 2133 МГц (максимальная частота для нашего стенда). Из этого можно сделать скоропалительный вывод, что первые - «плохие», а вторые - «хорошие» (собственно, из-за такого вот «поведения» покупка скоростных модулей нередко вызывает чувство напрасно выброшенных денег). Однако остается вопрос, почему такое происходит.

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

Однако оверклокерские модули предназначены для частот, далеко выходящих за пределы стандартов. Понятно, что для успешной работы в этом случае необходимо, чтобы все компоненты вычислительной системы поддерживали данный оверклокерский, то есть нестандартный режим. Например, совершенно очевидно, что если контроллер памяти (он уже довольно давно является частью многих процессоров) не поддерживает частоты выше 1600 МГц, то никакая память на большей частоте работать не будет.

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

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

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

По этой причине для оверклокерской памяти заявленные производителем цифры означают лишь работоспособность на данной частоте самих модулей памяти в некоторых идеальных именно для них условиях. В реальной же эксплуатации возможность достигнуть той или иной частоты определяется индивидуальными особенностями всех относящихся к делу компонентов. Таким образом, невозможность разогнать (во всяком случае, малой кровью) протестированные оверклокерские наборы от Kingmax и Transcend свыше 1600 МГц означает лишь то, что именно эти конкретные экземпляры плохо подходят для нашего стенда. Естественно, и 2133 МГц, показанные наборами ADATA и Kingston, относятся именно к тем модулям, что попали к нам, и именно к нашим «маме» и процессору.

Возвращаясь к итоговым цифрам, легко заметить, что особых отличий в результатах разных модулей нет. Наиболее заметна разница лишь на «чистой синтетике» - в тестовом пакете AIDA64, причем в ряде тестов модули с большей частотой показывают худшие результаты, чем модули с меньшей. Такое поведение отчасти объясняется тем, что сами тесты не дают стопроцентной повторяемости: всегда существуют случайные отклонения в ту или иную сторону. Однако куда более важной является другая причина: «производительность» памяти зависит не только от частоты, но и от таймингов, причем их влияние на итоговый результат зависит от характера решаемой задачи.

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

Частота прямо влияет на теоретическую скорость обмена информацией между памятью и ее контроллером, а значит, и процессором, то есть на пропускную способность памяти. В тех случаях, когда требуется последовательная передача больших массивов информации, именно частота является важнейшей характеристикой. Именно по этой причине в «видюхах» применяют память GDDR5 с очень высокой частотой: «графические» задачи характеризуются как раз последовательным «проходом» по большим массивам информации.

Тайминги определяют интервалы между различными этапами работы памяти. Они характеризуются количеством тактов, проходящих между теми или иными событиями (например, между выдачей одного за другим двух сигналов). Длительность каждого такта является неизменной и определяется частотой памяти. Поэтому, например, тайминги 5-5-5-15 на частоте 1066 МГц по абсолютной величине будут равны таймингам 10-10-10-30 на частоте 2133 МГц. В отличие от частоты, влияние таймингов на поведение памяти довольно сложное и нелинейное. Как правило, в первую очередь они сказываются на латентности, то есть времени, проходящем между началом операции чтения или записи памяти и реальной передачей первой порции данных. Для большинства задач, решаемых центральным процессором, эта характеристика более важна, чем пропускная способность, поскольку характер доступа к памяти здесь «хаотический», требующий частой передачи небольших порций информации из совершенно различных ячеек памяти.

Чтобы добиться наивысшей производительности на тех или иных задачах, нужно кропотливо подбирать параметры, причем не всегда стремиться минимизировать каждый из них. Например, небольшое понижение частоты (а значит, и пропускной способности) может в некоторых случаях позволить сильно снизить тайминги, что уменьшит латентность: в результате основная масса программ станет выполняться несколько быстрее. Однако процесс такого подбора весьма долог и мучителен, особенно с учетом того, что надо добиться не просто успешного запуска компьютера, а его стабильной работы. Например, среди наших тестов самым капризным (и, кстати, самым длительным по времени) оказался Java: бывало, что все остальное успешно проходило, а этот тест постоянно «падал», и заставить его работать удавалось лишь после увеличения таймингов.

Если не проводить после каждого изменения параметров памяти достаточно серьезного тестирования стабильности, может оказаться, что вроде бы все работает, но время от времени что-то начинает глючить, причем причина далеко не всегда является очевидной: ведь обычно разгоняют не только память, но и как минимум процессор.

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

Однако у разгона есть и другая, формально совершенно «непрактичная» составляющая. О рекордах на Олимпиадах благодаря телевидению и Интернету знает весь мир, но ведь оверклокинг - это тоже, по сути, спорт, пускай и совершенно не олимпийский. Есть весьма обширная категория людей, для которых выжать все возможное и даже невозможное из своего компьютера является чуть ли не главным делом жизни, а иногда и приносит материальные плоды. Именно для таких энтузиастов в первую очередь и предназначаются высокопроизводительные - оверклокерские - модули памяти. Ну а тем, кому разгон ради разгона неинтересен, лучше ограничиться обычной, намного более дешевой памятью и потратить лишние деньги на что-то другое, приносящее ежедневный и более ощутимый эффект, чем удовлетворение от покорения очередной вершины.



Загрузка...