Forth http://www.fforum.winglion.ru/ |
|
Замеры времени http://www.fforum.winglion.ru/viewtopic.php?f=25&t=2680 |
Страница 1 из 2 |
Автор: | mOleg [ Ср ноя 10, 2010 17:39 ] |
Заголовок сообщения: | Замеры времени |
такая вот либа появилась source file: timer.fts |
Автор: | dynamic-wind [ Чт ноя 11, 2010 02:13 ] |
Заголовок сообщения: | Re: Замеры времени |
RDTSC??? О боже! А если частота проца меняется динамически, как там будет со временем? |
Автор: | mOleg [ Чт ноя 11, 2010 17:08 ] |
Заголовок сообщения: | Re: Замеры времени |
dynamic-wind писал(а): RDTSC??? О боже! А если частота проца меняется динамически, как там будет со временем? Есть такое дело. Только вы можете предложить механизм, позволяющий ловить короткие таймауты (длительностьюя в несколько сотен-тысяч тактов процессора?) RDTC хорош тем, что для получения информации не надо обращаться к АПИ, которое довольно медлительно. Пока что предлагается периодически калибровать счетчик. |
Автор: | _Harry [ Чт ноя 11, 2010 17:13 ] |
Заголовок сообщения: | Re: Замеры времени |
dynamic-wind писал(а): А если частота проца меняется динамически, как там будет со временем? А часто бывает что время и не нужно, а нужно знать сколько тиков например при сравнении производительности разных алгоритмов. |
Автор: | dynamic-wind [ Чт ноя 11, 2010 21:46 ] |
Заголовок сообщения: | Re: Замеры времени |
mOleg писал(а): dynamic-wind писал(а): RDTSC??? О боже! А если частота проца меняется динамически, как там будет со временем? Есть такое дело. Только вы можете предложить механизм, позволяющий ловить короткие таймауты (длительностьюя в несколько сотен-тысяч тактов процессора?) Не могу, с АПИ действительно дела плохи. Неужели нужно выдерживать очень малый интервал при общении с железом? |
Автор: | WingLion [ Пт ноя 12, 2010 05:39 ] |
Заголовок сообщения: | Re: Замеры времени |
dynamic-wind писал(а): Неужели нужно выдерживать очень малый интервал при общении с железом? Железо разное бывает. Дискету надо ждать единицы секунд, винчестер десятки миллисекунд, а бывают случаи, когда обращения должны быть рассчитаны с точностью до микросекунд (программирование flash-ПЗУ, например), |
Автор: | Hishnik [ Пт ноя 12, 2010 16:31 ] |
Заголовок сообщения: | Re: Замеры времени |
Эти вопросы решаются кардинально, разработкой соответствующего интерфейса датчика (или самого датчика). К чему насиловать компьютер, который при всем желании не прыгнет выше головы? PC - не реалтаймовая платформа. |
Автор: | vikt [ Пт ноя 12, 2010 17:43 ] |
Заголовок сообщения: | Re: Замеры времени |
Извините, что вмешиваюсь. В свое время использовал прерывание int 70 часов реального времени. Настроено по умолчанию на 1024 прерываний в секунду, но есть делители. Включается и програмируется елементарно. была одна тонкость, не указанная тогда в докуметации, в конце обработки прерывания, надо обязательно прочитать регистр статуса в smos, иначе следущее прерывание не произойдет. |
Автор: | dynamic-wind [ Пт ноя 12, 2010 17:59 ] |
Заголовок сообщения: | Re: Замеры времени |
vikt писал(а): Извините, что вмешиваюсь. В свое время использовал прерывание int 70 часов реального времени. Харошие тогда были времена! А сейчас юниксёвый nanosleep имеет дискрет времени 1/1000 сек. Хотя есть и реалтаймовые расширения. Но не везде. |
Автор: | vikt [ Пт ноя 12, 2010 18:09 ] |
Заголовок сообщения: | Re: Замеры времени |
В смос есть регистр, в котором находится делитель частоты, ее можно разогнать до очень больших значений, гораздо больших 1000. |
Автор: | Hishnik [ Пт ноя 12, 2010 22:52 ] |
Заголовок сообщения: | Re: Замеры времени |
vikt писал(а): В свое время использовал прерывание int 70 часов реального времени. Настроено по умолчанию на 1024 прерываний в секунду, но есть делители. Является ли этот таймер официальным пользовательским ресурсом, который обязан поддерживаться операционными системами? |
Автор: | ArtemKAD [ Пт ноя 12, 2010 23:29 ] |
Заголовок сообщения: | Re: Замеры времени |
Хищник писал(а): vikt писал(а): В свое время использовал прерывание int 70 часов реального времени. Настроено по умолчанию на 1024 прерываний в секунду, но есть делители. Является ли этот таймер официальным пользовательским ресурсом, который обязан поддерживаться операционными системами? До XP поддерживался в DOS сессии корректно. С XP начал "кто в лес кто по дрова" . Чаще всего в сторону увеличения скорости того, что клацает. После некоторого бодания с ним в одном проекте под программатор выделили отдельную машину с совсем честным DOS-ом. |
Автор: | Hishnik [ Пт ноя 12, 2010 23:47 ] |
Заголовок сообщения: | Re: Замеры времени |
ArtemKAD писал(а): До XP поддерживался в DOS сессии корректно. С XP начал "кто в лес кто по дрова" . Чаще всего в сторону увеличения скорости того, что клацает. После некоторого бодания с ним в одном проекте под программатор выделили отдельную машину с совсем честным DOS-ом. Вот-вот. В итоге устройство начинает работать с конкретно выделенным для него компьютером, хотя можно было сопоставимые усилия потратить на усовершенствование датчика. На сегодняшний день МК, опрашивающий датчик с соблюдением всех временных интервалов, ведущий журнал, и при необходимости выдающий результаты по запросу PC через переходник USB-UART, является одним из простейших вариантов. |
Автор: | ArtemKAD [ Пт ноя 12, 2010 23:53 ] |
Заголовок сообщения: | Re: Замеры времени |
Хищник писал(а): Вот-вот. В итоге устройство начинает работать с конкретно выделенным для него компьютером, хотя можно было сопоставимые усилия потратить на усовершенствование датчика. На сегодняшний день МК, опрашивающий датчик с соблюдением всех временных интервалов, ведущий журнал, и при необходимости выдающий результаты по запросу PC через переходник USB-UART, является одним из простейших вариантов. Да, но это нужно еще сделать железо и написать две программы. Я лучше вместо этой работы напишу что-то более полезное... ЗЫ. Это был программатор KeeLoq-микросхем который должен вести счетчик (не повторять сериальник) и при этом что-то туда еще добавлять. Программа была написана и работает с 1998 и до сих пор. Программирование ведут полные юзеры . |
Автор: | vikt [ Пт ноя 12, 2010 23:56 ] |
Заголовок сообщения: | Re: Замеры времени |
Хищник писал(а): vikt писал(а): В свое время использовал прерывание int 70 часов реального времени. Настроено по умолчанию на 1024 прерываний в секунду, но есть делители. Является ли этот таймер официальным пользовательским ресурсом, который обязан поддерживаться операционными системами? вероятнее всего да, не знаю. int 70 так же используется будильником реального времени, и возможно так же вызывается в случае разрядки батареи смос. В регистре статуса как раз указан источник прерывания. В дос работает, в linux вероятно можно. Если есть низкоуровневые функции api для установке векторов прерываний, тк в защищенном режиме это проблематично. Наверняка можно написать драйвер устройства. |
Страница 1 из 2 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |