![]() |
Цитата:
|
Цитата:
Кстати, у МСП есть генератор констант. Ты к нему обращаешься с нужным адресом, а он тебе возвращает типовую константу : 00, FF, 01 и ещё какую то. Получается быстрее, чем обращение к памяти. 1 тик. Цитата:
|
Цитата:
Впрочем, это не для здесь, да и пошел спать - обезьянник утих :) |
Цитата:
|
Цитата:
|
Так шоб И сделать, надо сначала тот де регистр порта в регистр ядра вычитать, ам его ЭНДнуть, и всунуть обратно. 3 тика.
Всё, ушёл с работы... |
Цитата:
В Pentium уже была команда RDTSC, кот. считывала 64-битный счетчик тиков. При 100 МГц один тик = 10 нс. Частоту процессора можно определить заранее. P.S. Таймер 8254 (когда-то c 1981 шел отдельной микросхемой, а потом он был интегрирован в состав микросхемы южного моста). Таймер 8254 тактируются импульсами частотой = 1.193181 MHz (14.31818 MHz / 12). Прерывания IRQ0 от таймера поступают с выхода OUT 0 с частотой = 18.2 Hz (1.193181 MHz / 65536). http://4put.ru/pictures/max/764/2348539.jpg Базовая частота 14.31818 MHz пришла в компы из системы телевидения NTSC. Первые компы IBM PC шли на базе 8088 на частоте 4.77 MHz (14.31818 MHz / 3). На фото легендарный кварцевый резонатор, который используется по сей день. http://i.ebayimg.com/00/s/NzQwWDEwMz..._id=880000500F 1) В 2004-2005 Intel начала внедрять дополнительные высокоточные таймеры (HPET) в свои южные мосты. Но в отличие от 8254, которые программируется через порты ввода-вывода 40-43h, HPET программируются через проецируемые на физическое адресное пространство адреса начинающиеся с FED00000h и FED80000h - доступны только в защищенном режиме процессора. В винде, если она видит и поддерживает HPET, то в диспетчере устройств появляется соответствующее устройство, и в user- режиме ими можно пользоваться через Win32 API функцию QueryPerformanceCounter. Функция QueryPerformanceFrequency возвращает частоту таймера. Если HPET не под- держивается, то эта функция возвращает частоту 3.579545 MHz (14.31818 MHz / 4), на которой работает PM (Power Management) Timer. В принципе тоже вполне ничего. 2) При работе с командой RDTSC на современных многоядерных процессорах нужно следить, чтобы исполняемый поток, из которого вызывается команда, назначался на одно и то же ядро, а не на усмотрение ОС, дабы избежать бардака при измерениях. В винде для этого есть соответствующая Win32 API функция - SetThreadAffinityMask. |
Мужчины, какие же вы умные!!! Мне прям завидно:o
|
Цитата:
http://stuttering.su/phpBB3/viewtopi...977&start=1680 Добавлено через 23 секунды Цитата:
|
Цитата:
|
Текущее время: 21:43. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot
© 2001—2025, «Аспирантура. Портал аспирантов»