Partager via


Présentation des intrinsèques

[Cette documentation constitue un aperçu et peut faire l'objet de modifications avec les versions ultérieures. Blank topics are included as placeholders.]

Spécifique à Microsoft

3DNow ! la technologie fournit jusqu'à 26 instructions supplémentaires pour prendre en charge le traitement graphique 3D et audio haute performance. 3DNow ! l'instruction est une instruction vectorielle qui traitent les registres 64 bits. 3DNow ! l'instruction est SIMD ; chaque instruction opère des paires de valeurs 32 bits. Consultez 3DNow! Intrinsèques pour la documentation de référence pour les éléments intrinsèques d'AMD.

L'instruction vectorielle s'exécute en parallèle sur deux jeux de simple précision 32 bits, mots à virgule flottante. L'instruction scalaire traite un seul ensemble d'opérandes 32 bits (les insuffisantes moitiés les deux opérandes 64 bits).

le 3DNow ! la simple précision, format à virgule flottante est compatible avec le format en simple précision IEEE 754. Ce format comporte un signe de 1 bits, un exposant décentré de 8 bits, et un significand de 23 bits avec un bit entier masqué pour un total de 24 bits dans le significand. La écart de l'exposant est 127, compatible avec la norme de simple précision IEEE. Les significands sont normalisés pour se situer dans la plage de [1,2).

Contrairement à la norme IEEE qui déterminent quatre modes d'arrondi, 3DNow ! technologie prend en charge un mode d'arrondi, comme rond-à-proche ou rond-à-zéro (troncation). L'implémentation matérielle de 3DNow ! la technologie détermine le mode d'arrondi. Les processeurs AMD d'implémentent le mode rond-à-proche. Quel que soit le mode d'arrondi utilisé, l'instruction de conversion de flottant-point-à-entier et d'entier-à-flottant-point, PF2ID et PI2FD, utilise toujours rond--zéro en mode (de troncation).

Le plus grand nombre normal qui peut être représenté dans la variable pour cette précision au format hexadécimal a un exposant de FEh et un significand de 7FFFFFh, avec une valeur numérique de 2127 (2 - 2-23). Tous les résultats qui se heurtent au-dessus de la valeur positive qui peut être représenté maximale sont saturés à l'un ou l'autre de ce nombre normal qui peut être représenté maximal ou à l'infini positif. De même, tous les résultats qui se heurtent inférieure à la valeur négative qui peut être représenté minimum sont saturés à l'une ou l'autre de ce nombre normal qui peut être représenté minimum ou à l'infini négatif.

l'implémentation de 3DNow ! la technologie détermine comment le dépassement arithmétique est géré, comme maximale correctement signé ou nombres représentables minimum de normale ou infinis signés correctement. Le processeur génère le maximum correctement signé ou des nombres représentables minimum de normale.

Les infinis et le NANs ne sont pas pris en charge comme opérandes à 3DNow ! instruction.

Le plus petit nombre normal qui peut être représenté dans la variable pour cette précision au format hexadécimal a un exposant de 01:00 et un significand de 000000h, avec une valeur numérique de 2-126. Par conséquent, les résultats inférieure à cette valeur qui peut être représenté minimale dans la variable sont conservés à zéro. Le tableau suivant indique les plages d'exposant prises en charge par le 3DNow ! technologie.

3DNow !chaînes d'exposant de technologie

exposant décentré

Description

FFh

Non pris en charge. Les nombres non prises en charge peuvent être utilisés comme opérandes. les résultats des opérations avec les nombres non pris en charge sont indéfinis.

00:00

Zéro.

00h<x<FFh

Normal.

01:00

(1-127) le plus petit possible exposant 2.

FEh

(254-127) la plus grande possible exposant 2.

comme MMX l'instruction, 3DNow ! l'instruction ne génère pas d'exceptions numériques ou ne définit aucune balise d'état. Il revient à l'utilisateur de garantir que les données de dans-plage est fournie à 3DNow ! instruction et que tous les calculs restent dans les limites valides (ou sont traités comme prévu).

Les opérations de registre du 3DNow ! l'instruction à virgule flottante est exécutée par l'unité du registre X ou unité d'O de registre. Une opération peut être publiée sur chaque unité de registre à chaque cycle d'horloge à un taux maximale de problème et d'exécution de deux 3DNow ! opérations par cycle.

Normalement, dans les performances élevées 3DNow ! code, tout le 3DNow ! l'instruction est correctement planifié en dehors de l'un l'autre pour éviter des délais provoqués par des conflits de ressources d'exécution (ainsi que de prendre en compte les dépendances et des latences d'exécution).

Pour plus d'informations concernant l'optimisation du code sur le processeur AMD-K6, consultez la note d'application en optimisation du code du processeur AMD-K6commande, le nombre 21924. Ce document fournit des examens des techniques d'optimisation du code pour le processeur.

Pour les informations de ressources de exécution sur le processeur d'Athlon AMD, consultez le guide d'optimisation du code x86 de processeur d'AMD Athloncommande, le nombre 22007.

le 3DNow ! l'instruction d'amélioration des performances pour les processeurs AMD d'est résumée dans les tableaux suivants.

AMD 3DNow !instruction à virgule flottante

Opération

Fonction

L'opcode

PAVGUSB

Calculer la moyenne compressé d'entier non signé 8 bits

BFh

PFADD

Ajout à virgule flottante compressé

9Eh

PFSUB

Soustraction à virgule flottante compressée

9Ah

PFSUBR

Soustraction compressée d'inverse de virgule flottante

Aah

PFACC

La virgule flottante compressée accumulate

Aeh

PFCMPGE

Comparaison à virgule flottante compressée, supérieur ou égal à

90h

PFCMPGT

Comparaison à virgule flottante compressée, supérieure

A0h

PFCMPEQ

Comparaison à virgule flottante compressée, égal

B0h

PFMIN

Minimaux à virgule flottante compressé

94h

PFMAX

Maximale à virgule flottante compressé

A4h

PI2FD

Entier 32 bits compressé à la conversion à virgule flottante

0Dh

PF2ID

Virgule flottante compressée à l'entier 32 bits

1Dh

PFRCP

Approximation réciproque à virgule flottante compressée

96h

PFRSQRT

Approximation réciproque à virgule flottante compressée sqrt

97h

PFMUL

Multiplication à virgule flottante compressée

B4h

PFR CPIT1

Première étape réciproque à virgule flottante compressée d'itération

A6h

PFRSQIT1

Première étape compressée d'itération racine carrée réciproque à virgule flottante

A7h

PFR CPIT2

Étape réciproque/réciproque à virgule flottante compressée d'itération racine carrée deuxième

B6h

PMULHRW

L'entier 16 bits compressé multiply avec l'arrondi

B7h

AMD 3DNow !instruction d'amélioration des performances

Opération

Fonction

Octet de l'opcode deuxième

FEMMS

Une entrée/sortie plus rapide de MMX ou un état à virgule flottante.

0Eh

PREFETCH/PREFETCHW

  • les prefetches de fonction au moins une ligne de 32 octets dans le cache de données L1 (Dcache).

  • Les processeurs d'AMD-K6-2 et d'AMD-K6-III l'exécution de l'instruction de PREFETCHW de manière identique à l'instruction de PREFETCH.

  • Sur le processeur d'Athlon AMD, PREFETCHW peut augmenter les performances en fournissant un indicateur au processeur d'un but pour modifier la ligne de cache.

0Dh

processeur 3DNow d'AMD Athlon !Extensions de fournisseur de schémas de technologie

Opération

Fonction

L'opcode/imm8

PF2IW

La virgule flottante compressée à la conversion entière de mot avec le signe étendent

0Fh 0Fh/1Ch

PFNACC

Le négatif à virgule flottante compressé accumulate

0Fh 0Fh/8Ah

PFPNACC

Positif-négatifs mixtes compressés de virgule flottante s'accumulent

0Fh 0Fh/8Eh

PI2FW

Mot entier compressé à la conversion à virgule flottante

0Fh 0Fh/0Ch

PSWAPD

Mot double compressé d'échange

0Fh 0Fh/BBh

MMX extensions de jeu d'instructions à partir de le processeur d'AMD Athlon

Opération

Fonction

L'opcode/imm8

MASKMOVQ

Diffusion en continu magasin (de contournement de cache) à l'aide de le masque d'octet

0Fh F7h

MOVNTQ

Diffusion en continu magasin (de contournement de cache)

0Fh E7h

PAVGB

Moyen compressé de l'octet non signé

0Fh E0h

PAVGW

Moyenne compressée de mot non signé

0Fh E3h

PEXTRW

mot d'extrait dans le registre entier

0Fh C5 h

PINSRW

mot d'insertion à partir de registre entier

0Fh C4 h

PMAXSW

Mot signé par maximale compressé

0Fh Eeh

PMAXUB

Octets non signé maximale compressé

0Fh Deh

PMINSW

Mot signé minimum compressé

0Fh Eah

PMINUB

Octets non signé minimum compressé

0Fh Dah

PMOVMSKB

Masque d'octet de passer au registre entier

0Fh D7h

PMULHUW

packed multiplient le mot non signé élevé

0Fh E4h

PREFETCHNTA

Déplacez les données plus proche du processeur à l'aide de la référence de NTA

0Fh 18:0 *

PREFET CHT0

Déplacez les données plus proche du processeur à l'aide de la référence T0

0Fh 18:1 *

PREFET CHT1

Déplacez les données plus proche du processeur à l'aide de la référence T1

0Fh 18:2 *

PREFET CHT2

Déplacez les données plus proche du processeur à l'aide de la référence de T2

0Fh 18:3 *

PSADBW

Somme compressée de différences absolues d'octet

0Fh F6h

PSHUFW

Mot les fichiers pas traînant

0Fh 70h

SFENCE

Barrière magasin

0Fh AEh/7:00

le numéro de *The après l'opcode indique les différents modes de les dans l'octet de modR/M.

Pour plus d'informations concernant l'optimisation du code sur le processeur AMD-K6-2, consultez la note d'application en optimisation du code du processeur AMD-K6-2 commande, le nombre 21924. Ce document fournit des examens des techniques d'optimisation du code pour le processeur de la famille AMD-K6.

Pour les informations de ressources de exécution sur le processeur d'Athlon AMD, consultez le guide d'optimisation du code x86 de processeur d'AMD Athlon commande, le nombre 22007. Ce document fournit des examens des techniques d'optimisation du code pour le processeur de AMD Athlon.

Consultez https://go.microsoft.com/fwlink/?LinkID=95131 pour les versions en ligne de ces documents.

Voir aussi

Référence

AMD 3DNow ! Vue d'ensemble de la technologie et intrinsèques