JP2014182825A - オーバーロードチェックを実行する命令 - Google Patents
オーバーロードチェックを実行する命令 Download PDFInfo
- Publication number
- JP2014182825A JP2014182825A JP2014051273A JP2014051273A JP2014182825A JP 2014182825 A JP2014182825 A JP 2014182825A JP 2014051273 A JP2014051273 A JP 2014051273A JP 2014051273 A JP2014051273 A JP 2014051273A JP 2014182825 A JP2014182825 A JP 2014182825A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- data size
- relatively small
- processor
- bit
- 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
Links
- 238000012545 processing Methods 0.000 claims abstract description 10
- 230000004044 response Effects 0.000 claims abstract description 5
- 239000013598 vector Substances 0.000 claims description 55
- 238000000034 method Methods 0.000 claims description 25
- 230000015654 memory Effects 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000001514 detection method Methods 0.000 abstract description 5
- 238000012360 testing method Methods 0.000 abstract description 4
- 238000013461 design Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000000873 masking effect Effects 0.000 description 7
- 239000004065 semiconductor Substances 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001960 triggered effect 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- 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
-
- 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
-
- 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/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- 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/30021—Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
-
- 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/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- 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/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
-
- 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/3802—Instruction prefetching
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- 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)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
Abstract
【解決手段】処理コア100は、相対的に大きなサイズのデータタイプから相対的に小さなサイズのデータタイプへのデータフロー検出に応答し、データフローによってオーバーフローエラーが結果的に生じるかどうかを試験する命令を実行する。データフローによってオーバーフロー状態が生じないと命令が判定した場合には、命令の結果は、オーバーフロー警告に対応しない。オーバーフロー状態が生じると命令が判定した場合には、なんらかの種類のオーバーフロー警告に対応する。
【選択図】図1
Description
Claims (24)
- 命令実行パイプライン内の機能ユニットであって、相対的に大きなソースデータサイズからの主要なデータが、前記主要なデータが流される先である相対的に小さなデータサイズ内にフィットするかどうかを判定するための回路を有する機能ユニット
を有するプロセッサ。 - 前記回路は、前記相対的に大きなデータサイズの最上位ビットのビット位置から始まり、前記相対的に小さなデータサイズのビット範囲内のビット場所までのビットが、すべて等しいかどうかを確認する比較器を含む請求項1に記載のプロセッサ。
- 前記相対的に小さなデータサイズのビット範囲内の前記ビット場所は、前記相対的に小さなデータサイズのビット範囲の最上位のビット位置に位置している請求項2に記載のプロセッサ。
- 前記回路は、前記相対的に大きなデータサイズの最上位ビットのビット位置から始まり、前記相対的に小さなデータサイズの最上位ビットの直後のビット場所までのビットが、すべて等しいかどうかを確認する比較器を含む請求項1に記載のプロセッサ。
- 前記回路は、前記相対的に大きなデータサイズの最上位ビットのビット位置から始まり、
i)前記相対的に小さなデータサイズの最上位ビットの直後のビット場所、又は、
ii)前記相対的に小さなデータサイズのビット範囲内の最上位ビット場所、
のうちのいずれかまでのビットが、すべて等しいかどうかを確認する比較器を含み、
この場合に、i)又はii)のうちのいずれを利用するかは、情報に依存する請求項1に記載のプロセッサ。 - 前記情報は、前記機能ユニットによって実行される命令の命令フォーマット内のコンテンツから判定される請求項5に記載のプロセッサ。
- 前記情報は、前記プロセッサの制御レジスタ空間から判定される請求項5に記載のプロセッサ。
- 前記制御レジスタ空間は、モデル固有のレジスタ空間である請求項7に記載のプロセッサ。
- 前記制御レジスタ空間は、スレッド用のコンテキスト情報を保持するためのものである請求項7に記載のプロセッサ。
- 前記主要なデータは、ベクトルの要素内に存在している請求項1から9の何れか1項に記載のプロセッサ。
- 前記プロセッサは、論理回路を収容しており、前記論理回路は、前記主要なデータを前記相対的に大きなソースデータサイズから前記相対的に小さなデータサイズに流す第2命令を検出し、且つ、前記命令を生成すると共に命令ストリーム内において前記第2命令の前に前記命令を挿入する請求項1から10の何れか1項に記載のプロセッサ。
- 命令実行パイプライン内の命令を実行するステップであって、相対的に大きなデータサイズ内の主要なデータが相対的に小さなデータサイズ内にフィットすることをチェックするステップを含み、前記命令の結果は、前記主要なデータが前記相対的に小さなデータサイズ内にフィットしない場合には、警告であり、且つ、前記主要なデータが前記相対的に小さなデータサイズ内にフィットする場合には、警告ではない、ステップ
を有する方法。 - 前記主要なデータは、ベクトル内に存在している請求項12に記載の方法。
- 前記警告は、フラグである請求項12または13に記載の方法。
- 前記警告は、例外である請求項12または13に記載の方法。
- 前記命令実行パイプライン内において、前記主要なデータを前記相対的に大きなデータサイズから前記相対的に小さなデータサイズに移動させる第2命令を検出するステップと、
これに応答して、前記命令を生成し、且つ、前記第2命令の前に前記命令を挿入するステップと、
を更に有する請求項12から15の何れか1項に記載の方法。 - プロセッサによって処理された際に前記プロセッサに方法を実行させる命令をその上部に保存された状態において有するプログラムであって、
前記方法は、
相対的に大きなデータサイズから相対的に小さなデータサイズに主要なデータを移動させる処理を検出するステップと、
前記処理が命令ストリーム内において実行される前に実行される命令を前記命令ストリームに挿入するステップと、
を有すし、
前記命令は、前記移動と関連するオーバーフロー状態についてチェックする、プログラム。 - 前記主要なデータは、ベクトル内に存在している請求項17に記載のプログラム。
- 前記命令の命令フォーマットは、前記命令を実行する機能ユニットに、前記相対的に小さなデータサイズのサイズについて通知する請求項17または18に記載のプログラム。
- 前記命令によって生成される警告を処理するためのプログラムコードを有する請求項17から19の何れか1項に記載のプログラム。
- 命令実行パイプラインを有するプロセッサと、
前記プロセッサのメモリコントローラに結合されたメモリと、
を有し、
前記命令実行パイプラインは、機能ユニットを有し、前記機能ユニットは、相対的に大きなソースデータサイズからの主要なデータが前記主要なデータが流される先である相対的に小さなデータサイズ内にフィットするかどうかを判定するための回路を有する
演算システム。 - 前記回路は、前記相対的に大きなデータサイズの最上位ビットのビット位置から始まる前記相対的に小さなデータサイズのビット範囲内のビット場所までのビットが、すべて等しいかどうかを確認する比較器を含む請求項21に記載の演算システム。
- 前記相対的に小さなデータサイズのビット範囲内のビット場所は、前記相対的に小さなデータサイズのビット範囲の最上位のビット位置に位置している請求項21または22に記載の演算システム。
- 前記回路は、前記相対的に大きなデータサイズの最上位ビットのビット位置から始まる前記相対的に小さなデータサイズの最上位のビットの直後のビット場所までのビットが、すべて等しいかどうかを確認する比較器を含む請求項21に記載の演算システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/843,558 | 2013-03-15 | ||
US13/843,558 US9417880B2 (en) | 2013-03-15 | 2013-03-15 | Instruction for performing an overload check |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014182825A true JP2014182825A (ja) | 2014-09-29 |
JP5939586B2 JP5939586B2 (ja) | 2016-06-22 |
Family
ID=50634747
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014051273A Active JP5939586B2 (ja) | 2013-03-15 | 2014-03-14 | オーバーロードチェックを実行する命令 |
Country Status (7)
Country | Link |
---|---|
US (2) | US9417880B2 (ja) |
JP (1) | JP5939586B2 (ja) |
KR (1) | KR101641990B1 (ja) |
CN (1) | CN104216827B (ja) |
BR (1) | BR102014006300A2 (ja) |
DE (1) | DE102014003665A1 (ja) |
GB (1) | GB2515145B (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108874445A (zh) * | 2017-10-30 | 2018-11-23 | 上海寒武纪信息科技有限公司 | 神经网络处理器及使用处理器执行向量点积指令的方法 |
US11996105B2 (en) | 2018-09-13 | 2024-05-28 | Shanghai Cambricon Information Technology Co., Ltd. | Information processing method and terminal device |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5093053A (ja) * | 1973-12-13 | 1975-07-24 | ||
JPS6491228A (en) * | 1987-09-30 | 1989-04-10 | Takeshi Sakamura | Data processor |
JPH07334346A (ja) * | 1994-06-10 | 1995-12-22 | Nec Corp | 情報処理装置 |
US20130166889A1 (en) * | 2011-12-09 | 2013-06-27 | Advanced Micro Devices, Inc. | Method and apparatus for generating flags for a processor |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2874351B2 (ja) * | 1991-01-23 | 1999-03-24 | 日本電気株式会社 | 並列パイプライン命令処理装置 |
KR100219233B1 (ko) | 1996-12-28 | 1999-09-01 | 전주범 | 병렬 데이터 추출 및 피팅 장치 |
KR100340594B1 (ko) | 1998-12-18 | 2002-07-18 | 신현준 | 내부순환 유동층 반응기를 이용한 석탄의 가스화방법 |
US6609193B1 (en) * | 1999-12-30 | 2003-08-19 | Intel Corporation | Method and apparatus for multi-thread pipelined instruction decoder |
US6675280B2 (en) * | 2001-11-30 | 2004-01-06 | Intel Corporation | Method and apparatus for identifying candidate virtual addresses in a content-aware prefetcher |
US7051186B2 (en) * | 2002-08-29 | 2006-05-23 | International Business Machines Corporation | Selective bypassing of a multi-port register file |
US7099817B2 (en) * | 2002-11-22 | 2006-08-29 | Texas Instruments Incorporated | Stalling CPU pipeline to prevent corruption in trace while maintaining coherency with asynchronous events |
EP1447742A1 (en) * | 2003-02-11 | 2004-08-18 | STMicroelectronics S.r.l. | Method and apparatus for translating instructions of an ARM-type processor into instructions for a LX-type processor |
CN100568252C (zh) * | 2006-04-11 | 2009-12-09 | 大唐移动通信设备有限公司 | 可实现数据自保护的片上系统的ip核 |
US8868888B2 (en) | 2007-09-06 | 2014-10-21 | Qualcomm Incorporated | System and method of executing instructions in a multi-stage data processing pipeline |
-
2013
- 2013-03-15 US US13/843,558 patent/US9417880B2/en active Active
-
2014
- 2014-03-14 DE DE102014003665.0A patent/DE102014003665A1/de active Pending
- 2014-03-14 GB GB1404537.1A patent/GB2515145B/en active Active
- 2014-03-14 JP JP2014051273A patent/JP5939586B2/ja active Active
- 2014-03-17 CN CN201410098551.6A patent/CN104216827B/zh active Active
- 2014-03-17 BR BR102014006300-5A patent/BR102014006300A2/pt active Search and Examination
- 2014-03-17 KR KR1020140031297A patent/KR101641990B1/ko active IP Right Grant
-
2016
- 2016-08-16 US US15/238,703 patent/US10162640B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5093053A (ja) * | 1973-12-13 | 1975-07-24 | ||
JPS6491228A (en) * | 1987-09-30 | 1989-04-10 | Takeshi Sakamura | Data processor |
JPH07334346A (ja) * | 1994-06-10 | 1995-12-22 | Nec Corp | 情報処理装置 |
US20130166889A1 (en) * | 2011-12-09 | 2013-06-27 | Advanced Micro Devices, Inc. | Method and apparatus for generating flags for a processor |
Also Published As
Publication number | Publication date |
---|---|
KR20140113609A (ko) | 2014-09-24 |
GB201404537D0 (en) | 2014-04-30 |
CN104216827A (zh) | 2014-12-17 |
DE102014003665A1 (de) | 2014-09-18 |
BR102014006300A2 (pt) | 2017-12-12 |
US20170109160A1 (en) | 2017-04-20 |
US10162640B2 (en) | 2018-12-25 |
US20140281406A1 (en) | 2014-09-18 |
KR101641990B1 (ko) | 2016-07-25 |
GB2515145A (en) | 2014-12-17 |
GB2515145B (en) | 2015-12-02 |
JP5939586B2 (ja) | 2016-06-22 |
CN104216827B (zh) | 2018-04-13 |
US9417880B2 (en) | 2016-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108463826B (zh) | 用于在环转变期间保护栈的处理器扩展 | |
US12001842B2 (en) | Hardware apparatuses and methods to switch shadow stack pointers | |
TW201730770A (zh) | 用於記憶體損毀偵測的硬體設備和方法 | |
TWI733798B (zh) | 在執行向量操作時管理位址衝突的設備及方法 | |
US11188341B2 (en) | System, apparatus and method for symbolic store address generation for data-parallel processor | |
US8195923B2 (en) | Methods and mechanisms to support multiple features for a number of opcodes | |
US20140189288A1 (en) | Instruction to reduce elements in a vector register with strided access pattern | |
CN107003850B (zh) | 用于数据推测执行的系统、装置和方法 | |
US9323531B2 (en) | Systems, apparatuses, and methods for determining a trailing least significant masking bit of a writemask register | |
US20210096872A1 (en) | Hardware for eliding security checks when deemed safe during speculative execution | |
US9311094B2 (en) | Predicting a pattern in addresses for a memory-accessing instruction when processing vector instructions | |
JP5939586B2 (ja) | オーバーロードチェックを実行する命令 | |
US11934830B2 (en) | Method and apparatus for data-ready memory operations | |
WO2017112315A1 (en) | Non-tracked control transfers within control transfer enforcement | |
US20160378480A1 (en) | Systems, Methods, and Apparatuses for Improving Performance of Status Dependent Computations | |
US11656873B2 (en) | Shadow stack ISA extensions to support fast return and event delivery (FRED) architecture | |
US9904549B2 (en) | Method and apparatus for loop-invariant instruction detection and elimination |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150407 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20150618 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20150806 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20150907 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151007 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20151208 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160303 |
|
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: 20160322 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20160420 |
|
R155 | Notification before disposition of declining of application |
Free format text: JAPANESE INTERMEDIATE CODE: R155 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160511 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5939586 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |