-
Die vorliegende Erfindung bezieht sich auf ein Speichersystem mit einem
Pufferspeicher und insbesondere auf ein Speichersystem, das zur
Verwendung geeignet ist, wenn eine Vielzahl von Anforderern gleichzeitig
auf den Pufferspeicher zugreifen.
-
In dem Speichersystem mit dem Pufferspeicher ist der Pufferspeicher so
ausgewählt, daß er eine kleinere Kapazität und höhere Geschwindigkeit
als ein Hauptspeicher hat und ein Teil der Daten, die in dem
Hauptspeicher gespeichert sind, der am häufigsten verwendet wird, ist in dem
Pufferspeicher gespeichert, so daß auf die Daten schnell durch den
Pufferspeicher zugegriffen werden kann. Der Pufferspeicher hat einen
Datenbereich zum Speichern der Daten sowie einen Pufferspeicher-
Adressbereich. Der Pufferspeicher-Adressbereich speichert Adressen der
Daten, die in dem Datenbereich gespeichert sind, und zeigt an, ob die
Daten an der zugegriffenen Adresse in dem Datenspeicher vorliegen oder
nicht.
-
Wo auf einen solchen Pufferspeicher direkt durch einen
Anweisungsprozessor mit Pipeline zugegriffen wird, können Anweisungs-Hol-,
Operanden-Hol- und Operanden-Speicher-Anforderungen unabhängig zu dem
Pufferspeicher ausgegeben werden und daher können diese Anforderungen
gleichzeitig ausgegeben werden. In diesem Falle sind Anweisungen mit
niedrigerer Priorität reserviert und eine Ausführungsleistungsfähigkeit des
Anweisungsprozessors ist erniedrigt. Um dieses Problem zu lösen ist in
US-A-4 618 926, entsprechend zu EP-A-0 103 132, sowohl der
Adressbereich als auch der Datenbereich des Pufferspeichers in einen
Anweisungs-Hol-Bereich
und einen Operanden-Hol-Bereich unterteilt, auf die
unabhängig zugegriffen werden kann, und ein Adressbereich nur zum
Operandenspeichern ist bereitgestellt.
-
NIKKEI ELECTRONICS, 18. November; 1985, Seiten 241 bis 243
offenbart ein Drei-Hierarchie-Speichersystem in dem ein
Zwischenpufferspeicher zwischen dem Pufferspeicher; auf den direkt durch den
Anweisungsprozessor zugegriffen wird, und dem Hauptspeicher hinzugefügt ist.
Gewöhnlicherweise ist ein Eingabe-/Ausgabe-Prozessor zusätzlich zu dem
Anweisungsprozessor mit dem Zwischenpufferspeicher verbunden.
Demgemäß können Zugriffsanforderungen von diesen Prozessoren gleichzeitig
ausgegeben werden. In diesem Falle ist wiederum die Zugriffsanforderung
mit niedrigerer Piorität reserviert.
-
Ein Multi-Prozessorsystem ist in NIKKEI ELECTRONICS, 18 November;
1985, Seiten 243 und 244 offenbart. Eine Vielzahl von
Anweisungsprozessoren und eine Vielzahl von Eingabe-/Ausgabe-Prozessoren sind mit
einem Zwischenpufferspeicher verbunden und daher erhöht sich der
Wettbewerb der Zugriffsanforderungen. Um dieses Problem zu lösen,
wird vorgeschlagen eine Vielzahl von Zwischenpuffern bereitzustellen, die
unabhängig betreibbar sind, um den Wettbewerb und
Zugriffsanforderungen zu reduzieren.
-
Bei diesen Systemen des Standes des Technik sind eine Vielzahl von
Pufferspeichern bereitgestellt, um den Durchlauf zu verbessern. Bei
diesen Systemen erhöht sich jedoch die Menge an Hardware und eine
komplexe Steuerung ist erfordert, um die Inhalte der Vielzahl von
Pufferspeichern konsistent zu halten.
-
Das Dokument US-PS-4 381 541 offenbart ein System zum gleichzeitigen
Zugreifen auf zwei Datenwörter; wenn die beiden Datenwörter in
Blöcken von Datenwörtern sind, die in einem Pufferspeicher liegen, in dem
die beiden Datenwörter in zwei Datenblöcken von Datenwörtern liegen
können. Beide Wörter sind während dem gleichen Puffer-Referenzzyklus
verfügbar. Die ersten/zweiten Pufferspeicher speichern jeweils
gerade/ungerade Adresswörter und haben jeweils erste/zweite Etiketten. Diese
Etiketten speichern jeweils gerade/ungerade Adressen. Dies bedeutet, daß
die jeweiligen Bänke in dem Pufferspeicher so gemacht sind, damit sie
jeweiligen Bänken in dem Etikett einer eins-zu-eins Korrespondenz
entsprechen.
-
Das Dokument EP-A-0 176 972 stellt einen Cache-Speicher bereit, der
in der Lage ist Anforderungen von einer Vielzahl von Quellen zu
handhaben. Der Cache-Speicher ist so konstruiert, daß er eine Pipeline hat
und Zeitschlitze bereitgestellt sind, um die Pipeline auf der Basis von
Zeitteilung zu benutzen. Jeder Anforderer oder Quelle ist Zeitschlitzen
der Pipeline zu geordnet. Es gibt eine Eins-zu-Eins-Korrespondenz
zwischen einem ungeraden Pufferspeicher und einem ungeraden Pufferadress-
Register genauso wie zwischen einem geraden Pufferspeicher und einem
geraden Pufferadress-Register.
-
Es ist ein Ziel der vorliegenden Erfindung ein Speicher-Steuersystem
bereit zu stellen, das das Anwachsen von Hardware minimiert und den
Zugriffswettbewerb in einem Pufferspeicher durch eine relativ einfache
Steuerung reduziert.
-
Um das obengenannte Ziel zu erreichen, ist in Übereinstimmung mit der
vorliegenden Erfindung ein Pufferspeicher-Adressbereich in eine Vielzahl
von Bänken unterteilt, die durch einen vorbestimmten Block von
Speichereinheit-Adressen überlappt sind, und ein Pufferspeicher-Datenbereich
ist auch in eine Vielzahl von Bänken aufgeteilt, die durch eine
vorbestimmte Speichereinheit überlappt sind entsprechend der Dinge der
Daten, die von einem Speicher gelesen bzw. geschrieben werden in
Antwort auf ein Anforderung einer Zeitsequenz.
-
Das Ziel der vorliegenden Erfindung wird durch ein Speichersystem
erreicht, wie es in Anspruch 1 definiert ist.
-
Durch solch eine Anordnung, wenn eine Vielzahl von Zugriffsanforderern
auf unterschiedliche Bänke des Pufferspeicher-Adressbereiches zugreifen,
können die Pufferspeicherzugriffe durch die Vielzahl von
Zugriffsanforderern gleichzeitig verarbeitet werden und ein Durchlauf ist erhöht.
-
Fig. 1 zeigt ein Blockdiagramm eines Computersystemes, beidem die
vorliegende Erfindung angewandt wird;
-
Fig. 2 zeigt ein Blockdiagram eines Pufferspeichers des Standes der
Technik,
-
Fig. 3 zeigt ein Blockdiagram eines Pufferspeichers in einem
Ausführungsbeispiel eines Speichersystemes der vorliegenden Erfindung;
-
Fig. 4 zeigt eine detaillierte Konfiguration des Pufferspeichers von Fig.
3.
-
Vor der Erklärung der vorliegenden Erfindung wird eine Konfiguration
eines Pufferspeichersystems des Standes der Technik erklärt. Fig. 1 zeigt
ein Blockdiagramm eines Computersystemes, bei dem die vorliegende
Erfindung angewandt werden soll. Ein Pufferspeicher (BS) 6 ist mit
einem Hauptspeicher (MS) 8 und zwei Prozessoren verbunden, z. B.
einem Anweisungsprozessor (IP) 2 und einem Eingabe-/Ausgabe-Prozessor
(IOP) 4.
-
Fig. 2 zeigt eine Konfiguration eines Adressbereiches und eines
Datenbereiches des Pufferspeichers 6 des Systems des Standes der Technik.
Der Pufferspeicher 6 ist mit zwei Prozessoren 2 und 4 verbunden.
-
In Fig. 2 weist der Pufferspeicher einen Pufferadressbereich 1 und einen
Datenbereich auf, der in vier Bänke 20 bis 23 unterteilt ist. Wo eine
Zugriffsbreite zu jeder der Bänke 20 bis 23 des Datenbereiches 8 Byte
ist, ist jede Bank durch eine erste vorbestimmte Speichereinheit überlabt,
d. h. 8 Byte. Die Prozessoren 2 und 4 fordern unabhängig Zugriffe des
Adressbereiches 1 über eine erste Adressleitung 30 bzw. eine zweite
Adressleitung 31. Da der Adressbereich 1 nur eine Anforderung zu
einem Zeitpunkt verarbeiten kann, ist eine von ihnen reserviert, wenn
zwei Anforderungen gleichzeitig ausgegeben werden. Die Anforderung, die
sich auf den Adressbereich 1 bezieht, greift selektiv auf die Bänke 20
und 23 des Datenbereiches über Datenbereich-Adressleitungen 40 bis 43
zu. Wenn Daten gelesen werden sollen, wenn der Prozessor 2 den
Zugriff anfordert, werden Daten, die von der Bank, auf die zugegriffen
wird, gelesen werden, zu dem Prozessor 2 über Datenleitungen 500, 510,
520 und 530 transferiert, und wenn der Prozessor 4 den Zugriff
anfordert, werden Daten, die von der Bank, auf der zugegriffen werden soll,
gelesen werden, zu dem Prozessor 4 über Datenleitungen 501, 511, 521
und 531 transferiert.
-
In dem System des Standes der Technik von Fig. 2 ist die Anforderung
mit niedrigerer Priorität reserviert, wenn die beiden Prozessoren
gleichzeitig die Zugriffsanforderungen ausgeben.
-
Ein Ausführungsbeispiel des Speichersystems der vorliegenden Erfindung
wird jetzt erklärt. Fig. 3 zeigt ein Blockdiagram eines Pufferspeichers in
dem Ausführungsbeispiel, bei dem die vorliegende Erfindung auf das in
Fig. 1 gezeigte Computersystem angewandt wird.
-
In dem vorliegenden Ausführungsbeispiel ist der Adressbereich 1 von Fig.
2 in eine Vielzahl von Bänken unterteilt, z. B. zwei Bänke und die Bänke
sind durch eine zweite vorbestimmte Speichereinheit (Block) überlappt.
Angenommen, daß ein Block aus 64 Byte besteht, dann werden Adressen
von geradzahligen Blöcken in einer Adressbereichs-Bank 12 registriert,
während Adressen von ungeradzahligen Blöcken in einer Adressbereichs-
Bank 13 registriert werden. Adressleitungen 300, 301 und 310, 311 von
ersten und zweiten Zugriffsanforderern oder Prozessoren 3 und 4 sind
mit den Adressbereichs-Bänken 12 und 13 verbunden. Wenn die Adresse
des ersten Zugriffsanforderers einen geradzahligen Block spezifiziert, wird
auf die Adressbereichs-Bank 12 durch die Adressleitung 300 verwiesen,
und wenn sie auf einen ungeradzahligen Block verweist, wird auf die
Adressbereichs-Bank 13 durch die Adressleitung 301 verwiesen. Für den
zweiten Zugriffsanforderer; wenn die Adresse einen geradzahligen Block
spezifiziert, wird auf die Adressbereichs-Bank 12 durch die Adressleitung
310 verwiesen, und wenn sie einen ungeradzahligen Block spezifiziert,
wird auf die Adressbereichs-Bank 13 durch die Adressleitung 311
verwiesen. Datenadressen, die durch Verweisen auf die Adressbereichs-Bänke
12 und 13 erzeugt werden, werden zu den Datenbereichs-Bänken 20 bis
23 über Datenbereichs-Adressleitungen 400, 410, 420, 430 und die
Datenbereichs-Adressleitungen 401, 411, 421, 431 geliefert. Auf diese Weise
kann auf unterschiedliche Datenbereichs-Bänke 20 bis 23 gleichzeitig
zugegriffen werden. Außerdem kann auf eine der Datenbereichsbänke
selektiv durch die Datenbereichsadresse zugegriffen werden.
-
Die Operationen der Datenbereiche 20 bis 23 und der Datenleitungen
500, 510, 520, 530, 501, 511, 521 und 531 sind die gleichen wie
diejenigen in Fig. 2.
-
In dem System von Fig. 3, wenn die Adressen des ersten
Zugriffsanforderers und des zweiten Zugriffsanforderers unterschiedliche Blöcke des
Adressbereiches spezifizieren, dann kann auf die Adressbereichs-Bänke 12
und 13 gleichzeitig verwiesen werden und eine der Zugriffsanforderungen
muß nicht reserviert werden. Demgemäß wird ein Durchlauf erhöht und
die vorliegende Erfindung ist besser als Fig. 2. Außerdem ist die
Hardware der Adressbereichs-Bänke 12 und 13 im wesentlichen gleich in der
Menge zu der Hardware des Adressbereiches 1 von Fig. 2.
-
Details der Pufferspeicher-Adressbereichs-Bänke 12 und 13 und der
Datenbereichs-Bänke 20, 21, 22 und 23 von Fig. 3 sind in Fig. 4 gezeigt.
-
In Fig. 4 sind die Anforderer-Adressleitungen 300, 310, 301 und 311, die
Adressbereichs-Bänke 12 und 13, die Datenbereichs-Leitungen 400, 410,
420, 430, 401, 411, 421 und 431, die Datenbereichs-Bänke 20 bis 23, die
Datenleitungen 500, 510, 520, 530, 501, 511, 521 und 531 identisch zu
denjenigen von Fig. 3.
-
Die Adressbereichs-Bank 12 weist einen Selektor 120, ein Adressregister
121, Adressmatrizen 1230-1233, Komparatoren 1250-1253, einen Treffer-
Reihen-Detektor 126 und ein Datenbereichs-Adressregister 128 auf. Die
Adressmatrix hat eine Vier-Reihen-Struktur und die Adressmatrizen 1230
bis 1233 entsprechen jeweils den Reihen 0 bis 3. Wenn die Adressen auf
den Adressleitungen 300 und 310 der ersten und zweiten
Zugriffsanforderer geradzahlige Blöcke spezifizieren, wählt der Selektor 120 eine
Adresse mit höherer Priorität aus den Adressen aus und liefert sie zu dem
Adressregister 121. Die Auswahl wird durch eine bekannte
Prioritätbestimmungs-Schaltung (nicht gezeigt) ausgeführt, die die Adressen oder die
Adressleitungen 300 und 310 vergleicht, diejenigen mit höherer Priorität
erfaßt und sie dem Selektor 121 anzeigt. Die Ausgabe der Adressregister
121 ist in eine Adressleitung höherer Ordnung 1220 aufgeteilt, die mit
Reihen 1230 bis 1233 der Adressmatrix und Komparatoren 1250 bis 1253
für Ausgaben 1240-1243 der Reihen verbunden ist, eine Adressleitung
1221 niedriger Ordnung ist mit den Adresseingaben der Reihen 1230 bis
1233 der Adressmatrix verbunden, und eine Datenbereichs-Adressleitung
1222 niedriger Ordnung, ist mit der niedrigen Ordnung der
Datenbereichs-Adressregister 128 verbunden. Die Adressen, die in den
entsprechenden Spalten der Reihen 1230 bis 1233 der Adressmatrix gehalten
werden, werden den Ausgaben 1240 bis 1243 durch die Adressleitung
1221 niedriger Ordnung geliefert. Die Komparatoren 1250 bis 1253
vergleichen die Adressen der Adressleitungen 1220 höherer Ordnung und
die Adressen die von der Adressmatrix 1230 bis 1233 geliefert werden,
und wenn eine Adresse, die durch das Adressregister 121 spezifiziert ist,
in der Adressmatrix registriert ist, wird die Reihe, in der sie registriert
ist, dem Treffer-Reihen-Detektor 126 mitgeteilt, der sie kodiert, um eine
Reihenadresse zu erzeugen, und sie zu der höheren Ordnung des
Datenbereichs-Adressregister 128 über die Reihenadressleitung 127 liefert. Der
Inhalt der Datenadressleitung 1222 niedriger Ordnung wird zu der
niedrigen Ordnung des Datenadressregisters 128 geliefert, so daß die
Datenbereichs-Adresse definiert ist.
-
Eine Konfiguration der Adressbereichs-Bank 13 ist ähnlich der der
Adressbereichs-Bank 12 und weist einen Selektor 130, ein Adressregister
131, Adressmatritzen 1330 bis 1333, Komparatoren 1350 bis 1353, einen
Treffer-Reihen-Detektor 136 und ein Datenbereichs-Adressregister 138
auf. Die Adressbereichs-Bank 13 arbeitet unabhängig von der
Adressbereichs-Bank
12, wenn Adressen auf den Adressleitungen 301 und 311
der ersten und zweiten Zugriffsanforderer ungeradzahlige Blöcke
spezifizieren, die Adressbereichs-Bank 13 überprüft, in welchen der
Adressmatrizen 1330 bis 1333 die Adressen registriert sind. Wenn sie registriert
sind, wird die Datenbereichs-Adresse in dem Datenbereichs-Register 138
etabliert.
-
Die Datenbereichs-Adressen von den Adressbereichs-Bänken 12 und 13
werden zu den Selektoren 200, 210, 220 und 230 der Datenbereichs-
Bänke 20 bis 23 geliefert und dazu verwendet auf die Datenbereichs-
Bänke zuzugreifen. Zum Beispiel in der Datenbereichsbank 20, wenn die
Datenbereichsadressen auf den Datenbereichs-Leitungen 400 und 401 den
Adressbereichs-Bänken 12 und 13 gleichzeitig die Bank 20 spezifizieren,
wählt der Selektor 200 eine Adresse mit höherer Priorität aus und liefert
sie zum Datenbereich-Adressregister 101, um auf die Datenmatrix 202
der Bank 0 zuzugreifen. Der Selektor der Adresse höherer Priorität ist
durch Bereitstellen einer Prioritätsbestimmungs-Schaltung in dem
Datenbereich ausgeführt, ähnlich zu der; die im Adressbereich verwendet wird.
-
Wenn die Datenbereichsadressen von den Adressbereichs-Bänken 12 und
13 unterschiedliche Datenbereichs-Bänke 20 bis 23 spezifizieren, kann auf
Datenmatritzen dieser Bänke gleichzeitig zugegriffen werden.
-
Wenn Daten von dem Datenbereich gelesen werden sollen, z. B. wenn
Daten von der Datenbereichs-Bank 20 gelesen werden sollen, werden die
Daten, die von der Datenmatrix 202 gelesen werden, zu dem
Datenregister 203 geliefert und werden zu dem Zugriffsanforderer gesandt, d. h.
dem Prozessor 2 oder 4 über die Datenleitung 500 oder 501. Die
Operationen anderer Datenbereichs-Bänke 21 bis 23 sind ähnlich zu denen der
Datenbereichs-Bank 20.
-
Auf alle Datenbereichs-Bänke 20 bis 23 kann gleichzeitig durch die
Adressen von den Adressbereichs-Bänken 12 und 13 zugegriffen werden,
um gleichzeitig die 32-Byte-Daten zu lesen.
-
In dem obigen Ausführungsbeispiel sind die Priorität der Adressbereichs-
Bänke 12 und 13 und die Priorität der Datenbereichs-Bänke 20 bis 23
getrennt bestimmt. Alternativ; wenn die Priorität der Adressbereichs-
Bänke 12 und 13 ist, kann die Priorität der Datenbereichs-Bänke 20 bis
23 in Betracht gezogen werden, so daß die Adressbereichs-Bänke 12 und
13 gleichzeitig nur aktiviert werden, wenn auf unterschiedliche 8-Byte von
Datenbereichs-Bänken und unterschiedliche Zugriffsanforderungen
zugegriffen wird.
-
In dem obigen Ausführungsbeispiel gibt es zwei Zugriffsanforderer und
der Adressbereich ist in zwei Bänke aufgeteilt (ein geradzahliger Block
und ein ungeradzahliger Block). Die vorliegende Erfindung ist jedoch
nicht auf solch ein Ausführungsbeispiel beschränkt, sondern m (m ≥ 2)
Anforderer und ein Adressbereich mit n (n ≥ 2) Banken können
verwendet werden.
-
Die Zugriffsanforderer oder Prozessoren sind nicht auf IP's oder IOP's
beschränkt.
-
In Übereinstimmung mit der vorliegenden Erfindung ist der
Adressbereich des Pufferspeichers in eine Vielzahl von Banken aufgeteilt, von
denen jede durch einen Block überlappt ist. Demgemäß, auch wenn die
Blöcke, die durch die Adressen einer Vielzahl von Anforderungen
spezifiziert werden, aber unterschiedlich sind, kann auf die Vielzahl von
Adressbereichen gleichzeitig verwiesen werden und der Wettbewerb von
Zugriffen in dem Bankspeicher-Adressbereich kann reduziert werden,
ohne die Hardware zu erhöhen.