DE19833221C2 - Verfahren zur Erhöhung der Nutzleistung von Multiprozessorsystemen - Google Patents

Verfahren zur Erhöhung der Nutzleistung von Multiprozessorsystemen

Info

Publication number
DE19833221C2
DE19833221C2 DE19833221A DE19833221A DE19833221C2 DE 19833221 C2 DE19833221 C2 DE 19833221C2 DE 19833221 A DE19833221 A DE 19833221A DE 19833221 A DE19833221 A DE 19833221A DE 19833221 C2 DE19833221 C2 DE 19833221C2
Authority
DE
Germany
Prior art keywords
processor
cpu
affinity
assigned
affine
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.)
Expired - Lifetime
Application number
DE19833221A
Other languages
English (en)
Other versions
DE19833221A1 (de
Inventor
Hans-Martin Hebsaker
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.)
Fujitsu Technology Solutions Intellectual Property GmbH
Original Assignee
Wincor Nixdorf International GmbH
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 Wincor Nixdorf International GmbH filed Critical Wincor Nixdorf International GmbH
Priority to DE19833221A priority Critical patent/DE19833221C2/de
Publication of DE19833221A1 publication Critical patent/DE19833221A1/de
Application granted granted Critical
Publication of DE19833221C2 publication Critical patent/DE19833221C2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

Das Prinzip der "natürlichen Affinität" wird durch einen weiteren Steuerungsmechanismus ergänzt, indem Programmabschnitte verschiedener Prozesse, welche Daten aus denselben Speicherbereichen benötigen, einheitlich gekennzeichnet und aufgrund dieser Kennzeichnung bei zeitlich konkurrierendem Zugriff demselben Prozessor (CPU) zugewiesen werden. Durch die hierdurch geschaffene Affinität verschiedener Prozesse wird die Anzahl der Speicherzugriffe auf den Hauptspeicher (MM) bzw. die Caches (SIC) der anderen Prozessoren (CPU) weiter verringert und somit die Nutzleistung des Multiprozessorsystems erhöht. DOLLAR A Kann einem freien Prozessor (CPU) kein affiner Prozeß zugewiesen werden, wird zur Vermeidung von Leerlaufverlusten ein nicht-affiner Prozeß zugeweisen und ein Indikator gesetzt, der zur Unterbrechung bei Vorliegen eines affinen Prozesses führt.

Description

Die Erfindung betrifft ein Verfahren zur Erhöhung der Nutz­ leistung von Multiprozessorsystemen gemäß dem Oberbegriff des Patentanspruches 1.
Multiprozessorsysteme mit prozessorindividuellen Zwischen­ speichern, sogenannten Caches, erfordern gesonderte Steuer­ mechanismen, um sicherzustellen, daß bei konkurrierenden Zu­ griffen von verschiedenen Prozessoren des Systems auf diesel­ ben Daten die erforderliche Datenkonsistenz gewahrt bleibt. Das gilt insbesondere für sogenannte "Store-in-Caches", bei denen zwischengespeicherte Daten nur bei Verdrängung in den gemeinsamen Speicher zurückgeschrieben werden.
Außerdem erhöhen sich die Zugriffszeiten erheblich, wenn die gewünschten Daten nicht im eigenen Cache vorhanden sind, son­ dern erst aus dem gemeinsamen Speicher oder dem Cache eines anderen Prozessors geholt und gegebenenfalls im anderen Cache für ungültig erklärt werden müssen.
Konkurrierende Schreibzugriffe auf gemeinsame Speicherberei­ che von verschiedenen Prozessoren aus können vermieden wer­ den, wenn man jeweils alle Prozesse, die auf dieselben Spei­ cherbereiche zugreifen müssen, auf demselben Prozessor des Systems zum Ablauf bringt. Diese "statische Affinität" von Prozeß und Prozessor erlaubt jedoch keinen dynamischen Lastausgleich zwischen den Prozessoren des Systems. Hierdurch wird die Nutzleistung des Multiprozessorsystems reduziert, weil die Leistung von möglicherweise freien Prozessoren nicht genutzt werden kann.
Eine andere Möglichkeit zur Verringerung der konkurrierenden Speicherzugriffe, bei der Prozesse zeitweise unterbrochen werden können, um anderen Prozessen den Prozessor zu überlas­ sen, basiert auf der Überlegung, daß Daten eines verdrängten Prozesses mit hoher Wahrscheinlichkeit noch für eine gewisse Zeitspanne im Cache vorhanden sein werden. Man berechnet da­ her z. B. in Abhängigkeit von der durchschnittlichen Spei­ cherbelegungsgröße des Prozesses beim Verlust des Prozessors eine Zeitspanne und stellt sicher, daß innerhalb dieser Sperrzeit nur eine Zuteilung desselben Prozessors möglich ist. Diese "natürliche Affinität" berücksichtigt jedoch nur das Verhalten eines Prozesses in Bezug auf einen zugeteilten Prozessor, nicht aber gegenseitige Abhängigkeiten verschiede­ ner, im gleichen Zeitraum ablaufender Prozesse. Bei konkur­ rierenden Speicherzugriffen verschiedener Prozesse kann es daher im Gegensatz zur erhofften Leistungserhöhung zu erheb­ lichen Leistungseinbußen beim Multiprozessorsystem kommen, wenn die Prozesse aufgrund der natürlichen Affinität auf ver­ schiedenen Prozessoren festgehalten werden und sich wechsel­ seitig die jeweils benötigten Daten aus dem Cache des anderen Prozessors entziehen, dort auf ungültig setzen und im eigenen Cache neu aufbauen.
Aus der Druckschrift US-A-5 261 053 ist ein Multiprozessor­ system bekannt, das das Prinzip der "natürlichen Affinität" ohne Berücksichtigung einer gegenseitigen Affinität von Pro­ zessen, die gemeinsame Betriebsmittel in Form des Arbeits­ speichers benutzen, realisiert.
Weiterhin ist aus der US-A-5 317 738 ein Multiprozessorsyste­ men bekannt, bei dem die unkontrollierte Wanderung von Pro­ zessen von einem Prozessor auf einen anderen Prozessor ver­ hindert wird. Dazu ist eine Vorrichtung mit einem Affinitäts­ speicher vorgesehen, um darin Speicherzugriffsdaten kurz zu­ vor ausgeführter Prozesse zu speichern. Anhand dieser Daten stellen Vergleichsmittel fest, ob ein auszuführender Prozeß eine Affinität zu einem verfügbaren Prozessor hat.
Aufgabe der Erfindung ist es, ein Verfahren zur Erhöhung der Nutzleistung von Multiprozessorsystemen der eingangs genann­ ten Art anzugeben, das einerseits einen dynamischen Lastaus­ gleich zwischen den Prozessoren des Multiprozessorsystems er­ möglicht und andererseits Leistungsverluste bei Auftreten konkurrierender Schreibzugriffe auf gemeinsame Speicherberei­ che durch verschiedene Programmläufe verhindert.
Diese Aufgabe wird durch die kennzeichnenden Merkmale des Pa­ tentanspruches 1 gelöst. Danach wird das Prinzip der "natürlichen Affinität" durch einen weiteren Steuerungsme­ chanismus ergänzt, indem Prozessabschnitte verschiedener Pro­ zesse, welche Daten aus denselben Speicherbereichen benöti­ gen, einheitlich markiert und aufgrund dieser Markierung dem­ selben Prozessor zugewiesen werden, wenn der Datenzugriff zeitlich konkurrierend, also im gleichen Zeitraum erfolgt. Damit wird die zeitlich beschränkte Affinität verschiedener Prozesse berücksichtigt und dadurch die Anzahl der Speicher­ zugriffe auf die Caches der anderen Prozessoren weiter ver­ ringert.
Dieser Steuerungsmechanismus vereint die Nutzleistung des Multiprozessorsystem erhöhenden Eigenschaften der "statischen Affinität" und der "natürlichen Affinität", indem in Zeiträu­ men konkurrierender Zugriffe auf gemeinsame Speicherbereiche die Affinität der betroffenen Prozesse fest vorgeschrieben und damit deren Ablauf auf denselben Prozessor eingeschränkt wird, in den restlichen Zeiträumen jedoch die dynamische Zu­ teilung beliebiger freier Prozessoren unter den Vorgaben der natürlichen Affinität zugelassen bleibt. Die eingangs erwähn­ ten negativen Auswirkungen der statischen und natürlichen Af­ finität auf die Leistung des Multiprozessorsystem werden ver­ mieden.
Die Markierung erfolgt zweckmäßig programmgesteuert. Durch als Unterprogrammaufrufe für das Setzen und Löschen der Mar­ kierung vorgesehene Befehle im innerhalb des Prozesses ablau­ fenden Programms besteht für den Programmierer in einfacher Weise die Möglichkeit, Programmabschnitte mit vorhersehbarem Zugriff auf zusammen mit anderen Prozessen zu nutzende Spei­ cherbereiche wahlweise festzulegen.
Bei Erreichen eines derartig markierten Programmabschnitts übernimmt der aktuell zugeteilte Prozessor ebenfalls die Mar­ kierung. Die dadurch bedingte Zuordnung bleibt dann solange bestehen, bis die bei Unterbrechung oder Beendigung eines markierten Programmabschnitts die aktivierte Sperrzeit ver­ strichen ist. Zur Überwachung der Sperrzeit wird zweckmäßig ein den Ablauf kennzeichnender Zeitstempel verwendet.
Als Markierung wird jeweils ein Affinitätskennzeichen verwen­ det, das zweckmäßig in Tabellen mit prozeßspezifischer und prozessorindividueller Zuordnung geführt wird, so daß die je­ weiligen Zuordnungen leicht überprüfbar sind. Dabei können einem Prozeß auch mehrere Affinitätskennzeichen zugewiesen werden.
Ein Prozeß ist zu einem vorgegebenen Prozessor genau dann af­ fin, also ohne Einbußen aufgrund fremder Cache-Belegungen auf dem genannten Prozessor ablauffähig, wenn weder die natürli­ che Affinität noch eine Zuordnung mittels Affinitätskennzei­ chen zu einem fremden Prozessor wirksam ist. Maßgebend für die Wirksamkeit ist hierbei jeweils der Ablauf der für die natürliche Affinität und die betroffenen Affinitätskennzei­ chen definierten Sperrzeiten. Ein Prozeß heißt genau dann nicht-affin zum betrachteten Prozessor, wenn eine wirksame Bindung zu einem fremden Prozessor durch Affinitätskennzei­ chen oder aufgrund von natürlicher Affinität besteht. Insbe­ sondere braucht ein Prozeß, um affin zum vorgegebenen Prozes­ sor zu sein, nicht zwingend eine Zuordnung zu diesem Prozes­ sor mittels Affinitätskennzeichen zu besitzen.
Um zu vermeiden, daß Leerlaufverluste entstehen, weil einem freien Prozessor kein affiner Prozeß zugeteilt werden kann, wird gemäß einer anderen vorteilhaften Weiterbildung der Er­ findung entsprechend Anspruch 8 einem freiem Prozessor immer ein Prozeß zugeordnet. Liegt für diesen ein Affinitätskenn­ zeichen vor, das einem anderen Prozessor gültig zugeordnet ist, dann wird diese nicht affine Zuordnung gekennzeichnet, damit bei Eintreten der Ablaufbereitschaft eines zu diesem Prozessor affinen Prozesses die Unterbrechung des nicht affi­ nen Prozesses herbeigeführt werden kann. Damit hat die Pro­ zessorauslastung Vorrang vor der Affinität, und diese hat wiederum Vorrang vor einer zu starken Nutzung gemeinsamer Speicherbereiche durch auf verschiedenen Prozessoren gleich­ zeitig ablaufende Prozesse.
Einzelheiten der Erfindung seien nachfolgend anhand eines in der Zeichnung dargestellten Ausführungsbeispieles näher er­ läutert. Im Einzelnen zeigen
Fig. 1 eine schematische Darstellung eines üblichen Multi­ prozessorsystems,
Fig. 2A einen Prozeß mit einem mit einem Affinitätskennzei­ chen versehenen Programmabschnitt,
Fig. 2B eine prozeßspezifische Tabelle, in der alle einem be­ treffenden Prozeß aktuell zugeordneten Affinitäts­ kennzeichen hinterlegt sind,
Fig. 3 ein Flußdiagramm für die Ausführung eines Markierbe­ fehls (Setzen eines Affinitätskennzeichens),
Fig. 4 ein Flußdiagramm für die Ausführung eines Löschbe­ fehls für die Markierung (Zurücksetzen eines Affini­ tätskennzeichens),
Fig. 5 ein Flußdiagramm für die Auswahl eines ablaufbereiten Prozesses für einen frei gewordenen Prozessor unter Berücksichtigung eines vorhandenen Affinitätskennzei­ chens,
Fig. 6A und Fig. 6B ein Flußdiagramm für die in Fig. 5 vorgese­ hene Prüfschleife, und
Fig. 7 eine prozessorspezifische Tabelle, in der alle Affi­ nitätskennzeichen einschließlich des Zustands "aktiv" oder "inaktiv" (letzterer mit Zeitstempel) hinterlegt sind.
Das in Fig. 1 dargestellte Multiprozessorsystem besteht bei­ spielsweise aus vier Prozessoren CPU, die jeweils über einen sogenannten "Store-In-Cache" SIC mit dem gemeinsamen Arbeits- oder Hauptspeicher MM gekoppelt sind. Dargestellt sind wei­ terhin zwei Warteschlangen, nämlich WSR für ablaufbereite und WSW für nicht ablaufbereite Prozesse P. Die Prozesse P in der Warteschleife WSR sind in der üblichen Weise nach Grup­ penprioritäten geordnet und werden dem jeweils frei werdenden Prozessor CPU abhängig von diesen Prioritäten durch den soge­ nannten Dispatcher DISP zugewiesen.
Bei dem dadurch zum Ablauf kommenden Prozeß P kommen nun die einzelnen Befehle des innerhalb dieses Prozesses P durchlau­ fenen Programmes nacheinander zur Ausführung.
Wie Fig. 2 zeigt, können in einem solchen Programm gesonderte Befehle "SET AKZx" und "RESET AKZx" vorgesehen werden. Die hierdurch eingerahmte Befehlsfolge stellt einen Programmab­ schnitt dar, der mit ebenso gekennzeichneten Programmab­ schnitten in anderen Prozessen P dieselben Speicherbereiche nutzt. Die Markierung eines solchen affinen Programmab­ schnitts erfolgt also programmgesteuert, wobei der Befehl "SET AKZx" zum Setzen eines Affinitätskennzeichens AKZx und der Befehl "RESET AKZx" zum Zurücksetzen desselben führt. Diese Befehle für die Markierung einzelner Programmabschnitte innerhalb der verschiedenen Prozesse P können vom Programmie­ rer wahlweise gesetzt werden, um zueinander affine Pro­ grammabschnitte verschiedener Prozesse P zu kennzeichnen.
Zur Identifikation der Kennzeichnung einzelner Prozesse P mit Affinitätskennzeichen dient die in Fig. 2B gezeigte Prozeß- AKZ-Tabelle, in welcher die Affinitätskennzeichen für die Zeit, in der sie für den Prozeß P gesetzt sind, hinterlegt werden. Diese jedem Prozeß P zugeordnete Tabelle wird vom Dispatcher DISP zentral überwacht.
Die Befehle "SET AKZx" und "RESET AKZx" werden in neuen Rou­ tinen des Schedulings realisiert, die nachfolgend anhand von Fig. 3 und Fig. 4 beschrieben werden.
Nach dem Start der den Befehle "SET AKZx" realisierenden Rou­ tine in Fig. 3 wird zunächst überprüft, ob das betreffende Af­ finitätskennzeichen AKZx bereits einem anderen Prozessor CPU zugeordnet ist (Verfahrensschritt 1). Ist dieses nicht der Fall, wird gemäß Verfahrensschritt 2 das Affinitätskennzei­ chen in eine zentrale, vom Dispatcher DISP überwachte Tabelle mit prozessorindividueller Zuordnung eingetragen und als ak­ tiv markiert. Danach kann der "SET AKZx" aufrufende Prozeß P gemäß Verfahrensschritt 3 in der üblichen Weise fortgesetzt werden.
Ist dagegen im Verfahrensschritt 1 festgestellt worden, daß das Affinitätskennzeichen AKZx bereits einem anderen Prozes­ sor CPU entsprechend der AKZ-Prozessor-Tabelle in Fig. 7 zuge­ ordnet ist, dann ist zu prüfen, ob gemäß Verfahrensschritt 4 der dortige Affinitätskennzeicheneintrag noch als aktiv mar­ kiert ist. Ist dieses der Fall, wird im nächsten Verfahrens­ schritt 5 der laufende Prozeß P in die Warteschleife WSR mit seinem Affinitätskennzeichen AKZ zurückgekettet und der zuge­ ordnete Prozessor CPU freigegeben. Die "SET AKZx" realisie­ rende Routine ist damit beendet, und es wird zum Dispatcher DISP verzweigt, um dem frei gewordenen Prozessor einen neuen ablaufbereiten Prozeß P zuzuteilen. Der unterbrochene Prozeß P wird hinter dem Befehl "SET AKZx" fortgesetzt, sobald er dem bezüglich des Affinitätskennzeichens affinen Prozessor zum Ablauf zugeteilt worden ist (Verfahrensschritt 5a). Ana­ loges gilt, wenn der Eintrag für das Affinitätskennzeichen nicht als aktiv markiert ist, aber die dann gemäß dem Verfah­ rensschritt 6 zu überprüfende Sperrzeit im betrachteten Ein­ trag des Affinitätskennzeichens noch nicht verstrichen ist (Zeitstempel in Prozessor-AKZ-Tabelle nach Fig. 7). Ist dage­ gen die Sperrzeit bereits abgelaufen, kann in den Verfahrens­ schritt 2 übergeleitet und das Affinitätskennzeichen in die Prozessor-AKZ-Tabelle des zugeteilten Prozessors eingetragen werden.
Bei der den Löschbefehl "RESET AKZx" realisierenden Routine gemäß Fig. 4 wird zunächst im Verfahrensschritt 7 geprüft, ob das Affinitätskennzeichen AKZx für den zugeteilten Prozessor CPU eingetragen und als aktiv markiert ist. Ist dieses nicht der Fall, kann sofort auf den Verfahrensschritt 8 zur Fort­ setzung des Prozesses P hinter dem Aufruf "RESET AKZx" ver­ zweigt werden. Im anderen Falle wird gemäß Verfahrensschritt 9 das eingetragene Affinitätskennzeichen als inaktiv markiert und damit die Sperrzeit durch Setzen des Zeitstempels in der Prozessor-AKZ-Tabelle aktiviert.
Solange die Sperrzeit wirksam ist, dürfen Prozesse P mit die­ sem Affinitätskennzeichen keinem anderen Prozessor zugeteilt werden. Auf diese Weise wird die Affinität des unterbrochenen oder beendeten Prozesses P zu einem anderen affinen Prozeß P für eine gewisse Zeit gewahrt. Die Sperrzeit wird wie bei der Steuerung innerhalb der natürlichen Affinität abhängig vom jeweils benötigten Speicherbereich berechnet, wobei das Ende der Sperrzeit durch einen entsprechenden Zeitstempel markiert wird. Nach dem Aktivieren der Sperrzeit wird dann der Prozeß P wiederum mit dem Verfahrensschritt 8 hinter dem Aufruf von "RESET AKZx" fortgesetzt.
Fig. 5 zeigt das Flußdiagramm für den Dispatcherlauf zwecks Prozeßzuweisung an einen freien Prozessor CPU, der entspre­ chend der Erfindung ergänzt ist und die zusätzliche Affini­ tätskennzeichnung zu beachten hat. Im ersten Verfahrens­ schritt 10 wird dazu eine Art Normierung durchgeführt, indem als aktiv markiert vorgefundene Affinitätskennzeichen AKZ in der Prozessor-AKZ-Tabelle des Prozessors als inaktiv markiert werden und die jeweilige Sperrzeit aktiviert wird. Danach wird im Verfahrensschritt 11 der erste ablaufbereite Prozeß P in der Warteschlange WSR ausgewählt und mit Verfahrensschritt 12 in eine Prüfschleife für die Affinitätsprüfung übergelei­ tet (eine genauere Betrachtung der Prüfschleife erfolgt in Fig. 6A und Fig. 6B).
Ergibt dabei die Prüfung gemäß Verfahrensschritt 13, daß der Prozessor wegen mangelnder Affinität nicht zugeteilt werden konnte und befinden sich noch ablaufbereite Prozesse P in der Warteschlange WSR, dann wird gemäß Verfahrensschritt 14 der nächste ablaufbereite Prozeß P in der Warteschlange ausge­ wählt und überprüft, bis endlich gemäß der Affinitätsprüfung ein passender Prozeß P gefunden ist oder alle ablaufbereiten Prozesse P überprüft sind und damit gemäß Schritt 15 das Ende der Prüfschleife erreicht wird.
Da beim Durchlaufen der Prüfschleife möglicherweise kein af­ finer Prozeß P gefunden und daher der Prozessor CPU nicht zu­ geteilt worden ist, wird gemäß Verfahrensschritt 16 über­ prüft, ob bei nicht zugeteiltem Prozessor noch ablaufbereite Prozesse P in der Warteschleife sind. Ist dies nicht der Fall, verbleibt der Prozessor im Leerlaufzustand und das Ende des Dispatcherlaufes ist erreicht. Im anderen Falle wird ge­ mäß Verfahrensschritt 17 der erste Prozeß P aus der Warte­ schleife WSR dem Prozessor CPU zugeteilt und außerdem ein In­ dikator in der Prozessor-AKZ-Tabelle (oberster Eintrag in Fig. 7) gesetzt, der anzeigt, daß ein nicht affiner Prozeß P bear­ beitet wird.
Bei der genaueren Betrachtung der Prüfschleife aus Fig. 5 wird nach deren Start gemäß Verfahrensschritt 12 in Fig. 6A zunächst mit Verfahrensschritt 20 überprüft, ob der ausgewählte Prozeß P in der zugeordneten Prozeß-AKZ-Tabelle nach Fig. 2B mit einem Affinitätskennzeichen AKZ belegt ist. Ist dies nicht der Fall, wird gemäß Schritt 21 überprüft, ob noch eine natürliche Affinität zu einem fremden Prozessor CPU wirksam ist. Trifft dies ebenfalls nicht zu, wird gemäß Schritt 22 der Prozeß P dem freien Prozessor zugeteilt und dieser als zugeteilt gekennzeichnet. Diese Kennzeichnung ist nur für den momentanen Ablauf von Bedeutung und erfolgt daher in einem temporären Arbeitsbereich des Prozesses P.
Ergibt die Prüfung gemäß Schritt 20, daß der ausgewählte Pro­ zeß P mit einem Affinitätskennzeichen AKZ belegt ist, dann wird gemäß Schritt 24 weiterhin geprüft, ob dieses Affini­ tätskennzeichen bereits einem anderen Prozessor zugeteilt worden ist. Ist dies nicht der Fall, dann bleibt noch die Wirksamkeit der natürlichen Affinität zu einem fremden Pro­ zessor in Verfahrensschritt 31 zu prüfen. Ist diese gegeben, bleibt der Prozessor als nicht zugeteilt gekennzeichnet. An­ dernfalls wird gemäß Verfahrensschritt 25 der Prozeß P mit seinem Affinitätskennzeichen AKZ dem Prozessor CPU zugeteilt und dieser als zugeteilt gekennzeichnet. Außerdem wird das Affinitätskennzeichen AKZ in der Prozessor-AKZ-Tabelle nach Fig. 7 auf aktiv gesetzt.
Ergibt dagegen die Überprüfung gemäß Verfahrensschritt 24, daß das Affinitätskennzeichen bereits einem anderen Prozessor zugeteilt ist, existiert also ein entsprechender Eintrag in der Prozessor-AKZ-Tabelle eines fremden Prozessors, dann ist gemäß Fig. 6B zunächst gemäß Schritt 26 zu prüfen, ob auf die­ sem anderen Prozessor gerade ein nicht affiner Prozeß P ab­ läuft und der entsprechende Indikator im ersten Eintrag von dessen Prozessor-AKZ-Tabelle gesetzt ist. Verläuft diese Prü­ fung positiv, dann wird gemäß dem Verfahrensschritt 27 der auf dem anderen Prozessor gerade aktive Prozeß P unterbrochen und in die Warteschlange WSR zurückgekettet. Danach wird der zuvor aus der Warteschlange WSR ausgewählte Prozeß P mit sei­ nem Affinitätskennzeichen dem anderen Prozessor zugeteilt und dieser als zugeteilt gekennzeichnet. Außerdem wird wiederum das Affinitätskennzeichen als aktiv markiert. Der freie (lokale) Prozessor bleibt dagegen als nicht zugeteilt gekenn­ zeichnet.
Bei negativem Ergebnis der Prüfung gemäß dem Verfahrens­ schritt 26 erfolgt gemäß dem Verfahrensschritt 28 eine wei­ tere Prüfung, nämlich daraufhin, ob das dem anderen Prozessor CPU zugeteilte Affinitätskennzeichen als inaktiv markiert ist und außerdem die Sperrzeit sowie die Bindungsfrist wegen na­ türlicher Affinität abgelaufen ist. Ist dies der Fall, dann kann gemäß Schritt 29 das Affinitätskennzeichen in der Pro­ zessor-AKZ-Tabelle des anderen Prozessors gelöscht werden und der Prozeß P aus der Warteschleife WSR mit dem Affinitäts­ kennzeichen dem freien (lokalen) Prozessor zugeteilt werden, der dann als zugeteilt gekennzeichnet wird. Weiterhin wird wiederum das Affinitätskennzeichen AKZ als aktiv markiert. Ist dagegen gemäß Schritt 28 das Affinitätskennzeichen AKZ auf dem anderen Prozessor noch aktiv oder die Sperrzeit noch nicht abglaufen, dann kann der mit demselben Affinitätskenn­ zeichen belegte Prozeß P dem freien Prozessor nicht zugeteilt werden. Dies gilt auch, wenn noch eine wirksame natürliche Affinität zum anderen Prozessor besteht.
Nach Durchlaufen der verschiedenen Prüfzweige wird wieder in den Verfahrensschritt 13 von Fig. 5 übergeleitet und über­ prüft, ob der Prozessor CPU einem ablaufbereiten Prozeß P aus der Warteschlange WSR zugeteilt wurde. Abhängig vom Ergebnis dieser Prüfung wird dann wieder in den Verfahrensschritt 14 übergeleitet oder das Ende der Prüfschleife gemäß 15 er­ reicht.

Claims (8)

1. Verfahren zur Erhöhung der Nutzleistung von Multiprozessorsystemen mit gemeinsamem Arbeitsspeicher (MM) und prozessorindividuellen Caches (SIC), bei dem Prozesse (P), innerhalb denen Programmabschnitte aufweisende Programme ablaufen, auf demselben Prozessor (CPU) zum Ablauf gebracht werden, solange eine vorgegebene Zeitspanne seit dem letzten Zugriff auf den Arbeitsspeicher (MM) andauert, während ein anderer der Prozessoren (CPU) erst nach Ablauf dieser Zeitspanne als Sperrzeit einen solchen Prozeß (P) übernehmen kann, dadurch gekennzeichnet, daß Programmabschnitte verschiedener Prozesse (P), die Daten aus denselben Speicherbereichen des Arbeitsspeichers (MM) benötigen, als affin gekennzeichnet und aufgrund dieser Kennzeichnung demselben Prozessor (CPU) zugewiesen werden, wenn der Datenzugriff zeitlich konkurrierend erfolgt.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Kennzeichnung der affinen Programmabschnitte programmgesteuert erfolgt.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß zur Kennzeichnung der affinen Programmabschnitte jeweils Unterprogrammaufrufe zum Setzen (SET AKZx)und zum Zurücksetzen (RESET AKZx) der Kenn­ zeichnung innerhalb der Prozesse (P) verwendet werden.
4. Verfahren nach Anspruch 2 oder 3, dadurch gekennzeichnet, daß als Kennzeichnung ein Affinitätskennzeichen (AKZ. . .) in einer jeweils prozeßspezi­ fischen Tabelle für die Dauer der Kennzeichnung abgespeichert wird.
5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß bei Erreichen eines als affin gekennzeichneten Programmabschnitts innerhalb eines Prozesses (P) dem zugeteilten Prozessor (CPU) eine gleichar­ tige Kennzeichnung zugeordnet wird und daß diese Zuordnung der Kennzeichnung solange bestehen bleibt, bis die bei Unter­ brechung oder Beendigung des Prozesses (P) aktivierte Sperr­ zeit abgelaufen ist.
6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, daß als Kennzeichnung das Affinitätskennzeichen (AKZ. . .) in einer zentralen Tabelle des Dispatchers (DISP) mit prozessorindividueller Zuordnung abge­ speichert und zu Beginn einer Sperrzeit als inaktiv gekenn­ zeichnet wird.
7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß in der zentralen Tabel­ le ein den Ablauf der Sperrzeit kennzeichnender Zeitstempel geführt wird.
8. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Auswahl eines ab­ laufbereiten Prozesses (P) an Hand der Affinitätskennzeichen (AKZ. . .) erfolgt, daß Prozesse (P), deren Affinitätskennzei­ chen anderen Prozessoren (CPU) als dem frei gewordenen gültig zugeordnet sind, nur ausgewählt werden, wenn kein passender anderer Prozeß (P) auswählbar ist, um den Leerlauf des Pro­ zessors (CPU) zu vermeiden, und daß diese nichtaffine Zutei­ lung des Prozessors (CPU) gesondert gekennzeichnet wird, da­ mit bei eintretender Ablaufbereitschaft eines zu diesem Pro­ zessor (CPU) affinen Prozesses (P) die Unterbrechung des nichtaffinen Prozesses (P) herbeigeführt werden kann.
DE19833221A 1997-07-31 1998-07-23 Verfahren zur Erhöhung der Nutzleistung von Multiprozessorsystemen Expired - Lifetime DE19833221C2 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE19833221A DE19833221C2 (de) 1997-07-31 1998-07-23 Verfahren zur Erhöhung der Nutzleistung von Multiprozessorsystemen

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE19733163 1997-07-31
DE19833221A DE19833221C2 (de) 1997-07-31 1998-07-23 Verfahren zur Erhöhung der Nutzleistung von Multiprozessorsystemen

Publications (2)

Publication Number Publication Date
DE19833221A1 DE19833221A1 (de) 1999-02-04
DE19833221C2 true DE19833221C2 (de) 2000-11-23

Family

ID=7837594

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19833221A Expired - Lifetime DE19833221C2 (de) 1997-07-31 1998-07-23 Verfahren zur Erhöhung der Nutzleistung von Multiprozessorsystemen

Country Status (1)

Country Link
DE (1) DE19833221C2 (de)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5261053A (en) * 1991-08-19 1993-11-09 Sequent Computer Systems, Inc. Cache affinity scheduler
US5317738A (en) * 1992-02-18 1994-05-31 Ncr Corporation Process affinity scheduling method and apparatus

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5261053A (en) * 1991-08-19 1993-11-09 Sequent Computer Systems, Inc. Cache affinity scheduler
US5317738A (en) * 1992-02-18 1994-05-31 Ncr Corporation Process affinity scheduling method and apparatus

Also Published As

Publication number Publication date
DE19833221A1 (de) 1999-02-04

Similar Documents

Publication Publication Date Title
DE4227345C2 (de) Verfahren zur Ablaufsteuerung von Prozessen in einem Mehrprozessor-Computersystem
DE60034170T2 (de) Protokoll zum Koordinieren der Verteilung von gemeinsamem Speicher
DE60008267T2 (de) Verfahren zum planen von zeitverteilten anwendungen in einem rechnerbetriebssystem
EP1831786B1 (de) Verfahren zur verteilung von rechenzeit in einem rechnersystem
DE69729822T2 (de) Echtzeit-Taskzuweiser
DE60210633T2 (de) Verfahren und vorrichtungen zur verbesserung des durchsatzes von eingebetteten prozessoren auf cache-basis durch umschalten von tasks als reaktion auf eine cache-verfehlung
EP0762274B1 (de) Einrichtung und Verfahren zur Echtzeit-Verarbeitung einer Mehrzahl von Tasks
EP0635792B1 (de) Verfahren zur Koordination von parallelen Zugriffen mehrerer Prozessoren auf Resourcenkonfigurationen
DE102012210895A1 (de) Vorhersage der ungeordneten Parallelverarbeitung der Befehle von Threads in einem Multithread-Prozessor
DE102009051388A1 (de) Technik zur Förderung effizienter Befehlsfusion
DE2847216A1 (de) Datenverarbeitungssystem mit mehrprogrammbetrieb
DE3886756T2 (de) Betriebsmittelzugriff für Multiprozessorrechnersystem.
DE102009023898A1 (de) Optimierung von gleichzeitigen Zugriffen in einem verzeichnisbasierten Kohärenzprotokoll
DE60026068T2 (de) System für externe transaktionen mit dynamischen prioritäten
DE112006002908T5 (de) Technik für die Kommunikation und Synchronisation von Threads
DE2101949A1 (de) Verfahren zum Schutz von Datengruppen in einer Multiprocessing-Datenverarbeitungsanlage
DE102019001129A1 (de) Numerische Steuervorrichtung
DE102007051803A1 (de) Verfahren und Vorrichtung zur Datenverarbeitung
DE112017006764T5 (de) Steuerung
DE19728989A1 (de) Echtzeitsteuersystem
DE102016221526A1 (de) Vorrichtung und Verfahren zum Bearbeiten einer Mehrzahl Aufgaben
DE19833221C2 (de) Verfahren zur Erhöhung der Nutzleistung von Multiprozessorsystemen
DE102018130166A1 (de) Latenzmessungstechnologie
DE3650158T2 (de) Sonderzweckprozessor zur Übernahme vieler Betriebssystemfunktionen in einem grossen Datenverarbeitungssystem.
EP1514180A2 (de) Reaktionszeit-beschränkung eines software-prozesses

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: FUJITSU SIEMENS COMPUTERS GMBH, 81739 MUENCHEN, DE

R084 Declaration of willingness to licence
R081 Change of applicant/patentee

Owner name: FUJITSU TECHNOLOGY SOLUTIONS INTELLECTUAL PROP, DE

Free format text: FORMER OWNER: FUJITSU SIEMENS COMPUTERS GMBH, 80807 MUENCHEN, DE

Effective date: 20111229

R082 Change of representative

Representative=s name: EPPING HERMANN FISCHER, PATENTANWALTSGESELLSCH, DE

Effective date: 20111229

Representative=s name: EPPING HERMANN FISCHER PATENTANWALTSGESELLSCHA, DE

Effective date: 20111229

R071 Expiry of right