Hopp til innhold

ADX

ArkitekturreferanseFeex

ADX legger til x86-heltallsaddisjonsinstruksjoner som tillater uavhengige mentekjeder. Det er nyttig for nøye skrevet multipresisjonsaritmetikk og er uavhengig av BMI2.

Dette må du vite

ADX legger til x86-heltallsaddisjonsinstruksjoner som tillater uavhengige mentekjeder. Det er nyttig for nøye skrevet multipresisjonsaritmetikk og er uavhengig av BMI2.

Slik fungerer det

ADCX bruker menteflagget og ADOX bruker overflytflagget som separate mente-inndata og -utdata. En rutine for store heltall kan flette to kjeder når dataavhengighetene tillater det. Innledende flaggverdier, registerallokering og samspillet med andre flaggskrivende instruksjoner må kontrolleres.

Hvor det er nyttig

En multiplikasjonskjerne for store tall kan kombinere delprodukter med uavhengige mentekjeder, noen ganger sammen med BMI2 MULX. Dette er et implementeringsvalg inne i et bibliotek, ikke en prosessoromfattende modus som gjør all heltallsaddisjon raskere.

Slik kontrolleres støtte og aktivering

CPUID.07H.00H:EBX bit 19 indikerer ADX. Fordel utførelsen uavhengig for enhver ytterligere instruksjonsfamilie som brukes av rutinen. Valider menteforplantning og grensetilfeller samt vanlige numeriske resultater.

Kontroller den nøyaktige instruksjons- og operandformen i stedet for å utlede støtte fra en tilgrensende utvidelse. Skalære heltallsfunksjoner bruker generelt universalregistre; en koding knyttet til vektorer betyr ikke automatisk et krav om vektorstatus.

Hva funksjonen ikke etablerer

ADX garanterer ikke en kryptografisk implementering med konstant tid og akselererer heller ikke alle operasjoner med store heltall. Det innebærer ikke BMI2, og bruk av en annen instruksjon som overskriver et nødvendig flagg, kan ødelegge algoritmen.

Kompatibilitet og ytelse i praksis

Korrekthet avhenger av grensetilfeller så vel som hastighet. Null-inndata, overflyt, menteflagg, operandbredde, justering og minnerekkefølge kan endre semantikken. Foretrekk kompilator- eller bibliotekgrensesnitt som dokumenterer disse detaljene og tilbyr en støttet reservemetode.

En praktisk sjekkliste for verifisering

  1. Registrer den nøyaktige prosessor- eller plattformmodellen og de involverte applikasjons-, OS- og kjøretidsversjonene. Bevar ordlyden i den faktiske feilen eller kravet.
  2. Sjekk produsentreferansen for akkurat den modellen, og undersøk deretter den faktiske kapasiteten og aktiverte tilstanden i miljøet der programmet kjører.
  3. Sammenlign ethvert krav til den valgte binærfilen eller baksiden. En lignende navngitt funksjon, et alias eller en bred teknologietikett er ikke tilstrekkelig.
  4. Bekreft at applikasjonen valgte den tiltenkte implementeringen. Bruk dens dokumenterte diagnostikk og en støttet reservemetode når kravene ikke er oppfylt.
  5. Gjør én støttet endring om gangen og gjenta den samme arbeidsbelastningen. Hold den opprinnelige konfigurasjonen og gjenopprettingsstien tilgjengelig.

Hvis funksjonen er oppført, men programvare ikke kan bruke den

Start med den nøyaktige komponenten som feiler. En maskinwaredatabase beskriver registrert kapasitet; operativsystemet eller hypervisoren kan eksponere et annet reelt miljø. En feil om ulovlig instruksjon krever også undersøkelse av den faktiske feilende instruksjonen og binærbyggingen, fordi korrupsjon eller en urelatert, ustøttet instruksjon kan gi et lignende symptom.

Installer applikasjonen, driveren eller kjøretidsversjonen som støttes for den nøyaktige plattformen, og bruk om nødvendig leverandørens dokumenterte grunnlinje- eller reservebygg. En programvareoppdatering kan ikke opprette en instruksjon som prosessoren mangler fastvare. Endringer i fastvare og sikkerhetspolicy bør følge systemprodusentens prosedyre og en gjenopprettingsplan i stedet for en generisk optimaliseringsoppskrift.

Kilder og omfang for denne forklaringen

Intel 64 and IA-32 Architectures Software Developer's Manual

Disse referansene etablerer arkitektonisk oppførsel og programvarekrav. De verifiserer ikke uavhengig hver funksjonsverdi på en koblet maskinvaremodells side. For modellstøtte, bruk den sidens produsentdokumentasjon og kontroller den reelle systemkonfigurasjonen. Denne artikkelen oppgir ikke en referansemåling, sertifisering eller dato for uavhengig gjennomgang.

Kilder og verifisering

Redaksjonelt eierskap: Feex. Ingen uavhengig vurderingsdato er registrert. Hvordan vi gjør undersøkelser.

Var denne artikkelen nyttig?

Et ja eller nei holder. Velg en grunn hvis du vil, eller legg til en kort kommentar.

Var denne artikkelen nyttig?