DE68910391T2 - Verfahren zum Speicherdatenzugriff. - Google Patents
Verfahren zum Speicherdatenzugriff.Info
- Publication number
- DE68910391T2 DE68910391T2 DE89306129T DE68910391T DE68910391T2 DE 68910391 T2 DE68910391 T2 DE 68910391T2 DE 89306129 T DE89306129 T DE 89306129T DE 68910391 T DE68910391 T DE 68910391T DE 68910391 T2 DE68910391 T2 DE 68910391T2
- Authority
- DE
- Germany
- Prior art keywords
- row
- data
- signal
- memory
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims abstract description 25
- 230000015654 memory Effects 0.000 claims abstract description 74
- 230000004044 response Effects 0.000 claims abstract description 9
- 101100237844 Mus musculus Mmp19 gene Proteins 0.000 description 16
- 238000012360 testing method Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 238000012546 transfer Methods 0.000 description 7
- 230000036316 preload Effects 0.000 description 5
- 230000000630 rising effect Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 102100031048 Coiled-coil domain-containing protein 6 Human genes 0.000 description 3
- 101000777370 Homo sapiens Coiled-coil domain-containing protein 6 Proteins 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 101000898746 Streptomyces clavuligerus Clavaminate synthase 1 Proteins 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000000050 ionisation spectroscopy Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 102100030310 5,6-dihydroxyindole-2-carboxylic acid oxidase Human genes 0.000 description 1
- 101100086437 Drosophila melanogaster Rap1 gene Proteins 0.000 description 1
- 101100247319 Drosophila melanogaster Ras64B gene Proteins 0.000 description 1
- 101100005249 Escherichia coli (strain K12) ygcB gene Proteins 0.000 description 1
- 101000773083 Homo sapiens 5,6-dihydroxyindole-2-carboxylic acid oxidase Proteins 0.000 description 1
- 101000603223 Homo sapiens Nischarin Proteins 0.000 description 1
- 101100247326 Mucor circinelloides f. lusitanicus RAS3 gene Proteins 0.000 description 1
- 102100038995 Nischarin Human genes 0.000 description 1
- 101150076031 RAS1 gene Proteins 0.000 description 1
- 101150019218 RAS2 gene Proteins 0.000 description 1
- 101150045048 Ras85D gene Proteins 0.000 description 1
- 101000761220 Streptomyces clavuligerus Clavaminate synthase 2 Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 101150055191 cas3 gene Proteins 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000002129 infrared reflectance spectroscopy Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1018—Serial bit line access mode, e.g. using bit line address shift registers, bit line address counters, bit line burst counters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0215—Addressing or allocation; Relocation with look ahead addressing means
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4096—Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Dram (AREA)
- Debugging And Monitoring (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
- Die vorliegende Erfindung betrifft den Zugriff auf Daten in einem Speicher und insbesondere die Minimierung von Speicherzugriffs zeit auf einen Speicher mit gemultiplexten Adreßeingangssignalen.
- Bei Datenverarbeitungssystemen mit gemultiplexten Adreßeingangssignalspeichervorrichtungen, wie beispielsweise dynamische Schreib-Lese-Speicher (DRAMs), beeinträchtigt die zum Zugriff auf die Daten (d.h. Lesen von Daten aus dem Speicher oder Speichern von Daten darin) an vorbestimmten Stellen erforderliche Zeit die Leistung des gesamten Systems. Aufgrund dessen, daß pro Sekunde viele Datenadressen benötigt werden, kann eine Verzögerung beim Zugriff auf eine Speicherstelle oder eine Gruppe von Speicherstellen über den Verlauf längerer Zeitperioden wesentlich sein.
- DRAMs sind häufig logisch in getrennte Bereiche mit Zeilen und Spalten in den Bereichen strukturiert. Es hat sich herausgestellt, daß eine derartige Organisation eine große Hilfe bei Datenzugriffsverfahren darstellt, da unter Anwendung von Direktzugriffsverfahren schneller auf Kreuzungspunkte der Elemente zugegriffen werden kann als auf einzelne Speicherelemente unter Verwendung von sequentiellen oder seriellen Zugriffsverfahren. Im Rahmen dieser Konstruktion und Organisation sind jedoch zahlreiche Systeme zur Minimierung der Zugriffszeit entwickelt worden.
- Da DRAMs dynamische Vorrichtungen sind, ist ein vorheriges Spannungsaufladen erforderlich, um zur Gewährleistung einer korrekten Funktion bestimmter interner Schaltungsknoten vorbestimmte Schwellenwerte zu erreichen oder zu übersteigen. Datenunversehrtheit ist lediglich gewährleistet, wenn ein vorheriges Aufladen erfolgt.
- Das Verfahren des vorherigen Aufladens erfordert leider viel Zeit - in der Ordnung von 50 Nanosekunden bei einem 100-Nanosekunden-DRAM. Das heißt, das ungefähr 50% der Zugriffszeit für das Voraufladen verwendet wird.
- Üblicherweise erfolgt der Datenzugriff auf rein beliebiger Basis, so daß das Voraufladen für jedes Datenelement erfolgt, ungeachtet dessen, wo es sich befindet und ungeachtet der Stelle der Daten, auf die früher zugegriffen wurde. Da das Voraufladen ungefähr die Hälfte der Zugriffszeit benötigt, liegt es auf der Hand, daß durch Herabsetzen der Voraufladeanforderung die Zugriffs zeit bedeutend minimiert werden kann.
- Es hat sich herausgestellt, daß beim gruppenweisen Datenzugriff bei normalen Datenverarbeitungsanwendungsgebieten in mehr als 50% der Fälle zwei Datenspeicherstellen, auf die direkt hintereinander zugegriffen werden soll, bei einem DRK in der gleichen Zeile, doch in unterschiedlichen Spalten angeordnet sind. Diese Statistik ist besonders wichtig zur Durchführung von Programmen, bei denen Befehle in sequentiellen Speicherstellen gespeichert sind.
- Dann befindet sich in über 75% der Källe ein Datenelement (Programmbefehl) in derselben Zeile des Speichers wie das Datenelement, auf das zuvor zugegriffen wurde. Selbstverständlich kann nicht mit Gewißheit vorhergesagt werden, ob sich eine Speicherstelle, auf die zugegriffen werden soll, in der Nähe der Speicherstelle befindet, auf die zuvor zugegriffen worden ist. Da die Statistiken jedoch häufig zugunsten einer solchen engen Nachbarschaft der Daten ausfallen, wäre es vorteilhaft, dieses Phänomen zu nutzen.
- Ferner wäre es vorteilhaft, das vorherige Aufladen, wenn möglich, zu vermeiden.
- Außerdem wäre es vorteilhaft, ein System zum effizienteren Zugriff auf Daten zu schaffen, die sich in der Nähe von Daten befinden, auf die zuvor zugegriffen wurde.
- Zudem wäre es vorteilhaft, die Speicherstelle der Daten, auf die gegenwärtig zugegriffen wird, zu aktualisieren, so daß sie erforderlichenfalls mit den Daten, auf die zuvor zugegriffen wurde, verglichen werden können.
- Gemäß der vorliegenden Erfindung ist ein Verfahren zur Minimierung der Speicherzugriffszeit auf einen Speicher mit gemultiplexten Adreßeingangssignalen zwischen Daten vorgesehen, die in Speicherstellen in dem Speicher in der gleichen Zeile, doch in verschiedenen Spalten gespeichert sind. Zunächst wird auf Daten an einer Speicherstelle an einer vorbestimmten Spalten- und Zeilenspeicherstelle zugegriffen. Dann wird die vorbestimmte Zeilenspeicherstelle der ersten Daten aufgezeichnet. Dann wird die Zeilenspeicherstelle der zweiten Daten aufgezeichnet. Dann werden die Zeilenspeicherstellen der ersten und zweiten Daten verglichen. Bei Identität der Zeilenspeicherstelle der ersten und zweiten Daten wird ein Zeilenvergleichssignal erzeugt. Auf das Zeilenvergleichssignal hin wird lediglich die Spaltenadresse verändert.
- Ein umfassendes Verständnis der vorliegenden Erfindung kann unter Bezugnahme auf die beigefügten Zeichnungen im Zusammenhang mit deren ausführlicher Beschreibung erlangt werden. Es zeigen:
- FIGUR 1 eine schematische Darstellung eines elektronischen 8-Bit-Zählers mit Übertrageingang;
- FIGUR 2 eine vereinfachte schematische Darstellung einer Schaltung mit extern erzeugtem Zwangsübertrageingang;
- FIGUREN 3-5 schematische Darstellungen eines in zwei Abschnitte getrennten 8-Bit-Zählers;
- FIGUREN 6-10 schematische Darstellungen eines elektronischen 11-Bit-Zählers mit Übertrageingang;
- FIGUREN 11a-11b zusammengenommen ein schematisiertes Schaltbild einer zur Ausführung des erfindungsgemäßen Verfahrens verwendeten Vorrichtung;
- FIGUR 12 ein die Wechselwirkung der Signale während der Speicherzugriffsvorgänge darstellendes Zeitdiagramm;
- FIGUR 13 ein vereinfachtes schematisches Blockdiagramm, das den Zählertestmechanismus im einzelnen zeigt, und
- FIGUR 14 ein schematisches Logikdiagramm der für den Burst-Modus-Betrieb verwendeten Komparatorlogik.
- FIGUR 1 ist eine schematische Darstellung eines elektronischen 8-Bit-Zählers mit Übertrageingang, wie dies für bei Datenverarbeitungssystemen verwendete Zähler üblich ist. Die acht Bits sind mit 0-7 bezeichnet und in dieser FIGUR alle auf 0 gesetzt. Das niederwertigste Bit ist im äußersten linken Teil der FIGUR gezeigt und das höchstwerfige im am weitesten rechts gelegenen Teil.
- In FIGUR 2 ist eine vereinfachte isolierte Logikvorrichtung (ein Multiplexer) 10 dargestellt, der für Befehlszwecke hilfreich ist und an den ein voreingestellter Bitpegel von 1 und ein Eingangsbit Qi angelegt sind, wobei i die Bitposition des (nicht dargestellten) Zählers darstellt. Ein Testbit TST, was im folgenden ausführlicher erklärt wird, wird ebenfalls in den Wähleingang des Multiplexers 10 eingegeben. Wenn TST high ist, wird Eingang 1 für den Port S1 gewählt. Ist TST jedoch low, ist der Zustand des Bits i als Eingang für den Multiplexer 10 gewählt. Das Ausgangssignal der Vorrichtung 10 wird als Di+1 dargestellt und repräsentiert das Bit, das in die Speicherstelle des nächstwertigen Bits geladen wird. Es gibt den Status der TST-Leitung wieder. Wenn das TST-Signal high ist, wird das i-te Bit in die Vorrichtung 10 eingegeben und als i+1stes Bit im High- Zustand ausgegeben. Beispielsweise führt das Eingeben von Bit 3 in die Vorrichtung dann, wenn das TST- Bit high ist, zu einem erzwungenen Übertrag zu Bit 4 des Zählers. Mit anderen Worten, wenn TST high ist, ist das Ausgangssignal D high; wenn TST low ist, ist das Ausgangssignal D, abhängig vom Wert von Q, entweder high oder low. Daher führt, wenn TST low ist, das Bit 3, wenn es high ist, zum Übertrag zu Bit 4, das high ist. Gleichermaßen ist der Übertrag zu Bit 4 low, wenn TST low ist und Bit 3 low ist.
- In FIGUR 3 ist der 8-Bit-Zähler als in einen Low- Abschnitt und einen High-Abschnitt getrennt dargestellt, von denen jeder 4 Bits aufweist. Wenn eine Taktoperation einsetzt, wird der Wert des Low-Abschnitts und des High-Abschnitts inkrementiert, immer ein Bit auf einmal, wobei, wie in dieser FIGUR gezeigt, mit dem niederwertigsten angefangen wird. Wie im folgenden beschrieben, werden die niederwertigsten Bits in dem Low- sowie in dein High-Abschnitt im wesentlichen simultan getaktet.
- Wie FIGUR 4 zeigt, erreichen die vier Bits des Low- Abschnitts und die vier Bits des High-Abschnitts des Zählers schließlich einen Maximal- oder Höchstwert, wobei dieser gänzlich (logische) Einsen aufweist. Dieser Wert der 4-Bit-Abschnitte wird nach 15 Taktzyklen erreicht. An diesem Punkt sind alle Bits 0-7 auf korrektes Kippen und alle Bits in dem Low-Abschnitt auf korrekten Übertragsbetrieb getestet worden.
- Gleichermaßen sind alle vier Bits 4-7 des High-Abschnitts des Zählers auf korrekten Übertragbetrieb getestet worden.
- Darüber hinaus ist in Bit 4, das niederwertigste Bit des High-Abschnitts, ein TST-Bit eingeführt worden, was einen Übertrag vom niederwertigsten Bit (Bit 3) des Low-Abschnitts des Zählers simuliert.
- FIGUR 5 zeigt den Zustand beider Abschnitte des Zählers, nachdem der Zähler ein weiteres Mal getaktet worden ist. Es sei darauf hingewiesen, daß alle Bits 0-3 des Low-Abschnitts und alle Bits 4-7 des High- Abschnitts auf 0 gesetzt sind. Dies liegt an der Sperrung des TST-Bits, wodurch der Low-Abschnitt auf natürliche Weise zu dem High-Abschnitt übertragen werden kann (d.h. nicht gezwungenermaßen), was dazu führt, daß Bit 4 zu 0 kippt und wodurch die folgenden Bits 5,6 und 8 ebenfalls übertragen werden.
- FIGUR 6 zeigt einen 11-Bit-Zähler. Zunächst sind alle Bits des Zählers auf 0 gesetzt.
- In FIGUR 7 ist der 11-Bit-Zähler in einen 6-Bit-Low- Abschnitt und einen 5-Bit-High-Abschnitt getrennt. Nach 31 Taktzyklen sind außer dem Bit 5 des Low-Abschnitts alle zu dem Wert 1 gekippt worden.
- In FIGUR 8 ist der Zähler ein weiteres Mal getaktet worden, was dazu führt, daß bis auf das Bit 5 alle auf 0 gesetzt sind. Sowohl der Low- als auch der High-Abschnitt sind ein weiteres Mal getaktet worden, was zu dem in FIGUR 8 gezeigten Wert führt.
- In FIGUR 9 sind sowohl der Low- als auch der High- Abschnitt des Zählers nach weiteren 31 Taktzyklen dargestellt. Zu diesem Zeitpunkt sind alle elf Bits auf 1 gesetzt. Das Testbit ist vom Beginn (FIGUR 6) bis zum Ende (FIGUR 9) des Betriebs des Zählers aktiv.
- Wie FIGUR 10 zeigt, wird das Testbit TST gesperrt, nachdem alle elf Bits auf den Maximal- oder Höchstwert gesetzt sind. Zu diesem Zeitpunkt wird der Zähler einmal mehr inkrementiert, was dazu führt, daß das höchstwertige Bit des Low-Abschnitts zu dem niederwertigsten Bit des High-Abschnitts übertragen wird. Der daraus resultierende Wert des Zählers ist nunmehr 0 (alle Bits sind auf 0 gesetzt). Dieses Verfahren gewährleistet, daß der Übertragvorgang vom Low-Abschnitt zum High-Abschnitt korrekt funktioniert und insbesondere, daß Bit 5 korrekt zu Bit 6 übertragen wird.
- Somit ist zu erkennen, daß alle elf Bits in insgesamt 65 Stufen oder Taktzyklen getestet werden. Dieser Test des Zählers ist effektiv und vollständig und enthält pro Bit jeweils den Vorgang des Kippens von 0 auf 1 und von 1 auf 0 sowie die Übertragvorgänge von allen niederwertigsten Bits zu allen entsprechenden höchstwertigen Bits. Daher wird der gesamte Zähler während der 65 Taktzyklen getestet und nicht während der 2²² Taktschritte, die üblicherweise für diesen Vorgang erforderlich waren.
- Es ist ersichtlich, daß ein Zähler mit einer beliebigen Anzahl an Bits vollständig getestet werden kann, wenn zwei Abschnitte oder mehr auf die vorstehend beschriebene Weise behandelt werden. Falls der Zähler jedoch relativ klein ist, wird es uneffizient, einen Zähler in zu viele Abschnitte zu trennen. Wenn ein Abschnitt n und der andere n+1 Bits aufweist, sind im allgemeinen 2(2n-1) + 3 Taktzyklen zum vollständigen Testen des Zählers erforderlich. Es ist am effizientesten, den Zähler für die ungeradzahligen Bits in zwei Abschnitte zu trennen, die sich in der Größe um lediglich ein Bit unterscheiden. Im Falle gleichgroßer Abschnitte von jeweils n Bit beträgt die Anzahl der zum vollständigen Testen eines Zählers mittels des vorstehend erwähnten erfinderischen Verfahrens erforderlichen Taktzyklen jedoch 2n.
- FIGUR 11, die aus praktischen Gründen als FIGUREN 11a-11b dargestellt ist, ist ein schematisiertes Schaltungsdiagramm, das eine Vorrichtung zur Ausführung der vorliegenden Erfindung darstellt. FIGUR 11 zeigt eine Steuereinrichtung für einen dynamischen Direktzugriffsspeicher (DRAM), die den Adressenweg zwischen einem nicht dargestellten Prozessor und einem nicht dargestellten DRAM-Array steuert. Die Steuereinrichtung verwendet einen 11-Bit-Zeilen-Zwischenspeicher und einen 11-Bit-Spalten-Zwischenspeicher und -Zähler 108 zum Multiplexen der Zeilen- bzw. der Spaltenadressen auf eine DRAM-Größe bis zu 4M.
- Ein 11-Bit-Adreßbus 100 trägt die niedrigere Hälfte der Adreßinformation und ein 11-Bit-Adreßbus 102 die höhere Hälfte der Adreßinformation. An eine Zeilen- Zwischenspeichervorrichtung 106 und an eine Spalten- Zwischenspeicher- und -Zählervorrichtung 108 wird ein Adreßleitungsfreigabe-(ALE)-Signal 104 angelegt. Das Bezugszeichen 110 bezeichnet eine automatische/externe Zeitsteuerungsschaltung.
- Über eine Auffrischleitung ist eine Einschalt-/Vorauflade- und Strobe-Logikvorrichtung 112 mit dem Zeilen-Auffrisch-Zähler 114 verbunden. Mit dem Zeilen-Auffrisch-Zähler 114 ist ein Spalten-Auffrisch- Zähler 115 verbunden. Ein Adreß-Multiplexer 118 empfängt Eingangssignale von dem Zeilen-Zwischenspeicher 106, dem Spalten-Zwischenspeicher und -Zähler 108, dem Zeilen-Auffrisch-Zähler 114 und dem Spalten-Auffrisch-Zähler 116. Mit dem Ausgang des Adreß- Multiplexers 118 ist ein Dreizustandspuffer 120 verbunden, an dem eine Output-Enable-(*OE)-Leitung (Ausgangsfreigabe) angebracht ist. Das Ausgangssignal des Dreizustandspuffers 120 wird an den Adreßbus 122 angelegt, der 11 Bits aufweist. Der Bus 122 ist mit der Adresse des oder der nicht dargestellten DRAM(s) verbunden, der bzw. die mit dieser Steuereinrichtung verbunden sind.
- Bei Bezugszeichen 124 ist eine Zeilenadreßstrobesignal-(RAS)- und Spaltenadreßstrobesignal-(CAS)-Dekodierlogik vorgesehen. Das Ausgangssignal dieser Dekodierlogik 124 wird an *RAS- und *CAS-Signale angelegt. Es gibt vier RAS- und CAS-Signale, und zwar eines für jeden der vier Speicherbereiche in dem bevorzugten Ausführungsbeispiel. Für DRAMs mit mehr Bereichen wären zusätzliche Signale erforderlich; bei weniger Bereichen würden weniger benötigt; und auch nur ein Bereich ist möglich. Mit dem Zeilenzwischenspeicher 106 ist ein Zeilenregister 107 verbunden. Das Ausgangssignal des Zeilenregisters 107 wird an einen Komparator 107a angelegt.
- Der Zeilenzwischenspeicher 106 ist ein 11-Bit-Zwischenspeicher. Er hält die Zeilenadresse zu dem DRAM. Der Zwischenspeicher 106 wird transparent, wenn das Adreß-Halte-Freigabe-(ALE)-Signal high ist, wobei die Adresse bei der zu low führenden Flanke von ALE zwischengespeichert wird.
- Das Zeilenregister 107 ist ebenfalls ein 11-Bit-Register. Es hält die Zeilenadresse des vorherigen Zugriffs auf die DRAMs. Am Ende jedes Zugriffs (im Normal- und Bereich-Verschachtelungs-Zugriffsmodus) oder am Ende eines Cache-Zugriffes, wenn auf eine neue zeilenadresse zugegriffen werden soll, wird das Register 107 von der zu low führenden Flanke des RASI-Eingangssignals getaktet.
- Der Zeilenkomparator 107a ist ein 11-Bit-Komparator. Er vergleicht die Zeilenadresse des gegenwärtigen Zugriffs (Inhalt des Zeilenzwischenspeichers 106) mit der des vorherigen Zugriffs (Inhalt des Zeilenregisters 107) und erzeugt ein Row-Compare-(RC)-Signal (Zeilenvergleich). Die Row-Compare-Signale und die Bank-Compare-Signale werden zur Erzeugung eines *Cache-Hit-(*CH)-Signals UND-verknüpft. Das * CH-Signal ist low, wenn die aktuellen Zeilen- und Bereichsadressen (Inhalt des Zeilenzwischenspeichers 106 und des Bereichszwischenspeichers 126) dieselben sind wie die vorhergehenden Zeilen- bzw. Bereichsadressen, und es ist high, wenn die aktuellen Zeilen- und/oder Bereichsadressen nicht mit den vorherigen Zeilen- und/oder Bereichsadressen übereinstimmen. Es sei angemerkt, daß bei Systemen mit DRAM- Konfigurationen mit nur einem Bereich lediglich die Zeilen- und Spaltenparameter zur Identifizierung der Speicherstellen der Daten in dem Speicher erforderlich sind. Da keine Notwendigkeit zur Berücksichtigung mehrerer Bereiche besteht, ist in solchen Fällen daher zur Erzeugung eines *CH-Signales keine Zeilen-/Bereichs-UND-Verknüpfung erforderlich.
- Während des Cache-Modus verwendet der externe Zeitsteuerungsgenerator 110 das *CH-Signal entweder dazu, das RASI-Eingangssignal im aktivierten Zustand (high) zu halten, wenn nacheinander auf dieselbe Zeile in demselben Bereich zugegriffen wird (und somit, um Voraufladezeit für das aktuelle RASi zu sparen), oder um das RASI-Eingangssignal zu deaktivieren, wenn nacheinander auf unterschiedliche Zeilen und/oder Bereiche zugegriffen wird, wodurch der Cache-Zugriff beendet und ein Cache-Fehler angezeigt wird.
- Der Spalten-Zwischenspeicher und -Zähler 108 ist ein ladbarer 11-Bit-Zähler. Er hält die Spaltenadresse zu den DRAMs. Der Zähler wird transparent, wenn ALE high ist, wobei die Adresse bei der zu low führenden Flanke von ALE geladen ist.
- Im Burst-/Block-Zugriffsmodus wird der Spalten-Zwischenspeicher und -Zähler 108 um die zu low führende Flanke des Column-Clock (CC) inkrementiert, wodurch aufeinanderfolgende Speicheradressen erzeugt werden.
- Der Bereichszwischenspeicher 126 ist ein 2-Bit-Zwischenspeicher. Er hält die Bereichsadresse zu den DRAMs. Der Zwischenspeicher 126 wird transparent, wenn ALE high und die Adresse bei der zu low führenden Flanke des ALE-Signals zwischengespeichert wird.
- Das Bereichsregister 128 ist ebenfalls ein 2-Bit- Register. Es hält die Bereichsadresse des vorherigen Zugriffs zu den DRAMs. Am Ende jedes Zugriffs im Normal- und Bereichs-Verschachtelungs-Zugriffs-Modus wird das Register 128 von der zu low führenden Flanke des RASI-Signals getaktet.
- Der Bereichskomparator 130 ist ein 2-Bit-Komparator. Er vergleicht die Bereichsadresse des gegenwärtigen Zugriffs (Inhalt des Bereichszwischenspeichers 126) mit der des vorherigen Zugriffs (Inhalt des Bereichsregisters 128) und erzeugt ein Bank-Compare- (*BC)-Signal. Das *BC-Signal ist low, wenn die gegenwärtige Bereichsadresse dieselbe ist wie die vorherige Bereichsadresse, und es ist high, wenn die gegenwärtige Bereichsadresse nicht mit der vorherigen Bereichsadresse übereinstimmt.
- Das *BC-Signal wird von dem externen Zeitsteuerungsgenerator 110 während der Bereichsverschachtelung entweder verwendet, um das RASI-Eingangssignal sofort zu aktivieren, wenn zwei hintereinander erfolgende Zugriffe auf zwei unterschiedliche Bereiche erfolgen, oder um das RASI-Eingangssignal zu verzögern, wenn zwei aufeinanderfolgende Zugriffe auf denselben Bereich erfolgen.
- Das Burst-Zähl-Register 132 ist ein 11-Bit-Register. Es wird über den Adreßbus (A&sub1;&sub0;&submin;&sub0;) 100 von der zu low führenden Flanke des Registerladesignals über die Registerladelogik geladen. Nach dem Einschalten wird dieses Register 132 im Rücksetzmodus vollständig mit len (für eine Maximal-Burst-Zählung) voraufgeladen.
- Das Maskenregister 134 ist ein 11-Bit-Register. Es wird über den Adreßbus (A&sub1;&sub0;&submin;&sub0;) 100 von der zu low führenden Flanke des Registerladesignals über die Registerladelogik geladen. Nach dem Einschalten wird dieses Register 134 im Rücksetzmodus vollständig mit 1en voraufgeladen (damit alle Bits am Vergleich teilnehmen).
- Die Spaltenkomparatorlogik 136 vergleicht den Inhalt des Spalten-Zwischenspeichers und -Zählers 108 mit dem des Burst-Zähl-Registers, das den Endstand des Burts-Zählwertes enthält. Der Inhalt des Maskenregisters 134 bestimmt, welche der elf Bits des Spalten- Zwischenspeichers und -Zählers 108 und des Burst- Zähl-Registers 132 an dem Vergleich teilnehmen.
- Das Konfigurationsregister 138 ist ein 11-Bit-Register. Es wird über den Adreßbus (A&sub1;&sub0;&submin;&sub0;) 100 von der Anstiegsflanke des Registerlade-(RL)-Signals über die Registerladelogik geladen. Das Konfigurationsregister 138 ist zum Wählen bestimmter Optionen, einschließlich der TST-Option, wie nachfolgend beschrieben, programmiert.
- TST&sub1;- und TST&sub0;-Bits werden zu Testzwecken verwendet. Wenn eines der Bits auf (1) gesetzt ist, lädt die aktive Flanke RLs lediglich das Konfigurationsregister 138. Diese beiden Bits werden auch zum Testen des 24-Bit-Auffrisch-Zählers verwendet. Jeder 11- Bit-Zeilen- und Spalten-Zähler ist in zwei Zähler unterteilt, einen mit sechs Bits und einen mit fünf Bits, wie vorstehend in der allgemeinen Beschreibung unter Bezugnahme auf die FIGUREN 6-10 erläutert.
- Wenn TST&sub1; auf (1) gesetzt ist, wird der Übertrag zum niederwertigsten Bit des 6-Bit-Spalten-Zählers und dem niederwertigsten Bit des 2-Bit-Zählers erzwungenermaßen high. Wenn TST&sub1; auf (0) rückgesetzt ist, kommt der Übertrag zu dem niederwertigsten Bit des 6-Bit-Spalten-Zählers vom höchstwertigen Bit des 5- Bit-Zeilenzählers und der Übertrag zum niederwertigsten Bit des 2-Bit-Zählers kommt voir höchstwertigen Bit des 5-Bit-Spalten-Zählers. Wenn TST&sub0; auf (1) gesetzt ist, ist der Übertrag zum niederwertigsten Bit der 5-Bit-Zeilen- und -Spalten-Zähler erzwungenermaßen high. Wenn TST&sub0; auf (0) rückgesetzt ist, kommt der Übertrag zu dem niederwertigsten Bit der 5-Bit-Zeilen- und -Spalten-Zähler von dem höchstwertigen Bit der jeweiligen 6-Bit-Zähler. Beide Bits (TST1,0) werden nach dem Einschalten im Rücksetzmodus auf (0) rückgesetzt.
- Die mit dem Bezugszeichen 140 belegte Registerladelogik lädt das Burst-Zähl-Register 132, das Maskenregister 134 und das Konfigurationsregister 138 über den Adreßbus 100. Die Rücksetz-Flipflops 144 und Kipp-Flipflops 142 bestimmen, welches Register geladen wird, wie im folgenden beschrieben.
- Wenn das Register-Load-(RL)-Signal auf low geht, wird das gewählte Register transparent, wobei Daten von dem Adreßbus (A&sub1;&sub0;&submin;&sub0;) angenommen werden und der Ausgang der Vergleichslogik gesperrt ist. Die Daten werden bei der Anstiegsflanke von RL in die Register zwischengespeichert und der Ausgang der Vergleichslogik wird freigegeben, wenn RL high ist.
- Der erste Rücksetzvorgang nach dem Einschalten wird automatisch von der Einschalt-Rücksetzlogik durchgeführt, die den Auffrischzähler 114, 116 löscht, den Rücksetz-Flipflop 144 und den Kipp-Flipflop 142 löscht und das Burst-Zähl-Register 132, das Maskenregister 134 und das Konfigurationsregister 138 vorlädt. Diese Vorgänge werden ebenfalls gleichzeitig bei der inaktiven Flanke von RASI durchgeführt, während die Mode-Control-Leitungen MC1,0 im Rücksetzmodus gehalten werden.
- Als nächstes kann das Konfigurationsregister 138 über den Adreßbus A&sub1;&sub0;&submin;&sub0; 100 von der aktiven (Anstiegs)-Flanke von RL geladen werden. Die nächste aktive Flanke RLs lädt das Maskenregister 134 ebenfalls über den Adreßbus A&sub1;&sub0;&submin;&sub0; 100. Die folgende aktive Flanke RLs lädt das Burst-Zähl-Register 132 ebenfalls über den Adreßbus A&sub1;&sub0;&submin;&sub0; 100. Jegliche weitere Aktivierung der RL-Signale lädt das Maskenregister 134 und das Burst-Zähl-Register 132 erneut auch über den Adreßbus A&sub1;&sub0;&submin;&sub0; 100. Jegliche weitere Aktivierung des RL-Signals lädt das Maskenregister 134 und das Burst-Zähl-Register 132 erneut einzeln in dieser Reihenfolge.
- Der Zeilen-Auffrisch-Zähler 114 und der Spalten-Auffrisch-Zähler 116 sind jeweils für elf Bits vorgesehen und der Bereichs-Auffrisch-Zähler 146 für zwei Bits. Alle drei Zähler sind synchron. Die Zähler 114, 116, 146 können gelöscht werden, indem sie synchron getaktet werden, während ihre "Lösch"-Eingänge aktiv gehalten werden. Die Größe der Zeilen- und Spalten-Auffrisch-Zähler 114, 116 wird durch die Wahl des geeigneten Zeilenzählerausgangs bestimmt, der auf den niederwertigen Eingang des Spaltenzählers gehen soll. Die Wahl wird von einem der DRAM-Größen- Dekodierausgänge mit Hilfe eines Multiplexers vorgenommen.
- Der Adreßmultiplexer 118 ist ein 11-Bit-Multiplexer mit 4 Eingängen. Er wählt eine der vier 11-Bit- Adressen als die Adresse zu den DRAMs aus. Die vier 11-Bit-Adreßbusse kommen von dem Ausgang des Zeilen- Zwischenspeichers 106, dem Ausgang des Spalten-Zwischenspeichers und -Zählers 108, dem Ausgang des Zeilen-Auffrisch-Zählers 114 und dem Ausgang des Spalten-Auffrisch-Zählers 116 her. Die Wahl einer der vier Adressen wird durch eine Multiplexer-Steuereinrichtung 140 vorgenommen. Die Multiplexer-Steuerlogik 140 erzeugt das korrekte Wählsignal für den Adreßmultiplexer in Abhängigkeit von den MC1,0-, INTMSEL- und *CS-Eingangssignalen.
- Die RAS- und CAS-Dekodierlogik 124 dekodiert die IRAS- und ICAS-Zeitsteuerungssignale zur Erzeugung der vier *RASi- und der vier Bank-CAS-Signale, die ihrerseits die vier Bereiche der DRAMs steuern. Die Dekodierung des *RASi-Signals erfolgt durch die *CS-, MC1,0-, SEL1,0-, RCC-Signale.
- Die CAS-Freigabelogik 150 wird verwendet, wenn die Byte-Dekodier-Betriebsweise als CAS-Dekodier-Betriebsweise gewählt wird. Byte-Freigabesignale werden extern dekodiert und liegen an den * CASEN&sub3;&submin;&sub0;-Eingangsleitungen an, die ebenfalls Eingänge zu der CAS-Freigabelogik bilden. Alle *CASEN&sub3;&submin;&sub0;-Signale werden einzeln mit dem ICAS-Signal gegattert, um das geeignete Byte-CAS-Signal zu erzeugen. Der CAS-Multiplexer 152 ist ein 4 Bit breiter Zwei-zu-Eins-Multiplexer. Er wählt einen Satz CASi-Signale zu dem Ausgang in Abhängigkeit von der verwendeten CAS-Dekodierbetriebsweise und dem Betriebsmodus aus. Die CAS-Multiplexer-Steuerlogik 154 wählt die bereichsdekodierte CAS-Einheit 124 oder die Byte-CAS-Signal- Einheit 150 aus.
- Die Logik 156 wählt entweder das *Bank-Compare-(*BC)- oder das *Cache-Hit-(*CH)- oder das Terminal-Count- (TC)-Signal als Ausgangssignal an dem Dreifach-Funktions-Stift *BC/*CH/TC aus.
- Die Ausgangsfunktion hängt von den Modussteuereingangssignalen ab. Wenn die NC1,0-Eingangssignale [0 1] sind, ist die Steuereinrichtung in Auffrischung mit dem Reinigungs- oder Initialisierungsmodus und dieses Ausgangssignal wirkt als Endzahl. Bei allen anderen Modi, bei denen MC1,0 [0 0], [1 0] und [1 1] ist, wirkt dieses Ausgangssignal entweder als Bank- Compare- oder *Cache-Hit-Signal, abhängig vom Zustand des Bank-Interleave- (BI)-Bits im Konfigurationsregister. Wenn BI=1, wird das *Bank-Compare-Signal gewählt, und wenn BI=0, wird das *Cache-Hit-Signal gewählt.
- Als *Bank-Compare geht dieses Ausgangssignal auf aktiv (low), wenn der gegenwärtige Speicherzugriff auf denselben Bereich erfolgt wie der vorhergehende Speicherzugriff, und bleibt aktiv, bis ein Speicherzugriff zu einem anderen Bereich angefordert wird. Dieses Signal wird von dem externen Zeitsteuerungsgenerator während des Bereichsverschachtelns verwendet, entweder zur sofortigen Aktivierung des RASI- Eingangssignals, wenn zwei aufeinanderfolgende Zugriffe auf zwei unterschiedliche Bereiche erfolgen, oder zur Verzögerung des RASI-Eingangssignals, wenn zwei aufeinanderfolgende Zugriffe auf denselben Bereich erfolgen.
- Als *Cache-Hit wird dieses Ausgangssignal aktiv (low), wenn der gegenwärtige Speicherzugriff auf dieselbe Zeile und denselben Bereich erfolgt wie der vorherige Zugriff. Dieses Signal wird von dem externen Zeitsteuerungsgenerator 110 während des Cache- Modus verwendet, um zu ermöglichen, daß das RASI- Signal aktiv bleibt. Als Endzahl wird dieses Ausgangssignal aktiv (high), wenn der Auffrisch-Zähler einen ganzen Zählvorgang durchgeführt hat. Der Auffrisch-Zähler 114, 116, 146 wird automatisch auf DRAM- Größe (64K,256K, 1M oder 4M) und die Anzahl der DRAM- Bereiche (2 Bereiche oder 4 Bereiche) eingestellt. Diese Parameter sind über das RAS-/CAS-Konfigurations-(RCC)-Bit [1] des Konfigurationsregisters 138 programmierbar. Dieses Signal wird zum Anzeigen des Endes der Initialisierung bei einem Fehlerermittlungs- und -korrektursystem verwendet.
- Beim Einschalten stellt die Einschalt-, Vorlade- und Strobe-Logikschaltung 112 die Steuereinrichtung zu der Vorgabekonfiguration vorab automatisch ein. Diese Schaltung 112 erzeugt ferner alle Signale und Strobesignale zum Löschen und Takten des Auffrisch- Zählers 114, 116, 146, zur Vorladung des Konfigurationsregisters 138, des Burst-Zähl-Registers 132 und des Maskenregisters 134, zum Löschen und Takten des Rücksetz-Flipflops 144 und des Kipp-Flipflops 142, zum Laden des Bereichsregisters 128 und zum Sperren des *Bank-Compare-Ausgangssignals.
- Die Mode-Control-(MC1,0)-Eingangssignale erstellen die Clear/Preload- und/oder Bank-Compare-Enable-Signale und die zu low führende Flanke des RASI-Eingangssignals erzeugt die Auffrisch-, Lade- und Bereichsregister-Strobesignale abhängig von den MC1,0- Eingangssignalen.
- Im Rücksetz-Modus (MC1,0 = 1 1) ist das Clear-/Preload-Signal aktiviert (1), das Bank-Compare-Disable- Signal aktiviert (1) und die zu low führende Flanke von RASI erzeugt in diesem Modus das Auffrisch-Strobesignal und das Lade-Strobesignal. In Wirklichkeit wird der Auffrisch-Zähler 114, 116, 146 gelöscht, das Konfigurationsregister 138, das Burst-Zähl-Register 132 und das Maskenregister 134 werden vorgeladen, die Kipp- und Rücksetz-Flipflops 144, 142 werden gelöscht und das *Bank-Compare-Ausgangssignal wird inaktiv (high) gehalten.
- Im Lese-/Schreib-Modus (MC1,0 = 1 0) wird das Clear/Preload-Signal inaktiv (0) gehalten und das Bank- Compare-Disable-Signal wird ebenfalls inaktiv (0) gehalten und die zu low führende Flanke von RASI erzeugt in diesem Modus das Bereichsregisterstrobesignal. In Wirklichkeit wird der Inhalt des Bereichszwischenspeichers 126 in das Bereichsregister 128 geladen und das *Bank-Compare-Ausgangssignal wird freigegeben.
- Im Auffrischmodus (MC1,0) = 0 X) wird das Clear/Preload-Signal inaktiv (0) gehalten und das Bank-Compare-Disable-Signal wird aktiviert (1) und die zu low führende Flanke von RASI erzeugt in diesem Modus das Auffrisch-Strobesignal. In Wirklichkeit wird der Auffrisch-Zähler 114, 116, 146 inkrementiert und das *Bank-Compare-Ausgangssignal wird inaktiv (high) gehalten.
- Wenn über das Timing-Mode-(TM)-Bit in dem Konfigurationsregister 138 (TM = 0) ein automatischer Zeitsteuerungsmodus gewählt wird, ist die Schaltung 110 imstande, zwischen RASI-NSEL und MSEL-CASI interne Zeitsteuerungsverzögerungen zu erzeugen.
- Im automatischen Zeitsteuerungsmodus wirkt das CASI/CASIEN-Eingangssignal als CAS-Input-ENable-(CASIEN)-Signal. In diesem Modus wird von der automatischen Zeitsteuerungsschaltung 110 aus der aktiven (high) Flanke des RASI-Eingangssignals ein Timing- Generator-CAS-(TGCAS)-Signal erzeugt und mit dem CASIEN-Eingangssignal zur Erzeugung des INTernal- CAS-(INTCAS)-Signals UND-verknüpft. Diese Besonderheit wird für den Burst-Modus-Vorgang verwendet. TGCAS ist deaktiviert (low), wenn das RASI-Eingangssignal deaktiviert (low) ist. Im externen Zeitsteuerungsmodus folgt INTCAS dem CASI-Eingangsignal.
- Zusammenfassend werden die Zeilen-, Spalten- und Bereichsadressen im Lese-/Schreibmodus von der Steuereinrichtung zwischengespeichert und unter der Steuerung eines Zeilenadreßstrobeeingangs-(RASI)- Signals zu dem DRAM-Array gemultiplext. Entweder intern erzeugte Zeitsteuerungssignale in einem automatischen Zeitsteuerungsmodus oder extern erzeugte MSEL- und CASI-Signale im externen Zeitsteuerungsmodus steuern ebenfalls solche Multiplexvorgänge. Eine automatische und externe Zeitsteuerungsschaltungsanordnung ist mit dem Bezugszeichen 110 versehen. Die Zeitsteuerungsoption Automatisch oder Extern wird über ein Timing-Mode-(TM)-Bit in dem Konfigurationsregister 138 gewählt.
- Die Zeilenadresse wird in den DRAMs von der aktiven (abfallenden) Flanke des *RASi-Ausgangssignals zwischengespeichert, die der aktiven (ansteigenden) Flanke des RASI-Eingangssignals folgt. Die Adreßleitungen werden dann entweder durch ein intern erzeugtes Signal im automatischen Zeitsteuerungsmodus oder durch Ziehen von MSEL auf aktiv high im externen Zeitsteuerungsmodus zu der Spaltenadresse geschaltet. Die Spaltenadresse wird in den DRAMs zwischengespeichert, und zwar bei der aktiven (abfallenden) Flanke des *CASi-Ausgangssignals, was entweder einem intern erzeugten Signal im automatischen Zeitsteuerungsmodus oder der aktiven (ansteigenden) Flanke des CASI-Eingangssignals im externen Zeitsteuerungsmodus folgt.
- Der Lese-/Schreibmodus der Steuereinrichtung kann für die kürzeste Speicherzugriffzeit optimiert werden. Diese Optimierung erfolgt auf drei verschiedene Arten.
- Zunächst einmal ist die Steuereinrichtung zur Unterstützung des Burst-/Block-Zugriffs konzipiert, wenn dies von dem Prozessor angefordert ist. In diesem Modus werden die anfänglichen Zeilen-, Spalten- und Bereichsadressen zwischengespeichert und die darauffolgenden Spaltenadressen werden von der Steuereinrichtung intern erzeugt. Also wird mit hoher Geschwindigkeit auf aufeinanderfolgende Speicherstellen zugegriffen, ohne daß der Prozessor tatsächlich jede Speicherstellenadresse erzeugt. Diese Art der Übertragung kann von Hochleistungsprozessoren zum Füllen chipinterner oder externer Chaches verwendet werden, wenn ein Caches-Fehler auftritt.
- Zum zweiten wird das *RASi-Ausgangssignal im "Cache"- Zugriffsmodus aktiv (low) gehalten, und auf jede Speicherstelle in dieser Zeile wird nur durch Verändern der Spaltenadresse zugegriffen. Auf diese Weise wirkt die gesamte Zeile, als sei sie ein Cache, da jeder Zugriff innerhalb der Zeile mit hoher Geschwindigkeit erfolgen kann. Für den "Cache"-Zugriffsmodus wird das Bank-Interleave-(BI)-Bit in dem Konfigurationsregister 138 rückgesetzt (0). Die Zeilen- und Bereichsadressen aufeinanderfolgender Zugriffe werden verglichen. Wenn die Zeilen- und Bereichsadressen aufeinanderfolgender Zugriffe übereinstimmen, wird das *Cache-Hit-(*CH)-Signal aktiv (low) und informiert den Zeitsteuerungsgenerator 110 dahingehend, das RASI-Eingangssignal nicht zu deaktivieren, sondern lediglich das CASI-/CASIEN- Eingangssignal zu kippen. Wenn die Zeilen- und Bereichsadressen aufeinanderfolgender Zugriffe nicht übereinstimmen, wird das *CH-Signal inaktiv (high) und informiert den Zeitsteuerungsgenerator 110, das RASI-Eingangssignal zu deaktivieren und einen neuen RASI-Zyklus zu starten, nachdem der gegenwärtige Zyklus vorgeladen worden ist. Wenn das RAST-Eingangssignal deaktiviert ist, lädt seine zu low führende Flanke die Zeile 107 bzw. die Register des Bereichs 128 mit dem Inhalt der Zeile 106 bzw. die Zwischenspeicher des Bereichs 126, wobei die neuen Werte für den nächsten Vergleich aufgespart werden.
- Drittens kann die Steuereinrichtung so konfiguriert sein, daß sie die Bereichsverschachtelung durch Verbinden der beiden niederwertigsten Bits der Prozessoradresse mit den Bereichswählleitungen und durch Setzen (1) des Bank-Interleave-(BI)-Bits in dem Konfigurationsregister 138 unterstützt. Die auf aufeinanderfolgende Speicherstellen gemachten Zugriffe erfolgen in benachbarten Bereichen. Also kann der gesamte Speicher-Array durch einmaliges schrittweises Durchlaufen durch den Zeilenadreßzähler aufgefrischt werden. Ein Zeilen-Auffrisch-Zähler 114 wird von der inaktiven (abfallenden) Flanke des RASI-Eingangssignals zu der nächsten Auffrischadresse aktualisiert. Wenn eine Speicher-"Reinigung" durchgeführt wird, werden sowohl die Zeilen- als auch die Spaltenadreßzähler verwendet. In diesem Ball werden alle vier entsprechenden Zeilen aufgefrischt und eine Speicherstelle einer Zeile wird "gereinigt" (d.h. ein Lese-/Modifizier-/Schreib-Zyklus wird durchgeführt). Ein ganzer Speicher-Array kann durch einmaliges schrittweises Durchlaufen durch die Zeilen-, Spalten- und Bereichsadreßzähler "gereinigt" werden.
- Die Eingangssignale sind auf der linken Seite der FIGUR gezeigt und im folgenden beschrieben. Alle Eingänge und Ausgänge sind TTL-kompatibel. Alle Signale und Strobesignale sind Standard-TTL, sofern nicht anders festgelegt.
- Die mit den Bezugszeichen 100 und 102 belegten A&sub2;&sub1;-A&sub0; (Adreßeingänge &sub2;&sub1;&submin;&sub0;) treiben die DRAM-Adreßleitungen Q&sub1;&sub0;&submin;&sub0; 122, wenn die Steuereinrichtung im Lese- /Schreib-Modus ist. A&sub1;&sub0;&submin;&sub0; 100 werden als Spaltenadresse zwischengespeichert und treiben Q&sub1;&sub0;&submin;&sub0; 122, wenn das MSEL-(Multiplexer-SELect)-Signal high und die Steuereinrichtung im Lese-/Schreibmodus ist. A&sub2;&sub1;&submin;&sub1;&sub1; 102 werden als die Zeilenadresse gespeichert und treiben Q&sub1;&sub0;&submin;&sub0; 122 an, wenn MSEL low und die Steuereinrichtung im Lese-/Schreibmodus ist. Die Adressen werden von der zu low führenden Flanke des Adreß-Halte-Freigabe-(ALE)-Signals zwischengespeichert.
- Sel1,0 (Bank-SELect1,0) sind die beiden Adreßbits von höchster Ordnung im Normalzugriffs- oder Burst- /Block-Zugriffsmodus, doch die beiden mit niedrigster Ordnung im Bereichsverschachtelungsmodus. In jedem Fall werden SEL1,0 im Lese-/Schreibmodus verwendet, um zu wählen, welcher Spelcherbereich die *RASi- und *CASi-Signale empfängt, wenn RASI und CASI aktiv high werden. Wenn die Byte-Dekodier-Betriebsweise gewählt worden ist, werden die *CASi-Signale nicht von SEL1,0 dekodiert.
- Das ALE-(Adreß-Halte-Freigabe)-Signal 104 bewirkt, daß der Zeilenzwischenspeicher, der Spalten-Zwischenspeicher und -Zähler 108 und der Bereichszwischenspeicher 126 transparent werden, so daß die Zwischenspeicher neue Eingangssignaldaten aufnehmen können. Bei ALE 104 werden die Eingangssignaldaten von einem Eingang im Low-Zustand gehalten, wobei angenommen wird, daß sie die Einstell- und Halteanforderungen erfüllen.
- MSEL/MSELEN (Multiplexer SELect/Multiplexer SELect ENable) ist ein Doppelfunktionseingangssignal. Im externen Zeitsteuerungsmodus (TM = 1 im Konfigurationsregister 138) wirkt dieses Eingangssignal als MSEL und im automatischen Zeitsteuerungsmodus (TM = 0) wirkt es als MSELEN. Im externen Zeitsteuerungsmodus folgt das INTernal-Multiplexer-SELect- (INTMSEL)-Signal dem MSEL-Eingangssignal. Im automatischen Zeitsteuerungsmodus wird das Timing-Generator-Multiplexer-SELect-(TGMSEL)-Signal aus dem RASI- Eingangssignal erzeugt und wird zur Erzeugung des INTMSEL-Signals mit dem MSELEN-Eingangssignal gegattert.
- In beiden Fällen wird die Spaltenadresse gewählt, wenn INTMSEL high ist, während die Zeilenadresse gewählt wird, wenn INTMSEL low ist. Die Adresse kann entweder aus den Adreß-Zwischenspeichern und -Zählern 106, 108, 126 oder aus dem Auffrisch-Adreß-Zähler 114, 116, 146 kommen, abhängig von MC1,0, wie im folgenden beschrieben.
- Das *CS-(Chip-Select)-Eingangssignal wird zur Freigabe der Steuereinrichtung verwendet. Wenn *CS aktiv ist, arbeitet die Steuereinrichtung normal in allen vier Modi. Wenn *CS inaktiv wird, geht die Vorrichtung nicht in den Lese-/Schreibmodus.
- Das *OE-(Output-Enable)-Eingangssignal gibt die Ausgangssignale frei bzw. sperrt sie. Wenn *OE inaktiv ist, gehen die Ausgänge der Steuereinrichtung in den Hochimpedanzzustand. Das *OE-Signal läßt zu, daß mehr als eine Steuereinrichtung denselben Speicher steuert, wodurch ein Verfahren zum Mehrfachzugriff auf denselben Speicher-Array zur Verfügung gestellt wird.
- Die MC1,0-(Mode-Control1,0)-Eingangssignale werden verwendet, um festzulegen, welchen der vier Betriebsmodi die Steuereinrichtung verwenden soll. Im folgenden werden die vier Funktionen der Modussteuerung in Tabelle 1, der Modussteuerungsfunktionstabelle, dargestellt. TABELLE 1. MODUSSTEUERUNGSFUNKTIONSTABELLE Modussteuerungseinstellung Betriebsmodus Auffrischen ohne Reinigung a) Nur RAS-Auffrischung: Auffrischzyklen werden durchgeführt, wobei nur der Zeilenzähler Adressen erzeugt. In diesem Modus sind alle vier * RASi-Ausgangssignale aktiv, während die vier *CASi-Signale inaktiv gehalten sind. b) CAS- vor RAS-Auffrischung: Die Auffrischadresse wird intern von den DRAMs erzeugt. In diesem Modus sind alle vier * CASi-Ausgangssignale aktiv, wonach alle vier *RASi-Ausgangssignale aktiv werden. Auffrischen mit Reinigung/Initialisieren Dieser Modus kann nur in Systemen mit EDC-Fähigkeit verwendet werden. In diesem Modus werden Auffrischzyklen durchgeführt, wobei sowohl die Zeilen- als auch die Spaltenzähler die Adressen erzeugen. MSEL wird verwendet, um zwischen den Zeilen- und Spaltenadressen auszuwahlen. In Reaktion auf RASI werden alle vier *RASi-Signale aktiv, während in Reaktion auf CASI nur ein * CASi-Ausgangssignal aktiv wird. Das * CASi-Ausgangssignal wird vom Bereichszähler dekodiert. Dieser Modus wird auch zur Initialisierung des Speichers verwendet, indem ein bekanntes Datenmuster und entsprechende Prüfbits erzeugt werden. Lesen Schreiben Dieser Modus wird zur Durchführung von Lese-/Schreib-Operationen verwendet. Die Zeilenadresse wird aus dem Zeilenzwischenspeicher entnommen und die Spaltenadresse aus dem Spaltenzwischenspeicherzähler. Sel1,0 werden zur Bestimmung dessen, welches *RASi und *Casei aktiv sein wird, dekodiert. Rücksetzen Dieser Modus wird verwendet, um den Auffrisch-Zähler, die Rücksetz- und Kipp-Flipflops zu löschen und das Burst-Zähl-Register, das Maskenregister und das Konfigurationsregister vorzuladen. Die obigen Vorgänge werden beim High-Low-Übergang des RASI- Signals durchgeführt. In diesem Modus werden alle vier * RASi-Ausgangssignale auf ein RASI-Signal hin, das aktiv (high) wird, auf aktiv (low) getrieben, so daß DRAM-Aufweck-Zyklen durchgeführt werden können.
- Q10,0-(Address-Outputs&sub1;&sub0;&submin;&sub0;) 122 treiben die DRAM-Adreßeingangssignale. Die Treiber an diesen Leitungen sind auf eine kapazitive Last von 500 pF spezifiziert.
- Das RASI-(Row-Adress-Strobe-Input)-Signal wird wie folgt verwendet. Während normaler Speicherzyklen wird eines der dekodierten *RASi-Ausgangssignale (*RAS&sub3;, *RAS&sub2;, *RAS&sub1; oder *RAS&sub0;) erzwungenermaßen auf low gebracht, nachdem RASI aktiv high geworden ist. In jedem Auffrisch-Modus gehen alle vier * RASi-Ausgangssignale auf low, nachdem RASI aktiv high geworden ist. Wenn durch die Schaltung 110 die automatische Zeitsteuerung freigegeben worden ist, initiiert die zu high führende Flanke von RASI auch den internen Zeitsteuerungszyklus und seine zu low führende Flanke beendet den internen Zeitsteuerungszyklus.
- *RAS&sub3;&submin;&sub0; (Row-Address-Strobe&sub3;&submin;&sub0;) liefern ein *RASi-Signal an einen der vier Bereiche des dynamischen Speichers. Jeder geht auf low, wenn er von SEL1,0 gewählt wird, und zwar nur dann, wenn RASI auf high geht. In den Auffrisch-Nodi gehen alle vier auf RASI hin auf low. Alle Ausgänge sind auf eine kapazitive Last von 350pF spezifiziert und weisen schwache Pull-up-Widerstände auf, um ein unbeabsichtigtes Starten eines Zyklus zu verhindern.
- CASI/CASIEN (Column-Address-Strobe-Input/Column-Address-Strobe-Input-Enable) ist ein Doppelfunktionseingangssignal. Im externen Zeitsteuerungsmodus (TM = 1 im Konfigurationsregister 138) wirkt dieses Eingangssignal als CASI. Im automatischen Zeitsteuerungsmodus (TM = 0) wirkt es als CASIEN.
- Im externen Zeitsteuerungsmodus folgt das INTernal- Column-Address-Strobe-Signal (INTCAS) dem CASI-Eingangssignal. Im automatischen Zeitsteuerungsmodus wird das Timing-Generator-Column-Address-Strobe- (TGCAS)-Signal aus dem RASI-Eingangssignal erzeugt und zur Erzeugung des INTCAS-Signals mit dem CASIEN- Eingangssignal gegattert.
- Wenn es als CASIEN verwendet wird, wobei die Bereichs betriebsweise als CAS-Dekodierbetriebsweise verwen det wird, wird das intern dekodierte * CASi-Ausgangssignal (*CAS&sub3;, *CAS&sub2;, *CAS&sub1; oder *CAS&sub0;) erzwungenermaßen auf low gebracht, nachdem CASI aktiv geworden ist. Wenn es als CASI verwendet wird, wobei die Byte-Betriebsweise als CAS-Dekodierbetriebsweise verwendet wird, wird das gewählte *CAS&sub1;-Ausgangssignal erzwungenermaßen auf low gebracht, und zwar abhängig von den intern dekodierten * CASENi-Byte-Eingangssignalen, nachdem CASI aktiv geworden ist.
- Wenn es als CASIEN verwendet wird, wobei die Bereichsbetriebsweise als CAS-Dekodierbetriebsweise verwendet wird, wird das dekodierte * CASi-Ausgangssignal zwangsweise auf low gebracht, wenn sowohl die intern erzeugten TGCAS- als auch die CASIEN-Signale aktiv sind.
- Die *CAS&sub3;&submin;&sub0;-(Column-Address-Strobe&sub3;&submin;&sub0;)-Ausgangssignale liefern jeweils ein *CASi-Signal an einen der vier Bereiche des dynamischen Speichers. Jeder wird aktiv, wenn er von SEL&sub1;&submin;&sub0; in der Bereichsbetriebsweise ausgewählt wird, oder wenn er von *CASEN&sub3;, *CASEN&sub2;, *CASEN&sub1;, *CASEN&sub0; in der Byte-Betriebsweise ausgewählt wird, und nur, wenn CASI im externen Zeitsteuerungsbetriebsmodus aktiv wird und wenn CASIEN und TGCAS im automatischen Zeitsteuerungsmodus aktiv werden.
- Alle Ausgänge sind auf eine kapazitive Last von 350pF spezifiziert und weisen schwache Pull-up-Widerstände auf, um ein unbeabsichtigtes Starten eines Zyklus zu verhindern.
- *CASEN&sub3;&submin;&sub0; (Column-Address-Strobe-Enable&sub3;&submin;&sub0;) werden extern dekodiert, um Byte-Operationen abzuwickeln, wenn die Byte-Betriebsweise als CAS-Dekodier-Betriebsweise verwendet wird. Die Zeitgebung kann Automatisch oder Extern erfolgen. Nur diejenigen *CASi- Ausgangssignale werden aktiviert, deren entsprechende *CASENi-Eingangssignale von der externen Byte- Dekodier-Schaltung aktiviert sind.
- RL/CC (Register-Load/Column-Clock) ist ein Doppelfunktionseingangssignal, das an einen RL/CL-Dekodierer 168 angelegt wird. Die Funktion hängt von den Mode-Control-Eingangssignalen (MC1,0) ab. Wenn MC1,1 = 1 1 ist, befindet sich die Steuereinrichtung im Rücksetzmodus. Dieses Eingangssignal wirkt als Registerladesignal. Wenn MC1,0 = 1 0 ist, befindet sich die Steuereinrichtung im Lese-/Schreib-Modus und dieses Eingangssignal wirkt als Spaltentaktsignal. Wenn es als Registerladesignal verwendet wird, lädt die zu high führende Flanke dieses Signals entweder das Burst-Zähl-Register 132 oder das Maskenregister 134 oder das Konfigurationsregister 138 über die A&sub1;&sub0;&submin;&sub0;-Adreßeingänge 100. Das Burst-Zähl-Register 132 gibt die Anzahl der Speicherzugriffe an, die in dem Burst- oder Block-Übertragungs-Modus zugelassen sind, und das Maskenregister 134 gibt an, welche Bits des Burst-Zähl-Registers 132 an dem Spaltenadreßvergleich in dem Burst- oder Block-Modus der Datenübertragung teilnehmen. Das Konfigurationsregister 138 gibt die unterschiedliche gewählte Konfiguration an. Wenn es als Spaltentaktsignal verwendet wird, inkrementiert die zu low führende Flanke dieses Signals den Spaltenzähler, dessen Ausgangssignal über den Adreßmultiplexer 118 zu Q&sub1;&sub0;&submin;&sub0; und außerdem zu der DRAM-Seitenbegrenzungslogik und der Spaltenvergleichslogik geführt wird.
- *BC/*CH/TC (*Bank-Compare/*Cache-Hit/Terminal-Count) ist ein Dreifachfunktionsausgangssignal. Die Funktion hängt von den Modussteuerungseingangssignalen und dem Bank-Interleave-(BI)-Bit in dem Konfigurationsregister 138 ab. Wenn die MC1,0-Eingangssignale [0 1] sind, ist die Steuereinrichtung in der Auffrischung mit Reinigung oder Initialisierungsmodus, und dieses Ausgangssignal wirkt als Enczahl. Bei allen anderen Modi, wenn MC1,0 [0 0], [1 0 und [1 1] ist, wirkt dieses Ausgangssignal entweder als * Bank-Compare-Signal, wenn BI=1, oder als *Cache-Hit-Signal, wenn BI=0. Als *Bank-Compare-Signal wird dieses Ausgangssignal aktiv (low), wenn der gegenwärtige Speicherzugriff auf denselben Bereich erfolgt wie der vorhergehende Speicherzugriff, und es bleibt aktiv, bis ein Speicherzugriff auf einen anderen Bereich angefordert wird. Dieses Signal wird von dem externen Zeitsteuerungsgenerator 110 während der Bereichsverschachtelung verwendet, um entweder das RASI-Eingangssignal sofort zu aktivieren, wenn zwei aufeinanderfolgende Zugriffe auf zwei unterschiedliche Bereiche erfolgen, oder um das RASI-Eingangssignal zu verzögern, wenn zwei aufeinanderfolgende Zugriffe auf denselben Bereich erfolgen. Als *Cache- Hit-Signal wird dieses Ausgangssignal aktiv (low), wenn der gegenwärtige Speicherzugriff auf dieselbe Zeile und denselben Bereich erfolgt wie der vorherige Zugriff. Dieses Signal wird von dem externen Zeitsteuerungsgenerator 110 während des Cache-Modus verwendet, um zuzulassen, daß das RASI-Signal aktiv bleibt. Als Endzahl wird dieses Ausgangssignal aktiv (high), wenn der Auffrisch-Zähler eine vollständige Zählung durchgeführt hat. Der Auffrisch-Zähler wird automatisch auf DRAM-Größe (64K, 256K, 1M oder 4M) und auf die Anzahl der DRAM-Bereiche (2 Bereiche oder 4 Bereiche) eingestellt. Die DRAM-Konfiguration ist über das RAS-/CAS-Konfigurationsbit des Konfigurationsregisters 138 programmierbar. Dieses Signal wird zur Anzeige des Endes der Initalisierung in einem Fehlerermittlungs- und -korrektur-(EDC)-System verwendet. Die Initialisierung besteht im Einschreiben eines bekannten Datenmusters mit einem entsprechenden Prüfbit in den gesan1ten Speicher-Array vor Benutzung des Speichers.
- EBM (End-Burst/Clock-Mode) wird lediglich im Burst- oder Block-Modus der Datenübertragung verwendet. Es zeigt dem Prozessor an, daß die Steuereinrichtung aus einem von zwei Gründen im Burst- oder Block-Modus keine Datenübertragungen mehr durchführen kann: die DRAM-Seitenbegrenzung ist erreicht; in dem Fall wird von dem Prozessor eine neue Zeilenadresse angefordert; oder die zulässige Anzahl an Übertragungen, wie von dem Burst-Zähl-Register 138 angezeigt, ist durchgeführt worden.
- Der Burst-/Block-Zugriffs-Modus wird von Prozessoren oder anderen elektronischen Vorrichtungen, die als Master mit Cache-Speicher bekannt sind, verwendet. In diesem Zugriffsmodus liefert der Prozessor die Anfangsspeicheradresse und fordert dann einen Burst- Zugriff an. Wenn die Steuereinrichtung bzw. Slave- Einheit die Burst-Anforderung bestätigt, erwartet der Prozessor, daß die Steuereinrichtung auf aufeinanderfolgende Speicherstellen zugreift, ohne daß der Prozessor eine weitere Speicheradresse liefert. Der Zugriff kann entweder durch den Prozessor oder durch die Steuereinrichtung beendet werden.
- Diese Betriebsart befreit den Adreßbus und gestattet ein schnelleres Zugreifen auf den Speicher. Da auf aufeinanderfolgende Speicherstellen zugegriffen wird, entfallen die meisten von ihnen auf dieselbe Zeile in dem DRAM und daher braucht die Zeilenadresse nicht verändert zu werden. Zur aufeinanderfolgenden Speicheradreßerzeugung braucht lediglich die Spaltenadresse inkrementiert zu werden. Da die Zeilenadresse nicht verändert werden muß, braucht das Zeilenadreßstrobesignal nicht deaktiviert und dann wieder reaktiviert zu werden, wodurch RAS-Vorladezeit gespart wird, die in der Ordnung der DRAM-Zugriffszeit liegt. Dies wiederum ermöglicht schnellere Zugriffszeiten.
- Eine alternative Ausführungsform des Burst-Zugriffs- Modus besteht in einer anderen Beendigung des Burst- Zugriffs-Modus. Die Steuereinrichtung verfolgt die Anzahl der Zugriffe, die erfolgt sind, und gestattet nur eine festgelegte Anzahl von Zugriffen, die der Prozessor abwickeln kann. Bei der Steuereinrichtung werden das Burst-Zähl-Register und das Maskenregister verwendet, um diese Art von Burst-Zugriffen abzuwickeln und dem Prozessor zu signalisieren, wann die programmierbare Anzahl von Übertragungen ausgeführt worden ist.
- Eine weitere Ausführungsform des Burst-Zugriffs-Modus besteht darin, daß der Prozessor eine normale Zugriffsanforderung stellt und die Steuereinrichtung stets vier Zugriffe auf den Speicher vornimmt. Die vier Zugriffe erfolgen hintereinander, jedoch in Umlaufrichtung. Wenn bei dieser Art des Zugriffs Halbbyte-Modus-DRAMs verwendet werden, erfolgt der erste Zugriff auf normalem Wege und die nächsten drei Zugriffe durch einfaches Kippen des * CASi-Strobesignals. Wenn jedoch normale DRAMs verwendet werden, erfolgt der erste Zugriff auf normalem Wege und das *RASi-Strobesignal wird für den nächsten Zugriff aktiv gehalten. Der Spaltenzähler wird von dem Column-Clock-(CC)-Signal getaktet und das * CASi-Strobesignal wird gekippt. Dieser Vorgang wird bei zwei weiteren Zugriffen wiederholt.
- Die Steuereinrichtung unterstützt auch den "Cache"- Zugriffsmodus. In diesem Zugriffsmodus wird das *RASi-Ausgangssignal aktiv (low) gehalten und auf jede Speicherstelle in dieser Zeile wird nur durch Verändern der Spaltenadresse zugegriffen, wodurch die ganze Zeile als Cache erscheint, da jeder Zugriff innerhalb der Zeile mit hoher Geschwindigkeit erfolgen kann. Für den "Cache"-Zugriffs-Modus wird das Bank-Interleave-(BI)-Bit in dem Konfigurationsregister rückgesetzt (0). Die Zeilen- und Bereichsadressen aufeinanderfolgender Zugriffe werden verglichen. Wenn die Zeilen- und Bereichsadressen aufeinanderfolgender Zugriffe übereinstimmen, wird das *Cache-Hit-(*CH)-Signal aktiv (low) und informiert den Zeitsteuerungsgenerator, das RASI-Eingangssignal nicht zu deaktivieren, sondern nur das CASI/CASIEN- Eingangssignal zu kippen. Wenn die Zeilen- und Bereichsadressen aufeinanderfolgender Zugriffe nicht übereinstimmen, wird das *CH-Signal inaktiv (high) und informiert den Zeitsteuerungsgenerator, das RASI-Eingangssignal zu deaktivieren und einen neuen RASI-Zyklus zu starten, nachdem der gegenwärtige Zyklus eine Vorladung durchlaufen hat. Wenn das RASI-Eingangssignal deaktiviert ist, lädt seine zu low führende Flanke die Zeilen- und Bereichsregister mit dem Inhalt der Zeilen- bzw. Bereichszwischenspeicher, wobei die neuen Werte für den nächsten Vergleich aufgespart werden.
- FIGUR 12 zeigt ein Zeitdiagramm der Signale ALE, RASI, *RAS&sub3;&submin;&sub0; und *CH (Zeilenvergleichssignal). Am Punkt A, der den Anfang des Zyklus markiert, wird die erste Zeilenadresse zwischengespeichert und das RASI-Signal geht auf high. An Punkt B wird die nächste Zeilenadresse zwischengespeichert, und wenn ein Vergleich mit der vorhergehenden Zeilenadresse nicht erfolgreich ist, geht das RASI-Signal während der Vorladezeit auf low und dann zum Zugriff auf die Zeilenadresse auf high. Am Punkt C wird eine weitere Zeilenadresse zwischengespeichert und in diesem Fall wird, wenn der Vergleich zwischen dem aktuellen Zeilenadresse und der vorhergehenden Zeilenadresse erfolgreich ist (d.h. wenn sich beide Zeilenadressen in derselben Zeile befinden), die RASI-Leitung in einem High-Zustand gehalten, wobei die Vorladezeit vermieden wird, wenn der Vergleich nicht erfolgreich war. Diese FIGUR zeigt daher eine neue Zeilenadresse am Punkt A, eine neue Zeilenadresse an Punkt B, an Punkt C dieselbe Zeilenadresse wie an Punkt B und an Punkt D dieselbe Zeilenadresse wie an den Punkten B und C.
- Für die RAS&sub3;&submin;&sub0;-Leitung ist immer dann, wenn die Leitung auf high geht, eine Vorladezeit erforderlich. Die RAS-Leitung muß, als eine Anforderung des DRAM, auf den sie zugreift, low sein.
- FIGUR 13 stellt ein Blockdiagramm der Schaltungsanordnung von FIGUR 11 dar, die zum Testen des Zählers verwendet wird. Normalerweise wird die Schaltungsanordnung nur während des Tests implementiert, jedoch vor dem Transport zu einem Kunden. Das Konfigurationsregister 138 erzeugt ein TST-Signal zu einem Multiplexer 200 (der in FIGUR 2 bei dem Bezugszeichen 10 dargestellt ist). Der Betrieb des Multiplexers 200 ist im Zusammenhang mit der vorstehenden Beschreibung von FIGUR 2 beschrieben. An dem Multiplexer 200 sind ein 6-Bit- und ein 5-Bit-Zähler angebracht und sie bilden zusammen den Zeilen-Auffrisch-Zähler 114 und den Spalten-Auffrisch-Zähler 116, wie in FIGUR 11 gezeigt.
- Die in dieser FIGUR 13 gezeigten Zähler 114,116 werden als ein Übertrag zwischen dem 5-Bit- und dem 6- Bit-Teil eines 11-Bit-Testers verwendet. Das Ausgangssignal des Zählers 114,116 wird an den Adreßmultiplexer 118 angelegt und mittels des Puffers 120 an die Adreßleitung 122, die, wie vorstehend ausführlicher beschrieben, an den DRAM gelegt ist. Es sei angemerkt, daß die Adreßleitung 122 während des Tests nicht an den DRAMs anliegt. FIGUR 13 ist der Einfachheit halber gezeigt. Es sei jedoch darauf hingewiesen, daß ein weiterer Block 114,116, der einen Multiplexer 200 und einen 6-Bit- und einen 5- Bit-Zähler aufweist, eigentlich an eine andere der Eingangs leitungen zu dem Adreßmultiplexer 118 angelegt wird. Somit sind, wie in FIGUR 11 zu erkennen, zwei 11-Bit-Busse an den Adreßmultiplexer angelegt, einer von dem Zeilen-Auffrisch-Zähler 114 und der andere von dem Spalten-Auffrisch-Zähler 116.
- FIGUR 14 zeigt ein Logikdiagramm der internen Arbeitsabläufe der Komparatorlogik 136, die erstmalig in FIGUR 11 dargestellt ist. Auf einer Einzel-Bit- Basis sind ein Zwischenspeicher-/Zähler-Signal und ein Burst-Zähl-Register-Signal an mehrere exklusive NOR-Gatter 210-230 angelegt. Das heißt, für jedes der zu verarbeitenden Bits wird jedes Signal an jede Logikvorrichtung 210-230 angelegt. Es werden zwei Bits auf einmal verglichen. Bei diesem Beispiel werden elf Bitsätze verarbeitet. Das Spalten-Zwischenspeicher-/Zähler-Register ist mit 108 (FIGUR 11) bezeichnet und das Burst-Zähl-Register mit 132. Das Ausgangssignal der exklusiven NOR-Gatter 210-230 ist ein Zwischenvergleichssignal 210a-230a.
- Dem Maskenregister 134 werden von dem Prozessor für jedes Bit Werte eingeladen. Die Maskenregisterbits werden bitweise mittels ODER-Gattern 232-252 mit den Zwischenvergleichssignalen 210a-230a ODER-verknüpft. Die daraus resultierenden Bitsignale werden an ein UND-Gatter 254 mit 11 Eingängen angelegt, woraus sich ein Comparator-Output-Signal ergibt. Wenn das Comparator-Output-Signal high ist, zeigt es an, daß der unmaskierte Teil des Spalten-Zwischenspeichers/- Zählers 108 einen erfolgreichen Vergleich mit dem unmaskierten Teil des Burst-Zähl-Registers 132 durchführt, woraus sich ein Ende des Burst-Zustandes ergibt.
- Ein End-of-Burst-Node-(EDM)-Signal wird erzeugt, wenn entweder das Comparator-Output-Signal von dem UND-Gatter 254 mit 11 Eingängen high ist oder wenn die DRAM-Seitenbegrenzungslogik 158 anzeigt, daß das Ende einer Seite in dem DRAM erreicht worden ist. In jedem Fall wird der nicht dargestellte Prozessor dahingehend informiert, daß in diesem verarbeiteten Burst keine Daten mehr übertragen werden können. Die Ausrichtung des nächsten Bursts erfolgt automatisch an diesem Punkt, und zwar aufgrund dessen, daß die Verarbeitung der vorhergehenden Daten, die einen vollständigen oder Teil-Burst bildeten, beendet worden ist. Von diesem Punkt an werden alle Bursts ausgerichtet. Die Anzahl der Zugriffe im nächsten Burst stellen die Gesamthöchstzahl von Übertragungen pro Burst dar.
- Da dem Fachmann andere Modifizierungen und Änderungen, die für bestimmte Betriebsanforderungen und - umgebungen erfolgen, offensichtlich sein werden, ist die Erfindung nicht auf das für Offenbarungszwecke gewählte Beispiel beschränkt, sondern deckt alle Veränderungen und Modifizierungen ab, die keine Abweichung vom Rahmen dieser Erfindung darstellen.
Claims (12)
1. Verfahren zur Minimierung der
Speicherzugriffzeit auf einen Speicher mit gemultiplexten
Adreßeingangssignalen zwischen Daten, die in
Speicherstellen in dem Speicher in der gleichen
Zeile, doch in verschiedenen Spalten gespeichert
sind, mit den Schritten:
a) Zugreifen auf erste Daten an einer
vorbestimmten Spalten- und Zeilenspeicherstelle;
b) Aufzeichnen der vorbestimmten
Zeilenspeicherstelle der ersten Daten;
c) Aufzeichnen der Zeilenspeicherstelle der
zweiten Daten;
d) Vergleichen der Zeilenspeicherstellen der
ersten und zweiten Daten;
e) Erzeugen eines Zeilenvergleichssignals bei
Gleichheit der Zeilenspeicherstellen der ersten
und zweiten Daten; und
f) Verändern lediglich der Spaltenadresse für
den Speicher auf das Zeilenvergleichssignal hin,
wobei der Veränderungsschritt den Zugriff auf
die zweiten Daten initiiert.
2. Verfahren nach Anspruch 1, ferner mit dem
Schritt:
g) Aktualisieren eines Speicherregisters mit
der zeilenadresse der zweiten Daten bei
Scheitern des Vergleichs der Zeilenspeicherstellen
der ersten und zweiten Daten.
3. Verfahren nach Anspruch 1, bei dem während des
Schritts des Zugreifens auf die ersten Daten
eine Zeilenadreßstrobeleitung heruntergezogen
wird.
4. Verfahren nach Anspruch 3, bei dem während des
Schritts des Veränderns von lediglich der
Spaltenadresse die Zeilenadreßstrobeleitung im Low-
Zustand gehalten wird.
5. Verfahren nach Anspruch 4, bei dem die
Zeilenadreßstrobeleitung von einem
Zeitsteuerungsgenerator im Low-Zustand gehalten wird.
6. Verfahren nach Anspruch 4, bei dem die
Zeilenadreßstrobeleitung bei Scheitern des Vergleichs
der Speicherstellen der ersten und zweiten Daten
zwangsweise in den High-Zustand versetzt wird.
7. Verfahren zur Minimierung der
Speicherzugriffzeit auf einen Speicher mit gemultiplexten
Adreßeingangssignalen zwischen Daten, die in
Speicherstellen in dem Speicher in dem gleichen
Bereich und der gleichen Zeile, doch in
verschiedenen Spalten gespeichert sind, mit den
Schritten:
a) Zugreifen auf erste Daten an einer
vorbestimmten Bereichs-, Spalten- und
Zeilenspeicherstelle;
b) Aufzeichnen der vorbestimmten Bereichs- und
Zeilenspeicherstellen der ersten Daten;
c) Aufzeichnen der Bereichs- und
Zeilenspeicherstelle der zweiten Daten;
d) Vergleichen der Bereichs- und
Zeilenspeicherstellen der ersten und zweiten Daten;
e) Erzeugen eines Vergleichssignals bei
Gleichheit der Bereichs- und der Zeilenspeicherstellen
der ersten und zweiten Daten; und
f) Verändern lediglich der Spaltenadresse für
den Speicher auf das Vergleichssignal hin, wobei
der Veränderungsschritt den Zugriff auf die
zweiten Daten initiiert.
8. Verfahren nach Anspruch 7, ferner mit dem
Schritt:
g) Aktualisieren eines Speicherregisters mit
der Bereichs- und Zeilenadresse der zweiten
Daten bei Scheitern des Vergleichs der Bereichs-
und Zeilenspeicherstelle der ersten und zweiten
Daten.
9. Verfahren nach Anspruch 7, bei dem während des
Schritts des Zugreifens auf die ersten Daten
eine Zeilenadreßstrobeleitung heruntergezogen
wird.
10. Verfahren nach Anspruch 9, bei dem während des
Schritts des Veränderns von lediglich der
Spaltenadresse die Zeilenadreßstrobeleitung im Low-
Zustand gehalten wird.
11. Verfahren nach Anspruch 10, bei dem die
Zeilenadreßstrobeleitung von einem
Zeitsteuerungsgenerator im Low-Zustand gehalten wird.
12. Verfahren nach Anspruch 10, bei dem die
Zeilenadreßstrobeleitung bei Scheitern des Vergleichs
der Speicherstellen der ersten und zweiten Daten
zwangsweise in den High-Zustand versetzt wird.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/211,511 US4870622A (en) | 1988-06-24 | 1988-06-24 | DRAM controller cache |
Publications (2)
Publication Number | Publication Date |
---|---|
DE68910391D1 DE68910391D1 (de) | 1993-12-09 |
DE68910391T2 true DE68910391T2 (de) | 1994-05-11 |
Family
ID=22787223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE89306129T Expired - Lifetime DE68910391T2 (de) | 1988-06-24 | 1989-06-16 | Verfahren zum Speicherdatenzugriff. |
Country Status (5)
Country | Link |
---|---|
US (1) | US4870622A (de) |
EP (1) | EP0348111B1 (de) |
JP (1) | JPH0258792A (de) |
AT (1) | ATE96936T1 (de) |
DE (1) | DE68910391T2 (de) |
Families Citing this family (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5724540A (en) * | 1988-03-28 | 1998-03-03 | Hitachi, Ltd. | Memory system having a column address counter and a page address counter |
US5335336A (en) * | 1988-03-28 | 1994-08-02 | Hitachi, Ltd. | Memory device having refresh mode returning previous page address for resumed page mode |
US5134699A (en) * | 1988-06-24 | 1992-07-28 | Advanced Micro Devices, Inc. | Programmable burst data transfer apparatus and technique |
US5159676A (en) * | 1988-12-05 | 1992-10-27 | Micron Technology, Inc. | Semi-smart DRAM controller IC to provide a pseudo-cache mode of operation using standard page mode draws |
US4967397A (en) * | 1989-05-15 | 1990-10-30 | Unisys Corporation | Dynamic RAM controller |
US5113511A (en) * | 1989-06-02 | 1992-05-12 | Atari Corporation | System for dynamically providing predicted high/slow speed accessing memory to a processing unit based on instructions |
JP2777247B2 (ja) * | 1990-01-16 | 1998-07-16 | 三菱電機株式会社 | 半導体記憶装置およびキャッシュシステム |
JPH03254497A (ja) * | 1990-03-05 | 1991-11-13 | Mitsubishi Electric Corp | マイクロコンピュータ |
US6751696B2 (en) | 1990-04-18 | 2004-06-15 | Rambus Inc. | Memory device having a programmable register |
US6324120B2 (en) | 1990-04-18 | 2001-11-27 | Rambus Inc. | Memory device having a variable data output length |
IL96808A (en) | 1990-04-18 | 1996-03-31 | Rambus Inc | Introductory / Origin Circuit Agreed Using High-Performance Brokerage |
JPH0682339B2 (ja) * | 1990-08-31 | 1994-10-19 | インターナショナル・ビジネス・マシーンズ・コーポレイション | メモリ・アクセス・システムおよび方法 |
US5249282A (en) * | 1990-11-21 | 1993-09-28 | Benchmarq Microelectronics, Inc. | Integrated cache memory system with primary and secondary cache memories |
JP3105283B2 (ja) * | 1991-03-20 | 2000-10-30 | キヤノン株式会社 | メモリ・アクセス制御装置 |
US5289584A (en) * | 1991-06-21 | 1994-02-22 | Compaq Computer Corp. | Memory system with FIFO data input |
JPH05101684A (ja) * | 1991-10-07 | 1993-04-23 | Toshiba Corp | 半導体記憶装置 |
US5572692A (en) * | 1991-12-24 | 1996-11-05 | Intel Corporation | Memory configuration decoding system having automatic row base address generation mechanism for variable memory devices with row access interleaving |
US5485589A (en) * | 1991-12-31 | 1996-01-16 | Dell Usa, L.P. | Predictive addressing architecture |
EP0895162A3 (de) | 1992-01-22 | 1999-11-10 | Enhanced Memory Systems, Inc. | Verbesserte DRAM mit eingebauten Registern |
US5280449A (en) * | 1992-10-13 | 1994-01-18 | Advanced Risc Machines Limited | Data memory and method of reading a data memory |
US5682515A (en) * | 1993-01-25 | 1997-10-28 | Benchmarq Microelectronics, Inc. | Low power set associative cache memory with status inhibit of cache data output |
US5392239A (en) * | 1993-05-06 | 1995-02-21 | S3, Incorporated | Burst-mode DRAM |
JPH07192461A (ja) * | 1993-12-27 | 1995-07-28 | Toshiba Corp | 半導体記憶装置 |
JPH07248963A (ja) * | 1994-03-08 | 1995-09-26 | Nec Corp | Dram制御装置 |
US5566318A (en) * | 1994-08-02 | 1996-10-15 | Ramtron International Corporation | Circuit with a single address register that augments a memory controller by enabling cache reads and page-mode writes |
US5668773A (en) * | 1994-12-23 | 1997-09-16 | Micron Technology, Inc. | Synchronous burst extended data out DRAM |
US5729503A (en) * | 1994-12-23 | 1998-03-17 | Micron Technology, Inc. | Address transition detection on a synchronous design |
US5640364A (en) * | 1994-12-23 | 1997-06-17 | Micron Technology, Inc. | Self-enabling pulse trapping circuit |
US5526320A (en) * | 1994-12-23 | 1996-06-11 | Micron Technology Inc. | Burst EDO memory device |
US6525971B2 (en) | 1995-06-30 | 2003-02-25 | Micron Technology, Inc. | Distributed write data drivers for burst access memories |
US6804760B2 (en) | 1994-12-23 | 2004-10-12 | Micron Technology, Inc. | Method for determining a type of memory present in a system |
US5610864A (en) * | 1994-12-23 | 1997-03-11 | Micron Technology, Inc. | Burst EDO memory device with maximized write cycle timing |
US5682354A (en) * | 1995-11-06 | 1997-10-28 | Micron Technology, Inc. | CAS recognition in burst extended data out DRAM |
US5721859A (en) * | 1994-12-23 | 1998-02-24 | Micron Technology, Inc. | Counter control circuit in a burst memory |
US5675549A (en) * | 1994-12-23 | 1997-10-07 | Micron Technology, Inc. | Burst EDO memory device address counter |
US5717654A (en) * | 1995-02-10 | 1998-02-10 | Micron Technology, Inc. | Burst EDO memory device with maximized write cycle timing |
US5850368A (en) * | 1995-06-01 | 1998-12-15 | Micron Technology, Inc. | Burst EDO memory address counter |
US5787267A (en) * | 1995-06-07 | 1998-07-28 | Monolithic System Technology, Inc. | Caching method and circuit for a memory system with circuit module architecture |
US5729504A (en) * | 1995-12-14 | 1998-03-17 | Micron Technology, Inc. | Continuous burst edo memory device |
US5966724A (en) * | 1996-01-11 | 1999-10-12 | Micron Technology, Inc. | Synchronous memory device with dual page and burst mode operations |
US7681005B1 (en) | 1996-01-11 | 2010-03-16 | Micron Technology, Inc. | Asynchronously-accessible memory device with mode selection circuitry for burst or pipelined operation |
US6981126B1 (en) | 1996-07-03 | 2005-12-27 | Micron Technology, Inc. | Continuous interleave burst access |
US6401186B1 (en) | 1996-07-03 | 2002-06-04 | Micron Technology, Inc. | Continuous burst memory which anticipates a next requested start address |
US5708613A (en) * | 1996-07-22 | 1998-01-13 | International Business Machines Corporation | High performance redundancy in an integrated memory system |
US6044433A (en) * | 1996-08-09 | 2000-03-28 | Micron Technology, Inc. | DRAM cache |
US6167486A (en) | 1996-11-18 | 2000-12-26 | Nec Electronics, Inc. | Parallel access virtual channel memory system with cacheable channels |
US6032243A (en) * | 1997-04-01 | 2000-02-29 | United Microelectronics Corp. | Data-transfer interconnection for signal and data transfer between CD-ROM decoder and buffer memory |
US6075744A (en) * | 1997-10-10 | 2000-06-13 | Rambus Inc. | Dram core refresh with reduced spike current |
US7103742B1 (en) | 1997-12-03 | 2006-09-05 | Micron Technology, Inc. | Burst/pipelined edo memory device |
US5963481A (en) * | 1998-06-30 | 1999-10-05 | Enhanced Memory Systems, Inc. | Embedded enhanced DRAM, and associated method |
US6330636B1 (en) | 1999-01-29 | 2001-12-11 | Enhanced Memory Systems, Inc. | Double data rate synchronous dynamic random access memory device incorporating a static RAM cache per memory bank |
US6708254B2 (en) | 1999-11-10 | 2004-03-16 | Nec Electronics America, Inc. | Parallel access virtual channel memory system |
US7149824B2 (en) * | 2002-07-10 | 2006-12-12 | Micron Technology, Inc. | Dynamically setting burst length of memory device by applying signal to at least one external pin during a read or write transaction |
US7927948B2 (en) | 2005-07-20 | 2011-04-19 | Micron Technology, Inc. | Devices with nanocrystals and methods of formation |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5420626A (en) * | 1977-07-15 | 1979-02-16 | Nec Corp | Memory circuit |
JPS5494839A (en) * | 1978-01-11 | 1979-07-26 | Nec Corp | Memory unit |
US4623986A (en) * | 1984-02-23 | 1986-11-18 | Texas Instruments Incorporated | Memory access controller having cycle number register for storing the number of column address cycles in a multiple column address/single row address memory access cycle |
US4725945A (en) * | 1984-09-18 | 1988-02-16 | International Business Machines Corp. | Distributed cache in dynamic rams |
US4803621A (en) * | 1986-07-24 | 1989-02-07 | Sun Microsystems, Inc. | Memory access system |
JPS63144492A (ja) * | 1986-12-05 | 1988-06-16 | Alps Electric Co Ltd | メモリアクセス方式 |
JP2714944B2 (ja) * | 1987-08-05 | 1998-02-16 | 三菱電機株式会社 | 半導体記憶装置 |
-
1988
- 1988-06-24 US US07/211,511 patent/US4870622A/en not_active Expired - Lifetime
-
1989
- 1989-06-16 EP EP89306129A patent/EP0348111B1/de not_active Expired - Lifetime
- 1989-06-16 AT AT89306129T patent/ATE96936T1/de not_active IP Right Cessation
- 1989-06-16 DE DE89306129T patent/DE68910391T2/de not_active Expired - Lifetime
- 1989-06-23 JP JP1162476A patent/JPH0258792A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP0348111B1 (de) | 1993-11-03 |
EP0348111A2 (de) | 1989-12-27 |
DE68910391D1 (de) | 1993-12-09 |
US4870622A (en) | 1989-09-26 |
EP0348111A3 (de) | 1991-07-24 |
JPH0258792A (ja) | 1990-02-27 |
ATE96936T1 (de) | 1993-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE68910391T2 (de) | Verfahren zum Speicherdatenzugriff. | |
DE68926936T2 (de) | Vorrichtung und Technik für Burstprogrammierung | |
DE3909896C2 (de) | ||
DE69906156T2 (de) | Mikroprozessorvorrichtung mit programmierbaren wartezuständen | |
DE3724317C2 (de) | ||
DE69029479T2 (de) | Hochleistungsspeichersystem | |
DE69518286T2 (de) | Speicherübertragungsgeschwindigkeitsbegrenzung für PCI-Meister | |
DE69124905T2 (de) | Datenverarbeitungsvorrichtung zur dynamischen Zeiteinstellung in einem dynamischen Speichersystem | |
DE69228679T2 (de) | Speicher, speichersteuerungsvorrichtung und speichersteuerungsverfahren zur anwendung mit einem copy-back-cachespeichersystem | |
DE69324508T2 (de) | DRAM mit integrierten Registern | |
DE69602946T2 (de) | Pipelineadressiertes speichersystem und verfahren zu dessen betrieb | |
DE69217761T2 (de) | Lese- und Schreibschaltung für einen Speicher | |
DE69028066T2 (de) | Kombinierte synchrone und asynchrone Speichersteuerung | |
DE69131734T2 (de) | Datenprozessor mit verschachteltem DRAM-Speicher | |
DE68918754T2 (de) | Datenverarbeitungsgerät mit selektivem Befehlsvorausholen. | |
DE69031411T2 (de) | Verfahren und Anordnung zum Lesen, Schreiben und Auffrischen eines Speichers mit direktem virtuellem oder physikalischem Zugriff | |
DE68920419T2 (de) | Verfahren und Anordnung für eine leistungsfähige DRAM-Steuerung. | |
DE3852695T2 (de) | Multiprozessorsystem mit mehreren Speichern. | |
DE69333319T2 (de) | Datenverarbeitungssystem mit synchronem, dynamischem Speicher in integrierter Schaltkreistechnik | |
DE68923026T2 (de) | Speicherdiagnosegerät und Verfahren. | |
DE10307244B4 (de) | Automatische Vorladesteuerungsschaltung und zugehöriges Vorladesteuerungsverfahren | |
DE2617408A1 (de) | Datenverarbeitungsgeraet | |
DE19526960A1 (de) | Eine Übersetzungs-Querzuordnungs-Puffer-Organisation mit variabler Seitengrößenabbildung und Opfer-Cache-Speicherung | |
DE3885985T2 (de) | Speichersteueranordnung für ein Daten verarbeitendes System. | |
DE3688400T2 (de) | Cachespeicherschaltung geeignet zur verarbeitung einer leseanforderung waehrend der uebertragung eines datenblocks. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |