Ich studiere für eine Semesterabschlussprüfung und bin mit der folgenden Frage verwechselt. Wenn eine CPU einen 16-Bit-Adressbus und 8-Bit-Wörter hat, wie viel Speicher in KB kann sie adressieren? Mein Verständnis würde mir sagen, dass es 64KB adressieren kann, aber dazu habe ich nur 2 ^ 16 = 65.536 verwendet. Bei dieser Berechnung wurden 8-Bit-Wörter nie berücksichtigt, daher bin ich mir nicht sicher, ob sie korrekt sind. Was bedeuten auch 8-Bit-Wörter?
Prost
Antworten:
In den meisten Architekturen ist ein Wort das größte Datenelement, das in einem einzigen Vorgang in den und aus dem Arbeitsspeicher übertragen werden kann.
Die größtmögliche Adressgröße, die zum Festlegen eines Speicherorts im Speicher verwendet wird, wird normalerweise als Hardware-Wort bezeichnet.
So wird Ihre CPU in der Lage sein , 64 KB Adresse (2 ^ 16) , aber nur in einem einzigen Vorgang 8 Bits übertragen können.
quelle
Ein Maschinenwort oder allgemein nur ein Wort ist die größte Dateneinheit, die die CPU als Ganzes unter Verwendung gemeinsamer Anweisungen bearbeiten kann. Dies hat nichts mit der Speicheradressierung zu tun.
Was zählt, ist die Einheit der Adressauflösung , die selbst bei 16/32/64-Bit-Architekturen üblicherweise ein 8-Bit-Byte ist. Es muss nicht gleich der Größe des Maschinenworts sein, aber es ist wahrscheinlich in Ihrem Fall.
Eine 8-Bit-adressierbare Einheit in Kombination mit einem 16-Bit-Adressbus beläuft sich auf 64 KB RAM, den die CPU adressieren kann.
quelle
Im Zusammenhang steht die Wortgröße mit der Adressgröße zur Beschreibung des Speicherbusses. Es gibt 16 Bits, die in den Speicher fließen, so dass 64-ki-Positionen ausgewählt werden können. Dann enthält jeder Ort 8 Bits.
Die Wortgröße hier kann mit der CPU-Recheneinheitsgröße übereinstimmen oder nicht, und dies kann mit der logischen Granularität bei der Adressierung übereinstimmen oder nicht.
Beispielsweise kann eine CPU einen 16-Bit-Bus (für diesen Zweck) ankündigen. Es verwendet 16-Bit-Adressen in seinen Anweisungen und hat wie in Ihrem Beispiel 64ki. Es verfügt jedoch über einen 15- Bit-Adressbus und einen 16-Bit-Datenbus. Es braucht nur 32ki Adressen und bekommt immer 2 Bytes mit jedem Ort. (Wenn ein Befehl 1 Byte benötigt, sendet er die Adresse mit dem geringsten fehlenden Bit, ruft in diesem Schritt beide Bytes ab und prüft dann das kleinste Bit der gewünschten Adresse, um zu entscheiden, welche Hälfte verwendet werden soll.)
Beachten Sie, dass Bank Switching, PAE usw., die von anderen erwähnt wurden, hier nicht relevant sind. Eine Speicherverwaltungseinheit verwendet möglicherweise 16-Bit-Adressen und verfügt über 20-Bit-Hardwareadressen. Daher muss die CPU die Daten umschalten und zuordnen, um den tatsächlichen 20-Bit-Adressbereich der adressierbaren RAM-Chips zu nutzen.
Geben Sie in Ihren Antworten unbedingt Einheiten an. "64ki". Von was? 8-Bit - Worte, es (noch) 64ki Herstellung Bytes von adressierbaren RAM. Dieser Schritt beseitigt Verwirrung und macht Probleme wie diese trivial.
quelle
Sie müssen die Wortgröße auch in Berechnungen verwenden. Die Antwort ist 64 KB.
Sie können 2 ^ 16 Wörter adressieren und jedes Wort ist 8 Bit (= 1 Byte). Daher sind es 64 KB.
Wenn die Wortgröße 16 Bit war. Die Antwort wäre 128 KB.
quelle
Es gibt zwei Seiten, was Ihr Lehrer wahrscheinlich möchte, dass Sie ihm sagen, und was die Realität ist.
Zuerst, was Ihr Lehrer wahrscheinlich möchte, dass Sie es ihm sagen.
"16 Bits können 2 ^ 16 Speicherplätze adressieren, jeder Platz hat 8 Bits. Wir können also einen 524288-Bit-Speicher (65536 Oktett) adressieren."
Dies spiegelt jedoch eine ziemlich vereinfachte Weltanschauung wider. Die Realität ist komplizierter und um eine endgültige Antwort zu geben, sind mehr Informationen erforderlich. Zu den Möglichkeiten, wie echte Systeme komplizierter sein können, gehören:
quelle