DE4421229A1 - Verfahren zur Ausführung von Zugriffen zu in einem Speicher enthaltenen Datenworten - Google Patents
Verfahren zur Ausführung von Zugriffen zu in einem Speicher enthaltenen DatenwortenInfo
- Publication number
- DE4421229A1 DE4421229A1 DE19944421229 DE4421229A DE4421229A1 DE 4421229 A1 DE4421229 A1 DE 4421229A1 DE 19944421229 DE19944421229 DE 19944421229 DE 4421229 A DE4421229 A DE 4421229A DE 4421229 A1 DE4421229 A1 DE 4421229A1
- Authority
- DE
- Germany
- Prior art keywords
- data
- memory
- register
- processor
- flag
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1663—Access to shared memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
Parallelrechnersysteme mit mehreren Prozessoren arbeiten oft
mit einem gemeinsamen Speicher zusammen, mit dem sie über
einen Bus verbunden sind. Dies kann dazu führen, daß bei
Zugriff von mehreren Prozessoren zum Speicher Wartezeiten
eintreten, die die Leistung des Parallelrechnersystems
erheblich vermindern. Dadurch könnten die Vorteile des Paral
lelrechnersystems in Bezug auf Leistung erheblich einge
schränkt werden.
Es gibt Möglichkeiten, auf den gemeinsamen Bus, der einen
Engpaß für viele Prozessoren darstellt, zu verzichten. Statt
des gemeinsamen Busses können verschiedene Arten von Verbin
dungsnetzwerken als Bindeglied zwischen den Prozessoren und
dem gemeinsamen Speicher eingesetzt werden. Damit kann der
Datendurchsatz für nahezu beliebig viele Prozessoren in
gewünschter Weise erreicht werden, jedoch fehlt die Möglich
keit, alle Speichertransaktionen jedes Prozessors für alle
übrigen Prozessoren sichtbar zu machen. Dadurch wird die
Konsistenz von Cache-Speichern, die für schnelle Zugriffe
beim Prozessor angeordnet sind, ein Problem. Um dieses zu
umgehen, kann man die Datenworte in lokale und globale Daten
worte einteilen und die globalen Datenworte nicht in den
Cachespeicher laden. Es ist auch möglich, mit Hilfe einer
Sequenz von Netzwerktransaktionen Cache-Speicherkonsistenz
bei den Prozessoren mit Verbindungsnetzwerken zu erreichen.
Ahnlich wie bei busbasierten Systemen treten jedoch auch hier
Kommunikationsmuster auf, bei denen die Leistung des Systems
mit vielen Prozessoren stark abfällt. Zudem ist die Reali
sierung von dabei erforderlichen Cache-Konsistenzprotokollen
komplex und erfordert hohen Hardwareaufwand.
Deshalb wurden Parallelrechner entworfen, die nicht eine für
alle Prozessoren gemeinsame Speichersicht bieten, sondern bei
denen jeder Prozessor einen lokalen Speicher besitzt und mit
anderen Prozessoren nur über Nachrichtenaustausch kommuni
ziert. Hier treten die obengenannten Probleme nicht auf,
dafür sind solche Systeme wesentlich komplexer zu programmie
ren.
Die der Erfindung zugrundeliegende Aufgabe besteht darin, ein
Verfahren zur Ausführung von Zugriffen zu einem Speicher
eines Mehrprozessorsystems anzugeben, bei dem die obengenann
ten Probleme minimiert sind. Diese Aufgabe wird gemäß dem
Verfahren nach Patentanspruch 1 gelöst.
Das Verfahren ist vorteilhafterweise auch verwendbar für ein
Rechnersystem mit einer Mehrzahl von Prozessoren, die mit,
einem Speicher (im folgenden globaler Speicher genannt)
zusammenarbeiten, bei dem die globalen Daten nicht in einen
lokalen Cache-Speicher des Prozessors übernommen werden.
Ein ein Speicherwort im globalen Speicher anfordernder
Prozessor aufgrund eines Load-Befehls geht somit nicht in den
Wartezustand über, vielmehr läuft er, z. B. seine Pipeline,
auch bei nicht lokalen Zugriffen, z. B. zum Cachespeicher,
weiter, als wäre das Datenwort bereits im Datenregister.
Durch die erfindungsgemäße Ergänzung der Datenregister durch
Flag-Register, in denen angegeben wird, ob das Speicherwort
vom globalen Speicher in das Datenregister übertragen worden
ist, kann der Prozessor immer feststellen, ob er bei Bedarf
das gewünschte Wort aus dem Datenregister entnehmen kann oder
nicht. Nur dann, wenn bei einem Zugriff auf dieses Datenwort
das Flag-Register nicht gesetzt ist und damit angegeben ist,
daß das Datenwort nicht im Datenregister steht, muß der
Prozessor in den Wartezustand übergehen und warten, bis das
Datenwort vom globalen Speicher in das Datenregister über
tragen worden ist. Bis zu diesem Zeitpunkt kann der Prozessor
eine Bearbeitung von anderen Befehlen weiterhin durchführen.
Wenn mehrere Datenregister und korrespondierende Flag-Regi
ster vorgesehen werden, ist es möglich, mehrere Load-Befehle
zeitlich überlappend auszuführen, bevor der Inhalt eines der
Datenregister vom Prozessor benötigt wird. Dann ist es zweck
mäßig, die Load-Befehle innerhalb eines Programmes möglichst
frühzeitig auszuführen, was durch entsprechende Umordnung der
Befehle eines Programms möglich ist.
Das erfindungsgemäße Verfahren hat weiterhin den Vorteil, daß
das angeforderte Datenwort direkt vom globalen Speicher in
das Datenregister übertragen werden kann unter Umgehung eines
vorhandenen Cache-Speichers im Prozessors.
Es ist ein weiterer Vorteil, daß das Verfahren bei Mehrrech
nersystemen mit beliebigen Verbindungsnetzwerken anwendbar
ist.
Andere Weiterbildungen der Erfindung ergeben sich aus den
abhängigen Ansprüchen.
Anhand eines Ausführungsbeispieles, das in den Figuren darge
stellt ist, wird die Erfindung weiter erläutert.
Es zeigen
Fig. 1 eine Prinzipdarstellung eines Rechnersystems mit
mehreren Prozessoren und einem globalen Speicher,
Fig. 2 eine Prinzipdarstellung eines Prozessors zur Durch
führung des erfindungsgemäßen Verfahrens.
Aus Fig. 1 ergibt sich ein Rechnersystem mit Prozessoren P1
bis Pn (n ganze Zahl), einem gemeinsamen Bus BUS und einem
globalen Speicher SP. Die Prozessoren P1 bis Pn können von
üblichem Aufbau sein, ebenfalls der Bus BUS und der globale
Speicher SP. Beim globalen Speicher SP ist noch eine Inter
faceschaltung IF vorgesehen, die die Verbindung zwischen dem
Bus BUS und dem globalen Speicher SP herstellt.
Aus Fig. 2 ergibt sich ein prinzipieller Aufbau eines Pro
zessors P. Dieser besteht aus einem Rechenwerk RW, einem
Steuerwerk CW, einem internen Bus IBUS und einem Bus Inter
face BIF sowie einem Speicherwerk SPW mit dem Cache-Speicher
CA. Das Rechenwerk RW kann eine arithmetische logische Ein
heit ALU enthalten und zusätzlich Datenregister DR1 bis DRm
(m ganze Zahl), denen jeweils ein Flag-Register FL1 bis FLm
zugeordnet ist.
Es wird bei Fig. 2 darauf hingewiesen, daß es sich um eine
prinzipielle Darstellung eines Prozessors handelt, der außer
den Flag-Registern FL in üblicher Weise aufgebaut sein kann.
Die Arbeitsweise des Rechnersystems bei Speicherzugriffen zum
globalen Speicher SP wird im folgenden erläutert.
Wenn ein Prozessor, z. B. der Prozessor P1, einen
Load-Befehl bearbeitet und dazu eine Speicherzugriffsanfor
derung zum globalen Speicher abgibt, geht dieser nicht in den
Wartezustand über, vielmehr läuft er weiter, als ob das
angeforderte Datenwort bereits in einem Datenregister DR
stehen würde. Um trotzdem die Korrektheit von Speicherzu
griffen zu gewährleisten, besitzt jedes Datenregister DR
(Zieldatenregister) das zugeordnete Flag-Register FL. Bei
Load-Befehlen wird eine Speicheranforderung (Speicherrequest)
zum globalen Speicher abgesetzt und gleichzeitig das Flag-
Register des Datenregisters DR, in das das Speicherwort
eingeschrieben werden soll, auf ungültig gesetzt. Erst wenn
das Datenregister ausgelesen wird, d. h. der Inhalt des
Datenregisters vom Prozessor benötigt wird und das
zugeordnete Flag-Register FL immer noch auf ungültig steht,
blockiert der Prozessor, geht also in seinen Wartezustand
oder Unterbrechungszustand über, bis das Datenregister be
schrieben worden ist. Dies geschieht dann, wenn das ange
forderte Speicherwort vom globalen Speicher SP in das
Zieldatenregister übertragen worden ist. Dann nämlich wird
das Flag-Register z. B. von einer dem globalen Speicher zuge
ordneten Speicherinterfaceeinheit IF wieder gesetzt und damit
das Zielregister freigegeben.
Dies bringt folgende Vorteile:
Falls nach einem Load-Befehl noch weitere Befehle vom Prozes sor zu bearbeiten sind, die den Inhalt des Datenregisters, in den das Speicherwort zu laden ist, nicht brauchen, können diese ausgeführt werden, während das Datenwort vom globalen Speicher geholt wird. Damit lassen sich Speicherzugriffszei ten für sinnvolle Arbeit nutzen.
Falls nach einem Load-Befehl noch weitere Befehle vom Prozes sor zu bearbeiten sind, die den Inhalt des Datenregisters, in den das Speicherwort zu laden ist, nicht brauchen, können diese ausgeführt werden, während das Datenwort vom globalen Speicher geholt wird. Damit lassen sich Speicherzugriffszei ten für sinnvolle Arbeit nutzen.
Falls mehrere Load-Befehle ausgeführt werden, bevor der
Inhalt eines der Datenregister benötigt wird, können mehrere
Speicherzugriffe zeitlich überlappend ausgeführt werden.
Falls dann doch Blockierungen auftreten, muß für alle ausste
henden Speicherzugriffe nur etwa die Zugriffszeit eines
Zugriffs zum globalen Speicher gewartet werden. So können
Speicherzugriffe zum globalen Speicher in einem Mehrprozes
sorrechnersystem auch ohne Cachespeicher effizient durchge
führt werden.
Das Verfahren kann weiterhin durch eine Optimierungsstrategie
des Compilers der Prozessoren unterstützt werden. Sinnvoll
ist es, die Load-Befehle innerhalb eines Programms möglichst
früh auszuführen. Damit erhöht sich die Anzahl der Befehle,
die zwischen der Ausführung eines Load-Befehls und der Ver
wendung des geladenen Datenworts, parallel zum Speicherzu
griff, verarbeitet werden können. Es muß die ursprüngliche
Reihenfolge der Load-Befehle nicht beibehalten werden. Es
sind Verfahren bekannt, mit denen Befehle so umgeordnet
werden können, daß die Load-Befehle möglichst frühzeitig
ausgeführt werden können. Dies kann im Compiler erfolgen, der
eine Programmanalyse durchführt, in dem die Datenabhängig
keiten und Abhängigkeiten zwischen den Operationen festge
stellt wird. Diese ermöglicht es, die Load-Befehle und die
Ketten voneinander abhängiger Operationen, die Load-Befehle
enthalten, wie auch Sequenzen von Store-Befehlen und Load-
Befehlen soweit wie möglich an den Anfang der jeweiligen
Funktion zu verschieben. Ein solches Verfahren ist z. B.
beschrieben in Böckle, "A Development Environment for Fine-
Grained Parallelism Exploitation", Proceedings 3. Workshop on
Compilers for Parallel Computers, Vienna, July 8-9, 1992,
Seite 270 bis 281.
Eine möglichst große Anzahl von Datenregistern erhöht selbst
verständlich die Flexibilität bei der Datenregisterzuordnung
und erlaubt ein möglichst frühes Absetzen von Load-Befehlen.
Claims (4)
1. Verfahren zur Ausführung von Zugriffen zu in einem Spei
cher enthaltenen Datenworten bei einem mindestens einen
Prozessor enthaltenden Rechnersystem,
- - bei dem der Prozessor (P) bei einer Zugriffsanforderung zur Übertragung eines Datenwortes vom Speicher (SP) in ein Daten register (DR) im Prozessor ein dem Datenregister zugeordnetes Flag-Register (FL) zurücksetzt,
- - bei dem das angeforderte Datenwort vom globalen Speicher in das Datenregister (DR) übertragen wird und das zugeordnete Flag-Register (FL) nach Übertragung gesetzt wird,
- - bei dem der Prozessor unabhängig von der Bearbeitung der Zugriffsanforderung in seiner Befehlsbearbeitung weiterfährt, bis er das angeforderte Datenwort benötigt und dann das Flag- Register (FL) überprüft und bei zurückgesetztem Flag-Register in den Wartezustand übergeht, bis das Datenwort in das Daten register übertragen worden ist,
- - und bei dem bei gesetzten Flag-Register das Datenregister ausgelesen wird.
2. Verfahren nach Anspruch 1,
bei dem mehrere Zugriffsanforderungen zum Speicher zeitlich
überlappend dadurch bearbeitet werden, daß die angeforderten
Datenworte in unterschiedliche Datenregister geladen werden
und deren zugeordnete Flag-Register nach Übertragung gesetzt
werden.
3. Verfahren nach Anspruch 1 oder 2,
bei dem vor Ausführung eines Programms die Befehle auf Load-
Befehle untersucht werden und die Load-Befehle innerhalb der
Befehlssequenz derart angeordnet werden, daß sie möglichst
früh ausgeführt werden, unter Beibehaltung der Programmsema
tik.
4. Verfahren nach einem der vorhergehenden Ansprüche,
bei dem die Übertragung des angeforderten Datenwortes direkt
vom Speicher in das Datenregister unter Umgehung eines vor
handenen Cachespeichers erfolgt.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19944421229 DE4421229A1 (de) | 1994-06-17 | 1994-06-17 | Verfahren zur Ausführung von Zugriffen zu in einem Speicher enthaltenen Datenworten |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19944421229 DE4421229A1 (de) | 1994-06-17 | 1994-06-17 | Verfahren zur Ausführung von Zugriffen zu in einem Speicher enthaltenen Datenworten |
Publications (1)
Publication Number | Publication Date |
---|---|
DE4421229A1 true DE4421229A1 (de) | 1996-01-11 |
Family
ID=6520838
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19944421229 Ceased DE4421229A1 (de) | 1994-06-17 | 1994-06-17 | Verfahren zur Ausführung von Zugriffen zu in einem Speicher enthaltenen Datenworten |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE4421229A1 (de) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1991020039A1 (en) * | 1990-06-11 | 1991-12-26 | Supercomputer Systems Limited Partnership | Method and apparatus for a load and flag instruction |
-
1994
- 1994-06-17 DE DE19944421229 patent/DE4421229A1/de not_active Ceased
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1991020039A1 (en) * | 1990-06-11 | 1991-12-26 | Supercomputer Systems Limited Partnership | Method and apparatus for a load and flag instruction |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE60037174T2 (de) | Puffersystem für externen speicherzugriff | |
DE69133302T2 (de) | Registerabbildung in einem einzigen Taktzyklus | |
DE10085374B4 (de) | Systemmanagementspeicher für die Systemmanagement-Interrupt-Behandler wird in die Speichersteuereinrichtung integriert, unabhängig vom BIOS und Betriebssystem | |
DE69233655T2 (de) | Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedenartiger Prozessoren | |
DE102009049078B4 (de) | Verwendung von Ausführer-Wissen über Speicherregion-Ordnungsanforderungen zum Modifizieren von Transaktionsattributen | |
DE102005032949A1 (de) | Verfahren und Vorrichtung zum Implementieren von Speicherordnungsmodellen mit Ordnungsvektoren | |
DE112015005597T5 (de) | Verknüpfungsfähige Parallelausführungs-Schicht einer Ausgabewarteschlange für einen Prozessor | |
DE4335475A1 (de) | Datenverarbeitungseinrichtung mit Cache-Speicher | |
DE3131341A1 (de) | "pufferspeicherorganisation" | |
DE112006003917T5 (de) | Verfahren, Gerät und System angewendet in einem Cachespeicher-Kohärenzprotokoll | |
DE2243956A1 (de) | Speicherprogrammierte datenverarbeitungsanlage | |
DE1952158A1 (de) | Speicherschutzverfahren und Einrichtung zur Durchfuehrung dieses Verfahrens | |
DE4417068A1 (de) | Verfahren und Einrichtung zum Betreiben eines Einzel-Prozessor-Computersystems als Mehr-Prozessor-System | |
DE2714805A1 (de) | Datenverarbeitungssystem | |
DE10219623A1 (de) | System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen | |
DE102013006396A1 (de) | Eine grafikverarbeitungseinheit, in der eine standardverarbeitungseinheit verwendet ist, und ein verfahren zum aufbau einer grafikverarbeitungseinheit | |
DE60211452T2 (de) | DMA-Übertragung von Daten und Prüfinformation zu und von einem Datenspeicherungsgerät | |
DE112014000340T5 (de) | Vorablesezugriff auf Daten für einen Chip mit einem übergeordneten Kern und einem Scout-Kern | |
DE2533737A1 (de) | Datenprozessor | |
DE19824289A1 (de) | Pipelineverarbeitungsmaschine | |
DE10303053A1 (de) | Registerumbenennung zum Reduzieren einer Umgehung und Erhöhen einer scheinbaren physischen Registergröße | |
EP1428105A2 (de) | Programmgesteuerte einheit | |
DE4227784A1 (de) | Rechnersystem und verfahren zum beheben eines seitenfehlers | |
DE4421229A1 (de) | Verfahren zur Ausführung von Zugriffen zu in einem Speicher enthaltenen Datenworten | |
EP1308846B1 (de) | Datenübertragungseinrichtung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8131 | Rejection |