DE112020005072T5 - DATA PROCESSING ESTABLISHMENT - Google Patents

DATA PROCESSING ESTABLISHMENT Download PDF

Info

Publication number
DE112020005072T5
DE112020005072T5 DE112020005072.6T DE112020005072T DE112020005072T5 DE 112020005072 T5 DE112020005072 T5 DE 112020005072T5 DE 112020005072 T DE112020005072 T DE 112020005072T DE 112020005072 T5 DE112020005072 T5 DE 112020005072T5
Authority
DE
Germany
Prior art keywords
result
time
processing unit
memory resource
processing
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
DE112020005072.6T
Other languages
German (de)
Inventor
Tatsuya HORIGUCHI
Tasuku Ishigooka
Kazuyoshi Serizawa
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.)
Hitachi Astemo Ltd
Original Assignee
Hitachi Astemo Ltd
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 Hitachi Astemo Ltd filed Critical Hitachi Astemo Ltd
Publication of DE112020005072T5 publication Critical patent/DE112020005072T5/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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1008Correctness of operation, e.g. memory ordering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction

Landscapes

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

Abstract

In einer Datenverarbeitungseinrichtung wird basierend auf einem Verfahren eines Zeitsteuerungsentwurfs vom Zeitsynchronisationstyp die Reaktionsfähigkeit verbessert. Eine Datenverarbeitungseinrichtung enthält mehrere Verarbeitungseinheiten, die ein Speicherbetriebsmittel gemeinsam verwenden, wobei jede der Verarbeitungseinheiten periodisch einen Prozess in einem vorgegebenen Zeitabstand ausführt, wobei in einem Fall, in dem ein erster Prozess einer spezifischen Verarbeitungseinheit ein Ergebnis eines zweiten Prozesses einer weiteren Verarbeitungseinheit, der dem ersten Prozess vorausgeht, verwendet, wenn das Schreiben des Ergebnisses des zweiten Prozesses der weiteren Verarbeitungseinheit in das Speicherbetriebsmittel nicht zu einem Zeitpunkt innerhalb des vorgegebenen Zeitabstands beendet ist, eine Startzeit des ersten Prozesses der spezifischen Verarbeitungseinheit bis zu einem Zeitpunkt, zu dem das Ergebnis des zweiten Prozesses der weiteren Verarbeitungseinheit in das Speicherbetriebsmittel geschrieben wird, verzögert wird, so dass das Ergebnis des zweiten Prozesses in dem ersten Prozess der spezifischen Verarbeitungseinheit verwendet wird.

Figure DE112020005072T5_0000
In a data processing device, responsiveness is improved based on a method of time synchronization type timing design. A data processing device includes a plurality of processing units that share a memory resource, each of the processing units periodically executing a process at a predetermined time interval, wherein in a case where a first process of a specific processing unit is a result of a second process of another processing unit corresponding to the first process, if the writing of the result of the second process of the further processing unit to the memory resource is not completed at a point in time within the predetermined time interval, uses a start time of the first process of the specific processing unit until a point in time when the result of the second process of the further processing unit is written into the memory resource is delayed so that the result of the second process is used in the first process of the specific processing unit.
Figure DE112020005072T5_0000

Description

Technisches Gebiettechnical field

Die vorliegende Erfindung bezieht sich auf eine Datenverarbeitungseinrichtung.The present invention relates to a data processing device.

Stand der TechnikState of the art

In den letzten Jahren ist bei der Entwicklung eines eingebetteten Systems, das eine industrielle elektronische Steuereinheit (ECU) unterstützt, eine Belastung einer Anwendung gestiegen, beispielsweise wegen der Verbesserung der Steuerleistung, der Einhaltung strengerer Vorschriften und einer Zunahme der Steuerungsarithmetikverarbeitung gemäß einem autonomen Betrieb einer Vorrichtung. Um dem zu entsprechen, steigt auch die Leistung der Hardware in der ECU, wie z. B. mehrere Kerne oder viele Kerne.In recent years, in the development of an embedded system that supports an industrial electronic control unit (ECU), a load on an application has increased due to, for example, improvement in control performance, compliance with stricter regulations, and an increase in control arithmetic processing according to autonomous operation of a device . To match this, the performance of the hardware in the ECU, such as B. multiple cores or many cores.

Andererseits ist es hinsichtlich der Entwicklung von Software, die auf einer solchen Hochleistungs-Hardware aufbaut, erforderlich, Software zu entwickeln, die den vorstehend beschriebenen mehreren Kernen oder vielen Kernen entspricht, und es ist zunehmend komplizierter, solche Software zu entwerfen, zu entwickeln und zu verifizieren. Dies liegt daran, dass beispielsweise bei der Entwicklung eines Mehrkernprozessors, anders als bei der Entwicklung eines Einzelkernprozessors, mehrere Kerne auf einen Bus, einen Speicher und einen Cache zugreifen, die gemeinsam verwendete Betriebsmittel sind, und somit ein Softwareverhalten gemäß einem Zustand des Prozessors, wenn die Software ausgeführt wird, leicht geändert werden kann.On the other hand, with regard to the development of software built on such high-performance hardware, it is required to develop software corresponding to the multiple cores or many cores described above, and it is increasingly complicated to design, develop and maintain such software to verify. This is because, for example, when developing a multi-core processor, unlike when developing a single-core processor, multiple cores access a bus, memory and cache, which are shared resources, and thus software behavior according to a state of the processor when the software is running, can be easily modified.

Zusätzlich sind, selbst wenn ein solches Problem gelöst ist und die Kommerzialisierung fertiggestellt ist, Prozessoren hinsichtlich Parametern (Busbreite, Speichergröße, Cache-Größe), die die gemeinsam verwendeten Betriebsmittel betreffen, voneinander verschieden. Daher ist es nicht einfach, das Ergebnis der Entwicklung eines speziellen Prozessors gleichermaßen auf einen anderen Prozessor zu übertragen, und ähnlich steigt die Anzahl der Prozesse für Entwurf, Entwicklung und Verifizierung an.In addition, even when such a problem is solved and commercialization is completed, processors are different from each other in parameters (bus width, memory size, cache size) concerning shared resources. Therefore, it is not easy to transfer the result of development of a specific processor equally to another processor, and similarly, the number of processes for design, development and verification increases.

Als Maßnahme gegen eine derartige Verkomplizierung der Prozessorkonfiguration und die daraus resultierende Erhöhung der Anzahl der Entwicklungsprozesse wurde 2018 ein Paradigma für die logische Ausführungszeit (LET) für den Zeitsteuerungsentwurf, das ein Verfahren für den Zeitsteuerungsentwurf vom Zeitsynchronisationstyp ist, der „AUTomotive Open System ARchitecture“ (AUTOSAR), die ein Standard für die fahrzeuginterne Software-Architektur ist, neu hinzugefügt.In 2018, as a countermeasure against such processor configuration complication and the resulting increase in the number of development processes, a logical execution time (LET) paradigm for timing design, which is a timing synchronization type timing design method, the “AUTomotive Open System ARchitecture” ( AUTOSAR), which is a standard for in-vehicle software architecture, was newly added.

Dieses Verfahren ist dadurch gekennzeichnet, dass die Zeitpunkte in einem vorgelagerten Prozess entworfen werden und die Middleware die entworfene Zeitsteuerung bei der Ausführung befolgt, was eine Zunahme der Anzahl der Entwicklungs- und Verifizierungsmuster, die durch eine Kombination von Prozessorzuständen verursacht werden, verhindert und zu einer Reduzierung der Anzahl der Prozesse beiträgt.This method is characterized in that the timings are designed in an upstream process and the middleware follows the designed timing in execution, which prevents an increase in the number of development and verification patterns caused by a combination of processor states and leads to one reducing the number of processes.

Zusätzlich kann, was die Übertragung einesAdditionally, what the transfer of a

Zeitsteuerungsentwurfsergebnisses zwischen unterschiedlichen Prozessoren betrifft, ein Ergebnis des Zeitsteuerungsentwurfs für einen speziellen Prozessor gleichermaßen auf einen weiteren Prozessor übertragen werden, wenn es in Bezug auf die Leistung zufriedenstellend ist.timing design result between different processors, a result of the timing design for a particular processor may be equally transferred to another processor if it is satisfactory in terms of performance.

PTL1stellt ein Entwurfsverfahren bereit, in dem ein Verhalten ähnlich demjenigen bei der Ausführung des vorstehend genannten Entwurfsverfahrens erwartet wird. In einem in PTL 1 offenbarten Planungsverfahren werden mehrere verkettete Prozesselemente in eine erste Prozesselementgruppe und eine zweite Prozesselementgruppe unterteilt. Die erste Prozesselementgruppe wird beispielsweise durch einen ersten Prozessor periodisch ausgeführt, und die zweite Prozesselementgruppe wird beispielsweise durch einen zweiten Prozessor periodisch zu einem Zeitpunkt mit einer Verzögerung von einem Zyklus gegenüber der ersten Prozesselementgruppe ausgeführt.PTL1 provides a design method in which behavior similar to that when the above design method is executed is expected. In a planning method disclosed in PTL 1, a plurality of chained process items are divided into a first process item group and a second process item group. The first group of process items is periodically executed by, for example, a first processor, and the second group of process items is periodically executed by, for example, a second processor at a point in time with a delay of one cycle from the first group of process items.

Entgegenhaltungslistecitation list

Patentliteraturpatent literature

PTL 1: JP 2005-43959 A PTL 1: JP 2005-43959 A

Zusammenfassung der ErfindungSummary of the Invention

Technische AufgabeTechnical task

Indessen wird in einem solchen Verfahren, selbst wenn eine Verzögerung aufgrund einer Variation in der Verarbeitungszeit in Bezug auf das einmal bestimmte Zeitsteuerungsentwurfsergebnis auftritt, ein Verhalten entsprechend dem vorgegebenen Zeitsteuerungsentwurf angenommen. Das heißt beispielsweise, dass selbst wenn bei der Fertigstellung des vorhergehenden Prozesses eine Verzögerung in zwei aufeinanderfolgenden Prozessen (dem vorhergehenden Prozess und dem nachfolgenden Prozess) auftritt, die Ausführung des nachfolgenden Prozesses gestartet wird, ohne zu warten, bis der vorhergehende Prozess fertiggestellt ist.Meanwhile, in such a method, even if a delay occurs due to a variation in the processing time with respect to the timing design result once determined, a behavior corresponding to the given timing design is assumed. That is, for example, even if there is a delay in two consecutive processes (the preceding process and the succeeding process) in the completion of the preceding process, the execution of the succeeding process is started without waiting for the preceding process to be completed.

In einer solchen Situation wird, da der nachfolgende Prozess unter Bezugnahme auf einen Speicherbereich, der ein Berechnungsergebnis des vorhergehenden Prozesses speichert, gestartet wird, wenn der vorhergehende Prozess nicht fertiggestellt ist, der nachfolgende Prozess basierend auf einem Prozessfertigstellungsergebnis des vorherigen Zyklus gestartet. In einem Fall, in dem ein solches Verarbeitungssystem eingesetzt wird, insbesondere in Verbindung mit einer Vorrichtung, bei der ein Risiko einer Verzögerung, die aus einer Änderung des Belastungszustands der Kommunikation mit einem externen Endgerät oder dergleichen wie z. B. einem Sensor oder einer weiteren ECU besteht, tritt ein Risiko auf, dass ein Eingabeergebnis aus einem vorherigen Zyklus verwendet wird, was zu einer Verschlechterung der Reaktionsfähigkeit auf den Sensor oder die externe Eingabe führt.In such a situation, since the subsequent process with reference to a memory memory area storing a calculation result of the previous process, when the previous process is not completed, the subsequent process is started based on a process completion result of the previous cycle. In a case where such a processing system is employed, particularly in connection with an apparatus where there is a risk of a delay resulting from a change in the load state of communication with an external terminal or the like such as e.g. B. a sensor or another ECU, there is a risk that an input result from a previous cycle is used, resulting in deterioration of the responsiveness to the sensor or the external input.

Die vorliegende Erfindung wurde im Hinblick auf das vorstehend beschriebene Problem gemacht und es ist eine Aufgabe der vorliegenden Erfindung, eine Datenverarbeitungseinrichtung basierend auf einem Verfahren zum Zeitsteuerungsentwurf vom Zeitsynchronisationstyp, das die Reaktionsfähigkeit verbessern kann, bereitzustellen.The present invention has been made in view of the above-described problem, and an object of the present invention is to provide a data processing device based on a time synchronization type timing design method which can improve responsiveness.

Lösung der Aufgabesolution of the task

Gemäß einem Aspekt der vorliegenden Erfindung zum Lösen der vorgenannten Aufgabe enthält eine Datenverarbeitungseinrichtung mehrere Verarbeitungseinheiten, die ein Speicherbetriebsmittelgemeinsam verwenden, wobei jede der Verarbeitungseinheiten periodisch einen Prozess in einem vorgegebenen Zeitabstand ausführt, wobei in einem Fall, in dem ein erster Prozess einer spezifischen Verarbeitungseinheit ein Ergebnis eines zweiten Prozesses einer weiteren Verarbeitungseinheit, der dem ersten Prozess vorausgeht, verwendet, wenn das Schreiben des Ergebnisses des zweiten Prozesses der weiteren Verarbeitungseinheit in das Speicherbetriebsmittel nicht zu einem Zeitpunkt innerhalb des vorgegebenen Zeitabstands beendet ist, eine Startzeit des ersten Prozesses der spezifischen Verarbeitungseinheit bis zu einem Zeitpunkt, zu dem das Ergebnis des zweiten Prozesses der weiteren Verarbeitungseinheit in die Speicherressource geschrieben wird, verzögert wird, so dass das Ergebnis des zweiten Prozesses in dem ersten Prozess der spezifischen Verarbeitungseinheit verwendet wird.According to an aspect of the present invention to achieve the above object, a data processing device includes a plurality of processing units sharing a memory resource, each of the processing units periodically executing a process at a predetermined time interval, wherein in a case where a first process of a specific processing unit produces a result of a second process of a further processing unit preceding the first process, if the writing of the result of the second process of the further processing unit to the memory resource is not completed at a time within the predetermined time interval, a start time of the first process of the specific processing unit up to a point in time at which the result of the second process of the further processing unit is written into the memory resource is delayed, so that the result of the second process is stored in d is used in the first process of the specific processing unit.

Vorteilhafte Effekte der ErfindungAdvantageous Effects of the Invention

Gemäß der vorliegenden Erfindung ist es möglich, eine Datenverarbeitungseinrichtung basierend auf einem Verfahren für den Zeitsteuerungsentwurf vom Zeitsynchronisationstyp zu realisieren, die in der Lage ist, die Reaktionsfähigkeit zu verbessern.According to the present invention, it is possible to realize a data processing device based on a time synchronization type timing design method capable of improving responsiveness.

Figurenlistecharacter list

  • [1] 1 ist ein Diagramm, das eine Konfiguration einer Datenverarbeitungseinrichtung gemäß einer ersten Ausführungsform zeigt.[ 1 ] 1 12 is a diagram showing a configuration of a data processing device according to a first embodiment.
  • [2] 2 ist ein Diagramm, das ein Beispiel für eine Operation in jedem Prozess basierend auf einem Zeitsteuerungsentwurf vom Zeitsynchronisationstyp zeigt.[ 2 ] 2 14 is a diagram showing an example of an operation in each process based on a time synchronization type timing design.
  • [3] 3 ist ein Diagramm, das eine Operation zeigt, wenn bei der Beendigung eines vorhergehenden Prozesses in dem Zeitsteuerungsentwurf vom Zeitsynchronisationstyp eine Verzögerung auftritt.[ 3 ] 3 Fig. 14 is a diagram showing an operation when a delay occurs in the termination of a preceding process in the time synchronization type timing draft.
  • [4] 4 ist ein Diagramm, das eine Operation in jedem Prozess basierend auf dem Zeitsteuerungsentwurf vom Zeitsynchronisationstyp gemäß der ersten Ausführungsform zeigt.[ 4 ] 4 14 is a diagram showing an operation in each process based on the time synchronization type timing design according to the first embodiment.
  • [5] 5 ist ein Ablaufplan zum Erläutern der Operation der Datenverarbeitungseinrichtung gemäß der ersten Ausführungsform.[ 5 ] 5 Fig. 12 is a flowchart for explaining the operation of the data processing device according to the first embodiment.
  • [6] 6 ist ein Diagramm, das eine Verarbeitungskonfiguration einer Anwendung zeigt, die in einer zweiten Ausführungsform angenommen ist.[ 6 ] 6 Fig. 12 is a diagram showing a processing configuration of an application adopted in a second embodiment.
  • [7] 7 ist ein Diagramm, das ein Beispiel einer Operation in jedem Prozess basierend auf dem Zeitsteuerungsentwurf vom Zeitsynchronisationstyp gemäß der zweiten Ausführungsform zeigt.[ 7 ] 7 14 is a diagram showing an example of an operation in each process based on the time synchronization type timing design according to the second embodiment.
  • [8] 8 ist ein Diagramm, das ein weiteres Beispiel einer Operation in jedem Prozess basierend auf dem Zeitsteuerungsentwurf vom Zeitsynchronisationstyp gemäß der zweiten Ausführungsform zeigt.[ 8th ] 8th 14 is a diagram showing another example of an operation in each process based on the time synchronization type timing design according to the second embodiment.
  • [9] 9 ist ein Diagramm, das noch ein weiteres Beispiel einer Operation in jedem Prozess basierend auf dem Zeitsteuerungsentwurf vom Zeitsynchronisationstyp gemäß der zweiten Ausführungsform zeigt.[ 9 ] 9 14 is a diagram showing still another example of an operation in each process based on the time synchronization type timing design according to the second embodiment.

Beschreibung von AusführungsformenDescription of Embodiments

Nachstehend werden Ausführungsformen der vorliegenden Erfindung mit Bezug auf die Zeichnungen beschrieben. Es wird darauf hingewiesen, dass die nachstehend beschriebenen Ausführungsformen die beanspruchte Erfindung nicht einschränken und dass alle in den Ausführungsformen beschriebenen Elemente und Kombinationen davon für die Lösung der Erfindung nicht notwendigerweise wesentlich sind.Embodiments of the present invention will be described below with reference to the drawings. It is pointed out that the embodiments described below do not limit the claimed invention and that all elements described in the embodiments and combinations thereof are not necessarily essential for the solution of the invention.

Es wird darauf hingewiesen, dass Abschnitte, die die gleichen Funktionen in den Zeichnungen aufweisen, zum Beschreiben der Ausführungsformen durch die gleichen Bezugszeichen bezeichnet werden und ihre Beschreibung nicht wiederholt wird.It is noted that portions having the same functions in the drawings are used to describe the embodiments ment forms are denoted by the same reference numerals and their description is not repeated.

In der folgenden Beschreibung kann als Beispiel für Daten ein Ausdruck wie „xxx Daten“ verwendet sein. In diesem Fall können die Daten irgendeine Datenstruktur aufweisen. Das heißt, um anzugeben, dass die Daten nicht von der Datenstruktur abhängen, können „xxx Daten“ als „xxx Tabelle“ bezeichnet sein. Darüber hinaus können „xxx Daten“ einfach als „xxx“ bezeichnet sein. In der folgenden Beschreibung ist die Konfiguration jeder Dateneinheit ein Beispiel, und die Daten können in aufgeteilter Form gehalten werden oder können in kombinierter Form gehalten werden.In the following description, a phrase such as "xxx data" may be used as an example of data. In this case the data can have any data structure. That is, to indicate that the data does not depend on the data structure, "xxx data" may be referred to as "xxx table". Additionally, "xxx data" may be simply denoted as "xxx". In the following description, the configuration of each data unit is an example, and the data can be held in a divided form or can be held in a combined form.

Erste AusführungsformFirst embodiment

1 stellt eine Konfiguration eines Prozessors (Datenverarbeitungseinrichtung), auf die die vorliegende Ausführungsform zielt, zusammen mit Peripheriegeräten dar. 1 Fig. 12 illustrates a configuration of a processor (data processing device) aimed at by the present embodiment, together with peripheral devices.

Der Prozessor 1 ist ein Mehrkernprozessor, der mehrere CPU-Kerne 2 enthält. In einem solchen Prozessor wird hauptsächlich eine mehrstufige Cache-Konfiguration verwendet, die einen Ebene-1-Cache (L1-Cache) 21, der in jedem der CPU-Kerne 2 enthalten ist, und einen Ebene-2-Cache (L2-Cache) 22, der von mehreren Kernen gemeinsam verwendet wird, enthält und wurde entwickelt, um die Effizienz der Befehlsausführung in jedem Kern zu verbessern. Jeder der CPU-Kerne 2 ist über einen internen Bus 3 mit einem externen Speicher 4 oder einem Sensor 5 außerhalb des Prozessors 1 verbunden. Es wird darauf hingewiesen, dass der Einfachheit halber eine genaue interne Konfiguration (verschiedene Mechanismen und genaue Busstruktur) des Mehrkernprozessors 1 weggelassen ist. In der folgenden Beschreibung werden der L2-Cache 22 und der externe Speicher 4 als gemeinsam verwendete Speicher im Sinne von Speicherbetriebsmitteln, die von den einzelnen CPU-Kernen 2 gemeinsam verwendet werden, bezeichnet.The processor 1 is a multi-core processor containing a number of CPU cores 2 . In such a processor, a multi-level cache configuration is mainly used, which includes a level 1 cache (L1 cache) 21 contained in each of the CPU cores 2 and a level 2 cache (L2 cache) 22 shared by multiple cores and is designed to improve the efficiency of instruction execution in each core. Each of the CPU cores 2 is connected to an external memory 4 or a sensor 5 outside the processor 1 via an internal bus 3 . It is noted that a detailed internal configuration (various mechanisms and detailed bus structure) of the multi-core processor 1 is omitted for the sake of simplicity. In the following description, the L2 cache 22 and the external storage 4 are referred to as shared storage in the sense of storage resources shared by the individual CPU cores 2 .

In einem Fall, in dem eine Anwendung auf einem solchen Mehrkernprozessor 1 ausgeführt wird, wenn die Anwendungsverarbeitung durch den tatsächlichen gleichzeitigen Betrieb der CPU-Kerne 2 ausgeführt wird, sind die mehreren CPU-Kerne 2 von einer Änderung der Verarbeitungseffizienz entsprechend einem Zugriffskonflikt in Bezug auf den L2-Cache 22 oder den externen Speicher 4, der ein gemeinsam verwendetes Betriebsmittel ist, einer auf den internen Bus 3 angewandten Belastung und einer Änderung der Cache-Trefferrate für den L2-Cache 22 abhängig von der Verwendung des Speichers in mehreren Prozessen betroffen.In a case where an application is executed on such a multi-core processor 1, when the application processing is executed by the actual simultaneous operation of the CPU cores 2, the multiple CPU cores 2 are affected by a change in processing efficiency corresponding to an access conflict the L2 cache 22 or the external memory 4 which is a shared resource, a load applied to the internal bus 3, and a change in cache hit rate for the L2 cache 22 depending on the use of the memory in multiple processes.

Deshalb ändern sich der Status und die Reihenfolge der Anwendungsverarbeitung und die Speicherzugriffszeitsteuerung entsprechend einer Änderung des Zustands (eines Status des L2-Cache 22 und eines Belastungsstatus des internen Busses 3) des Prozessors, der nicht nur in Abhängigkeit von der vordefinierten Reihenfolge, in der jede Anwendung ausgeführt wird, sondern auch der Operation jeder Anwendung dynamisch variiert.Therefore, the status and order of application processing and memory access timing change according to a change in the state (an L2 cache 22 state and an internal bus 3 load state) of the processor, which not only depends on the predefined order in which each application is running, but also the operation of each application varies dynamically.

Darüber hinaus ist es, da eine Anwendung vorhanden ist, deren Operationszeitsteuerung unsicher ist, wie z. B. die Unterbrechungsverarbeitungszeitsteuerung, notwendig, die Anwendung auf dem Prozessor 1 im Hinblick auf den annehmbaren Zustand des Prozessors 1 zu entwickeln, zu debuggen und zu verifizieren, und es gibt Bedenken hinsichtlich der Verkomplizierung jeder Arbeit und einer Zunahme der Anzahl der Prozesse.In addition, since there is an application whose operation timing is uncertain, such as B. the interrupt processing timing, necessary to develop, debug and verify the application on the processor 1 in view of the acceptable state of the processor 1, and there are concerns about the complication of each work and an increase in the number of processes.

Zusätzlich ändert sich in einem Fall, in dem eine auf einem speziellen Prozessor 1 entworfene und verifizierte Anwendung auf einen weiteren Mehrkernprozessor übertragen wird, das Verhalten der Anwendung aufgrund des Einflusses der Änderung der Leistung wie z. B. Operationsgeschwindigkeit und Anzahl der CPU-Kerne, der Operationsgeschwindigkeit des Busses und der Breite des Busses und der Größe jedes Caches. Deshalb ist es nicht einfach, einen Entwurf für einen speziellen Prozessor 1 auf einen weiteren Mehrkernprozessor zu übertragen.In addition, in a case where an application designed and verified on a specific processor 1 is transferred to another multi-core processor, the behavior of the application changes due to the influence of the change in performance such as B. Operation speed and number of CPU cores, operation speed of bus and width of bus and size of each cache. Therefore, it is not easy to transfer a design for a special processor 1 to another multi-core processor.

Als ein Entwurfsverfahren unter Verwendung eines solchen Prozessors 1 und unter Berücksichtigung der Übertragung auf einen weiteren Mehrkernprozessor ist ein Entwurfsverfahren vom Zeitsynchronisationstyp bekannt. Gemäß dem Entwurfsverfahren vom Zeitsynchronisationstyp wird jede Anwendung so ausgeführt, dass ein Startzeitpunkt und ein Fertigstellungszeitpunkt der Anwendungsverarbeitung definiert sind.As a design method using such a processor 1 and considering the transfer to another multi-core processor, a time synchronization type design method is known. According to the time synchronization type design method, each application is executed such that a start time and a completion time of application processing are defined.

2 stellt eine Konfiguration dar, wenn die Anwendungsverarbeitung unter Verwendung eines Entwurfskonzepts vom Zeitsynchronisationstyp ausgeführt wird. 2 Fig. 12 illustrates a configuration when application processing is performed using a time synchronization type design concept.

In der folgenden Beschreibung ist der Einfachheit halber angenommen, dass die Anwendungsverarbeitung zwei aufeinanderfolgende Prozesse (den vorhergehenden Prozess und den nachfolgenden Prozess) enthält, die jeweils in einem vorgegebenen Zyklus (in der vorliegenden Ausführungsform in dem gleichen Zyklus) betrieben werden. In dem vorhergehenden Prozess werden Daten aus einem Bereich A des gemeinsam verwendeten Speichers gelesen, eine Verarbeitung, die dem Zustand des Speichers entspricht, wird bei Empfangen einer Eingabe von dem Sensor 5 ausgeführt, und dann wird ein Verarbeitungsergebnis in dem Bereich B des gemeinsam verwendeten Speichers gespeichert. In dem nachfolgenden Prozess werden Daten aus dem Bereich B des gemeinsam verwendeten Speichers gelesen und in dem Bereich C (nicht gezeigt) des gemeinsam verwendeten Speichers gespeichert. Die A und B hinzugefügten Indizes sind Kennzeichen, die an A und B angebracht sind, um in den jeweiligen Bereichen des gemeinsam verwendeten Speichers gespeicherte Werte anzugeben. Zusätzlich gibt dieser Index eine Zuordnungsbeziehung zwischen einer Eingabe und einer Ausgabe an, so dass beispielsweise der Wert Bo auf der Basis der Eingabe Ao ausgegeben wird.In the following description, for the sake of simplicity, it is assumed that the application processing includes two consecutive processes (the preceding process and the succeeding process) each operated in a given cycle (the same cycle in the present embodiment). In the foregoing process, data is read from an area A of the shared memory, processing corresponding to the state of the memory is issued upon receiving an input from the sensor 5 and then a processing result is stored in the area B of the shared memory. In the subsequent process, data is read from the shared memory area B and stored in the shared memory area C (not shown). The indexes added to A and B are identifiers attached to A and B to indicate values stored in the respective areas of shared memory. In addition, this index indicates a correspondence relationship between an input and an output, so that, for example, the value Bo is output based on the input Ao.

Die beiden Prozesse, die den vorhergehenden Prozess und den nachfolgenden Prozess enthalten, sind so konfiguriert, dass sie zu Beginn (z.B. T0 oder T1) (ein Abschnitt, der in der Zeichnung als „ein“ beschrieben ist) des vorgegebenen Zyklus (z.B. T0 bis T1 oder T1 bis T2) einen für die Berechnung erforderlichen Wert aus dem gemeinsam verwendeten Speicher lesen und am Ende (ein Abschnitt, der in der Zeichnung als „aus“ beschrieben ist) des Zyklus ein Berechnungsergebnis in den gemeinsam verwendeten Speicher schreiben. Die Berechnungsverarbeitung wird zu einem speziellen Zeitpunkt zwischen dem Lesen und dem Schreiben ausgeführt und nach einem Modell betrieben, das eine Startzeit (Datenlesen) und eine Fertigstellungszeit (Datenschreiben) der Anwendungsverarbeitung klar definiert.The two processes including the preceding process and the succeeding process are configured to start (e.g., T0 or T1) (a portion described as "on" in the drawing) of the given cycle (e.g., T0 to T1 or T1 to T2) reads a value required for the calculation from the shared memory and writes a calculation result to the shared memory at the end (a portion described as “off” in the drawing) of the cycle. The calculation processing is executed at a specific timing between reading and writing, and is operated according to a model that clearly defines a start time (data reading) and a completion time (data writing) of the application processing.

Mit einer solchen Verarbeitungskonfiguration ist es, obwohl es schwierig ist, einen Zeitpunkt, zu dem die Berechnungsverarbeitung tatsächlich ausgeführt wird, und einen Zustand des Prozessors zu der Zeit, zu der die Berechnungsverarbeitung tatsächlich ausgeführt wird, zu verifizieren, möglich, die Fertigstellung der Verarbeitung durch Konzentrieren auf den Zustand des Speichers an zwei Zeitpunkten, d. h. der Startzeit und der Endzeit des Zyklus, zu bestätigen. Zur gleichen Zeit wird durch Einschränkung einer Schnittstelle zwischen einem Prozess und einem weiteren Prozess auf Datensenden/empfangen über den gemeinsam verwendeten .Speicher die Verifizierung leichter ausgeführt, ohne dass eine Änderung der zwischen den Prozessen in dem verkomplizierten Zustand des Prozessors verwendeten Daten berücksichtigt werden muss. Basierend auf einem solchen Entwurfskonzept wird durch Regulieren der Verarbeitung, die an vorgegebenen Zeitpunkten gestartet und fertiggestellt werden soll, selbst wenn eine Anwendung auf einen weiteren Prozessor übertragen wird, erwartet, dass der Prozessor, auf den die Anwendung übertragen wird, die gleiche Operation ausführt, solange er ausreichende Verarbeitungsfähigkeit zum Ausführen der gleichen Verarbeitung besitzt. Auf diese Weise wird die Übertragbarkeit der Anwendung verbessert.With such a processing configuration, although it is difficult to verify a timing when the calculation processing is actually executed and a state of the processor at the time when the calculation processing is actually executed, it is possible to complete the processing by Focusing on the state of the memory at two points in time, i. H. the start time and the end time of the cycle. At the same time, by restricting an interface between one process and another process to data transmission/reception via the shared memory, verification is more easily performed without considering a change in data used between processes in the complicated state of the processor. Based on such a design concept, by regulating the processing to be started and completed at predetermined times even when an application is transferred to another processor, the processor to which the application is transferred is expected to perform the same operation, as long as it has sufficient processing ability to perform the same processing. This improves the portability of the application.

In einem in 2 gezeigten Beispiel werden in einem vorangehenden Prozess die Daten A0 zu der Zeit T0 gelesen, und Bo wird nach Fertigstellung der Berechnung während eines ab T0 startenden Zyklus (d.h. bis T1) ausgegeben. In einem nachfolgenden Prozess wird die Ausgabe Bo in einem zu der Zeit T1 gestarteten Zyklus gelesen, so dass der nachfolgende Prozess ausgeführt wird, und Co wird nach Fertigstellung der Berechnung in dem nachfolgenden Prozess während eines ab T1 startenden Zyklus (bis T2) ausgegeben.in a 2 In the example shown, in a preceding process, the data A 0 is read at the time T0, and Bo is output after completion of the calculation during a cycle starting from T0 (ie, up to T1). In a subsequent process, the output Bo is read in a cycle started from the time T1 so that the subsequent process is executed, and Co is output during a cycle (to T2) starting from T1 after completion of the calculation in the subsequent process.

Indessen kann in einer solchen Konfiguration eine Berechnungszeit in dem vorhergehenden Prozess aufgrund einer Verzögerung der Eingabe aus dem Sensor 5, die von einem Anstieg der Belastung des internen Busses 3 abhängig von einer Kommunikationsbedingung, einem weiteren Prozess oder ähnlichem herrührt, länger sein als erwartet.Meanwhile, in such a configuration, a calculation time in the foregoing process may be longer than expected due to a delay in input from the sensor 5 resulting from an increase in load on the internal bus 3 depending on a communication condition, another process, or the like.

In einem in 3 gezeigten Fall wird aufgrund einer Verzögerung bei der Beendigung des Prozesses ein vorhergehender Prozess während eines ab T0 startenden Zyklus (Bis T1) nicht fertiggestellt. In einem solchen Fall wird ein Ergebnis der Speicherung im Bereich Bo, das ein Ergebnis der Verarbeitung in dem vorhergehenden Prozess ist, der bei Empfangen der Eingabe Ao ausgeführt wird, nicht in den gemeinsam verwendeten Speicher geschrieben, weil das Verarbeitungsergebnis nicht rechtzeitig in den gemeinsam verwendeten Speicher überschrieben wird. Andererseits wird in einem nachfolgenden Prozess die Verarbeitung mit dem Lesen der Daten B1 aus dem Bereich B des gemeinsam verwendeten Speichers in einem zu der Zeit T1 startenden Zyklus gestartet. Deshalb wird dem nachfolgenden Prozess die Verarbeitung noch einmal mit B1 als eine Eingabe ausgeführt. Als ein Ergebnis wird im Hinblick auf eine gesamte Operation der Anwendung, in der Ao empfangen und Co ausgegeben wird, die auf Bo basierende Verarbeitung in einen nächsten Zyklus verschoben, und somit verschlechtert sich die Reaktionsfähigkeit bei der Verarbeitung einer Eingabe.in a 3 In the case shown, due to a delay in completing the process, a preceding process is not completed during a cycle (until T1) starting from T0. In such a case, a result of storage in the area Bo, which is a result of processing in the preceding process executed upon receiving the input Ao, is not written in the shared memory because the processing result is not in the shared memory in time memory is overwritten. On the other hand, in a subsequent process, the processing is started with reading the data B 1 from the area B of the shared memory in a cycle starting from the time T1. Therefore, the subsequent process is once again executed with B 1 as an input. As a result, with respect to an entire operation of the application in which Ao is received and Co is output, processing based on Bo is shifted to a next cycle, and thus responsiveness in processing an input deteriorates.

4 stellt eine Konfiguration in der vorliegenden Ausführungsform dar, die der vorstehend beschriebenen Konfiguration entspricht. In der vorliegenden Ausführungsform wird die Startzeit des nachfolgenden Prozesses unter Verwendung einer Nachfrist, die dem nachfolgenden Prozess gegeben wird, wie in Bezug auf die Situation wie in 3 entworfen, verzögert. Auf diese Weise ist es möglich, eine Zeitspanne zum Warten auf eine Eingabe zu verlängern und dadurch Co als ein Berechnungsergebnis unter Verwendung eines aktuellen Wertes Bo als eine Eingabe in dem nachfolgenden Prozess in einem zu der Zeit T1 startenden Zyklus auszugeben. 4 12 illustrates a configuration in the present embodiment that is the same as the configuration described above. In the present embodiment, the start time of the subsequent process is determined using a grace period given to the subsequent process as related to the situation as in FIG 3 designed, delayed. In this way, it is possible to lengthen a period of time for waiting for an input and thereby output Co as a calculation result using a current value Bo as an input in the subsequent process in a cycle starting from the time T1.

Um eine solche Verarbeitung zu realisieren, es ist notwendig, eine Technik zum gemeinsamen Verwenden von Daten zwischen dem vorhergehenden und dem nachfolgenden Prozess und eine Funktion zum Starten des nachfolgenden Prozesses einem OS oder einer Middleware hinzuzufügen. Die Technik zum gemeinsamen Verwenden von Daten zwischen dem vorhergehenden und dem nachfolgenden Prozess kann beispielsweise unter Verwendung von doppelter Pufferung realisiert werden.In order to realize such processing, it is necessary to add a technique for sharing data between the preceding and succeeding processes and a function for starting the succeeding process to an OS or a middleware. The technique for sharing data between the preceding and succeeding processes can be implemented using double buffering, for example.

Auf diese Weise ist es, während ein Anstieg der Anzahl von Prozessen für Entwurf, Entwicklung und Verifizierung unterdrückt wird und die Übertragbarkeit verbessert wird, was die Vorteile des Verfahrens mit Zeitsteuerungsentwurf vom Zeitsynchronisationstyp sind, möglich, die Reaktionsfähigkeit oder Verarbeitungsfertigstellungsleistung selbst dann zu verbessern, wenn die Beendigung des vorhergehenden Prozesses innerhalb eines zulässigen Bereichs, wie er für die Nachfrist entworfen ist, verzögert ist. In einem Fall jedoch, in dem der vorhergehende Prozess selbst innerhalb der Nachfrist in dem nachfolgenden Prozess nicht fertiggestellt wird, verschlechtert sich die Reaktionsfähigkeit ähnlich wie in dem herkömmlichen Verfahren.In this way, while an increase in the number of processes for design, development and verification is suppressed and portability is improved, which are the advantages of the time synchronization type timing design method, it is possible to improve responsiveness or processing completion performance even when the completion of the preceding process is delayed within an allowable range designed for the grace period. However, in a case where the preceding process is not completed even within the grace period in the succeeding process, the responsiveness deteriorates similarly to the conventional method.

5 ist ein Ablaufplan zum Erläutern des Betriebs der Datenverarbeitungseinrichtung gemäß der ersten Ausführungsform. 5 12 is a flowchart for explaining the operation of the data processing device according to the first embodiment.

Zuerst liest der Prozessor 1 notwendige Daten in den lokalen Speicher für den vorhergehenden Prozess (Schritt S500). Als Nächstes führt der Prozessor 1 einen vorhergehenden Prozess aus (Schritt S501).First, the processor 1 reads necessary data into the local memory for the previous process (step S500). Next, the processor 1 executes a previous process (step S501).

Als Nächstes bestimmt der Prozessor 1, ob die Beendigung des vorangegangenen Prozesses und das Schreiben von Daten in den gemeinsam verwendeten Datenspeicher bis zu einer Frist (einem Ende eines Berechnungsverarbeitungszyklus) fertiggestellt worden sind oder nicht (Schritt S502). Wenn die Bestimmung positiv ist (JA in Schritt S502), fährt die Verarbeitung zu Schritt S503 fort, und wenn die Bestimmung negativ ist (NEIN in. Schritt S502), fährt die Verarbeitung zu Schritt S506 fort.Next, the processor 1 determines whether or not the completion of the preceding process and the writing of data into the shared data memory have been completed by a deadline (an end of a calculation processing cycle) (step S502). When the determination is affirmative (YES in step S502), processing proceeds to step S503, and when the determination is negative (NO in step S502), processing proceeds to step S506.

In Schritt S503 liest der Prozessor 1 ein Verarbeitungsergebnis des vorhergehenden Prozesses in einen lokalen Speicher für den nachfolgenden Prozess. Als Nächstes führt der Prozessor 1 einen nachfolgenden Prozess aus (Schritt S504). Dann schreibt der Prozessor 1 ein Ergebnis des nachfolgenden Prozesses in den gemeinsam verwendeten Speicher (Schritt S505).In step S503, the processor 1 reads a processing result of the previous process into a local memory for the subsequent process. Next, the processor 1 executes a subsequent process (step S504). Then, the processor 1 writes a result of the subsequent process into the shared memory (step S505).

Andererseits verzögert der Prozessor 1 in Schritt S506 den Start des nachfolgenden Prozesses. Als Nächstes bestimmt der Prozessor 1, ob eine Zeit, um die sich die Fertigstellung des vorhergehenden Prozesses verzögert, innerhalb einer Nachfrist des nachfolgenden Prozesses ist oder nicht (Schritt S507). Wenn die Bestimmung positiv ist (JA in Schritt S507), fährt die Verarbeitung zu Schritt S508 fort, und wenn die Bestimmung negativ ist (NEIN in Schritt S507), fährt die Verarbeitung zu Schritt S511 fort.On the other hand, in step S506, the processor 1 delays the start of the subsequent process. Next, the processor 1 determines whether or not a time by which the completion of the preceding process is delayed is within a grace period of the succeeding process (step S507). When the determination is positive (YES in step S507), processing proceeds to step S508, and when the determination is negative (NO in step S507), processing proceeds to step S511.

In den Schritten S508 bis S510 wird eine ähnliche Verarbeitung wie in den Schritten S503 bis S505 ausgeführt.In steps S508 through S510, processing similar to that in steps S503 through S505 is executed.

Andererseits wird in Schritt S511 das frühere Verarbeitungsergebnis des vorhergehenden Prozesses in den lokalen Speicher für den nachfolgenden Prozess gelesen. Danach wird in den Schritten S512 und S513 eine ähnliche Verarbeitung wie in den Schritten S504 und S505 ausgeführt.On the other hand, in step S511, the previous processing result of the previous process is read into the local memory for the subsequent process. Thereafter, similar processing to steps S504 and S505 is executed in steps S512 and S513.

Es wird darauf hingewiesen, dass in der vorliegenden Ausführungsform das Ergebnis des vorhergehenden Prozesses in dem ab der Zeit T0 startenden Zyklus nicht in den gemeinsam verwendeten Speicher zu der Zeit T1 geschrieben werden kann und der Wert Bo, der ein Verarbeitungsergebnis am Ende des Zyklus zu der Zeit T1 ist, in den gemeinsamen Speicher überschrieben werden kann, ohne den vorhergehenden Prozess zu dem Zyklus, der ab der nächsten Zeit T1 startet, zu starten.It is noted that in the present embodiment, the result of the previous process in the cycle starting from the time T 0 cannot be written in the shared memory at the time T1, and the value Bo indicating a processing result at the end of the cycle of time T1 can be rewritten into the shared memory without starting the previous process to the cycle starting from the next time T1.

Alternativ wird in einer speziellen Verarbeitungskonfiguration die Verarbeitung des Zyklus der Zeit T0 zu der Zeit T1 zwangsweise beendet, und die Verarbeitung des nächsten Zyklus kann durch Lesen des Wertes Ao auf dem gemeinsam verwendeten Speicher gestartet werden. In diesem Fall kann die Verarbeitung mit Bo als Eingabe im nachfolgenden Prozess nicht ausgeführt werden. In einem solchen Fall findet, da die Anwendungsverarbeitung nicht wie erwartet ausgeführt wird, eine andere Beeinflussung des nachfolgenden Prozesses statt, und ein Problem, das von der vorstehend beschriebenen Verschlechterung der Reaktionsfähigkeit verschieden ist, tritt auf.Alternatively, in a special processing configuration, the processing of the cycle of time T0 is forcibly ended at time T1, and the processing of the next cycle can be started by reading the value Ao on the shared memory. In this case, the processing cannot be performed with Bo as input in the subsequent process. In such a case, since the application processing is not executed as expected, the subsequent process is affected differently, and a problem other than the above-described deterioration in responsiveness occurs.

Zweite AusführungsformSecond embodiment

In einer zweiten Ausführungsform, die ein Beispiel dafür ist, wenn die in der ersten Ausführungsform beschriebene Verarbeitungskonfiguration auf eine Steuervorrichtung, die die Verarbeitung für automatisiertes Fahren durchführt, angewandt wird, werden eine Konfiguration einer Sensorverarbeitungsanwendung und ein Verfahren zum Anwenden der Verarbeitung beschrieben.In a second embodiment, which is an example of when the processing configuration described in the first embodiment is applied to a control device that performs the automated driving processing, a configuration of a sensor processing application and a method of applying the processing will be described.

Die Konfiguration dieser Anwendung ist in 6 gezeigt. Diese Anwendung ist konfiguriert, fünf Prozesse auszuführen, die einen Prozess A zum Speichern eines Ergebnisses des Empfangens von Sensordaten von einem externen Sensor in einem Speicher, eine Reihe von Prozessen (B und C) und einen Prozess D zum Ausführen von zwei unterschiedlichen Erkennungsprozessen auf den Sensordaten, die im Prozess A erfasst wurden, und einen Prozess E zum Integrieren der Ergebnisse der beiden Erkennungsprozesse und zum Ausgeben des integrierten Ergebnisses an die Verarbeitung einer weiteren Anwendung enthalten, und wird unter Verwendung der beiden CPU-Kerne 2 ausgeführt.The configuration of this application is in 6 shown. This application is configured to run five processes that run a process A for storing a result of receiving sensor data from an external sensor in a memory, a series of processes (B and C) and a process D for executing two different recognition processes on the sensor data acquired in process A, and a process E for integrating the results of the two recognition processes and for outputting the integrated result to the processing of another application, and is executed using the two CPU cores 2.

Für jeden der in dieser Anwendung enthaltenen Prozesse wird ein Kern zugewiesen, und eine Zeitsteuerung für die Ausführung wird entworfen, wie in 7 dargestellt ist. Die Zeitsteuerung ist auf ähnliche Weise wie in der ersten Ausführungsform entworfen.A core is allocated for each of the processes contained in this application and a timing for execution is designed as in 7 is shown. The timing is designed in a manner similar to that in the first embodiment.

In dieser Ausführungsform sind fünf Prozesse, deren Start- und Fertigstellungszeiten voneinander verschieden sind, innerhalb eines Anwendungszyklus angeordnet. Beispielsweise wird der Prozess A zwischen zwei Zeitpunkten ausgeführt, so dass der Prozess zum Zeitpunkt T0 gestartet wird, um (Einkopieren) auszuführen, und zum Zeitpunkt T1 fertiggestellt wird, um Auskopieren auszuführen. Zusätzlich, da ein Ergebnis der aufeinanderfolgenden Prozesse B und C und ein Ergebnis des Prozesses D in dem Prozess E integriert werden, werden die Start-/Endzeiten der Prozesse B, C und D so bestimmt, dass der Start des Prozesses E rechtzeitig ausgeführt wird.In this embodiment, five processes whose start and finish times are different from each other are arranged within one application cycle. For example, the process A is executed between two times, so that the process is started at time T0 to execute (copy-in) and is completed at time T1 to execute copy-out. In addition, since a result of the consecutive processes B and C and a result of the process D are integrated in the process E, the start/end times of the processes B, C and D are determined so that the start of the process E is executed in time.

Hier kann in dem Prozess A, der ein Prozess zum Speichern eines Ergebnisses des Empfangens von Sensordaten in einem Speicher ist, obwohl eine Nachfrist wie entworfen vergeben ist, eine Verzögerung beim Ankommen der Daten auftreten, die von einem Status der Kommunikation zwischen der Steuervorrichtung und dem Sensor oder einem weiteren Kommunikationsstatus abhängig ist.Here, in the process A, which is a process for storing a result of receiving sensor data in a memory, although a grace period is given as designed, a delay in arrival of the data may occur depending on a status of communication between the control device and the Sensor or another communication status is dependent.

8 stellt einen Fall dar, in dem die Beendigung des Prozesses A aufgrund einer Verzögerung der Ankunft der Sensordaten verzögert ist. Auch in diesem Fall wird ähnlich wie bei der Konfiguration in der ersten Ausführungsform durch das Verzögern der Startzeiten der Prozesse B und D unter Verwendung der Nachfristen der Prozesse B und D versucht, die nachfolgenden Prozesse basierend auf einem aktuellen Ergebnis des Prozesses A, das heißt aktueller Sensordaten, fortzusetzen. 8th Fig. 12 illustrates a case where the completion of the process A is delayed due to a delay in arrival of the sensor data. Also in this case, similar to the configuration in the first embodiment, by delaying the start times of the processes B and D using the grace periods of the processes B and D, the subsequent processes are attempted based on a current result of the process A, i.e. more current sensor data to continue.

Indessen variieren die spätesten Startzeitpunkte der Prozesse B und D abhängig von Unterschieden in der Ausführungszeit und Fertigstellungszeit zwischen dem Prozess B und dem Prozess D. Es wird darauf hingewiesen, dass der späteste Startzeitpunkt ein Maximalwert der Zeitplanung ist, der für eine Startverzögerung in der Verarbeitungskonfiguration unter Berücksichtigung einer durch den Entwurf definierten Toleranz und einer Variation der Ausführungszeit zulässig ist.Meanwhile, the latest start times of the processes B and D vary depending on differences in execution time and completion time between the process B and the process D. It is noted that the latest start time is a maximum value of the schedule that allows for a start delay in the processing configuration Allowed for a tolerance defined by the design and a variation in execution time.

In einem solchen Fall, da dieselbe Sensoreingabe, die der Prozess A ergibt, in denselben Prozess E in zwei Steuerpfaden eingegeben wird, das heißt eine Pfad für die Prozesse B und C und einen Pfad für den Prozess D, kann es unerwünscht sein, dass die in den Prozessen B und C verwendeten Eingabedaten und die in dem Prozess D verwendeten Eingangsdaten voneinander verschieden sind.In such a case, since the same sensor input that process A gives is input to the same process E in two control paths, i.e. one path for processes B and C and one path for process D, it may be undesirable that the input data used in the processes B and C and the input data used in the process D are different from each other.

In einem solchen Fall, obwohl die Nachfrist (eine Zeitspanne bis zum spätesten Startzeitpunkt) für die Verzögerung des Starts des Prozesses D in Bezug auf die Verzögerung des Prozesses A länger ist als die für die Verzögerung des Starts des Prozesses B, ist der späteste Endzeitpunkt des in 9 gezeigten Prozesses A ist eingeschränkt und in Übereinstimmung mit dem spätesten Startzeitpunkt des Prozesses B, für den die Nachfrist kürzer ist als die für den Prozess D, definiert. Wie vorstehend beschrieben, variiert eine Nachfrist, die ermöglicht, ein aktuelles Verarbeitungsergebnis zu verwenden, abhängig von der Verarbeitungskonfiguration der Anwendung.In such a case, although the grace period (a period of time until the latest start time) for delaying the start of process D with respect to the delay of process A is longer than that for delaying the start of process B, the latest end time of the in 9 Process A shown is constrained and defined in accordance with the latest start time of process B, for which the grace period is shorter than that for process D. As described above, a grace period that allows a current processing result to be used varies depending on the processing configuration of the application.

Es wird darauf hingewiesen, dass dann, wenn der Prozess A selbst nach dem spätesten Endzeitpunkt des Prozesses A nicht fertiggestellt ist, der Prozess B und der Prozess D unter Verwendung eines früheren Verarbeitungsergebnisses (das heißt eines Ergebnisses des Empfangs von Sensordaten in einem früheren Zyklus) des Prozesses A gestartet werden.It is noted that if the process A is not completed even after the latest end time of the process A, the process B and the process D using a previous processing result (i.e., a result of receiving sensor data in a previous cycle) of process A can be started.

Obwohl die Erfindung durch den vorliegenden Erfinder basierend auf den Ausführungsformen spezifisch beschrieben worden ist, ist die vorliegende Erfindung nicht auf die vorstehend beschriebenen Ausführungsformen beschränkt, und es ist selbstverständlich, dass verschiedene Modifikationen vorgenommen werden können, ohne von der Kernaussage der vorliegenden Erfindung abzuweichen.Although the invention has been specifically described by the present inventor based on the embodiments, the present invention is not limited to the above-described embodiments, and it goes without saying that various modifications can be made without departing from the gist of the present invention.

Beispielsweise kann in der zweiten Ausführungsform die Verzögerung bei der Beendigung des Prozesses B beispielsweise verkettet mit der Verzögerung bei der Beendigung des Prozesses A auftreten. In einem solchen Fall können mehrere Implementierungsverfahren in Betracht gezogen werden. Beispielsweise kann die Startzeit des Prozesses C ebenfalls verzögert werden oder die Endezeit des Prozesses B kann fest sein.For example, in the second embodiment, the delay in completing process B may occur concatenated with the delay in completing process A, for example. In such a case, several implementation methods can be considered. For example, the start time of process C can also be delayed, or the end time of process B can be fixed.

Ferner kann jede der vorstehend beschriebenen Konfigurationen, Funktionen, Verarbeitungseinheiten, Verarbeitungsmittel und dergleichen durch Hardware realisiert werden, beispielsweise durch Entwerfen einer integrierten Schaltung für einen Teil davon oder für alle. Zusätzlich kann die vorliegende Erfindung auch durch einen Programmcode einer Software realisiert werden, die die Funktionen der Ausführungsformen realisiert. In diesem Fall wird ein Speichermedium, auf dem der Programmcode aufgezeichnet ist, in einem Computer bereitgestellt, und ein im Computer enthaltener Prozessor liest den im Speichermedium gespeicherten Programmcode. In diesem Fall realisiert der Programmcode selbst, der aus dem Speichermedium gelesen wird, die Funktionen der vorstehend beschriebenen Ausführungsformen, und der Programmcode selbst und das Speichermedium, das den Programmcode speichert, bilden die vorliegende Erfindung.Furthermore, any of the configurations, functions, processing described above Units, processing means and the like can be realized by hardware, e.g. by designing an integrated circuit for part or all of them. In addition, the present invention can also be realized by a program code of software that realizes the functions of the embodiments. In this case, a storage medium on which the program code is recorded is provided in a computer, and a processor included in the computer reads the program code stored in the storage medium. In this case, the program code itself read from the storage medium realizes the functions of the above-described embodiments, and the program code itself and the storage medium storing the program code constitute the present invention.

Als ein Speichermedium zur Bereitstellung eines solchen Programmcodes wird beispielsweise eine flexible Platte, eine CD-ROM, eine DVD-ROM, eine Festplatte, ein Festkörperlaufwerk (SSD), eine optische Platte, eine magneto-optische Platte, eine CD-R, ein Magnetband, eine nichtflüchtige Speicherkarte, ein ROM oder dergleichen verwendet.As a storage medium for providing such a program code, for example, a flexible disk, a CD-ROM, a DVD-ROM, a hard disk, a solid state drive (SSD), an optical disk, a magneto-optical disk, a CD-R, a magnetic tape , a non-volatile memory card, a ROM or the like is used.

Zusätzlich kann der Programmcode zum Realisieren der in den vorliegenden Ausführungsformen beschriebenen Funktionen durch eine weiten Bereich von Programmen oder Skriptsprachen implementiert sein, z. B. Assembler, C/C++, Perl, Shell, PHP und Java (eingetragenes Warenzeichen).In addition, the program code for realizing the functions described in the present embodiments can be implemented by a wide range of programs or scripting languages, e.g. Assembler, C/C++, Perl, Shell, PHP and Java (registered trademark).

Darüber hinaus kann durch Verteilen des Programmcodes der Software, die die Funktionen der Ausführungsformen realisiert, über ein Netz der Programmcode in einem Speichermittel wie z. B. einer Festplatte oder einem Speicher des Computers oder in einem Speichermedium wie z. B. einer CD-RW oder einer CD-R gespeichert sein, und der in dem Computer enthaltene Prozessor kann den in dem Speichermittel oder in dem Speichermedium gespeicherten Programmcode lesen und ausführen.In addition, by distributing the program code of the software that realizes the functions of the embodiments over a network, the program code can be stored in a storage means such as a memory card. B. a hard drive or memory of the computer or in a storage medium such. B. a CD-RW or a CD-R, and the processor included in the computer can read and execute the program code stored in the storage means or in the storage medium.

Zusätzlich geben die Steuer- und Informationsleitungen in den vorstehend beschriebenen Ausführungsformen an, was für die Beschreibung als notwendig erachtet wird, und geben nicht alle Steuer- und Informationsleitungen auf dem Produkt an. Alle Konfigurationen können miteinander verbunden sein.Additionally, in the embodiments described above, the control and information lines indicate what is deemed necessary for the description and do not indicate all of the control and information lines on the product. All configurations can be interconnected.

BezugszeichenlisteReference List

11
Mehrkernprozessormulti-core processor
22
CPU-KernCPU core
2121
L1-CacheL1 cache
2222
L2-CacheL2 cache
33
interner Businternal bus
44
externer Speicherexternal storage
55
Sensorsensor

ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN 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 documents cited 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 2005043959 A [0009]JP2005043959A [0009]

Claims (8)

Datenverarbeitungseinrichtung, die mehrere Verarbeitungseinheiten, die ein Speicherbetriebsmittel gemeinsam verwenden, umfasst, wobei jede der Verarbeitungseinheiten einen Prozess periodisch in einem vorgegebenen Zeitabstand ausführt, wobei in einem Fall, in dem ein erster Prozess einer spezifischen Verarbeitungseinheit ein Ergebnis eines zweiten Prozesses einer weiteren Verarbeitungseinheit, der dem ersten Prozess vorausgeht, verwendet, wenn das Schreiben des Ergebnisses des zweiten Prozesses der weiteren Verarbeitungseinheit in das Speicherbetriebsmittel nicht zu einem Zeitpunkt innerhalb des vorgegebenen Zeitabstands beendet ist, eine Startzeit des ersten Prozesses der spezifischen Verarbeitungseinheit bis zu einem Zeitpunkt, zu dem das Ergebnis des zweiten Prozesses der weiteren Verarbeitungseinheit in das Speicherbetriebsmittel geschrieben wird, verzögert wird, so dass das Ergebnis des zweiten Prozesses in dem ersten Prozess der spezifischen Verarbeitungseinheit verwendet wird.Data processing device comprising a plurality of processing units sharing a memory resource, each of the processing units executing a process periodically at a predetermined time interval, wherein in a case where a first process of a specific processing unit is a result of a second process of another processing unit, the preceding the first process, if the writing of the result of the second process of the further processing unit into the memory resource is not completed at a point in time within the predetermined time interval, a start time of the first process of the specific processing unit until a point in time when the result of the second process of the further processing unit is written into the memory resource is delayed so that the result of the second process is used in the first process of the specific processing unit. Datenverarbeitungseinrichtung nach Anspruch 1, wobei der Zeitpunkt, bis zu dem die Startzeit des ersten Prozesses verzögert wird, innerhalb einer vorgegebenen Toleranzzeitspanne für den zweiten Prozess ist.data processing device claim 1 , wherein the point in time to which the start time of the first process is delayed is within a predetermined tolerance time period for the second process. Datenverarbeitungseinrichtung nach Anspruch 1, wobei die spezifische Verarbeitungseinheit das Ergebnis des zweiten Prozesses aus einem Bereich des Speicherbetriebsmittels, in dem das Ergebnis des zweiten Prozesses der weiteren Verarbeitungseinheit gespeichert ist, liest, um den ersten Prozess auszuführen.data processing device claim 1 wherein the specific processing unit reads the result of the second process from an area of the memory resource in which the result of the second process of the other processing unit is stored to execute the first process. Datenverarbeitungseinrichtung nach Anspruch 2, wobei dann, wenn das Ergebnis des zweiten Prozesses in das Speicherbetriebsmittel innerhalb der vorgegebenen Toleranzzeitspanne zum Verzögern der Startzeit des ersten Prozesses geschrieben wird, die spezifische Verarbeitungseinheit das Ergebnis des zweiten Prozesses in dem ersten Prozess verwendet, und wenn das Ergebnis des zweiten Prozesses selbst nach der vorgegebenen Toleranzzeitspanne zum Verzögern der Startzeit des ersten Prozesses nicht in das Speicherbetriebsmittel geschrieben wird, die spezifische Verarbeitungseinheit ein Ergebnis eines früheren Zyklus des zweiten Prozesses in dem ersten Prozess verwendet.data processing device claim 2 , wherein if the result of the second process is written into the memory resource within the predetermined tolerance time period for delaying the start time of the first process, the specific processing unit uses the result of the second process in the first process, and if the result of the second process itself after the predetermined tolerance period of time for delaying the start time of the first process is not written to the memory resource, the specific processing unit uses a result of an earlier cycle of the second process in the first process. Datenverarbeitungseinrichtung nach Anspruch 4, wobei Speicherbetriebsmittel mehrere Bereiche enthält, und wenn das Ergebnis des zweiten Prozesses in einen spezifischen Bereich des Speicherbetriebsmittels innerhalb der vorgegebenen Toleranzzeitspanne zum Verzögern der Startzeit des ersten Prozesses geschrieben wird, die spezifische Verarbeitungseinheit das Ergebnis des zweiten Prozesses, das in dem spezifischen Bereich gespeichert ist, liest, um das Ergebnis des zweiten Prozesses in dem ersten Prozess zu verwenden, und wenn das Ergebnis des zweiten Prozesses selbst nach der vorgegebenen Toleranzzeitspanne zum Verzögern der Startzeit des ersten Prozesses nicht in das Speicherbetriebsmittel geschrieben wird, die spezifische Verarbeitungseinheit ein Ergebnis des zweiten Prozesses, das in einen Bereich geschrieben ist, der von dem spezifischen Bereich verschieden ist, in den ein Ergebnis des zweiten Prozesses aus einem früheren Zyklus geschrieben wird, liest, um das Ergebnis des zweiten Prozesses in dem ersten Prozess zu verwenden.data processing device claim 4 wherein memory resource includes multiple areas, and when the result of the second process is written to a specific area of the memory resource within the predetermined tolerance time period for delaying the start time of the first process, the specific processing unit the result of the second process stored in the specific area , reads to use the result of the second process in the first process, and when the result of the second process is not written into the memory resource even after the predetermined allowance period for delaying the start time of the first process, the specific processing unit reads a result of the second process , which is written in an area different from the specific area in which a result of the second process is written from a previous cycle, to use the result of the second process in the first process. Datenverarbeitungseinrichtung nach Anspruch 1, wobei mehrere erste Prozesse ausgeführt werden und ein Zeitpunkt, bis zu dem eine Startzeit jedes der mehreren ersten Prozesse verzögert wird, innerhalb einer vorgegebenen Toleranzzeitspanne für jeden der mehreren ersten Prozesse ist.data processing device claim 1 , wherein a plurality of first processes are executed and a point in time until which a start time of each of the plurality of first processes is delayed is within a predetermined tolerance period for each of the plurality of first processes. Datenverarbeitungseinrichtung nach Anspruch 6, wobei dann, wenn ein erster Prozess und ein dritter Prozess, der von dem zweiten Prozess verschieden ist, nach jedem der mehreren ersten Prozesse ausgeführt werden, der Zeitpunkt, bis zu dem die Startzeit jedes der mehreren ersten Prozesse verzögert wird, innerhalb der vorgegebenen Toleranzzeitspanne für jeden der mehreren ersten Prozesse ist.data processing device claim 6 , wherein when a first process and a third process different from the second process are executed after each of the plurality of first processes, the point in time up to which the start time of each of the plurality of first processes is delayed is within the predetermined tolerance period for each of the plurality of first processes. Datenverarbeitungseinrichtung nach Anspruch 1, wobei ein Verarbeitungsstartzeitpunkt des zweiten Prozesses innerhalb des vorgegebenen Zeitabstands variiert.data processing device claim 1 , wherein a processing start time of the second process varies within the predetermined time interval.
DE112020005072.6T 2019-11-29 2020-11-13 DATA PROCESSING ESTABLISHMENT Pending DE112020005072T5 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2019216836A JP7428508B2 (en) 2019-11-29 2019-11-29 information processing equipment
JP2019-216836 2019-11-29
PCT/JP2020/042368 WO2021106608A1 (en) 2019-11-29 2020-11-13 Information processing device

Publications (1)

Publication Number Publication Date
DE112020005072T5 true DE112020005072T5 (en) 2022-08-04

Family

ID=76088869

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112020005072.6T Pending DE112020005072T5 (en) 2019-11-29 2020-11-13 DATA PROCESSING ESTABLISHMENT

Country Status (3)

Country Link
JP (1) JP7428508B2 (en)
DE (1) DE112020005072T5 (en)
WO (1) WO2021106608A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023036264A (en) * 2021-09-02 2023-03-14 日立Astemo株式会社 Electronic system and electronic control apparatus

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005043959A (en) 2003-07-22 2005-02-17 Toshiba Corp Scheduling method and information processing system

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009199462A (en) 2008-02-22 2009-09-03 Toyota Motor Corp Multi-core processor and engine control apparatus using same
JP2016113968A (en) * 2014-12-16 2016-06-23 アイシン精機株式会社 Vehicular control device and control method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005043959A (en) 2003-07-22 2005-02-17 Toshiba Corp Scheduling method and information processing system

Also Published As

Publication number Publication date
WO2021106608A1 (en) 2021-06-03
JP2021086512A (en) 2021-06-03
JP7428508B2 (en) 2024-02-06

Similar Documents

Publication Publication Date Title
DE112005002403B4 (en) Processor pipeline with constant throughput
DE112006002237T5 (en) Method of self-initiating synchronization in a computer system
DE112005003243T5 (en) System and method for cache coherency in a cache with different lengths for the cache locations
DE2847216A1 (en) DATA PROCESSING SYSTEM WITH MULTIPROGRAM OPERATION
DE19729618C2 (en) Microprocessor and multiprocessor system
DE102007046947A1 (en) System and method for managing system management interrupts in a multi-processor computer system
DE102007060806A1 (en) Rank-based memory read / write microinstruction scheduler
DE102014002510A1 (en) Precise Exception Signaling for Multiple Data Architecture
DE112014000340T5 (en) Prefetching data for a chip with a parent core and a scout core
DE112020003004T5 (en) DMA SCATTER AND GATHER OPERATIONS FOR NONCONTINUOUS MEMORY
DE112019005584T5 (en) ARITHMETIC CONTROL DEVICE
DE102020103521A1 (en) Minimizing the use of hardware counters in triggered operations for collective communication
DE2556617A1 (en) DATA PROCESSER FOR THE ROTATABLE MOVEMENT OF BITS OF A DATA WORD
DE112020000843T5 (en) EXECUTING MULTIPLE DATA REQUESTS FROM MULTI-CORE PROCESSORS
DE102018202446A1 (en) Method for modularizing a software architecture
DE112020005072T5 (en) DATA PROCESSING ESTABLISHMENT
DE102004061339A1 (en) Context-scheduling method for e.g. multithreaded microcontroller and/or micro processor system, involves executing scheduling of threads that are to be processed by multithreaded processor, based on index variables assigned by threads
DE4328909C2 (en) Information processing system, information processor in an information processing system and interrupt controller in an information processing system
DE102016204970A1 (en) Parallelization compilation method, parallelization complicator and vehicle device
DE112020004071T5 (en) HANDLING INSTRUCTIONS FOR ACCUMULATION OF REGISTER RESULTS IN A MICROPROCESSOR
DE10303053A1 (en) Data transmission method for use in a computer processor whereby data is transmitted between pipelines and a register file to minimize risk of data loss or corruption
DE112019000189T5 (en) PROGRAM EXECUTION CONTROL METHOD AND VEHICLE CONTROL DEVICE
DE102015112250A1 (en) Separation of nuclei
DE10228778B4 (en) Hardware method for implementing atomic semaphore operations using code macros
DE102021131057A1 (en) System and method for performing an operating system task for a vehicle

Legal Events

Date Code Title Description
R012 Request for examination validly filed