Что потеряла IT-индустрия в лице Rambus?

Сравнение «на минималках» в оче­ред­ной раз да­ло по­вод счи­тать, что у ин­дус­т­рии па­мя­ти нет ра­зум­ных аль­тер­на­тив ре­ше­ни­ям, ми­ни­ми­зи­ру­ющим ши­ри­ну ши­ны и мак­си­ми­зи­ру­ю­щим час­то­ту пе­ре­да­чи, од­ним из пи­о­не­ров ко­то­рых была и остается Ram­bus. Мы по­счи­та­ли, что спус­тя 20 лет мож­но не­пред­взя­то оце­нить зна­чи­мость RDRAM, тес­ти­руя на рав­ных луч­шие из мо­ду­лей RIMM и, ес­ли не то­по­вые, то впол­не до­стой­ные DIMM-мо­ду­ли в стан­дар­те PC2100. В от­ли­чие от пред­ы­ду­ще­го сце­на­рия, ис­поль­зу­ю­щего «боль­шие стра­ни­цы», бы­ло при­ня­то ре­ше­ние, не от хо­ро­шей жиз­ни, прав­да, фор­ми­ро­вать бенч­мар­ки на стан­дарт­ных 4-ки­ло­байт­ных стра­ни­цах, ког­да фак­тор TLB су­щест­вен­но ска­зы­ва­ет­ся на из­ме­рен­ных зна­че­ни­ях ла­тент­нос­ти. Это при­бли­жа­ет сце­на­рий к ре­аль­ным при­ло­же­ни­ям, боль­шин­ст­во ко­то­рых не ис­поль­зу­ет Large Pages, от­да­ляя, впро­чем, ре­зуль­та­ты NCRB от оце­нок, по­лу­чен­ных в AIDA64.

Обоснование выбора модулей памяти

В обоих случаях паритет обеспечивал один и тот же процессор Pentium 4 семейства Northwood (по заводской ко­ди­фи­ка­ции — SL6SH) с ра­бо­чей час­то­той в 2,4 ГГц и частотой системной шины в 533 МГц. Равные условия для тес­ти­ро­ва­ния мо­ду­лей па­мя­ти DDR и RDRAM выбирались по критерию баланса пропускной способности. У срав­ни­ва­е­мых плат­форм это ключевое со­от­но­ше­ние, с учетом ширины шины, составляет 1:4:

  • RDRAM: 2 канала по 16 линий данных = 32 линии
  • DDR: 2 канала по 64 линии данных = 128 линий

А тактовая частота передачи данных дает обратное соотношение 4:1:

  • RIMM PC1066
  • DIMM PC2100 DDR266

Таким образом, для DDR-памяти используется в 4 раза меньшая частота передачи данных, поскольку у нее в 4 раза боль­ше ши­ри­на ши­ны. При этом пропускная способность, определяемая как произведение ширины ши­ны и эф­фек­тив­ной тактовой частоты, остается постоянной:

  • Для оперативной памяти PC2100 DDR266 про­из­ве­де­ние эф­фек­тив­ной частоты передачи данных 266 МГц, ко­ли­че­ст­ва байт в одном канале DDR (8) и количества каналов (2) дает ~4.2 GBPS;
  • Для оперативной памяти RIMM PC1066 про­из­ве­де­ние эф­фек­тив­ной частоты передачи данных 1066 МГц, ко­ли­че­ст­ва байт в одном канале Ram­bus (2) и количества каналов (2) дает ~4.2 GBPS;
  • Для системной шины процессора Pentium 4 Northwood (SL6SH) про­из­ве­де­ние эф­фек­тив­ной час­то­ты пе­ре­да­чи дан­ных 533 МГц и ко­ли­че­ст­ва байт в 64-битной шине (8) дает ~4.2 GBPS.

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

Стендовое оборудование

Как и в прошлый раз, платформой с поддержкой Rambus стала ASUS P4T533-C на базе чипсета Intel Tehama i850E с под­держ­кой ши­ны FSB 533 МГц, а значит и RIMM-модулей PC1066. В качестве таковых ис­поль­зо­ва­лись две план­ки па­мя­ти про­из­вод­ст­ва A-Tech, объемом 512 МБ со ско­рост­ны­ми ха­рак­те­рис­ти­ка­ми PC1066 (32 нсек).

За команду DDR SDRAM выступала платформа ASUS P4P800-MX на системной логике Intel Morgan Hill i865GV. За­по­ми­на­ю­щие уст­рой­ст­ва про­из­вод­ст­ва ком­па­нии Wilk Elektronik — пара DIMM-модулей GR400D64L3 объемом 1 ГБ, со­от­вет­ст­ву­ю­щих спе­ци­фи­ка­ции PC3200, способных работать на частоте 400 МГц, что от­ра­же­но во вне­кон­курс­ных ре­зуль­та­тах тес­ти­ро­ва­ния.

Эксперимент

Оценку задержек при работе с памятью выполним силами NUMA CPU and RAM Benchmarks. Для рас­ши­рен­но­го тес­та ла­тен­т­но­с­ти за­да­дим объем блока, используя в установках NCRB опцию про­из­воль­но­го выбора — режим Custom block size = 4000000h, шест­над­ца­те­рич­ное зна­че­ние его соответствует 64MB и определяет точку, в ок­рест­но­с­ти ко­то­рой ве­дет­ся на­блю­де­ние. Полный интервал тес­ти­ро­ва­ния составляет 0…80 MB. Заметим, в режиме по умол­ча­нию ис­сле­до­ва­ние ла­тент­но­с­ти DRAM вы­пол­ня­ет­ся в интервале 0…40MB.

Медианная латентность RIMM PC1066 составляет около 144.210 нсек

Медианная латентность RIMM PC1066 составляет около 144.210 нсек

Медианная латентность DDR SDRAM в режиме PC2100 DDR266 составляет около 146.353 нсек

Медианная латентность DDR SDRAM в режиме PC2100 DDR266 составляет около 146.353 нсек

О нелинейности

«Ступенька» устойчиво проявляющаяся на участке 40…48 MB при исследовании DDR SDRAM, требует от­дель­но­го ком­мен­та­рия. Напомним, адрес может быть представлен в виде нескольких битовых полей, не­су­щих раз­лич­ную смыс­ло­вую на­груз­ку. Основные из них — адрес строки, адрес столбца; биты, выбирающие ло­ги­че­ский банк вну­т­ри ми­кро­схем па­мя­ти; биты, выбирающие физический банк как группу микросхем па­мя­ти и т. д. Учитывая ска­зан­ное, уве­ли­че­ние объ­е­ма бло­ка, приводящее к включению новых адресных би­тов в опе­ра­ции с блоком, может приводить к труд­но пред­ска­зу­е­мым за­держ­кам.

Читатель, сумевший добраться до этого места, мог заметить, что на интервале 40…48 MB нет точек по оси аб­с­цисс, со­от­вет­ст­ву­ю­щих целой степени двойки, что не должно приводить к увеличению количества ад­рес­ных би­тов, участ­ву­ю­щих в опе­ра­ции на этом участке. Однако, следует принять во внимание, что виртуальное ад­рес­ное про­ст­ран­ст­во при­ло­же­ния ото­бра­жа­ет­ся на физическое адресное пространство платформы по­сред­ст­вом механизма транс­ля­ции стра­ниц. По­это­му, на­при­мер, непрерывный участок, адресуемый в NCRB, не обя­за­тель­но бу­дет та­ко­вым с точ­ки зре­ния ад­ре­са­ции фи­зи­че­ской па­мя­ти.

Подводя итоги

Достаточно близкие результаты для всех опытов различающиеся в пределах повторяемости, не позволяют на­зна­чить «по­бе­ди­те­ля». В рас­ши­рен­ном тесте латентности DDR и RDRAM фиксируем «боевую ни­чью». Вмес­те с тем, при­мем во вни­ма­ние, что решения на основе системной логики i865 увидели свет не­сколь­ко позд­нее, чем плат­фор­ма i850.

По этой причине остается за кадром программная модель доступа к регистрам контроллера памяти, которая у чип­се­та i865 ре­а­ли­зо­ва­на более продвинутым методом, с элементами механизма memory-mapped con­fi­gu­ra­tion, при ис­поль­зо­ва­нии ко­то­ро­го все кон­фи­гу­ра­ци­он­ные регистры управления таймингами DRAM на­хо­дят­ся в адресном пространстве памяти. Вместе с тем, фак­то­ром, прямо по­вы­ша­ю­щим про­из­во­ди­тель­ность DRAM это не является.

Начиная с i845, прецизионная аналоговая калибровка таймингов DRAM выполняется с участием про­це­дур BIOS. Про­г­рам­мная ини­ци­а­ли­за­ция подсистемы памяти требует огромного количества не­до­ку­мен­ти­ро­ван­ных ре­гист­ров, ко­то­рые прос­то не помещаются в 256-байтный стандартный регистровый блок.

На уровне допущений, которые более похожи на правду, в Ram­bus реализовано бескомпромиссное ре­ше­ние с ис­клю­чи­тель­но ап­па­рат­ной ре­а­ли­за­ци­ей, для которого не требуется так много регистров. Поэтому от­вет на во­прос «Кто бо­лее про­дви­ну­тый?» остается открытым.

Дело еще и в том, что для Ram­bus калибровка параметров сигнальных цепей требуется примерно один раз в 100 ms, и вы­пол­ня­ет­ся пе­ри­о­ди­че­ски в рантайме (т.е. в сеансе опе­ра­ци­он­ной системы). Вмешательство BIOS здесь вы­гля­дит крайне не­тех­но­ло­гич­но.

Для Ram­bus калибровка параметров сигнальных цепей требуется примерно один раз в 100 ms

С программной реализацией процедур инициализации, которые выполняются единожды и только при стар­те плат­формы, как это тре­бу­ет­ся для DDR SDRAM, вполне можно смириться. Приводит ли это к флуктуациям ла­тент­нос­ти, в то вре­мя, когда у RDRAM график отличается завидной стабильностью? Этот вопрос также ос­та­ет­ся без от­ве­та…

Можно только предполагать, что все контроллеры, начиная с DDR3 и до DDR5 включительно, также рас­по­ла­га­ют ап­па­рат­ной под­держ­кой не­ко­то­рых ини­ци­а­ли­за­ци­он­ных процедур. До­сто­вер­ные до­ку­мен­таль­ные под­твер­ж­де­ния на­йти слож­но, но огромное количество удовлетворенных в пользу Rambus судебных исков дает нам понять, куда дви­жет­ся на­уч­но-тех­ни­че­ский прогресс.

Комментарии

[1] Главный судья FTC по административным делам Стивен Дж. Макгуайр отклонил антимонопольные иски про­тив Ram­bus в 2006 го­ду, за­я­вив, что у индустрии памяти нет разумных альтернатив технологии Rambus, и, по дан­ным ком­па­нии, она знает о потенциальном объеме патентных прав Rambus.

[2] Режим «больших страниц» не используется, поскольку для тестовой платформы у нас RIMM-модулями PC1066 на­би­ра­ет­ся все­го 1 ГБ, что приводит к ограничениям в Windows при выделении памяти в режиме Large Pages, тем бо­лее, с увеличенным размером тестового блока. Можно считать, что это делает сценарий менее син­те­ти­че­ским, при­бли­жая его к ре­аль­ным приложениям, подавляющее большинство которых не использует Large Pages.

[3] Процедуры инициализации котроллера памяти в составе системной логики i845 нам удалось в свое время час­тич­но диз­ас­сем­бли­ро­вать хо­тя бы для то­го, чтобы убедиться — для кон­фи­гу­рирования используются ре­гист­ры, на­хо­дя­щи­е­ся в ад­рес­ном про­ст­ран­ст­ве памяти.