(57)【要約】【課題】複数メモリアクセスプログラム命令中に割込みを処理するデータ処理装置を得る。【解決手段】データ処理装置（２）は多数のプログラムレジスタ（１６）からのデータ値を各メモリ場所にロードしたり多数のメモリ場所からのデータ値を各プログラムレジスタに格納するように働く複数メモリアクセスプログラム命令ＬＤＭ，ＳＴＭをサポートする。動作中に割込みが受信される場合にこのようなメモリ場所を含む複数メモリアクセスプログラム命令を早期停止できるかどうかを制御するデバイスまたは強い順序付けメモリ属性値をシステム内のメモリ管理ユニット８が格納する。複数メモリアクセス命令を安全に再開始しかつその全体を戻すことができる状況において早期停止は許されるが、制御プログラム命令内で見られるようにメモリ場所が保証されたメモリアクセス数を必要とする状況では早期停止は許されず割込みが受けつけられる前に動作は完了する。【選択図】　　　図１
2004110786.tif 000002
【特許請求の範囲】
【請求項１】
データ処理装置であって、前記装置は、
多重メモリアクセスを指定する複数メモリアクセスプログラム命令に応答して各メモリアドレス場所への一連のメモリアクセスを実施するように動作する処理論理と、
割込要求信号に応答して割込みをトリガーするように動作する割込コントローラと、
複数メモリアクセスプログラム命令が未決である時に前記メモリアドレス場所の少なくとも一つに関連する格納された属性値に応答して前記割込コントローラを制御して、
（ｉ）前記一連のメモリアクセスの途中で前記複数メモリアクセスプログラム命令を停止して前記割込みをトリガーする、または、
（ｉｉ）前記一連のメモリアクセスが完了するまで待って前記割込みをトリガーする、制御論理と、
を含むデータ処理装置。
【請求項２】
請求項１記載の装置であって、前記格納された属性は前記メモリ場所へのメモリアクセスが後続メモリアクセス時に動作を変えるようなメモリ場所であるかどうかを示す装置。
【請求項３】
請求項１記載の装置であって、前記格納された属性はメモリ場所が、
デバイスに関連するメモリ場所、
一連のメモリアクセス内の予め定められた位置においてアクセスされなければならないメモリ場所、
の一つ以上であるかどうかを示す装置。
【請求項４】
請求項１記載の装置であって、前記複数メモリアクセスプログラム命令は、
（ｉ）そこから格納された値がレジスタバンク内の一連のレジスタに格納される一連のメモリ場所を指定するロード複数命令、および、
（ｉｉ）そこから格納された値が一連のメモリ場所に格納されるレジスタバンク内の一連のレジスタを指定するストア複数命令、
の一方である装置。
【請求項５】
請求項１記載の装置であって、前記属性値を格納するように動作するメモリ管理ユニットを含む装置。
【請求項６】
請求項１記載の装置であって、前記制御論理は異なる動作モードで動作して前記一連のメモリアクセスが完了するまで前記割込コントローラを待たせ前記格納された属性値に無関係に前記割込みをトリガーするように制御することができる装置。
【請求項７】
請求項１記載の装置であって、前記割込コントローラは割込みに続いてそれからプログラム実行を再開始しなければならない再開始プログラムカウンタ値を格納するように動作することができ、前記再開始プログラムカウンタ値は、
（ｉ）前記複数メモリアクセスプログラム命令が前記一連のメモリアクセスの途中で停止された時は前記複数メモリアクセスプログラム命令により、あるいは、
（ｉｉ）前記一連のメモリアクセスが完了するのを許される時は前記複数メモリアクセスプログラム命令に続く命令により、
プログラム実行を再開始するように働く装置。
【請求項８】
データ処理方法であって、前記方法は、
多重メモリアクセスを指定する複数メモリアクセスプログラム命令に応答して各メモリアドレス場所への一連のメモリアクセスを実施するステップと、
割込要求信号に応答して割込みをトリガーするステップと、を含み、
複数メモリアクセスプログラム命令が未決である時に前記メモリアドレス場所の少なくとも一つに関連する格納された属性値に応答して動作を制御して、
（ｉ）前記一連のメモリアクセスの途中で前記複数メモリアクセスプログラム命令を停止して前記割込みをトリガーする、または、
（ｉｉ）前記一連のメモリアクセスが完了するまで待って前記割込みをトリガーする、方法。
【請求項９】
請求項８記載の方法であって、前記格納された属性はメモリ場所へのメモリアクセスが後続メモリアクセス時に動作を変えるようなメモリ場所であるかどうかを示す方法。
【請求項１０】
請求項８記載の方法であって、前記格納された属性はメモリ場所が、
デバイスに関連するメモリ場所、
一連のメモリアクセス内の予め定められた位置においてアクセスされなければならないメモリ場所、
の一つ以上であるかどうかを示す方法。
【請求項１１】
請求項８記載の方法であって、前記複数メモリアクセスプログラム命令は、
（ｉ）そこから格納された値がレジスタバンク内の一連のレジスタに格納される一連のメモリ場所を指定するロード複数命令、および、
（ｉｉ）そこから格納された値が一連のメモリ場所に格納されるレジスタバンク内の一連のレジスタを指定するストア複数命令、
の一方である方法。
【請求項１２】
請求項８記載の方法であって、前記属性値を格納するように動作するメモリ管理ユニットを含む方法。
【請求項１３】
請求項８記載の方法であって、前記制御論理は異なる動作モードで動作して前記一連のメモリアクセスが完了するまで前記割込コントローラを待たせ前記格納された属性値に無関係に前記割込みをトリガーするように制御することができる方法。
【請求項１４】
請求項８記載の方法であって、前記割込コントローラは割込みに続いてそれからプログラム実行を再開始しなければならない再開始プログラムカウンタ値を格納するように動作することができ、前記再開始プログラムカウンタ値は、
（ｉ）前記複数メモリアクセスプログラム命令が前記一連のメモリアクセスの途中で停止された時は前記複数メモリアクセスプログラム命令により、あるいは、
（ｉｉ）前記一連のメモリアクセスが完了するのを許される時は前記複数メモリアクセスプログラム命令に続く命令により、
プログラム実行を再開始するように働く方法。
【請求項１５】
請求項１から７のいずれか一項記載のデータ処理装置を制御するコンピュータプログラムであって、コンパイラによる前記コンピュータプログラムのコンパイル中に、識別子を有するメモリ場所へのメモリアクセスが他のメモリアクセスと連接されて複数メモリアクセスプログラム命令を形成することがないように、割込みをトリガーする前に一連のメモリアクセスが完了するのを待つよう前記割込コントローラを制御するように使用できる属性値を有するメモリ場所に格納されたデータ値に関連する少なくとも一つの識別子を含むコンピュータプログラム。
【請求項１６】
請求項１５記載のコンピュータプログラムであって、前記識別子は前記コンピュータプログラム内のデータタイプ文に関連づけられるコンピュータプログラム。
【請求項１７】
請求項１５記載のコンピュータプログラムであって、それはＣ言語コンピュータプログラムであるコンピュータプログラム。
【請求項１８】
請求項１記載のデータ処理装置を制御するコンピュータプログラムであって、前記一連のメモリアクセスの途中で前記複数メモリアクセスプログラム命令の停止を許す格納された属性値を有するメモリ場所に関連する一つ以上の複数メモリアクセスプログラム命令、および一連のメモリアクセスの途中で複数メモリアクセスプログラム命令の停止を許さない属性値を有するメモリ場所への全メモリアクセスに関連する単一メモリアクセスプログラム命令を有するコンピュータプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデータ処理の分野に関する。特に、本発明はマルチプル（複数）メモリアクセスプログラム命令を有するデータ処理システム内の割込み処理に関する。
【０００２】
【従来の技術】
複数メモリアクセスプログラム命令をサポートする、ＡＲＭマイクロプロセッサアーキテクチュアに基づくような、データ処理システムを提供することが知られている。この種のＡＲＭ命令の例はＬＤＭおよびＳＴＭであり、それぞれ、一連のメモリ場所から各プログラムレジスタ列にデータ値をロードするか、または一連のプログラムレジスタからのデータを各メモリ場所列に格納する。このような複数メモリアクセス命令を提供することにより、コードサイズを有利に低減する能力が得られる。しかしながら、このような複数メモリアクセスプログラム命令に付随する問題点として、典型的に完了するのに多くの処理サイクルを要することがあるため、割込みレーテンシに悪影響を及ぼすことがある。
【０００３】
マイクロプロセッサ等のデータ処理システムがプログラムを実行している時に、割込み機構を提供して非同期、しばしば外部、信号が予め実行されているプログラムの替わりに割込み処理ルーチンの実行をトリガーできることが知られている。このような割込み機構は多くのデータ処理システムの基本的部分であり、重要な性能パラメータはシステムの割込みレーテンシである。割込みレーテンシは割込み信号の受信後割込み処理コードの実行を開始するのにシステムが要する最悪時間と見なすことができる。この状況において、複数メモリアクセスプログラム命令を提供することは完了するのに多くの処理サイクルを要することがあり（例えば、最悪状況は多数のキャッシュミスおよびＴＬＢミス数百処理サイクルを含む）システムの最悪割込みレーテンシの確立における支配的な影響力となることがある。ある状況では、最大割込みレーテンシがこのような複数メモリアクセス命令により支配されるシステムは受け入れられないことがある。
【０００４】
【発明が解決しようとする課題】
メモリアクセスがある数よりも多く一緒に複数メモリアクセスプログラム命令内に連接されないようにされた最適化を制限する制御パラメータを含むコンパイラを提供することが知られている。また、複数メモリアクセスプログラム命令の使用を完全に抑制するように働くことができるコンパイラ制御オプションを提供することも知られている。
【０００５】
【課題を解決するための手段】
一つの側面から見て、本発明はデータ処理装置を提供し、前記装置は、
多重メモリアクセスを指定する複数メモリアクセスプログラム命令に応答して、各メモリアドレス場所への一連のメモリアクセスを実施するように動作することができる処理論理と、
割込み要求信号に応答して割込みをトリガーするように動作することができる割込みコントローラと、
複数メモリアクセスプログラム命令が未決である時に、前記メモリアドレス場所の少なくとも一つに関連する格納された属性値に応答して、前記割込みコントローラを制御して、
（ｉ）前記一連のメモリアクセスの途中で前記複数メモリアクセスプログラム命令を停止させて前記割込みをトリガーする、または、
（ｉｉ）前記一連のメモリアクセスが完了するまで待って前記割込みをトリガーする、ように動作する制御論理とを含んでいる。
【０００６】
本発明は、現在実行しているメモリアクセスプログラム命令（単一メモリアクセスプログラム命令であれ複数メモリアクセスプログラム命令であれ）が完了するまで待つ正規の制御規準は安全ではあるが、複数メモリアクセスプログラム命令がその実施途中で停止し次にいかなる悪影響もなくその始めから安全に再開始されることがある状況が沢山あることを認識している。特に、本発明はこのような複数メモリアクセスプログラム命令が途中で安全に停止できるまたはできない状況を予め定められたメモリ場所またはそのエリア上にマッピングできることを認識している。したがって、メモリ場所に関連する属性を使用してそのメモリ場所にアクセスする複数メモリアクセスプログラム命令を、割込みが受信されていて割込み処理をトリガーする必要がある時に、途中で安全に停止できるかどうかを制御するのに使用することができる。それにより、このような複数メモリアクセスプログラム命令に関連することがある不利を招く長い割込みレーテンシを回避する機構を安全に提供しながら、複数メモリアクセスプログラム命令を使用してコード密度改善の利点が得られる。さらに、センシティブであると読み出されるメモリ場所を含むメモリアクセス等の、途中で複数メモリアクセスプログラム命令を停止することが安全ではないこれらの状況は、これらのメモリ場所を含む複数メモリアクセスプログラム命令が途中で停止されないように適切な属性値をこれらのメモリ場所と関連づけることにより発生防止することができる。それにより不正動作を回避する安全ネットが提供されるが、最大最悪割込みレーテンシ低減の恩恵を得たければ、プログラマは早期停止をサポートできないこのようなメモリ場所を伴ういかなる複数メモリアクセスプログラム命令も含まれることを回避しなければならないことを意味する。
【０００７】
多様な異なる理由に対して格納された属性を複数メモリアクセスプログラム命令中の割込み動作の制御に使用できることが理解されるが、それはメモリ場所へのメモリアクセスが次のメモリアクセス時にシステムの動作を変えるようなメモリ場所であるかどうかを格納された属性が示す実施例に特に適している。このようなメモリ場所は“リードセンシティブ”である、すなわち、アクセス数が制御しているプログラムコード内に現れれるものでなければならないと考えることができる。
【０００８】
このような格納された属性がどのように使用されるかのより詳細な例は、メモリ場所がデバイスに関連する一つ以上のメモリ場所であるか、または一連のメモリアクセス内の予め定められた位置内でアクセスされなければならないメモリ場所であるかを、格納された属性が示すようなものである（例えば、デバイスメモリ場所（周辺等）またはプログラム内に現れるシーケンスでメモリアクセスを実施しなければならないメモリの強い順序付け（ｓｔｒｏｎｇｌｙ　ｏｒｄｅｒｅｄ）エリアとしてメモリマップ内に定義される）。
【０００９】
本技術はロード複数命令およびストア複数命令等の異なるタイプの複数メモリアクセスプログラム命令に応用できることが理解されるが、ロード複数命令に特に適している。
【００１０】
属性値は、それ自体の専用メモリまたはレジスタセット内等の、多様な異なる方法で格納することができるが、本発明の好ましい実施例は属性値を格納するように動作することができるメモリ管理ユニットを利用する。メモリ管理ユニットは、しばしば、場所のキャッシャブル性質、場所のライトバック状態等のメモリ場所に関連する多様な制御パラメータを格納するデータ処理システム内に設けられ、このようなメモリ管理ユニットを再使用して本技術に関連する属性値も格納することは効率的で有利である。
【００１１】
メモリ場所に関連する属性値に応じて複数メモリアクセスプログラム命令を早期に停止できるまたはできない動作モードについて前記したが、本発明の好ましい実施例は割込みコントローラが属性値に無関係にメモリアクセスシーケンスが完了するまで待つ異なる動作モードも提供する。このような動作はデバッグプログラムをシークする時に特に有用であり、不適切に使用される複数メモリアクセスプログラム命令により問題が生じているのではないか疑われる。
【００１２】
割込みが取り入れられた時のシステムの状態に応じて、途中で停止されている場合には複数メモリアクセスプログラム命令の再開始が必要となることもあることが理解される。したがって、本発明の好ましい実施例は複数メモリアクセスプログラム命令が完全に完了したかどうかに応じて変動する再開始プログラムカウンタ値を格納するように働く。割込みに関連する正規の再開始場所は変動しない。
【００１３】
もう一つの側面から、本発明はデータ処理方法を提供し、前記方法は、
多重メモリアクセスを指定する複数メモリアクセスプログラム命令に応答して、各メモリアドレス場所への一連のメモリアクセスを実施するステップと、
割込みをトリガーする割込み要求信号に応答して、
複数メモリアクセスプログラム命令が未決であって、動作を制御する前記メモリアドレス場所の少なくとも一つに関連する格納された属性値に応答する時に、
（ｉ）前記一連のメモリアクセスの途中で前記複数メモリアクセスプログラム命令を停止して前記割込みをトリガーするステップ、または、
（ｉｉ）前記一連のメモリアクセスが完了するのを待って前記割込みをトリガーするステップと、を含んでいる。
【００１４】
前記したように、最大最悪割込みレーテンシが低く保持される場合には、複数メモリアクセスプログラム命令はこのような複数メモリアクセスプログラム命令が早期に停止されることを許さない属性値を有するメモリ場所にアクセスするのに使用されないことが重要である。
【００１５】
したがって、本発明のもう一つの側面は、コンピュータプログラムのコンパイル中にコンパイラがこのようなメモリ場所を含む複数メモリアクセスプログラム命令を使用しないように、これらのメモリ場所を含む複数メモリアクセスプログラム命令の早期停止を許さない属性を有するメモリ場所に格納されたデータ値に関連する識別子を含むコンピュータプログラムを提供する。
【００１６】
正しく適用された前記した識別子を有するコンピュータプログラムは、コンパイルされると割込みレーテンシを害することなくコード密度の増加を達成することができる状況において複数メモリアクセスプログラム命令を使用する最適化が許され、複数メモリアクセスプログラム命令のこのような使用が最大最悪割込みレーテンシに悪影響を及ぼす状況を回避できることが理解される。このように書き込まれたプログラムは早期に停止できないもののカテゴリに入るいかなる複数メモリアクセスプログラム命令も含んではならない。このようなコンピュータプログラムの好ましい実施例はコンピュータプログラム内のデータタイプ文に関連する識別子を使用し、Ｃ言語で書かれたコンピュータプログラムに特によく適している。
【００１７】
本発明のもう一つの側面は請求項１から８のいずれか一項記載のデータ処理装置を制御するコンピュータプログラムを提供し、前記コンピュータプログラムは前記一連のメモリアクセスの途中で前記複数メモリアクセスプログラム命令の停止を許す属性値を格納しているメモリ場所に関連する一つ以上の複数メモリアクセスプログラム命令および一連のメモリアクセスの途中で複数メモリアクセスプログラム命令の停止を許さない属性値を有するメモリ場所への全メモリアクセスに関連する単一メモリアクセスプログラム命令を含んでいる。
【００１８】
【発明の実施の形態】
図１はキャッシュメモリ６、メモリ管理ユニット８およびｌｅｖｅｌ２メモリインターフェイス１０に接続されたプロセッサコア４を含むデータ処理装置２を示す。判り易くするために、このデータ処理装置２内の全要素は例示されていないことが理解される。
【００１９】
プロセッサコア４は、高速割込信号および正規割込信号等の、加えられた割込信号に応答し割込処理ルーチンのトリガーを制御する割込制御論理１０を含んでいる。プロセッサコア４は、複数メモリアクセスプログラム命令に続く多重メモリアクセス動作を含む、ロードおよびストア動作を制御するロードストアユニット１２も含んでいる。命令デコーダ１４およびレジスタバンク１６も例示されている。
【００２０】
ロードストアユニット１２内には、現在実施中の多重メモリアクセスが割込み受信時にそのメモリアクセス動作内に含まれるメモリ場所に関連する属性値に依存して早期停止されるかどうかを制御するように働く制御論理１８が設けられる。
【００２１】
動作において、プログラム命令はプロセッサコア４の動作を制御するのに使用されているコンピュータプログラムから命令デコーダにより受信される。プロセッサコア４はＡＲＭ命令セットを使用するＡＲＭプロセッサとすることができる。ロードアンドストア命令その他のデータ処理命令だけでなく、算術および論理命令等の、プロセッサコア４が応答することができる多くの異なるタイプのプログラム命令がある。本技術はＬＤＭおよびＳＴＭタイプの複数メモリアクセス命令に関連しており、したがって、異なるプログラム命令に関連するプロセッサコア４内のさまざまなハードウェア要素は例示されていない。ＬＤＭおよびＳＴＭ等の複数メモリアクセスプログラム命令を受信すると、命令デコーダはロードストアユニット１２へのメモリ要求を受信しておりそれは多重メモリアクセスメモリ要求であることを信号で知らせる。次に、ロードストアユニット１２は割込みが生じない限りこの命令を正規の方法でサービスする。このようなメモリ要求は典型的にアクセスされるデータ値がキャッシュメモリ６内に格納されるものであることを示すヒットが生じているかを調べるためにキャッシュメモリ６に対してなされる。メモリアクセスが許されることを保証しかつメモリアクセスに関連する他の制御パラメータを回復するためにメモリ管理ユニット８内でのチェックもなされる。メモリ管理ユニット８から回復されるパラメータにはアクセスされるメモリ場所がデバイスメモリ場所または強い順序付けメモリ場所として分類されるかどうかを示すこれらのメモリ場所に関連する属性値が含まれる。デバイスメモリ場所は典型的にＦＩＦＯ、周辺装置等のデバイスに関連している。強い順序付けメモリ場所はメモリシステムに対する制御レジスタと関連づけることができ、適切な動作を生じるためにメモリアクセスは制御プログラム内に現れるシーケンスで生じることが重要である。メモリ場所のデバイス分類および強い順序付け間の共通要因は、これらのメモリ場所へのメモリアクセスが後続メモリアクセスおよび後続システム動作を変えることがあることである。
【００２２】
メモリ管理ユニット８から読み出されるデバイスおよび強い順序付け属性値はロードストアユニット１２内の制御論理１８に供給される。制御論理１８はメモリアクセス要求が実施中でありかつそれは多重メモリアクセス要求であることを指定する命令デコーダからの信号も受信する。制御論理１８に通されるもう一つの信号はｌｅｖｅｌ２メモリインターフェイス１０から引き出される“ｐｏｉｎｔ　ｏｆ　ｎｏ　ｒｅｔｕｒｎ”信号である。この“ｐｏｉｎｔ　ｏｆ　ｎｏ　ｒｅｔｕｒｎ”信号はロードストアユニット１２内に保持される状態だけでなくｌｅｖｅｌ２メモリインターフェイス１０から戻される他の信号の組合せの形で提供することができるが、信号と状態の組合せはｌｅｖｅｌ２メモリインターフェイス１０の外部の状態が変化しているまたは変化するｌｅｖｅｌ２メモリインターフェイス１０内のポイントをメモリアクセスが通過していることを示すものとして制御論理１８によりデコードすることができる。ここで説明される特定の実施例の状況では、デバイスメモリ場所または強い順序付けメモリ場所であるメモリ場所はキャッシュできず、生じる場合は常にｌｅｖｅｌ２メモリインターフェイス１０を介してアクセスされることに注目しなければならない。この特定の実施例ではそうであるが、あらゆる状況において現在の技術に対して必要な要求条件ではない。
【００２３】
割込制御論理１０は高速割込信号および正規割込信号等の割込信号に応答して取り入れられる割込ベクトルをトリガーする。割込みに応答して、格納された割込ベクトル等を介して、割込処理をトリガーする標準機構を利用して割込み受信時に実施している複数メモリアクセスプログラム命令に関してここに記載されている修正を行うことができる。割込信号を受信すると、割込制御論理１０は“ｉｎｔｅｒｒｕｐｔ　ｐｅｎｄｉｎｇ”信号をロードストアユニット１２、より詳細にはその中の制御論理１８、に送る。次に、割込制御論理１０は開始される割込みをトリガーする前に制御論理１８により発生されロードストアユニット１２から戻される“ｔａｋｅ　ｉｎｔｅｒｒｕｐｔ”信号を待つ。本実施例における割込制御論理１０はデコードされる現在のプログラム命令がメモリアクセス要求であるかどうかにかかわらず割込未決信号を送り割込取入れ信号を待つ。
【００２４】
後述するように、現在のプログラム命令がメモリアクセス要求でなければ、割込取入れ信号はロードストアユニット１２により即座に戻すことができ割込制御論理１０は割込みをその正規の方法でトリガーするように進むことができる。割込制御論理１０は現在のプログラムカウンタＰＣ値をレジスタバンク１６内のレジスタＲ１４内に保存し（かつ、他の処理状態情報を他に保存し）次に受信されている割込信号に関連するメモリ内に格納されている割込ベクトルから読み出される新しいプログラムカウンタ値ＰＣをロードすることにより割込みをトリガーする。したがって、プログラム実行は割込処理ルーチンに強制される。正規のプログラム実行を再開始したい時は、レジスタＲ１４からの格納されたプログラムカウンタ値がプログラムカウンタＰＣに戻され実行が再開始される。
【００２５】
プログラム命令が途中で停止される場合にはプログラムカウンタ値はまだ更新されておらず、したがって、格納されたリターンプログラムカウンタ値が早期に停止されたプログラム命令を再開始することが理解される。逆に、実施中のプログラム命令が完了するまで割込みが取り入れられない場合には、プログラムカウンタ値はその命令に続いて増分されており、したがって、正規の処理は割込み処理が終了した後の次の命令で再開始する。
【００２６】
図２は制御論理１８により実施される処理動作を例示しているフロー図である。この処理は実際上組合せ論理のアレイにより並列に実施されるが、判り易くするために図２には逐次フロー図として例示されていることが理解される。ステップ２０において、処理は割込制御論理１０から割込未決信号が受信されるのを待つ。ステップ２２において、デコードされている現在の命令がメモリアクセス要求命令であり、したがって、現在実施中の命令はこのタイプでありそれは早期に停止される可能性があることを命令デコーダ１４が示しているかどうかが決定される。ステップ２２における決定がメモリアクセス要求は現在実施中ではないということであれば、処理はステップ２４に進みそこで割込取入信号が発生され割込制御論理１０に戻されて割込制御論理をトリガーし割込処理プロセスを開始する。
【００２７】
ステップ２２における決定がメモリアクセス要求命令は実施中であるということであれば、ステップ２６はそのメモリアクセス動作が多重メモリアクセス動作であるかどうかを決定する。ステップ２６における決定が実施中のメモリアクセスは多重メモリアクセスではないということであれば、処理は次にステップ２４に進みレベル２インターフェイスへの信号を介してアクセスが停止するか、あるいは処理はステップ２８に進む。
【００２８】
ステップ２８において、ロードストアユニット１２内の状態とｌｅｖｅｌ２からメモリインターフェイス１０に戻された信号との組合せから、問題とする多重メモリアクセス動作に対して非復帰点が通過しているか、すなわち、レベル２メモリインターフェイスの外部を信号が通過しておりその結果レベル２メモリインターフェイスの外部の状態が変化しており、したがって、さらに考慮することなく多重メモリアクセス動作を早期に停止させることはできないかどうかが決定される。非復帰点が通過していなければ、処理はステップ２４に進むことができ、そうでなければステップ３０に進む。
【００２９】
ステップ３０において、サービスされる多重メモリアクセス要求に関連するメモリ管理ユニット８から読み出された属性値は、多重メモリアクセスがデバイスメモリ場所または強い順序付けメモリ場所として分類されるメモリ場所に関連していることを示すかどうかが決定される。このような分類は、存在する場合には、早期停止を除外する。戻された属性がメモリ場所はデバイスメモリ場所または強い順序付けメモリ場所であることを示さない場合には、処理はステップ２４に進み、そうでなければ処理はステップ３２に進みそこで処理は実施中のメモリ要求が終了するのを待った後でステップ２４に進む。
【００３０】
図３の全体アクションはメモリアクセス命令がｌｅｖｅｌ２メモリインターフェイス１０外部に影響を及ぼしかつ関与するメモリ場所に関連する属性値がこれらのメモリ場所は“ｒｅａｄ　ｓｅｎｓｉｔｉｖｅ”または“ｗｒｉｔｅ　ｓｅｎｓｉｔｉｖｅ”であることを示す場合を除いて、複数メモリアクセス命令を含む、メモリアクセス命令が早期に停止されるのを許すことであることが理解される（見方を変えれば、これらのメモリ場所へのアクセス数は制御プログラム内に現れるものと同じであることを保証する必要がある）。これらの状況では、メモリアクセスは早期に停止されずシステムは割込みが発生される前にそれらが終了するのを待つ。
【００３１】
図３は割込制御論理１０により実施されていると考えられる処理動作を略示するフロー図である。ステップ３４において、プロセスは割込信号が受信されるのを待つ。割込信号が受信されると、ステップ３６において割込未決信号がロードストアユニット１２に通される。次に、ステップ３８において、プロセスはロードストアユニット１２から割込取入信号が受信し戻されるのを待つ。ロードストアユニット１２から割込取入信号が受信されていると処理はステップ４０に進み、そこでレジスタバンクＲ１６内に格納された現在プログラムカウンタＰＣ値はレジスタＲ１４に格納され、割込ベクトルがプログラムカウンタレジスタ内に押し込められて再び処理を割込処理プログラムに向ける。
【００３２】
図１およびその動作の前記説明には複数メモリアクセスプログラム命令がリードメモリ場所属性値に従って早期に停止されるまたは早期に停止されない動作モードが含まれている。しかしながら、本装置はこのような複数メモリアクセスプログラム命令が決して早期に停止されないもう一つのモードでも動作することができる。この動作モードは、図２のステップ３０が存在せず複数メモリアクセス命令であってそれらの非復帰点を超える全てのメモリアクセスプログラムがステップ３２に通されて、ステップ２４に達して割込取入信号が発生される前に、メモリアクセスが終了するのを待つように制御論理１８の動作を修正して達成することができる。このような代替動作モードは制御論理１８において外部から加えられる制御信号または制御レジスタ内の登録された制御信号等により強行することができる。このような動作モードはデバッギング状況において、例えば、割込レーテンシが問題ではなく不適切な複数メモリアクセスプログラム命令により問題が生じているかどうかを調べたい時に特に有用である。
【００３３】
前記したデータ処理装置で実行するコンピュータプログラムがこの技術から利益を得るにはある特性を有するのが好ましいことが理解される。特に、図１に記載された装置はデバイスまたは強い順序付けメモリ場所ではない複数メモリアクセスプログラム命令の早期停止を行うことができるが、このようなメモリ場所へのメモリアクセス命令の早期停止は防止する。早期停止できないこのような複数メモリアクセスプログラム命令がコンピュータプログラム内に存在する場合には、それらは最大最悪割込レーテンシを不利な方法で制御するように働くことがある。したがって、本発明を利用しようとするコンピュータプログラムはデバイスまたは強い順序付けメモリ場所への複数メモリアクセスプログラム命令を含まないように書き込まれなければならない。
【００３４】
このようなコンピュータプログラムを提供する一つの方法は、デバイスまたは強い順序付けメモリ場所であるメモリ場所の識別子またはメモリ場所へのポインターまたはメモリ場所に関するデータタイプをコンピュータプログラム内に含めることである。Ｃ言語コンピュータプログラムとすることができるコンピュータプログラム内にこのような識別子が含まれていると、そのコンピュータプログラムで動作するコンパイラは識別子により区切られるメモリ場所を含むいかなる複数メモリアクセスプログラム命令も発生しないように制御することができる。逆に、複数メモリアクセスプログラム命令の早期停止が図１の装置により許される状況では、コード密度の結果を改善するのに複数メモリアクセスプログラム命令を使用することができる。
【００３５】
Ｃコンピュータプログラム言語を利用するより詳細な例では、デバイスまたは強い順序付けメモリ場所であるメモリ場所へのポインターに関連するデータタイプは“揮発性”として与えられることがある。ＡＲＭ社製で公に入手できるコンパイラプログラムは“揮発性”として識別されるメモリ場所へのメモリアクセスがコンパイラにより発生されるＬＤＭまたはＳＴＭ命令内に含まれないように動作する。
【００３６】
添付図を参照しながら本発明の実施例について説明してきたが、本発明はこれらの厳密な実施例に限定はされず、当業者ならば添付特許請求の範囲により明示される本発明の範囲および精神から逸脱することなくさまざまな変更および修正を行えることが理解される。
【図面の簡単な説明】
【図１】割込制御論理を含むデータ処理装置を示す略図である。
【図２】割込動作制御において実施される処理動作を略示するフロー図である。
【図３】割込処理を略示するフロー図である。
【符号の説明】
２　データ処理装置
４　プロセッサコア
６　キャッシュメモリ
８　メモリ管理ユニット
１０　ｌｅｖｅｌ２メモリインターフェイス
１２　ロードストアユニット
１４　命令デコーダ
１６　レジスタバンク
１８　制御論理
【図１】
2004110786.tif 000003
【図２】
2004110786.tif 000004
【図３】
2004110786.tif 000005