(计算机科学与技术专业论文)流存储控制系统技术研究及硬件实现.pdf_第1页
(计算机科学与技术专业论文)流存储控制系统技术研究及硬件实现.pdf_第2页
(计算机科学与技术专业论文)流存储控制系统技术研究及硬件实现.pdf_第3页
(计算机科学与技术专业论文)流存储控制系统技术研究及硬件实现.pdf_第4页
(计算机科学与技术专业论文)流存储控制系统技术研究及硬件实现.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

(计算机科学与技术专业论文)流存储控制系统技术研究及硬件实现.pdf.pdf 免费下载

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

文档简介

国防* i - t 大学研究生院学位论文 摘要 流体系结构主要针对媒体应用以及科学计算,其在新兴的高性能计算机体系 结构中备受关注。应用中的数据并行性为处理器获得高性能提供了两个机遇:并 行性和延迟隐藏。流体系结构中的流存储层次结构为合理把握这两个机遇提供了 一个很好的平台。 流存储层次结构主要由本地寄存器( l r f ) 、流寄存器文件( s r f ) 和流存储 控制系统( s m c s ) 构成。本文着重研究了处于存储层次结构最外层的流存储控制 系统结构。详细介绍了流存储控制系统的内部寄存器、地址产生器和接口缓冲; 重点阐述了流存储控制系统为流应用提供的三种片外存储器访问模式及其工作原 理与过程;给出了基于某高性能流处理器的流存储控制系统的设计和实现方法, 并给出了几种不同设计的综合比较结果。 本文还对流存储控制系统的访存序列重排序的改进方法进行了研究,模拟验 证结果表明,该方法能够有效的提高对片外存储器的访问效率。旨在为上层结构 提供有力的带宽支持,本文最后给出了一种基于多体交叉的流存储控制系统结构。 主题词:流体系结构,流存储控制系统,地址产生器,访存模式 第i 页 国防科技大学研究生院学位论文 a b s t r a c t s t r e a ma r c m p 咖ea i m s 缸m e d i aa n ds i 掣“p r o c e s s i n g ,g r a p h i c s ,a n ds c i e n t i f i c c o m p u t i n g i t sb e e np a y i n gn l o r ca n dm o r ea t t e n t i o ni nt h ef i e l do fn e wr i s i n gc o m p u t e r a r c h i t e c t u r e s t h ep r e s e n c eo f d a t ap a r a l l e l i s mi na l la p p l i c a t i o np r o v i d e st w oi m p o r t a n t o p p o r t u n i t i e st oa c h i e v eh i g hp e r f o r m a n c e - t h ep a r a l l e l i s mi t s e l f , a n dl a t e n c yt o l o r a n c e 1 k m e m o r yh i e r a r c h yo fs t r e a ma r c h i t e c t u r ep r i v i d e sas u i t a b l ep l a t f o r mt oh o l dt h o s e t w oo p p o r t u n i t i e s t h em e m o r yh i e r a r c h yo fs t r e a ma r c h i t e c t u r ec o m p l i s e sl o c a lr e g i s t e rf s ( l r f ) , s t r e a mg e g i s t e rf i l s e s ( s r f ) a n ds t r e a mm e m o r yc o n t r o l l i n gs y s t c m ( s m c s ) t h i s t h e s i sf o c u s e so nt e c h n i q u e so ft h es m c sw h i c hi sl o a c a t c do u t o r m o s to ft h em e m o r y h i e r a r c h y ap a r t i c u l a ri n t r o d u c t i o na b o mi n t e r n a lr e g i s t e t s ,a d d r e s sg a n e m t o r s ,a n d i n t e r f a c eb l 堪c r s , w h i c hc o m p r i s es m c s ,i sp r e s e n t e d t h ee m p h a s i si sp u t0 1 1t h et h r c e m e m o r y 铷x 脚m o d e s ,a n dt h ep r o c e s sh o wt h e yw o r k s am e t h o do fd e s i g na n d h a r d w a r ei m p l e m e n t a t i o nb a s e do nah i g hp c r f o r m a n s t l v a mp r o c e s s o ri sp r e s e n t e d , w e l la st h ec o m p a r i n gs y n t h e s i sr e s u l t so f s o m ed i f f e r e n td e s i g n i n gw a y a n i m p r o v e dm e t h o do f t h es m c sa i m s 砒r e o r d e r i n gt h em e m o r y a o c o s ss e q u e n c e i sp r e s e n t e d t h es i m u l a t i o nr e s u l ts h o w st h a tt h em e t h o dc a nm a k ea ne f l i c i e n tw a yo f t h em e m o r ya c c e s s i n g i no r d e rt op r o v i d eb e t t e rb a n d w i d t hs u p p o r tf o r t h eu p p e rl a y e r , an e ws m c sa r c h i t e c t u r eb a s e d0 1 1m u l t i - b a n ki n t e r l e a v e di sp r e s e n t 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 ,s t r e a mm e m o r yc o n t r o l l i n gs y s t e m , a d d r e s sg e n e r a t o r ,m e m o r ya c c e s sm o d e 第i i 页 国防科技大学研究生院学位论文 表2 1x 处理器的带宽层次结构 表目录 表3 1 流存储控制系统主要参数。 表3 2m a r 寄存器组域设置 1 2 表3 3 存储流控制寄存器m s c r 1 4 表3 4 描述位反操作符号表。1 8 表3 5 位反模式访存地址序列1 9 表4 1 流存储控制系统内部寄存器编址 表4 2 模块综合结果 表5 1 重排序模拟环境 表5 2 访存效果 。3 l ,3 9 3 9 第页 国防科技大学研究生院学位论文 图目录 图2 1x 处理器结构 图2 2 计算群结构 图2 3 一个应用程序中的带宽层次映射关系图。 ! ; 6 图2 4 流缓冲与s r f 和计算群之间的匹配关系一l o 图3 i 流存储控制系统总模块图1 3 图3 2r e c c n t 和c l c n t 组成的1 3 位计数器图1 5 图3 3 地址产生器产生访存地址序列。 图3 4 位反模式数据访问顺序图 1 6 1 7 图4 1 地址产生器及周围模块连接关系图2 2 图4 2m a r f 模块接口图。 图4 3a g o 模块接口图。2 4 图4 4 地址产生部件结构图2 6 图4 5 一种可行的地址产生器设计示意图2 7 图4 6 命令地址缓冲模块接口图2 8 图4 7 数据返回缓冲模块接口图2 9 图4 8 主处理器读m c 内部寄存器模块接口图3 0 图5 1 获得更高主存带宽的几种技术垌。 图5 2 含独立存储体的存储器 图5 3 访存地址序列生成过程 图5 4 流存储控制系统访存通路图 图5 5 突发长度为4 时数据的取舍情况3 5 图5 6 改进后的流存储控制系统访存通路图3 6 图5 7 改进后结构访存示意图3 8 图5 8 流存储控制系统结构4 1 图5 9 现代d r a m 结构及简化状态图4 1 图5 1 0 流存储控制系统存储器组织结构图4 2 图5 。l l 存储体结构 4 4 图5 1 2m s h r 、p a c k e t 、d a t a 寄存器之间的关系4 7 图5 1 3 体缓冲和存储控制器结构图4 8 图5 1 4 带流c a c h e 的d r a m l 2 5 0 第1 v 页 独创性声明 本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得的研 究成果尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已 经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它教育机构的学 位或证书而使用过的材料与我一同工作的同志对本研究所做的任何贡献均已在论文 中作了明确的说明并表示谢意 学位论文题目:速盔篮整劐丞缠挂盔丑荭瑟翌佳塞超 学位论文作者签名:3 冬兰k 日期: 删年,t 月忻 学位论文版权使用授权书 本人完全了解国防科学技术大学有关保留,使用学位论文的规定。本人授权国 防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子文档,允 许论文被查阅和借阅;可以将学位论文的全部或部分内容编入有关数据库进行检索, 可以采用影印、缩印或扫描等复制手段保存、汇编学位论文 ( 保密学位论文在解密后适用本授权书。) 学位论文题目:述壶篮撞盟丞红挂盎婴盔区亟佳塞塑 日期:冽年t t 月“咱 日期:删年f 月l 如 国防科技大学研究生院学位论文 第一章绪论 1 1 研究背景 随着国家经济和科技水平的发展,许多领域对计算机性能的要求也越来越赢 科学计算规模的不断扩大,多媒体应用种类的不断增多,事务处理和科学领域研 究的不断深入,以及互连网通讯、电子商务、决策支持系统、可视化计算模型和 计算密集型的c a d 等新兴应用的出现对通用微处理器的性能提出了更高的要求; 在空间图像处理、地理卫星图像分析等图像处理领域,在大气、海洋监测,石油 勘探开采等大规模科学计算领域对高性能计算机性能的要求更是有着空前的提 高。计算机的性能可以通过改进计算机体系结构和提高v l s i 技术等几个方面得以 提升:开发计算机系统的并行性是计算机体系结构的重要研究内容之一;工艺水 平的发展与提高则推动峪i 技术的提升。 计算机中提高并行性的措旆多种多样,但就其基本思想而言主要有以下几种 途径【1 5 】: 时间重叠( 缸e - i n 自e r l 蹦v i n g ) 。在并行概念中引入时间因素,即多个处理过 程在时间上互相错开,轮流重叠地使用同一套硬件设备的各个部分,以加 快硬件周转而赢得速度。这种概念体现在硬件设计上就是流水线技术。 资源共享( r e s o u r 睁s h a r i n g ) 。这是一种软件方法,它使多个任务按一定时间 顺序轮流使用同一套硬件设备。多道程序,分时系统等就是遵循这一途径 产生的。 资源重复( r e s o u r 睁r e p l i c a t i o n ) 。这是并行概念中的引入空间因素,是根据 数量取胜”原则,通过重复设置资源,尤其是硬件资源,大幅度提高计算 机系统的性能。 当今v l s i 电路技术允许在一个芯片内集成上十亿个晶体管,因此在一个处理 器内集成上千个算术运算单元以资源的重复来取得高性能的潜力是存在的。然而, 为了利用这种潜能,必须突破两个技术上的局限【2 1 :第一,存储访问的长延时。当 今高性能处理器中,一次片外访问可能会需要成百上千个时钟周期,这样的长延 迟必须能够被容忍第二,远低于片上存储带宽的片外存储带宽不能成为性能瓶 颈。 通过指令级并行,传统通用微处理器可以在大量的应用中的获德较高性能。 然而,在编译时从指令序列中提取指令级并行却难以提取运行时的动态信息,而 要提取这些运行时的动态信息需要复杂而昂贵的硬件结构支持。因此,针对指令 级并行而设计的处理器只会分配一小部分资源给并行计算,更多的资源则被用来 开发并行性和c a c h e 层次结构以减少平均访存延迟。结果,在这样的结构当中,只 第1 页 国防科技大学研究生院学位论文 有一小部分潜在的能力被用来改善计算性能。 当今,许多重要的应用都展现出数据并行性口1 1 嗍,在这些应用中大量的数据 可以被同时处理。与指令级并行不同,数据并行可以在编译时分析和调度,能够 减少动态调度方法的庞大硬件开销。这些包含大规模数据并行的应用包括多媒体、 信号处理和科学计算等。通过分析和比较我们发现,媒体处理呈现出以下的几种 特性; 媒体、信号处理应用要对大量长序列采样数据进行操作。 对一个数据元素的操作往往独立于对其它数据元素的操作。因此可以很大 程度上开发并行和隐藏延时。 对数据元素重复处理使用的次数不多。 大规模科学计算则里现以下特性: 科学计算应用通过大量对物理系统各个分割片段的建模来最大限度接近 真实系统的行为。 计算密集型,通常对一个从存储器中读出的元素都要进行上百个乃至更多 的算术操作 从当今应用的发展趋势来看,媒体应用消耗个人设备上的资源比重会越来越 大;科学计算应用会对高端超级计算机的设计要求越来越高。通过提取数据并行 性以取得高性能的处理器结构会被用来开发这些应用当中的潜在并行性。 1 2 研究的现状 国际上正在积极进行新型体系结构的研究和探讨,到现在为止,主要有以下 几种极具代表性的新型体系结构唧。 基于t i l e 的瓦片结构1 4 目前的高性能多核微处理器如p o w e r 5 、o t e r o n 、u i 血 a s p a r ci v 等都是集成 几个功能强大的微处理器核心,是s m p 或其它多处理器系统的一个简单直接的缩 微版本,采用传统的并行机编程模式,缺乏更高的灵活性。基于t i l e 的瓦片结构则 采用更细粒度的集成方式,每个计算核心功能简单,数十乃至数百个微处理器核 通过高速、可重配置的互连网络连接,核间数据交换的延时是固定的,且编译器 可见。每一个f i l e 占据芯片的- - , j , 部分空间,由于信号只需要在很短的距离内传播, 因此使得构成一个处理速度更快的处理器成为可能。 p i m 1 7 】 p r o c e s s o r - i n - m e m o r y 思想来自于层次式存储结构,动机是充分利用当前 d r a m 中巨大的潜在带宽,而半导体工艺的快速发展使得单片中能够集成的晶体 管数日有了大幅的提高,这也加速了p i m 结构的发展。p i m 结构特点是处理器和 第2 页 国防科技大学研究生院学位论文 主存储器紧密地集成在一个芯片上,所构成的系统与传统结构相比具有高带宽、 低延迟、低功耗等特点。p i m 结构中处理器和存储器紧密结合,使传统的跨芯片 的片外访存变为片内访存,既缩短了访存路径又降低了访存所需的驱动电平,从 而降低了访存时延和功耗;另外p i m 结构摆脱了原有的处理器和存储器之间互连 引脚受限的限制,提高了访存带宽。 流处理结构l u 流处理是另一种处理处理器和存储器之间不断增大的差距的有效方法。在这 种方法中,主要针对现代v l s i 工艺条件下片外通信昂贵而片内运算单元相对廉 价,但是大部分片上面积被通信管理等单元占据使得计算能力未被充分利用的问 题。目标是通过开发符合流应用特点的流式处理和三级带宽存储以减少片外存储 器访问而使片内运算能力得到充分利用,并且在一定程度上避免了长线延迟问题。 1 3 课题研究内容和完成的工作 本文主要关注流处理结构当中的存储层次方面内容。如1 1 节所述,应用程序 中的数据并行性为获得高性能提供了两个机遇【2 】:并行本身和延迟容忍。存储层次 的设计在利用这两个机遇方面扮演非常关键的角色。 首先,对大量数据元素进行操作的计算可以并行进行以增加计算的比例。尤 其是在大部分多媒体和科学计算的应用中,对一个数据元素的操作与其他数据元 素的操作是独立的,这样可以进一步增加计算的比例,但是,最靠近运算单元的 存储层次必须能够提供充足的带宽以支持数据并行。也可以这样说,整个处理器 的计算比例是由存储层次结构当中的中间层次与片外存储器数据交换的速率限制 的。因此如何有效利用每个存储层次的可用带宽尤其是片外存储器带宽是获取高 性能的关键。 其次,可用的并行性使得存储器的长延迟可以被隐藏。指令级并行的处理器 在面对存储器的长访问延迟时继续工作执行的能力受到可用的指令级并行能力、 指令发射窗口以及提交队列深度的限制,与之不同的是,数据并行体系结构在这 种情况下可以继续对与正在访存的数据无关却可用的数据进行操作以达到隐藏延 迟的效果。但是,存储层次的设计必须要考虑在存储访问延迟非常明显的情况下 程序继续执行的可能性。在当今通用高性能领域的存储系统的设计中可以通过非 阻塞c a c h e 来支持c a c h e 失效时程序的继续执行,但是在数据并行的体系结构中 这种访存失效而程序要继续执行的需求更加紧迫。在数据并行的体系结构中由于 数据处理的高并行性,由于存储停顿引起的指令发射槽的浪费是非常大的。为了 减小存储器访问引起停顿的可能性,由里托法则田( l i t t l e sl a w ) 给出的数据并行 体系结构中在第i 级存储层次并发且未完成存储访问的数目如公式1 所示。其中4 , 第3 页 国防科技大学研究生院学位论文 占彤和厶分别是第级存储层次未完成的存储器访问的个数,带宽和延迟。在现代 的存储系统中,片外存储器的每个访存周期是几百个时钟周期,这要求存储系统 能够支持数千个未完成的存储请求。 4 = 曰形厶 公式l 数据并行的应用程序对存储延迟的容忍使得存储层次结构的设计目标从减小 存储访问的平均延迟( 这对通用微处理器而言是非常关键的) 到增加存储器的带 宽。从这个角度而言,维持很多未完成存储操作的能力也是非常关键的,因为这 样使得存储访问流水线被充满,可以增加存储器提供峰值带宽的概率。 本文所涉及的技术是在数据并行所能够提供的能力上,在面向更广泛的应用 时,能够进一步提高片外存储器带宽的利用率。 在课题研制过程中,本人主要完成了以下几个方面的工作: 研究了流体系结构的关键技术; 深入细致的分析了流存储控制系统结构; 设计并实现了x 处理器的流存储控制系统,对关键部件的模拟综合结果进 行了分析; 在结合x 处理器流存储控制系统结构的基础上,给出了一种新的适合流处 理的流存储控制系统结构; 1 4 文章的组织 本文共分六章,下面给出各章的文章摘要。 第一章为绪论,结合应用和技术的发展趋势,介绍了当今处理器的发展方向 和当今部分新兴处理器结构,给出了课题的选题背景、现状以及课题研究内容和 完成的工作等。 第二章介绍了x 处理器结构,以组成部件为单位介绍了基于流处理的x 处理 器的结构以及带宽层次结构。 第三章介绍了x 处理器的流存储控制系统结构,并给出了设计策略和方法。 第四章给出了x 处理器的流存储控制系统详细硬件实现和综合结果。 第五章给出了对流存储控制系统的改进方法。提出了一种基于流处理的访存 序列重排方法;结合传统存储系统和流处理的特点,给出了一种高效的流存储控 制系统结构。 最后一章为结束语,对本论文的主要工作及贡献进行了总结,并对下一步的 工作进行了展望。 第4 页 国防科技大学研究生院学位论文 第二章基于流的x 处理器结构 2 1 概述 x 处理器 4 0 l 是款采用流处理技术服务于巨型机系统的高性能加速部件,可 以构成巨型机系统的高性能加速阵列。 x 处理器是可编程的单片处理器,它支持流编程模型。图2 1 展示了x 处理 器的主要模块图。x 处理器结构支持2 0 个a l u ,这些a l u 被组织成4 个s i m d 的计 算群。每一个计算群拥有5 个a l u ( 四个乘加单元,一个除法平方根单元) ,本地 寄存器文件,它们执行完全静态的超长指令字。流寄存器文件( s r f ) 是处理器的 片上存储器。流存储控制系统,计算群,微控制器和网络接口都通过s r f 将流导 入或者导出。d d r 控制器负责完成对片外存储器的控制操作,处理器接口连接主 处理器和流处理器 图2 1x 处理器绪构 x 处理器是一个协处理器,它采用两级编程模型:核级和流级。核级函数使 用k e m e l c 编写,它的语法是以c 语言为基础。核级可能会访问局部变量,读输 入流,写输出流,但是不会直接访问片外存储器。核级程序被编译成微代码程序, 这些微代码程序将计算群内部的单元有序利用起来对连续的流元素进行操作以完 成核级程序的功能。通过从s r f 中读入流,核级程序被1 0 a d 到微控制器的内部存 储器。在应用级,x 处理器使用s t r e a m c 进行编程,s u e a m c 提供基本的函数来操 作流,使得流可以在核级程序之间进行流动。 第5 页 国防科技大学研究生院学位论文 2 2x 处理器组成 从图2 1 中我们可以看到,x 处理器主要由计算群、微控制器、流寄存器文件、 流控制器、流存储控制系统、网络接口、主机接口等部件构成。下面对个组成部 件进行简单的介绍。 计算群阵列( c l u s t e r s ) 在x 流处理器中设置4 个相同的计算群( c l u s t e r ) ,它们接受微码控制器发 送的指令并执行。计算群从流寄存器文件( s l 蹬) 中读取数据,处理数据,然后把 结果数据写回到s r f 。计算群对数据的处理是按流的方式进行的,即顺序读取流 的数据记录,处理完后按顺序写回数据流。计算过程中大量的中间结果存放在本 地寄存器文件中,计算过程中读取的源操作数大都是从本地寄存器文件中读取的。 在处理过程中,所有的计算群都并行执行相同的操作,即微码控制器读取的微码指 令广播到4 个计算群同时执行,计算群执行同样的指令,处理流的不同数据元素, 也就是说流处理器所有的计算群以s m d 方式锁步执行。 o u t l a t c h l n l a t c h 图2 2 计算群结构 一个计算群是由多个功能部件组成,各功能部件之间用一组计算群内部总线 互相连接起来。一个计算群也包含了多个本地寄存器文件l r f ,并有多个输入流 和输出流的接口。 计算群的内部结构如图2 2 所示,可以分为功能部件( f u ) ,局部寄存器文 件( u 强) ,条件码寄存器文件( c c r f ) 和计算群内交叉互联网络四个部分。功 能部件完成不同的算术运算和其它操作,局部寄存器文件是功能部件的数据源和 中问结果暂存器,条件码寄存器文件存储比较指令产生的结果,用于数据通路选 第6 页 国防科技大学研究生院学位论文 择和条件流操作。功能部件之问的数据交换以及s r f 数据和功能部件之间的数据 传输是通过计算群内交叉互联网络开关完成的,所有的功能部件都是将输出结果 发送到结果总线上,而l r f 的输入端可以连接所有的结果总线,这样交叉互联开 关就将所有的功能部件和l r f 之间形成一种全互联的结构。另外还有一个计算群 间交叉互联网络用于c l u s t e r 之间交换数据。 微控制器( u e o d ec o n t r o l l e r ) 微控制器是x 处理器的k e r n e l 级控制器,负责k e r n e l 级程序的运行。主要完 成功能及工作过程如下:接受流控s c 传来的参数和控制信号;从s r f 中加载核 心程序的微代码并存储在微控制器u c 的指令存储器中:控制核心程序在计算群中 的执行( 在x 处理器中核心程序以s i m d 的方式执行,因此指令执行时微控制器 u c 将指令同时发射到4 个计算群上) ;在u c 中还要执行k e r n e l 级v l i w 代码中 微控制器域指定的操作如l o o p ,u cd a t ai n 等,这些指令都在u c 中执行而 无需发射到计算群c l u s 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 内部的多个功能部件,部件之间的并行提高了系统的指 令级并行度。指令执行采用流水方式来提高效率,流水线根据执行单元不同长度 有所改变。 流寄存器文件( s t r e a mr e g i s t e rf i l e s ) s r f 是x 处理器的片上存储器,大小为2 5 6 k b 。s r f 可以容纳任何数量任何 长度的流,唯一的限制只在于s r f 的实际大小。流通过一个流描述符被引用,该 流描述符包括两个域:流在s r f 中的基地址域和流长度域。 一组由2 1 个3 2 字的流缓冲组成的阵列可以同时处理来自于2 1 个流客户的读 或者写访问操作。这些流客户将流读出或者写入s r f ,流客户包括流存储控制系 统,网络接口和算术计算群等。流缓冲内部存储阵列是1 6 字宽,每两拍就能将一 个流缓冲填满或者排空。 如果读数据可用或者写数据空间可用,每一个流客户每拍都能够对对应的流 缓冲进行访问。服务子计算群的8 个流缓冲每个流缓冲每次能够提供4 个数据字, 每个计算群一个字。服务于网络的8 个流缓冲总共能够每次提供2 个字的访问, 一读一写。另外5 个流缓冲每次提供个字的访问。因此,流缓冲每拍最多能够 提供3 9 个字的带宽,这可能会出现峰值带宽超过单端口的s r f 的带宽的现象出现。 流缓冲是双向的,但是在某一次流传输的过程中只能是单向传输。 流存储控制系统( s t r e a mm e m o r yc o n t r o l l i n gs y s t e m ) 第7 页 国防科技大学研究生院学位论文 所有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 e 结构相类似。它可以简化编程,并且可以使存储系统优化流的吞吐率, 而不仅仅是单个独立的访存操作时间的优化。通过5 0 0 m h z 的工作频率和两个访 存通道,理论上流存储控制系统能够提供8 g b s 的带宽。系统可以同时提供两个 存储流访问。为了支持这些并发的传输,有四个从存储系统到s r f 的流通道( 两 个索引流,两个数据流) x 处理器支持跨步、索引和位反三种访存类型。 网络接口( n e t w o r k i n t e r f a c 曲 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 指令进行接收操作。 流控制器( s t r e a mc o n t r o l l e r ) 流控制器接收从标量处理器发送来的流指令,并在满足相关性约束的条件下 将指令发射到x 处理器的有关单元中去。流控制器的作用相当于超标量处理器中 的发射单元,在不违反指令间相关性和资源相关性的前提下,为了充分发掘并行 性,可以尽可能地乱序发射指令。 流控制器从标量处理器接收流指令,然后将这些指令存在一个挂起的指令队 列,继而根据指令的相关性的满足情况,决定发射哪条指令。根据从流处理器各 单元反馈回来的状态信号,可以确定操作什么时候完成( c o m p l e t e ) 、一条指令的 相关性什么时候得到满足。流控制器选择已经准备好发射的指令,并将其发射至 适当的流单元。流控制器还包括通用寄存器文件_ s c m 强,它可以被流寄存器 m o v e 、w r i t ei m m 等指令访问。使用s c t r f 在流控制器与诸如标量处理器或流单 元内控制寄存器等模块之间传递数据。 主处理器接口( h o s ti n t e r f a e 曲 主处理器接口负责流处理器与外部处理器或者智能设备的数据交换任务,主处 第8 页 国防科技大学研究生院学位论文 理器与流处理器之间通过处理器接口交互数据流和k e r n e l 微代码流。流处理器能 映射到主处理器的地址空间,这样主处理器可以读和写流处理器的存储器。主处 理器执行程序,流出流指令,这些指令通过处理器接口写入到专门的存储映射地 址上。 2 3x 处理器带宽层次结构 x 处理器的带宽结构由l r f 、s r f 、和流存储控制系统构成。表2 i 列出了x 处理器每个层次理论上能够取得的带宽。 表2 1x 处理器的带宽层次结构 层次名称x 处理器带宽 ( 5 0 0 m l i z ) 本地寄存器文件( g b s ) 3 8 4 流寄存器文件( g b s ) 1 2 8 流存储控制系统( g b s ) 8 从表2 1 中可以看到,越是靠近算术单元的层次获得的带宽越高。由于在高带 宽层次捕获数据的重用性,因此即使片外带宽有限,这种结构也能够让运算单元 维持很高的资源利用率。 带宽结构也与流编程模型表现出来的局部性层次有很紧密的匹配关系。l r f 捕捉k e r n e l 的局部性而s r f 则捕捉流级的生产者消费者局部性和k e r n e l 之问的 时问局部性。图2 _ 3 展示了一个应用示例在带宽层次结构上的对应关系。 片外存储器 流寄存器文件篙摹鬟鬈辨 图2 3 一个应用程序中的带宽层次映射关系图。 实线箭头代表流的传输;虚线箭头代表索引的传输 本地寄存器文件 流处理器的总共的寄存器容量由s r f 和l r f 共同构成。这样就允许s r f 被优 第9 页 国防科技大学研究生皖学位论文 理器与流处理器之1 4j l 过处理器接口交哑数据流和k e r n e l 微代码流,流处理器能 映射到主处理器的地址空问,这样主处理器可以读和写流处理器的存储器。土处 理器执行程序,流出、i ) “l t , “n 令,这些指令通过处理器接口写入到专门的存储映射地 址上。 2 3x 处理器带宽层次结构 x 处理器的带宽结构由l r _ 王1 、s r f 、和流存储控制系统构成。表2 1 列出了x 处理器每个层次理论卜能够取得的带宽。 表2lx 处理器的带宽层次结构 层次名称x 处理器带宽 ( 5 0 0 m i - i z ) 本地寄存器文件( g b s ) 3 8 4 流寄存器文件( o b s ) 1 2 8 流存储控制系统( g b s 1 8 从表2 1 中可以看到,越是靠近算术单元的层次获得的带宽越高。由于在高带 宽层次捕获数据的重用性,因此即使片外带苋有限,这种结构也能够让运算单元 维持很高的资源利用率。 带宽结构也与流编程模型表现出来的局部性层次有很紧密的匹配关系。l r f 捕捉k e m e l 的局部性而s r f 则捕捉流级的生产者消费者局部性和k e m e l 之问的 时问局部性。图2 l 3 展示了一个应用示例在带宽层次结构上的对应关系。 图2 3一个应_ _ 4 j 程序中的带宽层次映射关系幽。 实线箭头代表流的传输;虚线箭头代表索引的传输 本地寄存器文件 流处璐l 器的总共的寄存器容量由s r f 和l r f 共同构成。这样就允许s r f 被优 筻9 贞 国防科技大学硼 究生院学位论文 化成高容量以捕捉工作组,而l r f 则被优化成高带宽小容量。为了维持必要的高 带宽,本地寄存器是采取一+ 种分布的方式实现的:每一个计算群里头都包含有多 组寄存器文件。每一个l r f 都有部分读端口直接为算术单元供应数据,一个或者 多个写端口连接到计算群内网络。维持并行计算的带宽由所有l r f 共同提供。 流寄存器文件j 5 , 流寄存器文件分为4 个b a n k ,与计算群数目相对应。每个计算群与它对应的 s r fb a n k 位置构成为一个l a n e 。为了提供高效和高带宽的存取访问,每个计算群 仅仅能够访问与之对应的s r fb a n k 。 这种b a n k 的实现机制减少了s r f 所需要的端口的数目。因为每个b a n k 仅仅 需要支持一个运算群,因此s r f 可以用单端口的存储器实现。为了增加这种实现 机制的s r f 的带宽,每个s r fb a n k 的数据位宽是4 个字。因此,每次访问对s r f 的访问都回读出或者写入几个连续的字。但是计算群每次消耗或者产生数据流中 一个字,但是一个计算核心可能同时访问多个流。这种s r f 与计算群之间的访问 特点的不同可以通过流缓冲器来实现。流缓冲器调节s r f 和计算群之间的通讯如 图2 4 所示。 单一的冤s r f 端 _ _ 】 多个窄的计算群端e l 图2 4 流缓冲与s r f 和计算群之间的匹配关系 每次对流a 的s r f 读操作,都会从s r f 中读出1 6 个字的数据块放入流缓冲 器a 中。而计算群每次对流a 的读操作,将从流缓冲器a 中取出4 个字放入计算 群内。对流的写操作与读操作类似,当计算群写入流缓冲中的数据积累到1 6 个字 的时候,才将流缓冲器中的数据一次性的写入s r f 中。流缓冲器提供了2 1 个并发 的流通过分时复用的方式使用单个s r f 端口,这些并发的流与一个流缓冲相对应。 流缓冲器的数目决定了同时可以激活的流的数目。多个激活的流对单端口的s r f 的访问通过动态访问来管理。数据流以记录为单位分布在s r fb a n kr f l ,一个流的 第r 个记录影射在第r 4 个b a n k 中。s i m d 的执行模式也适用于s r 2 。每次对 s r f 的访问,对每个b a n k 都是一样的。 s r f 也是流和存储器之间传输的中枢。输入流被加载到s r f 中直到计算核心 在运行时消耗它们。类似的,应用程序中由计算核心生成的最后结果保存在s r f 中直到写入存储器中。因此s r f 是一个关键的部件,可以让存储器的访问和计算 第1 0 页 国防科技大学研究生院学位论文 核心的执行重叠发生,因为计算核心对s r f 中的数据进行操作的同时可以进行存 储器的数据传输。 流存储控制系统 流存储控制系统管理流在片外和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 中读出写入存储器中。根据 1 3 节里托法则,r o b 项的个数由为了达到高带宽利用要求的存储请求数目决定。 流处理器的片外存储器是普通的d r a m 。存储控制器被集成到片上,存储接 口要用到存储调度来优化片外访问的性能。 尽管有有效的带宽结构,但是应用程序的性能仍然可能受到带宽的限制 如果在任何一个层次上为运算单元提供的数据少于运算单元可以支持的数据。这 是对构成带宽最低层的片外存储器的一种特别的担心。因此,本文的一个重要的 研究内容就是开发提高流存储控制系统的带宽以适应上层部件计算和传输的带宽 要求。 2 4 本章小结 本章主要介绍了x 处理器的基本组成结构,并介绍了x 处理器的带宽层次结 构。作为x 处理器设计基本出发点之一的带宽层次结构巧妙的将局部性的捕捉最 大限度的保持在高层次范围内,流寄存器文件的设置可以实现流之间访存延迟的 隐藏。流存储控制系统为上层结构提供高速度的访存接口。 第l l 页 国防科技大学研究生院学位论文 第三章流存储控制系统的结构 流存储控制系统为x 处理器提供到片外存储器的高带宽连接。流存储控制系 统由二个地址产生器、二个命令地址缓存器和二个数据返回缓冲构成。为了达到 所要求的带宽,可以有二个存储访问流同时处于活跃状态。每个存储访问流使用 自己对应的地址产生器来生成访问地址。对于s t o r e 操作,数据来源于流寄存文件 ( s i 江) 的流缓冲器( s l r c a mb u f f e r ) 。对于l o a d 操作,每一个流数据通过数据返 回缓冲器送给流寄存文件的流缓冲器。存储控制系统与s r f 之间的带宽为2 6 4 b i t s c y c l e 。 流存储控制系统执行流级i s a 发出的m e m o p 指令,能够支持两条指令并行执 行,实现在s r f 与片外d r a m 之间传送流数据。其关键参数如下: 表3 1 流存储控制系统主要参数 结构名称数日 地址产生器2 个 命令地址缓存器2 个 数据返回缓冲2 个 存储地址寄存器( m a r )1 6 个 存储流控寄存器( m s c r ) 2 个 o s e l 葡仔器4 个 x 处理器的流存储控制系统完成的主要工作是在s t o r e 操作时将s r f 中以流的 形式存在的数据分解成单独的访存请求并发往底层的d d r 控制器进行访问,l o a d 操作时根据控制信息的要求将存储器中的数据以特定的顺序组织成流送往上层 s r f 。由于被处理的流最终是提供给计算群用,而x 处理器中有4 个计算群,因 此在流组织的时候要将计算群的信息也隐藏于其中,该项工作主要由地址产生器 和数据返回缓冲完成完成。 图3 1 给出流存储控制系统的主要模块图。从图3 1 中我们可以看到,x 处理 器的流存储控制系统主要由下列部分组成: 两个地址产生器( 内部包含控制其有序工作的存储流控制寄存器m s c r ) , 负责产生访存地址; 两个命令地址缓冲,用以缓存地址产生器生成的地址、数据以及其他一些 信息,是流存储控制系统与下层部件的接口缓冲之一; 两个返回数据重排序缓冲,用以在l o a d 操作时缓存从下层存储控制器发 送回来的访存数据并且将这些数据重新排列成s r f 需要的形式; 1 6 个存储地址寄存器( m e m o r ya d d r e s sr e 西s t c r s ) :存放存储器中地址流 第1 2 页 国防科技大学研究生院学位论文 的描述。访存流指令开始执行之后,该1 6 个寄存器中的一个的值会被传 送给适当的m s c r 用以初始化流存储控制系统的一个流访问。 图3 1 流存储控制系统总模块图 流存储控制系统工作的过程就是其与流控制器、流寄存器文件和主机接口相 互交互的过程。流控制器执行流指令写m a r 、启动流存储控制系统进行访存。s t o r e 操作的时候,流存储控制系统生成访存的流地址接收流寄存器文件内待存储的数 据,一同送与主机接口;l o a d 操作的时候,流存储控制系统生成访存流地址送往 主机接口,待数据返回之后进行组合重排后送给流寄存器文件。 3 1 流存储控制系统寄存器 存储地址寄存器( m a r ) m a r 寄存器是用户可见寄存器,流控制器通过执行w r i t e _ i m m 或者m o v e 流 指令修改其内容。为了方便用户使用、提高用户编程灵活性,x 处理器中设置了 1 6 个m a r 寄存器( m a r 0 一m a r l 5 ) 。它的主要作用是在执行m e m o p 指令时初 始化存储流控制寄存器( m s c r ) ,因此其域和m s c r 域有部分相同。域设置如 表3 2 所示。 第1 3 页 国防

温馨提示

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

评论

0/150

提交评论