La cloche.

Il y a ceux qui ont lu cette nouvelle devant vous.
Abonnez-vous pour recevoir des articles frais.
E-mail
Nom
Nom de famille
Comment voulez-vous lire la cloche
Sans spam

20.04.2002 Mikhail kuzminsky

L'article analyse la société proposée AMD Architecture X86-64 et discuté de certains de ses avantages et de ses inconvénients par rapport aux autres architectures de 64 bits, principalement Intel / HP IA-64. Un bref aperçu de la microarchitecture des processeurs de marteau AMD, dans lequel l'architecture X86-64 sera mise en œuvre pour la première fois. Les caractéristiques de marteau sont comparées à d'autres processeurs haute performance modernes et prometteurs.

Si toutes les microprocesseurs d'architecture RISC hautes performances produites depuis la fin des années 90 sont 64 bits (Compaq / Dec Alpha, SGI / MIPS R1X000, IBM Power, HP PA-8x00, Sun UltrasParc), puis les principales architectures de la CISC (Intel X86 , IBM S / 390) Allez de 32 à 64 décharges uniquement maintenant (IA-64, IBM Z / Architecture).

La transition de S / 390 à Z / Architecture ressemble à une extension plutôt naturelle, tandis que la transition de X86 (maintenant IA-32) à IA-64 signifie, en fait, le changement complet du système de commande. Je pense que cela est dû au fait que le X86 a commencé son développement historique avec 8 systèmes de 16 bits. Par conséquent, le système est resté pour des considérations relativement statiques pendant de nombreuses années, l'équipe d'équipes est devenue assez "non naturelle" du point de vue des autres processeurs 32 bits.

Donc, si IBM est déplacé vers la plate-forme de 64 bits par un chemin évolutif, la transition de X86 à IA-64 est une révolution; La compatibilité est fournie uniquement par émulation matérielle. Il n'est pas clair si Intel veut à l'avenir d'abandonner l'IA-32 en faveur de l'IA-64, mais le fait que tous les logiciels pour l'IA-64 doivent être minimisés - sans parler d'une optimisation supplémentaire en vertu de l'IA-64 - semble clair. De toute évidence, la transition vers la plate-forme IA-64 prendra beaucoup de temps et coûtera beaucoup cher.

La société AMD s'est complètement passée différemment. Elle a proposé sa propre modernisation de l'architecture X86, qui (comme dans le cas d'IBM) est un développement évolutif naturel - tout comme le X86 à une fois a été amélioré de 16 à 32 décharges.

Pourquoi les plates-formes de CSC 32 bits ne deviennent-elles que 64 bits que maintenant, bien que les besoins d'applications 64 bits soient devenus assez importants il y a plusieurs années? En plus de la complexité déjà marquée de la transition (apparente dans le cas de l'IA-64 et de Z / Architecture), il doit être spécifié sur un tranchant moins cher. mémoire vive Avec l'augmentation simultanée de la capacité des modules de mémoire. En conséquence, une capacité de 4 gigaoctets de la capacité des systèmes 32 bits est assez réalisable dans les PC modernes. Alors, pourquoi ne pas augmenter les performances du serveur PC en installant une mémoire supplémentaire, n'est-ce pas si cher?

Architecture X86-64

Il semble que les différences entre l'architecture X86-64 de l'IA-32 soit encore inférieure aux différences entre l'IBM Z / Architecture de S / 390. L'AMD essaie de faire l'objet de souligner que les modifications sont minimes, bien que l'analyse description complète Vous permet d'identifier un nombre suffisant de petites nuances relatives à, cependant, avant tout les développeurs de systèmes logiciel, pas des applications.

Les changements clés X86-64 par rapport à l'état de l'IA-32 d'aujourd'hui ne sont vraiment pas tant et dans un certain sens sont similaires à ceux qui ont été fabriqués dans la transition de 16 à 32 bits X86 Architecture. Ces innovations incluent:

  • Les adresses virtuelles 64 bits (moins de complicité est possible dans une implémentation spécifique);
  • Espace d'adresse "plat" (plat) avec un seul espace de codes, de données et de piles;
  • Compteur de commande 64 bits (RIP);
  • mode d'adressage relatif au compteur de commande;
  • expansion des registres usage général (entier) à 64 décharges;
  • ajouter 8 nouveaux registres à usage général (R8-R15);
  • ajout de 8 autres registres SSE XMM8-XMM15 avec un bit 128 (correspond à l'extension Intel proposée SSE2).
Figure. 1. Exemple d'expansion des registres à usage général

Les «spécifications» sur des registres supplémentaires et des dimensions de données sont entrées sous forme de commandes de préfixes. L'ensemble des registres principaux X86-64 est présenté à la Fig. 1. Les registres sont de 64 bits, à l'exception des registres EFlags 32 bits, des registres de 128 bits des registres HMM et de décharge à 80 de 80 bits avec une couture flottante ST. L'architecture X86-64 comprend en particulier les extensions SSE2 IA-32 présentées dans le Pentium 4.

En figue. 1 montre comment les nouveaux registres 64 bits sont élargis par rapport aux registres 32 bits dans IA-32. Pour effectuer des opérations 16 bits, le registre A est traité comme AH, pour effectuer des opérations 32 bits - en tant que EAX, et pour l'exécution de 64 bits - comme RAX. Lors de l'exécution des opérations 32 bits dans lesquelles un registre entier sert de registre de résultat, des valeurs 32 bits sont complétées par des zéros à 64 bits. Les opérations de 8 et 16 bits sur des registres entier conservent des décharges seniors inchangées.

Pour travailler avec l'adressage 64 bits en X86-64, le mode mode long est entré (appelez-le "mode étendu"). Le mode de fonctionnement est défini par le bit de contrôle LMA (mode long actif), qui est encouragé si le microprocesseur passe en mode étendu. En mode étendu, les registres des segments ES, DS, FS, GS, SS sont ignorés. Dans le registre CS (descripteur de secteurs de code), les bits spécifiant les modes de fonctionnement du microprocesseur sont situés.

Au X86-64, le mode étendu a deux "sous-" ": mode 64 bits et mode de compatibilité. En mode de compatibilité, la compatibilité binaire avec des modes de 16 et 32 \u200b\u200bbits x86 est fournie. La sélection du mode est contrôlée par BITS CS.L. S'il est réglé sur 0 (mode de compatibilité), le système d'exploitation 64 bits, fonctionnant en mode LMA, peut effectuer d'anciennes applications X86 de 16 et 32 \u200b\u200bbits. Cs.d bits correspond à la sélection de l'opérande.

Par défaut, en mode 64 bits (le bit LMA BIT, CS.L \u003d 1, CS.D \u003d 0) utilise des adresses 64 bits et des opérandes 32 bits. Utilisation des préfixes de commande, vous pouvez modifier la taille de l'opérande (définissez-la à 64 ou 16 chiffres), ainsi que de modifier la taille de l'adresse (définie sur 32 décharges). Tables 1 et indiquent les principaux types valides de modes de processeur et de modes de système d'exploitation et d'applications.

Ces données montrent que les processeurs avec l'architecture de X86-64 peuvent fonctionner à la fois avec déjà existant 16 et 32 \u200b\u200bbits et avec de nouveaux systèmes d'exploitation 64 bits. Dans ce dernier cas, en mode de compatibilité, il est possible d'exécuter simultanément des applications 16 et 32 \u200b\u200bbits en raison de l'installation des bits correspondants dans les segments individuels des codes. Dans le même temps, les applications 32 bits peuvent utiliser les 4 premiers 4 Go de mémoire virtuelle.

Pour clarifier les caractéristiques des microprocesseurs avec l'architecture X86-64, il est nécessaire d'analyser les registres EAX / EBX / ECX / EDX dans lequel les résultats de l'exécution de la commande CPUID sont placés (lorsqu'il est appelé, comme avant, dans EAX, besoin de mettre 8000_0000H). Si le 29e bit in EAX est 1, le microprocesseur fonctionne en mode étendu.

Au X86-64, il existe un certain nombre d'améliorations intéressantes, en particulier pour les tâches de programmation du système. À titre d'exemple, nous notons l'introduction d'un nouveau registre de priorité de tâches TPR, qui est utilisé pour accélérer le traitement des interruptions. Pour plus de détails, envoyez des lecteurs à la description X86-64.

Marteau de microarchitecture.

Le processeur Athlon fait référence à la septième génération de l'architecture X86 mise en œuvre par AMD. Les premiers processeurs dans lesquels l'architecture X86-64 seront implémentées, a reçu le nom du code de marteau et constitue la huitième génération de processeurs X86 de AMD. Ils ont continué à la tendance d'une certaine perte de systèmes de commandement du processeur AMD de l'identité complète avec Intel X86. Cependant, si les premières différences étaient associées à l'introduction Amd nouveau Les commandes 3DNOW! Maintenant, le marteau, contrairement à x86, devient 64 bits. Marteau utilise des "pneus" internes 64 bits utilisés pour échanger des données. L'espace d'adressage virtuel est de 48 bits et l'espace d'adresses physiques est de 40 bits.

Les objectifs de la DMLA lors de la création de cette famille de microprocesseurs, en plus de l'objectif évident, le support x86-64 était:

  • si possible, l'augmentation minimale de la zone du microcircuit;
  • assurer les possibilités de croissance sans entrave de la fréquence d'horloge de processeur au niveau de développement de la technologie moderne;
  • fournir une accélération avec des applications 64 bits et 32 \u200b\u200bbits. La vue d'ensemble du marteau de microarchitecture donne du riz. 2.

Dans les processeurs de RISC les plus puissants modernes, il y a une tendance à s'intégrer à un microprocesseur de la mémoire de trésorerie du deuxième niveau de grande capacité. L'Intel et l'AMD dans leurs processeurs hautes performances ont montré la capacité de cache de second niveau de 512 Ko à 256 Ko, tout en l'intégrant simultanément dans le processeur. Mais dans Pentium 4 Northwood, les développeurs Intel ont de nouveau élargi le cache de deuxième niveau à 512 Ko. Il n'y a pas de données officielles pertinentes sur le marteau; Pendant ce temps, le réservoir du cache de deuxième niveau peut fortement affecter ses performances. Selon certains analystes, le réservoir du cache de deuxième niveau dans le marteau de modèles senior aura une quasci de valeur supérieure à celle des modèles d'athlon modernes.

Des tampons de redirection plus rapides dans ce processeur par rapport à Athlon sont mis à niveau. Le premier niveau I-TLB au marteau a une capacité de 40 lignes (16 lignes de plus qu'auparavant) et est entièrement associative. D-TLB au premier niveau les mêmes caractéristiques. Les deux tampons TLB fournissent des pages de mémoire avec une capacité de 4 Ko, 2 Mo et 4 Mo.

Le deuxième niveau I-TLB, ainsi que le deuxième niveau D-TLB, contient 512 lignes (deux fois plus importants que dans Athlon) et sont partiellement associatifs à 4 canaux. Comme spécifié dans, TLB est réduit par rapport aux retards d'Athlon. De plus, le matériel est mis en œuvre la possibilité de séparer la TLB entre plusieurs processus (pour cela, un "filtre ARSON" spécial est fourni).

Évidemment, une augmentation de la capacité de la TLB et de la prise en charge des pages de mémoire grandes tailles utilisation orientée dans les systèmes avec une grande capacité de mémoire; Il est naturel pour les applications 64 bits. La possibilité de séparer TLB peut à son tour améliorer les performances des systèmes d'exploitation multitâches sur les applications de serveur.

La direction traditionnelle d'amélioration des microprocesseurs modernes est d'améliorer la précision de la prédiction de transition. Marteau dispose d'une gamme d'adresses de transition d'une capacité de 2k chaînes, ainsi que d'une table d'historique de transition globale, contenant 16 000 mètres de 2 bits (4 fois plus que Athlon). Enfin, la capacité de pile des adresses de retour est de 12 lignes.

Une caractéristique importante qui contribue à l'amélioration des performances est l'intégration dans le marteau du contrôleur de RAM. Cela permet à la bande passante d'augmenter et de réduire les retards. Ces caractéristiques s'amélioreront automatiquement avec une fréquence croissante du processeur. Pour l'architecture X86, cette fonctionnalité est unique; Compaq identique dans leur nouveaux processeurs Alpha ev7 est sur le même chemin.

Le contrôleur de mémoire aura une interface d'une largeur de 8 ou 16 octets à la RAM DDR. Dans le dernier cas nous parlons À propos de la mémoire DDR à deux canaux, 4 modules DIMM de registre par canal. AMD promet une prise en charge des modules DIMM de registre et non tamponnés pour la mémoire DDR PC1600 / PC2100 / PC2700. Lorsque vous utilisez PC2700 dans une version à deux canaux bande passante La RAM atteint 5,3 GB / S. À titre de comparaison, le processeur Intel McKinley, qui, en raison des caractéristiques de l'architecture de l'IA-64, a besoin d'une largeur de bande passante de RAM, sera équipée d'un bus systémique seulement un peu plus rapide - 6,4 Go / s.

Application Lorsque des systèmes de construction basés sur la technologie de marteau, HyperTransport réduira la répétition de la RAM avec une augmentation de la fréquence d'horloge du microprocesseur, augmente automatiquement la bande passante des échantillons snoops dites tout en maintenant la cohérence de cache dans des systèmes multiprocesseurs avec une fréquence croissante et, Enfin, échelle de la bande passante et de la capacité de mémoire rapide avec une augmentation du nombre de processeurs du système.

La partie avant du convoyeur comprend un échantillon et un décodage de commandes (Fig. 2). La logique du travail de ces étapes dans le marteau a été compliquée, le degré d'emballage des commandes envoyé par des décodeurs aux planificateurs augmentait. Par rapport à Athlon, la longueur de cette partie du convoyeur a augmenté de 2 étapes, de sorte que la longueur totale du convoyeur entier de marteau est de 12 et le convoyeur de soucoupe est de 17 étapes. Selon les développeurs, il devrait contribuer à la croissance sans problème de la fréquence d'horloge du processeur à l'amélioration de la technologie de fabrication. Initialement, il est prévu d'utiliser une technologie de 0,13 micron "Silicon-on-Isolatorol"; Dans la seconde moitié de 2003, une transition à 0,09 microns est prévue.

Il convient de noter que les données officielles sur la zone occupées par le marteau sont absentes. Pendant ce temps, il a été signalé que le processeur de Clawhammer aura une superficie de 105 mm 2, tandis que Athlon / Palomino, fabriqué par la même technologie de 0,13 μm - 80 mm 2. À titre de comparaison, la place McKinley, à en juger par l'Intel présentées à la Conférence internationale CISCC? 2002, est de 464 mm 2.

Les inconvénients et les avantages des longs convoyeurs sont bien connus: il est plus facile d'augmenter la fréquence d'horloge, mais de plus en plus de pertes pour trop remplir le convoyeur, en particulier, avec une prédiction de transition incorrecte. Il est intéressant de comparer la longueur du convoyeur de marteau avec d'autres modernes microprocesseurs Intel. Dans le Pentium 4, qui a atteint des fréquences record en 2,2 GHz, par rapport au Pentium III, la longueur du convoyeur, grâce à l'utilisation de la technologie HyperPipeline, a été réduite de moitié - jusqu'à 20 étapes. Il avait le même objectif - assurant la croissance sans entrave de la fréquence d'horloge; Intel parle de 10 GHz à 2005-2006. À McKinley, la longueur du convoyeur, au contraire, réduite jusqu'à 8 étapes contre 10 en itanium, mais sa fréquence attendue est de 1 GHz.

La performance, comme on le sait bien, dépend non seulement de la fréquence d'horloge, mais également du nombre de commandes réellement effectuées. Selon AMD, dans le numéro de marteau, il augmentera. Mais à quel marteau de fréquence fonctionnera, il n'est pas rapporté; On peut supposer que cet indicateur sera d'environ 2 GHz.

Systèmes de construction basés sur le marteau

Nous avons examiné les principales caractéristiques de la microarchitecture de marteau, à l'exception de l'utilisation de la technologie HyperTransport. Il est utilisé dans le marteau à la fois pour connecter le système d'E / S et pour l'organisation des obligations interprocessionnaires. En fait, grâce au contrôleur de RAM construit sur le marteau et à l'utilisation de la technologie HyperTransport dans le marteau intégré les fonctions principales du chipset (plus précisément, le pont nord).

La technologie HyperTransport réelle se développe avec un consortium du même nom, basée par AMD, Sun Microsystems, Cisco Systems, Nvidia, Transmeta et Apple Computer. Je pense que la nécessité de développer une telle technologie dictée en premier de l'émergence sièges étroits Dans les systèmes d'E / S sur PC et utilisez généralement pneu PCI., caractéristiques de la performance dont ne répondent pas aux exigences des hautes performances modernes réseaux plastiques et des chaînes d'E / S pour les disques durs.

Les canaux HyperTransport avec le même nombre de contacts que PCI, fournissent une bande passante beaucoup plus élevée: la valeur de crête est de 3,2 Go / s. Les canaux HyperTransport ont une largeur de 16 décharges, fournissant 1,6 milliard d'engrenages par seconde dans chaque direction. HyperTransport vous permet d'effectuer un type "point à point" avec un mode duplex intégral et un traitement de transaction divisé. De telles caractéristiques de cette technologie permettent de l'utiliser pour l'organisation des obligations interprocessionnaires; Dans ce dernier cas, contrairement aux E / S, l'option HyperTransport est utilisée pour maintenir la cohérence de cache.

Figure. 3. Schéma de construction de systèmes de 4 processeurs basés sur le marteau

Les processeurs de marteaux ont trois ports pour les canaux hypertransport (Fig. 3), ainsi que le port au contrôleur de RAM. Par conséquent, le commutateur CPU est entré dans le processeur, qui achemine les commandes et les données entre ces ports et l'interface de requête du système (file d'attente SRQ). Cette file d'attente a une longueur de 24 lignes et la file d'attente vers le contrôleur DRAM (la file d'attente de la commande) est de 20 lignes. Pour communiquer avec le sous-système d'E / S, le pont hôte est utilisé dans le marteau, puis les deux autres canaux HyperTransport sont utilisés dans les échanges interprocesseurs.

La seule chose qui n'est pas incorporée dans le marteau est une interface AGP; Par conséquent, le microcircuit occupe l'emplacement du pont nord (Fig. 4), il est nécessaire de maintenir cette interface. On suppose qu'il s'agira d'AGP 8X.

Ce microcham est relié au pont du sud. Bien que AMD offre traditionnellement un chipset pour ses nouveaux processeurs et le fera évidemment, pour le marteau, il est déjà connu sur le développement d'un pont méridional pour ce processeur avec Nvidia et via Technologies. De plus, la "passerelle" entre HyperTransport et PCI-X est attendue dans les systèmes multiprocesseurs; Il est possible d'utiliser des moyens similaires pour d'autres normes d'E / S.

Figure. 4. Architecture des systèmes multiprocesseurs basés sur le marteau

A) Système à processeur

B) Système TwoProcesseur

C) Système FourProcesseur

Schémas présentés à la Fig. 4, démontrez l'efficacité de la construction de systèmes multiprocesseurs basés sur le marteau. Dans de tels ordinateurs, avec une augmentation du nombre de processeurs, non seulement la puissance de calcul, la capacité et la bande passante de la RAM, mais également les ressources des ressources de sous-système d'E / S sont évolutives. Ainsi, dans le système à 8 systèmes de traitement, 64 (8x8) modules DIMM (jusqu'à 128 Go) et 4 canaux HyperTransport avec une bande passante totale de 25 GB / S pour la transmission duplex sont disponibles.

AMD a annoncé un ensemble de microcirces de série 8000, qui sera disponible au quatrième trimestre de 2002. Il comprend des puces AMD-8151 (organise une interface avec AGP 3.0), AMD-8131 (un pont d'hypertransport à PCI-X) et AMD-8111 (Hub d'E / S assure la prise en charge de PCI-32/33 MHz, USB, IDE et t .p.).

Il est intéressant d'assurer une cohérence de cache à l'aide de canaux HyperTransport avec les processeurs suivants de 4 et plus: dans le traitement de requêtes appropriées, plusieurs manières formées par des itinéraires hypertransport sont impliquées entre les processeurs, qui contribue à l'accélération. En principe, il est possible de créer des systèmes avec le nombre de processeurs de marteau, plus grandes 8, mais cela nécessitera un interrupteur d'hypertransport.

Retards Lorsque vous travaillez avec le microprocesseur local (microprocesseur voisin), la mémoire rapide augmente légèrement lors de l'accès à la mémoire "distante". Sur un système de 4 processeurs non chargés, le délai est de 140 NS, sur un système similaire à 8 processeurs - 160 NS. Cela vous permet de parler de l'architecture SMP, pas de snuma. Dans le même temps, l'utilisation de la technologie de commutation au lieu de pneus système vous permet d'obtenir des indicateurs élevés et sur la bande passante de la RAM. Pour les opérations de type Copier, il s'agit de 8 Go / s pour un système de traitement à 4 4, ce qui, selon AMD, est nettement supérieur à celui des architectures de bus.

En attente de marteau.

Le début du marteau des ventes commencera dans environ le troisième trimestre de 2002. Le premier microprocesseur de cette famille sera axé sur des systèmes simples et à deux processeurs; Sledgehammer apparaîtra alors. Bien que, essentiellement, le marteau devrait concurrence dans la concurrence avec des microprocesseurs de l'architecture de l'IA-64 (à cette époque, McKinley devrait apparaître), on peut supposer que, à l'avenir, le marteau sera en mesure d'avoir l'autre Athlon sur tout le spectre des applications ( Mais cela peut prendre plus d'un an). Cela signifie également que le marteau peut devenir un concurrent au Pentium 4.

En plus des systèmes d'exploitation 32 bits existants, NetBSD, FreeBSD et Linux sont transférés dans l'architecture de marteau 64 bits, ainsi que des variétés de fenêtres modernes.

Les avantages du x86-64 et du marteau sont:

  • compatibilité avec des applications 16 et 32 \u200b\u200bbits à un niveau élevé de performance de performance;
  • relative (comparé à l'IA-64) Simplicité de la transition de X86 et, en conséquence, l'absence de nécessité de la nécessité d'être excessive les coûts financiers sur cette transition;
  • plus le risque de défaillance d'une nouvelle architecture;
  • simplicité du développement et de la mise en œuvre;
  • une petite zone, qui augmente le rendement de convenance appropriée et facilite la mise à l'échelle le long de la fréquence d'horloge.

On peut dire que grâce à l'approche "évolutive" sélectionnée, il est possible de prédire de manière plus fiable la réussite de la croissance de la productivité.

Les avantages énumérés sont accompagnés de certains potentiellement «dangereux» pour les moments AMD. L'architecture X86-64 n'est pas si "révolutionnaire" comme IA-64; De plus, le nombre de registres comparés aux processeurs de RISC modernes n'a pas l'air assez grand, ce qui est connu pour compliquer l'optimisation des programmes.

AMD devra démontrer que la hauteur de performance est réalisable principalement en raison de la technologie (et de l'augmentation correspondante de la fréquence d'horloge), mais pas au détriment de l'architecture. Bien que cela prouve avec succès, en particulier, Pentium 4, mais les preuves inverse de l'IA-64 n'ont pas encore été reçues.

Pour créer des applications 64 bits, vous devrez développer des compilateurs d'optimisation, ce qui n'est pas encore disponible. Enfin, l'industrie informatique moderne se situe sur le seuil pour la sélection de nouvelles normes d'E / S - Infiniband, PCI-X, 3Gio, HyperTransport. La liaison difficile à la technologie HyperTransport est capable de retirer la DMLA en leaders, mais porte également un certain risque.

En ce qui concerne les domaines d'application, où une architecture 64 bits est nécessaire, l'AMD indique principalement sur la SGBD, la CAO, les moyens de créer un "contenu" numérique. Selon l'auteur, les processeurs de marteau peuvent se révéler activement à la demande au segment en croissance rapide des clusters de marché (Tout d'abord, des clusters Linux) avec des nœuds à double processeur.

Actuellement, une telle plate-forme basée sur l'Athlon MP est très populaire; Des systèmes similaires basés sur Pentium 4 / Xeon sont sensiblement plus chers. Lors de la sauvegarde d'un tel ratio, AMD pourra compter sur le succès de cette partie du marché.

Le travail a été soutenu par la Fédération de Russie, le projet 01-07-90072.

Littérature
  1. Mikhail Kuzminsky, "Résumé IA-64". "Open Systems", 1999, № 9-10
  2. Mikhail Kuzminsky, "microarchitecture d'itanium". Systèmes ouverts, № 9, 2001
  3. Mikhail Kuzminsky, "Z-Architecture. Mainframes Modern 64 bits IBM". "Systèmes ouverts", 2001, № 10
  4. "Papier blanc de la technologie X86-64", 2001, AMD
  5. "Technologie AMD 64 bits. La vue d'ensemble des programmeurs d'architecture AMD X86-64", AMD, 2001, janvier.
  6. "Architecture de processeur de huit générations AMD. Papier blanc", AMD, 2001, Oct.
  7. F. Weber, architecture de microprocesseur à la prochaine génération AMD, Forum de microprocesseur, 2001

Mikhail kuzminsky ( [Email protégé]) - Chercheur principal du Centre de sécurité informatique IOH RAS (Moscou).



L'auteur a suffisamment risqué, y compris ce matériel dans le manuel, car les informations publiées à notre époque sur les modèles spécifiques de microprocesseurs sont obsolètes tout en restant sous la machine à imprimer. Cependant, pour une image complète des architectures modernes 64 bits, ce chapitre justifie sa présence dans ce manuel.

10.1 Architecture Intel Core 2

La huitième génération de processeurs Intel, nom du noyau 2, sans une part de doute, peut être appelée révolutionnaire.

Intel ingénieurs après un retard assez long de AMD ne s'est pas lancé avec une architecture radicalement nouvelle. Comme d'habitude, tout nouveau est bien oublié. CONROE était basé sur un travail de Pentium M - Le travail du processeur de Pentium M - ainsi que de succès que certains fabricants ont commencé à l'appliquer non seulement pour les ordinateurs portables, mais également pour les postes de travail de bureau. À son tour, le Pentium M n'est également apparu non pas à partir de zéro. Son progéniture est Pentium III, qui, comme on le sait, était une continuation évolutive de Pentium Pro.

La chaîne évolutive correspondante est la suivante: Pentium Pro  Pentium II  Pentium III  Pentium M  Core 2.

Ce cas est un exemple lorsque le pas en marche est un pas important en avant. Si vous êtes très abstrait des détails, les développeurs d'Intel ont fait ce qui suit. Créé en 1995 Un processeur Pentium Pro Assez réussi, a augmenté sa puissance (Pentium II, Pentium III), a mis au point un mécanisme de réduction de la consommation d'énergie (Pentium M), créé système efficace L'interaction de plusieurs cœurs de processeur (noyau 2). Ce régime est très conditionnel, car chacune des étapes existait une autre raffinement substantielle (telle que la transition à une architecture de 64 bits), mais certaines caractéristiques héréditaires sont toujours préservées.

Selon le segment cible, les processeurs ont leurs caractéristiques technologiques. Conroe-L (un noyau), Allendale (deux noyaux), Conroe et Wolfdale, Kentsfield et Yorkfield (quatre noyaux) sont conçus pour les systèmes de bureau. Les noms de code Merom et Penryn portent des produits axés sur le segment mobile du marché. Cette dernière réincarnation de l'architecture principale 2 sera les processeurs de six cœurs Dunnington.

La génération de procédure suivante pour le noyau 2 est vendue sous la marque Core i7 (architecture NEHALEM).

Il convient de noter que les six configurations nucléaires ne donnent pas un gain de productivité à six fois par rapport au noyau unique. Les causes sont dans les caractéristiques de travailler avec la mémoire. Dans certaines tâches, au lieu d'améliorer les performances, il est possible de réduire même la vitesse de fonctionnement. Cela s'explique par le fait que la plupart des produits logiciels sont toujours adaptés pour travailler sur des plates-formes multiprocesseurs (multicœur).

Qu'est-ce qui a changé dans Intel Core 2 par rapport au Pentium 4? L'une des différences importantes est le départ de l'architecture longue distance Netbrust, dont la tâche principale consistait à assurer un certain avantage dans la "race Gigahertz". De plus, il y a eu une réduction significative de la longueur du convoyeur. Dans l'architecture du noyau, sa longueur est de 14 étapes, tandis que dans la génération précédente de processeurs, il était égal à 31 étapes (noyau Prescott), et c'est plus que la double abréviation. Mais les premiers processeurs Netbrust sur le noyau Northwood ont accéléré de 1,6 à 3,4 GHz. Il ne sera pas superflu qu'une telle augmentation de la fréquence d'horloge était semée d'une consommation d'énergie excessive (pour les processeurs TDP, il a atteint 160-170 W). Cependant, comme la pratique montrait, tous ces gigares ont été très faiblement transformés en croissance de la productivité.

Le volume du cache L2 dans de nouveaux modèles varie de 3 Mo à Wolfdale-3M à 12 Mo au Yorkfield.

Avant de passer à l'étude du schéma structurel, nous notons les principaux moments technologiques qui sous-tendent l'architecture principale:

    Exécution dynamique intégrée ételle - assure jusqu'à cinq micro-opérations par tact.

    Capacité d'alimentation intelligente Intel - est un ensemble de technologies conçues pour réduire considérablement la consommation d'énergie.

    Intel Advanced Smart Cache - implique la présence de noyaux de cache L2 communs à tous, ce qui est distribué de manière dynamique entre eux, en fonction des tâches effectuées.

    Intel Smart Memory Access - Un ensemble de technologies pour optimiser les algorithmes d'accès à la mémoire et les données de pré-chargement.

    Intel Advanced Digital Media Boost est une technologie visant à optimiser le décodage de la teneur en multimédia. Vous permet de gérer toutes les commandes SSE 128 bits, SSE2 et SSE3, largement utilisées dans les applications multimédia et graphiques, pour un tact.

    Intel 64 Technology - Mode arithmétique entier et ciblé de 64 bits (EM64T). Il vous permet de travailler avec des nombres volumineux, ainsi que d'aborder plus de 1 To de mémoire. L'architecture 32 bits a permis de pas plus de 4 Go de RAM. Cela impose certaines restrictions lorsque vous travaillez avec de gros volumes de données.

L'article décrit la signification du terme "64 bits". L'article a brièvement examiné l'historique de l'élaboration de systèmes de 64 bits, les processeurs 64 bits les plus courants de 64 bits de l'architecture Intel 64 et le système d'exploitation Windows 64 bits sont décrits.

introduction

Dans le cadre de l'architecture Équipement informatique Sous le terme "64 bits" comprend des entiers 64 bits et d'autres types de données ayant une taille de 64 bits. Sous les systèmes "64 bits", des architectures de microprocesseur 64 bits (par exemple, des systèmes d'exploitation EM64T, IA-64) ou 64 bits (par exemple, Windows XP Professional Edition X64) peut être compris. Vous pouvez parler de compilateurs générant un code de programme 64 bits.

Cet article examinera divers points associés aux technologies 64 bits. L'article est destiné aux programmeurs qui souhaitent commencer à développer des programmes de 64 bits et se concentrent sur les développeurs Windows, car pour eux une question de connaissances avec des systèmes de 64 bits les plus pertinents.

Historique des systèmes 64 bits

64-Bitness seulement récemment entré dans la vie de la plupart des utilisateurs et des programmeurs d'applications. Cependant, travailler avec des données de 64 bits a une longue histoire.

1961: IBM libère un supercalculateur extensible IBM 7030, qui utilise des mots de données de 64 bits, des instructions de machine 32 bits ou 64 bits.

1974: Control Data Corporation lance le supercalculateur de vecteur CDC STAR-100, qui utilise l'architecture de mots de 64 bits (les systèmes CDC précédents avaient une architecture de 60 bits).

1976: La recherche à l'écart de la cravatère le premier supercalculateur Cray-1, qui met en œuvre l'architecture de mots de 64 bits et qui servira de base à tous les superordinateurs de vecteur ultérieurs.

1985: La rémunération de l'ACSICOS - la première mise en œuvre des 64 bits du système d'exploitation UNIX.

1991: MIPS Technologies produit le premier processeur 64 bits, R4000, qui implémente une troisième modification de l'architecture MIPS développée dans leur entreprise. Ce processeur est utilisé dans les postes de travail graphiques SGI à partir du modèle Crimson Iris. Kendall Square Research produit son premier supercalculateur KSR1, en fonction de leur propre architecture de RISC brevetée de 64 bits sous le système d'exploitation OSF / 1.

1992: Digital Equipment Corporation (DEC) présente une architecture d'alpha-prisme entièrement 64 bits.

1993: Dec libère un système d'exploitation OSF / 1 AXP de Dec de type UNIX 64 bits (renommé plus tard à TRU64 UNIX) pour ses systèmes construits sur l'architecture alpha.

1994: Intel annonce ses projets de développement de l'architecture IA-64 de 64 bits (conjointement avec Hewlett-Packard) - le successeur de leurs processeurs IA-32 32 bits. La date de publication était prévue pour 1998-1999. SGI publie IRIX 6.0 avec prise en charge de 64 bits pour le chipset R8000.

1995: Sun lance un processeur de 64 bits de la famille SPARC UltrasParc. HAL Computer Systems, subordonnés Fujitsu, lance des stations de travail créées sur la base du processeur SPARC64 de première génération de 64 bits, développé indépendamment par HAL. IBM libère des microprocesseurs A10 et A30, ainsi que 64 bits PowerPC en tant que processeurs. IBM libère également une mise à jour de 64 bits pour le système AS / 400, capable de convertir le système d'exploitation, les bases de données et les applications.

1996: Nintendo présente console de jeux Nintendo 64, créé sur la base de l'option MIPS R4000 moins chère. HP libère une version 64 bits 2.0 de l'architecture PA-RISC PA-8000.

1997: IBM lance PowerPC / PowerPC de RS64 64 bits en tant que processeurs.

1998: Sun libère Solaris 7 avec un support ultrasparc complet 64 bits.

1999: Intel libère un ensemble de commandes pour l'architecture IA-64. AMD annonce publiquement son ensemble d'extensions de 64 bits pour l'IA-32, nommée X86-64 (renommée plus tard AMD64).

2000: IBM libère son premier Mainframe Z900 Z900 de 64 bits Compatible avec ESA / 390, ainsi que le nouveau système d'exploitation Z / OS.

2001: Intel lance enfin une ligne de processeurs 64 bits, qui reçoivent désormais le nom Itanium et sont conçus pour des serveurs haute performance. Le projet ne correspond pas aux attentes en raison de nombreux retards dans la libération de l'IA-64 sur le marché. NetBSD devient le premier système d'exploitation qui fonctionne sur le processeur Intel Itanium après sa libération. De plus, Microsoft publie également l'édition Windows XP 64 bits pour la famille Itanium de l'architecture IA-64, bien qu'elle économise la possibilité d'exécuter des applications 32 bits à l'aide de WOW64 Intercayer.

2003: AMD représente une ligne de processeur OPTERON et ATHLON 64, créée sur la base de l'architecture AMD64, qui est la première architecture de processeur de 64 bits basée sur l'architecture X86. Apple commence à utiliser un "G5" 64 bits PowerPC 970 fabriqué par IBM. Intel soutient que les puces de processeur d'itanium resteront les seuls processeurs de 64 bits développés dans leur entreprise.

2004: En réponse au succès commercial AMD, Intel admet qu'ils ont développé le clone d'extensions AMD64, qui a reçu le nom IA-32E (plus tard renommé EM64T, puis à nouveau dans Intel 64). Intel publie également des versions mises à jour des familles de processeur Xeon et Pentium 4 avec de nouvelles commandes.

2004: Via Technologies présente son processeur Isaïe de 64 bits.

2005: 31 janvier Sun libère Solaris 10 avec le support du processeur AMD64 / Intel 64. 30 avril Microsoft publie Windows XP Professional X64 Edition pour les processeurs AMD64 / Intel 64.

2006: Sony, IBM et Toshiba démarrent la libération d'un processeur de cellules de 64 bits pour Playstation 3, serveurs, postes de travail et autres appareils. Microsoft publie Windows Vista avec une version activée 64 bits pour les processeurs AMD64 / Intel 64, qui prend en charge la compatibilité 32 bits. Toutes les applications et les composants Windows sont de 64 bits, mais beaucoup d'entre eux disposent de versions 32 bits incluses dans le système sous la forme de plug-ins dans la compatibilité.

2009: Comme Windows Vista, Microsoft Windows 7 comprend une version complète de 64 bits pour les processeurs AMD64 / Intel 64 et la version 64 bits est installée sur la plupart des nouveaux ordinateurs. Le système d'exploitation sort apple entreprises Mac OS X 10.6, Snow Leopard qui possède un noyau de 64 bits et est destiné aux processeurs AMD64 / Intel 64, mais par défaut, ce système n'est installé que sur certains des derniers ordinateurs Apple. La plupart des applications fournies avec Mac OS X 10.6 sont maintenant de 64 bits.

De plus en détail avec l'historique des systèmes 64 bits, il est possible de se familiariser dans l'article de John Masha "Long route à 64 bits" et de l'article encyclopédique de Wikipedia "64 bits".

Programmation d'application et systèmes 64 bits

Au moment de la rédaction de l'article en 2010, le plus connu et le plus commun sont deux architectures de microprocesseur 64 bits: IA64 et Intel 64.
  1. IA-64. Architecture de microprocesseur 64 bits, développée conjointement par Intel et Hewlett Packard. Mis mis en œuvre dans des microprocrocesseurs d'itanium et d'itanium pour une connaissance plus détaillée avec l'architecture IA-64, vous pouvez contacter les articles suivants à Wikipedia: "IA-64", "Itanium", "Itanium 2". L'architecture d'itanium prend en charge un grand nombre de serveurs fabricants: Bull, Fujitsu, Fujitsu Siemens Ordinateurs, Hitachi, HP, NEC, SGI et Unisys. Ces fabricants ont rejoint Intel et une multitude de développeurs de logiciels pour créer une alliance Itanium Solutions, afin de promouvoir l'architecture et d'accélérer le rythme du portage de logiciels.
  2. Intel 64. (AMD64. / x86-64 / X64 / EM64T) - Cette architecture est une extension de l'architecture X86 avec une compatibilité rédultée complète. Il existe de nombreuses options pour le nom de cette architecture, qui conduit à la confusion, bien que tous ces noms indiquent la même chose: X86-64, AA-64, Hammer Architecture, Amd64, Technologie Yamhill, EM64T, IA-32E , Intel 64, X64. Pour en savoir plus sur le nombre de noms apparus, il est possible dans l'article de Wikipedia: "x86-64". Les processeurs d'architecture Intel 64 ont été généralisés ordinateur personnel. Et probablement votre ordinateur est équipé d'un processeur avec cette architecture.
Il est important de comprendre que l'IA-64 et Intel 64 (AMD64) sont complètement différentes, incompatibles avec l'autre, les architectures de microprocesseurs. En outre, dans l'article, nous ne considérerons que l'architecture Intel 64 (X64 / AMD64), aussi populaire parmi les développeurs de logiciels d'application pour le système d'exploitation Windows. Pour la brièveté, le modèle logiciel Intel 64, un programmeur abordable en 64 bits système Windows, Appelez Win64.

Intel 64 Architecture (AMD64)

L'architecture Intel 64 à l'étude est simple, mais en même temps une puissante expansion compatible avec l'architecture industrielle obsolète X86. Il ajoute un espace d'adresses de 64 bits et élargit les ressources d'enregistrement afin de soutenir une plus grande performance des programmes de 64 bits recompilés. L'architecture fournit une prise en charge d'un code d'application et de systèmes d'exploitation obsolètes de 16 bits et 32 \u200b\u200bbits sans modification ni recompilement.

Une caractéristique distinctive de Intel 64 est une prise en charge de seize registres à usage général 64 bits (en X86-32, il y avait huit registres 32 bits). Les opérations arithmétiques et logiques de 64 bits sur des entiers sont prises en charge. Les adresses virtuelles 64 bits sont prises en charge. Pour résoudre les nouveaux registres, des "préfixes d'expansion du registre" pour les commandes ont été entrées, pour lesquelles la plage de codes de 40H-4FH utilisée pour les commandes INC a été sélectionnée.<регистр> et déc.<регистр> dans des modes de 32 et 16 bits. Les commandes INC et DEC en mode 64 bits doivent être codées dans un billet plus général, deux octets.

Registres:

16 Entier 64 bits Inscrivez-vous (RAX, RBX, RCX, RDX, RBP, RSI, RDI, RSP, R8 - R15),
8 registres de points flottants 80 bits (ST0 - ST7),
8 64 bits Extensions d'extensions multimédia (MM0 - MM7, ont un espace commun avec les registres ST0 - ST7),
16 registres SSE 128 bits (XMM0 - XMM15),
Un pointeur RIP 64 bits et des drapeaux RFLAGS 64 bits s'inscrivent.

La nécessité d'une architecture 64 bits est déterminée par les applications nécessitant un grand espace d'adressage. Tout d'abord, ce sont des serveurs haute performance, des systèmes de gestion de base de données, de la CAO et, bien sûr des jeux. De telles applications recevront des avantages significatifs de l'espace d'adressage 64 bits et augmenteront le nombre de registres. Un petit nombre de registres disponibles dans l'architecture X86 obsolète limitent la performance dans les tâches de calcul. L'augmentation du nombre de registres fournit des performances suffisantes pour de nombreuses applications.

Nous soulignons les principaux avantages de l'architecture X86-64:

  • Espace d'adresse 64 bits;
  • ensemble avancé de registres;
  • familiers aux développeurs définir des commandes;
  • capacité à exécuter d'anciennes applications 32 bits en 64 bits système opérateur;
  • possibilité d'utiliser des systèmes d'exploitation 32 bits.

Systèmes d'exploitation 64 bits

Presque tous les systèmes d'exploitation modernes ont maintenant des versions pour l'architecture Intel 64. Par exemple, Microsoft fournit Windows XP X64. Les plus grands développeurs de systèmes UNIX fournissent également des versions 64 bits, telles que Linux Debian 3.5 x86-64. Cependant, cela ne signifie pas que tout le code d'un tel système est totalement 64 bits. Une partie du code du système d'exploitation et de nombreuses applications peuvent bien être 32 bits, car Intel 64 fournit une compatibilité ascendante avec des applications 32 bits. Par exemple, 64 bits version Windows Utilise le mode spécial WOW64 (Windows-On-Windows 64), qui transmet les appels d'applications 32 bits sur les ressources du système d'exploitation 64 bits.

Wow64.

Windows-On-Windows 64 bits (WOW64) - Sous-système de système d'exploitation Windows, vous permettant d'exécuter des applications 32 bits sur toutes les versions de Windows 64 bits.

Le sous-système WOW64 ne prend pas en charge les programmes suivants:

  • programmes compilés pour des systèmes d'exploitation 16 bits;
  • le mode du noyau compilé pour des systèmes d'exploitation 32 bits.
Il existe des différences dans WOW64 en fonction de l'architecture du processeur. Par exemple, la version 64 bits de Windows développée pour le processeur Intel Itanium 2 utilise WOW64 pour imiter les instructions X86. Une telle émulation est une forte intensité de ressources comparée à WOW64 pour l'architecture Intel 64, car le déplacement d'un mode 64 bits au mode de compatibilité se produit lors de la réalisation de programmes 32 bits.

WOW64 sur l'architecture Intel 64 (AMD64 / X64) ne nécessite pas d'émulation d'instructions. Ici, le sous-système WOW64 n'augmente que un environnement 32 bits, en raison de la couche supplémentaire entre l'application 32 bits et 64 bits. API Windows.. Quelque part cette couche est mince, quelque part très très. Pour le programme moyen de perte de programme due à la présence d'une telle couche sera d'environ 2%. Pour certains programmes, cette valeur peut être plus grande. Deux pour cent est un peu, mais il convient de garder à l'esprit que les applications 32 bits fonctionnent un peu plus lente exécutant le système d'exploitation Windows 64 bits que dans un environnement 32 bits.

La compilation du code 64 bits élimine non seulement la nécessité de WOW64, mais donne également une augmentation de performance supplémentaire. Cela est dû à des changements architecturaux du microprocesseur, tels qu'une augmentation du nombre de registres à usage général. Pour le programme intermédiaire, vous pouvez vous attendre à 5-15% de la croissance de la productivité à partir de la simple recompilation.

En raison de la présence d'intercalaire WOW64, des programmes 32 bits fonctionnent moins efficacement dans un environnement 64 bits que dans 32 bits. Mais toutes les mêmes applications 32 bits simples peuvent obtenir un avantage de leur lancement dans un environnement 64 bits. Vous savez probablement que le programme recueilli avec la touche / LargeadDressareware: Oui peut mettre en évidence jusqu'à 3 gigaoctets si le système d'exploitation Windows 32 bits est en cours d'exécution avec la touche / 3 Go. Ainsi, le même programme 32 bits exécuté sur un système 64 bits peut mettre en évidence près de 4 Go de mémoire (en pratique environ 3,5 Go).

Le sous-système WOW64 isole des programmes 32 bits de 64 bits en redirigeant des appels aux fichiers et au registre. Cela empêche l'accès aléatoire de programmes 32 bits aux applications 64 bits. Par exemple, une application 32 bits qui exécute le fichier DLL à partir du répertoire% Systemroot% \\ System32 peut se référer accidentellement au fichier DLL 64 bits incompatible avec un programme 32 bits. Pour éviter ce sous-système WOW64, il redirige l'accès du dossier% Systemroot% \\ System32 dans le dossier% Systemroot% \\ SysWow64. Cette redirection vous permet d'empêcher les erreurs de compatibilité, car cela nécessite un fichier DLL créé spécifiquement de fonctionner avec des applications 32 bits.

En savoir plus avec des mécanismes de redirection système de fichiers Et le registre se trouve dans la section MSDN "Exécution d'applications 32 bits".

Modèle logiciel Win64

Également comme dans Win32, la taille des pages de Win64 est de 4 Ko. Le premier 64 Ko de l'espace d'adressage n'est jamais affiché, c'est-à-dire que la plus petite adresse correcte est 0x10000. Contrairement à Win32, les DLL système sont chargées au-dessus de 4 Go.

La fonction Compilers pour Intel 64 est qu'elles peuvent utiliser le plus efficacement les registres pour transférer des paramètres vers la fonction, au lieu d'utiliser la pile. Cela a permis aux développeurs de l'architecture Win64 de se débarrasser d'une telle chose comme un accord de défi (convention appelante). Dans Win32, vous pouvez utiliser différents accords: __stDCall, __cdecl, __fastcall et ainsi de suite. Dans Win64, il n'y a qu'un seul accord de défi. Considérons un exemple, quatre arguments de type entier sont transmis dans des registres:

  • RCX: le premier argument
  • RDX: Deuxième argument
  • R8: Troisième argument
  • R9: Quatrième argument
Arguments Après les quatre premiers entiers sont transmis sur la pile. Pour les arguments à flotteur, les registres XMM0-XMM3 sont utilisés ainsi que la pile.

La différence entre les accords d'appel conduit au fait que le code 64 bits et 32 \u200b\u200bbits ne peut pas être utilisé dans un programme. En d'autres termes, si l'application est compilée pour un mode 64 bits, toutes les bibliothèques utilisées (DLL) doivent également être 64 bits.

Le transfert de paramètres par les registres est l'une des innovations qui rendent les programmes de 64 bits plus productifs que 32 bits. Des gains de performance supplémentaires peuvent être obtenus à l'aide de types de données de 64 bits.

Espace adressable

Bien que le processeur 64 bits puisse théoriquement adresser l'examen de mémoire 16 (2 ^ 64), Win64 prend actuellement en charge 16 téraoctets (2 ^ 44). Il y a plusieurs raisons à cela. Les processeurs actuels peuvent fournir un accès uniquement à 1 téraoctet (2 ^ 40) mémoire physique. L'architecture (mais pas un matériel) peut élargir cet espace jusqu'à 4 Pétabytes (2 ^ 52). Cependant, dans ce cas, une quantité énorme de mémoire est nécessaire pour les tables de page affichant la mémoire.

Outre les restrictions répertoriées, la quantité de mémoire disponible dans une version particulière du système d'exploitation Windows 64 bits dépend des considérations commerciales de Microsoft. Vous trouverez ci-dessous des informations sur la quantité de mémoire prise en charge par diverses versions de versions 64-binaires de Windows:

Windows XP Professionnel - 128 Go;
Windows Server 2003, Standard - 32 Go;
Windows Server 2003, Enterprise - 1 Tbyte;
Windows Server 2003, Datacenter - 1 Tbyte;
Windows Server 2008, Datacenter - 2 Tbyte;
Windows Server 2008, Enterprise - 2 Tbyte;
Windows Server 2008, Standard - 32 Go;
Windows Server 2008, serveur Web - 32 Go;
Vista Home Basic - 8 Go;
Vista Home Premium - 16 Go;
Vista Business - 128 Go;
Vista Enterprise - 128 Go;
Vista Ultimate - 128 Go;
Windows 7 Home Basic - 8 Go;
Windows 7 Home Premium - 16 Go;
Windows 7 Professional - 192 gbyte;
Windows 7 Entreprise - 192 gbyte;
Windows 7 Ultimate - 192 gbyte;

Développement d'applications 64 bits

Les problèmes les plus pleinement du développement d'applications 64 bits sont considérés dans le savoir "

Question: Architecture du processeur - Qu'est-ce que c'est?
Répondre: Le terme "architecture de processeur" n'a actuellement pas une interprétation sans ambiguïté. Du point de vue des programmeurs, sous l'architecture du processeur signifie sa capacité à exécuter un ensemble spécifique de codes de machine. La plupart des processeurs modernes de bureau se réfèrent à la famille X86 ou à des processeurs d'architecture IA32 compatibles Intel (architecture de processeurs Intel 32 bits. Sa base a été posée par Intel dans le processeur I80386, cependant, dans les générations ultérieures de processeurs, il a été complété et élargi à la fois l'Intel lui-même (de nouveaux ensembles de commandes MMX, SSE, SSE2 et SSE3) et des fabricants tiers (commandes EMMX , Les commandes 3DNOW! Et prolongé 3DNOW!, Développé par AMD). Toutefois, les développeurs de matières informatiques sont investis dans le concept d'architecture de processeur (parfois pour finalement ne pas être confus, le terme «microarchitecture») est utilisé uniforme quelque peu différent. De leur point de vue, l'architecture du processeur reflète les principes de base organisation interne familles de transformateurs spécifiques. Par exemple, l'architecture des processeurs Intel Pentium a été désignée comme des processeurs P5, Pentium II et Pentium III-P8, et Pentium 4 populaire dans le passé récent. Pentium 4 appartenait à l'architecture Netburst. Après que Intel a clôturé l'architecture R5 pour les fabricants tiers, son principal concurrent - AMD a été forcé de développer sa propre architecture - K7 pour processeurs d'Athlon et Athlon XP et K8 pour Athlon 64.

Question: Quels processeurs sont meilleurs, 64 bits ou 32 bits? Et pourquoi?
Répondre: Une extension assez réussie de 64 bits de l'architecture classique 32 bits IA32 a été proposée en 2002 par AMD (initialement appelée X86-64, maintenant AMD64) dans les processeurs de la famille K8. Après un certain temps, Intel a été proposé par la propre désignation - EM64T (technologie étendue de la mémoire 64 bits). Mais, quel que soit le nom, l'essence de la nouvelle architecture est la même: la décharge des principaux registres internes des processeurs 64 bits a doublé (de 32 à 64 bits) et les commandes de code X86 de 32 bits reçus 64 -Bit homologues. De plus, en développant la décharge du bus d'adresse, le volume du processeur de mémoire adressable a considérablement augmenté.

Et tout. Donc, ceux qui s'attendent à des processeurs de 64 bits avec une croissance de la productivité significative, leur productivité sera déçue - leur performance dans la majorité écrasante des applications modernes (qui sont affinées à l'IA32 dans la masse et qu'il est peu susceptible d'être recompanté sous AMD64 / EM64T. ) dans un avenir prévisible) de la même manière que les anciens processeurs 32 bits. L'ensemble du potentiel d'une architecture de 64 bits ne peut être révélé que dans un avenir lointain, lorsqu'ils apparaissent en quantités de masse (et peuvent ne pas apparaître) Applications optimisées sous nouvelle architecture. Dans tous les cas, la transition la plus efficace vers un 64 bits sera destinée aux programmes travaillant avec des bases de données, des programmes de classe CAO / CAE, ainsi que des programmes de travail avec du contenu numérique.

Question: Qu'est-ce que c'est noyau du processeur?
Répondre: Dans la même architecture, divers processeurs peuvent différer très différents l'un de l'autre. Et ces différences sont incarnées dans une variété de noyaux de processeur avec un certain ensemble de caractéristiques strictement déterminées. Le plus souvent, ces différences sont incarnées dans diverses fréquences du pneu de système (FSB), la taille du cache de second niveau, le support de certains nouveaux systèmes de commande ou de nouveaux processus technologiques, qui sont des processeurs fabriqués. Souvent, le changement de base de la même famille de processeurs implique le remplacement du connecteur du processeur, à partir duquel les problèmes d'une compatibilité accrue des cartes mères sont suivis. Cependant, dans le processus d'amélioration du noyau, les fabricants doivent apporter des modifications mineures qui ne peuvent pas réclamer "nom propre". De tels changements s'appellent les audits du noyau et, le plus souvent, sont notés par des combinaisons numériques. Cependant, dans de nouvelles révisions du même noyau peut avoir suffisamment d'innovations notables. Ainsi, Intel a introduit une prise en charge de l'architecture EM64T 64 bits dans des transformateurs familiaux séparés du Pentium 4 dans le processus de modification de l'audit.

Question: Quel est l'avantage des processeurs à double core en face de la monoconque?
Répondre: L'événement le plus important de 2005 a été l'apparition de processeurs à double cœur. À ce stade, les processeurs classiques de base monocontraidifs ont presque complètement épuisé les réserves de productivité en augmentant la fréquence de fonctionnement. La pierre d'achoppement n'était pas seulement une dissipation de chaleur trop élevée des transformateurs opérant à des fréquences élevées, mais également des problèmes de stabilité. Donc, le parcours étendu du développement des transformateurs pour les années à venir a été commandé et leurs producteurs devront maîtriser le nouveau moyen intensif d'améliorer la productivité. Le plus de RAM du marché du processeur de bureau, comme toujours, s'est avéré être Intel, la première annonce de Dual-Core processeurs Intel Pentium D et Intel Extrême édition. Cependant, AMD avec Athlon64 X2 a retardé un concurrent littéralement en jours. L'avantage incont------fort des deux cœurs de première génération, auxquels les processeurs susmentionnés incluent leur compatibilité totale avec les planches (Naturellement, suffisamment moderne, qui ne devront que mettre à jour le BIOS). La deuxième génération de processeurs à double cœur, en particulier, Intel Core 2 Duo, "exige" des chipsets spécialement conçus et avec de vieilles mères ne fonctionnent pas.

Nous ne devrions pas oublier qu'aujourd'hui de travailler avec des processeurs à double cœur, plus ou moins optimisé est que seul uniquement des logiciels professionnels (y compris des travaux avec des données graphiques, audio et vidéo), tandis que pour un bureau ou un utilisateur domestique, le deuxième noyau de processeur profite parfois, mais Beaucoup plus souvent est une cargaison morte. Les avantages des processeurs à deux cœurs dans ce cas sont visibles au regard nu lorsque toutes les tâches de base sont en cours d'exécution sur l'ordinateur (vérifiez sur les virus, le pare-feu logiciel, etc.). En ce qui concerne la croissance de la productivité dans les jeux existants, il est minime, bien que les premiers jeux de genres populaires soient déjà apparus, en utilisant pleinement les avantages de l'utilisation du deuxième noyau.

Cependant, si aujourd'hui est la question du choix d'un processeur pour le PC de jeu de la gamme de prix moyen ou supérieur, il est préférable de préférer un beal-noyau, puis le processeur à 4 cœurs est un peu plus élevé. -fréquence analogue à base unique, puisque le marché se transforme régulièrement vers les systèmes multidières et optimisé l'informatique parallèle. Une telle tendance sera dominante dans les années à venir, de sorte que la part de l'optimisation de plusieurs cœurs augmente régulièrement et que très vite un instant puisse arriver lorsque la multiplicité devient un besoin urgent.

Question: Qu'est-ce que le cache?
Répondre: Dans tous les processeurs modernes, il y a un cache (en anglais - cache) - un tableau de RAM ultra-vitesse, qui est un tampon entre le contrôleur d'une mémoire système relativement lente et du processeur. Ce tampon stocke des blocs de données avec lesquels la CPU fonctionne au moment actuel, en raison de laquelle le nombre de processeurs fait appel à une extrême lente (comparé à la vitesse du processeur) est considérablement réduit. Ainsi, la performance globale du processeur augmente sensiblement.

Dans ce cas, dans les transformateurs modernes, le cache n'a pas longtemps été un seul éventail de mémoire, comme avant, mais est divisé en plusieurs niveaux. Le plus rapide, mais relativement petit en termes de cache de premier niveau (désigné comme L1), avec lequel le noyau du processeur fonctionne, est le plus souvent divisé en deux moitiés - des instructions de cache et des données de cache. Le cache L1 interagit le cache de deuxième niveau - L2, qui, en règle générale, est beaucoup plus grand en volume et est mélangé, sans séparer le cache de commande et le cache. Certains processeurs de bureau, à la suite de l'exemple des processeurs de serveur, on peut également voir dans le cache de troisième niveau L3. Cache l3 est généralement encore plus de taille, bien que quelque peu plus lente que L2 (en raison du fait que le pneu entre L2 et L3 soit plus étroit que le pneu entre L1 et L2), mais sa vitesse, dans tous les cas, est plus élevé que le Mémoire du système de vitesse.

L'argent est de deux types: cache exclusif et non exclusif. Dans le premier cas, les informations dans les caches de tous les niveaux sont clairement délimitées - chacune d'elles contient une originale exceptionnellement originale, alors que dans le cas d'aucune information de cache exclusive ne peut être dupliquée à tous les niveaux de mise en cache. Aujourd'hui, il est difficile de dire lequel de ces deux schémas est plus correct - et dans celui-ci, et dans l'autre, il y a à la fois des inconvénients et des plus. Le schéma de mise en cache exclusif est utilisé dans processeurs AMDPartout où les processeurs exclusifs - dans Intel.

Question: Qu'est-ce qu'un pneu de processeur?
Répondre: Le pneu de processeur (sinon - système), qui est le plus souvent appelé FSB (bus latéral avant), est un ensemble de lignes de signalisation combinées par son affectation (données, adresses, gestion) qui ont certainement caractéristiques électriques et protocoles de transfert d'informations. Ainsi, FSB agit comme un canal de tronc entre le processeur (ou les processeurs) et tous les autres appareils de l'ordinateur: mémoire, carte vidéo, disque dur, etc. Directement à K. bus système Seule la CPU est connectée, les dispositifs restants sont connectés à celui-ci par des contrôleurs spéciaux concentrés principalement dans le pont nord. logique système (chipset) carte mère. Bien qu'il puisse y avoir des exceptions - donc, dans les processeurs AMD de la famille K8, le contrôleur de mémoire est intégré directement dans le processeur, offrant ainsi une interface de mémoire beaucoup plus efficace-CPU que des solutions Intel qui maintiennent les canons classiques de l'organisation. de l'interface processeur externe. Les principaux paramètres de FSB Certains processeurs sont donnés dans le tableau

CPU fRÉQUENCE FSB, MHz Tapez FSB. Capacité théorique FSB, MB / S
Intel Pentium III 100/133 Agtl +. 800/1066
Intel Pentium 4. 100/133/200 Qpb. 3200/4266/6400
Intel Pentium D. 133/200 Qpb. 4266/6400
Intel Pentium 4 ee 200/266 Qpb. 6400/8533
Intel Core 133/166 Qpb. 4266/5333
Intel Core 2. 200/266 Qpb. 6400/8533
AMD Athlon. 100/133 Ev6. 1600/2133
AMD Athlon XP. 133/166/200 Ev6. 2133/2666/3200
AMD SEMPON. 800 Hypertransport. <6400
AMD Athlon 64. 800/1000 Hypertransport. 6400/8000

Les processeurs d'Intel utilisent le bus système QPB (bus quadruple pompé), transmettant des données quatre fois derrière l'horloge, tandis que AMD AMD Athlon et Athlon XP System Transferts Bus Transferez les données deux fois (double débit de données). Dans l'architecture AMD64 utilisée par AMD dans les processeurs Athlon 64 / FX / OPTERON, une nouvelle approche de l'interface CPU est utilisée - ici au lieu du bus processeur FSB et des messages avec d'autres processeurs sont utilisés: série haute vitesse (paquet) HyperTransport Bus, construit selon le schéma des pairs - à l'autre (point de point), fournissant un taux de change de données élevé avec une latence relativement faible.

La transition vers des microprocesseurs de 16 bits - I8086 et une autre puissance d'informatique similaire - a été marquée par un saut qualitatif de toutes les principales caractéristiques du député: non seulement une augmentation du bit, mais un changement important de l'architecture, des équipes, des principes de l'organisation de la structure. En plus de la figure montrée à la Fig. 2.4, Dans la machine utilisateur I8086, la mémoire des octets 1M et deux zones d'entrée et de sortie de 64k sont incluses.

Considérez la "machine utilisateur" basée sur I8086 (K1810BM86):

7 0 7 0
HACHE. Ah. Al La batterie
Ron Bx. Bh. BL. Base
CX. Ch Cl. Compteur
Dx Dh Dl Données
15 0
Registres Sp. Pointeur de pile
Pointeurs Bp. Pointeur de base
Indice SI Index de operanda
Registres Diabolique Résultat de l'index
15 0
Cs. Segment de code
Segment Ds. Segment de données
Registres SS. Segment pile
Estime Segment Ajouter. Données
15 0
Ip Compteur de compteur
Drapeaux. Registre des signes

Figure. 2.4. MP i8086 - machine utilisateur

Les développeurs I8086 ont essayé de maintenir la possibilité de la continuité du logiciel I8080, par conséquent, dans le cadre de I8086, le sous-ensemble des registres I8080 (le sous-ensemble correspondant est enregistré et dans le système de commande) peut être distingué. Outre les opérations avec des registres à usage général 16 bits (RON) Ax..dx, il est permis de faire appel à chaque octet de ces registres - al..dl, ah..dh. Certaines commandes Rhône effectuent des fonctionnalités par défaut des compteurs, des registres d'index, etc. (Voir Fig. 2.4).

Les registres 16 bits BP, Si, di, sont utilisés pour former des adresses de mémoire exécutive (voir ci-dessous), SP est un pointeur de pile, un compteur de logiciels IP (SCC), un registre F-Drapeau. Le plus jeune octet est complètement répète le format des signes de signes de I8080 et l'aîné a une trace. format:

Df. Détermine la direction de modifier les adresses des tableaux dans les commandes de la chaîne (augmenter ou diminuer l'adresse);

Si masque une interruption externe dans l'entrée d'entrée (si si \u003d 1 interruption est autorisée);

Tf. Gère le mode étape par étape du microprocesseur. Lorsque TF \u003d 1, après avoir exécuté chaque commande, une interruption avec le vecteur 4 est automatiquement formée (voir section 7).

Distribution de l'espace d'adressage.

L'espace d'adressage MP est défini dans l'adresse I8086 de l'adresse de l'adresse / du bus + et est 2 20 \u003d 1M octets. Dans cet espace d'adressage de MP, quatre segments sont disponibles en même temps, dont deux (DS et ES) sont destinés au placement de données, au segment de code CS (pour le placement de programme) et au segment SS-Stack.

Les tailles des segments sont déterminées par la batterie des adresses logiques des commandes, des données et de la pile. Les adresses logiques des commandes et des piles (Tops) sont stockées dans des registres IP et SS 16 bits, respectivement et l'adresse logique de données est calculée dans la commande (voir ci-dessous) et s'élève également à 16 bits. Ainsi, la taille de chaque segment de I8086 est de 64k octets. La position du segment dans l'espace d'adressage (son adresse de départ) est déterminée par le contenu du registre de segment du même nom. La formation de l'adresse physique est illustrée par le schéma de la Fig. 2.5

De la Fig. 2.5 On peut constater que la bordure du segment dans l'espace d'adressage peut être installée non arbitrairement, de sorte que l'adresse initiale du segment était Koint 16.

15 0
Registre de segment .0 0 0 0
15 0
Adresse logique
19 0
Adresse physique

Figure. 2.5 Formation d'adresse physique

Par défaut, les registres segment sont sélectionnés pour former une trace d'adresse physique. Image: Lors de la lecture de la commande à l'adresse IP, CS est utilisé, lors de l'accès à des données - DS ou ES, lors de l'accès à la pile SS. Avec l'aide de consoles spéciales à la commande (préfixe), vous pouvez affecter un registre de segment arbitraire à utiliser (sauf CS paire: IP, qui n'est pas modifié). Les limites des segments peuvent être sélectionnées de manière à ce que les segments soient isolés les uns des autres, pour croiser ou même coïncider complètement. Par exemple, si vous téléchargez CS \u003d SS \u003d DS \u003d ES \u003d 0, tous les segments coïncident les uns avec les autres et commencent par une adresse nulle - la possibilité d'organiser l'espace d'adresses I8080.

Faire face à des moyens

et méthodes de formation de l'adresse exécutive

La longueur de la commande i8086 peut être de 1 à 6 octets. Le format de l'équipe est présenté à la Fig. 2.6.

1 octet 2 octets 3..6 octets
Flic RÉ. W. Mod. Registre R / M. [Biais. Les données]
7 2 1 0 7 6 5 3 2 0

Figure. 2.6. MP I8086 Format d'équipe

La plupart des commandes I8086 sont à deux niveaux et une adresse détermine le registre du processeur, et l'autre est la mémoire ou le registre. Les champs d'équipe ont les destinations suivantes:

D - détermine la direction de la transmission des informations: à D \u003d 1 REG est un récepteur, sinon source;

W - détermine la longueur des opérandes de la commande: Lorsque W \u003d 1, la longueur des opérandes est de 16 bits (mot-mot), sinon 8 bits (octets);

REG - détermine le registre du premier opérande selon le tableau. 2.3:

Reg (r / m) S'inscrire
W \u003d 0. W \u003d 1.
Al HACHE.
Cl. CX.
Dl Dx
BL. Bx.
Ah. Sp.
Ch Bp.
Dh SI
Bh. Diabolique

Les champs R / M et MOD définissent une méthode pour former l'adresse du deuxième opérande, qui est le plus souvent en mémoire. Dans l'onglet. 2.4 Une méthode de génération d'adresses de mémoire pour deux valeurs de champ mod sont données.

R / M. Mod \u003d 00. Mod \u003d 01.
Logique Segment Logique Segment
BX + SI. Ds. BX + SI + D8 Ds.
Bx + di Ds. Bx + di + d8 Ds.
BP + SI. SS. BP + Si + D8 SS.
Bp + di SS. BP + DI + D8 SS.
SI Ds. Si + D8. Ds.
Diabolique Ds. Di + d8. Ds.
D16 Ds. BP + D8. Ds.
Bx. Ds. BX + D8. Ds.

Dans l'onglet. 2.4 D8 et D16 signifient respectivement de compensation de 8 et 16 bits (octets de commande 3 et 3 + 4). Lorsqu'il fonctionne avec D8, son "extension emblématique" est effectuée jusqu'à 16 bits - bits 15..8 Prenez la valeur du bit 7 (signe).

Lorsque MOD \u003d 10, les mêmes registres sont utilisés comme mod \u003d 01 (voir tableau 2.4), mais au lieu de D8 utilise D16.

Lorsque MOD \u003d 11, le deuxième opérande de la commande est le registre déterminé par le champ R / M selon la table. 2.3.

Ainsi, l'opérande en mémoire peut être adressé directement (MOD \u003d 00, R / M \u003d 110) ou indirectement par le contenu des registres de base (BP, BX) ou d'index (SI, DI), ainsi que de leurs sommes. Les modes d'adressage sont conçus pour mettre en œuvre efficacement les langages de haut niveau. Par exemple, vous pouvez contacter une variable simple en mode d'adressage direct et sur l'élément de réseau dans le mode d'adressage indirect par BX, SI. Le mode d'adressage via BP est conçu pour accéder aux données du segment de pile, qui est pratique lors de la mise en œuvre de procédures récursives et de compilateurs de langage de haut niveau.

La cloche.

Il y a ceux qui ont lu cette nouvelle devant vous.
Abonnez-vous pour recevoir des articles frais.
E-mail
Nom
Nom de famille
Comment voulez-vous lire la cloche
Sans spam