説明

違反メモリアクセス検出装置および違反メモリアクセス検出方法

【課題】ソフトウェアの誤動作による設定の不備を防止し、全ての違反メモリアクセスを検出できるようにすることを目的とする。
【解決手段】アドレスマップ保管部210は複数のプログラムそれぞれに割り当てられるアクセス可能領域を示すアドレスマップを記憶する。実行順序管理部220は複数のプログラムの所定の実行順序を示す実行順序情報を記憶する。タイマ241は実行プログラムを切り替える切り替え開始割込みを切り替え周期毎にCPU110に通知する。実行順序管理部220は切り替え後の実行プログラムを実行順序情報に基づいて特定する。違反検出部230はアドレスマップに基づいて実行プログラムのアクセス可能領域を特定し、信号線からメモリ120へのアクセス信号を入力してアクセス領域を特定する。違反検出部230はアクセス領域とアクセス可能領域とを比較して違反アクセスを検出する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、違反メモリアクセスを検出する違反メモリアクセス検出装置および違反メモリアクセス検出方法に関するものである。
【背景技術】
【0002】
従来、違反メモリアクセスを検出する際に、アプリケーションの切り替えはソフトウェアにより制御されていた(例えば、特許文献1)。
【0003】
特許文献1に開示された技術では、ソフトウェアによりアプリケーションの切り替えを実現している。
しかし、この方法では、アプリケーションの切り替え時にハードウェアの故障やプログラムのバグが発生した場合、ソフトウェアが意図しないメモリ領域にアクセスする可能性がある。このとき、違反メモリアクセスを検出するための設定が正しくなされず、意図しないメモリ領域にアクセスされても違反メモリアクセスとして検出することができない。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2001−325150号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、例えば、ソフトウェアの誤動作による設定の不備を防止し、全ての違反メモリアクセスを検出できるようにすることを目的とする。
【課題を解決するための手段】
【0006】
本発明の違反メモリアクセス検出装置は、
CPU(Central Processing Unit)とメモリとに接続され、
複数のプログラムそれぞれに割り当てられる記憶領域として前記メモリ内の所定の記憶領域を示す記憶領域情報を記憶する記憶領域情報記憶部と、
前記複数のプログラムの所定の実行順序を示す実行順序情報を記憶する実行順序情報記憶部と、
前記CPUに実行させる実行プログラムを実行中のプログラムから他のプログラムに切り替える所定の切り替えタイミングを検出する装置内タイマと、
前記切り替えタイミングの検出を前記CPUに通知することにより前記CPUに実行プログラムを切り替えさせる実行プログラム切り替え部と、
前記実行プログラム切り替え部により切り替えられる切り替え後の実行プログラムを新実行プログラムとして前記実行順序情報記憶部に記憶される実行順序情報に基づいて特定する実行プログラム特定部と、
前記実行プログラム特定部による特定結果と前記記憶領域情報記憶部に記憶される記憶領域情報とに基づいて、前記新実行プログラムに割り当てられる記憶領域を割当領域として特定する割当領域特定部と、
前記メモリ内の記憶領域のうち前記CPUがアクセスする記憶領域をアクセス領域として示すアクセス信号を入力し、入力したアクセス信号に基づいて前記アクセス領域を特定するアクセス領域特定部と、
前記アクセス領域特定部により特定されたアクセス領域と前記割当領域特定部により特定された割当領域とを比較し、前記アクセス領域が前記割当領域以外の記憶領域である場合に前記アクセス領域へのアクセスを違反アクセスとして検出する違反アクセス検出部とを備える。
【発明の効果】
【0007】
本発明によれば、例えば、プログラム(アプリケーション)の切り替えを違反メモリアクセス検出装置で制御することにより、ソフトウェアの誤動作による設定の不備を防止し、全ての違反メモリアクセスを検出することができる。
【図面の簡単な説明】
【0008】
【図1】実施の形態1における違反メモリアクセス検出装置200の概要図。
【図2】実施の形態1における違反メモリアクセス検出装置200の機能構成図。
【図3】実施の形態1における違反メモリアクセス検出方法を示すフローチャート。
【図4】実施の形態1におけるアプリケーション切り替え処理(S200)のフローチャート。
【図5】実施の形態1におけるアプリケーション切り替え処理(S200)の概要図。
【発明を実施するための形態】
【0009】
実施の形態1.
図1は、実施の形態1における違反メモリアクセス検出装置200の概要図である。
実施の形態1における違反メモリアクセス検出装置200の概要について、図1に基づいて説明する。
【0010】
違反メモリアクセス検出装置200は、コンピュータ(計算機)のCPU110やメモリ120に接続する違反アクセス検出用のハードウェアである。
例えば、違反メモリアクセス検出装置200はCPLD(Complex Programmable Logic Device)のような電子回路で構成され、基盤100(例えば、マザーボード)に取り付けられる。
【0011】
基盤100には、CPU110(Central Processing Unit)、メモリ120、周辺装置を接続するインタフェース(周辺装置130)などのハードウェアが取り付けられる。
【0012】
CPU110はメモリ120やプログラムを管理するオペレーティングシステム(OS)を実行し、複数のアプリケーションプログラム(アプリA、アプリB)はCPU110およびオペレーティングシステムによって実行される。
【0013】
CPU110とメモリ120とは信号線で接続してCPU110からメモリ120へアドレス信号(ADDRESS)、アウトプットイネイブル信号(OE)、ライトイネイブル信号(WE)などの信号を通信する。また、メモリ120からCPU110へデータ信号(DATA)などの信号を通信する。
アドレス信号はメモリ120の特定の記憶領域を指定する信号であり、データ信号はメモリ120から読み出されたデータを示す信号である。アプトプットイネイブル信号はデータの読み出しを命令する信号であり、ライトイネイブル信号はデータの書き込みを命令する信号である。
【0014】
違反メモリアクセス検出装置200は、CPU110とメモリ120とを接続する信号線に接続してCPU110からメモリ120への各種信号を入力し、入力した各種信号に基づいてCPU110からメモリ120への違反アクセスを検出する。
違反アクセスを検出した違反メモリアクセス検出装置200は、CPU110や周辺装置130に対して違反アクセスの割込みを発生させる。
【0015】
さらに、違反メモリアクセス検出装置200は、複数のアプリケーションをCPU110に所定の順序で実行させるため、複数のアプリケーションを切り替える切り替え制御を行う。
【0016】
以下、オペレーティングシステムを「システム」、アプリケーションプログラムを「アプリケーション」、アプリケーションプログラムAを「アプリA」、アプリケーションプログラムBを「アプリB」という。
また、周辺装置を接続するインタフェースを「周辺装置130」という。
【0017】
図2は、実施の形態1における違反メモリアクセス検出装置200の機能構成図である。
実施の形態1における違反メモリアクセス検出装置200の機能構成について、図2に基づいて説明する。
【0018】
違反メモリアクセス検出装置200は、アドレスマップ保管部210、実行順序管理部220、違反検出部230、タイマ処理部240およびPCバッファ管理部250を備える。
さらに、違反メモリアクセス検出装置200は、タイマ241、PCバッファ251、メモリ(図示省略)を備える。
【0019】
アドレスマップ保管部210(記憶領域情報記憶部の一例)は、複数のプログラムそれぞれに割り当てられる記憶領域として前記メモリ内の所定の記憶領域を示す記憶領域情報(アドレスマップ)を記憶する。
【0020】
実行順序管理部220(実行順序情報記憶部、実行プログラム特定部の一例)は、複数のプログラムの所定の実行順序を示す実行順序情報を記憶する。
実行順序管理部220は、タイマ処理部240により切り替えられる切り替え後の実行プログラムを新実行プログラムとして実行順序情報に基づいて特定する。
【0021】
タイマ241(装置内タイマ)は、CPU110に実行させる実行プログラムを実行中のプログラムから他のプログラムに切り替える所定の切り替えタイミングを検出する。
タイマ241は、切り替えタイミングを検出した後、新実行プログラムの実行を開始する所定の実行開始タイミングを検出する。
【0022】
タイマ処理部240(実行プログラム切り替え部)は、切り替えタイミングの検出をCPU110に通知(切り替え開始割込み)することによりCPU110に実行プログラムを切り替えさせる。
タイマ処理部240は、実行開始タイミングの検出をCPU110に通知(切り替え完了割込み)することによりCPU110に新実行プログラムの実行を開始させる。
【0023】
違反検出部230(割当領域特定部、アクセス領域特定部、違反アクセス検出部の一例)は、実行順序管理部220による特定結果とアドレスマップ保管部210に記憶される記憶領域情報とに基づいて、新実行プログラムに割り当てられる記憶領域を割当領域(アクセス可能領域)として特定する。
違反検出部230は、メモリ120内の記憶領域のうちCPU110がアクセスする記憶領域をアクセス領域として示すアクセス信号(OE、WE)を入力し、入力したアクセス信号に基づいてアクセス領域を特定する。
違反検出部230は、アクセス領域と割当領域とを比較し、アクセス領域が割当領域以外の記憶領域である場合にアクセス領域へのアクセスを違反アクセスとして検出する。
【0024】
PCバッファ251(装置内バッファの一例)は、特定のプログラムカウンタが記憶される。
【0025】
PCバッファ管理部250(プログラムカウンタ通知部の一例)は、切り替えタイミングが検出されたときに、CPU110によりメモリ120内の所定の記憶領域に退避されるプログラムカウンタであって新実行プログラムの前回実行時のプログラムカウンタをPCバッファ251に記憶し、実行開始タイミングが検出されたときに、PCバッファ251に記憶したプログラムカウンタをCPU110に通知する。
【0026】
図3は、実施の形態1における違反メモリアクセス検出方法を示すフローチャートである。
実施の形態1における違反メモリアクセス検出方法の処理の流れについて、図3に基づいて説明する。
【0027】
S111において、アドレスマップ保管部210は、CPU110のシステムからアドレスマップを受け取り、受け取ったアドレスマップを保持する。
例えば、アドレスマップは、アプリケーションを識別するアプリケーションIDとアプリケーションがアクセス許可されているメモリ120内の記憶領域(アクセス可能領域)を示すアドレスとを対応付けた対応表である。
アドレスマップは、システムに割り当てられたメモリ120内の所定の記憶領域(以下、「システム領域」という)に予め記憶されているものとする。
【0028】
S112において、実行順序管理部220は、CPU110のシステムからアプリケーションの所定の実行順序を示す実行順序情報を受け取り、受け取った実行順序情報を保持する。
実行順序情報は、システム領域に予め記憶されているものとする。
【0029】
S113において、タイマ処理部240は、CPU110から切り替え周期と切り替え時間とを受け取り、受け取った切り替え周期と切り替え時間とを保持する。
切り替え周期とは、アプリケーションを切り替える周期を示す所定の情報である。切り替え周期はアプリケーション毎に異なっても複数のアプリケーションで同じであっても構わない。
切り替え時間とは、アプリケーションの切り替え処理に要する時間を示す所定の情報である。アプリケーションの切り替えは切り替え時間内に完了できるものとする。
切り替え周期や切り替え時間は、システム領域に予め記憶されているものとする。
S111〜S113の後、S114に進む。
【0030】
S114において、違反検出部230は、アドレスマップ保管部210からアドレスマップを受け取る。
S114の後、S115に進む。
【0031】
S115において、タイマ処理部240は、タイマ241に切り替え周期を設定する。
タイマ241は、内部にカウンタを保持し、カウンタが切り替え周期に達したときに実行順序管理部220とCPU110とに切り替え開始割込みを通知する。
S115の後、S121に進む。
【0032】
S121において、切り替え開始割込みが発生した場合にはアプリケーション切り替え処理(S200)に進む。
S121において、アプリケーションの実行中にアウトプットイネイブル信号(OE)またはライトイネイブル信号(WE)が発生した場合(メモリアクセス)には違反アクセス判定処理(S131〜S134)に進む。
【0033】
S131において、違反検出部230は、CPU110とメモリ120とを接続する信号線からアウトプットイネイブル信号またはライトイネイブル信号と共にアドレス信号を入力する。
違反検出部230は、入力したアドレス信号に基づいて、CPU110がアクセスするメモリ120内の領域を特定する。以下、特定した領域を「アクセス領域」という。
S131の後、S132に進む。
【0034】
S132において、違反検出部230は、実行順序管理部220から実行アプリIDを受け取る。このとき、実行アプリIDは、実行中のアプリケーションのIDを示している。
次に、違反検出部230は、アドレスマップと実行アプリIDとに基づいて実行中のアプリケーションのアクセス可能領域を特定する。
そして、違反検出部230は、アクセス領域とアクセス可能領域とを比較する。
S132の後、S133に進む。
【0035】
S133において、違反検出部230は、アクセス領域とアクセス可能領域との比較結果に基づいて、アクセス領域へのアクセスが違反アクセスであるか否かを判定する。アクセス領域にアクセス可能領域外の記憶領域が含まれれば違反アクセスである。
違反アクセスである場合(YES)にS134に進み、違反アクセスでない場合(NO)、S121に戻る。
【0036】
S134において、違反検出部230は、違反アクセス割込みをCPU110や周辺装置130に通知する。
CPU110や周辺装置130は、違反アクセス割込みを受けて所定の動作をする。
S134により違反メモリアクセス検出方法の処理は終了する。
【0037】
図4は、実施の形態1におけるアプリケーション切り替え処理(S200)のフローチャートである。
違反メモリアクセス検出方法(図3参照)において切り替え開始割込みが発生した場合(S121)に実行するアプリケーション切り替え処理(S200)について、図4に基づいて説明する。
【0038】
切り替え開始割込みは実行順序管理部220とCPU110とに通知される。
【0039】
まず、違反メモリアクセス検出装置200の処理(S211〜S232)について説明する。
【0040】
S211において、タイマ処理部240は、タイマ241に切り替え時間を設定する。
タイマ241は、内部にカウンタを保持し、カウンタが切り替え時間に達したときに実行順序管理部220とCPU110とに切り替え完了割込みを通知する。
S211の後、S221に進む。
【0041】
S221において、実行順序管理部220は、実行アプリIDをシステムを識別するIDに更新する。
S221の後、S222に進む。
【0042】
S222において、PCバッファ管理部250は、PCバッファ251にNULLを設定してプログラムカウンタ(PC)をリセットする。
プログラムカウンタとは、次に実行する命令が記憶されている領域のアドレスを示すデータである。
S222の後、S223に進む。
【0043】
S223において、PCバッファ管理部250は、CPU110のシステムから次に実行するアプリケーションのプログラムカウンタを受け取り、受け取ったプログラムカウンタをPCバッファ251に設定する。
S223の後、S224に進む。
【0044】
S224において、タイマ241が切り替え完了割込みを検出し、切り替え完了割込みを実行順序管理部220とCPU110とに通知する。
S224の後、S231に進む。
【0045】
S231において、実行順序管理部220は、アドレスマップに基づいて、CPU110が次に実行するアプリケーション(例えば、アプリB)のIDを特定する。
実行順序管理部220は、特定したアプリケーションのIDを実行アプリIDとして設定して実行アプリIDを更新する。
S231の後、S233に進む。
【0046】
S232において、タイマ処理部240は、タイマ241に切り替え周期を設定する。
タイマ241は、内部にカウンタを保持し、カウンタが切り替え周期に達したときに実行順序管理部220とCPU110とに切り替え開始割込みを通知する。
S232によりアプリケーション切り替え処理(S200)は終了する。
【0047】
次に、CPU110の処理(S201〜S205)について説明する。
【0048】
S201において、CPU110は切り替え開始割込みを受けてシステムを実行し、システムはCPU110の各レジスタに設定されている値を現在のアプリケーション(例えば、アプリA)のコンテキストとしてシステム領域に保存する。コンテキストにはプログラムカウンタが含まれる。コンテキストはアプリケーションの実行状態を表すデータである。
S201の後、S202に進む。
【0049】
S202において、システムは、システム領域に記憶されている実行順序情報に基づいて、次に実行するアプリケーション(例えば、アプリB)を特定する。以下、特定したアプリケーションを「次の実行アプリ」という。
S202の後、S203に進む。
【0050】
S203において、システムは、前回の実行時に保存した次の実行アプリのコンテキストをシステム領域から読み出し、読み出したコンテキスト(プログラムカウンタを除く)をCPU110の各レジスタに設定する。
システムは、コンテキストに含まれるプログラムカウンタをCPU110のレジスタに設定せず、PCバッファ管理部250に通知する。
S203の後、タイマ241が切り替え完了割込みを発生し(S224)、S204に進む。
【0051】
S204において、CPU110は、切り替え完了割込みを受けてシステムを実行する。
システムはPCバッファ251からプログラムカウンタを読み出し、読み出したプログラムカウンタをCPU110のプログラムカウンタ用のレジスタに設定する。
これにより、CPU110の各レジスタには、次の実行アプリ(例えば、アプリB)を前回切り替えたとき(停止したとき)のコンテキストが全て設定される(S203参照)。
S204の後、S205に進む。
【0052】
S205において、システムは、CPU110の各レジスタに設定されたコンテキストに基づいて、次の実行アプリ(例えば、アプリB)を前回の切り替え時の状態から再開させる。
S205により、アプリケーション切り替え処理(S200)は終了する。
【0053】
図5は、実施の形態1におけるアプリケーション切り替え処理(S200)の概要図である。
実施の形態1におけるアプリケーション切り替え処理(S200)(図4参照)の概要について、図5に基づいて説明する。
【0054】
アプリAが実行されている場合、CPU110のPCレジスタ(プログラムカウンタ用のレジスタ)、実行順序管理部220の実行アプリIDおよびPCバッファ251にはアプリAの値が設定されている。
【0055】
ここで、切り替え開始割込みが発生したものとする(図3のS121)。
すると、CPU110ではシステムが動作し、システムはメモリ120のシステム領域にアプリAのレジスタ値(コンテキスト)を記憶する(S201)。
違反メモリアクセス検出装置200では、実行順序管理部220が実行アプリIDをシステムのIDに更新し(S221)、PCバッファ管理部250がPCバッファ251をリセット(NULL)する(S222)。
【0056】
システムは、次に実行するアプリBの前回のレジスタ値をメモリ120のシステム領域から読み出してCPU110のレジスタ(PCレジスタを除く)に設定する(S203)。アプリBのプログラムカウンタはPCバッファ251に設定される(S223)。
【0057】
次に、切り替え完了割込みが発生する(S224)。
すると、CPU110ではシステムが動作し、システムはPCバッファ251に設定されているアプリBのプログラムカウンタをCPU110のPCレジスタに設定し(S204)、アプリBを再開させる(S205)。
また、実行順序管理部220は実行アプリIDをアプリBに更新する(S231)。
【0058】
実施の形態1において、例えば、以下のような違反メモリアクセス検出装置200について説明した。
【0059】
違反メモリアクセス検出装置200は、複数のアプリケーションが動作するシステムであるアプリケーションが他のアプリケーションのメモリ領域をアクセスする違反メモリアクセスを検出する。
違反メモリアクセス検出装置200は、違反メモリアクセスを検出するためのシーケンス(図3)を実行する。
違反メモリアクセス検出装置200(ハードウェア)はアプリケーションの切リ替えを実現し、ソフトウェアによる切り替えでは検出できない違反メモリアクセスを検出する。
【0060】
違反メモリアクセス検出装置200は、CPU110とメモリ120との間に位置する。
違反メモリアクセス検出装置200は、CPU110とメモリ120とを接続する信号と、CPU110で動作しているアプリケーションとを比較することで、現在行われているメモリアクセスが違反かどうかを判断する。
違反の場合には、違反メモリアクセス検出装置200はCPU110や周辺装置130に通知する。
【0061】
違反メモリアクセス検出装置200が違反メモリアクセスを判断するためには、CPU110上でどのアプリケーションもしくはシステムが動作しているかを知る必要がある。これを知るために、違反メモリアクセス検出装置200は、あらかじめシステムからアプリケーションを動作させる順序(実行順序情報)を受け取り保持している。そして、アプリケーションの切り替えが発生した場合、このアプリケーションの順序を参照して、現在動作しているアプリケーションを判断し、違反メモリアクセスの判断に用いる。
【0062】
アプリケーションの切り替えは、違反メモリアクセス検出装置200の内部にあるタイマ241が管理する。違反メモリアクセス検出装置200は、あらかじめアプリケーションを切り替える周期(切り替え周期)と、システムがアプリケーションの切り替えるために必要となる時間(切り替え時間)を受け取る。そして、これらの情報からアプリケーションの切り替えのタイミングを生成し、CPU110と違反メモリアクセス検出装置200の内部のモジュール(例えば、実行順序管理部220)に通知する。
【0063】
違反メモリアクセス検出装置200は、ハードウェアによるタイマ241でアプリケーションの切り替えを実施しているため、CPU110と同時に違反メモリアクセスを判断するための設定情報(例えば、PCレジスタや実行アプリID)を切り替えることができる。
違反メモリアクセス検出装置200は、違反メモリアクセスを判断するための設定情報をCPU110で動作するソフトウェアを介さずに更新するため、アプリケーションやシステムがハードウェア(CPU110やメモリ120)の故障により暴走しても、違反メモリアクセスを検出することができる。
もし、従来技術のようにCPU110で動作するソフトウェアにより設定情報を更新していた場合、更新するソフトウェア自体が暴走すると、違反メモリアクセスの検出を行う設定情報が正しく設定されず、違反メモリアクセスを検出できない。
【符号の説明】
【0064】
100 基盤、110 CPU、120 メモリ、130 周辺装置、200 違反メモリアクセス検出装置、210 アドレスマップ保管部、220 実行順序管理部、230 違反検出部、240 タイマ処理部、241 タイマ、250 PCバッファ管理部、251 PCバッファ。

