一种多处理器缓存一致性处理方法及装置的制造方法

文档序号:9921918阅读:487来源:国知局
一种多处理器缓存一致性处理方法及装置的制造方法
【技术领域】
[0001] 本发明涉及电子技术领域,尤其涉及一种多处理器缓存一致性处理方法及装置。
【背景技术】
[0002] 半导体工艺的进步使得单位面积的集成电路上晶体管的数量在2013年以后仍 能以三年一番的速度进行增长。为充分利用工艺进步而增加的晶体管,处理器生产商均 从单核处理器设计转向多核/众核处理器设计,从而通过挖掘线程级并行(Thread Level Parallelism,TLP)来提高系统的整体性能。与此同时,制造商还将多个处理器芯片集成 在一个系统上以取得更高的性能,这种设计的系统被称为多处理器系统。例如:目前先进 的处理器芯片可以含有12个处理器,而且4块这样的处理器芯片可以集成在一起,最后形 成一个48核的服务器级运算系统。多核、众核以及多处理器结构统称为多处理体系结构 (multi-processing architecture)〇
[0003] 虽然多处理体系结构使得计算机系统的性能得到了进一步的提升,该设计也面 临着许多单核处理器设计中不曾遇到的问题,其中之一就是缓存一致性的设计,当今的计 算机系统经常由多个处理器组成,并且一个处理器中也存在多个处理器。让处理器协同 工作,其正确性成为了首要的问题。该问题可细分为两个子问题,即:存储一致性(memory consistency)和缓存一致性(cache coherence) 〇
[0004] 存储一致性又称为存储一致性模型,它定义了在共享存储中被允许地读写操作的 行为和顺序。在所有存储一致性模型中,最严格也是最直接的一致性模型被称为顺序一致 性模型(Sequential Consistency,SC)。而在目前主通用的多核/多处理器中(如x86, x8664和SPARC),采用的顺序一致性的一种近似模型全存储序(Total Store 0rder,TS0)。
[0005] 顺序一致性模型和TS0模型的引入,极大地方便了程序员的编程操作。目前通用 的处理器大多实现了 TS0模型。但是,这两种模型对高速缓存的设计提出了一些新的要求, 即要求满足缓存一致性(cache coherence)。缓存一致性要求一个计算机系统内的多个缓 存满足"单写者多读者"的要求。即在任何时间,对于任何数据,若要对其进行写操作,只有 进行写操作的处理器可以缓存该数据;但是,若要对其进行读操作,多个处理器可以同时缓 存该数据。在通用计算机系统中,正确高效的缓存一致性设计是一个非常重要的课题。
[0006] 随着系统内集成的处理器数的增加,如何更高效地维护各个处理器之间的缓存一 致性成为了学术界和工业界共同关心的一个课题。维护缓存一致性有两种基本的协议方 式一侦听协议(snoop)和目录协议(directory)。由于目录协议在扩展性方面优于侦听协 议,其经常被使用在大规模/超大规模系统中。
[0007] 图1给出了一个采用目录协议系统的逻辑结构,该系统有一个目录硬件,通过网 络同所有的处理器缓存相连接,所有对一致性状态的更新操作都必须经过目录硬件。当处 理器A需要对缓存块Μ的进行读操作,首先处理器A会发送一个读请求给目录硬件;目录硬 件查找发现处理器B的缓存内有这个数据,因此会发消息给处理器B的缓存;处理器B的缓 存接收到消息后,会把数据发送给处理器A的缓存。
[0008] 现有技术中提供一种稀疏目录(sparsedirectory)方案解决缓存一致非一致性 内存访问(Cache Coherent Non-Uniform Memory Access,ccNUMA)系统中缓存一致性问 题。如图2所示,稀疏目录在处理器系统的片内以组相联的形式存储目录信息,由于其组织 形式很接近高速缓存的结构,所以又称被为目录缓存(directory cache)。
[0009] 同样是处理器A需要对缓存块Μ进行读操作,首先处理器A会发送一个读请求给 稀疏目录A ;目录查找发现处理器B的缓存内有这个数据,因此会发消息给处理器B的缓 存;处理器B的缓存接收到消息后,会把数据发送给处理器A的缓存。
[0010] 稀疏目录可以采用很低的相联度,因此其访问能耗较低。但是由于稀疏目录是组 相联设计,因此其目录组(directory sets)之间的访问存在不平衡性,从而造成某些访 问压力大的组形成目录冲突(directory conflicts)。目录冲突需要将一些目录块替换 (replace)出稀疏目录,为维护系统的一致性,需要将被替换目录块对应的缓存数据无效掉 (invalidate)。此外,系统还需要专门拿出一定的存储空间保存Cache -致性信息,该方法 中的Directory Cache占用了大量的片上存储面积。

【发明内容】

[0011] 本发明提供一种多处理器缓存一致性处理方法及装置,本发明所提供的方法和装 置解决现有多处理器系统中维护系统的一致性的方法浪费大量的片上存储面积的问题。
[0012] 一方面,本发明提供一种多处理器缓存一致性处理方法,该方法应用于多处理器 系统中,该多处理器系统包括多个处理器、最后一级缓存LLC、内存和目录缓存,其中,最后 一级缓存分别和多个处理器、内存和目录缓存相连,该方法包括:
[0013] 最后一级缓存接收到所述多处理器中的第一处理器对一缓存块进行读操作的第 一请求后,从所述内存中读取所述缓存块对应的第一页描述符;
[0014] 根据所述第一页描述符确定所述第一处理器为第一个访问所述缓存块的处理器, 则添加页标签到所述第一页描述符中得到第二页描述符;所述页标签标示第一处理器为第 一次访问所述缓存块的处理器。
[0015] 结合第一方面,在第一种可能的实现方式中,该方法进一步包括:
[0016] 当接收到第二处理器对所述缓存块进行读操作的第二请求,根据所述第二请求获 取所述第二页描述符;
[0017] 对所述第二页描述符中的页标签进行更新,得到第三页描述符;更新后的页标签 标示第一处理器为第一次访问所述缓存块的处理器,并且该缓存块被多个处理器操作;
[0018] 发送目录分配消息到目录缓存,使得目录缓存分配目录项,所述目录项用于记录 访问所述缓存块的处理器。
[0019] 结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述得到 第三页描述符之后,进一步包括:
[0020] 存储所述第三页描述符,并将所述第三页描述符发送到所述第一处理器和所述第 二处理器存储。
[0021] 结合第一方面,或者第一方面的第一至二种可能的实现方式,在第三种可能的实 现方式中,所述页标签包括:访问记录FA用于标示是否有处理器访问过缓存块;处理器标 识用于标示第一次访问缓存块的处理器的唯一标识;一致性范围SH用于记录缓存块是在 一个还是多个处理器之间维护一致性。
[0022] 结合第一方面,或者第一方面的第一至三种可能的实现方式,在第三种可能的实 现方式中,对所述缓存块对应的页描述符进行更新后,该方法进一步将更新后的页描述符 写回到所述内存中。
[0023] 第二方面,本发明还提供一种多处理器缓存一致性处理装置,该装置应用于多处 理器系统的最后一级缓存中,该多处理器系统包括多个处理器、最后一级缓存、内存和目录 缓存,其中,最后一级缓存分别和多个处理器、内存和目录缓存相连,该装置包括:
[0024] 读取单元,用于接收到所述多处理器中的第一处理器对一缓存块进行读操作的第 一请求后,从所述内存中读取所述缓存块对应的第一页描述符;
[0025] 更新单元,用于根据所述第一页描述符确定所述第一处理器为第一个访问所述缓 存块的处理器,则添加页标签到所述第一页描述符中得到第二页描述符;所述页标签标示 第一处理器为第一次访问所述缓存块的处理器。
[0026] 结合第二方面,在第一种可能的实现方式中,所述更新单元还用于当接收到第二 处理器对所述缓存块进行读操作的第二请求,根据所述第二请求获取所述第二页描述符; 对所述第二页描述符中的页标签进行更新,得到第三页描述符;更新后的页标签标示第一 处理器为第一次访问所述缓存块的处理器,并且该缓存块被多个处理器操作;
[0027] 则该装置还包括:
[0028] 目录缓存请求单元,用于发送目录分配消息到目录缓存,使得目录缓存分配目录 项,所述目录项用于记录访问所述缓存块的处理器。
[0029] 结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,该装置还 包括:
[0030] 同步单元,用于在得到第三页描述符之后,存储所述第三页描述符,并将所述第三 页描述符发送到所述第一处理器和所述第二处理器存储。
[0031] 结合第一方面第一种可能的实现方式或者第二种可能的实现方式,在第三种可能 的实现方式中,所述更新单元用于对所述页标签中包含的访问记录FA、处理器标识和一致 性范围SH进行更新,用于标示是否有处理器访问过缓存块;处理器标识用于标示第一次访 问缓存块的处理器的唯一标识;一致性范围SH用于记录缓存块是在一个还是
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1