DE102021108857A1 - MULTIPROCESSOR SYSTEM - Google Patents

MULTIPROCESSOR SYSTEM Download PDF

Info

Publication number
DE102021108857A1
DE102021108857A1 DE102021108857.7A DE102021108857A DE102021108857A1 DE 102021108857 A1 DE102021108857 A1 DE 102021108857A1 DE 102021108857 A DE102021108857 A DE 102021108857A DE 102021108857 A1 DE102021108857 A1 DE 102021108857A1
Authority
DE
Germany
Prior art keywords
processing
parallel processing
processor
multiprocessor system
until
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
DE102021108857.7A
Other languages
German (de)
Inventor
Takahito Kusumoto
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 DE102021108857A1 publication Critical patent/DE102021108857A1/en
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
    • G06F9/522Barrier synchronisation

Abstract

In einem Multiprozessorsystem 16 wird mindestens eine von Unterverarbeitungen paralleler Verarbeitung (n + 1) vorläufig durch einen oder mehrere Prozessoren in einem Bereitschaftszustand von Prozessorelementen 40a bis 40n vor der parallelen Verarbeitung (n + 1) ausgeführt, so dass mindestens ein Teil von Anweisungen und Daten, der in der parallelen Verarbeitung (n + 1) verwendet wird, von einem ROM 22 oder RAM 24 ausgelesen wird und ein einem L2-Cache 44 gespeichert wird.In a multiprocessor system 16, at least one of sub-processing of parallel processing (n + 1) is provisionally executed by one or more processors in a standby state of processor elements 40a to 40n before the parallel processing (n + 1), so that at least a part of instructions and data used in the parallel processing (n + 1) is read out from a ROM 22 or RAM 24 and stored in an L2 cache 44.

Description

Die vorliegende Offenbarung betrifft ein Multiprozessorsystem mit mehreren Prozessoren.The present disclosure relates to a multiprocessor system having multiple processors.

Beispielsweise offenbart Patentdokument 1 eine Informationsverarbeitungsvorrichtung, die eine CPU hat, die mehrere Prozessorkerne beinhaltet. Patentdokument 1 offenbart ein Verfahren zum Verkürzen der Zeit zum Vorladen einer Nachschlagtabelle, die in einer Hauptspeichervorrichtung gespeichert ist, in einen Cache, wobei die Nachschlagtabelle in einer Verarbeitung zum Ausbilden eines Bilds auf einem Medium wie Papier verwendet wird. Insbesondere ist die Nachschlagtabelle in N (N ist eine Ganzzahl) Stücke von Daten (als Teildaten bezeichnet) unterteilt und die unterteilten N Teildaten sind jeweils N Prozessorkernen zugewiesen. Jeder Prozessorkern stellt einem gemeinsam genutzten L2-Cache-Speicher eine Datenleseanforderung bereit, um die zugewiesenen Teildaten auszulesen. Der L2-Cache-Speicher hat ein Lesemittel und das Lesemittel liest die entsprechenden Teildaten aus einer Hauptspeichervorrichtung in Antwort auf die Datenleseanforderung von jedem Prozessorkern aus. Demzufolge werden alle Teildaten von der Hauptspeichervorrichtung in den L2-Cache-Speicher vorgeladen (das heißt, die Nachschlagtabelle wird in den L2-Cache-Speicher kopiert). Da das Vorladen durch jeden Prozessorkern parallel ausgeführt wird, wird die Zeit, die zum Kopieren der Nachschlagtabelle erforderlich ist, reduziert.For example, Patent Document 1 discloses an information processing apparatus having a CPU including a plurality of processor cores. Patent Document 1 discloses a method of shortening the time for preloading a look-up table stored in a main storage device into a cache, the look-up table being used in processing for forming an image on a medium such as paper. Specifically, the look-up table is divided into N (N is an integer) pieces of data (referred to as partial data), and the divided N partial data are each assigned to N processor cores. Each processor core provides a shared L2 cache memory with a data read request in order to read out the assigned partial data. The L2 cache memory has reading means, and the reading means reads out the corresponding partial data from a main storage device in response to the data read request from each processor core. As a result, all sub-data is preloaded from the main storage device into the L2 cache (i.e., the look-up table is copied to the L2 cache). Since preloading is performed in parallel by each processor core, the time required to copy the look-up table is reduced.

Patentdokument 1: JP 2017 - 58 738 A Patent Document 1: JP 2017 - 58 738 A

Da es relativ lange Zeit braucht, um auf die Hauptspeichervorrichtung zuzugreifen, ist es üblich einen schnellzugreifbaren Cache zwischen mehreren Prozessorkernen und der Hauptspeichervorrichtung wie in der Informationsverarbeitungsvorrichtung von Patentdokument 1 bereitzustellen.Since it takes a relatively long time to access the main storage device, it is common practice to provide a quick-access cache between a plurality of processor cores and the main storage device as in the information processing device of Patent Document 1.

Jedoch können in dem System, das periodisch unterschiedliche Verarbeitungen wie die ausführt, die durch ein Fahrzeuginnenvorrichtungssteuersystem repräsentiert sind, sogar, wenn Anweisungen und Daten, die in einer spezifischen Verarbeitung verwendet werden, in dem Cache durch die Ausführung der spezifischen Verarbeitung gespeichert werden, die Anweisungen und Daten, die in der spezifischen Verarbeitung verwendet werden, durch Ausführen mancher anderer Verarbeitungen überschrieben werden, bevor die gleiche spezifische Verarbeitung erneut ausgeführt wird. In so einem Fall, wenn die gleiche spezifische Verarbeitung erneut ausgeführt wird, kann es passieren, dass die Anweisungen und Daten, die in der gleichen spezifischen Verarbeitung verwendet werden, nicht in dem Cache bleiben. Demnach, sogar, wenn der Cache installiert ist, kann die erwartete Leistungsverbesserung nicht erlangt werden.However, in the system that periodically executes different processings such as those represented by an in-vehicle device control system, even if instructions and data used in specific processing are stored in the cache by the execution of the specific processing, the instructions can and data used in the specific processing is overwritten by performing some other processing before the same specific processing is performed again. In such a case, when the same specific processing is carried out again, the instructions and data used in the same specific processing may not stay in the cache. Thus, even if the cache is installed, the expected improvement in performance cannot be obtained.

Die vorliegende Offenbarung wurde hinsichtlich der vorstehend beschriebenen Probleme erstellt. Eine Aufgabe der vorliegenden Offenbarung ist es, ein Multiprozessorsystem bereitzustellen, das die Wahrscheinlichkeit erhöhen kann, dass Anweisungen und Daten, die erforderlich sind, um eine spezifische Verarbeitung auszuführen, in einem Cache existieren, der durch mehrere Prozessoren gemeinsam genutzt wird, wenn die spezifische Verarbeitung ausgeführt wird.The present disclosure has been made in view of the problems described above. It is an object of the present disclosure to provide a multiprocessor system that can increase the likelihood that instructions and data required to perform specific processing exist in a cache that is shared by multiple processors when performing the specific processing is performed.

Um die vorstehende Aufgabe zu lösen, weist ein Beispiel eines Multiprozessorsystems gemäß der vorliegenden Offenbarung auf:

  • mehrere Prozessoren;
  • einen Zeitplaner, der jeden der mehreren Prozessoren anweist, Ausführung einer zugewiesenen Aufgabe zu starten;
  • einen Speicher zum Speichern von Anweisungen und Daten, die durch die mehreren Prozessoren verwendet werden, um die jeweiligen Aufgaben auszuführen; und
  • einen Cache, der zwischen den mehreren Prozessoren und dem Speicher vorgesehen ist und durch die mehreren Prozessoren gemeinsam genutzt wird,
  • wobei
  • wenn Zuweisung paralleler Verarbeitung zu den mehreren Prozessoren geplant ist, wobei die parallele Verarbeitung eine Aufgabe ist, die synchron durch die mehreren Prozessoren auszuführen ist, der Zeitplaner konfiguriert ist, eine Cacheaktualisierungsverarbeitung, die mindestens einen Teil von Anweisungen und Daten, die in der parallelen Verarbeitung verwendet werden, von dem Speicher ausliest und die ausgelesenen Anweisungen und Daten in dem Cache speichert, einem Prozessor in einem Bereitschaftszustand zuzuweisen und einen Ausführungsstart der Cacheaktualisierungsverarbeitung vor Anweisen eines Ausführungsstarts der parallelen Verarbeitung anzuweisen.
To achieve the above object, an example of a multiprocessor system according to the present disclosure includes:
  • multiple processors;
  • a scheduler that instructs each of the plurality of processors to start executing an assigned task;
  • a memory for storing instructions and data used by the plurality of processors to perform the respective tasks; and
  • a cache that is provided between the plurality of processors and the memory and is shared by the plurality of processors,
  • whereby
  • when parallel processing is scheduled to be allocated to the multiple processors, the parallel processing being a task to be performed synchronously by the multiple processors, the scheduler is configured to perform cache update processing that includes at least a part of instructions and data included in the parallel processing is used, reads out from the memory and stores the read instructions and data in the cache, assigns to a processor in a standby state and instructs execution start of cache update processing before instructing execution start of parallel processing.

Wie vorstehend beschrieben ist, wird gemäß dem Multiprozessorsystem der vorliegenden Offenbarung, wenn die Zuweisung der parallelen Verarbeitung zu den mehreren Prozessoren geplant ist, die Cacheaktualisierungsverarbeitung zum Auslesen mindestens des Teils von Anweisungen und Daten, die in der parallelen Verarbeitung verwendet werden, und Speichern der ausgelesenen Anweisungen und Daten in dem Cache unter Verwendung des Prozessors in dem Bereitschaftszustand ausgeführt. Demnach ist es möglich, dass, wenn die mehreren Prozessoren Ausführung paralleler Verarbeitung starten, mindestens der Teil von Anweisungen und Daten, die in der parallelen Verarbeitung verwendet werden, in dem Cache als die gespeicherte Anweisung (die gespeicherten Anweisungen) und/oder Daten in dem Cache sind. Demzufolge kann das Multiprozessorsystem der vorliegenden Offenbarung die Wahrscheinlichkeit erhöhen, dass mindestens der Teil der Anweisungen und Daten, der zur parallelen Verarbeitung erforderlich ist, in dem Cache existiert, wenn die parallele Verarbeitung ausgeführt wird.As described above, according to the multiprocessor system of the present disclosure, when the assignment of the parallel processing to the plurality of processors is scheduled, the cache update processing for reading out at least the part of instructions and data used in the parallel processing and storing the read out Instructions and data in the cache executed using the processor in the standby state. Accordingly, it is possible that if the several Processors start executing parallel processing, at least the portion of instructions and data used in the parallel processing are in the cache as the stored instruction (s) and / or data in the cache. Accordingly, the multiprocessor system of the present disclosure can increase the likelihood that at least the part of the instructions and data required for parallel processing exists in the cache when the parallel processing is performed.

Für ein besseres Verständnis der vorliegenden Offenbarung sind die Bezugszeichen in Klammern in den Ansprüchen lediglich als Beispiele von Korrespondenzbeziehungen mit konkreten Strukturen in den Ausführungsformen, die nachfolgend beschrieben sind, hinzugefügt, so dass sich daraus keine Einschränkung des Anspruchsumfangs ableiten lässt.For a better understanding of the present disclosure, the reference symbols in brackets are added in the claims merely as examples of correspondence relationships with concrete structures in the embodiments which are described below, so that no restriction of the scope of the claims can be derived therefrom.

Die vorstehenden und andere Aufgaben, Merkmale und Vorteile der vorliegenden Offenbarung werden aus der nachfolgenden detaillierten Beschreibung in Zusammenschau mit den Zeichnungen deutlicher. Es zeigen:

  • 1 ein Konfigurationsdiagramm, das ein Beispiel einer Konfiguration einer elektronischen Steuereinheit für ein Fahrzeug zeigt, auf das ein Multiprozessorsystem angewendet wird;
  • 2 ein Konfigurationsdiagramm, das ein Beispiel einer Konfiguration des Multiprozessorsystems zeigt;
  • 3 ein Ablaufdiagramm, das ein Beispiel einer Verarbeitung, die durch einen Zeitplaner ausgeführt wird, einschließlich einer Cacheaktualisierungsverarbeitung, gemäß einer ersten Ausführungsform zeigt;
  • 4 ein Ablaufdiagramm, das ein Beispiel einer Verarbeitung zeigt, die durch den Zeitplaner ausgeführt wird, um eine Einstellung einer Speicherschutzeinheit aufzuheben;
  • 5 ein Operationsdiagramm, das ein Beispiel eines Operationszustands jedes Prozessorelements zeigt, wenn der Zeitplaner ein Prozessorelement in einem Bereitschaftszustand vor Ausführen geplanter paralleler Verarbeitung (n + 1) veranlasst, vorläufig einen Teil der parallelen Verarbeitung (n + 1) durch die Verarbeitung, die in dem Ablaufdiagramm von 3 gezeigt ist, auszuführen;
  • 6 ein Ablaufdiagramm, das ein Beispiel einer Verarbeitung, die durch den Zeitplaner ausgeführt wird, einschließlich einer Cacheaktualisierungsverarbeitung, gemäß einer zweiten Ausführungsform zeigt;
  • 7 ein Operationsdiagramm, das ein Beispiel eines Operationszustands jedes Prozessorelements zeigt, wenn der Zeitplaner ein Prozessorelement in einem Bereitschaftszustand vor Ausführen geplanter paralleler Verarbeitung (n + 1) zum Ausführen von Verarbeitungen zum Lesen von Anweisungen und Daten, die in der parallelen Verarbeitung (n + 1) verwendet werden, von einem Speicher und Schreiben der ausgelesenen Anweisungen und Daten in einen Cache durch die Verarbeitung veranlasst, die in dem Ablaufdiagramm von 6 gezeigt ist;
  • 8 ein Ablaufdiagramm, das ein Beispiel einer Verarbeitung, die durch den Zeitplaner ausgeführt wird, einschließlich einer Cacheaktualisierungsverarbeitung, gemäß einer dritten Ausführungsform zeigt;
  • 9 ein Operationsdiagramm, das ein Beispiel eines Operationszustands jedes Prozessorelements zeigt, wenn der Zeitplaner mehrere Prozessorelemente in einem Bereitschaftszustand vor Ausführen geplanter paralleler Verarbeitung (n + 1) veranlasst, vorläufig einen Teil der parallelen Verarbeitung (n + 1) durch die Verarbeitung auszuführen, die in dem Ablaufdiagramm von 8 gezeigt ist;
  • 10 ein Operationsdiagramm, das ein Beispiel eines Operationszustands jedes Prozessorelements, wenn der Zeitplaner mehrere Prozessorelemente in einem Bereitschaftszustand vor Ausführen geplanter paralleler Verarbeitung (n + 1) veranlasst, vorläufig einen Teil der parallelen Verarbeitung (n + 1) auszuführen, gemäß einer vierten Ausführungsform zeigt;
  • 11 ein Operationsdiagramm, das ein Beispiel eines Operationszustands jedes Prozessorelements, wenn der Zeitplaner ein Prozessorelement in einem Bereitschaftszustand vor Ausführen geplanter paralleler Verarbeitung (n + 1) veranlasst, vorläufig einen Teil der parallelen Verarbeitung (n + 1) auszuführen, gemäß einer fünften Ausführungsform zeigt;
  • 12 ein Konfigurationsdiagramm, das ein Beispiel einer Konfiguration eines Multiprozessorsystems gemäß einer sechsten Ausführungsform zeigt.
The foregoing and other objects, features, and advantages of the present disclosure will become more apparent from the following detailed description when viewed in conjunction with the drawings. Show it:
  • 1 Fig. 10 is a configuration diagram showing an example of a configuration of an electronic control unit for a vehicle to which a multiprocessor system is applied;
  • 2 Fig. 4 is a configuration diagram showing an example of a configuration of the multiprocessor system;
  • 3 Fig. 13 is a flowchart showing an example of processing executed by a scheduler including cache update processing according to a first embodiment;
  • 4th Fig. 13 is a flowchart showing an example of processing executed by the scheduler to cancel setting of a memory protection unit;
  • 5 Fig. 13 is an operation diagram showing an example of an operating state of each processor element when the scheduler makes a processor element in a standby state before executing scheduled parallel processing (n + 1), provisionally part of the parallel processing (n + 1) by the processing specified in the Flow chart of 3 is shown to perform;
  • 6th Fig. 13 is a flowchart showing an example of processing executed by the scheduler including cache update processing according to a second embodiment;
  • 7th Fig. 13 is an operation diagram showing an example of an operating state of each processor element when the scheduler places a processor element in a standby state before executing scheduled parallel processing (n + 1) for executing processings for reading instructions and data included in the parallel processing (n + 1 ) are used from a memory and writing of the read instructions and data into a cache caused by the processing in the flowchart of 6th is shown;
  • 8th Fig. 13 is a flowchart showing an example of processing executed by the scheduler including cache update processing according to a third embodiment;
  • 9 Fig. 8 is an operation diagram showing an example of an operating state of each processor element when the scheduler causes a plurality of processor elements in a standby state before executing scheduled parallel processing (n + 1) to provisionally execute part of the parallel processing (n + 1) by the processing shown in FIG the flowchart of 8th is shown;
  • 10 Fig. 8 is an operation diagram showing an example of an operating state of each processor element when the scheduler causes a plurality of processor elements in a standby state before executing scheduled parallel processing (n + 1) to preliminarily execute part of the parallel processing (n + 1) according to a fourth embodiment;
  • 11 Fig. 8 is an operation diagram showing an example of an operating state of each processor element when the scheduler causes a processor element in a standby state before executing scheduled parallel processing (n + 1) to provisionally execute part of the parallel processing (n + 1) according to a fifth embodiment;
  • 12th Fig. 13 is a configuration diagram showing an example of a configuration of a multiprocessor system according to a sixth embodiment.

(Erste Ausführungsform)(First embodiment)

Nachfolgend wird eine erste Ausführungsform eines Multiprozessorsystems gemäß der vorliegenden Offenbarung im Detail gemäß den Zeichnungen beschrieben. 1 ist ein Konfigurationsdiagramm, das ein Beispiel einer Konfiguration einer elektronischen Steuereinheit (als ECU abgekürzt) für ein Fahrzeug zeigt, auf das das Multiprozessorsystem der vorliegenden Ausführungsform angewendet wird. Die elektronische Steuereinheit für ein Fahrzeug führt unterschiedliche Verarbeitungen mit hoher Geschwindigkeit und periodisch aus. Das Multiprozessorsystem gemäß der vorliegenden Offenbarung ist besonders wirksam, wenn es auf eine Steuervorrichtung angewendet wird, die unterschiedliche Verarbeitungen mit hoher Geschwindigkeit und periodisch ausführt, wie vorstehend beschrieben ist. Jedoch kann das Multiprozessorsystem gemäß der vorliegenden Offenbarung auf eine Steuervorrichtung angewendet werden, in der die gleiche Verarbeitung nicht periodisch ausgeführt wird. Ferner ist ein Anwendungsbeispiel des Multiprozessorsystems gemäß der vorliegenden Offenbarung nicht auf die elektronische Steuereinheit für das Fahrzeug beschränkt und kann beispielsweise auf eine elektronische Steuereinheit für unterschiedliche Ausstattung wie Kommunikationsausstattung, Maschinenausstattung und Konstruktionsausstattung angewendet werden.A first embodiment of a multiprocessor system according to the present disclosure will be described in detail in accordance with the drawings. 1 Fig. 13 is a configuration diagram showing an example of a configuration of an electronic control unit (abbreviated as ECU) for a vehicle to which the multiprocessor system of the present embodiment is applied. The electronic control unit for a Vehicle carries out various processings at high speed and periodically. The multiprocessor system according to the present disclosure is particularly effective when applied to a control device that executes various processings at high speed and periodically as described above. However, the multiprocessor system according to the present disclosure can be applied to a control device in which the same processing is not periodically executed. Further, an application example of the multiprocessor system according to the present disclosure is not limited to the electronic control unit for the vehicle, and can be applied to, for example, an electronic control unit for various equipment such as communication equipment, machine equipment, and construction equipment.

Eine elektronische Steuereinheit 10 für ein Fahrzeug, das in 1 gezeigt ist, kann beispielsweise als eine Brennkraftmaschinensteuervorrichtung zum Steuern einer Brennkraftmaschine verwendet werden, die an dem Fahrzeug montiert ist. Nachfolgend wird ein Beispiel beschrieben, in dem die elektronische Steuereinheit für das Fahrzeug als die Brennkraftmaschinensteuervorrichtung verwendet wird.An electronic control unit 10 for a vehicle that is in 1 shown can be used, for example, as an internal combustion engine control device for controlling an internal combustion engine mounted on the vehicle. The following describes an example in which the electronic control unit for the vehicle is used as the internal combustion engine control device.

Die Brennkraftmaschinensteuervorrichtung 10 operiert durch Empfangen einer Energieversorgung von einer Batterie 1, die an dem Fahrzeug montiert ist. Wie in 1 gezeigt ist, beinhaltet die Brennkraftmaschinensteuervorrichtung 10 hauptsächlich eine Energieversorgungsschaltung 12, eine Eingabeschaltung 14, einen Mikrocomputer 16 und eine Ausgabeschaltung 32.The engine control device 10 operates by receiving a power supply from a battery 1 that is mounted on the vehicle. As in 1 shown includes the engine control device 10 mainly a power supply circuit 12th , an input circuit 14th , a microcomputer 16 and an output circuit 32 .

Die Energieversorgungsschaltung 12 wandelt eine Spannung der Energieversorgung, die von der Batterie 1 zugeführt wird, in eine Spannung, die jeweils für die Eingabeschaltung 14, den Mikrocomputer 16 und die Ausgabeschaltung 32 geeignet ist, und stellt die gewandelte Spannung bereit. Die Eingabeschaltung 14 gibt Erfassungssignale unterschiedlicher Sensoren und Eingabesignale unterschiedlicher Schalter, die zum Steuern der Brennkraftmaschine erforderlich sind, ein und führt Signalverarbeitung wie Signalformung oder Signalverstärkung dieser Signale aus, um vom Mikrocomputer 16 verarbeitet zu werden. Beispielsweise beinhalten die Erfassungssignale, die in die Eingabeschaltung 14 eingegeben werden, Erfassungssignale von unterschiedlichen Sensoren, die Brennkraftmaschinengeschwindigkeit, Kraftstoffdruck, Gaspedalöffnung, Ansaugluftmenge, Brennkraftmaschinenkühlwassertemperatur und so weiter erfassen. Die Eingabesignale, die in die Eingabeschaltung 14 eingegeben werden, beinhalten Eingabesignale von Schaltern wie einem Anlasserschalter, einem Leerlaufschalter bzw. Bereitschaftsschalter und so weiter.The power supply circuit 12th converts a voltage of the energy supply from the battery 1 is fed into a voltage, each for the input circuit 14th , the microcomputer 16 and the output circuit 32 is suitable, and provides the converted voltage. The input circuit 14th inputs detection signals from various sensors and input signals from various switches required for controlling the internal combustion engine, and carries out signal processing such as signal shaping or signal amplification of these signals in order from the microcomputer 16 to be processed. For example, include the detection signals fed into the input circuit 14th are input, detection signals from various sensors that detect engine speed, fuel pressure, accelerator opening, intake air amount, engine cooling water temperature and so on. The input signals going into the input circuit 14th include input signals from switches such as a starter switch, an idle switch and standby switch, respectively, and so on.

Der Mikrocomputer 16 beinhaltet eine Eingabe-/Ausgabeschaltung 18 (I/O), eine CPU 20, ein ROM 22, ein RAM 24, einen AD-Wandler 26 (A/D), einen Zeitgeber 28 und einen Systembus 30 zum Verbinden dieser Konfigurationen. Die CPU 20 führt das Brennkraftmaschinensteuerprogramm, das in dem ROM 22 gespeichert ist, aus, während eine temporäre Speicherfunktion des RAM 24 verwendet wird. Durch Ausführen dieses Brennkraftmaschinensteuerprogramms erlangt die CPU 20 Sensorerfassungssignale und Schaltereingabesignale, die von der Eingabeschaltung 14 eingegeben werden und in den Mikrocomputer 16 über die Eingabe-/Ausgabeschaltung 18 aufgenommen werden. Das Signal, das in die Eingabeschaltung 14 als ein Analogsignal eingegeben wird, wird in ein Digitalsignal durch den AD-Wandler 26 gewandelt, wenn es in den Mikrocomputer 16 aufgenommen wird. Die CPU 20 berechnet Zündzeitpunkt, Kraftstoffinjektionszeitpunkt, Kraftstoffinjektionsbetrag und so weiter, die optimal für jeden Zylinder der Brennkraftmaschine sind, basierend auf den erlangten Sensorerfassungssignalen und Schaltereingabesignalen.The microcomputer 16 includes an input / output circuit 18th (I / O), a CPU 20th , a ROM 22nd , a RAM 24 , an AD converter 26th (A / D), a timer 28 and a system bus 30th to connect these configurations. The CPU 20th runs the engine control program stored in the ROM 22nd is stored, while a temporary memory function of the RAM 24 is used. By executing this engine control program, the CPU acquires 20th Sensor detection signals and switch input signals received from the input circuit 14th are entered and into the microcomputer 16 via the input / output circuit 18th be included. The signal going into the input circuit 14th input as an analog signal is converted into a digital signal by the AD converter 26th when converted into the microcomputer 16 is recorded. The CPU 20th calculates ignition timing, fuel injection timing, fuel injection amount, and so on, which are optimal for each cylinder of the internal combustion engine, based on the acquired sensor detection signals and switch input signals.

Dann gibt der Mikrocomputer 16 ein Zündsignal an einen Zünder jedes Zylinders über die Ausgabeschaltung 32 gemäß dem berechneten Zündzeitpunkt aus, um die Luft-Kraftstoff-Mischung zu zünden, die in jedem Zylinder komprimiert ist. Ferner berechnet der Mikrocomputer 16 eine Kraftstoffinjektionsperiode basierend auf dem berechneten Kraftstoffinjektionsbetrag und dem Kraftstoffdruck von Kraftstoff, der einem Injektor unmittelbar vor dem Kraftstoffinjektionszeitpunkt zugeführt wird. Wenn eine Injektionszeit basierend auf dem berechneten Kraftstoffinjektionszeitpunkt eintritt, gibt der Mikrocomputer 16 ein Antriebssignal an den entsprechenden Injektor über die Ausgabeschaltung 32 aus. Das Antriebssignal öffnet den Injektor und der Injektor beginnt, Kraftstoff zu injizieren. Wenn ein Ablauf der berechneten Kraftstoffinjektionsperiode ausgehend vom Start der Kraftstoffinjektion beispielsweise durch einen Zeitgeber 28 gezählt wird, stoppt der Mikrocomputer 16 die Ausgabe des Antriebssignals zum Schließen des Injektors. Ferner gibt der Mikrocomputer 16 ein Signal, das einen Steuerzustand der Brennkraftmaschine angibt, ein Signal, das einen abnormalen Zustand angibt, wenn irgendeine Abnormalität auftritt, und dergleichen an eine andere ECU/ an andere ECUs über die Ausgabeschaltung 32 aus.Then the microcomputer gives 16 an ignition signal to an igniter of each cylinder via the output circuit 32 according to the calculated ignition timing to ignite the air-fuel mixture compressed in each cylinder. The microcomputer also calculates 16 a fuel injection period based on the calculated fuel injection amount and the fuel pressure of fuel supplied to an injector immediately before the fuel injection timing. When an injection timing occurs based on the calculated fuel injection timing, the microcomputer outputs 16 a drive signal to the corresponding injector via the output circuit 32 the end. The drive signal opens the injector and the injector begins to inject fuel. When a lapse of the calculated fuel injection period from the start of fuel injection, for example, by a timer 28 is counted, the microcomputer stops 16 the output of the drive signal to close the injector. The microcomputer also gives 16 a signal indicating a control state of the internal combustion engine, a signal indicating an abnormal state when any abnormality occurs, and the like to another ECU (s) through the output circuit 32 the end.

Das Brennkraftmaschinensteuerprogramm, das vorstehend beschrieben ist, tendiert dazu, kompliziert und hochentwickelt zu sein, um eine Kraftstoffeffizienz der Brennkraftmaschine zu verbessern und Abgasvorschriften einzuhalten. In dieser Ausführungsform hat die CPU 20 mehrere Prozessorelemente, wie nachfolgend beschrieben ist, so dass die CPU 20 angemessen so ein Brennkraftmaschinensteuerprogramm verarbeiten kann. Das Brennkraftmaschinensteuerprogramm ist konfiguriert, um parallele Verarbeitung zu beinhalten, die synchron und parallel an den mehreren Prozessorelementen ausgeführt wird. In anderen Worten wird komplizierte Verarbeitung und Verarbeitung mit hoher Last unterteilt und als parallele Verarbeitung durch die mehrere Prozessorelemente ausgeführt. Wie vorstehend beschrieben ist, ist der Mikrocomputer 16 in dieser Ausführungsform als ein Multiprozessorsystem konfiguriert.The engine control program described above tends to be complicated and sophisticated in order to improve fuel efficiency of the internal combustion engine and comply with emission regulations. In this embodiment, the CPU 20th several Processor elements as described below so that the CPU 20th can adequately process such an engine control program. The engine control program is configured to include parallel processing that is executed synchronously and in parallel on the plurality of processor elements. In other words, complicated processing and heavy-load processing are divided and executed as parallel processing by the plural processor elements. As described above, the microcomputer is 16 configured as a multiprocessor system in this embodiment.

Nachfolgend wird die Konfiguration der CPU 20 in dem Mikrocomputer (Multiprozessorsystem) 16 gemäß 2 beschrieben. Wie in 2 gezeigt ist, hat die CPU 20 mehrere Prozessorelemente 40a bis 40n. Prozessorelementnummern (PE-Nummern) #1 bis #n zum Identifizieren der jeweiligen Prozessorelemente 40a bis 40n sind den mehreren Prozessorelementen 40a bis 40n entsprechend zugewiesen. Ferner sind L1-Caches 42a bis 42n individuell jeweils für die mehreren Prozessorelemente 40a bis 40n vorgesehen Jedoch können in dieser Ausführungsform die L1-Caches 42a bis 42n weggelassen werden. Ferner ist die CPU 20 mit einem L2-Cache 44 ausgestattet, der von den mehreren Prozessorelementen 40a bis 40n gemeinsam genutzt wird. Die L1-Caches 42a bis 42n und der L2-Cache 44 befinden sich zwischen: den Prozessorelementen 40a bis 40n; und sowohl einem ROM 22 als auch einem RAM 24. Sowohl das ROM 22 als auch das RAM 24 sind ein Speicher. Wenn eine Verarbeitung (Aufgabe), die jedem der Prozessorelemente 40a bis 40n zugewiesen ist, ausgeführt wird, speichern und halten die L1-Caches 42a bis 42n und der L2-Cache 44 die Anweisung oder Daten, die in der Verarbeitung verwendet werden, wobei diese Anweisung oder Daten aus dem ROM 22 (oder RAM 24) ausgelesen werden, zusammen mit einer Adresse, die den Speicherort des ROM 22 (oder RAM 24) bzw. in dem ROM 22 (oder RAM 24) angibt.The following is the configuration of the CPU 20th in the microcomputer (multiprocessor system) 16 according to 2 described. As in 2 shown has the CPU 20th multiple processor elements 40a until 40n . Processor element numbers (PE numbers) # 1 to #n for identifying the respective processor elements 40a until 40n are the multiple processor elements 40a until 40n assigned accordingly. There are also L1 caches 42a until 42n individually for each of the multiple processor elements 40a until 40n However, in this embodiment, the L1 caches 42a until 42n can be omitted. Furthermore, the CPU 20th with an L2 cache 44 equipped by the multiple processor elements 40a until 40n is shared. the L1 -Caches 42a until 42n and the L2 cache 44 are located between: the processor elements 40a until 40n ; and both a ROM 22nd as well as a RAM 24 . Both the ROM 22nd as well as the RAM 24 are a memory. When a processing (task) performed by each of the processor elements 40a until 40n is assigned, running, storing and holding the L1 caches 42a until 42n and the L2 cache 44 the instruction or data that are used in the processing, this instruction or data from the ROM 22nd (or RAM 24 ), together with an address indicating the storage location of the ROM 22nd (or RAM 24 ) or in the ROM 22nd (or RAM 24 ) indicates.

Wenn jedes der Prozessorelemente 40a bis 40n eine Ausführungsanforderung für die zugewiesene Verarbeitung von einem Zeitplaner 48 empfängt, der später beschrieben ist, liest jedes der Prozessorelemente 40a bis 40n die Anweisung oder Daten, die erforderlich sind, um die zugewiesene Verarbeitung auszuführen, von dem ROM 22 (oder RAM 24) durch eine Leseanforderung aus, die die Adresse spezifiziert. Die Leseanforderungen von den Prozessorelementen 40a bis 40n werden zuerst jeweils in die entsprechenden L1-Caches 42a bis 42n eingegeben. Jeder der L1-Caches 42a bis 42n untersucht, ob oder nicht er die Anweisung oder Daten entsprechend der eingegebenen Leseanforderung hält. Wenn es die entsprechende Anweisung oder entsprechenden Daten gibt, die durch die L1-Caches 42a bis 42n gehalten werden, stellen die L1-Caches 42a bis 42n die entsprechende Anweisung oder Daten den Prozessorelementen 40a bis 40n bereit. Wenn die entsprechende Anweisung oder entsprechenden Daten nicht durch die L1-Caches 42a bis 42n gehalten werden, übertragen die L1-Caches 42a bis 42n die Leseanforderung von den Prozessorelementen 40a bis 40n an den L2-Cache 44. Wie die L1-Caches 42a bis 42n untersucht der L2-Cache 44 ebenso mit hoher Geschwindigkeit, ob oder nicht er die Anweisung oder Daten entsprechend der eingegebenen Leseanforderung hält. Wenn die entsprechende Anweisung oder entsprechenden Daten durch den L2-Cache 44 gehalten werden, stellt der L2-Cache 44 die entsprechende Anweisung oder Daten den Prozessorelementen 40a bis 40n über die L1-Caches 42a bis 42n bereit. Wenn die entsprechende Anweisung oder entsprechenden Daten nicht durch den L2-Cache 44 gehalten werden, überträgt der L2-Cache 44 die Leseanforderung von den Prozessorelementen 40a bis 40n an den Speicher (ROM 22 und/oder RAM 24).When each of the processor elements 40a until 40n a request to execute the assigned processing from a scheduler 48 which is described later, reads each of the processor elements 40a until 40n the instruction or data necessary to carry out the assigned processing from the ROM 22nd (or RAM 24 ) by a read request specifying the address. The read requests from the processor elements 40a until 40n are first put into the corresponding L1 caches 42a until 42n entered. Each of the L1 caches 42a until 42n investigates whether or not it is holding the instruction or data corresponding to the input read request. If there is the appropriate instruction or data passed through the L1 caches 42a until 42n are held by the L1 caches 42a until 42n the corresponding instruction or data to the processor elements 40a until 40n ready. If the corresponding instruction or data is not through the L1 caches 42a until 42n are held transfer the L1 caches 42a until 42n the read request from the processor elements 40a until 40n to the L2 cache 44 . Like the L1 caches 42a until 42n examines the L2 cache 44 also at high speed whether or not it is holding the instruction or data corresponding to the input read request. When the corresponding instruction or corresponding data through the L2 cache 44 are held by the L2 cache 44 the corresponding instruction or data to the processor elements 40a until 40n via the L1 caches 42a until 42n ready. If the corresponding instruction or data is not through the L2 cache 44 are held, the L2 cache transfers 44 the read request from the processor elements 40a until 40n to the memory (ROM 22nd and / or RAM 24 ).

Für jedes Prozessorelement kann eine Speicherschutzeinheit MPU) 46 die Erlaubnis oder das Verbot einer Leseanforderung und einer Schreibanforderung von jedem der Prozessorelemente 40a bis 40n für den Speicher einstellen. In der vorliegenden Ausführungsform ist die Speicherschutzeinheit 46 durch einen Zeitplaner 48 eingestellt, um Schreibanforderungen von den Prozessorelementen 40a bis 40n, die vorläufig eine Unterverarbeitung paralleler Verarbeitung ausführen, für den Speicher (ROM 22, RAM 24) oder ein Register einer peripheren Vorrichtung wie ein AD-Wandler 26 und ein Zeitgeber 28 zu blockieren.For each processor element, a memory protection unit MPU 46 can permit or prohibit a read request and a write request from each of the processor elements 40a until 40n set for memory. In the present embodiment, the memory protection unit is 46 through a scheduler 48 set to write requests from the processor elements 40a until 40n that are provisionally performing parallel processing sub-processing for the memory (ROM 22nd , RAM 24 ) or a register of a peripheral device such as an AD converter 26th and a timer 28 to block.

Der Zeitplaner 48 gibt eine Verarbeitungsausführungsanforderung an jedes der mehreren Prozessorelemente 40a bis 40n aus, wodurch die mehreren Prozessorelemente 40a bis 40n veranlasst werden, die Ausführung der jeweils zugewiesenen Verarbeitungen zu starten. Ferner, wie später im Detail beschrieben ist, veranlasst der Zeitplaner 48 mindestens eines der Prozessorelemente 40a bis 40n in einem Bereitschaftszustand, vorläufig eine Unterverarbeitung auszuführen, die ein Teil der ausführungsgeplanten parallelen Verarbeitung ist, durch Ausgeben einer Verarbeitungsausführungsanforderung an das mindestens eine der Prozessorelemente 40a bis 40n in dem Bereitschaftszustand, um vorläufig die Unterverarbeitung auszuführen. Ferner, wenn jedes der Prozessorelemente 40a bis 40n die zugewiesene Verarbeitung abschließt, empfängt der Zeitplaner 48 eine Verarbeitungsabschlussunterrichtung von jedem der Prozessorelemente 40a bis 40n.The scheduler 48 issues a processing execution request to each of the plurality of processor elements 40a until 40n out, making the multiple processor elements 40a until 40n caused to start the execution of the respectively assigned processing. Further, as will be described in detail later, the scheduler causes 48 at least one of the processor elements 40a until 40n in a standby state to provisionally execute sub-processing that is part of the parallel processing scheduled to be executed by issuing a processing execution request to the at least one of the processor elements 40a until 40n in the standby state to preliminarily execute the sub-processing. Further, when each of the processor elements 40a until 40n completes the assigned processing, the scheduler receives 48 a processing completion notification from each of the processor elements 40a until 40n .

Die Verarbeitungen (Aufgabe), die den mehreren Prozessorelementen 40a bis 40n zugewiesen sind, werden basierend auf Informationen bestimmt, die in dem ROM 22 oder dem RAM 24 gespeichert sind. Beispielsweise kann das RAM 24 einen Verarbeitungswartebereich zum Speichern einer Aufgaben-ID haben, die eine Verarbeitung angibt, für die eine Ausführungsanforderung getätigt wurde. Beispielsweise, wenn eine bestimmte Verarbeitung in der CPU 20 ausgeführt wird, wenn diese Verarbeitung eine Anweisung beinhaltet, die eine Ausführung mindestens einer anderen Verarbeitung anfordert, wird die Aufgaben-ID der anderen Anweisung in dem vorstehend erwähnten Verarbeitungswartebereich gespeichert. Ferner, wenn ein vorbestimmtes Signal durch einen Sensor erfasst wird, wenn eine vorbestimmte Zeit durch einen Zeitgeber gezählt wird, wenn ein vorbestimmtes Signal von einer anderen ECU eingegeben wird oder dergleichen, wird die Verarbeitungsausführungsanforderung erzeugt und die Aufgaben-ID der entsprechenden Verarbeitung kann in dem vorstehend beschriebenen Verarbeitungswartebereich gespeichert werden. Wenn die Aufgaben-IDs mehrerer Verarbeitungen in dem vorstehend erwähnten Verarbeitungswartebereich zur gleichen Zeit gespeichert werden, kann eine Ausführungsreihenfolge der Verarbeitungen gemäß einer vorbestimmten Regel bestimmt werden (beispielsweise, „Wer zuerst kommt, mahlt zuerst“ - Basis, Prioritätsrang, Verarbeitungszeitrang oder irgendeine Kombination daraus). Alternativ kann die Reihenfolge, in der die CPU 20 die Verarbeitungen ausführt, in dem Brennkraftmaschinensteuerprogramm vorbestimmt sein und Aufgaben-IDs, die die jeweiligen Verarbeitungen angeben, können in dem vorstehend erwähnten Verarbeitungswartebereich gemäß der vorbestimmten Reihenfolge der Verarbeitungen gespeichert werden.The processings (task) that the several processor elements 40a until 40n assigned are determined based on information those in the ROM 22nd or the RAM 24 are stored. For example, the RAM 24 have a processing waiting area for storing a task ID indicating processing for which an execution request has been made. For example, if certain processing is in the CPU 20th When this processing includes an instruction requesting execution of at least one other processing, the task ID of the other instruction is stored in the aforementioned processing waiting area. Further, when a predetermined signal is detected by a sensor, when a predetermined time is counted by a timer, when a predetermined signal is input from another ECU, or the like, the processing execution request is generated and the task ID of the corresponding processing can be specified in the processing waiting area described above can be stored. When the task IDs of a plurality of processings are stored in the aforementioned processing waiting area at the same time, an execution order of the processings can be determined according to a predetermined rule (for example, “first come, first served” basis, priority rank, processing time rank, or any combination thereof ). Alternatively, the order in which the CPU 20th that executes processings can be predetermined in the engine control program, and task IDs indicating the respective processings can be stored in the aforementioned processing waiting area according to the predetermined order of processing.

Ferner werden die Prozessorelementinformationen (nachfolgend PE-Informationen) in dem ROM 22 (oder RAM 24) vorgespeichert. Die PE-Informationen beinhalten PE-Nummern #1 bis #n, die angeben, welche Verarbeitung welchem Prozessorelement 40a bis 40n für jede Verarbeitung zugewiesen ist, und eine Adresse eines Bereichs, der Anweisungen und Daten zum Ausführen jeder Verarbeitung speichert. Der Zeitplaner 48 bezieht sich auf die PE-Informationen und ermittelt die Prozessorelemente 40a bis 40n, denen die auszuführende Verarbeitung zugewiesen ist, basierend auf den PE-Nummern #1 bis #n entsprechend der entsprechenden Verarbeitungen. Dann gibt der Zeitplaner 48 eine Verarbeitungsausführungsanforderung an die entsprechenden Prozessorelemente 40a bis 40n aus, während er die Adresse der auszuführenden Verarbeitung bezeichnet. Demzufolge wird Ausführen der zugewiesenen Verarbeitung in jedem der Prozessorelemente 40a bis 40n gestartet. Ferner, wenn mehrere Unterverarbeitungen jeweils mehreren Prozessorelementen 40a bis 40n zugewiesen werden und die Unterverarbeitungen für parallele Verarbeitung sind, die synchron durch die mehreren Prozessorelemente 40a bis 40n ausgeführt wird, gibt der Zeitplaner 48 Verarbeitungsausführungsanforderungen im Wesentlichen zur gleichen Zeit an die mehreren Prozessorelemente 40a bis 40n aus, die die entsprechenden Unterverarbeitungen ausführen, die in der parallelen Verarbeitung beinhaltet sind.Further, the processor element information (hereinafter PE information) is stored in the ROM 22nd (or RAM 24 ) pre-stored. The PE information includes PE numbers # 1 to #n, which indicate which processing is carried out by which processor element 40a until 40n is assigned for each processing, and an address of an area storing instructions and data for performing each processing. The scheduler 48 refers to the PE information and determines the processor elements 40a until 40n assigned the processing to be performed based on the PE numbers # 1 to #n corresponding to the respective processings. Then the scheduler gives 48 a processing execution request to the corresponding processor elements 40a until 40n while designating the address of the processing to be performed. As a result, the assigned processing is carried out in each of the processor elements 40a until 40n started. Furthermore, when several sub-processing operations each have several processor elements 40a until 40n and the subprocessings are for parallel processing that are synchronized by the plurality of processor elements 40a until 40n the scheduler indicates 48 Processing execution requests to the multiple processor elements at substantially the same time 40a until 40n that execute the corresponding sub-processing involved in the parallel processing.

In 2 ist der Zeitplaner 48 außerhalb der CPU 20 vorgesehen. Jedoch, wenn beispielsweise ein Datenflussprozessor als die CPU 20 verwendet wird, kann der Zeitplaner 48 in die CPU 20 eingebaut sein.In 2 is the scheduler 48 outside the CPU 20th intended. However, if, for example, a data flow processor is used as the CPU 20th can be used, the scheduler 48 into the CPU 20th be built in.

Als nächstes erfolgt gemäß einem Ablaufdiagramm von 3 ein Beispiel einer Verarbeitung, die der Zeitplaner 48 ausführt, um die Wahrscheinlichkeit zu erhöhen, dass Anweisungen und Daten, die zum Ausführen von paralleler Verarbeitung erforderlich sind, in dem L2-Cache 44 existieren, der durch die mehreren Prozessorelemente 40a bis 40n gemeinsam genutzt wird, das heißt, um eine Cache-Trefferquote zu erhöhen. Die Verarbeitung, die in dem Ablaufdiagramm von 3 gezeigt ist, wird mit Freigabe eines Einschaltrücksetzens des Mikrocomputers 16 als Auslöser gestartet. Jedoch kann der Mikrocomputer 16 konfiguriert sein, um die Verarbeitung in Antwort auf einen Empfang eines Auslösersignals von einem Zeitgeber, einer Eingabe-/Ausgabeschnittstelle, einer anderen ECU oder dergleichen zu starten.Next, according to a flow chart of FIG 3 an example of processing that the scheduler 48 to increase the likelihood that instructions and data required to perform parallel processing will be in the L2 cache 44 exist by the multiple processor elements 40a until 40n is shared, that is, to increase a cache hit rate. The processing shown in the flowchart of 3 is shown when a power-on reset of the microcomputer is enabled 16 started as a trigger. However, the microcomputer 16 be configured to start processing in response to receipt of a trigger signal from a timer, an input / output interface, another ECU, or the like.

In dem ersten Schritt S100 erlangt der Zeitplaner 48 Informationen hinsichtlich einer Verarbeitung (n), für die geplant ist, dass sie als nächstes ausgeführt wird. Insbesondere nimmt der Zeitplaner 48 Bezug auf den Verarbeitungswartebereich und ermittelt die Verarbeitung (n), für die geplant ist, dass sie als nächstes ausgeführt wird. Ferner nimmt der Zeitplaner 48 Bezug auf die PE-Informationen, die in dem ROM 22 (oder RAM 24) gespeichert sind, und erlangt eine PE-Nummer #1 bis #n, die die Prozessorelemente 40a bis 40n angibt, denen die Verarbeitung (n) zugewiesen ist, und eine Adresse, die einen Bereich angibt, in dem die Anweisung oder Daten für die Verarbeitung (n) gespeichert sind (wenn die Verarbeitung (n) parallele Verarbeitung ist, werden die PE-Nummer #1 bis #n und die Adresse jeder Unterverarbeitung, die in der Verarbeitung (n) beinhaltet ist, erlangt). Bei Schritt S110 bestimmt der Zeitplaner 48, ob oder nicht die Verarbeitung (n), für die geplant ist, dass sie als nächstes ausgeführt wird, parallele Verarbeitung ist. Wird bestimmt, dass die nächste Verarbeitung parallele Verarbeitung ist, fährt der Zeitplaner 48 mit Schritt S120 fort. Wird bestimmt, dass die nächste Verarbeitung keine parallele Verarbeitung ist, kehrt der Zeitplaner 48 zu Schritt S100 zurück.In the first step S100 attains the scheduler 48 Information regarding a process (s) scheduled to be executed next. In particular, the scheduler takes 48 Refers to the processing waiting area and determines the processing (s) scheduled to be executed next. Furthermore, the scheduler takes 48 Regarding the PE information that is in the ROM 22nd (or RAM 24 ) are stored and a PE number # 1 to #n is obtained, which the processor elements 40a until 40n indicates to which the processing (s) is assigned and an address indicating an area in which the instruction or data for the processing (s) is stored (when the processing (s) is parallel processing, the PE number becomes # 1 to #n and the address of each sub-processing included in the processing (n)). At step S110 determines the scheduler 48 whether or not the processing (s) scheduled to be executed next is parallel processing. When it is determined that the next processing is parallel processing, the scheduler runs 48 with step S120 away. If it is determined that the next processing is not parallel processing, the scheduler returns 48 to step S100 return.

Bei Schritt S120 erlangt der Zeitplaner 48 Informationen hinsichtlich der Verarbeitung (n + 1), für die geplant ist, dass sie neben der Verarbeitung (n) bzw. als nächstes zur Verarbeitung (n) ausgeführt wird, auf gleiche Weise wie bei Schritt S100. Dann wird bei Schritt S130 bestimmt, ob oder nicht die Verarbeitung (n + 1) parallele Verarbeitung ist. Wird bestimmt, dass die Verarbeitung (n + 1) parallele Verarbeitung ist, fährt der Zeitplaner 48 mit Schritt S140 fort. Wird bestimmt, dass die Verarbeitung (n + 1) keine parallele Verarbeitung ist, kehrt der Zeitplaner 48 zu Schritt S100 zurück. Wird bei Schritt S110 oder Schritt S130 eine negative Bestimmung getätigt, das heißt, wenn mindestens eine der Verarbeitung (n) und der Verarbeitung (n + 1) nicht die parallele Verarbeitung ist, gibt der Zeitplaner 48 zu einem angemessenen Zeitpunkt, eine Ausführungsstartanforderung der Verarbeitung (n) an die Prozessorelemente 40a bis 40n aus, denen die Verarbeitung (n) zugewiesen ist, in einer anderen nicht gezeigten Routine.At step S120 attains the scheduler 48 Information regarding processing (n + 1), for which is scheduled to be executed next to processing (s) or next to processing (s), in the same way as in step S100 . Then at step S130 determines whether or not the processing is (n + 1) parallel processing. If it is determined that the processing is (n + 1) parallel processing, the scheduler runs 48 with step S140 away. If it is determined that the processing (n + 1) is not parallel processing, the scheduler returns 48 to step S100 return. Will at step S110 or step S130 a negative determination is made, that is, when at least one of the processing (n) and the processing (n + 1) is not the parallel processing, the scheduler gives 48 at an appropriate time, a request to start execution of the processing (s) to the processor elements 40a until 40n assigned the processing (s) in another routine not shown.

Bei Schritt S140 wählt der Zeitplaner 48 das Prozessorelement/die Prozessorelemente 40a bis 40n, das/die vorläufig eine Unterverarbeitung ausführen soll/sollen, die mindestens ein Teil der parallelen Verarbeitung (n + 1) ist, aus den Prozessorelementen 40a bis 40n aus, denen Unterverarbeitungen der parallelen Verarbeitung (n) nicht zugewiesen sind. Beispielsweise kann der Zeitplaner 48 das Prozessorelement 40a bis 40n mit der kleinsten PE-Nummer unter den Prozessorelementen 40a bis 40n, denen die Unterverarbeitung der parallelen Verarbeitung (n) nicht zugewiesen sind, als das Prozessorelement 40a bis 40n auswählen, dass vorläufig die Unterverarbeitung ausführt, die mindestens der Teil der parallelen Verarbeitung (n + 1) ist. Alternativ kann ein anderes Verfahren verwendet werden, um ein Prozessorelement/Prozessorelemente 40a bis 40n auszuwählen, das/die vorläufig die Unterverarbeitung ausführt/ausführen, die mindestens der Teil der parallelen Verarbeitung (n + 1) ist. Ferner kann die Anzahl von Prozessorelementen 40a bis 40n, die vorläufig die Unterverarbeitung der parallelen Verarbeitung (n + 1) ausführen, eines oder mehrere sein. Ferner bestimmt der Zeitplaner 48 ebenso die Unterverarbeitung, die vorläufig durch die ausgewählten Prozessorelemente 40a bis 40n ausgeführt wird.At step S140 the scheduler chooses 48 the processor element (s) 40a until 40n that is / should provisionally perform sub-processing that is at least a part of the parallel processing (n + 1) from the processor elements 40a until 40n to which subprocessings of the parallel processing (s) are not assigned. For example, the scheduler 48 the processor element 40a until 40n with the lowest PE number among the processor elements 40a until 40n that are not assigned the parallel processing sub-processing (s) as the processor element 40a until 40n select to provisionally execute the sub-processing that is at least the part of the parallel processing (n + 1). Alternatively, another method can be used to create a processor element (s) 40a until 40n that provisionally performs the sub-processing that is at least the part of the parallel processing (n + 1). Furthermore, the number of processor elements 40a until 40n that preliminarily perform the sub-processing of the parallel processing (n + 1) may be one or more. The scheduler also determines 48 likewise the sub-processing provisionally carried out by the selected processor elements 40a until 40n is performed.

Beispielsweise zeigt 5 ein Beispiel, in dem, wenn die CPU 20 drei Prozessorelemente 40a bis 40c hat und die drei Prozessorelemente 40a bis 40c parallele Verarbeitung A als die parallele Verarbeitung (n) und parallele Verarbeitung B als die nächste parallele Verarbeitung (n + 1) ausführen, Unterverarbeitungen jeder parallelen Verarbeitung A und B durch die Prozessorelemente 40a bis 40c ausgeführt werden. Insbesondere beinhaltet die parallele Verarbeitung A die Unterverarbeitungen A1 und A2. Die Unterverarbeitung A1 ist dem Prozessorelement 40a zugewiesen. Die Unterverarbeitung A2 ist dem Prozessorelement 40b zugewiesen. Ferner beinhaltet die parallele Verarbeitung B Unterverarbeitungen B1, B2 und B3. Die Unterverarbeitung B1 ist dem Prozessorelement 40a zugewiesen. Die Unterverarbeitung B2 ist dem Prozessorelement 40b zugewiesen. Die Unterverarbeitung B3 ist dem Prozessorelement 40c zugewiesen. In dem Beispiel, das in 5 gezeigt ist, wenn die parallele Verarbeitung A ausgeführt wird, ist das Prozessorelement 40c in einem Bereitschaftszustand. Demnach wird das Prozessorelement 40c als das Prozessorelement zum vorläufig Ausführen der Unterverarbeitung ausgewählt, die mindestens ein Teil der parallelen Verarbeitung ist. Ferner führt in dem in 5 gezeigten Beispiel das Prozessorelement 40c vorläufig die Unterverarbeitungen B1 und B2 als die Unterverarbeitung aus, die mindestens der Teil der parallelen Verarbeitung B ist.For example shows 5 an example in which when the CPU 20th three processor elements 40a until 40c has and the three processor elements 40a until 40c execute parallel processing A as the parallel processing (n) and parallel processing B as the next parallel processing (n + 1), sub-processings of each parallel processing A and B by the processor elements 40a until 40c are executed. In particular, the parallel processing A includes the sub-processing A1 and A2 . The sub-processing A1 is the processor element 40a assigned. The sub-processing A2 is the processor element 40b assigned. Furthermore, the parallel processing B includes sub-processing B1 , B2 and B3 . The sub-processing B1 is the processor element 40a assigned. The sub-processing B2 is the processor element 40b assigned. The sub-processing B3 is the processor element 40c assigned. In the example shown in 5 shown, when the parallel processing A is executed, is the processor element 40c in a standby state. Accordingly, the processor element 40c is selected as the processor element for provisionally executing the sub-processing that is at least a part of the parallel processing. Furthermore, in the in 5 example shown the processor element 40c provisionally the sub-processing B1 and B2 as the sub-processing, which is at least the part of the parallel processing B. is.

Der Zeitplaner 48 kann eine Bestimmung hinsichtlich dessen ausführen, welche Unterverarbeitung(en) vorläufig durch das Prozessorelement 40c in dem Bereitschaftszustand auszuführen ist. Beispielsweise kann der Zeitplaner 48 eine Unterverarbeitung (beispielsweise Unterverarbeitung B1) bestimmen, die eine Verarbeitung beinhaltet (ebenso eine bestimmte Verarbeitung genannt), die die längste Zeit benötigt, um Anweisungen und Daten von dem ROM 22 (oder RAM 24) auszulesen, von den Unterverarbeitungen B1, B2 und B3 der parallelen Verarbeitung B, als die vorläufig ausgeführte Verarbeitung bestimmen. Demzufolge kann die Zeit, die erforderlich ist, um die parallele Verarbeitung B abzuschließen, wirksam reduziert werden. In diesem Fall kann der Zeitplaner 48 einfach die vorläufig ausgeführte Unterverarbeitung bestimmen, beispielsweise durch Konfigurieren, so dass die PE-Informationen, die vorstehend beschrieben sind, Informationen über die Zeit beinhalten, die erforderlich ist, um die Anweisung und Daten jeder Unterverarbeitung auszulesen, oder Informationen, die die Unterverarbeitung angeben, die die längste Zeit erfordert. Alternativ können die PE-Informationen jeder parallelen Verarbeitung Informationen beinhalten, die direkt die Unterverarbeitung angeben, die vorläufig auszuführen ist.The scheduler 48 may make a determination as to which sub-processing (s) are provisionally performed by the processor element 40c is to be performed in the standby state. For example, the scheduler 48 a sub-processing (e.g. sub-processing B1 ) that includes processing (also called specific processing) that takes the longest time to get instructions and data from the ROM 22nd (or RAM 24 ) from the sub-processing B1 , B2 and B3 of the parallel processing B as the preliminary processing. As a result, the time required to complete the parallel processing B can be effectively reduced. In this case, the scheduler can 48 simply determine the sub-processing provisionally executed, for example, by configuring so that the PE information described above includes information on the time required to read out the instruction and data of each sub-processing or information indicating the sub-processing, which takes the longest time. Alternatively, the PE information of each parallel processing may include information that directly indicates the sub-processing to be provisionally performed.

Alternativ kann der Zeitplaner 48 eine Unterverarbeitung der parallelen Verarbeitung B einschließlich der Unterverarbeitung B3 (ebenso als eine bestimmte Verarbeitung bezeichnet) für die geplant ist, dass sie durch das Prozessorelement 40c in dem Bereitschaftszustand ausgeführt wird (ebenso als eine bestimmte Verarbeitung bezeichnet), als die vorläufig ausgeführte Unterverarbeitung bestimmen. Demzufolge können die Anweisung und Daten der Unterverarbeitung B3 in dem L1-Cache 42c gespeichert werden, auf den bei höherer Geschwindigkeit als auf den L2-Cache 44 zugegriffen werden kann, so dass das Prozessorelement 40c die Unterverarbeitung B3 früher abschließen kann. Ferner kann der Zeitplaner 48 alle die Unterverarbeitungen B1 bis B3, die in der parallelen Verarbeitung B beinhaltet sind, als ein Ziel für vorläufige Ausführung bestimmen.Alternatively, the scheduler can 48 a sub-processing of the parallel processing B including the sub-processing B3 (also referred to as specific processing) that is scheduled to be performed by the processor element 40c is executed in the standby state (also referred to as certain processing) than determine the sub-processing being preliminarily executed. As a result, the instruction and data of the sub-processing B3 in the L1 cache 42c stored on the at higher speed than on the L2 cache 44 can be accessed so that the processor element 40c the sub-processing B3 can complete earlier. The scheduler can also 48 all the subprocesses B1 until B3 that are in parallel processing B. are included as a target for preliminary execution.

Bei Schritt S150 des Ablaufdiagramms von 3 stellt der Zeitplaner 48 die Speicherschutzeinheit 46 so ein, dass die Speicherschutzeinheit 46 erlaubt, dass Ausgaben der Prozessorelemente 40a bis 40n, die die Unterverarbeitungen der parallelen Verarbeitung (n) ausführen, passieren, und Schreibanforderungsausgaben der Prozessorelemente 40a bis 40n, die vorläufig die Unterverarbeitung/Unterverarbeitungen der parallelen Verarbeitung (n + 1) ausführen, blockiert. In dem Beispiel, das in 5 gezeigt ist, stellt der Zeitplaner 48 die Speicherschutzeinheit 46 so ein, dass die Speicherschutzeinheit 46 Passieren der Ausgaben der Prozessorelemente 40a und 40b erlaubt, die die Unterverarbeitungen A1 und A2 der parallelen Verarbeitung A ausführen, und die Schreibanforderungsausgabe des Prozessorelements 40c, dass vorläufig die Unterverarbeitungen B1 und B2 der parallelen Verarbeitung B ausführt, blockiert. In der vorliegenden Ausführungsform wird vorläufige Ausführung der Unterverarbeitung/Unterverarbeitungen der parallelen Verarbeitung (n + 1) zu einem unbeabsichtigten Zeitpunkt hinsichtlich Steuerungsspezifikationen ausgeführt. Demnach, um zu verhindern, dass die vorläufige Ausführung der Unterverarbeitung/Unterverarbeitungen Brennkraftmaschinensteuerung beeinträchtigt, ist die Speicherschutzeinheit 46 eingestellt, um die Schreibanforderungsausgaben von den Prozessorelementen 40a bis 40n, die vorläufig die Unterverarbeitung/Unterverarbeitungen ausführen, an den Speicher (ROM 22, RAM 24), ein Register einer peripheren Vorrichtung wie der AD-Wandler 26 und der Zeitgeber 28 und so weiter zu blockieren.At step S150 of the flowchart of 3 provides the scheduler 48 the memory protection unit 46 so that the memory protection unit 46 allows outputs of the processor elements 40a until 40n that execute the sub-processing of the parallel processing (s) pass, and write request outputs of the processor elements 40a until 40n that are provisionally performing the sub-processing (s) of the parallel processing (n + 1) are blocked. In the example shown in 5 is shown represents the scheduler 48 the memory protection unit 46 so that the memory protection unit 46 Passing the outputs of the processor elements 40a and 40b allowed that the sub-processing A1 and A2 parallel processing A. execute, and the write request output of the processor element 40c that provisionally the sub-processing B1 and B2 executing parallel processing B is blocked. In the present embodiment, preliminary execution of the sub-processing (s) of the parallel processing (n + 1) is carried out at an unintended timing in terms of control specifications. Thus, in order to prevent the preliminary execution of the sub-processing (s) from affecting engine control, the memory protection unit is 46 set to the write request outputs from the processor elements 40a until 40n temporarily performing the sub-processing (s) to the memory (ROM 22nd , RAM 24 ), a register of a peripheral device such as the AD converter 26th and the timer 28 block and so on.

Es ist zu beachten, dass Blockieren der Schreibanforderungsausgaben ebenso unter Verwendung von Software implementiert werden kann, neben dem Verfahren des Verwendens von Hardware wie der Speicherschutzeinheit 46. Beispielsweise kann die Software so konfiguriert sein, dass die Software bestimmt, ob oder nicht die Unterverarbeitung, die durch das Prozessorelement ausgeführt wird, für eine vorläufige Ausführung ist, und wenn bestimmt wird, dass sie für eine vorläufige Ausführung ist, wird eine Schreibanforderung nicht ausgegeben.It should be noted that blocking the write request outputs can also be implemented using software, besides the method of using hardware such as the memory protection unit 46 . For example, the software may be configured so that the software determines whether or not the sub-processing executed by the processor element is for preliminary execution, and if it is determined that it is for preliminary execution, a write request is not issued .

Bei Schritt S160 sendet der Zeitplaner 48 Verarbeitungsausführungsanforderungen im Wesentlichen zur gleichen Zeit an alle der Prozessorelemente 40a bis 40n, die die Unterverarbeitungen der parallelen Verarbeitung (n) ausführen, und alle des Prozessorelements/der Prozessorelemente 40a bis 40n, die vorläufig die Unterverarbeitung/Unterverarbeitungen der parallelen Verarbeitung (n + 1) ausführen. In dem Beispiel, das in 5 gezeigt ist, sendet der Zeitplaner 48 die Verarbeitungsausführungsanforderungen im Wesentlichen zur gleichen Zeit an die Prozessorelemente 40a und 40b, die die Unterverarbeitungen A1 bzw. A2 der parallelen Verarbeitung A ausführen, und das Prozessorelement 40c, das vorläufig die Unterverarbeitungen B1 und B2 der parallelen Verarbeitung B ausführt. Demnach startet das Prozessorelement 40c die vorläufige Ausführung der Unterverarbeitungen B1 und B2 der parallelen Verarbeitung B, für die geplant ist, nach der parallelen Verarbeitung A ausgeführt zu werden. Demzufolge, bevor die parallele Verarbeitung B gestartet wird, können die Anweisungen und Daten, die in den Unterverarbeitungen B1 und B2 der parallelen Verarbeitung B verwendet werden, von dem ROM 22 (oder RAM 24) gelesen werden und in dem L2-Cache 44 gespeichert werden.At step S160 sends the scheduler 48 Processing execution requests to all of the processor elements at substantially the same time 40a until 40n that perform the sub-processing of the parallel processing (s) and all of the processor element (s) 40a until 40n that preliminarily perform the sub-processing (s) of the parallel processing (n + 1). In the example shown in 5 is shown, the scheduler sends 48 the processing execution requests to the processor elements at substantially the same time 40a and 40b who have made the sub-processing A1 respectively. A2 execute the parallel processing A, and the processor element 40c that is provisionally the sub-processing B1 and B2 parallel processing B. executes. Accordingly, the processor element starts 40c the preliminary execution of the sub-processing B1 and B2 the parallel processing B scheduled to be executed after the parallel processing A. As a result, before the parallel processing B. is started, the instructions and data that are in the sub-processing B1 and B2 of the parallel processing B can be used by the ROM 22nd (or RAM 24 ) and in the L2 cache 44 get saved.

Bei Schritt S170 bestimmt der Zeitplaner 48, ob oder nicht eine Verarbeitungsabschlussunterrichtung von all den Prozessorelementen 40a bis 40n empfangen wurde, die die Unterverarbeitungen der parallelen Verarbeitung (n) ausführen. In dieser Bestimmungsverarbeitung, wenn bestimmt wird, dass die Verarbeitungsabschlussunterrichtung von all den Prozessorelementen 40a bis 40n empfangen wurde, die die Unterverarbeitungen der parallelen Verarbeitung (n) ausführen, fährt der Zeitplaner 48 mit Schritt S180 fort. Andererseits, wenn bestimmt wird, dass die Verarbeitungsabschlussunterrichtung nicht von all den Prozessorelementen 40a bis 40n empfangen wurde, die die Unterverarbeitungen der parallelen Verarbeitung (n) ausführen, wird Schritt S170 wiederholt, bis Empfangen der Verarbeitungsabschlussunterrichtung abgeschlossen ist. Bei Schritt S180, um eine Bezeichnung der Verarbeitung zu aktualisieren, die ein Ziel der Bestimmung bezüglich dessen ist, ob oder nicht sie parallele Verarbeitung ist, wird die Variable n, die die Bestimmungszielverarbeitung spezifiziert, um ein inkrementiert. Danach kehrt der Zeitplaner 48 zu Schritt S 100 zurück und führt wiederholt S 100 bis S180 aus, die vorstehend beschrieben sind.At step S170 determines the scheduler 48 whether or not a processing completion notice from all of the processor elements 40a until 40n that perform the sub-processing of the parallel processing (s). In this determination processing, when it is determined that the processing completion notice of all of the processor elements 40a until 40n that execute the sub-processing of the parallel processing (s), the scheduler runs 48 with step S180 away. On the other hand, when it is determined that the processing completion notice is not from all of the processor elements 40a until 40n executing the sub-processing of the parallel processing (s) becomes step S170 repeatedly until receiving the processing completion notification is completed. At step S180 In order to update a designation of the processing which is a goal of determination as to whether or not it is parallel processing, the variable n specifying the destination processing is incremented by one. After that, the scheduler returns 48 to step S 100 back and leads repeatedly S 100 until S180 described above.

Nachdem die Speicherschutzeinheit 46 bei Schritt S150 des Ablaufdiagramms von 3 eingestellt ist, wird, um diese Einstellung aufzuheben, die Verarbeitung, die in einem Ablaufdiagramm von 4 gezeigt ist, durch den Zeitplaner 48 ausgeführt.After the memory protection unit 46 at step S150 of the flowchart of 3 is set, to cancel this setting, the processing shown in a flowchart of 4th is shown by the scheduler 48 executed.

Bei Schritt S190 bestimmt der Zeitplaner 48, ob oder nicht der Zeitplaner 48 eine Abschlussunterrichtung über eine vorläufige Ausführung von jedem Prozessorelement 40a bis 40n empfangen hat, dem die Unterverarbeitung der parallelen Verarbeitung (n + 1) zugewiesen wurde, und/oder, ob der Zeitplaner 48 eine Verarbeitungsausführungsanforderung für die parallele Verarbeitung (n + 1) an jedes Prozessorelement 40a bis 40n gesendet hat. Wenn die vorläufige Ausführung abgeschlossen ist oder die Verarbeitungsausführungsanforderung für die parallele Verarbeitung (n + 1) gesendet ist, muss die Speicherschutzeinheit 46 nicht länger eine Schreibanforderungsausgabe von jedem Prozessorelement 40a bis 40n blockieren, dem die Unterverarbeitung der parallelen Verarbeitung (n + 1) zugewiesen ist. Demnach fährt der Zeitplaner 48 mit Schritt S195 fort und hebt die Ausgabenblockadeeinstellung der Speicherschutzeinheit 46 auf. Jedoch, wenn die parallele Verarbeitung (n + 1) ausgeführt wird, wenn mindestens eines der Prozessorelemente 40a bis 40n vorläufig die Unterverarbeitung der nächsten parallelen Verarbeitung (n + 2) ausführt, behält die Speicherschutzeinheit 46 die Ausgabenblockadeeinstellung zum Blockieren der Schreibanforderungsausgabe von dem Prozessorelement, das vorläufig die Unterverarbeitung der nächsten parallelen Verarbeitung (n + 2) ausführt, bei.At step S190 determines the scheduler 48 whether or not the scheduler 48 a final notice of preliminary execution by each processor element 40a until 40n has received the parallel processing sub-processing (n + 1) and / or whether the scheduler 48 a processing execution request for parallel processing (n + 1) to each processor element 40a until 40n sent. When the preliminary execution is completed or the processing execution request for parallel processing (n + 1) is sent, the memory protection unit 46 no longer a write request issue from each processor element 40a until 40n block to which the parallel processing sub-processing (n + 1) is assigned. Accordingly, the scheduler drives 48 with step S195 away and cancels the output blocking setting of the memory protection unit 46 on. However, when the parallel processing (n + 1) is executed when at least one of the processor elements 40a until 40n temporarily executes the sub-processing of the next parallel processing (n + 2), the memory protection unit keeps 46 the output blockage setting for blocking the write request output from the processor element provisionally executing the sub-processing of the next parallel processing (n + 2).

Wie in 5 gezeigt ist, sobald die Unterverarbeitungen A1 und A2 der parallelen Verarbeitung A abgeschlossen sind und der Zeitplaner 48 bereit ist, die Verarbeitungsausführungsanforderung für die nächste parallele Verarbeitung B zu senden, sendet der Zeitplaner 48 die Verarbeitungsausführungsanforderung an jedes Prozessorelement 40a bis 40c. Zu dieser Zeit muss der Zeitplaner 48 nicht berücksichtigen, ob oder nicht das Prozessorelement 40c, dass vorläufig die Unterverarbeitungen B1 und B2 der parallelen Verarbeitung B ausführt, die vorläufige Ausführung der Unterverarbeitungen B1 und B2 abgeschlossen hat. Sogar, wenn die Unterverarbeitungen B1 und B2 in der Mitte unterbrochen werden, wird die Brennkraftmaschinensteuerung in keiner Weise nachteilig beeinflusst und die Anweisungen und Daten bezüglich der Unterverarbeitungen B1 und B2, die vorläufig bis zu diesem Punkt ausgeführt wurden, werden in dem L2-Cache 44 gespeichert. Demnach kann die Wirkung der Verbesserung der Cache-Trefferquote in der parallelen Verarbeitung B, die danach ausgeführt wird, ausreichend erwartet werden.As in 5 is shown once the sub-processing A1 and A2 the parallel processing A is completed and the scheduler 48 is ready, the processing execution request for the next parallel processing B. the scheduler sends 48 the processing execution request to each processor element 40a until 40c . At this time, the scheduler must 48 does not take into account whether or not the processor element 40c that provisionally the sub-processing B1 and B2 parallel processing B. executes the preliminary execution of the sub-processing B1 and B2 has completed. Even if the subprocesses B1 and B2 are interrupted in the middle, the engine control is not adversely affected in any way and the instructions and data relating to the sub-processing B1 and B2 that have been provisionally executed up to this point will be in the L2 cache 44 saved. Accordingly, the effect of improving the cache hit rate in the parallel processing B carried out after that can be sufficiently expected.

Gemäß dem Multiprozessorsystem 16 der ersten Ausführungsform, die vorstehend beschrieben ist, wenn für die parallele Verarbeitung (n + 1), die synchron auszuführen ist, geplant ist, dass sie mehreren Prozessorelementen 40a bis 40n zugewiesen wird, wird die Unterverarbeitung/werden die Unterverarbeitungen, die mindestens ein Teil der parallelen Verarbeitung (n + 1) ist/sind, vorläufig ausgeführt wird, um mindestens einen Teil der Anweisungen und Daten, der in der parallelen Verarbeitung (n + 1) verwendet wird, von dem ROM 22 oder dem RAM 24 auszulesen und die gelesenen Anweisungen und Daten in dem L2-Cache 44 durch Verwendung der Prozessorelemente 40a bis 40n, die in dem Bereitschaftszustand sind, vor der Ausführung der parallelen Verarbeitung (n + 1) zu speichern. Demnach ist möglich, dass, wenn die mehreren Prozessorelemente 40a bis 40n starten, parallele Verarbeitung (n + 1) auszuführen, mindestens ein Teil der Anweisungen und Daten, der in der parallelen Verarbeitung (n + 1) verwendet wird, in dem L2-Cache 44 als die gespeicherte Anweisung/gespeicherten Anweisungen und/oder Daten in dem L2-Cache 44 ist. Demzufolge, wenn das Multiprozessorsystem 16 der vorliegenden Ausführungsform die parallele Verarbeitung (n + 1) ausführt, kann die Wahrscheinlichkeit, dass mindestens ein Teil der Anweisungen und Daten, der für die parallele Verarbeitung (n + 1) erforderlich sind, in dem L2-Cache 44 existiert, das heißt, die Cache-Trefferquote, erhöht werden.According to the multiprocessor system 16 of the first embodiment described above, when the parallel processing (n + 1) to be carried out synchronously is scheduled to have a plurality of processor elements 40a until 40n is assigned, the sub-processing (s) that are at least a part of the parallel processing (n + 1) will be provisionally executed in order to convert at least part of the instructions and data included in the parallel processing (n + 1) used by the ROM 22nd or the RAM 24 read out and the read instructions and data in the L2 cache 44 by using the processor elements 40a until 40n that are in the standby state before executing the parallel processing (n + 1). Accordingly, it is possible that when the plurality of processor elements 40a until 40n start executing parallel processing (n + 1) at least part of the instructions and data used in parallel processing (n + 1) in the L2 cache 44 as the stored instruction (s) and / or data in the L2 cache 44 is. As a result, when the multiprocessor system 16 If the present embodiment executes the parallel processing (n + 1), the probability that at least a part of the instructions and data required for the parallel processing (n + 1) are in the L2 cache 44 exists, that is, the cache hit rate should be increased.

In der ersten Ausführungsform, die vorstehend beschrieben ist, wenn die parallele Verarbeitung (n) durch die mehreren Prozessorelemente 40a bis 40n vor der parallelen Verarbeitung (n + 1) ausgeführt wird, wird die Unterverarbeitung/werden die Unterverarbeitungen der parallelen Verarbeitung (n + 1) vorläufig durch das Prozessorelement/die Prozessorelemente 40a bis 40n in dem Bereitschaftszustand während der Ausführungsperiode der parallelen Verarbeitung (n) ausgeführt. Der Grund dafür ist, dass, wenn die parallele Verarbeitung (n) ausgeführt wird, bevor die parallele Verarbeitung (n + 1) ausgeführt wird, es relativ einfach sein kann, das Prozessorelement/die Prozessorelemente in dem Bereitschaftszustand während der Ausführung der parallelen Verarbeitung (n) zu veranlassen, die Unterverarbeitung/Unterverarbeitungen) der parallelen Verarbeitung (n + 1) auszuführen. Gründe, warum es relativ einfach sein kann, das Prozessorelement/die Prozessorelemente in dem Bereitschaftszustand während der Ausführung der parallelen Verarbeitung (n) zu veranlassen, die Unterverarbeitung/Unterverarbeitungen der parallelen Verarbeitung (n + 1) auszuführen, sind, dass es einfach ist, das Prozessorelement/die Prozessorelemente 40a bis 40n zu ermitteln, das/die während der Ausführung der parallelen Verarbeitung (n) in dem Bereitschaftszustand ist/sind, der Start der vorläufigen Ausführung der Unterverarbeitung/Unterverarbeitungen der parallelen Verarbeitung (n + 1) mit dem Start der parallelen Verarbeitung (n) abgeglichen werden kann, und so weiter.In the first embodiment described above, when the parallel processing (n) by the plurality of processor elements 40a until 40n before the parallel processing (n + 1) is executed, the sub-processing (s) of the parallel processing (n + 1) are provisionally performed by the processor element (s) 40a until 40n executed in the standby state during the execution period of the parallel processing (n). The reason for this is that if the parallel processing (n) is performed before the parallel processing (n + 1) is performed, it may be relatively easy to keep the processor element (s) in the standby state during the execution of the parallel processing ( n) to cause the sub-processing (s) of the parallel processing (n + 1) to be carried out. Reasons why it may be relatively easy to cause the processor element (s) in the standby state during the execution of the parallel processing (n) to execute the sub-processing (s) of the parallel processing (n + 1) is that it is easy to the processor element (s) 40a until 40n To determine that is / are in the standby state during the execution of the parallel processing (s), the start of the preliminary execution of the sub-processing (s) of the parallel processing (n + 1) is compared with the start of the parallel processing (n) can, and so on.

Jedoch, sogar, wenn die Verarbeitung, die vor der parallelen Verarbeitung (n + 1) ausgeführt wird, nicht die parallele Verarbeitung (n) ist, ist es möglich, das Prozessorelement/die Prozessorelemente 40a bis 40n in dem Bereitschaftszustand zu veranlassen, vorläufig die Unterverarbeitung/Unterverarbeitungen der parallelen Verarbeitung (n + 1) auszuführen, solange Verarbeitungen nicht all den Prozessorelementen 40a bis 40n in der Verarbeitung vor der parallelen Verarbeitung (n + 1) zugewiesen sind, und demnach wird mindestens eines der Prozessorelemente 40a bis 40n in dem Bereitschaftszustand gelassen.However, even if the processing performed before the parallel processing (n + 1) is not the parallel processing (n), it is possible to use the processor element (s) 40a until 40n in the standby state to provisionally execute the sub-processing (s) of the parallel processing (n + 1) as long as processings do not include all of the processor elements 40a until 40n in the processing prior to the parallel processing (n + 1) are assigned, and thus at least one of the processor elements 40a until 40n left in the standby state.

(Zweite Ausführungsform)(Second embodiment)

Als nächstes wird eine zweite Ausführungsform des Multiprozessorsystems gemäß der vorliegenden Offenbarung gemäß den Zeichnungen beschrieben. Da die Basiskonfiguration des Multiprozessorsystems 16 der vorliegenden Ausführungsform die gleiche wie die des Multiprozessorsystems 16 gemäß der ersten Ausführungsform ist, wird die Beschreibung davon weggelassen.Next, a second embodiment of the multiprocessor system according to the present disclosure will be described in accordance with the drawings. As the basic configuration of the multiprocessor system 16 of the present embodiment is the same as that of the multiprocessor system 16 according to the first embodiment, the description thereof is omitted.

In dem Multiprozessorsystem 16 der ersten Ausführungsform, die vorstehend beschrieben ist, wird die Unterverarbeitung/werden die Unterverarbeitungen, die mindestens ein Teil der parallelen Verarbeitung (n + 1) ist/sind, tatsächlich vorläufig durch die Prozessorelemente 40a bis 40n ausgeführt, die in dem Bereitschaftszustand vor der parallelen Verarbeitung (n + 1) sind, um mindestens einen Teil von Anweisungen und Daten, der in der parallelen Verarbeitung (n + 1) verwendet wird, von dem ROM 22 oder dem RAM 24 auszulesen und die gespeicherten Anweisungen und Daten in dem L2-Cache 44 zu speichern.In the multiprocessor system 16 According to the first embodiment described above, the sub-processing (s) that are at least a part of the parallel processing (n + 1) are actually provisionally performed by the processor elements 40a until 40n , which are in the standby state before the parallel processing (n + 1), to transfer at least a part of instructions and data used in the parallel processing (n + 1) from the ROM 22nd or the RAM 24 read out and the stored instructions and data in the L2 cache 44 save.

Andererseits wird in dem Multiprozessorsystem 16 der vorliegenden Ausführungsform mindestens der Teil der Anweisungen und Daten, der in der parallelen Verarbeitung (n + 1) verwendet wird, von dem ROM 22 oder dem RAM 24 ausgelesen und die ausgelesenen Anweisungen und Daten werden in dem L2-Cache 44 gespeichert, indem mindestens eines der Prozessorelemente 40a in dem Bereitschaftszustand vor der parallelen Verarbeitung (n + 1) veranlasst wird, die Verarbeitungen zum Auslesen mindestens des Teils der Anweisungen und Daten, der in der parallelen Verarbeitung (n + 1) verwendet wird, von dem ROM 22 oder RAM 24 und Schreiben der ausgelesenen Anweisungen und Daten in den L2-Cache 44 auszuführen.On the other hand, in the multiprocessor system 16 In the present embodiment, at least the part of the instructions and data used in the parallel processing (n + 1) from the ROM 22nd or the RAM 24 read out and the read out instructions and data are in the L2 cache 44 stored by at least one of the processor elements 40a in the standby state prior to the parallel processing (n + 1), causing the processings to read out at least the part of the instructions and data used in the parallel processing (n + 1) from the ROM 22nd or RAM 24 and writing the read instructions and data to the L2 cache 44 to execute.

In der vorliegenden Ausführungsform wird für jede parallele Verarbeitung ein Programm vorbereitet und in dem ROM 22 oder RAM 24 gespeichert, wobei das Programm dazu dient, mindestens einen Teil der Anweisungen und Daten, der in jeder parallelen Verarbeitung verwendet wird, von dem ROM 22 oder RAM 24 auszulesen und die ausgelesenen Anweisungen und Daten in den L2-Cache 44 zu schreiben. Zu dieser Zeit, können die Anweisungen und Daten, die von dem Speicher auszulesen und in den L2-Cache 44 zu schreiben sind, in Einheiten der Unterverarbeitungen B1, B2 und B3 der parallelen Verarbeitung B bestimmt werden, in anderen Worten, können für jede Unterverarbeitung B1, B2, B3 bestimmt werden oder können Anweisungen und Daten entsprechend einem Teil oder aller der Unterverarbeitungen B1, B2 und B3 sein. Um diese Ausführungsform zu übernehmen, ist es erforderlich, dass der L2-Cache 44 eine Hardwarefunktion hat, um direktes Schreiben von den Prozessorelementen 40a bis 40n zu akzeptieren.In the present embodiment, a program is prepared for each parallel processing and is stored in the ROM 22nd or RAM 24 and the program is used to retrieve at least part of the instructions and data used in any parallel processing from the ROM 22nd or RAM 24 read out and the read instructions and data in the L2 cache 44 to write. At that time, the instructions and data can be read from memory and placed in the L2 cache 44 are to be written in units of sub-processing B1 , B2 and B3 of the parallel processing B, in other words, can be determined for each sub-processing B1 , B2 , B3 can be determined or statements and data corresponding to part or all of the sub-processing B1 , B2 and B3 be. In order to adopt this embodiment, it is necessary that the L2 cache 44 has a hardware function to allow direct writing from the processor elements 40a until 40n to accept.

Das Ablaufdiagramm von 6 zeigt ein Beispiel der Verarbeitung, die durch einen Zeitplaner 48 eines Multiprozessorsystems 16 der vorliegenden Ausführungsform ausgeführt wird. Da die Verarbeitung der Schritte S200 bis S230 des Ablaufdiagramms von 6 die gleiche wie die Verarbeitung der Schritte S100 bis S130 des Ablaufdiagramms von 3 ist, wird die Beschreibung davon weggelassen.The flowchart of 6th shows an example of processing performed by a scheduler 48 of a multiprocessor system 16 of the present embodiment is carried out. As the processing of the steps S200 until S230 of the flowchart of 6th the same as processing the steps S100 until S130 of the flowchart of 3 the description thereof is omitted.

Bei Schritt S240 wählt der Zeitplaner 48 ein Prozessorelement/Prozessorelemente 40a bis 40n, das/die Verarbeitungen zum Auslesen mindestens eines Teils von Anweisungen und Daten, der in der parallelen Verarbeitung (n + 1) verwendet wird, von einem Speicher und zum Schreiben der ausgelesenen Anweisungen und Daten in den L2-Cache 44 ausführen soll/ausführen sollen, von den Prozessorelementen 40a bis 40n aus, denen Unterverarbeitungen der parallelen Verarbeitung (n) nicht zugewiesen sind. Das Verfahren zum Auswählen der Prozessorelemente 40a bis 40n kann das gleiche wie das der ersten Ausführungsform sein. Beispielsweise ist in dem Beispiel, das in 7 gezeigt ist, wenn parallele Verarbeitung A ausgeführt wird, ein Prozessorelement 40 in dem Bereitschaftszustand. Demnach wird die Verarbeitung zum Lesen der Anweisungen und Daten von dem Speicher und zum Schreiben der ausgelesenen Anweisungen und Daten in den L2-Cache 44 durch das Prozessorelement 40c ausgeführt.At step S240 the scheduler chooses 48 a processor element (s) 40a until 40n , the processing (s) for reading out at least a part of instructions and data used in the parallel processing (n + 1) from a memory and for writing the read-out instructions and data into the L2 cache 44 should execute / should execute, from the processor elements 40a until 40n to which subprocessings of the parallel processing (s) are not assigned. The method of selecting the processor elements 40a until 40n may be the same as that of the first embodiment. For example, in the example presented in 7th when parallel processing A is performed, there is shown a processor element 40 in the standby state. Accordingly, the processing is for reading the instructions and data from the memory and for writing the read instructions and data into the L2 cache 44 by the processor element 40c executed.

Bei Schritt S260 sendet ähnlich wie bei Schritt S160 in dem Ablaufdiagramm von 3 der Zeitplaner 48 Verarbeitungsausführungsanforderungen im Wesentlichen zur gleichen Zeit an Prozessorelemente 40a bis 40n, die die Unterverarbeitungen der parallelen Verarbeitung (n) ausführen, und Prozessorelemente 40a bis 40n, die die Verarbeitungen zum Lesen mindestens den Teil der Anweisungen und Daten, der in der parallelen Verarbeitung (n + 1) verwendet wird, von dem Speicher und zum Schreiben der ausgelesenen Anweisungen und Daten in den L2-Cache 44 ausführen. Da die Verarbeitung der Schritte S270 bis S280 in dem Ablaufdiagramm von 6 die gleiche wie die Verarbeitung der Schritte S170 bis S180 in dem Ablaufdiagramm von 3 ist, wird die Beschreibung davon weggelassen.At step S260 sends similar to step S160 in the flow chart of 3 the scheduler 48 Processing execution requests to processor elements at substantially the same time 40a until 40n that perform the sub-processing of the parallel processing (s) and processor elements 40a until 40n that the processings for reading at least the part of the instructions and data used in the parallel processing (n + 1) from the memory and for writing the read instructions and data into the L2 cache 44 carry out. As the processing of the steps S270 until S280 in the flow chart of 6th the same as processing the steps S170 until S180 in the flow chart of 3 the description thereof is omitted.

In der vorliegenden Ausführungsform, wie vorstehend beschrieben ist, lesen die Prozessorelemente 40a bis 40n in dem Bereitschaftszustand vor der parallelen Verarbeitung (n + 1) nur die Anweisung und Daten von dem Speicher und schreiben die ausgelesene Anweisung und die ausgelesenen Daten an den L2-Cache 44. In anderen Worten, führen Elemente 40a bis 40n in dem Bereitschaftszustand keine Schreibverarbeitung in den Speicher und periphere Vorrichtungen aus. Demnach ist ungleich zur ersten Ausführungsform eine Einstellverarbeitung der Speicherschutzeinheit 46 nicht nötig. Demzufolge kann in dieser Ausführungsform die Speicherschutzeinheit 46 weggelassen werden.In the present embodiment, as described above, the processor elements read 40a until 40n in the standby state before the parallel processing (n + 1), only the instruction and data from the memory and write the read-out instruction and the read-out data to the L2 cache 44 . In other words, lead elements 40a until 40n does not perform write processing to the memory and peripheral devices in the standby state. Therefore, unlike the first embodiment, setting processing of the memory protection unit is 46 not necessary. Accordingly, in this embodiment, the memory protection unit 46 can be omitted.

Ähnlich zum Multiprozessorsystem 16 der ersten Ausführungsform kann gemäß dem Multiprozessorsystem 16 der zweiten Ausführungsform, die vorstehend beschrieben ist, bevor die mehreren Prozessorelemente 40a bis 40n die parallele Verarbeitung (n + 1) ausführen, mindestens der Teil der Anweisungen und Daten, der in der parallelen Verarbeitung (n + 1) verwendet wird, in dem L2-Cache 44 gespeichert werden. Demzufolge kann in dem Multiprozessorsystem 16 der vorliegenden Ausführungsform, wenn die parallele Verarbeitung (n + 1) ausgeführt wird, die Wahrscheinlichkeit, dass mindestens ein Teil der Anweisungen und Daten, der für die parallele Verarbeitung (n + 1) erforderlich ist, in dem L2-Cache 44 existiert, das heißt, die Cache-Trefferquote, erhöht werden.Similar to the multiprocessor system 16 of the first embodiment can according to the multiprocessor system 16 the second embodiment that is described above before the multiple processor elements 40a until 40n perform the parallel processing (n + 1), at least the portion of the instructions and data used in the parallel processing (n + 1) in the L2 cache 44 get saved. As a result, in the multiprocessor system 16 According to the present embodiment, when the parallel processing (n + 1) is performed, the probability that at least a part of the instructions and data required for the parallel processing (n + 1) is in the L2 cache 44 exists, that is, the cache hit rate should be increased.

(Dritte Ausführungsform)(Third embodiment)

Als nächstes wird eine dritte Ausführungsform des Multiprozessorsystems gemäß der vorliegenden Offenbarung gemäß den Zeichnungen beschrieben. Da die Basiskonfiguration des Multiprozessorsystems 16 der vorliegenden Ausführungsform die gleiche wie die des Multiprozessorsystems 16 gemäß der ersten Ausführungsform ist, wird die Beschreibung davon weggelassen.Next, a third embodiment of the multiprocessor system according to the present disclosure will be described in accordance with the drawings. As the basic configuration of the multiprocessor system 16 of the present embodiment is the same as that of the multiprocessor system 16 according to the first embodiment, the description thereof is omitted.

In dem Multiprozessorsystem 16 der ersten Ausführungsform, die vorstehend beschrieben ist, wird mindestens der Teil der Unterverarbeitungen der parallelen Verarbeitung (n + 1) vorläufig nur durch die Prozessorelemente ausgeführt, denen die Unterverarbeitungen der parallelen Verarbeitung (n), die vor der parallelen Verarbeitung (n + 1) ausgeführt wird, nicht zugewiesen sind.In the multiprocessor system 16 In the first embodiment described above, at least the part of the sub-processing of the parallel processing (n + 1) is provisionally executed only by the processor elements to which the sub-processing of the parallel processing (n) which was carried out before the parallel processing (n + 1) are not assigned.

Andererseits, wird/werden in dem Multiprozessorsystem 16 der vorliegenden Ausführungsform die Unterverarbeitung/Unterverarbeitungen der parallelen Verarbeitung (n + 1) vorläufig von den Prozessorelementen 40a bis 40n, denen eine Unterverarbeitung der parallelen Verarbeitung (n) zugewiesen ist, durch das Prozessorelement/die Prozessorelemente 40a bis 40n (ebenso als ein erster Prozessor bezeichnet) ausgeführt, das/die die zugewiesene Unterverarbeitung früher als die anderen Prozessorelemente 40a bis 40n (ebenso als zweite Prozessoren bezeichnet) ausführt/ausführen, zusätzlich zu oder anstelle des Prozessorelements/der Prozessorelemente 40a bis 40n, dem/denen die Unterverarbeitung der parallelen Verarbeitung (n) nicht zugewiesen ist/sind.On the other hand, will be in the multiprocessor system 16 In the present embodiment, the sub-processing (s) of parallel processing (n + 1) are provisionally performed by the processor elements 40a until 40n assigned a sub-processing of the parallel processing (s) by the processor element (s) 40a until 40n (also referred to as a first processor) executing the assigned sub-processing earlier than the other processor elements 40a until 40n (also referred to as second processors) executes / execute, in addition to or instead of the processor element (s) 40a until 40n who are not assigned the sub-processing of the parallel processing (s).

Das Ablaufdiagramm von 8 zeigt ein Beispiel der Verarbeitung, die durch einen Zeitplaner 48 eines Multiprozessorsystems 16 der vorliegenden Ausführungsform ausgeführt wird. Da die Verarbeitung der Schritte S300 bis S380 des Ablaufdiagramms von 8 die gleiche wie die Verarbeitung der Schritte S100 bis S180 des Ablaufdiagramms von 3 ist, wird die Beschreibung davon weggelassen.The flowchart of 8th shows an example of processing performed by a scheduler 48 of a multiprocessor system 16 of the present embodiment is carried out. As the processing of the steps S300 until S380 of the flowchart of 8th the same as processing the steps S100 until S180 of the flowchart of 3 the description thereof is omitted.

Bei Schritt S370 bestimmt der Zeitplaner 48, ob Verarbeitungsabschlussunterrichtungen von all den Prozessorelementen empfangen wurden, die Unterverarbeitungen der parallelen Verarbeitung (n) ausführen. Wenn der Zeitplaner 48 bei Schritt S370 bestimmt, dass Verarbeitungsabschlussunterrichtungen von nicht all den Prozessorelementen empfangen wurden, die Unterverarbeitungen der parallelen Verarbeitung (n) ausführen, fährt der Zeitplaner 48 mit Schritt S390 fort. Bei Schritt S390 bestimmt der Zeitplaner 48, ob oder nicht das Prozessorelement 40a bis 40n, das in einem Bereitschaftszustand nach Abschluss der zugewiesenen Unterverarbeitung ist, existiert, basierend auf der Verarbeitungsabschlussunterrichtung, die von jedem Prozessorelement 40a bis 40n empfangen wird. Wird in dieser Bestimmungsverarbeitung bestimmt, dass das Prozessorelement 40a bis 40n in dem Bereitschaftszustand existiert, fährt der Zeitplaner 48 mit Schritt S400 fort. Andererseits, wenn bestimmt wird, dass das Prozessorelement 40a bis 40c in dem Bereitschaftszustand nicht existiert, kehrt der Zeitplaner 48 zu Schritt S370 zurück.At step S370 determines the scheduler 48 whether processing completion notifications have been received from all of the processor elements executing sub-processing of the parallel processing (s). When the scheduler 48 at step S370 determines that processing completion notifications have not been received from all of the processor elements performing sub-processing of the parallel processing (s), the scheduler runs 48 with step S390 away. At step S390 determines the scheduler 48 whether or not the processor element 40a until 40n that is in a standby state after completion of the assigned sub-processing exists based on the processing completion notification received from each processor element 40a until 40n Will be received. In this determination processing, it is determined that the processor element 40a until 40n exists in the standby state, the scheduler runs 48 with step S400 away. On the other hand, when it is determined that the processor element 40a until 40c In the standby state does not exist, the scheduler returns 48 to step S370 return.

Bei Schritt S400 stellt der Zeitplaner 48 eine Speicherschutzeinheit 46 ein, um eine Schreibanforderungsausgabe von dem Prozessorelement 40a bis 40n in dem Bereitschaftszustand zu blockieren. Dann wählt bei S410 der Zeitplaner 48 mindestens eine von nicht ausgeführten Unterverarbeitungen von den Unterverarbeitungen der parallelen Verarbeitung (n + 1) aus und sendet eine Verarbeitungsausführungsanforderung an das Prozessorelement 40a bis 40n in dem Bereitschaftszustand, um das Prozessorelement 40a bis 40n in dem Bereitschaftszustand zu veranlassen, vorläufig die ausgewählte Unterverarbeitung auszuführen.At step S400 provides the scheduler 48 a memory protection unit 46 on to a write request output from the processor element 40a until 40n to block in the standby state. Then choose at S410 the scheduler 48 at least one of unexecuted sub-processing among the parallel processing sub-processing (n + 1), and sends a processing execution request to the processor element 40a until 40n in the standby state to the processor element 40a until 40n in the standby state to provisionally execute the selected sub-processing.

Beispielsweise zeigt 9 ein Beispiel, in dem ein Prozessorelement 40c, dem Unterverarbeitungen A1 und A2 der parallelen Verarbeitung A nicht zugewiesen sind, vorläufig eine Unterverarbeitung B1 der parallelen Verarbeitung B ausführt, und ferner ein Prozessorelement 40b, dem eine Unterverarbeitung A2 der parallelen Verarbeitung A zugewiesen ist, vorläufig eine Unterverarbeitung B2 der parallelen Verarbeitung B nach Abschluss der Unterverarbeitung A2 ausführt. Wie in 9 gezeigt ist, sendet das Prozessorelement 40b eine Verarbeitungsabschlussunterrichtung an den Zeitplaner 48, wenn die Unterverarbeitung A2 der parallelen Verarbeitung A abgeschlossen ist. Demnach weiß der Zeitplaner 48, dass das Prozessorelement 40b in dem Bereitschaftszustand ist. Zu dieser Zeit, da der Zeitplaner 48 die Verarbeitungsabschlussunterrichtung von dem Prozessorelement 40a nicht empfangen hat, bestimmt der Zeitplaner 48, das Prozessorelement 40b in dem Bereitschaftszustand zu veranlassen, vorläufig eine unausgeführte Unterverarbeitung B2 von Unterverarbeitungen B1, B2 und B3 der parallelen Verarbeitung B auszuführen. Nach Ausführen erforderlicher Verarbeitung wie Einstellen der Speicherschutzeinheit 46 sendet der Zeitplaner 48 eine Verarbeitungsausführungsanforderung an das Prozessorelement 40b zum vorläufigen Ausführen der Unterverarbeitung B2 der parallelen Verarbeitung B.For example shows 9 an example in which a processor element 40c , the sub-processing A1 and A2 parallel processing A. are not assigned, temporary sub-processing B1 parallel processing B. executes, and also a processor element 40b which is a sub-processing A2 is assigned to the parallel processing A, sub-processing is provisionally B2 the parallel processing B after the completion of the sub-processing A2 executes. As in 9 is shown, the processor element transmits 40b a processing completion notice to the scheduler 48 when the sub-processing A2 the parallel processing A is completed. So the scheduler knows 48 that the processor element 40b is in the standby state. At that time as the scheduler 48 the processing completion notification from the processor element 40a not received, the scheduler determines 48 , the processor element 40b in the standby state to provisionally cause unexecuted sub-processing B2 of under-processing B1 , B2 and B3 the parallel Execute processing B. After performing necessary processing such as setting the memory protection unit 46 sends the scheduler 48 a processing execution request to the processor element 40b for preliminary execution of sub-processing B2 parallel processing B.

Auf diese Weise werden die Unterverarbeitungen B1, B2 vorläufig ausgeführt durch Verwenden von: dem Prozessorelement 40b, das die zugewiesene Unterverarbeitung A2 der parallelen Verarbeitung A abschließt und dann in dem Bereitschaftszustand ist; und dem Prozessorelement 40c dem die Unterverarbeitung der parallelen Verarbeitung A nicht zugewiesen ist. Demzufolge ist es möglich, mehr Anweisungen und Daten, die in der parallelen Verarbeitung B verwendet werden, in einem L2-Cache 44 zu speichern.This way the sub-processing B1 , B2 tentatively carried out by using: the processor element 40b that is the assigned subprocessing A2 the parallel processing A completes and then is in the standby state; and the processor element 40c to which the sub-processing of parallel processing A is not assigned. As a result, it is possible to have more instructions and data used in parallel processing B in an L2 cache 44 save.

(Vierte Ausführungsform)(Fourth embodiment)

Als nächstes wird eine vierte Ausführungsform des Multiprozessorsystems gemäß der vorliegenden Offenbarung gemäß den Zeichnungen beschrieben. Da die Basiskonfiguration des Multiprozessorsystems 16 der vorliegenden Ausführungsform die gleiche wie die des Multiprozessorsystems 16 gemäß der ersten Ausführungsform ist, wird die Beschreibung davon weggelassen.Next, a fourth embodiment of the multiprocessor system according to the present disclosure will be described in accordance with the drawings. As the basic configuration of the multiprocessor system 16 of the present embodiment is the same as that of the multiprocessor system 16 according to the first embodiment, the description thereof is omitted.

In dem Multiprozessorsystem 16 gemäß der vorliegenden Ausführungsform kann sogar, wenn Unterverarbeitungen der parallelen Verarbeitung (n), die vor der parallelen Verarbeitung (n + 1) ausgeführt wird, allen von mehreren Prozessorelementen 40a bis 40n zugewiesen sind, mindestens ein Teil der Unterverarbeitungen der nächsten parallelen Verarbeitung (n + 1) vorläufig ausgeführt werden. Insbesondere weist in dem Multiprozessorsystem 16 der vorliegenden Ausführungsform der Zeitplaner 48 eine vorläufige Ausführung der Unterverarbeitung der nächsten parallelen Verarbeitung (n + 1) bei dem Prozessorelement/den Prozessorelementen 40a bis 40n an, das/die die zugewiesene Unterverarbeitung der parallelen Verarbeitung (n) früher als andere Prozessorelemente 40a bis 40n abschließt/abschließen.In the multiprocessor system 16 According to the present embodiment, even if sub-processing of the parallel processing (n) performed before the parallel processing (n + 1) can be all of a plurality of processor elements 40a until 40n are assigned, at least part of the sub-processings of the next parallel processing (n + 1) are provisionally executed. In particular, points in the multiprocessor system 16 of the present embodiment the scheduler 48 a preliminary execution of the sub-processing of the next parallel processing (n + 1) at the processor element (s) 40a until 40n that the assigned sub-processing of the parallel processing (s) earlier than other processor elements 40a until 40n complete / complete.

Ferner schließt in dem Beispiel, das in 10 gezeigt ist, ein Prozessorelement 40b die Unterverarbeitung A2 der parallelen Verarbeitung A am frühesten von all den Prozessorelementen 40a, 40b und 40c ab. Demnach fordert der Zeitplaner 48 das Prozessorelement 40b auf, vorläufig eine Unterverarbeitung B2 der nächsten parallelen Verarbeitung B in Antwort auf einen Empfang einer Verarbeitungsabschlussunterrichtung von dem Prozessorelement 40 auszuführen. Danach schließt das Prozessorelement 40c eine Unterverarbeitung A3 der parallelen Verarbeitung A ab und sendet eine Verarbeitungsabschlussunterrichtung an den Zeitplaner 48. Zu dieser Zeit hat das Prozessorelement 40a eine Unterverarbeitung A1 der parallelen Verarbeitung A noch nicht abaeschlossen und der Zeitolaner 48 hat eine Verarbeitunasabschlussunterrichtuna von dem Prozessorelement 40a noch nicht empfangen. Somit, da der Zeitplaner 48 die Verarbeitungsabschlussunterrichtungen von nicht all den Prozessorelementen 40a bis 40c empfangen hat, denen die Unterverarbeitungen A1, A2 und A3 der parallelen Verarbeitung zugewiesen sind, fordert der Zeitplaner 48 die vorläufige Ausführung der Unterverarbeitung B3 der nächsten parallelen Verarbeitung B dem Prozessorelement 40c an, von dem die Verarbeitungsabschlussunterrichtung empfangen wird.Furthermore, in the example shown in 10 is shown a processor element 40b the sub-processing A2 parallel processing A. earliest of all the processor elements 40a , 40b and 40c away. Accordingly, the scheduler asks 48 the processor element 40b on, for the time being, a sub-processing B2 the next parallel processing B in response to receiving a processing completion notice from the processor element 40 to execute. The processor element then closes 40c a sub-processing A3 of the parallel processing A and sends a processing completion notice to the scheduler 48 . At that time, the processor element 40a a sub-processing A1 the parallel processing A not yet completed and the Zeitolaner 48 has a processing completion instruction from the processor element 40a not received yet. Thus, as the scheduler 48 the processing completion notifications from all of the processor elements 40a until 40c who received the sub-processing A1 , A2 and A3 are assigned to parallel processing, the scheduler requests 48 the preliminary execution of the sub-processing B3 the next parallel processing B. the processor element 40c from which the processing completion notice is received.

Dann fordert in Antwort auf Empfangen der Verarbeitungsabschlussunterrichtungen von all den Prozessorelementen 40a bis 40c, denen die Unterverarbeitungen A1, A2 und A3 der parallelen Verarbeitung A zugewiesen sind, der Zeitplaner 48 jedes der Prozessorelemente 40a bis 40c auf, die zugewiesene Unterverarbeitung B1 bis B3 der nächsten parallelen Verarbeitung B auszuführen.Then, in response to receiving the processing completion notifications from all of the processor elements, prompts 40a until 40c that the subprocesses A1 , A2 and A3 assigned to parallel processing A is the scheduler 48 each of the processor elements 40a until 40c on, the assigned subprocessing B1 until B3 the next parallel processing B.

(Fünfte Ausführungsform)(Fifth embodiment)

Als nächstes wird eine vierte Ausführungsform des Multiprozessorsystems gemäß der vorliegenden Offenbarung gemäß den Zeichnungen beschrieben. Da die Basiskonfiguration des Multiprozessorsystems 16 der vorliegenden Ausführungsform die gleiche wie die des Multiprozessorsystems 16 gemäß der ersten Ausführungsform ist, wird die Beschreibung davon weggelassen.Next, a fourth embodiment of the multiprocessor system according to the present disclosure will be described in accordance with the drawings. As the basic configuration of the multiprocessor system 16 of the present embodiment is the same as that of the multiprocessor system 16 according to the first embodiment, the description thereof is omitted.

In dem Multiprozessorsystem 16 gemäß der vorliegenden Ausführungsform führt der Zeitplaner 48 die folgende Steuerung aus. In Fällen, in denen der Zeitplaner 48 keine Cacheaktualisierungsverarbeitung einem Prozessorelement/Prozessorelementen 40a bis 40n in dem Bereitschaftszustand zuweist, veranlasst der Zeitplaner 48 diese Bereitschaftszustandsprozessorelemente 40a bis 40n in einem Energiesparzustand zu sein. Die Cacheaktualisierungsverarbeitung, die vorstehend erwähnt ist, ist die vorläufige Ausführung der Unterverarbeitungen der nächsten parallelen Verarbeitung, wie in der ersten Ausführungsform beschrieben ist, die Verarbeitung zum Auslesen von Anweisungen und Daten von einem Speicher und Schreiben der ausgelesenen Anweisungen und Daten in einen L2-Cache 44, wie in der zweiten Ausführungsform beschrieben ist, usw.In the multiprocessor system 16 according to the present embodiment, the scheduler performs 48 the following control. In cases where the scheduler 48 no cache update processing a processor element (s) 40a until 40n in the standby state, the scheduler causes 48 these standby processor elements 40a until 40n to be in an energy saving state. The cache update processing mentioned above is the preliminary execution of the sub-processing of the next parallel processing as described in the first embodiment, the processing for reading out instructions and data from a memory and writing the read out instructions and data in an L2 cache 44 as described in the second embodiment, etc.

Beispielsweise in dem Beispiel, das in 11 gezeigt ist, ist keine der Unterverarbeitungen A1 und A2 der parallelen Verarbeitung A dem Prozessorelement 40c zugewiesen und ferner ist die Cacheaktualisierungsverarbeitung wie beispielsweise vorläufige Ausführung einer Unterverarbeitung der nächsten parallelen Verarbeitung B dem Prozessorelement 40c nicht zugewiesen. In so einem Fall kann der Zeitplaner 48 das Prozessorelement 40c auf einen Modus mit niedrigem Energieverbrauch einstellen, um es in einen Energiesparzustand zu versetzen. Beispielsweise kann der Zeitplaner 48 das Prozessorelement 40c auf den Modus mit niedrigem Energieverbrauch durch Ausschalten mindestens eines eines Taktsignals und einer Energieversorgung, die dem Prozessorelement 40c bereitgestellt wird, einstellen.For example, in the example shown in 11 is shown is none of the sub-processing A1 and A2 the parallel processing A to the processor element 40c and further the cache update processing such as preliminary execution of sub-processing of the next parallel processing is assigned B. the processor element 40c unallocated. In such a case, the scheduler can 48 the processor element 40c set to a low power consumption mode to put it in a power saving state. For example, the scheduler 48 the processor element 40c to the low power mode by turning off at least one of a clock signal and a power supply to the processor element 40c is provided.

Es wurden die bevorzugten Ausführungsformen der vorliegenden Offenbarung beschrieben. Jedoch ist die vorliegende Offenbarung nicht auf die vorstehend beschriebenen Ausführungsformen beschränkt und kann unterschiedlich innerhalb des Geistes und Umfangs der vorliegenden Offenbarung modifiziert werden.The preferred embodiments of the present disclosure have been described. However, the present disclosure is not limited to the above-described embodiments and can be variously modified within the spirit and scope of the present disclosure.

Beispielsweise ist in jeder der vorstehend beschriebenen Ausführungsform ein Beispiel eines Multiprozessorsystems, in dem eine CPU 20 mehrere Prozessorelemente 40a bis 40n und einen L2-Cache 44 beinhaltet, der von den mehreren Prozessorelementen 40a bis 40n gemeinsam genutzt wird, erläutert. Jedoch kann ein Multiprozessorsystem beispielsweise durch mehrere CPUs konfiguriert sein, von denen jede mindestens ein Prozessorelement und einen L2-Cache beinhaltet, der durch mehrere CPUs gemeinsam genutzt wird.For example, in each of the above-described embodiments, there is an example of a multiprocessor system in which one CPU 20th multiple processor elements 40a until 40n and an L2 cache 44 includes that of the plurality of processor elements 40a until 40n shared is explained. However, for example, a multiprocessor system can be configured by multiple CPUs, each of which includes at least one processor element and an L2 cache that is shared by multiple CPUs.

Ferner, wie in 12 gezeigt ist, kann das Multiprozessorsystem derart konfiguriert sein, dass das System mehrere CPUs 20a und 20b beinhaltet, aber der L2-Cache 44 nicht durch alle der Prozessorelemente 40a bis 40n und 50, sondern nur durch manche der Prozessorelemente 40a bis 40n gemeinsam genutzt wird.Furthermore, as in 12th As shown, the multiprocessor system can be configured such that the system has multiple CPUs 20a and 20b includes, but the L2 cache 44 not through all of the processor elements 40a until 40n and 50 , but only through some of the processor elements 40a until 40n is shared.

Ferner veranlasst beispielsweise der Zeitplaner 48 in der ersten Ausführungsform die Prozessorelemente 40a bis 40n in dem Bereitschaftszustand während der parallelen Verarbeitung (n), die unmittelbar vor der parallelen Verarbeitung (n + 1) ausgeführt wird, vorläufig mindestens eine von Unterverarbeitungen der parallelen Verarbeitung (n + 1) auszuführen. Jedoch muss nicht mindestens eine der Unterverarbeitungen der parallelen Verarbeitung (n + 1) vorläufig während der parallelen Verarbeitung (n) unmittelbar vor der parallelen Verarbeitung (n + 1) ausgeführt werden und kann vorläufig in der (parallelen) Verarbeitung ausgeführt werden, die vor der parallelen Verarbeitung (n) ausgeführt wird.Furthermore, for example, the scheduler initiates 48 in the first embodiment the processor elements 40a until 40n in the standby state during the parallel processing (n) executed immediately before the parallel processing (n + 1), to provisionally perform at least one of sub-processings of the parallel processing (n + 1). However, at least one of the sub-processing of the parallel processing (n + 1) does not have to be provisionally executed during the parallel processing (n) immediately before the parallel processing (n + 1), and can be provisionally executed in the (parallel) processing that was performed before the parallel processing (s) is performed.

ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN THE DESCRIPTION

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.This list of the documents listed by the applicant was generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturPatent literature cited

  • JP 2017058738 A [0003]JP 2017058738 A [0003]

Claims (14)

Multiprozessorsystem, aufweisend: mehrere Prozessoren (40a bis 40n); einen Zeitplaner (48), der jeden der mehreren Prozessoren anweist, Ausführung einer zugewiesenen Aufgabe zu starten; einen Speicher (22, 24) zum Speichern von Anweisungen und Daten, die durch die mehreren Prozessoren verwendet werden, um die jeweiligen Aufgaben auszuführen; und einen Cache (44), der zwischen den mehreren Prozessoren und dem Speicher vorgesehen ist und von den mehreren Prozessoren gemeinsam genutzt wird, wobei, wenn Zuweisung paralleler Verarbeitung zu den mehreren Prozessoren geplant ist, wobei die parallele Verarbeitung eine Aufgabe ist, die synchron durch die mehreren Prozessoren auszuführen ist, der Zeitplaner konfiguriert ist, um eine Cacheaktualisierungsverarbeitung, die mindestens einen Teil von Anweisungen und Daten, der in der parallelen Verarbeitung verwendet wird, von dem Speicher ausliest und die ausgelesenen Anweisungen und Daten in dem Cache speichert, einem Prozessor in einem Bereitschaftszustand zuzuweisen und einen Ausführungsstart der Cacheaktualisierungsverarbeitung vor Anweisen eines Ausführungsstarts der parallelen Verarbeitung anzuweisen.Multiprocessor system, comprising: multiple processors (40a to 40n); a scheduler (48) directing each of the plurality of processors to start executing an assigned task; a memory (22,24) for storing instructions and data used by the plurality of processors to perform the respective tasks; and a cache (44) provided between the plurality of processors and the memory and shared by the plurality of processors, whereby, when parallel processing is scheduled to be allocated to the multiple processors, the parallel processing being a task to be performed synchronously by the multiple processors, the scheduler is configured to perform cache update processing that includes at least a portion of instructions and data stored in the parallel Processing is used, reads out from the memory and stores the read instructions and data in the cache, assigns to a processor in a standby state and instructs execution start of cache update processing before instructing execution start of parallel processing. Multiprozessorsystem gemäß Anspruch 1, wobei das Multiprozessorsystem an einem Fahrzeug montiert ist und zum Steuern einer fahrzeuginternen Vorrichtung verwendet wird, das Multiprozessorsystem ferner aufweist: eine Eingabeschaltung (14) zum Eingeben eines Signals, das zum Steuern der fahrzeuginternen Vorrichtung erforderlich ist; und eine Ausgabeschaltung (32) zum Ausgeben eines Steuersignals zum Steuern der fahrzeuginternen Vorrichtung.Multiprocessor system according to Claim 1 wherein the multiprocessor system is mounted on a vehicle and is used to control an in-vehicle device, the multiprocessor system further comprising: an input circuit (14) for inputting a signal necessary for controlling the in-vehicle device; and an output circuit (32) for outputting a control signal for controlling the in-vehicle device. Multiprozessorsystem gemäß Anspruch 1 oder 2, wobei: die Cacheaktualisierungsverarbeitung, die dem Prozessor in dem Bereitschaftszustand zugewiesen ist, vorläufiges Ausführen mindestens des Teils der parallelen Verarbeitung beinhaltet; und der Zeitplaner (S140, S160, S340, S360, S410) den Prozessor in dem Bereitschaftszustand anweist, Ausführen mindestens des Teils der parallelen Verarbeitung zu starten, um den Prozessor in dem Bereitschaftszustand zu veranlassen, vorläufig mindestens den Teil der parallelen Verarbeitung auszuführen, wodurch mindestens der Teil von Anweisungen und Daten, der in der parallelen Verarbeitung verwendet wird, veranlasst wird, von dem Speicher ausgelesen zu werden und in dem Cache gespeichert zu werden.Multiprocessor system according to Claim 1 or 2 wherein: the cache update processing assigned to the processor in the standby state includes preliminarily executing at least the part of the parallel processing; and the scheduler (S140, S160, S340, S360, S410) instructs the processor in the standby state to start executing at least the part of the parallel processing to cause the processor in the standby state to provisionally execute at least the part of the parallel processing, whereby at least the part of instructions and data used in the parallel processing is caused to be read out from the memory and stored in the cache. Multiprozessorsystem gemäß Anspruch 3, ferner aufweisend eine Blockiereinheit (S150, S195, S350, S400), die eine Schreibanforderungsausgabe von dem Prozessor blockiert, der vorläufig mindestens den Teil der parallelen Verarbeitung ausführt.Multiprocessor system according to Claim 3 , further comprising a blocking unit (S150, S195, S350, S400) that blocks a write request output from the processor which is provisionally executing at least the part of the parallel processing. Multiprozessorsystem gemäß Anspruch 4, wobei bei oder vor der Anweisung durch den Zeitplaner der mehreren Prozessoren die Ausführung der parallelen Verarbeitung zu starten, die Blockiereinheit (S195) Blockieren der Schreibanforderungsausgabe von dem Prozessor aufhebt, der vorläufig mindestens den Teil der parallelen Verarbeitung ausführt.Multiprocessor system according to Claim 4 , wherein at or before the instruction by the scheduler of the plurality of processors to start the execution of the parallel processing, the blocking unit (S195) unblocks the write request output from the processor which is provisionally executing at least the part of the parallel processing. Multiprozessorsystem gemäß einem der Ansprüche 3 bis 5, wobei mindestens der Teil der Verarbeitung, den der Prozessor in dem Bereitschaftszustand vorläufig ausführt, eine bestimmte Verarbeitung der parallelen Verarbeitung beinhaltet, wobei die bestimmte Verarbeitung eine von Verarbeitungen der parallelen Verarbeitung ist und die längste Zeit zum Auslesen von Anweisungen und Daten von dem Speicher von den Verarbeitungen der parallelen Verarbeitung benötigt, wenn die Verarbeitungen den mehreren Prozessoren zugewiesen sind und durch diese ausgeführt werden.Multiprocessor system according to one of the Claims 3 until 5 , wherein at least the part of the processing that the processor provisionally executes in the standby state includes a certain processing of the parallel processing, the certain processing being one of processings of the parallel processing and the longest time for reading out instructions and data from the memory of the processings of parallel processing when the processings are assigned to and executed by the plural processors. Multiprozessorsystem gemäß einem der Ansprüche 3 bis 5, wobei mindestens der Teil der parallelen Verarbeitung, den der Prozessor in dem Bereitschaftszustand, der ein bestimmter Prozessor ist, vorläufig ausführt, eine bestimmte Verarbeitung der parallelen Verarbeitung beinhaltet, wobei für die bestimmte Verarbeitung geplant ist, dass sie durch den bestimmten Prozessor gemäß der Zuweisung der parallelen Verarbeitung zu den mehreren Prozessoren ausgeführt wird.Multiprocessor system according to one of the Claims 3 until 5 wherein at least the part of the parallel processing that the processor provisionally executes in the standby state that is a particular processor includes a particular processing of the parallel processing, the particular processing being scheduled to be performed by the particular processor according to the assignment the parallel processing to the plural processors is performed. Multiprozessorsystem gemäß Anspruch 1 oder 2, wobei die Cacheaktualisierungsverarbeitung, die dem Prozessor in dem Bereitschaftszustand zugewiesen ist, Verarbeitungen zum Auslesen mindestens eines Teils der Anweisungen und Daten, der in der parallelen Verarbeitung verwendet wird, von dem Speicher und Schreiben der ausgelesenen Anweisungen und Daten in den Cache beinhaltet, und der Zeitplaner (S240, S260) den Prozessor in dem Bereitschaftszustand anweist, Ausführen der Verarbeitungen zu starten, die in der Cacheaktualisierungsverarbeitung beinhaltet sind, wodurch mindestens der Teil von Anweisungen und Daten, der in der parallelen Verarbeitung verwendet wird, veranlasst wird, von dem Speicher ausgelesen zu werden und in dem Cache gespeichert zu werden.Multiprocessor system according to Claim 1 or 2 , wherein the cache update processing assigned to the processor in the standby state includes processing for reading out at least a part of the instructions and data used in the parallel processing from the memory and writing the read-out instructions and data to the cache, and the The scheduler (S240, S260) instructs the processor in the standby state to start executing the processings involved in the cache update processing, thereby causing at least the part of instructions and data used in the parallel processing to be read out from the memory to be and stored in the cache. Multiprozessorsystem gemäß einem der Ansprüche 1 bis 8, wobei wenn eine andere parallele Verarbeitung den mehreren Prozessoren zugewiesen ist und die andere parallele Verarbeitung durch die mehreren Prozessoren vor der parallelen Verarbeitung, die geplant ist, den mehreren Prozessoren zugewiesen zu werden, ausgeführt wird, der Zeitplaner die Cacheaktualisierungsverarbeitung dem Prozessor in dem Bereitschaftszustand während der Ausführung der anderen parallelen Verarbeitung zuweist und einen Ausführungsstart der Cacheaktualisierungsverarbeitung anweist.Multiprocessor system according to one of the Claims 1 until 8th , wherein when other parallel processing is assigned to the plural processors and the other parallel processing by the plurality of processors is executed before the parallel processing scheduled to be assigned to the plurality of processors, the scheduler assigns the cache update processing to the processor in the standby state during the execution of the other parallel processing, and instructs execution start of the cache update processing. Multiprozessorsystem gemäß Anspruch 9, wobei die andere parallele Verarbeitung unmittelbar vor der parallelen Verarbeitung ausgeführt wird, für die geplant ist, dass sie den mehreren Prozessoren zugewiesen wird.Multiprocessor system according to Claim 9 wherein the other parallel processing is performed immediately before the parallel processing scheduled to be assigned to the plural processors. Multiprozessorsystem gemäß Anspruch 9 oder 10, wobei der Prozessor in dem Bereitschaftszustand während der Ausführung der anderen parallelen Verarbeitung ein Prozessor ist, dem die andere parallele Verarbeitung nicht zugewiesen ist.Multiprocessor system according to Claim 9 or 10 wherein the processor in the standby state during the execution of the other parallel processing is a processor to which the other parallel processing is not assigned. Multiprozessorsystem gemäß einem der Ansprüche 9 bis 11, wobei der Prozessor in dem Bereitschaftszustand während der Ausführung der anderen parallelen Verarbeitung von den mehreren Prozessoren ein erster Prozessor ist, dem mindestens ein Teil der anderen parallelen Verarbeitung zugewiesen ist und der eine zugewiesene Verarbeitung früher abschließt als einer oder mehrere zweite Prozessoren, die die mehreren Prozessoren außer dem ersten Prozessor sind.Multiprocessor system according to one of the Claims 9 until 11 wherein the processor in the standby state during execution of the other parallel processing from the plurality of processors is a first processor that is assigned at least a portion of the other parallel processing and that completes assigned processing earlier than one or more second processors that the plurality of Processors other than the first processor. Multiprozessorsystem gemäß einem der Ansprüche 1 bis 12, wobei der Zeitplaner den Prozessor in dem Bereitschaftszustand in einen Energiesparzustand versetzt, wenn der Zeitplaner die Cacheaktualisierungsverarbeitung dem Prozessor in dem Bereitschaftszustand nicht zuweist.Multiprocessor system according to one of the Claims 1 until 12th wherein the scheduler places the processor in the standby state in a power saving state when the scheduler does not assign the cache update processing to the processor in the standby state. Multiprozessorsystem gemäß Anspruch 13, wobei der Prozessor in dem Bereitschaftszustand in den Energiesparzustand durch Abschalten mindestens eines eines Taktsignals und einer Energieversorgung, die dem Prozessor in dem Bereitschaftszustand bereitgestellt werden, versetzt wird.Multiprocessor system according to Claim 13 wherein the processor in the standby state is placed in the energy-saving state by switching off at least one of a clock signal and a power supply which are provided to the processor in the standby state.
DE102021108857.7A 2020-04-15 2021-04-09 MULTIPROCESSOR SYSTEM Pending DE102021108857A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020-073050 2020-04-15
JP2020073050A JP2021170234A (en) 2020-04-15 2020-04-15 Multiprocessor system

Publications (1)

Publication Number Publication Date
DE102021108857A1 true DE102021108857A1 (en) 2021-10-21

Family

ID=77919750

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021108857.7A Pending DE102021108857A1 (en) 2020-04-15 2021-04-09 MULTIPROCESSOR SYSTEM

Country Status (2)

Country Link
JP (1) JP2021170234A (en)
DE (1) DE102021108857A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117033298A (en) * 2022-10-21 2023-11-10 上海天数智芯半导体有限公司 Tile processor, SOC chip and electronic equipment

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017058738A (en) 2015-09-14 2017-03-23 富士ゼロックス株式会社 Information processing apparatus and image forming apparatus

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017058738A (en) 2015-09-14 2017-03-23 富士ゼロックス株式会社 Information processing apparatus and image forming apparatus

Also Published As

Publication number Publication date
JP2021170234A (en) 2021-10-28

Similar Documents

Publication Publication Date Title
DE102005013913A1 (en) Interrupt request program and microcomputer
DE69822534T2 (en) Shared memory usage with variable block sizes for symmetric multiprocessor groups
DE19929796B4 (en) Apparatus and method for rewriting data from a volatile memory to a nonvolatile memory
DE3033526C2 (en)
CN108351840B (en) Vehicle control device
DE4330751A1 (en) Improved cache storage system to reduce memory latency
DE3803759A1 (en) CACHE STORAGE FOR USE IN MULTIPROCESSOR SYSTEMS
DE4410775A1 (en) Electronic control system for automobile applications
DE102008058209A1 (en) Arrangement and method for preventing a user operating system in a VMM system from shutting down an arrangement used by a service operating system
DE102021108857A1 (en) MULTIPROCESSOR SYSTEM
DE2551681A1 (en) METHOD AND DEVICE FOR DETERMINING THE DURATION OF INJECTION CONTROL COMMANDS IN AN COMBUSTION ENGINE
DE102019206320A1 (en) Vehicle communication device
DE102012209789B4 (en) ON-VEHICLE ELECTRICAL CONTROL DEVICE
DE19950255B4 (en) microprocessor
DE202004021684U1 (en) Devices and devices for use in scheduling
DE102004059972B4 (en) Thread scheduling method, and thread list scheduler device
EP1514180A2 (en) Limitation of the response time of a software process
DE3042395C2 (en)
EP0677147B1 (en) Controller in an arithmetic unit
DE102012204644B4 (en) CONTROL DEVICE
DE102014209316A1 (en) Method and control device for carrying out exhaust gas-relevant diagnoses
DE102012208753A1 (en) Vehicle-mounted microcomputer comprises a core holding element that determines whether preset stop condition of each virtual core of single core is fulfilled and stops a virtual core, when stop condition is fulfilled
EP0970426B1 (en) Dependency controller for overlapping memory access operations
DE102018201926A1 (en) Electronic control unit
DE102019207629A1 (en) Multi-core microcomputers and parallelization processes

Legal Events

Date Code Title Description
R012 Request for examination validly filed