JP2018527657A - 条件付きロードの抑制 - Google Patents

条件付きロードの抑制 Download PDF

Info

Publication number
JP2018527657A
JP2018527657A JP2018502652A JP2018502652A JP2018527657A JP 2018527657 A JP2018527657 A JP 2018527657A JP 2018502652 A JP2018502652 A JP 2018502652A JP 2018502652 A JP2018502652 A JP 2018502652A JP 2018527657 A JP2018527657 A JP 2018527657A
Authority
JP
Japan
Prior art keywords
load
conditional
vector
fault
conditional load
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.)
Granted
Application number
JP2018502652A
Other languages
English (en)
Other versions
JP6846405B2 (ja
Inventor
ジョン スティーブンス、ナイジェル
ジョン スティーブンス、ナイジェル
ジョン ウィリアムズ、マイケル
ジョン ウィリアムズ、マイケル
ロイ グリセンスウェイト、リチャード
ロイ グリセンスウェイト、リチャード
Original Assignee
エイアールエム リミテッド
エイアールエム リミテッド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by エイアールエム リミテッド, エイアールエム リミテッド filed Critical エイアールエム リミテッド
Publication of JP2018527657A publication Critical patent/JP2018527657A/ja
Application granted granted Critical
Publication of JP6846405B2 publication Critical patent/JP6846405B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • G06F9/30038Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3865Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Debugging And Monitoring (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

データ処理システム2は、データ値の少なくとも1つの条件付きロードを実施するベクトルロード命令の非投機的実行をサポートする。障害検出回路26は、条件付きロードが、障害を発生させる条件付きロードであるか、それとも障害のない条件付きロードであるかを検出するよう働く。条件付きロード抑制回路28は、アーキテクチャ状態の望ましくない変化(望ましくない副作用)をもたらすおそれがある、所定の基準に一致する障害のない条件付きロードを検出し、抑制する。このような所定の基準の例は、条件付きロードが非メモリデバイスへのものであること、または、条件付きロードが停止デバッグ停止モードへの移行もしくはデバッグ例外のトリガなどの診断応答をトリガするであろうこと、である。

Description

本開示は、データ処理システムの分野に関する。より具体的には、本開示は、1つ以上の条件付きロード動作を実施するベクトルロード命令をサポートするデータ処理システムに関する。
複数のベクトル要素をメモリからベクトルレジスタ内のそれぞれの要素にロードするベクトルロード命令をサポートするデータ処理システムを提供することが知られている。
本開示の少なくとも一部の実施形態は、データを処理するための装置であって、
ベクトルロード命令の非投機的実行に応答する、メモリのメモリアドレス位置から読み出されるデータ値の、ベクトルレジスタの要素への、少なくとも1つの条件付きロードを実施するためのベクトルロード回路と、
その条件付きロードが、障害を発生させる条件付きロードであるか、それとも障害のない条件付きロードであるかを検出するための障害検出回路と、
所定の基準に一致する障害のない条件付きロードを検出し抑制するための条件付きロード抑制回路と、
を備えた、装置、を提供する。
本開示の少なくとも一部の実施形態は、データを処理するための装置であって、
ベクトルロード命令の非投機的実行に応答する、メモリのメモリアドレス位置から読み出されるデータ値の、ベクトルレジスタの要素への、少なくとも1つの条件付きロードを実施するためのベクトルロード手段と、
その条件付きロードが、障害を発生させる条件付きロードであるか、それとも障害のない条件付きロードであるかを検出するための障害検出手段と、
そのベクトルロード手段とその障害検出手段とに連結された、所定の基準に一致する障害のない条件付きロードを検出し抑制するための条件付きロード抑制手段と、
を備えた、装置、を提供する。
本開示の少なくとも一部の実施形態は、データを処理する方法であって、
ベクトルロード命令の非投機的実行に応答して、メモリのメモリアドレス位置から読み出されるデータ値の、ベクトルレジスタの要素への、少なくとも1つの条件付きロードを実施することと、
その条件付きロードが、障害を発生させる条件付きロードであるか、それとも障害のない条件付きロードであるかを検出することと、
所定の基準に一致する障害のない条件付きロードを検出し抑制することと、
を含む、方法、を提供する。
これより、添付図面を参照しながら、例としてのみ、例示的な実施形態を説明する。
障害検出回路及び条件付きロード抑制回路により制御されるベクトルロード命令をサポートするデータ処理システムを概略的に示す。 ベクトルロード命令を概略的に示す。 第1障害レジスタの形での述語値を概略的に示す。 障害または望ましくない副作用を有する条件付きロードの抑制を概略的に示すフロー図。
図1は、操作されるべきデータ値8とプロセッサ4の動作を制御するためのプログラム命令10との両方を記憶するメインメモリ6に連結されたプロセッサ4を含むデータ処理システム2を概略的に示す。プロセッサ4には、システムのメモリアドレス空間内のメモリアドレスにマッピングされる非メモリデバイス14との通信を提供するためのデバイスメモリ入出力ユニット12も、連結されている。非メモリデバイス14は、例えば、キーボード、ディスプレイ、センサ、アクチュエータなどのデバイスであり得る。
プログラム命令は、命令フェッチ回路16によりメインメモリ6からフェッチされ、命令デコーダ回路18に供給される。命令デコーダ回路18は、デコードされた命令により指定される処理動作を実施するようにプロセッサ4の他の要素を制御する働きをする制御信号20を生成する。プロセッサ4は、ベクトルレジスタ22内に記憶され、ベクトル処理回路24により実施されるベクトルオペランドに対するベクトル処理動作をサポートする。ベクトルオペランドは、所与のサイズの複数のベクトル要素を含む。プロセッサ4によりサポートされる命令には、メモリアドレスからフィードされたデータ値の少なくとも1つの条件付きロードを実施するために非投機的に実行され得るベクトルロード命令が含まれる。このようなベクトルロード命令は、ベクトルロード命令の実行が、プログラミングモデルに対して明示的であり、プログラマーに対して表され、プログラマーが観察可能なプロセッサのアーキテクチャ状態の変化を表すという意味で、非投機的に実行される。このような方法で非投機的に実行されるベクトルロード命令は、データ値の少なくとも1つの条件付きロードを実施する場合があり、すなわち、データ値のそのロードは、要素ロードのそれぞれの条件付き挙動を制御する条件に応じて、実施される場合もあり、実施されない場合もある。
ベクトルロード命令の一部をなすこのような条件付きロードが実施されるか否かの主要な確定は、条件付きロードが障害を発生させる条件付きロードであるか、それとも障害のない条件付きロードであるかを検出する働きをする障害検出回路26の動作により提供される。メモリ障害は、いくつかの理由から発生し得る。このような理由の例には、メモリ管理ユニット(MMU)内のパーミッションデータにより管理されるものなどのパーミッションの障害、及び/またはアドレス変換ルックアサイドアサイドバッファにより提供されるアドレス変換の障害がある。無条件のロードに関するメモリアクセス障害は、メモリ例外処理ルーチンの実行などのメモリ例外をトリガする。条件付きロードの場合、その条件付きロードによりロードされるデータ値は実際には必要とされない、例えば、少なくとも1つの条件付きロードを含むベクトルロード命令は実際には消費されることがないデータをフェッチしている場合があるため、このようなメモリ障害をトリガすることの性能上のペナルティは、正当化されない場合がある。障害を発生させる条件付きロードは、障害検出回路26により抑制され、メモリ障害応答が必要にならないように、実施されないかもしれない。
プロセッサ4は、1つ以上の所定の基準に一致する障害のない条件付きロードを検出し抑制する働きをする条件付きロード抑制回路28をさらに含む。このような障害のない条件付きロードは、障害検出回路26により実施されたときに障害検出に合格するものであるが、それにもかかわらず、抑制するのが望ましい場合がある。障害のない条件付きロードを抑制する1つの理由は、障害のない条件付きロードによりロードされるデータ値は、実際にはそもそものプログラムフローにロードされる必要がない場合があるため、それらが、データ処理システム2の(プログラマーに見える)アーキテクチャ状態の望ましくない変化を不適切な様式でトリガし得るということである。したがって、障害検出回路26は、障害のない条件付きロードを特定し、条件付きロード抑制回路28は、所定の基準に一致するいかなるそのような障害のない条件付きロードも抑制する働きをする。それゆえに、ベクトルロード回路30は、障害検出回路26または条件付きロード抑制回路28によるこのような条件付きロードの抑制を条件として、少なくとも1つの、データ値8のメインメモリ6からの条件付きロードを実施するベクトルロード命令を非投機的に実行するように制御される。述語第1障害レジスタ32は、障害検出回路26及び条件付きロード抑制回路28により制御されるときにベクトルロード命令のどのロードが実施され、どのロードが実施されなかったのかを表す述語値を記憶する働きをする。
障害のない条件付きロードが抑制されるか否かを制御するための、条件付きロード抑制回路28により検出される所定の基準は、様々な異なる形式をとり得る。このような所定の基準の1つの例示的な形式は、障害のない条件付きロードが、デバイスメモリ入出力ユニット12を介して1つ以上の非メモリデバイス14と通信するためにメモリアドレス空間内に割り当てられたアドレスへのものであること、である。非メモリデバイス14からのロードは、本来のプログラムフローの一部として必要ではない場合がある条件付きロードに関して不適切である、データ処理システム2の状態についての望ましくない変化をトリガするおそれがある。一例として、プログラム実行のループは、ループの実行中に使用されることになると予想されるデータ値を先取りするために用いられているベクトルロード命令を使用して、追従される場合がある。しかしながら、このようなループは、それらのデータ値が必要とされる前に終了する場合があり、それゆえに、それらのデータ値の条件付きロードは、実際に追従されているプログラムフローに対して不適切な、データ処理システム2のアーキテクチャ状態の変化をトリガしてしまっている場合がある。
条件付きロード抑制回路28により検出することができる所定の基準の別の例は、障害のない条件付きロードが、障害のない条件付きロードが実施される場合に診断動作をトリガするように診断回路32によりウォッチポイントとして監視されているメモリアドレスへのものであること、である。このような診断動作としては、例えば、実行のデバッグ停止をトリガすること、または診断例外処理が開始されるように診断例外を実行すること、が挙げられる。これらの診断応答は両方とも、障害のない条件付きロードが追従されるべき本来のプログラムフローの一部ではない場合、不適切であり、それゆえに、このようなロードは、条件付きロード抑制回路28により特定され抑制されてもよい。
診断回路32は、監視されているウォッチポイントアドレスを記憶するレジスタを含む。ユーザがプログラム可能な診断オーバーライドフラグ(グローバルまたはウォッチポイント毎のいずれか)は、診断動作をトリガする障害のない条件付きロードの条件付きロード抑制回路28による抑制を阻止するように、診断回路及び条件付きロード抑制回路28を制御することができる。一部の状況下では、診断回路32を使用して調査される必要があるシステムの挙動は、障害のない条件付きロードの実行に関連している場合があり、それゆえに、たとえこれらがその性質上条件付きであり、プログラマーによりそもそも記載されたプログラムフローの一部ではない場合があるとしても、これらは、診断動作を引き起こすことを許可されるべきである。メインメモリ6からのデータ値の少なくとも1つの条件付きロードを実施するためのベクトルロード命令の非投機的実行は、条件付きロードの結果をベクトルレジスタ22内のベクトルの要素内に記憶する働きをし、それに応じて、データ処理システム2の状態に対して、アーキテクチャ上の、かつプログラム可能な目に見える変更を行い、すなわち、条件付きロードの宛先であるベクトルレジスタの内容は、実際はプログラムフローの一部として必要とされない/消費されない場合がある、条件付きでロードされたデータ値により更新される。
図2は、4つのベクトル要素a、a、a、aに関するベクトルロード命令を概略的に示す。第1のベクトル要素aは、ベクトルロード命令が非投機的に実行されている場合、プログラムフローは、少なくともその第1のベクトル要素aがロードされることを必要とする、という無条件のロードを受けるかもしれない。次に続く3つのベクトル要素は、障害検出回路26及び条件付きロード抑制回路28により抑制され得る種類の条件付きベクトルロードを受ける。ベクトル要素aの無条件のロードは、障害応答をトリガするであろう、パーミッションフォールドなどの障害を引き起こす場合があり、このような障害応答は、追従されているプログラムフローの正規の部分であるため、発生することを許可されるべきであることが理解されるであろう。
図2に示されるように、ベクトルロードの一部をなす条件付きロードは、関連付けられた数字を有する。しかしながら、これらの数字は、特定の実装により物理レベルで実施されるロードの実際の順序を必ずしも適用せず、むしろ、これらは、プログラマーにより指定された初期の順序を表す。
図2は、第1のロードが無条件のロードであるベクトルロード命令を概略的に示す。ベクトルロード命令のロードの全てのロードが条件付きロードであるベクトルロード命令と共に本技術を利用することも可能である。
図3は、2つの状況における、ベクトルロード命令の非投機的実行に応答した、述語第1障害レジスタ32の内容を概略的に示す。状況a)では、全てのベクトル要素のロードは、障害なしであり、抑制されず、それゆえに、全て実施される。これは、述語第1障害レジスタ32内の4つのTの値(T及びFは、それぞれ、0及び1の予め定めるビット値、または他の方法により表すことができる)により表される。図3でb)として示される状況では、図2に示されるベクトル要素aのロードは、障害をトリガし、それゆえに、実施されず、このことは、述語第1障害レジスタ内の対応する要素をFに設定することにより表される。このことは、次いで、ベクトルロード命令内のより小さい数字が付された障害を発生させるロードの存在の結果として、述語第1障害レジスタ内の対応する要素をFに設定することによって障害を発生させるとして同様にマークされる、より大きい数字が付されたベクトル要素のロードの当該ベクトルロード命令による実施を抑制する。
図4は、障害または望ましくない副作用のいずれかを有するベクトルロードにおける条件付きロードの抑制を概略的に示すフロー図である。処理は、ベクトルロード命令が受信されるまでステップ34で待機する。そのベクトルロード命令が第1の無条件のロードを含む場合、それが実施されるべきか否か(例えば、それが障害なしかどうか)を決定するために別個の機構により対処される。次いで、ステップ36は、検査のために第1の条件付きロードアドレスを選択する。図2に示されるベクトルロード命令の場合、これは、ベクトル要素aへのロードのアドレスであろう。次いで、ステップ38は、選択されたアドレスが障害を発生させるアドレスであるか否か、例えば、パーミッション検査に失敗するか否か、または変換に失敗するか否かを決定する。アドレスが障害を発生させるものである場合、処理は、そのアドレス/ロードが述語第1障害レジスタ32(ロード前に別個の命令により全て真の値に初期化されている)内で障害ありとしてマークされ、より大きい数字が付された全ての後続のロードも障害ありとしてマークされる、ステップ40に進む。次いで、処理は、終了する。図4の動作は条件付きロードがどのように検出され、障害ありとしてマークされ得るかを示すことが理解されるであろう。実際は、このような検出及びマーキングは、それらのロードが実行されるのと同時に実施されてもよい。
ステップ38での決定が、選択されたロードアドレスは障害を発生させるものではない、というものである場合、処理は、ロードアドレスが非メモリデバイスにマッピングされているか否かについて決定がなされる(メモリアドレスがメモリがマッピングされた非メモリデバイスに対応するか否かについての照合)、ステップ42に進む。ロードアドレスがそのような非メモリデバイスへのものである場合、処理は、再びステップ40に移行する。ステップ42での決定が、選択されたロードアドレスは非メモリデバイスへのものではない、というものである場合、処理は、選択されたロードアドレスは万一ロードが行われた場合ウォッチポイントをトリガするであろうか否かについて決定がなされる、ステップ44に進む。選択されたロードアドレスがウォッチポイントをトリガするであろう場合、ステップ46は、オーバーライドフラグがこのようなウォッチポイントに関して設定されるか否かを決定する。プログラム可能な診断オーバーライドフラグは、設定される全てのウォッチポイントに適用される単一のグローバルフラグによりグローバルに、またはそれぞれの個別ウォッチポイントに適用される個別フラグにより個別に、設定され得る。望む場合、オーバーライドフラグとそれぞれのウォッチポイントとの間の様々なマッピングを含む他の取り決めを提供することもできる。ステップ46での決定が、トリガされるであろうウォッチポイントに関するオーバーライドフラグが設定されない、というものである場合、処理は、再びステップ40に進む。
ステップ44での決定が、ロードアドレスはウォッチポイントをトリガしないであろう、というものであるか、またはステップ46での決定が、潜在的にトリガされるウォッチポイントに関してオーバーライドフラグが設定される、というものである場合、処理は、選択されたロードアドレスからベクトルレジスタの選択された要素へのベクトル要素のロードが実施される、ステップ48に進む。次いで、ステップ50は、ベクトルロード内の最後のロードアドレスが現在選択されているロードアドレスであるか否かを決定する。最後のロードアドレスが現在選択されているアドレスではない場合、ステップ52が、次のロードアドレスを検査のために選択する働きをし、処理は、ステップ38に戻る。現在選択されているアドレスが最後のロードアドレスである場合、処理は、終了する。
上述の例示的な実施形態は、所定の基準が、条件付きロードが非メモリデバイスへのものであること、または条件付きロードが停止デバッグモードへの移行またはデバッグ例外のトリガなどの診断動作をトリガすることになること、であるものである。条件付きロード抑制回路により検出される所定の基準は他の形式をとることができることが理解されるであろう。このような他の形式の所定の基準は、データ値のベクトルレジスタの要素への障害のないロードを超えるプロセッサの状態の変化をもたらすそのロードの能力を表してもよい。データ値のベクトルレジスタ内の要素への障害のないロードは、最終的に追従されるプログラムフローにより実際には必要とされない状態の変化をもたらす場合があるが、これは、データ値のそのようなベクトル要素への1つ以上の条件付きロードを実施するベクトルロード命令の非投機的実行の結果としてプログラミングモデル内で理解及び予期されているものである。
本明細書では特定の実施形態を説明してきたが、本発明はそれらに限定されないこと、及びそれらに対する多くの変更及び追加を本発明の範囲内で行うことができることが、理解されるであろう。例えば、以下の従属請求項の特徴の様々な組み合わせが独立請求項の特徴とで、本発明の範囲から逸脱することなしに行うことができる。

Claims (13)

  1. データを処理するための装置であって、
    ベクトルロード命令の非投機的実行に応答する、メモリのメモリアドレス位置から読み出されるデータ値の、ベクトルレジスタの要素への、少なくとも1つの条件付きロードを実施するためのベクトルロード回路と、
    前記条件付きロードが、障害を発生させる条件付きロードであるか、それとも障害のない条件付きロードであるかを検出するための障害検出回路と、
    所定の基準に一致する障害のない条件付きロードを検出し抑制するための条件付きロード抑制回路と、
    を備えた、装置。
  2. 前記所定の基準が、前記データ値の前記ベクトルレジスタの前記要素への障害のないロードを超える前記装置の状態の変化をもたらす能力を表す、請求項1に記載の装置。
  3. 前記ベクトルロード回路が、無条件のロードと複数の条件付きロードとを含む複数のロードを実施するように、前記ベクトルロード命令に応答する、請求項1及び2のいずれか一項に記載の装置。
  4. 前記ベクトルロード回路が、複数の条件付きロードを実施するように、前記ベクトルロード命令に応答する、請求項1及び2のいずれか一項に記載の装置。
  5. 前記無条件のロードが前記所定の基準を有するかどうかにかかわらず、前記無条件のロードが、メモリアドレスからデータ値をロードすることを許可されている、請求項3に記載の装置。
  6. 前記所定の基準が、前記障害のない条件付きロードの前記メモリアドレスが1つ以上の非メモリデバイスと通信するために割り当てられていること、である、請求項1〜5のいずれか一項に記載の装置。
  7. 診断動作を実施するための診断回路を備え、前記所定の基準が、前記障害のない条件付きロードの前記メモリアドレスが前記診断動作をトリガするように設定されたアドレスに一致すること、かつ、前記障害のない条件付きロードの抑制が前記診断動作のトリガを抑制すること、である、請求項1〜6のいずれか一項に記載の装置。
  8. 前記診断動作をトリガするように設定された前記アドレスが、診断ウォッチポイントアドレスである、請求項7に記載の装置。
  9. 前記診断動作が、停止デバッグモードに入ることと、デバッグ例外をトリガすることと、のうちの1つである、請求項7及び8のいずれか一項に記載の装置。
  10. 前記条件付きロード抑制回路が、前記条件付きロード抑制回路による、前記診断動作をトリガする前記条件付きの障害のないロードの抑制を阻止するように、1つ以上のユーザがプログラム可能な診断オーバーライドフラグに応答する、請求項7、8、及び9のいずれか一項に記載の装置。
  11. 前記1つ以上のユーザがプログラム可能な診断オーバーライドフラグが、複数のウォッチポイントのそれぞれにあてはまるグローバルフラグと、それぞれの個別ウォッチポイントにあてはまる複数の個別フラグと、のうちの1つとして設定される、請求項10に記載の装置。
  12. データを処理するための装置であって、
    ベクトルロード命令の非投機的実行に応答する、メモリのメモリアドレス位置から読み出されるデータ値の、ベクトルレジスタの要素への、少なくとも1つの条件付きロードを実施するためのベクトルロード手段と、
    前記条件付きロードが、障害を発生させる条件付きロードであるか、それとも障害のない条件付きロードであるかを検出するための障害検出手段と、
    前記ベクトルロード手段と前記障害検出手段とに連結された、所定の基準に一致する障害のない条件付きロードを検出し抑制するための条件付きロード抑制手段と、
    を備えた、装置。
  13. データを処理する方法であって、
    ベクトルロード命令の非投機的実行に応答して、メモリのメモリアドレス位置から読み出されるデータ値の、ベクトルレジスタの要素への、少なくとも1つの条件付きロードを実施することと、
    前記条件付きロードが、障害を発生させる条件付きロードであるか、それとも障害のない条件付きロードであるかを検出することと、
    所定の基準に一致する障害のない条件付きロードを検出し抑制することと、
    を含む、方法。
