Coprocesseur : Architecture, Fonctionnement, Types & Ses Applications

Essayez Notre Instrument Pour Éliminer Les Problèmes





Dans un microprocesseur puce, de nouveaux circuits sont ajoutés pour réaliser des tâches spéciales et également des opérations sur les nombres pour décharger le travail de base du processeur afin que le processeur puisse fonctionner très rapidement. Un processeur supplémentaire tel qu'un coprocesseur est principalement utilisé dans les ordinateurs pour effectuer des tâches spéciales telles que le traitement d'affichage graphique et des calculs arithmétiques étendus. Ce processeur est conçu pour effectuer ces tâches de manière très efficace par rapport au processeur, ce qui permet d'augmenter la vitesse globale de l'ordinateur. Cet article donne un aperçu d'un coprocesseur –architecture, fonctionnement & ses applications.


Qu'est-ce qu'un coprocesseur ?

Un processeur qui fonctionne avec le processeur principal d'un ordinateur comme le processeur côte à côte est appelé coprocesseur. Ce processeur est également appelé processeur informatique supplémentaire. En utilisant ce processeur, certains calculs mathématiques difficiles peuvent être effectués comme les graphiques affichés à l'écran, le traitement du signal, le traitement des chaînes, l'arithmétique à virgule flottante, l'interfaçage entrée-sortie, etc.



  Coprocesseur
Coprocesseur

Architecture de coprocesseur

Le coprocesseur comme l'architecture 8087 est illustré ci-dessous. Généralement, ce co-processeur travaille en parallèle avec le microprocesseur. Ce coprocesseur a été développé par Intel et utilisé avec les microprocesseurs 16 bits de la famille 8086. Lorsque le processeur fonctionne en combinaison avec le microprocesseur, la partie calcul est simplement gérée par le processeur, ce qui permet à la CPU d'utiliser les ressources pour exécuter diverses autres activités.

La figure suivante représente l'architecture du coprocesseur 8087. Cette architecture comprend deux unités principales comme l'unité de contrôle et une unité d'exécution numérique qui est également appelée NEU.



  Architecture du coprocesseur 8087
Architecture du coprocesseur 8087

Dans l'unité de contrôle, il existe diverses unités telles que le tampon de données, le registre de mots de contrôle et d'état, la file d'attente d'opérandes partagée, le pointeur d'exception et l'unité d'adressage et de suivi de bus. L'unité d'exécution numérique ou NEU comprend principalement une unité de contrôle à microcode, une pile de registres, un décaleur programmable, un registres , module arithmétique, module exposant et file d'attente d'opérandes partagée.

L'unité de contrôle dans le coprocesseur doit contrôler l'exécution des instructions (IE) dont l'unité d'exécution numérique est responsable. La plupart du temps, l'unité de contrôle du microcode (CU) de l'unité d'exécution numérique obtient les instructions numériques de l'unité de contrôle du coprocesseur. Ce coprocesseur possède 8 registres complets de 80 bits et chacun d'eux est utilisé dans la pile LIFO. Les opérandes sur lesquels les instructions du coprocesseur se produiront existent dans la pile de registres.

  PCBWay

La pile existante est pointée via le SP 3 bits (pointeur de pile) qui contient les valeurs binaires comprises entre 000 et 111 afin d'afficher les 8 registres de pile. Il fonctionne dans une pile circulaire en mode LIFO. Mais, une fois que l'action de réinitialisation se produit, le pointeur peut être initialisé par la valeur binaire '000'.

Les trois classifications de données numériques sur lesquelles les fonctions du co-processeur sont regroupées sont les nombres décimaux, les nombres réels et les entiers binaires. Les entiers binaires sont trois types d'entiers de mots de 16 bits, d'entiers courts de 32 bits et d'entiers longs de 64 bits. Le format BCD 80 bits signifie les nombres décimaux condensés tandis que les nombres réels sont de 3 types; Réel court 32 bits, réel long 64 bits et réel temporaire 80 bits.

Pour transférer les données numériques dans le coprocesseur soit un Un bus exposant 16 bits ou un bus mantisse 64 bits est utilisé . Le coprocesseur comprend un mot de contrôle de 16 bits et un mot d'état de 16 bits.

Le mot de contrôle est écrit dans le registre de contrôle et cela a lieu de telle manière que le coprocesseur écrit initialement le mot de contrôle dans l'emplacement de la mémoire. Après cela, le coprocesseur lit simplement le mot de contrôle en utilisant l'emplacement mémoire et le stocke dans le registre de contrôle.

