C – Émulation et interopérabilité
© Groupe Eyrolles, 2005 3
Émulation au niveau processeur
Le processeur est la puce électronique qui joue le rôle de « cerveau » de l’ordina-
teur – il est plus exact de dire que c’est sa « centrale de calcul », puisque la
mémoire et toute autre forme d’« intelligence » d’un ordinateur sont situées
dans d’autres composants, respectivement la RAM et les programmes saisis par
des hommes.
Il lit successivement les instructions de son « segment de code » (zone de
mémoire contenant le code) et applique les ordres qu’il y trouve sur son
« segment de données » (zone de mémoire contenant les données). Il n’est
capable que d’opérations très simples et limitées en nombre, comme de lire un
nombre en mémoire, d’écrire un nombre en mémoire, d’effectuer des opérations
arithmétiques simples sur les nombres stockés dans ses registres (sa propre
petite mémoire de transit), etc.
Langage d’assemblage
On utilise un « assembleur » pour programmer un processeur en langage
d’assemblage – on en montre un exemple au chapitre 18, « Ce qu’est vraiment le
logiciel libre ». C’est une programmation très rébarbative et difficile à relire et
maintenir, qui est de moins en moins connue et pratiquée. Deux processeurs
incompatibles ne parlant pas le même langage, un programme écrit pour l’un
sera inutilisable sur l’autre.
C
ULTURE
RISC et CISC
Même si les plus répandus au niveau grand public sont les processeurs compatibles Intel
de type x86 (386, 486, Pentium, etc.), il existe de nombreuses familles de processeurs –
les Macintosh d’Apple par exemple, utilisent depuis longtemps des processeurs qui par-
lent un langage différent (mais ils passeront eux aussi sous compatibles x86 sous peu).
On peut classer ces familles en deux super-familles, chacune ayant choisi une option diffé-
rente. Les
Reduced Instruction Set Computers
(RISC) ont opté pour des processeurs au
vocabulaire plus restreint, ce qui facilite évidemment leur conception au niveau des circuits
imprimés. On les trouve par exemple dans les Sun (Sparc 32 et 64), ordinateurs plutôt
réservés à un usage professionnel de type serveurs sous Unix. Les « Complex Instruction
Set Computer » (CISC), plus répandus dans le grand public (bien que plus complexes à con-
cevoir et à réaliser), ont fait le choix inverse. C’est le cas des processeurs de la famille Intel.
En CISC, on trouve l’architecture x86/IA32 (constructeurs : Intel, AMD, VIA). En RISC, on
trouve les architectures ARM (Intel XScale), MIPS (différents fondeurs), PowerPC (IBM par
exemple ; cette famille comprend ce que la société Apple appelle G3, G4, et G5), VLIW
(dont IA64).
PowerPC, à l’origine un développement conjoint d’IBM et de Motorola, est une variante
de l’architecture « Power » définie par IBM, laquelle compte au moins 4 générations.
Cette liste n’est pas exhaustive. Signalons le cas particulier de la société ARM, qui définit
une architecture sans fondre de processeurs. Elle vend le droit de produire des processeurs
de type ARM à des sociétés annexes comme Intel.
V
OCABULAIRE
Architecture
L’architecture d’un ordinateur est le modèle de son
processeur et différents autres choix électroniques
faits au niveau de la carte mère.
A
VANCÉ
RISC et CISC : comparaison
Il est difficile de comparer ces deux approches de
l’architecture processeur et ces deux familles ont
leurs avantages et leurs inconvénients.
Ce que l’on gagne en simplification du processeur
dans le RISC et donc, théoriquement, en vitesse,
on le perd en compacité du code produit, donc en
efficacité d’utilisation du cache, et donc… en
vitesse. On y perd aussi en efficacité du code,
chaque cycle du processeur pouvant traiter moins
de fonctionnalités.
Tout ne semble pas toujours logique : les RISC ont
de nos jours une fréquence d’horloge moins élevée
que celle des CISC et consomment plus d’énergie –
cela traduit sans doute les moyens investis dans la
recherche et le développement.