【特許請求の範囲】
【請求項1】
CPU(Central Processing Unit)とメモリとに接続される違反メモリアクセス検出装置において、
複数のプログラムそれぞれに割り当てられる記憶領域として前記メモリ内の所定の記憶領域を示す記憶領域情報を記憶する記憶領域情報記憶部と、
前記複数のプログラムの所定の実行順序を示す実行順序情報を記憶する実行順序情報記憶部と、
前記CPUに実行させる実行プログラムを実行中のプログラムから他のプログラムに切り替える所定の切り替えタイミングを検出する装置内タイマと、
前記切り替えタイミングの検出を前記CPUに通知することにより前記CPUに実行プログラムを切り替えさせる実行プログラム切り替え部と、
前記実行プログラム切り替え部により切り替えられる切り替え後の実行プログラムを新実行プログラムとして前記実行順序情報記憶部に記憶される実行順序情報に基づいて特定する実行プログラム特定部と、
前記実行プログラム特定部による特定結果と前記記憶領域情報記憶部に記憶される記憶領域情報とに基づいて、前記新実行プログラムに割り当てられる記憶領域を割当領域として特定する割当領域特定部と、
前記メモリ内の記憶領域のうち前記CPUがアクセスする記憶領域をアクセス領域として示すアクセス信号を入力し、入力したアクセス信号に基づいて前記アクセス領域を特定するアクセス領域特定部と、
前記アクセス領域特定部により特定されたアクセス領域と前記割当領域特定部により特定された割当領域とを比較し、前記アクセス領域が前記割当領域以外の記憶領域である場合に前記アクセス領域へのアクセスを違反アクセスとして検出する違反アクセス検出部と
を備えたことを特徴とする違反メモリアクセス検出装置。
【請求項2】
前記装置内タイマは、前記切り替えタイミングを検出した後、前記新実行プログラムの実行を開始する所定の実行開始タイミングを検出し、
前記実行プログラム切り替え部は、前記実行開始タイミングの検出を前記CPUに通知することにより前記CPUに前記新実行プログラムの実行を開始させる
ことを特徴とする請求項1記載の違反メモリアクセス検出装置。
【請求項3】
前記違反メモリアクセス検出装置は、さらに、
特定のプログラムカウンタが記憶される装置内バッファと、
前記切り替えタイミングが検出されたときに、前記CPUにより前記メモリ内の所定の記憶領域に退避されるプログラムカウンタであって前記新実行プログラムの前回実行時のプログラムカウンタを前記装置内バッファに記憶し、前記実行開始タイミングが検出されたときに、前記装置内バッファに記憶した前記プログラムカウンタを前記CPUに通知するプログラムカウンタ通知部とを備える
ことを特徴とする請求項2記載の違反メモリアクセス検出装置。
【請求項4】
CPU(Central Processing Unit)とメモリとに接続される違反メモリアクセス検出装置の違反メモリアクセス検出方法において、
記憶領域情報記憶部が、複数のプログラムそれぞれに割り当てられる記憶領域として前記メモリ内の所定の記憶領域を示す記憶領域情報を記憶し、
実行順序情報記憶部が、前記複数のプログラムの所定の実行順序を示す実行順序情報を記憶し、
装置内タイマが、前記CPUに実行させる実行プログラムを実行中のプログラムから他のプログラムに切り替える所定の切り替えタイミングを検出し、
実行プログラム切り替え部が、前記切り替えタイミングの検出を前記CPUに通知することにより前記CPUに実行プログラムを切り替えさせ、
実行プログラム特定部が、前記実行プログラム切り替え部により切り替えられる切り替え後の実行プログラムを新実行プログラムとして前記実行順序情報記憶部に記憶される実行順序情報に基づいて特定し、
割当領域特定部が、前記実行プログラム特定部による特定結果と前記記憶領域情報記憶部に記憶される記憶領域情報とに基づいて、前記新実行プログラムに割り当てられる記憶領域を割当領域として特定し、
アクセス領域特定部が、前記メモリ内の記憶領域のうち前記CPUがアクセスする記憶領域をアクセス領域として示すアクセス信号を入力し、入力したアクセス信号に基づいて前記アクセス領域を特定し、
違反アクセス検出部が、前記アクセス領域特定部により特定されたアクセス領域と前記割当領域特定部により特定された割当領域とを比較し、前記アクセス領域が前記割当領域以外の記憶領域である場合に前記アクセス領域へのアクセスを違反アクセスとして検出する
ことを特徴とする違反メモリアクセス検出方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2012−3540(P2012−3540A)
【公開日】平成24年1月5日(2012.1.5)
【国際特許分類】
【出願番号】特願2010−138426(P2010−138426)
【出願日】平成22年6月17日(2010.6.17)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】