32 Bit, wieviele MB/GB lassen sich adressieren?

Gast #824715
Lesenswert?

Hi,

in meinem Skript steht, dass sich mit 32 Bit max. 4 GB Speicher 
adressieren lassen.

Aber wie kann ich das rechnerisch zeigen?

Meine Überlegung ist die folgende:

2^(32)=4.294.967.296 Bit


Bit ---> Byte umrechnen
4.294.967.296 Bit / 8 = 536.870.912 Byte

Byte ---> KiloByte umrechnen
536.870.912 Byte / 1024 = 524288 KB

KiloByte ---> MegaByte umrechnen
524288 KB / 1024 = 512 MB

Ab hier sehe ich schon, dass es falsch ist, aber warum? Wie kann ich 
dann zeigen, dass mit 32 Bit max. 4 GB Speicher adressiert werden 
können?


Danke für eure Hilfe



Lg
Gast #824718
Lesenswert?

Du hast schon richtig gerechnet, mit 32 Addressletungen kannst du
2^32 Stellen adressieren. Dies sind dann die 4G.
Wenn jede dieser Stellen 8 Bit Register besitzt, dann sind dies halt
4 Giga-Bytes.

Es kommt halt immer darauf an, was man damit adressiert.

Gruß Volker
Gast #824728
Lesenswert?

> Meine Überlegung ist die folgende:
> 2^(32)=4.294.967.296 Bit

Wieso Bit? Seit wann wird Speicher in Bit gerechnet? (Von den einzelnen 
Bits in FPGAs mal abgesehen ;-) )

Bei PCs und Mikrocontrollers wird normalerweise der Speicher in Byte
gerechnet. Also kann man mit einer 32bit Adresse auch grob 4 Gb (+paar 
Zerquetschte) adressieren. Aber Vorsicht, es gibt auch Adressierung von 
Datenworten mit 16Bit breite..... (z.B. AVR-Flashspeicher).

Die Speicherhersteller von DRAMS und SRAMS geben i.d.R. die Kapazität
in Bits an. Das muss aber nicht der Adressierung von "aussen" 
entsprechen.
Dazu muss man sich die Organisationsform anschauen.

<nicht 100% sicher>
Bei Festplatten wird auch nicht mehr in Bytes, sondern in Anzahl 
logischer Blöcke gerechnet. (Mit variabler Blockgröße) Das hängt glaub 
damit zusammen, dass bei IDE nur 16-bit Adressierung möglich ist. Dann 
werden 65535 Blöcke
mit jeweils ca. 512 Byte bis ??? Bytes adressiert.
</nicht 100% sicher>
#824827
Lesenswert?

Die Addressierung von Festplattenblöcken ist ne Geschichte für sich...
Ganz früher wurde direkt Lesekopf + Cylinder + Sektor angegeben.
Später dann haben die Platten dem Bios gemeldet, sie hätten 255 
Leseköpfe, und das intern umgerechnet...
Inzwischen arbeiten die ATA Platten meist im LBA48 Modus, hier wird nur 
noch eine 48bittige Blocknummer verwendet, bei 512Bytes/Block sind das 
dann max. 144115188075855872 Bytes.
Sollte erstmal wieder ein bischen reichen, das ständige rumgehampel mit 
Kapazitätsgrenzen (letzte war bei 128GiB) wurd ja schon fast lästig.

Zur Umrechnung von Bytes -> Kilobytes gibts hier ne Tabelle:
http://xkcd.com/394/
"Kilo" bedeutet je nach Kontext immer mal was anderes... Neulich erst 
eine Werbung für nen Computer mit "0,99 GB Ram" gesehen...
(Firma: student) #1004162
Lesenswert?

Hey liebe Leute,ich habe ein paar Fragen, die mir ganz stören. Danke für 
die Lösungen im Voraus!

1. wie wird die Daten im Speicher angeordent?

2. Wie wird der Speicher adressiert(angesprochen)?

3. Wo durch wird die die Größe des Adressraums eingeschränkt?

4. Was sind die Interrupts, wozu benötigt man sie?

5. Weshalb werden Prioritäten vergeben?

6. Wie werden Register gesichert beim Subroutinen-Aufruf,Kontext-Switch 
und Interrupt?
Gast #1176142
Lesenswert?

Ahhhhh, sowas nervt.

Das versucht man "selber Informationen zusammen[zu]tragen" und man 
findet bloß dämliches Gequatsche von Leuten die berechtigterweise nicht 
helfen wollen aber dafür seitenweise Dreck schreiben und damit auch noch 
gut bei google indexiert werden. Wenn ich für jedes "... machs selber 
WIR helfen dir da bestimmt nicht..." das ich ertragen musste einen ct 
bekommen würde wär ich der verdammt noch mal reichste Mensch des 
Universums.

Sucht ihr euch mal ne Beschäftigung, und/oder lernt soziale Kompetenz 
(bezogen auf "omfg... studier was andres!")

Cheers

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren