一种基于eDRAM的GPGPU寄存器文件系统的制作方法_2

文档序号:9217126阅读:来源:国知局
期。每次刷新因为包含一个读操作,一个写操作,需要2个周期。设置一个计数器,每过一个周期计数器加I。当计数器的数值为384时,冻结整个寄存器文件,普通的寄存器访问被堵塞,并行刷新寄存器中的所有bank,同一个bank中的寄存器条目串行刷新,一个bank中有64个寄存器条目,刷新整个寄存器文件需要128个周期,此时计数器的数值正好为512,所有的数据在生存周期内完成刷重新。整个寄存器文件刷新完成后,计数器重置,寄存器文件恢复普通的访问。需要再次刷新的时候,重复上面的过程,开始下一轮刷新。
[0032]2)使用bank bubble刷新:设定GPGPU寄存器文件系统的结构如图1所示。给每个寄存器条目设置一个计数器,每次刷新后计数器重置。
[0033]如图2所示,bubble检测器负责检测bank bubble ο
[0034]以图1b中的warpO (active warpO)为例,假如warpO执行过程中需要读取RO和R8,因为这两个寄存器在同一个bank,无法同时读取,warpO需要多等待一个周期,在这个过程中,寄存器文件的其他bank是空闲的,可以实施刷新操作,这个就是bank bubble。同样地,目前的GPGPU中warp —般一次访问I到2个寄存器,寄存器文件却被分成8个或更多的bank,这样,寄存器访问过程中势必有一些bank是空闲的,可以实施刷新操作,这个也是bank bubble。当bubble检测器检测到一个bank bubble,使用一个简单的比较逻辑电路在空闲bank中检测计数器值小于一个门限值的寄存器条目,刷新生成器随机刷新这些检测到的寄存器条目,位于不同bank的寄存器条目可以被同时刷新,位于同一个bank中的寄存器条目只能随机选择一个进行刷新。一般而言,bank bubble是很多的,利用bank bubble可以在数据生存周期内刷新整个寄存器文件的数据。但是如果利用bank bubble不足以完成刷新,根据计数器的值,选择一个合适的时间冻结寄存器文件,对还没有刷新的寄存器实施完全寄存器文件刷新。
[0035]3)使用bank漫游刷新:设定GPGPU寄存器文件系统中有512个寄存器条目,分为16个bank,数据的生存周期是1024个周期。每次刷新因为包含一个读操作,一个写操作,需要2个周期。设置一个计数器,每过一个周期计数器加I。从一开始刷新,每次只刷新一个bank的一个寄存器条目,不同的bank交替刷新,重复上面的步骤直到所有的bank被刷新,计数器的值刚好是1024,重置计数器。重复上面的过程,进入下一轮刷新。这种策略刷完整个寄存器需要的时间长,但是在刷新的过程中,其余空闲的bank可以处理普通的读写访问。
[0036]基于lTlC-eDRAM的GPGPU寄存器文件系统中的数据在进行读操作时会遭到破坏,为缓解这种破坏性读操作的影响,本发明提出一种寄存器文件bank组织方式和warp调度策略相结合的方法,下面用一个实施例详细说明该方法的基本步骤:
[0037]设定GPGPU寄存器文件系统中有16个bank,4个活跃的warp。如图3所示将寄存器文件bank分成两组,bank0_7组成第一组bank,bank8_15组成第二组bank,同时将warp根据warp号分成两组,然后将奇数号warp分配给第一组bank,将偶数号warp分配给第二组bank。warp调度器在连续的周期轮流发射奇数号warp和偶数号warp。当奇数号warp被发射到第一组bank时,需要一个周期执行读操作,因为读操作会破坏数据,下一个周期需要执行一个写回操作。发射奇数号warp后,warp调度器立即在下一个周期将一个偶数号warp发射到第二组bank,因为奇数号warp和偶数号warp访问的bank不同,所以即使它们一次读操作需要两个周期且被连续发射,它们对bank的访问并不冲突。通过连续交替的发射奇数号warp和偶数号warp到不同的bank组,通过一种类似pipeline的方式极大地减轻了破坏性读操作影响。在上述过程中,如果一个因读操作引起的写会操作与一个普通的写操作相同可以被合并成一个写操作执行。在调度的过程中如果另一组warp中没有准备好的warp可调度,允许连续发射同一组的warp,这种情况下,如果当前发射的warp指令的读操作与上一个周期发射warp指令的写回操作冲突,当前发射的warp指令需要等待。
[0038]总之,本发明使用两种类型的eDRAM代替SRAM构建GPGPU寄存器文件,使用3种不同的刷新策略解决基于eDRAM寄存器文件的数据在生存周期丢失的问题,使用一种寄存器文件bank组织方式和warp调度策略相结合的方法减缓基于lTlC-eDRAM寄存器文件破坏性读操作的影响。尽管为了解决这些问题提出的这些策略和方法会增加一些硬件代价并在一定程度上减低系统的性能,但由于eDRAM相对于SRAM在晶体管密度,节能方面的巨大优势,本发明提出的寄存器文件系统较之传统系统整体上呈现出更好的扩展性,能量有效性和工艺容忍性。
[0039]图4为本发明使用bank bubble刷新方法的流程示意图;从BankO至BankN_l,refresh Controll刷新控制对多个bank寄存器文件刷新的流程,在bank寄存器文件中,一条指令需要访问的多个数据分布在相同的寄存器文件bank,这些数据的访问需要串行进行,指令因此需要等待多个数据访问周期,等待的过程中有其他的寄存器文件bank空闲;寄存器文件不在满负荷工作状态,即在一个周期中,有寄存器文件bank空闲;选择一个合适的时间开始一个接一个的漫游寄存器文件bank。设置了计数器及更新。
[0040]以上对本发明所提供的基于eDRAM的GPGPU寄存器文件系统进行了详细的介绍,但这些说明不能被理解为限制了本发明的范围,本发明的保护范围由随附的权利要求书限定,任何在本发明权利要求基础上的改动都是本发明的保护范围。
【主权项】
1.一种基于eDRAM的GPGPU寄存器文件系统,其特征在于: 1)用eDRAM代替SRAM构建寄存器文件;寄存器文件用于存储数据; 2)使用刷新策略,定期刷新寄存器文件中存储的数据,保证数据完整性。2.基于eDRAM的GPGPU寄存器文件系统,其特征在于:用3TlD_eDRAM代替SRAM构建GPGPU寄存器文件。3.基于eDRAM的GPGPU寄存器文件系统,其特征在于:用ITlOeDRAM代替SRAM构建GPGPU寄存器文件。4.根据权利要求1-3之一所述的基于eDRAM的GPGPU寄存器文件系统的刷新方法,其特征是包括:1)刷新操作:以寄存器条目为单位,一次刷新操作为对一个寄存器条目中的数据执行一次读操作,一次写操作;一个寄存器条目由32个32位寄存器组成;2)刷新方法:按照某种方式、如步骤I),实施多次刷新操作,完成整个寄存器文件的刷新。5.根据权利要求4所述的基于eDRAM的GPGPU寄存器文件系统的刷新方法,其特征是包括以下三种: 1)完全寄存器文件刷新:利用一个计数器计数,选取一个合适的时间冻结寄存器文件,在此期间,对寄存器文件的寄存器条目依次实施刷新操作,直到整个寄存器文件完成刷新,然后解冻寄存器文件并且重置计数器;刷新时间的选取应该保证在数据生存周期内完成数据刷新; 2)使用bankbubble刷新:当两个寄存器在同一个bank时,无法同时读取,warpO需要多等待一个周期,在这个过程中,寄存器文件的其他bank是空闲的,实施刷新操作,这个就是bank bubble。每一个寄存器条目关联一个计数器,利用一个bubble检测器检测寄存器文件的bank bubble,当检测到bank bubble时,利用一个刷新产生器对一个需要刷新的寄存器条目实施刷新操作,同时重置相应的计数器;如果没有足够的bank bubble保证在数据生存周期内完成整个寄存器文件的刷新,选取一个合适的时间,对剩余的寄存器实施完全寄存器文件刷新;上述过程中所述的bank bubble:一条指令需要访问的多个数据分布在相同的寄存器文件bank,这些数据的访问需要串行进行,指令因此需要等待多个数据访问周期,等待的过程中有其他的寄存器文件bank空闲;寄存器文件不在满负荷工作状态,即在一个周期中,有寄存器文件bank空闲;bank包括若干寄存器条目; 3)使用bank漫游刷新:设置一个计数器计数,选择一个合适的时间开始一个接一个的漫游寄存器文件bank,每次对当前bank的一个寄存器条目实施刷新操作;重复上面的步骤直到整个寄存器文件被刷新;重置计数器。6.根据权利要求4所述的基于eDRAM的GPGPU寄存器文件系统的刷新方法,其特征是2)中使用bank bubble刷新时,每次刷新因为包含一个读操作,一个写操作;设置一个计数器,每过一个周期计数器加I。从一开始刷新,每次只刷新一个bank的一个寄存器条目,不同的bank交替刷新,重复上面的步骤直到所有的bank被刷新,计数器的到达寄存器总数,重置计数器;重复上面的过程,进入下一轮刷新。7.根据权利要求4所述的基于eDRAM的GPGPU寄存器文件系统的刷新方法,其特征是寄存器文件组织方式以及针对这种组织方式的GPGPU warp调度策略,应用于基于lTlC-eDRAM的GPGPU寄存器文件系统;所述的寄存器文件组织方式是在传统的寄存器文件组织方式的基础上,将bank平均分成两组;所述的warp调度方法是warp调度器在连续的周期轮流发射奇数号warp和偶数号warp,奇数号warp访问第一组bank,偶数号warp访问第二组bank。如果当前没有准备好的奇数号/偶数号warp,允许连续发射偶数号/奇数号Warp0
【专利摘要】本发明公开了一种基于eDRAM的GPGPU寄存器文件系统,用eDRAM代替SRAM构建寄存器文件;寄存器文件用于存储数据;使用刷新策略,定期刷新寄存器文件中存储的数据,保证数据完整性。用3T1D-eDRAM或1T1C-eDRAM代替SRAM构建GPGPU寄存器文件。包括:1)刷新操作:以寄存器条目为单位,一次刷新操作为对一个寄存器条目中的数据执行一次读操作,一次写操作;一个寄存器条目由32个32位寄存器组成;2)刷新方法:按照某种方式,实施多次刷新操作,完成整个寄存器文件的刷新。尤其是利用bank bubble刷新和利用bank漫游刷新等三种刷新策略解决这些寄存器文件中数据在生存周期外丢失的问题,保证数据的完整性。
【IPC分类】G06F12/02
【公开号】CN104932985
【申请号】CN201510362198
【发明人】季锦诚, 梁晓峣
【申请人】季锦诚
【公开日】2015年9月23日
【申请日】2015年6月26日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1