PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : "Speicheradressierung" wie zu rechnen.


Fragender
2002-11-10, 15:31:27
Tach Leute ist bestimmt nicht wirklich das richtige Forum aber ich wusste auch nicht wo ich es sonst hätte reinschreiben sollen.

Ich hab da mal ein kleines Problem. Und zwar muss ich ausrechnen wieviel Leitungen (Bits) der Adressbus benötigt wenn man 64MB Speicher adressieren will und wie man das rechnet.

Es ist ja so das man bei einem 8-Bit-Parallelbus genau 256 Adressen ansprechen kann. Halt 8 Bit zu einem Byte zusammengefasst.

Ich hoffe ihr versteht wovon ich spreche ich tue es nämlich nicht so richtig;)

Wäre für Lösungen und kurze Rechen erklärung sehr dankbar.

aths
2002-11-10, 16:31:02
Originally posted by Fragender
Tach Leute ist bestimmt nicht wirklich das richtige Forum aber ich wusste auch nicht wo ich es sonst hätte reinschreiben sollen.

Ich hab da mal ein kleines Problem. Und zwar muss ich ausrechnen wieviel Leitungen (Bits) der Adressbus benötigt wenn man 64MB Speicher adressieren will und wie man das rechnet.

Es ist ja so das man bei einem 8-Bit-Parallelbus genau 256 Adressen ansprechen kann. Halt 8 Bit zu einem Byte zusammengefasst.

Ich hoffe ihr versteht wovon ich spreche ich tue es nämlich nicht so richtig;)

Wäre für Lösungen und kurze Rechen erklärung sehr dankbar. 64 MiB = 67108864 Byte. Bei Byteweiser Adressung braucht man 26 Adressleitungen, da 2^26 = 67108864.

Wie kommt man darauf? Der "einfache" Weg ist, dass man weiß, dass folgendes gilt 2^10 = 1 KiB, 2^20 = 1 MiB usw... Da wir 64 MiB haben, also 2^6 (=64) mal 1 MiB, rechnen wir 20+6 = 26.

Natürlich kann man auch den Logarithmus (Umkehrfunktion von "X hoch Y") bemühen. Da der Logarithmus zur Basis 2 auf den wenigsten Taschenrechnern implementiert ist, wenden wir ein einfaches Logarithmengesetz an und rechen lg (67108864) / lg (2) = 26.

Die Basis bei diesem Log ist egal, es muss aber natürlich sowohl über- als auch unterhalb des Bruchstriches die gleiche Basis verwendet werden. (Also entweder log oder ln.)

Xmas
2002-11-10, 17:27:02
aths hat die Rechnung ja schon vorgemacht. Nun muss man noch die sog. Granularität des Speicherinterfaces einbeziehen, und beachten welcher Adressbus gemeint ist.
CPUs können intern/logisch üblicherweise byteweise adressieren. Bei 64-Bit DDR-RAM werden aber immer 128 Bit, also 16 Byte gelesen. Vom Speichercontroller zum RAM braucht man in diesem Fall also nur 22 Adressleitungen, um 64 MiB zu adressieren.

GloomY
2002-11-11, 03:57:06
Öhm, bin ich momentan so besoffen, daß ich nix kapier' und daß die vorgegebenen 64 MB gleich 64 MiB sind?

64 MB sind meiner Meinung nach 64 * (1024)² Bytes = 64 * (1024)² * 8 Bit = 512 MBit. (edit: also ich mein' natürlich 512 * (1024)² Bit ;) )

Nach dieser Rechnung bräuchte man 29 statt 26 Adressleitungen...

mapel110
2002-11-11, 04:05:58
Originally posted by GloomY
Öhm, bin ich momentan so besoffen, daß ich nix kapier' und daß die vorgegebenen 64 MB gleich 64 MiB sind?


LOL

ich habs auch so verstanden, als ob sie es einfach gleichgesetzt haben ;)

btw ich bin nicht besoffen :D

aths
2002-11-11, 07:42:13
Originally posted by GloomY
Nach dieser Rechnung bräuchte man 29 statt 26 Adressleitungen... Man adressiert aber (aus CPU-Sicht) einzelne Bytes statt Bits. Mir ist kein (PC-) RAM bekannt, der Bitweise adressiert wird.

GloomY
2002-11-11, 12:28:54
Originally posted by aths
Man adressiert aber (aus CPU-Sicht) einzelne Bytes statt Bits.Ja, ist mir heute nacht auch wieder eingefallen... :bonk:

edit:
Originally posted by aths
Mir ist kein (PC-) RAM bekannt, der Bitweise adressiert wird.Richtig, da alle digitalen Rechenmaschinen auf der Von-Neumann Architektur beruhen, dessen Merkmal u.a. ist, daß die Speicherzellen eine Größe von einem Byte besitzen...

aths
2002-11-11, 18:26:47
Originally posted by GloomY
Richtig, da alle digitalen Rechenmaschinen auf der Von-Neumann Architektur beruhen, dessen Merkmal u.a. ist, daß die Speicherzellen eine Größe von einem Byte besitzen... Soweit mir bekannt, hat das nichts mit der Von-Neumann-Architektur zu tun. Die besagt u.a., dass Code und Daten im gleichen Speicher gehalten werden, und etwas über die Grundbestandteile des Rechners, aber imo nichts über eine byteweise Adressierung.

Demirug
2002-11-11, 18:35:55
richtig aths, Die Von-Neumann-Architektur beschreibt ein system das für Daten und Programm den gleichen speicher benutzt. Streng genommen folgt eine moderne CPU nicht mehr der Von-Neumann-Architektur da für daten und code unterschiedliche Caches benutzten. Jetzt könnte man natürlich einwenden das dies ja egal ist und in den meisten fällen ist das auch richtig aber im falle von selbstmodizierendem code (was in der Von-Neumann-Architektur erlaubt ist) kann man ganz schnell probleme bekommen.

GloomY
2002-11-11, 22:46:14
Originally posted by aths
Soweit mir bekannt, hat das nichts mit der Von-Neumann-Architektur zu tun. Die besagt u.a., dass Code und Daten im gleichen Speicher gehalten werden, und etwas über die Grundbestandteile des Rechners, aber imo nichts über eine byteweise Adressierung. Tja, da steht in meinem Info1 Skript aber was anderes:

"Aufbau eines Von-Neumann Rechners:

Organisation des Speichers:
- Folge von Speicherzellen der Größe von 8 Bits (Byte)
- uvm."

