(57)【要約】【課題】タスク集合単位での性能測定に適したプロセッサシステムを提供する。【解決手段】プロセッサシステム１は、複数のタスクを切り替えて実行するＣＰＵ１０、ＣＰＵ１０で実行されるタスクを識別するためのタスクＩＤを格納するタスクＩＤ格納部１２、タスクＩＤの少なくとも一部の領域と比較される評価ＩＤを格納する評価ＩＤ格納部１４、ＣＰＵ１０で実行されるタスクの性能測定値を計測するカウンタ１６、及び、タスクＩＤ格納部１２に格納されたタスクＩＤと、評価ＩＤ格納部１４された評価ＩＤとを照合し、照合結果に応じてカウンタ１６を動作させるマッチング部１５とを備える。【選択図】図１
2007304765.tif 000002
【特許請求の範囲】
【請求項１】
複数のタスクを切り替えて実行するプロセッサと、
前記プロセッサで実行されるタスクを識別するためのタスクＩＤを格納するタスクＩＤ格納部と、
前記タスクＩＤの少なくとも一部の領域と比較される評価ＩＤを格納する評価ＩＤ格納部と、
前記プロセッサで実行されるタスクの性能測定値を計測するカウンタと、
前記タスクＩＤ格納部に格納されたタスクＩＤと、前記評価ＩＤ格納部された評価ＩＤとを照合し、照合結果に応じて前記カウンタを動作させるマッチング部と、
を備えるプロセッサシステム。
【請求項２】
前記評価ＩＤの値は可変である請求項１に記載のプロセッサシステム。
【請求項３】
前記タスクＩＤには、タスクが属するタスクグループを示すタスクグループ識別領域が設けられ、
前記マッチング部は、前記タスクグループ識別領域と前記評価ＩＤとを照合する請求項１に記載のプロセッサシステム。
【請求項４】
前記評価ＩＤは、性能測定の対象とするタスクのタスクグループを指定するマッチング識別子と、前記タスクＩＤのうちの前記タスクグループ識別領域を指定するマスク値とを含む請求項３に記載のプロセッサシステム。
【請求項５】
前記タスクグループ識別領域の値は、前記プロセッサで実行されるタスクの呼び出し元タスクに応じて決定される請求項３に記載のプロセッサシステム。
【請求項６】
前記タスクＩＤには、タスクが使用するリソースを指定するリソース識別領域が設けられており、
前記マッチング部は、前記リソース識別領域と前記評価ＩＤとを照合する請求項１に記載のプロセッサシステム。
【請求項７】
複数のタスクを切り替えて実行するプロセッサと、
前記プロセッサで実行されるタスクを識別するタスクＩＤを格納するタスクＩＤ格納部と、
前記プロセッサで実行されるタスクの性能測定を行う性能測定部とを備え、
前記タスクＩＤには、タスクが属するタスクグループを示すタスクグループ識別領域が設けられており、
前記性能測定部は、
前記タスクＩＤ格納部に格納されたタスクＩＤのタスクグループ識別領域を参照することにより、前記プロセッサで実行されるタスクが性能測定の対象となるタスクグループに属するタスクか否かを判定し、
前記プロセッサで実行されるタスクが性能測定の対象である場合に、当該タスクに対する性能測定を行うプロセッサシステム。
【請求項８】
前記タスクグループ識別領域によって、前記プロセッサで実行されるタスクが使用するリソースが指定される請求項７に記載のプロセッサシステム。
【請求項９】
前記タスクグループ識別領域の値は、前記プロセッサで実行されるタスクの呼び出し元タスクに応じて決定される請求項７に記載のプロセッサシステム。
【請求項１０】
前記性能測定部は、
前記タスクＩＤの少なくとも一部の領域と比較される評価ＩＤを格納する評価ＩＤ格納部と、
前記プロセッサで実行されるタスクの性能測定値を計測するカウンタと、
前記タスクＩＤ格納部に格納されたタスクＩＤと、前記評価ＩＤ格納部に格納された評価ＩＤとを比較し、比較結果に応じて前記カウンタを動作させるマッチング部と、
を備える請求項７に記載のプロセッサシステム。
【請求項１１】
プロセッサ、前記プロセッサで実行されるタスクを識別するタスクＩＤを格納するタスクＩＤ格納部、及び前記プロセッサで実行されるタスクの性能測定値を計測するカウンタを有するプロセッサシステムにおける性能測定方法であって、
前記タスクＩＤには、タスクが属するタスクグループを示すタスクグループ識別領域が設けられており、
前記プロセッサで実行されるタスクの切り替えに応じて、前記プロセッサにおいて新たに実行されるタスクのタスクＩＤを前記タスクＩＤ格納部に格納し、
前記タスクＩＤ格納部に格納されたタスクＩＤのタスクグループ識別領域を参照することにより、前記プロセッサで実行されるタスクが性能測定の対象となるタスクグループに属するタスクか否かを判定し、
前記プロセッサで実行されるタスクが性能測定の対象である場合に、当該タスクの性能測定値を前記カウンタに計測させる、性能測定方法。
【請求項１２】
前記タスクグループ識別領域によって、前記プロセッサで実行されるタスクが使用するリソースが指定される請求項１１に記載の方法。
【請求項１３】
前記前記タスクＩＤ格納部に格納するタスクＩＤ値を、前記プロセッサで実行されるタスクの呼び出し元タスクに応じて決定する請求項１１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチタスク環境を備えるプロセッサシステムに関し、特に、マルチタスク環境を備えるプロセッサシステムの性能測定技術に関する。
【背景技術】
【０００２】
自動車、航空機等の輸送機械や、携帯電話機、交換機等の通信機器に組み込まれ、これらの機械、機器の制御を行うプロセッサシステムは組み込みシステムと呼ばれている。組み込みシステムは、処理時間の向上、リアルタイム性の確保、プログラムのソフトウェア部品化による生産性向上等を実現するため、一般にマルチタスク環境を備えている。マルチタスク環境とは、並列実行可能な単位に分割されたプログラムを定期的に切り替えて実行したり、あるイベントの発生に応じて実行するプログラムを切り替えたりすることによって、複数のプログラムがあたかも並列実行されているような環境を意味する。ここで、タスクとは、マルチタスク環境で並列実行されるプログラム単位を意味する。このようなマルチタスク環境は、ＣＰＵと、ＣＰＵで実行されるタスクのスケジューリングを担うシステムプログラムによって実現される。
【０００３】
また、タスクの実行時間等の性能情報を取得することが可能なプロセッサシステムが、従来から知られている。取得された性能情報は、プロセッサシステムで実行されるユーザプログラムのデバッグに利用される。例えば、特許文献１には、ＣＰＵでの実行タスクを切り替える際に、タスク毎に予め割り当てられたタスクＩＤを特定のレジスタに書き込むこととし、さらに、この特定のレジスタの書き換えに同調してカウンタを動作させることによって、タスク毎の実行時間を測定することが可能なプロセッサシステムが開示されている。
【０００４】
近年、組み込みシステムの制御対象である組み込み機器の高機能化や複合化が進展し、これに伴って、組み込みシステムで実行されるユーザプログラムの規模が増大している。このような背景のもと、ユーザプログラムを構成する個々のタスク単位ではなく、タスクの集合を単位として、実行時間等の性能情報を取得することが求められている。例えば、ユーザプログラムを構成するタスク数が増えると、ある１つの機能が複数のタスクによって実現される場合が殆どであるため、個々のタスクの性能情報ではなく、当該機能を実現するためのタスク集合の性能情報の評価が必要な場合がある。また、ユーザプログラムの開発が分業体制で行われる場合が多く、別々に開発されたタスク集合を単位として性能情報を取得し、これを評価することが求められている。なお、以下では、１又は複数のタスクが属するタスク集合をタスクグループと呼ぶこととする。
【特許文献１】特開平５−１５１００４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１に開示されているような従来のプロセッサシステムは、タスク単位で性能情報の取得を行うものである。このため、タスクグループ単位での性能評価を行うためには、例えば、タスク単位で取得した性能情報を積算する等の付加的な処理が必要となる。
【０００６】
このように、従来のマルチタスク環境を備えるプロセッサシステムおいては、タスクの性能情報の取得がタスク単位で行われているため、タスクグループ単位での性能情報の取得に適していないという問題がある。
【課題を解決するための手段】
【０００７】
本発明の第１の態様にかかるプロセッサシステムは、複数のタスクを切り替えて実行するプロセッサと、前記プロセッサで実行されるタスクを識別するためのタスクＩＤを格納するタスクＩＤ格納部と、前記タスクＩＤの少なくとも一部の領域と比較される評価ＩＤを格納する評価ＩＤ格納部と、前記プロセッサで実行されるタスクの性能測定値を計測するカウンタと、前記タスクＩＤ格納部に格納されたタスクＩＤと、前記評価ＩＤ格納部された評価ＩＤとを照合し、照合結果に応じて前記カウンタを動作させるマッチング部とを備える。
【０００８】
このような構成により、本発明の第１の態様にかかるプロセッサシステムは、タスクＩＤの少なくとも一部の領域が共通している複数のタスクの性能測定値をカウンタによって計測することができる。つまり、タスクＩＤの少なくとも一部の領域が共通するという属性を有するタスクグループを対象として性能測定を行うことができる。
【０００９】
本発明の第２の態様にかかるプロセッサシステムは、複数のタスクを切り替えて実行するプロセッサと、前記プロセッサで実行されるタスクを識別するタスクＩＤを格納するタスクＩＤ格納部と、前記プロセッサで実行されるタスクの性能測定を行う性能測定部とを備える。さらに、前記タスクＩＤには、タスクが属するタスクグループを示すタスクグループ識別領域が設けられている。さらにまた、前記性能測定部は、前記タスクＩＤ格納部に格納されたタスクＩＤのタスクグループ識別領域を参照することにより、前記プロセッサで実行されるタスクが性能測定の対象となるタスクグループに属するタスクか否かを判定し、前記プロセッサで実行されるタスクが性能測定の対象である場合に、当該タスクに対する性能測定を行う。
【００１０】
このように、本発明の第２の態様にかかるプロセッサシステムは、タスクＩＤにタスクグループ識別領域を設け、プロセッサで実行されているタスクが属するタスクグループを識別することによって、特定のタスクグループに属するタスクのみを性能測定の対象とすることができる。
【００１１】
本発明の第３の態様にかかる性能測定方法は、プロセッサ、前記プロセッサで実行されるタスクを識別するタスクＩＤを格納するタスクＩＤ格納部、及び前記プロセッサで実行されるタスクの性能測定値を計測するカウンタを有するプロセッサシステムにおける性能測定方法である。具体的には、前記タスクＩＤには、タスクが属するタスクグループを示すタスクグループ識別領域が設けられており、前記プロセッサで実行されるタスクの切り替えに応じて、前記プロセッサにおいて新たに実行されるタスクのタスクＩＤを前記タスクＩＤ格納部に格納し、前記タスクＩＤ格納部に格納されたタスクＩＤのタスクグループ識別領域を参照することにより、前記プロセッサで実行されるタスクが性能測定の対象となるタスクグループに属するタスクか否かを判定し、前記プロセッサで実行されるタスクが性能測定の対象である場合に、当該タスクの性能測定値を前記カウンタに計測させる。
【００１２】
このように、本発明の第３の態様にかかる性能測定方法は、タスクＩＤにタスクグループ識別領域を設けることとし、プロセッサで実行されているタスクが属するタスクグループを識別することによって、特定のタスクグループに属するタスクのみを性能測定の対象とすることができる。
【発明の効果】
【００１３】
本発明により、タスクグループ単位での性能測定に適したプロセッサシステムを提供することができる。
【発明を実施するための最良の形態】
【００１４】
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
【００１５】
発明の実施の形態１．
本実施の形態にかかるプロセッサシステム１の構成を図１に示す。図１において、ＣＰＵ（Central Processing Unit）１０は、メモリ１１に格納されたシステムプログラム１１１及びユーザプログラム１１２を実行する演算処理部である。
【００１６】
メモリ１１は、ＣＰＵ１０に読み出されて実行されるシステムプログラム１１１及びユーザプログラム１１２の格納領域、並びに、これらのプログラムによって使用されるデータの格納領域として使用される。つまり、メモリ１１は、ＲＡＭ、ＲＯＭ、フラッシュメモリ等の組合せである。
【００１７】
システムプログラム１１１は、プロセッサシステム１自体の制御を担うプログラムである。システムプログラム１１１は、ＣＰＵ１０やメモリ１１等のハードウェア資源を利用して、マルチタスク環境を実現するためのタスク管理、メモリ管理等を実現する。ここで、タスク管理は、タスクの状態管理、実行可能な状態にあるタスクの実行順序の管理、タスクに与えられた優先度の管理、並びに、コンテキストの保存及び切り替え等を行うことにより、タスクの生成、削除、起動、及び終了を制御する処理である。
【００１８】
ユーザプログラム１１２は、ユーザ要求を達成するためのプログラムである。プロセッサシステム１が組み込み機器に搭載される場合であれば、ユーザプログラム１１２は、組み込み機器の機能を実現するためのプログラムである。１つのユーザプログラムは、使用するハードウェア資源や時間制約の違い等に基づいて分割された複数のタスクによって構成されている。なお、図１では、簡略化のために１つのユーザプログラム１１２のみを示しているが、メモリ１１には、プロセッサシステム１において多様な機能を実現するための複数のユーザプログラムが格納されている。ユーザプログラム１１２を含む複数のユーザプログラムを構成している複数のタスクの各々は、ＣＰＵ１０とシステムプログラムによって提供されるマルチタスク環境上で実行される。
【００１９】
ＴＩＤ格納部１２は、ＣＰＵ１０で実行されているタスクの識別子であるタスクＩＤ（ＴＩＤ）を格納する。ＴＩＤには、タスクが属するタスクグループを識別可能な情報が含まれている。上述したように、タスクグループとは、１又は複数のタスクの集合を意味する。ＴＩＤ格納部１２へのＴＩＤの格納は、実行タスクの切り替えを担うシステムプログラム１１１によって、タスクの起動に応じて行われる。
【００２０】
ＴＩＤの一例を図２に示す。図２の例では、ＴＩＤ全体を３２ビットデータとしている。具体的には、３２ビットデータのうちの８ビットをタスクグループＩＤと定義し、タスクが属するタスクグループを示している。また、他の８ビットを個別ＩＤと定義し、タスクグループ内の個々のタスクを示している。さらに、残りの１６ビットをリソースフィールドと定義し、タスクが使用するハードウェア資源を示している。リソースフィールドの各ビットとハードウェア資源とは一対一に対応しており、タスクが使用するハードウェア資源に対応するビットが"１"に設定され、使用しないハードウェア資源に対応するビットが"０"に設定される。これにより、リソースフィールドによって、特定のハードウェア資源を使用するタスクを特定することができる。このため、リソースフィールドもタスクグループ、つまり特定のハードウェア資源を使用するタスク集合を識別可能な識別子である。
【００２１】
性能測定部１３は、ＣＰＵ１０で実行されるタスクの性能情報をタスクグループ単位で収集する。なお、本実施の形態の性能情報測定部１３は、ＣＰＵ１０におけるタスクの実行時間をタスクグループ単位で収集するものであって、評価ＩＤ格納部１４、マッチング部１５、及びカウンタ１６を備えている。
【００２２】
評価ＩＤ格納部１４は、性能測定部１３による性能測定の対象とするタスクグループを指定するための評価ＩＤを格納する。評価ＩＤ格納部１４への評価ＩＤの設定は、性能測定対象のユーザプログラム１１２の実行に先立って、ユーザの指示に基づいて行なわれる。具体的には、例えば、性能測定対象のユーザプログラム１１２の実行に先立ってデバッガプログラム（不図示）をＣＰＵ１０に実行させることとし、プロセッサシステム１が備える入力端子（不図示）を介してユーザの指定値を入力し、入力値を評価ＩＤ格納部１４に格納すればよい。
【００２３】
マッチング部１５は、ＴＩＤ格納部１２の格納されたＴＩＤと、評価ＩＤ格納部１４に格納された評価ＩＤとを照合することにより、ＣＰＵ１０で実行されているタスクが性能情報の収集対象（つまり、タスク実行時間の計測対象）であるタスクグループに属するタスクであるか否かを判定する。実行中のタスクが性能情報の収集対象であるタスクグループに属すると判定した場合、マッチング部１５は、カウンタ１６を動作させてタスク実行時間を計測する。カウンタ１６は、タスク実行時間を保持するカウンタである。
【００２４】
以下では、性能測定部１３が備える評価ＩＤ格納部１４及びマッチング部１５の構成例及び動作概要を、図３及び図４を用いて説明する。図３は、評価ＩＤ格納部１４及びマッチング部１５の構成を示すブロック図である。図３において、評価ＩＤ格納部１４は、ＰＭＩＤ格納部１４１及びＰＭＥＮ格納部１４２を備えている。
【００２５】
ＰＭＩＤ格納部１４１には、性能測定の対象とするタスクグループを示すＴＩＤ全体が格納される。具体的には、ＴＩＤに含まれるタスクグループを指定する領域を、性能測定の対象とするタスクグループを示す値としたＴＩＤ値が格納される。以下では、ＰＭＩＤ格納部１４１に格納される値をマッチング識別子（ＰＭＩＤ）と呼ぶ。
【００２６】
ＰＭＥＮ格納部１４２には、ＴＩＤ及びＰＭＩＤにおいて性能測定の対象となるタスクグループを示すビットを指定するためのマスク値（ＰＭＥＮ）が格納される。つまり、図３の構成では、ＰＭＩＤ及びＰＭＥＮによって評価ＩＤを指定することとしている。
【００２７】
例えば、ＴＩＤを図２のように定義した場合、特定のタスクグループＩＤを有するタスクを性能測定の対象とするためには、ＰＭＥＮが"0xFF000000"に設定される。なお、"0x"は、以降に続く表示が１６進数であることを示している。また、特定の個別ＩＤを有するタスクを性能測定の対象とするためには、ＰＭＥＮが"0x00FF0000"に設定される。また、リソースフィールドの先頭ビットと対応付けられたハードウェア資源を使用するタスクを性能測定対象とするためには、ＰＭＥＮが"0x00008000"に設定される。
【００２８】
一方、図３において、マッチング部１５は、評価範囲選択回路１５１及び１５２、並びに比較回路１５３を備えている。評価範囲選択回路１５１は、ＴＩＤ格納部１２に格納されたＴＩＤ値と、ＰＭＥＮ格納部１４２に格納されたＰＭＥＮ値を入力し、後段の比較回路１５３において評価対象とするべきＴＩＤ値の範囲を指定する。具体的には、入力されたＴＩＤ値とＰＭＥＮ値との間で各ビットの論理積を演算すればよい。例えば、ＴＩＤ値が"0x8EAB0101"であり、ＰＭＥＮ値が"0xFF000000"である場合、評価範囲選択回路１５１の出力は"0x8E000000"となる。
【００２９】
評価範囲選択回路１５２は、ＰＭＩＤ格納部１４１に格納されたＰＭＩＤ値と、ＰＭＥＮ格納部１４２に格納されたＰＭＥＮ値を入力し、入力されたＴＩＤ値とＰＭＥＮ値との間で各ビットの論理積を演算し、演算結果を出力する。つまり、評価範囲選択回路１５２は、後段の比較回路１５３において評価対象とするべきＰＭＩＤ値の範囲を指定する。
【００３０】
比較回路１５３は、評価範囲選択回路１５１及び１５２の出力値を入力し、両者の出力値が一致する場合に、カウンタ１６をインクリメントする信号を出力する。例えば、カウンタインクリメント信号を１ビット信号とし、値"１"のときカウンタ１６をインクリメントすればよい。
【００３１】
次に、図１のブロック図に基づいて構成された性能測定部１３の動作を図４のフローチャートを用いて説明する。まず、ステップＳ１０１では、ＴＩＤ格納部１２に格納されたＴＩＤ値と、ＰＭＩＤ格納部１４１に格納されたＰＭＩＤ値とが、評価範囲選択回路１５１及び１５２に読み出される。
【００３２】
ステップＳ１０２では、評価範囲選択回路１５１及び１５２において、ＴＩＤ値及びＰＭＩＤ値とＰＭＥＮ値とのマスク演算が行われ、ＴＩＤ値及びＰＭＩＤ値の評価範囲が決定される。
【００３３】
ステップＳ１０３では、比較回路１５３において、評価範囲選択回路１５１及び１５２の出力値を比較することにより、ＴＩＤ値とＰＭＩＤ値が評価範囲において一致するか否かが判定される。両者が一致する場合には、比較回路１５３の出力信号に応じてカウンタ１６がインクリメントされる（ステップＳ１０４）。
【００３４】
図４のフローチャートに示す処理をクロックサイクル毎に繰り返すことにより、カウンタ１６には、性能測定の対象となるタスクグループが実行されたクロックサイクル数が格納される。したがって、カウンタ１６の格納値を読み出すことにより、タスクグループ単位での実行時間を計測することができる。
【００３５】
続いて、プロセッサシステム１において性能測定を行う場合の全体手順の一例を、図５のフローチャートを用いて説明する。まず、ステップＳ２０１では、性能測定の対象となるタスクグループが含まれるユーザプログラム１１２の実行に先立って、デバッガプログラムを起動し、測定対象タスクグループに対応するＰＭＩＤ及びＰＭＥＮを設定する。その後、ユーザプログラム１１２の実行を開始する（ステップＳ２０２）。
【００３６】
ステップＳ２０３〜Ｓ２０７は、ユーザプログラム１１の実行を管理するシステムプログラム１１１によって実行される処理を示している。
【００３７】
ステップＳ２０３では、実行タスクの切り替え要因の発生に応じて、タスク切り替え処理が実行される。具体的には、実行を中断されたタスクのコンテキストを退避するとともに、次に実行されるタスクのコンテキストを読み出す。ステップＳ２０４では、次に実行されるタスクのＴＩＤをＴＩＤ格納部１２に書き込む。
【００３８】
ステップＳ２０５では、実行準備の整ったタスクを起動する。実行中のタスクは、タスク切り替え要因が発生するまでＣＰＵ１０で実行される。タスクの実行中にタスク切り替え要因が発生した場合、その切り替え要因が、タスクの終了かつユーザプログラム１１２の終了でない場合は、ステップＳ２０３のタスク切り替え処理に戻り、以降の処理を繰り返し実行する（ステップＳ２０６及びＳ２０７）。一方、タスク切り替え要因が、タスクの終了かつユーザプログラム１１２の終了であった場合は、デバッガプログラムを起動して、カウンタ１６の値を読み出して性能測定処理を終了する。なお、ステップＳ２０２〜Ｓ２０７の処理に並行して、性能測定部１３が図４に示す動作を実行していることは勿論である。
【００３９】
上述したように本実施の形態にかかるプロセッサシステム１は、タスクの識別子であるＴＩＤの少なくとも一部を、タスクグループを指定するための識別情報として定義している。さらに、性能測定部１３では、性能測定の対象とするタスクグループを評価ＩＤによって指定し、ＣＰＵ１０で実行されているタスクのＴＩＤと評価ＩＤとを照合することによって、特定のタスクグループに属するタスクの性能情報を選択的に取得することとしている。このような構成により、ＣＰＵ１０でのタスクの実行時間等の性能情報をタスクグループ単位で取得することができる。このため、タスク単位で測定した結果を事後的に積算する等の付加的な処理が不要である。また、タスク単位で性能測定を行わないため、性能測定に要する記憶容量が小さくて済む。つまり、１つのタスクグループなら、１つの性能測定部１３を動作させ、１つのカウンタ１６によって収集すればよく、タスク単位でカウンタ１６を用意する必要がない。
【００４０】
また、プロセッサシステム１は、性能測定の対象とするタスクグループを指定するための評価ＩＤを変更することによって、１つの性能測定部１３において任意のタスクグループについての性能情報を取得することができる。１つの性能測定部１３が特定の固定されたタスクグループの性能情報のみを取得する構成を採用すると、予め多くの性能測定部１３を設けておくことが必要となり、ハードウェア規模が増大する。これに対して、プロセッサシステム１は、限られたハードウェア資源で様々なタスクグループに対する性能測定を行うことが可能である。
【００４１】
また、プロセッサシステム１は、評価ＩＤをＰＭＩＤ及びＰＭＥＮによって指定することにより、評価ＩＤの柔軟な設定を可能としている。つまり、ＰＭＥＮ格納部１４２に保持する値を変更することにより、ＴＩＤのうちでタスクグループを示すビットを柔軟に指定することができる。
【００４２】
発明の実施の形態２．
本実施の形態にかかるプロセッサシステム２の構成を図６に示す。プロセッサシステム２は、ＴＩＤ格納部１２に格納するＴＩＤ値を動的に決定することが可能なシステムプログラム２１１を備える点がプロセッサシステム１と相違する。なお、ＣＰＵ１０、メモリ１１、ＴＩＤ格納部１２、及び性能測定部１３は、上述したプロセッサシステム１が有するものと同一であるため、詳細な説明を省略する。
【００４３】
システムプログラム２１１が実行するタスク切り替え処理の手順を図７のフローチャートを用いて説明する。図７に示すタスク切り替え処理は、発明の実施の形態１において説明した図５のステップＳ２０３の処理に対応するものである。
【００４４】
まず、タスク切り替え要因の発生によって、システムプログラム２１１に処理が戻ると、システムプログラム２１１を示すＴＩＤをＴＩＤ格納部１２に設定する（ステップＳ３０１）。続いて、ＣＰＵ１０で次に実行すべきタスクを決定する（ステップＳ３０２）。なお、次に実行すべきタスクの選択は、例えば、実行可能状態にあるタスクのうち、最も優先度の高いものを選択することにより行われる。
【００４５】
ステップＳ３０３では、次に実行すべきタスクとして選択されたタスクが共通タスクであるか否かを判定する。ここで、共通タスクとは、異なるタスクグループに属する複数のタスクから共通して呼び出されるタスクを意味する。本実施の形態では、このような共通タスクは、特定のタスクグループに属するものとせず、共通タスクの呼び出し元タスクのタスクグループを継承するものとする。
【００４６】
具体的には、次に実行するものとして選択したタスクが共通タスクであった場合、当該共通タスクの呼び出し元タスクのタスクグループを、当該共通タスクのタスクグループに決定する（ステップＳ３０４）。例えば、図２示すように、ＴＩＤをタスクグループＩＤ、個別ＩＤ、及びリソースフィールドによって定義した場合、共通タスクのタスクグループＩＤは、呼び出し元タスクのタスクグループＩＤを割り当てる。
【００４７】
図７に示したタスク切り替え処理を除いて、システムプログラム２１１が行う処理は、発明の実施の形態１にかかるシステムプログラム１１１と共通である。
【００４８】
続いて以下では、共通タスクのタスクグループを呼び出し元タスクに応じて動的に決定することによる利点を説明する。
【００４９】
図８（ｂ）は、発明の実施の形態１のプロセッサシステム１のように、各タスクがいずれかのタスクグループに固定的に属する、つまり、各タスクに対して固定的にタスクグループＩＤが割り当てられる場合に、ＴＩＤ格納部１２へ格納される値と実行タスクとの関係を示したものである。図８（ｂ）では、３つのタスクＡ、タスクＢ及びタスクＣが実行される場合を示している。また、ＴＩＤには、タスクグループＩＤ及び個別ＩＤが含まれているものとする。さらに、タスクＡはタスクグループ１に、タスクＢはタスクグループ２に、タスクＣはタスクグループ３に、それぞれ固定的に属するものとしている。さらに、タスクＣは、異なるタスクグループに属するタスクＡ及びタスクＢから共通して呼び出される共通タスクである。
【００５０】
このように、タスクグループを固定的に決定した場合、３つのタスクの実行時間は、別々のタスクグループの実行時間として計測され、呼び出されたタスクＣの実行時間を呼び出し元タスクであるタスクＡ又はＢと一括して計測することができない。また、タスクＣが例えばタスクグループ１に属すると定義しても、タスクグループＢによって呼び出されたタスクＣの実行時間をタスクグループ１の実行時間として計測することになり、正確な性能測定を行うことができない。
【００５１】
これに対して、本実施の形態のプロセッサシステム２の場合、共通タスクＣが属するタスクグループを呼び出し元タスクに応じて動的に変更することとしている。これにより、図８（ａ）に示すように、共通タスクＣがタスクＡから呼び出されて実行される時間をタスクグループ１の実行時間として計測することができ、共通タスクＣがタスクＢから呼び出されて実行される時間をタスクグループ２の実行時間として計測することができる。
【００５２】
その他の実施の形態．
上述した発明の実施の形態１及び２では、プロセッサシステム１及び２が１つの性能測定部１３を備えるものとして説明した。しかしながら、プロセッサシステム１及び２は、複数の性能測定部１３を備えることとしても良い。また、性能測定部１３で計測される性能情報はタスクの実行時間に限られない。例えば、タスク実行中に発生したメモリアクセス回数、特定の命令の発生回数などを計測することとしてもよい。つまり、性能測定部１３は、あるイベントの発生回数を、カウンタ１６を用いて計測するものであって、計測対象とするイベントは、タスク実行クロック数、メモリアクセス回数などプロセッサシステム内での様々なイベントを対象とすることが可能である。
【００５３】
上述した発明の実施の形態１及び２では、タスクに１つのＴＩＤを付与することとし、ＴＩＤ中の少なくとも一部の領域がタスクグループを識別する領域として使用されることとした。しかしながら、本発明においては、タスクが所属するタスクグループを識別可能なＩＤがタスク毎に与えられていればよく、例えば、タスクグループＩＤと、個別ＩＤと、リソースフィールドとを異なる３つＩＤとしてタスクに付与してもよい。しかしながら、従来のＣＰＵアーキテクチャ及びシステムプログラムへの影響を考慮すると、上述したプロセッサシステム１及び２の構成、つまり、１つのＴＩＤに含まれる特定のビットによってタスクグループを示し、性能測定部１３において評価対象ビットを指定する構成が望ましい。マルチタスク環境を備えるプロセッサシステムでは、特許文献１に示すようにタスクを識別するタスクＩＤによってタスク管理が行われている。このため、プロセッサシステム１及び２の構成であれば、本発明を実施する際に、従来のＣＰＵアーキテクチャ及びシステムプログラムへ与える影響が小さくて済むという利点がある。
【００５４】
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【図面の簡単な説明】
【００５５】
【図１】発明の実施の形態１にかかるプロセッサシステムの構成図である。
【図２】ＴＩＤの一例を示す図である。
【図３】発明の実施の形態１にかかるプロセッサシステムが備える性能測定部の構成図である。
【図４】発明の実施の形態１にかかるプロセッサシステムにおける性能測定部の動作を示すフローチャートである。
【図５】発明の実施の形態１にかかるプロセッサシステムにおける性能測定手順を示すフローチャートである。
【図６】発明の実施の形態２にかかるプロセッサシステムの構成図である。
【図７】発明の実施の形態２にかかるプロセッサシステムにおけるタスク切り替え処理を示すフローチャートである。
【図８】ＴＩＤを動的に変更することによる効果を説明するための図である。
【符号の説明】
【００５６】
１、２  プロセッサシステム
１０  ＣＰＵ（Central Processing Unit）
１１  メモリ
１２  ＴＩＤ格納部
１３  性能測定部
１４  評価ＩＤ格納部
１５  マッチング部
１６  カウンタ
１１１、２１１  システムプログラム
１１２  ユーザプログラム
１１３  デバッガプログラム
１４１  ＰＭＩＤ格納部
１４２  ＰＭＥＮ格納部
１５１、１５２  評価範囲選択回路
１５３  比較回路
【図１】
2007304765.tif 000003
【図２】
2007304765.tif 000004
【図３】
2007304765.tif 000005
【図４】
2007304765.tif 000006
【図５】
2007304765.tif 000007
【図６】
2007304765.tif 000008
【図７】
2007304765.tif 000009
【図８】
2007304765.tif 000010