web-dev-qa-db-fra.com

Si une CPU a un bus d’adresse de 16 bits et des mots de 8 bits, combien de mémoire peut-elle adresser?

J'étudie pour un examen de fin de semestre et je suis confus avec la question suivante. Si une CPU a un bus d’adresse 16 bits et des mots de 8 bits, combien de mémoire en Ko peut-elle adresser? Ma compréhension me dirait qu'il peut adresser 64Ko, cependant, pour ce faire, je viens d'utiliser 2 ^ 16 = 65 536. Ce calcul n'a jamais réellement pris en compte les mots de 8 bits, je ne suis donc pas sûr qu'il soit correct. Aussi, que signifie 8 mots bits?

À votre santé

23
eZ_Harry

Un mot, dans la plupart des architectures, est la plus grande quantité de données pouvant être transférée de et vers la mémoire de travail en une seule opération.

La plus grande taille d'adresse possible, utilisée pour désigner un emplacement en mémoire, est généralement appelée mot matériel.

Ainsi, votre processeur pourra traiter 64 Ko (2 ^ 16) mais ne pourra transférer en une seule opération que 8 bits.

38
Overmind

Un mot machine, ou généralement juste Word est la plus grande unité de données que le processeur puisse manipuler dans son ensemble à l'aide d'instructions communes. Cela n'a rien à voir avec l'adressage en mémoire.

Ce qui compte, c’est le unité de résolution d’adresse }, qui est généralement un octet de 8 bits, même sur les architectures 16/32/64 bits. Il ne doit pas nécessairement être égal à la taille de la machine, mais c'est probablement le cas dans votre cas.

Une unité adressable à 8 bits combinée à un bus d'adresse à 16 bits équivaut à 64 Ko de RAM que la CPU peut traiter.

21
Dmitry Grigoryev

Aussi, que signifie 8 mots bits?

Dans le contexte, la taille de Word correspond à la taille de l'adresse pour décrire le bus de mémoire. Il y a 16 bits qui jaillissent dans la mémoire, ce qui permet de choisir un emplacement de 64 km. Ensuite, chaque emplacement contient 8 bits.

La taille des mots peut ici correspondre ou non à la taille de l'unité de calcul de la CPU, et ne pas correspondre à la granularité logique de l'adressage.

Par exemple, une CPU peut annoncer un bus 16 bits (à cet effet). Il utilise des adresses 16 bits dans ses instructions et, comme dans votre exemple, a 64ki. Mais il a 15 bits du bus d’adresse et 16 bits du bus de données. Il n'a besoin que de 32 adresses et obtient toujours 2 octets avec chaque emplacement. (Si une instruction voulait un octet, elle enverrait l'adresse avec le dernier bit manquant, récupèrerait les deux octets de cette étape, puis examinerait le dernier bit de l'adresse souhaitée pour décider quelle moitié utiliser.)

Notez que le changement de banque, PAE, etc. mentionné par d'autres n'est pas pertinent ici. Une unité de gestion de la mémoire peut utiliser des adresses 16 bits et une adresse matérielle 20 bits. Le processeur doit donc commuter et mapper des éléments pour utiliser la plage d'adresses 20 bits actuelle de RAM puces pouvant être utilisées. adressé.

Assurez-vous de spécifier les unités dans vos réponses. “64ki”. De quoi? Mots de 8 bits, ce qui en fait (toujours) 64ki octets de RAM adressable. Cette étape élimine la confusion et rend les problèmes comme celui-ci trivial.

2
JDługosz

Vous devez également utiliser la taille de Word dans les calculs. La réponse est 64 Ko.

Vous pouvez adresser 2 ^ 16 mots et chaque mot est de 8 bits (= 1 octet). C'est donc 64 Ko.

Si la taille du mot était de 16 bits. La réponse serait 128 KB.

0
Nuri Tasdemir

Il y a deux côtés à cela, ce que votre instructeur veut probablement que vous lui disiez et quelle est la réalité.

Tout d'abord, ce que votre instructeur veut probablement que vous lui disiez.

"16 bits peuvent adresser 2 ^ 16 emplacements mémoire, chaque emplacement étant de 8 bits. Nous pouvons donc adresser une mémoire de 524288 bits (65 536 octets)."

Cela reflète toutefois une vision du monde plutôt simpliste. La réalité est plus compliquée et donner une réponse définitive nécessite plus d'informations. Certains des moyens par lesquels les systèmes réels peuvent être plus compliqués que cela incluent.

  • De nombreux processeurs n’ayant pas de carte IO dédiée, il peut être nécessaire d’utiliser une partie de l’espace adresse mémoire pour des tâches autres que la mémoire.
  • La "taille de mot" du processeur n'est pas nécessairement la même que la largeur du bus de données mémoire ou la plus petite unité de mémoire adressable.
  • Certains bus permettent le déplacement d'unités de données de différentes tailles. Cela nécessite un adressage supplémentaire qui peut être traité ou non par des bits du bus d'adresses principal.
  • Certains bus multiplexent des signaux différents sur les mêmes lignes. Par exemple, SDRAM utilise deux fois la même ligne d'adresse pour envoyer une "adresse de ligne" et une "adresse de colonne".
  • De nombreux systèmes utilisaient des approches de commutation de banque pour permettre aux programmes d'accéder à plus de mémoire que le processeur ne pouvait en traiter en natif.
0
plugwash