-
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 2–4 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.