高速缓存一致性分析与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
!
收稿日期:"##$—#%—%"
2基金项目:
福建省教育厅科研项目&’(#"")"*高速缓存一致性分析与实现
沈汉鑫
摘要:在多处理机系统中,主存与各处理机私有+,-./之间及各私有+,-./之间存在数据不一致性。
对解决不一致性的方法0监听总线协议、基于目录的+,-./一致性协议、软件控制方法等都进行了详细的定性分析,并指出了各种方法的优缺点,供设计者参考;同时提出用软件和硬件相结合的方法,更能有效地解决+,-./的一致性问题。
关键词:+,-./;一致性;多处理机系统中图分类号:123%文献标识码:(文章编号:%)4"5#$$6&"##$*#35###!5#$龙岩师专学报’789:,;
7<
=7:>?,:
1/,-./9@
+7;;/>/
第""卷第3期
A7;B ""C7B 3
"##$年)月’8:/"##$
#
引言
存储器中的一致性问题,是伴随着存储器结构的概念而提出的,又一直是困扰着计算机设计者的一个重要问题,也是很多从事计算机体系结构研究的人们所共同面对的一个热门研究课题D %E "E 3F 。
特别是近年来出现的多处理系统,
超并行机系统,超大规模计算机系统等采用GHI
(GJ@K9JL8K/M H.,9/M I/N79?)—分布式共享存储器技术的大型系统中,都采用了多级+,-./的存储器层次结构
D "
E $F。
在+,-./的数据一
致性问题上,就更显突出了。
如在GHI 多处理机系统结构中,相邻层之间和同一层之内可能会出现数据不一致性。
通过存储器的共享数据,进程在同一算法下并行工作。
为了减少内存访问延时和内存总线的拥塞,要求+,-./与每个处理器相关。
这样同一数据在不同的+,-./中有多个副本。
当处理机对共享存储器某个单元在其本地+,-./中的拷贝要进行维护时,只要对该单元的本地拷贝进行修改,这就有可能引起存储器的全局不一致性等等。
所以如何在维护一致性情况下又保证处理机代价最小是这篇文章讨论的主要问题。
本文将对各种可能出现不一致的情况进行分析,并给出了各种维护策略下的保证一致性的可行方案。
%
+,-./的工作原理
在由主存和高速缓存组成的存储器层次结构中,主存是多处理机共享,而高速缓存是每个处理机私有的。
主存和高速缓存都以块为单位进行划分,以映射的方式来检索。
映射的方法有0直接映射、
组关联映射、区段关联映射和全相联映射。
在主存和高速缓存之间,是以块为单位进行搬送。
主存中保存有各高速缓存的副本,高速缓存的目录中,存放相应主存的块号及一些标志。
通过对目录的检索来寻找高速缓存中的数据。
当处理机发出一个访问主存地址时,如果包含这个地址在内的模块在高速缓存中,则称之为命中,该高速缓存可以使用。
如果不在高速缓存中,则称之为未命中&或+,-./
失效*,这时,必须把这个模块从主存搬到高速缓存中,叫做块搬送。
如果高速缓存已满,则必须按一定的置换算法挑出一个模块搬出高速缓存到主存,这叫置换。
置换算法有OPOQ
算法,=RS 算法等D TE )E 4F 。
"
高速缓存一致性问题的提出
高速缓存一致性是指要求同一个信息项与后继存储器层次上的副本是一致的。
如果在高速缓存中的一个字被修改过,那么在所有更高层上该字的副本也必须立即或最后加以修改。
对于多处理机系统的存储器层次结构,相邻层之间和同层之间可能会出现数据不一致性。
比如某个处理机修改了该处理机的-,-./的某个数据,则该数据块可能在别的处理机上有相同的拷贝,由于该数据块得到了最新的修改,所以如果其它相同的拷贝不及时得到修改的话,被其它处理机访问以后,可能出现错误。
这也就是所谓的+,-./不一致性。
我们用下图来直观的表示:
图%一致性定义图示
但是这种只对本地拷贝进行修改的方法就可能导致存储器的全局不一致性,也就是这些拷贝并不一致。
如何能够让处理器访问不会出错,并且维护一致性的代价最小是研究高速缓存一致性和同步机制的主要研究课题。
通常,产生不一致性的原因有三个:共享可写的数据,进程迁移和P U Q 传输。
下面分别讨论产生不一致性的各种可能的情况。
&%*数据共享的不一致性比如对于两台或者多台处理机2%,2",B B B 。
在更新数据以前,两个处理机的某个共享数据是6,当处理机2%修改数据65V 6W 后,如果采用维护层次存储器的两种策略:
%*写通过。
也称为写直达&X9JK/5K.978>.E Y1*,
即对于
万方数据
!"
存储器#$%对于$&!’())))*+!,的数据被修改后,在#$-!中相应数据也要修改。
图(不一致性图示
(,写回。
是指在存储器#$%对于$&!’())))*+!,的数被修改以后,对#$-!中相应数据要推迟到#$中的相应字被替换或从#$中被消除时才进行。
如果采用策略一,则处理机.(中的/值不变,但是主存储器中的/由于采用写通过策略被替换成/0。
因此出现下
面的情况(写通过1),可以看出两个21345(.!和.(中)的值分别为/0和/,显然不一致。
如果采用策略二,则由于采用写回策略,主存储器和.(
中的内容并没有修改(见图写回6),所以也会产生不一致性。
当高速缓存中修改过的数据被替换或变成无效时,主存储器内容才被更新。
上述两种情况下,/和/0的两个高速缓存的拷贝都出现了不一致性,因此,必须采取特别的措施来避免不一致性的产生。
(()进程迁移的不一致性
如果采用写回策略,包含共
享变量/的进程从处理机.!迁移到处理机.(时,将会出现不一致性;如果采用写通过策略时,进程从处理机.(迁移到处理机.!时,
也会出现不一致性。
(7)89:操作的不一致绕过高速缓存的89:操作也会引起不一致性问题。
当89:处理机将一个新的数据/;写入主存储器时,绕过采用写通过策略的高速缓存,则在共享缓存2!和共享存储器之间产生了不一致性。
当绕过高速缓存直接从共享存储器中输出数据时,采用写回策略的高速缓存也会产生不一致性。
例如以<#=方式传送数据,<#=控制器直
接对主存进行操作(读或写),但此时各个高速缓冲中可能有相应数据的复本,就会造成内存与高速缓存之间的不一致。
7
21345一致性问题的解决办法
解决21345一致性问题的方式,分为软件控制法和硬件控制法。
7)!
硬件控制法———监听总线协议
总线型多处理机系统
常采用监听总线协议。
这种方法的基本思想是>各处理机元素的21345控制器监视总线上其他各处理机和共享主存储器间的联络信号。
如果这个联络信号与自己有关,就开始处理。
例如,最简单的写直达方式中,某一个处理机要处理数据,就把写命令和地址等发到总线上。
其他处理机的21345控制器在监视的过程中,检查这些信息。
如果自己的21345中也存有该地址的模块,则把这个模块的标志位置成无效。
如果这些信息与自己无关,则仍旧处理自己的事情。
这种方法的方案也很多,大体上都是从以下几个方面来考虑>%!,写直达
还是写回控制,%(,是无效化还是广播方式控制,%7,是写回型还是21345之间传送型。
无效化的含义是指:几个处理机的21345中都装有相同的模块,当其中的一个处理机向自己的21345中写数时,为了数据的一致性,可以同时使其他有这个模块的处理机的21345中的该模块的标志位置成无效,这个模块再不能进行读写,称之为无效化。
广播方式又分成是写广播、读广播和总线消息广播。
写广播是指一个处理机写数时,同时写入所有的处理机的21345及主存中。
读广播是指当一个处理机要从共享主存向自己的21345中搬动数据时,也同时搬到所有的
21345中。
总线消息广播则是把总线上的控制消息送到各21345控制器中。
至于写回型还是21345间传送型的含义是>当某个处理机的21345发生不命中,进行置换时,把置换掉的模块写回主存。
然后是从共享主存储器把需要的模块搬到发生不命中的21345中,还是从其他有这个模块的21345中搬到发生不命中的21345里。
另外,21345控制器必须同时处理来自处理机的请求和来自总线的消息,可以充分发挥多端口存储器的作用,来解决双向访问问题。
以下我们用监听总线协议的原始写一次%直达,法来说明监听总线协议的过程。
这种方法是由2??@A1*在!BC7年
提出的。
首先他把总线上的总线请求消息分为以下几种:%!,读,当处理机读21345发生不命中时,向总线发出的读模块请求信号;
%(,替换读,当处理机写21345发生不命中时,向总线发出的要求替换的读信号;%7,写,在21345中变更过,替换时
要写回主存的写模块请求信号;%D ,部分写,进行部分写直达控制时,模块中部分内容%字节,字等,的写请求信号;%E ,无效化,为了控制数据的一致性,而使其他处理机的21345中的共享模块无效化的总线请求信号。
同时又把总线上的处理机
的21345分为请求21345
(发出总线请求一方)和监视21345(监视总线上的消息进行相应处理一方)。
在各21345目录中也设置了D 种状态:
无效9有效、共享和主存一致、独享一致和主存一致%只变更过一次,、独享不一致。
当21345中某个模块的状态是共享时,如果处理机要向该模块写,首先把自己模块的状态改为互斥一致,同时,向总线发出部分写请求,然后写入自己的21345及主存。
总线请求通过总线进行广播,监视21345收到此广播消息,使自己
21345中的共享模块无效化,
进入初始状态。
当21345中的模块在独享一致和独享不一致状态时,发生了处理机写操作,则只写在自己的21345中,
该模块的状态改为独享不一致。
当发生读不命中时,则向总线发出读请求,接收主存传来的模块%同时读到2.F 和21345中,,并在21345中置该模块的状态为共享。
这时,如果处于监视状态的21345控制,发现自己21345中该模块的状态是独享不一致,
则马上中断总线操作,等把这个模块写回主存后,才开始从主存向请求21345中搬运数据。
而监视21345则把此模块的状态由独享不一致改为共享。
如果处于监视过程中的监视21345,发现自己该模块的状态是独享一致时,则不必中断总线操作,只把自己的状态改为共享就可以了。
当发生写不命中时,处理机向总线发出替换读请求,并通过总线进行广播,如果监视21345,发现自己有这个模块,
万方数据
状态为共享,则改共享状态为无效状态。
如果状态为独享不一致,则和读不命中时一样,中断总线操作,等把此模块写回主存后,再进行传送。
传送完成后,该新搬进模块的状态改为独享不一致,因要写入新数到"#$%&中,故不用写直达。
从以上状态可以看出,这种写一次的方法有不足之处。
’!(总线上的操作太多,影响系统的效率。
’)(由于无效化增加了"#$%&的不命中,出现乒乓现象。
对’!(的解决办法有:一方面,在总线上设置一条“共享线”,对于读或者替换读的总线请求,有相同模块副本的监视"#$%&,触发设在总线上的“共享线”。
请求"#$%&在规定时间内如果没有查到这个线,就等传送完模块后,把该模块的状态置为“独享”,如果查到这根线,则置为“共享”。
这样就只对请求"#$%&进行写操作,总线也不必要通知其他"#$%&,从而减少了总线上的操作。
另一方面,在"#$%&间传送模块,即当监视"#$%&发现自己有不一致状态的模块与总线上请求"#$%&的模块地址一样时,自动经过总线,把自己的模块传给请求"#$%&,不需要更新主存。
这样就可减少主存与监视"#$%&的搬送时间,从而减少了总线操作。
这种方式中又可把模块状态分成共享一致和共享不一致两种。
总线读请求时,监视"#$%&的模块状态是共享不一致,请求"#$%&的状态是共享一致。
因为这时的监视"#$%&还要在替换时把模块写回到主存去。
而请求模块就不管这事了。
也有采用同一个总线操作同时向请求"#$%&和主存传送的办法。
其次,用改部分写为无效化的办法。
因为部分写需要两个总线周期,而无效化只需要一个总线周期。
对’)(的解决办法是把写无效方式改为写广播方式,即对共享数据采用写直达方式,即写入主存又写入其他"#$%&。
对非共享数据采用写回方式,或者对"#$%&采用写广播,而主存不变,这时任何一个"#$%&在替换时,都要采用写回方式。
另一种写无效化问题的方法是读广播方式。
即如果在总线上检出对共享模块的写入操作,就暂时使这个模块无效化。
以后如果又检出来自其他"#$%&的读请求,则其他暂时无效化的"#$%&和请求"#$%&一起接收来自总线上的模块数据’该数据可能是来自主存,也可能是来自其他"#$%&(。
同时再一次使自己"#$%&中的模块状态变为有效。
这样可以减少不命中。
监听协议用于总线连接的系统。
如果接在公共总线上的处理机有自己的私有高速缓存,那么可以用两种方法:写无效和写更新策略来保持高速缓存的一致性。
写无效策略是在本地高效缓存的数据块更新时使所有远程拷贝都无效。
写更新策略则是把新的数据块广播给含该数据块拷贝的所有高速缓存。
监听协议通过总线监听机制实现高速缓存和共享存储器之间的数据一致性。
监听高速缓存总线协议在基于总线的多处理机系统中很流行,因为它实现起来比较简单。
在*&+,&-.*/00&.1/多处理机和2334#-.56多处理机上已经实现了写无效策略。
除了78"541&93/多处理机之外,6&1:;<#3:23.:研究中心已经在71#=:-多处理机工作站上实现了另一种写更新协议。
71#=:-协议在替换操作之前不更新存储器,以便改进高速缓存之间传输的效率。
监听一致性协议用于连接型业务时,在多个总线上实现分割业务需要增加接口模块。
为了维护不同级上高速缓存拷贝的一致性,>43?:-对在单总线上使用的写无效协议进行了扩充。
同一级上的高速缓存拷贝的一致性可以采用前面所说的方法来实现。
如果采用写无效协议,那么块的大小对高速缓存的性能影响很大。
如果采用写更新协议,则块的大小就不会有太大的影响。
对于单处理机系统来说,总线流量和存储器访问时间主要受高速缓存命中率的影响。
当块的大小增加的时候,命中率会提高。
但是当块的大小增加到数据污染点时,命中率就开始降低。
对于较大的高速缓存,数据污染点将在块较大时出现。
对需要外延进程迁移或同步的系统来说,采用写无效协议将有较好的性能。
但是,当另一台处理机先于访问高速缓存启动无效命令的时候,可能会导致高速缓存缺失。
这种无效缺失将使总线流量增加,所以应该尽量避免出现这种情况。
大量模拟实验的结果已经说明在多处理机中总线流量将随块大小的增加而增加。
写无效也有利于同步原语的实现。
一般情况下,在小型多处理机系统中,高速缓存的无效拷贝平均数很小’!个或)个(。
写更新协议要求总线有广播功能。
该协议还能避免出现多个高速缓存之间共享数据的乒乓效应。
在采用写更新协议的多处理机系统中,减少数据共享将减少总线流量。
然而,写更新不能用于很长的成组写方式。
只有通过对大量程序路径的模拟’路径驱动模拟(才能揭示清楚高速缓存的行为、命中率、总线流量以及存储访问的有效时间。
@A)基于目录的"#$%&一致性协议
基于目录的协议用于网络连接的处理机系统B C D。
当某台处理机采用写无效协议正在更新一个变量并且其他的处理机也试图读该变量时,则会发生读缺失并可能导致总线的流量大大增加。
另外,写更新协议可以更新远程高速缓存中的数据,而其他处理机可能永远也不会使用这些数据。
因此,这些问题使采用总线来构造大型多处理机系统受到限制。
当用多级网络来构造有数百台处理机的大型系统时,就必须修改高速缓存的监听协议以适应网络的性能。
由于在多级网络上实现广播功能的代价很大,所以把一致性命令只发给存放块拷贝的高速缓存。
这样就产生了用于网络连接的多处理机系统的基于目录的协议。
由共享存储器的控制器来管理状态信息,当需要维持数据一致时,检索这些状态,直接使有关的"#$%&中的模块无效化,并在共享主存中建立一个目录,就叫目录法。
在多级网络中,用高速缓存目录存放有关高速缓存块拷贝驻留在哪里的信息,从而支持高速缓存一致性。
各种基于目录协议的不同之处主要是目录如何维护信息和存放什么信息。
E#-=’!FCG(提出了第一个目录方案,用一个中心目录存放所有高速缓存目录的拷贝。
中心目录能提供为保证一致性所需要的所有信息。
因此,它的容量非常大而且必须采用联想方法来检索,这和单个高速缓存的目录类似。
在大型处理机系统采用中心目录将存在出现冲突和检索时间长两个缺点。
万方数据
!!
#$%&’$(和)$*+,(’$(-!./01提出分布式目录方案。
每个存储器模块维护各自的目录,目录中记录着每个存储块的状态和当前的信息。
状态信息是本地的,但当前的信息指明哪些高速缓存才有该存储器块的拷贝。
不用广播的高速缓存一致性协议必须将所有高速缓存中每个共享数据块拷贝的地址存储起来。
这张高速缓存地址表,不管它是集中的还是分布的,都称为高速缓存目录。
每个数据块的目录项包含大量的指针,用来指明块拷贝的地址。
每个目录项还包含一个重写位,用来说明高速缓存允许把有关的数据块写入。
不同类型的目录协议可分为三类:全映射-2+3345*61目录、有限-3’5’,$71目录和链式-89*’%$71目录。
全映射目录存放与全局存储器中每个块有关的数据。
这样,系统中的每个高速缓存可以同时存储任何数据块的拷贝,即每个目录项包含:个指针,:是系统中处理机的数目。
有限目录与全映射目录不同之处是不管系统规模有多大,它的每个目录项含有固定数目的指针。
链式目录将目录分布都各个高速缓存,其余与全映射目录相同。
对三种高速缓存目录的讨论详见#9*’;$%,)’$37&,<=’9*(*和>?*(=*3 -!..@1文献。
AB A软件控制法
软件解决#*89$数据一致性问题的方法是以通过编译进行事先分析的办法为主流。
最简单的方法是:可写的共享数据都不放在#*89$中,但这样对很多数据来讲,就失去了#*89$的意义。
随着编译分析技术的发展,把程序分成计算单位,每个参数上都附上#*89$可与#*89$不可的标志。
编译识别这些标志,再给模块附上状态,由硬件来检查这些状态,进行一致性处理。
但这种方法给用户和编译带来麻烦。
另外还有循环分割法等,这些方法都是使#*89$整体无效化,但有效的数据也全被无效了。
于是又提出只把的确要无效化的模块-或参数1无效化。
把每一个参数的层次进一步细分为CD&,-写回1,E%F*3’7*,$-无效化1和)3+&9-两方1等的#*89$控制,与写回#*89$控制组合起来,进行更细的控制。
还有采用通过编译来分析共享存储器的读信息,注意这时#*89$中的数据的有效性,分别判断是从#*89$中读出,还是从共享主存中读出。
这种方法是用硬件来帮助由编译分析不出来的地方。
这样一来,使用#*89$中的数据的机会就增多了。
同样为帮助编译进行分析,而给每个参数都带上新编号,运行时对此进行管理,也需要复杂的硬件开销。
除了编译分析外,也可以用操作系统来保证#*89$数据一致性的办法。
例如设置临界区,通过同步信号来保证#*89$数据的一致性。
也有用GHI表象管理虚存那样控制数据的一致性。
J结束语
通过以上的分析可以看出:用硬件的方法不影响编译和用户程序,也不必要意识到#*89$的存在。
但硬件变复杂了,同时要增加通信开销和时间延迟。
软件的办法,编译负担太重。
由于程序的不确定性,分析的保守性,会造成不必要的#*89$不命中。
如果硬件变得简单些,各处理机可以单单进行无效化,通信开销就可不要了。
还可以不依赖处理机台数和通信方式。
而在硬件方法中,总线型多机系统用监视法好,而交叉开关和多级互连网络的多机系统中,还是目录法好。
到底作何取舍,每个设计者将根据自身的需求做一个合适的选择。
软件和硬件相结合的方法,可能是解决#*89$不一致性问题的更有效的方法。
目前,关于#*89$一致性的研究还在继续,主要方向有三个。
一是如何实现这些维护一致性的方法,因为一些方法迄今为止还停留在建议的阶段,要评价它们必须在实际实现中才是有效的。
二是由于并行处理领域还不成熟,大型多处理机的实际应用还很少,难以在实际情况下评价这些方法。
三是多处理机#*89$的设计空间很大,而且涉及复杂的平衡。
参考文献:
K!L M+*%?N M*D,O’F$;P*(;*(B HD8*,’D%#D%&’&,$%8Q 4>:$=R$5D(Q RD7$3*%7#*89$#D%&’&,$%8Q C(D,D8D3K S L B ETTT G(*%&*8,’D%&D%#D56+,$(U"@@@U J.-01B
K"L#V*33*8$U M G($5W3*Q,S:>5*(*3B G9$HD8*,’D% #D%&’&,$%8Q5$5D(Q5D7$3*%78*89$6(D,D8D3X P6$8’8*,’D% *%7F$(’8*,’D%K#L B G$89%’8*3N$6D(,@!4@!U#D56+,$(P8’$%8$ Y$6*(,5$%,U R’89’?*%G$89%D3D?’8*3Z%’F$(&’,QB"@@!B!/B K A L P,$%&,(D5B>P+(F$Q D2#*89$#D9$($%8$P89$5$&2D( R+3,’6(D8$&&D(&K S L B ETTT#D56+,$(,!..@U"A-[1X!"4"JB K J L Y*F’7RD&W$(?$(B R$5D(Q8D%&’&,$%8Q5D7$3&K S L B \6$(*,’%?PQ&,$5&N$F’$=U!..AU/-!1X!04"[B
K]L N P’5D%’,R^D(D=’,_B YQ%*5’8CD’%,$(>33D8*,’D%2D( P8*3*W3$#*89$#D9$($%8$Y’($8,D(’$&K S L B C(D8D2E%,3PQ56 D%P9*($7R$5D(Q R+3,’6(D8$&&’%?-EPPRR1,GD;QDU!..!B/"4 0!B
K[L<*’^=*%?B高等计算机系统结构——
—并行性、可扩展性、可编程性K R L B北京:清华大学出版社,!...B
K/L>%7($=P G*%$%W*+5B分布式操作系统K R L B陆丽娜,等,校译B北京:电子工业出版社,!...B
万方数据
!"
高速缓存一致性分析与实现
作者:沈汉鑫
作者单位:
刊名:
龙岩师专学报
英文刊名:JOURNAL OF LONGYAN TEACHERS COLLEGE
年,卷(期):2004,22(3)
被引用次数:1次
1.Guang R Gao.Vivek Sarkar Location Consistency - A New Memory Model and Cache Consistency Protocol 2000
2.C Wallace.G Tremblay.J N Amaral The Location Consistency memory model and cache protocol: Specication and verication 2001
3.Stenstrom A Survey of CacheCoherenceSchemes for Multiprocessors 1990(06)
4.David Mosberger Memory consistency models 1993
5.R Simoni.M Horowitz Dynamic Pointer Allocationfor Scalable Cache Coherence Directories 1991
6.Kai Hwang高等计算机系统结构--并行性、可扩展性、可编程性 1999
7.Andrew S Tanenbaum.陆丽娜分布式操作系统 1999
1.期刊论文黄安文.张民选.HUANG An-wen.ZHANG Min-xuan多核处理器Cache一致性协议关键技术研究-计算机工程与科学2009,31(z1)
多核处理器规模的不断扩大和核间通信机制的日益复杂,使得Cache一致性维护变得更加困难.本文从多核处理器Cache一致性问题的产生背景出发,分析监听协议、目录协议、Token协议和Hammer协议的实现机制以及在多核环境中的优缺点,分别从一致性协议与片上互连结构协同设计、面向低功耗应用的协议优化策略、Cache一致性协议验证及容错机制等角度考虑,对未来多核处理器Cache一致性协议设计的发展趋势和技术挑战进行详细分析与讨论.
2.学位论文庞征斌基于SMP的CC-NUMA类大规模系统中Cache一致性协议研究与实现2007
随着对高性能计算需求的日益增强,对高性能计算机的架构与实现提出了越来越高的要求。
提高系统的可编程性、可用性和系统综合效能,成为当前高性能计算机的设计目标。
分布共享存储多处理机系统以其方便的编程环境和较好的可扩展性而成为高性能计算机体系结构发展的主流,CC-NUMA(Cache Coherent
Non-UniformMemory Access)结构成为高性能计算领域实现高效能的重要体系结构。
构造大规模CC-NUMA系统受诸多因素制约,其中Cache一致性协议是限制系统可扩展性的关键因素,同时也对系统性能产生重要影响。
由于Cache一致性实现的复杂性,当前多数CC-NUMA系统规模较小,可扩展性有限。
许多高性能计算平台利用CC-NUMA计算机构建集群,但这样严重影响了大系统的可编程性。
因此为大规模CC-NUMA系统设计扩展性好、简洁高效的Cache一致性协议十分必要。
本论文主要工作是针对基于SMP(Symmetric Mulfi-Processors)结点的大规模CC-NUMA新系统——SCCMP(Scalable Cache Coherence Multi-Processors)的要求,分析其体系结构特点,设计了可扩展、低复杂性和高效的Cache一致性协议,设计了可扩展的目录结构,实现并优化了与Cache一致性处理紧密相关的目录访问,提供了Cache一致性的高效消息传递通信支持,最后验证了协议的正确性及高效性。
论文的具体工作和创新点如下:
(1)研究了SCCMP的构成层次和结构特点,设计和实现了可扩展、高效的混合Cache一致性协议——\HYSCC(HYbrid Scalable Cache Coherence)协议。
HYSCC协议通过融合监听协议特点的可扩展目录协议实现,有效支持了SCCMP系统内部两个不同层次的Cache一致性实现要求,降低了协议设计的复杂性,实现协议的简洁高效。
HYSCC协议通过多虚信道网络传输技术、非阻塞并发处理和精简协议消息类型等技术实现协议自身的高效性。
HYSCC协议增加一类专门处理SMP结点内部脏数据共享的命令类型和协议处理方法,降低了SMP结点因内部共享导致脏数据副本写回所带来的协议处理复杂性,大大简化了SCCMP结点控制器内部协议设计的复杂度。
(2)通过分析SCCMP系统中分布共享I/O访问对系统Cache一致性实现的影响,在HYSCC协议中设计和实现了支持I/O属性访问的Cache一致性命令类型和协议处理流程,设计和实现了I/O访问数据一致性的硬件维护机制,高效实现了全局共享I/O的并发访问。
(3)研究了目录结构的可扩展实现方法,设计了符合SCCMP系统特点的有限指针(Dir5NB)和组合粗向量CCV(Combined Coarse Vector)的混合表示
——Dir5NB+CCV的目录结构。
该目录结构兼具指针和位向量表示的优点,在不同共享度时采用与之对应的共享信息表示格式,合理地减少了目录存储的开销。
Dir5NB+CCV通过混合的多元化表示,在一定程度上降低了共享信息的非精确性,减少多余的失效开销,并且利于高速的硬件实现。
(4)为缓解因目录访问而带来的数据访问冲突,设计了双体并行访问存储器结构和双目录Cache访问结构,优化目录访问和处理。
SCCMP系统没有采用单独的目录存储器,利用双体并行访问存储器结构使得存储数据和对应目录的访问并行进行。
为缓解由此带来的存储器访问压力,设计和实现了与双体并行访问存储器对应的双目录Cache结构,引入目录Cache访问层次,利用程序访问的局部性对目录访问进行优化。
实验结果验证了双体并行访问存储器和双目录Cache结构对性能有大幅提升作用。
(5)为高效支持消息传递编程模型,研究了在SCCMP系统中有效实现共享存储和消息传递相结合的通信方法,提出了层次的一致性消息通信模型。
在SCCMP结点控制器一级提供消息传递通信接口,实现了无死锁的消息通信协议,实现了基于硬件的一致性块传输机制,支持高效的消息传递通信。
(6)基于FPGA实现完成了SCCMP结点控制器的逻辑设计和协议验证。
在四个结点的FPGA原型系统上进行NAS NPB等应用测试,验证了HYSCC协议的正确性。
用ASIC实现了验证后的SCCMP结点控制器,并在64结点的ASIC原型系统上进行了性能测试。
测试结果表明NAS NPB等应用运行正确;EP、SP、FT、MG等对存储带宽要求很高的应用在ASIC原型系统上呈现出良好的可扩展性;通信测试表明点点通信最大带宽在1.3GB/s以上,应用测试最大带宽在1.1GB/s以上,基于硬件一致性块传输实现使NPB MPI应用测试获得了更高的性能。
(7)本研究成果适用于基于SMP超结点的CC-NUMA类型的大规模系统,并已在某重点工程中得到成功应用。
3.期刊论文胡彧.柴华.HU Yu.CHAI Hua Cache一致性机制及其相关研究-科技情报开发与经济2008,18(17)
概述了Cache的一致性问题及目前的研究情况,并在现有的Cache一致性协议的基础上,提出了一种改进的Cache一致性协议以及该协议所应用的单芯片多处理器体系结构.
4.期刊论文刘广忠.肖钰.袁淑芳.LIU Guang-zhong.XIAO Yu.YUAN Shu-fang基于外部共享Cache的多处理机Cache一致性协议-河北工程技术高等专科学校学报2006(2)
基于外部共享Cache的多处理机Cache一致性协议实现了按需求传送数据的目的,从而避免了无效数据的盲目传送,只有处理机在发生读缺失或发现数据已被其。