Leider ist die Info1-HP (http://wwwipr.ira.uka.de/info1/) down, dann könnte ich dir die Vorlesungsfolien zeigen. So mußt du es mir einfach glauben...
Originally posted by Demirug
richtig aths, Die Von-Neumann-Architektur beschreibt ein system das für Daten und Programm den gleichen speicher benutzt. Streng genommen folgt eine moderne CPU nicht mehr der Von-Neumann-Architektur da für daten und code unterschiedliche Caches benutzten.Auch nicht ganz richtig.

Die aufgeteilten Caches ("Hardvard Architektur") sind durchaus mit der Forderung von-Neumanns zu vereinen, daß Code und Daten zusammen im (Haupt-)Speicher liegen sollen.
Denn ein Cache ist ja nur ein schneller Zwischenspeicher, der eine Kopie des Inhaltes des Hauptspeichers beinhaltet (natürlich nur Teile davon).

Außerdem geht es um den Hauptspeicher. So etwas wie Caches sind imho für Von-Neumann (ist doch in den 50ern gestorben, oder?) viel zu neu. Davon abgesehen ist es für die Funktionsweise der Rechenmaschine vollkommen unerheblich, ob nun Caches verwendet werden oder nicht. Ein Programm bekommt davon eh' nichts mit...

btw: In meinem Skript ist die Von-Neumann Architektur in Verbindung mit der Harvard-Cache-Architektur sogar explizit mit einem Blockdiagramm erwähnt.

Leider habe ich auch keinen Scanner... :(

Originally posted by Demirug
Jetzt könnte man natürlich einwenden das dies ja egal ist und in den meisten fällen ist das auch richtig aber im falle von selbstmodizierendem code (was in der Von-Neumann-Architektur erlaubt ist) kann man ganz schnell probleme bekommen. Was für Probleme?

Marcel
2002-11-12, 00:15:14
Originally posted by GloomY
Tja, da steht in meinem Info1 Skript aber was anderes:

"Aufbau eines Von-Neumann Rechners:

Organisation des Speichers:
- Folge von Speicherzellen der Größe von 8 Bits (Byte)
- uvm."

Leider ist die Info1-HP (http://wwwipr.ira.uka.de/info1/) down, dann könnte ich dir die Vorlesungsfolien zeigen. So mußt du es mir einfach glauben...
Auch nicht ganz richtig.


Es gibt nur eine einzige Wahrheit.
Und die ist von Prof zu Prof verschieden.

Von Neumann ist 1957 gestorben, zu einer Zeit, als es noch normal war, den Speicher in Zellen zu unterteilen, die genau ein Wort (gemäß der Wortlänge der CPU) lang sind. Und damals war die Wortlänge alles mögliche, aber nicht 8 Bit. ASCII war eh noch ein Fremdwort...
Der Manchester Mark 1 (http://www.computer50.org/mark1/MM1.html), an dem von Neumann mitgearbeitet hat und als der erste funktionierende von-Neumann-Rechner gilt, hat eine Wortlänge von 40 Bit: "Store organised in 40-bit addressable "line"s, holding one 40-bit number or two 20-bit instructions"

Ich bin mir ziemlich sicher, dass der Prof. Dr.-Ing. H. Wörn sich mit den 8 Bit als Merkmal eines vNR vertan hat.
Zumal das viel konkreter als die sonstigen Spezis wäre; ansonsten ist der vNR doch nur ein grobes Architektur-Modell.

Originally posted by GloomY
Außerdem geht es um den Hauptspeicher. So etwas wie Caches sind imho für Von-Neumann (ist doch in den 50ern gestorben, oder?) viel zu neu.

von Neumann (http://www.salem.mass.edu/~tevans/VonNeuma.htm) ist 1957 gestorben, während der Cache erst 1965 von Wilkes erfunden (http://www.thocp.net/timeline/1965.htm) wurde.

Gruß,
Marcel

Lokadamus
2002-11-12, 10:37:07
mmm...

Uns hat man gesagt, das das Von-Neumann-Prinzip einfach von einer bit-weisen Speicherung ausgeht, alleine aus dem Grund schon, weil das amerikanische ABC mit nur 7 Bit auskommt und das 8 Bit wegen Europa dazugekommen ist ... wenn man nach "von neumann architektur" bei Metager sucht, findet man nur Hinweise auf das Prinzip zur Speicherung von Bits (und Voll- und Halbaddierer) ... genauso sollte man bedenken, das Code und Daten zwar im Speicher gehalten werden, beide aber in einzelnen Bereichen, wenn ich es richtig verstanden habe, ansonsten korrigiert mich ...

GloomY
2002-11-12, 10:52:18
Originally posted by Marcel
Es gibt nur eine einzige Wahrheit.
Und die ist von Prof zu Prof verschieden.

Von Neumann ist 1957 gestorben, zu einer Zeit, als es noch normal war, den Speicher in Zellen zu unterteilen, die genau ein Wort (gemäß der Wortlänge der CPU) lang sind. Und damals war die Wortlänge alles mögliche, aber nicht 8 Bit. ASCII war eh noch ein Fremdwort...
Der Manchester Mark 1 (http://www.computer50.org/mark1/MM1.html), an dem von Neumann mitgearbeitet hat und als der erste funktionierende von-Neumann-Rechner gilt, hat eine Wortlänge von 40 Bit: "Store organised in 40-bit addressable "line"s, holding one 40-bit number or two 20-bit instructions"Ok, da weißt du mehr als ich ;)
Originally posted by Marcel
Ich bin mir ziemlich sicher, dass der Prof. Dr.-Ing. H. Wörn sich mit den 8 Bit als Merkmal eines vNR vertan hat.Oh Mann, erst so eine grottenschlechte Vorlesung und dann noch nicht mal inhaltlich korrekt :(

Wörn for President ;)
Originally posted by Marcel
Zumal das viel konkreter als die sonstigen Spezis wäre; ansonsten ist der vNR doch nur ein grobes Architektur-Modell.Richtig.

Marcel
2002-11-12, 12:42:18
Originally posted by GloomY
Ok, da weißt du mehr als ich ;)


Naja, ich wusste, wo ich ansetzen musste, den Rest habe ich bei Annette (http://www.google.de) erfragt. Die weiß nämlich alles.

Originally posted by GloomY
Oh Mann, erst so eine grottenschlechte Vorlesung und dann noch nicht mal inhaltlich korrekt :(

Wörn for President ;)
Richtig.

Nunja, Info1 ist zumindestens bei mir im ersten Semester gewesen (studiere Wirtschaftsinformatik), ist es bei Dir ähnlich? Dann wird Dir sicherlich noch so mancher Prof so manche Illusion über ihn selbst rauben. Wage ich aus dem 7. Semester zurückblickend zu sagen. Bei Profs und Nochnicht-Profs (am besten sind die, die seit vielen Jahren das Kürzel PD wie Privatdozent tragen) ist die Bandbreite halt ziemlich groß.

Gruß,
Marcel

zeckensack
2002-11-12, 13:17:04
Originally posted by GloomY
Was für Probleme? Kohärenzprobleme.

Die löst man mit Snooping, dann geht's wieder.

(dann hat man dafür Performanceprobleme)

GloomY
2002-11-12, 16:05:29
Originally posted by Marcel
Naja, ich wusste, wo ich ansetzen musste, den Rest habe ich bei Annette (http://www.google.de) erfragt. Die weiß nämlich alles.Anette? Ist das deine Freundin? ;)

Ich bin meistens einfach zu faul, um google zu fragen... *duck* ;)
Originally posted by Marcel
Nunja, Info1 ist zumindestens bei mir im ersten Semester gewesen (studiere Wirtschaftsinformatik), ist es bei Dir ähnlich?Jo, war genauso (Ich studiere Informatik ;) ).
Originally posted by Marcel
Dann wird Dir sicherlich noch so mancher Prof so manche Illusion über ihn selbst rauben. Wage ich aus dem 7. Semester zurückblickend zu sagen. Bei Profs und Nochnicht-Profs (am besten sind die, die seit vielen Jahren das Kürzel PD wie Privatdozent tragen) ist die Bandbreite halt ziemlich groß.

Gruß,
Marcel Jep...
Originally posted by zeckensack
Kohärenzprobleme.

Die löst man mit Snooping, dann geht's wieder.

(dann hat man dafür Performanceprobeme) Muß nicht umbedingt so sein.

Das EV6 Alpha/Athlon Busprotokoll sieht zusätzlich zu seinen 64 Bit für die Daten noch 13 Bits auf dem Bus (eigentlich Punkt-zu-Punkt-Verbindung) nur für das "Snooping" vor.

Nur beim P3/P4 läuft das über den (ohnehin) gesharten FSB.

zeckensack
2002-11-12, 16:20:18
Originally posted by GloomY
Muß nicht umbedingt so sein.

Das EV6 Alpha/Athlon Busprotokoll sieht zusätzlich zu seinen 64 Bit für die Daten noch 13 Bits auf dem Bus (eigentlich Punkt-zu-Punkt-Verbindung) nur für das "Snooping" vor.

Nur beim P3/P4 läuft das über den (ohnehin) gesharten FSB. Nujo, das meinte ich eigentlich nicht.

Die fälligen Umkopieraktionen bei selbstmodifizierendem Code killen die Performance, ob der Snoopbus jetzt gleich dem Datenbus ist oder nicht, das ist dabei fast egal.

(bei MP-Systemen kann man einen dedizierten Snoopy natürlich gut gebrauchen)

GloomY
2002-11-12, 17:09:50
Originally posted by zeckensack
Nujo, das meinte ich eigentlich nicht.

Die fälligen Umkopieraktionen bei selbstmodifizierendem Code killen die Performance, ob der Snoopbus jetzt gleich dem Datenbus ist oder nicht, das ist dabei fast egal.Joar, das stimmt natürlich...