Systemes d'exploitation

Architecture

PagePrincipale :: DerniersChangements :: ParametresUtilisateur :: Vous êtes ec2-54-198-170-159.compute-1.amazonaws.com
  ChapitreArchitecture Rôles d'un système d'exploitation >>

Architecture et fonctionnement d'un micro-ordinateur


Registres


À l'origine, les mots machine (et donc les registres) étaient de taille quelconque (36 bits pour l'ibm 701, en 1953, 18 bits pour le dec pdp-1, en 1961, ou 27 bits pour l'Electrologica X8 en 1968). Maintenant ils sont systématiquement des multiples de 8 et des puissances de 2 : 8, 16, 32, 64 ou 128 bits.

Exemple
Pour ce qui concerne le constructeur de processeurs Intel, l'évolution de ses produits a suivi une progression exponentielle dans la taille des mots machine :

Les instructions


Selon l’architecture du processeur, les instructions peuvent avoir une taille fixe (typiquement sur les architectures RISC – Reduced Instruction Set Computer – comme les processeurs mips, par exemple), soit avoir une taille variable (sur les architectures CISC? – Complex Instruction Set Computer – comme la série des 68000 de Motorola ou les x86 d'Intel). L'incrément du compteur ordinal n'est donc pas nécessairement quelque chose de régulier ou de pré-établi, mais peut varier en fonction du type d'architecture d'une part, et du type d'instruction qui est exécuté d'autre part.

Comme on combine l'opcode des opérations avec des drapeaux indiquant si les opérandes sont de type registre, adresse mémoire ou valeur immédiate et que la représentation de l'opérande change selon le type, la taille de l'instruction totale peut varier. Par exemple, les adresses sont souvent codées sur 32 bits, mais les registres, dont le nombre varie de quelques dizaines à une petite centaine, sont codés sur quelques bits seulement ; en revanche, les valeurs immédiates ont une taille qui varie selon leur type – entier court, entier long, valeur flottante, etc.

De plus, indépendamment de leur taille, les instructions ne s'exécutent pas nécessairement en un seul cycle d'horloge, mais chaque instruction est décodée par les circuits du processeur, puis décomposé en des petites opérations logiques qui se combinent et progressent à chaque top d'horloge. En fonction de la complexité de l'instruction, elle peut prendre plus ou moins de cycles avant de s'achever. Si l'on associe un processeur à un graphe d'opérations élémentaires s'effectuant sur les bits d'entrée, on peut représenter l'avancement de l'exécution d'une instruction comme une « vague » qui progresse dans ce graphe, d'un niveau par impulsion de l'horloge. Dans cette optique, et plutôt que d'attendre que la vague courante soit arrivée au bout (i.e. l'instruction est complètement exécutée), on peut imaginer faire démarrer une nouvelle vague par impulsion. Cette opération s'appelle du pipelining. Elle pose un grand nombre de problèmes propres à la conception des circuits (notamment, et principalement en termes de garantie d'ordre d'exécution, et d'interdépendance), mais qui n'ont pas d'incidence sur l'utilisation et la programmation du processeur. Elle permet, en revanche, dans des cas d'utilisations optimales et en régime de croisière, d’avoir un temps d'exécution moyen d'un cycle par instruction.

 image

Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]