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 Datenworten

Info

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
Application number
DE19944421229
Other languages
English (en)
Inventor
Franz Dipl Ing Hutner
Guenter Dipl Ing Watzlawik
Guenter Dr Boeckle
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE19944421229 priority Critical patent/DE4421229A1/de
Publication of DE4421229A1 publication Critical patent/DE4421229A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access 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 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.
DE19944421229 1994-06-17 1994-06-17 Verfahren zur Ausführung von Zugriffen zu in einem Speicher enthaltenen Datenworten Ceased DE4421229A1 (de)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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