-
GEBIET DER
ERFINDUNG
-
Diese
Erfindung betrifft im Allgemeinen das Gebiet von digitalen Speichersystemen.
-
HINTERGRUND
DER ERFINDUNG
-
Hochleistungs-Datenverarbeitungssysteme erfordern
digitale Speichersysteme, die in der Lage sind, große Mengen
an Daten mit sehr hohen Geschwindigkeiten zu speichern und zu liefern.
Graphiksteuereinheiten, die in Verbindung mit einem Hauptrechner
arbeiten, um raffinierte Bildbearbeitungs- und -wiedergabefunktionen
durchzuführen, um
Daten zur Anzeige auf einem Anzeigebildschirm zu erzeugen, erfordern
beispielsweise Speicher, die in der Lage sind, die Menge an Daten,
die für
solche Funktionen erforderlich ist, mit sehr hohen Datenraten zu
speichern und zu liefern.
-
Dynamische
Direktzugriffsspeicher (DRAMs) werden häufig verwendet, um die Speicheranforderungen
zu erfüllen,
die für
Hochleistungssysteme erforderlich sind. DRAMs sind typischerweise
durch eine größere Speicherdichte
pro Chip im Vergleich zu statischen Direktzugriffsspeichern (SRAMs)
gekennzeichnet. DRAMs sind jedoch typischerweise auch durch langsamere
Zugriffszeiten als SRAMs gekennzeichnet.
-
Eine
Vielfalt von Techniken wurde verwendet, um die Bandbreite von digitalen
Speichersystemen, die DRAMs verwenden, zu erhöhen. Der Speicher und die Datenpfade
zum und vom Speicher können
beispielweise so organisiert werden, dass sie ermöglichen,
dass mehrere Datenworte bei einem einzelnen Zugriff abgerufen werden.
Obwohl ein solche Technik eine erhöhte Bandbreite bereitstellt,
bleibt ein Bedarf für
digitale Speichersysteme, die eine noch größere Datenspeicherung und einen
noch größeren Datendurchsatz
bereitstellen als es derzeit erhältlich
ist.
-
Ferner
offenbart
US 4 899 312 einen
verbesserten DRAM, der eine Vielzahl von Hauptverstärken zum
Verstärken
und Speichern von Signalen, die auf eine Vielzahl von gemeinsamen
Datenleitungen gemäß einem
internen Adressensignal ausgelesen werden, eine Hauptverstärker-Steuerschaltung zum sequentiellen
Ausgeben der Ausgangssignale der Hauptverstärker synchron mit Änderungen
eines Spaltenadressen-Freigabesignals und einen Adressenzähler zum
Durchführen
einer Adressierungsoperation zwischen den sequentiellen Leseoperationen der
mehreren Hauptverstärker
umfasst. Eine Spaltenansteuerschaltung ist vorgesehen, um Spaltenschalter
gemäß dem Adressenzähler umzuschalten, um
zu bewirken, dass Daten durch Erweitern einer Vierbitwort-Betriebsart
kontinuierlich mit einer hohen Geschwindigkeit ausgelesen werden.
-
EP 0 409 449 A2 offenbart
ein verschachteltes Lesesystem zum Verringern der Lesezugriffszeit in
einem sequentiellen Speicher. Das System umfasst einen sequentiellen
Speicherblock, der aus einer Vielzahl von Speicherzellen zum Speichern
von Daten besteht. Die Speicherzellen sind in einer Vielzahl von
ungeraden Spalten und einer Vielzahl von geraden Spalten angeordnet.
Lesemittel sind zum Verschachteln der gespeicherten Daten in den
Speicherzellen in den ungeraden Spalten mit den gespeicherten Daten
in den Speicherzellen in den geraden Spalten vorgesehen. Ein Ausgabepuffer
ist mit den Lesemitteln gekoppelt, um eine Datenausgabe zu erzeugen,
die abwechselnd die gespeicherten Daten in den ungeraden und geraden
Spalten während
abwechselnder Lesezyklen darstellt.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Die
Erfindung ist im Anspruch 1 definiert. Spezielle Ausführungsbeispiele
der Erfindung sind in den abhängigen
Ansprüchen
dargelegt.
-
Gemäß einem
Hauptaspekt stellen die Ausführungsbeispiele
der vorliegenden Erfindung ein Speichersystem bereit, das in der
Lage ist, Daten mit hohen Raten zu liefern. Die Übergabe einer Zeilenadresse
an das Speichersystem führt
dazu, dass eine Zeile von Daten aus parallelen Speicherblöcken im Speichersystem
durch eine Vielzahl von Bitleitungs-Leseverstärkern (BLSA) ausgelesen werden. Die Übergabe
einer Spaltenadresse an das Speichersystem bewirkt die Ansteuerung
einer entsprechenden Spalte von Daten in der angesteuerten Zeile.
Die angesteuerte Spalte von Daten wird durch Kippen des niedrigstwertigen
Bits der Spaltenadresse in zwei Phasen abgerufen. Vorteilhafterweise
sind die Signale im Speichersystem vom Kleinsignal-Differenztyp eines
Signals, das durch die BLSAs erzeugt wird, und werden bis zur Ansteuerung
von jeder der Teilmengen oder Phasen für die Ausgabe nicht durch die
Hauptleseverstärker
(MSA) verstärkt. Dieses
vorteilhafte Merkmal ermöglicht
eine Verringerung der Anzahl von MSAs, die für das Speichersystem erforderlich
sind. Das Ergebnis sind weniger Hardwareelemente, weniger Leiterzüge zum Verbinden
solcher Komponenten und ein niedrigerer Leistungsverbrauch. Ein
weiterer Vorteil besteht darin, dass die Ausgabe der angesteuerten
Spalte in zwei Teilmengen oder Phasen zu einem höheren Datendurchsatz führt, indem
ermöglicht
wird, dass das niedrigstwertige Spaltenadressenbit mit einer Rate umgeschaltet
wird, die ungefähr
zweimal so schnell ist wie die Spaltenadresse. Dieses Merkmal stellt
den Vorteil bereit, dass eine einfache und direktere Übertragung
des einzelnen, niedrigstwertigen Bits der Spaltenadresse für ein Umschalten
mit höherer
Geschwindigkeit ermöglicht
wird. Das Umschalten mit niedrigerer Frequenz, das für die Spaltenadresse
erforderlich ist, erlegt der Übertragung
der Spaltenadressensignale im IC-Chip weniger Einschränkungen auf,
wobei folglich die Entwurfskomplexität verringert wird.
-
Diese
und weitere Merkmale und Vorteile der vorliegenden Erfindung können durch
Betrachten der folgenden ausführlichen
Beschreibung eines bevorzugten Ausführungsbeispiels der Erfindung
besser verstanden werden. Im Verlauf dieser Beschreibung wird häufig auf
die beigefügten
Zeichnungen Bezug genommen.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
1 ist
ein Blockdiagramm hoher Ebene von einem Graphiksteuerchip, der die
Prinzipien der vorliegenden Erfindung verwendet.
-
2 ist
ein Blockdiagramm eines bevorzugten Ausführungsbeispiels des Speichersystems von 1.
-
3 ist
ein Ablaufdiagramm, das den Betrieb eines bevorzugten Ausführungsbeispiels
zeigt.
-
AUSFÜHRLICHE
BESCHREIBUNG
-
In 1 der
Zeichnungen ist eine Graphiksteuereinheit in einer integrierten
Schaltung (IC) 100 implementiert, die eine Steuereinheit 102 und
einen Speicher 104 umfasst. Die Graphiksteuereinheit arbeitet
vorzugsweise in Verbindung mit einem Mikroprozessor (nicht dargestellt),
um Daten und Befehle vom Mikroprozessor zu empfangen, um Daten im Speicher 104 zu
speichern, um die Daten über
die Steuereinheit 102 zu bearbeiten und um die Daten auf
einer visuellen Anzeige (nicht dargestellt) durch die Erzeugung
von geeigneten Steuersignalen anzuzeigen. Ein Beispiel der von der
Steuereinheit durchgeführten
Funktionen ist in einem Datenbuch, veröffentlicht von S3 Incorporated
in Santa Clara, Kalifornien, mit dem Titel ViRGE Integrated 3D Accelerator, veröffentlicht
im August 1996, vorgesehen. Dieses Datenbuch beschreibt viele der
Funktionen, die vom ViRGE-Graphik-Beschleunigungschip durchgeführt werden,
der von S3 Incorporated vertrieben wird.
-
Der
Speicher 104 nimmt vorzugsweise die Form eines dynamischen
Direktzugriffsspeichers (DRAM) an. Bei einem bevorzugten Ausführungsbeispiel
sind die Steuereinheit 102 und der Speicher 104 durch
einen Datenpfad gekoppelt, der 128 Bits breit ist und Übertragungen
zwischen der Steuereinheit und dem Speicher mit 128 Bits pro Taktzyklus
ermöglicht.
Als Reaktion auf Steuersignale, die von der Steuereinheit 102 erzeugt
werden, speichert der Speicher 104 Daten und gibt diese
aus.
-
2 der
Zeichnungen ist ein Blockdiagramm, das weitere Details des Speichers 104 darstellt.
Der Speicher 104 umfasst ein Vielzahl von Speicherblöcken 202, 203, 204, 205, 206, 207, 208 und 209,
die hinsichtlich der Struktur und Speicherkapazität gleich
sind. Die Speicherblöcke 202–209 sind in
zwei Bänke 211 und 212 organisiert,
die als ungerade Bank bzw. als gerade Bank bezeichnet werden können. Die
Speicherblöcke
sind herkömmliche Speicherblöcke vom
DRAM-Typ, die eine Struktur mit einem Transistor und einem Kondensator
pro Zelle verwenden, um eine hohe Dichte zu erzielen. Bei einem
bevorzugten Ausführungsbeispiel
enthält
jeder der Speicherblöcke 202–209 256
Zeilen, die jeweils 1 KBits enthalten. Folglich speichert jede Bank 211, 212 256 × 1k × 4 = 1
MBit Daten für
eine Gesamtspeicherkapazität
zwischen den zwei Bänken
von 2 MBits.
-
Auf
die in den Speicherblöcken
gespeicherten Daten wird durch Decodieren einer Zeilenadresse mit
einem Decodierer 214 zugegriffen. Bei einem bevorzugten
Ausführungsbeispiel
weist die Zeilenadresse 8 Bits auf, so dass sie 256 Zeilen in den
Bänken 211 und 212 entspricht.
Die Zeilenadresse wird als Reaktion auf ein Zeilenadressen-Freigabe-
(RAS) Signal, das von der Steuereinheit 102 erzeugt wird,
in einem Register 213 gespeichert. Der Decodierer 214 steuert
eine von 256 Zeilen in den Speicherblöcken 202–209 an,
damit sie durch zwei Sätze
von Bitleitungs-Leseverstärken
(BLSA) 216 und 218 ausgelesen wird.
-
Die
vom Decodierer 214 decodierte Zeilenadresse wird zu jedem
Block von jeder Bank geliefert, um eine Datenzeile zu erzeugen,
die 8k Bits breit ist. Der BLSA 216 liest und verstärkt die
Daten, die in den Speicherzellen gespeichert sind, die in der ungeraden
Hälfte 211 der
durch den Zeilendecodierer 214 angesteuerten Zeile enthalten
sind. Der BLSA 218 arbeitet ähnlich mit der geraden Hälfte der
in der Bank 212 angesteuerten Zeile.
-
Eine
Spaltenadresse, die von der Steuereinheit 102 empfangen
wird, wird im Register 215 als Reaktion auf ein Spaltenadressen-Freigabe-
(CAS) Signal von der Steuereinheit 102 gespeichert. Die Spaltenadresse
im Register 215 wird durch einen Decodierer 219 decodiert,
um 256 Bits aus den 8k Bits auszuwählen, die im BLSA 216 und 218 gespeichert sind.
Multiplexer 220 und 222 führen eine Zwei-zu-Eins-Multiplexfunktion
durch. Der Multiplexer 220 empfängt 128 Bits vom SA 216 in
64 Paaren von Zwei-zu-Eins-Multiplexern.
Der Multiplexer 222 ist ähnlich organisiert und arbeitet
auf eine ähnliche Weise
mit Bezug auf den SA 218. Die Multiplexer 220 und 222 werden
beide durch ein HI/LO-Signal gesteuert, das von der Steuereinheit 102 erzeugt
wird. Das HI/LO-Signal entspricht dem niedrigstwertigen Bit der
Spaltenadresse. Sobald die BLSAs 216 und 218 die
Daten in jeder der Speicherzellen der angesteuerten Zeile gelesen
und verstärkt
haben, stehen 128 Datenbits, die eine halbe Spalte von Daten darstellen,
für die
Steuereinheit 102 aus dem Speicher 104 zur Verfügung. Wie
aus 2 zu sehen ist, besteht jede 128-Bit-Menge von
Daten, die vom Speicher 104 geliefert wird, aus 64 Datenbits
von der ungeraden Bank 211 und 64 Datenbits von
der geraden Bank 212. Sobald die Steuereinheit 102 die
ersten 128 Datenbits erfasst hat, wird das HI/LO-Signal gekippt,
um seinen Wert von einer binären
0 auf eine binäre
1 oder alternativ von einer binären
1 auf eine binäre
0 zu ändern,
um zu veranlassen, dass die Multiplexer 220 und 222 die
anderen 64 Datenbits auswählen,
die von den BLSAs 216 bzw. 218 empfangen werden.
-
Wie
zu sehen ist, bewirkt das Kippen des HI/LO-Signals, dass weitere
128 Datenbits durch den Speicher 104 ausgegeben werden.
Die Verwendung des HI/LO-Signals zum Abrufen von weiteren 128 Informationsbits
ist insofern vorteilhaft, als nur ein Signal gekippt werden muss,
um zusätzliche
128 Datenbits zu erzeugen, anstatt einen ganzen Adressenbus zu ändern. Dies
vereinfacht die Leitweglenkung des IC-Chips 100, indem
ermöglicht
wird, dass das einzelne HI/LO-Signal als kritischer Pfad festgelegt
wird und auf dem IC-Chip 100 auf eine optimale Weise geleitet
wird, um ein Umschalten mit höherer
Frequenz zu ermöglichen
als es für
die Zeilenadressenleitungen oder die Spaltenadressenleitungen möglich wäre.
-
Daten,
die von den Multiplexern 220 und 222 ausgewählt werden,
werden durch einen ungeraden und geraden Satz von Hauptleseverstärkern (MSA) 224 und 226 verstärkt. Die
MSAs 224 und 226 sind herkömmlich und sind auch als Datenleseverstärker allgemein
bekannt. Die MSAs 224 und 226 arbeiten auf eine
herkömmliche
Weise, um das Signal vom kleinen Typ (Differenztyp), das von den
BLSAs 216 und 218 erzeugt wird, in Signale mit
vollem Hub umzuwandeln, die von der Steuereinheit 102 verwendbar
sind.
-
Die
vorangehende Beschreibung hat sich auf eine Leseoperation konzentriert,
bei der Daten aus dem Speicher 104 abgerufen werden. Eine
Schreiboperation arbeitet in jeder Hinsicht ähnlich, außer dass ein Schreibfreigabesignal
von der Steuereinheit 102 erzeugt wird und Daten zum Speicher 104 zum Schreiben
in die Speicherblöcke
geliefert werden. Die MSAs 224 und 226 wandeln
die empfangenen Datensignale mit vollem Hub in Kleinsignale um.
Die resultierenden Signale werden dann als Reaktion auf entsprechende
Zeilen- und Spaltenadressen, RAS- und CAS-Signale und das Schreibfreigabesignal
in die entsprechende Stelle in den Bänken 211 und 212 geschrieben.
In 2 ist das Schreibfreigabesignal allgemein gezeigt.
Die Steuerung des Speichersystems, einschließlich der Datenpfade innerhalb
des Systems, zum Unterscheiden zwischen Lese- und Schreiboperationen
ist herkömmlich
und ist für
Fachleute angesichts der vorliegenden Offenbarung verständlich.
-
3 der
Zeichnungen ist ein Ablaufdiagramm, das die Beziehung der von der
Steuereinheit 102 zum Speicher 104 gesandten Signale
zum Erhalten von vier Datenworten zeigt. Die Daten-, Adressen- und
Steuersignale, die von der Steuereinheit 102 erzeugt werden,
werden synchron mit einem in 3 als CLKC
bezeichneten und bei 302 gezeigten Taktsignal erzeugt.
Ein Schreibfreigabe- (WE) Signal, das bei 304 gezeigt ist,
steuert, ob eine Speicheroperation zum Lesen oder zum Schreiben
dient. Das Schreibfreigabesignal ist als aktiv niedriges Signal gezeigt,
was bedeutet, dass, wenn es einen Wert einer logischen 0 aufweist,
es das Schreiben von Daten in den Speicher 104 steuert,
und wenn es einen Wert einer logischen 1 aufweist, es inaktiv ist
und Daten dann aus dem Speicher gelesen werden. Die Zeilenadresse
für den
Speicher ist bei 306 gezeigt und umfasst, wie vorstehend
erläutert,
vorzugsweise 8 Bits, um eine von 256 Zeilen anzusteuern. Die Verwendung
der Zeilenadresse 306 durch den Speicher 104 wird
durch das RAS-Signal 305 gesteuert, das bewirkt, dass die
Zeilenadresse im Register 213 gespeichert wird. Das Spaltenadressensignal
umfasst, wie vorstehend angegeben, vorzugsweise 6 Bits und ist bei 308 gezeigt.
Die Verwendung der Spaltenadresse wird durch das bei 307 gezeigte
CAS-Signal gesteuert,
das bewirkt, dass die Spaltenadresse im Register 219 gespeichert
wird. Das HI/LO-Signal ist bei 310 gezeigt. Vom Speicher 104 ausgegebene
Daten sind bei 312 gezeigt.
-
Das
Ablaufdiagramm von 3 zeigt eine Leseoperation.
Die Leseoperation dauert acht Taktzyklen, wie durch die einzeln
nummerierten Taktsignale bei 302 gezeigt. In dem Zyklus
vor dem Zyklus 0 wird eine Zeilenadresse durch die Steuereinheit 102 an
den Zeilenadressenbus angelegt und das RAS-Signal wird aktiviert,
um die Zeilenadresse im Register 213 zu speichern. Im Taktzyklus
2, nachdem eine ausreichende Menge an Zeit zugelassen wurde, damit
die Zeilenadresse decodiert wird, und um zu ermöglichen, dass die Daten in
der decodierten Zeile in die Leseverstärker 216 und 218 gelesen
werden, wird die Spaltenadresse geliefert, um eine der zwei Spalten
in der angesteuerten Zeile anzusteuern, und das CAS-Signal 307 wird
aktiviert, um zu bewirken, dass die Spaltenadresse gespeichert wird.
Das CAS-Signal wird, wie zu sehen ist, im Zyklus 2 aktiviert. Im
Zyklus 4 werden die ersten 128 Datenbits in der angesteuerten Zeile
verfügbar.
Im Zyklus 3 wird das HI/LO-Signal gekippt, um zu bewirken, dass
die zweiten 128 Datenbits im Zyklus 5 verfügbar werden. Im Zyklus 5 wird
auch die Spaltenadresse geändert, um
die zweite Spalte von Daten anzusteuern, die in den Leseverstärkern 216 und 218 gespeichert
sind. Dies bewirkt, dass dritte 128 Datenbits im Zyklus 6 verfügbar werden,
während
welchem Zyklus das HI/LO-Signal wiederum gekippt wird, um zu bewirken,
dass vierte 128 Datenbits im Zyklus 7 verfügbar werden. Die zweite Spaltenadresse
kann nach der ersten Adresse folgen, muss es aber nicht. Sobald die
zweite Spaltenadresse im Zyklus 5 aktiviert wurde, werden im folgenden
Zyklus RAS und CAS deaktiviert, da sie nicht mehr erforderlich sind.
Dies ermöglicht,
dass ein weiterer Speicherzyklus im Zyklus 9 beginnt. Wie aus dem
Ablaufdiagramm von 3 zu sehen ist, wird auf insgesamt
512 Datenbits unter Verwendung der einzelnen Zeilenadresse zugegriffen.
Das HI/LO-Signal wird mit einer Frequenz gekippt, die zweimal die
Frequenz ist, mit der sich die Spaltenadresse ändern muss. Dies verringert
die Anzahl von kritischen Pfaden, die im Speicher 104 erforderlich
sind, und ermöglicht,
dass die Frequenz des Takts im Vergleich zur Verwendung von vier
verschiedenen Spaltenadressen zum Abrufen derselben Menge an Daten
erhöht
wird.
-
Es
soll selbstverständlich
sein, dass die speziellen Mechanismen und Verfahren, die beschrieben wurden,
nur eine Anwendung der Prinzipien der Erfindung erläutern. Die
speziellen Breiten von Datenpfaden und die Größe der Speicherblöcke, die
hierin beschrieben sind, sind beispielsweise nur vorgesehen, um
die Erläuterung
eines beispielhaften Ausführungsbeispiels
zu unterstützen.
Andere Breiten und Größen liegen
durchaus innerhalb des Schutzbereichs der Prinzipien der Erfindung.
Zahlreiche zusätzliche
Modifikationen können
an den beschriebenen Verfahren und Vorrichtungen vorgenommen werden,
ohne vom Schutzbereich der Erfindung abzuweichen.