|
龙芯众众核体系结构对clik语言的硬件支持及评测研究
集成电路工艺技术的进步使得将来的微处理器能够集成几百个甚至上千个处理核心. 近年来, 众核体系结构因其大规模并行处理能力得到了产业界[ 1 ? 3]和学术界[ 4 ? 7]的广泛关注. 前人基于众核结构的工作表明在科学计算和一些非规则计算领域, 经过手工程序优化能得到很高的性能. 我们之前的理论分析结果[ 8]也表明众核体系结构对局部性好的稠密矩阵运算有着巨大的潜力. 尽管如此, 如何编程众核体系结构仍然是一个没有很好解决的问题.在传统的共享存储体系结构中, 如硬件c c NUMA系统、 SMP系统以及多核系统中, 多线程编程模型具有十分重要的地位, 并且在操作系统内核、 数据库管理系统和网络中间件等基础软件领域获得了广泛应用. 多线程编程以顺序一致性( s e q u e n t i a lc o n s i s ?t e n c y) [ 9 ? 1 0]存储模型为基础, 通常需要基于目录或总线的集中式高速缓存一致性协议[ 1 1]的硬件支持. 然而传统协议扩展性在众核上实现代价高昂: 首先现目录/总线协议的语义都要求每当一个写操作执
行时, 都要主动将多个旧的共享版本置为无效, 当共享的处理节点很多时且互联网络拓扑结构比较复杂时, 这一操作的开销很大; 其次就目录协议而言, 目录存储本身会带来很大开销, 此外协议的状态机维护代价也会随着处理节点增加而增长. 基于此, 我们认为将来的众核体系结构应当采用扩展性更好的硬件机制来解决高速缓存的一致性问题. 一种可扩展地支持多线程编程的方法是采用弱一致性模型, 如域一致性( s c o p ec o n s i s t e n c y) [ 1 2], 但编程语义也随之改变, 程序员需要手工标示出所有对共享数据的
访问以保证正确的值传播[ 1 3], 这在一定程度上失去了顺序一致性模型下编程的直观性, 给程序员带来了额外编程负担.本文基于域一致性模型, 研究在众核体系结构
上对C i l k编程模型的硬件支持. 以域一致性模型为基础是为了实现可扩展高速缓存一致性协议( 第2节) . C i l k[ 1 4 ? 1 6]是 M I T的L e i s e r s o n等人提出的一种多线程编程语言, 是 C的精简扩展. 选择在众核处
理器支持C i l k语言的原因在于:
( 1) 任何一个C i l k程序都有一个串行语义, 程序员编写C i l k程序和串
行编程类似, 一些串行程序很容易就能并行化成C i l k程序;
( 2)程序员在编程时只需要把计算中存在的并行性表达清楚, 无需关心底层系统相关的调度、 复杂均衡和局部性等问题, 所有关于并行性的挖
掘及系统相关的工作由C i l kr u n t i m e完成;
( 3) C i l kr u n t i m e的基于任务窃取的随机调度( r a n d o mw o r ks t e a l i n gs c h e d u l i n g) 策略对C i l k程序能获得理论上优化的性能保证, 这对于性能分析和预测具有重要意义.
本文工作主要分为两部分. 首先是对C i l kr u n t ?i m e的支持. 为此, 我们提出一种以数据为中心维护高速缓存一致性的方法, 目的是改善域一致性模型
的可编程性. 以此为基础, 我们顺利实现了基于顺序一致性的多线程C i l kr u n t i m e ( V e r s i o n5 . 4 . 6) 到基于域一致性的众核结构的移植. 其次是对 DAG 存储一致性模型的硬件支持, 目的是提供程序员友好C i l k编程环境. 需要说明的是, 基于域一致性的多线程编程模型只对C i l kr u n t i m e可见, 对应用程序员而言是不可见的, 应用程序员只需要用C i l k语言编
写并行程序.
2 godson-T 众核体系结构
2. 1 体系结构模型
本文的工作基于godson-T TV 3的多线程体系结构.godson-T是中国科学院计算技术研究所目前正在研究中的一个面向较大规模并行处理的众核体系结构[ 7]. 如图1所示, 6 4个处理器核组织成为一个8×8的二维 ME SH 结构. 四周分布着1 6个按照地址散列( i n t e r l e a v e d) 的二级缓存体( L 2C a c h eB a n k) , 4个为一组, 每一组对应一个片上的内存控制器. 芯片内集成了4个I / O控制器和外设交互.处理器核的基本结构如图1的右半部分所示是一种简单的静态双发射顺序执行的结构. 图中F e t c h&D e c o d e模块负责取指和译码; R F s模块负责依赖分析, 寄存器堆访问和指令发射, 最多每拍可以发射两条指令到功能部件中, 功能部件里只
有访 存 部 件 需 要 和 R o u t e r和 C a c h e交互. 图中
C o h e r e n c eV e c t o r逻辑是本文为了改善域一致性编
程性增加的逻辑, 在第3节详细讨论. 目前每个处理器核支持用户态 M I P S指令集.
godson-T片上网络的选路机制是静态X -Y 路由, 其具体工作方式如下: 若处理器核(x,y) 需要发送一个消息到处理器核(m,n) , 那么该消息首先沿着垂直方向( X 轴) 逐跳送至处理器核(x,y) , 然后再沿水平方向( Y 轴) 逐跳送到目的地( m, n) . 片上
消息的路由机制对片上网络的带宽利用率有很大影响( 第6节) .
godson-T V 3支持域一致性模型, 由于 L 2缓存所有核共享, 因此需要维护的是 L 1缓存之间的一致性. L 1缓存对于临界区外的访存操作而言是写回( w r i t eb a c k) 策略, 硬件不维护临界区外数据访问的一致性. 对于临界区内的访存操作需要分取数
( L o a d) 和存数( S t o r e ) 操作分别处理. |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|