слишком большая разница между rdtsc и qpc что это

Разница между rdtscp, rdtsc: памятью и процессором / rdtsc?

Предположим, мы пытаемся использовать tsc для мониторинга производительности и хотим предотвратить переупорядочение команд.

1: rdtscp это сериализованный вызов. Это предотвращает переупорядочение вокруг вызова rdtscp.

Таким образом, мы можем использовать любой из этих двух вариантов, чтобы предотвратить переупорядочение:

3: Это призыв к rdtsc с memory в списке clobber, который предотвращает переупорядочение

Мое понимание третьего варианта таково:

Звонить __volatile__ препятствует тому, чтобы оптимизатор удалил asm или переместил его через любые инструкции, которые могли бы нуждаться в результатах (или изменить входные данные) asm. Однако это все еще может переместить это относительно несвязанных операций. Так __volatile__ недостаточно.

Решение

Как уже упоминалось в комментарии, есть разница между барьер компилятора и процессорный барьер. volatile а также memory в операторе asm действует как барьер компилятора, но процессор все еще может переупорядочивать инструкции.

В сторону, при использовании cpuid как барьер перед rdtsc это часто бывает очень плохо с точки зрения производительности, поскольку платформы виртуальных машин часто перехватывают и эмулируют cpuid инструкция для наложения общего набора функций ЦП на несколько машин в кластере (чтобы убедиться, что живая миграция работает). Таким образом, лучше использовать одну из инструкций по забору памяти.

Другие решения

Вы можете использовать его, как показано ниже:

В приведенном выше коде первый вызов CPUID реализует барьер, чтобы избежать неупорядоченного выполнения инструкций выше и ниже инструкции RDTSC. С помощью этого метода мы избегаем вызова инструкции CPUID между чтениями регистров реального времени.

Первый RDTSC затем считывает регистр метки времени, и значение сохраняется в
объем памяти. Затем выполняется код, который мы хотим измерить. Инструкция RDTSCP во второй раз считывает регистр метки времени и гарантирует, что выполнение всего кода, который мы хотели измерить, завершено. Следующие две инструкции «mov» сохраняют значения регистров edx и eax в памяти. Наконец, вызов CPUID гарантирует, что барьер будет снова реализован, так что невозможно, чтобы любая последующая инструкция выполнялась до самого CPUID.

Источник

Ошибка индекса производительности: значение дельта от RDTSC до QPC слишком велико

Сообщение:
CPU1 Значение дельта от RDTSC до QPC слишком велико
CPU2 на домашней странице материнской платы?

Получено значение delta от RDTSC до QPC слишком велико

Я рекомендую загрузить Reimage. Это инструмент для ремонта, который может исправить множество проблем Windows автоматически.

Вы можете скачать его здесь Скачать Reimage, (Эта ссылка запускает загрузку с Reimage.)

К сожалению, я просто играю с моим рубителем!

Имеет материнскую плату. При дальнейшем тестировании ласточка Pieper оставалась в конце и, следовательно, нуждалась в помощи. Материнская плата! Тогда загрузите стандарт биоса!

Если Windows после запуска CMOS также перестает быть высокой. VG и счастливый новый год

также следует просто обновить BIOS! Затем компьютер выгнал сигнал.

Вы сделали CMOS? Поверните Lufter и компьютер сияет

Так что вы можете играть только в «топить корабли».

Временный файл, ведущий к системной плате и т. Д.

дайте вечер! Будет ли теперь пользователь

когда тестируется Aero. При создании всегда сообщения об ошибке, решение? Я вижу, что в WinSAT произошла непредвиденная ошибка. Все хорошо.

Все устройства правильно включены, и я не создаю индекс производительности. Ошибка всегда делает снимок экрана. нет ничего.

Диспетчер устройств есть где? Могут также работать с ним все до сих пор. В сети я прочитал что-то, что лейтенант. У вас есть это с драйвером NVidia?

привет, у меня замер срывается из-за следующей проблемы с W7. Привет не размеренный »
то, пожалуйста, попробуйте следующее:

Файл WMPrfDeu.prx в папке Windows, например, при измерении индекса производительности останавливается с сообщением об ошибке
«Производительность процессора могла вызвать это? Переименуйте WMPrfDeu.pr_ и сообщение« производительность воспроизведения видео не может быть измерена »из.

. следующее решение для меня может снова измерить индекс производительности. Что это может снова закрутить. Это сработало для меня и дождя

Однако только один раз. После установки нового GraKa обычно используйте компьютер в течение одного дня (запустите 2 x). Однако я этого не понимаю. (Было ли обновление около года назад)
Что смешно:
— Меню «Пуск», которое называется сломанным.

Когда я начинаю, я прихожу в

Всем привет. У вас есть настоящее, к сожалению, мой компьютер уже скончался. Текущий W10 будет даже загружать компакт-диск W10.

Я даже использую win10 DVD?

Как ни странно, только для переустановки W7. Может ли новый GraKa сделать это сам?
— Я не мог шарить. Первоначально решение было синонимом, получив сообщение об ошибке разгона.

Как это работает:
Спасибо

Не указывайте индекс производительности. До тех пор, пока не будет включен W 10.

Затем создайте новое, удаление данных приведет к полной переоценке.

Перейдите по индексу производительности.

Является ли i7 860 слабее, чем I5 760? Мне нужно сказать, что у меня есть индекс производительности после того, как он по-прежнему доступен из другого запуска, а затем обновляется.

C: \ Windows \ Performance \ Winsat \ Datastore и воссоздать индекс производительности.

Настройки под визуальными эффектами я уже возвращал значениям до вычисления индекса производительности. Здравствуйте, dcm99,
пожалуйста, ищите успеха. После этого система не работает, слишком стабильная, мне нравится знать, какое отношение создает проблемы здесь. Таким образом, есть еще некоторые приложения, которые используют аппаратное ускорение видеокарты для отображения ошибок.

Но чтобы найти фактическую ошибку, были изменены параметры. Устранение полностью отключить Aero, но поскольку Aero перед вычислением и Direct X регулярно падает с синим экраном. Перед созданием индекса используйте без резервного копирования.

У меня возникла проблема, что после создания индекса производительности Windows индексы, которые были уже активны, действительно должны были прийти к параметру, который вызывает проблемы. Конечно, я смог попасть на Уинсат.

Еще у меня биос на не виснет что ли. Как известно, открывается другое окно. Справа кнопка вместо модуля 2 ГБ от Corsair. Это означает, что один из модулей HP на 1 ГБ отсутствует и можно обновить внутренний индекс производительности Windows в разделе «Система панели управления».

Нет, калькулятор много увеличился. После нажатия на идею, что это может быть? но:
С расширением памяти больше нет основной памяти, доступной для всего 3 ГБ ОЗУ. Этого просто не бывает.

Ноутбук еще без нареканий назвал памятью «Оцените этот компьютер». У меня есть небольшая проблема, с которой я не могу справиться:

Имейте, возможно, это просто совпадение с ремонтом компакт-диска.

Сегодня утром у меня есть HP Pavilion 9775 Notbook со «стандартными» 2 ГБ ОЗУ и Vista Home Premium.

Я должен был сделать это с помощью Windoof? Помимо запуска ручной команды TRIM, наиболее полезно отключить SSD, индексирование Windows и дефрагментацию. Вы также можете сделать это с помощью инструмента [Только зарегистрированные пользователи могут видеть ссылки]. У вас есть [Только зарегистрированные пользователи, могут видеть ссылки], адаптированные для SSD?

определенно не с обычными средствами. Это правда, что совет: контроллер SATA работает с SATA-AHCI. Таким образом, в BIOS / UEFI интерфейсы IDE, где внутренние диски теряют производительность, были показаны повсюду, но неплохо. Вы экспериментировали бы еще медленнее с драйвером.

Что SSD с контроллером Sandforce немного больше в использованном состоянии. Для меня весь SSD подвергся «безопасному стиранию», после чего все данные были полностью удалены.

с Sapphire Radeon X1950 он был на 4.5, у меня есть что-то еще, чтобы установить? Вы тоже установили новый? Когда я делаю тест производительности Windows, настольному компьютеру предшествует Windows Aeor на 1.0

установлен ли текущий драйвер графики? Или удалил старый

Получите 6,0 для графики и графики (игр). С новым драйвером, который обновляется каждый месяц? ПК, я не изменил никакого оборудования.

Может ли это исходить от драйвера Catalyst? У меня есть ATI HD 5970 на ПК и, следовательно, есть Windows

Здравствуйте! После обновления у меня теперь есть заметка от 7,7 до 6,0.

Я удивлен, что 7 сильный индекс производительности всегда представляет собой 7.7 для графики и графики (игр) как градиентную косу. GraKa не разогнан, а я

Можете ли вы также быть в курсе последних событий. и закончил не так много работы. Тогда у вас есть и т. д.

Приложил скриншот, чтобы вы могли увидеть сообщение, если это так полезно. Все отлично, все водители помогают мне? Затем просто перетащив все драйверы, которые я пытаюсь определить индекс производительности. Установка может + отчет моего ПК с CPU-Z.

Поэтому я не знаю целых данных dawei чистой системы на нем.

ваша флоппи вставлена, что не работает. EM64T указывает, что ваша дискета, вероятно, находится в верхней части установленного вами порядка загрузки. И, наконец, он пытается загрузиться с дискеты, потому что плата / процессор поддерживает больше, чем память 4GB. Но поскольку у вас нет гибкого диска на следующем устройстве (жесткий диск или компакт-диск).

C1E, вероятно, является версией «Ошибка гибкого диска» и затем загружает BIOS, установленный на вашей плате.

Когда система работает, я закрываю сначала все время и подключаю текущую операцию! Я понимаю вас, чтобы потом снова второй жесткий диск. Заранее спасибо
Таким образом, CD с UBCD доступен здесь и форматирование второй записи. Только когда я выключаю калькулятор, я начинаю использовать его нормально.

Но если данные находятся на нем, вы загружаете BIOS на системный диск на первое место. Оба жестких диска могут быть на DVD-диске Windows и делать это. Если после включения аппаратного обнаружения я буду зависеть от второго жесткого диска, все будет в порядке. Он не будет сразу распознаваться, но перезагрузится и запустит систему в обычном режиме.

Если, вопреки ожиданиям, та же ошибка возникает снова при загрузке из системы загрузки, я получаю следующее сообщение: «Перезагрузитесь и выберите правильное загрузочное устройство». Где лежит
Я использую недавно установленную Vista с 2 новыми жесткими дисками SATA. пресмыкаться
Инициировать процесс загрузки. Ошибка при загрузке ошибки?

Могу ли я как-то в свете светодиода на ноутбуке войти в безопасный режим?
Всем привет. Товары приятные, если

Что может быть синим экраном, где ничего не стоит. В случае необходимости (я не тестировал жесткий диск Windows 10 DVD или USB-накопитель, который больше не работает, я сделал это несколько раз).

Что могло случиться, а потом не поехал. Если я кратко нажму кнопку питания, то я не остановился сейчас), так что, может быть, 3-4 минут. Когда я нахожусь на ноутбуке в понедельник вечером с ноутбуком Asus. При желании я смог выполнить резервное копирование Windows 10.

Теперь? Тогда это происходит, но это всегда одно и то же. получается. приветствие
Лайтман
он немедленно исчезает, поэтому не печатайте его.

Затем представление остается некоторое время (время ничего не приносило, несколько раз пыталось попробовать, но только один пришел, я понимаю, что жесткий диск работает.) Win 7 DVD имеет Windows 7)
До сих пор все прошло хорошо, и никаких проблем до понедельника не было. К сожалению, я больше ничего не имею.

В течение некоторого времени я установил Windows 10 со мной. (Перед загрузкой изображений с экранов.) Надеюсь, что ошибка? У меня проблема: кто-то может помочь мне создать выбор, начать с них и перейти на ремонт компьютера, чтобы выбрать дополнительные параметры.

Если вам нужна дополнительная информация для записи файлов на CD / DVD или копирования на внешний жесткий диск / USB-накопитель.
не теряя всех моих файлов и писем. Независимо от того, что я выбрал, через короткое время ему понравилась Windows (начинайте с CD и выбирайте ремонт). Заменяются только системные файлы и

Надеюсь услышать от вас нагрузку, и через несколько секунд снова появится ошибка выше. При необходимости вы можете выполнить установку восстановления с помощью live CD (например, [Только зарегистрированные пользователи, могут видеть ссылки]).

Просто вставьте компакт-диск, загрузитесь с него (в вашей системе ничего не будет изменено) и

Источник

Потерянные циклы на Intel? Несоответствие между RDTSC и CPU CLK UNHALTED.REF TSC

на последних процессорах (по крайней мере, в последнее десятилетие или около того) Intel предложила три счетчика производительности оборудования с фиксированной функцией, в дополнение к различным настраиваемым счетчикам производительности. Три фиксированных счетчика:

первый подсчитывает отставные инструкции, второе число фактических циклов, и последнее, что нас интересует. Описание Для Тома 3 руководства разработчиков программного обеспечения Intel:

это событие подсчитывает количество контрольные циклы со скоростью TSC, когда ядро не в состоянии Halt, а не в стоп-часы ТМ государства. Этот ядро переходит в состояние остановки при выполнении инструкции HLT или инструкция MWAIT. Это событие не зависит от частоты ядра изменения (например, состояния P), но учитываются с той же частотой, что и время счетчик марок. Это событие может приблизить прошедшее время, пока ядро не был в состоянии остановки и не в состоянии TM stopclock.

единственная важная вещь в измеряемой области busy_loop(CALIBRATION_LOOPS); что просто плотная петля испаряющих магазинов, которые составленный by gcc и clang выполняется на одном цикле за итерацию на недавнем оборудовании:

на PFCSTART и PFCEND команды читать CPU_CLK_UNHALTED.REF_TSC С помощью libpfc. The __rdtsc() является внутренним, который читает TSC через rdtsc инструкция. Наконец, мы измеряем Реальное время с nanos() это просто:

С TurboBoost включен, вот первые несколько результатов от типичного запуска на моем i7-6700HQ Skylake CPU:

графически это выглядит примерно так 2 :

слишком большая разница между rdtsc и qpc что это. Смотреть фото слишком большая разница между rdtsc и qpc что это. Смотреть картинку слишком большая разница между rdtsc и qpc что это. Картинка про слишком большая разница между rdtsc и qpc что это. Фото слишком большая разница между rdtsc и qpc что это

Если Я выключить turbo, однако, результаты гораздо более последовательны:

в основном, соотношение составляет 1.000000 к 6 знаков после запятой.

графически (со шкалой оси Y, вынужденной быть такой же, как на предыдущем графике):

слишком большая разница между rdtsc и qpc что это. Смотреть фото слишком большая разница между rdtsc и qpc что это. Смотреть картинку слишком большая разница между rdtsc и qpc что это. Картинка про слишком большая разница между rdtsc и qpc что это. Фото слишком большая разница между rdtsc и qpc что это

теперь код просто запускает горячий цикл, и не должно быть hlt или mwait инструкции, конечно, ничего, что подразумевало бы вариацию более 10%. Я не могу сказать точно что такое «TM stop-clock cycles», но я бы поспорил, что это» циклы терморегулирования», трюк, используемый для временного дросселирования процессора при достижении максимальной температуры. Тем не менее, я посмотрел на интегрированные показания термистора, и я никогда не видел, чтобы процессор сломался 60C, намного ниже 90C-100C, где termal управление (я думаю).

есть идеи, что это может быть? Существуют ли подразумеваемые «циклы остановки» для перехода между различными частотами турбонаддува? Это определенно происходит, так как коробка не тихая, и поэтому частота турбо прыгает вверх и вниз, когда другие ядра начинают и прекращают работать на фоновом режиме (максимальная частота турбо зависит непосредственно от количества активных ядер: на моем поле это 3.5, 3.3, 3.2, 3.1 GHz для 1, 2, 3 или 4 ядер активных, соответственно.)

2 графики не соответствуют тем же запускам, что и значения, отображаемые в тексте, потому что я не собираюсь обновлять графики каждый раз, когда я изменяю формат вывода текста. Однако качественное поведение по существу одинаково на каждом прогоне.

1 ответов

TL; DR

на RDTSC-REFTSC противоречие

конечно, было замечено вами уже что overcounting исчезает когда TurboBoost отключено, которое можно сделать следующим образом при использовании intel_pstate :

но это не говорит нам наверняка, что TurboBoost виноват в несоответствии; может быть, что более высокие P-состояния, включенные TurboBoost, съедают доступный запас, вызывая термическое дросселирование и остановки.

Возможно Регулирование?

TurboBoost динамическое разрешение шкалирования частоты и напряжения тока оппортунистически для того чтобы принять преимущество headroom в работая габарите (термальном или электрическом). Когда это возможно, TurboBoost затем будет масштабироваться частота ядра и напряжение процессора за пределы их номинального значения, тем самым улучшая производительность за счет более высокого энергопотребления.

более высокий расход энергии конечно увеличивает температуру и расход энергии сердечника. В конце концов, какой-то предел будет поражен, и TurboBoost придется снизить производительность.

защита от перегрева ТМ1?

я изменил libpfc() чтобы я мог читать, выберите MSRs, в частности IA32_PACKAGE_THERM_STATUS и IA32_THERM_STATUS MSRs. Оба содержат статус только для чтения и чтение-запись, аппаратно-липкий флаг журнала для различных тепловых условий:

слишком большая разница между rdtsc и qpc что это. Смотреть фото слишком большая разница между rdtsc и qpc что это. Смотреть картинку слишком большая разница между rdtsc и qpc что это. Картинка про слишком большая разница между rdtsc и qpc что это. Фото слишком большая разница между rdtsc и qpc что это (The IA32_PACKAGE_THERM_STATUS регистр практически тот же)

в то время как некоторые из этих битов были иногда установлены (особенно при блокировке вентиляционных отверстий ноутбука!), они, похоже, не коррелируют с RDTSC overcounting, которое надежно произошло бы независимо от термального состояния.

Задействовать Обязанности Оборудования? C-Состояния Ординатура?

копание в другом месте в SDM для аппаратного обеспечения, подобного остановке, я столкнулся с HDC( аппаратным рабочим циклом), механизмом, с помощью которого ОС может вручную запрашивать процессор для работы только фиксированной доли времени; аппаратное обеспечение HDC реализует это, запустив процессор для 1-15 тактов за 16-тактовый период, и принудительный холостой ход это для оставшихся 15-1 тактов этого периода.

HDC предлагает очень полезные регистры, в частности MSRs:

дополнительные сведения см. В Томе Intel SDM 3, Глава 14,§14.5.1 Аппаратный Долг Велоспорт Интерфейс Программирования.

но мой процессор i7-4700MQ 2.4 GHz не поддерживает HDC, и так было для HDC.

иные источники регулирования?

690H MSR_CORE_PERF_LIMIT_REASONS-пакет-индикатор отсечения частоты в ядрах процессора

pfc.ko теперь поддерживает этот MSR и демо печатает, какой из этих битов журнала активен. Этот pfc.ko водитель очищает липкие биты на каждом чтении.

я повторяю ваши эксперименты при печати битов, и мой процессор сообщает под очень большой нагрузкой (все 4 ядра/8 потоков активны) несколько ограничивающих факторов, включая Электрический Пункт Конструкции и Ограничение Мощности Ядра. The пакет уровня PL2 и Max Turbo Limit бита всегда ставим на моем процессоре по неизвестным мне причинам. Я также видел иногда Турбо Затухание Перехода.

эксперимент

настройка эксперимента выглядит следующим образом. На моем процессоре i7-4700MQ, номинальной скорости 2.4 GHz и максимальной скорости Turbo 3.4 GHz, я отключу все ядра, кроме 0 (загрузочный процессор) и 3 (удобное ядро жертвы не пронумеровано 0 и не логический брат 0). Затем мы спросим intel_pstate драйвер, чтобы дать нам производительность пакета не менее 98% и не выше 100%; это ограничивает процессор колебаться между вторым по величине и самым высоким P-состояниями (3,3 ГГц и 3,4 ГГц). Я делаю это следующим образом:

я побежал демо приложения для 10000 образцов at

наносекунд в add_calibration() выполняется на номинальной частоте процессора (умножьте числа выше на 2.4, чтобы получить фактический аргумент add_calibration() ).

результаты

этот производит журналы, которые выглядят так (случай 250000 nanos):

я сделал несколько замечаний о журналах, но один выделялся:

250000, можно надежно наблюдать overcounting тактовый цикл квантов чуть более 20000 тактов. Но они не из-за переходов User-OS.

здесь-это визуальное сюжет:

слишком большая разница между rdtsc и qpc что это. Смотреть фото слишком большая разница между rdtsc и qpc что это. Смотреть картинку слишком большая разница между rdtsc и qpc что это. Картинка про слишком большая разница между rdtsc и qpc что это. Фото слишком большая разница между rdtsc и qpc что это Насыщенные синие точки: 0 стандартных отклонений (близко к среднему)

насыщенные красные точки: +3 стандартных отклонения (выше среднего)

существует заметная разница до, во время и после примерно 250000 наносекунд устойчивого уменьшения.

Nanos

перед порог, журналы CSV выглядят следующим образом:

показывая коэффициент TurboBoost совершенно стабилизированный на 33x, RDTSC в синхронии с REFTSC в 24x скорость REF_XCLK (100 МГц), незначительное превышение, обычно 0 циклов, проведенных в ядре, и, таким образом, 0 переходов в ядро. Прерываний ядра займет примерно 3000 ссылочные циклы службы.

Nanos == 250000

при критическом пороге журнал содержит сгустки 20000 overcounts цикла, и overcounts очень хорошо коррелируют с нецелым расчетные значения мультипликатора между 33х и 34x помехи:

Nanos > 250000

TurboBoost от 3.3 GHz до 3.4 GHz теперь происходит надежно. По мере увеличения наночастиц журналы заполняются примерно целыми кратными 20000-циклическими квантами. В конце концов, существует так много nanos, что прерывания планировщика Linux становятся постоянными светильниками, но preemption легко обнаруживается с помощью производительность счетчиков, и ее эффект совсем не похож на остановки TurboBoost.

выводы

Будущей Работе

больше исследования необходимо сделать для того чтобы определить как цена перехода меняет с частотой, и Ли оборудование выбирая государство силы можно настроить. Особый интерес для меня представляют «блоки ослабления турбонаддува», намеки на которые я видел в дальних уголках сети. Возможно, оборудование Turbo имеет настраиваемое окно времени? В настоящий момент соотношение времени тратить решив потраченное время перехода составляет 30:1 (600us:20us). Его можно настроить?

Источник

Получение высокоточных меток времени

Windows предоставляет интерфейсы api, которые можно использовать для получения меток времени с высоким разрешением или для измерения временных интервалов. Основной API для машинного кода — QueryPerformanceCounter (QPC). Для драйверов устройств API режима ядра — кекуериперформанцекаунтер. Для управляемого кода класс System. Diagnostics. Секундомер использует QPC в качестве точного времени.

QPC не зависит от и не синхронизируется со всеми внешними временными ссылками. Чтобы получить метки времени, которые можно синхронизировать со внешней ссылкой времени (например, время в формате UTC) для использования в долгосрочных измерениях с высоким разрешением, используйте жетсистемтимепреЦисеасфилетиме.

Метки времени и измерения интервала времени являются неотъемлемой частью измерений производительности компьютера и сети. Эти операции измерения производительности включают вычисление времени отклика, пропускной способности и задержки, а также выполнение кода профилирования. Каждая из этих операций включает в себя измерение действий, возникающих в течение интервала времени, определяемого начальным и завершающим событием, которое может быть независимым от любой внешней ссылки времени дня.

поддержка QPC в версиях Windows

QPC был представлен в Windows 2000 и Windows XP и развивается для использования преимуществ улучшений в аппаратной платформе и процессорах. здесь описаны характеристики QPC в разных версиях Windows для поддержки программного обеспечения, работающего на этих Windows версиях.

Windows XP и Windows 2000

QPC доступен на Windows XP и Windows 2000 и хорошо работает в большинстве систем. Однако некоторые аппаратные системы BIOS не сообщают о характеристиках аппаратного процессора правильно (неразновидности TSC), а некоторые многоядерные или многопроцессорные системы используют процессоры с Тскс, которые не удалось синхронизировать между ядрами. системы с уязвимым встроенным по, на которых работают эти версии Windows могут не обеспечивать одинаковое QPC чтение на разных ядрах, если в качестве основы для QPC использовался таймер TSC.

Windows Vista и Windows Server 2008

Windows 7 и Windows Server 2008 R2

большинство компьютеров Windows 7 и Windows Server 2008 R2 имеют процессоры с постоянной ставкой тскс и используют эти счетчики в качестве базиса для QPC. Тскс — это аппаратные счетчики высокого разрешения для каждого процессора, доступ к которым можно получить с очень низкой задержкой и нагрузкой (в порядке 10 или 100 циклов машин, в зависимости от типа процессора). Windows 7 и Windows Server 2008 R2 используют тскс в качестве основания QPC в однопроцессорных системах, где операционная система (или низкоуровневая оболочка) может жестко синхронизировать отдельные тскс во всех процессорах во время инициализации системы. В таких системах стоимость чтения счетчика производительности значительно ниже по сравнению с системами, использующими счетчик платформы. Кроме того, не существует дополнительных затрат на параллельные вызовы и запросы пользовательского режима, которые позволяют избежать системных вызовов, что еще больше сокращает издержки. в системах, где таймер TSC не подходит для тимекипинг, Windows автоматически выбирает счетчик платформы (таймер хпет или ACPI PM timer) в качестве базиса для QPC.

Windows 8, Windows 8.1, Windows Server 2012 и Windows Server 2012 R2

Windows 8, Windows 8.1, Windows Server 2012 и Windows Server 2012 R2 используют тскс в качестве базиса для счетчика производительности. Алгоритм синхронизации TSC был значительно улучшен для лучшего размещения больших систем с большим количеством процессоров. Кроме того, добавлена поддержка нового точного API времени суток, что позволяет получать точные метки времени для часов стены с операционной системы. Дополнительные сведения см. в разделе жетсистемтимепреЦисеасфилетиме. на Windows RT компьютерных платформах счетчик производительности основывается на счетчике собственной платформы или системного счетчика, предоставляемого универсальным таймером Windows RT PC, если платформа настолько установлена.

Руководство по приобретению меток времени

Windows имеет и будет по-прежнему вкладываться в предоставление надежного и эффективного счетчика производительности. Если вам нужны отметки времени с разрешением 1 микросекунды или лучше, а метки времени не нужно синхронизировать со ссылкой на внешнее время, выберите QueryPerformanceCounter, кекуериперформанцекаунтерили кекуеринтеррупттимепреЦисе. Если вам нужны отметки времени с синхронизированным временем в формате UTC с разрешением 1 микросекунды или выше, выберите жетсистемтимепреЦисеасфилетиме или кекуерисистемтимепреЦисе.

В общем случае результаты счетчика производительности будут согласованы во всех процессорах в многоядерных и многопроцессорных системах, даже если они измеряются в разных потоках или процессах. Ниже приведены некоторые исключения из этого правила.

предварительные Windows операционные системы Vista, работающие на определенных процессорах, могут нарушать эту согласованность по одной из следующих причин:

При сравнении результатов счетчика производительности, полученных из разных потоков, рассмотрите возможность неоднозначного упорядочения значений, отличающихся от ± 1 Tick. Если отметки времени берутся из одного потока, неопределенность ± 1 тика не применяется. В этом контексте термин Tick ссылается на период времени, равный 1 (частота счетчика производительности, полученного от куериперформанцефрекуенци).

при использовании счетчика производительности в больших серверных системах с многовременными доменами, которые не синхронизированы в оборудовании, Windows определяет, что таймер TSC не может использоваться в целях обеспечения времени и выбирает счетчик платформы в качестве базиса для QPC. Хотя этот сценарий по-прежнему обеспечивает надежные отметки времени, задержка доступа и масштабируемость неблагоприятно затрагиваются. Поэтому, как было сказано в предыдущем руководстве по использованию, используйте только API, которые обеспечивают 1 микросекунду или лучшее решение, если такое разрешение требуется. Таймер TSC используется в качестве базиса для QPC в многотактовых системах с несколькими часами, которые включают синхронизацию оборудования всех доменов процессоров, так как это эффективно делает их функциями единой системы домена часов.

Частота счетчика производительности зафиксирована при загрузке системы и согласована во всех процессорах, поэтому необходимо запросить частоту от куериперформанцефрекуенци при инициализации приложения, а затем кэшировать результат.

Виртуализация

Предполагается, что счетчик производительности надежно работает на всех гостевых виртуальных машинах, работающих на правильных гипервизорах. Однако низкоуровневые оболочки, которые соответствуют интерфейсу гипервизора версии 1,0 и поверхности просвещение, могут существенно снизить издержки. Дополнительные сведения о интерфейсах гипервизора и просветлений см. в статье спецификации гипервизора.

Прямое использование TSC

мы настоятельно рекомендуем использовать инструкцию процессора RDTSC или RDTSCP для прямого запроса таймера TSC, так как вы не получаете надежные результаты в некоторых версиях Windows, между динамической миграцией виртуальных машин и аппаратными системами без инвариантной или тесно синхронизированной тскс. Вместо этого мы рекомендуем использовать QPC для использования абстракции, согласованности и переносимости, предоставляемой ИТ.

Примеры получения меток времени

В различных примерах кода в этих разделах показано, как получить отметки времени.

Использование QPC в машинном коде

В этом примере показано, как использовать QPC в машинном коде C и C++.

Получение меток времени с высоким разрешением из управляемого кода

Класс System. Diagnostics. Секундомер также предоставляет несколько удобных методов для выполнения измерений интервала времени.

Использование QPC из режима ядра

В этом примере показано, как использовать кекуериперформанцекаунтер в режиме ядра C и C++.

Общие вопросы и ответы о QPC и TSC

Здесь приведены ответы на часто задаваемые вопросы о QPC и тскс в целом.

Является QueryPerformanceCounter () аналогично функции Win32 Жеттикккаунт () или GetTickCount64 ()?

Нет. Жеттикккаунт и GetTickCount64 не связаны с QPC. Жеттикккаунт и GetTickCount64 возвращают количество миллисекунд с момента запуска системы.

Следует ли использовать QPC или вызывать инструкции RDTSC/РДТСКП напрямую?

Чтобы избежать проблем с неправильными и переносимостью, мы настоятельно рекомендуем использовать QPC вместо использования регистра TSC или инструкций RDTSC или RDTSCP процессора.

Что такое отношение QPC к внешнему эпохе времени? Можно ли синхронизировать его с внешним Эпохом, например в формате UTC?

QPC основан на счетчике оборудования, который не может быть синхронизирован со внешней ссылкой на время, например в формате UTC. Для точной отметки времени дня, которую можно синхронизировать с внешней ссылкой в формате UTC, используйте жетсистемтимепреЦисеасфилетиме.

QPC ли воздействие на летнее время, високосные секунды, часовые пояса или изменения системного времени, внесенные администратором?

Нет. QPC полностью независим от системного времени и UTC.

QPC ли влияние изменений частоты процессора, вызванных технологией управления питанием или технологии Turbo Boost?

QPCа ли надежная работа на многопроцессорных системах, многоядерной системе и системах с технологией Hyper-Threading?

Разделы справки определить и проверить, работает ли QPC на моем компьютере?

Такие проверки выполнять не нужно.

Какие процессоры имеют неинвариантный Тскс? Как проверить, не имеет ли моя система значение TSC?

Вам не нужно выполнять эту проверку самостоятельно. Windows операционные системы выполняют несколько проверок при инициализации системы, чтобы определить, подходит ли таймер TSC в качестве основания для QPC. Однако для справочных целей можно определить, имеет ли процессор инвариантный таймер TSC, используя один из следующих вариантов:

ниже показаны неизменяемые сведения TSC, предоставляемые служебной программой Windows Sysinternals Coreinfo.exe (www.sysinternals.com). Звездочка означает «истина».

надежно ли QPC работает на Windows RT компьютерных аппаратных платформах?

Как часто QPC передвигаться?

Не менее 100 лет от самой последней загрузки системы и, возможно, дольше, основываясь на используемом базовом аппаратном таймере. Для большинства приложений смена не является проблемой.

Какова стоимость вычислительных ресурсов при вызове QPC?

Требуется ли для QPC переход ядра (системный вызов)?

Переход ядра не требуется, если система может использовать регистр TSC в качестве основания для QPC. Если система должна использовать другую базу времени, например таймер ХПЕТ или PM, требуется системный вызов.

Является ли счетчик производительности монотонным (не уменьшающимся)?

Можно ли использовать счетчик производительности для упорядочивания событий в течение времени?

Да. Однако при сравнении результатов счетчика производительности, полученных из разных потоков, значения, отличающиеся ± 1 Tick, имеют неоднозначное упорядочение, как если бы они имели одинаковую отметку времени.

Насколько точны счетчики производительности?

Ответ зависит от различных факторов. Дополнительные сведения см. в разделе характеристики аппаратных часов низкого уровня.

Часто задаваемые вопросы о программировании с помощью QPC и TSC

Здесь приведены ответы на часто задаваемые вопросы о программировании с помощью QPC и тскс.

Мне нужно преобразовать выходные данные QPC в миллисекунды. Как избежать потери точности при преобразовании в Double или float?

При выполнении вычислений с целочисленными счетчиками производительности необходимо учитывать следующие моменты.

В качестве общего принципа отложите эти вычисления и преобразования максимально долго, чтобы избежать возникновения ошибок.

Как выполнить преобразование QPC в 100 наносекунд, чтобы добавить его в FILETIME?

Время файла — это 64-разрядное значение, представляющее число 100-наносекундных интервалов, прошедших с 12:00 утра. 1 января 1601 скоординированного всемирного времени (UTC). Время файла используется вызовами API Win32, которые возвращают время дня, например GetSystemTimeAsFileTime и жетсистемтимепреЦисеасфилетиме. Напротив, QueryPerformanceCounter возвращает значения, представляющие время в единицах измерения 1/(частота счетчика производительности, полученного из куериперформанцефрекуенци). Для преобразования между двумя необходимо рассчитать отношение интервала QPC и 100-наносекундах интервалов. Будьте внимательны, чтобы избежать потери точности, поскольку значения могут быть небольшими (0,0000001/0,000000340).

Почему отметка времени, возвращаемая из QPC, возвращает целое число со знаком?

Как можно получить метки времени высокого разрешения из управляемого кода?

При каких обстоятельствах Куериперформанцефрекуенци возвращает значение FALSE или QueryPerformanceCounter возвращает нуль?

это не произойдет в любой системе, где работает Windows XP или более поздней версии.

Нужно ли устанавливать сходство потоков в одно ядро для использования QPC?

Нет. Дополнительные сведения см. в разделе рекомендации по приобретению меток времени. Этот сценарий не является необходимым и нежелательным. Выполнение этого сценария может негативно сказаться на производительности приложения путем ограничения обработки одним ядром или созданием узкого места в одном ядре, если несколько потоков устанавливают свое сходство для одного ядра при вызове QueryPerformanceCounter.

Характеристики часов низкого уровня оборудования

В этих разделах показаны характеристики аппаратных часов низкого уровня.

Абсолютные часы и разницы

Абсолютные часы обеспечивают точность считывания по времени суток. Обычно они основаны на всеобщем скоординированном времени (UTC), поэтому их точность зависит от того, насколько они синхронизированы со ссылкой на внешнее время. Разница измеряет временные интервалы и обычно не основывается на внешнем эпохе времени. QPC — это разница времени и не синхронизируется с внешним временным временем или ссылкой. При использовании QPC для измерений интервалов времени обычно обеспечивается более высокая точность, чем при использовании меток времени, полученных из абсолютных часов. Это связано с тем, что процесс синхронизации времени с абсолютными часами может привести к появлению этапов и сдвигов частоты, которые увеличивают неопределенность краткосрочных интервалов времени.

Разрешение, точность, точность и стабильность

QPC использует аппаратный счетчик в качестве базиса. Аппаратные таймеры состоят из трех частей: генератор тактов, счетчик, который подсчитывает такты, и способ получения значения счетчика. Характеристики этих трех компонентов определяют разрешение, точность, точность и стабильность QPC.

Если генератор оборудования обеспечивает такты с постоянной частотой, интервалы времени могут измеряться путем простого подсчета этих тактов. Частота, с которой создаются такты, называется частотой и выражается в герцах (Гц). Обратная частота частоты называется периодом или интервалом тактов и выражается в соответствующей международной единице времени (например, секунды, миллисекунда, микросекунда или наносекундных).

слишком большая разница между rdtsc и qpc что это. Смотреть фото слишком большая разница между rdtsc и qpc что это. Смотреть картинку слишком большая разница между rdtsc и qpc что это. Картинка про слишком большая разница между rdtsc и qpc что это. Фото слишком большая разница между rdtsc и qpc что это

Разрешение таймера равно точке. Разрешение определяет возможность различать любые две отметки времени и размещает нижнюю границу наименьшего интервала времени, который может измеряться. Иногда это называется разрешением Tick.

Цифровое измерение времени представляет неопределенное измерение, равное ± 1 тактов, так как цифровой счетчик увеличивается на отдельные шаги, а время постоянно увеличивается. Это неопределенность называется ошибкой дискретизация. Для типичных измерений интервала времени этот результат часто можно игнорировать, так как ошибка куантизинг намного меньше, чем измеряется интервал времени.

слишком большая разница между rdtsc и qpc что это. Смотреть фото слишком большая разница между rdtsc и qpc что это. Смотреть картинку слишком большая разница между rdtsc и qpc что это. Картинка про слишком большая разница между rdtsc и qpc что это. Фото слишком большая разница между rdtsc и qpc что это

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

На следующих двух схемах показано влияние неопределенности ± 1 тика с помощью таймера с разрешением 1 единицы времени.

слишком большая разница между rdtsc и qpc что это. Смотреть фото слишком большая разница между rdtsc и qpc что это. Смотреть картинку слишком большая разница между rdtsc и qpc что это. Картинка про слишком большая разница между rdtsc и qpc что это. Фото слишком большая разница между rdtsc и qpc что это

QueryPerformanceCounter считывает счетчик производительности и возвращает общее количество тактов, произошедших с момента запуска операционной системы Windows, включая время перехода компьютера в спящий режим, например ждущий, спящий или подключенный режим ожидания.

В этих примерах показано, как вычислить интервал времени и разрешение, а также как преобразовать счетчик тактов в значение времени.

Пример 1

Куериперформанцефрекуенци возвращает значение 3 125 000 на определенном компьютере. Каков интервал времени и разрешение QPC измерений на этом компьютере? Интервал Tick (точка) — это обратная величина 3 125 000, которая равна 0,000000320 (320 наносекунд). Таким образом, каждый такт представляет передачу 320 наносекунд. Интервалы времени, меньшие 320 наносекунд, не могут измеряться на этом компьютере.

Интервал времени = 1/(частота производительности)

Интервал времени = 1/3125000 = 320 НС

Пример 2

Елапседтиме = * интервал делений

Елапседтиме = 5 * 320 NS = 1,6 μс

Для доступа (чтения) счетчика тактов от программного обеспечения требуется время, а это время доступа может уменьшить точность измерения времени. Это связано с тем, что минимальный интервал времени (наименьший интервал времени, который можно измерять) — это большее из значений разрешения и времени доступа.

Точность = максимальное [ разрешение, акцесстиме]

Например, рассмотрим гипотетический аппаратный таймер с разрешением 100 НС и временем доступа 800 НС. Это может быть вызвано тем, что при использовании таймера платформы вместо регистра TSC в качестве основания для QPC. Таким образом, точность будет 800 наносекунд не 100 наносекунд, как показано в этом вычислении.

Precision = MAX [ 800 НС, 100 НС ] = 800 NS

На этих двух рисунках показан этот результат.

слишком большая разница между rdtsc и qpc что это. Смотреть фото слишком большая разница между rdtsc и qpc что это. Смотреть картинку слишком большая разница между rdtsc и qpc что это. Картинка про слишком большая разница между rdtsc и qpc что это. Фото слишком большая разница между rdtsc и qpc что это

Если время доступа больше разрешения, не пытайтесь улучшить точность, выполнив подбор. Иными словами, следует предположить, что отметка времени выполняется точно в середине, в начале или в конце вызова.

В отличие от этого, рассмотрим следующий пример, в котором время доступа к QPC составляет только 20 наносекунд, а аппаратное разрешение — 100 наносекунд. Это может быть вызвано тем, что регистр TSC используется в качестве основания для QPC. Здесь точность ограничена с помощью разрешения часов.

слишком большая разница между rdtsc и qpc что это. Смотреть фото слишком большая разница между rdtsc и qpc что это. Смотреть картинку слишком большая разница между rdtsc и qpc что это. Картинка про слишком большая разница между rdtsc и qpc что это. Фото слишком большая разница между rdtsc и qpc что это

На практике можно найти источники времени, для которых время, необходимое для чтения счетчика, больше или меньше, чем разрешение. В любом случае точность будет равна большему из двух.

Эта таблица содержит сведения о приблизительном разрешении, времени доступа и точности различных часов. Обратите внимание, что некоторые значения зависят от разных процессоров, аппаратных платформ и скорости процессора.

Источник часовНоминальная тактовая частотаРазрешение часовВремя доступа (номинал)Точность
PC RTC64 Гц15,625 МСНедоступноНедоступно
Счетчик производительности запросов, использующий таймер TSC с тактовой частотой процессора 3 ГГц3 МГц333 наносекунд30 наносекунд333 наносекунд
RDTSC машины в системе со временем цикла 3 ГГц3 ГГц333 пикосекондс30 наносекунд30 наносекунд

Поскольку QPC использует счетчик оборудования, когда вы понимаете некоторые основные характеристики аппаратных счетчиков, вы получаете представление о возможностях и ограничениях QPC.

Наиболее часто используемым генератором аппаратных тактов является Crystal осциллятор. Crystal — это небольшая часть Quartz или другого церамик материала, которая представляет характеристики пиезоелектрик, которые предоставляют недорогую частотную ссылку с отличной стабильностью и точностью. Эта частота используется для создания тактов, подсчитанных часами.

Точность таймера относится к степени соответствия значению true или Standard. Это зависит главным образом от возможности Crystal осциллятор по заданной частоте. Если частота колебаний слишком высока, часы будут работать быстро, а измеряемые интервалы будут отображаться дольше, чем на самом деле. Если частота слишком мала, часы будут работать медленнее, а измеряемые интервалы будут короче, чем на самом деле.

Для типичных измерений интервала времени в течение короткой длительности (например, измерения времени отклика, измерения задержки сети и т. д.), как правило, достаточно осциллятор оборудования. Однако для некоторых измерений точность осциллятор частоты играет важную роль, особенно для длинных интервалов времени или при необходимости сравнения измерений, полученных на разных компьютерах. Оставшаяся часть этого раздела посвящена влиянию точности осциллятор.

Кристалс «частота колебаний» устанавливается во время производственного процесса и указывается производителем с точки зрения заданной частоты плюс или минус отклонения в производстве, выраженный в «штук в миллион» (стр/мин), которые называются максимальным смещением частоты. Кристалл с заданной частотой 1 000 000 Гц и максимальным смещением частоты в ± 10 стр/мин будет соответствовать ограничениям спецификации, если фактическая частота находилась в диапазоне от 999 990 Гц до 1 000 010 Гц.

При замене частей фразы на миллионы в микросекундах в секунду можно применить эту ошибку смещения частоты к измерению интервалов времени. Осциллятор с смещением + 10 в минуту будет иметь ошибку 10 микросекунд в секунду. Соответственно, при измерении интервала в 1 секунду он будет выполняться быстро и измерять интервал в 1 секунду как 0,999990 секунд.

Удобный справочник заключается в том, что ошибка частоты 100 стр/мин вызывает ошибку 8,64 секунд после 24 часов. Эта таблица представляет неопределенность измерения из-за более длинных интервалов времени в накопленной ошибке.

Длительность интервала временинеуверенность в измерении из-за накопленной ошибки +/-10 система УПП допустимый частотой
1 микросекунда± 10 пикосекондс (10-12)
1 мс± 10 наносекунд (10-9)
1 с± 10 микросекунд
1 час± 60 микросекунд
1 день± 0,86 секунд
1 неделя± 6,08 секунд

В приведенной выше таблице показано, что для небольших временных интервалов ошибку смещения частоты часто можно игнорировать. Однако для больших интервалов времени даже небольшое смещение частоты может привести к существенным незначительным измерениям.

Crystal осцилляторами, который используется в персональных компьютерах и серверах, обычно изготовлен с частотой, равной ± 30 – 50 штук в миллион, и редко Кристалс может быть отключен до 500 стр/с. Хотя Кристалс с гораздо более жесткими отклонениями смещения, они являются более ресурсоемкими и поэтому не используются на большинстве компьютеров.

чтобы уменьшить негативные последствия этой ошибки смещения частоты, последние версии Windows, в частности Windows 8, используют несколько аппаратных таймеров для определения смещения частоты и их компенсации в максимально возможной степени. этот процесс калибровки выполняется при запуске Windows.

Как показано в следующих примерах, ошибка смещения частоты аппаратных часов влияет на достижимую точность, а разрешение часов может быть менее важным.

слишком большая разница между rdtsc и qpc что это. Смотреть фото слишком большая разница между rdtsc и qpc что это. Смотреть картинку слишком большая разница между rdtsc и qpc что это. Картинка про слишком большая разница между rdtsc и qpc что это. Фото слишком большая разница между rdtsc и qpc что это

Пример 1

Предположим, что вы выполняете измерения интервала времени с помощью осциллятор с частотой 1 МГц, которая имеет разрешение 1 микросекунда, и значение максимальной частоты смещения в ± 50 стр/мин. Теперь давайте предположим, что смещение имеет ровно + 50 стр/мин. Это означает, что фактическая частота будет составлять 1 000 050 Гц. Если мы измеряем интервал времени, равный 24 часам, то измерение будет 4,3 секунд слишком коротким (23:59:55.700000, измеренное по сравнению с 24:00:00.000000 фактическим).

Секунд в день = 86400

Ошибка смещения частоты = 50 стр/мин = 0,00005

86 400 секунд * 0,00005 = 4,3 секунд

Пример 2

Предположим, что тактовые частоты процессора контролируются Crystal осциллятор и заданной частотой 3 ГГц. Это означает, что разрешение будет равно 1 или 3000000000 или примерно 333 пикосекондс. Предположим, что кристалл, используемый для управления тактами процессора, имеет частотный допуск ± 50 стр/мин и фактически + 50 стр/мин. Несмотря на выразительное решение, измерение интервала времени, равное 24 часам, по-прежнему будет 4,3 секунд. (23:59:55.7000000000 измеряется в сравнении с 24:00:00.0000000000 фактическим).

Секунд в день = 86400

Ошибка смещения частоты = 50 стр/мин = 0,00005

86 400 секунд * 0,00005 = 4,3 секунд

Это показывает, что таймеры TSC с высоким разрешением не обязательно обеспечивают более точные показатели, чем часы с низким разрешением.

Пример 3

Рассмотрите возможность использования двух разных компьютеров для измерения одного и того же 24-часового интервала времени. Оба компьютера имеют осциллятор с максимальным смещением частоты ± 50 стр/мин. Насколько продвинуться измерение одного и того же интервала времени в этих двух системах? Как и в предыдущих примерах, ± 50 стр/мин выдает максимальную ошибку ± 4,3 секунд после 24 часов. Если одна система работает в 4,3 секунд быстро, а другая 4,3 секунд работает медленнее, то максимальная ошибка может со8,6 ставлять не более 24 часов.

Секунд в день = 86400

Ошибка смещения частоты = ± 50 стр/мин = ± 0,00005

± (86 400 секунд * 0,00005) = ± 4,3 секунд

Максимальное смещение между двумя системами = 8,6 секунд

В целом, ошибка смещения частоты становится все более важной при измерении длинных временных интервалов и при сравнении измерений между различными системами.

Стабильность таймера описывает, изменяется ли частота тактов с течением времени, например в результате изменения температуры. Функция Quartz Кристалс, используемая в качестве генераторов тактов на компьютерах, будет демонстрировать небольшие изменения частоты в качестве функции температуры. Ошибка, вызванная смещением в температуре, обычно мала по сравнению с ошибкой смещения частоты для общих диапазонов температуры. Однако разработчикам программного обеспечения для портативного оборудования или оборудования может потребоваться учитывать этот результат в больших колебаниях температуры.

Сведения о таймере оборудования

Регистр TSC

Несмотря на то, что регистр TSC кажется идеальным механизмом отметки времени, в некоторых случаях он не может надежно работать в целях тимекипинг:

Как и другие таймеры, таймер TSC основан на Crystal осциллятор, Точная частота которого не известна заранее и имеет ошибку смещения частоты. Поэтому, прежде чем его можно будет использовать, его необходимо откалибровать с помощью другой ссылки времени.

во время инициализации системы Windows проверяет, подходит ли таймер TSC для целей времени, и выполняет необходимую калибровку частоты и основную синхронизацию.

Часы PM

Таймер ACPI, известный также как часы PM, был добавлен в системную архитектуру для обеспечения надежной отметки времени независимо от скорости процессора. Так как это была единственная цель этого таймера, она предоставляет отметку времени в одном цикле, но не предоставляет никаких других функциональных возможностей.

Таймер ХПЕТ

Высокоточный таймер событий (ХПЕТ) был разработан корпорацией Intel и корпорацией Майкрософт в соответствии с требованиями к синхронизации мультимедиа и других приложений, зависящих от времени. поддержка хпет была в Windows, начиная с Windows Vista, а Windows 7 и Windows 8 сертификации аппаратного логотипа требует поддержки хпет в аппаратной платформе.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *