Прескачане към съдържанието

Invariant TSC

Архитектурна справкаFeex

Invariant TSC описва брояч на времеви марки (time-stamp counter), чиято честота остава постоянна във всички архитектурни състояния на захранване и честота, обхванати от функцията. Това не е директно измерване на текущата честота на ядрото.

Какво трябва да знаете

Invariant TSC описва брояч на времеви марки (time-stamp counter), чиято честота остава постоянна във всички архитектурни състояния на захранване и честота, обхванати от функцията. Това не е директно измерване на текущата честота на ядрото.

Как работи

Броячът на времеви марки нараства с честота, определена от платформата. Поведението на инвариантност отделя тази честота от промените в работната честота на ядрото. Преобразуването на тиковете в изтекло време изисква валидна референтна честота, докато сравняването на стойности между различни процесори или виртуални машини изисква също синхронизация и гаранции за виртуализация.

Къде е полезно

Дадена среда за изпълнение може да използва подходящ брояч като част от своята реализация за времеизмерване с висока резолюция. Разделянето на разликата в брояча за кратко работно натоварване на номинална стойност на CPU в GHz може да бъде грешно, тъй като скоростта на TSC и честотата на изпълняващото ядро са различни величини.

Как се проверява поддръжката и активирането

CPUID.80000007H:EDX бит 8 изброява инвариантен TSC съгласно съответната архитектурна дефиниция. Предпочитайте поддържания от операционната система монотонен часовник за обичайно времеизмерване, тъй като той може да отчете политиките на платформата и виртуализацията.

Изберете часовник според поставения въпрос: изминало време, процесорно време на нишка и цикли са различни измервания. Часовниковите интерфейси на операционната система включват политики на платформата, които директното снемане на инструкция може да заобиколи.

Какво не гарантира тази функция

Свойството инвариантност само по себе си не установява синхронизация между сокетите, монотонно поведение при миграция на VM, сериализация около измерваните инструкции или липса на забавяния при планирането на процеси. Директната извадка от брояч не представлява процент на натоварване на CPU.

Съвместимост и производителност на практика

Един бенчмарк също така изисква правилни компилаторни граници, загряване (warmup), представителни данни и разбиране на миграцията и планирането на процеси. Повтарянето на лошо структурирано измерване не го прави точно. Докладвайте средата и неопределеността с всеки резултат.

Практически контролен списък за проверка

  1. Запишете точния модел на процесора или платформата, както и използваните версии на приложението, операционната система и средата за изпълнение. Запазете точния текст на действителната грешка или изискване.
  2. Проверете документацията от производителя за този точен модел, след което инспектирайте действителните възможности и активираното състояние в средата, където работи програмата.
  3. Сравнете всяко изискване на избрания двоичен файл или бекенд. Подобно наименувана функция, псевдоним или общ технологичен етикет не са достатъчни.
  4. Потвърдете, че приложението е избрало планираната реализация. Използвайте неговата документирана диагностика и поддържан резервен вариант, когато изискванията не са изпълнени.
  5. Правете по една поддържана промяна наведнъж и повтаряйте същото работно натоварване. Запазете достъпни оригиналната конфигурация и плана за възстановяване.

Ако функцията е посочена, но софтуерът не може да я използва

Започнете с точния компонент, който дава грешка. Хардуерната база данни описва записаните възможности; операционната система или хипервайзорът могат да предоставят различна ефективна среда. Грешка за невалидна инструкция (illegal-instruction) също изисква разследване на действителната сриваща се инструкция и компилацията на двоичния файл, тъй като повреда или несвързана неподдържана инструкция може да предизвика подобен симптом.

Инсталирайте версията на приложението, драйвера или средата за изпълнение, която се поддържа за точната платформа, и използвайте документираната от производителя базова или резервна компилация, ако е необходимо. Софтуерна актуализация не може да създаде инструкция, която липсва в процесора. Промените във фърмуера и политиките за сигурност трябва да следват процедурата на производителя на системата и план за възстановяване, а не общи съвети за оптимизация.

Източници и обхват на това обяснение

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 и контролите за защита. Документацията за архитектурата не гарантира поддръжка за конкретен модел.

Беше ли полезна тази статия?

Достатъчно е "да" или "не". Изберете причина, ако желаете, или добавете кратка бележка.

Беше ли полезна тази статия?