DE69828890T2 - Konfigurierbare speichersteuerungsvorrichtung und verfahren hierfür - Google Patents

Konfigurierbare speichersteuerungsvorrichtung und verfahren hierfür Download PDF

Info

Publication number
DE69828890T2
DE69828890T2 DE69828890T DE69828890T DE69828890T2 DE 69828890 T2 DE69828890 T2 DE 69828890T2 DE 69828890 T DE69828890 T DE 69828890T DE 69828890 T DE69828890 T DE 69828890T DE 69828890 T2 DE69828890 T2 DE 69828890T2
Authority
DE
Germany
Prior art keywords
memory
section
output
input
controller
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.)
Expired - Lifetime
Application number
DE69828890T
Other languages
English (en)
Other versions
DE69828890D1 (de
Inventor
P. Anthony GOLD
K. Michael BENTON
C. Philip BOLYN
D. Eric AHO
D. Mark LUBA
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.)
Unisys Corp
Original Assignee
Unisys 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 Unisys Corp filed Critical Unisys Corp
Application granted granted Critical
Publication of DE69828890D1 publication Critical patent/DE69828890D1/de
Publication of DE69828890T2 publication Critical patent/DE69828890T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Logic Circuits (AREA)
  • Dram (AREA)

Description

  • Hintergrund der Erfindung
  • Erfindungsgebiet
  • Die vorliegende Erfindung betrifft die Aggregation der Funktion auf einer einzelnen anwendungsspezifischen integrierten Schaltung (ASIC). Spezieller betrifft die vorliegende Erfindung ein System zum Bereitstellen einer Mehrzahl an Modi und einer Zwischenverbindung zwischen ASICs, damit eine Skalierung erreicht wird.
  • Stand der Technik
  • Herkömmliche Speicher-Controller-Leiterplatten umfassen eine Reihe an anwendungsspezifischen integrierten Schaltungen (ASICs). Die ASICs können der Funktion nach in drei Kategorien unterteilt werden: Speichereingabe, Speicherausgabe und Speicher-Controller. Speichereingabe-ASICs akzeptieren Eingaben von Anforderern. Ein Anforderer erfordert den Zugriff auf den Speicher. Die Speichereingabe-ASIC versorgt den Anforderer mit dem Mittel zum Eingeben der Anfrage an den Speicher. Die Speichereingabe-ASIC leitet eine Anfrage an eine Speicher-Controller-ASIC. Die Speicher-Controller-ASIC verarbeitet die Anfrage und bestimmt die benötigten geeigneten Speicherzugriffe, die zur Abwicklung der Anfrage erforderlich sind. Zum Beispiel bestimmt die Speicher-Controller-ASIC für eine LESE-Anfrage die Adresse der Anfrage, führt einen Speicherzugriff durch und erhält die Daten an der verlangten Adresse. Die Speicherausgabe-ASIC in herkömmlichen Systemen funktioniert, um die Daten an den Anforderer rückzugeben. Im Falle der LESE-Anfrage oben werden beispielsweise die an den Anforderer zurückzugebenden Daten für die anschließende Rückgabe an den Anforderer an die Speicherausgabe-ASIC gesendet.
  • Es gibt mehrere Probleme in Zusammenhang mit dem herkömmlichen Aufbau. Als erstes muss für jede Funktion eine eigene ASIC entworfen werden: Speichereingabe, Speicherausgabe und Speichersteuerung. Dies erhöht die Systementwicklung- und Herstellungskosten. Überdies ist die Zusammenschaltbarkeit zwischen den Funktionen unflexibel. Das bedeutet, dass die Konfiguration der ASIC nicht verändert werden kann, wenn sich die Systemerfordernisse ändern. Aufgrund der unflexiblen Zusammenschaltbarkeit sind Aufbauten, die herkömmliche ASICs verwenden, nicht skalierbar. D. h., es ist schwierig, die Fähigkeit des System zu erweitern, ohne neue Leiterplatten hinzuzufügen. Das Hinzufügen von neuen Leiterplatten erhöht die Systemkosten in bedeutsamen Maße.
  • Das US-Patent 5.255.239, das an Messers Talborn und Metzzer erteilt wurde, zeigt und beschreibt einen monolithischen Chip einer integrierten Schaltung (IC), der bidirektional ist und sowohl in einem transparenten Bypass-Modus als auch als eine Mehrzahl an Nicht-Bypass-Modi konfiguriert sein kann. Der IC-Chip benutzt eine einzige FIFO-Speichermatrix zum Halten der FIFO-Daten, egal in welcher Richtung die Daten durch die FIFO-Vorrichtung überführt werden oder welcher Modus vorherrscht. Externe Auswahlmittel werden benutzt, um die Richtung der Datenüberführung und den Modus auszuwählen.
  • Die PCT Veröffentlichungsnr. WO 86/03608 betrifft einen Speicher-Hilfs-Controller, der in der Lage ist, die von einem Speicher ausgegebenen Lese- und Schreibanfragen auszuführen. Das Hilfs-Controller für einen Computer umfasst eine Warteschlange, um die Lese- und Schreibanfragen in der empfangenen Reihenfolge zu speichern, und ein Ausführungsgerät zum Ausführen der in der Warteschlange gehaltenen Anfrage. Wenn die Warteschlange leer ist, empfängt das Ausführungsgerät die nächste ankommende Anfrage, die effektiv die Warteschlange umgeht.
  • Im oben erörterten Stand der Technik war immer noch irgendeine Speicher-Controllerform mit dem FIFO-Puffer oder dem Speicher-Hilfs-Controller erforderlich, in der die Grundfunktion-Ebene unterschiedliche Hardware- oder Software-Bedingungen benötigte. Im jüngsten Stand der Technik wurde für jede der Funktionsebenen der Speichereingabe, Speicherausgabe und Speichersteuerung ein separater ASIC-Chip entwickelt und das System auf einer Leiterplatte oder einem Substrat integriert. Der Versuch des jüngsten Standes der Technik hat, wenn einmal integriert, keine Flexibilität zwischen den Funktionen, oder sollte für die Skalierung einen größeren oder anderen Speicher-Controller benötigt werden.
  • Die Aufgabe der vorliegenden Erfindung ist es, einen ASIC-Chip zu entwickeln, der virtuell den Bedarf nach separateten und anderen logischen Strukturen erübrigt und das Mittel für die Flexibilität und Skalierbarkeit bereitstellt. Diese Aufgabe wird durch ein konfigurierbares Multimode-Controller wie in Anspruch 1 definiert und dem entsprechenden Verfahrensanspruch 11 erzielt.
  • Was demnach erwünscht ist, ist ein ASIC-Entwurf, der das Erfordernis für separate ASIC-Entwürfe oder eine separate Funktion überflüssig macht. Zusätzlich sollte die Entwurf-Methodik eine flexible Zusammenschaltbarkeit der Funktionen und eine wachsenden Skalierbarkeit bereitstellen, wenn die Systemerfordernisse wachsen.
  • Zusammenfassung der Erfindung
  • Die Erfindung wird in den Ansprüchen 1 und 11 ausgeführt.
  • Die vorliegende Erfindung senkt den Bedarf an des Entwurfs separater ASICs, die besondere Funktionen haben, indem sie die erforderlichen Funktionen auf einer einzigen ASIC vereinigt. Das bedeutet, dass die vorliegende Erfindung für ein Speicher-Untersystem eine einzige ASIC bereitstellt, die über die Speichereingabe-, Speicherausgabe- und Speicher-Controller-Funktion verfügt. Als Ergebnis ist nur ein ASIC-Entwurf erforderlich. Außerdem stellt der ASIC-Entwurf der vorliegenden Erfindung gegenüber von herkömmlichen Speicher-Leiterplatten-Entwürfen eine erhöhte Flexibilität bereit, indem sie die vollständige Zusammenschaltbarkeit zwischen den verschiedenen Funktionen bereitstellt. D. h., dass in irgendeinem einzelnen ASIC irgendeine Speichereingabe an irgendein Speicher-Controller oder irgendeine Speicherausgabe gelenkt werden kann. Der ASIC-Entwurf der vorliegenden Erfindung erreicht sogar eine größere Flexibilität, indem erlaubt wird, dass jede Funktionsebene – Speichereingabe, Speicherausgabe oder Speicher-Controller, umgangen wird. Auf diese Weise kann eine gemäß den Lehren der vorliegenden Erfindung aufgebaute ASIC nur als Eingabe-ASIC, Ausgabe-ASIC oder Controller-ASIC funktionieren.
  • Die Skalierbarkeit wird durch die vorliegende Erfindung bereitgestellt, indem mehrere ASICs, die gemäß der bevorzugten Ausführungsform aufgebaut sind, auf einer einzigen Leiterplatte verbunden werden. Durch die Vereinigung der Ebenen der ASICs kann ein Benutzer ein System erzeugen, das mehrere Eingaben, Ausgaben und Controller-ASICs hat. Die Vielfalt kann zunehmen, wenn die Systemerfordernisse wachsen, und zwar häufig ohne dass neue Speicher-Controller-Leiterplatten hinzugefügt werden müssen.
  • Kurze Beschreibung der Figuren
  • Die vorliegende Erfindung wird mit Bezug auf die begleitenden Zeichnungen beschrieben, in denen:
  • 1 eine ASIC 100 ist, die eine Architektur hat, die gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung aufgebaut ist.
  • 2 eine ASIC 100 ist, die im Eingabe-Controller-Modus zusammengestellt ist.
  • 3 eine ASIC 100 ist, die im Speicher-Controller-Modus zusammengestellt ist.
  • 4 eine ASIC 100 ist, die im Ausgabe-Controller-Modus zusammengestellt ist.
  • 5 eine ASIC 100 ist, die konfiguriert ist, um die Eingabe-Controller-, Ausgabe-Controller- und Speicher-Controller-Funktion durchzuführen.
  • 6 eine Speicherleiterplatte 602 ist, die über vollständig zusammengeschaltete Eingabespeicher- und Ausgabe-Controller-Abschnitte verfügt, die ASICs 100 verwenden.
  • 7 ein weiteres Beispiel für eine Speicherleiterplattenkonfiguration ist.
  • Detaillierte Beschreibung der bevorzugten Ausführungsformen
  • Die vorliegende Erfindung betrifft einen flexiblen ASIC- Entwurf für ein Speicher-Controller, der auf bedeutsame Weise die Entwicklung- und Herstellungskosten senkt. Zusätzlich stellt der ASIC-Entwurf eine Skalierbarkeit bereit, die sich wechselnden Systemerfordernissen anpasst. Aufgrund der modularen Bauweise der ASIC kann die vorliegende Erfindung in irgendeiner ASIC, die mehrere Funktionen hat, praktiziert werden, worin es wünschenswert ist, die Zusammenschaltbarkeit zwischen den Funktionsmodalitäten bereitzustellen. Die bevorzugte Ausführungsform wird jedoch mit Bezug auf eine ASIC beschrieben, die für die Speichersteuerung einschließlich der Eingabe einer Speicher-Anforderung (z. B. LESE oder SCHREIBE) von einem Anforderer, der Verarbeitung der Speicher-Anforderung und der Ausgabe der Daten zurück an den Anforderer aufgebaut ist.
  • Eine Speicher-Controller-ASIC 100, die eine Architektur hat, die gemäß der bevorzugten Ausführungsform aufgebaut ist, wird in 1 dargestellt. Die ASIC 100 hat drei Funktionsabschnitte oder -komponenten: einen Eingabe-Controller-Abschnitt 103, einen dynamischen Direktzugriffspeicher-(DRAM)-Controller-Abschnitt 105 und einen Ausgabe-Controller-Abschnitt 107. Der Eingabe-Controller-Abschnitt 103 hat eine Gruppe an Eingabe-Zwischenspeicher-Registern 102 und eine Eingabewarteschlange 110 und eine Gruppe an 2:1 Ausgabe-Multiplexern 112. Jeder Ausgabe-Multiplexer 112 wird durch ein einziges Steuer- oder Auswahl-Flip-Flop 113 gesteuert. Der DRAM-Controller-Abschnitt 105 hat einen 4:1 Eingabe-Multiplexer 114, ein Eingabe-Zwischenspeicher-Register 116 und eine Verarbeitungslogik 118. Der 4:1 Eingabe-Multiplexer 114 wird durch ein Register 115 gesteuert. Der Ausgabe-Controller-Abschnitt 107 hat eine Gruppe von 2:1 Eingabe-Multiplexern 120, eine Warteschlange 122, eine Gruppe von 3:1 Ausgabe-Multiplexern 124 und eine Gruppe an Ausgabe-Zwischenspeicher-Registern 126. Jeder Eingabe-Multiplexer 120 wird durch ein einziges Flip-Flop 121 gesteuert. Jeder Ausgabe-Multiplexer 124 wird durch ein einziges Register 125 gesteuert.
  • Wie unten beschrieben, stellt diese grundlegende Architektur die Zusammenschaltbarkeit und Flexibilität der vorliegenden Erfindung bereit. Die ASIC 100 kann konfiguriert sein, um abhängig von der Konfiguration der Multiplexer in einer Reihe an Modi zu arbeiten. Die Konfigurierung der Multiplexer, damit der ASIC 100 erlaubt wird, in einem dieser Modi zu arbeiten, wird als Moding bezeichnet.
  • Der Eingabe-Controller-Abschnitt 103 akzeptiert eine Anfrage von einem Anforderer auf den Leitungen 101. Der Anforderer kann irgendein Prozess sein, der auf einem Prozessor abläuft: z. B. eine Zentralverarbeitungseinheit (CPU) (nicht gezeigt), an der die vorliegende Erfindung über die Leitungen 101 hängt. Solchermaßen wird z. B. die Anfrage – eine Speicher-LESE- oder -SCHREIBE-Anfrage – an die Speicher-Controller-ASIC 100 gesendet. Jede Leitung 101 kann separat von den anderen Eingabeleitungen 101 eine einzelne Anfrage empfangen. In der bevorzugten Ausführungsform gibt es vier Eingabeleitungen 101. Solchermaßen kann die ASIC 100 der bevorzugten Ausführungsform bis zu vier unabhängige Eingabeanfragen annehmen.
  • Um die Gewährleistung der Datenintegrität bereitzustellen, stellt die bevorzugte Ausführungsform eine Gruppe von Eingabe-Zwischenspeicher-Registern 102 bereit. Jedes Eingabe-Zwischenspeicher-Register 102 entspricht einer einzigen der Eingabeleitungen 101. Solchermaßen wird eine Anfrage von einem Anforderer vor der anschließenden Verarbeitung durch die Speicher-Controller-ASIC 100 in einem der Eingabe-Zwischenspeicher-Register 102 zwischengespeichert. Die Eingaberegister 102 werden mit der Eingabewarteschlange 110 und einem 2:1 Multiplexer 112 verbunden.
  • In der bevorzugten Ausführungsform ist die Eingabewarteschlange eine Sechszehn-stufige Warteschlange, die über einen Vier-Wege-Entscheidungsalgorithmus verfügt. Das bedeutet, dass die Warteschlange bis zu 16 Werte für jede Eingabeanfrageleitung 101 speichern kann. Es wird dem Fachmann auf dem Gebiet ersichtlich sein, dass jede Art von Warteschlangen-Einreihung akzeptiert werden kann. Solchermaßen könnte die Warteschlange tiefer oder nicht so tief sein. Außerdem können unabhängige Warteschlangen verwendet werden. Solchermaßen könnten in einer anderen bevorzugten Ausführungsform vier unabhängige Warteschlangen verwendet werden. Ausgaben von der Eingabewarteschlange 110 werden mit einer Gruppe von 2:1 Ausgabe-Multiplexern 112 verbunden.
  • Die Ausgabe-Multiplexer 112 haben zwei Eingaben. Eine der Eingaben ist, wie bereits beschrieben, eine Ausgabe von der Eingabewarteschlange 110. Die andere Eingabe ist von einem der Eingabe-Zwischenspeicher-Register 102. Jedes Eingabe-Zwischenspeicher-Register 102 wird mit einem einzigen Ausgabe-Multiplexer aus der Gruppe von Ausgabe-Multiplexern 112 verbunden. Diese ASIC-Architektur stellt ein Mittel zum Umgehen der Eingabewarteschlange 110 bereit. Das Umgehen der Eingabewarteschlange 110 ermöglicht der ASIC 100, im wesentlichen den Eingabe-Controller-Abschnitt 103 zu umgehen. Durch das Umgehen des Eingabe-Controller-Abschnitts 103 kann die ASIC 100 entweder als DRAM-Controller (Ausgabefunktion wie unten beschrieben ebenfalls umgangen) oder ein Ausgabe-Controller (DRAM-Controller-Funktion wie unten beschrieben ebenfalls umgangen) arbeiten. Dieses Merkmal der vorliegenden Erfindung sorgt gegenüber herkömmlichen Systemen für eine erhöhte Flexibilität und Skalierbarkeit.
  • Die Ausgabe eines jeden Multiplexers 112 wird durch ein Auswahlsignal gesteuert. In der bevorzugten Ausführungsform ist das Auswahlsignal der Zustand eines Flip-Flops 113. Es gibt ein einziges Flip-Flop 113 für jeden Multiplexer 112. Wie gut bekannt ist, ist ein Flip-Flop eine bistabile Vorrichtung, die einen Zustand speichert, bis befohlen wird, den Zustand zu ändern. Ein Kipp-Flip-Flop ändert z. B. den Zustand als Reaktion auf das Ansprechen seiner Kipp-Eingabe. Jede Vorrichtung, die einen Zustand speichern kann, kann verwendet werden, und zwar einschließlich der Flip-Flops. Überdies können Vorrichtungen wie beispielsweise ROMs, PROMs, EPROMs, RAMs und andere Vorrichtungen, die mehrere Zustände speichern können, verwendet werden, um die Zustände aller Flip-Flops 113 sowie der unten beschriebenen anderen Steuer-Flip-Flops zu speichern. Wie in 1 gezeigt, umgeht ein Zustand der Flip-Flops 113 die Eingabewarteschlange 110. Der andere Zustand des Flip-Flops 113 verwendet die Ausgabe der Eingabewarteschlange 110. Da die Flip-Flops unabhängig gesteuert werden können, sind die Multiplexer nicht gezwungen, gleich zu wirken. Solchermaßen kann ein Ausgabe-Multiplexer 112 die Eingabewarteschlange 110 umgehen, während ein anderer Ausgabe-Multiplexer 112 die Ausgabe der Eingabewarte schlange 110 verwendet.
  • Die Ausgabe des Eingabe-Controller-Abschnitts 103 (die Ausgabe eines jeden der Ausgabe-Multiplexer 112) stellt die Eingabe an den DRAM-Controller-Abschnitt 105 bereit. In der bevorzugten Ausführungsform wird für jede ASIC 100 nur eine DRAM-Matrix 119 (über Bus 117) mit dem DRAM-Controller-Abschnitt 105 verbunden. Eine der mehreren Eingaben von den mehreren Ausgabe-Multiplexern 113 wird vom Eingabe-Multiplexer 114 ausgewählt. In der bevorzugten Ausführungsform ist der Eingabe-Multiplexer 114 ein 4:1 Multiplexer. Die Auswahl wird auf gut bekannte Weise gemäß einem von einem Steuerregister 115 erzeugten Steuersignal durchgeführt. Der Zustand des Steuerregisters 115 bestimmt, welche der vier Eingaben an den DRAM-Controller-Abschnitt 105 weitergereicht wird. Die Ausgabe des Eingabe-Multiplexers 114 wird in einem Zwischenspeicher-Register 116 zwischengespeichert.
  • Die Verarbeitungslogik 118 akzeptiert die Eingabe vom Zwischenspeicher-Register 116. Die Verarbeitungslogik 118 in der bevorzugten Ausführungsform ist ein Speicher-Controller. Der Speicher-Controller steuert die Zugriffe auf den DRAM 119. Der DRAM 119 wird über den Bus 117 mit der ASIC 100 verbunden. Der Bus 117 wird verwendet, um zwischen der ASIC 100 und dem DRAM 119 Daten zu übergeben und zu steuern. Die Verarbeitungslogik führt den gewünschten Speicherzugriff, z. B. LESE oder SCHREIBE, durch. Die Verarbeitungslogik 118 nimmt alle LESE-Daten und/oder Zustandsdaten an, die von der LESE- oder SCHREIBE-Anfrage erzeugt werden. Die Verarbeitungslogik 118 kann die akzeptierten Daten über den Ausgabe-Controller-Abschnitt 107 an den Anforderer überführen.
  • Der Ausgabe-Controller-Abschnitt 107 nimmt von der Verarbeitungslogik 118 entweder Daten oder Eingabedaten an, die alle zusammen den DRAM-Controller-Abschnitt 105 umgehen. Welche Daten verwendet werden sollen, wird durch die Gruppe von Eingabe-Multiplexern 120 bestimmt. Die Eingabe-Multiplexer werden durch Flip-Flops 121 gesteuert. Es gibt ein individuell konfigurierbares Flip-Flop 121 für jeden der Eingabe-Multiplexer 120. Ein Zustand des Flip-Flops wählt die Daten vom DRAM-Controller 105. Der andere Zustand des Flip-Flops wählt Daten aus, die das DRAM-Controller 105 umgehen, d. h. Eingabedaten von den Eingabe-Controller-Ausgabe-Multiplexern 112. Solchermaßen können die Daten sowohl den Eingabe-Controller-Abschnitt 103 als auch den DRAM-Controller-Abschnitt 105 umgehen.
  • Der Ausgabe-Controller-Abschnitt 107 hat eine Ausgabewarteschlange 122. In der bevorzugten Ausführungsform ist die Ausgabewarteschlange 122 eine Sechszehn-stufige Warteschlange, die einen Vier-Wege-Entscheidungsalgorithmus hat. Das bedeutet, dass die Warteschlange bis zu 16 Werte für jede Eingabeanfrageleitung 101 speichern kann. Es wäre den Fachleuten auf dem Gebiet ersichtlich, dass jede Warteschlange-Einreihung akzeptierbar wäre. Solchermaßen könnte die Warteschlange tiefer oder nicht so tief sein. Außerdem können unabhängige Warteschlangen verwendet werden. Solchermaßen könnten in einer anderen bevorzugten Ausführungsform vier unabhängige Warteschlangen verwendet werden. Ausgaben von der Ausgabewarteschlange 122 werden mit einer Gruppe von 3:1 Ausgabe-Multiplexern 124 verbunden.
  • Die Ausgabe-Multiplexer 124 wählen zwischen der Ausgabe der Ausgabewarteschlange 122, einem Umgehungsweg, der nur den Ausgabe-Controller-Abschnitt 107 umgeht, oder einem Umgehungsweg, der sowohl den DRAM-Controller-Abschnitt 105 als auch den Ausgabe-Controller-Abschnitt 107 umgeht. Die Ausgabe der Multiplexer 124 werden in Ausgabe-Zwischenspeicher-Registern 126 zwischengespeichert. Die Ausgaben der ASIC 100 werden an den Leitungen 127 von den Ausgabe-Zwischenspeicher-Registern 126 erhalten.
  • Gemäß der bevorzugten Ausführungsform kann die ASIC 100 bis zu vier Anfragen von vier unabhängigen Anforderern annehmen. Zusätzlich kann die ASIC 100 Daten an bis zu vier unterschiedliche Anforderer ausgeben.
  • Aus der obigen Beschreibung wird ersichtlich sein, dass die von der Architektur der ASIC 100 gebotene Flexibilität durch die Multiplexer und ihre entsprechenden Controller bereitgestellt wird. Durch das passende Konfigurieren der Multiplexer-Steuerungen kann die ASIC 100 als Eingabe-Controller, DRAM-Controller, Ausgabe-Controller oder irgendeine Kombination (z. B. alle drei Funktionen) funktionieren. Diese flexible Funktion wird mit Bezug auf die 24 beschrieben.
  • 2 veranschaulicht die ASIC 100 in ihrem Eingabe-Controller-Modus. Das bedeutet, dass die ASIC 100 sowohl den DRAM-Controller-Abschnitt 105 als auch den Ausgabe-Controller-Abschnitt 107 umgeht. Um dies in der bevorzugten Ausführungsform zu erreichen, ist das Flip-Flop 113 aufgebaut, um den Ausgabe-Multiplexer 112 so zu steuern, um die Daten von der Eingabewarteschlange 110 einzugeben. Das Controller-Register 125 vom Ausgabe-Multiplexer 124 ist aufgebaut, um die Eingabe des Multiplexers 124 so zu steuern, um die Daten von der Ausgabe des Ausgabe-Multiplexers 112 einzugeben. Die Ausgabe des Ausgabe-Multiplexers 124 wird an das Zwischenspeicher-Register 126 eingegeben. Das Zwischenspeicher-Register 126 gibt die Daten auf der Leitung 127 aus. Die ASIC 100 in diesem Eingabe-Controller-Aufbau führt Daten vom Eingabe-Controller-Abschnitt 103 auf der Leitung 127 durch den Ausgabe-Multiplexer 124 und das Zwischenspeicher-Register 126 direkt an die Ausgabe der ASIC 100.
  • Der Datenweg wird solchermaßen der Weg, der durch die halbfette Linie 202 gekennzeichnet ist, wenn sich die ASIC 100 in der Eingabe-Controller-Konfiguration befindet. Man beachte, dass die halbfette Linie 202 nur beispielhaft ist. Das bedeutet, dass die Daten von irgendeinem der Eingabe-Zwischenspeicher-Register 102 durch einen Weg, der der halbfetten Linie 202 ähnelt, übertragen werden können. Auf diese Weise kann die ASIC 100 die Daten von irgendeiner Eingabeleitung 101 um den Speicher-Controller-Abschnitt 105 und den Ausgabe-Controller-Abschnitt 107 herum umleiten, so dass die ASIC 100 als Eingabe-Controller funktioniert.
  • 3 veranschaulicht die ASIC 100 in ihrem Speicher-Controller-Modus. Das bedeutet, dass die ASIC 100 sowohl das Eingabe-Controller 103 als auch das Ausgabe-Controller 107 umgeht. Um dies in der bevorzugten Ausführungsform zu erfüllen, ist das Flip-Flop 113 aufgebaut, um den Ausgabe-Multiplexer 112 so zu steuern, um die Daten vom Eingabe-Zwischenspeicher-Register 102 einzugeben. Das Controller-Register 125 des Ausgabe-Multiplexers 124 ist aufgebaut, um die Eingabe des Ausgabe-Multiplexers 124 so zu steuern, um die Daten von der Verarbeitungslogik 118 einzugeben. Die Ausgabe des Ausgabe-Multiplexers 124 wird an das Zwischenspeicher-Register 126 eingegeben. Das Zwischenspeicher-Register 126 gibt Daten auf der Leitung 127 aus. Die ASIC 100 in dieser Speicher-Controller-Konfiguration führt die Daten direkt an die Verarbeitungslogik 118. Alle Daten, die aus dem Speicherzugriff hervorgehen, werden auf der Leitung 127 durch das Ausgabe-Zwischenspeicher-Register 126 geführt. In der Speicher-Controller-Konfiguration führt die ASIC 100 alle Speicherzugriffe durch, die von der Eingabeanfrage durch den Betrieb der Verarbeitungslogik 118 benötigt werden. Die Zugriffe, z. B. LESE oder SCHREIBE, werden über den Bus 117 an den Speicher 119 durchgeführt. In der bevorzugten Ausführungsform ist der Speicher 119 ein DRAM.
  • Der Weg der Daten wird solchermaßen der durch die halbfette Linie 302 gekennzeichnete Weg, wenn sich die ASIC 100 in der Speicher-Controller-Konfiguration befinden. Man beachte, dass die halbfette Linie 302 nur beispielhaft ist. Das bedeutet, dass die Daten von irgendeiner der Eingabeleitungen 101 über einen ähnlichen Weg durch den DRAM-Controller-Abschnitt 105 und aus den Leitungen 127 (der halbfetten Linie 302) heraus übertragen werden können. Auf diese Weise kann die ASIC 100 Daten von irgendeiner Eingabeleitung 101 um den Eingabe-Controller-Abschnitt 103 und den Ausgabe-Controller-Abschnitt 107 herum umleiten, so dass die ASIC 100 als Speicher-Controller funktioniert.
  • 4 veranschaulicht die ASIC 100 in ihrem Ausgabe-Controller-Modus. D. h., die ASIC 100 ist aufgebaut, um sowohl den Eingabe-Controller-Abschnitt 103 als auch den DRAM-Controller-Abschnitt 105 zu umgehen. Um dies in der bevorzugten Ausführungsform zu erfüllen, ist das Flip-Flop 113 aufgebaut, um den Ausgabe-Multiplexer 112 so zu steuern, dass die Daten vom Zwischenspeicher-Register 102 eingegeben werden. In der Ausgabe-Controller-Konfiguration muss der Speicher-Controller 105 umgangen werden. Um den Speicher-Controller-Abschnitt 105 zu umgehen, ist das Flip-Flop 121 aufgebaut, den Multiplexer 120 zu veranlassen, Daten von der Ausgabe des Multiplexers 112 einzugeben. Die Ausgabe des Multiplexers 120 wird an die Ausgabewarteschlange 122 eingegeben. Das Controller-Register 125 des Ausgabe-Multiplexers 124 ist aufgebaut, um den so Multiplexer 124 zu steuern, dass die Ausgabe der Ausgabewarteschlange 122 eingegeben wird. Die Ausgabe der Ausgabewarteschlange 122 wird an den Multiplexer 124 eingegeben. Die Ausgabe des Ausgabe-Multiplexers 124 wird an das Ausgabe-Zwischenspeicher-Register 126 eingegeben. Das Ausgabe-Zwischenspeicher-Register 126 gibt die Daten auf der Leitung 127 aus. Die ASIC 100 in der Ausgabe-Controller-Konfiguration führt die Daten von der Eingabeleitung 101 an den Ausgabe-Controller-Abschnitt 107, indem die Multiplexer und ihre jeweiligen Steuerungen wie oben beschrieben konfiguriert werden.
  • Der Datenweg wird solchermaßen der durch die halbfette Linie 402 angezeigte Weg, wenn sich die ASIC 100 in der Eingabe-Controllerkonfiguration befindet. Man beachte, dass die halbfette Linie 402 nur beispielhaft ist. Das bedeutet, dass die Daten von jeder der Eingabeleitungen 101 durch einen Weg übertragen werden können, der der halbfetten Linie 402 ähnelt. Auf diese Weise kann die ASIC 100 die Daten von irgendeiner Eingabeleitung 101 um den Eingabe-Controller-Abschnitt 103 und den Speicher-Controller-Abschnitt 105 herum umleiten, so dass die ASIC 100 als Ausgabe-Controller funktioniert.
  • Die ASIC 100 kann auch aufgebaut sein, um alle Funktionen eines Speicher-Controllers durchzuführen, und zwar einschließlich der Eingabe der Speicherzugriffanfragen von Anforderern, der Erzeugung der Speicherzugriffanfragen und der Ausgabe der Ergebnisse dieser Speicherzugriffanfragen. Nimmt man auf 5 Bezug, wird eine ASIC 100 beschrieben, die aufgebaut ist, um die gesamte Funktion des Speicher-Controllers durchzuführen. Eine Speicheranfrage von einem Anforderer wird über die Leitung 101 an das Eingabe-Zwischenspeicher-Register 102 eingegeben. Das Multiplexer-Auswahl-Steuer-Flip-Flop 113 ist aufgebaut, um den Multiplexer 112 so zu steuern, Daten von der Eingabewarteschlange 110 einzugegeben, wodurch der Eingabe-Controller-Abschnitt 103 in den Datenweg gesetzt wird. Das Eingabe-Multiplexer-Auswahl-Steuer-Flip-Flop 121 steuert den Multiplexer 120, um Daten aus der Verarbeitungslogik 118 einzugeben. Als Ergebnis befindet sich der DRAM-Controller-Abschnitt 105 im Datenweg. Im besonderen Beispiel in 5 steuert das Auswahlsteuerregister 114 den Multiplexer 114, die Datenausgabe vom Multiplexer 112 auszuwählen. Die Anfrage wird im DRAM-Zwischenspeicher-Register 116 gespeichert. Nachdem die Anfrage von der Verarbeitungslogik 118 verarbeitet wird, wird irgendein Ergebnis der Verarbeitung an den Multiplexer 120 ausgegeben. Das Steuer-Flip-Flop 121 ist aufgebaut, um den Multiplexer 120 so zu steuern, die Datenausgabe von der Verarbeitungslogik 118 einzugeben. Die Daten werden danach in der Ausgabewarteschlange 122 gespeichert. Das Auswahlregister 125 ist aufgebaut, um den Ausgabe-Multiplexer 125 so zu steuern, die Daten von der Ausgabewarteschlange 122 einzugeben, wodurch das Ausgabe-Controller 107 in den Datenweg gesetzt wird. Die Daten werden vom Ausgabe-Multiplexer 124 an das Ausgabe-Zwischenspeicher-Register 126 ausgegeben. Die Daten werden von der ASIC 100 über die Leitung 127 ausgegeben.
  • Der Datenweg wird solchermaßen der durch die halbfette Linie 502 angezeigte Weg, wenn sich die ASIC 100 in der Gesamtfunktion-Speicher-Controller-Konfiguration befindet. Man beachte, dass die halbfette Linie 502 nur beispielhaft ist. Das bedeutet, dass die Daten von irgendeiner der Eingabeleitungen 101 durch einen Weg, der der halbfetten Linie 502 ähnelt, übertragen werden können. Auf diese Weise kann die ASIC 100 alle Funktionen eines Speicher-Controllers (Eingabe-Controller, Speicher-Controller und Ausgabe-Controller) auf einem einzigen Chip durchführen.
  • Der Aufbau der Multiplexer-Steuerungs-Flip-Flops und der Register kann auf mehrfache Weise durchgeführt werden. Die Flip-Flops und Register können z. B. gemäß spezifischer Benutzererfordernisse festverdrahtet sein. Eine erhöhte Flexibilität geht jedoch aus der Verwendung von programmierbaren Festspeichern (PROMs) hervor, die die Konfiguration für jedes der steuernden Flip-Flops und Register speichern. Wie oben beschrieben, gibt es außerdem keinen Bedarf dafür, dass sich die Speicherzustände für die Flip-Flops und Register in unabhängigen Speicherstellen befinden müssen. Solchermaßen könnte ein einzelnes Speicherwort die Konfigurationszustände für eine Mehrzahl an steuernden Flip-Flops und Registern speichern. Sogar eine größere Flexibilität wird erreicht, indem die Softwaresteuerung der Konfiguration der Zustände der steuernden Flip-Flops und Register bereitgestellt wird. Die Zustände der steuernden Flip-Flops und Register könnten beispielsweise bei Systemstart und/oder mittels der Systemverwaltungsfunktionen initialisiert werden. Wie PROMs kann eine Konfiguration, der eine Software zugrundeliegt, leicht modifiziert werden. Abweichend von PROMs benötigt jedoch eine Softwarelösung nicht, dass das System für die Neuprogrammierung abgeschaltet wird.
  • Eine ASIC, die die hierin offenbarte Architektur hat, stellt eine flexible Skalierbarkeit bereit. Als Ergebnisse können Benutzer dieser ASICs als Reaktion auf höhere Systemanfragen die Systemresourcen leicht ausbauen. Die Skalierbarkeit wird mit Bezug auf 6 erläutert. 6 veranschaulicht eine Speicherplatte 602, die eine Mehrzahl an ASICs 100 umfasst, die gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung aufgebaut sind. Wie die ASIC 100 selbst ist die Speicherplatte 602 in 3 Funktionsabschnitte unterteilt: einen Eingabesteuerabschnitt 604, einen Speichersteuerabschnitt 606 und einen Ausgabesteuerabschnitt 608.
  • Der Eingabesteuerabschnitt 604 umfasst eine oder mehrere ASICs 100. Die eine oder mehreren ASICs im Eingabesteuerabschnitt 604 sind, wie oben mit Bezug auf 2 beschrieben, als Eingabe-Controller aufgebaut. Der Speichersteuerabschnitt 606 umfasst eine oder mehrere ASICs 100. Die eine oder mehreren ASICs 100 im Speichersteuerabschnitt 606 sind, wie oben mit Bezug auf 3 beschrieben, als Speicher-Controller aufgebaut. Der Ausgabesteuerabschnitt 608 umfasst eine oder mehrere ASICs 100. Die eine oder mehreren ASICs im Ausgabesteuerabschnitt 608 sind, wie oben mit Bezug auf 4 beschrieben, als Ausgabe-Controller aufgebaut.
  • In der bevorzugten Ausführungsform kann eine Speicherplatte wie beispielsweise die Speicherplatte 602 bis zu zwölf ASICs 100, vier im Eingabesteuerabschnitt 604, vier im Speichersteuerabschnitt 606 und vier im Ausgabesteuerabschnitt 608, haben. Es wird den Fachleuten auf dem Gebiet ersichtlich sein, dass, falls erwünscht, mehrere ASICs 100 hinzugefügt werden könnten, vorausgesetzt dass für die zusätzlichen ASICs 100 genug Platz auf der Platte besteht und die Platte mit genügend Strom versorgt wurde, um die zusätzlichen ASICs 100 zu speisen.
  • Eine wie in 6 aufgebaute Platte kann bis zu 16 Anfragen von eigenen und unabhängigen Anforderern 610 eingeben. Die bis zu 16 Anfragen können an irgendeine der Speicher-Controller-ASICs 100 im Speichersteuerabschnitt 606 geleitet werden. Dies rührt aus der vollen Zusammenschaltbarkeit zwischen den Ausgaben der Eingabe-Controller-ASICs 100 im Eingabesteuerabschnitt 604 und den Eingaben der Speicher-Controller-ASICs 100 im Speichersteuerabschnitt 606 her. Die Speicher-Controller-ASICs 100 im Speichersteuerabschnitt 606 führen die Speicherzugriffe auf den Speicher 119 durch, die von den bis zu 16 Anfragen benötigt werden.
  • Die Daten, die aus den Speicherzugriffen hervorgehen, die von den Speicher-Controller-ASICs 100 im Speichersteuerabschnitt 606 durchgeführt werden, werden mittels der Ausgabe-Controller-ASICs 100 im Ausgabesteuerabschnitt 608 ausgegeben. Da die Ausgaben der Speicher-Controller-ASICs 100 im Speichersteuerabschnitt 606 vollständig mit den Eingaben der Ausgabe-ASICs 100 im Ausgabesteuerabschnitt 608 verbunden sind, kann irgendeine Speicher-Controller-ASIC 100 im Speichersteuerabschnitt 606 Daten an irgendeine Ausgabe-ASIC 100 im Ausgabesteuerabschnitt 608 und entsprechend an irgendeinen Anforderer 612 ausgeben, der an einer Ausgabe-ASIC 100 im Ausgabesteuerabschnitt 608 hängt.
  • Das in 7 gezeigte Beispiel veranschaulicht einen Aufbau, der, wie im in 6 gezeigten Beispiel, am entgegengesetzten Ende des Skalierbarkeit-Spektrums liegt. Wie in 6 zu sehen, werden für jeden Modus unabhängige ASICs 100 verwendet. D. h., 4 ASICs 100 werden im Eingabesteuerabschnitt 604 verwendet, 4 ASICs werden im Speichersteuerabschnitt 606 verwendet und 4 ASICs werden im Ausgabesteuerabschnitt 608 verwendet. Man beachte, dass dies lediglich ein Beispiel für einen Aufbau ist, das lediglich darstellenden Zwecken dient. Viele andere Aufbauten sind möglich. Es könnten z. B. eine kleinere Anzahl an ASICs verwendet werden, um die in 6 gezeigten selben Funktionen zu unterstützen.
  • Nimmt man entsprechend zurück auf 6 Bezug, könnte anstatt der Verwendung einer ASIC für jeden Modus (Eingabe, Speicher-Controller und Ausgabe) eine einzelne ASIC verwendet werden. Das bedeutet, dass jede der in 6 gezeigten senkrechten Zeile, die 3 ASICs 100 umfassen, mit einer einzigen ASIC ersetzt werden könnte, die, wie oben mit Bezug auf 5 erörtert, für alle drei Modi programmiert ist. Solchermaßen könnte anstelle der in 6 gezeigten 12 eine Gesamtzahl von 4 verwendet werden, um dieselbe Funktion, wie in 6 geschildert, zu unterstützen.
  • Weiterhin sollte es ersichtlich sein, dass auch eine andere Anzahl von ASICs im Bereich von mindestens 4 und höchstens 12 verwendet werden könnte, um die im Beispiel der 6 gezeigte selbe Funktion zu unterstützen. Es sollte angemerkt werden, dass die im vorherigen Beispiel verwendeten Zahlen auf einer Annahme basieren, dass jede ASIC 100 aufgebaut ist, um höchstens 4 Anforderer abzuwickeln, wie jeweils durch die Eingabe- und Ausgabeabschnitte 103 und 107 gezeigt wird. Wie geschildert, ist dies ein Entwicklungsparameter der bevorzugten Ausführungsform der vorliegenden Erfindung. Jedoch kann sich die Zahl der Eingaben und Ausgaben 103 und 107 in anderen Ausführungsformen der vorliegenden Erfindung jeweils ändern. So wie sie vorliegt, sollte die in den hierin zitierten Beispielen verwendete Anzahl nicht als den Schutzumfang und die Tragweite der vorliegenden Erfindung einschränkend analysiert werden.
  • Der Aufbau, der im in 7 gezeigten Beispiel geschildert wird, veranschaulicht eine Speicherplatte 702, die mit einer einzigen ASIC 100 besetzt ist, die für alle drei Modi des Betriebs programmiert ist. Das bedeutet, dass die gezeigte einzelne ASIC 100 programmiert ist, um, wie oben mit Bezug auf 5 beschrieben, im Eingabesteuermodus, Speichersteuermodus und Ausgabesteuermodus zu arbeiten.
  • Entsprechend werden die Anforderer 710 über den Eingabesteuerabschnitt 103 mit der ASIC 100 verbunden. Es sollte angemerkt werden, dass jede Eingabe- und Ausgabeleitung 712 und 714 jeweils einen Bus darstellt, der abhängig von einer spezifischen Implementierung der vorliegenden Erfindung willkürlicher Länge sein kann. Die Ausgaben 714 der ASIC 100 werden mit den Anforderern 710 verbunden. Der DRAM 119 wird mit dem Speicher steuerabschnitt 105 der ASIC 100 verbunden.
  • Die vorherigen Beispiele veranschaulichen die skalierbare Natur der Speicherplatte, die über Speicher-Controller verfügt, die gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung aufgebaut sind. Es wird den Fachleuten auf dem Gebiet ersichtlich sein, dass andere Speicherplattenaufbauten entwickelt werden können. Die Erwägungen für die anderen Aufbauten umfassen die Zahl der Eingaben und Ausgaben, den gewünschten Parallelismus, die Eingabe- und Ausgabebandbreiten, die Zahl der DRAMs, die gesteuert werden müssen, und die Größe der Speicherplatten. Zusätzlich können mehrere Speicherplatten wie beispielsweise die in 6 gezeigte Speicherplatte in einem einzigen System fest miteinander verbunden werden. Diese anderen Aufbauten fallen in den Schutzumfang und Geist der vorliegenden Erfindung und ihre skalierbare Natur.
  • Während verschiedene Ausführungsformen der vorliegenden Erfindung vorstehend erläutert wurden, sollte es verständlich sein, dass diese nur exemplarisch dargestellt wurden und als Einschränkungen zu betrachten sind. Solchermaßen sollte die Tragweite und der Schutzumfang der vorliegenden Erfindung nicht durch irgendeine der vorstehend beschriebenen exemplarischen Ausführungsformen beschränkt sondern vielmehr nur in Übereinstimmung mit den nachstehenden Ansprüchen bestimmt werden.

Claims (17)

  1. Ein konfigurierbares Multimode-Controller-System (1) für eine selektive Verbindung und Skalierbarkeit zur Anpassung an unterschiedliche Systemerfordernisse, das folgendes umfasst: einen oder eine Mehrzahl an Chips (100) von anwendungsspezifischen integrierten Schaltungen (ASIC), wobei jeder über eine Mehrzahl an selektiv miteinander verbindbaren Abschnitten verfügt, die folgendes umfassen: einen Speichereingabeabschnitt (103), der eine Mehrzahl an Eingaben und eine Mehrzahl an Ausgaben hat; einen Speicher-Controller-Abschnitt (105), der eine Mehrzahl an Eingaben und eine Mehrzahl an Ausgaben hat; einen Speicheraungabeabschnitt (107), der eine Mehrzahl an Eingaben und eine Mehrzahl an Ausgaben hat; ein erstes selektives Kopplungsmittel (112), um selektiv entweder Speichereingabeabschnitt-Eingaben oder Speichereingabeabschnitt-Ausgaben auszugeben; ein zweites selektives Kopplungsmittel (114), um selektiv die ersten selektiven Kopplungsmittel-Ausgaben mit den Speicher-Controller-Abschnitt-Eingaben zu verbinden oder nicht; ein drittes selektives Kopplungsmittel (120), um selektiv entweder die Speicher-Controller-Abschnitt-Ausgaben oder die ersten selektiven Kopplungsmittel-Ausgaben mit den Speicherausgabeabschnitt-Eingaben zu verbinden oder nicht; ein viertes selektives Kopplungsmittel (124), um selektiv entweder die Speicher-Controller-Abschnitt-Ausgaben, die ersten selektiven Kopplungsmittel-Ausgaben oder die Speicherausgabeabschnitt-Ausgaben auszugeben; und ein Konfigurationsmittel (113, 115, 121, 125) zum Konfigurieren des ersten, zweiten, dritten und vierten selektiven Kopplungsmittels; wodurch ein einzelner ASIC-Chip konfiguriert werden kann, um irgendeinen, zwei oder keinen des Speichereingabeabschnitts (103), des Speicher-Controller-Abschnitts (105) und des Spei cherausgabeabschnitts (107) zu umgehen, um das Controller-System bereitzustellen.
  2. Das Controller-System nach Anspruch 1, worin das erste, zweite, dritte und vierte Kopplungsmittel (112, 114, 120, 124) Multiplexer umfasst, wobei jeder eine Mehrzahl an Eingaben und eine einzige Ausgabe hat.
  3. Das Controller-System nach Anspruch 2, worin die Eingaben an das erste selektive Kopplungsmittel (112) mit einer Eingabewarteschlange (110) im Speichereingabeabschnitt (103) verbunden sind.
  4. Das Controller-System nach Anspruch 2, worin die Eingaben an das zweite selektive Kopplungsmittel (114) mit den ersten Auswahl-Multiplexern (112) verbunden sind.
  5. Das Controller-System nach Anspruch 2, worin die Eingaben an das dritte selektive Kopplungsmittel (120) mit einer Verarbeitungslogik (118) im Speicher-Controller-Abschnitt (105) verbunden sind.
  6. Das Controller-System nach Anspruch 2, worin die Eingaben an das vierte selektive Kopplungsmittel (124) mit einer Ausgabewarteschlange (122) im Speicherausgabeabschnitt (107) verbunden sind.
  7. Das Controller-System nach Anspruch 3, das weiterhin ein Eingabe-Zwischenspeicher-Register-Mittel im Speichereingabeabschnitt (102) einschließt, das Ausgaben hat, die über die Eingabewarteschlange (110) mit den Multiplexern (112) verbunden sind.
  8. Das Controller-System nach Anspruch 6, das weiterhin Ausgabe-Zwischenspeicher-Register (126) einschließt, die mit dem vierten selektiven Kopplungsmittel (124) verbunden sind.
  9. Das Controller-System nach Anspruch 3, worin die Einga bewarteschlange (110) eine Mehrzahl an Warteschlangen, eine für jede Eingabe des Speichereingabeabschnitt (103), umfasst.
  10. Das Controller-System nach Anspruch 6, worin die Ausgabewarteschlange (122) eine Mehrzahl an Warteschlangen, eine für jede Ausgabe des Speicherausgabeabschnitts (107), umfasst.
  11. Ein Verfahren zum Herstellen eines konfigurierbaren Multimode-Controller-Systems für die selektive Verbindung und Skalierbarkeit zur Anpassung an unterschiedliche Systemerfordernisse, das folgende Schritte umfasst: das Bereitstellen eines Chips (100) einer anwendungsspezifischen integrierten Schaltung (ASIC) mit einem herkömmlichen Aufbau, der über einen Speichereingabeabschnitt (103) und einen Speicher-Controller-Abschnitt (105) und einen Speicherausgabeabschnitt (107) verfügt, das Bereitstellen eines jeden des Speichereingabeabschnitts, des Speicher-Controller-Abschnitts und Speicherausgabeabschnitts (103, 105 und 107) mit einer Mehrzahl an Eingaben und einer Mehrzahl an Ausgaben, das Bereitstellen eines ersten Kopplungsmittels (112), um selektiv entweder die Speichereingabeabschnitt-Eingaben oder die Speichereingabeabschnitt-Ausgaben auszugeben; das Bereitstellen eines zweiten Kopplungsmittels (114), um selektiv die ersten selektiven Kopplungsmittel-Ausgaben mit den Speicher-Controller-Abschnitt-Eingaben zu verbinden oder nicht; das Bereitstellen eines dritten selektiven Kopplungsmittels (120), um selektiv entweder die Speicher-Controller-Abschnitt-Ausgaben oder die ersten selektiven Kopplungsmittel-Ausgaben mit den Speicherausgabeabschnitt-Eingaben zu verbinden oder nicht; das Bereitstellen eines vierten selektiven Kopplungsmittels (124), um selektiv entweder die Speicher-Controller-Abschnitt-Ausgaben, die ersten selektiven Kopplungsmittel-Ausgaben oder die Speicherausgabeabschnitt-Ausgaben auszugeben; und das Bereitstellen eines Konfigurationsmittels (113, 115, 121, 125), um das erste, zweite, dritte und vierte selektive Kopplungsmittel zu konfigurieren; wodurch ein Controller-System auf einem ASIC-Chip bereitgestellt wird, in dem irgendeiner des Speichereingabeabschnitts (103), des Speicher-Controller-Abschnitts (105) und des Speicherausgabeabschnitts (107) verbunden oder umgangen wird, und zwar mittels eines Torsteuerungsmittels.
  12. Das Verfahren nach Anspruch 11, worin die Schritte zum Bereitstellen von ersten, zweiten, dritten und vierten selektiven Kopplungsmitteln zu drei Funktionen auf einem einzigen ASIC-Chip führen.
  13. Das Verfahren nach Anspruch 11, worin der Schritt zum Bereitstellen eines ASIC-Chips eines herkömmlichen Aufbaus weiterhin folgendes einschließt: das Bereitstellen einer Mehrzahl an identischen ASIC-Chips eines herkömmlichen Aufbaus; und das selektive Verbinden von mindestens drei der ASIC-Chips, um einen Eingabe-ASIC und einen Ausgabe-ASIC und einen Controller-ASIC bereitzustellen.
  14. Das Verfahren nach Anspruch 13, das weiterhin die selektive Verbindung der Mehrzahl an ASIC-Chips einschließt, um ein Controller-System bereitzustellen, das über eine Mehrzahl an Speichereingaben, eine Mehrzahl an Speicherausgaben und eine Mehrzahl an Speicher-Controllern verfügt und das expandiert werden kann.
  15. Das Verfahren nach Anspruch 11, worin der Schritt zum Bereitstellen des Speichereingabeabschnitts (103) weiterhin das Bereitstellen einer Eingabewarteschlange (110) einschließt, und eine Anfrage zum Einreihen in einen Speicher von einer Mehrzahl an Eingabewarteschlangen (110) an die Eingaben des Speichereingabeabschnitts (103).
  16. Das Verfahren nach Anspruch 11, worin der Schritt zum Bereitstellen des Speicher-Controller-Abschnitts (105) weiterhin das Bereitstellen von Verarbeitungslogik (118) einschließt, und das logische Verbinden einer Speicheranfrageeingabe an die Verarbeitungslogik (118) mit dem dritten selektiven Kopplungsmittel (120), das aus einer Mehrzahl an Multiplexern (120) im Speicherausgabeabschnitt (107) besteht.
  17. Das Verfahren nach Anspruch 11, worin der Schritt zum Bereitstellen des Speicherausgabeabschnitts (107) weiterhin das Bereitstellen einer Ausgabewarteschlange (122) einschließt, und eine Anfrage zum Einreihen der Speicherausgabe von einer Mehrzahl an Ausgabewarteschlangen (122) an die Eingaben des vierten selektiven Kopplungsmittels (124), das aus Multiplexern (124) im Speicherausgabeabschnitt (107) besteht.
DE69828890T 1997-05-16 1998-05-15 Konfigurierbare speichersteuerungsvorrichtung und verfahren hierfür Expired - Lifetime DE69828890T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/857,494 US6006296A (en) 1997-05-16 1997-05-16 Scalable memory controller
US857494 1997-05-16
PCT/US1998/010068 WO1998052126A1 (en) 1997-05-16 1998-05-15 Scalable memory controller

Publications (2)

Publication Number Publication Date
DE69828890D1 DE69828890D1 (de) 2005-03-10
DE69828890T2 true DE69828890T2 (de) 2006-03-30

Family

ID=25326114

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69828890T Expired - Lifetime DE69828890T2 (de) 1997-05-16 1998-05-15 Konfigurierbare speichersteuerungsvorrichtung und verfahren hierfür

Country Status (5)

Country Link
US (1) US6006296A (de)
EP (1) EP1010088B1 (de)
BR (1) BR9808782A (de)
DE (1) DE69828890T2 (de)
WO (1) WO1998052126A1 (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4292713B2 (ja) 1998-05-18 2009-07-08 株式会社日立製作所 ディスクアレイ制御装置
US6137994A (en) * 1998-05-29 2000-10-24 Motorola, Inc. Radio communication system and method for setting an output power of a base site therein
US6553446B1 (en) * 1999-09-29 2003-04-22 Silicon Graphics Inc. Modular input/output controller capable of routing packets over busses operating at different speeds
WO2001033363A2 (de) * 1999-11-02 2001-05-10 Siemens Aktiengesellschaft Bus-system zur simultanen bearbeitung verschiedener speicherzugriffe bei system-on-chip-lösungen
JP2001256003A (ja) 2000-03-10 2001-09-21 Hitachi Ltd ディスクアレイ制御装置、そのディスクアレイ制御ユニットおよびその増設方法
US6745308B2 (en) * 2002-02-19 2004-06-01 Ati Technologies, Inc. Method and system for bypassing memory controller components
JP2005527030A (ja) * 2002-05-24 2005-09-08 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ストール機能を有する疑似マルチポートデータメモリ
ATE553435T1 (de) * 2002-05-24 2012-04-15 Silicon Hive Bv Programmierbare zugriffslatenzzeit in einem pseudo-multiportspeicher
JP2005196331A (ja) 2004-01-05 2005-07-21 Hitachi Ltd ディスクアレイ装置及びディスクアレイ装置の構成変更方法
US8356127B2 (en) * 2004-12-09 2013-01-15 Rambus Inc. Memory interface with workload adaptive encode/decode
US7281093B1 (en) 2004-12-21 2007-10-09 Xilinx, Inc. Memory apparatus for a message processing system and method of providing same
US8122421B2 (en) * 2008-08-14 2012-02-21 Omnivision Technologies, Inc. System, and method, and computer readable medium for designing a scalable clustered storage integrated circuit for multi-media processing
US20140068220A1 (en) * 2012-09-06 2014-03-06 Advanced Micro Devices, Inc. Hardware based memory allocation system with directly connected memory

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4682284A (en) * 1984-12-06 1987-07-21 American Telephone & Telegraph Co., At&T Bell Lab. Queue administration method and apparatus
US4991084A (en) * 1988-02-05 1991-02-05 International Business Machines Corporation N×M round robin order arbitrating switching matrix system
US5255239A (en) * 1991-08-13 1993-10-19 Cypress Semiconductor Corporation Bidirectional first-in-first-out memory device with transparent and user-testable capabilities
DE69327504T2 (de) * 1992-10-19 2000-08-10 Koninklijke Philips Electronics N.V., Eindhoven Datenprozessor mit Operationseinheiten, die gemeinsam Gruppen von Registerspeichern benutzen
JP3010947B2 (ja) * 1992-11-26 2000-02-21 日本電気株式会社 メモリアクセス制御装置
AU3412295A (en) * 1994-09-01 1996-03-22 Gary L. Mcalpine A multi-port memory system including read and write buffer interfaces
US5841775A (en) * 1996-07-16 1998-11-24 Huang; Alan Scalable switching network

Also Published As

Publication number Publication date
EP1010088A1 (de) 2000-06-21
WO1998052126A1 (en) 1998-11-19
EP1010088B1 (de) 2005-02-02
BR9808782A (pt) 2000-08-01
US6006296A (en) 1999-12-21
DE69828890D1 (de) 2005-03-10

Similar Documents

Publication Publication Date Title
DE60118622T2 (de) Benutzer-konfigurierbares on-chip speichersystem
DE69713784T2 (de) Rekonfigurierbares rechnersystem
EP1222739B1 (de) Rekonfigurierbares gate-array
DE60314347T2 (de) Betriebsmittelverwaltungsgerät
DE69724355T2 (de) Erweiterte symmetrische Multiprozessorarchitektur
DE68927626T2 (de) Hierarchisches Mehrfachbus-Computersystem
DE2350225C2 (de)
DE60010674T2 (de) Hochgeschwindigkeits-prozessorsystem, verfahren zu dessen verwendung und aufzeichnungsmedium
DE3588009T2 (de) Vorrichtung und Verfahren zum Rekonfigurieren eines Speichers in einer Datenverarbeitungsanordnung.
DE69632634T2 (de) Arbitrierungseinheit zum Multiprozessorsystembuszugriff mit Wiederholungsfähigkeit
DE69828890T2 (de) Konfigurierbare speichersteuerungsvorrichtung und verfahren hierfür
DE68924313T2 (de) Mehrprozessoranordnungen mit kreuzweise abgefragten Schreib-in-Cachespeichern.
DE69736872T2 (de) Datenverarbeitungssystem
DE3586603T2 (de) Datenprozessor fuer interpretierende und kompilierte sprache.
DE3851554T2 (de) Steuerungsanordnung für gemeinschaftlichen Speicher.
DE602004009324T2 (de) Integrierte datenverarbeitungsschaltung mit mehreren programmierbaren prozessoren
DE10296959T5 (de) System und Verfahren zum Steuern der Buszuteilung während Cache-Speicher-Burstzyklen
EP1361517A2 (de) Datenverarbeitungsverfahren und Vorrichtung hierfür
CH620306A5 (de)
DE102005051478A1 (de) Flashdatenspeichervorrichtung
DE102004045527B4 (de) Konfigurierbare Logikschaltungsanordnung
DE3114921C2 (de) Mikroprogramm-Speicheranordnung
DE69327504T2 (de) Datenprozessor mit Operationseinheiten, die gemeinsam Gruppen von Registerspeichern benutzen
DE69732889T2 (de) Mikrokontroller mit einer geringeren n-bit-datenbus-breite als anzahl i/o-ausgänge
DE69122520T2 (de) Vielfachbus-Systemspeicherarchitektur

Legal Events

Date Code Title Description
8364 No opposition during term of opposition