DE19943176A1 - Entkoppelter Adreß- und Datenzugriff auf ein SDRAM - Google Patents
Entkoppelter Adreß- und Datenzugriff auf ein SDRAMInfo
- Publication number
- DE19943176A1 DE19943176A1 DE19943176A DE19943176A DE19943176A1 DE 19943176 A1 DE19943176 A1 DE 19943176A1 DE 19943176 A DE19943176 A DE 19943176A DE 19943176 A DE19943176 A DE 19943176A DE 19943176 A1 DE19943176 A1 DE 19943176A1
- Authority
- DE
- Germany
- Prior art keywords
- sdram
- address
- data
- memory
- page
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 239000000872 buffer Substances 0.000 title claims abstract description 83
- 238000013519 translation Methods 0.000 claims description 24
- 230000001360 synchronised effect Effects 0.000 abstract description 12
- 230000014616 translation Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 15
- 230000004913 activation Effects 0.000 description 13
- 238000006243 chemical reaction Methods 0.000 description 7
- 230000001934 delay Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 108010076504 Protein Sorting Signals Proteins 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000000034 method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241001432959 Chernes Species 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Dram (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Ein Puffermanager sieht Adreßinformationen zum Lesen und Schreiben von Daten aus einem und in ein SDRAM vor. Die Adreßinformation wird aus einem flachen Speicheradreßraum in einen SDRAM-Adreßraum übersetzt. Der Puffermanager arbeitet auf der Basis eines ersten Takts, und das SDRAM arbeitet auf der Basis eines zweiten Takts. Daher synchronisiert eine Synchronisierschaltung die Daten. Die Übersetzung der Adreßinformation erfolgt gleichzeitg mit der Synchronisierung der Daten.
Description
Die Erfindung betrifft im allgemeinen den Zugriff auf ein SDRAM und insbesondere die Ent
kopplung von Adreß- und Datenwegen, die zu einem SDRAM führen.
Synchrone dynamische Direktzugriffsspeicher (SDRAM; Synchronous Dynamic Random
Access Memory) sind eine Speicherart, die in einer Vielzahl von Anwendungen verwendet
wird. Ein SDRAM kann in mehrere Banken aufgeteilt werden. Jede Bank wird weiter in meh
rere Seiten aufgeteilt. In einem üblichen SDRAM mit einem 48 Bit breiten Datenbus und ei
ner 8 Bit breiten Spaltenadresse umfaßt eine Seite 1,5 KByte Speicher. Um auf eine Seite zu
zugreifen, muß das SDRAM Vorlade- und Aktivierungsoperationen ausführen. Die Vorlade-
und Aktivierungsoperationen bewirken eine gewisse Verzögerung beim Zugreifen auf eine
Speicherstelle, nachfolgende Zugriffe auf dieselbe Seite erfordern jedoch keine weiteren
Vorlade- und Aktivierungsoperationen mehr. Zum Zugreifen auf eine neue Seite muß das
SDRAM jedoch die Vorlade- und Aktivierungsoperationen für die neue Seite ausführen. Die
se Vorlade- und Aktivierungsoperationen verursachen auch eine gewisse Verzögerung beim
Zugreifen auf die gewünschte Speicherstelle. Um den Zugriff auf in dem SDRAM gespei
cherte Daten zu beschleunigen, werden Daten, auf die gemeinsam zugegriffen wird, auf der
selben Seite gespeichert sein. Dies dient dazu, die Anzahl der Vorlade- und Aktivierungsver
zögerungen zu minimieren.
Da jede Bank mehrere Seiten umfaßt, kann der Zugriff auf eine Speicherstelle in einer neuen
Seite in derselben oder in einer anderen Bank erfolgen. Wenn der Zugriff auf eine Speicher
stelle die Grenze einer Bank und somit auch die Grenze einer Seite überschreitet, kann die
Vorladeoperation beginnen, bevor der vorhergehende Zugriff beendet ist. Wenn jedoch der
Zugriff auf eine Speicherstelle über eine Seitengrenze hinweg, jedoch nicht über eine Bank
grenze hinweg erfolgt, kann die Vorladeoperation nicht beginnen, bis nicht der vorhergehende
Zugriff beendet ist.
Bei einigen Anwendungen arbeitet die Speicherverwaltung (oder der Steuerprozeß), die Daten
in dem SDRAM speichert, auf der Basis eines Takts (d. h. in einem ersten Taktbereich), und
das SDRAM arbeitet auf der Basis eines anderen Takts (d. h. in einem zweiten Taktbereich).
Diese Takte können asynchron sein und mit verschiedenen Frequenzen arbeiten. Wenn die
Speicherverwaltung versucht, auf das SDRAM zuzugreifen, müssen die Adreß- und die Da
teninformationen die Taktbereichsgrenze überqueren. Mit anderen Worten, sowohl die Adreß
als auch die Dateninformation muß vom ersten Takt zum zweiten Takt synchronisiert werden.
Die Synchronisierung der Adreß- und Dateninformation über die Taktbereichsgrenze hinweg
verzögert den Speicherzugriff.
Eine Anwendung, die ein SDRAM in einem anderen Taktbereich einsetzt, verwendet Netz
werkschalter, die Datenpakete vorübergehend speichern. Netzwerkschalter werden z. B. häufig
in Verbindung mit Ethernet-Netzen eingesetzt, um mehrere Unternetze zu verbinden. Ein
Schalter empfängt Paketdaten von einem Unternetz und gibt diese Paketdaten an ein anderes
Unternetz weiter. Bei Empfang eines Pakets kann der Netzwerkschalter die Paketdaten in
mehrere Unterpakete oder Zellen aufteilen. Jede der Zellen umfaßt zusätzliche Kopfdaten.
Wie im Stand der Technik bekannt ist, haben Ethernet-Paketdaten eine maximale Größe von
ungefähr 1,5 kByte. Mit den zusätzlichen Kopfdaten, die den Zellen zugeordnet werden, hat
ein Datenpaket eine maximale Größe unter 2 kByte.
Nach dem Aufteilen der Paketdaten in Zellen kann der Netzwerkschalter einen Speicherpuffer
in dem SDRAM vorübergehend zuweisen, um ein Paket vor der Rückübertragung zu spei
chern. Die Adreß- und Paketdaten werden über die Taktbereichsgrenze zu dem SDRAM hin
weg übersetzt. Dann werden die Paketdaten in dem Speicherpuffer gespeichert. Für die Rück
übertragung greift der Schalter wieder auf das SDRAM zu, um die Paketdaten wiederzuge
winnen. Sowohl die Speicherung als auch die Wiedergewinnung der Daten aus dem SDRAM
bringt eine Zugriffsverzögerung mit sich.
Weiterhin ist bei einem 48 Bit breiten SDRAM mit einer 8 Bit breiten Spaltenadresse die
Seitengröße gleich 1,5 kByte. Ein Ethernet-Paket von 2 kByte das Kopfdaten der Zellen ent
hält, geht daher immer über eine Seitengrenze. Dadurch ergeben sich weitere Zugriffsverzö
gerungen. In stark frequentierten Hochgeschwindigkeitsnetzen können solche Verzögerungen
eine nachteilige Auswirkung auf die Netzleistung haben.
Es wird daher ein SDRAM benötigt, das als ein Puffer zum Speichern von Ethernet-
Paketdaten konfiguriert werden kann. Das SDRAM kann in einem anderen Taktbereich ar
beiten als ein Steuerprozeß. Gleichwohl sollte das SDRAM so arbeiten, daß es Zugriffsverzö
gerungen minimiert.
Bei einer bevorzugten Ausführungsform umfaßt eine Adreßübersetzungsschaltung zum Ab
bilden von Adreßinformationen auf ein SDRAM eine Pufferverwaltungsschnittstelle und eine
Übersetzungsschaltung. Die Pufferverwaltungsschnittstelle ist so konfiguriert, daß sie
Adreßinformationen von einem Puffermanager empfängt. Der Puffermanager weist mehrere
Puffer zu, die jeweils eine Startadresse und eine dazugehörende Endadresse aufweisen. Die
Übersetzungsschaltung ist betrieblich mit der Pufferverwaltungsschnittstelle gekoppelt. Die
Übersetzungsschaltung bildet die Startadresse jedes der mehreren Puffer auf eine erste Bank
ab, und sie bildet die dazugehörende Endadresse auf eine zweite Bank ab, die sich von der
ersten Bank unterscheidet.
Die Erfindung ist im folgenden anhand bevorzugter Ausführungsformen mit Bezug auf die
Zeichnung näher erläutert. In den Figuren zeigt:
Fig. 1 ein Blockdiagramm eines Netzes mit einem Netzwerkschalter;
Fig. 2 ein Blockdiagramm eines Pakets aus Netzwerkdaten;
Fig. 3 ein Ablaufdiagramm des Betriebs des Netzwerkschalters der Fig. 1, der Paketdaten
empfängt und sendet;
Fig. 4 ein Blockdiagramm einer bevorzugten Ausführungsform des Schalters der Fig. 1 mit
einem SDRAM, einer Speichersteuereinheit und einem Puffermanager;
Fig. 5 ein Blockdiagramm des Schalters der Fig. 4 mit weiteren Einzelheiten einer bevor
zugten Ausführungsform der Speichersteuereinheit;
Fig. 6 ein Flußdiagramm einer bevorzugten Schreiboperation unter Verwendung der Spei
chersteuereinheit der Fig. 5;
Fig. 7 ein Flußdiagramm einer bevorzugten Leseoperation unter Verwendung der Speicher
steuereinheit der Fig. 5;
Fig. 8 eine Tabelle einer bevorzugten Adreßübersetzung aus einem flache» Speicheradreß
raum in einen SDRAM-Adreßraum;
Fig. 9 ein Blockdiagramm der Adreßübersetzung der Fig. 8;
Fig. 10 ein Blockdiagramm einer bevorzugten Ausführungsform einer SDRAM-Speicher
adreßauswahlschaltung;
Fig. 11 ein Flußdiagramm eines bevorzugten Betriebsablaufs der Speichersteuereinheit der
Fig. 4 zur Übersetzung einer Adresse aus einem flachen Speicheradreßraum in einen
SDRAM-Adreßraum;
Fig. 12 ein Flußdiagramm eines bevorzugten Betriebsablaufs einer Speichersteuereinheit, die
Daten in ein SDRAM schreibt; und
Fig. 13 ein Flußdiagramm eines bevorzugten Betriebsablaufs der Speichersteuereinheit, die
Daten aus einem SDRAM liest.
Mit Bezug auf Fig. 1 ist im folgenden ein Ethernet-Netz 100 gemäß der Erfindung beschrie
ben. Das Ethernet-Netz umfaßt einen Schalter 110 mit mehreren Kanälen oder Ports 120-125.
Der Schalter umfaßt auch eine Steuereinheit (Controller) 112 und einen Speicher 114. Der
Controller 112 leitet den Datenstrom zwischen den Kanälen 120-125. Der Controller 112
verwendet den Speicher 114 als temporären Speicher, während Daten zwischen den Kanälen
120-125 übertragen werden.
Jeder der Kanäle 120-125 ist mit einem von mehreren Unternetzen 130-135 verbunden. Die
Unternetze können mehrere Netzwerkeinrichtungen oder nur eine einzige Netzwerkeinrich
hing, wie einen Rechner, umfassen. Das Ethernet-Netz erlaubt es jedem der Unternetze 130-
135 mit jedem anderen Unternetz Daten auszutauschen.
Zum Beispiel kann das Unternetz 130 mit dem Unternetz 134 Daten austauschen, indem es
ein Datenpaket 140a sendet. Das Datenpaket 140a wird über den Kanal 120 vom Schalter 110
empfangen. Der Controller 112 scant dann das Datenpaket 140a und speichert es im Speicher
114. Danach liest der Controller 112 das Datenpaket 140a aus dem Speicher 114 und leitet es
an den richtigen Kanal weiter. Wie gezeigt, hat der Schalter 110 ermittelt, daß das Datenpaket
140a zu dem Netz 134 als Datenpaket 140b weitergeleitet werden sollte. Der Controller 112
trifft diese Leitentscheidung (Routing) auf der Basis von Information, die in dem Datenpaket
140a enthalten ist.
Mit Bezug auf Fig. 2 ist im folgenden ein Blockdiagramm eines Datenpakets 140 beschrie
ben. Das Datenpaket 140 umfaßt einen Blockanfang-Begrenzer (SOF; Start of Frame) 210.
Der SOF 210 zeigt den Anfang eines Datenpakets an. Das Datenpaket 140 umfaßt auch ein
Kopf (Header) 220, der Informationen, wie eine Ursprungsadresse, eine Zieladresse und die
Paketlänge 222 umfaßt. Das Datenpaket 240 enthält auch ein Datenfeld 230. Dieses Feld wird
zum Senden von Informationen zwischen Netzwerkeinrichtungen verwendet. Schließlich um
faßt das Datenpaket 140 ein Fehlerprüffeld 240. Dieses Feld wird dazu verwendet, zu ermit
teln, ob das Paket während der Übertragung über das Netz beschädigt wurde.
Mit Bezug auf Fig. 3 ist im folgenden ein Flußdiagramm des Betriebs des Schalters 110 der
Fig. 1 beschrieben. Der Schalter 110 beginnt beim Schritt 310, wo er ein Datenpaket über
einen seiner Kanäle empfängt. Im Schritt 312 liest der Schalter 110 das Kopffeld, um die
Länge und das Ziel der Pakete zu ermitteln. Im Schritt 314 speichert der Schalter 110 dann
das Paket vorübergehend in einem Speicherpuffer. Im Schritt 316 verwendet der Schalter 110
die Zielinformation, um die richtige Weiterleitung des Pakets zu ermitteln. Insbesondere er
mittelt der Schalter 110, welche Kanäle eine Netzwerkeinrichtung aufweisen, deren Netz
werkidentifikation (ID) mit der Zieladresse des Pakets übereinstimmt. Der Netzwerkschalter
ermittelt auch, ob das zugehörige Netzwerk ausreichend Bandbreite aufweist, um das Paket zu
senden. Wenn ja, liest der Schalter 110 das Paket aus dem Speicherpuffer.
Im Schritt 318 sendet der Schalter das Paket erneut über den Kanal, der eine Netzwerkein
richtung aufweist, deren Netzwerkidentifikation mit der der Zieladresse des Pakets überein
stimmt. Mehrfach gesendete und rundgesendete Pakete (Multicast- und Broadcast-Pakete)
werden über mehrere Kanäle gesendet.
Mit Bezug auf Fig. 4 ist im folgenden ein Blockdiagramm einer bevorzugten Ausführungs
form des Schalters 110 der Fig. 1 beschrieben. Der Schalter 110 umfaßT ein SDRAM 410,
eine Speichersteuereinheit 424 und einen Puffermanager 426. Der Puffermanager 426 ver
waltet den Strom der Datenpakete in das SDRAM 410. Insbesondere weist der Puffermanager
426 den eingehenden Paketen Puffer zu und überwacht die Zuweisung der Puffer, während
Daten in das SDRAM 410 geschrieben und aus diesem gelesen werden.
Das SDRAM 410 besteht aus drei SDRAM-Chips 412-416, von denen jeder einen 16-Bit-
Datenbus (nicht gezeigt) aufweist. Jeder SDRAM-Chip umfaßt zwei Banken, 211 Zeilen und
28 Spalten. Zusammen sehen die SDRAM-Chips 412-416 6 MByte Speicher vor. Auf die
Speicherstellen wird über einen 20-Bit-Adreßbus zugegriffen.
Paketdaten und Adreßinformation werden von dem Puffermanager 426 zu der Speichersteuer
einheit 424 weitergegeben. Die Speichersteuereinheit 424 verwendet die Adreßinformation
zum Speichern der Paketdaten in dem SDRAM 410.
Die Speichersteuereinheit 424 stellt auch eine Verbindung zu einer Registerzugriffseinheit
420, einem Taktmultiplexer 422, einer Abtaststeuereinrichtung (Scancontroller) 430 und ei
nem Rücksetzblock 428 her. Die Registerzugriffseinheit 420 wird zum Speichern von Fehler
informationen verwendet, die an den Schalter 110 übertragen worden sein kann. Der Takt
multiplexer 422 sieht ein Taktsignal (clk_sdram_out_c) für das SDRAM 410 und ein anderes
Taktsignal (clk50cgm_c) für die anderen getakteten Schaltkreise, einschließlich des Puffer
managers 426, vor. Diese beiden Taktsignale sind zueinander asynchron und können mit ver
schiedenen Frequenzen arbeiten. Die Speichersteuereinheit 424 dient also auch dazu, die
Übertragung von Paketdaten und Adreßinformation zwischen diesen beiden Taktbereichen zu
koordinieren.
Der Rücksetzblock 428 wird dazu verwendet, die Initialisierung des SDRAM 410 und der
Speichersteuereinheit 424 zu koordinieren. Der Scancontroller 430 wird dazu verwendet, die
Speichersteuereinheit 424 bei der Herstellung der integrierten Schaltung zu testen.
Die folgende Tabelle gibt eine kurze Beschreibung der Taktsignale clk50cgm_c und
clk_sdram_out_c:
Die Typ-Spalte gibt an, daß die Signale in die Speichersteuereinheit 424 eingegeben (I) wer
den. Die Signal-Spalte gibt an, daß die Signale digitale Impulssignale (Impuls) sind. Die Pola
rität-Spalte gibt an, daß der Takt die Schaltkreiselemente bei einer positiven Flanke triggert.
Die Signalbeschreibung gibt den annehmbaren Bereich der Taktsignalfrequenzen an.
Die folgende Tabelle gibt eine kurze Beschreibung der Signale zwischen der Registerzu
griffseinheit 420, dem Rücksetzblock 428, dem Scancontroller 430 und der Speichersteuer
einheit 424:
Die I/F-Spalte gibt den Ursprung oder das Ziel des Signals an. Die Registerzugriffseinheit 420
ist mit RAU (register access unit) bezeichnet, der Rücksetzblock 428 ist mit RESET bezeich
net; und der Scancontroller 430 ist mit SCAN bezeichnet. Die Typ-Spalte gibt an, ob das Si
gnal aus Sicht der Speichersteuereinheit 424 ein Eingangssignal (I; input) oder ein Ausgangs
signal (O; output) ist. Die Spalte mit der Signalbeschreibung sieht eine kurze Beschreibung
des Signals vor.
Eine kurze Beschreibung der Signale zwischen dem SDRAM 410 und der Speichersteuerein
heit 424 ist in der folgenden Tabelle vorgesehen:
Die L/F-Spalte gibt den Ursprung oder das Ziel des Signals ein. Das SDRAM 410 ist mit
SDRAM bezeichnet. Die Typ-Spalte gibt an, ob das Signal aus Sicht der Speichersteuerein
heit 424 ein Eingangssignal (I) oder ein Ausgangssignal (O) ist. Die Signalbeschreibungs
schaltung sieht eine kurze Beschreibung des Signals vor.
Zusätzlich zu der obigen Tabelle wird das Signal clk_sdram_out_c durch die Speichersteuer
einheit 424 geleitet. Die Speichersteuereinheit 424 liefert dieses Signal an das SDRAM 410
als SDRAM_CLOCK_OUT.
Während eines Bankaktiv-Befehlszyklus definieren A0-A10 die Zeilenadressen (RA0-
RA10), wenn mit der steigenden Flanke von SDRAM_CLK_OUT abgetastet wird. Während
eines Lese- oder Schreib-Befehlszyklus definieren A0-A7 die Spaltenadressen (CA0-CA7),
wenn mit der steigenden Flanke von SDRAM_CLK_OUT abgetastet wird. Ein hohes A10-Bit
aktiviert (enabled) das automatische Vorladen der Bank, die von A11 ausgewählt wird. Ein -
niedriges A10-Bit deaktiviert (disabled) das automatische Vorladen. Während eines Vorlade-
Befehlszyklus aktiviert ein hohes A10-Bit das Vorladen beider Banken A und B. Das niedrige
A10-Bit aktiviert das Vorladen der Bank, die durch das Bit A11 ausgewählt ist. Bei einer be
vorzugten Ausführungsform wird das automatische Vorladen nicht verwendet, weil es varia
ble Burstgrößen (Größen der Signalfolgen) nicht berücksichtigen kann.
In der folgenden Tabelle ist eine kurze Beschreibung der Signale zwischen dem Puffermana
ger 426 und der Speichersteuereinheit 424 vorgesehen:
Wiederum gibt die I/F-Spalte den Ursprung oder das Ziel des Signals an. Der Puffermanager
426 ist mit BM bezeichnet. Die Typ-Spalte gibt an, ob das Signal gesehen von der Speicher
steuereinheit 424 ein Eingangssignal (I) oder ein Ausgangssignal (O) ist. Die rechte Spalte
sieht eine kurze Beschreibung des Signals vor.
Mit Bezug auf Fig. 5 ist im folgenden ein Blockdiagramm des Schalters 110 mit weiteren
Einzelheiten einer bevorzugten Ausführungsform der Speichersteuereinheit 424 beschrieben.
Die Speichersteuereinheit 424 ist in zwei Taktbereiche (Taktdomänen) aufgeteilt:
clk_sdram_out_c und clk50cgm_c. Die Signale in der Domäne clk_sdram_out_c sind nach
einer positiven Flanke dieses Taktsignals gültig. Die Signale in der Domäne clk50cgm_c sind
nach einer positiven Flanke dieses Taktsignals gültig.
Die Speichersteuereinheit 424 umfaßt einen SDRAM-Schnittstellencontroller 510, einen
SDRAM-Befehlscontroller 522 und einen Puffermanager-Befehlscontroller 524. Der
SDRAM-Befehlscontroller 522 empfängt Befehlsinformation von dem Puffermanager 426
über den Puffermanager-Befehlscontroller 524. Da der SDRAM-Befehlscontroller 522 und
der Puffermanager 426 in verschiedenen Taktbereichen arbeiten, dient der Puffermanager-
Befehlscontroller 524 dazu, die Übertragung von Befehlsinformation über die Taktbereiche
hinweg zu koordinieren. Abhängig von Befehlen von dem Puffermanager 426 liefert der
SDRAM-Controller 522 Steuersignale an den SDRAM-Schnittstellencontroller 510. Zusätz
lich zu diesen Signalen empfängt der SDRAM-Schnittstellencontroller 510 Signale direkt von
dem Puffermanager 426, den Multiplexem 512 und 514 und dem DPRAM-Controller 526.
Abhängig von diesen Signalen liest und schreibt die SDRAM-Schnittstelle 510 Daten von
dem und in das SDRAM 410.
Spezieller empfängt der SDRAM-Controller 510 Start- und Endadreßsignale von den Multi
plexem 512 und 514. Diese Adreßsignale werden verwendet, um eine Start- und eine End
adreßstelle in dem SDRAM 410 zu wählen und basieren auf Signalen, die vom Puffermanager
426 empfangen wurden. Insbesondere liefert der Puffermanager eine Startadresse und eine
Paketgröße an einen Adreßwandler 520. Abhängig von diesen Signalen wählt der Adreß
wandler 520 eine Start- und eine Endadreßstelle in dem SDRAM 510. Die ausgewählten
Adressen werden in Registern 516 und 518 gespeichert. Die Adreßumwandlung ist unten mit
weiteren Einzelheiten beschrieben. Die Register 516 und 518 liefern ihrerseits die Adreßin
formation an die Multiplexer 512 und 514. Der Multiplexer 512 liefert die Startadresse an den
SDRAM-Controller 510; der Multiplexer 514 liefert die Endadreßinformation an den
SDRAM-Controller 510.
Obwohl die Adreßumwandlung hier in bezug auf spezifische Schaltkreiselemente beschrieben
wurde, kann dieselbe Funktion auch mit anderen Konfigurationen erreicht werden. Diese
Funktion kann z. B. mittels Software umgesetzt werden.
Der SDRAM-Controller 510 liest und schreibt Daten von dem und in das SDRAM 410. Diese
Daten werden über eine Synchronisierschaltung an den Puffermanager 426 geliefert und von
diesem empfangen. Die Synchronisierschaltung umfaßt DPRAM-Controller 526 und 536,
DRAMs 528 und 532 und Zeigercontroller 530 und 534. Die Synchronisierung dient dazu,
Daten über die Taktgrenze von clk_sdram_out_c nach clk50cgm_c zu übersetzen.
Insbesondere arbeitet das DPRAM 528 als ein FIFO. Von dem DPRAM-Controller 536 emp
fangene Paketdaten werden in das DPRAM 528 geschrieben, und diese Paketdaten werden
nachfolgend von dem DPRAM-Controller 526 aus dem DPRAM 528 ausgelesen. Die
Schreib- und Leseoperationen werden von dem Zeigercontroller 530 koordiniert. Der Zeiger
controller 530 überwacht das DPRAM 528, damit nicht ungelesene Elemente überschrieben
werden und damit die ältesten Paketdaten zuerst gelesen werden. Die DPRAM-Controller 536
und 526 überwachen jeweils einen Zeiger auf das DPRAM 528 zum Schreiben und Lesen von
Daten in das und aus dem FIFO. Der Zeigercontroller 528 koordiniert diese Zeiger über die
Taktbereiche hinweg.
Ähnlich arbeitet das DPRAM 532 wie ein FIFO, abgesehen davon, daß von dem DPRAM-
Controller 526 empfangene Paketdaten in das DPRAM 532 geschrieben werden und diese
Paketdaten nachfolgend von dem DPRAM-Controller 536 aus dem DPRAM 532 ausgelesen
werden.
Ein Zweikanal-FIFO mit synchronisierten Lese- und Schreibzeigern ist mit weiteren Einzel
heiten in der ebenfalls anhängigen deutschen Patentanmeldung "Zweikanal-FIFO mit syn
chronisierten Lese- und Schreibzeigern" vom 30.08.1999 derselben Anmelderin (Anwaltsak
tenzeichen: NL 1699) beschrieben. Das Aktenzeichen der prioritätsbegründenden US-
Ursprungsanmeldung ist 09/156,516. Auf diese Anmeldungen wird in ihrer Gesamtheit bezug
genommen.
Mit Bezug auf Fig. 6 ist im folgenden ein Ablaufdiagramm einer bevorzugten Schreiboperati
on unter Verwendung der Speichersteuereinheit der Fig. 5 beschrieben. Beginnend beim
Schritt 610 empfängt der Puffermanager 426 ein Datenpaket. Im Schritt 612 weist der Puf
fermanager 426 einen Puffer in dem SDRAM 410 zu. Der Puffermanager 426 gibt eine Start
adresse und eine Burstgröße an die Speichersteuereinheit 424 weiter. Wie oben erwähnt, kann
das Datenpaket in Zellen aufgeteilt sein. Die Burstlänge wird daher dazu verwendet, die Län
ge der Zelle anzugeben. Durch Aufteilen des Datenpakets in Zellen können Daten in das
SDRAM 410 geschrieben werden, bevor das gesamte Paket empfangen worden ist.
Im Schritt 614 liefert die Speichersteuereinheit 424 die Startadresse und die Burstgröße an
den Adreßwandler 520. Der Adreßwandler 520 konvertiert die Startadresse aus einem flachen
Speicheradreßraum in einen SDRAM-Speicherraum. Diese Umwandlung ist unten mit weite
ren Einzelheiten beschrieben. Der Adreßwandler 520 bestimmt auch eine Endadresse, indem
er die Burstgröße zu der Startadresse addiert.
Im Schritt 616 empfängt die Speichersteuereinheit 424 Daten von dem Puffermanager 426.
Diese Daten werden simultan mit der Adreßwandlung über die Taktbereiche hinweg über
setzt. Im einzelnen werden die Daten auf einen FIFO-Stapel geschoben (push), und die FIFO-
Zeiger werden über die Taktbereiche hinweg synchronisiert. Dies erlaubt es, die Daten in dem
anderen Taktbereich aus dem FIFO-Stapel zu holen (pop).
Im Schritt 618 ist die Adresse übersetzt, und die Daten sind zu dem Takt des SDRAM syn
chronisiert. Die Speichersteuereinheit 424 schreibt daher die synchronisierten Daten in das
SDRAM 410. Im Schritt 620 bestimmt die Speichersteuereinheit 424, ob das letzte Datenwort
in das SDRAM 410 geschrieben worden ist. Das SDRAM 410 schreibt Daten in aufeinander
folgende Speicherstellen. Wenn das SDRAM die Endadresse erreicht, die im Schritt 614 be
rechnet wurde, geht das SDRAM zum Schritt 610 zurück, um auf weitere Paketdaten zu war
ten.
Mit Bezug auf Fig. 7 ist ein Flußdiagramm einer bevorzugten Leseoperation unter Verwen
dung der Speichersteuereinheit der Fig. 5 beschrieben. Beginnend beim Schritt 710 wählt der
Puffermanager 426 einen Puffer aus, der Paketdaten enthält, und gibt eine Startadresse und
eine Burstgröße an die Speichersteuereinheit 424 weiter. Im Schritt 712 liefert die Speicher
steuereinheit 424 die Startadresse und die Burstgröße an den Adreßwandler 520. Der Adreß
wandler 520 konvertiert die Startadresse aus einem flachen Speicheradreßraum in einen
SDRAM-Speicherraum. Diese Umwandlung ist unten näher beschrieben. Der Adreßwandler
520 bestimmt auch eine Endadresse gestützt auf die Startadresse und die Burstgröße.
Im Schritt 714 gibt die Speichersteuereinheit 424 die Startadresse und die Endadresse an das
SDRAM 410 weiter. Das SDRAM 410 beginnt seinerseits mit dem Lesen der Daten aus se
quentiellen Adressen beginnend bei der Startadresse. Diese Daten werden über die Taktberei
che hinweg simultan mit der Adreßumwandlung übersetzt. Im einzelnen werden die Daten auf
einen FIFO-Stapel geschoben (push), und die FIFO-Zeiger werden über die Taktbereiche
hinweg synchronisiert. Dies erlaubt es, die Daten in dem anderen Taktbereich von dem FIFO-
Stapel zu holen (pop).
Im Schritt 716 bestimmt das SDRAM, ob die Endadresse erreicht wurde. Wenn nein, geht das
SDRAM 410 zum Schritt 714 zurück, um Daten aus der nächsten, folgenden Adresse zu le
sen. Ansonsten ist das Lesen der Daten beendet.
Im Schritt 718 sendet daher der Puffermanager die Paketdaten an die richtige Netzwerkein
richtung und kehrt zum Schritt 710 zurück, um den nächsten Puffer auszuwählen.
Fig. 8 zeigt eine Tabelle einer bevorzugten Adreßübersetzung aus einem flachen Speicher
adreßraum in einen SDRAM-Adreßraum. Diese Adreßübersetzung wird in dem Adreßwand
ler 520 der Fig. 5 ausgeführt. Der flache Speicheradreßraum ist in sechs Puffer (1-6) aufge
teilt, wie durch die erste Spalte angezeigt wird, die mit "relativer" Puffernummer überschrie
ben ist. Jedem der Puffer wird ein Bereich von Speicherstellen in dem flachen Speicheradreß
raum zugewiesen. Diese Zuweisung wird durch die Spalte angezeigt, die mit "von flacher
Adresse" überschrieben ist. Dem Puffer Nr. 1 wird z. B. der flache Speicheradreßraum 000-
14F in hexadezimaler Schreibweise (aufgelistet als 000-0FF und 100-14F) zugewiesen. Die
anderen Puffer entsprechen ähnlich zugewiesenem Speicher in dem flachen Speicheradreß
raum.
Da jeder der Puffer größer als eine Seite ist, wird jeder Puffer auf zwei Banken abgebildet.
Ein Teil des Puffers Nr. 1 wird z. B. auf die Bank Nr. 1 abgebildet, und ein Teil des Puffers
Nr. 1 wird auf die Bank Nr. 2 abgebildet. Spezieller werden die flachen Speicherstellen 000-
0FF auf die Bank Nr. 1 abgebildet, und die flachen Speicherstellen 100-14F werden auf die
Bank Nr. 2 abgebildet. Die physischen Speicherstellen in den Banken werden durch die mit
"zur physischen Adresse" bezeichnete Spalte angegeben.
Die mit "Bedingungen" bezeichnete Spalte gibt die Abbildungsbedingung an. Der erste Ein
trag "0 ≦ [10 : 4] < 10" gibt z. B. an, daß dann, wenn der Wert der Adreßbits Nr. 10 bis 4 größer
als oder gleich 0 und kleiner als 10 ist, die Adreßstellen auf die physischen Adreßstellen im
Bereich von 000-0FF in der Bank Nr. 1 abgebildet werden. Da die flachen Speicheradreßstel
len mit den physischen Speicheradreßstellen übereinstimmen, muß mit diesen Adressen keine
Operation ausgeführt werden.
Wenn bei dem zweiten Eintrag die Bits Nr. 10 bis 4 die Bedingung 15 ≦ [10 : 4] < 25 erfüllen,
wird der zweite physische Adreßraum ausgewählt. Die flachen Speicheradreßstellen 150-24F
werden daher auf die physischen Speicheradreßstellen 100-1FF abgebildet. Diese Überset
zung wird abhängig von sowohl der mit "Operation" bezeichneten Spalte als auch von der mit
"zusätzliche Operation" bezeichneten Spalte ausgeführt. Die mit "Operation" bezeichnete
Spalte gibt insbesondere an, daß die Bits Nr. 10 bis 8 ("[10 : 8]") in binärer Notation auf 001
abgebildet werden. Die "zusätzliche Operation" gibt an, daß die Bits Nr. 7 bis 4 ("[7 : 4]") um
5 reduziert werden. Diese beiden Operationen werden mit jeder flachen Speicheradreßstelle
ausgeführt, um die entsprechende physische Speicheradreßstelle zu erzeugen.
Die anderen Einträge funktionieren auf ähnliche Weise, so daß jede flache Speicheradreß
stelle auf eine physische Speicheradreßstelle abgebildet wird. Die mit "Bedingung" bezeich
nete Spalte wird auf die flache Speicheradreßstelle bezogen. Wenn die flache Speicheradreß
stelle in dem ausgewählten Bereich liegt, werden die entsprechenden Operationen aus den mit
"Operation" und "zusätzliche Operation" bezeichneten Spalten auf die flache Speicheradreß
stelle angewendet. Diese Operationen erzeugen die physische Speicheradreßstelle.
Mit Bezug auf Fig. 9 ist ein Blockdiagramm der Adreßübersetzung der Fig. 8 beschrieben.
Der flache Speicheradreßraum 902 ist in Blöcke 910-920 aufgeteilt. Die Blöcke 910-920 wer
den von dem Adreßwandler 520 (der in Fig. 5 gezeigt ist) jeweils auf den physischen Spei
cheradreßraum abgebildet. Die Abbildung des Speicherblocks 918 ist im einzelnen darge
stellt. Die anderen Speicherblöcke werden ähnlich abgebildet.
Im einzelnen ist der Block 918 in sechs Puffer unterteilt. Diese Puffer belegen die Seiten 930-
944 des SDRAM 410. Die Seiten 930, 934, 938 und 942 liegen in der Bank A des SDRAM
410. Die Seiten 932, 936, 940 und 944 liegen in der Bank B des SDRAM 410. Die Seite 942
ist in einen ersten Teil 950, einen zweiten Teil 951 und einen dritten Teil 952 unterteilt. Die
Seite 944 ist in einen ersten Teil 953, einen zweiten Teil 954 und einen dritten Teil 955 un
terteilt.
Der Puffer Nr. 1 belegt die Seite 930 und den ersten Teil 953 der Seite 944. Der Puffer Nr. 2
belegt die Seite 932 und den zweiten Teil 951 der Seite 942. Der Puffer Nr. 3 belegt die Seite
934 und den dritten Teil 955 der Seite 944. Der Puffer Nr. 4 belegt die Seite 936 und den er
sten Teil 950 der Seite 942. Der Puffer Nr. 5 belegt die Seite 938 und den zweiten Teil 954
der Seite 944. Der Puffer Nr. 6 belegt die Seite 940 und den dritten Teil 952 der Seite 942.
Wenn Paketdaten in einen Puffer geschrieben werden, greift die Speichersteuereinheit 424
zuerst auf die Seiten 930-940 zu. Diese Seiten werden daher als Hauptseiten bezeichnet.
Wenn eine Hauptseite kein gesamtes Paket fassen kann, greift die Speichersteuereinheit 424
auf einen Teil der Seiten 942-944 zu. Diese Seiten werden daher als Zusatzseiten bezeichnet.
Die Speichersteuereinheit 424 kann z. B. versuchen, ein Datenpaket von 2 kByte in dem Puf
fer Nr. 1 zu speichern. Zunächst werden Daten in die Seite 930 geschrieben, diese Seite kann
jedoch nur 1,5 kByte Daten fassen. Die verbleibenden Paketdaten werden daher in den ersten
Teil 953 der Seite 944 geschrieben. Da die Seite 930 in der Bank A und die Seite 944 in der
Bank B liegt, kann die Vorladeoperation der Seite 944 beginnen, bevor das Schreiben auf die
Seite 930 abgeschlossen ist.
Mit Bezug auf Fig. 10 ist im folgenden ein Blockdiagramm einer bevorzugten Ausführungs
form einer SDRAM-Speicheradreß-Auswahlschaltung 1000 beschrieben. Die SDRAM-
Speicheradreß-Auswahlschaltung umfaßt Flach/SDRAM-Adreßübersetzungseinrichtungen
1010 und 1018 sowie eine Startadreß-Übersetzungseinrichtung 1016. Zusammen empfangen
diese Übersetzungeinrichtungen Information über die Startadresse und die Burstgröße von
einem Puffermanager und erzeugen Adreßstart- und Adreßend-Signale für ein SDRAM. Die
SDRAM-Speicheradreß-Auswahlschaltung 1000 ermöglicht es dem Puffermanager, das
SDRAM wie einen Speicher mit flacher Adressierung (flat memory) zu adressieren. Dies ver
einfacht die Realisierung des Puffermanagers.
Die Startadreßinformation wird von dem Signal start addr vorgesehen, und die Burstgrö
ßeninformation wird von dem Signal burst_size vorgesehen. Ein Addierer 1012 addiert das
Signal start addr zu dem Signal burst_size. Das Ausgangssignal des Addierers 1012 wird an
einen Subtrahierer 1014 übergeben, der dieses Ausgangssignal um 1 dekrementiert. Das Aus
gangssignal des Subtrahierers 1014 ist die Endadreßstelle und wird als das Signal end_addr
vorgesehen.
Das Signal start_addr wird auch an die Flach/SDRAM-Adreßübersetzungseinrichtung 1010
übergeben. Das Signal start addr ist ein 20 Bit breites Signal. Die elf niedrigstwertigen Bits
des Signals start_addr (d. h. [10 : 0]) werden gemäß der in Fig. 8 gezeigten Tabelle konver
tiert. Die neun höchstwertigen Bits werden von der Flach/SDRAM-Adreßübersetzungs
einrichtung 1010 nicht verändert.
Die elf niedrigstwertigen Bits sind ausreichend, um einen Puffer auf eine Hauptseite in einer
Bank und eine Zusatzseite in einer anderen Bank abzubilden. Die Verwendung der neun
höchstwertigen Bits würde zusätzliche Übersetzungsschaltungen und daher zusätzliche Lo
gikgatter erfordern. Dies würde wiederum die Adreßwandlung verzögern.
Die elf niedrigstwertigen Bits, die gemäß der in Fig. 8 gezeigten Tabelle konvertiert wurden,
werden mit den neun höchstwertigen Bits des Signals start_addr kombiniert, um das Signal
addr0_start vorzusehen. Dieses Signal ist die Startadresse in dem SDRAM.
Zusätzlich sieht die Flach/SDRAM-Adreßübersetzungseinrichtung 1010 ein Hauptseitensi
gnal (main_page) und ein Hauptseitenendeadreß-Signal (addr0_end) vor. Das Signal
main_page gibt an, ob die übersetzte Startadresse auf eine Hauptseite abgebildet wird. Wenn
ja, wird das Signal main_page aktiviert. Anderenfalls wird das Signal main_page deaktiviert.
Das Signal addr0_end gibt die letzte verfügbare Adreßstelle auf der Hauptseite an. Wieder in
Fig. 9 ist die letzte verfügbare Adresse auf der Hauptseite 930 gleich 255 (0FFh).
Die Startadreßübersetzungseinrichtung 1016 empfängt das Signal end_addr und das Signal
main_page. Die Startadreßübersetzungseinrichtung 1016 gibt die erste verfügbare Adreßstelle
in einer Zusatzseite an. Wieder in Fig. 9 ist die erste verfügbare Adreßstelle in der Zusatzseite
944 für den Puffer Nr. 1 gleich 1792 (700 h).
Für Daten, die keine Paketdaten sind, kann von einer Zusatzseite auf einer Hauptseite gelesen
und auf sie geschrieben werden. Dem Signal addr0_start kann z. B. 700 h zugewiesen werden.
Das Signal main_Page wird daher deaktiviert, und dem Signal addr1_start würde 100 h zuge
wiesen werden (d. h. der Anfang des Puffers Nr. 2).
Das Signal end_addr wird auch an die Flach/SDRAM-Adreßübersetzungseinrichtung 1018
übergeben. Das Signal end_addr ist ein 20 Bit breites Signal. Die elf niedrigstwertigen Bits
des Signal end_addr (d. h. [10 : 0]) werden gemäß der in Fig. 8 gezeigten Tabelle konvertiert.
Die neun höchstwertigen Bits werden von der Flach/SDRAM-Adreßübersetzungseinrichtung
1018 nicht verändert.
Die elf niedrigstwertigen Bits, die gemäß der in Fig. 8 gezeigten Tabelle konvertiert wurden,
werden mit den neun höchstwertigen Bits des Signals end_addr kombiniert, um das Signal
addr1_end vorzusehen. Dieses Signal ist die Endadresse in der Zusatzseite des SDRAM.
Seite: 27
Um die Adreßübersetzungen zu beschleunigen, werden alle vier Adressen, nämlich
addr0_start, addr0_end, addr1_start und addr1_end gleichzeitig erzeugt. Diese Adreßsignale
werden üblicherweise abhängig davon, ob die betreffende Zelle in einer Seite enthalten ist,
unterschiedlich verwendet.
Wenn eine Zelle in einer Seite enthalten ist, zeigt addr0_start auf die tatsächliche Startadresse
des SDRAM, addr0_end zeigt auf die letzte Adresse auf derselben SDRAM-Seite, addr1_start
zeigt auf die erste Adresse der nächsten SDRAM-Seite in Folge und addr1_end zeigt auf die
tatsächliche Endadresse auf derselben SDRAM-Seite wie addr0_start. In diesem Fall werden
daher nur addr0_start und addr1_end von dem SDRAM-Controller verwendet. Insbesondere
verwendet der SDRAM-Controller addr0_start als die Startadresse und addr1_end als die
Endadresse. Da alle Daten auf eine Seite geschrieben werden, kann der SDRAM-Controller
die Grenzen der Seiten ignorieren.
Wenn eine Zelle in zwei SDRAM-Seiten enthalten ist, zeigt addr0_start auf die tatsächliche
Startadresse des SDRAM, addr0_end zeigt auf die letzte Adresse auf derselben SDRAM-
Seite, addr1_start zeigt auf die erste Adresse der nächsten SDRAM-Seite in Folge, und
addr1_end zeigt auf die tatsächliche Endadresse auf derselben SDRAM-Seite wie addr1_start.
In diesem Fall werden von dem SDRAM-Controller alle vier Adressen verwendet. Insbeson
dere verwendet der SDRAM-Controller zunächst addr0_start und addr0_end, um Daten auf
der ersten Seite zu schreiben (oder zu lesen). Dann verwendet der DRAM-Controller
addr1_start und addr1_end, um Daten auf der zweiten Seite zu schreiben (oder zu lesen).
Mit Bezug auf Fig. 11 ist ein Ablaufdiagramm einer bevorzugten Operation der Speichersteu
ereinheit der Fig. 4 beschrieben, mit der eine Adresse aus einem flachen Speicheradreßraum
in einen SDRAM-Adreßraum übersetzt wird. Im Schritt 1110 empfängt die Speichersteuer
einheit ein flaches Speicheradreßsignal und eine Burstgröße. Im Schritt 1112 übersetzt die
Speichersteuereinheit das flache Speicheradreßsignal in ein SDRAM-Adreßsignal. Die Über
setzung erfolgt gemäß der in Fig. 8 dargestellten Tabelle. Im Schritt 1114 addiert die Spei
chersteuereinheit die Burstgröße zu dem flachen Speicheradreßsignal, um ein flaches Spei
cher-Endadreßsignal vorzusehen. Im Schritt 1116 übersetzt die Speichersteuereinheit das fla
che Speicher-Endadreßsignal in ein SDRAM-Endadreßsignal.
Im Schritt 1118 ermittelt die Speichersteuereinheit, ob das SDRAM-Startadreßsignal auf einer
Hauptseite liegt. Wenn nein, ist die Übersetzung abgeschlossen. Anderenfalls ermittelt die
Speichersteuereinheit im Schritt 1120, ob das SDRAM-Endadreßsignal auf einer Hauptseite
liegt. Wenn ja, ist die Übersetzung abgeschlosssen. Anderenfalls überqueren die Daten eine
Seitengrenze. Im Schritt 1122 erzeugt die Speichersteuereinheit daher ein Seitengrenzen-
Adreßsignal. Die Seitengrenzen-Adreßsignale zeigen die letzte verfügbare Speicherstelle auf
der Hauptseite und die erste verfügbare Speicherstelle auf der Zusatzseite an. Damit ist die
Übersetzung beendet.
Die oben beschriebene Abbildung dient zum Beschleunigen des Datenzugriffs. Insbesondere
ordnet diese Abbildung Paketdaten an, auf die gemeinsam zugegriffen wird, die jedoch nicht
auf derselben Seite in verschiedenen Banken gespeichert werden können. Dies ermöglicht,
daß die Vorlade- und Aktivierungsoperationen beginnen, bevor der vorhergehende Zugriff
beendet ist, und somit die Datenzugriffszeit weiter reduziert wird.
Während des normalen Betriebs wird ferner auf den Puffer Nr. 1 als erstes zugegriffen. Wie in
Fig. 9 gezeigt, liegt ein erster Teil des Puffers Nr. 1 (d. h. der Block 930) an der Bank A, und
ein zweiter Teil des Puffers Nr. 1 (d. h. der Block 950) liegt in der Bank B. Üblicherweise be
legt ein Datenpaket nicht eine gesamte Speicherseite. Es wird daher nur auf den Block 930
zugegriffen. Auf den Puffer Nr. 2 wird danach zugegriffen. Da der erste Teil dieses Puffers in
der Bank B liegt (d. h. Seite 932), kann diese Seite vorgeladen und aktiviert werden, während
noch Daten in die Bank A geschrieben werden. Die Hauptseiten der anderen, nachfolgenden
Puffer werden ebenfalls in verschiedenen Banken angeordnet. Diese Anordnung dient dazu,
den Datenzugriff zu beschleunigen.
Obwohl die hier beschriebenen Ausführungsformen eine Adreßübersetzung realisieren, die
Start- und Längen-Adreßinformation erhält, kann die Übersetzung auch mit Start- und End-
Adreßinformationen arbeiten. Dieselbe Übersetzung kann auf diese Adreßinformation ange
wendet werden. Zusätzlich kann die Adreßübersetzung abhängig von den Anforderungen des
SDRAM Informationen über Start, Länge oder Burstgröße erzeugen.
Insbesondere werden, wie oben beschrieben, start addr und burst size von einem Pufferma
nager vorgesehen und in addr0_start, addr0_end, addr1_start und addr1_end im SDRAM-
Adreßraum konvertiert. Ebenso können start_addr und burst_size in die Signale addr0_start,
addr0_size, addr1_start und addr1_size konvertiert werden. Mit anderen Worten ist es funk
tional äquivalent, anstatt die Start- und Endadressen zu erzeugen, die Startadressen und die
Größen der Bursts (Signalfolgen) für diese Startadressen zu erzeugen.
Mit Bezug auf Fig. 12 wird ein Flußdiagramm einer bevorzugten Operation einer Speicher
steuereinheit, die Daten in ein SDRAM schreibt, beschrieben. Die Speichersteuereinheit be
ginnt beim Schritt 1210, wo sie einen Schreibbefehl, Adreßinformation und Daten empfängt.
Die Adreßinformation umfaßt eine Startadresse und eine Burstgröße. Die Speichersteuerein
heit geht zum Block 1212 weiter. Hier übersetzt die Speichersteuereinheit die Adreßinforma
tion in einen SDRAM-Adreßraum. Gleichzeitig synchronisiert die Speichersteuereinheit die
Daten über eine Taktbereichsgrenze hinweg.
Im Schritt 1214 initiiert die Speichersteuereinheit Vorlade- und Aktivierungsoperationen auf
einer Hauptseite in einer ersten Bank. Im Schritt 1216 schreibt die Speichersteuereinheit Da
ten in aufeinanderfolgende Adreßstellen in der Hauptseite.
Im Schritt 1218 bestimmt die Speichersteuereinheit, ob Daten auf eine Zusatzseite in einer
zweiten Bank geschrieben werden sollen. Wenn nein, geht die Speichcrsteuereinheit zum
Schritt 1210 zurück. Hier wartet die Speichersteuereinheit auf den Empfang des nächsten Be
fehls. Bei einem SDRAM-System mit zwei Banken beträgt die Wahrscheinlichkeit, daß die
nächste Schreiboperation auf eine Seite in der zweiten Bank zugreift, 50%. Im Schritt 1214
kann die Speichersteuereinheit die nächsten Vorlade- und Aktivierungsoperationen auslösen,
bevor die vorhergehende Schreiboperation beendet ist.
Anderenfalls geht die Speichersteuereinheit zum Schritt 1220. Hier initiiert die Speichersteu
ereinheit die Vorlade- und Aktivierungsoperationen für die Zusatzseite in der zweiten Bank.
Während dieser Operationen werden Daten gleichzeitig auf die Hauptseite in der ersten Bank
geschrieben. Wenn die Speichersteuereinheit die Hauptseite mit Daten gefüllt hat, geht sie
zum Schritt 1222 weiter. Hier schreibt die Speichersteuereinheit Daten in die Zusatzseite. Bei
Beendigung der Schreiboperation geht die Speichersteuereinheit zum Schritt 1210 zurück.
Mit Bezug auf Fig. 13 ist ein Ablaufdiagramm einer bevorzugten Operation einer Speicher
steuereinheit, die Daten von einem SDRAM liest, beschrieben. Die Speichersteuereinheit be
ginnt im Schritt 1310, wo sie einen Lesebefehl und Adreßinformationen empfängt. Die
Adreßinformation umfaßt eine Startadresse und eine Burstgröße. Die Speichersteuereinheit
geht zum Block 1312 weiter. Hier übersetzt die Speichersteuereinheit die Adreßinformation in
einen SDRAM-Adreßraum.
Im Schritt 1314 initiiert die Speichersteuereinheit Vorlade- und Aktivierungsoperationen auf
einer Hauptseite in einer ersten Bank. Im Schritt 1316 liest die Speichersteuereinheit Daten
aus aufeinanderfolgenden Adreßstellen in der Hauptseite. Die Daten werden über eine Takt
bereichsgrenze zum Puffermanager 426 hinweg synchronisiert.
Im Schritt 1318 bestimmt die Speichersteuereinheit, ob Daten von einer Zusatzseite in einer
zweiten Bank gelesen werden sollen. Wenn nein, geht die Speichersteuereinheit zum Schritt
1310 zurück. Hier wartet die Speichersteuereinheit auf den Empfang des nächsten Befehls.
Bei einem SDRAM-System mit zwei Banken besteht eine Wahrscheinlichkeit von 50%, daß
die nächste Leseoperation auf eine Seite in der zweiten Bank zugreift. Im Schritt 1314 kann
die Speichersteuereinheit die nächsten Vorlade- und Aktivierungsoperationen auslösen, bevor
die vorhergehende Leseoperation abgeschlossen ist.
Anderenfalls geht die Speichersteuereinheit zum Schritt 1320 weiter. Hier löst die Speicher
steuereinheit die Vorlade- und Aktivierungsoperationen für die Zusatzseite in der zweiten
Bank aus. Während dieser Operationen werden gleichzeitig Daten von der Hauptseite in der
ersten Bank gelesen und synchronisiert. Wenn die Speichersteuereinheit alle Daten von der
Hauptseite gelesen hat, geht sie zum Schritt 1322 weiter. Hier liest die Speichersteuereinheit
Daten von der Zusatzseite. Bei Beendigung der Leseoperation kehrt die Speichersteuereinheit
zum Schritt 1310 zurück.
Die oben beschriebene Operation beschleunigt den SDRAM-Zugriff, indem sie es ermöglicht,
gleichzeitig Adreßinformationen zu übersetzen und Daten zu synchronisieren.
Obwohl die Ausführungsformen der Erfindung in bezug auf eine Netzwerkeinrichtung be
schrieben wurden, ist die Erfindung auf jede andere Einrichtung anwendbar, die Speicher
adressen aus einem flachen Speicheradreßraum übersetzt oder die Daten von einem Takt zu
einem anderen synchronisiert. Obwohl die vorliegende Erfindung in bezug auf bestimmte
Funktionsblöcke und Tabellen beschrieben wurde, können ferner andere Strukturen dieselben
Funktionen ausführen oder dieselben Vorteile mit anderen Konfigurationen erreichen. Ein
Fachmann wird aus den hier offenbarten Ausführungsformen sicher verstehen, daß zahlreiche
Modifikationen möglich sind, ohne die Lehre der Erfindung zu verlassen. All diese Modifika
tionen sollen im Bereich der folgenden Ansprüche liegen.
Claims (1)
- Speichersteuereinheit zum Steuern eines SDRAM, mit folgenden Merkmalen:
eine Pufferverwaltungsschnittstelle, die so konfiguriert ist, daß sie Befehle, Adreßin formation und Daten von einem Puffermanager empfängt, wobei der Puffermanager auf der Basis eines ersten Takts arbeitet;
eine Adreßübersetzungsschaltung, die mit der Pufferverwaltungsschnittstelle betrieb lich gekoppelt und so konfiguriert ist, daß sie die Adreßinformation in einen SDRAM- Adreßraum übersetzt;
eine Datensynchronisierschaltung, die mit der Pufferverwaltungsschnittstelle betrieb lich gekoppelt und so konfiguriert ist, daß sie die Daten zu einem zweiten Takt syn chronisiert, während die Adreßübersetzungsschaltung die Adreßinformation in den SDRAM-Adreßraum übersetzt; und
eine SDRAM-Schnittstelle, die mit der Adreßübersetzungsschaltung und der Daten synchronisierschaltung betrieblich gekoppelt und so konfiguriert ist, daß sie gestützt auf die übersetzte Adreßinformation Daten in ein SDRAM schreibt, wobei das SDRAM auf der Basis des zweiten Takts arbeitet.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/157,079 US6418518B1 (en) | 1998-09-18 | 1998-09-18 | Decoupled address and data access to an SDRAM |
US157079 | 1998-09-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE19943176A1 true DE19943176A1 (de) | 2000-03-23 |
DE19943176B4 DE19943176B4 (de) | 2012-09-20 |
Family
ID=22562266
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19943176A Expired - Fee Related DE19943176B4 (de) | 1998-09-18 | 1999-09-09 | Speichersteuereinheit zum Steuern eines SDRAM in einem Netzwerkschalter |
Country Status (3)
Country | Link |
---|---|
US (2) | US6418518B1 (de) |
KR (1) | KR100328101B1 (de) |
DE (1) | DE19943176B4 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10354034A1 (de) * | 2003-11-19 | 2005-06-30 | Infineon Technologies Ag | Verfahren zum Betreiben einer Halbleiterspeichervorrichtung und Halbleiterspeichervorrichtung |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6330627B1 (en) * | 1998-01-20 | 2001-12-11 | Kabushiki Kaisha Toshiba | System for fast data transfer between memory modules and controller using two clock lines each having a go line portion and a return line portion |
US6418518B1 (en) * | 1998-09-18 | 2002-07-09 | National Semiconductor Corporation | Decoupled address and data access to an SDRAM |
US6801954B1 (en) * | 2000-02-25 | 2004-10-05 | Hewlett-Packard Development Company, L.P. | Method and apparatus to concurrently operate on multiple data movement transactions in a disk array subsystem |
US6928494B1 (en) * | 2000-03-29 | 2005-08-09 | Intel Corporation | Method and apparatus for timing-dependant transfers using FIFOs |
US6779061B1 (en) * | 2000-05-09 | 2004-08-17 | Cypress Semiconductor Corp. | Method and apparatus implementing a FIFO with discrete blocks |
US7161938B1 (en) * | 2000-07-26 | 2007-01-09 | Infineon Technologies North America Corp. | Network switch |
JP2007249837A (ja) * | 2006-03-17 | 2007-09-27 | Nec Electronics Corp | メモリ制御装置、メモリ制御方法及び携帯機器 |
JP4267002B2 (ja) | 2006-06-08 | 2009-05-27 | エルピーダメモリ株式会社 | コントローラ及びメモリを備えるシステム |
US8001409B2 (en) * | 2007-05-18 | 2011-08-16 | Globalfoundries Inc. | Synchronization device and methods thereof |
US8219778B2 (en) * | 2008-02-27 | 2012-07-10 | Microchip Technology Incorporated | Virtual memory interface |
US7996649B1 (en) * | 2008-04-29 | 2011-08-09 | Xilinx, Inc. | Translation look-aside buffer with look-up optimized for programmable logic resource utilization |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR960003526B1 (ko) * | 1992-10-02 | 1996-03-14 | 삼성전자주식회사 | 반도체 메모리장치 |
US5142635A (en) * | 1989-04-07 | 1992-08-25 | Intel Corporation | Method and circuitry for performing multiple stack operations in succession in a pipelined digital computer |
JP2531802B2 (ja) * | 1989-09-28 | 1996-09-04 | 甲府日本電気株式会社 | リクエストバッファ制御システム |
US5426756A (en) | 1992-08-11 | 1995-06-20 | S3, Incorporated | Memory controller and method determining empty/full status of a FIFO memory using gray code counters |
US5896551A (en) * | 1994-04-15 | 1999-04-20 | Micron Technology, Inc. | Initializing and reprogramming circuitry for state independent memory array burst operations control |
US5555524A (en) | 1995-02-13 | 1996-09-10 | Standard Microsystems Corporation | Semi-synchronous dual port FIFO |
US5630096A (en) | 1995-05-10 | 1997-05-13 | Microunity Systems Engineering, Inc. | Controller for a synchronous DRAM that maximizes throughput by allowing memory requests and commands to be issued out of order |
US5742840A (en) * | 1995-08-16 | 1998-04-21 | Microunity Systems Engineering, Inc. | General purpose, multiple precision parallel operation, programmable media processor |
US5946005A (en) * | 1995-09-21 | 1999-08-31 | Industrial Technology Research Institute | Computer graphics memory architecture having a graphics processor and a buffer |
US5761694A (en) * | 1995-11-30 | 1998-06-02 | Cirrus Logic, Inc. | Multi-bank memory system and method having addresses switched between the row and column decoders in different banks |
US5748551A (en) | 1995-12-29 | 1998-05-05 | Micron Technology, Inc. | Memory device with multiple internal banks and staggered command execution |
US5784705A (en) * | 1996-07-15 | 1998-07-21 | Mosys, Incorporated | Method and structure for performing pipeline burst accesses in a semiconductor memory |
US5787457A (en) | 1996-10-18 | 1998-07-28 | International Business Machines Corporation | Cached synchronous DRAM architecture allowing concurrent DRAM operations |
US5784582A (en) | 1996-10-28 | 1998-07-21 | 3Com Corporation | Data processing system having memory controller for supplying current request and next request for access to the shared memory pipeline |
US6130891A (en) * | 1997-02-14 | 2000-10-10 | Advanced Micro Devices, Inc. | Integrated multiport switch having management information base (MIB) interface temporary storage |
US5987576A (en) * | 1997-02-27 | 1999-11-16 | Hewlett-Packard Company | Method and apparatus for generating and distributing clock signals with minimal skew |
US6134638A (en) * | 1997-08-13 | 2000-10-17 | Compaq Computer Corporation | Memory controller supporting DRAM circuits with different operating speeds |
US5948081A (en) * | 1997-12-22 | 1999-09-07 | Compaq Computer Corporation | System for flushing queued memory write request corresponding to a queued read request and all prior write requests with counter indicating requests to be flushed |
US6064407A (en) * | 1998-04-30 | 2000-05-16 | Ati Technologies, Inc. | Method and apparatus for tiling a block of image data |
US6202139B1 (en) * | 1998-06-19 | 2001-03-13 | Advanced Micro Devices, Inc. | Pipelined data cache with multiple ports and processor with load/store unit selecting only load or store operations for concurrent processing |
US6418518B1 (en) * | 1998-09-18 | 2002-07-09 | National Semiconductor Corporation | Decoupled address and data access to an SDRAM |
-
1998
- 1998-09-18 US US09/157,079 patent/US6418518B1/en not_active Expired - Lifetime
-
1999
- 1999-08-30 KR KR1019990036265A patent/KR100328101B1/ko not_active IP Right Cessation
- 1999-09-09 DE DE19943176A patent/DE19943176B4/de not_active Expired - Fee Related
-
2002
- 2002-06-06 US US10/163,561 patent/US6484248B1/en not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10354034A1 (de) * | 2003-11-19 | 2005-06-30 | Infineon Technologies Ag | Verfahren zum Betreiben einer Halbleiterspeichervorrichtung und Halbleiterspeichervorrichtung |
DE10354034B4 (de) * | 2003-11-19 | 2005-12-08 | Infineon Technologies Ag | Verfahren zum Betreiben einer Halbleiterspeichervorrichtung und Halbleiterspeichervorrichtung |
Also Published As
Publication number | Publication date |
---|---|
KR100328101B1 (ko) | 2002-03-09 |
US6484248B1 (en) | 2002-11-19 |
US20020199055A1 (en) | 2002-12-26 |
DE19943176B4 (de) | 2012-09-20 |
KR20000022787A (ko) | 2000-04-25 |
US6418518B1 (en) | 2002-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2753063C3 (de) | ||
DE69637320T2 (de) | Methode und Apparat für Vermittlung, Mehrfachsendeverfahren, Multiplexierung und Demultiplexierung einer ATM-Zelle | |
DE3525575C2 (de) | ||
DE2230987C2 (de) | ||
EP0013737A1 (de) | Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem | |
EP1291878B1 (de) | Steuereinrichtung zur Steuerung von Burst-Zugriffen | |
DE19943176A1 (de) | Entkoppelter Adreß- und Datenzugriff auf ein SDRAM | |
DE3110196A1 (de) | Datenverarbeitungssystem | |
DE3207210A1 (de) | Monolithische speichervorrichtung | |
DE3618136C2 (de) | ||
DE19943174B4 (de) | SDRAM-Adreßübersetzer | |
EP0692893A1 (de) | Vorrichtung zur Vermittlung in digitalen Datennetzen für asynchronen Transfermodus | |
EP0409330B1 (de) | Schaltungsanordnung zum Steuern des Zugriffs auf einen Speicher | |
DE602004008712T2 (de) | Speicherbandbreiten-Steuereinrichtung | |
DE4323471C2 (de) | Anordnung und Verfahren zum Bearbeiten von Datenstrukturen bei deren Durchlauf durch einen Netzwerkknoten | |
DE69924179T2 (de) | Breitbandige Speicheranordnung mit Befehlsstapel und schmaler Ein- und Ausgabe | |
DE19818430B4 (de) | Bidirektionelle Datenein/Ausgabeschaltung eines Synchronspeicherelements und Verfahren zum Steuern derselben | |
DE10200685A1 (de) | Halbleiterspeichervorrichtung mit mehr als zwei internen Bänken unterschiedlicher Größen | |
DE69736882T2 (de) | Vereinfachte Schnittstelle für ein Zeitmultiplex-Fernmeldesystem | |
DE102005040109B4 (de) | Halbleiterspeicherchip | |
DE102004033387A1 (de) | Digitale RAM-Speicherschaltung mit erweiterter Befehlsstruktur | |
DE102008001739B4 (de) | Verfahren zum Steuern eines Zugriffs auf Bereiche eines Speichers aus mehreren Prozessen heraus und Kommunikations-Modul mit einem Nachrichten-Speicher zur Realisierung des Verfahrens | |
DE19933539B4 (de) | Integrierter Speicher | |
DE69907800T2 (de) | Schnelle DRAM-Anordnung | |
DE4442638B4 (de) | Digitaler Videospeicher |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
R019 | Grant decision by federal patent court | ||
R020 | Patent grant now final |
Effective date: 20121221 |
|
R082 | Change of representative |
Representative=s name: , |
|
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |