Проблема такова: есть ряд серверных плат на чипсетах
5000X/5000P/5000V под процессоры Intel Xeon 5000/5100/5300 и память
FB-DIMM.
У меня, в частности, плата Tyan Tempset 5000XT, два процессора Xeon 5320
1.86GHz/1066FSB ( 4-ядерные), 8x1GB FB-DIMM 667.
Для процессоров с шиной 1066MHz есть BSEL -мод, переводящий их в 1333MHz
аналог.
Кроме того, есть возможность програмного разгона. Итого, мои 1.86/1066
разогнаны до ~2.7/1540.
Дальше разгонять не удается, причем причина скорее всего в памяти. Известны
случаи разгона до частоты шины ~1600FSB, но не намного больше.Возможно есть
ограничение и в FSB, но это невозможно пока установить.
Чипсет может работать с делителем 1:1 и 5:4. Но ни на одной плате из всех
существующих нет возможности установить этот коэфициент, и практически нет
никаких возможностей менять настройки памяти -никаких таймингов, ничего.
Я пробовал модифицировать SPD у модулей, чтобы перевести их в 533 и заставить
BIOS выставить делитель 5:4. При этом устанавливаются тайминги 4-4-4
автоматически, так что я еще модифицировал SPD чтобы установить нужные
тайминги 5-5-5. На самом деле, таймингов целая куча, и я практически все их
перепроверил.
В сухом остатке, толку нет. На частоте шины 1600MHz машина виснет при
нагрузке. При этом память работает на частоте DDR2-640MHz c делителем 5:4. .
При стартовой частоте шины 1066, без BSEL -мода (для 1066->1333), предел
1320FSB (660 память), т.е. почти такой же по памяти.
В режиме 1:1 c BSEL предел в районе ~1540 FSB (770 память)
Для тех кто не знаком с FB-DIMM, кратко -это обычные чипы DDR2 + чип-буфер -AMB
(Advanced Memory Buffer).
Все взаимодействие с чипсетом идет через AMB. AMB это весьма сложное
устройство с кучей регистров, которые надо настраивать при инициализации.
После инициализации, практически ничего нельзя поменять. Все существенные
тайминги содержатся именно в AMB, а не в чипсете.
Код инициализации (MRC -memory reference code) в BIOS всех плат один и тот же,
и распространяется самой Intel.
Я довольно детально разобрался в регистрах MCH и AMB. К сожалению, даташита
на именно мой AMB (IDT) нет, так что я пользовался даташитом от Intel.
Чтобы выставить делитель 5:4 , нужно сделать 2 вещи:
1) Прописать в MCH несколько регистров для 5:4 gear ratio. В силу изменения
вступают только после перезагрузки
2) Кроме того, прописать делитель в специальной микросхеме-буфере на плате,
которая подает частоту на память, получая ее из частоты FSB. Адрес этой
микросхемы я знаю и как ее прграммировать тоже.
Но "на лету" это не работает. Если просто задать делитель в буфере, все сразу
зависает по понятным причинам. Изменения в MCH вступают в силу только после
перезагрузки. На самом деле не вступают, поскольку BIOS все назад возвращает
:(
Эту операцию можно сделать только на вполне определенном этапе инициализации
чипсета и памяти. А для этого нужно модифицировать BIOS.
Почему не сработал мой трюк с SPD (рабочая гипотеза, но весьма
правдоподобная) : дело в том, что ряд важных таймингов устанавливаются при
инициализации BIOS-ом соответственно частоте памяти, а частота у нас 533 при
делителе 5:4. Эти тайминги невозможно контроллировать через SPD.
Поэтому предел разгона примерно такой-же, как если стартовать с шины 1066(533
память) при делителе 1:1.
Добавлено спустя 2 минуты 52 секунды:
From apple_rom:
"Биос феникс, в принципе, возможно подправить. Однако, я так понимаю, "стандартные" утилиты могут его не принять из-за относительной новизны (платы-биоса). Если что-либо пробовалось - просьба указать.
Касаемо вопроса - правильней будет, видимо, вносить свои изменения в бутблоке - смотрелся ли оный? Есть ли готовая последовательность инициализации или предполагается изменение имеющейся?
"
Жаль что BIOS не понимает процессоры с шиной 1600FSB, это решило бы проблему. Я бы просто сделал BSEL мод 1066->1600, при этом BIOS бы выставил делитель 5:4 для памяти FB-DIMM 667. Машина зрузится на частоте CPU 2800MHZ /FSB 1600MHZ/ Mem 640MHZ, но виснет в linpack-hpl.
Кстати, я не проверял лично работает-ли мод для 1600FSB.
Если удастся разобратся с форматом BIOS, может там уже есть поддержка для 1600 -в последней версии?
Ходят слухи что intel может выпустить Xeon Clovertown на 1600FSB для противодействия AMD Barcelona. Может уже существующие платы поддерживают эту частоту?
Нужно обязательно выяснить, кто виноват. Слей прогу для теста памяти и отдельно - проца. Лучше сначала память прогони, т.к. нагрузка минимальна. Если не она - то вина связки - чипсет-проц. Напиши ещё разок напругу юзаемую (и дефолтную, дабы всё в куче).Жду дампа. Куда угодно приаттачь или линк выложи, буду из курить. Может что интересное нарою. Подумай о BSEL.
1) FBDSBCFGNXT: FBD SB Link Electrical Configuration
Function 1, offset 54
2) FBDNBCFGNXT: FBD NB Link Electrical Configuration
Function 1, offset 55
3) LINKPARNXT: FBD Link Frequency
Function 1, offset 56
содержат критически важные параметры. Думаю что, если бы была возможность задавать их значения, можно было-бы серьезно продвинутся с разгоном памяти.
У меня, кстати, они считываются/записываются только как dw по адресу 0x54.
./read_dw_AMB 0 0 1 0x54
Для 533:
0x00 0x01 0x0b 0x1b
Для 667:
0x00 0x02 0x0b 0x1b
Byte 0x56: 0x01 =533, 0x02=667, 0x03=800. Сам AMB поддерживает работу на частоте 800 в режиме тестирования!
Регистры 0x55 и 0x56 тоже можно подправить для того чтобы улучшить
отношение сигнал-шум (Параметры DE-EMPHASISE и DRIVE CURRENT).
Это приведет к увеличению среднего протекающего тока и большему тепловыделению, так что понадобится улучшенное охлаждение для AMB.
Простейший вариант - инициализировать их на определенном этапе значениями из EEPROM. Все это, конечно, в том случае если бы удалось
продвинутся с биосом... Здесь только остается надеятся на гуру.
Никак :).[/off]
Сам Intel уже черт знает сколько лет убрал download для такого legacy.