-
TECHNISCHES GEBIET
-
Die vorliegende Erfindung bezieht sich auf eine Cache-Speichersteuerung (Zwischenspeicher-Steuerung) und ein Cache-Steuerverfahren.
-
HINTERGRUND
-
Die Datenmengen in Computerprogrammen, Bildern und so weiter, mit denen Vorrichtungen umgehen, sind über die letzten Jahre hin angewachsen und die Kapazitäten der Festplatten und Hauptspeicher, die in den Vorrichtungen installiert sind, sind ebenfalls angewachsen. Ein Hauptspeicher ist in einen Anweisungsbereich und einen Datenbereich unterteilt. Programmanweisungen und andere Anweisungen werden im Anweisungsbereich gespeichert; Bilddaten und andere Daten, die bei der Verarbeitung durch die Anweisungen verwendet werden, sind im Datenbereich gespeichert. Da der Hauptspeicher bei einer niedrigern Taktgeschwindigkeit als die CPU oder andere Zugriffs-Master arbeitet, wird im Allgemeinen ein Cache-Speicher, auf den mit hoher Geschwindigkeit zugegriffen werden kann, eingesetzt. Durch Zugriff auf den Cache-Speicher kann der Zugriffs-Master Daten schneller lesen und schreiben.
-
Cache-Speicher jedoch sind teuer und weisen eine niedrige Kapazität pro Einheitsfläche auf, so dass es in den meisten Fällen schwierig wäre, den gesamten Hauptspeicher durch einen Cache-Speicher zu ersetzen. Das daher angewendete Verfahren ist es, ein Teil der Hauptspeicherdaten in den Cache-Speicher zu transferieren. Transfers aus dem Hauptspeicher zum Cache-Speicher werden in Einheiten von Cache-Linien ausgeführt, welche die Einheiten sind, in denen der Cache-Speicher verwaltet wird. Der Zugriffs-Master kann Daten bei hoher Geschwindigkeit in Fällen lesen und schreiben, in denen die notwendigen Daten im Cache-Speicher gespeichert sind und zuverlässig zugänglich sind. Solche Fälle werden Code-Treffer (Code-Hits) genannt.
-
Umgekehrt wird ein Fall, in welchem der Zugriffs-Master Zugang verlangt, aber die Daten an der geforderten Adresse nicht im Cache-Speicher gespeichert sind, ein Cache-Fehltreffer (Code-Miss) genannt. In solchen Fällen müssen die Daten, auf die Zugriff verlangt wird, aus dem Hauptspeicher in den Cache-Speicher übertragen werden. Dies resultiert in niedriger Geschwindigkeit, aufgrund der Programmwartezeit, und in vergrößertem Stromverbrauch. Es würde daher wünschenswert sein, die Wahrscheinlichkeit zu vergrößern, dass die durch den Zugriffs-Master angeforderten Daten zuverlässig zugänglich sind (das Cache-Trefferverhältnis zu verstärken) durch Voreinlesen der Daten aus dem Hauptspeicher und Übertragen der Daten an den Cache-Speicher.
-
Als Vor-Leseverfahren beschreibt Patentreferenz 1 einen Informations-Prozessor, der Anweisungen aus dem Zugriffs-Master in einem Puffer speichert, Daten auf Basis einer vergangenen Unterbrechungsanweisungs-Historie vor-einliest und die Daten im Cache-Speicher speichert. Als Ergebnis, wenn der Zugriffs-Master eine Unterbrechungsanweisung, die er zuvor ausgeführt hat, wieder ausführt, tritt ein Cache-Treffer auf, kann die Verzweigung zur Unterbrechungsroutine rasch gemacht werden, und kann auch der Rücksprung aus der Unterbrechungsroutine oder Unterroutine rasch ausgeführt werden.
-
REFERENZEN DES STANDS DER TECHNIK
-
PATENTREFERENZ
-
- Patentreferenz 1: Japanisches Patent Nr. 4739380
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
DURCH DIE ERFINDUNG ZU LÖSENDES PROBLEM
-
Die einzigen Daten, die durch den in Patentreferenz 1 beschriebenen Informations-Prozessor vor-eingelesen werden können, sind jedoch Unterbrechungsanweisungen mit einer Historie vorheriger Ausführung. Daher kann der Zugriffs-Master Unterbrechungsanweisungen, die noch nicht ausgeführt worden sind, und Daten an Verzweigungszielen, die sich von einer vergangenen Ausführung unterscheiden, nicht vorab lesen. Cache-Fehltreffer kommen daher vor, was Probleme verursacht.
-
Eine Aufgabe der vorliegenden Erfindung ist es, Cache-Treffer zu ermöglichen, die zuverlässig erhalten werden, selbst für Anweisungen und Daten, auf die der Zugriffs-Master nicht zugegriffen hat.
-
MITTEL ZUM LÖSEN DES PROBLEMS
-
Eine Cache-Speicher-Steuerung gemäß einem Aspekt der Erfindung ist mit einem Hauptspeicher, der einen Anweisungsbereich, der ein erstes Programm speichert, und einen Datenbereich, der durch eine in dem ersten Programm enthaltene spezifische Anweisung verwendete Daten speichert, aufweist, und mit einem Zugriffs-Master zum Ausführen von in dem ersten Programm enthaltenen Anweisungen verbunden. Die Cache-Speichersteuerung beinhaltet einen Cache-Speicher zum Speichern eines Teils der Daten im Hauptspeicher und eine Datenverarbeitungseinheit, welche vor der Ausführung der spezifischen Anweisung durch den Zugriffs-Master und in Übereinstimmung mit Übertragungsplanungs-Information, welche die Startadresse der spezifischen Anweisung enthält, ein Zugriffsintervall auf Basis einer Anzahl von Anweisungsschritten berechnet, die von einer Adresse der Anweisung, die aktuell durch den Zugriffs-Master ausgeführt wird, bis zur Startadresse der spezifischen Anweisung verbleiben, und Daten, welche durch die spezifische Anweisung verwendet sind, aus dem Hauptspeicher zum Cache-Speicher in diesem Zugriffs-Intervall überträgt.
-
Ein Cache-Speicher-Steuerverfahren gemäß einem anderen Aspekt der vorliegenden Erfindung verwendet einen Cache-Speicher, um einem Zugriffs-Master, der Anweisungen ausführt, die in einem ersten Programm enthalten sind, Daten, die durch eine spezifische Anweisung im ersten Programm verwendet werden, aus dem Hauptspeicher bereitzustellen, der einen Anweisungsbereich zum Speichern des ersten Programms und einen Datenbereich zum Speichern der durch die spezifische Anweisung verwendeten Daten aufweist. Das Cache-Speicher-Steuerverfahren beinhaltet: einen Übertragungsschritt zum, vor Ausführung der spezifischen Anweisung durch den Zugriffs-Master, und gemäß einer Übertragungsplanungs-Information, die eine Startadresse der spezifischen Anweisung enthält, Berechnen eines Zugriffs-Intervalls auf Basis einer Anzahl von Anweisungsschritten, die ab einer Adresse einer derzeit vom Zugriffs-Master ausgeführt werdenden Anweisung bis zur Startadresse der spezifischen Anweisung verbleiben, und Übertragen der durch die spezifische Anweisung verwendeten Daten aus dem Hauptspeicher zum Cache-Speicher bei diesem Zugriffs-Intervall und einen Bereitstellungsschritt des Bereitstellens der durch die spezifische Anweisung verwendeten Daten aus dem Cache-Speicher dem Zugriffs-Master, wenn der Zugriffs-Master die spezifische Anweisung ausführt.
-
EFFEKT DER ERFINDUNG
-
Diese Aspekte der vorliegenden Erfindung ermöglichen, dass Cache-Treffer zuverlässig erhalten werden, selbst für Anweisungen und Daten, auf die der Zugriffs-Master nicht zugegriffen hat.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist ein Blockdiagramm, welches schematisch die Konfiguration einer Cache-Speichersteuerung gemäß einer ersten Ausführungsform zeigt.
-
2 ist ein schematisches Diagramm, das eine Übertragungsplanungs(Scheduling)-Funktion zum Betreiben der Cache-Speichersteuerung gemäß der ersten Ausführungsform zeigt.
-
3 ist ein schematisches Diagramm, das eine beispielhafte Anwendung der Übertragungsplan-Funktion auf ein zweites Programm in der ersten Ausführungsform zeigt.
-
4 ist ein Flussdiagramm, das den Prozess des Kompilierens des zweiten Programms in das erste Programm in der ersten Ausführungsform zeigt.
-
5 ist ein schematisches Diagramm, das die Relation zwischen Kompilations-Eingabe und -Ausgabe in der ersten Ausführungsform zeigt.
-
6 ist ein schematisches Diagramm, das ein beispielhaftes erstes Programm zeigt, das erzeugt wird, wenn der Compiler das zweite Programm der ersten Ausführungsform kompiliert.
-
7 ist ein schematisches Diagramm, das ein Beispiel der Disposition des ersten Programms im Hauptspeicher der ersten Ausführungsform zeigt.
-
8 ist ein Flussdiagramm, das den Prozess zeigt, der durch die Prozess-Umschalteinheit in der die Datenverarbeitungseinheit der ersten Ausführungsform durchgeführt wird.
-
9 ist ein schematisches Diagramm, das ein beispielhaftes Timing-Diagramm des durch die Prozess-Umschalteinheit der ersten Ausführungsform durchgeführten Prozesses zeigt.
-
10 ist ein Flussdiagramm, das den durch die Anfrage-Verarbeitungseinheit in der Datenverarbeitungseinheit der ersten Ausführungsform durchgeführten Prozess illustriert.
-
11 ist ein Flussdiagramm, das den Prozess illustriert, der durch die Plan-Verarbeitungseinheit in der Datenverarbeitungseinheit der ersten Ausführungsform durchgeführt wird.
-
12(a) bis 12(c) sind schematische Diagramme, die den Fortschritt eines Datentransfers durch die Plan-Verarbeitungseinheit in der ersten Ausführungsform illustrieren.
-
13 ist ein schematisches Diagramm, das ein beispielhaftes Timing-Diagramm des durch die Plan-Verarbeitungseinheit der ersten Ausführungsform durchgeführten Prozesses zeigt.
-
14 ist ein Flussdiagramm, das den durch die Freigabe-Verarbeitungseinheit in der Datenverarbeitungseinheit der ersten Ausführungsform durchgeführten Prozess illustriert.
-
15 ist ein schematisches Diagramm, das eine beispielhafte Variation des zweiten Programms der ersten Ausführungsform zeigt.
-
16 ist ein Blockdiagramm, welches schematisch die Konfiguration einer Cache-Speichersteuerung gemäß einer zweiten Ausführungsform zeigt.
-
17 ist eine Tabelle, welche durch die Plan-Verarbeitungseinheit der zweiten Ausführungsform gespeichert wird.
-
18 ist ein schematisches Diagramm, das beispielhafte Zugriffs-Verwaltungs-Information der zweiten Ausführungsform zeigt.
-
19 ist ein Flussdiagramm, das den durch die Prioritäts-Bestimmungseinheit in der Datenverarbeitungseinheit der zweiten Ausführungsform durchgeführten Prozess illustriert.
-
20 ist ein Diagramm, das ein erstes Beispiel von zwei Elementen der Transfer-Planungs-Information zeigt, die im ersten Programm beinhaltet sind, und für welche die Priorität durch die Prioritäts-Bestimmungseinheit in der Datenverarbeitungseinheit der zweiten Ausführungsform bestimmt wird.
-
21 ist ein Diagramm, das ein zweites Beispiel von zwei Elementen von Transfer-Planungs-Information zeigt, die im ersten Programm enthalten sind, und für welche die Priorität durch die Prioritäts-Bestimmungseinheit in der Datenverarbeitungseinheit der zweiten Ausführungsform bestimmt wird.
-
22 ist ein Diagramm, das ein drittes Beispiel von zwei Elementen von Transfer-Planungs-Information zeigt, die im ersten Programm enthalten sind, und für welche Priorität durch die Prioritäts-Bestimmungseinheit in der Datenverarbeitungseinheit der zweiten Ausführungsform bestimmt wird.
-
23 ist ein Diagramm, das ein viertes Beispiel von zwei Elementen von Transfer-Planungs-Information zeigt, welche durch die Prioritäts-Bestimmungseinheit in der Datenverarbeitungseinheit bestimmt werden, enthalten im ersten Programm der zweiten Ausführungsform.
-
24 ist ein Diagramm, das ein fünftes Beispiel von zwei Elementen von Transfer-Planungs-Information zeigt, die im ersten Programm enthalten sind, und für welche die Priorität durch die Prioritäts-Bestimmungseinheit in der Datenverarbeitungseinheit der zweiten Ausführungsform bestimmt wird.
-
25 ist ein schematisches Diagramm, das ein beispielhaftes Timing-Diagramm des durch die Prioritäts-Bestimmungseinheit in der Datenverarbeitungseinheit der zweiten Ausführungsform durchgeführten Prozesses zeigt.
-
26 ist ein Flussdiagramm, das den durch die Plan-Verarbeitungseinheit in der Datenverarbeitungseinheit der zweiten Ausführungsform durchgeführten Prozess illustriert.
-
27 ist ein schematisches Diagramm, das ein beispielhaftes Timing-Diagramm des durch die Prioritäts-Bestimmungseinheit in der Datenverarbeitungseinheit der zweiten Ausführungsform durchgeführten Prozesses zeigt.
-
28 ist ein Blockdiagramm, welches schematisch eine beispielhafte Variation der Cache-Speichersteuerung gemäß der zweiten Ausführungsform zeigt.
-
29 ist ein schematisches Diagramm, welches eine Variation der Transfer-Planungs-Verwaltungsinformation in der zweiten Ausführungsform zeigt.
-
30 zeigt eine beispielhafte aktuelle Adress-Verwaltungsinformation in der zweiten Ausführungsform.
-
MODUS ZUM AUSFÜHREN DER ERFINDUNG
-
Erste Ausführungsform
-
1 ist ein Blockdiagramm, welches schematisch die Konfiguration der Cache-Speichersteuerung 100 gemäß der ersten Ausführungsform zeigt. Die Cache-Speichersteuerung 100 beinhaltet einen Cache-Speicher 110, eine Speicher-Verwaltungseinheit 120, eine Treffer-Detektionseinheit 130 und eine Datenverarbeitungseinheit 140.
-
Die Verbindungsbeziehungen zwischen einem Zugriffs-Master 1, der Cache-Speichersteuerung 100 und einem Hauptspeicher 10 sind in einer vereinfachten Form in 1 gezeigt. auf Basis eines Anweisungsbefehls C1 aus dem Zugriffs-Master 1 greift die Cache-Speichersteuerung 100 auf in dem später beschriebenen Cache-Speicher 110, oder dem Hauptspeicher 10 gespeicherte Daten zu. Hier ist der Anweisungsbefehl C1 eine Anfrage aus dem Zugriffs-Master 1 zum Zugriff auf eine Adresse im Hauptspeicher 10. Falls beispielsweise der Anweisungsbefehl C1 eine Leseanfrage ist, werden der Anweisungsbefehl C1 und eine Anweisungsadresse A1, welche die Adresse im Hauptspeicher 10 angibt, aus dem Zugriffs-Master 1 in die Cache-Speichersteuerung 100 eingegeben. Die Cache-Speichersteuerung 100 liest dann Lesedaten D1 entsprechend dem Anweisungsbefehl C1 und der Anweisungsadresse A1 an den Zugriffs-Master 1 aus.
-
1 zeigt eine mit einem einzelnen Zugriffs-Master 1 konfigurierte Cache-Speichersteuerung 100, aber eine Mehrzahl von Zugriffs-Mastern 1 können sich die Cache-Speichersteuerung 100 teilen. Der Zugriffs-Master 1 ist als eine Steuereinheit, wie etwa beispielsweise eine CPU, konfiguriert, welche Anweisungen gemäß Prozessen in einem Computerprogramm (erstes Programm), das im Hauptspeicher 10 gespeichert ist, ausführt.
-
Der Hauptspeicher 10 beinhaltet einen Anweisungsbereich und einen Datenbereich. Der Anweisungsbereich speichert durch den Zugriffs-Master 1 auszuführende Anweisungen, der Datenbereich speichert bei der Verarbeitung durch den Zugriffs-Master 1 verwendete Daten. In dieser Ausführungsform speichert beispielsweise der Anweisungsbereich das erste Programm und speichert der Datenbereich durch die in dem ersten Programm enthaltenen Anweisungen verwendete Daten.
-
Der Cache-Speicher 110 speichert einen Teil der im Hauptspeicher 10 gespeicherten Daten. Der Cache-Speicher 110 ist beispielsweise mit einem Halbleiterspeicher, wie etwa SRAM (Static Random Access Memory, statischer wahlfreier Zugriffsspeicher) konfiguriert, in dem auf Daten rascher zugegriffen werden kann als auf Daten im Hauptspeicher 10. Der Cache-Speicher 110 ist in beispielsweise 64-Byte-Einheiten unterteilt, die Cache-Linien genannt werden. Eine Cache-Linie speichert 64 aufeinander folgende Daten-Bytes im Hauptspeicher 10.
-
Die Speicher-Verwaltungseinheit 120 verwaltet den Cache-Speicher 110. Die Speicher-Verwaltungseinheit 120 beinhaltet beispielsweise einen Tag(Markierungs)-Speicher 121 als Verwaltungsinformations-Speichereinheit und verwendet den Tag-Speicher 121, um den Cache-Speicher 110 zu verwalten.
-
Als Verwaltungsinformation speichert der Tag-Speicher 121 die Adress-Information Ta, ein Statusflag Fs und ein Zugriffs-Flag Fa; die Adress-Information Ta ist die Adresse der in jeder Cache-Linie des Cache-Speichers 110 im Hauptspeicher 10 gespeicherten Daten; das Statusflag Fs ist eine Status-Identifikations-Information, die angibt, ob Daten in jeder Cache-Linie vorliegen oder nicht; das Zugriffs-Flag Fa ist eine Zugriffs-Identifikations-Information, die angibt, ob der Zugriffs-Master 1 auf jede Cache-Linie zugegriffen hat oder nicht.
-
Das Statusflag Fs gibt für jede Cache-Linie ”Gültig” an, falls Daten in der Cache-Linie im Cache-Speicher 110 vorhanden sind, und ”Ungültig” falls keine Daten vorhanden sind.
-
Das Zugriffs-Flag Fa gibt für jede Cache-Linie ”Gültig” an, falls der Zugriffs-Master 1 auf die Cache-Linie zugegriffen hat, und ”Ungültig”, falls der Zugriffs-Master 1 nicht auf die Cache-Linie zugegriffen hat. Auf Basis beispielsweise des LRU-(Least Recently Used, am wenigstens jüngstens verwendet)-Verfahrens, welches einen Zugriff während einer vorgegebenen Aufenthaltszeit (residence time) prüft, setzt die Speicher-Verwaltungseinheit 120 das Zugriffs-Flag Fa zu vorgegebenem Timing zurück: beispielsweise wenn ein (nicht gezeigter) Timer ein vorgegebenes Verstreichen von Zeit gemessen hat. Diese ermöglicht der Speicher-Verwaltungseinheit 120, festzustellen, auf welche Cache-Linien nicht jüngst zugegriffen worden ist.
-
Die Treffer-Detektionseinheit 130 bestimmt, ob die Daten an der Adresse im Hauptspeicher 10, auf welche Zugriff verlangt wird, im Cache-Speicher 110 gespeichert sind. Die Treffer-Detektionseinheit 130 stellt dann der Datenverarbeitungseinheit 140 ein Treffer-Detektionsergebnis bereit, das einen Cache-Treffer angibt, falls die Daten im Cache-Speicher 110 gespeichert sind, oder einen Cache-Fehltreffer, falls die Daten nicht im Cache-Speicher 110 gespeichert sind. Die Treffer-Detektionseinheit 130 bestimmt, ob die Daten im Cache-Speicher 110 gespeichert sind oder nicht, durch Bezugnahme auf die Adress-Information Ta in den Cache-Linien, für welche das Statusflag Fs im Tag-Speicher 121 ”Gültig” angibt. Die Existenz in der Speicher-Verwaltungseinheit 120 von Adress-Information Ta, die zur Adresse passt, von welcher der Zugriff verlangt worden ist, führt zu einem Cache-Treffer; die Nichtexistenz einer solchen Adress-Information Ta führt zu einem Cache-Fehltreffer.
-
Die Datenverarbeitungseinheit 140 transferiert im Hauptspeicher 10 gespeicherte Daten an den Cache-Speicher 110. In dieser Ausführungsform transferiert gemäß der Transfer-Plan-Information einschließlich der Adresse von durch eine in einem ersten Programm enthaltende spezifische Anweisung verwendete Daten, bevor der Zugriffs-Master 1 die spezifische Anweisung durchführt, die Datenverarbeitungseinheit 140 die durch die spezifische Anweisung verwendeten Daten aus dem Hauptspeicher 10 zum Cache-Speicher 110. Die Datenverarbeitungseinheit 140 liest auch Daten aus dem Cache-Speicher 110 oder dem Hauptspeicher 10 in Reaktion auf Anfragen vom Zugriffs-Master 1. Weiterhin schreibt die Datenverarbeitungseinheit 140 Daten in den Cache-Speicher 110 oder den Hauptspeicher 10, in Reaktion auf Anfragen aus dem Zugriffs-Master 1. Die Datenverarbeitungseinheit 140 beinhaltet eine Prozess-Umschalteinheit 141, eine Anfrage-Verarbeitungseinheit 142, eine Plan-Verarbeitungseinheit 143, eine Aufhebe-Verarbeitungseinheit 144, eine Cache-Speicherzugriffs-Arbitrierungseinheit 145 und eine Hauptspeicherzugriffs-Arbitrierungseinheit 146.
-
Die Prozess-Umschalteinheit 141 analysiert einen Anweisungsbefehl C1 aus dem Zugriffs-Master 1 und schaltet das Datenausgabeziel zwischen der Anfrage-Verarbeitungseinheit 142 und der Plan-Verarbeitungseinheit 143 um. Falls beispielsweise der Anweisungsbefehl C1 Lesen oder Schreiben anzeigt, gibt die Prozess-Umschalteinheit 141 den Anweisungsbefehl C1 als einen Anfragebefehl C2 und die Anweisungsadresse A1 als Anfrageadresse A2 an die Anfrage-Verarbeitungseinheit 142. Falls der Anweisungsbefehl C1 Lesen angibt, speichert die Prozess-Umschalteinheit 141 auch die Anweisungsadresse A1 als aktuelle Adresse A3 in einem Speicher (Im-Fortgang-Speichereinheit) 141a. Hier gibt die aktuelle Adresse A3 die Adresse an, die aktuell durch den Zugriffs-Master 1 in Ausführung ist. Umgekehrt, falls der Anweisungsbefehl C1 Übertragungs-Planungs-Information anzeigt, welche die Planung eines Datentransfers repräsentiert, gibt die Prozess-Umschalteinheit 141 den Anweisungsbefehl C1 als einen Transfer-Planungsbefehl C3 an die Plan-Verarbeitungseinheit 143, zusammen mit der aktuellen Adresse A3, die im Speicher 141a gespeichert ist.
-
Die Anfrage-Verarbeitungseinheit 142 liest oder schreibt Daten im Cache-Speicher 110 oder Hauptspeicher 10 entsprechend dem Anfragebefehl C2 und der Anfrageadresse A2, die aus der Prozess-Umschalteinheit 141 eingegeben sind, und dem Treffer-Detektionsergebnis R1, das aus der Treffer-Detektionseinheit 130 eingegeben wird. Wenn die Anfrage-Verarbeitungseinheit 142 eine Anfrageadresse A2 aus der Prozess-Umschalteinheit 141 empfängt, stellt sie beispielsweise die Anfrageadresse A2 der Treffer-Detektionseinheit 130 bereit. Daraufhin ermittelt dann die Anfrage-Verarbeitungseinheit 142 ein Treffer-Detektionsergebnis R1 für die Anfrageadresse A2 aus der Treffer-Detektionseinheit 130. Falls der Anfragebefehl C2, der aus der Prozess-Umschalteinheit 141 eingegeben wird, ein Lesen angibt, gibt die Anfrage-Verarbeitungseinheit 142 die Lesedaten D1, die aus dem Cache-Speicher 110 oder Hauptspeicher 10 ausgelesen sind, an den Zugriffs-Master 1 aus.
-
Übertragungen von Informationen zwischen der Anfrage-Verarbeitungseinheit 142 und der Cache-Speicherzugriffs-Arbitrierungseinheit 145 werden über ein Signal S1 ausgeführt. Übertragungen von Information zwischen der Anfrage-Verarbeitungseinheit 142 und der Hauptspeicherzugriffs-Arbitrierungseinheit 146 werden über ein Signal S4 ausgeführt.
-
Die Plan-Verarbeitungseinheit 143 überträgt Daten aus dem Hauptspeicher 10 an den Cache-Speicher 110 anhand der aktuellen Adresse A3 und dem aus der Prozess-Umschalteinheit 141 eingegebenen Übertragungs-Planungsbefehl C3 und dem aus der Treffer-Detektionseinheit 130 eingegebenen Treffer-Detektionsergebnis R2. Beispielsweise identifiziert beim Empfang eines Übertragungs-Planungsbefehls C3 aus der Prozess-Umschalteinheit 141 die Plan-Verarbeitungseinheit 143 die Adresse (Übertragungsplan-Adresse), an welcher die zu übertragenden Daten im Hauptspeicher 10 gespeichert sind und stellt die identifizierte Adresse A4 der Treffer-Detektionseinheit 130 bereit. In Reaktion ermittelt dann die Plan-Verarbeitungseinheit 143 das Treffer-Detektionsergebnis R2 für die Adresse A4 aus der Treffer-Detektionseinheit 130. Falls das Treffer-Detektionsergebnis R2 ein Cache-Fehltreffer ist, überträgt die Plan-Verarbeitungseinheit 143 die Daten an diese Adresse aus dem Hauptspeicher 10 an den Cache-Speicher 110. Wenn die Plan-Verarbeitungseinheit 143 ein Übertragung gemäß dem Übertragungs-Planungsbefehl C3 startet, stellt sie der Aufhebe-Verarbeitungseinheit 144 die geplante Bereichsinformation I1, welche die Speicherziel-Cache-Linie angibt, bereit.
-
Übertragungen von Information zwischen der Plan-Verarbeitungseinheit 143 und der Cache-Speicherzugriffs-Arbitrierungseinheit 145 werden über ein Signal S2 ausgeführt. Übertragungen von Information zwischen der Plan-Verarbeitungseinheit 143 und der Hauptspeicherzugriffs-Arbitrierungseinheit 146 werden über ein Signal S5 ausgeführt.
-
Die Aufhebe-Verarbeitungseinheit 144 wählt eine Cache-Linie zur Freigabe aus, wenn sie durch die Speicherverwaltungeinheit 120 feststellt, dass dem Cache-Speicher 110 der freie Platz ausgeht. Die Aufhebe-Verarbeitungseinheit 144 überwacht beispielsweise die Status-Flags Fs im Tag-Speicher 121 der Speicher-Verwaltungseinheit 120 und bestimmt, dass dem Cache-Speicher 110 der freie Platz ausgeht, wenn die Anzahl von Statusflags Fs, die ”Ungültig” angeben, beispielsweise gleich oder kleiner einer vorbestimmten Anzahl (Schwellenwert T) sind. An diesem Punkt wählt die Aufhebe-Verarbeitungseinheit 144 eine Cache-Linie aus, die freizugeben ist, auf Basis der Zugriffs-Flags Fa in dem Tag-Speicher 121 und der geplanten Bereichsinformation I1 aus der Plan-Verarbeitungseinheit 143. Wenn die Aufhebe-Verarbeitungseinheit 144 eine Cache-Linie zur Freigabe auswählt, stellt sie der Cache-Speicherzugriffs-Arbitrierungseinheit 145 Freigabe-Information bereit, die angibt, dass die Daten in der ausgewählten Cache-Linie zurück in den Hauptspeicher 10 zu schreiben sind.
-
Beim Auswählen einer Cache-Linie zur Freigabe bezieht sich die Aufhebe-Verarbeitungseinheit 144 auf die Plan-Bereichsinformation I1 aus der Plan-Verarbeitungseinheit 143. Beispielsweise auf Basis der Plan-Bereichsinformation I1 überwacht die Aufhebe-Verarbeitungseinheit 144 die Zugriffs-Flags Fa der Cache-Linie, in der Daten durch die Plan-Verarbeitungseinheit 143 gespeichert worden sind, und zeichnet auf, ob ihre Zugriffs-Flags Fa durch den Zugriffs-Master 1 in ”Gültig” gesetzt worden sind, oder nicht, der auf die in den Cache-Linien gespeicherten Daten ein- oder mehrmals zugreift, wobei diese Information als Planbereichs-Zugriffs-Flags Fra in einem Speicher (Zugriffsverlaufs-Informations-Speicherbereich) 144a aufgezeichnet wird. Falls der Zugriffs-Master 1 nicht auf die Daten in einer Cache-Linie selbst einmal zugegriffen hat, gibt die Aufhebe-Verarbeitungseinheit 144 diese Cache-Linie nicht frei. Wenn eine Cache-Linie freigegeben wird, setzt die Aufhebe-Verarbeitungseinheit 144 ihr Planbereichs-Zugriffs-Flag Fra zurück.
-
Übertragungen von Information zwischen der Aufhebe-Verarbeitungseinheit 144 und der Cache-Speicherzugriffs-Arbitrierungseinheit 145 werden über ein Signal S3 ausgeführt. Übertragungen von Information zwischen der Aufhebe-Verarbeitungseinheit 144 und der Hauptspeicherzugriffs-Arbitrierungseinheit 146 werden über ein Signal S6 ausgeführt.
-
Die Cache-Speicherzugriffs-Arbitrierungseinheit 145 arbitriert die Zugriffsreihenfolge auf den Cache-Speicher 110 gemäß den eingegebenen Signalen S1 bis S3, basierend auf einer vorbestimmten Prioritäts-Reihenfolge, aus der Anfrage-Verarbeitungseinheit 142, der Plan-Verarbeitungseinheit 143 und der Aufhebe-Verarbeitungseinheit 144. Die Cache-Speicherzugriffs-Arbitrierungseinheit 145 stellt dann Signale S1 bis S3 dem Cache-Speicher 110 in der arbitrierten Reihenfolge bereit. Die Prioritäts-Reihenfolge kann beispielsweise Anfrage-Verarbeitungseinheit 142, Aufhebe-Verarbeitungseinheit 144 und Plan-Verarbeitungseinheit 143 in der Reihenfolge von Hoch nach Niedrig sein.
-
Entsprechend, falls Signale an der Aufhebe-Verarbeitungseinheit 144 simultan aus zwei oder mehr von der Anfrage-Verarbeitungseinheit 142, der Plan-Verarbeitungseinheit 143 und der Aufhebe-Verarbeitungseinheit 144 eingegeben werden, wird der Zugriff auf den Cache-Speicher 110, basierend auf Signalen mit niedrigere Priorität, angehalten, so dass ein Zugriff auf den Cache-Speicher 110, basierend auf einem höheren Prioritätssignal, ausgeführt werden kann. Aus den simultan eingegebenen Signalen startet der Zugriff basierend auf einem niedrigeren Prioritätssignal, wenn der Zugriff basierend auf einem höheren Prioritätssignal endet.
-
Die Hauptspeicherzugriffs-Arbitrierungseinheit 146 arbitriert die Reihenfolge des Zugriffs auf den Hauptspeicher 10 anhand der Eingangssignale S4 bis S6, die basierend auf der vorbestimmten Prioritäts-Reihenfolge aus der Anfrage-Verarbeitungseinheit 142, Plan-Verarbeitungseinheit 143 und Aufhebe-Verarbeitungseinheit 144 eingegeben sind. Die Prioritäts-Reihenfolge kann beispielsweise Anfrage-Verarbeitungseinheit 142, Aufhebe-Verarbeitungseinheit 144, Plan-Verarbeitungseinheit 143 in der Reihenfolge von Hoch zu Niedrig sein.
-
Entsprechend, falls Signale simultan aus zwei oder mehr der Anfrage-Verarbeitungseinheit 142, der Plan-Verarbeitungseinheit 143, und Aufhebe-Verarbeitungseinheit 144 an der Hauptspeicherzugriffs-Arbitrierungseinheit 146 eingegeben werden, wird Zugriff auf den Hauptspeicher 10, basierend auf Signalen mit niedrigerer Priorität, angehalten, so dass ein Zugriff auf den Hauptspeicher 10, basierend auf einem höheren Prioritätssignal ausgegeben werden kann. Aus den simultan eingegebenen Signalen startet Zugriff, basierend auf einem Signal niedrigerer Priorität, wenn der Zugriff basierend auf Signalen höherer Priorität endet.
-
In diesem Prozess, wenn Zugriff auf Daten zur selben Adresse simultan aus der Anfrage-Verarbeitungseinheit 142 und der Plan-Verarbeitungseinheit 143 verlangt wird, und die Daten an dieser Adresse nicht im Cache-Speicher 110 gespeichert sind, behandelt die Hauptspeicherzugriffs-Arbitrierungseinheit 146 nur die Zugriffsanfrage aus der Anfrage-Verarbeitungseinheit 142 als gültig. Die Hauptspeicherzugriffs-Arbitrierungseinheit 146 gibt an die Plan-Verarbeitungseinheit 143 ein Plan-Übertragungsabschluss-Flag Ftf aus, welches angibt, dass die Übertragung der Daten an diese Adresse abgeschlossen worden ist.
-
2 ist eine schematische Zeichnung, die eine Übertragungs-Planungsfunktion 160 zum Betreiben der Cache-Speichersteuerung 100 zeigt. Die Übertragungs-Planfunktion 160 ist ein Code, der eine Übertragungs-Planungsanweisung zur Übertragung spezifischer Daten aus dem Hauptspeicher 10 an den Cache-Speicher 110 repräsentiert. Wie in 2 gezeigt, definiert die Übertragungs-Planfunktion 160 die Startadresse MM_ADDR eines kontinuierlichen Bereichs, auf dem durch den Zugriffs-Master 1 Bezug genommen wird, nachdem diese Funktion ausgeführt wird, die Größe H*V des kontinuierlichen Bereichs und die Startadresse PROC einer Gruppe von Anweisungen, welche eine Funktion bilden, die sich auf den kontinuierlichen Bereich definiert. Der kontinuierliche Bereich ist ein Teil des Anweisungsbereichs oder Datenbereichs im Hauptspeicher 10 mit aufeinander folgenden Adressen. In dieser Ausführungsform konstituieren die Startadresse MM_ADDR, Größe H*V und Startadresse PROC Übertragungs-Planungs-Informationen bilden.
-
Das erste Programm wird durch den Zugriffs-Master 1 ausgeführt, so dass es in einem Format codiert ist, das der Zugriffs-Master 1 ausführen kann: beispielsweise in Assembler-Sprache oder dergleichen. Umgekehrt ist die in 2 gezeigte Übertragungs-Planungsfunktion 160 in einem zweiten Programm enthalten, das in einem Format codiert ist, welches der Zugriffs-Master 1 nicht ausführen kann: beispielsweise in C-Sprache oder einer anderen Hochsprache. Das erste Programm wird durch Kompilation des zweiten Programms erzeugt.
-
3 ist eine schematische Zeichnung, die eine beispielhafte Anwendung der in 2 gezeigten Übertragungs-Planungsfunktion 160 auf das zweite Programm zeigt. Das in 3 gezeigte zweite Programm 170 beinhaltet eine Funktion 163, die aus Anweisungen besteht, durch welche sich der Zugriffs-Master 1 auf Daten bezieht, die in einem kontinuierlichen Bereich im Hauptspeicher 10 angeordnet sind, und eine Funktion 170, die aus Anweisungen aufgebaut ist, durch welche sich der Zugriffs-Master 1 auf Daten bezieht, die in einem anderen solchen kontinuierlichen Bereich angeordnet sind. Im Programm 170 sind eine Übertragungs-Planungsfunktion 171 und eine Übertragungs-Planungsfunktion 172 prozessiert, bevor die Funktionen 173 und 174 ausgeführt werden.
-
Das zweite Programm wird so codiert, dass die Übertragungs-Planungsfunktion 160 prozessiert wird, bevor der Zugriffs-Master 1 den Prozess ausführt, der Bezug auf die Daten im kontinuierlichen Bereich nimmt; daher ist es möglich, in das erste Programm in einem Format, das zur Ausführung durch den Zugriffs-Master 1 in der Lage ist, einen Befehl zum Übertragen der Daten im kontinuierlichen Bereich, für welchen der gesicherte Cache-Treffer gewünscht ist, aus dem Hauptspeicher 10 zum Cache-Speicher 110, einzufügen.
-
4 ist ein Flussdiagramm, das den Prozess des Kompilierens (Umwandelns) des in 3 gezeigten zweiten Programms 170 in das erste Programm zeigt. Der in 4 gezeigte Ablauf wird durch Eingabe des zweiten Programms am Compiler Cgc wie in 4 gezeigt ausgeführt. Der Compiler Cgc ist eine Programm-Umwandlungseinheit, die mit einer Funktion zum Kompilieren der in 2 gezeigten Übertragungs-Planungsfunktion 160 gemäß üblicherweise verwendeten Spezifikationen ausgestattet ist. Das zweite Programm 170 wird als in einer nicht in den Zeichnungen gezeigten Speichereinheit zu speichern angenommen.
-
Wenn die Kompilation startet, entscheidet der Compiler Cgc, ob der Quellcode, der im zweiten Programm kompiliert wird, eine Übertragungs-Planungsfunktion 160 ist oder nicht, wie in 2 gezeigt (Schritt S10). Falls der Quellcode eine Übertragungs-Planungsfunktion 160 ist (Ja in Schritt S10), schreitet der Ablauf zu Schritt S11 fort. Falls der Quellcode keine Übertragungs-Planungsfunktion 160 ist (Nein in Schritt S10), schreitet der Prozess zu Schritt S12 fort.
-
Im Schritt S11 kompiliert der Compiler Cgc den Quellcode in einen für das erste Programm geeigneten Befehl. Im Schritt S12 kompiliert der Compiler Cgc den Quellcode anhand üblicherweise verwendeter Spezifikationen.
-
Der Compiler Cgc entscheidet dann, ob der kompiliert werdende Quellcode am Ende des zweiten Programms ist oder nicht (Schritt S13). Falls der Quellcode nicht am Ende ist (Nein in Schritt S13), aktualisiert der Compiler Cgc den kompiliert werdenden Code auf den nächsten Quellcode und kehrt zum Schritt S10 zurück. Falls der Quellcode am Ende ist (Ja in Schritt S13), beendet der Compiler Cgc den Prozessablauf.
-
6 ist ein schematisches Diagramm, das ein beispielhaftes erstes Programm zeigt, das erzeugt wird, wenn der Compiler Cgc das in 3 gezeigte zweite Programm 170 kompiliert. Im in 6 gezeigten ersten Programm 180 sind Adressen in der linken Spalte gegeben und sind Anweisungsworte in hexadezimaler Notation in der rechten Spalte angegeben. Das Anweisungsformat hängt vom Compiler Cgc ab, so dass das Anweisungswortformat hier nicht beschrieben wird, sondern die durch jede Anweisung angegebene Operation beschrieben wird.
-
Die in 6 gezeigten Anweisungen 181a bis 181c sind aus der in 3 gezeigten Übertragungs-Planungsfunktion 171 erzeugte Übertragungs-Planungsanweisungen. Die Anweisung 181a ist eine Anweisung zum Notifizieren der Prozess-Umschalteinheit 141, über die Startadresse MM_ADDR1 des in der in 3 gezeigten Übertragungs-Planfunktion 171 beschriebenen kontinuierlichen Bereichs. Die Anweisung 181b ist eine Anweisung, um der Prozess-Umschalteinheit 141 die Größe H1*V1 des in dem in 3 gezeigten Übertragungs-Planungsbereichs 171 beschriebenen kontinuierlichen Bereichs mitzuteilen. Die Anweisung 181c ist eine Anweisung, um der Prozess-Umschalteinheit 141 die in der in 3 gezeigten Übertragungs-Planungsfunktion 171 beschriebene Startadresse PROC1 mitzuteilen. Die Anweisungen 182a bis 182c sind Übertragungs-Planungsanweisungen, die aus der Übertragungs-Planungsfunktion 172 in 3 erzeugt sind. Die Anweisung 182a ist eine Anweisung, um der Prozess-Umschalteinheit 141 die Startadresse MM_ADDR2 des in der in 3 gezeigten Übertragungs-Planungsfunktion 172 beschriebenen kontinuierlichen Bereichs mitzuteilen. Die Anweisung 182b ist eine Anweisung, um der Prozess-Umschalteinheit 141 die Größe H2*V2 des in der in 3 gezeigten Übertragungs-Planfunktion 172 beschriebenen kontinuierlichen Bereichs mitzuteilen. Die Anweisung 182c ist eine Anweisung, um der Prozess-Umschalteinheit 141 die in der in 3 gezeigten Übertragungs-Planfunktion 172 beschriebene Startadresse PROC2 mitzuteilen.
-
Wie in 6 gezeigt, sind im ersten Programm 180 die Übertragungs-Planungsanweisungen 181a bis 181c und 182a bis 182c vor den Anweisungsgruppen 1831, 1832, 1833, ..., 1841, 1842, 1843, ... für die Ausführung von Prozessen P1 und P2 codiert, die unter Verwendung von Daten im Hauptspeicher 10 ausgeführt werden, so dass der Zugriffs-Master 1 Übertragungs-Planungsanweisungen 181a bis 181c und 182a bis 182c vor Ausführen dieser Anweisungsgruppen ausführt. Dies ermöglicht dem Zugriffs-Master 1, der Prozess-Umschalteinheit 141 Anweisungsbefehle C1 zu senden, welche Übertragungs-Planungs-Information gemäß den Übertragungs-Plananweisungen 181a bis 181c und 182a und 182a bis 182c vor Ausführen dieser Anweisungsgruppen angeben. Dies veranlasst die durch diese Anweisungsgruppen verwendeten Daten, aus dem Hauptspeicher 10 zum Cache-Speicher 110 übertragen zu werden, bevor der Zugriffs-Master 1 diese Anweisungsgruppen ausführt.
-
7 ist ein schematisches Diagramm, das ein Beispiel der Disposition des in 6 gezeigten ersten Programms 180 im Hauptspeicher 10 zeigt. In 7 ist das in 6 gezeigte erste Programm 180 im Anweisungsbereich 190 im Hauptspeicher 10 gespeichert. Insbesondere sind die Anweisungen 181a bis 181c, die verwendet werden, um die in 3 gezeigte Übertragungs-Planfunktion 171 zu kompilieren, in einem Bereich 191p angeordnet; die Anweisungen 182a bis 182c, die verwendet werden, um die Übertragungs-Planfunktion 172 zu kompilieren, sind in einem Bereich 192p angeordnet.
-
Der Plan-Verarbeitungseinheit 143 wird die Startadresse des kontinuierlichen Bereichs 197d mitgeteilt, auf den durch Funktion 173 in 3 Bezug genommen wird, wenn der Zugriffs-Master 1 die Anweisung 181a (6) im Bereich 191p ausführt.
-
Als Nächstes führt der Zugriffs-Master 1 die Anweisung 181b (siehe 6) im Bereich 191p aus, wodurch der Plan-Verarbeitungseinheit 143 die Größe des kontinuierlichen Bereichs 197d mitgeteilt wird. Dann führt der Zugriffs-Master 1 die Anweisung 181c (siehe 6) im Bereich 191p aus, wodurch der Plan-Verarbeitungseinheit 143 die Startadresse des Bereichs 193p mitgeteilt wird, in welchem die Befehle entsprechend der in 3 gezeigten Funktion 173 gespeichert sind.
-
Ähnlich wird der Plan-Verarbeitungseinheit 143 die Startadresse und Größe des kontinuierlichen Bereichs 198d mitgeteilt, auf den durch die in 3 gezeigte Funktion 174 referenziert wird, und die Startadresse des Bereichs 194p, in welchen die Befehle entsprechend der in 3 gezeigten Funktion 174 gespeichert sind, wenn der Zugriffs-Master 1 Anweisungen 182a bis 182c (siehe 6) im Bereich 192p ausführt.
-
Als Nächstes wird der Verarbeitungsablauf in der Cache-Speichersteuerung 100 unter Verwendung eines Flussdiagramms beschrieben.
-
8 ist ein Flussdiagramm, das den durch die Prozess-Umschalteinheit 141 in der Datenverarbeitungseinheit 140 ausgeführten Prozess illustriert. Die Prozess-Umschalteinheit 141 startet diesen Prozess, wenn ein Anweisungsbefehl C1 und eine Anweisungsadresse A1 aus dem Zugriffs-Master 1 eingegeben werden.
-
Zuerst entscheidet die Prozess-Umschalteinheit 141, ob die eingegebene Anweisung A1 eine Adresse ist, die im in 7 gezeigten Anweisungsbereich 190 enthalten ist (S20). Falls die Anweisungsadresse A1 eine Adresse im Anweisungsbereich 190 ist (Ja in S20), schreitet der Prozess zu Schritt S21 fort; falls die Anweisungsadresse A1 nicht eine Adresse im Anweisungsbereich 190 ist (Nein in S20), schreitet der Prozess zu Schritt S22 fort.
-
Im Schritt S21 speichert die Prozess-Umschalteinheit 141 die eingegebene Anweisungsadresse A1 als die aktuelle Adresse A3 im Speicher 141a. Falls eine aktuelle Adresse A3 bereits gespeichert worden ist, aktualisiert die Prozess-Umschalteinheit 141 ihren Wert. Umgekehrt, falls die Anweisungsadresse A1 nicht eine Adresse im Anweisungsbereich 190 ist, wird die aktuelle Adresse A3 nicht aktualisiert.
-
Im Schritt S22 stellt die Prozess-Umschalteinheit 141 der Plan-Verarbeitungseinheit 143 die aktuelle Adresse A3 bereit, die im Speicher 141a gespeichert ist.
-
Als Nächstes entscheidet die Prozess-Umschalteinheit 141, ob der aus dem Zugriffs-Master 1 eingegebene Anweisungsbefehl C1 ein Lesen oder Schreiben ist (S23). Falls der Anweisungsbefehl ein Lesen oder Schreiben ist (Ja in S23), schreitet der Prozess zu Schritt S24 fort; falls der Anweisungsbefehl C1 weder ein Lesen noch ein Schreiben ist (Nein in Schritt S23), schreitet der Prozess zu Schritt S25 fort.
-
In Schritt S24 stellt die Prozess-Umschalteinheit 141 den eingegebenen Anweisungsbefehl C1 und die Anweisungsadresse A1 als einen Anfragebefehl C2 bzw. eine Anfrageadresse A2 der Anfrage-Verarbeitungseinheit 142 bereit. Alternativ stellt im Schritt S25 die Prozess-Umschalteinheit 141 den Anweisungsbefehl C1 als einen Übertragungs-Planungsbefehl C3 der Plan-Verarbeitungseinheit 143 bereit. In 6 gezeigte Anweisungen 181a bis 181c und Anweisungen 182a bis 182c sind beispielhafte Übertragungs-Planungsbefehle C3.
-
Als Nächstes entscheidet die Prozess-Umschalteinheit 141, ob ein Anweisungsbefehl C1 aus dem Zugriffs-Master 1 (ein Anweisungsbefehl C1, der noch nicht verarbeitet worden ist) in der Datenverarbeitungseinheit 140 vorhanden ist (S26). Falls ein Anweisungsbefehl C1, der noch nicht verarbeitet worden ist (Ja in S26), schreitet der Prozess zu Schritt S20 zurück; falls ein Anweisungsbefehl C1, der nicht verarbeitet worden ist, nicht vorliegt (Nein in S26), beendet die Prozess-Umschalteinheit 141 den Verarbeitungsablauf.
-
9 zeigt schematisch ein beispielhaftes Timing-Diagramm der Verarbeitung der Prozess-Umschalteinheit 141. 9 zeigt Timings, zu welchen Anweisungsbefehle C1 in die Prozess-Umschalteinheit 141 aus dem Zugriffs-Master 1 eingegeben werden, Timings, zu welchen Daten an die Anfrage-Verarbeitungseinheit 142 ausgegeben werden und Timings, zu welchen Daten an die Plan-Verarbeitungseinheit 143 ausgegeben werden.
-
Zur Zeit t10 empfängt die Prozess-Umschalteinheit 141 einen Anweisungsbefehl C1, der eine Leseanfrage angibt, und eine Anweisungsadresse A1, die einen Programmbereich angibt, als Eingaben aus dem Zugriffs-Master 1, und zu Zeit t11 gibt sie sie an die Anfrage-Verarbeitungseinheit 142 als einen Anfragebefehl C2 bzw. eine Anfrageadresse A2 aus. Die Prozess-Umschalteinheit 141 aktualisiert auch die Werte der aktuellen Adresse A3 auf einen Wert, der die Anweisungsadresse A3 angibt, und stellt sie der Plan-Verarbeitungseinheit 143 bereit.
-
Als Nächstes empfängt die Prozess-Umschalteinheit 141 einen Anweisungsbefehl C1, der eine Schreibanfrage angibt, und eine Anweisungsadresse A1, die einen Datenbereich angibt, als Eingaben aus dem Zugriffs-Master 1 zur Zeit t12, und zur Zeit t13 stellt sie sie der Anfrage-Verarbeitungseinheit 142 als Anfragebefehl C2 bzw. eine Anfrageadresse A2 bereit. Da die Anweisungsadresse A1 einen Datenbereich angibt, stellt die Prozess-Umschalteinheit 141 die im Speicher 141a gespeicherte aktuelle Adresse A3 der Plan-Verarbeitungseinheit 143 bereit, ohne den Wert der aktuellen Adresse A3 zu aktualisieren.
-
Zur Zeit t13 empfängt die Prozess-Umschalteinheit 141 einen Anweisungsbefehl C1 (TRI), der Datenübertragungs-Planung angibt, und eine Anweisungsadresse A1 (TRIA), welche Übertragungsplanung angibt, als Eingaben aus dem Zugriffs-Master 1; sie gibt sie nicht an die Anfrage-Verarbeitungseinheit 142 aus, sondern stellt die im Speicher 141a gespeicherte aktuelle Adresse A3 zur Zeit t14 der Plan-Verarbeitungseinheit 143 bereit und stellt den Anweisungsbefehl C1 der Plan-Verarbeitungseinheit 143 als einen Übertragungs-Planungsbefehl C3 bereit.
-
Zur Zeit t14 empfängt die Prozess-Umschalteinheit 141 einen Anweisungsbefehl C1, der eine Leseanfrage angibt, und eine Anweisungsadresse A1, die einen Programmbereich angibt, als Eingaben aus dem Zugriffs-Master 1, und zur Zeit t15 stellt sie sie der Anfrage-Verarbeitungseinheit 142 als einen Anfragebefehl C2 bzw. eine Anfrageadresse A2 bereit. Die Prozess-Umschalteinheit 141 aktualisiert auch den Wert der aktuellen Adresse A3 auf den Wert, der durch die Anweisungsadresse A1 angegeben ist, und stellt ihn der Plan-Verarbeitungseinheit 143 bereit.
-
Wie oben beschrieben, schaltet die Prozess-Umschalteinheit 141 Ausgabeziele zwischen der Anfrage-Verarbeitungseinheit 142 und der Plan-Verarbeitungseinheit 143 um, gemäß dem Anweisungsbefehl C1 und der Anweisungsadresse A1, die aus dem Zugriffs-Master 1 eingegeben werden.
-
10 ist ein Flussdiagramm, welches den durch die Anfrage-Verarbeitungseinheit 142 in der Datenverarbeitungseinheit 140 durchgeführten Prozess illustriert. Dieser Prozess startet, wenn die Anfrage-Verarbeitungseinheit 142 einen Anfragebefehl C2 und eine Anfrageadresse A2 als Eingaben aus der Prozess-Umschalteinheit 141, und ein Treffer-Detektionsergebnis R1, das einen Cache-Treffer oder ein Cache-Fehltreffer angibt, als eine Eingabe aus der Treffer-Detektionseinheit 130 empfängt.
-
Zuerst entscheidet die Anfrage-Verarbeitungseinheit 142 aus dem Treffer-Detektionsergebnis R1 aus der Treffer-Detektionseinheit 130, ob die durch den Anfragebefehl C2 angefragten Daten im Cache-Speicher 110 vorhanden sind oder nicht (S30). Falls die durch den Anfragebefehl C2 angefragten Daten nicht im Cache-Speicher 110 vorliegen (Nein in S30), mit anderen Worten, falls das Trefferergebnis R1 einen Cache-Fehltreffer angibt, schreitet der Prozess zu Schritt S31 fort. Falls umgekehrt die durch den Anfragebefehl C2 angefragten Daten im Cache-Speicher 110 vorliegen (Ja in S30), mit anderen Worten, falls das Trefferergebnis R1 einen Cache-Treffer anzeigt, schreitet der Prozess zu Schritt S32 fort.
-
Im Schritt S31, um Daten aus dem Hauptspeicher 10 an den Cache-Speicher 110 zu übertragen, gibt die Anfrage-Verarbeitungseinheit 142 eine Datenübertragungs-Anweisung an die Hauptspeicherzugriffs-Arbitrierungseinheit 146. Diese Anweisung beinhaltet die Anfrageadresse A2. Die Hauptspeicherzugriffs-Arbitrierungseinheit 146 führt dann einen Prozess durch, der die an der durch die Anfrageadresse A2 angegebenen Adresse gespeicherten Daten aus dem Hauptspeicher 10 an den Cache-Speicher 110 überträgt. Beispielsweise liest die Hauptspeicherzugriffs-Arbitrierungseinheit 146 die an der durch die Anfrageadresse A2 angegebenen Adresse gespeicherten Daten aus dem Hauptspeicher 10 aus und sendet die Daten an die Anfrage-Verarbeitungseinheit 142. Die Anfrage-Verarbeitungseinheit 142 stellt die empfangenen Daten der Cache-Speicherzugriffs-Arbitrierungseinheit 145 bereit, um die Daten in den Cache-Speicher 110 geschrieben zu erhalten. Wenn die Daten in den Cache-Speicher 110 geschrieben werden, speichert die Speicher-Verwaltungseinheit 120 der Adresse der geschriebenen Daten im Tag-Speicher 121 als Adress-Information Ta und aktualisiert das entsprechende Statusflag Fs, um die Anwesenheit von Daten anzuzeigen.
-
Im Schritt S32 greift die Anfrage-Verarbeitungseinheit 142 auf den Cache-Speicher 110 zu. Falls der Anfragebefehl C2 eine Schreibanweisung angibt, um die durch den Schreibbefehl C2 in einer Cache-Linie angegebene Daten zu schreiben, stellt die Anfrage-Verarbeitungseinheit 142 den Anfragebefehl C2 und die Anfrageadresse A2 der Cache-Speicherzugriffs-Arbitrierungseinheit 145 bereit. Falls umgekehrt der Anfragebefehl C2 eine Leseanweisung ist, um die durch den Anfragebefehl C2 angegebenen Daten aus einer Cache-Linie zu lesen, stellt die Anfrage-Verarbeitungseinheit 142 die Anfrageadresse A2 der zu lesenden Daten der Cache-Speicherzugriffs-Arbitrierungseinheit 145 bereit. Die auf diese Weise ermittelten Daten werden dem Zugriffs-Master 1 als Lesedaten D1 bereitgestellt. Wenn auf den Cache-Speicher 110 zugegriffen wird, aktualisiert die Speicher-Verwaltungseinheit 120 das Zugriffs-Flag Fa, das im Tag-Speicher 121 gespeichert ist, um anzuzeigen, dass ein Zugriff durchgeführt worden ist.
-
Wenn der Anfragebefehl C2 eine Leseanfrage anzeigt und das Treffer-Detektionsergebnis R1 einen Cache-Fehltreffer anzeigt, kann die Anfrage-Verarbeitungseinheit 142 an den Cache-Speicher 110 über die Cache-Speicherzugriffs-Arbitrierungseinheit 145 die über die Hauptspeicherzugriffs-Arbitrierungseinheit 146 aus dem Hauptspeicher 10 gelesenen Daten übertragen und die Daten als Lesedaten an den Zugriffs-Master 1 ausgeben. In diesem Fall wird der Prozess im Schritt S32 in 10 nicht durchgeführt. Die Speicher-Verwaltungseinheit 120 aktualisiert jedoch das im Tag-Speicher 121 gespeicherte Zugriffs-Flag Fa, um anzugeben, dass ein Zugriff gemacht worden ist.
-
11 ist ein Flussdiagramm, das den durch die Plan-Verarbeitungseinheit 143 in der Datenverarbeitungseinheit 140 durchgeführten Prozess illustriert. Der Prozess startet, wenn die Plan-Verarbeitungseinheit 143 aus der Prozess-Umschalteinheit 141 die aktuelle Adresse A3, die Startadresse MM_ADDR eines kontinuierlichen Bereichs, in welchem zu übertragende Daten gespeichert sind, die Größe H*V des kontinuierlichen Bereichs, in welchem die zu übertragenden Daten gespeichert sind und die Startadresse PROC der Anweisungsgruppe, die sich auf den kontinuierlichen Bereich bezieht, in welchem die zu übertragenden Daten gespeichert sind, empfängt, und ein Treffer-Detektionsergebnis R2, das einen Cache-Treffer oder einen Cache-Fehltreffer angibt, aus der Treffer-Detektionseinheit 130 empfängt.
-
Zuerst berechnet die Plan-Verarbeitungseinheit 143 ein Zugriffsintervall (unten als ein Zugriffsintervall Da bezeichnet) auf den Hauptspeicher 10 (S40). Die Anzahl von Anweisungsschritten Ds ab der aktuellen Adresse A3 bis zur Startadresse PROC der Anweisungsgruppe, die sich auf den kontinuierlichen Bereich bezieht, in welchem die zu übertragenden Daten gespeichert werden, wird bei der Berechnung des Zugriffsintervalls Da verwendet. Die Anzahl von Anweisungsschritten Ds kann, wie im nachfolgenden Ausdruck (1) gezeigt, als die Differenz ab der aktuellen Adresse A3, welche die Anweisungsadresse ist, wenn der Planprozess startet, bis zur Startadresse PROC der Anweisungsgruppe, die sich auf den kontinuierlichen Bereich bezieht, in welchem die zu übertragenden Daten gespeichert werden, berechnet werden. Ds = (Startadresse PROC von Anweisungsgruppe) – (aktuelle Adresse A3) (1)
-
Dann, wie in der nachfolgenden Gleichung (2) gezeigt, kann die Plan-Verarbeitungseinheit 143 die Anzahl von Anweisungsschritten Dspu berechnen, die pro Übertragung von Einheitsgröße erforderlich sind, durch Dividieren der Anzahl von Anweisungsschritten Ds durch die Größe Rs des verbleibenden kontinuierlichen Bereichs, für welchen die Übertragung noch nicht abgeschlossen worden ist, der ein gewisser Teil der Größe H*V ist, eingegeben aus der Prozess-Umschalteinheit 141 des kontinuierlichen Bereichs, in welchem die zu übertragenden Daten gespeichert sind. Die Plan-Verarbeitungseinheit 143 verwendet die Anzahl von Anweisungsschritten Dspu, die pro Übertragung von Einheitsgröße erforderlich ist, als das Zugriffsintervall Da. Dspu = (Anzahl von Anweisungsschritten Ds) ÷ (Größe Rs von verbleibendem kontinuierlichen Bereich) (2)
-
Als Nächstes entscheidet die Plan-Verarbeitungseinheit 143, ob aus den in den kontinuierlichen Bereich zu transferierenden Daten die als Nächstes zu transferierenden Daten im Cache-Speicher 110 vorliegen oder nicht (S41). In diesem Fall sind die als Nächstes zu übertragenden Daten von Einheits-Übertragungslänge aus den zu übertragenden Daten in dem kontinuierlichen Bereich. Falls die als Nächstes zu übertragenden Daten nicht im Cache-Speicher 110 vorliegen (Nein in S41), mit anderen Worten, falls das Treffer-Detektionsergebnis R2 für die als Nächstes zu übertragenden Daten ein Cache-Fehltreffer ist, müssen die Daten aus dem Hauptspeicher 10 an den Cache-Speicher 110 transferiert werden, so dass die Plan-Verarbeitungseinheit 143 zu Schritt S42 fortschreitet. Falls umgekehrt die als Nächstes zu übertragenden Daten im Cache-Speicher 110 vorliegen (Ja in S41), mit anderen Worten, falls das Treffer-Detektionsergebnis R2 für die als Nächstes zu übertragenden Daten ein Cache-Treffer ist, müssen dann die Daten nicht aus dem Hauptspeicher 10 an den Cache-Speicher 110 übertragen werden, so dass die Plan-Verarbeitungseinheit 143 die Daten nicht überträgt und zu Schritt S43 fortschreitet.
-
Im Schritt S42 erteilt die Plan-Verarbeitungseinheit 143 der Hauptspeicherzugriffs-Arbitrierungseinheit 146 eine Anweisung, Daten aus dem Hauptspeicher 10 an den Cache-Speicher 110 im in Schritt S40 berechneten Zugriffsintervall Da zu übertragen. Falls das Zugriffsintervall Da beispielsweise ”8” ist, muss eine Einheits-Übertragungslängen von Daten übertragen werden, bevor die aktuelle Adresse A3 acht Schritte vorrückt. Aus diesem Grund erteilt die Plan-Verarbeitungseinheit 143 eine Transferanweisung an die Hauptspeicherzugriffs-Arbitrierungseinheit 146 in einem der acht Schritte, wie etwa dem ersten der acht Schritte. Wenn sie diese Transferanweisung empfängt, liest die Hauptspeicherzugriffs-Arbitrierungseinheit 146 die aus dem Hauptspeicher 10 zu übertragenden Daten aus und gibt die Daten an die Plan-Verarbeitungseinheit 143. Die Plan-Verarbeitungseinheit 143 stellt die gegebenen Daten der Cache-Speicherzugriffs-Arbitrierungseinheit 145 bereit, um die Daten in den Cache-Speicher 110 geschrieben zu bekommen. Wenn die Daten in den Cache-Speicher 110 geschrieben werden, speichert die Speicher-Verwaltungseinheit 120 die Adresse der geschriebenen Daten als Adressinformation im Tag-Speicher 121 und aktualisiert das entsprechende Statusflag Fs, um so die Anwesenheit von Daten anzugeben.
-
Als Nächstes aktualisiert die Plan-Verarbeitungseinheit 143 die Übertragungsabschlussgröße, welche die Gesamtgröße der Daten angibt, die bereits übertragen worden sind (S43).
-
Als Nächstes entscheidet die Plan-Verarbeitungseinheit 143, ob die Übertragungsabschlussgröße gleich oder größer als die Größe H*V des kontinuierlichen Bereichs ist oder nicht, in welchem die zu übertragenden Daten gespeichert sind, die aus der Prozess-Umschalteinheit 141 eingegeben wurden (S44). Falls die Übertragungsabschlussgröße kleiner als die Größe H*V des kontinuierlichen Bereichs ist, in welchem die zu übertragenden Daten gespeichert sind (Nein in S44), schreitet der Prozess zu Schritt S45 fort; falls er gleich oder größer als die Größe H*V des kontinuierlichen Bereichs ist, in welchem die zu übertragenden Daten gespeichert werden (Ja in S44), wird der Verarbeitungsablauf beendet.
-
Im Schritt S45 entscheidet die Plan-Verarbeitungseinheit 143, ob eine aktualisierte, aktuelle Adresse A3 aus der Prozess-Umschalteinheit 141 erhalten worden ist oder nicht. Falls eine aktuelle Adresse A3 erhalten worden ist (Ja in S45), kehrt der Prozess zu Schritt S40 zurück; falls eine aktuelle Adresse A3 nicht erhalten worden ist (Nein in S45), kehrt der Prozess zu Schritt S41 zurück.
-
Durch Übertragung erforderlicher Daten an den Cache-Speicher 110 in Beantwortung von Übertragungs-Planungsbefehlen C3 wie oben, kann die Plan-Verarbeitungseinheit 143 zuverlässig das Cache-Treffer-Verhältnis verbessern, selbst in Bereichen im Hauptspeicher 10, auf welche der Zugriffs-Master 1 nie zugegriffen hat.
-
Die 12(a) bis 12(c) sind schematische Diagramme, die den Prozess einer Datenübertragung durch die Plan-Verarbeitungseinheit 143 illustrieren. 12(a) illustriert die sich ändernde aktuelle Adresse A3; 12(b) illustriert die Änderungsgröße des verbleibenden kontinuierlichen Bereichs, in welchem zu übertragende Daten gespeichert sind; 12(c) illustriert das Änderung-Zugriffsintervall Da.
-
Wie in 12(c) gezeigt, wird das Zugriffsintervall Da0 zur Zeit t0 berechnet, wenn der Übertragungs-Planungsbefehl C3 in die Plan-Verarbeitungseinheit 143 eingegeben wird.
-
Wie in 12(a) gezeigt, wenn der Wert der aktuellen Adresse A3 zur Zeit t1 aktualisiert wird, berechnet aus der aktuellen Größe des verbleibenden kontinuierlichen Bereichs, in welchem zu übertragende Daten gespeichert sind (siehe 12(b)) und der Anzahl von verbleibenden Schritten ab der aktuellen Adresse A3 bis zur Startadresse PROC der Anweisungsgruppe, die sich auf den kontinuierlichen Bereich bezieht (siehe 12(a)), die Plan-Verarbeitungseinheit 143 das Zugriffsintervall Da1 neu (siehe 12(c)), wodurch die Intervalle eingestellt werden, durch welche auf den Hauptspeicher 10 zugegriffen wird.
-
Wie oben beschrieben, wenn die aktuelle Adresse A3 aktualisiert wird, berechnet die Plan-Verarbeitungseinheit 143 das Zugriffsintervall Da wieder und führt Übertragungen aus dem kontinuierlichen Bereich beim berechneten Zugriffsintervall Da durch. Der Übertragungsprozess wird in solcher Weise durchgeführt, dass die Größe des verbleibenden kontinuierlichen Bereichs, in welchem zu übertragende Daten gespeichert sind, ”0” wird, das heißt die Übertragung abgeschlossen wird, zu der Zeit tn, wenn die aktuelle Adresse die Startadresse PROC der Anweisungsgruppe erreicht, die sich auf den kontinuierlichen Bereich bezieht. Zur Zeit tn ist die aktuelle Adresse A3 die Startadresse PROC der Anweisungsgruppe, die sich auf den kontinuierlichen Bereich bezieht, so dass das Zugriffsintervall Dan ”0” ist.
-
13 zeigt schematisch ein beispielhaftes Timing-Diagramm des durch die Plan-Verarbeitungseinheit 143 durchgeführten Prozesses. 13 zeigt das Timing, zu welchem die aktuelle Adresse A3 und die Größe H*V des kontinuierlichen Bereichs, in welchem die zu übertragenden Daten gespeichert sind, aus der Prozess-Umschalteinheit 141 eingegeben werden, Timings, zu welchen die Größe des verbleibenden Bereichs, in welchem zu übertragende Daten gespeichert sind, sich ändert, Timings, zu welchen ein Zugriffsintervall Da berechnet wird und Timings, zu welchen auf den Hauptspeicher 10 zugegriffen wird.
-
Zur Zeit t0, wenn eine aktuelle Adresse A3 und ein Übertragungs-Planungsbefehl C3 aus der Prozess-Umschalteinheit 141 eingegeben werden, berechnet die Plan-Verarbeitungseinheit 143 ein Zugriffsintervall Da0. Bis die aktuelle Adresse A3, die aus der Prozess-Umschalteinheit 141 eingegeben ist, zur Zeit t1 aktualisiert wird, greift die Plan-Verarbeitungseinheit 143 auf den Hauptspeicher 10 beim berechneten Zugriffsintervall Da0 zu.
-
Wenn die aus der Prozess-Umschalteinheit 141 eingegebene aktuelle Adresse A3 zur Zeit t1 aktualisiert wird, berechnet die Plan-Verarbeitungseinheit 143 ein Zugriffsintervall Da1 und greift auf den Hauptspeicher 10 zu dem berechneten Zugriffsintervall Da1 zu, bis die aktuelle Adresse A3 zur Zeit t2 aktualisiert wird.
-
Ähnlich, wenn die aktuelle Adresse A3, die aus der Prozess-Umschalteinheit 141 eingegeben wird, zur Zeit t2 aktualisiert wird, berechnet die Plan-Verarbeitungseinheit 143 ein Zugriffsintervall Da2 und greift auf den Hauptspeicher 10 zu dem berechneten Zugriffsintervall zu, bis die aktuelle Adresse A3 aktualisiert wird.
-
Danach greift die Plan-Verarbeitungseinheit 143 auf den Hauptspeicher 10 bei Zugriffsintervallen Da zu, die berechnet werden, wann immer die aus der Prozess-Umschalteinheit 141 eingegebene aktuelle Adresse A3 aktualisiert wird, und schließt den Transfer zur Zeit ab, zu der die aktuelle Adresse die Startadresse PROC der Anweisungsgruppe erreicht, die sich auf den kontinuierlichen Bereich bezieht, der durch den Übertragungs-Planungsbefehl C3 gegeben wurde.
-
Unter Bezugnahme auf die aktuelle Adresse A3, Einstellen der Intervalle, zu denen auf den Hauptspeicher 10 zugegriffen wird, und Abschließen der Übertragung zur Zeit, zu der die Anweisungen, die sich auf den kontinuierlichen Bereich beziehen, wie oben beschrieben ausgeführt werden, wird es möglich, den Cache-Speicher 110 effizient zu verwenden.
-
14 ist ein Flussdiagramm, das den durch die Aufhebe-Verarbeitungseinheit 144 durchgeführten Prozess in der Datenverarbeitungseinheit 140 zeigt. Die Datenverarbeitungseinheit 140 überwacht konstant, ob die Anzahl von Statusflags Fs im Tag-Speicher 121 der Speicher-Verwaltungseinheit 120, die ungültige Orte angeben (an denen Daten nicht gespeichert sind), beispielsweise gleich oder kleiner einem vorbestimmten Wert T ist oder nicht.
-
Die Aufhebe-Verarbeitungseinheit 144 entscheidet, ob die Anzahl von Statusflags Fs gleich oder kleiner als T ist oder nicht (S50). Falls die Anzahl von Statusflags Fs größer als T ist (Nein in S50), wartet die Aufhebe-Verarbeitungseinheit 144, während sie die Überwachung der Statusflags Fs in der Speicher-Verwaltungseinheit 120 fortsetzt. Andererseits, falls die Anzahl von Statusflags Fs gleich oder kleiner als T ist (Ja in S50), schreitet der Prozess zu Schritt S51 fort.
-
In Schritt S51 wählt die Aufhebe-Verarbeitungseinheit 144 eine Kandidaten-Cache-Linie zur Freigabe aus den Cache-Linien des Cache-Speichers 110 aus. Als ein Verfahren zum Auswählen einer Cache-Linie als Kandidat zur Freigabe wird beispielsweise das LRU-Verfahren, das die Cache-Linie auswählt, auf die am längsten nicht Bezug genommen worden ist, verwendet.
-
Die Aufhebe-Verarbeitungseinheit 144 entscheidet dann, ob die im Schritt S51 ausgewählte Cache-Linie freigebbar ist oder nicht (S52). Aus den Cache-Linien im Cache-Speicher 110 können Cache-Linien, in denen durch einen Übertragungs-Planungsbefehl C3 übertragene Daten gespeichert sind, und auf die nicht aus dem Zugriffs-Master 1 selbst einmal zugegriffen worden ist, nicht freigegeben werden können. Mit anderen Worten sind die Cache-Linien, die freigegeben werden, aus den als Kandidaten zur Freigabe ausgewählten Cache-Linien Cache-Linien, die an den Cache-Speicher 110 durch Anfragebefehle C2 übertragen worden sind und, aus den als Kandidaten zur Freigabe ausgewählten Cache-Linien Cache-Linien, für welche ein zeitterminiertes Zeitbereichs-Zugriffs-Flag Fra angibt, dass das Zugriffs-Flag Fa gültig geworden ist. Entsprechend überwacht die Aufhebe-Verarbeitungseinheit 144 die Zugriffs-Flags Fa von Cache-Linien, auf denen Daten gespeichert sind, durch die Plan-Verarbeitungseinheit 143 und zeichnet terminierte Bereichs-Zugriffs-Flags Fra in einem Speicher 144a auf, welche angeben, ob die Zugriffs-Flags Fa einmal oder mehrmals gültig geworden sind oder nicht.
-
Falls die im Schritt S51 ausgewählte Cache-Linie nicht freigebbar ist (Nein in S52), kehrt der Prozess dann zu Schritt S51 zurück, wo die Aufhebe-Verarbeitungseinheit 144 wieder eine Cache-Linie als einen Kandidaten zur Freigabe durch das LRU-Verfahren auswählt. Andererseits, falls die im Schritt S51 ausgewählte Cache-Linie freigebbar ist (Ja in S52), schreitet der Prozess zu Schritt S53 fort.
-
Im Schritt S53 gibt die Aufhebe-Verarbeitungseinheit 144 der Cache-Speicherzugriffs-Arbitrierungseinheit 145 eine Anweisung, die in der freigebbaren Cache-Linie gespeicherten Daten zurück zum Hauptspeicher 10 zu schreiben (S53). Beim Empfang dieser Anweisung liest die Cache-Speicherzugriffs-Arbitrierungseinheit 145 die in der als freigebbar entschiedenen Cache-Linie gespeicherten Daten aus und stellt die Daten der Aufhebe-Verarbeitungseinheit 144 bereit. Die Aufhebe-Verarbeitungseinheit 144 stellt die Daten der Hauptspeicherzugriffs-Arbitrierungseinheit 146 bereit, um die Daten in den Hauptspeicher 10 geschrieben zu bekommen.
-
Wenn das Schreiben der Cache-Linie aus dem Cache-Speicher 110 zurück in den Hauptspeicher 10 abgeschlossen ist, kehrt der Prozess zu Schritt S50 zurück und setzt die Aufhebe-Verarbeitungseinheit 144 die Überwachung der Statusflags Fs in den Tag-Speicher 121 fort.
-
Indem Cache-Linie, in denen durch einen Übertragungs-Planungsbefehl C3 übertragene Daten gespeichert sind, und die nicht einmal durch den Zugriffs-Master 1 zugegriffen worden sind, nicht ein Subjekt der Freigabe gemacht werden, wie oben beschrieben, wird sichergestellt, dass durch den Zugriffs-Master referenzierte Daten im Cache-Speicher 110 gespeichert sind.
-
In der oben beschriebenen ersten Ausführungsform ist ein Beispiel beschrieben worden, bei welchem ein erstes Programm 180 (siehe 6), das durch die Übertragungs-Planfunktionen 171, 172 in einem zweiten Programm 170 erzeugt ist, wie in 3 gezeigt, und ihre Kompilierung mit dem Compiler Cgc verwendet werden, um die Cache-Speichersteuerung 100 zu betreiben, aber diese Art von Beispiel ist nicht beschränkend. Alles, was erforderlich ist, ist, dass Übertragungs-Planungsbefehle im ersten Programm codiert sind. Entsprechend kann ein Compiler, der ein erstes Programm 180, das Übertragungs-Planungsbefehle 181a bis 181c und 182a bis 182c enthält, wie in 6 gezeigt, aus einem zweiten Programm 270 des in 15 gezeigten Typs erzeugt, auch verwendet werden. Mit anderen Worten kann der Compiler die Übertragungs-Planungsinstruktionen erzeugen, die im zweiten Programm enthalten sind, durch Analysieren von Code, der Anweisungen anzeigt, die in dem Datenbereich im Hauptspeicher 10 gespeicherte Daten verwenden. Dies ermöglicht, dass der gewünschte Zweck erzielt wird, indem Übertragungs-Planungsbefehle an angemessenen Positionen ohne Versagen codiert werden, selbst wenn keine Übertragungs-Planfunktion 160 absichtlich im zweiten Programm 270 codiert ist.
-
In der ersten oben beschriebenen Ausführungsform ist ein Beispiel beschrieben worden, in welchem Übertragungs-Planungsbefehle aus dem Zugriffs-Master 1 erteilt werden, aber diese Art von Beispiel ist nicht beschränkend. Beispielsweise mag das durch den Zugriffs-Master 1 ausgeführte erste Programm keine Übertragungs-Plananweisungen enthalten. In diesem Fall reicht es für die Plan-Verarbeitungseinheit 143 aus, das erste Programm zu analysieren, das im vorgeschriebenen Programmbereich im Hauptspeicher 10 gespeichert ist und im Cache-Speicher 110 gespeichert worden ist, und erzeugt Übertragungs-Planungs-Information zum Übertragen von Daten, auf die durch einen später ausgeführten Prozess Bezug genommen wird, aus dem Hauptspeicher 10 zum Cache-Speicher 110. Dies ermöglicht es, dass das erste Programm aus dem zweiten Programm unter Verwendung eines Universalzweck-Compilers und von durch den Zugriffs-Master 1 referenzierten Daten erzeugt wird, um zuverlässig im Cache-Speicher 110 gespeichert zu werden.
-
Zweite Ausführungsform
-
Die zweite Ausführungsform wird unter Bezugnahme auf die 16 bis 30 beschrieben.
-
16 ist ein Blockdiagramm, welches schematisch die Konfiguration einer Cache-Speichersteuerung 200 gemäß der zweiten Ausführungsform zeigt. Die Cache-Speichersteuerung 200 beinhaltet einen Cache-Speicher 110, eine Speicher-Verwaltungseinheit 120, eine Treffer-Detektionseinheit 130 und eine Datenverarbeitungseinheit 240.
-
16 zeigt die Verbindungsbeziehungen zwischen einem Zugriffs-Master 1, der Cache-Speichersteuerung 200 und dem Hauptspeicher 10 in einer vereinfachten Form.
-
Der Hauptspeicher 10 wird in kollektiven Einheiten an einer gewissen Kapazität verwaltet, die als Bänke bezeichnet werden. Eine Bank ist in einen Anweisungsbereich und einen Datenbereich unterteilt. Es ist möglich, auf einen spezifischen kontinuierlichen Bereich zuzugreifen, indem seine Reihe-(Row)Adresse und seine Spalte-(Column)Adresse im Hauptspeicher 10 bezeichnet werden.
-
Die Funktionen des Cache-Speichers 110, der Speicher-Verwaltungseinheit 120 und der Treffer-Detektionseinheit 130 sind die gleichen wie in der ersten Ausführungsform und sind bereits beschrieben worden, und hier wird die Beschreibung daher weggelassen.
-
Die Datenverarbeitungseinheit 240 überträgt die im Hauptspeicher 10 gespeicherten Daten an den Cache-Speicher 110. In dieser Ausführungsform, jedes Mal, wenn die Datenverarbeitungseinheit 240 eine Übertragungs-Planungs-Information empfängt, die eine Adresse beinhaltet, an welcher durch eine spezifische Anweisung verwendete Daten im Hauptspeicher 10 gespeichert sind, speichert sie die empfangene Übertragungs-Planungs-Information. Wenn eine Mehrzahl von Elementen von Übertragungs-Planungs-Information gespeichert wird, arbitriert die Datenverarbeitungseinheit 240 zwischen ihnen. Auf Übertragungs-Planungs-Information hoher Priorität, wie durch Arbitrierung entschieden, einwirkend, überträgt die Datenverarbeitungseinheit 240 die durch die spezifische Anweisung verwendeten Daten aus dem Hauptspeicher 10 an den Cache-Speicher 110, bevor der Zugriffs-Master 1 die spezifische Anweisung ausführt, die im ersten Programm enthalten ist. Die Datenverarbeitungseinheit 240 schreibt auch Daten im Cache-Speicher 110 oder Hauptspeicher 10 in Reaktion auf Anfragen aus dem Zugriffs-Master 1. Die Datenverarbeitungseinheit 240 beinhaltet eine Prozess-Umschalteinheit 141, eine Anfrage-Verarbeitungseinheit 142, eine Plan-Verarbeitungseinheit 243, eine Aufhebe-Verarbeitungseinheit 144, eine Cache-Speicherzugriffs-Arbitrierungseinheit 145, eine Hauptspeicherzugriffs-Arbitrierungseinheit 146, eine Prioritäts-Bestimmungseinheit 247 und eine Zugriffsverwaltungseinheit 248.
-
Die Funktionen der Prozess-Umschalteinheit 141, der Anfrage-Verarbeitungseinheit 142, der Aufhebe-Verarbeitungseinheit 144, der Cache-Speicherzugriffs-Arbitrierungseinheit 145 und der Hauptspeicherzugriffs-Arbitrierungseinheit 146 sind die gleichen wie in der ersten Ausführungsform und sind bereits beschrieben worden, so dass Beschreibungen hier weggelassen werden.
-
Die Prioritäts-Bestimmungseinheit 247 empfängt eine aktuelle Adresse A3 und einen Übertragungs-Planungsbefehl C3 aus der Prozess-Umschalteinheit 141. Die Prioritäts-Bestimmungseinheit 247 speichert dann die durch den empfangenen Übertragungs-Planungsbefehl C3 angegebene Übertragungs-Planungs-Information in einem Speicher 247a (Übertragungs-Plan-Speichereinheit). Die Prioritäts-Bestimmungseinheit 247 berechnet ein Zugriffsintervall Da für jedes Element von gespeicherter Übertragungs-Planungs-Information. Das Verfahren zur Berechnung eines Zugriffsintervalls Da ist das gleiche wie in der ersten Ausführungsform. Auf Basis des berechneten Zugriffsintervalls Da und einer Zeit seit letztem Zugriff R5, ermittelt aus der Zugriffsverwaltungseinheit 248, entscheidet die Prioritäts-Bestimmungseinheit 247, welches Element von Übertragungs-Planungs-Information durch die Plan-Verarbeitungseinheit 243 mit Toppriorität zu prozessieren ist. Die Prioritäts-Bestimmungseinheit 247 stellt der Zugriffsverwaltungseinheit 248 die Startadresse Am des kontinuierlichen Bereichs bereit, in welchem die zu übertragenden Daten gespeichert sind, angezeigt durch die Übertragungs-Planungs-Information, als eine Adresse A5 und empfängt in Reaktion darauf die Zeit seit dem letzten Zugriff R5 aus der Zugriffsverwaltungseinheit 248. Zusätzlich stellt die Prioritäts-Bestimmungseinheit 247 der Plan-Verarbeitungseinheit 243 das Zugriffsintervall Da der bestimmten Übertragungs-Planungs-Information höchster Priorität für den kontinuierlichen Bereich im Hauptspeicher 10 und die Startadresse Am des kontinuierlichen Bereichs, in welchem die zu übertragenden Daten gespeichert sind, bereit. Wenn ein terminiertes Übertragungs-Zustandssignal V1 aus der Plan-Verarbeitungseinheit 243 den Abschluss der Übertragung angibt und die gesamte Größe H*V, gespeichert als Übertragungs-Planungs-Information des kontinuierlichen Bereichs, in welchem die zu übertragenden Daten gespeichert sind, übertragen worden ist, löscht die Prioritäts-Bestimmungseinheit 247 die Übertragungs-Planungs-Information aus dem Speicher 247a.
-
17 ist ein schematisches Diagramm, welches die im Speicher 247a in der Prioritäts-Bestimmungseinheit 247 gespeicherte Übertragungsplanungs-Verwaltungsinformation 201 zeigt. Die Übertragungsplanungs-Verwaltungsinformation beinhaltet eine Reihenfolge der Ankunftsspalte 201a, einer Startadresse-einer-Referenz-der-Anweisungsgruppenspalte 201b, einer Startadresse-eines-kontinuierlichen-Bereichsspalte 201c, einer verbleibende Übertragungsgrößenspalte 201d und einer Übertragungszustandsspalte 201e.
-
Die Reihenfolge der Ankunftsspalte 201a speichert Information, welche die Reihenfolge der Ankunft von Übertragungs-Planungs-Information angibt.
-
Die Startadresse der Referenz-Anweisungsgruppenspalte 201b speichert die Startadresse PROC einer Gruppe von Anweisungen, die eine Funktion bilden, welche sich auf einen kontinuierlichen Bereich bezieht, in welchem zu übertragende Daten gespeichert werden.
-
Die Startadresse der kontinuierlichen Bereichsspalte 201c speichert die Startadresse des kontinuierlichen Bereichs, in welchem die anhand des Übertragungs-Planungsbefehls C3 zu übertragenden Daten im Hauptspeicher 10 gespeichert werden. Der Anfangswert bei der Startadresse der kontinuierlichen Bereichsspalte 201c ist die Startadresse MM_ADDR des kontinuierlichen Bereichs, auf den Bezug genommen wird durch den Zugriffs-Master 1, die in dem Übertragungs-Planungsbefehl C3 enthalten ist.
-
Die Rest-Übertragungsgrößenspalte 201d speichert die Restgröße der gemäß dem Übertragungs-Planungsbefehl C3 zu übertragenden Daten. Der Anfangswert bei der Rest-Übertragungsgrößenspalte 201d ist die Größe H*V des kontinuierlichen Bereichs, in welchem die zu übertragenden Daten gespeichert sind, die in dem Übertragungs-Planungsbefehl C3 beinhaltet sind.
-
Die Übertragungszustandsspalte 201e speichert Übertragungs-Zustands-Information, welche angibt, ob die Datenübertragung aktuell im Fortgang ist oder nicht, basierend auf der Übertragungs-Planungs-Information entsprechend der in der Startadresse der Referenzier-Anweisungsgruppenspalte 201b gespeicherten Information und der Startadresse der kontinuierlichen Bereichsspalte 201c. In dieser Ausführungsform gibt beispielsweise eine ”1” in diesem Feld an, dass die Datenübertragung stattfindet; eine ”0” gibt an, dass die Übertragung derzeit wartet.
-
Die Prioritäts-Bestimmungseinheit 247 speichert die Startadressen MM_ADDR kontinuierlicher Bereiche, welche durch den Zugriffs-Master 1 referenziert werden, die Größen H*V der kontinuierlichen Bereiche, in denen die zu übertragenden Daten gespeichert sind und die Startadressen PROC der Gruppen von Anweisungen, welche die Funktionen bilden, die sich auf die kontinuierlichen Bereiche beziehen, in welchen die zu übertragenden Daten gespeichert sind, wie durch die Übertragungs-Planungsbefehle C3 angegeben, in der Planungs-Verwaltungsinformation 201 als Übertragungs-Planungs-Information in der Reihenfolge, in der die Übertragungs-Planungsbefehle C3 empfangen werden. Die Prioritäts-Bestimmungseinheit 247 aktualisiert die im Speicher 247a gespeicherte Information, wenn sie ein geplantes Übertragungs-Statussignal V1 aus der Plan-Verarbeitungseinheit 243 empfängt.
-
Rückkehrend zu 16, überwacht die Zugriffsverwaltungseinheit 248 die Anfrageadresse A2 aus der Prozess-Umschalteinheit 141, verwendet einen (nicht gezeigten) Timer zum Messen der Zeit, die ab dem letzten vorherigen Zugriff verstreicht, als eine Zeit seit letztem Zugriff Td und speichert die gemessene Zeit seit letzten Zugriff Td in einem Speicher 248a (Zeit seit letzter Zugriff-Speichereinheit). Jedes Mal, wenn eine Anfrageadresse A2 aus der Prozess-Umschalteinheit 141 an die Anfrage-Verarbeitungseinheit 142 gesendet wird, identifiziert die Zugriffsverwaltungseinheit 248 den kontinuierlichen Bereich, zu welchem die Anfrageadresse A2 gehört, wobei ein kontinuierlicher Bereich, der aus einer Mehrzahl von Adressen besteht, die in Reihenadressen und Spaltenadressen unterteilt sind, die zu den individuellen Bänken im Hauptspeicher 10 gehören, als eine einzelne Einheit behandelt wird, und setzt die Zeit seit letztem Zugriff Td des identifizierten kontinuierlichen Bereichs zurück. Wenn mit einer Adresse A5 aus der Prioritäts-Bestimmungseinheit 247 versehen, identifiziert die Zugriffsverwaltungseinheit 248 den kontinuierlichen Bereich, zu welchem die Adresse A5 gehört, liest die Zeit seit letztem Zugriff Td des identifizierten kontinuierlichen Bereichs aus dem Speicher 248a als eine Antwort R5 aus und stellt sie der Prioritäts-Bestimmungseinheit 247 bereit.
-
18 ist ein Diagramm, das eine im Speicher 248a der Zugriffsverwaltungseinheit 248 gespeicherte Zugriffs-Verwaltungs-Information 202 zeigt.
-
Die Zugriffs-Verwaltungs-Information 202 beinhaltet eine Banknummernspalte 202a, eine Reihen-Adressspalte 202b, eine Spaltenadressspalte 202c und eine Zeit-seit-letztem-Zugriff-Spalte 202d.
-
Die Banknummernspalte 202a speichert Banknummern, welche die Bänke im Hauptspeicher 10 identifizieren.
-
Die Reihen-Adressspalte 202b speichert Reihenadressbereiche kontinuierlicher Bereiche, die in den Banken im Hauptspeicher 10 gebildet sind.
-
Die Spaltenadressspalte 202c speichert Spaltenadressbereiche von kontinuierlichen Bereichen, die in den Bänken im Hauptspeicher 10 gebildet sind.
-
Die Zeit-seit-letztem-Zugriff-Spalte 202d speichert Zeiten seit letztem Zugriff Td, die verstrichene Zeiten ab dann angeben, wenn auf einen durch die Reihen-Adressspalte 202b und Spaltenadressspalte 202c identifizierten kontinuierlichen Bereich in der durch die Banknummernspalte 202a identifizierten Bank zuletzt zugegriffen wurde. Für einen kontinuierlichen Bereich, auf den nicht aus dem Zugriffs-Master 1 selbst einmal zugegriffen worden ist, ist die Zeit seit letzten Zugriff Td die verstrichene Zeit, seit die Cache-Speichersteuerung 200 gestartet wurde.
-
Rückkehrend zu 16, greift die Plan-Verarbeitungseinheit 243 auf den Hauptspeicher 10 gemäß den aus der Treffer-Detektionseinheit 130 bereitgestellten Treffer-Detektionsergebnissen R2 und den Startadressen Am kontinuierlicher Bereiche, in denen zu übertragende Daten gespeichert sind, und Zugriffsintervallen Da des Zugriffs auf den Hauptspeicher 10, die aus der Prioritäts-Bestimmungseinheit 247 bereitgestellt werden, zu und überträgt einzelne Linien von Daten, die voreingestellte Übertragungseinheiten sind, an den Cache-Speicher 110. Wenn die Übertragung einer Datenlinie an den Cache-Speicher 110 abgeschlossen ist, aktualisiert die Plan-Verarbeitungseinheit 243 das geplante Übertragungs-Zustandssignal V1 zu einem Wert, der Übertragungsabschluss anzeigt, wodurch der Prioritäts-Bestimmungseinheit 247 der Abschluss der Übertragung einer Datenlinie mitgeteilt wird. Beispielsweise stellt die Plan-Verarbeitungseinheit 243 die Startadresse Am eines kontinuierlichen Bereichs, in dem zu übertragende Daten gespeichert werden, welche sie aus der Prioritäts-Bestimmungseinheit 247 empfangen hat, der Treffer-Detektionseinheit 130 als einer Adresse A4 bereit. In Reaktion ermittelt die Plan-Verarbeitungseinheit 243 ein Treffer-Detektionsergebnis R2 für die Adresse A4 aus der Treffer-Detektionseinheit 130. Dann, falls das Treffer-Detektionsergebnis R2 ein Cache-Fehltreffer ist, überträgt die Plan-Verarbeitungseinheit 243 die Daten an diese Adresse aus dem Hauptspeicher 10 zum Cache-Speicher 110. Wenn die Plan-Verarbeitungseinheit 243 den Transfer an der Startadresse Am eines kontinuierlichen Bereichs startet, in welchem die zu übertragenden Daten gespeichert sind, stellt sie auch der Aufhebe-Verarbeitungseinheit 144 geplante Bereichsinformation I1 bereit, welche die Ziel-Cache-Linie, in der die Daten gespeichert werden, anzeigt. Schließlich, bei Abschluss der Übertragung einer Datenlinie, die ab der Startadresse Am des kontinuierlichen Bereichs beginnt, in welchem die zu übertragenden Daten gespeichert sind, aktualisiert die Plan-Verarbeitungseinheit 243 das geplante Übertragungs-Zustandssignal V1 zum Anzeigen, dass die Übertragung abgeschlossen worden ist, wodurch die Prioritäts-Bestimmungseinheit 247 notifiziert wird. Das geplante Übertragungs-Statussignal V1 ist beispielsweise ein Ein-Bit-Signal, das auf H (1) eingestellt wird, wenn eine Übertragung abgeschlossen wird und die nächste Übertragung geplant werden kann, und wird umgekehrt auf L (0) gesetzt, während eine weitere Übertragungsplanung unverfügbar ist.
-
Als Nächstes wird der Verarbeitungsablauf in der Prioritäts-Bestimmungseinheit 247 unter Verwendung eines Flussdiagramms beschrieben.
-
19 ist ein Flussdiagramm, das den Prozess illustriert, wenn die Prioritäts-Bestimmungseinheit 247 aus einer Mehrzahl von Elementen von Übertragungs-Planungs-Information arbitriert. Die Prioritäts-Bestimmungseinheit 247 startet diesen Prozess, wenn sie aus der Prozess-Umschalteinheit 141 eine aktuelle Adresse A3 und einen Übertragungs-Planungsbefehl C3 einschließlich der Startadresse MM_ADDR eines kontinuierlichen Bereichs, in welchem zu übertragende Daten gespeichert sind, die Größe H*V des kontinuierlichen Bereichs, in dem die zu übertragenden Daten gespeichert sind und die Startadresse PROC einer Anweisungsgruppe, die sich auf den kontinuierlichen Bereich bezieht, in welchem die zu übertragenden Daten gespeichert sind, empfängt.
-
Zuerst entscheidet die Prioritäts-Bestimmungseinheit 247, ob die Plan-Verarbeitungseinheit 243 beschäftigt oder nicht (S60). Falls das geplante Übertragungs-Zustandssignal V1 aus der Plan-Verarbeitungseinheit 243 anzeigt, dass eine Übertragungsplanung nicht verfügbar ist (V1 = L) (Nein in S60), wartet sie, bis die Übertragung abgeschlossen ist. Falls das geplante Übertragungs-Zustandssignal V1 aus der Plan-Verarbeitungseinheit 243 anzeigt, dass Übertragungsplanung verfügbar ist (V1 = H), (Ja in S60), rückt die Prioritäts-Bestimmungseinheit 247 den Prozess zu Schritt S61 vor.
-
Als Nächstes bestimmt in Schritt S61 die Prioritäts-Bestimmungseinheit 247, ob irgendeine Übertragungs-Planungs-Information, für welche die Übertragungszustandsspalte 201e der im Speicher 247a gespeicherten Plan-Verwaltungsinformation 201 angibt, dass Übertragung im Fortgang vorliegt, oder nicht. Falls eine ”1”, die Übertragung im Fortgang anzeigt, in der Übertragungszustandsspalte 201e der Plan-Verwaltungsinformation 201 für irgendein Element der gespeicherten Übertragungs-Planungs-Information gespeichert ist (Ja in S61), rückt die Prioritäts-Bestimmungseinheit 247 den Prozess zu Schritt S62 fort. Umgekehrt, falls ”0”, das Übertragungserwarten anzeigt, in der Übertragungszustandsspalte 201e für alle gespeicherten Übertragungs-Planungs-Informationen gespeichert ist (Nein in S61), rückt die Prioritäts-Bestimmungseinheit 247 den Prozess zu Schritt S63 fort.
-
Im Schritt S62 aktualisiert die Prioritäts-Bestimmungseinheit 247 den Datensatz, in welchem eine ”1”, die Übertragung im Fortgang anzeigt, in der Übertragungszustandsspalte 201e der Plan-Verwaltungsinformation 201 gespeichert ist. Spezifisch führt die Prioritäts-Bestimmungseinheit 247 diese Aktualisierung durch Subtrahieren der Größe (in diesem Fall beispielsweise ”1”) einer Linie im Cache-Speicher 10, die eine Einheit der Übertragung ist, vom Wert der Rest-Übertragungsgrößenspalte 201d in dem relevanten Datensatz in der Plan-Verwaltungsinformation 201 durch. Wenn der Wert in der Rest-Übertragungsgrößenspalte 201d ”0” erreicht, löscht die Prioritäts-Bestimmungseinheit 247 die Übertragungs-Planungs-Information (Datensatz). Umgekehrt, wenn der Wert der Rest-Übertragungsgrößenspalte 201d gleich oder größer als ”1” ist, selbst nachdem die Größe einer Linie vom Wert in der Rest-Übertragungsgrößenspalte 201d subtrahiert wird, inkrementiert die Prioritäts-Bestimmungseinheit 247 die Startadresse des in der Startadresse der kontinuierlichen Bereichsspalte 201c gespeicherten kontinuierlichen Bereichs um eine Linie. Mit anderen Worten aktualisiert die Prioritäts-Bestimmungseinheit 247 die Startadresse des kontinuierlichen Bereichs auf die Adresse eine Linie weiter fort. Zusätzlich aktualisiert die Prioritäts-Bestimmungseinheit 247 die Übertragungszustandsspalte 201e des entsprechenden Datensatzes auf ”0”, was Übertragungswarten anzeigt, und rückt den Prozess zu Schritt S63 fort.
-
Im Schritt S63 bestimmt die Prioritäts-Bestimmungseinheit 247 die Anzahl von Elementen von Übertragungs-Planungs-Information im Übertragungswartezustand, welche im Speicher 247a gespeichert sind. Falls die Anzahl von Elementen solcher Übertragungs-Planungs-Information ”0” ist, beendet die LCD-Steuereinheit 24 den Verarbeitungsablauf. Falls die Anzahl von Elementen einer solchen Übertragungs-Planungs-Information ”1” ist, rückt die Prioritäts-Bestimmungseinheit 247 den Prozess zu Schritt S64 fort. Falls die Anzahl von Elementen einer solchen Übertragungs-Planungs-Information ”2” oder größer ist, rückt die Prioritäts-Bestimmungseinheit 247 den Prozess zu Schritt S65 fort.
-
Im Schritt S64 entscheidet die Prioritäts-Bestimmungseinheit 247, dass das Element der Übertragungs-Planungs-Information, empfangen aus der Prozess-Umschalteinheit 141, mit anderen Worten das einzelne Element von Übertragungs-Planungs-Information, das im Speicher 247a gespeichert ist, die Übertragungs-Planungs-Information der höchsten Priorität ist. Der Prozess schreitet dann zu Schritt S69 fort.
-
Im Schritt S65 berechnet die Prioritäts-Bestimmungseinheit 247 ein Zugriffsintervall Da für jedes Element von im Speicher 274a gespeicherter Übertragungs-Planungs-Information. Der Prozess schreitet dann zu Schritt S66 fort. Das Zugriffsintervall Da wird durch Ausdruck (2) in der ersten Ausführungsform berechnet.
-
Als Nächstes entscheidet in Schritt S66 die Prioritäts-Bestimmungseinheit 247, ob die Zugriffsintervalle Da, die für jedes Element der Übertragungs-Planungs-Information im Schritt S65 berechnet sind, im Wesentlichen gleich sind oder nicht. Falls die Differenzen zwischen den Zugriffsintervallen Da der Elemente von Übertragungs-Planungs-Information innerhalb eines voreingestellten Toleranzbereichs sind, entscheidet die Prioritäts-Bestimmungseinheit 247 nun, dass sie im Wesentlichen gleich sind (Ja in S66), und rückt den Prozess zu Schritt S67 fort. Falls sie nicht im Wesentlichen gleich sind (Nein in S66), rückt die Prioritäts-Bestimmungseinheit 247 den Prozess zu Schritt S68 fort. Die Toleranz des Zugriffsintervalls Da weist einen voreingestellten Wert wie etwa beispielsweise ”±10” auf.
-
Im Schritt S67 bestimmt die Prioritäts-Bestimmungseinheit 247 die Übertragungs-Planungs-Information höchster Priorität auf Basis der Zeiten seit dem letzten Zugriff R5 entsprechend den Elementen von Übertragungs-Planungs-Information.
-
Beispielsweise stellt die Prioritäts-Bestimmungseinheit 247 die an der Startadresse gespeicherten Adressen A5 kontinuierlicher Bereichsspalte 201c der im Speicher 247a gespeicherten Planungs-Verwaltungsinformation 201 der Zugriffsverwaltungseinheit 248 bereit und erfasst die Zeiten seit dem letzten Zugriff R5 in Reaktion darauf. Die Prioritäts-Bestimmungseinheit 247 entscheidet dann, dass die Übertragungs-Planungs-Information mit der größten Zeit seit dem letzten Zugriff R5 die Übertragungs-Planungs-Information höchster Priorität ist. Der Prozess schreitet nun zu Schritt S69 fort.
-
Im Schritt S68 entscheidet aus den Zugriffsintervallen Da für alle im Schritt S65 berechneten Übertragungs-Planungs-Informationen die Prioritäts-Bestimmungseinheit 247, dass die Übertragungs-Planungs-Information mit dem kleinsten Zugriffsintervall Da die Übertragungs-Planungs-Information höchster Priorität ist. Der Prozess schreitet dann zu Schritt S69 fort.
-
Im Schritt S69 nimmt auf Basis der im Schritt S64, S67 und S68 bestimmten Übertragungs-Planungs-Information höchster Priorität die Prioritäts-Bestimmungseinheit 247 die in der entsprechenden Startadresse der kontinuierlichen Bereichsspalte 201c in der Plan-Verwaltungsinformation 201 gespeicherte Adresse als die Startadresse Am des kontinuierlichen Bereichs, in welchem die zu übertragenden Daten gespeichert sind. Die Stationsauswahl-Steuereinheit 207 stellt dann der Plan-Verarbeitungseinheit 243 die Startadresse Am des kontinuierlichen Bereichs bereit, in welchem die zu übertragenden Daten gespeichert sind, und das Zugriffsintervall Da. Der Prozess schreitet nun zu Schritt S70 fort.
-
Im Schritt S70 ändert aus der im Speicher 247a gespeicherten Plan-Verwaltungsinformation 201 die Prioritäts-Bestimmungseinheit 247 den Übertragungsstatus der Übertragungs-Planungs-Information, welche sie der Plan-Verarbeitungseinheit 243 in Schritt S69 bereitstellt, von ”0 (Übertragungswarten)” zu ”1 (Übertragung im Fortgang)”. Der Prozess kehrt dann zu Schritt S60 zurück.
-
Durch Bestimmen der Übertragungs-Planungs-Information der höchsten Priorität aus allen im Speicher 247a gespeicherten Übertragungs-Planungs-Informationen auf Basis der aus der aktuellen Adresse A3 berechneten Zugriffsintervalle Da, selbst für dringende Übertragungs-Planungs-Information, kann die Prioritäts-Bestimmungseinheit 247 die Übertragung der erforderlichen Daten abschließen, bevor der Zugriffs-Master 1 die Gruppe von Anweisungen ausführt, welche durch die Startadresse PROC angezeigt sind, was eine Verschwendung des Cache-Speichers 110 verhindert.
-
Zusätzlich kann durch Bestimmen der Übertragungs-Planungs-Information höchster Priorität aus allen im Speicher 247a gespeicherten Übertragungs-Planungs-Informationen auf Basis der aus den aktuellen Adressen A3 und der Zeit seit dem letzten Zugriff R5, ermittelt aus der Zugriffsverwaltungseinheit 248 gespeicherten Übertragungs-Planungs-Informationen, die Prioritäts-Bestimmungseinheit 247 das Cache-Trefferverhältnis selbst für einen kontinuierlichen Bereich im Hauptspeicher 10 verbessern, der möglicherweise durchaus aus dem Cache-Speicher 110 freigegeben werden könnte.
-
Die 20 bis 24 sind schematische Diagramme, die Beziehungen für zwei Elemente von Übertragungs-Planungs-Information zeigen, welche die Prioritäts-Bestimmungseinheit 247 aus der Prozess-Umschalteinheit 141 empfängt, von den Größen der kontinuierlichen Bereiche, in welchen die zu übertragenden Daten gespeichert sind, und den Startadressen der Gruppen von Anweisungen, die sich auf die kontinuierlichen Bereiche beziehen, in welchen die zu übertragenden Daten gespeichert werden. Die vertikale Achse jeder der 20 bis 24 repräsentiert die Größe des kontinuierlichen Bereichs, in welchem die zu übertragenden Daten gespeichert werden; die horizontale Achse repräsentiert Zeit. Zur Zeit ”0” startet die Prioritäts-Bestimmungseinheit 247 den Prozess des Bestimmens der Prioritätslevel von Übertragungs-Planungs-Information #1 und Übertragungs-Planungs-Information #2, welche sie aus der Prozess-Umschalteinheit 141 empfangen hat. Auf der horizontalen Achse repräsentieren t#1 und t#2 die Zeitpunkte, zu welchen die Ausführung die Startadressen PROC1 und PROC2 der Anweisungsgruppen erreicht, die sich auf die kontinuierlichen Bereiche beziehen, in welchen die zu übertragenden Daten gespeichert sind, wie jeweils durch die Übertragungs-Planungs-Information #1 und #2 angezeigt, die aus der Prozess-Umschalteinheit 141 empfangen werden. H1*V1 und H2*V2 repräsentieren die Größen der kontinuierlichen Bereiche, in welchen die zu übertragenden Daten gespeichert sind, wie jeweils durch die Übertragungs-Planungs-Information #1 und #2 angezeigt, die aus der Prozess-Umschalteinheit 141 empfangen werden.
-
20 und 21 zeigen Beispiele, in denen die Zugriffsintervalle Da von zwei Elementen von Übertragungs-Planungs-Information bestimmt sind, in Schritt S66 in 19 nicht im Wesentlichen gleich zu sein.
-
20 zeigt ein Beispiel, in welchem im Vergleich zur Übertragungs-Planungs-Information #2 bei der Übertragungs-Planungs-Information #1 die Größe des kontinuierlichen Bereichs, in welchem die zu übertragenden Daten gespeichert sind, größer ist und die Nummer-Anweisungsschritte zur Startadresse der Gruppe von Anweisungen, die sich auf den kontinuierlichen Bereich beziehen, in welchem die zu übertragenden Daten gespeichert sind, kleiner ist, mit anderen Worten die Zeit bis zur Ausführung der Anweisungsgruppe, die sich auf den kontinuierlichen Bereich bezieht, in welchen die zu übertragenden Daten gespeichert sind, kürzer ist. In diesem Fall ist der im Schritt S65 in 19 berechnete Wert des Zugriffsintervalls Da für die Übertragungs-Planungs-Information #1 um mehr als die Toleranz kleiner als der Wert für die Übertragungs-Planungs-Information #2. Entsprechend wird im Schritt S66 in 19 festgestellt, dass die Zugriffsintervalle Da der Übertragungs-Planungs-Information im Wesentlichen nicht gleich sind (Nein in S66), und wird festgestellt, dass die Übertragungs-Planungs-Information #1 mit dem kürzeren Zugriffsintervall Da die Übertragungs-Planungs-Information höchster Priorität ist.
-
21 ist ein Beispiel entgegengesetzt zu dem einem in 20: die Prioritäts-Bestimmungseinheit 247 entscheidet, dass die Übertragungs-Planungs-Information #2 die Übertragungs-Planungs-Information höchster Priorität ist. In 21 ist im Vergleich zur Übertragungs-Planungs-Information #1 bei der Übertragungs-Planungs-Information #2 die Größe des kontinuierlichen Bereichs, in welchem die zu übertragenden Daten gespeichert sind, größer, und ist die Anzahl von Anweisungsschritten zur Startadresse der Anweisungsgruppe, die sich auf den kontinuierlichen Bereich bezieht, in welchem die zu übertragenden Daten gespeichert sind, größer, mit anderen Worten ist die Zeit bis zur Ausführung der Anweisungsgruppe, die sich auf den kontinuierlichen Bereich bezieht, in welchem die zu übertragenden Daten gespeichert werden, länger. Der Zeitraum, bis die Ausführung der Anweisungsgruppe, die sich auf den kontinuierlichen Bereich bezieht, in welchem die zu übertragenden Daten gespeichert sind, beginnt, ist entsprechend in der Übertragungs-Planungs-Information #2 länger, aber die Differenz zwischen den Startadresse PROC1 und PROC2 der sich auf den kontinuierlichen Bereich beziehenden Anweisungen, in welchen die zu übertragenden Daten gespeichert sind, ist klein. Der Wert des Zugriffsintervalls Da für die Übertragungs-Planungs-Information #2, berechnet in Schritt S65 in 19 ist daher um mehr als die Toleranz kürzer als der Wert für die Übertragungs-Planungs-Information #1. Entsprechend wird im Schritt S66 in 19 festgestellt, dass die Zugriffsintervalle Da der Übertragungs-Planungs-Information im Wesentlichen nicht gleich sind (Nein in S66), und wird festgestellt, dass die Übertragungs-Planungs-Information #2 mit dem kürzeren Zugriffsintervall Da die Übertragungs-Planungs-Information höchster Priorität ist.
-
Die Prioritäts-Bestimmungseinheit 247 bestimmt, wie oben beschrieben, dass die Übertragungs-Planungs-Information mit dem kleinsten Zugriffsintervall Da die Übertragungs-Planungs-Information höchster Priorität ist, und stellt der Plan-Verarbeitungseinheit 243 das berechnete Zugriffsintervall Da und die Startadresse Am des kontinuierlichen Bereichs, in welchem die zu übertragenden Daten, welche durch die Übertragungs-Planungs-Information höchster Priorität angezeigt sind, gespeichert sind, bereit. Dies eliminiert die Notwendigkeit, dass die Plan-Verarbeitungseinheit 243 Zugriffsintervalle Da berechnet, was den Start des Planungsprozesses beschleunigt, so dass die Effizienz des Datentransfers aus dem Hauptspeicher 10 zum Cache-Speicher 110 verbessert werden kann.
-
22 bis 24 sind Beispiele, in denen die Zugriffsintervalle Da der zwei Elemente von Übertragungs-Planungs-Information als im Wesentlichen gleich festgestellt werden.
-
In 22 ist in sowohl der Übertragungs-Planungs-Information #1 als auch der Übertragungs-Planungs-Information #2 die Anzahl von Anweisungsschritten zur Startadresse der Anweisungsgruppe, die sich auf den kontinuierlichen Bereich bezieht, in welchem die zu übertragenden Daten gespeichert sind, in Relation zur Größe des kontinuierlichen Bereichs, in welchem die zu übertragenden Daten gespeichert sind, klein. Aus diesem Grund sind die Werte der Zugriffsintervalle Da, berechnet in Schritt S65 in 19, beide gleich klein und werden die Zugriffsintervalle Da beider Elemente von Übertragungs-Planungs-Information als im Wesentlichen gleich festgestellt.
-
In 23 ist die Größe des kontinuierlichen Bereichs, in welchem die zu übertragenden Daten gespeichert sind, sehr klein, ist aber die Anzahl von Anweisungsschritten zur Startadresse der Anweisungsgruppe, die sich auf den kontinuierlichen Bereich bezieht, in welchem die zu übertragenden Daten gespeichert sind, auch klein. Bei der Übertragungs-Planungs-Information #2 ist umgekehrt die Größe des kontinuierlichen Bereichs, in welchem die zu übertragenden Daten gespeichert werden, groß, ist aber die Anzahl von Anweisungsschritten zur Startadresse der Anweisungsgruppe, die sich auf den kontinuierlichen Bereich bezieht, in welchem die zu übertragenden Daten gespeichert sind, auch groß. Aus diesem Grund sind die in Schritt S65 in 19 berechneten Werte der Zugriffsintervalle Da beide etwa gleich klein und werden die Zugriffsintervalle Da beider Elemente von Übertragungs-Planungs-Information als im Wesentlichen gleich festgestellt.
-
In 24 ist in der Übertragungs-Planungs-Information #1 die Größe des kontinuierlichen Bereichs, in welchem die zu übertragenden Daten gespeichert sind, groß, und ist die Anzahl von Anweisungsschritten zur Startadresse der Gruppe von Anweisungen, die sich auf den kontinuierlichen Bereich beziehen, in welchem die zu übertragenden Daten gespeichert werden, auch recht groß. Bei der Übertragungs-Planungs-Information #2 ist die Größe des kontinuierlichen Bereichs, in welchem die zu übertragenden Daten gespeichert sind, sehr groß und ist die Anzahl von Anweisungsschritten zur Startadresse der Anweisungsgruppe, die sich auf den kontinuierlichen Bereich bezieht, in welchem die zu übertragenden Daten gespeichert sind, auch sehr groß. Aus diesem Grund sind die in Schritt S65 in 19 berechneten Werte von Zugriffsintervallen Da beide etwa gleich groß und werden die Zugriffsintervalle Da beider Elemente von Übertragungs-Planungs-Information als im Wesentlichen gleich festgestellt.
-
In allen 22 bis 24, falls die Zeit seit dem letzten Zugriff R5 von Übertragungs-Planungs-Information #2 kürzer als diejenige von Übertragungs-Planungs-Information #1 ist, wird dann Übertragungs-Planungs-Information #1, welche die längere Zeit seit letztem Zugriff R5 aufweist, als die Übertragungs-Planungs-Information höchster Priorität im Schritt S67 in 19 bestimmt. Umgekehrt, falls die Zeit seit letztem Zugriff R5 von Übertragungs-Planungs-Information #2 länger als diejenige von Übertragungs-Planungs-Information #1 ist, wird dann die Übertragungs-Planungs-Information #2, welche die längere Zeit seit letztem Zugriff R5 aufweist, in Schritt S67 in 19 festgestellt, die Übertragungs-Planungs-Information höchster Priorität zu sein.
-
Durch Bestimmen der Übertragungs-Planungs-Information mit der längsten Zeit seit letztem Zugriff R5, die Übertragungs-Planungs-Information höchster Priorität zu sein, wie oben beschrieben, selbst gegeben eine Mehrzahl von Elementen von Übertragungs-Planungs-Information, für welche die Zugriffsintervalle Da, welche durch die Prioritäts-Bestimmungseinheit 247 berechnet werden, im Wesentlichen gleich sind, ist es möglich, die Freigabe von kontinuierlichen Bereichen zu verhindern, die hoch wahrscheinlich aus dem Cache-Speicher 110 freigegeben werden, wodurch die Verarbeitung in der Cache-Speichersteuerung 200 beschleunigt wird.
-
Wie in 23 gezeigt, wenn die berechneten Zugriffsintervalle Da beide klein sind und die Differenz zwischen den entsprechenden Startadressen PROC1 und PROC2 der Anweisungsgruppen, die sich auf die individuellen kontinuierlichen Bereiche beziehen, in welchen die zu übertragenden Daten gespeichert werden, die in Übertragungs-Planungs-Information #1 und Übertragungs-Planungs-Information #2 enthalten sind, groß ist, entscheidet die Prioritäts-Bestimmungseinheit 247, dass die Übertragungs-Planungs-Information mit der größten Zeit seit letztem Zugriff R5 die Übertragungs-Planungs-Information höchster Priorität ist, aber dies ist keine Beschränkung. Beispielsweise wenn die Zugriffsintervalle Da gleich oder kleiner einem ersten voreingestellten Schwellenwert sind und die Differenz zwischen den Startadressen PROC1 und PROC2 der Anweisungsgruppen, die sich auf die kontinuierlichen Bereiche beziehen, in welchen die zu übertragenden Daten gespeichert sind, gleich oder größer als ein zweiter voreingestellter Schwellenwert ist, kann die Prioritäts-Bestimmungseinheit 247 entscheiden, dass die Übertragungs-Planungs-Information, in der die Startadresse der Anweisungsgruppe, die sich auf den kontinuierlichen Bereich bezieht, in welchem die zu übertragenden Daten gespeichert sind, am kleinsten ist, die Übertragungs-Planungs-Information höchster Priorität ist. Dies kann eine Verschwendung von Cache-Speicher 110 verhindern, weil der Cache-Speicher 110 Daten nicht unnötiger Weise speichert.
-
Wie in 24 gezeigt, entscheidet die Prioritäts-Bestimmungseinheit 247 auch, dass die Übertragungs-Planungs-Information mit der größten Zeit seit letztem Zugriff R5 die Übertragungs-Planungs-Information höchster Priorität ist, wenn sowohl die Größe des kontinuierlichen Bereichs, in welchem die zu übertragenden Daten gespeichert sind, als auch die Anzahl von Anweisungsschritten zur Startadresse der Anweisungsgruppe, die sich auf den kontinuierlichen Bereich bezieht, in welchem die zu übertragenden Daten gespeichert sind, in der Übertragungs-Planungs-Information #2 größer sind als in der Übertragungs-Planungs-Information #1 und die Werte der im Schritt S65 in 19 berechneten Zugriffsintervalle Da im Wesentlichen gleich sind, aber dies ist keine Beschränkung. Falls beispielsweise die berechneten Zugriffsintervalle Da gleich oder größer einem ersten vorbestimmten Schwellenwert sind, kann die Prioritäts-Bestimmungseinheit 247 warten, bis ein Zugriffsintervall Da gleich oder kleiner als der erste Schwellenwert wird, oder bis die nächste Übertragungs-Planungs-Information eingegeben wird. Dadurch, selbst wenn die Prioritäts-Bestimmungseinheit 247 Übertragungs-Planungs-Information mit einem Zugriffsintervall Da kleiner als demjenigen von zuvor empfangener Übertragungs-Planungs-Information empfängt, kann sie der Verarbeitung der Übertragungs-Planungs-Information mit dem kleineren Zugriffsintervall Da Priorität geben und kann daher den Cache-Speicher 110 effizient verwenden.
-
In dem oben beschriebenen Beispiel gab es zwei Elemente von im Speicher 247a in der Prioritäts-Bestimmungseinheit 247 gespeicherter Übertragungs-Planungs-Information, aber dies mag in der Praxis nicht stimmen. Selbst wenn drei oder mehr Elemente von Übertragungs-Planungs-Information im Speicher 247a gespeichert sind, kann eine Verschwendung von Cache-Speicher 110 verhindert werden, indem die Übertragungs-Planungs-Information höchster Priorität auf Basis der Zugriffsintervalle Da und den Zeiten seit letztem Zugriff in derselben Weise wie oben bestimmt werden.
-
25 ist ein schematisches Diagramm, das ein beispielhaftes Timing-Diagramm des durch die Prioritäts-Bestimmungseinheit 247 durchgeführten Prozesses zeigt. 25 zeigt Timings, zu welchen die aktuelle Adresse A3 und der Anweisungsbefehl C3 aus der Prozess-Umschalteinheit 141 eingegeben werden, Timings, zu welchen die Übertragungs-Planungs-Information höchster Priorität bestimmt wird und Timings, zu welchen die Größe der zu übertragenden verbleibenden Daten sich ändert, basierend auf einer Mehrzahl von Elementen von Übertragungs-Planungs-Information, welche die Prioritäts-Bestimmungseinheit 247 aus der Prozess-Umschalteinheit 141 empfängt.
-
Zur Zeit t20 speichert bei Eingabe einer aktuellen Adresse A3 (1fc00fff) und eines Übertragungs-Planungsbefehls C3 (TRI#1), eingegeben aus der Prozess-Umschalteinheit 141, die Prioritäts-Bestimmungseinheit 247 Übertragungs-Planungs-Information (TR#1) im Speicher 247a auf Basis des Übertragungs-Planungsbefehls C3. Die Prioritäts-Bestimmungseinheit 247 bestimmt dann die Übertragungs-Planungs-Information höchster Priorität. Zur Zeit t20, da TR#1 die einzige Übertragungs-Planungs-Information ist, die empfangen worden ist, entscheidet die Prioritäts-Bestimmungseinheit 247, dass TR#1 die Übertragungs-Planungs-Information höchster Priorität ist. Die Prioritäts-Bestimmungseinheit 247 gibt nun ein Zugriffsintervall Da und die Startadresse Am des kontinuierlichen Bereichs an die LCD-Plan-Verarbeitungseinheit 243 aus und der Übertragungsplan-Prozess beginnt. Die Verarbeitung in der Prioritäts-Bestimmungseinheit 247 wartet dann bis zur Zeit t24, wenn die Plan-Verarbeitungseinheit 243 die Übertragung einer Datenlinie innerhalb der Größe H1*V1 abgeschlossen hat, bezeichnet durch TR#1, des kontinuierlichen Bereichs, in welchem die zu übertragenden Daten gespeichert sind, und das geplante Übertragungs-Statussignal V1 geht in den Übertragungsplan-Verfügbarzustand über (V1 = H).
-
Von Zeit t21 bis Zeit t23 werden die aktuelle Adresse A3 und der an der Prioritäts-Bestimmungseinheit 247 eingegebene Übertragungs-Planungsbefehl C3 aus der Prozess-Umschalteinheit 141 aktualisiert. Die Prioritäts-Bestimmungseinheit 247 speichert Übertragungs-Planungs-Information (TR#2) im Speicher 247a auf Basis des Übertragungs-Planungsbefehls C3 (TR#2), eingegeben zur Zeit t21 und speichert Übertragungs-Planungs-Information (TR#3) im Speicher 247a auf Basis eines Übertragungs-Planungsbefehls C3 (TR#3), eingegeben zur Zeit t23. Jedoch, da das geplante Übertragungs-Statussignal V1 im Übertragungsplanungs-Unverfügbar-Zustand ist (V1 = L), wird die Verarbeitung in der Prioritäts-Bestimmungseinheit 247 wartend gehalten.
-
Als Nächstes beginnt zur Zeit t24, da das geplante Übertragungs-Zustandssignal V1 aus der Plan-Verarbeitungseinheit 243 in den Übertragungsplanungs-Verfügbar-Zustand (V1 = H) übergeht, die Prioritäts-Bestimmungseinheit 247 den Prozess des Bestimmens der Übertragungs-Planungs-Information höchster Priorität.
-
Zur Zeit t25 entscheidet die Prioritäts-Bestimmungseinheit 247, dass TR#3 die Übertragungs-Planungs-Information höchster Priorität ist, und gibt die Startadresse Am des kontinuierlichen Bereichs und ein Zugriffsintervall Da an die Plan-Verarbeitungseinheit 243 aus, wodurch der Planungsprozess gestartet wird.
-
Zur Zeit t27 wird die Übertragung einer Datenlinie im kontinuierlichen Bereich in TR#3 abgeschlossen und geht das geplante Übertragungs-Zustandssignal V1 aus der Plan-Verarbeitungseinheit 243 in den Übertragungsplanungs-Verfügbar-Zustand (V1 = H) über, so dass zur Zeit t24 die Prioritäts-Bestimmungseinheit 247 den Prozess des Bestimmens der Übertragungs-Planungs-Information höchster Priorität startet. Hier wird TR#2 bestimmt, die Übertragungs-Planungs-Information höchster Priorität zu sein.
-
Danach bestimmt ähnlich zu jedem Zeitpunkt, wenn das geplante Übertragungs-Zustandssignal V1 aus der Plan-Verarbeitungseinheit 243 in den Übertragungsplan-Verfügbar-Zustand (V1 = H) übergeht, die Prioritäts-Bestimmungseinheit 247 die Übertragungs-Planungs-Information höchster Priorität und gibt die Startadresse Am und das Zugriffsintervall Da des kontinuierlichen Bereichs in der Übertragungs-Planungs-Information höchster Priorität an die Plan-Verarbeitungseinheit 243 aus. Dann, falls das geplante Übertragungs-Zustandssignal V1 aus der Plan-Verarbeitungseinheit 243 im Übertragungsplan-Unverfügbar-Zustand ist (V1 = L), wird der Prozess in der Prioritäts-Bestimmungseinheit 247 wartend gehalten.
-
Schließlich wird zur Zeit t31 bei Abschluss der Übertragung für die im Speicher 247a in der Prioritäts-Bestimmungseinheit 247 gespeicherten letzten Übertragungs-Planungs-Information (TR#2) das geplante Übertragungs-Zustandssignal V1 aus der Plan-Verarbeitungseinheit 243 in dem Übertragungsplan-Verfügbar-Zustand (V1 = H) gehalten, bis ein Übertragungs-Planungsbefehl C3 aus der Prozess-Umschalteinheit 141 eingegeben wird und die Prozessierung in der Prioritäts-Bestimmungseinheit 247 wartet.
-
Durch Bestimmen der Übertragungs-Planungs-Information höchster Priorität aus allen Elementen von im Speicher 247a gespeicherten Übertragungs-Planungs-Informationen jedes Mal, wenn die Übertragung einer Linie von Daten, welche die voreingestellte Einheitsübertragungsgröße ist, gemäß Übertragungs-Planungs-Information wie oben beschrieben abgeschlossen ist, und Abschließen der Übertragungen, bevor die Anweisungsgruppen, die sich auf die entsprechenden kontinuierlichen Bereiche beziehen, ausgeführt wird, kann die Prioritäts-Bestimmungseinheit 247 die Effizienz des Datentransfers zum Zugriffs-Master 1 verbessern.
-
Als Nächstes wird der durch die Plan-Verarbeitungseinheit 243 in der Datenverarbeitungseinheit 240 ausgeführte Verarbeitungsablauf unter Verwendung eines Flussdiagramms beschrieben.
-
26 ist das Flussdiagramm, welches den Prozess illustriert, wenn die Plan-Verarbeitungseinheit 243 Daten auf Basis eines Übertragungs-Planungsbefehls C3 überträgt. Die Plan-Verarbeitungseinheit 243 startet diesen Prozess, wenn sie als Eingaben ein Treffer-Detektionsergebnis R2, welches einen Cache-Treffer oder einen Cache-Fehltreffer angibt, aus der Treffer-Detektionseinheit 130, und ein Hauptspeicher-Zugriffsintervall Da und die Startadresse Am eines kontinuierlichen Bereichs, in welchem zu übertragende Daten gespeichert sind, aus der Prioritäts-Bestimmungseinheit 247 empfängt.
-
Zuerst entscheidet die Plan-Verarbeitungseinheit 243, ob Daten entsprechend der Startadresse Am im Cache-Speicher 110 vorliegen oder nicht (S80). Hier sind die der Startadresse Am entsprechende Daten solche Daten, die eine ab der Startadresse Am gespeicherte Einheits-Übertragungslänge aufweisen. Die Plan-Verarbeitungseinheit 243 verwendet das Treffer-Detektionsergebnis R2 aus der Treffer-Detektionseinheit 130, um diese Entscheidung zu treffen. Falls die der Startadresse Am entsprechenden Daten nicht im Cache-Speicher 110 vorliegen (Nein in S80), müssen die Daten aus dem Hauptspeicher 10 zum Cache-Speicher übertragen werden, so dass die Plan-Verarbeitungseinheit 243 den Prozess zu Schritt S81 vorrückt. Umgekehrt, falls die der Startadresse Am entsprechenden Daten im Cache-Speicher 110 vorliegen (Ja in S80), müssen die Daten nicht aus dem Hauptspeicher 10 zum Cache-Speicher 110 übertragen werden, so dass die Plan-Verarbeitungseinheit 243 den Prozess zu Schritt S82 vorrückt, ohne die Daten zu übertragen.
-
Im Schritt S81 erteilt die Plan-Verarbeitungseinheit 243 der Hauptspeicherzugriffs-Arbitrierungseinheit 146 eine Anweisung zum Übertragen der Daten aus dem Hauptspeicher 10 zum Cache-Speicher 110 im aus der Prioritäts-Bestimmungseinheit 247 eingegebenen Zugriffsintervall Dd. Nach Empfang einer Anweisung zur Durchführung einer Übertragung liest die Hauptspeicherzugriffs-Arbitrierungseinheit 146 die zu übertragenden Daten aus dem Hauptspeicher 10 und stellt die Daten der Plan-Verarbeitungseinheit 243 bereit. Die Plan-Verarbeitungseinheit 243 stellt die bereitgestellten Daten der Cache-Speicherzugriffs-Arbitrierungseinheit 145 bereit, um die Daten in den Cache-Speicher 110 geschrieben zu bekommen. Die nachfolgende Verarbeitung durch die Speicher-Verwaltungseinheit 120 ist die gleiche wie in der ersten Ausführungsform, so dass eine Beschreibung weggelassen wird.
-
Als Nächstes entscheidet die Plan-Verarbeitungseinheit 243, ob die Übertragungsabschlussgröße gleich oder größer als die Größe einer Linie ist, oder nicht, welche die Einheits-Übertragungsgröße ist (S82). Falls die Übertragungsabschlussgröße kleiner als die Größe einer Linie ist (Nein in S82), geht der Prozess zu Schritt S80 zurück; falls die Übertragungsabschlussgröße gleich oder größer als die Größe einer Linie ist (Ja in S82), schreitet der Prozess zu Schritt S83 fort.
-
Im Schritt S83 stellt die Plan-Verarbeitungseinheit 243 das geplante Übertragungs-Statussignal V1 auf den Übertragungsplan-Verfügbar-Zustand (V1 = H) ein, was anzeigt, dass die Übertragung einer Datenlinie ab der Startadresse Am des kontinuierlichen Bereichs, in welchem die zu übertragenden Daten gespeichert sind, abgeschlossen worden ist, gibt das Signal an die Prioritäts-Bestimmungseinheit 247 aus und beendet den Planungsprozess.
-
Durch Übertragen einer Linie von Daten zur Zeit in einer aus der Prioritäts-Bestimmungseinheit 247 eingegebenen Übertragungs-Planungs-Information, wie oben beschrieben, kann die Plan-Verarbeitungseinheit 243 den Cache-Speicher 110 effizient verwenden.
-
Obwohl die Übertragung jeweils einer Datenlinie aus dem kontinuierlichen Bereich, bezeichnet durch den Übertragungs-Planungsbefehl C3, in welchem die zu übertragenden Daten gespeichert sind, als ein Beispiel in dem obigen Verarbeitungsablauf der Plan-Verarbeitungseinheit 243 beschrieben worden ist, ist dieses Beispiel nicht beschränkend. Beispielsweise kann die Prioritäts-Bestimmungseinheit 247 die Übertragungs-Planungs-Information höchster Priorität bestimmen, wann immer eine aktuelle Adresse A3 aus der Prozess-Umschalteinheit 141 zur Prioritäts-Bestimmungseinheit 247 eingegeben wird, und sie an die Plan-Verarbeitungseinheit 243 ausgeben, und kann die Plan-Verarbeitungseinheit 243 einen Übertragungsplan-Prozess entsprechend durchführen. In diesem Fall ist es beim Berechnen des Zugriffsintervall Da notwendig, die Vor-Ladezeit zu berücksichtigen, die für jeden Zugriff auf Bereiche mit Unterschiedlichen Reihen-(Row)Adressen im Hauptspeicher 10 auftritt. Dies ermöglicht es, Übertragungen aus dem Hauptspeicher 10 zum Cache-Speicher 110 durchzuführen, selbst für eine Mehrzahl von Elementen von Übertragungs-Planungs-Information mit kleinen Zugriffsintervallen Da, was zu einem Anstieg beim Cache-Treffer-Verhältnis führt.
-
Ein beispielhaftes Verfahren des Berechnens des Zugriffsintervalls Da, indem die Vorladezeit gestattet wird, wird nunmehr beschrieben.
-
Zuerst bestimmt die Prioritäts-Bestimmungseinheit 247, ob die Vorladezeit berücksichtigt werden muss oder nicht. Eine Vorladezeit tritt aufgrund von unterschiedlichen Reihen-Adressen im Hauptspeicher 10 auf. Daher speichert die Prioritäts-Bestimmungseinheit 247 die Adresse der Daten im kontinuierlichen Bereich in der zuvor bestimmten Übertragungs-Planungs-Information höchster Priorität im Speicher 247a und vergleicht Reihenadressen, um zu entscheiden, ob es eine Differenz zwischen der Reihenadresse in der Übertragungs-Planungs-Information der vorherigen Übertragung und der Reihenadresse in der Übertragungs-Plan-Funktion der aktuellen Übertragung gibt oder nicht. Falls es eine Differenz zwischen den Reihenadressen gibt, gestattet die Prioritäts-Bestimmungseinheit 247 eine Vorladezeit. Da das Zugriffsintervall Da die Anzahl von Anweisungsschritten ist, die für eine Übertragung einer Einheits-Übertragungsgröße erforderlich ist, wird die Vorladezeit Tpri (Zyklen) in eine Anzahl von Anweisungsschritten umgewandelt. Die Umwandlung der Vorladezeit Tpri in eine Anzahl von Anweisungsschritten wird durch die nachfolgende Gleichung (3) ausgeführt.
-
[Mathematischer Ausdruck 1]
-
-
Umgewandelte Vorladung Spri = (Anzahl von Zyklen (Tos), die für einen Anweisungsschritt genommen wird) ÷ (Vorladezeit Tpri) (3)
-
Hier wird in Gleichung (3) die Prioritäts-Bestimmungseinheit 247 vorab mit einem Timer versehen, misst sie die Anzahl von Zyklen Tos, die es braucht, um einen gemessenen Anweisungsschritt auszuführen und verwendet diesen Wert zur Umwandlung der Vorladezeit. Die Anzahl von Zyklen Tos, die zum Ausführen eines Anweisungsschritts genommen wird, ist die Anzahl von Zyklen ab der vorherigen Anweisung zur aktuellen Anweisung oder die Durchschnittszahl von Zyklen, die es pro Anweisungsausführung bis zur aktuellen Anweisung erfordert.
-
Das die Vorladezeit gestattende Zeitintervall Dap wird durch Gleichung (4) unter Verwendung der durch Ausdruck (3) berechneten, umgewandelten Vorladung Spri berechnet.
-
[Mathematischer Ausdruck 2]
-
-
Dap = (Zugriffsintervall Da) – (umgewandelte Vorladung Spri) (4)
-
Als Übertragungseinheit kann die Plan-Verarbeitungseinheit 243 die Größe H*V des kontinuierlichen Bereichs verwenden, in welchem die zu übertragenden Daten gespeichert sind, was durch Übertragungs-Planungs-Information angezeigt wird. In diesem Fall wird die Größe H*V des kontinuierlichen Bereichs, in welchem die zu übertragenden Daten gespeichert sind, aus der Prioritäts-Bestimmungseinheit 247 der Plan-Verarbeitungseinheit 243 bereitgestellt, und nachdem die Übertragung abgeschlossen ist, wird das geplante Übertragungs-Statussignal V1 in dem Übertragungsplan-Verfügbar-Zustand (V1 = 1) gebracht. Dies kann die beim Bestimmen der Übertragungs-Planungs-Information höchster Priorität involvierte Verarbeitung reduzieren und entsprechend die zum Bestimmen der Übertragungs-Planungs-Information höchster Priorität erforderliche Berechnungszeit verkürzen, was die Effizienz des Datentransfers aus dem Hauptspeicher 10 zum Cache-Speicher 110 verbessern kann.
-
27 ist eine schematische Zeichnung, die ein beispielhaftes Timing-Diagramm des durch die Prioritäts-Bestimmungseinheit 247 ausgeführten Prozesses zeigt, wenn die Übertragungseinheit in der Plan-Verarbeitungseinheit 243 auf die Größe H*V des kontinuierlichen Bereichs eingestellt wird, in welchem die zu übertragenden Daten gespeichert sind, wie durch Übertragungs-Planungs-Information angegeben. 27 zeigt Timings, zu welchen aktuelle Adressen A3 und Anweisungsbefehle C3 aus der Prozess-Umschalteinheit 141 eingegeben werden, Timings, zu welchen die Übertragungs-Planungs-Information höchster Priorität bestimmt wird, und Timings, zu welchen die Größe des verbleibenden kontinuierlichen Bereichs im kontinuierlichen Bereich, in welchem die zu übertragenden Daten gespeichert sind, auf Basis einer Mehrzahl von Elementen von Übertragungs-Planungs-Information umgeschaltet wird, welche die Prioritäts-Bestimmungseinheit 247 aus der Prozess-Umschalteinheit 141 empfängt.
-
Zur Zeit t30, wenn eine aktuelle Adresse A3 (1fc00fff) und ein Übertragungs-Planungsbefehl C3 (TR1#1) aus der Prozess-Umschalteinheit 141 eingegeben werden, speichert die Prioritäts-Bestimmungseinheit 247 Übertragungs-Planungs-Information (TR#1) im Speicher 247a auf Basis des Übertragungs-Planungsbefehls C3. Die Prioritäts-Bestimmungseinheit 247 bestimmt dann die Übertragungs-Planungs-Information höchster Priorität. Zur Zeit t30 ist TR#1 die einzige Übertragungs-Planungs-Information, welche die Prioritäts-Bestimmungseinheit 247 empfangen hat, so dass die Prioritäts-Bestimmungseinheit 247 entscheidet, dass TR#1 die Übertragungs-Planungs-Information höchster Priorität ist. Die Prioritäts-Bestimmungseinheit 247 gibt dann an die Plan-Verarbeitungseinheit 243 die Startadresse PROC1 des kontinuierlichen Bereichs, in welchem die zu übertragenden Daten gespeichert sind, und die Größe H*V des kontinuierlichen Bereichs, in welchem die zu übertragenden Daten gespeichert sind, wie durch TR#1 angezeigt, und das berechnete Zugriffsintervall Da aus, und der Planungsprozess beginnt.
-
Von Zeit t31 bis t35 werden die aus der Prozess-Umschalteinheit 141 an der Prioritäts-Bestimmungseinheit 247 eingegebene aktuelle Adresse A3 und Übertragungs-Planungsbefehl C3 aktualisiert. Die Prioritäts-Bestimmungseinheit 247 speichert die Übertragungs-Planungs-Information (TR#2) im Speicher 247a auf Basis eines zur Zeit t31 eingegebenen Übertragungs-Planungsbefehls C3 (TR#2), und speichert Übertragungs-Planungs-Information (TR#3) im Speicher 247a auf Basis eines zur Zeit t33 eingegebenen Übertragungs-Planungsbefehls C3 (TR#3). Jedoch ist das geplante Übertragungs-Zustandssignal V1 aus der Plan-Verarbeitungseinheit 243 im Übertragungs-Unverfügbar-Zustand (V1 = L), so dass die Verarbeitung in der Prioritäts-Bestimmungseinheit 247 wartend gehalten wird.
-
Zur Zeit t35 geht das geplante Übertragungs-Zustandssignal V1 zum Übertragungsplan-Verfügbar-Zustand (V1 = H), so dass die Prioritäts-Bestimmungseinheit 247 die nächste Übertragungs-Planungs-Information höchster Priorität bestimmt.
-
Zur Zeit t36 entscheidet die Prioritäts-Bestimmungseinheit 247, dass TR#3 die Übertragungs-Planungs-Information höchster Priorität ist. Die Prioritäts-Bestimmungseinheit 247 gibt dann an die Plan-Verarbeitungseinheit 243 die Startadresse PROC3 des kontinuierlichen Bereichs, in welchem zu übertragende Daten gespeichert sind, und die Größe H*V des kontinuierlichen Bereichs, in welchem zu übertragende Daten gespeichert sind, wie durch TR#3 angezeigt, was als Übertragungs-Planungs-Information höchster Priorität bestimmt worden ist, und das berechnete Zugriffsintervall Da aus, und der Planungsprozess beginnt. Die Verarbeitung in der Prioritäts-Bestimmungseinheit 247 wird dann wartend gehalten, bis das geplante Übertragungs-Statussignal V1, eingegeben aus der Plan-Verarbeitungseinheit 243, in den Übertragungsplan-Verfügbar-Zustand übergeht (V1 = H).
-
Danach, in derselben Weise wie oben, wenn das geplante Übertragungs-Zustandssignal V1 zum Übertragungsplan-Verfügbar-Zustand (V1 = H) zur Zeit t37 übergeht, bestimmt die Prioritäts-Bestimmungseinheit 247 die Übertragungs-Planungs-Information höchster Priorität wieder und gibt an die Plan-Verarbeitungseinheit 243 die Startadresse PROC2 des kontinuierlichen Bereichs, in welchem die zu übertragenden Daten gespeichert sind, und die Größe H2*V2 des kontinuierlichen Bereichs, in welchem die zu übertragenden Daten gespeichert sind, wie durch die Übertragungs-Planungs-Information #2, die als die Übertragungs-Planungs-Information höchster Priorität bestimmt worden ist, angezeigt, und das berechnete Zugriffsintervall Da aus. Die Verarbeitung wartet dann, bis das aus der Plan-Verarbeitungseinheit 243 eingegebene, geplante Übertragungs-Zustandssignal V1 in den Übertragungsplan-Verfügbar-Zustand übergeht (V1 = H).
-
Die oben beschriebene Zugriffsverwaltungseinheit 248 speichert die Zeit, die seit dem letzten Zugriff verstrichen ist, im Speicher 248a als eine Zeit seit letztem Zugriff Td, aber dies ist keine Beschränkung. Beispielsweise kann die Zugriffsverwaltungseinheit 248 die Zeit seit letztem Zugriff Td rücksetzen, wenn die Zeit, die ab dem vorigen Zugriff verstrichen ist, die durch das LRU-Verfahren zum Entscheiden über eine Kandidatenlinie, die aus den Cache-Linien im Cache-Speicher 110 freizugeben ist, gesetzte Zeit übersteigt. Dies ermöglicht es, dass Übertragungs-Planungs-Information zum Übertragen von in einem kontinuierlichen Speicher im Hauptspeicher 10 gespeicherten Daten, die in einer Cache-Linie gespeichert sind, die sehr wahrscheinlich aus dem Cache-Speicher 110 freigegeben wird, auf bevorzugter Basis an die Plan-Verarbeitungseinheit 243 ausgegeben wird. Entsprechend ist es möglich, die Anzahl von Malen zu reduzieren, welche die Aufhebe-Verarbeitungseinheit 144 den Freigabeprozess ausführt, wodurch die Verarbeitung in der Cache-Speichersteuerung 200 beschleunigt wird.
-
Die oben beschriebene Cache-Speichersteuerung 200 ist als einen einzelnen Zugriffs-Master 1 aufweisend beschrieben worden, aber dieses Beispiel ist nicht beschränkend. Es können mehrere Zugriffs-Master 1 mit der Cache-Speichersteuerung 200 verbunden sein. 28 ist ein schematisches Diagramm, das ein Beispiel zeigt, in welchem zwei Zugriffs-Master, Zugriffs-Master 1#1 und Zugriffs-Master 1#2, mit einer Cache-Speichersteuerung 300 verbunden sind.
-
Wenn mehrere Zugriffs-Master 1 mit der Cache-Speichersteuerung 300 verbunden sind, speichert die Prozess-Umschalteinheit 341 eine aktuelle Adresse A3 für jeden der Zugriffs-Master in ihrem Speicher 341a. Entsprechend, falls eine Anweisungsadresse A1#1 oder A1#2, die aus dem verbundenen Zugriffs-Master 1#1 oder 1#2 eingegeben wird, eine im in 7 gezeigten Anweisungsbereich 190 enthaltene Adresse ist, speichert die Prozess-Umschalteinheit 341 sie im Speicher 341a als die aktuelle Adresse A3 des Zugriffs-Masters 1#1 oder 1#2, aus welchem die Anweisungsadresse eingegeben wurde, oder falls die aktuelle Adresse A3 des Zugriffs-Masters 1#1 oder 1#2 bereits gespeichert worden ist, aktualisiert die Prozess-Umschalteinheit 341 den gespeicherten Wert. Dann gibt die Prozess-Umschalteinheit 341 an die Prioritäts-Bestimmungseinheit 347 die als die aktuelle Adresse A3 gespeicherte Anweisungsadresse und eine für jeden Zugriffs-Master voreingestellte Zugriffs-Master-Nummer Mn, die Zugriffs-Master 1#1 oder 1#2 anzeigt, aus. Falls ein Anweisungsbefehl C1#1 oder C1#2, eingegeben aus dem Zugriffs-Master 1#1 oder 1#2, weder ein Lesen noch ein Schreiben ist, gibt die Prozess-Umschalteinheit 341 einen Anweisungsbefehl C1#1 oder C1#2 als einen Übertragungs-Planungsbefehl C3 an die Prioritäts-Bestimmungseinheit 347 aus.
-
Als Nächstes empfängt die Prioritäts-Bestimmungseinheit 347 den Übertragungs-Planungsbefehl C3, aktuelle Adresse A3 und Zugriffs-Master-Nummer Mn aus der Prozess-Umschalteinheit 341. Die Prioritäts-Bestimmungseinheit 347 speichert dann die empfangene Zugriffs-Master-Nummer Mn, die Startadresse MM_ADDR des kontinuierlichen Bereichs, auf den durch den Zugriffs-Master 1 referenziert wird, die Größe H*V des kontinuierlichen Bereichs und die Startadresse PROC der Anweisungsgruppe, welche die Funktion bildet, die sich auf den kontinuierlichen Bereich bezieht, welche durch den empfangenen Übertragungs-Planungsbefehl C3 angegeben sind, in einem Speicher 347a (Übertragungs-Plan-Speichereinheit). Die Prioritäts-Bestimmungseinheit 347 speichert auch die empfangene Zugriffs-Master-Nummer Mn und empfangene aktuelle Adresse A3 in einem Speicher 347b (aktuelle Adressspeichereinheit). Die Prioritäts-Bestimmungseinheit 347 berechnet Zugriffsintervalle Da auf Basis der aktuellen Adresse jedes Zugriffs-Masters 1 und bestimmt Übertragungs-Planungs-Information höchster Priorität.
-
29 ist ein schematisches Diagramm, das im Speicher 347a in der Prioritäts-Bestimmungseinheit 347 gespeicherte Plan-Verwaltungsinformation zeigt. Die Plan-Verwaltungsinformation 301 hat eine Reihenfolge-von Ankunft-Spalte 301a, eine Zugriffs-Master-Nummernspalte 301f, eine Startadressen-von-Referenzier-Anweisungsgruppen-Spalte 301b, eine Startadresse-von-kontinuierlichem-Bereichsspalte 301c, eine Rest-Übertragungsgrößenspalte 301d und eine Übertragungszustandsspalte 301e. Die Reihenfolge-von-Ankunft-Spalte 301a, Startadresse-von-Referenzier-Anweisungsgruppen-Spalte 301b, Startadresse-von-kontinuierlichen-Bereichsspalte 301c, Rest-Übertragungsgrößenspalte 301d und Übertragungszustandsspalte 301e in 29 ähneln der Reihenfolge-von-Ankunft-Spalte 201a, Startadresse-von-Referenzier-Anweisungsgruppenspalte 201b, Startadresse-von-kontinuierlichem-Bereichsspalte 201c, Rest-Übertragungsgrößenspalte 201d und Übertragungszustandsspalte 201e in 17, so dass Beschreibungen weggelassen werden.
-
Die Zugriffs-Master-Nummern-Spalte 301f speichert die Zugriffs-Master-Nummer Mn, die aus der Prozess-Umschalteinheit 341 geliefert wird.
-
30 ist ein schematisches Diagramm, das im Speicher 347b in der Prioritäts-Bestimmungseinheit 347 gespeicherte aktuelle Adressverwaltungs-Information 303 zeigt. Die aktuelle Adressverwaltungs-Information beinhaltet eine Zugriffs-Master-Nummern-Spalte 303a und eine aktuelle Adressenspalte 303b.
-
Die Zugriffs-Master-Nummern-Spalte 303a speichert Zugriffs-Master-Nummern Mn, die aus der Prozess-Umschalteinheit 341 geliefert werden.
-
Die aktuelle Adressenspalte 303b speichert aktuelle Adressen A3, die aus der Prozess-Umschalteinheit 341 geliefert werden.
-
Ein System, in welchem eine Mehrzahl von Zugriffs-Mastern 1 mit der Cache-Speichersteuerung 300 verbunden sind, kann entworfen werden, indem die Prioritäts-Niveaus eine Mehrzahl von Elementen von aus der Mehrzahl von Zugriffs-Mastern 1, die mit der Cache-Speichersteuerung 300 verbunden sind, eingegebenen Übertragungs-Planungs-Informationen bestimmt werden und Übertragungen aus dem Hauptspeicher 10 an den Cache-Speicher 110 ermöglicht werden, anhand des Programmfortschrittsstatus in jedem Zugriffs-Master 1 gemacht zu werden, wie oben beschrieben. Der Maßstab des Systems, das konstruiert wird, kann daher erhöht werden.
-
Die oben beschriebenen Cache-Speichersteuerungen 100 bis 300 bezeichnen einen Datenbereich im Hauptspeicher 10 als einen kontinuierlichen Bereich, in dem zu übertragende Daten gespeichert sind, wie durch Übertragungs-Planungs-Information angegeben, doch ist dies kein Beschränkung. Der kontinuierliche Bereich, in dem die zu übertragenden Daten gespeichert sind, kann ein Anweisungsbereich im Hauptspeicher 10 sein. In diesem Fall kann die Startadresse PROC der Anweisungsgruppe, die sich auf den kontinuierlichen Bereich bezieht, in dem durch die Übertragungs-Planungs-Information bezeichnete, zu übertragende Daten gespeichert sind, die Adresse der Anweisung sein, genau bevor die Anweisungen im kontinuierlichen Bereich, die zum Anweisungsbereich im Hauptspeicher 10 gehören, aus welchem die Übertragung vorgenommen wird, ausgeführt werden. Daher, selbst wenn der Zugriffs-Master 1 eine Verzweigungsanweisung durchführt, kann beispielsweise die Gruppe von Anweisungen am Verzweigungsziel vor Ausführung an den Cache-Speicher 110 übertragen werden, was eine Reduktion bei der Betriebsgeschwindigkeit des Zugriffs-Masters 1 verhindert.
-
Die oben beschriebenen Prozess-Umschalteinheiten 141 und 341 schalten Prozesse durch Analysieren eines Anweisungsbefehls C1 aus dem verbundenen Zugriffs-Master 1 und Bestimmen, ob er ein Lesen oder ein Schreiben ist, um, aber dies ist keine Beschränkung. Falls beispielsweise der aus dem Zugriffs-Master 1 eingegebene Anweisungsbefehl C1 ein Lesen oder ein Schreiben ist und die Adresse von Speicher 247a oder 347a in der Prioritäts-Bestimmungseinheit 247 oder 347 mit dem Anweisungsbefehl C1 verbunden ist, können die Prozess-Umschalteinheiten 141 oder 341 Prozesse durch Decodieren der Eingangsadresse umschalten. In diesem Fall, falls die an dem Anweisungsbefehl C1 angebrachte Adresse nicht eine Adresse im Hauptspeicher 10 ist, sondern die Adresse des Speichers 247a oder 347a in der Prioritäts-Bestimmungseinheit 247 oder 347, kann die Prozess-Umschalteinheit 141 oder 341 die Daten als Übertragungs-Planungs-Information erkennen. Dies ermöglicht die Verwendung von Hardware, wie einer Universalzweck-CPU oder dergleichen, als die Zugriffs-Master 1, und die Verwendung eines Universalzweck-Busses, wie etwa AMBA AXI (Advanced eXtensible Interface) für die Verbindungen zwischen den Zugriffs-Master 1 und den Cache-Speichersteuerungen 100 bis 300, wodurch die Vielseitigkeit der Cache-Speichersteuerungen 100 bis 300 verbessert wird.
-
Die oben beschriebenen Plan-Verarbeitungseinheiten 143 und 243 übertragen Adressdaten aus dem Hauptspeicher 10 an den Cache-Speicher 110 und stellen geplante Bereichsinformation I1, die eine Speicherziel-Cache-Linie angibt, der Aufhebe-Verarbeitungseinheit 144 bereit, wenn das Treffer-Detektionsergebnis R2 ein Cache-Fehltreffer ist, jedoch ist dies keine Beschränkung. Beispielsweise kann auch eine Speicherziel-Cache-Linie anzeigende, geplante Bereichsinformation I1 zur Aufhebe-Verarbeitungseinheit 144 geliefert werden, wenn das Treffer-Detektionsergebnis R2 ein Cache-Treffer ist. In diesem Fall, wenn die Aufhebe-Verarbeitungseinheit 144 die geplante Bereichsinformation empfängt, setzt sie das Zugriffs-Flag Fa der durch die geplante Bereichsinformation I1 angegebenen Cache-Linie, die im Tag-Speicher 121 gespeichert ist, ein, ”Ungültig” anzuzeigen, was bedeutet, dass es keinen Zugriff aus dem Zugriffs-Master 1 gegeben hat, und stellt auch das geplante Planbereichs-Zugriffs-Flag Fra ein, anzuzeigen, dass das Zugriffs-Flag Fa nicht ein Mal gültig geworden ist. Somit, selbst wenn es Zeit erfordert, bis der Zugriffs-Master 1 das Ausführen der Anweisungsgruppe beginnt, die sich auf den kontinuierlichen Bereich bezieht, in welchem die durch Übertragungs-Planungs-Information angegebenen Daten, die zu übertragen sind, gespeichert werden, wird die Cache-Linie nicht freigegeben und kann ein Cache-Treffer sichergestellt werden.
-
BEZUGSZEICHEN
-
- 1 Zugriffs-Master, 10 Hauptspeicher, 100, 200, 300 Cache-Speichersteuerung, 110 Cache-Speicher, 120 Speicher-Verwaltungseinheit, 130 Treffer-Detektionseinheit, 140, 240, 340 Datenverarbeitungseinheit, 141, 341 Prozess-Umschalteinheit, 142 Anfrage-Verarbeitungseinheit, 143, 243 Plan-Verarbeitungseinheit, 144 Aufhebe-Verarbeitungseinheit, 145 Cache-Speicherzugriffs-Arbitrierungseinheit, 146 Hauptspeicherzugriffs-Arbitrierungseinheit, 247, 347 Prioritäts-Bestimmungseinheit, 248 Zugriffsverwaltungseinheit.