CN1200343C - 适用于上下文切换的分支预测方法 - Google Patents

适用于上下文切换的分支预测方法 Download PDF

Info

Publication number
CN1200343C
CN1200343C CN 02107782 CN02107782A CN1200343C CN 1200343 C CN1200343 C CN 1200343C CN 02107782 CN02107782 CN 02107782 CN 02107782 A CN02107782 A CN 02107782A CN 1200343 C CN1200343 C CN 1200343C
Authority
CN
China
Prior art keywords
branch
branch history
history register
global
prediction method
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.)
Expired - Lifetime
Application number
CN 02107782
Other languages
English (en)
Other versions
CN1447229A (zh
Inventor
王海洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Zhongke Integrated Circuit Design Center Co., Ltd.
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN 02107782 priority Critical patent/CN1200343C/zh
Publication of CN1447229A publication Critical patent/CN1447229A/zh
Application granted granted Critical
Publication of CN1200343C publication Critical patent/CN1200343C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Advance Control (AREA)

Abstract

本发明一种适用于上下文切换的分支预测方法,包含下列步骤:a)将进入预测器的分支指令进行进程号的比较;b)依据比较结果,如果相等或全局位为“1”,对于不同的进程号采用不同的全局分支历史寄存器,并读取其中的分支历史寄存器,并对全局位为“1”,使用一个固定的;c)如果比较结果不等且全局位不为“1”,选择一个空的分支历史寄存器,在没有空闲分支历史寄存器时,选择一个分支历史寄存器进行替换;d)使用读出的全局分支历史与分支指令的地址进行操作,形成模式表的索引;e)访问模式表,读出相关内容;f)根据查找到的结果进行预测,决定是否跳转。

Description

适用于上下文切换的分支预测方法
技术领域
本发明属于微处理器体系结构领域,特别涉及一种微处理器的分支预测方法。
背景技术
当前各种微处理器在解决分支时一般采取如下两种方案:
(1)暂停取指,直到分支结果出来。这种办法为了减少延迟,通常会采取加延迟槽的方法,但不管转移是否成功一般都会产生一定延迟。如:MIPS的R4000微处理器。
(2)采取一定程度的预测,在分支结果出来之前,就按预测的地址取指。这种方法当猜测正确时,并不产生延迟,但当猜测错误时,就要取消已经取进的指令并重新取指,从而引起流水线断流,增加了延时。如:MIPS的R10000,Alpha的21064、21164、21264,Sun的UltraSparc系列,Intel的P6系列微处理器等。
第二种方案为当前流行方案,被大多数微处理器采用。其中:MIPS的R10000,Alpha的21064、21164,Sun的UltraSparc I采用的是两位的双峰(Bimodal Predictor)预测器;Sun的UltraSparcSun的UltraSparc III采用的是Gshare预测器(Gshare Predictor);Intel的P6系列微处理器采用的是PAs配置(PAs configuration)的两层预测器(Two-level Predictor);Alpha的21264采用的是混合预测器(Hybrid Predictor)。
在这些方案中,双峰(Bimodal Predictor)预测器基本上已经很少使用,或与其它预测器配合使用,而其它几种都属于两层预测器,按照配置不同分为GAs、PAs和混合(Hybrid)。这些方案基本上都是利用分支的历史记录和程序计数器PC,形成对模式历史表PHT(Pattern HistoryTable)的索引,然后根据从PHT中读出的内容决定是否转移。
例如,图1为使用Gshare(属于GAs配置)方法的预测器的示意图。它直接使用全局分支历史(Global Branch History)与一部分转移指令地址相异或,在拼接上一部分转移指令地址,形成对PHT的索引,再用这个索引从PHT表中读出相应的表项,并根据读出的内容决定是否预测跳转。
这些预测器的预测方法具有严重的缺点,它们没有对多用户(multi-user)、多道程序(multi-programming)、多线程(multi-threading)进行考虑,而多用户、多道程序、多线程的应用在当今和未来的处理器中是不可避免的,甚至是一种潮流,所以虽然它们在预测单道程序上都有很高的命中率,但是在实际应用中,受进程(包括线程)的上下文切换(contextswitching)的影响,效果并不理想。有些处理器为了提高命中率,使用较多的位来记录转移信息,占用了很大的、宝贵的芯片面积,例如,Alpha的21264的预测器一共使用了28K bits,但实际应用中的命中率并不会有很大改善。
现在已经有人开始在理论上研究多线程处理器(multi-threadedprocessor)的分支预测,如:J.Gummaraju和M.Franklin提出的方案,但是这种方案并不实用,因为它为每一个进程设立了一个PHT(PatternHistory Table),这样的预测器所需的预测位的数量、所要占用的芯片面积将是实际应用中很难接受的。因此也并没有被真正应用。
所以现有预测方法的不适合应用于多用户、多道程序、多线程环境下的进程(包括线程)的上下文切换,而且理论上的多线程预测方法存在占用芯片面积大、不实用的不足。
发明内容
本发明的目的在于提供一种适用于上下文切换的分支预测方法,即使在多用户、多道程序、多线程的环境下,遇到频繁的上下文切换时也能发挥很好的作用,而且便于实现。
本发明一种适用于上下文切换的分支预测方法,其特征在于,包含下列步骤:
a)将进入预测器的分支指令进行进程(包括线程)号的比较;
b)依据比较结果,如果相等或全局位为“1”,对于不同的进程号采用不同的全局分支历史寄存器(Global Branch History Register)GBHR,并读取其中的全局分支历史,并对全局位为“1”,使用一个固定的分支历史寄存器;
c)如果比较结果不等且全局位不为“1”,选择一个空的分支历史寄存器,在没有空闲分支历史寄存器时,选择一个分支历史寄存器进行替换
d)使用读出的全局分支历史与分支指令的地址进行操作,形成模式表(Pattern History Table)PHT的索引;
e)访问模式表(Pattern History Table)PHT,读出相关内容;
f)根据查找到的结果进行预测,决定是否跳转。
其中于步骤a)中:进程(包括线程)号的比较是使用分支指令的进程号和每个GBHR对应的进程号,包括进程标示符ASID(address spaceidentifier)的比较和全局位Global的检查。
其中于步骤b)中:除Global为“1”使用的GBHR,其它的每一个GBHR都有一个对应的ASID,用来进行比较。
附图说明
为了进一步了解本发明的技术内容,以下结合附图及实施例对本发明作一详细描述,其中:
图1是使用Gshare方法的预测器的示意图;
图2是本发明的分支转移预测器。
具体实施方式
在本发明中,使用进程表示符(address space identifier)ASID和全局位Global来标识进程,对于每一条指令,都有对应的ASID和Global位。在一般的处理器当中,都有保存相应的内容的表项,只是存放的位置不同。
本发明提供的一种适用于上下文切换的分支预测方法,结合参阅图2所示,包含下列步骤:
a)将进入预测器的分支指令进行进程(包括线程)号的比较,进程(包括线程)号的比较是利用收到与该分支指令相关的Global位和ASID和每个全局分支历史寄存器(Global Branch History Register)GBHR对应的ASID进行的,包括ASID的比较和Global位的检查,请参阅图2中的左上部分;
b)依据比较结果,如果Global位为“1”,表明该指令的地址是全局使用的,选择使用专门的GBHR(Global Branch History Register),例如0号GBHR,并且该GBHR是不可重新分配给任何其它进程的,请参阅图2中的左下部分;
c)如果Global位为“0”则要根据ASID的比较结果来决定选用哪个GBHR:1)有GBHR对应的ASID域的内容与该指令的ASID相等,则选用第一个相等的GBHR;2)如果没有相等的,但还有空余未分配的GBHR,则选择一个空的,并将对应的ASID域的内容设置成该条指令的ASID;3)如果没有相等的,且没有空余未分配的GBHR,则根据一定的规则挑选一个GBHR,重新分配给该ASID,并将对应的ASID域的内容改成该条指令的ASID,请参阅图2中的左下部分;
d)使用读出的全局分支历史与分支指令的地址进行操作,形成模式表(Pattern History Table)PHT的索引;
e)访问模式表(Pattern History Table)PHT,读出相关内容;
f)根据查找到的结果进行预测,决定是否跳转,步骤d至步骤f请参阅图2中的右半部分。
由前述方法可知本发明具有下列有点:
1.由于本发明在预测方法中采用了专门的进程识别,所以这是一个专门针对多用户、多道程序、多线程环境,能很好地适应进程(包括线程)的上下文切换的分支预测器方法。它保证了,即使预测器工作在多用户、多道程序、多线程环境也不会因为上下文切换而影响预测器的性能。
2.而且由于在预测部分只使用了全局转移历史(Global BranchHistory),采取了较为易行的预测结构,避免了实现复杂性。
因此本发明克服了现实中的预测器不适用于进程(包括线程)的上下文切换的不足,以及理论上的多线程预测器实现复杂、可行性差的不足。

Claims (3)

1、一种适用于上下文切换的分支预测方法,其特征在于,包含下列步骤:
a)将进入预测器的分支指令进行进程号的比较;
b)依据比较结果,如果相等或全局位为“1”,对于不同的进程号采用不同的全局分支历史寄存器,并读取其中的分支历史寄存器,并对全局位为“1”,使用一个固定的;
c)如果比较结果不等且全局位不为“1”,选择一个空的分支历史寄存器,在没有空闲分支历史寄存器时,选择一个分支历史寄存器进行替换;
d)使用读出的全局分支历史与分支指令的地址进行操作,形成模式表的索引;
e)访问模式表,读出相关内容;
f)根据查找到的结果进行预测,决定是否跳转。
2、依据权利要求1所述的一种适用于上下文切换的分支预测方法,其特征在于,其中于步骤a中:进程号的比较是使用分支指令的进程号和每个分支历史寄存器对应的进程号,包括进程标示符的比较和全局位的检查。
3、依据权利要求1所述的一种适用于上下文切换的分支预测方法,其特征在于,其中于步骤b中:除全局位为“1”使用的分支历史寄存器,其它的每一个分支历史寄存器都有一个对应的进程标示符,用来进行比较。
CN 02107782 2002-03-22 2002-03-22 适用于上下文切换的分支预测方法 Expired - Lifetime CN1200343C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 02107782 CN1200343C (zh) 2002-03-22 2002-03-22 适用于上下文切换的分支预测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 02107782 CN1200343C (zh) 2002-03-22 2002-03-22 适用于上下文切换的分支预测方法

Publications (2)

Publication Number Publication Date
CN1447229A CN1447229A (zh) 2003-10-08
CN1200343C true CN1200343C (zh) 2005-05-04

Family

ID=28048426

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 02107782 Expired - Lifetime CN1200343C (zh) 2002-03-22 2002-03-22 适用于上下文切换的分支预测方法

Country Status (1)

Country Link
CN (1) CN1200343C (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101826002B (zh) * 2010-04-16 2012-12-26 浙江大学 记录式分支预测器的硬件实现方法
US9395984B2 (en) * 2012-09-12 2016-07-19 Qualcomm Incorporated Swapping branch direction history(ies) in response to a branch prediction table swap instruction(s), and related systems and methods
CN105005737A (zh) * 2015-07-31 2015-10-28 天津大学 一种面向分支预测攻击的微体系结构级安全防护方法
CN108062236A (zh) * 2016-11-07 2018-05-22 杭州华为数字技术有限公司 一种软硬件协同分支指令预测方法及装置

Also Published As

Publication number Publication date
CN1447229A (zh) 2003-10-08

Similar Documents

Publication Publication Date Title
US9921850B2 (en) Instruction sequence buffer to enhance branch prediction efficiency
EP3306466B1 (en) An instruction sequence buffer to store branches having reliably predictable instruction sequences
CN100407167C (zh) 高速和准确的高速缓存通路选择
US6374349B2 (en) Branch predictor with serially connected predictor stages for improving branch prediction accuracy
Yeh et al. A comparison of dynamic branch predictors that use two levels of branch history
Yeh et al. Increasing the instruction fetch rate via multiple branch prediction and a branch address cache
US6253316B1 (en) Three state branch history using one bit in a branch prediction mechanism
US6986027B2 (en) Universal load address/value prediction using stride-based pattern history and last-value prediction in a two-level table scheme
KR20070118135A (ko) 인덱스당 2개 이상의 분기 타겟 어드레스를 저장하는 분기타겟 어드레스 캐시
CN101479700A (zh) 用于积极主动分支目标地址高速缓冲存储器管理的方法和设备
JP5734945B2 (ja) スライドウィンドウブロックベースの分岐ターゲットアドレスキャッシュ
JP2001503899A (ja) 分岐予測を選択する分岐セレクタを採用する分岐予測機構
CN1200343C (zh) 适用于上下文切换的分支预测方法
Nair Optimal 2-bit branch predictors
WO2002006959A1 (en) Instruction fetch and dispatch in multithreaded system
CN1093658C (zh) 数字处理器
EP1049970B1 (en) Branch prediction with return selection bits to categorize type of branch prediction
US7747845B2 (en) State machine based filtering of non-dominant branches to use a modified gshare scheme
US20050283593A1 (en) Loop end prediction
CN1447244A (zh) 一种设计在cpu里的侦测缓冲区溢出的方法
CN113515310A (zh) 微处理器和分支预测控制方法
Kaeli et al. Improving the accuracy of history-based branch prediction
Hoogerbrugge Dynamic branch prediction for a VLIW processor
CN101916184B (zh) 更新微处理器中的分支目标地址快取的方法及其微处理器
Vintan et al. Extending correlation in branch prediction schemes

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
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
ASS Succession or assignment of patent right

Owner name: SUZHOU ZHONGKE IC DESIGN CENTER CO., LTD.

Free format text: FORMER OWNER: INST. OF COMPUTING TECHN. ACADEMIA SINICA

Effective date: 20080801

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20080801

Address after: E301, international science and Technology Park, 328 Airport Road, Suzhou Industrial Park, Jiangsu Province

Patentee after: Suzhou Zhongke Integrated Circuit Design Center Co., Ltd.

Address before: No. 6 South Road, Zhongguancun Academy of Sciences, Beijing, Haidian District

Patentee before: Institute of Computing Technology, Chinese Academy of Sciences

CX01 Expiry of patent term

Granted publication date: 20050504

CX01 Expiry of patent term