Влияние режимов контроллера памяти на быстродействие AMD Phenom X4 в реальных приложениях
В данном материале мы продолжим серию исследований различных особенностей функционирования систем на базе процессоров серии AMD Phenom, посвящённую изучению влияния опций и компонентов данных систем на их быстродействие в реальном ПО. Сегодня «героем дня» станет опция BIOS системных плат под Socket AM2+, управляющая режимом работы встроенного контроллера памяти AMD Phenom, и переключающая его в один из режимов: «Ganged» («спаренный») и «Unganged».
Официальное мнение состоит в том, что классический «спаренный» (ganged) режим обеспечивает максимальную производительность доступа к памяти при работе однопоточных приложений, в то время как unganged режим, по идее, должен обеспечивать более высокую скорость для многопоточных задач. С результатами синтетических тестов в обоих режимах можно ознакомиться, к примеру, вот в этом материале, однако сегодня нас будет интересовать не синтетика, а исключительно реальное, «рабочее» ПО.
Используемый тестовый стенд полностью аналогичен по составу тому, на котором мы уже тестировали Phenom X4 9850, за тем исключением, что в данном случае использовалась обычная DDR2-800 с таймингами 4-4-4-10-22-2T. Впрочем, учитывая то, что Phenom X4 9850 оказался вообще не очень чувствительным к скорости памяти, мы не считаем, что это могло иметь какое-то существенное значение (тем более что Ganged-режим также был перетестирован с DDR2-800). Тестовая методика — стандартная, последней версии.
Пакеты трёхмерного моделирования
Легко заметить, что более-менее существенная разница между двумя режимами наблюдается только в интерактивной части теста SPEC для 3ds max, и в этом случае режим Ganged показывает более высокий результат. В целом же по группе мы имеем мизерные 0,4%, о которых даже говорить не стоит, чьё бы преимущество они не олицетворяли.
CAD/CAM пакеты
Здесь наблюдается стабильная тенденция — режим Unganged не выиграл ни одного подтеста в группе. Но проигрыши опять мизерные: самый большой равняется 1,1%. Снова не о чем говорить.
Компиляция
Режим Ganged позволяет сэкономить 12 секунд на отрезке в полчаса.
Профессиональная работа с фотографиями
Здесь наоборот режим Ganged либо играет вничью, либо проигрывает, но значения проигрыша такие же несущественные, как и во всех предыдущих тестах.
Научно-математические пакеты
MATLAB в одном из подтестов приблизился к «рекорду» 3ds max, но в целом картина такая же индифферентная, как и во всех предыдущих тестах.
Веб-сервер
Наконец-то мы видим более-менее существенные значения — аж до 5%! При этом, что характерно, они говорят отнюдь не в пользу Unganged-режима.
Архиваторы
Разницы, можно считать, нет.
Кодирование медиаданных
Ну а в данном случае её просто нет, безо всяких «можно считать».
Игры однозначно голосуют в пользу Unganged-режима, причём три из семи — с достаточно весомыми значениями. Call of Duty — «чемпион статьи» — в этом игровом тесте разница между Ganged и Unganged режимами составила рекордные 6,5% (в пользу Unganged).
Любительская работа с фотографиями
Ещё одно приложение, достаточно серьёзно чувствительное к режиму работы встроенного контроллера памяти AMD Phenom — это ACDSee. Причём ему тоже больше по душе Unganged-режим.Заключение
Ganged
Unganged
Соотношение
PRO SCORE
В целом, результат исследования можно считать ничейным — за некоторыми весьма редкими исключениями, не выявлено однозначного преимущества одного из режимов над другим. Не выявлено также и каких-либо чётко прослеживаемых по классам ПО закономерностей и тенденций (в том числе в классах многопоточных и однопоточных приложений, что могло бы хоть как-то согласовываться с официальным позиционированием ganged и unganged режимов). Финальный минус 0,1% у Ganged-режима по большому счёту ни о чём не свидетельствует т.к. глядя на подробные результаты понимаешь, что результат ещё одного какого-нибудь приложения может превратить этот проигрыш в ничью, а может даже и в победу.
Так что наш вывод будет кратким: с точки зрения производительности реального, «рабочего» десктопного ПО, в подавляющем большинстве случаев абсолютно всё равно, в каком режиме работает контроллер памяти на Phenom. Случаются, конечно, исключения, но они очень редкие, и их характер вряд ли можно спрогнозировать (по крайней мере, на основании данных нашего тестирования).
Что же касается звучавшего в начале статьи вопроса о том «всё ли мы правильно делаем» — то разница в 0,1 балл (или 0,1%), пусть даже и в лучшую сторону, вряд ли может служить поводом для перехода на использование unganged-режима для Phenom в основных тестированиях. Тем более учитывая то, что режим по умолчанию, устанавливаемый системными платами — ganged, а разницу даже в 10 раз большую (1%) мы и так почти никогда не принимаем во внимание, списывая на возможные последствия погрешности измерений или округлений.
Рассмотрение диапазона таймингов, напряжений, частот, а также отличий от предыдущих типов – вот что является темой данной статьи.
DDR3 Стандарт Double Data Rate 3 является логическим продолжением цепочки SDR-DDR-DDR2. Как многие знают, отличие DDR от SDR состояло в том, что передача данных по интерфейсу происходила на обоих фронтах опорной частоты, а не по положительному фронту, как у SDR. Таким образом, за один такт передавалось вдвое больше информации. Чтобы информацию с вдвое большей скоростью передать контроллеру, она должна и поступать их чипов вдвое быстрее. Это реализовано с помощью удвоения внутренней ширины модуля памяти. При этом за одну команду чтения мы получаем сразу n единиц данных. Такая архитектура была названа n-prefetch. Общая формула расчёта – 2^n prefetch, где n – поколение устройства памяти. У DDR1 одной командой передаётся 2 единицы данных, у DDR2 – 4, соответственно у DDR3 – 8. При этом минимальное значение Burst Length (параметра, определяющего длину считываемого за раз пакета данных) соответственно равно 2, 4 и 8.
Понятно, что с переходом на новое поколение количество данных, передаваемых интерфейсом за такт, не меняется, иначе менялось бы название (QDR, ODR). Меняется только ширина внутренней шины модуля. Таким образом, в модуле DDR 400 опорная частота составляет 200МГц (DDR), частота чипов 200МГц (2n-prefetch). В модулях DDR2-800 опорная частота равна 400МГц (DDR), внутренняя частота чипов – 200МГц (4n-prefetch). В модуле DDR3-800 опорная частота равна 400МГц, а частота чипов – 100МГц (8n-prefetch).
Отсюда становится ясно, почему всё время растут тайминги памяти. Если чипам нужно 10нс для тайминга CL (это CL=2 на DDR400), то в модуле DDR2-800 этот тайминг будет равняться 4, при той же частоте чипов, т.к. абсолютное значение времени не изменилось (10нс), а относительное (из-за уменьшения вдвое длительности одного такта) увеличилось вдвое. Для DDR3-1600 этот тайминг уже будет составлять 8 тактов. Хочется добавить по поводу таймингов при одинаковой частоте интерфейса – DDR2-800 и DDR3-800, к примеру. Тайминги у них равны, а вся разница вытекает из обкатанности одного процесса к моменту выпуска другого поколения, то есть из-за сравнения необкатанной новой технологии и обкатанной старой.
От слов к делу. Основные нововведения:
Частоты 800/1066/1333/1600МГц Напряжение питания 1.5В Дифференциальный фронт сигнала Burst Length 4(Burst terminate), 8 Динамическая терминация сигнала на чипе (Dynamic ODT) Поддержка программируемого CAS Latency в (4), 5, 6, 7, 8, 9, 10, 11 тактов Поддержка программируемого Additive Latency в режимах 0, CL-1, CL-2. Программируемый CAS Write Latency (CWL) в 5, 6, 7, 8 тактов Переключение BL на лету 8 логических банков Наличие встроенного термодатчика (является нововведением для десктопной платформы, но уже было реализовано в FB-DIMM). Выбор мощности сигналов с помощью EMRS Поддержка Auto Self Refresh 8 бит предвыборка
На данный момент представлены чипы двух плотностей – 512Mbit и 1Gbit.
Количество банков составляет 8, что означает использование тайминга tFAW на всех модулях. Напряжение по спецификации составляет 1,5В. Модули, предназначенные для разгона или разогнанные производителем, будут работать традиционно при большем напряжении. Согласно даташиту Hynix DDR3 SDRAM Unbuffered DIMMs Based on 1Gb Z ver., максимальное допустимое напряжение составляет 1.975В, то есть модули будут работать при напряжениях до 2,0В. Оверклокеры-экстремалы будут использовать и большие значения, но очень маловероятно, что для постоянного использования напряжение будет превышать 2,1В. Об этом можно судить как по процентному соотношению напряжения при разгоне DDR2, так и вольтмодам GDDR3. Частоты этого типа памяти, как я писал ранее будут начинаться с 800МГц и дойдут до 1600МГц. Отсюда, кстати, можно сделать интересное наблюдение – частота чипов не меняется с течением времени. У DDR внутренняя частота была в диапазоне 100-200МГц (DDR200-DDR400), у DDR2 – то же самое, начиналось со 100 и заканчивалось 200МГц (DDR2-400 – DDR2-800). Стандарт DDR3 продолжает эту тенденцию со своим диапазоном частот DDR3-800 – DDR3-1600 (реальная внутренняя те же 100-200МГц). Стало быть, DDR4, наиболее вероятно, будет работать на частотах интерфейса от DDR4-1600 до DDR4-3200. Это ниже, чем рамки частот GDDR. Связано это с более жесткими ограничениями на подаваемую чипам мощность и требованиями к охлаждению и таймингам. Исследование вопроса диапазона частот GDDR разных версий и DDR во внештатном режиме может быть исследовано позднее.
Теперь об одном из важнейших параметров нового типа памяти – таймингах. Все принятые стандартом схемы таймингов сведены в таблицу. Соответствие режимов CL-X и CWL-X с частотами дано для установления обратной совместимости различных модулей.
Отсюда видно, что уже расписаны параметры для будущих 8Гб чипов. А также факт, что подтайминги вроде WR, WTR и другие не поменялись относительно DDR2. Разница лишь в основных таймингах. Именно они и будут определять расстановку сил DDR3 vs DDR2 и привлекательность новинки. Модули уже начали появляться в продаже, но нормальных обзоров с изменением таймингов и разгоном проведено не было.
Использованная литература: 1. JEDEC STANDARD DDR2 SDRAM SPECIFICATION JESD79-2C 2. Samsung DDR3 SDRAM Specification revision 0.1 3. Samsung 512Mb E-die DDR3 SDRAM Specification 4. Hynix DDR3 SDRAM Unbuffered DIMMs Based on 1Gb Z ver.
Q^ Я установил ЦП семейства Phenom и модули памяти, согласно руководству для задействования двухканального режима работы памяти, но в момент прохождения процедуры пост, системой отображается режим “unganged mode, 64-bit”. Как мне задействовать 128-бит двухканальный режим работы памяти?
Может быть Вы спросите какие преимущества даёт этот режим? Отвечу: теоретически пропускная способность памяти (а это быстродействие компьютера) увеличивается вдвое, но станет ли Ваш комп вдвое резвей? Исследования и эксперименты, проведенные вскоре после первого появления этого режима (на чипсетах от nVidia для процессоров Athlon) были проведени тесты и эксперименты, которые показали 10-15% рост производительности системы. Нельзя сказать что это ВСЕГО 10-15%, порой процессор, увеличивающий производительность системы на тот же порядок стоит В РАЗЫ больше, чем обыкновенный (который по приемлемой цене) так что организовать GANGED MODE — стоит!
P.S. спроста недодумаешься в меню «интеллектуального разгона зайти» P.P.S. так что в отличие от сокета АМ2, 939 и 462 (Socket A) на АМ3 и АМ3+ (и FM2, я думаю) недостаточно правильно (парами и по цветам) расположить планки памяти!
What AMD says about the ganged vs unganged question
AMD has some excellent documentations that can be download for free. Let’s examine some extract of the “BIOS and Kernel Developer’s Guide (BKDG) For AMD Family 10h Processors ”. On section 2.8 we can find some considerations on ganged vs unganged mode. If you are interested in checking the doc, I suggest you to especially read these sections:
In short, the documentation indicates that:
In ganged mode, we have a 128 bit wide logical DIMM that map the first 64 bit on physical DDR channel A and the last 64 bit on DDR channel B. So we can state that a single 128 bit operation is effectively split between two memory channel; on the other hand, the DCTs can not operate independently. In other words, the physical address space is interleaved between the two DIMM in 64 bit steps
In unganged mode, each DCT can act independently and has its own 64 bit wide address space. In this mode the processor can be programmed to interleave the single, physical address space on the two normalized address space associated with the two memory channel; however, the finer possible interleaving unit is the cache line size (64 bytes)
AMD officially suggest to enable unganged mode to benefit from increased parallelism
Some CPU models (for example, the 8 and 12 core Magny Cours G34 processors), can only use the unganged mode.
I draw a graph that, hopefully, should help explaining the differences between ganged and unganged modes:
As you can see, in the ganged mode the physical address space is spread between the two memory channel with a 64 bit granularity: this means that two consecutive 64 bit access will read from two different memory channels and, more importantly, that a 128 bit access can utilize both channel.
On the other hand, in the unganged mode a (relatively) large portion of physical address space is bound to a single memory channel. In the graph above this portion is 64 bytes length, but the K10 processors can be programmed to use an even more coarse grained interleaving scheme. However, the normal interleaving unit in unganged mode is 64 byte length (as shown in the graph), as longer unit can cause a tangible performance loss.
From what we see, one should think that neither approach is the ideal one: the usual registers and operands size is 64 bit (8 byte), so it appear that both the ganged and unganged methods will read this 64 bit entity over only a single memory channel, effectively wasting bandwidth. A byte interleaved (or bit interleaved) mode should give as a great performance boost, right? Simply stated: no. The key point to understand here is that processors do not move in and out from memory data chunks of arbitrary length, but use a fixed-sized scheme: they move data from and to main memory only on a cache line base. On Phenom processor the cache line size is 64 byte long, so these processors move data from and to main memory only in 64 bytes chunks. This means that if we try to read a byte at address 0x0, the entire cache line (64 byte) will be fetched by the processor! While this can seems counterproductive, it has its reasons, especially related to space locality and cache design. It is beyond the scope of this article to explain why processors behave in this manner, but in short we can state that this design permit good performance boost (because exploit code and data space locality) and the creation of very dense caches.
As memory operations happens in 64 bytes chunks, it appear that ganged mode will always win: it can spread that 64 bytes operations on the two memory channel, while the unganged mode will only use a single memory channel. The reality, however, is the the unganged mode rarely suffer from this problem, because normally there are many outstanding memory request to be completed, so there are many outstanding cache line to be fetched from or stored to main memory. While the ganged mode will be faster in operating on a single cache line, the unganged mode can theoretically operate on two cache line at a given moment (with some restrictions). This parallelism can be realized because the memory controller incorporate an 8 entry depth memory controller queue (the “MCQ” box in the drawing above), for a total of 8 outstanding cache line requests.
However, simply stating that the unganged mode has the potential to be often on par with the ganged mode is not enough: in this case, we can simply use the ganged mode and forget about the unganged mode. The point is that the unganged mode has potential to be faster that ganged mode. Why? Because we must realize that main memory access don’t happen immediately, as the DRAM chip require many ns to be accessed: after this initial access time the data can be transferred quite quickly, but the initial access steps can be very slow (from a processor standpoint). Starting two memory operations at the same time, the memory controller has the possibility to hide at least partially the latency involved in the setup steps of the second operations. Obviously this is not always true, but it is a possibility indeed and, so, this can be an advantage of unganged vs ganged method. Moreover, using the unganged mode the memory controller can theoretically both write to and read from memory at the same time: this should help memory copy routines and multitasking operating system, where many processes can both read from and write to memory at the same time.
Summarizing the whole point, we can state that:
the ganged mode has the potential to be faster than unganged mode because it use a more fine grained interleave mode
the unganged mode has the potential to be faster than ganged mode because it can start two memory operations at the sime time, effectively hiding at least part of the latency involved in the second operation. Also, this mode permit to both read from and write to memory at the same time, with the intrinsic advantages that this possibility implies.
So, we don’t have a “magic setting” that will always give us the better possible performance. We should run some benchmarks to understand wich applications and scenarios benefits from one method rather than the other.
Автор Тема: Заставить работать ОЗУ в Двухканальном режиме(Dual) на ноутбуке (Прочитано 33835 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Страница сгенерирована за 0.051 секунд. Запросов: 28.
Практически каждый начинающий пользователь, начавший апгрейд компьютера, сталкивается с вопросом конфигурирования оперативной памяти. Что лучше, одна планка на 16 Гб или две по 8 Гб? Как включить двухканальный режим? В какие слоты ставить планки памяти — ближние или дальние от процессора? Как включить XMP профиль? Какой прирост производительности дает двухканальный режим, включение XMP профиля и разгон памяти?
В идеале конфигурирование памяти желательно начать еще до ее покупки, прикинув, какой объем памяти (ОЗУ) достаточен для ваших задач. Однако зачастую приходится добавлять память к уже имеющейся, что несколько усложняет дело.
Современные приложения и игры стали требовательны к подсистеме памяти, и важно, чтобы она работала в двухканальном режиме для максимальной отдачи. Почему так происходит?
В первую очередь из-за роста производительности процессоров. ОЗУ должна успевать загрузить работой все ядра процессоров, которых становится все больше с каждым годом.
В играх требования к скорости памяти растут в первую очередь от того, что проекты становятся все реалистичнее, увеличиваются в объемах и детализации 3D-моделей. Новые игры вплотную подбираются к отметке в 100 Гб, и этот объем в первую очередь состоит из текстур высокого разрешения, которые надо переместить с накопителя и обработать.
Недорогие ПК и ноутбуки со встроенной в процессор графикой получают приличный прирост от быстрой памяти и включения двухканального режима. Ведь обычная ОЗУ там используется и видеоядром. Поэтому давайте для начала разберем все о двухканальном режиме ОЗУ.
Двухканальный режим работы памяти
На большинстве материнских плат устанавливаются два или четыре слота под ОЗУ, которые могут работать в двухканальном режиме. Слоты материнской платы обычно помечаются разными цветами.
Чтобы реализовать самый оптимальный режим работы памяти в двухканале, нужно установить два одинаковых модуля ОЗУ в слоты одинакового цвета. Слоты для двух модулей ОЗУ в двухканале обычно называются DIMMA1(2) и DIMMB1(2). Желательно уточнить это в инструкции к вашей материнской плате.
Не всегда у пользователей бывают модули, совпадающие по частотам и таймингам. Не беда, двухканал просто заработает на скорости самого медленного модуля.
Двухканальный режим работы ОЗУ довольно гибок и позволяет установить и разные по объему модули. Например — 4 Гб и 2 Гб в канале A и 4 Гб и 2 Гб в канале B.
Как вариант, можно установить 8 Гб ОЗУ как 4 Гб в канале A и 2+2 Гб в канале B.
И даже конфигурация 4 Гб в канале A и 2 Гб в канале B будет работать в двухканальном режиме, но только для первых 2 Гб ОЗУ.
Но бывают такие ситуации, когда пользователь специально выбирает одноканальный режим работы ОЗУ с одним модулем. Например, если ставит только 16 Гб памяти и только через пару-тройку месяцев накопит на второй модуль на 16 Гб.
Ниже я протестирую, можно ли увеличить производительность одного модуля, разогнав его. А заодно протестирую все возможные режимы работы ОЗУ: с настройками по умолчанию, с включенным XMP профилем и с разгоном. Все тесты проведу как для одноканального режима работы, так и для двухканального.
Серверных материнских плат с четырехканальным режимом работы ОЗУ мы касаться не будем из-за их малого распространения.
Сколько модулей памяти оптимально для производительности?
Теперь нам надо решить, сколько модулей памяти лучше ставить в компьютер.
Если у вас материнская плата с двумя разъемами под ОЗУ, то выбор очевиден — вам нужно ставить две планки с подходящим вам объемом.
А вот если слотов под память у вас четыре, то, поставив четыре планки в четыре слота, можно получить небольшой прирост производительности. Прочитать об этом можно тут.
Но минусы такого решения перевешивают — у вас не остается слотов под апгрейд, модули памяти меньшего объема быстрее устаревают морально и меньше ценятся на вторичном рынке.
Какого объема ОЗУ достаточно?
При выборе объема ОЗУ ориентируйтесь на 8 Гб для офисного ПК и 16 Гб для игрового.
Выбирая 32 Гб ОЗУ, вы получите еще и прирост производительности, ведь большинство модулей DDR4 на 16 Гб — двухранговые. Это значит, что контроллер памяти в процессоре может чередовать запросы к такой памяти, повышая производительность в рабочих приложениях и играх.
Популярная двухранговая память
То есть, 2х16 Гб ОЗУ будут быстрее 2х8 Гб с той же частотой. Но есть и небольшой минус — у двухранговых модулей более низкий разгонный потенциал.
Посмотреть тип памяти можно программой CPU-Z, во вкладке SPD.
В какие слоты ставить модули памяти — ближние или дальние от процессора?
Раньше ОЗУ чаще ставили в самые ближние к процессору слоты (левые), но теперь все не так однозначно. Надо смотреть инструкцию к материнской плате и ставить по указаниям производителя.
Например, ASUS почти всегда рекомендует ставить память во второй слот.
Включение XMP профилей
Память с высокой частотой недостаточно просто установить в материнскую плату, чтобы она заработала на заявленной скорости. Как правило, скорость ограничится стандартной частотой для вашего процессора и материнской платы. В моем случае это 2400 МГц.
Чтобы активировать для ОЗУ скорость работы, которая записана в XMP профиле, надо зайти в BIOS и в разделе, посвященном настройке памяти, включить нужный XMP профиль. Вот так это выглядит на материнской плате MSI B450-A PRO MAX.
Тестирование разных режимов работы памяти
А теперь давайте протестируем память в разных режимах работы. Главной целью тестов будет разница работы в одно- и двухканальных режимах и разгоне.
Начнем с тестирования пропускной способности чтения ОЗУ в AIDA64, в Мб/сек. На графиках одноканальный режим работы отмечен как (S), а двухканальный — как (D), вместе с частотой работы памяти.
ОЗУ в двухканале прилично выигрывает.
Тестирование в архиваторе WinRAR 5.40 преподносит первый сюрприз. Одна планка памяти в разгоне до 3400 МГц работает быстрее, чем две на частоте 2933 МГц.
Архиватор 7-Zip 19.0, итоговая скорость распаковки в MIPS. Опять одна планка в разгоне обошла две на 2933 МГц.
Скорость работы архиваторов имеет важное практическое значение — чем она быстрее, тем быстрее будут устанавливаться программы и игры.
Из игр я выбрал Assassin’s Creed Odyssey и Shadow of the Tomb Raider. Для минимизации воздействия видеокарты на результаты я отключил сглаживание и выставил разрешение в 720p.
В Assassin’s Creed Odyssey даже при 50 % разрешения кое-где производительность упиралась в GeForce GTX 1060, ее загрузка доходила до 99 %.
Более быстрая видеокарта позволила бы еще нагляднее увидеть прирост производительности от режимов работы ОЗУ.
Assassin’s Creed Odyssey, средний FPS. Одна планка ОЗУ, работающая с разгоном, сумела обогнать две планки в двухканале, на частоте 2400 МГц.
Shadow of the Tomb Raider, DX12, средний FPS. Картина повторяется, и одна планка памяти в разгоне быстрее, чем две низкочастотные.
Демонстрация плавности геймплея в Shadow of the Tomb Raider с одним модулем ОЗУ на 3400 МГц. Надо учесть, что запись съела пару кадров результата.
Выводы
В моих тестах один двухранговый модуль памяти на 16 Гб в разгоне обогнал в архиваторах модули с частотой 2933 МГц, работающие в двухканале. А в играх обогнал модули, работающие с частотой 2400 МГц.
Это значит, что вы можете купить быстрый модуль на 16 Гб и добавить еще 16 Гб, когда его станет не хватать.
Но самый идеальный вариант компоновки памяти — два одинаковых модуля в двухканальном режиме.
И совсем хорошо, если вы потратите немного времени на ее разгон. Благо, есть много хороших гайдов на эту тему.