Forum: Mikrocontroller und Digitale Elektronik Adressleitungen zweidimensionaler Speicherchip


von Jantscher (technikp)


Lesenswert?

Wieviele Adressleitungen benötigt ein zweidimensionaler Speicherchip mit 
8MiBit mindestens, wenn pro Adrsse 4 Bit gespeichert sind?
Wie könnte man dies errechnen?

eigener Ansatz:
8MiBit= 8*2^(10)^2 Bit

von Hausaufgabenhelfer (Gast)


Lesenswert?

Pat ". schrieb:
> Wieviele Adressleitungen benötigt ein zweidimensionaler Speicherchip mit
                                        ^^^^^^^^^^^^^^^^^
                                        Was genau meinst du damit?
> 8MiBit mindestens, wenn pro Adrsse 4 Bit gespeichert sind?
                          ^^^^^^^^^^^^^^^^^
                          ist vollkommen egal, es werden dann immer 4bit 
gleichzeitig gelesen/geschrieben.

> Wie könnte man dies errechnen?
8MBit = 2^3 * 2^20 = 2^23
Somit ungemultiplext 23 Adressleitungen.

> eigener Ansatz:
> 8MiBit= 8*2^(10)^2 Bit
Ist 2^(10)^2 = 2^100?

von Axel S. (a-za-z0-9)


Lesenswert?

Pat ". schrieb:
> Wieviele Adressleitungen benötigt ein zweidimensionaler Speicherchip mit
> 8MiBit mindestens, wenn pro Adrsse 4 Bit gespeichert sind?
> Wie könnte man dies errechnen?

Wenn es insgesamt 8 Millionen (genauer: 8*1024*1024) Bits sind und 
jeweils 4 Bits unter der gleichen Adresse erreichbar sind, wieviele 
Adressen gibt es dann? Wieviele Bits braucht mal, um diese Zahl 
auszudrücken?

von Jantscher (technikp)


Lesenswert?

Es sind nicht 8 Millionen Bits, sondern 8MiBits. Mi ist ja der binäre 
Präfix mit 8*2^(10)^2, oder?

Bei eindimensionaler Adressierung an den Speicherchip(wenn 4Bits pro 
Adressleitung) hätte man dann 8/4 *2^(10)^2 Adressleitungen.
Bei zweidimensionaler Adressierung muss man ja die Wurzel aus den 
Adressleitungen ziehen, also wären es dann sqrt(2)*2^(10)^2 
Adressleitungen.
Aber das stimmt so anscheinend nicht.
Es sollten 12 Adressleitungen rauskommen? Aber wie man auf diesen Wert 
kommt ist mir unklar...

: Bearbeitet durch User
von (prx) A. K. (prx)


Lesenswert?

Gemeint ist mit der zweidimensionalen Adressierung vielleicht die 
gemultiplexte Adressierung von DRAM, bei der pro vollem Zyklus zwei 
Adressworte auf den gleichen Leitungen übertragen werden. Erst eine 
Zeilenadresse, dann eine Spaltenadresse.

8 MiBits bei 4 Bits pro Wort und 12 Adressbits passen aber nicht. 8 
MiWords hingegen schon.

: Bearbeitet durch User
von Theor (Gast)


Lesenswert?

Pat ". schrieb:
> Es sind nicht 8 Millionen Bits, sondern 8MiBits. Mi ist ja der binäre
> Präfix mit 8*2^(10)^2, oder?

Also, dieses "...(10)^2" kann ich mir überhaupt nicht erklären.

Es ist schon gesagt worden:

1. Ein MiBit sind 2^20 Bit. (Siehe 
https://de.wikipedia.org/wiki/Vors%C3%A4tze_f%C3%BCr_Ma%C3%9Feinheiten#Einheitenvors%C3%A4tze_f%C3%BCr_bin%C3%A4re_Vielfache)

2. Das Achtfache davon, entspricht dem 2^3-fachen.
Das ist gleich 2^3 * 2^20 = 2^23.
Also 8MiBit = 2^23 Bit.

> Bei eindimensionaler Adressierung an den Speicherchip(wenn 4Bits pro
> Adressleitung) hätte man dann 8/4 *2^(10)^2 Adressleitungen.
Leider nein. Siehe oben in diesem Beitrag.

> Bei zweidimensionaler Adressierung muss

"Müssen" muß man das nicht. Einmal ist es nicht gesagt, dass die Zellen 
Quadratisch angeordnet sind. Dann gibt es Fälle, in den man es keine 
ganzzahlige Lösung für eine Quadratwurzel gibt.

Das ist ganz einfach einzusehen, denn 2^23 ist nicht durch das Produkt 
zweier gleicher Zahlen darstellbar.

Mathematisch ist die Quadratwurzel als X^(1/2) hinzuschreiben. Falls 
also der Exponent einer Zahl nicht ohne Rest durch 2 teilbar ist, dann 
ist die Quadratwurzel keine natürliche Zahl.

> ... man ja die Wurzel aus den
> Adressleitungen ziehen, also wären es dann sqrt(2)*2^(10)^2
> Adressleitungen.
> Aber das stimmt so anscheinend nicht.
> Es sollten 12 Adressleitungen rauskommen? Aber wie man auf diesen Wert
> kommt ist mir unklar...

Ja. Mir auch. Siehe oben in diesem Beitrag.

von Stefan F. (Gast)


Lesenswert?

A. K. schrieb:
> Gemeint ist mit der zweidimensionalen Adressierung vielleicht die
> gemultiplexte Adressierung von DRAM, bei der pro vollem Zyklus zwei
> Adressworte auf den gleichen Leitungen übertragen werden. Erst eine
> Zeilenadresse, dann eine Spaltenadresse.

Dann fehlt aber noch die Angabe, wie viele Zeilen oder Spalten der 
Speicher hat. In der Praxis ist das Seltem halbe/halbe.

von (prx) A. K. (prx)


Lesenswert?

Stefan ⛄ F. schrieb:
> Dann fehlt aber noch die Angabe, wie viele Zeilen oder Spalten der
> Speicher hat. In der Praxis ist das Seltem halbe/halbe.

Erst recht, wenn dabei halbe Bits rauskommen. ;-)

Aber wenn du die Frage nochmal genau liest, wirds eindeutig.

Beitrag #6380271 wurde vom Autor gelöscht.
von Jens G. (jensig)


Lesenswert?

Theor (Gast)

>2. Das Achtfache davon, entspricht dem 2^3-fachen.
>Das ist gleich 2^3 * 2^20 = 2^23.
>Also 8MiBit = 2^23 Bit.

Ja, und das durch 4bit (2^4) ergibt dann 2^19 - also 19 Strippen für die 
Adressierung.

von Axel S. (a-za-z0-9)


Lesenswert?

A. K. schrieb:
> Stefan ⛄ F. schrieb:
>> Dann fehlt aber noch die Angabe, wie viele Zeilen oder Spalten der
>> Speicher hat. In der Praxis ist das Seltem halbe/halbe.
>
> Erst recht, wenn dabei halbe Bits rauskommen. ;-)
>
> Aber wenn du die Frage nochmal genau liest, wirds eindeutig.

Trotzdem ist 12 falsch. Und die Fragestellung ist dämlich.
Wenn es um DRAM mit gemutiplexten Adreßleitungen geht, hätte
man das halt in die Frage schreiben sollen. Denn auch statisch
adressierte Speicher sind zweidimensional aufgebaut.

von Theor (Gast)


Lesenswert?

Jens G. schrieb:
> Theor (Gast)
>
>>2. Das Achtfache davon, entspricht dem 2^3-fachen.
>>Das ist gleich 2^3 * 2^20 = 2^23.
>>Also 8MiBit = 2^23 Bit.
>
> Ja, und das durch 4bit (2^4) ergibt dann 2^19 - also 19 Strippen für die
> Adressierung.

... von Zellen aus je 4 Bit. Ja. Zweifellos ist das so.

von (prx) A. K. (prx)


Lesenswert?

Axel S. schrieb:
> Wenn es um DRAM mit gemutiplexten Adreßleitungen geht, hätte
> man das halt in die Frage schreiben sollen.

Möglicherweise wurde in der Lehrveranstaltung der Begriff 
"zweidimensional" dafür verwendet.

von Jens G. (jensig)


Lesenswert?

Jens G. (jensig) schrieb:

>Theor (Gast)

>>2. Das Achtfache davon, entspricht dem 2^3-fachen.
>>Das ist gleich 2^3 * 2^20 = 2^23.
>>Also 8MiBit = 2^23 Bit.

>Ja, und das durch 4bit (2^4) ergibt dann 2^19 - also 19 Strippen für die
>Adressierung.

War wohl Quatsch. Sollte heißen: das ganze durch 4, ergibt 2^21 - also 
21 Strippen

Beitrag #6380292 wurde vom Autor gelöscht.
von Theor (Gast)


Lesenswert?

Ooops. Meine Güte. :-)

Richtig. Es muss 2^21 heissen.
Denn 4 Bit sind 2^2 (und nicht 2^4).

von Jens G. (jensig)


Lesenswert?

Theor (Gast)

>> Ja, und das durch 4bit (2^4) ergibt dann 2^19 - also 19 Strippen für die
>> Adressierung.

>... von Zellen aus je 4 Bit. Ja. Zweifellos ist das so.

Tja, Du hast Dich ja gar nicht erst in der Rechnung soweit vor gewagt, 
um die Frage letztendlich zu beantworten, sondern bist auf halbem Wege 
stehengeblieben.

von (prx) A. K. (prx)


Lesenswert?

Vor dem Logarithmus dividiert ist nach dem Logarithmus subtrahiert. So 
hat man vor dem Zeitalter der Taschenrechner multipliziert und dividiert

von Theor (Gast)


Lesenswert?

Es lag wohl ein tieferer Sinn, darin, dass ich dem TO noch was zu denken 
übrig lassen wollte. Lach. :-)

von (prx) A. K. (prx)


Lesenswert?

Jens G. schrieb:
> um die Frage letztendlich zu beantworten

Bissel was könnte man dem TE schon noch zumuten.

von Theor (Gast)


Lesenswert?

Jens G. schrieb:
> Theor (Gast)
>
>>> Ja, und das durch 4bit (2^4) ergibt dann 2^19 - also 19 Strippen für die
>>> Adressierung.
>
>>... von Zellen aus je 4 Bit. Ja. Zweifellos ist das so.
>
> Tja, Du hast Dich ja gar nicht erst in der Rechnung soweit vor gewagt,

Wo wäre da das Wagnis?
Und, falls ich Deinen Satz richtig, als die Unterstellung von Feigheit 
auffasse, möchte ich Dich höflich bitten, dass zu unterlassen.

> um die Frage letztendlich zu beantworten, sondern bist auf halbem Wege
> stehengeblieben.

Ja. Richtig. Und mit Absicht.

von Stefan F. (Gast)


Lesenswert?

A. K. schrieb:
> Aber wenn du die Frage nochmal genau liest, wirds eindeutig.

Stimmt, es wurde nach "mindestens" gefragt.

von Jens G. (jensig)


Lesenswert?

Theor (Gast)

>Es lag wohl ein tieferer Sinn, darin, dass ich dem TO noch was zu denken
>übrig lassen wollte. Lach. :-)


A. K. (prx)

>Bissel was könnte man dem TE schon noch zumuten.

Stimmt zwar, aber meint Ihr wirklich, daß der TO von alleine drauf 
kommt, wenn man mal seine Initialfrage betrachtet? Eher wird doch der 
Thread wieder zerpflückt von all den "Helfern", und am eigentlichen 
Thema vorbei geredet ...

von Theor (Gast)


Lesenswert?

Jens G. schrieb:
> ... und am eigentlichen
> Thema vorbei geredet ...

DEN Eindruck habe ich allerdings JETZT auch.
.

von Jens G. (jensig)


Lesenswert?

Theor (Gast)

>Jens G. schrieb:
>> ... und am eigentlichen
>> Thema vorbei geredet ...

>DEN Eindruck habe ich allerdings JETZT auch.

Naja, war ja nur ein Satz, der in eine Nebenrichtung ging ;-)

Aber der TO darf ja noch an seinem Gedankengang in seinem 2. Post ein 
bißchen feilen, bis es stimmt. Da habe ich ja noch nicht alles verraten 
...

von (prx) A. K. (prx)


Lesenswert?

Jens G. schrieb:
> aber meint Ihr wirklich, daß der TO von alleine drauf kommt