De même, le mot d'état se lit de manière à ce que le processeur envoie les données du registre d'état vers un emplacement de mémoire. En outre, ce coprocesseur lit le registre d'état à partir de cet emplacement spécifique de mémoire. Cela signifie donc que le processeur et le microprocesseur communiquent entre eux par la mémoire principale.

Comment fonctionne le coprocesseur ?

Le coprocesseur est principalement conçu pour fonctionner avec les processeurs 8086 et 8088. Le coprocesseur est utilisé pour aider le système à fonctionner plus puissamment en déchargeant des tâches CPU spécifiques. Une fois que ce processeur fonctionne en combinaison avec le microprocesseur, les instructions du microprocesseur et du coprocesseur sont intégrées lors de l'écriture du programme. Le début des instructions dans le programme en langage assembleur a un « F » qui représente les instructions du coprocesseur, tandis que les instructions sans préfixe « F » indiquent les instructions du microprocesseur.

Au début, les instructions sont récupérées par le microprocesseur à partir de l'emplacement de la mémoire et les chargent séquentiellement dans la file d'attente, en même temps, le coprocesseur 8087 lit et stocke également les instructions dans une file d'attente interne. Cela signifie donc que chaque instruction peut être lue à la fois par le coprocesseur et le processeur, mais au moment de l'exécution, le coprocesseur et le microprocesseur peuvent exécuter l'exécution de leurs instructions particulières. Cela signifie que cette instruction est lue et décodée. Si le microprocesseur vérifie qu'il existe une instruction de coprocesseur, cette instruction est alors traitée comme une non-opération. De même, si ce co-processeur s'approche de n'importe quelle instruction du microprocesseur, il sera traité comme une non-opération.

Types de coprocesseur

Il existe différents coprocesseurs disponibles en fonction des fabricants comme les suivants.

Coprocesseur Intel 8087

Intel 8087 est un coprocesseur spécialement conçu qui est utilisé pour effectuer des calculs mathématiques qui incluent des valeurs à virgule flottante et entières. Parfois, il est également connu sous le nom de processeur de données numériques et de processeur mathématique. Il s'agit d'un coprocesseur numérique pour les processeurs Intel 80188, 8086, 80186 et 8088. Le coprocesseur 8087 comprend huit registres généraux de 80 bits qui sont exécutés comme une pile. Ainsi, toutes les opérations en virgule flottante sont simplement effectuées avec des données de la pile et de la mémoire externe.

  Coprocesseur Intel 8087
Coprocesseur Intel 8087

Le coprocesseur Intel 8087 prend simplement en charge les nombres à virgule flottante BCD, entiers, simple et double précision et également les nombres à virgule flottante à précision étendue. Une fois que le processeur 8087 a chargé les données de la mémoire, il les convertit en interne pour étendre le nombre de précision et, en outre, tous les calculs sont effectués via ce nombre.

Ainsi, le passage d'un nombre à double précision à un nombre à simple précision, sinon d'un nombre entier 64 bits - les nombres entiers 32 bits / 16 bits ne donne aucune amélioration significative des performances. Les coprocesseurs 8087 n'étaient pas seulement fabriqués par Intel, mais AMD, Cyrix et IBM fabriquent également ces coprocesseurs.

Motorola 68881

Motorola 68881 est un coprocesseur qui est principalement utilisé avec la 2ème génération de Motorola 68K microprocesseurs comme Motorola 68030 et 68020. Théoriquement, ce coprocesseur est utilisé avec les processeurs 68000 ou 68010 antérieurs en tant que périphérique.

  Motorola 68881
Motorola 68881

Le coprocesseur Motorola 68881 fonctionne simplement comme un appareil mappé en mémoire. Une fois que le processeur principal charge l'instruction du coprocesseur, il écrit le code d'instruction dans les CIR (registres d'interface du coprocesseur), qui sont mappés dans l'espace d'adressage du processeur, et après cela, il lit la réponse du co-processeur de l'un des registres CIR.

Les coprocesseurs Motorola 68881/68882 ont été utilisés dans les stations de travail IBM RT PC, les stations de travail Sun Microsystems Sun-3, NeXT Computer, la famille Apple Computer Macintosh II, Amiga 3000, Sharp X68000, Convergent Technologies MightyFrame, TT, Atari Mega STE et Falcon. Ces processeurs sont également utilisés dans certains produits Atari et Amiga tiers, comme un périphérique mappé en mémoire sur le 68000.

Coprocesseurs de mouvement Apple

Les coprocesseurs de la série M d'Apple sont connus sous le nom de coprocesseurs de mouvement qui sont utilisés dans les appareils mobiles Apple. Le premier coprocesseur a été conçu en 2013, utilisé pour collecter des données de capteur à partir de gyroscopes, d'accéléromètres et de boussoles intégrés et décharger les données de capteur collectées à l'aide du processeur principal.

  Coprocesseurs de mouvement Apple
Coprocesseurs de mouvement Apple

Les coprocesseurs Apple de la série M collectent simplement, traitent et stockent les données du capteur même si l'appareil est en veille et les applications peuvent récupérer les données une fois que l'appareil est à nouveau sous tension. Cela diminue donc la puissance tirée de l'appareil et économise la durée de vie de la batterie.

Différence entre processeur et coprocesseur

La différence entre le processeur et le coprocesseur comprend les éléments suivants.

Processeur

Coprocesseur

Le processeur est l'unité de traitement principale de l'ordinateur qui exécute différentes opérations arithmétiques, logiques et de contrôle en fonction des instructions. Le coprocesseur est un processeur spécial qui prend en charge le processeur principal.

Le processeur s'occupe de tous les travaux principaux

Le coprocesseur ne s'occupe que d'autres choses comme les graphiques et les calculs arithmétiques.
Il gère les opérations logiques et les calculs mathématiques et génère des signaux de contrôle vers d'autres composants pour synchroniser les tâches. Il effectue le traitement du signal, les opérations mathématiques, la mise en réseau et la cryptographie en fonction du type.
Le processeur assure le bon fonctionnement de l'ensemble de l'ordinateur. Ce processeur aide à augmenter les performances du système et décharge les tâches lourdes du processeur.

Avantages

Les avantages d'un coprocesseur comprennent les suivants.

  • Le coprocesseur gère simplement des tâches plus spécialisées plus rapidement par rapport au processeur central
  • Ces processeurs sont faciles à utiliser et les plus populaires.
  • Il diminue la charge du microprocesseur en prenant des tâches de traitement spéciales du CPU afin qu'il fonctionne à une vitesse plus élevée.
  • Ce processeur est utile pour étendre les fonctionnalités de traitement du processeur en élargissant le jeu d'instructions ou en proposant des registres de configuration.

Désavantages

Les inconvénients des coprocesseurs sont les suivants.

  • Le coprocesseur n'est pas capable de récupérer des instructions de la mémoire, d'exécuter directement des instructions, de gérer la mémoire, d'effectuer des opérations d'E/S
  • Cela dépend du processeur principal pour récupérer les instructions du coprocesseur et s'occuper de toutes les autres opérations non liées au coprocesseur.
  • Ce n'est pas le processeur principal du système.
  • Le coprocesseur ne peut pas fonctionner sans le microprocesseur principal.

Applications

Les applications des coprocesseurs comprennent les suivantes.

  • Le coprocesseur est utilisé pour effectuer certaines des tâches les plus spécialisées telles que le traitement d'affichage graphique ou des calculs mathématiques complexes.
  • Un co-processeur est simplement utilisé pour réduire la charge sur le CPU d'un ordinateur.
  • Ce processeur fonctionne avec le CPU de l'ordinateur côte à côte.
  • Ce processeur effectue des opérations mathématiques de haut niveau beaucoup plus rapidement que le processeur principal comme les racines, les logarithmes, les fonctions de trigonométrie, etc.
  • Un coprocesseur augmente les fonctions du processeur principal.
  • Le coprocesseur effectue différentes opérations telles que le traitement du signal, l'arithmétique en virgule flottante, le traitement des chaînes, les graphiques, l'interfaçage des E/S via des périphériques, la cryptographie, etc.
  • Ces processeurs sont des puces autonomes dans les anciens ordinateurs de bureau qui étaient connectés à la carte mère.
  • Un coprocesseur gère les tâches du processeur pour améliorer les performances globales.

Ainsi, ceci est un aperçu d'un coprocesseur – le travail et ses applications. Ce processeur est également connu sous le nom de processeur mathématique. Un coprocesseur exécute différentes tâches très rapidement par rapport au processeur central. Ainsi, la vitesse globale du système informatique augmente. Ce processeur peut être attaché à un processeur ARM. Une fois ajouté, nous devons augmenter le jeu d'instructions du Core CPU ou inclure des registres configurables pour augmenter la puissance de traitement. Voici une question pour vous, qu'est-ce qu'un microprocesseur?