JP5844134B2 - マルチプロセッサ装置及びマルチプロセッサ装置の制御方法 - Google Patents

マルチプロセッサ装置及びマルチプロセッサ装置の制御方法 Download PDF

Info

Publication number
JP5844134B2
JP5844134B2 JP2011268767A JP2011268767A JP5844134B2 JP 5844134 B2 JP5844134 B2 JP 5844134B2 JP 2011268767 A JP2011268767 A JP 2011268767A JP 2011268767 A JP2011268767 A JP 2011268767A JP 5844134 B2 JP5844134 B2 JP 5844134B2
Authority
JP
Japan
Prior art keywords
processor
trace
task
writing
memory access
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.)
Expired - Fee Related
Application number
JP2011268767A
Other languages
English (en)
Other versions
JP2013120524A (ja
Inventor
正雄 樋口
正雄 樋口
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2011268767A priority Critical patent/JP5844134B2/ja
Publication of JP2013120524A publication Critical patent/JP2013120524A/ja
Application granted granted Critical
Publication of JP5844134B2 publication Critical patent/JP5844134B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Microcomputers (AREA)

Description

本発明は、マルチプロセッサ装置及びマルチプロセッサ装置の制御方法に関する。
近年では、家電製品等に利用するマイクロコンピュータ(いわゆるマイコン、マイクロコントローラとも呼称する。)にマルチプロセッサ(複数のプロセッサを有するシステム)を採用することが多い。マルチプロセッサシステムの採用は、組み込みシステムの低クロック化、応答性の向上、消費電力の低減等に有利である。マルチプロセッサシステムには、各プロセッサに負荷を分散させる対称型マルチプロセッサ型(SMP, Symmetric Multiple Processor)と、各プロセッサに機能を分散させる非対称型マルチプロセッサ型(AMP, Asymmetric Multi Processor)と、の2種類がある。
各プロセッサは、プロセッサエレメント(PE,Processor Element)内にそれぞれ配置される。各プロセッサエレメント内には、記憶部が備えられる。記憶部は、プログラムやデータを記憶するものであり、各プロセッサが読み出して実行するオペレーティングシステムが記憶されている。各プロセッサは、タスクと呼ばれる処理単位毎に処理を実行する。
多くのシステムでは、プロセッサは、タスクの実行を行う際に、当該タスクの情報(タスクの状態等)をトレースデータとしてトレースエリアに書き込む。ユーザは、このトレースデータを参照することにより、各プロセッサのタスクの処理状態等を把握することができる。以下、マルチプロセッサシステムにおけるトレースデータの取得に関連する技術について説明する。
特許文献1には、各プロセッサのトレース処理を一斉に停止でき、かつ全プロセッサのトレース情報を時刻順に並べることができるマルチプロセッサシステムが開示されている。各プロセッサは、プロセッサエレメント内部にトレースエリアを有し、時刻情報と共にトレースデータを自身のトレースエリアに書き込む。トレースデータの参照時には、各プロセッサエレメントのトレースエリアからトレースデータを取得し、時刻情報に応じてトレースデータがソートされる。
特許文献2には、トレース情報が発生した時刻を把握することができるマルチプロセッサシステムが開示されている。当該マルチプロセッサシステムは、トレース動作の開始からの時刻を計数するトレースタイマ装置を備えている。同様に、特許文献3には、各プロセッサ間で共通の時刻を使用したトレースデータを生成できるマルチプロセッサシステムが開示されている。
特許文献4には、各プロセッサの動作を、同一バスで接続された他のプロセッサの動作と関連付けることができるマルチプロセッサ装置を開示している。当該マルチプロセッサ装置では、各プロセッサが処理を実行し、当該プロセッサが属するプロセッサエレメント内にロケーショントレース情報を格納する。そして、各プロセッサがロケーショントレース情報を、共有バスを介して主記憶装置に送信する(ダンプ命令の実行)。これにより、主記憶装置内に、各プロセッサのロケーショントレース情報が集約される。
特開平5−128079号公報 特開平03−127253号公報 特開2000−348007号公報 特開2000−112907号公報
マルチプロセッサシステム内の各プロセッサは、他のプロセッサが動作させるタスクの状態変更操作をシステムコールの実行を介して行うことができる。特許文献1に記載のマルチプロセッサシステム等の一般的なシステムでは、システムコールの実行を行ったプロセッサの属するプロセッサエレメント内のトレースエリアに、タスクの状態変更に関するトレースデータが格納される。換言すると、状態変更がされるタスクを実行しているプロセッサに関連付けられたトレースエリアには、当該トレースデータが格納されない。
そのため、マイコンの動作を確認するためのツールは、各トレースエリアに格納されたトレースデータを取得する必要がある。さらに、当該ツールは、あるタスクの実行(タスクの処理開始、状態変更呼び出し等)に関する情報を表示するために、取得したトレースデータを解析して必要なデータのみを取得し、取得したデータをソートする必要がある。このような処理により、ツールのオーバーヘッドが増加してしまう。
一方、特許文献4に記載のマルチプロセッサ装置では、前述のように主記憶装置に各プロセッサのトレースデータを全て集約することができる。ユーザは、この主記憶装置内のトレースデータのみを参照することにより、各プロセッサの動作を把握することができる。
ここで、特許文献4に記載のマルチプロセッサ装置では、各プロセッサがダンプ命令を実行する。すなわち、当該マルチプロセッサ装置内では、各プロセッサが逐次ロケーショントレース情報を、共有バスを介して主記憶装置に転送する。共有バスとは、各プロセッサエレメントを接続する情報伝達経路である。ダンプ命令は一定時間毎に行われるため、共有バスを介して転送されるデータ量が増加してしまう。これにより、共有バスの使用率が上昇してしまい、情報の伝達に支障をきたす恐れがある。
本発明にかかるマルチプロセッサ装置の一態様は、
プログラムに基づいて演算処理を行う第1プロセッサ、第1タスク管理ブロック、第1トレース領域、及び前記タスク管理ブロックを監視する第1トレース制御部を有する第1プロセッサエレメントと、プログラムに基づいて演算処理を行う第2プロセッサを有する第2プロセッサエレメントと、を備え、
前記第1プロセッサエレメントと前記第2プロセッサエレメントは、伝送経路である共有バスにより相互に接続し、
前記第2プロセッサは、前記第1プロセッサが実行するタスクの状態変更を指示するシステムコールを実行し、当該システムコールの実行により前記第1タスク管理ブロックへのメモリアクセス命令を前記共有バスを介して送信し、
前記メモリアクセス命令は、前記第2プロセッサの識別子を含み、
前記第1プロセッサは、前記メモリアクセス命令に応じて前記タスクにかかる処理を行い、前記第1トレース制御部は、前記第1タスク管理ブロックへの前記メモリアクセス命令を検出し、検出した前記メモリアクセス命令に応じてタスク処理情報を前記第2プロセッサの識別子と共に前記第1トレース領域に書き込む、ものである。
本発明にかかるマルチプロセッサ装置の制御方法の一態様は、
プログラムに基づいて演算処理を行う第1プロセッサ、第1タスク管理ブロック、第1トレース領域、及び前記第1タスク管理ブロックを監視する第1トレース制御部を有する第1プロセッサエレメントと、プログラムに基づいて演算処理を行う第2プロセッサを有する第2プロセッサエレメントと、を備えるマルチプロセッサ装置の制御方法であって、
前記第1プロセッサエレメントと前記第2プロセッサエレメントは、伝送経路である共有バスにより相互に接続し、
前記第2プロセッサは、前記第1プロセッサが実行するタスクの状態変更を指示するシステムコールを実行し、当該システムコールの実行により前記第1タスク管理ブロックへの第1メモリアクセス命令を前記共有バスを介して送信し、
前記第1メモリアクセス命令は、前記第2プロセッサの識別子を含み、
前記第1プロセッサは、前記第1メモリアクセス命令に応じて前記タスクにかかる処理を行い、前記第1トレース制御部は、前記第1タスク管理ブロックへの前記第1メモリアクセス命令を検出し、検出した前記第1メモリアクセス命令に応じてタスク処理情報を前記第2プロセッサの識別子と共に前記第1トレース領域に書き込む、ものである。
本発明では、第1トレース領域への書き込みの際に共有バスに対するデータ送信を行うことなく、発行元である第2プロセッサの識別子と共に第1タスク処理情報が第1トレース領域に書き込まれる。第1タスク管理情報を共有バスを介して送受信する必要が無くなるため、共有バスの使用率を低減することができる。さらに、第1タスク処理情報とともに第2プロセッサの識別子が書き込まれるため、ユーザは、第2プロセッサの処理によりタスク状態の変更が生じたことを把握することができる。
本発明によれば、共有バスの使用率を低減して所望のトレースデータの取得を容易に行うことができるマルチプロセッサ装置、及びマルチプロセッサ装置の制御方法を提供することができる。
本発明の実施の形態1にかかるマルチプロセッサ装置の構成を示すブロック図である。 本発明の実施の形態1にかかるタスク管理ブロックに対するロック処理の流れを示すフローチャートである。 本発明の実施の形態1にかかるタスク管理ブロックの内部構成を示す概念図である。 本発明の実施の形態1にかかるタスク管理ブロックの内部構成を示す概念図である。 本発明の実施の形態1にかかるトレース制御部106の内部構成、及びタスク管理ブロック112及びトレースエリア107の関係を示す概念図である。 本発明の実施の形態1にかかるトレースエリア107の内部構成を示す概念図である。 本発明の実施の形態1にかかるマルチプロセッサ装置の動作を示すフローチャートである。 本発明の実施の形態1にかかるマルチプロセッサ装置の動作を示すフローチャートである。 本発明の実施の形態1にかかるマルチプロセッサ装置の構成を示すブロック図である。 本発明の実施の形態2にかかるマルチプロセッサ装置の構成を示すブロック図である。 本発明の実施の形態2にかかるマルチプロセッサ装置の動作を示すシーケンス図である。 本発明の実施の形態3にかかるマルチプロセッサ装置の構成を示すブロック図である。 本発明の実施の形態4にかかるマルチプロセッサ装置の構成を示すブロック図である。
<実施の形態1>
以下、図面を参照して本発明の実施の形態1について説明する。図1は、本実施の形態にかかるマルチプロセッサ装置の構成を示すブロック図である。当該マルチプロセッサ装置は、例えばマイクロコンピュータ(マイコン)に搭載される。
当該マルチプロセッサ装置には、プロセッサエレメント100と、プロセッサエレメント200と、が配置されている。プロセッサエレメント100とプロセッサエレメント200は、共有バス1を介して接続されている。共有バス1とは、プロセッサエレメント100とプロセッサエレメント200間のデータ伝送を行う伝送経路である。
プロセッサエレメント100は、CPU101と、記憶部102と、レジスタ103と、バス制御部104と、時計部105と、トレース制御部106と、トレースエリア107と、を備える。プロセッサエレメント200は、CPU201と、記憶部202と、レジスタ203と、バス制御部204と、時計部205と、トレース制御部206と、トレースエリア207と、を備える。プロセッサエレメント100とプロセッサエレメント200は、略同一の構成を持てばよい(同一名称を付した処理部、記憶部は原則として同一の機能を持つ。)。そのため、以下の説明では主にプロセッサエレメント100の詳細について説明する。
記憶部102とは、CPU101のワークエリア等となる領域であり、一般的にはSRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)等のランダムアクセス可能な揮発性メモリである。記憶部102は、読み出されたプログラムやプログラム実行に関する入出力データを記憶する。
レジスタ103は、CPU101の識別子(プロセッサID)を保持するレジスタである。後述するシステムコール110の実行時等にレジスタ103の読み出し命令が発行される。読み出し命令の発行より、レジスタ103に保持されたCPU101の識別子を取得できる。
なお、レジスタ103は、一般的なレジスタではなく、メモリマップドI/O(Input/Output)におけるレジスタとして実装されても良い。この場合、メモリマップドI/O領域の特定アドレスの値を読み出すことによりCPU101の識別子を取得することができる。
CPU101は、図示しないHDD(Hard Disc Drive)等の補助記憶装置からOS(Operating System)プログラムやアプリケーションプログラムを読み出し、実行する演算装置(Central Processing Unit)である。OSプログラムは、CPU101によって常時実行されるプログラムである。OSプログラムとは、いわゆる基本ソフトであって、コンピュータにおいて、ハードウェアを抽象化したインターフェイスをアプリケーションソフトウェアに提供するプログラムである。
OS(Operating System, オペレーティングシステム)108は、CPU101によって実行されることにより、ハードウェア資源(記憶部102等)を利用して、各種処理を行う。タスク109とは、OS108の処理の実行単位である。なお、タスク109は、複数同時に実行されても良い(すなわち、OS108は、いわゆるマルチタスクOSであっても良い。)。
システムコール110は、OS108の各種機能を呼び出すために使用される機構である。システムコール110は、サービスコールとも呼称される。一般的に、システムコール110は、関数形式(open()関数、exit()関数等)で提供される。例えば、あるタスク109がシステムコール110を呼び出して実行することにより、他のタスクの状態を変更することができる。ここで、タスク109がシステムコール110を呼び出して実行することにより、プロセッサエレメント200内において実行されているタスク209の状態を変更することも可能である。この場合、システムコール110の実行により、メモリアクセス命令が共有バス1を介してタスク管理ブロック212(後述)に書き込まれる。ここで、システムコール110の実行前にレジスタ103からCPU101の識別子が読み出される。そして、メモリアクセス命令は、この読み出されたCPU101の識別子を含むように構成される。
ディスパッチャ111は、OS108の一機能であり、実行可能状態(Ready)にあるタスク109の中から、次に実行すべきタスク109を一つ選択して実行状態(Running)とする(タスクディスパッチ)。ディスパッチャ111は、タスク管理ブロック112を参照し、実行可能状態(Ready)となっているタスク109からCPU101の実行権限を与えるタスクを選択する(タスクスケジューリング機能)。ディスパッチャ111は、タスクディスパッチを行う際に、タスク管理ブロック112のトレース書き込み領域(後述)にディスパッチ処理に関する情報を書き込む。当該書き込み処理については、図3及び図4を参照して後述する。
タスク管理ブロック112は、各タスク109の状態を保持する記憶ブロックである。タスク管理ブロック112の保持する情報は、タスク状態の変更要求(CPU200から受信したメモリアクセス命令、またはディスパッチャ111によるディスパッチ処理)に応じて適宜書き換えられる。タスク管理ブロック112への書き込みは、ワード単位で行われる。ワードとは、CPUのデータバス幅である。例えばCPU101が32ビットCPUである場合、タスク管理ブロック112への書き込みは4バイト(1ワード=4バイト)毎に行われる。
タスク管理ブロック112への書き込み、及びタスク管理ブロック112からの読み出しには、ロック(アクセスロック)の取得が必要となる。図2を参照して、ロックの取得及びタスク管理ブロック112の読み書きにかかるOS108の処理を説明する。
ディスパッチャ111がディスパッチ処理を行う場合、またはシステムコール110、210に伴うメモリアクセス命令が入力された場合、ディスパッチャ111、システムコール110、またはシステムコール210の機能としてロック変数113の読み出しが実行される(S11)。ロック変数113は、「ロック中」または「空き」のいずれかの値をとる変数である。ロック変数113が「ロック中」である場合(S12:ロック中)、一定時間後にロック変数113の読み出しが再実行される(S11)。
ロック変数113が「空き」である場合(S12:空き)、ロック変数113は、「ロック中」に書き換えられる(S13)。そして、タスク管理ブロック112への書き込み、またはタスク管理ブロック112からの読み出し処理が実行される(S14)。書き込み処理または読み出し処理の実行後に、ロック変数113は、「空き」に書き換えられる(S15)。
次に、タスク管理ブロック112の詳細を、図3を参照して説明する。図3は、タスク管理ブロック112の内部構成を示す概念図である。タスク管理ブロック112は、記憶部102(RAM等)の一部領域に設けられる。タスク管理ブロック112には、各タスクに関する情報を保持する領域が予約されている。図3の例では、タスク管理ブロック112には、アドレス1にタスクAの情報が書き込まれ、アドレス2にタスクBの情報が書き込まれ、アドレス3にタスクCの情報が書き込まれる。さらに、タスク管理ブロック112には、後述のトレースエリア107に書き込まれるトレースデータを一時的に記憶するトレース書き込み領域が設けられる。また、トレース書き込み領域には、ディスパッチ処理時にもディスパッチャ111からの書き込みが生じる。CPU101は、タスク管理ブロック112に書き込まれた内容を基にタスク109に関する処理を適宜実行する。
次に、図4を参照して、タスク管理ブロック112におけるタスク毎の領域の構成について説明する。図4は、図3に示すタスクAの領域の書き込みデータを示す概念図である。図示するように、当該領域には、タスク状態、他タスクへのリンク、待ち要因、退避コンテキスト情報、及び書き込みプロセッサが書き込まれる。各情報について以下に説明する。
タスク状態とは、当該タスクの現在の状態を示す情報である。タスク状態は、休眠状態(Sleep)、実行可能状態(Ready)、待機状態(Waiting)、実行状態(Running)等の値のいずれかとなる。
他タスクへのリンクとは、実行可能状態(Ready)となっているタスクが複数ある場合に、どのタスクを最初に実行状態(Running)に遷移させるかを示す情報である。当該リンクは、線形のポインタが格納される。図4では、タスクAがタスクCの後に実行状態(Running)に遷移することを示している。
待ち要因とは、当該タスクが待機状態(Waiting)である場合に、どのような要因により処理待ちの状態となっているかを示す情報である。例えば、待ち要因として、「X処理を行うために取得するセマフォの解放を待っている」といった情報が書き込まれる。
退避コンテキスト情報とは、タスク呼び出しが割り込みで生じた場合等に、割り込み前のCPU101による各種処理の状態を示す。例えば、退避コンテキスト情報として、スタックポインタの値を保持する。
書き込みプロセッサとは、上述の情報の書き込み元となるプロセッサを示す情報である。前述のように、タスク状態は、同一プロセッサエレメント内で動作するタスク等から変更される場合に加え、共有バス1を介したメモリアクセス命令により変更される場合がある。そこで、この呼び出し元のプロセッサが分かるように、プロセッサIDを書き込む。図4の例は、タスクAのタスク状態を実行可能状態(Ready)に変更したプロセッサのIDがP2(CPU201)であることを示している。この書き込みプロセッサの値は、タスク管理ブロック112への書き込み元となるプロセッサエレメント内のレジスタ(レジスタ103、レジスタ203)から読み出された値となる。
続いて、図1を再度参照し、バス制御部104、時計部105、トレース制御部106、及びトレースエリア107の説明を行う。なお本実施の形態では、時計部105、トレース制御部106、及びトレースエリア107は、ハードウェアエミュレータ(図1中の点線部分)の機能としてそれぞれ実現される。
バス制御部104は、共有バス1を介して送受信する情報、命令の調停を行う処理部である。バス制御部104は、受信したメモリアクセス命令をOS108に供給する。また、バス制御部104は、システムコール110の実行に応じて、OS208へのメモリアクセス命令をバス制御部204に送信する。
時計部105は、時刻情報を生成し、適宜トレース制御部106に時刻情報を供給する。なお、プロセッサエレメント200にも時計部205が配置されている。そのため、本実施の形態ではプロセッサエレメント間では、時刻情報は同期されない。
トレース制御部106は、タスク管理ブロック112への書き込みを監視し、書き込みが生じた場合に、当該書き込み内容に応じてトレースエリア107にトレースデータを書き込む処理部である。トレース制御部106の構成、動作について図5を参照して説明する。図5は、トレース制御部106の内部構成、及びタスク管理ブロック112及びトレースエリア107の関係を示す概念図である。
トレース制御部106は、監視部114と、ワード読み出し部115と、ワード書き込み部116と、を備える。監視部114は、タスク管理ブロック112の書き込み状況を監視する処理部である。図3を例に説明する。監視部114は、アドレス1、アドレス2、アドレス3、アドレス4に対して書き込みが生じたかを監視する。タスク管理ブロック112には各タスクの領域が割り当てられており、監視部114は、予めこれらのアドレスの割り当てを把握している。監視部114は、これらのアドレスのいずれかに対して書き込みが生じた時点で、書き込みが生じたアドレスをワード読み出し部115に通知する。
ワード読み出し部115は、監視部114から通知されたアドレスへの書き込みをワード単位で読み出す処理部である。ワード読み出し部115の読み出し処理は、いわゆるクオリファイトレースと呼ばれる機能により実現される。ワード読み出し部115は、読み出したデータ(ワード)を順次ワード書き込み部116に供給する。さらに、ワード読み出し部115は、読み出し先のアドレスをワード書き込み部116に通知する。読み出し先のアドレスの情報は、トレース出力部2によりトレースデータを出力する際にタスクの識別子を特定するために使用される。
ワード書き込み部116には、時計部105から時刻情報が供給される。さらに、ワード書き込み部116には、ワード読み出し部115が読み出したワード、及び読み出し先のアドレスの情報が順次供給される。ワード書き込み部116は、供給されたワードを基にトレースデータをトレースエリア107にワード単位で書き込む。ワード書き込み部116は、トレースエリア107に対するロックを行うことなく、ワード読み出し部115からのワードの供給が生じた時点で書き込み処理を開始する。以下、トレースエリア107の構成と合わせて書き込み処理を説明する。
トレースエリア107は、トレースデータを保持する記憶領域である。トレースエリア107は、一般的にバッファ(たとえばリングバッファ)として構成される。トレースエリア107には、ワード書き込み部116からトレースデータが順次書き込まれる。詳細には、ロックを取得した(ロック変数113を「ロック中」に変更した)CPUの順序でトレースデータが順次書き込まれる。
図6は、トレースエリア107のデータをトレース出力部2によって出力した状態の一例を示す概念図である。図6では、トレースエリア107に対し、CPU101(P1)により実行されるタスクAが、CPU201から起動され(詳細にはCPU201により実行されるタスク209から起動され)、CPU101(P1)により実行開始され、セマフォ待ちに移行するという一連の流れがトレースデータとして格納されている。以下、トレースデータを構成する各項目について説明する。
時刻とは、トレースデータが書き込まれた時刻情報である。当該項目(時刻)には、トレース制御部106が時計部105から取得した時刻情報が書き込まれる。タスクIDとは、処理対象のタスクの識別子である。この情報(タスクの識別子)は、ワード読み出し部115が当該トレースデータを読み出した先のアドレスの情報から一意に定まる。状態とは、処理対象のタスクの状態(Ready等)である。待ち要因とは、状態が"Waiting"である場合に、当該タスクがどのような要因で待ち状態となっているかを示す情報である。状態が"Waiting"ではない場合、待ち要因には値が設定されない。PIDとは、書き込み元となるプロセッサの識別子を示す情報である。
これらの各情報(時刻を除く)には、タスク管理ブロック112から読み出された値(または読み出し処理から把握できる値)が基本的にそのまま代入される。すなわち、ワード書き込み部116は、図4に示す状態、待ち要因、PIDをワード単位で受け付け、そのままワード単位で書き込む。さらに、ワード書き込み部116は、時刻情報やタスクIDをワード単位でトレースエリア107に書き込む。
上記したように、トレース制御部106は、記憶部102内のタスク管理ブロック112に書き込まれた情報を読み出し、読み出した情報をタスク処理に関する情報(タスク管理情報とも呼称する。上述したトレースエリア107に書き込まれる各情報(状態、待ち要因、PID))としてトレースエリア107に書き込む。すなわち、トレース制御部107は、共有バス1を介したタスク管理情報のやり取りを行うことなく、トレースエリア107への書き込みを実行する。
再び図1を参照する。トレース出力部2は、プロセッサエレメント100のトレースエリア107及びプロセッサエレメント200のトレースエリア207からトレースデータを取得し、取得したトレースデータから一般的なディスプレイ装置等に表示する表示情報を生成する処理部である。トレース出力部2は、いわゆるタスクデバッガやパフォーマンスアナライザと呼ばれるツールに相当する。トレース出力部2は、ユーザの要求に応じてトレースデータを取得する。例えば、トレース出力部2は、ユーザがタスク109の動作のみを把握したい場合、トレースエリア107のみからトレースデータを取得する。この際、取得したトレースデータは、図6に示すように、CPU201が実行するタスクからの状態変更に関する情報(PID)も含む。
続いて、本実施の形態にかかるマルチプロセッサ装置について、処理の流れに着目して説明を行う。はじめに、CPU201が実行するタスク209から、CPU101が実行するタスク109の状態を変更する場合の処理の流れについて説明する。図7は、当該処理の流れを示すフローチャートである。
はじめに、タスク209は、タスク109の状態変更を行うためにシステムコール210を実行する。この際、システムコール210は、ロックを取得する(ロック変数113を「ロック中」に書き換える、S21)。なお、ロックが取得できない場合、一定時間後にロックの取得処理を繰り返し行う。ロック取得成功後に、レジスタ203からCPU201の識別子が読み出される。システムコール210の発行により、CPU201の識別子を含むメモリアクセス命令がバス制御部204を介して発行される(S22)。そして、メモリアクセス命令に応じて、タスク管理ブロック112が書き換えられる(S23)。トレース制御部106は、タスク管理ブロック112への書き込みを検出する(S24)。トレース制御部106は、検出した書き込み内容に応じてトレースエリア107に書き込む(S25)。また、CPU101は、タスク管理ブロック112に書き込まれた内容を基にタスク109に関する処理を適宜実行する。
続いて、ディスパッチャ111がタスク109をディスパッチ(タスクの状態を実行状態(Running)に変更する処理の流れについて説明する。図8は、当該処理の流れを示すフローチャートである。
ディスパッチャ111は、ロックを取得する(ロック変数113を「ロック中」に書き換える、S31)。ロック取得成功後に、ディスパッチャ111は、タスク管理ブロック112を参照し、一般的なタスクスケジューリングの手法により、実行状態(Running)に遷移させるタスク109を選択する(S32)。そして、ディスパッチャ111は、ディスパッチ処理の内容に応じて、タスク管理ブロック112に対する書き込みを行う(S33)。ここで、ディスパッチャ111は、タスク管理ブロック112のトレース書き込み領域(図3)にディスパッチ対象となるタスクのID、CPU101の識別子(レジスタ103の保持値)等を書き込む。トレース制御部106は、タスク管理ブロック112内のトレース書き込み領域(図3)への書き込みを検出する(S34)。トレース制御部106は、検出した書き込み内容をトレースエリア107に書き込む(S35)。また、CPU101は、タスク管理ブロック112に書き込まれた内容を基にタスク109に関する処理を適宜実行する。
続いて、本実施の形態にかかるマルチプロセッサ装置の効果について説明する。上述のように、トレース制御部106は、タスク管理ブロック112を監視し、CPU201(厳密にはCPU201が動作させるタスク209)からタスク109の状態変更を指示するメモリアクセス命令の書き込みを検出する。トレース制御部106は、検出した書き込み内容を、原則としてそのままタスク処理に関する情報(タスク処理情報)として同一プロセッサエレメント100内のトレースエリア107に書き込む。この際、共有バス1に対するトレースデータの転送処理は一切行われない。これにより、共有バス1を介して送受信される情報量を低減することができる。共有バス1を介して送受信される情報量が低減されることにより、共有バス1を介した確実な情報伝達を実現することができる。
さらに、CPU201からタスク109の状態変更を行う場合、タスク管理ブロック112に書き込まれる情報には、CPU201の識別子(レジスタ203の保持値)を含まれる。そして、トレース制御部106は、CPU201の識別子をトレースデータに含めてトレースエリア107に書き込む。これにより、ユーザは、CPU201から指示されて実行したタスク処理を把握することができる。すなわち、CPU101が実行するタスクの全ての情報が命令発行元の情報(プロセッサID)と共にトレースエリア107に集約される。よってユーザは、トレースエリア107内のトレースデータを参照するのみでCPU101が実行する全てのタスク109の詳細を把握(他のCPUから指示されて実行した処理の把握を含む)することができる。換言すると、CPU101が実行するタスク109の情報を参照する際に、複数のトレースエリアからトレースデータを取得し、取得したトレースデータのソートを行う必要がない。よって、本実施の形態にかかるマルチプロセッサ装置は、ユーザに必要な情報のみを速やかに提供することができる。
上述したように、トレース制御部106は、時計部105から供給された時刻情報をタスク109に関する情報と共にトレースエリア107に書き込む。これにより、ユーザは、トレースデータを参照することにより、タスク109に関する操作が行われた時刻を正確に把握することができる。
さらに、トレースエリア107には、時計部105から取得した時刻情報のみが書き込まれ、プロセッサエレメント200内の時計部205の計測した時刻情報は一切書き込まれない。そのため、時計部105の単位時間と時計部205の単位時間が異なる場合であっても、ユーザは、各トレースデータに関する事象が生じた時刻を把握することができる。
なお、上述の説明では、両プロセッサエレメント(100、200)がそれぞれトレースエリア(107、207)を持つ構成として説明したが、必ずしもこれに限られない。以下、図9を参照して、一方のプロセッサエレメントのみがトレースエリアを有する構成について説明する。
本実施の形態にかかるマルチプロセッサ装置は、非対称型マルチプロセッサ型の構成とすることが可能である。この場合、あるプロセッサエレメント内に存在するCPUの実行するタスクの重要度が低く、当該タスクに関する情報を取得しなくても良いケースがある。図9は、プロセッサエレメント100内にのみトレースエリア107が配置され、プロセッサエレメント200内にはトレースエリアが配置されないマルチプロセッサ装置を示している。当該構成であっても、プロセッサエレメント100内の各処理部が、上述の動作を行うことによりタスク109に関する所望のトレースデータをトレースエリア107内に格納することができる。さらに、プロセッサエレメント200内にトレースメモリ等を設ける必要が無くなり、マルチプロセッサ装置の構成を必要最小限にすることができる。これにより、マルチプロセッサ装置のシステムコストを削減することができる。
<実施の形態2>
本実施の形態にかかるマルチプロセッサ装置は、3つ以上のプロセッサエレメントを有することを特徴とする。本実施の形態にかかるマルチプロセッサ装置は、一般的なマルチプロセッサ装置と比べて予測可能性が向上するという効果を称する。以下、本実施の形態にかかるマルチプロセッサ装置の構成、効果について実施の形態1にかかるマルチプロセッサ装置と異なる点を中心に説明する。
図10は、本実施の形態にかかるマルチプロセッサ装置の構成を示すブロック図である。なお、図面において、同一名及び同一符号を付した処理部及び記憶部は実施の形態1と基本的に同じ処理を行う(他の実施の形態に関する図面でも同様である)。当該マルチプロセッサ装置は、プロセッサエレメント100及びプロセッサエレメント200に加えて、プロセッサエレメント300を備える。プロセッサエレメント300の内部構成、及び動作は、プロセッサエレメント100と同様であればよい。
各トレース制御部(106、206、306)は、図5に示したように監視部、ワード読み出し部、及びワード書き込み部を有する構成である。
以下、本実施の形態にかかるマルチプロセッサ装置の動作の説明に先立ち、一般的なマルチプロセッサ装置において生じる予測可能性に関する問題について述べる。特許文献4をはじめとするマルチプロセッサ装置では、タスク管理ブロックに対するロックの取得とは別に、トレースエリアに対するロックを取得する必要がある。トレースエリアに対するロックを取得した後に、トレースエリアへの書き込みが開始する。
これらの3つ以上のCPUを備えるマルチプロセッサ装置(特許文献4をはじめとするマルチプロセッサ装置)において、第1CPUの処理に応じてトレースエリアがロックされている場合について考える。この場合、第2CPU及び第3CPUの処理は、トレースエリアのロックの取得待ちとなる。ここで、トレースエリアのロックが解除される。この場合、第2CPUの処理に応じてタスク管理ブロックがロックされ、第3CPUの処理に応じてタスク管理ブロックがロックされる場合がある。この場合、次にロックが獲得できるCPUが第2CPUか、第3CPUかはロック取得を要求し始めた順序にかかわらず不定である。そのため、ロック要求開始からロック獲得までの時間の上限は定めることができず、トレースにかかる処理の予測可能性が低下してしまう。
一方、本実施の形態にかかるトレース制御部106は、トレースエリア107に関するロック処理を一切行うことなくトレースエリア107への書き込みを行う。以下、前述の図5、及び図11を参照して本実施の形態にかかるマルチプロセッサ装置の動作を説明する。
図11は、タスク109に対する状態変更が、各プロセッサ(CPU101、201、301)から要求されている場合の各記憶部、変数の状態を示す図である。図11において、ロック変数113については、どのCPUからの指示によりロックが行われているかが示されている。図11において、タスク管理ブロック112、及びトレースエリア107については、どのCPUの呼び出しに応じて書き込み処理が生じているかが示されている。
はじめに、CPU101は、タスク管理ブロック112をロックする(t1)、詳細には、ロック変数113を「ロック中」に変更する。そして、CPU101は、タスク管理ブロック112への書き込みを開始する(t2)。
図5に示すように、トレース制御部106内の監視部114は、タスク管理ブロック112への書き込みを検出する。監視部114は、書き込みの検出後に即座にワード読み出し部115に書き込みの生じたアドレスを通知する。ワード読み出し部115は、当該アドレスから1ワード毎にデータを読み出し、ワード書き込み部116に読み出したワードを読み出し直後に供給する。ワード書き込み部116は、供給されたワードに応じて、トレースエリア107への書き込みを開始する(t3)。このように、トレースエリア107への書き込みは、タスク管理ブロック112への書き込みの最中(詳細には直後)からタスク管理ブロック112への書き込みと並行して開始される。
CPU101は、タスク管理ブロック112への書き込みを終了する(t4)。CPU101は、書き込みの終了と共にタスク管理ブロック112のロックを解放する、すなわちロック変数113を「空き」に変更する(t4)。トレースエリア107への書き込みは、タスク管理ブロック112への書き込みと並行して行われている。そして、ワード書き込み部116は、トレースエリア107への書き込みを終了する(t5)。
トレースエリア107に書き込む情報は、時刻情報の追加を除けばタスク管理ブロック112に書き込む情報と略同一である。また、前述のように、トレース制御部106は、ハードウェアエミュレータの一機能として実現され、トレース制御部106の動作速度は、OS108の処理速度に対応できるように構成される。そのため、ワード書き込み部116は、タスク管理ブロック112への書き込みの終了(t4)の直後(t5)にトレースエリア107への書き込みを終了する。
続いて、CPU201は、タスク管理ブロック112をロックする(t6)。そして、CPU201は、メモリアクセス命令の送信により、タスク管理ブロック112への書き込みを開始する(t7)。この直後にワード書き込み部116は、トレースエリア107への書き込みを開始する(t8)。そして、CPU101の場合と同様に、CPU201は、メモリアクセス命令の送信を終了することにより、タスク管理ブロック112への書き込みを終了する(t9)。CPU201は、書き込みの終了と共にタスク管理ブロック112のロックを解放する(t9)。ワード書き込み部116は、タスク管理ブロック112への書き込みの終了(t9)の直後にトレースエリア107への書き込みを終了する(t10)。
ここで、トレースエリア107への書き込みの際に、トレースエリアに対するロック処理は一切行われない。そのため、前述のようにCPU301がトレースエリアに対するロックを取得するようなケースは発生しない。更に、タスク管理ブロック112への書き込みと、トレースエリア107への書き込みと、は並行して行われる。そのため、タスク管理ブロック112への書き込み内容と、トレースエリア107への書き込み内容と、の整合性が保たれる。
続いて、本実施の形態にかかるマルチプロセッサ装置の効果について改めて説明する。上述のように、本実施の形態にかかるマルチプロセッサ装置は、3つのプロセッサエレメントを有し、図5に示すようにトレースエリア107に対するロックを取得することなくトレースエリア107への書き込みを行う。詳細には、トレース制御部106は、タスク管理ブロック112への書き込みを検出し、タスク管理ブロック112の書き込み中に書き込みワードを取得する。そして、トレース制御部106は、タスク管理ブロック112の書き込み中にトレースエリア107への書き込みを実行する。これにより、タスク管理ブロック112への書き込みとトレースエリア107への書き込みをほぼ同時に終了することが出来る。さらに、トレースエリア107のロックを考慮しない(ロックを一切扱わない)ことにより、上述したトレースにかかる処理時間の予測可能性の問題を解消することができる。
なお、上述の説明では、3つのプロセッサエレメントを備えるマルチプロセッサ装置について説明したが必ずしもこれに限られない。マルチプロセッサ装置は、4つ以上のプロセッサエレメントを備えても良いことは勿論である。
<実施の形態3>
本実施の形態にかかるマルチプロセッサ装置は、各プロセッサエレメントが共通の時刻情報を参照することを特徴とする。以下、本実施の形態にかかるマルチプロセッサ装置について、実施の形態1と異なる点を説明する。
図12は、本実施の形態にかかるマルチプロセッサ装置の構成を示すブロック図である。マルチプロセッサ装置は、プロセッサエレメント100及びプロセッサエレメント200を有する。プロセッサエレメント100、及びプロセッサエレメント200は、内部に時計部を有さない。時計部3は、プロセッサエレメント100及びプロセッサエレメント200に時刻情報を提供する処理部である。すなわち、時計部3は、前述の時計部105(205)と同様にトレースデータに含まれる時刻情報をトレース制御部106(206)に適宜提供する。
他の処理部(トレース制御部105、トレース制御部205、CPU101、CPU201等)は、実施の形態1と同様の動作を行う。
本実施の形態にかかるマルチプロセッサ装置では、複数のプロセッサエレメントに対して、単一の時計部3のみが備えられる構成である。すなわち、各プロセッサエレメント(100、200)は、内部に時計部を有する必要が無くなる。これにより、各プロセッサエレメント(100、200)の構成が簡易となり、マルチプロセッサ装置全体としてのシステムコストを低減することができる。さらに、本実施の形態にかかるマルチプロセッサ装置は、実施の形態1と同様に、トレースデータの転送による共有バスの混雑を回避できるという効果も奏する。
なお、上述の説明(図12)では、プロセッサエレメントが2つであるものとして説明したが、3つ以上のプロセッサエレメントを持つマルチプロセッサ装置において単一の時計部を持つ構成としても良いことは勿論である。
<実施の形態4>
本実施の形態にかかるマルチプロセッサ装置は、上述のトレース制御部に相当する処理をプログラム実行により実現することを特徴とする。以下、本実施の形態にかかるマルチプロセッサ装置について、実施の形態1と異なる点を中心に説明する。
図13は、本実施の形態にかかるマルチプロセッサ装置の構成を示すブロック図である。本実施の形態では、システムコール110もしくは210によってタスク管理ブロック112への書き込みが生じた場合に、時計部105から時刻情報が取得され、当該時刻情報もタスク管理ブロック112に書き込まれる。また、時計部105と205は同期されている。そのため、ある時刻において、いずれかの時計部に対し、いずれかのプロセッサから時刻を読み出したとしても同じ時刻が取得できる。
プロセッサエレメント100及びプロセッサエレメント200は、ハードウェアエミュレータの一機能として実現されていたトレース制御部を有さない。これに代わり、トレースアプリケーション117、217が動作する構成である。
CPU101は、図示しない図示しないHDD(Hard Disc Drive)等の補助記憶装置からトレースアプリケーション117のプログラムを読み出す。CPU101は、読み出したプログラムを、ハードウェア資源(記憶部102等)を利用して実行することによりトレースアプリケーション117を動作させる。
トレースアプリケーション117は、タスク管理ブロック112への書き込み内容に応じてトレースエリア107にトレースデータを書き込むアプリケーションである。すなわち、トレースアプリケーション117は、トレース制御部106と略対応する処理を行う。
詳細には、トレースアプリケーション117は、ディスパッチャ111から呼び出され、ディスパッチを行ったという情報と時計部105から読み出した時刻情報をトレースエリア107に書き込むとともに、直前にシステムコール110もしくは210によって行われたタスク管理ブロック112への書き込み内容、及び時刻情報をトレースエリア107に書き込む。
上述の構成によっても、実施の形態1と同様の効果、すなわち共有バス1を介して送受信される情報量を低減することができ、共有バス1を介した確実な情報伝達を実現することができる。
以上、本発明を上記実施形態に即して説明したが、上記実施形態の構成にのみ限定されるものではなく、本願特許請求の範囲の請求項の発明の範囲内で当業者であればなし得る各種変形、修正、組み合わせを含むことは勿論である。
例えば、本発明にかかるマルチプロセッサ装置は、対称型マルチプロセッサ型であってもよく、非対称型マルチプロセッサ型であってもよい。また、本発明にかかるマルチプロセッサ装置は、マイクロコンピュータ(マイコン)に組み込まれても良く、他の用途に用いられても良い。
上述のOS(108、208)プログラム及びトレースプログラム(117、217)は、前述のように任意のコンピュータ内で動作するプログラムとして実現される。プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
1 共有バス
2 トレース出力部
3 時計部
100、200、300 プロセッサエレメント
101、201、301 CPU
102、202、302 記憶部
103、203、303 レジスタ
104、204、304 バス制御部
105、205、305 トレース制御部
106、206、306 時計部
107、207、307 トレースエリア
108、208、308 OS(オペレーティングシステム)
109、209、309 タスク
110、210、310 システムコール
111、211、311 ディスパッチャ
112、212、312 タスク管理ブロック
113、213、313 ロック変数
114 監視部
115 ワード読み出し部
116 ワード書き込み部
117、217 トレースアプリケーション

Claims (14)

  1. プログラムに基づいて演算処理を行う第1プロセッサ、第1タスク管理ブロック、第1トレース領域、及び前記第1タスク管理ブロックを監視する第1トレース制御部を有する第1プロセッサエレメントと、プログラムに基づいて演算処理を行う第2プロセッサを有する第2プロセッサエレメントと、を備え、
    前記第1プロセッサエレメントと前記第2プロセッサエレメントは、伝送経路である共有バスにより相互に接続し、
    前記第2プロセッサは、前記第1プロセッサが実行するタスクの状態変更を指示するシステムコールを実行し、当該システムコールの実行により前記第1タスク管理ブロックへの第1メモリアクセス命令を前記共有バスを介して送信し、
    前記第1メモリアクセス命令は、前記第2プロセッサの識別子を含み、
    前記第1プロセッサは、前記第1メモリアクセス命令に応じて前記タスクにかかる処理を行い、
    前記第1トレース制御部は、前記第1タスク管理ブロックへの前記第1メモリアクセス命令の書き込みを検出し、検出した前記第1メモリアクセス命令に対応する前記タスクにかかる処理を第1タスク処理情報として前記第2プロセッサの識別子と共に前記第1トレース領域に書き込む、
    マルチプロセッサ装置。
  2. 前記第1トレース制御部は、前記第1タスク処理情報の書き込みの際に前記共有バスにデータを送信することなく前記第1トレース領域への書き込みを行うことを特徴とする請求項1に記載のマルチプロセッサ装置。
  3. 前記第2プロセッサエレメントは、第2タスク管理ブロック、第2トレース領域、及び前記第2タスク管理ブロックを監視する第2トレース制御部を有し、
    前記第1プロセッサは、前記第2プロセッサが実行するタスクの状態変更を指示するシステムコールを実行し、当該システムコールの実行により前記第2タスク管理ブロックへの第2メモリアクセス命令を前記共有バスを介して送信し、
    前記第2メモリアクセス命令は、前記第1プロセッサの識別子を含み、
    前記第2プロセッサは、前記第2メモリアクセス命令に応じて前記タスクにかかる処理を行い、
    前記第2トレース制御部は、前記第2タスク管理ブロックへの前記第2メモリアクセス命令の書き込みを検出し、検出した前記第2メモリアクセス命令に対応する前記タスクにかかる処理を第2タスク処理情報として前記第1プロセッサの識別子と共に前記第2トレース領域に書き込む、
    ことを特徴とする請求項1または請求項2に記載のマルチプロセッサ装置。
  4. 前記第1タスク管理ブロックには、アクセスロックの取得が成功した後に前記第1メモリアクセス命令が書き込まれ、前記第1メモリアクセス命令の書き込み終了後にアクセスロックが解放されることを特徴とする請求項1乃至請求項3のいずれか1項に記載のマルチプロセッサ装置。
  5. 前記第1トレース制御部は、
    前記第1タスク管理ブロックにおける前記第1メモリアクセス命令の書き込みアドレスを検出して通知する監視部と、
    前記監視部による書き込みアドレスの通知を受信し、受信直後から前記書き込みアドレスに書き込まれたデータをワード単位で読み出したワードデータを送信するワード読み出し部と、
    前記ワード読み出し部が送信した前記ワードデータを受信し、当該受信と並行して前記第1トレース領域へのワード単位での前記第1タスク処理情報の書き込みを実行するワード書き込み部と、
    を備えることを特徴とする請求項1乃至請求項4のいずれか1項に記載のマルチプロセッサ装置。
  6. 前記ワード書き込み部は、前記第1トレース領域に対するアクセスロックを行うことなく書き込み処理を実行することを特徴とする請求項5に記載のマルチプロセッサ装置。
  7. プログラムに基づいて演算処理を行う第3プロセッサを有する第3プロセッサエレメントと、を更に備え、
    前記第1乃至前記第3プロセッサエレメントは、伝送経路である共有バスにより相互に接続し、
    前記第3プロセッサは、前記第1プロセッサが実行するタスクの状態変更を指示するシステムコールを実行し、当該システムコールの実行により前記第1メモリアクセス命令を、前記共有バスを介して送信することを特徴とする請求項1乃至請求項6のいずれか1項に記載のマルチプロセッサ装置。
  8. 前記第1プロセッサエレメントは、時刻情報を生成する時計部を有し、
    前記第1トレース制御部は、前記時計部が生成した前記時刻情報を前記第1タスク処理情報及び前記第2プロセッサの識別子と共に前記第1トレース領域に書き込むことを特徴とする請求項1乃至請求項7のいずれか1項に記載のマルチプロセッサ装置。
  9. 前記マルチプロセッサ装置は、前記第1及び前記第2プロセッサエレメント外に時刻情報を生成する時計部を有し、
    前記第1トレース制御部は、前記時計部が生成した前記時刻情報を前記第1タスク処理情報及び前記第2プロセッサの識別子と共に前記第1トレース領域に書き込むことを特徴とする請求項1乃至請求項7のいずれか1項に記載のマルチプロセッサ装置。
  10. 前記第2プロセッサエレメントは、前記第2プロセッサの識別子を保持するレジスタを備えることを特徴とする請求項1乃至請求項9のいずれか1項に記載のマルチプロセッサ装置。
  11. 前記第1トレース領域からトレースデータを読み出し、読み出したトレースデータから表示情報を生成するトレース出力部を更に備える請求項1乃至請求項10のいずれか1項に記載のマルチプロセッサ装置。
  12. 請求項1乃至請求項11のいずれか1項に記載のマルチプロセッサ装置を搭載したマイクロコンピュータ。
  13. プログラムに基づいて演算処理を行う第1プロセッサ、第1タスク管理ブロック、第1トレース領域、及び前記第1タスク管理ブロックを監視する第1トレース制御部を有する第1プロセッサエレメントと、プログラムに基づいて演算処理を行う第2プロセッサを有する第2プロセッサエレメントと、を備えるマルチプロセッサ装置の制御方法であって、
    前記第1プロセッサエレメントと前記第2プロセッサエレメントは、伝送経路である共有バスにより相互に接続し、
    前記第2プロセッサは、前記第1プロセッサが実行するタスクの状態変更を指示するシステムコールを実行し、当該システムコールの実行により前記第1タスク管理ブロックへの第1メモリアクセス命令を前記共有バスを介して送信し、
    前記第1メモリアクセス命令は、前記第2プロセッサの識別子を含み、
    前記第1プロセッサは、前記第1メモリアクセス命令に応じて前記タスクにかかる処理を行い、前記第1トレース制御部は、前記第1タスク管理ブロックへの前記第1メモリアクセス命令を検出し、検出した前記第1メモリアクセス命令に対応する前記タスクにかかるタスク処理情報を前記第2プロセッサの識別子と共に前記第1トレース領域に書き込む、マルチプロセッサ制御方法。
  14. 前記第1トレース制御部は、前記タスク処理情報の書き込みの際に前記共有バスにデータを送信することなく前記第1トレース領域への書き込みを行うことを特徴とする請求項13に記載のマルチプロセッサ制御方法。
JP2011268767A 2011-12-08 2011-12-08 マルチプロセッサ装置及びマルチプロセッサ装置の制御方法 Expired - Fee Related JP5844134B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011268767A JP5844134B2 (ja) 2011-12-08 2011-12-08 マルチプロセッサ装置及びマルチプロセッサ装置の制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011268767A JP5844134B2 (ja) 2011-12-08 2011-12-08 マルチプロセッサ装置及びマルチプロセッサ装置の制御方法

Publications (2)

Publication Number Publication Date
JP2013120524A JP2013120524A (ja) 2013-06-17
JP5844134B2 true JP5844134B2 (ja) 2016-01-13

Family

ID=48773130

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011268767A Expired - Fee Related JP5844134B2 (ja) 2011-12-08 2011-12-08 マルチプロセッサ装置及びマルチプロセッサ装置の制御方法

Country Status (1)

Country Link
JP (1) JP5844134B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6237230B2 (ja) * 2013-12-27 2017-11-29 富士通株式会社 メモリ管理プログラム、メモリ管理方法、及びメモリ管理装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005222388A (ja) * 2004-02-06 2005-08-18 Canon Inc タスクスイッチ情報表示装置及びコンピュータプログラムを記録した媒体
JP2010039695A (ja) * 2008-08-04 2010-02-18 Fujitsu Microelectronics Ltd マルチタスク・オペレーティング・システム及びデバッグ装置

Also Published As

Publication number Publication date
JP2013120524A (ja) 2013-06-17

Similar Documents

Publication Publication Date Title
US8112559B2 (en) Increasing available FIFO space to prevent messaging queue deadlocks in a DMA environment
KR101332840B1 (ko) 병렬 컴퓨팅 프레임워크 기반의 클러스터 시스템, 호스트 노드, 계산 노드 및 어플리케이션 실행 방법
JP4768354B2 (ja) ジョブ管理装置、ジョブ管理方法、ジョブ管理プログラム
JP2010079622A (ja) マルチコアプロセッサシステム、および、そのタスク制御方法
CN102779075A (zh) 一种在多处理器核系统中进行调度的方法、装置及系统
CN102541661B (zh) 实现等待地址同步接口的方法和设备
US10545890B2 (en) Information processing device, information processing method, and program
US20110173287A1 (en) Preventing messaging queue deadlocks in a dma environment
JPWO2013035246A1 (ja) 仮想計算機制御装置、仮想計算機制御方法、仮想計算機制御プログラム、及び集積回路
JP4992740B2 (ja) マルチプロセッサシステム、障害検出方法および障害検出プログラム
JP5844134B2 (ja) マルチプロセッサ装置及びマルチプロセッサ装置の制御方法
JP5195408B2 (ja) マルチコアシステム
JP6123487B2 (ja) 制御装置、制御方法及び制御プログラム
CN102736949B (zh) 改善对非连贯设备要执行的任务的调度
KR101332839B1 (ko) 병렬 컴퓨팅 프레임워크 기반 클러스터 시스템의 호스트 노드 및 메모리 관리 방법
JP4017005B2 (ja) 演算装置
JP2007052673A (ja) ジョブ管理システム、ジョブ管理方法、及びジョブ管理プログラム
JP2015022667A (ja) トレース情報収集装置およびトレース情報収集方法、並びにコンピュータ・プログラム
WO2024067492A1 (zh) 任务调度方法和电子装置
WO2019188180A1 (ja) スケジューリング方法、スケジューリング装置
JP2010026626A (ja) データを記録する方法、システム及びプログラム
JP2010026575A (ja) スケジューリング方法およびスケジューリング装置並びにマルチプロセッサシステム
JP4618647B2 (ja) リアルタイムosシステム
JP2011198063A (ja) データ入出力制御方法,データ入出力制御プログラムおよびデータ入出力制御装置
JP2006195705A (ja) プロセッサ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140814

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150316

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150407

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150529

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: 20151104

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151118

R150 Certificate of patent or registration of utility model

Ref document number: 5844134

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees