Cours circuits et architecture des ordinateurs

Cours circuits et architecture des ordinateurs, tutoriel & guide de travaux pratiques architecture des ordinateurs en pdf.

Représentation des données

Dans un ordinateur, toute l’information est sous forme de bits qui sont regroupés en octets. Il faut donc qu’il y ait un codage de cette information. Ce codage dépend bien sûr du type des données. Cette partie décrit les codages les plus utilisés pour les types de base, c’est-à-dire les entiers, les nombres flottants et les caractères.

Entiers
Entiers positifs

Les entiers positifs sont toujours codés en base 2. Une suite bk-1 ,¼,b 0 de k bits représente l’entier n donné par la formule suivante.
n = å i=0 k-1 b i 2 i .
Avec k bits, on peut donc représenter tous les entiers de l’intervalle 0 ¼ 2 k -1. Le nombre de bits utilisés pour coder les entiers dépend de la machine. C’est encore très souvent 32 bits mais l’apparition des micro-processeurs 64 bits rend le codage 64 bits de plus en plus fréquent.

Big endian/Little endian

Cette caractéristique décrit dans quelle ordre sont placés les octets qui représentent un entier. Dans le mode big endian les octets de poids fort sont placés en tête et occupent donc des emplacements mémoire avec des adresses plus petites. Dans le mode little endian, les octets de poids faibles sont au contraire placés en tête. Dans le cas d’entiers de 32 bits, il existe encore des modes mixtes. Cette terminologie provient du livre Les voyages de Gulliver de J. Swift.
Big et little endian
Le mode big endian accélère les opérations qui nécessitent de regarder en premier les bits de poids forts comme la recherche du signe, la comparaison de deux entiers et la division. Au contraire le mode little endian favorise les opérations qui commencent par les bits de poids faible comme l’addition et la multiplication.

Codage BCD (Binary Coded Decimal)

Il s’agit d’une représentation surtout utilisée dans les premiers temps de l’informatique. La représentation BCD d’un entier n est obtenue de la manière suivante. L’entier n est écrit en décimal puis chaque chiffre décimal entre 0 et 9 est ensuite codé sur 4 bits. Il faut donc (k+1)/2 octets pour coder un nombre ayant k chiffres décimaux. Le seul intérêt de cette représentation est de faciliter l’affichage en base 10 de l’entier. Certains processeurs possédaient quelques instructions spécifiques pour traiter, en particulier pour l’addition, les entiers codés en BCD.

Entiers signés

Il existe plusieurs façons de coder les entiers signés. La représentation avec un bit de signe est la plus simple mais elle a trop d’inconvénients pour être utilisée en pratique. La représentation biaisée est uniquement utilisée pour le codage des exposants des flottants. La représentation en complément à 2 est utilisée par tous les ordinateurs car elle facilite de nombreuses opérations.
Représentation avec un bit de signe
Dans cette représentation, le bit de poids fort indique le signe du nombre avec la convention 0 pour positif et 1 pour négatif. Les bits restants sont utilisés pour coder la valeur absolue du nombre comme un nombre positif. Cette représentation semble la plus naturelle mais elle n’est pas utilisée en pratique car elle souffre de nombreux défauts dont le principal est de compliquer les additions et soustractions. En effet, pour additionner deux nombres codés de cette façon, il est nécessaire de faire une addition ou une soustraction suivant que ces deux nombres sont du même signe ou de signes différents.
k-1 ¼
Avec k bits, cette représentation permet de représenter tous les entiers de de l’intervalle -2 +1 2 k-1 -1. L’entier 0 a alors deux codages.
Représentation en complément à 2
Cette représentation est la plus importante car c’est elle qui est utilisée dans les ordinateurs. Malgré son apparente complexité, elle simplifie de nombreuses opérations sur les entiers.
k-1 ¼
Avec k bits, cette représentation permet de représenter tous les entiers de de l’intervalle -2
2 k-1 -1. Les entiers de 0 à 2 k-1 -1 sont codés comme les nombres positifs. Le bit de poids fort de leur k-1 ¼ -1 est représenté par le représentation est donc toujours 0. Un nombre négatif n de l’intervalle -2  codage de n+2 k (qui appartient à l’intervalle 2 k-1 ¼2 k -1) sur k bits.
Dans la représentation en complément à 2, les représentations dont le bit de poids fort est 0 sont utilisées par les nombres positifs. Au contraire, les représentations dont le bit de poids fort est 1 sont utilisées par les nombres négatifs. Le bit de poids fort se comporte donc comme un bit de signe. Ceci facilite le test de signe d’un entier signé.
Calcul de l’opposé
Étant donné un entier n positif ou négatif représenté en complément à 2, l’algorithme suivant permet de calculer la représentation en complément à 2 de son opposé -n. Ceci est bien sûr possible pour toutes les valeurs de l’intervalle -2 k-1 ¼ 2 k-1 -1 sauf pour -2 k-1 dont l’opposé n’est plus dans l’intervalle.
L’algorithme est le suivant. Soit n’ la représentation en complément à 2 de n. L’algorithme comporte les deux étapes suivantes qui utilisent des opérations présentes dans tous les micro-processeurs et facilement réalisables avec des portes logiques.
1. Calculer le complément bit à bit de n’.
2. Ajouter 1 au résultat de l’étape précédente.
Pour expliquer cette algorithme, on remarque que le complément bit à bit de m donne la différence entre le nombre écrit avec que des 1 et n’, c’est-à-dire la valeur 2k -n’-1. Le résultat de l’algorithme est donc 2 k -n’. Le tableau ci-dessous permet de vérifier que quel que soit le signe de n, l’algorithme donne le bon résultat. Soit n un entier positif ou négatif et soit n’ son codage en complément à 2.
Calcul de la somme
Un des grands avantages de la représentation en complément à 2 est de faciliter les additions et soustractions. En effet, l’addition de deux nombres m et n se fait simplement en additionnant leur représentations m’ et n’.
Le tableau ci-dessous récapitule les différents cas de l’addition suivant les signes des opérandes. Soient m et n deux entiers signés représentés sur k bits. On distingue donc les trois cas : le cas m et n positifs, le cas m positif et n négatif et le cas m et n négatifs. Le quatrième cas est omis du tableau car il est symétrique du cas m positif et n négatif. Pour chacun des cas, on donne les codages respectifs m’ et n’ de m et n, puis on distingue à nouveau deux sous-cas suivant la valeur de la somme m’+n’. Le résultat de l’addition de m’ et n’ n’est pas nécessairement m’+n’ puisque m’+n’ peut être supérieur à 2 k et ne pas s’écrire sur k bits. Le résultat de cette addition est m’+n’ si 0£ m’+n’ £ 2 k -1 et m’+n’-2 k si 2 k £ m’+n’ £ 2 k+1 -1.

……..

Cours gratuitTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *