L'électronique numérique : Les architectures de circuits - Quiz
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.