一种多处理器系统及Cache一致性消息传输方法转让专利

申请号 : CN200810119855.0

文献号 : CN101430664B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 郇丹丹陈云霁李祖松高翔胡伟武

申请人 : 中国科学院计算技术研究所

摘要 :

本发明提供一种多处理器系统及Cache一致性消息传输方法,包括至少两个包含有一级缓存的处理器核,以及至少两个二级缓存,处理器核与二级缓存间通过总线连接;总线包括读地址通道、读数据通道、写地址通道、写数据通道以及写应答通道;通道中的线路根据所传送的内容分为域,通道包括根据所述AXI协议所规定的域;其中,在写地址通道中,还包括用于标识写地址请求的目标ID的AWDID域,以及用于在写操作中传输一级缓存中的缓存块的状态信息的AWSTATE域;在写数据通道中,还包括用于标识写数据请求的目标ID的WDID域;在读地址通道中,还包括用于标识写地址请求的目标ID的ARDID域,以及用于表示读命令的ARCMD域;在读数据通道中,还包括用于表示读状态应答的RSTATE域。

权利要求 :

1.一种符合AXI协议的多处理器系统,包括至少两个包含有一级缓存的处理器核,以及至少两个二级缓存,所述的处理器核与二级缓存间通过总线连接;其特征在于,多处理器系统采用基于目录的一致性协议,在所述的二级缓存中包含有用于存储Cache一致性状态信息的目录;所述总线包括读地址通道、读数据通道、写地址通道、写数据通道以及写应答通道;所述通道中的线路根据所传送的内容分为域,所述通道包括根据所述AXI协议所规定的域;其中,在所述的写地址通道中,还包括用于标识写地址请求的目标ID的AWDID域,以及用于在写操作中传输一级缓存中的缓存块的状态信息的AWSTATE域;其中,所述的AWSTATE域所传输的一级缓存中的缓存块的状态信息包括EXC CLEAN、EXC DIRTY、SHD和INV状态;

在所述的写数据通道中,还包括用于标识写数据请求的目标ID的WDID域;

在所述的读地址通道中,还包括用于标识读请求的目标ID的ARDID域,以及用于表示读命令的ARCMD域;其中,所述的ARCMD域所传输的读命令包括用于请求读操作的reqread请求、用于请求写操作的reqwrite请求、用于无效一级缓存中的数据但不进行写回操作的reqinv请求、用于向二级缓存写回一级缓存中的数据且将一级缓存中的数据变为共享状态的reqwtbk请求,以及用于向二级缓存写回一级缓存中的数据且无效一级缓存中数据的reqinvwtbk请求;

在所述的读数据通道中,还包括用于表示读状态应答的RSTATE域;其中,所述的RSTATE域所传输的读状态应答包括EXC CLEAN、EXCDIRTY、SHD和INV状态。

2.根据权利要求1所述的符合AXI协议的多处理器系统,其特征在于,在所述的总线中,所述读地址通道、读数据通道、写地址通道、写数据通道以及写应答通道中的一个或多个通道还包括有用于标识该通道是否复用的域,具有该域的复用通道在复用状态下传输与其数据流向相同的被复用通道的数据。

3.根据权利要求2所述的符合AXI协议的多处理器系统,其特征在于,将处理器核到二级缓存的写地址通道和处理器核到二级缓存的写数据通道作为复用通道,而将处理器核到二级缓存的读数据通道作为被复用通道;其中,在处理器核到二级缓存的写地址通道中,还包括用于标识通道是否复用的AWREPFLAG域,当该域的值为有效时,所述的写地址通道传送处理器对二级缓存的读状态应答,且写地址通道中所述的AWSTATE域还在读数据应答时传送一级缓存中缓存块的状态信息;

在处理器核到二级缓存的写数据通道中,还包括用于标识通道是否复用的WREPFLAG域,当该域的值为有效时,所述的写数据通道传送处理器核对二级缓存的读数据应答。

4.根据权利要求2所述的符合AXI协议的多处理器系统,其特征在于,将二级缓存到处理器核的读数据通道作为复用通道,而将二级缓存到处理器核的读地址通道作为被复用通道;其中,在二级缓存到处理器核的读数据通道中,还包括用于标识通道是否复用的RREQFLAG域,当该域值为有效时,所述读数据通道传送的是二级缓存对处理器的读请求,且其中的RDATA域用来传输读地址通道中的ARDID、ARADDR、ARLEN、ARSIZE、ARBURST、ARLOCK、ARCACHE、ARPROT和ARCMD域的内容;当该域值为无效时,所述读数据通道传送二级缓存对处理器核的读应答。

5.根据权利要求2所述的符合AXI协议的多处理器系统,其特征在于,将处理器核到二级缓存的写地址通道和处理器核到二级缓存的写数据通道作为第一复用通道,而将处理器核到二级缓存的读数据通道作为第一被复用通道;将二级缓存到处理器核的读数据通道作为第二复用通道,而将二级缓存到处理器核的读地址通道作为第二被复用通道;其中,在处理器核到二级缓存的写地址通道中,还包括用于标识通道是否复用的AWREPFLAG域,当该域的值为有效时,所述的写地址通道传送处理器对二级缓存的读状态应答,且写地址通道中所述的AWSTATE域还在读数据应答时传送一级缓存中缓存块的状态信息;

在处理器核到二级缓存的写数据通道中,还包括用于标识通道是否复用的WREPFLAG域,当该域的值为有效时,所述的写数据通道传送处理器核对二级缓存的读数据应答;

在二级缓存到处理器核的读数据通道中,还包括用于标识通道是否复用的RREQFLAG域,当该域值为有效时,所述读数据通道传送的是二级缓存对处理器的读请求,且其中的RDATA域用来传输读地址通道中的ARDID、ARADDR、ARLEN、ARSIZE、ARBURST、ARLOCK、ARCACHE、ARPROT和ARCMD域的内容;当该域值为无效时,所述读数据通道传送二级缓存对处理器核的读应答。

6.根据权利要求1所述的符合AXI协议的多处理器系统,其特征在于,所述的AWDID域、WDID域、ARDID域,以及在所述的AXI协议中所规定的AWID域、WID域、BID域的大小根据总线所连接的IP核的个数确定。

7.根据权利要求1所述的符合AXI协议的多处理器系统,其特征在于,所述的AWDID域、AWSTATE域、WDID域、ARDID域以及ARCMD域都为无效状态时,所述的多处理系统用于现有的AXI协议环境下。

8.一种在权利要求1-7之一所述的符合AXI协议的多处理器系统上实现Cache一致性消息传输的方法,包括:

步骤1)、根据所要传输的Cache一致性消息的类别,在所述的读地址通道、读数据通道、写地址通道、写数据通道以及写应答通道中选择其中的一个或多个通道;

步骤2)、将所要传输的Cache一致性消息映射到所选择的通道上;

步骤3)、在所选择的通道上,为所述通道中符合AXI协议的域按照AXI协议填写关于所述Cache一致性消息的信息;

步骤4)、在所选择的通道上,为所述通道中与所述AXI协议相比新增加的域填写关于所述Cache一致性消息的信息。

9.根据权利要求8所述的实现Cache一致性消息传输的方法,其特征在于,在所述的步骤4)中,所选择的通道为写地址通道,在所述的AWDID域填写用于标识写地址请求的目标ID,在所述的AWSTATE域中填写一级缓存中的缓存块的状态信息。

10.根据权利要求8所述的实现Cache一致性消息传输的方法,其特征在于,在所述的步骤4)中,所选择的通道为写数据通道,在所述的WDID域填写用于标识写数据请求的目标ID。

11.根据权利要求8所述的实现Cache一致性消息传输的方法,其特征在于,在所述的步骤4)中,所选择的通道为读地址通道,在所述的ARDID域中填写用于标识写地址请求的目标ID,在所述的ARCMD域填写读命令。

12.根据权利要求8所述的实现Cache一致性消息传输的方法,其特征在于,在所述的步骤4)中,所选择的通道为读数据通道,在所述的RSTATE域中填写读状态应答。

13.根据权利要求8所述的实现Cache一致性消息传输的方法,其特征在于,所要传输的Cache一致性消息为取数失效请求或存数失效请求,所述的取数失效请求或存数失效请求被映射到所述的读地址通道上,在所述读地址通道的ARDID域中填写所请求的目的二级缓存节点的节点号,在所述读地址通道的ARCMD中填写所述的取数失效请求或存数失效请求。

14.根据权利要求8所述的实现Cache一致性消息传输的方法,其特征在于,所要传输的Cache一致性消息为替换写回请求,所述的替换写回请求被映射到所述的写地址通道和写数据通道;在所述的写地址通道的AWDID域中填写所请求的目的二级缓存节点的节点号,在所述的AWSTATE域中填写替换写回块的状态;在所述的写数据通道的WDID域中填写所请求的目的二级缓存节点的节点号。

15.根据权利要求8所述的实现Cache一致性消息传输的方法,其特征在于,所要传输的Cache一致性消息为无效请求或写回请求或无效写回请求,所述的无效请求或写回请求或无效写回请求映射到所述的读地址通道;在所述读地址通道的ARDID域中填写目标处理器核的标号,在所述读地址通道的ARCMD域中填写所述的无效请求或写回请求或无效写回请求。

16.根据权利要求8所述的实现Cache一致性消息传输的方法,其特征在于,所要传输的Cache一致性消息为取数失效应答或存数失效应答,所述的取数失效应答或存数失效应答映射到所述的读数据通道;在所述的读数据通道的RSTATE域中填写所要返回的缓存块的状态。

17.根据权利要求8所述的实现Cache一致性消息传输的方法,其特征在于,所要传输的Cache一致性消息为替换写回应答,所述的替换写回应答映射到所述的写应答通道。

18.根据权利要求8所述的实现Cache一致性消息传输的方法,其特征在于,所要传输的Cache一致性消息为无效应答或写回应答或无效写回应答,所述的无效应答或写回应答或无效写回应答映射到读数据通道,所述的读数据通道的RSTATE域中填写缓存块在处理器核中的状态。

19.根据权利要求8所述的实现Cache一致性消息传输的方法,其特征在于,还包括:

在所述的步骤1)中,从所述的读地址通道、读数据通道、写地址通道、写数据通道以及写应答通道中选择其中的一个或多个通道作为复用通道对作为被复用通道的其它类别的通道进行复用;然后根据所要传输的Cache一致性消息的类别,从所述的读地址通道、读数据通道、写地址通道、写数据通道以及写应答通道中选择用于传输所述Cache一致性消息的通道,当所选择的通道与被复用通道一致时,将所述的复用通道作为被选择的通道,并将所述复用通道中用于表示通道是否复用的域的值置为有效,以实现Cache一致性消息的传输。

说明书 :

技术领域

本发明涉及微处理器体系结构领域,特别涉及一种多处理器系统及Cache一致性消息传输方法。

背景技术

随着半导体技术的进步,处理器设计者可以利用更多的晶体管资源来实现更高性能的芯片。与此同时,目标工作负载也在不停地变化,从早期以科学计算为主到今天个人桌面应用、服务器事务处理、电子商务应用和各种嵌入式应用并存。在应用需求和半导体工艺水平提升的双重推动下,更高并行度的片上多处理器结构(Chip Multi-Processor,简称CMP)应运而生,并成为目前高性能处理器体系结构发展的最新方向。Cache(高速缓存,简称缓存)一致性协议和互连作为片上多处理器的两大核心技术成为学术界和工业界研究的热点。
处理器设计能力与工艺水平的极大提高,使得采用SoC(System onChip)将微处理器、存储器及各种接口的外围设备等IP(IntellectualProperty,知识产权)核集成在单一芯片上,成为目前处理器设计的趋势和主流。为减少设计风险、缩短设计周期、更集中于应用实现,处理器设计者越来越多地采用IP复用技术。由于片上多处理器包括有多个处理器核和片上Cache,很适合用IP复用技术将处理器核和Cache控制模块等复制成多份,然后用片上总线进行连接。因此,IP复用技术已广泛地应用于片上多处理器的设计中。
在片上多处理器上实现IP复用技术时应当保证Cache一致性,但在现有技术中较为成熟的片上互连总线标准中却不支持对Cache一致性消息的传输。例如,AMBA(Advanced Microcontroller Bus Architecture)总线协议由于拥有庞大的AMBA使用者社区和广泛的使用比率而深受欢迎,而AXI(Advanced Extensible Interface)协议就是基于目前广泛使用的AMBA3.0标准得到的。在标准AXI协议中包括有5个传送通道,分别是:读地址通道、读数据通道、写地址通道、写数据通道和写应答通道。这些通道都只支持数据的传输,却不支持Cache一致性消息的传输。
由于现有总线标准中缺少对Cache一致性消息传输的支持,因此限制了采用此类总线标准的处理器的应用范围。

发明内容

本发明的目的是克服现有的符合AXI协议的处理器不能够传递Cache一致性消息而对处理器应用范围所造成的限制,从而提供一种能够传递Cache一致性消息的多处理器系统。
为了实现上述目的,本发明提供一种符合AXI协议的多处理器系统,包括至少两个包含有一级缓存的处理器核,以及至少两个二级缓存,所述的处理器核与二级缓存间通过总线连接;多处理器系统采用基于目录的一致性协议,在所述的二级缓存中包含有用于存储Cache一致性状态信息的目录;所述总线包括读地址通道、读数据通道、写地址通道、写数据通道以及写应答通道;所述通道中的线路根据所传送的内容分为域,所述通道包括根据所述AXI协议所规定的域;其中,
在所述的写地址通道中,还包括用于标识写地址请求的目标ID的AWDID域,以及用于在写操作中传输一级缓存中的缓存块的状态信息的AWSTATE域;其中,所述的AWSTATE域所传输的一级缓存中的缓存块的状态信息包括EXC CLEAN、EXC DIRTY、SHD和INV状态;
在所述的写数据通道中,还包括用于标识写数据请求的目标ID的WDID域;
在所述的读地址通道中,还包括用于标识读请求的目标ID的ARDID域,以及用于表示读命令的ARCMD域;其中,所述的ARCMD域所传输的读命令包括用于请求读操作的reqread请求、用于请求写操作的reqwrite请求、用于无效一级缓存中的数据但不进行写回操作的reqinv请求、用于向二级缓存写回一级缓存中的数据且将一级缓存中的数据变为共享状态的reqwtbk请求,以及用于向二级缓存写回一级缓存中的数据且无效一级缓存中数据的reqinvwtbk请求;
在所述的读数据通道中,还包括用于表示读状态应答的RSTATE域;其中,所述的RSTATE域所传输的读状态应答包括EXC CLEAN、EXCDIRTY、SHD和INV状态。
上述技术方案中,在所述的总线中,所述读地址通道、读数据通道、写地址通道、写数据通道以及写应答通道中的一个或多个通道还包括有用于标识该通道是否复用的域,具有该域的复用通道在复用状态下传输与其数据流向相同的被复用通道的数据。
上述技术方案中,将处理器核到二级缓存的写地址通道和处理器核到二级缓存的写数据通道作为复用通道,而将处理器核到二级缓存的读数据通道作为被复用通道;其中,
在处理器核到二级缓存的写地址通道中,还包括用于标识通道是否复用的AWREPFLAG域,当该域的值为有效时,所述的写地址通道传送处理器对二级缓存的读状态应答,且写地址通道中所述的AWSTATE域还在读数据应答时传送一级缓存中缓存块的状态信息;
在处理器核到二级缓存的写数据通道中,还包括用于标识通道是否复用的WREPFLAG域,当该域的值为有效时,所述的写数据通道传送处理器核对二级缓存的读数据应答。
上述技术方案中,将二级缓存到处理器核的读数据通道作为复用通道,而将二级缓存到处理器核的读地址通道作为被复用通道;其中,
在二级缓存到处理器核的读数据通道中,还包括用于标识通道是否复用的RREQFLAG域,当该域值为有效时,所述读数据通道传送的是二级缓存对处理器的读请求,且其中的RDATA域用来传输读地址通道中的ARDID、ARADDR、ARLEN、ARSIZE、ARBURST、ARLOCK、ARCACHE、ARPROT和ARCMD域的内容;当该域值为无效时,所述读数据通道传送二级缓存对处理器核的读应答。
上述技术方案中,将处理器核到二级缓存的写地址通道和处理器核到二级缓存的写数据通道作为第一复用通道,而将处理器核到二级缓存的读数据通道作为第一被复用通道;将二级缓存到处理器核的读数据通道作为第二复用通道,而将二级缓存到处理器核的读地址通道作为第二被复用通道;其中,
在处理器核到二级缓存的写地址通道中,还包括用于标识通道是否复用的AWREPFLAG域,当该域的值为有效时,所述的写地址通道传送处理器对二级缓存的读状态应答,且写地址通道中所述的AWSTATE域还在读数据应答时传送一级缓存中缓存块的状态信息;
在处理器核到二级缓存的写数据通道中,还包括用于标识通道是否复用的WREPFLAG域,当该域的值为有效时,所述的写数据通道传送处理器核对二级缓存的读数据应答;
在二级缓存到处理器核的读数据通道中,还包括用于标识通道是否复用的RREQFLAG域,当该域值为有效时,所述读数据通道传送的是二级缓存对处理器的读请求,且其中的RDATA域用来传输读地址通道中的ARDID、ARADDR、ARLEN、ARSIZE、ARBURST、ARLOCK、ARCACHE、ARPROT和ARCMD域的内容;当该域值为无效时,所述读数据通道传送二级缓存对处理器核的读应答。
上述技术方案中,所述的AWDID域、WDID域、ARDID域,以及在所述的AXI协议中所规定的AWID域、WID域、BID域的大小根据总线所连接的IP核的个数确定。
上述技术方案中,所述的AWDID域、AWSTATE域、WDID域、ARDID域以及ARCMD域都为无效状态时,所述的多处理系统用于现有的AXI协议环境下。
本发明还提供了一种在所述的符合AXI协议的多处理器系统上实现Cache一致性消息传输的方法,包括:
步骤1)、根据所要传输的Cache一致性消息的类别,在所述的读地址通道、读数据通道、写地址通道、写数据通道以及写应答通道中选择其中的一个或多个通道;
步骤2)、将所要传输的Cache一致性消息映射到所选择的通道上;
步骤3)、在所选择的通道上,为所述通道中符合AXI协议的域按照AXI协议填写关于所述Cache一致性消息的信息;
步骤4)、在所选择的通道上,为所述通道中与所述AXI协议相比新增加的域填写关于所述Cache一致性消息的信息;其中,
若所选择的通道为写地址通道,则在所述的AWDID域填写用于标识写地址请求的目标ID,在所述的AWSTATE域中填写一级缓存中的缓存块的状态信息;
若所选择的通道为写数据通道,则在所述的WDID域填写用于标识写数据请求的目标ID;
若所选择的通道为读地址通道,则在所述的ARDID域中填写用于标识读请求的目标ID,在所述的ARCMD域填写读命令;
若所选择的通道为读数据通道,则在所述的RSTATE域中填写读状态应答。
上述技术方案中,所要传输的Cache一致性消息为取数失效请求或存数失效请求,所述的取数失效请求或存数失效请求被映射到所述的读地址通道上,在所述读地址通道的ARDID域中填写所请求的目的二级缓存节点的节点号,在所述读地址通道的ARCMD中填写所述的取数失效请求或存数失效请求。
上述技术方案中,所要传输的Cache一致性消息为替换写回请求,所述的替换写回请求被映射到所述的写地址通道和写数据通道;在所述的写地址通道的AWDID域中填写所请求的目的二级缓存节点的节点号,在所述的AWSTATE域中填写替换写回块的状态;在所述的写数据通道的WDID域中填写所请求的目的二级缓存节点的节点号。
上述技术方案中,所要传输的Cache一致性消息为无效请求或写回请求或无效写回请求,所述的无效请求或写回请求或无效写回请求映射到所述的读地址通道;在所述读地址通道的ARDID域中填写目标处理器核的标号,在所述读地址通道的ARCMD域中填写所述的无效请求或写回请求或无效写回请求。
上述技术方案中,所要传输的Cache一致性消息为取数失效应答或存数失效应答,所述的取数失效应答或存数失效应答映射到所述的读数据通道;在所述的读数据通道的RSTATE域中填写所要返回的缓存块的状态。
上述技术方案中,所要传输的Cache一致性消息为替换写回应答,所述的替换写回应答映射到所述的写应答通道。
上述技术方案中,所要传输的Cache一致性消息为无效应答或写回应答或无效写回应答,所述的无效应答或写回应答或无效写回应答映射到读数据通道,所述的读数据通道的RSTATE域中填写缓存块在处理器核中的状态。
上述技术方案中,还包括:
在所述的步骤1)中,从所述的读地址通道、读数据通道、写地址通道、写数据通道以及写应答通道中选择其中的一个或多个通道作为复用通道对作为被复用通道的其它类别的通道进行复用;然后根据所要传输的Cache一致性消息的类别,从所述的读地址通道、读数据通道、写地址通道、写数据通道以及写应答通道中选择用于传输所述Cache一致性消息的通道,当所选择的通道与被复用通道一致时,将所述的复用通道作为被选择的通道,并将所述复用通道中用于表示通道是否复用的域的值置为有效,以实现Cache一致性消息的传输。
本发明的优点在于:
1、本发明在遵循现有的AXI协议的多处理器系统的基础上,对多处理器系统中的总线进行扩展,以实现对Cache一致性消息的传输,扩大了多处理器系统的使用范围。
2、由于本发明只需要对现有的总线进行扩展,无需对现有的总线进行修改,因此降低了设计的复杂度。
3、在本发明中,多处理器系统中的传送通道可以复用,降低了多处理器系统的硬件成本,提高了资源的利用率。
4、本发明的多处理器系统既可以用于需要Cache一致性支持的IP,也可以用于遵循标准片上总线协议的标准IP,具有很好的兼容性。
5、本发明的多处理器系统中域的大小可根据总线所连接的IP核的个数确定,有利于所连接IP核的扩展。

附图说明

以下,结合附图来详细说明本发明的实施例,其中:
图1为本发明的多处理器系统的示意图;
图2为对本发明的多处理器系统中的数据通道按照数据流向进行分类的示意图;
图3为本发明的多处理系统所涉及的仲裁器的示意图。

具体实施方式

下面结合附图和具体实施方式对本发明做进一步说明。
为了更好地对本发明加以说明,在图1中给出了可应用本发明方法的片上多处理器的一种典型配置方案。在该图中,包括有m个带有一级缓存的处理器核,以及n个二级缓存,其中的m和n为正整数。处理器核与二级缓存间通过互连网络连接,此处所述的互连网络从网络拓扑结构上可以包括直接连接、总线、交叉开关、Mesh网络、Torus网络、星形网络、树形网络、环形网络和上述一个或多个互连结构组合的混合形网络,所述的互连网络从硬件结构上是由地址线和数据线等线路组合在一起的连接线,这种连接线也被称为总线(此处所涉及的总线与前面所提到的表示拓扑结构的总线是不同的概念)。在互连网络上还具有远程端口a(remote_a)和远程端口b(remote_b),这两种端口既可以连接处理器核,也可以连接用于连接外围设备的外围设备控制器。在图1所示的片上多处理器中包括有i个remote_a和j个remote_b,其中的i和j为非负整数。由于在上述的片上多处理器中包含有多个能够对Cache状态加以改变的处理器核,因此,需要对Cache一致性进行维护。在现有技术中,用于维护Cache一致性的方式有多种,如基于总线的一致性协议、基于目录的一致性协议、基于环的一致性协议和基于令牌的一致性协议等,本实施例中的片上多处理器可以采用基于目录的一致性协议,其中,用于维护Cache一致性的目录位于二级缓存中。
在基于目录的一致性协议中,采用一致性状态来跟踪一级缓存中每一个数据块的读写状态。在本实施例中,一级缓存中的缓存块可以用三种状态表示:INV、SHD和EXC。其中的INV表示相应的缓存块处于无效状态;SHD表示相应的缓存块处于共享状态,当处理器读取该块时直接命中,但写该块时发生写失效;EXC表示相应的缓存块处于独占状态,处理器读写该块都直接命中。每个缓存块还有表示该块是否被写过的w位,如果该块被写,则置w位为1。
由于在基于目录的一致性协议中,Cache一致性由保存在二级缓存中的目录来维护,因此在目录中除了记录前述一级缓存的缓存块的状态信息外,还记录了与相应缓存块在哪些处理器核的一级缓存中存在有关的信息。目录记录的缓存块状态包括用于表示缓存块在一级缓存中的状态的SHD和EXC。SHD表示相应缓存块不在任何一级缓存中存在或在一级缓存中处于共享状态。EXC表示相应缓存块在一级缓存中处于独占状态,并已经被写过,目录处在该状态收到其他处理器的读请求时,要向拥有该缓存块的处理器发出写回请求。目录所记录的缓存块状态还包括用于表示缓存块在二级缓存中状态的INV和VALID。INV表示相应的缓存块在二级缓存中处于无效状态。VALID表示相应的缓存块在二级缓存中处于有效状态。每个二级缓存的缓存块还有表示该缓存块是否被写过的w位,如果该块被写,则置w位为1。在下面的表1中,对上述的一级缓存和二级缓存中的一致性状态统一进行了说明。


表1
在基于目录的一致性协议中,可以通过处理器核与目录间的请求操作来改变缓存块的前述一致性状态信息。其中,由处理器核发往目录的请求包括:用于请求读操作的取数失效请求reqread,用于请求写操作的存数失效请求reqwrite以及用于请求替换操作的替换写回请求reqreplace。目录在收到上述请求后,也会返回相应的应答,包括repread应答、repwrite应答和repreplace应答。而由目录主动发往处理器核的请求包括:用于无效一级缓存中的数据但不进行写回操作的无效请求reqinv,用于向二级缓存写回一级缓存中的数据,但不无效一级缓存中的数据而是将其变为共享状态的写回请求reqwtbk,以及用于向二级缓存写回一级缓存中的数据且无效一级缓存中数据的无效写回请求reqinvwtbk。处理器核在收到来自目录的上述请求后,也会返回相应的repinv、repwtbk和repinvwtbk应答。上述的请求和相应的应答组成一次AXI的交易(Transaction),在下面的表2中对上述的请求和应答进行了统一的说明。

表2
由于在现有的AXI协议中,只能够通过总线传输数据和地址,而不能够对上述的请求或响应或状态信息进行传输,因此,需要对总线进行扩展以支持Cache一致性消息的传输。在对总线进行扩展时,在硬件实现上就是在相应的总线中添加线路以用于传输Cache一致性消息。下面就对总线中如何添加线路进行相应的说明。
符合现有AXI协议的总线包括5种传送通道,分别是:读地址通道、读数据通道、写地址通道、写数据通道和写应答通道,总线中的各条线路(包括数据线和地址线)按照上述的5种传送通道进行划分。在本发明中,同样可以将总线中的线路按照上述5种传送通道进行分类,但在每个通道的具体组成上有一定的差异,下面对各个通道的组成进行详细说明。
在对通道的组成进行说明前,首先对通道中的域这一概念进行说明。在前面的说明中已经提到,总线中的线路可以按照传送通道的类型进行区分,而在同一个传送通道中的线路同样可以按照其所传送的内容做进一步的区分,这种在传送通道中根据所传送内容做进一步区分所得到的一定数量的线路的集合就被称为域。用于发送数据的源节点在发送数据时将所要发送的内容根据内容的具体类型通过特定的域发送,而用于接收数据的目标节点在接收数据时也会在各个域上分别实现对域内容的解析。
在本发明中要实现对总线的扩展实际上就是要对总线中所包含的域进行扩展,本发明对各个通道在AXI协议中所包含的域加以保留,并在原有域的基础上扩展了用于传输Cache一致性消息的域。具体的说,包括:
1、在写地址通道中,除了原有的域外,还增加了用于标识写地址请求的目标ID的AWDID域,以及用于在写操作中传输一级缓存块的状态信息的AWSTATE域。所述的AWSTATE域所传输的状态包括EXCCLEAN、EXC DIRTY、SHD和INV状态。在现有的AXI协议中,所发送的请求中只能传输请求者的标识号,而没有请求目标的标识号,对于请求目标通常采用地址进行标识,但处理器核本身只能用可在目录中查询得到的标识号进行标识,不存在相应的地址,因此,在本发明中,如果请求仍然不能传输请求目标的标识号,则不利于Cache一致性消息的传输。基于上述原因,在写地址通道中添加了用于对目标ID进行标识AWDID域,在其他通道中也同样如此。
2、在写数据通道中,除了原有的域外,还增加了用于标识写数据请求的目标ID的WDID域。
3、在写应答通道中没有对域进行扩展,因此不再进行重复说明。
4、在读地址通道中,除了原有的域外,还添加了用于标识读请求的目标ID的ARDID域,以及用于表示读命令的ARCMD域,该域中的所表示的读命令具体包括reqread请求、reqwrite请求、reqinv请求、reqwtbk请求和reqinvwtbk请求。
5、在读数据通道中,除了原有的域外,还增加了用于表示读状态应答的RSTATE域,在该域中所表示的读状态应答包括EXC CLEAN、EXCDIRTY、SHD和INV状态。
通过对上述各个通道的扩展,即可在总线中实现对Cache一致性消息传输的支持。如果将上述通道中新增加域的值都设为无效状态,就可以实现现有的AXI协议。
从前面的描述中已经知道,无论是现有的AXI协议还是在本发明中,都可将总线分为前述的5种传送通道,但在实际应用中,由于处理器核到二级缓存存在读地址通道和读数据通道,而二级缓存到处理器核也存在读地址通道和读数据通道,因此实际的传送通道数不止5个,而是至少包括7个。在下面的表3中,对7个传送通道的具体情况进行了说明。


表3
如果上述传送通道都采用独立的物理设备实现,则相应装置的硬件开销较大,无法实现对硬件资源的合理利用。因此本发明在总线支持Cache一致性消息传输的基础上,还可以复用传送通道,以节约硬件资源。
在复用传送通道前,首先将传送通道按照数据的传送方向进行分类,以表3中的传送通道为例,传送通道1、3、4、7都如图2(a)所示,将数据从处理器核传送到二级缓存(或从remote_a传送到remote_b),这些传送通道可以分为一类。而传送通道2、5、6都如图2(b)所示,将数据从二级缓存传送到处理器核(或从remote_b传送到remote_a),这些传送通道也可以分为一类。由于同一类型通道的数据流动方向相同,因此可以通过增加标识域的方式实现同一类型通道的复用,从而减少连线的数量。在本发明的一个实施例中,将通道7与通道3、4进行复用,即采用通道3和通道4一同完成通道7所要实现的功能,其中的通道3实现对读状态应答的发送,而通道4则实现对读数据应答的发送,所述的读数据应答和读状态应答的发送就是通道7所要完成的全部功能。
由于通道3是写地址通道,因此需要在写地址通道中增加一个用于标识通道是否复用的AWREPFLAG域,当该域的值为无效状态时(如取值为0)表示通道中所传送的是处理器发起的写请求,当该域的值为有效状态时(如取值为1)表示通道中所传送的是处理器对二级缓存的读数据应答。此外,当写地址通道被复用时,写地址通道中前述的用于在写操作中传输一级缓存块的状态信息的AWSTATE域还可在读数据应答时传输一级缓存块的状态。
由于通道4是写数据通道,因此需要在写数据通道中增加一个用于标识通道是否复用的WREPFLAG域,当WREPFLAG域的值为无效状态(如取值为0)时表示写数据通道所传送的数据是处理器发起的写请求,当该域的值为有效状态(如取值为1)时表示写数据通道所传送的数据是处理器对二级缓存的读数据应答。
在下面的表格中对本实施例中支持通道复用且支持Cache一致性消息传输的各个通道的详细情况进行说明,这些表格中不仅包括新增加的域,也包括各个通道在AXI协议中原来就有的域,其中,带*的为在原有AXI协议通道上扩展出的信号域,[7:0]等数据表示了相关信号的数据长度,所述的[7:0]就表示该数据有8位,由0到7逐一进行标识。
全局信号

表4
写地址通道信号


表5
写数据通道信号

表6
写应答通道信号

表7
读地址通道信号


表8
读数据通道信号

