CN117806711A - 一种新型分支目标缓冲器及其设计方法 - Google Patents
一种新型分支目标缓冲器及其设计方法 Download PDFInfo
- Publication number
- CN117806711A CN117806711A CN202311437738.XA CN202311437738A CN117806711A CN 117806711 A CN117806711 A CN 117806711A CN 202311437738 A CN202311437738 A CN 202311437738A CN 117806711 A CN117806711 A CN 117806711A
- Authority
- CN
- China
- Prior art keywords
- offset
- branch
- target buffer
- branch target
- address
- 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.)
- Pending
Links
- 239000000872 buffer Substances 0.000 title claims abstract description 58
- 238000000034 method Methods 0.000 title claims abstract description 23
- 239000002699 waste material Substances 0.000 abstract description 5
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
Landscapes
- Advance Control (AREA)
Abstract
本发明的一种新型分支目标缓冲器及其设计方法,包括以下步骤:S1,对分支目标缓冲器中不同槽所包含的地址偏移量进行压缩,使每个分支目标缓冲器条目可以存储两条短的地址偏移量;S2,在步骤S1同时,构建一个共用偏移位,所述共用偏移位的大小设置为长分支与短分支地址偏移量的差值;当分支目标缓冲器需要存储一长一短两种地址偏移量时,使用共用偏移位来存储长地址偏移量中无法存储的部分,同时对于使用共用偏移位的槽进行标记。本发明的一种新型分支目标缓冲器及其设计方法,解决了FTB中存储一长一短两条指令地址偏移量时表项配对造成的资源浪费,同时确保所需的地址信息可以被完整存储。
Description
技术领域
本发明属于电子计算机和微处理器体系结构领域,具体涉及一种新型分支目标缓冲器及其设计方法。
背景技术
分支目标缓冲器是一种硬件缓存,它主要用于记录分支指令跳转的目标地址。其主要目标是将分支的开销降为0,即在指令获取阶段IF段就获取预测的分支目标地址,然后顺序执行下一条指令。具体的工作过程中,当一条分支指令成功执行后,该指令的地址以及其对应的分支目标地址会被保存到一个缓冲区中。这个缓冲区以分支指令的地址作为标识,形成了一种类似于表格的结构。BTB的主要功能是确定是否采用BTB的目标地址跳转,而分支历史表则决定是否采用BTB的目标地址跳转。
在现有的分支目标缓冲器BTB设计方案中,一般使用BTB存储目标地址的偏移量,而不是存储全部的分支目标地址位数,这样可以有效的减少分支目标地址位数,进而达到压缩BTB的目的。利用分支局部性,可以将BTB的目标地址位设置为短分支需要的位数大小,当长距离分支需要更多的目标地址位数时,采用两个短分支的BTB条目共同存储目标地址,这两个BTB表项形成一个集合,同时将对应的BTB配对位置高来表示两个BTB表项配对。
FTB是一种用于存储分支指令跳转目标地址的缓冲区。在现代计算机系统中,分支预测是一个重要的优化技术,它可以帮助处理器更快地确定下一条指令的执行路径,从而提高程序的运行速度。FTB的主要作用是在获取指令的阶段也即IF段就能获取到预测的分支目标地址,从而顺序执行下一条指令。具体来说,当一条分支指令成功执行后,该指令的地址以及其对应的分支目标地址会被保存到一个缓冲区中。这个缓冲区以分支指令的地址作为标识,形成了一种类似于表格的结构。这种设计主要是为了提高分支预测的准确性和效率。
FTB是一种新型的分支目标缓冲器,FTB使用fetch块作为基本单位来限制分支预测宽度以适应更高的频率。传统的分支目标缓冲器BTB中只能存储一条分支指令的基本信息,使用FTB可以存储一个指令块的分支信息,由于新型分支目标缓冲器FTB每个条目中存储了两条指令,当一条指令为长分支,一条指令为短分支时,也会判断为需要形成FTB表项配对,导致短分支指令槽中的存储地址偏移量的空间资源浪费,降低了FTB中的空间利用率,在相同空间下FTB能够存储的分支信息更少,导致更多的分支信息丢失。
发明内容
本发明的第一个目的在于,针对现有技术中的问题,提供一种新型分支目标缓冲器的设计方法。
为此,本发明的上述目的通过以下技术方案实现:
一种新型分支目标缓冲器的设计方法,其特征在于:包括以下步骤:
S1,对分支目标缓冲器中不同槽所包含的地址偏移量进行压缩,使每个分支目标缓冲器条目可以存储两条短的地址偏移量;
S2,在步骤S1同时,构建一个共用偏移位,所述共用偏移位的大小设置为长分支与短分支地址偏移量的差值;当分支目标缓冲器需要存储一长一短两种地址偏移量时,使用共用偏移位来存储长地址偏移量中无法存储的部分,同时对于使用共用偏移位的槽进行标记。
在采用上述技术方案的同时,本发明还可以采用或者组合采用如下技术方案:
作为本发明的优选技术方案:当分支目标缓冲器需要存储两条长分支时,从其对应的一组分支目标缓冲器中优先选取未使用共用偏移量的表项进行配对,将另一条长分支无法被存储的地址偏移量写入配对表项的共用偏移量中;若分支目标缓冲器需要存储两条长分支,且同组的其他FTB的共用偏移量均被使用,根据最近最少使用算法选取一个分支目标缓冲器表项进行配对,此时且只需要占据被配对表项的共用偏移量,被配对的表项在分支目标缓冲器进行更新时依然可以用于存储其他指令块的短分支信息。
本发明的第二个目的在于,针对现有技术中的问题,提供一种新型分支目标缓冲器。
为此,本发明的上述目的通过以下技术方案实现:
一种新型目标缓冲器,其特征在于:包括来存储分支指令的槽和存储跳转指令的地址偏移量的槽,存储跳转指令的地址偏移量的槽设置为共用地址偏移量空间,通过共用地址偏移量空间动态调整分支目标缓冲器表项结构。
本发明具有以下有益效果:本发明的一种新型分支目标缓冲器及其设计方法,在新型分支目标缓冲器的设计中,通过设置共用地址偏移量空间动态调整分支目标缓冲器表项结构,使得某个分支目标缓冲器表项的一个槽内地址偏移量位数不足时,先使用自身的共用地址偏移量空间,以一种巧妙而高效的方法解决了FTB中存储一长一短两条指令地址偏移量时表项配对造成的资源浪费,同时确保所需的地址信息可以被完整存储,在相同空间下,利用本技术方案可以存储更多的分支信息,导致FTB缺失的概率更小。这不仅提升了地址偏移量的存储能力,还为FTB的管理和操作提供了更灵活的机制。
附图说明
图1为现有技术中新型分支目标缓冲器设计下的压缩方案图;
图2为本发明的新型分支目标缓冲器设计图。
具体实施方式
参照附图和具体实施例对本发明作进一步详细地描述。
一种新型分支目标缓冲器及其设计方法,包括以下步骤:S1,对FTB中不同槽所包含的地址偏移量进行压缩,使每个FTB条目可以存储两条短的地址偏移量;
S2,在步骤S1同时,构建一个共用偏移位,所述共用偏移位的大小设置为长分支与短分支地址偏移量的差值;当FTB需要存储一长一短两种地址偏移量时,使用共用偏移位来存储长地址偏移量中无法存储的部分,同时对于使用共用偏移位的s lot进行标记,当FTB需要存储两条长分支时从对应的一组FTB中优先选取未使用共用偏移量的表项进行配对,将另一条长分支无法被存储的地址偏移量写入配对表项的共用偏移量中;若FTB需要存储两条长分支,且同组的其他FTB的共用偏移量均被使用,根据最近最少使用算法选取一个FTB表项进行配对,此时只需要占据被配对表项的共用偏移量,被配对的表项在分支目标缓冲器进行更新时依然可以存储其他指令块的短分支信息。
其中,FTB为分支目标缓冲器。
本发明的一种新型分支目标缓冲器的设计方法的新型目标缓冲器,包括来存储分支指令的槽和存储跳转指令的地址偏移量的槽,存储跳转指令的地址偏移量的槽设置为共用地址偏移量空间,通过共用地址偏移量空间动态调整FTB表项结构。
由于存在对分支目标缓冲器FTB条目空间进行压缩的需求,一个单独的FTB条目的地址偏移位数可能无法满足长距离分支的地址偏移量需求。所以需要两个FTB条目合并做为一个FTB条目对,并通过配对位来进行标记,但是对于FTB中存储的两条分支指令信息为一长一短的情况时,简单的配对会浪费短分支指令信息对应的配对空间,所以提出一种新型的设计方法,通过在FTB中增加共用空间,避免一长一短分支造成配对的情况,只有两条分支都是长分支时才会与另一个FTB条目进行配对,达到提升FTB空间资源利用率的目的。
实施例1
如图2所示,本发明的一种新型分支目标缓冲器中,专门设置了两个槽来存储分支指令或跳转指令的地址偏移量。本发明的一种新型分支目标缓冲器的设计方法中,初始步骤是对FTB中不同槽所包含的地址偏移量进行压缩,使每个FTB条目可以存储两条短的地址偏移量,同时设计一个共用偏移位,共用偏移位的大小设置为长分支与短分支地址偏移量的差值,当FTB需要存储一长一短两种地址偏移量时,使用共用偏移位来存储长地址偏移量中无法存储的部分,同时对于使用共用偏移位的槽位进行标记,当FTB需要存储两条长分支时从对应的一组FTB中优先选取未使用共用偏移量的表项进行配对,将另一条长分支无法被存储的地址偏移量写入配对表项的共用偏移量中。如果FTB需要存储两条长分支,且同组的其他FTB的共用偏移量均被使用,根据最近最少使用算法选取一个FTB表项进行配对,此时只需要占据被配对表项的共用偏移量,被配对的表项在分支目标缓冲器进行更新时依然可以存储其他指令块的短分支信息。
通过设置共用地址偏移量空间动态调整FTB表项结构,解决FTB表项存储一长一短两条地址偏移量造成两个FTB表项配对导致空间资源浪费的情况,实现了更加高效的压缩方法。
通过设置共用地址偏移量,当FTB表项存储两条长的地址偏移量时,与一个FTB表项配对后,被配对的表项依然可以存储新的指令块的两条短分支信息,在表项数目相同时,相比原有配对方法的技术方案有效降低了FTB表项的缺失率。
如图1所示,原有的压缩方案中:在FTB表项进行配对后,对于存储一长一短两条指令地址偏移量的情况会浪费一个FTB表项的存储第二条分支信息的槽或存储第一条分支信息的槽地址偏移量空间。
现有技术中,因为短分支指令槽中的存储地址偏移量的空间资源浪费,导致降低了FTB中的空间利用率,所以相同空间下FTB能够存储的分支信息更少,导致更多的分支信息丢失。
如图2所示,本实例中通过设置一个通用地址偏移量空间,本发明的一种新型分支目标缓冲器及其设计方法实现了避免存储两个不同长度的指令地址偏移量的FTB表项成对存储的情况。只有当需要存储两个长地址偏移量时,才会形成这种配对。而且,这种配对不会影响被配对的表项存储新的指令块中两个短地址偏移量的信息,从而实现了对空间资源的最大效率利用。
本发明通过提高空间利用率解决这个问题,即在相同空间下使用本压缩方案可以存储更多的分支指令信息,降低分支信息丢失的风险。
上述具体实施方式用来解释说明本发明,仅为本发明的优选实施例,而不是对本发明进行限制,在本发明的精神和权利要求的保护范围内,对本发明做出的任何修改、等同替换、改进等,都落入本发明的保护范围。
Claims (3)
1.一种新型分支目标缓冲器的设计方法,其特征在于:包括以下步骤:
S1,对分支目标缓冲器中不同槽所包含的地址偏移量进行压缩,使每个分支目标缓冲器条目可以存储两条短的地址偏移量;
S2,在步骤S1同时,构建一个共用偏移位,所述共用偏移位的大小设置为长分支与短分支地址偏移量的差值;当分支目标缓冲器需要存储一长一短两种地址偏移量时,使用共用偏移位来存储长地址偏移量中无法存储的部分,同时对于使用共用偏移位的槽进行标记。
2.如权利要求1所述的一种新型分支目标缓冲器的设计方法,其特征在于:当分支目标缓冲器需要存储两条长分支时,从其对应的一组分支目标缓冲器中优先选取未使用共用偏移量的表项进行配对,将另一条长分支无法被存储的地址偏移量写入配对表项的共用偏移量中;若分支目标缓冲器需要存储两条长分支,且同组的其他FTB的共用偏移量均被使用,根据最近最少使用算法选取一个分支目标缓冲器表项进行配对,且只占据被配对表项的共用偏移量,被配对的表项在分支目标缓冲器进行更新时用于存储其他指令块的短分支信息。
3.选用权利要求1或2所述的一种新型分支目标缓冲器的设计方法的新型目标缓冲器,其特征在于:包括来存储分支指令的槽和存储跳转指令的地址偏移量的槽,存储跳转指令的地址偏移量的槽设置为共用地址偏移量空间,通过共用地址偏移量空间动态调整分支目标缓冲器表项结构。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311437738.XA CN117806711A (zh) | 2023-11-01 | 2023-11-01 | 一种新型分支目标缓冲器及其设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311437738.XA CN117806711A (zh) | 2023-11-01 | 2023-11-01 | 一种新型分支目标缓冲器及其设计方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117806711A true CN117806711A (zh) | 2024-04-02 |
Family
ID=90432469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311437738.XA Pending CN117806711A (zh) | 2023-11-01 | 2023-11-01 | 一种新型分支目标缓冲器及其设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117806711A (zh) |
-
2023
- 2023-11-01 CN CN202311437738.XA patent/CN117806711A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10042643B2 (en) | Guest instruction to native instruction range based mapping using a conversion look aside buffer of a processor | |
US7260684B2 (en) | Trace cache filtering | |
CN101694613B (zh) | 不对准存储器存取预测 | |
US20170115991A1 (en) | Unified shadow register file and pipeline architecture supporting speculative architectural states | |
US9753856B2 (en) | Variable caching structure for managing physical storage | |
CN104731719B (zh) | 一种缓存系统和方法 | |
JP2603476B2 (ja) | データ取り出し方法 | |
US20060155932A1 (en) | Method and apparatus for an efficient multi-path trace cache design | |
CN104794067A (zh) | 堆栈存储的变量值预测 | |
US20060101223A1 (en) | Compressed memory architecture for embedded systems | |
JP4920378B2 (ja) | 情報処理装置およびデータ検索方法 | |
KR20000052480A (ko) | 캐시 프로세스용 시스템 및 방법 | |
US7716424B2 (en) | Victim prefetching in a cache hierarchy | |
CN101866318A (zh) | 一种高速缓存替换策略的管理系统及方法 | |
CN110059024B (zh) | 一种内存空间数据缓存方法及装置 | |
CN115617712A (zh) | 一种基于组相联高速缓存Cache的LRU替换算法 | |
CN107562806B (zh) | 混合内存文件系统的自适应感知加速方法及系统 | |
CN110442382A (zh) | 预取缓存控制方法、装置、芯片以及计算机可读存储介质 | |
US6412050B1 (en) | Memory record update filtering | |
JP3973129B2 (ja) | キャッシュメモリ装置及びそれを用いた中央演算処理装置 | |
US8266379B2 (en) | Multithreaded processor with multiple caches | |
US9311988B2 (en) | Storage control system and method, and replacing system and method | |
CN103019657B (zh) | 支持数据预取与重用的可重构系统 | |
US20150193348A1 (en) | High-performance data cache system and method | |
CN117806711A (zh) | 一种新型分支目标缓冲器及其设计方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |