CN102662885B - 对称式多核处理器维护二级缓存一致性的装置及其方法 - Google Patents
对称式多核处理器维护二级缓存一致性的装置及其方法 Download PDFInfo
- Publication number
- CN102662885B CN102662885B CN201210096182.8A CN201210096182A CN102662885B CN 102662885 B CN102662885 B CN 102662885B CN 201210096182 A CN201210096182 A CN 201210096182A CN 102662885 B CN102662885 B CN 102662885B
- Authority
- CN
- China
- Prior art keywords
- cache
- processor subsystem
- data
- plb6
- maintenance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供对称式多核处理器维护二级缓存一致性的装置及其方法,由二级缓存监控单元,共享数据缓存状态机单元,干涉接口单元,监听接口单元和主设备接口单元五个部分组成,共享数据缓存状态机单元分别与二级缓存监控单元、监听接口单元和主设备接口单元相连,监听接口单元与干涉接口单元相连。本发明的有益效果是以硬件方式自动完成缓存一致性处理,软件干预很少,同时利用PLB6协议的干涉总线规范,在对共享数据进行读访问时,可以从其它处理器缓存该数据的二级缓存中读取数据,通过干涉接口将读数据返回,这样减小了访问主存的开销,提高了系统性能。
Description
技术领域
本发明涉及对称式多核处理器领域,尤其是涉及一种基于PLB6总线结构的对称式多核处理器维护二级缓存一致性的装置及其方法。
背景技术
处理器最初发展的时候是单核体系结构,处理器的性能主要靠提高核心工作频率来提高,由于物理限制,不能把处理器无限提高频率,所以多核处理器结构已经成为处理器体系结构发展的一个重要趋势。
在对称式多核处理器(SMP)系统中,每个处理器都可以独立地访问主存。主存中能被系统中不同处理器访问的数据部分叫做主存的共享数据。处理器的缓存(Cache)保存了主存中的副本,如果系统中不同的处理器访问主存共享数据,就可能导致缓存中的数据与主存不一致,产生了缓存一致性(Coherency)问题。比如当系统中一个处理器访问主存中的共享数据,进行数据更新,而这部分数据已经在系统其它处理器的缓存中,则系统中其它处理器需要缓存一致性处理,如将该缓存行设为无效状态。所以缓存一致性设计则成为了对称式多核处理器设计中一个重要的方面和难点。在对称式多核处理器系统中,一级缓存(L1 Cache)通常在每个处理器核内,二级缓存(L2 Cache)通常在处理器核外,二级缓存一边和处理器核内的一级缓存相连,另一边通常和系统总线相连接。一级缓存和二级缓存的一致性维护主要是由处理器的局部总线完成,不同的处理器架构一般都定义了对应的一致性处理方法。对于每个处理器拥有独立的二级缓存系统,需要在系统集成时解决二级缓存的数据一致性问题。
目前一些对称式多核处理器系统采用将主存中的共享数据设置为不可缓存(Non-Cacheable),处理器直接访问主存,虽然这样不好带来二级缓存一致性问题,但是这样严重降低了系统性能,特别是在共享数据部分占据主存的比例较大的系统。另外一些对称式多核处理器系统的二级缓存一致性设计中,采用了软件方式或软硬件协同方式。软件开销很大,增加了大量的对主存访问的开销,在一定程度上降低了系统性能。而且随着更多的处理器加入对称式多核处理器系统,为了解决缓存一致性问题,软件需要较大的修改,不利于系统扩展。
PLB6协议为多核系统定义了一套完备的总线规范,能够有效维护二级缓存的数据一致性,并且能够减少对主存的访问开销,适合对称式多核处理器系统集成。但是PLB6协议的复杂性使得硬件设计方案面临很大的难度。
发明内容
本发明提供了一种基于PLB6总线结构的对称式多核处理器维护二级缓存一致性的装置及其方法。
本发明的特征在于:
对称式多核处理器维护二级缓存一致性装置,该装置设置在对称式多核处理器系统内一个处理器子系统中的系统PLB6总线和二级缓存控制器之间,且与系统PLB6总线和二级缓存控制器相连,由二级缓存监控单元,共享数据缓存状态机单元,干涉接口单元,监听接口单元和主设备接口单元五个部分组成,共享数据缓存状态机单元分别与二级缓存监控单元、监听接口单元和主设备接口单元相连,监听接口单元与干涉接口单元相连。
二级缓存监控单元包括寄存器和与寄存器相连的比较电路。
共享数据缓存状态机单元包括依次相连的共享数据缓存行状态阵列,状态阵列控制逻辑和主设备ID比较电路。
干涉接口单元包括二级缓存控制逻辑,PLB6干涉数据发送时序单元,PLB6发送干涉数据请求时序产生单元和数据缓冲器,数据缓冲器和PLB6发送干涉数据请求时序产生单元分别与PLB6干涉数据发送时序单元相连,二级缓存控制逻辑分别与数据缓冲器和PLB6发送干涉数据请求时序产生单元相连。
监听接口单元包括依次相连的缓存行查询/反馈逻辑,PLB6复合应答接收时序单元,PLB6局部响应发送时序单元和PLB6监听命令接收时序单元,其中缓存行查询/反馈逻辑与PLB6局部响应发送时序单元相连,缓存行查询/反馈逻辑与PLB6监听命令接收时序单元相连。
主设备接口单元包括依次相连的缓存行查询逻辑,PLB6主设备命令时序生成单元,PLB6主设备命令应答接收时序单元,PLB6主设备数据发送时序单元,PLB6主设备命令应答接收时序单元与PLB6主设备数据接收时序单元相连,PLB6主设备数据发送时序单元与写数据缓冲器相连,PLB6主设备数据接收时序单元与读数据缓冲器相连。
对称式多核处理器维护二级缓存一致性的方法,包括如下步骤:
步骤1000:处理器子系统A更新共享数据某条缓存行的内容;
步骤1001:处理器子系统A的维护二级缓存一致性装置将该共享数据地址对应的缓存行更新为修改;
步骤1002:处理器子系统A的维护二级缓存一致性装置将产生DClaim命令到PLB6主设备总线;
步骤1003:其它处理器子系统的维护二级缓存一致性装置内部监听接口收到该DClaim命令;
步骤1004:其它处理器子系统的维护二级缓存一致性装置内将DClaim命令中共享数据地址对应的缓存行在共享数据缓存状态机中的状态更新为无效;
步骤1005:它处理器子系统的维护二级缓存一致性装置将更新二级缓存中对应的共享数据的缓存行为无效;
步骤1010:处理器子系统B需要读取主存共享数据,该共享数据地址在步骤1000处理器子系统更新的缓存行的地址范围内。处理器子系统B的维护二级缓存一致性装置在PLB6主设备总线发出读命令;
步骤1011:处理器子系统A的维护二级缓存一致性装置收到PLb6监听总线的命令;
步骤1012:处理器子系统A的维护二级缓存一致性装置根据监听命令的地址要求,从二级缓存中取出处理器子系统B需要的数据;
步骤1013:监听命令的地址对应的缓存行在处理器子系统A中为修改状态,处理器子系统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的维护二级缓存一致性装置发送局部响应信号,表明可以提供teggedIntervention;
步骤1032:处理器子系统A的维护二级缓存一致性装置收到监听接口收到的复合应答信号;
步骤1033:处理器子系统A的维护二级缓存一致性装置收到监听接口收到的复合应答信号表明不需要处理器子系统A提供监听命令中的地址对应的共享数据,转入步骤1035。复合应答信号表明需要处理器子系统A提供监听命令中的地址对应的共享数据,可能的情况是处理器子系统B的二级缓存控制器将处理器子系统C的读命令中地址对应的缓存行标记设为无效,所以处理器子系统B无法提供所需的数据。在这种情况下,转入步骤1034;
步骤1034:处理器子系统A的维护二级缓存一致性装置根据监听命令的地址要求,从二级缓存中取出处理器子系统C需要的数据。处理器子系统A的维护二级缓存一致性装置通过干涉总线将从二级缓存中取得的数据发送。处理器C获得数据并更新共享数据缓存行的状态,和步骤1027一致;
步骤1035:无论处理器子系统A是否提供干涉数据,都不会更新监控命令中地址对应的缓存行在共享数据缓存状态机中的状态。
该设计主要应用于具有独立二级缓存的对称式多核处理器系统,以硬件方式自动完成缓存一致性处理,软件干预很少。同时利用PLB6协议的干涉(Intervention)总线规范,在对共享数据进行读访问时,可以从其它处理器缓存该数据的二级缓存中读取数据,通过干涉接口将读数据返回,这样减小了访问主存的开销,提高了系统性能。
附图说明
图1是根据本发明实施的一种基于PLB6总线架构的对称式多核处理器系统二级缓存一致性装置的结构框图及该装置在系统中的位置示意图;
图2是本发明中二级缓存监控单元的结构框图;
图3是本发明中监听接口单元结构框图;
图4是本发明中干涉接口单元结构框图;
图5是本发明中共享数据缓存状态机单元的结构框图;
图6是本发明中共享数据缓存行状态阵列设计示意图;
图7是本发明中主设备接口单元结构框图;
图8是本发明中共享数据缓存行状态转换示意图;
图9是使用该装置的PLB6总线架构的对称式多核处理器系统示意图;
图10是使用本发明维护二级缓存一致性的流程图。
具体实施方式
如图1所示,本发明中维护二级缓存一致性装置100位于二级缓存控制器120和系统PLB6总线之间。处理器150,二级缓存一致性的装置100,二级缓存控制器120和二级缓存110共同构成了对称式多核处理器系统中一个处理器子系统。
维护二级缓存一致性装置100,
由二级缓存监控单元101,共享数据缓存状态机单元102,干涉接口单元103,监听接口单元104和主设备接口单元105五个部分组成,共享数据缓存状态机单元102分别与二级缓存监控单元101、监听接口单元和主设备接口单元相连,监听接口单元与干涉接口单元相连。
二级缓存控制器120通过处理器局部总线130和处理器150相连,用于接受处理器150的控制。
二级缓存监控单元101,用于监控二级缓存控制器120对二级缓存110的标记更新,并将监控结果返回给共享数据缓存状态机单元102,二级缓存监控单元101可以改变共享数据缓存状态机单元102中的共享数据缓存行的状态。
共享数据缓存状态机单元102通过低速设备总线140和处理器150相连,用于处理器150初始化共享数据的在主存中的物理地址,共享数据缓存状态机单元102可以对二级缓存110的某缓存行的标记更新为无效。
干涉接口单元103和PLB6干涉总线131相连,干涉接口单元103可以读取二级缓存110的内容。
监听接口单元104和PLB6监听总线132相连,监听接口单元104可以查询共享数据缓存状态机单元102中的共享数据缓存行的状态。监听接口单元104可以改变共享数据缓存状态机单元102中的共享数据缓存行的状态。
主设备接口单元105和PLB6主设备总线133相连。主设备接口单元105,用于接收二级缓存控制器120的访问请求返回应答以响应请求,并和二级缓存控制器120进行相关的数据传递。主设备接口单元105可以查询共享数据缓存状态机单元102中的共享数据缓存行的状态。
如图1、图2所示,二级缓存监控单元101主要监控二级缓存控制器120对二级缓存110的标记更新,将更新使能211,物理地址210和标记212等二级缓存控制器120的控制信号作为监控对象。物理地址210寄存后直接作为物理地址213输出给共享数据缓存状态机单元102。
标记212在比较电路201中和修改状态值进行对比,如果相同并且更新使能211有效,则在下一个时钟周期输出修改信号214为高,表明修改有效。
标记212在比较电路202中和无效状态值进行对比,如果相同并且更新使能211有效,则在下一个时钟周期输出无效信号215为高,表明无效有效。
标记212在比较电路203中和排它状态值进行对比,如果相同并且更新使能211有效,则在下一个时钟周期输出排它信号216为高,表明排它有效。
如图3所示,监听接口单元104由缓存行查询/反馈逻辑701,PLB6复合应答(Combined Response)接收时序单元702,PLB6局部响应(Partial Response)发送时序单元703和PLB6监听命令接收时序单元704组成。PLB6复合应答时序单元702,PLB6局部响应发送时序单元703和PLB6监听命令接收时序单元704和PLB6监听总线132相连。PLB6监听命令接收时序单元704按照PLB6监听总线时序要求接收到PLB6监听总线132的监听命令,将命令传递给缓存行查询/反馈逻辑701。缓存行查询/反馈逻辑701将监听命令的物理地址713,监听命令类型717和监听命令主设备ID718发送给共享数据缓存状态机单元102。共享数据缓存状态机单元102返回共享数据缓存行的状态335。PLB6监听命令接收时序单元704接收到监听命令后,通知PLB6局部响应发送时序单元703准备发送响应信号。PLB6监听局部响应答发送时序单元703根据返回的共享数据缓存行的状态335来产生监听应答。PLB6局部响应发送时序单元703按照PLB6监听总线的时序发送局部应答后,通知PLB6复合应答接收时序单元702准备接收PLB6监听总线复合应答714。PLB6复合应答接收时序单元702将接收到的复合应答714输出给共享数据缓存状态机单元102,同时输出给缓存行查询/反馈逻辑701。
收到的监听命令由其它处理器子系统引起,且为读命令时,
如果共享数据缓存状态机单元返回的共享数据缓存行的状态335为Shared-Last,修改或排它,则输出有效的干涉使能710,数据长度719和监听命令的物理地址716给干涉接口单元103。
如果共享数据缓存状态机单元返回的共享数据缓存行的状态335为标记。接收到的复合应答信号表明只有标记状态的二级缓存可以提供干涉数据,则缓存行查询/反馈逻辑701输出有效的干涉使能710,数据长度719和监听命令的物理地址716给干涉接口单元103。
如图4所示,干涉接口单元103由二级缓存控制逻辑801,PLB6干涉数据发送时序单元802,PLB6发送干涉数据请求时序产生单元803和数据缓冲器(datebuffer)804组成。PLB6干涉数据发送时序单元802和PLB6发送干涉数据请求时序产生单元803和PLB6干涉总线131相连。PLB6发送干涉数据请求时序产生单元803收到监听接口单元104的有效的干涉使能710和物理地址716后,将物理地址716传送给二级缓存控制逻辑801。二级缓存控制逻辑801根据收到的物理地址读取二级缓存中相应的缓存行的缓存内容,将内容保存在数据缓冲器804。从二级缓存获得数据后,PLB6发送干涉数据请求时序产生单元803根据PLB6总线时序产生PLB6干涉数据发送命令,并通知PLB6干涉数据发送时序单元802准备发送数据。PLB6干涉数据发送时序单元802将数据缓冲器804中的数据按照PLB6干涉总线时序发送,发送的长度由监听接口单元输入的数据长度719决定。
如图5所示,共享数据缓存状态机单元102主要包括共享数据缓存行状态阵列301,状态阵列控制逻辑304,主设备ID比较电路302等组成。共享数据缓存行状态阵列301的一个设计实例如图6所示。共享数据缓存行状态阵列有N条记录,每条记录对应主存中共享数据在二级缓存中的一条缓存行。在一个32位地址总线和二级缓存行的长度为128字节的系统内,每条记录长度为32bit。高25bit401保存了缓存在二级缓存行中的共享数据的高位地址。状态阵列控制逻辑304确定待查询的物理地址是否属于主存中共享数据地址时,就是比较待查询物理地址的高25bit是否等于共享数据缓存行状态阵列中的一条记录的高25bit。bit6到bit4为这条缓存行的状态402,低4bit403为保留位。状态编码如图4所示410。处理器通过低速设备总线140进行共享数据缓存行状态阵列301的初始化配置,将系统中使用的共享数据物理地址按照缓存行大小划分,将每条缓存行的数据高位物理地址写入一个记录的高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接收二级缓存控制器的对主存的访问请求616,按照PLB6主设备总线的时序产生相关命令。缓存行查询逻辑604根据二级缓存控制器访问的物理地址611向共享数据缓存状态机单元102进行查询。共享数据缓存状态机单元102返回缺失(Miss)330或命中(Hit)331。如果返回命中331,表明二级缓存控制器120访问的物理地址属于主存中的共享数据,缓存行查询逻辑604通知PLB6主设备命令时序生成单元604产生PLB6主设备命令时将监听信号置为高电平,这样将引起PLB6总线监听命令的发生。当二级缓存控制器120更新某共享数据缓存行的内容时修改,共享数据缓存状态机单元102会通知PLB6主设备命令时序生成单元605生成DClaim命令,输入PLB6主设备命令时序生成单元有效的DClaim使能332和DClaim使能332的物理地址334。PLB6主设备接命令时序生成单元605产生PLB6总线主设备命令后,会通知PLB6主设备命令应答接收时序单元606按照PLB6主设备总线命令应答接收时序来接收PLB6主设备总线133的命令应答信号,并将请求应答信号619返回给二级缓存控制器120作为请求响应。
对于写访问,PLB6主设备命令应答接收时序单元606通知PLB6主设备数据发送时序单元607准备向PLB6总线写数据,写数数来自二级缓存控制器120的输入617,先存在写数据缓冲器602中,PLB6主设备数据发送时序单元607从写数据缓冲器602中获得数据按照PLB6总线时序要求发送。
对于读访问,PLB6主设备接口命令接收时序单元606通知PLB6主设备数据接收时序单元601准备接收PLB6总线读返回数据。返回的数据线存入读数据缓冲器603中。二级缓存控制器120从读数据缓冲器603中取走数据618。
共享数据缓存行的状态变化由图5、图8所示。
1、状态阵列控制逻辑304根据主设备接口单元105输入的物理地址611从共享数据缓存行状态阵列301查找是否该物理地址属于主存中共享数据地址,如果属于,产生命中331,如果不属于,产生缺失330,输出给主设备接口单元105。
2、当二级缓存监控单元101输入有效的修改214时,表明二级缓存控制器120更新某条缓存行的标记为修改。该缓存行的物理地址由二级缓存监控单元输入物理地址213。状态阵列控制逻辑304从共享数据缓存行状态阵列301查找是否该物理地址属于主存中共享数据地址,如果属于则向主设备接口单元105发送DClaim使能332。该缓存行的旧状态不可能为无效将被更新为修改503。
3、当二级缓存监控单元101输入有效的无效215,表明二级缓存控制器120更新某条缓存行的标记为无效。该缓存行的物理地址由二级缓存监控单元101输入物理地址213。状态阵列控制逻辑304从共享数据缓存行状态阵列301查找是否该物理地址属于主存中共享数据地址,如果属于则将缓存行的状态更新为无效501。
4、如果监听接口单元104输入有效的DClaim313,表明系统中其它处理器更新了某共享数据的缓存行的内容。状态阵列控制逻辑304根据DClaim命令的物理地址713将共享数据缓存行状态阵列301中该缓存行的状态更新为无效501。同时状态阵列控制逻辑304输出无效命令333和DClaim使能的物理地址334给二级缓存,将二级缓存中相关缓存行的标记更新为无效501。
5、主设备ID比较电路302比较监听命令的主设备ID718。如果监听命令的主设备ID718不等于本处理器子系统的主设备ID,监听命令是由其它处理器子系统访问主存引起。如果监听命令的主设备ID718等于本处理器子系统的主设备ID,监听命令是由本处理器访问主存引起。
6、如果监听命令类型717为读命令,且是由对称式多核处理器系统中其它处理器子系统引起的监听命令,状态阵列控制逻辑304根据监听接口单元输入的监听命令物理地址713将该地址对应的缓存行状态335从共享数据缓存行状态阵列301读出并输出给监听接口单元104。根据监听接口单元104输入的复合应答信号714,状态阵列控制逻辑304将更新缓存行状态。如果旧的状态为排它02,将更新为共享505。如果旧的状态为修改503,将更新为标记504,如果旧的状态为Shared-Last506,将更新为共享505,其余情况保持状态不变。
7、如果监听命令类型717为读命令,且是本处理器子系统的引起的监听命令,状态阵列控制逻辑304将监听接口单元输入的物理地址713和监听接口单元104输入的复合应答信号714保存。
8、当二级缓存监控单元输入有效的排它216时,表明二级缓存某行缓存行获得了主存数据或者执行了Cache Clean操作。该缓存行的物理地址由二级缓存监控单元输入物理地址213。状态阵列控制逻辑304从共享数据缓存行状态阵列301查找是否该物理地址属于主存中共享数据地址,如果属于则将该物理地址对应的缓存行的状态取出。如果状态为无效501,表明二级缓存某行缓存行获得了需要的主存数据。状态阵列控制逻辑304将二级缓存监控单元输入的物理地址213和保存的监听接口单元104输入的物理地址713比较。如果物理地址一致,则根据保存的监听接口单元输入的复合应答信号更新缓存行状态。如果复合应答信号表明从主存中获得数据,则缓存行状态更新为排它502。如果复合应答信号表明从其它处理器二级缓存中获得数据,则缓存行状态更新为Shared-Last506。如果状态不为无效500,表明当前处理器子系统对某行缓存行进行了Cache Clean操作。状态阵列控制逻辑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的二级缓存一致性装置根据监听命令的地址要求,从二级缓存中取出处理器子系统B需要的数据;
步骤1013:监听命令的地址对应的缓存行在处理器子系统A中为修改状态,处理器子系统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的二级缓存一致性装置发送局部响应信号,表明可以提供tegged Intervention;
步骤1032:处理器子系统A的二级缓存一致性装置收到监听接口收到的复合应答信号;
步骤1033:处理器子系统A的二级缓存一致性装置收到监听接口收到的复合应答信号表明不需要处理器子系统A提供监听命令中的地址对应的共享数据,转入步骤1035。复合应答信号表明需要处理器子系统A提供监听命令中的地址对应的共享数据,可能的情况是处理器子系统B的二级缓存控制器将处理器子系统C的读命令中地址对应的缓存行标记设为无效,所以处理器子系统B无法提供所需的数据。在这种情况下,转入步骤1034;
步骤1034:处理器子系统A的二级缓存一致性装置根据监听命令的地址要求,从二级缓存中取出处理器子系统C需要的数据。处理器子系统A的二级缓存一致性装置通过干涉总线将从二级缓存中取得的数据发送。处理器C获得数据并更新共享数据缓存行的状态,和步骤1027一致;
步骤1035:无论处理器子系统A是否提供干涉数据,都不会更新监控命令中地址对应的缓存行在共享数据缓存状态机中的状态。
以上对本发明的一个实施例进行了详细说明,但所述内容仅为本发明的较佳实施例,不能被认为用于限定本发明的实施范围。凡依本发明申请范围所作的均等变化与改进等,均应仍归属于本发明的专利涵盖范围之内。
Claims (4)
1.对称式多核处理器维护二级缓存一致性装置,该装置设置在对称式多核处理器系统内一个处理器子系统中的系统PLB6总线和二级缓存控制器之间,且与系统PLB6总线和二级缓存控制器相连,所述的对称式多核处理器维护二级缓存一致性装置由二级缓存监控单元,共享数据缓存状态机单元,干涉接口单元,监听接口单元和主设备接口单元五个部分组成,共享数据缓存状态机单元分别与二级缓存监控单元、监听接口单元和主设备接口单元相连,监听接口单元与干涉接口单元相连,其特征在于:干涉接口单元包括二级缓存控制逻辑,PLB6干涉数据发送时序单元,PLB6发送干涉数据请求时序产生单元和数据缓冲器,数据缓冲器和PLB6发送干涉数据请求时序产生单元分别与PLB6干涉数据发送时序单元相连,二级缓存控制逻辑分别与数据缓冲器和PLB6发送干涉数据请求时序产生单元相连。
2.根据权利要求1所述的对称式多核处理器维护二级缓存一致性装置,其特征在于:监听接口单元包括依次相连的缓存行查询/反馈逻辑,PLB6复合应答接收时序单元,PLB6局部响应发送时序单元和PLB6监听命令接收时序单元,其中缓存行查询/反馈逻辑与PLB6局部响应发送时序单元相连,缓存行查询/反馈逻辑与PLB6监听命令接收时序单元相连。
3.根据权利要求1所述的对称式多核处理器维护二级缓存一致性装置,其特征在于:主设备接口单元包括依次相连的缓存行查询逻辑,PLB6主设备命令时序生成单元,PLB6主设备命令应答接收时序单元,PLB6主设备数据发送时序单元,PLB6主设备命令应答接收时序单元与PLB6主设备数据接收时序单元相连,PLB6主设备数据发送时序单元与写数据缓冲器相连,PLB6主设备数据接收时序单元与读数据缓冲器相连。
4.一种采用如权利要求1所述的对称式多核处理器维护二级缓存一致性装置的维护二级缓存一致性的方法,其特征在于:包括如下步骤:
步骤1000:处理器子系统A更新共享数据某条缓存行的内容;
步骤1001:处理器子系统A的维护二级缓存一致性装置将共享数据地址对应的缓存行更新为修改;
步骤1002:处理器子系统A的维护二级缓存一致性装置将产生DClaim命令到PLB6主设备总线;
步骤1003:其它处理器子系统的维护二级缓存一致性装置内部监听接口收到该DClaim命令;
步骤1004:其它处理器子系统的维护二级缓存一致性装置内将DClaim命令中共享数据地址对应的缓存行在共享数据缓存状态机中的状态更新为无效;
步骤1005:它处理器子系统的维护二级缓存一致性装置将更新二级缓存中对应的共享数据的缓存行为无效;
步骤1010:处理器子系统B需要读取主存共享数据,该共享数据地址在步骤1000处理器子系统更新的缓存行的地址范围内,处理器子系统B的维护二级缓存一致性装置在PLB6主设备总线发出读命令;
步骤1011:处理器子系统A的维护二级缓存一致性装置收到PLb6监听总线的命令;
步骤1012:处理器子系统A的维护二级缓存一致性装置根据监听命令的地址要求,从二级缓存中取出处理器子系统B需要的数据;
步骤1013:监听命令的地址对应的缓存行在处理器子系统A中为修改状态,处理器子系统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的维护二级缓存一致性装置发送局部响应信号,表明提供tegged Intervention;
步骤1032:处理器子系统A的维护二级缓存一致性装置收到监听接口收到的复合应答信号;
步骤1033:处理器子系统A的维护二级缓存一致性装置收到监听接口收到的复合应答信号表明不需要处理器子系统A提供监听命令中的地址对应的共享数据,转入步骤1035;复合应答信号表明需要处理器子系统A提供监听命令中的地址对应的共享数据,情况是处理器子系统B的二级缓存控制器将处理器子系统C的读命令中地址对应的缓存行标记设为无效,所以处理器子系统B无法提供所需的数据,在这种情况下,转入步骤1034;
步骤1034:处理器子系统A的维护二级缓存一致性装置根据监听命令的地址要求,从二级缓存中取出处理器子系统C需要的数据,处理器子系统A的维护二级缓存一致性装置通过干涉总线将从二级缓存中取得的数据发送,处理器C获得数据并更新共享数据缓存行的状态,和步骤1027一致;
步骤1035:无论处理器子系统A是否提供干涉数据,都不会更新监控命令中地址对应的缓存行在共享数据缓存状态机中的状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210096182.8A CN102662885B (zh) | 2012-04-01 | 2012-04-01 | 对称式多核处理器维护二级缓存一致性的装置及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210096182.8A CN102662885B (zh) | 2012-04-01 | 2012-04-01 | 对称式多核处理器维护二级缓存一致性的装置及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102662885A CN102662885A (zh) | 2012-09-12 |
CN102662885B true CN102662885B (zh) | 2015-09-23 |
Family
ID=46772381
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210096182.8A Active CN102662885B (zh) | 2012-04-01 | 2012-04-01 | 对称式多核处理器维护二级缓存一致性的装置及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102662885B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014065802A2 (en) * | 2012-10-25 | 2014-05-01 | Empire Technology Development Llc | Multi-granular cache coherence |
CN104008068B (zh) * | 2014-05-30 | 2017-01-25 | 复旦大学 | 一种基于MSI协议的双核Cache一致性系统电路结构 |
CN105718242B (zh) * | 2016-01-15 | 2018-08-17 | 中国人民解放军国防科学技术大学 | 多核dsp中支持软硬件数据一致性的处理方法及系统 |
CN106126451B (zh) * | 2016-06-20 | 2019-01-25 | 中国航天科技集团公司第九研究院第七七一研究所 | 基于包含式Cache体系的多核处理器低功耗设计结构 |
CN106126450B (zh) * | 2016-06-20 | 2018-10-30 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种应对多核处理器监听访问冲突的Cache设计结构及方法 |
CN109213641B (zh) * | 2017-06-29 | 2021-10-26 | 展讯通信(上海)有限公司 | 缓存一致性检测系统及方法 |
CN107678854A (zh) * | 2017-08-31 | 2018-02-09 | 郑州云海信息技术有限公司 | 一种解决计算机缓存一致性冲突的方法 |
CN109062613B (zh) * | 2018-06-01 | 2020-08-28 | 杭州中天微系统有限公司 | 多核互联二级缓存访问验证方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101354682A (zh) * | 2008-09-12 | 2009-01-28 | 中国科学院计算技术研究所 | 一种用于解决多处理器访问目录冲突的装置和方法 |
CN101430664A (zh) * | 2008-09-12 | 2009-05-13 | 中国科学院计算技术研究所 | 一种多处理器系统及Cache一致性消息传输方法 |
CN101510191A (zh) * | 2009-03-26 | 2009-08-19 | 浙江大学 | 具备缓存窗口的多核体系架构及其实现方法 |
CN101859281A (zh) * | 2009-04-13 | 2010-10-13 | 廖鑫 | 基于集中式目录的嵌入式多核缓存一致性方法 |
CN101958834A (zh) * | 2010-09-27 | 2011-01-26 | 清华大学 | 支持高速缓存一致的片上网络系统及数据请求方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8095734B2 (en) * | 2009-04-30 | 2012-01-10 | Lsi Corporation | Managing cache line allocations for multiple issue processors |
-
2012
- 2012-04-01 CN CN201210096182.8A patent/CN102662885B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101354682A (zh) * | 2008-09-12 | 2009-01-28 | 中国科学院计算技术研究所 | 一种用于解决多处理器访问目录冲突的装置和方法 |
CN101430664A (zh) * | 2008-09-12 | 2009-05-13 | 中国科学院计算技术研究所 | 一种多处理器系统及Cache一致性消息传输方法 |
CN101510191A (zh) * | 2009-03-26 | 2009-08-19 | 浙江大学 | 具备缓存窗口的多核体系架构及其实现方法 |
CN101859281A (zh) * | 2009-04-13 | 2010-10-13 | 廖鑫 | 基于集中式目录的嵌入式多核缓存一致性方法 |
CN101958834A (zh) * | 2010-09-27 | 2011-01-26 | 清华大学 | 支持高速缓存一致的片上网络系统及数据请求方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102662885A (zh) | 2012-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102662885B (zh) | 对称式多核处理器维护二级缓存一致性的装置及其方法 | |
US9665486B2 (en) | Hierarchical cache structure and handling thereof | |
CN101593161B (zh) | 确保微处理器的快取存储器层级数据一致性的装置与方法 | |
US9208091B2 (en) | Coherent attached processor proxy having hybrid directory | |
US8510509B2 (en) | Data transfer to memory over an input/output (I/O) interconnect | |
CN111143244B (zh) | 计算机设备的内存访问方法和计算机设备 | |
US8423736B2 (en) | Maintaining cache coherence in a multi-node, symmetric multiprocessing computer | |
CN103294611B (zh) | 一种基于有限数据一致性状态的服务器节点数据缓存方法 | |
EP0834130A1 (en) | Reducing cache snooping overhead in a multilevel cache system with multiple bus masters and a shared level two cache | |
CN102968386B (zh) | 数据供给设备、缓存设备及数据供给方法 | |
CN105095254B (zh) | 一种实现数据一致性的方法及装置 | |
US20060053258A1 (en) | Cache filtering using core indicators | |
CN112416615A (zh) | 多核处理器及其缓存一致性的实现方法、装置和存储介质 | |
WO1996039665A1 (en) | Method and apparatus for reducing cache snooping overhead in a multilevel cache system | |
CN103999063B (zh) | 处理器的存储器共享 | |
US20140297966A1 (en) | Operation processing apparatus, information processing apparatus and method of controlling information processing apparatus | |
CN111651376B (zh) | 数据读写方法、处理器芯片及计算机设备 | |
JP3757117B2 (ja) | キャッシュ装置及び制御方法 | |
US8688890B2 (en) | Bit ordering for communicating an address on a serial fabric | |
US20220100672A1 (en) | Scalable region-based directory | |
US8489822B2 (en) | Providing a directory cache for peripheral devices | |
CN116795767A (zh) | 一种基于CHI协议的多核Cache共享一致性协议构建方法 | |
US20090300313A1 (en) | Memory clearing apparatus for zero clearing | |
US20180189181A1 (en) | Data read method and apparatus | |
US20140289474A1 (en) | Operation processing apparatus, information processing apparatus and method of controlling information processing apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |