CN1499380A - 产生预测地址值的电路和方法 - Google Patents
产生预测地址值的电路和方法 Download PDFInfo
- Publication number
- CN1499380A CN1499380A CNA2003101030133A CN200310103013A CN1499380A CN 1499380 A CN1499380 A CN 1499380A CN A2003101030133 A CNA2003101030133 A CN A2003101030133A CN 200310103013 A CN200310103013 A CN 200310103013A CN 1499380 A CN1499380 A CN 1499380A
- Authority
- CN
- China
- Prior art keywords
- address
- value
- subclass
- predicted
- speed cache
- 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
- 238000000034 method Methods 0.000 title claims description 8
- 238000003491 array Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000003068 static 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/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
- G06F9/3832—Value prediction for operands; operand history buffers
-
- 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
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- 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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/355—Indexed addressing
Abstract
一种用于产生预测地址值的计算电路包括含有一个指令值的指令字段。一个立即值字段与该指令字段关联并包括一个偏移值和低阶位第一子集。一个有效地址高速缓存存储多个近期被访问的存储器地址的多个高阶位并读出与一个存储器地址的高阶位第二子集对应的值,而该存储器地址又对应于该低阶位第一子集。一个电路使该第二子集、该第一子集和该偏移值串接起来,从而产生预测地址值。
Description
技术领域
本发明涉及计算机,更具体地说,涉及用于计算电路中地址预测的电路。
背景技术
改善计算机速度的一种方法称作“流水线技术”,其中指令被馈送到用于多阶段处理器中执行单元的流水线中。例如,为处理一个典型的指令,流水线可包括若干单独的阶段用于从存储器中取出指令、执行该指令、以及把指令结果写回存储器。这样,对于送入流水线的指令序列,当第一指令的结果正由流水线的第三阶段写回存储器时,下一条指令正由第二阶段执行,而再下一条指令正由第一阶段取出。尽管每个单独指令的处理可能占用几个时钟周期,由于其他指令也同时受到处理,所以可以大大改善处理器的总吞吐量。
通过使用高速缓存能得到进一步的改善。高速缓存是一类存储器,它通常比计算机中的主存储器快。高速缓存通常连至一个或多个处理器,并连至主存储器。高速缓存使访问加速,这是通过保存选定存储区地址处所储存的信息的一个复杂,从而使处理器对选定存储区地址的访问请求由高速缓存来处置来实现的。每当收到一个对未储存在高速缓存中的存储器地址的访问请求时,高速缓存通常是从存储器中提取信息并把该信息转发给处理器。
每当对已存在于高速缓存中的存储器地址的访问请求数(称作“高速缓存命中数”)相对于对未被存入高速缓存中的存储器地址的访问请求数(称作“高速缓存未命中数”)达到最大化时,高速缓存的好处便达到最大化。增大高速缓存命中率的一种途径是增大高速缓存的大小。然而,增大高速缓存存储器的大小可能增加与计算机相关的成本,还可能延长与高速缓存相关的访问时间。
对于整数和商业代码流,工作负载主要被对地址的操作所占用。在一个指令高速缓存中,阵列区通常与那里存储的地址的最大尺寸成比例。在试图实现对64位体系结构的值预测时,用于高速缓存预测值的高速缓存阵列区是32位体系结构的两倍。这不仅用掉大量芯片区而且它还使值预测高速缓存/阵列访问减慢。
在64位体系结构中,64位地址的高阶位趋向于在时间上高度相关,特别是对于分段地址模型更是如此。发生这种情况是因为在程序中的一个给定点,即使可能存在数十条地址,通常也只有四至八段是活跃的。在典型的64位体系结构中,通常只有地址的约32个低阶位以近乎随机的方式进行变化,而高阶的32位趋向于落入若干较缓慢变化的模式。在几百个连续周期的过程中,高阶位的这些较缓慢变化模式的数量是有限的而且看来是静态的。
所以,需要一种电路,它预测地址同时只使用有限的高速缓存空间量。
发明内容
本发明克服了先有技术的缺点,在其一个方面,本发明是一种计算电路,用于产生一个预测地址值,它包括含有一个指令值的指令字段。一个立即值字段与该指令字段相关联并包括一个偏移值和低阶位第一子集。一个有效地址高速缓存储存多个近期被访问的存储器地址的多个高阶位并读出与一个存储器地址的高阶位第二子集对应的值,而该存储器地址又对应于该低阶位第一子集。一个电路使该第二子集、该第一子集和该偏移值串接起来,从而产生预测地址值。
在另一个方面,本发明是在一个计算电路中预测下一个地址的方法,在该计算电路中多个地址部分被存储在有效地址高速缓存中。每个地址部分包括一个地址的高阶部分。该有效地址高速缓存由来自一个立即地址低阶部分的位子集寻址,该立即地址存储在与一指令关联的立即值字段中,从而从有效地址高速缓存中读出一个预测地址的高阶部分。该预测地址的高阶部分与该立即地址的低阶部分串接起来,从而产生一个预测地址,该预测地址被传送到流水线。该预测地址与一已知地址比较,如果该预测地址与该已知地址不一致,则发出一个信号指出该预测地址是不正确的。
由下文中结合附图对优选实施例的描述,本发明的这些和其他方面将变得显而易见。对本领域技术人员而言,显然可以实现对本发明的许多改变和修改而不偏离本公开的新构想的精神和范围。
附图说明
图1是本发明一个实施例的方框图。
图2是本发明第二实施例的方框图。
具体实施方式
现在详细描述本发明的一个优选实施例。参考附图,在各图中相同数字表示相同部件。如在这里的描述和整个权利要求中使用的那样,下列各词在这里取其明显关联的含义,除非其上下文清楚表明不是如此:“一”、“一个”(a或an”)、“该(the)”的意义包括复数含义,“在...中(in)”的意义包括“在...中(in)”和“在...上(on)”。
如图1中所示,根据本发明的一个地址预测电路100的一个实施示例包括一个指令字段110和与其关联的相关立即值字段112。指令字段110和立即值字段112可以在一个寄存器中实现。指令字段110包含一个指令值(例如“LOAD”)。立即值字段112包括偏移值116(在所示例子中的位4-31)和较低阶位(在所示例子中的位0-3)的第一子集114。第一子集114可对应于一个段表104高速缓存寻址方案,其类型为计算电路中通常使用的类型。
一个有效地址高速缓存120(其可包括一个关联存储器)储存多个近期被访问的存储器地址的多个高阶位。有效地址高速缓存120由低阶位(位0-3)的第一子集114寻址。与一个存储器地址的高阶位的第二子集122相对应的一个值由有效地址高速缓存120读出。第二子集122对应于低阶位的第一子集。电路124(其可能只不过是导线的并置)使第二子集122、第一子集114以及偏移值116串接起来。这产生一个预测的地址值140,其被发送给流水线106。
一个散列电路118,其响应第一子集114,可用于为有效地址高速缓存产生一个地址。这样的电路可利用本技术领域已知的许多散列算法中的任何一个。
一个比较电路142比较预测地址值140和一已知地址值136,当预测地址值140不等于已知地址值136时发出信号144。已知地址值136是数据地址的高阶部分132和该数据地址的低阶部分134的串接。该数据地址是由专用加法器130把从寄存器文件102中接收的当前地址131加到指令133中的位移上确定的。所产生的高阶部分132被发送到有效地址高速缓存120供以后使用。低阶部分被发送到立即值字段112以助于以后的预测。
如图2中所示,较低阶位第一子集114可以与该数据地址的高阶部分132串接。在本发明的这一实施例中,无须来自立即值字段112的额外导线把第一子集114发送到串接电路124。如果采用一个散列电路118为有效地址高速缓存120产生地址,则这一实施例会是特别有用的。
尽管上面的讨论显示的本发明实施例应用于一个64位体系结构,但应该理解,本发明可应用于任何位长度的体系结构。
上面描述的实施例只是作为举例给出。容易理解,由本说明中公开的具体实施例能做出许多改变而不脱离本发明。因此,本发明的范围要由权利要求确定,而不是限于上文具体描述的实施例。
Claims (9)
1.一种用于产生预测地址值的计算电路,包含:
a.一个指令字段,含有一个指令值并有一个相关联的立即值字段,该立即值字段包括一个偏移值和低阶位第一子集;
b.一个有效地址高速缓存,其存储多个近期被访问的存储器地址的多个高阶位,并读出与一个存储器地址的高阶位第二子集对应的值,该存储器地址对应于该低阶位第一子集;以及
c.一个电路,用于把该第二子集、该第一子集以及该偏移值串接起来,从而产生预测地址值。
2.权利要求1的计算电路,其特征在于,进一步包含一个散列电路,其响应该第一子集并为有效地址高速缓存产生一个地址,该地址符合一个预先确定的散列算法。
3.权利要求1的计算电路,其特征在于,该有效地址高速缓存包含一个关联存储器。
4.权利要求1的计算电路,其特征在于,进一步包含一个比较电路,其比较该预测地址值和一已知地址值,而且当该预测地址值不等于该已知地址值时发出一个信号。
5.权利要求1的计算电路,其特征在于,进一步包含一个已知地址电路用于产生该已知地址值。
6.权利要求5的计算电路,其特征在于,已知地址电路包含一专用加法器,其响应一个寄存器文件的当前地址输出和从当前指令寄存器接收的地址位移值,并产生数据的下一个地址高阶子集和数据的下一个地址低阶子集,其中该数据的下一个地址较高阶子集被传送给该有效地址高速缓存。
7.一种在计算电路中预测下一个地址的方法,包含如下步骤:
a.把多个地址部分存储到有效地址高速缓存中,每个地址部分包括一个地址的高阶部分;
b.以来自一个立即地址低阶部分的位子集对该有效地址高速缓存寻址,该立即地址低阶部分存储在与一指令关联的立即值字段中,从而从该有效地址高速缓存中读出预测地址的高阶部分;
c.把该预测地址高阶部分与该立即地址低阶部分串接起来,从而产生一个预测地址;
d.把该预测地址传送给流水线;以及
e.比较该预测地址和一已知地址,如果该预测地址与该已知地址不同,则发出一个信号,表明该预测地址不正确。
8.权利要求7的方法,其特征在于,该已知地址是把地址位移值加到当前地址值上产生的。
9.权利要求7的方法,其特征在于,进一步包含把该已知地址高阶部分存储到该有效地址高速缓存中的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/282,813 US6922767B2 (en) | 2002-10-29 | 2002-10-29 | System for allowing only a partial value prediction field/cache size |
US10/282,813 | 2002-10-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1499380A true CN1499380A (zh) | 2004-05-26 |
CN100375065C CN100375065C (zh) | 2008-03-12 |
Family
ID=32107462
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2003101030133A Expired - Fee Related CN100375065C (zh) | 2002-10-29 | 2003-10-28 | 产生预测地址值的电路和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US6922767B2 (zh) |
JP (1) | JP2004152292A (zh) |
CN (1) | CN100375065C (zh) |
TW (1) | TWI254246B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101048762B (zh) * | 2004-08-27 | 2012-12-26 | 高通股份有限公司 | 用于在总线上发送存储器预取命令的方法和设备 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102270790B1 (ko) * | 2014-10-20 | 2021-06-29 | 삼성전자주식회사 | 데이터 처리 방법 및 장치 |
US10740248B2 (en) * | 2018-12-13 | 2020-08-11 | International Business Machines Corporation | Methods and systems for predicting virtual address |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4819165A (en) * | 1987-03-27 | 1989-04-04 | Tandem Computers Incorporated | System for performing group relative addressing |
JP2734466B2 (ja) * | 1991-05-02 | 1998-03-30 | 三菱電機株式会社 | マイクロコンピュータ |
US5497494A (en) * | 1993-07-23 | 1996-03-05 | International Business Machines Corporation | Method for saving and restoring the state of a CPU executing code in protected mode |
US5864707A (en) * | 1995-12-11 | 1999-01-26 | Advanced Micro Devices, Inc. | Superscalar microprocessor configured to predict return addresses from a return stack storage |
US5826074A (en) * | 1996-11-22 | 1998-10-20 | S3 Incorporated | Extenstion of 32-bit architecture for 64-bit addressing with shared super-page register |
US6016545A (en) * | 1997-12-16 | 2000-01-18 | Advanced Micro Devices, Inc. | Reduced size storage apparatus for storing cache-line-related data in a high frequency microprocessor |
US6477203B1 (en) * | 1998-10-30 | 2002-11-05 | Agilent Technologies, Inc. | Signal processing distributed arithmetic architecture |
US6470438B1 (en) * | 2000-02-22 | 2002-10-22 | Hewlett-Packard Company | Methods and apparatus for reducing false hits in a non-tagged, n-way cache |
US6785798B2 (en) * | 2001-08-10 | 2004-08-31 | Macronix International Co., Ltd. | Method and system for circular addressing with efficient memory usage |
US6675279B2 (en) * | 2001-10-16 | 2004-01-06 | International Business Machines Corporation | Behavioral memory enabled fetch prediction mechanism within a data processing system |
-
2002
- 2002-10-29 US US10/282,813 patent/US6922767B2/en not_active Expired - Fee Related
-
2003
- 2003-07-30 TW TW092120803A patent/TWI254246B/zh not_active IP Right Cessation
- 2003-10-24 JP JP2003365280A patent/JP2004152292A/ja active Pending
- 2003-10-28 CN CNB2003101030133A patent/CN100375065C/zh not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101048762B (zh) * | 2004-08-27 | 2012-12-26 | 高通股份有限公司 | 用于在总线上发送存储器预取命令的方法和设备 |
CN103034476A (zh) * | 2004-08-27 | 2013-04-10 | 高通股份有限公司 | 用于在总线上发送存储器预取命令的方法和设备 |
CN103034476B (zh) * | 2004-08-27 | 2016-07-06 | 高通股份有限公司 | 用于在总线上发送存储器预取命令的方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN100375065C (zh) | 2008-03-12 |
TW200415515A (en) | 2004-08-16 |
US20040083349A1 (en) | 2004-04-29 |
JP2004152292A (ja) | 2004-05-27 |
TWI254246B (en) | 2006-05-01 |
US6922767B2 (en) | 2005-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6961821B2 (en) | Reconfigurable cache controller for nonuniform memory access computer systems | |
JP2505086B2 (ja) | アドレス生成機構及びデ―タの事前取り出し方法 | |
US5694568A (en) | Prefetch system applicable to complex memory access schemes | |
CN102792285B (zh) | 用于处理数据的装置和方法 | |
CN1135477C (zh) | 实现动态显示存储器的方法和装置 | |
CN1307561C (zh) | 不同高速缓存级上具有关联集重叠同余组的多级高速缓存 | |
US6745291B1 (en) | High speed LRU line replacement system for cache memories | |
CN111143243B (zh) | 一种基于nvm混合内存的缓存预取方法及系统 | |
AU658914B2 (en) | Improving computer performance by simulated cache associativity | |
CN1302393C (zh) | 高速缓冲存储器系统和控制高速缓冲存储器系统的方法 | |
WO2007145700A1 (en) | Apparatus and method of prefetching data | |
US6041393A (en) | Array padding for higher memory throughput in the presence of dirty misses | |
CN109461113B (zh) | 一种面向数据结构的图形处理器数据预取方法及装置 | |
JP2002073412A (ja) | メモリへのアクセス方法及びメモリ | |
CN1726477A (zh) | 用于预取和存储器管理的页描述符 | |
JP2681398B2 (ja) | 記憶装置 | |
CN102662869A (zh) | 虚拟机中的内存访问方法和装置及查找器 | |
CN1912854A (zh) | 用于从地址高速缓存去除条目的方法和设备 | |
US5333291A (en) | Stride enhancer for high speed memory accesses with line fetching mode and normal mode employing boundary crossing determination | |
CN114637700A (zh) | 针对目标虚拟地址的地址转换方法、处理器及电子设备 | |
CN100375065C (zh) | 产生预测地址值的电路和方法 | |
EP1807767A1 (en) | A virtual address cache and method for sharing data stored in a virtual address cache | |
CN1894674A (zh) | 存储器访问指令向量化 | |
US20040078544A1 (en) | Memory address remapping method | |
CN113449152B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |