CN105808211B - 用于将程序中的加载指令分发到数据高速缓存的方法和设备 - Google Patents
用于将程序中的加载指令分发到数据高速缓存的方法和设备 Download PDFInfo
- Publication number
- CN105808211B CN105808211B CN201610192717.XA CN201610192717A CN105808211B CN 105808211 B CN105808211 B CN 105808211B CN 201610192717 A CN201610192717 A CN 201610192717A CN 105808211 B CN105808211 B CN 105808211B
- Authority
- CN
- China
- Prior art keywords
- load
- instruction
- window
- function
- storage
- 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 abstract description 67
- 239000012536 storage buffer Substances 0.000 claims abstract description 117
- 238000003860 storage Methods 0.000 claims description 164
- 239000000872 buffer Substances 0.000 claims description 35
- 238000004458 analytical method Methods 0.000 claims description 5
- 238000005259 measurement Methods 0.000 description 42
- 230000006870 function Effects 0.000 description 38
- 238000009826 distribution Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 5
- 235000013399 edible fruits Nutrition 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011982 device technology Methods 0.000 description 1
- 210000003811 finger Anatomy 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- 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
-
- 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
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- 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/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
Claims (15)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1302373.4A GB2501582B (en) | 2013-02-11 | 2013-02-11 | Speculative load issue |
GB1302373.4 | 2013-02-11 | ||
CN201410047131.5A CN103984643B (zh) | 2013-02-11 | 2014-02-11 | 用于将程序中的加载指令分发到数据高速缓存的方法和设备 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410047131.5A Division CN103984643B (zh) | 2013-02-11 | 2014-02-11 | 用于将程序中的加载指令分发到数据高速缓存的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105808211A CN105808211A (zh) | 2016-07-27 |
CN105808211B true CN105808211B (zh) | 2019-01-25 |
Family
ID=47998926
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410047131.5A Active CN103984643B (zh) | 2013-02-11 | 2014-02-11 | 用于将程序中的加载指令分发到数据高速缓存的方法和设备 |
CN201610192717.XA Active CN105808211B (zh) | 2013-02-11 | 2014-02-11 | 用于将程序中的加载指令分发到数据高速缓存的方法和设备 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410047131.5A Active CN103984643B (zh) | 2013-02-11 | 2014-02-11 | 用于将程序中的加载指令分发到数据高速缓存的方法和设备 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9395991B2 (zh) |
CN (2) | CN103984643B (zh) |
DE (1) | DE102014002012A1 (zh) |
GB (2) | GB2501582B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10467010B2 (en) * | 2013-03-15 | 2019-11-05 | Intel Corporation | Method and apparatus for nearest potential store tagging |
US10152327B2 (en) | 2013-03-15 | 2018-12-11 | Intel Corporation | Apparatus for gating a load operation based on entries of a prediction table |
US10073789B2 (en) * | 2015-08-28 | 2018-09-11 | Oracle International Corporation | Method for load instruction speculation past older store instructions |
US10521351B2 (en) * | 2017-01-12 | 2019-12-31 | International Business Machines Corporation | Temporarily suppressing processing of a restrained storage operand request |
US10621090B2 (en) | 2017-01-12 | 2020-04-14 | International Business Machines Corporation | Facility for extending exclusive hold of a cache line in private cache |
CN108345470B (zh) * | 2017-01-24 | 2021-10-08 | 阿里巴巴集团控股有限公司 | 一种数据处理、存储的方法、装置及电子设备 |
TWI645286B (zh) | 2017-08-31 | 2018-12-21 | 慧榮科技股份有限公司 | 記憶體控制裝置和方法 |
US10866805B2 (en) * | 2018-01-03 | 2020-12-15 | Arm Limited | Speculation barrier instruction |
CN108920191B (zh) * | 2018-06-05 | 2020-11-20 | 上海兆芯集成电路有限公司 | 处理器电路及其操作方法 |
CN117806706A (zh) * | 2023-12-29 | 2024-04-02 | 上海合芯数字科技有限公司 | 存储顺序违例处理方法、装置、电子设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1193777A (zh) * | 1997-03-13 | 1998-09-23 | 国际商业机器公司 | 非顺序处理系统中的低执行时间指令发送 |
CN1382274A (zh) * | 1999-05-26 | 2002-11-27 | 因芬尼昂技术股份公司 | 微处理机的延迟时隙控制机构 |
CN101067781A (zh) * | 2006-03-07 | 2007-11-07 | 英特尔公司 | 执行存储器消歧的技术 |
CN101763250A (zh) * | 2008-12-25 | 2010-06-30 | 世意法(北京)半导体研发有限责任公司 | 减少功率的加载/存储队列搜索机制 |
CN102364431A (zh) * | 2011-10-20 | 2012-02-29 | 北京北大众志微系统科技有限责任公司 | 一种实现读指令执行的方法及装置 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5850543A (en) * | 1996-10-30 | 1998-12-15 | Texas Instruments Incorporated | Microprocessor with speculative instruction pipelining storing a speculative register value within branch target buffer for use in speculatively executing instructions after a return |
US5974543A (en) * | 1998-01-23 | 1999-10-26 | International Business Machines Corporation | Apparatus and method for performing subroutine call and return operations |
US6115777A (en) * | 1998-04-21 | 2000-09-05 | Idea Corporation | LOADRS instruction and asynchronous context switch |
US6381691B1 (en) * | 1999-08-13 | 2002-04-30 | International Business Machines Corporation | Method and apparatus for reordering memory operations along multiple execution paths in a processor |
JP3729087B2 (ja) * | 2001-05-23 | 2005-12-21 | 日本電気株式会社 | マルチプロセッサシステム、データ依存投機実行制御装置およびその方法 |
US20040123081A1 (en) * | 2002-12-20 | 2004-06-24 | Allan Knies | Mechanism to increase performance of control speculation |
US7441107B2 (en) * | 2003-12-31 | 2008-10-21 | Intel Corporation | Utilizing an advanced load address table for memory disambiguation in an out of order processor |
JP4247132B2 (ja) * | 2004-01-29 | 2009-04-02 | 株式会社ルネサステクノロジ | 情報処理装置 |
JP2006040173A (ja) * | 2004-07-29 | 2006-02-09 | Fujitsu Ltd | 分岐予測装置および分岐予測方法 |
US20060095752A1 (en) * | 2004-08-28 | 2006-05-04 | Min-Cheng Kao | [method for return instruction identification and associated method for return target pointer prediction] |
US7519775B2 (en) * | 2006-02-23 | 2009-04-14 | Sun Microsystems, Inc. | Enforcing memory-reference ordering requirements at the L2 cache level |
US7827392B2 (en) | 2006-06-05 | 2010-11-02 | Qualcomm Incorporated | Sliding-window, block-based branch target address cache |
US20100325395A1 (en) * | 2009-06-19 | 2010-12-23 | Doug Burger | Dependence prediction in a memory system |
US8601240B2 (en) * | 2010-05-04 | 2013-12-03 | Oracle International Corporation | Selectively defering load instructions after encountering a store instruction with an unknown destination address during speculative execution |
KR101862799B1 (ko) * | 2011-12-12 | 2018-05-31 | 삼성전자주식회사 | 메모리 컨트롤러 및 메모리 컨트롤 방법 |
-
2013
- 2013-02-11 GB GB1302373.4A patent/GB2501582B/en not_active Expired - Fee Related
- 2013-02-11 GB GB1321319.4A patent/GB2509830B/en not_active Expired - Fee Related
-
2014
- 2014-01-31 US US14/169,601 patent/US9395991B2/en active Active
- 2014-02-07 DE DE102014002012.6A patent/DE102014002012A1/de not_active Withdrawn
- 2014-02-11 CN CN201410047131.5A patent/CN103984643B/zh active Active
- 2014-02-11 CN CN201610192717.XA patent/CN105808211B/zh active Active
-
2016
- 2016-06-15 US US15/183,365 patent/US9910672B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1193777A (zh) * | 1997-03-13 | 1998-09-23 | 国际商业机器公司 | 非顺序处理系统中的低执行时间指令发送 |
CN1382274A (zh) * | 1999-05-26 | 2002-11-27 | 因芬尼昂技术股份公司 | 微处理机的延迟时隙控制机构 |
CN101067781A (zh) * | 2006-03-07 | 2007-11-07 | 英特尔公司 | 执行存储器消歧的技术 |
CN101763250A (zh) * | 2008-12-25 | 2010-06-30 | 世意法(北京)半导体研发有限责任公司 | 减少功率的加载/存储队列搜索机制 |
CN102364431A (zh) * | 2011-10-20 | 2012-02-29 | 北京北大众志微系统科技有限责任公司 | 一种实现读指令执行的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
GB2509830B (en) | 2014-12-24 |
US9910672B2 (en) | 2018-03-06 |
GB2501582A (en) | 2013-10-30 |
GB201302373D0 (en) | 2013-03-27 |
CN105808211A (zh) | 2016-07-27 |
CN103984643A (zh) | 2014-08-13 |
US9395991B2 (en) | 2016-07-19 |
GB2501582B (en) | 2014-12-24 |
US20160291976A1 (en) | 2016-10-06 |
GB201321319D0 (en) | 2014-01-15 |
CN103984643B (zh) | 2016-04-06 |
DE102014002012A1 (de) | 2014-08-14 |
US20140229718A1 (en) | 2014-08-14 |
GB2509830A (en) | 2014-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105808211B (zh) | 用于将程序中的加载指令分发到数据高速缓存的方法和设备 | |
US10001997B2 (en) | Prioritizing instructions based on type | |
US9672039B2 (en) | Register file having a plurality of sub-register files | |
US9606834B2 (en) | Allocating resources to threads based on speculation metric | |
CN105005463B (zh) | 具有世代重命名的计算机处理器 | |
US9612968B2 (en) | Migration of data to register file cache | |
CN108196884A (zh) | 利用生成重命名的计算机信息处理器 | |
US20150154022A1 (en) | Soft-Partitioning of a Register File Cache | |
CN104603747B (zh) | 响应于分支预测表调换指令而调换分支方向历史及相关的系统和方法 | |
WO2016155421A1 (en) | Method and apparatus for superscalar processor | |
US20130262725A1 (en) | Data processing device and method for controlling data processing device | |
US11507379B2 (en) | Managing load and store instructions for memory barrier handling | |
GB2550658B (en) | Apparatus and methods for out of order item selection and status updating | |
US10713049B2 (en) | Stunt box to broadcast and store results until retirement for an out-of-order processor | |
JP2020077334A (ja) | 演算処理装置および演算処理装置の制御方法 | |
US20240086196A1 (en) | Processing of issued instructions | |
CN112416244A (zh) | 用于操作发出队列的装置和方法 | |
CN108536474A (zh) | 延迟缓冲器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: Hertfordshire Applicant after: Mex Technology Co.,Ltd. Address before: Hertfordshire Applicant before: Hai Luo Software Co.,Ltd. |
|
CB02 | Change of applicant information | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20180720 Address after: California, USA Applicant after: Imagination Technologies Ltd. Address before: Hertfordshire Applicant before: Mex Technology Co.,Ltd. Effective date of registration: 20180720 Address after: Hertfordshire Applicant after: Hai Luo Software Co.,Ltd. Address before: Hertfordshire Applicant before: Imagination Technologies Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |