Suivez-nous sur X

|
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z,
ALL
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
Actualité : Transputer et nouvelles architectures
(Article écrit par Daniel Fournier et extrait de Génération 4 - mai 1989)
|
|
A peine l'informatique individuelle "grand public" s'est-elle mise à l'heure des processeurs 16 bits
ou 16/32 bits, tel le MC68000 de Motorola (le "coeur" des Atari ST, des Amiga ou encore des Macintosh),
que déjà se profile une nouvelle race de "puces", encore plus époustouflante dans ses performances
et dont l'avènement dans les deux ou trois années à venir apportera sa nouvelle moisson d'applications
étonnantes et révolutionnaires. Afin de soulever, pour nos lecteurs, un coin du voile qui dissimule
encore les recherches menées dans ce secteur effervescent, nous présentons quelques-uns de leurs
aspects les plus révolutionnaires, ceux des RISC, des traitements parallèles et autres transputers.
Opérer les tâches
Mais pour mieux mesurer toute l'ingéniosite des concepteurs de ces nouvelles machines, revenons tout
d'abord très rapidement sur la manière dont s'effectuent les "tâches" à l'intérieur d'un système
conventionnel, tel que celui qui se trouve encore sur votre bureau. On peut schématiquement assimiler
le mode opératoire mis en oeuvre par ce type d'ordinateur à celui qu'applique un artisan qui, par
exemple, fabriquerait une chaise. Chaque élément de l'ensemble est fabriqué séparément (d'abord le
dossier, l'assise, puis les pieds) puis le tout est assemblé convenablement. On parle alors de
processus séquentiel.
Sur le plan informatique, l'exécution d'un tel processus ne réclame qu'un minimum d'éléments électroniques :
une mémoire de données (les différentes pièces de bois nécessaires à fabriquer chaque partie
de la chaise), une liste d'instructions à suivre scrupuleusement, elle aussi inscrite dans la
mémoire de la machine, et enfin, comme le nombre d'instructions risque d'être important, un
compteur qui permet de noter à quel endroit de la liste se rattache l'opération en cours de
réalisation, ou plus utilement le numéro de l'opération qui devra être accomplie lorsque la
présente sera terminée.
Les machines qui travaillent suivant cette méthode sont souvent désignées
par le sigle "SISD" (en anglais : Single Instruction, Single Data stream). Ce type d'architecture
présente de nombreux avantages : conceptualisation aisée par fractionnement de la tâche, logique
électronique simplifiée, etc. Mais devant les exigences toujours plus pressantes de la technologie
associée (comme celle du traitement de millions de points d'une image en haute définition), le
processeur n'arrive plus à suivre la cadence "infernale" qui lui est imposée pour réagir dans une
limite de temps acceptable.
Une des premières innovations à laquelle les ingénieurs pensèrent, afin d'accélérer la vitesse de
traitement, fut de substituer un groupe à l'unique opérateur de l'exemple précédent. C'est le principe
même du travail "à la chaîne". Chaque ouvrier effectue une petite partie de la tâche, simultanément
et en cadence avec ses compagnons. Il suffit de déterminer quelles sont les opérations qui peuvent
être entreprises concurremment sans incohérence pour le résultat final. Le sigle de "MISD"
(Multiple Instruction, Single Data stream) est, cette fois, employé pour caractériser ce type d'architecture.
Une fois chaque opérateur en possession d'un élément de l'ensemble à réaliser (tous, sauf le premier,
doivent au départ attendre que leur prédécesseur ait accompli sa part de besogne pour disposer de la
"pièce" à fabriquer), la production peut atteindre un rendement supérieur de plusieurs ordres de grandeurs
à celui de l'opérateur isolé. Des processeurs ont été tout spécialement conçus pour travailler suivant
ce principe dit de "pipeline'. Ainsi, certains peuvent décomposer leur traitement d'une donnée en de
multiples opérations distinctes telles que :
- Recherche en mémoire de l'instruction à exécuter.
- Décodage de l'instruction.
- Calcul de l'adresse effective de la donnée (l'opérande).
- Recherche en mémoire de ladite opérande.
- Exécution de l'opération (arithmétique ou logique).
- Rangement en mémoire de la donnée traitée.
Cependant, un nouveau ralentissement se manifeste au niveau de l'acquisition, depuis son lieu de
stockage (la mémoire), de chaque donnée, opération qui représente plus des trois quarts du temps total
de l'accomplissement de la tâche. Lorsque le flot de données à traiter est très important
(et il l'est immanquablement), la solution ultime consiste alors à construire une machine dans laquelle
plusieurs "ateliers" travaillent de concert pour parvenir au résultat final. Nous aboutissons ainsi au
véritable parallélisme du traitement de l'information.
Ces structures à haut degré de parallélisme sont dites "MIMD" (Multiple Instruction, Multiple Data stream),
car chaque processeur effectue un travail analogue à celui de ses concurrents, en accédant, par ses
propres moyens, aux données dont il a besoin pour travailler. Mais c'est à cet instant précis que les
choses se compliquent considérablement. Si chacun joue sa partition sans s'occuper des autres, c'est
la cacophonie ! Il faut par exemple régler les conflits qui surgissent lorsque deux processeurs tentent
d'utiliser le contenu d'une case mémoire contenant une information que chacun doit utiliser : à qui reviendra
la priorité ? D'autre part, si un processeur a pris du "retard" par rapport à un autre et qu'il n'a pas
terminé son opération sur une donnée qu'un autre processeur doit utiliser à son tour, que faire ?
Transputer, le nouveau concept de traitement
Il n'existe pas à vrai dire de solution "miracle" à tous les problèmes qui peuvent surgir dès lors qu'il
s'agit de gouverner un ensemble d'éléments, et la recherche pour découvrir des possibilités inédites
ou améliorer celles déjà élaborées bat son plein. Certaines, pourtant, se révèlent dès maintenant
particulièrement efficaces, et les plus dynamiques des constructeurs d'ordinateurs personnels nous
promettent pour l'année en cours des machines spécifiquement développées sur ces nouveaux concepts de
traitement. Elles ont en commun de proposer des systèmes modulaires construits autour d'un processeur
aux capacités impressionnantes, le transputer.
Ce processeur a été entièrement conçu par la firme britannique Inmos, qui, en moins d'une dizaine d'années,
était déjà devenue une des productrices de pointe dans le domaine des mémoires statiques de hautes
performances, et des processeurs de traitement d'image ou de signal. Les objectifs que la gamme des
transputers a cherché à atteindre se répartissent suivant cinq axes :
- Décentralisation de la puissance de calcul.
- Fractionnement de la mémoire en unités ultra-rapides.
- Simultanéité des communications et des traitements.
- Simplicité de mise en oeuvre matérielle.
- Simplicité de développement logiciel au moyen de langages de haut-niveau.
Pour répondre à ces exigences, la "puce" d'un transputer rassemble, à un très haut degré de miniaturisation,
des composants qui se trouvent, la plupart du temps, dispersés sur plusieurs "puces" distinctes.
Ainsi, sont juxtaposés, sur le modèle haut de gamme (T800) :
- Une unité de traitement logique et arithmétique sur 32 bits.
- Une unité de traitement en arithmétique flottante sur 64 bits.
- Une RAM de 4 ko à accès très rapide, qui minimise les échanges avec la mémoire centrale,
beaucoup plus lente.
- Une interface d'accès aux mémoires externes.
- Deux chronomètres de 32 bits incrémentés toutes les 1 microseconde ou 64 microsecondes,
et un générateur d'horloge.
- Quatre canaux d'accès direct mémoire (DMA) bidirectionnels, pouvant transmettre jusqu'à
20 mégabits/seconde (ce qui permet un échange avec les périphériques externes avoisinant
es 10 millions d'octets par seconde !).
- Un contrôleur d'accès mémoire (espace d'adressage de 4 gigabits : 4 milliards d'octets),
travaillant à un taux de 40 mégabits/seconde.
- Une logique micro-codée pour l'analyse de l'état du processeur (débogage).
- Un ordonnanceur micro-codé pour la répartition des tâches concurrentes.
Actuellement, ce processeur travaille à une cadence d'horloge de 20 mégahertz (et très bientôt
jusqu'à 30 mégahertz). Le T414, quant à lui, obtient des performances comparables, sauf pour
l'unité d'arithmétique flottante lui n'est pas intégrée, et la mémoire cache qui est "réduite"
à 2 ko. Ces performances qui, faut-il le souligner, laissent loin derrière les autres vedettes actuelles
telles que le 80386 de Intel ou le MC68030 de Motorola, et cela pour des prix tout à fait comparables,
ne concernent qu'un seul processeur.
Travail de groupe
Ces processeurs sont dans leur conception même, destinés à travailler en groupe. En effet, ce qui fait
l'originalité de leur jeu d'instructions, c'est l'intégration des "primitives" et des mécanismes qui
permettent à un réseau de transputer de communiquer avec le maximum d'efficacité et d'utiliser à
plein rendement les liens qui les réunissent. Dans pratiquement tous les programmes informatiques, un
nombre restreint d'instructions est utilise pour construire les opérations qui doivent s'y dérouler.
En privilégiant l'exécution de ces instructions de façon à ce qu'elles puissent être effectuées le
plus rapidement possible, le gain global peut être considérable. D'autre part, plutôt que construire
le processeur, puis ensuite envisager la manière dont les applications réelles peuvent y être adaptées,
la démarche inverse a été poursuivie.
Après des études très approfondies sur la théorie des
communications entre unités de traitement dans les architectures parallèles, un langage de programmation
permettant de mettre en oeuvre ce travail partagé a été formalisé. Ainsi est né le langage Occam,
dont les circuits des transputers réalisent une implémentation micro-codée. Grâce à lui, le développement
d'applications est non seulement facilité et accéléré, mais le résultat obtenu est aussi beaucoup plus
efficace qu'avec des langages plus conventionnels, tel que le langage C.
Transputer pour Atari, Apple et Amiga
C'est donc de cette manière qu'un unique transputer peut globalement atteindre des performances d'exécution
de plusieurs centaines de fois supérieures au MC68000 des machines auxquelles nous sommes habitués. Or,
lorsque plusieurs transputers travaillent en parallèle, ils additionnent leur efficacité... C'est pourquoi
les firmes Atari, puis Apple et maintenant Commodore ont développé des systèmes à base de transputer.
Typiquement, ceux-ci sont constitués d'une unité dans laquelle une carte de contrôle dirigée par un
transputer prend en charge l'interface avec l'ordinateur "hôte" (un Mega ST, un Amiga 2000, ou encore
un Macintosh), qui sert alors de "périphérique" d'entrées/sorties collectant les informations que l'utilisateur
fournit grâce aux dispositifs habituels, tels que clavier, souris, tablette graphique, etc. Cette même
carte peut être reliée à l'intérieur de l'unité à une, deux ou trois cartes additionnelles regroupant chacune
quatre transputers interconnectés, et solidaires de chacun un méga octets de mémoire.
Le transputer principal a pour mission, au travers de l'analyse du programme, de répartir équitablement
le travail à effectuer entre les divers "ateliers". On parle alors de "fermes" de processeurs. On
peut également connecter cette unité à d'autres systèmes équivalents reliés par les lignes d'un réseau
tel que Transpac ou RNIS, et la puissance croissant ainsi avec chaque unité rajoutée, on peut facilement
aboutir à des performances équivalentes ou supérieures à ceux des calculateurs géants les plus sophistiqués,
pour des coûts de mise en oeuvre très inférieurs. Ainsi, dans le cadre du programme Européen ESPRIT,
une société française a-t-elle construit une machine reliant jusqu'à plus de mille transputers !
Du bon pour l'avenir
Sans être trop utopiste, on peut, dans cette perspective, concevoir que dans un proche avenir, des ordinateurs
personnels construits sur ces bases permettront à tout un chacun d'utiliser des applications qui restent
à l'heure actuelle l'apanage du secteur industriel, pour créer des images synthétiques de très haute définition,
animées en temps réel, ou bien des musiques entièrement générées par synthèse algorithmique, des
programmes éducatifs véritablement "intelligents", ou encore des bases de données permettant d'obtenir
instantanément les informations souhaitées (sans recherche fastidieuse !) par dialogue oral, etc.,
et bien d'autres réalisations que nous sommes impatients de découvrir.
|