表9
通过上述的复用机制,可将传送通道的个数由7个减少为6个,有利于降低装置的复杂度。在上述实施例中,采用了将通道7与通道3、4进行复用的实现方式,在实际应用中,可不局限于上述实现方式。例如,通道6也可以与通道2进行复用,即采用通道2完成通道6所要实现的功能。由于通道2是读数据通道,因此需要在读数据通道中增加RREQFLAG域,当RREQFLAG域值为无效状态(如取值为0)时表示读数据通道所传送的是二级Cache对处理器核的读应答,当该域的值为有效状态(如取值为1)时表示读数据通道所传送的是二级Cache对处理器核的读请求。读数据通道中的RDATA域用来传输读地址通道中的ARDID、ARADDR、ARLEN、ARSIZE、ARBURST、ARLOCK、ARCACHE、ARPROT和ARCMD域的内容。此外,在一个实施例中,两种类型的传送通道也可以同时进行复用操作,即传送通道的个数可从7个进一步减少到5个。例如,在采用通道2复用通道6的同时,采用通道3、4复用通道7,从而进一步降低传送通道的个数。值得说明的是,从表9中可以看出,读数据通道的数据流向是从从设备到主设备,因此,通道7与通道3、4的数据流向是一致的,都是从处理器核到二级缓存,而通道2与通道6的数据流向是一致的,都是从二级缓存到处理器核。
本发明的片上多处理器中经过扩展的片上总线可以与标准AXI协议采用相同的仲裁方法,因此本发明的片上多处理器中可以采用标准的AXI协议仲裁器。本发明扩展片上总线的仲裁过程如下:发起传输的通道通过有效信号(VALID)进行仲裁申请,接收传输的通道通过准备好信号(READY)向仲裁器(Arbiter)表明该通道可以接收数据。下面以表3中通道编号为1的读地址通道为例,结合图3介绍本发明的片上多处理器的仲裁过程,其他通道的仲裁过程与之类似。每个AXI从设备(Slave)对应一个仲裁器,仲裁器除了与AXI从设备连接外,还与AXI主设备(Master)连接。与仲裁器相连的端口都采用扩展总线进行传输。所述的仲裁器对各个AXI主设备发起的请求ARVALID信号进行仲裁,仲裁结果通过ARREADY信号返回给获得传输权的主设备。仲裁器还负责把主设备的ARVALID和有效负载(payload,即该通道除ARVALID和ARREADY外的其他信号域)多选后送给从设备。仲裁器内部维护轮转(round-robin)策略。仲裁器也可以维护wavefront仲裁策略和matrix仲裁策略等。
在本发明所提出的对总线进行域扩展的多处理器系统的基础上,可实现对Cache一致性消息的传输。由于在前面的实施例中,都以基于目录的一致性协议为例,对多处理器系统中如何进行域扩展进行说明,下面也以基于目录的一致性协议为例,对其中所涉及的Cache一致性消息的传输做进一步说明。在前面的说明中已经提到,在基于目录的一致性协议中,所涉及的Cache一致性消息包括取数失效请求(reqread)、存数失效请求(reqwrite)、替换写回请求(reqreplace)、无效请求(reqinv)、写回请求(reqwtbk)和无效写回请求(reqinvwtbk)以及对这些请求的应答。对于上述的不同请求及应答,它们的传输过程可能存在差异,因此,在下面分情况依次进行说明。
利用本发明的多处理器系统传输处理器核发送给二级缓存的取数失效请求(reqread)的步骤如下:将该请求映射到读地址通道。ARID域置为请求者标识,包括发起取数失效请求处理器号和处理器内部失效访问请求队列号;ARADDR域置为取数失效请求的物理地址;ARLEN域置为burst传输次数;ARSIZE域按照每次传输的数据位数设置;ARBURST置为burst请求的类型;ARCACHE域置为Cache类型;ARPROT域置为安全类型,其中ARPROT[2]用来表示是数据Cache失效还是指令Cache失效引起的请求。在AXI协议基础上扩展的ARDID域置为请求的目的二级缓存节点号;ARCMD域置为取数失效请求reqread。有取数失效请求发出时将ARVALID信号置为有效。在请求的二级缓存节点给出ARREADY信号,并通过Arbiter的仲裁获得传输权后,该取数失效请求被二级缓存节点接收。
利用本发明的多处理器系统传输处理器核发送给二级缓存的存数失效请求(reqwrite)的步骤如下:将该请求映射到读地址通道。ARID域置为请求者标识,包括发起存数失效请求处理器号和处理器内部失效访问请求队列号;ARADDR域置为存数失效请求的物理地址;ARLEN域置为burst传输次数;ARSIZE域按照每次传输的数据位数设置;ARBURST置为burst请求的类型;ARCACHE域置为Cache类型;ARPROT域置为安全类型,其中ARPROT[2]用来表示是数据Cache失效还是指令Cache失效引起的请求。在AXI协议基础上扩展的ARDID域置为请求的目的二级缓存节点号;ARCMD域置为存数失效请求reqwrite。有存数失效请求发出时将ARVALID信号置为有效。在请求的二级缓存节点给出ARREADY信号,并通过Arbiter的仲裁获得传输权后,该存数失效请求被二级缓存节点接收。
利用本发明的多处理器系统传输处理器核发出给二级缓存的替换写回请求(reqreplace)的步骤如下:将该请求映射到写地址和写数据通道,写地址通道用来传输替换写回请求的地址及其相关信息,写数据通道用来传输替换写回请求的数据及其相关信息。写地址通道的设置如下:AWID域置为请求者标识,包括发起替换写回请求处理器号和处理器内部写请求队列号;AWADDR域置为替换写回请求地址;AWLEN域置为burst传输次数;AWSIZE域按照每次传输的数据位数设置;AWBURST域置为burst请求类型;AWLOCK域置为Lock类型;AWCACHE域置为Cache类型;AWPROT域置为安全类型,其中AWPROT[2]用来表示是数据Cache失效还是指令Cache失效引起的请求。在AXI协议上扩展的域AWDID域置为目标二级Cache节点号;AWSTATE域置为替换写回块的状态;AWREPFLAG域置为0表示是处理器的写地址请求。有替换写回地址请求发出时将AWVALID信号置为有效。在请求的二级Cache节点给出的AWREADY信号有效,并且通过Arbiter的仲裁获得传输权后,该写地址请求被二级Cache节点接收。写数据通道的设置如下:WID域与AWID域相同设置相同;WDATA域置为替换写回的数据;WSTRB域写选中字节置有效;WLAST域burst的最后一次传输置有效。在AXI协议的基础上扩展的域WDID域与AWDID域相同;WREPFLAG域置为b0表示是处理器的写数据请求。有替换写回数据请求发出时将WVALID信号置为有效。在请求的二级缓存节点的给出WREADY信号有效,并且经过Arbiter的仲裁获得传输权,则可以将写数据传输到二级缓存。
利用本发明的多处理器系统传输二级缓存发送给处理器核的无效请求(reqinv)、写回请求(reqwtbk)和无效写回请求(reqinvwtbk)的步骤如下:将该请求映射到读地址通道。ARID域置为一致性请求标识号,包括发起一致性请求的二级缓存节点号和二级缓存节点内部请求队列号;ARADDR域置为一致性请求地址;ARLEN域置为burst次数;ARSIZE域按照每次传输的数据位数设置;ARBURST置为burst请求类型;ARCACHE域置为Cache类型;ARPROT域置为安全类型,其中ARPROT[2]用来表示一致性请求是发送到数据Cache还是指令Cache。在AXI协议基础上扩展的ARDID域置为请求的目标是处理器核;ARCMD域置为一致性请求命令,即无效请求(reqinv)、写回请求(reqwtbk)或写回无效请求(reqinvwtbk)。当有一致性请求发出时,置ARVALID为有效。在目标处理器核可以接收一致性请求给出ARREADY信号有效,并通过Arbiter的仲裁获得传输权后,该一致性请求被处理器核接收。
利用本发明的多处理器系统传输二级缓存返回给处理器核的取数失效应答(repread)和存数失效应答(repwrite)的步骤如下:将上述应答映射到读数据通道。RID域与reqread请求或reqwrite请求的ARID域一致;RDATA域是返回的数据;RRESP域置为读应答的交易状态;RLAST域数据的最后一次返回置有效。扩展的RSTATE域置为返回Cache块的状态。RVALID在有应答返回时置有效。在处理器核可以接收应答给出RREADY信号有效,并且经过Arbiter的仲裁获得传输权,则可以将应答返回处理器核。
利用本发明的多处理器系统传输二级缓存返回给处理器核的替换写回应答(repreplace)的步骤如下:将上述应答映射到写应答通道。BID域置为响应目标标识,与对应的reqreplace请求的AWID域一致;BRESP域置为写交易状态类型。当有替换写回应答返回时BVALID置为有效。应答目标处理器核的BREADY信号在处理器核可以接收替换写回应答时置为有效,并且经过Arbiter的仲裁获得传输权,则可以将替换写回应答返回处理器核。
利用本发明的多处理器系统传输处理器核返回给二级缓存的无效应答(repinv)、写回应答(repwtbk)和无效写回应答(repinvwtbk)的步骤如下:将上述应答映射到读数据通道。RID域与对应一致性请求的ARID域一致;RDATA域是返回的数据;RRESP域置为一致性应答的交易状态,一致性应答都是成功的;RLAST域数据的最后一次返回置有效。扩展的RSTATE域置为一致性请求对应Cache块在处理器核中的状态。RVALID在有一致性应答返回时置有效。在二级缓存可以接收应答给出RREADY信号有效,并且经过Arbiter的仲裁获得传输权,则可以将应答返回二级缓存。
以上是对本发明的多处理器系统如何实现Cache一致性消息的传输过程的说明,但在前述的说明中已经提到,多处理器系统在实现时可以根据需要进行通道复用。由于通道复用后的实施例中,多处理器系统的硬件实现与未复用前存在一定的差异,因此,还要对通道复用后的多处理器系统如何进行一致性消息的传输进行说明。
在前述实施例中所提到的通道3、4复用通道7的例子中,对无效应答(repinv)、写回应答(repwtbk)和无效写回应答(repinvwtbk)的传输与未复用前相比存在一定的差异,因此对利用通道复用的多处理器系统传输处理器核返回给二级缓存的无效应答(repinv)、写回应答(repwtbk)和无效写回应答(repinvwtbk)的步骤做如下说明:将上述应答映射到写地址通道和写数据通道,所述的写地址通道和写数据通道在复用过程中,传输处理器核向二级缓存发送的写请求(reqreplace)。写地址通道用来传输一致性状态应答及其相关信息,写数据通道用来传输一致性数据应答及其相关信息。AWID域与发起对应无效请求、写回请求或无效写回请求的ARID号一致。在AXI协议上扩展的域AWDID域置为目标二级缓存号;AWSTATE域为一致性状态应答;AWREPFLAG域置为b1,表示是处理器对于一致性操作请求的应答。AWVALID域在有一致性状态应答时置有效。在应答目标二级Cache节点在可以接收应答给出AWREADY信号有效,并且通过Arbiter的仲裁获得传输权后,该状态应答被二级Cache节点接收。WID域与AWID域相同;WDATA域置为一致性应答的数据;WLAST域数据最后一次传输置1;WVALID在有一致性数据应答时置有效。在AXI协议的基础上扩展的域WDID域与AWDID域相同;WREPFLAG域为b1表示写数据通道复用为一致性数据应答通道,写数据是一致性应答的数据。在有一致性数据应答返回时,将WVALID域置为有效。在应答目标二级缓存节点可以接收应答给出WREADY信号,并且经过Arbiter的仲裁获得传输权,则可以将数据应答返回二级缓存。
而在前述实施例所提到的通道2与通道6复用的例子中,对无效请求(reqinv)、写回请求(reqwtbk)和无效写回请求(reqinvwtbk)的传输与未复用前相比存在一定的差异,因此对利用通道复用的多处理器系统传输处理器核传输二级缓存发送给处理器核的无效请求(reqinv)、写回请求(reqwtbk)和无效写回请求(reqinvwtbk)的步骤做如下说明:将上述请求映射到二级缓存返回应答(repread和repwrite)给处理器核的读数据通道。RID域置为一致性请求标识号,包括发起一致性请求的二级缓存节点号和二级缓存节点内部请求队列号;其他的信息用RDATA域传输,包括上面未复用方法读地址通道的ARDID、ARADDR、ARLEN、ARSIZE、ARBURST、ARLOCK、ARCACHE、ARPROT和ARCMD域的内容。RVALID在发出一致性请求时置有效。在目标处理器核可以接收一致性请求给出RREADY信号有效,并且经过Arbiter的仲裁获得传输权,该一致性请求被处理器核接收。RREQFLAG域置为有效,表示读数据通道传送的是二级缓存对处理器的一致性请求。
在上面的说明中,都以遵循目录一致性协议为基础,对于本发明所涉及的可用于Cache一致性消息传输的多处理器系统的结构以及在多处理器系统中如何进行Cache一致性消息的传输进行了说明。在实际应用中,本发明的多处理器系统以及相应的传输方法也可以用于其他的一致性协议。例如,在基于侦听的一致性协议中,同样可以在相应的总线上添加用于传输一致性消息的域,也同样可以遵照前述实施例所提到的方法对Cache一致性消息进行传输。其区别在于,多处理器系统中对所涉及的一致性消息的处理不同,如在基于侦听的一致性协议中,处理器发出一致性请求后要求所有的二级缓存给出状态和数据应答,因为没有目录记录该块在哪个二级Cache中存在的信息,所以所有的二级Cache都需要进行侦听,给出应答。类似的,二级缓存发出一致性请求后,所有的处理器核都需要进行侦听,并给出应答。但对于这些一致性请求或应答的处理并不对本发明中的内容产生影响,因此,本发明同样适用于这些一致性协议中。
为了方便对本发明思想更为全面的了解,在下文中给出了三个具体的实例,其中,例1用于说明本发明的支持Cache一致性消息传输的片上多处理器中,采用通道3、4复用通道7后,对存数失效请求的处理过程,其中包括处理器核发送给二级缓存的存数失效请求、二级缓存发送给处理器核的写回无效请求、处理器核发送给二级缓存的替换写回请求,以及对上述请求的应答的处理过程。例2用于说明本发明的支持Cache一致性消息传输的片上多处理器中,根据连接的IP核个数对AWDID域、WDID域、ARDID域、AWID域、WID域和BID域的位数进行了扩展,并采用通道3、4复用通道7后,对取数失效请求的处理过程,其中包括处理器核发送给二级缓存的取数失效请求、处理器核发送给二级缓存的替换写回请求,以及对上述请求的应答的处理过程。例3用于说明本发明应用在不支持Cache一致性的单处理器的处理器核和二级缓存互连,对一级缓存访问失效请求的处理过程,其中包括处理器核发送给二级缓存的存数失效请求及其对该请求的应答过程。
例1.处理器核0发出的存数指令访问一级缓存失效,通过扩展的片上总线发出一致性存数失效请求reqwrite。该请求通过读地址通道发送,所发出请求的格式为:读请求标识ARID域为h00,其中ARID[7:4]表示发起读请求处理器号,ARID[3:0]是处理器内部请求队列号;请求地址ARADDR域为h0000,0000,0000,1040;ARLEN域为b0001,它表示burst传输次数为两次;ARSIZE域为b111,它表示每次传输的数据是128位;ARBURST为b10,它表示WRAP类型的burst请求,请求的子块数据优先返回;ARCACHE域为b1111,它表示Cache算法是Cache访问(Cacheablewrite-back,allocate on both reads and writes);ARPROT域为010,它表示非安全不带优先级的数据访问;ARVALID为1,它表示读请求有效。如上这些域都与标准的AXI协议一致。在AXI协议基础上扩展的ARDID域为h0表示请求的目的节点是二级缓存节点0;ARCMD域为b101表示写请求reqwrite。读请求在二级缓存节点0给出ARREADY信号,并通过Arbiter的仲裁获得传输权后,被二级缓存节点0接收。访问二级Cache结果为二级Cache访问命中,但在处理器核1中也有相应的块,需要向处理器核1发出写回无效请求reqinvwtbk。
写回无效请求通过读地址通道发送,该请求的格式为:读请求标识ARID域为h00,其中ARID[7:4]表示发起读请求的二级Cache节点号,ARID[3:0]是二级Cache节点内部请求队列号;请求地址ARADDR域为h0000,0000,0000,1040;ARLEN域为b0001表示burst次数为两次;ARSIZE域为b111表示每次传输的数据是128位;ARBURST为b10表示是INCR类型的burst请求,数据按地址递增的顺序返回;ARCACHE域为b1111表示Cache算法是Cache访问;ARPROT为010表示非安全不带优先级的数据访问;ARVALID为1表示读请求有效。如上这些域都与标准的AXI协议一致。在AXI协议基础上扩展的ARDID域为h1表示请求的目标是处理器核1;ARCMD域为b000表示是一致性写回无效请求reqinvwtbk。该请求在处理器核1的RREADY信号有效,并通过Arbiter的仲裁获得传输权后,被处理器核1接收,处理器核1通过复用的写地址通道和写数据通道给出一致性数据应答repinvwtbk。该应答的AWID域为h00,与发起无效写回请求的ARID号一致;AWADDR域为h0000,0000,0000,1040;AWLEN域为b0001表示burst次数为两次;AWSIZE域为b111表示每次传输的数据是128位;AWBURST域为b01表示是INCR类型的burst请求,数据按地址递增的顺序给出;AWLOCK域为b00;AWCACHE域为b1111;AWPROT域为b010;AWVALID为1表示应答有效。如上域为AXI协议中原有域。在AXI协议上扩展的域如下,AWDID域为h0表示目标二级Cache节点号为0;AWSTATE域为b01表示repinvwtbk的状态应答为EXC DIRTY,数据脏需要写到二级Cache中;AWREPFLAG域为b1表示是处理器对于一致性操作请求的应答。二级Cache节点0的AWREADY信号有效,并且通过Arbiter的仲裁获得传输权后,该应答被二级Cache节点接收。WID域与AWID域相同为h00;WDATA域是一致性应答的数据,AXI总线宽度为128位返回两个128位有效数据;WSTRB域表示写选通为hffff,两次传输的128位数据都是有效的数据应答;WLAST域两次数据返回第一次置0,第二次置1表示该burst的最后一次传输;WSTRB域表示写选中为hffff,两次传输的128位数据都进行写操作;WVALID为1表示应答有效。如上域为AXI协议中原有域。在AXI协议的基础上扩展的域如下,WDID域与AWDID域相同为h0;WREPFLAG域为b1表示写数据通道复用为一致性应答通道,写数据是一致性应答的数据。二级Cache节点0的WREADY信号为1表示二级Cache节点可以接收应答,并且经过Arbiter的仲裁获得传输权,则可以将应答返回二级Cache。二级Cache节点在接收到拥有备份的处理器的应答后,将数据和状态应答repwrite通过读应答通道返回请求的处理器核。RID域与发出reqwrite请求的ARID域一致为h00;RDATA域是返回的数据,AXI总线宽度为128位返回两个128位有效数据;RRESP域为b00表示正确应答;RLAST域两次数据返回第一次置0,第二次置1表示该burst的最后一次返回;RVALID为1表示应答有效。如上域为AXI协议中原有域。在AXI协议基础上扩展的RSTATE域为b00表示返回EXC CLEAN状态的Cache块,扩展的域是为支持Cache一致性协议需要在一级Cache中保存的信息。处理器核0的RREADY信号为1即处理器可以接收应答,并且经过Arbiter的仲裁获得传输权,则可以将应答返回处理器核。处理器核填充一级Cache,需要替换地址为h0000,1000,0000,1040的一级Cache块,该块的状态为EXC,并且被修改过。处理器核0发送reqreplace请求。AWID域为h00,其中AWID[7:4]表示发起写请求的处理器核节点号,AWID[3:0]是处理器核内部写请求队列号;AWADDR域为h0000,1000,0000,1040;AWLEN域为b0001表示burst次数为两次;AWSIZE域为b111表示每次传输的数据是128位;AWBURST域为b01表示是INCR类型的burst请求,数据按地址递增的顺序给出;AWLOCK域为b00;AWCACHE域为b1111;AWPROT域为b010;AWVALID为1表示写地址请求有效。如上域为AXI协议中原有域。在AXI协议上扩展的域如下,AWDID域为h8表示目标二级Cache节点号为8;AWSTATE域为b01表示替换写回块的状态为EXC DIRTY,数据脏需要写到二级Cache中;AWREPFLAG域为b0表示是处理器的写地址请求。二级Cache节点8的AWREADY信号有效,并且通过Arbiter的仲裁获得传输权后,该写地址请求被二级Cache节点接收。WID域与AWID域相同为h00;WDATA域是一致性应答的数据,AXI总线宽度为128位写回两个128位有效数据;WSTRB域表示写选中为hffff,两次传输的128位数据都进行写操作;WLAST域两次数据返回第一次置0,第二次置1表示该burst的最后一次传输;WVALID为1表示写数据请求有效。如上域为AXI协议中原有域。在AXI协议的基础上扩展的域如下,WDID域与AWDID域相同为h8;WREPFLAG域为b0表示是处理器的写数据请求。二级Cache节点8的WREADY信号为1表示二级Cache节点可以接收写数据请求,并且经过Arbiter的仲裁获得传输权,则可以将写数据传输到二级Cache。完成二级Cache写操作后,二级Cache给出写应答repreplace。BID域为h00,与reqreplace请求的AWID域一致;BRESP域为b00表示写交易成功正确应答;BVALID为1表示写应答有效。处理器核0的BREADY信号为1即处理器可以接收写应答,并且经过Arbiter的仲裁获得传输权,则可以将写应答返回处理器核。
例2.在1024个处理器核节点、1024个二级Cache节点的片上多处理器中,处理器核1023取数指令访问一级Cache失效,通过扩展片上总线发出一致性取数失效请求reqread。AWID、AWDID、WID、WDID、BID、ARID、ARDID和RID域根据处理器核和二级Cache的节点个数进行扩展,AWID、WID、BID、ARID和RID扩展为14位,AWDID、WDID和ARDRID扩展为10位。发出请求的格式为,读请求标识ARID域为h3ff0,其中ARID[13:4]表示发起读请求处理器号,ARID[3:0]是处理器内部请求队列号;请求地址ARADDR域为h1000,0000,0000,1080;ARLEN域为b0001表示burst次数为两次;ARSIZE域为b111表示每次传输的数据是128位;ARBURST为b10表示是WRAP类型的burst请求,请求的子块数据优先返回;ARCACHE域为b1111表示Cache算法是Cache访问(Cacheablewrite-back,allocate on both reads and writes);ARPROT域为010表示非安全不带优先级的数据访问;ARVALID为1表示读请求有效。如上这些域都与标准AXI协议一致。在AXI协议基础上扩展的ARDID域为h2000表示发向二级Cache节点512;ARCMD域为b100表示是一致性取数失效请求reqread。读请求在二级Cache节点0给出ARREADY信号,并通过Arbiter的仲裁获得传输权后,被二级Cache节点0接收。访问二级Cache结果为在二级Cache命中,将命中的数据和状态应答repread通过读应答通道返回。RID域与reqread请求的ARID域一致为h3ff0;RDATA域是返回的数据,AXI总线宽度为128位返回两个128位有效数据;RRESP域为b00表示正确应答;RLAST域两次数据返回的第一次置0,第二次置1表示该burst的最后一次返回;RVALID为1表示应答有效。上述域都是原AXI协议具有的域。扩展的RSTATE域为b10表示返回SHD状态的Cache块,扩展的域是为支持Cache一致性协议需要在一级Cache中保存的信息。处理器核RREADY信号为1即处理器可以接收应答,并且经过Arbiter的仲裁获得传输权,则可以将应答返回处理器核。处理器核填充一级Cache,需要替换地址为h0100,0000,0000,1040的一级Cache块,该块的状态为SHD。处理器核0发送reqreplace请求。AWID域为h3ff0,其中AWID[13:4]表示发起写请求的处理器核节点号,AWID[3:0]是处理器核内部写请求队列号。AWADDR域为h0100,0000,0000,1040;AWLEN域为b0000表示传输次数为一次;AWSIZE域为b111表示传输的数据是128位;AWBURST域为b00表示是非burst请求,数据按地址递增的顺序给出;AWLOCK域为b00;AWCACHE域为b1111;AWPROT域为b010;AWVALID为1表示应答有效。如上域为AXI协议中原有域。在AXI协议上扩展的域如下,AWDID域为h100表示目标二级Cache节点号为256;AWSTATE域为b10表示替换写回块的状态为SHD,数据不需要写到二级Cache,但需要修改目录;AWREPFLAG域为b0表示是处理器的写地址请求。二级Cache节点256的AWREADY信号有效,并且通过Arbiter的仲裁获得传输权后,该写地址请求被二级Cache节点接收。WID域与AWID域相同为h3ff0;WDATA域是替换写回的数据,由于是SHD状态块因此没有数据写回;WSTRB域表示写选中为h0000,没有数据需要写;WLAST域置1表示传输结束;WVALID为1表示写数据请求有效。如上域为AXI协议中原有域。在AXI协议的基础上扩展的域如下,WDID域与AWDID域相同为h100;WREPFLAG域为b0表示是处理器的写数据请求。二级Cache节点256的WREADY信号为1表示二级Cache节点可以接收写数据请求,并且经过Arbiter的仲裁获得传输权,则可以将写请求传输到二级Cache。完成目录修改后,二级Cache给出写应答repreplace。BID域为h3ff0,与reqreplace请求的AWID域一致;BRESP域为b00表示写交易成功正确应答;BVALID为1表示写应答有效。处理器核1023的BREADY信号为1即处理器可以接收写应答,并且经过Arbiter的仲裁获得传输权,则可以将写应答返回处理器核。
例3.单处理器的存数指令访问一级Cache失效,通过扩展片上总线发出非一致性存数失效请求。发出请求的格式为,读请求标识ARID域为h00,ARID[3:0]是处理器内部请求队列号,与标准AXI协议一致;请求地址ARADDR域为h0000,0000,0000,1040;ARLEN域为b0001表示burst次数为两次;ARSIZE域为b111表示每次传输的数据是128位;ARBURST为b10表示是WRAP类型的burst请求,请求的子块数据优先返回;ARCACHE域为b1111表示Cache算法是Cache访问(Cacheable write-back,allocate on both reads and writes);ARPROT域为010表示非安全不带优先级的数据访问;ARVALID为1表示读请求有效。如上这些域都与标准的AXI协议一致。在AXI协议基础上扩展的ARDID域为h0;ARCMD域为b000。这两个扩展的域在标准AXI协议连接的设备中不起作用。读请求在二级Cache节点给出ARREADY信号,并通过Arbiter的仲裁获得传输权后,被二级Cache接收。访问二级Cache结果为在二级Cache命中,将数据应答通过读应答通道返回请求的处理器核。RID域与ARID域一致为h00;RDATA域是返回的数据,AXI总线宽度为128位返回两个128位有效数据;RRESP域为b00表示正确应答;RLAST域两次数据返回的第一次置0,第二次置1表示该burst的最后一次返回;RVALID为1表示应答有效。上述域都是标准AXI协议具有的域。扩展的RSTATE域置为b00表示返回EXC CLEAN状态的Cache块,非一致性互连时Cache块的状态都为独占状态。处理器的RREADY信号为1即处理器可以接收应答,并且经过Arbiter的仲裁获得传输权,则可以将应答返回处理器。处理器核填充一级Cache,需要替换地址为h0000,1000,0000,1040的一级Cache块,该块没有被修改过,没有新的数据写回到二级Cache,由于不维护一致性,因此不需要发出写操作请求。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。