JP2009217721A - Data synchronization method in multiprocessor system and multiprocessor system - Google Patents

Data synchronization method in multiprocessor system and multiprocessor system Download PDF

Info

Publication number
JP2009217721A
JP2009217721A JP2008062946A JP2008062946A JP2009217721A JP 2009217721 A JP2009217721 A JP 2009217721A JP 2008062946 A JP2008062946 A JP 2008062946A JP 2008062946 A JP2008062946 A JP 2008062946A JP 2009217721 A JP2009217721 A JP 2009217721A
Authority
JP
Japan
Prior art keywords
data
memory area
data acquisition
processor
acquisition request
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.)
Granted
Application number
JP2008062946A
Other languages
Japanese (ja)
Other versions
JP5213485B2 (en
Inventor
Mutsumi Abe
睦 阿部
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.)
Toyota Motor Corp
Toyota InfoTechnology Center Co Ltd
Original Assignee
Toyota Motor Corp
Toyota InfoTechnology Center Co 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 Toyota Motor Corp, Toyota InfoTechnology Center Co Ltd filed Critical Toyota Motor Corp
Priority to JP2008062946A priority Critical patent/JP5213485B2/en
Publication of JP2009217721A publication Critical patent/JP2009217721A/en
Application granted granted Critical
Publication of JP5213485B2 publication Critical patent/JP5213485B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Multi Processors (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide data sharing that insures data consistency in a multiprocessor system. <P>SOLUTION: The multiprocessor system comprises a plurality of processors and a shared memory, a shared memory area includes a notification memory area allocated to each processor to perform message exchange between the area and the processor, and a data acquisition request is written in the notification memory area when a first processor acquires data in an allocated memory area of a second processor. By monitoring a data acquisition request in the notification memory area, it is possible to confirm that data are requested, and in such a case, data are copied between allocated areas, and a completion notification showing that the copying is completed is written in the notification memory area. A processor of a side for requesting the data performs processing using the acquired data by confirming the completion notification in the notification memory area. <P>COPYRIGHT: (C)2009,JPO&INPIT

Description

本発明は、マルチプロセッサシステムにおけるデータ同期技術に関する。   The present invention relates to a data synchronization technique in a multiprocessor system.

コンピュータの性能は半導体の微細化に基づいた周波数クロックの向上により行われてきたが、プロセスルールの微細化は消費電力の増大を招くという問題がある。そこで、複数のプロセッサ又は複数のプロセッサコアを有するプロセッサを用いて並列性を活用することで、処理能力を向上させるマルチプロセッサシステムの導入が進んでいる。   Computer performance has been improved by improving the frequency clock based on semiconductor miniaturization. However, miniaturization of process rules has a problem of increasing power consumption. Therefore, the introduction of multiprocessor systems that improve the processing capability by utilizing parallelism using a plurality of processors or processors having a plurality of processor cores is in progress.

このようなマルチプロセッサシステムでは、複数のプロセッサ間でのデータの整合性を保証するために、各種のデータ同期メカニズムが必要とされている。例えば、プロセッサが共有メモリにアクセスするときにロック(セマフォ)を利用して、あるプロセッサがアクセス中のデータに対しては、他のプロセッサがアクセスできない仕組みを提供している。このようなロックの仕組みは、処理の負荷が大きく、並列処理の効果(処理の高速性)が損なわれてしまう。   In such a multiprocessor system, various data synchronization mechanisms are required to ensure data consistency among a plurality of processors. For example, a lock (semaphore) is used when a processor accesses a shared memory to provide a mechanism in which other processors cannot access data being accessed by a certain processor. Such a locking mechanism has a heavy processing load and impairs the effect of parallel processing (high speed processing).

特許文献1は、ペトリネットによる並列処理において、ジョブスケジューリングを分割して実行することを開示している。ペトリネットによって、データの流れに沿って複数の処理の並列制御が実現できる。   Patent Document 1 discloses that job scheduling is divided and executed in parallel processing by Petri nets. The Petri net can realize parallel control of a plurality of processes along the data flow.

また、特許文献2では、複数のプロセッサ間でデータを共用する際に、FIFOバッファを設け、一方のプロセッサがデータを更新する際にFIFOバッファも更新し、バッファ内のデータは他のプロセッサが割り込み可能となったときにそのプロセッサのRAMに反映される。このようにして、各プロセッサのRAMには常に整合性の取れた最新のデータが書き込まれていることになり、プロセッサにおいてロック待ちなどが発生しない。
特開平7−56863号公報 特開2007−133744号公報
Also, in Patent Document 2, a FIFO buffer is provided when data is shared among a plurality of processors, and when one processor updates data, the FIFO buffer is also updated. The data in the buffer is interrupted by another processor. When it becomes possible, it is reflected in the RAM of the processor. In this way, the latest consistent data is always written in the RAM of each processor, and no lock wait or the like occurs in the processor.
JP-A-7-56863 JP 2007-133744 A

特許文献1に記載のペトリネットを用いる方法では、データの流れと処理の開始が非同期となるような処理を実行することができない。   In the method using the Petri net described in Patent Document 1, it is impossible to execute a process in which the data flow and the start of the process are asynchronous.

特許文献2に記載のFIFOバッファを介してデータのやりとりを行う方法では、FIFOバッファやコントローラなどの回路をプロセッサ間に新たに設ける必要があるため、コストの上昇を招くという欠点がある。   In the method of exchanging data via the FIFO buffer described in Patent Document 2, it is necessary to newly provide a circuit such as a FIFO buffer and a controller between the processors.

本発明は、上記問題点を考慮し、マルチプロセッサシステムにおいて、データの整合性を保証した新規かつ有用なデータ共有技術を提供することを目的とする。   In view of the above problems, an object of the present invention is to provide a new and useful data sharing technique that guarantees data consistency in a multiprocessor system.

本発明は、以下の構成によって上記目的を達成する。   The present invention achieves the above object by the following configuration.

本発明の一態様は、第1及び第2のプロセッサと、両プロセッサが共通してアクセス可能な共有メモリを備えるマルチプロセッサシステムにおけるデータ同期方法である。本発明におけるマルチプロセッサシステムは、CPUなどのプロセッサを複数備えるシステム
以外に、同一のチップ上に複数のプロセッサコアが設けられたマルチコアプロセッサ(マルチコアCPU)を備えるシステムも含まれる。
One embodiment of the present invention is a data synchronization method in a multiprocessor system including first and second processors and a shared memory that can be accessed by both processors in common. The multiprocessor system in the present invention includes a system including a multicore processor (multicore CPU) in which a plurality of processor cores are provided on the same chip, in addition to a system including a plurality of processors such as CPUs.

共有メモリは、第1のプロセッサに割り当てられた第1のメモリ領域と、第2のプロセッサに割り当てられた第2のメモリ領域と、通知メモリ領域とを有する。第1及び第2のメモリ領域は、基本的に対応するプロセッサのみがアクセスする領域である。通知メモリ領域は、第1及び第2のプロセッサの双方がアクセスする領域であり、後述するようにデータ取得要求やその完了などを、通知しあうために用いられる領域である。   The shared memory has a first memory area assigned to the first processor, a second memory area assigned to the second processor, and a notification memory area. The first and second memory areas are areas that are basically accessed only by the corresponding processor. The notification memory area is an area that is accessed by both the first and second processors, and is an area that is used for notifying a data acquisition request and completion thereof, as will be described later.

本発明において、第1のプロセッサが、第2のプロセッサに割り当てられている第2のメモリ領域内のデータを要求する場合には、データ取得要求を通知メモリ領域に書き込む。   In the present invention, when the first processor requests data in the second memory area allocated to the second processor, the data acquisition request is written in the notification memory area.

第2のプロセッサは、第2のメモリ領域内のデータを要求するデータ取得要求が通知メモリ領域内に存在するか監視し、データ取得要求が存在する場合は、要求されたデータを第2のメモリ領域から第1のメモリ領域にコピーする。それとともに、要求されたデータのコピーが完了したことを通知する完了通知を通知メモリ領域に書き込む。   The second processor monitors whether a data acquisition request for requesting data in the second memory area exists in the notification memory area, and if there is a data acquisition request, the second processor stores the requested data in the second memory. Copy from area to first memory area. At the same time, a completion notification for notifying that the copying of the requested data is completed is written in the notification memory area.

第1のプロセッサは、要求したデータの完了通知が通知メモリ領域に存在するか監視し、完了通知が存在する場合は、第1のメモリ領域にコピーされたデータに基づいて処理を行う。   The first processor monitors whether or not the completion notification of the requested data exists in the notification memory area. If the completion notification exists, the first processor performs processing based on the data copied to the first memory area.

このように、共有メモリ内の一部を各プロセッサに割り当て、各メモリ領域に対する書き込みは単一のプロセッサから行われることとし、他のプロセッサに割り当てられたメモリ領域からデータを読み込む場合には、通知メモリ領域を介して当該他のプロセッサにコピーを依頼することで、整合性の取れたデータコピーが実現できる。   In this way, a part of the shared memory is allocated to each processor, writing to each memory area is performed from a single processor, and notification is given when data is read from a memory area allocated to another processor. By requesting the other processor to copy via the memory area, a consistent data copy can be realized.

そして、データ取得要求の通知やコピー完了の通知を、通知メモリ領域を介して行っているので、デュアルポートメモリやFIFOバッファのような新たな回路を設けることなく、本発明のデータ同期を実行することができる。   Since the notification of the data acquisition request and the notification of the completion of copying are performed via the notification memory area, the data synchronization of the present invention is executed without providing a new circuit such as a dual port memory or a FIFO buffer. be able to.

本発明において、通知メモリ領域に書き込まれるデータ取得要求には、データ取得要求処理の処理状況を格納するステータス領域が含まれていることが好適である。そして、第1のプロセッサがデータ取得要求を通知メモリ領域に書き込む際には、ステータス領域に要求状態であることを示すステータス(フラグ)を格納する。第2のプロセッサが要求されたデータのコピーを完了した場合に行う完了通知の書き込み処理は、第1のプロセッサが通知メモリ領域に書き込んだデータ取得要求のステータス領域を、コピー完了であることを示すステータスに書き換えることにより行えばよい。   In the present invention, it is preferable that the data acquisition request written in the notification memory area includes a status area for storing the processing status of the data acquisition request process. When the first processor writes a data acquisition request in the notification memory area, a status (flag) indicating a request state is stored in the status area. The completion notification writing process performed when the second processor completes copying the requested data indicates that the status area of the data acquisition request written in the notification memory area by the first processor is copy completion. This can be done by rewriting the status.

このように、完了通知の書き込みを通知メモリ領域内のデータ取得要求の一部を書き換えるにより実現することで、処理が簡便化されるとともに必要となる通知メモリ領域を削減することが可能となる。   As described above, the completion notification is written by rewriting a part of the data acquisition request in the notification memory area, thereby simplifying the process and reducing the necessary notification memory area.

また、本発明において、第2のプロセッサは、要求されたデータのコピーを、該データの整合性が取れているタイミングで実行することが好適である。   In the present invention, it is preferable that the second processor executes a copy of the requested data at a timing at which the data is consistent.

例えば、第2のプロセッサが複数のデータを更新する処理などアトミック性が必要な処理を実行中の場合に、その処理の途中に要求されたデータのコピーを行うのではなく、ひとまとまりの処理が完了した後にデータコピーを行うことで、データの整合性を保証することができる。   For example, when the second processor is executing a process that requires atomicity, such as a process of updating a plurality of data, instead of copying the requested data in the middle of the process, a single process is performed. By performing data copying after completion, data consistency can be guaranteed.

また、本発明において、第1及び第2のプロセッサは各々複数のタスクを実行するものであり、タスクの実行コードと該タスクが使用するデータは、該タスクを実行するプロセッサに対応するメモリ領域内の、タスク毎に割り当てられた領域に格納されている構成を採用することが好適である。この場合、データ取得の要求は、データを要求するタスク毎に実行し、要求されたデータのコピーはそのデータに対応するタスクの処理内で実行されることが好適である。   In the present invention, each of the first and second processors executes a plurality of tasks, and the execution code of the task and the data used by the task are stored in a memory area corresponding to the processor executing the task. It is preferable to adopt a configuration stored in an area allocated for each task. In this case, it is preferable that the data acquisition request is executed for each task requesting data, and the requested data copy is executed within the processing of the task corresponding to the data.

このようにすれば、プロセッサは、要求したデータのコピーが完了する間に、他のタスクの処理を行うことが可能なため、総合的なプロセッサの並列性を失うことがない。   In this way, the processor can perform processing of other tasks while the requested data copy is completed, so the overall parallelism of the processor is not lost.

また、本発明において、第1のプロセッサのあるタスクが、第2のメモリ領域内のデータを要求する際に、第1のプロセッサの別のタスクが同一のデータを既に要求している場合には、重複した要求であることを示したデータ取得要求を通知メモリ領域に書き込むことが好適である。第2のプロセッサは、第1のプロセッサに係る複数のタスクから同一データの取得要求を受けている場合には、いずれか1つのデータ取得要求に対してのみデータのコピー処理を実行する。例えば、最も早く生じたデータ取得要求に対してデータコピー処理を行うことが考えられる。そして、コピー処理の対象となったデータ取得要求については、コピーが完了したことを通知する完了通知を通知メモリ領域に書き込むことが好適である。そして、第1のプロセッサは、要求したデータの完了通知が通知メモリ領域内にある場合には、同一のデータを要求している他のデータ取得要求が要求するコピー先に当該データのコピーを行うとともに、そのデータ取得要求のコピーが完了したことを通知メモリ領域に書き込むことが好適である。   In the present invention, when a task of the first processor requests data in the second memory area, another task of the first processor already requests the same data. It is preferable to write a data acquisition request indicating a duplicate request in the notification memory area. When receiving the same data acquisition request from a plurality of tasks related to the first processor, the second processor executes data copy processing only for any one data acquisition request. For example, it is conceivable to perform data copy processing for the data acquisition request that has occurred earliest. For a data acquisition request subject to copy processing, it is preferable to write a completion notification for notifying that copying has been completed into the notification memory area. Then, when the completion notification of the requested data is in the notification memory area, the first processor copies the data to the copy destination requested by another data acquisition request that requests the same data. At the same time, it is preferable to write in the notification memory area that the copying of the data acquisition request has been completed.

このようにすれば、第1のプロセッサから、第2のプロセッサの同一データに対して複数の取得要求が発生した場合に、第2のプロセッサの処理負荷を減らすことができる。   In this way, when a plurality of acquisition requests are generated from the first processor for the same data of the second processor, the processing load on the second processor can be reduced.

なお、本発明は、上記処理の少なくとも一部を有するデータ同期方法として捉えることができる。また、本発明は、上記処理の少なくとも一部を実行するマルチプロセッサシステム、又は、かかる方法を実現するためのプログラムとして捉えることもできる。上記手段及び処理の各々は可能な限り互いに組み合わせて本発明を構成することができる。   The present invention can be understood as a data synchronization method having at least a part of the above processing. The present invention can also be understood as a multiprocessor system that executes at least a part of the above processing, or a program for realizing such a method. Each of the above means and processes can be combined with each other as much as possible to constitute the present invention.

例えば、本発明の一態様は、複数のプロセッサと、前記複数のプロセッサが共通してアクセス可能であり各プロセッサに割り当てられたメモリ領域及び通知メモリ領域を有する共有メモリと、を備えるマルチプロセッサシステムであって、各プロセッサが、他のプロセッサに割り当てられたメモリ領域内のデータを要求するデータ取得要求を通知メモリ領域に書き込むデータ取得要求手段と、通知メモリ領域内の自プロセッサに割り当てられたメモリ領域内のデータを要求するデータ取得要求を監視し、データ取得要求が存在する場合に、要求されたデータを要求元のプロセッサに割り当てられたメモリ領域内にコピーするとともに、コピーが完了したことを通知する完了通知を通知メモリ領域に書き込むデータコピー手段と、自プロセッサが要求したデータ取得要求の完了通知が通知メモリ領域に存在するか監視し、完了通知が存在する場合は、自プロセッサに割り当てられたメモリ領域にコピーされたデータに基づいて処理を行うデータ処理手段と、を備えるマルチプロセッサシステムとして捉えることができる。   For example, an aspect of the present invention is a multiprocessor system including a plurality of processors, and a shared memory that is accessible to the plurality of processors in common and has a memory area and a notification memory area allocated to each processor. A data acquisition request means for writing a data acquisition request for requesting data in a memory area allocated to another processor to the notification memory area, and a memory area allocated to the own processor in the notification memory area. The data acquisition request that requests the data in the server is monitored, and if there is a data acquisition request, the requested data is copied into the memory area allocated to the requesting processor and the copy is notified Data copy means for writing a completion notification to the notification memory area and its own processor Data processing means for monitoring whether the completion notification of the requested data acquisition request exists in the notification memory area, and if the completion notification exists, a data processing means for performing processing based on the data copied to the memory area allocated to the own processor; , Can be regarded as a multiprocessor system.

本発明によれば、マルチプロセッサシステムにおいて、データの整合性を保証したデー共有が可能となる。   According to the present invention, it is possible to share data with guaranteed data consistency in a multiprocessor system.

(第1の実施形態)
〈構成〉
本実施形態は、自動車等に搭載されたエンジンを制御するためのエンジン制御システムである。図1に示すように、本実施形態のエンジン制御システムは、2つのCPU1,2を備えている。また、CPU1,2が共通してアクセス可能なメモリ3を備えている。
(First embodiment)
<Constitution>
The present embodiment is an engine control system for controlling an engine mounted on an automobile or the like. As shown in FIG. 1, the engine control system of this embodiment includes two CPUs 1 and 2. Further, a memory 3 that can be commonly accessed by the CPUs 1 and 2 is provided.

CPU1には、エンジンの冷却水温を検出するための水温センサ4と、エンジンの吸入空気温を検出するための吸気温センサ5が接続されている。CPU1は、定期的にセンサ入力処理を実行し、水温センサ4及び吸気温センサ5からの信号を入力しデジタルデータに変換して、メモリ3に格納する。   Connected to the CPU 1 are a water temperature sensor 4 for detecting the cooling water temperature of the engine and an intake air temperature sensor 5 for detecting the intake air temperature of the engine. The CPU 1 periodically executes sensor input processing, inputs signals from the water temperature sensor 4 and the intake air temperature sensor 5, converts them into digital data, and stores them in the memory 3.

CPU2には、エンジンに燃料を噴射する燃料噴射装置6が接続されている。CPU2は、定期的に噴射量決定処理を実行し、CPU1が更新した水温及び空気温に基づいて、燃料噴射装置6の燃料噴射量を決定する。   Connected to the CPU 2 is a fuel injection device 6 for injecting fuel into the engine. The CPU 2 periodically executes an injection amount determination process, and determines the fuel injection amount of the fuel injection device 6 based on the water temperature and air temperature updated by the CPU 1.

なお、CPU1,2は上記のセンサ入力処理や噴射量決定処理以外の処理も並行して実行するよう構成されても良い。上記の説明ではCPU2からCPU1に一方的にデータの要求を行うだけであるが、CPU1,2のいずれも、他のCPUが実行するタスクに対してデータの要求をするとともに、要求されたデータを他CPUに渡すことが可能である。   The CPUs 1 and 2 may be configured to execute processes other than the sensor input process and the injection amount determination process in parallel. In the above description, only data is unilaterally requested from the CPU 2 to the CPU 1, but both the CPUs 1 and 2 request data for tasks executed by the other CPUs, and send the requested data. It can be passed to another CPU.

メモリ3は、図1及び図2に示すように、3つの領域3a,3b,3cに論理的に分割されている。メモリ領域3aはCPU1に割り当てられた領域であり、メモリ領域3bはCPU2に割り当てられた領域である。各CPUに割り当てられてメモリ領域は、基本的にそのCPUのみがアクセスを行う領域である。通知メモリ領域3cは、CPU1,2が共有するメモリ領域であり、この領域を介してCPU1,2はデータ取得のための情報をやりとりする。   As shown in FIGS. 1 and 2, the memory 3 is logically divided into three regions 3a, 3b, and 3c. The memory area 3a is an area allocated to the CPU 1, and the memory area 3b is an area allocated to the CPU 2. The memory area allocated to each CPU is basically an area that only the CPU accesses. The notification memory area 3c is a memory area shared by the CPUs 1 and 2, and the CPUs 1 and 2 exchange information for data acquisition via this area.

各割当領域3a,3bには、それぞれのCPUが実行するタスク(処理)の実行コードと、処理に用いる入力データと、処理結果として算出される出力データを格納する領域が、タスク毎にあらかじめ定められている。各タスクに割り当てられる領域は、連続した領域である必要はないが、本実施形態では連続した領域としている。また、各CPUに割り当てられる領域(3a,3b)も連続した領域である必要はないが、本実施形態では連続した領域としている。   In each of the allocation areas 3a and 3b, an area for storing an execution code of a task (process) executed by each CPU, input data used for the process, and output data calculated as a process result is predetermined for each task. It has been. The area allocated to each task does not have to be a continuous area, but is a continuous area in this embodiment. Further, the areas (3a, 3b) allocated to the CPUs do not have to be continuous areas, but are continuous areas in this embodiment.

通知メモリ領域3cには、異なるCPUのタスク間でデータを受け渡すためのデータ取得要求メッセージが格納される。本実施形態では、通知メモリ領域3cは、異なるCPUのタスク間でデータのやりとりがある分だけあらかじめ用意するものとする。ただし、データの要求があるときだけ、必要な領域を確保しても構わない。   The notification memory area 3c stores a data acquisition request message for transferring data between tasks of different CPUs. In this embodiment, the notification memory area 3c is prepared in advance for the amount of data exchange between tasks of different CPUs. However, a necessary area may be secured only when data is requested.

図3は、通知メモリ領域3cに書き込まれる、データ取得要求7のフォーマットの例を示す図である。データ取得要求7は、状態7a、コピー元アドレス7b及びコピー先アドレス7cを含む。状態7aには、「要求無し」「要求」「処理完了」の3つの状態のいずれかが格納される。「要求」は、一方のCPUから他のCPUに対してデータの要求が依頼されている状態であることを示す。「処理完了」は、データの要求を依頼されたCPUが、そのデータのコピーを完了したことを示す。「要求無し」は、上記以外の状態であり、要求がないことを示している。   FIG. 3 is a diagram showing an example of the format of the data acquisition request 7 written in the notification memory area 3c. The data acquisition request 7 includes a status 7a, a copy source address 7b, and a copy destination address 7c. The state 7a stores one of three states of “no request”, “request”, and “processing completed”. “Request” indicates that a request for data is requested from one CPU to another CPU. “Processing completed” indicates that the CPU requested to request the data has completed copying the data. “No request” is a state other than the above, and indicates that there is no request.

コピー元アドレス7bには、取得したいデータのアドレスが格納される。上記のように、CPU2が実行する噴射量決定タスクが、CPU1が実行するセンサ入力処理から、水温データを取得したい場合には、CPU1に割り当てられているメモリ領域3a内の水温
データが格納されているアドレスを指定する。
The copy source address 7b stores the address of data to be acquired. As described above, when the injection amount determination task executed by the CPU 2 wants to acquire the water temperature data from the sensor input process executed by the CPU 1, the water temperature data in the memory area 3a allocated to the CPU 1 is stored. Address.

コピー先アドレス7cには、要求したデータのコピー先のアドレスが格納される。上記の例では、CPU2に割り当てられているメモリ領域3b内のアドレスを指定する。   The copy destination address 7c stores a copy destination address of the requested data. In the above example, an address in the memory area 3b allocated to the CPU 2 is designated.

なお、データ取得要求メッセージ7は、要求の状態と、どのデータをどこにコピーすべきかという情報をやりとりできる形式であれば、どのようなフォーマットも採用可能である。例えば、どのデータを取得したいかという情報はデータの格納されたコピー元アドレスを直接指定するのではなく、データ毎に識別子(ID)をあらかじめ定めておき、そのIDを指定するようにしても良い。同様にコピー先アドレスの指定も、アドレスを直接指定するのではなく、その他の方法によって通知しても良い。   The data acquisition request message 7 can adopt any format as long as it can exchange the request status and information about which data should be copied to where. For example, the information about which data is desired to be acquired does not directly specify the copy source address where the data is stored, but an identifier (ID) may be predetermined for each data and the ID may be specified. . Similarly, the designation of the copy destination address may be notified by other methods instead of directly designating the address.

このように、各CPUは通知メモリ領域3c内のデータ取得要求メッセージを利用して、データの要求及びコピー処理を実行する。   In this way, each CPU executes a data request and copy process using the data acquisition request message in the notification memory area 3c.

〈処理フロー〉
次に、各CPUが行う処理の流れを図4のフローチャートを参照して説明する。図4のフローチャートは、CPUがある1つのタスクを実行する際の処理の流れを示すフローチャートである。CPUが複数のタスクを実行可能な場合には、実行可能状態にあるタスクのうち最も優先度の高いタスクの実行を行う。
<Processing flow>
Next, the flow of processing performed by each CPU will be described with reference to the flowchart of FIG. The flowchart of FIG. 4 is a flowchart showing the flow of processing when a CPU executes one task. When the CPU can execute a plurality of tasks, the task having the highest priority among the tasks in the executable state is executed.

図4のフローチャートは、データを要求する側のタスクとしての処理を表すS1(S10〜S15)と、データをコピーする側のタスクとしての処理を表すS2(S20〜S22)の2つの部分からなる。各CPUは、データを要求する側及びデータをコピーする側の両方を実行可能なように、S1とS2の両方を実行する。   The flowchart of FIG. 4 includes two parts, S1 (S10 to S15) representing processing as a task requesting data and S2 (S20 to S22) representing processing as a task copying data. . Each CPU executes both S1 and S2 so that both the data requesting side and the data copying side can be executed.

まず、データを要求する側のタスクとしての処理S1について説明する。CPUが実行可能な処理が存在するかを判定する(S10)。他のCPUが実行しているタスクに対してデータの取得要求を出している間(要求先からのコピーが未完了)は、処理を続行することができないので、ステップS20に進む。一方、データ取得要求メッセージが処理された後又は他のCPUに対してデータ取得要求メッセージを出していない場合には、タスク処理を実行可能であり、ステップS11に進む。   First, the process S1 as a task on the data request side will be described. It is determined whether there is a process executable by the CPU (S10). Since processing cannot be continued while a data acquisition request is being issued to a task being executed by another CPU (copying from the request destination has not been completed), the process proceeds to step S20. On the other hand, after the data acquisition request message has been processed or when no data acquisition request message has been issued to another CPU, task processing can be executed, and the process proceeds to step S11.

ステップS11では、以前に要求したデータ取得要求メッセージのステータス7aとして「処理完了」となっているものが通知メモリ領域3c内に存在するか判定し、存在する場合には、データ取得要求メッセージのステータス7aを「要求無し」に変更する(S12)。あるいは、データ取得要求メッセージを通知メモリ領域3cから削除してしまっても構わない。   In step S11, it is determined whether the status 7a of the previously requested data acquisition request message is “processing completed” in the notification memory area 3c. If there is, the status of the data acquisition request message is determined. 7a is changed to “no request” (S12). Alternatively, the data acquisition request message may be deleted from the notification memory area 3c.

次に、自タスクに関する処理を行う(S13)。データの取得要求を出していた場合には、自タスクに割り当てられているメモリ領域内にコピーされたデータを参照して処理を行う。そして、他のCPUが実行しているタスクからデータを取得する必要があるか判定する(S14)。ここで、他のCPUからデータを取得する必要があれば、データ取得要求メッセージを通知メモリ領域に書き込む(S15)。このデータ取得要求メッセージの、ステータス7aは「要求」とする。   Next, processing related to its own task is performed (S13). If a data acquisition request has been issued, processing is performed with reference to the data copied in the memory area allocated to the invoking task. Then, it is determined whether it is necessary to acquire data from a task executed by another CPU (S14). Here, if it is necessary to acquire data from another CPU, a data acquisition request message is written in the notification memory area (S15). The status 7a of this data acquisition request message is “request”.

次に、データをコピーする側のタスクとしての処理S2について説明する。タスクは、通知メモリ領域3cを参照して、自タスクに割り当てられた領域内のデータを要求するデータ取得要求メッセージが存在するか調べる(S20)。これは、通知メモリ領域3c内にあるデータ取得要求メッセージのコピー元アドレス7bを調べることで判定できる。   Next, the process S2 as a task for copying data will be described. The task refers to the notification memory area 3c and checks whether there is a data acquisition request message for requesting data in the area assigned to the task (S20). This can be determined by examining the copy source address 7b of the data acquisition request message in the notification memory area 3c.

自タスクのデータが他のCPUで実行されるタスクから要求されている場合には、そのデータを、データ要求通知のコピー先アドレス7cにコピーする(S21)。そして、通知メモリ領域3c内のデータ取得要求メッセージの状態7aを「処理完了」に変更する(S22)。なお、ステップS21では、あるCPUのタスクに割り当てられたメモリ領域から、他のCPUのタスクに割り当てられたメモリ領域にデータのコピーを行うが、データ要求側のCPUはデータ要求中にそのメモリ領域へのアクセスをしないようにすれば、書き込み時のロック処理等は不要である。なお、データ要求中(未取得時)に要求側のCPUがそのメモリ領域にアクセスできないようにする機構は、単にプログラムをそのようなロジックで記述することで実現しても良いし、メモリ領域へのアクセス前にデータ取得の要求を監視することで実現しても良い。   If the data of its own task is requested from a task executed by another CPU, the data is copied to the copy destination address 7c of the data request notification (S21). Then, the status 7a of the data acquisition request message in the notification memory area 3c is changed to “processing completed” (S22). In step S21, data is copied from a memory area assigned to a task of a certain CPU to a memory area assigned to a task of another CPU. If access is not made, lock processing at the time of writing is unnecessary. Note that the mechanism that prevents the requesting CPU from accessing the memory area during data request (when not acquired) may be realized simply by describing the program with such logic, or to the memory area. This may be realized by monitoring a data acquisition request prior to access.

データを要求した側のタスクでは、通知メモリ領域3c内のデータ取得要求メッセージのステータスをチェックすることで、データのコピーが完了しているか否かを判定することができる。   The task that requested the data can determine whether or not the data copy has been completed by checking the status of the data acquisition request message in the notification memory area 3c.

〈動作例〉
図5に、CPU1のセンサ入力タスクがセンサからデータの入力を行い、CPU2の噴射量決定タスクがセンサ入力タスクから水温及び空気温データを受け取って噴射量を決定する場合を例に、具体的な動作例を説明する。なお、各タスクが行う処理の内容自体はどのようなものであっても良いことは明らかであろう。
<Operation example>
FIG. 5 shows an example in which the sensor input task of the CPU 1 inputs data from the sensor, and the injection amount determination task of the CPU 2 receives the water temperature and air temperature data from the sensor input task and determines the injection amount. An operation example will be described. Obviously, the content of the processing performed by each task may be anything.

CPU2の噴射量決定タスクが、CPU1のセンサ入力タスクからデータを取得するために、データ取得要求メッセージを通知メモリ領域3cに書き込む。なお、図では1つのデータ取得要求メッセージのみが書き込まれているが、複数のデータを要求する場合には、1つのデータ取得要求メッセージで複数のデータを取得可能としても良いし、それぞれのデータについてデータ取得通知を書き込むこととしても良い。   The injection amount determination task of the CPU 2 writes a data acquisition request message in the notification memory area 3c in order to acquire data from the sensor input task of the CPU 1. In the figure, only one data acquisition request message is written. However, when a plurality of data is requested, a plurality of data can be acquired by one data acquisition request message. A data acquisition notification may be written.

CPU1のセンサ入力タスクでは、通知メモリ領域3cを参照して、自タスクに対するデータ取得要求が存在するか判定する。なお、この判定は、センサ入力タスクの処理、すなわちまとめて更新する必要のある水温及び空気温データを更新した後に行われる。CPU1のセンサ入力タスクは、通知メモリ領域3cにデータ取得要求メッセージがあるので、その通知の内容にしたがってアドレスS1に格納されたデータを、アドレスD1にコピーする。そして、データ取得要求メッセージのステータスを「処理完了」に更新する。   The sensor input task of the CPU 1 refers to the notification memory area 3c and determines whether there is a data acquisition request for its own task. This determination is made after the sensor input task processing, that is, after updating the water temperature and air temperature data that need to be updated together. Since the sensor input task of the CPU 1 has a data acquisition request message in the notification memory area 3c, the data stored in the address S1 is copied to the address D1 according to the content of the notification. Then, the status of the data acquisition request message is updated to “processing completed”.

データ取得の要求を出した噴射量決定タスク側では、適当なタイミングで通知メモリ領域3c内のデータ取得要求メッセージのステータスをチェックする。このステータスが「要求」のままである場合には、まだデータのコピーが行われていないことが分かるので、処理を続行しない。逆に、データ取得要求メッセージ内のステータスが「処理完了」となっている場合には、データのコピーが完了していることが分かるので、取得したデータ(アドレスD1のデータ)を参照して、処理を続行することができる。   The injection amount determination task that issued the data acquisition request checks the status of the data acquisition request message in the notification memory area 3c at an appropriate timing. If this status remains “Requested”, it can be seen that data has not yet been copied, so the processing is not continued. On the other hand, when the status in the data acquisition request message is “processing completed”, it can be seen that the data copy is complete, so referring to the acquired data (data at address D1), Processing can continue.

図6,7を参照して本実施形態によるデータ同期方法の利点について説明する。図6,7はいずれも、各処理のタイミングを表したタイミングチャートである。   The advantages of the data synchronization method according to the present embodiment will be described with reference to FIGS. 6 and 7 are timing charts showing the timing of each process.

図6の例では、CPU1がセンサからの入力データを更新中に、CPU2の噴射量決定タスクが水温及び空気温の取得を要求している。この時点では、CPU1のセンサ入力タスクは、ひとまとめで更新する必要のあるデータ更新を行っている最中なので、データ要求に対して応答しない。そして、水温及び空気温の両方の更新が終わった後で、CPU2の噴射量決定タスクからのデータ要求にしたがって、データのコピーを行う。そして、C
PU2側では、データ所得要求が完了されたことを検知したときには、噴射量決定タスクに割り当てられたメモリ領域内に、水温及び空気温のデータが更新されているので、これを用いて処理を続行することができる。
In the example of FIG. 6, while the CPU 1 is updating the input data from the sensor, the injection amount determination task of the CPU 2 requests acquisition of the water temperature and the air temperature. At this time, the sensor input task of the CPU 1 is not responding to the data request because it is in the process of updating data that needs to be updated all at once. Then, after both the water temperature and the air temperature are updated, data is copied according to the data request from the injection amount determination task of the CPU 2. And C
On the PU2 side, when it is detected that the data income request has been completed, the water temperature and air temperature data are updated in the memory area allocated to the injection amount determination task, and the processing is continued using this. can do.

このように、CPU1側では、ひとまとまりで更新する必要のあるデータを更新している最中にはデータコピーには対応せず、ひとまとまりの更新処理が終わった後でデータコピーを行うので、データの整合性を保証することができる。   In this way, the CPU 1 side does not support data copy while updating data that needs to be updated in one batch, and performs data copy after the batch update processing is completed. Data integrity can be guaranteed.

また、CPU2側のデータを要求したタスクの処理は、データのコピーが完了するまで待ち状態となるものの、要求を受けた側のタスクの処理はデータコピーの際にロック等を取得する処理を行わなくて良いので処理が簡潔で高速になる。また、データを要求した側のタスクは、通知メモリ領域内を参照するだけでデータの取得が完了しているか分かるので、処理が簡潔で高速になる。また、CPU2側でも、データを要求したタスクが待ち状態にある場合には、他のタスクを実行可能であるため、全体として並列性を損ねることがない。   In addition, while the process of the task that requested the data on the CPU 2 side is in a waiting state until the data copy is completed, the process of the task on the request side performs a process of acquiring a lock or the like at the time of data copy Since it is not necessary, the processing is simple and fast. Further, since the task that requested the data can know whether the data acquisition has been completed simply by referring to the notification memory area, the processing is simple and high-speed. On the CPU 2 side as well, when the task that requested data is in a waiting state, other tasks can be executed, so that the parallelism as a whole is not impaired.

次に、図7を例に説明する。図7の例では、データを要求した側のタスクが通知メモリ領域を参照してデータの取得が完了したか判断する時点で、データを要求された側のタスクは既にデータのコピーを完了しており、かつ、さらに新たなセンサ入力によってデータを更新している。このような場合であっても、CPU1側からCPU2側にデータのコピーが完了しているので、CPU1側で新たにデータを更新していても、CPU2側にはロック待ち等が発生せずにすぐに処理を継続することができる。   Next, FIG. 7 will be described as an example. In the example of FIG. 7, when the task that requested the data refers to the notification memory area to determine whether the data acquisition has been completed, the task that requested the data has already completed the data copy. In addition, data is updated by new sensor input. Even in such a case, copying of data from the CPU 1 side to the CPU 2 side has been completed. Therefore, even if data is newly updated on the CPU 1 side, no waiting for lock or the like occurs on the CPU 2 side. Processing can be continued immediately.

図7からも分かるように、データの取得を要求するタスクが取得完了を判定する時間間隔と、要求された側のデータ更新の時間間隔は異なっていても構わない。つまり、センサ入力タスク側では比較的頻繁にデータを更新し、噴射量決定タスクではデータ取得要求を出してからデータ取得完了をチェックするまで時間が空いても構わない。このような場合であっても、噴射量決定タスクがデータ取得を要求した時点でのデータが、噴射量決定タスクに割り当てられたメモリ領域にコピーされているので、データ取得要求を出したタイミングでの整合性の取れたデータを元に処理を継続することができる。   As can be seen from FIG. 7, the time interval at which a task that requests data acquisition determines completion of acquisition may be different from the time interval of data update on the requested side. In other words, the sensor input task side may update data relatively frequently, and the injection amount determination task may have time until the data acquisition completion is checked after the data acquisition request is issued. Even in such a case, the data at the time when the injection amount determination task requests data acquisition is copied to the memory area assigned to the injection amount determination task, so at the timing when the data acquisition request is issued. The processing can be continued based on the consistent data.

〈実施形態の作用/効果〉
本実施形態によれば、新たなハードウェア等を設けることなくソフトウェアによる処理によって、データの整合性を保証してプロセッサ間でデータの共有を行うことができる。ソフトウェアによる対応であるため、新たなハードウェアを設けることに伴う、コストの上昇や装置の大型化などの問題を招くことがない。
<Operation / Effect of Embodiment>
According to this embodiment, it is possible to guarantee data consistency and perform data sharing between processors by software processing without providing new hardware. Since it is supported by software, problems such as an increase in cost and an increase in the size of the apparatus caused by providing new hardware are not caused.

この際、データ要求中は要求する側のタスク(CPU)がメモリ領域にアクセスしないことで、要求された側のタスク(CPU)はロック処理を行わずに、データのコピー処理を実行することができる。また、データを要求する側のタスクは、通知メモリ領域内のステータスを見るだけでコピー完了か否かを判定しているので、ここでもロック処理は不要となる。つまり、ロック処理を用いることなくデータの共有を実行することができる。   At this time, the requesting task (CPU) does not access the memory area during the data request, so that the requested task (CPU) can execute the data copying process without performing the locking process. it can. Further, since the task requesting the data determines whether or not the copy is completed only by looking at the status in the notification memory area, the lock process is not necessary here either. That is, data sharing can be executed without using lock processing.

また、データのコピーを行っているため、データがコピーされた後であれば、データを要求した側のタスクは、いつでもそのデータを参照して処理を行うことができる。データを要求された側のタスクからすれば、要求されたデータをコピーしてしまえば、それ以上データ取得要求のことを気にする必要はなくなり、要求がタスクがコピーされたデータを参照しているか否かに関わりなく、自タスクに割り当てられたメモリ領域内でデータの更新を行うことが可能となる。   Further, since the data is copied, the task that requested the data can always refer to the data and perform processing after the data is copied. From the task on which the data is requested, if the requested data is copied, there is no need to worry about the data retrieval request any more, and the request refers to the data to which the task was copied. Regardless of whether it is present or not, data can be updated in the memory area allocated to the invoking task.

また、このようなデータ共有方法によれば、1つのプロセス/スレッドで、複数のデータ要求を同時に出すことが可能となる。各データの取得を順次行う方法では待ち時間が多大になり、複数のスレッドを生成する方法ではオーバヘッドが大きくなるが、本方法によれば1スレッド内で同時に要求ができるので、処理負荷や待ち時間が少ない高速な処理が実現できる。   Further, according to such a data sharing method, a plurality of data requests can be issued simultaneously by one process / thread. The method of sequentially acquiring each data increases the waiting time, and the method of generating a plurality of threads increases the overhead. However, according to this method, requests can be made simultaneously within one thread, so that the processing load and waiting time are increased. High-speed processing with less can be realized.

(第2の実施形態)
〈概要〉
第1の実施形態では、データを要求されたタスクが、各要求に対応してデータのコピー処理を実行している。ここで、図8に示すような状況を考える。図8Aでは、CPU2が実行している複数のタスクが、CPU1のタスクに対してデータ取得の要求を発行している。第1の実施形態に記載の方法では、図8Aに示す状況下では、各データ取得要求に対してCPU2が対応することになる。すなわち、CPU1が実行するタスクに割り当てられたメモリ領域から、CPU2が実行する各タスクに割り当てられた各メモリ領域へのコピー処理が複数回(図8Aでは3回)実行されることになる。
(Second Embodiment)
<Overview>
In the first embodiment, a task for which data is requested executes data copy processing in response to each request. Here, consider the situation as shown in FIG. In FIG. 8A, a plurality of tasks executed by the CPU 2 issue data acquisition requests to the tasks of the CPU 1. In the method described in the first embodiment, the CPU 2 responds to each data acquisition request under the situation illustrated in FIG. 8A. That is, the copy process from the memory area assigned to the task executed by the CPU 1 to each memory area assigned to each task executed by the CPU 2 is executed a plurality of times (three times in FIG. 8A).

あるタスクへの重複するデータ要求の数が多大になった場合、データを要求されたタスクでは要求数に応じた回数だけコピー処理を行わなければならず、処理負荷が過大になってしまう。そこで、図8B,Cに示すように、CPU1が実行するタスクは、CPU2が実行するタスクに対して1回だけコピー処理を実行する(図8B)ようにし、残りのデータ要求に対してはCPU2の中で各タスクに対してコピー処理を実行する(図8C)ことができれば、CPU1にデータ取得要求が集中した場合であっても過度な負荷がかかることを防止できる。   When the number of duplicate data requests to a certain task becomes large, the task for which data is requested must perform copy processing as many times as the number of requests, resulting in an excessive processing load. Therefore, as shown in FIGS. 8B and 8C, the task executed by the CPU 1 executes the copy process only once for the task executed by the CPU 2 (FIG. 8B), and the CPU 2 for the remaining data requests. If the copy process can be executed for each task (FIG. 8C), an excessive load can be prevented even when data acquisition requests are concentrated on the CPU 1.

上記のような仕組みを実現するために、データ取得要求メッセージ7の状態7aとして、新たに、同一CPUが実行するタスクが既に要求しているデータを重複して要求することを示す「重複要求」のステータスを新たに設ける。同じデータを要求しているので、コピー元アドレス7bは、重複した要求の間で同じものとなる。一方、コピー先アドレス7cは、データを要求したタスクに割り当てられている領域となるため相違する。   In order to realize the above-described mechanism, as the state 7a of the data acquisition request message 7, a “duplicate request” indicating that the task executed by the same CPU newly requests data already requested by the CPU is newly issued. A new status is provided. Since the same data is requested, the copy source address 7b is the same between duplicate requests. On the other hand, the copy destination address 7c is different because it is an area allocated to the task that requested the data.

〈処理フロー〉
図9を用いて、本実施形態におけるデータ共有方法の処理の流れを説明する。図9のフローチャートは、第1の実施形態におけるデータ共有方法のフローチャート(図4)のデータを要求する側としての処理(S1)に相当する部分だけ示している。データをコピーする側としての処理(S2)は、第1の実施形態と同じなので、図9では省略している。
<Processing flow>
The processing flow of the data sharing method in this embodiment will be described with reference to FIG. The flowchart of FIG. 9 shows only a part corresponding to the process (S1) as the data requesting side of the flowchart (FIG. 4) of the data sharing method in the first embodiment. Since the process (S2) as the data copy side is the same as that in the first embodiment, it is omitted in FIG.

第1の実施形態との違いは、ステップS12の後にステップS16〜S18が設けられている点と、ステップS15がステップS15−1,2,3に置き換えられている点である。   The difference from the first embodiment is that Steps S16 to S18 are provided after Step S12, and Step S15 is replaced with Steps S15-1, 2, and 3.

まず、ステップS16〜S18の処理について説明する。この処理は、同一データを重複して要求したCPU側で、データのコピーを行う処理(図8C)に相当する。   First, the processing of steps S16 to S18 will be described. This process corresponds to a process of copying data (FIG. 8C) on the CPU side that requests the same data repeatedly.

以前に要求したデータ取得要求メッセージのステータスが「処理完了」となっているものがあると判定され(S11−YES)、そのステータスを「要求無し」と書き換えた(S12)後に、通知メモリ領域内にこのデータ要求と重複したデータ要求があるか判定する(S16)。重複したデータ要求があるか否かは、通知メモリ領域内に、ステータスが「重複要求」であり、コピー元アドレスが一致する、データ取得要求メッセージが格納されているか否かで判断することができる。   It is determined that there is a data acquisition request message that has been requested with a status of “processing completed” (S11-YES), and the status is rewritten as “no request” (S12), and then in the notification memory area It is determined whether there is a data request that overlaps this data request (S16). Whether or not there is a duplicate data request can be determined by whether or not a data acquisition request message having a status of “duplicate request” and a matching copy source address is stored in the notification memory area. .

なお、3つ以上のプロセッサを有するマルチプロセッサシステムの場合は、同一のプロセッサの別タスクが同じデータを要求しているか否かを判断する必要がある。これは、コピー元アドレスが一致し、かつ、コピー先アドレスが同一プロセッサに割り当てられた割当領域内のアドレスであるデータ取得要求メッセージが、通知メモリ領域内に存在するか調べることで実現可能である。   In the case of a multiprocessor system having three or more processors, it is necessary to determine whether another task of the same processor requests the same data. This can be realized by checking whether a data acquisition request message in which the copy source address matches and the copy destination address is an address in the allocation area allocated to the same processor exists in the notification memory area. .

そして、重複するデータ取得要求がある場合(S16−YES)には、自プロセッサに割り当てられて領域内でデータのコピー処理を行う(S17)(図8Cに相当)。そして、重複要求のデータ取得要求メッセージのステータスを「処理完了」に更新する(S18)。   If there is an overlapping data acquisition request (S16-YES), the data is copied in the area assigned to the own processor (S17) (corresponding to FIG. 8C). Then, the status of the duplicate request data acquisition request message is updated to “processing completed” (S18).

次に、ステップS15−1〜3の処理について説明する。この処理は、データ取得要求メッセージを通知メモリ領域に書き込む際に、重複した要求であるか否かを判定し、重複した要求である場合はその旨が判断できるメッセージを通知メモリ領域に書き込む処理である。   Next, the process of steps S15-1 to S15-3 will be described. This process determines whether or not there is a duplicate request when writing a data acquisition request message to the notification memory area. If it is a duplicate request, this process writes a message that can be determined to that effect to the notification memory area. is there.

他のCPUのデータが必要と判定された場合(S14−YES)のデータ取得要求の書き込み時には、通知メモリ領域3cを確認して、同一プロセッサが実行する他のタスクが、同じデータに対する要求を既に発行しているか否かを判定する(S15−1)。同一データに対する要求が既に存在するか否かは、通知メモリ領域3c内に、コピー元アドレス7bが一致する要求が既に存在するか否かで判断することができる。   When the data acquisition request is written when it is determined that data of another CPU is necessary (S14-YES), the notification memory area 3c is checked, and another task executed by the same processor has already made a request for the same data. It is determined whether or not it is issued (S15-1). Whether or not a request for the same data already exists can be determined by whether or not a request with the same copy source address 7b already exists in the notification memory area 3c.

同一データに対する要求が存在しない場合(S15−1−NO)は、ステータスが「要求」であるデータ取得要求メッセージを通知メモリ領域3c内に格納する(S15−2)。一方、同一データに対する要求がすでに存在する場合(S15−1−YES)は、ステータスが「重複要求」であるデータ取得要求メッセージを通知メモリ領域3c内に格納する(S15−3)。   When there is no request for the same data (S15-1-NO), a data acquisition request message whose status is “Request” is stored in the notification memory area 3c (S15-2). On the other hand, if a request for the same data already exists (S15-1-YES), a data acquisition request message whose status is “duplicate request” is stored in the notification memory area 3c (S15-3).

〈動作例1〉
図10に、CPU1が車輪速データタスクがセンサからデータの入力を行い、CPU2のABS制御タスク及びカーナビタスクが、それぞれ車輪速データを受け取って処理を行う場合を例に、具体的な動作例を説明する。なお、各タスクが行う処理の内容自体はどのようなものであっても良いことは明らかであろう。
<Operation example 1>
FIG. 10 shows a specific operation example in the case where the CPU 1 inputs data from the sensor in the wheel speed data task, and the ABS control task and the car navigation task of the CPU 2 receive and process the wheel speed data, respectively. explain. Obviously, the content of the processing performed by each task may be anything.

まず、ABS制御タスクが、車輪速データを要求するデータ取得要求メッセージAを通知メモリ領域3cに書き込む。ここでは、重複するデータ取得要求は存在しないので、データ取得要求メッセージAのステータス7aは「要求」となる。また、コピー元アドレス7bはS1、コピー先アドレス7cはD1とする。   First, the ABS control task writes a data acquisition request message A for requesting wheel speed data in the notification memory area 3c. Here, since there is no duplicate data acquisition request, the status 7a of the data acquisition request message A is “request”. The copy source address 7b is S1, and the copy destination address 7c is D1.

次に、カーナビタスクが、同様に車輪速データを要求するデータ取得要求メッセージBを通知メモリ3cに書き込む。ここでは、既にABS制御タスクが同一データに対する要求Aを発行しているので、データ取得要求メッセージBのステータス7aは「重複要求」となる。また、コピー元アドレス7bはABS制御タスクの要求Aと同じくS1であり、コピー先アドレス7cは自タスクのメモリ領域内のアドレスとなるのでD2となりABS制御タスクの要求Aとは異なる。   Next, the car navigation task similarly writes a data acquisition request message B requesting wheel speed data to the notification memory 3c. Here, since the ABS control task has already issued a request A for the same data, the status 7a of the data acquisition request message B is “duplicate request”. Further, the copy source address 7b is S1 as in the ABS control task request A, and the copy destination address 7c is an address in the memory area of the own task, so becomes D2 and is different from the ABS control task request A.

CPU1の車輪速データ取得タスクが、通知メモリ領域3cを参照して、自タスクの目メモリ領域内のデータに対する取得要求があるかチェックする。このとき、ステータスが「要求」と「重複要求」の2つのデータ取得要求A,Bが通知されていることが分かるが、車輪速データ取得タスク側では、ステータスが「要求」であるデータ取得要求メッセー
ジAのみに対応する。すなわち、アドレスS1に格納されているデータを、アドレスD1のみにコピーする。そして、対応したデータ取得要求メッセージAのステータスを「処理完了」に更新する。
The wheel speed data acquisition task of the CPU 1 refers to the notification memory area 3c and checks whether there is an acquisition request for data in the eye memory area of its own task. At this time, it can be seen that the two data acquisition requests A and B with the status “request” and “duplicate request” are notified, but the wheel speed data acquisition task side has the data acquisition request with the status “request”. Only message A is supported. That is, the data stored at the address S1 is copied only to the address D1. Then, the status of the corresponding data acquisition request message A is updated to “processing completed”.

次に、ABS制御タスクが、通知メモリ領域3cを参照して、自タスクが要求したデータ取得要求が処理されたか判定する。データ取得要求のステータスが「処理完了」となっていることから、データの取得が完了していることが分かる。そして、ABS制御タスクは、重複するデータ取得要求メッセージBが存在することも分かるので、CPU2に割り当てられて領域内でメモリのコピー(D1からD2へ)を行う。そして、データ取得要求メッセージAのステータスを「要求無し」に、データ取得要求メッセージBのステータスを「処理完了」に更新する。そして、ABS制御タスクは、アドレスD1にコピーされたデータを参照して処理を行う。   Next, the ABS control task refers to the notification memory area 3c and determines whether the data acquisition request requested by the own task has been processed. Since the status of the data acquisition request is “processing completed”, it is understood that the data acquisition is completed. Since the ABS control task also knows that there is a duplicate data acquisition request message B, it is assigned to the CPU 2 and copies the memory (from D1 to D2) within the area. Then, the status of the data acquisition request message A is updated to “no request”, and the status of the data acquisition request message B is updated to “processing completed”. Then, the ABS control task performs processing with reference to the data copied to the address D1.

カーナビタスクが通知メモリ領域3cを参照するときには、自タスクが要求したデータ取得要求メッセージBのステータスが「処理完了」となっていることから、このステータスを「要求無し」に変更し、アドレスD2にコピーされたデータを参照して処理を行う。   When the car navigation task refers to the notification memory area 3c, the status of the data acquisition request message B requested by its own task is “processing completed”, so this status is changed to “no request” and the address D2 is set. Processing is performed with reference to the copied data.

〈動作例2〉
上記の動作例では、先に要求を出したABS制御タスクがCPU2内でのコピーを行っているが、CPU1に要求したデータがCPU2にコピーされたことを最も先に検知したタスクがCPU2への割り当てメモリ領域内でのコピーを行えばよい。ここでは、後から要求を出したカーナビタスクがCPU2への割り当てメモリ領域内でのコピー処理を実行する動作例を図11を参照して説明する。
<Operation example 2>
In the above operation example, the ABS control task that issued the request first performs copying in the CPU 2, but the task that first detected that the data requested by the CPU 1 has been copied to the CPU 2 is transferred to the CPU 2. Copying within the allocated memory area may be performed. Here, an example of an operation in which a car navigation task that issues a request later executes a copy process in the memory area allocated to the CPU 2 will be described with reference to FIG.

ABS制御タスク及びカーナビタスクがデータ取得要求を通知メモリ領域内に格納し、車輪速取得タスクが要求されたデータのコピー(S1からD1へ)を行うところまでの処理は上記動作例1と同じであるため、説明を省略する。   The process until the ABS control task and the car navigation task store the data acquisition request in the notification memory area and the wheel speed acquisition task copies the requested data (from S1 to D1) is the same as the operation example 1 described above. Therefore, the description is omitted.

ここで、データ取得要求メッセージAのステータスが「処理完了」となっていることから、CPU間でのコピー処理が完了していることが分かる。そこで、CPU2の割り当てメモリ領域内でデータのコピー(D1からD2へ)行い、データ取得要求メッセージBのステータスを「要求無し」に更新する。そして、カーナビタスクは、アドレスD2にコピーされたデータを参照して処理を行う。   Here, since the status of the data acquisition request message A is “processing completed”, it can be seen that the copying process between the CPUs is completed. Therefore, data is copied (from D1 to D2) in the allocated memory area of the CPU 2, and the status of the data acquisition request message B is updated to “no request”. The car navigation task performs processing with reference to the data copied to the address D2.

ABS制御タスクが通知メモリ領域3cを参照するときには、自タスクが要求したデータ取得要求メッセージAのステータスが「処理完了」となっていることから、このステータスを「要求無し」に変更し、アドレスD1にコピーされたデータを参照して処理を行う。なお、ABS制御タスクが通知メモリ領域3cを参照するタイミングでは、データ取得要求メッセージBのステータスは「重複要求」ではなくなっているので、動作例1で行ったようなコピー処理をABS制御タスクは行わない。   When the ABS control task refers to the notification memory area 3c, the status of the data acquisition request message A requested by its own task is “processing completed”, so this status is changed to “no request” and the address D1 The processing is performed with reference to the data copied to. Since the status of the data acquisition request message B is no longer “duplicate request” at the timing when the ABS control task refers to the notification memory area 3c, the ABS control task performs the copy processing as performed in the operation example 1. Absent.

〈実施例の作用/効果〉
本実施形態に係る方法によれば、同じCPUの複数のタスクから、同一のデータに対して複数の要求があった場合に、要求された側のCPUの処理負荷を軽減することが可能となる。
<Operation / Effect of Example>
According to the method according to the present embodiment, when there are a plurality of requests for the same data from a plurality of tasks of the same CPU, it is possible to reduce the processing load of the requested CPU. .

(変形例)
上記の説明では、メモリ通知領域を介したメッセージ交換を、データ取得要求メッセージのステータス領域を書き換えることによって行っているが、他の方法によるメッセージ交換を行っても良い。例えば、コピー処理の完了を通知する場合に、その旨を通知するメ
ッセージを新たに通知メモリ領域に書き込んでも構わない。
(Modification)
In the above description, message exchange via the memory notification area is performed by rewriting the status area of the data acquisition request message, but message exchange by other methods may be performed. For example, when notifying the completion of copy processing, a message notifying that may be newly written in the notification memory area.

また、上記の説明では、2つのCPUを有する構成を例に説明したが、図12に示すようなCPUの数が3つ以上の場合であっても、同様の方法によりプロセッサ間でデータ共有を行うことができる。   In the above description, the configuration having two CPUs has been described as an example. However, even when the number of CPUs is three or more as shown in FIG. It can be carried out.

なお、この場合もメモリ3の領域は各CPU毎に領域が割り当てられているので、データ取得要求メッセージのコピー元アドレスやコピー先アドレスを参照することで、どのCPUに係るタスクのデータに対する取得要求であるかや、どのCPUに係るタスクがデータの取得を要求しているかなどを判断することができる。   In this case as well, since the area of the memory 3 is allocated to each CPU, the acquisition request for the task data related to which CPU can be obtained by referring to the copy source address or the copy destination address of the data acquisition request message. And which CPU task requests data acquisition.

また、図13に示すように、1つのCPUが複数のプロセッサコアを有しているマルチコアCPUであっても、プロセッサコア間でのデータ同期が行える。この場合、各プロセッサコアが本発明のプロセッサに相当する。   As shown in FIG. 13, even if a single CPU is a multi-core CPU having a plurality of processor cores, data synchronization can be performed between the processor cores. In this case, each processor core corresponds to the processor of the present invention.

第1及び第2の実施形態におけるシステム構成を表す概要図である。It is a schematic diagram showing the system configuration in 1st and 2nd embodiment. 通知メモリ領域のメモリ構造を示す図である。It is a figure which shows the memory structure of a notification memory area. データ取得要求メッセージのフォーマットを示す図である。It is a figure which shows the format of a data acquisition request message. 第1の実施形態における、プロセッサ間でデータ交換を行う際の処理の流れを示すフローチャートである。5 is a flowchart illustrating a flow of processing when data is exchanged between processors in the first embodiment. 第1の実施形態におけるプロセッサ間でのデータ交換処理を説明する図である。It is a figure explaining the data exchange process between the processors in 1st Embodiment. 第1の実施形態におけるプロセッサ間でのデータ交換処理を説明する図である。It is a figure explaining the data exchange process between the processors in 1st Embodiment. 第1の実施形態におけるプロセッサ間でのデータ交換処理を説明する図である。It is a figure explaining the data exchange process between the processors in 1st Embodiment. 第2の実施形態におけるプロセッサ間でのデータ交換処理を説明する図である。It is a figure explaining the data exchange process between the processors in 2nd Embodiment. 第2の実施形態における、プロセッサ間でデータ交換を行う際の処理の流れを示すフローチャートである。It is a flowchart which shows the flow of a process at the time of exchanging data between processors in 2nd Embodiment. 第2の実施形態におけるプロセッサ間でのデータ交換処理を説明する図である。It is a figure explaining the data exchange process between the processors in 2nd Embodiment. 第2の実施形態におけるプロセッサ間でのデータ交換処理を説明する図である。It is a figure explaining the data exchange process between the processors in 2nd Embodiment. 変形例に係るシステム構成を表す概要図である。It is a schematic diagram showing the system configuration | structure which concerns on a modification. 変形例に係るシステム構成を表す概要図である。It is a schematic diagram showing the system configuration | structure which concerns on a modification.

符号の説明Explanation of symbols

1,2 CPU
3 メモリ(RAM)
1, 2 CPU
3 Memory (RAM)

Claims (10)

第1のプロセッサと、
第2のプロセッサと、
第1及び第2のプロセッサが共通してアクセス可能な共有メモリであって、第1のプロセッサに割り当てられた第1のメモリ領域と、第2のプロセッサに割り当てられた第2のメモリ領域と、通知メモリ領域とを有する共有メモリと、
を備えるマルチプロセッサシステムにおけるデータ同期方法であって、
第1のプロセッサが、第2のメモリ領域内のデータを要求するデータ取得要求を通知メモリ領域に書き込むステップと、
第2のプロセッサが、第2のメモリ領域内のデータを要求するデータ取得要求が通知メモリ領域内に存在するか監視し、データ取得要求が存在する場合は、要求されたデータを第2のメモリ領域から第1のメモリ領域にコピーするとともにコピーが完了したことを通知する完了通知を通知メモリ領域に書き込むステップと、
第1のプロセッサが、要求したデータについての完了通知が通知メモリ領域に存在するか監視し、完了通知が存在する場合は、第1のメモリ領域にコピーされたデータに基づいて処理を行うステップと、
を含むことを特徴とするマルチプロセッサシステムにおけるデータ同期方法。
A first processor;
A second processor;
A shared memory accessible in common by the first and second processors, a first memory area allocated to the first processor, a second memory area allocated to the second processor, A shared memory having a notification memory area;
A data synchronization method in a multiprocessor system comprising:
A first processor writing a data acquisition request for requesting data in the second memory area into the notification memory area;
The second processor monitors whether a data acquisition request for requesting data in the second memory area exists in the notification memory area, and if there is a data acquisition request, the requested data is stored in the second memory. Copying from the area to the first memory area and writing a completion notification in the notification memory area to notify that the copying is completed;
The first processor monitors whether a completion notification for the requested data exists in the notification memory area, and if there is a completion notification, performs processing based on the data copied to the first memory area; ,
A data synchronization method in a multiprocessor system, comprising:
通知メモリ領域に書き込まれるデータ取得要求には、データ取得要求処理の処理状況を格納するステータス領域が含まれており、
第1のプロセッサによるデータ取得要求の書き込みは、データ取得を要求している状態であることを示すステータスを含むデータ取得要求を通知メモリ領域に書き込むことによって行われ、
第2のプロセッサによる完了通知の書き込みは、前記データ取得要求のステータス領域をコピー完了であることを示すステータスに書き換えることによって行われる、
ことを特徴とする請求項1に記載のマルチプロセッサシステムにおけるデータ同期方法。
The data acquisition request written to the notification memory area includes a status area for storing the processing status of the data acquisition request process.
The data acquisition request is written by the first processor by writing a data acquisition request including a status indicating that data acquisition is requested in the notification memory area.
Writing of the completion notification by the second processor is performed by rewriting the status area of the data acquisition request to a status indicating that copying is complete.
The data synchronization method in a multiprocessor system according to claim 1.
第2のプロセッサによる要求されたデータのコピーは、該データの整合性が取れているタイミングで実行される
ことを特徴とする請求項1又は2に記載のマルチプロセッサシステムにおけるデータ同期方法。
3. The data synchronization method in a multiprocessor system according to claim 1, wherein the copy of the requested data by the second processor is executed at a timing when the consistency of the data is taken.
第1及び第2のプロセッサは各々複数のタスクを実行するものであり、
タスクの実行コードと該タスクが使用するデータは、該タスクを実行するプロセッサに対応するメモリ領域内の、タスク毎に割り当てられた領域に格納されており、
データ取得の要求は、データを要求するタスク毎に実行されるものであり、
要求されたデータのコピーは、要求されたデータに対応するタスクの処理内で実行される
ことを特徴とする請求項1〜3のいずれかに記載のマルチプロセッサシステムにおけるデータ同期方法。
The first and second processors each execute a plurality of tasks.
The task execution code and the data used by the task are stored in an area allocated for each task in the memory area corresponding to the processor that executes the task.
Data acquisition requests are executed for each task that requests data.
The data synchronization method in the multiprocessor system according to any one of claims 1 to 3, wherein the requested data copy is executed within a process of a task corresponding to the requested data.
第1のプロセッサのあるタスクが第2のメモリ領域のデータを要求する際に、第1のプロセッサの別のタスクが同一のデータを既に要求している場合には、重複した要求であることを示したデータ取得要求を通知メモリ領域に書き込み、
第2のプロセッサは、同一データに対して第1のプロセッサの複数のタスクからデータ取得の要求がある場合には、複数のデータ取得要求のうちのいずれかのデータ取得要求が要求するコピー先に該データをコピーするとともに、該データ取得要求のコピーが完了したことを通知する完了通知を通知メモリ領域に格納し、
第1のプロセッサが、要求したデータについての完了通知が通知メモリ領域内に存在するか監視し、完了通知が存在する場合には、同一のデータを要求している他のデータ取得要求が要求するコピー先に該データのコピーを行うとともに、当該他のデータ取得要求のコピーが完了したことを通知メモリ領域に書き込む
ことを特徴とする請求項4に記載のマルチプロセッサシステムにおけるデータ同期方法。
When a task in the first processor requests data in the second memory area, if another task in the first processor has already requested the same data, this is a duplicate request. Write the indicated data acquisition request to the notification memory area,
When there is a data acquisition request from a plurality of tasks of the first processor for the same data, the second processor sets the copy destination requested by any one of the plurality of data acquisition requests. Copying the data and storing a completion notification for notifying that the copy of the data acquisition request is completed in the notification memory area,
The first processor monitors whether a completion notification for the requested data exists in the notification memory area, and if a completion notification exists, another data acquisition request requesting the same data requests. 5. The data synchronization method in the multiprocessor system according to claim 4, wherein the data is copied to a copy destination, and the copy of the other data acquisition request is written to the notification memory area.
複数のプロセッサと、
前記複数のプロセッサが共通してアクセス可能な共有メモリであって、各プロセッサに割り当てられたメモリ領域及び通知メモリ領域を有する共有メモリと、
を備えるマルチプロセッサシステムであって、
各プロセッサが、
他のプロセッサに割り当てられたメモリ領域内のデータを要求するデータ取得要求を通知メモリ領域に書き込むデータ取得要求手段と、
自プロセッサに割り当てられたメモリ領域内のデータを要求するデータ取得要求が通知メモリ領域内に存在するか監視し、データ取得要求が存在する場合は、要求されたデータを要求元のプロセッサに割り当てられたメモリ領域内にコピーするとともに、コピーが完了したことを通知する完了通知を通知メモリ領域に書き込むデータコピー手段と、
自プロセッサが要求したデータ取得要求の完了通知が通知メモリ領域に存在するか監視し、完了通知が存在する場合は、自プロセッサに割り当てられたメモリ領域にコピーされたデータに基づいて処理を行うデータ処理手段と、
を備えることを特徴とするマルチプロセッサシステム。
Multiple processors,
A shared memory accessible by the plurality of processors in common, the shared memory having a memory area and a notification memory area allocated to each processor;
A multiprocessor system comprising:
Each processor
A data acquisition request means for writing a data acquisition request for requesting data in a memory area allocated to another processor into the notification memory area;
Monitors whether there is a data acquisition request in the notification memory area that requests data in the memory area allocated to its own processor. If a data acquisition request exists, the requested data is allocated to the requesting processor. A data copy means for copying into the memory area and writing a completion notification for notifying that the copying is completed to the notification memory area;
Data that monitors whether the completion notification of the data acquisition request requested by its own processor exists in the notification memory area, and if there is a completion notification, performs data processing based on the data copied to the memory area allocated to its own processor Processing means;
A multiprocessor system comprising:
通知メモリ領域に書き込まれるデータ取得要求には、データ取得要求処理の処理状況を格納するステータス領域が含まれており、
前記データ取得要求手段は、データ取得を要求している状態であることを示すステータスを含むデータ取得要求を通知メモリ領域に書き込み、
前記データコピー手段が行う完了通知の書き込み処理は、通知メモリ領域に書き込まれたデータ取得要求のステータス領域をコピー完了であることを示すステータスに書き換えることによって行われる、
ことを特徴とする請求項6に記載のマルチプロセッサシステム。
The data acquisition request written to the notification memory area includes a status area for storing the processing status of the data acquisition request process.
The data acquisition request means writes a data acquisition request including a status indicating that data acquisition is requested in a notification memory area,
The completion notification writing process performed by the data copying means is performed by rewriting the status area of the data acquisition request written in the notification memory area to a status indicating that the copying is completed.
The multiprocessor system according to claim 6.
前記データコピー手段は、要求されたデータの整合性が取れているタイミングで、要求されたデータのコピーを実行する
ことを特徴とする請求項6又は7に記載のマルチプロセッサシステム。
8. The multiprocessor system according to claim 6, wherein the data copying unit executes the copying of the requested data at a timing when the requested data is consistent.
各プロセッサは、各々複数のタスクを実行するものであり、
タスクの実行コードと該タスクが使用するデータは、各プロセッサに対応するメモリ領域内の、タスク毎に割り当てられた領域に格納されており、
データ取得の要求は、データを要求するタスク毎に実行されるものであり、
要求されたデータのコピーは、要求されたデータに対応するタスクの処理内で実行される
ことを特徴とする請求項6〜8のいずれかに記載のマルチプロセッサシステム。
Each processor performs a plurality of tasks,
The task execution code and the data used by the task are stored in an area allocated for each task in the memory area corresponding to each processor.
Data acquisition requests are executed for each task that requests data.
The multiprocessor system according to any one of claims 6 to 8, wherein the requested data copy is executed in a process of a task corresponding to the requested data.
前記データ取得要求手段は、あるタスクが他のプロセッサに割り当てられたメモリ領域内のデータを要求する際に、別のタスクが同一データを要求している場合には、重複した要求であることを示したデータ取得要求を通知メモリ領域に書き込み、
前記データコピー手段は、同一データに対して同一プロセッサの複数のタスクからデータ取得の要求がある場合には、複数のデータ取得要求のうちのいずれかのデータ取得要求が要求するコピー先に該データをコピーするとともに、該データ取得要求のコピーが完了
したことを通知する完了通知を通知メモリ領域に格納し、
データ処理手段は、要求したデータについての完了通知が通知メモリ領域内に存在するか監視し、完了通知が存在する場合には、同一のデータを要求している他のデータ取得要求が要求するコピー先に該データのコピーを行うとともに、当該他のデータ取得要求のコピーが完了したことを通知メモリ領域に書き込む
ことを特徴とする請求項9に記載のマルチプロセッサシステム。
The data acquisition request unit is a duplicate request when another task requests the same data when a task requests data in a memory area allocated to another processor. Write the indicated data acquisition request to the notification memory area,
When there is a data acquisition request from a plurality of tasks of the same processor for the same data, the data copy means sends the data to the copy destination requested by any one of the plurality of data acquisition requests. And a completion notification for notifying that the copy of the data acquisition request has been completed is stored in the notification memory area,
The data processing means monitors whether or not a completion notification for the requested data exists in the notification memory area, and if there is a completion notification, the copy requested by another data acquisition request that requests the same data The multiprocessor system according to claim 9, wherein the data is copied first, and the copy of the other data acquisition request is written to the notification memory area.
JP2008062946A 2008-03-12 2008-03-12 Data synchronization method and multiprocessor system in multiprocessor system Expired - Fee Related JP5213485B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008062946A JP5213485B2 (en) 2008-03-12 2008-03-12 Data synchronization method and multiprocessor system in multiprocessor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008062946A JP5213485B2 (en) 2008-03-12 2008-03-12 Data synchronization method and multiprocessor system in multiprocessor system

Publications (2)

Publication Number Publication Date
JP2009217721A true JP2009217721A (en) 2009-09-24
JP5213485B2 JP5213485B2 (en) 2013-06-19

Family

ID=41189469

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008062946A Expired - Fee Related JP5213485B2 (en) 2008-03-12 2008-03-12 Data synchronization method and multiprocessor system in multiprocessor system

Country Status (1)

Country Link
JP (1) JP5213485B2 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101950282A (en) * 2010-08-30 2011-01-19 中国科学院计算技术研究所 Multiprocessor system and synchronous engine thereof
US8683251B2 (en) 2010-10-15 2014-03-25 International Business Machines Corporation Determining redundancy of power feeds connecting a server to a power supply
US8688885B2 (en) 2010-04-13 2014-04-01 Samsung Electronics Co., Ltd. Hardware acceleration apparatus, method and computer-readable medium efficiently processing multi-core synchronization
JP2017111491A (en) * 2015-12-14 2017-06-22 日立オートモティブシステムズ株式会社 Electronic controller
CN110389772A (en) * 2018-04-23 2019-10-29 中车株洲电力机车研究所有限公司 Double-core MCU application program updating method
US11836547B2 (en) 2017-09-27 2023-12-05 Hitachi Astemo, Ltd. Data transmission device including shared memory having exclusive bank memories for writing and reading

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07234850A (en) * 1994-02-24 1995-09-05 Mitsubishi Electric Corp Device and method for multiprocessor system
JP2006309512A (en) * 2005-04-28 2006-11-09 Nec Electronics Corp Multiprocessor system, and message transmission method for multiprocessor system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07234850A (en) * 1994-02-24 1995-09-05 Mitsubishi Electric Corp Device and method for multiprocessor system
JP2006309512A (en) * 2005-04-28 2006-11-09 Nec Electronics Corp Multiprocessor system, and message transmission method for multiprocessor system

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8688885B2 (en) 2010-04-13 2014-04-01 Samsung Electronics Co., Ltd. Hardware acceleration apparatus, method and computer-readable medium efficiently processing multi-core synchronization
CN101950282A (en) * 2010-08-30 2011-01-19 中国科学院计算技术研究所 Multiprocessor system and synchronous engine thereof
US8683251B2 (en) 2010-10-15 2014-03-25 International Business Machines Corporation Determining redundancy of power feeds connecting a server to a power supply
JP2017111491A (en) * 2015-12-14 2017-06-22 日立オートモティブシステムズ株式会社 Electronic controller
US11836547B2 (en) 2017-09-27 2023-12-05 Hitachi Astemo, Ltd. Data transmission device including shared memory having exclusive bank memories for writing and reading
CN110389772A (en) * 2018-04-23 2019-10-29 中车株洲电力机车研究所有限公司 Double-core MCU application program updating method
CN110389772B (en) * 2018-04-23 2022-12-13 中车株洲电力机车研究所有限公司 Dual-core MCU application program upgrading method

Also Published As

Publication number Publication date
JP5213485B2 (en) 2013-06-19

Similar Documents

Publication Publication Date Title
EP3353673B1 (en) On-chip atomic transaction engine
JP3974597B2 (en) Method for providing atomic update primitives in an asymmetric heterogeneous multiprocessor environment
TWI423161B (en) Graphics processing units, metacommand processing systems and metacommand executing methods
US9690737B2 (en) Systems and methods for controlling access to a shared data structure with reader-writer locks using multiple sub-locks
JP4568292B2 (en) Method, apparatus, program, and information processing system for executing cache line polling
JP5213485B2 (en) Data synchronization method and multiprocessor system in multiprocessor system
US20120110303A1 (en) Method for Process Synchronization of Embedded Applications in Multi-Core Systems
JP4566264B2 (en) Method, system, apparatus, and program for performing cache line polling by cross-referencing with related applications using store and reserve instructions
JP2006185348A (en) Multiprocessor system and method for operating lock flag
JP2008033893A (en) Multiprocessor system and access right setting method in multiprocessor system
JP2012043031A (en) Shared cache memory device
JP4419943B2 (en) Data transfer device between CPUs
JP5254710B2 (en) Data transfer device, data transfer method and processor
JP7346649B2 (en) Synchronous control system and method
JP4734348B2 (en) Asynchronous remote procedure call method, asynchronous remote procedure call program and recording medium in shared memory multiprocessor
CN114356839B (en) Method, device, processor and device readable storage medium for processing write operation
JP2007102447A (en) Arithmetic processor
JP5163128B2 (en) Procedure calling method, procedure calling program, recording medium, and multiprocessor in shared memory multiprocessor
JP2007241601A (en) Multiprocessor system
JP2010026575A (en) Scheduling method, scheduling device, and multiprocessor system
JP4388557B2 (en) Image processing system
JPH09218859A (en) Multiprocessor control system
JPH01106158A (en) Control system for inter-processor data communication
CN116685958A (en) Method and device for accessing data
JP2006285719A (en) Information processor and information processing method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101008

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130123

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130226

R150 Certificate of patent or registration of utility model

Ref document number: 5213485

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160308

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees