Adressbusbereich berechnen

DefconDev

Commander
Registriert
Jan. 2008
Beiträge
2.608
Adressbusbreite von 32Bit. Wie groß ist der max. Adressrbereich der verwendeten CPU in Gbyte

Max. Adressbereich = 2^32 bzw. 2^Summe der CPU-Adressbusbreite/leitungen[Byte]

ergibt in meinen Augen in Byte 4294967296

oder wenn man durch 1024 teilt =4194304 MB

oder wenn man nochmal durch 1024 teilt = 4096 Gigabyte.

Ist meine Rechnung korrekt?

Was sagt dieses Ergebnis des Adressbereichs im Bezug auf die folgenden Kompenenten aus, RAM ROM I/O, das die drei sich ca. 4000gb aufteilen müssen also nochmal durch drei, oder dass jede komponenten einen adressraum von 4096gb adressieren kann?
 
Achtung, du verwechselst hier Bit mit Byte, sowie KB mit MB.

2^32 Speicherzellen = 4294967296 Speicherzellen
4294967296 Speicherzellen = 4294967296 Byte
4294967296 Byte / 1024 = 4194304 KB
4194304 KB / 1024 = 4096 MB
4096 MB / 1024 = 4 GB

Wichtig in dem Zusammenhang:
Die Breite des Adressbus ist indirekt mit der Breite des Datenbus verknüpft, da der Inhalt einer 32-Bit-Speicherstelle als Adresse einer weiteren Speicherstelle interpretiert werden kann. Mit einem 32-Bit-Adressbus lassen sich 2^32 Speicherstellen mit jeweils einem Byte adressieren. Dies entspricht 4 GByte, da die kleinste adressierbare Einheit ein Byte ist und jede Adress-Leitung ein Byte adressieren kann.

Quelle: Wikipedia
 
Zuletzt bearbeitet:
Also in dem Script welches ich verwende, steht drinnen.

32 Adressleitungen entsprechen 32 bit. Weshalb ist die Einheit des Adressbereichs dann mit Byte angegeben, do doch bit die korrekte einheit wäre. Begründung:

Eine adressierbare Speichereinheit besteht aus einem Block von 8 Speicherzellen. Daraus folgt die größenangabe in Byte.

Also demnach müsste ich dann doch richtig liegen oder?
 
Nein du liegst nicht richtig. 32bit bedeuten 4Gigabyte addressierbarer Speicher nicht 4 Terabyte.
Und die "Einheit" des Addressbereichs wird immer in Bit angegeben. Wir haben 32bit Prozessoren, nicht 32Byte Prozessoren.
 
Was ich aber gerade sehe ich habe kilobyte vergessen also müsste ich nochmalk durch 1024 teilen und erhalten dann 4 gb
 
Ja, das mit den 8 Speicherzellen stimmt schon. Die CPU adressiert nicht einzelne Bits, sondern jeweils Bytes. Meine Notation ist daher nicht ganz korrekt. Es müsste heißen, dass die CPU in der Lage ist, insgesamt 4294967296 solcher Speicherzellen zu adressieren. Da eine Speicherzelle 8 Bits umfasst, sind das also 34359738368 Bits, was wiederum 4 GB entspricht.

Wenn man tatsächlich 4096 GB adressieren könnte, wäre die 64 Bit-Architektur noch in weiter Ferne. Du hast im Schritt von Byte zu MB die KB vergessen. Dividiere 4096 nochmal durch 1024, dann stimmt das Ergebnis: 4 GB
 
Adressbus

Ein Adressbus ist im Gegensatz zum Datenbus ein Bus, der nur Speicheradressen überträgt. Die Busbreite, also die Anzahl der Verbindungsleitungen, bestimmt dabei, wie viel Speicher direkt adressiert werden kann. Wenn ein Adressbus n Adressleitungen hat, können 2^n Speicherstellen direkt adressiert werden. Bei einem System mit 32 Adressleitungen können also 2^{32}=4.294.967.296 Byte (eine Speicherzelle = 8 Bit) = 4 GiByte angesprochen werden.


Steh ich gerade auf dem schlauch? Ich muss doch gar nicht durch 8 teilen
 
siehe oben, ich hab meine Notation grad nochmal angepasst. Jetzt sollts klar sein.

Und wenn du für deine Aufgabe noch ein wenig strebern möchtest, kannst du noch erwähnen, dass es in der Tat möglich ist, mit einer 32 Bit CPU mehr als 4 GB RAM zu adressieren: PAE ist hier das Schlüsselwort. Kompromiss ist hierbei die etwas reduzierte Verarbeitungsgeschwindigkeit.
 
Zuletzt bearbeitet:
ok die umrechnung haben wir nun jetzt^^

Aber was bedeutet das für rom/ram und I/O , teilen sich diese Komponenten dann diesen adressraum also 4gb/3 oder kann jede dieser komponenten auf 4gb komplett zugreifen?
 
Ja, der Bereich wird aufgeteilt. Für Hardware ist ein gewisser Bereich an Adressen reserviert, der nicht für andere Zwecke verwendet werden kann. Angenommen, du hast 4 GB RAM verbaut und verwendest ein 32 Bit Windows. Dann hast du tatsächlich einen Speicherbereich von etwa 3.75 GB, den du verwenden kannst - je nach Hardware-Situation.

(...) Im x86-Umfeld sind 2,0 bis 3,75 GB RAM üblicherweise nutzbar, die genauen Werte hängen vom Mainboard und dem Ausbau an internen Erweiterungskarten sowie von den BIOS-Einstellungen ab. (...)

Quelle: Wikipedia
 
Achso, stimmt. Total vergessen mit den 32bit windows und en 3-4gb. Aber wie genau groß die jeweilige adressierung ist für die Komponenten ist unterschiedlich oder? also da gibt es keine genaue Beschreibung die sagt, der ROM darf nur 512mb benutzen und ram 3gb und I/O den rest. Das unterscheidet sich dann, wie du schon sagtest von der jeweiligen hardware!?
 
Zurück
Oben