Wieviel Daten in eine PC RAM Adresse

Gast #2658922
bumb schrieb:
> Also jetzt nur mal fuer x86
>
> register koennen geladen werden mit byte, double, quad, octal
>
> 8 - 16 - 32 - 64 bits respektive (auf AMD64)

Nach Wikipedia: Als Register bezeichnet man in der Digital- oder 
Computertechnik Speicherbereiche, die innerhalb eines Prozessors direkt 
mit der eigentlichen Recheneinheit verbunden sind und die unmittelbaren 
Operanden und Ergebnisse aller Berechnungen aufnehmen. Register sind in 
der Regel höchstens so groß wie die Wortgröße des Prozessors (8, 16, 32 
oder 64 Bit).

Ich habe ja nach RAM (externen Speicher) gefragt. Warum ist eine 
RAM-Zelle immer ein Byte groß?
Gast #2659063
Juni schrieb:
> Ich habe ja nach RAM (externen Speicher) gefragt. Warum ist eine
> RAM-Zelle immer ein Byte groß?

Es geht darum, was die kleinste Dateneinheit ist, die man noch 
adressieren kann. Einzelne Bits im Speicher kann man auf dem PC nicht 
adressieren (aber es gibt Microcontroller, die können das). Die kleinste 
Dateneinheit, die man im PC adressieren kann, ist nunmal das Byte, d.h 
zwei aufeinanderfolgende Adressen adressieren zwei aufeinanderfolgende 
Bytes.
Gast #2659067
Ich verstehe so langsam...
Ein char ist (in C) glaub ich ein Byte, also die kleinste Einheit und 
ein Bitfeld ist egal wieviel Bits immer mind. ein Byte. Wenn ein µC ein 
Bit Adressieren kann, wie ist dann die Adresse, wenn nicht in HEX, weil 
ja immer ein Sprung von ein Byte, oder?
Gast #2659069
Je nach Architektur haben Bytes zwar verschiedene Adressen, aber es 
können manchmal auch nur Doppelworte auf einmal geschrieben werden (und 
dann an bestimmten Bytegrenzen ausgerichtet!) und um ein Byte zu 
schreiben muss das Doppelwort gelesen und verändert geschrieben werden. 
Das hängt ganz vom Speicherinterface ab, aber 8 Bit sind schon länger 
nicht mehr in :)
#2659101
Rolf Magnus schrieb:
> Juni schrieb:
>> Ich habe ja nach RAM (externen Speicher) gefragt. Warum ist eine
>> RAM-Zelle immer ein Byte groß?
>
> Weil das Byte so definiert ist - als kleinste adressierbare Einheit.

Definiert? Nein. Es gibt auch Bytes, die nicht 8 Bit lang sind. Siehe 
http://de.wikipedia.org/wiki/Byte

Aber daß sich die 8 durchgesetzt hat, hat einen ganz simplen Grund: 8 
ist eine Zweierpotenz - das macht Bitadressierung, Shiftoperationen, 
etc. innerhalb des Prozessors effizienter.

Das Muster setzt sich dann bei den Prozessoregistern fort: die sind eine 
Zweierpotenz Bytes breit.
Gast #2659809
Uhu Uhuhu schrieb:
> Rolf Magnus schrieb:
>> Juni schrieb:
>>> Ich habe ja nach RAM (externen Speicher) gefragt. Warum ist eine
>>> RAM-Zelle immer ein Byte groß?
>>
>> Weil das Byte so definiert ist - als kleinste adressierbare Einheit.
>
> Definiert?

Ja, zumindest ursprünglich mal. Es gibt da noch die Definition über den 
Zeichensatz, aber die ist heute ja aufgrund Wide- und Multibyte-Charsets 
nicht mehr sinnvoll.

> Es gibt auch Bytes, die nicht 8 Bit lang sind.

Ich hab nichts gegenteiliges behauptet. Wenn die kleinste adressierbare 
Einheit des jeweiligen Systems nicht 8 Bit lang ist, ist dort auch ein 
Byte nicht 8 Bit lang.

> Siehe http://de.wikipedia.org/wiki/Byte

"Der Begriff wurde 1956 von Werner Buchholz geprägt in einer frühen 
Designphase eines IBM-Computers.[3] Im Original beschrieb er eine Breite 
von sechs Bit und stellte die kleinste direkt adressierbare 
Speichereinheit eines entsprechenden Computers dar, und damit konnte man 
die Buchstaben und gängige Sonderzeichen zum Beispiel in Quelltexten von 
Programmen oder anderen Texten speichern (also  verschiedene Zeichen)."

Das ist eben die ursprüngliche Definition. Heute ist das allerdings 
durch unterschiedliches Verständnis ziemlich aufgeweicht, aber z.B. in C 
ist das Byte auch heute noch so definiert.
Gast #2659854
Klaus Wachtler schrieb:
> Juni schrieb:
>> Hi,
>> wieviel Daten können immer auf unterschiedlichen Windows Systemen in
>> eine RAM- Adresse geschrieben werden???
>
> Reinschreiben kannst du, soviel du willst.
> Rauslesen nur das letzte Byte.

die Frage ist ob es im Virtuelleadressen oder Physikalische geht? Jede 
Anwendung kann in die gleiche Virtuelle Adresse ihre werte 
reinschreibem.
#2659859
Rolf Magnus schrieb:
> Ja, zumindest ursprünglich mal.

Nein, definitiv nicht. Es war immer die kleinste direkt adressierbare 
Einheit und damit hardwareabhängig. Von einer "ursprünglichen 
Definition" kann nicht die Rede sein.

Die alten Fernschreiber hatten übrigens 5-Bit-Zeichen - Stichwort 
Baudot-Code -, die doppelt belegt waren. Umschaltzeichen wählten jeweils 
bei Bedarf die andere Ebene aus.

Frühe Conmputer nutzten Fernschreiber zumindst als Konsolschreiber.
Gast #2659864
Uhu Uhuhu schrieb:
> Rolf Magnus schrieb:
>> Ja, zumindest ursprünglich mal.
>
> Nein, definitiv nicht. Es war immer die kleinste direkt adressierbare
> Einheit und damit hardwareabhängig.

Ähm, das ist doch genau das, was ich geschrieben hab. Du hast behauptet, 
es sei nicht so:

Uhu Uhuhu schrieb:
> Rolf Magnus schrieb:
>> Juni schrieb:
>>> Ich habe ja nach RAM (externen Speicher) gefragt. Warum ist eine
>>> RAM-Zelle immer ein Byte groß?
>>
>> Weil das Byte so definiert ist - als kleinste adressierbare Einheit.
>
> Definiert? Nein.
Gast #2660493
Uhu Uhuhu schrieb:
> Die alten Fernschreiber hatten übrigens 5-Bit-Zeichen - Stichwort
> Baudot-Code

Dafür habe ich sogar Transcoder gebaut (Baudot<->Teletype ASCII). Aber 
niemalsnienicht ist einer auf die Idee gekommen, das Byte zu nennen.

Gruss Reinhard
#2660577
Evil schrieb:
> Rolf Magnus schrieb:
>> Heute ist das allerdings durch unterschiedliches Verständnis ziemlich
>> aufgeweicht, aber z.B. in C ist das Byte auch heute noch so definiert.
>
> das ein Byte = 6Bit ist???

Nein, daß (und ich schreibe es gerne nochmal..,) ein Byte die kleiste 
Einheit ist, die man einzeln adressieren kann, also in C-Sprache: Die 
kleinste Einheit, auf die man einen Zeiger definieren kann.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.