(计算机系统结构专业论文)龙芯2号处理器多线程技术研究.pdf_第1页
(计算机系统结构专业论文)龙芯2号处理器多线程技术研究.pdf_第2页
(计算机系统结构专业论文)龙芯2号处理器多线程技术研究.pdf_第3页
(计算机系统结构专业论文)龙芯2号处理器多线程技术研究.pdf_第4页
(计算机系统结构专业论文)龙芯2号处理器多线程技术研究.pdf_第5页
已阅读5页,还剩113页未读 继续免费阅读

(计算机系统结构专业论文)龙芯2号处理器多线程技术研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

随着集成电路工艺技术的发展,单个芯片上可集成的晶体管数目已达到1 0 亿个,如 何利用这些晶体管资源设计高性能处理器成为当前重要的研究课题。多线程技术通过利 用晶体管资源,开发线程级并行度来提高系统性能,是未来高性能处理器发展的趋势。 本文重点研究多线程处理器技术,以挖掘程序的线程级并行、提高功能部件的利用 率为切入点,以降低设计复杂度、提升处理器的性能为研究目标,从多线程处理器的设 计、同时多微线程体系结构、存储一致性模型和寄存器同步和共享等方面对龙芯2 号多 线程处理器进行了深入研究。本文的主要贡献及创新点如下: 1 在分析当前多线程技术的现状和发展趋势的基础上,结合龙芯处理器的结构特点, 提出龙芯2 号多线程处理器设计方案,并完成了具体的微体系结构设计以及逻辑设计。 在此基础上,使用0 1 8 u r nc m o s 工艺进行综合,进行芯片性能和面积评估。龙芯2 号 多线程处理器拥有超标量、同时多线程和同时多徽线程三种运行模式,允许软件根据应 用程序进行模式选择,最大限度地发挥处理器的性能。 2 提出一种融合同时多线程技术和微线程技术的新型体系结构一同时多微线程, 并且在龙芯2 号多线程处理器中实现此技术。同时多微线程有效结合同时多线程技术硬 件代价小、资源利用率高和微线程技术能够加速单进程应用的优点,通过软硬件协同的 方式充分挖掘单进程程序的微线程级并行性。 3 提出一种新的存储一致性模型一单芯片多线程一致性模型,并给出其正确性证 明。单芯片多线程模型提高了处理器系统的性能,而且不需要对程序员的编程做额外的 限制,单处理机的软件无需作任何修改就可以在多线程处理器上正确运行。提出一种利 用例外机制维护多线程处理器的存储一致性的方法,并给出单芯片多线程一致性模型在 龙芯2 号多线程处理器上的具体实现方案。 4 提出龙芯2 号多线程处理器的线程间寄存器的同步和共享的方案。龙芯2 号多线 程处理器的寄存器增加f u l l e m p t y 状态,并且在泽码流水级进行执行条件的检测,既避 免了修正重命名的物理寄存器号的复杂逻辑,又避免阻塞整个流水线。通过线程间的寄 存器快速访问,龙芯2 号多线程处理器实现了快速高效的同步以及线程间的数据传递。 5 在分析同时多线程和同时多微线程模式的软件需求的基础上,提出龙芯2 号多线 程处理器的软硬件接口协同设计解决方案,给出相应的操作系统实现方案,设计实现了 配套的龙芯2 同时多线程和同时多微线程l i n u x 操作系统。龙芯2 同时多线程i a n u x 操 作系统将调度两个进程同时运行在龙芯2 号多线程处理器上,以此提高整个软件系统的 本文的研究得到国家重点瑶咄研究发展计划( 9 7 3 计划) 2 0 0 5 c b 3 2 1 6 0 0 项目、国家自然科学摹金杰出青年摹金项目 ( 6 0 3 2 5 2 0 5 ) 、国家8 6 3 霞点项目( 2 0 0 2 a a l l g 0 1 0 ,2 0 0 5 a a l l 0 0 1 0 ,2 0 0 5 a a l l 9 0 2 0 ) 的资助 i 龙芯2 号处理器多线程技术研究: 摘耍 性能。龙芯2 同时多微线程l i n u x 操作系统则在内核中为微线程应用程序提供支持,用 户程序可以创建多微线程来提高自己的运行速度。通过在龙芯2 号多线程处理器上启动 l i n u x 操作系统,并运行应用程序,进行了性能评测与分析。 性能评测与分析结果表明,龙芯2 号多线程处理器仅以增加1 8 8 的芯片面积,平 均提高了3 1 1 的性能。充分说明了龙芯2 号多线程处理器是结合龙芯2 号处理器的结 构特点、充分挖掘程序的线程级并行能力、提高处理器中功能部件的利用率的设计方案。 关键词:龙芯2 号;多线程;微体系结构;存储一致性模型;同时多线程;微线程;寄 存器共享;寄存器同步;l i n u x 操作系统: p r o c e s s o r , ad e s i g n m o d e la n dm i c r o a r c h i t e c t u r e i m p l e m e n t s c h e m eo fg a l s _ 2 m u l t i t h r e a d i n gp r o c e s s o ri sp r o p o s e d t h el o g i cd e s i g no fg o d s o n - 2m u l t i t h r e a d i n gp r o c e s s o r h a sb e e nc o m p l e t e d t h ed e s i g no ft h eg o d s o n - 2m u l f i t h r e a d n gp r o c e s s o rh a sb e e np h y s i c a l l y i m p l e m e n t e db a s e do n0 1 8 u r nc m o sp r o c e s s t h ea r e ao ft h ec h i pi se v a l u a t e d g o d s o n - 2 m u l t i t h r e a d i n gp r o c e s s o rs u p p o r t s t h r e er u n n i n gm o d e l si n c l u d i n gs u p e r s c a l a rm o d e l , s i m u l t a n e o u sm u l t i t h r e a d i n gm o d e la n ds i m u l t a n e o u sm u l t i - m i c r o t h r e a d i n gm o d e l t h e s o f t w a r es y s t e mi sa l l o w e dt oc h o o s et h er u n n i n gm o d e l si na c c o r d = m ew i t ha p p l i c a t i o n p r o g r a m st or e a c ht h em a x i n l u l np e r f o r m a n c eo f p r o c e s s o r 2 an o v e lp l o c e s s o ra r c h i t e c t u r ea n di m p l e m e n ts c h e m eo ft h es i m u l t a n e o u s m u l t i m i c r o t h r e a d i n g t h a tc o m b i n e ss i m u l t a n e o u s m u l t i t h r e a d i n g t e c h n i q u e w i t h m i c r o t h r e a d i n gt e c h n i q u e i s p r o p o 砒s i m u l t a n e o u sm u l t i - m i c r o t h r e a d i n ge f f i c i e n t l y c o m b i n e st h ea d v a n t a g eo fl i t t l eh a r d w a r eo v e r h e a di ns i m u l t a n e o u sm u l t i t h r e a d i n gw i t ht h e a b i l i t yo fs p c c d i n gu ps i n g l ep r o g r a mi nm i c r o 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 。m i c r o t h r e a d i n g e x p l o i t st h em i c r o t h r e a d i n g - l e v e lp a r a l l e l i s m0 fs i n g l cp r o g r a mf u l l yb y i l l c a n so fs o f t w a r ea n d h a r d w a r ec o - d e s i g n 3 an o v e lm e m o r yc o n s i s t e n c yo fc h i pm u l t i t h r e a d i n gc o n s i s t e n c ym o d e li sp r o p o s e d c h i pm u l t i t h r e a d i n gc o n s i s t e n c ym o d e li m p r o v e st h ep e r f o r m a n c :ca n dr e d u c e st h ec o m p l e x i t y a n dc o s to ft h ep r o c e s s o rd e s i g n u n i p r o c e s s o rp r o g r a mc a l lr u bo nm u l t i t h r e a d i n gp r o c e s s o r i m s 枷w o r k w a ss m a , t t e d b y n a t i o n a l b a s i c g e s e a t 吐p r o g r a m o f c h i n a ( c , t a n t n o 2 0 0 5 2 8 3 2 1 6 0 0 ) , t h e n a t i o m l n a t m a l f o u n d a t i o n o f c h i n a f o r d i s l i n g u i s h c d y m m g s c h o l a m ( g r a m n o 6 0 3 2 5 2 0 5 ) ;t h e n 删埘g h 砌r c s c a c c h a l d e v e i o p 卫a e n t p i o f c h i a a ( g r a n t n o s 2 0 0 2 a a l l 0 0 1 0 , 2 0 0 5 a a l l 0 0 1 0 a n d 2 0 0 5 a a l l 9 0 2 0 ) m 龙芯2 号处理器多线程技术研究 a b 8 t f a c 【 c o r r e c t l yw i t h o u tm o d i f i c a t i o nb ya d o p t i n gc h i pm u l t i t h r e a d i n gc o n s i s t e n c ym o d e l as o l u t i o n o f m a i n t a i n i n gm e m o r yc o n s i s t e n c yb ye x c e p t i o ns c h e m ei sp r e s e n t e d a n di m p l e m e n ts c h e m e o f c h i pm u l t i t h r e a d i n gc o n s i s t e n c ym o d e l o i lg o d s o n - 2p r o c e s s o ri s d e s i g n e d a n d i m p l e m e n t e d 4 f a s tr e g i s t e rs h a r i n ga n ds y n c h r o n i z a t i o ns c h e m ei sp r o p o s e d g o d s o n - 2m u l t i t h r e a d i n g p r o c e s s o ra d o p t sf u l l e r a p t ys y n c h r o n i z a t i o n t 0p a s sm e s s a g e sb e t w e e nt h r e a d sa tr e g i s t e rl e v e l e a c hr e g i s t e rh a sa l la s s o c i a t e df u l l e m p t yb i t r u n n i n gc o n d i t i o ni sc h e c k e di nd e c o d es t a g e t h i ss c h e m en o to n l ya v o i d sb l o c k i n gt h ew h o l e p i p e l i n e , b u ta l s oa v o i d st h ec o m p l e xl o g i co f c o r r e c t i n gp h y s i c a lr e g i s t e rn u m b e r f u l l e m p t ys y n c h r o n i z a t i o nn o to n l y 锄p a s sm e s s a g e s f a s ta tr e g i s t e rl e v e l , b u ta l s oc a r s y n c h r o n i z eb e t w e e nt w om i c r o t h r e a d se f f i c i e n t l y 5 h a r d w a r e s o f t w a r ei n t e r f a c ea n do p e r a t i n gs y s t e md e s i g no fg o d s o n - 2m u l t i t h r e a d i n g p r o c e s s o ri sp r o p o s e db a s e d0 1 1t h ea n a l y s i so fs o f t w a r er e q u i r e m e n t t h er e l a t e dl i n u x o p e r a t i n gs y s t e m s f o rg o d s o n - 2s i m u l t a n e o u s m u l t i t h r e a d i n g a n ds i m u l t a n e o u s m u l t i - m i c r o t l c a d i n g a l e d e s i g n e d a n d i m p l e m e n t e d t h e g o d s o n - 2s i m u l t a n e o u s m u l t i t l l i e a d i n gl i n u xo p e r a t i n gs y s t e mi sa b l et os c h e d u l em u l t i p l ep r o c e s s e st or u no nt h e p r o c e s s o r , w h i c hw i l li m p r o v et h ep e r f o r m a n c eo ft h ew h o l es o f t w a r es y s t e m t h eg o d s o n - 2 s i m u l t a n e o u s m i c r o t h r e a d i n gl i n u x 啪s u p p o r tt h em i c r o t h r e a d i n ga p p l i c a t i o n s , s o p m g r a m m e mc a nr e c o m p i l eo rr e w r i t et h ea p p l i c a t i o na n dc r e a t em u n i p l em i c r o t h r e a d st o f i n i s ht h es a m ew o r k , w h i c hw i l li m p r o v et h ep e r f o r m a n c eo ft h i sa p p l i c a t i o n l i n u xo p e r a t i n g s y s t e mi sb o o t e di ng o d s o n - 2m u l t i t h r e a d i n gp m c c s s o ra n da p p l i c a t i o np r o g r a m sa r ee x e c u t e d i ni tt oe v a l u a t ep e r f o r m a n c e t h ee x p e r i m e n t a lr e s u l t si n d i c a t et h a tt h ep e a o r m a n c eo fm u m t h r e a d i n gg o d s o n - 2 p r o c e s s o ri si m p r o v e ds i g n i f i c a n t l yb yf l l ne x p l o i t a t i o no f t h r e a d - l e v e lp a r a l l e l i s m t h ea v e r a g e s p e e d u pi s3 1 3 w i t ho n l y1 8 8 a r e ao v e r h e a d k e y w o r d s :g o d s o n - 2 ;m u l t i t h r e a d i n g ;m i c r o a r c h i t e c t u r e ;m e m o r yc o n s i s t e n c ym o d e l ; 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 ;m i c r o t h r e a d i n g ;r e g i s t e rs h a r i n g ;r e g i s t e rs y n c h r o n i z a t i o n ; 1 i n u xo p e r a t i n gs y s t e m i v 图1 12 0 0 5 1 t r s 产品工艺趋势图 图目录 图1 2 龙芯2 号超标量处理器微体系结构 2 3 图1 3 完美的龙芯2 b 处理器s p e cc p u 2 0 0 0 的1 p c 4 图1 4 指令相关的测试程序 图2 1 发射槽利用情况 图2 2 粗粒度多线程的线程切换状态机 图2 3 同时多线程微体系结构 图2 a 单芯片多处理器组织结构 图2 5 多标量处理器总体结构 图2 6 迹处理器结构 图2 7 超线程体系结构 图2 8 动态多线程处理器结构 图2 9 猜测多线程处理器结构 图2 1 0i n t e l 的h y p e r - t h r e a d i n g 处理器结构 图2 1 1 c 程序a 图2 1 2 传统的单线程程序示例 图2 1 3 微线程程序示例 图2 1 4 微线程处理器体系结构 图3 1 龙芯2 号处理器微体系结构 图3 2 同时多微线程处理器的微体系结构 图3 3 同时多微线程程序示例 图3 4 龙芯2 号多线程处理器的微体系结构 图3 5 取指结构示意图 i x 7 屹 h 垢 拇 加 殂 笼 乃 甜 拍 拍 勰 勰 砣 剪 钉 舵 够 图6 4l i n u x 启动s m p 处理器的过程7 5 图6 5s m p _ i n i t 函数代码。7 6 图6 6 龙芯2 号多线程处理器次c p u 的启动过程 图6 7 龙芯2 号多线程处理器的c p u 间中断发送函数 图6 8 进程的内核空间使用情况示意图 图6 9 同时多微线程l i n u x 操作系统的s a v e _ s o m e 函数示意图 图7 1t i m e 程序结构示意图 图7 2 龙芯2 号多线程处理器与超标量处理器的面积比较 图7 3 龙芯2 号多线程处理器与超标量处理器的单进程负载性能比较9 0 图7 4 龙芯2 号多线程处理器与超标量处理器的单进程负载流水线阻塞比较。9 0 图7 5 龙芯2 号多线程处理器各级流水线性能 图7 6 龙芯2 号多线程处理器取指流水级性能分析 x 丌 蔼 韶 科 嬲 龙巷2 号处理器多线程技术研究:图目录 图7 7 龙芯2 号多线程处理器译码流水级性能分析 图7 8 龙芯2 号多线程处理器与超标量处理器的多进程负载转移失效率比较。9 3 图7 9 龙芯2 号多线程处理器与超标量处理器的多进程负载指令c a c h e 失效率比较9 4 图7 1 0 龙芯2 号多线程处理器与超标量处理器的多进程负载数据c a c h e 失效率比较9 4 图7 1 1 龙芯2 号多线程处理器与超标量处理器的多进程负载数据t l b 失效率比较9 4 图7 1 2 龙芯2 号多线程处理器与超标量处理器的多进程负载流水线阻塞比较9 5 图7 1 3 龙芯2 号多线程处理器与超标量处理器的多进程负载性能比较9 5 x l 表目录 表3 10 1 8 u r nc m o s 工艺的5 1 2 x 6 4 单双端口r a m 比较 表3 2 龙芯2 号处理器配置 表4 1 常用符号及其含义 表5 1 一些常见的同步原语 4 2 表6 1i a n u x 中c p u 间消息传递接口函数表 表6 2 龙芯2 号多线程处理器增加及修改指令表 表7 1 指令相关测试程序的测试结果 表7 2 矩阵乘测试程序的测试结果 x m 6 0 7 7 8 5 9 1 9 6 声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得 的研究成果。就我所知,除了文中特别加以标注和致谢的地方外,论文中 不包含其他人已经发表或撰写过的研究成果。与我一同工作的同志对本研 究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。 作者签名:李租勉 日期:a 删譬“ 关于论文使用授权的说明 中国科学院计算技术研究所有权处理、保留送交论文的复印件,允许 论文被查阅和借阅;并可以公布论文的全部或部分内容,可以采用影印、 缩印或其它复制手段保存该论文。 作者签名:孝租松 导师签名期:枷莎龟髟 第一章绪论 应用需求和半导体工艺水平的提高一直是微处理器发展的最主要动力。随着半导体 技术的发展,芯片集成度增加,未来单个芯片上的晶体管数目将达到1 0 亿个以上。如何 充分利用这些晶体管资源来获得高性能微处理器,满足未来应用的需求,成为当i 葑重要 的研究课题。高性能微处理器体系结构技术主要通过处理器中各个层次的并行性开发来 提高性能。处理器设计经历了从指令级并行性、数据级并行性向线程,进程级并行性发展 的历程。多线程技术( m u l t i - t h r e a d i n g ) 成为未来高性能处理器发展的一个趋势。 本章首先结合目前如何进一步提高龙芯2 号处理器的处理能力,分析多线程技术研 究的必要性。然后,对多线程技术的分类进行阐述。接着,对实验方法和处理器性能评 测程序进行简介。最后,总结本文的创新点,并给出了后续章节介绍。 1 1 多线程技术研究的必要性 推动微处理器性能提高的因素主要为两个:更高的主频和更先进的体系结构,处理 器主频的不断提升可以直接提高性能,但随着超大规模集成电路生产工艺的发展和极限, 处理器的性能提升还必须依赖体系结构技术的不断突破。通用微处理器体系结构面临着 新的挑战和创新机遇。半导体工艺的发展、超标量技术的局限性和应用的需求共同决定 了在微处理器设计中引入多线程技术的必然性。 1 1 1 半导体工艺的发展 自从1 9 6 5 年i n t e l 公司主要刨始人g o r d o n m o o r e 提出了“集成电路中每平方英寸的 晶体管数目每年增加一倍”,这个被称为“摩尔定律”的预言成为了以后几十年指导集成 电路技术发展的最终法则。虽然摩尔定律不是一个物理意义上的定律,但是集成电路行 业中的学者、研发人员和工程技术人员已经自觉、不自觉成为这个定律的忠实执行者。 根据世界半导体行业共同制订的2 0 0 5 年国际半导体技术发展路线图( i t r s ) ,未来1 5 年集成电路仍将按摩尔定律持续高速发展,如图1 1 所示 r r r s o s 。预测到2 0 1 0 年,高 性能c i u 芯片上可集成的晶体管数将超过2 2 亿个( 到2 0 2 0 年超过1 7 6 亿个) ,片上局 部时钟频率将达到1 5 g h z ( 到2 0 2 0 年达到7 1 g h z ) 。因此,需要引入新的体系结构和设 计方法,才能有效地利用摩尔定律进一步延续带来的巨大晶体管资源。这样,就促进了 一些复杂的体系结构的发展,多线程技术正是其中之一。 中国科学院博士学位论文龙芯2 号处理嚣多线程技术研究 卸0 5i t r sp r o d m lt c | n a l o 甜rt r m x l s - r - 臀6 伽p e rc h i p la v e r a g e j i o d u 鲫1 9 7 0 - 2 0 2 0 l。m 0 0 r e sl a w i 教f u n c t i o n s c h p 一一一矗? 治 i p e r 2 y e a r s _ _ - 占士赵t 7 t _ r 一一 濯 区嚣芷 一越二一 一葚0 t - i 一癌 少幺。 l篇 h - 0 舀i 辚 磊m 5 面o j _ h m 一 + 鬟剿i 氍嘴硎u l 崩ll 飘r 1 黑嚣:裟“o ”l c j f i g u r e j 口2 0 0 5 i t r s p r o d u c t t e c h n o l o g y t r e n d s : p r o d u c l f u n c t i o n s c h , p a n d i n d u s t r y a v e r a g e 。 m o o r e a l a w d e n d , 图1 12 0 0 5 1 t r s 产品工艺趋势图 多线程技术并不是一个很新的设计思想,2 0 世纪8 0 年代甚至更早就已经有相关概 念提, m , i a n n u e e i 9 4 。1 9 9 0 年,b e r k e l e y 的r a f a e lh s 脚v e d r a - b a r r e m 和d a v i db c u l l e r 等人针对多线程结构的处理器进行了分析和研究,研究结果表明,在当时的工艺条件下, 当线程调度增加时,多线程结构的设计瓶颈在于其决定延迟的参数c r ,在固定芯片区 域面积情况下,无论可调度的线程数还是c a c h e 的作用都大大受限,由此分析质疑了 微处理器采用多线程技术的可行性 s a a v e d r a b a r r e r a 9 0 。到了9 0 年代中期,超深亚微米 ( v e r yd e e ps u b - m i c r o ,v d s m ) 工艺从0 2 5 u r n 向更细微的0 1 8 u r n 发展,多线程处理 器又看到了曙光,重新受到学术研究界和工业界的重视。并且学术界和工业界普遍认为 在处理器中引入多线程技术,是利用摩尔定律进一步延续带来的巨大晶体管资源的有效 方法。 1 1 2 超标量技术的局限 超标量技术全部利用微处理器硬件开发指令级( i l p ) 和数据级并行性( d l p ) 。其 中指令级并行性包括通过流水线技术实现指令之间重叠,通过多发射或超长指令字技术 实现空间重复,以及通过乱序执行技术充分发挥流水线效率。数据级并行性主要使一条 指令完成对不同数据的多个相同操作,主要包括向量处理技术以及单指令流多数据流 ( s i m d ) 技术。 自从八十年代出现产品以来,超标量技术发展十分成熟,积累非常丰富。目前,超 标量微处理器在市场上占有绝对优势。r i s c 结构的超标量微处理器主要有:a l p h a 、 m i p s 、p o w e r 、s p a r c 、p a - r i s c 。而c i s c 结构的超标量微处理器主要由i n t e l 和a m d 2 第一章绪论 公司开发,如:a m do p t e r o n 和i n t e lp e n t i u m 系列等。研究表明应用的i l p 在和1 0 之 间,而目前通过超标量技术开发已经达到2 4 。单纯通过硬件进一步开发i l p 已经非常 困难,实现的复杂性所带来的性能下降已越来越严重,很难获得更大的性能增益。线程 进程级并行性是包括单处理器的多线程进程技术以及多处理器的多线程,进程技术。从 指令级、数据级并行性向线程,进程级并行性发展是处理器发展的趋势。下面结合目前如 何进一步提高龙芯2 号处理器的处理能力,阐述多线程技术研究的必要性。 龙芯2 号处理器【h u 0 5 】是中国科学院计算技术研究所自主研制的r i s c 体系结构、 6 4 位、4 发射、9 级流水线的超标量超流水线通用处理器。整条流水线分为取指、预译 码、译码、寄存器重命名、分配队列项、发射、读寄存器、执行并写回和提交等9 个流 水级,微体系结构如图1 2 所示。图中指令顺序提交队列有3 2 项,允许3 2 条指令在处 理器内部乱序发射、乱序执行。龙芯2 号处理器通过寄存器莺命名技术解决读后写( v 蚺r ) 和写后写( w a w ) 两种假相关,使得更多数据准备好的指令可以先于数据未准备好的指 令执行。访存功能部件实现了非阻塞的高速缓存,允许访存指令乱序执行,避免长延迟 的访存指令阻塞其它访存指令的执行。该处理器采用l o a d 指令猜测执行技术避免s t o r e 与l o a d 之间的假相关阻塞l o a d 指令的执行。在预译码流水级,采用转移预测技术,在转 移条件还未确定的情况下,对转移的方向和转移地址做出预测,进行取指执行,避免在 转移条件确定之前流水线处于空闲状态。龙芯2 号处理器通过上述转移预测、寄存器重 命名、乱序执行、非阻塞的高速缓存、访存猜测执行等关键技术,促使指令在流水线中 尽量流动起来,充分挖掘了指令级并行性。 努h 霾h 霜 指令顺序提交队列 定点寄 存器重 命名 浮点寄 存器重 命名 分 霞 型 定点发 射队列 定点寄 存器堆 定点功 能部件 浮点发 射队列 浮点寄 存器堆 浮点功 能部件 访存功 能部件 图1 2 龙芯2 号超标量处理器微体系结构 然而,这些超标量处理器的关键技术只能解决指令间的假相关,单线程程序中指令 问的相关性依然存在。图l - 3 是完美的龙芯2 b 处理器( 即在龙芯2 1 3 基础上分支预测永 远正确和访存永远c a c h e 命中) 运行s p e c c p u 2 0 0 0 的w c 张0 5 1 。从图中可以看出, 尽管分支预测永远正确和访存永远c a c h e 命中,但i p c 并不能达到四发射超标量处理 器的理想值4 。这是由于单线程程序中指令间的真相关性,使得处理器无法每个时钟周 目前仍然停留在研究阶段,商用处理器实现比较困难。另一种方法是尽量找到更多不相 关的指令。要找到更多不相关的指令也分为两种不同的方法,一种是扩大指令顺序提交 队列,使得在处理器内部可并行执行的指令数增大,这样不相关的指令数也就增大,可 以找到更多不相关的指令同时执行。但是不断扩大指令队列的效果却不断减小,最后当 指令队列大到某一值后即使继续增大也无法再找到不相关的指令,而且增大指令队列也 面临硬件代价大和复杂度高的问题。另一种方法是在一个处理器里执行多个线程的指令 u n g e r e l 0 2 ,由于线程间的指令不相关,这样在相同大小的指令队列中就可以找到更多 的不相关的指令来并行执行。这种方法也是目前许多通用处理器所采用的方法,也就是 从传统的指令级并行向线程级并行发展。龙芯2 号处理器要进一步提高处理能力,也需 要引入多线程处理器技术。 1 1 3 应用的需求 与指令级并行技术趋于成熟相呼应的是应用的变化。在r i s c 处理器发展的鼎盛期, 处理器性能的提高主要是为了满足科学和工程计算的需求,非常重视浮点运算能力;而 随着网络及媒体应用的普及,对处理器性能的需求发生了变化。i n t e r a e t 的迅猛发展,要 求微处理器具有响应实时性、处理流式数据类型的能力、支持数据级和线程级并行性 为了进一步开发应用问题中的并行性,提高微处理器的性能,需要进行多线程技术的研 究来适应新的市场和不断变化的应用需要。 4 第一章绪论 1 2 多线程技术的简述 多线程技术主要是利用不同线程之间互不相关的特性,利用线程级并行提高处理器 的吞吐率和处理指令的带宽。线程级并行思想来源于一些早期的分时共享计算机。这些 早期的系统将相对较快的c p u 和相对较慢的输入输出设备耦合在一起工作。由于c p u 非常昂贵,而慢速的i ,o 设备和终端相对较便宜,操作系统的开发人员创造出分时共享 的概念,允许多个i o 设备连接到一个c p u ,以时问片的形式共享这个c p u 。这就允许 昂贵的c p u 在当前线程遇到长延迟的i o 事件时,将上下文切换到另一个用户线程。因 此,只要有其它用户线程等待执行,系统中最昂贵的资源c ! p u 就保持繁忙。时间分 片策略一保证公平访问c p u 的时间片,通过软件在操作系统中实现,因此执行时就引 入了额外的切换上下文歼销。由于增加了操作系统进行上下文切换管理的开销,单个线 程的执行时间实际上有所增加。然而,处理器总的指令吞吐率将会提高,因为在等待长 延迟的i ,o 事件结束时,c p u 执行了另一个线程的指令,而在以前它将处于空阙的状态。 随着微处理器设计和生产工艺的快速发展,存储系统的访问速度与处理器的运算速 度的差距越来越显著。当某一线程访问片外存储系统时,需要等待较长时间才能得到返 回的数据,将导致处理器内部的运算部件处于空闲的状态。因此,可以利用这部分时间 执行其它的线程。然而,访存的时间毕竟不如慢速f o 那样长的等待时间,不允许操作 系统进行上下文的切换,因此,需要处理器内部保存多个线程的上下文。由于生产工艺 的发展,在处理器片内允许集成上亿的晶体管,可以保存多个线程的上下文。在一个处 理器上同时执行多个线程,利用某一线程遇到长延迟指令时,调度其它的线程执行,充 分利用处理器资源,提高处理器的吞吐能力。 随着芯片上集成的晶体管越来越多,不仅仅可以集成多个线程的上下文,而且可以 集成多个处理器在一个芯片上,也不仅仅局限于操作系统调用的线程,处理器也增加硬 件逻辑自动划分出新的线程并行执行。二十世纪九十年代,处理器设计者提出了众多线 程处理器的模型,以提高处理器的整体性能。 当前流行的多线程处理器结构主要可分为显式多线程( e x p l i c i tm u l t i t h r e a d i n g ) 和隐 式多线程( i m p l i c i tm u l t i t h r e a d i n g ) 两类 u n g e r e r 0 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 ) | 姆r w a l 9 0 a l v e r s o n g o 、粗粒度多线程 ( c o a r s e - g r a i n e dm u l t i t h r e a d i n g ) a g a r w a l 9 3 1i a g a r w a l 9 5 】【m i k s c h l 9 6 1 、同时多线程 ( 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 ) t u l l s e n 9 5 】 t u l l s e n 9 6 a 1 e g g c r s 9 7 1 和单芯片多 处理器技术( c h i pm u l t i p r o c e s s o r ,简称c m p ) n a y f e h 9 6 】【h a m m o n d 0 0 等。细粒度多线 程处理器在每个时钟周期都进行线程上下文切换。粗粒度多线程处理器是在遇到长延迟 5 中国科学院博士学位论文龙芯2 号处理器多线程技术研究 操作时才进行线程上下文切换,否则一直执行同一个线程的指令。同时多线程是组合了 超标量和多线程处理器的特点,在一个时间周期内同时发射、执行来自多个线程的多条 指令。单芯片多处理器是指由在单个芯片上的多个处理器核所构成的多处理器系统,允 许多个线程在多个处理器核上并行执行。由于存在多个独立的线程上下文可供取指,多 线程处理器能够利用线程级并行来提高处理器资源的利用率。 隐式多线程技术是利用程序控制流的特点,由编译提示或者硬件划分生成多个线程, 通过多个隐式线程的并行执行,达到加速单线程程序的目的。这类技术主要包括多标量 处理器( m u l t i s c a l a rp r o c e s s o r s ) 【f r a n l d i n 9 3 】【f r a n k l i n 9 6 】【s o h i 9 5 】【s o h i 9 7 【b r e a c h 9 8 】 v i j a y k u m a r 9 8 1 ,迹处理器( t r a c ep l - o c e s s o r s ) r o t e n b e r 9 9 7 【s m i t h 9 7 ,超线程处理器 ( s u p e r t h r e a d e x la r c h i t e c t u r e ) i t s a i 9 6 1 ,动态多线程处理器( d y n a m i cm u l t i t h r e a d i n g p r o c e s s o r ) 【趟岬8 】,猜测多线程处理器( s p e c u l a t i v em u l t i t h r e a d e dp r o c e s s o r ) m a r e u e l l 0 9 8 1 m a r e u e l l 0 9 9 m a r c u e l l 0 0 2 m a r c u e u 0 0 3 等等。这类多线程处理器不仅要 对每个执行线程提供一条独立的流水线,而且还要暂时保存猜测执行线程的执行结果, 并且要进行复杂的数据相关的检查,这些都导致这类处理器需要消耗大量的硬件资源使 得成本急剧增大,而且设计复杂度也大大增加,设计实现变得困难,设计正确性的保证 也是困难重重。 目前,由于隐式多线程的实现复杂度,现在主要还处于研究阶段,商用的通用处理 器中采用此类技术比较困难。而显式多线程由于结构简单,实现容易的特点,已经被多 款商用处理器采用,例如i n t e l 的1 4 处理器【m a r r 0 2 1 的h y p e r t h r e a d 技术实现同时执行两 个线程,i b m 的p o w e r 5 处理器 k a l l a 0 4 l 每个芯片有两个内核,每个内核可以同时执行 两个线程,s u n 的n i a g a r a 处理器 k o n g e t i r a 0 5 每个芯片有八个内核,每个内核可以同 时执行四个线程。 1 3 实验方法及评测程序 本文是在龙芯2 号处理器的基础上,通过使用硬件描述语言v e r i l o g 对原来的设计增 加多线程的相关逻辑,实现了可综合的龙芯2 号多线程处理器的r t l 代码。另外,为处 理器搭建一个简单的主板环境,这也是通过v e r i l o g 语言编写的代码。然后,通过由龙芯 2 号多线程处理器和主板环境组成的整个系统的硬件描述语言的模拟进行性能测试。同 时,使用m e n t o r g r a p m c s 公司的v s m f i o n p m 仿真加速器对r t l 代码的模拟进行加速。 目前,国际上关于同时多线程的研究主要使用多个s p e cc p u 基准程序组合运行测 试性能,i n t e l 的超线程处理器x e o n 使用c h a t 等多线程程序测试性能,本文也采用这些 程序进行性能分析。下面介绍本文将使用的测试程序。 指令相关测试程序 指令相关测试程序是一个由汇编语占编写的每条指令之间部相关的测试程序,如图 6 第一章绪论 1 4 所示。由于任意连续的两条指令之间都存在相关,对于充分挖掘指令级并行的超标量 处理器的多发射技术,以及多个功能部件,都) 巴法用并行的方法来加速这个程序执行。 而且不论运行多少个这样的程序,处理器处理指令的能力都不会改变,每个时钟周期最 多处理一条指令。 i u ia l , 0 x 4 s u ba l , a l ,1 1 :s u ba l , a l ,1 s u ba l ,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论