JP4205506B2 - データ処理装置およびデータ処理方法 - Google Patents
データ処理装置およびデータ処理方法 Download PDFInfo
- Publication number
- JP4205506B2 JP4205506B2 JP2003202172A JP2003202172A JP4205506B2 JP 4205506 B2 JP4205506 B2 JP 4205506B2 JP 2003202172 A JP2003202172 A JP 2003202172A JP 2003202172 A JP2003202172 A JP 2003202172A JP 4205506 B2 JP4205506 B2 JP 4205506B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- series
- interrupt
- memory access
- access program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000003672 processing method Methods 0.000 title claims description 3
- 238000000034 method Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 18
- 230000004044 response Effects 0.000 claims description 15
- 230000006399 behavior Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 239000013598 vector Substances 0.000 description 4
- 230000002411 adverse Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002028 premature Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Executing Machine-Instructions (AREA)
Description
【発明の属する技術分野】
本発明はデータ処理の分野に関する。特に、本発明はマルチプル(複数)メモリアクセスプログラム命令を有するデータ処理システム内の割込み処理に関する。
【0002】
【従来の技術】
複数メモリアクセスプログラム命令をサポートする、ARMマイクロプロセッサアーキテクチュアに基づくような、データ処理システムを提供することが知られている。この種のARM命令の例はLDMおよびSTMであり、それぞれ、一連のメモリ場所から各プログラムレジスタ列にデータ値をロードするか、または一連のプログラムレジスタからのデータを各メモリ場所列に格納する。このような複数メモリアクセス命令を提供することにより、コードサイズを有利に低減する能力が得られる。しかしながら、このような複数メモリアクセスプログラム命令に付随する問題点として、典型的に完了するのに多くの処理サイクルを要することがあるため、割込みレーテンシに悪影響を及ぼすことがある。
【0003】
マイクロプロセッサ等のデータ処理システムがプログラムを実行している時に、割込み機構を提供して非同期、しばしば外部、信号が予め実行されているプログラムの替わりに割込み処理ルーチンの実行をトリガーできることが知られている。このような割込み機構は多くのデータ処理システムの基本的部分であり、重要な性能パラメータはシステムの割込みレーテンシである。割込みレーテンシは割込み信号の受信後割込み処理コードの実行を開始するのにシステムが要する最悪時間と見なすことができる。この状況において、複数メモリアクセスプログラム命令を提供することは完了するのに多くの処理サイクルを要することがあり(例えば、最悪状況は多数のキャッシュミスおよびTLBミス数百処理サイクルを含む)システムの最悪割込みレーテンシの確立における支配的な影響力となることがある。ある状況では、最大割込みレーテンシがこのような複数メモリアクセス命令により支配されるシステムは受け入れられないことがある。
【0004】
【発明が解決しようとする課題】
メモリアクセスがある数よりも多く一緒に複数メモリアクセスプログラム命令内に連接されないようにされた最適化を制限する制御パラメータを含むコンパイラを提供することが知られている。また、複数メモリアクセスプログラム命令の使用を完全に抑制するように働くことができるコンパイラ制御オプションを提供することも知られている。
【0005】
【課題を解決するための手段】
一つの側面から見て、本発明はデータ処理装置を提供し、前記装置は、
多重メモリアクセスを指定する複数メモリアクセスプログラム命令に応答して、各メモリアドレス場所への一連のメモリアクセスを実施するように動作することができる処理論理と、
割込み要求信号に応答して割込みをトリガーするように動作することができる割込みコントローラと、
複数メモリアクセスプログラム命令が未決である時に、前記メモリアドレス場所の少なくとも一つに関連する格納された属性値に応答して、前記割込みコントローラを制御して、
(i)前記一連のメモリアクセスの途中で前記複数メモリアクセスプログラム命令を停止させて前記割込みをトリガーする、または、
(ii)前記一連のメモリアクセスが完了するまで待って前記割込みをトリガーする、ように動作する制御論理とを含んでいる。
【0006】
本発明は、現在実行しているメモリアクセスプログラム命令(単一メモリアクセスプログラム命令であれ複数メモリアクセスプログラム命令であれ)が完了するまで待つ正規の制御規準は安全ではあるが、複数メモリアクセスプログラム命令がその実施途中で停止し次にいかなる悪影響もなくその始めから安全に再開始されることがある状況が沢山あることを認識している。特に、本発明はこのような複数メモリアクセスプログラム命令が途中で安全に停止できるまたはできない状況を予め定められたメモリ場所またはそのエリア上にマッピングできることを認識している。したがって、メモリ場所に関連する属性を使用してそのメモリ場所にアクセスする複数メモリアクセスプログラム命令を、割込みが受信されていて割込み処理をトリガーする必要がある時に、途中で安全に停止できるかどうかを制御するのに使用することができる。それにより、このような複数メモリアクセスプログラム命令に関連することがある不利を招く長い割込みレーテンシを回避する機構を安全に提供しながら、複数メモリアクセスプログラム命令を使用してコード密度改善の利点が得られる。さらに、センシティブであると読み出されるメモリ場所を含むメモリアクセス等の、途中で複数メモリアクセスプログラム命令を停止することが安全ではないこれらの状況は、これらのメモリ場所を含む複数メモリアクセスプログラム命令が途中で停止されないように適切な属性値をこれらのメモリ場所と関連づけることにより発生防止することができる。それにより不正動作を回避する安全ネットが提供されるが、最大最悪割込みレーテンシ低減の恩恵を得たければ、プログラマは早期停止をサポートできないこのようなメモリ場所を伴ういかなる複数メモリアクセスプログラム命令も含まれることを回避しなければならないことを意味する。
【0007】
多様な異なる理由に対して格納された属性を複数メモリアクセスプログラム命令中の割込み動作の制御に使用できることが理解されるが、それはメモリ場所へのメモリアクセスが次のメモリアクセス時にシステムの動作を変えるようなメモリ場所であるかどうかを格納された属性が示す実施例に特に適している。このようなメモリ場所は“リードセンシティブ”である、すなわち、アクセス数が制御しているプログラムコード内に現れれるものでなければならないと考えることができる。
【0008】
このような格納された属性がどのように使用されるかのより詳細な例は、メモリ場所がデバイスに関連する一つ以上のメモリ場所であるか、または一連のメモリアクセス内の予め定められた位置内でアクセスされなければならないメモリ場所であるかを、格納された属性が示すようなものである(例えば、デバイスメモリ場所(周辺等)またはプログラム内に現れるシーケンスでメモリアクセスを実施しなければならないメモリの強い順序付け(strongly ordered)エリアとしてメモリマップ内に定義される)。
【0009】
本技術はロード複数命令およびストア複数命令等の異なるタイプの複数メモリアクセスプログラム命令に応用できることが理解されるが、ロード複数命令に特に適している。
【0010】
属性値は、それ自体の専用メモリまたはレジスタセット内等の、多様な異なる方法で格納することができるが、本発明の好ましい実施例は属性値を格納するように動作することができるメモリ管理ユニットを利用する。メモリ管理ユニットは、しばしば、場所のキャッシャブル性質、場所のライトバック状態等のメモリ場所に関連する多様な制御パラメータを格納するデータ処理システム内に設けられ、このようなメモリ管理ユニットを再使用して本技術に関連する属性値も格納することは効率的で有利である。
【0011】
メモリ場所に関連する属性値に応じて複数メモリアクセスプログラム命令を早期に停止できるまたはできない動作モードについて前記したが、本発明の好ましい実施例は割込みコントローラが属性値に無関係にメモリアクセスシーケンスが完了するまで待つ異なる動作モードも提供する。このような動作はデバッグプログラムをシークする時に特に有用であり、不適切に使用される複数メモリアクセスプログラム命令により問題が生じているのではないか疑われる。
【0012】
割込みが取り入れられた時のシステムの状態に応じて、途中で停止されている場合には複数メモリアクセスプログラム命令の再開始が必要となることもあることが理解される。したがって、本発明の好ましい実施例は複数メモリアクセスプログラム命令が完全に完了したかどうかに応じて変動する再開始プログラムカウンタ値を格納するように働く。割込みに関連する正規の再開始場所は変動しない。
【0013】
もう一つの側面から、本発明はデータ処理方法を提供し、前記方法は、
多重メモリアクセスを指定する複数メモリアクセスプログラム命令に応答して、各メモリアドレス場所への一連のメモリアクセスを実施するステップと、
割込みをトリガーする割込み要求信号に応答して、
複数メモリアクセスプログラム命令が未決であって、動作を制御する前記メモリアドレス場所の少なくとも一つに関連する格納された属性値に応答する時に、
(i)前記一連のメモリアクセスの途中で前記複数メモリアクセスプログラム命令を停止して前記割込みをトリガーするステップ、または、
(ii)前記一連のメモリアクセスが完了するのを待って前記割込みをトリガーするステップと、を含んでいる。
【0014】
前記したように、最大最悪割込みレーテンシが低く保持される場合には、複数メモリアクセスプログラム命令はこのような複数メモリアクセスプログラム命令が早期に停止されることを許さない属性値を有するメモリ場所にアクセスするのに使用されないことが重要である。
【0015】
したがって、本発明のもう一つの側面は、コンピュータプログラムのコンパイル中にコンパイラがこのようなメモリ場所を含む複数メモリアクセスプログラム命令を使用しないように、これらのメモリ場所を含む複数メモリアクセスプログラム命令の早期停止を許さない属性を有するメモリ場所に格納されたデータ値に関連する識別子を含むコンピュータプログラムを提供する。
【0016】
正しく適用された前記した識別子を有するコンピュータプログラムは、コンパイルされると割込みレーテンシを害することなくコード密度の増加を達成することができる状況において複数メモリアクセスプログラム命令を使用する最適化が許され、複数メモリアクセスプログラム命令のこのような使用が最大最悪割込みレーテンシに悪影響を及ぼす状況を回避できることが理解される。このように書き込まれたプログラムは早期に停止できないもののカテゴリに入るいかなる複数メモリアクセスプログラム命令も含んではならない。このようなコンピュータプログラムの好ましい実施例はコンピュータプログラム内のデータタイプ文に関連する識別子を使用し、C言語で書かれたコンピュータプログラムに特によく適している。
【0017】
本発明のもう一つの側面は請求項1から8のいずれか一項記載のデータ処理装置を制御するコンピュータプログラムを提供し、前記コンピュータプログラムは前記一連のメモリアクセスの途中で前記複数メモリアクセスプログラム命令の停止を許す属性値を格納しているメモリ場所に関連する一つ以上の複数メモリアクセスプログラム命令および一連のメモリアクセスの途中で複数メモリアクセスプログラム命令の停止を許さない属性値を有するメモリ場所への全メモリアクセスに関連する単一メモリアクセスプログラム命令を含んでいる。
【0018】
【発明の実施の形態】
図1はキャッシュメモリ6、メモリ管理ユニット8およびlevel2メモリインターフェイス10に接続されたプロセッサコア4を含むデータ処理装置2を示す。判り易くするために、このデータ処理装置2内の全要素は例示されていないことが理解される。
【0019】
プロセッサコア4は、高速割込信号および正規割込信号等の、加えられた割込信号に応答し割込処理ルーチンのトリガーを制御する割込制御論理10を含んでいる。プロセッサコア4は、複数メモリアクセスプログラム命令に続く多重メモリアクセス動作を含む、ロードおよびストア動作を制御するロードストアユニット12も含んでいる。命令デコーダ14およびレジスタバンク16も例示されている。
【0020】
ロードストアユニット12内には、現在実施中の多重メモリアクセスが割込み受信時にそのメモリアクセス動作内に含まれるメモリ場所に関連する属性値に依存して早期停止されるかどうかを制御するように働く制御論理18が設けられる。
【0021】
動作において、プログラム命令はプロセッサコア4の動作を制御するのに使用されているコンピュータプログラムから命令デコーダにより受信される。プロセッサコア4はARM命令セットを使用するARMプロセッサとすることができる。ロードアンドストア命令その他のデータ処理命令だけでなく、算術および論理命令等の、プロセッサコア4が応答することができる多くの異なるタイプのプログラム命令がある。本技術はLDMおよびSTMタイプの複数メモリアクセス命令に関連しており、したがって、異なるプログラム命令に関連するプロセッサコア4内のさまざまなハードウェア要素は例示されていない。LDMおよびSTM等の複数メモリアクセスプログラム命令を受信すると、命令デコーダはロードストアユニット12へのメモリ要求を受信しておりそれは多重メモリアクセスメモリ要求であることを信号で知らせる。次に、ロードストアユニット12は割込みが生じない限りこの命令を正規の方法でサービスする。このようなメモリ要求は典型的にアクセスされるデータ値がキャッシュメモリ6内に格納されるものであることを示すヒットが生じているかを調べるためにキャッシュメモリ6に対してなされる。メモリアクセスが許されることを保証しかつメモリアクセスに関連する他の制御パラメータを回復するためにメモリ管理ユニット8内でのチェックもなされる。メモリ管理ユニット8から回復されるパラメータにはアクセスされるメモリ場所がデバイスメモリ場所または強い順序付けメモリ場所として分類されるかどうかを示すこれらのメモリ場所に関連する属性値が含まれる。デバイスメモリ場所は典型的にFIFO、周辺装置等のデバイスに関連している。強い順序付けメモリ場所はメモリシステムに対する制御レジスタと関連づけることができ、適切な動作を生じるためにメモリアクセスは制御プログラム内に現れるシーケンスで生じることが重要である。メモリ場所のデバイス分類および強い順序付け間の共通要因は、これらのメモリ場所へのメモリアクセスが後続メモリアクセスおよび後続システム動作を変えることがあることである。
【0022】
メモリ管理ユニット8から読み出されるデバイスおよび強い順序付け属性値はロードストアユニット12内の制御論理18に供給される。制御論理18はメモリアクセス要求が実施中でありかつそれは多重メモリアクセス要求であることを指定する命令デコーダからの信号も受信する。制御論理18に通されるもう一つの信号はlevel2メモリインターフェイス10から引き出される“point of no return”信号である。この“point of no return”信号はロードストアユニット12内に保持される状態だけでなくlevel2メモリインターフェイス10から戻される他の信号の組合せの形で提供することができるが、信号と状態の組合せはlevel2メモリインターフェイス10の外部の状態が変化しているまたは変化するlevel2メモリインターフェイス10内のポイントをメモリアクセスが通過していることを示すものとして制御論理18によりデコードすることができる。ここで説明される特定の実施例の状況では、デバイスメモリ場所または強い順序付けメモリ場所であるメモリ場所はキャッシュできず、生じる場合は常にlevel2メモリインターフェイス10を介してアクセスされることに注目しなければならない。この特定の実施例ではそうであるが、あらゆる状況において現在の技術に対して必要な要求条件ではない。
【0023】
割込制御論理10は高速割込信号および正規割込信号等の割込信号に応答して取り入れられる割込ベクトルをトリガーする。割込みに応答して、格納された割込ベクトル等を介して、割込処理をトリガーする標準機構を利用して割込み受信時に実施している複数メモリアクセスプログラム命令に関してここに記載されている修正を行うことができる。割込信号を受信すると、割込制御論理10は“interrupt pending”信号をロードストアユニット12、より詳細にはその中の制御論理18、に送る。次に、割込制御論理10は開始される割込みをトリガーする前に制御論理18により発生されロードストアユニット12から戻される“take interrupt”信号を待つ。本実施例における割込制御論理10はデコードされる現在のプログラム命令がメモリアクセス要求であるかどうかにかかわらず割込未決信号を送り割込取入れ信号を待つ。
【0024】
後述するように、現在のプログラム命令がメモリアクセス要求でなければ、割込取入れ信号はロードストアユニット12により即座に戻すことができ割込制御論理10は割込みをその正規の方法でトリガーするように進むことができる。割込制御論理10は現在のプログラムカウンタPC値をレジスタバンク16内のレジスタR14内に保存し(かつ、他の処理状態情報を他に保存し)次に受信されている割込信号に関連するメモリ内に格納されている割込ベクトルから読み出される新しいプログラムカウンタ値PCをロードすることにより割込みをトリガーする。したがって、プログラム実行は割込処理ルーチンに強制される。正規のプログラム実行を再開始したい時は、レジスタR14からの格納されたプログラムカウンタ値がプログラムカウンタPCに戻され実行が再開始される。
【0025】
プログラム命令が途中で停止される場合にはプログラムカウンタ値はまだ更新されておらず、したがって、格納されたリターンプログラムカウンタ値が早期に停止されたプログラム命令を再開始することが理解される。逆に、実施中のプログラム命令が完了するまで割込みが取り入れられない場合には、プログラムカウンタ値はその命令に続いて増分されており、したがって、正規の処理は割込み処理が終了した後の次の命令で再開始する。
【0026】
図2は制御論理18により実施される処理動作を例示しているフロー図である。この処理は実際上組合せ論理のアレイにより並列に実施されるが、判り易くするために図2には逐次フロー図として例示されていることが理解される。ステップ20において、処理は割込制御論理10から割込未決信号が受信されるのを待つ。ステップ22において、デコードされている現在の命令がメモリアクセス要求命令であり、したがって、現在実施中の命令はこのタイプでありそれは早期に停止される可能性があることを命令デコーダ14が示しているかどうかが決定される。ステップ22における決定がメモリアクセス要求は現在実施中ではないということであれば、処理はステップ24に進みそこで割込取入信号が発生され割込制御論理10に戻されて割込制御論理をトリガーし割込処理プロセスを開始する。
【0027】
ステップ22における決定がメモリアクセス要求命令は実施中であるということであれば、ステップ26はそのメモリアクセス動作が多重メモリアクセス動作であるかどうかを決定する。ステップ26における決定が実施中のメモリアクセスは多重メモリアクセスではないということであれば、処理は次にステップ24に進みレベル2インターフェイスへの信号を介してアクセスが停止するか、あるいは処理はステップ28に進む。
【0028】
ステップ28において、ロードストアユニット12内の状態とlevel2からメモリインターフェイス10に戻された信号との組合せから、問題とする多重メモリアクセス動作に対して非復帰点が通過しているか、すなわち、レベル2メモリインターフェイスの外部を信号が通過しておりその結果レベル2メモリインターフェイスの外部の状態が変化しており、したがって、さらに考慮することなく多重メモリアクセス動作を早期に停止させることはできないかどうかが決定される。非復帰点が通過していなければ、処理はステップ24に進むことができ、そうでなければステップ30に進む。
【0029】
ステップ30において、サービスされる多重メモリアクセス要求に関連するメモリ管理ユニット8から読み出された属性値は、多重メモリアクセスがデバイスメモリ場所または強い順序付けメモリ場所として分類されるメモリ場所に関連していることを示すかどうかが決定される。このような分類は、存在する場合には、早期停止を除外する。戻された属性がメモリ場所はデバイスメモリ場所または強い順序付けメモリ場所であることを示さない場合には、処理はステップ24に進み、そうでなければ処理はステップ32に進みそこで処理は実施中のメモリ要求が終了するのを待った後でステップ24に進む。
【0030】
図3の全体アクションはメモリアクセス命令がlevel2メモリインターフェイス10外部に影響を及ぼしかつ関与するメモリ場所に関連する属性値がこれらのメモリ場所は“read sensitive”または“write sensitive”であることを示す場合を除いて、複数メモリアクセス命令を含む、メモリアクセス命令が早期に停止されるのを許すことであることが理解される(見方を変えれば、これらのメモリ場所へのアクセス数は制御プログラム内に現れるものと同じであることを保証する必要がある)。これらの状況では、メモリアクセスは早期に停止されずシステムは割込みが発生される前にそれらが終了するのを待つ。
【0031】
図3は割込制御論理10により実施されていると考えられる処理動作を略示するフロー図である。ステップ34において、プロセスは割込信号が受信されるのを待つ。割込信号が受信されると、ステップ36において割込未決信号がロードストアユニット12に通される。次に、ステップ38において、プロセスはロードストアユニット12から割込取入信号が受信し戻されるのを待つ。ロードストアユニット12から割込取入信号が受信されていると処理はステップ40に進み、そこでレジスタバンクR16内に格納された現在プログラムカウンタPC値はレジスタR14に格納され、割込ベクトルがプログラムカウンタレジスタ内に押し込められて再び処理を割込処理プログラムに向ける。
【0032】
図1およびその動作の前記説明には複数メモリアクセスプログラム命令がリードメモリ場所属性値に従って早期に停止されるまたは早期に停止されない動作モードが含まれている。しかしながら、本装置はこのような複数メモリアクセスプログラム命令が決して早期に停止されないもう一つのモードでも動作することができる。この動作モードは、図2のステップ30が存在せず複数メモリアクセス命令であってそれらの非復帰点を超える全てのメモリアクセスプログラムがステップ32に通されて、ステップ24に達して割込取入信号が発生される前に、メモリアクセスが終了するのを待つように制御論理18の動作を修正して達成することができる。このような代替動作モードは制御論理18において外部から加えられる制御信号または制御レジスタ内の登録された制御信号等により強行することができる。このような動作モードはデバッギング状況において、例えば、割込レーテンシが問題ではなく不適切な複数メモリアクセスプログラム命令により問題が生じているかどうかを調べたい時に特に有用である。
【0033】
前記したデータ処理装置で実行するコンピュータプログラムがこの技術から利益を得るにはある特性を有するのが好ましいことが理解される。特に、図1に記載された装置はデバイスまたは強い順序付けメモリ場所ではない複数メモリアクセスプログラム命令の早期停止を行うことができるが、このようなメモリ場所へのメモリアクセス命令の早期停止は防止する。早期停止できないこのような複数メモリアクセスプログラム命令がコンピュータプログラム内に存在する場合には、それらは最大最悪割込レーテンシを不利な方法で制御するように働くことがある。したがって、本発明を利用しようとするコンピュータプログラムはデバイスまたは強い順序付けメモリ場所への複数メモリアクセスプログラム命令を含まないように書き込まれなければならない。
【0034】
このようなコンピュータプログラムを提供する一つの方法は、デバイスまたは強い順序付けメモリ場所であるメモリ場所の識別子またはメモリ場所へのポインターまたはメモリ場所に関するデータタイプをコンピュータプログラム内に含めることである。C言語コンピュータプログラムとすることができるコンピュータプログラム内にこのような識別子が含まれていると、そのコンピュータプログラムで動作するコンパイラは識別子により区切られるメモリ場所を含むいかなる複数メモリアクセスプログラム命令も発生しないように制御することができる。逆に、複数メモリアクセスプログラム命令の早期停止が図1の装置により許される状況では、コード密度の結果を改善するのに複数メモリアクセスプログラム命令を使用することができる。
【0035】
Cコンピュータプログラム言語を利用するより詳細な例では、デバイスまたは強い順序付けメモリ場所であるメモリ場所へのポインターに関連するデータタイプは“揮発性”として与えられることがある。ARM社製で公に入手できるコンパイラプログラムは“揮発性”として識別されるメモリ場所へのメモリアクセスがコンパイラにより発生されるLDMまたはSTM命令内に含まれないように動作する。
【0036】
添付図を参照しながら本発明の実施例について説明してきたが、本発明はこれらの厳密な実施例に限定はされず、当業者ならば添付特許請求の範囲により明示される本発明の範囲および精神から逸脱することなくさまざまな変更および修正を行えることが理解される。
【図面の簡単な説明】
【図1】割込制御論理を含むデータ処理装置を示す略図である。
【図2】割込動作制御において実施される処理動作を略示するフロー図である。
【図3】割込処理を略示するフロー図である。
【符号の説明】
2 データ処理装置
4 プロセッサコア
6 キャッシュメモリ
8 メモリ管理ユニット
10 level2メモリインターフェイス
12 ロードストアユニット
14 命令デコーダ
16 レジスタバンク
18 制御論理
Claims (15)
- データ処理装置であって、前記装置は、
多重メモリアクセスを指定する複数メモリアクセスプログラム命令に応答して各メモリアドレス場所への一連のメモリアクセスを実施するように動作する処理論理と、
割込要求信号に応答して割込みをトリガーするように動作する割込コントローラと、
複数メモリアクセスプログラム命令が未決である時に前記メモリアドレス場所の少なくとも一つに関連する格納された属性値に応答して前記割込コントローラを制御して、
(i)前記一連のメモリアクセスの途中で前記複数メモリアクセスプログラム命令を停止して前記割込みをトリガーする、または、
(ii)前記一連のメモリアクセスが完了するまで待って前記割込みをトリガーする、制御論理と、
を含むデータ処理装置。 - 請求項1記載の装置であって、前記格納された属性は前記メモリ場所へのメモリアクセスが後続メモリアクセス時に動作を変えるようなメモリ場所であるかどうかを示す装置。
- 請求項1記載の装置であって、前記格納された属性はメモリ場所が、
デバイスに関連するメモリ場所、
一連のメモリアクセス内の予め定められた位置においてアクセスされなければならないメモリ場所、
の一つ以上であるかどうかを示す装置。 - 請求項1記載の装置であって、前記複数メモリアクセスプログラム命令は、
(i)そこから格納された値がレジスタバンク内の一連のレジスタに格納される一連のメモリ場所を指定するロード複数命令、および、
(ii)そこから格納された値が一連のメモリ場所に格納されるレジスタバンク内の一連のレジスタを指定するストア複数命令、
の一方である装置。 - 請求項1記載の装置であって、前記属性値を格納するように動作するメモリ管理ユニットを含む装置。
- 請求項1記載の装置であって、前記制御論理は異なる動作モードで動作して前記一連のメモリアクセスが完了するまで前記割込コントローラを待たせ前記格納された属性値に無関係に前記割込みをトリガーするように制御することができる装置。
- 請求項1記載の装置であって、前記割込コントローラは割込みに続いてそれからプログラム実行を再開始しなければならない再開始プログラムカウンタ値を格納するように動作することができ、前記再開始プログラムカウンタ値は、
(i)前記複数メモリアクセスプログラム命令が前記一連のメモリアクセスの途中で停止された時は前記複数メモリアクセスプログラム命令により、あるいは、
(ii)前記一連のメモリアクセスが完了するのを許される時は前記複数メモリアクセスプログラム命令に続く命令により、
プログラム実行を再開始するように働く装置。 - データ処理方法であって、前記方法は、
多重メモリアクセスを指定する複数メモリアクセスプログラム命令に応答して各メモリアドレス場所への一連のメモリアクセスを実施するステップと、
割込要求信号に応答して割込みをトリガーするステップと、を含み、
複数メモリアクセスプログラム命令が未決である時に前記メモリアドレス場所の少なくとも一つに関連する格納された属性値に応答して動作を制御して、
(i)前記一連のメモリアクセスの途中で前記複数メモリアクセスプログラム命令を停止して前記割込みをトリガーする、または、
(ii)前記一連のメモリアクセスが完了するまで待って前記割込みをトリガーする、方法。 - 請求項8記載の方法であって、前記格納された属性はメモリ場所へのメモリアクセスが後続メモリアクセス時に動作を変えるようなメモリ場所であるかどうかを示す方法。
- 請求項8記載の方法であって、前記格納された属性はメモリ場所が、
デバイスに関連するメモリ場所、
一連のメモリアクセス内の予め定められた位置においてアクセスされなければならないメモリ場所、
の一つ以上であるかどうかを示す方法。 - 請求項8記載の方法であって、前記複数メモリアクセスプログラム命令は、
(i)そこから格納された値がレジスタバンク内の一連のレジスタに格納される一連のメモリ場所を指定するロード複数命令、および、
(ii)そこから格納された値が一連のメモリ場所に格納されるレジスタバンク内の一連のレジスタを指定するストア複数命令、
の一方である方法。 - 請求項8記載の方法であって、前記属性値を格納するように動作するメモリ管理ユニットを含む方法。
- 請求項8記載の方法であって、前記制御論理は異なる動作モードで動作して前記一連のメモリアクセスが完了するまで前記割込コントローラを待たせ前記格納された属性値に無関係に前記割込みをトリガーするように制御することができる方法。
- 請求項8記載の方法であって、前記割込コントローラは割込みに続いてそれからプログラム実行を再開始しなければならない再開始プログラムカウンタ値を格納するように動作することができ、前記再開始プログラムカウンタ値は、
(i)前記複数メモリアクセスプログラム命令が前記一連のメモリアクセスの途中で停止された時は前記複数メモリアクセスプログラム命令により、あるいは、
(ii)前記一連のメモリアクセスが完了するのを許される時は前記複数メモリアクセスプログラム命令に続く命令により、
プログラム実行を再開始するように働く方法。 - 請求項1記載のデータ処理装置を制御するコンピュータプログラムであって、前記一連のメモリアクセスの途中で前記複数メモリアクセスプログラム命令の停止を許す格納された属性値を有するメモリ場所に関連する一つ以上の複数メモリアクセスプログラム命令、および一連のメモリアクセスの途中で複数メモリアクセスプログラム命令の停止を許さない属性値を有するメモリ場所への全メモリアクセスに関連する単一メモリアクセスプログラム命令を有するコンピュータプログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0221465A GB2392998B (en) | 2002-09-16 | 2002-09-16 | Handling interrupts during multiple access program instructions |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004110786A JP2004110786A (ja) | 2004-04-08 |
JP4205506B2 true JP4205506B2 (ja) | 2009-01-07 |
Family
ID=9944153
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003202172A Expired - Lifetime JP4205506B2 (ja) | 2002-09-16 | 2003-07-28 | データ処理装置およびデータ処理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7047401B2 (ja) |
JP (1) | JP4205506B2 (ja) |
GB (1) | GB2392998B (ja) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7616218B1 (en) * | 2005-12-05 | 2009-11-10 | Nvidia Corporation | Apparatus, system, and method for clipping graphics primitives |
US8601223B1 (en) | 2006-09-19 | 2013-12-03 | Nvidia Corporation | Techniques for servicing fetch requests utilizing coalesing page table entries |
US8352709B1 (en) | 2006-09-19 | 2013-01-08 | Nvidia Corporation | Direct memory access techniques that include caching segmentation data |
US8347064B1 (en) | 2006-09-19 | 2013-01-01 | Nvidia Corporation | Memory access techniques in an aperture mapped memory space |
US8543792B1 (en) | 2006-09-19 | 2013-09-24 | Nvidia Corporation | Memory access techniques including coalesing page table entries |
US8700883B1 (en) | 2006-10-24 | 2014-04-15 | Nvidia Corporation | Memory access techniques providing for override of a page table |
US8707011B1 (en) | 2006-10-24 | 2014-04-22 | Nvidia Corporation | Memory access techniques utilizing a set-associative translation lookaside buffer |
US8504794B1 (en) | 2006-11-01 | 2013-08-06 | Nvidia Corporation | Override system and method for memory access management |
US8347065B1 (en) * | 2006-11-01 | 2013-01-01 | Glasco David B | System and method for concurrently managing memory access requests |
US8706975B1 (en) | 2006-11-01 | 2014-04-22 | Nvidia Corporation | Memory access management block bind system and method |
US8607008B1 (en) | 2006-11-01 | 2013-12-10 | Nvidia Corporation | System and method for independent invalidation on a per engine basis |
US8533425B1 (en) | 2006-11-01 | 2013-09-10 | Nvidia Corporation | Age based miss replay system and method |
US8700865B1 (en) | 2006-11-02 | 2014-04-15 | Nvidia Corporation | Compressed data access system and method |
US8719807B2 (en) * | 2006-12-28 | 2014-05-06 | Intel Corporation | Handling precompiled binaries in a hardware accelerated software transactional memory system |
US8560591B2 (en) * | 2007-04-25 | 2013-10-15 | International Business Machines Corporation | Detection of potential need to use a larger data format in performing floating point operations |
US8627050B2 (en) | 2007-10-08 | 2014-01-07 | International Business Machines Corporation | Executing perform floating point operation instructions |
US8447962B2 (en) * | 2009-12-22 | 2013-05-21 | Intel Corporation | Gathering and scattering multiple data elements |
US8769350B1 (en) * | 2011-09-20 | 2014-07-01 | Advent Software, Inc. | Multi-writer in-memory non-copying database (MIND) system and method |
US10146545B2 (en) | 2012-03-13 | 2018-12-04 | Nvidia Corporation | Translation address cache for a microprocessor |
US9880846B2 (en) | 2012-04-11 | 2018-01-30 | Nvidia Corporation | Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries |
US10241810B2 (en) | 2012-05-18 | 2019-03-26 | Nvidia Corporation | Instruction-optimizing processor with branch-count table in hardware |
US20140189310A1 (en) | 2012-12-27 | 2014-07-03 | Nvidia Corporation | Fault detection in instruction translations |
US10108424B2 (en) | 2013-03-14 | 2018-10-23 | Nvidia Corporation | Profiling code portions to generate translations |
KR102079939B1 (ko) * | 2013-06-04 | 2020-02-21 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 명령어 스케줄링 방법 |
US8886671B1 (en) | 2013-08-14 | 2014-11-11 | Advent Software, Inc. | Multi-tenant in-memory database (MUTED) system and method |
GB2517493A (en) * | 2013-08-23 | 2015-02-25 | Advanced Risc Mach Ltd | Handling access attributes for data accesses |
EP2940575B1 (en) * | 2014-05-02 | 2018-05-09 | Nxp B.V. | Controller circuits, data interface blocks, and methods for transferring data |
US11842200B2 (en) * | 2019-09-27 | 2023-12-12 | Advanced Micro Devices, Inc. | Multi-modal gather operation |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04306735A (ja) * | 1991-04-04 | 1992-10-29 | Toshiba Corp | 非同期割込み禁止機構 |
JP3103174B2 (ja) * | 1991-12-10 | 2000-10-23 | 富士通株式会社 | メモリアクセス装置 |
US5694587A (en) * | 1995-03-31 | 1997-12-02 | International Business Machines Corporation | Specialized millicode instructions for test PSW validity, load with access test, and character translation assist |
US5805879A (en) * | 1996-02-23 | 1998-09-08 | Cyrix Corporation | In a pipelined processor, setting a segment access indicator during execution stage using exception handling |
US5784607A (en) * | 1996-03-29 | 1998-07-21 | Integrated Device Technology, Inc. | Apparatus and method for exception handling during micro code string instructions |
US6304963B1 (en) * | 1998-05-14 | 2001-10-16 | Arm Limited | Handling exceptions occuring during processing of vector instructions |
-
2002
- 2002-09-16 GB GB0221465A patent/GB2392998B/en not_active Expired - Lifetime
-
2003
- 2003-06-16 US US10/461,335 patent/US7047401B2/en not_active Expired - Lifetime
- 2003-07-28 JP JP2003202172A patent/JP4205506B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US7047401B2 (en) | 2006-05-16 |
GB2392998A (en) | 2004-03-17 |
GB2392998B (en) | 2005-07-27 |
US20040054833A1 (en) | 2004-03-18 |
JP2004110786A (ja) | 2004-04-08 |
GB0221465D0 (en) | 2002-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4205506B2 (ja) | データ処理装置およびデータ処理方法 | |
JP4170218B2 (ja) | キャッシュミスに応答してタスクを切り替えることによってキャッシュベース埋め込みプロセッサのスループットを改善する方法および装置 | |
US9690581B2 (en) | Computer processor with deferred operations | |
US6542990B1 (en) | Array access boundary check by executing BNDCHK instruction with comparison specifiers | |
JP2008165834A (ja) | 指定されたメモリアクセスが発生するまでスレッドの実行をサスペンドする方法及び装置 | |
US20140129784A1 (en) | Methods and systems for polling memory outside a processor thread | |
JPH05204709A (ja) | プロセッサ | |
US6658537B2 (en) | DMA driven processor cache | |
JP3304444B2 (ja) | ベクトル処理装置 | |
WO2021091649A1 (en) | Super-thread processor | |
CN111630492B (zh) | 数据处理装置及其操作方法 | |
US6775740B1 (en) | Processor having a selector circuit for selecting an output signal from a hit/miss judgement circuit and data from a register file | |
JP7369701B2 (ja) | 処理回路上で実行されるべきプログラムをデバッグするときにメタデータにアクセスする方法 | |
EP0415351A2 (en) | Data processor for processing instruction after conditional branch instruction at high speed | |
JPH01124049A (ja) | マイクロプロセッサ | |
KR20150081148A (ko) | 프로세서 및 프로세서 제어 방법 | |
JP3169878B2 (ja) | メモリ制御回路 | |
JPH06324861A (ja) | Cpu制御システム及び制御方法 | |
JPWO2002069150A1 (ja) | マイクロプロセッサ及び命令実行順序スケジューリング方法 | |
JPH0795288B2 (ja) | マイクロコンピュータ | |
JP2004038601A (ja) | キャッシュメモリ装置 | |
JPH05257807A (ja) | キャッシュメモリ制御装置 | |
KR0155931B1 (ko) | 외부에서 억세스 가능한 온칩 캐시 메모리 시스템 | |
JPH0423129A (ja) | 情報処理装置 | |
JPH0683986A (ja) | シングルチップ・マイクロコンピュータ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050920 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080108 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080408 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080507 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080926 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20081016 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111024 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4205506 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121024 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131024 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |