一种CC-NUMA系统中结点控制芯片目录Cache的方法

文档序号:6367323阅读:225来源:国知局
专利名称:一种CC-NUMA系统中结点控制芯片目录Cache的方法
技术领域
本发明涉及计算机技术领域,具体地说是一种CC-NUMA (Cache CoherentNon-Uniform Memory Access)系统中结点控制芯片目录Cache的方法。
背景技术
随着对高性能计算的应用越来越广泛和深入,高性能计算机的架构和实现面临着越来越高的要求,CC-NUMA结构是其中一种重要的体系结构。构造大规模CC-NUMA系统受到诸多因素制约,其中Cache —致性协议是制约系统可扩展性的关键因素。为了解决这个问题,除了设计有效的协议之外,研究系统中可扩展的目录结构和高效的目录存储访问机制,能保证基于目录的Cache —致性协议的高效实现。 目录结构是影响CC-NUMA系统可扩展性的另一个重要因素。比如一些系统采用全映射的目录结构,这样的系统即便使用的是可扩展的一致性协议,但在目录结构的实现上却是不可扩展的。

发明内容
本发明的目的是提供一种CC-NUMA系统中结点控制芯片目录Cache的方法。本发明的目的是按以下方式实现的,在CC-NUMA系统中的结点控制芯片中引入Cache模块来实现和优化Cache —致性协议,不仅降低了存储器的访问压力,而且提高了结点控制器的处理效率,降低Cache —致性协议处理的开销,具体内容如下
设计一个目录Cache模块,完成并优化对存储器的访问控制在计算机体系结构的研究与设计中,经常会考虑到应用程序访存的局部性,其中,最近访问的数据会在不久后再次被访问,这种情况被称为时间局部性,基于这个特性,在基于目录的CC-NUMA系统中弓丨入Cache来缓存目录项,并采用最近最少使用替换算法,来降低目录访问的压力,缓解存储器访问的瓶颈效应,目录Cache用于缓存最近经常使用的目录条目,目的是减小目录的访问延迟,减少CC报文的协议处理时间,提高结点控制器对报文处理的吞吐量,所有进入结点控制器的CC 一致性报文,都必须访问目录Cache,以获得数据对应的目录,以便进行后续的协议处理,由于目录Cache的容量有限,不可能保存所有的目录条目,因此,当CC报文需要的目录条目在目录Cache中没有命中时,则需要访问外部存储器以获得目录,同时,为了提高并行访问的效率,采用非阻塞工作方式,即前一个未完成的访问操作不会阻塞后续访问的执行;而在目录Cache与存储体的映射方面,采用8路组相联的方式,从实际应用的角度来看,8路组相联在降低失效率方面的作用已经和全相联一样有效,能更好地减少系统的开销,实施步骤如下
目录Cache模块由4个目录Cache体、I个数据旁路模块以及I个控制与状态寄存器模块构成,其中
I) 4个目录Cache体是相互独立,对应4块存储地址,其中每个目录Cache体的设计都是完全相同的,容量为128KB,映射方式为8路组相联,每个Cache行大小为64B,即512b,这是由与存储控制器接口的宽度所决定的,共计256行,目录Cache体采用最近最少使用替换算法,提高芯片性能,并采用非阻塞工作方式,即前一个未完成的访问操作不会阻塞后续访问的执行;
2)为了增加系统的容错性,整个模块中还包含一个目录数据旁路模块,处于调试状态时,通过目录数据旁路模块的数据通路来传送数据,为了简化实现,减少逻辑资源的占用,采用阻塞工作方式,即所有的访问操作顺序执行,在前一个操作未完成之前,后面的操作不会流入,等待前面的操作完成;
3)为了增加可控性与可观察性,模块中包含一个控制与状态寄存器模块CSR,保存用户设置的控制信息与每个目录Cache体的错误状态信息;
在此基础上,目录Cache的操作包括两种一种是读目录,二种是存目录,下面分别介绍这两种操作的详细过程
对于一个读目录操作,根据是否命中,分为下面两种情况来处理
1)若命中,则直接从返回对应的4字节(32b)的数据;
2)若没有命中,则发出一个访存的读请求,载入一个Cache行的数据(512位),创建一个Cache行的目录项,而后根据请求报文的地址的最低位,确定相应的32位目录项,返回数据;
对于一个写目录操作,根据是否命中,以及是否需要替换的因素,分为下面三种情况来处理
1)若命中,则直接将请求报文中的32位目录数据写入,等待以后替换时才真正写入外部存储器;
2)若未命中,但Cache行中有空余项,则向存控发出一个读命令,载入一个Cache行的512位数据,创建一个Cache的目录项,而后根据请求报文的地址的最低位,将报文中的32位目录项写入Cache行的相应位置,等待以后替换时才能够真正写入外部存储器;
3)若未命中,且Cache行已满,则根据最近最少使用算法,选择一路替换出阵列,并将替换出的Cache行的数据写入对应的外部存储器;而后向存控发出一个读命令,载入一个Cache line的512位数据,仓ll建一个Cache的目录项;而后根据请求报文的地址的最低位,将报文中的32位目录项写入Cache行的相应位置;
需要指出的是,对于目录Cache体和数据旁路模块,上述操作的不同之处在于首先,在数据旁路模块中,采用先来先服务FCFS的策略,严格地按照顺序执行,不允许乱序,后面的操作要等待前面的操作完成后,才能被处理;其次,数据旁路模块中不存在多个目录Cache行,每次读写都必须从存储器中读取相对应的一个Cache行。引入了 Cache模块,允许远程数据进入处理器Cache,通过硬件维护各个Cache中数据的一致性。结点控制芯片与结点中的本地处理器相连,并通过路由器与其他结点控制芯片相连以构成大规模的系统,主要功能是处理器接口控制、Cache —致性控制以及互连网络接口控制。所引入的Cache模块的特征是采用8路组相联的映射方式,并采用最近最少使用(Least Recently Used,LRU)替换算法,以及非阻塞的流水工作方式,提高芯片性能。本发明的有益效果是对大规模CC-NUMA系统中的访存瓶颈提出了一种有效的解决方法,在明显地提高了系统的效率和可扩展性的同时,尽可能地降低了实现的复杂程度,这也决定本发明具有很高的实际应用价值和进一步的技术研究价值。
具体实施例方式设计实现一个目录Cache模块,完成并优化对存储器的访问控制。在计算机体系结构的研究与设计中,经常会考虑到应用程序访存的局部性。其中,最近访问的数据会在不久后再次被访问这被称为时间局部性,基于这个特性,在基于目录的CC-NUMA系统中引入Cache来缓存目录项,并采用最近最少使用(Least Recently Used, LRU)替换算法,可以很好地降低目录访问的压力,缓解存储器访问的瓶颈效应。目录Cache用于缓存最近经常使用的目录条目,目的是减小目录的访问延迟,减少CC报文的协议处理时 间,提高结点控制器对报文处理的吞吐量。所有进入结点控制器的CC 一致性报文都必须访问目录Cache,以获得数据对应的目录,以便进行后续的协议处理。由于目录Cache的容量有限,不可能保存所有的目录条目,因此,当CC报文需要的目录条目在目录Cache中没有命中时,则需要访问外部存储器以获得目录。同时,为了提高并行访问的效率,我们采用非阻塞(Non-Blocking)工作方式,即前一个未完成的访问操作不会阻塞后续访问的执行。而在目录Cache与存储体的映射方面,我们采用了 8路组相联(4组)的方式,从实际应用的角度来看,8路组相联在降低失效率方面的作用已经和全相联一样有效,而又尽可能地减少了系统的开销。
实施例本发明中的目录Cache模块由4个目录Cache体、I个数据旁路模块以及I个控制与状态寄存器模块构成。其中
I)4个目录Cache体是相互独立,对应4块存储地址,其中每个目录Cache体的设计都是完全相同的,容量为128KB,映射方式为8路组相联,每个Cache行大小为64B (BP512b,这是由与存储控制器接口的宽度所决定的),共计256行。目录Cache体采用最近最少使用(Least Recently Used, LRU)替换算法,提高芯片性能,并采用非阻塞(Non-Blocking)工作方式,即前一个未完成的访问操作不会阻塞后续访问的执行;
4)为了增加系统的容错性,整个模块中还包含一个目录数据旁路模块。处于调试状态时,可以通过目录数据旁路模块的数据通路来传送数据。为了简化实现,减少逻辑资源的占用,采用了阻塞(Blocking)工作方式,即所有的访问操作顺序执行,在前一个操作未完成之前,后面的操作不会流入,等待前面的操作完成;
5)为了增加可控性与可观察性,模块中包含一个控制与状态寄存器模块CSR,主要保存用户设置的控制信息与每个目录Cache体的错误状态信息等。在此基础上,目录Cache的操作主要包括两种一种是读目录,一种是存目录。下面分别介绍这两种操作的详细过程。对于一个读目录操作,根据是否命中,可以分为下面两种情况来处理
1)若命中,则直接从返回对应的4字节(32b)的数据;
2)若没有命中,则发出一个访存的读请求,载入一个Cache行的数据(512位),创建一个Cache行的目录项,而后根据请求报文的地址的最低位,确定相应的32位目录项,返回数据。
对于一个写目录操作,根据是否命中,以及是否需要替换等因素,可以分为下面三种情况来处理
1)若命中,则直接将请求报文中的32位目录数据写入,等待以后替换时才真正写入外部存储器;
2)若未命中,但Cache行中有空余项,则向存控发出一个读命令,载入一个Cache行的数据(512位),创建一个Cache的目录项,而后根据请求报文的地址的最低位,将报文中的32位目录项写入Cache行的相应位置,等待以后替换时才能够真正写入外部存储器;
3)若未命中,且Cache行已满,则根据最近最少使用(LRU)方法,选择一路替换出阵列,并将替换出的Cache行的数据写入对应的外部存储器;而后向存控发出一个读命令,载入一个Cache line的数据(512位),创建一个Cache的目录项;而后根据请求报文的地址的最低位,将报文中的32位目录项写入Cache行的相应位置。 需要指出的是,对于目录Cache体和数据旁路模块,上述操作的不同之处在于首先,在数据旁路模块中,采用先来先服务FCFS的策略,严格地按照顺序执行,不允许乱序,后面的操作要等待前面的操作完成后,才能被处理;其次,数据旁路模块中不存在多个目录Cache行,每次读写都必须从存储器中读取相对应的一个Cache行。除说明书所述的技术特征外,均为本专业技术人员的已知技术。
权利要求
1.ー种CC-NUMA系统中结点控制芯片目录Cache的方法,其特征在于在CC-NUMA系统中的结点控制芯片中引入Cache模块来实现和优化Cache —致性协议,不仅降低了存储器的访问压力,而且提高了结点控制器的处理效率,降低Cache —致性协议处理的开销,具体内容如下 设计ー个目录Cache模块,完成并优化对存储器的访问控制在计算机体系结构的研究与设计中,经常会考虑到应用程序访存的局部性,其中,最近访问的数据会在不久后再次被访问,这种情况被称为时间局部性,基于这个特性,在基于目录的CC-NUMA系统中引入Cache来缓存目录项,并采用最近最少使用替换算法,来降低目录访问的压カ,缓解存储器访问的瓶颈效应,目录Cache用于缓存最近经常使用的目录条目,目的是减小目录的访问延迟,減少CC报文的协议处理时间,提高结点控制器对报文处理的呑吐量,所有进入结点控制器的CC 一致性报文,都必须访问目录Cache,以获得数据对应的目录,以便进行后续的协议处理,由于目录Cache的容量有限,不可能保存所有的目录条目,因此,当CC报文需要的目录条目在目录Cache中没有命中吋,则需要访问外部存储器以获得目录,同吋,为了提高并行访问的效率,采用非阻塞工作方式,即前ー个未完成的访问操作不会阻塞后续访问的执行;而在目录Cache与存储体的映射方面,采用8路组相联的方式,从实际应用的角度来看,8路组相联在降低失效率方面的作用已经和全相联ー样有效,能更好地減少系统的开销,实施步骤如下 目录Cache模块由4个目录Cache体、I个数据旁路模块以及I个控制与状态寄存器模块构成,其中 I)4个目录Cache体是相互独立,对应4块存储地址,其中每个目录Cache体的设计都是完全相同的,容量为128KB,映射方式为8路组相联,每个Cache行大小为64B,即512b,这是由与存储控制器接ロ的宽度所決定的,共计256行,目录Cache体采用最近最少使用替换算法,提高芯片性能,并采用非阻塞工作方式,即前ー个未完成的访问操作不会阻塞后续访问的执行; 为了增加系统的容错性,整个模块中还包含一个目录数据旁路模块,处于调试状态时,通过目录数据旁路模块的数据通路来传送数据,为了简化实现,減少逻辑资源的占用,采用阻塞工作方式,即所有的访问操作顺序执行,在前ー个操作未完成之前,后面的操作不会流入,等待前面的操作完成; 为了增加可控性与可观察性,模块中包含一个控制与状态寄存器模块CSR,保存用户设置的控制信息与每个目录Cache体的错误状态信息; 在此基础上,目录Cache的操作包括两种ー种是读目录,ニ种是存目录,下面分别介绍这两种操作的详细过程 对于ー个读目录操作,根据是否命中,分为下面两种情况来处理 1)若命中,则直接从返回对应的4字节(32b)的数据; 2)若没有命中,则发出一个访存的读请求,载入ー个Cache行的数据,创建ー个Cache行的目录项,而后根据请求报文的地址的最低位,确定相应的32位目录项,返回数据; 对于ー个写目录操作,根据是否命中,以及是否需要替换的因素,分为下面三种情况来处理 I)若命中,则直接将请求报文中的32位目录数据写入,等待以后替换时才真正写入外部存储器; 2)若未命中,但Cache行中有空余项,则向存控发出ー个读命令,载入ー个Cache行的数据,创建ー个Cache的目录项,而后根据请求报文的地址的最低位,将报文中的32位目录项写入Cache行的相应位置,等待以后替换时才能够真正写入外部存储器; 3)若未命中,且Cache行已满,则根据最近最少使用算法,选择一路替换出阵列,并将替换出的Cache行的数据写入对应的外部存储器;而后向存控发出ー个读命令,载入ー个Cache line的数据,创建ー个Cache的目录项;而后根据请求报文的地址的最低位,将报文中的32位目录项写入Cache行的相应位置; 需要指出的是,对于目录Cache体和数据旁路模块,上述操作的不同之处在于首先,在数据旁路模块中,采用先来先服务FCFS的策略,严格地按照顺序执行,不允许乱序,后面的操作要等待前面的操作完成后,才能被处理;其次,数据旁路模块中不存在多个目录Cache行,每次读写都必须从存储器中读取相对应的ー个Cache行。
2.根据权利要求I所述的方法,其特征在于引入了Cache模块,允许远程数据进入处理器Cache,通过硬件维护各个Cache中数据的一致性。
3.根据权利要求I所述的方法,其特征在于结点控制芯片与结点中的本地处理器相连,并通过路由器与其他结点控制芯片相连以构成大規模的系统,主要功能是处理器接ロ控制、Cache —致性控制以及互连网络接ロ控制。
4.根据权利要求I所述的方法,其特征在于所引入的Cache模块的特征是采用8路组相联的映射方式,并采用最近最少使用替换算法,以及非阻塞的流水工作方式,提高芯片性倉^:。
全文摘要
本发明提供一种CC-NUMA系统中结点控制芯片目录Cache的方法,设计实现一个目录Cache模块,完成并优化对存储器的访问控制。在计算机体系结构的研究与设计中,经常会考虑到应用程序访存的局部性。其中,最近访问的数据会在不久后再次被访问这被称为时间局部性,基于这个特性,在基于目录的CC-NUMA系统中引入Cache来缓存目录项,并采用最近最少使用(LeastRecentlyUsed,LRU)替换算法,可以很好地降低目录访问的压力,缓解存储器访问的瓶颈效应。
文档编号G06F17/30GK102708190SQ20121014922
公开日2012年10月3日 申请日期2012年5月15日 优先权日2012年5月15日
发明者李仁刚, 李拓, 王恩东, 秦济龙, 胡雷钧 申请人:浪潮电子信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1