Table des matières
I. Microprocesseurs Microcontrôleurs et SoC
1. Similarités ? Différences ?
2. Éléments en commun
a. Régulateurs
b. Un cristal
c. Condensateur de découplage
d. Les multicœurs
3. Les microcontrôleurs
a. Définition
b. Phase de démarrage
c. Éléments constitutifs
4. Les SoC (System on Chip)
a. Présentation
b. Un exemple le SoC A14 d’Apple
5. Autre type de processeur les GPU
6. Microcontrôleur et carte de prototypage
a. À surtout à ne pas confondre !!
b. Exemple de l’Arduino
Dans cette partie, nous allons comparer les microcontrôleurs, SoC (Systèmes sur Puces) d’un microprocesseur.
Similarités ? Différences ?
Similarités : ce sont tous des puces, ou circuits intégrés, qui est constitué d’un microprocesseur.
Les différences ? Avec un tableau, c’est mieux :
Microcontrôleurs | SoC (Système sur Puce) |
|
Puissance de calculs |
Faible | Importante |
Fréquence d’horloge |
De l’ordre des dizaines de méga-Hertz (MHz) |
Plutôt giga Hertz (GHz) donc 80/200 fois plus rapide |
Mémoire | Kilo-octets (ko) | Mégaoctets (Mo) : 100 fois supérieur |
Taille des registres |
8, 16, voire 32 bits | 32 ou 64 bits |
Consommation | Faible, voire très faible | Faible |
Coût | 1-3 € | 3-10 € |
Convertisseur analogique numérique |
Souvent présent | Rarement |
Fonctionnalités temps réel |
Souvent | Rarement |
Fonctionne avec un système d’exploitation (Windows/Linux) |
Jamais | Toujours |
RISC ou CISC |
RISC | Plutôt RISC |
Éléments en commun
Pour fonctionner, un microcontrôleur a besoin de :
Régulateurs
Un régulateur de tension va fournir à la carte et à ses broches, une tension fixe malgré les fluctuations de la tension d’entrée qui peut être 5 volts, 3.3 V …
Souvent, on trouve des régulateurs un pour chacune des tensions.
Un cristal
C’est une horloge qui va cadencer le microcontrôleur.
Condensateur de découplage
C’est un condensateur de découplage de l’alimentation placé au plus près des broches du microcontrôleur : il permet d’éliminer les petites variations du courant.
Imaginons une microcoupure, la broche est toujours alimentée à Vcc car le condensateur se décharge dans le microcontrôleur.
Les multicœurs
Les systèmes à plusieurs cœurs permettent de traiter simultanément, en parallèle, plusieurs tâches. Le gain par rapport aux systèmes multiprocesseurs est un gain énergétique et financier : moins cher de fabriquer un processeur à deux cœurs que deux processeurs avec une consommation électrique deux fois plus importante.
Ce système à multicœurs n’est pas réservé aux gros processeurs somme le Xeon Phi d’Intel, il est utilisé dans les ESP32 ou la Raspberry Pi Pico.
Les microcontrôleurs
Définition
Un microcontrôleur est un circuit intégré comprenant au moins un microprocesseur, des mémoires et ports d’entrée-sortie … Ce qui le caractérise vraiment des microprocesseurs, c’est leurs faibles consommations. Ainsi ils peuvent être alimentés par simple batterie. Pour terminer, leur coût est très faible.
Ils sont utilisés essentiellement sur les systèmes embarqués tels que les téléphones, les robots, les avions, les lecteurs de DVD, injecteur de voiture…
Le choix d’un microcontrôleur dépend de la complexité de système embarqué : un 8 bits pour des petits appareils électronique jusqu’à 32 bits pour les plus complexes comme les téléphones.
Bien sûr plus le composant est complexe, plus il est cher et consomme de l’énergie.
Les caractéristiques fréquentes que l’on trouve chez les microcontrôleurs sont :
- Fréquence de l’horloge : 10, 20,30 MHz
- Mémoire : se compte en ko rarement en Mo
Ces limitations sont un obstacle à l’installation d’un système d’exploitation comme Linux et pour les programmer il est impossible de le faire directement dessus. Pour cela on utilise un cross-compilateur (compilateur croisé) sur, par exemple un PC, qui va fournir un code machine pour le microcontrôleur cible.
En général, c’est l’architecture avec deux bus, un pour les données l’autre pour la mémoire qui est utilisée : celle de Harvard.
Phase de démarrage
Tout simplement, le microcontrôleur exécute au démarrage le programme contenu dans sa mémoire.
Une particularité, c’est qu’il existe souvent la possibilité d’une remise à zéro par l’intermédiaire d’une broche ou d’un bouton-poussoir.
Éléments constitutifs
En règle générale, on peut trouver :
Convertisseurs analogiques-numériques (CAN)
Il permet la conversion d’une tension électrique en binaire.
Ce besoin est assez courant dans les systèmes embarqués par exemple pour récupérer une valeur analogique d’un capteur de températures.
Convertisseurs numériques-analogiques (CNA)
Ils effectuent l’opération inverse.
Générateurs de signaux à modulation de largeur d’impulsion PWM ou RLI.
Timers
Ce sont des horloges interne ou d’événements externes).
Contrôleurs de bus de communication
Suivant les types (UART, USB, CAN, I2C etc.).
A noter qu’en raison des droits détenus par Philips sur le nom I2C, certains fabricants utilisent le terme Two Wire Interface (TWI).
Les mémoires
On trouve essentiellement :
- ROM
- EEPROM
- FLASH
Les SoC (System on Chip)
Ou Système sur Puce.
Ce type de carte à processeur se trouve dans de nombreux utilisés tous les jours :
- Toutes les Raspberry Pi
- iPhone et assimilé
- Tous les téléphones portables et tablette
Les fabricants de SoC les plus connus sont : Apple, Huawei, Intel, MediaTek, Qualcomm ou Samsung.
Présentation
On pourrait dire que ce sont des microcontrôleurs survitaminés : microprocesseur cadencé à plusieurs centaines de MHz 32 ou 64 bits, un GPU, de la RAM, de la cache, des modems, GPS, USB, WIFI, des modules de cryptographie, d’IA … Bref un ordinateur dans un circuit imprimé.
Plus généraliste, les SoC utilisent plutôt l’architecture de Von Neumann où l’accès à la mémoire (ROM, RAM ou FLSH) et aux périphériques se fait par le même bus.
Avec une particularité toute fois : l’utilisation de deux types de bus :
- Un bus haute performance (appelée ASH AHB ) qui relie le processeur avec la mémoire ou le GPU à une vitesse maximale
- Un bus basse performance (appelée APB) qui relie le processeur à travers un pont, les périphériques plus lentes
En effet, la fréquence d’horloge est tellement importante, qu’il est ralenti lorsqu’une connexion avec un périphérique est en jeu (goulot d’étranglement).
Pour assurer une haute performance, un SoC est toujours équipé d’un cache et du DMA.
Un exemple le SoC A14 d’Apple
Source :
En ce début d’année 2021, on peut dire que c’est la Rolls du SoC :
- 134 millions de transistors par millimètre carré
- Un CPU 64 bits six cœurs :
- Deux rapides Firestorm
- Quatre plus petits et plus lentes Icestorm
- Un processeur dédié à l’IA (réseau de neurones, reconnaissance faciale et réalité augmenté) de 16 cœurs, NPU,
- Un processeur graphique GPU à 4 cœurs
- 16 Mo RAM
- Des caches : System Cache L1i de 128 Ko, Small L2 de 68 Ko et Big L2
Autre type de processeur les GPU
Ces processeurs sont ceux ayant le plus grand nombre de cœurs : 5120 !!! pour le Tesla V100 de chez NVidia.
Attention, on ne peut pas comparer des GPU avec des processeurs multicœurs : les premiers sont des processeurs spécialisés en traitement d’images (calculs graphiques, rendu 3D, textures, vidéos) où le parallélisme massif est possible tandis que les seconds sont conçus pour toutes type d’applications.
Mais, les GPU ont d’excellents résultats en intelligente artificielle (IA) et en apprentissage en profondeur (deeplearning).
Microcontrôleur et carte de prototypage
A surtout à ne pas confondre !!
Des microprocesseurs implantés sur de cartes sont utilisés pour la mise au point et le développement de maquette. Elles sont appelées Cartes de prototypage ou kit de dévoppement : c’est le cas de l’Arduino sur lequel on trouve un Atmega328p et la nucléo board , un ARM Cortex.
Exemple de l’Arduino
- Premier niveau : soit la carte Arduino qui contient
- Seconde niveau : un microcontrôleur l’Atmel qui est composé d’un
- Troisième niveau : microprocesseur
Premier niveau la carte Arduino
Second niveau le microcontrôleur
Troisième niveau le processeur
a) Quatrième niveau
A l’intérieur du microprocesseur se trouve : ALU, les registres, le PC …