管理重命名寄存器的寄存器重命名系统和方法技术方案

技术编号:7517732 阅读:208 留言:0更新日期:2012-07-11 23:55
本发明专利技术涉及管理重命名寄存器的寄存器重命名系统和方法。具体地,本发明专利技术提供了一种采用多个重命名寄存器队列管理重命名寄存器的寄存器重命名系统,所述系统包括:物理寄存器组;寄存器别名表RAT;体系结构寄存器映射表ARMT;重命名寄存器队列选择指针;译码器;逻辑寄存器重命名装置;RAT修改装置和重命名寄存器队列更新装置。此外,本发明专利技术还提供了一种采用多个重命名寄存器队列管理重命名寄存器的方法。根据本发明专利技术的技术方案,可以在同一周期内同时进行多个寄存器重命名操作,实现方法简单,时间开销小,适用于有较高发射宽度的超标量微处理器。

【技术实现步骤摘要】

本专利技术涉及微处理器体系结构
,特别涉及一种采用多个重命名寄存器队列的寄存器重命名系统和方法。
技术介绍
现代的微处理器体系结构,大多采用了超标量(Super kale)技术,即在一个周期内,有多条流水线在并行执行多条指令。寄存器重命名(Register Renaming)技术是超标量微处理器的关键技术之一,它通过将同一个逻辑寄存器映射到多个物理寄存器的方式,解决了程序运行中的读后写(WAR)和写写(WAW)数据相关,大大提高了指令的并行执行能力。其中一种寄存器重命名操作的实现方式是针对一组物理寄存器,采用体系结构寄存器映射表(Architecture Register Mapping Table,简称为ARMT)来保存物理寄存器与逻辑寄存器的对应关系。所述逻辑寄存器,是指在编程时指令所用到的寄存器,在采用寄存器重命名技术的微处理器中,不同指令的同一个寄存器地址不一定对应物理上存在的同一个寄存器,因此引入逻辑寄存器的概念来表示指令所用到的寄存器,而区别于真正意义上的物理上存在的寄存器。所述物理寄存器,是在微处理器中实际存在的物理上的寄存器电路,在处理器运行的不同时刻,可以与不同的逻辑寄存器相对应。在处理器运行时,同一个逻辑寄存器可能对应多个物理寄存器,但是只有一个物理寄存器保存的是已经确认的结果,所述确认结果,是重排序缓冲器ROB按照顺序提交指令后指令的执行结果,无论微处理器的内部结构如何实现,这个物理寄存器的内容都是与按照顺序执行的编程模型中的逻辑寄存器是统一的,在本文中称这些保存确认的结果的物理寄存器为体系结构寄存器。体系结构寄存器映射表保存的就是现在被作为体系结构寄存器而保存对应的逻辑寄存器的确认结果的那些物理寄存器。重命名引擎用物理寄存器地址代替指令中的逻辑寄存器地址,执行单元根据这个物理寄存器地址从物理寄存器中取得操作数或将操作数写回到物理寄存器中。那些没有被当作体系结构寄存器使用的物理寄存器称为重命名寄存器,如果指令有目标寄存器,那么在重命名时就要找到一个未被使用的重命名寄存器,用这个重命名寄存器的物理寄存器地址来代替指令的目标寄存器逻辑地址。也就是说,如果指令有目标寄存器,就要找到一个未被使用的重命名寄存器并且将其对于指令的目标寄存器(逻辑寄存器)对应起来。随着超标量微处理器发射宽度的提升,要求重命名引擎在一个周期内可以进行多次重命名操作,这就要求在一个周期内可以搜索到多个空闲的重命名寄存器,而更大的发射宽度也要求有更多的物理寄存器可被用于寄存器重命名操作,增加了重命名引擎进行空闲寄存器搜索的工作量,使重命名引擎成为影响微处理器频率提升的瓶颈。对于空闲寄存器的搜索,传统的搜索办法要在找到一个空闲寄存器之后再搜索下一个空闲寄存器,不同空闲寄存器的搜索在时序上是串行的关系,类似于加法器的进位链, 因此当待选的物理寄存器数目很多而又要求获得多个搜索结果的情况下会产生很大的延时,影响微处理器工作频率的提升。为了提高对空闲物理寄存器的查找速度,有一些已有的研究成果,比如把寄存器分块并采用双向搜索,参见中国专利申请号200910004886. 6,《使用多块物理寄存器映射表的寄存器重命名系统及其方法》。但是将物理寄存器分成多个块,不同块的物理寄存器不能互换,就要保证每个块的空闲寄存器数目大体相等以避免因为某一块的物理寄存器全部被使用而阻塞重命名操作进行;而双向搜索也需要对每个寄存器块做空闲寄存器数目是否大于等于2的判断以验证双向搜索的结果是否会重叠,这就需要一个复杂的逻辑来对每个块的空闲物理寄存器数目进行判断,增加了时序上的延时。
技术实现思路
本专利技术目的在于克服现有技术的瓶颈,提高对大量物理寄存器进行多次寄存器重命名操作的速度。为了达到上述目的,根据本专利技术的一个方面,提供一种采用多个重命名寄存器队列管理重命名寄存器的寄存器重命名系统,所述系统包括物理寄存器组,包括在微处理器运行时被动态地映射为用于保存已提交的指令的结果的体系结构寄存器和用于保存提交前指令结果的重命名寄存器,所述重命名寄存器被分成所述多个重命名寄存器队列,每个重命名寄存器队列包括多项,每项又包括寄存器空闲/ 使用标识、物理寄存器地址和使用这个物理寄存器的指令所在的基本块编号;寄存器别名表RAT,所述RAT保存最新的逻辑寄存器与物理寄存器之间的映射关系,准备进行重命名的指令的源操作数寄存器以寄存器别名表的内容作为重命名的依据;体系结构寄存器映射表ARMT,指示在当前状态下哪些物理寄存器是被当作体系结构寄存器使用,也即保存已经被确认的逻辑寄存器与物理寄存器的映射关系;重命名寄存器队列选择指针,用于指示当前被用于重命名操作的物理寄存器来自所述多个重命名寄存器队列中的哪个重命名寄存器队列;译码器,用于提供需要进行重命名操作的一个或多个逻辑寄存器地址; 寄存器重命名装置,用于对所述一个或多个逻辑寄存器进行重命名操作; RAT修改装置,用于根据重命名操作的结果修改RAT ; 重命名寄存器队列更新装置,用于对重命名寄存器队列进行更新操作,以及 ARMT更新装置,用于对AMRT进行更新操作。根据本专利技术,所述寄存器空闲/使用标示表示该物理寄存器是已经用于重命名操作还是没有被使用,在微处理器复位时所有项的空闲/使用标示都表示为空闲;所述物理寄存器地址是该项当前所对应的物理寄存器地址,在任何时刻,所有的重命名寄存器队列中存储的物理寄存器地址都不会重复;所述基本块编号是当该项的物理寄存器地址所对应的物理寄存器被使用时,使用该物理寄存器的指令所处的基本块的编号,在没有分支延迟槽的微处理器中,基本块是一条分支指令和到它前一条分支指令之前的所有指令的集合, 在有分支延迟槽的微处理器中,这个集合还要加上延迟槽中的指令,当空闲/使用标示为空闲时,基本块编号没有意义,当使用标示为使用时,基本块编号用于在分支预测失败时判断指令是否要被取消,被取消的指令使用的重命名寄存器要被释放,即该寄存器在重命名寄存器队列中所对应的项的空闲/使用标识被由使用变成空闲。根据本专利技术的系统,其中所述寄存器重命名装置通过以下操作对所述一个或多个逻辑寄存器进行重命名操作(i)并行查找所述多个重命名寄存器队列,从每个队列找出一个空闲的物理寄存器的物理寄存器地址;(ii)根据重命名寄存器队列选择指针,将从该指针所指定的重命名寄存器队列中查到的空闲物理寄存器地址赋给需要做重命名操作的第一个逻辑寄存器;(iii)将用于重命名的物理寄存器的空闲/使用标识设为使用,以及(iv)将用于重命名的物理寄存器在重命名寄存器队列中的基本块编号设为等于使用这个物理寄存器的指令所属的基本块编号,(ν)如果有多个逻辑寄存器需要进行重命名操作,则将寄存器队列选择指针加1,并重复步骤(i)_ (iv)的操作。根据本专利技术的系统,所述重命名寄存器队列更新装置根据ROB要提交的指令的目标寄存器物理地址在重命名寄存器队列中搜索出需要更新的项,并用使用该目标寄存器逻辑地址从ARMT中读出的物理地址对搜索到的项进行更新操作。具体地,所述重命名寄存器队列更新装置通过以下步骤对重命名寄存器队列进行更新操作(i)根据ROB要提交的指令的目标寄存器逻辑地址在ARMT中查找到的与该目标寄存器逻辑地址对应的物理寄存器地址;(ii)根据本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:杨思博
申请(专利权)人:北京国睿中数科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术