RDTSCP
RDTSCP lukee x86-aikaleimalaskurin ja lisäsuorittimen tunnisteen arvon määritetyillä järjestyksen säilyttävillä ominaisuuksilla. Se ei ole täysin sarjallistava käsky eikä automaattinen suorituskykytestaustyökalu.
Mitä sinun tulee tietää
RDTSCP lukee x86-aikaleimalaskurin ja lisäsuorittimen tunnisteen arvon määritetyillä järjestyksen säilyttävillä ominaisuuksilla. Se ei ole täysin sarjallistava käsky eikä automaattinen suorituskykytestaustyökalu.
Miten se toimii
RDTSCP palauttaa laskurin arvon rekistereihin EDX:EAX ja IA32_TSC_AUX-arvon rekisteriin ECX. Sen järjestyssäännöt rajoittavat joitakin aiempia operaatioita, mutta myöhemmät käskyt voivat alkaa ennen kuin luku valmistuu, ja aiemmilla tallennuksilla on lisänäkyvyysnäkökohtia. Oikea fence-sekvenssi riippuu siitä, mitä mittauksen on tarkoitus rajata.
Missä siitä on hyötyä
Matalan tason ajoituskoodi voi käyttää lisäarvoa auttamaan suorittimen vaihdon havaitsemisessa, kun käyttöjärjestelmä määrittää sen asianmukaisesti. Vankka suorituskykytestaus hallitsee silti kääntämistä, kuormituksen esilämmitystä, keskeytyksiä, ajoitusta, laskurin kalibrointia ja järjestettäviä operaatioita.
Tuen ja käyttöönoton tarkistaminen
CPUID.80000001H:EDX-bitti 27サリーenumerointi RDTSCP. Vahvista laskurikäytäntö todellisessa käyttöjärjestelmässä tai hypervisorissa ja käytä dokumentoitua ajoitusmenetelmää tarvittavien fence-käskyjen kanssa. Suosi käyttöjärjestelmän monotonista kelloa sovelluksen kuluneelle ajalle.
Valitse kello kysymyksenasettelun mukaan: kulunut aika, säikeen CPU-aika ja kellojaksot ovat eri mittauksia. Käyttöjärjestelmän kellorajapinnat sisältävät alustakäytäntöjä, jotka suora konekäskynäyte voi ohittaa.
Mitä ominaisuus ei takaa
RDTSCP-tuki ei vahvista invarianttia tai synkronoitua TSC-käyttäytymistä. Lisäarvon tulkinta on käyttöjärjestelmäkohtainen. Kahden näytteen vähentäminen toisistaan ymmärtämättä järjestystä voi mitata muuta aikaväliä kuin oli tarkoitus.
Yhteensopivuus ja suorituskyky käytännössä
Suorituskykytesti vaatii myös oikeat kääntäjärajat, lämmittelyn, edustavan datan sekä siirtymisen ja säikeiden ajoituksen ymmärtämistä. Huonosti järjestetyn mittauksen toistaminen ei tee siitä tarkkaa. Ilmoita ympäristö ja epävarmuus minkä tahansa tuloksen yhteydessä.
Käytännön tarkistuslista todentamiseen
- Kirjaa tarkka suoritin- tai alustamalli sekä kyseessä olevat sovellus-, käyttöjärjestelmä- ja ajonaikaiset versiot. Säilytä todellisen virheen tai vaatimuksen sanamuoto.
- Tarkista kyseisen tarkan mallin valmistajaviite ja tutki sitten todellinen suorituskyky ja käyttöönottotila ympäristössä, jossa ohjelma suoritetaan.
- Vertaa valitun binaarin tai taustajärjestelmän jokaista vaatimusta. Samankaltaisesti nimetty ominaisuus, alias tai laaja teknologiamerkintä ei riitä.
- Varmista, että sovellus valitsi aiotun toteutuksen. Käytä sen dokumentoitua diagnostiikkaa ja tuettua vararatkaisua, kun vaatimukset eivät täyty.
- Tee yksi tuettu muutos kerrallaan ja toista sama työkuorma. Pidä alkuperäinen kokoonpano ja palautuspolku saatavilla.
Jos ominaisuus on luettelossa, mutta ohjelmisto ei voi käyttää sitä
Aloita tarkasta vikaantuvasta komponentista. Laitteistotietokanta kuvaa tallennettua kykyä; käyttöjärjestelmä tai hypervisori voi tuoda esiin erilaisen todellisen ympäristön. Virheellisen käskyn virhe vaatii myös todellisen virheellisen käskyn ja binaarikäännöksen tutkimista, koska korruptio tai liittymätön tukematon käsky voi aiheuttaa samanlaisen oireen.
Asenna kyseiselle alustalle tuettu sovellus-, ajuri- tai ajoympäristöversio ja käytä tarvittaessa toimittajan dokumentoitua perus- tai varakäännöstä. Ohjelmistopäivitys ei voi luoda käskyä, joka suorittimelta puuttuu. Laiteohjelmisto- ja tietoturvakäytäntömuutosten tulee noudattaa järjestelmävalmistajan menettelyä ja palautussuunnitelmaa yleisen optimointiohjeen sijaan.
Tämän selityksen lähteet ja laajuus
Intel 64 and IA-32 Architectures Software Developer's Manual
Nämä viitteet määrittävät arkkitehtuurisen käyttäytymisen ja ohjelmistovaatimukset. Ne eivät itsenäisesti vahvista kaikkia ominaisuusarvoja linkitetyllä laitteistomallisivulla. Mallikohtaista tukea varten käytä kyseisen sivun valmistajan todisteita ja tarkista todellinen järjestelmäkokoonpano. Tämä artikkeli ei tarjoa suorituskykytestiä, sertifiointia tai riippumatonta arviointipäivämäärää.
Lähteet ja vahvistus
Toimituksellinen omistajuus: Feex. Riippumatonta tarkistuspäivämäärää ei ole kirjattu. Miten tutkimme.
- Intel 64 and IA-32 Architectures Software Developer's Manual · Osat 1 ja 2 kuvaavat nimetyt käskyperheet ja CPUID:n; Osa 3 kuvaa tila-, sivutus-, VMX- ja suojausohjaukset. Arkkitehtuuridokumentaatio ei vahvista tukea tietylle mallille.
Oliko tämä artikkeli hyödyllinen?
Kyllä tai ei riittää. Valitse halutessasi syy tai lisää lyhyt viesti.
Kiitos. Se auttaa meitä parantamaan tätä sivua.