Moin
wie wird ein Dual Port RAM über die Adressleitungen addressiert? 4k 16x
z.B.?
kann man die 4k Daten nur komplett aus einem Dual Port RAM auslesen oder
ist es auch möglich nur 2k Daten davon auszulesen? Wieviele
speicheradressen nehmen 4k Daten in dem Dual Port RAM ein? Ist das von
Hersteller zu Hersteller unterschiedlich? Würd gern einen Cypress
nehmen, aber ich möchte auch gern dass ich bei 4k Daten auch nur ganz
bestimmte Daten davon auslesen kann und nicht immer alle auslesen muss.
Verena
Sag mal... Wie viele Threads wollt Ihr denn jetzt noch mit dem Thema
"4k x 16Bit Dual Port RAM"
eröffnen???
Guckt doch mal selbst hier im Forum nach! Deine Klassen-/Studienkollegen
haben hier schon einige Threads zum selben Thema / zur selben Aufgabe
eröffnet.
Gruß,
Magnetus
das stimmt... nur leider kann ich mit den Antworten nichts anfangen...
und im www finde ich auch nichts passendes dazu (weil immer nur das
grundprinzip von so einem dual port ram beschrieben wird, aber nicht die
einzelheiten betrachtet werden) - in meinem fall, wie groß z.B. eine
Speicheradresse im RAM ist - 1Byte, 2Byte, 4Byte etc. bzw. wie variable
ich mir die daten wieder rauslesen kann, wenn ich 4k Daten
reinschreibe...
und den anderen hier wirds genauso gehen...
Verena
das mit dem 8k 16x versehe ich aus dem ersten link auch nicht...
reinschreiben kann man 16mal 8k Daten und rauslesen soll nur 16Bit also
2Byte gehen? Wie rechnet man das aus bzw. wo steht das?
Hallo,
ob Dual-Portet oder ein x-beliebiger Ram: angegeben wird die Anzahl
Speicheradressen (hier eben 8k -> 8192 und die "Breite" der
Speicehrplätze in Bit, hier also 16.
Es ist also ein 16Bit-organisierter Ram, Du hast 16 Datenleitungen, die
immer zugleich gelesen oder geschrieben werden können.
Stell Dir Speicher als Tabelle vor, 16 Spalten die Datenbits und 8192
Zeilen die Adressen. Jede Zeile wird im Stück gelesen oder geschrieben.
Gruß aus Berlin
Michael
vielen dank für die erklärung, jetzt wird`s mir klar wie es
funktioniert... hatte zeile und spalte immer vertauscht und daher die
erklärung von Obelix im anderen thread nicht verstanden.
vielen dank
verena
Verena wrote:
> hatte zeile und spalte immer vertauscht und daher die> erklärung von Obelix im anderen thread nicht verstanden.
Wäre ja auch etwas heftig... 16 Adressen zu je 8192Bit... das IC-Gehäuse
möchte ich ja mal sehen ;)
Gruß,
Magnetus
noch eine Frage (ich hoff ihr verzeiht mir)...
was passiert eigentlich wenn ich einen xyk x8 Dual Port RAM habe, also
sozusagen Byteweise auslese, und ich ein Latch nach dem Dual Port Ram
installiere (bei allen Datenleitungen, über die ich den Ram auslese)?
z.B. bei 8 Datenleitungen macht das ja ein Latch vom Typ
In einem Latch kann ja nur ein Bit zwischengespeichert werden und durch
einen Impuls rausgeschickt werden. Was passiert mit den letzten 7bits?
Ich weiß, bestimmt eine dumme frage, aber ich kanns mir grad nicht
vorstellen bzw. erklären.
Verena
Verena wrote:
> noch eine Frage (ich hoff ihr verzeiht mir)...
Das Problem ist nicht, daß keiner antworten will, sondern daß keiner
versteht, wozu ihr überhaupt einen Dual Port RAM benötigt.
Ihr müßt schon mal erzählen, was das Ganze überhaupt werden soll.
Peter
Hallo,
wenn Du 8 Datenleitungen hast, brauchst Du ein 8Bit-Latch, wenn Du 16
hast, eben ein 16Bit-Latch...
Wenn Du "Latch" jetzt als Begriff für die Funktion bei einem Bit
interpretierst, dann sind es eben 8 Latch mit zusammengeschalteten
Strobe (oder wie auch immer) Eingang. Es müssen logischerweise alle
vorhandenen Datenleitungen gleichzeitig gespeichert oder ausgegeben
werden können.
Gruß aus Berlin
Michael
Hallo Michael,
insgesamt kommen aus dem Dual Port RAM 8Byte raus auf 8 Datenleitungen.
wenn ich jetzt auf jeder Datenleitung ein Latch nach dem RAM schaltet -
kann ja nur ein Bit aufnehmen - was passiert mit den anderen 7Bits? Also
ein 8Bit Latch für alle 8 Datenleitungen - nicht für jede Datenleitung
ein 8Bit Latch.
@Peter
wir planen kein Projekt etc. sondern das ist nur das Kennenlernen der
einzelnen Bauteile - nur ist die Zeit im Unterricht immer sehr eng
bemessen und viele sachen werden nicht angesprochen. Der Dual Port RAM
kam z.B. sehr kurz nur dran.
Gruß
Verena
Ich glaube, ihr solltet erst mal den Unterschied zwischen Bit und Byte
lernen, bevor ihr mit dem RAM weitermacht.
1 Bit = kleinste Informationseinheit ( 1 oder 0 )
1 Byte = 8 Bit
8 Datenleitungen = 8 Bit
ok mein verständnisproblem liegt nicht im unterschied zwischen Bit und
Byte, sondern inwieweit die Daten vom DualPort RAM ausgelesen werden.
bei einem 8k x8 Dual Port RAM kann ich ja nur immer die 8Bit also 1Byte
auslesen über die Datenleitung. Der RAM besitzt 8 Datenleitungen. Über
die Adressleitungen sag ich dem RAM er soll die ersten 8 Adressen
auslesen -> er liest 8 Adressen a 1Byte aus. Nach meiner Wissenstand
werden somit über jede Datenleitung 8Bit also 1Byte übertragen und
trifft nun auf einen Eingang vom Latch, welches nur ein bit
zwischenspeichern kann. - meine frage, was passiert mit den restlichen
7Bit?
Verena
PS: ich hoffe, etwas verständlicher erklärt bzw. formuliert
> insgesamt kommen aus dem Dual Port RAM 8Byte raus auf 8 Datenleitungen.> wenn ich jetzt auf jeder Datenleitung ein Latch nach dem RAM schaltet -> kann ja nur ein Bit aufnehmen - was passiert mit den anderen 7Bits? Also> ein 8Bit Latch für alle 8 Datenleitungen - nicht für jede Datenleitung> ein 8Bit Latch.
Dafür wirfst du hier aber sehr viel durcheinander. ;)
Hallo,
>insgesamt kommen aus dem Dual Port RAM 8Byte raus auf 8 Datenleitungen.>wenn ich jetzt auf jeder Datenleitung ein Latch nach dem RAM schaltet ->kann ja nur ein Bit aufnehmen - was passiert mit den anderen 7Bits? Also>ein 8Bit Latch für alle 8 Datenleitungen - nicht für jede Datenleitung>ein 8Bit Latch.
??? Auf einer Datenleitung kann ja wohl auch nur ein Bit sein, welche 7
anderen Bits also? Die auf den anderen 7 Datenleitungen? Die hängen ja
an den anderen 7 Latch-Eingängen des 8Bit-Latch...
Es wäre mir auch sehr rätselhaft, wie oder besser weshalb Du ein
8Bit-Latch, also 8 Latcheingänge an eine einzelne Datenleitung hängen
solltest...
Sch Dir mal das Logiksymbao eines 8Bit-Latches an, 74HCT373 zum
Beispiel.
Außerdem: Dual-Port Ram ist nur für sehr spezielle Anwendungen nötig,
eine Erwähnung, daß es das gibt und der Hinweis, was das Besondere daran
ist, reicht da auch völlig aus.
Weiter: wie kommt eigentlich diese Dual-Port-Ram - Latch Geschichte zu
Stande? Es gibt nur recht wenige Gründe, überhaupt ein Latch hinter ein
Ram zu hängen. Normalerweise macht man die Steuerung der Ram-Zugriffe
so, daß die Daten auch genau dann ausgegeben werden, wenn man sie
braucht.
Wenn mit Latch, dann stehen die Randbedingungen sowieso fest, sonst
würde man es ja nicht einbauen.
Gruß aus Berlin
Michael
hallo Michael,
das mit dem DualPort RAM ist nur weil ich nicht weiß wie die Daten dort
ausgelesen werden. Ich weiß jetzt, dass sie bei einem 8k x8 byteweise
ausgelesen werden müssen, weil eine Adresse auf 1Byte zeigt, und diese
müssen natürlich hintereinander über eine Datenleitung gebracht werden.
oder nicht? Wie werden die Daten sonst ausgelesen von einem Dual Port
RAM?
Verena
eins dieser Bits kann in einem Latch aufgenommen werden, die anderen
7Bit stehen zwischen RAM und Latch?? Das ist mein Problem; ich wieß
nicht wie das vorsich geht...
Eben nicht. Du liest byteweise (Also je 8Bit) aus. Und du hast acht
Datenleitungen. Hier hast du also die ganze Speicherstelle gleichzeitig
auf deinen Datenleitungen. Hintereinander ist da nix.
EDIT: Dass es auch wirklich ein DualPort-RAM ist, brauchst du übrigens
nicht jedesmal zu schreiben, dein Verständnisproblem ist auch bei
normalen RAMs das Selbe. Bei DualPort-RAMs kannst du einfach mit zwei
Interfaces gleichzeitig darauf zugreifen. Sonst ist da nix anders.
Verena wrote:
> das is mir klar - aber aus dem Dual Port RAM werden ja immer 8Bit => 1Byte rausgeschoben und nicht die einzlenen bits.
Ich habs schonmal gesagt, da wird nichts geschoben, RAM ist doch kein
Schieberegister !
Ein Dual Port RAM ist nichts weiter als ein stinknormaler RAM mit 2
Bussen.
Und solange ihr den stinknormalen RAM nicht versteht, hats überhaupt
keinen Zweck ne Spezialversion anzusehen.
Dual Port RAMs sind was gestriges, wo CPUs noch nicht leistungsfähig
waren und RAMs noch schnarchlahm und FPGAs zum Ansteuern noch teuer.
Haben heutzutage keinen praktischen Wert mehr.
Man, was ich für Chips rumliegen habe, die schon wieder längst
ausgestorben sind (z.B. T800 Transputer inklusive Occam auf 5,25 Zoll
Disketten).
Peter
ah ok - ich lese eine Adresse im Speicher aus und schicke die über die 8
Datenleitungen.... macht sinn, dann versteh ich es jetzt.
aber ich lese nicht 8 Adressen gleichzeitig aus... das war mein
denkfehler...
danke Philipp
> 1 Byte = 8 Bit
Das stimmt allgemein so nicht. 1 Byte ist die kleinste einzeln
adressierbare Einheit. Sie ist allerdings bei der überwiegenden Mehrzahl
der Systeme heute 8 Bit groß. Als das Wort "Byte" erfunden wurde, waren
8 Bits dafür aber noch vollkommen unüblich (die ersten Bytes, die das
Licht der Welt erblickten, waren 5 oder 6 Bit groß).
noch zur späten std eine kleine frage: wieso besitzt ein Dual Port RAM
nur 8 Datenleitungen aber 15 Adressleitungen?
mit den 8 Datenleitungen kann ich 8bits von einer Adresse übertragen.
Aber dafür brauch ich ja nur eine Adressleitung (in der ich die Adresse
angebe, von der ich den Dateninhalt haben möchte)?
Oder muss ich für jedes Bit der 8Bits eine Adressleitung spendieren -
sprich dass ich sagen muss 1Bit über Datenleitung 1, 2Bit über
Datenleitung 5, 3Bit über Datenleitung2 etc.?
Verena
PS: vielen dank schon für die infos (hab heute schon einiges
dazugelernt)
Ich bin mal so frei, und schmeiße eine kleine Erklärung in die
Diskussion...
@Verena:
Ich glaube Du zäumst den RAM gedanklich falsch auf:
Versuche mal, es Dir so vorzustellen:
Ein RAM besitzt Adressenleitungen (!)- diese dienen dazu, daß man sagen
kann "diese Position im Speicher meine ich".
Da wir ja binär arbeiten (jede Leitung nur 1 oder 0), können wir mit n
Leitungen 2^n Positionen im Speicher adressieren.
Laß das erstmal in Ruhe sacken: Wir sagen erstmal, WO wir vorhaben zu
lesen/zu schreiben.
Je nachdem ob wir dem RAM mit einer Leitung nun "mitteilen", daß wir
schreibend oder lesen zugreifen passiert folgendes:
Wollen wir lesen, wird der Speicherinhalt an dieser Position auf die
Datenleitungen (!) gelegt: Bei einem ...*16 RAM sind das dann eben 16
Bit.
Wollen wir schreiben, so werden an die Speicherposition die Bits
geschrieben, die auf den Datenleitungen (!) anliegen.
(Die jeweiligen Bits auf den Datenleitungen werden in der Gesamtheit
auch als "Datum" oder "Wort" bezeichnet).
So... daß war jetzt ein Speicherinterface... ein Dual-Port-RAM hat zwei
davon.
(Punkt, Aus, Ende) gar nicht so schwer, oder !?
>noch zur späten std eine kleine frage: wieso besitzt ein Dual Port RAM>nur 8 Datenleitungen aber 15 Adressleitungen?
Hat das RAM 15 Adressleitungen, kannst du damit 65536 Bytes speichern
(2^15). Es gibt auch RAMs mit 8 Adressleitungen, dann kannst du eben nur
256 (2^8) Bytes speichern, etc...
>Autor: Verena (Gast)
...
>danke Philipp
??? Wärst du gerne ein Mädchen oder anders rum ?!
Ihr macht es den Erklärern aber nicht einfach.
mit 15 Adressleitungen kannst du 1Byte von 2 hoch 15 Bytes auswählen.
Du möchtest also das Byte an der Speicherstelle Nr 1654 auf die 8
Datenleitungen legen (auslesen) also legtst du die Adresse 1654
binärkodiert an die 15 Adressleitungen, und du erhältst die 8 Bit dieser
Speicherstelle an den 8 Datenleitungen deines 8Bit Datenbusses.
PS. Tut mir und den anderen Mitleser einen gefallen. HÖRT AUF VON DIESEM
SCH... DUAL-PORT-RAM ZU SCHREIBEN. Dies tut nähmlich überhaupt nix zur
Sache. Es sollte für euch erstmal um einen ganz normales RAM gehen mit
einem Datenbuss (8Bit), einem Adressbus (z.B. 15Bit (das währe dann aber
ein 32k x 8 RAM, da 2 hoch 15 = 32768 = 32k)) und ein Controlbus.