Я прилепил свой код определения проца к modul.tmp от BIOS патчера
- для определения частоты процессора
Не знаю чем сам код в modul.tmp пользуется для определения частоты CPU - не совсем понятно - если кто знает, подскажите, плз.
Поэтому написал в этом коде свою ф-ию определения частоты (как обычно - разность значений по RDTSC делим на разность по системному таймеру (40h) и умножаем на константу).
Проблема в том, что таймер, похоже зависит от частоты системной шины, то есть на данном чипсете - на частотах 100/133 Мгц - частота проца определяется нормально, а если выше - то есть нештатная FSB (133->166 Мгц) - частота процессора, которую возвращает моя ф-ия - не меняется.
Насколько я понял, таймер начинает считать быстрее.
Подскажите, как в таком случае сделать точный (более-менее) отсчет времени, ведь иначе частоту проца не рассчитать, или где в момент выполнения modul.tmp раздобыть эту частоту. Ведь сам этот модуль частоту указывает для процессоров.
ЗЫ: Забыл сказать. Та же моя функция, когда выполняеться в ДОС - считает нормально. А в БИОС - только на 100/133 Мгц. Может, какой делитель где надо поставить?
axelf
Если Вам действительно интересно, КАК меряется частота проца, то поищите в форуме линк на исходный код БИОСа... Архив весит всего 6МБ, но представляет довольно большую ценность.
PS: добавлю, что RDTSC БИОСом для измерения частоты как может использоваться, так может и не использоваться: есть альтернативные пути...
Аццкий ромбовод {:€
Я пока не волшебник - я только учусь! :-P
Отправить комментарий