Adressable par octet vs adressable par mot

Jessaie de comprendre la différence entre ladressage doctet et ladressage de mot.

Une unité de mémoire cache associative à 4 voies dune capacité de 16 Ko est construite en utilisant une taille de bloc de 8 mots. La longueur du mot est de 32 bits. La taille de lespace dadressage physique est de 4 Go.

Nombre densembles dans le cache $ = (16 * 1024) / (4 * 8 * 4) = 2 ^ 7 $

Si ladressage de mots est utilisé:

Décalage de bloc $ = 3 \ bits $

Puisque PAS est 4 $ \ GB $ , le nombre total dadresses = 2 $ ^ {32} / 2 ^ 2 = 2 ^ {30} $

Donc, total des bits dadresse $ = 30 \ bits $

Structure de ladresse:

Bits de balise: 20 $ \ bits $
Définir les bits: $ 7 \ bits $
Bits de décalage de bloc: $ 3 \ bits $

Maintenant, supposons que le CPU souhaite accéder au 3ème octet dun mot particulier.

  1. Le contrôleur de cache utilisera le champ set $ 7 \ bits $ pour indexer dans un ensemble et puis en comparant le champ de balise $ 20 \ bits $ plus élevé avec tous les $ 4 $ blocs dans lensemble. Si une correspondance est trouvée, alors un succès de cache se produit et le décalage de bloc inférieur $ 3 \ bits $ pour mettre un mot hors du 8 $ $ mots dans lun des registres à usage général. La CPU extrait alors le 3ème octet du mot et exécute lopération.
  2. Si les balises ne correspondent pas, un échec de cache se produit, un signal de lecture de la mémoire est envoyé et en raison de la localité spatiale de référence, un bloc contenant le mot est transféré dans le cache.

Si le CPU est adressable par octets:

Nombre total de bits dadresse $ = 32 $

Structure de ladresse: Bits de balise: 20 $ \ bits $
Définir les bits: $ 7 \ bits $
Bits de décalage de bloc: $ 5 \ bits $

Si le CPU veut accéder au 3ème octet dun word:

  1. Identique à létape 1 du mot adressable, mais le CPU peut maintenant adresser directement le 3ème octet du mot, en utilisant le $ 2 \ bits de décalage doctet $ . Cependant, je ne sais pas comment cela se passerait. Puisque, la taille du registre du processeur a une largeur de 1 mot, similaire à ladressage de mot, un mot sur les 8 mots du bloc sera transféré vers le registre. Mais comment létape « dextraction doctets » serait plus facile ici? Et pourquoi lappelons-nous adressage doctets si nous adressons toujours un mot?
  2. Identique à létape 2 de ladressage de mots. Le bloc de données sera transféré de la mémoire au cache en cas de cache manquant.

De plus, cette réponse indique que la mémoire physique est toujours octet adressable. Maintenant, quelle est la différence entre la capacité dadressage de la mémoire et la capacité dadressage de larchitecture du processeur?

Réponse

Adressage de mots signifie que, le nombre de lignes dans le bus dadresse dans le processeur est inférieur au nombre de bits dans le mot lui-même.

Disons que nous avons un mot de 4 octets. (espace dadressage de 32 bits)

Si cette machine est une adresse octet le, alors le bus dadresse de la CPU aura 32 lignes, ce qui lui permet daccéder à chaque octet en mémoire.

Si cette machine est adressable par mot, alors le bus dadresse de la CPU aura 30 lignes ( 32 $ – log_ {2} 4 = 30 $ ), ce qui lui permet daccéder à la mémoire UNIQUEMENT en mots / blocs de 4 octets et cela aussi à partir dadresses qui sont un multiple de la taille des mots.

Maintenant, si vous demandez au CPU de récupérer un octet à partir dune adresse particulière, il supprimera dabord les 2 bits les moins significatifs (par drop je veux dire les écraser avec 0 « s) de ladresse, récupérez un mot à partir de ladresse résultante et renvoyer un octet en utilisant les 2 bits les moins significatifs comme décalage dans le mot récupéré.

Cela entraîne une augmentation du temps daccès à la mémoire, car le CPU doit passer plus de temps à modifier ladresse et à traiter le mot récupéré. Mais cela permet également de réduire le coût du matériel puisque la complexité des circuits est réduite en raison de la réduction des lignes de bus dadresse.

Cependant, cette surcharge ne survient jamais dans une machine adressable par octets, doù « byte lextraction de « est plus facile.

Commentaires

  • Je comprends ce que vous ‘ dites. Mais que ‘ Cela se produira-t-il en cas dadressage doctets? Supposons que le CPU ait besoin du 3ème octet du mot. Il enverra ladresse 32 bits avec les 2 bits les moins significatifs mis à 10, à droite t?Mais alors comment va-t-il stocker loctet étant donné quil utilise un registre dune largeur de 1 mot? ‘ que le processeur ne récupère pas dans ce cas le mot du cache et le stocke dans le ‘ registre?
  • Pour vous 1ère question: les processeurs dadressage doctets ont des instructions décriture séparées en fonction de la taille des données à écrire. Un pour un octet, un pour un double octet, un pour un quadruple octet, un pour un mot, etc. (En fait, tout processeur a des instructions décriture distinctes, chacune pour différentes tailles de données prises en charge à écrire) En ce qui concerne lécriture doctets, le loctet à écrire est généralement stocké dans les 8 LSB du registre, puis linstruction décriture pour un octet est exécutée. Cela entraîne UNIQUEMENT les 8 bits LSB du registre à être chargés sur le bus de données, et un seul octet à ladresse en mémoire est modifié.
  • Je nai pas ‘ Je ne comprends pas votre deuxième question. Pourriez-vous élaborer.
  • Je suppose que la même chose se produit pour la lecture dun octet dans une machine adressable doctets, nest-ce pas? Par exemple, laissez ‘ dire quil ‘ est un tableau de caractères char arr[10] et le processeur veut lire le 3ème caractère, cest-à-dire arr[2]. Ensuite, après avoir accédé à loctet en utilisant ladresse 32 bits, il le stockera dans les 8 LSB du registre. Mais dans le cas dun mot adressable, la CPU calculera dabord ladresse du mot auquel appartient le 3ème octet (cest-à-dire écrasera les 2 LSB par 0) et récupérera le mot ‘ s registre. Après cela, il utilisera le décalage doctet pour obtenir loctet requis. Est-ce correct?
  • Merci beaucoup. Je vous demanderais de rassembler tous ces éléments dans la réponse originale afin quelle puisse aider nimporte quel futur lecteur.

Laisser un commentaire

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