it-swarm.com.de

Wenn eine CPU einen 16-Bit-Adressbus und 8-Bit-Wörter hat, wie viel Speicher kann sie adressieren?

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

23
eZ_Harry

Ein Wort ist in den meisten Architekturen das größte Datenelement, das in einer einzigen Operation 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.

Also, Ihre CPU wird in der Lage sein, 64 KB (2 ^ 16) zu adressieren wird aber nur in der Lage sein, in einer einzigen Operation 8 Bits zu übertragen.

38
Overmind

Ein Maschinenwort oder allgemein nur Wort ist die größte Dateneinheit, die die CPU unter Verwendung allgemeiner Anweisungen als Ganzes 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 der Größe des Maschinenworts entsprechen, aber es ist wahrscheinlich in Ihrem Fall.

Eine 8-Bit-adressierbare Einheit in Kombination mit einem 16-Bit-Adressbus beträgt 64 KB an RAM, die die CPU adressieren kann.

21

Was bedeuten auch 8-Bit-Wörter?

Im Kontext geht die Wortgröße mit der Adressgröße einher, um den Speicherbus zu beschreiben. Es gibt 16 Bits, die in den Speicher fließen, so dass er 64ki-Positionen auswählen kann. Dann enthält jede Stelle 8 Bits.

Die Wortgröße hier stimmt möglicherweise nicht mit der Größe der CPU-Recheneinheit überein, und dies stimmt möglicherweise nicht mit der logischen Granularität bei der Adressierung überein.

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. Aber es hat 15Bits Adressbus und 16 Bits Datenbus. Es benötigt nur 32ki Adressen und bekommt immer 2 Bytes mit jedem Ort. (Wenn ein Befehl 1 Byte wollte, würde es die Adresse mit dem kleinsten Bit versenden fehlt, rufe beide Bytes in diesem Schritt ab und betrachte 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 eine 20-Bit-Hardwareadresse. Daher muss die CPU die Daten umschalten und zuordnen, um den tatsächlichen 20-Bit-Adressbereich von RAM Chips nutzen zu können angesprochen.

Achten Sie darauf, Einheiten in Ihren Antworten anzugeben."64ki". Von welchen? 8-Bit-Wörtern sind es (noch) 64ki Bytesvon adressierbarem RAM. Dieser Schritt beseitigt Verwirrung und macht Probleme wie diese trivial .

2
JDługosz

Sie müssen auch die Wortgröße 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.

0
Nuri Tasdemir

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:.

  • Viele Prozessoren verfügen nicht über eine dedizierte IO Zuordnung, daher müssen möglicherweise Teile des Speicheradressraums für andere Zwecke als den Speicher verwendet werden.
  • Die "Wortgröße" des Prozessors ist nicht unbedingt gleich der Breite des Speicherdatenbusses oder der kleinsten adressierbaren Speichereinheit.
  • Einige Busse ermöglichen die Bewegung von Dateneinheiten unterschiedlicher Größe. Dies erfordert eine weitere Adressierung, die von Bits des Hauptadressbusses behandelt werden kann oder nicht.
  • Einige Busse multiplexen unterschiedliche Signale auf denselben Leitungen. Zum Beispiel verwendet der SDRAM die gleichen Adressleitungen zweimal, um eine "Zeilenadresse" und eine "Spaltenadresse" zu senden.
  • Viele Systeme verwendeten Bankwechselansätze, um Programmen den Zugriff auf mehr Speicher zu ermöglichen, als der Prozessor nativ adressieren könnte.
0
plugwash