J'étudie pour un examen de fin de semestre et je suis confus avec la question suivante. Si un processeur possède un bus d'adresse 16 bits et des mots de 8 bits, combien de mémoire en Ko peut-il traiter? Ma compréhension me dirait qu'il peut traiter 64 Ko, mais 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, donc je ne suis pas sûr qu'il soit correct. Que signifient également les mots 8 bits?
À votre santé
Réponses:
Un mot, dans les architectures majoritaires, est le plus gros morceau de données qui peut être transféré vers et depuis 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 CPU pourra adresser 64 Ko (2 ^ 16) mais ne pourra transférer en une seule opération 8 bits.
la source
Un mot machine, ou généralement juste un mot, est la plus grande unité de données que le CPU peut manipuler dans son ensemble à l'aide d'instructions communes. Cela n'a rien à voir avec l'adressage mémoire.
Ce qui importe, c'est l' 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 du mot machine, mais c'est probablement dans votre cas.
Une unité adressable 8 bits combinée à un bus d'adresse 16 bits représente 64 Ko de RAM que le processeur peut traiter.
la source
Dans le contexte, la taille du mot va de pair avec la taille de l'adresse pour décrire le bus mémoire. Il y a 16 bits qui sortent de la mémoire pour qu'il puisse choisir les emplacements 64ki. Ensuite, chaque emplacement contient 8 bits.
La taille de mot ici peut correspondre ou non à la taille de l'unité de calcul CPU, et cela peut ou non 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 votre exemple a 64ki. Mais il a 15 bits de bus d'adresses et 16 bits de bus de données. Il n'a besoin que de 32 adresses kki et obtient toujours 2 octets à chaque emplacement. (Si une instruction voulait 1 octet, elle distribuerait l'adresse avec le moins de bits manquants, récupérerait les deux octets à cette étape, puis examinerait le moindre bit de l'adresse souhaitée pour décider quelle moitié utiliser.)
Notez que le changement de banque, le PAE, etc. mentionnés par d'autres ne sont pas pertinents ici. Une unité de gestion de la mémoire peut utiliser des adresses 16 bits et avoir une adresse matérielle 20 bits, de sorte que le processeur doit commuter et mapper les choses pour utiliser la plage d'adresses réelle de 20 bits des puces RAM qui peuvent être adressées.
Assurez-vous de spécifier des unités dans vos réponses. "64ki". De quoi? Mots 8 bits, ce qui en fait (encore) 64ki octets de RAM adressable. Cette étape élimine la confusion et rend les problèmes comme celui-ci triviaux.
la source
Vous devez également utiliser la taille des mots dans les calculs. La réponse est de 64 Ko.
Vous pouvez adresser 2 ^ 16 mots et chaque mot est de 8 bits (= 1 octet). Il s'agit donc de 64 Ko.
Si la taille du mot était de 16 bits. La réponse serait de 128 Ko.
la source
Il y a deux côtés à cela, ce que votre instructeur veut probablement que vous lui disiez et quelle est la réalité.
D'abord ce que votre instructeur veut probablement que vous lui disiez.
"16 bits peuvent adresser 2 ^ 16 emplacements de mémoire, chaque emplacement est de 8 bits. Nous pouvons donc adresser une mémoire de 524288 bits (65536 octets)."
Cela reflète cependant une vision du monde assez simplifiée. La réalité est plus compliquée et donner une réponse définitive nécessite plus d'informations. Certaines des façons dont les systèmes réels peuvent être plus compliqués que cela incluent.
la source