-
TECHNISCHES
GEBIET
-
Die
Erfindung betrifft allgemein eine Blockschreibschaltung gemäß Oberbegriff
des Anspruchs 1; sie betrifft außerdem ein Speicherbauelement
mit einer solchen Schaltung und einen Rechner, der ein derartiges
Speicherbauelement enthält.
Die Erfindung betrifft außerdem
ein Verfahren zum Schreiben von blockweisen Daten.
-
HINTERGRUND
DER ERFINDUNG
-
Ein
Rechnersystem enthält
typischerweise ein Videosystem, welches Information für den Benutzer
der Rechners darstellt. Bei einem typischen Videosystem greift eine
Videosteuerung auf in einem Videospeicher befindliche Daten zu und
treibt eine Anzeigeeinheit, beispielsweise eine Kathodenstrahlröhre, um
die gespeicherte Information darzustellen, wie es dem Fachmann geläufig ist.
Der Videospeicher enthält
typischerweise spezialisierte dynamische Schreib-/Lesespeicher (DRAM),
beispielsweise einen synchronen Grafik-DRAM(SGRAM), die Spezialfunktionen
beinhalten, die es der Videosteuerung ermöglichen, in effizienterer Weise
Zugriff auf gespeicherte Videodaten zu nehmen und die Anzeigeeinheit
zu betreiben. Solche Spezialfunktionen beinhalten typischerweise
eine Bitmaskierung, eine Byte-Maskierung und Blockschreibfunktionen,
Bei der Bitmaskierung werden ausgewählte Bits von zu schreibenden
Daten, die sich auf einem Datenbus des SGRAM befinden, von entsprechend
adressierten Speicherzellen maskiert, so dass die in diesen Zellen
gespeicherten Daten nicht überschrieben
werden. Die Byte-Maskierung ist der Bitmaskierung analog, nur dass
Bytes von auf dem Datenbus befindlichen Schreibdaten selektiv aus
acht entsprechenden Speicherzellen maskiert werden. Die Blockschreibfunktion
ermöglicht
es dem SGRAM, ein einzelnes Datenbit zu einer Gruppe oder zu einem
Block von Speicherzellen zu transferieren, was die Zeit für den Transfer
gewis ser Daten zu einer großen
Anzahl von Speicherzellen verkürzt.
Eine typische Anwendung der Blockschreibfunktion ist das Einschreiben
von Daten entsprechend einem angestrebten farblichen Hintergrund
für einen
Videobildschirm in mehrere Speicherzellen des SGRAM.
-
1 ist
ein funktionelles Blockdiagramm eines Teils eines herkömmlichen
SGRAM 100 mit einer herkömmlichen Blockschreibschaltung 102,
die an ein Speicherzellen-Array 104 gekoppelt ist, welches mehrere
(nicht gezeigte), in Reihen und Spalten angeordnete Speicherzellen
enthält.
Ein Block 106 von Speicherzellen in dem Array 104 ist
dargestellt und entspricht einer Gruppe von acht Speicherzellen
in einer aktivierten Reihe innerhalb des Arrays. Eine Anzahl von
Ziffernleitungen DL0–DL7
ist gemäß Darstellung
mit zugehörigen
Speicherzellen in dem Block 106 gekoppelt. Der Fachmann
erkennt, dass die Darstellung des Arrays 104 zur leichten
Veranschaulichung vereinfacht ist und dass Komponenten wie Leseverstärker und
komplementäre
Signalleitungen aus Gründen
der Kürze
weggelassen wurden.
-
Die
Blockschreibschaltung 102 enthält einen Spaltenmasken-Decoder 108,
der eine Anzahl von Spaltenmaskenbits CM0–CM7 empfängt, die in einem Spaltenmasken-Register 110 abgespeichert sind.
Die Spaltenmaskenbits CM0–CM7
entsprechen Daten an einzelnen Datenanschlüssen DQ0–DC7, übereinstimmend mit einem an
den SGRAM 100 angelegten Blockschreibbefehl, wie der Fachmann
erkennt. Ansprechend auf die Spaltenmaskenbits CM0–CM7 aktiviert
der Spaltenmasken-Decoder 108 eine Anzahl von Spaltenauswahlsignalen CSEL0–CSEL7.
Ist eines der Spaltenmaskenbits CM0–CM7 gesetzt, deaktiviert der
Spaltenmasken-Decoder 108 das entsprechende Spaltenauswahlsignal
CSEL0–CSEL 7,
und wenn eines der Maskenbits CM0–CM7 gelöscht ist, aktiviert die Spaltenmasken-Schaltung 108 das
entsprechende Spaltenauswahlsignal CSEL0–CSEL7. Eine Anzahl von Eingangs/Ausgangs-Transistoren 112a–h liegt
zwischen den Ziffernleitungen DL0–DL7 und einem Eingang/Ausgang
oder einer Eingangs-/Ausgangs-Leitung I/O1. Jeder der Transistoren 112a–h empfängt an seinem
Gate ein zugehöriges
Spaltenauswahlsignals der Signale CSEL0–CSEL7. Die Transistoren 112a–h werden
eingeschaltet, wenn das ihnen zugeführte Spaltenauswahlsignal der
Signale CSEL0–CSEL7
aktiv ist, um dann die entsprechenden Ziffernleitungen DL0-DL7 auf die Eingangs/Ausgangs-Leitung
I/O1 zu koppeln. Wenn irgendeines der Spaltenauswahlsignale CSEL0–CSEL7 inaktiv ist,
schaltet der entsprechende Transistor der Transistoren 112a–h aus und
trennt damit die entsprechenden Ziffernleitungen DL0–DL7 von
der Eingangs/Ausgangs-Leitung I/O1.
-
Ein
Schreibtreiber 114 empfängt
an seinem Eingang entweder ein Farbbit CR0 oder ein Schreibdatenbit,
welches an den Dantenanschluss DQ0 gelegt wird, und der legt den
Datenwert an seinem Eingang ansprechend auf ein von einem Freigabeeingang
empfangenes Maskensignal M auf die Eingangs/Ausgangs-Leitung I/O1. Ein
UND-Gatter 116 bildet das Maskensignal M ansprechend auf
ein Byte-Maskensignal DQM0, welches an seinem ersten Eingang gelegt
wird, und ein Maskenbit MR0, das an einen zweiten Eingang gelegt
wird. Wenn das Maskenbit MR0 einen niedrigen Wert hat oder das Byte-Maskensignal
aktiv hoch ist, bildet das UND-Gatter 116 aus dem Maskensignal
M ein aktiv niedriges Signal, wenn das Maskensignal MR0 einen hohen
gelöschten
Wert hat und das Byte-Maskensignal DQM0 inaktiv niedrig ist, treibt
das UND-Gatter 116 das Maskensignal M in einen inaktiven
hohen Zustand. Während
des Betriebs bei einem normalen Schreibvorgang decodiert eine herkömmliche
Adressendecodierschaltung (in 1 nicht
gezeigt) Adressensignale, die an den SGRAM 100 gelegt werden, und
aktiviert eine entsprechende Speicherzelle innerhalb des Arrays 104,
wie dem Fachmann ersichtlich ist. Der Schreibtreiber 114 transferiert
dann an den Anschluss DQ0 angelegte Daten auf die Eingangs-/Ausgangs-Leitung
I/O1, wenn das Maskensignal M inaktiv hoch ist und bringt seinen
Ausgang in einen Zustand hoher Impedanz, um diese Daten von der
Eingangs-/Ausgangs-Leitung I/O1 zu trennen oder zu "maskieren", wenn das Maskensignal
M aktiv niedrig ist.
-
Während eines
Datentransfers beim blockweisen Schreiben transferiert die Blockschreibschaltung 102 das
Farbbit CR0 zu ausgewählten
Speicherzellen innerhalb des Blocks 106, wie im Folgenden
näher erläutert wird.
Während
eines Blockschreibvorgangs decodiert die Adressendecodierschaltung
wiederum Adressensignale, die an dem SGRAM angelegt werden, und
aktiviert die entsprechenden Speicherzellen innerhalb des Arrays 104, wie
es dem Fachmann bekannt ist. Wenn entweder das Maskenbild MR0 gesetzt
ist oder das Byte-Maskensignal
DQM0 aktiv hoch ist, bringt der Schreibtreiber 114 seinen
Ausgang in einen Zustand hoher Impedanz, was das Farbbit CR0 aus
den Speicherzellen im Block 106 unabhängig vom Zustand der Spaltenauswahlsignale
CSEL0–CSEL7
maskiert. In dieser Situation werden die im Block 106 gespeicherten Daten
während
des Blockschreibvorgangs nicht geändert. Wenn das Maskenbit MR0
gelöscht
ist und das Byte-Maskensignal DQM0 inaktiv niedrig ist, bringt der
Schreibtreiber 114 das Farbbit CR0 auf die Eingangs-/Ausgangs-Leitung
I/O1, und der Spaltenmasken-Decoder 108 aktiviert ausgewählte Spaltenauswahlsignale
CSEL0–CSEL7
ansprechend auf die Spaltenmaskenbits CM0 bis CM7. Ansprechend auf die
Spaltenauswahlsignale CSEL0 bis CSEL7 werden ausgewählte Transistoren 112a–h eingeschaltet, was
die dazu gehörigen
Ziffernleitungen DL0–DL7 auf
die Eingangs-/Ausgangs-Leitung I/O1 schaltet. Das Farbbit CR0 wird
dann über
die aktivierten Transistoren der Transistoren 112a–h und über die
entsprechenden Ziffernleitungen DL0–DL7 zu den entsprechenden
Speicherzellen im Block 106 transferiert. Wenn irgendeines
der Spaltenmaskenbits CM0–CM7
gesetzt ist, wird das entsprechende eine Signal von den Spaltenauswahlsignalen CSEL0–CSEL7 deaktiviert,
was den betreffenden Transistor oder Transistoren 112a–h ausschaltet
und dadurch das Farbbit CR0 aus der entsprechenden Speicherzelle
im Block 106 maskiert. Wenn z.B. das Spaltenmaskenbit CR6
gesetzt ist, wird das Spaltenauswahlsignal CSEL6 deaktiviert, was
den Transistor 12g ausschaltet und dadurch das Farbbit
CR0 aus der Speicherzelle des Blocks 106, die mit der Ziffernleitung
DL6 gekoppelt ist, maskiert. Auf diese Weise maskiert der Spaltenmasken-Decoder 108 das
Farbbit CR0 aus den betreffenden Zellen innerhalb des Blocks 18,
was als "Spaltenmaskierung" bekannt ist.
-
Aus
der vorliegenden Beschreibung ist ersichtlich, dass während eines
Blockschreibvorgangs mehrere der Transistoren 112a–h typischerweise gleichzeitig
aktiviert werden, wobei mehrere Ziffernleitungen DL0–DL7 auf
die Eingangs-/Ausgangs-Leitung I/O1 gekoppelt werden. Wenn keines
der Spaltenmaskierbits CM0–CM7
gesetzt ist, werden tatsächlich
sämtliche
Transistoren 12a–h
eingeschaltet, wodurch sämtliche
Ziffernleitungen DL0–DL7
auf die Eingangs-/Ausgangs-Leitung I/O1 gekoppelt werden. Wenn mehr
Ziffernlei tungen DL0–DL7
auf die Eingangs-/Ausgangs-Leitung I/O1 gekoppelt werden, nimmt
die Belastung für
diese Leitung zu, und diese erhöhte
Last muss von dem Schreibtreiber 114 bewerkstelligt werden.
Die von der Eingangs-/Ausgangs-Leitung I/O1 gebildete Last wird
deshalb größer, weil
jede der Ziffernleitungen DL0–DL7,
die mit der Leitung I/O1 gekoppelt ist, eine zusätzliche parallele Last darstellt,
die der Schreibtreiber 114 treiben muss. Die durch jede
der Ziffernleitungen DL0–DL7 gebildete
zusätzliche
Last enthält
die Last aufgrund eines (in 1 nicht
gezeigten) Leseverstärkers,
der mit der Ziffernleitung gekoppelt ist, einhergehend mit der zusätzlichen
Kapazität,
die durch die Ziffernleitung gebildet wird, wie der Fachmann weiß. Als Ergebnis
der durch die Eingangs-/Ausgangs-Leitung I/O1 gebildeten zusätzlichen
Last braucht der Schreibtreiber 114 längere Zeit zum Treiben der Spannung
auf der Eingangs-/Ausgangs-Leitung I/O1 auf den gewünschten
Pegel, was wiederum die Zeit verlängert, die die herkömmliche
Blockschreibschaltung 102 benötigt, um jeden Blockschreib-Datentransfer
auszuführen.
Der Fachmanns sieht, dass während üblicher
Schreibdatentransfers eine einzelne Ziffernleitung DL mit der Eingangs-/Ausgangs-Leitung
I/O1 gekoppelt ist, was die von dem Schreibtreiber 114 zutreibende
Last relativ zu solchen Blockschreibtransfers verringert und somit
auch die Zeit verkürzt,
die für
solche Standard-Schreibtransfers erforderlich ist.
-
Obwohl
die herkömmliche
Blockschreibschaltung 102 typischerweise die Zeit für die Durchführung von
Blockschreiboperationen erhöht,
arbeitet die Schaltung in den meisten herkömmlichen SGRAMs zufriedenstellend.
Mit zunehmender Geschwindigkeit von Mikroprozessoren und zunehmenden
Bandbreiten von Speicherbauelementen wird allerdings die Zeit für die Durchführung von
Blockschreiboperationen kritischer. Darüber hinaus lässt sich
möglicherweise
die von der herkömmlichen Blockschreibschaltung 102 ausgeführte Spaltenmaskierung
bei zahlreichen neuen Speicherbauelementen nur schwierig implementieren,
so z.B. bei gehäusten
DRAMs und eingebauten DRAMs, die sehr breite interne Datenpfade
besitzen. Der interne Datenpfad umfasst die Eingangs-/Ausgangs-Leitungen I/O,
und ein breiter interner Datenpfad enthält folglich mehrere derartige
Leitungen. Bei einem breiten internen Datenpfad nimmt die Anzahl
von Eingangs-/Ausgangs-Leitungen I/O in Verbindung mit jedem Array zu,
die Anzahl von Spaltenauswahlsignalen CSEL in Verbindung mit jedem
Array nimmt typischerweise ab. Die Anzahl von Spaltenauswahlleitungen
nimmt deshalb ab, weil für
jedes Spaltenauswahlsignal CSEL mehr Daten aus dem Array über die
Eingangs-/Ausgangs-Leitungen I/O übertragen werden. Beispielsweise
sind bei einem Array, in welchem jede Reihe 128 Spalten enthält und dem
Array 64 Eingangs-/Ausgangs-Leitungen zugeordnet sind (d.h. ein
interner 64-Bit-Datenbus), nur zwei Spaltenauswahlleitungen CSEL
erforderlich, eine für
den Transfer der in den Speicherzellen in den ersten 64 Spalten gespeicherten
Daten auf die zugehörigen
Eingangs-/Ausgangs-Leitungen,
und ein zweites Spaltenauswahlsignal für den gleichen Vorgang mit
den in den zweiten 64 Spalten gespeicherten Daten. Wenn die Anzahl
von Spaltenauswahlsignalen CSEL abnimmt, lässt sich die in 2 skizzierte
Vorgehensweise zur Durchführung
der Spaltenmaskierung während
Blockschreiboperationen deshalb schwierig implementieren, weil der
Spaltenmasken-Decoder 108 nicht
mehr getrennte Spaltenauswahlsignale CSEL an jeden Spaltenauswahltransistor
liefert. In dem oben beschriebenen Array mit den 128 Spalten von Speicherzellen
und den 64 zugehörigen
Eingangs-/Ausgangs-Leitungen
beispielsweise sind die Spaltenauswahltransistoren, die zu den ersten
64 Spalten gehören,
mit ihren Gates zusammengeschaltet, um das erste Spaltenauswahlsignal
zu empfangen. In dieser Situation können die einzelnen Spaltenauswahltransistoren
deshalb nicht getrennt aktiviert werden, da ihre Gates zusammengeschaltet sind.
-
Es
besteht Bedarf an einer Blockschreibschaltung in einem Speicherbauelement
mit einem breiten internen Datenpfad, die die Zeit verringert, die erforderlich
ist für
die Durchführung
von Blockschreiboperationen, und die eine Spaltenmaskierung von Bits
innerhalb jedes Blocks durchführt.
-
Eine
Blockschreibschaltung mit den Merkmalen des Oberbegriffs des Anspruchs
1 ist aus der US-A-5 229 971 bekannt. Dem oben angesprochenen Bedarf
wird durch die im Anspruch 1 angegebene Erfindung entsprochen.
-
Eine
Blockschreibschaltung in einem Speicherbauelement führt Blockschreiboperationen in
dem Speicherbauelement durch, welches einen breiten internen Datenweg
aufweist. Das Speicherbauelement enthält mindestens ein Array, welches eine
Mehrzahl von Speicherzellen in einer Anordnung aus Reihen und Spalten
besitzt. Das Array enthält
mehrere Ziffernleitungen, von denen jede mit mehreren Speicherzellen
in einer zugehörigen
Spalte verbunden ist. Gemäß einem
Aspekt der Erfindung enthält
die Blockschreibschaltung mehrere Eingangs-/Ausgangs-Leitungen und
einen Schaltkreis, dazwischen die Eingangs-/Ausgangs-Leitungen und die
Ziffernleitungen gelegt ist. Der Schaltkreis (eine als Schalter
fungierende Anordnung) koppelt selektiv mindestens eine Ziffernschaltung
ansprechend auf ein Adressensignal während eines Blockschreibvorgangs
auf jede Eingangs-/Ausgangs-Leitung. Mehrere Treiberschaltungen
enthalten jeweils einen Eingang und einen mit einer zugehörigen Eingangs-/Ausgangs-Leitung
gekoppelten Ausgang, und jede Treiberschaltung bildet ein Datensignal
an seinem Ausgang in Abhängigkeit
eines an seinem Eingang angelegten Datensignals. Eine Multiplexerschaltung
empfängt
mit einem Eingang ein Datensignal und besitzt mehrere Ausgänge, die
an zugehörige Eingänge der
Treiberschaltungen gekoppelt sind. Die Multiplexerschaltung verbindet
ihren Eingang ansprechend auf ein Steuersignal während des Blockschreibvorgangs
mit ihren Ausgängen.
-
Gemäß einem
weiteren Aspekt der Erfindung trennt die Multiplexerschaltung ihren
Eingang von ausgewählten
Ausgängen
ansprechend auf Spaltenmaskiersignale. Auf diese Weise maskiert
der Multiplexer Daten, die an seinem Eingang gelegt werden, von
zugehörigen
Eingangs-/Ausgangs-Leitungen und maskiert damit die Daten von entsprechenden
Speicherzellen innerhalb des Arrays.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
1 ist
ein Blockdiagramm eines Teils eines SGRAM mit einer herkömmlichen
Blockschreibschaltung.
-
2 ist
ein funktionelles Blockdiagramms eine Teils eine Speicherbauelements
mit einem Schreibdatenpfad, der an eine Blockschreibschaltung gemäß einer
Ausführungsform
der Erfindung angeschlossen ist.
-
3 ist
ein funktionelles Blockdiagramm eines eingebauten DRAM mit einem
Speicherbauelement, welches die in 2 gezeigte
Blockschreibschaltung enthält.
-
4 ist
ein funktionelles Blockdiagramm eines Computersystems mit dem eingebauten
DRAM der 3.
-
DETAILLIERTE
BESCHREIBUNG DER ERFINDUNG
-
2 ist
ein funktionelles Blockdiagramm eines Teils eines Speicherbauelements 300 mit
einem breiten internen Datenpfad 302, gekoppelt an eine Blockschreibschaltung 304 gemäß einer
Ausführungsform
der Erfindung. Die Blockschreibschaltung 304 arbeitet in
einem Standard- und in einem Blockschreibbetrieb, um an einem Datenbus
DQ1–DQ32 angelegte
Daten über
den breiten, internen Datenpfad 302 an adressierte Speicherzellen
in mehreren Arrays 306–320 zu
leiten, wie im Folgenden in größerer Einzelheit
erläutert
wird.
-
In
dem Speicherbauelement 300 enthält der breite interne Datenpfad 302 128
Eingangs-/Ausgangs-Leitungen I/O1–I/O128, die Daten zu und von adressierten
Speicherzellen in den Arrays 306–320 transferieren.
Jedes der Arrays 306–320 enthält mehrere
(nicht gezeigte) Speicherzellen, die in Reihen und in Spalten angeordnet
sind. Die Arrays 306–320 sind
in der dargestellten Weise so angeordnet, dass benachbarte Arrays
an die gleichen 32 Eingangs-/Ausgangs-Leitungen I/O1–I/O128
des breiten internen Datenpfads 302 angeschlossen sind.
Beispielsweise sind die Arrays 306 und 308 an
die Datenleitungen I/O1–I/O32
gekoppelt, die Arrays 310 und 312 sind an die
Datenleitung I/O33–I/O64
gekoppelt, usw. Das Verbinden der Arrays 118, 120 mit
den Eingangs-/Ausgangs-Leitungen I/O97–I/O128 ist in größerer Einzelheit
veranschaulicht, und obwohl für die
Arrays 306 bis 316 nicht gezeigt, erkennt der Fachmann,
dass die Arrays mit den zugehörigen
Datenleitungen I/O1–I/O128
in der gleichen Weise gekoppelt sind. Jedes der Arrays 318, 120 enthält eine An zahl
von Ziffernleitungen DL1–DLN,
die an Speicherzellen in zugehörigen
Spalten des Arrays gekoppelt sind. Die Ziffernleitungen DL1–DLN sind über zugehörige Spaltenauswahltransistoren 321 an
die entsprechenden Eingangs-/Ausgangs-Leitungen I/O97–I/O128
angeschlossen. Mehrere Spaltenauswahlsignale CSEL1–CSELX sind
an die jeweiligen Gates der Spaltenauswahltransistoren 321 angeschlossen.
Bei der in 2 gezeigten Ausführungsform
wird jedes der Spaltenauswahlsignale CSEL typischerweise an 32 Spaltenauswahltransistoren 321 gelegt.
Der Fachmann erkennt, dass 2 eine vereinfachte
Darstellung der Verbindung zwischen den Arrays 118, 120 und
den zugehörigen
Eingangs-/Ausgangs-Leitungen I/O97–I/O128 ist, und dass weitere
Komponenten wie z.B. Leseverstärker und
komplementäre
Signalleitungen aus Gründen der
Vereinfachung weggelassen sind. Darüber hinaus ist die bauliche
Ausgestaltung der Arrays 306 bis 320 und des breiten
Datenpfads 302 ganz anders als bei dem herkömmlichen
Speicherbauelement, dies ist allerdings nebensächlich für die vorliegende Erfindung,
und im Interesse der Knappheit wird dies nicht weiter erläutert. Innerhalb
des Speicherbauelements 300 schwankt die Anzahl der Arrays 306 bis 320 und der
Eingangs-/Ausgangs-Leitungen I/O1–I/O128 abhängig von der spezifischen Architektur
des Speicherbauelements 300.
-
Die
Arbeitsweise der Arrays 306–320 ist identisch,
aus Gründen
der Kürze
soll im Folgenden nur die Arbeitsweise des Arrays 318 in
größerer Einzelheit
erläutert
werden. Wie der Fachmann sieht, enthält das Speicherbauelement 300 auch
Reihen- und Spalten-Adressendecodierschaltungen (in 2 nicht
gezeigt), die an das Speicherbauelement angelegte Adressensignale
decodieren und auf entsprechende Speicherzellen innerhalb der Arrays 306–320zugreifen.
Um Daten zwischen adressierten Speicherzellen innerhalb des Arrays 318 und
den Eingangs-/Ausgangs-Leitungen I/O97–I/O128 zu transferieren, decodiert
die Reihenadressen-Decodierschaltung eine an das Speicherbauelement 300 angelegte
Reihenadresse und aktiviert eine entsprechende Reihe innerhalb des
Arrays 318. An dieser Stelle werden die in den Speicherzellen
der aktivierten Reihe enthaltenen Daten auf die zugehörigen Ziffernleitungen
DL1–DLN
gegeben. Die Spaltenadressen-Decodierschaltung decodiert dann eine
an das Speicherbauelement 300 angelegte Spaltenadresse und
aktiviert das entspre chende eine Signal der Spaltenauswahlsignale
CSEL1–CSELX.
Die 32 Spaltenauswahltransistoren 321 empfangen das aktivierte Spaltenauswahlsignal
und koppeln die betreffenden Ziffernleitungen DL1–DLN auf
die zugehörigen
Eingangs-/Ausgangs-Leitungen I/O97–I/O128. Wird z.B. das Signal
CSEL1 aktiviert, werden die Ziffernleitungen DL1–DL32 über die aktivierten Spaltenauswahltransistoren 321 auf
die jeweiligen Eingangs-/Ausgangs-Leitungen I/O97–I/O128
gekoppelt. An dieser Stelle werden Daten zwischen den Eingangs-/Ausgangs-Leitungen
I/O97–I/O128
und de adressierten Speicherzellen übertragen. Während eines
Lesevorgangs werden die in den adressierten Speicherzellen enthaltenen
Daten über
die entsprechenden Ziffernleitungen durch die Spaltenauswahltransistoren 321 transferiert
und gelangen dann auf die Eingangs-/Ausgangs-Leitungen I/O97–I/O128.
Während eines
Schreibvorgangs werden Schreibdaten auf den Eingangs-/Ausgangs-Leitungen
I/O97–I/O128 über zugehörige Transistoren 321 und über entsprechende
Ziffernleitungen zu den adressierten Speicherzellen übertragen.
-
Die
Blockschreibschaltung 304 enthält mehrere Eingangspuffer BUF1–BUF32,
die zugehörige Datensignale
empfangen, die an Datenanschlüsse DQ1–DQ32 des
Speicherbauelements 300 angelegt werden. Ein Farbregister 322 ist
gemäß Darstellung zwischen
die Datenanschlüsse
DQ1–DQ32
und die Eingangspuffer BUF1–BUF32
gelegt und speichert Farbbits CR1–CR32. Das Farbregister 322 legt
die Farbbits CR1–CR32
an die Eingangspuffer BUF1–BUF32,
wenn die Blockschreibschaltung 304 im Blockschreibmodus
arbeitet, ansonsten legt sie die an den Anschlüssen DQ1–DQ32 anstehenden Daten an
die Puffer BUF1–BUF32,
wie weiter unten näher
ausgeführt
wird. Außerdem
empfangen die Puffer BUF1–BUF32
Maskensignale M1–M32
von einer Maskierschaltung 324. Jeder der Puffer BUF1–BUF32 treibt
ein Signal an seinem Ausgang auf dem gleichen logischen Pegel, den
ein Signal an seinem Eingang aufweist, wenn das zugehörige Maskiersignal
inaktiv ist, und er bringt seinen Ausgang in einen Zustand hoher
Impedanz, wenn das zugehörige
Maskier- oder Maskensignal aktiv ist. Auf diese Weise maskieren,
wenn irgendeines der Maskensignale M1–M32 aktiv ist, die entsprechenden Puffer
unter den Puffern BUF1–BUF32
die an ihre Eingänge
angelegten Datensignale.
-
Die
Maskierschaltung 324 enthält mehrere UND-Gatter UND1–UND32,
die an ihren Ausgängen Maskiersignale
M1–M32
bilden. Die Gatter UND1–UND32
empfangen an ihren ersten Eingängen
Maskierbits MR1–MR32.
Die Maskierbits MR1–MR32
sind in einem Maskenregister 326 gespeichert, das mit den
Datenanschlüssen DQ1–DQ32 gekoppelt
ist. Jedes der Gatter UND1–UND32
empfängt
weiterhin an einem zweiten Eingang eines der vier Byte-Maskiersignale DQM0–DQM3, wobei
nur die Byte-Maskensignale oder Byte-Maskiersignale DQM0 und DQM3
in 3 dargestellt sind. Jedes der Byte-Maskensignale DQM0–DQM3 wird
an die zweiten Eingänge
einer Gruppe von acht UND-Gattern UND1–UND32 gelegt. Auf diese Weise
gelangen die Byte-Maskensignale DQM0,
DQM1, DQM2 und DQM3 an die zweiten Eingänge der Gatter UND1–UND8, UND9,
UND16, UND17–UND24
sowie UND25–UND32.
Jedes der Gatter UND1–UND32
treibt das entsprechende Maskensignal M1–M32 in den aktiven Zustand,
wenn entweder das zugehörige
Byte-Maskensignal DQM0–DQM3
aktiv hoch ist oder das zugehörige Maskenbit
MR1–MR32
auf aktiv niedrig gesetzt ist. Wenn z.B. das Maskenbit MR1 gesetzt
ist oder das Byte-Maskensignal DQM0 aktiv hoch ist, bringt das Gatter
UND1 das Maskensignal M1 in den aktiv niedrigen Zustand. Wenn das
Maskenbit MR1 in den hohen Zustand gelöscht ist oder das Byte-Maskensignal
DQM0 inaktiv niedrig ist, bringt das Gatter UND1 das Maskensignal
M1 in den inaktiven hohen Zustand.
-
Die
Blockschreibschaltung 304 enthält weiterhin mehrere Multiplexer
MUX1–MUX32,
welche Datensignale an Eingängen
empfangen, welche von den Puffern BUF1–BUF32 ausgegeben werden. Jeder
der Multiplexer MUX1–MUX32
enthält
vier Ausgänge
und empfängt
mehrere Adressensignale ADDR und ein Blockschreibsignal BLKWRT.
Die Signale ADDR und BLKWRT sind gemäß Darstellung nur an den Multiplexer
MUX32 gelegt, allerdings werden diese Signale tatsächlich auch
an die Multiplexer MUX1–MUX31
gelegt, was in 2 lediglich zur Vereinfachung
weggelassen wurde. Die Ausgänge
der Multiplexer MUX1–MUX32
sind über
zugehörige Schreibtreiber
WD1–WD128
an zugehörige
Eingangs-/Ausgangs-Leitungen I/O1–I/O128 gekoppelt. Beispielsweise
sind die vier Ausgänge
des Multiplexers MUX1 über
die Schreibtreiber WD1, WD2, WD3 und WD4 an die Eingangs-/Ausgangs-Leitungen I/O1,
I/O2, I/O3 bzw. I/O4 gekoppelt. Jeder der Schreibtreiber WD1–WD128 treibt
ein Signal an seinem Ausgang auf den Pegel eines Signals, welches an
seinem Eingang ansteht. Die Schreibtreiber WD1–WD128, die Puffer BUF1–BUF32,
das Maskenregister 326 und das Farbregister 322 sind
durchwegs herkömmliche
Schaltungen und sind dem Fachmann geläufig.
-
Im
Betrieb arbeitet jeder der Multiplexer MUX1–MUX32 in einer von zwei Betriebsarten,
einem Standard-Schreibbetrieb und einem Block-Schreibbetrieb. Wenn
das Blockschreibsignal BLKWRT inaktiv ist, arbeiten die Multiplexer MUX1–MUX32 im
Standard-Schreibbetrieb. Im Standard-Schreibbetrieb koppelt jeder
der Multiplexer MUX1–MUX32
seinen Eingang auf einen seiner Ausgänge in Abhängigkeit des Signals ADDR.
Im Block-Schreibbetrieb ist das Blockschreibsignal BLKWRT aktiv,
und jeder der Multiplexer MUX1–MUX32 koppelt
seinen Eingang auf sämtliche
vier seiner Ausgänge,
unabhängig
von den Signalen ADDR.
-
Im
Folgenden wird der gesamte Arbeitsablauf der Block-Schreibbschaltung 304 im
Einzelnen erläutert.
Bei der folgenden Beschreibung wird davon ausgegangen, dass die
erwünschten
Maskier- oder Maskenbits MR1–MR32
in dem Maskenregister 326 gespeichert sind und die erwünschten
Bits CR1–CR32
in ähnlicher
Weise im Farbregister 322 gespeichert sind. Während der
Operation decodiert die Adressendecodierschaltung an das Speicherbauelement 300 angelegte
Adressensignale und greift auf entsprechende Speicherzellen in den
Arrays 306–320 zu.
Die Blockschreibschaltung 304 arbeitet in einem Standard-Schreibbetrieb und
einem Block-Schreibbetrieb entsprechend den beiden Betriebsarten
oder Modi entsprechend den gleichen Bezeichnungen, die oben für die Erläuterung
der Multiplexer MUX1–MUX32
verwendet wurden. Es wird unterstellt, dass während des Betriebs sowohl im
Standardmodus als auch im Block-Schreibmodus die Adressendecodierschaltung
auf Speicherzellen derart zugreift, dass einzelne Speicherzellen
auf die betreffenden Eingangs-/Ausgangs-Leitungen I/O1–I/O128
gekoppelt werden, wie weiter unten in größerer Einzelheit erläutert wird.
Beispielsweise werden in jedem der Arrays 318 und 320 nur
die Spaltenauswahlsignale CSEL1–CSELX
zu einer gegebenen Zeit aktiviert, so dass lediglich eine einzelne Ziffernleitung
DL an jede der Eingangs-/Ausgangs-Leitungen I/O97–I/O128
gekoppelt wird. Außerdem
wei den Spaltenauswahlsignale CSEL1–CSELX in den beiden Arrays 318, 320 nicht gleichzeitig
aktiviert, so dass die Ziffernleitungen DL in beiden Arrays 318, 320 nicht
gleichzeitig mit zugehörigen
Eingangs-/Ausgangs-Leitungen I/O97–I/O128 verbunden werden.
-
Die
Blockschreibschaltung 304 arbeitet im Standard-Schreibmodus,
wenn das Blockschriebsignal BLKWRT inaktiv ist. Im Standard-Schreibmodus arbeitet
die Blockschreibschaltung 304 in einer von drei Unterbetriebsarten
oder Submodi, nämlich
einer unmaskierten Unterbetriebsart, einer Byte-maskierten Unterbetriebsart
und einer Bit-maskierten Unterbetriebsart. In der unmaskierten Unterbetriebsart sind
sämtliche
Maskenbits MR1–MR32
gelöscht,
und sämtliche
Byte-Maskiersignale DQMO–DQM3
sind inaktiv niedrig, demzufolge die Maskierschaltung 324 veranlasst
wird, die Maskiersignale M1–M32
in den inaktiven hohen Zustand zu treiben und dadurch die Puffer
BUF1–BUF32
freizugeben. Bei Freigabe der Puffer BUF1–BUF32 werden an den Anschlüssen DQ1–DQ32 anstehende
Daten über
die Puffer BUF1–BUF32
transferiert und gelangen an die Eingänge der Multiplexer MUX1–MUX32,
von denen jeder an seinem Eingang anstehende Daten auf einen der
zugehörigen
Schreibtreiber WD1–WD128
gibt, was wiederum die Daten auf der zugehörigen Leitung der Eingangs-/Ausgangs-Leitungen
I/O1–I/O128 gibt,
wo die Daten über
die aktivierten Spaltenauswahltransistoren 321 und über entsprechende
Ziffernleitungen DL zu den adressierten Speicherzellen innerhalb
der Arrays 306–320 gelangen.
-
Es
sei z.B. angenommen, dass während
der unmaskierten Unterbetriebsart die Adressensignale ADDR Werte
haben, die die Multiplexer MUX1–MUX32
veranlassen, die an ihrem Eingang anstehenden Daten auf den unteren
Treiber der zugehörigen
Schreibtreiberschaltungen WD1–WD128 geben.
Damit transferiert der Multiplexer MUX1 an seinem Eingang anliegende
Daten zu dem Eingang des Schreibtreibers WD4. Bei diesem Beispiel
werden an den Anschlüssen
DQ1–DQ32
angelegte Daten über
die Puffer BUF1–BUF32
zu den Multiplexern MUX1–MUX32
transferiert, die ihrerseits die Daten zu jeder vierten E/A-Leitung übertragen,
nämlich I/O4,
I/O8, I/O12, ... I/O128, von wo aus sie anschließend durch aktivierte Spaltenauswahltransistoren 321 und über entsprechende Ziffernleitungen
DL zu adressierten Speicherzellen in einem der Arrays 318 und 320 transferiert
werden. Auf diese Weise werden bei der unmaskierten Unterbetriebsart 32 Datenbits, die
an den Anschlüssen
DQ1–DQ32
anstehen, zu 32 entsprechenden adressierten Speicherzellen in einem
der Arrays 306–320 transferiert.
-
In
der Byte-maskierten Unterbetriebsart arbeitet die Blockschreibschaltung 304 genauso
wie in der unmaskierten Unterbetriebsart, nur dass eines der Byte-Maskiersignale DQM0–DQM3 aktiv
hoch ist und dadurch acht Datenbits maskiert, die an acht entsprechenden
Anschlüssen
DQ1–DQ32
anstehen. Wenn z.B. das Byte-Maskiersignal DQM0 aktiv ist, aktiviert
die Maskierschaltung 324 die Maskiersignale M1–M8 und
sperrt damit die Puffer BUF1–BUF8. Wenn
die Puffer BUF1–BUF8
gesperrt sind, werden an den Anschlüssen DQ1–DQ8 angelegte Daten maskiert
und folglich nicht zu entsprechenden adressierten Speicherzellen
in den Arrays 306–320 übertragen.
Damit maskiert jedes der Byte-Maskiersignale DQM0–DQM3 ein
Byte Daten, die an die Anschlüsse
DQ1–DQ32
gelegt werden.
-
In
der Bit-maskierten Unterbetriebsart arbeitet die Blockschreibschaltung 304 wiederum
genauso wie in der unmaskierten Unterbetriebsart, nur dass ausgewählte Datenbits,
die an den Datenanschlüssen
DQ1–DQ32
anstehen, maskiert werden. Die Maskierbits MR1–MR32, die in dem Maskenregister 326 gespeichert
sind, legen fest, welche der Datenbits an den Anschlüssen DQ1–DQ32 maskiert
werden. Man nehme z.B. an, dass nur das Maskierbit MR2 gesetzt ist
und sämtliche übrigen Maskierbits gelöscht sind.
In dieser Situation werden die Daten an dem Anschluss DQ1 maskiert
und folglich nicht in der entsprechenden adressierten Speicherzelle
gespeichert, die an die Eingangs-/Ausgangs-Leitung I/O98 gekoppelt ist. Auf diese
Weise werden im Bit-maskierten Submodus die Maskierbits MR1–MR32 dazu
benutzt, individuelle Bits der an den Anschlüssen DQ1–DQ32 anliegenden Daten zu maskieren.
-
Die
Blockschreibschaltung 304 arbeitet im Blockschreibmodus,
wenn das Blockschreibsignal BLKWRT aktiv ist. Wie oben beschrieben,
verbindet, wenn das Blockschreibsignal BLKWRT aktiv ist, jeder der
Multiplexer MUX1–MUX32 seinen
Eingang mit sämtlichen
vier Ausgängen.
Während
des Blockschreibmodus aktiviert die Adressendecodierschaltung in
dem Speicherbauelement 300 mehrere Spaltensignale CSEL,
so dass eine einzelne Ziffernleitung DL an jede der Eingangs-/Ausgangs-Leitungen I/O1–I/128 gekoppelt
wird. Beispielsweise kann die Adressendecodierschaltung die Spaltenauswahlsignale
CSEL1 der Arrays 306, 310, 314 und 318 aktivieren
und so 32 Ziffernleitungen DL in jedem dieser Arrays an die 32 entsprechenden
Eingangs-/Ausgangs-Leitungen I/O1–I/O128 koppeln. Während des Blockschreibmodus
arbeitet die Blockschreibschaltung 304 erneut im unmaskierten
Submodus, im Byte-maskierten Submodus und im Bit-maskierten Submodus,
und die Farbbits CR1–CR32
in dem Speicherregister 222 werden an die Eingänge der
Puffer BUF1–BUF32
gelegt. Im unmaskierten Submodus wird jedes der Farbbits CR1–CR32 über den
zugehörigen
Puffer der Puffer BUIF1–BUF32
und Multiplexer MUX1–MUX32
an vier adressierte Speicherzellen in den Arrays 306–320 übertragen.
Beispielsweise wird das Farbbit CR1 über den Puffer BUF1 und über den Multiplexer
MUX1 an die Eingänge
der Schreibtreiber WD1–WD4
transferiert, die ihrerseits diese Daten auf die Eingangs-/Ausgangs-Leitungen
I/O1, I/O2, I/O3 bzw. I/O4 geben. Das Farbbit CR1 auf den Leitungen I/O1,
I/O2, I/O3 und I/O4 wird anschließend über aktivierte Spaltenauswahltransistoren 329 und über entsprechende
Ziffernleitungen DL an die adressierten Speicherzellen in den Arrays 30–320 gegeben. Im
unmaskierten Submodus werden folglich die 32 Farbbits CR1–CR32 zu
128 adressierten Speicherzellen in aktivierten Arrays 306–320 übertragen.
Auf diese Weise ermöglicht
die Blockschreibschaltung 304, dass jedes der Farbbits
CR1–CR32
in mehrere Speicherzellen innerhalb der Arrays 306–320 eingeschrieben
wird.
-
Während des
Byte-maskierten Submodus arbeitet die Maskierschaltung 324 so,
wie es oben für den
Standard-Schreibmodus beschrieben wurde, um ein Daten-Byte zu maskieren,
welches an acht entsprechende Puffer BUF1–BUF32 angelegt wird. Wenn
beispielsweise das Byte-Maskensignal DQM0 aktiv hoch ist, werden
die Puffer BUF1–BUF8
unter Maskierung der Farbbits CR1–CR8 gesperrt. In dieser Situation
ist bei jedem der Multiplexer MUX1–MUX8 der Eingang maskiert,
was wiederum die vier Datenbits maskiert, die von jedem dieser Multiplexer
während
des Blockschreibmodus ausgegeben werden.
-
Wenn
also das Byte-Maskensignal DQM0 aktiv ist, werden 32 Datenbits maskiert,
die normalerweise von den Multiplexern MUX1–MUX8 ausgegeben würden.
-
Im
Bit-maskierten Submodus schließlich maskieren
die Maskenbits MR1–MR32
ausgewählte Farbbits
von den Farbbits CR1–CR32.
Man nehme beispielsweise an, dass das Maskenbit MR2 gesetzt sei
und sämtliche übrigen Maskenbits
gelöscht
seien. In dieser Situation werden dann die Farbbits CR1 sowie CR3–CR32 zu
mehreren adressierten Speicherzellen transferiert, wie es oben für den unmaskierten Submodus
beschrieben wurde. Ansprechend auf das gesetzte Farbbit CR2 aktiviert
die Maskierschaltung 324 das Maskensignal M2 und sperrt damit den Puffer BUF2. Wenn
der Puffer BUF2 gesperrt ist, wird das Farbbit CR2 von dem Multiplexer
MUX2 maskiert, was wiederum die vier Datenbits maskiert, die normalerweise über die
Schreibtreiber WD5–WD8
zu den Datenleitungen I/O5, I/O6, I/O7 bzw. I/O8 transferiert würden. Das
gesetzte Maskenbit MUR2 maskiert folglich das Farbbit CR2 von vier
adressierten Speicherzellen in den Arrays 306–320.
Jedes gesetzte Maskenbit MR1–MR32
maskiert in ähnlicher
Weise das zugehörige
Farbbit CR1–CR32
aus vier adressierten Speicherzellen in den Arrays 306–320. Während des
Bit-maskierten Submodus können
die Maskenbits MR1–MR32
also dazu benutzt werden, ausgewählte
Farbbits CR1–CR32
aus vier entsprechenden Speicherzellen in den Arrays 306–320 zu maskieren.
-
Die
Blockschreibschaltung 304 führt Blockschreibdaten-Transfers
in dem Speicherbauelement 300 durch, welches den breiten
internen Datenweg 302 besitzt. Während des Blockschreibbetriebs
wird jedes Farbbit CR1–CR32
zu vier adressierten Speicherzellen in den Arrays 306–320 übertragen,
die von den Maskiersignalen M1–M32 aus der Maskierschaltung 324 betroffen
sind. Die Blockschreibschaltung 304 führt außerdem eine Bitmaskierung ausgewählter Farbbits
CR1–CR32
einhergehend mit der Byte-Maskierung von Bytes der Farbbits CR1–CR32 im
Blockschreibbetrieb durch. In der Blockschreibschaltung 304 wird
die Zeit zur Durchführung
eines Blockschreibdaten-Transfers verkürzt. Dies ist deshalb so, weil
eine einzelne Ziffernleitung DL und die entsprechende adressierte
Speicherzelle auf jede der Eingangs-/Ausgangs-Leitungen I/O1– I/O128
gekoppelt wird. Damit treibt jeder der Schreibtreiber WD1–WD128 die
Last, die durch eine einzelne Ziffernleitung DL dargestellt wird,
welche an die zugehörige
Eingangs-/Ausgangs-Leitung der Leitungen I/O1–I/O128 gekoppelt ist, so wie
es bei einem herkömmlichen
Schreibdatentransfer der Fall wäre.
Wie allerdings in Verbindung mit 1 beschrieben
wurde, werden dort in den herkömmlichen
Blockschreibschaltungen mehrere Ziffernleitungen an jede der Eingangs-/Ausgangs-Leitungen
I/O1–I/O128
gekoppelt, so dass ein einzelner Schreibtreiber die durch diese
mehreren Ziffernleitungen gebildete größere Last treiben muss, was
die Zeit zur Durchführung
des Blockschreibdaten-Transfers
verlängert.
-
Es
sei angemerkt, dass während
Blockschreibtransfers die Adressendecodierschaltung mehrere Spaltenauswahlsignale
CSEL–CSELN
für jedes
der Arrays 306–320 aktivieren
und dadurch mehrere Ziffernleitungen an jede der Eingangs-/Ausgangs-Leitungen
I/O1–I/O128
koppeln könnte,
was aber die Anzahl von Speicherzellen erhöhen würde, zu denen während des
Blockschreibmodus Daten zu transferieren sind. In dem Array 318 können beispielsweise
die Spaltenauswahlsignale CSEL1 und CSELX gleichzeitig aktiviert
werden, so dass die Ziffernleitungen DL1–DL32 und DLN–32–DLN an
die betreffenden Eingangs-/Ausgangs-Leitungen I/O97–I/O128
gekoppelt werden. Alternativ können die
Spaltenauswahlsignale CSEL1 für
die Arrays 318, 320 gleichzeitig aktiviert und
so die Ziffernleitungen DL1–DL32
in jedem der Arrays 318, 320 an die betreffenden
Eingangs-/Ausgangs-Leitungen I/O97–I/O128 gekoppelt werden. Bei
dieser Ausführungsform
erkennt allerdings der Fachmann, dass die Zeit zur Durchführung von
Blockschreibtransfers möglicherweise
ansteigt, und dass die Spaltenmaskierung außerdem unter den mehreren Speicherzellen,
die über
Ziffernleitungen an eine gemeinsame Eingangs-/Ausgangs-Leitung gekoppelt
sind, nicht möglich
ist.
-
In
einer alternativen Ausführungsform
der Blockschreibschaltung 304 werden Spaltenmaskiersignale
CMASK an jeden der Multiplexer MUX1–MUX32 gelegt, wodurch die
Blockschreibschaltung 304 in die Lage versetzt wird, während Blockschreiboperationen
die entsprechende Spaltenmaskierung auszuführen, wie weiter unten im Einzelnen
ausgeführt
wird. Auch hier ist das Signal CMASK als nur an den Multiplexer
MUX32 angelegt dargestellt, um die 2 zu vereinfachen.
Ansprechend auf die Spaltenmaskiersignale CMASK arbeitet jeder der
Multiplexer MUX1–MUX32
im Blockschaltbetrieb so, dass er ausgewählte Ausgänge von seinem Eingang trennt
und dadurch während
des Blockschreibbetriebs die äquivalente
Spaltenmaskierung ermöglicht.
Man nehme beispielsweise an, dass die Blockschreibschaltung 304 im
Blockschreibmodus arbeitet und das Maskiersignal M32 inaktiv hoch ist und den Puffer BUF32
freigibt, der das Farbbit CR32 an den Eingang des Multiplexers MUX32
legt. Bei dieser Ausführungsform
maskiert während
des Blockschreibbetriebs der Multiplexer MUX32 selektiv das Farbbit
CR32 ansprechend auf die Maskensignale CMASK von den jeweiligen
Eingangs-/Ausgangs-Leitungen I/O125, I/O126, I/O127 und I/O128. Auf
diese Weise führt
der Multiplexer MUX32 eine äquivalente
Spaltenmaskierung durch, da das Farbbit CR32 während des Blockschreibmodus
von einzelnen adressierten Speicherzellen maskiert werden kann.
-
Die
Blockschreibschaltung 304 in 2 lässt sich
in jedem Speicherbauelement einsetzen, welche einen breiten inneren
Datenpfad besitzt, beispielsweise in einem eingebauten DRAM oder
einem gehäusten
DRAM, beispielsweise einem SLDRAM. 3 zeigt
eine Anwendung der Blockschreibschaltung 304 in einem eingebauten
DRAM 400, bei dem es sich um eine integrierte Schaltung
handelt, in der eine Logikschaltung 402 und ein SGRAM 404 mit
der Blockschreibschaltung 304 auf einem Halbleitersubstrat 405 ausgebildet
sind. In anderen Worten, die Logikschaltung 402 ist in
das gleiche Halbleitersubstrat 405 "eingebettet", in welchem der SGRAM 404 ausgebildet
ist. Die Fertigung des eingebetteten oder eingebauten DRAM 400 ist
möglich
geworden durch die Vorteile der Ausgestaltung und Fertigung von
integrierten Schaltungen, gemäß denen
sich die Baugrößen von
Transistoren und weiteren Komponenten derartiger integrierter Schaltungen
beträchtlich
verringert haben. Diese Größenverringerungen haben
dementsprechend die Dichte von Transistoren und weiteren Komponenten
erhöht,
die in einem Halbleitersubstrat gegebener Größe untergebracht sind.
-
In
dem eingebauten DRAM 400 kann die Logikschaltung 402 so
ausgebildet sein, dass sie eine spezifische Funktion ausführt, sie
kann aber auch eine Mehrzweckschaltung sein, beispielsweise in Form
eines Mikroprozessors, der eine Vielfalt unterschiedlicher Aufgaben übernimmt.
Die Logikschaltung 402 ist mit externen Anschlüssen 411 gekoppelt, um
mit einer (in 3 nicht gezeigten) externen Schaltung
zu kommunizieren, die mit dem eingebauten DRAM 400 verbunden
ist, und sie bildet auch Adressen-, Daten- und Steuersignale zum
Transferieren von Daten zu dem SGRAM 404 und aus ihm. Der
SGRAM 404 enthält
zwei Speicherbänke
BANK0 und BANK1, von denen jede Bank die Arrays 306–320 enthält und mit
der Blockschreibschaltung 304 über den breiten Datenweg 302 verbunden
ist. Außerdem
enthält
der SGRAM 404 das Maskenregister 326 und das Farbregister 322,
welche die Maskenbits MR1–MR32
bzw. die Farbbits CR1–CR32 speichern
und an die Blockschreibschaltung 304 anlegen. Ein Adressendecoder 406 empfängt Adressensignale
von einem Adressenbus 406 und gibt decodierte Adressensignale
an die Arrays 306–320 und an
die Blockschreibschaltung 304, und eine Schreib/Lese-Schaltung 410 transferiert
Daten zwischen einem Datenbus 412 und der Blockschreibschaltung 304.
Außerdem überträgt die Lese-/Schreib-Schaltung 410 Masken-
und Farbdaten auf dem Datenbus 412 zum Maskenregister 326 und zum
Farbregister 322.
-
Eine
Steuerschaltung 414 empfängt Steuersignale, die an einen
Steuerbus 416 gelegt werden, und sie steuert die Arrays 306–320,
die Blockschreibschaltung 304, die Lese-/Schreib-Schaltung 410 und weitere
Komponenten innerhalb des SGRAM 404 abhängig von diesen Steuersignalen.
Die Steuerschaltung 414 empfängt außerdem die Byte-Maskiersignale
DQM0–3,
ein Spezialfunktionssignal DSF und ein externes Taktsignal CLK,
welches die Steuerschaltung 414 während Datentransfers treibt.
Innerhalb des SGRAM 404 werden sämtliche Operationen auf eine
spezielle Flanke des externen Taktsignals CLK bezogen, typischerweise
die Anstiegsflanke, wie es aus dem Stand der Technik bekannt ist.
-
Die
Steuerschaltung 414 empfängt eine Reihe von Befehlssignalen über den
Steuerbus 416, wobei die Befehlssignale den Betrieb steuern,
der von dem SGRAM 404 ausgeführt wird. Diese Befehlssignale
beinhalten typischerweise ein Chipauswahlsignal CS, ein Schreibfreigabesignal WE, ein Spaltenadressen-Strobe-Signal CAS, ein Reihenadressen-Strobe-Signal RAS. Spezifische Kombinationen dieser
Signale definieren spezielle Datentransferbefehle des SGRAM 404,
beispielsweise AKTIVIEREN; VORAUFLADEN; LESEN und SCHREIBEN, wie
es im Stand der Technik bekannt ist. Gewisse dieser Befehle bringen
im Verein mit dem Spezialfunktionssignal DSF und den Byte-Maskiersignalen
DQM0–3
den SGRAM 404 in dem Blockschreibmodus und maskieren Daten
auf dem Datenbus 412, wie im Folgenden im Einzelnen ausgeführt wird.
Während
der Standardbefehle des Aktivierens und Schreibens (ACTIVE bzw.
WRITE) wird das Spezialfunktionssignal DSF auf inaktiv niedrigem
Zustand gehalten. Wenn das aktive Spezialfunktionssignal DSF übereinstimmend
mit einem Befehl ACTIVE angelegt wird, legt der SGRAM 404 die
in dem Maskenregister 326 gespeicherte Maske an Daten auf
dem Datenbus 412 während
eines nachfolgenden Schreibbefehls. Wenn das Spezialfunktionssignal
DFS übereinstimmend mit
einem angelegten Schreibbefehl aktiv ist, arbeitet in ähnlicher
Weise der SGRAM 404 im Blockschreibmodus so, dass er in
dem Farbregister 322 gespeicherte Farbbits in adressierte
Speicherzellen innerhalb der Arrays 306–320 überträgt. Ansprechend
auf die Byte-Maskiersignale DQM0–3 steuert die Steuerschaltung 414 die
Lese-/Schreib-Schaltung 410 so, dass sie Daten-Bytes maskiert,
wie es oben beschrieben wurde.
-
In
Betrieb legt die Logikschaltung 402 Adressen-, Daten- und
Steuersignale an die betreffenden Busse 408, 412 bzw. 416 und
treibt das externe Taktsignal CRK zum Transferieren von Daten zu
dem SGRAM 404 und aus ihm heraus. Während eines Lesedatentransfers
legt die Logikschaltung 402 den Befehl AC-TIVE an den ASGRAM 404,
einschließlich
einer Reihenadresse und einer Bankadresse auf dem Adressenbus 408.
Ansprechend auf Reihen- und Bankadressen decodiert der Adressendecoder 406 diese
Adressen und aktiviert die zugehörige
Bank der Arrays 306–320 und
die entsprechenden Reihen von Speicherzellen innerhalb dieser Bank.
Die Logikschaltung 402 legt anschließend einen Lesebefehl (READ)
an den SGRAM 404, einschließlich einer Spaltenadresse
und einer Bankadresse auf dem Adressenbus 408. Der Bandadressenteil
des Lesebefehls gibt mehrere Bänke
in dem SGRAM 404 für die Öffnung frei,
und aus ausgewählten
offenen Bänken
werden Daten ausgelesen. Ansprechend auf die Spaltenadresse greift
der Adressendecoder 406 auf entsprechende Speicherzellen
innerhalb der aktivierten Reihe in den entsprechenden Bänken zu.
-
Die
in den betreffenden Speicherzellen gespeicherten Daten werden anschließend über den breiten
Datenweg 302 zu der Lese-/Schreib-Schaltung 410 transferiert,
die ihrerseits die Daten auf den Datenbus 412 gibt, wo
sie von der Logikschaltung 402 gelesen werden. Die Logikschaltung 402 kann außerdem ausgewählte Breitmaskensignale DQM0–3 während eines
Lesezyklus aktivieren, um entsprechende Daten-Bytes zu maskieren,
die typischerweise während
des Lesezyklus auf den Datenbus 412 gegeben werden. Wie
der Fachmann sieht, werden während
eines Lesezyklus die Byte-Maskensignale DQM0–3 typischerweise von der Logikschaltung 402 dazu
benutzt, den Verbleib von Daten auf dem Datenbus 412 zu
verhindern, wenn sich an einen Lesezyklus unmittelbar ein Schreibzyklus
anschließt.
-
Während eines
Schreibzyklus legt die Logikschaltung 402 erneut einen
Befehl ACTIVE an den SGRAM 404, um eine entsprechende Bank
der Arrays 306–320 und
innerhalb dieser Bank eine Reihe zu aktivieren. Nach Anlegen des
Befehls ACTIVE legt die Logikschaltung 402 einen Schreibbefehl
an den SGRAM 404, einschließlich Spalten- und Bankadressen
auf dem Adressenbus 408 und schreibt Daten auf dem Datenbus 412.
Wiederum decodiert der Adressendecoder 406 die Spaltenadresse
und greift auf entsprechende Speicherzellen in der aktivierten Reihe
der entsprechenden Bank zu. Die auf dem Datenbus 410 platzierten
Daten werden dann über
die Lese-/Schreibschaltung 410, die Blockschreibschaltung 304 und über den
breiten internen Datenweg 302 zu adressierten Speicherzellen
innerhalb der Arrays 306 bis 320 transferiert.
Während
eines herkömmlichen
Schreibzyklus steuert die Logikschaltung 402 die Byte-Maskensignale
DQM0–3,
um selektiv Datenbytes zu maskieren, die sich auf dem Datenbus 412 befinden,
wie es oben ausgeführt
wurde. Darüber
hinaus kann die Logikschaltung 402 auch individuelle Datenbits
auf dem Datenbus 412 mit Hilfe der in dem Maskenregister 326 gespeicherten
Maskenbits MR1–MR32
maskieren.
-
Wie
der Fachmann sieht, legt die Logikschaltung 402 spezielle
Ladebefehle an den SGRAM 404, um die Maskenbits MR1–MR32 in
das Maskenregister 326 zu laden, und sie muss die gewünschten Maskenbits
laden, bevor Schreibdaten auf dem Datenbus 402 maskiert
werden. Um auf dem Datenbus 402 platzierte Daten unter
Verwendung der in dem Maskenregister 326 gespeicherten
Maskenbits MR1–MR32
maskieren zu können,
muss die Logikschaltung 402 das Spezialfunktionssignal
DSF in den aktiven Zustand bringen, übereinstimmend mit dem Anlegen
des Befehlt ACTIVE, was typischerweise bezeichnet wird als Befehl
ACTIVE mit WPB. Die Blockschreibschaltung 304 maskiert
sämtliche
auf dem Datenbus 412 befindlichen Schreibdaten entsprechend
den Maskenbits MR1–MR32
nach Anlegen des Befehls ACTIVE mit WPB, und solange, bis ein nachfolgender
Befehl ACTIVE angelegt wird. Die Logikschaltung 402 steuert
die Byte-Maskensignale DQM0–3
und legt Befehle ACTIVE mit WBP zum Maskieren von auf dem Datenbus 412 platzierten Schreibdaten
je nach Wunsch an.
-
Um
den SGRAM 404 in den Blockschreibbetrieb zu bringen, legt
die Logikschaltung 402 zunächst einen Befehl ACTIVE an,
um eine Bank und innerhalb dieser Bank eine adressierte Reihe zu
aktivieren. Nach Anlegen des Befehls ACTIVE legt die Logikschaltung 402 einen
Blockschreibbefehl an, indem sie das Spezialfunktionssignal DSF
aktiv macht, übereinstimmend
mit dem Anlegen eines Befehls WRITE an den SGRAM 404. Es
können
auch Spaltenmaskierdaten übereinstimmend
mit dem Blockschreibbefehl an den Datenbus 412 gegeben
werden, wodurch die Blockschreibschaltung 403 veranlasst
wird, in der oben beschriebenen Weise eine Spaltenmaskierung vorzunehmen.
Ansprechend auf das aktive Spezialfunktionssignal DSF, welches mit dem
Schreibbefehl WRITE übereinstimmend
aktiv ist, platziert die Steuerschaltung 414 die Blockschreibschaltung
in den Blockschreibbetrieb. Der Schreibbefehl WRITE innerhalb des
Blockschreibbefehls enthält
wiederum Spalten- und Bankadressen auf dem Adressenbus 408.
Der Adressendecoder 406 decodiert Spalten- und Bankadressen
und aktiviert entsprechende Blöcke
der Speicherzellen innerhalb der entsprechenden Bank. Die Blockschreibschaltung 304 arbeitet
in der oben beschriebenen Weise, indem sie die Farbbits CR1–CR32, die
in dem Farbregister 322 gespeichert sind, in die adressierten Blöcke von
Speicherzellen innerhalb der Arrays 306 bis 320 transferiert.
Wiederum muss die Logikschaltung 402 spezielle Ladebefehle
an den SGRAM 404 geben, um die gewünschten Farbbits CR1–CR32 zu laden,
bevor der SGRAM 404 in den Blockschreibbetrieb gelangt.
Während
des Blockschreibbetriebs kann die Logikschaltung 403 wiederum
die Byte-Maskensignale DQM0–3
und die Maskenbits MR1–MR32
im Maskenre gister 326 dazu verwenden, selektiv die Farbbits
CR1–CR32
in dem Farbregister 322 zu maskieren, wie es oben erläutert wurde.
-
4 ist
ein Blockdiagramm eines Computer- oder Rechnersystems 500,
das den eingebauten DRAM 400 aus 3 beinhaltet.
Das Computersystem 500 enthält eine Computerschaltung 502 zum Durchführen verschiedener
Berechnungsfunktionen, beispielsweise zum Ausführen spezifischer Software, um
spezielle Berechnungen oder Tasks auszuführen. Innerhalb des Computersystems 500 ist
der dort eingebaute DRAM 400 mit seiner Logikschaltung 402 typischerweise
so ausgebildet, dass spezielle Funktionen ausgeführt werden, beispielsweise
hoch auflösende
Grafiken oder Hochgeschwindigkeits-Kommunikationsvorgänge. Das
Computersystem 500 enthält darüber hinaus
ein oder mehrere Eingabegeräte 504, beispielsweise
eine Tastatur oder eine Maus, gekoppelt mit der Computerschaltung 502,
damit eine Bedienungsperson eine Schnittstelle mit dem Computer 400 hat.
Typischerweise enthält
das Computersystem 500 ein oder mehrere Ausgabegeräte 506,
die an die Computerschaltung 502 angeschlossen sind, wobei
es sich typischerweise um einen Drucker oder ein Videoterminal handelt.
Ein oder mehrere Datenspeicher 508 sind ebenfalls mit der
Computerschaltung 502 gekoppelt, um Daten zu speichern
oder Daten aus einem (in 5 nicht gezeigt)
externen Speichermedium zu holen. Beispiele für typische Datenspeicher 508 sind
Festplatten oder Floppy-Discs, Bandkassetten und Kompaktplatten-Festspeicher (CD-ROMs).
-
Es
versteht sich, dass zwar verschiedene Ausführungsformen und Vorteile der
Erfindung oben erläutert
wurden, dass die obige Offenbarung aber nur der Anschauung dient,
jedoch Änderungen
im Einzelnen möglich
sind, wobei dennoch im Rahmen der umfangreichen Prinzipien der Erfindung
verblieben wird. Die vorliegende Erfindung wird daher nur durch
die beigefügten
Ansprüche
beschränkt.