




已阅读5页,还剩54页未读, 继续免费阅读
(计算机科学与技术专业论文)多线程环境下寄存器文件的设计与优化.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
国防科学技术大学研究生院硕士学位论文 摘要 如何挖掘处理器的并行性一直是处理器设计者努力的重要方向。传统r i s c 处 理器体系结构和编译优化技术主要专注于开发程序执行中的指令级并行性,通过 在一个时钟周期内发射多个操作来提高处理器的i p c 。但是,单个程序的有限指令 级并行性决定了多发射处理器的资源利用率不高。因此,多线程技术应运而生。 多线程技术通过多个线程共享功能单元,开发线程级并行来提高处理器资源 利用率。多线程处理器通过执行来自不同线程的指令流,使得单个线程中的长延 迟操作得到很好的隐藏,使处理器的性能得到显著提高。然而,多线程并行执行 也对寄存器文件提出了很大的挑战。 作为处理器的重要组成部件,寄存器文件的有效设计对于提高微处理器的性 能具有举足轻重的作用。寄存器文件也称寄存器堆,其作用就像一个小的快速的 缓冲器,用于微处理器存放操作数和运算的中间结果。在计算机系统的整个存储 层次体系中,寄存器文件位于最顶层,离c p u 运算部件距离最近,访问速度最快。 本文设计了一款支持多线程的高性能通用寄存器文件,它有3 个读端口和2 个写端口,支持4 线程并行。我们首先研究了多线程体系结构的特点以及寄存器 文件的功能和结构,分析了过程调用与寄存器窗口的关系。然后针对多线程环境 的特点,我们对寄存器文件的结构、功能和实现进行了研究和设计。在设计中综 合应用了寄存器划分、重叠寄存器窗口、层次扩展等技术,构造了“两级寄存器 窗口 结构。从实现的角度,我们还研究了两级寄存器文件的数据一致性管理策 略,给出了寄存器文件的端口描述和时序设计,并对设计进行了验证。另外,我 们对窗口异常处理和控制进行了详细设计。最后,我们对a c t i v e 寄存器文件进行 电路设计,并给出了面积分析。 通过采用合理的组织结构以及有效管理策略,我们设计的寄存器文件具有很 好的性能,满足了四个线程并行执行的需要,达到了预期的设计目标。 主题词:多线程,寄存器文件,窗口,层次扩展 第i 页 国防科学技术大学研究生院硕士学位论文 a b s t r a c t h o wt oe x p l o i tt h ep a r a l l e l i s mo fp r o c e s s o ri sa i li m p o r t a n td i r e c t i o nt ow h i c ht h e p r o c e s s o rd e s i g n e r sm a k eg r e a te f f o r t s t h et r a d i t i o n a lr i s cp r o c e s s o ra r c h i t e c t u r ea n d c o m p i l eo p t i m i z i n gt e c h n i q u ew a s f o c u so ne x p l o i t i n gt h ei l p ,i m p r o v i n gt h ei p co f p r o c e s s o rt h r o u g hi s s u i n gm u l t i p l eo p e r a t i o n si no n ec y c l e h o w e v e r ,t h ef i n i t ei l pi n s i n g l ep r o g r a md e t e r m i n e st h a tt h er e s o u r c eu t i l i z a t i o no fm u l t i i s s u ep r o c e s s o ri sl o w s o ,m u l t i - t h r e a d i n ge m e r g e sa st h et i m e sr e q u i r e m u l t i - t h r e a d i n gt e c h n i q u ec a ni m p r o v et h er e s o u r c e u t i l i z a t i o no fp r o c e s s o r t h r o u g hu s i n gt l p ,a n da c h i e v et h a tt h ef u n c t i o nu n i t sa r es h a r e da m o n gm u l t it h r e a d s m u l t i - t h r e a d i n gp r o c e s s o re x e c u t et h ei n s t r u c t i o nf l o w sf r o md i f f e r e n tt h r e a d s ,s ot h a t t h el o n gd e l a yi ns i n g l et h r e a di sh i dv e r yw e l l ,a n dt h ep e r f o r m a n c eo fp r o c e s s o ri s i m p r o v e do b v i o u s l y h o w e v e r , m u l t i p l et h r e a d sr u ni np a r a l l e lm a k eag r e a tc h a l l e n g e t or e g i s t e rf i l e s a sai m p o r t a n tc o m p o n e n t ,a ne f f e c t u a ld e s i g no ft h er e g i s t e rf i l eh o l dt h eb a l a n c e f o ri m p r o v i n gt h ep e r f o r m a n c eo fam i c r o p r o c e s s o r r e g i s t e rf i l ei sa l s oc a l l e dr e g i s t e r s t a c k j u s tl i k eas m a l la n df a s tb u f f e r ,i ti su s e dt os t o r et h eo p e r a n d sa n dm i d d l er e s u l t s i nt h ec o m p u t e rs t o r a g ea r c h i t e c t u r e ,r e g i s t e rf i l ei ss e ta tt h et o pl a y e r ,s ot h ed i s t a n c e f o r mi tt oc p ui st h es h o r t e s ta n dt h ep a c et oa c c e s si ti st h ef a s t ag e n e r a lr e g i s t e rf i l ew h i c hs u p p o r tm u l t i - t h r e a d i n gw i t hh i g hp e r f o r m a n c ei s d e s i g n e di nt h i st h e s i s t h e r ea r e3r e a dp o r t sa n d2w r i t ep o r t si nt h er e g i s t e rf i l ew h i c h s u p p o r t4t h r e a d sr u n n i n gi np a r a l l e l a tf i r s t ,w er e s e a r c h e dt h ec h a r a c t e r i s t i c so ft h e m u l t i - t h r e a d i n ga r c h i t e c t u r ea sw e l la st h ef u n c t i o na n ds t r u c t u r e so fr e g i s t e rf i l e ,a n d a n a l y z e dt h er e l a t i o nb e t w e e np r o c e s sa n dr e g i s t e rw i n d o w t h e na i m i n ga t t h e c h a r a c t e r i s t i co ft h em u l t i t h r e a d i n ge n v i r o n m e n t ,w em a k eap a r t i c u l a rd e s i g nf o rt h e s t r u c t u r e ,f u n c t i o na n dr e a l i z a t i o no ft h er e g i s t e rf i l e r e g i s t e rp a r t i t i o n ,o v e r l a pr e g i s t e r w i n d o wa n dh i e r a r c h ye x t e n s i o nt e c h n o l o g i e sw e r ea p p l i e ds y n t h e t i c a l l yi nt h ed e s i g n a n dc o n s t r u c t e d “d o u b l el a y e rr e g i s t e rw i n d o w s t r u c t u r e a tt h ep o i n to fr e a l i z a t i o n v i e w ,w ea l s or e s e a r c h e dt h ed a t ac o h e r e n c es t r a t e g ym a n a g e m e n to ft h ed o u b l el a y e r r e g i s t e rf i l e ,a n dp r e s e n tt h ep o r t sd e s c r i p t i o na n dt i m i n gd e s i g n o t h e r w i s e ,w e d e s i g n e dt h em a n a g e m e n ta n dc o n t r o lo f t h ew i n d o w e x c e p t i o np a r t i c u l a r l y a tl a s t ,w e p r e s e n t e dt h ec i r c u i td e s i g no ft h ea c t i v er e g i s t e rf i l e w i t hr e a s o n a b l eo r g a n i z a t i o na n de f f e c t u a lm a n a g e m e n ts 仃a t e g y ,t h i sh i g h p e r f o r m a n c er e g i s t e rf i l es a t i s f yt h er e q u i r e m e n to ff o u rt h r e a d sr u n n i n gi np a r a l l e l ,a n d a t t a i n st h ee x p e c t e dg o a lo fd e i g n k e yw o r d s - m u l t i t h r e a d i n g ,r e g i s t e rf i l e ,w i n d o w ,h i e r a r c h ye x t e n s i o n 第i i 页 国防科学技术大学研究生院硕士学位论文 表目录 表2 1p a s c a l 和c 语言操作的加权相对动态频度1 5 表4 1 寄存器文件端口列表3 4 第1 i i 页 国防科学技术大学研究生院硕士学位论文 图 图 图 图 图1 5 图1 6 图2 1 图2 2 图2 3 图2 4 图3 1 图3 2 图3 3 图3 4 图3 5 图3 6 图3 7 图3 8 图3 9 图4 1 图4 2 图4 3 图4 4 图4 5 图4 6 图4 7 图5 1 图5 2 图5 3 图5 4 图5 5 图5 6 图目录 两级寄存器文件结构2 两级寄存器流水线结构3 c r u z 提出的两级寄存器文件结构4 寄存器专用4 寄存器共享5 有限连接v l i w 结构5 线程示意图9 多线程结构的比较“ 存储层次示意图1 3 带有2 个读端口的寄存器文件1 3 x 处理器流水线l8 x 处理器核结构块图2 0 全局寄存器和窗口寄存器2 0 窗口重叠示意图2 1 包含三个重叠寄存器窗口的逻辑结构图2 2 两级寄存器文件2 3 两级寄存器文件映射关系2 4 奇窗口与偶窗口2 4 重叠寄存器窗口示意图2 6 a c t i v e 寄存器与i n t r i n s i c 寄存器关系3 0 o d d e v e n 窗口关系。3 1 寄存器文件逻辑框图3 3 寄存器文件操作时序3 5 寄存器文件时序图3 6 给出了传统的验证流程3 7 寄存器文件功能验证时序4 0 s r a m 单元的一般结构4 l 四管s r 蝴单元4 2 六晶体管耗尽型n m o ss r a m 单元4 2 六管c m o ss r a m 单元4 3 一个a c t i v e 寄存器簇的物理组织4 4 单位s r a m 结构4 5 第1 v 页 国防科学技术大学研究生院硕士学位论文 图5 7a c t i v e 寄存器文件完整的簇列电路4 6 第v 页 独创性声明 本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已 经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它教育机构的学 位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文 中作了明确的说明并表示谢意。 学位论文作者签名:邋日期:劢口g 年,五月乡日 学位论文版权使用授权书 本人完全了解国防科学技术大学有关保留、使用学位论文的规定本人授权国 防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子文档,允 许论文被查阅和借阅;可以将学位论文的全部或部分内容编入有关数据库进行检索, 可以采用影印、缩印或扫描等复制手段保存、汇编学位论文 ( 保密学位论文在解密后适用本授权书。) 学位论文题目: 学位论文作者签名:塞馒日期:劢冶年,2 月匆日 作者指导教师签名: 日期:2 蚴可 i a - 月乡日 国防科学技术大学研究生院硕士学位论文 第一章绪论 本章首先介绍课题的研究背景和意义,然后从结构和资源管理的角度分析国 内外寄存器文件研究的现状,最后介绍本课题的主要工作以及论文的组织。 1 1 研究背景 二十世纪8 0 年代后期,精简指令集计算机( r e d u c e di n s t r u c t i o ns e tc o m p u t e r , p d s c ) 逐渐在高端服务器和工作站领域中取代复杂指令集计算机( c o m p l e x i n s t r u c t i o ns e tc o m p u t e r ,c i s c ) ,成为主流的微处理器设计架构。r i s c 技术具有 简单而统一的指令格式、固定的指令长度以及优化的寻址方式等特点,结构更加 合理。一般来说,r i s c 处理器比同频c i s c 处理器要快5 0 0 o - - , 7 5 ,同时r i s c 处理器更容易设计和纠错。 如何挖掘处理器的并行性一直是处理器设计者努力的重要方向晗1 。传统r i s c 处理器体系结构和编译优化技术主要专注于开发程序执行中的指令级并行性 ( i n s t r u c t i o nl e v e lp a r a l l e l i s m ,i l p ) ,通过在一个时钟周期内发射多个操作来提高处 理器的i p c 。但是,单个程序的有限指令级并行性决定了多发射处理器的资源利用 率不高。 近几年来,微处理器体系结构有了新的发展m 3 。研究人员先后提出多种利用 线程级并行( t h r e a dl e v e lp a r a l l e l i s m ,t l p ) 来提高处理器资源利用率的体系结构, 包括多线程处理器( m u l t i t h r e a d e dp r o c e s s o r ) 、多核处理器( m u l t i c o r e ) 和同时多线程 ( s i m u l t a n e o u sm u l t i t h r e a d i n g ,s m t ) 结构。通过并行执行来自不同线程的指令流, 单个线程中的长延迟操作得到很好的隐藏,有效地提高了资源的利用率,使处理 器的性能得到显著提高。然而,多线程并行执行需要更多的寄存器来保存多个现 场,这对寄存器文件( r e g i s t e rf i l e ,r f ) 提出了更高的要求。 1 2 课题研究的意义 过程调用是结构化程序设计的重要体现,然而频繁的过程调用和返回对微处 理器的性能影响很大。每次过程调用,过程的上下文必须保存到存储器中,同时 通过某种方式向子过程传递参数。过程返回时,保存的上下文必须恢复,而且还 要通过某种方式向父过程返回结果。由于过程调用中上下文的保存与恢复需要多 次访问存储器,时间开销巨大,所以处理器中设置大容量寄存器文件用以保存上 下文,无疑会减少过程调用和返回时寄存器与存储器之间频繁的数据交换。 另外,前瞻性推测执行、显式指令并行执行等技术( e x p l i c i ti n s t r u c t i o np a r a l l e l 第1 页 国防科学技术大学研究生院硕士学位论文 c o m p u t i n g ,e p i c ) 1 的应用使流水线数目和指令窗口不断增大,这也造成寄存器文 件的规模越来越大。d e ca l p h ai s a 中定义了6 4 个逻辑寄存器,a l p h a2 1 2 6 4 1 是 该体系结构的第二代实现,实际物理寄存器为8 0 个;h p i n t e li a 一6 4 口8 3 体系结构 中,定义了1 2 8 个整数寄存器,并通过旋转寄存器窗口技术扩大了寄存器文件的 规模。 在多线程环境下,为了进一步挖掘程序的并行性,提高系统的吞吐率,需要 更多寄存器保存多个现场阳1 ,这进一步加剧了处理器对大寄存器文件的依赖,也使 得寄存器文件的设计变得越来越复杂瞳引。首先,多线程处理器寄存器文件的规模 越来越大,读写端口数越来越多。由于寄存器文件的面积与寄存器的数目呈线性 关系,与读写端口的数目呈超线性关系,而且功耗与寄存器端口数成指数关系n 叫, 因此随着寄存器数量的增加以及读写端口数目的增多,寄存器文件的面积和功耗 将会迅速增大。其次,由于寄存器文件容量的增大,管理机制变得越来越复杂, 寄存器访问时延将成为流水线的瓶颈之一。 综上所述,在多线程环境下需要设计更为有效的寄存器文件结构,采用更为 合理的寄存器资源管理策略,在提高寄存器文件性能的同时控制其面积和功耗, 缩短访问时延。 1 3 寄存器文件的研究现状 作为微处理器的关键部件之一,寄存器文件一直是体系结构研究的热点。寄 存器文件的研究通常从结构设计和管理策略两方面展开,下面主要介绍当前国际、 国内在这两方面的研究现状。 1 3 1 层次结构 c a c h e 的出现是提高存储系统组织效率的一个革命性进步。c a c h e 置于主存和 c p u 之间,大幅度地缓解了c p u 和主存储器之间日益扩大的速度差距。同样,针 对由于寄存器文件容量增大、读写端口数增多而导致的访问时间过长的问题,也 可以用层次结构加以解决。 ;,”掣 l l 寄存器 l 2 寄存器文件 r 文件 tj 奄, 图1 1 两级寄存器文件结构 第2 页 国防科学技术大学研究生院硕士学位论文 如图1 1 所示,大容量寄存器文件可以分成两级:通常第一级寄存器文件的规 模比较小,端口数比较多,访问速度快;第二级寄存器文件规模比较大,端口数 比较少,访问速度比较慢。两级寄存器文件的管理可以由软件控制,也可以用硬 件自动完成。 c r a y 1 计算机n 妇中2 4 位地址寄存器文件和6 4 位标量数据寄存器文件都采用 了两级结构,第一级和第二级分别含有8 个和6 4 个寄存器。正被使用或者马上用 到的数据被存放在第一级寄存器文件中,其它数据保留在第二级寄存器文件里。 两级寄存器文件之间的数据传送完全由软件控制完成。 s w e n s e n 和p a t t 在n 明提出了一种与此类似的两级寄存器文件结构,两级寄存器 文件分别具有不同的容量以及不同的访问速度,由编译器静态完成寄存器分配, 在容量和速度之间取得平衡。 y u n g 和w i l h e l m 在n 3 1 中提出了寄存器c a c h e 的概念,采用寄存器记分牌和寄 存器c a c h e ( r e g i s t e rs c o r e b o a r da n dc a c h e ) 方法,将一个容量小、速度快的寄存器 c a c h e 与处理器流水线中的旁路机制相结合,解决寄存器文件大容量需求和处理器 主频之间的矛盾。 图1 2 两级寄存器流水线结构 寄存器读写具有很强的局部性,s p e c 9 2 整数基准程序的统计显示,5 0 的寄 存器操作数在产生之后的两条指令之内就被用到,对于一个流水线深度为5 的处 理器,所需寄存器操作数5 0 可以通过旁路获得n 3 1 。寄存器记分牌和寄存器c a c h e 的思想就是将寄存器文件用一个小得多的寄存器c a c h e 代替,并配备一个较大的 后援寄存器,如图1 2 所示。不能从旁路获得的操作数由寄存器c a c h e 提供,当寄 存器c a c h e 中也没有时就从后援寄存器读取。不能通过旁路直接获得的计算结果 需写入寄存器c a c h e ,并且根据一定的替换算法( 如l r u ) 更新寄存器c a c h e 并与后 援寄存器进行数据交换。只要寄存器c a c h e 的容量合适( 大部分操作数都可以从旁 路获得) ,命中率足够大,而且失效开销足够小,性能就可以获得显著提高。 c r u z 同样提出了一种两级寄存器文件结构n 劓,如图1 3 所示。功能单元需要 第3 页 国防科学技术大学研究生院硕士学位论文 的操作数总是由l 1 寄存器文件提供( 从而只需要一级旁路) ,l 1 寄存器文件端口数 较多( 满足最大读写要求) 但规模很小,可以满足高时钟频率下的单周期访问;l 2 寄存器文件容量大但端口少,保存产生的所有运算结果。 图1 3c r u z 提出的两级寄存器文件结构 另外,比较典型的等级结构还有z a l a m e a n 5 1 提出的针对v l i w 结构心2 1 的两级寄 存器文件,两级之间的控制由编译器实现,试图在提供大容量和多端口的同时满 足快速访问。 1 。3 2 水平结构 图1 4 寄存器专用 除了垂直层次结构外,还可以将寄存器按水平方向进行展开分组。层次结构 减少直接面向功能单元的l 1 寄存器文件的容量,主要解决规模大小对访问时间的 影响;而水平结构将带宽分配到各组,从而减少每一组的端口数,主要解决端口 数量对访问时间的影响。从对称性看,水平分布的各寄存器组可以是对称的,具 第4 页 国防科学技术大学研究生院硕士学位论文 有相同的寄存器数量和读写端口数;也呵以不对称,各组的容量和带宽不同,访 问时间也不同。从连接关系上看,既可以将寄存器简单分配到各个功能单元专用, 但是会额外增加组间访问的数据传送开销,如图1 4 所示;也可以通过多路选择实 现各个功能单元对任意寄存器组的访问,如图1 5 所示。水平结构还必须考虑寄存 器分配、运算结果保存以及组间通讯等问题。 图1 5 寄存器共享 c a p i t a n i o 在n 旬中首先提出了水平分布寄存器文件的思想。他针对理想v l i w 结构中所需要的大规模多端口单周期访问寄存器文件在现有技术上难以实现的问 题,提出了一种将寄存器文件水平分布实现的有限连接v l i w 结构( l i m i t e d c o n n e c t i v i t yv l i w ) 。 理想的全连接结构( f u l lc o n n e c t i v i t y ) 可以满足任意功能部件在一个周期内完 成对任意一个寄存器的访问,但是由于v l i w 结构中大量的功能部件需要大量的 寄存器读写端口,加上庞大的寄存器数目,以及越来越高的时钟频率,使其很难 实现。一个实际有效的方法就是限制寄存器文件和功能单元之间的连接,减少寄 存器文件读写端口,将寄存器文件和功能单元分成几组,每组具有相同数目的功 能单元,每组功能单元与本组内的寄存器文件充分连接,任意访问,组间的通讯 由总线实现,由编译器生成专门的数据传送指令在一个周期内完成。 图1 6 有限连接v l i w 结构 第5 页 国防科学技术大学研究生院硕士学位论文 一个简单的有限连接v l i w 结构如图1 6 所示,功能单元和寄存器文件共分成 3 组,每组两个功能单元。 除了将功能单元和寄存器文件水平组织外,还必须将原有的理想v l i w 结构 的代码按新的结构和资源分布情况进行划分,也就是将原来的单一代码串组织成 能同时在3 个功能组上执行的3 个代码串,同时考虑到各组的有限连接情况,尽 量减少组间的通讯,这些都由编译器来完成。 l l o s a 提出了另外一种称之为非对称双寄存器文件( n o n c o n s i s t e n td u a l r e g i s t e rf i l e s ) 拘水平结构n 训。该方法的特点是:将寄存器文件分成不对称( 主要是 指存储的内容不同) 的两组,再加上优化的分配调度算法,不仅减少了每个寄存 器组的端口数,而且降低了对容量的要求。 非对称双寄存器文件的具体思路是:将原有的寄存器文件用两个具有相同数 量寄存器的子文件代替,并相应地将功能单元分组,每个子寄存器文件的读端口 数量均减为原来的一半,而写端口则可以不变( 因为读端口多于写端口而且访问 时间只与读端口的数量有关) ,只在一组中用到的局部数据只在该组的寄存器文 件中存储,而两组都要用到的公共数据则会同时写入两组寄存器文件。同时,为 了尽量减少公共数据的数量以节省空间以及平衡两组寄存器文件的容量需求,还 可以在两组之间进行操作交换,也就是将分别在两组中使用相同功能单元的两条 指令相互交换,从而分别在不同的组中执行。通过这种指令分配的变化改变某些 操作数的属性( 局部变公共或者公共变局部) ,使公共数据的数量达到最少。l l o s a 给出了具体分配调度以及操作交换的例子n 刀。 除此之外,a l p h a 2 1 2 6 4 1 中也采用了单层两组的寄存器文件结构,每个功能单 元只能从同组的寄存器文件中读取数据,而运算结果则同时写入两组寄存器文件。 跨组写会产生一个周期的延迟。尽管减少了各组寄存器文件的读端口数和容量, 但空间利用率却比较低。r u s s e l 也提出了一个单层多组寄存器文件结构n ,每组寄 存器文件只有两个读端口和一个写端口,将寄存器分配推迟到指令执行阶段进行, 从而避免写端口冲突。 此外,还可以将寄存器文件垂直分层和水平分组相结合,同时减小由容量和 带宽造成的访问延迟。例如b a l a s u b r a m o n i a n n 引提出寄存器文件在采用层次结构减 少容量对访问延迟的影响的同时,还通过水平分组的方法进一步减少对端口数的 要求。 1 3 3 资源管理 1 3 1 和1 3 2 节介绍的方法都是从优化寄存器文件的组织和结构的角度,解决 容量和带宽所引起的问题。另外,还可以立足于对寄存器资源的管理,通过提高 第6 页 国防科学技术大学研究生院硕士学位论文 资源利用效率来减少对寄存器的需求。 对寄存器使用情况的统计表明,在指令译码阶段过早地进行寄存器分配,将 导致整数和浮点程序对寄存器的需求量分别提高4 5 和4 4 n 引。鉴于此,m o n r e a l 等人提出了一种延迟物理寄存器分配缩短寄存器占用时间的重命名算法啪1 。该方 法在指令译码的时候仅仅给每条指令的目的寄存器数分配一个不占用任何存储单 元的标记,即虚拟物理寄存器,由它来取代具体的物理寄存器,而直到运算结果 已经产生真正需要寄存器单元时,才分配物理寄存器。 相对于传统的虚拟寄存器和物理寄存器,虚拟物理寄存器是一种新的寄存器 类型。i s a 指令所引用的寄存器被称作逻辑寄存器。指令译码时,目的寄存器被映 射到一个标志,该标志与物理存储单元无关,所以我们称之为虚拟一物理寄存器。 指令执行完成后,它将分配物理寄存器以保存结果。指令提交后,先前分配的物 理寄存器连同其逻辑目的寄存器一起释放。 虚拟物理寄存器结构采用了两个寄存器映射表:通用映射表( g e n e r a lm a p p i n g t a b l e ,g m t ) 和物理映射表( p h y s i c a lm a p p i n gt a b l e ,p m t ) 。g m t 用逻辑寄存器号 来索引,指示逻辑寄存器映射到的虚拟物理寄存器或逻辑寄存器。p m t 指示虚拟 物理寄存器映射的最近一个物理寄存器。虚拟物理寄存器的数目多于物理寄存器 的数目。 指令译码时,它的源操作数通过g m t 被重命名到虚拟一物理寄存器或者物理 寄存器。指令执行完成时,需要p m t 为目的寄存器分配一个新的物理寄存器。这 时,从空闲的物理寄存器池中取出一个新的物理寄存器。 与延迟分配相反,b a l a s u b r a m o n i a n 等人n 8 儿2 提出了一种结合两级结构实现的 提前释放物理寄存器的算法,同样可以有效缩短寄存器的占用时间。寄存器的分 配仍然在指令分派时进行,但是结果写入后,只要最后一条使用该结果的指令完 成读取,就释放这个寄存器,而不必等到下一条相同写地址指令得到确认。为了 防止分支预测失败以及异常发生,该数据继续保存在l 2 寄存器文件中,以供恢复 之用。但是需要对l l 寄存器文件和l 2 寄存器文件中的物理寄存器增加很多记录 信息,例如l l 寄存器文件的c o n s u m e r ( 需要用到其结果的后续指令) 计数器、当前 映射位、有效位等,以及每个l 2 寄存器记录的前后分支指令的序号和所对应的 l l 寄存器名等。由于寄存器占用时间缩短,l l 寄存器文件的容量与原来的寄存器 文件相比会小很多,从而提高了访问速度。同时,由于l 2 寄存器文件只在预测失 败和异常情况下才会被访问,因此容量和带宽要求会很低,两级之间的通讯导致 的平均延迟也会很小。由于保持了寄存器的按序分配,任意一次备份拷回都会成 功的分配到l l 寄存器。 第7 页 国防科学技术大学研究生院硕士学位论文 1 4 本文的主要工作 本课题是我所研发x 型通用微处理器的子课题,主要任务是在多线程的特定 环境下设计一个支持4 线程并行的寄存器文件。本课题的主要工作体现在以下几 个方面: 设计了一款支持多线程的高性能通用寄存器文件,它有3 个读端口和2 个写 端口,支持4 线程并行。首先研究了多线程体系结构的特点以及寄存器文件的功 能和结构,分析了过程调用与寄存器窗口的关系。然后针对多线程环境的特点, 对寄存器文件的结构、功能和实现进行了详细设计。在设计中综合应用了寄存器 划分、重叠寄存器窗口、层次扩展等技术,构造了“两级寄存器窗口”结构。从 实现的角度,研究了两级寄存器文件的数据一致性管理策略,给出了寄存器文件 的端口描述和时序设计,并进行了验证。另外,对窗口异常的处理和控制进行了 详细设计。最后,对a c t i v e 寄存器文件进行了电路设计,并给出了面积分析。 1 5 论文的组织 第一章,绪论。主要分析本课题的研究背景、研究意义以及研究现状,指出 本课题研究的主要工作以及论文的组织结构。 第二章,多线程环境下的寄存器文件。研究多线程体系结构的特点以及寄存 器文件的功能、结构特点,分析过程调用与寄存器窗口的关系,并将寄存器文件 与c a c h e 进行对比。 第三章,寄存器文件的结构和管理。给出本课题研究的体系结构环境,综合 应用寄存器划分、寄存器窗口和层次扩展技术,构造“两级寄存器窗口 结构, 并对寄存器窗口的管理以及窗口中断进行详细设计。 第四章,寄存器窗口的优化实现。从多线程寄存器文件实现的角度,对两级 寄存器文件的数据一致性管理策略进行设计,给出寄存器文件的端口描述和时序 设计,并对设计进行验证。 第五章,a c t i v e 寄存器文件的电路实现。分析寄存器单元的几种常见的结构, 给出了a c t i v e 寄存器文件的电路实现,并作面积分析。 第六章,总结。对本课题进行总结,指出课题取得的成果,同时也分析了设 计中的不足,为下一步工作打下基础。 第8 页 国防科学技术大学研究生院硕士学位论文 第二章多线程环境下的寄存器文件 本章首先对线程进行简要介绍,然后研究多线程体系结构的特点以及寄存器 文件的功能、结构,并分析过程调用与寄存器窗口的关系,最后将寄存器文件与 c a c h e 进行比较。 2 1 多线程技术概述 在过去的2 0 多年中,随着超标量技术的不断完善,工作频率目前己经逐渐接 近物理极限,指令级并行难以进一步提高,这就要求有新的并行性开发技术来提 高处理器的性能。因此,很多新的技术应运而生,出现了多标量、t r a c e 处理器、 多线程、多核处理器等新技术。在众多的新技术中,多线程技术( m u l t i - t h r e a d i n g ) 极具发展潜力口引。 2 1 1 线程的概念 多线程并不是一个全新的概念,它是数据流计算机研究的继续。多线程的思 想最早在b s m i t h 设计的d e n e c l o rh e p 机器中率先采用。在传统上,并发多任务 的实现采用的是在操作系统级运行多个进程。由于各个进程拥有自己独立的运行 环境,进程问的耦合关系差,并发粒度过于粗糙,并发实现也不太容易。如果把 进程所占资源与进程中的运行代码相分离,那么在一个地址空间中便可运行多个 指令流,由此产生了线程的概念,如图2 1 所示。但是,线程尚没有统一的定义。 一般说来,线程是指程序中的一个单一的顺序控制流,它由一组指令组成,可以 在程序里独立执行。线程很好地刻画了紧耦合共享主存多处理机体系结构上的并 行处理行为。 图2 1 线程示意图 第9 页 国防科学技术大学研究生院硕士学位论文 多线程技术能够在多个线程之间实现功能单元共享,有效地隐藏单个线程的 长延迟操作。线程分为就绪态、运行态和挂起态,与进程状态空间相同。一旦某 个线程产生一个长延时操作,如访存、处理机间通讯或长浮点运算等,该线程即 被挂起,随即由调度器从线程池中选择一个就绪线程进入c p u 。这样,挂起线程 的时延被隐藏起来了。 在多线程环境下,进程作为独立的实体,它为线程提供运行的资源并构成静 态环境,而线程是处理机调度的基本单位。同一个进程的不同的线程可以共享存 储空间、代码段和数据段,能以较低的代价实现同步和通讯,因此,线程的生成 和切换代价都远低于进程。由于能够快速地切换线程上下文,多线程处理器能在 每个时钟周期发射一个独立线程的指令。由于存在多个独立的线程上下文可供取 指,多线程处理器能够利用线程级并行来提高处理器资源的利用率。 2 1 2 多线程的分类 描述多线程模型的两个因素分别是线程特性和调度算法。线程特性包括线程 粒度、线程相关性、线程原子性以及线程的产生方法等,而调度算法则涉及线程 状态关系、调度机制以及线程执行粒度等。根据线程的调度或执行规模,可以将 其划分为细粒度多线程( f i n e g r a i n e dm u l t i t h r e a d i n g ) 、粗粒度多线程( c o a r s e g r a i n e d m u l t i t h r e a d i n g ) 和同时多线程( s i m u l t a n e o u sm u l t i t h r e a d i n g ,s m t ) 口。 细粒度多线程每执行一条指令都要切换线程,多个线程交叉执行。这种交叉 通常以一种循环的方式进行,并忽略被阻塞的线程。为了使细粒度多线程有实用 价值,处理器必须在每个时钟周期切换线程。细粒度多线程的主要优势在于它可 以隐藏由于长延迟操作引起的吞吐率的损失,因为在一个线程阻塞时其它线程的 指令可以得到执行。细粒度多线程的主要缺点是它延迟了单个线程的执行,因为 一个无阻塞线程会因为其它线程的指令延缓执行。 粗粒度多线程只有在诸如l 2 缓存缺失等代价较高的延迟发生时才切换线程。 这个变化减少了线程切换的需求,使其基本上不花费什么代价,并且似乎不会延 缓单个线程的执行,因为只有在遇到高代价的阻塞时才会执行其它线程的指令。 然而,粗粒度多线程有一个主要的缺点:在克服吞吐率损失方面它受自身能力的 限制,尤其是在发生短阻塞的时候。这个限制来源于粗粒度多线程启动流水线的 代价。因为一个粗粒度多线程处理器执行单个线程的指令,当阻塞发生的时候, 流水线必须被清空或冻结。而阻塞发生之后要执行的线程在指令被执行之前先充 满流水线。由于这个启动开销,粗粒度多线程在减少高阻塞开销时较有实用价值, 这种情况下流水线重填的时间相对于阻塞可以忽略。 同时多线程是多线程的一个变体,它结合了超标量和多线程的好处,在每个 第1 0 页 国防科学技术大学研究生院硕士学位论文 时钟周期中选择多个线程的指令执行,利用多发射指令动态调度机制来开发线程 级并行,同时也开发指令级并行,因此能够更好的利用处理器资源。s m t 在两个 方面提高了处理器的总体性能h 1 : 1 s m t 允许在一个时钟周期内执行来自不同线程的多条指令。因此在一个 时钟周期内,s m t 能够同时利用程序的t l p 和i l p 来消除水平浪费,提高 处理器发射槽以及功能部件的利用率。 2 理论上来说,s m t 允许任何活动线程的组合来发射指令。当由于长延迟 操作或者资源冲突导致只有一个活动线程时,该线程能够使用所有可获得 的发射槽。这使得可以通过使用其他线程的未阻塞指令来消除垂直浪费。 图2 2 依次展示了粗粒度多线程处理器、细粒度多线程处理器和同时多线程处 理器在利用超标量资源方面的不同。横坐标表示每个时钟周期的指令发射能力, 纵坐标表示时钟周期序列,空白槽表示该时钟周期对应的发射槽没有被利用,字 母a 、b 、c 、d 对应处理器里的不同线程。 时间 上 a aa aa aaaa b b b b b b b b b 发射槽一 a aa b b c ddd d a bbb ccc d d d d a aad b b bc cda babd bcda ad d b cbd aab dbcd 粗粒度多线程细粒度多线程同时多线程 图2 2 多线程结构的比较 在粗粒度多线程的情况下,切换到其它使用处理器资源的线程可以部分隐藏 长阻塞。虽然这减小了完全空闲的时钟周期的数目,对于每个时钟周期,指令级 并行的限制仍然导致了空闲的时钟周期。并且,在粗粒度多线程处理器里,由于 线程切换仅在阻塞时发生且新的进程有启动周期,这样势必仍然有一些完全空闲 的周期。 在细粒度多线程的情况下,线程的交叉执行彻底消除了空槽。然而,由于在 一个给定的时钟周期里只有一个线程发射指令,指令级并行仍然导致在单个时钟 周期里有大量的空闲槽。 在s m t 情况下,线程级并行和指令级并行同时被利用,在单个时钟周期里有 第11 页 国防科学技术大学研究生院硕士学位论文 多个线程使用发射槽。理想情况下,发射槽的利用受所需资源的不平衡和多个线 程可用资源的限制。而实际情况下还有其它因素需要考虑,包括活跃的线程数、 缓冲区的极限、从多个线程取回足够指令的能力、哪些指令组可以从单个线程或 多个线程同时被发射等等。 2 1 3 多线程的硬件支持 为了实现多个线程以重叠
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 防洪排洪工程合同范本
- 灯箱租赁合同范本长
- 收购咖啡鲜果合同范本
- 加装电梯签约合同范本
- 混凝土块购销合同范本
- 防水施工合同范本2017
- 合作双方出资合同范本
- 护士医院劳务合同范本
- 店面展位出租合同范本
- 终身售后装修合同范本
- T/CAPA 1-2019脂肪注射移植
- T/BJWX 001-2023物业服务企业等级评定规范
- 横向课题项目协议书
- 曼昆《经济学原理(微观经济学分册)》(第7版)笔记和课后习题
- 维修电子设备合同协议
- 2024年贵州省金沙县事业单位公开招聘医疗卫生岗笔试题带答案
- 《鸿蒙HarmonyOS应用开发基础》全套教学课件
- 风力发电维修合同协议
- 微信电子欠条协议书模板
- 微信视频号账号协议合同
- 挖机配件销售系统化培训
评论
0/150
提交评论