(57)【要約】【課題】メモリのデータを破壊したハードウェアを特定することができるメモリ監視装置及びメモリ監視方法を提供すること【解決手段】本発明にかかるメモリ監視装置は、複数のタスクのそれぞれに対して割り当てた複数のデータ領域と、データ領域のそれぞれに隣接し、所定の値を格納した複数のタグ領域を有するメモリ２０を備える。また、メモリ２０にデータを書き込む複数の処理装置３０、４０、５０の一が、メモリ２０にデータを書き込む場合に、該処理装置３０、４０、５０を識別するＩＤ値を取得するＩＤ値取得部１２と、タグ領域に格納された値が所定の値から書き換えられたことを検出した場合に、ＩＤ取得部が取得したＩＤ値に基づいて、書き換えを行った処理装置を特定する書換検出部１１と、を備える。【選択図】図１
2010122868.tif 000002
【特許請求の範囲】
【請求項１】
複数のタスクのそれぞれに対して割り当てた複数のデータ領域と、前記データ領域のそれぞれに隣接し、所定の値を格納した複数のタグ領域を有するメモリと、
前記メモリにデータを書き込む複数の処理装置の一が、前記メモリに前記データを書き込む場合に、該処理装置を識別するＩＤ値を取得するＩＤ値取得部と、
前記タグ領域に格納された値が前記所定の値から書き換えられたことを検出した場合に、前記ＩＤ取得部が取得したＩＤ値に基づいて、前記書き換えを行った処理装置を特定する書換検出部と、を備えたメモリ監視装置。
【請求項２】
前記メモリ監視装置は、前記複数のタグ領域の一のアドレスを示すアドレス情報を少なくとも含む領域情報を、前記複数のタスクのそれぞれに対応させて格納する領域情報記憶部をさらに有し、
前記書換検出部は、前記アドレス情報に基づいて、前記複数のタグ領域の一に格納された値を取得する請求項１に記載のメモリ監視装置。
【請求項３】
前記書換検出部は、前記所定の値から書き換えられたことを検出したタグ領域のアドレス情報を含む領域情報に一意に割り当てられたエントリー番号をさらに特定する請求項２に記載のメモリ監視装置。
【請求項４】
前記領域情報は、前記エントリー番号で特定される領域情報に対応するタスクに対して割り当てたデータ領域に前記データを書き込む処理装置のＩＤ値を含む請求項３に記載のメモリ監視装置。
【請求項５】
前記領域情報は、前記複数のタグ領域それぞれの監視を有効とするか無効とするかを示す有効無効情報をさらに含み、
前記書換検出部は、前記有効無効情報が有効であるタグ領域の値が、前記所定の値から書き換えられたことを検出する請求項２乃至４のいずれかに記載のメモリ監視装置。
【請求項６】
前記書換検出部が特定した処理装置のＩＤ値及びエントリー番号を格納する検出記憶部をさらに備えた請求項３又は４に記載のメモリ監視装置。
【請求項７】
割り込み信号の出力先の処理装置のＩＤ値を格納する割り込み記憶部をさらに有し、
前記書換検出部は、前記複数のタグ領域の一に格納された値が、前記所定の値から書き換えられたことを検出した場合に、前記割り込み記憶部に格納されているＩＤ値に対応する前記複数の処理装置の一に対して前記割り込み信号を出力する請求項１乃至６のいずれかに記載のメモリ監視装置。
【請求項８】
前記処理装置と前記メモリの間の入出力を制御するバスコントローラをさらに備え、
前記バスコントローラは、前記ＩＤ値取得部及び前記書換検出部を有する請求項１乃至７のいずれかに記載のメモリ監視装置。
【請求項９】
前記ＩＤ値取得部は、前記複数の処理装置の一が前記メモリにデータを書き込む場合に、該処理装置から前記バスコントローラに対して出力されるバスデータに含まれるＩＤ値を取得する請求項８に記載のメモリ監視装置。
【請求項１０】
前記データ領域は、前記タスクに対して割り当てられたスタック領域である請求項１乃至９のいずれかに記載のメモリ監視装置。
【請求項１１】
複数のタスクのそれぞれに対して割り当てた複数のデータ領域と、前記複数のデータ領域のそれぞれに隣接し、所定の値を格納した複数のタグ領域を有するメモリを監視するメモリ監視方法であって、
前記メモリにデータを書き込む処理装置を識別する情報であるＩＤ値を取得するステップと、
前記複数のタグ領域の一に格納された値が、前記所定の値から書き換えられたかどうかを判定するステップと、
前記複数のタグ領域の一に格納された値が、前記所定の値から書き換えられたと判定した場合に、取得したＩＤ値に基づいて、前記書き換えを行った処理装置を特定するステップを備えたメモリ監視方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ監視装置及びメモリ監視方法に関する。
【背景技術】
【０００２】
近年のディジタル技術の発展に伴い、複数のハードウェアから構成されたシステムＬＳＩ（Large Scale Integration）を用いた、ＨＤＤ（Hard Disk Drive）レコーダやＤＶＤ（Digital Versatile Disk）プレーヤのようなディジタル方式の音声/画像処理装置が実用化されている。
このようなシステムＬＳＩは、それぞれが異なるプログラムを実行する複数のＣＰＵ（Central Processing Unit）や、その他のハードウェアが協調動作して、システム動作を実現している。また、システムＬＳＩの複数のＣＰＵは、システムＬＳＩに接続されたメモリを共有して動作する。さらに、マルチタスクオペレーティングシステムを用いることで、１つのＣＰＵによって複数のタスクを実行することができる。
【０００３】
一方、マルチタスクオペレーティングシステムは、タスクに対して割り当てられたスタック領域のデータが破壊された場合には、タスクが異常動作を引き起こし、システムが致命的な障害に至る場合が多い。１つのＣＰＵを有するシステムにおいて、スタック領域のデータ破壊が発生した場合には、スタック使用量の見積もりミスやプログラムのバグ等が原因として考えられる。しかし、複数のＣＰＵや、その他のハードウェアから構成されるシステムＬＳＩにおいて、スタック領域のデータ破壊が発生した場合には、データが破壊されたスタック領域に対応するタスクを実行するＣＰＵ以外の協調動作しているハードウェアが原因となっていることも考えられる。
【０００４】
スタック領域のデータ破壊によってシステムが致命的な障害に至る場合は、スタック領域の破壊が二次的、三次的障害を引き起こし、最終的にシステムに生じている症状と、障害発生原因となるスタック領域の破壊が直接的に結び付きにくく、原因究明に多大な費用と日数が必要となる。さらに、システムＬＳＩを用いたシステムでは、上述のように、協調動作しているハードウェアが原因となっている場合も考慮に入れる必要があり、１つのＣＰＵによって動作するシステムで原因究明を行うよりも、多くの費用と日数が必要となってしまう。
【０００５】
ところで、メモリマネージメント機能を備えないＣＰＵによって、タスクのそれぞれに対してスタック領域を割り当てたマルチタスクオペレーティングシステムが動作する環境において、マルチタスクオペレーティングシステムは、スタック領域のデータ破壊の検出を行っていない。このような環境におけるスタック領域のデータ破壊を検出する技術が、特許文献１に開示されている。
ここで、特許文献１に記載の技術によるスタック領域のデータ破壊を検出する方法について説明する。
【０００６】
図５に、システムＬＳＩによって構成され、特許文献１に記載の技術を適用した装置の全体構成を示す。
ＣＰＵ３３０は、マルチタスクプログラムによるｎ個（ｎは正整数）のタスクを処理する。ＣＰＵ３４０は、マルチタスクプログラムによるｍ個（ｍは正整数）のタスクを処理する。ここでは、ＣＰＵ３３０におけるタスクに着目して説明する。
【０００７】
マルチタスクプログラムは、タスク生成時の初期化処理によって、スタック領域をメモリ３２０に配置する。マルチタスクプログラムは、ｎ個のスタック領域を、それぞれが線形に続く形で配置する。さらに、スタック領域の最下部に隣接する領域及び最上部に隣接する領域に境界メモリを配置する。境界メモリには、所定の初期値を格納する。
ＣＰＵ３３０においてマルチタスクプログラムを実行する場合、マルチオペレーティングシステムのスケジューリング機能は、図６に示すようにｎ個のタスクに一定時間のＣＰＵ実行権を順次割り当てて、それぞれのタスクを実行する。
【０００８】
特許文献１に記載の技術は、ＣＰＵ実行権が遷移するときに、次にＣＰＵ実行権を付与するタスクに対して割り当てられたスタック領域のデータ破壊を検査する。
具体的には、スタック領域の上側の境界メモリ及び下側の境界メモリの値が、初期値から書き換えられたかどうかを検査することにより、スタック領域のデータの破壊を検出する。
例えば、タスク１及びタスク２がＣＰＵ（Ａ）によって実行されるものとして、図５を用いて説明すると、スタック領域が下側から上側にデータが書き込まれる場合、タスク１のスタック領域のデータ量を超えてメモリにデータが書き込まれるとき、タスク１の最上部境界メモリの値が初期値以外の値となる。タスク２が隣接するタスク１のスタック領域のデータを破壊した場合は、破壊されたタスク１の最下部の境界メモリが初期値以外の値となる。
【０００９】
特許文献１に記載の技術は、１つのＣＰＵのみで動作するマルチタスクオペレーティングシステムにおいては、スタックオーバーフローによるスタック領域のデータ破壊を検出することができ、タスクのＣＰＵ実行権が遷移する単位でのスタック領域のデータ破壊を検出することができる。
しかしながら、スタック領域のデータが破壊されたタスクを実行するＣＰＵ以外の協調動作をしているハードウェアがスタック領域のデータを破壊した場合には、スタック領域のデータを破壊したハードウェアを特定することができない。また、タスクのＣＰＵ実行権が遷移する単位でしかスタック領域のデータ破壊を検出する事ができない。
【００１０】
具体的には、ＣＰＵ３４０や周辺装置３５０がメモリ３２０にアクセスし、ＣＰＵ３３０が実行するタスクに対して割り当てられたスタック領域のデータを破壊した場合には、スタック領域のデータを破壊したハードウェアがＣＰＵ３４０であるのか、周辺装置３５０であるのかを特定することができない。
また、ＣＰＵ３３０においてＣＰＵ実行権が遷移するまでの時間に、ＣＰＵ３３０以外のハードウェアが、ＣＰＵ３３０が実行するタスクのスタック領域のデータを破壊した場合には、ＣＰＵ３３０においてＣＰＵ実行権が遷移しない限り、スタック領域のデータ破壊を検出することができない。
【００１１】
なお、特許文献２には、タイマ機能による割り込みハンドラを用いて、タスクのスタックポインタの位置をチェックすることにより、スタック領域のデータ破壊を検出する技術が記載されている。
【特許文献１】特開平０２−１０１５３５号公報
【特許文献２】特開２００４−１５７６６２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
背景技術として説明したように、メモリにアクセスする複数のハードウェアを有する装置においては、メモリのデータを破壊したハードウェアを特定することができないという問題がある。
【課題を解決するための手段】
【００１３】
本発明にかかるメモリ監視装置は、複数のタスクのそれぞれに対して割り当てた複数のデータ領域と、前記データ領域のそれぞれに隣接し、所定の値を格納した複数のタグ領域を有するメモリと、前記メモリにデータを書き込む複数の処理装置の一が、前記メモリに前記データを書き込む場合に、該処理装置を識別するＩＤ値を取得するＩＤ値取得部と、前記タグ領域に格納された値が前記所定の値から書き換えられたことを検出した場合に、前記ＩＤ取得部が取得したＩＤ値に基づいて、前記書き換えを行った処理装置を特定する書換検出部と、を備えたものである。
これにより、メモリにデータを書き込んだハードウェアを識別する情報を取得しておくことができ、メモリのデータ破壊を検出した場合に、データを破壊したハードウェアを特定することができる。
【発明の効果】
【００１４】
本発明により、メモリのデータを破壊したハードウェアを特定することができるメモリ監視装置及びメモリ監視方法を提供することができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施の形態について、図面を参照しながら説明する。
図１は、本発明の実施の形態にかかるメモリ監視装置を示すブロック図である。
メモリ監視装置は、領域監視機構１１０、メモリ１２０、ＣＰＵ１３０、１４０、周辺装置１５０及びバスコントローラ１６０を備える。
領域監視機構１１０は、メモリ１２０に格納されているデータを監視する。
【００１６】
メモリ１２０は、ＣＰＵ１３０、１４０が実行するタスクのそれぞれに対して割り当てられたスタック領域を有する。また、データ領域のそれぞれに隣接するようにタグ領域を有する。タグ領域には、所定の初期値が格納される。ここで、所定の初期値は、任意の値とすることができる。なお、図１に示すアドレス値であるＸ及びαは、０以上の整数である。
ＣＰＵ１３０、１４０は、メモリ１２０のデータの書き込みや読み出しを行う。ＣＰＵ１３０、１４０は、メモリ１２０のスタック領域を使用しながら、それぞれのタスクを実行する。ＣＰＵ１３０は、例えば、ｎ個（ｎは正整数）のタスクを実行し、ＣＰＵ１４０は、例えば、ｍ個（ｍは正整数）のタスクを実行する。
【００１７】
周辺装置１５０は、メモリ１２０のデータの書き込みや読み出しを行う。ここで周辺装置は、例えば、ＤＭＡ（Direct Memory Access）によって、メモリ１２０のデータを読み書きするＦＤＤ（Floppy Disk Drive）（登録商標）、ＨＤＤ（Hard Disk Drive）及びＣＤ−ＲＯＭ（Compact Disk Read Only Memory）ドライブ等である。なお、ＣＰＵ及び周辺装置は、処理装置として機能する。
バスコントローラ１６０は、ＣＰＵ１３０、１４０及び周辺装置１５０と、メモリ１２０とのインタフェースとして機能する。バスコントローラ１６０は、領域監視機構１１０を有する。
【００１８】
図２は、領域監視機構１１０の内部構成を示す図である。
領域監視機構１１０は、書換検出部１１１、アクセス要求判断部１１２、ＩＤ値取得部１１３、検出エントリーレジスタ１１４、割り込み出力先レジスタ１１５及びエントリーレジスタ１１６を有する。
書換検出部１１１は、タグ領域のデータが、所定の初期値から書き換えられたかどうかを監視する処理を行う。
アクセス要求判断部１１２は、ＣＰＵ１３０、１４０もしくは周辺装置１５０が、バスコントローラ１６０に出力したメモリ１２０へのアクセス要求が、リード要求なのかライト要求なのかを判断する処理を行う。
【００１９】
ＩＤ値取得部１１３は、メモリ１２０にデータを書き込むＣＰＵ１３０、１４０もしくは周辺装置１５０に対応するＩＤ値が格納される。ここで、ＩＤ値とは、ハードウェアを識別する値であり、ＣＰＵ１３０、１４０及び周辺装置１５０に一意に割り当てられた値である。
検出エントリーレジスタ１１４は、タグ領域のデータが、所定の初期値から書き換えられたことを書換検出部１１１が検出した場合に、検出結果が格納される。
割り込み出力先レジスタ１１５は、割り込み信号の出力先のＣＰＵ１３０、１４０もしくは周辺装置１５０のＩＤ値が格納される。
【００２０】
エントリーレジスタ１１６は、タスクのスタック領域及びタグ領域に対応する情報を１エントリーとして、複数のエントリーがタスクのそれぞれに対応するように格納される。各エントリーは、エントリーレジスタの情報格納先領域の先頭からエントリー番号が割り振られる。１つのエントリーは、有効無効設置レジスタ、アクセスＩＤレジスタ、タグ領域アドレスレジスタを含む。エントリーレジスタは、領域情報記憶部に相当する。
【００２１】
有効無効設定レジスタは、タグ領域の監視の有効/無効を示す値が格納される。つまり、有効無効設定レジスタの設定が有効となっているエントリーのタグ領域アドレスレジスタが示すタグ領域に対して監視が行われる。例えば、ＣＰＵ１３０が実行するタスク１に対応するエントリーである場合には、ＣＰＵ１３０が実行するタスク１に対して割り当てられたスタック領域に隣接するタグ領域の監視の有効/無効を示す値が格納される。
アクセスＩＤレジスタは、エントリーに対応するタスクに対して割り当てたスタック領域のデータを読み書きするハードウェアのＩＤ値が格納される。具体的には、ＣＰＵ１３０が実行するタスク１に対応するエントリーに含まれるアクセスＩＤレジスタには、ＣＰＵ１３０のＩＤ値が格納される。
【００２２】
タグ領域アドレスレジスタには、メモリ１２０が有するタグ領域のアドレス値が格納される。具体的には、ＣＰＵ１３０が実行するタスク１に対応するエントリーに含まれるタグ領域アドレスレジスタには、ＣＰＵ１３０が実行するタスク１に対して割り当てられたスタック領域の最上部及び最下部に隣接するタグ領域のそれぞれのアドレス値が格納される。
【００２３】
続いて、本実施の形態におけるメモリ監視装置の領域監視機構１１０への設定処理について説明する。
まず、マルチタスクプログラムは、タスクを生成するときの初期化処理によって、複数のタスクのそれぞれに対して、メモリ１２０に割り当てるスタック領域と、このスタック領域の最上部及び最下部に隣接するタグ領域を配置して、タグ領域に所定の初期値を設定する。
次に、マルチタスクプログラムは、エントリーレジスタ１１６のタグ領域アドレスレジスタに、配置したタスクの最上部及び最下部に隣接するタグ領域のそれぞれのアドレス値を格納し、アクセスＩＤレジスタに、配置したスタック領域のデータを読み書きするハードウェアのＩＤ値を格納する。例えば、生成したタスクをＣＰＵ１３０が実行する場合は、ＣＰＵ１３０のＩＤ値をアクセスＩＤレジスタに格納する。
ここで、エントリーレジスタ１１６のうちのどのエントリー番号に上述の設定を行うかは、どのような決定のしかたであってもよい。例えば、タスクを生成した順番をエントリー番号として昇順に上述の設定を行ってもよい。
【００２４】
次に、マルチタスクプログラムは、有効無効設定レジスタを有効とする値を格納する。
また、スタック領域のデータ破壊を割り込みによって検出したい場合は、割り込み出力先レジスタ１１５に、割り込みを発生させたいハードウェアのＩＤ値を格納する。例えば、ＣＰＵ１４０で割り込みを発生させたい場合は、ＣＰＵ１４０のＩＤ値を格納する。なお、割り込み出力先レジスタ１１５には、複数のハードウェアのＩＤ値を格納することもできる。
【００２５】
ここで、領域監視機構１１０への設定は、本実施の形態に例示したものに限られない。例えば、マルチタスクオペレーティングシステムによって行うようにしてもよく、マルチタスクオペレーティングシステムで動作する他のプログラムから行うようにしてもよい。また、領域監視機構１１０への設定の順序は、上述した順序に限られない。
さらに、生成したタスクのうちの任意のタスクに、領域監視機構１１０への設定を行うようにしてもよい。
なお、有効無効設定レジスタは、任意のタイミングで無効の値を設定することで、該当するデータ破壊の監視を終了することができる。例えば、タスクを終了するときに、有効無効設定レジスタへ無効の値を設定し、タスクの終了後はデータ破壊の監視を行わないようにするときである。
【００２６】
続いて、図３に示すフローチャートを用いて、本実施の形態におけるメモリ監視装置の監視処理について説明する。
まず、ＣＰＵ１３０、１４０もしくは周辺装置１５０のうちのいずれかのハードウェアは、メモリ１２０のデータの書き込みもしくは読み出しをする場合に、メモリ１２０へのアクセス要求であるバスデータをバスコントローラ１６０に出力する（Ｓ５００）。
ここで、図４にバスデータを示す。バスデータは、ＩＤ値、リード/ライト要求、アドレス、データの順番にバスコントローラ１６０に出力される。
【００２７】
ＩＤ値は、バスデータを出力したハードウェアのＩＤ値である。
リード/ライト要求は、メモリ１２０にデータを書き込むのか、メモリ１２０からデータを読み込むのかを示す情報である。
アドレスは、データの書き込みもしくは読み出しをするメモリ１２０のアドレスである。
データは、書き込みをする場合に、メモリ１２０に書き込むデータである。
なお、バスデータの構成要素は、本実施の形態に例示したものに限られない。例えば、バスデータを含まれる構成要素の出力順番が上述のものと異なっていてもよく、新たなデータを追加してもよい。
【００２８】
次に、領域監視機構１１０のアドレス要求判断部１１２は、バスデータに含まれるリード/ライト要求を取得し、取得したリード/ライト要求に基づいて、メモリ１２０のリード要求かライト要求かを判断する（Ｓ５０１、Ｓ５０２）。
リード要求である場合は、バスコントローラ１６０は、メモリ１２０からデータを読み出し、メモリのデータの監視は行わない（Ｓ５０３）。
ライト要求である場合は、ＩＤ値取得部１１３は、バスデータに含まれるＩＤ値を取得する（Ｓ５０４）。そして、バスコントローラ１６０は、メモリ１２０にバスデータに含まれるデータを書き込む（Ｓ５０５）。
【００２９】
次に、書換検出部１１１は、エントリーレジスタ１１６のエントリー番号１に格納された情報を取得し、取得したエントリー番号１の有効無効設定レジスタに格納された値が有効か無効かを判断する（Ｓ５０６、Ｓ５０７）。
取得したエントリーの有効無効設定アドレスが無効である場合、書換検出部１１１は、次のエントリーであるエントリー番号２に格納された情報を取得する（Ｓ５１１、Ｓ５１２、Ｓ５０６）。以降も有効無効設定アドレスが無効である場合は、エントリー番号Ｎ（Ｎは正整数）まで同様の処理を繰り返す。
取得したエントリーの有効無効設定アドレスが有効である場合、書換検出部１１１は、取得したエントリーのタグ領域アドレスレジスタに格納されたアドレス値のタグ領域のデータを読み込む（Ｓ５０８）。
【００３０】
次に、書換検出部１１１は、読み込んだタグ領域のデータが、所定の初期値から書き換えられているかどうかを判定する（Ｓ５０９）。
取得したタグ領域のデータが、所定の初期値から書き換えられたと判定した場合は、スタック領域のデータの破壊を検出したこととなる。その場合、書換検出部１１１は、ＩＤ値取得部１１３が取得しているＩＤ値と、現在のエントリー番号を検出エントリーレジスタ１１４に格納する（Ｓ５１０）。
取得したタグ領域のデータが、所定の初期値から書き換えられていない場合、もしくはステップＳ５１０の処理の実行後、書換検出部１１１は、次のエントリーであるエントリー番号２について、同様の処理を行う（Ｓ５１１、Ｓ５１２、Ｓ５０６、Ｓ５０７、Ｓ５０８）。以降も取得したタグ領域のデータが、所定の初期値から書き換えられていない場合は、エントリー番号Ｎ（Ｎは正整数）まで同様の処理を繰り返す。
なお、スタック領域のデータの破壊を検出した場合に、次のエントリー番号についての処理は行わずに、後述するステップＳ５１３の処理を実行するようにしてもよい。
【００３１】
次に、ステップＳ５１１において、全てのエントリー番号についての処理を行ったと判断した場合、書換検出部１１１は、検出エントリーレジスタ１１４にエントリー番号及びＩＤ値が格納されているかどうかを判断する（Ｓ５１３）。
検出エントリーレジスタ１１４にエントリー番号及びＩＤ値が格納されてない場合は、監視処理を終了する。
検出エントリーレジスタ１１４にエントリー番号及びＩＤ値が格納されている場合、書換検出部１１１は、割り込み出力先レジスタ１１５にＩＤ値が設定されているかどうかを判断する（Ｓ５１４）。
【００３２】
割り込み出力先レジスタ１１５にＩＤ値が設定されている場合、書換検出部１１１は、そのＩＤ値に対応するハードウェアに割り込み信号を出力する（Ｓ５１５）。割り込み信号の出力は、書換検出部１１１が、割り込み出力先レジスタ１１５に設定されているＩＤ値に対応するハードウェアに接続される割り込み信号線（図示せず）に割り込み信号を出力することにより行う。
割り込み出力先レジスタ１１５にＩＤ値が設定されていない場合、もしくはステップＳ５１５の処理の実行後、監視処理を終了する。
なお、上述の処理では、エントリーレジスタ１１６に格納される情報をエントリー番号１から順番に取得しているが、この情報を取得する順序は本実施の形態に例示した順序に限られない。
【００３３】
以上のように、本実施の形態によれば、メモリにデータを書き込んだハードウェアのＩＤ値を検出結果として、検出エントリーレジスタに格納しているため、検出エントリーレジスタに格納されたＩＤ値を参照することで、メモリのデータを破壊したハードウェアを特定することができる。
また、検出エントリーレジスタに格納されたエントリー番号のタグ領域アドレスレジスタを参照することで、データ破壊が検出されたタグ領域が分かるため、データ破壊が発生したスタック領域を特定することができる。
【００３４】
また、検出エントリーレジスタに格納されたＩＤ値が、検出エントリーレジスタに格納されたエントリー番号のアクセスＩＤレジスタに格納されたＩＤ値と同じである場合は、データ破壊が発生したスタック領域を割り当てられたタスクを実行するＣＰＵによる書き込みによって、スタック領域のデータ破壊が発生したと判断することができる。ＩＤ値が異なる場合は、協調動作している他のハードウェアにより、スタック領域のデータ破壊が発生したと判断することができる。
さらに、データ破壊の検出をハードウェアがメモリにデータを書き込む処理単位で行っているため、タスクの遷移が無い状態でも、データ破壊を検出することができる。
【図面の簡単な説明】
【００３５】
【図１】本発明の実施の形態にかかるメモリ監視装置を示すブロック図である。
【図２】領域監視機構１１０の内部構成を示す図である。
【図３】本実施の形態におけるメモリ監視装置の監視処理を示すフローチャートである。
【図４】バスデータを示す図である。
【図５】特許文献１に記載の技術を適用した装置の全体構成を示す図である。
【図６】マルチオペレーティングシステムのスケジューリング機能を示す図である。
【符号の説明】
【００３６】
１１０    領域監視機構
１２０、３２０    メモリ
１１１    書換検出部
１１２    アクセス要求判断部
１１３    ＩＤ値取得部
１１４    検出エントリーレジスタ
１１５    割り込み出力先レジスタ
１１６    エントリーレジスタ
１３０、１４０、３３０、３４０    ＣＰＵ
１５０、３５０    周辺装置
１６０    バスコントローラ
【図１】
2010122868.tif 000003
【図２】
2010122868.tif 000004
【図３】
2010122868.tif 000005
【図４】
2010122868.tif 000006
【図５】
2010122868.tif 000007
【図６】
2010122868.tif 000008