2016-03-24 8 views
2

Ich bin neu in der Computerarchitektur. Also korrigiere mich, wenn ich falsch liege.Wie funktioniert die Adressierung von Bytes?

Wenn ein Speichermodul aus 8 Speicherchips besteht und jeder Chip 4 Bits pro Adresse speichert, kann ich durch Anwenden einer Adresse auf den Adressstift des Moduls (8 x 4 =) 32 Bit von dieser Adresse im Modul erhalten . Die Byte-Adressierung sagt jedoch, dass jedes Byte eine Adresse hat. Aber hier greife ich auf 32 Bit unter Verwendung einer Adresse zu. Wie ist es möglich?

Ich denke, wenn jeder Chip 1bit pro Adresse speichert, dann kann ich durch Anwenden einer Adresse auf das Modul auf 8bit oder ein Byte zugreifen.

+1

Welchen echten Wort-Chip sprechen Sie? – Michael

+0

Sie sollten lesen [Was jeder Programmierer über Speicher wissen sollte] (http://www.akkadia.org/drepper/cpumemory.pdf). Es wurde hauptsächlich geschrieben, um zu erklären, warum es beim Codieren wichtig ist, sich um Cache zu kümmern, aber es beginnt mit einem Hintergrund darüber, wie Speicher angeordnet und mit CPUs verbunden ist, bis hin zu DDR DIMMs und dem Signalmechanismus zum Senden von Adressen an DIMMs Schreiben oder Lesen von Daten auf demselben Bus. Es hat eine vollständigere Antwort auf diese Frage, als ich bereit bin zu paraphrasieren und zu tippen. http://stackoverflow.com/tags/x86/info hat einige andere gute Links für x86. –

+0

@Michael Ich dachte, er redet von DIMMs. Meine Antwort ignorierte den Cache, der wahrscheinlich die praktischste Lösung ist. – John

Antwort

0

Sie sagen, dass jeder Chip 4 Bits pro Adresse speichert und Sie 8 auf demselben Adressbus haben. Der limitierende Faktor ist der Adressbus. Der Adressbus muss 32 Zeilen für jedes Byte in einer 32-Bit-Architektur haben, um adressierbar zu sein. Wenn Sie 8 Chips haben, die jeweils 4 Bits als Antwort auf dieselbe Adresse erzeugen, dann haben Sie 32 Bits pro Adresse. Der Vorteil einer solchen Anordnung wäre, dass die Adressbusleitungen um 2 reduziert werden könnten, ohne den adressierbaren Bereich zu verkleinern (nur die Auflösung).

Sie haben richtig gedacht, dass jeder Chip 1 Bit pro Adresse erzeugen muss, um Byteadressierung zu ermöglichen.

Das ist die Theorie, in der Praxis würde ich vermuten, dass eine Lösung entworfen werden könnte, wo die 4 Bits zeitgemultiplext werden könnten, was jeden einzeln zugänglich macht.

Ich habe lange Zeit gehört, nicht weniger als 32 Bits gleichzeitig zu adressieren, da dies die kleinste adressierbare Einheit sein kann. Sicherlich würde es Sinn machen, wenn 2Gb-4Gb die physikalische Grenze der 32-Bit-Byte-Adressierung ist.

+0

Also wie kann jedes Byte von diesem 32bit oder 4byte getrennt in Byte Adressierungsschema adressiert werden? – Kaustav

+0

Bit-Maskierung und/oder Bit-Verschiebung. Wenn Sie Bits benötigen, gibt es normalerweise sprachspezifische boolsche Container. Punkt ist, dass dies bei eingebetteten Systemen nicht unbedingt ungewöhnlich ist, obwohl es keine 32-Bit-Standardarchitektur ist. Was ist der Chip? – John

+0

Meine Frage ist nicht sprachspezifisch. Es geht um die Organisation. Wenn die Adressen innerhalb der einzelnen Chips mehr als 1 Bit enthalten, dann bezieht sich eine Adresse auf mehr als ein Byte. Wie wird die Byte-Adressierung hier angewendet? – Kaustav