Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2009, 10:55   #1
lesega
Новичок
Джуниор
 
Регистрация: 21.05.2009
Сообщений: 1
Вопрос Определение тактовой частоты процессора

Подскажите пожалуйста, где можно найти программу на Турбо-Паскале или саму программу.
Используя функции системного таймера ЭВМ определить быстродействие и производительность ЦП ПЭВМ для тестируемой инструкции процессора. На основании данных программы определить тактовую частоту процессора.
lesega вне форума Ответить с цитированием
Старый 21.05.2009, 13:44   #2
Ivan_32
somewhere else
Участник клуба
 
Аватар для Ivan_32
 
Регистрация: 17.07.2008
Сообщений: 1,409
По умолчанию

Это очень просто, но нужно быть в защищенном режиме что бы это сделать(а может я ошибаюсь?).
Понадобится вам 2 вещи:
Таймер и инструкция RDTSC.
TSC=это счетчик тактов, каждый такт инкрементирует его. Т.е. допустим ваш процессор работает на частоте 3.4 Ггц, значит он совершает 3 400 000 000 тактов в секунду. Т.е. счетчик этот инкрементируется именно на это значение. Инструкция RDTSC считывает текущее значение этого счетчика в пару регистров EDX:EAX - то есть ту самую пару в которую обычно используется инструкцией MUL(умножение) и DIV(деление). Вот псевдокод:

tscHi dd ?
tscLo dd ?

RDTSC
MOV [tscHi],EDX
MOV [tscLo],EAX
invoke Wait(1000) ; ждем одну секунду
SUB EDX,[tscHi]
SUB EAX,[tscLo]
;Все, в EDX:EAX находится текущая частота процессора.

В случае с частотами процессора, меньше чем 4 ггц можно просто выводить значение EAX. В остальных случаях стоит воспользоваться функциями из MSVCRT.DLL - тамошние printf и прочие умею выводить long long если не ошибаюсь. Но, особой точности вы так не достигнете.
Для точности лучше выполнять вычисления с помощью FPU.
"Тяжело в учении, легко в бою" - А.В. Суворов
Ivan_32 вне форума Ответить с цитированием
Старый 21.05.2009, 13:50   #3
OCTAGRAM
Oldschool geek
Форумчанин
 
Аватар для OCTAGRAM
 
Регистрация: 09.03.2009
Сообщений: 611
По умолчанию

Цитата:
Сообщение от Ivan_32 Посмотреть сообщение
MSVCRT.DLL
Это же Turbo Pascal... какие там dll?


У Klaus Hartnegg естъ страничка, на которой собраны разные альтернативные реализации Delay. Среди них наверняка есть с исходником 32битная версия.
If you want to get to the top, you have to start at the bottom

http://pascal.net.ru/

Последний раз редактировалось OCTAGRAM; 21.05.2009 в 13:56.
OCTAGRAM вне форума Ответить с цитированием
Старый 21.05.2009, 14:13   #4
Инспектор ГУЛ
Пользователь
 
Аватар для Инспектор ГУЛ
 
Регистрация: 21.05.2009
Сообщений: 55
По умолчанию

а про что идёт речь вообще что я не догоняю... что за тактовую частоту процессора, и быстродействие? может кто нить объяснит? Чтоб расширить свои знания...
В тюрьме столько не сидят, сколько в ИНЭТЕ!
Инспектор ГУЛ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определения частоты пары соседних символов в каждой строке и формирования файла частот построчно ивт Паскаль, Turbo Pascal, PascalABC.NET 11 07.12.2008 20:52
Расположить элементы массива в порядке убывания частоты встречаемости элементов. QWERT12345 Паскаль, Turbo Pascal, PascalABC.NET 7 14.11.2008 22:30
Подсчет количества и частоты Ensoph Помощь студентам 6 08.05.2008 10:16