Processeurs Intel - selon les principes arrangés et de base. Le processeur. Types et différences de processeurs

Les étapes de développement du MP, les réalisations correspondantes, leurs principales caractéristiques architecturales et autres sont naturellement considérées sur la base de la société de MP, Intel (INTegrated ELectronics). Il existe également un certain nombre de sociétés - AMD (Advanced Micro Devices), Cyrix, Texas Instruments, etc., qui font plus ou moins concurrence à Intel pour leurs produits.

Les principaux paramètres du MP sont les suivants:

  1. fréquence d'horloge;
  2. le degré d'intégration de la puce (combien de transistors sont contenus dans la puce);
  3. largeur interne des données (nombre de bits que le MP peut traiter en même temps);
  4. largeur de données externe (nombre de bits transmis simultanément lors du processus d'échange de données de la CPU avec d'autres éléments);
  5. mémoire adressable (en fonction du nombre de bits d'adresse).

Processeurs Intel

  (22 mars 1993). Pentium est un   Un processeur superscalaire avec un bus d'adresses 32 bits et un bus de données 64 bits, fabriqué en technologie submicronique avec une structure MOS conforme composée de 3,1 millions de transistors (sur une surface de 16,25 cm2). Le processeur comprend les unités suivantes:

  1. Noyau (noyau). Actionneur principal. La performance du PM à une fréquence d'horloge de 66 MHz est d'environ 112 millions d'équipes par seconde (MIPS). Par rapport au processeur 80486 DX, les performances ont été multipliées par 5 grâce à deux pipelines qui vous permettent d'exécuter plusieurs commandes simultanément.
  2. Le prédicteur de branche essaie de deviner la direction de la branche du programme et de précharger les informations dans les blocs de commandes de prélecture et de décodage.
  3. Jump Address Buffer (tampon de cible de branchement BTB) fournit une prédiction de saut dynamique. Le principe d'action: "Si la prédiction est vraie, alors l'efficacité augmente, sinon, le convoyeur doit être complètement abandonné." Selon Intel, la probabilité d'une prédiction correcte des transitions dans les processeurs Pentium est de 75 à 80%.
  4. L'unité à virgule flottante effectue un traitement en virgule flottante. Le traitement des informations graphiques, les applications multimédias et l'utilisation intensive des ordinateurs personnels pour résoudre les problèmes de calcul nécessitent des performances élevées lors de l'exécution d'opérations en virgule flottante.
  5. Cache de niveau 1. Le processeur dispose de deux banques de mémoire de 8 Ko chacune, la première pour les commandes, la deuxième pour les données plus rapides que le cache de mémoire externe plus grand (cache L2).
  6. Interface de bus. Transmet un flux de commandes et de données à la CPU et transfère également des données de la CPU.

Le processeur Pentium a introduit le mode de gestion du système SMM (System Management Mode). Ce mode vous permet d'implémenter des fonctions système de très haut niveau, notamment la gestion ou la protection de l'alimentation, transparente pour le système d'exploitation et les applications en cours d'exécution.

Le passage à une fréquence d'horloge de 60 MHz ou plus était une réalisation importante et les problèmes de refroidissement ont été résolus en conséquence (la surface du processeur chauffait jusqu'à 85 ° C).

  (1er novembre 1995). Pour améliorer les performances, le Pentium Pro a utilisé une mémoire tampon (cache) du deuxième niveau d’une capacité de 256 Ko, située sur une puce distincte et montée dans le package de la CPU. En conséquence, il est devenu possible de décharger efficacement cinq actionneurs: deux blocs d'arithmétique entière; bloc de charge; unité d'enregistrement; FPU (Floating Point Unit - Unité pour l’arithmétique en virgule flottante).

Pentium P55 (Pentium MMX)8 janvier 1997. Pentium MMX - Version Pentium avec fonctionnalités supplémentaires. La technologie MMX était supposée ajouter / développer les capacités multimédia des ordinateurs. Une technique SIMD a été mise en œuvre qui se concentre sur les algorithmes et les types de données caractéristiques des logiciels multimédias. MMH a annoncé en janvier 1997 la fréquence d'horloge de 166 et 200 MHz. En juin de la même année, la version est apparue à 233 MHz. Processus technologique 0,35 microns, 4,5 millions de transistors.

  (7 mai 1997). Le processeur est une modification du Pentium Pro avec les capacités MMX. Les premières PII sont annoncées comme processeurs pour les ordinateurs de bureau haut de gamme (haut de gamme). La conception du boîtier a été modifiée: une plaquette de silicium avec des contacts a été remplacée par une cartouche, la fréquence du bus et la fréquence d'horloge ont été augmentées, les commandes MMX ont été étendues.

Il existe également un modèle pour ordinateurs portables - Pentium II PE et pour postes de travail - Pentium II Heon 450 MHz.

Celeron  (15 avril 1998). Celeron est une version simplifiée de P2 pour les ordinateurs bon marché. Les principales différences de ces processeurs dans le volume du bus de fréquence de cache de second niveau. Tous ces processeurs sont fabriqués avec une technologie de 0,25 micron et disposent de 7,5 à 19 millions de transistors.

(26 février 1999). P3 est l’un des processeurs Intel les plus productifs, mais dans sa conception, il diffère peu de P2, la fréquence est augmentée et environ 70 nouvelles commandes sont ajoutées. En octobre 1999, une version pour les ordinateurs mobiles a également été publiée, utilisant la technologie 0,18 micron avec des fréquences comprises entre 400 et 733 MHz. Pour les postes de travail et les serveurs, RH Heon est axé sur la logique système GX avec une taille de cache de second niveau de 512 Ko, 1 ou 2 Mo. Le processus technologique est de 0,25 micron, le bus système fonctionne à une fréquence de 100 MHz, il existe une version 0,18 micron avec une fréquence de bus de 133 MHz, ainsi que les modèles 600, 666 et 733 MHz.

  (Willamette, 2000; Northwood, 2002). Naturellement, tôt ou tard l'architecture du PIII devrait être dépassée. Le fait est que, après avoir atteint la fréquence de 1 GHz, Intel a eu du mal à augmenter encore la fréquence de ses processeurs: le Pentium III à 1,13 GHz a dû être retiré du fait de son instabilité. Augmenter davantage la fréquence des processeurs existants entraîne une augmentation de plus en plus faible de leurs performances. Le problème est que les latences (retards) générées lors de l'accès à certains nœuds de processeur sont déjà trop importantes dans P6.

Ainsi, le Pentium IV est apparu - il est basé sur une architecture appelée architecture Intel NetBurst. Avec ce titre, Intel souhaitait souligner que l'objectif principal du nouveau processeur était d'accélérer l'exécution des tâches de traitement de flux directement liées aux technologies Internet et multimédia en rapide développement.

L’architecture de NetBurst repose sur plusieurs innovations, dans un complexe permettant d’atteindre l’objectif ultime - fournir une réserve de vitesse et d’évolutivité future pour les processeurs de la famille Pentium IV. Les principales technologies comprennent:

  • Technologie hyper-pipeline - le pipeline du Pentium IV comprend 20 étapes;
  • Advanced Dynamic Execution (Exécution dynamique avancée) - prévision améliorée des transitions et de l'exécution des commandes avec modification de l'ordre de passage (exécution non conforme);
  • Trace Cache - un cache spécial est utilisé pour mettre en cache les commandes décodées dans Pentium IV;
  • Rapid Execute Engine - Processeur Pentium IV L'ALU fonctionne deux fois plus vite que le processeur lui-même.
  • SSE2 - un ensemble étendu de commandes pour le traitement des données en continu;
  • Bus système 400 MHz - nouveau bus système.

Pentium IV Prescott (Février 2004). Début février 2004, Intel a annoncé quatre nouveaux processeurs Pentium IV (2,8; 3,0; 3,2 et 3,4 GHz) basés sur le noyau Prescott, qui inclut un certain nombre d'innovations. Parallèlement à la sortie de quatre nouveaux processeurs, Intel a lancé le processeur Pentium IV 3.4 EE (Extreme Edition), basé sur le noyau Northwood et doté de 2 Mo de cache L3, ainsi que d'une version simplifiée du Pentium IV 2.8 A, basé sur le noyau Prescott avec une fréquence de bus limitée ( 533 MHz).

Les nouveaux processeurs ont la même conception que ceux basés sur le noyau Northwood. Intel a donc introduit un nouvel index dans le nom de processeur - E. Par exemple, le processeur Pentium IV 3.2 C est basé sur le noyau Northwood, prend en charge le bus 800 MHz et la technologie NT, Alors que le Pentium IV 3.2 E est construit sur le noyau de Prescott et prend également en charge le bus 800 MHz et la technologie NT.

Prescott est fabriqué à l'aide de la technologie 90 nm, ce qui a permis de réduire la surface du cristal lui-même, alors que le nombre total de transistors a été augmenté de plus de 2 fois. Alors que le noyau de Northwood a une superficie de 145 mm2 et contient 55 millions de transistors, le noyau de Prescott a une superficie de 122 mm2 et contient 125 millions de transistors.

Processeurs Cyrix

Dévoilé en octobre 1995, 6x86 était premier processeur compatible Pentium à pénétrer le marché et à collaborer avec la division Microelectronics d’IBM. L'adoption du 6x86 a d'abord été lente, car Cyrix avait fixé les prix trop élevés, pensant à tort que, puisque l'efficacité du processeur était comparable à celle d'Intel, son prix pourrait être identique. Dès que Cyrix a révisé ses positions, la puce a commencé à avoir une influence significative sur la part du secteur du marché en question en tant qu’alternative très efficace à la série Pentium.

À partir de 6x86, les processeurs Cyrix étaient capables d’atteindre un niveau de performance équivalent à celui d’une puce Pentium, mais à une fréquence plus basse. Pour l’évaluation des performances, on utilise l’évaluation des performances du processeur - P-rating (la désignation Р100 +, par exemple, symbolise une performance équivalente à celle d’un Pentium d’une fréquence de 100 MHz). Les processeurs Cyrix (tels que AMD) fonctionnent traditionnellement à des fréquences inférieures à la valeur numérique de leur évaluation P, sans diminution notable des performances. Par exemple, Р133 + (classification Р) fonctionne à 110 MHz, tandis que Р150 + et Р166 + fonctionnent à 120 et 133 MHz, respectivement.

L’excellence 6x86 découle des améliorations apportées à l’architecture des puces, qui ont permis au 6x86 d’accéder à son cache interne et de s’enregistrer en un seul cycle de fréquence (Pentium utilise généralement deux cycles ou plus pour accéder au cache). En outre, le cache principal 6x86 a été fusionné au lieu d’inclure deux sections distinctes de 8 Ko pour les commandes et les données. Ce modèle combiné a été capable de stocker des commandes et des données à tous égards, fournissant une «probabilité de cache» à 90%. La CPU contient 3,5 millions de transistors, fabriqués à l’origine avec la technologie des cinq couches de 0,5 micron. Interface - Socket 7. La tension centrale est de 3,3 V. Les caractéristiques du 6x86 sont similaires à celles d'un Pentium. Cependant, il inclut également de nouvelles fonctionnalités: suppression des dépendances de données, prévision des transitions, exécution de commandes en dehors de l'ordre naturel (possibilité que des commandes plus rapides quittent la file d'attente, sans interrompre le processus d'exécution du programme). Tout cela augmente le niveau de performance 6x86, contrairement au Pentium avec la même fréquence.

Cependant, les processeurs 6x86 ont rencontré de nombreux problèmes, notamment une surchauffe, des performances médiocres lors de l'utilisation de virgule flottante et une incompatibilité avec Windows NT. Cela a nui au succès du processeur et la concurrence avec le Pentium a été de courte durée et a pris fin avec le lancement du processeur Intel Pentium MMX.

Cyrix MediaGX. L’introduction du processeur MediaGX en février 1997 a permis d’identifier la première architecture de PC en 10 ans et d’identifier un nouveau segment de marché: le «PC primaire» bon marché. La croissance de ce marché était en plein essor, et la technologie des processeurs Cyrix et l’innovation au niveau des systèmes constituaient un élément clé.

Plus le nombre de processus traités directement sur le PC du processeur central est élevé, meilleures sont les performances globales du système. Dans le développement informatique traditionnel, le processeur central traite les données à une fréquence de mégahertz, alors qu'un bus qui déplace les données vers (et à partir) d'autres composants ne fonctionne qu'à une vitesse moitié ou même inférieure. Cela signifie que le déplacement des données vers (et depuis) ​​le processeur central prend plus de temps. Cyrix a éliminé ce goulot d'étranglement avec l'introduction de la technologie MediaGX. L'architecture MediaGX intègre les fonctions graphiques et sonores, l'interface PCI et le gestionnaire de mémoire dans une unité de traitement, éliminant ainsi les éventuels conflits système et les problèmes de configuration de l'utilisateur final. Il se compose de deux puces: le processeur MediaGX et le coprocesseur MediaGX Cx5510. Le processeur utilise un socket spécial nécessitant une carte mère spécialement conçue. MediaGX est un processeur compatible x86 qui connecte directement le bus PCI et la mémoire EDO DRAM via un bus de données 64 bits dédié. Cyrix affirme que la technique de compression utilisée sur le bus de données élimine le besoin d'un cache de second niveau. Il existe un cache combiné (16 Ko) du premier niveau sur le processeur central - le même volume que sur la puce Pentium standard. Les graphiques sont traités par un pipeline spécial sur le processeur central lui-même et le contrôleur de contrôle est également situé sur le processeur principal. Il n'y a pas de mémoire vidéo, le tampon d'images stocké dans la mémoire principale (architecture unifiée de mémoire traditionnelle - UMA), utilisant plutôt sa propre technologie de compression d'affichage Cyrix (DCT). Les opérations de données VGA sont effectuées par du matériel informatique, mais les registres VGA sont contrôlés par des programmes Cyrix - l'architecture VSA (Virtual System Architecture). La puce MediaGX Cx5510 fournie contient un contrôleur audio et utilise également des programmes VSA pour émuler les capacités des cartes son standard. Cette puce connecte le processeur MediaGX via un bus PCI à un bus ISA, ainsi qu’à des ports IDE et I / O, c’est-à-dire qu’elle exécute les fonctions traditionnelles d’un jeu de puces.

La réponse de Cyrix à la technologie Intel MMX a été 6x86MX, lancée au milieu de 1997, peu avant l’acquisition de la société par National Semiconductor. La société est restée fidèle au format Socket 7 de sa nouvelle puce, ce qui a permis de maintenir les coûts des fabricants de systèmes et finalement des consommateurs au niveau approprié, prolongeant ainsi la durée de vie de la puce et des cartes mères existantes.

L'architecture de la nouvelle puce est restée essentiellement identique à celle de son prédécesseur, avec l'ajout de commandes MMX, des améliorations apportées à l'unité à virgule flottante, un cache de premier niveau universel de grande taille (64 Ko) et une unité de gestion de mémoire étendue.

Le processeur 6x86MX a été bien accueilli sur le marché, car le 6x86MX / PR233 (fonctionnant à 187 MHz) s’est avéré plus rapide que le Pentium II (233 MHz) et le processeur AMD Kb. Le MX était également le premier processeur capable de fonctionner sur un bus externe de 75 MHz, offrant des avantages évidents en bande passante et des performances globales améliorées. Cependant, 6x86MX fonctionnait avec une virgule flottante bien pire que ses concurrents, ce qui nuisait au traitement des graphiques en trois dimensions.

Cyrix MII. Le processeur MII - développement 6h86MH, travaillant à des fréquences plus élevées. À l'été 1998, les processeurs MII-300 et MII-333 de 0,25 micron étaient fabriqués dans les nouvelles installations de production de la société National Semiconductor. Maine, visant le développement de la technologie 0,22 microns, tendant vers son objectif ultime - 0,18 microns en 1999

Processeurs AMD

Microdisques avancés de longue durée, a l'instar de Cyrix, il fabrique 286, 386 et 486 processeurs basés sur le développement d'Intel. K5 a été le premier processeur x86 créé indépendamment sur lequel AMD avait de grands espoirs. Cependant, l’achat par AMD d’un rival californien au printemps 1996 semble avoir créé une occasion de mieux préparer son prochain attentat contre Intel. K6 a commencé sa vie sous le nom de Nx686 et a été renommé après l’acquisition de NextGen. Une série de processeurs KB compatibles avec MMX ont été lancés au milieu de 1997, quelques semaines avant le Cyrix 6x86MX, et ont été immédiatement approuvés par les critiques.

K6 était près de 20% inférieur au Pentium Pro et contenait en même temps 3,3 millions de transistors de plus (8,8 contre 5,5 millions). Le processeur K6 prend en charge la technologie MMX d’Intel, notamment 57 nouvelles équipes x86 conçues pour développer des logiciels multimédia. Le niveau de performance du K6 est très similaire à celui du Pentium Pro pour les fréquences correspondantes, avec une mémoire cache maximale de 512 Ko au deuxième niveau. La puce Cyrix MX (mais dans une moindre mesure), qui fonctionne avec une virgule flottante, était un point faible relatif par rapport au Pentium Pro ou au Pentium II.

AMD K6-2. Les processeurs AMD K6-2 dotés de 9,3 millions de transistors ont été fabriqués avec la technologie AMD à 0,25 micron. Le processeur était emballé dans une carte céramique 321 broches compatible avec Super7 (boîtier CPGA). Le K6-2 comprend une microarchitecture R1SC86 efficace et innovante, un cache de premier niveau volumineux (64 Ko) (cache de données double données de 32 Ko, cache d’instructions de 32 Ko avec cache supplémentaire de précodage de 20 Ko) et un module amélioré à virgule flottante.

Lors de son lancement au milieu de l’année 1998, ses performances étaient estimées à 300 MHz. Au début de 1999, le processeur le plus rapide disponible était la version 450 MHz. Les capacités tridimensionnelles du K6-2 représentent une autre réalisation importante. Elles ont été intégrées à la technologie AMD 3DNow!, En tant que nouvel ensemble de 21 équipes complétant les commandes MMX standard déjà incluses dans l’architecture de la base de connaissances, qui accéléraient le traitement des applications tridimensionnelles. Le processeur K6-2 (550 MHz), annoncé début 2001, devait être le processeur AMD le plus rapide et le plus final du facteur de forme vieillissant de Socket 7, qui a ensuite été remplacé par le processeur Duron dans le secteur prometteur des ordinateurs de bureau.

AMD K6-III. En février 1999, AMD a annoncé le lancement d'un lot de processeurs AMD K6-III à 400 MHz, au nom de code, et a testé la version 450 MHz. Une caractéristique clé de ce nouveau processeur était son développement innovant: le cache à trois niveaux.

Traditionnellement, les processeurs PC utilisaient deux niveaux de cache:

  • cache du premier niveau (L1), qui est généralement situé sur la puce;
  • cache de second niveau (L2), qui peut être situé en dehors de la CPU, sur la carte mère ou le slot, ou directement sur la puce du CPU.

En règle générale, lors de la conception d'un sous-système de cache, plus le cache est grand et rapide, meilleures sont les performances (le cœur de la CPU peut accéder aux instructions et aux données plus rapidement).

Reconnaissant les avantages d’un cache volumineux et rapide pour répondre aux besoins d’applications de plus en plus exigeantes en performances PC, le «cache à trois niveaux» d’AMD a présenté les innovations en matière de cache architecturales conçues pour augmenter les performances du PC sur la plate-forme Super7:

  • cache interne K2 (256 Ko), à la vitesse maximale du processeur AMD-K6-III et cache complémentaire L1 (64 Ko), standard pour toute la famille de processeurs AMD-K6;
  • cache interne multiport permettant la lecture et l'écriture simultanées sur 64 bits dans les caches L1 et L2;
  • bus de processeur principal (100 MHz), fournissant une connexion à la mémoire cache résidente sur une carte mère extensible de 512 à 2048 Ko.

Le projet de cache interne à plusieurs ports AMD-K6-III permettait à la fois au cache L1 (64 Ko) et au cache L2 (256 Ko) d'exécuter simultanément des opérations de lecture et d'écriture de 64 bits par cycle d'horloge du processeur. Outre ce projet de cache multi-ports, le cœur du processeur AMD-K6-III était en mesure d'accéder simultanément aux caches L1 et L2, ce qui augmente le débit global du processeur.

AMD a affirmé qu'avec un cache de troisième niveau entièrement optimisé, le K6-III présentait un avantage de cache de 435% par rapport au Pentium III et, par conséquent, un avantage de performances significatif. Cependant, il était finalement destiné à vivre une vie relativement courte dans le domaine des ordinateurs de bureau, après avoir été remplacé par un processeur AMD Athlon plus efficace en quelques mois.

La sortie du processeur Athlon à l’été 1999 a été l’initiative la plus réussie d’AMD. Cela leur a permis d'être fiers d'avoir produit   Premier processeur de la septième génération (il avait de nombreuses différences architecturales par rapport aux Pentium II / III et K6-III pour mériter le nom de processeur de la prochaine génération), ce qui signifiait également qu'elles avaient tiré le leadership technologique d'Intel.

Le mot grec ancien Athlon signifie "trophée" ou "jeu". L’Athlon est le processeur par lequel AMD espérait renforcer sa réelle compétitivité dans le secteur des entreprises, en plus de son avantage traditionnel sur le marché grand public et le marché des jeux 3D. Le noyau est placé sur un cristal de 102 mm2 et contient environ 22 millions de transistors.

Duron.  Au milieu des années 2000, le processeur Duron, conçu pour la maison et le bureau, a été lancé. Le nom vient du latin "durare" - "éternel", "long". Le cache L1 (128 Ko) et L2 (64 Ko) sont situés sur la carte. Le bus système principal fonctionne à 200 MHz. Pris en charge par la technologie améliorée 3DNow! Technologie 0,18 microns, fréquences 600, 650 et 700 MHz. Interface - Prise A. à 462 broches

Athlon 64.  À l'automne 2003, deux sont sortis. Modèles de processeur AMD - Athlon 64 pour le marché grand public et Athlon 64 FX-51 pour les applications multimédia et professionnelles (architecture K8). Dans la notation, l’AMD Athlon 64 a une fréquence équivalente à 3 200+, avec une fréquence physique de 2 GHz, le FX-51 est légèrement plus - 2,2 GHz. Une innovation architecturale importante est l'intégration d'un contrôleur de mémoire système (concentrateur de contrôleur de mémoire système - MCH) directement dans le processeur. Cela signifie que la carte mère (plus précisément le jeu de puces) ne devrait plus contenir de puce de contrôleur Northbridge distincte. En outre, il n’est pas nécessaire de disposer d’un bus système principal (FSB) avec tous les retards qu’il introduit. Au lieu de cela, K8 utilise HyperTransport (bande passante de bus système jusqu'à 6,4 Go / s) pour se connecter à Southbridge, AGP ou à d'autres processeurs. Cela permet à la mémoire de fonctionner à la fréquence maximale du processeur, réduit la latence (latence) et améliore l'efficacité de la mémoire. Le processeur est adapté aux applications 32 et 64 bits.

Parallèlement, quand AMD a annoncé l'Athlon 64, Microsoft a annoncé la sortie d'une version bêta de Windows XP Édition 64 bits pour les processeurs 64 bits, qui peut fonctionner naturellement à la fois sur les processeurs AMD Athlon 64 (PC) et AMD Opteron ( postes de travail).

Travailler avec la liste de prix

Lors du choix d'un microprocesseur, il est nécessaire de prendre en compte certaines caractéristiques, par exemple

  1. Processeurs Intel.
  2. Processeurs AMD et Cyrix.
  1. Les versions modernes des processeurs Intel et AMD (contrairement aux anciens).
  2. Fabricants alternatifs de microprocesseurs.
  1. Caractériser les composants de la liste de prix
    • AMD ATHLON-64 X2 6000+ BOX (ADV6000) Prise de courant 1 Mo / 2000 MHz AM2
    • Socket 754 AMD ATHLON-64 2800+ (ADA2800) 512K / 800MHz
    • Intel Core 2 Duo E6550 2,33 GHz / 4 Mo / 1333 MHz 775-LGA
    • 423-PGA Intel Pentium 4 1,5 GHz / 256K / 400MHz

Le processeur remplit les fonctions suivantes:

1) calculer les adresses des commandes et des opérandes;

2) sélection et décodage des commandes de la RAM;

3) sélection des données de la RAM, de la mémoire du microprocesseur et des registres des adaptateurs de périphériques externes;

4) recevoir et traiter les demandes et les commandes provenant de périphériques externes;

5) le traitement des données et leur écriture dans la RAM, les registres du microprocesseur et les registres de l'adaptateur de périphérique externe;

6) développement de signaux de commande pour toutes les autres unités et unités de l'ordinateur;

7) aller à la prochaine équipe.

Selon / 4 /, les paramètres principaux des microprocesseurs sont: profondeur de bits, fréquence d'horloge de travail, taille du cache, composition des instructions, constructif.

1) Capacité numérique des registres internes - le nombre de bits que le processeur peut traiter en une étape. Largeur du bus de données  détermine le nombre de bits sur lesquels des opérations peuvent être effectuées simultanément. Largeur du bus d'adresse  détermine la quantité de mémoire (espace adresse) avec laquelle le processeur peut fonctionner. Espace d'adressage  - Il s'agit du nombre maximal de cellules mémoire pouvant être directement adressées par le microprocesseur.

2) Fréquence d'horloge de travail (MHz)  détermine en grande partie la vitesse du processeur, car chaque commande est exécutée pendant un certain nombre de cycles. Plus le cycle d'horloge de la machine est court, meilleures sont les performances du processeur. La vitesse de l'ordinateur dépend également de la fréquence d'horloge du bus de la carte mère avec laquelle le processeur fonctionne.

3) Mémoire cacheinstallé sur la carte à microprocesseur a deux niveaux:

3.1) L 1   - la mémoire du premier niveau, située à l'intérieur de la puce principale (cœur) du processeur et fonctionnant toujours à la fréquence maximale du processeur (apparue pour la première fois dans les microprocesseurs Intel 386SLC et 486).

3.2) L 2   - la mémoire du deuxième niveau, une puce placée sur la carte du microprocesseur et connectée au cœur par le bus interne (d'abord introduit dans les microprocesseurs Pentium II). Cette mémoire peut fonctionner à la fréquence complète ou à la moitié du processeur.

4) La composition des instructions  - liste, type et type de commandes exécutées automatiquement par le microprocesseur. Définit directement les procédures pouvant être effectuées sur les données et les catégories de données sur lesquelles ces procédures peuvent être effectuées. Un changement important dans la composition des instructions s'est produit dans le microprocesseur Intel 80386 (cette composition est prise comme base), Pentium MMX, Pentium III, Pentium 4.

5) Constructif  implique les connexions de plug-ins physiques dans lesquelles le microprocesseur est installé. Différents connecteurs ont une conception différente (connecteur d’emplacement - Emplacement, connecteur de prise - Soket), un nombre différent de contacts.

Les transformateurs sont classés selon divers critères. Conformément à / 4, 13 /, les principales caractéristiques suivantes peuvent être distinguées:

1) par but  les microprocesseurs sont divisés en universel  et spécialisé. Les premiers sont conçus pour résoudre un large éventail de tâches: l'universalité algorithmique est définie dans le système de commande. Ainsi, les performances du processeur dépendent faiblement des spécificités des tâches à résoudre. Les processeurs spécialisés sont conçus pour résoudre un ensemble spécifique de tâches, voire une seule tâche, avec un ensemble limité de commandes. Parmi eux se démarquer processeurs de données, processeurs de mathématiques  et microcontrôleurs.

2) par le nombre de programmes en cours  les processeurs sont divisés en programme unique  (le passage à l'exécution du programme suivant n'a lieu qu'après l'achèvement du programme en cours) et multiprogramme  (plusieurs programmes s'exécutent simultanément).

3) par structurelle  les microprocesseurs sont distingués bit fixe  (ont une capacité de chiffres strictement définie) et microprocesseurs avec une profondeur de bits incrémentielle  (permet aux sections d'augmenter le nombre de chiffres).

4) par nombre de LSI (VLSI) dans un ensemble de microprocesseurs  peut mettre en évidence puce unique, multipuce  et coupe multipuce  processeurs. Dans le premier cas, tous les composants matériels du processeur sont implémentés en tant que LSI (VLSI); les capacités de tels processeurs sont limitées par les ressources du cristal et du boîtier. Les processeurs multipuces résultent de la scission de la structure logique du processeur en plusieurs parties fonctionnellement complètes, chacune étant implémentée sous forme de LSI ou de VLSI. Dans ce dernier cas, les parties de la structure logique du processeur qui sont fonctionnellement complètes sont divisées en sections, qui sont mises en œuvre sous forme de LSI.

5) par capacité numérique de l'information traitée  Les microprocesseurs peuvent être de 4, 8, 12, 16, 24, 32 et 64 bits. En pratique, les processeurs 32 bits sont les plus courants. Les processeurs 64 bits deviennent de plus en plus courants.

6) par type technologie de fabrication LSI (VLSI)  Les microprocesseurs sont divisés en deux groupes: les processeurs construits sur LSI, fabriqués par   technologie unipolaireet des processeurs construits sur BIS, fabriqués par technologie bipolaire. Représentants du premier groupe: p-canal (p-MOP), n-canal (n-MOP), complémentaire (CMOS)  BIS. (MOS - métal-oxyde-conducteur). Le deuxième groupe comprend les logique transistor-transistor (TTL), logique couplée à l'émetteur (ECL)  et logique d'injection intégrale (ET 2 L). Le type de technologie de fabrication LSI détermine en grande partie le degré d'intégration de la puce, la vitesse, la consommation d'énergie, l'immunité au bruit et le coût des processeurs. Selon la complexité de ces caractéristiques, on peut privilégier les microprocesseurs utilisant les technologies n-MOS et CMOS, qui assurent une haute densité de mise en page, une vitesse élevée et un coût relativement faible. ECL offre les performances les plus rapides du processeur, mais une densité de mise en page faible et une consommation d'énergie élevée. Technologie Et 2 L donne les caractéristiques moyennes des microprocesseurs.

7) par système de commande de personnage émettre processeurs d'instruction completsou CISCprocesseurs  (Commande d'ensemble d'instructions complexes), processeurs de sténographie  ou RISCprocesseurs  (Commande du groupe d’infrastructures réduit), processeurs avec super gros mot de commande  ou Vliwprocesseurs(Très long mot d'instruction). Les processeurs CISC disposent d'un vaste ensemble de commandes multi-formats, ce qui permet d'utiliser des algorithmes efficaces pour résoudre les problèmes, tout en compliquant le circuit du processeur et, dans le cas général, n'offrant pas des performances optimales. L'architecture de CISC est inhérente aux processeurs classiques. Les processeurs RISC contiennent un ensemble de fonctions simples, qui figurent le plus souvent dans les instructions du programme. S'il est nécessaire d'exécuter des commandes plus complexes dans le microprocesseur, celles-ci sont automatiquement assemblées à partir de commandes simples. Toutes les commandes simples ont la même taille et un cycle machine est dépensé pour leur exécution (quatre cycles sont généralement consacrés à l'exécution de la commande la plus courte du système CISC). Les processeurs RISC 64 bits modernes sont fabriqués par de nombreuses entreprises: Apple (PowerPC), IBM (PPC), etc. Dans les processeurs VLIW, une instruction contient plusieurs opérations qui doivent être exécutées en parallèle. La tâche de répartir le travail entre plusieurs dispositifs informatiques du processeur est résolue au moment de la compilation du programme. Cette approche nous a permis de réduire la taille des processeurs et la consommation d’énergie. Des exemples de processeurs VLIW sont Itanium d'Intel, McKinley de Hewlett-Packard et d'autres.

8) par le nombre et la méthode d'utilisation des registres internes  distinguer rechargeable, multiaccumulateur  et empiler  processeurs. Processeurs de batterie  - Ce sont des processeurs avec un registre de résultats. Leur caractéristique distinctive est la simplicité relative de la mise en œuvre matérielle, ainsi que le format simplifié des commandes (à discuter dans la prochaine leçon). Dans les commandes, l'adresse de l'opérande dans la batterie n'est pas spécifiée, mais seul le deuxième opérande est adressé. Les inconvénients de tels processeurs sont la nécessité de précharger l'opérande dans la batterie avant d'effectuer l'opération et l'impossibilité d'écrire directement le résultat de l'exécution de la commande dans une cellule de mémoire ou un registre arbitraire. Dans multi-batteriedans les registres, qui constituent la majorité des processeurs modernes, la fonction des registres de résultats peut exécuter n’importe quel registre ou cellule de mémoire généraliste. Dans les commandes, les deux opérandes sont spécifiés explicitement et le résultat de l'opération est le plus souvent placé à la place de l'un des opérandes. Dans empilable Les processeurs utilisent généralement une pile matérielle importante et une pile externe supplémentaire en mémoire (avec une pénurie de matériel). En raison du placement spécial des opérandes dans la pile, le traitement des informations peut être effectué avec des instructions non adressées, ce qui améliore les performances du processeur et économise de la mémoire. Ces commandes extraient un ou deux opérandes de la pile, leur effectuent l’opération arithmétique ou logique correspondante et placent le résultat en haut de la pile. L'inconvénient est la nécessité d'une préparation préalable des données à l'aide de commandes d'adresse.

L’historique du développement des processeurs et de leurs caractéristiques comparatives est présenté plus en détail dans / 4, 13 /. Ensuite, nous considérons la structure physique et fonctionnelle du processeur.

    Organisation physique et fonctionnelle de la CPU (par exemple, la CPU Intel    8086). SHI.

La structure physique du processeur est assez complexe. Conformément à / 4 /, le cœur du processeur contient les modules principaux de contrôle et d’exécution, des blocs permettant d’effectuer des opérations sur des données entières. Les circuits de commande locaux incluent: un bloc à virgule flottante, un module de prédiction de branche, des registres de mémoire à microprocesseur, des registres de cache du premier niveau, une interface de bus, etc.

Remarque: Le cœur logique est le schéma selon lequel le processeur est fabriqué. Physiquement, le noyau est un cristal sur lequel un schéma de circuit est mis en œuvre à l'aide d'éléments logiques.

Dans le cas le plus général, la structure fonctionnelle du processeur peut être représentée comme une composition, selon une source / 4, 5 /, en deux parties: dispositif de commande (OU) et interface de bus (Shi), d’après les autres / 2 /, - trois blocs: unité d'exploitation (À propos), unité de contrôle (Ub) et unité d'interface (IB). Il existe des différences mineures dans le nombre et le nom des blocs, qui ne violent en rien le nombre et les principes de fonctionnement des composants du processeur. Par conséquent, nous considérons la première version (plus visuelle) de la source / 4 /.

Une structure de processeur typique simplifiée est présentée à la figure 4.1.

OU  contient une unité de contrôle (CU), une unité arithmétique et logique (ALU), un registre de drapeaux, des registres à usage général (RON), des pointeurs de registre et des registres d'index. Shi  contient des registres d’adresses, un bloc de registres (tampon) de commandes, un nœud de génération d’adresses, un bus et un circuit de contrôle des ports. Les deux parties du microprocesseur fonctionnent en parallèle et le circuit intégré est plus rapide que l'amplificateur opérationnel. Examinez ces processeurs plus en détail.

Shiil est destiné à la communication et à la coordination du microprocesseur avec le bus système, ainsi qu'à la réception, à l'analyse préliminaire des instructions du programme en cours d'exécution et à la génération d'adresses complètes d'opérandes et d'instructions.

Segmentaire  (adresse) enregistre avec nœud de formation d'adresse  implémenter la segmentation de la mémoire. Les commandes et les données sont stockées dans des cellules et leur emplacement mémoire est déterminé par les adresses des cellules correspondantes. Etant donné que les commandes et les données au niveau des codes ne peuvent pas être distinguées, il est utilisé pour distinguer les commandes des données, leur placement dans différentes zones de mémoire - segments -. Segment  - Il s’agit d’une zone de mémoire rectangulaire, caractérisée par l’adresse de début et la longueur. Adresse de départ (adresse de début de segment)  Est le numéro (adresse) de la cellule de mémoire à partir de laquelle commence le segment. Longueur du segment c'est le nombre de cellules de mémoire qu'il contient. Les segments peuvent avoir des longueurs différentes. Toutes les cellules situées dans un segment sont renumérotées à partir de zéro. L'adressage des cellules dans le segment est relatif au début du segment; l'adresse de cellule dans le segment s'appelle excentréou adresse effective -EA(par rapport à l'adresse de départ du segment). Le segment en cours peut être spécifié en chargeant le registre de segment correspondant:

1) CS (Code Segment)   - détermine le début du segment de code actuel dans lequel se trouvent les commandes du programme. La commande est sélectionnée en utilisant le contenu du registre comme adresse effective. IP (Instruction Pointeur) , et comme adresse du segment - le contenu du CS. C'est le registre IP qui stocke le décalage d'adresse de la commande du programme en cours.

2) DS (Les données Segment)   - définit le début du segment de données actuel. Des références aux données (à quelques exceptions près) sont faites par rapport au contenu de ce registre.

3) SS (Pile Segment)   - détermine le début du segment de pile actuel. En règle générale, toutes les adresses de données associées à la pile sont relatives au contenu de ce registre.

4) ES (Étendu Segment)   - définit le début d'un segment courant supplémentaire, qui est généralement considéré comme un segment de données auxiliaire (pour les transferts entre segments).

Adresse de formation de nœud  et registre de commande  fonctionnellement partie de la SU et ont été discutés ci-dessus.

Lors de l'adressage de périphériques d'entrée / sortie (I / V), les registres de segment ne sont pas utilisés. Le processeur interagit avec eux via un espace d'adressage spécial, à savoir les ports. Chaque port a un numéro qui correspond à l'adresse du périphérique qui lui est connecté. Le port de l'appareil correspond à l'équipement d'interface et à deux registres pour l'échange de données et les informations de contrôle. Schéma de contrôle de bus et de port   remplit les fonctions suivantes:

1) formation de l'adresse de port et des informations de contrôle correspondantes;

2) recevoir des informations de contrôle du port, des informations sur l'état de préparation du port et son statut;

3) organisation d'un canal de bout en bout dans l'interface système pour le transfert de données entre le port de diffusion et le processeur.

Le schéma de contrôle de bus et de port utilise le bus système pour communiquer avec les ports: le bus d'adresses, le bus de données et le bus d'instructions.

    Organisation physique et fonctionnelle du processeur (par exemple, le processeur Intel 8086). OU.

En général, l'unité d'organisation effectue les opérations définies par les équipes et génère des adresses effectives.

Woo  produit des signaux de contrôle pour toutes les unités de l'ordinateur. Dans le cadre de la CU, les blocs fonctionnels suivants peuvent être identifiés:

1) registre de commande  - le registre de mémoire dans lequel le code de commande est stocké: le code d'opération et les adresses des opérandes (situés dans la partie interface du processeur);

2) opérations de désembrouillage  - bloc logique qui, en fonction du code d'opération reçu du registre des commandes, sélectionne l'une des nombreuses sorties dont il dispose;

3) micrologiciel de mémoire morte (ROM)  stocke des impulsions de commande pour effectuer des procédures de traitement de l'information dans des unités informatiques; une impulsion lit la séquence nécessaire de signaux de commande de la ROM de micrologiciel à l'aide du fil sélectionné par le décodeur d'opérations;

4) noeud de génération d'adresses  (situé dans ShI) - un dispositif pour calculer l'adresse complète d'une cellule de mémoire (registre) en utilisant les détails reçus de la mémoire du microprocesseur ou du registre de commande;

5) adresses et instructions de données de bus de code  - partie du bus d'interface interne du processeur.

Ainsi, la CU génère les signaux de commande pour que le processeur remplisse ses fonctions décrites ci-dessus.

Figure 4.1 - Structure de processeur typique simplifiée

ALU  conçu pour effectuer des opérations arithmétiques et logiques de conversion d'informations. Fonctionnellement, dans la version la plus simple, l'ALU comprend les composants suivants:

1) additionneur  effectue la procédure d'addition de codes binaires, a la largeur d'un mot machine double (32 bits);

2) registres - cellules de mémoire rapide de différentes longueurs: le registre 1 a une largeur de 32 bits, le registre 2, une résolution de 16 bits; lors de l'ajout, le premier élément est placé dans le registre 1, puis le résultat, le deuxième élément est placé dans le registre 2;

3) circuit de contrôle  il reçoit des signaux de commande de l'unité de commande via des bus de code d'instructions et les convertit en signaux de commande du fonctionnement des registres et de l'additionneur.

ALU effectue des opérations arithmétiques uniquement sur les nombres binaires avec un point fixe. Un coprocesseur mathématique ou des programmes spécialement compilés sont utilisés pour gérer les nombres à virgule flottante.

Vous trouverez des informations plus détaillées sur le périphérique et le fonctionnement du SU et de l’ALU dans / 3 - 5 /.

Registres UO  - partie de la mémoire du microprocesseur. Considérez les registres de l'exemple du processeur de base Intel 8086, qui contient un total de 14 registres à deux octets. Dans les processeurs modernes, il y en a beaucoup plus et une plus grande capacité numérique. Cependant, la mémoire du processeur à 14 registres est utilisée comme modèle de base, en particulier pour le langage d'assemblage.

Le système d'exploitation comprend les registres suivants:

1) registres à usage général (RON)  ou universel: AX - (AH, AL), BX - (BH, BL), CX - (CH, CL), DX - (DH, DL) peuvent être utilisés pour stocker temporairement des données, pendant que vous pouvez travailler avec chaque registre dans son ensemble, et c'est possible séparément, avec chaque moitié; mais chaque RON peut également être utilisé comme spécial lors de l'exécution de commandes spécifiques;

2) registres à décalage: SP, BP, SI, DI sont indivisibles et sont destinés à stocker des adresses relatives de cellules mémoire dans des segments (décalages par rapport au début des segments);

2.1) SP (Pile Pointeur)   - le décalage du haut de la pile;

2.2) BP (Base Pointeur)   - décalage de l'adresse de départ du champ de mémoire alloué directement à la pile;

2.3) SI (Source Index) , DI (La destination Index)   ils sont destinés à stocker les adresses des index de données source et cible lors d'opérations sur des chaînes et autres.

Mot d'état du processeur (PswProcesseur Etat Mot)   ou s'inscrire de drapeaux  - a une taille de 2 octets et contient des signes ou des drapeaux à un bit. Il y a 9 drapeaux dans le registre: 6 d'entre eux conditionnel  ou statut, reflètent les résultats des opérations effectuées par le système d’exploitation, les 3– les gouverneurs, détermine le mode d’exécution du programme.

1) Drapeaux d'état.

1.1) CF (Porter Drapeau)   - porter le drapeau. Il est défini sur 1 si, lors de l'exécution de calculs arithmétiques et de certaines opérations de décalage, il se produit un «transfert» du chiffre le plus significatif.

1.2) PF (drapeau de parité) - drapeau de parité. Vérifie les 8 bits inférieurs des résultats sur les données. Un nombre pair d'unités entraîne la mise à 1 de cet indicateur, un nombre impair à 0.

1.3) AF (Auxiliaire Porter Drapeau)   - un drapeau de transfert logique en arithmétique décimale binaire. Défini sur 1 si une opération arithmétique conduit au transfert ou à l'emprunt du quatrième bit de droite d'un opérande à un octet. Utilisé dans les opérations arithmétiques sur les codes décimaux binaires et les codes ASCII.

1.4) Zf (Zéro Drapeau) - drapeau de zéro. Défini sur 1 si le résultat de l'opération est 0, sinon ZF est réinitialisé.

1.5) SF (drapeau de signe)  - signe de drapeau. Défini sur 1 si le résultat d'une opération arithmétique est négatif, sur 0 si le résultat est positif.

1.6) De (Débordement Drapeau)   - débordement du drapeau. Il est mis à 1 lors du dépassement arithmétique, lorsque le résultat dépasse les limites de la grille de décharge.

2) drapeaux de contrôle.

2.1) Tf (Piège Drapeau)   - indicateur de trace. Un seul état de cet indicateur met le processeur en mode d'exécution pas à pas du programme.

2.2) IF (drapeau d'interruption)  - drapeau d'interruption. Dans l'état zéro de ce drapeau, les interruptions sont interdites, dans le cas d'un drapeau unique, elles sont autorisées (le mécanisme d'interruption sera discuté lors de la prochaine leçon).

2.3) Df (Direction Drapeau)   - direction du drapeau. Utilisé dans les opérations sur les chaînes pour spécifier la direction du traitement des données; dans le cas d'un seul état, les lignes sont traitées «de droite à gauche» et à zéro, elles sont traitées «de gauche à droite».

L'emplacement des indicateurs dans le registre PSW est indiqué à la figure 4.2. Les bits gratuits sont réservés pour une utilisation future.

Figure 4.2 - La disposition des drapeaux dans le registre PSW

    Principes architecturaux de l'organisation des processeurs RISC.

Comme indiqué dans / 2, 14, 15 /, la liste des commandes d’un microprocesseur moderne peut contenir un assez grand nombre de commandes. Cependant, tous ne sont pas utilisés aussi souvent et régulièrement. Cette fonctionnalité du jeu d'instructions était une condition préalable au développement de processeurs dotés d'une architecture RISC. L'idée principale était de réduire la liste des commandes utilisées et, par conséquent, de simplifier l'unité de commande du processeur et d'organiser une exécution plus rapide des commandes restantes aux dépens des ressources de cristal libérées.

Les premiers processeurs à jeu d'instructions réduit ont été mis en place au début des années 80 du 20ème siècle / 2 /:

1) En 1980, à l’Université de Californie à Berkeley, sous la direction des professeurs David Patterson et Carlo Sequin, un processeur, appelé RISC, a été mis au point. Des modèles RISC-I, RISC-II et SOLAR ont été développés.

2) En 1981, à l’Université de Stanford, sous la direction de John Hennessy (Dohn Hennesy), un processeur a été conçu, appelé MIPS (microprocesseur sans étages de pipeline interconnectés - un microprocesseur sans bloquer le convoyeur). Plus en détail sur l'essence du pipeline sera discuté dans le prochain numéro de la conférence.

Plus tard, les deux modèles avec des jeux d'instructions abrégés ont été appelés processeurs RISC. Une caractéristique distinctive de ces processeurs est un grand nombre de RON (environ 256).

Nous décrivons brièvement les principes de base de l’architecture RISC / 2, 15 /.

1) Même longueur de commande. Cela facilite leur sélection dans la mémoire principale. Toutes les commandes sont lues dans un cycle d'horloge, ce qui permet de traiter le flux d'instructions selon un principe de convoyeur, c'est-à-dire que les parties matérielles du processeur sont synchronisées, en tenant compte du transfert séquentiel du contrôle d'une unité matérielle à une autre. Dans les processeurs RISC modernes, la longueur de commande est de 32 bits.

2) Ensemble abrégé d'actions sur des opérandes placés en mémoire. Des moyens simples d'adressage en mémoire fournissent un accès rapide aux opérandes en mémoire. Le traitement des données, implémenté lors de l'exécution de commandes RISC, n'est jamais combiné avec des opérations de lecture / écriture en mémoire (contrairement à de nombreuses commandes CISC). L'échange d'opérandes entre la mémoire et les registres est effectué par des commandes spéciales de chargement (LOAD) et de mémoire (STORE). Un grand nombre de registres de blocs RON permet de réduire le nombre d’accès à la mémoire.

3) Effectuez toutes les opérations de calcul sur les données placées uniquement dans le RON.  Comme il y a beaucoup de registres, toutes les variables scalaires et même les petits tableaux de variables sont le plus souvent placés dans des registres, ce qui permet d'accélérer le traitement des données. L'utilisation de commandes simples simplifie la mise en œuvre de leur traitement en pipeline. En moyenne, les commandes RISC sont exécutées en un cycle.

4) Schémas de contrôle relativement simples. La réduction de la liste des commandes, l’utilisation de commandes n’impliquant que des opérations simples et l’exclusion des commandes de traitement des données à partir d’accès mémoire ont permis de réduire la consommation de ressources de cristal pour le contrôle. De ce fait, une grande surface du cristal est allouée pour accueillir des dispositifs permettant d’augmenter les performances globales du processeur: pipelines supplémentaires, mémoire cache augmentée du 1er niveau, plus de RHE.

Il est important de noter qu'avec la même technologie de production, les processeurs RISC ont des fréquences de fonctionnement plus élevées que les processeurs CISC, ce qui constitue un avantage important des processeurs RISC.

Selon / 15 /, les blocs matériels suivants peuvent être distingués dans l’architecture des processeurs RISC, qui constituent les étapes du transporteur:

1) Bloc de chargement d'instruction  Il comprend les composants suivants: un bloc d’instructions de recherche dans la mémoire, un registre d’instructions dans lequel la commande est placée après la sélection et un bloc pour les instructions de décodage. Cette étape s'appelle le niveau de sélection d'instruction.

2) RON avec unités de contrôle de registre  forment la deuxième étape du pipeline, qui est responsable de la lecture des opérandes des commandes. Les opérandes peuvent être stockés dans la commande elle-même ou dans l'un des RON. Cette étape s'appelle l'étape de sélection d'opérande.

3) ALU et, si une batterie est implémentée dans cette architecture, avec logique de contrôlequi, sur la base du contenu du registre d'instructions, détermine le type de micro-opération en cours d'exécution. Lors de l'exécution d'opérations de sauts conditionnels et inconditionnels, un compteur de commandes peut également être une source de données. Cette étape s'appelle l'étape exécutive du convoyeur.

4) Ensemble de RON et logique d'écriture  forme la phase de stockage de données. Ici, les résultats de l'exécution de la commande sont enregistrés dans le RHONE ou dans la mémoire principale.

Les microprocesseurs MIPS R4000, R8000, R100000 de MIPS Technologies Inc., UltraSPARC I, UltraSPARC II, UltraSPARC III de Sun, PowerPC de IBM-Motorola, Alpha AXP de DEC, PA-RISC de Hewlett Packard, les microcontrôleurs de Microchip sont classés comme des processeurs RISC. .

Malgré les avantages évidents, les processeurs RISC "sous forme pure" ne sont pas largement utilisés sur le marché des ordinateurs personnels, la plupart d'entre eux étant utilisés comme processeurs centraux pour les postes de travail. Cependant, la plupart des processeurs CISC modernes, par exemple Pentium, utilisent les réalisations des architectures RISC, en particulier le noyau RISC, pour effectuer des opérations de calcul.

Les modèles de processeurs RISC sont activement développés et améliorés. Actuellement, des produits d'importance commerciale sont mis en œuvre sur leur base: systèmes SPARC et MIPS.

Des informations plus complètes sur les processeurs RISC, les caractéristiques de leur architecture et leur fonctionnement sont disponibles dans / 2 /, des ouvrages spécialisés et des sources ouvertes sur Internet.

    Moyens architecturaux pour améliorer les performances du processeur. Traitement de l'information par convoyeur.

Les performances sont l’une des caractéristiques les plus importantes du processeur. Selon / 2 /, en général, il est déterminé par la quantité de travail de calcul effectué par unité de temps. Les facteurs les plus importants qui affectent les performances incluent la fréquence d'horloge, le nombre de commandes de programme et le temps d'exécution moyen d'une commande individuelle. Pour une évaluation simplifiée des performances du processeur, on utilise souvent un indicateur indiquant le nombre de commandes exécutées par seconde. Il est défini comme le quotient de la division de la fréquence d'horloge par le temps d'exécution moyen par le processeur d'une commande distincte et est mesuré en MIPS (Meg Insruction Par Seconde) pour les tâches à nombre entier et MFLOPS (Meg Floating Point Operations) pour les calculs en virgule flottante. Dans ce cas, des estimations de l'indicateur déterminant le nombre de commandes exécutées par seconde sont effectuées pour les opérations avec des opérandes de registre, sans être liées aux performances de la mémoire principale. Cependant, cette figure ne prend pas en compte l'architecture spécifique de processeurs spécifiques. Par conséquent, pour les caractéristiques comparatives de différents processeurs, des estimations de performance relative sont utilisées, pour lesquelles des programmes de test spéciaux sont utilisés.

Conformément à / 2 /, l’augmentation des performances du processeur est généralement obtenue grâce à l’utilisation de solutions technologiques et architecturales spéciales. Les approches technologiques (amélioration des technologies de production IP, augmentation du degré d'intégration) ont été examinées précédemment, dans le deuxième chapitre. Par conséquent, nous allons nous attarder sur les moyens architecturaux d’améliorer les performances des processeurs. L’amélioration de l’architecture du processeur, qui augmente ses performances, est actuellement principalement associée au développement d’outils de traitement de données en parallèle. Ici, vous pouvez mettre en évidence les domaines suivants:

1) Augmentation du parallélisme "naturel" - augmentation du nombre de bits du traitement et du transfert de données (le nombre de bits des processeurs est passé de 4 à 32 et 64 bits).

2) Traitement des données de convoyeur (multiphase) - le processus de calcul est divisé en plusieurs phases, chacune utilisant ses propres moyens et un tampon pour stocker le résultat (étape du pipeline).

3) Traitement de données multiple - traitement de données parallèle dans plusieurs blocs opérationnels (OA) du processeur.

Les méthodes de traitement en parallèle peuvent être combinées. Par exemple, dans un processeur, il est possible d'organiser plusieurs blocs opérationnels, chacun utilisant le traitement en pipeline.

Examinons plus en détail les deux dernières directions.

Avec multiphase  traitement, comme le montre la figure 4.3, le traitement des données est divisé en plusieurs étapes (phases), effectuées de manière séquentielle.

Figure 4.3 - Traitement de données multiphase

Entre les phases, des tampons permettent de stocker les résultats intermédiaires. Une fois la première phase terminée, le résultat est stocké dans la mémoire tampon et le traitement de la deuxième phase commence. Les outils nécessaires à l'exécution de la première phase sont libérés et la prochaine donnée arrive. Si la durée des phases de traitement est la même et est T/ n, puis avec cette méthode, les performances du système augmenteront de n  fois Cette méthode correspond au traitement en pipeline.

Considérons l'organisation du pipeline au niveau de l'exécution de la commande machine / 2 /. Chaque bloc de la chaîne de convoyage n'effectue qu'une étape de l'exécution de la commande. Le traitement complet de la commande prend plusieurs cycles.

Etapes typiques de l'exécution de la commande: 1) échantillonnage de la commande IF (Instruction Fetch), 2) déchiffrement de la commande ID (Instruction Decode), 3) lecture des opérandes RD (Read Memory), 4) exécution de l'opération spécifiée dans la commande EX (Execute), 5) écriture WB (Write Back) résultat. Au cours de l'exécution, l'équipe parcourt le pipeline, libérant la prochaine étape pour la prochaine équipe. Le contenu des mémoires tampons, qui servent à stocker les informations transmises tout au long des étapes du transporteur, est mis à jour à chaque fois que l'exécution de la commande suivante est terminée. Les tampons intermédiaires permettent un fonctionnement indépendant en parallèle des blocs de la chaîne de convoyage: alors que le bloc suivant commence à exécuter l'étape de commande suivante, le bloc précédent peut commencer à traiter la commande suivante, comme illustré à la figure 4.4.

Cycles de la CPU

Équipe je

Équipe i + 1

Équipe i + 2

Équipe i + 3

Équipe i + 4

Équipe i + 5

Figure 4.4 - Traitement des commandes par pipeline

Il convient de noter que le traitement en pipeline des commandes ne réduit pas le temps d'exécution d'une commande distincte, qui reste la même dans le processeur du pipeline que dans la commande ordinaire sans pipeline. Cependant, en raison du fait que pendant le traitement par pipeline une grande partie du processus de calcul dans le mode d’exécution simultanée de commandes, la vitesse d’émission des résultats des commandes exécutées séquentiellement augmente proportionnellement au nombre d’étages du transporteur. La durée d'exécution des différentes étapes de l'exécution d'une commande dépend généralement du type de commande et de l'emplacement des opérandes. Le traitement des commandes par pipeline est particulièrement efficace si la durée de toutes les phases d’exécution de la commande est approximativement la même. Malheureusement, il n’est pas toujours possible d’assurer un fonctionnement continu du pipeline en raison de divers conflits: sur les ressources, sur les données, sur la gestion. Plus de détails sur les conflits - in / 2, 7 /.

Le processeur, dans lequel le processus d’exécution de la commande est divisé en 5-6 étapes, est appelé normal. processeur de pipeline. Si vous augmentez le nombre d'étages du convoyeur, chaque étape individuelle effectuera moins de travail et contiendra donc moins de logique matérielle. En raison des délais de propagation du signal plus courts dans chaque étape du convoyeur, une augmentation de la fréquence de fonctionnement et une augmentation correspondante des performances du processeur sont obtenues. Le processeur, qui a un convoyeur significativement plus profond que 5-6 étapes, est appelé superconveyeur. Par exemple, le Pentium II contient 12 étages, les niveaux UltraSPARC III - 14, le Pentium 4 - 20.

multi-éléments

T  et est utilisé dans le système n T/ n

Un = B + C; D = E + F.

superscalairescalairescalaire

    Moyens architecturaux pour améliorer les performances du processeur. Traitement multiple de l'information.

Comme le montre la figure 4.5 / 2 /, multi-éléments  le traitement est effectué sur plusieurs OS parallèles. Chaque élément effectue son travail en traitant une partie des données du début à la fin.

Figure 4.5 - Traitement de données multiples en parallèle

Si le temps d'exécution sur un élément séparé est T  et est utilisé dans le système n  éléments, puis avec une certaine idéalisation, on peut s’attendre à ce que le temps moyen nécessaire pour achever ce travail soit T/ n  (vraiment - moins). Dans les processeurs modernes, cette méthode de traitement est associée au concept d'architecture superscalaire.

L'exemple le plus simple de parallélisme de calcul est l'exécution de deux instructions dont les opérandes ne sont pas liés:

Un = B + C; D = E + F.

Par conséquent, les deux commandes peuvent être exécutées simultanément. Pour effectuer des opérations non liées, le processeur comprend un ensemble de dispositifs arithmétiques, chacun d'eux ayant généralement une organisation en pipeline.

Un processeur contenant plusieurs unités d'organisation assurant l'exécution simultanée de plusieurs instructions scalaires est appelé superscalaire  processeur. L'équipe s'appelle scalairesi ses opérandes en entrée et son résultat sont des nombres (scalaires). Les processeurs traditionnels avec un opamp sont appelés scalaire. Dans un processeur superscalaire, le traitement des commandes est parallélisé non seulement dans le temps (pipeline), mais également dans l'espace (plusieurs pipelines). Les performances d'un tel processeur sont estimées par le taux de descente des commandes exécutées à partir de tous ses pipelines.

Actuellement, deux méthodes de traitement superscalaire sont utilisées. La première méthode est basée sur un mécanisme purement matériel permettant d'extraire de la mémoire des commandes de programme non liées (mémoire cache, mémoire tampon de prélecture) et de les exécuter en parallèle. La responsabilité de l'efficacité du chargement des pipelines fonctionnant en parallèle repose sur le matériel du processeur, ce qui constitue le principal avantage de cette méthode de traitement superscalaire. Dans ce cas, le processus de traduction de programmes pour un processeur superscalaire ne diffère pas de celui de traduction de programmes pour un processeur scalaire traditionnel. Conformément à ce procédé, des microprocesseurs superscalaires de différentes familles sont compatibles entre eux par programmation. Dans ce cas, l'utilisation de logiciels créés précédemment ne pose aucun problème. Tous les processeurs de la famille Pentium sont implémentés à l'aide de cette méthode.

Dans les processeurs implémentant la seconde méthode de traitement superscalaire, la planification de l'exécution en parallèle de plusieurs commandes repose sur le compilateur à parallélisation. Il analyse d'abord le programme source afin d'identifier les commandes pouvant être exécutées simultanément. Ensuite, le compilateur regroupe ces commandes dans des packages de commande - mots de commande longs (VLIW), et le nombre de commandes simples dans une commande VLIW est considéré comme égal au nombre d'unités d'exécution du processeur. Le compilateur effectuant tout le travail de préparation à l'exécution des commandes VLIW, les situations de conflit sont exclues lors de leur exécution. Cette méthode de traitement superscalaire est implémentée dans les processeurs VLIW avec une architecture sperscaler statique. Malheureusement, ces processeurs nécessitent un logiciel spécial. En outre, les programmes compilés pour une génération de microprocesseurs peuvent être exécutés de manière inefficace sans recompilation sur les processeurs de la génération suivante. Cela oblige les développeurs de logiciels à développer des versions modifiées des exécutables de leurs produits pour différentes générations de processeurs. Les idées VLIW ont été proposées par des ingénieurs et des scientifiques russes dirigés par le professeur B.A. Babayan dans le développement de super-ordinateur domestique "Elbrus-3" (1990). Actuellement, la technologie VLIW est implémentée dans le processeur Elbrus E2K de la société nationale Elbrus International, les processeurs Crusoe de Transmeta, ainsi que dans la famille de processeurs de traitement (pour le traitement du signal numérique) de TMS320C60xx de Texas Instruments.

    Classification et structure de commande du processeur.

Sur le plan fonctionnel, toutes les commandes du processeur peuvent être réparties dans les groupes suivants:

1) transfert de données et commandes d'E / S;

2) des équipes d'opérations arithmétiques et logiques au niveau des bits;

3) les commandes de transfert de contrôle.

Commandes de transfert de données  assurer l'échange d'informations entre les registres du microprocesseur, ainsi que les échanges de données externes lors de la transmission au processeur de la mémoire ou du dispositif d'entrée et du processeur à la mémoire ou au dispositif de sortie. Ces commandes indiquent généralement le sens de la transmission, la source et / ou le destinataire des données. Par exemple, en langage d'assemblage, les commandes de ce groupe incluent la commande de transfert Movcommande d'amorçage Chargecommandes d'écriture sur le port et lecture depuis le port UVV, Dans  et Outrespectivement Également souvent inclure des commandes pour mettre des données sur la pile. Pousser  et extraire des données de la pile Pop.

En nombre commandes arithmétiques et opérations logiques au niveau des bits dans la plupart des cas, les commandes comprennent des opérations arithmétiques simples, par exemple, ADD (ajouter), SUB (soustraire) et des opérations logiques, par exemple, AND ("AND"), OR ("OU"), etc. Les commandes de décalage arithmétiques et logiques sont également appelées commandes arithmétiques, et les commandes de comparaison COMPARE (soustraction non destructive) sont également appelées commandes d'opérations logiques. Le nombre de commandes de ce groupe peut inclure des commandes pour des opérations arithmétiques complexes: multiplication, division (non disponible dans tous les processeurs), commandes de traitement de données en virgule flottante, commandes de traitement multimédia.

Contrôle des commandes de transfert  utilisé pour changer la séquence d'exécution des commandes en présence de branches de programme: sauts conditionnels et inconditionnels (JMP), appel aux sous-routines (CALL) et sortie (RETURN). Les instructions de saut conditionnelles implémentent des transferts de contrôle en fonction de la valeur des indicateurs dans le registre PSW. Avec leur aide, le processeur est l’une des branches possibles de la suite du programme. Il existe généralement plusieurs commandes de saut conditionnelles dans le système de commande.

Dans les processeurs modernes, le système de commande, avec les commandes traditionnelles répertoriées ci-dessus, contient des équipes d'équipes qui étendent les fonctionnalités du microprocesseur pour le traitement des informations, le contrôle de son fonctionnement et la mise en œuvre d'un fonctionnement multitâche protégé.

Les systèmes de commande de processeurs spécifiques peuvent inclure des commandes qui ne rentrent pas dans la classification proposée. De telles commandes ne reflètent pas les principes généraux des programmes de construction et sont considérées comme supplémentaires.

L'exécution d'une commande (fonctionnement de la machine) est divisée en étapes plus petites - des micro-opérations (micro-instructions), au cours desquelles certaines actions élémentaires sont effectuées. La composition spécifique des micro-opérations est déterminée par le système de commande et la structure logique de l'ordinateur. La séquence de micro-instructions implémentant cette opération (commande) constitue le micrologiciel de l'opération. L’intervalle de temps pendant lequel une ou plusieurs micro-opérations sont effectuées simultanément est appelé contact machine. Les limites des cycles sont définies par les signaux d'horloge générés par le générateur d'horloge.

En général, la commande du microprocesseur contient deux parties: opérationnelle et adresse. Conformément à / 1 /, l’accord sur la répartition des bits entre ces parties de la commande et la méthode de codage de l’information détermine la structure (format) de la commande. La partie opérationnelle de la commande contient le code d’opération qui fournit le codage des opérations (où n  - le nombre de chiffres binaires alloués à la partie opérationnelle de la commande) et déterminant quels périphériques seront utilisés dans ou hors du processeur. Dans kLa partie adresse-bit de la commande contient des informations sur les adresses des opérandes impliqués dans l'opération. En général, la partie adresse de la commande doit contenir quatre champs d'adresse. Un1 , Un2 , Un3 , Un4 . Ils sont conçus pour spécifier les adresses des opérandes (A1, A2), l'adresse du résultat (A3) et l'adresse de la commande suivante (A4). En tant qu'adresses A1, ..., A3, des adresses de cellules de mémoire et des adresses de registres de mémoire à microprocesseur peuvent être utilisées, en tant qu'adresses A4, uniquement des adresses de cellules de mémoire. Lors de l'utilisation de l'ensemble complet d'adresses, le format de la commande est fastidieux. Il a été noté que toutes les opérations n’exigent pas un ensemble complet d’adresses A1 à A4. En fonction du nombre d'adresses indiqué, les commandes sont divisées en 0 adresse (sans adresse), 1 adresse, 2 adresses, 3 adresses  et 4 adresses.

Dans presque tous les microprocesseurs, l'adresse A4 est exclue. Cela est dû au fait que la plupart des commandes appartiennent à des parties linéaires d'algorithmes et que ces commandes peuvent être placées dans des cellules de mémoire avec des adresses progressivement croissantes. Dans ce cas, pour obtenir l'adresse de la commande suivante, il suffit d'ajouter son décalage dans le segment de code à l'adresse de départ du segment de code, ce qui est pratique à implémenter avec le pointeur de commande. Cette façon d'adresser des commandes s'appelle naturel, et les processeurs l'implémentant sont appelés processeurs avec un moyen naturel d'adresser des commandes. En cas de violation de l'ordre naturel des commandes (branches, cycles), des commandes de transfert de contrôle spéciales sont utilisées. Elles contiennent l'adresse de transition, mais n'utilisent pas les adresses des opérandes. Les processeurs, dans le champ d'adresse des commandes qui utilisent l'adresse A4, sont appelés processeurs avec commande forcée.

L'utilisation de l'adresse du résultat A3 s'avère également souvent redondante. Cela est justifié par le fait que le résultat d'opérations arithmétiques et logiques sur deux opérandes peut généralement être remplacé par l'un des opérandes, qui, à l'avenir, très probablement, ne seront pas utilisés. En même temps, dans les commandes à 2 adresses, des chiffres supplémentaires doivent être entrés dans le champ d'adresse, indiquant laquelle d'entre elles est la source et qui est le destinataire des informations. Dans les processeurs avec une architecture de batterie, le nombre d'adresses dans la partie adresse de la commande est réduit à un. Dans ceux-ci, l'un des opérandes placés dans l'accumulateur est donné implicitement par le code de commande et le résultat est placé dans l'accumulateur.

Dans les instructions non adressées, la spécification implicite de l'opérande est effectuée. De telles commandes incluent des commandes de contrôle du processeur (par exemple, démarrer, arrêter, etc.), des commandes pour travailler avec la pile (l'opérande adressé par le pointeur SP est implicitement spécifié par le code de commande). Les commandes non adressées ont un format extrêmement abrégé, mais ne peuvent pas constituer indépendamment un système de commandes complet sur le plan fonctionnel et ne sont utilisées qu'avec les adresses.

Le format des commandes affecte le temps de résolution des problèmes, les coûts en mémoire, la complexité du processeur et dépend de la classe de tâches à résoudre. En particulier, pour les calculs scientifiques et techniques, dans lesquels un volume important est occupé par des calculs en plusieurs étapes, les commandes à une adresse sont plus efficaces et, lors de l'utilisation d'un processeur de pile, également les commandes sans adresse. Pour les tâches de gestion, où une grande partie des envois et des opérations logiques sont effectués, les commandes à deux adresses sont efficaces. Sur la base de ce qui précède, il convient de noter que les processeurs modernes utilisent généralement des commandes sans adresse, à une adresse et à deux adresses. Les commandes à 3 adresses sont rarement utilisées et les commandes à 4 adresses ne sont pas utilisées du tout.

En raison de la variété des formats de commandes et de données (nombres, symboles, structures, etc.), ainsi que de leurs emplacements, diverses manières d'adresser des instructions et des opérandes ont été formées. Nous en discuterons ci-dessous.

    Manières de traiter les données. Direct, direct, indirect, enregistre les modes d'adressage relatif.

Les méthodes d'adressage des données déterminent les mécanismes permettant de calculer les adresses effectives des opérandes en mémoire et d'accéder aux opérandes. Attribuez les méthodes (modes) suivantes d’adressage / 2, 6 /:

1)   Immédiat - vous permet de définir des valeurs fixes de l'opérande directement dans la partie adresse de la commande, c'est-à-dire que cela fait partie de la commande (Figure 5.1). Ce mode d'adressage est pratique lorsque vous travaillez avec des constantes.

Figure 5.1 - Adressage direct

Exemples: hache mov, 5564h

ajouter al, 1101001100b

Rappelez-vous que l'opérande immédiat ne peut être spécifié qu'en tant qu'opérande source. L'inconvénient de l'adressage direct est la nécessité d'étendre le format des commandes en spécifiant l'opérande lui-même dans le champ d'adresse de la commande.

2)  Direct  - l'adresse de l'opérande est contenue dans le code de commande (Figure 5.2). Utilisé pour travailler avec des variables et des constantes dont l'emplacement en mémoire ne change pas pendant l'exécution d'une tâche.

Figure 5.2 - Adressage direct

Ainsi, le code de commande indique le décalage de l'opérande en mémoire.

Exemple: segment d_s

assumer ds: d_s, cs: c_s

mov hache , mm ; à l'adresse mm envoyé 3154h

Après avoir exécuté la troisième commande du registre hache  la valeur sera écrite dans mm  en mémoire, c’est-à-dire le nombre 3154h.

3) S'inscrire  - celle-ci est contenue dans le registre défini par la commande, c'est-à-dire que l'adresse du registre est indiquée dans le champ d'adresse de la commande.

Exemples: mov ax, cx

L'adressage de registre se distingue facilement de tous les autres par le fait que tous les opérandes des instructions sont des registres. Ces commandes sont les plus compactes et fonctionnent plus rapidement que d’autres types de commandes, car il n’ya pas d’accès mémoire.

4) Enregistrement indirect  - est un cas particulier d'adressage indirect lorsque l'adresse spécifiée dans la commande est un pointeur sur la cellule contenant l'opérande décalé en mémoire (Figure 5.3).

En fait, la commande spécifie l'adresse de l'adresse et le registre de base peut être utilisé comme registre d'adresse. BP  ou registres d'index SI  ou DI.

L'adressage indirect est plus efficace que l'adressage direct, car dans le champ d'adresse d'une commande, seule l'adresse du registre est indiquée, elle est plus courte que l'adresse complète de l'opérande en mémoire. Cependant, ce mode d'adressage nécessite le préchargement de registre avec une adresse de mémoire indirecte, ce qui prend un temps supplémentaire.

Exemples: hache

Si dans le registre si  est contenu 10 alors le registre hache  cela mettra la valeur à l'offset 10 dans le segment de données.

Figure 5.3 - Adressage indirect

L'adressage indirect est pratique lorsque vous résolvez des problèmes, lorsque vous laissez l'adresse du registre dans la commande inchangée, vous pouvez modifier le contenu de la cellule avec cette adresse.

5) Enregistrer un parent - est une généralisation des méthodes d'adressage fournissant le calcul de l'adresse effective ( EA) opérande en mémoire en tant que somme de la valeur de base de l'adresse et du «déplacement» de la disp spécifiée dans la commande (Figure 5.4) et (Formule 5.1).

Figure 5.4 - Formation d’une adresse efficace lorsque

adressage relatif

(5.1)

L'adressage relatif est largement utilisé pour adresser la mémoire représentée sous forme de blocs (par exemple, des segments) et pour adresser des structures de données spéciales: tableaux, enregistrements, etc. En fonction de l'utilisation du registre de registre à la commande, les modes d'adressage de base et d'index sont distingués.

5.1) Index  - utilisé pour le traitement des tableaux de données commandés, chacun étant déterminé par son propre numéro. Ensuite, l'adresse de base du tableau est spécifiée par le décalage disp spécifié dans la commande et la valeur d'index (le numéro de l'élément du tableau) est déterminée par le contenu du registre d'index (Formule 5.2).

(5.2)

Exemple: segment d_s

mas db 3,5,1,8,9, ’$’

assumer ds: d_s, cs: c_s

mov si, 0; dans le numéro si de l'élément de tableau

m1: ah ah, mas mas offset

dans ah - la valeur de l'élément du tableau mas avec

; nombre en si

L'indexation est pratique s'il est nécessaire d'écrire ou de lire une liste de données provenant de cellules de mémoire consécutives non pas dans une rangée, mais avec une étape indiquée dans l'index.

5.2) De base  - utilisé pour accéder aux structures de données de longueur variable. Ensuite, l’adresse de base, qui détermine le début de l’ensemble d’éléments, est stockée dans le registre de base et le décalage de la commande détermine la distance par rapport à un élément donné (Formule 5.3).

(5.3)

Ce mode d'adressage est utile pour les enregistrements - les structures de données contenant des champs de longueurs différentes et éventuellement de types différents.

Prenons un exemple d’organisation d’un registre des employés d’un certain département et de l’accès à celui-ci et à ses champs. Nous convenons que tous les champs sont symboliques.

information sur l'employé

nam db 30 dup (""); nom, prénom, patronyme

position db 30 dup (""); position

age db 2 dup ('’); age

debout db 2 dup ('');

salaire db 5 dup (''); salaire en roubles

; description d'un employé

travailleur sotr1<‘Иванов Пётр Сергеевич’,

«Programmeur», «30», «8», «15000»\u003e

assumer ds: d_s, cs: c_s

; on charge dans le bx l'adresse pour commencer l'enregistrement (adresse de base)

lea bx , sotr 1

; in ax - la valeur à l'adresse bx + age du champ offset

c’est-à-dire que dès le début de l’enregistrement, nous trouvons les cellules,

mov hache , mot ptr [ bx ]. l'âge

Dans les enregistrements avec des champs de longueurs différentes, le contenu du registre adressable correspond au début de l'enregistrement et le décalage de la commande correspond à la distance dans l'enregistrement.

    Manières de traiter les données. Registre, index de base, modes d'adressage d'index de base relatif.

6) Indice de base - utilisé pour accéder aux éléments du tableau, adressés par le pointeur. L'adresse de base du tableau est spécifiée par le pointeur de base (registre de base) et le numéro de l'élément de tableau est spécifié par le contenu du registre d'index (formule 5.4).

(5.4)

Exemple: mov ax, bx

Si dans bx  contient 100 et en si  est 52, alors à l’adresse (décalage) 152 dans le segment de données se trouvent les données souhaitées.

Ce mode d'adressage est utile lorsque vous travaillez avec des structures de données complexes, car il vous permet de modifier deux composants d'adresse.

7) Indice de base relatif  - utilisé pour adresser des éléments dans le tableau d'enregistrements spécifié. L'adresse de base du tableau est spécifiée par le pointeur de base, le numéro d'enregistrement (c'est-à-dire l'élément de tableau) est déterminé par le contenu du registre d'index et le décalage dans la commande indique la distance à l'enregistrement (Formule 5.5).

(5.5)

; Nous décrivons un tableau de 5 employés avec des valeurs

; défaut

mas_sotr worker 5 dup (<>)

assumer ds: d_s, cs: c_s

; bx - adresse du début du groupe d'employés

lea bx , mas _ sotr

; in si - l'offset du second enregistrement

mov si , ( type ouvrier )*2

; in ax - l'expérience du second employé

hache

Ainsi, pour pouvoir accéder à un champ spécifique d'un tableau d'enregistrements, vous devez d'abord déterminer le début du tableau, y rechercher l'enregistrement nécessaire et le champ requis.

Le choix du mode d'adressage est déterminé par la tâche spécifique et est souvent évident. Cependant, il est parfois permis d'utiliser plusieurs méthodes d'adressage pour accéder aux mêmes éléments de données. Enfin, lors de l'écriture d'un programme, l'utilisateur sélectionne lui-même un mode d'adressage spécifique.

    Manières d'adresser des commandes.

Selon le segment de code dans lequel se trouve la commande requise et si son adresse est indiquée explicitement ou non, les modes d'adressage de commande suivants sont distingués:

1) Segment intra droit- l'adresse de transition effective est calculée en tant que somme du contenu actuel du pointeur de commande IP et du décalage relatif de 8 ou 16 bits. Ce mode est valide dans les transitions conditionnelles et inconditionnelles. Par exemple

Si le contenu des registres ah  et al  pas égal (équipe jne), puis allez à la commande avec l'étiquette rencontré.

2) Intersegment droite  - l'équipe indique la paire: segment et offset. Le segment est chargé dans le registre de segment CS et le décalage dans le registre IP. Ce mode est autorisé uniquement dans les commandes de saut inconditionnelles. Par exemple, appelez far ptr quickSort (appelez la procédure quickSort située dans un autre segment de code).

Ainsi, avec l'adressage direct, l'adresse de la commande contient l'adresse de la transition - l'adresse où se trouve la commande suivante en cours d'exécution.

3) Intrasegment indirect  - le décalage d'adresse de transition est le contenu d'un registre ou d'un emplacement mémoire spécifié dans n'importe quel mode d'adressage de données, à l'exception du mode immédiat. Le contenu du pointeur de commande IP est remplacé par le contenu correspondant du registre ou de la cellule de mémoire. Cette méthode est uniquement valide dans les commandes de branche inconditionnelles. Par exemple, jmp (allez à la commande dont l’adresse est dans la cellule à l’adresse spécifiée dans le registre bx).

4) indirect entre segments - le contenu des registres CS et IP est remplacé par le contenu de deux mots de mémoire adjacents, dont l'adresse est spécifiée dans n'importe quel mode d'adressage de données, à l'exception des données directes et des données de registre. Le mot bas est chargé dans le registre IP, le mot haut dans le registre CS. Ce mode est valide uniquement dans les commandes de branche inconditionnelles. Par exemple, appelez far ptr (appel de procédure situé à l'adresse spécifiée dans le registre du partenaire plus 4 octets supplémentaires).

Les méthodes envisagées d’adressage des commandes sont utilisées dans presque tous les systèmes de commande, développant ou réduisant la liste des commandes d’un microprocesseur particulier.

Comme indiqué précédemment, l'une des caractéristiques importantes de tout processeur est la largeur de ses registres internes, ainsi que ses bus d'adresses et de données externes. Par exemple, un processeur Intel 8086 a une architecture 16 bits et la même largeur de bus de données. Ainsi, le nombre maximal avec lequel un processeur peut travailler est   . Toutefois, le bus d'adresse du processeur Intel 8086 contient 20 lignes, ce qui correspond à l'espace d'adressage de MB. Pour obtenir une adresse physique de 20 bits de la cellule de mémoire, vous devez ajouter l'adresse de départ du segment de mémoire dans lequel se trouve cette cellule et le décalage de cette cellule par rapport au début du segment (Figure 5.5).

Figure 5.5 - Formation de l'adresse physique de la cellule de mémoire

Une adresse de segment sans 4 bits bas (c'est-à-dire divisée par 16) est stockée dans l'un des registres de segment (SS, DS, CS, ES).

Lors du calcul de l'adresse physique, le processeur multiplie par 16 le contenu du registre de segments et ajoute un décalage à l'adresse de 20 bits résultante.

Les processeurs modernes à 32 bits ont un bus d’adresse à 32 bits, qui correspond à l’espace d’adresse de GB. Cependant, le procédé de formation d'une adresse physique décrit ci-dessus ne permet pas d'aller au-delà de 1 Mo. Pour surmonter cette limitation dans les processeurs 32 bits, deux modes de fonctionnement sont utilisés: réel et protégé. Dans mode réel  le processeur fonctionne réellement de la même manière qu’un processeur Intel 8086 avec une vitesse accrue et ne peut accéder qu’à 1 Mo d’adresse. La mémoire restante, même si elle est installée sur l'ordinateur, ne peut pas être utilisée. Dans mode protégé  Les segments et les décalages sont également utilisés, mais les adresses de départ physiques des segments sont extraites des tables de descripteurs de segments indexés à l'aide des mêmes registres de segments. Chaque descripteur de segment occupe 8 octets, dont 4 octets (32 bits) sont attribués à l'adresse de segment. Ce mécanisme permet d'utiliser pleinement l'espace d'adressage 32 bits. Dans les processeurs 64 bits, l'organisation par segment de la mémoire est également utilisée et l'organisation par page-segment / 1 / mémoire peut être utilisée; 40, 44, 48, 64 bits sont alloués pour l'adresse physique. Ainsi, la quantité d'espace d'adressage dans les microprocesseurs 64 bits peut aller de 1 To (1 téraoctet) à plusieurs Ebyte (1 exaoctet).

Dans les chapitres précédents, il a été mentionné que le processeur, d’une part, coordonnait le fonctionnement des dispositifs individuels de l’ordinateur, d’autre part, il effectuait des calculs conformément au programme utilisateur (principe de gestion de programme). Ensuite, nous examinons comment le processeur exécute les instructions et interagit avec d'autres périphériques.

    Transfert de contrôle. Transitions et procédures.

Selon / 8 /, flux de contrôle  - est une séquence dans laquelle les commandes sont exécutées de manière dynamique (pendant l'exécution du programme). La plupart des commandes ne modifient pas le flux de contrôle: après avoir exécuté une commande, la commande qui le suit est exécutée en mémoire. Le compteur de commandes (IP) après l'exécution de chaque commande est augmenté du nombre correspondant à la longueur de la commande. Le changement de flux de contrôle se produit lorsqu'il y a des commandes de transition (conditionnelles et inconditionnelles), des procédures d'appel, des coroutines, ainsi que des exceptions et des interruptions.

1)  Équipes de transition. Lors de l'exécution de commandes pour aller au compteur de commandes IP, une nouvelle valeur est enregistrée de force - une nouvelle adresse dans la mémoire à partir de laquelle les commandes seront exécutées.

Équipe transition inconditionnelle  fournit une transition vers une adresse donnée sans vérifier aucune condition. Par exemple, jmp rencontré, signifie aller à la commande qui commence par l'adresse rencontré  dans le texte du programme. En même temps, toutes les commandes précédentes sont ignorées.

Transition conditionnelle  (branchement) ne se produit que si une certaine condition est remplie, sinon la commande de programme suivante est exécutée. Les conditions sur la base desquelles la transition est effectuée sont le plus souvent des signes du résultat de l'exécution de la commande arithmétique ou logique précédente. Chacun des signes est fixé dans son propre bit du registre de drapeaux PSW. Une telle approche est également possible lorsqu'une décision de transition est prise en fonction de l'état de l'un des registres à usage général où le résultat de l'opération de comparaison / 3 / est précédemment placé. Considérons des exemples:

jz m1

m1: ajouter al, 2

cmp ah, al

je m1

m1: ajouter al, 2

Le fragment de gauche illustre la vérification du contenu des registres AH et AL pour l’égalité, en utilisant des indicateurs, en particulier l’indicateur zéro ZF. Soustraction pré-exécutée du contenu des registres: si leurs valeurs sont égales, le résultat est zéro et la valeur de l'indicateur ZF change. La commande JZ vérifie si l'indicateur ZF est 1, puis une transition est effectuée vers la commande d'adresse M1 (add al, 2), sinon la commande d'addition est exécutée add add, 3. La commande avec l'adresse M2 est exécutée dans tous les cas. Le fragment de droite effectue le même contrôle, mais en utilisant la commande de comparaison (cmp ah, al) et la commande d'égalité de transition (je m1).

2) Les procédures. Selon / 3.8 /, un moyen important de structurer des programmes est une procédure. Il peut être appelé à n'importe quel moment du programme. Mais contrairement aux commandes de transition, après l'exécution de la procédure, le contrôle retourne à la commande qui suit l'appel de procédure.

Le mécanisme procédural est basé sur des commandes d'appel de procédure, qui fournissent une transition du point actuel du programme à la commande de procédure initiale, et renvoient des commandes de la procédure pour revenir au point situé immédiatement derrière la commande d'appel. Pour utiliser les procédures, une pile est utilisée (mémoire supplémentaire organisée en file d'attente), dans laquelle la commande call place la valeur actuelle du compteur de programme (IP) pour les transitions intrasegment (ou les registres IP et CS pour les transitions intersegment) est l'adresse du point de retour. Lorsque vous quittez la procédure, les anciennes valeurs des registres correspondants sont restaurées à partir de la pile. La procédure est limitée aux opérateurs PROC et ENDP.

La procédure récursive est un intérêt particulier - une procédure qui s’appelle directement ou par le biais d’une chaîne d’autres procédures. Pour ces procédures, une pile est également utilisée, dans laquelle, en plus de l'adresse de retour, des paramètres et des variables locales pour chaque appel sont stockés.

Prenons comme exemple un programme utilisant un appel de procédure. Étant donné que la procédure se situe dans le même segment de code que le programme principal et est décrite comme une procédure à courte portée (directive NEAR), la transition sera intrasegmentale.

pile de segment s_s "pile"

assumer ss: s_s, ds: d_s, cs: c_s

appel pr 1    appel de sous-programme

mov ah ,4 ch

pr1 procprès de   ; démarrer le sous-programme (appel du milieu)

poussez ax et écrivez le contenu du registre AX sur la pile

pop ax; sélectionnez dans la pile le contenu du registre AX

ret    ; retourne la commande à la commande suivante après

procédure d'appel

pr1 fin   ; fin du sous-programme

Lorsque vous appelez la procédure PR1 (commande d'appel pr1), l'adresse de retour est placée sur la pile - le contenu du compteur de commandes IP contenant l'adresse de la commande à exécuter après la commande en cours (mov ah, 4ch). La valeur du registre IP est remplacée par une nouvelle valeur - l'adresse de la première commande de la procédure. Lorsque la commande de retour de la procédure (ret) de la pile est atteinte, l'ancienne valeur est écrite dans le registre IP, qui assure le retour au programme principal de la commande mov ah, 4ch, qui suit immédiatement la commande d'appel de procédure.

L'interaction entre l'appelant et la procédure appelée est illustrée à la figure 5.6 / 8 /.

    Transfert de contrôle. Coroutines. Exceptions et interruptions

Coroutines. Dans une séquence d'appel normale, il existe une distinction claire entre une procédure appelée et une procédure appelante. La procédure appelée reprend depuis le début, peu importe le nombre de fois où elle est appelée. Pour quitter la procédure appelée, utilisez la commande RET return, comme décrit dans le paragraphe précédent. Supposons qu'il existe deux procédures A et B, chacune appelant l'autre procédure. Lors du retour de B vers A, la procédure B effectue une transition vers cet opérateur en suivant l'instruction d'appel de la procédure B. Lorsque la procédure A transfère le contrôle à la procédure B, il ne retourne pas au tout début de B (sauf pour la première fois), mais à l'endroit où appel précédent A. Les procédures qui fonctionnent de cette manière sont appelées coroutines.

Figure 5.6 - Interaction entre l'appelant et l'appelé

procédures

Les routines sont généralement utilisées pour effectuer un traitement parallèle des données sur un seul processeur. Les commandes habituelles CALL et RET ne sont pas appropriées pour appeler des coroutines, car l’adresse de transition est extraite de la pile, comme lors du retour, mais contrairement au retour, lorsqu’un appel est fait, l’adresse de retour est placée à un certain endroit pour y revenir ultérieurement. Pour ce faire, vous devez d'abord extraire l'ancienne adresse de retour de la pile et la placer dans le registre interne, puis placer le compteur de commandes IP sur la pile et enfin copier le contenu du registre interne dans le compteur de commandes. Puisqu'un mot est poussé hors de la pile et qu'un autre est poussé sur la pile, l'état du pointeur de pile ne change pas. Le schéma d’interaction des coroutines est présenté à la figure 5.7 / 8 /.

Figure 5.7 - Interactions de corouting

4) Exceptions et interruptions  prévoir le transfert forcé du contrôle à une procédure spéciale - manutentionnaire de piègesqui effectue certaines actions. Une fois les actions terminées, le gestionnaire d'interruption renvoie le contrôle au programme interrompu. Il doit continuer à exécuter le processus interrompu dans l'état dans lequel il se trouvait au moment de l'interruption. Le gestionnaire d’interruptions diffère de la procédure habituelle en ce qu’au lieu d’être lié à un programme spécifique, il se trouve dans une zone de mémoire fixe.

Exception- il s'agit d'un type spécial d'appel de procédure qui survient dans certaines conditions - un événement important, mais qui se produit rarement. Les conditions les plus courantes pouvant provoquer des exceptions sont les dépassements et la disparition de chiffres significatifs lors d'opérations en virgule flottante, les dépassements lors d'opérations sur les entiers, la violation de la sécurité, l'opcode indétectable, le dépassement de pile, la tentative de démarrage d'une UHF non existante, la tentative d'appel d'un mot depuis une cellule impaire. adresse, division par zéro. Si le résultat se situe dans la plage acceptable, aucune exception ne se produit. Il est important de noter que ce type d'interruption est provoqué par certaines conditions exceptionnelles causées par le programme lui-même et par le matériel ou le micrologiciel détectés. Les exceptions, à leur tour, sont divisées en les échecs, pièges  et résiliation d'urgence.

Échec  - il s'agit d'une exception, un message à propos duquel est émis à la limite de la commande précédant la commande à l'origine de cette exception. Après avoir signalé une défaillance, l'état de l'ordinateur est restauré dans une situation dans laquelle vous pouvez redémarrer la commande. Un exemple d'échec est le recours à un jet d'air inexistant.

Piège  - il s'agit d'une exception, message à propos duquel est émis le bord de la commande situé immédiatement après la commande pour laquelle cette exception a été détectée. Par exemple, débordement lors du traitement des entiers.

Résiliation d'urgence  - il s'agit d'une exception qui ne permet pas de déterminer avec précision la commande qui l'a provoquée ni de redémarrer le programme dans lequel cette exception s'est produite. Les terminaisons anormales sont utilisées pour signaler des erreurs graves: erreurs matérielles, valeurs conflictuelles ou invalides dans les tables système.

Interruptions  - ce sont des changements dans le flux de contrôle causés non pas par le programme lui-même, mais par certains événements asynchrones, généralement associés au processus d'entrée-sortie. Les interruptions permettent d'effectuer des opérations d'E / S indépendamment du processeur. Comme la vitesse du microprocesseur est supérieure à celle du souffle, le processeur peut exécuter d'autres programmes ou exécuter d'autres fonctions au lieu de surveiller en permanence l'état des périphériques qui lui sont connectés. Lorsque l'UVV nécessite une maintenance par le processeur, celui-ci l'informe en formant une requête (signal) appropriée par laquelle le processeur peut interrompre l'exécution du programme en cours. Le contrôle des interruptions est contrôlé par le contrôleur d'interruption, qui est connecté au processeur et en fait partie intégrante.

La différence entre exceptions et interruptions réside dans le fait que les exceptions sont synchrones avec le programme et que les interruptions sont asynchrones. Les exceptions sont directement causées par le programme et les interruptions sont indirectes. Si vous redémarrez le programme de manière répétée avec les mêmes données d'entrée, des exceptions se produiront à chaque fois dans les mêmes emplacements de programme, mais pas l'interruption.

La présence d'un signal d'interruption ne doit pas nécessairement provoquer l'interruption d'un programme en cours d'exécution, le processeur peut disposer d'un système de protection contre les interruptions: désactivation du système d'interruption, interdiction ou masquage de signaux d'interruption individuels. La gestion logicielle de ces outils permet au système d'exploitation de réguler le traitement des signaux d'interruption. Le processeur peut traiter les interruptions immédiatement après leur arrivée, différer leur traitement pendant un certain temps, les ignorer complètement. Par exemple, si l'indicateur de trace TF est défini sur 1, le processeur exécute une commande de programme, puis génère une interruption de type 1. En d'autres termes, le programme s'exécute par étapes. Si l'indicateur d'interruption IF est effacé, le processeur ne répond pas aux interruptions externes (à l'exception des non masquables). Pour masquer certains types d'interruptions, le registre de masque est utilisé. Il est contrôlé par les commandes CLI (désactiver les interruptions) et STI (activer les interruptions).

Chaque type d'interruption ou exception est associé à un numéro d'identification compris entre 0 et 255 et au gestionnaire correspondant. Les exceptions et les interruptions non masquées se voient attribuer des numéros compris entre 0 et 31, et les interruptions masquées, de 32 à 255. Toutes ces valeurs ne sont pas utilisées par les processeurs à l'heure actuelle; les numéros non attribués sont réservés pour une utilisation future. Le nombre d'interruptions, d'exceptions et d'adresses (vecteurs) des gestionnaires correspondants est stocké dans une table spéciale - table de vecteur d'interruptionsitué en mémoire. Lorsqu'une interruption ou une exception se produit, son adresse dans la table des vecteurs d'interruption est déterminée par l'adresse de la procédure de traitement des interruptions ou des exceptions correspondante vers laquelle la transition est effectuée. Examinez plus en détail comment l'appel est effectué et renvoyé par un gestionnaire d'interruption ou d'exception.

Les mécanismes de gestion des interruptions et des exceptions sont similaires à bien des égards, mais il existe certaines différences associées au retour depuis le gestionnaire. Le mécanisme de traitement des interruptions comprend les étapes suivantes:

1) Etablir le fait d'interruption.

2) Mémorisation de l'état du processus interrompu dans la pile, qui est déterminé par le contenu du registre d'indicateurs PSW, du compteur de commandes IP et du registre de segment CS. Si nécessaire, les contenus des registres qui seront utilisés par la procédure d'interruption et, par conséquent, modifiés, sont également mémorisés. Certains types d'exceptions et d'interruptions introduisent également un code d'erreur dans la pile afin de diagnostiquer la cause de l'exception.

3) Déterminer l'adresse de la procédure de traitement des interruptions par le numéro d'interruption dans la table des vecteurs d'interruption et effectuer la transition vers ce gestionnaire en chargeant l'adresse dans les registres CS et IP.

4) Traitement des interruptions. La routine de traitement des interruptions exécute ses commandes.

5) Restaurez le statut du programme interrompu. Une fois la procédure de traitement des interruptions terminée avec succès, lorsque la commande IRET est atteinte (les gestionnaires d'interruption sont complétés par cette commande), l'ancien contenu des registres qui y sont stockés est restauré (ancien état), y compris, et adresse de retour  - valeurs des registres CS et IP.

6) Retournez au programme interrompu. Sur la base de l'adresse de retour, une transition est effectuée vers le processus interrompu. Le retour doit être effectué à la commande qui suit la commande exécutée avant l’interruption. Une procédure de traitement des interruptions avec cette propriété est appelée transparent.

Si un échec survient, l'adresse de retour est l'adresse de la commande à l'origine de l'échec. Un retour est donc effectué sur cette commande pour tenter de l'exécuter à nouveau (redémarrage). La manipulation des pièges est similaire à la gestion des interruptions. En cas de cessation d'urgence, le processus de calcul se termine sans possibilité de restaurer l'état initial du programme dans lequel cette exception s'est produite.

Comme les signaux d'interruption se produisent à des moments arbitraires, plusieurs signaux d'interruption peuvent être traités au moment de l'interruption de manière séquentielle. Pour ce faire, les interruptions se voient attribuer des priorités. Il existe deux disciplines de service d'interruption prioritaires: 1) une interruption avec une priorité supérieure peut interrompre une interruption avec une priorité inférieure et 2) une interruption avec une priorité inférieure est servie jusqu'à la fin, après quoi une interruption avec une priorité supérieure est traitée.

Dans le chapitre suivant, nous examinerons les problèmes liés à l’organisation de la mémoire des machines virtuelles.

    Caractéristiques architecturales des processeurs Pentium.

Conformément à / 2 /, le microprocesseur Pentium (1993) est le premier processeur superscalaire pour ordinateurs personnels. Il comprend les blocs fonctionnels suivants:

1) bloc ShI;

2) deux pipelines à 5 étages (U et V) pour l'exécution de commandes de calcul de nombres entiers;

3) séparer les caches d'instruction et de données du niveau L1 de 8 Ko chacun;

4) une unité de calcul FPU en virgule flottante, organisée en convoyeur;

5) unité de prévision de branche;

6) unité de gestion de la mémoire.

La plupart des commandes sont exécutées dans une mesure. Dans le cas de l'exécution de commandes complexes, le microcode étendu de la ROM de microprogramme de commandes complexes est utilisé.

Les convoyeurs Pentium implémentent les 5 étapes traditionnelles d'exécution des commandes (échantillonnage, décodage, lecture d'opérandes, enregistrement des résultats). Lors du calcul des opérations en virgule flottante, trois étapes supplémentaires sont ajoutées: X1 - conversion des données au format de complexité avancé, X2 - exécution de la commande FPU, WF - arrondir le résultat et l'écrire dans le fichier de registre FPU. Pipeline U peut exécuter à la fois des commandes entières et des commandes à virgule flottante. En même temps, les commandes arithmétiques en virgule flottante ne peuvent pas être exécutées en tandem avec des commandes entières. De plus, le pipeline U contient un décaleur à bits multiples, utilisé lors d’opérations arithmétiques, logiques, de décalages cycliques, de multiplications et de divisions. Pipeline V n’exécute que les commandes entières.

L'utilisation de caches indépendants leur fournit un accès simultané, sans conflit. Le cache d'instructions est associé à un tampon de prélecture avec un bus de 256 bits. Si la commande sélectionnée dans le cache est manquante, la commande requise est lue dans la mémoire principale et chargée dans le tampon de prélecture avec une écriture simultanée dans le cache d'instructions.

Le cache de données est connecté aux pipelines U et V à l'aide de deux bus 32 bits, ce qui permet d'y accéder simultanément depuis le côté de chaque pipeline.

L'unité de commande de mémoire effectue la formation en deux étapes de l'adresse physique de la cellule de mémoire, d'abord dans le segment, puis dans la page. Un matériel spécial est utilisé pour contrôler le fonctionnement du cache externe.

Innovation architecturale Pentium est un mode spécial de gestion de système (SMM - System Management Mode) conçu pour placer le système dans un état de faible consommation d'énergie. Ce mode n'est pas disponible pour les applications et est contrôlé par le programme à partir de la ROM sur la puce du processeur. En mode SMM, le Pentium utilise un espace mémoire différent, isolé des autres modes.

Le bloc SI connecte le processeur à d'autres périphériques via le bus système, qui comprend un bus de données 64 bits, un bus d'adresses 32 bits et un bus de contrôle. Le processeur Pentium prend en charge les systèmes avec une mémoire physique allant jusqu'à 4 Go.

Le développement des processeurs Pentium est principalement associé à l'amélioration de leur technologie de production, à l'extension du système d'instructions, à l'amélioration des algorithmes de prévision de transition, aux méthodes de chargement des pipelines et aux moyens d'interagir avec la mémoire cache.

Un trait distinctif des processeurs Pentium 6 (Pentium Pro, Pentium II, Pentium III) et 7 (Pentium IV) des modèles Pentium précédents est une approche différente de la mise en œuvre du principe de traitement multiple des données. Cela consiste en ce qu'au lieu d'augmenter le nombre de pipelines d'exécution de commandes, ce qui nécessite des coûts matériels importants, un pipeline avec un grand nombre d'unités d'exécution est utilisé. Par exemple, le traitement des commandes dans le Pentium IV est effectué par un convoyeur en 20 étapes (hyper-convoyeur), qui peut être divisé en 3 convoyeurs relativement indépendants:

1) Un pipeline de traitement ordonné de traitement ordonné, qui fournit une sélection de commandes à partir de la mémoire, les décodant en commandes internes RISC et éliminant les fausses relations de données et de ressources.

2) Traitement aléatoire du convoyeur, qui implémente l'exécution réelle des commandes. Lorsque le traitement est désordonné, les pipelines du processeur superscalaire sont chargés plus intensément. Pour assurer une exécution correcte d'un programme, les résultats des commandes exécutées hors tour doivent être enregistrés aux adresses cibles dans le même ordre que dans le programme source. Ce travail est effectué par une unité de traitement spéciale - une unité de stockage temporaire pour les résultats exécutés hors tour.

3) La sortie du transporteur de l'exécution des commandes, qui enregistre les résultats dans les registres d'architecture du processeur et de la mémoire de la manière prescrite par le programme.

Le bon fonctionnement de l'hyperconvoyeur Pentium IV est également assuré par l'exécution spéculative de commandes lorsque des actions non prévues par le code de programme sont exécutées pour un chargement continu du convoyeur.

Dans le bloc de prédiction de branche, l'algorithme de prédiction de branche est plus sophistiqué que les modèles précédents de processeurs Pentium. Les adresses des commandes de transition et des marques de branche avec un historique détaillé sont stockées dans une mémoire tampon (taille de 4 Ko) du bloc de prédiction de branche.

Une autre différence importante entre le processeur Pentium IV et les premiers modèles réside dans l'utilisation de la commande trace cache dans sa structure. Sentiers  - Il s'agit de séquences de micro-instructions dans lesquelles sont décodées des commandes x86 appartenant à une ou plusieurs branches du programme d'origine. Vous pouvez placer jusqu'à 12 Ko de microinstructions dans la mémoire cache. Les pistes ne contiennent pas de commandes qui ne seront jamais utilisées. Le cache de trace ainsi que l'unité d'échantillonnage forment un dispositif de prétraitement.

L'utilisation d'un hyperconvoyeur, d'une mémoire cache de traces et d'un noyau exécutif plus efficace a permis d'améliorer considérablement les performances du Pentium IV.

    Modèle logiciel des processeurs Pentium.

La caractéristique unificatrice des microprocesseurs Pentium considérés est que tous, malgré des différences significatives d’architecture, ont le même modèle logiciel. La totalité de tous les registres du processeur accessibles par logiciel le forme modèle de programmation  / 2 /. Il montre les ressources de processeur qu'un programmeur peut utiliser.

Le modèle logiciel est divisé en application et système. La composition modèle de logiciel appliqué  Processeur (PPM) comprend un ensemble complet de registres disponibles pour les programmeurs d’application; caractéristiques de l'organisation de la mémoire et méthodes d'adressage disponibles; types de données et commandes.   Modèle de logiciel système  Processor (PMD) combine ses ressources système accessibles par logiciel, grâce auxquelles un accès est fourni aux mécanismes de protection intégrés et multitâches. Le processeur SPM est principalement utilisé par les programmeurs système.

Tous les microprocesseurs existants peuvent être divisés en 4 groupes:CISC (ComplexeInstructionEnsembleCommande) - avec un ensemble complet d'instructions;RISC (RéduitInstructionEnsembleCommande) - avec un ensemble d'instructions tronqué;Vliw (TrèsLongEntierMot) - avec un mot de commande extra large;Misc (MinimumInstructionEnsembleCommande) - avec un minimum d'instructions.

Les principaux représentants du type de processeurCISC   - société député Intel présenté dans le tableau 3.2.

Type de député RISC   contient un jeu d’instructions abrégé le plus fréquemment utilisé dans les programmes. Au cas où il serait nécessaire d’exécuter une instruction compliquée, le MP la collecterait à partir d’instructions simples. Une caractéristique de ces MP est que toutes les commandes simples sont exécutées pendant la même durée, égale à un cycle d'horloge machine.

NOTE

Les processeurs RISC sont fabriqués par différentes sociétés: IBM (Power PC), DEC (Alpha), HP (PA), Sun (Ultra SPARC), etc.

Le représentant le plus célèbreRISC   processeurs - MTPowerPC (La performanceOptimiséAvecAmélioréPC) utilisés dans les solutions bureautiques et professionnelles de l'entreprisePommeCependant, le Yabloko a récemment annoncé le passage à l’architecture.Intel. Député RISC  caractérisé par une vitesse élevée, mais non compatible par programmation avec les processeursCISC. Par conséquent, pour exécuter des applications développées pourIbmPC  ordinateurs compatibles sur des machines de typePommeMacintosh  Un «émulateur» est nécessaire, ce qui réduit considérablement leur efficacité.

Tableau 3.2.  Caractéristiques des microprocesseurs d'Intel

Modèle

Décharge

disponibilité des données /

adresses (bits)

Une horloge

Fréquence

(MHz)

Espace d'adressage (octet)

Équipes de composition

Degré d'intégration / technologie de processus

La tension

Alimentation (V)

Année de fabrication

4004

4 /4

0,108

2300/10 microns

1971

8080

8 /8

64K

10 000/6 microns

1974

8086

16 /16

4,77 et 8

70 000/3 microns

1979

8088

8 , 16 /16

4,77 et 8

70 000/3 microns

1978

80186

16/20

8 et 10

140 000

1981

80286

16/24

8-20

16M

180 000/

1,5 microns

1982

80386

32/32

16-50

4G

275 000/1 micron

1985

80486

32/23

25-100

1,2 million /

1 micron

1989

Pentium

64/32

60-233

3,3 millions /

0,5 et 0,35 microns

1993

Pentium pro

64/32

150-200

5,5 millions /

0,5 et 0,35 microns

1995

Pentium MMX

64/36

166-233

57 (MMX)

5 millions /

0,35 microns

1997

Pentium II (Katmai Core)

64/36

233-600

MMX + (MMX2)

7,5 millions /

0,25 microns

1997

Celeron (Mendocino Core)

64/32

300-800

MMX2

19 millions /

0,25 et 0,22 microns

1998

Pentium III (Coppermine)

64/36

500-1000

MMX + 70

28 millions /

0,18 micron

1,65

1999

Pentium III Xeon

64/36

500-1000

MMX2

30 millions /

0,18 et 0,13 microns

1,65

1999

Pentium 4 (Willamette)

64/36

1000-3500

64G

MMX 2 + 144

42 millions /

0,13 micron

1,1-1,85

2000

Type de député Vliw   contrairement à superscalarCISC  les processeurs ont une implémentation de circuit sensiblement plus simple et reposent sur un logiciel. Les programmeurs n’ont pas accès aux ressources internes.Vliw- par conséquent, tous les programmes d’application et le système d’exploitation s’exécutent sur un logiciel spécial de bas niveau (CodeMorphing) instructions de diffusionCISC-processeur en équipesVliw. Matériel simplifiéVliw  vous permet de réduire considérablement la taille du MP et de réduire la production de chaleur et la consommation électrique.

Vliw  processeurs produits par l'entrepriseTransmeta  - MT sous la marqueCrusoépremier député Vliw  de Intel  sur le noyau Merced  utilisé un ensemble complet d'instructionsIA-64, cette technologie s'appelleEPIC (ExplicitementParallèleInstructionInformatique  - calculs avec parallélisme explicite d'instructions).

NOTE

À Les processeurs VLIW peuvent être attribués à l’apparition en 2002 de l’Elbrus 2000 - E 2k MP, développé par la société russe Elbrus. Il avait une petite taille (complètement caché derrière la pièce de monnaie 1 rouble). Actuellement, tout le développement de la société, ainsi que ses employés, sont au service d'Intel.

Une part importante des calculs scientifiques et techniques implique de travailler avec des vecteurs, au lieu de valeurs scalaires, ce qui simplifie grandement les calculs. Considérons deux modèles d’organisation des programmes scientifiques de grande taille:processeur massivement parallèle (tableau processeur ) et processeur vectoriel (vecteur processeur ). Un processeur massivement parallèle consiste en un grand nombre de processeurs similaires qui effectuent les mêmes calculs avec des ensembles de données différents. C'est une structure composée de plusieurs secteurs représentant un réseauNxN  éléments processeur / mémoire. Chaque secteur a sa propre unité de contrôle.

NOTE

Le premier processeur massivement parallèle au monde - ILLIAC IV (Université de l'Illinois), disposait d'une grille de 8x8 éléments processeur / mémoire (un secteur, il était censé créer 4 secteurs) avec une vitesse de 50 millions d'opérations par seconde. Les processeurs vectoriels ont publié le fameux Cray Research, dont le fondateur était Seymour Cray.

La différence vecteur cpu   consiste en ce que toutes les opérations d’addition sont effectuées dans un seul bloc de sommation, qui a une structure de pipeline. Ce processeur aregistre de vecteur consistant en un ensemble de registres standard. Ces registres sont chargés séquentiellement de la mémoire à l’aide d’une seule commande. La commande d'addition ajoute deux à deux les éléments de deux vecteurs de ce type et les charge à partir de deux registres de vecteurs dans un sommateur à structure vectorielle. En conséquence, un vecteur sort du totalisateur.

Description et objectif des processeurs

Définition 1

Processeur central  (CPU) - le composant principal de l'ordinateur qui effectue les opérations arithmétiques et logiques spécifiées par le programme, contrôle le processus de calcul et coordonne le travail de tous les périphériques de l'ordinateur.

Plus le processeur est puissant, plus les performances du PC sont rapides.

Note

Le processeur central est souvent appelé simplement le processeur, le CPU (Central Processing Unit) ou le CPU (Central Processing Unit), moins souvent - le cristal, la pierre, le processeur hôte.

Les processeurs modernes sont des microprocesseurs.

Le microprocesseur a la forme d'un circuit intégré  - une mince plaque de silicium cristallin de forme rectangulaire de plusieurs millimètres carrés contenant des circuits avec des milliards de transistors et des canaux pour le passage des signaux. La plaque de cristal est placée dans un boîtier en plastique ou en céramique et reliée par des fils d'or à des broches en métal pour une connexion à une carte mère PC.

Figure 1. Microprocesseur Intel 4004 (1971)


Figure 2. Microprocesseur Intel Pentium IV (2001). Vue gauche - en haut, droite - en bas

La CPU est conçue pour exécuter automatiquement le programme.

  Processeur

Les principaux composants de la CPU sont:

  • unité logique arithmétique  (ALU) effectue des opérations mathématiques et logiques de base;
  • dispositif de contrôle  (CU), qui détermine la cohérence des composants de la CPU et sa connexion avec d'autres périphériques;
  • bus de données et bus d'adresses;
  • registresdans lequel la commande en cours, les données initiales, intermédiaires et finales (résultats des calculs de l'ALU) sont temporairement stockées;
  • compteurs de commandes;
  • mémoire cache  stocke les données et les commandes fréquemment utilisées. La mémoire cache est beaucoup plus rapide que la RAM, donc plus elle est grande, plus la vitesse du processeur est élevée.


Figure 3. Circuit de processeur simplifié

  Les principes du processeur

La CPU exécute un programme en RAM.

L'ALU reçoit les données et effectue l'opération spécifiée en écrivant le résultat dans l'un des registres libres.

La commande en cours est dans le registre des commandes spéciales. Lorsque vous travaillez avec la commande en cours, la valeur du compteur dit de commande augmente, ce qui pointe ensuite vers la commande suivante (l'exception ne peut être qu'une commande de transition).

Une commande consiste en un enregistrement de l'opération (qui doit être effectuée), des adresses des cellules des données initiales et du résultat. Aux adresses spécifiées dans la commande, les données sont prises et placées dans des registres ordinaires (au sens non dans le registre de commandes), le résultat obtenu est également d'abord placé dans le registre, puis seulement il passe à l'adresse spécifiée dans la commande.

  Caractéristiques du processeur

La fréquence d'horloge indique la fréquence à laquelle la CPU fonctionne. Pour $ 1 $ tact, plusieurs opérations sont effectuées. Plus la fréquence est élevée, plus la vitesse du PC est élevée. La fréquence d'horloge des processeurs modernes est mesurée en gigahertz (GHz): 1 $ GHz = 1 milliard de dollars de cycles d'horloge par seconde.

Pour améliorer les performances du processeur, il a commencé à utiliser plusieurs cœurs, chacun étant en réalité un processeur distinct. Plus le nombre de cœurs est élevé, plus les performances du PC sont élevées.

Le processeur est connecté à d'autres périphériques (par exemple, la RAM) via des bus de données, des adresses et des contrôles. La largeur du bus est un multiple de 8 (car nous traitons d'octets) et est différente pour différents modèles, mais également pour le bus de données et le bus d'adresses.

La largeur du bus de données indique la quantité d'informations (en octets) pouvant être transmises pour 1 $ fois (pour 1 $ d'horloge). La largeur du bus d’adresse dépend de la quantité maximale de RAM avec laquelle la CPU peut travailler.

La fréquence du bus système dépend de la quantité de données transmise sur une période donnée. Pour les ordinateurs modernes à 1 dollar, vous pouvez transférer plusieurs bits. La largeur de bande du bus, égale à la fréquence du bus système, multipliée par le nombre de bits pouvant être transférés pour $ 1 $ est également importante. Si la fréquence du bus système est de 100 USD $ MHz et que, pour 1 USD, la vitesse d'horloge est transférée à 2 USD bits, la bande passante est de 200 USD Mbit / s.

La capacité des ordinateurs modernes est calculée en gigabits (ou en dizaines de gigabits) par seconde. Plus le nombre est élevé, mieux c'est. Les performances de la CPU sont également affectées par la quantité de mémoire cache.

Les données pour le processeur proviennent de la RAM, mais depuis la mémoire est plus lente que le processeur, elle peut souvent rester inactive. Pour éviter cela, le cache entre le processeur et la RAM est plus rapide que la RAM. Cela fonctionne comme un tampon. Les données de la RAM sont envoyées au cache, puis à la CPU. Lorsque la CPU requiert les données suivantes, si elles sont dans le cache, elles sont extraites, sinon la RAM est utilisée. Si le programme exécute une commande après l'autre séquentiellement, lorsqu'une commande est exécutée, les codes des commandes suivantes sont chargés de la mémoire principale dans la mémoire cache. Cela accélère grandement le travail, car La latence du processeur diminue.

Remarque 1

Il existe trois types de mémoire cache:

  • La mémoire cache du niveau $ 1 $ est la plus rapide. Elle est située dans le cœur de la CPU et est donc petite (entre 8 et 128 $ Ko).
  • La mémoire cache $ 2 $ -le niveau est dans la CPU, mais pas dans le noyau. Il est plus rapide que la RAM, mais plus lent qu'un cache de niveau $ 1 $. Taille de $ 128 $ Kbytes à plusieurs Mo.
  • Le cache de niveau $ 3 $ est plus rapide que la RAM, mais le cache de niveau $ 2 $ est plus lent.

La vitesse du processeur et, par conséquent, de l'ordinateur dépend de la quantité de mémoire de ce type.

La CPU ne prend en charge qu'un certain type de RAM: $ DDR $, $ DDR2 $ ou $ DDR3 $. Plus la RAM est rapide, meilleures sont les performances du processeur.

La caractéristique suivante est le socket (socket) dans lequel le CPU est inséré. Si le CPU est conçu pour un type spécifique de socket, il ne peut pas être installé dans un autre. En attendant, sur la carte mère, il n’ya qu’un seul socket pour le processeur et il doit correspondre au type de ce processeur.

  Types de processeur

La principale entreprise qui fabrique des processeurs pour PC est Intel. Le premier processeur pour PC était un processeur à 8086 $. Le modèle suivant coûtait 80286 $, puis 80386 $. Avec le temps, le chiffre de 80 $ a été abaissé et la CPU a été appelée trois chiffres: 286 $, 386 $, etc. Les processeurs de génération sont souvent appelés la famille $ x86 $. D'autres modèles de processeurs sont également disponibles, tels que l'Alpha, le Power PC et d'autres familles, ainsi que les fabricants de processeurs AMD, Cyrix, IBM et Texas Instruments.

Le nom du processeur peut souvent être trouvé avec les caractères $ X2 $, $ X3 $, $ X4 $, ce qui signifie le nombre de cœurs. Par exemple, dans le nom Phenom $ X3 $ 8600 $, les symboles $ X3 $ indiquent la présence de trois cœurs.

Ainsi, les principaux types de CPU sont les suivants: 8086 $, 80286 $, 80386 $, 80486 $, Pentium, Pentium Pro, Pentium MMX, Pentium II, Pentium III et Pentium IV. Celeron est une version allégée du processeur Pentium. Après le nom est généralement indiqué la vitesse d'horloge du processeur. Par exemple, Celeron $ 450 $ indique le type de processeur Celeron et sa fréquence d'horloge est de $ 450 MHz.

Le processeur doit être installé sur la carte mère avec la fréquence du bus système correspondant à celle du processeur.

Dans les derniers modèles de CPU, un mécanisme de protection contre la surchauffe est implémenté, c.-à-d. Lorsque la température dépasse la température critique, la CPU bascule sur une fréquence d'horloge plus basse consommant moins d'énergie.

Définition 2

S'il existe plusieurs processeurs parallèles dans un système informatique, ces systèmes sont appelés multitraitement .

Le PC IBM d'origine et le PC XT IBM utilisaient un microprocesseur Intel-8088. Au début des années 80, ces microprocesseurs étaient fabriqués avec une fréquence d'horloge de 4,77 MHz, puis des modèles avec une fréquence d'horloge de 8, 10 et 12 MHz ont été créés. Les modèles aux performances accrues (fréquence d'horloge) sont parfois appelés TURBO-XT. Aujourd'hui, les microprocesseurs comme Intel-8088 sont produits en petites quantités et ne doivent pas être utilisés dans un ordinateur, mais dans divers appareils spécialisés.

Le modèle IBM PC AT utilise un microprocesseur Intel-80286 plus puissant et ses performances sont environ 4 à 5 fois supérieures à celles du IBM PC XT. Les versions originales de l’IBM PC AT fonctionnaient sur des microprocesseurs avec une fréquence d’horloge de 12 à 25 MHz, c’est-à-dire deux à trois fois plus rapides. Le microprocesseur Intel-80286 a légèrement plus de fonctionnalités que le processeur Intel-8088, mais ces fonctionnalités supplémentaires sont utilisées très rarement. La plupart des programmes fonctionnant sous AT fonctionnent donc sous XT. Aujourd'hui, les microprocesseurs tels qu'Intel-80286 sont également considérés comme obsolètes et ne sont pas fabriqués pour être utilisés sur des ordinateurs.

En 1988-1991 La plupart des ordinateurs produits étaient basés sur un microprocesseur Intel-80386 suffisamment puissant, développé par Intel en 1985. Ce microprocesseur (également appelé 80386DX) fonctionne deux fois plus vite que 80286 fonctionnerait avec la même fréquence d'horloge. La plage de fréquences d’horloge 80386DX typique est comprise entre 25 et 40 MHz. En outre, Intel a également mis au point le microprocesseur Intel-80386SX, qui n’est que légèrement supérieur à celui de l’Intel-80286, tout en offrant les mêmes fonctionnalités que l’Intel-80386, mais avec une action rapide inférieure (environ 1, 2 à 2 fois).

Le microprocesseur Intel-80386 fonctionne non seulement plus rapidement que le processeur Intel-80286, mais possède également beaucoup plus de fonctionnalités, en particulier, il contient des outils puissants pour les opérations 32 bits (par opposition aux 80286 et 8088 16 bits).

Ces outils sont activement utilisés par les fabricants de logiciels. Par conséquent, de nombreux programmes actuellement publiés sont destinés à être utilisés uniquement sur des ordinateurs dotés de microprocesseurs du modèle Intel-80386 ou supérieur.

Lors de la création d'un microprocesseur Intel-80386, Intel l'a considéré comme le microprocesseur le plus avancé, fournissant des performances suffisantes pour la plupart des tâches. Cependant, le plus répandu depuis 1990-1991. Le shell du système d'exploitation Windows de Microsoft a considérablement augmenté les besoins en ressources informatiques et, dans de nombreux cas, le travail des programmes Windows sur un ordinateur doté d'un microprocesseur Intel-80386 était trop lent. Donc, en 1991-1992. La plupart des fabricants d’ordinateurs se sont réorientés vers l’utilisation d’un microprocesseur Intel-80486 plus puissant (ou 80486DX). Ce microprocesseur diffère peu du processeur Intel-80386, mais ses performances sont 2 à 3 fois plus élevées. Parmi ses caractéristiques, notons la mémoire cache intégrée et le coprocesseur mathématique intégré. Intel a également mis au point des versions moins coûteuses mais moins productives du -80486SX et des options plus coûteuses et plus rapides, les -80486DX2 et DX4. La fréquence d'horloge de 80486 est généralement comprise entre 25 et 50 MHz, entre 80486DX2 et 50-60 MHz et entre DX4 et 100 MHz.

En 1993, Intel a publié un nouveau microprocesseur Pentium (annoncé précédemment sous la référence 80586). Ce microprocesseur est encore plus puissant, notamment pour calculer des nombres réels. Comme l’Intel-80486, il contient un coprocesseur mathématique intégré et est beaucoup plus efficace que l’Intel-80486. Pour améliorer les performances du Pentium, d'autres améliorations ont été apportées: un bus de transmission de données plus rapide et plus large (bus de données), une grande quantité de mémoire cache interne, la possibilité d'exécuter deux instructions simultanément, etc. La fréquence d'horloge des microprocesseurs Pentium produits varie de 60 à 233 MHz. Dans le même temps, les microprocesseurs Pentium fonctionnent 1 à 5 fois plus rapidement que les microprocesseurs de type 80486 avec la même fréquence d'horloge. Pour les tâches nécessitant des calculs intensifs sur des nombres réels, ils sont 3 à 4 fois plus rapides.

À la fin de 1996 et au début de 1997, Intel a publié un processeur Pentium MMX amélioré (MMX - Multimedia Extension). Bien qu’à l’extérieur, il diffère peu de son prédécesseur, l’architecture des équipes a subi de profonds changements. Dans le jeu d'instructions de la puce, 57 nouvelles sont apparues. Ils sont conçus pour effectuer des tâches liées au traitement de données audio, vidéo, graphiques et de télécommunications.

Pour prendre en compte les nouvelles fonctionnalités du boîtier Pentium existant, la société a dû faire des compromis: les processeurs dotés de MMX ne peuvent pas exécuter simultanément des instructions MMX et des opérations à virgule flottante, comme pour les commandes MMX et les nombres à virgule flottante, elles sont utilisées seules les mêmes registres du coprocesseur intégré. Et ceci est fait pour préserver la compatibilité totale de Pentium MMX avec les logiciels existants. Ce n'est pas un gros problème, car peu de programmes utilisent le coprocesseur. Toutefois, si certaines applications nécessitent que le processeur bascule fréquemment entre les opérations à virgule flottante et les opérations MMX, elles s'exécuteront sur un processeur MMX plus lent que sur un processeur standard avec la même fréquence d'horloge.

Le 7 mai 1997, Intel a officiellement lancé le processeur Pentium II. Versions disponibles du processeur avec une fréquence d'horloge de 233 MHz et 300 MHz, conçues pour une puissance de 2,8 V. La principale nouvelle était que le Pentium II n'était pas compatible avec les cartes mères existantes pour Pentium. Le nouveau processeur sera monté dans une cartouche S.E.C (Single Edge Contact). Le logement de la cartouche entièrement fermé protège les composants, la plaque du dissipateur thermique vous permet d’utiliser tous les radiateurs pour le dissipateur thermique passif ou actif. De ce fait, l’émission de chaleur du modèle avec une fréquence d’horloge de 233 MHz ne dépasse pas 38,2 W (à titre de comparaison: le Pentium 200 MHz alloue 37,9 W). La cartouche S.E.C. sera insérée dans l'emplacement 1 proposé par Intel comme nouveau standard technologique pour le facteur de forme de la composition informatique.

En janvier 1999, Intel a officiellement dévoilé son microprocesseur pour PC Pentium III. Selon le représentant de la société, Seth Walker, Pentium III devrait faire progresser la technologie sur plusieurs fronts, notamment la fréquence d'horloge (les premiers modèles de processeurs fonctionneront à 450 et 500 MHz), le traitement graphique, la vitesse et la fiabilité du travail sur Internet. Le plan pour le développement ultérieur de la famille de produits Pentium III prévoit de passer de la norme technologique de 0,25 µm à 0,18 µm (le nom de travail du microprocesseur correspondant est Coppermine). La transition de 0,25 µm à 0,18 µm entraînera une augmentation de ses performances et une diminution de la consommation d'énergie. Cela permettra d’amener la vitesse des cristaux à 600 MHz et plus. La vitesse d'horloge des premiers processeurs Pentium III de 0,25 micron sera de 450 et 500 MHz. Nouvelles instructions ajoutées au processeur. Cet ensemble de commandes, nommé Katmai New Instructions, vise à améliorer les performances de traitement graphique. En outre, cela accélérera l'application de la vidéo, de l'audio, de la reconnaissance vocale et d'autres technologies similaires. En mars 2001, Intel a lancé le processeur Xeon à 900 MHz - il est devenu le dernier membre de la famille Pentium III. Ce processeur est équipé d'un cache de 2 Mo au deuxième niveau, ce qui améliore ses performances.

En novembre 2000, Intel a confirmé son intention de libérer le microprocesseur Pentium 4 et annoncé son intention de transférer les ordinateurs de bureau de masse du Pentium III au Pentium 4 d’ici à la fin de 2001. Le processeur Pentium 4 est basé sur la microarchitecture Intel NetBurst. Il s'agit de la première micro-architecture fondamentalement nouvelle de processeurs de bureau développée par la société au cours des cinq dernières années depuis le lancement du processeur Pentium Pro avec micro-architecture P6 en 1995. L’architecture de NetBurst utilise plusieurs nouvelles technologies: technologie hyper-pipeline (Hyper Pipelined Technology) avec une profondeur de pipeline deux fois plus élevée que celle du Pentium III; le cœur de l'exécution rapide (Rapid Execution Engine), qui améliore les performances lorsque vous travaillez avec des données entières en travaillant à une fréquence double de la fréquence d'horloge par rapport à la fréquence du cœur principal; et cache d’exécution (Execution Trace Cache), qui stocke les commandes déjà «décodées»; Cela élimine le délai d'analyse des sections de code ré-exécutables.

Le processeur Pentium 4 contient 42 millions de transistors sur une puce, est doté d'un cache de 256 Ko et de 144 nouvelles instructions, appelées flux SIMD-extensions-2 (SSE2), qui accélèrent le traitement des blocs de données à virgule flottante. Le chipset Intel 850 est utilisé comme base pour les plates-formes basées sur le Pentium 4. Ce dernier est toujours le seul chipset du marché conçu pour le nouveau processeur. Le chipset prend en charge la RDRAM (Rambus Direct RAM) à double canal avec une bande passante de 1,6 Go / s pour chaque canal et un bus système avec une fréquence d'horloge de 400 MHz et une bande passante allant jusqu'à 3,2 Go / s. En fait, la fréquence d'horloge du bus système est de 100 MHz et quatre opérations sont effectuées par horloge (une solution similaire est utilisée dans l'AGP 4x). Intel a également présenté la première carte de bureau ATX D850GB basée sur le nouveau chipset. Le Pentium 4 est actuellement produit dans les versions 1,4, 1,5 et 1,7 GHz, à l’aide de la technologie 0,18 micron.

Selon les principaux analystes, les fabricants de puces opéreront en 2001 une transition à 2 GHz: de nouvelles technologies pour la production de puces à semi-conducteurs, notamment le revêtement de film polymère et la superminiaturisation, permettront aux fabricants de franchir la ligne des 2 GHz.

La structure du microprocesseur.

Un microprocesseur est un dispositif semi-conducteur, constitué d'un ou plusieurs LSI contrôlés par logiciel, comprenant tous les outils nécessaires au traitement et au contrôle de l'information. Il est conçu pour fonctionner avec des dispositifs de mémoire et des informations d'entrée-sortie.

Le microprocesseur est constitué de trois blocs principaux:

Arithmétique-logique

Registres de bloc

Dispositifs de contrôle

Unité logique arithmétique (ALU) - effectue toutes les transformations de données logiques et arithmétiques.

Le dispositif de contrôle est une unité électronique d’un ordinateur qui active le dispositif, les blocs, les composants électroniques et les circuits en fonction du contenu de la commande en cours.

Register est une cellule de mémoire sous la forme d'un ensemble de déclencheurs conçus pour stocker une donnée en code binaire.

Le nombre de bits dans le registre est déterminé par la capacité numérique du microprocesseur.

Les registres à usage général - forment une super-opération et servent à stocker les opérandes impliqués dans les calculs, ainsi que les résultats des calculs.

L'opérande s'appelle la donnée source, sur laquelle différentes actions sont effectuées dans une unité arithmétique.

Registre de commandes - sert à stocker la commande en cours d'exécution à l'heure actuelle.

Le compteur de commandes est un registre indiquant l'adresse de la cellule de mémoire où la commande suivante est stockée.

Stack (pile de mémoire) - un ensemble de registres interconnectés pour stocker les données ordonnées. Le premier est sélectionné dans la pile donnée en dernier pour y aller, et vice versa.

2019 wisemotors.ru. Comment ça marche Le fer L'exploitation minière Crypto-monnaie.