(57)【要約】【課題】  メモリアクセス命令の削除による最適化が自由に行なえ、効率のよいトランスレーションコードを生成することが可能なメモリアクセス監視装置を提供すること。【解決手段】  デコーダ１は、命令コードをデコードし、メモリの特定領域であるフレーム領域をチェックするメモリアクセス命令であるか否かを判定する。ヒット信号生成回路２は、デコーダ１によって当該命令コードがフレーム領域をチェックするメモリアクセス命令であると判定され、かつ当該命令コードによってアクセスされるメモリアドレスがフレーム領域テーブル３に設定されるフレーム領域内であれば、ヒット信号を生成して出力する。したがって、不要となったフレーム領域をアクセスするメモリアクセス命令を削除しても、他のメモリアクセス命令がその削除したメモリアクセス命令と同じアドレスにアクセスすることがないことを保証できるようになる。【選択図】        図１
2005157537.tif 000002
【特許請求の範囲】
【請求項１】
バイナリートランスレーションを実行可能なマイクロコントローラにおけるメモリアクセス監視装置であって、
命令コードをデコードし、メモリの特定領域であるフレーム領域をチェックするメモリアクセス命令であるか否かを判定するデコード手段と、
前記フレーム領域を設定するテーブルと、
前記デコード手段によって当該命令コードがフレーム領域をチェックするメモリアクセス命令であると判定され、かつ当該命令コードによってアクセスされるメモリアドレスが前記テーブルに設定されるフレーム領域内であれば、ヒット信号を生成して出力する生成手段とを含む、メモリアクセス監視装置。
【請求項２】
前記命令コードは、フレーム領域をチェックするか否かを示す識別子を含み、
前記デコード手段は、前記識別子を参照して当該命令コードがフレーム領域をチェックするメモリアクセス命令であるか否かを判定する、請求項１記載のメモリアクセス監視装置。
【請求項３】
バイナリートランスレーションを実行可能なマイクロコントローラにおけるメモリアクセス監視装置であって、
命令コードをデコードし、レジスタ相対間接メモリアクセス命令であるか否かを判定するデコード手段と、
メモリの特定領域であるフレーム領域を設定するテーブルと、
ベースレジスタの番号を格納するレジスタと、
前記デコード手段によって当該命令コードがレジスタ相対間接メモリアクセス命令でないメモリアクセス命令と判定された場合、またはデコード手段によって当該命令コードがレジスタ相対間接メモリアクセス命令であると判定され、かつ当該命令コードのベースレジスタの番号が前記レジスタに格納されるベースレジスタ番号と一致しない場合に、当該命令コードによってアクセスされるメモリアドレスが前記テーブルに設定されるフレーム領域内であれば、ヒット信号を生成して出力する生成手段とを含むメモリアクセス監視装置。
【請求項４】
前記テーブルは、前記フレーム領域のアドレスの最小値を格納する第１のレジスタと、
前記フレーム領域のアドレスの最大値を格納する第２のレジスタと、
前記メモリアドレスが前記第１のレジスタに格納される最小値以上であるか否かを判定する第１の比較手段と、
前記メモリアドレスが前記第２のレジスタに格納される最大値以下であるか否かを判定する第２の比較手段とを含む、請求項１〜３のいずれかに記載のメモリアクセス監視装置。
【請求項５】
前記生成手段によって生成されたヒット信号によって例外を発生させる、請求項１〜４のいずれかに記載のメモリアクセス監視装置。
【請求項６】
命令は、前記テーブルまたは前記レジスタにフレーム領域を設定するための専用命令を含み、
前記デコード手段は、命令コードが前記専用命令であれば、前記テーブルまたは前記レジスタに値を設定する、請求項１〜５のいずれかに記載のメモリアクセス監視装置。
【請求項７】
前記命令コードは、フレーム領域を操作することを示す拡張子と、
メモリアクセスと同時に、前記テーブルまたは前記レジスタに設定される値とを含み、
前記デコード手段は、命令コードに前記拡張子が付されていれば、メモリアクセスと同時に、前記テーブルまたは前記レジスタに値を設定する、請求項１〜６のいずれかに記載のメモリアクセス監視装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、他の命令セットアーキテクチャのプログラム（オブジェクト）を自身の命令セットに動的に変換するバイナリートラスレーションに関し、特に、メモリアクセス命令の削除を効率的に行なうことが可能なバイナリートランスレーション用のメモリアクセス監視装置に関する。
【背景技術】
【０００２】
近年発表されたプロセッサにおいては、斬新なアーキテクチャを採用することで大幅な性能向上を目指す動きも活発化している。その１つとして、動的なコード変換技術であるバイナリートランスレーションを挙げることができる。このバイナリートランスレーションは、コンパイラが出力する実行コードとマイクロコンピュータが実行する命令との間の自由度を高め、マイクロコントローラの視点においては、コード互換性という過去の遺産によるしがらみから開放する手段を提供するものである。
【０００３】
このようなバイナリートランスレーション技術において、スケジューラが自由に命令の順番を移動させることができれば、それだけよい命令コードを生成することができる。この命令を移動させることの最大の制約は、メモリ演算間の潜在的な依存性から生じる。すなわち、実際にはメモリ演算間に依存関係がない場合であっても、マイクロコンピュータによってアクセスされるアドレスが実行時にしか分からないため、安全のためにメモリアクセス命令の順番を入れ替えたり、削除したりすることはできない。
【０００４】
たとえば、ロード命令をストア命令の前に移動できると、パイプライン処理など、多くの場合は良い結果が得られる。しかし、ロード命令によって、たまたま先行するストア命令によって書込まれたデータを読出すという事態が生じると、命令の順番を入れ替えることによって不正となってしまう。命令実行時以外にこれを検出することが困難であるため、トランスレータは、過度に保守的な変換しかできなくなる。
【０００５】
しかしながら、簡単なハードウェアを付加することによってこの問題を解決することができる。トランスレータは、ロード命令をストア命令よりも前に移動する場合、ロード命令をプロテクトロードという命令に変換する。そして、データをロードするのに加えて、アドレス、ロードされるデータのサイズなどをロードプロテクトテーブルに記憶する。
【０００６】
そして、ストア命令をロードプロテクトテーブルをチェックするストア命令に変換する。ストア命令は、データをストアするのに加えて、ロードプロテクトテーブルをチェックする。チェックした結果、以前ロードしたデータを上書きするという事態が生じた場合には例外を発生して、ある時点から命令を再実行することで、正確なプログラム実行を継続して行なうことができる。これについて、簡単に説明する。
【０００７】
命令実行時に例外が発生せずに、命令の順番がオリジナルの命令と同じ状態になっている時点まで到達すると、特別な命令によってそれまでの作業を確定する。この特別な命令をコミットと呼び、作業を確定した時点をコミットした時点と呼ぶ。コミット後に、例外が発生した場合には、最後にコミットした時点まで戻ることで実行を保証する。再実行のためには、コミット時点のレジスタ値をシャドウレジスタに保持したり、コミット後のメモリへの書込みを遅らせたりする機構（ストアバッファ）が必要になる。
【０００８】
これに関連する技術として、特開２００２−３１２１８０号公報に開示された発明がある。このプロセッサシステムにおいては、元命令列解釈実行処理流、命令変換・最適化処理流と元命令列先読み処理流を独立させ、チップマルチプロセッサ形式や、１個の命令実行制御部で同時に複数の処理流を実行する形式でプロセッサを構成して、複数処理流を並列処理する。さらに、命令変換・最適化処理流は、複数処理流を生成する形で変換後命令列を構成し、元命令列解釈実行処理流は、各命令解釈実行時に命令変換・最適化処理流に生成された当該命令に対応する変換後命令列が存在する場合にこれを実行する。
【特許文献１】特開２００２−３１２１８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述したロードプロテクトテーブルを用いたハードウェアにおいては、保護する命令がすべて記述され、明示的に命令によって記憶された情報を無効にして処理が進められる。マイクロコンピュータは性能を重視するため、保護された命令を記憶する数（エントリ数）が多くても、ハードウェア規模の多少の増加を問題にしない場合が多い。しかし、ハードウェア規模の増大は、消費電力や、生産コストの増加に直接結びつく。マイクロコントローラにおいては、ハードウェアの増加をできるだけ避けたいため、性能を犠牲にせざるを得ないという問題点があった。
【００１０】
また、高級言語などをコンパイルして得られるアセンブラにおいては、一般に、フレーム領域（スタック領域）を一時的にデータを保持するために使用し、グローバルな変数を保持する領域とは分離している場合が多い。フレーム領域を使用する理由のほとんどは、汎用レジスタの不足によるものである。これに対して、汎用レジスタの数が豊富なマイクロプロセッサでトランスレーションコードを実行する場合、データをレジスタに保持できるため、メモリアクセスが不要になることが多い。
【００１１】
ロードプロテクトテーブルだけしかない場合、上述した最適化を行なうときに、メモリアクセス命令の削除が可能になる訳ではない。たとえば、オリジナルのコードが一時的な値をフレーム領域に保持し、その値が必要になるたびにフレーム領域から読出す場合を考える。レジスタに値を保持できるのであれば、メモリへの書込み、メモリからの読出しは必要なくなるので、これらのメモリアクセス命令を削除することができる。しかし、他のメモリアクセス命令が、その値を参照していないという保証はない。ロードプロテクト機能を有している場合でも、メモリアクセス命令が削除されればロードプロテクトテーブルには登録されないので、少なくともストア命令を削除することはできない。
【００１２】
また、その保証のためだけに、不要なメモリアクセス命令が残るだけでなく、その命令を残すことによってロードプロテクトテーブルのエントリを使用しなければならず、大きなテーブルが必要になる。したがって、ハードウェアの規模が増大するが、それにもかかわらずメモリアクセスの最適化がある程度しかできないといった問題点があった。
【００１３】
本発明は、上記問題点を解決するためになされたものであり、その目的は、メモリアクセス命令の削除による最適化が自由に行なえ、効率のよいトランスレーションコードを生成することが可能なメモリアクセス監視装置を提供することである。
【課題を解決するための手段】
【００１４】
本発明のある局面に従えば、バイナリートランスレーションを実行可能なマイクロコントローラにおけるメモリアクセス監視装置であって、命令コードをデコードし、メモリの特定領域であるフレーム領域をチェックするメモリアクセス命令であるか否かを判定するデコード手段と、フレーム領域を設定するテーブルと、デコード手段によって当該命令コードがフレーム領域をチェックするメモリアクセス命令であると判定され、かつ当該命令コードによってアクセスされるメモリアドレスがテーブルに設定されるフレーム領域内であれば、ヒット信号を生成して出力する生成手段とを含む。
【００１５】
本発明の別の局面に従えば、バイナリートランスレーションを実行可能なマイクロコントローラにおけるメモリアクセス監視装置であって、命令コードをデコードし、レジスタ相対間接メモリアクセス命令であるか否かを判定するデコード手段と、メモリの特定領域であるフレーム領域を設定するテーブルと、ベースレジスタの番号を格納するレジスタと、デコード手段によって当該命令コードがレジスタ相対間接メモリアクセス命令でないメモリアクセス命令と判定された場合、またはデコード手段によって当該命令コードがレジスタ相対間接メモリアクセス命令であると判定され、かつ当該命令コードのベースレジスタの番号がレジスタに格納されるベースレジスタ番号と一致しない場合に、当該命令コードによってアクセスされるメモリアドレスがテーブルに設定されるフレーム領域内であれば、ヒット信号を生成して出力する生成手段とを含む。
【発明の効果】
【００１６】
本発明のある局面によれば、生成手段が、デコード手段によって当該命令コードがフレーム領域をチェックするメモリアクセス命令であると判定され、かつ当該命令コードによってアクセスされるメモリアドレスがテーブルに設定されるフレーム領域内であれば、ヒット信号を生成して出力するので、不要となったフレーム領域をアクセスするメモリアクセス命令を削除しても、他のメモリアクセス命令がその削除したメモリアクセス命令と同じアドレスにアクセスすることがないことを保証できるようになった。
【００１７】
本発明の別の局面によれば、生成手段が、デコード手段によって当該命令コードがレジスタ相対間接メモリアクセス命令でないメモリアクセス命令と判定された場合、またはデコード手段によって当該命令コードがレジスタ相対間接メモリアクセス命令であると判定され、かつ当該命令コードのベースレジスタの番号がレジスタに格納されるベースレジスタ番号と一致しない場合に、当該命令コードによってアクセスされるメモリアドレスがテーブルに設定されるフレーム領域内であれば、ヒット信号を生成して出力するので、フレーム領域テーブルの値と比較する特定のメモリアクセス命令を用意することなく、フレーム領域テーブルを参照するか否かを判断することが可能となった。
【発明を実施するための最良の形態】
【００１８】
（第１の実施の形態）
図１は、本発明の第１の実施の形態におけるメモリアクセス監視装置の概略構成を示すブロック図である。このメモリアクセス監視装置は、命令コードをデコードするデコーダ１と、命令コードが所定の条件にヒットするか否かを判定し、その判定結果であるヒット信号を生成して出力するヒット信号生成回路２と、メモリアクセスアドレスがフレーム領域内にあるか否かを判定するのに使用されるフレーム領域テーブル３とを含む。なお、本実施の形態においては、マイクロコントローラとメモリアクセス監視装置とが１チップで構成される場合について説明するが、これに限られるものではない。
【００１９】
フレーム領域をチェックするか否かの情報は、命令コードに明示されている。デコーダ１は、その情報をデコードすることによってフレーム領域チェック信号を生成し、ヒット信号生成回路２へ出力する。また、デコーダ１は、オペランドのデコード結果をヒット信号生成回路２へ出力する。
【００２０】
フレーム領域テーブル３は、フレーム領域のアドレスの最大値を保持する最大値レジスタ３１と、フレーム領域のアドレスの最小値を保持する最小値レジスタ３２と、最大値レジスタ３１に保持される最大値とアドレスバス５に出力されたメモリアクセスアドレスとを比較する比較器３３と、最小値レジスタ３２に保持される最小値とアドレスバス５に出力されたメモリアクセスアドレスとを比較する比較器３４とを含む。
【００２１】
比較器３３は、アドレスバス５に出力されたメモリアクセスアドレスが、最大値レジスタ３１に保持される最大値以下であれば、第１の比較条件一致信号を出力する。図１の例では、その比較一致信号の論理レベルをハイレベル（以下、Ｈレベルと略す。）とし、メモリアクセスアドレスが最大値レジスタ３１に保持される最大値以下の場合、比較器３３は、Ｈレベルを出力し、最大値よりも大きければロウレベル（以下、Ｌレベルと略す。）を出力する。また、比較器３４は、アドレスバス５に出力されたメモリアクセスアドレスが、最小値レジスタ３２に保持される最小値以上であれば、第２の比較条件一致信号を出力する。図１の例では、その比較一致信号の論理レベルをＨレベルとすると、メモリアクセスアドレスが最大値レジスタ３２に保持される最小値以上の場合、比較器３４は、Ｈレベルを出力し、最小値よりも小さければＬレベルを出力する。
【００２２】
ヒット信号生成回路２は、デコーダ１から出力されたオペランドおよびフレーム領域チェック信号に基づいてフレーム領域のチェックを行なうか否かを示すｃｈｅｃｋ信号を生成して出力する制御回路２１と、ヒット信号出力回路２２とを含む。
【００２３】
制御回路２１は、オペランドがメモリアクセス命令を示し、フレーム領域チェック信号がフレーム領域のチェックを行なうことを示す場合に、ｃｈｅｃｋ信号として所定の論理レベルの信号を出力する。図１の例では、フレーム領域チェック信号がフレーム領域のチェックを行なうことを示す場合、ｃｈｅｃｋ信号にＨレベルを出力する。また、ヒット信号出力回路２２は、ＡＮＤ回路で構成され、制御信号２１から出力されるｃｈｅｃｋ信号がＨレベルであり、かつ比較器３３および３４から出力される信号がそれぞれＨレベルの場合にヒット信号にＨレベルを出力し、それ以外の場合にはヒット信号にＬレベルを出力する。
【００２４】
なお、上記の構成では比較器３３，３４からの第１、第２の比較一致信号がＨレベルであり、フレーム領域チェックを行なう場合に制御回路２１からのｃｈｅｃｋ信号がＨレベルの場合においてＡＮＤ回路で構成されるヒット信号出力回路２２からＨレベルのヒット信号が出力される例を示したが、入力あるいは出力の論理レベルを入れ替えることは任意可能であり、例えば、第１、第２の比較一致信号およびフレーム領域チェックを行なう際出力されるｃｈｅｃｋ信号の論理レベルに応じてヒット信号出力回路２２をＯＲ回路、ＮＡＮＤ回路もしくはＮＯＲ回路のような論理回路への置き換えや、入力の一部の論理レベルを反転入力とした論理回路を適宜用いることが可能である。
【００２５】
また、図１の例では第１の比較一致信号と第２の比較一致信号とはそれぞれヒット信号出力回路２２に入力されているが、フレームテーブル領域３内において、ＡＮＤ回路を更に設け第１の比較一致信号と第２の比較一致信号とをそのＡＮＤ回路に入力し、その出力をヒット信号出力回路２２の入力に供給することも可能である。その際ヒット信号出力回路の入力端子数は１端子少なくすることができる。
【００２６】
ヒット信号は、マイクロプロセッサ内の例外を発生させる機構に伝達される。ヒット信号がＨレベルの場合に例外が発生し、ある時点からの命令の再実行が行なわれる。この命令の再実行は、従来技術で説明したロードプロテクトテーブルで例外が発生した場合の動作と同様である。
【００２７】
図２は、本発明の第１の実施の形態におけるフレーム領域テーブル操作命令の一例を示す図である。ＳＥＴ＿ＦＰＭＩＮ命令は、最小値レジスタ３２にフレーム領域のアドレスの最小値をセットするための命令である。ＳＥＴ＿ＦＰＭＡＸ命令は、最大値レジスタ３１にフレーム領域のアドレスの最大値をセットするための命令である。なお、レジスタにセットする値は、ＳＥＴ＿ＦＰＭＩＮまたはＳＥＴ＿ＦＰＭＡＸのあとに記述される。ＲＥＳＥＴ＿ＦＰＭＩＮ命令は、最小値レジスタ３２をリセットするための命令であり、この命令を実行することによって最小値レジスタ３２の全ビットに“１”が設定される。ＲＥＳＥＴ＿ＦＰＭＡＸ命令は、最大値レジスタ３１をリセットするための命令であり、この命令を実行することによって最大値レジスタ３１の全ビットに“０”が設定される。
【００２８】
トランスレーションを開始した時点、またはフレーム領域の変更が生じたときに、これらの命令が実行（トランスレートコードに記述）されることによって、フレーム領域テーブルの最大値や最小値のセットまたはリセットが行なわれる。
【００２９】
デコーダ１は、命令コードがフレーム領域テーブル操作命令であれば、バス４を介して最大値レジスタ３１または最小値レジスタ３２のセットまたはリセットを行なう。
【００３０】
図３は、本発明の第１の実施の形態におけるフレーム領域をチェックするか否かを明示する方法の一例を示す図である。図３（ａ）は、ワードのロード命令を示しており、左側のニーモニックに示すように、フレーム領域チェック拡張子“．Ｆ”を付加することによって明示的に記述される。また、右側の命令コードの構成に示すように、ビット３０および３１にフレーム領域チェック拡張子が格納される。なお、図３（ａ）に示すロード命令は、レジスタＲｂに格納されたベースアドレスにＲｃに格納された値を加算したアドレスからデータを読出し、そのデータをレジスタＲａに格納する命令である。また、図３（ｂ）に示すロード命令は、レジスタＲｂに格納されたベースアドレスに即値ｉｍｍを加算したアドレスからデータを読出し、そのデータをレジスタＲａに格納する命令である。
【００３１】
以上説明したように、本実施の形態におけるメモリアクセス監視装置によれば、メモリアクセス命令がフレーム領域をアクセスする場合に例外を発生させて、ある時点からの命令の再実行を行なうようにしたので、不要となったフレーム領域をアクセスするメモリアクセス命令を削除しても、他のメモリアクセス命令がその削除したメモリアクセス命令と同じアドレスにアクセスすることがないことを保証できるようになった。したがって、メモリアクセス命令の削除による最適化が自由に行なえるようになり、効率のよいトランスレートコードを生成することが可能となった。
【００３２】
また、削除したフレーム領域をアクセスする命令を、ロードプロテクトテーブルで個々に管理する必要がなくなり、ロードプロテクトテーブルを最小限のハードウェアで構成することが可能となった。
【００３３】
（第２の実施の形態）
図４は、本発明の第２の実施の形態におけるメモリアクセス監視装置の概略構成を示すブロック図である。このメモリアクセス監視装置は、命令コードをデコードするデコーダ１１と、デコーダ１１から出力されたレジスタ相対間接信号に基づいてフレーム領域アクセス信号を生成して出力する制御回路２３と、ヒット信号出力回路２４と、最大値レジスタ３１と、最小値レジスタ３２と、比較器３３および３４と、ベースレジスタ番号を保持するベースレジスタ３５とを含む。なお、第１の実施の形態と同じ機能を有する構成部分については同じ参照符号を付し、その構成の詳細な説明は繰り返さない。
【００３４】
一般に、フレーム領域をアクセスするメモリアクセス命令は、（ベースレジスタの値＋即値）をアドレスとする。そのため、同じアドレスをアクセスするか否かは、ベースレジスタの値が変わらない限り、トランスレーション時に判断することができる。また、（ベースレジスタの値＋即値）をアドレスとしないメモリアクセス命令は、すべてフレーム領域テーブルの値との比較を行なえば、フレーム領域をアクセスする命令を削除しても、正しい実行が確実に保証できる。
【００３５】
デコーダ１１は、命令コードをデコードし、命令コードが（ベースレジスタの値＋即値）をアドレスとするレジスタ相対間接メモリアクセス命令の場合には、たとえばレジスタ相対間接信号にＨレベルを出力し、それ以外の場合にはレジスタ相対間接信号にＬレベルを出力する。
【００３６】
制御回路２３は、デコーダ１１から出力されるレジスタ相対間接信号がＨレベルの場合、メモリアクセス命令のレジスタ番号と、ベースレジスタ３５に保持されるベースレジスタの番号とを比較する。一致する場合には、このメモリアクセス命令がフレーム領域をアクセスすると判断し、フレーム領域アクセス信号にたとえばＨレベルを出力する。
【００３７】
また、デコーダ１１から出力されるレジスタ相対間接信号がＬレベルの場合、またはレジスタ相対間接信号がＨレベルであっても、メモリアクセス命令のレジスタ番号と、ベースレジスタ３５に保持されるベースレジスタの番号とが一致しない場合には、このメモリアクセス命令がフレーム領域をアクセスするか否かを判断するためにフレーム領域アクセス信号にたとえばＬレベルを出力する。
【００３８】
ヒット信号出力回路２４は、図４の例ではフレーム領域アクセス信号を受ける入力を反転入力としたＡＮＤ回路（つまり、反転入力端子の信号がＬレベルで他の端子の入力信号がＨレベルのときのみにＨレベルのヒット信号を出力する論理回路）で構成され、フレーム領域アクセス信号がＨレベルの場合は、比較結果を無効とし、ヒット信号にＬレベルを出力する。また、ヒット信号出力回路２４は、フレーム領域アクセス信号がＬレベルであり、比較器３３および３４のそれぞれからＨレベルが出力される場合は、ヒット信号にＨレベルを出力して例外を発生させ、ある時点からの命令の再実行が行なわれる。
【００３９】
図５は、本発明の第１の実施の形態におけるフレーム領域テーブル操作命令の一例を示す図である。ＳＥＴ＿ＦＰＭＩＮ命令、ＳＥＴ＿ＦＰＭＡＸ命令、ＲＥＳＥＴ＿ＦＰＭＩＮ命令およびＲＥＳＥＴ＿ＦＰＭＡＸ命令は、図２に示すものと同様である。ＳＥＴ＿ＦＰ命令は、ベースレジスタ３５にレジスタ番号をセットするための命令である。ＣＬＲ＿ＦＰ命令は、ベースレジスタ３５の値をクリアするための命令であり、この命令を実行することによってベースレジスタ３５に（レジスタ数＋１）がセットされる。
【００４０】
以上説明したように、本実施の形態におけるメモリアクセス監視装置によれば、第１の実施の形態において説明した効果に加えて、フレーム領域テーブルの値と比較する特定のメモリアクセス命令を用意することなく、フレーム領域テーブルを参照するか否かを判断することができる。したがって、命令フィールドを変更したり、新たな命令を追加することなくフレーム領域を参照するか否かを判断することが可能となった。
【００４１】
（第３の実施の形態）
本発明の第１および第２の実施の形態においては、フレーム領域テーブルのセットおよびリセットを専用命令を用いて行なうものであったが、本発明の第３の実施の形態においては、メモリアクセス命令にフレーム領域操作用拡張子を付加することによって、メモリアクセスと同時にフレーム領域テーブルの内容の変更を可能とするものである。
【００４２】
図６は、本発明の第３の実施の形態におけるメモリアクセス監視装置の概略構成を示すブロック図である。このメモリアクセス監視装置は、命令コードをデコードするデコーダ１２と、デコーダ１２から出力されたレジスタ相対間接信号に基づいてフレーム領域アクセス信号を生成して出力する制御回路２３と、ヒット信号出力回路２４と、最大値レジスタ３１と、最小値レジスタ３２と、比較器３３および３４と、ベースレジスタ番号を保持するベースレジスタ３５とを含む。なお、第２の実施の形態と同じ機能を有する構成部分については同じ参照符号を付し、その構成の詳細な説明は繰り返さない。
【００４３】
デコーダ１２は、命令コードをデコードし、命令コードが（ベースレジスタの値＋即値）をアドレスとするメモリアクセス命令の場合には、レジスタ相対間接信号にＨレベルを出力し、それ以外の場合にはレジスタ相対間接信号にＬレベルを出力する。また、デコーダ１２は、命令コードが、フレーム領域操作用拡張子が付されたメモリアクセス命令であれば、フレーム領域操作用拡張子をデコードし、デコード結果に応じてベースレジスタ３５、最大値レジスタ３１または最小値レジスタ３２へのセット信号を出力すると共に、バス４にレジスタ番号またはメモリアドレスを出力する。
【００４４】
図７は、本発明の第３の実施の形態におけるフレーム領域操作用拡張子の一例を示す図である。命令に拡張子“．ＦＭＩＮ”が付されていれば、最小値レジスタ３２にフレーム領域のアドレスの最小値がセットされる。命令に拡張子“．ＦＭＡＸ”が付されていれば、最大値レジスタ３１にフレーム領域のアドレスの最大値がセットされる。命令に拡張子“．ｂ”が付されていれば、ベースレジスタ３５にベースレジスタ番号がセットされる。
【００４５】
図８は、本発明の第３の実施の形態におけるフレーム領域操作用拡張子が付された命令の一例を示す図である。図８（ａ）および図８（ｂ）は、ワードのロード命令を示しており、左側のニーモニックに示すように、フレーム領域操作用拡張子を付加することによって明示的に記述される。なお、拡張子“．Ｆ”には、図７に示すフレーム領域操作用拡張子のいずれかが記述される。また、右側の命令コードの構成に示すように、ビット３０および３１にフレーム領域操作用拡張子が格納される。また、レジスタにセットする値は、フレーム領域操作用拡張子を含む命令コード以降に記述され、たとえば全体として８バイト命令を構成する。
【００４６】
たとえば、デコーダ１２は、図８（ａ）に示すロード命令にフレーム領域操作用拡張子“．ＦＭＩＮ”が付されていれば、最小値レジスタ３２にセットする値をバス４に出力すると共に、最小値レジスタ３２へのセット信号を出力する。また、デコーダ１２は、図８（ｂ）に示すロード命令にフレーム領域操作用拡張子“．ＦＭＡＸ”が付されていれば、最大値レジスタ３１にセットする値をバス４に出力すると共に、最大値レジスタ３１へのセット信号を出力する。さらに、デコーダ１２は、図８（ａ）に示すロード命令にフレーム領域操作用拡張子“．ｂ”が付されていれば、ベースレジスタ３５にセットする値をバス４に出力すると共に、ベースレジスタ３５へのセット信号を出力する。
【００４７】
以上説明したように、本実施の形態におけるメモリアクセス監視装置によれば、第１および第２の実施の形態において説明した効果に加えて、専用命令の実行による実行サイクルが追加されることなく、フレーム領域テーブルに値をセットすることができる。したがって、実行サイクルを削減した命令コードを生成することが可能となった。
【００４８】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【００４９】
【図１】本発明の第１の実施の形態におけるメモリアクセス監視装置の概略構成を示すブロック図である。
【図２】本発明の第１の実施の形態におけるフレーム領域テーブル操作命令の一例を示す図である。
【図３】本発明の第１の実施の形態におけるフレーム領域をチェックするか否かを明示する方法の一例を示す図である。
【図４】本発明の第２の実施の形態におけるメモリアクセス監視装置の概略構成を示すブロック図である。
【図５】本発明の第１の実施の形態におけるフレーム領域テーブル操作命令の一例を示す図である。
【図６】本発明の第３の実施の形態におけるメモリアクセス監視装置の概略構成を示すブロック図である。
【図７】本発明の第３の実施の形態におけるフレーム領域操作用拡張子の一例を示す図である。
【図８】本発明の第３の実施の形態におけるフレーム領域操作用拡張子が付された命令の一例を示す図である。
【符号の説明】
【００５０】
１，１１，１２  デコーダ、２  ヒット信号生成回路、３  フレーム領域テーブル、４  バス、５  アドレスバス、２１，２３  制御回路、２２，２４  ＡＮＤ回路、３１  最大値レジスタ、３２  最小値レジスタ、３３，３４  比較器、３５  ベースレジスタ。
【図１】
2005157537.tif 000003
【図２】
2005157537.tif 000004
【図３】
2005157537.tif 000005
【図４】
2005157537.tif 000006
【図５】
2005157537.tif 000007
【図６】
2005157537.tif 000008
【図７】
2005157537.tif 000009
【図８】
2005157537.tif 000010