高速缓存的一致性状态预置方法及系统与流程

文档序号:13685684阅读:176来源:国知局
高速缓存的一致性状态预置方法及系统与流程

本发明涉及高速缓存技术领域,特别涉及一种高速缓存的一致性状态预置方法及系统。



背景技术:

由于单芯片日益增长的容量允许设计者将多个处理器设计到一块单独的芯片上,从而称这种方法为单芯片多处理器。在这样的设计中多处理器需要共享一些资源和部分私有资源。而对于共享高速缓存这部分中,从而引入了多核处理器高速缓存一致性协议。高速缓存一致性协议关键是跟踪所有共享数据块的状态。

在多处理器系统即在多个允许缓冲共享数据的系统中,同一个主存单元的数据可能在多个高速缓存中都有备份。高速缓存一致性主要是更加有效的维护同一个主存单元的多个数据备份一致性。即如何将多个数据备份保持最新的数据,从而避免多个高速缓存带来数据不同步问题。

然而高速缓存一致性验证时候由于高速缓存起始的状态都只是无效态,在现有的缓存一致性随机验证时候,随机方案就是以多核验证平台通过随机本地核指令和对应的地址和远程核指令和对应的地址更改本地高速缓存的状态。远程核访问本地核缓存中的数据需要通过外部总线,因此在访问本地核缓存数据导致更改本地核高速缓存的状态跳转需要耗用的仿真时间比较久。

在高速缓存一致性的验证中,由于本地核高速缓存中状态改变是通过本地核指令改变本地核高速缓存或者远程核访问本地核中高速缓存中的数据改变。

在本地核更改高速缓存状态需要通过取指、指令译码、访存指令派遣、访存指令发射、访存指令执行、判定访存指令对高速缓存的命中\缺失等步骤后,才可以更改本地核高速缓存的状态。而整个流程在需要耗费的仿真时间比较长。

在远程核访问本地核高速缓存中的数据时,可以引起本地核高速缓存中状态改变,引起的改变成为远程核改变本地核高速缓存状态。而远程核的访问需要经过外部监听总线桥进行。在通过外部监听总线访问本地核时,在通过远程核向监听总线发起请求,到外部监听总线反馈信息中所要耗时的仿真时间周期较长。

由于本地核高速缓存中的状态的跳转可能需要多次本地核访存指令和远程核访问本地核中高速缓存数据后才能满足状态的跳转。从而导致要达某一高速缓存状态需要耗去较长的仿真时间。

在缓存一致性的验证过程中,在验证平台启动过程前缓存一致性的状态为i。对应缓存一致性状情况下:

情景1:

本地核缓存一致性状态由共享态跳转到修改态。本地核需要发送一条读指令并且是读缺失使本地核缓存状态由无效态跳转到共享态,然后本地核还需要发送一条与读指令相同物理地址的写指令使本地核由共享态跳转到修改态。

情景2:

本地核缓存一致性状态由所有者态跳转到修改态。首先是本地核需要发送一条写指令并且是写缺失使本地核缓存状态由无效态跳转到修改态,之后远程核启动,并且发送一条与本地核地址相同的读指令且读缺失,使其通过总线访问本地核缓存,使本地核缓存状态由修改态跳转到所有者态。而后本地核再发送一条相同物理地址的写指令,才能使本地核的状态由所有者态跳转到修改态。



技术实现要素:

本发明旨在至少在一定程度上解决上述相关技术中的技术问题之一。

为此,本发明的一个目的在于提出一种高速缓存的一致性状态预置方法。该方法节省了指令发送的条数并降低了状态跳转的时间。

本发明的另一个目的在于提出一种高速缓存的一致性状态预置系统。

为了实现上述目的,本发明的一方面公开了一种高速缓存的一致性状态预置方法,该方法包括以下步骤:获取随机物理地址映射至所述高速缓存中,其中,所述物理地址包括缓存标记位和缓存索引位;获取映射到所述高速缓存中随机的物理地址对应的一致性状态,其中,所述物理地址的一致性状态位包含多种状态,而对应物理地址的一致性状态位中只允许是一种状态;将所述物理地址和所述一致性状态写入所述高速缓存中。

根据本发明的高速缓存的一致性状态预置方法,通过高速缓存的大小随机出需要写入高速缓存中的物理地址数量,随机出需要映射到高速缓存中的物理地址和随机出对应物理地址的一致性状态位,节省了指令发射的条数和降低一致性状态跳转的时间。

另外,根据本发明上述实施例的高速缓存的一致性状态预置方法还可以具有如下附加的技术特征:

进一步地,还包括:对所述高速缓存的一致性状态进行验证。

进一步地,所述对所述高速缓存的一致性状态进行验证的步骤包括:如果所述高速缓存的一致性状态由第一状态跳转至目标状态,则将所述高速缓存的一致性状态预置为所述第一状态;并根据跳转至所述目标状态对应的指令,由本地核向所述高速缓存发射相应的指令,以将所述高速缓存的一致性状态直接由所述第一状态跳转至所述目标状态。

进一步地,所述第一状态为共享态,所述目标状态为修改态,则将所述高速缓存的一致性状态预置为所述共享态,并发送写指令且写命中指令以将所述高速缓存的一致性状态由所述共享态跳转至所述修改态。

进一步地,所述第一状态为所有者态,所述目标状态为修改态,则将所述高速缓存的一致性状态预置为所述所有者态,并发送写指令且写命中指令以将所述高速缓存的一致性状态由所述所有者态跳转至所述修改态。

本发明的另一方面公开了一种高速缓存的一致性状态预置系统,包括:获取模块,用于获取随机物理地址映射至所述高速缓存中,其中,所述物理地址包括缓存标记位和缓存索引位,并获取映射到所述高速缓存中随机的物理地址对应的一致性状态,其中,所述物理地址的一致性状态位包含多种状态,而对应物理地址的一致性状态位中只允许是一种状态;写入模块,用于将所述物理地址和所述一致性状态写入所述高速缓存中。

根据本发明的高速缓存的一致性状态预置系统,通过高速缓存的大小随机出需要写入高速缓存中的物理地址数量,随机出需要映射到高速缓存中的物理地址和随机出对应物理地址的一致性状态位,节省了指令发射的条数和降低一致性状态跳转的时间。

另外,根据本发明上述实施例的高速缓存的一致性状态预置系统还可以具有如下附加的技术特征:

进一步地,还包括:一致性验证模块,用于在所述高速缓存的一致性状态由第一状态跳转至目标状态时,将所述高速缓存的一致性状态预置为所述第一状态,并根据跳转至所述目标状态对应的指令,由本地核向所述高速缓存发射对应的指令,以将所述高速缓存的一致性状态直接由所述第一状态跳转至所述目标状态。

进一步地,所述一致性验证模块用于:

所述第一状态为共享态,所述目标状态为修改态,则将所述高速缓存的一致性状态预置为所述共享态,并发送写指令且写命中指令以将所述高速缓存的一致性状态由所述共享态跳转至所述修改态。

进一步地,所述一致性验证模块用于:所述第一状态为所有者态,所述目标状态为修改态,则将所述高速缓存的一致性状态预置为所述所有者态,并发送写指令且写命中指令以将所述高速缓存的一致性状态由所述所有者态跳转至所述修改态。

本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:

图1是根据本发明一个实施例的高速缓存的一致性状态预置方法的流程图;

图2是根据本发明另一个实施例的高速缓存的一致性状态预置方法的流程图;以及

图3是根据本发明一个实施例的高速缓存的一致性状态预置系统的结构图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。

以下结合附图描述根据本发明实施例的高速缓存的一致性状态预置方法及系统。

图1是根据本发明一个实施例的高速缓存的一致性状态预置方法的流程图。

如图1所示,根据本发明一个实施例的高速缓存的一致性状态预置方法,其中在多处理器高速缓存中,一致性状态分为五个状态,分别为无效(invalid)、共享(shared)、所有者(owned)、独占(exclusive)、修改(modified),结合图2所示,该方法包括以下步骤:

s110:获取随机物理地址映射至所述高速缓存中,其中,物理地址包括缓存标记位和缓存索引位,在高速缓存中每个不同的标记位包含有这五个一致性状态。

s120:获取映射到所述高速缓存中随机的物理地址对应的一致性状态,其中,所述物理地址的一致性状态位包含多种状态,而对应物理地址的一致性状态位中只允许是一种状态。

s130:将物理地址和一致性状态写入高速缓存中。

该方法还包括:对高速缓存的一致性状态进行验证,该步骤包括:如果高速缓存的一致性状态由第一状态跳转至目标状态,则将高速缓存的一致性状态预置为第一状态,并根据跳转至目标状态对应的指令,由本地核向高速缓存发射对应的指令,以将高速缓存的一致性状态直接由第一状态跳转至目标状态,这样减少为验证一致性的状态跳转的仿真时间,可以更快的出现所需要的一致性状态的跳转,从而可以提高仿真验证的效率。

在一些实施例中,第一状态为共享态,目标状态为修改态,则将高速缓存的一致性状态预置为共享态,并发送写指令且写命中指令以将高速缓存的一致性状态由共享态跳转至修改态,举例来说,本地核缓存一致性状态由s(共享)态跳转到m(修改)态。将本地核状态预设为s态后,本地核需要发送一条写指令并且是写命中就可以使本地核缓存状态由s态跳转到m态。

在一些实施例中,第一状态为所有者态,目标状态为修改态,则将高速缓存的一致性状态预置为所有者态,并发送写指令且写命中指令以将高速缓存的一致性状态由所有者态跳转至修改态。举例来说,本地核缓存一致性状态由o(所有者)态跳转到m(修改)态。将本地核状态预设为o态后,本地核需要发送一条写指令并且是写命中就可以使本地核缓存状态由o态跳转到m态。

值得注意的是,上述实施例只是在高速缓存一致性状态转换中的两个场景。而这样的场景情况比较多,也不分别讲述分析。

根据本发明的高速缓存的一致性状态预置方法,通过高速缓存的大小随机出需要写入高速缓存中的物理地址数量,随机出需要映射到高速缓存中的物理地址和随机出对应物理地址的一致性状态位,节省了指令发射的条数和降低一致性状态跳转的时间。

图3是根据本发明一个实施例的高速缓存的一致性状态预置系统的结构图。

如图3所示,高速缓存的一致性状态预置系统300,系统300包括:获取模块310和写入模块320。

其中,获取模块310用于获取随机物理地址映射至高速缓存中,其中,物理地址包括缓存标记位和缓存索引位,并获取映射到所述高速缓存中随机的物理地址对应的一致性状态,其中,所述物理地址的一致性状态位包含多种状态,而对应物理地址的一致性状态位中只允许是一种状态。写入模块320用于将物理地址和一致性状态写入高速缓存中。

根据本发明的高速缓存的一致性状态预置系统,通过高速缓存的大小随机出需要写入高速缓存中的物理地址数量,随机出需要映射到高速缓存中的物理地址和随机出对应物理地址的一致性状态位,节省了指令发射的条数和降低一致性状态跳转的时间。

进一步地,系统300还包括:一致性验证模块330,用于在高速缓存的一致性状态由第一状态跳转至目标状态时,将高速缓存的一致性状态预置为第一状态,并根据跳转至目标状态对应的指令,由本地核向高速缓存发射对应的指令,以将高速缓存的一致性状态直接由第一状态跳转至目标状态。进一步地,一致性验证模块330用于:第一状态为共享态,目标状态为修改态,则将高速缓存的一致性状态预置为共享态,并发送写指令且写命中指令以将高速缓存的一致性状态由共享态跳转至修改态。进一步地,一致性验证模块330用于:第一状态为所有者态,目标状态为修改态,则将高速缓存的一致性状态预置为所有者态,并发送写指令且写命中指令以将高速缓存的一致性状态由所有者态跳转至修改态。

需要说明的是,本发明实施例的高速缓存的一致性状态预置系统的具体实现方式与本发明实施例的高速缓存的一致性状态预置方法的具体实现方式类似,具体请参见方法部分的描述,为了减少冗余,此处不做赘述。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1