RDTSCP
RDTSCP leggi lu time-stamp counter di x86 e un valuri d'idintificaturi ausiliariu dû prucessuri cu pruprietà d'urdinamentu difiniti. Nun è n'istruzzioni cumpritamenti serializzanti o un sistema di benchmark automàticu.
Chiḍḍu ca t'hà sapiri
RDTSCP leggi lu time-stamp counter di x86 e un valuri d'idintificaturi ausiliariu dû prucessuri cu pruprietà d'urdinamentu difiniti. Nun è n'istruzzioni cumpritamenti serializzanti o un sistema di benchmark automàticu.
Comu funziona
RDTSCP归 turna lu cuntaturi 'n EDX:EAX e lu valuri IA32_TSC_AUX 'n ECX. Li sò règuli d'urdinamentu vìnculanu quarchi upirazzioni pricidenti, ma l'istruzzioni succissivi ponnu accuminzari prima ca la littura si cumpreta, e li sarvî pricidenti hannu cunsidirazzioni di visibbilità agghiuntivi. La siquenza di fence curretta dipenni di zoccu la misurazzioni voli dilimitari.
Unni e' ùtili
Lu còdici di timing a vasciu liveddu pò usari lu valuri ausiliariu pi aiutari a rilivari un canciu di prucessuri quannu lu sistema upirativu lu cunfiggura currettamenti. Un benchmark rubbustu cuntrolla sempri la cumpilazzioni, lu riscaddamentu dû càrricu di travagghiu, l'interrupt, lu scheduling, la calibbrazzioni dû cuntaturi e l'upirazzioni urdinati.
Comu cuntrollari lu supportu e l'abbilitazzioni
CPUID.80000001H:EDX bit 27 annòmina RDTSCP. Virìfica la pulìtica dû cuntaturi ntô sistema upirativu o hypervisor effittivu e usa un mìtudu di timing ducumintatu chê fence addumannati. Prifirisci l'orulòggiu munutònicu dû sistema upirativu pô tempu passatu di l'applicazzioni.
Scègghiti un roggiu a siconda dâ dumanna: tempu passatu, tempu CPU dû thread e cicli sunnu misurazzioni diffirenti. L'interfacci dû roggiu dû sistema upirativu 'ncurpòranu pulìtichi dâ piattaforma chi un campionamentu grezzu d'istruzzioni putissi scavarcari.
Zoccu la funziunalitati nun stabbilisci
Lu supportu di RDTSCP nun stabbilisci un cumpurtamentu TSC nvarianti o sincrunizzatu. L'ntirpritazzioni dû valuri ausiliariu è difinita dû sistema upirativu. Suttàjiri dui campiuna senza capiri l'urdinamentu pò misurari un ntervallu diffirenti di chiddu privistu.
Cumpatibbilitati e pristazzioni nnâ pràtica
Un benchmark àvi macari bisognu di lìmiti curretti dû cumpilaturi, riscaldamentu, dati rapprisintativi e na bona cumprensiuni dâ migrazzioni e dâ pianificazzioni. Ripètiri na misurazzioni malamenti urdinata nun la renni pricisa. Cumunicati l'ambienti e l'incertezza cu ogni risurtatu.
Na lista di virìfica pràtica
- Riggistra lu mudellu esattu dû prucissuri o dâ piattafurma e li virsioni di l'applicazzioni, dû SO e dû runtime cuinvorti. Manteni la formulazzioni di l'erruri o dû requisitu riali.
- Cuntrolla lu rifirimentu dû prudutturi pi ddu mudellu esattu, poi spizziona la capacitati effittiva e lu statu abbilitatu nta l'ambienti unni lu prugramma gira.
- Cunfrunta ogni requisitu dû binariu o dû backend silizziunatu. Na funziunalitati cû nomu sìmili, un pseudònimu o n'etichetta ticnulòggica ginèrica nun abbàstanu.
- Cunferma ca l'applicazzioni hà silizziunatu la mplimintazzioni privista. Usa la sò diagnòstica ducumintata e un fallback suppurtatu quannu li requisiti nun sunnu suddisfatti.
- Fai un canciamentu suppurtatu a la vota e ripeti lu stissu caricu di travagghiu. Manteni dispunìbbili la cunfigurazzioni urigginali e lu pircorsu di ricùp ситуаazzioni.
Si la funziunalitati e' ndicata ma lu software nun la po usari
Accumenza cû cumpunenti esattu ca fallisci. Un database d'hardware discrivi la capacitati riggistrata; lu sistema upirativu o l'hypervisor ponnu ammustrari n'ambienti effittivu diffirenti. N'erruri di struzzioni illigali addanna puru n'indàggini supra la struzzioni ca fallisci pi daveru e supra la build binaria, picchì la curruzzioni o na struzzioni nun currilata e nun suppurtata ponnu fari un sìntumu sìmili.
Installa la virsioni di l'applicazzioni, dû driver o dû runtime suppurtata pâ piattafurma esatta, e usa la build di basi o di fallback ducumintata dû prudutturi si n'hai bisognu. N'aggiurnamentu dû software nun po criari na struzzioni ca manca nnô prucissuri. Li canciamenti di firmware e di pulìtica di sicurizza avìssiru a sèquiri la prucidura dû prudutturi dû sistema e un pianu di ricùpiru mmeci d'un ricittariu d'uttimizzazzioni ginèricu.
Funti e scanciu di st'esplicazzioni
Intel 64 and IA-32 Architectures Software Developer's Manual
Sti rifirimenti stabbilìscinu lu cumpurtamentu architittùnicu e li requisiti dû software. Nun virìficanu di manera ndipinnenti ogni valuri di funziunalitati nta na pàggina d'un mudellu hardware culligatu. Pû supportu dû mudellu, usa li provi dû prudutturi di dda pàggina e cuntrolla la cunfigurazzioni effittiva dû sistema. St'artìculu nun duna un benchmark, na cirtificazzioni o na data di rivisioni ndipinnenti.
Funti e virìfica
Titularità editoriali: Feex. Nudda data di rivisioni nnipinnenti è riggistrata. Comu facemu i ricerchi.
- Intel 64 and IA-32 Architectures Software Developer's Manual · Li Vulumi 1 e 2 discrìvinu li famigghi di struzzioni muntuati e CPUID; lu Vulumi 3 discrivi statu, pagginazzioni, VMX e cuntrolli di prutizzioni. La ducumintazzioni d'architittura nun stabbilisci lu supportu pi un mudellu particulari.
Fu ùtili st'artìculu?
Un sì o un no abbasta. Scegghi un mutivu si voi, o junci na nota curta.
Grazzi. Chistu n'aiuta a megghiurari sta pàggina.