(57)【要約】【課題】キャッシュメモリへのバースト転送が行われている最中に割り込み要求が発生した場合に、割り込み処理を優先的に開始することが可能なデータ処理装置を得る。【解決手段】命令キャッシュ３へのバースト転送が行われている途中で割り込み要求ＩＲの発生が検出されると、命令キャッシュ３は、バースト転送を中断するとともに、中断情報３５を作成する。割り込み処理が終了して元のプログラムに復帰すると、命令キャッシュ３は、中断情報３５のアドレス記述部３５ａに記述されている再開アドレスを参照することにより、中断された箇所の続きからバースト転送を再開する。【選択図】　　　　図１
2004062319.tif 000002
【特許請求の範囲】
【請求項１】
処理装置と、
第１の記憶装置と、
前記処理装置と前記第１の記憶装置との間に接続された第２の記憶装置と
を備え、
前記処理装置が必要とする所定データが前記第２の記憶装置内に存在しない場合、前記所定データを含む、前記第２の記憶装置の１ライン分の複数のデータが、前記第１の記憶装置から読み出されてバースト転送によって前記第２の記憶装置のラインに転送されるデータ処理装置において、
前記バースト転送が行われている最中に割り込み要求が発生した場合、前記バースト転送が中断されて、割り込み処理が開始される、データ処理装置。
【請求項２】
前記割り込み処理が完了すると、中断されていた前記バースト転送が再開される、請求項１に記載のデータ処理装置。
【請求項３】
前記割り込み処理が完了した後に、前記バースト転送が中断された元のプログラムに復帰する場合にのみ、中断されていた前記バースト転送が再開される、請求項２に記載のデータ処理装置。
【請求項４】
複数の割り込み要求が発生した場合は、複数の割り込み処理が順に実行され、最後の割り込み処理が完了すると、中断されていた前記バースト転送が再開される、請求項２又は３に記載のデータ処理装置。
【請求項５】
前記割り込み処理が完了した後に、前記バースト転送の中断に係るラインが前記処理装置によってアクセスされると、中断されていた前記バースト転送が再開される、請求項１に記載のデータ処理装置。
【請求項６】
前記割り込み処理が実行されている途中で、前記割り込み処理を終了させる命令が検出されると、中断されていた前記バースト転送が再開される、請求項１に記載のデータ処理装置。
【請求項７】
複数の割り込み要求が発生した場合は、複数の割り込み処理が順に実行され、最後の割り込み処理を終了させる命令が検出されると、中断されていた前記バースト転送が再開される、請求項６に記載のデータ処理装置。
【請求項８】
前記バースト転送が中断された箇所に関する情報が保持されており、
再開された前記バースト転送においては、前記情報に基づいて、前記複数のデータのうち、前記バースト転送の中断に起因して前記第１の記憶装置から読み出されなかったもののみが、前記第１の記憶装置から読み出されて転送される、請求項２〜７のいずれか一つに記載のデータ処理装置。
【請求項９】
前記第２の記憶装置は複数のラインを有しており、
前記複数のラインは、自身が前記バースト転送の中断に係るラインである場合に、前記バースト転送が中断された箇所に関する情報をそれぞれ持ち、
再開された前記バースト転送においては、前記情報に基づいて、前記複数のデータのうち、前記バースト転送の中断に起因して前記第１の記憶装置から読み出されなかったもののみが、前記第１の記憶装置から読み出されて転送される、請求項２〜７のいずれか一つに記載のデータ処理装置。
【請求項１０】
割り込み要因に関連する所定の優先度が設定されたレジスタをさらに備え、
前記割り込み要求の優先度が前記所定の優先度よりも高い場合にのみ、前記バースト転送が中断される、請求項１〜９のいずれか一つに記載のデータ処理装置。
【請求項１１】
前記バースト転送の中断を許可するか否かが割り込み要因ごとに設定されたレジスタをさらに備え、
前記割り込み要求の割り込み要因が、前記バースト転送の中断を許可すると設定された割り込み要因である場合にのみ、前記バースト転送が中断される、請求項１〜９のいずれか一つに記載のデータ処理装置。
【請求項１２】
前記処理装置は、少なくともフェッチステージ及び実行ステージを有するパイプライン処理を実現しており、
前記割り込み要求が発生した場合は、前記割り込み要求に対応する割り込み命令がフェッチされる前にすでにフェッチされて、かつまだ実行されていない命令を実行するよりも前に、前記割り込み命令が実行される、請求項１〜９のいずれか一つに記載のデータ処理装置。
【請求項１３】
前記処理装置は、少なくともフェッチステージ及び実行ステージを有するパイプライン処理を実現しており、
前記割り込み要求の優先度が所定の優先度以下である場合は、前記割り込み要求に対応する割り込み命令がフェッチされる前にすでにフェッチされていた命令が実行された後に、前記割り込み命令が実行される、請求項１〜９のいずれか一つに記載のデータ処理装置。
【請求項１４】
処理装置と、
第１の記憶装置と、
前記処理装置と前記第１の記憶装置との間に接続された第２の記憶装置と
を備え、
前記処理装置が必要とする所定データが前記第２の記憶装置内に存在しない場合、前記所定データを含む、前記第２の記憶装置の１ライン分の複数のデータが、前記第１の記憶装置から読み出されてバースト転送によって前記第２の記憶装置のラインに転送されるデータ処理装置において、
前記データ処理装置は、割り込み要因に関連する所定の優先度が設定されたレジスタをさらに備え、
前記処理装置は、少なくともフェッチステージ及び実行ステージを有するパイプライン処理を実現しており、
発生した割り込み要求の優先度が前記所定の優先度以下である場合は、前記割り込み要求に対応する割り込み命令がフェッチされる前にすでにフェッチされていた命令が実行された後に、前記割り込み命令が実行され、
前記割り込み要求の優先度が前記所定の優先度よりも高い場合は、前記割り込み要求に対応する割り込み命令がフェッチされる前にすでにフェッチされて、かつまだ実行されていない命令を実行するよりも前に、前記割り込み命令が実行される、データ処理装置。
【請求項１５】
前記バースト転送が行われている最中に前記割り込み要求が発生した場合、前記バースト転送が中断されて、割り込み処理が開始される、請求項１４に記載のデータ処理装置。
【請求項１６】
処理装置と、
第１の記憶装置と、
前記処理装置と前記第１の記憶装置との間に接続された第２の記憶装置と
を備え、
前記処理装置が必要とする所定データが前記第２の記憶装置内に存在しない場合、前記所定データを含む、前記第２の記憶装置の１ライン分の複数のデータが、前記第１の記憶装置から読み出されて前記第２の記憶装置のラインにバースト転送されるデータ処理装置において、
第１のプログラムを実行する過程で第１のバースト転送が行われている最中に第１の分岐命令が検出された場合、前記第１のバースト転送が中断されて、分岐先の第２のプログラムが実行され、
前記第２のプログラムが、前記第１のプログラムに復帰する可能性の高いプログラムである場合に、前記第１のバースト転送が中断された箇所に関する第１の情報が保持され、
前記第２のプログラムの実行が完了すると、前記第１の情報に基づいて、中断されていた前記第１のバースト転送が再開される、データ処理装置。
【請求項１７】
前記第２のプログラムを実行する過程で第２のバースト転送が行われている最中に第２の分岐命令が検出された場合、前記第２のバースト転送が中断されて、分岐先の第３のプログラムが実行され、
前記第３のプログラムが、前記第２のプログラムに復帰する可能性の高いプログラムである場合に、前記第２のバースト転送が中断された箇所に関する第２の情報が保持され、
前記第３のプログラムの実行が完了すると、前記第２の情報に基づいて、中断されていた前記第２のバースト転送が再開される、請求項１６に記載のデータ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、データ処理装置に関し、特に、キャッシュメモリを備えるデータ処理装置に関するものである。
【０００２】
【従来の技術】
キャッシュメモリを備えるデータ処理装置においては、ＣＰＵが必要とするデータがキャッシュメモリ内に存在しない場合、そのデータを含む、キャッシュメモリの１ライン分のデータが、メインメモリからキャッシュメモリのラインに転送される。例えば、キャッシュメモリの１ラインが１２８ビットで、キャッシュメモリとメインメモリとが３２ビットのデータバスで接続されている場合は、４回のバスサイクルによって、メインメモリからキャッシュメモリへの転送が行われる。キャッシュメモリの１ライン分のデータは、バースト転送によって連続して転送される。
【０００３】
【発明が解決しようとする課題】
バースト転送が行われている最中に割り込み要求が発生した場合、従来のデータ処理装置では、バースト転送が完了するのを待ってから、割り込み処理が開始される。従って、割り込み要求に対する応答が遅くなるという問題がある。同様に、バースト転送が行われている最中に他のプログラムへの分岐命令が検出された場合にも、従来のデータ処理装置では、バースト転送が完了するのを待ってから、分岐先のプログラムの命令フェッチが開始される。従って、分岐先のプログラムの実行開始が遅れるという問題がある。しかも、割り込み処理が完了した後、又は分岐先のプログラムの実行が完了した後に元のプログラムに復帰しない場合には、キャッシュメモリに不要なデータが存在することになるという問題もある。
【０００４】
本発明はかかる問題を解決するために成されたものであり、メインメモリからキャッシュメモリへのバースト転送が行われている最中に割り込み要求が発生した場合等に、割り込み処理等を優先的に開始することが可能なデータ処理装置を得ることを目的とするものである。
【０００５】
【課題を解決するための手段】
この発明のうち請求項１に記載のデータ処理装置は、処理装置と、第１の記憶装置と、処理装置と第１の記憶装置との間に接続された第２の記憶装置とを備え、処理装置が必要とする所定データが第２の記憶装置内に存在しない場合、所定データを含む、第２の記憶装置の１ライン分の複数のデータが、第１の記憶装置から読み出されてバースト転送によって第２の記憶装置のラインに転送されるデータ処理装置において、バースト転送が行われている最中に割り込み要求が発生した場合、バースト転送が中断されて、割り込み処理が開始されるものである。
【０００６】
また、この発明のうち請求項２に記載のデータ処理装置は、請求項１に記載のデータ処理装置であって、割り込み処理が完了すると、中断されていたバースト転送が再開されることを特徴とするものである。
【０００７】
また、この発明のうち請求項３に記載のデータ処理装置は、請求項２に記載のデータ処理装置であって、割り込み処理が完了した後に、バースト転送が中断された元のプログラムに復帰する場合にのみ、中断されていたバースト転送が再開されることを特徴とするものである。
【０００８】
また、この発明のうち請求項４に記載のデータ処理装置は、請求項２又は３に記載のデータ処理装置であって、複数の割り込み要求が発生した場合は、複数の割り込み処理が順に実行され、最後の割り込み処理が完了すると、中断されていたバースト転送が再開されることを特徴とするものである。
【０００９】
また、この発明のうち請求項５に記載のデータ処理装置は、請求項１に記載のデータ処理装置であって、割り込み処理が完了した後に、バースト転送の中断に係るラインが処理装置によってアクセスされると、中断されていたバースト転送が再開されることを特徴とするものである。
【００１０】
また、この発明のうち請求項６に記載のデータ処理装置は、請求項１に記載のデータ処理装置であって、割り込み処理が実行されている途中で、割り込み処理を終了させる命令が検出されると、中断されていたバースト転送が再開されることを特徴とするものである。
【００１１】
また、この発明のうち請求項７に記載のデータ処理装置は、請求項６に記載のデータ処理装置であって、複数の割り込み要求が発生した場合は、複数の割り込み処理が順に実行され、最後の割り込み処理を終了させる命令が検出されると、中断されていたバースト転送が再開されることを特徴とするものである。
【００１２】
また、この発明のうち請求項８に記載のデータ処理装置は、請求項２〜７のいずれか一つに記載のデータ処理装置であって、バースト転送が中断された箇所に関する情報が保持されており、再開されたバースト転送においては、情報に基づいて、複数のデータのうち、バースト転送の中断に起因して第１の記憶装置から読み出されなかったもののみが、第１の記憶装置から読み出されて転送されることを特徴とするものである。
【００１３】
また、この発明のうち請求項９に記載のデータ処理装置は、請求項２〜７のいずれか一つに記載のデータ処理装置であって、第２の記憶装置は複数のラインを有しており、複数のラインは、自身がバースト転送の中断に係るラインである場合に、バースト転送が中断された箇所に関する情報をそれぞれ持ち、再開されたバースト転送においては、情報に基づいて、複数のデータのうち、バースト転送の中断に起因して第１の記憶装置から読み出されなかったもののみが、第１の記憶装置から読み出されて転送されることを特徴とするものである。
【００１４】
また、この発明のうち請求項１０に記載のデータ処理装置は、請求項１〜９のいずれか一つに記載のデータ処理装置であって、割り込み要因に関連する所定の優先度が設定されたレジスタをさらに備え、割り込み要求の優先度が所定の優先度よりも高い場合にのみ、バースト転送が中断されることを特徴とするものである。
【００１５】
また、この発明のうち請求項１１に記載のデータ処理装置は、請求項１〜９のいずれか一つに記載のデータ処理装置であって、バースト転送の中断を許可するか否かが割り込み要因ごとに設定されたレジスタをさらに備え、割り込み要求の割り込み要因が、バースト転送の中断を許可すると設定された割り込み要因である場合にのみ、バースト転送が中断されることを特徴とするものである。
【００１６】
また、この発明のうち請求項１２に記載のデータ処理装置は、請求項１〜９のいずれか一つに記載のデータ処理装置であって、処理装置は、少なくともフェッチステージ及び実行ステージを有するパイプライン処理を実現しており、割り込み要求が発生した場合は、割り込み要求に対応する割り込み命令がフェッチされる前にすでにフェッチされて、かつまだ実行されていない命令を実行するよりも前に、割り込み命令が実行されることを特徴とするものである。
【００１７】
また、この発明のうち請求項１３に記載のデータ処理装置は、請求項１〜９のいずれか一つに記載のデータ処理装置であって、処理装置は、少なくともフェッチステージ及び実行ステージを有するパイプライン処理を実現しており、割り込み要求の優先度が所定の優先度以下である場合は、割り込み要求に対応する割り込み命令がフェッチされる前にすでにフェッチされていた命令が実行された後に、割り込み命令が実行されることを特徴とするものである。
【００１８】
また、この発明のうち請求項１４に記載のデータ処理装置は、処理装置と、第１の記憶装置と、処理装置と第１の記憶装置との間に接続された第２の記憶装置とを備え、処理装置が必要とする所定データが第２の記憶装置内に存在しない場合、所定データを含む、第２の記憶装置の１ライン分の複数のデータが、第１の記憶装置から読み出されてバースト転送によって第２の記憶装置のラインに転送されるデータ処理装置において、データ処理装置は、割り込み要因に関連する所定の優先度が設定されたレジスタをさらに備え、処理装置は、少なくともフェッチステージ及び実行ステージを有するパイプライン処理を実現しており、発生した割り込み要求の優先度が所定の優先度以下である場合は、割り込み要求に対応する割り込み命令がフェッチされる前にすでにフェッチされていた命令が実行された後に、割り込み命令が実行され、割り込み要求の優先度が所定の優先度よりも高い場合は、割り込み要求に対応する割り込み命令がフェッチされる前にすでにフェッチされて、かつまだ実行されていない命令を実行するよりも前に、割り込み命令が実行されることを特徴とするものである。
【００１９】
また、この発明のうち請求項１５に記載のデータ処理装置は、請求項１４に記載のデータ処理装置であって、バースト転送が行われている最中に割り込み要求が発生した場合、バースト転送が中断されて、割り込み処理が開始されることを特徴とするものである。
【００２０】
また、この発明のうち請求項１６に記載のデータ処理装置は、処理装置と、第１の記憶装置と、処理装置と第１の記憶装置との間に接続された第２の記憶装置とを備え、処理装置が必要とする所定データが第２の記憶装置内に存在しない場合、所定データを含む、第２の記憶装置の１ライン分の複数のデータが、第１の記憶装置から読み出されて第２の記憶装置のラインにバースト転送されるデータ処理装置において、第１のプログラムを実行する過程で第１のバースト転送が行われている最中に第１の分岐命令が検出された場合、第１のバースト転送が中断されて、分岐先の第２のプログラムが実行され、第２のプログラムが、第１のプログラムに復帰する可能性の高いプログラムである場合に、第１のバースト転送が中断された箇所に関する第１の情報が保持され、第２のプログラムの実行が完了すると、第１の情報に基づいて、中断されていた第１のバースト転送が再開されるものである。
【００２１】
また、この発明のうち請求項１７に記載のデータ処理装置は、請求項１６に記載のデータ処理装置であって、第２のプログラムを実行する過程で第２のバースト転送が行われている最中に第２の分岐命令が検出された場合、第２のバースト転送が中断されて、分岐先の第３のプログラムが実行され、第３のプログラムが、第２のプログラムに復帰する可能性の高いプログラムである場合に、第２のバースト転送が中断された箇所に関する第２の情報が保持され、第３のプログラムの実行が完了すると、第２の情報に基づいて、中断されていた第２のバースト転送が再開されることを特徴とするものである。
【００２２】
【発明の実施の形態】
実施の形態１．
図１は、本発明の実施の形態１に係るデータ処理装置の構成を示すブロック図である。図１に示すように、本実施の形態１に係るデータ処理装置は、ＣＰＵ１と、オペランドキャッシュ（一般的に「データキャッシュ」と称される）２と、命令キャッシュ３とを備えている。ＣＰＵ１は、リクエストキャンセル信号生成回路１２を有している。また、データ処理装置は、外部メモリ（ＳＤＲＡＭ８、ＤＲＡＭ９、及びＲＯＭ１０）とのアクセスを制御するためのコントローラ（外部アクセスコントローラ）４を備えている。外部アクセスコントローラ４は、ＳＤＲＡＭコントローラ５と、ＤＲＡＭコントローラ６と、ＲＯＭコントローラ７とを有している。さらに、データ処理装置は、外付け又は内蔵されたモジュールからの割り込み要求ＩＲを受け付けて、割り込み信号ＩＳをＣＰＵ１に入力する割り込みコントローラ（ＩＣＵ）１１を備えている。
【００２３】
ＣＰＵ１と命令キャッシュ３との間で授受される信号について説明する。命令フェッチ要求信号ＩＦＲは、ＣＰＵ１が命令キャッシュ３に対して命令フェッチを要求していることを示す信号である。命令アドレス信号ＩＦＡは、ＣＰＵ１が要求している命令コードのアドレスを示す信号である。受領信号ＡＦＩＣは、命令キャッシュ３がＣＰＵ１からの命令フェッチ要求を受け付けたことを示す信号である。命令コードＲＩＣは、命令キャッシュ３からＣＰＵ１に転送される命令コードである。命令バリッド信号ＩＶは、命令キャッシュ３からＣＰＵ１に有効な命令コードが転送されていることを示す信号である。リクエストキャンセル信号ＲＣは、バースト転送の中断要求を示す信号である。
【００２４】
ＣＰＵ１とオペランドキャッシュ２との間で授受される信号について説明する。オペランドフェッチ要求信号ＯＦＲは、ＣＰＵ１がオペランドキャッシュ２に対してオペランドフェッチを要求していることを示す信号である。オペランドアドレス信号ＯＦＡは、ＣＰＵ１が要求しているオペランドのアドレスを示す信号である。受領信号ＡＦＯＣは、オペランドキャッシュ２がＣＰＵ１からのオペランドフェッチ要求を受け付けたことを示す信号である。リードオペランドＲＯは、オペランドキャッシュ２からＣＰＵ１に転送されるオペランドである。オペランドバリッド信号ＯＶは、オペランドキャッシュ２からＣＰＵ１に有効なオペランドが転送されていることを示す信号である。ライトオペランドＷＯは、ＣＰＵ１からオペランドキャッシュ２に転送されるオペランドである。
【００２５】
以下、命令キャッシュ３とＳＤＲＡＭコントローラ５との関係に着目して、本発明に係るデータ処理装置について説明する。命令キャッシュ３とＤＲＡＭコントローラ６又はＲＯＭコントローラ７との関係、及び、オペランドキャッシュ２とＳＤＲＡＭコントローラ５、ＤＲＡＭコントローラ６又はＲＯＭコントローラ７との関係も基本的には同様であるため、説明は省略する。
【００２６】
図２は、命令キャッシュ３及びＳＤＲＡＭコントローラ５を示すブロック図である。命令キャッシュ３とＳＤＲＡＭコントローラ５との間で授受される信号について説明する。アドレス信号ＩＡは、ＣＰＵ１が要求している命令コードのアドレスを示す信号であり、命令キャッシュ３から図１に示したアドレスバスＡＢを介してＳＤＲＡＭコントローラ５に入力される。アクセス要求信号ＡＲは、命令キャッシュ３がＳＤＲＡＭ８へのアクセスを要求していることを示す信号である。バースト要求信号ＢＲは、ＳＤＲＡＭ８から命令キャッシュ３へのデータ転送をバースト転送によって行うことを要求する信号である。バースト要求信号ＢＲが「Ｈ（Ｈｉｇｈ）」の場合はバースト転送が指定され、「Ｌ（Ｌｏｗ）」の場合は単発転送が指定される。
【００２７】
最終要求信号ＬＡＲは、バースト転送が指定されている場合に有効であり、バースト転送における最終のアクセス要求を示す信号である。受領信号ＡＣＫは、ＳＤＲＡＭコントローラ５が命令キャッシュ３からのアクセス要求を受け付けたことを示す信号である。ｄａｔａ　ｒｅａｄｙ信号ＤＲは、ＳＤＲＡＭコントローラ５から命令キャッシュ３に有効なデータが転送されていることを示す信号である。リードデータＲＤは、ＳＤＲＡＭコントローラ５から図１に示したデータバスＲＤＢを介して命令キャッシュ３に転送されるデータである。
【００２８】
ＳＤＲＡＭコントローラ５は、アドレス信号ＩＡ及び制御信号ＣＳ，ＲＡＳ，ＣＡＳ，ＷＥを、図１に示したアドレス・コントロールバスＡＣＢを介してＳＤＲＡＭ８に入力する。また、ＳＤＲＡＭコントローラ５及びＳＤＲＡＭ８は、図１に示したデータバスＤＢを介して、データＤＱの授受を行う。
【００２９】
図３は、命令キャッシュ３の構成を示すブロック図である。命令キャッシュ３は、外部アクセス要求生成回路１５と、命令コード選択回路１６と、記憶部１７とを備えている。記憶部１７は複数のラインに分割されており、各ラインは、タグ部１７ａ、バリッドビット１７ｂ、及びデータ部１７ｃをそれぞれ有している。データ部１７ｃにはキャッシュ登録されたデータ（登録データ）が記憶されており、タグ部１７ａには登録データのタグ情報が記憶されている。タグ部１７ａ及びデータ部１７ｃは、バリッドビット１７ｂが「Ｈ」のラインのみ有効である。
【００３０】
外部アクセス要求生成回路１５には、命令フェッチ要求信号ＩＦＲ、リクエストキャンセル信号ＲＣ、命令アドレス信号ＩＦＡ、受領信号ＡＣＫ、ヒット信号ＨＩＴ、及びミスヒット信号ＭＩＳＳが入力される。ＣＰＵ１が要求している命令コードが命令キャッシュ３内に存在している場合（即ちヒットの場合）、ヒット信号ＨＩＴは「Ｈ」となり、ミスヒット信号ＭＩＳＳは「Ｌ」となる。一方、ＣＰＵ１が要求している命令コードが命令キャッシュ３内に存在していない場合（即ちミスヒットの場合）、ミスヒット信号ＭＩＳＳは「Ｈ」となり、ヒット信号ＨＩＴは「Ｌ」となる。外部アクセス要求生成回路１５からは、アドレス信号ＩＡ、アクセス要求信号ＡＲ、バースト要求信号ＢＲ、最終要求信号ＬＡＲ、及び有効データ信号ＳＳが出力される。有効データ信号ＳＳについては後述する。
【００３１】
命令コード選択回路１６には、命令フェッチ要求信号ＩＦＲ、有効データ信号ＳＳ、ヒット信号ＨＩＴ、及びミスヒット信号ＭＩＳＳが入力される。また、命令コード選択回路１６には、ヒットの場合は、データ部１７ｃから読み出された命令コードＩＣが入力され、ミスヒットの場合は、ＳＤＲＡＭ８から読み込まれた命令コードＩＣが入力される。命令コード選択回路１６からは、命令コードＲＩＣが出力される。
【００３２】
記憶部１７には、命令アドレス信号ＩＦＡ及び命令コードＩＣが入力される。記憶部１７からは、ヒット信号ＨＩＴ、ミスヒット信号ＭＩＳＳ、及び命令コードＩＣが出力される。
【００３３】
図４は、図３に示した外部アクセス要求生成回路１５の構成を示すブロック図である。外部アクセス要求生成回路１５は、アドレス生成回路２０と、リクエストカウント回路２１と、リクエスト生成回路２２と、インバータ７０，７１と、ＡＮＤ回路７２，７３と、ＯＲ回路７４とを備えている。アドレス生成回路２０には、中断情報３５及び命令アドレス信号ＩＦＡが入力される。中断情報３５については後述する。アドレス生成回路２０からは、アドレス信号ＩＡ及び有効データ信号ＳＳが出力される。バースト転送が行われる場合、アドレス生成回路２０は、アドレス信号ＩＡによって示されるアドレスを、図１に示したデータバスＲＤＢのバスサイズに応じて適宜インクリメントする。
【００３４】
リクエストカウント回路２１には、中断情報３５、命令アドレス信号ＩＦＡ、有効データ信号ＳＳ、及び受領信号ＡＣＫが入力される。リクエストカウント回路２１からは、信号Ｆ１，Ｆ２が出力される。信号Ｆ１，Ｆ２については後述する。
【００３５】
リクエスト生成回路２２には、信号Ｆ１、命令フェッチ要求信号ＩＦＲ、ミスヒット信号ＭＩＳＳ、インバータ７０によって反転されたヒット信号ＨＩＴ、及びインバータ７１によって反転されたリクエストキャンセル信号ＲＣが入力される。リクエスト生成回路２２からは、アクセス要求信号ＡＲが出力される。リクエスト生成回路２２は、ミスヒットの場合にアクセス要求信号ＡＲを出力し、ヒットの場合にはアクセス要求信号ＡＲを出力しない。
【００３６】
ＡＮＤ回路７２には、命令フェッチ要求信号ＩＦＲ及び信号ＣＯが入力される。信号ＣＯは、命令キャッシュ３がキャッシュオンの状態（即ち命令キャッシュ３を使用することが可能な状態）の時に「Ｈ」となる信号である。ＡＮＤ回路７２からは、バースト要求信号ＢＲが出力される。
【００３７】
ＡＮＤ回路７３には、バースト要求信号ＢＲ及び信号Ｆ２が入力される。ＯＲ回路７４には、ＡＮＤ回路７３の出力信号と、リクエストキャンセル信号ＲＣとが入力される。ＯＲ回路７４からは、最終要求信号ＬＡＲが出力される。
【００３８】
図５は、図４に示したリクエストカウント回路２１の構成を示すブロック図である。リクエストカウント回路２１は、カウンタ２５を備えている。有効データ信号ＳＳ、中断情報３５、及び命令アドレス信号ＩＦＡに基づいて、カウンタ２５には、バースト転送が継続される残りの回数（残りカウント数）が設定される。この残りカウント数は、受領信号ＡＣＫが入力されるごとに１ずつデクリメントされる。信号Ｆ１は、残りカウント数が「０」になるまでは「Ｈ」であり、残りカウント数が「０」になると「Ｌ」になる。図４に示したリクエスト生成回路２２は、リクエストカウント回路２１から「Ｌ」の信号Ｆ１が入力されると、アクセス要求信号ＡＲの出力を停止する。
【００３９】
信号Ｆ２は、残りカウント数が「１」になるまでは「Ｌ」であり、残りカウント数が「１」になると「Ｈ」になる。図４に示したＡＮＤ回路７３及びＯＲ回路７４は、信号Ｆ２が「Ｌ」から「Ｈ」に遷移したことを受けて、最終要求信号ＬＡＲを出力する。
【００４０】
図６は、図４に示したアドレス生成回路２０の構成を示すブロック図である。アドレス生成回路２０は、一致検出回路３０と、選択回路３１と、デコーダ３２と、ＡＮＤ回路８０〜８３，８５と、ＯＲ回路８４とを備えている。一致検出回路３０の一方の入力端子には、所定ビット数（ここでは３２ビットとする）の命令アドレス信号ＩＦＡの第０〜第２７ビット（以下［０：２７］と表記する）が入力され、他方の入力端子には、中断情報３５のアドレス記述部３５ａに記述されている再開アドレスが入力される。中断情報３５の詳細については後述する。一致検出回路３０からは、一方の入力端子に入力されたデータと他方の入力端子に入力されたデータとが互いに一致すれば「Ｈ」で、一致しなければ「Ｌ」の検出結果が出力される。
【００４１】
選択回路３１には、命令アドレス信号ＩＦＡと、中断情報３５の再開アドレスとが入力される。選択回路３１は、一致検出回路３０から出力された検出結果が「Ｈ」の場合は中断情報の３５の再開アドレスを選択し、「Ｌ」の場合は命令アドレス信号ＩＦＡを選択して、アドレス信号ＩＡとして出力する。
【００４２】
デコーダ３２には、命令アドレス信号ＩＦＡの［２８：２９］が入力される。デコーダ３２は、命令アドレス信号ＩＦＡの［２８：２９］が「００」である場合は、ＡＮＤ回路８０の一方の入力端子に「Ｈ」を入力する。同様に、ＡＮＤ回路８１，８２，８３の各一方の入力端子には、命令アドレス信号ＩＦＡの［２８：２９］が「０１」「１０」「１１」の場合に、それぞれ「Ｈ」が入力される。
【００４３】
ＡＮＤ回路８０の他方の入力端子には、中断情報３５のデータ位置記述部３５ｂの第０ビットの内容に対応して、「Ｈ」又は「Ｌ」が入力される。具体的に、第０ビットが「１」の場合は「Ｈ」が入力され、「０」の場合は「Ｌ」が入力される。同様に、ＡＮＤ回路８１，８２，８３の各他方の入力端子には、中断情報３５のデータ位置記述部３５ｂの第１，第２，第３ビットの内容に対応して、それぞれ「Ｈ」又は「Ｌ」が入力される。
【００４４】
ＯＲ回路８４には、ＡＮＤ回路８０〜８３の各出力信号が入力される。ＡＮＤ回路８５の一方の入力端子には、一致検出回路３０から出力された検出結果が入力され、他方の入力端子には、ＯＲ回路８４の出力信号が入力される。ＡＮＤ回路８５からは、有効データ信号ＳＳが出力される。有効データ信号ＳＳが「Ｈ」である場合は、ＣＰＵ１が要求している命令コードが中断情報３５のデータ格納部３５ｃ内に存在していることになる。
【００４５】
図７は、図３に示した命令コード選択回路１６の構成を示すブロック図である。命令コード選択回路１６は、ＡＮＤ回路１８０と、インバータ１８１と、選択回路１８２，１８３とを備えている。ＡＮＤ回路１８０の一方の入力端子には、ミスヒット信号ＭＩＳＳが入力され、他方の入力端子には、インバータ１８１によって反転されたヒット信号ＨＩＴが入力される。
【００４６】
選択回路１８２の一方の入力端子には、中断情報３５のデータ格納部３５ｃから読み出された命令コードＩＣが入力され、他方の入力端子には、ＳＤＲＡＭ８から読み込まれた命令コードＩＣが入力される。選択回路１８２は、有効データ信号ＳＳが「Ｈ」である場合は、中断情報３５のデータ格納部３５ｃから読み出された命令コードＩＣを選択して出力し、「Ｌ」である場合は、ＳＤＲＡＭ８から読み込まれた命令コードＩＣを選択して出力する。
【００４７】
選択回路１８３の一方の入力端子には、選択回路１８２から出力された命令コードＩＣが入力され、他方の入力端子には、命令キャッシュ３から読み出された命令コードＩＣが入力される。選択回路１８３は、ＡＮＤ回路１８０の出力信号が「Ｈ」である場合（即ちミスヒットである場合）は、選択回路１８２から出力された命令コードＩＣを選択して出力し、「Ｌ」である場合（即ちヒットである場合）は、命令キャッシュ３から読み出された命令コードＩＣを選択して出力する。
【００４８】
図８は、図１に示したリクエストキャンセル信号生成回路１２の構成を示すブロック図である。リクエストキャンセル信号生成回路１２は、ＡＮＤ回路９０，９１と、インバータ９２とを備えている。ＡＮＤ回路９０の一方の入力端子には割り込み信号ＩＳが入力され、他方の入力端子には、ＰＳＷ（Ｐｒｏｇｒａｍ　Ｓｔａｔｕｓ　Ｗｏｒｄ又はＰｒｏｃｅｓｓｏｒ　Ｓｔａｔｕｓ　Ｗｏｒｄ）のＩＥ（Ｉｎｔｅｒｒｕｐｔ　Ｅｎａｂｌｅ）ビットの内容が入力される。
【００４９】
ＡＮＤ回路９１の一方の入力端子には、割り込みハンドラの命令フェッチが開始された場合に「Ｈ」となる信号が、インバータ９２によって反転されて入力される。ＡＮＤ回路９１の他方の入力端子には、ＡＮＤ回路９０の出力信号が入力される。ＡＮＤ回路９１からは、リクエストキャンセル信号ＲＣが出力される。リクエストキャンセル信号ＲＣは、割り込み信号ＩＳが入力されてから割り込み処理が開始されるまでの間のみ「Ｈ」となる。
【００５０】
図９は、本実施の形態１に係るデータ処理装置に関して、バースト転送の最中に割り込み要求ＩＲが発生しない場合の信号・データの遷移を示すタイミングチャートである。以下、図９及び適宜図１〜８を参照して、バースト転送の最中に割り込み要求ＩＲが発生しない場合の、本実施の形態１に係るデータ処理装置の動作を説明する。なお、以下の説明では、命令キャッシュ３の１ラインが１２８ビット、データバスＲＤＢのバスサイズが３２ビット（４バイト）であり、１ラインをキャッシュフィルするために４回のバスアクセスが必要な場合を想定する。また、命令コードＩ１，Ｉ３，Ｉ４は命令キャッシュ３内に存在しており、命令コードＤ１〜Ｄ４は命令キャッシュ３内に存在していないと仮定する。さらに、ＣＬ（ＣＡＳ　Ｌａｔｅｎｃｙ）＝２と仮定する。
【００５１】
期間Ｔ１において、ＣＰＵ１は、命令フェッチ要求信号ＩＦＲ、及び命令コードＩ１に関する命令アドレス信号ＩＦＡ（アドレスａ１）を、命令キャッシュ３に入力する。アドレスａ１へのアクセス要求（即ち、命令コードＩ１に関する命令フェッチ要求）が受け付けられると、次のアドレスａ２へのアクセスが連続して要求され、以下同様に、アドレスａ３，ａ４へのアクセスがこの順に連続して要求される。そのため、命令フェッチ要求信号ＩＦＲは、連続的に「Ｈ」を維持する。命令コードＩ１に関する命令フェッチ要求は、期間Ｔ１において命令キャッシュ３によって受け付けられ、命令キャッシュ３は、受領信号ＡＦＩＣをＣＰＵ１に入力する。命令コードＩ１は命令キャッシュ３内に存在しているため、ヒット信号ＨＩＴが「Ｈ」となる。
【００５２】
期間Ｔ２において、アドレスａ１に対応する命令コードＩ１が命令キャッシュ３から読み出されて、ＣＰＵ１に転送される。その際、命令バリッド信号ＩＶが「Ｈ」とされる。また、ＣＰＵ１は、命令コードＩ１の次の命令コードＤ１に関する命令アドレス信号ＩＦＡ（アドレスａ２）を、命令キャッシュ３に入力する。命令コードＤ１に関する命令フェッチ要求は、期間Ｔ２において命令キャッシュ３によって受け付けられ、命令キャッシュ３は、受領信号ＡＦＩＣをＣＰＵ１に入力する。命令コードＤ１は命令キャッシュ３内に存在していないため、ミスヒット信号ＭＩＳＳが「Ｈ」となる。
【００５３】
期間Ｔ３において、命令キャッシュ３は、アクセス要求信号ＡＲ及びアドレス信号ＩＡ（アドレスａ２）を、ＳＤＲＡＭコントローラ５に入力する。また、キャッシュオンの状態である場合、命令キャッシュ３は、ＳＤＲＡＭコントローラ５にバースト要求信号ＢＲを入力することによって、１ライン分の命令コードＤ１〜Ｄ４のバースト転送を要求する。アクセス要求信号ＡＲ及びバースト要求信号ＢＲは、バースト転送を要求する全ての命令コードＤ１〜Ｄ４に関するアクセス要求がＳＤＲＡＭコントローラ５によって受け付けられるまで、「Ｈ」を維持する。命令コードＤ１に関するアクセス要求は、期間Ｔ３においてＳＤＲＡＭコントローラ５によって受け付けられ、ＳＤＲＡＭコントローラ５は、受領信号ＡＣＫを命令キャッシュ３に入力する。
【００５４】
ＣＰＵ１は、命令コードＤ１の次の命令コードＩ３に関する命令アドレス信号ＩＦＡ（アドレスａ３）を、命令キャッシュ３に入力する。しかし、命令キャッシュ３は、命令コードＤ１をＣＰＵ１に受け渡すまでは、命令コードＩ３に関する命令フェッチ要求を受け付けない（ＡＦＩＣ＝「Ｌ」）。
【００５５】
期間Ｔ４において、ＳＤＲＡＭコントローラ５は、ＳＤＲＡＭ８を活性化するための活性化コマンドＡＣＴ（ＲＡＳ＝「Ｌ」、ＣＡＳ＝「Ｈ」、ＷＥ＝「Ｈ」）を、ＳＤＲＡＭ８に入力する。また、命令キャッシュ３は、命令コードＤ１に続く命令コードＤ２に関するアドレス信号ＩＡ（アドレスａ２＋４）を、ＳＤＲＡＭコントローラ５に入力する。しかし、ＳＤＲＡＭコントローラ５は、ＣＡＳが「Ｌ」となって次のアクセス要求を受け付け可能となるまでは、命令コードＤ２に関するアクセス要求を受け付けない。
【００５６】
期間Ｔ６において、ＳＤＲＡＭコントローラ５は、バースト転送を開始するためのリードコマンドＲＥＡＤ（ＲＡＳ＝「Ｈ」、ＣＡＳ＝「Ｌ」、ＷＥ＝「Ｈ」）を、ＳＤＲＡＭ８に入力する。また、命令コードＤ２に関するアクセス要求がＳＤＲＡＭコントローラ５によって受け付けられ、ＳＤＲＡＭコントローラ５は、受領信号ＡＣＫを命令キャッシュ３に入力する。
【００５７】
期間Ｔ７において、命令キャッシュ３は、命令コードＤ２に続く命令コードＤ３に関するアドレス信号ＩＡ（アドレスａ２＋８）を、ＳＤＲＡＭコントローラ５に入力する。命令コードＤ３に関するアクセス要求は、期間Ｔ７においてＳＤＲＡＭコントローラ５によって受け付けられ、ＳＤＲＡＭコントローラ５は、受領信号ＡＣＫを命令キャッシュ３に入力する。
【００５８】
期間Ｔ８において、命令キャッシュ３は、命令コードＤ３に続く命令コードＤ４に関するアドレス信号ＩＡ（アドレスａ２＋１２）を、ＳＤＲＡＭコントローラ５に入力する。命令コードＤ４に関するアクセス要求は、期間Ｔ８においてＳＤＲＡＭコントローラ５によって受け付けられ、ＳＤＲＡＭコントローラ５は、受領信号ＡＣＫを命令キャッシュ３に入力する。また、命令キャッシュ３は、最終要求信号ＬＡＲをＳＤＲＡＭコントローラ５に入力する。さらに、バースト転送が開始され、命令コードＤ１がＳＤＲＡＭ８からＳＤＲＡＭコントローラ５へ転送される。
【００５９】
期間Ｔ９において、命令コードＤ１がＳＤＲＡＭコントローラ５から命令キャッシュ３へ転送される。その際、ｄａｔａ　ｒｅａｄｙ信号ＤＲが「Ｈ」とされる。また、命令コードＤ２がＳＤＲＡＭ８からＳＤＲＡＭコントローラ５へ転送される。さらに、ＳＤＲＡＭコントローラ５は、ＳＤＲＡＭ８をプリチャージするためのプリチャージコマンドＰＲＥ（ＲＡＳ＝「Ｌ」、ＣＡＳ＝「Ｈ」、ＷＥ＝「Ｌ」）を、ＳＤＲＡＭ８に入力する。
【００６０】
期間Ｔ１０において、命令コードＤ１が命令キャッシュ３からＣＰＵ１に転送される。その際、命令バリッド信号ＩＶが「Ｈ」とされる。また、命令キャッシュ３は、命令コードＩ３に関する命令アドレス信号ＩＦＡを受け付け、受領信号ＡＦＩＣをＣＰＵ１に入力する。命令コードＩ３は命令キャッシュ３内に存在しているため、ヒット信号ＨＩＴが「Ｈ」となる。また、命令コードＤ２がＳＤＲＡＭコントローラ５から命令キャッシュ３へ転送される。その際、ｄａｔａ　ｒｅａｄｙ信号ＤＲが「Ｈ」とされる。さらに、命令コードＤ３がＳＤＲＡＭ８からＳＤＲＡＭコントローラ５へ転送される。
【００６１】
期間Ｔ１１において、命令コードＩ３が命令キャッシュ３から読み出されて、ＣＰＵ１に転送される。その際、命令バリッド信号ＩＶが「Ｈ」とされる。ＣＰＵ１は、命令コードＩ３の次の命令コードＩ４に関する命令アドレス信号ＩＦＡ（アドレスａ４）を、命令キャッシュ３に入力する。命令キャッシュ３は、命令コードＩ４に関する命令アドレス信号ＩＦＡを受け付け、受領信号ＡＦＩＣをＣＰＵ１に入力する。命令コードＩ４は命令キャッシュ３内に存在しているため、ヒット信号ＨＩＴが「Ｈ」となる。また、命令コードＤ３がＳＤＲＡＭコントローラ５から命令キャッシュ３へ転送される。その際、ｄａｔａ　ｒｅａｄｙ信号ＤＲが「Ｈ」とされる。さらに、命令コードＤ４がＳＤＲＡＭ８からＳＤＲＡＭコントローラ５へ転送される。
【００６２】
期間Ｔ１２において、命令コードＩ４が命令キャッシュ３から読み出されて、ＣＰＵ１に転送される。その際、命令バリッド信号ＩＶが「Ｈ」とされる。また、命令コードＤ４がＳＤＲＡＭコントローラ５から命令キャッシュ３へ転送される。その際、ｄａｔａ　ｒｅａｄｙ信号ＤＲが「Ｈ」とされる。１ライン分の命令コードＤ１〜Ｄ４が揃ったので、命令キャッシュ３は、命令コードＤ１〜Ｄ４を所定のラインに登録する。
【００６３】
なお、命令コードＩ１の次にＣＰＵ１が要求する命令コードが、ＳＤＲＡＭ８のメモリブロックの先頭に格納されている命令コードＤ１ではなく、途中に格納されている命令コード（例えば命令コードＤ３）である場合は、命令キャッシュ３は、アドレスａ２，ａ２＋４，ａ２＋８，ａ２＋１２の順にアドレス信号ＩＡを出力しても良く、アドレスａ２＋８，ａ２＋１２，ａ２，ａ２＋４の順にアドレス信号ＩＡを出力しても良い。
【００６４】
図１０は、本実施の形態１に係るデータ処理装置に関して、バースト転送の最中に割り込み要求ＩＲが発生した場合の信号・データの遷移を示すタイミングチャートである。以下、図１０及び適宜図１〜８を参照して、バースト転送の最中に割り込み要求ＩＲが発生した場合の、本実施の形態１に係るデータ処理装置の動作を説明する。なお、割り込みハンドラの命令コードＩ５は命令キャッシュ３内に存在していないと仮定する。
【００６５】
期間Ｔ５までの動作は図９と同様であるため、説明は省略する。
【００６６】
期間Ｔ６において、ＳＤＲＡＭコントローラ５は、リードコマンドＲＥＡＤをＳＤＲＡＭ８に入力する。また、命令コードＤ２に関するアクセス要求がＳＤＲＡＭコントローラ５によって受け付けられ、ＳＤＲＡＭコントローラ５は、受領信号ＡＣＫを命令キャッシュ３に入力する。
【００６７】
割り込み要求ＩＲが発生し、リクエストキャンセル信号ＲＣが、リクエストキャンセル信号生成回路１２から命令キャッシュ３に入力される。ＣＰＵ１は、命令フェッチ要求信号ＩＦＲを「Ｌ」に遷移させることにより、この時点で命令キャッシュ３によってまだ受け付けられていない命令フェッチ要求（図９に示したアドレスａ３，ａ４に対する命令フェッチ要求）を取り下げる。命令キャッシュ３は、最終要求信号ＬＡＲを生成してＳＤＲＡＭコントローラ５に入力する。また、命令キャッシュ３は、アクセス要求信号ＡＲ及びバースト要求信号ＢＲを「Ｌ」に遷移させることにより、図９に示した命令コードＤ３，Ｄ４に関してのバースト転送の要求を取り下げる。
【００６８】
期間Ｔ７において、ＳＤＲＡＭコントローラ５は、プリチャージコマンドＰＲＥをＳＤＲＡＭ８に入力する。
【００６９】
期間Ｔ８において、バースト転送が開始され、命令コードＤ１がＳＤＲＡＭ８からＳＤＲＡＭコントローラ５へ転送される。
【００７０】
期間Ｔ９において、命令コードＤ１がＳＤＲＡＭコントローラ５から命令キャッシュ３へ転送される。その際、ｄａｔａ　ｒｅａｄｙ信号ＤＲが「Ｈ」とされる。また、命令コードＤ２がＳＤＲＡＭ８からＳＤＲＡＭコントローラ５へ転送される。
【００７１】
期間Ｔ１０において、命令コードＤ１が命令キャッシュ３からＣＰＵ１に転送される。その際、命令バリッド信号ＩＶが「Ｈ」とされる。また、命令キャッシュ３は、割り込みハンドラの命令コードＩ５に関する命令アドレス信号ＩＦＡ（アドレスａ５）を受け付け、受領信号ＡＦＩＣをＣＰＵ１に入力する。命令コードＩ５は命令キャッシュ３内に存在していないため、ミスヒット信号ＭＩＳＳが「Ｈ」となる。また、命令コードＤ２がＳＤＲＡＭコントローラ５から命令キャッシュ３へ転送される。その際、ｄａｔａ　ｒｅａｄｙ信号ＤＲが「Ｈ」とされる。
【００７２】
期間Ｔ１１以降において、アドレスａ５，ａ５＋４，ａ５＋８，ａ５＋１２の各アドレス信号ＩＡが、命令キャッシュ３からＳＤＲＡＭコントローラ５へ順次入力され、バースト転送によるＳＤＲＡＭ８からの命令コードＩ５の読み込みが行われる。命令コードＩ５はＣＰＵ１に転送され、ＣＰＵ１は、割り込み要求ＩＲに対する処理を実行する。
【００７３】
以下、中断されていたバースト転送の再開について説明する。図１１は、中断情報３５を示す図である。図１０に示した例では、割り込み要求ＩＲの発生に起因して、命令コードＤ３，Ｄ４に関するバースト転送が中断された。バースト転送が中断されると、命令キャッシュ３（厳密には外部アクセス要求生成回路１５）は、バースト転送の中断に関する情報（中断情報）３５を作成して、自ら保持しておく。
【００７４】
図１１を参照して、中断情報３５は、２８ビットのアドレス記述部３５ａと、４ビットのデータ位置記述部３５ｂと、１２８ビットのデータ格納部３５ｃとを有している。アドレス記述部３５ａには、中断されたバースト転送を再開する際の開始アドレス（再開アドレス）が記述されている。データ格納部３５ｃには、バースト転送が中断されるまでにＳＤＲＡＭコントローラ５から命令キャッシュ３に転送されてきたデータが格納されている。データ位置記述部３５ｂには、データ格納部３５ｃの１２８ビットを各３２ビットの４つの領域に分割して、どの領域に有効なデータが格納されているかが記述されている。
【００７５】
図１０に示した例によると、アドレス記述部３５ａには、３２ビットのアドレスａ２＋８のうちの［０：２７］が記述されている。データ格納部３５ｃには、［０：３１］に命令コードＤ１が格納されており、［３２：６３］に命令コードＤ２が格納されている。データ格納部３５ｃの［６４：９５］及び［９６：１２７］には有効なデータが格納されておらず、不定ビットとなっている。データ位置記述部３５ｂには、「１１００」が記述されている。「１」が有効を表しており、「０」が無効を表している。
【００７６】
図１２は、メインプログラムの実行中に割り込み要求が発生した場合の、第１の処理フローを示す模式図である。メインプログラムの処理を実行しているＣＰＵ１は、命令の切れ目などのタイミングで、ＩＣＵ１１からの割り込み信号ＩＳの入力の有無を監視している。命令キャッシュ３へのバースト転送が行われている途中で割り込み要求ＩＲの発生が検出されると、上記の通り、命令キャッシュ３は、命令コードＤ３，Ｄ４に関するバースト転送を中断するとともに、中断情報３５を作成する。そして、ＰＳＷや戻り先番地などの情報が退避された後、割り込みハンドラの先頭番地へのジャンプが行われる。割り込み処理が開始されて、その処理が終了すると、ＲＴＥ（Ｒｅｔｕｒｎ　ｆｒｏｍ　ｅｘｃｅｐｔｉｏｎ／ｉｎｔｅｒｒｕｐｔ／ｔｒａｐ）命令の実行により、退避されていたＰＳＷの復帰と、戻り先番地へのジャンプとが実行される。これにより、元のメインプログラムに復帰する。すると、命令キャッシュ３は、中断情報３５のアドレス記述部３５ａに記述されている再開アドレスを参照することにより、中断された箇所の続きからバースト転送を再開する。即ち、命令コードＤ３，Ｄ４に関するバースト転送が再開される。中断された箇所の続きからバースト転送が再開されるため、中断される前に命令キャッシュ３に転送されていた命令コードＤ１，Ｄ２に関して、重複した読み出し及び転送動作を回避することができる。
【００７７】
命令キャッシュ３への命令コードＤ３，Ｄ４の転送が完了すると、命令キャッシュ３は、中断情報３５のデータ格納部３５ｃに格納されている命令コードＤ１，Ｄ２と、ＳＤＲＡＭ８から転送されてきた命令コードＤ３，Ｄ４とを繋ぎ合わせて、命令コードＤ１〜Ｄ４を所定のラインに登録する。
【００７８】
図１３は、メインプログラムの実行中に割り込み要求が発生した場合の、第２の処理フローを示す模式図である。図１３では、割り込み処理が終了した後に、元のメインプログラムに復帰しない場合を想定している。割り込み処理が開始されるまでの流れは図１２と同様であるため、説明を省略する。割り込み処理が実行されている過程において、割り込みハンドラは、退避されていた戻り先番地を、メインプログラムとは別のプログラムの先頭番地に書き換える。命令キャッシュ３は、戻り先番地の書き換えが行われたことを検出すると、保持していた中断情報３５を無効化する。即ち、データ位置記述部３５ｂの記述内容をクリアする。このとき、アドレス記述部３５ａ及びデータ格納部３５ｃの内容を併せてクリアしてもよい。割り込み処理が終了すると、ＲＴＥ命令の実行によって上記別のプログラムの先頭番地へのジャンプが実行され、中断されていたバースト転送が再開されることなく、上記別のプログラムの処理が開始される。
【００７９】
割り込み処理が終了した後に別のプログラムに移行するような場合は、移行直後に元のプログラムに関する命令コードＤ１〜Ｄ４が実行される可能性は低いと考えられる。従って、このような場合には、中断されていたバースト転送を再開させないことにより、バースト転送の再開に伴う無駄な動作を回避でき、上記別のプログラムを早期に開始させることができる。
【００８０】
図１４は、メインプログラムの実行中に割り込み要求が発生した場合の、第３の処理フローを示す模式図である。図１４では、複数の割り込み要求が発生した場合を想定している。複数の割り込み要求が発生した場合は、優先度の高い順に割り込み処理が実行される。命令キャッシュ３へのバースト転送が行われている途中で第１の割り込み要求の発生が検出されると、上記の通り、命令キャッシュ３は、命令コードＤ３，Ｄ４に関するバースト転送を中断するとともに、中断情報３５を作成する。そして、ＰＳＷや戻り先番地などの情報が退避された後、第１の割り込みハンドラの先頭番地へのジャンプが行われて、第１の割り込み処理が開始される。
【００８１】
第１の割り込み処理が終了した時点で第２の割り込み要求の発生が検出されると、第２の割り込みハンドラの先頭番地へのジャンプが行われて、第２の割り込み処理が開始される。第２の割り込み処理が終了すると、ＲＴＥ命令の実行により、退避されていたＰＳＷの復帰と、戻り先番地へのジャンプとが実行されて、元のメインプログラムに復帰する。すると、命令キャッシュ３は、中断情報３５のアドレス記述部３５ａに記述されている再開アドレスを参照することにより、中断された箇所の続きからバースト転送を再開する。即ち、命令コードＤ３，Ｄ４に関するバースト転送が再開される。
【００８２】
命令キャッシュ３への命令コードＤ３，Ｄ４の転送が完了すると、命令キャッシュ３は、中断情報３５のデータ格納部３５ｃに格納されている命令コードＤ１，Ｄ２と、ＳＤＲＡＭ８から転送されてきた命令コードＤ３，Ｄ４とを繋ぎ合わせて、命令コードＤ１〜Ｄ４を所定のラインに登録する。
【００８３】
第１の割り込み処理が終了した後に、バースト転送の再開よりも優先して第２の割り込み処理を実行するため、第２の割り込み処理を早期に開始することができる。
【００８４】
なお、図１２，１４において、割り込み処理が終了して元のプログラムに復帰した際に、中断された箇所の続きからバースト転送を再開するのではなく、その中断に係るラインの全ての領域に関して、最初からバースト転送をやり直すこともできる。この場合、中断情報３５のアドレス記述部３５ａには、再開アドレスａ２＋８ではなく先頭アドレスａ２を記述しておき、また、データ位置記述部３５ｂ及びデータ格納部３５ｃは不要である。しかも、図１０において、命令キャッシュ３は、命令コードＤ１，Ｄ２のバースト転送が完了するのを待つことなく、リクエストキャンセル信号ＲＣを受けた直後に、命令コードＩ５の命令フェッチを開始すればよい。
【００８５】
また、割り込みに起因してバースト転送を中止することのみを目的とし、割り込み処理が終了した後にバースト転送を再開することを意図しない場合には、中断情報３５の作成・保持は不要である。
【００８６】
このように本実施の形態１に係るデータ処理装置によれば、キャッシュフィルのためのバースト転送が行われている最中に割り込み要求ＩＲが発生した場合に、バースト転送の完了を待ってから割り込み処理を開始するのではなく、バースト転送を強制的に中断して、割り込み処理を優先的に実行する。従って、緊急度の高い割り込み要求ＩＲに対する応答性を、従来のデータ処理装置よりも高めることができる。
【００８７】
実施の形態２．
上記実施の形態１では、図１２，１４に示したように、命令キャッシュ３は、割り込み処理が終了して元のプログラムに復帰したことを要因として、中断されていたバースト転送を自動的に再開した。本実施の形態２では、実施の形態１とは異なる要因でバースト転送を再開する方法について説明する。なお、上記実施の形態１と同様に、命令コードＤ１，Ｄ２が命令キャッシュ３に転送された段階でバースト転送が中断されて割り込み処理が開始されたものと仮定し、その割り込み処理はすでに完了している。
【００８８】
図１５は、本実施の形態２に係るデータ処理装置に関して、中断されていたバースト転送を再開する際の信号・データの遷移を示すタイミングチャートである。図１５に示すように、ＣＰＵ１は、命令コードＩ１（アドレスａ１）と、バースト転送が中断されたライン（以下「中断ライン」と称する）に係る命令コードＤ１，Ｄ２，Ｄ３，Ｄ４（アドレスａ２，ａ２＋４，ａ２＋８，ａ２＋１２）とを要求している。本実施の形態２に係るデータ処理装置では、中断ラインに係る複数の命令コードのうちの任意の一つがＣＰＵ１によって要求されたことを要因として、中断されていたバースト転送が再開される。以下、具体的に説明する。
【００８９】
期間Ｔ１において、ＣＰＵ１は、命令フェッチ要求信号ＩＦＲ、及び命令コードＩ１に関する命令アドレス信号ＩＦＡ（アドレスａ１）を、命令キャッシュ３に入力する。命令フェッチ要求信号ＩＦＲは、ＣＰＵ１が要求している全ての命令コードＩ１，Ｄ１〜Ｄ４に関する命令フェッチ要求が命令キャッシュ３によって受け付けられるまで、「Ｈ」を維持する。命令コードＩ１に関する命令フェッチ要求は、期間Ｔ１において命令キャッシュ３によって受け付けられ、命令キャッシュ３は、受領信号ＡＦＩＣをＣＰＵ１に入力する。命令コードＩ１は命令キャッシュ３内に存在しているため、ヒット信号ＨＩＴが「Ｈ」となる。
【００９０】
期間Ｔ２において、命令コードＩ１が命令キャッシュ３から読み出されて、ＣＰＵ１に転送される。その際、命令バリッド信号ＩＶが「Ｈ」とされる。また、ＣＰＵ１は、命令コードＩ１の次の命令コードＤ１に関する命令アドレス信号ＩＦＡ（アドレスａ２）を、命令キャッシュ３に入力する。命令コードＤ１に関する命令フェッチ要求は、期間Ｔ２において命令キャッシュ３によって受け付けられ、命令キャッシュ３は、受領信号ＡＦＩＣをＣＰＵ１に入力する。
【００９１】
命令コードＤ１は中断情報３５のデータ格納部３５ｃに格納されており、命令キャッシュ３の記憶部１７内には存在していないため、ミスヒット信号ＭＩＳＳが「Ｈ」となる。一方、図６を参照して、一致検出回路３０からは「Ｈ」が出力され、ＡＮＤ回路８０からも「Ｈ」が出力される。その結果、ＡＮＤ回路８５からは「Ｈ」の有効データ信号ＳＳが出力される。
【００９２】
期間Ｔ３において、命令コードＤ１が中断情報３５のデータ格納部３５ｃから読み出されて、ＣＰＵ１に転送される。その際、命令バリッド信号ＩＶが「Ｈ」とされる。また、ＣＰＵ１は、命令コードＤ１の次の命令コードＤ２に関する命令アドレス信号ＩＦＡ（アドレスａ２＋４）を、命令キャッシュ３に入力する。命令コードＤ２に関する命令フェッチ要求は、期間Ｔ３において命令キャッシュ３によって受け付けられ、命令キャッシュ３は、受領信号ＡＦＩＣをＣＰＵ１に入力する。
【００９３】
命令コードＤ２は命令キャッシュ３の記憶部１７内には存在していないため、ミスヒット信号ＭＩＳＳが「Ｈ」となる。一方、図６を参照して、一致検出回路３０からは「Ｈ」が出力され、ＡＮＤ回路８１からも「Ｈ」が出力される。その結果、ＡＮＤ回路８５からは「Ｈ」の有効データ信号ＳＳが出力される。
【００９４】
また、命令キャッシュ３は、アクセス要求信号ＡＲ及びバースト要求信号ＢＲをＳＤＲＡＭコントローラ５へ入力する。図６を参照して、一致検出回路３０から「Ｈ」の検出結果が出力されているため、選択回路３１は、中断情報の３５の再開アドレス（アドレスａ２＋８）を選択し、アドレス信号ＩＡとして出力する。このアクセス要求、即ち命令コードＤ３に関するアクセス要求は、期間Ｔ３においてＳＤＲＡＭコントローラ５によって受け付けられ、ＳＤＲＡＭコントローラ５は、受領信号ＡＣＫを命令キャッシュ３に入力する。
【００９５】
期間Ｔ４において、命令コードＤ２が中断情報３５のデータ格納部３５ｃから読み出されて、ＣＰＵ１に転送される。その際、命令バリッド信号ＩＶが「Ｈ」とされる。また、ＣＰＵ１は、命令コードＤ２の次の命令コードＤ３に関する命令アドレス信号ＩＦＡ（アドレスａ２＋８）を、命令キャッシュ３に入力する。命令コードＤ３に関する命令フェッチ要求は、期間Ｔ４において命令キャッシュ３によって受け付けられ、命令キャッシュ３は、受領信号ＡＦＩＣをＣＰＵ１に入力する。
【００９６】
命令コードＤ３は命令キャッシュ３の記憶部１７内には存在していないため、ミスヒット信号ＭＩＳＳが「Ｈ」となる。また、図６を参照して、ＡＮＤ回路８２からは「Ｌ」が出力されるため、ＡＮＤ回路８５からは「Ｌ」の有効データ信号ＳＳが出力される。
【００９７】
ＳＤＲＡＭコントローラ５は、活性化コマンドＡＣＴをＳＤＲＡＭ８に入力する。また、命令キャッシュ３は、命令コードＤ３に続く命令コードＤ４に関するアドレス信号ＩＡ（アドレスａ２＋８）を、ＳＤＲＡＭコントローラ５に入力する。しかし、ＳＤＲＡＭコントローラ５は、次のアクセス要求を受け付け可能となるまでは、命令コードＤ４に関するアクセス要求を受け付けない。また、命令キャッシュ３は、最終要求信号ＬＡＲをＳＤＲＡＭコントローラ５に入力する。
【００９８】
期間Ｔ５において、ＣＰＵ１は、命令コードＤ３の次の命令コードＤ４に関する命令アドレス信号ＩＦＡ（アドレスａ２＋１２）を、命令キャッシュ３に入力する。しかし、命令キャッシュ３は、命令コードＤ３をＣＰＵ１に受け渡すまでは、命令コードＤ４に関する命令フェッチ要求を受け付けない。
【００９９】
期間Ｔ６において、ＳＤＲＡＭコントローラ５は、リードコマンドＲＥＡＤをＳＤＲＡＭ８に入力する。また、命令コードＤ４に関するアクセス要求がＳＤＲＡＭコントローラ５によって受け付けられ、ＳＤＲＡＭコントローラ５は、受領信号ＡＣＫを命令キャッシュ３に入力する。
【０１００】
期間Ｔ７において、ＳＤＲＡＭコントローラ５は、プリチャージコマンドＰＲＥをＳＤＲＡＭ８に入力する。
【０１０１】
期間Ｔ８において、バースト転送が開始され、命令コードＤ３がＳＤＲＡＭ８からＳＤＲＡＭコントローラ５へ転送される。
【０１０２】
期間Ｔ９において、命令コードＤ３がＳＤＲＡＭコントローラ５から命令キャッシュ３へ転送される。その際、ｄａｔａ　ｒｅａｄｙ信号ＤＲが「Ｈ」とされる。また、命令コードＤ４がＳＤＲＡＭ８からＳＤＲＡＭコントローラ５へ転送される。
【０１０３】
期間Ｔ１０において、命令コードＤ４がＳＤＲＡＭコントローラ５から命令キャッシュ３へ転送される。その際、ｄａｔａ　ｒｅａｄｙ信号ＤＲが「Ｈ」とされる。１ライン分の命令コードＤ１〜Ｄ４が揃ったので、命令キャッシュ３は、命令コードＤ１〜Ｄ４を所定のラインに登録する。
【０１０４】
また、命令コードＤ３が命令キャッシュ３からＣＰＵ１に転送される。その際、命令バリッド信号ＩＶが「Ｈ」とされる。また、命令キャッシュ３は、命令コードＤ４に関する命令アドレス信号ＩＦＡを受け付け、受領信号ＡＦＩＣをＣＰＵ１に入力する。命令コードＤ４は命令キャッシュ３内に存在しているため、ヒット信号ＨＩＴが「Ｈ」となる。
【０１０５】
期間Ｔ１１において、命令コードＤ４が命令キャッシュ３から読み出されて、ＣＰＵ１に転送される。その際、命令バリッド信号ＩＶが「Ｈ」とされる。
【０１０６】
このように本実施の形態２に係るデータ処理装置によれば、中断ラインに係る命令コードＤ１〜Ｄ４のうちの一つがＣＰＵ１によって要求されたことを要因として、中断されていた命令コードＤ３，Ｄ４に関するバースト転送が再開される。従って、割り込み処理が終了した直後に元のプログラムに復帰しないような場合であっても、その後に中断ラインがアクセスされた際に、バースト転送を再開することができる。
【０１０７】
実施の形態３．
本実施の形態３では、上記実施の形態１，２とは異なる要因でバースト転送を再開する方法について説明する。本実施の形態３に係るデータ処理装置では、割り込み処理が実行されている途中でＲＴＥ命令が検出されたことを要因として、中断されていたバースト転送が再開される。以下、ＣＰＵ１によってパイプライン処理が行われている場合を例にとり説明する。
【０１０８】
バースト転送の再開を説明する前に、まずパイプライン処理について説明する。図１６は、パイプライン処理の一例を示す模式図である。命令フェッチステージＩＦ、デコードステージＤ、命令実行ステージＥ、メモリアクセスステージＭ、及びライトバックステージＷＢがこの順に連続的に実行されることにより、パイプライン処理が実現されている。
【０１０９】
図１７は、本実施の形態３に係るアドレス生成回路２０の構成を示すブロック図である。本実施の形態３に係るアドレス生成回路２０は、選択回路１００を備えている。選択回路１００には、命令アドレス信号ＩＦＡと、中断情報３５のアドレス記述部３５ａに記述されている再開アドレスとが入力される。また、選択回路１００にはＲＴＥ検出信号ＳＲが入力されている。ＲＴＥ検出信号ＳＲは、パイプライン処理のデコードステージＤでＲＴＥ命令がデコードされた場合に「Ｈ」となる。選択回路１００は、ＲＴＥ検出信号ＳＲが「Ｈ」の場合は再開アドレスを選択し、「Ｌ」の場合は命令アドレス信号ＩＦＡを選択して、アドレス信号ＩＡとして出力する。なお、図１７では省略したが、本実施の形態３に係るアドレス生成回路２０は、図６と同様に有効データ信号ＳＳを生成するための構成を備えている。
【０１１０】
図１８は、本実施の形態３に係る外部アクセス要求生成回路１５の構成を示すブロック図である。本実施の形態３に係る外部アクセス要求生成回路１５は、図４に示した構成に加えて、ＯＲ回路１０１を備えている。ＯＲ回路１０１の一方の入力端子にはＲＴＥ検出信号ＳＲが入力され、他方の入力端子には命令フェッチ要求信号ＩＦＲが入力される。ＯＲ回路１０１の出力信号は、リクエスト生成回路２２及びＡＮＤ回路７２に入力される。リクエスト生成回路２２は、ＲＴＥ検出信号ＳＲが「Ｈ」でＯＲ回路１０１から「Ｈ」が入力されたとしても、中断情報３５のデータ位置記述部３５ｂに「００００」と記述されている場合は、アクセス要求信号ＡＲを出力しない。
【０１１１】
図１９は、パイプライン処理が実行されている状況を示す図である。図１９に示した命令Ｘ１〜Ｘ３と、図１９には示していない命令Ｘ４とが、命令キャッシュ３の１ラインに格納されるものと仮定する。期間ｔ１では、命令Ｘ１が命令フェッチステージＩＦで処理される。期間ｔ２では、命令Ｘ１がデコードステージＤで処理され、命令Ｘ２が命令フェッチステージＩＦで処理される。期間ｔ３では、命令Ｘ１が命令実行ステージＥで処理され、命令Ｘ２がデコードステージＤで処理され、命令Ｘ３が命令フェッチステージＩＦで処理される。また、期間ｔ３では、割り込み（割り込み命令Ｙ１）が発生している。
【０１１２】
期間ｔ４において、命令フェッチステージＩＦでは、命令Ｘ３に続く命令Ｘ４に先立って、割り込み命令Ｙ１が優先的に処理される。その際、命令Ｘ４の先頭アドレスを中断情報３５のアドレス記述部３５ａに記述しておく。命令Ｘ４については、期間ｔ５以降に命令フェッチステージＩＦで処理される。そして、１ライン分のデータが揃った段階で、命令Ｘ１〜Ｘ４が命令キャッシュ３に登録される。
【０１１３】
また、期間ｔ４において、デコードステージＤ及び命令実行ステージＥでは、割り込み命令Ｙ１が発生した時点（期間ｔ３）で命令実行ステージＥでの処理がまだ行われていない命令（この例の場合は命令Ｘ２，Ｘ３）の処理をそれぞれ保留し、割り込み命令Ｙ１の処理に備える。その際、命令実行ステージＥに関して、命令Ｘ２の先頭アドレスを戻り先番地として設定して、ＰＳＷとともに退避しておく。一方、割り込み命令Ｙ１が発生した時点で命令実行ステージＥでの処理がすでに完了している命令については、その後の処理が進められる。この例の場合、メモリアクセスステージＭで命令Ｘ１が処理される。
【０１１４】
割り込み命令Ｙ１は、期間ｔ５においてデコードステージＤで処理され、期間ｔ６において命令実行ステージＥで処理される。割り込み処理が終了した後は、戻り先番地としてアドレスが保持されていた命令Ｘ２の命令フェッチステージＩＦから、処理が再開される。このように、割り込み命令Ｙ１が発生した時点で命令実行ステージＥでの処理がまだ行われていない命令Ｘ２〜Ｘ４よりも、割り込み命令Ｙ１を優先的に処理することにより、緊急度の高い割り込み処理を早期に開始することができる。例えば、命令Ｘ２，Ｘ３の実行処理に長時間を要する場合であっても、命令Ｘ２，Ｘ３の実行処理が完了するのを待ってから割り込み命令Ｙ１の実行処理が開始されるわけではないため、割り込み命令Ｙ１に対する実行処理を早期に開始することができる。
【０１１５】
但し、発生した割り込み命令Ｙ１の優先度を、予め設定しておいた所定の優先度と比較し、割り込み命令Ｙ１の優先度が所定の優先度以下である場合には、以下のような処理を行ってもよい。なお、優先度の設定及び比較については、後述する実施の形態５において詳細に説明する。
【０１１６】
図２０は、パイプライン処理が実行されている状況を示す図である。期間ｔ３において、優先度が所定の優先度以下である割り込み命令Ｙ１が発生している。命令実行ステージＥでは、割り込み命令Ｙ１がフェッチされる前にすでにフェッチされていた命令Ｘ１〜Ｘ３が処理された後に、割り込み命令Ｙ１が処理される。この場合、命令Ｘ４の先頭アドレスが戻り先番地として設定されて、ＰＳＷとともに退避される。デコードステージＤ、メモリアクセスステージＭ、及びライトバックステージＷＢについても同様である。発生した割り込み要求の緊急度がそれほど高くない場合に、割り込み命令Ｙ１よりも先に命令Ｘ１〜Ｘ３を処理することにより、パイプラインを乱すことなく処理を進めることができ、割り込み処理に伴うペナルティをなくすことができる。即ち、割り込み処理の優先度に応じてパイプラインをキャンセルするか否かを選択することにより、割り込み処理を急ぐ場合にはパイプラインをキャンセルして割り込み処理を早急に処理でき、割り込み処理を急がない場合にはパイプラインをキャンセルしないことで割り込み処理に伴うペナルティを減らすことができ、全体として処理性能を高めることができる。
【０１１７】
以上のようにしてＣＰＵ１はパイプライン処理を実現しているわけであるが、パイプライン処理においては、ＲＴＥ命令は、命令実行ステージＥで処理される前にデコードステージＤで処理される。従って、実際にＲＴＥ命令が命令実行ステージＥで処理されるよりも前に、デコードステージＤにおいてＲＴＥ命令を検出することができる。そこで、本実施の形態３に係るデータ処理装置は、割り込み処理が実行されている最中であっても、割り込み処理を終了させる命令（ＲＴＥ命令）が検出されたことを要因として、中断されていたバースト転送を再開する。
【０１１８】
図２１は、本実施の形態３に係るデータ処理装置に関して、中断されていたバースト転送を再開する際の信号・データの遷移を示すタイミングチャートである。ここでは、命令キャッシュ３の１ラインに格納される命令コードＩ１〜Ｉ４（アドレスＡ１〜Ａ４）のうち、命令コードＩ１，Ｉ２に関する転送が完了した段階でバースト転送が中断されている場合を想定している。なお、図２１において、命令コードＩ０（アドレスＡ０）は割り込みハンドラの命令コードである。
【０１１９】
期間Ｔ２において、デコードステージＤでＲＴＥ命令が検出されたことにより、ＲＴＥ検出信号ＳＲが「Ｈ」となる。
【０１２０】
期間Ｔ３において、ＣＰＵ１は、命令フェッチ要求信号ＩＦＲ、及び命令コードＩ１に関する命令アドレス信号ＩＦＡ（アドレスＡ１）を、命令キャッシュ３に入力する。命令コードＩ１に関する命令フェッチ要求は、期間Ｔ３において命令キャッシュ３によって受け付けられ、命令キャッシュ３は、受領信号ＡＦＩＣをＣＰＵ１に入力する。命令コードＩ１は中断情報３５のデータ格納部３５ｃに格納されているため、ミスヒット信号ＭＩＳＳ及び有効データ信号ＳＳが「Ｈ」となる。
【０１２１】
また、命令キャッシュ３は、アクセス要求信号ＡＲ及びバースト要求信号ＢＲをＳＤＲＡＭコントローラ５へ入力する。図６を参照して、選択回路３１は、中断情報の３５の再開アドレス（アドレスＡ３）を選択し、アドレス信号ＩＡとして出力する。このアクセス要求、即ち命令コードＩ３に関するアクセス要求は、期間Ｔ３においてＳＤＲＡＭコントローラ５によって受け付けられ、ＳＤＲＡＭコントローラ５は、受領信号ＡＣＫを命令キャッシュ３に入力する。
【０１２２】
期間Ｔ４において、命令コードＩ１が中断情報３５のデータ格納部３５ｃから読み出されて、ＣＰＵ１に転送される。その際、命令バリッド信号ＩＶが「Ｈ」とされる。また、ＣＰＵ１は、命令コードＩ１の次の命令コードＩ２に関する命令アドレス信号ＩＦＡ（アドレスＡ２）を、命令キャッシュ３に入力する。命令コードＩ２に関する命令フェッチ要求は、期間Ｔ４において命令キャッシュ３によって受け付けられ、命令キャッシュ３は、受領信号ＡＦＩＣをＣＰＵ１に入力する。命令コードＩ２は中断情報３５のデータ格納部３５ｃに格納されているため、ミスヒット信号ＭＩＳＳ及び有効データ信号ＳＳが「Ｈ」となる。
【０１２３】
ＳＤＲＡＭコントローラ５は、活性化コマンドＡＣＴをＳＤＲＡＭ８に入力する。また、命令キャッシュ３は、命令コードＩ３に続く命令コードＩ４に関するアドレス信号ＩＡ（アドレスＡ４）を、ＳＤＲＡＭコントローラ５に入力する。しかし、ＳＤＲＡＭコントローラ５は、次のアクセス要求を受け付け可能となるまでは、命令コードＩ４に関するアクセス要求を受け付けない。また、命令キャッシュ３は、最終要求信号ＬＡＲをＳＤＲＡＭコントローラ５に入力する。
【０１２４】
期間Ｔ５において、命令コードＩ２が中断情報３５のデータ格納部３５ｃから読み出されて、ＣＰＵ１に転送される。その際、命令バリッド信号ＩＶが「Ｈ」とされる。また、ＣＰＵ１は、命令コードＩ２の次の命令コードＩ３に関する命令アドレス信号ＩＦＡ（アドレスＡ３）を、命令キャッシュ３に入力する。命令コードＩ３に関する命令フェッチ要求は、期間Ｔ５において命令キャッシュ３によって受け付けられ、命令キャッシュ３は、受領信号ＡＦＩＣをＣＰＵ１に入力する。命令コードＩ３は命令キャッシュ３内に存在していないため、ミスヒット信号ＭＩＳＳが「Ｈ」となる。
【０１２５】
期間Ｔ６において、ＣＰＵ１は、命令コードＩ３の次の命令コードＩ４に関する命令アドレス信号ＩＦＡ（アドレスＡ４）を、命令キャッシュ３に入力する。しかし、命令キャッシュ３は、命令コードＩ３をＣＰＵ１に受け渡すまでは、命令コードＩ４に関する命令フェッチ要求を受け付けない。
【０１２６】
ＳＤＲＡＭコントローラ５は、リードコマンドＲＥＡＤをＳＤＲＡＭ８に入力する。また、命令コードＩ４に関するアクセス要求がＳＤＲＡＭコントローラ５によって受け付けられ、ＳＤＲＡＭコントローラ５は、受領信号ＡＣＫを命令キャッシュ３に入力する。
【０１２７】
期間Ｔ７において、ＳＤＲＡＭコントローラ５は、プリチャージコマンドＰＲＥをＳＤＲＡＭ８に入力する。
【０１２８】
期間Ｔ８において、バースト転送が開始され、命令コードＩ３がＳＤＲＡＭ８からＳＤＲＡＭコントローラ５へ転送される。
【０１２９】
期間Ｔ９において、命令コードＩ３がＳＤＲＡＭコントローラ５から命令キャッシュ３へ転送される。その際、ｄａｔａ　ｒｅａｄｙ信号ＤＲが「Ｈ」とされる。また、命令コードＩ４がＳＤＲＡＭ８からＳＤＲＡＭコントローラ５へ転送される。
【０１３０】
期間Ｔ１０において、命令コードＩ４がＳＤＲＡＭコントローラ５から命令キャッシュ３へ転送される。その際、ｄａｔａ　ｒｅａｄｙ信号ＤＲが「Ｈ」とされる。１ライン分の命令コードＩ１〜Ｉ４が揃ったので、命令キャッシュ３は、命令コードＩ１〜Ｉ４を所定のラインに登録する。
【０１３１】
また、命令コードＩ３が命令キャッシュ３からＣＰＵ１に転送される。その際、命令バリッド信号ＩＶが「Ｈ」とされる。また、命令キャッシュ３は、命令コードＩ４に関する命令アドレス信号ＩＦＡを受け付け、受領信号ＡＦＩＣをＣＰＵ１に入力する。命令コードＩ４は命令キャッシュ３内に存在しているため、ヒット信号ＨＩＴが「Ｈ」となる。
【０１３２】
期間Ｔ１１において、命令コードＩ４が命令キャッシュ３から読み出されて、ＣＰＵ１に転送される。その際、命令バリッド信号ＩＶが「Ｈ」とされる。
【０１３３】
このように本実施の形態３に係るデータ処理装置によれば、ＲＴＥ命令が検出されたことを要因として、中断されていた命令コードＩ３，Ｉ４に関するバースト転送が再開される。従って、割り込み処理がまだ実行されている最中であってもバースト転送を再開することができ、割り込み処理が完了した後に再開する場合と比較すると、バースト転送を早期に再開することができる。
【０１３４】
なお、図１４に示したように複数の割り込み要求が発生した場合には、以下のように対応することができる。図２２は、ＲＴＥ検出信号ＳＲを生成するための回路の構成を示すブロック図である。ＡＮＤ回路１１０の一方の入力端子には、ＲＴＥ検出信号ＳＲが入力され、他方の入力端子には、インバータ１１１によって反転された割り込み信号ＩＳが入力される。かかる構成により、ＡＮＤ回路１１０は、割り込み信号ＩＳが「Ｌ」の時にはＲＴＥ検出信号ＳＲを出力し、割り込み信号ＩＳが「Ｈ」の時にはＲＴＥ検出信号ＳＲを出力しない。図１８に示したＯＲ回路１０１には、ＡＮＤ回路１１０から出力されたＲＴＥ検出信号ＳＲが入力される。
【０１３５】
図１４を参照して、第１の割り込み処理に関するＲＴＥ命令が検出されたとしても、それと同時に第２の割り込み要求が発生している。従って、図２２に示したＡＮＤ回路２２からはＲＴＥ検出信号ＳＲは出力されない。その結果、中断されていたバースト転送が再開されることなく、第２の割り込みハンドラの先頭番地へのジャンプが行われて、第２の割り込み処理が開始される。
【０１３６】
第２の割り込み処理に関するＲＴＥ命令が検出されると、その時点では次の割り込み要求が発生していない。そのため、図２２に示したＡＮＤ回路２２からＲＴＥ検出信号ＳＲが出力され、中断されていたバースト転送が再開される。その後、第２の割り込み処理に関するＲＴＥ命令が実行されることにより、メインプログラムへの復帰が行われる。
【０１３７】
実施の形態４．
図２３は、本実施の形態４に係る命令キャッシュ３の記憶部１７の構成を示す模式図である。上記実施の形態１〜３では、命令キャッシュ３は、中断ラインのみに関する中断情報３５を、外部アクセス要求生成回路１５内に保持していた。これに対して、本実施の形態４に係るデータ処理装置では、外部アクセス要求生成回路１５が中断情報３５を保持するのではなく、中断情報３５と等価な情報が、命令キャッシュ３の記憶部１７に記憶されている。
【０１３８】
記憶部１７は複数のラインに分割されており、各ラインは、タグ部１７ａ、バリッドビット１７ｂ、データ部１７ｃ、及びデータ位置記述部１７ｄをそれぞれ有している。タグ部１７ａには登録データのタグ情報が記述されており、また、中断ラインに関しては、再開アドレスがタグ部１７ａに記述されている。
【０１３９】
データ部１７ｃには、登録データが格納されている。中断ラインに関しても、バースト転送が中断される前に命令キャッシュ３に転送されてきたデータが、データ部１７ｃに格納されている。
【０１４０】
データ位置記述部１７ｄは、中断情報３５のデータ位置記述部３５ｂと同様に、データ部１７ｃの１２８ビットを各３２ビットの４つの領域に分割して、どの領域に有効なデータが格納されているかが記述されている。中断ラインではないラインに係るデータ位置記述部１７ｄには、「１１１１」が記述されている。
【０１４１】
上記実施の形態１〜３に係るデータ処理装置において本実施の形態４に係る記憶部１７が採用された場合、命令キャッシュ３は、記憶部１７のタグ部１７ａに記述されている再開アドレスを参照することにより、中断された箇所の続きからバースト転送を再開する。
【０１４２】
このように、外部アクセス要求生成回路１５が中断情報３５を保持するのではなく、中断情報３５と等価な情報を命令キャッシュ３の記憶部１７に記憶しておくことによっても、上記実施の形態１〜３と同様の動作を実現でき、同様の効果が得られる。
【０１４３】
なお、本実施の形態４に係る発明は、後述の実施の形態５，６に係るデータ処理装置にも適用可能である。
【０１４４】
実施の形態５．
図２４は、本発明の実施の形態５に係るデータ処理装置の構成を示すブロック図である。中断許可信号ＳＦが、ＩＣＵ１１から命令キャッシュ３に入力されている。
【０１４５】
図２５は、本実施の形態５に係る命令キャッシュ３の構成を示すブロック図である。中断許可信号ＳＦ及びリクエストキャンセル信号ＲＣが、中断許可判定回路３００に入力されている。リクエストキャンセル信号ＲＣは、中断許可判定回路３００から出力されて、外部アクセス要求生成回路１５に入力されている。
【０１４６】
図２６は、中断許可判定回路３００の構成を示すブロック図である。ＡＮＤ回路１２０の一方の入力端子にはリクエストキャンセル信号ＲＣが入力され、他方の入力端子には中断許可信号ＳＦが入力される。かかる構成により、ＡＮＤ回路１２０は、中断許可信号ＳＦが「Ｈ」の時にはリクエストキャンセル信号ＲＣを出力し、中断許可信号ＳＦが「Ｌ」の時にはリクエストキャンセル信号ＲＣを出力しない。
【０１４７】
図２７は、本実施の形態５に係るＩＣＵ１１の第１の構成を示すブロック図である。図２７に示すＩＣＵ１１は、割り込み検出回路３５０と、レジスタ３６，４１ａ〜４１ｄと、比較回路３７と、選択回路４０とを備えている。割り込み検出回路３５０には、少なくとも一つの割り込み要求ＩＲが入力される。割り込み検出回路３５０は、エッジ指定又はレベル指定によって割り込み要求ＩＲの発生を検出し、割り込み信号ＩＳ及び割り込み要求ＩＲを出力する。
【０１４８】
選択回路４０には、割り込み検出回路３５０から割り込み要求ＩＲが入力される。レジスタ４１ａ〜４１ｄには、様々な割り込み要因に応じて、割り込みの優先度が予め設定されている。選択回路４０は、レジスタ４１ａ〜４１ｄの内容を参照することにより、割り込み検出回路３５０から入力された割り込み要求ＩＲに関する優先度ＳＰを求め、その優先度ＳＰを比較回路３７の一方の入力端子に入力する。割り込み検出回路３５０から複数の割り込み要求ＩＲが入力される場合は、選択回路４０は、レジスタ４１ａ〜４１ｄの内容を参照することにより、複数の割り込み要求ＩＲの中から、割り込みの優先度が最も高い割り込み要求ＩＲを選択する。そして、その選択された割り込み要求ＩＲに関する優先度ＳＰを、比較回路３７の一方の入力端子に入力する。
【０１４９】
レジスタ３６には、レジスタ４１ａ〜４１ｄに設定されている優先度と同種の、所定の優先度ＳＰ０が予め設定されている。優先度ＳＰ０は、比較回路３７の他方の入力端子に入力されている。比較回路３７は、優先度ＳＰと優先度ＳＰ０とを比較することにより、優先度ＳＰが優先度ＳＰ０よりも高い場合に、「Ｈ」の中断許可信号ＳＦを出力する。優先度ＳＰが優先度ＳＰ０以下である場合には、中断許可信号ＳＦは出力されない。
【０１５０】
図２８は、本実施の形態５に係るＩＣＵ１１の第２の構成を示すブロック図である。図２８に示すＩＣＵ１１は、割り込み検出回路３５０と、レジスタ４６と、選択回路４５とを備えている。割り込み検出回路３５０には割り込み要求ＩＲが入力される。割り込み検出回路３５０は、割り込み信号ＩＳ及び割り込み要求ＩＲを出力する。
【０１５１】
レジスタ４６では、様々な割り込み要求ＩＲ０〜ＩＲｎごとに、「Ｈ」又は「Ｌ」の中断許可ビットが予め設定されている。選択回路４５には、割り込み検出回路３５０から割り込み要求ＩＲが入力される。選択回路４５は、割り込み検出回路３５０から入力された割り込み要求ＩＲに関する中断許可ビットをレジスタ４６から読み出し、そのビット内容（「Ｈ」又は「Ｌ」）を中断許可信号ＳＦとして出力する。
【０１５２】
このように本実施の形態５に係るデータ処理装置によれば、早急な対応が真に必要な割り込み要求ＩＲが発生した場合にのみ、バースト転送を中断させることができる。従って、早急な対応が必要でない割り込み要求ＩＲが発生した場合にもバースト転送が中断されてメインプログラムの処理に必要以上の遅延をきたすことを、回避することができる。
【０１５３】
実施の形態６．
上記実施の形態１〜５では、割り込み命令が検出された場合にバースト転送を中断することについて説明したが、同様の考えに基づき、分岐命令が検出された場合にバースト転送を中断することもできる。
【０１５４】
第１のプログラムを実行する過程で、ＳＤＲＡＭ８からＳＤＲＡＭコントローラ５を介して命令キャッシュ３にバースト転送（説明の便宜上、以下「第１のバースト転送」と称す）が行われている状況を考える。第１のバースト転送が行われている最中にＣＰＵ１が分岐命令（説明の便宜上、以下「第１の分岐命令」と称す）を検出すると、データ処理装置は、第１のバースト転送を中断して、分岐先の第２のプログラムの実行を開始する。その際、中断情報３５の作成が行われる。そして、第２のプログラムの実行が完了すると、データ処理装置は、中断情報３５の内容に基づいて、中断されていた箇所から第１のバースト転送を再開する。
【０１５５】
ここで、第１のプログラムがメインプログラムで第２のプログラムがメインプログラムのサブルーチンである場合など、第２のプログラムの実行が終了した後に第１のプログラムに復帰する可能性が高い場合にのみ、中断情報３５の作成・保持を行ってもよい。第２のプログラムの実行が終了した後に第１のプログラムに復帰しない場合には、中断されていた第１のバースト転送の再開、及び中断情報３５の作成・保持は無駄になるため、この無駄を予め解消するためである。
【０１５６】
また、第２のプログラムを実行する過程でバースト転送（以下「第２のバースト転送」と称す）が行われている最中に、ネスティングによって他の分岐命令（以下「第２の分岐命令」と称す）が検出された場合には、以下の処理が行われる。即ち、データ処理装置は、第２のバースト転送を中断して、分岐先の第３のプログラムの実行を開始する。その際、新たな中断情報３５の作成が行われる。そして、第３のプログラムの実行が完了すると、データ処理装置は、新たな中断情報３５の内容に基づいて、中断されていた箇所から第２のバースト転送を再開する。
【０１５７】
図２９は、逐次作成される複数の中断情報を保持しておくためのスタック領域５０を示す模式図である。分岐命令の検出により新たな中断情報３５が作成される度に、作成された中断情報３５をスタック領域５０の最上段５０３にプッシュダウンする。また、分岐先のプログラムの実行が終了して元のプログラムに復帰する度に、最上段５０３の中断情報３５をスタック領域５０からポップアップする。図２９に示した例によると、スタック領域５０は、最下段５００から最上段５０３までの４段構成となっているため、４つの中断情報３５を保持しておくことが可能である。
【０１５８】
このように本実施の形態６に係るデータ処理装置によれば、バースト転送が行われている最中に分岐命令が検出された場合に、バースト転送の完了を待ってから分岐先のプログラムの実行を開始するのではなく、バースト転送を強制的に中断して、分岐先のプログラムを優先的に実行する。従って、分岐先のプログラムを早期に開始することができる。
【０１５９】
【発明の効果】
この発明のうち請求項１に係るものによれば、緊急度の高い割り込み要求に対する応答性を高めることができる。
【０１６０】
また、この発明のうち請求項２に係るものによれば、割り込み要求の発生によって中断されていたバースト転送を、割り込み処理の完了によって自動的に再開することができる。
【０１６１】
また、この発明のうち請求項３に係るものによれば、元のプログラムに復帰しない場合にはバースト転送が再開されないため、バースト転送の再開に伴う無駄な動作を回避できすることができる。
【０１６２】
また、この発明のうち請求項４に係るものによれば、一の割り込み処理が終了した後に、バースト転送の再開よりも優先して次の割り込み処理が実行されるため、次の割り込み処理を早期に開始することができる。
【０１６３】
また、この発明のうち請求項５に係るものによれば、割り込み処理が終了した直後に元のプログラムに復帰しないような場合であっても、中断に係るラインが処理装置によってアクセスされた際に、バースト転送を適切に再開することができる。
【０１６４】
また、この発明のうち請求項６に係るものによれば、割り込み処理がまだ実行されている最中であってもバースト転送を再開することができ、割り込み処理が完了した後に再開する場合と比較すると、バースト転送を早期に再開することができる。
【０１６５】
また、この発明のうち請求項７に係るものによれば、一の割り込み処理が終了した後に、バースト転送の再開よりも優先して次の割り込み処理が実行されるため、次の割り込み処理を早期に開始することができる。
【０１６６】
また、この発明のうち請求項８に係るものによれば、バースト転送が中断される前に第２の記憶装置に転送されていたデータに関して、重複した読み出し及び転送動作を回避することができる。
【０１６７】
また、この発明のうち請求項９に係るものによれば、バースト転送が中断される前に第２の記憶装置に転送されていたデータに関して、重複した読み出し及び転送動作を回避することができる。
【０１６８】
また、この発明のうち請求項１０に係るものによれば、早急な対応が真に必要な割り込み要求が発生した場合にのみ、バースト転送を中断させることができる。従って、早急な対応が必要でない割り込み要求が発生した場合にもバースト転送が中断されてメインプログラムの処理に必要以上の遅延をきたすことを、回避することができる。
【０１６９】
また、この発明のうち請求項１１に係るものによれば、早急な対応が真に必要な割り込み要求が発生した場合にのみ、バースト転送を中断させることができる。従って、早急な対応が必要でない割り込み要求が発生した場合にもバースト転送が中断されてメインプログラムの処理に必要以上の遅延をきたすことを、回避することができる。
【０１７０】
また、この発明のうち請求項１２に係るものによれば、割り込み命令を優先的に実行することにより、緊急度の高い割り込み処理を早期に開始することができる。
【０１７１】
また、この発明のうち請求項１３に係るものによれば、割り込み要求の緊急度がそれほど高くない場合には、割り込み命令がフェッチされる前にすでにフェッチされていた命令を先に実行する。従って、パイプラインを乱すことなく処理を進めることができ、割り込み処理に伴うペナルティをなくすことができる。
【０１７２】
また、この発明のうち請求項１４に係るものによれば、割り込み要求の優先度が所定の優先度よりも高い場合に、割り込み命令を優先的に実行することにより、緊急度の高い割り込み処理を早期に開始することができる。一方、割り込み要求の緊急度がそれほど高くない場合には、割り込み命令がフェッチされる前にすでにフェッチされていた命令を先に実行する。従って、パイプラインを乱すことなく処理を進めることができ、割り込み処理に伴うペナルティをなくすことができる。
【０１７３】
また、この発明のうち請求項１５に係るものによれば、緊急度の高い割り込み要求に対する応答性を高めることができる。
【０１７４】
また、この発明のうち請求項１６に係るものによれば、第１のバースト転送が行われている最中に第１の分岐命令が検出された場合には、第１のバースト転送の完了を待ってから第２のプログラムの実行を開始するのではなく、第１のバースト転送を強制的に中断して、第２のプログラムを優先的に実行する。従って、第２のプログラムを早期に開始することができる。
【０１７５】
また、この発明のうち請求項１７に係るものによれば、第２のバースト転送が行われている最中に第２の分岐命令が検出された場合には、第２のバースト転送の完了を待ってから第３のプログラムの実行を開始するのではなく、第２のバースト転送を強制的に中断して、第３のプログラムを優先的に実行する。従って、第３のプログラムを早期に開始することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態１に係るデータ処理装置の構成を示すブロック図である。
【図２】命令キャッシュ及びＳＤＲＡＭコントローラを示すブロック図である。
【図３】命令キャッシュの構成を示すブロック図である。
【図４】外部アクセス要求生成回路の構成を示すブロック図である。
【図５】リクエストカウント回路の構成を示すブロック図である。
【図６】アドレス生成回路の構成を示すブロック図である。
【図７】命令コード選択回路の構成を示すブロック図である。
【図８】リクエストキャンセル信号生成回路の構成を示すブロック図である。
【図９】本発明の実施の形態１に係るデータ処理装置に関して、信号・データの遷移を示すタイミングチャートである。
【図１０】本発明の実施の形態１に係るデータ処理装置に関して、信号・データの遷移を示すタイミングチャートである。
【図１１】中断情報を示す図である。
【図１２】メインプログラムの実行中に割り込み要求が発生した場合の、第１の処理フローを示す模式図である。
【図１３】メインプログラムの実行中に割り込み要求が発生した場合の、第２の処理フローを示す模式図である。
【図１４】メインプログラムの実行中に割り込み要求が発生した場合の、第３の処理フローを示す模式図である。
【図１５】本発明の実施の形態２に係るデータ処理装置に関して、信号・データの遷移を示すタイミングチャートである。
【図１６】パイプライン処理の一例を示す模式図である。
【図１７】本発明の実施の形態３に係るアドレス生成回路の構成を示すブロック図である。
【図１８】本発明の実施の形態３に係る外部アクセス要求生成回路の構成を示すブロック図である。
【図１９】パイプライン処理が実行されている状況を示す図である。
【図２０】パイプライン処理が実行されている状況を示す図である。
【図２１】本発明の実施の形態３に係るデータ処理装置に関して、信号・データの遷移を示すタイミングチャートである。
【図２２】ＲＴＥ検出信号を生成するための回路の構成を示すブロック図である。
【図２３】本発明の実施の形態４に係る命令キャッシュの記憶部の構成を示す模式図である。
【図２４】本発明の実施の形態５に係るデータ処理装置の構成を示すブロック図である。
【図２５】本発明の実施の形態５に係る命令キャッシュの構成を示すブロック図である。
【図２６】中断許可判定回路の構成を示すブロック図である。
【図２７】本発明の実施の形態５に係るＩＣＵの第１の構成を示すブロック図である。
【図２８】本発明の実施の形態５に係るＩＣＵの第２の構成を示すブロック図である。
【図２９】本発明の実施の形態６に係るデータ処理装置に関して、スタック領域を示す模式図である。
【符号の説明】
１　ＣＰＵ、２　オペランドキャッシュ、３　命令キャッシュ、４　外部アクセスコントローラ、５　ＳＤＲＡＭコントローラ、６　ＤＲＡＭコントローラ、７　ＲＯＭコントローラ、８　ＳＤＲＡＭ、９　ＤＲＡＭ、１０　ＲＯＭ、１１ＩＣＵ、１２　リクエストキャンセル信号生成回路、１５　外部アクセス要求生成回路、１６　命令コード選択回路、１７　記憶部、２０　アドレス生成回路、２１　リクエストカウント回路、２２　リクエスト生成回路、３０　一致検出回路、３１，４０，４５，８２，８３，１００，１８２，１８３　選択回路、３２　デコーダ、３５　中断情報、３６，４１ａ〜４１ｄ　レジスタ、３７　比較回路、３００　中断許可判定回路、３５０　割り込み検出回路。
【図１】
2004062319.tif 000003
【図２】
2004062319.tif 000004
【図３】
2004062319.tif 000005
【図４】
2004062319.tif 000006
【図５】
2004062319.tif 000007
【図６】
2004062319.tif 000008
【図７】
2004062319.tif 000009
【図８】
2004062319.tif 000010
【図９】
2004062319.tif 000011
【図１０】
2004062319.tif 000012
【図１１】
2004062319.tif 000013
【図１２】
2004062319.tif 000014
【図１３】
2004062319.tif 000015
【図１４】
2004062319.tif 000016
【図１５】
2004062319.tif 000017
【図１６】
2004062319.tif 000018
【図１７】
2004062319.tif 000019
【図１８】
2004062319.tif 000020
【図１９】
2004062319.tif 000021
【図２０】
2004062319.tif 000022
【図２１】
2004062319.tif 000023
【図２２】
2004062319.tif 000024
【図２３】
2004062319.tif 000025
【図２４】
2004062319.tif 000026
【図２５】
2004062319.tif 000027
【図２６】
2004062319.tif 000028
【図２７】
2004062319.tif 000029
【図２８】
2004062319.tif 000030
【図２９】
2004062319.tif 000031