(电子科学与技术专业论文)流寄存器文件的研究与实现.pdf_第1页
(电子科学与技术专业论文)流寄存器文件的研究与实现.pdf_第2页
(电子科学与技术专业论文)流寄存器文件的研究与实现.pdf_第3页
(电子科学与技术专业论文)流寄存器文件的研究与实现.pdf_第4页
(电子科学与技术专业论文)流寄存器文件的研究与实现.pdf_第5页
已阅读5页,还剩76页未读 继续免费阅读

(电子科学与技术专业论文)流寄存器文件的研究与实现.pdf.pdf 免费下载

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

文档简介

国防科技大学研究生院学位论文 w i t ht h ee x p a n d i n ga r e ao fc o m p u t ea p p l i c a t i o n , s t r e a mm e d i aa n ds c i e n t i f i c c o m p u t i n g i s b e c o m i n g a ni m p o r t a n tk i n do fa p p l i c a t i o no fp r o c e s s o r s t r e a m a r c h i t e c t u r ew h i c ha i m sa tm e d i ap r o c e s s i n ga n ds c i e n t i f i cc o m p u t i n gi sa1 1 e 1 7 # h i g h p e r f o r m a n c ea r c h i t e c t u r e xp r o c e s s o ri sa ni m p l e m e n t a t i o no f t h i sa r c h i t e c t u r e i ti sw e l lk n o w nt h a t 也eg a pb e t w e e np r o c e s s o ra n dm e m o r yi sb e c o m i n gl a r g e r a n dl a r g e ra n dt h eb a n d w i d t hh a sb c c o l n l 。ab o t t l e n e c ko fn o w a d a y sc o m p u t e r a r c h i t e c t u r e t h em e m o r yh i e r a r c h yo f xp r o c e s s o rw h i c ha i m sa tr e l e a s i n gt h ep r o b l e m o fb a n d w i d t ho fs l l e a ma p p l i c a t i o ne f f i c i e n t l yi sc o m p r i s e do fl o c a lr e g i s t e r s , s t r e a m r e g i s t e rf i l ea n do f f - e h i pd r a m s t r e a mr e g i s t e rf i l ei sal a r g eo n - - c h i pm e m o r ya n do n e o f t h ei m p o r t a n tf t m e t i o nu n i t s i tc a nb u f f e rs 虹e 蛐sw l a i e ha r en e e d e do fg e n e r a t e db y t h ek e r n e l sa n ds t r c a n l sw h i c ha i t r a n s f e r r e db e t w e e nt h es t r e a mr e g i s t e rf i l ea do t h e r s u n i t s t h et h e s i sf o c u s e s0 1 1s t r e a mr e g i s t e rf i l e f i r s to f a l l t h ea r c h i t e c t u r eo f xp r o c e s s o ra n dt h ep r o g r a m m a b l em o d e la r eg i v e n a n dt h e nt h ea r c h i t e c t u r eo f s t r e a mr e g i s t e rf i l ei sp r e s e n t e da n dt h ed i f f e r e n c e sb e t w e e l l c a c h ea n ds 仃e a mr e g i s t e rf i l ea 坞a n a l y z e d , a sw e l la st h es 仃c a ms c h e d u l i n gw h i c h m a k e ss t r e a mr e g i s t e rf i l em a n a g e de f f i c i e n t l y t h e n , t h ei m p o r t a n tt e e l m o l o g yi nt h e h a r d w a r ei m p l e m e n t a t i o no fs l r e a mr e g i s t e rf i l ea n dt h ev e r i f i c a t i o n , s i m u l a t i o n , s y n t h e t i cr e s u l ta n dp e r f o r m a n c ea n a l y s i so f s t r e a mr e g i s t e rf i l ea 坞p r e s e n t e d a tl a s ta s t r e a mr e g i s t e rf i l ew i t hi n d e x e da c c e s si sr e s e a r c h e d n 硷s i m u l a t i o n so ft h r e ea p p l i e a t i o i l sd i s p l a yt h a ts t r e a mr e g l s t e rf i l ec a ns u p p l y e n o u g hb a n d w i d t hf o rt h ed u s t e r s 1 1 1 cs t a l lp r o p o r t i o nr e s u l t e dk e r n e l 舳w h i c h c l e a t e db ys l r e a mr e g i s t e rf i l ei sl e s st h a n1 t h es y n t h e t i cr e s u l t sd i s p l a yt h a tt h e f i e q u e n e yo fs t e a mr e g i s t e rf i l ec a l lb eu pt o5 0 0 m h z t h er e s u l t so ft h et a t ,c - o u t d i s p l a yt h a tx - p r o c e s s o r c a nw o r kc o r r e c t l ya n dt h eg o a lo f t h ed e s i g ni sr e a c h e d k e yw o r d s :s t r e a ma r c h i t e c t u r e ,m e m o r yh i e r a r c h y , s t r e a mr e g i s t e rf i l e , s t r e a mb u f f e r , a r b i t r a t o r , s t r e a ms c h e d u l i n g 第i i 页 国防科技大学研究生院学位论文 表目录 表3 1 表3 2 表5 1 表5 2 表6 1 表6 2 表6 3 s r f 的主要参数 2 1 个s b 的属性 s r f 的模块划分。 流长度不匹配的分类。 计算核心停顿的构成。 综合结果 面积的构成 4 0 4 9 5 5 5 6 5 7 第1 v 页 国防科技大学研究生院学位论文 图目录 图2 1 两点之间距离平方的计算核心。6 图2 2 有限元素法的流处理 图2 3 图2 4 图2 5 图3 1 图3 2 图3 3 x 处理器的体系结构 有限元素法的存储访问 计算体的结构 流寄存器文件的基本结构 s d r 的结构 s c r 的结构 7 9 1 1 1 5 1 5 1 6 图3 4 数据在s r f 和片外存储器中的排列1 8 图3 5 数据在流缓冲器中的排列 图3 6 流缓冲器的仲裁算法。 图4 1 基本流 图4 2 派生流 图4 3 顺序访问方式 图4 4 跨步访问方式 图4 5 按索引访问方式 2 5 2 5 2 5 2 5 图4 6 一个流程序的例子2 7 图4 7 采用s t r e a mc a d l i n g 机制的s r f 时空图2 8 图4 8 例子程序的配置信息 图4 9 双缓冲技术 图4 1 0 初始形成的缓冲 图4 1 1 需要存储器访问的缓冲 图4 1 2 可以重新划分的缓冲 图4 1 3 划分前的缓冲 图4 1 4 划分后的缓冲3 5 图4 1 5 扩展后的缓冲3 5 图4 1 6 将缓冲放置在s r f 中的顺序 图4 1 7 缓冲在s r f 的放置。 图4 1 8 图4 1 9 划分缓冲a 后的放置顺序 缓冲在s r f 中的最终放置。 图5 1s d r 接口 3 7 3 8 3 8 4 1 4 2图5 2s r f 存储器的访问流水线 第v 页 国防科技大学研究生院学位论文 图5 3s r f 存储器的访问时序4 3 图5 4s r a m 时钟生成逻辑。 图5 5 模块的划分对后端的影响 图5 6s r f _ c l u s t e r s b c o n t r o l 的接口 图5 7 s r f _ u c s b 的结构。 图5 8s r fn c s b s w i t c h 的接口 图5 9 流长度不匹配的例子 图6 1s b l 模拟的波形图 图6 2l o g 文件的内容 4 4 4 5 图6 3s b 8 模拟的波形图 图6 4s b i i 模拟的波形图 4 7 4 8 。5 2 5 2 5 2 图6 5s b l 在c o u a t _ m o d e = i 时模拟的波形图5 4 图6 6 寄存器模拟验证过程的l o g 文件 图6 7 程序对s r f 带宽的需求 图6 8s r f 面积的构成 图6 9s b 0 面积的构成 图6 1 0x 处理器布局布线后结构图 图6 1 lx 处理器的封装 图7 i2 1 ) f f t 的数据重排序 图7 2 图7 3 图7 4 支持h - l a n e 索引访问的s r f 结构 h - l a n e 索引访问的例子 支持c r o s s - l a a e 索引访问的s r f 结构 5 6 。5 7 5 7 5 8 6 1 5 3 6 4 第页 独创性声明 本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已 经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它教育机构的学 位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文 中作了明确的说明并表示谢意。 学位论文题目:逾量壶墨塞佳的盟蕉量塞丑 学位论文作者签名:蠡担主i 整日期:2 0 0 6 牟- 7 月,毕日 学位论文版权使用授权书 本人完全了解国防科学技术大学有关保留、使用学位论文的规定。本人授权国 防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子文档,允 许论文被查阅和借阅;可以将学位论文的全部或部分内容编入有关数据库进行检索, 可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密学位论文在解密后适用本授权书。) 学位论文题目:速量盔墨塞佳的婴窥盏塞理 学位论文作者签名: 作者指导教师垫名: 蛊趟澶 i 幺塑受 日期:2 妒年fj 月j 牛日 日期:枷“年f ,月,灿 国防科技大学研究生院学位论文 第一章绪论 1 1 研究背景 随着计算机应用领域的不断拓宽,流应用逐渐成为微处理器的一种主要负载。 流应用主要分为两类:一类是媒体应用,用来实时地处理音频、视频、静态图像 及其它密集型数据,典型的应用包括图像处理、图形处理、视频编码与解码、信 号处理等;另一类是科学计算,主要用于科学模型的建立和模拟,典型的应用包 括流体力学、气象、分子动力学、有限元素法问题等,这些应用具有以下特点网: 科学计算应用通过大量对物理系统各个分割片段的建模来最大限度接近 真实系统的行为 并行性。对多个数据元素进行同样的操作,这种数据级并行往往以s i m d 方式体现;对一个数据元素的操作往往独立子对其它数据元素的操作。因 此可以开发较高的并行性和隐藏延时对数据元素的处理重复使用的次数 不多。 计算密集性。媒体、信号处理应用要对大量长序列采样数据进行操作,对 每次从存储器中读出的数据都要进行上百个乃至更多的算术操作 局域性。尤其是生产者消费者的局域性即一个计算核心的生产的数据 被另外一个计算核心使用,且不会被生产者使用。 另一方面,随着微电子技术的飞速发展,完全可以在1 0 0 r a m z 的硅片上集成数 千片工作频率在几个g h z 的逻辑运算单元。但是问题的关键是给这些运算单元提 供指令和数据的花费是非常昂贵的。例如:在安腾2 处理器中,1 2 个整数部件和 2 个浮点部件和相关的寄存器文件仅仅占到整个芯片面积的6 5 ,而其它非运算 类的部件如:通讯,控制,存储开销占到了整个芯片面积的9 3 5 f 4 j 。与此相反, 专用的图形芯片具有非常高的通信效率和非常有效的控制结构,如:n v i d i a g - e f o r c e 4 集成了数百个浮点单元和整数a l u 单元 制约高性能微处理器发展的因素有很多,其中一个重要的因素是;。存储墙” ( m e m o r yw a l l ) 翻【3 1 i 4 9 l 。所谓的。存储墙”是指处理器与存储器的速度不匹配的 现象。当前主流的商用微处理器主频已达2 5 g h z 以上,存储总线主频仅4 0 0 m h z ; 处理器速度每年增长6 0 ,存储器存取延迟每年改善7 嘣7 1 。由通信带宽和延迟构 成的“存储墙”成为提高系统性能的最大障碍,大量的结构复杂性花在了解决数 据访问延迟问题上缓解。存储墙”问题的主要措施是改善存储器系统、增加存 储层次例如在通用微处理器的实现中,采用三级存储层次;寄存器文件,片上 c a c h e 和片外存储器。增加片上c a c h e 存储层次主要是根据应用程序的时间和空间 第1 页 国防科技大学研究生院学位论文 的局部性,减小存储器访问的延迟上面提到的应用程序具有很明显的数据并行 性,但是程序的时间局部性不是很明显,它们对存储系统的要求不仅仅是减小存 储器的平均访问延迟,而且要尽可能地增加片内存储器的带宽。 随着v l s i 技术的发展,片外存储器也达到了一定的发展。由原来的s d r a m 结构发展到d d rs d r a m ( d o u b l ed a t ar a t es d r a m ) ,再到最近提出的d d r 2 s d r a m 。d d rs d r a m 双倍数据传输s d r a m 。d d r 可以在时钟的上升沿和下降 沿同时传输数据,因此在时钟频率不变的情况下,能够使数据传输频率成倍提高 但是d d r 的高发热量闯题以及高频工作条件下产生的信号不够清晰闯题,是制约 d d r 内存发展的主要障碍。为了适应更高速度的数据处理需求,联合电子器件工 程委员会( j o i n te l e c t r o n i c d e v i c e s e n g i n e e r i n gc o u n c i l ) 在2 0 0 3 年颁布了 j e d e d 7 9 - 2 b 规范,即d d r 2 内存规范,d d r 2s d r a m 是一种新型高速、大容量 的双速率同步存储器其基本结构和d d rs d r a m 类似。d d r 2 内存的i s v 工作 电压使得它可以比d d rs d r a m 的功耗整整低5 0 。d d r 2 的其它特性给我们带 来很多好处,例如利用d d r 2 的o d t ( 内建终结电阻) 来简化d q ( 数据选通) 总线设 计。在d d r 2s d r a m 中,终端寄存器就实现在该s d r a m 芯片之中,内存控制 器可以为每个信号设定终端寄存器的开或关,这些信号包括数据信号、数据选通 信号和写数据屏蔽信号。利用o d t 能降低多重反射,提高信号完整性并增加时序 裕量。同时d d r 2s d r a m 还引入了命令的无缝猝发,并采用f b o a ( 球栅阵列) 封 装形式降低功耗。无缝猝发使得读写命令能够被插到激活命令后面的一个时钟周 期,提高了内存的利用率因此d d r 2 内存具有更高的速度,更高的带宽,同时 功耗得以降低,散热性较好 在2 0 0 3 年7 月l o 日,r a m b u s 公司联合了东芝、现代公布了最新的r a m b u s x d r d r 舢讧内存,根据r a m b u s 公布的官方资料,3 2 g h zx d rd r a m 的性能是当今 d d l 4 0 0 的8 倍,峰值带宽高达6 4 g b s ( 数据位宽是1 6 位) ,它专为图形工作站、 服务器、移动系统和通信设备而设计。由i b m 、s o n y 与t o s h i b a 3 家厂商联合 研制的c e l l 处理器就采用了x d r 存储器作为其片外存储器。 本课题所属的项目是一种面向流媒体与科学计算领域的高性能处理器的研 制。该处理器具有很高的计算性能,它的存储层次与传统的通用微处理器的存储 层次不相同,由局部寄存器文件、流寄存器文件和片外存储器三级层次组成。本 课题的主要研究对象流寄存器文件就是该存储层次中的片内存储器。 1 2 研究现状 国际上正在积极进行新型体系结构的研究和探讨工作,到现在为止,主要有 以下几种极具代表性的新型体系结构。 第2 页 国防科技大学研究生院学位论文 1 基于片上存储的r a m 体系结构 2 0 0 3 年6 月投片成功的v i r a m 是u c b e r k e l e y 分校的d a v i dp a t t e r s o n 等开 发的一种用于媒体处理的向量型芯片 8 1 。v i r a m 主要针对处理器性能不断增强, 相应对存储系统的带宽和延迟要求提高,而目前片外访存通信代价大、速度慢, 使得存储系统成为瓶颈的问题其目标是要充分利用现有v l s i 的集成能力,通过 向量和片上d r a m 技术的结合,获得更高的带宽、更短的延迟和更低的功耗。 v i r a m 的主要思想是尝试将向量处理器和d r a m 存储器( 1 3 m ) 都做至4 片 上,从而消除片外访存并减少访问层次。对于大多数面向1 0 亿晶体管级的体系结 构来说,其片上的大部分晶体管用作了c a c h e ,c a c h e 仅仅是保存了一份数据的冗 余拷贝。与此不同的是v i r a m 可以像使用主存一样使用片上d r a m 存储器,因 此c a c h e 可以被取代,这是一个更高效的、某种程度上来说更精明的解决方案。 当然片内d r a m 的访问延迟比s r a m 长,v i r a m 使用延迟流水线( d e l a y e d p i p e l i n e ) 隐藏了全部延迟。 v i r a m 的向量功能部件由4 个相同的l a n e 组成( 可以扩展更多的l a n e , 增强计算能力) ,每个l a n e 可以看作一条完整的6 4 位向量流水线,存储管理部 件从d r a m 中取2 5 6 位的数据送到l a n e 中,以s i m d 方式执行。 2 c e l l 处理器 c e l l 处理器是由i b m 、s o n y 与t o s h i b a 3 家厂商一起共同研发的新一代高 效能微处理器,它具有目前民用处理器中最先进的核心设计和最强大的性能 1 9 1 1 1 0 1 c e l l 是以i b m 研发的6 4 位p o w e r 微处理器为核心,结合8 个独立的运算 单元所构成的多核心处理器。它共有9 个c p u 内核,一个p o w e r 架构r i s c 型6 4 位c p u 内核p p e ( p o w e r p c p r o c e s s o r e l e m e n t ) 和8 个s p e ( s y n e r g i s t i c p r o c e s s i n g e l e m e n t ) 不过c e l l 本身的结构是极具交通性的,可根据具体需求增加、减少协 处理器内核。p o w e r 微处理器内核是c e l l 处理器的大脑,是运行设备的主操作系 统,并为8 个s p e 分配任务。s p e 都有各自独立的向量处理单元,按照s i m d 的 方式执行指令,包含了1 2 8 个1 2 8 位寄存器和一个2 5 6 k b 的本地存储器 3 i m a g e 处理器 2 0 0 2 年4 月投片成功的i m a g i n e 是斯坦福大学的w j ,d a l l y 等开发的流体系结 构( s t r e a ma r c h i t e c a 】r e ) 原型芯片1 1 2 】【1 3 】【阍主要针对现代v l s i 工艺条件下,片外 通信昂贵,片内运算单元相对廉价,但是大部分片上面积被通信管理等单元占据 使得计算能力未被充分利用的问题目标是通过开发符合流应用特点的流式处理 和三级带宽存储减少访问片外内存而使片内运算能力得到充分利用,并且在一定 程度上避免了长线延迟问题 第3 页 国防科技大学研究生院学位论文 1 3 研究意义 在通用微处理器中面向存储层次的研究主要集中在如何减小存储系统的访问 延迟j 因此。在片外存储器的层次,主要是从工艺实现的角度,采用突发式传 输技术,提高存储器访问速度和访问带宽。在c a c h e 层次的研究主要从硬件实现 方面出发,针对如何减小c a c h e 的命中时间、缺失率和缺失代价 4 7 1 。这些硬件的 研究与实现对于软件是透明的,软件层次不需要关心这些技术的实现,是由硬件 管理的。虽然,有一些针对c a c h e 的软件研究,但是这些研究主要是面向c a c h e 的结构来改进编译器,从而使程序运行的时候减小c a c h e 的缺失率。本课题所研 究的流寄存器文件完全是由软件来管理的,这个存储层次研究的目标是改善存储 系统的带宽,是面向数据并行性很高的流应用而提出的高性能体系结构的片内存 储器。本课题的研究对于x 处理器的设计与实现来说是非常重要的。 1 4 本文的主要工作 在x 处理器的研制过程中,本人的主要工作和创新点在于: 1 研究了流体系结构的关键技术; 2 深入分析了x 处理器的存储系统结构; 3 分析了流寄存器文件与c a c h e 的主要差别; 4 研究了流寄存器文件的管理机制; 5 实现了流寄存器文件,并且给出了模拟验证的策略及对综合结果进行了分 析。 6 研究了另外一种流寄存器文件索引流寄存器文件; 1 5 文章的组织 文章共分为八个部分,下面给出了各章的摘要 第一章,绪论。分析了课题研究的背景、现状和意义,给出了课题研究的内 容,最后是论文的组织。 第二章,介绍了面向流媒体应用的流编程模型、x 处理器结构和带宽层次x 处理器捕获了流编程模型所开发的三级并行性和三级局部性 第三章,介绍了流寄存器文件系统结构,分析比较了流寄存文件与c a c h e 的不 同。 第四章,给出了流寄存器文件的软件管理机制流调度详细阐述了流调 度与s t r e a mc a c h i n g 在管理寄存器文件时的差别,以及流调度的具体实现。 第五章,设计实现了流寄存器文件,给出了设计实现中的关键技术。 第4 页 国防科技大学研究生院学位论文 第六章,介绍了流寄存器文件模拟验证的策略,在此基础上分析了流寄存器 文件的性能,对综合结果进行了分析。 第七章,分析了流寄存器文件面向某些应用时的局限性,并且在此基础上研 究了另一种新的寄存器文件的结构索引流寄存器文件 最后全面总结了本文的主要工作及贡献,继而对下一步的研究工作进行了展 望,指出了研究方向。 国防科技大学研究生院学位论文 第二章x 处理器的体系结构 由于流应用具有第一章中分析的计算密集型,数据并行性和生产者 消费等特点,传统的编程模型不能够有效的捕获流应用程序的局部型和并行 型。而流编程模型是针对这种流应用的特点的新型的编程模型,它可以开发 和捕获流应用程序中的三种局部性和三种并行性。本章重点介绍了x 处理器 所采用的流编程模型和x 处理器的体系结构。 2 1 流编程 流编程模型通过挖掘可用的局部性和并行性来开发应用程序中的数据并 行。在这个编程模型中应用程序由流( s t r e a m ) 经过一系列计算核心( k e r n e l ) 的数据流图组成。流是由一系列记录( r e c o r d ) 组成,记录的大小可以是一个 字,也可以是多个字。计算核心是对输入流的每个记录进行相同操作的循环 体。一个很小的例予是在二维坐标系中,计算两点之间距离的平方。如图2 1 所示,椭圆形的阴影表示计算核心,箭头表示输入流或输出流。计算核心对 两个输入流( 一系列的二维坐标) 进行计算形成一个输出流( 每对输入点距 离的平方) 一般而言,每个计算核心有零个或者多个输入流和一个或者多 个输出流。对于某些压缩类的计算核心还会形成一个标量结果。 l o o p _ s 蛔m ( h o i n l 戳 i n 2 b ; t e m p r - a x - b 】【; t e m p y = y - b y ; d _ s q = ( t e m p x * t e m p x ) + ( t e m p y * t e m p y ) ; o u t d _ s q 图2 1 两点之间距离平方的计算核心 一个复杂的例子是有限元素法的流程序的一部分。如图2 2 所示,第一个 第6 页 国防科技大学研究生院学位论文 计算核心对一个由栅格点组成的输入流进行处理形成一个输出流( 是位于存 储器中的数组元素的索引) 第一个计算核心的输出结果s l 是第二个计算核 心的输入流s 2 进行存储器访问时的索引流;从第二个计算核心开始上一个计 算核心的输出流是下一个计算核心的输入流;第四个计算核心的输出流作为 整个程序的最终结果 2 1 1 三级局部性 图2 2 有限元素法的流处理 流编程模型允许程序员显式利用能够被不同的存储层次捕获的三级局部性纠。 l 计算核心内的局部性 通过将计算核心在运行过程中产生的中间结果保存在局部寄存器文件中而不 必写入更远的存储层次中来捕获计算核心内的局部性。仅仅需要将计算核心的原 始的输入流从片外的存储器中读入和最终在计算核心执行结束的时候,将输出流 写到片外的存储器中。 2 计算核心之间的局部性 通过将一个计算核心产生的输出流传递给下一个计算核心,作为这个计算核 心的输入流,来捕获生产者消费者局域性,如图2 2 所示。在理想情况下,这 些中间流保存在片内存储器中即流寄存器文件中,从而避免了对片外存储器的存 取访问,缓解了对片外存储器带宽的要求。流级时同局部性是指一个流被多个计 算核心使用,如图2 2 中,流级程序的原始输入流s o 首先从片外存储器中读出作 为k 1 的输入流,在随后的程序执行过程中,又作为k 3 的输入流。在理想情况下, 一旦一个流由计算核心生成或者从存储器中取出,那么就应该将该流一直保存在 片内存储器中直到能够确定该流不会被再次使用 3 全局的数据局部性 只有在将应用程序所必需的原始输入流从存储器中读入和应用程序的最终的 执行结果写入到片外的存储器中时,才需要对片外存储器进行访问。如图2 2 中, 输入流s o 和s 1 ,及输出流s 5 这种编程模型与大多数体系结构中的局部寄存器文件、片内存储器和片外存 储器的存储层次相匹配。局部寄存器文件设计目标是提供高带宽,从而支持多个 第7 页 国防科技大学研究生院学位论文 计算单元,而片内存储器的设计目标是大容量,从而隐藏存储器访问延迟 应用程序划分为较小的计算核心的主要依据是目标体系结构中可以利用的寄 存器和存储器资源。任何一个计算核心执行的过程中所生成的中间变量不能够超 过局部寄存器文件的容量。在应用程序角度,如果数据集大到超过片内存储器的 容量,则需要利用最小数据块( s t r i p - m i n i n g ) 技术将大的数据集切分成多个小块, 然后对每个小的数据块进行顺序的处理。s t r i p - m i n i n g 将输入数据切分为多个小块 的做法,可以使得在对每个小块的数据进行处理时产生的中间结果都可以保存在 片内存储器中多个数据块被顺序的处理,依然到达只有在应用程序输入和输出 时才对片外存储器进行访问。从而避免了在对整个大的数据块进行处理的时候, 产生的中间结果不能够完全放置在片内存储器中,从而导致一些中间结果的流被 替换到片外的存储器中,随后在被计算核心使用的时候又从片外存储器中加载 ( 1 0 a d ) 到片内存储器中,这无疑又增加了存储器的访问次数,增加了存储器带宽 的要求。 2 1 2 三级并行性 流编程模型也可以开发应用程序内在的三级并行性。 i 数据并行 数据并行性的开发是通过计算核心的循环体同时对输入流的多个记录进行计 算来实现的。在图2 1 的例子中,如果运行计算核心的处理器中有足够多的计算单 元,两点之间距离的平方的计算核心可以同时应用于输入流的多个记录。 2 指令并行 在流编程模型中,通过执行多个不存在相关的操作,这些不相关的的操作对 于流中的每个记录都是一样的( 例如在计算核心的循环体的每次迭代中的操作) 来开发指令级并行。指令并行性可以通过流水线、每个时钟周期发射多个指令来 实现 3 任务并行 流编程模型也可以捕获计算核心之间的任务并行性。例如,在图2 2 的有限元 素法的流处理过程中,计算核心k l 和k 2 ( k 1 的计算结果传递给k 2 ) 可以在不 同的处理器上并行执行。此外,计算核心的执行可以和下一个计算核心的输入流 的l o a d 操作或上一个计算核心的输出流的s t o r e 操作并行进行。 流编程模型不允许计算核心在执行的过程中对全局存储器进行随机的任意访 问。为了解决这个问题,程序员需要将这些数据所在存储器中的位置收集起来组 成一个索引流,然后利用这个索引流从存储器中读出数据形成一个连续的流作为 下一个计算核心的输入流例如在图2 2 的例子中对“f l u xa r r a y ”的访问过程。首 第8 页 国防科技大学研究生院学位论文 先由计算核心k i 生成索引流s l ,通过索引流s l 访问存储器中形成一个连续的流 s 2 ( s 2 在存储器中并不是连续存储的) 作为计算核心k 2 的输入流。 2 1 3 流编程语言 应用程序可以通过专用的高级语言用流编程模型来实现。流程序的设计按照 按两级编程模型进行设计;核级( k e r n e l ) 和流级( s t r e a m ) k e r n e lc 用来表 述计算核心的编程语言:s t r e a mc 一用来组织多个计算核心的执行顺序、数据传 输以及没有数据并行性的顺序代码所有这些语言是基于熟悉的主流语言例如 c c + + 和j a v a ,通过增加附加的语义来表示流和加强一些限制来获得计算核心之 间的数据流和相关性分析的能力四。 2 2x 处理器 2 2 1x 处理器的基本结构 x 处理器是一款采用流处理技术服务于巨型机系统的高性能加速部件,可以 构成巨型机系统的高性能加速阵列 x 处理器是一个可编程的单片处理器,它支持流编程模型。图2 3 给出了x 处理器结构图嗍。x 处理器主要由以下几个部件组成:主机接口( h o s ti n t e r f a c e ) 、 流控制器( s t r e a m c o n t r o l l e r ) 、微控制器( u c o d e c o n t r o l l e r ) 、计算群阵列( c l u s t e r s ) 、 流寄存器文件( s t r e a mr e g i s t e rf i l e ) 、流存储控制系统( s t r e a mm e m o r yc o n t r o l l i n g s y s t e m ) 、网络接口( n i ) 和d d r 控制器 第9 页 国防科技大学研究生院学位论文 主机接口:主机接口负责流处理器与主处理器的数据交换任务,功能是负责 与主处理器的通信工作,完成主处理器与流控制器s c 、存储控制器m c 和片外网 络的数据请求转发工作 流控制器:流控制器是x 处理器的流( s t r e a m - l e v e l ) 指令的发射部件,负责 接收由主处理器通过主机接口发送过来的流指令,并将流指令发射到x 处理器的 相应部件上执行。流指令可以分为以下4 种:控制字传输( c o n t r o l w o r d m o v e m e n t ) , 同步( s y n c h r o n i z a t i o n ) ,流传输( s t r e a mm o v e m e n t ) 和运算( c o m p u t a t i o n ) 。 微控制器:微控制器是x 处理器的核级程序( 计算核心) 执行的控制器。微 控制器主要完成以下功能:在h o s tp r o c e s s o r 发射到流控制器中的流指令的控制下 从流寄存器文件中加载计算核心的微代码并存储在微控制器中的指令存储器中; 以广播的方式控制核心程序同时在4 个计算群上以s i m d 方式执行;执行核级指 令中微控制器域指定的操作,如;l o o p ,u cd a t ai n 等,这些指令都在u c 中执行而无需发射到计算群上执行。核级指令是超长指令字的格式,v l l w 的多个 指令字段与计算群的多个功能部件相对应,部件之间的并行提高了指令级并行度。 如果计算核心的单次循环体内没有足够的i l p 来填充v l l w 的发射窗口,可以在 编译时采用循环展开和软件流水等技术来提高运算单元的利用率 。 计算群阵列:计算群阵列是x 处理器的核心级指令的执行部件。x 处理器包 含4 个计算群,每个计算群由功能部件( f u ) ,局部寄存器文件( l r f ) ,条件 码寄存器文件( c c r f ) 和计算群内交叉互联网络四个部分组成。功能部件可以分 为两类:运算部件和非运算部件。运算部件执行整数和浮点运算指令,包括4 个 乘加部件:f m a c 0 ,f m a c i ,f m a c 2 ,f m a c 3 和一个乘法部件d s q ,非运算部 件支持条件流和数据移动操作,包括计算群之间通信单元c o m m ,便笺寄存器单 元s p ,条件流控制单元j b 和v a l 。微控制器和计算群协同执行应用程序中的计 算核心。微控制器发出的微操作广播到所有的计算群,计算群之间以s i m d 的方 式工作,每个计算群都执行相同的指令,但处理流的不同记录。计算群中的执行 单元采用流水方式来提高效率,流水线根据执行单元不同长度有所改变。 流寄存器文件:流寄存器文件是一个大容量的片内存储器,用来存储中间流, 并且捕获计算核心之间存在的流粒度的生产者一消费者和时间局部性,完成与其 它部件的流数据传输。s r f 分为4 个体存储体( b a n k ) ,与4 计算群一一对应。 每个计算群只能够访问与之对应的b a n k ,而计算群之间的通讯是通过计算群内的 通讯单元完成的因此将一个b a n k 和它对应的计算群称为一个计算体。 流存储控制系统:所有x 处理器存储操作都是通过m e m o p 指令( 是一条存储 器访问的流指令) 来完成的,m e m o p 指令可以在存储器和s r f 之间传输流。这种 流的l o a d s t o r e 结构与传统的r i s c 标量处理器的l o a d s t o r y 结构相类似它可以简 第l o 页 国防科技大学研究生院学位论文 化编程,并且可以使存储系统优化流的吞吐率,而不仅仅是单个独立的访存操作 时间的优化。系统可以同时提供两个存储流访问,在5 0 0 m - i z 的工作频率下,流 存储控制系统可以向s p y 提供8 g b i s 的峰值带宽。流存储控制系统支持跨步、索 引和位反三种访存类型。 网络接口( 小) ;x 处理器的网络提供了多x 处理器系统中各处理器间的高 带宽连接。网络为2 维环绕网,使用维序路由,路由信息由调度程序决定,网络 中可以同时进行系统消息通讯和流数据的传递。链路时钟与系统时钟完全异步。 采用硬连线链路流控。网络接口使用专门的8 个s b 进行流数据的发送和接收。每 个处理器有4 个外部双向网络通道,这样就可以构成任何规模的x 处理器互连阵 列。源x 处理器执行n e t o p 指令会从s r f 读取一个流然后根据报头的指定信息通 过网络直接到达目的节点。在目的x 处理器上,另一条n e t o p 指令会执行,它把 接收到的流送迸s r f 中每一条n e t o p 指令都会指定一个t a g 标志以便处理器节 点能够分辨到达的多个消息。 使用流模型,对一个应用可以很容易通过网络分解到多个x 处理器上。为了 在两个处理器上分解一个应用,在两个处理器上的流级代码会被分解,在一个处 理器上插入一条n e t o p 指令进行发送操作,另一个则插入一条n e t o p 指令进行接收 操作。 d d r 控制器:d d r 控制器负责接受来自m c 和m 的存储器访问请求,控制 d d r 的定时刷新。 2 2 1 2 三级存储层次 x 处理器的带宽层次由局部寄存器文件( u 强) ,流寄存器文件( s r f ) 和流 存储控制系统组成。 x 处理器的存储层次与流编程模型暴露的三级局部性的层次相匹配。l r f 捕 获计算核心内的局部性,s r f 捕获流级的生产者消费者局部性和计算核心之间的 时间局部性。图2 4 给出了图2 2 中的例子与存储层次的对应关系。 i c e l l s 卜-一 s o k 曩 ls l f l 、 f l u x e a i - - - - - i 吐 h 凄 i s 3e 罗 ir i u p d a t e si - - -i 鲒1 一瑁 图2 4 有限元素法的存储访问 第1 1 页 国防科技大学研究生院学位论文 1 局部寄存器文件 l r f 主要从高带宽角度进行优化设计,为计算群中的功能单元提供足够的数 据。因此,局部寄存器文件采用分布式模式,每个计算群有多个寄存器文件构成 每个局部寄存器文件有少量读端口,直接为功能单元提供数据,有一个或多个写 端口直接与计算群内的交叉开关相连。 2 流寄存器文件 如前所述,流寄存器文件分为4 个b a n k ,为了提供高效和高带宽的存取访问, 每个计算群仅仅能够访问与之对应的b a n k 。这种结构的实现机制减少了s r f 所需 要的端口数目。每个b a n k 仅仅需要支持一个计算群,因此s r f 可以用单端口的存 储器实现。为了增加这种实现机制的s r f 带宽,每个b a n k 的数据位宽是4 个字。 因此,每次对s r f 的访问必须读出或者写入4 个连续的字。计算群每次消耗或者 产生一个字,并且一个核级程序的执行可能同时访问多个流这种s r f 与计算群 之间的访问特点的不同可以通过流缓冲器( s t r e a mb u f f e r ) 调节,如图2 5 所示 流缓冲器通过分时复用的方式使用单端口的存储器,每个并发的流与一个流缓冲 器相对应。流缓冲器的数目决定了同时可以激活的流的数目 计算体 图2 5 计算体的结构 3 流存储控制系统 流存储控制系统管理流在片外存储器和s r f 之间的传输。一旦流控制器启动 流传输,那么地址产生器就会产生与片外存储器位置对应的地址序列。以读一个 流为例,那些存储器中的位置被读出,数据被传给重排序缓冲( r o b ) 这些访 河可能会以乱序的方式从存储器中返回,这就要求r o b 重新组合好流的顺序。r o b 同时也是一个流缓冲s b ,它与计算群的接口s b 类似,是存储系统和s r f 之间的 接口。在写流的情况下,数据通过r o b 从s r f 中读出并写入存储器中r o b 项 的个数由与带宽匹配的存储请求数日决定。 2 3 本章小结 本章从流编程的角度介绍了这种编程模型所开发的三级并行性和三级局部 性,这种编程模型与当今的流应用特点相吻合。x 处理器就是基于该种编程模型 第1 2 页 国防科技

温馨提示

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

评论

0/150

提交评论