-
HINTERGRUND DER ERFINDUNG
-
Gebiet der Erfindung
-
Die vorliegende Erfindung bezieht
sich auf das Gebiet der Computersysteme. Insbesondere bezieht sich
die vorliegende Erfindung auf die Verbesserung der Speicherteilsystem-Leistung
für Speicher-Burst(Impulsbündel)-Zugriffe
in einem Computersystem.
-
Beschreibung der verwandten
Technik
-
Bei einigen Computersystemen kann
auf Speichereinrichtungen oder andere Arten von Einrichtungen, die
Speicher enthalten, von bestimmten Einrichtungen unter Verwendung
eines Burst-Modus-Zugriffs zugegriffen werden. Burst-Modus-Zugriffe
ermöglichen
im Allgemeinen, dass Mehrfachdateneinheiten (beispielsweise Bits,
Bytes, Worte oder Vierfachworte) aus dem Speicher gelesen oder in diesen
geschrieben werden können,
indem ein Speicherzugriffsbefehl verwendet wird, wodurch Speicherzugriffslatenzzeiten
herabgesetzt werden. In einigen Fällen wird ein Burst-Zugriff
ausgeführt,
wenn eine einzelne Speicherzugriffsanweisung, wie beispielsweise
ein Burst-LESEN oder ein Burst-SCHREIBEN, von einer Speichereinrichtung zusammen
mit einer Sequenz von Adressen, auf die zugegriffen werden soll,
empfangen wird.
-
Einige Speichereinrichtungen oder
Einrichtungen, die ein Speicherarray enthalten, verfügen über einen
automatischen Adressinkrementiermechanismus, um die Adressen der
Speicherplätze
zu erzeugen, auf die während
eines Burst-Zugriffs zugegriffen werden soll. In diesem Fall muss
der Burst-Zugriffsbefehl von einer anfordernden Einrichtung nur eine
Startadresse enthalten, die einen Speicherplatz angibt, an welchem
der Burst-Zugriff beginnen soll. Der automatische Inkrementiermechanismus
inkrementiert dann die niederwertigsten Bits der Startadresse in
einer bestimmten Sequenz, um die Adressen der übrigen Speicherplätze zu erzeugen,
auf die während
des Burst-Zugriffs
zugegriffen werden soll. Die Anzahl der nachfolgenden Speicheradressen,
die von dieser automatischen Inkrementierlogik erzeugt werden, und
die Reihenfolge, in welcher auf sie zugegriffen wird, wird in einigen
Fällen
von einem Burst-Längen-Indikator
und einem Burst-Sequenz-Indikator bestimmt, die vom Hersteller des Computersystems
in einem Register gespeichert werden, oder während des Betriebs oder der
Konfiguration des Computersystems, um die Anzahl der Datenelemente
anzugeben, auf die während
eines Burst-Zugriffs zugegriffen werden soll.
-
Ein Beispiel für eine Einrichtung, die aktuell verfügbar ist
und einen automatischen Adressinkrementiermechanismus enthält, ist
eine synchrone, dynamische Speichereinrichtung mit wahlfreiem Zugriff (SDRAM).
Verschiedene Typen integrierter Schaltungseinrichtungen sowie verschiedene
Busprotokolle werden für
verschiedene Burst-Adressinkrementiersequenzen optimiert oder machen
diese erforderlich. SDRAMs enthalten ein programmierbares Modusregister,
welches entweder lineare (auch als sequenziell bezeichnet) oder
verschachtelte (auch als Wechsel-Modus bezeichnet) Burst-Speicherzugriffe ermöglicht.
Die lineare oder sequenzielle Inkrementiersequenz inkrementiert
eine Adresse in sequenzieller Reihenfolge, um auf die Anzahl der
Datenelemente linear zuzugreifen, die von der Burst-Länge angegeben
wird, welche in einem Register eingestellt oder in dem Computersystem
fest verdrahtet ist. Beispielsweise würde bei einer Startadresse
von 1001 (binär)
und einer Burst-Länge
von vier Datenelementen eine lineare Adressinkrementiersequenz die Startadresse
inkrementieren, um auf die Speicherplätze 1010, 1011 und 1100 in
dieser Reihenfolge zuzugreifen.
-
Die Wechsel-Adressinkrementiersequenz wird
als Wechsel-Sequenz
bezeichnet, weil die Sequenz so geartet ist, dass der Wert des niederwertigsten
Bits von einem Wert „0" zu einem Wert „1" umschaltet bzw.
wechselt. Somit kann die Sequenz in einigen Fällen sequenziell sein, aber
in vielen Fällen
ist die Wechsel-Sequenz nicht-sequenziell oder nicht-linear. Unter
Verwendung desselben Beispiels mit einer Startadresse von 1001 und
einer Burst-Länge von
vier Datenelementen würde
eine Wechsel-Adressinkrementiersequenz die Startadresse so inkrementieren,
daß auf
die Speicherplätze 1000, 1011 und 1010 in
dieser Reihenfolge zugegriffen wird.
-
Um jedoch zwischen den Adressinkrementiermodi
hin- und herzuschalten, muss das SDRAM-Modusregister jedes Mal neu
programmiert werden, wenn ein anderer Typ einer Adressinkrementiersequenz
(sequenziell oder Wechsel-Modus) erforderlich ist. Das SDRAM-Modusregister
ist laufend programmierbar und kann sich somit an sich verändernde
Adressinkrementieranforderungen anpassen, aber die Verzögerung,
die jedes Mal eintritt, wenn der Adressinkrementiermodus verändert wird, ist
beträchtlich.
-
Beispielsweise können bei einem bestimmten Computersystem,
das einen Hochleistungsprozessor auf einem Host-Bus und andere Agenten
auf einem peripheren Bus, wie beispielsweise einem PCI-Bus, enthält, alle
Burst-Zugriffe von dem Host-Bus auf den Hauptspeicher eine verschachtelte Speicheradressinkrementiersequenz
erfordern, und alle Burst-Zugriffsanforderungen von dem PCI-Bus können eine
sequenzielle Speicheradressinkrementiersequenz erfordern. In diesem
Fall muss das Modusregister des SDRAM häufig neu programmiert werden,
um die richtige Steuerung der Speicheradressinkrementiersequenz
in Abhängigkeit
von der Quelle einer Burst-Zugriffsanforderung bereitzustellen.
-
Dieses Programmieren und Neuprogrammieren
des SDRAM-Modusregisters kann eine signifikante Anzahl von Taktzyklen
verbrauchen, insbesondere wenn Speicherzugriffsanforderungen ständig zwischen
Prozessor- und PCI-Speicherzugriffen hin- und herschalten. Einige
SDRAMs erfordern beispielsweise zwei Taktzyklen, um das Modusregister zu
programmieren, und zwei Leerlauf-Taktzyklen, die dem Programmieren
des Modusregisters folgen, bevor eine weitere Speicherzugriffsanforderung
verarbeitet werden kann. Somit entsteht ein Zeitverlust von vier
Taktzyklen jedes Mal dann, wenn das SDRAM-Modusregister neu programmiert
wird, um eine andere Adressinkrementiersequenz für einen Burst-Zugriff bereitzustellen.
Andere Einrichtungen, welche sowohl sequenzielle als auch nicht-sequenzielle
automatische Adressinkrementiermodi enthalten, unterliegend denselben
Problemen.
-
Folglich ist es wünschenswert, ein Mittel zum automatischen
Inkrementieren der Speicheradressen für einen Burst-Zugriff bereitzustellen,
um sowohl den Anforderungen für
sequenzielle als auch für Wechsel-Modus-Burst-Zugriffe
zu entsprechen, ohne dass die Taktzykluszeitverluste entstehen,
die mit dem Neuprogrammieren der automatischen Inkrementier-Steuerlogik
der Speichereinrichtung verbunden sind.
-
Ein Beispiel für eine dem Stand der Technik entsprechende
Anordnung ist in der
US 5,386,385 offenbart.
-
ZUSAMMENFASSENDE DARSTELLUNG
DER ERFINDUNG
-
Gemäß der vorliegenden Erfindung
wird eine Einrichtung zum Steuern der Reihenfolge bereitgestellt,
in welcher auf die Plätze
eines Speichers in einem Computersystem während einer Burst-Zugriffsoperation
zugegriffen wird, wobei die Reihenfolge von einer Sequenz bestimmt
wird, in welcher eine Burst-Zugriffsstartadresse
inkrementiert wird, wobei das Computersystem eine Wechsel-Inkrementierlogik
enthält,
um eine Adresse in einer Wechsel-Sequenz zu inkrementieren. Die
Einrichtung ist gekennzeichnet durch:
einen Eingabebus zum
Empfangen von Burst-Zugriffsanforderungen und zugehörigen Startadressen von
einer Mehrzahl von Einrichtungen in dem Computersystem, wobei jede
Startadresse einen ersten Speicherplatz angibt, auf den als Reaktion
auf die zugehörige
Burst-Zugriffsanforderung zugegriffen werden soll, wobei jede der
Mehrzahl von Einrichtungen entweder eine lineare oder eine Wechsel-Adressinkrementiersequenz
erfordert; und
eine Sequenzsteuerlogik, die mit dem Eingabebus gekoppelt
ist und die mit der Wechsel-Inkrementierlogik zu koppeln ist, um
die Wechsel-Inkrementierlogik zu steuern, um die Startadresse in
einer linearen Sequenz als Reaktion auf eine Burst-Zugriffsanforderung
von einer Einrichtung zu inkrementieren, die eine lineare Adressinkrementiersequenz
erfordert, wobei die Sequenzsteuerlogik Zugriffe auf Speicherplätze ignoriert,
die von der Wechsel-Inkrementierlogik angezeigte Adressen haben,
welche nicht in der linearen Sequenz enthalten sind.
-
Ebenfalls gemäß der vorliegenden Erfindung wird
ein Verfahren zum Steuern der Reihenfolge bereitgestellt, in welcher
auf Plätze
eines Speichers in einem Computersystem während einer Burst-Zugriffsoperation
zugegriffen wird, wobei die Reihenfolge entweder eine lineare Reihenfolge
oder eine Wechsel-Reihenfolge
ist, wobei die Reihenfolge von einer Sequenz bestimmt wird, in welcher
eine Burst-Zugriffsstartadresse inkrementiert wird, wobei das Computersystem
eine Wechsel-Inkrementierlogik zum Inkrementieren einer Adresse
in einer Wechsel-Sequenz
enthält.
Das Verfahren ist gekennzeichnet durch:
Empfangen einer Burst-Zugriffsanforderung
und einer Burst-Zugriffsstartadresse von einer ersten Einrichtung
in dem Computersystem, wobei die Startadresse einen ersten Speicherplatz
angibt, auf welchen während
der Burst-Zugriffsoperation zugegriffen werden soll, die als Reaktion
auf die Burst-Zugriffsanforderung
ausgeführt
wird;
Bestimmen, ob die erste Einrichtung eine lineare oder
eine Wechsel-Adressinkrementiersequenz für die Burst-Zugriffsoperation
erfordert;
Steuern der Wechsel-Inkrementierlogik durch eine Sequenzsteuerlogik,
um die Startadresse in einer linearen Sequenz zu inkrementieren,
wenn festgestellt wird, dass die erste Einrichtung eine lineare Burst-Zugriffssequenz
erfordert; und
-
Ignorieren eines Zugriffs auf einen
bestimmten Speicherplatz durch die Sequenzsteuerlogik, wenn die
Wechsel-Inkrementierlogik die Startadresse inkrementiert, um auf
den Platz zuzugreifen, und auf den Platz während der Burst-Zugriffsoperation nicht
zugegriffen werden muss.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
1 ist
eine Überblicks-Blockdarstellung, die
ein Computersystem gemäß einem
Ausführungsbeispiel
der Erfindung zeigt.
-
2 ist
eine Blockdarstellung, die die Speichersteuereinrichtung und die
Hauptspeicheranordnung eines Ausführungsbeispiels der Erfindung zeigt.
-
3A ist
eine Tabelle, die ein Beispiel für sequenzielle
und verschachtelte Inkrementiersequenzen für eine Burst-Länge von
zwei Datenelementen darstellt.
-
3B ist
eine Tabelle, die ein Beispiel für sequenzielle
und verschachtelte Inkrementiersequenzen für eine Burst-Länge von
vier Datenelementen darstellt.
-
3C ist
eine Tabelle, die ein Beispiel für sequenzielle
und verschachtelte Inkrementiersequenzen für eine Burst-Länge von
acht Datenelementen darstellt.
-
4 ist
ein Flussdiagramm, das das Verfahren eines Ausführungsbeispiels der Erfindung darstellt.
-
5 ist
ein Flussdiagramm, das das Verfahren eines Ausführungsbeispiels der Erfindung
für eine
Burst-Länge
von vier Datenworten darstellt.
-
DETAILLIERTE BESCHREIBUNG
DER ERFINDUNG
-
Die Erfindung stellt eine Speicherzugriffssteuerlogik
zum Steuern von sequenziellen und Wechsel-Modus-Burst-Zugriffssequenzen
bereit, die eine automatische Wechsel-Adressinkrementierlogik verwenden.
In der folgenden Beschreibung werden zahlreiche spezielle Details
dargelegt, um ein umfassendes Verständnis der Erfindung zu ermöglichen. Fachleuten
wird jedoch klar sein, dass die Erfindung ohne diese speziellen
Details ausgeführt
werden kann. In anderen Fällen
sind bekannte Elemente nicht im Detail beschrieben worden, um die
Verschleierung der Erfindung zu vermeiden.
-
Überblick über das Computersystem eines
Ausführungsbeispiels
-
1 ist
eine Blockdarstellung, die ein Computersystem gemäß einem
Ausführungsbeispiel
der Erfindung zeigt. Das Computersystem der Erfindung umfasst einen
Host-Bus 100 zum Übermitteln
von Informationen, einen Prozessor 101 zum Verarbeiten von
Informationen und einen Cache-Speicher 104 zum Speichern
häufig
und/oder kürzlich
verwendeter Informationen für
den Prozessor 101. Der Prozessor 101 ist mit dem
Host-Bus 100 über
einen Prozessorsteuer- und Datenbus 102 und einen Prozessoradressbus 103 gekoppelt.
Bei einem Ausführungsbeispiel
ist der Prozessor 101 ein Intel-Architektur-Mikroprozessor,
wie er beispielsweise von der Intel Corporation, Santa Clara, Kalifornien,
dem Unternehmenszessionar der Erfindung, hergestellt wird; es können jedoch
auch andere Prozessorarchitekturen in Übereinstimmung mit der Erfindung
verwendet werden. Der Cache-Speicher 104 kann
innerhalb derselben IC-Baugruppe wie der Prozessor 101 oder innerhalb
einer separaten IC-Baugruppe konfiguriert werden.
-
Das Computersystem eines Ausführungsbeispiels
enthält
ebenfalls einen Read-Only Memory (ROM) 105 oder eine andere
nicht-flüchtige
Speichereinrichtung zum Speichern feststehender Informationen und
Anweisungen für
den Prozessor 101. Der ROM 105 eines Ausführungsbeispiels
speichert ein BIOS-Programm zum Initialisieren und Konfigurieren des
Computersystems bei der Inbetriebnahme oder beim Neustart des Computersystems.
-
Ebenfalls ist mit dem Host-Bus 100 über einen
Host-Steuerbus 106 und einen Host-Adressbus 107 eine
Speichersteuereinrichtung 108 gekoppelt zum Steuern der
Zugriffe (wie beispielsweise Speicher-LESE- und SCHREIB-Operationen),
sowie der Speicheraktualisierungsoperationen, auf einen Hauptspeicher 109.
Der Hauptspeicher 109 speichert Informationen und Anweisungen
für den
Prozessor 101 während
des Betriebs des Computersystems und ist mit der Speichersteuereinrichtung 108 über einen
Speicherbus 110 gekoppelt, welcher sowohl Speicheradress-
als auch Speichersteuersignalleitungen enthält. Die Speichersteuereinrichtung 108 eines
Ausführungsbeispiels
ist ebenfalls mit einem peripheren Bus 111, wie beispielsweise
einem Peripherie-Komponenten-Verbindungs(PCI) -Bus, über einen
peripheren Steuerbus 112 und einen peripheren Adress- und
Datenbus 113 gekoppelt. Bei einem Ausführungsbeispiel enthält die Speichersteuereinrichtung 108 eine
(nicht dargestellte) Busbrückenlogik
zur Kommunikation zwischen dem Host-Bus 100 und dem peripheren
Bus 111. Bei alternativen Ausführungsbeispielen kann die Busbrückenlogik
nicht in der Speichersteuereinrichtung 108 enthalten sein, oder
sie kann in einer separaten integrierten Schaltungseinrichtung enthalten
sein.
-
Die Speichersteuereinrichtung 108 steuert die
Zugriffe auf den Hauptspeicher 109 als Reaktion auf Speicherzugriffsanforderungen
von Agenten auf dem Host-Bus, wie beispielweise der Prozessor 101 oder
der periphere Bus 111. Agenten auf jedem Bus, welche in
der Lage sind, Burst-Zugriffe auf den und von dem Hauptspeicher 109 oder
eine andere Speichereinrichtung in dem Computer auszuführen, können Burst-Zugriffe
erfordern oder für
diese optimiert werden, indem eine bestimmte Speicheradressinkrementiersequenz
verwendet wird. Bei einem Beispiel ist es erforderlich, die Startadresse
einer Burst-Zugriffsanforderung
von dem Prozessor 101 in einem Wechsel-Modus zu inkrementieren,
um die Adressen der Speicherplätze
zu erzeugen, auf die während
der Burst-Zugriffsoperation zugegriffen werden soll. In ähnlicher
Weise erfordern bei einem Beispiel alle Speicher-Burst-Zugriffsanforderungen,
die von Agenten auf dem peripheren Bus 111 kommen, dass die
Speicheradresse für
den Zugriff in einer linearen Inkrementiersequenz für nachfolgende
Datenelemente inkrementiert wird, auf die während einer Burst-Zugriffsoperation
zugegriffen wird. Beispiele für lineare
und Wechsel-Modus-Adressinkrementiersequenzen, welche verwendet
werden können,
um derartige Burst-Zugriffe
zu steuern, werden nachstehend unter Bezugnahme auf 3A, 3B und 3C detaillierter beschrieben.
-
Die Speichersteuereinrichtung 108 eines Ausführungsbeispiels
enthält
eine intelligente Inkrementiersteuerlogik 117, welche dazu
dient, die Adressinkrementiersequenz während eines Burst-Zugriffs
auf den Hauptspeicher 109 zu steuern. Die intelligente
Inkrementiersteuerlogik der Erfindung steuert die Wechsel-Inkrementiermoduslogik
auf einem Speicher oder auf einer einen Speicher enthaltenden Einrichtung
zur Bereitstellung einer bestimmten Inkrementiersequenz, wie sie
vom benötigten
Typ der Inkrementiersequenz (Wechsel oder linear) bestimmt wird,
der mit der Burst-Zugriffsanforderung bereitgestellten Startadresse
und der Burst-Länge (die
Anzahl der Datenelemente, die während
des Burst-Zugriffs abgerufen werden soll), die in der Speichersteuereinrichtung 108 oder
einer anderen Logik in dem Computersystem eingestellt ist. Die intelligente
Inkrementiersteuerlogik 117 der Erfindung führt dies
unter Verwendung der Wechsel-Inkrementiermoduslogik aus, ohne dass
es erforderlich ist, ein Modusregister neu zu programmieren, oder
dass eine andere derartige Logik zwischen dem linearen und dem Wechsel-Inkrementiermodus
zurück-
und vorschalten muss. Auf diese Weise unterstützt die intelligente Inkrementiersteuerlogik
der Erfindung die Reduzierung oder Eliminierung der Verzögerung,
die entsteht, wenn die Adressinkrementiermodi verändert werden.
Die Arbeitsweise der intelligenten Inkrementiersteuerlogik 117 wird
nachstehend unter Bezugnahme auf die 2, 3 und 4 detaillierter beschrieben.
-
Es wird noch immer auf 1 Bezug genommen; bei einem
Ausführungsbeispiel
ist eine Datenpfadeinheit 119 auch mit dem Host-Bus 100 über den Host-Datenbus 120 und
mit dem Hauptspeicher 109 über den Speicherdatenbus 122 gekoppelt.
Die Datenpfadeinheit 119 eines Ausführungsbeispiels empfängt Steuersignale
von der Speichersteuereinrichtung 108 über den Speicherdatensteuerbus 125.
Die Datenpfadeinheit 119 dient zur Steuerung des Datenstroms
in den und aus dem Hauptspeicher 109 als Reaktion auf Datenzugriffs-
oder Datenübermittlungsanforderungen,
die von der Speichersteuereinrichtung 108 empfangen werden.
Auf diese weise werden die Adress- und Datenströme, die mit dem Hauptspeicher 109 verbunden
sind, etwas getrennt, um eine effizientere Arbeitsweise zu ermöglichen. Bei
einigen Ausführungsbeispielen
werden die Daten in den und aus dem Hauptspeicher 109 über den Host-Datenbus 120 an
den Host-Bus übermittelt, aber
Daten in den und aus dem Hauptspeicher 109 werden über die
Speichersteuereinrichtung 108 und über den peripheren Adress-/Datenbus 113 an
den peripheren Bus 111 übermittelt.
Die Funktionalität
der Speichersteuereinrichtung 108 und der Datenpfadeinheit 119 ist
bei einigen Ausführungsbeispielen
in eine integrierte Schaltungskomponente integriert.
-
Fachleuten ist klar, dass andere
Computersysteme in Übereinstimmung
mit der Erfindung ebenfalls verwendet werden können. Fachleuten ist ebenso
klar, dass das in 1 dargestellte
Computersystem weitere Komponenten enthalten kann, die nicht in 1 dargestellt sind, oder
ohne in 1 dargestellte
Komponenten, wie beispielweise den peripheren Bus 111,
konfiguriert werden kann.
-
Anordnung von Speichersteuereinrichtung
und Hauptspeicher in einem Ausführungsbeispiel
-
2 stellt
die Anordnung der Speichersteuereinrichtung und des Hauptspeichers
eines Ausführungsbeispiels
der Erfindung dar. Obwohl die Erfindung unter Bezugname auf ein
Hauptspeicherarray beschrieben wird, das bestimmte Typen und eine
bestimmte Anzahl von Speicherbauelementen enthält, wird Fachleuten klar sein,
dass andere Speicherarrays, die andere Typen und eine andere Anzahl
von Speicherbauelementen enthalten, in Übereinstimmung mit der Erfindung
ebenfalls verwendet werden können.
-
Das Hauptspeicherarray
-
Der Hauptspeicher 109 von 2 enthält die Speichereinheiten 201–203,
welche den Speicherarrayzeilen in 2 entsprechen,
aber bei anderen Ausführungsbeispielen
anders angeordnet sein können.
Bei einem Ausführungsbeispiel
sind die Speichereinheiten 201–203 synchrone, dynamische
Speichereinrichtungen mit wahlfreiem Zugriff (SDRAM) in einer Doppelreihen-Speichermodul(DIMM)-Konfiguration.
Jede der SDRAM-Speichereinheiten 201–203 enthält ein entsprechendes
Modusregister 201A–203A.
Die Modusregister 201A–203A sind programmierbare
Register zum Steuern spezieller Merkmale, die mit der Operation
jeder SDRAM-Speichereinheit 201–203 im Zusammenhang
stehen. Die Modusregister 201A–203A sind so programmiert, daß sie bestimmte
gewünschte
Betriebscharakteristika entweder während der Konfiguration des
Computersystems oder laufend während
des Betriebs des Computersystems ermöglichen, wenn Veränderungen
in den Betriebscharakteristika erforderlich sind.
-
Die Modusregister eines Ausführungsbeispiels,
wie beispielsweise das Modusregister 201A, sind 12 Bit
breit, wobei Bits 2 : 0 die Anzahl der Worte angeben, die in einem
Burst-LESE- oder Burst-SCHREIB-Zyklus
eingegeben oder ausgegeben werden, auch als die „Burst-Länge" bezeichnet. Die Burst-Länge eines
Typs einer SDRAM-Speichereinheit ist auf 1, 2, 4 oder 8 Datenworte
oder auf einen Burst einer gesamten Speicherseite programmierbar.
Bei einem Ausführungsbeispiel
gibt Bit 3 den Modus an, entweder den linearen oder den Wechsel-Modus,
in welchem die Startspeicheradresse während einer Burst-Zugriffssequenz
von 1, 2, 4 oder 8 Datenworten automatisch inkrementiert wird. Bei einem
Ausführungsbeispiel
ist für
eine Burst-Länge einer
vollen Seite nur eine lineare Inkrementiersequenz verfügbar. Der
Wechsel- oder verschachtelte Adressinkrementiermodus wird häufig zum
Beispiel von Hochleistungsprozessoren für eine schnellere Cache-Zeilenfüllung verwendet.
Der Wechsel-Modus wird verwendet, um zwischen den Speicherbanken auf
eine solche Weise zu wechseln, dass auf eine Bank zugegriffen werden
kann, während
die andere vorlädt,
und somit bei der Verarbeitung des Burst-Zugriffs weniger Verzögerung entsteht.
-
Bei einem Ausführungsbeispiel wird der Wechsel-Inkrementiermodus
somit freigegeben, indem das entsprechende Bit in einem SDRAM-Modusregister,
wie beispielsweise Modusregister 201A–203A in 2, gesetzt wird. Das Programmieren
eines SDRAM-Modusregisters zur Bereitstellung einer Wechsel-Inkrementiersequenz
aktiviert die Wechsel-Inkrementierlogik 201B– 203B auf
der bestimmten SDRAM-Speichereinheit, auf die zugegriffen wird.
Die Wechsel-Inkrementierlogik 201B–203B inkre mentiert
eine Burst-Zugriffsstartadresse gemäß den Wechsel-Modussequenzen,
wobei die bestimmte Sequenz von der Startadresse bestimmt wird,
die mit dem Burst-Zugriff und der Burst-Länge bereitgestellt wird, welche
im Modusregister oder an einem anderen Ort im Computersystem eingestellt
ist. Die Wechsel-Sequenzen werden nachstehend unter Bezugnahme auf
die 3A, 3B und 3C beschrieben.
-
Der Unterschied zwischen den linearen
und den Wechsel-Inkrementiersequenzen, die von den linearen und
den Wechsel-Modi angewiesen werden, die in dem Modusregister eingestellt
sind, ist in den 3A, 3B und 3C für
Burst-Längen
von 2, 4 beziehungsweise 8 Datenelementen dargestellt. 3B zeigt beispielsweise
die Unterschiede zwischen den linearen und den Wechsel-Modus-Adressinkrementiersequenzen
für eine
Burst-Länge
von 4 Datenworten. Die Spalte 301 gibt den wert der zwei
niederwertigsten Bits der Startadresse an, die mit einer Burst-Zugriffsanforderung
bereitgestellt wird, welche hier auch als Datenelementstartadresse
bezeichnet. Die gesamten in 3B angegebenen
Zahlen sind Binärzahlen,
werden aber aus Gründen
der einfachen Darstellung und Lesbarkeit als Dezimalausdruck gezeigt.
-
Die bestimmte Wechsel- oder lineare
Inkrementiersequenz, die beispielsweise von der SDRAM-Inkrementiersteuerlogik
bereitgestellt wird, hängt
von der Datenelementstartadresse ab, die von dem Wert einer vorher
festgelegten Anzahl der niederwertigsten Bits der Startadresse bestimmt
wird, wobei die spezielle Anzahl der Bits von der Burst-Länge bestimmt
wird. Die Spalte 302 gibt die lineare Inkrementiersequenz
der zwei niederwertigsten Bits für
eine Burst-Zugriffsstartadresse an, welche niederwertigste Bits
mit einem Wert aufweist, der der in Spalte 301 angegebenen
Zahl entspricht. In ähnlicher
weise wird die Wechsel-Inkrementiersequenz der zwei niederwertigsten
Adressbits für
einen Burst-Speicherzugriff mit der entspre chenden Datenelementstartadresse
in Spalte 303 gezeigt. Man beachte, dass die linearen und
die Wechsel-Inkrementiersequenzen für Datenelementstartadressen
von 0 und 2 in dem Fall identisch sind, wenn die Burst-Länge auf
4 Worte eingestellt ist.
-
Die linearen und die Wechsel-Inkrementiersequenzen
für eine
Burst-Länge
von 2 Worten und für
eine Burst-Länge
von 8 Worten werden in ähnlicher
Weise in 3A beziehungsweise 3C dargestellt. Wie gezeigt,
sind die linearen und die Wechsel-Inkrementiersequenzen für eine Burst-Länge von 2
Worten identisch und somit ist das Neuprogrammieren des Modusregisters 201A für verschiedene Typen
von Zugriffen, die verschiedene Inkrementiermodi erfordern, nicht
notwendig. Die automatischen linearen und Wechsel-Modus-Inkrementiersequenzen
für Burst-Zugriffsstartadressen
mit niederwertigsten Bits gleich 0 und 4 sind ebenfalls identisch, wenn
die Burst-Länge
auf 8 Worte eingestellt ist, wie in 3C gezeigt.
-
Die übrigen Bits des Modusregisters 201A werden
verwendet, um die Latenzzeit eines Steuersignals einzustellen, das
als CAS#-Signal bezeichnet wird. Das CAS#-Signal steuert die Verfügbarkeit
der Daten, und die im Modusregister 201A eingestellte Latenzzeit
steuert, wie viele Taktzyklen verstreichen müssen, bevor die Daten aus einer
Datenzugriffsoperation auf dem Speicherdatenbus 122 verfügbar sind, nachdem
eine Zugriffsoperation initiiert worden ist. Der für die CAS#-Latenzzeit
eingestellte Wert ist eine Funktion des Geschwindigkeitsgrads oder
der Zugriffszeit der SDRAM-Einrichtung und der Taktfrequenz des
Computersystemtakts. Die Funktionsweise des CAS#-Signals und der
anderen SDRAM-Steuersignale ist Fachleuten bekannt und in Datenblättern von
SDRAM-Herstellern, wie beispielsweise NEC Corporation, problemlos
verfügbar.
-
Wie oben erwähnt, können die Modusregister 201A–203A während des
Set-ups oder der Konfiguration des Computersystems oder je nach
Bedarf laufend konfiguriert werden, wenn Veränderungen der Betriebsbedingungen
erforderlich sind.
-
Die Speichersteuereinrichtung
eines Ausführungsbeispiels
-
Es wird erneut auf 2 Bezug genommen; die Speichersteuereinrichtung 108 eines
Ausführungsbeispiels
wird detaillierter beschrieben. Die intelligente Inkrementiersteuerlogik 117 enthält die kombinatorische
Logik 211 und die Steuerlogik 213 zum Steuern
der Wechsel-Inkrementierlogik, um sowohl lineare als auch Wechsel-Modus-Inkrementiersequenzen
bereitzustellen, wie nachfolgend detaillierter beschrieben wird.
Zusammen mit der intelligenten Inkrementiersteuerlogik 117 enthält die Speichersteuereinrichtung 108 Adress-Latch-Speicher 204 zum
Latch-Speichern von Adressen, die von dem Host-Adressbus 107 und
dem peripheren Adress- und Datenbus 113 eingehen. Bei einem
Ausführungsbeispiel
ermöglichen
die Adress-Latch-Speicher 204 die Pipeline-Verarbeitung
von Speicherzugriffsanforderungen, um den Durchsatz der Anforderungen
zu erhöhen.
Speicherzugriffsanweisungen, die mit den Speicheradressen verbunden
sind, die von den Adress-Latch-Speichern 204 empfangen werden,
werden durch die intelligente Inkrementiersteuerlogik 117 von
dem Host-Steuerbus 106 und dem peripheren Steuerbus 112 empfangen.
Die mit den Adress-Latch-Speichern 204 gekoppelte Adressdecodierlogik 205 decodiert
eingehende Adressen, um zu bestimmen, ob damit verbundene Anweisungen,
wie beispielsweise Speicherzugriffsanweisungen, für den Hauptspeicher 109,
den Cache-Speicher oder eine andere Komponente des Computersystems
bestimmt sind.
-
Wenn die Adressdecodierlogik 205 bestimmt,
dass sich eine mit der Zugriffsanforderung verbundene Adresse im
Hauptspeicher 109 befindet, wird die Adresse von einem
Adresse-an-Speichereinheit-Decoder 206 in Zeilen- und Spaltenadresskomponenten
decodiert, die die bestimmte Speichereinheit der Spei chereinheiten 201–203 und
den genauen Speicherplatz identifiziert, auf welchen in der bestimmten
Speichereinheit zugegriffen wird. Der Adresse-an-Speichereinheit-Decoder 206 decodiert eingehende
Adressen, um den Speicherplatz zu bestimmen, auf den zugegriffen
wird, teilweise basierend auf Informationen, die in den Konfigurationsregistern 208 in
der Speichersteuereinrichtung 108 gespeichert sind.
-
Die Konfigurationsregister 208 enthalten Speichereinheitsgrenzregister 210.
Bei einem Ausführungsbeispiel
ist eine Speichereinheitgrößenbestimmungs-Routine
Bestandteil des BIOS, das im BIOS-ROM gespeichert ist und bei Inbetriebnahme oder
beim Neustart des Computersystems ausgeführt wird. Bei einem Ausführungsbeispiel
bestimmt die Größenbestimmungs-Routine
die Speicherkapazität
jeder der Speichereinheiten in dem Hauptspeicherarray und speichert
die Informationen in den Speichereinheitsgrenzregistern 210 in
Form von Start- und Endadressen für jede der Speichereinheiten.
Bei einem alternativen Ausführungsbeispiel
werden die Informationen in den Speichereinheitsgrenzregistern 211 basierend
auf der vom Benutzer des Computersystems bereitgestellten Eingabe
gespeichert, und zwar entweder über
die Eingabe in eine Konfigurations-Routine oder durch Einstellen
der Hardware-Schalter im Computersystem. Die Konfigurationsregister 208 können auch
weitere Konfigurationsregister enthalten, die verschiedene Arten
von Informationen speichern, welche hierin nicht diskutiert werden.
-
Wenn die Adresse der eingehenden
Speicherzugriffsanforderung entweder von dem Host-Adressbus 107 oder
dem peripheren Adress- und Datenbus 113 von dem Adresse-an-Speichereinheits-Decoder 206 decodiert
ist, wird die Adresse an die erfindungsgemäße intelligente Inkrementiersteuerlogik 117 weitergeleitet.
Während
Nicht-Burst-Zugriffsspeicheroperationen übergibt die intelligente Inkrementiersteuerlogik 117 die
Steuerung der Operation an die SDRAM-Zustandsmaschine 214.
Die SDRAM-Zu standsmaschine 214 dient der Bereitstellung
aller erforderlichen Steuersignale für SDRAM-Speicheroperationen
an die SDRAM-Speichereinheiten 201–203 über den
Speichersteuerbus 218. Während der Burst-Zugriffe operiert
die SDRAM-Zustandsmaschine 214 auf dieselbe Weise, aber
die Operation einiger der Steuersignale kann basierend auf der Eingabe
von der intelligenten Inkrementiersteuerlogik 117 verändert werden,
wie nachstehend detaillierter beschrieben wird.
-
Adressen der Speicherplätze, auf
die zugegriffen wird, werden an das Hauptspeicherarray 109 über den
Speicheradressbus 216 sowohl während Burst- als auch während Nicht-Burst-Speicherzugriffsoperationen übermittelt.
Die Daten werden über den
Speicherdatenbus 122 durch die Datenpfadeinheit 119 in
den und aus dem Hauptspeicher übermittelt.
Bei einem Ausführungsbeispiel
werden Daten über
den Host-Datenbus 120 an den und von dem Prozessor übermittelt,
oder an den und von dem peripheren Bus durch die Speichersteuereinrichtung 108 über den
peripheren Adress- und Datenbus 113. Die Übermittlung
von Daten in den und aus dem Hauptspeicher wird von der Speichersteuereinrichtung 108 durch
Steuersignale gesteuert, die über
den Speicherdatensteuerbus 125 an die Datenpfadeinheit 119 übermittelt
werden.
-
Die intelligente Inkrementiersteuerlogik
der Erfindung
-
Während
der Burst-Speicherzugriffsoperationen übernimmt die intelligente Inkrementiersteuerlogik 117 der
Erfindung die Steuerung von einigen der Speicherzugriffssteuersignalen,
um das automatische Inkrementieren einer Burst-Zugriffsstartadresse
in Zusammenarbeit mit der automatischen Wechsel-Inkrementiersteuerlogik
der SDRAM-Speichereinheiten 201–203 bereitzustellen.
Auf diese Weise dient die erfindungsgemäße intelligente Inkrementiersteuerlogik
zum Steuern der Sequenz eines Burst-Zugriffs auf den Speicher. Wie
oben diskutiert, steuert die intelligente Inkrementiersteuerlogik 117 das
automatische Inkrementieren einer Adresse, um sowohl lineare als
auch Wechsel-Inkrementiersequenzen unter Verwendung des automatischen Wechsel-Inkrementiermodus
eines SDRAM bereitzustellen.
-
Zusammen mit der kombinatorischen
Logik 211 und der Steuerlogik 213, welche wie
unten beschrieben operieren, enthält die intelligente Inkrementiersteuerlogik 117 eines
Ausführungsbeispiels ein
Register 212 zum Speichern der Burst-Länge, die bei einem Ausführungsbeispiel
während
der Konfiguration des Computersystems in die Modusregister 201A–203A programmiert
wird. Basierend auf der im Register 212 gespeicherten Burst-Länge, der
aus einer eingehenden Burst-Zugriffsanforderung bestimmten Datenelementstartadresse
und den Anforderungen der Einrichtung oder des Busses, von welchem
die Anforderung stammte, operiert die intelligente Inkrementiersteuerlogik,
um die richtige Adressinkrementiersequenz für einen Burst-Zugriff auf den Hauptspeicher 109 zu
bestimmen und zu steuern.
-
Die erfindungsgemäße intelligente Inkrementiersteuerlogik 117 bestimmt,
ob die verfügbare Wechsel-Modus-Adressinkrementiersequenz
verwendet werden soll, die vom Wert der vorher festgelegten Zahl
der niederwertigsten Bits angegeben wird, oder ob das Schalten zwischen
einer oder mehreren Wechsel-Modus-Inkrementiersequenzen gesteuert
werden soll, um eine benötigte
lineare Inkrementiersequenz als Reaktion auf eine bestimmte, von
der Speichersteuereinrichtung 108 empfangene Burst-Zugriffsanforderung
zu kopieren. Bei einem Ausführungsbeispiel
basiert die Festlegung, ob eine Wechsel- oder eine lineare Inkrementiersequenz
verwendet werden soll, auf der Quelle der Burst-Zugriffsanforderung,
kann aber bei anderen Ausführungsbeispielen
auch auf eine andere Weise bestimmt werden. Beispielsweise können bestimmte Einrichtungen
einen Code enthalten, der die Burst-Zugriffsanforderung begleitet
oder in der Anforderung codiert ist, welcher angibt, ob die bestimmte Einrichtung
eine lineare oder eine Wechsel-Modus-Adressinkrementiersequenz für einen
Burst-Zugriff benötigt.
Man beachte, dass das Wort „benötigt" in Bezug auf eine
Burst-Zugriffsinkrementiersequenz nicht notwendigerweise eine Architekturanforderung der
Einrichtung sein muss, aber auch verwendet wird, um einen Betriebszustand
mit einer höheren Leistung
oder eine vom Designer des Computersystems auferlegte Beschränkung anzuzeigen.
-
Die Arbeitsweise der erfindungsgemäßen intelligenten
Inkrementiersteuerlogik 117 wird hier am Beispiel einer
Burst-Länge von
4 Datenworten beschrieben. Fachleuten wird klar sein, dass die intelligente
Inkrementiersteuerlogik der Erfindung auch mit größeren und
kleineren Burst-Längen
arbeitet. Ferner können
auch – während für die Beschreibung
die Burst-Länge im Kontext
von Datenworten beschrieben wird – andere Größen von Dateneinheiten, wie beispielsweise
Speicherbits, –bytes
und -Seiten, in einem Burst-Zugriff übermittelt und von der intelligenten
Inkrementiersteuerlogik 117 der Erfindung gesteuert werden.
-
Die Arbeitsweise eines Ausführungsbeispiels
der intelligenten Inkrementiersteuerlogik 117 wird in Form
einer Blockdarstellung in 4 erläutert. Für die Zwecke
der Erläuterung
wird in diesem Beispiel davon ausgegangen, dass alle Hauptspeicherzugriffsanforderungen,
die von dem peripheren Bus, in diesem Beispiel einem PCI-Bus, ausgehen, erfordern,
dass die Speicheradresse für
einen Burst-Speicherzugriff auf lineare Weise inkrementiert wird.
Ferner erfordern bei diesem Beispiel alle Speicherzugriffsanforderungen,
die von Prozessor 101 oder dem Host-Bus ausgehen, dass
die Speicheradresse auf Wechsel- oder nicht-lineare weise für einen
Burst-Speicherzugriff inkrementiert wird. Somit wird in dem in 4 dargestellten Ausführungsbeispiel
die benötigte
Adressinkrementiersequenz von der Quelle der Burst-Zugriffsanforderung
be stimmt, in diesem Fall durch den Host-Bus oder den peripheren
Bus, von welchem die Burst-Zugriffsanforderung empfangen wird.
-
Das Verfahren eines Ausführungsbeispiels der
Erfindung zum Steuern von Burst-Speicherzugriffen, bei welchen nur
ein nicht-linearer oder Wechsel-Speicheradressinkrementiermodus
verwendet wird, beginnt bei Schritt 401. In Schritt 403 wird
eine Hauptspeicher-Burst-Zugriffsanforderung von der Speichersteuereinrichtung
empfangen. Dann wird, bei einem Ausführungsbeispiel parallel, die
Quelle der Burst-Zugriffsanforderung in Schritt 405 identifiziert
und die Datenelementstartadresse der Burst-Zugriffsanforderung wird
in Schritt 407 identifiziert. Die Datenelementstartadresse
ist der wert, der von einer vorher festgelegten Anzahl der niederwertigsten
Bits der Startadresse für
den Burst-Zugriff angegeben wird, welche zusammen mit der Burst-Zugriffsanforderung
bereitgestellt wird. Die vorher festgelegte Anzahl basiert auf der
Burst-Länge,
die in dem SDRAM-Modusregister und der intelligenten Inkrementiersteuerlogik
eingestellt ist.
-
In Entscheidungsblock 408 wird
bestimmt, ob die Speicherzugriffsanforderung von dem PCI-Bus stammte.
Ist das der Fall, dann beginnt bei Schritt 413 der Burst-Speicherzugriff
und wird in Übereinstimmung
mit dem nicht-linearen Inkrementiermodus ausgeführt, der in die SDRAM-Modusregister
des Hauptspeichers programmiert ist. Das Verfahren endet dann bei
Schritt 415. Es wird erneut auf Entscheidungsblock 408 Bezug
genommen; wenn die Anforderung nicht von dem PCI-Bus stammt, dann
bestimmt die erfindungsgemäße intelligente
Inkrementiersteuerlogik im Schritt 409 basierend auf der
im Schritt 407 identifizierten Startadresse, ob die linearen
und nicht-linearen Inkrementiersequenzen für diese bestimmte Startadresse
gleich sind. Ist das der Fall, dann wird in Schritt 413 der
Burst-Zugriff gemäß dem nicht-linearen
oder Wechsel-Adressinkrementiermodus ausgeführt, der von der bestimmten SDRAM-Spei chereinheit
gesteuert wird, auf die im Hauptspeicher zugegriffen wird. Wenn
bei Entscheidungsblock 408 die linearen und Wechsel-Modus-Inkrementiersequenzen
für diese
bestimmte Adresse nicht gleich sind, dann steuert die intelligente
Inkrementiersteuerlogik in Schritt 411 die Speicheradressinkrementiersequenz
durch das Wechseln zwischen bestimmten nichtlinearen Inkrementiersequenzen entsprechend
den verschiedenen Datenelementstartadressen, um die gewünschte lineare
Inkrementiersequenz zu kopieren. Die intelligente Inkrementiersteuerlogik
der Erfindung führt
dies aus, indem sie die Startadresse unter Verwendung der kombinatorischen
Logik manipuliert und auch indem sie die Speicherzugriffssteuersignale
unter Verwendung der Steuerlogik 213 steuert. Auf diese
Weise können
Daten in Speicherplätzen
ignoriert werden, sofern erforderlich, um die lineare Zugriffssequenz
zu kopieren. Das Verfahren endet dann bei Schritt 415.
-
Ein spezielleres Beispiel der Arbeitsweise der
erfindungsgemäßen intelligenten
Inkrementierlogik wird unter Bezugnahme auf 2, 3 und 5 beschrieben. Bei diesem
Beispiel ist die Burst-Länge sowohl
in den SDRAM-Modusregistern als auch in der intelligenten Inkrementiersteuerlogik
auf 4 Worte eingestellt worden. Die linearen und die Wechsel-Inkrementiersequenzen
sind dieselben wie jene, die unter Bezugnahme auf 3B beschrieben wurden.
-
Es wird auf 5 Bezug genommen; die Speicheradressinkrementiersteueroperation
für eine Burst-Länge von
vier Datenworten beginnt bei Schritt 501. Es wird bei Schritt 502 eine
Speicherzugriffsanforderung von der Speichersteuereinrichtung 108 empfangen – entweder
von dem Host-Steuerbus 106 oder dem peripheren Steuerbus 112 – zusammen
mit einer Burst-Zugriffsstartadresse auf dem entsprechenden Adressbus,
entweder dem Host-Adressbus 107 oder dem peripheren Adress-/Datenbus 113.
Bei diesem Ausführungsbeispiel
wird die Quelle der Anforderung von dem Bus identifiziert, von welchem
die Anforderung im Schritt 503 empfangen wurde. Bei anderen
Ausführungsbeispielen
kann die benötigte Inkrementiersequenz
auf andere Weise bestimmt werden.
-
Wenn bei Entscheidungsblock 505 die Burst-Zugriffsanforderung
nicht von dem peripheren Bus 111, in diesem Beispiel einem
PCI-Bus, stammte, dann ist in diesem Beispiel eine Wechsel-Inkrementiersequenz
erforderlich. Bei Schritt 507 wird der Wert der zwei niederwertigsten
Bits der Startadresse bestimmt, die die Datenelementstartadresse
angeben. In diesem Fall wird die Datenelementstartadresse unter
Verwendung der zwei niederwertigsten Bits bestimmt, weil die Burst-Länge auf
vier Datenworte eingestellt ist. Die zwei niederwertigsten Bits
der Startadresse definieren somit eindeutig eines von vier Datenworten
als den Startpunkt für
den Burst-Zugriff, wobei der Rest der Startadresse eine bestimmte Cache-Zeile
angibt, beispielsweise unter der Annahme, dass die Burst-Länge von
vier Worten gewählt wird,
um der Zeilenlänge
eines Cache-Speichers oder eines anderen Speichers zu entsprechen,
wenn die Datenelementstartadresse bestimmt worden ist, dann wird
in Schritt 509 die Wechsel-Inkrementiersequenz für diese Datenelementstartadresse
ausgeführt,
und die Burst-Zugriffssequenz endet bei Schritt 510.
-
Es wird erneut auf Entscheidungsblock 505 Bezug
genommen; wenn die Burst-Zugriffsanforderung von dem PCI-Bus (dem
peripheren Bus 111) stammt, dann wird in Schritt 511 der
wert der zwei niederwertigsten Bits der Startadresse oder die Datenelementstartadresse
bestimmt. Wenn bei Entscheidungsblock 513 die Datenelementstartadresse 0
oder 2 ist, sind die Toggel- und linearen Inkrementiersequenzen
gleich, wie in 3B dargestellt. Dann
wird in Schritt 514 die bestimmte Wechsel-Inkrementiersequenz
entsprechend der Datenelementstartadresse verwendet, um den Burst-Zugriff
zu steuern, und die Sequenz endet bei Schritt 510. Auf diese
Weise entsteht keine Verzögerung
für einen Burst-Zugriff,
der von einem Agenten auf dem peripheren Bus initiiert wird, wie
sie festzustellen wäre, wenn
es erforderlich gewesen wäre,
das Modusregister des SDRAM, auf den zugegriffen wurde, neu zu programmieren,
um eine lineare Inkrementiersequenz bereitzustellen.
-
Es wird erneut auf Entscheidungsblock 513 Bezug
genommen; wenn der Wert der Datenelementstartadresse nicht 0 oder
2 ist, dann wird im Entscheidungsblock 515 bestimmt, ob
der Wert der Datenelementstartadresse 1 ist. Ist das der Fall, dann wird
bei Schritt 517 die Datenelementstartadresse mit der kombinatorischen
Logik kombinatorisch zu einer Datenelementstartadresse von 0 verändert, und bei
Schritt 519 wird die entsprechende Wechsel-Inkrementiersequenz
verwendet, um den Beginn des Burst-Zugriffs zu steuern. Wenn im
Entscheidungsblock 521 die Burst-Zugriffsoperation eine
LESE-Operation ist, wird das erste Datenelement ignoriert, auf das
die Burst-Zugriffsoperation zugreift, die von der Wechsel-Inkrementiersequenz
für eine
Datenelementstartadresse von 0 gesteuert wird. Bei einem Ausführungsbeispiel
wird das erste Datenelement, auf das zugegriffen wird, ignoriert,
indem das Anlegen eines Steuersignals verzögert wird, welches anzeigt,
dass sich auf dem peripheren Adress-/Datenbus 113 als Reaktion
auf die Burst-Zugriffsanforderung gültige Daten befinden, indem
die Steuerlogik des intelligenten Inkrementiersteuermechanismus zum
Steuern der SDRAM-Zustandsmaschine 214 verwendet wird.
Im Schritt 527 ist der Burst-Zugriff gemäß der Wechsel-Inkrementiersequenz
für eine Datenelementstartadresse
von 0 abgeschlossen. Es wird erneut auf Entscheidungsblock 521 Bezug
genommen; wenn die Operation keine Burst-LESE-Operation ist, dann
wird bei Schritt 523 für
einen Burst-SCHREIB-Zugriff das erste Datenelement ebenfalls ignoriert.
Bei einem Ausführungsbeispiel wird
das Datenelement durch Anlegen eines DQM-Signals des SDRAM, auf den
zugegriffen wird, ignoriert, indem die Steuerlogik der intelligenten
Inkrementierlogik derart verwendet wird, dass das erste Datenelement
nicht in den bestimmten SDRAM geschrieben wird, auf den zugegriffen
wird. Dann wird im Schritt 527 der Burst-Zugriff unter
der Steuerung der SDRAM-Wechsel-Inkrementiersequenz für eine Datenelementstartadresse
von 0 abgeschlossen, und der Burst-Zugriff endet bei Schritt 510.
Somit entsteht bei einem Ausführungsbeispiel
für eine
lineare Inkrementiersequenz mit einer Datenelementstartadresse von
1 ein Zeitverlust von einem Takt, wenn das erste Datenelement ignoriert
wird. Dieser Zeitverlust von einem Takt ist viel weniger als die
vier Taktzyklen, die benötigt
werden, um das SDRAM-Modusregister neu zu programmieren, um eine
automatische lineare Adressinkrementiersequenz bereitzustellen und
zu warten, bis Daten erneut übertragen
werden können.
Auf diese Weise wird die Speicherzugriffsleistung für Burst-Zugriffe
signifikant verbessert.
-
Es wird erneut auf Entscheidungsblock 515 Bezug
genommen; wenn der Wert der Datenelementstartadresse nicht 1 ist,
dann ist bei Schritt 531 der Wert der Datenelementstartadresse
3. Bei Schritt 533 wird die Wechsel-Inkrementiersequenz
für eine Datenelementstartadresse
von 3 verwendet, um den Beginn des Burst-Zugriffs zu steuern. Nachdem
bei Schritt 535 auf ein Datenelement zugegriffen wurde, wird
ein weiterer Burst-Zugriffszyklus
mit einer Datenelementstartadresse von 0 begonnen, indem der Wert
der zwei niederwertigsten Bits kombinatorisch verändert und
dann durch die entsprechende Wechsel-Inkrementiersequenz gesteuert
wird. Datenelemente, die über
die geforderte Burst-Länge
hinausgehen, werden ignoriert, indem die richtigen Steuersignale
unter Verwendung der Steuerlogik angelegt werden, in Abhängigkeit
davon, ob der Zugriff ein LESEN oder SCHREIBEN ist. Der Zugriff
endet dann bei Schritt 510. In diesem Fall entsteht bei
einem Ausführungsbeispiel
ein Zeitverlust von einem Takt beim Beginn der zweiten Burst-Zugriffssequenz.
Wie oben ist diese Verzögerung
bei der Verarbeitung der Burst-Zugriffsanforderung geringer als
der Zeitverlust von vier Takten, der durch das Neuprogrammieren des
SDRAM-Modusregisters zur Bereitstellung einer automatischen linearen
Adressinkrementiersequenz entsteht.
-
Zusammen mit der erhöhten Burst-Zugriffseffizienz,
die von der Erfindung wie oben beschrieben bereitgestellt wird,
bietet die Erfindung auch den Vorteil der Reduzierung von Testkosten,
die mit den SDRAMs verbunden sind. Wenn nur der automatische Wechsel-Adressinkrementiermodus
für Burst-Zugriffe
verwendet wird, ist das Testen des SDRAM im linearen Inkrementiermodus
nicht erforderlich. Ferner kann bei künftigen Versionen von SDRAM-Einrichtungen
Siliziumplatz eingespart werden, da es nicht erforderlich ist, die
Steuerlogik einzubeziehen, die mit der automatischen linearen Adressinkrementiersequenz
verbunden ist.
-
Obwohl das obige Verfahren unter
Bezugnahme auf eine Burst-Länge
von 4 Datenworten beschrieben wurde, wird Fachleuten klar sein,
dass andere Burst-Längen
innerhalb des Schutzbereichs der Erfindung liegen. während nach
dem Lesen der vorhergehenden Beschreibung einem Fachmann viele Änderungen
und Modifikationen der Erfindung einfallen können, sollte klar sein, dass
die speziellen Ausführungsbeispiele,
die zur Veranschaulichung gezeigt und beschrieben wurden, in keiner
Weise als Beschränkung
zu betrachten sind. Daher haben die Bezüge auf Details verschiedener
Ausführungsbeispiele
nicht den Zweck, den Schutzbereich der Ansprüche zu beschränken, welche
ihrerseits nur jene Merkmale enthalten, die als wesentlich für die Erfindung
betrachtet werden.