JP2013125305A - マルチプロセッサ装置 - Google Patents
マルチプロセッサ装置 Download PDFInfo
- Publication number
- JP2013125305A JP2013125305A JP2011272187A JP2011272187A JP2013125305A JP 2013125305 A JP2013125305 A JP 2013125305A JP 2011272187 A JP2011272187 A JP 2011272187A JP 2011272187 A JP2011272187 A JP 2011272187A JP 2013125305 A JP2013125305 A JP 2013125305A
- Authority
- JP
- Japan
- Prior art keywords
- task
- cache
- processing
- executed
- tasks
- 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
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【課題】周期的に起動するタスクを実行する際に、適切なタイミングでキャッシュ同期を行うマルチプロセッサ装置を提供する。
【解決手段】第1のプロセッサ10と第2のプロセッサ20のうち少なくとも一方は、周期的に起動される定周期タスクのうち予め定められた特定の定周期タスクの組を連続して実行する際に、特定の定周期タスクの組のうち先に実行される定周期タスクに関する処理結果を自己の専用キャッシュメモリから共有メモリにコピーし、第1のプロセッサ10と第2のプロセッサ20のうち少なくとも他方は、定周期タスクを実行する際に、実行する定周期タスクの前回の処理が自己により行われなかった場合に、自己の専用キャッシュメモリに代えて共有メモリに格納された処理結果を用いて処理を行うように切り替えるマルチプロセッサ装置。
【選択図】図2
【解決手段】第1のプロセッサ10と第2のプロセッサ20のうち少なくとも一方は、周期的に起動される定周期タスクのうち予め定められた特定の定周期タスクの組を連続して実行する際に、特定の定周期タスクの組のうち先に実行される定周期タスクに関する処理結果を自己の専用キャッシュメモリから共有メモリにコピーし、第1のプロセッサ10と第2のプロセッサ20のうち少なくとも他方は、定周期タスクを実行する際に、実行する定周期タスクの前回の処理が自己により行われなかった場合に、自己の専用キャッシュメモリに代えて共有メモリに格納された処理結果を用いて処理を行うように切り替えるマルチプロセッサ装置。
【選択図】図2
Description
本発明は、複数のプロセッサが独立して処理を行うことが可能なマルチプロセッサ装置に関する。
従来、複数のプロセッサを備えるマルチプロセッサ装置が実用化されている。マルチプロセッサ装置では、プロセッサ間で共有される共有メモリ(共有RAM、共有キャッシュメモリ等)の他、各プロセッサに専用キャッシュメモリを付随させる場合がある。
通常、専用キャッシュメモリへのアクセスは、共有メモリへのアクセスに比して高速に行うことが可能であるため、プロセッサ内で完結した処理の結果については専用キャッシュメモリに格納する処理方式が採用される。
一方、複数のプロセッサで構成されるSMP(Symmetric Multiprocessing)環境下で処理が行われる場合等、プロセッサ間で共通したタスクを実行する可能性がある場合には、プロセッサが処理を行った結果を、必要に応じて専用キャッシュメモリから共有キャッシュメモリ等の下位メモリに移す処理(キャッシュ同期)が必要となる。
キャッシュ同期の手法としては、ライトスルー方式と、ライトバック方式が知られている。ライトスルー方式とは、キャッシュメモリに書き込むと同時に下位メモリにも書き込む方式である。また、ライトバック方式とは、原則としてキャッシュメモリに対してのみ書き込みを行い、キャッシュの追い出しが必要になった時点でキャッシュメモリの内容を下位メモリに書き込む方式である。
ライトバック方式に関連し、特許文献1には、複数のプロセッサと、各プロセッサに付随する複数のキャッシュメモリと、記憶装置と、キャッシュメモリと記憶装置間を相互に接続する結合網から成る情報処理装置について記載されている。この情報処理装置では、各プロセッサの処理が予め定めた段階に達した時点でのみ、付随するキャッシュメモリ中に存在するデータ・ブロックを記憶装置に同期させている。
上記ライトスルー方式を採用した場合、書き込みの度に下位メモリにアクセスする必要があるため、処理全体が遅延するという不都合が生じ得る。
また、上記ライトバック方式を採用した場合、下位メモリにキャッシュメモリの内容が書き込まれるタイミングが、必ずしもキャッシュ同期が必要なタイミングとなるとは限らないという課題が存在する。この点は、上記特許文献1に記載の装置でも同様である。特に、上記SMP環境下では、タスクの割り振りを制御するRTOS(Real‐Time Operating System)が、プロセッサの負荷状態を考慮してタスクを割り振るため、予め定められたキャッシュ同期のタイミングとタスクの割り振りが協調するとは限らない。
本発明は、一側面によれば、周期的に起動するタスクを実行するマルチプロセッサ装置において、適切なタイミングでキャッシュ同期を行うことを目的とする。
上記目的を達成するための本発明の一態様は、
専用キャッシュメモリを有し、タスクを実行する第1のプロセッサと、
専用キャッシュメモリを有し、タスクを実行する第2のプロセッサと、
前記第1及び第2のプロセッサによって読み書き可能な共有メモリと、
前記第1及び第2のプロセッサが実行するタスクのうち少なくとも周期的に起動される定周期タスクについて、前記第1及び第2のプロセッサの処理負荷に応じて割り振り先を決定するタスク制御手段と、を備え、
前記第1及び第2のプロセッサのうち少なくとも一方は、前記定周期タスクのうち予め定められた特定の定周期タスクの組を連続して実行する際に、該特定の定周期タスクの組のうち先に実行される定周期タスクに関する処理結果を自己の専用キャッシュメモリから前記共有メモリにコピーし、
前記第1及び第2のプロセッサのうち少なくとも他方は、前記定周期タスクを実行する際に、該実行する定周期タスクの前回の処理が自己により行われなかった場合に、自己の専用キャッシュメモリに代えて前記共有メモリに格納された処理結果を用いて処理を行うように切り替えることを特徴とする、
マルチプロセッサ装置である。
専用キャッシュメモリを有し、タスクを実行する第1のプロセッサと、
専用キャッシュメモリを有し、タスクを実行する第2のプロセッサと、
前記第1及び第2のプロセッサによって読み書き可能な共有メモリと、
前記第1及び第2のプロセッサが実行するタスクのうち少なくとも周期的に起動される定周期タスクについて、前記第1及び第2のプロセッサの処理負荷に応じて割り振り先を決定するタスク制御手段と、を備え、
前記第1及び第2のプロセッサのうち少なくとも一方は、前記定周期タスクのうち予め定められた特定の定周期タスクの組を連続して実行する際に、該特定の定周期タスクの組のうち先に実行される定周期タスクに関する処理結果を自己の専用キャッシュメモリから前記共有メモリにコピーし、
前記第1及び第2のプロセッサのうち少なくとも他方は、前記定周期タスクを実行する際に、該実行する定周期タスクの前回の処理が自己により行われなかった場合に、自己の専用キャッシュメモリに代えて前記共有メモリに格納された処理結果を用いて処理を行うように切り替えることを特徴とする、
マルチプロセッサ装置である。
この本発明の一態様によれば、第1及び第2のプロセッサのうち少なくとも一方は、周期的に起動される定周期タスクのうち予め定められた特定の定周期タスクの組を連続して実行する際に、特定の定周期タスクの組のうち先に実行される定周期タスクに関する処理結果を自己の専用キャッシュメモリから共有メモリにコピーし、第1及び第2のプロセッサのうち少なくとも他方は、定周期タスクを実行する際に、実行する定周期タスクの前回の処理が自己により行われなかった場合に、自己の専用キャッシュメモリに代えて共有メモリに格納された処理結果を用いて処理を行うように切り替えるため、周期的に起動するタスクを実行する際に、適切なタイミングでキャッシュ同期を行うことができる。
本発明の一態様において、
前記特定の定周期タスクの組は、起動周期と処理所要時間の関係により、後に実行される定周期タスクの処理が終了するまでに、先に実行される定周期タスクが起動することが予め判明している定周期タスクの組であるものとしてもよい。
前記特定の定周期タスクの組は、起動周期と処理所要時間の関係により、後に実行される定周期タスクの処理が終了するまでに、先に実行される定周期タスクが起動することが予め判明している定周期タスクの組であるものとしてもよい。
また、本発明の一態様において、
前記第1及び第2のプロセッサのうち少なくとも一方は、前記特定の定周期タスクの組を連続して実行する際に、前記特定の定周期タスクの組のうち先に実行される定周期タスクの処理が終了した時点で、該先に実行される定周期タスクに関する処理結果を自己の専用キャッシュメモリから前記共有メモリにコピーすることを特徴とするものとしてもよい。
前記第1及び第2のプロセッサのうち少なくとも一方は、前記特定の定周期タスクの組を連続して実行する際に、前記特定の定周期タスクの組のうち先に実行される定周期タスクの処理が終了した時点で、該先に実行される定周期タスクに関する処理結果を自己の専用キャッシュメモリから前記共有メモリにコピーすることを特徴とするものとしてもよい。
また、本発明の一態様において、
前記定周期タスクのうち少なくとも一部は、起動される周期が変動することを特徴とするものとしてもよい。
前記定周期タスクのうち少なくとも一部は、起動される周期が変動することを特徴とするものとしてもよい。
また、本発明の一態様において、
前記タスク制御手段は、前記定周期タスクを起動する際に、前記第1及び第2のプロセッサの双方が前記タスクを実行中であり、前記第1及び第2のプロセッサのいずれかが非周期的に起動される非定周期タスクを実行している場合には、該非定周期タスクを一時停止すると共に該非定周期タスクを実行していたプロセッサにより前記定周期タスクを起動する手段であるものとしてもよい。
前記タスク制御手段は、前記定周期タスクを起動する際に、前記第1及び第2のプロセッサの双方が前記タスクを実行中であり、前記第1及び第2のプロセッサのいずれかが非周期的に起動される非定周期タスクを実行している場合には、該非定周期タスクを一時停止すると共に該非定周期タスクを実行していたプロセッサにより前記定周期タスクを起動する手段であるものとしてもよい。
また、本発明の一態様において、
前記共有メモリは、前記第1及び第2のプロセッサによって読み書き可能な共有キャッシュメモリであるものとしてもよい。
前記共有メモリは、前記第1及び第2のプロセッサによって読み書き可能な共有キャッシュメモリであるものとしてもよい。
本発明は、一側面によれば、周期的に起動するタスクを実行するマルチプロセッサ装置において、適切なタイミングでキャッシュ同期を行うことができる。
以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。
以下、図面を参照し、本発明の一実施例に係るマルチプロセッサ装置1について説明する。マルチプロセッサ装置1は、例えば複数のプロセッサコアが一チップ上に搭載されたマルチコア・プロセッサである。また、これに限らず、マルチプロセッサ装置1は、複数のプロセッサコアが別々のチップ上に搭載されたマルチプロセッサ装置であってもよい。以下の説明では、マルチプロセッサ装置1がマルチコア・プロセッサであるものとして説明する。
[ハードウエア構成]
図1は、本発明の一実施例に係るマルチプロセッサ装置1のシステム構成例である。マルチプロセッサ装置1は、主要な構成として、プロセッサコア10と、プロセッサコア20と、L2キャッシュ30と、プロセッサ間バス40と、バス45に接続されたセンサ群50、ROM(Read Only Memory)52、RAM(Random Access Memory)54、I/O56、DMA(Direct Memory Access)コントローラ58と、を備える。
図1は、本発明の一実施例に係るマルチプロセッサ装置1のシステム構成例である。マルチプロセッサ装置1は、主要な構成として、プロセッサコア10と、プロセッサコア20と、L2キャッシュ30と、プロセッサ間バス40と、バス45に接続されたセンサ群50、ROM(Read Only Memory)52、RAM(Random Access Memory)54、I/O56、DMA(Direct Memory Access)コントローラ58と、を備える。
プロセッサコア10は、例えば、ALU(Arithmetic Logic Unit)、MUL(乗算器)、DIV(除算器)、LSU(Load Store Unit)その他を含む演算ユニット、レジスタ、プログラムカウンタ、プロセッサ間バス40を介したプロセッサコア20との通信を制御するローカル割り込みコントローラ等の他、専用キャッシュメモリであるL1(レベル1)キャッシュ12を備える。
また、プロセッサコア10は、ROM52等のプログラムメモリに格納されたプログラムを実行することにより機能する機能ブロックとして、タスク処理部10Aと、キャッシュ制御部10Bと、を備える。キャッシュ制御部10Bは、トリガ管理部10Ba、キャッシュ同期制御部10Bb、参照方向切替制御部10Bc、キャッシュ切替制御部10Bdを含む。これらの機能ブロックの機能については、後述する。
同様に、プロセッサコア20は、例えば、ALU、MUL、DIV、LSUその他を含む演算ユニット、レジスタ、プログラムカウンタ、プロセッサ間バス40を介したプロセッサコア10との通信を制御するローカル割り込みコントローラ等の他、専用キャッシュメモリであるL1キャッシュ22を備える。
また、プロセッサコア20は、ROM52等のプログラムメモリに格納されたプログラムを実行することにより機能する機能ブロックとして、タスク処理部20Aと、キャッシュ制御部20Bと、を備える。キャッシュ制御部20Bは、トリガ管理部20Ba、参照方向切替制御部20Bc、キャッシュ切替制御部20Bdを含む。これらの機能ブロックの機能については、後述する。
L2(レベル2)キャッシュ30は、プロセッサコア10とプロセッサ20の双方によって読み書き可能な共有キャッシュメモリである。L2キャッシュ30としては、例えばL1キャッシュ12、22よりも低速アクセス且つ大容量のものが採用される。
外部バス45に接続されたセンサ群50は、マルチプロセッサ装置1が例えば車両に搭載された制御装置である場合、車速センサ、アクセル開度センサ、ブレーキスイッチ、ステアリング操舵角センサ、エンジンのクランク角センサ、スロットルバルブセンサ等が該当する。これらのセンサ群50は、センサ出力値を例えば所定周期で割り込み信号としてプロセッサコア10、20に出力する。
ROM52は、例えばBIOS(Basic Input/Output System)をはじめとするオペレーティングシステム、各種プログラム等を格納している。RAM54は、マルチプロセッサ装置1のメインメモリとして機能する。I/O56は、入出力装置や他のコンピュータ等との間で情報の送受信を行う際のインターフェースとして機能する。DMAコントローラ58は、バス45を介したデータの直接転送を制御する。
[機能ブロック]
以下、プロセッサコア10、20の各機能ブロックの機能について説明する。タスク処理部10A、20Aは、マルチプロセッサ装置1が実行するタスクを分担して実行する。タスクは、マルチプロセッサ装置1のRTOS5によって、いずれかのプロセッサコアに割り振られる。RTOS5は、図1ではプロセッサコア10が実行するものとして表現したが、いずれのプロセッサコアが実行してもよく、RTOS5を実行する専用のプロセッサコアが存在してもよい。
以下、プロセッサコア10、20の各機能ブロックの機能について説明する。タスク処理部10A、20Aは、マルチプロセッサ装置1が実行するタスクを分担して実行する。タスクは、マルチプロセッサ装置1のRTOS5によって、いずれかのプロセッサコアに割り振られる。RTOS5は、図1ではプロセッサコア10が実行するものとして表現したが、いずれのプロセッサコアが実行してもよく、RTOS5を実行する専用のプロセッサコアが存在してもよい。
以下、タスクA、B、C、D、Eをマルチプロセッサ装置1が実行するものとする。タスクA、B、Cは周期的に起動される定周期タスクであり、原則としてプロセッサコア10に割り振られるが、プロセッサコア10が他のタスクを実行している場合には、プロセッサコア20に割り振られるように、RTOS5が制御する。
タスクAは、基本的には最も短い周期で(高頻度に)実行されるタスクである。タスクB、Cは通常時にはタスクAよりも長い周期で実行されるが、状態変化に応じてタスクAと同程度に短い周期で実行されるものとする。
一方、タスクD、Eは、例えばユーザーの操作等の不定期なイベントに対応して起動される非定周期タスクである。タスクD、Eは、プロセッサコア20に割り振られる。
このようなタスクの性質は、マルチプロセッサ装置1が例えば車両に搭載された制御装置である場合に、現実に実行されるタスクの性質に近いものである。この場合、タスクA、B、Cはエンジン制御のための周期的演算だとすると、タスクAとしては周期的に入力されるアクセル開度等に応じたトルク演算等が該当し、タスクB、Cとしてはエンジン回転数の増加に応じて短い周期となる点火時期制御演算等が該当する。一方、タスクD、Eとしては、エンジンの運転モード変更制御演算、スタータモータ制御演算等が該当する。本実施例のマルチプロセッサ装置1は、このように周期の変動するものと変動しないものを含む定周期タスク、非定周期タスクが混在するような環境において、迅速な処理を実現することができる。
図2は、本実施例のマルチプロセッサ装置1によってタスクA、B、C、D、Eが実行される様子を示す図である。図中、細実線矢印はセンサ群50等からの割り込み信号に応じて立ち上がるISR(Interrupt Service Routine;割り込みハンドラ)を示し、細線矢印はユーザーアクション(ユーザによる指示)を示し、太実線矢印はキャッシュ同期が行われるタイミングを示し、白抜き矢印は参照キャッシュ切替が行われるタイミングを示す。以下、図示する時刻(1)〜(5)において実行される処理について説明する。
時刻(t1)において、ISRが立ち上がると、RTOS5はタスクAをプロセッサコア10のタスク処理部10Aに実行させる。タスク処理部10Aは、続いてタスクCを実行する。
時刻(t2)において、ユーザーが入出力装置に対して何らかの指示を行うと、RTOS5はタスクD及びタスクEをプロセッサコア20のタスク処理部20Aに実行させる。
時刻(t3)において、ISRが立ち上がると、RTOS5はタスクAをプロセッサコア10のタスク処理部10Aに実行させる。
時刻(t4)において、RTOS5がタスクBをプロセッサコア10に割り振ると、プロセッサコア10のトリガ管理部10Baがこれを検知し(例えばタスク処理部10Aから入力されるタスク処理状況を参照する)、L1キャッシュ12に格納されたデータをL2キャッシュ30にコピーするように、キャッシュ同期制御部10Bbに指示する(以下、係る動作を「キャッシュ同期」と称する)。図3は、L1キャッシュ12に格納されたデータがL2キャッシュ30にコピーされた時点におけるL1キャッシュ12、L2キャッシュ30、L1キャッシュ22に格納されたデータの一部を示す図である。なお、L2キャッシュ30にコピーされたデータのうち直近に書き込まれたデータには、最新のデータであることを示すポインタ等が付されている。
時刻(t5)において、ISRが立ち上がると、RTOS5はタスクAをプロセッサコア20のタスク処理部20Aに実行させる。プロセッサコア10のタスク処理部10Aが他のタスクBを実行しており、処理負荷が高い状態だからである(上記参照)。RTOS5がタスクAをプロセッサコア20に割り振ると、プロセッサコア20のトリガ管理部20Baがこれを検知し(例えばタスク処理部20Aから入力されるタスク処理状況を参照する)、当該タスクAの処理において、L1キャッシュ22ではなく、L2キャッシュ30に格納されたデータを用いて処理を行うようにキャッシュ切替制御部20Bdに指示する(以下、係る動作を「キャッシュ切替」と称する)。この際に、L2キャッシュ30におけるデータ参照方向がL1キャッシュ22の参照方向と異なっている場合には、参照方向切替制御部20Bcがデータ参照方向の切替をタスク処理部20Aに指示する(図3、4の場合は参照方向の相違が無いため、何も処理を行わない)。図4は、L1キャッシュ22ではなく、L2キャッシュ30に格納されたデータを用いて処理を行うように切り替えられたことを模式的に示す図である。
上記説明したキャッシュ同期、及びキャッシュ切替の指示を行うか否かは、トリガ管理部10Ba、20Baがタスク処理部10A、20Aから入力されるタスク処理状況に、制御条件を適用することによって決定される。トリガ管理部10Ba、20Baは、係る制御条件をテーブルデータとして、専用レジスタ、或いはL1キャッシュ12、22上に保持している。
図5は、トリガ管理部10Ba、20Baによって保持される制御条件テーブルの一例である。図5に示す制御条件テーブルは、定周期タスクのうち予め定められた特定の定周期タスクの組(本実施例ではA→B)を連続して実行する際に、タスクA、Bのうち先に実行される定周期タスクAに関する処理結果を自己の専用キャッシュメモリからL2キャッシュ30にコピーすることを規定する。例えば図5のテーブルデータの上段には、トリガとしてタスクBの開始が格納され、更に、条件として直前にタスクAが実行完了したことが格納される。そして、トリガと条件の双方を満たす際のアクションとして、キャッシュ同期が格納される。
ここで、上記「特定の定周期タスクの組」は、起動周期と処理所要時間の関係により、後に実行される定周期タスクの処理が終了するまでに、先に実行される定周期タスクが起動することが予め判明している定周期タスクの組である。本実施例では、特定の定周期タスクの組はA→Bのみであるが、他の定周期タスクの組が特定の定周期タスクの組に該当してもよい。また、「連続して実行する」、とは、間隔を置かずに実行されることのみを指すものではなく、「一定の時間間隔以内で連続して実行する」と定義してもよい。
また、図5に示す制御条件テーブルは、定周期タスクを実行する際に、実行する定周期タスクの前回の処理が他のプロセッサコアで行われた(すなわち自己により行われなかった)場合に、自己の専用キャッシュメモリに代えてL2キャッシュ30に格納されたデータを用いて処理を行うように切り替えることを規定する。例えば図5のテーブルデータの下段には、トリガとしてタスクAの開始が格納され、条件として前回のタスクAの実行が他のプロセッサコアで行われたことが格納される。そして、トリガと条件の双方を満たす際のアクションとして、キャッシュ切替が格納される。
「実行する定周期タスクの前回の処理が他のプロセッサコアで行われたこと」は、例えば、RTOS5によってタスク処理部10A、20Aに割り振られた実行するタスクに連番のタスクIDが付与されており、タスク処理部10A、20Aは実行したタスクのタスクIDをプロセッサコア内に保持し、前回のタスクIDが自プロセッサコア内に保持されていない場合に前回の処理が他のプロセッサコアで行われたと判断することができる。また、RTOS5によって、タスク割り振り時に、前回の処理が他のプロセッサコアで行われたことを示す信号が送信されてもよい。
なお、トリガ管理部10Ba、20Baは、このようなテーブルデータを用いて処理を行う手法に代えて、同様の機能を実現可能な関数等を用いて処理を行っても構わない。
本実施例のマルチプロセッサ装置1は、時刻(1)〜(5)において行われた処理を繰り返し実行する。
係る制御によって、後に実行される定周期タスクの処理が終了するまでに、先に実行される定周期タスクが起動することが予め判明している定周期タスクの組が連続して実行される場合には、当該組の定周期タスクのうち先に実行される定周期タスクの処理結果がL2キャッシュ30に格納され、プロセッサコアを跨いで定周期タスクが実行される場合には、自己のL1キャッシュ12又は22に代えてL2キャッシュに格納された処理結果を用いて処理を行うことになる。
この結果、周期的に起動するタスクを実行するマルチプロセッサ装置において、適切なタイミングでキャッシュ同期を行うことができる。この結果、キャッシュ制御を含む処理を円滑に行うことができる。
次に、図2に示される状態から、タスクB、Cの起動周期が短くなった場合の制御態様について説明する。図6は、図2に示される状態から、タスクB、Cの起動周期が短くなった場合に、タスクA、B、C、D、Eが実行される様子を示す図である。本図に示すように、タスクB、Cの起動周期が短くなった場合であっても、図5に示す制御条件テーブルに従うことにより、キャッシュ制御を含む処理を円滑に行うことができる。
本実施例のマルチプロセッサ装置1がエンジン制御を行う制御装置に適用された場合、タスクB、Cとしてはエンジン回転数の増加に応じて短い周期となる点火時期制御演算等が該当する。従って、図6に示す状態は、車速が増加してエンジン回転数が増加した状態を示している。
図6においても、図2と同様、細実線矢印はセンサ群50等からの割り込み信号に応じて立ち上がるISRを示し、細線矢印はユーザーアクションを示し、太実線矢印はキャッシュ同期が行われるタイミングを示し、白抜き矢印は参照キャッシュ切替が行われるタイミングを示す。以下、図6における処理について部分的に説明する。
図6における時刻(t6)において、RTOS5がタスクBをプロセッサコア20に割り振ると、プロセッサコア20のトリガ管理部20Baがこれを検知し、L1キャッシュ22に格納されたデータをL2キャッシュ30にコピーするように、キャッシュ同期制御部20Bbに指示する(キャッシュ同期)。図7は、L1キャッシュ22に格納されたデータがL2キャッシュ30にコピーされた時点におけるL1キャッシュ12、L2キャッシュ30、L1キャッシュ22に格納されたデータの一部を示す図である。
時刻(t7)において、ISRが立ち上がると、RTOS5はタスクAをプロセッサコア10のタスク処理部10Aに実行させる。プロセッサコア20のタスク処理部20Aが他のタスクBを実行しており、処理負荷が高い状態だからである。RTOS5がタスクAをプロセッサコア10に割り振ると、プロセッサコア10のトリガ管理部10Baがこれを検知し、当該タスクAの処理において、L1キャッシュ12ではなく、L2キャッシュ30に格納されたデータを用いて処理を行うようにキャッシュ切替制御部10Bdに指示する(キャッシュ切替)。この際に、L2キャッシュ30におけるデータ参照方向がL1キャッシュ12の参照方向と異なっている場合には、参照方向切替制御部10Bcがデータ参照方向の切替をタスク処理部20Aに指示する(図7、8の場合は参照方向の相違が無いため、何も処理を行わない)。図8は、L1キャッシュ12ではなく、L2キャッシュ30に格納されたデータを用いて処理を行うように切り替えられたことを模式的に示す図である。
[処理フロー]
以下、キャッシュ制御部10Ba、20Baが実行する処理の流れについて説明する。図9は、キャッシュ制御部10Ba、20Baが実行する処理の流れを示すフローチャートである。本フローチャートは、例えばマルチプロセッサ1が起動されている間、繰り返し実行される。
以下、キャッシュ制御部10Ba、20Baが実行する処理の流れについて説明する。図9は、キャッシュ制御部10Ba、20Baが実行する処理の流れを示すフローチャートである。本フローチャートは、例えばマルチプロセッサ1が起動されている間、繰り返し実行される。
まず、キャッシュ制御部10Ba、20Baは、タスク処理部10A、20Aから最新のタスク処理状況が入力されるまで待機する(S100)。
最新のタスク処理状況が入力されると、最新のタスク処理状況が制御条件テーブルにおけるトリガを満たすか否かを判定する(S102)。最新のタスク処理状況が制御条件テーブルにおけるトリガを満たさない場合、キャッシュ制御部10Ba、20Baは、本フローチャートを終了する。
最新のタスク処理状況が制御条件テーブルにおけるトリガを満たす場合、キャッシュ制御部10Ba、20Baは、最新のタスク処理状況が制御条件テーブルにおける条件を満たすか否かを判定する(S104)。最新のタスク処理状況が制御条件テーブルにおける条件を満たさない場合、キャッシュ制御部10Ba、20Baは、本フローチャートを終了する。
最新のタスク処理状況が制御条件テーブルにおける条件を満たす場合、キャッシュ制御部10Ba、20Baは、制御条件テーブルにおけるアクションを実行するように、キャッシュ同期制御部10Bb、参照方向切替制御部10Bc、キャッシュ切替制御部10Bd、或いはキャッシュ同期制御部20Bb、参照方向切替制御部20Bc、キャッシュ切替制御部20Bdに指示する(S106)。
[まとめ]
以上説明した本実施例のマルチプロセッサ装置1によれば、周期的に起動するタスクを実行する際に、適切なタイミングでキャッシュ同期を行うことができる。
以上説明した本実施例のマルチプロセッサ装置1によれば、周期的に起動するタスクを実行する際に、適切なタイミングでキャッシュ同期を行うことができる。
なお、上記実施例において、ISRが立ち上がった場合に、いずれのプロセッサコアもタスクを実行中である場合について言及していないが、この場合、例えば定周期タスクを優先して実行するように制御するものとしてよい。すなわち、一方のプロセッサコアがタスクB又はCを実行し、他方のプロセッサコアがタスクD又はEを実行しているタイミングでISRが立ち上がった場合には、タスクD又はEを一時停止してタスクAを実行させる。
図10は、タスクEを一時停止してタスクAを実行させる様子を示す図である。本図における時刻(t8)においてISRが立ち上がると、RTOS5は、プロセッサコア20のタスク処理部20Aが実行しているタスクEを一時停止させ、タスクAをプロセッサコア20のタスク処理部20Aに実行させる。プロセッサコア10のタスク処理部10Aが他のタスクBを実行しており、定周期タスクであるタスクBの方が、優先度が高いからである。
図10における時刻(t9)において、プロセッサコア20のタスク処理部20AがタスクAの処理を完了すると、RTOS5は、一時停止していたタスクEの処理をプロセッサコア20のタスク処理部20Aに再開させる。
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
1 マルチプロセッサ装置
10、20 プロセッサコア
10A、20A タスク処理部
10B、20B キャッシュ制御部
10Ba、20Ba トリガ管理部
10Bb、20Bb キャッシュ同期制御部
10Bc、20Bc 参照方向切替制御部
10Bd、20Bd キャッシュ切替制御部
12、22 L1キャッシュ
30 L2キャッシュ
40 プロセッサ間バス
45 バス
50 センサ群
52 ROM
54 RAM
56 I/O
58 DMA
10、20 プロセッサコア
10A、20A タスク処理部
10B、20B キャッシュ制御部
10Ba、20Ba トリガ管理部
10Bb、20Bb キャッシュ同期制御部
10Bc、20Bc 参照方向切替制御部
10Bd、20Bd キャッシュ切替制御部
12、22 L1キャッシュ
30 L2キャッシュ
40 プロセッサ間バス
45 バス
50 センサ群
52 ROM
54 RAM
56 I/O
58 DMA
Claims (6)
- 専用キャッシュメモリを有し、タスクを実行する第1のプロセッサと、
専用キャッシュメモリを有し、タスクを実行する第2のプロセッサと、
前記第1及び第2のプロセッサによって読み書き可能な共有メモリと、
前記第1及び第2のプロセッサが実行するタスクのうち少なくとも周期的に起動される定周期タスクについて、前記第1及び第2のプロセッサの処理負荷に応じて割り振り先を決定するタスク制御手段と、を備え、
前記第1及び第2のプロセッサのうち少なくとも一方は、前記定周期タスクのうち予め定められた特定の定周期タスクの組を連続して実行する際に、該特定の定周期タスクの組のうち先に実行される定周期タスクに関する処理結果を自己の専用キャッシュメモリから前記共有メモリにコピーし、
前記第1及び第2のプロセッサのうち少なくとも他方は、前記定周期タスクを実行する際に、該実行する定周期タスクの前回の処理が自己により行われなかった場合に、自己の専用キャッシュメモリに代えて前記共有メモリに格納された処理結果を用いて処理を行うように切り替えることを特徴とする、
マルチプロセッサ装置。 - 請求項1に記載のマルチプロセッサ装置であって、
前記特定の定周期タスクの組は、起動周期と処理所要時間の関係により、後に実行される定周期タスクの処理が終了するまでに、先に実行される定周期タスクが起動することが予め判明している定周期タスクの組である、
マルチプロセッサ装置。 - 請求項1又は2に記載のマルチプロセッサ装置であって、
前記第1及び第2のプロセッサのうち少なくとも一方は、前記特定の定周期タスクの組を連続して実行する際に、前記特定の定周期タスクの組のうち先に実行される定周期タスクの処理が終了した時点で、該先に実行される定周期タスクに関する処理結果を自己の専用キャッシュメモリから前記共有メモリにコピーすることを特徴とする、
マルチプロセッサ装置。 - 請求項1ないし3のいずれか1項に記載のマルチプロセッサ装置であって、
前記定周期タスクのうち少なくとも一部は、起動される周期が変動することを特徴とする、
マルチプロセッサ装置。 - 請求項1ないし4のいずれか1項に記載のマルチプロセッサ装置であって、
前記タスク制御手段は、前記定周期タスクを起動する際に、前記第1及び第2のプロセッサの双方が前記タスクを実行中であり、前記第1及び第2のプロセッサのいずれかが非周期的に起動される非定周期タスクを実行している場合には、該非定周期タスクを一時停止すると共に該非定周期タスクを実行していたプロセッサにより前記定周期タスクを起動する手段である、
マルチプロセッサ装置。 - 請求項1ないし5のいずれか1項に記載のマルチプロセッサ装置であって、
前記共有メモリは、前記第1及び第2のプロセッサによって読み書き可能な共有キャッシュメモリである、
マルチプロセッサ装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011272187A JP2013125305A (ja) | 2011-12-13 | 2011-12-13 | マルチプロセッサ装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011272187A JP2013125305A (ja) | 2011-12-13 | 2011-12-13 | マルチプロセッサ装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013125305A true JP2013125305A (ja) | 2013-06-24 |
Family
ID=48776528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011272187A Pending JP2013125305A (ja) | 2011-12-13 | 2011-12-13 | マルチプロセッサ装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013125305A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019192200A (ja) * | 2018-04-25 | 2019-10-31 | アールタイムマン モーション コントロール カンパニー リミテッド | 運動制御とモータ制御を集積するコントローラ |
JP2021152338A (ja) * | 2020-03-24 | 2021-09-30 | 日立Astemo株式会社 | 制御装置 |
-
2011
- 2011-12-13 JP JP2011272187A patent/JP2013125305A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019192200A (ja) * | 2018-04-25 | 2019-10-31 | アールタイムマン モーション コントロール カンパニー リミテッド | 運動制御とモータ制御を集積するコントローラ |
JP2021152338A (ja) * | 2020-03-24 | 2021-09-30 | 日立Astemo株式会社 | 制御装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240211265A1 (en) | System Having a Hybrid Threading Processor, a Hybrid Threading Fabric Having Configurable Computing Elements, and a Hybrid Interconnection Network | |
CN109997112B (zh) | 数据处理 | |
CN109983440B (zh) | 数据处理 | |
US6944850B2 (en) | Hop method for stepping parallel hardware threads | |
CN101739242B (zh) | 一种流数据处理方法及流处理器 | |
CN109997113B (zh) | 用于数据处理的方法和装置 | |
US20050172050A1 (en) | Methods and apparatus for providing data transfer control | |
US20100125717A1 (en) | Synchronization Controller For Multiple Multi-Threaded Processors | |
WO2017127180A1 (en) | Random-access disjoint concurrent sparse writes to heterogeneous buffers | |
JP5213485B2 (ja) | マルチプロセッサシステムにおけるデータ同期方法及びマルチプロセッサシステム | |
Bi et al. | Research of key technologies for embedded Linux based on ARM | |
JP4419943B2 (ja) | Cpu間データ転送装置 | |
US20080134187A1 (en) | Hardware scheduled smp architectures | |
Pöhnl et al. | A middleware journey from microcontrollers to microprocessors | |
JP3981238B2 (ja) | 情報処理装置 | |
JP2013125305A (ja) | マルチプロセッサ装置 | |
CN108845969B (zh) | 适用于不完全对称多处理微控制器的操作控制方法及操作系统 | |
JP4594889B2 (ja) | 複数の処理装置を備えたシステム上で実行されるプログラムのトレース方法、および、複数の処理装置を備えたシステム | |
JP2005521937A (ja) | コンピュータオペレーティングシステムにおけるコンテキスト切り替え方法及び装置 | |
US20150363227A1 (en) | Data processing unit and method for operating a data processing unit | |
JP2009266050A (ja) | 情報処理装置 | |
Burgio et al. | Real-time heterogeneous platforms | |
JPS62295168A (ja) | 機器制御装置 | |
US20060168420A1 (en) | Microcontroller cache memory | |
EP2798455A1 (en) | Direct ring 3 submission of processing jobs to adjunct processors |