(电子科学与技术专业论文)x流处理器微控制器的研究与实现.pdf_第1页
(电子科学与技术专业论文)x流处理器微控制器的研究与实现.pdf_第2页
(电子科学与技术专业论文)x流处理器微控制器的研究与实现.pdf_第3页
(电子科学与技术专业论文)x流处理器微控制器的研究与实现.pdf_第4页
(电子科学与技术专业论文)x流处理器微控制器的研究与实现.pdf_第5页
已阅读5页,还剩54页未读 继续免费阅读

(电子科学与技术专业论文)x流处理器微控制器的研究与实现.pdf.pdf 免费下载

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

文档简介

因防科学技术大学研究生院工学硕士学位论文 a 8 s t r a c t w i t ht h ee x t e n s i v ea p p l i c a t i o no fc o m p u t e r si nv a r i o u sf i e l d s ,s t r e a ma p p l i c a t i o n s g r a d u a l l y b e c o m eo n eo ft h em a i nw o r k l o a do f m i c r o p r o c e s s o r u n l i k e t h e c h a r a c t e r i s t i c so fc o n v e n t i o n a lp r o g r a m s ,s t r e a ma r c h i t e c t u r ei sb e c o m i n gah o tt o p i ci n m i c r o p r o c e s s o rr e s e a r c h 髓et h e s i ss u b o r d i n a t e st ot h ed e v e l o p m e n to fxp r o c e s s o rt h a t i san e w t y p es t r e a mp r o c e s s o r t h em a i ng o a lo fo u rw o r ki st h ed e s i g na n di m p l e m e n t a t i o no fm i c r o c o n t r o l l e r b a s e do ns t r e a l l la r c h i t e c t u r e 。珏em i c r o c o n t r o l l e ri st h ek e r n e ll e v e l sc o n t r o l l e ro f x p r o c e s s o r , r e s p o n s i b l ef o rp a s s i n gp a r a m e t e r sf r o m t ot h es t r e a mc o n t r o l l e r , l o a d i n g m i c r o c o d ei n t oi t sm i c r o c o d es t o r e ,a n dm o s ti m p o r t a n t l y ,c o n t r o l l i n gt h ee x e c u t i o no f t h em i c r op r o g r a m so nt h ea r i t h m e t i cc l u s t e r s 。 w ef i r s t l yi n t r o d u c et h ex p r o c e s s o r sa r c h i t e c t u r e ;s i m p l yd e s c r i b ee v e r ym o d u l e o ft h ex p r o c e s s o r a n dt h e n ,w ei n t r o d u c et h ep i p e l i n eo ft h em i c r o c o n t r o l l e r ,b a s e do n t h ed i f f e r e n tt y p eo fi n s t r u c t i o n ,t h e r ea r et h r e et y p e sp i p e l i n e d u r i n gt h ef e t c h s t a g e , t h ev l i wi n s t r u c t i o n sa r ef e t c h e df r o mt h es r a m ,l i m i t e db yt h es r a m sf r e q u e n c y , w el e ts r a mw o r k i n gi nt h eh a l f - f r e q u e n c y 。i no r d e rt oa l lf o rs r a mt ow o r ki nt h e h a l f - f r e q u e n c yw i t h o u tap e r f o r m a n c ep e n a l t y ,t w oi n s t r u c t i o n sa r er e a da to n et i m e f r o mt h es r a ma r r a y ,t h cf i r s to ft h e s ei n s t r u c t i o n si sp a s s e dd i r e c t l yt ot h ei n s t r u c t i o n d e c o d e r , t h es e c o n di ss t o r e di nar e g i s t e r , s ot h a t , i tc a nb ed e c o d e di nt h en e x tc l o c k c y c l ew i t h o u ta c c e s s i n gt h es r a ma r r a ya g a i n 。 f u r t h e r m o r e ,b e c a u s eo ft h es t r i c t l yl i m i t e dm i c r oc o d ei nxs t r e a mp r o c e s s o r , a s o f t w a r ep i p e l i n i n gr e a l i z a t i o nm e c h a n i s mw h i c hr e l e a s e st h es t o r a g es p a c ep r e s s u r eb y c o n c e a l i n gt h e f i l li n a n d f i n i s hu p p a r t ss e e m i n g l yi sp r e s e n t e d ,a sw e l la st h e h a r d w a r ei m p l e m e n t a t i o n 。 i nt h ee n d t h ec o r r e c t n e s sa n dv a l i d i t yo fa l lt h e s et e c h n i q u e sg e tp r o v e db y r u n n i n gl o o pp r o g r a m so nt h ea l l - p u r p o s et e s t i n gm o d e lf o rx s t r e a mp r o c e s s o r t h e m i c r o c o n t r o l l e ri sa d o p t i n gi nt h exs t r e a mp r o c e s s o ri m p l e m e n t a t i o n ,a n ds o u n de f f e c t i sa t t a i n e d k e yw o r d s :s t r e a mp r o c e s s o r ,m i c r o c o n t r o l l e r ,h a l f - f r e q u e n c y ,s o f t w a r e p i p e l i n i n g 第i i 页 国防科学技术大学研究生院工学硕士学位论文 表 目录 表3 1x 处理器的指令分类2l 表3 2 流输入输出指令以及相关信息。3 2 表3 3 控制指令以及相关信息3 2 表4 。l 软件流水状态寄存器3 8 表5 1 各循环程序性能结果4 6 第1 i i 页 国防科学技术大学研究生院工学硕士学位论文 图目录 图1 1 传统处理器示意图2 图1 2v 珉a m 结构示意图3 图1 1m 献g i n e 结构示意图4 圈l 。2 薹汰w 结构示意图一5 图2 1x 流处理器体系结构7 图2 2 流存储控制器的框图8 图2 3s r f 结构框图9 圈2 4s c 结构框图l1 图2 5c l u s t e r 结构框图1 2 图2 6 微控结构框图l3 图2 7 流级程序与核心级程序的关系1 6 图2 8 流程序的示例1 6 图2 9 核心级程序示例1 7 图2 1 0 流程序的三级编译1 8 圈3 1x 处理器核心指令格式2 0 图3 2 核心级流水线2 l 图3 3 三类指令流水线。2 2 圈3 4 微码存储器结构框图2 3 图3 5 微码存储器读写逻辑2 5 图3 6 微码存储器装载逻辑2 6 图3 7 微码存储器指令读取逻辑2 7 图3 8 半频信号生成逻辑图2 7 图3 9 分支指令为偶地址且跳转地址为偶地址访存时序图2 8 图3 1 0 分支指令为奇地址且跳转地址为偶地址访存时序图2 8 图3 。l1 分支指令为偶地址且跳转地址药奇地址访存时穿图2 9 图3 1 2 分支指令为奇地址且跳转地址为奇地址访存时序图2 9 图3 1 3u cp i p e l i n e 结构框图3 l 图3 。1 4f i f o 结构框图3 3 图4 1x 流处理器循环豹基本实现形式3 7 图4 2 软件流水内部状态寄存器更新流程图4 l 图4 3 显性隐藏填充排空代码的寄存器设置及其更新流程图4 2 图4 。4s q u a s h 信号的生成示意图3 圈5 1x 流处理器的测试平台4 6 第l v 页 国防科学技术大学研究生院t 学硕士学位论文 图5 2 性能柱形比较示意图:4 7 图5 。3 奇偶排序算法软件流水操作调度图。4 7 图5 4 不同策略所得性能示意图4 8 第v 页 独创性声臻 零人声骥所黑交嚣学位论文是我本人在导帮指导下进行静研究工作及取得蒋磺 究贱粜。尽我所知,除了文中捌加以标注和致谢的地方外,论文中不包含其他人已 经发表粒撰写过酶磷究成果,也7 r , , g 仓是获得匿防科学技术大学或其它教育机构酶学 位或证书褥使用过的材料。与我一瓣工作曲两惠对本研究所做昀任何贡献筠藏在论文 中作了姨确的说噢并袭幂 | l 意 学位论文蘧蓄:嚣速楚壅羹爨蕉麴銎鲞羹亵萋塞塞。 学位论文作者签名:二鱼匕麓浸萝二段期:神7 年17 月,7 疆, 学位论文版权使用授权书 零人竞全了解篷防辩学技术犬学蠢美保鐾、使用学位话文翡攥定。率太授蔽匿 游辩学搜本大学可淡保留并南翟寒蒋关部门或巍糨送交论文翡复印侔和毫子文档,允 许论文被查阅和借阕;可以将学位论文的全部或部分内容编入稽关数据库进行捡索, 可菰采攥影窜,壤帮或器撬等复黼手畏蒜毒、汪藕学位论文。 ( 保密学位论文在解密后适用本授权书。) 学位论文题器:嚣运签雠整燮墨鲤鐾塞盏塞壅:。 。 。 辜位论文作者签名: 蚓雏溘 日期:2 唧年7 f 月,了日 律精导教簿獬:翌陋嘴刁年,7 聊嚣 国防科学技术大学研究生院工学硕士学位论文 第一章绪论 随着计算机在多媒体处理、科学计算、物理模拟、生物技术模拟等领域的广 泛应用和发展,流应用已经逐步成为微处理器的主要负载之一。我们对流体系结 构进行了比较全蘧和深入的研究。提出了完整的离性能流体系结构模型,建立了 完整的流体系结构研究和实验环境,包括程序设计环境、编译环境、时钟精确模 拟器和硬件仿真器,设计并实现了一款面向高性能计算应用的6 4 位流处理器。 本文主要研究流处理器中的微控制器技术,较为全面、深入和系统的探讨了 微控制器的设计问题。 1 1 研究背景 流应用具有不同于常规负载的三个特点【l 】【3 3 】:一、计算密集性,流应用每次 从内存中取出的数据都要进行大量的算术运算;二、良好的数据并行性,流应用 的绝大部分单个数据冗索的操作与其它元素独立;三、数据缺乏重用性,即大部 分肫数据在被写入后,只会被读取一次【3 8 】。 与传统的应用程序相比,流应用对处理器的运算能力提出了很高的要求。例 如,深度萃取在卷积过滤与绝对值求和过程中【2 】每个引用的数据( 输入、输出及 其它全局数据访问) 需要4 7 3 3 个算术操作。其它应用中每个引用数据需要5 7 9 至 1 5 5 。3 个算术操作。相较丽言,传统的桌面整数应用s p e c i n t 2 0 0 0 ,这个比率仅为2 : 算术运算指令仅占2 5 0 ,l o a d 与s t o r e 指令占15 8 0 【3 】。这些差别表明为整数 运算而设计的体系结构( 例如通用微处理器) 并不适合流应用。 流应用包含了丰富的著行性,这些并行性可以分为三个层次:指令级并行 ( i l p ) 、数据级并行( d l p ) 和任务级并行( t l p ) 【4 】。指令级并行,是指可以同时执行 许多不同的操作。在卷积过滤运算中,使用了系数矩阵与一系列的像素相乘,这 需要许多可以并行的乘法和加法,这是一种指令级并行。数据级并行,是同时对 大量数据执行相同的操作,通常以s i m d 方式体现出来。比如深度萃取中,像素数 据之间不具有相关性,对每个像素的计算都是一样的,理论上所有的像素可以通 过大量的运算部件并行计算出来,这是一种数据级并行。任务级并行,是指不同 计算阶段可流水化重叠进行。深度萃取有四个执行阶段:读取图像数据、卷积过 滤、绝对值求和和输出结果【4 】,这四个执行阶段可以组成一条流水线,并发处理 不同的数据。 传统处理器被优化于运行常规的工俸负载,这些传统负载与流应用的特点存 在差异,导致了常规处理器无法高效处理流应用,无法有效开发流应用所包含的 第1 页 国防科学技术大学研究生院工学硕士学位论文 各种并行性f 4 0 】。传统处理器结构如图l 。l 所示,这种体系结构不适合于流应用主要 有两方蘧原因:一方面,传统处理器的体系结构无法支持足够多的功能单元来达 到所需的计算密度,所有功能单元的输入和输出都是由专用的数据总线连接至一 个多端阴的寄存器文件,这种多端i s l 寄存器的面积与所连接的功能单元的数目成 立方关系 3 9 1 1 5 1 。由于受面积、延迟、功耗等方面因素的影响,这种多端i s l 寄存器 所能支持的功能单元数目,远远不能满足流应用对计算密度的要求;另一方面, 传统处理器的本地寄存器文件砒k 片上缓冲c a c h e 一片外主存m e m o r y 的三级存储 层次模型【2 9 】,不能有效的开发流应用所具有的局域性。在最底层与功能单元相连 的本地寄存器这个层次上,单体多端蜀结构限制了功能单元所能获褥的最大数据 带宽。在片上存储这个层次上,常规处理器使用的是c a c h e 缓冲,c a c h e 是利用数据 在时间上和空间上的局部性原理来减少存储通信【3 0 】,而一半以上的流应用并不具 备数据的重用特性,在流应用中所有的数据几乎都只被读一次然后写一次,也就 是说流应用并不符合l r u ( l e a s t - r e c e n t l y - u s e d ) 替换规燹| j 。c a c h e 无法预知写入其 中的数据将不再被使用,因此c a c h e 技术无法减少任何的存储通信 6 】,即使这些数 据被写入存储器中,c a c h e 也不能有效隐藏流应用的访存开销。更进一步来说,c a c h e 的随机存取设计限制了它能够提供绘楚理器核心的数据带宽总和。 l l m e m o r y l 。 一 c a d l e 挂一茸p ;皿押l g - l w l l 上立。 ii 。 v 丽 1 一 甲 图1 1 传统处理器示意图 现有的雳于媒体处理和流式科学计算的处理器,如桌面处理器、d s p 4 1 1 、向 量微处理器【4 2 】、专用图形处理器 4 3 】以及片内多处理机等,都存在各自的局限性, 并不能很好的满足流应用的需求【7 】。各种专用处理器虽然能获得极高的性能和很 好的能量利用效率以及较低的功耗,但是它们缺乏可编程性,限制了应用面 8 】。 其他几种处理器的v l l w 与超标量微体系结构 1 4 1 仍旧依靠全局寄存器文件与复杂 的控制结构,无法对计算单元进行大量扩展。 本科题所属的项目是一种面向流应用的高性能微处理器的研制。该处理器以 加速流应用处理为目标,在硬件结构上集成了大量的运算单元,具有很高的计算 性能,采用了新的三级存储层次模型,程序设计采用流级和核心级两级编程模型。 第2 页 国防科学技术大学研究生院工学硕士学位论文 1 2 新型流体系结构的研究现状 目前,国际上正在研究的新型体系结构以p i m 9 、i m a g e 1 0 、t i l e 11 1 2 - - - 种 结构最具代表性,这些新开发的体系结构可以实现对应用程序( 包括计算密集型) 的存储访问延迟的隐藏,均具有良好盼可扩展性。 在常规的系统中,微处理器和存储器用不同的芯片来实现,由于数据的传输 必须通过芯片的i ,o 引脚,受至i j p c b 板上的铜线的影响,极大的限制了微处理器和 存储器之闯的带宽。p i m ( p r o c e s s o r - i n - m e m o r y ) 技术把一个或者多个处理器和 d r a m 集成在同一个芯片上,在处理器和存储器之闻获雩导极高豹带宽,有效降低 系统的功耗、成本、面积和存储器延迟,是一种面向数据密集型的应用,能有效 减小存储器和处理器速度差距的新方法。 美国加州大学伯克利分校开发的v l ra m 芯片【1 3 】就是基子p i m 技术的原型芯 片。v 嬲包括了2 个氲量处理单_ 元和一个标量处理单元,这些单元均是流水豹。 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 脒嚣中,以s i m d 方式执行。处理器单慰i j d r a m 之间的数 据带宽为2 5 6 位。d r a m 被分为2 组,每组由4 个b a n k 组成。存储器能在一个周期内 顺序访问8 个3 2 位的数据元素。但是,因为只有4 个地址产生器,存储器只能在一 个周期内访阍4 个跨度为3 2 位或者跨度为6 4 位的数据元素。v i r a m 的主要思想是尝 试将向量处理器和d r a m 存储器( 1 3 m ) 都做到片上,从而消除片外访存并减少访 问层次 1 4 】。 l a n e 0 l a n e l l a n e 2l a a e 3 巨1 2v i r a m 结梭承意强 另一种解决处理器一存储器差距的方法就是流处理技术。这种方法,一方面 通过数据在流寄存器文件的缓存来隐藏访存延迟,同时允许对d r a m 的访问进行 再排序,最小化访存的次数:另一方愿,计算群采用可缩放的分布式本地寄存器 文件结构,戮较小酶童价实现很高的谤算率。流处理技术对批量数据的访存作了 第3 页 园防科学技术大学研究生院工学硕士学位论文 很好的优化,大量的计算功能单元很好的支持了计算密集的流应用。 i m a g i n e 芯片是斯坦福大学开发的流处理器原型芯片,结构如图1 3 所示 【1 5 1 6 。芯片包含8 个计算簇( a l uc l u s t e r ) ,这8 个计算簇是由一个流寄存器文件 来提供数据的。该处理器速度可以达到3 0 0 m h z ,其峰值性能超过1 4 g o p s ( 3 2 位的 整数或者浮点操作) 。这一结果是i m a g i n e 运行一些典型的k e m e l 妻l l m p e g 、o r d 等 得到的,运行这些典型的流处理应用( 多媒体应用) 时,a l u 的资源利用率高达 8 4 一9 5 【1 7 】。 图l 。li m a g i n e 结构不惹图 还有一种解决处理器存储器差距的方法就是采) 磊t i t e 体系结构【1 8 1 。t i l e 结构 把无布线延迟问题的小尺寸功能块按一定规则排列构成高速处理器。这种方式由 于受到小尺寸功能块的制约,可以大大减轻在t i l e 内部产生的布线延迟问题。此外, 由于信息传输仅在物理位置相距很近的几个t i l e 闻进行,医面也使t i l e 间的通信延 迟得以缓解。 t i l e 结构与超标量处理器最大的不同就在于,t i l e 处理器是由多个采用相同设 计的功能块按一定规则排列构成的,其功能部件主要有计算单元、t i l e 间连接布线 和路由器等。它与采熊总线或环霹连接的多核处理器有许多共同点,然而奠设计 思想却有很大差别。多核处理器沿用了传统处理器设计技术,只是对高速缓存和 互连网络进行了优化以谋求更高的性能。而t i l e 处理器为了克服布线延迟,在传统 处理器从未采用过的甄l e 内部结构上下足了工夫,即在芯片上配置多个结构完全相 同的t i l e 单元,以提高设计的可重用性,减轻验证等作业的负担。这种t i l e 结构大 第4 页 国防科学技术大学研究生院工学硕士学位论文 多采用在增) j i z l t i l e 单元数时,不降低工作频率的就近连接网络 1 8 1 。 m i t 大学l 臻r a w 处理器是t i l e 体系结构的典型代表,如下图所示,一令戳w 处 理器由1 6 个可编程的t i l e 组成。每个t i l e 都有单独的微处理器、数据c a c h e 、存储器 以及同连接各个t i l e s 的互连网络的接口。 r a w 分空闾执行,适合于线程级并行,把底层的物理资源如门、线、引脚等 作为体系结构的实体暴露给程序员,使得程序员面对线延迟,可以更好的安排程 序从而获得最佳性能,较好的解决线延迟的问题。在流应用中,t i l e 体系结构通过 采用线程级并行静态分配任务给片内t i l e 来获得高的运算性能。他们也能采用 s i m d 开发任务内并行。通过直接将个任务的结果送给另辨一个任务也髓挖掘出 生产者一消费者的局域性,而不用访问全局数据存储。 图1 2r a w 结构示意图 上述的几种新兴的体系结构代表了现今面向密集计算的超高速微体系结构的 前沿研究方向,其相似的地方在予它们都特别强调对流应用的支持,在硬件上都 拥有大量本地寄存器f 4 3 】,并提供许多简单廉价快速的计算单元;相对简单的指令 流出逻辑,有效回避长线延迟等等,因此可归为流体系结构【1 9 】。 1 3 论文的主要工作 本课题是国家“8 6 3 ”重大科研项目x 处理器的一部分。x 处理器是一款新型 的基于流处理技术的高性能微处理器,x 处理器是作为常规处理器的流加速部件 来馒雳的,它透过与主橇的接h 珊1 ) 同主处理器( h o s tp r o c e s s o r ) 进行数据交互,利 用其高速的流处理结构加速处理具有流特质的应用。微控制器是x 流处理器的核 级控制器,负责核心级程序的运行。 本文进行了大量的工作,首先充分研究了流系统结构的特点,分析了流处理 器的两级变成模型;第二,根据实际工程,介绍了x 处理器的系统结构,阐述了各 第5 页 国防科学技术大学研究生院工学硕士学位论文 个功能模块的功能;在实际应用中,考虑到s 喇自身的延迟比较大,不能达到项 霹需要的频率,本文设计出一种让s 黝姐作在系统半频的电路,采用每拍取两条 指令的方式,弥补了s 删工作在半频的性能损失,通过实际的验证发现,该电路 能保证系统在较高频率下的正常运行:第三,在研究微控制器流水线结构的基础 上,设计并实现显性隐藏填充排空代码豹软件流水机制,通过硬件对状态寄存器 进行更新,显性隐藏了填充、排空代码,有效地减轻了软件流水中微代码存储空 间的存储压力,文章最后完成了对软件流水的模拟验证。 1 4 论文结构 论文共分六章。 第一章为绪论,综合介绍课题的选题背景及意义。 第二章研究x 处理器鲍体系结构模型,结合模型阐述了本文涉及靛背景、概念 和研究内容,并深入探讨了流程序设计模式和面向流体系结构的编译技术。 第三章深入细致的讨论了微处理器的设计,通过设计可以深入理解微控制器 的组织与结构。 第四章阐述了微控制器软件流水概涮的原理与实现方案,通过显性隐藏填充 排空代码的软件流水来减轻存储空间的压力。 第五章介绍了软件流水的测试,运过试验平台,用模拟器分析和评测软件流 水的性簏。 第六章是结束语,总结了论文的主要工作,分析了下一步的主要研究方向。 第6 页 国防科学技术大学研究生院工学硕士学位论文 第二章x 流处理器系统结构 x 处理器是一款新型的流处理器,采用类似i m a g i n e 处理器的流处理结构。本 章论述x 流处理器的体系结构、流编程模型、存储层次和微控制器的结构。 2 1x 流处理器结构 x 处理器是一个可编程的单片处理器,它支持流编程模型。图2 1 给出了x 处理 器结构图。x 处理器主要壶竣下几个郝件组成:主枧接口( h o s ti n t e r f a c e ) 、流控 制器( s t r e a mc o n t r o l l e r ) 、微控制器( u c o d ec 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 ) 、流存储控制器( s t r e a mm e m o qc o n t r o l l e r ) 、 网络接日( n i ) 移d d r 控制器。 2 1 。1 流存储控制器 图2 1x 流处理器体系结构 流存储控制器( m c ) 提供x 处理器系统中片外存储器( d r a m ) 至o 流寄存文件 的高带宽连接,并实现与h o s t 处理器共享存储器。流存储控制器由二个地址产生器、 二个命令地址缓存器和二个数据返回缓冲构成。为了达到所要求的带宽,可以 有二个存储访问流同时处于活跃状态。每个存储访问流可以同时有8 个记录处于活 跃状态。每个存储访问流使用自己对应的地址生成器来生成访问地址。对于s t o r e 操作数据来源于流寄存文件( s r f ) 的流缓冲器( s b ) 。对于l o a d 操作,每一个流 数据的返回通过数据返回缓冲器送给流寄存文件( s r f ) 的流缓冲器( s b ) 。图2 2 第7 页 园防科学技术大学研究生院工学硕士学位论文 是流存储控制器的框图。 流存储控制器主要由下到部分组成: 两个地址命令产生器( 每条指令一个) ,负责产生访存地址和命令; 两个命令地址缓存器,缓存命令地址和写数据; l o a d 操佟用两今数据返回缓冲器向s r f 发送数据; 八个存储地址寄存器( m e m o r ya d d r e s sr e g i s t e r s ) :存放存储器中向量地址 流的描述。访存时,传送到m s c r 或m s r c r 来开始存储流的访问。 流存储系统支持三种类型的访问:固定步长访问、索弓l 式访问和位颠倒访问, 数据块大小都是班流记录为单位: 地址产生部件根据这几种访问模式,产生命令和地址,并放入命令地址缓存, 向h o s t 接口发请求。 o s t 接口从命令地址缓存读取命令地址和写数据,通过h o s t 系统总线访问共享存储器。h o s t 接口返回的数据放入数据返圈缓存。流存储控制器 通过s b 把数据返回缓存的数据送给s r f 。 地址生成器0 对应s b l 0 、s b l 2 和数据返回缓存0 。地址生成器l 对应s b l1 、s b l 3 和数据返回缓存l 。 h o s t 镶鞠 m a r 数 据 方向 选择 开关 静裁 选择 开关 m a 建 ( 8 x 6 1 ) 命令瑾缝 缓存o 命令趱薤 缓存l 漱寄存器索引流 地址产生器o 存储控制器控制逻辑 数据流 h 略c 髓 数据返回 缓冲器0 o n 毒存嚣 地址产生器1 卜n 嚣鬲 敷据返嚣 缓;串器1 2 1 2 流寄存器文件 图2 2 流存储控制器酌框图 数据流 索零 流 数据流 数据流 s b 1 0 潞 1 2 s b l l s b i 3 第8 页 豳防科学技术大学研究生院工学硕士学位论文 流寄存器文件( s r f ) 为系统提供片上的流数据存储,用于流级与核级之间流数 据和指令的存储和传输。 如图2 3 所示,s 由寄存器文件、2 1 个流缓冲器、一个s p y 仲裁控制器、3 2 个流描述符寄存器( s d r s ) 、2 1 个流控制寄存器( s c 风) 等模块构成,c l i e n t 0 - - - , c l i e n t 2 0 是与s r f 进行流数据传输的其它部件( 客户) 。寄存器文件采用单端霞 s r a m 结构,被分为4 个并行的体,每个体与相关运算群对应,流数据的记录在寄 存器文件中按体交叉存放,外部客户通过流缓冲器访问s r f 。首先,客户向流缓冲 器发出读流( 或写流) 请求,然后s r f 仲裁控制器处理这些请求,每周期允许其中 一个流缓、渖器读( 或写) 寄存器文件。最后,客户能以较低的带宽跌其相关的流 缓冲器读出流( 或向相关流缓冲器写入流) 。这种方式使s r a m 单物理端口完成了 2 1 个逻辑端口的功能。 寄存器文臀采用的是s r a m 结构,2 5 6 k b ,革端墨;分为4 今b a n k ,对应4 个运 算群,每个b a n k 为4 字宽,大d x 4 k 字( 3 2 k b ) ,共4 个体共2 5 6 k b ;流数据记录在 4 + b a n k 中交叉存储。比女i b a n k 0 中存放流的第0 、4 、8 个记录,b a n k l 中就存放 流的第1 、3 、7 个记录,以此类推。 寄存器文彳孛支持2 1 个流接疆,通过2 1 个流缓冲器分别和其它客户部件相连接。 寄存器文件每次向一个流缓冲器写入或从一个缓冲器读出一个块。按5 0 0 m h z 主频 计算,寄存器文件与流缓冲器之间的带宽可达6 4 g b s 。 c l i e m oc l i e n t 7c l i e n t 8 c l i e n t 2 0 蜜2 3s r f 结构框圈 寄存器文件由存储体和寄存器文件控制器两部分构成,存储体由单端i z l r a m 笫9 页 国防科学技术大学研究生院工学硕士学位论文 实现,总大小为2 0 4 8 b 2 0 4 8 ,共5 1 2 k b ,寄存器文体控制器完成2 1 个c l i e n t 读写请 求懿姊裁和对黜气m 存储体的读写控制。 2 1 3 流控制器 流控制器( s c ) 接收麸标量处理器发送来的流指令,并在满足相关性约束的 条件下将指令发射到x 流处理器的有关单元中去。流控制器的作用相当于超标量处 理器中的发射单元,在不违反指令间相关性和资源相关性的前提下,为了充分发 掘并行性,要尽可能地乱序发射指令。 流控制器扶标量处理器接收流指令,然后将这些指令存在一个挂起豹指令队 列,继而根据指令的相关性的满足情况,决定发射哪条指令。根据从流处理器各 单元反馈回来的状态信号,可以确定啦操作什么时候完成( c o m p l e t e ) 以及一条指 令的相关性什么时候得到满足。滤控裁器选择艺经准备好发射的摆令,并将其发 射至适当的流单元。流控制器还包括通用寄存器文件s c t r f ,它可以被流寄 存器的r e a d 、w r i t e 、和m o v e 指令访问,主要负责在流控制器与诸如标量处理器或 流单元内控制寄存嚣等模块之问传递数据。 流控制器的结构翔鬻2 4 ,标量处理器发送的流指令被写入操作b u f f e r 麴3 2 个入 口之一。连同标量处理器指令一起发送的还有位掩码,它用来指明指令间的相关 性。这些信息是从实际操作中分离出来的,被存在记分牌中。其间,资源分析器 监控从执行单元来的状态位,并同时将这些信息发送至记分膝。当流指令所需的 资源空闵并且指令问的相关性满足要求,则准予该指令的访问,并将其从操作 b u f f e r 发送至发射单元。发射单元就会将该指令转换成控制信息,启动独立执行单 元中的流指令。流控制器寄存器文件( s c t i 强) 常被用于从k e r n e l 转换诸如流长度 和标量输出之类静标爨数据。一鱼流指令执行完毕,就会释放记分牌的入瑟。随 后就可以发射与该指令存在相关的其它指令了。 第1 0 页 国防科学技术大学研究生院工学硕士学位论文 图2 4s c 结构框图 透过使用流指令的动态调度,流控制器确保了流执行单元具有高的利翔率。 它允许x 流处理器通过有效重叠存储操作和k e r n e l 操作来开发任务级并行。此外, 3 2 入口的操作b u f f e r 也允许标量处理器先于流处理器工作,因为标量处理器能够发 送的指令最多达3 2 条,直到它被迫停下来等待释放更多的记分牌入口。该缓冲缓 和了发送流指令到流处理器的延迟对性能产生的影响。 2 1 4 运算群 运算群( c l u s t e r ) 是x 处理器的核心级指令豹执行部件,总共包含4 个运算群单 元,每个c l u s t e r 对不同的数据元素进行相同的操作,运算群之间能够通过群问互连 总线进行相互通信。例如,对于f i rf i l t e r 程序中,就要要获得相邻运算群的数据, 所以这种通信机制是必要的。微控和计算群单元一起工作来执行应用流程序的核 级代码。微控发出的指令广播到所有的c l u s t e r ,计算群以s i m d 的方式工作,即每 个c l u s t e r 执行相同的指令,但处理流的不同数据元素。核级代码由超长指令字 ( v l i w ) 组成,v l i w 的多个指令字段对应c l u s t e r 内部的多个功能部件,部件之 闻的并行提高了系统的指令级并行度。指令执行采用流水方式来提高效率,流水 线根据执行单元不同长度有所改变。 c l u s t e r 的内部结构如图2 5 所示,可以分为功能部件( f u ) ,局部寄存器文件 ( l r f ) ,条件码寄存器文件( c c r f ) 和计算群内交叉互联网络四个部分。其中 功能部件静所有输入均来自其局部寄存器文件( l r f ) ,c l u s t e r 中的功能部件总共 分两大类,一类是用于计算的功能部件,另一类是非运算类功能部件。非运算部 件主要完成条件流的支持和计算群之间以及计算群和微码控制器之间的数据通信 的支持。包括s p 、弱;a 和c o m m 等单元。j b a l 和s p 、e o m m 协同工作以处 理条件流。c o m m 单元在c l u s t e r 之间发送数据,使每个请求条件流下一个数据的 第1l 页 国防科学技术大学研究生院工学硕士学位论文 c l u s t e r 都能对正确的s bb a n k 进行读写;s p 作为一个双端口缓冲在s b 和c o m m 单元 之闻缓冲数据;j b n a l 单元处理条件流执行中发往s b 和c o m m 、s p 的控制信号。 局部寄存器文件是功能部件的数据源和中间结果暂存器,条件码寄存器存储 比较指令产生的结果,用于数据通路选择和条件流操作。功能部件之间的数据交 换以及s r f 数据和功能部件之间的数据传输是通过计算群内交叉互联网络开关完 成的。另外还有一个计算群闯交叉互联网络用予c l u s t e r 之间交换数据。 每个运算群是一个超长指令字引擎( e n g i n e ) ,以在k e r n e l 级利用指令级并行 的优点。所有的功能单元是相同的,k e r n e l 指令系统中,每个功能单元支持各种浮 点和定点运算。将寄存器文件分为s r f 和运算群l r f ,减少了为了隐藏存储延时而 必须扩大容量的代价。这种方式适合处理流模型,因为流模型能够显式的捕获 k e r n e l 内部中间数据的局部性。同时,每个功能单元有一个专用的寄存器作为输入。 功能单元的输出被连到寄存器文件的输入端,通过一个全相连的多路选择器选择 输入到l r f 。分布的寄存器文件结构使用多个双端口的小寄存器文件取代全端口 ( 对所有功能单元) 的单寄存器,改进了运算群的v l s i 实现。 不同的运算群处理不同的条件路径会导致负载不平衡,因为一个或多个运算 群必须空转以等待其魏的运算群完成k e r n e l 程彦。 图2 5c l u s t e r 结构框图 第1 2 页 园防科学技术大学研究生院工学硕士学位论文 2 1 5 微控制器 微控制器( m c ) 是x 处理器的k e r n e l 级控制器,负责k e r n e l 级程序的运行。 它功能包括接受流控传来的参数和控制信号;从s r f 中加载核心程序的微代码 并存储在微控制器的指令存储器中:控制核心程序在计算群中的执行;还要执雩亍 v l i w 代码中微控制器域指定的操作如l o o p ,u cd a t ai n 等。 微控制器由下列子模块组成:微代码存储器( m i c r o c o d es t o r e ) 、控制单元 ( c o n t r o lu n i t ) 、微控制器寄存器文件( u c r f ) 、微控制器条件寄存器文件 ( u c o n d r f ) 、软件流水检测逻辑( s w pl o g i c ) 、s t r e a mb u f f e f 控制逻辑( s b c o n t r 0 1 ) 和流缓冲器r e a d y 标志位队列( s b f i f o s ) 。其结构框图如图2 6 所示。 耵r r e r c l u 汛r d m m u n i c a t i o n i t os i 睇。 矗u 锄 e 慕竺麓 一! m c r o c o d e r f k v l t 口,l l j u j 五羝 it s l o r e l i l | - 一 叫辩v p i s t r e m r e a d y b 盯 c o n t r o l 一 坠q鱼! 篓广 f 0 s b u f f e r 9 u n i t c o n t r o l j 毒毒 lk s 玎田m c l u s 髓鬟 多 s |田: c l u s t e r 夕o n d 田o n c o d e s | m lcl l e r a r i t h m e t i c 11c l 篷 微控结构撬图 2 2x 处理器的存储层次模型 x 处理器采用本地寄存器文件l r f 一流寄存器文件s r f 一片外d r a m 三级存储 层次模型,这样的存储层次划分实际土是对应了流应用所雹含的三级数据局部性 【1 5 】 1 6 】 1 7 】【2 l 】 2 8 。通过合理的划分存储系统的层次模型,设置合适的带宽比例, 可以有效的开发应用中的数据局部性。利用数据的局部性,能够减少不同存储层 次之闻的通信。 2 三级存储层次 传统的存储层次模型,无法向运算单元提供所需要的数据带宽。为了支持这 众多的运算单元,一个全局寄存器文件必须提供大量的存储空闻和很高的数据带 第1 3 页 国防科学技术大学研究生院工学硕士学位论文 宽。工艺上的约束使得这样的寄存器文件相当昂贵。而且,c a c h e 层次也无法提供 足够携带宽来支持。c a c h e 对于程序员和编译器来说是透明酶。因为程穿不能直接 命令硬件进行数据移动,c a c h e 必须动态地传输和存储可能会被用到的数据。这种 管理存储的硬件开销限制了c a c h e 所能提供的有效带宽。在不能从c a c h e 层次得到 足够的带宽支持的情况下,运算单元不得不经常处于空转状态,等待铁c a c h e 获得 数据。最后,当d r a m 被用来最小化必须获得的数据访问的延迟时,d r a m 所能 维持的带宽将会降低。 x 处理器的存储系统由计算群内的本地寄存器文件l r f 、片上缓冲

温馨提示

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

评论

0/150

提交评论