Parlons un peu des capacités de nos ordinateurs à travailler sur plusieurs sujets en même temps, ou comment le rêve de beaucoup d’humains est devenu réalité pour les machines.

Au tout début de l’informatique les ordinateurs disposaient comme vous et moi d’un « pointeur d’instructions » unique qui traitaient les tâches de façon séquentielle et ne disposait que de peu de possibilité de changer de sujet d’intérêt au milieu d’un traitement.

Ce fonctionnement présentait un seul et unique intérêt, celui de garantir le temps d’exécution d’un traitement, ce que l’on appelait le « temps réel ».

Pour le reste cela rendait nos ordinateurs clairement monotâche avec toutes les limitations conséquentes

 

Pourquoi une telle restriction ?

 

La raison est très proche de celle qui nous empêche nous humains de faire réellement plusieurs choses en simultané : la gestion de la commutation.

 

 

Les ordinateurs, pour passer d’un sujet à l’autre, doivent sauvegarder les éléments en cours, s’assurer que rien n’attend une réponse de leur part et éventuellement patienter avant de pouvoir changer de sujet, rien de nouveau en fait.

 

La pression du logiciel

 

Même si les systèmes multitâches pour micro-ordinateurs ne se sont répandus qu’avec l’avènement de Windows NT au milieu des années 90, ce sont eux qui ont poussé les fabricants de processeurs à faire évoluer leurs architectures. Un des précurseurs de ces systèmes est d’ailleurs iRMX conçu par Intel eux-mêmes

Ce sont ces systèmes, qui sont capables de fonctionner en réel multitâches, qui ont créé le besoin de nouvelles architectures.

 

Une première solution : le multiprocesseurs

 

La première réponse était toute simple : il suffisait de mettre plusieurs processeurs dans le même ordinateur.

Mais c’était une réponse partielle et lourde de conséquences : il fallait repenser les machines physiquement pour la cohabitation des différents processeurs, et de toute façon cela ne réglait qu’une partie du problème car le reste des ressources de la machines devait être partagé et ce partage géré. Il fallait donc aussi traiter cela d’un point de vue logiciel.

Les machines multiprocesseurs sont donc restées cantonnées à des missions bien spécifiques, celles de serveurs, et si elles existent toujours, il a fallu chercher d’autre solutions pour l’informatique personnelle.

 

Le multicœurs

 

La réponse a donc été de virtuellement intégrer plusieurs processeurs dans un seul, c’est ainsi que sont apparus au milieu des années 2000, les processeurs multicœurs avec l’Intel Core 2 et l’AMD Athlon.

Concrètement il s’agit d’un seul boitier physique qui contient des éléments partagés (gestion mémoire, calcul, éventuellement graphique) mais surtout des unités centrales distinctes, au nombre de 2 au début mais plus classiquement aujourd’hui 4 voire plus.

Accessoirement cette architecture est souvent couplée à une technique de duplication de chaque cœur, appelée Hyper-Threading, qui assure de façon automatique l’arbitrage du temps alloué à chacun des deux threads.

 

Le vrai bénéfice

 

Tout cela est bien joli, mais finalement à quoi cela peut-il bien servir quand l’ordinateur n’est utilisé que par une seule personne ?

Au-delà d’un réel multitâches pour un utilisateur idéal qui le serait aussi, le bénéfice se situe à plusieurs niveaux :  que cela soit la réactivité de la machine lors du basculement d’un logiciel à un autre ou sa capacité à traiter en tâche de fond des opérations longues, les architectures multicœurs ont révolutionné notre confort d’utilisation et notre productivité, dès lors que les systèmes et les applications ont su en tirer profit !

Mais cela est une autre histoire et nous aurons surement l’occasion d’en reparler …

 

 

Olivier Piochaud, PDG d’Apsynet

 

 

Catégories : Développement & Web