JP2018502652A 2015-07-31 2016-06-21 条件付きロードの抑制 Active JP6846405B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1513508.0A GB2540942B (en) 2015-07-31 2015-07-31 Contingent load suppression
GB1513508.0 2015-07-31
PCT/GB2016/051856 WO2017021679A1 (en) 2015-07-31 2016-06-21 Contingent load suppression

Publications (2)

Publication Number Publication Date
JP2018527657A true JP2018527657A (ja) 2018-09-20
JP6846405B2 JP6846405B2 (ja) 2021-03-24

Family

ID=54062953

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018502652A Active JP6846405B2 (ja) 2015-07-31 2016-06-21 条件付きロードの抑制

Country Status (10)

Country Link
US (1) US10719383B2 (ja)
EP (1) EP3329360B1 (ja)
JP (1) JP6846405B2 (ja)
KR (1) KR102581568B1 (ja)
CN (1) CN107851012B (ja)
GB (1) GB2540942B (ja)
IL (1) IL256142B (ja)
MY (1) MY182419A (ja)
TW (1) TWI710955B (ja)
WO (1) WO2017021679A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3264317B1 (en) * 2016-06-29 2019-11-20 Arm Ltd Permission control for contingent memory access program instruction
US11663014B2 (en) * 2019-08-26 2023-05-30 Arm Limited Speculatively executing instructions that follow a status updating instruction
CN114428638A (zh) * 2020-10-29 2022-05-03 平头哥(上海)半导体技术有限公司 指令发射单元、指令执行单元、相关装置和方法
US11714644B2 (en) * 2021-08-27 2023-08-01 Arm Limited Predicated vector load micro-operation for performing a complete vector load when issued before a predicate operation is available and a predetermined condition is unsatisfied

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030115509A1 (en) * 2001-09-20 2003-06-19 Dubal Scott P. Method for running diagnostic utilities in a multi-threaded operating system environment
JP2009176297A (ja) * 2008-01-24 2009-08-06 Arm Ltd 診断コンテキストの構成および比較
JP2011514606A (ja) * 2008-03-17 2011-05-06 フリースケール セミコンダクター インコーポレイテッド アドレスに基づく条件付きデバッグ命令を認証するデバッグ方法、制御方法、およびデバッグ装置
US20120192005A1 (en) * 2011-01-21 2012-07-26 Apple Inc. Sharing a fault-status register when processing vector instructions
JP2013175201A (ja) * 2012-02-24 2013-09-05 Apple Inc ゼロ述語分岐予測ミスにおける分岐予測ミス振舞い抑制

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724536A (en) * 1994-01-04 1998-03-03 Intel Corporation Method and apparatus for blocking execution of and storing load operations during their execution
US6725362B2 (en) * 2001-02-06 2004-04-20 Intel Corporation Method for encoding an instruction set with a load with conditional fault instruction
US20060106499A1 (en) * 2004-10-22 2006-05-18 Roosli Philipp A System and method for emergency shutdown of selected services and facilities in a multi-unit building
US7490224B2 (en) * 2005-10-07 2009-02-10 International Business Machines Corporation Time-of-life counter design for handling instruction flushes from a queue
US7925868B2 (en) * 2007-01-24 2011-04-12 Arm Limited Suppressing register renaming for conditional instructions predicted as not executed
US9529592B2 (en) * 2007-12-27 2016-12-27 Intel Corporation Vector mask memory access instructions to perform individual and sequential memory access operations if an exception occurs during a full width memory access operation
US8271832B2 (en) * 2008-08-15 2012-09-18 Apple Inc. Non-faulting and first-faulting instructions for processing vectors
US20110047358A1 (en) * 2009-08-19 2011-02-24 International Business Machines Corporation In-Data Path Tracking of Floating Point Exceptions and Store-Based Exception Indication
US10175990B2 (en) * 2009-12-22 2019-01-08 Intel Corporation Gathering and scattering multiple data elements
US20120254591A1 (en) * 2011-04-01 2012-10-04 Hughes Christopher J Systems, apparatuses, and methods for stride pattern gathering of data elements and stride pattern scattering of data elements
EP2695055B1 (en) * 2011-04-07 2018-06-06 VIA Technologies, Inc. Conditional load instructions in an out-of-order execution microprocessor
US9053233B2 (en) * 2011-08-15 2015-06-09 Freescale Semiconductor, Inc. Method and device for controlling debug event resources
US9047400B2 (en) * 2012-08-29 2015-06-02 Freescale Semiconductor, Inc. Data processor device for handling a watchpoint and method thereof
US9069896B2 (en) * 2012-08-29 2015-06-30 Freescale Semiconductor, Inc. Data processor device for handling a watchpoint and method thereof
US9619230B2 (en) * 2013-06-28 2017-04-11 International Business Machines Corporation Predictive fetching and decoding for selected instructions
GB2519108A (en) * 2013-10-09 2015-04-15 Advanced Risc Mach Ltd A data processing apparatus and method for controlling performance of speculative vector operations
US9176821B2 (en) * 2013-10-30 2015-11-03 Freescale Semiconductor, Inc. Watchpoint support system for functional simulator
US20160092398A1 (en) * 2014-09-29 2016-03-31 Apple Inc. Conditional Termination and Conditional Termination Predicate Instructions

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030115509A1 (en) * 2001-09-20 2003-06-19 Dubal Scott P. Method for running diagnostic utilities in a multi-threaded operating system environment
JP2009176297A (ja) * 2008-01-24 2009-08-06 Arm Ltd 診断コンテキストの構成および比較
JP2011514606A (ja) * 2008-03-17 2011-05-06 フリースケール セミコンダクター インコーポレイテッド アドレスに基づく条件付きデバッグ命令を認証するデバッグ方法、制御方法、およびデバッグ装置
US20120192005A1 (en) * 2011-01-21 2012-07-26 Apple Inc. Sharing a fault-status register when processing vector instructions
JP2013175201A (ja) * 2012-02-24 2013-09-05 Apple Inc ゼロ述語分岐予測ミスにおける分岐予測ミス振舞い抑制

Also Published As

Publication number Publication date
EP3329360A1 (en) 2018-06-06
TWI710955B (zh) 2020-11-21
GB2540942B (en) 2019-01-23
IL256142B (en) 2020-08-31
IL256142A (en) 2018-02-28
EP3329360B1 (en) 2021-09-01
US10719383B2 (en) 2020-07-21
GB2540942A (en) 2017-02-08
MY182419A (en) 2021-01-25
JP6846405B2 (ja) 2021-03-24
KR102581568B1 (ko) 2023-09-22
CN107851012B (zh) 2022-06-10
TW201712531A (zh) 2017-04-01
CN107851012A (zh) 2018-03-27
GB201513508D0 (en) 2015-09-16
US20180203756A1 (en) 2018-07-19
WO2017021679A1 (en) 2017-02-09
KR20180033512A (ko) 2018-04-03

Similar Documents

Publication Publication Date Title
TWI738744B (zh) 用於程式迴圈控制的設備、方法及電腦程式產品
US20050257089A1 (en) Breakpoint logic unit, debug logic and breakpoint method for a data processing apparatus
KR100695187B1 (ko) 단일 스텝 처리 방법 및 장치
JP6846405B2 (ja) 条件付きロードの抑制
KR101249693B1 (ko) 서브루틴 복귀 메카니즘 선택
KR101924821B1 (ko) 정렬 제어
KR20130137591A (ko) 불법 모드 변경처리
TW201737060A (zh) 程式迴圈控制
KR101978984B1 (ko) 프로세서의 오류를 검출하는 장치 및 방법
KR20180126003A (ko) 분기 명령
KR20180100229A (ko) 벡터 원자 메모리 갱신 명령
KR102307581B1 (ko) 레지스터 복구 분기 명령
US8612720B2 (en) System and method for implementing data breakpoints
US10761885B2 (en) Apparatus and method of executing thread groups
TWI801622B (zh) 用於處理保護標籤損失的裝置、方法、電腦程式、與儲存媒體
US8176301B2 (en) Millicode assist instructions for millicode store access exception checking
TWI746523B (zh) 暫存器存取控制
CN106990939B (zh) 修改数据处理单元的行为
KR20200020926A (ko) 콘텍스트 데이터 관리

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190614

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200727

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200818

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201118

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: 20210205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210301

R150 Certificate of patent or registration of utility model

Ref document number: 6846405

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250