CN116089116A - 数据处理方法及装置 - Google Patents
数据处理方法及装置 Download PDFInfo
- Publication number
- CN116089116A CN116089116A CN202211621626.5A CN202211621626A CN116089116A CN 116089116 A CN116089116 A CN 116089116A CN 202211621626 A CN202211621626 A CN 202211621626A CN 116089116 A CN116089116 A CN 116089116A
- Authority
- CN
- China
- Prior art keywords
- cache
- cache device
- data
- response
- node
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请实施例提供一种数据处理方法及装置,应用于多核处理系统,所述方法包括:接收所述缓存设备发出的侦听响应;检查所述侦听响应是否为冲突响应;当所述侦听响应为冲突响应时,通知所述N个缓存设备中的第1缓存设备将第一次处理后的所述目标缓存行数据转发给第2缓存设备;以及直至通知所述第N‑1缓存设备将第N‑1次处理后的所述目标缓存行数据转发给第N缓存设备;以及通知所述第N缓存设备等待来自所述第N‑1缓存设备的转发数据,以及指定所述第N缓存设备为事件的完成者。本申请提供的方法通过将针对同一地址的事件进行合并,可以有效的减小数据传输延迟。
Description
技术领域
本发明实施例涉及数据处理领域,具体涉及一种数据处理方法及装置。
背景技术
在多核或多处理器系统中,多个缓存(cache)中的每个缓存所存储的数据块都是它们共享的内存中对应地址的数据块的副本。因此在多核或多处理器系统中,缓存一致性既包括每个缓存和内存之间的一致性,也包括多个缓存彼此之间的一致性。也就是说,对于在内存中的同一位置的数据块,不同缓存中与之对应的缓存行(cache line)或数据块不应该有不一致的值。
当多核或多处理器系统发生缓存一致性冲突时,现有的处理方法会产生较大的时间延迟,进而影响系统的执行效率。因此,如何提供一种缓存一致性冲突的处理方法,以提高多核或多处理器系统的执行效率,成为了本领域技术人员亟需解决的技术问题。
发明内容
有鉴于此,本申请实施例提供一种数据处理方法及装置,用于多核或多处理器系统发生缓存一致性冲突时,本申请实施例提供的数据处理方法及装置能够减少处理延迟以及对网络带宽的占用。
为实现上述目的,本申请实施例提供如下技术方案。
第一方面,本发明实施例提供一种数据处理方法,应用于多核处理系统,该多核处理系统包括至少两个缓存设备以及负责协调所述至少两个缓存设备的一致性节点,所述方法包括:
所述一致性节点接收所述缓存设备发出的侦听响应;
检查所述侦听响应是否为冲突响应,所述冲突响应包括N个缓存设备分别发出对目标缓存行数据的请求,其中N大于等于2;
当所述侦听响应为冲突响应时,所述一致性节点通知所述N个缓存设备中的第1缓存设备将处理后的目标缓存行数据转发给第2缓存设备;通知所述第2缓存设备接收所述第1缓存设备转发的目标缓存行数据以及将处理后的目标缓存行数据转发给第3缓存设备,以及直至通知第N-1缓存设备将处理后的目标缓存行数据转发给第N缓存设备;
当所述侦听响应为冲突响应时,所述一致性节点通知所述第N缓存设备等待来自所述第N-1缓存设备的转发数据,以及指定所述第N缓存设备为合并后事件的完成者。
第二方面,本申请实施例还提供一种数据处理装置,应用于多核处理系统,该多核处理系统包括至少两个缓存设备以及负责协调所述至少两个缓存设备的一致性节点,包括:
第一接收模块,用于所述一致性节点接收缓存设备发出的侦听响应;
检测模块,用于检查所述侦听响应是否为冲突响应,所述冲突响应包括N个缓存设备分别发出对目标缓存行数据的请求,其中N大于等于2;
第一处理模块,用于当所述侦听响应为冲突响应时,所述一致性节点通知所述N个缓存设备中的第1缓存设备将处理后的目标缓存行数据转发给第2缓存设备;通知所述第2缓存设备接收所述第1缓存设备转发的目标缓存行数据以及将处理后的目标缓存行数据转发给第3缓存设备,以及直至通知第N-1缓存设备将处理后的目标缓存行数据转发给第N缓存设备;
第二处理模块,用于当所述侦听响应为冲突响应时,所述一致性节点通知所述第N缓存设备等待来自所述第N-1缓存设备的转发数据,以及指定所述第N缓存设备为合并后事件的完成者。
第三方面,本申请实施例还提供一种多核处理系统,包括:
至少两个缓存设备;
一致性节点,用于负责协调所述至少两个缓存设备,所述一致性节点被配置为执行所述的数据处理方法。
可以看出,本发明实施例中,通过将针对同一缓存行数据的请求合并成一个事件,可以减少报文的数量,从而减少处理延迟以及对网络带宽、网络功耗的占用,并且也可以减轻对一致性节点资源的消耗。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为一种包含有多个处理器核的处理系统的结构示意图;
图2为本申请实施例提供的数据处理方法的流程图;
图3为本申请一实施例提供的数据处理过程中的信息交互示意图;
图4为本申请另一实施例提供的数据处理过程中的信息交互示意图;
图5为本申请又一实施例提供的数据处理过程中的信息交互示意图;
图6为本申请又一实施例提供的数据处理过程中的信息交互示意图;
图7为本申请又一实施例提供的数据处理过程中的信息交互示意图;
图8为本申请实施例提供的数据处理装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如背景技术所述,在多核或多处理器系统中,一般包含多级的缓存系统,这是由于处理器的速度比内存系统的速度要快得多,两者之间的速度差异可以超过2个数量级,为了解决处理器速度和内存速度的差异问题,现代处理器中往往包含多级的高速缓存系统,高速缓存访问和运行速度比内存快。例如,图1示例性的示出了一种多核处理系统,该多核处理系统包含:4个支持同时多线程(SMT)的处理器核200、一级缓存210、二级缓存220以及三级缓存230。其中,一级缓存210通常为每个处理器核200所私有的缓存,一级缓存210可以进一步分为用于存储数据的数据缓存211和用于存储指令的指令缓存213;二级缓存220通常也为每个处理器核200所私有的缓存,但不区分指令和数据;三级缓存230被多个处理器核200共享,例如图示中被4个处理器核200所共享,三级缓存230通常也不区分指令和数据。上述多级缓存系统进一步通过片上网络240连接到内存250。
缓存被分为多个缓存行(Cache line),每个缓存行可以是64比特(byte)、128比特等,缓存行是数据交换的最小单位。缓存行可以包括数据区以及标志区;数据区可以包括数据字段用于存储数据,标志区可以包括地址字段、状态字段等。地址字段用于指示数据的内存地址。状态字段用于指示数据的一致性状态,也称缓存行的一致性状态。
在多核处理系统中,同一个数据的多个副本可以同时存在于不同的缓存设备中。若各处理器自由修改其本地的副本,会导致不同处理器对同一个数据观察到的结果不一致,另外处理器对主存的修改也会导致数据的不一致。为解决上述不一致的问题引入一致性协议,例如MESI(Modified Exclusive Shared Or Invalid)协议。
其中,MESI协议定义了缓存行的四种状态,包括修改态(Modified)、独占态(Exclusive)、共享态(Shared)、无效态(Invalid),以说明缓存行中数据的状态。
修改态:简称M态,缓存行的数据有效,数据被修改,与内存中的数据不一致,数据只存在于本地缓存设备中。也就是说,本地缓存设备中的数据有效,而内存中的数据无效。
独占态:简称E态,缓存行的数据有效,数据和内存中的数据一致,数据只存在于本地缓存设备中。也就是说,本地缓存设备独占该数据的权限,且该数据未修改过,与内存中的数据相同。
共享态:简称S态,缓存行的数据有效,数据和内存中的数据一致,数据可以存在于多个缓存设备中。也就是说,多个缓存设备都缓存了该数据,且内存中的数据有效。
无效态:简称I态,缓存行不含有效数据。或者说,缓存设备中无该数据。
需要说明的是,本申请实施例仅是以MESI协议为例来说明,本申请实施例所述的方法还可以应用于其他的缓存一致性协议,例如由MESI演化的MOESI(Modified OwnedExclusive Shared Or Invalid)协议、MESIF(Modified Exclusive Shared Invalid andForwarding)协议等,对此,本申请实施例不作限定。
在上述多核处理系统中,可能会出现两个或以上的缓存设备发出针对于同一个缓存行数据的请求,例如针对于同一个缓存行数据的独占请求、写入请求等。现有的解决方案是按照一定的规则对发生冲突的请求进行排序,将排序结果在前的请求优先处理,将排序结果在后的请求押后处理,待前一个请求完全处理完成后再处理下一个请求,即按照排序结果逐一处理发生冲突的请求。然而,现有的这种按照排序结果逐一处理请求的方法在处理的过程中会产生大量的控制报文和数据报文,这些控制报文和数据报文在缓存设备之间、缓存设备与一致性节点(Home Node,HN)之间传递,既会导致时间的延迟,也会占用有限的网络带宽。
针对上述问题,本发明实施例提供了一种数据处理方法及装置,所述方法应用于多核处理系统,该多核处理系统包括至少两个缓存设备以及负责协调所述至少两个缓存设备的一致性节点,所述方法包括:所述一致性节点接收所述缓存设备发出的侦听响应;检查所述侦听响应是否为冲突响应,所述冲突响应包括N个缓存设备分别发出对目标缓存行数据的独占请求或写入请求,其中N大于等于2;当所述侦听响应为冲突响应时,所述一致性节点通知所述N个缓存设备中的第1缓存设备将第一次处理后的所述目标缓存行数据转发给第2缓存设备;通知所述第2缓存设备将第二次处理后的所述目标缓存行数据转发给第3缓存设备,以及直至通知所述第N-1缓存设备将第N-1次处理后的所述目标缓存行数据转发给第N缓存设备;当所述侦听响应为冲突响应时,所述一致性节点通知所述第N缓存设备等待来自所述第N-1缓存设备的转发数据,以及指定所述第N缓存设备为事件的完成者。
可以看出,本发明实施例提供的数据处理方法通过将针对同一缓存行数据的请求进行合并,上述请求按照一致性节点排好的顺序传输,由一致性节点指定的缓存设备作为合并后的事件的完成者,从而可以减少报文的数量,减少处理延迟以及对网络带宽、网络功耗的占用,并且也可以减轻对一致性节点资源的消耗。
下面将对本发明实施例提供的数据处理方法进行详细介绍。
在可选实现中,图2示出了本发明实施例提供的数据处理方法的可选流程图,所述方法可以应用于包括多核处理系统中,该多核处理系统包括至少两个缓存设备以及负责协调所述至少两个缓存设备的一致性节点,所述方法包括:
步骤S110,所述一致性节点接收所述缓存设备发出的侦听响应。
所述一致性节点用于管理各个缓存设备中缓存行的数据和状态。具体的,该一致性节点用于接收缓存设备发出的请求,向缓存设备发出侦听指令,以及接收缓存设备返回的侦听响应等。其中,请求由缓存设备向一致性节点发出,例如独占请求、共享请求等;侦听指令由一致性节点向缓存设备发出,用于响应缓存设备发出的请求;侦听响应为缓存设备向一致性节点发出,用于响应一致性节点发出的侦听指令。
步骤S120,检查所述侦听响应是否为冲突响应,所述冲突响应包括N个缓存设备分别发出对目标缓存行数据的请求,其中N大于等于2;
所述N个缓存设备可以依次命名为所述第1缓存设备、所述第2缓存设备、…、所述第N缓存设备。当缓存设备发现一致性节点发出的侦听指令存在冲突时,缓存设备向一致性节点发出冲突响应。所述冲突响应可以有多种原因引起。本实施例中,冲突响应包括N个缓存设备分别发出对目标缓存行数据的请求,所述请求例如可以为独占请求、写入请求。
在一些实施例中,例如可以有两个或以上的缓存设备均向目标缓存行数据发出了独占请求,缓存设备在发出独占请求时处于无效状态或共享状态。
在一些实施例中,例如可以有两个缓存设备分别向目标缓存行数据发出了独占请求与写入请求。发出所述写入请求的缓存设备处于修改状态,发出所述独占请求的缓存设备处于无效状态或分享状态。
步骤S130,当所述侦听响应为冲突响应时,所述一致性节点通知所述N个缓存设备中的第1缓存设备将处理后的目标缓存行数据转发给第2缓存设备;通知所述第2缓存设备接收所述第1缓存设备转发的目标缓存行数据以及将处理后的目标缓存行数据转发给第3缓存设备,以及直至通知第N-1缓存设备将处理后的目标缓存行数据转发给第N缓存设备。
在一些实施例中,当所述侦听响应为冲突响应时,所述一致性节点还通知所述第1缓存设备至所述第N-1缓存设备将各自的状态位标记为转发状态,当转发完成后将各自的状态位标记为无效状态。
步骤S140,当所述侦听响应为冲突响应时,所述一致性节点通知所述第N缓存设备等待来自所述第N-1缓存设备的转发数据,以及指定所述第N缓存设备为合并后事件的完成者。
在多核处理系统中,通常每一个独立的请求对应于一个事件,一致性节点依次处理各个请求,每处理完一个请求即完成一个事件。本实施例中,一致性节点可以将符合条件的多个请求进行合并处理,合并后的多个请求作为一个事件,并指定其中一个缓存设备(如第N缓存设备)为合并后事件的完成者。在一些实施例中,当第N缓存设备完成对所述目标缓存行数据的处理后,所述一致性节点接收所述第N缓存设备发出的事件完成通知。
下面通过具体的实施例对本发明实施例提供的数据处理方法进行详细介绍。
图3为本发明一实施例提供的数据处理过程中的信息交互示意图。该实施例中,有两个缓存设备分别对目标缓存行数据发出请求,例如两个缓存设备均想获得对于目标缓存行数据的独占权限,即N=2,缓存设备的请求类型均为独占请求。
如图所示,该冲突发生在多核处理系统,该多核处理系统包括多个缓存设备,分别为缓存设备0(cache0)、缓存设备1(cache1)、缓存设备2(cache2),该多核处理系统中还配置有一致性节点HN,该一致性节点HN用于管理各个缓存设备中缓存行的数据和状态。该一致性节点HN用于接收缓存设备发出的请求,向缓存设备发出侦听指令,以及接收缓存设备返回的侦听响应。具体在本示例中,一致性节点HN用于管理缓存设备0、缓存设备1、缓存设备2的物理地址的数据访存及维护缓存一致性。
在本示例中,缓存设备0和缓存设备2分别对所述目标缓存行数据发出请求,缓存设备0和缓存设备2均想获得相应的权限,其中缓存设备0发出的请求(Get)最先到达一致性节点HN,而缓存设备2发出的请求(Get)在后到达该一致性节点HN。所述请求携带请求地址,用于请求对内存中该请求地址对应的数据,请求完成后,缓存行读入该请求地址对应的数据。
一致性节点HN在接收到缓存设备0发送的请求后,向缓存设备1和缓存设备2发出侦听指令(Snoop),该侦听指令用于响应缓存设备0的请求,该侦听指令携带请求地址,侦听请求地址对应的缓存行,被成功侦听后,该缓存行为I态。
缓存设备1在收到侦听指令后,向一致性节点HN返回侦听响应(SnpRsp),并将缓存行的状态位标记为I态。
缓存设备2在收到侦听指令后检测出冲突,该冲突为缓存设备0发出的请求与缓存设备2发出的请求之间的冲突,缓存设备2在检测到冲突后向一致性节点HN报告冲突,具体的,该缓存设备2向一致性节点HN返回的侦听响应的类型为冲突响应(Conflict)。
一致性节点HN在收到缓存设备2返回的冲突响应后,向缓存设备0回复数据转发指令(Rsp_T),告知缓存设备0将缓存行的状态位转变为数据转发状态(T态),以及将经由该缓存设备0处理后的缓存行数据转发给缓存设备2。在一些示例中,一致性节点HN还会告知缓存设备0在完成数据转发后,将缓存行的状态位由T态标记为I态。
一致性节点HN在收到缓存设备2报告的冲突后,向缓存设备2回复等待指令(Rsp_W),告知缓存设备2将缓存行的状态位转变为等待状态(W态),以及告知等待来自缓存设备0的转发数据,缓存设备2为合并后事件(transaction)最终的完成者。
相应的,缓存设备0在接收到一致性节点HN发送的数据转发指令后,先将缓存行的状态位标记为T态,然后将处理后的缓存行数据转发给缓存设备2(Transfer data),待数据转发完成后,再将缓存行的状态位由T态标记为I态。
相应的,缓存设备2在接收到一致性节点HN发送的等待指令后,将缓存行的状态位标记为W态,等待来自缓存设备0的处理后的缓存行数据。
缓存设备2在接受到来自缓存设备0的转发数据后,向一致性节点HN报告完成响应(Ack),告知一致性节点HN已完成合并后事件。
可以看出,本发明实施例中,通过将针对同一缓存行的请求合并成一个事件,可以减少报文的数量,从而减少处理延迟以及对网络带宽、网络功耗的占用,并且也可以减轻对一致性节点HN资源的消耗。以及本发明实施例中将控制流报文与数据报文间隔开,尽可能地让控制报文先走完,然后再进行数据报文的直接传递,减少不必要的中转。
图4为本发明另一实施例提供的数据处理过程中的信息交互示意图。在该实施例中,有三个缓存设备分别向一致性节点发出对目标缓存行数据的请求,例如三个缓存设备均想获得对于目标缓存行数据的独占权限,即N=3,缓存设备的请求类型均为独占请求。
如图所示,该冲突发生在多核处理系统,该多核处理系统包括多个缓存设备,分别为缓存设备0(cache0)、缓存设备1(cache1)、缓存设备2(cache2),该多核处理系统中还配置有一致性节点HN,该一致性节点HN用于管理各个缓存设备中缓存行的数据和状态。该一致性节点HN用于可以接收缓存设备发出的请求,向缓存设备发出侦听指令,以及接收缓存设备返回的侦听响应向各个缓存设备发送请求、数据、指令等,以及响应各个缓存设备的请求、数据、指令等。具体在本示例中,一致性节点HN用于管理缓存设备0、缓存设备1、缓存设备2的物理地址的数据访存及维护缓存一致性。
在本示例中,有三个缓存设备分别发出对所述目标缓存行数据的请求,其中缓存设备0发出的请求(Get)最先到达一致性节点HN,缓存设备1发出的请求(Get)第二个到达该一致性节点HN,缓存设备2发出的请求(Get)最后到达该一致性节点HN。所述请求携带请求地址,用于请求对内存中该请求地址对应的数据,请求完成后,缓存行读入该请求地址对应的数据。
一致性节点HN在接收到缓存设备0发送的请求后,向缓存设备1和缓存设备2发出侦听指令(Snoop),该侦听指令用于响应缓存设备0的请求,该侦听指令携带请求地址,侦听请求地址对应的缓存行,被成功侦听后,该缓存行为I态。
缓存设备1在收到侦听指令后检测出冲突,向一致性节点HN返回冲突响应。类似的,缓存设备2在收到侦听指令后也检测出冲突,向一致性节点HN返回冲突响应。
一致性节点HN接收缓存设备1和缓存设备2返回的冲突响应后,按照预设的规则安排传输顺序,指定合并后事件的最终完成者,在本实施例中,一致性节点HN按照请求到达的先后顺序,安排缓存设备0将经过缓存设备0处理后的缓存行数据转发给缓存设备1,然后由缓存设备1将经过缓存设备1再次处理后的缓存行数据转发给缓存设备2,并指定缓存设备2为合并后事件的最终完成者。
上述过程中,一致性节点HN分别向缓存设备0、缓存设备1、缓存设备2发送相应的控制指令,具体的:
一致性节点HN向缓存设备0回复数据转发指令(Rsp_T),告知缓存设备0将缓存行的状态位转变为T态,以及将处理后的缓存行数据转发给缓存设备1。在一些示例中,一致性节点HN还会告知缓存设备0在完成数据转发后,将缓存行的状态位由T态标记为I态。
一致性节点HN向缓存设备1回复数据转发指令(Rsp_T),告知缓存设备1将缓存行的状态位转变为T态,以及将处理后的缓存行数据转发给缓存设备2。在一些示例中,一致性节点HN还会告知缓存设备1在完成数据转发后,将缓存行的状态位由T态标记为I态。
一致性节点HN向缓存设备2回复等待指令(Rsp_W),告知缓存设备2将缓存行的状态位转变为W态,以及告知等待来自缓存设备1的转发数据,缓存设备2为合并后事件的最终完成者。
缓存设备2在接受到来自缓存设备1的转发数据后,向一致性节点HN发送完成响应(Ack),告知一致性节点HN已完成合并后事件。
需要说明的是,本实施例中涉及三个缓存设备分别向一致性节点发出针对同一个缓存行数据的请求,该三个缓存设备均想获得对于同一个缓存行数据的权限,可以理解,本实施例只是以三个缓存设备之间的争抢为例进行说明,发生争抢的缓存设备并不限于三个,但冲突解决的方法是相似的。
可以看出,本实施例中涉及多个缓存设备向一致性节点发出针对同一个缓存行数据的请求,通过将针对同一缓存行数据的请求合并成一个事件,可以减少报文的数量,从而减少处理延迟以及对网络带宽、网络功耗的占用,并且也可以减轻对一致性节点HN资源的消耗,合并的请求的数量越多,节省的时间延迟和网络带宽越大。以及本发明实施例中将控制流报文与数据报文间隔开,尽可能地让控制报文先走完,然后再进行数据报文的直接传递,减少不必要的中转。
图5为本发明又一实施例提供的数据处理过程中的信息交互示意图。在该实施例中,在一致性节点指定所述第N缓存设备为事件的完成者的步骤之后,并且在该一致性节点接收到第N缓存设备发出的事件完成通知的步骤之前,该一致性节点又接收到了新的请求。例如一致性节点在发出数据转发指令后又一次地收到了请求,并且该请求是针对同一个地址,此时一致性节点可以在执行的中途继续合并事件,即扩增合并,将新发生的请求与原先的请求一并处理。
如图所示,该冲突发生在多核处理系统,该多核处理系统包括多个缓存设备,分别为缓存设备0(cache0)、缓存设备1(cache1)、缓存设备2(cache2)以及缓存设备3(cache3),该多核处理系统中还配置有一致性节点HN,该一致性节点HN用于可以接收缓存设备发出的请求,向缓存设备发出侦听指令,以及接收缓存设备返回的侦听响应向各个缓存设备发送请求、数据、指令等,以及响应各个缓存设备的请求、数据、指令等。具体在本示例中,一致性节点HN用于管理缓存设备0、缓存设备1、缓存设备2以及缓存设备3的物理地址的数据访存及维护缓存一致性。由一致性节点HN管理的目标缓存行在缓存设备0、缓存设备1、缓存设备2、缓存设备3中的初始状态位分别为I态、F态、S态、I态。
在本示例中,缓存设备0和缓存设备2均想获得对于目标缓存行数据的权限,其中缓存设备0发出的请求(Get)最先到达一致性节点HN,缓存设备2发出的请求(Get)在后到达该一致性节点HN。
一致性节点HN在接收到缓存设备0发送的请求后,向缓存设备1和缓存设备2发出侦听指令(Snoop),该侦听指令用于响应缓存设备0的请求,该侦听指令携带请求地址,侦听请求地址对应的缓存行,被成功侦听后,该缓存行为I态。
缓存设备1在收到侦听指令后,向一致性节点HN返回侦听响应(SnpRsp),并将缓存行的状态位标记为I态。
缓存设备2在收到侦听指令后检测出冲突,缓存设备2在检测到冲突后向一致性节点HN报告冲突,具体的,该缓存设备2向一致性节点HN返回的侦听响应的类型为冲突响应(Conflict)。
一致性节点HN在收到缓存设备2返回的冲突响应后,向缓存设备0回复数据转发指令(Rsp_T),向缓存设备2回复等待指令(Rsp_W)。在一致性节点HN发出上述数据转发指令(Rsp_T)和等待指令(Rsp_W)之后,收到完成响应(Ack)之前,该一致性节点HN又收到了缓存设备3发出的对于目标缓存行数据的请求(Get)。此种情况下,一致性节点HN仍然可以继续合并事件,对缓存设备3发出的请求进行合并处理。
具体的,一致性节点HN在收到缓存设备3发出的对于目标缓存行数据的请求(Get)后,向缓存设备2发出侦听指令(Snoop),相应的,缓存设备2在收到侦听指令后,向一致性节点HN返回侦听响应(SnpRsp),并将缓存行的状态位由W态改变为T态。
以及一致性节点HN在收到缓存设备2发出的侦听响应(SnpRsp)后,向缓存设备3回复等待指令(Rsp_W),告知缓存设备3将缓存行的状态位转变为W态,以及告知等待来自缓存设备2的转发数据,缓存设备3为合并后事件的最终完成者。
在本示例中,数据的传输方向为:缓存设备0将经由缓存设备0处理后的缓存行数据转发给缓存设备2,再由缓存设备2将经由缓存设备2再次处理后的缓存行数据转发给缓存设备3,缓存设备3为合并后事件的最终完成者,缓存设备3向一致性节点HN发送完成响应(Ack),告知一致性节点HN已完成合并后事件。
可以看出,本实施例中通过进一步对持有W态的缓存设备进行侦听,将W态由原请求者缓存设备2转移到新的请求者缓存设备3,从而不需要一致性节点HN等待系统侦听滤波器(SPF)更新完成后再次读取SPF去做新的请求。一致性节点HN在执行合并事件的中途继续合并新加入的请求,将新发生的请求与原先的请求一并处理,在数据传输处理期间并行处理控制流,可以减少系统延迟。
图6为本发明又一实施例提供的数据处理过程中的信息交互示意图。在该实施例中,在一致性节点指定所述第N缓存设备为事件的完成者的步骤之后,并且在该一致性节点接收到第N缓存设备发出的事件完成通知的步骤之前,该一致性节点又接收到了新的请求,并且该新的请求由已经完成转发的缓存设备发出。具体的,T态的缓存设备在传输完数据之后,再次想要针对同一个地址的数据发起请求,此时一致性节点HN可以在执行的中途继续合并事件,即再发起合并,将新发生的请求与原先的请求一并处理。
如图所示,该冲突发生在多核处理系统,该多核处理系统包括多个缓存设备,分别为缓存设备0(cache0)、缓存设备1(cache1)、缓存设备2(cache2),该多核处理系统中还配置有一致性节点HN,该一致性节点HN用于可以接收缓存设备发出的请求,向缓存设备发出侦听指令,以及接收缓存设备返回的侦听响应向各个缓存设备发送请求、数据、指令等,以及响应各个缓存设备的请求、数据、指令等。具体在本示例中,一致性节点HN用于管理缓存设备0、缓存设备1、缓存设备2的物理地址的数据访存及维护缓存一致性。
在一致性节点HN接收到新的请求之前,缓存设备0和缓存设备2均想获得对于目标缓存行的独占权限,其中缓存设备0发出的对于目标缓存行的请求(Get)最先到达一致性节点HN,缓存设备2发出的对于目标缓存行的请求(Get)在后到达该一致性节点HN。
一致性节点HN在接收到缓存设备0发送的独占请求后,向缓存设备1和缓存设备2发出侦听指令(Snoop),该侦听指令用于响应缓存设备0的请求,携带请求地址,侦听请求地址对应的缓存行。
缓存设备1在收到侦听指令后,向一致性节点HN返回侦听响应(SnpRsp)。而缓存设备2在收到侦听指令后检测出冲突,缓存设备2在检测到冲突后向一致性节点HN返回的侦听响应的类型为冲突响应(Conflict)。
一致性节点HN在收到缓存设备2报告的冲突后,向缓存设备0回复数据转发指令(Rsp_T),告知缓存设备0将缓存行的状态位转变为T态,以及将处理后的缓存行数据转发给缓存设备2。在一些示例中,一致性节点HN还会告知缓存设备0在完成数据转发后,将缓存行的状态位由T态标记为I态。
一致性节点HN在收到缓存设备2报告的冲突后,向缓存设备2回复等待指令(Rsp_W),告知缓存设备2将缓存行的状态位转变为W态,以及告知等待来自缓存设备0的转发数据,缓存设备2为合并后事件(transaction)最终的完成者。
在缓存设备0将处理后的数据转发出之后,该缓存设备0再一次想获得对于目标缓存行的权限,于是该缓存设备0向一致性节点HN发出了对于目标缓存行的请求(Get),一致性节点HN收到了缓存设备0第二次发出的请求(Get E),第二次发出的请求(Get)在数据转发之后,此时仍然可以继续合并事件,具体的,该一致性节点HN在收到缓存设备0发出的对于目标缓存行的请求(Get)后,向缓存设备2(指定的合并后事件最终的完成者)发出侦听指令(Snoop I),相应的,缓存设备2在收到侦听指令后,向一致性节点HN返回侦听响应(SnpRsp),并将缓存行的状态位由等待状态(W)标记为数据转发
状态(T)。
一致性节点HN在收到缓存设备2发出的侦听响应(SnpRsp)后,向缓存设备0回复等待指令(Rsp_W),告知缓存设备0等待来自缓存设备2的数据转发,缓存设备0为再发起合并后事件最终的完成者。一致性节点HN还告知缓存设备0将缓存行的状态位由I态标记为W态。
缓存设备2将处理后的数据转发给缓存设备0(Transfer data)。
缓存设备0在接收到缓存设备2发送的数据后,将缓存行的状态位由数据W态标记为I态,以及向一致性节点HN发送完成响应(Ack),告知一致性节点HN已完成合并后事件。
可以看出,本实施例中,一致性节点HN在执行合并事件的中途继续合并新加入的请求,将新发生的请求与原先的请求一并处理,在数据传输处理期间并行处理控制流,可以减少系统延迟。
图7为本发明又一实施例提供的冲突处理过程中的信息交互示意图。在该实施例中,有两个缓存设备分别发出对所述目标缓存行数据的独占请求和写入请求。具体的,类似于图3所对应的实施例,缓存设备0和缓存设备2均想要获得对于目标缓存行数据的权限,区别在于本实施例中缓存设备2想要获取目标缓存行数据的写权限(Evict)。
如图所示,该冲突发生在多核处理系统,该多核处理系统包括多个缓存设备,分别为缓存设备0(cache0)、缓存设备1(cache1)、缓存设备2(cache2),该多核处理系统中还配置有一致性节点HN,该一致性节点HN用于可以接收缓存设备发出的请求,向缓存设备发出侦听指令,以及接收缓存设备返回的侦听响应向各个缓存设备发送请求、数据、指令等,以及响应各个缓存设备的请求、数据、指令等用于管理各个缓存设备中缓存行的数据和状态。该一致性节点HN可以向各个缓存设备发送请求、数据、指令等,以及响应各个缓存设备的请求、数据、指令等。具体在本示例中,一致性节点HN用于管理缓存设备0、缓存设备1、缓存设备2的物理地址的数据访存及维护缓存一致性。
在本实施例中,缓存设备0想获得对于目标缓存行数据的独占权限,缓存设备2想要获取目标缓存行数据的写权限,其中缓存设备0发出的对于目标缓存行数据的独占请求(Get)最先到达一致性节点HN,而缓存设备2发出的对于目标缓存行数据的写操作(Evict)在后到达该一致性节点HN。
一致性节点HN在接收到缓存设备0发送的独占请求后,向缓存设备2发出侦听指令(Snoop),该侦听指令用于响应缓存设备0的独占请求,携带请求地址,侦听请求地址对应的缓存行。
缓存设备2在收到侦听指令后检测出冲突,该冲突是一个独占请求与写入请求之间的冲突,缓存设备2在检测出冲突后向一致性节点HN返回冲突响应。
一致性节点HN在收到缓存设备2返回的冲突响应后,向缓存设备2回复数据转发指令(Rsp_T),告知缓存设备2需要将处理后的数据转发给缓存设备0,以及将缓存行的状态位由I态标记为T态。在一些示例中,一致性节点HN还会告知缓存设备0在完成数据转发后,将缓存行的状态位由T态标记为I态。
相应的,缓存设备2在接收到一致性节点HN发送的数据转发指令后,先将缓存行的状态位由I态标记为T态,然后将处理后的数据转发给缓存设备0,待完成数据转发后,缓存设备2将缓存行的状态位由T态标记为I态。
一致性节点HN在收到缓存设备2返回的冲突响应后,向缓存设备0回复等待指令(Rsp_W),告知缓存设备0等待来自缓存设备2的数据转发,缓存设备0为合并后事件(transaction)最终的完成者,以及告知缓存设备0将缓存行的状态位由S态标记为W态。
相应的,缓存设备0在接收到一致性节点HN发送的等待指令后,将缓存行的状态位由S态标记为W态,等待来自缓存设备2的处理后数据。
缓存设备0在接受到来自缓存设备2的转发数据后,向一致性节点HN发送完成响应(Ack),告知一致性节点HN已完成合并后事件。
可以看出,本发明实施例中,通过将针对同一缓存行的独占请求与写入请求合并成一个事件,减少了报文的数量,可以进一步减少处理延迟以及对网络带宽、网络功耗的占用,并且也可以减轻对一致性节点HN资源的消耗。以及本发明实施例中将控制流报文与数据报文间隔开,尽可能地让控制报文先走完,同时数据报文直接传递,从而减少不必要的中转。
可以看出,通过将针对同一缓存行数据的请求合并成一个事件,可以减少报文的数量,从而减少处理延迟以及对网络带宽、网络功耗的占用,并且也可以减轻对一致性节点HN资源的消耗。以及本发明实施例中将控制流报文与数据报文间隔开,尽可能地让控制报文先走完,然后再进行数据报文的直接传递,减少不必要的中转。
下面对本发明实施例提供的指令控制装置进行介绍,下文描述的装置内容可以认为是计算机设备为实现本发明实施例提供的方法所需设置的功能模块。下文描述的装置内容可与上文描述的方法内容相互对应参照。
在可选实现中,图8示例性的示出了本发明实施例提供的数据处理装置的可选框图,该数据处理装置应用于多核处理系统,该多核处理系统包括至少两个缓存设备以及负责协调所述至少两个缓存设备的一致性节点,包括:
接收模块510,用于所述一致性节点接收缓存设备发出的侦听响应;
检测模块520,用于检查所述侦听响应是否为冲突响应,所述冲突响应包括N个缓存设备分别发出对目标缓存行数据的请求,其中N大于等于2;
第一处理模块530,用于当所述侦听响应为冲突响应时,所述一致性节点通知所述N个缓存设备中的第1缓存设备将处理后的目标缓存行数据转发给第2缓存设备;通知所述第2缓存设备接收所述第1缓存设备转发的目标缓存行数据以及将处理后的目标缓存行数据转发给第3缓存设备,以及直至通知第N-1缓存设备将处理后的目标缓存行数据转发给第N缓存设备;
第二处理模块540,用于当所述侦听响应为冲突响应时,所述一致性节点通知所述第N缓存设备等待来自所述第N-1缓存设备的转发数据,以及指定所述第N缓存设备为合并后事件的完成者。
在一些实施例中,所述数据处理装置还包括第二接收模块,用于当所述第N缓存设备完成对所述目标缓存行数据的处理后,所述一致性节点接收所述第N缓存设备发出的事件完成通知。
在一些实施例中,所述第一处理模块530还用于所述第一处理模块还用于,当所述侦听响应为冲突响应时,所述一致性节点通知所述第1缓存设备至所述第N-1缓存设备将各自的状态位标记为转发状态,当转发完成后将所述状态位标记为无效状态。
可以看出,本发明提供的数据处理装置通过将针对同一缓存行数据的请求合并成一个事件,可以减少报文的数量,从而减少处理延迟以及对网络带宽、网络功耗的占用,并且也可以减轻对一致性节点资源的消耗。
本公开一些实施例还提供一种多核处理系统,包括至少两个缓存设备以及一致性节点,所述一致性节点用于负责协调所述至少两个缓存设备,所述一致性节点被配置为执行发明实施例提供的所述数据处理方法。
上文描述了本发明实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本发明实施例披露、公开的实施例方案。
虽然本申请实施例披露如上,但本申请并非限定于此。任何本领域技术人员,在不脱离本申请的精神和范围内,均可作各种更动与修改,因此本申请的保护范围应当以权利要求所限定的范围为准。
Claims (11)
1.一种数据处理方法,其特征在于,应用于多核处理系统,该多核处理系统包括至少两个缓存设备以及负责协调所述至少两个缓存设备的一致性节点,所述方法包括:
所述一致性节点接收所述缓存设备发出的侦听响应;
检查所述侦听响应是否为冲突响应,所述冲突响应包括N个缓存设备分别发出对目标缓存行数据的请求,其中N大于等于2;
当所述侦听响应为冲突响应时,所述一致性节点通知所述N个缓存设备中的第1缓存设备将处理后的目标缓存行数据转发给第2缓存设备;通知所述第2缓存设备接收所述第1缓存设备转发的目标缓存行数据以及将处理后的目标缓存行数据转发给第3缓存设备,以及直至通知第N-1缓存设备将处理后的目标缓存行数据转发给第N缓存设备;
当所述侦听响应为冲突响应时,所述一致性节点通知所述第N缓存设备等待来自所述第N-1缓存设备的转发数据,以及指定所述第N缓存设备为合并后事件的完成者。
2.根据权利要求1所述的数据处理方法,其特征在于,所述冲突响应为所述N个缓存设备分别发出对所述目标缓存行数据的独占请求,其中,所述独占请求发出的顺序为:第1缓存设备、第2缓存设备、…、第N缓存设备。
3.根据权利要求2所述的数据处理方法,其特征在于,所述第1缓存设备、所述第2缓存设备、…、所述第N缓存设备在发出所述独占请求时处于无效状态或共享状态。
4.根据权利要求2或3所述的数据处理方法,其特征在于,所述方法还包括:
当所述侦听响应为冲突响应时,所述一致性节点通知所述第1缓存设备至所述第N-1缓存设备将各自的状态位标记为转发状态,当转发完成后将所述状态位标记为无效状态。
5.根据权利要求1所述的数据处理方法,其特征在于,所述N为2,所述冲突响应为所述第1缓存设备发出对所述目标缓存行数据的写入请求,所述第2缓存设备发出对所述目标缓存行数据的独占请求,且所述第2缓存设备发出的独占请求先于所述第1缓存设备发出的写入请求。
6.根据权利要求5所述的数据处理方法,其特征在于,所述第1缓存设备在发出所述写入请求时处于修改状态,所述第2缓存设备在发出所述独占请求时处于无效状态或分享状态。
7.根据权利要求1所述的数据处理方法,其特征在于,所述方法还包括:
当所述第N缓存设备完成对所述目标缓存行数据的处理后,所述一致性节点接收所述第N缓存设备发出的事件完成通知。
8.根据权利要求7所述的数据处理方法,其特征在于,所述一致性节点接收所述第N缓存设备发出的事件完成通知的步骤之前,还包括:
若所述一致性节点接收到新请求,所述一致性节点通知所述第N缓存设备将处理后的所述目标缓存行数据转发给发出所述新请求的缓存设备;以及指定发出所述新请求的缓存设备为事件的完成者。
9.一种数据处理装置,其特征在于,应用于多核处理系统,该多核处理系统包括至少两个缓存设备以及负责协调所述至少两个缓存设备的一致性节点,包括:
第一接收模块,用于所述一致性节点接收缓存设备发出的侦听响应;
检测模块,用于检查所述侦听响应是否为冲突响应,所述冲突响应包括N个缓存设备分别发出对目标缓存行数据的请求,其中N大于等于2;
第一处理模块,用于当所述侦听响应为冲突响应时,所述一致性节点通知所述N个缓存设备中的第1缓存设备将处理后的目标缓存行数据转发给第2缓存设备;通知所述第2缓存设备接收所述第1缓存设备转发的目标缓存行数据以及将处理后的目标缓存行数据转发给第3缓存设备,以及直至通知第N-1缓存设备将处理后的目标缓存行数据转发给第N缓存设备;
第二处理模块,用于当所述侦听响应为冲突响应时,所述一致性节点通知所述第N缓存设备等待来自所述第N-1缓存设备的转发数据,以及指定所述第
N缓存设备为合并后事件的完成者。
10.根据权利要求9所述的数据处理装置,其特征在于,所述第一处理模块还用于,当所述侦听响应为冲突响应时,所述一致性节点通知所述第1缓存设备至所述第N-1缓存设备将各自的状态位标记为转发状态,当转发完成后将所述状态位标记为无效状态。
11.一种多核处理系统,其特征在于,包括:
至少两个缓存设备;
一致性节点,用于负责协调所述至少两个缓存设备,所述一致性节点被配置为执行如权利要求1-8任一权利要求所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211621626.5A CN116089116A (zh) | 2022-12-16 | 2022-12-16 | 数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211621626.5A CN116089116A (zh) | 2022-12-16 | 2022-12-16 | 数据处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116089116A true CN116089116A (zh) | 2023-05-09 |
Family
ID=86186014
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211621626.5A Pending CN116089116A (zh) | 2022-12-16 | 2022-12-16 | 数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116089116A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011076159A (ja) * | 2009-09-29 | 2011-04-14 | Nec Computertechno Ltd | キャッシュメモリ制御システム及びキャッシュメモリの制御方法 |
CN108804348A (zh) * | 2017-05-02 | 2018-11-13 | 迈络思科技有限公司 | 并行处理环境中的计算 |
CN109840216A (zh) * | 2017-11-28 | 2019-06-04 | 华为技术有限公司 | 针对高速缓存的数据处理方法及相关元件、设备、系统 |
US20210165762A1 (en) * | 2019-12-02 | 2021-06-03 | Huawei Technologies Co., Ltd. | Method and system for detecting and resolving a write conflict |
CN113656212A (zh) * | 2020-05-12 | 2021-11-16 | 慧与发展有限责任合伙企业 | 用于缓存目录tcam错误检测和纠正的系统和方法 |
CN115454887A (zh) * | 2022-08-23 | 2022-12-09 | 北京奕斯伟计算技术股份有限公司 | 数据处理方法、装置、电子设备及可读存储介质 |
-
2022
- 2022-12-16 CN CN202211621626.5A patent/CN116089116A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011076159A (ja) * | 2009-09-29 | 2011-04-14 | Nec Computertechno Ltd | キャッシュメモリ制御システム及びキャッシュメモリの制御方法 |
CN108804348A (zh) * | 2017-05-02 | 2018-11-13 | 迈络思科技有限公司 | 并行处理环境中的计算 |
CN109840216A (zh) * | 2017-11-28 | 2019-06-04 | 华为技术有限公司 | 针对高速缓存的数据处理方法及相关元件、设备、系统 |
US20210165762A1 (en) * | 2019-12-02 | 2021-06-03 | Huawei Technologies Co., Ltd. | Method and system for detecting and resolving a write conflict |
CN113656212A (zh) * | 2020-05-12 | 2021-11-16 | 慧与发展有限责任合伙企业 | 用于缓存目录tcam错误检测和纠正的系统和方法 |
CN115454887A (zh) * | 2022-08-23 | 2022-12-09 | 北京奕斯伟计算技术股份有限公司 | 数据处理方法、装置、电子设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8176259B2 (en) | System and method for resolving transactions in a cache coherency protocol | |
JP3644587B2 (ja) | 共用介入サポートを有する不均等メモリ・アクセス(numa)・データ処理システム | |
US7177987B2 (en) | System and method for responses between different cache coherency protocols | |
US7568073B2 (en) | Mechanisms and methods of cache coherence in network-based multiprocessor systems with ring-based snoop response collection | |
EP1200897B1 (en) | Mechanism for reordering transactions in computer systems with snoop-based cache consistency protocols | |
JP7153441B2 (ja) | データ処理 | |
JP2007207223A (ja) | 複数のコヒーレンシ・ドメインを有するデータ処理システムでフラッシュ動作を処理するデータ処理システム、方法、およびメモリ・コントローラ | |
JP2008046958A (ja) | システムコントローラ,同一アドレスリクエストキューイング防止方法および情報処理装置 | |
JP2009176179A (ja) | キャッシュコヒーレンシ制御方法 | |
KR101087811B1 (ko) | 캐시 라인 소유권 이전 방법 및 캐시 라인 소유권 이전 장치 | |
US7149852B2 (en) | System and method for blocking data responses | |
JPH08249231A (ja) | マルチプロセッサ・システムにおける古いデータの処理システム及び方法 | |
EP3788492B1 (en) | Separating completion and data responses for higher read throughput and lower link utilization in a data processing network | |
US7159079B2 (en) | Multiprocessor system | |
EP2568379B1 (en) | Method for preventing node controller deadlock and node controller | |
JP3550092B2 (ja) | キャッシュ装置及び制御方法 | |
US7818391B2 (en) | System and method to facilitate ordering point migration | |
US8959290B2 (en) | Methods and apparatus for reusing snoop responses and data phase results in a cache controller | |
CN110083548B (zh) | 数据处理方法及相关网元、设备、系统 | |
US20070073979A1 (en) | Snoop processing for multi-processor computing system | |
JP2000132531A (ja) | マルチプロセッサ | |
CN116089116A (zh) | 数据处理方法及装置 | |
JP3714235B2 (ja) | マルチプロセッサシステム | |
JP4335298B2 (ja) | スヌープ制御方法および情報処理装置 | |
US8972663B2 (en) | Broadcast cache coherence on partially-ordered network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |