Qu’est-ce qu’un microprogramme ?

Photo aérienne de personnes utilisant des appareils informatiques
Mesh Flinders

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

Qu’est-ce qu’un microprogramme ?

Un microprogramme, également appelé « logiciel pour le matériel », est un code informatique intégré dans les dispositifs matériels pour assurer leur bon fonctionnement. Les microprogrammes sont régulièrement mis à jour pour apporter des correctifs aux problèmes courants, ajouter ou étendre des fonctionnalités, ou encore améliorer la compatibilité de l’appareil avec de nouvelles technologies. 

De nombreux appareils tels que les téléviseurs, les appareils photo, les téléphones portables, les imprimantes ou encore les lecteurs, ont besoin d’un microprogramme pour fonctionner. Ce dernier est situé dans la mémoire non volatile de l’appareil, où le contenu peut être stocké lorsque ce dernier est éteint. Le microprogramme peut être écrit sur différents types de mémoire comme la mémoire vive (RAM), la mémoire en lecture seule (ROM), la mémoire en lecture seule programmable effaçable (EPROM) et la mémoire flash.  

Les microprogrammes aident les appareils à remplir les fonctions prévues de plusieurs manières importantes, notamment en fournissant des instructions sur la manière dont l’appareil doit démarrer, interagir avec les autres appareils, tels que les routeurs Internet ou les télécommandes, et effectuer les tâches d’entrée/de sortie critiques (E/S). De nombreux fabricants de dispositifs matériels tels qu’Apple, LG Electronics et Microsoft, intègrent les microprogrammes dans leurs produits afin qu’ils fonctionnent comme le système d’exploitation (OS) d’un ordinateur.

Le terme « micrologiciel » aurait été utilisé pour la première fois par le scientifique américain Ascher Opler en 1967 pour décrire un programme qui, selon lui, se situe à mi-chemin « entre le matériel et les logiciels1 ». Aujourd’hui, les microprogrammes sont un élément essentiel de nombreux appareils, présent sur votre iPhone, Mac ou télécommande, mais aussi sur les capteurs complexes de l’Internet des objets (IdO) au niveau des satellites et des voitures autonomes. Bien que les microprogrammes et les logiciels soient similaires, il existe des différences importantes à prendre en compte pour évaluer l’adéquation avec un besoin métier.

Microprogramme et logiciel

La façon la plus simple de comprendre la différence entre les microprogrammes et les logiciels réside dans leurs objectifs spécifiques : alors que les microprogrammes ont été conçus pour aider les appareils à démarrer et à communiquer entre eux, les logiciels sont principalement utilisés pour l’interaction. Le micrologiciel permet de contrôler les appareils grand public, tels que les téléphones et les téléviseurs. Les fabricants mettent fréquemment à jour les microprogrammes pour ajouter de nouvelles fonctionnalités, améliorer la sécurité et se protéger contre les vulnérabilités. Comme le savent tous les utilisateurs de téléphones Android ou iOS, ou même de téléviseurs intelligents et de consoles de jeux, les mises à jour des versions du micrologiciel doivent être téléchargées et installées régulièrement, sans quoi les performances de l’appareil s’en trouveront affectées.

Le logiciel, quant à lui, est installé sur un appareil pour améliorer l’interaction de l’utilisateur avec des activités telles que la navigation sur Internet, la consultation des e-mails, le traitement de texte, le visionnage de vidéos, la diffusion de musique en continu, etc. Le logiciel n’est pas aussi étroitement lié au matériel que le microprogramme, et a besoin de ce dernier pour communiquer avec le matériel auquel il fournit les fonctions.

Pourquoi le microprogramme est-il important ?

Les micrologiciels sont essentiels au bon fonctionnement des appareils que nous tenons pour accorder dans notre travail et notre vie personnelle, tels que les ordinateurs personnels (PC), les smartphones, les consoles de jeu, etc. La plupart des utilisateurs de ces appareils connaissent bien le micrologiciel grâce à des « mises à jour de micrologiciels » fréquentes, nécessaires pour assurer le bon fonctionnement de leurs appareils. 

Les mises à jour des microprogrammes, qui sont composées de code informatique, sont souvent publiées pour corriger les menaces pouvant avoir un impact sur la performance des appareils, telles que les bogues ou les piratages. Mais elles peuvent également être publiées pour ajouter une nouvelle fonctionnalité à un appareil, comme un moyen d’interagir avec un nouveau type de média. Parmi les mises à jour de microprogramme, citons l’ajout de fonctionnalités de sécurité à un routeur Internet, l’amélioration de la fonction de navigation d’une application de streaming vidéo, ou encore la mise à jour du système d’exploitation qui permet à la carte système des ordinateurs de prendre en charge un nouveau type de processeur.

Étant donné qu’aujourd’hui, la plupart des appareils sont connectés à Internet, le téléchargement des mises à jour à distance, ou « over the air », permet désormais aux fabricants de publier les mises à jour des microprogrammes. La plupart programment la capacité à mettre à jour le microprogramme, et l’utilisateur reçoit simplement une notification. D’autres appareils exigent toujours que les utilisateurs se rendent sur le site Web du fabricant pour télécharger le code nécessaire. La fréquence des mises à jour du microprogramme dépend du type d’appareil pour lequel il a été conçu. Les smartphones, par exemple, combinent généralement les mises à jour des microprogrammes et des logiciels pour assurer leur bon fonctionnement (système d’exploitation compris).

Prévenir les attaques visant les microprogrammes

Parce que les microprogrammes sont essentiels au bon fonctionnement d’un grand nombre d’appareils importants, ils sont devenus une cible privilégiée des pirates informatiques. Les périphériques matériels qui reposent sur un microprogramme présentent de nombreuses vulnérabilités, car ils utilisent fréquemment le même code. Les ordinateurs portables, par exemple, qui contiennent souvent des informations professionnelles sensibles, s’appuient sur le microprogramme pour alimenter leur batterie, leurs cartes son et vidéo, leur webcam et bien plus encore, ce qui en fait des cibles particulièrement attrayantes. 

Le piratage de microprogramme implique souvent le déploiement d’un logiciel malveillant, c’est-à-dire un code qui a été écrit pour nuire au système d’un ordinateur ou à l’utilisateur en se reliant au micrologiciel. Les types de logiciels malveillants les plus courants sont les rançongiciels, qui prennent en otage les données de l’utilisateur, les chevaux de Troie, qui échappent à la détection en se faisant passer pour un programme légitime, et les logiciels espions, qui volent des informations sensibles concernant l’utilisateur. Les pirates ont rarement besoin d’accéder physiquement à la machine pour l’exploiter. Ils peuvent y accéder à distance par le biais d’une connexion Bluetooth ou Wi-Fi, de plus en plus populaires à mesure que le nombre d’appareils disposant d’une connexion Internet augmente. 

Des mauvaises fonctionnalités de sécurité des microprogrammes peuvent entraîner le vol ou la compromission des données sensibles des utilisateurs, et permettre à des acteurs malveillants de prendre le contrôle à distance sur la machine d’un utilisateur. Par exemple, en juin 2024, Google a émis un avertissement indiquant qu’un problème lié au firmware de son Pixel le rendait vulnérable aux attaques et qu’il n’existait aucun correctif connu2.

Les entreprises, de plus en plus conscientes du risque de vulnérabilité des microprogrammes, prennent des mesures accrues pour empêcher l’exploitation de leurs systèmes en raison des nombreux avantages de ces microprogrammes. 

Avantages des microprogrammes

Performances améliorées sans nouveau matériel : les mises à jour des microprogrammes permettent aux appareils d’acquérir de nouvelles capacités sans modifier l’appareil ni son architecture. De nombreuses mises à jour de micrologiciel améliorent les temps d’exécution et d’instruction du code sous-jacent d’un appareil et contribuent à optimiser ses performances.

Expérience utilisateur améliorée : les mises à jour des microprogrammes offrent aux utilisateurs de nouvelles fonctionnalités, des programmes informatiques et des fonctions pour les activités dont ils dépendent, telles que la consultation du solde de leurs comptes, l’enregistrement d’une émission sur leur Smart TV ou la liste des courses à acheter en connectant leur réfrigérateur intelligent à une application via les capacités IdO.

Résolution accélérée : les mises à jour des microprogrammes permettent de résoudre rapidement de nombreux problèmes courants, notamment les temps de démarrage et de traitement, les fonctions multitâches et la compatibilité avec les appareils externes.

Fonctions des composants : les mises à jour des microprogrammes permettent de garantir que tous les composants périphériques d’un appareil, tels que les haut-parleurs et les microphones d’un smartphone, fonctionnent comme il se doit, permettant à l’appareil de fonctionner de manière optimale.

Réduction des coûts de réparation : maintenir à jour le microprogramme des appareils permet de réduire la probabilité qu’ils soient infectés par des bogues et qu’ils nécessitent des correctifs ou des réparations coûteuses.   

Comment fonctionne un microprogramme ?

Le microprogramme est installé sur l’appareil au cours de sa fabrication. Principalement, il facilite la communication entre le système d’exploitation et le matériel de l’appareil. Le microprogramme contient de nombreuses instructions qui sont essentielles au bon fonctionnement de l’appareil. L’unité centrale de traitement (CPU) de l’ordinateur, l’endroit où l’entrée (données) est transformée en sortie (informations), récupère le microprogramme dans la mémoire de l’ordinateur et l’exécute.

Les micrologiciels sont utilisés sur de nombreux appareils que nous utilisons tous les jours. Son cas d’utilisation le plus courant est peut-être la veille d’un appareil après une longue période d’inactivité.  Une fois que vous êtes endormi, par exemple, et que vous avez regardé votre téléphone pour vérifier vos messages, le micrologiciel vous aide à savoir si votre appareil fonctionne correctement. Pour conserver les informations lorsqu’elles ne sont pas utilisées, un appareil stocke le micrologiciel dans sa mémoire « non volatile ». Au fur et à mesure que la complexité des tâches requise a augmenté, le micrologiciel a adopté certaines des caractéristiques du matériel informatique, à savoir l’utilisation de la mémoire flash et d’un système d’entrée/sortie de base, ou BIOS.

Mémoire flash et BIOS

Étant donné que de nombreux appareils doivent conserver des informations lorsqu’ils sont éteints, les micrologiciels stockent généralement les données dans la mémoire « non volatile » ou « en lecture seule » (ROM) d’un système, également appelée mémoire flash. Ce type de mémoire est utilisé dans un large éventail d’appareils portables tels que les clés USB, les smartphones, les appareils photo numériques, les ordinateurs portables, etc., et il est essentiel aux fonctions du micrologiciel. 

Depuis peu, la mémoire flash offre les mêmes capacités que les ordinateurs. Par exemple, lorsqu’un ordinateur démarre, il passe par une séquence connue sous le nom de système d’entrée/sortie de base, ou BIOS. Le premier micrologiciel à exécuter une séquence BIOS utilisait une puce ROM, mais les systèmes sont maintenant passés à l’utilisation de la mémoire flash pour le BIOS, afin que les données puissent être réécrites sans que la puce ait besoin d’être retirée de la carte système et réinsérée une fois qu’elle a été reprogrammée.

Types de microprogramme

Outre les changements dans la manière dont les microprogrammes utilisent et stockent la mémoire, les types de microprogrammes mis à la disposition des utilisateurs ont également évolué. Aujourd’hui, les microprogrammes peuvent être classés en trois groupes principaux, définis par leur architecture : 

  • Microprogramme de bas niveau
  • microprogramme de haut niveau 
  • microprogramme du sous-système

Microprogramme de bas niveau

Les microprogrammes de bas niveau sont intrinsèques au matériel de l’appareil et sont stockés sur des puces non volatiles, en lecture seule, comme la ROM, qui ne peuvent pas être mises à jour. Les appareils qui s’appuient sur un microprogramme de bas niveau utilisent une mémoire qui ne peut être écrite qu’une seule fois et jamais reprogrammée.

Microprogramme de haut niveau

Les microprogrammes de haut niveau sont des microprogrammes qui ne peuvent pas être mis à jour en raison de la complexité de leur matériel. Dans un ordinateur, le microprogramme de haut niveau, contenu dans des puces de mémoire flash, est chargé de tâches plus avancées que celles des microprogrammes de bas niveau. Les microprogrammes de haut niveau contiennent des instructions importantes sur le fonctionnement de l’appareil et l’interaction de ses différents composants.

Microprogramme de sous-système

Le microprogramme du sous-système est contenu dans ce que l’on appelle un « système embarqué », c’est-à-dire une combinaison matériel-logiciel conçue pour une utilisation ou une tâche donnée. Les microprogrammes de sous-système sont similaires aux microprogrammes de haut niveau en termes de complexité et d’adaptabilité. Comme les microprogrammes de haut niveau, les microprogrammes de sous-système peuvent être facilement mis à jour.

Applications des microprogrammes

Le micrologiciel est utilisé dans un large éventail d’appareils critiques à la transformation numérique, et a donc de nombreuses applications utiles pour l’entreprise moderne. Voici quelques-unes des utilisations les plus courantes des micrologiciels dans l’entreprise :

  • ordinateurs personnels (PC)
  • stockage de données 
  • smartphones
  • voitures
  • Appareils Internet des objets (IdO)

Ordinateurs personnels

Les ordinateurs personnels (PC) s’appuient sur un micrologiciel pour conserver les données critiques lorsqu’ils sont éteints, ainsi que sur les spécifications BIOS et Unified Extensible Firmware Interfaces (UEFI) pour l’interface logicielle entre un système d’exploitation et un micrologiciel. En général, ces fonctionnalités sont intégrées sur une puce de mémoire sur la carte système d’un ordinateur. En outre, les composants PC courants, tels que les cartes graphiques et les cartes vidéo, reposent également sur des micrologiciels pour fonctionner.

Dispositifs de stockage des données

Les clés USB, les disques durs externes et autres périphériques de stockage de données portables nécessitent un micrologiciel pour fonctionner. Le micrologiciel est intégré aux puces de mémoire flash sur lesquelles s’appuient de nombreux périphériques de stockage de données modernes et peut être mis à jour facilement contrairement aux micrologiciels contenus dans la ROM ou l’EPROM. 

Smartphones

Le fonctionnement des smartphones repose en grande partie sur les microprogrammes. Les microprogrammes permettent non seulement de s’assurer que le smartphone démarre après un certain temps d’inutilisation, mais aussi que les composants critiques interagissent les uns avec les autres comme prévu. Enfin, pour que les correctifs, les fonctions de sécurité et les nouvelles capacités du smartphone fonctionnent comme prévu, les mises à jour du microprogramme doivent être téléchargées régulièrement sur Internet.

Voitures

De nombreuses voitures conçues au cours des dix dernières années sont équipées d’ordinateurs qui s’appuient sur des microprogrammes pour effectuer des tâches critiques. Différents types de microprogrammes sont utilisés dans divers systèmes automobiles, notamment les unités de contrôle du moteur (ECU) qui optimisent les performances du moteur et le rendement énergétique, ainsi que les systèmes d’information et de divertissement (infotainment) de plus en plus complexes qui assistent la navigation et les caméras installées sur de nombreuses voitures.

Appareils Internet des objets (IdO)

L’Internet des objets (IdO) désigne un réseau d’appareils physiques, de véhicules, de dispositifs et d’autres objets physiques disposant de capteurs, de logiciels et d’une connectivité réseau leur permettant de collecter et de partager des données. Les micrologiciels sont essentiels à de nombreux cas d’utilisation des technologies IdO, tels que les appareils électroménagers intelligents, les voitures autonomes, les villes et les usines plus intelligentes, et bien d’autres encore. Sur un appareil IdO, tel qu’un capteur transmettant des données via Internet, le micrologiciel contient des instructions critiques stockées en permanence dans le matériel qui permettent à l’appareil de s’allumer et de s’arrêter, de collecter, d’analyser et de transmettre des données, etc.

Notes de bas de page

1. Firmware (lien externe à ibm.com), Wikipedia

2. Google Warns of Pixel Firmware Security Flaw Exploited as Zero-Day (lien externe à ibm.com), The Hacker News, 13 juin 2024

Solutions connexes
IBM Cloud Infrastructure Center 

IBM Cloud Infrastructure Center est une plateforme logicielle compatible avec OpenStack pour gérer l’infrastructure de clouds privés sur IBM zSystems et IBM LinuxONE.

Découvrir Cloud Infrastructure Center
Solutions d’infrastructure informatique

Découvrez des serveurs, des solutions de stockage et des logiciels conçus pour votre stratégie d’entreprise en matière de cloud hybride et d’IA.

Découvrir les solutions d’infrastructure informatique
Solutions d’infrastructure cloud

Trouvez la solution d’infrastructure cloud adaptée aux besoins de votre entreprise et ajustez les ressources en fonction de la demande.

Solutions cloud
Passez à l’étape suivante

Transformez l’infrastructure de votre entreprise grâce aux solutions de cloud hybride IBM prêtes pour l’IA. Découvrez des serveurs, des solutions de stockage et des logiciels conçus pour sécuriser, faire évoluer et moderniser votre entreprise, ou accédez à des informations d’experts pour améliorer votre stratégie d’IA générative.

Découvrir les solutions d’infrastructure informatique Télécharger l’eBook