-
Gebiet der
Erfindung
-
Die
Erfindung betrifft die Computerspeicherverwaltung, spezieller ein
Verfahren und ein System zur Speicherzugriffsverwaltung, die zur
Verwendung mit einem SDRAM (Synchronous Dynamic Random-Access Memory
= synchroner, dynamischer Direktzugriffsspeicher) oder dergleichen
konzipiert sind, um die Leistungsfähigkeit von Speicherzugriffen auf
den SDRAM dadurch zu verbessern, dass der Speicherzugriffsverlauf
bisheriger Zugriffsoperationen verfolgt wird.
-
Hintergrundbildende
Technik
-
In
einem Computersystem wird eine Mastereinheit dazu verwendet, Zugriffsoperationen,
seien sie zum Lesen oder zum Schreiben, betreffend den Primärspeicher
des Computersystems zu steuern. Im Allgemeinen fokussiert sich der
Speicherzugriff auf einige spezielle Segmente statt auf alle Segmente
im Primärspeicher;
anders gesagt, wird auf einige Segmente am häufigsten zugegriffen, mehr
als auf andere. Beim Design eines Speicherseiten-Verwaltungssystems
sind die Überlegungen
darauf gerichtet, einen Overhead und die Ansprechzeit zu verringern.
-
Ein
SDRAM (Synchronous Dynamic Random-Access Memory) ist ein neuer Typ
eines Speichers. Jede SDRAM-Einheit ist typischerweise in vier Unterbänke unterteilt,
wobei jede Unterbank eine Anzahl von Seiten enthält, von denen nur eine zu einem Zeitpunkt
geöffnet
werden kann. Anders gesagt, können
in jeder SDRAM-Einheit zum selben Zeitpunkt höchstens vier Seiten geöffnet sein.
Herkömmlicherweise
ist jeder Unterbank eine Speichersteuereinheit zum Verwalten der
Seiten in ihr zugeordnet. Daher sind für jede SDRAM-Einheit vier Speichersteuereinheiten
erforderlich. Dieses Seitenverwaltungsschema zeigt jedoch die folgenden
Nachteile.
-
Wenn
ein Speichersteckplatz unbenutzt ist oder in ihm eine SDRAM-Einheit
montiert ist, die nur zwei Unterbänke enthält, wird die Bereitstellung
von vier Speichersteuereinheiten nicht vollständig genutzt, weswegen die
Nutzung kostenineffizient ist.
-
Wenn
ein VC-SDRAM (Virtual Channel SDRAM) verwendet wird, erlaubt, da
jede VC-SDRAM-Einheit sechzehn Kanäle bereitstellen kann, das
Bereitstellen von vier Speichersteuereinheiten nur die Nutzung von
vier der sechzehn Kanäle, und
die anderen sechzehn Kanäle
bleiben unbenutzt. Eine Lösung
für dieses
Problem besteht darin, für jede
VC-SDRAM-Einheit 16 Speichersteuereinheiten bereitzustellen.
Jedoch würde
diese Lösung
eine sehr große
Schaltungslayoutfläche
benötigen,
um alle sechzehn Speichersteuereinheiten einzubauen, weswegen diese
ziemlich kostenineffizient wäre. Darüber hinaus
würde die
Verwendung von sechzehn Speichersteuereinheiten zu einer großen Verzögerung der
Zugriffsoperation führen,
weswegen dies zur Verwendung bei einem Hochgeschwindigkeits-Computersystem
ungeeignet ist.
-
Außerdem sind
herkömmlicherweise
Register bereitgestellt, um die Adressen der Speicherseiten zu speichern,
wobei die Anzahl der Register der Anzahl der Speicherseiten entspricht
oder größer ist. Wenn
beispielsweise angenommen wird, dass vier DIMM-Module vorhanden
sind, verfügt
jeder DIMM über
zwei Bänke,
und jede Bank verfügt über vier
Unterbänke.
Da eine Speicherseite einer Unterbank entspricht, sind 32 Register
dazu erforderlich, 32 Adressendaten für die Speicherseiten zu speichern.
Demgemäß ist die
Layoutfläche
für die Register
groß.
-
Demgemäß besteht
Bedarf an einem neuen Verfahren und System zur Speicherzugriffsverwaltung,
die bei verschiedenen Typen von Speichern verwendet werden können, einschließlich SDRAMs, VC-SDRAMs
und EDO-DRAMs.
-
Zusammenfassung
der Erfindung
-
Daher
ist eine Aufgabe der Erfindung, ein neues Verfahren und ein System
zur Computer-Speicherzugriffsverwaltung zu schaffen, die zur Verwendung
bei einem SDRAM oder dergleichen konzipiert sind, um die Leistungsfähigkeit
von Speicherzugriffen auf dem DRAM zu verbessern.
-
Gemäß der vorstehenden
und anderen Aufgaben der Erfindung sind ein neues Verfahren und ein
System zur Computer-Speicherzugriffsverwaltung geschaffen.
-
Gemäß einer
Ausführungsform
der Erfindung ist durch diese ein System zur Speicherseitenverwaltung
geschaffen, um den Zugriffsverlauf betreffend eine Speichereinheit
mit N Speicherseiten zu verfolgen. Das Speicherseiten-Verwaltungssystem verfügt über eine
Verwaltungsvorrichtung zum Verwalten der N Speicherseiten. Gemäß dieser
Ausführungsform
verfügt
die Verwaltungsvorrichtung ferner über eine Seitenregistereinheit.
Die Seitenregistereinheit wird dazu verwendet, K Speichereinheiten
zu speichern, von denen jede einen Adressdatenwert speichert, der
einer der Speicherseiten entspricht. Die Nutzungsrate-Registereinheit
ist mit der Seitenregisterschaltung gekoppelt, und sie wird dazu
verwendet, die Nutzung der Speichereinheiten zu überwachen. Beim praktischen
Design der Erfindung ist die Zahl K kleiner als die Zahl N.
-
Zusätzlich kann
die Verwaltungsvorrichtung ferner über eine Vergleichseinheit
verfügen,
die mit der Seitenregistereinheit verbunden ist und dazu verwendet
wird, eine Zugriffsadresse zu empfangen und ein Treffersignal entsprechend
einem Vergleichsergebnis zwischen der Zugriffsadresse und dem in
der Seitenregistereinheit gespeicherten Adressdatenwert auszugeben.
Im Betrieb wird das Treffersignal aktiviert, wenn die Zugriffsadresse
einen der Adressdatenwerte trifft, wie sie in der Seitenregistereinheit gespeichert
sind. Die Verwaltungsvorrichtung kann ferner über eine Gültigkeitsprüfereinheit verfügen, die
mit der Seitenregistereinheit verbunden ist, um zu emitteln, ob
der in der Seitenregistereinheit gespeicherte Adressdatenwert gültig ist.
-
Gemäß einer
anderen Ausführungsform
ist durch die Erfindung ferner ein Speicherseiten-Verwaltungssystem
zum Verfolgen eines Zugriffsverlaufs einer Speichereinheit geschaffen,
das über
eine Speichereinheit und eine Verwaltungsvorrichtung verfügt. Die
Speichereinheit ist so konfiguriert, dass sie über N Speicherseiten verfügt. Die
Verwaltungsvorrichtung wird dazu verwendet, die N Speicherseiten
zu verwalten, und sie verfügt
ferner über
eine Seitenregistereinheit. Die Seitenregistereinheit wird zum Speichern
von K Speichereinheiten verwendet, von denen jede einen Adressdatenwert
der Speicherseite speichert. Die Nutzungsrate-Registereinheit ist
mit der Seitenregisterschaltung verbunden, und sie wird dazu verwendet,
die Nutzung der Speichereinheiten zu überwachen. Bei einem praktischen
Design ist die Zahl K kleiner als die Zahl N.
-
Zusätzlich kann
die Verwaltungsvorrichtung ferner über eine Vergleichseinheit
verfügen,
die mit der Seitenregistereinheit verbunden ist, die zum Empfangen
einer Zugriffsadresse und zum Ausgeben eines Treffersignals entsprechend
einem Vergleichsergebnis zwischen der Zugriffsadresse und dem in der
Seitenregistereinheit gespeicherten Adressdatenwert verwendet wird.
Im Betrieb wird das Treffersignal aktiviert, wenn die Zugriffsadresse
auf den in der Seitenregistereinheit gespeicherten Adressdatenwert
trifft. Die Verwaltungsvorrichtung kann ferner über eine Gültigkeitsprüfeinheit verfügen, die
mit der Seitenregistereinheit verbunden ist, um zu ermitteln, ob
der in der Seitenregistereinheit gespeicherte Adressdatenwert gültig ist.
-
Das
Verfahren und das System zur Speicherzugriffsverwaltung gemäß der Erfindung
verfügen über die
folgenden Vorteile. Erstens können
sie die Leistungsfähigkeit
bei Speicherzugriffen durch Verfolgen des Verlaufs bisheriger Zugriffsoperationen auf
den SDRAM verbessern. Ferner können
sie vorab beurteilen, ob der nächste
Pipelinezugriff eine Vorabladeoperation erfordert oder nicht; falls
ja, wird zum Zeitpunkt, zu dem der aktuelle Zugriff gehandhabt wird,
ein Vorablade-Freigabesignal ausgegeben. Im Ergebnis kann die Verzögerung beim
Zugriff verringert werden. Insgesamt ist die Leistungsfähigkeit
beim Speicherzugriffen verbessert. Herkömmlicherweise verfügt ein Speicherseiten-Verwaltungssystem
zum Verfolgen des Zugriffsverlaufs einer Speichereinheit über einen
Speicher mit mehreren Speicherseiten sowie eine Seitenregistereinheit
mit mehreren Speichereinheiten zum Speichern der Adressdaten der
Speicherseiten. Jede Speichereinheit speichert einen Adressdatenwert
einer Speicherseite, und die Zahl der Speichereinheiten der Seitenregistereinheit
entspricht der Anzahl der Speicherseiten. Als Beispiel sei angenommen,
dass das System vier DIMMS enthält,
jeder DIMM über
zwei Bänke verfügt und jede
Bank über
vier Unterbänke
verfügt, so
dass jede Unterbank einer Speicherseite entspricht. Daher verfügt der Systemspeicher
insgesamt über 32 Speicherseiten.
Das heißt,
dass gemäß der herkömmlichen
Technologie 32 Speichereinheiten, wie 32 Register
erforderlich sind. Demgegenüber kann
gemäß der Erfindung
die Anzahl der bei der Erfindung verwendeten Register z. B. auf
die Hälfte
der Anzahl der Register verringert werden, wie sie bei der herkömmlichen
Technologie verwendet werden. Das heißt, dass nur sechzehn Register
benötigt
werden, weswegen im Chiplayout die Fläche für sechzehn Register eingespart
werden kann.
-
Kurze Beschreibung
der Zeichnungen
-
Die
Erfindung ist durch Lesen der folgenden detaillierten Beschreibung
der bevorzugten Ausführungsformen
unter Bezugnahme auf die beigefügten Zeichnungen
vollständiger
zu verstehen.
-
1 ist
ein schematisches Blockdiagramm, das die Hardware-Grundkonfiguration
des Verfahrens und des Systems zur Speicherzugriffsverwaltung gemäß der Erfindung
zeigt;
-
2 ist
ein schematisches Diagramm, das ein Beispiel einer Seitentabelle
zeigt, wie sie beim Speicherzugriffs-Verwaltungssystem der 1 verwendet
wird;
-
3 ist
ein schematisches Blockdiagramm, das detaillierter die interne Architektur
der Vergleichseinheit zeigt, wie sie im Speicherzugriffs-Verwaltungssystem
der 1 verwendet wird;
-
4 ist
ein schematisches Blockdiagramm, das detaillierter die interne Architektur
der Seitentabelle-Registereinheit zeigt, wie sie im Speicherzugriffs-Verwaltungssystem
der 1 verwendet wird;
-
5A ist
ein schematisches Blockdiagramm, das detaillierter die interne Architektur
der Nutzungsrate-Registereinheit zeigt, wie sie im Speicherzugriffs-Verwaltungssystem
der
-
1 verwendet
wird;
-
5B ist
ein schematisches Blockdiagramm, das die Eingangs/Ausgangs-Konfiguration der
Gültigkeitsprüfeinheit
zeigt, wie sie im Speicherzugriffs-Verwaltungssystem der 1 verwendet wird;
-
6 ist
ein Flussdiagramm, das Prozedurschritte zeigt, wie sie beim Verfahren
des Verfahrens vorkommen;
-
7A–7G sind
Tabellen, die dazu verwendet werden, ein Beispiel der Daten zu zeigen,
wie sie in der im Speicherzugriffs-Verwaltungssystem der 1 verwendeten
Speichertabelle auf eine Abfolge von Zugriffsanforderungen hin gespeichert
werden;
-
8A–8D sind
Signalabfolgediagramme, die dazu verwendet werden, Timings zwischen verschiedenen
Signalen im erfindungsgemäßen Speicherzugriffs-Verwaltungssystem
zu zeigen; und
-
9A–9B sind
Signalabfolgediagramme, die dazu verwendet werden, Timings zwischen verschiedenen
Signalen im erfindungsgemäßen Speicherzugriffs-Verwaltungssystem
zu zeigen.
-
Detaillierte
Beschreibung bevorzugter Ausführungsformen
-
Durch
die Erfindung sind ein Verfahren und ein System zur Speicherzugriffsverwaltung
geschaffen, die eine Seitentabelle dazu verwenden, den Verlauf bisheriger
Zugriffsoperationen auf eine Speichereinheit, wie einen SDRAM oder
dergleichen, dadurch zu verfolgen, dass die Adressdaten der bisherigen
Zugriffsanforderungen registriert werden. Auf irgendeine folgende
Zugriffsanforderung hin wird als Erstes die Seitentabelle überprüft, um zu
sehen, ob die aktuell ange forderte Speicheradresse mit irgendeinem
registrierten Adressdatenwert in der Seitentabelle übereinstimmt.
Dieses Schema kann dazu beitragen, die Rate von Seitentreffern betreffend
die Speichereinheit zu erhöhen,
um so die Gesamtleistungsfähigkeit
betreffend Zugriffe auf die Speichereinheit zu erhöhen.
-
Die 1 ist
ein schematisches Blockdiagramm, das die Grundkonfiguration der
Hardwarerealisierung des Verfahrens und des Systems zur Speicherzugriffsverwaltung
gemäß der Erfindung zeigt.
Wie dargestellt, verfügt
das erfindungsgemäße Speicherzugriffs-Verwaltungssystem,
hier mit der Bezugszahl 100 gekennzeichnet, über eine
Vergleichseinheit 110, eine Seitentabelle-Registereinheit 120, eine
Nutzungsrate-Registereinheit 130 und eine Gültigkeitsprüfeinheit 140.
Im Gebrauch kann das Speicherzugriffs-Verwaltungssystem 100 dazu
verwendet werden, eine Mastereinheit und eine SDRAM-Einheit zu steuern,
und es kann es der Mastereinheit ermöglichen, auf effizientere Weise
auf die SDRAM-Einheit zuzugreifen.
-
Die
Vergleichseinheit 110 verfügt über eine Eingangsseite zum
Empfangen einer Anzahl decodierter Adresssignale Da[27:11], SEGIN[1:0]
und BANK[0:0] von dieser sowie eine Ausgangsseite zum Ausgeben einer
Anzahl von Zugriffssteuersignalen einschließlich eines Seitentreffersignals
ONPAG, eines Banktreffersignals BKHIT und eines Segmenttreffersignals
SEGHIT zum Steuern der SDRAM-Einheit. Es sei darauf hingewiesen,
dass diese Signale auf den aktivierten Zustand umgeschaltet werden, wenn
die zugeordnete Datenleitung in einen bestimmten logischen Zustand
gebracht wird, der entweder ein solcher mit hoher Spannung oder
ein solcher mit niedriger Spannung sein kann, was auf der Wahl des
Designers beruht. Wenn das Seitentreffersignal ONPAG aktiviert ist,
zeigt es an, dass sich die angeforderten Daten in der aktuell geöff neten
Seite befinden; wenn das Banktreffersignal BKHIT aktiviert ist,
zeigt es an, dass die angeforderten Daten in der aktuellen Bank
liegen; und wenn das Segmenttreffersignal SEGHIT aktiviert ist,
zeigt dies an, dass die angeforderten Daten im aktuellen Segment
liegen. Ferner ist, im Gebrauch der SDRAM-Einheit, die Ausgabe eines
Vorabladesignals und eines Aktivier-Freigabesignals an die SDRAM-Einheit
erforderlich, wenn es erwünscht
ist, eine spezielle Seite in der SDRAM-Einheit zu öffnen oder
zu schließen.
Dieses Erfordernis ist dem Fachmann betreffend den Gebrauch eines
SDRAM bekannt, und es gehört
nicht zum Grundgedanken und Schutzumfang der Erfindung, so dass
die Signalpfade für
das Vorablade-Freigabesignal und das Aktivier-Freigabesignal der
Vereinfachung der Zeichnung und der Beschreibung halber in der 1 nicht
dargestellt sind.
-
Die
Seitentabelle-Registereinheit 120 wird dazu verwendet,
eine Seitentabelle 125 zu speichern, die dazu verwendet
wird, die Adressdaten bisheriger Zugriffsoperationen auf die SDRAM-Einheit zu
registrieren. Ein Beispiel der Seitentabelle 125 ist in
der 2 dargestellt. Die Registereinheit 120 ist so
konfiguriert, dass sie über
K Speichereinheiten verfügt.
Die Zahl K kann so konzipiert sein, dass sie kleiner als die Seitenanzahl
N des Speichers ist. Herkömmlicherweise
verfügt
ein Speicherseiten-Verwaltungssystem zum Verfolgen eines Zugriffsverlaufs
einer Speichereinheit über
einen Speicher mit mehreren Speicherseiten sowie eine Seitenregistereinheit mit
mehreren Speichereinheiten zum Speichern der Adressdaten der Speicherseiten.
Jede Speichereinheit speichert einen Adressdatenwert einer Speicherseite,
und die Anzahl der Speichereinheiten der Seitenregistereinheit entspricht
der Anzahl der Speicherseiten. Als Beispiel sei angenommen, dass
das System vier DIMMs enthält,
jeder DIMM über
zwei Bänke
verfügt
und jede Bank über
vier Unterbänke verfügt, so dass
jede Unterbank einer Speicherseite entspricht. Daher verfügt der Systemspeicher über insgesamt 32 Speicherseiten.
Das heißt,
dass gemäß der herkömmlichen
Technologie 32 Speichereinheiten, wie 32 Register
erforderlich sind. Demgegenüber
kann gemäß der Erfindung
die Anzahl de bei der Erfindung verwendeten Register z. B. auf die Hälfte der
Anzahl der Register verringert werden, wie sie bei der herkömmlichen
Technologie verwendet werden. Das heißt, dass nur sechzehn Register
benötigt
werden, weswegen im Chiplayout die Fläche für sechzehn Register eingespart
werden kann.
-
Wie
dargestellt, enthält
die Seitentabelle 125 eine vorbestimmte Anzahl von Zeilen
und Spalten von Daten, z. B. acht Zeilen, die jeweils mit den Bezugsbuchstaben
A, B, ... sowie H gekennzeichnet sind, wobei jede Zeile sechs Datenfelder
enthält, nämlich BKVC,
BNK, SEG, PAG, LRU und VLD (es ist zu beachten, dass nachfolgend
in der gesamten Beschreibung die Kennzeichnung BKVC A dazu verwendet
wird, den Inhalt des Felds BKVC in der Zeile A zu repräsentieren,
oder das Datensignal, das dazu verwendet wird, den Inhalt des Felds
BKVC in der Zeile A auf einen spezifizierten Wert einzustellen). Jede
Zeile dient zur Verwendung durch eine vorige Zugriffsoperation.
Das Feld BKVC wird dazu verwendet, Daten anzugeben, wie sie bei
einem vorigen Zugriff auf eine VC-SDRAM-Einheit in einer Seitentabelle gespeichert
wurden (wenn die SDRAM-Einheit eine VC-SDRAM-Einheit ist); das Feld
BNK wird dazu verwendet, die Bankadresse bei einem vorigen Zugriff
auf die SDRAM-Einheit oder den VC-SDRAM zu speichern; das Feld SEG
wird dazu verwendet, die Segmentadresse bei einem vorigen Zugriff
auf den VC-SDRAM zu speichern; das Feld BAG wird dazu verwendet,
die Seitenadresse bei einem vorigen Zugriff auf die SDRAM-Einheit
oder den VC-SDRAM zu speichern. Außerdem wird das Feld LRU dazu
verwendet, einen Zahlwert im Bereich von 0 bis 7 zu speichern, der
den Nutzungsgrad der zugeordneten Adressdaten definiert, wie sie
in den Feldern BKVC, BNK, SEG und PAG registriert sind; außerdem wird das
Feld VLD dazu verwendet, ein Gültigkeitsbit
zu speichern, das anzeigt, ob der zugehörige Adressdatenwert gültig oder
ungültig
ist. Beim Beispiel der 2 sind nur diejenigen Datenfelder
aufgelistet, die in Zusammenhang mit dem Grundgedanken und Schutzumfang
der Erfindung stehen. Bei einer praktischen Realisierung kann die
Seitentabelle 125 andere, zusätzliche Felder zum Speichern
von Daten für
verschiedene andere Zwecke auf Grundlage tatsächlicher Anwendungserfordernisse
enthalten. Darüber
hinaus sind diese Datenfelder hier auf kollektive Weise in einer
Tabelle dargestellt, jedoch können
in der Praxis einige der Datenfelder in anderen Einheiten enthalten
sein; z. B. können
die LRU-Daten in
der Nutzungsrate-Registereinheit 130 enthalten sein, und
die VLD-Daten können
in der Gültigkeitsprüfeinheit 140 enthalten
sein.
-
Die 3 ist
ein schematisches Blockdiagramm, das detaillierter die interne Architektur
der im Speicherzugriffs-Verwaltungssystem 100 der 1 verwendeten
Vergleichseinheit 110 zeigt. Wie dargestellt, verfügt die Vergleichseinheit 110 über eine
Seitenvergleichseinheit 310, eine Bankvergleichseinheit 320 und
eine Gruppe von NAND-Gattern 330, 340, 350.
Die Seitenvergleichseinheit 310 wird dazu verwendet, den
Adressdatenwert der aktuell ausgegebenen Zugriffsanforderung von
der Mastereinheit, d.h. DA[27:11] und SEGIN[1;0], mit jeder von
acht Adressdatensätzen
(PAG A, SEG A, BKVC A) 311, (PAG B, SEG B, BKVC B) 312,
... und (PAG H, SEG H, BKVC H) 318 aus der Seitentabelle 125 zu
vergleichen, um zu überprüfen, ob
in jüngerer
Zeit auf die angeforderte Speicherstelle zugegriffen wurde. Die Seitenvergleichseinheit 310 gibt
ein Seitentreffersignal PAGHIT[7:0] aus, das anzeigt, ob die aktuelle
Zugriffsanforderung einem Seitentreffer entspricht, und sie gibt
ein Segmenttreffersignal SEG-HIT[7:0]
aus, das anzeigt, ob die aktuelle Zugriffsanforde rung einem Segmenttreffer
entspricht.
-
Die
Bankvergleichseinheit 320 wird dazu verwendet, den Bank-Adressdatenwert der
aktuell von der Mastereinheit ausgegebenen Zugriffsanforderung,
d.h. BANK[9:0], mit jedem der acht Adressdatensätze (BNK_A, VLD_A) 321,
(BNK_B, VLD_B) 322, ..., (BNK_H, VLD_H) 328 zu
vergleichen. Die Bankvergleichseinheit 320 gibt ein Banktreffersignal BKHIT_[H:A]
aus, das anzeigt, ob die aktuelle Zugriffsanforderung einem Banktreffer
entspricht, ein Seitentreffersignal PGHIT_[H:A], das anzeigt, ob
die aktuelle Zugriffsanforderung einem Seitentreffer entspricht,
und ein Segmenttreffersignal SGHIT_[H:A], das anzeigt, ob die aktuelle
Zugriffsanforderung einem Segmenttreffer entspricht. Bei dieser
bevorzugten Ausführungsform
werden diese Signale BKHIT_[H:A], PGHIT_[H:A] und SGHIT_[H:-A] jeweils in den
aktiven Zustand gebracht, wenn der zugehörige Ausgangsport in einen
logischen Zustand mit niedriger Spannung gebracht wird. Daher wird das
Banktreffersignal BKHIT_[H:A] anschließend durch das erste NAND-Gatter 330 in
einen Logikzustand hoher Spannung invertiert, um die Aktivierung des
an die SDRAM-Einheit ausgegebenen Banktreffersignals BKHIT zu repräsentieren;
das Seitentreffersignal PGHIT [H:A] wird anschließend durch
das zweite NAND-Gatter 340 in einen Logikzustand hoher
Spannung invertiert, um die Aktivierung des an die SDRAM-Einheit
ausgegebenen Seitentreffersignals ONPAG zu repräsentieren; und das Segmenttreffersignal
SGHIT_[H:A] wird anschließend
durch das dritte NAND-Gatter 350 in
einen Logikzustand hoher Spannung invertiert, um die Aktivierung
des an die SDRAM-Einheit ausgegebenen Segmenttreffersignals SEGHIT
zu repräsentieren.
-
Die 4 ist
ein schematisches Blockdiagramm, das detaillierter die interne Architektur
der im Speicherzugriffs-Verwaltungssystem 100 der 1 verwendeten
Seitentabelle-Registereinheit 120 zeigt. Wie dargestellt,
verfügt
die Sei tentabelle-Registereinheit 120 über eine Latchstufe 410 und
eine Auswählschaltung 420.
Darüber
hinaus verfügt
die Seitentabelle-Registereinheit 120 über acht Registersätze (BNK_A,
PAG_A, SEG_A, BKVC_A) 431, ..., (BNK_H, PAG_H, SEG_H, BKVC_H) 438,
wobei jeder Registersatz dazu verwendet wird, die Adressdaten einer
vorigen Zugriffsoperation auf die SDRAM-Einheit zu speichern. Diese
acht Registersätze
(BNK_A, PAG_A, SEG_A, BKVC_A) 431, ..., (BNK_H, PAG_H,
SEG_H, BKVC_H) 438 implementieren kollektiv einen Teil
der in der 2 dargestellten Seitentabelle 125 (bei
dieser Ausführungsform sind
die zwei anderen Datenfelder, d.h. LRU und VLD, in der Nutzungsrate-Registereinheit 130 bzw. der
Gültigkeitsprüfeinheit 140 enthalten).
Die Latchstufe 410 unterliegt der Steuerung durch das Signal PGCMP,
um die Ausgangsdaten BKHIT_[H:A], SGHIT_[H:A], BKHIT und SEGHIT
von der Vergleichseinheit 110 zwischenzuspeichern. Die
zwischengespeicherten Daten werden dann über einen Datenbus 412 an
die Auswählschaltung 420 übertragen.
Zusätzlich
zu den Ausgangsdaten der Latchstufe 410 empfängt die
Auswählschaltung 420 die
Werte VLD_[H:A] und LRU[H:A] von der Nutzungsrate-Registereinheit 130 sowie
ein Steuersignal PGUPD, um dadurch ein Auswählsignal SEL an die Seitentabelle 125 zu
erzeugen und zu übertragen,
um den Datenwert in der Speicherzugriff 125 auszuwählen, dessen Wert
durch die Eingangssignale BANK, LDA[27:11], SEGMENT und VCSDRAM
zu aktualisieren ist. Zu den Ausgangssignalen der Seitentabelle-Registereinheit 120 gehören PREPAG,
LPGSB[1:0], LPGBK[7:0], RXPAG[27:11] und RXSEG[27:11].
-
Die 5A ist
ein schematisches Blockdiagramm, das detaillierter die interne Architektur
der in der Speicherzugriffs-Verwaltungssystem 100 der 1 verwendeten
Nutzungsrate-Registereinheit 130 zeigt.
Wie dargestellt, verfügt
die Nutzungsrate-Registereinheit 130 über einen Satz von Registern 511, 512,
..., 518 zum Speichern der Daten LRU_A, LRU_B, ... und
LRU_H. Das Nutzungsrate-Registereinheit 130 nimmt PGCMP,
BKHIT, PGUPD und SEL als Eingangssignale auf, und sie erzeugt ein
Ausgangssignal LRU[H:A]. Darüber
hinaus wird das Ausgangssignal LRU[H:A] als Rückführung an der Eingangsseite
der Nutzungsrate-Registereinheit übernommen. Gemäß der Erfindung
werden die Register LRU_A 511, LRU_B 512, ...
und LRU_H 518 dazu verwendet, die jeweiligen LRU-Werte
zu speichern, die die jüngsten
Nutzungsraten von Speicherstellen in der SDRAM-Einheit anzeigen,
auf die zuvor zugegriffen wurde. Wie bereits angegeben, liegt jeder
der LRU-Werte im Bereich von 0 bis 7; außerdem sind die LRU-Werte in
diesen acht Registern 511, 512, ..., 518 eindeutig
zugewiesen und voneinander verschieden (anders gesagt, beträgt die Summe
der jeweils in diesen acht Registern 511, 512,
..., 518 gespeicherten Werte immer 28). Der kleinste Wert
null wird dazu verwendet, anzuzeigen, dass auf die zugehörige Speicherstelle
zuletzt zugegriffen wurde, und der höchste Wert sieben wird dazu
verwendet, anzuzeigen, dass auf die zugehörige Speicherstelle am wenigsten
kürzlich
zugegriffen wurde. Die Aktualisierung der Werte in diesen acht Registern 511, 512,..., 518 erfolgt
um einen Taktzyklus nach der Aktivierung des Signals PGCMP oder
des Signals PGUPD. Die Verzögerungsperiode
eines Taktzyklus kann zur Berechnung aktualisierter Werte für diese
acht Registern 511, 512, ..., 518 verwendet
werden. Wenn die aktuelle Zugriffsanforderung einem Banktreffer
entspricht, stimmt die angeforderte Bankadresse mit dem Bank-Adressdatenwert überein,
wie er in einer bestimmten Speicherzelle in der Seitentabelle 125 gespeichert
ist. Bei der Initialisierung werden diese acht Register 511, 512,
..., 518 jeweils auf einen bestimmten Initialisierungswert,
z. B. null gesetzt, damit die Operation nicht durch irgendeinen
undefinierten Datenwert in der Seitentabelle 125 angehalten
wird.
-
Die 5B ist
ein schematisches Blockdiagramm, das die Eingangs/Ausgangs-Konfiguration der
im Speicherzugriffs-Verwaltungssystem 100 der 1 verwendeten
Gültigkeitsprüfeinheit 140 zeigt. Wie
dargestellt, übernimmt
die Gültigkeitsprüfeinheit 140 die
Signale PGFLH, PGUPD, BNK_[H:A], EDO_BNK und BKVC_[H:A] als Eingangssignale, und
sie erzeugt ein Ausgangssignal VLD_[H:A]. Das Ausgangssignal VLD_[H:A]
wird ferner als Rückführsignal
an der Eingangsseite der Gültigkeitsprüfeinheit übernommen.
Das Ausgangssignal VLD_[H:A] ist ein Datenwort, in dem jedes Bit
dazu verwendet wird, anzuzeigen, ob die entsprechende VLD-Speicherzelle
in der Seitentabelle 125 auf 1 gesetzt ist, was die Gültigkeit
des zugehörigen
Speicher-Adressdatenwerts anzeigt, oder ob sie auf 0 gesetzt ist,
was anzeigt, dass der zugehörige
Speicher-Adressdatenwert ungültig
oder noch undefiniert ist.
-
Die
Operation des in der 1 dargestellten erfindungsgemäßen Speicherzugriffs-Verwaltungssystems 100 beinhaltet
die folgenden Hauptschritte:
- (1) Erstens werden,
bei der Initialisierung, die Speicherzellen in der Seitentabelle 125 jeweils auf
einen bestimmten Wert, z. B. 0 gesetzt, um zu verhindern, dass die
Operation durch irgendeinen undefinierten Datenwert in der Seitentabelle 125 angehalten
wird.
- (2) Zweitens wird, wenn eine Zugriffsanforderung ausgegeben
wird, die angeforderte Speicherstelle, einschließlich der Seitenadresse, der
Bankadresse und der Segmentadresse, mit dem in der Seitentabelle 125 gespeicherten
Adressdatenwert verglichen, um zu prüfen, ob in jüngster Zeit auf
die angeforderte Speicherstelle zugegriffen wurde.
- (3) Drittens werden die Datenwerte LRU und VLD in der Seitentabelle 125 geprüft, um zu
erkennen, welche Speicherzelle zu aktualisieren ist oder zur Speicherung
eines neuen Adressdatenwerts auszuwählen ist.
-
Die 6 ist
ein Flussdiagramm, das die Prozedurschritte zeigt, wie sie im Verfahren
des Verfahrens enthalten sind.
-
Im
ersten Schritt 610 wird von der Speichersteuereinheit ein
Adresssignal empfangen.
-
Im
nächsten
Schritt 612 wird die empfangene Adresse mit dem Adressdatenwert
in der Seitentabelle verglichen, um zu erkennen, ob eine Übereinstimmung
vorliegt. Falls JA, geht die Prozedur zum Schritt 614 weiter;
andernfalls, falls NEIN, geht die Prozedur zum Schritt 620 weiter.
-
Im
Schritt 614 wird ein Treffersignal erzeugt; und dann geht
die Prozedur zum Schritt 628 weiter.
-
Andererseits
wird im Schritt 620 in der Seitentabelle nachgeschlagen,
um den maximalen LRU-Wert aufzufinden. Als Nächstes wird im Schritt 622 überprüft, ob der
VLD-Wert, der dem maximalen LRU-Wert zugeordnet ist, gültig ist.
Fall JA, geht die Prozedur zum Schritt 624 weiter; andernfalls,
falls NEIN, geht die Prozedur zum Schritt 626 weiter.
-
Im
Schritt 624 wird eine Wiederherstelladresse entsprechend
dem Adressdatenwert erzeugt, der dem maximalen LRU-Wert zugeordnet
ist, um die entsprechende Seite zu schließen. Nachdem dies abgeschlossen
ist, geht die Prozedur zum Schritt 626 weiter.
-
Im
Schritt 626 wird die aktuell empfangene Adresse in derjenigen
Speicherzelle gespeichert, die dem maximalen LRU-wert zugeordnet
ist. Die Prozedur geht dann zum Schritt 628 über.
-
Im
Schritt 628 wird die den maximalen LRU-Wert speichernde
Speicherzelle auf den LRU-Wert 0 rückgesetzt, und alle anderen
LRU-Werte in der Seitentabelle werden um eins erhöht. Dann wird
die Prozedur beendet.
-
Die 7A–7G sind
Tabellen, die dazu verwendet werden, ein Beispiel für die Daten
zu zeigen, wie sie in der im Speicherzugriffs-Verwaltungssystem 100 der 1 verwendeten
Seitentabelle 125 auf eine Abfolge von Zugriffsanforderungen
hin gespeichert sind. In diesen Tabellen sind die in der Seitentabelle 125 der 2 dargestellten
Daten BKVC, BNK, SEG, PAG kollektiv durch Daten ADRESSE in der ersten
Spalte repräsentiert,
um die Beschreibung zu vereinfachen.
-
Die 7A zeigt
die bei der Initialisierung in der Seitentabelle gespeicherten Daten
ADRESSE, LRU und VLD. Wie dargestellt, setzt die Initialisierung alle
acht Werte ADRESSE in den acht Zeilen A–H auf 0, und da alle diese
Werte ADRESSE ungültig
sind (was bedeutet, dass sie keinen Adressdatenwert irgendeines
vorigen Zugriffs auf den SDRAM repräsentieren), werden alle VLD-Speicherzellen
auf 0 gesetzt. Ferner werden die LRU-Speicherzellen auf 7, 6, 5,
4, 3, 2, 1 bzw. 0 gesetzt.
-
Es
sei angenommen, dass die Mastereinheit dann eine Abfolge von Zugriffsanforderungen
ausgibt, um Zugriff auf die SDRAM-Einheit zu erlangen.
-
Es
wird auf die 7B Bezug genommen und angenommen,
dass die erste Zugriffsanforderung auf die Seitenadresse "10" gerichtet ist; dann wird,
da alle Werte ADRESSE in der aktuellen Seitentabelle unbenutzt sind,
diese Seitenadresse "10" in der Speicherzelle
ADRESSE der ersten Zeile A abgespeichert; außerdem wird indessen die VLD-Speicherzelle
der Zelle A auf 1 gesetzt. Ferner wird die LRU-Speicherzelle der
Zeile A auf 0 gesetzt, wobei die LRU-Speicherzellen in anderen Zeilen,
die kleiner als sieben sind, um eins erhöht werden.
-
Ferner
auf die 7C Bezug genommen und angenommen,
dass die folgende Zugriffsanforderung an die Seitenadresse "20" gerichtet ist; dann wird
diese Seitenadresse "20" mit allen Werten ADRESSE
in der Seitentabelle der 7B verglichen,
um zu prüfen,
ob hinsichtlich dieser Seitenadresse "20" Übereinstimmung
besteht. Bei diesem Beispiel ist das Vergleichsergebnis NEIN, und
demgemäß wird diese
Seitenadresse "20" in der Speicherzelle
ADRESSE der nächsten
Zeile B gespeichert; außerdem
wird indessen die VLD-Speicherzelle der Zeile B auf 1 gesetzt. Ferner
wird die LRU-Speicherzelle der Zeile B auf 0 gesetzt, wobei die
LRU-Speicherzellen in anderen Zeilen, die kleiner als sieben sind,
um eins erhöht
wird.
-
Es
wird ferner auf die 7D Bezug genommen und angenommen,
dass die folgenden Zugriffsanforderungen auf die Seitenadressen "30", "40", "50", "60", "70" bzw. "80" gerichtet sind;
dann werden, da für
keine dieser Seitenadressen eine Übereinstimmung mit den abgespeicherten
Seitenadresswerten in der Seitentabelle besteht, diese Seitenadressen
in den restlichen unbenutzten Speicherzellen ADRESSE abgespeichert,
und die zugehörigen
Werte LRU und VLD werden auf dieselbe Weise gesetzt, wie es oben
beschrieben ist.
-
Ferner
wird auf die 7E Bezug genommen und angenommen,
dass die folgende Zugriffsanforderung auf die Seitenadresse "90" gerichtet ist; dann
wird diese Seitenadresse "90" mit allen Werten
ADRESSE in der Seitentabelle der 7D verglichen,
um zu prüfen,
ob mit dieser Seitenadresse "90" eine Übereinstimmung
existiert. Bei diesem Beispiel ist das Vergleichsergebnis NEIN,
und demgemäß wird diese
Seitenadresse "90" in der Speicherzelle
ADRESSE derjenigen Zeile gespeichert, die den höchsten LRU-Wert enthält (bei
diesem Beispiel die Speicherzelle ADRESSE der letzten Zeile A, die
den höchsten
LRU-Wert sieben enthält
(siehe die 7D). Die VLD-Speicherzelle der
Zeile A verbleibt unverändert.
Ferner wird die LRU-Speicherzelle der Zeile A von 7 auf 0 geändert, wobei
alle anderen LRU-Speicherzellen in den anderen Zeilen, die kleiner
als sieben sind, um eins erhöht
werden. Ferner bewirkt, da die VLD-Speicherzelle der Zeile A zuvor auf
1 gesetzt wurde, dies die Ausgabe eines Vorablade-Freigabesignals
an die SDRAM-Einheit, um die aktuell geöffnete Seite mit der Seitenadresse "10" zu schließen.
-
Ferner
wird auf die 7F Bezug genommen und angenommen,
dass die folgende Zugriffsanforderung an die Seitenadresse "40" gerichtet ist; dann
wird diese Seitenadresse "40" als Erstes mit allen
Werten ADRESSE in der Seitentabelle der 7E verglichen,
um zu überprüfen, ob
mit dieser Seitenadresse "40" eine Übereinstimmung
besteht. Bei diesem Beispiel ist das Vergleichsergebnis JA, da die
Speicherzelle ADRESSE der Zeile D "40" ist.
In diesem Fall bleiben die Werte der Speicherzelle ADRESSE und VLD
unverändert,
während
die LRU-Speicherzelle von 5 auf 0 geändert wird. Ferner werden alle
anderen LRU-Speicherzellen in anderen Zeilen, die kleiner als der
ursprüngliche
Wert sind, der in der LRU-Speicherzelle
der Zeile D gespeichert ist, um eins erhöht (d.h., die jeweiligen LRU-Speicherzellen
der Zeilen A, E, G und H werden jeweils um eins erhöht).
-
Es
wird ferner auf die 7G Bezug genommen und angenommen,
dass die folgende Zugriffsanforderung an die Seitenadresse "22" gerichtet ist und
sich die angeforderte Seite in derselben Bank befindet, in der sich
die Seite mit der Seitenadresse "20" befindet; dann wird
diese Seitenadresse "22" mit allen Speicherzellen
im Feld ADRESSE der Seitentabelle 125 verglichen. Bei diesem
Beispiel ist das Vergleichsergebnis ein Banktreffer. In diesem Fall
wird, da in jeder Bank nur eine Seite zu einem Zeitpunkt geöffnet sein
kann, der Wert ADRESSE der Zeile B von "20" auf "22" geän dert, und
der LRU-Wert der Zeile B wird von 7 auf 0 geändert, während der VLD-Wert der Zeile
B unverändert
bleibt. Ferner werden allen anderen LRU-Werte in anderen Zeilen,
die kleiner als der ursprüngliche
Wert in der Speicherzelle LRU_B sind, um eins erhöht (d.h.,
dass die jeweiligen LRU-Werte
der Zeilen A, D, E, F, G, C und H jeweils um eins erhöht werden).
Bevor die angeforderte Seite geöffnet
werden kann, sollte die aktuell geöffnete Seite, d.h. die Seite
mit "20", geschlossen werden.
-
Die 8A–8D sowie
die 9A–9B sind
Signalabfolgediagramme der verschiedenen Signale, wie sie im Speicherzugriffs-Verwaltungssystem 100 der 1 auf
verschiedene Betriebsbedingungen hin verwendet werden. Die zeitlichen
Lagen dieser Signale beruhen auf einem gemeinsamen Taktsignal DCLK.
-
Die 8A ist
ein Signalabfolgediagramm, das die zeitlichen Lagen zwischen DCLK,
ONPAG, BKHIT, PGCMP, LRU_A, VLD_A, PAG_A und BNK_A für den Fall
zeigt, dass die aktuelle Zugriffsanforderung von der Mastereinheit
einem Seitentreffer (oder einem Segmenttreffer auf den VC-SDRAM)
entspricht und dass die angeforderte Speicherstelle mit derjenigen übereinstimmt,
die in der Zeile A der Seitentabelle 125 gespeichert ist.
In diesem Fall schaltet die Vergleichseinheit 110 zu TO die
Signale ONPAG und BKHIT auf den aktivierten Zustand (d.h. den Logikzustand
mit hoher Spannung); dann wird, bei T7, das Signal PGCMP auf den Logikzustand
mit hoher Spannung umgeschaltet, was bewirkt, dass die Latchstufe 410 in
der Seitentabelle-Registereinheit 120 den aktuell von der
Vergleichseinheit 110 empfangenen Datenwert zwischenspeichert.
Anschließend,
bei T9, wird das Signal LRU_A aktiviert, um die entsprechende Speicherzelle
in der Seitentabelle 125 auf 0 zu setzen.
-
Die 8B ist
ein Signalabfolgediagramm, das die zeitlichen Lagen zwischen DCLK,
ONPAG, BKHIT, PGCMP, LRU_A, VLD_A, PAG_A und BNK_A für den Fall
zeigt, dass die aktuelle Zugriffsanforderung ein Banktreffer ist
und dabei ein Seitenfehltreffer ist. Wie bereits angegeben, kann
in jeder Bank zu einem Zeitpunkt nur eine Seite geöffnet sein.
Daher sollte die entsprechende Speicherzelle in der Seitentabelle 125 durch
die Seitenadresse der aktuellen Zugriffsanforderung ersetzt werden. Auf
die Zugriffsanforderung hin schaltet die Vergleichseinheit 110 zu
TO das Signal BKHIT in den aktivierten Zustand (d.h. den Logikzustand
mit hoher Spannung), und dann wird die aktuell geöffnete Seite geschlossen.
Anschließend
wird das Signal PGCMP bei T5 auf den Logikzustand mit hoher Spannung umgeschaltet,
was bewirkt, dass die Latchstufe 410 in der Seitentabelle-Registereinheit 120 den
aktuell von der Vergleichseinheit 110 empfangenen Datenwert
zwischenspeichert. Anschließend
wird, zu T10, das Signal PGUPD aktiviert, um das Signal PAG_A dazu
zu veranlassen, die entsprechende Speicherzelle in der Seitentabelle 175 auf
den Wert der angeforderten Seitenadresse zu setzen. Danach wird
die angeforderte Seite geöffnet.
-
Wenn
die aktuelle Zugriffsanforderung einem Bankfehltreffer entspricht,
ist es erforderlich, eine Speicherzelle in der Seitentabelle 125 zum
Speichern der Speicherstelle der jüngsten Zugriffsoperation zu
finden. In diesem Fall sind zwei Bedingungen zu berücksichtigen,
die im Folgenden unter Bezugnahme auf die 8C bzw. 8D veranschaulicht werden.
-
Die 8C ist
ein Signalabfolgediagramm, das die zeitlichen Lagen zwischen DCLK,
ONPAG, BKHIT, PGCMP, LRU_A, VLD_A, PAG_A und BNK_A für den Fall
zeigt, dass die aktuelle Zugriffsanforderung ein Bankfehltreffer
ist und noch unbenutzte Speicherzellen in der Seitentabelle 125 vorhanden
sind. In diesem Fall behält
die Vergleichseinheit 110 die Signale ONPAG und BKHIT auf
unverändertem
Zustand. Anschließend
wird, bei T1, das Signal PGCMP auf den aktivierten Zustand umgeschaltet,
um dafür
zu sorgen, dass die Latchstufe 410 in der Seitentabelle-Registereinheit 120 den
aktuell von der Vergleichseinheit 110 empfangenen Datenwert zwischenspeichert.
Dann wird aus der Seitentabelle 125 die den höchsten LRU-Wert
enthaltende Zeile ausgewählt,
und der VLD-Wert null wird zur Speicherung der Speicherstelle der
aktuellen Zugriffsanforderung ausgewählt (bei diesem Beispiel wird
die Zeile A ausgewählt).
Anschließend
wird, bei T4, das Signal PGUPD aktiviert, um zu veranlassen, dass
Signale PAG_A und BNK_A die entsprechenden Speicherzellen in der
Seitentabelle 125 jeweils auf die Werte der angeforderten
Seite und die Bankwerte setzen, und um auch dafür zu sorgen, dass das Signal VLD_A
die entsprechende Speicherzelle auf eins setzt. Nach einem Taktzyklus
wird das Signal LRU_A aktiviert, um die entsprechende Speicherzelle
in der Seitentabelle 125 auf null zu setzen; außerdem werden
indessen alle anderen LRU-Speicherzellen
in anderen Zeilen, die kleiner als sieben sind, um eins erhöht.
-
Die 8D ist
ein Signalabfolgediagramm, das die zeitlichen Lagen zwischen DCLK,
ONPAG, BKHIT, PGCMP, LRU_A, VLD_A, PAG_A und BNK_A, LPGBK und LPGSB
für den
Fall zeigt, dass die aktuelle Zugriffsanforderung ein Bankfehltreffer ist
und keine unbenutzten Speicherzellen in der Seitentabelle 125 vorhanden
sind. In diesem Fall besteht der erste Schritt darin, diejenige
Zeile in der Seitentabelle 125 aufzufinden, die den höchsten LRU-Wert enthält (d.h.
sieben, was bedeutet, dass die Zeile diejenige ist, die am wenigsten
kürzlich
verwendet wurde). Auf diese Zugriffsanforderung mit Bankfehltreffer hin
behält
die Vergleichseinheit 110 die Signale ONPAG und BKHIT in
unverändertem
Zustand. Anschließend
wird, bei T1, das Signal PGCMP aktiviert, um dafür zu sorgen, dass die Latchstufe 410 in
der Seitentabelle-Registereinheit 120 den aktuell von der Vergleichseinheit 110 empfangenen
Datenwert zwischenspeichert. Dann wird aus der Seitentabelle 125 diejenige
Zeile, die den höchsten
LRU-Wert enthält (bei
diesem Beispiel die Zeile A) zur Speicherung der Speicherstelle
der aktuellen Zugriffsanforderung ausgewählt. Bevor das Aktualisieren
der Seitentabelle 125 erfolgt, ist es erforderlich, die
SDRAM-Einheit zum Zweck des Schließens der aktuell geöffneten Bank
und der Unterbank vorab zu laden. Anschließend wird, mit der ansteigenden
Flanke des Taktzyklus zu T7, der in der ausgewählten Speicherzelle gespeicherte
Datenwert zwischengespeichert und dann werden die Signale LPGBK
und LPGSB in den aktivierten Zustand umgeschaltet, um die aktuell
geöffnete
Bank und die Unterbank vorab zu laden. Anschließend wird, bei T6, das Signal
PGUPD aktiviert, um dafür
zu sorgen, dass die Signale PAG_A und BNK_A die entsprechenden Speicherzellen
in der Seitentabelle 125 auf die spezifizierten Werte setzen. Anschließend wird,
bei T8, das Signal LRU_A aktiviert, um die entsprechende Speicherzelle
in der Seitentabelle 125 auf null zu setzen; außerdem werden indessen
alle anderen LRU-Speicherzellen in anderen Zeilen um eins erhöht.
-
Beim
vorigen Beispiel ist angenommen, dass die SDRAM-Einheit acht Bänke enthält, wobei
jede Bank in vier Unterbänke
unterteilt ist. Daher verfügt das
Signal LPGBK über
eine Breite von acht Bits, wobei jedes Bit dazu verwendet wird,
den Zugriff auf eine der acht Bänke
zu aktivieren; außerdem
ist das Signal LPGSB zwei Bits breit, wobei jedes Bit dazu verwendet
wird, den Zugriff auf eine der vier Unterbänke zu aktivieren, die in der
durch das Signal LPGBK spezifizierten Bank liegen. Wenn ein VC-SDRAM verwendet
wird, werden, wenn die ausgewählte
Speicherzelle bereits einen Datenwert enthält, Wiederherstellsignale RXPAG[27:11]
und RXSEG[1:0] erzeugt, um den Zyklus wiederherzustellen.
-
Es
existieren einige andere Computersysteme, bei denen eine SDRAM-Einheit
in Zusammenhang mit anderen Speichertypen, wie einem EDO/FP-DRAM,
verwendet wird. In diesem Fall wird für den SDRAM das 8-Bit-CAS#[7:0]-Signal
vom EDO/FP-DRAM verwendet. Darüber
hinaus sollten, wenn die SDRAM-Einheit aufgefrischt wird, alle darin enthaltenen
Bänke als
Erstes in Leerlaufzustand gebracht werden, bevor der Vorabladevorgang
ausgeführt
werden kann. Das Signal PGFLH wird dazu verwendet, den zugehörigen VLD-Wert
in de Seitentabelle auf null zu setzen, um es zu ermöglichen,
dass der Speicherzugriff vom EDO/FP-DRAM auf die SDRAM-Einheit umschaltbar
ist. Nachfolgend werden zwei Fälle
unter Bezugnahme auf die 9A bzw.
die 9B für
das Umschalten vom EDO/FP-DRAM auf den SDRAM veranschaulicht.
-
Die 9A ist
ein Signalabfolgediagramm, das die zeitlichen Lagen zwischen DCLK,
ONPRG, BKHIT, PGCMP, LRU_A, VLD_A, PAG_A und BNK_A, LPGBK und LPGSB
für den
Fall zeigt, dass die aktuelle Zugriffsanforderung ein Bankfehltreffer ist
und der aktive Speicherzugriff vom EDO/FP-DRAM auf die SDRAM-Einheit umzuschalten
ist. Wie dargestellt, wird, bei T1, das Signal PGUPD aktiviert,
um dafür
zu sorgen, dass die Signale PAG_A und BNK_A die entsprechenden Speicherzellen
in der Seitentabelle 125 auf die Werte der angeforderten
Seitenadresse und der Bankadresse setzen; außerdem wird anschließend, bei
T3, das Signal LRU_A aktiviert, um die entsprechende Speicherzelle
in der Seitentabelle 125 auf null zu setzen, während das
Signal VLD_A dafür
sorgt, dass der wert der entsprechenden Speicherzelle unverändert bleibt.
Anschließend
wird das Signal PGCMP aktiviert, um den aktiven Speicherzugriff
auf die SDRAM-Einheit umzuschalten. Wenn der EDO/FP-DRAM inaktiv
ist, kann sein aktuell geöffnete
Seite nicht im geöffneten
Zustand verbleiben und sollte demgemäß geschlossen werden. Bei T5
wird das Signal PGFLH auf den Logikzustand mit hoher Spannung umgeschaltet
und bei T6 wird VLD_A auf den Logikzustand mit niedriger Spannung
umgeschaltet, was dafür
sorgt, dass der EDO/FP-DRAM deaktiviert wird. Anschließend wird,
bei T7, das Signal PGUPD aktiviert, um dafür zu sorgen, dass die Signale
PAG_A und BNK_A die entsprechenden Speicherzellen in der Seitentabelle 125 auf
die Werte der angeforderten Seitenadresse und Bankadresse setzen,
und um auch dafür
zu sorgen, dass die angeforderte Seite geöffnet wird. Darüber hinaus
wird das Signal VLD_A bei T8 auf den Logikzustand mit hoher Spannung
wiederhergestellt, um die entsprechende Speicherzelle in der Seitentabelle 125 auf
eins zu setzen, was die Gültigkeit
des gespeicherten Adressdatenwerts anzeigt. Die LRU A-Speicherzelle
in der Seitentabelle 125 verbleibt jedoch auf null.
-
Die 9B ist
ein Signalabfolgediagramm, das die zeitlichen Lagen zwischen den
Signalen DCLK, ONPAG, PGCMP, PGFLH, PGUPD, LRU_A, LRU_B, VLD_A,
PAG_A, BNK_A, VLD_B, PAG_B und BNK_B für den Fall zeigt, dass die
aktuell ausgegebene Zugriffsanforderung ein Banktreffer ist und der
aktive Speicherzugriff vom EDO/FP-DRAM auf die SDRAM-Einheit umzuschalten
ist. Wie dargestellt, wird, bei T1, das Signal PGUPD aktiviert,
um dafür
zu sorgen, dass die Signale PAG A und BNK_A die entsprechenden Speicherzellen
in der Seitentabelle 125 auf die Werte der angeforderten
Seitenadresse und Bankadresse setzen; außerdem wird anschließend, bei
T3, das Signal LRU_A aktiviert, um die entsprechende Speicherzelle
der Seitentabelle 125 auf null zu setzen, während der
Wert des Signals LRU_B um eins erhöht wird und die VLD A-Speicherzelle
unverändert
bleibt. Anschließend
wird, bei T3, das Signal PGCMP aktiviert, um den aktiven Speicherzugriff
auf die SDRAM-Einheit umzuschalten. Anschließend wird, bei T5, da die Vergleichseinheit 110 anzeigt,
dass die aktuelle Zugriffsanforderung ein Treffer hinsichtlich der
Speicherstelle ist, die in der Zeile B der Seitentabelle 125 gespeichert
ist, das Signal LRU_B aktiviert, um dafür zu sorgen, dass die entsprechende
Speicherzelle in der Seitentabelle 125 auf null gesetzt
wird; indessen werden allen anderen LRU-Speicherzellen in anderen
Zeilen, die kleiner als der in der LRU B-Speicherzelle gespeicherte
ursprüngliche
Wert sind, um eins erhöht.
Darüber
hinaus wird das Signal LRU A aktiviert, um dafür zu sorgen, dass die entsprechende
Speicherzelle in der Seitentabelle 125 von null auf eins
umgeschaltet wird. Danach wird das Signal PGFLH auf den Logikzustand
mit hoher Spannung umgeschaltet, und das Signal VLD A wird auf den
Logikzustand mit niedriger Spannung umgeschaltet, was dafür sorgt,
dass der EDO/FP-DRAM geschlossen wird.
-
Bevor
ein Auffrischprozess ausgeführt
wird, sollten als Erstes alle Bänke
in der SDRAM-Einheit vorab geladen werden. Um dies auszuführen, sollten als
Erstes alle VLD-Werte in der Seitentabelle 125 auf null
gesetzt werden, was die Ungültigkeit
aller Adressdaten in der Seitentabelle 125 anzeigt. Darüber hinaus
benötigen,
wenn ein VC-SDRAM verwendet wird, die Adressdaten in der Seitentabelle 125 keine
Aktualisierung, da dabei eine Maßnahme eines automatischen
Vorabladens verwendet wird.
-
Als
Schlussfolgerung zeigen das Verfahren und System einer Speicherzugriffsverwaltung
gemäß der Erfindung
die folgenden Vorteile. Erstens kann die Leistungsfähigkeit
bei einem Speicherzugriff durch Verfolgen des Verlaufs früherer Zugriffsoperationen
auf den SDRAM verbessert werden. Zweitens kann vorab beurteilt werden,
ob der nächste
Pipelinezugriff ein Vorabladen erfordert oder nicht; falls ja, wird
zum Zeitpunkt, zu dem der aktuelle Zugriff gehandhabt wird, ein
Vorablade-Freigabesignal ausgegeben. Im Ergebnis kann die Zugriffsverzögerung verkleinert
werden. Insgesamt ist die Leistungsfähigkeit bei Speicherzugriffen
verbessert.
-
Die
Erfindung wurde unter Verwendung beispielhafter, bevor zugter Ausführungsformen
beschrieben. Jedoch ist es zu beachten, dass der Schutzumfang der
Erfindung nicht auf die offenbarten Ausführungsformen beschränkt ist.
Vielmehr sollen verschiedene Modifizierungen und ähnliche
Anordnungen abgedeckt sein. Dem Schutzumfang der Ansprüche soll
daher die weitestgehende Interpretation gewährt werden, damit alle derartigen
Modifizierungen und ähnliche
Anordnungen umschlossen werden.
-
Zusammenfassung
-
Es
werden ein Verfahren und ein System zur Speicherzugriffsverwaltung
zur Verwendung bei einem DRAM (Dynamic Random Access Memory) oder
dergleichen angegeben, um die Leistungsfähigkeit bei Speicherzugriffen
auf den SDRAM dadurch zu verbessern, dass der Speicherzugriffsverlauf
früherer
Zugriffsoperationen verfolgt wird. Das Speicherseiten-Verwaltungssystem
verfügt über eine
Verwaltungsvorrichtung zum Verwalten der N Speicherseiten. Gemäß der Ausführungsform
verfügt
die Verwaltungsvorrichtung ferner über eine Seitenregistereinheit.
Diese Seitenregistereinheit wird dazu verwendet, K Speicherungseinheiten
zu speichern, von denen jede einen Adressdatenwert der Speicherseite speichert.
Die Nutzungsrate-Registereinheit ist mit der Seitenregistereinheit
verbunden, und sie wird dazu verwendet, Nutzungsvorgänge der
Speicherungseinheiten zu überwachen.
Bei einem praktischen Design kann die Anzahl K der Speicherungseinheiten
so konzipiert werden, dass sie kleiner als die Anzahl N der Speicherseiten
ist.