Часовой пояс: UTC + 3 часа




Форум закрыт Новая тема / Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней. Закрыто  Сообщений: 78 • Страница 4 из 4<  1  2  3  4
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Advanced member
Статус: Не в сети
Регистрация: 10.04.2003
Откуда: Москва
SweetLow писал(а):
... делитель для канала 0 системного таймера изучен? Или плавает подаваемая на него частота?


Прости, влезу. :)
Была классная игрушка Xonix2 типа Raptor, она отлично шла на XT и слишком
быстро на AT. ... дело в том, что в XT таймер работал от 4х MHz, а в AT больше.
И там и там в таймере прописывалось максимально-возможное число 65535 ....
посему в XT скорость была меньше, а адаптация под AT не проходила .... :(
(к слову - проблему обошел)
Я к чему ---- в таймере должно лежать '-1', если там что-то другое - .... :x


Цитата:
есть еще один программно доступный аппаратный таймер (на достаточно новых машинах) - Waitable Timer (SetWaitableTimer).


Ты уверен, что он аппаратный?

расширю кругозор - есть TSC (через RDTSC) и ... склероз ... таймер через MSR,
'рядом' с PerformanceMonitor'ом, могу найти точно. Его использовать не удобно,
нужно лезть в MSR (с 'вытекающими') да и считает он от FSB все равно. :)



Партнер
 

Member
Статус: Не в сети
Регистрация: 14.04.2003
Откуда: Минск, Беларусь
serj_
Цитата:
Я к чему ---- в таймере должно лежать '-1', если там что-то другое -
DOS и 9x. Под NT там значение соответсвующее тику раз в 10 миллисекунд (а не в 55).
Цитата:
Ты уверен, что он аппаратный?
Да, он описан в спецификации ACPI(Power Management Timer). Разрешение у него порядка 3.579545 мегагерц. Хотя могу и заблуждаться насчет реализации SetWaitableTimer. Стопроцентной уверенности, скажем так, у меня нет. Возможно обычный RTC используется :(
Цитата:
таймер через MSR
Не знаком (в смысле не программировал ни разу).
Цитата:
дело в том, что в XT таймер работал от 4х MHz, а в AT больше.

Ты заблуждаешься. На системный таймер со времен оригинальных PC подается OSC(14318160Гц)/12 (иначе о каком точном времени может идти речь?). Игрули шли быстро оттого, что жестко закладывались на 8088 на частоте OSC/3. :) Потом приходилось тормозилки писать.

_________________
"Помогите, 20 беспроводных мышей общаются сквозь стены!"
--- SweetLow ---


 

Advanced member
Статус: Не в сети
Регистрация: 10.04.2003
Откуда: Москва
SweetLow писал(а):
Под NT там значение соответсвующее тику раз в 10 миллисекунд (а не в 55).


да, sorry! ... :(

Цитата:
он описан в спецификации ACPI(Power Management Timer), более того, этот таймер может поднимать машину из глубоких режимов сна ...


... я о нем и говорил, только ты вызовы делаешь через ACPI, а я по-старинке,
через 'задний проход' :)
Впрочем ... проблемный этот таймер:
Rev B of AMD Athlon processors have an issue with the APIC Timer not functioning
correctly during low power mode. As described in the Power Management Section of
the processor Data Sheet, when the processor enters the low power mode, the
processor clock slows down to 1/8 its full speed. However, the local APIC timer will
also slow down to 1/8 the speed that it should be.
Т.е. при включении hlt-mode будет показывать чер-те-что.

Цитата:
таймер через MSR - Не знаком (в смысле не программировал ни разу).

мы говорим об одном и том-же. :)

Цитата:
Ты заблуждаешься. На системный таймер со времен оригинальных PC подается OSC(14318160Гц)/12....


ну вот, а на (моей) XT кварц был на 12.**MHz, да и на оригинальных 8086
было аналогично, в BIOS'е прописывалось число меньшее 65535 - это в AT
жестко устаканилось в максимум. (чесс слово, век воли не видать!) :)


 

Junior
Статус: Не в сети
Регистрация: 06.08.2003
Откуда: Харьков
Задрали статьи про пляшущие частоты :x :x , что делать? :?


 

Member
Статус: Не в сети
Регистрация: 18.11.2002
Откуда: г-герой Москва
serj_
вот тоже посмотри чуть выше
VRoman пишет:
Цитата:
У меня получается примерно от 2100 до 2400.

я его данные не проверял конечно, но видел еще данные где частота проца плавает на СОТНИ
мегагерц
теперь что ты пишешь:
Цитата:
1) CPU clock = const.
2) есть проблемы с системным тиком.

Это на скоко же должно врать системное время, чтоб частоты проца "менялась" на 300MHZ? :)
Несуразица какая-то выходит

_________________
You are planned and you are damned in this brave new world


 

a u mena vret ot 2300 do 2900 :shock:


 

arny99 писал(а):
serj_
но ведь тут мы обсуждаем проблемму "ПЛАВАЮЩИХ частот"
а не проблемму "занижения частоты шины на nforce2"
простите, но не кажется что это немного разные вещи?
а ЕГО проблемму я тоже наблюдал на своей матери-и лечилась она элементарно
изменением FSB на 1MHZ
кстати мои данные противоречат его данным-допустим ставим 200x10, если проц встал на реальные 1900( у него 1704)
то никакие перезагрузки(без изменнений БИОС) не изменяли частоту проца-1900 строго


Внимательнее читать надо ;)

Цитирую:

[...]
В отличие от вышеупомянутых проблем у меня кроме биения частот обнаружилось еще и падение средней частоты аж на 250Mhz! Кроме того, упавшая частота еще и гуляла по показаниям thg_clock в пределах +-20Mhz.. именно это падение позволило мне докопаться до возможной причины "нестабильности частот".
[...]

Если небольшие скачки поймать сложно, то такой здоровенный сдвиг
с аналогичными симптомами оказался очень удобным для сравнения
показаний тестов :) еще раз - внимательнее просмотрите статью плз,
это моя первая статья, и я мог написать непонятным языком - опыта
в этом нет:(


 

Member
Статус: Не в сети
Регистрация: 20.06.2003
Откуда: Ижевск
arny99 писал(а):
serj_
да писал-счас не пишу, простые конечно
человек постарался потратил время-это да
но ведь тут мы обсуждаем проблемму "ПЛАВАЮЩИХ частот"
а не проблемму "занижения частоты шины на nforce2"
простите, но не кажется что это немного разные вещи?

"Занижение частоты" с биением можно также рассматривать
как скачки в диапазоне от -300 до -200Mhz от реальной частоты ;)
Кто сказал что "скакать" должно обязательно симметрично относительно несущей частоты?

arny99 писал(а):
serj_
а ЕГО проблемму я тоже наблюдал на своей матери-и лечилась она элементарно изменением FSB на 1MHZ

Дык да. Но у меня еще и плясало оно от 1740 до 1780Mhz по тестам:(

arny99 писал(а):
serj_
кстати мои данные противоречат его данным-допустим ставим 200x10, если проц встал на реальные 1900( у него 1704)
то никакие перезагрузки(без изменнений БИОС) не изменяли частоту проца-1900 строго

В ходе экспериментов я установил что глюк вылазит и сбрасывается только при выключении компа, ребут не помогает. Возможно при пересохранении
биоса производится какой-то сброс всех настроек, и поэтому оно зачастую
помогает, и установки тут непричем... я уже грешил на ВСЕ какие только
можно :)))))


 

Member
Статус: Не в сети
Регистрация: 20.06.2003
Откуда: Ижевск
SweetLow писал(а):
serj_
Цитата:
По самой статье - классная, есть идея - ценно!
Факт.

Автору - так собственно делитель для канала 0 системного таймера изучен? Или плавает подаваемая на него частота? Кстати, помимо RTC/CMOS и системного таймера есть еще один программно доступный аппаратный таймер (на достаточно новых машинах) - Waitable Timer (SetWaitableTimer).


Я пока не пойму, оттуда можно вообще делитель считать или нет... у меня
считывается ноль (нулевой канал) :( Установить делитель через WinIO
тоже не получается, надо в драйвер ядра код вставлять, а там отлаживать сложно :( Разве что под дос тест написать... а может есть какие-нить древние, готовые тесты?

Насчет делителя... в каких ОС проявляется этот глюк? Вроде ведь не только
в WinXP, но и в Win9x? Они ведь каждая по-своему программируют таймер,
а значит если глюк дает о себе знать под каким-нить линухом в том числе,
то эта проблема скорее тактования самого таймера.
Waitable Timer это не RDTSC?

ЗЫЖ спасибо всем за отзывы :)


 

Member
Статус: Не в сети
Регистрация: 14.04.2003
Откуда: Минск, Беларусь
To Serg:
Неее... Ты говоришь насчет APIC таймера, я - насчет ACPI таймера. Они разные. Я вот теперь не уверен что Waitable Timer пользует ACPI таймер :(, но зато только что проверил - QueryPerformanceFrequency/QueryPerformanceCounter пользует именно ACPI таймер под 2000 и XP (под 98 - обычный системный).

_________________
"Помогите, 20 беспроводных мышей общаются сквозь стены!"
--- SweetLow ---


 

Advanced member
Статус: Не в сети
Регистрация: 10.04.2003
Откуда: Москва
К автору статьи nForce2 – а пляшут ли частоты?:
Возьму на себя себя смелость сделать некоторые предложения, надеюсь не будет это выглядеть уж очень нахально. :)
идея явно не доведена до конца, не выявлено главное - кто или что виновато и это не подтверждено инструментально.
Что (наверно?) стоит измерить:
- частоту системного таймера и его делитель.
- запрашивать интервалы времени у OS и проверять их коррктность
- запрашивать прошедшее время у OS и --.--.--.--.--.--.--.--.--.--.--.--
- делать это _постоянно_ с выводом результатов в одном окне , выводить 'realtime'
Таску задачи обязательно поставить приоретет 'ниже обычного' но не IDLE!
( в крайнем случае высокий IDLE ) - это блокирует возможные проблемы с
halt и StopGr. (зачем - см. всю ветку, я подробно об'яснял).
При ненужности времени НЕ ОТДАВАТЬ его OS, ставить пустой цикл.
- выводить данные по другим средствам измерения времени. (ACPI timer, например)
- базовое(образцовое) измерение времени делать через RDTSC - частота процессора не может
быть изменена и ее можно брать за точку отсчета.
p.s.
если возможно, хорошо бы добавить кнопку измерения производительности процессора.
Тут не важна ни точность ни 'валидность' теста, хоть считать PI - важна изменяемость
его скорости от времени. Почему именно кнопка - она же грузит процессор, а программа должна иметь возможность быть запущена _надолго_ и не 'вредить'. :)


 

SweetLow писал(а):
To Serg:
Неее... Ты говоришь насчет APIC таймера, я - насчет ACPI таймера. Они разные. Я вот теперь не уверен что Waitable Timer пользует ACPI таймер :(, но зато только что проверил - QueryPerformanceFrequency/QueryPerformanceCounter пользует именно ACPI таймер под 2000 и XP (под 98 - обычный системный).


Ты прав! Еще один независимый таймер :) Рулез!
Выставил сейчас "нестабильную частоту", и решил попробовать
измерить секунды по этому таймеру - замеры пляшут от 985-990ms :)
Естественно замер частоты по RDTSC тоже выдает пляску.
Но если вводить реалтаймовую коррекцию замеров по ЭТОМУ ТАЙМЕРУ,
то мегагерцы измеряются правильно!!!
написал второй тест, первая строка показывает сколько реальных миллисекунд в виндовой секунде, вторая - коряво измеренная пляшущая частота, третья строка - вторая, откорректированная по первой ;))))))

Тестируйте на пляшущих частотах вобщем, интересно что получится :)

http://awlhp.narod.ru/timertest1.rar


 

точнее:

http://awlhp.narod.ru/Timertest1.rar

почему-то надо с большой T было указывать :))


 

Member
Статус: Не в сети
Регистрация: 20.06.2003
Откуда: Ижевск
serj_ писал(а):
К автору статьи nForce2 – а пляшут ли частоты?:
Возьму на себя себя смелость сделать некоторые предложения, надеюсь не будет это выглядеть уж очень нахально. :)
идея явно не доведена до конца, не выявлено главное - кто или что виновато и это не подтверждено инструментально.

Попробуем довести.. может статью вторую написать придется :)

serj_ писал(а):
Что (наверно?) стоит измерить:
- частоту системного таймера и его делитель.

А как это сделать? У меня что-то не получается... более того,
таймер под досом не хочет перепрограммироваться:(

mov al, 36h
out 43h, al
mov al, 4
out 40h, al
mov al, 0A9h
out 40h, al

после этого так и остается 18герц...

serj_ писал(а):
- запрашивать интервалы времени у OS и проверять их коррктность
- запрашивать прошедшее время у OS и --.--.--.--.--.--.--.--.--.--.--.--
- делать это _постоянно_ с выводом результатов в одном окне , выводить 'realtime'
Таску задачи обязательно поставить приоретет 'ниже обычного' но не IDLE!
( в крайнем случае высокий IDLE ) - это блокирует возможные проблемы с
halt и StopGr. (зачем - см. всю ветку, я подробно об'яснял).
При ненужности времени НЕ ОТДАВАТЬ его OS, ставить пустой цикл.
- выводить данные по другим средствам измерения времени. (ACPI timer, например)
- базовое(образцовое) измерение времени делать через RDTSC - частота
процессора не может
быть изменена и ее можно брать за точку отсчета.

А стоит-ли доверять RDTSC? На него ведь Bus Disconnect в самом деле
теоретически может влиять.. лучше всего по-моему привязаться к показаниям
какого-нибудь всеми забытого таймера - но вот какого именно....
Приоритеты крутил (для главного thread) - толку мало, но интерфейс
начинает ЖУТКО тормозить, аж в кнопку Stop не попасть мышкой:)

serj_ писал(а):
p.s.
если возможно, хорошо бы добавить кнопку измерения производительности процессора.
Тут не важна ни точность ни 'валидность' теста, хоть считать PI - важна изменяемость
его скорости от времени. Почему именно кнопка - она же грузит процессор, а программа должна иметь возможность быть запущена _надолго_ и не 'вредить'. :)

Хмм... попробую что-нибудь эдакое сваять.


 

Member
Статус: Не в сети
Регистрация: 20.06.2003
Откуда: Ижевск
Сижу вот и думаю - писать новую статью чтоль...

наткнулся на сайте майкрософт на описание работы всех таймеров,
они пишут там что таймер APIC очень глюкавый, и часто встречаются
кривые микросхемы оного. Решил проверить.

Вырубаю APIC, меняю ядро WInXP.. загружаюсь в заведомо
нестабильном режиме - 220x8, в нем у меня всегда было "биение".
thg_clock показывает стабильную частоту. Запускаю свой тест - винда
сошла с ума :) начались дикие тормоза при прорисовке и все такое...
заглядываю в часы винды - еле движутся. Запускаю 3DMark2001 - все
как в замедленной сьемке, но 800fps в первом тесте! :))))
Полез в свою прогу и нашел забытый фрагмент попытки перепрограммирования
таймера :) он при смене ядра и отключении APIC, собака, начал работать.
Вырезаю фрагмент - частоты абсолютно стабильны.
Что интересно - в досе я таймер перепрограммировать до этого не мог,
прерывание видать вызывалось APIC, который надо программировать
иначе... сейчас я думаю все будет нормально. Можно наверное найти
доку на программирование APIC, и написать тест для его таймера...

Короче, попробуйте протестировать с вырубленным в биосе APIC под
Win98, и с вырубленным APIC сменив ядро на ACPI в WinXP/2k (halacpi.dll).

для тех кто не знает как менять ядро - выдерите из дистрибута
файл "halacpi.dl_", распакуйте его в каталог WINDOWS/SYSTEM32
при помощи extract - extract halacpi.dl_ halacpi.dll, и пропишите в
скрытый файл boot.ini корневого каталога следующее:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional - PIC+ACPI" /fastdetect /hal=halacpi.dll

строчки перенеслись - надо перед вставкой подредактировать

Обновленный тест: http://awlhp.narod.ru/timertest.rar


 

awl писал(а):
Сижу вот и думаю - писать новую статью чтоль...

наткнулся на сайте майкрософт на описание работы всех таймеров,
они пишут там что таймер APIC очень глюкавый, и часто встречаются
кривые микросхемы оного. Решил проверить.

Вырубаю APIC, меняю ядро WInXP.. загружаюсь в заведомо
нестабильном режиме - 220x8, в нем у меня всегда было "биение".
thg_clock показывает стабильную частоту. Запускаю свой тест - винда
сошла с ума :) начались дикие тормоза при прорисовке и все такое...
заглядываю в часы винды - еле движутся. Запускаю 3DMark2001 - все
как в замедленной сьемке, но 800fps в первом тесте! :))))
Полез в свою прогу и нашел забытый фрагмент попытки перепрограммирования
таймера :) он при смене ядра и отключении APIC, собака, начал работать.
Вырезаю фрагмент - частоты абсолютно стабильны.
Что интересно - в досе я таймер перепрограммировать до этого не мог,
прерывание видать вызывалось APIC, который надо программировать
иначе... сейчас я думаю все будет нормально. Можно наверное найти
доку на программирование APIC, и написать тест для его таймера...

Короче, попробуйте протестировать с вырубленным в биосе APIC под
Win98, и с вырубленным APIC сменив ядро на ACPI в WinXP/2k (halacpi.dll).

для тех кто не знает как менять ядро - выдерите из дистрибута
файл "halacpi.dl_", распакуйте его в каталог WINDOWS/SYSTEM32
при помощи extract - extract halacpi.dl_ halacpi.dll, и пропишите в
скрытый файл boot.ini корневого каталога следующее:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional - PIC+ACPI" /fastdetect /hal=halacpi.dll

строчки перенеслись - надо перед вставкой подредактировать

Обновленный тест: http://awlhp.narod.ru/timertest.rar


Браво! Просто браво!

Прописал второе ядро, перегрузился, выставил заведомо "гулящую" частоту.. Машина попросила рестарт (ну другое ядро, можно понять)..
Но перед рестартом запустил Toms Hardware Clock - плясок НЕТ!!!!
Перегрузился, запустил Toms Hardware Clock, CPU-Z 1.2, CPUmon - пляско НЕТ!!!

Одна небольшая подробность - она же совет...

У меня Windows XP Eng SP1a.
Файл о котором шла речь (halacpi.dll), можно найти в папке Windows в папке ServicePackFiles. Его надо скопировать в папку system32, поправить boot.ini как описано выше - и можно работать.
Это способ правильнее, так как если у вас установлени сервис пак, то ядро системы тоже будет с сервис паком.

Можно еще один спопоб - заходите в Device Manager, открываете Computer, и видите ядро - как правило это ACPI Computer. Щелкаете правой кнопкой мыши,выбираете Update Drivers. Там выбираете Install from the list, затем Don't search, затем видите списко ядер. Выключаете галочку Show Compatible hardware, видите список всех ядер системы.

Выбираете Advanced Configuration and Power Interface (ACPI) PC.

Закрываете все ОК, и рестартуете машину.

ВНИМАНИЕ! Описанная процедура заменяет ваше ядро системы! Машина может стать неработоспособной! НАСТОЯТЕЛЬНО СОВЕТУЮ СНАЧАЛА ПОПРОБОВАТЬ ЯДРО ЧЕРЕЗ BOOT.INI.

Как это сделать описано выше, в посте awl.

Похоже на этот раз тему действительно закрыли.. :)


 

Member
Статус: Не в сети
Регистрация: 01.04.2003
Откуда: Столица
Млин, забыл залогинится... Потому гостем писал..


 

Member
Статус: Не в сети
Регистрация: 01.04.2003
Откуда: Столица
Вдогонку темы...

После использования ядра Advanced Configuration and Power Interface (ACPI) PC, система не захотела возвращатся на старое ядро.. Понравилось видно..

А если серьезно - похоже у Майкрософт открылся очередной баг, а именно: неправильный выбор ядра при установке WinXP на систему построенную на nForce2.


Показать сообщения за:  Поле сортировки  
Форум закрыт Новая тема / Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней. Закрыто  Сообщений: 78 • Страница 4 из 4<  1  2  3  4
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan