JP6511462B2 - 浮動小数点レジスタエイリアシングのためのプロセッサ及び方法 - Google Patents
浮動小数点レジスタエイリアシングのためのプロセッサ及び方法 Download PDFInfo
- Publication number
- JP6511462B2 JP6511462B2 JP2016550676A JP2016550676A JP6511462B2 JP 6511462 B2 JP6511462 B2 JP 6511462B2 JP 2016550676 A JP2016550676 A JP 2016550676A JP 2016550676 A JP2016550676 A JP 2016550676A JP 6511462 B2 JP6511462 B2 JP 6511462B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- packed
- physical
- state
- registers
- 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
- 238000000034 method Methods 0.000 title claims description 51
- 230000015654 memory Effects 0.000 claims description 25
- 238000012856 packing Methods 0.000 claims description 11
- 238000013507 mapping Methods 0.000 description 33
- 239000000872 buffer Substances 0.000 description 14
- 238000010586 diagram Methods 0.000 description 10
- 230000008859 change Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 230000000694 effects Effects 0.000 description 7
- 238000003860 storage Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 238000005457 optimization Methods 0.000 description 5
- 238000000605 extraction Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000003892 spreading Methods 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/3013—Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
-
- 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
- G06F9/384—Register renaming
-
- 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
- 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/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30112—Register structure comprising data of variable length
-
- 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/3017—Runtime instruction translation, e.g. macros
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Description
本願は、2013年10月27日に出願された米国仮特許出願第61/896,091号の利益を主張し、その内容が引用によって本明細書に組み込まれている。
INST1:Add Q0=Q1+Q2
INST2:Sub D0=D1−D2
INST3:Mul Q3=Q0×Q1
1)Add Q0=Q1+Q2に関するuops
2)fkregq2d D1,Q0に関するuop
3)Sub D0=D1−D2に関するuops
4)fkreclaimprn D1に関するuop
5)fkregd2q Q0,D1に関するuop
6)Mul Q3=Q0×Q1に関するuops
1)(Dnが偶数であるか又は2倍としてパックされている)場合には、(fkpmovsxbw FT0,Dn)、そうでない場合には(fkpmovsxbwh FT0,Qx) ここで、x=(n−1)/2
2)(Dmが偶数であるか又は2倍としてパックされている)場合には、(fkpmovsxbw FT1,Dm)、そうでない場合には(fkpmovsxbwh FT1,Qy) ここで、y=(m−1)/2
3)fkpaddw Qd,FT0,FT1
1.物理メモリに記憶されたパックされたレジスタをアクセスする方法であって、パックされたレジスタの状態を記憶することと、パックされたレジスタのレジスタに命令がアクセスする状況において、パックされたレジスタの状態に基づいてレジスタに直接アクセスできるか否かを決定することと、レジスタに直接アクセスできない状況において、レジスタに直接アクセス可能になる動作を行うことと、を含む。
Claims (13)
- 物理メモリに記憶されたパックされたレジスタであって、パックされたレジスタのビットは物理レジスタファイルの少なくとも第1の物理レジスタに記憶される、パックされたレジスタにアクセスする方法であって、
前記パックされたレジスタの状態を記憶することと、
命令が前記パックされたレジスタのレジスタのアクセスを含む状況において、前記パックされたレジスタの状態に基づいて前記レジスタに直接アクセスできるか否かを決定することと、
前記レジスタに直接アクセスできない状況において、前記レジスタに直接アクセス可能になる動作を行うことと、を含み、
前記動作は、前記アクセスの前に、第2の物理レジスタの前記パックされたレジスタのビットの少なくとも一部を記憶する少なくとも1つのマイクロ操作(uop)を導入することを含む、
方法。 - 前記動作は、少なくとも1つのuopを導入することと、前記状態を変更することと、前記レジスタの最下位ビット(LSB)を物理レジスタのLSBに揃えることと、のうち少なくとも1つを含む、請求項1の方法。
- 前記アクセスは、読込み操作又は書込み操作を含み、前記動作は、前記レジスタを直接読込み又は書込み可能にする、請求項1の方法。
- 履歴を生成するために、前記動作及び少なくとも1つの次の動作と、前記レジスタのパッキング及び前記レジスタの少なくとも1つの次のパッキングと、前記状態及び前記レジスタの少なくとも1つの次の状態と、のうち少なくとも1つを追跡することと、
次の動作が必要であるか否か、又は、どのような次の動作が必要であるかを、前記履歴に基づいて決定することと、をさらに含む、請求項1の方法。 - 前記状態は、前記パックされたレジスタが単一の物理レジスタに記憶されているか否かと、前記パックされたレジスタが2つ以上の物理レジスタに記憶されているか否かと、前記記憶されたパックされたレジスタを少なくとも1つの物理レジスタに配置する指示と、のうち少なくとも1つを示す、請求項1の方法。
- 複数の論理レジスタ名(LRN)の各々は、1つ以上の前記パックされたレジスタに関連し、各LRNは、物理レジスタに関連する物理レジスタ名(PRN)にマッピングされる、請求項1の方法。
- 前記レジスタは、前記レジスタの最下位ビット(LSB)が物理レジスタのLSBに揃っている場合に直接アクセス可能である、請求項1の方法。
- 前記レジスタは、物理メモリに記憶された前記レジスタのビットにアクセスする前に当該ビットを移動することなく前記命令によってアクセス可能である場合に、直接アクセス可能である、請求項1の方法。
- 前記パックされたレジスタの1つに対する書込みの後に、前記パックされたレジスタ内のより多くのレジスタを読取り可能である、請求項1の方法。
- 物理メモリに記憶されたパックされたレジスタであって、パックされたレジスタのビットは物理レジスタファイルの少なくとも第1の物理レジスタに記憶される、パックされたレジスタにアクセスする装置であって、
前記パックされたレジスタの状態を記憶する回路と、
命令が前記パックされたレジスタのレジスタにアクセスする状況において、前記レジスタに直接アクセスできるか否かを、前記状態に基づいて決定する回路と、
前記レジスタに直接アクセスできない状況において、前記レジスタに直接アクセス可能になる動作を行う回路と、を備え、
前記動作は、前記アクセスの前に、第2の物理レジスタの前記パックされたレジスタのビットの少なくとも一部を記憶する少なくとも1つのマイクロ操作(uop)を導入することを含む、
装置。 - 前記動作は、少なくとも1つのuopを導入することと、前記状態を変更することと、前記レジスタの最下位ビット(LSB)を物理レジスタのLSBに揃えることと、のうち少なくとも1つを含む、請求項10の装置。
- 履歴を生成するために、前記動作及び少なくとも1つの次の動作と、前記レジスタのパッキング及び前記レジスタの少なくとも1つの次のパッキングと、前記状態及び前記レジスタの少なくとも1つの次の状態と、のうち少なくとも1つを追跡する回路と、
次の動作が必要であるか否か、又は、どのような次の動作が必要であるかを、前記履歴に基づいて決定する回路と、をさらに備える、請求項10の装置。 - 前記状態は、前記パックされたレジスタが単一の物理レジスタに記憶されているか否かと、前記パックされたレジスタが2つ以上の物理レジスタに記憶されているか否かと、前記記憶されたパックされたレジスタを少なくとも1つの物理レジスタに配置する指示と、のうち少なくとも1つを示す、請求項10の装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361896091P | 2013-10-27 | 2013-10-27 | |
US61/896,091 | 2013-10-27 | ||
PCT/US2014/062195 WO2015061697A1 (en) | 2013-10-27 | 2014-10-24 | Processor and methods for floating point register aliasing |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017502434A JP2017502434A (ja) | 2017-01-19 |
JP6511462B2 true JP6511462B2 (ja) | 2019-05-15 |
Family
ID=52993625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016550676A Active JP6511462B2 (ja) | 2013-10-27 | 2014-10-24 | 浮動小数点レジスタエイリアシングのためのプロセッサ及び方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20150121040A1 (ja) |
EP (1) | EP3060978B1 (ja) |
JP (1) | JP6511462B2 (ja) |
KR (1) | KR102332478B1 (ja) |
CN (1) | CN105993000B (ja) |
WO (1) | WO2015061697A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11544214B2 (en) * | 2015-02-02 | 2023-01-03 | Optimum Semiconductor Technologies, Inc. | Monolithic vector processor configured to operate on variable length vectors using a vector length register |
US10949202B2 (en) | 2016-04-14 | 2021-03-16 | International Business Machines Corporation | Identifying and tracking frequently accessed registers in a processor |
US10007590B2 (en) | 2016-04-14 | 2018-06-26 | International Business Machines Corporation | Identifying and tracking frequently accessed registers in a processor |
CN107291425B (zh) * | 2017-06-23 | 2020-11-24 | 上海兆芯集成电路有限公司 | 合并解决重命名尺寸问题的部分写入结果的系统和方法 |
JP7176204B2 (ja) * | 2018-03-12 | 2022-11-22 | オムロン株式会社 | 演算ユニット、および制御装置 |
JP7032647B2 (ja) * | 2018-04-17 | 2022-03-09 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US11327757B2 (en) * | 2020-05-04 | 2022-05-10 | International Business Machines Corporation | Processor providing intelligent management of values buffered in overlaid architected and non-architected register files |
US11366774B2 (en) * | 2020-09-24 | 2022-06-21 | Adesto Technologies Corporation | Memory latency reduction in XIP mode |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5852726A (en) | 1995-12-19 | 1998-12-22 | Intel Corporation | Method and apparatus for executing two types of instructions that specify registers of a shared logical register file in a stack and a non-stack referenced manner |
US6122656A (en) * | 1998-07-31 | 2000-09-19 | Advanced Micro Devices, Inc. | Processor configured to map logical register numbers to physical register numbers using virtual register numbers |
ATE489674T1 (de) * | 1999-09-08 | 2010-12-15 | Hajime Seki | Registerumbenennungssystem |
US6633970B1 (en) * | 1999-12-28 | 2003-10-14 | Intel Corporation | Processor with registers storing committed/speculative data and a RAT state history recovery mechanism with retire pointer |
EP1217513A3 (en) * | 2000-12-23 | 2003-08-13 | International Business Machines Corporation | Method for handling 32 bit results for an out-of-order processor with a 64 bit architecture |
US7162614B2 (en) * | 2003-06-30 | 2007-01-09 | Intel Corporation | Elimination of potential renaming stalls due to use of partial registers |
US7428631B2 (en) * | 2003-07-31 | 2008-09-23 | Intel Corporation | Apparatus and method using different size rename registers for partial-bit and bulk-bit writes |
US20050102494A1 (en) * | 2003-11-12 | 2005-05-12 | Grochowski Edward T. | Method and apparatus for register stack implementation using micro-operations |
TWI273485B (en) * | 2004-02-04 | 2007-02-11 | Via Tech Inc | Pipeline microprocessor, apparatus, and method for generating early status flags |
CN100524208C (zh) * | 2006-10-26 | 2009-08-05 | 中国科学院计算技术研究所 | 对状态寄存器进行重命名的方法和使用该方法的处理器 |
US8694758B2 (en) * | 2007-12-27 | 2014-04-08 | Intel Corporation | Mixing instructions with different register sizes |
US8069339B2 (en) * | 2009-05-20 | 2011-11-29 | Via Technologies, Inc. | Microprocessor with microinstruction-specifiable non-architectural condition code flag register |
US8914617B2 (en) * | 2009-12-26 | 2014-12-16 | Intel Corporation | Tracking mechanism coupled to retirement in reorder buffer for indicating sharing logical registers of physical register in record indexed by logical register |
US8578136B2 (en) * | 2010-06-15 | 2013-11-05 | Arm Limited | Apparatus and method for mapping architectural registers to physical registers |
US8607033B2 (en) * | 2010-09-03 | 2013-12-10 | Lsi Corporation | Sequentially packing mask selected bits from plural words in circularly coupled register pair for transferring filled register bits to memory |
US9626190B2 (en) * | 2010-10-07 | 2017-04-18 | Advanced Micro Devices, Inc. | Method and apparatus for floating point register caching |
US9158541B2 (en) | 2010-11-03 | 2015-10-13 | Apple Inc. | Register renamer that handles multiple register sizes aliased to the same storage locations |
EP2624126B1 (en) * | 2011-04-07 | 2016-11-02 | VIA Technologies, Inc. | Efficient conditional ALU instruction in read-port limited register file microprocessor |
US9063747B2 (en) * | 2011-04-28 | 2015-06-23 | Freescale Semiconductor, Inc. | Microprocessor systems and methods for a combined register file and checkpoint repair register |
CN102184290B (zh) * | 2011-05-06 | 2013-02-06 | 天津大学 | 嵌入式微处理器的周期精确和位精确系统级模型构建方法 |
-
2014
- 2014-10-24 CN CN201480064205.4A patent/CN105993000B/zh active Active
- 2014-10-24 WO PCT/US2014/062195 patent/WO2015061697A1/en active Application Filing
- 2014-10-24 JP JP2016550676A patent/JP6511462B2/ja active Active
- 2014-10-24 KR KR1020167012859A patent/KR102332478B1/ko active IP Right Grant
- 2014-10-24 US US14/523,660 patent/US20150121040A1/en not_active Abandoned
- 2014-10-24 EP EP14855236.7A patent/EP3060978B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3060978A1 (en) | 2016-08-31 |
KR102332478B1 (ko) | 2021-11-30 |
KR20160078377A (ko) | 2016-07-04 |
CN105993000B (zh) | 2021-05-07 |
EP3060978B1 (en) | 2021-08-11 |
WO2015061697A1 (en) | 2015-04-30 |
EP3060978A4 (en) | 2017-06-28 |
JP2017502434A (ja) | 2017-01-19 |
CN105993000A (zh) | 2016-10-05 |
US20150121040A1 (en) | 2015-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6511462B2 (ja) | 浮動小数点レジスタエイリアシングのためのプロセッサ及び方法 | |
TWI835807B (zh) | 用於組合載入或儲存指示的方法、裝置及非暫時性電腦可讀媒體 | |
US11183225B2 (en) | Memories and methods for performing vector atomic memory operations with mask control and variable data length and data unit size | |
US10860326B2 (en) | Multi-threaded instruction buffer design | |
US9009447B2 (en) | Acceleration of string comparisons using vector instructions | |
KR20180038456A (ko) | 명령 피연산자들에 대한 좁은 산출 값들을 비순차적 프로세서의 레지스터 맵에 직접 저장하는 것 | |
US11144319B1 (en) | Redistribution of architected states for a processor register file | |
KR102524565B1 (ko) | 로드 스토어 유닛들을 바이패싱하여 스토어 및 로드 추적 | |
US20130024654A1 (en) | Vector operations for compressing selected vector elements | |
JP7097361B2 (ja) | オペレーションキャッシュ | |
US20180203804A1 (en) | Firmware or hardware component assist for memory mapped i/o | |
US20170046160A1 (en) | Efficient handling of register files | |
JP2013517576A5 (ja) | ||
US9389865B1 (en) | Accelerated execution of target of execute instruction | |
US20220100501A1 (en) | Compressing Micro-Operations in Scheduler Entries in a Processor | |
US20210132985A1 (en) | Shadow latches in a shadow-latch configured register file for thread storage | |
US9916108B2 (en) | Efficient loading and storing of data between memory and registers using a data structure for load and store addressing | |
KR20230137240A (ko) | 연산 제거 | |
GB2516091A (en) | Method and system for implementing a dynamic array data structure in a cache line |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20171019 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180919 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20181009 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190108 |
|
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: 20190312 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190408 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6511462 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 |