2024年6月12日发(作者:)

(19)中华人民共和国国家知识产权局

(12)发明专利说明书

(21)申请号 CN2.8

(22)申请日 2012.04.01

(71)申请人 天津国芯科技有限公司

地址 300457 天津市滨海新区经济技术开发区第四大街天大科技园软件大厦南楼三层

309室

(72)发明人 李楠 王忠海 肖佐楠 郑茳

(74)专利代理机构 天津滨海科纬知识产权代理有限公司

代理人 杨慧玲

(51)

G06F13/16

权利要求说明书 说明书 幅图

(10)申请公布号 CN 102662885 A

(43)申请公布日 2012.09.12

(54)发明名称

对称式多核处理器维护二级缓存一

致性的装置及其方法

(57)摘要

本发明提供对称式多核处理器维护

二级缓存一致性的装置及其方法,由二级

缓存监控单元,共享数据缓存状态机单

元,干涉接口单元,监听接口单元和主设

备接口单元五个部分组成,共享数据缓存

状态机单元分别与二级缓存监控单元、监

听接口单元和主设备接口单元相连,监听

接口单元与干涉接口单元相连。本发明的

有益效果是以硬件方式自动完成缓存一致

性处理,软件干预很少,同时利用PLB6

协议的干涉总线规范,在对共享数据进行

读访问时,可以从其它处理器缓存该数据

的二级缓存中读取数据,通过干涉接口将

读数据返回,这样减小了访问主存的开

销,提高了系统性能。

法律状态

法律状态公告日

法律状态信息

法律状态

权 利 要 求 说 明 书

1.对称式多核处理器维护二级缓存一致性装置,该装置设置在对称式多核处理器系

统内一个处理器子系统中的系统PLB6总线和二级缓存控制器之间,

和二级缓存控制器相连,其特征在于:由二级缓

干涉接口单元,监听

且与系统PLB6总线

存监控单元,共享数据缓存状态机单元,

接口单元和主设备接口单元五个部分组成,共享数据缓存状态机单

元分别与二级缓存监控单元、监听接口单元和主设备接口单元相连,监听接

涉接口单元相连。 口单元与干

2.根据权利要求1所述的对称式多核处理器维护二级缓存一致性装置,其特征在于:

3.根据权利要求1所述的对称式多核处理器维护二级缓存一致性装置,其特征在于:

共享数据缓存状态机单元包括依次相连的共享数据缓存行状态

和主设备ID比较电路。

二级缓存监控单元包括寄存器和与寄存器相连的比较电路。

阵列,状态阵列控制逻辑

4.根据权利要求1所述的对称式多核处理器维护二级缓存一致性装置,其特征在于:

干涉接口单元包括二级缓存控制逻辑,PLB6干涉数据发送时

请求时序产生单元和数据缓冲器,

别与PLB6干

序单元,PLB6发送干涉数据

数据缓冲器和PLB6发送干涉数据请求时序产生单元分

涉数据发送时序单元相连,二级缓存控制逻辑分别与数据缓冲器和PLB6发

送干涉数据请求时序产生单元相连。

5.根据权利要求1所述的对称式多核处理器维护二级缓存一致性装置,其特征在于:

监听接口单元包括依次相连的缓存行查询/反馈逻辑,PLB6复

局部响应发送时序单元和PLB6监

PLB6局部响

合应答接收时序单元,PLB6

听命令接收时序单元,其中缓存行查询/反馈逻辑与

应发送时序单元相连,缓存行查询/反馈逻辑与PLB6监听命令接收时序单元

6.根据权利要求1所述的对称式多核处理器维护二级缓存一致性装置,其特征在于:

主设备接口单元包括依次相连的缓存行查询逻辑,PLB6主设

主设备命令应答接收时序单元,

收时序

相连。

备命令时序生成单元,PLB6

PLB6主设备数据发送时序单元,PLB6主设备命令应答接

单元与PLB6主设备数据接收时序单元相连,PLB6主设备数据发送时序单元与写

据缓冲器相连,PLB6主设备数据接收时序单元与读数据缓冲

器相连。

7.一种采用如权利要求1所述的对称式多核处理器维护二级缓存一致性装置的维护

步骤1000:处理器子系统A更新共享数据某条缓存行的内容;

二级缓存一致性的方法,其特征在于:包括如下步骤:

步骤1001:处理器子系统A的维护二级缓存一致性装置将该共享数据地址对应的

步骤1002:处理器子系统A的维护二级缓存一致性装置将产生DClaim命令到

PLB6

步骤1003:其它处理器子系统的维护二级缓存一致性装置内部监听接口收到该

步骤1004:其它处理器子系统的维护二级缓存一致性装置内将DClaim命令中共享

据地址对应的缓存行在共享数据缓存状态机中的状态更新为无

DClaim命令;

主设备总线;

存行更新为修改;

效;

步骤1005:它处理器子系统的维护二级缓存一致性装置将更新二级缓存中对应的

步骤1010:处理器子系统B需要读取主存共享数据,该共享数据地址在步骤1000

处理器子系统更新的缓存行的地址范围内。处理器子系统B的维护

在PLB6主设备总线发出读命令;

享数据的缓存行为无效;

二级缓存一致性装置

步骤1011:处理器子系统A的维护二级缓存一致性装置收到PLb6监听总线的命

令;

步骤1012:处理器子系统A的维护二级缓存一致性装置根据监听命令的地址要求,

步骤1013:监听命令的地址对应的缓存行在处理器子系统A中为修改状态,处理

从二级缓存中取出处理器子系统B需要的数据;

器 子系统A的维护二级缓存一致性装置发送局部响应信号,表

Intervention; 明可以提供修改

步骤1014:处理器子系统A的维护二级缓存一致性装置收到监听接口收到的复合

步骤1015:处理器子系统A的维护二级缓存一致性装置将监听命令中共享数据地

对应的缓存行在共享数据缓存状态机中的状态由修改更新为标

答信号;

记;

步骤1016:处理器子系统A的维护二级缓存一致性装置通过干涉总线将从二级缓

步骤1017:处理器子系统B获得处理器子系统A的数据,处理器子系统B的维护

二 级缓存一致性装置将共享数据地址对应的缓存行在共享数据缓

Shared-Last。表明处理器子系统B将提供

中取得的数据发送;

存状态机中的状态更新为

干涉数;。

步骤1020:处理器子系统C需要读取主存共享数据,该共享数据地址在步骤1000

处理器子系统更新的缓存行的地址范围内。处理器子系统C的维护

在PLB6主设备总线发出读命令; 二级缓存一致性装置

步骤1021:处理器子系统B的维护二级缓存一致性装置收到PLb6监听总线的命令;

步骤1022:处理器子系统B的维护二级缓存一致性装置根据监听命令的地址要求,

从二级缓存中取出处理器子系统B需要的数据;

步骤1023:处监听命令的地址对应的缓存行在处理器子系统B中为Shared-Last状

态,处理理器子系统B的维护二级缓存一致性装置发送局部响应信

Shared-Last Intervention; 号,表明可以提供

步骤1024:处理器子系统B的维护二级缓存一致性装置收到监听接口收到的复合

步骤1025:处理器子系统B的维护二级缓存一致性装置将监听命令中共享数据地

址 对应的缓存行在共享数据缓存状态机中的状态由Shared-Last

子系统B将不再提供干涉数据;

答信号。

更新为共享。表明处理器

步骤1026:处理器子系统B的维护二级缓存一致性装置通过干涉总线将从二级缓

步骤1027:处理器子系统C获得处理器子系统B的数据,处理器子系统C的维护

二 级缓存一致性装置将共享数据地址对应的缓存行在共享数据缓

Shared-Last。表明处理器子系统C将提供

中取得的数据发送。

存状态机中的状态更新为

干涉数据;

步骤1030:步骤1020处理器B的读请求也可以被处理器A的监听接口收到;

步骤1031:监听命令的地址对应的缓存行在处理器子系统A中为标记状态,处理

器 子系统A的维护二级缓存一致性装置发送局部响应信号,表

Intervention;

明可以提供tegged

步骤1032:处理器子系统A的维护二级缓存一致性装置收到监听接口收到的复合

答信号;

步骤1033:处理器子系统A的维护二级缓存一致性装置收到监听接口收到的复合

应 答信号表明不需要处理器子系统A提供监听命令中的地址对

1035。复合应答信号表明需要处理器子系

可能的情况是处理器

应的共享数据,转入步骤

统A提供监听命令中的地址对应的共享数据,

子系统B的二级缓存控制器将处理器子系统C的读命令中地址对应

的缓存行标记设为无效,所以处理器子系统B无法提

入步骤1034; 供所需的数据。在这种情况下,转

步骤1034:处理器子系统A的维护二级缓存一致性装置根据监听命令的地址要求,

从二级缓存中取出处理器子系统C需要的数据。处理器子系

装置通过干涉总线将从二级缓存中

缓存行的状态,

统A的维护二级缓存一致性

取得的数据发送。处理器C获得数据并更新共享数据

和步骤1027一致;

步骤1035:无论处理器子系统A是否提供干涉数据,都不会更新监控命令中地址

应的缓存行在共享数据缓存状态机中的状态。

说 明 书

技术领域

本发明涉及对称式多核处理器领域,尤其是涉及一种基于PLB6总线结构的对称式

背景技术

处理器最初发展的时候是单核体系结构,处理器的性能主要靠提高核心工作频率来

提高,由于物理限制,不能把处理器无限提高频率,所以多核处理器

器体系结构发展的一个重要趋势。

核处理器维护二级缓存一致性的装置及其方法。

结构已经成为处理

在对称式多核处理器(SMP)系统中,每个处理器都可以独立地访问主存。主存中能

被系统中不同处理器访问的数据部分叫做主存的共享数据。处理器的缓存

了主存中的副本,如果系统中不同的处理器访问主存共享数据,

据与主存不一致,产生了缓存一致性(Coherency)

主存中的共享数据,进行数据更新,

系统中其它处理器需

设计则

(Cache)保存

就可能导致缓存中的数

问题。比如当系统中一个处理器访问

而这部分数据已经在系统其它处理器的缓存中,则

要缓存一致性处理,如将该缓存行设为无效状态。所以缓存一致性

成为了对称式多核处理器设计中一个重要的方面和难点。在对称式多核处理器系

统中,一级缓存(L1 Cache)通常在每个处理器核内,二级缓存(L2 Cache)通

理器核外,二级缓存一边和处理器核内的一级缓存相连,另一

一级缓存和二级缓存的一致性维护主要是

一般都定义了对应的一致性

在系统集成时

常在处

边通常和系统总线相连接。

由处理器的局部总线完成,不同的处理器架构

处理方法。对于每个处理器拥有独立的二级缓存系统,需要

解决二级缓存的数据一致性问题。

目前一些对称式多核处理器系统采用将主存中的共享数据设置为不可缓存(Non

-Cacheable),处理器直接访问主存,虽然这样不好带来二级缓存一致性问题,

样严重降低了系统性能,特别是在共享数据部分占据主存的比

对称式多核处理器系统的二级缓存一致性设计中,

软件开销很大,增加了大量的对主

随着更多的处理器加

大的修

但是这

例较大的系统。另外一些

采用了软件方式或软硬件协同方式。

存访问的开销,在一定程度上降低了系统性能。而且

入对称式多核处理器系统,为了解决缓存一致性问题,软件需要较

改,不利于系统扩展。

PLB6协议为多核系统定义了一套完备的总线规范,能够有效维护二级缓存的数据

一 致性,并且能够减少对主存的访问开销,

议的复杂性使得硬件设计方适合对称式多核处理器系统集成。但是PLB6协

案面临很大的难度。

发明内容

本发明提供了一种基于PLB6总线结构的对称式多核处理器维护二级缓存一致性的

本发明的特征在于:

对称式多核处理器维护二级缓存一致性装置,该装置设置在对称式多核处理器系统

内一个处理器子系统中的系统PLB6总线和二级缓存控制器之间,且

二级缓存控制器相连,由二级缓存监控单元,共享数据

监听接口单元和主设备接口单元五

存监控单元、监听接

置及其方法。

与系统PLB6总线和

缓存状态机单元,干涉接口单元,

个部分组成,共享数据缓存状态机单元分别与二级缓

口单元和主设备接口单元相连,监听接口单元与干涉接口单元相连。

二级缓存监控单元包括寄存器和与寄存器相连的比较电路。

共享数据缓存状态机单元包括依次相连的共享数据缓存行状态阵列,状态阵列控制

干涉接口单元包括二级缓存控制逻辑,PLB6干涉数据发送时序单元,PLB6发送

干涉 数据请求时序产生单元和数据缓冲器,数据缓冲器和PLB6发送干涉

元分别与PLB6干涉数据发送时序单元相连,二

发送干涉数据请求时序产生

逻辑和主设备ID比较电路。

数据请求时序产生单

级缓存控制逻辑分别与数据缓冲器和PLB6

单元相连。

监听接口单元包括依次相连的缓存行查询/反馈逻辑,PLB6复合应答接收时序单元,

PLB6局部响应发送时序单元和PLB6监听命令接收时序单元,其中

与PLB6局部响应发送时序单元相连,缓存行查

元相连。

缓存行查询/反馈逻辑

询/反馈逻辑与PLB6监听命令接收时序单

主设备接口单元包括依次相连的缓存行查询逻辑,PLB6主设备命令时序生成单元,

PLB6主设备命令应答接收时序单元,PLB6主设备数据发送时序单

答接收时序单元与PLB6主设备数据接收时序单

写数据缓冲器相连,PLB6

元,PLB6主设备命令应

元相连,PLB6主设备数据发送时序单元与

主设备数据接收时序单元与读数据缓冲器相连。

对称式多核处理器维护二级缓存一致性的方法,包括如下步骤:

步骤1000:处理器子系统A更新共享数据某条缓存行的内容;

步骤1001:处理器子系统A的维护二级缓存一致性装置将该共享数据地址对应的

存行更新为修改;

步骤1002:处理器子系统A的维护二级缓存一致性装置将产生DClaim命令到

PLB6

步骤1003:其它处理器子系统的维护二级缓存一致性装置内部监听接口收到该

步骤1004:其它处理器子系统的维护二级缓存一致性装置内将DClaim命令中共享

步骤1005:它处理器子系统的维护二级缓存一致性装置将更新二级缓存中对应的

步骤1010:处理器子系统B需要读取主存共享数据,该共享数据地址在步骤1000

处理器子系统更新的缓存行的地址范围内。处理器子系统B的维护二级缓

在PLB6主设备总线发出读命令;

享数据的缓存行为无效;

据地址对应的缓存行在共享数据缓存状态机中的状态更新为无效;

DClaim命令;

主设备总线;

存一致性装置

步骤1011:处理器子系统A的维护二级缓存一致性装置收到PLb6监听总线的命

令;

步骤1012:处理器子系统A的维护二级缓存一致性装置根据监听命令的地址要求,

步骤1013:监听命令的地址对应的缓存行在处理器子系统A中为修改状态,处理

器 子系统A的维护二级缓存一致性装置发送局部响应信号,表明可以

Intervention;

从二级缓存中取出处理器子系统B需要的数据;

提供修改

步骤1014:处理器子系统A的维护二级缓存一致性装置收到监听接口收到的复合

应 答信号;

步骤1015:处理器子系统A的维护二级缓存一致性装置将监听命令中共享数据地

步骤1016:处理器子系统A的维护二级缓存一致性装置通过干涉总线将从二级缓

步骤1017:处理器子系统B获得处理器子系统A的数据,处理器子系统B的维护

二 级缓存一致性装置将共享数据地址对应的缓存行在共享数据缓存状态

Shared-Last。表明处理器子系统B将提供干涉数;。

中取得的数据发送;

对应的缓存行在共享数据缓存状态机中的状态由修改更新为标记;

机中的状态更新为

步骤1020:处理器子系统C需要读取主存共享数据,该共享数据地址在步骤1000

处理器子系统更新的缓存行的地址范围内。处理器子系统C的维护二级缓

在PLB6主设备总线发出读存一致性装置

命令;

步骤1021:处理器子系统B的维护二级缓存一致性装置收到PLb6监听总线的命令;

步骤1022:处理器子系统B的维护二级缓存一致性装置根据监听命令的地址要求,

步骤1023:处监听命令的地址对应的缓存行在处理器子系统B中为Shared-Last状

态,处理理器子系统B的维护二级缓存一致性装置发送局部响应信号,表

Shared-Last Intervention;

从二级缓存中取出处理器子系统B需要的数据;

明可以提供

步骤1024:处理器子系统B的维护二级缓存一致性装置收到监听接口收到的复合

答信号。

步骤1025:处理器子系统B的维护二级缓存一致性装置将监听命令中共享数据地

址 对应的缓存行在共享数据缓存状态机中的状态由Shared-Last更新为

子系统B将不再提供干涉数据; 共享。表明处理器

步骤1026:处理器子系统B的维护二级缓存一致性装置通过干涉总线将从二级缓

步骤1027:处理器子系统C获得处理器子系统B的数据,处理器子系统C的维护

二 级缓存一致性装置将共享数据地址对应的缓存行在共享数据缓存状态

Shared-Last。表明处理器子系统C将提供干涉数据;

中取得的数据发送。

机中的状态更新为

步骤1030:步骤1020处理器B的读请求也可以被处理器A的监听接口收到;

步骤1031:监听命令的地址对应的缓存行在处理器子系统A中为标记状态,处理

器 子系统A的维护二级缓存一致性装置发送局部响应信号,表明可以

Intervention;

提供tegged

步骤1032:处理器子系统A的维护二级缓存一致性装置收到监听接口收到的复合

步骤1033:处理器子系统A的维护二级缓存一致性装置收到监听接口收到的复合

应 答信号表明不需要处理器子系统A提供监听命令中的地址对应的共

1035。复合应答信号表明需要处理器子系统A提供监

可能的情况是处理器子系统B的

的缓存行标记

答信号;

享数据,转入步骤

听命令中的地址对应的共享数据,

二级缓存控制器将处理器子系统C的读命令中地址对应

设为无效,所以处理器子系统B无法提供所需的数据。在这种情况下,转

步骤1034:处理器子系统A的维护二级缓存一致性装置根据监听命令的地址要求,

从二级缓存中取出处理器子系统C需要的数据。处理器子系统A的

装置通过干涉总线将从二级缓存中取得的数据发

缓存行的状态,和步骤1027一致;

入步骤1034;

维护二级缓存一致性

送。处理器C获得数据并更新共享数据

步骤1035:无论处理器子系统A是否提供干涉数据,都不会更新监控命令中地址

该设计主要应用于具有独立二级缓存的对称式多核处理器系统,以硬件方式自动完

成缓存一致性处理,软件干预很少。同时利用PLB6协议的干涉

范,在对共享数据进行读访问时,可以从其它处理器缓

通过干涉接口将读数据返回,这样

应的缓存行在共享数据缓存状态机中的状态。

(Intervention)总线规

存该数据的二级缓存中读取数据,

减小了访问主存的开销,提高了系统性能。

附图说明

图1是根据本发明实施的一种基于PLB6总线架构的对称式多核处理器系统二级缓

图2是本发明中二级缓存监控单元的结构框图;

图3是本发明中监听接口单元结构框图;

图4是本发明中干涉接口单元结构框图;

一致性装置的结构框图及该装置在系统中的位置示意图;

图5是本发明中共享数据缓存状态机单元的结构框图;

图6是本发明中共享数据缓存行状态阵列设计示意图;

图7是本发明中主设备接口单元结构框图;

图8是本发明中共享数据缓存行状态转换示意图;

图9是使用该装置的PLB6总线架构的对称式多核处理器系统示意图;

图10是使用本发明维护二级缓存一致性的流程图。

具体实施方式

如图1所示,本发明中维护二级缓存一致性装置100位于二级缓存控制器120和系

统PLB6总线之间。处理器150,二级缓存一致性的装置100,二级缓存控

级缓存110共同构成了对称式多核处理器系统中一个处理器子

制器120和二

系统。

维护二级缓存一致性装置100,

由二级缓存监控单元101,共享数据缓存状态机单元102,干涉接口单元103,监

听 接口单元104和主设备接口单元105五个部分组成,共享数据缓存状

与二级缓存监控单元101、

口单元

态机单元102分别

监听接口单元和主设备接口单元相连,监听接口单元与干涉接

相连。

二级缓存控制器120通过处理器局部总线130和处理器150相连,用于接受处理器

150的控制。

二级缓存监控单元101,用于监控二级缓存控制器120对二级缓存110的标记更新,

并将监控结果返回给共享数据缓存状态机单元102,二级缓存监控单

数据缓存状态机单元102中的共享数据缓存行的状态。 元101可以改变共享

共享数据缓存状态机单元102通过低速设备总线140和处理器150相连,用于处理

器150初始化共享数据的在主存中的物理地址,共享数据缓存状态机单元

级缓存110的某缓存行的标记更新为无效。 102可以对二

干涉接口单元103和PLB6干涉总线131相连,干涉接口单元103可以读取二级缓

监听接口单元104和PLB6监听总线132相连,监听接口单元104可以查询共享数

据缓存状态机单元102中的共享数据缓存行的状态。监听接口单元104可以

据缓存状态机单元102中的共享数据缓存行的状态。

存110的内容。

改变共享数

主设备接口单元105和PLB6主设备总线133相连。主设备接口单元105,用于接

收 二级缓存控制器120的访问请求返回应答以响应请求,并和二级缓存

关的数据传递。主设备接口单元105可以查询共享数据

据缓存行的状态。

控制器120进行相

缓存状态机单元102中的共享数

如图1、图2所示,二级缓存监控单元101主要监控二级缓存控制器120对二级缓

存110的标记更新,将更新使能211,物理地址210和标记212等二级缓存

的控制信号作为监控对象。物理地址210寄存后直接作为物理

缓存状态机单元102。

控制器120

地址213输出给共享数据

标记212在比较电路201中和修改状态值进行对比,如果相同并且更新使能211有

效,则在下一个时钟周期输出修改信号214为高,表明修改有效。

标记212在比较电路202中和无效状态值进行对比,如果相同并且更新使能211有

标记212在比较电路203中和排它状态值进行对比,如果相同并且更新使能211有

如图3所示,监听接口单元104由缓存行查询/反馈逻辑701,PLB6复合应答

(Combined Response)接收时序单元702,PLB6局部响应(Partial Response)发

序单元703和PLB6监听命令接收时序单元704组成。PLB6复合应

局部响应发送时序单元703和PLB6监听命令接

连。PLB6监听命令接收时序单元

132的监听命

效,则在下一个时钟周期输出排它信号216为高,表明排它有效。

效,则在下一个时钟周期输出无效信号215为高,表明无效有效。

送时

答时序单元702,PLB6

收时序单元704和PLB6监听总线132相

704按照PLB6监听总线时序要求接收到PLB6监听总线

令,将命令传递给缓存行查询/反馈逻辑701。缓存行查询/反馈逻辑701将

监听命令的物理地址713,监听命令类型717和监听命令主设备ID718发送

存状态机单元102。共享数据缓存状态机单元102返回

监听命令接收时序单元704接收到

备发送响应信号。

给共享数据缓

共享数据缓存行的状态335。PLB6

监听命令后,通知PLB6局部响应发送时序单元703准

PLB6监听局部响应答发送时序单元703根据返回的共享数据缓存行的

状态335来产生监听应答。PLB6局部响应发送时序单元703按照PLB6监

送局部应答后,通知PLB6复合应答接收时序单元702

714。PLB6复合应答接收时序单元702将

机单元102,同时输出给缓

听总线的时序发

准备接收PLB6监听总线复合应答

接收到的复合应答714输出给共享数据缓存状态

存行查询/反馈逻辑701。

收到的监听命令由其它处理器子系统引起,且为读命令时,

如果共享数据缓存状态机单元返回的共享数据缓存行的状态335为Shared-Last,

修改或排它,则输出有效的干涉使能710,数据长度719和监听命令的物理

涉接口单元103。 地址716给干

如果共享数据缓存状态机单元返回的共享数据缓存行的状态335为标记。接收到的

复合应答信号表明只有标记状态的二级缓存可以提供干涉数据,则缓存行查

701输出有效的干涉使能710,数据长度719和监听命令的物

103。

询/反馈逻辑

理地址716给干涉接口单元

如图4所示,干涉接口单元103由二级缓存控制逻辑801,PLB6干涉数据发送时

序 单元802,PLB6发送干涉数据请求时序产生单元803和数据缓冲器

组成。PLB6干涉数据发送时序单元802和PLB6发送

PLB6干涉总线131相连。PLB6发送干

的有效的干涉使能

(datebuffer)804

干涉数据请求时序产生单元803和

涉数据请求时序产生单元803收到监听接口单元104

710和物理地址716后,将物理地址716传送给二级缓存控制逻辑801。

二级缓存控制逻辑801根据收到的物理地址读取二级缓存中相应的缓存行的

将内容保存在数据缓冲器804。从二级缓存获得数据后,

生单元803根

缓存内容,

PLB6发送干涉数据请求时序产

据PLB6总线时序产生PLB6干涉数据发送命令,并通知PLB6干涉数据发送

时序单元802准备发送数据。PLB6干涉数据发送时序单元802将数据缓冲

据按照PLB6干涉总线时序发送,发送的长度由监听接口单元

器804中的数

输入的数据长度719决定。

如图5所示,共享数据缓存状态机单元102主要包括共享数据缓存行状态阵列301,

状态阵列控制逻辑304,主设备ID比较电路302等组成。共享数据

的一个设计实例如图6所示。共享数据缓存行状态阵列

中共享数据在二级缓存中的一条缓存行。

128字节的系统内,每条记

缓存行状态阵列301

有N条记录,每条记录对应主存

在一个32位地址总线和二级缓存行的长度为

录长度为32bit。高25bit401保存了缓存在二级缓存行中的 共享数据的高

位地址。状态阵列控制逻辑304确定待查询的物理地址是否属于主存中共

享数据地址时,就是比较待查询物理地址的高25bit是否等于共享数据缓存

中的一条记录的高25bit。bit6到bit4为这条缓存行的状态402,

状态编码如图4所示410。处理器通过低速设备

301的初始化配置,将系统中使用

行的数据高位

行状态阵列

低4bit403为保留位。

总线140进行共享数据缓存行状态阵列

的共享数据物理地址按照缓存行大小划分,将每条缓存

物理地址写入一个记录的高25bit。

如图7所示,主设备接口单元105由缓存行查询逻辑604,写数据缓冲器602,读

数 据缓冲器603,PLB6主设备命令时序生成单元605,PLB6主设备命

606,PLB6主设备数据发送时序单元607和

主设备命令时序生成单元

据发送

令应答接收时序单元

PLB6主设备数据接收时序单元601组成。PLB6

605,PLB6主设备命令应答接收时序单元606,PLB6主设备数

时序单元607和PLB6主设备数据接收时序单元601连接了PLB6主设备总线133。

PLB6主设备命令时序生成单元605接收二级缓存控制器的对主存的

PLB6主设备总线的时序产生相关命令。缓存行查询逻

物理地址611向共享数据缓存状态机单元

返回缺失(Miss)330或命中

访问的物理地址属于

生成单

访问请求616,按照

辑604根据二级缓存控制器访问的

102进行查询。共享数据缓存状态机单元102

(Hit)331。如果返回命中331,表明二级缓存控制器120

主存中的共享数据,缓存行查询逻辑604通知PLB6主设备命令时序

元604产生PLB6主设备命令时将监听信号置为高电平,这样将引起PLB6总线监

听命令的发生。当二级缓存控制器120更新某共享数据缓存行的内容时修改,

缓存状态机单元102会通知PLB6主设备命令时序生成单元

PLB6主设备命令时序生成单元有效的

PLB6主设备接命令

共享数据

605生成DClaim命令,输入

DClaim使能332和DClaim使能332的物理地址334。

时序生成单元605产生PLB6总线主设备命令后,会通知PLB6主设备

命令应答接收时序单元606按照PLB6主设备总线命令

应答接收时序来接收PLB6主设备 总线133的命令应答信号,并将请求应答

响应。 信号619返回给二级缓存控制器120作为请求

对于写访问,PLB6主设备命令应答接收时序单元606通知PLB6主设备数据发送

时序 单元607准备向PLB6总线写数据,写数数来自二级缓存控制器120

写数据缓冲器602中,PLB6主设备数据发送时序单元

据按照PLB6总线时序要求发送。

的输入617,先存在

607从写数据缓冲器602中获得数

对于读访问,PLB6主设备接口命令接收时序单元606通知PLB6主设备数据接收

时序 单元601准备接收PLB6总线读返回数据。返回的数据线存入读数据

缓存控制器120从读数据缓冲器603中取走数据618。 缓冲器603中。二级

共享数据缓存行的状态变化由图5、图8所示。

1、状态阵列控制逻辑304根据主设备接口单元105输入的物理地址611从共享数

据 缓存行状态阵列301查找是否该物理地址属于主存中共享数据地址,

中331,如果不属于,产生缺失330,输出给主设备接如果属于,产生命

口单元105。

2、当二级缓存监控单元101输入有效的修改214时,表明二级缓存控制器120更

新 某条缓存行的标记为修改。该缓存行的物理地址由二级缓存监控单元

状态阵列控制逻辑304从共享数据缓存行状态阵列301

共享数据地址,如果属于则向主设备接口

状态不可能为无效将被更新

输入物理地址213。

查找是否该物理地址属于主存中

单元105发送DClaim使能332。该缓存行的旧

为修改503。

3、当二级缓存监控单元101输入有效的无效215,表明二级缓存控制器120更新

某 条缓存行的标记为无效。该缓存行的物理地址由二级缓存监控单元

213。状态阵列控制逻辑304从共享数据缓存行状态阵

存中共享数据地址,如果属于则将缓存行

101输入物理地址

列301查找是否该物理地址属于主

的状态更新为无效501。

4、如果监听接口单元104输入有效的DClaim313,表明系统中其它处理器更新了

某 共享数据的缓存行的内容。状态阵列控制逻辑304根据DClaim命令

享数据缓存行状态阵列301中该缓存行的状态更新为无

304输出无效命令333和DClaim使能的

存行的标记更新为无效501。

的物理地址713将共

效501。同时状态阵列控制逻辑

物理地址334给二级缓存,将二级缓存中相关缓

5、主设备ID比较电路302比较监听命令的主设备ID718。如果监听命令的主设备

ID718不等于本处理器子系统的主设备ID,监

起。如果监听命令的主设备

理器访问主存

听命令是由其它处理器子系统访问主存引

ID718等于本处理器子系统的主设备ID,监听命令是由本处

引起。

6、如果监听命令类型717为读命令,且是由对称式多核处理器系统中其它处理器

子 系统引起的监听命令,状态阵列控制逻辑304根据监听接口单元输入

址713将该地址对应的缓存行状态335从共享数据缓存

听接口单元104。根据监听接口单元104

将更新缓存行状态。

503,

的监听命令物理地

行状态阵列301读出并输出给监

输入的复合应答信号714,状态阵列控制逻辑304

如果旧的状态为排它02,将更新为共享505。如果旧的状态为修改

将更新为标记504,如果旧的状态为Shared-Last506,将更新为共享505,其余情

7、如果监听命令类型717为读命令,且是本处理器子系统的引起的监听命令,状

况保持状态不变。

态 阵列控制逻辑304将监听接口单元输入的物理地址713和监听接口单

应答信号714保存。 元104输入的复合

8、当二级缓存监控单元输入有效的排它216时,表明二级缓存某行缓存行获得了

主 存数据或者执行了Cache Clean操作。该缓存行的物理地址由二级缓

理地址213。状态阵列控制逻辑304从共享数据缓存行

属于主存中共享数据地址,如果属于则将

态为无效501,表明二级缓

将二级缓存监

存监控单元输入物

状态阵列301查找是否该物理地址

该物理地址对应的缓存行的状态取出。如果状

存某行缓存行获得了需要的主存数据。状态阵列控制逻辑304

控单元输入的物理地址213和保存的监听接口单元104输入的物理地址713

比较。如果物理地址一致,则根据保存的监听接口单元输入的复合应答信号

状态。如果复合应答信号表明从主存中获得数据,则缓存行状

合应答信号表明从其它处理器二级缓存中获得数

Shared-Last506。如果状态不为无效500,表明

Cache Clean操作。状态阵列控制

态从共享数据缓存行

果旧状

更新缓存行

态更新为排它502。如果复

据,则缓存行状态更新为

当前处理器子系统对某行缓存行进行了

逻辑304把二级缓存监控单元输入314对应的缓存行状

状态阵列301取出,如果旧状态为修改503,将更新为排它502。如

态为标记504,将更新为共享505,其余情况保持状态不变。

9、如果监听命令类型717为写命令,且不为Cache Clean,监听命令由系统中其它

处理器子系统引起,状态阵列控制逻辑304将共享数据缓存行状态阵列301

口单元输入的物理地址713对应的缓存行状态更新为无效501。中和监听接

10、如果监听命令类型717为Cache Clean,,监听命令由系统中其它处理器子系

统 引起,状态阵列控制逻辑304把监听接口单元输入的物理地址713对

共享数据缓存行状态阵列301取出,如果旧状态为标记

况保持不变。

应的缓存行状态从

504,将更新为共享505,其余情

使用如上所述的维护二级缓存的一致性装置非常便于系统扩展。

图9所述为使用该装置的PLB6总线架构的对称式多核处理器系统示意图。加入新

的 处理器时,只需增加一个新的处理器子系统,维护二级缓存的一致性

在图9所示对称式多核处理器系统中,维护二级

将由硬件自动完成。

缓存一致性的流程图如图10所示。

步骤1000:处理器子系统A更新共享数据某条缓存行的内容;

步骤1001:处理器子系统A的二级缓存一致性装置将该共享数据地址对应的缓存

步骤1002:处理器子系统A的二级缓存一致性装置将产生DClaim命令到PLB6主

步骤1003:其它处理器子系统的二级缓存一致性装置内部监听接口收到该DClaim

步骤1004:其它处理器子系统的二级缓存一致性装置内将DClaim命令中共享数据

步骤1005:它处理器子系统的二级缓存一致性装置将更新二级缓存中对应的共享

步骤1010:处理器子系统B需要读取主存共享数据,该共享数据地址在步骤1000

处 理器子系统更新的缓存行的地址范围内。处理器子系统B的二级缓

主设备总线发出读命令;

据的缓存行为无效;

址对应的缓存行在共享数据缓存状态机中的状态更新为无效;

令;

备总线;

更新为修改;

存一致性装置在PLB6

步骤1011:处理器子系统A的二级缓存一致性装置收到PLb6监听总线的命令;

步骤1012:处理器子系统A的二级缓存一致性装置根据监听命令的地址要求,从

步骤1013:监听命令的地址对应的缓存行在处理器子系统A中为修改状态,处理

器 子系统A的二级缓存一致性装置发送局部响应信号,表明可以提供

级缓存中取出处理器子系统B需要的数据;

修改Intervention;

步骤1014:处理器子系统A的二级缓存一致性装置收到监听接口收到的复合应答

步骤1015:处理器子系统A的二级缓存一致性装置将监听命令中共享数据地址对

步骤1016:处理器子系统A的二级缓存一致性装置通过干涉总线将从二级缓存中

步骤1017:处理器子系统B获得处理器子系统A的数据,处理器子系统B的二级

缓 存一致性装置将共享数据地址对应的缓存行在共享数据缓存状态机中

Shared-Last。表明处理器子系统B将提供干涉数;。

得的数据发送;

的缓存行在共享数据缓存状态机中的状态由修改更新为标记;

号;

的状态更新为

步骤1020:处理器子系统C需要读取主存共享数据,该共享数据地址在步骤1000

处理器子系统更新的缓存行的地址范围内。处理器子系统C的二级缓存一

PLB6主设备总线发出读命令; 致性装置在

步骤1021:处理器子系统B的二级缓存一致性装置收到PLb6监听总线的命令;

步骤1022:处理器子系统B的二级缓存一致性装置根据监听命令的地址要求,从

步骤1023:处监听命令的地址对应的缓存行在处理器子系统B中为Shared-Last状

态,处理理器子系统B的二级缓存一致性装置发送局部响应信号,表明可

Shared-Last Intervention;

级缓存中取出处理器子系统B需要的数据;

以提供

步骤1024:处理器子系统B的二级缓存一致性装置收到监听接口收到的复合应答

步骤1025:处理器子系统B的二级缓存一致性装置将监听命令中共享数据地址对

应 的缓存行在共享数据缓存状态机中的状态由Shared-Last更新为共享。

统B将不再提供干涉数据;

号。

表明处理器子系

步骤1026:处理器子系统B的二级缓存一致性装置通过干涉总线将从二级缓存中

步骤1027:处理器子系统C获得处理器子系统B的数据,处理器子系统C的二级

缓 存一致性装置将共享数据地址对应的缓存行在共享数据缓存状态机中

Shared-Last。表明处理器子系统C将提供干涉数据;

得的数据发送。

的状态更新为

步骤1030:步骤1020处理器B的读请求也可以被处理器A的监听接口收到;

步骤1031:监听命令的地址对应的缓存行在处理器子系统A中为标记状态,处理

器 子系统A的二级缓存一致性装置发送局部响应信号,表明可以提供

tegged Intervention;

步骤1032:处理器子系统A的二级缓存一致性装置收到监听接口收到的复合应答

步骤1033:处理器子系统A的二级缓存一致性装置收到监听接口收到的复合应答

信号 表明不需要处理器子系统A提供监听命令中的地址对应的共享数据,

合应答信号表明需要处理器子系统A提供监听命令中

况是处理器子系统B的二级缓存

标记设为无效,

号;

转入步骤1035。复

的地址对应的共享数据,可能的情

控制器将处理器子系统C的读命令中地址对应的缓存行

所以处理器子系统B无法提供所需的数据。在这种情况下,转入步骤1034;

步骤1034:处理器子系统A的二级缓存一致性装置根据监听命令的地址要求,从

二 级缓存中取出处理器子系统C需要的数据。处理器子系统A的二级

干涉总线将从二级缓存中取得的数据发送。处理

状态,和步骤1027一致;

缓存一致性装置通过

器C获得数据并更新共享数据缓存行的

步骤1035:无论处理器子系统A是否提供干涉数据,都不会更新监控命令中地址

以上对本发明的一个实施例进行了详细说明,但所述内容仅为本发明的较佳实施例,

不能被认为用于限定本发明的实施范围。凡依本发明申请范围所作的

均应仍归属于本发明的专利涵盖范围之内。

应的缓存行在共享数据缓存状态机中的状态。

均等变化与改进等,