Circuits intégrés
Un circuit intégré (CI) (aussi appelé puce électronique), est un composant électronique, basé sur un semi-conducteur, reproduisant une, ou plusieurs, fonction(s) électronique(s) plus ou moins complexe(s). Ils intègrent souvent plusieurs types de composants de base dans un volume réduit (sur une petite plaque), rendant le circuit facile à mettre en œuvre.
On peut notamment y intégrer des microprocesseurs …
En 1975, Gordon E. Moore (cofondateur de la société Intel) énonça :
Dans les microprocesseurs, le nombre de transistors sur une puce va doubler tous les deux ans.
Il fondait sa prédiction sur le constat (empirique) de l’évolution effective relevée entre les années 1965 et 1975. Et pourtant, elles s’est avérée exacte :
Aujourd’hui, la taille d’un transistor n’est que de 7 nanomètres (processeurs Intel par exemple) à 3 nm (processeurs de smartphone), soit la taille de quelques dizaines d’atomes de silicium !
Cette réduction de taille entraine de nombreuses conséquences, dont plusieurs avantages :
- augmentation possible de la fréquence de fonctionnement (car réduction des distances entre les composants),
- baisse de la tension d’alimentation et donc de la consommation énergétique,
- baisse des coûts (en rassemblant plusieurs composants sur une même puce).
Il est de venu aujourd’hui possible de rassembler sur une même puce tous les composants essentiels au fonctionnement d’un système embarqué (microprocesseurs, mémoires, interfaces, …). On appelle ces circuits « complets » des microcontrôleurs, des systèmes sur puce ou des circuits logiques programmables.
Microcontrôleur
Un microcontrôleur (μc ou MCU – MicroController Unit) rassemble sur une seule puce (ou circuit intégré) tous les composants nécessaires d’un ordinateur :
- microprocesseurs (CPU, GPU, …)
- mémoires (RAM, flash, …)
- ports d’entrée/sortie
- bus de communication
- …
Les microcontrôleurs sont conçus pour des systèmes embarquées (contrairement aux microprocesseurs utilisés dans les ordinateurs personnels) pour des applications en « temps réel ».
Exemples : systèmes de contrôle des moteurs automobiles, implants médicaux, télécommandes, jouets, téléphonies mobile, …
En réduisant la taille et le coût par rapport à une conception à circuits séparés, les microcontrôleurs rendent économique le contrôle numérique d’un nombre encore plus important de dispositifs et de processus.
Dans le contexte de l’internet des objets (internet of things), les microcontrôleurs sont un moyen économique et populaire de collecte de données, de détection et d’actionnement du monde physique en tant que dispositifs de pointe.
Les rôles des microcontrôleurs sur les systèmes embarqués sont très spécifiques, mais tous ces systèmes partagent les mêmes besoins :
- acquisition de données (grandeurs physiques, états des systèmes, …),
- contrôle de processus (actions mécaniques ou électroniques)
- avec de fortes contraintes temporelles (temps de réponse, synchronisations, interruptions, …)
Exemple : régulateur de vitesse sur un véhicule
-
- acquisition de la vitesse de la voiture (grâce à un capteur externe),
- contrôle de l’accélération (voire du freinage) du véhicule par envoi d’ordres aux actionneurs externes,
- temps de réponse réduit pour garantir la sécurité.
Architecture : Harvard
Dans un système embarqué, le programme n’est pas amené à changer : il est par conséquent stocké dans une mémoire morte et déjà présent à la mise sous tension.
Lorsqu’un système informatique utilise deux types de mémoires différentes pour stocker le programme et les données, on dit qu’il suit une architecture de Harvard (contrairement au modèle de Von Neumann utilisé par les ordinateurs).
Remarque : il existe parfois un troisième bus, appelé bus de contrôle, chargé de différentes opérations : demandes d’interruptions, …
On rencontre différents types de mémoire morte :
- ROM : dont le contenu est défini lors de la fabrication,
- EPROM, EEPROM, … (P pour Programmable) : qui sont effaçables et programmables par l’utilisateur,
- FLASH : possédant des caractéristiques proches des mémoires vives, mais non volatile.
La mémoire des données peut être elle-même composées de différents types de mémoire, morte et vive.
Les avantages d’une telle architecture, grâce à ses bus distincts, sont nombreux :
- accès concurrent (en même temps) aux différentes mémoires
- mots de données et mots d’instructions de tailles différentes (ce qui permet d’optimiser l’espace, en fonction des applications)
Les microcontrôleurs basés sur une architecture de Harvard ont un jeu d’instruction réduit (RISC – Reduced Instruction Set Computer), ce qui simplifie l’architecture, mais rend plus compliquées certaines opérations. Typiquement, on y rencontre :
- beaucoup moins d’instructions mathématiques complexes
- plus d’instructions pour des opérations sur les bits de donnée
- plus d’instructions d’entrée-sortie
Logiciel
Le logiciel embarqué et stocké dans la mémoire morte est appelé micrologiciel (ou firmware, « firm » pour « ferme », entre « soft » de software, le logiciel, et « hard » de hardware, le matériel). Il est toujours identique pour une application donnée.
Un microcontrôleur ne possède pas de système d’exploitation (OS) : cela demanderait trop de ressources mémoire et serait incompatible avec les exigences de travail en temps réel (interruptions et enchaînement des tâches par les commandes OS)
Le micrologiciel peut être écrit dans des langages évolués (C, C++, BASIC stamp, G, …). Il doit être compilé, puis envoyé dans la mémoire morte du microcontrôleur, soit à l’aide d’un appareil tiers (un programmeur), soit par programmation in-situ (In-System Programming ou ISP), technique qui permet de programmer un microcontrôleur alors qu’il est déjà en place dans le système électronique.
Périphériques
Les périphériques dont sont équipés les microcontrôleurs sont de natures très différentes :
- compteurs ou timers (compteurs d’impulsions d’horloge interne ou d’événements externes)
- convertisseurs analogique ↔ numérique
- générateurs de signaux (PWM, PPM, …)
- contrôleurs de bus de communication (UART, I2C, ISP, CAN, FlexRay, USB, …)
- …
Système sur puce
Un système sur puce (System on Chip – SoC), comme le microcontrôleur, rassemble sur une seule puce (circuit intégré) de nombreux composants :
- des microprocesseurs (principal, graphique, …)
- des mémoires (RAM, flash, …)
- des périphériques d’interface (Wifi, BlueTooth, …)
- des capteurs (GPS, …)
Présent sur les systèmes nomades (smartphone, tablettes, …) et dans les systèmes embarqués (voitures, robots, …), ils disposent de nettement plus de puissance de calcul que les microcontrôleurs et sont équipés de périphériques de plus haut niveau.
Moins puissants que les ordinateurs avec carte mère, ils présentent néanmoins de nombreux avantages :
- Faible consommation énergétique : composants plus proches, donc moins de câblage
- Faible coût de production : l’automatisation est favorisée par la compacité du système
- Plus grande sécurité : la conception globale (matériel et micrologiciel) interdit l’ajout ou l’échange de composants
En revanche, il devient impossible de remplacer un composant défectueux (mémoire, périphérique, …) , comme on le ferait sur la carte mère d’un ordinateur de bureau.
Architecture : Von Neumann
Les systèmes sur puce ne suivent pas l’architecture de Harvard : les programmes peuvent être chargés dans la même mémoire que les données, respectant ainsi le modèle de von Neumann.
Leurs processeurs sont cadencés à une fréquence élevée (plusieurs gigahertz). Cela a plusieurs conséquences :
- les échanges entre les processeurs et les périphériques, nettement plus lents, impose l’emploi d’un bus séparé, afin qu’ils ne deviennent pas des goulots d’étranglement en obligeant le CPU d’attendre une réponse. Les SoC sont donc moins adaptés pour des applications en temps réel.
- le dialogue entres les processeurs et la mémoire passe par un autre bus à haute performance
- le dialogue entre les périphériques et la mémoire passent par un dispositif d’accès direct (DMA – Direct Memory Access), qui permet des échanges sans passer par le CPU.
De plus les échanges entre les processeurs et la RAM, plus lente, est optimisée à l’aide de dispositifs de cache.
Au sein du CPU, on peut rencontrer des circuits dédiés à des tâches particulières :
- FPU (Floating Point Unit) : dédié au calcul en virgule flottante,
- ML (Machine Learning) : calcul matriciel pour algorithmes d’apprentissages,
- Cryptographie : dédiés au chiffrage des données,
- Reconnaissance (faciale, digitale, … ),
- Réalité augmentée,
- Analyse temps réelle d’image pour appareils photo,
- …
Parmi les périphériques, on rencontre fréquemment :
- des circuits de communication radio (2G/3G/4G, WiFi, Bluetooth, …)
- des capteurs (MEMS, photo, …)
- des circuit de positionnement par satellite (GPS, Galileo, …)
- des ports d’entrée/sortie (USB, Ethernet, HDMI, audio, …)
- …
Contrôleur DMA
L’accès direct à la mémoire (Direct Memory Access – DMA) est un dispositif permettant le transfert de donnée entre un périphérique (lent) et la mémoire principale de la machine (rapide), sans intervention du microprocesseur. Ainsi, le microprocesseur n’est pas obligé d’attendre chaque donnée.
L’Apple A13 Bionic est doté d’un processeur 64 bits à six cœurs, avec deux cœurs haute performance fonctionnant à 2,65 GHz et quatre cœurs à faible consommation d’énergie.
L’A13 intègre :
- une unité de traitement graphique (GPU) à quatre cœurs.
- des accélérateurs d’apprentissage machine (ML) appelés blocs AMX.
- un moteur neuronal à huit cœurs
Finesse de 7 nm, 8,5 milliards de transistors.
Autres exemples de SoC :
- Samsung Galaxy S11 : Exynos 990
- Nintendo Switch : Nvidia Tegra
- Rasberry Pi : BCM2711 (société Broadcom)
Sources :
http://www.nsi-terminale.fr/
https://fr.wikipedia.org/wiki/Microcontrôleur