(57)【要約】【課題】ハードウェアの増加を抑えつつ、従来のデバッグ装置及びデバッガを利用して、プログラムのデバッグができるようにする。【解決手段】複数の命令列を格納する主記憶装置１１０と、主記憶装置１１０から転送された命令列を実行するプロセッサ１２０とを有したデータ処理装置において、主記憶装置１１０から転送された命令列を格納する命令ＲＡＭ１２１と、命令ＲＡＭ１２１に格納する命令列のメモリ空間上の配置アドレスが、他の命令列の命令ＲＡＭ１２１上の配置アドレスと重複しないように、命令ＲＡＭ１２１のメモリ空間上の配置アドレスを設定する配置アドレス設定部１２２と、配置アドレス設定部１２２が設定した配置アドレスを基に、命令フェッチアクセスのアクセス対象空間を判定し、判定結果に応じ、主記憶装置１１０及び命令ＲＡＭ１２１の何れかに対してアクセスを行う命令フェッチ制御部１２３をプロセッサ１２０に設ける。【選択図】図１
2008140124.tif 000002
【特許請求の範囲】
【請求項１】
複数の命令列を格納する主記憶装置と、前記主記憶装置から転送された命令列を実行するプロセッサとを有したデータ処理装置であって、
前記プロセッサは、
前記主記憶装置から転送された命令列を格納する命令ＲＡＭと、
前記命令ＲＡＭに格納する命令列のメモリ空間上の配置アドレスが、他の命令列の命令ＲＡＭ上の配置アドレスと重複しないように、前記命令ＲＡＭのメモリ空間上の配置アドレスを設定する配置アドレス設定部と、
前記配置アドレス設定部が設定した配置アドレスを示す情報である配置アドレス情報を基に、命令フェッチアクセスのアクセス対象空間を判定し、判定結果に応じ、前記主記憶装置及び前記命令ＲＡＭの何れかに対してアクセスを行う命令フェッチ制御部と、
を備えていることを特徴とするデータ処理装置。
【請求項２】
請求項１のデータ処理装置であって、
前記配置アドレス設定部は、転送される命令列の前記主記憶装置上のアドレスと同一のアドレスを、前記命令ＲＡＭの配置アドレスとして設定するように構成されていることを特徴とするデータ処理装置。
【請求項３】
請求項１のデータ処理装置であって、
前記配置アドレス設定部は、前記命令ＲＡＭを配置する領域の先頭のアドレスを設定するスタートアドレス設定レジスタと、前記命令ＲＡＭを配置する領域の容量を設定するメモリサイズ設定レジスタとを備え、
前記配置アドレス設定部は、前記スタートアドレス設定レジスタに設定されたアドレスから始まる、前記メモリサイズ設定レジスタに設定された容量分の領域に、前記命令ＲＡＭのメモリ空間上の配置アドレスを設定するように構成されていることを特徴とするデータ処理装置。
【請求項４】
請求項１のデータ処理装置であって、
前記配置アドレス設定部は、前記命令ＲＡＭを配置する領域の先頭のアドレスを設定するスタートアドレス設定レジスタと、前記命令ＲＡＭを配置する領域の末尾のアドレスを設定するエンドアドレス設定レジスタとを備え、
前記配置アドレス設定部は、前記スタートアドレス設定レジスタに設定されたアドレスから、前記エンドアドレス設定レジスタに設定されたアドレスまでの領域に、前記命令ＲＡＭのメモリ空間上の配置アドレスを設定するように構成されていることを特徴とするデータ処理装置。
【請求項５】
請求項３のデータ処理装置であって、
前記配置アドレス設定部は、前記命令ＲＡＭの容量を、前記メモリサイズ設定レジスタに設定するように構成されていることを特徴とするデータ処理装置。
【請求項６】
請求項３のデータ処理装置であって、
前記配置アドレス設定部は、前記命令ＲＡＭに転送する命令列の容量を、前記メモリサイズ設定レジスタに設定するように構成されていることを特徴とするデータ処理装置。
【請求項７】
請求項４のデータ処理装置であって、
前記配置アドレス設定部は、前記スタートアドレス設定レジスタに設定されているアドレスに、前記命令ＲＡＭの容量を加算した値を、前記エンドアドレス設定レジスタに対して設定するように構成されていることを特徴とするデータ処理装置。
【請求項８】
請求項４のデータ処理装置であって、
前記配置アドレス設定部は、前記スタートアドレス設定レジスタに設定されているアドレスに、前記命令ＲＡＭに転送する命令列の容量を加算した値を、前記エンドアドレス設定レジスタに対して設定するように構成されていることを特徴とするデータ処理装置。
【請求項９】
請求項１のデータ処理装置であって、
前記命令ＲＡＭは、複数が設けられており、
前記配置アドレス設定部は、前記複数の命令ＲＡＭの各々に対して１つずつが対応して設けられていることを特徴とするデータ処理装置。
【請求項１０】
請求項１のデータ処理装置であって、
前記命令ＲＡＭは、少なくとも２つ以上の記憶領域に分割されており、
前記配置アドレス設定部は、分割された記憶領域の各々に対して１つずつが対応して設けられていることを特徴とするデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリなどに記憶された命令列をＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）に転送して命令を実行するプロセッサを備えたデータ処理装置に関するものである。
【背景技術】
【０００２】
マイクロコンピュータ等のプロセッサは、主記憶装置やＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等の主記憶装置に対して、比較的高速、且つ小容量のＲＡＭ（命令ＲＡＭと呼ぶ）を備え、主記憶装置に記憶されたプログラムを命令列単位で、適宜命令ＲＡＭに転送して実行するように構成することがある。これによれば、命令ＲＡＭの容量に制約されない大きさのプログラムを、高速動作が可能な命令ＲＡＭ上で実行することができ、処理性能を向上させることができる（このような技術はオーバーレイ技術と呼ばれることがある）。
【０００３】
上記のプロセッサでは、例えば、図１１に示すように、命令ＲＡＭ上のアドレスＡには、ある時刻Ｔ１では命令列Ｐ１の命令Ｃ１が格納され、ある時刻Ｔ２では命令列Ｐ２の命令Ｃ２が格納されることになる。
【０００４】
ところで、マイクロコンピュータ等のプロセッサに実行させるプログラムをデバッグする場合には、ブレイクポイントを設定してプログラムの実行を停止させる手法が一般的に用いられている。この手法は、例えば、実行を停止させようとする命令のアドレスをデバッグ装置の所定のレジスタに設定すると共に、レジスタに設定したアドレスとプロセッサによって実行されようとする命令のアドレスとを逐次比較させ、両者が一致した時に割込み信号を発生させて、命令の実行を停止させるものである。
【０００５】
しかしながら、オーバーレイ技術を用いたプロセッサに対しては、従来のデバッグ手法では、命令ＲＡＭに転送されている命令列について、実行を停止させようとする命令のアドレスをレジスタに設定したとしても、次の命令列が命令ＲＡＭに転送されると、設定されたアドレスは意味のないものになってしまう。そのため、複数の命令列に渡ってデバッグすることが困難であった。
【０００６】
例えば、図１１に示すように、命令ＲＡＭに格納された命令列Ｐ１の命令Ｃ１（アドレスＡに格納されているとする）でブレイクさせる場合を考える。この場合は、ブレイクポイントとして、アドレスＡをレジスタに設定して、プログラムカウンタ（ＰＣ）の値が、設定したブレイクポイント（アドレスＡ）と一致したときにブレイクされる。
【０００７】
しかし、命令列Ｐ１よりも先に、命令列Ｐ２が実行されると、命令Ｃ１のアドレスＡには、命令Ｃ２が置き換えられている。このため、命令列Ｐ２の命令Ｃ２でブレイクされてしまう。すなわち、意図しないところで、間違ってブレイクが発生することになる。
【０００８】
これに対しては、識別子によって識別された複数のプログラムコードを用い、このプログラムコードのうちの実行されるプログラムコードが格納される命令ＲＡＭと、命令ＲＡＭに格納されるプログラムコードの識別子を記憶する変数領域とを設け、命令ＲＡＭの内容と、変数領域の内容とが一致した場合にブレイクするようにしたものがある（例えば、特許文献１を参照）。
【特許文献１】特開２００３−３４５６２４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１のプロセッサでは、以下のような問題がある。
【００１０】
まず、識別情報を保持する記憶領域をハードウェアで実装する場合には、記憶領域のためのハードウェア増加だけでなく、プログラムカウンタ（ＰＣ）とブレイクポイントとの比較論理に、ＲＡＭ上の命令列の識別情報をチェックする論理を追加する必要がある。そのため、更にハードウェア増加の要因となる。
【００１１】
また、識別情報を操作するためのソフトウェア処理が必要となるので、処理時間の増加の要因となる。
【００１２】
本発明は上記の問題に着目してなされたものであり、ハードウェアの増加を抑えつつ、従来のデバッグ装置及びデバッガを利用して、プログラムのデバッグができるようにすることを目的としている。
【課題を解決するための手段】
【００１３】
前記の課題を解決するため、本発明の一態様は、
複数の命令列を格納する主記憶装置と、前記主記憶装置から転送された命令列を実行するプロセッサとを有したデータ処理装置であって、
前記プロセッサは、
前記主記憶装置から転送された命令列を格納する命令ＲＡＭと、
前記命令ＲＡＭに格納する命令列のメモリ空間上の配置アドレスが、他の命令列の命令ＲＡＭ上の配置アドレスと重複しないように、前記命令ＲＡＭのメモリ空間上の配置アドレスを設定する配置アドレス設定部と、
前記配置アドレス設定部が設定した配置アドレスを示す情報である配置アドレス情報を基に、命令フェッチアクセスのアクセス対象空間を判定し、判定結果に応じ、前記主記憶装置及び前記命令ＲＡＭの何れかに対してアクセスを行う命令フェッチ制御部と、
を備えていることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、ハードウェアの増加を抑えつつ、従来のデバッグ装置及びデバッガを利用して、プログラムのデバッグが可能になる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施形態について図面を参照しながら説明する。なお、以下の各実施形態や変形例の説明において、一度説明した構成要素と同様の機能を有する構成要素については、同一の符号を付して説明を省略する。
【００１６】
《発明の実施形態１》
図１は、本発明の実施形態１に係るデータ処理装置１００の構成を示すブロック図である。データ処理装置１００は、図１に示すように、主記憶装置１１０、プロセッサ１２０、ＤＭＡコントローラ１３０（ＤＭＡは、Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓの略である。また、図中では、ＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）と略記している）、及びデバッグ装置１４０とを備えている。また、主記憶装置１１０、プロセッサ１２０、及びＤＭＡコントローラ１３０は、バス１５０を介して接続されている。
【００１７】
主記憶装置１１０は、複数の命令列（プログラム）が格納されるようになっている。主記憶装置１１０は、具体的には、フラッシュメモリ（Ｆｌａｓｈ  Ｍｅｍｏｒｙ）などによって構成できる。
【００１８】
プロセッサ１２０は、主記憶装置１１０から転送された命令列の各命令を実行するようになっている。図２は、プロセッサ１２０の概略構成を示すブロック図である。プロセッサ１２０は、図２に示すように、命令ＲＡＭ１２１、配置アドレス設定部１２２、及び命令フェッチ制御部１２３を内蔵している。
【００１９】
命令ＲＡＭ１２１は、主記憶装置１１０から転送された命令列を保持するようになっている。具体的には、命令ＲＡＭ１２１は、主記憶装置１１０と比べ、比較的高速で、且つ小容量のＲＡＭで構成されている。
【００２０】
配置アドレス設定部１２２は、命令ＲＡＭ１２１のメモリ空間上の配置アドレスを設定するようになっている。詳しくは、配置アドレス設定部１２２は、転送する命令列の命令ＲＡＭ１２１上のアドレス（命令列を実行するアドレス）が、他の命令列の命令ＲＡＭ１２１上の配置アドレスと重複しないように、命令ＲＡＭ１２１のメモリ空間上の配置アドレスを設定する工程（後述するステップＳＴ００１）を、主記憶装置１１０から命令ＲＡＭ１２１へ命令列を転送するシーケンスに於いて実施する。
【００２１】
命令フェッチ制御部１２３は、配置アドレス設定部１２２が設定した配置アドレスを示す情報（配置アドレス情報Ｓ１）を基に、命令フェッチアクセスのアクセス対象空間を判定し、判定結果に応じ、アクセス対象のメモリ（ここでは、主記憶装置１１０、もしくは命令ＲＡＭ１２１）へアクセスを行うようになっている。
【００２２】
ＤＭＡコントローラ１３０は、主記憶装置１１０と命令ＲＡＭ１２１との間のデータ転送を制御するようになっている。
【００２３】
デバッグ装置１４０は、プロセッサ１２０と接続されており、プログラムをデバッグするようになっている。具体的には、デバッグ装置１４０は、実行を停止させようとする命令のアドレスが設定されるレジスタを備えており、デバッグ機能の１つとして、レジスタに設定されたアドレスとプロセッサ１２０によって実行されようとする命令のアドレスとを逐次比較し、両者が一致した時に割込み信号を発生させて、プロセッサ１２０による命令の実行を停止させる。
【００２４】
主記憶装置１１０から命令ＲＡＭ１２１へ命令列を転送して、命令列を実行するオーバーレイ手順に於いて、データ処理装置１００は、図３のフローチャートに示すように動作する。
【００２５】
ステップＳＴ００１では、配置アドレス設定部１２２は、転送する命令列の命令ＲＡＭ１２１上のアドレス（命令列を実行するアドレス）が、他の命令列の命令ＲＡＭ１２１上のアドレスと重複しないように、命令ＲＡＭ１２１のメモリ空間上の配置アドレスを設定する。
【００２６】
ステップＳＴ００２では、プロセッサ１２０は、ＤＭＡコントローラ１３０を制御して、アクセス対象のメモリ（命令ＲＡＭ１２１）へ命令列を配置する。
【００２７】
これにより、例えば、図４に示すように、命令列Ｐ１の命令Ｃ１は、アドレスＢ、命令列Ｐ２の命令Ｃ２は、アドレスＣというように、固有のアドレスに配置することが可能となる。すなわち、データ処理装置１００では、命令列同士のアドレスの重複が発生しないようにできるので、ブレイクポイントを正確に設定できる。
【００２８】
それゆえ、本実施形態によれば、ハードウェアの増加を抑えつつ、従来のデバッグ装置及びデバッガを使用して、プログラムのデバッグが可能となる。そのため、オーバーレイ技術を用いたプロセッサに於けるプログラム開発が容易になる。
【００２９】
《実施形態１の変形例》
配置アドレス設定部１２２は、命令ＲＡＭ１２１を配置する領域のアドレスを設定できるように構成してもよい。具体的には、図５に示すように、スタートアドレス設定レジスタ１２２ａとメモリサイズ設定レジスタ１２２ｂとを配置アドレス設定部１２２に追加する。
【００３０】
スタートアドレス設定レジスタ１２２ａは、命令ＲＡＭ１２１を配置する領域の先頭のアドレスを設定するレジスタである。
【００３１】
また、メモリサイズ設定レジスタ１２２ｂは、命令ＲＡＭ１２１を配置する領域の容量を設定するレジスタである。
【００３２】
これにより、ステップＳＴ００１内に於いて、命令ＲＡＭ１２１を配置する領域の先頭のアドレスをスタートアドレス設定レジスタ１２２ａに設定する工程と、命令ＲＡＭ１２１を配置する領域の容量をメモリサイズ設定レジスタ１２２ｂに設定する工程とを実行すれば、命令ＲＡＭ１２１のメモリ空間上の配置アドレスを設定することができる。すなわち、先頭のアドレスと容量を設定した後は、スタートアドレス設定レジスタ１２２ａに設定された先頭アドレスから始まる、メモリサイズ設定レジスタ１２２ｂに設定されている容量分のメモリ空間上に命令ＲＡＭ１２１を配置する。
【００３３】
この変形例によれば、命令ＲＡＭ１２１を配置する領域を、スタートアドレスと、配置するメモリサイズによって容易に設定することができる。
【００３４】
この際、メモリサイズ設定レジスタ１２２ｂには、命令ＲＡＭ１２１の物理容量を設定してもよいし、命令ＲＡＭ１２１に転送する命令列の容量を設定してもよい。
【００３５】
命令ＲＡＭ１２１の物理容量はシステム仕様によって決まっているので、メモリサイズ設定レジスタ１２２ｂに、命令ＲＡＭ１２１の物理容量を設定する場合には、設定する値を容易に求めることができる。すなわち、配置アドレスを設定する工程における処理を簡単化できる。また、命令列の一部（命令ＲＡＭ１２１の物理容量分）を命令ＲＡＭ１２１に転送して実行し、それ以外は主記憶装置１１０上から実行するような場合には、命令ＲＡＭ１２１の物理容量よりも大きな命令列でも、命令ＲＡＭ１２１及び主記憶装置１１０上のアドレスを意識することなく、命令列をシームレスに実行することができる。
【００３６】
一方、命令ＲＡＭ１２１に転送する命令列の容量をメモリサイズ設定レジスタ１２２ｂに設定する場合には、転送する命令列の容量に応じたＲＡＭ空間を設定できる。そのため、より柔軟なプログラムを開発できる。例えば、ある命令列のうち高速実行したい一部のみを命令ＲＡＭ１２１上から実行し、それ以外を主記憶装置１１０上から実行するような場合には、命令ＲＡＭ１２１に転送する部分を柔軟に選択できる。また、命令ＲＡＭ１２１に転送する容量分をＲＡＭ空間として設定することで、命令ＲＡＭ１２１及び主記憶装置１１０上のアドレスを意識することなく、命令列をシームレスに実行することができる。
【００３７】
《発明の実施形態２》
次に、本発明の実施形態２について説明する。
【００３８】
実施形態１で示した配置アドレスを設定する工程（ステップＳＴ００１）では、命令ＲＡＭ１２１に格納されている命令列は、命令ＲＡＭ１２１から実行し、それ以外の命令列は、主記憶装置１１０から実行するようなプログラムを開発する場合には、アドレスの重複が問題となる。つまり、命令ＲＡＭ１２１上で実行される複数の命令列のアドレスに対する重複のみを考慮した命令ＲＡＭ１２１の配置アドレス設定手法では、命令ＲＡＭ１２１上で実行される命令列のアドレスと、主記憶装置１１０上で実行される命令列のアドレスとが重複する可能性がある。
【００３９】
そこで、本実施形態では、主記憶装置１１０から実行する命令列を実行する場合には、図６のフローチャートのステップＳＴ２０１に示すように、転送する命令列の転送元（主記憶装置１１０）のアドレスと同一のアドレスを、命令ＲＡＭ１２１の配置アドレスとして設定するように、配置アドレス設定部１２２を構成する。
【００４０】
これにより、図７に示すように、命令ＲＡＭ１２１及び主記憶装置１１０上で、実行される命令列のアドレスが重複することはない。
【００４１】
しかも、主記憶装置１１０上のアドレスが命令列の唯一のアドレスとなるので、プログラム開発者がオーバーレイを意識せずにプログラム開発を行うことができる。更に、全ての命令列を命令ＲＡＭに転送しなくてもプログラムを実行できるため、実行頻度等に応じて主記憶装置又は命令ＲＡＭのどちらで実行するかを柔軟に選択できる。
【００４２】
《発明の実施形態２の変形例》
実施形態２においては、配置アドレス設定部１２２を、命令ＲＡＭ１２１を配置する領域のアドレスが設定できるように構成してもよい。具体的には、図８に示すように、スタートアドレス設定レジスタ１２２ａとエンドアドレス設定レジスタ１２２ｃとを、配置アドレス設定部１２２に追加する。
【００４３】
エンドアドレス設定レジスタ１２２ｃは、命令ＲＡＭ１２１を配置する領域の末尾のアドレス（エンドアドレス）を設定するレジスタである。
【００４４】
これにより、ステップＳＴ２０１内に於いて、命令ＲＡＭ１２１を配置する領域の先頭のアドレスをスタートアドレス設定レジスタ１２２ａに設定する工程と、命令ＲＡＭ１２１を配置する領域の末尾のアドレスをエンドアドレス設定レジスタ１２２ｃに設定する工程とを実行すれば、命令ＲＡＭ１２１のメモリ空間上の配置アドレスを設定することができる。すなわち、先頭のアドレスと末尾のアドレスを設定した後は、スタートアドレス設定レジスタ１２２ａに設定された先頭アドレスから、エンドアドレス設定レジスタ１２２ｃに設定された末尾アドレスまでのメモリ空間上に、命令ＲＡＭ１２１を配置する。
【００４５】
この変形例によれば、スタートアドレスとエンドアドレスとによって、命令ＲＡＭ１２１を配置する領域を容易に設定することができる。
【００４６】
この際、エンドアドレス設定レジスタ１２２ｃには、スタートアドレスに命令ＲＡＭ１２１の容量を加算した値を設定してもよいし、また、スタートアドレスに、命令ＲＡＭ１２１に転送する命令列の容量を加算した値を設定してもよい。
【００４７】
命令ＲＡＭ１２１の物理容量はシステム仕様によって決まっているので、スタートアドレスに命令ＲＡＭ１２１の容量を加算した値を、エンドアドレス設定レジスタ１２２ｃに設定する場合には、設定する値を容易に求めることができ、配置アドレスを設定する工程における処理を簡単化できる。また、命令列の一部（命令ＲＡＭ１２１の物理容量分）を命令ＲＡＭ１２１に転送して実行し、それ以外は主記憶装置１１０上から実行するような場合には、命令ＲＡＭ１２１の物理容量よりも大きな命令列でも、命令ＲＡＭ１２１及び主記憶装置１１０上のアドレスを意識することなく、命令列をシームレスに実行することができる。
【００４８】
一方、スタートアドレスに命令ＲＡＭ１２１に転送する命令列の容量を加算した値を、エンドアドレス設定レジスタ１２２ｃに設定する場合には、転送する命令列の容量に応じたＲＡＭ空間を設定できるので、より柔軟なプログラムを開発できる。例えば、ある命令列のうち、高速実行したい一部のみを命令ＲＡＭ１２１上から実行し、それ以外を主記憶装置１１０上から実行するような場合には、命令ＲＡＭ１２１に転送する部分を柔軟に選択できる。また、命令ＲＡＭ１２１に転送する容量分をＲＡＭ空間として設定することで、命令ＲＡＭ１２１及び主記憶装置１１０上のアドレスを意識することなく、命令列をシームレスに実行することができる。
【００４９】
なお、発明の実施形態２及び実施形態２の変形例では、命令ＲＡＭへ転送される全ての命令列が、主記憶装置上のアドレスと同一のアドレスに設定される必要はなく、主記憶装置及び命令ＲＡＭ上の両方で実行したい命令列のみを同一のアドレスに設定しても良い。
【００５０】
《発明の実施形態３》
次に、本発明の実施形態３について説明する。
【００５１】
図９は、本実施形態に係るプロセッサ２００の概略構成を示したブロック図である。図９に示すように、プロセッサ２００は、第１命令ＲＡＭ２０１、第２命令ＲＡＭ２０２、第１命令ＲＡＭ配置アドレス設定部２０３、第２命令ＲＡＭ配置アドレス設定部２０４、及び命令フェッチ制御部２０５を備えている。
【００５２】
第１命令ＲＡＭ２０１及び第２命令ＲＡＭ２０２は、主記憶装置１１０から転送された命令列を保持するようになっている。
【００５３】
第１命令ＲＡＭ配置アドレス設定部２０３は、第１命令ＲＡＭ２０１のメモリ空間上の配置アドレスを設定するようになっている。
【００５４】
第２命令ＲＡＭ配置アドレス設定部２０４は、第２命令ＲＡＭ２０２のメモリ空間上の配置アドレスを設定するようになっている。
【００５５】
命令フェッチ制御部２０５は、第１命令ＲＡＭ配置アドレス設定部２０３によって設定された第１命令ＲＡＭ２０１用の配置アドレスを示す情報（配置アドレス情報Ｓ２）、及び第２命令ＲＡＭ配置アドレス設定部２０４によって設定された第２命令ＲＡＭ２０２用の配置アドレスを示す情報（配置アドレス情報Ｓ３）を基に、命令フェッチアクセスのアクセス対象空間を判定し、アクセス対象のメモリ（ここでは、第１命令ＲＡＭ２０１、第２命令ＲＡＭ２０２、もしくは主記憶装置１１０）へアクセスを行うようになっている。
【００５６】
このように構成することにより、プロセッサ内部の命令ＲＡＭ（第１命令ＲＡＭ２０１及び第２命令ＲＡＭ２０２）に、複数の命令列を同時に格納できるので、より柔軟なプログラムを開発でき、且つ、効率良くプログラムのデバッグを行うことができる。
【００５７】
また、一方の命令ＲＡＭ（第１命令ＲＡＭ２０１又は第２命令ＲＡＭ２０２）で命令を実行している間に、他方の命令ＲＡＭへ命令列を転送するというような使い方が考えられ、転送に掛かるオーバーヘッドを減らすことが可能になる。
【００５８】
なお、本実施形態では、命令ＲＡＭ及び配置アドレス設定部を、それぞれ２つずつ備えているが、これらの数は、例示した２つには限定されない。すなわち、命令ＲＡＭ、及び配置アドレス設定部をそれぞれ同数（それぞれｎ個ずつ）備えるようにすればよい。
【００５９】
《発明の実施形態３の変形例》
また、命令ＲＡＭは１つで、命令ＲＡＭの記憶領域を複数のサブ領域に分割し、サブ領域毎に配置アドレスを設定できるように構成しても良い。
【００６０】
図１０は、発明の実施形態３の変形例に係るプロセッサ３００の構成を示すブロック図である。プロセッサ３００は、図１０に示すように、命令ＲＡＭ３０１、第１サブ領域配置アドレス設定部３０２、第２サブ領域配置アドレス設定部３０３、及び命令フェッチ制御部３０４を備えている。
【００６１】
命令ＲＡＭ３０１は、第１サブ領域３０１ａ及び第２サブ領域３０１ｂの複数のサブ領域に分割されおり、各サブ領域に、主記憶装置１１０から転送された命令列を保持するようになっている。
【００６２】
第１サブ領域配置アドレス設定部３０２及び第２サブ領域配置アドレス設定部３０３は、それぞれ、第１サブ領域３０１ａ用及び第２サブ領域３０１ｂ用の配置アドレス情報を出力するようになっている。具体的には、第１サブ領域配置アドレス設定部３０２は、第１サブ領域３０１ａ用の配置アドレスを示す情報（配置アドレス情報Ｓ４）を命令フェッチ制御部３０４に出力し、第２サブ領域配置アドレス設定部３０３は、第２サブ領域３０１ｂ用の配置アドレスを示す情報（配置アドレス情報Ｓ５）を命令フェッチ制御部３０４に出力する。
【００６３】
命令フェッチ制御部３０４は、配置アドレス情報Ｓ４及び配置アドレス情報Ｓ５を基に、命令フェッチアクセスのアクセス対象空間を判定し、アクセス対象のメモリ（ここでは、第１サブ領域３０１ａ、第２サブ領域３０１ｂ、もしくは主記憶装置１１０）へアクセスを行うようになっている。
【００６４】
図１０のように構成することにより、命令ＲＡＭのマクロ点数を増やすことなく、複数の命令列を同時に命令ＲＡＭに格納できるので、ハードウェアの増加を抑えつつ、柔軟なプログラムを開発できる。
【００６５】
なお、ステップＳＴ００２やステップＳＴ２０２における転送の手段は、ＤＭＡコントローラ１３０によるＤＭＡ転送に限られない。具体的には、例えば、上位のプロセッサ等で行われ得るようにしても良い。
【００６６】
また、上記の各実施形態や変形例は、命令ＲＡＭ上で実行される複数の命令列のアドレスの関係が重複しないように、命令列を配置できるので、圧縮された命令列を展開しながら転送する場合にも適用可能である。
【００６７】
また、上記の各実施形態や変形例で説明した各構成要素は、論理的に可能な範囲で種々に組み合わせてもよい。例えば、実施形態３のプロセッサ２００や実施形態３の変形例であるプロセッサ３００においても、配置アドレス設定部に対して、スタートアドレス設定レジスタ１２２ａ及びメモリサイズ設定レジスタ１２２ｂ（あるいはスタートアドレス設定レジスタ１２２ａ及びエンドアドレス設定レジスタ１２２ｃ）を設けて、命令ＲＡＭを配置する領域を設定できるようにしてもよい。
【００６８】
その他、本発明の要旨を変えない範囲に於いて、種々変形実施可能なことはもちろんである。
【産業上の利用可能性】
【００６９】
本発明に係るデータ処理装置は、ハードウェアの増加を抑えつつ、従来のデバッグ装置及びデバッガを利用して、プログラムのデバッグが可能になるという効果を有し、フラッシュメモリなどに記憶された命令列をＲＡＭに転送して命令を実行するプロセッサを備えたデータ処理装置等として有用である。
【図面の簡単な説明】
【００７０】
【図１】実施形態１に係るデータ処理装置１００の構成を示すブロック図である。
【図２】プロセッサ１２０の概略構成を示すブロック図である。
【図３】データ処理装置１００の動作を説明するフローチャートである。
【図４】実施形態１における命令列の配置を示す図である。
【図５】実施形態１の変形例に係る配置アドレス設定部１２２の構成を示すブロック図である。
【図６】実施形態２に係るデータ処理装置の動作を説明するフローチャートである。
【図７】実施形態２における命令列の配置を示す図である。
【図８】実施形態２の変形例に係る配置アドレス設定部１２２の構成を示すブロック図である。
【図９】実施形態３に係るプロセッサ２００の概略構成を示したブロック図である。
【図１０】実施形態３の変形例に係るプロセッサ３００の構成を示すブロック図である。
【図１１】従来のデータ処理装置における命令列の配置の一例を示す図である。
【符号の説明】
【００７１】
１００      データ処理装置
１１０      主記憶装置
１２０      プロセッサ
１２１      命令ＲＡＭ
１２２      配置アドレス設定部
１２２ａ    スタートアドレス設定レジスタ
１２２ｂ    メモリサイズ設定レジスタ
１２２ｃ    エンドアドレス設定レジスタ
１２３      命令フェッチ制御部
１３０      ＤＭＡコントローラ
１４０      デバッグ装置
１５０      バス
２００      プロセッサ
２０１      第１命令ＲＡＭ
２０２      第２命令ＲＡＭ
２０３      第１命令ＲＡＭ配置アドレス設定部
２０４      第２命令ＲＡＭ配置アドレス設定部
２０５      命令フェッチ制御部
３００      プロセッサ
３０１      命令ＲＡＭ
３０１ａ    第１サブ領域
３０１ｂ    第２サブ領域
３０２      第１サブ領域配置アドレス設定部
３０３      第２サブ領域配置アドレス設定部
３０４      命令フェッチ制御部
Ｓ１〜Ｓ５  配置アドレス情報
【図１】
2008140124.tif 000003
【図２】
2008140124.tif 000004
【図３】
2008140124.tif 000005
【図４】
2008140124.tif 000006
【図５】
2008140124.tif 000007
【図６】
2008140124.tif 000008
【図７】
2008140124.tif 000009
【図８】
2008140124.tif 000010
【図９】
2008140124.tif 000011
【図１０】
2008140124.tif 000012
【図１１】
2008140124.tif 000013