> делая в цикле по 100 nop'ов и потом общее число тактов деля > на время у меня получается число в три раза большее, чем > частота проца > > так и должно быть? > т.е. частота проца показывает сколько трёх-тактнах команд в > секунду выполняет процессор?
Не совсем понятно, чем мерялось время и такты. Для современных процессоров такты измеряются командой rdtsc (код 0f 31), а время - могут быть варианты. Проще всего сделать 2 команды rdtsc, разделенные Sleep'ом на секунду - разность тактов сразу даст неплохое приближение частоты процессора. Если нужна большая точность, то нужно или частоту привести к кратной 33/50/66 Мгц, или задать больший интервал времени, или лучше учитывать время начала/конца Sleep (хотя бы через GetLocalTime), или сделать все это сразу.
Что касается трех инструкций за такт - вполне ожидаемый результат. Начиная с Пентиум3 за один такт может быть декодировано до 3 команд, выполнение Nop'ов времени не занимает вовсе - что и наблюдалось.
спасибо, по rdtsc в яндексе полно ссылок16.04.03 13:16 Автор: ggg <ggg> Статус: Elderman