C'est trop fastoche !

L'électronique numérique

L'électronique numérique est une branche de l'électronique dans laquelle les informations sont représentées et traitées sous forme de valeurs discrètes. La représentation la plus courante utilise deux états, notés 0 et 1, qui correspondent physiquement à des niveaux électriques définis par le circuit.

Cette manière de représenter l'information permet de manipuler des nombres, des textes, des images, des sons, des mesures et des instructions sous une forme adaptée au traitement électronique. Une information complexe est transformée en une succession de valeurs binaires que les circuits peuvent stocker, déplacer, comparer et modifier.

Du signal électrique à l'information numérique

Dans un circuit électronique réel, un 0 et un 1 ne sont pas des valeurs abstraites. Ils sont représentés par des niveaux de tension ou, dans certaines technologies, par des niveaux de courant ou des états électriques particuliers.

Un circuit numérique définit des plages dans lesquelles une tension est reconnue comme un état logique. Cette distinction permet au système de tolérer de petites perturbations sans modifier immédiatement l'information.

Une information provenant du monde réel est souvent analogique. Un microphone produit par exemple une tension qui varie continuellement avec le son. Pour être traitée numériquement, cette information doit être échantillonnée puis représentée par des valeurs numériques.

À l'inverse, lorsqu'un système numérique doit commander un phénomène physique, les données numériques peuvent être reconverties en un signal électrique adapté au dispositif commandé.

La représentation de l'information

La plus petite unité d'information numérique est le bit. Il peut prendre deux états : 0 ou 1.

En regroupant plusieurs bits, le nombre de valeurs représentables augmente rapidement. Huit bits forment un octet et permettent de représenter 256 valeurs différentes. Avec 16 bits, 65 536 valeurs peuvent être représentées, et avec 32 bits, plus de quatre milliards de combinaisons sont possibles.

Ces combinaisons peuvent représenter des nombres, mais aussi des caractères, des couleurs, des adresses mémoire, des instructions ou toute autre information définie par le système.

Le traitement logique

Les circuits numériques manipulent les bits grâce à des opérations logiques. Ces opérations permettent de déterminer une nouvelle valeur à partir d'une ou plusieurs valeurs d'entrée.

Une condition peut ainsi être vérifiée, plusieurs informations peuvent être combinées, une valeur peut être inversée ou plusieurs possibilités peuvent être sélectionnées.

Les opérations élémentaires sont ensuite associées pour réaliser des fonctions beaucoup plus complexes. Un circuit capable d'effectuer une addition, de comparer deux nombres ou de sélectionner une donnée est finalement constitué d'un très grand nombre d'opérations logiques organisées entre elles.

La logique et les circuits

La théorie logique fournit les règles permettant de décrire le comportement d'un circuit numérique. Elle permet de passer d'une expression représentant une condition à une organisation concrète de composants électroniques.

Les relations entre les entrées et les sorties peuvent être décrites mathématiquement, représentées sous forme de tableaux ou directement traduites en circuits électroniques.

Cette séparation entre la fonction recherchée et sa réalisation physique facilite considérablement la conception de systèmes numériques complexes.

Les circuits combinatoires

Dans un circuit combinatoire, la sortie dépend des valeurs présentes sur les entrées au moment considéré.

Une modification d'une entrée se propage donc à travers le circuit et finit par modifier les sorties correspondantes. Le circuit ne conserve pas l'état précédent de ses entrées.

Les circuits réalisant des additions, des comparaisons, des sélections ou des conversions de codes appartiennent notamment à cette catégorie.

La mémoire et les circuits séquentiels

Un système numérique doit souvent conserver une information afin de poursuivre une opération. Il utilise alors des circuits séquentiels, capables de conserver un état.

Le résultat produit par un circuit séquentiel dépend donc non seulement des entrées actuelles, mais également de l'état dans lequel se trouvait précédemment le circuit.

Cette propriété permet de construire des compteurs, des registres, des mémoires, des séquences de commande et des systèmes capables d'exécuter des opérations dans un ordre déterminé.

Le temps dans les systèmes numériques

Les circuits numériques complexes doivent coordonner leurs opérations. Une horloge fournit souvent une référence temporelle commune à de nombreux blocs.

Elle produit un signal périodique dont les transitions servent de repères pour enregistrer des données ou déclencher certaines opérations. La fréquence de cette horloge indique le nombre de cycles effectués chaque seconde.

Tous les circuits numériques ne fonctionnent cependant pas obligatoirement avec une horloge. Certains circuits réagissent directement aux changements de leurs entrées et d'autres utilisent des mécanismes de synchronisation particuliers.

Les fonctions numériques

En combinant les opérations élémentaires, il devient possible de construire des fonctions numériques de plus en plus élaborées.

Un système peut par exemple effectuer des calculs arithmétiques, stocker temporairement une donnée, compter des événements, comparer des valeurs, choisir une source parmi plusieurs ou commander une succession d'opérations.

Ces fonctions constituent les briques à partir desquelles sont construits les circuits numériques complexes. Leur organisation détermine l'architecture générale du système.

Les différentes architectures

La manière dont les fonctions numériques sont regroupées et reliées définit l'architecture du circuit.

Un circuit simple peut être conçu pour réaliser une fonction fixe. Un système plus complexe peut comporter plusieurs unités de calcul, des blocs de mémoire, des circuits de contrôle et des interfaces permettant d'échanger des données avec l'extérieur.

L'architecture dépend de la fonction recherchée, de la quantité de données à traiter, de la vitesse nécessaire, de la consommation électrique et de la possibilité ou non de modifier le comportement du circuit après sa fabrication.

La conception des circuits numériques

La conception commence généralement par la définition de la fonction que doit réaliser le système. Les ingénieurs décrivent ensuite les opérations nécessaires et organisent les différents blocs logiques.

Pour les circuits simples, cette organisation peut être représentée directement sous forme de schéma. Pour les systèmes comportant des milliers ou des millions de fonctions, des méthodes de conception spécialisées deviennent indispensables.

Des outils informatiques permettent de simuler le fonctionnement du circuit avant sa fabrication. Ils vérifient les relations logiques, les temps de propagation et le comportement dans différentes conditions.

La description matérielle

Lorsque les circuits deviennent très complexes, leur fonctionnement peut être décrit à l'aide de langages de description matérielle. Ces langages permettent de représenter le comportement et la structure d'un système numérique sous une forme exploitable par les outils de conception.

Le concepteur peut ainsi décrire une opération, un registre, une machine à états ou l'organisation de plusieurs blocs sans dessiner individuellement chaque porte logique.

Les outils de synthèse transforment ensuite cette description en une réalisation matérielle constituée de fonctions logiques et de connexions adaptées à la technologie utilisée.

La réalisation physique

Une fois la conception validée, le circuit peut être transformé en une réalisation physique. Dans un circuit intégré, les fonctions logiques sont finalement construites à partir de transistors et de leurs interconnexions sur une puce de silicium.

Dans d'autres systèmes, les fonctions numériques peuvent être réalisées à l'aide de plusieurs composants reliés sur une carte électronique.

Le même raisonnement logique peut donc conduire à des réalisations physiques très différentes selon les contraintes de coût, de volume, de puissance, de vitesse et de quantité produite.

Les avantages du traitement numérique

La représentation binaire permet de reproduire et de transmettre une information avec une grande fiabilité. Tant que les niveaux électriques restent suffisamment éloignés des seuils de décision, de petites perturbations ne modifient pas la valeur logique reconnue.

Les données numériques peuvent également être copiées sans perte liée à la copie elle-même, stockées dans de grandes quantités de mémoire et traitées par des circuits programmables ou spécialisés.

Cette robustesse explique le développement de l'électronique numérique dans les systèmes informatiques, les télécommunications, l'automobile, l'industrie, les appareils multimédias et les équipements scientifiques.

De la logique élémentaire aux systèmes numériques

L'électronique numérique forme ainsi une chaîne de conception progressive. Les informations sont d'abord représentées sous forme binaire, puis manipulées par des règles logiques. Ces règles permettent de construire des fonctions combinatoires et séquentielles, qui sont ensuite regroupées en architectures de plus en plus complexes.

La conception moderne permet finalement de transformer une description logique en un ensemble physique de millions ou de milliards de transistors capables de traiter automatiquement des informations à très grande vitesse.

Les architectures de circuits

Un système numérique peut être constitué de quelques portes logiques ou de millions, voire de milliards de composants électroniques. Pour organiser cet ensemble, les circuits sont regroupés en blocs fonctionnels qui communiquent entre eux.

L'architecture d'un circuit décrit la manière dont ces différents blocs sont organisés, reliés et utilisés pour réaliser une fonction globale.

Une architecture permet donc de passer d'une collection de composants individuels à un système numérique structuré.

Des portes logiques aux blocs fonctionnels

Les portes logiques constituent les éléments de base des circuits numériques. En les associant, on obtient des circuits combinatoires et séquentiels. Ces circuits peuvent ensuite être regroupés pour former des blocs plus importants.

On peut ainsi construire progressivement :

  • des portes logiques ;
  • des circuits combinatoires ;
  • des circuits séquentiels ;
  • des blocs fonctionnels ;
  • des sous-systèmes ;
  • un système numérique complet.

Chaque niveau masque une partie de la complexité du niveau inférieur. Un bloc peut donc être utilisé sans avoir à représenter toutes les portes et tous les transistors qui le constituent.

Les blocs fonctionnels

Un bloc fonctionnel possède généralement des entrées, des sorties et parfois des signaux de commande.

Par exemple, un additionneur reçoit deux nombres binaires et produit un résultat. Un registre reçoit des données et les conserve. Un multiplexeur sélectionne une donnée parmi plusieurs entrées.

Chaque bloc possède donc une fonction précise et peut être associé à d'autres blocs.

Bloc A → Bloc B → Bloc C

La sortie d'un bloc peut devenir l'entrée d'un autre. Cette organisation permet de construire des circuits complexes à partir de fonctions plus simples.

Les entrées, les sorties et les signaux de commande

Les blocs d'un système numérique échangent plusieurs types d'informations.

  • les données, qui contiennent les informations à traiter ;
  • les signaux de commande, qui indiquent aux blocs ce qu'ils doivent faire ;
  • les signaux d'état, qui indiquent la situation actuelle d'un circuit ;
  • le signal d'horloge, lorsqu'il s'agit d'un système synchrone.

L'organisation de ces différents signaux constitue une partie essentielle de l'architecture d'un système.

Le chemin des données

Dans un système numérique, les données doivent circuler entre les différents blocs. L'ensemble des circuits permettant de transporter et de traiter ces données constitue le chemin des données, ou datapath.

Un chemin de données peut notamment contenir :

  • des registres pour stocker temporairement les données ;
  • des multiplexeurs pour sélectionner les données ;
  • des additionneurs et autres circuits arithmétiques ;
  • des circuits logiques ;
  • des comparateurs ;
  • des connexions permettant de relier les différents blocs.

Les données passent d'un bloc à l'autre selon l'organisation prévue par l'architecture.

La logique de commande

Le chemin des données ne suffit pas à faire fonctionner un système complexe. Il faut également déterminer quelle opération doit être effectuée et à quel moment.

Cette fonction est assurée par une logique de commande.

Elle produit des signaux permettant notamment de :

  • charger une donnée dans un registre ;
  • sélectionner une entrée d'un multiplexeur ;
  • choisir une opération ;
  • activer ou désactiver un bloc ;
  • autoriser une écriture en mémoire ;
  • déclencher une succession d'opérations.

Dans un système séquentiel, cette logique peut être réalisée sous la forme d'une machine à états.

Le chemin des données et la commande

Un système numérique complexe peut donc être séparé en deux grandes parties :

Chemin des données + Logique de commande

Le chemin des données effectue les traitements tandis que la logique de commande détermine comment ces traitements doivent être réalisés.

Cette séparation facilite la conception et l'analyse des architectures numériques.

Les connexions entre les blocs

Les différents blocs doivent être reliés par des connexions électriques permettant de transmettre les valeurs binaires.

Une connexion destinée à transporter un seul bit peut être représentée par une seule ligne. Pour transporter plusieurs bits simultanément, plusieurs lignes sont regroupées.

Un ensemble de lignes transportant plusieurs bits constitue un bus.

Le bus

Un bus est un ensemble de conducteurs utilisés pour transporter plusieurs signaux entre différents blocs d'un système numérique.

Un bus de 8 bits peut transporter huit bits simultanément :

10110110

Un bus de 16 bits transporte 16 bits, un bus de 32 bits 32 bits, et ainsi de suite.

La largeur d'un bus détermine donc la quantité de bits pouvant être transportée simultanément.

Le bus de données

Le bus de données transporte les valeurs numériques entre les différents blocs d'un système.

Un processeur peut par exemple utiliser ce bus pour transférer une donnée entre un registre et une mémoire.

La largeur du bus détermine le nombre de bits pouvant être transférés lors d'une opération.

Le bus d'adresses

Lorsqu'un système possède plusieurs emplacements de mémoire, il doit pouvoir indiquer précisément lequel doit être utilisé.

Le bus d'adresses transporte l'adresse de l'emplacement auquel le système souhaite accéder.

Avec n bits d'adresse, il est possible de représenter :

2n

adresses différentes.

Par exemple, un bus d'adresses de 8 bits permet de représenter 256 adresses différentes.

Le bus de commande

Le bus de commande transporte les signaux permettant de contrôler les échanges et les opérations du système.

Il peut notamment transporter des signaux indiquant :

  • une lecture ;
  • une écriture ;
  • une validation ;
  • une interruption ;
  • une synchronisation.

Les architectures réelles peuvent utiliser différentes organisations et différents ensembles de signaux selon leurs besoins.

Les architectures à bus partagé

Plusieurs blocs peuvent utiliser un même bus pour communiquer. Dans ce cas, il faut empêcher plusieurs blocs d'essayer de transmettre simultanément des données sur les mêmes lignes.

Une logique de commande détermine alors quel bloc possède temporairement le contrôle du bus.

Cette organisation permet de réduire le nombre de connexions nécessaires entre les différents blocs.

Les architectures point à point

Dans une organisation point à point, deux blocs disposent d'une liaison dédiée entre eux.

Cette solution permet une communication directe entre les deux blocs, sans partager la même connexion avec d'autres circuits.

Elle peut offrir de bonnes performances, mais le nombre de connexions augmente rapidement lorsque le nombre de blocs devient important.

Les architectures centralisées

Dans une architecture centralisée, un bloc principal coordonne une grande partie des opérations.

Les autres blocs reçoivent des commandes provenant de ce bloc central et lui transmettent leurs informations.

Cette organisation simplifie parfois le contrôle du système, mais elle peut aussi créer une dépendance importante envers le bloc central.

Les architectures distribuées

Dans une architecture distribuée, plusieurs blocs disposent d'une capacité de traitement et peuvent participer au fonctionnement global du système.

Les opérations sont alors réparties entre plusieurs unités qui communiquent entre elles.

Cette organisation est particulièrement adaptée aux systèmes comportant de nombreux modules indépendants.

Les architectures synchrones

Dans une architecture synchrone, les différents éléments du système utilisent généralement une horloge commune ou des horloges coordonnées.

Les opérations sont réalisées selon des étapes synchronisées.

À chaque événement d'horloge, les registres peuvent mémoriser de nouvelles valeurs et la logique combinatoire peut préparer les résultats nécessaires pour l'étape suivante.

Cette organisation permet de contrôler précisément l'évolution du système.

Les architectures asynchrones

Une architecture asynchrone ne repose pas nécessairement sur une horloge globale.

Les différents blocs peuvent évoluer lorsqu'un événement ou une donnée devient disponible.

La conception doit alors tenir compte avec précision des temps de propagation et des interactions entre les circuits.

Architecture parallèle

Une architecture parallèle utilise plusieurs circuits ou unités capables de travailler simultanément sur différentes parties d'une tâche.

Par exemple, plusieurs unités peuvent traiter plusieurs données en même temps.

Le traitement parallèle permet d'augmenter la quantité d'informations traitées pendant une même durée lorsque le problème peut être divisé en opérations indépendantes.

Architecture série

Dans une organisation série, les informations sont traitées ou transmises successivement.

Un seul chemin peut être utilisé pour transmettre les bits les uns après les autres :

1 → 0 → 1 → 1 → 0 → 0 → 1 → 0

Cette organisation nécessite moins de lignes de connexion qu'une transmission parallèle, mais les bits ne sont pas transportés simultanément.

Transmission série et transmission parallèle

Série Parallèle
Nombre de lignes de données Faible Plus élevé
Bits transmis simultanément Un ou petit nombre Plusieurs
Complexité des connexions Faible Plus importante

Le choix entre transmission série et parallèle dépend des contraintes de vitesse, de distance, de coût et de complexité du système.

Les architectures de mémoire

La manière dont les mémoires sont organisées constitue également une partie importante de l'architecture d'un système numérique.

Une mémoire peut être organisée sous la forme d'un ensemble de cellules adressables.

Chaque adresse correspond à un emplacement pouvant contenir une ou plusieurs valeurs binaires.

Pour accéder à une donnée, le système fournit une adresse et utilise les circuits de commande appropriés pour effectuer une lecture ou une écriture.

La mémoire et le processeur

Dans un ordinateur, le processeur doit pouvoir échanger rapidement des informations avec la mémoire.

L'architecture organise donc les connexions entre :

  • le processeur ;
  • la mémoire ;
  • les périphériques ;
  • les différents circuits de communication.

Les données, les adresses et les commandes circulent entre ces différents éléments selon les règles définies par l'architecture.

Les registres dans l'architecture d'un processeur

Les registres sont des zones de mémoire très rapides intégrées au processeur.

Ils peuvent conserver temporairement les données utilisées par les unités de traitement.

Certains registres contiennent des données, tandis que d'autres peuvent contenir une adresse, une instruction ou des informations décrivant l'état du processeur.

L'unité de traitement

Une architecture de processeur comporte généralement une ou plusieurs unités capables de transformer les données.

L'unité arithmétique et logique, ou ALU, réalise notamment des opérations arithmétiques et logiques.

Elle travaille avec les données fournies par les registres et produit un résultat qui peut ensuite être stocké dans un registre ou envoyé vers une autre partie du système.

L'unité de commande

L'unité de commande coordonne les différentes opérations du processeur.

Elle produit les signaux nécessaires pour sélectionner les données, commander les registres, choisir les opérations de l'ALU et organiser les transferts entre les différents blocs.

Dans un processeur, la combinaison de l'unité de commande, des registres, de l'ALU et des circuits de communication forme une architecture capable d'exécuter des opérations complexes.

Le traitement par étapes

Une opération complexe peut être divisée en plusieurs étapes successives.

Dans un processeur, une instruction peut par exemple nécessiter :

  • la récupération de l'instruction ;
  • son interprétation ;
  • la récupération des données nécessaires ;
  • l'exécution de l'opération ;
  • le stockage du résultat.

Chaque étape utilise différents blocs du circuit et peut être synchronisée par l'horloge.

Le pipeline

Pour augmenter les performances, certaines architectures divisent le traitement en plusieurs étapes qui peuvent fonctionner en parallèle.

Cette organisation est appelée pipeline.

Pendant qu'une instruction est exécutée dans une étape, une autre peut être préparée dans l'étape précédente.

Le principe ressemble à une chaîne de production : plusieurs opérations sont en cours simultanément, mais à des étapes différentes.

Les architectures multicœurs

Un processeur peut intégrer plusieurs cœurs de calcul.

Chaque cœur possède ses propres unités de traitement et ses registres, tout en partageant certaines ressources avec les autres cœurs.

Plusieurs tâches ou parties d'un même programme peuvent alors être exécutées simultanément lorsque le logiciel et l'architecture permettent cette répartition.

Les circuits spécialisés

Une architecture peut être conçue pour une fonction très précise. On parle alors de circuit spécialisé.

Un circuit spécialisé peut être optimisé pour effectuer une tâche particulière avec une grande rapidité ou une faible consommation d'énergie.

Les systèmes numériques utilisent ainsi des architectures différentes selon leur objectif : traitement général, calcul scientifique, traitement graphique, communication, contrôle industriel ou traitement de signaux.

Les circuits programmables

Certains circuits peuvent être configurés pour réaliser différentes fonctions. Un FPGA, par exemple, contient de nombreux éléments logiques et de nombreuses connexions programmables permettant de construire une architecture numérique adaptée à une application.

Le même composant physique peut ainsi être configuré pour réaliser des architectures très différentes.

L'architecture d'un système numérique complet

Un système numérique complexe associe généralement plusieurs niveaux d'organisation.

On peut retrouver :

  • des portes logiques et des éléments de mémoire ;
  • des fonctions combinatoires et séquentielles ;
  • des registres et des unités de traitement ;
  • des circuits de commande ;
  • des bus et des interfaces ;
  • des mémoires ;
  • des périphériques ou autres systèmes externes.

Tous ces éléments communiquent selon une organisation définie par l'architecture du système.

La hiérarchie des circuits

L'architecture numérique repose donc sur une hiérarchie. Un circuit complexe est construit à partir de blocs plus simples, eux-mêmes construits à partir de circuits élémentaires.

Transistors → Portes → Circuits → Blocs → Sous-systèmes → Système

Cette hiérarchie permet de concevoir des systèmes extrêmement complexes tout en conservant une représentation compréhensible de leur fonctionnement.

Le choix d'une architecture

Il n'existe pas une architecture unique adaptée à toutes les applications. Le choix dépend notamment de la vitesse, de la consommation, de la quantité de données à traiter, de la mémoire disponible, du coût et de la complexité souhaitée.

Une architecture très rapide peut nécessiter davantage de circuits et consommer davantage d'énergie. Une architecture plus simple peut être moins coûteuse et moins énergivore, mais offrir des performances plus limitées.

La conception d'un système numérique consiste donc à organiser les circuits de manière à obtenir le meilleur compromis entre les différentes contraintes de l'application.

↑ Retour en haut

Jeux