数据预取方法及装置制造方法及图纸

技术编号:24865682 阅读:44 留言:0更新日期:2020-07-10 19:16
本申请公开了一种数据预取方法,包括:主节点接收缓存节点1在将接收到的数据处理完后发送的写入请求;主节点执行确定缓存节点2是否需要对待写入数据进行数据预取操作的动作;当确定缓存节点2需要对待写入数据进行数据预取操作时,所述主节点向缓存节点2发送待写入数据。采用本申请实施例有利于提高进行数据预取时刻的准确性和确定性,并降低了进行数据预取的时延。

【技术实现步骤摘要】
【国外来华专利技术】数据预取方法及装置本申请要求于2019年03月29日提交中国专利局、申请号为201910259338.1、申请名称为“数据预取方法及装置”的中国专利申请以及于2018年8月24日提交专利局、申请号为201810974252.2的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及通信领域,尤其涉及一种数据预取方法及装置。
技术介绍
多核(包括多处理器)系统内一般具有多个层级的缓存,用于存储诸如程序指令、程序执行的过程数据或者下一层级缓存中被频繁引用的数据等。下级缓存中的一个或多个数据在上一层级的各个缓存都有可能存在副本;当某一层的数据副本发生改变时,为了保证多个层级中缓存的同一数据的一致性,可通过缓存一致性机制来完成,即缓存一致性机制可通过在多核系统中传播数据变更消息来维护和保证不同位置、不同缓存中数据的一致性。其中,每个处理器内核都有本地缓存以及维护本地缓存一致性的硬件模块,将该硬件模块和本地缓存统称为缓存节点,将处理器内核称为计算节点。缓存一致性主要用于多核CPU系统中,而数据预取(也即指令的预处理)是针对其中的某个CPU或核而言的。数据预取是指利用程序执行的局部性,对某个CPU核中连续的相邻指令进行分析,预测在接下来的时刻极有可能执行的指令,从而根据预测的结果提前从内存中获取相关的待处理的数据,进而通过数据获取的提前量来消除数据在传输路径上的时延,以达到降低整体系统处理时延的目的。但是该方式具有以下缺点:1、指令预测仅局限于同一个缓存节点内,而且通过对当前缓存节点的连续N个指令的分析,才能预测接下来可能的待执行指令所需的数据,存在发起数据预取时刻的不确定性;2、预取结果存在不确定性:尽管通常需要预判多个指令有可能提升预测结果的准确性,但仍然无法达到100%;3、时延大:对于多缓存节点协同的时候,只有在某个缓存节点处理完指令并更新了数据后,其他缓存节点才可能通过指令预取得到正确数据。如图1a所示,缓存节点1产生新的数据后需要将该数据写入主节点,向主节点发送写数据请求;缓存节点2要想获得缓存节点1生产的数据,必须等到主节点将缓存节点1的指令执行完毕后,主节点才能开始处理缓存节点2的读数据请求(即图1a中从主节点收到读数据请求到发出第一响应消息所经过的时间为阻塞时间),并且主节点处理读数据请求会产生额外延时,如图1a中的灰色长方形所表示的时间。
技术实现思路
本申请实施例提供一种数据预取方法及装置,有利于提高进行数据预取时刻的准确性和预测结果的确定性,并降低了进行数据预取的时延。第一方面,本申请实施例提供一种数据预取方法,该方法应用于数据预取系统,该数据预取系统包括主节点和多个缓存节点,该方法包括:主节点接收缓存节点1发送的写入请求;其中,该写入请求中携带待写入数据、数据预取标识、数据预取的节点号;主节点根据数据预取标识向数据预取的节点号指示的缓存节点2发送第一侦听消息,该第一侦听消息携带有预取询问标识,该预取询问标识用于指示缓存节点2执行确定其是否需要对待写入数据进行数据预取操作的步骤;主节点接收缓存节点2发送的第一侦听响应消息,该第一侦听响应消息包括用于指示缓存节点2是否需要对待写入数据进行数据预取操作的指示信息;当主节点确定缓存节点2需要对待写入数据进行数据预取操作时,主节点向缓存节点2发送携带待写入数据的响应消息,缓存节点1和缓存节点2为多个缓存节点中的两个不同的节点。在此需要说明的是,缓存节点1向主节点发送写入请求,具体是缓存节点1在将接收到的数据处理完后向主节点发送写入请求。其中,待写入数据为缓存节点1将接收到的数据处理完后得到的数据。其中,第一侦听响应消息为缓存节点2根据预取询问标识确定是否需要对待写入数据进行数据预取操作后发送的。在现有技术中,主节点根据历史一个或多个指令预测缓存节点是否需要对数据进行预取。由于是采用预测的方式,因此导致缓存节点进行数据预取的时刻不确定和缓存节点是否进行数据预取的结果不确定。而在本申请中,主节点接收到缓存节点1的写入请求后,就向缓存节点2发送侦听消息,以询问缓存节点2是否需要进行数据预取,如果需要则主节点向缓存节点2发送数据。相对于现有技术中通过指令预测缓存节点是否需要进行数据预取的方式,本申请是通过直接询问缓存节点是否需要对数据进行预取,如果需要则向缓存节点发送数据。本申请的方式有利于使得是否进行数据预取的结果及预取时刻更加精确,并且不局限于一个缓存节点内,同时降低了时延。在一种可能的实施例中,指示信息为第一侦听响应消息中包括的第一预取结果标识,该第一预取结果标识的不同值用于指示缓存节点2是否需要对待写入数据进行数据预取操作(例如第一预取结果标识的取值为第一预设阈值,以指示缓存节点2需要对待写入数据进行数据预取操作;第二预取结果标识的取值为第二预设阈值,以指示缓存节点不需要对待写入数据进行数据预取操作);或者,指示信息为第一侦听响应消息中是否包括第二预取结果标识来表示缓存节点2是否需要对待写入数据进行数据预取操作的信息(例如第一侦听响应消息包括第二预取结果标识,以指示缓存节点2需要对待写入数据进行数据预取操作;第一侦听响应消息中未包括第二预取结果标识,以指示缓存节点2不需要对待写入数据进行数据预取操作)。通过指示信息告知主节点缓存节点2是否需要对待写入数据进行数据预取操作这种方式,相对于通过指令预测是否需要进行数据预取这种方式会更加精确,不会产生误差。在一种可能的实施例中,数据预取系统还包括多个计算节点,多个计算节点与多个缓存节点一一对应,缓存节点1对应的计算节点用于对接收到的数据执行第一操作,缓存节点2对应的计算节点用于对接收到的数据执行第二操作,该接收到的数据在被执行完第一操作后会大概率地被执行第二操作。其中,接收到的数据在被执行第一操作后会大概率地被执行第二操作包括:缓存节点1可根据接收到数据的类型确定接收到的数据在被执行第一操作后会大概率地被执行第二操作;或者缓存节点1根据对接收到的数据的处理流程确定接收到的数据在被执行第一操作后会大概率地被执行第二操作;或者缓存节点1根据实际的硬件资源来确定接收到的数据在被执行第一操作后会大概率地被执行第二操作。比如用户购买云资源时只购买了存储资源,因此在接收到报文后只对报文进行存储。需要说明的是,对于缓存节点1来说,接收到的数据为缓存节点1对应的计算节点发送的数据;对于缓存节点2来说,接收到的数据为缓存节点1将接收到的数据处理完后得到的数据。由于缓存节点1知道缓存节点2大概率地对待写入数据进行第二操作,因此当主节点接收到缓存节点1的写入请求后,会直接向缓存节点2发送侦听请求,询问缓存节点2是否需要对待写入数据进行数据预取操作,若主节点确定缓存节点2需要对待写入数据进行数据预取操作,则主节点向缓存节点2发送待写入数据。缓存节点2能在第一时间得到待写入数据,进而提高了效率。在一种可能的实施例中,数据预取系统还包括存储节点,写入请求还包括数据写入地址,数据写入地址为待写入数据写入存储节点时在存储节点中的存储地址;该方法还包括:若主本文档来自技高网
...

【技术保护点】
一种数据预取方法,其特征在于,所述方法应用于数据预取系统,该数据预取系统包括主节点和多个缓存节点,所述方法包括:/n所述主节点接收缓存节点1发送的写入请求;其中,所述写入请求中携带待写入数据、数据预取标识、数据预取的节点号;/n所述主节点根据所述数据预取标识向所述数据预取的节点号指示的缓存节点2发送第一侦听消息,所述第一侦听消息携带有预取询问标识,所述预取询问标识用于指示所述缓存节点2执行确定是否需要对所述待写入数据进行数据预取操作的步骤;/n所述主节点接收所述缓存节点2发送的第一侦听响应消息,所述第一侦听响应消息包括用于指示所述缓存节点2是否需要对所述待写入数据进行数据预取操作的指示信息;/n当所述主节点根据所述指示信息确定所述缓存节点2需要对所述待写入数据进行数据预取操作时,所述主节点向所述缓存节点2发送携带所述待写入数据的响应消息;/n其中,所述缓存节点1和所述缓存节点2为所述多个缓存节点中的两个不同的节点。/n

【技术特征摘要】
【国外来华专利技术】20180824 CN 2018109742522;20190329 CN 201910259338一种数据预取方法,其特征在于,所述方法应用于数据预取系统,该数据预取系统包括主节点和多个缓存节点,所述方法包括:
所述主节点接收缓存节点1发送的写入请求;其中,所述写入请求中携带待写入数据、数据预取标识、数据预取的节点号;
所述主节点根据所述数据预取标识向所述数据预取的节点号指示的缓存节点2发送第一侦听消息,所述第一侦听消息携带有预取询问标识,所述预取询问标识用于指示所述缓存节点2执行确定是否需要对所述待写入数据进行数据预取操作的步骤;
所述主节点接收所述缓存节点2发送的第一侦听响应消息,所述第一侦听响应消息包括用于指示所述缓存节点2是否需要对所述待写入数据进行数据预取操作的指示信息;
当所述主节点根据所述指示信息确定所述缓存节点2需要对所述待写入数据进行数据预取操作时,所述主节点向所述缓存节点2发送携带所述待写入数据的响应消息;
其中,所述缓存节点1和所述缓存节点2为所述多个缓存节点中的两个不同的节点。


根据权利要求1所述的方法,其特征在于:
所述指示信息为第一侦听响应消息中包括的第一预取结果标识,所述第一预取结果标识的不同值用于指示所述缓存节点2是否需要对所述待写入数据进行数据预取操作;
或者,
所述指示信息为通过第一侦听响应消息中是否包括第二预取结果标识来表示所述缓存节点2是否需要对所述待写入数据进行数据预取操作的信息。


根据权利要求1或2所述的方法,其特征在于,所述数据预取系统还包括多个计算节点,所述多个计算节点与所述多个缓存节点一一对应;
所述缓存节点1对应的计算节点用于对接收到的数据执行第一操作,所述缓存节点2对应的计算节点用于对所述接收到的数据执行第二操作;所述接收到的数据在被执行完所述第一操作后会大概率地被执行所述第二操作。


根据权利要求1-3任一项所述的方法,其特征在于,所述数据预取系统还包括存储节点,所述写入请求还包括数据写入地址,所述数据写入地址为所述待写入数据写入所述存储节点时在所述存储节点中的存储地址;所述方法还包括:
当所述主节点根据所述指示信息确定所述缓存节点2不需要对所述待写入数据进行数据预取操作时,所述主节点将所述待写入数据和数据写入地址缓存至所述主节点的缓存中。


根据权利要求1-4任一项所述的方法,其特征在于,所述主节点向缓存节点2发送第一侦听消息的同时,所述方法还包括:
所述主节点向其他缓存节点发送第二侦听消息,所述第二侦听消息用于指示所述其他缓存节点删除原数据,所述原数据为在所述主节点接收到所述待写入数据之前所述数据写入地址对应的数据;
其中,所述其他缓存节点为所述多个缓存节点中除了所述缓存节点1和缓存节点2之外的缓存节点。


根据权利要求1-5任一项所述的方法,其特征在于,在所述主节点向所述缓存节点2发送响应消息的同时,所述方法还包括:
向所述缓存节点1发送完成消息,所述完成消息用于告知所述缓存节点1数据写入完成。


根据权利要求1-6任一项所述的方法,其特征在于,所述数据预取系统还包括存储节点,所述方法还包括:
所述主节点向所述存储节点发送数据更新消息,以将所述待写入数据更新至所述存储节点中数据写入地址对应的存储空间中;
其中,所述数据更新消息携带有所述待写入数据。


根据权利要求1-7任一项所述的方法,其特征在于,所述第一侦听响应消息为所述缓存节点2根据所述预取询问标识确定是否需要对所述待写入数据进行数据预取操作后发送的。


根据权利要求1-8任一项所述的方法,其特征在于,所述数据预取系统为处理器,所述缓存节点以及所述主节点包括所述处理器中的高速缓存cache及cache控制电路。


根据权利要求1-8任一项所述的方法,其特征在于,所述数据预取系统为集群计算系统,所述集群计算系统包括多台处理服务器和存储服务器,所述缓存节点包括所述处理服务器中的内存控制器以及内存,所述主节点包括所述存储服务器中的处理器以及内存。


一种数据预取方法,其特征在于,所述方法应用于数据预取系统,所述数据预取系统包括主节点和多个缓存节点,所述方法包括:
缓存节点2接收所述主节点发送的第一侦听消息,所述第一侦听消息携带有预取询问标识,所述预取询问标识用于指示所述缓存节点2执行确定是否需要对待写入数据进行数据预取操作的步骤;所述待写入数据为缓存节点1将接收到的数据处理完后得到的数据,所述缓存节点1和缓存节点2为所述多个缓存节点中的两个不同的节点;
所述缓存节点2根据所述预取询问标识确定其是否需要对所述待写入数据进行数据预取操作;
所述缓存节点2向所述主节点发送第一侦听响应消息;所述第一侦听响应消息包括用于指示所述缓存节点2是否需要对所述待写入数据进行数据预取操作的指示信息;
若所述缓存节点2确定其需要对所述待写入数据进行数据预取操作且在向所述主节点发送所述第一侦听响应消息后,接收所述主节点发送的响应消息,所述响应消息携带有所述待写入数据。


根据权利要求11所述的方法,其特征在于,所述数据预取系统还包括多个计算节点,所述多个计算节点与所述多个缓存节点一一对应;
所述缓存节点1对应的计算节点用于对接收到的数据执行第一操作,所述缓存节点2对应的计算节点用于对所述接收到的数据执行第二操作;所述接收到的数据在被执行完所述第一操作后会大概率地被执行所述第二操作。


根据权利要求11或12所述的方法,其特征在于,所述缓存节点2根据预取询问标识确定其是否需要对所述待写入数据进行数据预取操作,包括:
若所述缓存节点2支持数据预取功能且需要所述待写入数据;则所述缓存节点2确定其需要对所述待写入数据进行数据预取操作;
若所述缓存节点2支持数据预取功能且不需要所述待写入数据,或者所述缓存节点2不支持数据预取功能,则所述缓存节点2确定其不需要对所述待写入数据进行数据预取操作。


根据权利要求11-13任一项所述的方法,其特征在于,
所述指示信息为第一侦听响应消息中包括的第一预取结果标识,所述第一预取结果标识的不同值用于指示所述缓存节点2是否需要对所述待写入数据进行数据预取操作;
或者,
所述指示信息为通过第一侦听响应消息中是否包括第二预取结果标识来表示所述缓存节点2是否需要对所述待写入数据进行数据预取操作的信息。


根据权利要求11-14任一项所述的方法,其特征在于,所述数据预取系统为处理器,所述缓存节点以及所述主节点包括所述处理器中的高速缓存cache及其控制电路。


根据权利要求11-14任一项所述的方法,其特征在于,所述数据预取系统为集群计算系统,且所述集群计算系统包括多台处理服务器和存储服务...

【专利技术属性】
技术研发人员:刘涛
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1