Information Technology Reference
In-Depth Information
Ni représente le nombre d'instructions à exécuter. Ce nombre dépend de la nature
et de la richesse du jeu d'instructions machine disponible. C'est le compilateur qui,
à partir d'un programme écrit dans un langage de haut niveau (LHN), génère la
séquence d'instructions machines correspondant à chaque instruction du LHN. Tc est
le temps d'un cycle machine et Nc le nombre de cycles nécessaires à l'exécution
d'une instruction machine. Ces facteurs dépendent essentiellement de la complexité
des instructions machines.
Ainsi améliorer les performances d'un programme consiste à minimiser Te donc
le produit des trois facteurs précédents.
L'exécution d'une instruction se traduit, comme nous l'avons vu précédemment,
par l'ensemble des étapes suivantes : fetch, modification du compteur ordinal, déco-
dage de l'instruction, recherche éventuelle du ou des opérandes, exécution (micro-
instructions) et rangement des opérandes.
Nous avons également vu que plusieurs de ces étapes pouvaient êtres réalisées en
parallèle ce qui s'est traduit par l'implantation de mécanismes de pipeline. Ainsi les
approches CISC et RISC pour la minimisation de Te et l'utilisation du pipeline sont
différentes.
8.5.2 La traduction des programmes
Pour résoudre les problèmes les programmeurs utilisent des langages de haut niveau
que les compilateurs traduisent en langage machine. Au moins deux approches sont
possibles pour cette traduction :
- faire correspondre à chaque structure de données exprimée dans le langage de haut
niveau un mode d'adressage adapté dans le langage machine, c'est l'approche CISC;
- n'implanter en machine que les mécanismes réellement utiles (dont on a statisti-
quement montré l'utilité), c'est l'approche RISC.
8.5.3 Approche CISC
Cette approche se caractérise par :
- un jeu d'instructions très riche et une grande variété de modes d'adressages;
- un grand nombre d'instructions;
- des instructions complexes et de longueurs variables afin de répondre à la grande
variété des instructions des langages de haut niveau.
On peut étayer les raisons de ces choix par les objectifs suivants :
- simplifier les compilateurs et améliorer leurs performances. Il s'agit ici de réduire
la « distance » entre langage de haut niveau et langage machine. On passe plus faci-
lement d'une instruction en langage de haut niveau à la séquence correspondante
d'instructions machine;
- un jeu d'instructions riche et réalisant des fonctions complexes permet de réduire
la taille du programme machine et donc d'économiser de la place en mémoire
principale.
 
 
Search WWH ::




Custom Search