MMX
MMX on varhainen x86-arkkitehtuurin pakattujen kokonaislukujen käskykantalaajennus, joka käyttää 64-bittisiä rekistereitä, jotka jakavat arkkitehtuurisen tallennustilan x87-liukulukurekisteritiedoston kanssa. Kyseisellä jaetulla tilalla on merkitystä koodia yhdisteltäessä.
Mitä sinun tulee tietää
MMX on varhainen x86-arkkitehtuurin pakattujen kokonaislukujen käskykantalaajennus, joka käyttää 64-bittisiä rekistereitä, jotka jakavat arkkitehtuurisen tallennustilan x87-liukulukurekisteritiedoston kanssa. Kyseisellä jaetulla tilalla on merkitystä koodia yhdisteltäessä.
Miten se toimii
MMX-operaatiot käsittelevät 64-bittistä rekisteriä pakattuina kokonaislukuelementteinä. MMX-rekisterien nimet jakavat tilan x87-rekisterien kanssa sen sijaan, että ne tarjoaisivat erillisen modernin vektoritilan. EMMS merkitsee x87-tilan tyhjäksi MMX-käytön jälkeen, jotta myöhempi x87-koodi voi käyttää liukulukupinoa oikein.
Missä siitä on hyötyä
Vanhat multimediaohjelmistot voivat käyttää MMX-käskyjä saturoituun tavuaritmetiikkaan. Uusi koodi käyttää tavallisesti sen sijaan XMM- tai laajempia vektoritoimintoja välttäen MMX- ja x87-tilan keskinäisen vuorovaikutuksen. Olemassa olevat binaarit saattavat silti sisältää MMX-käskyjä paljon uudemmallakin suorittimella.
Tuen ja käyttöönoton tarkistaminen
CPUID.01H:EDX bitti 23 ilmoittaa MMX-tuen. Vanhaa koodia vianmääritettäessä tarkista sekä varsinainen käskyjärjestys että sen EMMS- ja tilankäsittely. Ominaisuuslippu ei voi varmistaa, että rutiini noudattaa kutsukäytäntöä oikein.
SIMD-ominaisuus kuvaa käskyjä, ei lisäytimiä. Käskymuoto määrittää elementin leveyden, etumerkillisyyden, pyöristyksen, kohdistuksen ja sen, mitkä kaistat ovat vuorovaikutuksessa. Ohjelmiston on säilytettävä ABI-rajapinnan rekisteritila ja käytettävä tuettua suoritusympäristöä.
Mitä ominaisuus ei takaa
MMX on kokonaisluku-SIMD, ei 64-bittistä yleiskäyttöistä suoritusta tai x86-64-tukea. Se ei implikoi SSE-laajennusta tai myöhempiä laajennuksia. Puuttuva siivous MMX- ja x87-koodia sekoitettaessa voi aiheuttaa toimintavirheitä riippumatta siitä, tukeeko suoritin kyseisiä käskyjä.
Yhteensopivuus ja suorituskyky käytännössä
Myöhemmillä SSE-perheen nimillä on omat ominaisuutensa bitit. Tarkista tuotantobinaarille täydellinen vähimmäisominaisuusjoukko, mukaan lukien kirjastot ja käynnistyskoodi. Korvaava toteutus on hyödyllinen vain, jos mitään tukematonta käskyä ei suoriteta ennen valintavaihetta.
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 · 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.
- 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.
- x86-64 psABI: prosessoriarkkitehtuurin ja mikroarkkitehtuurin tasot · Konerajapinta, prosessoriarkkitehtuuri: perustason ja kumulatiivinen v2/v3/v4-ominaisuustaulukko, käyttöjärjestelmätilan tarkistukset ja käyttöönottosuositukset.
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.