Nouvelles capacités de processeur avec l'introduction de SSE2 et SSE3. Développement de la technologie SSE dans les nouveaux processeurs Intel Prescott

Pas d'exécution (NX)

No-eXecute (NX) est une fonctionnalité du processeur qui permet de marquer les pages mémoire comme ne contenant pas de code exécutable. Cette fonctionnalité permet au CPU de protéger le système contre les attaques malware. NX empêche le placement de logiciels malveillants code de programme dans les zones mémoire disponibles. Windows 8 nécessite que les systèmes disposent de processeurs prenant en charge NX, et NX doit être activé pour garantir une sécurité adéquate et éviter les vulnérabilités potentielles.

Dans cette section, le terme NX fait directement référence au bit de processeur NX, défini par AMD, ou au bit de processeur XD équivalent, défini par Intel pour prendre en charge la fonctionnalité Data Execution Prevention (DEP) de Microsoft Windows.

DEP vous permet d'empêcher le démarrage code malicieuxà partir des pages mémoire. contenant des données. La version 32 bits de Windows utilise l'une des fonctionnalités suivantes pour prendre en charge DEP :

    Fonctionnalité de processeur pour protéger les pages contre l'exécution de code exécutable (NX)

    La fonction de bit eXecute Disable (XD) définie par Intel.

Pour utiliser ces fonctionnalités de processeur, le processeur x86 (32 bits) doit fonctionner en mode Extension d'adresse physique (PAE). La version 64 bits de Windows utilise la fonctionnalité de processeur NX pour les extensions 64 bits et certaines valeurs de champ d'autorisations PTE pour les processeurs Famille Intel Itanium (IPF).

Outre la fonction DEP sélection aléatoire L'ASLR (Address Space Layout Layout) déplace les images exécutables vers des emplacements aléatoires lorsque le système démarre, ce qui rend plus difficile l'exécution intentionnelle de code malveillant. ASLR et DEP ne sont efficaces que lorsque partage. Pour travail efficace ces deux mesures importantes Sécurité Windows La fonction NX doit être activée. Pour plus d’informations, consultez Contrôles de sécurité des logiciels Windows par des fournisseurs de logiciels indépendants.

Extension d'adresse physique (PAE)

Le processeur doit fonctionner en mode Extension d'adresse physique (PAE) pour utiliser la fonctionnalité du processeur NX. PAE est une fonctionnalité de processeur qui permet aux processeurs x86 d'accéder à plus de 4 Go de mémoire physique sur les versions de Windows prenant en charge cette fonctionnalité. Les architectures de processeurs Intel Itanium et x64 peuvent naturellement accéder à plus de 4 Go de mémoire physique et n'ont donc pas d'équivalent PAE. PAE est pris en charge sur les versions 32 bits de Windows fonctionnant exclusivement sur les systèmes x86.

Si la fonction DEP est activée sur un système doté d'un processeur prenant en charge la fonction NX, la fonction PAE est automatiquement activée.

Extensions SIMD (SSE2)

Tous les processeurs prenant en charge NX prennent également en charge les extensions SIMD 2 (SSE2). SSE2 est un jeu d'instructions de processeur SIMD en option. AMD inclut également le support SSE2 dans ses gammes Opteron et Athlon 64 Processeurs AMD 64. Tous les processeurs prenant en charge NX prennent également en charge SSE2. Beaucoup Applications Windows 8 ont des chemins de code avec le jeu d’instructions SSE2. SSE2 est une exigence pour Windows 8.

Champ d'application

Tous les processeurs modernes prennent en charge la fonction NX. La fonctionnalité NX peut être désactivée dans le BIOS. Basé sur les données télémétriques disponibles sur un pour cent de tous les systèmes sous Contrôle Windows® 7 NX fonction désactivée en raison d'un mauvais Paramètres du BIOS.

NX nécessite que les processeurs prenant en charge PAE s'exécutent sur les versions 32 bits de Windows. Tous les processeurs 64 bits prennent en charge NX car ils prennent en charge AWE. Par conséquent, l'utilisation d'anciens processeurs 32 bits qui ne prennent pas en charge PAE n'affecte pas WOA ou Serveur Windows(Windows Server 2012 est uniquement en 64 bits). L'exigence relative au processeur n'affecte pas les clients utilisant systèmes modernes, ou sur des systèmes qui répondent aux exigences du logo Windows 7, car ces systèmes disposent de processeurs 32 bits compatibles PAE qui prennent également en charge la fonctionnalité NX et son activation. Cela n'affectera qu'un petit nombre de clients qui exécutent Windows 7 sur de très anciens processeurs 32 bits sans prise en charge PAE/NX.

Pour Windows 8 et Windows Server 2012, PAE est requis. Cette exigence affecte un petit nombre d'utilisateurs qui utilisent du matériel plus ancien qui ne prend pas en charge PAE. Des erreurs se produisent lorsque Windows 8 est installé sur un ordinateur mal configuré machines virtuelles(VM). L'installation de Windows échoue avec l'erreur 0xc0000260 et revient à Windows 7.

Visual Studio fournit des instructions SSE2 par défaut. Les applications qui accèdent à ces instructions échouent sur les systèmes dotés de processeurs plus anciens qui ne prennent pas en charge SSE2, comme décrit dans Les instructions SSE2 sont générées lorsque l'option /arch:SSE est spécifiée.

Exigences d'assistance

Cette section décrit les mesures permettant de vérifier que les processeurs des systèmes exécutant Windows 8 prennent en charge les exigences PAE, NX et SSE2.

Exigence du logo Windows 8

L'exigence de certification matérielle de Windows 8 exige que tous les pilotes fonctionnent conjointement avec la protection Data Execution Prevention pour garantir un comportement correct du périphérique et du système de pilotes. Les pilotes ne doivent pas exécuter de code à partir de la pile, du pool paginé ou du pool de sessions. Les pilotes ne devraient pas échouer à démarrer lorsque le mode PAE est activé. Le micrologiciel du système doit avoir NX activé et la politique DEP doit être définie sur Toujours désactivé. Un test de certification est inclus pour vérifier que le système répond à cette exigence de prise en charge NX.

Pour plus d’informations, consultez Exigences de certification matérielle Windows.

Vérification de la compatibilité matérielle lors de l'installation de Windows

Programme Installations Windows dispose d'un vérificateur de compatibilité matérielle pour prendre en charge PAE, NX et SSE2 sur le système installé. Les systèmes qui ne répondent pas aux exigences de prise en charge du processeur pour PAE, NX et SSE2 sont signalés comme blocs matériels pour Windows 8 dans le rapport sur les problèmes de compatibilité et affichent un message. Le processeur de votre ordinateur n'est pas compatible avec Windows 8.

Riz. 1. Message d'erreur lié à une incompatibilité du processeur

Note

Cette vérification des exigences de support est uniquement disponible dans nouveau programme Assistant d'installation et de mise à jour de Windows. Windows 8 inclut une version alternative du programme d'installation dans le dossier Sources du support d'installation qui n'effectue pas cette vérification. Les clients qui tentent d'utiliser cette version alternative de l'installation de Windows sur un système qui ne répond pas aux exigences de prise en charge PAE/NX/SSE2 verront un message d'erreur lors de l'installation et reviendront ensuite à la version précédente système opérateur.

Lors du démarrage à partir d'un support ou d'un réseau, par exemple en utilisant les services de déploiement Windows (WDS) lors de l'installation Vérification de Windows la compatibilité n'est pas respectée. Dans de tels scénarios, un système sans prise en charge de NX et SSE2 générera une erreur critique (décrite dans la section suivante Améliorations du noyau) lorsque le programme d'installation tente de démarrer Windows.

Améliorations du noyau

Pour vérifier le respect de l'exigence de prise en charge des instructions SSE2 et de la fonction NX pour Fonctionnement de Windows 8, le noyau de ce système d'exploitation vérifie la présence de ces fonctions lors de l'initialisation. Les systèmes qui ne prennent pas en charge NX ou SSE2 ne peuvent pas s'initialiser Noyau Windows 8. Sur les systèmes pouvant désactiver NX dans le micrologiciel, ce paramètre est remplacé afin qu'un micrologiciel mal configuré ne provoque pas d'échec de démarrage. Essayer de démarrer un système sans prise en charge NX ou SSE2 entraînera une erreur critique. Sur un système 32 bits, les utilisateurs reçoivent le code d'erreur UNSUPPORTED_PROCESSOR (0x0000005D) ainsi que 4 lignes d'informations :

    Ligne 1 - code indiquant la fonction manquante et l'ID CPU

    Lignes 2 à 4 - lignes d'identification du fournisseur

Sur un système 64 bits erreur critique affiche le même code UNSUPPORTED_PROCESSOR que sur un système 32 bits ainsi que les quatre lignes d'informations suivantes :

    Ligne 1 - contenu du registre des fonctions standard

    Ligne 2 - contenu du registre des fonctions étendues

    Lignes 3 à 4 - toutes deux avec la valeur 0

Questions et réponses

Comment savoir si mon système prend en charge NX ou SSE2 ?

Vous pouvez utiliser l'outil ligne de commande Coreinfo pour obtenir des informations sur le processeur du système et afficher les entrées PAE, NX et SSE2 dans la liste de sortie. Symbole * apparaît à côté du nom de la fonctionnalité prise en charge. Symbole - s’affiche si la fonction n’est pas prise en charge. Par exemple:

Coreinfo v3.04 - Informations de vidage sur la topologie du processeur et de la mémoire du système Copyright (C) 2008-2012 Mark Russinovich Sysinternals - www.sysinternals.com Processeur AMD Athlon(tm) 64 X2 Dual Core 4600+ x86 Famille 15 Modèle 75 Stepping 2, AuthenticAMD HTT* Hyperthreading activé HYPERVISEUR - L'hyperviseur est présent VMX - Prend en charge la virtualisation assistée par matériel Intel SVM * Prend en charge la virtualisation assistée par matériel AMD EM64T * Prend en charge le mode 64 bits SMX - Prend en charge l'exécution de confiance Intel SKINIT - Prend en charge AMD SKINIT EIST - Prend en charge Intel Speedstep NX amélioré * Prend en charge la protection des pages sans exécution PAGE1GB - Prend en charge les grandes pages de 1 Go PAE * Prend en charge > les adresses physiques 32 bits PAT * Prend en charge la table d'attributs de page PSE * Prend en charge les pages de 4 Mo PSE36 * Prend en charge > l'adresse 32 bits 4 Mo de pages PGE * Prend en charge le global bit dans les tables de pages SS - Prend en charge la surveillance de bus pour les opérations de cache VME * Prend en charge le mode FPU Virtual-8086 * Implémente les instructions à virgule flottante i387 MMX * Prend en charge le jeu d'instructions MMX MMXEXT * Implémente les extensions AMD MMX 3DNOW * Prend en charge 3DNow! instructions 3DNOWEXT * Prend en charge 3DNow! instructions d'extension SSE * Prend en charge les extensions SIMD en streaming SSE2 * Prend en charge les extensions SIMD en streaming 2 SSE3 * Prend en charge les extensions SIMD en streaming 3 SSSE3 - Prend en charge les extensions SIMD supplémentaires 3 SSE4.1 - Prend en charge les extensions SIMD en streaming 4.1 SSE4.2 - Prend en charge les extensions SIMD en streaming 4.2 ……. . ……..

Si PAE apparaît comme une fonctionnalité non prise en charge dans la sortie de la commande Coreinfo, le processeur système ne prend pas en charge PAE et ne peut pas prendre en charge NX. Si PAE apparaît comme pris en charge, mais que la fonctionnalité NX apparaît comme non prise en charge dans la sortie de la commande Coreinfo :

    Si le processeur prend en charge NX, les paramètres du BIOS de ce système peuvent ne pas être configurés correctement pour prendre en charge NX.

Si NX est pris en charge sur le système, comment puis-je activer NX ?

Consultez le manuel du fabricant du système et accédez au BIOS d'un système prenant en charge NX pour trouver l'option NX ou XD sous Sécurité, puis activez la prise en charge de NX. Si le système ne Paramètres du BIOS qui incluent la prise en charge de NX, vous devrez peut-être contacter le fabricant pour mettre à jour le BIOS.

Note

Si NX est pris en charge sur un système 64 bits, les paramètres de configuration du système ne vous permettent pas de définir la stratégie DEP sur Toujours désactivé. Pour plus d'informations sur la configuration du système DEP, voir .

Pour réussir Démarrage Windows 8 processeurs système doivent prendre en charge NX et SSE2. Si le système prend en charge ces fonctionnalités mais que les paramètres ne sont pas configurés correctement, ces paramètres sont remplacés par le noyau avant le démarrage du système.

Que faire si vous ne parvenez pas à installer Windows 8 sur une machine virtuelle en raison de l'erreur 0x0000260 ?

Si la machine virtuelle est hébergée sur un système prenant en charge NX, vous devez activer PAE/NX dans Paramètres de la machine virtuelle ou dans Configuration Manager lorsque vous configurez la machine virtuelle Windows 8. Pour obtenir des instructions sur la façon d'activer PAE/NX pour une machine virtuelle, consultez le guide d'installation du produit de virtualisation.

Note

Si vous essayez d'installer Windows 8 sur machine virtuelle Hébergé sur un système Windows où NX est désactivé, vous devez suivre les instructions et activer NX sur le système avant d'activer PAE/NX pour la machine virtuelle.

ESS(Extensions SIMD en streaming) jeu d'instructions Et Extension SIMD processeur (Instruction unique, données multiples, une instruction - beaucoup de données), introduit pour la première fois dans les processeurs Pentium III (Katmaï), en réponse aux instructions émises un an plus tôt 3DMaintenant ! depuis DMLA. Initialement, l'ensemble s'appelait KNI(Katmai New Instructions), mais a acquis plus tard son nom actuel. La technologie a été introduite pour la première fois dans la production de masse en 1999 année, avec la sortie PIII (Katmaï).

Les instructions sont utilisées lorsque vous devez effectuer les mêmes actions sur différentes données. Grâce à ESS un très grand gain de performances est obtenu grâce à la parallélisation des flux de données de calcul (4 calculs par cycle d'horloge).

Contrairement à MMX Et 3DMaintenant ! Instructions, ESS peut utiliser simultanément ses instructions avec les instructions du coprocesseur, puisque les registres ESS et le coprocesseur ne sont pas courants. C'est un autre avantage indéniable, ainsi que la possibilité de travailler sans nombres entiers ( MMX ne pouvait fonctionner qu'avec des nombres entiers).

Usage ESS possible seulement si système opérateur prend en charge ces instructions.

ESScomprend :

SIMD l'extension en ajoute huit (ou 16 , si le processeur 64 -peu) 128 -registres de bits XMM(XMM 0-XMM 7), divisé par quatre 32 -bit (simple précision) registre à virgule flottante. En outre, il contient 32 -bit (en x86-6464 -bit) registre de contrôle et de surveillance, qui est également nécessaire pour vérifier l'état ESS instructions.

Puisque chaque registre a 128 -bit, peut tout stocker 4 depuis 32 -peu nombres à virgule flottante (1 peu signe, 8 bits exposants, 23 -mantisse de x bits). En fait, au cours d'un cycle d'horloge, toute donnée entrant dans le 128 bits (lettres, entiers, octets, double précision, etc.) et tout dépend de optimisation du programme pour une tâche spécifique.

ESS

L'ESS peut réaliser 70 nouveau instructions, qui travaillent sur ces 128 morceaux, MMX et même ordinaire 32 -bit s'enregistre, si SIMD reste inactif.

ESS 2

Les instructions SSE 2 sont apparues avec la sortie du premier Pentium4 et nettement amélioré ESS première génération. Inclut la possibilité d’utiliser des opérations sur des types de données scalaires et encadrés. Il existe des instructions pour le traitement des flux d'entiers MMX données dans 128 -peu XMM registres ESS. Nouvel ensemble instructions a rendu le travail beaucoup plus facile programmeurs et même un dicton est né - " ESS j'aurais dû naître comme ça ESS 2».

ESS 3

Également nommé PNI (Nouvelles instructions de Prescott). Ajoutée 13 instructions supplémentaires, qui élargissent les capacités mathématiques DSP et couler gestion instructions. Plus comme amélioration cosmétique, que la version pratique, qui était la mise à jour précédente.

SSSE 3

Mise à jour supplémentaire pour ESS 3, qui comprend 16 nouvelles instructions. Permet de multiplier 16 -Nombres à virgule fixe ti-bit avec arrondi correct, entrez des mots dans les instructions et réorganisez les octets dans celles-ci.

Ajoutée 54 consignes, mais avec des réserves. DANS ESS 4.1(apparaît dans Intel Penryn) contient un ensemble réduit de 47 consignes, et en ESS 4.2– plein, à partir de 54 (+7 , ajouté à l'architecture Néhalem).

Les instructions ne fonctionnent qu'avec 128 -peu XMM 0-XMM 15. Ajoutée POPCNT et des instructions entières supplémentaires, etc. ESS 4 a apporté presque autant d'innovations que le premier en son temps ESS. L'objectif principal du développement était l'expansion des capacités multimédias - décodage de jeux, accélération des calculs physiques et vectoriels pour les jeux, accélération du traitement des photos et de la musique, etc.

Instructions SSE2 – abréviation de Streaming SIMD Extensions 2. Apparue uniquement dans la gamme de processeurs Pentium 4. La technologie SSE2 est un ensemble d'instructions contenant 144 instructions, essentielles à tous les programmes modernes.

Sans le support de ces technologies, vous ne pourrez pas installer version actuelle fenêtres, et même n'importe quel navigateur moderne. Lors de l'installation, si le processeur ne prend pas en charge SSE2, vous verrez une erreur - Ce programme nécessite un ordinateur prenant en charge les instructions SSE2. Regardons cela plus en détail.

Comment activer SSE2

Si votre processeur ne prend pas en charge cette technologie, vous ne pourrez pas l'activer. Assurez-vous que votre modèle est plus récent que :

  • IA-32
  • Tous les processeurs AMD jusqu'à Athlon 64 ne prennent pas en charge sse2
  • Pentium 1, 2, 3. Comme indiqué ci-dessus, le support n'est apparu que dans 4.
  • Transméta Crusoé
  • VIA C3

Tous les autres prennent déjà en charge les jeux d’instructions.

De plus, pour vous assurer que le support est disponible, installez le programme « CPU-Z ». Pour utiliser le programme afin de comprendre si sse2 est pris en charge, faites attention à la colonne « Instructions ». Il doit répertorier les technologies prises en charge par votre processeur.

Pour l'activer dans le BIOS, procédez comme suit :

Redémarrez l'ordinateur et au moment où il s'allume, appuyez plusieurs fois sur Del ou F1 (selon carte mère). Après avoir réussi à accéder au BIOS, allez dans « SSE Tweaks », puis vous devez définir « SSE Enable ». Appuyez sur F10, Y, Entrée.

Le processeur ne prend pas en charge SSE2

Bien entendu, votre ordinateur ne sert plus à rien si vous ne tenez pas compte des capacités des programmes réalisés sous Windows XP. Vous n'aurez pas besoin d'installer tout le reste.

Il semblerait que cela soit largement suffisant, mais ce n'est pas le cas. Vous ne pourrez plus surfer confortablement sur Internet. La moitié des sites ne s'ouvriront pas pour vous, et la seconde affichera des notifications afin que vous mettiez à jour votre navigateur.

Toutefois, si vous ne pouvez pas acheter un autre ordinateur, vous pouvez toujours travailler sur celui-ci.

Comment contourner la vérification sse2

Cela peut être fait, mais pour chaque programme, il est nécessaire d'effectuer le contournement séparément. Il y a beaucoup de fausses informations sur Internet « émulateur SSE2 » - cela n'existe pas. Vous êtes incité à télécharger des virus, à vous abonner à des SMS, etc. Pour contourner le contrôle, vous devez réécrire la majeure partie du code dans chaque programme, après quoi il ne fonctionnera plus correctement. Comme vous le comprenez, cela n’est pas nécessaire, car c’est une perte de temps.

Navigateurs pour processeur sans support SSE2

je pendant longtemps, comme vous, je ne voulais pas changer d'ordinateur portable à cause de SSE2, mais ils m'ont vaincu (erreurs et notifications). J'ai encore des navigateurs ( Google Chrome, Mozilla Firefox et Opera) qui ne nécessitent pas cet ensemble d'instructions. Ici, je partage avec vous – Télécharger

Attention, Dernièrement, les spammeurs écrivent dans les commentaires, prétendument en mon nom, que la version est obsolète et laissent un lien - je ne fais pas ça. Si je télécharge à nouveau le fichier, je modifie le lien dans l'article. Vous pouvez donc télécharger sans crainte.

Où trouver des programmes qui ne nécessitent pas de support

Si vous décidez de tester votre système nerveux et de continuer à utiliser ce processeur, vous aurez alors besoin de programmes qui ne nécessitent pas d'ensemble d'instructions. Vous pouvez les emmener partout Construction de Windows XP. Téléchargez simplement l'assemblage, qui contient des programmes dans le module complémentaire, et utilisez-les pour votre santé.

Bonjour à tous, aujourd'hui, nous allons parler de la façon de savoir quelles instructions SSE sont prises en charge par le processeur. Mais qu’est-ce que l’ESS, savez-vous ? Je ne sais pas, et ce n’est pas que je ne sais pas, je n’arrive même pas à comprendre ce que c’est. Eh bien, je comprends qu'il s'agit d'une instruction de processeur qui est nécessaire pour optimiser son fonctionnement, c'est-à-dire qu'à la même fréquence, le processeur avec cette instruction puisse traiter plus de commandes. Mais c'est ainsi, grosso modo, pour ainsi dire...

A propos de SSE, je ne sais même pas où dans la vie on en a besoin, peut-être pour les jeux ? Je sais ce qu'est l'Hyper-threading (même si ce n'est pas une instruction de processeur, c'est une technologie), ce qu'est VT-x, VT-d, je sais ce qu'est EM64T, mais je ne sais pas ce qu'est SSE ! Eh bien, ce sont les tartes les gars

Bref les gars, je vous dis tout de suite qu'il y a un petit problème avec cette affaire, ce que je veux dire c'est que moyens réguliers Sous Windows, il est impossible de savoir s'il existe ou non. Ici, vous devez télécharger un programme spécial. Mais ne vous inquiétez pas, ce programme super duper est gratuit, pèse très peu, ne charge pas du tout l'ordinateur, mais en même temps il est MÉGA UTILE et son nom est CPU-Z (d'ailleurs, vous pouvez le télécharger ici : cpuid.com/softwares/cpu-z.html , c'est le site officiel).

Alors les gars, j'ai téléchargé CPU-Z, je l'ai installé puis je l'ai lancé. Et tout de suite vous découvrirez tout, voici le nombre de ces SSE que j'ai :

Pas un, pas deux, mais six, wow les gars !

Au fait, comme vous pouvez le constater, il y a encore beaucoup d'informations utiles ici, vous voyez ? Si vous avez un besoin urgent de savoir quelque chose sur votre processus, alors vous lancez rapidement CPU-Z et oups, tout ce dont vous avez besoin est à portée de main ! Je vous dis que le programme CPU-Z est unique en son genre ! Vous ne me croyez pas ? Eh bien, pas de problème, je vais vous le prouver tout de suite. Écoutez, savez-vous quand telle ou telle clé USB est sortie ? Eh bien, c'est-à-dire la date de sa sortie en usine, pour ainsi dire. Ou vous n'êtes pas intéressé ? Bon, certaines personnes sont très intéressées, mais par exemple, je suis très intéressé ! Et le programme CPU-Z peut afficher de telles informations ! Alors les gars, regardez, nous avons lancé CPU-Z, allez dans l'onglet SPD, là vous sélectionnez l'emplacement avec le support (à gauche), c'est-à-dire le connecteur sur lequel il est installé et regardez les informations sur le support sélectionné. J'ai une clé de 8 Go dans le quatrième emplacement et voici les informations affichées par le programme CPU-Z :

Ici vous pouvez voir que ma barre est sortie au cours de la 30ème semaine de 2014. Il est aussi écrit que mon fabricant est Hyundai Electronics, enfin, c'est comme ça que s'appelle la barre Hynix

Eh bien, en bref, CPU-Z est super, si vous avez besoin de voir rapidement les informations les plus importantes sur le matériel d'un ordinateur ou d'un ordinateur portable, il vous montrera tout sans gags ! Bref, je le recommande les gars !

Et aussi, j’ai oublié d’écrire quelque chose sur l’ESS. SSE ne peut pas être activé ou désactivé. Parce que cette instruction existe ou non. Par exemple, l’Hyper-threading peut être activé/désactivé, mais pas SSE !

C'est tout les gars, j'espère que tout était clair pour vous ici, et si quelque chose ne va pas, je m'excuse. Cette information vous a-t-elle été utile, honnêtement ? J'espère de tout mon cœur que oui ! Bonne chance dans la vie, puissiez-vous être en bonne santé et ne pas tomber malade, bonne chance

09.12.2016

DANS processeurs modernes les instructions sont utilisées pour accélérer le travail et optimiser les algorithmes exécutables.

AMD64 (x86-64)

EM64T (x86-64)

3D étendu maintenant !

IA-32 (x86-32)

MIMD

DMIS

SIMD

SISD

ESS2

ESS3

ESS4

ESS4.1

ESS4.2

SSE4A

SSSE3

MMX (Multimedia Extensions - extension multimédia) - nom commercial ensemble supplémentaire instructions qui effectuent des actions typiques pour l’encodage/décodage de données audio/vidéo en streaming dans une seule instruction machine. Apparu pour la première fois dans les processeurs Pentium MMX. Développé dans le laboratoire d'Intel à Haïfa, en Israël, dans la première moitié des années 1990.

SIMD (Single Instruction, Multiple Data) est un principe informatique qui permet le parallélisme au niveau des données.

SSE (English Streaming SIMD Extensions, extension SIMD streaming du processeur) est un jeu d'instructions SIMD (English Single Instruction, Multiple Data, One instruction - many data) développé par Intel et introduit pour la première fois dans les processeurs de la série Pentium III en réponse à un jeu d'instructions 3DNow! similaire d'AMD, introduit un an plus tôt. Initialement, le nom de ces instructions était KNI, qui signifiait Katmai New Instructions (Katmai est le nom de la première version du noyau Processeur Pentium III).

La technologie SSE a permis de surmonter 2 problèmes principaux du MMX : lors de l'utilisation de MMX, il était impossible d'utiliser simultanément les instructions du coprocesseur, car ses registres étaient utilisés pour MMX et travaillaient avec des nombres réels.

SSE comprend huit registres de 128 bits (xmm0 à xmm7) dans l'architecture du processeur, chacun étant traité comme 4 valeurs consécutives à virgule flottante simple précision. SSE comprend un ensemble d'instructions qui effectuent des opérations sur des types de données scalaires et boxés.

L’avantage en termes de performances est obtenu lorsqu’il est nécessaire d’effectuer la même séquence d’actions sur différentes données.

La mise en œuvre des blocs SIMD s'effectue en parallélisant le processus de calcul entre les données. Autrement dit, lorsque plusieurs flux de données traversent tour à tour un bloc.

SSE2 (Streaming SIMD Extensions 2) est un jeu d'instructions SIMD (Single Instruction, Multiple Data) développé par Intel et introduit pour la première fois dans les processeurs de la série Pentium 4.

SSE2 utilise huit registres de 128 bits (xmm0 à xmm7) inclus dans l'architecture x86 avec l'entrée d'extension SSE, dont chacun est traité comme 2 valeurs à virgule flottante double précision consécutives. SSE2 comprend un jeu d'instructions qui effectue des opérations sur les types de données scalaires et boxés. SSE2 contient également des instructions pour le traitement de flux de données entières dans les mêmes registres xmm 128 bits, ce qui rend cette extension plus préférable pour les calculs d'entiers que l'utilisation du jeu d'instructions MMX, apparu beaucoup plus tôt.

L'avantage en termes de performances est obtenu lorsqu'il est nécessaire d'effectuer la même séquence d'actions sur un grand ensemble de données du même type.

SSE3 (PNI - Prescott New Instruction) est la troisième version de l'extension SIMD d'Intel, descendante de SSE, SSE2 et x87. Introduit pour la première fois le 2 février 2004 dans le cœur Prescott du processeur Pentium 4. En 2005, AMD a proposé son implémentation de SSE3 pour les processeurs Athlon 64 (cœurs Venice et San Diego).

L'ensemble SSE3 contient 13 instructions :

FISTTP (x87)

MOVSLDUP (SSE)

MOVSHDUP(SSE)

MOVDDUP (SSE2)

LDDQU (SSE/SSE2)

ADDSUPD (SSE)

ADDSUPD (SSE2)

HADDPS (SSE)

HSUBPS (SSE)

HADDPD (SSE2)

HSUBPD (SSE2)

- MONITOR (pas d'équivalent en SSE3 pour AMD)

- MWAIT (pas d'équivalent en SSE3 pour AMD).

SSE4 est un ensemble d'instructions Intel Core microarchitecture, implémentée pour la première fois dans les processeurs de la série Penryn (à ne pas confondre avec le SSE4A d'AMD). Il a été annoncé le 27 septembre 2006, mais Description détaillée n'est devenu disponible qu'au printemps 2007.

SSE4 se compose de 54 instructions, dont 47 sont classées SSE4.1 (on ne les trouve que dans les processeurs Penryn). Je m'attendais à ce que ensemble complet Les instructions (SSE4.1 et SSE4.2, soit 47 + 7 instructions restantes) seront disponibles dans les processeurs Nehalem. Aucune des instructions SSE4 ne fonctionne avec les registres mmx 64 bits (uniquement avec xmm0-15 128 bits).

Le compilateur Intel C depuis la version 10 génère des instructions SSE4 lorsque l'option -QxS est spécifiée.

SSE4 a ajouté des instructions qui accélèrent la compensation de mouvement dans les codecs vidéo, une lecture rapide de la mémoire WC et de nombreuses instructions pour simplifier la vectorisation des programmes par les compilateurs. Pour la première fois dans SSE4, le registre xmm0 était utilisé comme argument implicite pour certaines instructions.

SSE4.1 est une extension du jeu d'instructions SSE4 d'Intel.

Vous trouverez ci-dessous les instructions incluses dans SSE4.1 :

- Accélérer la vidéo (3 instructions)

- Primitives vectorielles (5 instructions)

- Insertion/Extraction (4 instructions)

- Multiplication vectorielle scalaire (2 instructions)

- Mélange (4 instructions)

Vérifications des bits

- Arrondi (2 instructions)

Lecture de la mémoire des WC

SSE4.2 se compose de 7 instructions.

- Traitement des chaînes (4 instructions)

Comptage CRC32

- Compter la population de bits unitaires

- Primitives vectorielles

SSE4A est une extension des instructions SSE4 d'AMD, conçue non pas comme un ajout, mais comme une alternative aux instructions SSE4 d'Intel.

SSSE3 (Supplemental Streaming SIMD Extension 3) est la désignation donnée par Intel à la 4ème extension du jeu d'instructions. Le précédent était désigné SSE3 et Intel a ajouté un autre "S" au lieu d'augmenter le numéro d'extension, probablement parce qu'ils considéraient SSSE3 comme un simple ajout à SSE3. Souvent, avant que la désignation officielle SSSE3 ne soit utilisée, ces nouvelles équipes étaient appelées SSE4. Ils portaient également les noms de code Tejas New Instructions (TNI) et Merom New Instructions (MNI), d'après les processeurs sur lesquels Intel avait l'intention de prendre en charge ces nouvelles instructions pour la première fois. Introduit dans la microarchitecture Intel Core, SSSE3 est disponible en série Processeurs Xeon 5100 (versions Serveur et Workstation), ainsi que Processeurs Intel Core 2 (versions Notebook et Desktop).

La nouveauté de SSSE3, par rapport à SSE3, réside dans 16 commandes uniques qui fonctionnent sur des entiers compressés. Chacun d'eux peut fonctionner avec des registres 64 bits (MMX) et 128 bits (XMM), c'est pourquoi Intel fait référence à 32 nouvelles instructions dans ses documents.

En voici quelques uns:

- Travailler avec le panneau (2 instructions)

Changements

- Mélange d'octets

- Multiplier (2 instructions)

- Addition/soustraction horizontale d'entiers (4 instructions)

3DMaintenant ! - extension supplémentaire MMX pour les processeurs AMD à partir d'AMD K6 3D. La raison de la création de 3DNow! était le désir de gagner en supériorité sur les processeurs Intel dans le domaine du traitement des données multimédia. Bien que cette extension soit un développement d'AMD, IBM, Cyrix et d'autres l'ont également intégrée dans leurs processeurs.

La technologie 3DNow ! entré le 21 nouvelle équipe processeur et la possibilité d'exploiter des types réels 32 bits dans des registres MMX standard. Également ajouté instructions spéciales, optimisant le passage à MMX/3DNow! (femms, qui a remplacé instructions standards emms) et travailler avec le cache du processeur. Ainsi, 3DNow! élargi les capacités de la technologie MMX sans nécessiter l'introduction de nouveaux modes de fonctionnement du processeur et de nouveaux registres.

Vérification du support 3DNow ! processeur.

Avant de commencer à travailler avec 3DNow! vous devez vous assurer que le processeur les prend en charge. L'instruction CPUID est utilisée pour cela. La procédure générale de vérification est la suivante :

1. Assurez-vous que le processeur prend en charge l'instruction CPUID. Sinon, le processeur ne prend pas en charge 3DNow !.

2. Exécutez l'instruction cpuid avec EAX = 0 - ceci est nécessaire pour l'étape suivante.

3. Exécutez CPUID avec la valeur EAX = 80000000h. Si après avoir exécuté l'instruction dans EAX, la valeur est inférieure à 1, alors 3DNow! non supporté.

4. Exécutez CPUID avec EAX = 80000001h. Si après l'exécution le bit 31 du registre EDX est mis à 1, alors 3DNow! prise en charge. Sinon - non.