Архивы: по дате | по разделам | по авторам

Я памятьник себе воздвигну…

Архив
автор : Александр Карабуто   01.10.2003

Продолжаем разговор об особенностях применения двухканальных DDR-чипсетов Intel серий 875/865 (Canterwood и Springdale). Как я и обещал, мы поговорим не столько о самих чипсетах, сколько о новых технологиях работы с DDR SDRAM.

Продолжаем разговор об особенностях применения двухканальных DDR-чипсетов Intel серий 875/865 (Canterwood и Springdale), начатый в большой «Ферре» прошлого номера «КТ». Как я и обещал, мы поговорим не столько о самих чипсетах, сколько о новых технологиях работы с DDR SDRAM, о модулях памяти и правилах их использования с интеловскими наборами системной логики.

В чипсеты серий 875 и 8651 заложено достаточно много нововведений по работе с системной памятью. Поэтому для грамотного конфигурирования памяти и получения максимально возможного быстродействия системы необходимо понимать ряд вещей. В частности, режим работы чипсета с памятью здесь определяется не только настройками частоты и таймингов в BIOS Setup и/или содержимым SPD самих модулей, но и тем, что это за модули и каким образом они установлены в плату.

Вот два основных нововведения, примененных в чипсетах 875/865 для улучшения производительности при работе с памятью:

- двухканальный интерфейс;
- динамическая адресация.

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

Двухканальный режим

Двухканальный режим возможен благодаря наличию на плате (и в чипсете) двух отдельных 64-битных каналов работы с памятью, каждый из которых полностью разведен в одном «своем» слое металлизации. Этот режим использует параллельное (то есть одновременное) обращение к двум стандартным модулям памяти с использованием 128-разрядной шины данных (два канала по 64 бита; каждый стандартный DIMM памяти имеет 64-разрядную шину), тогда как в одноканальном режиме эти же модули будут опрашиваться последовательно, то есть в рамках стандартной модели 64-разрядной шины данных (как было в серии i845). Чипсеты серии 875/865 автоматически распознают конфигурацию подключенной памяти и активируют двухканальный режим, если это возможно. Ручное управление режимами одноканальный/двухканальный (например, в BIOS Setup или джамперами на плате) в этом случае невозможно (в отличие, скажем, от SiS655, где в BIOS Setup есть соответствующая опция). Использование двухканального режима работы в Intel 875/865 накладывает ограничения на конфигурацию и порядок установки модулей на плату. При несоблюдении этих правил плата не сможет использовать возможности двухканальной работы с памятью, автоматически переводя чипсет в одноканальный режим, что сразу снизит быстродействие системы.

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

Необходимо выполнение следующих условий:
- Согласование каналов памяти в Channel A и Channel B — заполняются симметричные слоты памяти (DIMM0+DIMM2 и/или DIMM1+DIMM3, см. рисунки 1 и 2 далее; часто эти слоты имеют одинаковый цвет).
- Согласование конфигурации модулей DIMM в каждом из каналов
- Одинаковый объем модулей (128, 256, 512 Мбайт и т. д.).
- Одинаковая технология памяти DRAM (чипы по 128, 256 или 512 Мбит).
- Одинаковая ширина шины памяти DRAM (x8 или x16).

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

- Одинаковые торговые марки.
- Одинаковые временные спецификации (тайминги по SPD).
- Одинаковое быстродействие (частота) модулей памяти.

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

Фактически двухканальный режим работы ограничен всего тремя комбинациями одинаковых модулей: заполнены слоты DIMM0 и DIMM2, заполнены слоты DIMM1 и DIMM3, симметрично заполнены все четыре слота DIMM. Во всех остальных случаях будет работать лишь одноканальный режим. В том числе, когда, например, в слотах DIMM0 и DIMM1 стоят 256-мегабайтные 8-чиповые модули, а в слоте DIMM2 — 512-мегабайтный 16-чиповый (аналогичный по технологии). Это заметно отличается от правил использования двух каналов памяти в чипсетах SiS655/FX и NVIDIA nForce2, где допускаются «более вольные» (в том числе трехмодульные) конфигурации.

Организация модулей

Платы на чипсетах Intel 875/865 поддерживают только небуферизованные 2,5-вольтовые (по стандарту; реально напряжение можно повышать) одно- и двухсторонние модули DDR SDRAM с 184 позолоченными контактами. Чипсеты не поддерживают двухсторонние «диммы» с организацией x16 (чипы DRAM с 16-битной шиной данных), а также «нечетные» и «смешанные» (x8 и x16 на одном модуле) двухсторонние DIMM даже для одноканального режима. Все конфигурации DDR-модулей памяти, поддерживаемые этими наборами системной логики, показаны в таблице 1.

Сейчас самыми распространенными являются модули на 256-мегабитных чипах с организацией 32Mx8. Таким образом, максимально на такую плату можно установить 4 Гбайт памяти — только четырьмя двухсторонними гигабайтными модулями.


1 (назад)Как мы помним, северный мост MCH у 875P и 865PE/P — это топологически один и тот же кристалл, отсортированный по скоростным параметрам кремния на финальной стадии производства и упакованный в разный конструктив. Мы не будем заострять внимание на отличиях чипсетов 875 и 865 друг от друга, а поговорим об их общих чертах при работе с памятью.

Под односторонними (SS) и двухсторонними (DS) здесь понимаются модули, имеющие одну и две строки (ряда) электрической организации DRAM (у двухсторонних каждые два чипа параллельно используют одну 8-битную шину). Физически это отнюдь не совпадает с односторонним или двухсторонним монтажом чипов на самом модуле (например, восемь 256-мегабитных чипов могут быть расположены как по одну, так и по обе стороны одной «подложки» DIMM при одинаковой «односторонней» организации), что наглядно продемонстрировано на наших диаграммах: пятая и шестая снизу двухканальные конфигурации памяти идентичны по производительности (в пределах погрешности измерений), хотя одна из них составлена из двух внешне («механически») разных модулей — одностороннего (восемь чипов только на одной стороне подложки) и двухстороннего (такие же восемь чипов «раскиданы» по обеим сторонам модуля) от разных производителей (имеющих, тем не менее, одинаковую «одностороннюю» электрическую банковую организацию).

Динамическая адресация

Вторым новым режимом в чипсетах Intel 875/865 является динамическая адресация страниц памяти (Dynamic Paging Mode). Этот режим минимизирует потери скорости путем уменьшения количества операций доступа к памяти. Чипсеты 875/865 поддерживают до 16 одновременно открытых страниц памяти (по четыре на строку) для двухканальной конфигурации и до 32 — для одноканальной конфигурации памяти. Размер страниц выбирается индивидуально для каждой строки: 4, 8 или 16 Кбайт для одноканального и 8, 16 или 32 Кбайт для двухканального режимов.

Однако оперировать адресацией страниц при этом можно по-разному. Приведем для примера четыре схемы распределения обращений чипсета по адресам памяти RAS и CAS (трансляции адресов DRAM) при одноканальном и двухканальном использовании в обычном режиме (линейной адресации) и в режиме динамической адресации (Address-Multiplexing Dynamic mode) для наиболее популярных сейчас чипов с организацией 32Mx8 (см. таблицу 2). Видно, что при динамической адресации используется замещение некоторых «линейных» адресов строки (row, то есть электрической «стороны» DIMM) старшими, что позволяет экономить на обращениях к памяти. Дело в том, что при обычной «линейной» адресации выбор строки сигналом ChipSelect производится исходя из размера всей строки (от 64 до 512 Мбайт), и при этом количество открытых страниц памяти не всегда максимально возможное, что снижает производительность (увеличивает задержки чтения), если большинство обращений производится к одной этой строке (открытие и закрытие страниц в строке). Динамическая адресация «перемешивает» старшие адреса, благодаря чему снижаются издержки на открытие/закрытие страниц памяти, позволяя строке переключаться реже.

Главным условием для активации динамического режима адресации является четное (или единичное) число строк («электрических» сторон модулей памяти) независимо от наличия двухканального режима. Для одноканального варианта размещения — это один модуль или два «одинаковых» (SS или DS). Для двухканального варианта Dynamic Mode не активирован, только если симметрично скомпонованы SS и DS (см. также рисунок 2 ). То есть динамическая мода «боится» трехбанковых конфигураций и по-разному организованных модулей в одноканальном режиме.

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

Разработчики чипсетов Intel 875/865 отмечают и более тонкие моменты, следующие из специфики работы чипсета и динамической адресации: наивысшую производительность имеют системы, использующие пару двухсторонних модулей DDR400, хотя в случае четырех модулей можно достичь того же результата и с одинаковыми односторонними DIMM. Ширина шины x8 внутри модуля (см. таблицу 1) также повышает производительность системы.

Помимо исследования влияния Dynamic Paging Mode в двухканальном и одноканальном режиме, мы также провели подробные испытания быстродействия самых разнообразных конфигураций памяти, включая одно- и двухсторонние модули разного объема и разного количества.2 Результаты представлены на диаграммах — во втором снизу «блоке» из шести строк. Для экономии места мы показываем только самые «чувствительные к памяти» тесты — в большинстве других тестов и приложений разница между конфигурациями не столь заметна. На отдельной диаграмме на следующей странице мы усреднили («геометрически») производительность конфигураций в двадцати тестах: суммарный рейтинг быстродействия систем показывает в процентном соотношении разницу в скорости конфигураций. Эти «проценты» дают верхнюю оценку разницы скорости конфигураций памяти — в большинстве реальных задач она все же не так заметна.


2 (назад) Испытания мы проводили под MS Windows XP Professional SP1 на системных платах Intel D875PBZ и ABIT IC7-G (см. «КТ» #506) с процессором Intel Pentium 4 3,2 ГГц (шина 800 МГц). В качестве системной памяти использовались элитные пары модулей от компании OCZ (серии EL Platinum) и Kingston (HyperX), любезно предоставленные компанией «Патриарх» (www.memory.ru), а также модули Corsair PC3200, TwinMOS PC3200 и NCP PC2700 (за них благодарим компанию «Никс», www.nix.ru). Для получения «правильных» результатов в тестах «таймингов» использовалась согласованная пара модулей OCZ PC3200 512MB EL Platinum Dual CH. Среди других компонентов — видеоускоритель GeForce FX 5900 Ultra (референс NVIDIA) с драйверами Detonator 44.03 и винчестер Maxtor 6Y120P0 с буфером 8 Мбайт и 80-гигабайтными пластинами.

 

Тесты подтвердили, что 16-чиповые (электрически «двухсторонние») модули при прочих равных условиях позволяют добиться заметно лучшей производительности, чем 8-чиповые (односторонние)! Это вызвано большей скоростью записи в память у первых (см. диаграмму выше). Как сказал Билл Лезински, директор подразделения Intel по разработке настольных чипсетов, в этом случае большее количество банков для записи экономит время CAS-to-RAS Precharge при записи в разные банки и почти не влияет на скорость чтения (полосу пропускания и латентность). Это умеют использовать чипсеты 875/865 и не умеет E7205. Интересно, что на чипсете SiS655 (вышедшем ранее i875P) 16-чиповые модули также пишут быстрее, чем 8-чиповые.

Более того, использование четырех двухсторонних модулей вместо двух также приносит дивиденды на i875/865, заметно ускоряя потоковый тест памяти WStream и ряд реальных приложений. При этом влияние собственно объема (а не организации) памяти на нашем наборе тестов можно исключить, поскольку ее увеличение с 512 до 1024 Мбайт при одинаковой структуре модулей (двусторонние 16-чиповые с шиной х8) не привело к какому-либо росту результатов (в рамках погрешности). Вместе с тем односторонние модули проигрывают двухсторонним более 3,5%! А четверка двухсторонних модулей обогнала пару таких же почти на 2%. Активирование динамической адресации памяти (по сравнению с традиционной линейной адресацией) позволяет прибавить до 3% скорости (при работе с двухсторонними модулями) в двухканальном режиме и более 2% в одноканальном режиме.

Все эти достаточно тонкие и неочевидные (судя по предыдущим чипсетам) моменты способны существенно повлиять на «правильность» сравнительного тестирования системных плат, процессоров и пр. — ведь в сумме эти «небольшие проценты» могут дать до 8% разницы скорости одной и той же системной платы при одних и тех же настройках в BIOS Setup (частота, тайминги и пр.) лишь за счет «немного другой» памяти! Нет нужды говорить, что 8% — это примерная разница производительности старших Pentium 4, различающихся всего одной ступенью частоты ядра. Вот где простор для подтасовок.

Тайминги памяти

Напоследок нас ждет еще одно увлекательное исследование с нетривиальными выводами — как влияют основные тайминги памяти на общее быстродействие плат на чипсетах 875/865. Для определенности мы ограничились согласованной парой двухсторонних модулей и i875P — на сходные конфигурации найденные нами закономерности распространяются фактически без изменений. Влияние базовых таймингов памяти (tCL, tRP, tRCD, tRAS, как они обозначены в BIOS Setup платы Intel) мы исследуем на плате Intel D875PBZ Bonanza (см. «КТ» #506) — два верхних блока результатов на диаграммах. Кое где нам помогут платы ABIT IC7, EPoX 4PCA3+ и Gigabyte GA-8KNXP.

Но прежде, чем перейти к описанию таймингов и их влиянию на производительность, кратко отметим «частотные» возможности по конфигурированию памяти. В спецификациях i875P/865 (и в BIOS Setup плат Intel) указано, что при частоте системной шины 800 МГц память может работать в режимах DDR400, DDR333 и даже DDR266 (режиму DDR333 в этом случае реально соответствует частота именно 320 МГц — при этом латентность чипсета оказывается ниже, чем в случае 333 МГц, ведь используется более простое соотношение частот FSB/DRAM=5/4). При системной шине 533 МГц память тактируется на 333 МГц и 266 МГц (псевдосинхронный режим), а для FSB 400 МГц — только как DDR266. Плата будет «разгоняться» по шине, отталкиваясь от этих базовых соотношений между частотами FSB и памяти (это справедливо и для серии 865), а режимы двухканальной памяти и динамической адресации — работать без изменений. Разницу в производительности этих чипсетов при FSB 800 МГц с разной частотой памяти (400/320/266) и при FSB 533 МГц c DDR333 мы уже иллюстрировали (см. «КТ» #506): при FSB 800 достойно выглядит лишь DDR400, однако на FSB 533 в «продвинутых» режимах работы чипсета с памятью DDR333 производительность системы может быть не намного хуже.
Теперь — к таймингам. Сперва — о четырех базовых.

CAS Latency (tCL) — этот, пожалуй, самый «популярный» тайминг означает задержку сигнала выборки столбца (CAS): временная задержка (в тактах частоты шины) до начала чтения данных памятью после поступления команды чтения. Обычно используются три значения: 2, 2,5 и 3 (такта). Исторически считается, что 2 (такта) существенно увеличивают производительность системы (так было, например, во времена SDRAM PC133), однако взглянем на наши диаграммы: при изменении tCL с 3 до 2 производительность двухканальной DDR-системы меняется менее чем на 0,1%!!! Фактически этот тайминг не влияет на производительность таких систем (в пределах погрешности измерений)! Недаром Intel в пункте BIOS Setup установки наиболее агрессивных таймингов памяти по умолчанию использует CL=2.5, хотя многие модули памяти DDR400 уже позволяют работать с CL=2. Однако для внимательного читателя это не в новинку: еще год назад при исследовании влияния таймингов в двухканальной системе на чипсете NVIDIA nForce2 мы также обнаружили крайне слабое влияние параметра tCL (см. www. terralab.ru/online/system/21352). Наша рекомендация проста: tCL надо устанавливать только из соображений стабильности системы. Значения 2,5 в большинстве случаев вполне достаточно, но если придется увеличить его до 3 — не беда. tCL=2 — бесполезная роскошь на этих чипсетах.

RAS Active to Precharge Delay (tRAS) — задает время задержки для подзарядки строки памяти. Значения: 5, 6, 7 или 8 тактов. Считается, что он тоже способен заметно повлиять на скорость памяти. Однако для двухканального i875P это не так — по нашим тестам разница в скорости платформы при изменении тайминга с 8 до 5 тактов менее 0,5%. Не густо, хотя и не пусто. Учитывая, что большинство модулей отлично работает с tRAS=6 или 7, эти значения следует считать лучшим выбором. И снова — для двухканального NVIDIA nForce2 этот тайминг также практически не влиял на скорость.

RAS Precharge (tRP) — время подзаряда сигналом RAS. Определяет количество тактов задержки после установки сигнала RAS, необходимых для подзарядки ячейки динамической памяти перед началом цикла обновления. Уменьшение этого значения повышает быстродействие, но чрезмерное для конкретной памяти его снижение может привести к потере данных. Значения: 2, 3 или 4 такта. Вот здесь уже стало поинтереснее — каждая ступень этого тайминга повышает производительность системы примерно на 1%. Огорчает другое — как назло, не всякий модуль памяти DDR400 способен осилить tRP=2. Впрочем, большинство «нормальных» все же способно.

RAS to CAS Delay (tRCD) — задержка между сигналами RAS и CAS. Когда память находится в режиме регенерации, строки и столбцы адресуются раздельно. Этот параметр позволяет задать время перехода от сигнала RAS (row address strobe) к сигналу CAS (column address strobe). Естественно, чем меньше значение, тем выше скорость памяти. Значения: 2, 3 или 4 такта. Влияние на производительность двухканальной системы по нашим тестам — самое большое: почти 2% при переходе от 4 к 3 тактам и еще около 2%, если добиться tRCD=2. К сожалению, редкая птица осилит середину великой реки — на «двойке» у нас смогли работать лишь Kingston HyperX PC3500/ 256MB и Corsair PC3200/ 256MB, а все остальные (включая многие из перепробованных OСZ EL Platinum и пр.) тянули лишь на «троечку». Неплохо, если бы производители памяти меньше внимания уделяли снижению tCL и tRAS, а больший упор делали именно на tRCD. Ведь вместе с tRP он способен добавить до 6% к скорости платы. Взгляните — система с таймингами 2-4-4-5 и 3-4-4-8 работает одинаково «медленно», а на 2-2-3-5 почти «летает» — именно за счет tRP и tRCD. С другой стороны, не каждая плата в наших тестах была способна стабильно работать с tRCD=2. Например, та же Intel D875PBZ даже с DDR266 и DDR320 отказывалась!

Напоследок о нескольких более редких таймингах.
Intel CPC (Command Per Clock) — аналог прежнего параметра 1T Command. В положении Enabled увеличивает производительность системы примерно на 0,4%, но, как правило, сильно ухудшает стабильность платформы. Наша рекомендация — ставить в Auto или Disabled.

Intel Fast CS (Chip Select) — ускоренный выбор кристалла памяти. При активировании добавил в среднем около 1,3% производительности и немного ухудшил стабильность. Где это позволяют условия, его можно активировать.
CPU Bus Park — парковка шины CPU теоретически должна улучшать быстродействие, но ни на одной плате, где была эта опция, она не позволила плате даже запуститься. Видимо, пока бесполезна.

Burst Length — длина конвейера (очереди). Позволяет установить размер конвейера для памяти. Конвейер памяти — это технология, при которой ОЗУ самостоятельно вычисляет следующий адрес при последовательном считывании. Чтобы использовать эту технологию, необходимо сначала определить длину конвейера, которая соответствует количеству считываемых последовательных данных, затем начальный адрес данных и уже потом разрешить внутреннему счетчику вычислять последовательные адреса. Чем больше размер конвейера, тем выше производительность последовательного чтения. Значения: 4, 8. По нашим экспериментам (результаты здесь не показаны) влияние этого параметра незначительно — доли процента. На стабильность системы практически не влияла.

А в следующий раз мы рассмотрим работу новых чипсетов в нештатных режимах ускорения и так называемом «квази-PAT».

© ООО "Компьютерра-Онлайн", 1997-2022
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.