(57)【要約】【課題】  ＣＰＵの命令処理性能を向上させることができるデータ処理方法及びデータ処理装置を提供する。【解決手段】  データ処理装置は、ＣＰＵ５０３と、割込み制御回路５０９と、タイミング変更回路５１０と、選択回路５１１とを備えている。割込み制御回路５０９は、入力された割込み信号を検知し、選択回路５１１に通知する。選択回路５１１は、直ちに割込みをＣＰＵ５０３に通知するか、又はタイミング変更回路５１０を使用して、所定の条件が成立した後に割込みをＣＰＵ５０３に通知するかを選択する。【選択図】      図１
2006039733.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵに割込み処理を開始させるための割込み信号を処理するデータ処理方法であって、
前記割込み信号を受け取るステップ（ａ）と、
前記ＣＰＵに対する割込み通知を、前記割込み信号を受け取ってから直ちに行うか、又は前記割込み信号を受け取ってから所定の条件が成立後に行うか、を選択するステップ（ｂ）と、
前記ステップ（ｂ）における選択に従って、前記ＣＰＵに対して割込みを通知するステップ（ｃ）とを備える
データ処理方法。
【請求項２】
請求項１に記載のデータ処理方法において、
前記ステップ（ｂ）は、
前記割込み信号の種類に応じて、前記選択を行うものである
ことを特徴とするデータ処理方法。
【請求項３】
請求項１に記載のデータ処理方法において、
前記ステップ（ｂ）は、
前記割込み信号の種類に応じた処理内容の変更を行う必要があるか否かを判定し、その必要がある場合には、前記割込み信号の種類に応じて、前記選択を行うものである
ことを特徴とするデータ処理方法。
【請求項４】
請求項１に記載のデータ処理方法において、
前記ステップ（ｂ）は、
前記ＣＰＵにおいて実行中の命令の種類に応じて、前記選択を行うものである
ことを特徴とするデータ処理方法。
【請求項５】
請求項１に記載のデータ処理方法において、
前記ＣＰＵは、キャッシュメモリに読込まれた命令を実行するものであり、
前記所定の条件は、実行すべき命令が前記キャッシュメモリに残っていないことである
ことを特徴とするデータ処理方法。
【請求項６】
請求項１に記載のデータ処理方法において、
前記所定の条件は、所定の時間が経過することである
ことを特徴とするデータ処理方法。
【請求項７】
命令を格納するキャッシュメモリと、
前記キャッシュメモリに格納された命令を実行するＣＰＵと、
割込み信号を検知し、前記ＣＰＵに対する割込み通知を出力する割込み制御回路と、
前記割込み制御回路から出力された割込み通知を受け取って出力する第１の選択回路と、
前記第１の選択回路から出力された割込み通知を遅延させて前記ＣＰＵに出力する第１のタイミング変更回路とを備え、
前記第１の選択回路は、
前記割込み制御回路から出力された割込み通知を、前記第１のタイミング変更回路、又は前記ＣＰＵのいずれかに出力するものである
データ処理装置。
【請求項８】
請求項７に記載のデータ処理装置において、
入力された割込み信号を出力する第２の選択回路と、
前記第２の選択回路から出力された割込み信号を遅延させて前記割込み制御回路に出力する第２のタイミング変更回路とを更に備え、
前記第２の選択回路は、
前記入力された割込み信号を、前記第２のタイミング変更回路、又は前記割込み制御回路のいずれかに出力するものである
ことを特徴とするデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵ（central processing unit）が命令キャッシュメモリを利用してデータ処理を行うデータ処理方法及びデータ処理装置に関する。より詳しくは、割込みの際の処理を効率よく行う技術に関する。
【背景技術】
【０００２】
ＣＰＵのデータ処理能力を向上させるために、ＲＡＭ（random access memory）、ＲＯＭ（read-only memory）、ハードディスク装置、又はフロッピーディスク装置等の大容量記憶装置の情報の一部を読込むキャッシュメモリを、ＣＰＵに内蔵したり、ＣＰＵに密接に外付けすることが一般に行われている。キャッシュメモリは、比較的小容量だが、大容量記憶装置に比べて命令やデータを高速にアクセスすることができる。このようなＣＰＵは、キャッシュメモリに情報が存在するうちはキャッシュメモリ内の命令やデータを参照しながら実行を継続し、また、実行結果を一時的にキャッシュメモリに格納することによって、外部大容量記憶装置をアクセスしながら実行するのに比べて飛躍的にデータ処理能力を向上させることができる。
【０００３】
但し、キャッシュメモリにＣＰＵが必要とする情報が存在しない場合、ＣＰＵは、命令の実行を中断して外部大容量記憶装置より必要な情報をキャッシュメモリ内に読込んで保持する動作を行い、その後中断していた命令の実行を再開する。このような状態が多発すると、逆にＣＰＵのデータ処理性能が低下することとなる。よって、ＣＰＵのデータ処理性能を最大限に引き出すには、命令実行の中断がないよう、命令の実行中に必要な情報を常にキャッシュメモリ内に保持しておくことが重要である。
【０００４】
キャッシュメモリは、例えば１つのエントリを構成する１キャッシュラインの情報が外部大容量記憶装置のどのアドレスに対応しているかを示す実効アドレスを記憶するキャッシュタグ、その実効アドレスを先頭とした連続するｎワードの情報を記憶するデータ部、及びそのキャッシュラインに記憶している情報が有効であるか否かを示す有効ビットを備える。
【０００５】
命令キャッシュメモリにおいては、ＣＰＵからの命令アドレスと命令キャッシュメモリ内のキャッシュタグの情報とをもとに、命令キャッシュメモリ内に有効な情報が存在するか否かの判定が行われる。そして、命令キャッシュメモリ内に有効な情報が存在する場合には、ＣＰＵは、命令キャッシュメモリから命令をフェッチする。一方、命令キャッシュメモリ内に有効な情報が存在しない場合には、ＣＰＵは、その命令アドレスを含む命令キャッシュメモリの１ライン分の情報（ｎワード分）をバースト転送によって外部大容量記憶装置からキャッシュメモリの所定ラインのデータ部へ読込む。そして、バースト転送された命令がＣＰＵにフェッチされる。
【０００６】
その際、ＣＰＵは、バースト転送にて外部大容量記憶装置から所要の命令が読込まれるまで、命令の実行を開始することができない。この命令の実行が停止される時間、すなわちミスヒットペナルティは、ＣＰＵの動作速度が飛躍的に速くなり外部大容量記憶装置とのアクセス時間の相違が大きくなるにつれ、データ処理性能の低下へ著しく影響する。そこで、ＣＰＵが外部大容量記憶装置との間でデータのやり取りを行っていない期間を利用して、ＣＰＵが将来使用すると予想される情報をＣＰＵの実行に先行して読込むというプリフェッチの手法を採用することができる。
【０００７】
例えば、特許文献１には、実行開始時点を予測できないような割込み処理プログラムについてもプリフェッチを行うことができるデータ処理装置が開示されている。具体的には、このデータ処理装置は、割込みが発生してからＣＰＵが割込み処理プログラムの実行に移るまでの期間に、割込み処理プログラムを命令プリフェッチバッファや命令キャッシュにプリフェッチし、データ処理性能を向上させる。
【特許文献１】特開平８−２２１２７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
プログラムの流れが下位の命令アドレスから上位の命令アドレスに向かって連続している場合、命令プリフェッチは、常に現在の実行アドレスに対し、単純に次のキャッシュメモリの１ライン分の情報を先取りするだけでも確実に効果がある。しかしながら、割込みなどによって、現在実行されているプログラムから次に動作するプログラムアドレスを動的にも静的にも推測できない事態（実行すべき命令アドレスが所定事象の発生によって途中で不連続とされる事態）が生ずる。そして、割込みがＣＰＵの外部から要求される場合に、その要因とされる事象はＣＰＵの動作とは非同期で発生し、また、ＣＰＵの内部で割込みが発生する場合にも、ＣＰＵはそれがいつ発生するかを予測することは実質的に不可能である。
【０００９】
一方、上記特許文献１のデータ処理装置では、実行開始時点を予測できないような割込み処理プログラムについてもプリフェッチを行うことを可能としている。ところが、この構成では、ＣＰＵの命令実行中に割込みが発生した場合に、全ての割込みに対してＣＰＵの命令実行を中断することとなり、その結果ＣＰＵの命令処理性能が低下するという問題があった。
【００１０】
本発明は、ＣＰＵの命令処理性能を向上させることができるデータ処理方法及びデータ処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
前記課題を解決するため、請求項１の発明が講じた手段は、ＣＰＵに割込み処理を開始させるための割込み信号を処理するデータ処理方法であって、前記割込み信号を受け取るステップ（ａ）と、前記ＣＰＵに対する割込み通知を、前記割込み信号を受け取ってから直ちに行うか、又は前記割込み信号を受け取ってから所定の条件が成立後に行うか、を選択するステップ（ｂ）と、前記ステップ（ｂ）における選択に従って、前記ＣＰＵに対して割込みを通知するステップ（ｃ）とを備えるものである。
【００１２】
これによると、ＣＰＵにおいて命令を実行中に割込みが発生した場合であっても、命令の処理中に割込み処理へ移行することを回避することができるようになる。ＣＰＵにおいて、命令を中断することなく実行することができるので、ＣＰＵの命令処理性能を向上させることが可能となる。また、処理の内容を選択することができるので、汎用性の高いデータ処理を行うことができる。
【００１３】
請求項２の発明では、請求項１に記載のデータ処理方法において、前記ステップ（ｂ）は、前記割込み信号の種類に応じて、前記選択を行うものである。
【００１４】
これによると、割込み信号の種類に応じて処理の内容を変更することができる。すぐに割込み処理を行う必要があるような割込みを通知する信号が入力された場合においても、直ちに割込み処理を開始するようにすることができる。
【００１５】
請求項３の発明では、請求項１に記載のデータ処理方法において、前記ステップ（ｂ）は、前記割込み信号の種類に応じた処理内容の変更を行う必要があるか否かを判定し、その必要がある場合には、前記割込み信号の種類に応じて、前記選択を行うものである。
【００１６】
これによると、直ちに割込み処理を行う必要がある場合には、割込み信号の種類を判定する必要がなくなる。
【００１７】
請求項４の発明では、請求項１に記載のデータ処理方法において、前記ステップ（ｂ）は、前記ＣＰＵにおいて実行中の命令の種類に応じて、前記選択を行うものである。
【００１８】
これによると、実行を中断することが望ましくない命令を実行中には、割込み処理を行わないようにすることができる。
【００１９】
請求項５の発明では、請求項１に記載のデータ処理方法において、前記ＣＰＵは、キャッシュメモリに読込まれた命令を実行するものであり、前記所定の条件は、実行すべき命令が前記キャッシュメモリに残っていないことである。
【００２０】
これによると、命令の実行が完了してから、割込み処理を行うようにすることができる。命令の実行中に割込み処理を行わないので、割込み処理中に多くのデータを記憶装置に保持しておく必要がない。したがって、記憶装置の容量を小さくすることができ、その回路の面積を削減することが可能となる。
【００２１】
請求項６の発明では、請求項１に記載のデータ処理方法において、前記所定の条件は、所定の時間が経過することである。
【００２２】
これによると、命令の実行が完了してから、割込み処理を開始するようにすることができる。
【００２３】
請求項７の発明は、データ処理装置として、命令を格納するキャッシュメモリと、前記キャッシュメモリに格納された命令を実行するＣＰＵと、割込み信号を検知し、前記ＣＰＵに対する割込み通知を出力する割込み制御回路と、前記割込み制御回路から出力された割込み通知を受け取って出力する第１の選択回路と、前記第１の選択回路から出力された割込み通知を遅延させて前記ＣＰＵに出力する第１のタイミング変更回路とを備え、前記第１の選択回路は、前記割込み制御回路から出力された割込み通知を、前記第１のタイミング変更回路、又は前記ＣＰＵのいずれかに出力するものである。
【００２４】
これによると、割込み通知を遅延させてＣＰＵに通知することができるので、ＣＰＵにおいて命令を実行中に割込みが発生した場合であっても、命令の処理中に割込み処理へ移行することを回避することができるようになる。また、第１のタイミング変更回路を経由せずに割込み通知をＣＰＵに通知するようにすれば、実行中の命令の処理を中断して直ちに割込み処理を行うことができる。
【００２５】
請求項８の発明は、請求項７に記載のデータ処理装置において、入力された割込み信号を出力する第２の選択回路と、前記第２の選択回路から出力された割込み信号を遅延させて前記割込み制御回路に出力する第２のタイミング変更回路とを更に備え、前記第２の選択回路は、前記入力された割込み信号を、前記第２のタイミング変更回路、又は前記割込み制御回路のいずれかに出力するものである。
【００２６】
これによると、第２のタイミング変更回路を備えているので、割込み信号の処理に対する選択肢を増やすことができ、汎用性の高いデータ処理装置を提供することが可能となる。
【発明の効果】
【００２７】
本発明によると、ＣＰＵに対する割込み通知を、割込み信号を受け取ってから直ちに行うか、又は割込み信号を受け取ってから所定の条件が成立後に行うか、を選択することができる。このため、ＣＰＵにおいて命令を実行中に割込みが発生した場合であっても、命令の処理中に割込み処理へ移行することを回避することができる。ＣＰＵにおいて、命令を中断することなく実行することができるので、ＣＰＵの命令処理性能を向上させることが可能となる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明の実施形態を図面に基づいて詳細に説明する。
【００２９】
（第１の実施形態）
図１は、本発明の第１の実施形態に係るデータ処理装置の構成を示すブロック図である。図１のデータ処理装置は、ＲＯＭ５０１と、フラッシュメモリ（以下では、Ｆｌａｓｈと称する）５０２と、命令を実行するＣＰＵ５０３と、Ｆｌａｓｈ５０２からのデータを転送するためのバスコントローラ５０４と、Ｆｌａｓｈ５０２との間でデータを受け渡しするＦｌａｓｈインタフェース（ＦｌａｓｈＩ／Ｆ）５０５と、割込み制御回路５０９と、タイミング変更回路５１０と、選択回路５１１とを備えている。
【００３０】
ＲＯＭ５０１及びＦｌａｓｈ５０２は、ＣＰＵ５０３が実行する命令を格納する。ＦｌａｓｈＩ／Ｆ５０５は、命令を格納するための４ｂｙｔｅ程度の小容量のキャッシュメモリを有している。割込み出力回路５０６，５０７，５０８は、それぞれ、ＣＰＵ５０３に対する割込み信号を割込み制御回路５０９に出力する。
【００３１】
割込み制御回路５０９は、入力された割込み信号を検知し、選択回路５１１に通知する。選択回路５１１は、割込み制御回路５０９から通知を受けると、タイミング変更回路５１０又はＣＰＵ５０３に対して割込みを通知する。タイミング変更回路５１０は、選択回路５１１から受けた通知を、所定の条件が成立するまで遅延させてＣＰＵ５０３に対して出力する。すなわち、選択回路５１１は、ＣＰＵ５０３に対する割込みが発生した際に、直ちに割込みをＣＰＵ５０３に通知するか、又はタイミング変更回路５１０を使用して、所定の条件が成立した後に割込みをＣＰＵ５０３に通知するかを選択することができる。
【００３２】
図２は、ＣＰＵ５０３の命令実行処理について示すフローチャートである。ＣＰＵ５０３が命令を実行する場合における処理について、図１及び図２を参照しながら説明する。ここで、例えば、Ｆｌａｓｈ５０２にはメインとなる処理の命令を格納し、ＲＯＭ５０１には補助的な処理の命令を格納しておく。ＣＰＵ５０３は、通常時にＦｌａｓｈ５０２上の命令を実行する。一方、Ｆｌａｓｈ５０２がコマンドを発行すると、ＣＰＵ５０３に対して割込み信号を出力し、ＣＰＵ５０３がＲＯＭ５０１上の命令を実行するものとする。
【００３３】
なお、ここではメインとなる処理の命令を格納するメモリにＦｌａｓｈ５０２を用いることとするが、これに代えて、他の種類のメモリ（ＲＯＭ、ＲＡＭ、又はＳＤＲＡＭ等）を用いてもよい。他の種類のメモリを用いる場合には、そのメモリに適したインタフェース回路をＦｌａｓｈＩ／Ｆ５０５に代えて用いるようにする。この場合も、インタフェース回路は、４ｂｙｔｅ程度の小容量のキャッシュメモリを有するようにする。
【００３４】
まず、ＣＰＵ５０３は、Ｆｌａｓｈ５０２上の命令をフェッチして実行する場合、実行すべき命令のアドレスをバスコントローラ５０４で指定する。命令探索ステップＳ１２において、ＣＰＵ５０３は、指定されたアドレスに応じた命令をＦｌａｓｈＩ／Ｆ５０５内のキャッシュメモリ内で探す。
【００３５】
次に、命令判定ステップＳ１３では、ＣＰＵ５０３が実行すべき命令が、ＦｌａｓｈＩ／Ｆ５０５内のキャッシュメモリにあるか否かを判定する。実行すべき命令がキャッシュメモリ内にあると判定された場合には、命令実行ステップＳ１４へ進み、その他の場合には命令読出しステップＳ１５へ進む。
【００３６】
命令実行ステップＳ１４において、ＣＰＵ５０３は、キャッシュメモリ内の命令を実行し、バスコントローラ５０４で指定された次に実行すべき命令を、予めキャッシュメモリに読込む。
【００３７】
命令読出しステップＳ１５において、ＣＰＵ５０３は、バスコントローラ５０４を介して、Ｆｌａｓｈ５０２又はＲＯＭ５０１等の命令を格納している場所から、指定されたアドレスに応じた命令を読出す。その後、命令実行ステップＳ１４へ進む。
【００３８】
図３は、図１の装置において、ＣＰＵ５０３が命令実行中に割込みが発生した場合における処理の流れについて示すフローチャートである。図１のデータ処理装置の動作について、図１及び図３を参照しながら説明する。
【００３９】
ＣＰＵ５０３が命令を実行中であるとする。割込み出力ステップＳ２１において、割込み出力回路５０６〜５０８又はＣＰＵ５０３の内部から割込み信号が出力されると、割込み制御回路５０９は、選択回路５１１を介してＣＰＵ５０３に対して割込み処理へ移行するように割込みを通知する。複数の割込み信号が出力されている場合には、割込み制御回路５０９は、割込みのレベル等に応じて優先順位を決めた後、割込みを通知する。
【００４０】
割込み種類判定ステップＳ２２では、選択回路５１１は、予め与えられた設定に基づいて、与えられた割込み信号の種類が、すぐに割込みの実行を必要とするものであるか否か、言い換えると、実行中の命令の処理をすぐに中断する必要がある割込み信号であるか否かを判定し、タイミング変更回路５１０を使用するか否かを選択する。割込み信号の種類が、すぐに割込みの実行を必要とするものであると判定された場合には、割込み処理ステップＳ２３へ進み、その他の場合には、命令実行確認ステップＳ２４へ進む。
【００４１】
割込み処理ステップＳ２３では、選択回路５１１は、割込み制御回路５０９からの割込み通知を、タイミング変更回路５１０を経由せず、ＣＰＵ５０３に対して直接通知する。ＣＰＵ５０３は、実行中の命令の処理を直ちに中断して割込み処理を実行する。
【００４２】
命令実行確認ステップＳ２４では、選択回路５１１は、ＦｌａｓｈＩ／Ｆ５０５内のキャッシュメモリに読込まれた命令が全て実行済みであるか否かを判定する。キャッシュメモリに読込まれた命令が全て実行済みである、すなわち、実行すべき命令がキャッシュメモリに残っていないと判定された場合には、タイミング変更回路５１０は使用されず、割込み処理ステップＳ２３へ進み、その他の場合には、命令実行ステップＳ２５へ進む。命令実行ステップＳ２５において、ＣＰＵ５０３は、ＦｌａｓｈＩ／Ｆ５０５内のキャッシュメモリに読込まれた命令を実行し、命令実行確認ステップＳ２４に戻る。
【００４３】
命令実行ステップＳ２５へ進む場合には、選択回路５１１によって選択されたタイミング変更回路５１０が用いられ、割込みのタイミングが変更される。すなわち、選択回路５１１は、割込み制御回路５０９からの割込み通知をタイミング変更回路５１０に出力する。その後、キャッシュメモリに読込まれた命令が全て実行済みであるという、割込み処理ステップＳ２３に移行するための条件が成立すると、タイミング変更回路５１０は、ＣＰＵ５０３に対して割込みを通知し、割込み処理ステップＳ２３の処理が行われる。
【００４４】
割込み処理ステップＳ２３において割込み処理が終了すると、割込みが発生する前に実行中であった命令の処理に戻る。
【００４５】
図４は、タイミング変更回路５１０を使用する際におけるＦｌａｓｈＩ／Ｆ５０５内のキャッシュメモリの使用状態を示す説明図である。ここでは、キャッシュメモリの容量を４ｂｙｔｅとする。
【００４６】
図４に示すように、割込み要因が発生したとき、ＦｌａｓｈＩ／Ｆ５０５内のキャッシュメモリに読込まれた命令は、２ｂｙｔｅ分が実行済みであり、残りの２ｂｙｔｅ分が未だ実行されていない状態にあるとする。この場合、命令実行確認ステップＳ２４では、ＦｌａｓｈＩ／Ｆ５０５内のキャッシュメモリに読込まれた命令が実行済みでないと判定される。
【００４７】
続いて、命令実行ステップＳ２５において、タイミング変更回路５１０を用いて割込みのタイミングを変更するとともに、キャッシュメモリ内で未だ実行されていない２ｂｙｔｅ分の命令を実行する。ＦｌａｓｈＩ／Ｆ５０５内のキャッシュメモリに読込まれた全ての命令が実行済みになったところで割込み処理ステップＳ２３へ進み、割込み処理を実行する。そして、割込み処理が終了すると、割込み処理から復帰する。
【００４８】
なお、本実施形態では、キャッシュメモリの容量を４ｂｙｔｅとしたが、４の倍数であれば、キャッシュメモリの容量は８ｂｙｔｅや１２ｂｙｔｅであってもよいし、それ以上であってもよい。
【００４９】
本実施形態では、命令実行確認ステップＳ２４において、ＦｌａｓｈＩ／Ｆ５０５内のキャッシュメモリに読込まれた命令が実行済みでない場合、タイミング変更回路５１０を用いて割込みを通知するタイミングを変更し、キャッシュメモリに読込まれた命令が実行済みとなったところで割込み処理ステップＳ２３へ進む。このため、ＦｌａｓｈＩ／Ｆ５０５内のキャッシュメモリに読込まれた命令が実行済みでない場合に割込みが発生しても、実行中の命令の途中で割込み処理へ移行することを回避できる。したがって、ＣＰＵ５０３の命令を中断することなく実行でき、ＣＰＵ５０３の命令処理性能を向上させることができる。
【００５０】
また、本実施形態によれば、タイミング変更回路５１０を用いて割込み制御回路５０９からＣＰＵ５０３へ割込みを通知するタイミングを遅らせることにより、ＦｌａｓｈＩ／Ｆ５０５内のキャッシュメモリに読込まれた命令を実行してから割込み処理へ移行することができ、ＣＰＵ５０３で処理するデータをＦｌａｓｈＩ／Ｆ５０５内のキャッシュメモリに多量に保持しておく必要がなくなる。したがって、ＦｌａｓｈＩ／Ｆ５０５内のキャッシュメモリの容量を例えば４ｂｙｔｅ程度まで小さくすることができ、回路の面積を削減することが可能となる。
【００５１】
また、本実施形態では、選択回路５１１を用いてタイミング変更回路５１０の使用の有無を選択する。これにより、例えばＣＰＵ５０３の外部から緊急の割込み信号が出力された場合などにおいては、タイミング変更回路５１０を使用せず、命令実行中の処理を中断してすぐに割込み処理へ移行することができる。したがって、汎用性の高いデータ処理方法及びデータ処理装置を提供することが可能となる。
【００５２】
（第２の実施形態）
図５は、本発明の第２の実施形態に係るデータ処理装置の構成を示すブロック図である。図５のデータ処理装置は、図１のデータ処理装置において、タイミング変更回路６０１と、選択回路６０２とを更に備えたものである。その他の構成要素は、図１を参照して説明したものと同様であるので、同一の参照番号を付してその説明を省略する。本実施形態では、タイミング変更回路５１０，６０１を、それぞれ第１及び第２のタイミング変更回路５１０，６０１と称し、選択回路５１１，６０２を、それぞれ第１及び第２の選択回路５１１，６０２と称する。
【００５３】
第２の選択回路６０２には、割込み出力回路５０６，５０７，５０８から出力された割込み信号が入力されている。第２の選択回路６０２は、割込み信号を受けると、第２のタイミング変更回路６０１又は割込み制御回路５０９に対して割込み信号を出力する。第２のタイミング変更回路６０１は、第２の選択回路６０２から受けた信号を、所定の条件が成立するまで遅延させて割込み制御回路５０９に対して出力する。すなわち、第２の選択回路６０２は、ＣＰＵ５０３に対して割込みが発生した際に、第２のタイミング変更回路６０１を使用せず、直ちに割込みを割込み制御回路５０９やＣＰＵ５０３に通知するか、又は第２のタイミング変更回路６０１を使用して、所定の条件が成立した後に割込みを割込み制御回路５０９やＣＰＵ５０３に通知するかを選択することができる。
【００５４】
図６は、図５の装置において、ＣＰＵ５０３が命令実行中に割込みが発生した場合における処理の流れについて示すフローチャートである。図５のデータ処理装置の動作について、図５及び図６を参照しながら説明する。
【００５５】
ＣＰＵ５０３が命令を実行中であるとする。割込み出力ステップＳ３１において、割込み出力回路５０６〜５０８又はＣＰＵ５０３の内部から、割込み信号が第２の選択回路６０２に出力される。
【００５６】
割込み処理手順判定ステップＳ３２では、第２の選択回路６０２は、予め行われている設定に基づいて、割込み信号の種類に応じて割込み処理手順を変更する必要があるか否かを判定する。割込み信号の種類に応じて割込み処理手順を変更する必要がないと判定された場合、例えばＣＰＵ５０３に対する緊急の割込み信号が与えられた場合には、すぐに割込み処理へ移行したいので、割込み実行判定ステップＳ３４へ進み、その他の場合、例えば割込み出力回路５０６から割込み信号が出力された場合には、割込み種類判定ステップＳ３３へ進む。
【００５７】
割込み種類判定ステップＳ３３では、第２の選択回路６０２は、予め与えられた設定に基づいて、割込み信号の種類が、すぐに割込みの実行を必要とするものであるか否かを判定する。割込み信号の種類が、すぐに割込みの実行を必要とするものであると判定された場合には、割込み処理ステップＳ３５へ進み、第２の選択回路６０２は、第２のタイミング変更回路６０１を使用しない。その他の場合には、命令種類確認ステップＳ３６へ進む。
【００５８】
割込み実行判定ステップＳ３４では、第２の選択回路６０２は、予め与えられた設定に基づいて、すぐに割込みを実行する必要があるか否かを判定する。すぐに割込みを実行する必要があると判定された場合には、割込み処理ステップＳ３５へ進み、その他の場合には、命令実行確認ステップＳ３７へ進む。
【００５９】
命令種類確認ステップＳ３６では、第２の選択回路６０２は、実行中の命令の種類を確認し、その種類に応じて、すぐに割込みを実行する必要があるか否かを判定する。実行中の命令の種類がすぐに割込みの実行を必要とするものであると判定された場合には、割込み処理ステップＳ３５へ進み、その他の場合には、命令実行確認ステップＳ３７へ進む。
【００６０】
命令実行確認ステップＳ３７、命令実行ステップＳ３８、及び割込み処理ステップＳ３５は、図３を参照して説明した命令実行確認ステップＳ２４、命令実行ステップＳ２５、及び割込み処理ステップＳ２３とそれぞれ同様のものであるので、説明を省略する。割込み処理が終了すると、割込みが発生する前に実行中であった命令の処理に戻る。
【００６１】
なお、本実施形態では、割込み信号が割込み出力回路５０６から出力される場合について説明したが、これに限らず、割込み信号が、例えば割込み出力回路５０７，５０８から出力される信号であってもよいし、ＲＯＭ５０１やＦｌａｓｈ５０２上の命令に基づいて生成される信号であってもよい。
【００６２】
このように、図５のデータ処理装置は、割込み処理手順判定ステップＳ３２の判断を行うので、各々の割込み信号ごとに割込みの処理内容を設定することが可能なように構成されている。
【００６３】
また、第２の選択回路６０２を用いることにより、例えば割込み出力回路５０６から出力される割込みが実行されている場合に、割込み出力回路５０７から出力される割込み信号に関しては、割込み信号が出力された直後に第２のタイミング変更回路６０１を使用せず割込み処理ステップＳ３５へ移行するといった具合に、実行中の命令の内容に応じて割込み信号の処理の方法を変更することも可能である。
【００６４】
更に、第１の選択回路５１１は、予め与えられた設定により、第１のタイミング変更回路５１０を使用するか否かを選択する。すなわち、第１の選択回路５１１と第２の選択回路６０２とを組み合わせることによって、第１のタイミング変更回路５１０と第２のタイミング変更回路６０１とを使用するか否かを選択し、割込み処理手順判定ステップＳ３２、割込み種類判定ステップＳ３３、割込み実行判定ステップＳ３４、及び命令種類確認ステップＳ３６における動作を行うことが可能となる。
【００６５】
本実施形態では、第２の選択回路６０２により割込み信号の種類に応じて第２のタイミング変更回路６０１を使用するか否かを選択する。これにより、ＣＰＵ５０３の命令実行中に割込みが発生した場合において、第２のタイミング変更回路６０１を使用せずに割込み信号ごとに割込み処理をすぐに実行するか、第２のタイミング変更回路６０１を使用してＦｌａｓｈＩ／Ｆ５０５内のキャッシュメモリに読込まれた命令を実行した後に割込み処理へ移行するかを選択し、設定することができる。したがって、本実施形態によれば、割込み処理に対する選択肢を増やすことができ、より汎用性の高いデータ処理方法及びデータ処理装置を提供することが可能となる。
【００６６】
以上の実施形態においては、命令実行確認ステップＳ２４，Ｓ３７では、キャッシュメモリに読込まれた命令が全て実行済みであることを、割込み処理ステップＳ２３，Ｓ３５に移行するための条件であるとして説明したが、これに代えて、タイミング変更回路５１０，６０１が、入力された信号を所定の時間だけ遅延させることとし、所定の時間が経過することを、ＣＰＵ５０３に対して割込み通知を行って割込み処理ステップＳ２３，Ｓ３５に移行するための条件としてもよい。
【産業上の利用可能性】
【００６７】
本発明は、ＣＰＵの命令処理性能を向上させることができるので、例えばデータプロセッサ、マイクロコンピュータ、及びその応用システム等について有用である。
【図面の簡単な説明】
【００６８】
【図１】第１の実施形態に係るデータ処理装置の構成を示すブロック図である。
【図２】ＣＰＵの命令実行処理について示すフローチャートである。
【図３】図１の装置において、ＣＰＵが命令実行中に割込みが発生した場合における処理の流れについて示すフローチャートである。
【図４】タイミング変更回路を使用する際におけるＦｌａｓｈＩ／Ｆ内のキャッシュメモリの使用状態を示す説明図である。
【図５】本発明の第２の実施形態に係るデータ処理装置の構成を示すブロック図である。
【図６】図５の装置において、ＣＰＵが命令実行中に割込みが発生した場合における処理の流れについて示すフローチャートである。
【符号の説明】
【００６９】
５０１  ＲＯＭ
５０２  Ｆｌａｓｈ（フラッシュメモリ）
５０３  ＣＰＵ
５０４  バスコントローラ
５０５  ＦｌａｓｈＩ／Ｆ
５０６，５０７，５０８  割込み出力回路
５０９  割込み制御回路
５１０  タイミング変更回路（第１のタイミング変更回路）
５１１  選択回路（第１の選択回路）
６０１  第２のタイミング変更回路
６０２  第２の選択回路
Ｓ１２  命令探索ステップ
Ｓ１３  命令判定ステップ
Ｓ１４  命令実行ステップ
Ｓ１５  命令読出しステップ
Ｓ２１，Ｓ３１  割込み出力ステップ
Ｓ２２，Ｓ３３  割込み種類判定ステップ
Ｓ２３，Ｓ３５  割込み処理ステップ
Ｓ２４，Ｓ３７  命令実行確認ステップ
Ｓ２５，Ｓ３８  命令実行ステップ
Ｓ３２  割込み処理手順判定ステップ
Ｓ３４  割込み実行判定ステップ
Ｓ３６  命令種類確認ステップ
【図１】
2006039733.tif 000003
【図２】
2006039733.tif 000004
【図３】
2006039733.tif 000005
【図４】
2006039733.tif 000006
【図５】
2006039733.tif 000007
【図６】
2006039733.tif 000008