DE19943176A1 - Entkoppelter Adreß- und Datenzugriff auf ein SDRAM - Google Patents

Entkoppelter Adreß- und Datenzugriff auf ein SDRAM

Info

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
Application number
DE19943176A
Other languages
English (en)
Other versions
DE19943176B4 (de
Inventor
Sheung-Fan Wen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National Semiconductor Corp
Original Assignee
National Semiconductor Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by National Semiconductor Corp filed Critical National Semiconductor Corp
Publication of DE19943176A1 publication Critical patent/DE19943176A1/de
Application granted granted Critical
Publication of DE19943176B4 publication Critical patent/DE19943176B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address 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 130135 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:
Speichersteuereinheit - Taktsignale
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:
Speichersteuereinheit - Schnittstellensignale
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:
Speichersteuereinheit - SDRAM-Signale
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:
Speichersteuereinheit - Puffermanagersignale
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)

  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.
DE19943176A 1998-09-18 1999-09-09 Speichersteuereinheit zum Steuern eines SDRAM in einem Netzwerkschalter Expired - Fee Related DE19943176B4 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (2)

* Cited by examiner, † Cited by third party
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