Ich fange gerne mit etwas Respekt an. Wem sie gegeben ist, dem gelingt 
es auch anschliessend noch, seine Dummheit zu beweisen.

von Wolfgang (Gast)


Lesenswert?

Pat ". schrieb:
> Wie könnte man dies errechnen?

Ganz einfach:
Wenn 4 Bit parallel adressiert werden, muss der Adressraum 8MiBit/4 
Adressen umfassen. Mit einem Adressbit kannst du  2 Speicherzellen 
adressieren, mit jedem weiteren Adressbit verdoppelt sich die Anzahl der 
adressierbaren Speicherzellen. Der Rest ergibt sich per vollständiger 
Induktion.

von Matthias M. (Firma: privat) (quadraturencoder)


Lesenswert?

8MiBit, in einem 4bit Speicher benötigt Adressleitungen für 2Mi Adressen 
zu je 4 bit. 2Mi Adressen lassen sich mit 21 Adressleitungen adressieren 
(2^21=2*1024*1024).

Wenn der Chip in Spalten und Zeilen unterteilt ist, dann kann ich also 
z.B. in 1024 x 2048 Zellen zu je 4bit. Für 1024 Zeilen brauche ich 10 
Adressleitungen (2^10=1024), und für die Spalten brauche ich 11 
Adressleitungen.

Die Zeilen und Spalten kann ich multiplexen, so dass ich mit 11 
Adressleitungen hinkomme, plus einer Leitung, die beschreibt, ob ich die 
ersten 10bits oder die zweiten 11bits schreibe. So käme ich dann auch 
auf 12 Signale (plus ~CS, ~RD, ~WR, D0-D3, und Spannungsversorgung).

von Axel S. (a-za-z0-9)


Lesenswert?

Matthias M. schrieb:
...
> plus einer Leitung, die beschreibt, ob ich die
> ersten 10bits oder die zweiten 11bits schreibe.
> So käme ich dann auch auf 12 Signale

Typischerweise hat man zwei solche Steuersignale, genannt /RAS und /CAS 
(row  address strobe, column address strobe). Die werden aber nicht zu 
den Adreßleitungen gezählt, nach denen explizit gefragt war.

Ein /CS braucht man nicht mehr (das übernimmt /CAS). Auch /RD braucht 
man nicht als separates Signal, /WR reicht aus, um zwischen Lesen und 
Schreiben umzuschalten.

von Jantscher (technikp)


Lesenswert?

Mit "Zweidimensional" ist gemeint, dass man die Adressleitungen in zwei 
Hälften aufteilt. Eine Hälfte als Zeilenadressen und die andere Hälfte 
als Spaltenadressen.
Beispielsweise man hat einen RAM Speicher 1.000.000 Speicherzellen. Dann 
hat man bei zweidimensionaler Adressierung an diesen RAM Speicher 1000 
Zeilenadressen und 1000 Spaltenadressen, weil 1000*1000=1Million.

Ich habe mir alle Posts ein paar mal durchgelesen, bin aber nun etwas 
verwirrt. Deshalb hier mein erneuter Ansatz der Berechnung:

8MiBit gesamt. Pro Adressleitung sind 4Bit gespeichert.

8MiBit=8*2^20Bits = 4*2*2^20 Bits. Da 4 Bits pro Adressleitung -> 2^21 
Bits

Das bedeutet bei eindimensionaler Adressierung bräuchte man 21 
Adressleitungen.
Soweit ist mir das klar.

Aber jetzt,wenn man mit zweidimensionaler Adressierung arbeitet bin ich 
mir unsicher.
Man hat also nun 2^21 Speicherzellen, weil ja 4 Bits pro Adressleitung. 
Also müsste man wenn man diese in Zeilen- und Spalten-adressen(jeweils 
50prozent) aufteilt die Wurzel ziehen, also
sqrt(2^21)=(2^21)^0,5= 2^10,5 -> man benötigt bei zweidimensionaler 
Adressierung mindestens 11 Adressleitungen.

So müsste das doch stimmen, oder nicht?

von georg (Gast)


Lesenswert?

Pat ". schrieb:
> man benötigt bei zweidimensionaler
> Adressierung mindestens 11 Adressleitungen.

Wozu so komplizierte Berechnungen? Wenn nun schon feststeht, dass man 21 
Adressleitungen braucht, so ist doch unmittelbar klar, dass man durch 
Umschalten (wie bei dynamischen RAMs) optimal erst 11 und dann 10 
durchschaltet oder umgekehrt, also braucht man 11 Leitungen - ohne viel 
nachzudenken.

Schlechter geht natürlich auch, aber wer ist so blöd und schaltet 13 und 
8 Adressen um?

Georg

von Axel S. (a-za-z0-9)


Lesenswert?

Pat ". schrieb:
> Mit "Zweidimensional" ist gemeint, dass man die Adressleitungen in zwei
> Hälften aufteilt. Eine Hälfte als Zeilenadressen und die andere Hälfte
> als Spaltenadressen.

Das ist dann eine eher exklusive Verwendung des Wortes 
"zweidimensional". Exklusiv in dem Sinne, daß ihr das ganz allein so 
macht. OK, immerhin hat A. K. (prx) erraten, daß das so gemeint sein 
könnte. Seine Glaskugel ist wohl besser als meine.

> Ich habe mir alle Posts ein paar mal durchgelesen, bin aber nun etwas
> verwirrt. Deshalb hier mein erneuter Ansatz der Berechnung:
> 8MiBit gesamt. Pro Adressleitung sind 4Bit gespeichert.

Nein. Nicht pro Adreßleitung. Pro Adresse. So wie in einem 
Mehrfamilienhaus unter der gleichen Adresse mehrere Familien wohnen, 
enthält dieser Speicher unter der gleichen Adresse mehrere Bits. Bei 
Speicher spricht man üblicherweise von der Wortbreite. Unter jeder 
Adresse ist ein Wort gespeichert. Bei deinem (hypothetischen) Speicher 
ist die Wortbreite 4 Bit. Eine übliche Kapazitätsangabe ist dann auch 
Anzahl Adressen × Wortbreite. Man kann das ausmultiplizieren, muß aber 
nicht. Da man in der Praxis die Wortbreite meist wissen muß, ist es 
sinnvoller, das nicht auszumultiplizieren.

Dein Speicherchip hat die Organisation 2M × 4 Bit bzw. wenn man auf die 
Sesselfurzer von der ISO hört: 2Mi × 4 Bit. Wenn du mal ein Datenblatt 
eines real existierenden Speicher-IC anschaust, z.B. das hier:

https://www.mouser.de/datasheet/2/198/42-45S81600F-16800F-258526.pdf

dann wird dir auffallen, daß kein Schwein die binären Präfixe der ISO 
verwendet, weil bei Speicher-IC immer klar ist, daß 1K=2^10 und 
1M=2^20, ... ist. Und außerdem wirst du sehen, daß auch immer die 
Organisation als Anzahl Worte × Wortbreite angegeben ist. Wenn dein 
Lehrer das ausmultipliziert und die Wortbreite nur in einem Nebensatz 
erwähnt, dann ist das nicht mehr als ein Aufmerksamkeitstest. Man könnte 
auch sagen: ein Versuch, die Aufgabe unnötig zu verkomplizieren. Denn 
eigentlich ist die Sache ja eher trivial.

> Das bedeutet bei eindimensionaler Adressierung bräuchte man 21
> Adressleitungen. Soweit ist mir das klar.

Gut. Außer daß niemand "eindimensionale Adressierung" sagt. Man braucht 
21 Adreßbits. Ob man die jetzt in einem Schritt überträgt (parallele 
Adressierung) oder in 2 Schritten (gemultiplexter Adreßbus) oder ob man 
das alles seriell erledigt (wie bei SPI-Flash), ist eher nebensächlich.

> Aber jetzt,wenn man mit zweidimensionaler Adressierung arbeitet bin ich
> mir unsicher.
> Man hat also nun 2^21 Speicherzellen, weil ja 4 Bits pro Adressleitung.

2^21 Adressen! Oder meinetwegen 2^21 adressierbare Worte. Eine 
Speicherzelle ist etwas anderes als ein Wort!

> man benötigt bei zweidimensionaler
> Adressierung mindestens 11 Adressleitungen.
>
> So müsste das doch stimmen, oder nicht?

Ja. Und man könnte mit der gleichen Anzahl Adreßleitungen auch eine 22 
Bit Adresse übertragen und damit doppelt so viel Speicher adressieren.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.