-
Die
Erfindung bezieht sich auf ein Verfahren zum Managen von Zugriffsoperationen
auf einen Speicher, der mehrere Bänke umfasst, insbesondere des SDRAM-Typs (synchroner
dynamischer Schreib/Lese-Speicher), auf eine Speicherschnittstellenschaltung,
auf ein Computerprogramm, das von einer solchen Schnittstellenschaltung
ausgeführt
werden kann, und auf ein Datenverarbeitungssystem.
-
Datenverarbeitungssysteme,
die einen Speicher mit mehreren Bänken, insbesondere des SDRAM-Typs,
umfassen, sind bekannt, wobei auf diese von einer Datenverarbeitungsschaltung,
wie z. B. einem Prozessor, über
eine geeignete Schnittstelle zugegriffen wird, indem Zugriffsanforderungen
erzeugt werden. Es sind auch Datenverarbeitungssysteme bekannt,
die eine oder mehrere Schaltungen zum Verarbeiten spezifischer Daten,
z. B. Videodaten, umfassen, die unabhängig oder in Kombination arbeiten
und auf einen Speicher zugreifen, um somit spezifische Daten zu
lesen oder zu schreiben, wobei einer oder mehrere Steuervorrichtungen
auf einen weiteren Speicher zugreifen, um geeignete Befehlscodes
zu lesen oder zu schreiben.
-
Eine
Steuervorrichtung greift auf den Speicher zu, um Befehlscodes zu
lesen oder zu schreiben. Solange die Steuervorrichtung ihren Zugriff
nicht ausgeführt
hat, bleibt die Steuervorrichtung blockiert, was die Ausführung aller
Prozesse, die sie ausführen muss,
verlangsamt. Wenn sie jedoch mit einem Cache-Speicher versehen ist,
muss eine Steuervorrichtung auf den Speicher weniger häufig zugreifen
als eine Schaltung, die Funktionen ausführt, die intensiven Gebrauch
von Daten machen, wie z. B. eine Videodatenverarbeitungsschaltung.
-
WO 99/26154 offenbart eine
Zugriffssteuervorrichtung für
einen gemeinsam genutzten Speicher. In diesem Dokument wird ein
Kommunikationssystem offenbart, das einen Eingangs-Ausgangs-Prozessor
(IOP), der mit einer Vielzahl von Netzwerkvorrichtungen gekoppelt
ist, sowie einen Protokollprozessor (PP) umfasst, die beide mit
einem gemeinsamen Speicher gekoppelt sind. Speicher zugriffsteuermittel
lösen den
Konflikt zwischen den Prozessoren bei einem Speicherzugriff. Normalerweise, wenn
einer der zwei Prozessoren auf den Speicher zugreift, erlaubt das
Speicherzugriffsteuermittel, den Zugriff abzuschließen, bevor
dem anderen Prozessor erlaubt wird, auf den Speicher zuzugreifen.
Wenn jedoch ein Datenverlust in einer Netzwerkvorrichtung droht,
wird dem IOP ein Speicherzugriff höherer Priorität gewährt; die
Speicherzugriffsteuervorrichtung bricht irgendeinen Speicherzugriff
seitens des PP ab (unterbricht ihn), und erlaubt dem IOP, sofort
auf den Speicher zuzugreifen.
-
Es
ist eine Aufgabe der Erfindung, nur einen einzelnen gemeinsamen
Speicher für
einen oder mehrere spezifische Datenverarbeitungsschaltungen zur
Verfügung
zu stellen, sowie eine oder mehrere Steuervorrichtungen, ohne nachteilige
Auswirkungen für
die Effizienz derselben oder für
die Effizienz des Datenverarbeitungssystems insgesamt zu bewirken.
-
Zu
diesem Zweck schafft die Erfindung ein Verfahren zum Managen des
Zugriffs einer Vielzahl Datenverarbeitungsschaltungen auf einen
gemeinsamen Speicher, der mehrere Bänke umfasst, in denen gleichzeitig
ein einzelner Zugriff auf den Speicher durchgeführt werden kann, wobei der
Speicher über eine
geeignete Schnittstelle mit wenigstens einer Schaltung zur Verarbeitung
allgemeiner Daten und mit einer Schaltung zur Verarbeitung von Vorrangdaten
verbunden ist, und wobei das Verfahren die Schritte umfasst:
Erzeugen
einer Zugriffsanforderung der Schaltung zur Verarbeitung allgemeiner
Daten auf eine Bank des Speichers auf der Ebene der Schnittstelle,
Starten
der Durchführung
des angeforderten Zugriffs,
anschließendes Erzeugen einer Zugriffsanforderung der
Schaltung zur Verarbeitung von Vorrangdaten auf eine weitere Bank
des Speichers auf der Ebene der Schnittstelle,
Aufschieben
des Zugriffs im Verlauf der Durchführung, sobald die Vorbereitung
abgeschlossen ist, um den Zugriff für die Schaltung zur Verarbeitung
von Vorrangdaten unverzüglich
durchzuführen.
-
Mittels
dieses Verfahrens kann die Schaltung zur Verarbeitung von Prioritätsdaten,
z. B. eine Steuervorrichtung, auf den Speicher mit einer minimalen Verzögerung zugreifen,
indem alle Zugriffsoperationen einer Schaltung zur Verarbeitung gewöhnlicher Daten,
z. B. Videodaten, unterbrochen werden. Der Ablauf aller Operationen,
die sie steuert, werden somit auf ein Minimum verlangsamt. Außerdem wird
der in Gang befindliche Prozess zum spätestmöglichen Zeitpunkt unterbrochen,
wenn der Zugriff der Prioritätsdatenverarbeitungsschaltung
bereit ist, sofort ausgeführt
zu werden. Folglich wird das Durchlassband des Speichers in einer
optimalen Weise genutzt.
-
Das
Verfahren gemäß der Erfindung
umfasst vorteilhaft ferner einen Schritt des Fortsetzens des aufgeschobenen
Zugriffs, sobald der Zugriff der Prioritätsdatenverarbeitungsschaltung
abgeschlossen worden ist.
-
Die
Schaltung für
die Verarbeitung von Prioritätsdaten
umfasst vorzugsweise eine Steuervorrichtung, wobei die Prioritätsdaten
Befehlsanweisungen umfassen.
-
Der
Speicher entspricht vorzugsweise dem SDRAM-Typ, während die
Vorbereitung einen Schritt der Aktivierung einer Reihe der anderen
Bank, die den Gegenstand einer Zugriffsoperation bildet, umfasst.
-
Der
Erfindung schafft ferner ein Datenverarbeitungssystem, umfassend:
einen
Speicher, der mehrere Bänke
umfasst,
eine Schnittstellenschaltung, die mit dem Speicher verbunden
ist,
wenigstens eine Schaltung zum Verarbeiten allgemeiner
Daten und eine Schaltung zum Verarbeiten von Vorrangdaten, die beide
mit der Schnittstellenschaltung verbunden sind, wobei jede Datenverarbeitungsschaltung
geeignet ist, Zugriffsoperationen auf den Speicher über die
Schnittstellenschaltung anzufordern, welche geeignet ist, die Durchführung der
angeforderten Zugriffsoperationen zu befehlen, in welchen ein Einzelzugriff
auf den Speicher gleichzeitig durchgeführt werden kann,
wobei
in diesem System die Schnittstellenschaltung Mittel umfasst zum:
Vorbereiten
einer bestimmten Bank, wenn die Vorrangdatenverarbeitungsschaltung
Zugriff auf die bestimmte Bank des Speichers anfordert, während der Durchführung einer
Zugriffsoperation der Allgemeindatenverarbeitungsschaltung auf eine
weitere Bank des Speichers,
Aufschieben des Zugriffs im Verlauf
der Durchführung,
sobald die Vorbereitung für
die Durchführung des
Zugriffs der Vorrangdatenverarbeitungsschaltung auf die bestimmte
Bank abgeschlossen worden ist.
-
Die
Verwendung eines gemeinsamen Speichers für die unterschiedlichen Datenverarbeitungsschaltungen
erlaubt eine Reduktion der Kosten zur Verwirklichung des Systems
insgesamt.
-
Die
Schnittstellenschaltung umfasst ferner vorzugsweise Mittel zum Fortsetzen
des aufgeschobenen Zugriffs, sobald der Zugriff der Prioritätsdatenverarbeitungsschaltung
abgeschlossen worden ist.
-
Jede
Datenverarbeitungsschaltung kann vorzugsweise Zugriff auf den Speicher
anfordern, indem sie eine Zugriffsanforderung zur Schnittstellenschaltung
sendet, wobei jede Zugriffsanforderung einen Zugriffstyp unter den
Lese- und Schreibtypen definiert, und eine oder mehrere Speicherzellen
bezeichnet, die den Gegenstand eines Zugriffs bilden, wobei die
Zugriffsanfragen der Allgemeindatenverarbeitungsschaltung Speicherstellen
in wenigstens einer Bank des den allgemeinen Daten zugewiesenen Speichers
bezeichnen, und wobei Zugriffsanfragen der Vorrangdatenverarbeitungsschaltung
Speicherstellen in wenigstens einer Bank des den Vorrangdaten zugeordneten
Speichers bezeichnen.
-
Die
Erfindung schafft ferner eine Schnittstellenschaltung eines Speichers,
der mehrere Bänke umfasst
und gleichzeitig nur einen einzelnen Zugriff unterstützen kann,
die dafür
vorgesehen ist, mit wenigstens einer Schaltung zur Verarbeitung
allgemeiner Daten und einer Schaltung zur Verarbeitung von Prioritätsdaten
verbunden zu werden, wobei jede Datenverarbeitungsschaltung dazu
geeignet ist, Zugriffsoperationen auf den Speicher über die
Schnittstellenschaltung anzufordern, welche geeignet ist, die Ausführung der
angeforderten Zugriffsoperationen anzuweisen, und wobei die Schnittstellenschaltung
Mittel umfasst zum:
Vorbereiten einer bestimmten Bank, wenn
die Vorrangdatenverarbeitungsschaltung Zugriff auf die bestimmte
Bank des Speichers anfordert, während
der Durchführung
einer Zugriffsoperation der Allgemeindatenverarbeitungsschaltung
auf eine weitere Bank des Speichers,
Aufschieben des Zugriffs
im Verlauf der Durchführung,
sobald die Vorbereitung für
die Durchführung des
Zugriffs der Vorrangdatenverarbeitungsschaltung auf die bestimmte
Bank abgeschlossen worden ist.
-
Die
Erfindung schafft ferner ein Computerprogramm, das Befehlscodes
umfasst, die geeignet sind, aus einem Speichermedium gelesen oder
darauf gespeichert zu werden, wobei die Befehlscodes geeignet sind,
mittels einer programmierbaren Schnittstellenschaltung ausgeführt zu werden,
die mit einem Speicher verbunden werden soll, der mehrere Bänke umfasst
und fähig
ist, gleichzeitig nur eine einzelne Zugriffsoperation zu unterstützen, und
mit wenigstens einer Schaltung zum Verarbeiten allgemeiner Daten
und einer Schaltung zum Verarbeiten von Vorrangdaten verbunden ist,
wobei jede Datenverarbeitungsschaltung geeignet ist, Operationen zum
Zugreifen auf den Speicher über
die Schnittstellenschaltung, die zum Befehlen der Durchführung der
angeforderten Zugriffsoperationen geeignet ist, anzufordern,
wobei
in diesem Programm die Ausführung
der Befehlscodes geeignet ist, auf der Ebene der Schnittstellenschaltung
die Schritte auszuführen:
Vorbereiten
einer bestimmten Bank, wenn die Vorrangdatenverarbeitungsschaltung
Zugriff auf die bestimmte Bank des Speichers anfordert, während der Durchführung einer
Zugriffsoperation der Allgemeindatenverarbeitungsschaltung auf eine
weitere Bank des Speichers, wobei das Vorbereiten das Einfügen eines
Vorladebefehls zwischen zwei elementaren Zugriffsbefehlen für die derzeit
laufende Zugriffsoperation umfasst,
Aufschieben des Zugriffs
im Verlauf der Durchführung,
sobald die Vorbereitung für
die Durchführung des
Zugriffs der Vorrangdatenverarbeitungsschaltung auf die bestimmte
Bank abgeschlossen worden ist.
-
Die
Erfindung bezieht sich auf Zugriffsoperationen auf irgendeinen Speicher
des SDRAM-Typs oder anderer Typen, der mehrere Bänke umfasst, wobei der Zugriff
auf eine Bank vorbereitet werden kann, während auf eine weitere Bank
zugegriffen wird.
-
Diese
und andere Aspekte der Erfindung werden anhand eines nichteinschränkenden
Beispiels mit Bezug auf die im Folgenden beschriebenen Ausführungsformen
offensichtlich und erläutert.
-
In
den Zeichnungen zeigen:
-
1 schematisch
ein Datenverarbeitungssystem gemäß der Erfindung;
-
2 schematisch
eine programmierbare Speicherschnittstellenschaltung gemäß der Erfindung;
-
3 eine
Sequenz von Bits, die eine Speicheradresse des Systems der 1 codieren;
-
4 eine
Adressabbildung des Speichers des in 1 gezeigten
Systems;
-
5a bis 5c drei
Schritte der Vorverarbeitung einer Zugriffsanfrage durch die in 2 gezeigte
Speicherschnittstellenschaltung;
-
5d und 5e zwei
Schritte der Nachverarbeitung einer Leseanfrage durch die in 2 gezeigte
Speicherschnittstellenschaltung;
-
6a den
Ablauf bezüglich
der Zeit von zwei Zugriffsoperationen, die ohne die in den 5a bis 5c gezeigten
Vorverarbeitungsschritte verarbeitet werden;
-
6b den
Ablauf bezüglich
der Zeit von zwei Zugriffsoperationen, die mit den Vorverarbeitungsschritten
der 5a bis 5c verarbeitet
werden;
-
7 den
Ablauf eines Vorladevorgangs einer durch eine Zugriffsanfrage einer
Zentraleinheit bezeichneten Bank während der Durchführung einer Zugriffsoperation
einer Datenverarbeitungsschaltung innerhalb des in 1 gezeigten
Systems;
-
8 den
Ablauf einer Schreibzugriffsoperation durch die Zentraleinheit,
die eine Schreibzugriffsoperation durch eine Datenverarbeitungsschaltung
unterbricht;
-
9 den
Ablauf einer Lesezugriffsoperation durch die Zentraleinheit, die
eine Lesezugriffsoperation durch eine Datenverarbeitungsschaltung
unterbricht;
-
10 den
Ablauf einer Schreibzugriffsoperation durch die Zentraleinheit,
die eine Lesezugriffsoperation durch eine Datenverarbeitungsschaltung unterbricht;
und
-
11 den
Ablauf einer Lesezugriffsoperation durch die Zentraleinheit, die
eine Schreibzugriffsoperation durch eine Datenverarbeitungsschaltung unterbricht.
-
Das
in 1 gezeigte Datenverarbeitungssystem umfasst einen
Speicher 1 des SDRAM-Typs, der vier Bänke A, B, C und D umfasst.
Der Speicher 1 ist mit einer Speicherschnittstellenschaltung 2 verbunden,
die einen Pufferspeicher 3 umfasst. Die Schnittstellenschaltung 2 ist
mit einer Zentraleinheit 4 verbunden, die eine arithmetisch-logische
Einheit 5 und eine Steuervorrichtung 6 umfasst,
sowie mit einer Datenverarbeitungsschaltung 7. Zum Beispiel
ist die Datenverarbeitungsschaltung 7 ein Prozessor, der
der Verarbeitung von Audio-, Video- und Graphik-(AVG)-Daten zugewiesen
ist, wie z. B. Daten in einem MPEG-Format (MPEG = Motion Picture
Expert Group).
-
Die
Zentraleinheit 4 ist über
Verbindungsmittel 8 mit der Schnittstellenschaltung 2 verbunden,
die einen Datenbus, einen Adressbus und Befehlsleitungen umfassen.
Die Datenverarbeitungsschaltung 7 ist über Verbindungsmittel 9 mit
der Schnittstellenschaltung 2 verbunden, die ebenfalls
einen Datenbus 15, einen Adressbus und Befehlsleitungen 16 umfassen,
die in 2 zu sehen sind. Ein Datenschnittstellenmodul 40 ist
mit dem Datenbus 15 verbunden und stellt das Empfangen
und das Senden von AVG-Daten über
die Schnittstellenschaltung 2 sicher.
-
Die
Schnittstellenschaltung 2 ist mit dem Speicher 1 über Verbindungsmittel 17 verbunden,
die einen Datenbus 10, einen Adressbus 11, zwei
Bankauswahlleitungen 12 und 13 und Befehlsleitungen 14 umfassen.
Ein Maskierungsbefehl DQM erlaubt ferner eine Auswahl eines Teils
jeder Speicherstelle, auf die zugegriffen wird, wenn die zu lesenden
oder zu schreibenden Daten kürzer
sind als das Speicherwort. Ein Speicherwort besteht z. B. aus 32
Bits.
-
Der
Speicher 1 ist ein kollektiver Speicher, in dem die Zentraleinheit 4 Zugriffsoperationen
zum Lesen und Schreiben von Daten und Befehlscodes ausführt, und
in dem die Datenverarbeitungsschaltung 7 Zugriffsoperationen
zum Lesen und Schreiben der AVG-Daten ausführt. Gemäß der Auslegung des Speichers 1 kann
eine einzige Zugriffsoperation gleichzeitig ausgeführt werden.
Die Zentraleinheit 4 und die Datenverarbeitungsschaltung 7 greifen
auf den Speicher, sowohl zum Lesen als auch zum Schreiben, mittels
der Schnittstellenschaltung 2 zu, indem sie eine an die
Schnittstellenschaltung 2 gesendete Zugriffsanfrage erzeugen,
d. h. einen Übertragungsbefehl,
der von der Schnittstellenschaltung 2 auszuführen ist.
-
In
einer Variante erzeugen mehrere analoge Datenverarbeitungsschaltungen
jeweils Zugriffsanfragen für
den Speicher 1. In diesem Fall kommunizieren die unterschiedlichen
Datenverarbeitungsschaltungen mit der Schnittstellenschaltung 2 über eine
gemeinsame Datenzentraleinheit, die in bekannter Weise die Zugriffsanfragen
und die entsprechenden Daten zwischen der Datenverarbeitungsschaltung,
die die Anfrage sendet, und der Schnittstellenschaltung 2 übermittelt.
In diesem Fall wird der Block 7 der 1 als ein
Satz von Datenverarbeitungsschaltungen und deren gemeinsame Datenzentraleinheit
betrachtet.
-
Gemäß der Auslegung
des Speichers 1 wird eine Zugriffsoperation in einem oder
mehreren Bündeln
aufeinanderfolgender Stellen in einer oder mehreren Bänken durchgeführt. In
der betrachteten Ausführungsform
beziehen sich die Anfragen der Datenverarbeitungsschaltung 7 jedes
mal auf 16 Speicherwörter,
die z. B. Pixelwerte eines Bildabschnitts repräsentieren. Die Anfragen von
der Zentraleinheit können
sich auf 1, 4 oder 8 Speicherwörter
beziehen.
-
Eine
Zugriffsanfrage bezeichnet einen Satz von Speicherstellen, der den
Gegenstand eines Zugriffs bilden muss, und definiert eine Datenserie,
die zu übertragen
ist, sowie eine Übertragungsrichtung, die
zu bewerkstelligen ist. Zum Beispiel ist die Übertragungsrichtung durch die
Hochpegel- oder Niedrigpegelpositionierung von einem oder mehreren
spezifischen Eingangsregistern der Schnittstellenschaltung 2 definiert.
Eine Datenserie, die zu lesen ist, wird durch eine Adresse im Speicher 1 bezeichnet.
Eine Datenserie, die zu schreiben ist, wird durch ein Signal auf
einem Datenbus am Eingang der Schnittstellenschaltung 2 bezeichnet.
Die Speicherstellen, die den Gegenstand eines Zugriffs bilden, werden
durch die folgenden Parameter definiert: eine Adresse einer ersten
Stelle eines ersten Blocks, die im Speicher 1 zu lesen
oder zu schreiben ist, eine Anzahl von zu lesenden oder zu schreibenden
Blöcken,
eine Anzahl von Stellen, die zwischen jedem Block zu überspringen
ist, und eine Anzahl aufeinanderfolgenden Speicherstellen, die in
jedem Block zu lesen oder zu schreiben ist. Selbstverständlich kann
es sich auch um einen einzelnen Block zusammenhängender Stellen handeln. Eine
Adresse umfasst eine Banknummer, eine Reihennummer und eine Spaltennummer.
-
Die
Schnittstellenschaltung 2 behandelt jede Zugriffsanfrage
derart, dass die definierte Datenserie von der Quelle der Anfrage
zu den so definierten Speicherstellen übertragen wird, oder von den
so definierten Stellen zu der Quelle der Anfrage, je nach dem, ob
eine Schreib- oder eine Leseanfrage betroffen ist.
-
Die
Operation der Speicherschnittstellenschaltung 2 wird im
Folgenden mit Bezug auf 2 beschrieben. Eine Verarbeitungsphase,
die für
die von der Datenverarbeitungsschaltung 7 gesendeten Zugriffsanfragen
spezifisch ist, wird zuerst beschrieben.
-
Die
Schnittstellenschaltung 2 umfasst ein Arbitrierungsmodul 18,
das mit den Befehlsleitungen 16 verbunden ist und für die Arbitrierung
der von der Verarbeitungsschaltung oder den Schaltungen 7 gesendeten
Zugriffsanfragen bestimmt ist. Das Arbitrierungsmodul 18 wendet
eine bestimmte Arbitrierungsprozedur an, um somit die Reihenfolge
zu bestimmen, in der die Zugriffsanfragen, die sich in der Warteschlange
befinden und von der Verarbeitungsschaltung oder den Schaltungen 7 stammen,
ausgeführt
werden müssen.
Zu Beginn dieser Prozedur wird eine Zugriffsanfrage 42 angenommen
und zu einem Vorverarbeitungsmodul 19 mittels eines Befehlsregisters übermittelt,
woraufhin die übrigen
Anfragen in der Warteschlange rearbitriert werden.
-
Zum
Beispiel ist die angenommene Zugriffsanfrage 42 in diesem
Befehlsregister in der folgenden Weise kodiert: die acht niedrigstwertigen
Bits bezeichnen eine Anzahl von Speicherwörtern, die zwischen den jeweils
zu lesenden oder zu schreibenden Datenblock zu überspringen sind, die vier
folgenden Bits bezeich nen eine Anzahl aufeinanderfolgender Speicherwörter pro
Block, das nächste
Bit bezeichnet den Zugriffstyp, entweder Lesen oder Schreiben, und
die nachfolgenden Bits bezeichnen die Adresse eines ersten Speicherwortes
eines ersten zu lesenden oder zu schreibenden Blocks im Speicher 1.
-
Das
Vorverarbeitungsmodul 19 wendet eine Prozedur in zwei Schritten
auf die Zugriffsanfrage 42 an, die von der Schaltung oder
von einer der Schaltungen 7 empfangen worden ist:
- – In
einem Umgruppierungsschritt wird die Anzahl unterschiedlicher Bänke, die
bei der Zugriffsanfrage betroffen sind, berechnet. Wenn die Zugriffsanfrage
mehrere Bänke
betrifft, wird sie in viele Teilzugriffsanfragen zerlegt. Jeder
Anfrageteil bezeichnet alle Speicherstellen, die von der Anfrage bezeichnet
werden und zu einer anderen Bank gehören.
- – In
einem Sequenzierungsschritt sequenziert das Vorverarbeitungsmodul 19 die
Anfrageteile, die aus der vorverarbeiteten Anfrage erzeugt worden sind,
um somit zu verhindern, dass zwei Teile der ausgeführten Anfrage
nacheinander ein und dieselbe Bank betreffen. Zu diesem Zweck wird
die betroffene Bank für
den letzten Teil der Anfrage bestimmt, die unmittelbar der Anfrage
während der
Vorverarbeitung vorangeht, und es wird ein Teil der Anfrage, die
eine andere Bank bezeichnet, an die erste Stelle gesetzt.
-
Sobald
der Teil oder die Teile der Anfrage 21, die von der Zugriffsanfrage
zugeführt
werden, verfügbar
sind, jeweils mit einer bezeichneten Banknummer, der Nummer der
Reihe, die in der Bank bezeichnet ist, der Nummer und der Liste
der Spalten, die in der Reihe bezeichnet sind, und einem in Indikator des
Zugriffstyps, werden diese in der oben bestimmten Reihenfolge zu
einem Spaltengenerator 20 übermittelt. Der Spaltengenerator 20 ist
für die
Zugriffsanfragen der Datenverarbeitungsschaltung 7 bestimmt.
-
Das
Vorverarbeitungsmodul 19 sendet ein Signal zu einem Kollisionsmanager 22,
wobei das Signal die Anwesenheit eines Teils der Anfrage, der zur Ausführung bereit
ist, anzeigt.
-
Eine
Verarbeitungsphase, die für
die Zugriffsanfragen, die von der Zentraleinheit 4 gesendet werden,
spezifisch ist, wird im Folgenden beschrieben. Eine Zugriffs anfrage
von der Zentraleinheit 4 wird von einem Zentraleinheitsschnittstellenmodul 28,
das mit dem Verbindungsmittel 8 verbunden ist, empfangen.
Das Schnittstellenmodul 28 umfasst eine Warteschlange,
die nur eine einzelne Anfrage enthält, die auf die Verarbeitung
wartet. Das Schnittstellenmodul 28 wartet, bis die Anfrage,
die sich im verarbeiteten Prozess befindet, endet, bevor es die nächste Anfrage
annimmt. Eine Zugriffsanfrage für den
Speicher 1, die von der Zentraleinheit 4 kommt, betrifft
immer eine Reihe aufeinanderfolgender Adressen, d. h. sie umfasst
keine übersprungene Stelle.
Wenn das Schnittstellenmodul 28 eine Anfrage annimmt, sendet
es ein Signal 29 zum Kollisionsmanager 22, das
die Anwesenheit einer Zentraleinheitsanfrage angibt, die zur Ausführung bereit
ist, und sendet die angenommene Anfrage 33 zu einem Spaltengenerator 30,
der für
die Zugriffsanfragen der Zentraleinheit 4 bestimmt ist.
-
Der
Kollisionsmanager 22 hat die Funktion der Arbitrierung
zwischen den Teilen der Anfrage und den Zentraleinheitsanfragen,
die zur Ausführung
bereit sind. Der Kollisionsmanager 22 managt die Ausführung der
Zugriffsoperationen, die von der Zentraleinheit 4 und der
Datenverarbeitungsschaltung oder den Schaltungen 7 angefordert
werden, um somit die Anfragen mit der ersten Priorität zu verarbeiten.
Tatsächlich
werden die AVG-Daten als allgemeine Daten betrachtet, im Gegensatz
zu den Daten und den Befehlscodes der Zentraleinheit 4,
die als Prioritätsdaten
betrachtet werden. In der Operation erzeugt der Kollisionsmanager 22 Aktivierungssignale 24 und 34,
die für
die Spaltengeneratoren 20 bzw. 30 bestimmt sind,
entsprechend einem vorgegebenen Verfahren.
-
Eine
Verarbeitungsphase, die für
alle Anfragen gleich ist, wird im Folgenden beschrieben. Die Spaltengeneratoren 20 und 30 werden
durch den Empfang des Aktivierungssignals 24 oder 34 des
Kollisionsmanagers 22 aktiviert. Bei Empfang des entsprechenden
Aktivierungssignals verarbeitet der Spaltengenerator 20 oder 30 den
Teil oder die Teile 21 der Anfrage der Datenverarbeitungsschaltung oder
der Anfrage der Zentraleinheit 33 jeweils durch Übersetzen
derselben in eine Reihe von Spaltennummern 31, oder in
eine Reihe von Spaltennummern 32, um jeweils Zugriffsanforderungen
auf einem geeigneten genauen Niveau für einen Befehlsgenerator 25 zu
bilden (Nummern der Bank, der Reihe und der Spalte jeder Speicherstelle,
die von dem Teil der Anfrage oder durch die Anfrage der Zentraleinheit
jeweils betroffen ist). In Kooperation mit dem aktivierten Spal tengenerator 20 oder 30 erzeugt
der Befehlsgenerator 25 ferner eine Folge von elementaren
Zugriffsbefehlen, wobei jeder elementare Zugriffsbefehl eine Zugriffsoperation
auf eine einzelne Adresse definiert.
-
Der
Befehlsgenerator 25 erzeugt ferner Befehle, die zum Vorbereiten
von auszuführenden
Zugriffsoperationen notwendig sind, wie z. B. Vorladebefehle für die betroffene
Bank und die Aktivierung der Reihe, die den Gegenstand einer Zugriffsoperation
bildet. Der Befehlsgenerator 25 stellt ferner die Erzeugung
von Befehlen sicher, die für
die regelmäßige Auffrischung
des Speichers 1 notwendig sind, z. B. in der Größenordnung
von 64 Auffrischungen pro Millisekunde.
-
Ein
Signalgenerator 26 erzeugt Befehlssignale auf den Leitungen 14,
wobei die Signale für
den Speicher spezifisch sind, wie z. B. RAS-, CAS- und WE-Signale,
die Fachleuten bekannt sind, als Funktion der Befehle 27,
die vom Signalgenerator 25 gesendet werden. Jedes Datenelement
der von der Anfrage definierten Serie wird mittels des Datenbusses 10 zwischen
einer Speicherstelle des Speichers 1 und dem Pufferspeicher 3 übertragen.
Für jedes
Datenelement wird die Bank ausgewählt, indem die Bankauswahlleitungen 12 und 13 positioniert
werden, wobei die Reihen- und Spaltennummern mittels des Adressbusses
ausgewählt
werden. Die Schnittstelle 2 umfasst ferner ein Modul zum Überwachen des
Zustands der Bänke 54,
wobei das Modul Signale erzeugt, die den Zustand jeder Bank und
ihre Aktivität
anzeigen.
-
Andere
charakteristische Merkmale des in 1 gezeigten
Datenverarbeitungssystems werden im Folgenden mit Bezug auf die 3 und 4 beschrieben.
-
3 zeigt
eine Sequenz 35 von 24 Codierungsbits einer Adresse des
Speichers 1, wie in einer Zugriffsanfrage bezeichnet, die
von der Schnittstellenschaltung 2 empfangen wird. Jedes
Codierungsbit ist individuell jeweils durch eine Wertigkeit im Bereich von
0 bis 23 gekennzeichnet. 3 zeigt ferner die Interpretation
jedes Bits der Sequenz 35 durch die Schnittstellenschaltung 2.
Im gezeigten Beispiel wird angenommen, dass der Speicher 1 ein SDRAM-Speicher
mit einer Gesamtkapazität
von 64 Mo ist, mit vier Bänken
von 256 Spalten mal jeweils 2.048 Reihen. Folglich ist eine Spaltennummer
mit acht Bits codiert, eine Reihennummer mit elf Bits codiert und
eine Banknummer mit zwei Bits codiert, wo bei eine vollständige Adresse
mit 2 + 11 + 8 = 21 Bits codiert ist. Es ist selbstverständlich auch
möglich, Bänke mit
einer anderen Anzahl von Reihen und/oder Spalten zu verwenden, indem
die Anzahl der Bits angepasst wird, die zum Codieren der entsprechenden
Nummer verwendet werden. Es ist auch möglich, zwei identische SDRAM-Speichereinheiten
für den
Speicher 1 zu verwenden, die jeweils vier Bänke aufweisen,
und in einer entsprechenden Weise die Adressen eines Auswahlbits
der Speichereinheit zu verlängern.
In der Praxis sind die Adressen auf 32 Bits normiert, wobei die überschüssigen höchstwertigen
Bits, die mit dem Bezugszeichen 36 bezeichnet sind, nicht
verwendet werden.
-
Wie
in 3 gezeigt ist, konvertiert die Schnittstellenschaltung 2 eine
Adresse in einer Zugriffsanfrage, die von der Verarbeitungsschaltung 7 oder
von der Zentraleinheit 4 kommt, mittels des folgenden Verfahrens:
die Bank wird durch einen Binärcode
von zwei Bits bestimmt, die in abnehmender Reihenfolge der Wertigkeit
durch Bits mit einer Wertigkeit von 20 bzw. 3 aus der Sequenz 35 gebildet werden,
im Folgenden jeweils mit B1 und B0 bezeichnet. Die Spaltennummer
wird durch einen Binärcode von
acht Bits bestimmt, die in abnehmender Reihenfolge der Wertigkeit
von den Bits mit den Wertigkeiten 8, 7, 6, 5, 4, 2, 1 bzw. 0 der
Sequenz 35 gebildet werden. Die Reihennummer wird durch
einen Binärcode von
elf Bits bestimmt, die in einer abnehmender Reihenfolge der Wertigkeit
von den Bits mit den Wertigkeiten 19 bis 9 der Sequenz 35 gebildet
werden.
-
Die
Bänke werden
in folgender Weise ausgewählt:
Das Auswahlbit der Bank B1 bezeichnet entweder das Bankpaar A-B
(niedriger Wert) oder das Bankpaar C-D (hoher Wert). Innerhalb der
jeweiligen Paare bezeichnet das Auswahlbit der Bank B0 entweder
die Bank A oder C (niedriger Wert) oder die Bank B oder D (hoher
Wert).
-
Im
System der 1 sind die Datenverarbeitungsschaltung 7 und
die Zentraleinheit 4 so gestaltet, dass sie Daten lesen
oder schreiben, die ihnen in einem unterschiedlichen Bankpaar A-B
oder C-D zugeordnet sind. Zum Beispiel werden die AVG-Daten, die
der Datenverarbeitungsschaltung 7 zugeordnet sind, in dem
Bankpaar A-B geschrieben, gelesen und gespeichert, wobei das Bit
B1 in den Adressen, die von der Zugriffsanfrage der Datenverarbeitungsschaltung 7 angegeben
werden, immer auf Niedrigpegel gesetzt ist. Umgekehrt werden die
Daten, die der Zentraleinheit 4 zugeordnet sind, z. B.
Befehlsanweisungen, im Bankpaar C-D geschrieben, gelesen und gespeichert,
wobei das Bit B1 in den Adressen, die von den entsprechenden Zugriffsanfragen
der Zentraleinheit 4 angegeben sind, immer auf Hochpegel
gesetzt ist.
-
Wie
in 4 gezeigt, ist folglich die Adressabbildung des
Speichers 1 wie folgt. In einer ansteigenden Reihenfolge
von Adressen, durch die Achse 37 dargestellt, weist der
Speicher 1 eine erste Zone 38, die den Daten zugeordnet
ist, die der Datenverarbeitungsschaltung 7 gehören und
durch eine Abwechslung der Blöcke
der Bänke
A und B gebildet wird, wobei jeder Block eine Länge L von acht Wörtern aufweist,
und eine zweite Zone 39 auf, die den Daten zugeordnet ist,
die der Zentraleinheit 4 gehören und durch eine Abwechslung
der Blöcke
der Bänke
C und D derselben Länge
L gebildet wird.
-
Eine
Anfrage der Datenverarbeitungsschaltung 7 bezeichnet eine
Serie in einer Sequenz von 16 Adressen der ersten Zone 38 des
Speichers, z. B. in Form einer Anzahl von Blöcken, einer Anzahl von Wörtern pro
Block und einer Anzahl von zu überspringenden
Stellen zwischen den jeweiligen Blöcken. Aufgrund der Abbildung
des Speichers 1 können
diese 16 Adressen in einer willkürlichen
Weise zwischen den Bänken
A und B verteilt sein. In einem häufigen Fall, in dem eine Anfrage 16 aufeinanderfolgende Adressen
bezeichnet, entsprechen diese immer den Stellen, die gleichmäßig zwischen
den Bänken
A und B verteilt sind. Dieses besondere Merkmal reduziert die Wahrscheinlichkeit
des Auftretens einer Folge von zwei Anfragen oder zweier aufeinanderfolgender Teile
von Anfragen, die ein und dieselbe Bank bezeichnen.
-
Wenn
die Konvertierung der Adressen der Speicherstellen von der Schnittstellenschaltung 2 bewerkstelligt
wird, muss der Adressierungsmodus, der von der Zentraleinheit 4 und
der Verarbeitungsschaltung 7 verwendet wird, zur Durchführung der
Abbildung des Speichers 1 nicht modifiziert werden. Dieser
Adressierungsmodus kann somit kompatibel mit anderen Komponenten
bleiben, mit denen die Zentraleinheit 4 und die Verarbeitungsschaltung 7 kommunizieren
müssen.
-
Die
Vorverarbeitung der Anfragen durch das Vorverarbeitungsmodul 19 wird
im Folgenden mit Bezug auf die 5a bis 5c genauer
erläutert.
-
5a zeigt
schematisch die Zugriffsanforderung 42, die vom Arbitrierungsmodul 18 mittels
des Vorverarbeitungsmoduls 19 empfangen wird. Die erste
Linie zeigt die Anzahl von Spalten, die den Gegenstand einer Zugriffsoperation
in einer bestimmten durch die Anfrage spezifizierten Reihe bilden.
Die zweite Linie zeigt die Bank, zu der jede Spalte gehört. Es wird
angenommen, dass die mit c1 bis c16 bezeichneten Spalten des Speichers 1 Daten
d1 bis d16 umfassen.
-
Wie
in 5b gezeigt ist, liest das Vorverarbeitungsmodul 19 die
Nummern der 16 Spalten, die von der Anfrage 42 bezeichnet
werden, in der Reihenfolge, in der sie bezeichnet sind, und sendet
für jede
Spalte eine auf ein Bit der Bank codierte Nummer, in der sich die
Spalte befindet (z. B. 0 für
die Bank A und 1 für
Bank B), über
eine Warteschlange 41 zum Schnittstellenmodul 40.
Das Vorverarbeitungsmodul 19 bestimmt ferner die Nummer
der unterschiedlichen Bänke,
die in der Anfrage bezeichnet sind.
-
Wie
in 5c gezeigt ist, umfasst das Vorverarbeitungsmodul 19 einen
Zustandsindikator 44, der die Nummer der Bank angibt, in
der sich die letzte Spalte befindet, die von der letzten Anfrage
oder dem Teil der Anfrage, die im Voraus vorverarbeitet worden ist,
bezeichnet worden ist, welche nun vom Befehlsprozessor 25 verarbeitet
wird oder nach der Zugriffsanfrage der Zentraleinheit in der Warteschlange steht.
Der Zustandsindikator 44 gibt die Bank A in 5c an.
Wenn die Anfrage 42 mehrere Bänke bezeichnet, z. B. A und
B im gezeigten Beispiel, ordnet das Vorverarbeitungsmodul 19 die
Spalten der Anfrage um durch Umgruppieren derselben je zugeordneter
Bank in gleich viele Spaltenserien. Die Spaltenserien, die zu einer
Bank verschieden von derjenigen, die vom Zustandsindikator 44 angezeigt
wird, gehören,
d. h. im gezeigten Beispiel zur Bank B gehören, werden zuerst angeordnet.
Die Serie von Spaltennummern c2 und c4 bis c16, die in dieser Reihenfolge in
der Anfrage 42 bezeichnet sind und zur Bank B gehören, wird
somit als erster Teil der Anfrage 21a verarbeitet. Die
Serie von Spaltennummern c1 und c3, die in dieser Reihenfolge in
der Anfrage 42 bezeichnet sind und zur Bank A gehören, wird
als zweiter Teil der Anfrage 21b verarbei tet. Die Anfrageteile 21a und 21b werden
in dieser Reihenfolge zum Spaltengenerator 20 übermittelt,
wie vorher erläutert
worden ist.
-
Eine
Phase der Nachverarbeitung von Anfragen des Lesetyps der Datenverarbeitungsschaltung 7 durch
das Schnittstellenmodul 40 wird im Folgenden mit Bezug
auf die 5d und 5e erläutert. Es
wird angenommen, dass die verarbeitete Anfrage 42 dem Lesetyp
entspricht.
-
Wie
in 5d gezeigt ist, umfasst die Verarbeitung des ersten
Teils der Anfrage durch den Befehlsgenerator 25 das Lesen
der Daten in der Reihenfolge, in der die Spalten dem Spaltengenerator 20 angegeben
worden sind. Das erste Datenelement, das zur Schnittstellenschaltung 2 übertragen
wird, ist somit d2, das in der Spalte c2 gespeichert wurde. Bei Ankunft
eines gelesenen Datenelements liest das Schnittstellenmodul 40 eine
verfügbare
Adresse aus dem Pufferspeicher 3 in einer Warteschlange 43,
die alle verfügbaren
Adressen enthält,
und speichert das empfangene Datenelement d2 vorübergehend an dieser Adresse
@1. Das Schnittstellenmodul 40 umfasst ferner zwei Adresswarteschlangen 45a und 45b,
die den Daten von den Bänken
A bzw. B zugewiesen sind. Der Zustandsindikator 44 gibt
nun die Bank B an, in der die Daten gelesen werden. Das Schnittstellenmodul 40 kopiert
somit die Speicheradresse @1 in der Warteschlange 45b,
die den Daten von der Bank B zugeordnet ist. Dieser Prozess wird für die gesamte
Serie von Daten d1 bis d16, die von der Anfrage 42 definiert
wird, wiederholt.
-
Mit
Bezug auf 5e wird angenommen, dass alle
Daten vom Speicher 1 in den Pufferspeicher 3 der
Schnittstellenschaltung 2 übertragen worden sind. Die
Adresswarteschlangen 45a und 45b sind in ihrem
Endzustand gezeigt. Das Schnittstellenmodul 40 stellt die
Umsequenzierung der empfangenen Daten dar. Zu diesem Zweck wird
die Warteschlange 1 gelesen. Bei jeder gelesenen Banknummer
liest das Schnittstellenmodul 40 die erste Adresse der
Warteschlange, die den Daten von der entsprechenden Bank zugewiesen
ist, d. h. die erste Adresse @15 in der Warteschlange 45a,
da die erste gelesene Banknummer gleich 0 ist. Zu diesem Zweck liest
es das Datenelement, das an der Adresse @15 gespeichert ist, das
das Datenelement d1 ist, und sendet dieses auf dem Datenbus 15 zur
Verarbeitungsschaltung 7. Die Adresse @15 wird freigegeben und
in der Warteschlange 43 zurückgesetzt. Dieser Prozess wird
für alle
Banknummern der Warteschlange 41 wiederholt, bis ein Signal
gelesen wird, das anzeigt, dass die letzte Spalte der Anfrage erreicht
worden ist. Die Anfrage wird dann beendet. Die Daten werden somit
in der von der Anfrage 42 definierten Reihenfolge der Speicherstellen
zur Verarbeitungsschaltung 7 übertragen.
-
Für eine Schreibanfrage
führt das
Schnittstellenmodul 40 eine Vorverarbeitungsoperation durch,
die symmetrisch zu der obenbeschriebenen Nachverarbeitungsoperation
ist. Während
der Ausführung
eines Teils der Anfrage oder einer Anfrage von der aktuellen Zentraleinheit
(aktueller Zugriff) untersucht der Befehlsgenerator 25 die
Parameter eines Teils der Anfrage oder einer nachfolgenden Anfrage
der Zentraleinheit, die unter Vorbereitung ist (nachfolgender Zugriff).
Wenn der nachfolgende Zugriff auf eine Bank Bezug nimmt, die verschieden
ist von der Bank, die von der aktuellen Anfrage betroffen ist, erzeugt
der Befehlsgenerator 25 die Vorlade- und Aktivierungsbefehle
der Bank, die von der nachfolgenden Anfrage betroffen ist, während der
Ausführung
der aktuellen Anfrage, derart, dass kein Zyklus für die Vorbereitung
des nachfolgenden Zugriffs verloren geht. Zu diesem Zweck erzeugt
der Befehlsgenerator 25 die Befehle, die den Signalen entsprechen,
die er gleichzeitig von den Spaltengeneratoren 20 und 30 und
vom Kollisionsmanager 22 empfängt, in der folgenden Reihenfolge
abnehmender Priorität:
- 1 – Vorladen
einer durch eine Anfrage der Zentraleinheit bezeichneten Bank,
- 2 – Aktivieren
einer durch eine Anfrage der Zentraleinheit bezeichneten Bank,
- 3 – Erzeugen
eines elementaren Zugriffsbefehls für die Zentraleinheit,
- 4 – Erzeugen
eines elementaren Zugriffsbefehls für die Verarbeitungsschaltung 7,
- 5 – Aktivieren
einer durch eine Anfrage der Verarbeitungsschaltung 7 bezeichneten
Bank,
- 6 – Vorladen
einer willkürlichen
Bank,
- 7 – neutraler
Befehl.
-
Die 6a und 6b zeigen
eine Reduktion der Zugriffszeiten, die mittels der Vorverarbeitungsanfragen
durch die Schnittstellenschaltung 2 erzielt wird. Es wird
angenommen, dass zwei Anfragen 46 und 47 der Verarbeitungsschaltung 7 aufeinanderfolgend
verarbeitet werden, ohne dass eine Anfrage von der Zentraleinheit 4 auftritt.
Die Anfrage 46 bezeichnet in dieser Reihenfolge einen Stapel 46b von
drei Spalten der Bank B, einen Stapel 46c von zwei Spalten
der Bank A und einen Stapel 46d von drei Spalten der Bank
B. Die Anfrage 47 bezeichnet in dieser Reihenfolge einen
Stapel 47a von acht Spalten der Bank B und einen Stapel 47b von
acht Spalten der Bank A.
-
6a zeigt
den Zeitverlauf der Verarbeitung der Anfragen 46 und 47,
wenn die Anfragen ohne Vorverarbeitung ausgeführt werden. Die Durchführung einer
Zugriffsoperation auf eine Bank erfordert eine Operation der Vorbereitung
des Zugriffs durch Vorladen der Bank und durch Aktivieren der Reihe,
die den Gegenstand einer Zugriffsoperation bildet. Diese Vorbereitung
erfordert eine Zeitspanne Δt,
die einen Wert von z. B. sechs Taktzyklen des SDRAM-Speichers hat.
Die Vorbereitung einer nachfolgenden Zugriffsoperation wird ab dem
Beginn der Übertragung
der dem aktuellen Zugriff entsprechenden Daten ausgeführt. Die Übertragungen,
die den Stapeln der Spalten 46b und 46c entsprechen,
sind jedoch kürzer
als die Vorbereitungszeit Δt,
so dass vor den Übertragungen,
die den Stapeln 46c und 46d entsprechen, eine
Verzögerung
auftritt. Außerdem beginnt
die Anfrage 47 mit einer Zugriffsoperation in der Bank
B, in der die letzte Spalte, auf die im Verlauf der Zugriffsoperation 46 zugegriffen
worden ist, vorhanden ist. Eine Verzögerung Δt entsteht somit während der
Vorbereitung der Bank B zwischen der Verarbeitung der zwei Anfragen.
-
6b zeigt
den Zeitverlauf der Verarbeitung der Anfragen 46 und 47 mit
der Vorverarbeitungsoperation durch das Modul 19. Die Übertragungsbefehle
der Daten, die den Spaltenstapeln 46a und 46c entsprechen,
werden in einen ersten Anfragenteil 48 umgruppiert und
aufeinanderfolgend verarbeitet, derart, dass die Verzögerung vor
der Verarbeitung des Stapels 46c vermieden wird. Die Befehle für die Datenübertragungen,
die den Spaltenstapeln 46b und 46d entsprechen,
werden in einen zweiten Anfrageteil 49 umgruppiert und
aufeinanderfolgend ver arbeitet, derart, dass die Verzögerung vor
der Verarbeitung des Stapels 46d vermieden wird. Die Anfrage 47 wird
in zwei Anfrageteilen 50 und 51 verarbeitet, die
den Spaltenstapel 47a bzw. den Spaltenstapel 47b bezeichnen,
indem mit dem Teil 51, der den Spaltenstapel 47b bezeichnet,
begonnen wird, so dass die Operation der entsprechenden Übertragung
der Daten zwischen der Bank A und der Schnittstellenschaltung 2 während der
Ausführung
der Übertragung,
die deren Anfrageteil 49 entspricht, vorbereitet wird.
Die Verzögerung
zwischen der Verarbeitung der zwei Anfragen 46 und 47 wird
somit vermieden. Die zum Verarbeiten der zwei Anfragen erforderliche
Zeitspanne wird somit wesentlich reduziert, z. B. in der Größenordnung
von 30 Prozent bezüglich
des Falles, indem die Vorverarbeitungsoperation nicht ausgeführt wird.
-
Die
Arbitrierung der Zugriffsoperationen durch den Kollisionsmanager 22 wird
im Folgenden mit Bezug auf die 7 bis 11 genauer
beschrieben. Alle diese Figuren zeigen den Ablauf als Funktion der
Zeit t der einen oder der mehreren Zugriffsoperationen unterschiedlicher
Typen. Jede Spalte der gezeigten Tabellen entspricht einem Taktzyklus
von z. B. 8 ns des SDRAM-Speichers. Die erste Zeile der Tabellen
entspricht der Übertragung
bestimmter Vorbereitungsbefehle des SDRAM auf den Befehlsleitungen 14.
Ein Vorladebefehl wird durch PRE symbolisiert. Ein Aktivierungsbefehl
wird durch ACT symbolisiert. Die zweite Zeile der Tabellen präsentiert
die Übertragung
elementarer Lese- oder Schreibbefehle auf den Befehlsleitungen 14.
Ein elementarer Lese- oder Schreibbefehl, der von der Datenverarbeitungsschaltung
angefordert wird, ist jeweils durch TR und TW symbolisiert. Ein
elementarer Lesebefehl oder Schreibbefehl, der von der Zentraleinheit
angefordert wird, ist jeweils durch CR und CW symbolisiert. Eine
Zugriffsanfrage, die mehrere Speicherstellen bezeichnet, wird in
mehrere aufeinanderfolgende elementare Befehle, ausgehend von 0
nummeriert, übersetzt.
Die dritte Zeile der Tabellen repräsentiert die Daten im Verlauf
ihrer Übertragung
auf dem Datenbus 10. Ein Datenelement, das während der
Ausführung
eines elementaren Lese- oder Schreibbefehls übertragen wird, ist durch den
Buchstaben D gefolgt von dem Symbol des entsprechenden elementaren
Befehls symbolisiert.
-
Wenn
wie in 7 gezeigt der Kollisionsmanager 22 das
Signal 29 während
der Ausführung
einer Zugriffsoperation der Datenverarbeitungsschaltung 7 empfängt und
die durch die Anfrage der Zentraleinheit 33 bezeichnete
Bank vorgeladen werden muss, gibt er an den Befehlsgenerator 25 einen
Befehl aus, um einen Vorladebefehl zwischen zwei elementaren Befehlen
für die
Zugriffsoperation, die im Gange ist, einzufügen, wie mittels des Pfeils 59 gezeigt
ist. Der Kollisionsmanager 22 stellt somit die Erzeugung
der elementaren Zugriffsbefehle zurück, um somit die Befehlsleitungen
des Speichers freizugeben, so dass ein Vorladebefehl übermittelt
werden kann. Zu diesem Zweck aktiviert der Spaltengenerator 20 ein
Bereitschaftssignal 52 während der Zeitspanne, in der
die Erzeugung der elementaren Befehle zurückgestellt werden muss, d.
h. z. B. während eines
Taktzyklus. Der Kollisionsmanager 22 befiehlt den Neustart
der Erzeugung elementare Zugriffsbefehle durch Übermitteln des Aktivierungssignals 24 an
den Spaltengenerator 20 einen Taktzyklus vor diesem Neustart,
was das Bereitschaftssignal 52 reinitialisiert.
-
Mit
Bezug auf 8 wird angenommen, dass ein
Schreibzugriff der Datenverarbeitungsschaltung 7 durch
das Aktivierungssignal 24 aktiviert wird und ausgeführt wird,
wenn die Zentraleinheit 4 einen Schreibzugriff anfordert.
Ein Aktivierungsbefehl der von der Anfrage der Zentraleinheit bezeichneten Bank
wird während
der Ausführung
der Zugriffsoperation, die im Gange ist, d. h. während der Übertragung des elementaren
Befehls TW3 im gezeigten Beispiel, erzeugt. Es ist zu beachten,
dass ein Aktivierungsbefehl die Kopie einer Reihe des SDRAM in einem
Register erzeugt, in dem die individuellen Spalten anschließend gelesen
oder geschrieben werden können,
und dass dessen Ausführung
mehrere Taktzyklen erfordert, z. B. zwei Taktzyklen. Sobald die
Aktivierung beendet ist, d. h. beim dritten Tatzyklus nach dem Aktivierungsbefehl
im gezeigten Beispiel, wird die in Gang befindliche Zugriffsoperation
durch das Bereitschaftssignal 2 aufgeschoben. Im gezeigten
Beispiel wird die in Gang befindliche Zugriffsoperation nach der Übertragung
des elementaren Befehls TW5 aufgeschoben. Der Schreibzugriff der
Zentraleinheit wird durch das Aktivierungssignal 34 gestartet.
Während
der Erzeugung des letzten elementaren Zugriffsbefehls für die Zugriffsoperation, die
von der Zentraleinheit angefordert worden ist, d. h. des elementaren
Befehls CW7, sendet der Spaltengenerator 30 ein Ende-des-Zugriffs-Signal 53 zum
Manager 22, was zu der Übertragung
eines Aktivierungssignals 24 und zur Reinitialisierung
des Bereitschaftssignals 52 führt. Die Erzeugung der elementaren
Zugriffsbefehle für
die aufgeschobene Zugriffsoperation wird ausge hend vom nachfolgenden Taktzyklus
mit dem nachfolgenden elementaren Befehl TW6 fortgesetzt. Durch
diese Sequenz von elementaren Befehlen wird eine Übertragung
von Daten bei jedem Taktzyklus ohne irgendeinen Verlust an Durchlassband
bewerkstelligt.
-
Wie
in 9 gezeigt ist, wird eine Lesezugriffsoperation
der Datenverarbeitungsschaltung 7 durch die Übertragung
des Aktivierungssignals 24 gestartet, woraufhin der Kollisionsmanager
das Signal 29 empfängt.
Wie im vorangehenden Fall wird ein Aktivierungsbefehl der durch
die Anfrage der Zentraleinheit 4 bezeichneten Bank während der
Ausführung
der Zugriffsoperation der Schaltung 7, d. h. während der Übertragung
des elementaren Befehls TR2, übermittelt.
Die Signale 24, 34 und 52 werden anschließend wie
vorher beschrieben gemanagt, um die Zugriffsoperation der Zentraleinheit
einzufügen, indem
die Zugriffsoperation der Schaltung 7 vorübergehend
aufgeschoben wird. Während
einer Schreibzugriffsoperation werden die zu schreibenden Daten im
selben Taktzyklus wie die Übermittlung
der entsprechenden elementaren Befehle auf dem Datenbus 10 gesendet.
Im Gegensatz hierzu besteht während
einer Lesezugriffsoperation eine Verzögerung zwischen der Übermittlung
eines elementaren Befehls und der Übertragung des entsprechenden
Datenelements aufgrund einer Verzögerung des Zugriffs auf die
individuellen Spalten LC, die für
den Speicher 1 spezifisch ist, und die als Latenzzeit CAS bezeichnet
wird. Diese Verzögerung
beträgt
z. B. drei Taktzyklen.
-
Das
Modul 54 zur Überwachung
des Zustands der Bänke
umfasst für
jede Bank einen Zugriffsindikator, der zum Beginn jeder Zugriffsoperation
in dieser Bank aktiviert wird und am Ende der Zugriffsoperation
reinitialisiert wird. Im gezeigten Beispiel ist der Zugriffsindikator 55 derjenige
für z.
B. die Bank A, in der die Daten von der Datenverarbeitungsschaltung 7 gelesen
werden, während
der Zugriffsindikator 56 z. B. derjenige für die Bank
C ist, die von der Anfrage der Zentraleinheit 4 angegeben
wird.
-
In 10 ist
eine elementare Befehlssequenz gezeigt, die in dem Fall erzeugt
wird, in dem eine Schreibzugriffsanfrage der Zentraleinheit 4 während einer
Lesezugriffsoperation der Schaltung 7 erzeugt wird. Um
einen Übergang
eines Lesezugriffs zu einem Schreibzugriff zu erlauben, muss der
Datenbus 10 des Spei chers von einem Ausgangszustand in
einen Eingangszustand wechseln. Dieser Wechsel der Zustände wird
mittels Transistoren des Busses 10 durchgeführt, die
zur Vermeidung irgendeiner Gefahr eines Kurzschlusses einen Zustand
hoher Impedanz durchlaufen, der mit dem Symbol HIZ dargestellt ist
und in dem keine Übertragung
von Daten auf dem Bus 10 bewerkstelligt werden kann. Diese Übertragung
erfordert eine Verzögerung
von einem Taktzyklus. Der Zugriff der Zentraleinheit beginnt, sobald die
Aktivierung beim dritten Taktzyklus nach dem Befehl ACT beendet
ist, während
der Übergang
durch den Zustand HIZ unmittelbar vorher bewerkstelligt wird, d.
h. beim zweiten Taktzyklus nach dem Befehl ACT. Das letzte gelesene
Datenelement, das somit auf dem Bus 10 übertragen werden kann, ist
dasjenige, das beim ersten Taktzyklus nach dem Befehl ACT übertragen
wird. Da die Latenzzeit CAS drei Taktzyklen beträgt, entspricht dieses Datenelement
dem elementaren Befehl, der im zweiten Taktzyklus vor dem Befehl
ACT übertragen
worden ist, d. h. dem Befehl TR0 im gezeigten Beispiel. Folglich
ist es nutzlos, Lesebefehle nach dem ersten Zyklus, der der Übermittlung
des Befehls ACT vorangeht, zu erzeugen. Tatsächlich werden die elementaren
Zugriffsbefehle für die
aufzuschiebende Zugriffsoperation auf der Grundlage des Befehls
ACT bis zum Start der Zugriffsoperation der Zentraleinheit durch
Neutralbefehle NOP ersetzt. Der elementare Zugriffsbefehl, der dem
Befehl ACT unmittelbar vorangeht, d. h. TR1, wird erzeugt, ohne
Zeit zur Ausführung
vor dem Aufschieben der Zugriffsoperation zu haben. Folglich wird
in diesem Fall die aufgeschobene Zugriffsoperation fortgesetzt,
sobald die Zugriffsoperation der Zentraleinheit abgeschlossen ist,
indem der nicht ausgeführte
Befehl TR1 erneut übertragen
wird. Zu diesem Zweck aktualisiert der Kollisionsmanager 22 die
Zähler
des Spaltengenerators 20 während seiner Reaktivierung.
Die Anzahl elementarer Befehle, die erneut übertragen werden müssen, muss
offensichtlich als Funktion der charakteristischen Merkmale des
in jeder bestimmten Ausführung
verwendeten Speichers angepasst werden.
-
11 zeigt
eine Sequenz elementarer Befehle, die erzeugt wird, wenn eine Lesezugriffsoperation
der Zentraleinheit 4 eine Schreibzugriffsoperation der
Schaltung 7 aufschiebt. In diesem Fall muss der Übergang
in den Zustand HIZ am Ende der Zugriffsoperation der Zentraleinheit
bewerkstelligt werden. Um jedoch die Übertragung aller von der Zentraleinheit
gelesenen Daten zu erlauben, muss zwischen der Erzeugung des letzten
Lesebefehls CR7 und dem Übergang
in den Zustand HIZ eine Verzögerung
zugelassen werden, die gleich der Latenzzeit CAS ist, d. h. im gezeigten
Beispiel gleich drei Taktzyklen. Während dieser Verzögerung befindet
sich der Spaltengenerator 20 in einer Bereitschaftsposition.
Die aufgeschobene Zugriffsoperation wird unmittelbar nach dem Übergang
fortgesetzt.
-
Bezüglich dieser
Verzögerung
ist das Modul 54 zur Überwachung
des Zustands der Bänke
mit einem Zähler 58 versehen,
dessen Wert bei jedem Taktzyklus in der dritten Zeile der Tabelle
in 11 angegeben ist. Der Zähler 58 wird immer
dann, wenn ein elementarer Lesebefehl übermittelt wird, auf einen
Wert gesetzt, der gleich LC + 1 ist, d. h. im gezeigten Beispiel
auf den Wert 4. Der Zähler 58 wird jedes
mal dann, wenn kein elementarer Lesebefehl übermittelt wird, um eine Einheit
dekrementiert. Sobald er den Wert Null erreicht, wird vom Modul 54 ein Signal 57 erzeugt,
wie in 2 gezeigt ist, um somit dem Befehlsgenerator 25 anzuzeigen,
dass der Übergang
in den Zustand HIZ bewerkstelligt werden kann, und zwar sofort.
-
Obwohl
die Erfindung mit Bezug auf eine bestimmte Ausführungsform beschrieben worden
ist, ist klar, dass dies keineswegs einschränkend ist und dass alle äquivalenten
Techniken der beschriebenen Mittel sowie deren Kombination, wenn
sie in den Umfang der Ansprüche
fallen, abgedeckt sind. Es gibt tatsächlich zahlreiche Möglichkeiten
zur Ausführung der
Funktionen mittels Hardwareelementen und/oder Computerprogrammelementen.
Diesbezüglich
sind die Figuren sehr schematisch, wobei jede Figur eine einzelne
Ausführungsform
repräsentiert.
Obwohl eine Figur verschiedene Funktionen in Form separater Blöcke zeigen
kann, schließt
dies nicht aus, dass eine Funktion durch mehrere separate Blöcke ausgeführt werden
kann.