DE102015213370A1 - Datenverarbeitungsvorrichtung - Google Patents

Datenverarbeitungsvorrichtung Download PDF

Info

Publication number
DE102015213370A1
DE102015213370A1 DE102015213370.2A DE102015213370A DE102015213370A1 DE 102015213370 A1 DE102015213370 A1 DE 102015213370A1 DE 102015213370 A DE102015213370 A DE 102015213370A DE 102015213370 A1 DE102015213370 A1 DE 102015213370A1
Authority
DE
Germany
Prior art keywords
cpus
processing
flags
cpu
completion
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.)
Pending
Application number
DE102015213370.2A
Other languages
English (en)
Inventor
Hideki Sugimoto
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.)
Denso Corp
Original Assignee
Denso Corp
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 Denso Corp filed Critical Denso Corp
Publication of DE102015213370A1 publication Critical patent/DE102015213370A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

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

Abstract

Eine Datenverarbeitungsvorrichtung beinhaltet mehrere CPUs (1a–1d), mehrere Beendigungsflags (7a–7d), einen Zähler (13), einen ersten Aktualisierungsabschnitt (15, S207), und einen zweiten Aktualisierungsabschnitt (16, 17, S210–S240). Die Beendigungsflags (7a–7d) entsprechen jeweils den CPUs. Jedes der Beendigungsflags zeigt eine Ausführungsbeendigung einer Synchronität erfordernden Verarbeitung an. Der Zähler (13) zeigt einen Zustand nachdem eine vorbestimmte Anzahl der Beendigungsflags gesetzt sind und bevor alle der Beendigungsflags gesetzt sind. Der erste Aktualisierungsabschnitt (15, S207) aktualisiert den Zählerwert. Der zweite Aktualisierungsabschnitt (16, 17, S210–S240) aktualisiert den Zählerwert und ein Zurücksetzen aller der Beendigungsflags. Jede der CPUs führt (S110–S160) die Synchronität erfordernde Verarbeitung aus. Nachdem jede der CPUs die Synchronität erfordernde Verarbeitung beendet und das entsprechende Beendigungsflag setzt, führt jede der CPUs eine Synchronität nicht erfordernde Verarbeitung aus.

Description

  • Die Erfindung betrifft eine Datenverarbeitungsvorrichtung, die mehrere CPUs beinhaltet.
  • Ein Multiprozessorsystem mit mehreren CPUs verwendet ein für jede CPU vorbereitetes Synchronizitätsflag, um eine Gleichzeitigkeit zwischen CPUs durchzuführen (vgl. zum Beispiel Patentliteratur 1). Eine konventionelle Technologie bereitet ein Synchronizitätsflag für jede CPU in einer Synchronizitätsflagregion in einem Speicher vor, auf den jede CPU zugreift. Das Synchronizitätsflag ist ein Zähler mit einem Bit oder mehr. Wenn sich jede CPU mit einer anderen CPU synchronisiert (zum Beispiel in einem Fall, in dem es notwendig ist, Zeitsequenzen einzuhalten und auf eine identische Variable in einer Speicherregion oder einer identischen I/O-Einrichtung zuzugreifen), setzt jede CPU einen Wert, der anzeigt, welche Verarbeitung ausgeführt worden ist, in das eigene Synchronizitätsflag. Wenn jede CPU eine Verarbeitung beendet und zu der folgenden Verarbeitung fortschreitet, fährt jede CPU damit fort, auf alle Synchronizitätsflags anderer CPUs Bezug zu nehmen, und wartet auf eine Bedingung dahingehend, dass alle Synchronizitätsflags einen Wert annehmen, welcher es ermöglicht, zu der folgenden Verarbeitung fortzuschreiten. Wenn alle Synchronizitätsflags den Wert annehmen, geht jede CPU zu der nächsten Verarbeitung über.
    • Patentliteratur 1: JP 2005-71109 A
  • Der Erfinder der vorliegenden Anmeldung stellte Folgendes fest. In einer konventionellen Technologie muss jede CPU für Synchronizität auf alle Synchroniziätsflags anderer CPUs Bezug nehmen. Wenn die Anzahl von CPUs zunimmt, kann die Anzahl von Bezugnahmezeiten, die für Synchronizität erforderlich ist, beschleunigt zunehmen. Für die gesamte Datenverarbeitungsvorrichtung kann eine Verarbeitungslast für Synchronizität zunehmen.
  • Der Erfindung liegt als eine Aufgabe zugrunde, eine Verarbeitungseffizienz für Synchronizität in einer Datenverarbeitungsvorrichtung mit mehreren CPUs zu verbessern.
  • In Übereinstimmung mit einem Aspekt der Erfindung beinhaltet eine Datenverarbeitungsvorrichtung eine Vielzahl von CPUs, eine Vielzahl von Beendigungsflags, einen Zähler, einen ersten Aktualisierungsabschnitt und einen zweiten Aktualisierungsabschnitt. Die mehreren Beendigungsflags entsprechen jeweils den mehreren CPUs. Jede der CPUs setzt unabhängig ein entsprechendes Beendigungsflag, das jeder der CPUs entspricht. Jedes der Beendigungsflags zeigt eine Ausführungsbeendigung einer Synchronität erfordernden Verarbeitung an. Der Zähler zeigt einen Zustand, nachdem eine vorbestimmte Anzahl der Beendigungsflags gesetzt ist und bevor alle der Beendigungsflags gesetzt sind, anhand eines Zählerwerts. Die vorbestimmte Anzahl der Beendigungsflags entspricht einem Teil einer Gesamtanzahl der Beendigungsflags der CPUs. Der erste Aktualisierungsabschnitt aktualisiert den Zählerwert, wenn die vorbestimmte Anzahl der Beendigungsflags gesetzt ist. Der zweite Aktualisierungsabschnitt aktualisiert den Zählerwert weiter und setzt alle der Beendigungsflags zurück, wenn der erste Aktualisierungsabschnitt den Zählerwert aktualisiert und alle der Beendigungsflags gesetzt sind. Jede der CPUs führt die Synchronität erfordernde Verarbeitung in Übereinstimmung mit dem durch den zweiten Aktualisierungsabschnitt aktualisierten Zählerwert aus. Nachdem jede der CPUs die Synchronität erfordernde Verarbeitung beendet und das entsprechende Beendigungsflag setzt, führt jede der CPUs eine Synchronität nicht erfordernde Verarbeitung aus.
  • In Übereinstimmung mit der Datenverarbeitungsvorrichtung ist es möglich, dass jede der CPUs auf den gemeinsamen einzelnen Zähler Bezug nimmt und die zu synchronisierende Verarbeitung ausführt. Daher ist es in der gesamten Datenverarbeitungsvorrichtung möglich, eine Verarbeitungslast für Synchronizität im Vergleich mit einer konventionellen Technologie zu reduzieren. Daher ist es möglich, die Effizienz der Verarbeitung für Synchronizität zu verbessern.
  • Jede der CPUs für die notwendig synchrone Verarbeitung in Übereinstimmung mit dem Wert des Zählers aus. Während einer Zeitspanne nach dem Abschluss bzw. der Beendigung der notwendig synchronen Verarbeitung und dem Setzen des eigenen Beendigungsflags vor dem Beginnen der folgenden notwendig synchronen Verarbeitung führt jede der CPUs die nichtnotwendig synchrone Verarbeitung aus. Daher ist es möglich, die Effizienz der Verarbeitung weiter zu verbessern.
  • Zum Beispiel sei angenommen, dass es in jeder Verarbeitung einen Abschnitt gibt, der nicht notwendigerweise ausgeführt wird. Der Abschnitt, der nicht notwendigerweise ausgeführt wird, entspricht zum Beispiel einer Verarbeitung, die nur in einem Fall ausgeführt wird, in dem eine Verarbeitungslast klein ist. In diesem Fall kann dann, wenn der Zählerwert gleich einem durch den ersten Aktualisierungsabschnitt vor der Ausführung oder während der Ausführung der Verarbeitung zu aktualisierenden Wert ist, der Abschnitt, der nicht notwendigerweise ausgeführt wird, weggelassen werden. In diesem Fall ist es möglich, schnell auf eine andere Verarbeitung umzuschalten und die Effizienz der Verarbeitung zu verbessern.
  • Das vorstehende sowie weitere Ziele, Merkmale und Vorteile der Erfindung sind der folgenden detaillierten Beschreibung unter Bezugnahme auf die beigefügten Zeichnungen besser entnehmbar. In den Zeichnungen ist
  • 1 ein Diagramm, das eine Konfiguration eines Mehrkernprozessors darstellt;
  • 2 ein Diagramm, das einen Verarbeitungsbetriebsablauf in jeder CPU darstellt;
  • 3 ein Ablaufdiagramm, das eine durch jede CPU durchgeführte Verarbeitung darstellt;
  • 4 ein Diagramm, das eine Konfiguration eines Mehrkernprozessors in einem zweiten Ausführungsbeispiel darstellt;
  • 5A ein Diagramm, das einen Verarbeitungsbetriebsablauf in jeder CPU in einem dritten Ausführungsbeispiel darstellt;
  • 5B ein Ablaufdiagramm, das eine Zählermanipulationsverarbeitung in dem dritten Ausführungsbeispiel darstellt; und
  • 6 ein Ablaufdiagramm, das eine Zählermanipulationsverarbeitung in einem vierten Ausführungsbeispiel darstellt.
  • Nachstehend wird eine erfindungsgemäße Datenverarbeitungsvorrichtung erklärt. Es wird angenommen, dass die erfindungsgemäße Datenverarbeitungsvorrichtung auf einen Mehrkernprozessor angewandt ist. Der Mehrkernprozessor in dem vorliegenden Ausführungsbeispiel ist ein Mikroprozessor, in welchem mehrere CPUs in einem einzelnen Gehäuse versammelt sind. Da jede von mehreren CPUs, die eingebaut sind, als ein CPU-Kern oder ein Kern bezeichnet werden kann, wird diese Art eines Mikroprozessors als ein Mehrkernprozessor bezeichnet.
  • (Erstes Ausführungsbeispiel)
  • Wie in 1 dargestellt beinhaltet ein Mehrkernprozessor 11 in einem ersten Ausführungsbeispiel mehrere CPUs 1a, 1b, 1c, 1d, ein ROM 2, das feste Daten und ein von jeder der CPUs 1a1d ausgeführtes Programm speichert, einen Speicher 3, der von jeder der CPUs 1a1d gemeinsam genutzt wird, I/Os bzw. Eingänge/Ausgänge 4, 5, und einen Bus 6, der die vorstehenden Elemente wechselseitig miteinander verbindet. Der Mehrkernprozessor 11 kann auch ganz einfach als ein Prozessor bezeichnet werden. Die Eingänge/Ausgänge 4, 5 entsprechen einem Beispiel einer I/O- bzw. Eingabe/Ausgabe-Einrichtung. Der Speicher 3 ist in den Ausführungsbeispielen beispielsweise ein RAM. Die Anzahl der mehreren CPUs ist in dem Ausführungsbeispiel beispielsweise gleich vier.
  • Der Prozessor 11 beinhaltet vier Beendigungsflags 7a, 7b, 7c, 7d, welche jeweils für die CPUs 1a1d bereitgestellt sind. Die Beendigungsflags 7a-7d entsprechen jeweils den CPUs 1a1d. Der Prozessor 11 beinhaltet exklusive Leitungen 9a, 9b, 9c, 9d. Die exklusiven Leitungen 9a9d verbinden jeweils die CPUs 1a1d und die Beendigungsflags 7a7d zum Setzen der Beendigungsflags 7a7d wie in 1 beschrieben. In diesem Beispiel bedeutet das Setzen von Beendigungsflags 7a7d das Schreiben von ”1” in die Beendigungsflags 7a7d mit einer einzelnen exklusiven Anweisung. Die exklusive Anweisung kann zum Beispiel eine Bitmanipulationsanweisung ”setf” sein.
  • Nebenbei bemerkt wird in dem Ausführungsbeispiel in einem Fall, in dem die CPUs 1a1d nicht besonders voneinander unterschieden werden, eine beliebige eine der CPUs 1a1d als eine CPU 1 bezeichnet werden. Ähnlich dazu wird in einem Fall, in dem die Beendigungsflags 7a7d nicht besonders voneinander unterschieden werden, ein beliebiges eines der Beendigungsflags 7a7d als ein Beendigungsflag 1 bezeichnet werden.
  • Der Prozessor 11 beinhaltet einen Zähler 13, der für die CPUs 1a1d gemeinsam vorgesehen ist. Der Prozessor 11 beinhaltet eine ODER-Schaltung 15, eine UND-Schaltung 16, und eine Addiererschaltung 17 als eine Hardwareschaltung, die den Zähler 13 in Übereinstimmung mit den Beendigungsflags 7a7d betreibt.
  • Die Zähler 13 bzw. der Zähler 13 sind bzw. ist in dem vorliegenden Ausführungsbeispiel ein Zähler mit 2 Bits oder mehr. Die CPUs 1a1d sind für den Zähler über den Bus 6 zugänglich.
  • Die ODER-Schaltung 15 setzt einen Wert eines logischen UND der Beendigungsflags 7a7d in ein geringstwertiges Bit (Least Significant Bit, LSB) des Zählers 13. Daher setzt dann, wenn eine vorbestimmte Anzahl (in diesem Beispiel 1) der Beendigungsflags 7a7d gesetzt ist, die ODER-Schaltung 15 das LSB des Zählers 13 von ”0” auf ”1”. Nebenbei bemerkt ist die vorbestimmte Anzahl der Beendigungsflags 7 ein Teil der Beendigungsflags 7a7d, das heißt, ist gleich oder kleiner als die Gesamtanzahl der Beendigungsflags 7a7d. Das Setzen des LSB des Zählers 13 von ”1” auf ”0” entspricht einem Aktualisieren eines Werts des Zählers 13 auf einen Wert, der um 1 größer ist. Das heißt, wenn das LSB des Zählers 13 von ”1” auf ”0” gesetzt wird, wird der Zähler 13 um 1 inkrementiert. Der Wert des Zählers 13 kann auch als ein Zählerwert bezeichnet werden.
  • Die Addiererschaltung 17 gibt einen Wert aus, der 1 zu einem Datenwert des zweiten Bits oder mehr des Zählers 13 addiert.
  • Wenn alle der Beendigungsflags 7a7d gesetzt sind, gibt die UND-Schaltung 16 ein Schreibfreigabesignal (Write Enable; WE-Signal) an den Zähler 13 aus. Dann wird der Ausgangswert der Addiererschaltung 17 in das zweite Bit oder mehr des Zählers 13 geschrieben. Wenn der Zähler 13 das WE-Signal ausgibt, werden alle der Beendigungsflags 7a7d zurückgesetzt (löschen auf ”0”), und wird das LSB des Zählers 13 durch die ODER-Schaltung 15 auf ”0” gesetzt. Wenn alle der Beendigungsflags 7a7d gesetzt sind, wird der Zähler 13 insgesamt um ein Inkrement fortgeschaltet.
  • Daher wird dann, wenn alle der Beendigungsflags 7a7d gesetzt sind, nachdem alle der Beendigungsflags 7a7d zurückgesetzt wurden, der Zähler 13 um insgesamt 2 Inkremente fortgeschaltet. Das heißt, wenn irgendeines der Beendigungsflags 7a7d gesetzt ist, nachdem alle der Beendigungsflags 7a7d zurückgesetzt sind, der Zähler 13 durch die ODER-Schaltung 15 um ein Inkrement fortgeschaltet (das heißt, das LSB des Zählers 13 wird auf ”1” gesetzt). Wenn alle der Beendigungsflags 7a7d gesetzt sind, wird der Zähler 13 durch die UND-Schaltung 16 um ein Inkrement weiter fortgeschaltet. Dann werden alle der Beendigungsflags 7a7d zurückgesetzt.
  • Nebenbei bemerkt zeigt ein Status bzw. Zustand, in dem das LSB des Zählers 13 gleich ”1” ist (das heißt ein Zustand, in dem der Zählerwert eine ungerade Zahl ist), einen Zustand an, in dem eines der Beendigungsflags 7a7d gesetzt worden ist und noch nicht alle der Beendigungsflags 7a7d gesetzt worden sind.
  • Der Zählerwert wird nach einem vorbestimmten finalen Wert auf 0 zurückgeführt. Eine Zeitspanne, in der der Zählerwert ausgehend von 0 erneut auf 0 zurückkehrt, entspricht einem Zyklus (vgl. 2.).
  • Nachstehend wir die Verarbeitung in jeder der CPUs 1a1d erklärt.
  • <Abriss>
  • Der Prozessor 11 ist mit zum Beispiel einer elektronischen Steuereinheit versehen, die einen Motor eines Fahrzeugs steuert. Jede der CPUs 1a1d führt eine Steuerungsverarbeitung zum Steuern des Motors aus. Die Steuerungsverarbeitung zum Steuern des Motors ist eine periodische Steuerungsverarbeitung (die auch als eine periodische Steuerungssystemverarbeitung bezeichnet wird), welche eine Periodizität aufweist.
  • Die periodische Steuerungsverarbeitung kann eine Synchronizität in einem globalen Grad grober Körnung durchführen bzw. global grob synchronisieren. Die Steuerungsverarbeitung ist in einen Abschnitt, in dem Synchronizität erforderlich ist, und einen gegenüber diesem Abschnitt anderen Abschnitt (einen Abschnitt, der keine Synchronizität erfordert), unterteilt. Nebenbei bemerkt beinhaltet die Synchronizität Exklusion. Ein Abschnitt bedeutet einen Teil der gesamten Verarbeitung. Daher ist der Synchronizität erfordernde Abschnitt eine Verarbeitung (nachstehend als eine Synchronizität erfordernde Verarbeitung bezeichnet), in der die Synchronizität erforderlich ist, und entspricht einer Verarbeitung, die geordnet ausgeführt werden sollte. Ähnlich dazu ist der keine Synchronizität erfordernde Abschnitt eine Verarbeitung (nachstehend als eine Synchronizität nicht erfordernde Verarbeitung bezeichnet), in der die Synchronizität nicht erforderlich ist, und entspricht einer Verarbeitung, die zu einer beliebigen Zeit ausgeführt werden kann. Die Verarbeitung, die zu beliebiger Zeit ausgeführt werden kann, bedeutet eine Verarbeitung, die keine zeitliche Relevanz mit einer anderen Verarbeitung aufweist.
  • In dem vorliegenden Ausführungsbeispiel wird angenommen, dass Synchronizitätsfenster W1, W2 durch den Zählerwert wie in 2 beschrieben definiert und über die CPUs 1a1d bereitgestellt werden. In jedem Synchronizitätsfenster ist der Synchronizität erfordernde Abschnitt (vgl. ein Abschnitt 1 und ein Abschnitt 2 in 2) bereitgestellt. Ferner ist es, da der keine Synchronizität erfordernde Abschnitt (vgl. einen schräg schraffierten Teil von 2) zwischen den Abschnitten 1 und 2 bereitgestellt ist, möglich, Synchronizität mit geringerem Verschnitt in einem Grad groben Korns bzw. mit geringerem unnützen Aufwand Synchronizität grob zu realisieren.
  • <Verarbeitungsanordnung>
  • Initial ist die Verarbeitung in Verarbeitungen (Synchronizität erfordernde Verarbeitungen), die Synchronizität erfordern, unterteilt. Die unterteilte Synchronizität erfordernde Verarbeitung und eine Synchronizität nicht erfordernde Verarbeitung, die auf die unterteilte Synchronizität erfordernde Verarbeitung folgt, sind zu einer Einheitsverarbeitung kombiniert.
  • Wie durch den Abschnitt 1, den Abschnitt 2 und die auf den Abschnitt 1 und den Abschnitt 2 folgenden schrägschraffieren Teile in 2 dargestellt, ist die Einheitsverarbeitung, die die Synchronizität erfordernde Verarbeitung und die Synchronizität nicht erfordernde Verarbeitung beinhaltet, in jeder der CPUs 1a1d angeordnet (eingeplant). Jede Einheitsverarbeitung ist mit dem Zählerwert assoziiert bzw. dem Zählerwert zugeordnet.
  • In 2 ist ein Abschnitt M (M ist eine Ganzzahl von 1 oder größer) der Abschnitt (die Synchronizität erfordernde Verarbeitung), der Synchronizität erfordert, und ist der auf den Abschnitt M folgende schrägschraffierte Teil ein Abschnitt (der Synchronizität nicht erfordernde Abschnitt), der keine Synchronizität erfordert. Der keine Synchronizität erfordernde Abschnitt ist unabhängig von einem Ausführungsinhalt anderer CPUs 1 ausführbar.
  • In 2 entspricht ein Fall, in dem der Zählerwert gleich 0 oder 1 ist, dem Synchronizitätsfenster W1. Der Abschnitt 1 ist an dem Synchronizitätsfenster W1 angeordnet. Ein Fall, in dem der Zählerwert gleich 2 oder 3 ist, entspricht dem Synchronizitätsfenster W2. Der Abschnitt 2 ist an dem Synchronizitätsfenster W2 angeordnet. Das heißt, ein Fall, in dem der Zählerwert N (N ist 0 oder eine größere gerade Zahl) und (N + 1) ist entspricht einem Synchronizitätsfenster Wm (M = N/2 + 1). Ein Abschnitt M ist an dem Synchronizitätsfenster Wm angeordnet.
  • Zum Beispiel ist der Abschnitt 1 der CPU 1a eine Verarbeitung, in welcher die CPU 1a auf den Eingang/Ausgang 4 zugreift. Der Abschnitt 1 der CPU 1b ist eine Verarbeitung, in welcher die CPU 1b auf den Eingang/Ausgang 5 zugreift. Der Abschnitt 1 der CPU 1c ist eine Verarbeitung, in welcher die CPU 1c auf eine Variable Da in dem Speicher 3 zugreift. Der Abschnitt 1 der CPU 1d ist eine Verarbeitung, in welcher die CPU 1d auf eine Variable Db in dem Speicher 3 zugreift. Der Abschnitt 1 der CPU 1a ist eine Verarbeitung, in welcher die CPU 1a auf den Eingang/Ausgang 5 zugreift. Der Abschnitt 1 der CPU 1b ist eine Verarbeitung, in welcher die CPU 1b auf den Eingang/Ausgang 4 zugreift. Der Abschnitt 1 der CPU 1c ist eine Verarbeitung, in welcher die CPU 1c auf eine Variable Da in dem Speicher 3 zugreift. Der Abschnitt 1 der CPU 1d ist eine Verarbeitung, in welcher die CPU 1d auf eine Variable Dd in dem Speicher 3 zugreift. Folglich ist vorgesehen bzw. geplant, dass nicht gleichzeitig von mehreren CPUs 1 aus auf ein identisches Zugriffsziel zugegriffen wird.
  • <Verarbeitungsbetriebsablauf in jeder CPU>
  • Wie in 2 dargestellt, sind dann, wenn der Zählerwert 0 ist, die CPUs 1a1d in dem Abschnitt 1, und führt jede der CPUs 1a1d die Synchronizität erfordernde Verarbeitung der ”dem Zählerwert = 0” entsprechenden Einheitsverarbeitungen aus. Wenn die Synchronizität erfordernde Verarbeitung abgeschlossen bzw. beendet ist, setzt jede der CPUs 1a1d ihr eigenes Beendigungsflag 7a7d. Dann führt jede der CPUs 1a1d die Synchronizität nicht erfordernde Verarbeitung (den auf den Abschnitt 1 folgenden schrägschraffierten Teil in 2) der Einheitsverarbeitungen aus. Nebenbei bemerkt wird dann, wenn irgend eines der Beendigungsflags 7a7d gesetzt ist, der Zähler 13 um ein Inkrement fortgeschaltet (das heißt, das LSB wird auf ”1” gesetzt).
  • Wenn alle der CPUs 1a1d die Beendigungsflags 7a7d setzen, wird der Zähler 13 um ein Inkrement fortgeschaltet, und dann werden alle der Beendigungsflags 7a7d zurückgesetzt. Daher wird dann, wenn alle der Beendigungsflags 7a7d gesetzt werden, nachdem alle der Beendigungsflags 7a7d zurückgesetzt sind, der Zähler 13 um insgesamt zwei Inkremente fortgeschaltet.
  • Daher nimmt dann, wenn die Synchronizität nicht erfordernde Verarbeitung abgeschlossen ist, jede der CPUs 1a1d auf den Zählerwert des Zählers 13 Bezug, und wartet, bis der Zähler 13 um zwei Inkremente fortgeschaltet ist.
  • Wenn jede der CPUs 1a1d erfasst, dass der Zähler 13 um zwei Inkremente fortgeschaltet ist, beginnt jede der CPUs 1a1d die Synchronizität erfordernde Verarbeitung (der Abschnitt 2 in 2), welche in diesem Beispiel in einer folgenden Einheitsverarbeitung liegt und ”dem Zählerwert = 2” entspricht. Wenn der Zähler 13 zu der Zeit, zu der die Synchronizität nicht erfordernde Verarbeitung abgeschlossen ist, bereits um zwei Inkremente fortgeschaltet worden ist, beginnt eine CPU 1 in der folgenden Einheitsverarbeitung unmittelbar eine Synchronizität erfordernde Verarbeitung. Das heißt, das jede der CPUs 1a1d die folgende Synchronizität erfordernde Verarbeitung beginnt, nachdem jede der CPUs 1a1d erfasst, dass alle der CPUs 1a1d die Synchronizität erfordernde Verarbeitung der gegenwärtigen Zeit beenden.
  • Wenn jede der CPUs 1a1d den Abschnitt 2 in 2 beendet, setzt die jede der CPUs 1a1d das eigene Beendigungsflag 7, und führt dann die Synchronizität nicht erfordernde Verarbeitung (den schrägschraffierten Teil, der in 2 auf den Abschnitt 2 folgt) aus.
  • Der identische Betriebsablauf wird wiederholt. Wenn der Zählerwert von einem vorbestimmten finalen Wert bzw. Endwert auf 0 zurückkehrt (das heißt, wenn alle die periodischen Verarbeitungen in einem einzelnen Zyklus abgeschlossen sind), führt jede der CPUs 1a1d die ”dem Zählerwert = 0” entsprechende Einheitsverarbeitung erneut aus.
  • Nachstehend wird die Verarbeitung in jeder der CPUs 1a1d unter Bezugnahme auf 3 erklärt.
  • Wie in 3 dargestellt, liest dann, wenn eine CPU 1 den Betriebsablauf beginnt, die CPU 1 den Zählerwert des Zählers 13 in S110. In S120 ermittelt die CPU 1, ob das LSB in dem Zähler 13 gleich 0 ist oder nicht.
  • Wenn die CPU 1 ermittelt, dass das LSB des Zählers 13 nicht gleich 0 ist (S120: NEIN), kehrt die Verarbeitung zu S110 zurück. Das LSB des Zählers 13 ist gleich 1, und die Verarbeitung kehrt zu S110 zurück.
  • Wenn ermittelt wird, dass das LSB des Zählers 13 gleich 0 ist (S120: JA), ermittelt die CPU 1, dass der Zähler 13 um zwei Inkremente fortgeschaltet ist, und geht zu S130 über. Die Situation, dass der Zähler 12 um zwei Inkremente fortgeschaltet ist, bedeutet, dass der Zählerwert durch die UND-Schaltung 16 aktualisiert ist, und dass eine folgende Einheitsverarbeitung ausgeführt werden kann.
  • In S130 springt die CPU 1 zu einer Kopfadresse (im Einzelnen, einer Kopfadresse eines Programms einer Aufgabe) einer dem gegenwärtigen Zählerwert (nämlich dem in S110 gelesenen Zählerwert) entsprechenden Aufgabe.
  • Die Aufgabe entspricht der Einheitsverarbeitung. Nebenbei bemerkt beinhaltet die Aufgabe eine Anweisung (entsprechend der exklusiven Anweisung in dem vorliegenden Ausführungsbeispiel) zum Setzen des Beendigungsflags 7 einer entsprechenden CPU 1. Die Anweisung wird bei S150 ausgeführt. Das ROM 2 speichert eine Aufgabentabelle, die die Kopfadresse der dem Zählerwert entsprechenden Aufgabe beschreibt. In S130 nimmt die CPU 1 auf die Aufgabentabelle Bezug, spezifiziert die Kopfadresse der dem gegenwärtigen Zählerwert entsprechenden Aufgabe, und springt zu der spezifizierten Kopfadresse.
  • Wenn die CPU 1 zu der Kopfadresse der Aufgabe springt, führt die CPU 1 initial die Synchronizität erfordernde Verarbeitung unter den Aufgaben aus (S140). Wenn die CPU 1 eine Ausführung der Synchronizität erfordernden Verarbeitung beendet, setzt die CPU 1 das eigene Beendigungsflag 7 (S150), und dann führt die CPU 1 die Synchronizität nicht erfordernde Verarbeitung unter den Aufgaben aus (S160). Das eigene Beendigungsflag 7 kann auch als ein entsprechendes Beendigungsflag 7, das der CPU 1 entspricht, bezeichnet werden.
  • Wenn die CPU 1 die Synchronizität nicht erfordernde Verarbeitung beendet, kehrt die Verarbeitung zu S110 zurück. Wenn das LSB des Zählers 13 0 wird (oder das LSV bereits gleich 0 ist), führt die CPU 1 erneut die Verarbeitungen nach S130 durch und führt die folgende Einheitsverarbeitung (die Aufgabe) aus.
  • In den Prozessoren 11 sind die Beendigungsflags 7a7d jeweils für CPUs 1a1d bereitgestellt. Darüber hinaus ist der für die CPUs 1a1d gemeinsame Zähler 13 bereitgestellt. Wenn eines der Beendigungsflags 7a7d gesetzt wird, wird der Zähler 13 um ein Inkrement weitergeschaltet. Wenn alle der Beendigungsflags 7a7d gesetzt sind, wird der Zähler 13 um ein weiteres Inkrement fortgeschaltet, und werden die Beendigungsflags 7a7d zurückgesetzt.
  • Jede der CPUs 1a1d führt die Synchronizität erfordernde Verarbeitung in Übereinstimmung mit einem geraden, durch Setzen aller der Beendigungsflags 7a7d aktualisierten Zählerwert aus. Wenn jede der CPUs 1a1d die Synchronizität erfordernde Verarbeitung beendet und das jeder der CPUs 1a1d entsprechende Beendigungsflag setzt, führt jede der CPUs 1a1d die Synchronizität nicht erfordernde Verarbeitung aus.
  • In dem Prozessor 11 ist es möglich, dass jede der CPUs 1a1d auf den gemeinsamen Zähler 13 Bezug nimmt und die Synchronizität erfordernde Verarbeitung durchführt. Daher ist es möglich, im Vergleich mit einer konventionellen Technologie insgesamt eine Verarbeitungslast für Synchronizität zu reduzieren. Daher ist es möglich, die Effizienz der Verarbeitung für Synchronizität zu verbessern.
  • Jede der CPUs 1a1d führt die Synchronizität erfordernde Verarbeitung in Übereinstimmung mit dem Zählerwert aus. Während einer Zeitspanne nach Beenden der Synchronizität erfordernden Verarbeitung und Setzen des entsprechenden Beendigungsflags 7 vor Beginnen der folgenden Synchronizität erfordernden Verarbeitung führt jede der CPUs 1a1d die Synchronizität nicht erfordernde Verarbeitung aus. Daher ist es möglich, die Effizienz der Verarbeitung weiter zu verbessern.
  • Es wird angenommen, dass es einen Abschnitt gibt, der nicht in jeder Verarbeitung ausgeführt werden muss. In diesem Fall kann dann, wenn das LSB des Zählers 13 gleich 1 ist, zumindest eine der CPUs 1a1d die Verarbeitung entsprechend dem Abschnitt, der nicht ausgeführt zu werden braucht, überspringen.
  • In diesem Fall ist es möglich, rasch zu einer anderen Verarbeitung umzuschalten, und die Effizienz der Verarbeitung zu verbessern.
  • Jede der CPUs 1a1d setzt das die eigenen Beendigungsflags 7a7d mit einer einzelnen exklusiven Anweisung. Es ist möglich, die Verarbeitungslast zu verringern. Es ist möglich, von der Synchronizität erfordernden Verarbeitung rasch auf die Synchronizität nicht erfordernde Verarbeitung umzuschalten.
  • Da eine Manipulation (eine Aktualisierung des Werts des Zählers) des Zählers 13 durch die exklusive Hardwareschaltung, die sich von den CPUs 1a1d unterscheidet, durchgeführt wird, ist es möglich, die Verarbeitungslast der CPUs 1a1d weiter zu reduzieren.
  • Die Anzahl von Bits des Zählers 13 ist nicht notwendigerweise 2 Bits oder mehr. Die Anzahl von Bits kann 1 Bit sein, welches die kleinste Einheit ist. Das heißt, die Anzahl von Bits kann wahlfrei bestimmt werden. Wenn der Zählerwert innerhalb eines Zyklus der periodischen Steuerungsverarbeitung überläuft, kann die Anzahl von Bits ermittelt werden, um ein Inkrement zu erfassen, während ein Überlauf berücksichtigt wird.
  • Nebenbei bemerkt kann dann, wenn mehrere Synchronizität nicht erfordernde Verarbeitungen in einem Teil der CPUs 1 fortgesetzt werden, der Teil der CPUs 1 mehrere die Synchronisation nicht erfordernde Abschnitte zusammen ausführen. In diesem Fall kann die CPU 1, die die zusammengefassten Abschnitte ausführt, warten, bis der Zählerwert um Inkremente des zweifachen der Anzahl der zusammengefassten Abschnitte weitergeschaltet ist, bevor sie einen auf die zusammengefassten, Synchronizität nicht erfordernden Abschnitte folgenden Folgeabschnitt beginnt. Es wird angenommen, dass die Anzahl von Bits des Zählers 13 gleich N ist. In diesem Fall ist es möglich, eine Verarbeitung von 2^(N–1) oder weniger zusammenzufassen.
  • (Zweites Ausführungsbeispiel)
  • Der Prozessor in dem zweiten Ausführungsbeispiel wird erklärt. Zu dem ersten Ausführungsbeispiel ähnlichen Komponenten und Verarbeitungen werden die zu dem ersten Ausführungsbeispiel identischen Symbole gegeben, und eine Erklärung wird weggelassen.
  • Im Vergleich zu dem Prozessor 11 in dem ersten Ausführungsbeispiel weist ein Prozessor 21 in dem zweiten Ausführungsbeispiel wie in 4 dargestellt die exklusiven Leitungen 9a9d nicht auf und setzt das Beendigungsflag 7 entsprechend jeder der CPUs 1a1d über den Bus 6. Daher setzt jede der CPUs 1a1d das jeder der CPUs 1a1d entsprechende Beendigungsflag 7 durch eine Anweisung einer allgemeinen Software.
  • Zum Beispiel kann dann, wenn die Bitmanipulationsanweisung für jedes der Beendigungsflags 7a7d nicht vorhanden ist, jede der CPUs 1a1d eine Leseanweisung, eine Berechnungsanweisung und eine Schreibanweisung ausführt. In Übereinstimmung mit der Leseanweisung werden alle der Beendigungsflags 7a7d als ein Datum aus mehreren Bits in ein internes Register gelesen. In Übereinstimmung mit der Berechnungsanweisung wird ein Bit ”0” nur in dem Bit durch bzw. auf ”1” ersetzt, das unter den gelesenen mehreren Bits dem entsprechenden Beendigungsbit 7 entspricht. In Übereinstimmung mit der Schreibanweisung wird ein Datum nach der Ausführung der Berechnungsanweisung in die Beendigungsflags 7a7d geschrieben.
  • In Übereinstimmung mit dem Prozessor 21 in dem zweiten Ausführungsbeispiel wird (außer der Wirkung durch die exklusive Anweisung) eine zu dem ersten Ausführungsbeispiel ähnliche Wirkung erhalten.
  • (Drittes Ausführungsbeispiel)
  • Ein Prozessor in dem dritten Ausführungsbeispiel weist im Vergleich zu den Prozessoren 11, 21 in dem ersten Ausführungsbeispiel und dem zweiten Ausführungsbeispiel die UND-Schaltung 16 und die Addiererschaltung 17 nicht auf. Eine einzelne vorbestimmte CPU (hierin zum Beispiel die CPU 1a) der CPU 1 unter den CPUs 1a1d hat Funktionen, die zu der UND-Schaltung 16 und der Addiererschaltung 17 ähnlich sind. Die Einzel-CPU 1a ermöglicht es zum Beispiel, auf die Beendigungsflags 7a7d über den Bus 6 zuzugreifen.
  • Wie in 5A und 5B dargestellt, führt dann, wenn die CPU 1a die Synchronizität erfordernde Verarbeitung der Einheitsverarbeitungen beendet und das Beendigungsflag 7a setzt, die CPU 1a die in 5B dargestellte Zählermanipulationsverarbeitung aus, und führt dann die Synchronizität nicht erfordernde Verarbeitung aus. Das heißt, die Zählermanipulationsverarbeitung wird zwischen S150 und S160 von 3 in der CPU 1a durchgeführt.
  • In S210 liest die CPU 1a die Beendigungsflags 7a7d in der Zählermanipulationsverarbeitung. In S220 ermittelt die CPU 1a, ob alle der Beendigungsflags 7a7d gleich ”1” sind (das heißt, ob alle der Beendigungsflags 7a7d gesetzt sind). Wenn nicht alle der Beendigungsflags 7a7d gleich ”1” sind, kehrt die Verarbeitung zu S210 zurück.
  • Wenn in S220 ermittelt wird, dass alle der Beendigungsflags 7a7d gleich ”1” sind, geht die Verarbeitung zu S230 über. In S230 aktualisiert die CPU 1a den Zählerwert, und wird der Zähler 13 um ein Inkrement weitergeschaltet. Zum Beispiel liest die CPU 1a den gegenwärtigen Zählerwert und schreibt einen Wert, zu dem 1 addiert ist, in den Lesewert in dem Zähler 13. In S240 setzt die CPU 1a alle der Beendigungsflags 7a7d zurück, und beendet dann die Zählermanipulationsverarbeitung.
  • In Übereinstimmung mit dem Prozessor in dem dritten Ausführungsbeispiel wird die zu dem ersten Ausführungsbeispiel und dem zweiten Ausführungsbeispiel ähnliche Wirkung erhalten. Nebenbei bemerkt kann es genügen, dass eine einzelne CPU unter den mehreren CPUs auf die Beendigungsflags Bezug nimmt. Das heißt, dass nur die CPU 1a unter den CPUs 1a1d auf die Beendigungsflags 7a7d Bezug nimmt.
  • In einem modifizierten Beispiel kann die Zählermanipulationsverarbeitung in 5B nach der Synchronizität nicht erfordernden Verarbeitung ausgeführt werden.
  • (Viertes Ausführungsbeispiel)
  • Im Vergleich mit den Prozessoren 11, 21 in dem ersten Ausführungsbeispiel und dem zweiten Ausführungsbeispiel weist ein Prozessor in einem vierten Ausführungsbeispiel die ODER-Schaltung 15, die UND-Schaltung 16 und die Addiererschaltung 17 nicht auf. In dem vorliegenden Ausführungsbeispiel hat eine CPU 1, die das Beendigungsflag 7 an erster Stelle unter den CPUs 1a1d setzt, nachdem alle der Beendigungsflags 7a7d zurückgesetzt sind, eine zu der ODER-Schaltung 15, der UND-Schaltung 16 und der Addiererschaltung 17 ähnliche Funktion. Die CPU 1 unter den CPUs 1a1d, die das Beendigungsflag 7 an erster Stelle setzt, nachdem alle der Beendigungsflags 7a7d zurückgesetzt sind, wird als eine führende CPU 1 bezeichnet. Nebenbei bemerkt entspricht die CPU 1 einem Beispiel einer initialen CPU.
  • Daher führt dann, wenn jede der CPUs 1a1d die Synchronizität erfordernde Verarbeitung der Einheitsverarbeitungen beendet und das entsprechende Beendigungsflag 7a7d entsprechend jeder der CPUs 1a1d setzt, jede der CPUs 1a1d die in 6 dargestellte Zählermanipulationsverarbeitung aus, und führt dann die Synchronität nicht erfordernde Verarbeitung aus.
  • Wie in 6 beschrieben, liest jede der CPUs 1a1d die Beendigungsflags 7a7d in der Zählermanipulationsverarbeitung in S200. Jede der CPUs 1a1d ermittelt in S205, ob nur das eigene Beendigungsflag 7 unter allen der Beendigungsflags 7a7d gleich ”1” ist. Wenn jede der CPUs 1a1d eine verneinende Entscheidung ermittelt (S205: NEIN), das heißt, wenn ein anderes Beendigungsflag 7 als das eigene Beendigungsflag 7 ebenfalls gleich ”1” ist, wird die Zählermanipulationsverarbeitung beendet.
  • Wenn jede der CPUs 1a1d eine bejahende Entscheidung ermittelt (S20: JA), das heißt, wenn nur das entsprechende Beendigungsflag 7 gleich ”1” ist, geht die Verarbeitung zu S207 über, und wird das LSB des Zählers 13 auf ”1” gesetzt. In einem Fall, in dem eine CPU 1 eine bejahende Entscheidung ermittelt, entspricht die CPU 1 einer CPU 1, die das eigene Beendigungsflag 7 an erster Stelle setzt, und entspricht der führenden CPU 1. Daher hat die vorstehende Konfiguration die zu der ODER-Funktion 15 ähnliche Funktion.
  • Die CPU 1 (die führende CPU 1), die die Verarbeitung bei S207 durchführt, führt eine Verarbeitung durch, die identisch mit S210–S240 in 5B ist und in dem dritten Ausführungsbeispiel erklärt wurde. Demgemäß hat die CPU 1 eine Funktion ähnlich zu der UND-Schaltung 16 und der Addiererschaltung 17. Dann endet die Zählermanipulationsverarbeitung.
  • In Übereinstimmung mit dem Prozessor in dem vierten Ausführungsbeispiel ist es möglich, die Wirkung ähnlich zu dem ersten Ausführungsbeispiel und dem zweiten Ausführungsbeispiel zu machen. Nebenbei bemerkt führt jede der CPUs 1a1d die Verarbeitung von S200 und S205 nur einmal in der Zählermanipulationsverarbeitung von 6 durch. Nur eine einzelne CPU 1, die die bejahende Entscheidung in bei S205 ermittelt, führt unter den CPUs 1a1d die Verarbeitung von S207–S240 durch.
  • Als ein modifiziertes Beispiel ist es dann, wenn die ODER-Schaltung 15 bereitgestellt ist, möglich, die Verarbeitung von S207 in 6 zu entfernen.
  • Obwohl Ausführungsbeispiele hierin beschrieben wurden, ist die Erfindung nicht auf ein vorliegendes Ausführungsbeispiel beschränkt, sondern kann verschiedene Modi haben. Ein beliebiger Zahlenwert in den vorliegenden Ausführungsbeispielen ist ein Beispiel, und kann einen anderen Wert aufweisen.
  • Zum Beispiel kann in dem ersten Ausführungsbeispiel und dem dritten Ausführungsbeispiel die CPU 1a1d ”1” in das LSB des Zählers 13 setzen, ohne dass die ODER-Schaltung 15 bereitgestellt ist. Im Einzelnen kann jede der CPUs 1a1d zu der Zeit, zu der jede der CPUs 1a1d das Beendigungsflag 7 entsprechend jeder der CPUs 1a1d setzt, ”1” in das LSB in dem Zähler 13 setzen.
  • Die vorbestimmte Zahl ist nicht auf 1 beschränkt, sondern es kann wahlfrei eine beliebige Zahl kleiner als eine Gesamtanzahl der CPU 1 festgelegt werden. Zum Beispiel kann eine andere Schaltung anstelle der ODER-Schaltung 15 bereitgestellt sein. Die Schaltung setzt ”1” in das LSB in dem Zähler 13, wenn zwei oder drei der Beendigungsflags 7a7d gesetzt sind. Eine Weise zum Aktualisieren des Zählerwerts kann auch wahlfrei bestimmt werden. Zum Beispiel kann der Zählerwert um zwei oder drei erhöht werden.
  • Eine in einem einzelnen Konfigurationselement enthaltene Funktion kann auf mehrere Konfigurationselemente verteilt sein, und in mehreren Konfigurationselementen enthaltene Funktionen können auf ein einzelnes Konfigurationselement vereint sein. Zumindest ein Teil der Konfiguration in den vorliegenden Ausführungsbeispielen kann durch eine bekannte Konfiguration mit identischer Funktion ersetzt werden. Ein Teil der Konfiguration in den vorliegenden Ausführungsbeispielen kann weggelassen werden. Zumindest ein Teil der Konfiguration in einem Ausführungsbeispiel kann zu der Konfiguration in einem anderen Ausführungsbeispiel hinzugefügt oder in diesem ausgetauscht werden. Zusätzlich zu dem Prozessor kann die Erfindung durch eine Steuervorrichtung und ein System mit dem Prozessor als Konfigurationselement, ein durch jede CPU in dem Prozessor ausgeführtes Programm, ein das Programm speicherndes Medium, ein Datenverarbeitungsverfahren und andere verschiedenartige Modi bereitgestellt werden.
  • Es wird angemerkt, dass ein Ablaufdiagramm oder eine Verarbeitung des Ablaufdiagramms in der vorliegenden Anmeldung Schritte (die auch als Abschnitte bezeichnet werden) beinhalten, von welchen jeder als zum Beispiel S110 repräsentiert ist. Ferner kann jeder Schritt in mehrere Unterschritte aufgeteilt sein, und können mehrere Schritte zu einem einzelnen Schritt kombiniert sein.
  • Während die Datenverarbeitungsvorrichtung unter Bezugnahme auf Ausführungsbeispiele derselben beschrieben wurde, versteht sich, dass die Erfindung nicht auf die Ausführungsbeispiele und Konstruktionen beschränkt ist. Die Datenverarbeitungsvorrichtung zielt darauf ab, verschiedene Modifikationen und äquivalente Anordnungen abzudecken. Während die verschiedenen Kombinationen und Konfigurationen beschrieben wurden, liegen andere Kombinationen und Konfigurationen, die mehr, weniger oder nur ein einzelnes Element beinhalten, ebenfalls innerhalb des Schutzbereichs der Erfindung.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • JP 2005-71109 A [0002]

Claims (8)

  1. Datenverarbeitungsvorrichtung, beinhaltend: eine Vielzahl von CPUs (1a1d); eine Vielzahl von Beendigungsflags (7a7d), die jeweils der Vielzahl der CPUs entsprechen, wobei jede der CPUs unabhängig ein entsprechendes Beendigungsflag setzt, das jeder der CPUs entspricht, und jedes der Beendigungsflags eine Ausführungsbeendigung einer Synchronität erfordernden Verarbeitung anzeigt; einen Zähler (13), der einen Zustand zeigt, nachdem eine vorbestimmte Anzahl der Beendigungsflags gesetzt ist und bevor alle der Beendigungsflags gesetzt sind, anhand eines Zählerwerts, wobei die vorbestimmte Anzahl der Beendigungsflags einem Teil einer Gesamtanzahl der Beendigungsflags der CPUs entspricht; einen ersten Aktualisierungsabschnitt (15, S207), der den Zählerwert aktualisiert, wenn die vorbestimmte Anzahl der Beendigungsflags gesetzt ist; und einen zweiten Aktualisierungsabschnitt (16, 17, S210–S240), der den Zählerwert weiter aktualisiert und alle der Beendigungsflags zurücksetzt, wenn der erste Aktualisierungsabschnitt den Zählerwert aktualisiert und alle der Beendigungsflags gesetzt sind, wobei: jede der CPUs die Synchronität erfordernde Verarbeitung in Übereinstimmung mit dem durch den zweiten Aktualisierungsabschnitt aktualisierten Zählerwert ausführt (S110–S160); und nachdem jede der CPUs die Synchronität erfordernde Verarbeitung beendet und das entsprechende Beendigungsflag setzt, jede der CPUs eine Synchronität nicht erfordernde Verarbeitung ausführt.
  2. Datenverarbeitungsvorrichtung nach Anspruch 1, bei der: zumindest einer des ersten Aktualisierungsabschnitts (15) und des zweiten Aktualisierungsabschnitts (16, 17) eine Hardwareschaltung ist.
  3. Datenverarbeitungsvorrichtung nach Anspruch 1 oder 2, bei der: der erste Aktualisierungsabschnitt (15) und der zweite Aktualisierungsabschnitt (16, 17) eine Hardwareschaltung sind.
  4. Datenverarbeitungsvorrichtung nach Anspruch 1, bei der: eine einzelne vorbestimmte CPU der CPUs als der zweite Aktualisierungsabschnitt (S210–S240) funktioniert.
  5. Datenverarbeitungsvorrichtung nach Anspruch 1, bei der: eine initiale CPU eine CPU ist, die das entsprechende Beendigungsflag an erster Stelle unter den CPUs setzt, nachdem alle der Beendigungsflags zurückgesetzt sind; und die initiale CPU als der zweite Aktualisierungsabschnitt (S210–S240) funktioniert.
  6. Datenverarbeitungsvorrichtung nach Anspruch 5, bei der: die vorbestimmte Anzahl gleich eins ist; und die initiale CPU auch als der erste Aktualisierungsabschnitt (S207) funktioniert.
  7. Datenverarbeitungsabschnitt nach einem der Ansprüche 1 bis 6, bei der: jede der CPUs das entsprechende Beendigungsflag durch eine exklusive Anweisung setzt.
  8. Datenverarbeitungsvorrichtung nach einem der Ansprüche 1 bis 7, bei der: die vorbestimmte Anzahl gleich eins ist; der erste Aktualisierungsabschnitt den Zählerwert durch Setzen von eins in ein geringstwertiges Bit des Zählers aktualisiert, wenn eines der Beendigungsflags gesetzt ist; der zweite Aktualisierungsabschnitt den Zählerwert durch Vorschieben eines Inkrements aktualisiert, wenn alle der Beendigungsflags gesetzt sind; und die CPUs die Synchronität erfordernde Verarbeitung jedes Mal dann ausführt, wenn der Zählerwert um zwei erhöht ist.
DE102015213370.2A 2014-07-18 2015-07-16 Datenverarbeitungsvorrichtung Pending DE102015213370A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014148159A JP6160571B2 (ja) 2014-07-18 2014-07-18 データ処理装置
JP2014-148159 2014-07-18

Publications (1)

Publication Number Publication Date
DE102015213370A1 true DE102015213370A1 (de) 2016-01-21

Family

ID=55021992

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015213370.2A Pending DE102015213370A1 (de) 2014-07-18 2015-07-16 Datenverarbeitungsvorrichtung

Country Status (2)

Country Link
JP (1) JP6160571B2 (de)
DE (1) DE102015213370A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6535304B2 (ja) * 2016-08-26 2019-06-26 日本電信電話株式会社 分散同期処理システムおよび分散同期処理方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005071109A (ja) 2003-08-25 2005-03-17 Hitachi Ltd マルチプロセッサシステムの同期方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07141300A (ja) * 1993-11-18 1995-06-02 Nippon Telegr & Teleph Corp <Ntt> マルチプロセッサを用いた周期処理方法
JPH11312148A (ja) * 1998-04-28 1999-11-09 Hitachi Ltd バリア同期方法及び装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005071109A (ja) 2003-08-25 2005-03-17 Hitachi Ltd マルチプロセッサシステムの同期方法

