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

  • 25.01.2024

В данном исследовании мы попробуем найти ответ на следующий вопрос - что важнее для достижения максимальной производительности компьютера, высокая частота оперативной памяти или же ее низкие тайминги. А помогут нам в этом два комплекта оперативной памяти производства 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 на общую производительность. Итак, приступим к тестированию.

Память: ОЗУ, DDR SDRAM, SDR SDRAM, PC100, DDR333, PC3200... как во всём этом разобраться? Давайте попробуем!

Итак, первое что мы должны сделать это "разгладить" все сомнения и вопросы по поводу номиналов на памяти...

Самые распространённые типы памяти это:

  • SDR SDRAM (обозначения PC66, PC100, PC133)
  • DDR SDRAM (обозначения PC266, PC333 и т.д. или PC2100, PC2700)
  • RDRAM (PC800)

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

Если рассмотреть состав памяти, получим: всё её пространство представлено в виде ячеек (прямоугольники), которые состоят из определённого количества строк и столбцов. Один такой "прямоугольник" называется страницей, а совокупность страниц называется банком.

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

Теперь рассмотрим поподробнее каждый из таймингов. Некоторые из них не доступны для настройки - время доступа CS# (crystal select ) этот сигнал определяет кристалл (чип) на модуле для проведения операции.

Кроме этого, остальные можно менять:

  • RCD (RAS-to-CAS Delay) это задержка между сигналами RAS (Row Address Strobe) и CAS (Column Address Strobe) , данный параметр характеризует интервал между доступами на шину контроллером памяти сигналов RAS# и CAS# .
  • CAS Latency (CL) это задержка между командой чтения и доступностью к чтению первого слова. Введена для набора адресными регистрами гарантированно устойчивого уровня сигнала.
  • RAS Precharge (RP) это время повторной выдачи (период накопления заряда) сигнала RAS# - через какое время контроллер памяти будет способен снова выдать сигнал инициализации адреса строки.
  • Примечание: порядок операций именно таков (RCD-CL-RP), но зачастую тайминги записывают не по порядку, а по "важности" - CL-RCD-RP.

  • Precharge Delay (или Active Precharge Delay ; чаще обозначается как Tras ) это время активности строки. Т.е. период, в течение которого закрывается строка, если следующая требуемая ячейка находится в другой строке.
  • SDRAM Idle Timer (или SDRAM Idle Cycle Limit ) количество тактов, в течение которых страница остаётся открытой, после этого страница принудительно закрывается, либо для доступа к другой странице, либо для обновления (refresh)
  • Burst Length это параметр, который устанавливает размер предвыборки памяти относительно начального адреса обращения. Чем больше его размер, тем выше производительность памяти.

Ну вот, вроде разобрались с основными понятиями о таймингах, теперь рассмотрим подробнее номиналы памяти (PC100, PC2100, DDR333 и т.д.)

Существует два типа обозначений для одной и той же памяти: одно - по "эффективной частоте" DDRxxx, а второе - по теоретической пропускной способности PCxxxx.

Обозначение "DDRxxx" исторически развилось из последовательности названий стандартов "PC66-PC100-PC133" - когда было принято скорость памяти ассоциировать с частотой (разве что ввели новое сокращение "DDR" для того, чтобы отличать SDR SDRAM от DDR SDRAM). Одновременно с памятью DDR SDRAM появилась память RDRAM (Rambus), на которой хитрые маркетологи решили ставить не частоту, а пропускную способность - PC800. При этом ширина шины данных как была 64 бита (8 байт) - так и осталась, то есть те самые PC800 (800 МБ/с) получались умножением 100 МГц на 8. Естественно от названия ничего не поменялось, и PC800 RDRAM - суть та же самая PC100 SDRAM, только в другом корпусе... Это ничего больше, чем стратегия для продаж, грубо говоря "наколоть людей". В ответ компании, которые выпускают модули, стали писать теоретическую пропускную способность - PCxxxx. Так появились PC1600, PC2100 и следующие... При этом у DDR SDRAM эффективная частота выше в два раза, а значит и больше числа на обозначениях.

Вот пример соответствий обозначений:

  • 100 МГц = PC1600 DDR SDRAM = DDR200 SDRAM = PC100 SDRAM = PC800 RDRAM
  • 133 МГц = PC2100 DDR SDRAM = DDR266 SDRAM = PC133 SDRAM = PC1066 RDRAM
  • 166 МГц = PC2700 DDR SDRAM = DDR333 SDRAM = PC166 SDRAM = PC1333 RDRAM
  • 200 МГц = PC3200 DDR SDRAM = DDR400 SDRAM = PC200 SDRAM = PC1600 RDRAM
  • 250 МГц = PC4000 DDR SDRAM = DDR500 SDRAM

Что же касается RAMBUS (RDRAM) писать много не буду, но всё же постараюсь ее вам представить.

Существует три разновидности RDRAM - Base , Concurrent и Direct . Base и Concurrent это практически одно и тоже, но Direct имеет приличные отличия, поэтому расскажу про первые две обобщённо, а про последнюю - поподробней.

Base RDRAM и Concurrent RDRAM в основном отличаются только рабочими частотами: для первой частота составляет 250-300 MHz, а для второй этот параметр, соответственно, равен 300-350 MHz. Данные передаются по два пакета данных за такт, так что эффективная частота передачи получается в два раза больше. Память использует восьми битную шину данных, что, следовательно, дает пропускную способность 500-600 Mb/s (BRDRAM) и 600-700 Mb/s (CRDRAM).

Direct RDRAM (DRDRAM) в отличие от Base и Concurrent, имеет 16-битную шину и работает на частоте 400 MHz. Пропускная способность Direct RDRAM составляет 1.6 Gb/s (учитывая двунаправленную передачу данных), что уже по сравнению с SDRAM (1 Gb/s для РС133) выглядит довольно неплохо. Обычно, говоря о RDRAM, подразумевают DRDRAM, поэтому буква "D" в названии часто опускается. При появлении этого типа памяти Intel создала чипсет для Pentium 4 - i850.

Самый большой плюс Rambus памяти это то, что чем больше модулей - тем больше пропускная способность, например до 1.6 Gb/s на один канал и до 6.4 Gb/s при четырех каналах.

Имеется также два недостатка, довольно значительных:

1. Лапки золотые и приходят в негодность, если плату памяти вытащить и вставить в слот больше 10 раз (примерно).

2. Завышенная цена, но многие находят очень хорошее применение этой памяти и готовы заплатить за них большие деньги.

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

Вы наверняка видели в BIOS"e при настройках частоты памяти опцию By SPD что это значит? SPD - Serial Presence Detect , это микросхема на модуле, в которую зашиты все параметры для работы модуля, это так сказать "значения по умолчанию". Сейчас из-за появления "noname" компаний, стали записывать в этот чип имя производителя и дату.

Регистровая память

Registered Memory это память с регистрами, которые служат буфером между контроллером памяти и чипами модуля. Регистры уменьшают нагрузку на систему синхронизации и позволяют набирать очень большое количество памяти (16 или 24 гигабайт) не перегружая цепи контроллера.

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

Все сейчас кричат про Dual channel - что это?

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

Примечание: чтобы активировать эту функцию, надо установить модули в слоты разных цветов.

Parity и ECC

Memory with Parity это память с проверкой чётности, способна детектировать некоторые типы ошибок.

Memory with ECC это память с коррекцией ошибок, позволяет найти, а также исправить ошибку одного бита в байте. Применяется в основном на серверах.

Примечание: она медленнее обычной, не годится для людей любящих скорость.

Надеюсь, после прочтения статьи вы разобрались с более популярными "непонятными понятиями".

На любом модуле памяти DIMM присутствует небольшой чип SPD (Serial Presence Detect), в котором производителем записывается информация о рабочих частотах и соответствующих задержках чипов памяти, необходимые для обеспечения нормальной работы модуля.

Информация из SPD считывается BIOS на этапе самотестирования компьютера еще до загрузки операционной системы и позволяет автоматически оптимизировать параметры доступа к памяти.

Драйвер AMD Radeon Software Adrenalin Edition 19.9.2 Optional

Новая версия драйвера AMD Radeon Software Adrenalin Edition 19.9.2 Optional повышает производительность в игре «Borderlands 3» и добавляет поддержку технологии коррекции изображения Radeon Image Sharpening.

Накопительное обновление Windows 10 1903 KB4515384 (добавлено)

10 сентября 2019 г. Microsoft выпустила накопительное обновление для Windows 10 версии 1903 - KB4515384 с рядом улучшений безопасности и исправлением ошибки, которая нарушила работу Windows Search и вызвала высокую загрузку ЦП.

Драйвер Game Ready GeForce 436.30 WHQL

Компания NVIDIA выпустила пакет драйверов Game Ready GeForce 436.30 WHQL, который предназначен для оптимизации в играх: «Gears 5», «Borderlands 3» и «Call of Duty: Modern Warfare», «FIFA 20», «The Surge 2» и «Code Vein», исправляет ряд ошибок, замеченных в предыдущих релизах, и расширяет перечень дисплеев категории G-Sync Compatible.

Драйвер AMD Radeon Software Adrenalin 19.9.1 Edition

Первый сентябрьский выпуск графических драйверов AMD Radeon Software Adrenalin 19.9.1 Edition оптимизирован для игры Gears 5.

– Быстрее, еще быстрее, ну ускорься, пожалуйста, хоть немного, а то меня сейчас…

– Не могу, дорогой Геймер, ведь я достигла своей предельной тактовой частоты.

Примерно так мог бы выглядеть диалог и Геймера, у которого на счету каждая доля секунды.

Тактовая частота оперативной памяти (ОЗУ, RAM) – второй по значимости параметр после объема. Чем она выше, тем быстрее происходит обмен данными между процессором и ОЗУ, тем шустрее работает компьютер. Оперативка с низкими тактами может стать «бутылочным горлом» в ресурсоемких играх и программах. И если вы не хотите каждый раз упрашивать капризную железку немного прибавить скорость, при покупке всегда обращайте внимание на эту характеристику. Сегодня поговорим, как узнать частоту оперативной памяти по описанию в каталогах магазинов, а также той, что установлена на вашем ПК.

Как понять, что за «зверя» предлагает магазин

В описании модулей оперативной памяти на сайтах интернет-магазинов иногда указывают не все, а лишь отдельные скоростные характеристики. Например:
  • DDR3, 12800 Мб/с.
  • DDR3, PC12800.
  • DDR3, 800 МГц (1600 МГц).
  • DDR3, 1600 МГц.

Кто-то подумает, что речь в этом примере идет о четырех разных планках. На самом деле так можно описать один и тот же модуль RAM с эффективной частотой 1600 МГц! И все эти числа косвенно или прямо указывают на нее.

Чтобы больше не путаться, разберемся, что они означают:

  • 12800 Мб/с – это пропускная способность памяти, показатель, получаемый путем умножения эффективной частоты (1600 МГц) на разрядность шины одного канала (64 бит или 8 байт). Пропускная способность описывает максимальное количество информации, которое модуль RAM способен передавать за один такт. Как определить по ней эффективную частоту, думаю, понятно: нужно 12800 разделить на 8.
  • PC12800 или PC3-12800 – другое обозначение пропускной способности модуля RAM. Кстати, у комплекта из двух планок, предназначенного к использованию в двухканальном режиме, пропускная способность в 2 раза выше, поэтому на его этикетке может стоять значение PC25600 или PC3-25600.
  • 800 МГц (1600 МГц) – два значения, первое из которых указывает на частотность шины самой памяти, а второе – в 2 раза большее – на ее эффективную частоту. Чем отличаются показатели? В компьютерах, как вы знаете, используется ОЗУ типа DDR – с удвоенной скоростью передачи данных без увеличения количества тактов шины, то есть за 1 такт через нее передается не одна, а две условные порции информации. Поэтому основным показателем принято считать эффективную тактовую частоту (в данном примере – 1600 МГц).

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

Разные модули ОЗУ в рамках одного поколения – DDR, DDR2, DDR3 или DDR4, имеют разные частотные характеристики. Так, самая распространенная на 2017 год RAM DDR3 выпускается с частотностью 800, 1066, 1333, 1600, 1866, 2133 и 2400 МГц. Иногда ее так и обозначают: DDR3-1333, DDR3-1866 и т. д. И это удобно.

Собственную эффективную частоту имеет не только оперативка, но и устройство, которое ею управляет – контроллер памяти. В современных компьютерных системах, начиная с поколения Sandy Bridge, он входит в состав процессора. В более старых – в состав компонентов северного моста материнской платы.

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

Если на компьютере установлено несколько планок ОЗУ с разными частотными характеристиками, подсистема памяти будет вести обмен данными со скоростью самого медленного звена (исключение – устройства ). Так, если частота контроллера составляет 1333 МГц, одной из планок – 1066 МГц, а другой – 1600 МГц, передача будет идти на скорости 1066 МГц.

Как узнать частоту оперативки на компьютере

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

Данные SPD умеют читать и программы, Например, широко известная утилита , один из разделов которой так и называется – «SPD ». На скриншоте далее мы видим уже знакомые характеристики скорости планки оперативки (поле «Max Bandwidth ») – PC3-12800 (800 MHz). Чтобы узнать ее эффективную частоту, достаточно разделить 12800 на 8 или 800 умножить на 2. В моем примере этот показатель равен 1600 MHz.

Однако в CPU- Z есть еще один раздел – «Memory », а в нем – параметр «DRAM Frequency », равный 665,1 MHz. Это, как вы, наверное, догадались, фактические данные, то есть частотный режим, в котором в действительности функционирует ОЗУ. Если мы умножим 665,1 на 2, то получим 1330,2 MHz – значение, близкое к 1333 – частоте, на которой работает контроллер памяти этого ноутбука.

Помимо CPU-Z, аналогичные данные показывает и другие приложения, служащие для распознавания и мониторинга железа ПК. Ниже приведены скриншоты бесплатной утилиты :

SPD и программатор

Сейчас часто встречаются модули, которые имеют заниженные параметры. Также встречаются материнские платы, которые определяют тип памяти и жестко запрещают устанавливать частоту памяти большую записанной в SPD. Так, к примеру, при установке модуля DDR333 в материнские платы MSI K8N Neo, EPoX 8KDA3(+\J\I) и другие максимальная частота памяти ограничена 333 МГц (без разгона), хотя модуль возможно способен стабильно работать на более высоких частотах. Добиться частоты памяти равной частоте HT традиционными методами нет никакой возможности. Для этого приходилось использовать программу A64 Tweaker, которая может не всегда стабильно работать на разных платформах. Поэтому возникла потребность в программировании SPD. Превратив DDR333 в DDR400, мы легко решаем эту проблему, и разгон у нас ограничат только сами чипы памяти или процессор.

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

Для программирования SPD был использован следующий "адаптер-программатор":

Сборка данного устройства не должна вызвать каких-либо затруднений для людей видевших паяльник и транзистор. Транзисторы можно использовать любые типа n-p-n, в нашем случае это были KT315Б и BC817 в SMD корпусе. Вид программатора может быть таким (это тестовый прототип, только для того, чтобы убедится, что все работает):

Я использовал DDR DIMM разъем с материнской платы для большего удобства при прошивке большого количества модулей. Также преимущество данного подхода в сохранении гарантийного вида модулей памяти. Однако можно и напрямую подпаять провода к EEPROM на плате, не выпаивая ее. Все необходимые сигналы выведены на разъеме DDR DIMM. EEPROM установленная на плате модуля имеет выводы A0,A1,A2,WP(TEST) соединенные с землей (GND).

SDA DDR DIMM pad №93
SCL DDR DIMM pad №94
VCC DDR DIMM pad №184
GND DDR DIMM pad №176

Ну а те же, кто считает такую конструкцию ненадежной и опасной может сделать плату, Например, как мою:

Размер платы не превышает размеров современного мобильного телефона. Это полная схема программатора с дополнительным стабилизатором на 5В. Если кого-то заинтересует информация по плате либо схеме, в конце статьи приведена контактная информация. В плате использовались SMD компоненты: транзисторы BC817, резисторы размера 1206, стабилизатор 5V, три светодиода (SDA, SCL и Power). Схема требует питания +9-30 V. Было применено питание +12V с БП ПК. Соединительные провода программатора к чипу следует делать минимально короткими, во избежание наводок и помех.

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

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

Первоначальная настройка заключается в следующем: необходимо выбрать тип прошиваемой памяти - I2C Bus 8bit EEPROM, а микросхему - 24XX Auto или 2402. Это делается при помощи выпадающих меню в верхней правой части. Затем в меню Setup > Interface Setup... нужно установить тип программатора, который используется. В нашем случае это EasyI2C I/O. Поскольку этот программатор имеет параллельный интерфейс, следует выбрать порт LPT1. В конечном виде все должно быть в точности как на скриншоте ниже:

Теперь необходимо подключить программатор с подключенной микросхемой и считать ее. Для этого предназначена кнопка Read Device. После удачной процедуры чтения у вас должно быть на экране нечто похожее:

Если же у вас модуль не считался, проверьте правильность сборки, возможно, вы перепутали сигналы SCL и SDA.

Можно записать считанные данные на диск из меню File. Настоятельно советую Вам это сделать, чтобы всегда можно было вернуться, если что-либо пойдет не так. Программа поддерживает редактирование считанных данных прямо в рабочем окне. Для этого вам нужно только активировать режим редактирования. Это делается в меню Edit, пункт Edit buffer enabled. После этого можете менять значения, точно так же, как и в любом HEX-редакторе. Сделав все, что вам было необходимо, нажимаете Write Device, показанную на скриншоте ниже и SPD EEPROM прошивается заданными данными. Данные после 128-го байта можно использовать на свое усмотрение, при работе ПК считывает только первые 128 байт. Можете записать туда свои пароли от Интернета или номер кредитной карты:-). После этого отключаете программатор и извлекаете модуль памяти.

Параметр контроллера памяти - DRAM Command Rate

Сommand Rate устанавливает задержку поступления команд в память. Собственно, это понятие является синонимом задержки декодирования контроллером командно-адресной информации. За этим параметром скрывается выбор необходимого физического банка общего адресуемого пространства установленной системной памяти.

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

Таким образом, если в системе с процессором на ядрах SledgeHammer, ClawHammer, NewCastle, Winchester используется два 2-банковых модуля, необходимо использовать 2Т, иначе сигналы доходят с ошибками. Позже будет проанализировано влияние этого параметра на скорость в целом. В процессорах на ядре Venice и последующих возможно использование параметра 1Т в системе с 4мя банками памяти без потери стабильности.

В данной статье не будет приведено подробное описание остальных таймингов, т.к. цель исследования заключалась в выяснении максимально производительного режима для платформы Аthlon 64, а не изучении памяти. Если же потребуется детальная информация о таймингах обратитесь к статье "Настройка подсистемы памяти в BIOS SETUP" .

Для модификации SPD-данных вам понадобится нижеприведенная таблица адресов, и их значения. За "частоту модуля" отвечает байт 9. Если он равен 50 - это 5.0ns память, т.е. DDR400, 60 - 6.0ns - DDR333, 40 - 4.0ns - DDR500. Аналогичная ситуация и с другими таймингами.

Общая схема назначения адресных байт SPD SIMM/DIMM
Байт Назначение
0
1
2
3 Общее количество адресных линий строки модуля, включая "смешанный" объем
4 Общее количество адресных линий столбца модуля, включая "смешанный" объем
5
06-07
8 Питающий интерфейс
9 Временной цикл с максимальной задержкой сигнала CAS# (tCK)
10
11
12
13
14
15
16
17
18
19 Задержка выдачи сигналов выбора кристалла CS# (tA(S))
20 Задержка выдачи сигнала разрешения записи WE# (tA(W))
21
22
23 Минимальный цикл CLX-1
24 Максимальное время доступа к данным с минимальным циклом CLX-1 (tAC)
25 Минимальный цикл CLX-2
26 Максимальное время доступа к данным с минимальным циклом CLX-2 (tAC)
27 Минимальное время регенерации данных в странице (tRP)
28 Минимальная задержка между активизацией соседних страниц (tRRP)
29 Минимальная задержка RAS-to-CAS (tRCD)
30 Минимальная длительность импульса сигнала RAS# (tRAS)
31
32 Время установки адресов и команд перед подачей синхроимпульса (tIS)
33 Время ожидания на входе после подачи синхроимпульса (tIH)
34 Интервал установки данных на входе перед подачей синхроимпульса (tDS)
35 Время ожидания данных на входе после подачи синхроимпульса (tDH)
62 Номер текущей версии SPD
63 Контрольная сумма байт 0-62
Контрольная сумма (Checksum) предусмотрена спецификацией и необходима для проверки правильности записанных данных. Алгоритм вычисления контрольной суммы довольно прост:
  1. преобразование бинарной информации, содержащейся в байтах 0-62, в десятичную
  2. суммирование всех преобразованных чисел из байт 0-62
  3. деление полученной суммы на общее количество байт (256) до целого числа
  4. преобразование остатка от деления (получаемое число меньшее 256) в двоичный код
  5. запись результата в байте 63 в двоичном коде
64-71
72
73-90
91-92 Код ревизии (версии) модуля
93-94 Дата производства модуля
95-98
99-125
126-127 Специфические атрибуты частоты функционирования модуля
128-255 Пустые байты для внесения необходимой дополнительной информации

Пример записи карты программирования SPD для небуферизированного 128MB-модуля 32Mx64, 184pin DDR SDRAM DIMM с адресацией 12/10/2, использующего микросхемы памяти организации 8Mx8 с периодом синхросигнала 7ns (-262) и 7.5ns (-265).

Байт Наименование Значение HEX
0 Общий объем текущей информации, записанной в EEPROM 128Byte 80
1 Общее количество байт информации в микросхеме SPD 256Byte 08
2 Фундаментальный тип используемой памяти DDR SDRAM 07
3 Общее количество адресных линий строки модуля 12 0C
4 Общее количество адресных линий столбца модуля 10 0A
5 Общее количество физических банков модуля памяти 2 02
6 Внешняя шина данных модуля памяти 64bit 40
7 Внешняя шина данных модуля памяти (продолжение) N/A 00
8 Питающий интерфейс SSTL 2.5V 04
9 Временной цикл с максимальной задержкой сигнала CAS# -262 7.0ns 70
-265 7.5ns 75
10 Длительность задержки данных на выходе модуля с учетом CL=Х -262 7.5ns 75
-265 7.5ns 75
11 Интерфейс модуля (None/Parity/ECC...) Non-ECC 00
12 Тип и способ регенерации данных SR/1x(15.625 µs) 80
13 Тип организации используемых микросхем памяти x8 08
14 Ширина шины данных ЕСС модуля N/A 00
15 Минимальная задержка произвольного доступа к столбцу 1 01
16 Длительность передаваемых пакетов (BL) 2, 4, 8 0E
17 Количество логических банков каждой микросхемы в модуле 4 04
18 Поддерживаемые длительности задержки сигнала CAS# (CL) 2, 2.5 0C
19 Задержка выдачи сигналов выбора кристалла CS# 0 01
20 Задержка выдачи сигнала разрешения записи WE# 1 02
21 Специфические атрибуты модуля памяти Unbuffered 00
22 Атрибуты общего порядка микросхемы памяти General 00
23 Минимальный цикл CLX-1 -262 7.5ns 75
-265 10.0ns A0
24 Максимальное время доступа к данным с циклом CLX-1 -262 7.0ns 70
-265 7.5ns 75
25 Минимальный цикл CLX-2 N/A 00
26 Максимальное время доступа к данным с циклом CLX-2 N/A 00
27 Минимальное время регенерации данных в странице 20ns 14
28 Минимальная задержка между активизацией соседних строк 15ns 0F
29 Минимальная задержка RAS-to-CAS 20ns 14
30 Минимальная длительность импульса сигнала RAS# -262 45 2D
-265 50 32
31 Емкость одного физического банка модуля памяти 128MB 20
32 Время установки адресов и команд перед подачей синхроимпульса -262 0.9ns 90
-265 0.9ns 90
33 Время ожидания на входе после подачи синхроимпульса -262 0.9ns 90
-265 0.9ns 90
34 Время установки данных на входе перед подачей синхроимпульса -262 0.5ns 50
-265 0.6ns 60
35 Время ожидания данных на входе после подачи синхроимпульса -262 0.5ns 50
-265 0.6ns 60
36-61 Зарезервировано по JEDEC JC42.5-97-119 N/A 00
62 Номер текущей версии SPD 0 00
63 Контрольная сумма байт 0-62 Checksum cc
64 Идентификационный код производителя по JEP106 Hyundai AD
65-71 Идентификационный код JEDEC по JEP106 (продолжение) N/A 00
72 Информация о производителе модуля N/A 00
73-90 Уникальный номер производителя модуля N/A 00
91-92 Код ревизии (версии) модуля N/A 00
93-94 Дата производства модуля N/A 00
95-98 Основной серийный номер модуля N/A 00
99-125 Специфические данные производителя модуля N/A 00
126 Фактическая рабочая частота модуля N/A 00
127 Атрибуты поддержки частоты функционирования модуля ALL FF
128-255 Пустые байты для необходимой дополнительной информации N/A 00