Zugriff auf RAM
Zugriff auf RAM
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.
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
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:1) Stimmt das soweit?
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:2) Heißt das also, dass dadurch ein maximaler RAM-Speicher bei einem 32-Bit-System 1 GB nicht überschreiten darf??
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: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??
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).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.
Zuletzt geändert von itportal2 am 22. Mär 2009 11:28, insgesamt 1-mal geändert.
- Tigger
- Kernelcompilierer
- Beiträge: 404
- Registriert: 26. Okt 2007 17:35
- Wohnort: Hofheim
- Kontaktdaten:
Re: Zugriff auf RAM
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.itportal2 hat geschrieben:levitin hat geschrieben: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: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??
Re: Zugriff auf RAM
Stimmt. Habe ich ja auch bei 2) gesagt.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.

Re: Zugriff auf RAM
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
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.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 istfür besonders wißbegierige gibt es TGdI-2
- Tigger
- Kernelcompilierer
- Beiträge: 404
- Registriert: 26. Okt 2007 17:35
- Wohnort: Hofheim
- Kontaktdaten:
Re: Zugriff auf RAM
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 istfü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
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
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.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.
//Edit: Mit dem eingesetzten Betriebssystem hat das erstmal wenig zu tun, wie Prozessor / Northbridge und Speicher kommunizieren.