Unganged dual что значит

Влияние режимов контроллера памяти на быстродействие 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 режимов). Финальный минус 0,1% у Ganged-режима по большому счёту ни о чём не свидетельствует т.к. глядя на подробные результаты понимаешь, что результат ещё одного какого-нибудь приложения может превратить этот проигрыш в ничью, а может даже и в победу.

Так что наш вывод будет кратким: с точки зрения производительности реального, «рабочего» десктопного ПО, в подавляющем большинстве случаев абсолютно всё равно, в каком режиме работает контроллер памяти на Phenom. Случаются, конечно, исключения, но они очень редкие, и их характер вряд ли можно спрогнозировать (по крайней мере, на основании данных нашего тестирования).

Что же касается звучавшего в начале статьи вопроса о том «всё ли мы правильно делаем» — то разница в 0,1 балл (или 0,1%), пусть даже и в лучшую сторону, вряд ли может служить поводом для перехода на использование unganged-режима для Phenom в основных тестированиях. Тем более учитывая то, что режим по умолчанию, устанавливаемый системными платами — ganged, а разницу даже в 10 раз большую (1%) мы и так почти никогда не принимаем во внимание, списывая на возможные последствия погрешности измерений или округлений.

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

Оперативная память (ОЗУ) — необходимая составляющая любого компьютера на базе процессора с архитектурой X86 (не путать с разрядностью ОС). От объёма, латентности и пропускной способности памяти (ПСП) довольно сильно зависит производительность компьютера во всех задачах. Конечный пользователь может изменять по своему усмотрению все эти характеристики, чтобы увеличить производительность “железа”.

Объём оперативной памяти можно увеличить, только купив плашки памяти большего размера и/или докупив к уже имеющимся плашкам ОЗУ новые, если материнская плата обладает достаточным количеством слотов. Да и увеличение объёмов ОЗУ повышает производительность не всегда, только если ранее памяти для хранения промежуточных данных не хватало. К примеру, даже современным AAA проектам не требуется больше 10-12 Гб памяти (хватает и 8 Гб, но уже впритык). Для сёрфинга интернета, работы в офисных приложениях достаточно и меньших объёмов (зависит от используемых приложений). Ну а для серьёзных рабочих станций объёмы от 32 Гб ОЗУ и выше – насущная необходимость.

В отличие от увеличения объёма, прирост производительности от уменьшения латентности и увеличения пропускной способности памяти наблюдается практически всегда. Показатели латентности и ПСП можно изменить в БИОС материнской платы и специализированном софте, если материнская плата позволяет изменять множители/делители частоты ОЗУ, а также тайминги оперативной памяти. Благодаря этому пользователь без денежных затрат может увеличить производительность компьютера. Можете почитать про разгон оперативной памяти через БИОС.

Кроме изменения тактовой частоты, существует другой способ увеличения ПСП – многоканальный режим работы оперативной памяти. Двухканальный режим работы оперативной памяти является самым простым и распространённым частным случаем многоканального режима, доступным большинству пользователей. Этот способ увеличения ПСП не требует никаких особых навыков и знаний, тогда как изменение таймингов и частоты ОЗУ умеют выполнять не все опытные пользователи, не говоря о новичках.

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

Скорость передачи данных из ОЗУ, как говорилось выше, зависит от латентности и ПСП. Пропускная способность памяти, в свою очередь, напрямую зависит от тактовой частоты работы ОЗУ и ширины шины обмена данными между контроллером памяти (КП) и оперативной памятью. Ширина шины одного канала ОЗУ у памяти типа DDR всех поколений составляет 64 бита. Контроллеры памяти, поддерживающие многоканальный режим, определяют несколько плашек памяти с шириной шины 64 бит как одно устройство с шириной шины n*64 (где n – количество плашек памяти, при условии, что КП поддерживает n-канальный режим работы ОЗУ). То есть двухканальный режим оперативной памяти увеличивает ширину шины ровно в 2 раза (2*64 = 128 бит). Формула расчёт теоретической ПСП (в Гб/c): “Clock * memory_bus / 8 / 1000”, где “Clock” – эффективная частота памяти (в МГц), а “memory_bus” – ширина шины обмена данными ОЗУ с КП.

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

Присоединяйтесь к «ЭРА ТЕХНОЛОГИЙ» во Вконтакте и в Одноклассниках. Там можно следить за свежими полезными публикациями и новостями. А еще там есть тематические приколы.

Как включить двухканальный режим оперативной памяти

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

  1. Поддержка контроллером памяти двухканального режима работы ОЗУ;
  2. Наличие двух и более плашек оперативной памяти одного поколения;
  3. Наличие двух слотов для установки ОЗУ;
  4. Идентичность типов обоих плашек памяти (с ECC или без);
  5. (опционально) Идентичность характеристик плашек оперативной памяти (тактовой частоты, таймингов, кол-ва рангов, производителя чипов памяти и др.).

Чтобы активировать двухканальный режим оперативной памяти, нужно вставить минимум 2 плашки ОЗУ в разные слоты материнской платы (если слотов больше, чем 2, то они должны быть 1 цвета). В большинстве случаев больше ничего делать не нужно, двухканальный режим работы ОЗУ активируется самостоятельно.

Однако иногда пользователю вручную приходится активировать в БИОС функцию “Dual Channel”. Также существует вероятность, что ПК вообще откажется стартовать. Такое случается при использовании разных плашек памяти. В этом случае можно попробовать отключить некоторые функции для ОЗУ в БИОС и/или изменять частоту и тайминги, загрузившись с 1 плашкой.

Проверить, активировался ли двухканальный режим работы оперативной памяти, можно в специализированном софте (например, в CPU-Z или Aida64).

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

Прирост производительности от двухканального режима оперативной памяти

Наибольший прирост производительности (практически кратный) от активации двухканального режима ОЗУ получают системы, использующие интегрированную графику. Производительность такой графики зачастую упирается в ПСП и латентность памяти. GPU большую часть времени “вхолостую” простаивает, ожидая данные из ОЗУ (оперативная память в подобных системах используется ещё и в качестве видеопамяти).

Также значительного прироста следует ожидать на системах, страдающих от нехватки ОЗУ. При увеличении скорости обмена данными, ОЗУ за единицу времени может передать больше данных, чем раньше, поэтому данные будут занимать в оперативной памяти немного меньший объём. Кроме того, существенный прирост могут получить системы с мощными процессорами, страдающими от нехватки данных, так как пропускной способности памяти в одноканальном режиме (в первую очередь у памяти устаревших стандартов) не хватает некоторым приложениям для своевременного обмена данными с контроллером памяти. Так в игре Rise of The Tomb Raider Intel Core i7 2600 получает прирост производительности в 34,5% от увеличения пропускной способности памяти, в частности частоты:

Читать еще:  Vcore loadline calibration что это

На системах с маломощным центральным процессором, использующих дискретную графику и современный тип памяти, прирост производительности в игровых приложениях будет достаточно маленький (значительно увеличатся лишь показатели 0,1% и 1% минимального фпс), не говоря уже о рендеринге, где на первый план выходит мощность ЦП. Так на Intel core i3 6100 двухканальный режим оперативной памяти в 3DMark Fire Strike не даёт никаких преимуществ, в сравнении с одноканальным.

Тогда как прирост ПСП составил внушительных 94%:

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

Добавить комментарий Отменить ответ

Добрый день, стояла в ноуте 1 Планка на 8 гб от Самсунга, купил идентичную по частоте, таймингам, вольтажу и объёму плашк, установил комп видит 16гб. CPU-z показывает 16гб и двух канальный режим, но скорость оперативки 1200 хотя планки на 2400, в двух канальном режиме скорость умножается на 2 или что то с пк не так?

Добрый день. А до установки второго модуля у вас CPUz показывал 2400 разве? Это такая особенность DDR (double data rate). Вот если бы у вас стояла стара память SDR (single data rate), то частоты на коробке и в CPUz совпадали бы.

Установлено CORSAIR XMS3 CMX8GX3M2A1600C9 DDR3 — 2x 4Гб. Хочу увеличить объем, но вопрос в том что будет лучше купить такой же набор 2 по 4Гб и остановится, или же есть вариант купить одну CORSAIR XMS3 CMX8GX3M1A1600C11 DDR3 — 8Гб, и через некоторое (неопределенное время) еще одну на 8Гб…
Мать Asus B85M-G, проц i5-4570, 3200 MHz (32 x 100)
Стоит ли оно того?

В плане быстродействия на первом этапе конечно же лучше поставить 4х4.
С тремя планками ОЗУ я лично не экспериментировал, но по идее 2 первые останутся работать в 2-канальном режиме, а третья будет просто добавочной. Хотя опять же, материнские платы прогрессируют тоже. Слышал, что некоторые могут работать в многоканальном режиме даже с нечетным количеством планок оперативки. Чтобы узнать наверняка, лучше уточнить у производителя материнской платы напрямую.

Здравствуйте! Не подскажете, если я к одной плашке на 1600mhz добавлю еще одну (того же производителя и того же объема), но с частотой 1866mhz, а потом через биос понижу частоту добавленной плашки до 1600mhz, активируется ли двухканальный режим?

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

Привет! У меня работают в двухканальном режиме :
DIMM1: SK Hynix HMT451U6MFR8C-PB 4ГБ DDR3-1600 DDR3 SDRAM Размер модуля(1 rank,8 banks)
DIMM2: Kingston 99U5458-002.A00LF 2ГБ DDR3-1333 DDR3 SDRAM Размер мод.(2 ranks,8 banks) Тайминги памяти 9-9-9-24 (1T) 780 MHz ( DDR3-1560 ). Одна плашка и половина другой работают в двухканальном,остаток в одноканальном. В твоем случае скорей всего активируется ,если подравняешь частоты и тайминги.

Unganged dual что значит

Written by Gionatan Danti on 17 June 2010 . Posted in Hardware analysis

User Rating: / 100

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:

  • 2.8 — DRAM Controllers (DCTs)
  • 2.8.5 — Ganged or Unganged Mode Cons >

    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.

    Unganged dual что значит

    Сообщения: 25
    Благодарности: 4

    Unganged dual что значит

    Unganged dual что значит

    Сообщения: 25
    Благодарности: 4

    Профиль | Отправить PM | Цитировать

    Материнка Gigabyte GA-MA770T-UD3P. В данный момент у меня две планки памяти DDR3 1333 Transcend TS128MLK64V3U по гигу, работают в режиме Unganged Dual DDR3-1339, тайминги 9-9-9-24. WinXp32 SP3. Вопрос в следующем: если я докуплю ещё дополнительно 2 гига — в каком виде это лучше сделать?
    1) Две таких же планки 1333 Transcend TS128MLK64V3U по гигу — итого 4 одинаковых модуля в 4 слотах;
    2) Две планки 1333 по гигу любых других производителей (имеются на выбор Kingston, Silicon Power, Samsung);
    3) ОДНУ планку 2 гига;
    4) Обменять/продать просто на 2 планки по 2 гига.

    И какой смысл во всех этих Unganged Dual / Ganged Dual / Dual Modes в каждом из вышеперечисленных вариантов?

    Сообщения: 239
    Благодарности: 28

    2 планки по 2 гига одного производителя из одной коробки (это несколько дешевле).

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

    ——-
    Потписи нет. И не будит.

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

    Сообщения: 25
    Благодарности: 4

    В моём случае ничуть не дешевле. Как обменять мои — проблема. А если продавать — то как б/у. А это как минимум минус 40% от стоимости. Дешевле всего купить 2048M DDR III 1333Mhz Transcend за 1780 рублей, «классически двухканально-правильнее» две 1024M DDR III 1333Mhz Transcend по 980 каждая.

    Сообщения: 239
    Благодарности: 28

    мнение номер раз: «В процессорах Phenom присутствуют два контроллера памяти, работающие параллельно и такой вещи, как Single/Dual режимы памяти у феномов нет в принципе, каждый поток снабжен отдельным контроллером. Ganged/Unganged режимы подразумевают выбор между типами синхронизации работы обоих контроллеров памяти (грубо говоря, 1*128 бит или 2*64), и выбор одного из них на производительности системы не сказывается. Впрочем, есть специфические задачи, в которых удобнее использовать тот или иной режим DCT. Для стандартного использования это не актуально никак, совсем и вообще.»

    мнение номер два: «АMD официально призналась в наличии двух 64-битных контроллеров памяти в процессорах Phenom. Предполагается, что такая разбивка позволяет повысить быстродействие в многопоточных задачах, именно на них и ориентируются четырёхъядерные процессоры. Оказывается, подобные особенности устройства контроллера памяти процессоров Phenom вызывают определённое беспокойство среди производителей памяти. Дело в том, что о наличии лишь одного канала памяти многие материнские платы сообщают в момент начальной загрузки, и неосведомлённый пользователь запросто может забить тревогу — вторая планка памяти (или две из четырёх) не работает!
    Официальный представитель компании OCZ Technology выступил с необходимыми пояснениями. Процессоры Phenom имеют два режима работы контроллера памяти:
    * ganged mode -> 1 x 128 бит, двухканальный режим;
    * unganged mode -> 2 x 64 бит, двухканальный режим.
    Ganged соответствует русскому термину «сгруппированный», unganged означает «разгруппированный». Последний вариант работы предпочтителен в многопоточных приложениях, но именно он вводит в заблуждение диагностические утилиты и протоколы начальной загрузки материнских плат.»

    так что, по фиг!

    The Phenom / PhenomII memory controller: ganged vs unganged mode benchmarked

    Written by Gionatan Danti on 17 June 2010 . Posted in Hardware analysis

    User Rating: / 100

    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:

    • 2.8 — DRAM Controllers (DCTs)
    • 2.8.5 — Ganged or Unganged Mode Cons >

      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.

      The Phenom / PhenomII memory controller: ganged vs unganged mode benchmarked

      Written by Gionatan Danti on 17 June 2010 . Posted in Hardware analysis

      User Rating: / 100

      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:

      • 2.8 — DRAM Controllers (DCTs)
      • 2.8.5 — Ganged or Unganged Mode Considerations
      • 2.8.8 — DRAM Data Burst Mapping
      • 2.12.2 — DRAM Considerations for ECC

      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.

Ссылка на основную публикацию
Adblock
detector