JP6846405B2 - 条件付きロードの抑制 - Google Patents
条件付きロードの抑制 Download PDFInfo
- Publication number
- JP6846405B2 JP6846405B2 JP2018502652A JP2018502652A JP6846405B2 JP 6846405 B2 JP6846405 B2 JP 6846405B2 JP 2018502652 A JP2018502652 A JP 2018502652A JP 2018502652 A JP2018502652 A JP 2018502652A JP 6846405 B2 JP6846405 B2 JP 6846405B2
- Authority
- JP
- Japan
- Prior art keywords
- load
- conditional
- vector
- conditional load
- memory
- 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.)
- Active
Links
- 230000001629 suppression Effects 0.000 title claims description 22
- 238000012545 processing Methods 0.000 claims description 18
- 238000001514 detection method Methods 0.000 claims description 15
- 238000000034 method Methods 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 10
- 230000008859 change Effects 0.000 claims description 5
- 230000009471 action Effects 0.000 description 4
- 238000013519 translation Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification 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/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0706—Error 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/0721—Error 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0751—Error or fault detection not based on redundancy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/079—Root cause analysis, i.e. error or fault diagnosis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0793—Remedial or corrective actions
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- 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
- G06F9/3865—Recovery, 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)
Description
ベクトルロード命令の非投機的実行に応答する、メモリのメモリアドレス位置から読み出されるデータ値の、ベクトルレジスタの要素への、少なくとも1つの条件付きロードを実施するためのベクトルロード回路と、
その条件付きロードが、障害を発生させる条件付きロードであるか、それとも障害のない条件付きロードであるかを検出するための障害検出回路と、
所定の基準に一致する障害のない条件付きロードを検出し抑制するための条件付きロード抑制回路と、
を備えた、装置、を提供する。
ベクトルロード命令の非投機的実行に応答する、メモリのメモリアドレス位置から読み出されるデータ値の、ベクトルレジスタの要素への、少なくとも1つの条件付きロードを実施するためのベクトルロード手段と、
その条件付きロードが、障害を発生させる条件付きロードであるか、それとも障害のない条件付きロードであるかを検出するための障害検出手段と、
そのベクトルロード手段とその障害検出手段とに連結された、所定の基準に一致する障害のない条件付きロードを検出し抑制するための条件付きロード抑制手段と、
を備えた、装置、を提供する。
ベクトルロード命令の非投機的実行に応答して、メモリのメモリアドレス位置から読み出されるデータ値の、ベクトルレジスタの要素への、少なくとも1つの条件付きロードを実施することと、
その条件付きロードが、障害を発生させる条件付きロードであるか、それとも障害のない条件付きロードであるかを検出することと、
所定の基準に一致する障害のない条件付きロードを検出し抑制することと、
を含む、方法、を提供する。
Claims (13)
- データを処理するための装置であって、
ベクトルロード命令の非投機的実行に応答する、メモリのメモリアドレス位置から読み出されるデータ値の、ベクトルレジスタの要素への、少なくとも1つの条件付きロードを実施するためのベクトルロード回路と、
前記条件付きロードがメモリ障害を発生させるかを判定することにより、前記条件付きロードが、障害を発生させる条件付きロードであるか、それとも障害のない条件付きロードであるかを検出するための障害検出回路と、
所定の基準に一致する、前記障害検出回路によって検出された障害のない条件付きロードを検出し抑制するための条件付きロード抑制回路と、
を備えた、装置。 - 前記所定の基準が、前記データ値の前記ベクトルレジスタの前記要素への障害のないロードを超える前記装置の状態の変化をもたらす能力を表す、請求項1に記載の装置。
- 前記ベクトルロード回路が、無条件のロードと複数の条件付きロードとを含む複数のロードを実施するように、前記ベクトルロード命令に応答する、請求項1及び2のいずれか一項に記載の装置。
- 前記ベクトルロード回路が、複数の条件付きロードを実施するように、前記ベクトルロード命令に応答する、請求項1及び2のいずれか一項に記載の装置。
- 前記無条件のロードが前記所定の基準を有するかどうかにかかわらず、前記無条件のロードが、メモリアドレスからデータ値をロードすることを許可されている、請求項3に記載の装置。
- 前記所定の基準が、前記障害のない条件付きロードのメモリアドレスが1つ以上の非メモリデバイスと通信するために割り当てられていること、である、請求項1〜5のいずれか一項に記載の装置。
- 診断動作を実施するための診断回路を備え、前記所定の基準が、前記障害のない条件付きロードのメモリアドレスが前記診断動作をトリガするように設定されたアドレスに一致すること、かつ、前記障害のない条件付きロードの抑制が前記診断動作のトリガを抑制すること、である、請求項1〜6のいずれか一項に記載の装置。
- 前記診断動作をトリガするように設定された前記アドレスが、診断ウォッチポイントアドレスである、請求項7に記載の装置。
- 前記診断動作が、停止デバッグモードに入ることと、デバッグ例外をトリガすることと、のうちの1つである、請求項7及び8のいずれか一項に記載の装置。
- 前記条件付きロード抑制回路が、前記条件付きロード抑制回路による、前記診断動作をトリガする前記条件付きの障害のないロードの抑制を阻止するように、1つ以上のユーザがプログラム可能な診断オーバーライドフラグに応答する、請求項7、8、及び9のいずれか一項に記載の装置。
- 前記1つ以上のユーザがプログラム可能な診断オーバーライドフラグが、複数のウォッチポイントのそれぞれにあてはまるグローバルフラグと、それぞれの個別ウォッチポイントにあてはまる複数の個別フラグと、のうちの1つとして設定される、請求項10に記載の装置。
- データを処理するための装置であって、
ベクトルロード命令の非投機的実行に応答する、メモリのメモリアドレス位置から読み出されるデータ値の、ベクトルレジスタの要素への、少なくとも1つの条件付きロードを実施するためのベクトルロード手段と、
前記条件付きロードがメモリ障害を発生させるかを判定することにより、前記条件付きロードが、障害を発生させる条件付きロードであるか、それとも障害のない条件付きロードであるかを検出するための障害検出手段と、
前記ベクトルロード手段と前記障害検出手段とに連結された、所定の基準に一致する、前記障害検出手段によって検出された障害のない条件付きロードを検出し抑制するための条件付きロード抑制手段と、
を備えた、装置。 - データを処理する方法であって、
ベクトルロード命令の非投機的実行に応答して、メモリのメモリアドレス位置から読み出されるデータ値の、ベクトルレジスタの要素への、少なくとも1つの条件付きロードを実施するステップと、
前記条件付きロードがメモリ障害を発生させるかを判定することにより、前記条件付きロードが、障害を発生させる条件付きロードであるか、それとも障害のない条件付きロードであるかを検出するステップと、
所定の基準に一致する、前記検出するステップで検出された障害のない条件付きロードを検出し抑制するステップと、
を含む、方法。
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 JP2018527657A (ja) | 2018-09-20 |
JP6846405B2 true 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)
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 |
Family Cites Families (23)
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 |
US6976193B2 (en) * | 2001-09-20 | 2005-12-13 | Intel Corporation | Method for running diagnostic utilities in a multi-threaded operating system environment |
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 |
GB2456813B (en) * | 2008-01-24 | 2012-03-07 | Advanced Risc Mach Ltd | Diagnostic context construction and comparison |
US8261047B2 (en) * | 2008-03-17 | 2012-09-04 | Freescale Semiconductor, Inc. | Qualification of conditional debug instructions based on address |
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 |
US8683178B2 (en) * | 2011-01-21 | 2014-03-25 | Apple Inc. | Sharing a fault-status register when processing vector instructions |
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 |
TWI514265B (zh) * | 2011-04-07 | 2015-12-21 | Via Tech Inc | 將條件載入/儲存指令轉譯為數量可變的微指令之微處理器 |
US9053233B2 (en) * | 2011-08-15 | 2015-06-09 | Freescale Semiconductor, Inc. | Method and device for controlling debug event resources |
US9268569B2 (en) * | 2012-02-24 | 2016-02-23 | Apple Inc. | Branch misprediction behavior suppression on zero predicate branch mispredict |
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 |
-
2015
- 2015-07-31 GB GB1513508.0A patent/GB2540942B/en active Active
-
2016
- 2016-06-21 JP JP2018502652A patent/JP6846405B2/ja active Active
- 2016-06-21 KR KR1020187003456A patent/KR102581568B1/ko active IP Right Grant
- 2016-06-21 MY MYPI2017705119A patent/MY182419A/en unknown
- 2016-06-21 CN CN201680042109.9A patent/CN107851012B/zh active Active
- 2016-06-21 WO PCT/GB2016/051856 patent/WO2017021679A1/en active Application Filing
- 2016-06-21 US US15/743,392 patent/US10719383B2/en active Active
- 2016-06-21 EP EP16731311.3A patent/EP3329360B1/en active Active
- 2016-07-15 TW TW105122368A patent/TWI710955B/zh active
-
2017
- 2017-12-06 IL IL256142A patent/IL256142B/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
GB201513508D0 (en) | 2015-09-16 |
IL256142A (en) | 2018-02-28 |
JP2018527657A (ja) | 2018-09-20 |
GB2540942B (en) | 2019-01-23 |
CN107851012A (zh) | 2018-03-27 |
TWI710955B (zh) | 2020-11-21 |
CN107851012B (zh) | 2022-06-10 |
KR20180033512A (ko) | 2018-04-03 |
IL256142B (en) | 2020-08-31 |
KR102581568B1 (ko) | 2023-09-22 |
MY182419A (en) | 2021-01-25 |
TW201712531A (zh) | 2017-04-01 |
EP3329360A1 (en) | 2018-06-06 |
US20180203756A1 (en) | 2018-07-19 |
US10719383B2 (en) | 2020-07-21 |
GB2540942A (en) | 2017-02-08 |
EP3329360B1 (en) | 2021-09-01 |
WO2017021679A1 (en) | 2017-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI738744B (zh) | 用於程式迴圈控制的設備、方法及電腦程式產品 | |
JP6846405B2 (ja) | 条件付きロードの抑制 | |
KR100695187B1 (ko) | 단일 스텝 처리 방법 및 장치 | |
US20120042154A1 (en) | Illegal mode change handling | |
KR101249693B1 (ko) | 서브루틴 복귀 메카니즘 선택 | |
KR101924821B1 (ko) | 정렬 제어 | |
KR20180126003A (ko) | 분기 명령 | |
TW201737060A (zh) | 程式迴圈控制 | |
KR102307581B1 (ko) | 레지스터 복구 분기 명령 | |
KR20180100229A (ko) | 벡터 원자 메모리 갱신 명령 | |
US7673123B2 (en) | System and method for classifying branch instructions into multiple classes for branch prediction | |
US20080196013A1 (en) | System and method for implementing data breakpoints | |
US10761885B2 (en) | Apparatus and method of executing thread groups | |
JP2006221606A (ja) | データプロセッサ | |
TWI801622B (zh) | 用於處理保護標籤損失的裝置、方法、電腦程式、與儲存媒體 | |
CN108701031B (zh) | 寄存器访问控制 | |
JP4283226B2 (ja) | アドレス範囲に依存した命令並行処理を行うデータ処理装置 | |
TW201723808A (zh) | 修改資料處理單元的行為 | |
GR20180200009U (el) | Μια διαταξη εκτελεσης ομαδων νηματων | |
JPH04306743A (ja) | 集積回路マイクロプロセッサのデバッグ支援システム |
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 |