Seite 1 von 1

Zugriff auf RAM

Verfasst: 22. Mär 2009 09:03
von levitin
wenn man ein ganz gewöhnliches DRAM betrachtet, desen Kapazität 1 GB ist, dann enthält es 2^30 * 8 Speicherzellen (einzelnen gespeicherten Bits).

http://upload.wikimedia.org/wikipedia/d ... enfeld.png

Jedes Bit (einzelne Speicherzelle) kann jetzt mit log2(2^30 * 8 / 2) = 32 Bit angesprochen werden ( / 2, weil Zeilen (RAS) und Spalten (CAS) getrennt gesendet werden)

1) Stimmt das soweit?
2) Heißt das also, dass dadurch ein maximaler RAM-Speicher bei einem 32-Bit-System 1 GB nicht überschreiten darf??
3) Wie werden bei einem Zugriff auf RAM 32-Bit-Datenleitungen mit den Daten gefüllt, wenn es ein punktweiser Zugriff auf einen konkreten Bit stattfindet??

_________________________________________________________

Übungsblatt 5 - Aufgabe 3a)

Frage: wie viele Bits sind für die Adressierung nötig, um mit 32-Bit-System den kompletten Hauptspeicher (1024 MB) anzusprechen?
MuLö: 1024 MB = 1024 * 2^20 = 2^30 Byte
=> 30 Bit für den Haptspeicheradressierung nötig

4) 1024 MB-RAM hat also hier 30 Adressen und man bekommt 1 Byte pro Zugriff zurück.
Woher weiss ich aus der Aufgabenstellung, wie das RAM organisiert ist? Wie viele BIT er also pro Zugriff zurückliefert => wie viele Adressen man braucht, um kompletten Hauptspeicher anzusprechen? Es git ja mehrere befehle, wie lw, lb u.s.w. . Die Adressierung muss ja dabei trotzdem eindeutig sein.

Re: Zugriff auf RAM

Verfasst: 22. Mär 2009 11:18
von itportal2
levitin hat geschrieben:1) Stimmt das soweit?
Eigentlich nicht, ich kann nicht ganz verstehen wieso du durch 2 teilst. 2^30 * 8 = 2^33, also du brauchst 33 und nicht 32 bits.
levitin hat geschrieben:2) Heißt das also, dass dadurch ein maximaler RAM-Speicher bei einem 32-Bit-System 1 GB nicht überschreiten darf??
Abhängig von der Adressierung von dem System. Meistens adressiert man nicht Bits, sondern Bytes und dadurch ist die maximale RAM Speichergröße 4GB. Aber es ist immer abhängig von der Architektur - manchmal kannst du auch mehr als 2^n Bytes adressieren bei n-Bit System.
levitin hat geschrieben:3) Wie werden bei einem Zugriff auf RAM 32-Bit-Datenleitungen mit den Daten gefüllt, wenn es ein punktweiser Zugriff auf einen konkreten Bit stattfindet??
Der Zugriff ist meistens nicht auf 1 Bit, sondern auf 1 Wort, die 32 Bit ist. Hier musst du aber nicht Adressleitung mit Datenleitung verwechseln.
levitin hat geschrieben:4) 1024 MB-RAM hat also hier 30 Adressen und man bekommt 1 Byte pro Zugriff zurück.
Woher weiss ich aus der Aufgabenstellung, wie das RAM organisiert ist? Wie viele BIT er also pro Zugriff zurückliefert => wie viele Adressen man braucht, um kompletten Hauptspeicher anzusprechen? Es git ja mehrere befehle, wie lw, lb u.s.w. . Die Adressierung muss ja dabei trotzdem eindeutig sein.
Bei den meisten Architekruten ist die Adressierung Byteweiße organisiert, sprich jede Adresse entspricht ein Byte. Ich glaube, das kannst du wohl als gegeben nehmen. Die Datenleitung auf eine 32 bit Architektur ist ja 32 bit, sprich du kannst auf einmal direkt auf 32 bit Daten Operationen anwenden. Wenn du Befehle für Bytes angibst (sb, lb), dann benutzt das System nur die niedrigwertige 8 bits von der Datenleitung. Das kann als Verschwendung zählen, aber kann sehr Hilfreich sein (zB bei Stringbearbeitung).

Re: Zugriff auf RAM

Verfasst: 22. Mär 2009 11:27
von Tigger
itportal2 hat geschrieben:
levitin hat geschrieben:
levitin hat geschrieben:3) Wie werden bei einem Zugriff auf RAM 32-Bit-Datenleitungen mit den Daten gefüllt, wenn es ein punktweiser Zugriff auf einen konkreten Bit stattfindet??
Der Zugriff ist meistens nicht auf 1 Bit, sondern auf 1 Wort, die 32 Bit ist. Hier musst du aber nicht Adressleitung mit Datenleitung verwechseln.
Naja, beim Ram wird doch immer auf Byte zugegriffen. Der Prozessor arbeitet zwar meistens auf Wörtern, aber die Bytes müssen doch trotzdem sequenziell aus dem Speicher gelesen werden. Ansonsten wäre ja die Unterscheidung von Big und Little-Endian hinfällg. Außerdem müsste man sich beim Wechsel von 32 auf 64 Bit Systemen komplett anderen Arbeitsspeicher kaufen.

Re: Zugriff auf RAM

Verfasst: 22. Mär 2009 11:31
von itportal2
Tigger hat geschrieben:Naja, beim Ram wird doch immer auf Byte zugegriffen. Der Prozessor arbeitet zwar meistens auf Wörtern, aber die Bytes müssen doch trotzdem sequenziell aus dem Speicher gelesen werden. Ansonsten wäre ja die Unterscheidung von Big und Little-Endian hinfällg. Außerdem müsste man sich beim Wechsel von 32 auf 64 Bit Systemen komplett anderen Arbeitsspeicher kaufen.
Stimmt. Habe ich ja auch bei 2) gesagt. :)

Re: Zugriff auf RAM

Verfasst: 22. Mär 2009 11:43
von levitin
habe trotzdem nicht verstanden, wie nach einem punktweisen Zugriff auf einen Kondensator, der entweder geladen, oder entladen werden kann, man 32 Bit Information bekommt, aber danke für die Hinweise, dass es am besten für die Klausur als eine Axiom anzunehmen ist ;-) für besonders wißbegierige gibt es TGdI-2 ;-)

Re: Zugriff auf RAM

Verfasst: 22. Mär 2009 11:47
von itportal2
levitin hat geschrieben:habe trotzdem nicht verstanden, wie nach einem punktweisen Zugriff auf einen Kondensator, der entweder geladen, oder entladen werden kann, man 32 Bit Information bekommt, aber danke für die Hinweise, dass es am besten für die Klausur als eine Axiom anzunehmen ist ;-) für besonders wißbegierige gibt es TGdI-2 ;-)
Du kannst nicht 32 bit informationen aus einem Kondensator einlesen. Du kannst nur 1 Bit einlesen, weil du in einem Kondensator nur 1 bit speichern kannst. Man arbeitet meistens mit 32 Bit Daten, weil du mit einem Befehl direkter Zugriff auf 32 Kondensatoren hast, und nicht nur auf 1.

Re: Zugriff auf RAM

Verfasst: 22. Mär 2009 11:57
von Tigger
levitin hat geschrieben:habe trotzdem nicht verstanden, wie nach einem punktweisen Zugriff auf einen Kondensator, der entweder geladen, oder entladen werden kann, man 32 Bit Information bekommt, aber danke für die Hinweise, dass es am besten für die Klausur als eine Axiom anzunehmen ist ;-) für besonders wißbegierige gibt es TGdI-2 ;-)

Stells dir so vor: Du hast eine "Tabelle" aus Leitungen: 8 vertikale Leitungen (deine Bits). und 2^30 Horizontalen, dass sind deine Adressen. An den Knoten sind die Leitungen mit Kondensatoren verbunden, die entweder den Strom durchlassen oder nicht (je nachdem was gerade darin gespeichert ist). Jetzt wählst du mit einer Adresse eine von den 2^30 horizontalen Leitungen aus und legst Strom drauf. Und unten hast du jetzt deine 8 Leitungen auf denen jetzt entweder Strom oder kein Strom fließt. So hast du ein Byte ausgelesen. Wenn du das jetzt 4 mal hintereinander machst, hast du ein Wort ausgelesen. In der Realität ist das ganze noch ein bisschen Komplizierter, aber das Prinzip sollte klar sein.

Re: Zugriff auf RAM

Verfasst: 22. Mär 2009 12:08
von levitin
aha, jetzt wird mir Prinzip viel klarer :) Sehr nützlich für die Vorstellung darüber, wie das ganze auf der Bit-Ebene funktioniert. Danke )

Re: Zugriff auf RAM

Verfasst: 22. Mär 2009 16:17
von Steven
Tigger hat geschrieben:Naja, beim Ram wird doch immer auf Byte zugegriffen. Der Prozessor arbeitet zwar meistens auf Wörtern, aber die Bytes müssen doch trotzdem sequenziell aus dem Speicher gelesen werden. Ansonsten wäre ja die Unterscheidung von Big und Little-Endian hinfällg. Außerdem müsste man sich beim Wechsel von 32 auf 64 Bit Systemen komplett anderen Arbeitsspeicher kaufen.
Das stimmt imho so nicht. Ein Pentium hat z.B. einen Speicherbus von 64 Bit. Deshalb musste man damals Rambus-Speicher auch immer paarweise einsetzten, bis es die Module passend gab. Die Endianess musst du dann trotzdem noch spezifizieren. Eine ganz gute Tabelle mit den Busbreiten der verschiedenen RAM-Typen gibt es unter http://dch-faq.de/kap08.html.

//Edit: Mit dem eingesetzten Betriebssystem hat das erstmal wenig zu tun, wie Prozessor / Northbridge und Speicher kommunizieren.