Also Published As

Publication number Publication date
JP6160571B2 (ja) 2017-07-12
JP2016024614A (ja) 2016-02-08

Similar Documents

Publication Publication Date Title
DE19914210B4 (de) Verfahren und Prozessor für eine gestaffelte Ausführung einer Anweisung
DE102013014169A1 (de) Dynamisch grössenveränderbare Zirkularpuffer
DE2731188A1 (de) Datenverarbeitungssystem
DE3535436C2 (de)
DE102013013137A1 (de) Mehrstufige registerumbenennung durch entfernen von abhängigkeiten
DE112020005987T5 (de) Setzen von prüfpunkten in akkumulatorregister-ergebnissen in einem mikroprozessor
DE112014000340T5 (de) Vorablesezugriff auf Daten für einen Chip mit einem übergeordneten Kern und einem Scout-Kern
DE112018006540T5 (de) Dynamisches ersetzen eines aufrufs einer software-bibliothek durch einen aufruf eines beschleunigers
DE112019005584T5 (de) Arithmetiksteuervorrichtung
DE3400723A1 (de) Vektorprozessor
DE19957594B4 (de) Verfahren zum Synchronisieren von threads eines Computerprogramms
DE102016202305A1 (de) Verfahren und Vorrichtung zum Betreiben eines Steuergeräts
DE102015213370A1 (de) Datenverarbeitungsvorrichtung
DE112015006860T5 (de) Applikationsausführungsvorrichtung und Applikationsausführungsverfahren
DE112018007428T5 (de) Vorrichtung zur informationsverarbeitung, tuningverfahren undtuningprogramm
DE3307194A1 (de) Datenverarbeitungsanlage
DE112015006856T5 (de) Applikationsausführungsvorrichtung und Applikationsausführungsverfahren
DE102019111564A1 (de) Verfahren und system zum konfigurieren von filterobjekten für eine controller area network-steuerung
DE112015007097B4 (de) Übertragungssteuervorrichtung, Fahrzeug und Übertragungssteuerverfahren
DE102013114508A1 (de) Blockbasierte Signalverarbeitung
DE2813079C3 (de) Mehrrechnersystem hoher Sicherheit
DE112020005072T5 (de) Datenverarbeitungseinrichtung
DE102017200571A1 (de) Datenverarbeitungseinrichtung
DE102020213323A1 (de) Datenverarbeitungsnetzwerk zur Datenverarbeitung
DE10228778A1 (de) Hardware-Verfahren zum Implementieren von atomischen Semaphoroperationen unter Verwendung von Codemakros

Legal Events

Date Code Title Description
R012 Request for examination validly filed