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

m
: <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. Mais le -1 en sortie de l'additionneur ''carry-save'' est représenté avec deux nombres : une somme et des retenues. Le comparateur est donc plus compliqué qu'un simple comparateur avec une constante.
 
: <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 R, telle que le résultat est égal à <math>S + R << 1</math>, avec << 1 un décalage d'un cran à gauche.
 
[[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.]]
39 497

modifications