Invariant TSC
Invariant TSC описує лічильник позначок часу (time-stamp counter), частота якого залишається постійною в усіх архітектурних станах живлення та частоти, які охоплює ця функція. Це не пряме вимірювання поточної частоти ядра.
Що потрібно знати
Invariant TSC описує лічильник позначок часу (time-stamp counter), частота якого залишається постійною в усіх архітектурних станах живлення та частоти, які охоплює ця функція. Це не пряме вимірювання поточної частоти ядра.
Як це працює
Лічильник позначок часу збільшується зі швидкістю, визначеною платформою. Незмінна поведінка відокремлює цю швидкість від змін робочої частоти ядра. Перетворення тактів на минулий час вимагає дійсного джерела опорної частоти, тоді як порівняння значень між процесорами або віртуальними машинами також вимагає синхронізації та гарантій віртуалізації.
Де це корисно
Середовище виконання може використовувати відповідний лічильник як частину своєї реалізації вимірювання часу з високою роздільною здатністю. Ділення різниці показників лічильника для короткого робочого навантаження на номінальне значення частоти процесора в GHz може бути помилковим, оскільки швидкість TSC і частота ядра, що виконує код, є різними величинами.
Як перевірити підтримку та активацію
CPUID.80000007H:EDX біт 8 перелічує invariant TSC згідно з відповідним визначенням архітектури. Для звичайного вимірювання часу віддавайте перевагу монотонному годиннику, який підтримується операційною системою, оскільки він може враховувати політики платформи та віртуалізації.
Обирайте годинник залежно від поставленого завдання: витрачений час, процесорний час потоку та цикли є різними вимірюваннями. Інтерфейси годинника операційної системи враховують політику платформи, яку пряме зчитування інструкції може обійти.
Чого ця функція не гарантує
Властивість Invariant сама по собі не забезпечує синхронізацію між сокетами, монотонну поведінку під час міграції VM, серіалізацію навколо вимірюваних інструкцій або відсутність затримок планування. Простий вимір лічильника не є відсотком використання процесора.
Сумісність і продуктивність на практиці
Бенчмарк також потребує правильних меж компілятора, прогріву, репрезентативних даних і розуміння міграції та планування. Повторення погано впорядкованого вимірювання не робить його точним. Повідомляйте про середовище та невизначеність разом із будь-яким результатом.
Практичний контрольний список для верифікації
- Зафіксуйте точну модель процесора або платформи, а також версії використовуваної програми, ОС і середовища виконання. Збережіть точне формулювання фактичної помилки або вимоги.
- Звіртеся з документацією виробника для цієї точної моделі, потім перевірте фактичні можливості та стан активації в середовищі, де виконується програма.
- Порівняйте кожну вимогу вибраного двійкового файлу або бекенда. Схожої назви функції, псевдоніма чи загального позначення технології недостатньо.
- Переконайтеся, що програма вибрала призначену реалізацію. Використовуйте її задокументовані засоби діагностики та підтримуваний резервний варіант, якщо вимоги не виконуються.
- Вносьте по одній підтримуваній зміні за раз і повторюйте те саме робоче навантаження. Зберігайте оригінальну конфігурацію та можливість відновлення.
Якщо функція вказана, але програмне забезпечення не може її використати
Почніть із компонента, у якому саме стався збій. База даних обладнання описує зафіксовані можливості; операційна система або гіпервізор можуть надавати інше фактичне середовище. Помилка неприпустимої інструкції також потребує дослідження фактичної інструкції, що викликала збій, і двійкової збірки, оскільки пошкодження даних або непов'язана непідтримувана інструкція можуть викликати схожий симптом.
Встановіть версію програми, драйвера або середовища виконання, яка підтримується для цієї конкретної платформи, і за потреби використовуйте задокументовану постачальником базову або резервну збірку. Оновлення програмного забезпечення не може створити інструкцію, якої немає в процесорі. Зміни у прошивці та політиках безпеки повинні відповідати процедурі виробника системи та плану відновлення, а не загальним рецептам оптимізації.
Джерела та межі застосування цього пояснення
Intel 64 and IA-32 Architectures Software Developer's Manual
Ці довідкові матеріали визначають архітектурну поведінку та вимоги до програмного забезпечення. Вони не перевіряють незалежно кожне значення функції на сторінці пов'язаної моделі обладнання. Щодо підтримки моделі використовуйте дані виробника на цій сторінці та перевіряйте фактичну конфігурацію системи. Ця стаття не містить бенчмарків, сертифікації чи дат незалежного огляду.
Джерела та верифікація
Власник авторських прав: Feex. Дата незалежної перевірки не зафіксована. Як ми проводимо дослідження.
- Intel 64 and IA-32 Architectures Software Developer's Manual · Томи 1 і 2 описують зазначені сімейства інструкцій і CPUID; Том 3 описує стан, сторінкову організацію пам'яті, VMX і засоби захисту. Документація з архітектури не підтверджує підтримку для конкретної моделі.
Чи була ця стаття корисною?
Достатньо відповісти "так" або "ні". За бажанням виберіть причину або додайте коротку примітку.
Дякуємо. Це допомагає нам покращувати цю сторінку.