Siirry sisältöön

BMI2

ArkkitehtuuriviiteFeex

BMI2 lisää skalaarisia x86-bitti- ja kokonaislukuoperaatioita, kuten rinnakkaisen bittien sijoituksen/poiminnan, muuttuvat siirrot ja lipuista riippumattoman kertolaskun. Se on erillinen BMI1:stä.

Mitä sinun tulee tietää

BMI2 lisää skalaarisia x86-bitti- ja kokonaislukuoperaatioita, kuten rinnakkaisen bittien sijoituksen/poiminnan, muuttuvat siirrot ja lipuista riippumattoman kertolaskun. Se on erillinen BMI1:stä.

Miten se toimii

PEXT kokoaa valitut syötebitit tiiviiksi alemman asteen tulokseksi; PDEP hajottaa alemman asteen syötebitit maskin valitsemiin paikkoihin. Muita BMI2-käskyjä ovat BZHI, MULX, RORX, SHLX, SHRX ja SARX. Nämä toimivat skalaarisilla kokonaislukurekistereillä siitä huolimatta, että ne käyttävät VEX-koodausta.

Missä siitä on hyötyä

Kompakti lautarepresentaatio tai bittikenttäkoodekki voi käyttää PEXT/PDEP-käskyjä muuntamiseen tiiviiden ja harvojen bittiasettelujen välillä. Niiden suorituskustannus vaihtelee huomattavasti toteutusten välillä, joten algoritmi tulisi mitata edustavilla syötteillä sen sijaan, että lyhyen käskysekvenssin oletettaisiin olevan nopea.

Tuen ja käyttöönoton tarkistaminen

CPUID.07H.00H:EBX-bitti 8 luetteloi BMI2:n. Tarkista tosiasiallisesti käytettyjen käskyjen kohdekohtainen suorituskyky ja pidä valitsin sellaisen koodin ulkopuolella, joka on käännetty vaatimaan ei-tuettuja ominaisuuksia.

Tarkista tarkka käsky ja operandimuoto sen sijaan, että päättelisit tuen viereisestä laajennuksesta. Skalaari-integraaliominaisuudet käyttävät yleensä yleiskäyttöisiä rekistereitä; vektoreihin liittyvä koodaus ei automaattisesti tarkoita vektoritilavaatimusta.

Mitä ominaisuus ei takaa

BMI2 ei ole AVX-vektorilaajennus eikä vaadi YMM-tilaa pelkästään siksi, että koodaus on VEX. Se ei takaa ADX- tai BMI1-tukea. MULX ja tavanomainen kertolasku eroavat toisistaan rekisteri- ja lippukäyttäytymisen osalta.

Yhteensopivuus ja suorituskyky käytännössä

Oikeellisuus riippuu reunatapauksista yhtä lailla kuin nopeudesta. Nollasyöte, ylivuoto, siirtoliput, operandin leveys, kohdistus ja muistijärjestys voivat muuttaa semantiikkaa. Suosi kääntäjä- tai kirjastorajapintoja, jotka dokumentoivat nämä yksityiskohdat ja tarjoavat tuetun varavaihtoehdon.

Käytännön tarkistuslista todentamiseen

  1. Kirjaa tarkka suoritin- tai alustamalli sekä kyseessä olevat sovellus-, käyttöjärjestelmä- ja ajonaikaiset versiot. Säilytä todellisen virheen tai vaatimuksen sanamuoto.
  2. Tarkista kyseisen tarkan mallin valmistajaviite ja tutki sitten todellinen suorituskyky ja käyttöönottotila ympäristössä, jossa ohjelma suoritetaan.
  3. Vertaa valitun binaarin tai taustajärjestelmän jokaista vaatimusta. Samankaltaisesti nimetty ominaisuus, alias tai laaja teknologiamerkintä ei riitä.
  4. Varmista, että sovellus valitsi aiotun toteutuksen. Käytä sen dokumentoitua diagnostiikkaa ja tuettua vararatkaisua, kun vaatimukset eivät täyty.
  5. 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 · x86-64 psABI: prosessoriarkkitehtuurin ja mikroarkkitehtuurin tasot

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.

Oliko tämä artikkeli hyödyllinen?

Kyllä tai ei riittää. Valitse halutessasi syy tai lisää lyhyt viesti.

Oliko tämä artikkeli hyödyllinen?