« Fonctionnement d'un ordinateur/Les mémoires cache » : différence entre les versions

Contenu supprimé Contenu ajouté
Ligne 344 :
: <math> A + B + \overline{K} = - 1 </math>
 
Il suffit d'utiliser un additionneur ''carry-save'' pour faire l'addition des trois termes et ajouter un comparateur avec -1. Or, -1 est codé avec un nombre dont tous les bits sont à 1 en complément à un/deux.

: <math> A + B + \overline{K} = 111 \cdots 111111</math>

Mais le -1 en sortie de l'additionneur ''carry-save'' est représenté avec deux nombres : une somme S et des retenues. LeR, comparateurtelle que le résultat est doncégal plusà compliqué<math>S qu'un+ simpleR comparateur<< 1</math>, avec une<< 1 un décalage d'un cran à constantegauche.
 
[[File:Sum + retenue add.png|centre|vignette|upright=2|Sum + retenue add]]
 
Un simple raisonnement nous dit que l'on a bien -1 en sortie de l'additionneur ''carry-save'' si l'on a <math>\overline{S} = R << 1</math>. Il suffit de faire un simple XOR entre la somme et les retenues décalées d'un cran, avant de faire une comparaison avec -1.
L'additionneur pour l'addition adresse + décalage est remplacé par un additionneur carry-save, ce qui économise de circuits et améliore les performances.
 
LAu final, l'additionneur pour l'addition adresse + décalage est remplacé par un additionneur carry-save suivi d'une couche de portes XOR et d'un comparateur avec une constante, ce qui économise de circuits et améliore les performances.
 
[[File:Final circuit of sum addressed cache.png|centre|vignette|upright=2|Cache adressé par somme.]]