文档库

最新最全的文档下载
当前位置:文档库 > 32位RISC微处理器中分支预测器的硬件实现_汪永威

32位RISC微处理器中分支预测器的硬件实现_汪永威

收稿日期:2008-04-18;修回日期:2008-06-21  基金项目:国家自然科学基金资助项目(60573107)

作者简介:汪永威(1983-),男,河南开封人,硕士研究生,主要研究方向为计算机系统结构、专用集成电路设计(w a n g y o n g w e i 2003@126.c o m );樊晓桠(1962-),男,教授,博导,主要研究方向为V L S I 系统设计、计算机系统结构、电子设计自动化;黄小平(1980-),男,博士研究生,主要研究方

32位RISC微处理器中分支预测器的硬件实现_汪永威

向为计算机系统结构、专用集成电路设计、V L S I 系统设计.

32位R I S C 微处理器中分支预测器的硬件实现

*

汪永威,樊晓桠,黄小平

(西北工业大学航空微电子中心,西安710072)

摘 要:提出了一种基于B i -m o d e 和分支路径历史的动态分支预测器,并在西北工业大学自主设计的“龙腾

R 2”微处理器中得以F P G A 硬件实现,提出的分支预测器对条件分支可以进行准确地预测,具有延迟小、功耗低的特点。

关键词:分支预测;超标量;分支历史中图分类号:T P 303   文献标志码:A    文章编号:1001-3695(2009)02-0419-03

H a r d w a r e i m p l e m e n t a t i o n o f b r a n c h p r e d i c t o r i n 32b i t R I S Cm i c r o p r o c e s s o r

W A N GY o n g -w e i ,F A NX i a o -y a ,H U A N G X i a o -p i n g

(A v i a t i o nM i c r o e l e c t r o n i c s C e n t e r ,N o r t h w e s t e r nP o l y t e c h n i c a l U n i v e r s i t y ,X i 'a n 710072,C h i n a )

A b s t r a c t :T h i s p a p e r p r o p o s e d a n e wd y n a m i c b r a n c h p r e d i c t o r b a s e d o n

B i -M o d e p r e d i c t o r a n d b r a n c h p a t h h i s t o r y ,a n d t h e n i m p l e m e n t e di t b y F P G Ab a s e d o nL o n g t i u mR 2,aR I S Cm i c r o p r o c e s s o r d e s i g n e db y N WP UA M E

C .T h ep r o p o s e dp r e d i c t o r g i v e s g o o dp r e d i c t i o na c c u r a c y f o r c o n d i t i o n a l b r a n c h e s ,w i t h s m a l l l a t e n c y a n d l o wp o w e r c o n s u m p t i o n .K e y w o r d s :b r a n c hp r e d i c t i o n ;s u p e r s c a l a r ;b r a n c hh i s t o r y   在条件分支执行前,处理器对分支方向进行预测,并按照预测方向进行取指执行。当预测错误时必须将流水线冲刷,然后从正确的地址取指,误预测会产生很大的代价,并且这种代价随着指令发射宽度和流水线深度的增加而快速增长。因此,分支预测的准确性成为微处理器设计的关键问题。

为了提高分支预测的准确率,已经提出许多分支预测器结构,从利用分支信息的状态将这些分支预测器分为静态和动态的。静态分支预测器利用静态分支的信息或编译器提供的信息对分支方向进行预测;动态分支预测器在不改变指令集的前提下,在程序执行中动态地收集分支相关信息并利用这些历史信息对分支方向进行预测。文献[1]已经表明动态分支预测器在预测准确率和实用性等方面胜过静态分支预测器,因此过去的研究主要集中在对动态分支预测策略的研究上。

本文引入了一种分支预测器并在32位R I S C 微处理器上得以硬件实现,这种预测器将路径历史信息组合进B i -m o d e 预测器并将方向P H T 进行分页处理,这种预测器结构具有许多优越的性质。

 相关研究

2b i t 饱和计数器预测器在1981年由J .E .S m i t h 引入[1],其预测器是一个简单的2b i t 饱和计数器的状态机,预测器维持一些计数器项,当有分支需要预测时,由一个哈希函数来选择其中一个计数器来预测当前分支“t a k e n ”或“n o t -t a k e n ”。当执行结果出来后,被选择的计数器按照简单的状态机进行变化。这些计数器的状态机有许多形式,但最有效的形式如图1所示

[2]

两级预测器是早期非常有效的预测器,由T .Y e h 等人[3]

于1992年提出。如图2所示,它有两级预测表,第一级是分支历史寄存器表(B H R T ),其中包含多个分支历史移位寄存器(B H S R );第二级是模式历史表(P H T )。当有分支需要预测时,由分支地址(b r a n c ha d d r e s s )选择一个分支历史寄存器(B H R ),然后由这个B H R 索引P H T 选择一个2b i t 的预测器对分支方向进行预测,如果被选择的计数器的值为2′b 11或2′b 10,则预测t a k e n ;如果为2′b 10或2′b 00,则预测n o t -t a k e n 。

为了减小不同分支在P H T 中的冲突,提高预测准确率,基于两级预测器提出了许多改进的方案。G s h a r e 预测器用分支地址(b r a n c ha d d r e s s )和全局分支历史寄存器的异或(X O R )来索引分支模式表(P H T ),充分利用分支执行的历史信息对当前分支进行预测[4]。这种G s h a r e 预测器因其准确率高和硬件开销小而广泛应用。

. -预测器

为了消除不同分支在P H T 的冲突现象而带来的误预测,B i -m o d e 预测器被提出[5],它将分支模式表分为两部分,然后

第26卷第2期2009年2月 

计算机应用研究A p p l i c a t i o n R e s e a r c h o f C o m p u t e r s

V o l .26N o .2

F e b .2009