CN117014504A - 数据传输方法、装置、设备、介质及产品 - Google Patents
数据传输方法、装置、设备、介质及产品 Download PDFInfo
- Publication number
- CN117014504A CN117014504A CN202311015046.6A CN202311015046A CN117014504A CN 117014504 A CN117014504 A CN 117014504A CN 202311015046 A CN202311015046 A CN 202311015046A CN 117014504 A CN117014504 A CN 117014504A
- Authority
- CN
- China
- Prior art keywords
- data
- access request
- data access
- llc
- target
- 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.)
- Granted
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 87
- 238000000034 method Methods 0.000 title claims abstract description 78
- 238000012545 processing Methods 0.000 claims abstract description 285
- 230000004044 response Effects 0.000 claims abstract description 44
- 238000004590 computer program Methods 0.000 claims description 23
- 230000008569 process Effects 0.000 claims description 7
- 238000004460 liquid liquid chromatography Methods 0.000 description 286
- 238000010586 diagram Methods 0.000 description 7
- 230000001360 synchronised effect Effects 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请提供一种数据传输方法、装置、设备、介质及产品。该方法包括:接收内核处理器发送的数据访问请求;响应于确定数据访问请求携带第一标记,则通过片上网络,将数据访问请求转发至目标LLC,以使目标LLC根据数据访问请求,从目标LLC中查询对应数据,并对该数据执行处理;其中,第一标记用于标记数据访问请求用于请求共享数据;响应于确定数据访问请求携带第二标记或者不携带标记,则根据数据访问请求,从私有缓存中查询对应数据,并对该数据执行处理;其中,第二标记用于标记数据访问请求用于请求非共享数据。本申请的方案,能够方便有效地解决缓存一致性问题。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种数据传输方法、装置、设备、介质及产品。
背景技术
伴随计算机技术的发展,共享存储多核处理系统的应用更加广泛。多核处理系统是指使用多个内核处理器来进行数据处理的系统,即系统中存在多个内核处理器,比如,目前一些系统中拥有十几个甚至几十个内核处理器。
在多核处理系统中,各个内核处理器为了匹配其运行速度,往往配置有对应的私有缓存,内核处理器对应的私有缓存可以用来存储该内核处理器经常需要访问的数据,以提升处理效率。实际应用中,不同内核处理器可能需要共享某些数据,也就是说,同一数据可能有多个副本分别存放在这些内核处理器的私有缓存中。当某个私有缓存中的副本被更新,则其他私有缓存中的对应副本应作相应修改,以保持共享数据在不同内核处理器的私有缓存中是一致的,不然就会发生同一数据多个不同副本共存的现象。这就是所谓的缓存一致性问题。
当前,多核处理系统通过缓存一致性协议来解决缓存一致性问题。但是缓存一致性协议的处理过程会产生较大的资源消耗,比如,需要额外的存储空间来存放数据的状态信息,同时还需要专门的处理电路用于维护这些数据的状态,此外这些数据的一致性维护操作还会产生功耗。
发明内容
本申请提供一种数据传输方法、装置、设备、介质及产品,用以方便有效地解决缓存一致性问题。
一方面,本申请提供一种数据传输方法,应用于私有缓存,包括:接收内核处理器发送的数据访问请求;响应于确定数据访问请求携带第一标记,则通过片上网络,将数据访问请求转发至目标LLC,以使目标LLC根据数据访问请求,从目标LLC中查询对应数据,并对该数据执行处理;其中,第一标记用于标记数据访问请求用于请求共享数据;响应于确定数据访问请求携带第二标记或者不携带标记,则根据数据访问请求,从私有缓存中查询对应数据,并对该数据执行处理;其中,第二标记用于标记数据访问请求用于请求非共享数据。
另一方面,本申请还提供一种数据传输方法,应用于片上网络,包括:接收私有缓存转发的内核处理器的数据访问请求;响应于确定数据访问请求携带第一标记,则将数据访问请求转发至目标LLC,以使目标LLC根据数据访问请求,从目标LLC中查询对应数据,并对该数据执行处理;其中,第一标记用于标记数据访问请求用于请求共享数据,并且数据访问请求是私有缓存检测到数据访问请求携带第一标记后转发的。
又一方面,本申请还提供一种数据传输装置,应用于私有缓存,包括:第一接收模块,用于接收内核处理器发送的数据访问请求;第一处理模块,用于响应于确定数据访问请求携带第一标记,则通过片上网络,将数据访问请求转发至目标LLC,以使目标LLC根据数据访问请求,从目标LLC中查询对应数据,并对该数据执行处理;其中,第一标记用于标记数据访问请求用于请求共享数据;第二处理模块,用于响应于确定数据访问请求携带第二标记或者不携带标记,则根据数据访问请求,从私有缓存中查询对应数据,并对该数据执行处理;其中,第二标记用于标记数据访问请求用于请求非共享数据。
又一方面,本申请还提供一种数据传输装置,应用于片上网络,包括:第二接收模块,用于接收私有缓存转发的内核处理器的数据访问请求;第三处理模块,用于响应于确定数据访问请求携带第一标记,则将数据访问请求转发至目标LLC,以使目标LLC根据数据访问请求,从目标LLC中查询对应数据,并对该数据执行处理;其中,第一标记用于标记数据访问请求用于请求共享数据,并且数据访问请求是私有缓存检测到数据访问请求携带第一标记后转发的。
又一方面,本申请提供一种电子设备,包括:处理器,以及与处理器通信连接的存储器;存储器存储计算机执行指令;处理器执行存储器存储的计算机执行指令,以实现如前的方法。
又一方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现如前的方法。
又一方面,本申请提供一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现如前的方法。
本申请提供的数据传输方法、装置、设备、介质及产品中,私有缓存接收内核处理器发送的数据访问请求;响应于确定数据访问请求携带第一标记,则通过片上网络,将数据访问请求转发至目标LLC,目标LLC根据该数据访问请求,从目标LLC中查询对应数据,并对该数据执行处理;其中,第一标记用于标记数据访问请求用于请求共享数据;响应于确定数据访问请求携带第二标记或者不携带标记,则根据该数据访问请求,从私有缓存中查询对应数据,并对该数据执行处理;其中,第二标记用于标记数据访问请求用于请求非共享数据。本申请的方案,针对不同情况的数据访问请求,执行相应的数据处理,只在目标LLC中存储共享数据,从而无需针对各私有缓存进行维护缓存一致性的处理,解决了目前的缓存一致性处理资源消耗较大的问题。由此原本用于处理缓存一致性问题的相关电路和存储单元可以节约出来,并且由缓存一致性处理导致的对片上网络的访问响应也会减少,从而提高数据传输效率,减小功耗。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1中示例性示出了本申请实施例一提供的数据传输方法的流程示意图;
图2中示例性示出了本申请实施例二提供的数据传输方法的流程示意图;
图3中示例性示出了一示例的数据传输方法的流程示意图;
图4为本申请实施例三提供的一种数据传输方法的流程图;
图5为本申请实施例三提供的一种数据传输方法的流程图;
图6为本申请实施例三提供的一种数据传输方法的流程图;
图7为本申请实施例三提供的一种数据传输方法的流程图;
图8中示例性示出了本申请实施例四提供的数据传输装置的结构示意图;
图9中示例性示出了一示例提供的数据传输装置的结构示意图;
图10中示例性示出了一示例提供的数据传输装置的结构示意图;
图11为本申请实施例五提供的电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
本申请中的用语“包括”和“具有”用以表示开放式的包括在内的意思,并且是指除了列出的要素/组成部分/等之外还可存在另外的要素/组成部分/等;用语“第一”和“第二”等仅作为标记或区分使用,不是对其对象的先后顺序或数量限制。此外,附图中的不同元件和区域只是示意性示出,因此不限于附图中示出的尺寸或距离。下面以具体的实施例对技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
在计算机技术发展的过程中,单核处理器在执行任务时,会频繁读写主存储器中的数据,等待主存储器数据的读写完成是耗时操作,会拖慢单核处理器的运行速度,所以一般会在单核处理器上配置私有缓存,将数据从主存储器中加载到私有缓存,后续对该数据的操作在私有缓存中进行,再适时将私有缓存中的数据同步到主存储器,以此提高单核处理器的任务执行效率。但是,在多核处理器的情况下,多个内核处理器操作同一数据时,都将数据加载到各自的私有缓存中,其中一个内核处理器将该数据修改了,对于其他内核处理器来说是不可见的,导致某内核处理器将数据同步到主存储器中后其他内核处理器对应的私有缓存并没有同步最新的数据,带来了缓存一致性的问题。
目前,为了解决缓存一致性的问题,通常会使用缓存一致性协议来对数据进行处理。缓存一致性协议是在多核处理系统中,一种用来保持多个私有缓存之间,以及私有缓存与主存储器之间数据一致的机制。当某个内核处理器接收到访问共享数据的请求时,将其他内核处理器中该数据的状态置为无效,只从自己的私有缓存中修改该数据,发送给内核处理器,同时将修改后的数据同步到主存储器中,再通过snoop、broadcast等操作,将数据同步到各个私有缓存中。这种数据传输方式使得多核系统中需要额外的存储空间来放置数据的状态信息,还需要有专门的处理电路来维护这些数据的状态,还会进一步带来片上网络的访存压力,访问延迟增大,进而消耗更多的功耗。因此,如何能够更好的解决缓存一致性的问题,实现多核系统中的数据传输,成为了需要思考的问题。
本申请提供的技术内容,旨在解决相关技术的如上述技术问题。本申请实施例中,私有缓存接收内核处理器发送的数据访问请求;响应于确定数据访问请求携带第一标记,则通过片上网络将该数据访问请求转发至目标LLC,目标LLC根据接收到的数据访问请求,从目标LLC中查询对应数据,并对该数据执行相应处理;其中,第一标记用于标记数据访问请求用于请求共享数据;响应于确定数据访问请求携带第二标记或者不携带标记,则根据该数据访问请求,从私有缓存中查询对应数据,并对该数据执行处理;其中,第二标记用于标记数据访问请求用于请求非共享数据。本申请的方案,针对不同情况的数据访问请求,执行相应的数据处理,只在目标LLC中存储共享数据,从而无需针对各私有缓存进行维护缓存一致性的处理,解决了目前的缓存一致性处理资源消耗较大的问题。由此原本用于处理缓存一致性问题的相关电路和存储单元可以节约出来,并且由缓存一致性处理导致的对片上网络的访问响应也会减少,从而提高数据传输效率,减小功耗。
本申请实施例的一些方面涉及上述考虑。以下结合一些实施例对方案进行示例介绍。
实施例一
图1中示例性示出了本申请实施例一提供的数据传输方法的流程示意图,本示例的执行主体可以为应用在私有缓存的数据传输装置,如图1所示,该方法包括:
步骤101、接收内核处理器发送的数据访问请求;
步骤102、响应于确定数据访问请求携带第一标记,则通过片上网络,将数据访问请求转发至目标LLC,以使目标LLC根据数据访问请求,从目标LLC中查询对应数据,并对该数据执行处理;其中,第一标记用于标记数据访问请求用于请求共享数据;
步骤103、响应于确定数据访问请求携带第二标记或者不携带标记,则根据数据访问请求,从私有缓存中查询对应数据,并对该数据执行处理;其中,第二标记用于标记数据访问请求用于请求非共享数据。
实际应用中,该方法的执行主体可以为数据传输装置,其实现方式有多种,比如,可以通过计算机程序实现,例如,应用软件等;或者,也可以实现为存储有相关计算机程序的介质,例如,U盘、云盘等;再或者,还可以通过集成或安装有相关计算机程序的实体装置实现,例如,芯片等。
其中,最后一级缓存(英文全称为Last Level Cache,简称LLC)是指整个缓存架构中的最后一级缓存,是离主存储器最近的一级缓存。具体的,用户向内核处理器发起数据访问请求,比如,数据访问请求可以携带第一标记、第二标记或者不携带标记。其中,第一标记表示用户发起的数据访问请求为请求共享数据,第二标记表示用户发起的数据访问请求为请求非共享数据。此时,内核处理器接收到用户发起的数据访问请求后,将该数据访问请求转发到私有缓存。私有缓存接收到内核处理器发送的数据访问请求后,判断该数据访问请求携带第一标记、第二标记还是未携带标记。具体判断方法可以通过请求中的标志位来判断。举例来说,若请求中的标志位为1,则该数据访问请求携带第一标记,表示该数据访问请求请求的是共享数据;若请求中的标志位为0,则该数据访问请求携带第二标记,表示该数据访问请求请求的是非共享数据;若请求中标志位为空,则该数据访问请求未携带标记,表示该数据访问请求请求的可能是共享数据也可能是非共享数据,按照无标记的数据访问请求执行后续对数据的相应处理。需要说明的是,上述只是一种示例,并未排除其它的判定数据访问请求携带标记的方式。
再具体的,若判断结果为携带第一标记的数据访问请求,该数据访问请求请求的是共享数据,则不在私有缓存中查找该数据访问请求对应的数据,直接将该数据访问请求进行简单接口协议转换转发至片上网络,片上网络再将该数据访问请求转发到目标LLC。目标LLC根据该数据访问请求,在目标LLC中查找该数据访问请求对应的数据,对该数据执行相应的处理。举例来说,若该数据访问请求为读取数据的请求,则在目标LLC中找到该请求对应的数据,将该数据处理结果返回给片上网络;若该数据访问请求为改写数据的请求,则在目标LLC中找到需要被改写的数据,进行写操作,将数据进行改写,再适时更新到主存储器中。
相应的,若判断结果为携带第二标记的数据访问请求,该数据访问请求请求的是非共享数据,则根据该数据访问请求,先在私有缓存中查询对应的数据,若该数据访问请求对应的数据在私有缓存中找到,则将该数据处理结果返回给内核处理器;若该数据访问请求对应的数据未在私有缓存中找到,则将该数据访问请求进行简单接口协议转换转发至片上网络,再进行后续的处理。
相应的,若判断结果为不携带标记的数据访问请求,该数据访问请求请求的数据可能是共享数据也可能是非共享数据,则根据该数据访问请求,在私有缓存中查询对应的数据,将在私有缓存中找到的该数据访问请求对应的数据的数据处理结果返回给内核处理器。
上述示例中,基于不同标记的数据访问请求的情况,执行相应的数据处理,只在目标LLC中存储共享数据,从而无需针对各私有缓存进行维护缓存一致性的处理,解决了目前的缓存一致性处理资源消耗较大的问题。由此原本用于处理缓存一致性问题的相关电路和存储单元可以节约出来,并且由缓存一致性处理导致的对片上网络的访问响应也会减少,从而提高数据传输效率,减小功耗。
可以理解,在多核处理系统中,目标LLC的数量通常为一个。因此共享数据存储在目标LLC中,也即所有内核处理器共享的数据仅在单个缓存中存储,因此,不存在同一数据在多个缓存中存在副本的情况,故无需执行缓存一致性处理。需要说明的是,用于存储共享数据的,所说的目标LLC可以为目前多核处理系统中自带的LLC(本文也称为已有LLC),也可以为新增的专门用于存储共享数据的专用LLC。
在前述示例的基础上,步骤103中,从私有缓存中查询对应数据之后,还包括:响应于从私有缓存中未查询到数据访问请求对应的数据,则通过片上网络,将数据访问请求转发至目标LLC,以使目标LLC根据数据访问请求,从目标LLC中查询对应数据,并对该数据执行处理,其中,目标LLC为已有LLC。
具体的,若数据访问请求携带第二标记,表示该数据访问请求请求非共享数据,则先在私有缓存中查询该数据访问请求对应的数据,若未在私有缓存中查询到该数据访问请求对应的数据,则将该数据访问请求进行简单接口协议转换转发至片上网络。此时,将系统中已有的LLC作为目标LLC,将该数据访问请求转发到目标LLC中,目标LLC再根据该数据访问请求,从目标LLC中查询该数据访问请求对应的数据,对该数据执行处理。举例来说,若该数据访问请求为读取数据的请求,则在已有LLC中找到该请求对应的数据,将该数据的数据处理结果返回给片上网络;若该数据访问请求为改写数据的请求,则在已有LLC中找到需要被改写的数据,进行写操作,将数据进行改写,再适时更新到主存储器中。
上述示例中,针对携带第二标记请求非共享数据的情况,在私有缓存中未查询到该数据访问请求对应的数据的条件下,将该数据请求转发至片上网络,再通过片上网络转发至已有的LLC,在已有的LLC中执行相应的数据处理,丰富了多种情况下的数据传输方式,使得数据传输过程更完整。
相应的,在前述任一示例的基础上,方法还包括:响应于确定数据访问请求不携带标记,则根据数据访问请求,从私有缓存中查询对应数据,并将查询的对应数据的数据处理结果返回给内核处理器,再针对数据处理结果,基于缓存一致性协议执行缓存一致性处理。
具体的,若数据访问请求不携带标记,且系统具有兼容处理能力,则按照缓存一致性协议的处理方式对数据进行处理。举例来说,若系统中有4个内核处理器,分别为内核处理器1、内核处理器2、内核处理器3、内核处理器4。当内核处理器1接收到不携带标记的数据访问请求时,将内核处理器2、内核处理器3、内核处理器4中该数据访问请求对应的数据置为无效。若该数据访问请求为读取数据的请求,则只从内核处理器1对应的私有缓存中,找到该数据访问请求对应的数据,并将查询的对应数据的数据处理结果返回给内核处理器1;若该数据访问请求为改写数据的请求,则在内核处理器1对应的私有缓存中找到需要被改写的数据,进行写操作,将数据进行改写,同时将修改后的数据同步到主存储器中,再通过snoop、broadcast等操作,将数据同步到各个私有缓存中。
通过本示例的方案,针对不携带标记的数据访问请求的情况,按照缓存一致性协议处理的方式进行处理,系统具有兼容处理能力,意味着系统保留有缓存一致性协议处理需要的电路资源,对不携带标记的数据访问请求处理方式跟现有系统一样,这种数据处理方式可以减少对片上网络的访存压力,同时节约功耗,并且考虑向前兼容的能力,提高数据传输方案的通用性。
可选的,实际应用中,还可能涉及需要向内核处理器返回数据处理结果的情形,比如,当数据访问请求为读取数据的请求时,还需要将数据访问请求对应的数据处理结果返回给内核处理器,在一个示例中,将数据访问请求转发至目标LLC之后,还包括:通过片上网络,接收目标LLC返回的数据访问请求对应的数据处理结果;将数据访问请求对应的数据处理结果发送给内核处理器。
具体的,在数据访问请求为读取数据的请求时,需要将目标LLC中的该数据访问请求对应的数据处理结果发送至片上网络,片上网络再将该数据处理结果发送到私有缓存中,私有缓存接收到该数据访问请求对应的数据处理结果后,再将该数据处理结果返回给内核处理器。通过本示例的方案,在数据访问请求为读取数据请求的情况下,将目标LLC中的该数据访问请求对应的数据处理结果返回给内核处理器,使得整个数据传输过程更完整。
相应的,在前述示例的基础上,将数据访问请求对应的数据处理结果发送给内核处理器,包括:响应于确定数据访问请求携带第一标记,则直接将目标LLC返回的数据访问请求对应的数据处理结果发送给内核处理器;响应于确定数据访问请求携带第二标记,则将目标LLC返回的数据访问请求对应的数据处理结果缓存至私有缓存中,并将数据访问请求对应的数据处理结果发送给内核处理器。
具体的,将数据访问请求对应的数据发送给内核处理器时,若数据访问请求携带的标记为第一标记,表示该数据访问请求对应的数据为共享数据,则私有缓存只具有转发作用,不将片上网络返回的该数据访问请求对应的共享数据的数据处理结果缓存至私有缓存中,私有缓存接收到片上网络返回的该数据访问请求对应的共享数据的数据处理结果后,直接将该数据处理结果发送给内核处理器;若数据访问请求携带的标记为第二标记,表示该数据访问请求对应的数据为非共享数据,则需要将片上网络返回的该数据访问请求对应的非共享数据的数据处理结果存储在私有缓存中,并将该数据处理结果发送给内核处理器。
上述示例中,当数据访问请求携带第一标记时,不将片上网络返回的数据处理结果存在私有缓存中,下次再需要同样的共享数据时,直接将数据访问请求发送至目标LLC,将目标LLC中的该数据访问请求对应的数据处理结果返回给内核处理器,避免了缓存一致性的问题;当数据访问请求携带第二标记时,将片上网络返回的数据处理结果存在私有缓存中,下次再需要同样的非共享数据时,则直接可以从私有缓存中找到该数据访问请求对应的数据处理结果,直接返回给内核处理器,使得数据传输的速度更快,操作更方便。
在一个示例中,数据访问请求对应的数据处理结果是目标LLC通过执行预测处理得到的,预测处理包括:响应于数据访问请求,从目标LLC中查询对应数据,并根据历史处理数据确定预测数据,对该预测数据进行处理得到预测处理结果;响应于从目标LLC中查询的对应数据与该预测数据一致,将预测处理结果作为数据访问请求对应的数据处理结果;响应于从目标LLC中查询的对应数据与该预测数据不一致,对查询的对应数据进行处理得到数据访问请求对应的数据处理结果。
具体的,针对携带第一标记的数据访问请求,该数据访问请求请求的是共享数据,目标LLC接收到该数据访问请求,在目标LLC中查询该数据访问请求对应的数据的这段时间里,先对该数据进行预测处理,比如,可以预测本次查询的数据与上次查询的数据相同。举例来说,上次查询的数据为数据A,预测本次查询的数据也为数据A,将本次查询的数据按照数据A进行处理得到预测处理结果,暂存至目标LLC中,若等到查询到本次数据访问请求对应的数据结果也为数据A,表明响应于从目标LLC中查询的对应数据与该预测数据一致,那么将已经得到的预测处理结果作为数据访问请求对应的数据处理结果;若等到查询到本次数据访问请求对应的数据结果为数据B,表明响应于从目标LLC中查询的对应数据与该预测数据不一致,那么针对数据B执行数据处理得到数据访问请求对应的数据处理结果。通过本示例的方案,可以先对数据访问请求对应的数据进行预测,提高了数据传输的效率。
在前述任一示例的基础上,数据访问请求为内核处理器从多个线程中确定当前处于空闲的线程之后,在空闲的线程下发送的。具体的,对于多线程处理器,内核处理器先在多个线程中确定当前处于空闲的线程,然后在该空闲的线程下进行数据访问请求的发送,从而降低目标LLC搬移数据的延迟较大带来的影响。
本实施例提供的数据传输方法中,在私有缓存侧,接收内核处理器发送的数据访问请求;响应于确定数据访问请求携带第一标记,则通过片上网络,将数据访问请求转发至目标LLC,目标LLC根据数据访问请求,从目标LLC中查询对应数据,并执行相应处理;响应于确定数据访问请求携带第二标记或者不携带标记,则根据数据访问请求,从私有缓存中查询对应数据,并执行相应处理。本申请的方案,针对不同数据访问请求的情况,执行相应的数据处理,只在目标LLC中存储共享数据,需要共享数据时,只从目标LLC中读取,从而无需针对各私有缓存进行维护缓存一致性的处理,解决了目前的缓存一致性处理资源消耗较大的问题。由此原本用于处理缓存一致性问题的相关电路和存储单元可以节约出来,并且由缓存一致性处理导致的对片上网络的访问响应也会减少,从而提高数据传输效率,减小功耗。
实施例二
图2中示例性示出了本申请实施例二提供的数据传输方法的流程示意图,本示例的执行主体可以为应用在片上网络的数据传输装置,如图2所示,该方法包括:
步骤201、接收私有缓存转发的内核处理器的数据访问请求;
步骤202、响应于确定数据访问请求携带第一标记,则将数据访问请求转发至目标LLC,以使目标LLC根据数据访问请求,从目标LLC中查询对应数据,并对该数据执行处理;其中,第一标记用于标记数据访问请求用于请求共享数据,并且数据访问请求是私有缓存检测到数据访问请求携带第一标记后转发的。
实际应用中,该方法的执行主体可以为数据传输装置,其实现方式有多种,比如,可以通过计算机程序实现,例如,应用软件等;或者,也可以实现为存储有相关计算机程序的介质,例如,U盘、云盘等;再或者,还可以通过集成或安装有相关计算机程序的实体装置实现,例如,芯片等。
具体的,私有缓存在接收到内核处理器发送的数据访问请求后,将该数据访问请求转发至片上网络。若该数据访问请求携带第一标记,表示该数据访问请求是请求共享数据,结合前述举例,私有缓存检测到内核处理器发送的数据访问请求中的标志位为1,说明该数据访问请求为携带第一标记的数据访问请求,不在私有缓存中查询该数据访问请求对应的数据,直接将该数据访问请求转发到片上网络,片上网络再将该数据访问请求转发到目标LLC,目标LLC根据该数据访问请求,在目标LLC中查询对应数据,执行相应的处理。上述示例中,基于携带第一标记的数据访问请求的情况,执行相应的数据处理,使得数据传输过程更完整。
相应的,图3中示例性示出了一示例的数据传输方法的流程示意图,如图3所示,在上述示例的基础上,方法还包括:
步骤203、响应于确定数据访问请求携带第二标记,则将数据访问请求转发至目标LLC,以使目标LLC根据数据访问请求,从目标LLC中查询对应数据,并对该数据执行处理,其中,目标LLC为已有LLC;其中,数据访问请求是私有缓存根据数据访问请求,查询私有缓存且未查询到数据访问请求对应的数据后发送的。
具体的,当数据访问请求携带第二标记时,表示该数据访问请求是请求非共享数据,私有缓存根据内核处理器发送的携带第二标记的数据访问请求,在私有缓存中未查询该数据访问请求对应的数据时,将该数据访问请求发送至片上网络。同时将系统中已有的LLC作为目标LLC,通过片上网络,将该数据访问请求转发至已有LLC,已有LLC根据该数据访问请求,从已有LLC中查询数据,执行相应的处理。上述示例中,基于携带第二标记的数据访问请求的情况,执行相应的数据处理,使得数据传输过程更完整。
可选的,当数据访问请求为读取数据的请求时,片上网络还需要将数据访问请求对应的数据处理结果返回给私有缓存,在一个示例中,将数据访问请求转发至目标LLC之后,还包括:接收目标LLC返回的数据访问请求对应的数据处理结果,并将数据处理结果发送至私有缓存,以使私有缓存将数据处理结果发送给内核处理器。
具体的,在数据访问请求为读取数据的请求时,需要将目标LLC中的该数据访问请求对应的数据处理结果发送至片上网络,片上网络接收该数据访问请求对应的数据处理结果后,再将该数据处理结果发送到私有缓存中,私有缓存再将该数据处理结果返回给内核处理器。通过本示例的方案,在数据访问请求为读取数据请求的情况下,将目标LLC中的该数据访问请求对应的数据处理结果返回给私有缓存,再通过私有缓存将数据返回给内核处理器,使得整个数据传输过程更完整。
在前述任一示例的基础上,目标LLC根据数据访问请求,从目标LLC中查询对应数据之后,还包括:
响应于确定目标LLC中不存在数据访问请求对应的数据,则向主存储器请求数据访问请求对应的数据;将主存储器返回的数据作为数据访问请求对应的数据,缓存数据访问请求对应的数据至目标LLC。
具体的,当数据访问请求携带第一标记时,表示该数据访问请求请求的是共享数据,若目标LLC中不存在该数据访问请求对应的数据,则需要从主存储器中请求该数据访问请求对应的数据,并将主存储器返回的数据作为该数据访问请求对应的数据,同时缓存该数据到目标LLC。在将该数据访问请求对应的数据缓存到目标LLC的同时,在目标LLC中标记该数据为有效状态。有效状态表明该数据在目标LLC中是有效的,如果后续还需要该共享数据,可以直接从目标LLC中获取,不需要再向主存储器请求该数据。当LLC中的存储空间达到上限时,可以将目标LLC中的部分数据置为无效,也就是将部分数据删除,标记为有效状态还可以表明该数据在目标LLC中是存在的,可以对该数据进行读取操作。若所需的数据在LLC中的状态为无效状态,则还需要向主存储器中请求所需的数据。
当数据访问请求携带第二标记时,表示该数据访问请求请求的是非共享数据,若目标LLC中不存在该数据访问请求对应的数据,则需要从主存储器中请求该数据访问请求对应的数据,并将主存储器返回的数据作为该数据访问请求对应的数据,同时缓存该数据到目标LLC。在将该数据访问请求对应的数据缓存到目标LLC的同时,在目标LLC中标记该数据为单核LLC数据状态。单核LLC数据状态表明该数据在目标LLC中的状态是有效的,同时还可以表明该数据在私有缓存和目标LLC中同时存在,如果后续还需要该非共享数据时,可以直接从私有缓存中获取,无需再通过片上网络将数据访问请求发送到目标LLC中查询。
上述示例中,如果目标LLC中不存在该数据访问请求对应的数据时,需要向主存储器中请求该数据访问请求对应的数据,再将该数据缓存至目标LLC中,并根据数据的类型标记不同的状态。通过本示例的方案,能够将目标LLC中的数据进行有效管理,使得数据传输方法更方便快捷。
在前述任一示例的基础上,将数据访问请求转发至目标LLC之前,还包括:响应于检测到不存在专用LLC,则将已有LLC作为目标LLC,并将数据访问请求转发至目标LLC;响应于检测到存在专用LLC,则根据数据访问请求,从专用LLC中确定目标LLC,并将数据访问请求转发至目标LLC。
具体的,若数据访问请求携带第一标记,在将数据访问请求转发至目标LLC时,检测在系统中是否存在专用LLC。其中,专用LLC可以为1个,也可以为多个,需要根据内核处理器的数量以及内核处理器在系统中的位置来确定专用LLC的数量和在系统中的位置。如果不存在专用LLC,则将已有的LLC作为目标LLC,并将数据访问请求发送至目标LLC;如果存在专用LLC,则根据数据访问请求从专用LLC中确定目标LLC,并将数据访问请求发送至目标LLC。举例来说,若只存在一个专用LLC,则将该专用LLC作为目标LLC,将数据访问请求转发至该专用LLC;若存在多个专用LLC,则选取该系统网络中与各个内核处理器传输距离最短的节点,将该节点所在的专用LLC作为目标LLC,将数据访问请求转发至该专用LLC。
上述示例中,在数据访问请求携带第一标记的情况下,若系统中存在专用LLC,则将专用LLC作为目标LLC;若不存在专用LLC,则将已有LLC作为目标LLC。采用已有LLC可以节省系统中的电路资源,使用专用LLC,可以使得数据访问请求对应的数据到所有内核处理器的总体平均传输延迟最短。
本实施例提供的数据传输方法中,在片上网络侧,接收私有缓存转发的内核处理器的数据访问请求;响应于确定数据访问请求携带第一标记,则将数据访问请求转发至目标LLC,目标LLC再根据数据访问请求,从目标LLC中查询对应数据,对该数据执行相应的处理;响应于确定数据访问请求携带第二标记,则将已有LLC作为目标LLC,并将数据访问请求转发至目标LLC,目标LLC再根据数据访问请求,从目标LLC中查询对应数据,对该数据执行相应的处理。本申请的方案,针对不同数据访问请求的情况,执行相应的数据处理,解决了目前的缓存一致性处理资源消耗较大的问题。由此原本用于处理缓存一致性问题的相关电路和存储单元可以节约出来,并且由缓存一致性处理导致的对片上网络的访问响应也会减少,从而提高数据传输效率,减小功耗。
实施例三
下面结合不同场景,对本申请提供的数据传输方法进行详细说明。
图4为本申请实施例三提供的一种数据传输方法的流程图,如图4所示,该流程为数据访问请求携带第一标记且使用专用LLC进行读取数据处理的流程。数据传输的过程如下:
步骤401,内核处理器接收用户发起的数据访问请求,该数据访问请求携带第一标记。
步骤402,内核处理器将该数据访问请求转发至私有缓存。
步骤403,私有缓存将该数据访问请求转发至片上网络。
步骤404,片上网络将该数据访问请求转发至专用LLC,如果该数据访问请求对应的数据在专用LLC中存在,则对该数据进行处理,并将该数据的数据处理结果返回给片上网络;如果该数据访问请求对应的数据在专用LLC中不存在,则向主存储器中请求该数据访问请求对应的数据,并将获取到的数据缓存至专用LLC中,并将该数据标记为有效状态,对该数据进行处理,再将该数据的数据处理结果返回给片上网络。
步骤405,片上网络将该数据访问请求对应的数据处理结果发送至私有缓存。
步骤406,私有缓存将该数据访问请求对应的数据处理结果发送至内核处理器。
图5为本申请实施例三提供的一种数据传输方法的流程图,如图5所示,该流程为数据访问请求携带第一标记且使用已有LLC进行读取数据处理的流程。数据传输的过程如下:
步骤501,内核处理器接收用户发起的数据访问请求,该数据访问请求携带第一标记。
步骤502,内核处理器将该数据访问请求转发至私有缓存。
步骤503,私有缓存将该数据访问请求转发至片上网络。
步骤504,片上网络将该数据访问请求转发至已有LLC,如果该数据访问请求对应的数据在已有LLC中存在,则对该数据进行处理,并将该数据的数据处理结果返回给片上网络;如果该数据访问请求对应的数据在已有LLC中不存在,则向主存储器中请求该数据访问请求对应的数据,并将获取到的数据缓存至已有LLC中,并将该数据标记为有效状态,对该数据进行处理,再将该数据的数据处理结果返回给片上网络。
步骤505,片上网络将该数据访问请求对应的数据处理结果发送至私有缓存。
步骤506,私有缓存将该数据访问请求对应的数据处理结果发送至内核处理器。
图6为本申请实施例三提供的一种数据传输方法的流程图,如图6所示,该流程为数据访问请求携带第二标记且使用已有LLC进行读取数据处理的流程。数据传输的过程如下:
步骤601,内核处理器接收用户发起的数据访问请求,该数据访问请求携带第二标记。
步骤602,内核处理器将该数据访问请求转发至私有缓存。
步骤603,在私有缓存中查询该数据访问请求对应的数据,如果存在该数据,则对该数据进行处理,并将该数据的数据处理结果返回给内核处理器;如果不存在该数据,将该数据访问请求转发至片上网络。
步骤604,如果不存在该数据,片上网络将该数据访问请求转发至已有LLC,如果该数据访问请求对应的数据在已有LLC中存在,则对该数据进行处理,并将该数据的数据处理结果返回给片上网络;如果该数据访问请求对应的数据在已有LLC中不存在,则向主存储器中请求该数据访问请求对应的数据,并将获取到的数据缓存至已有LLC中,并将该数据标记为单核LLC数据状态,对该数据进行处理,再将该数据的数据处理结果返回给片上网络。
步骤605,片上网络将该数据访问请求对应的数据处理结果发送至私有缓存。
步骤606,私有缓存缓存该数据访问请求对应的数据处理结果,并将该数据处理结果返回给内核处理器。
图7为本申请实施例三提供的一种数据传输方法的流程图,如图7所示,该流程为数据访问请求未携带标记的数据处理流程。数据传输的过程如下:
步骤701,内核处理器1接收用户发起的数据访问请求,该数据访问请求不携带标记。
步骤702,内核处理器1将该数据访问请求转发至内核处理器1对应的私有缓存。
步骤703,如果该数据访问请求为读取数据请求,将其他内核处理器中该数据访问请求对应的数据置为无效,在内核处理器1的私有缓存中查询该数据访问请求对应的数据,对该数据进行处理,并将该数据的数据处理结果返回给内核处理器。如果该数据访问请求为改写数据请求,则在内核处理器1对应的私有缓存中找到需要被改写的数据,进行写操作,将数据进行改写。
步骤704,如果数据被改写,则将修改后的数据同步到主存储器中,再通过snoop、broadcast等操作,将数据同步到其他私有缓存中。
其中,数据传输的具体方式可以参见前述实施例的内容。综上所述,本示例提供的数据传输方法,针对不同情况的数据访问请求,执行相应的数据处理,只在目标LLC中存储共享数据,从而无需针对各私有缓存进行维护缓存一致性的处理,解决了目前的缓存一致性处理资源消耗较大的问题。由此原本用于处理缓存一致性问题的相关电路和存储单元可以节约出来,并且由缓存一致性处理导致的对片上网络的访问响应也会减少,从而提高数据传输效率,减小功耗。
实施例四
图8中示例性示出了本申请实施例四提供的数据传输装置的结构示意图,如图8所示,该装置包括:
第一接收模块81,用于接收内核处理器发送的数据访问请求;
第一处理模块82,用于响应于确定数据访问请求携带第一标记,则通过片上网络,将数据访问请求转发至目标LLC,以使目标LLC根据数据访问请求,从目标LLC中查询对应数据,并对该数据执行处理;其中,第一标记用于标记数据访问请求用于请求共享数据;
第二处理模块83,用于响应于确定数据访问请求携带第二标记或者不携带标记,则根据数据访问请求,从私有缓存中查询对应数据,并对该数据执行处理;其中,第二标记用于标记数据访问请求用于请求非共享数据。
实际应用中,该数据传输装置的实现方式有多种,比如,可以通过计算机程序实现,例如,应用软件等;或者,也可以实现为存储有相关计算机程序的介质,例如,U盘、云盘等;再或者,还可以通过集成或安装有相关计算机程序的实体装置实现,例如,芯片等。
具体的,用户向内核处理器发起数据访问请求,其中,第一标记表示用户发起的数据访问请求为请求共享数据,第二标记表示用户发起的数据访问请求为请求非共享数据。此时,内核处理器接收到用户发起的数据访问请求后,将该数据访问请求转发到私有缓存。私有缓存接收到内核处理器发送的数据访问请求后,判断该数据访问请求携带第一标记、第二标记还是未携带标记。具体判断方法可以通过请求中的标志位来判断。需要说明的是,上述只是一种示例,并未排除其它的判定数据访问请求携带标记的方式。
再具体的,若判断结果为携带第一标记的数据访问请求,该数据访问请求请求的是共享数据,则不在私有缓存中查找该数据访问请求对应的数据,直接将该数据访问请求进行简单接口协议转换转发至片上网络,片上网络再将该数据访问请求转发到目标LLC。目标LLC根据该数据访问请求,在目标LLC中查找该数据访问请求对应的数据,对该数据执行相应的处理。
相应的,若判断结果为携带第二标记的数据访问请求,该数据访问请求请求的是非共享数据,则根据该数据访问请求,先在私有缓存中查询对应的数据,若该数据访问请求对应的数据在私有缓存中找到,则将该数据处理结果返回给内核处理器;若该数据访问请求对应的数据未在私有缓存中找到,则将该数据访问请求进行简单接口协议转换转发至片上网络,再进行后续的处理。
相应的,若判断结果为不携带标记的数据访问请求,该数据访问请求请求的数据可能是共享数据也可能是非共享数据,则根据该数据访问请求,在私有缓存中查询对应的数据,将在私有缓存中找到的该数据访问请求对应的数据的数据处理结果返回给内核处理器。
上述示例中,基于不同标记的数据访问请求的情况,执行相应的数据处理,只在目标LLC中存储共享数据,从而无需针对各私有缓存进行维护缓存一致性的处理,解决了目前的缓存一致性处理资源消耗较大的问题。由此原本用于处理缓存一致性问题的相关电路和存储单元可以节约出来,并且由缓存一致性处理导致的对片上网络的访问响应也会减少,从而提高数据传输效率,减小功耗。
可以理解,在多核处理系统中,目标LLC的数量通常为一个。因此共享数据存储在目标LLC中,也即所有内核处理器共享的数据仅在单个缓存中存储,因此,不存在同一数据在多个缓存中存在副本的情况,故无需执行缓存一致性处理。需要说明的是,用于存储共享数据的,所说的目标LLC可以为目前多核处理系统中自带的LLC(本文也称为已有LLC),也可以为新增的专门用于存储共享数据的专用LLC。
在前述示例的基础上,第二处理模块,具体还用于:响应于从私有缓存中未查询到数据访问请求对应的数据,则通过片上网络,将数据访问请求转发至目标LLC,以使目标LLC根据数据访问请求,从目标LLC中查询对应数据,并对该数据执行处理,其中,目标LLC为已有LLC。
具体的,若数据访问请求携带第二标记,表示该数据访问请求请求非共享数据,则先在私有缓存中查询该数据访问请求对应的数据,若未在私有缓存中查询到该数据访问请求对应的数据,则将该数据访问请求进行简单接口协议转换转发至片上网络。此时,将系统中已有的LLC作为目标LLC,将该数据访问请求转发到目标LLC中,目标LLC再根据该数据访问请求,从目标LLC中查询该数据访问请求对应的数据,对该数据执行处理。
上述示例中,针对携带第二标记请求非共享数据的情况,在私有缓存中未查询到该数据访问请求对应的数据的条件下,将该数据请求转发至片上网络,再通过片上网络转发至已有的LLC,在已有的LLC中执行相应的数据处理,丰富了多种情况下的数据传输方式,使得数据传输过程更完整。
相应的,在前述任一示例的基础上,第二处理模块,具体用于:响应于确定数据访问请求不携带标记,则根据数据访问请求,从私有缓存中查询对应数据,并将查询的对应数据的数据处理结果返回给内核处理器,再针对数据处理结果,基于缓存一致性协议执行缓存一致性处理。
具体的,若数据访问请求不携带标记,且系统具有兼容处理能力,则按照缓存一致性协议的处理方式对数据进行处理。
通过本示例的方案,针对不携带标记的数据访问请求的情况,按照缓存一致性协议处理的方式进行处理,系统具有兼容处理能力,意味着系统保留有缓存一致性协议处理需要的电路资源,对不携带标记的数据访问请求处理方式跟现有系统一样,这种数据处理方式可以减少对片上网络的访存压力,同时节约功耗,并且考虑向前兼容的能力,提高数据传输方案的通用性。
可选的,实际应用中,还可能涉及需要向内核处理器返回数据处理结果的情形,在一个示例中,第一处理模块和第二处理模块,具体还用于:通过片上网络,接收目标LLC返回的数据访问请求对应的数据处理结果;将数据访问请求对应的数据处理结果发送给内核处理器。
具体的,在数据访问请求为读取数据的请求时,需要将目标LLC中的该数据访问请求对应的数据处理结果发送至片上网络,片上网络再将该数据处理结果发送到私有缓存中,私有缓存接收到该数据访问请求对应的数据处理结果后,再将该数据处理结果返回给内核处理器。通过本示例的方案,在数据访问请求为读取数据请求的情况下,将目标LLC中的该数据访问请求对应的数据处理结果返回给内核处理器,使得整个数据传输过程更完整。
相应的,在前述示例的基础上,第一处理模块和第二处理模块,具体还用于:响应于确定数据访问请求携带第一标记,则直接将目标LLC返回的数据访问请求对应的数据处理结果发送给内核处理器;响应于确定数据访问请求携带第二标记,则将目标LLC返回的数据访问请求对应的数据处理结果缓存至私有缓存中,并将数据访问请求对应的数据处理结果发送给内核处理器。
具体的,将数据访问请求对应的数据发送给内核处理器时,若数据访问请求携带的标记为第一标记,表示该数据访问请求对应的数据为共享数据,则私有缓存只具有转发作用,不将片上网络返回的该数据访问请求对应的共享数据的数据处理结果缓存至私有缓存中,私有缓存接收到片上网络返回的该数据访问请求对应的共享数据的数据处理结果后,直接将该数据处理结果发送给内核处理器;若数据访问请求携带的标记为第二标记,表示该数据访问请求对应的数据为非共享数据,则需要将片上网络返回的该数据访问请求对应的非共享数据的数据处理结果存储在私有缓存中,并将该数据处理结果发送给内核处理器。
上述示例中,当数据访问请求携带第一标记时,不将片上网络返回的数据处理结果存在私有缓存中,下次再需要同样的共享数据时,直接将数据访问请求发送至目标LLC,将目标LLC中的该数据访问请求对应的数据处理结果返回给内核处理器,避免了缓存一致性的问题;当数据访问请求携带第二标记时,将片上网络返回的数据处理结果存在私有缓存中,下次再需要同样的非共享数据时,则直接可以从私有缓存中找到该数据访问请求对应的数据处理结果,直接返回给内核处理器,使得数据传输的速度更快,操作更方便。
在一个示例中,第一处理模块和第二处理模块,具体用于:响应于数据访问请求,从目标LLC中查询对应数据,并根据历史处理数据确定预测数据,对该预测数据进行处理得到预测处理结果;响应于从目标LLC中查询的对应数据与该预测数据一致,将预测处理结果作为数据访问请求对应的数据处理结果;响应于从目标LLC中查询的对应数据与该预测数据不一致,对查询的对应数据进行处理得到数据访问请求对应的数据处理结果。
具体的,针对携带第一标记的数据访问请求,该数据访问请求请求的是共享数据,目标LLC接收到该数据访问请求,在目标LLC中查询该数据访问请求对应的数据的这段时间里,先对该数据进行预测处理。通过本示例的方案,可以先对数据访问请求对应的数据进行预测,提高了数据传输的效率。
在前述任一示例的基础上,数据访问请求为内核处理器从多个线程中确定当前处于空闲的线程之后,在空闲的线程下发送的。具体的,对于多线程处理器,内核处理器先在多个线程中确定当前处于空闲的线程,然后在该空闲的线程下进行数据访问请求的发送,从而降低目标LLC搬移数据的延迟较大带来的影响。
图9中示例性示出了一示例提供的数据传输装置的结构示意图,如图9所示,该装置包括:
第二接收模块91,用于接收私有缓存转发的内核处理器的数据访问请求;
第三处理模块92,用于响应于确定数据访问请求携带第一标记,则将数据访问请求转发至目标LLC,以使目标LLC根据数据访问请求,从目标LLC中查询对应数据,并对该数据执行处理;其中,第一标记用于标记数据访问请求用于请求共享数据,并且数据访问请求是私有缓存检测到数据访问请求携带第一标记后转发的。
实际应用中,该数据传输装置的实现方式有多种,比如,可以通过计算机程序实现,例如,应用软件等;或者,也可以实现为存储有相关计算机程序的介质,例如,U盘、云盘等;再或者,还可以通过集成或安装有相关计算机程序的实体装置实现,例如,芯片等。
具体的,私有缓存在接收到内核处理器发送的数据访问请求后,将该数据访问请求转发至片上网络。上述示例中,基于携带第一标记的数据访问请求的情况,执行相应的数据处理,使得数据传输过程更完整。
相应的,图10中示例性示出了一示例提供的数据传输装置的结构示意图,如图10所示,在上述示例的基础上,装置还包括:
第四处理模块93,用于响应于确定数据访问请求携带第二标记,则将数据访问请求转发至目标LLC,以使目标LLC根据数据访问请求,从目标LLC中查询对应数据,并对该数据执行处理,其中,目标LLC为已有LLC;其中,数据访问请求是私有缓存根据数据访问请求,查询私有缓存且未查询到数据访问请求对应的数据后发送的。
具体的,当数据访问请求携带第二标记时,表示该数据访问请求是请求非共享数据,私有缓存根据内核处理器发送的携带第二标记的数据访问请求,在私有缓存中未查询该数据访问请求对应的数据时,将该数据访问请求发送至片上网络。同时将系统中已有的LLC作为目标LLC,通过片上网络,将该数据访问请求转发至已有LLC,已有LLC根据该数据访问请求,从已有LLC中查询数据,执行相应的处理。上述示例中,基于携带第二标记的数据访问请求的情况,执行相应的数据处理,使得数据传输过程更完整。
可选的,当数据访问请求为读取数据的请求时,片上网络还需要将数据访问请求对应的数据处理结果返回给私有缓存,在一个示例中,第三处理模块和第四处理模块,具体还用于:接收目标LLC返回的数据访问请求对应的数据处理结果,并将数据处理结果发送至私有缓存,以使私有缓存将数据处理结果发送给内核处理器。
具体的,在数据访问请求为读取数据的请求时,需要将目标LLC中的该数据访问请求对应的数据处理结果发送至片上网络,片上网络接收该数据访问请求对应的数据处理结果后,再将该数据处理结果发送到私有缓存中,私有缓存再将该数据处理结果返回给内核处理器。通过本示例的方案,在数据访问请求为读取数据请求的情况下,将目标LLC中的该数据访问请求对应的数据处理结果返回给私有缓存,再通过私有缓存将数据返回给内核处理器,使得整个数据传输过程更完整。
在前述任一示例的基础上,第三处理模块和第四处理模块,具体还用于:响应于确定目标LLC中不存在数据访问请求对应的数据,则向主存储器请求数据访问请求对应的数据;将主存储器返回的数据作为数据访问请求对应的数据,缓存数据访问请求对应的数据至目标LLC。
具体的,当数据访问请求携带第一标记时,表示该数据访问请求请求的是共享数据,若目标LLC中不存在该数据访问请求对应的数据,则需要从主存储器中请求该数据访问请求对应的数据,并将主存储器返回的数据作为该数据访问请求对应的数据,同时缓存该数据到目标LLC。在将该数据访问请求对应的数据缓存到目标LLC的同时,在目标LLC中标记该数据为有效状态。有效状态表明该数据在目标LLC中是有效的,如果后续还需要该共享数据,可以直接从目标LLC中获取,不需要再向主存储器请求该数据。当LLC中的存储空间达到上限时,可以将目标LLC中的部分数据置为无效,也就是将部分数据删除,标记为有效状态还可以表明该数据在目标LLC中是存在的,可以对该数据进行读取操作。若所需的数据在LLC中的状态为无效状态,则还需要向主存储器中请求所需的数据。
当数据访问请求携带第二标记时,表示该数据访问请求请求的是非共享数据,若目标LLC中不存在该数据访问请求对应的数据,则需要从主存储器中请求该数据访问请求对应的数据,并将主存储器返回的数据作为该数据访问请求对应的数据,同时缓存该数据到目标LLC。在将该数据访问请求对应的数据缓存到目标LLC的同时,在目标LLC中标记该数据为单核LLC数据状态。单核LLC数据状态表明该数据在目标LLC中的状态是有效的,同时还可以表明该数据在私有缓存和目标LLC中同时存在,如果后续还需要该非共享数据时,可以直接从私有缓存中获取,无需再通过片上网络将数据访问请求发送到目标LLC中查询。
上述示例中,如果目标LLC中不存在该数据访问请求对应的数据时,需要向主存储器中请求该数据访问请求对应的数据,再将该数据缓存至目标LLC中,并根据数据的类型标记不同的状态。通过本示例的方案,能够将目标LLC中的数据进行有效管理,使得数据传输方法更方便快捷。
在前述任一示例的基础上,第三处理模块,具体用于:响应于检测到不存在专用LLC,则将已有LLC作为目标LLC,并将数据访问请求转发至目标LLC;响应于检测到存在专用LLC,则根据数据访问请求,从专用LLC中确定目标LLC,并将数据访问请求转发至目标LLC。
具体的,若数据访问请求携带第一标记,在将数据访问请求转发至目标LLC时,检测在系统中是否存在专用LLC。其中,专用LLC可以为1个,也可以为多个,需要根据内核处理器的数量以及内核处理器在系统中的位置来确定专用LLC的数量和在系统中的位置。如果不存在专用LLC,则将已有的LLC作为目标LLC,并将数据访问请求发送至目标LLC;如果存在专用LLC,则根据数据访问请求从专用LLC中确定目标LLC,并将数据访问请求发送至目标LLC。
上述示例中,在数据访问请求携带第一标记的情况下,若系统中存在专用LLC,则将专用LLC作为目标LLC;若不存在专用LLC,则将已有LLC作为目标LLC。采用已有LLC可以节省系统中的电路资源,使用专用LLC,可以使得数据访问请求对应的数据到所有内核处理器的总体平均传输延迟最短。
本实施例提供的数据传输装置中,私有缓存接收内核处理器发送的数据访问请求;响应于确定数据访问请求携带第一标记,则通过片上网络,将该数据访问请求转发至目标LLC,目标LLC根据该数据访问请求,从目标LLC中查询对应数据,并对该数据执行处理;其中,第一标记用于标记数据访问请求用于请求共享数据;响应于该数据访问请求携带第二标记或者不携带标记,则根据该数据访问请求,从私有缓存中查询对应数据,并对该数据执行处理;其中,第二标记用于标记数据访问请求用于请求非共享数据。本申请的方案,针对不同情况的数据访问请求,执行相应的数据处理,只在目标LLC中存储共享数据,从而无需针对各私有缓存进行维护缓存一致性的处理,解决了目前的缓存一致性处理资源消耗较大的问题。由此原本用于处理缓存一致性问题的相关电路和存储单元可以节约出来,并且由缓存一致性处理导致的对片上网络的访问响应也会减少,从而提高数据传输效率,减小功耗。
实施例五
图11为本申请实施例五提供的电子设备的结构示意图,如图11所示,该电子设备包括:
处理器(processor)291,电子设备还包括了存储器(memory)292;还可以包括通信接口(Communication Interface)293和总线294。其中,处理器291、存储器292、通信接口293、可以通过总线294完成相互间的通信。通信接口293可以用于信息传输。处理器291可以调用存储器292中的逻辑指令,以执行上述示例的方法。
此外,上述的存储器292中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器292作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本申请实施例中的方法对应的程序指令/模块。处理器291通过运行存储在存储器292中的软件程序、指令以及模块,从而执行功能应用以及数据处理,即实现上述方法示例中的方法。
存储器292可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器292可以包括高速随机存取存储器,还可以包括非易失性存储器。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现任一示例中的方法。
本申请实施例还提供一种计算机程序产品,计算机程序被处理器执行时实现任一实施例中的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (17)
1.一种数据传输方法,其特征在于,应用于私有缓存,所述方法包括:
接收内核处理器发送的数据访问请求;
响应于确定所述数据访问请求携带第一标记,则通过片上网络,将所述数据访问请求转发至目标LLC,以使所述目标LLC根据所述数据访问请求,从所述目标LLC中查询对应数据,并对该数据执行处理;其中,所述第一标记用于标记所述数据访问请求用于请求共享数据;
响应于确定所述数据访问请求携带第二标记或者不携带标记,则根据所述数据访问请求,从所述私有缓存中查询对应数据,并对该数据执行处理;其中,所述第二标记用于标记所述数据访问请求用于请求非共享数据。
2.根据权利要求1所述的方法,其特征在于,所述从所述私有缓存中查询对应数据之后,还包括:
响应于从所述私有缓存中未查询到所述数据访问请求对应的数据,则通过所述片上网络,将所述数据访问请求转发至所述目标LLC,以使所述目标LLC根据所述数据访问请求,从所述目标LLC中查询对应数据,并对该数据执行处理,其中,所述目标LLC为已有LLC。
3.根据权利要求1或2所述的方法,其特征在于,所述将所述数据访问请求转发至所述目标LLC之后,还包括:
通过所述片上网络,接收所述目标LLC返回的所述数据访问请求对应的数据处理结果;
将所述数据访问请求对应的数据处理结果发送给所述内核处理器。
4.根据权利要求3所述的方法,其特征在于,所述将所述数据访问请求对应的数据处理结果发送给所述内核处理器,包括:
响应于确定所述数据访问请求携带所述第一标记,则直接将所述目标LLC返回的所述数据访问请求对应的数据处理结果发送给所述内核处理器;
响应于确定所述数据访问请求携带第二标记,则将所述目标LLC返回的所述数据访问请求对应的数据处理结果缓存至所述私有缓存中,并将所述数据访问请求对应的数据处理结果发送给所述内核处理器。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于确定所述数据访问请求不携带标记,则根据所述数据访问请求,从所述私有缓存中查询对应数据,并将查询的对应数据的数据处理结果返回给所述内核处理器,再针对所述数据处理结果,基于缓存一致性协议执行缓存一致性处理。
6.根据权利要求3所述的方法,其特征在于,所述数据访问请求对应的数据处理结果是所述目标LLC通过执行预测处理得到的,所述预测处理包括:
响应于所述数据访问请求,从所述目标LLC中查询对应数据,并根据历史处理数据确定预测数据,对该预测数据进行处理得到预测处理结果;
响应于从所述目标LLC中查询的对应数据与该预测数据一致,将所述预测处理结果作为所述数据访问请求对应的数据处理结果;
响应于从所述目标LLC中查询的对应数据与该预测数据不一致,对所述查询的对应数据进行处理得到所述数据访问请求对应的数据处理结果。
7.根据权利要求1所述的方法,其特征在于,所述数据访问请求为所述内核处理器从多个线程中确定当前处于空闲的线程之后,在所述空闲的线程下发送的。
8.一种数据传输方法,其特征在于,应用于片上网络,所述方法包括:
接收私有缓存转发的内核处理器的数据访问请求;
响应于确定所述数据访问请求携带第一标记,则将所述数据访问请求转发至目标LLC,以使所述目标LLC根据所述数据访问请求,从所述目标LLC中查询对应数据,并对该数据执行处理;其中,所述第一标记用于标记所述数据访问请求用于请求共享数据,并且所述数据访问请求是所述私有缓存检测到所述数据访问请求携带所述第一标记后转发的。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
响应于确定所述数据访问请求携带第二标记,则将所述数据访问请求转发至所述目标LLC,以使所述目标LLC根据所述数据访问请求,从所述目标LLC中查询对应数据,并对该数据执行处理,其中,所述目标LLC为已有LLC;
其中,所述数据访问请求是所述私有缓存根据所述数据访问请求,查询所述私有缓存且未查询到所述数据访问请求对应的数据后发送的。
10.根据权利要求8所述的方法,其特征在于,所述将所述数据访问请求转发至目标LLC之后,还包括:
接收所述目标LLC返回的所述数据访问请求对应的数据处理结果,并将所述数据处理结果发送至所述私有缓存,以使所述私有缓存将所述数据处理结果发送给所述内核处理器。
11.根据权利要求8所述的方法,其特征在于,所述目标LLC根据所述数据访问请求,从所述目标LLC中查询对应数据之后,还包括:
响应于确定所述目标LLC中不存在所述数据访问请求对应的数据,则向主存储器请求所述数据访问请求对应的数据;
将所述主存储器返回的数据作为所述数据访问请求对应的数据,缓存所述数据访问请求对应的数据至所述目标LLC。
12.根据权利要求8-11中任一项所述的方法,其特征在于,所述将所述数据访问请求转发至目标LLC之前,还包括:
响应于检测到不存在专用LLC,则将已有LLC作为所述目标LLC,并将所述数据访问请求转发至所述目标LLC;
响应于检测到存在专用LLC,则根据所述数据访问请求,从所述专用LLC中确定所述目标LLC,并将所述数据访问请求转发至所述目标LLC。
13.一种数据传输装置,其特征在于,应用于私有缓存,包括:
第一接收模块,用于接收内核处理器发送的数据访问请求;
第一处理模块,用于响应于确定所述数据访问请求携带第一标记,则通过片上网络,将所述数据访问请求转发至目标LLC,以使所述目标LLC根据所述数据访问请求,从所述目标LLC中查询对应数据,并对该数据执行处理;其中,所述第一标记用于标记所述数据访问请求用于请求共享数据;
第二处理模块,用于响应于确定所述数据访问请求携带第二标记或者不携带标记,则根据所述数据访问请求,从所述私有缓存中查询对应数据,并对该数据执行处理;其中,所述第二标记用于标记所述数据访问请求用于请求非共享数据。
14.一种数据传输装置,其特征在于,应用于片上网络,包括:
第二接收模块,用于接收私有缓存转发的内核处理器的数据访问请求;
第三处理模块,用于响应于确定所述数据访问请求携带第一标记,则将所述数据访问请求转发至目标LLC,以使所述目标LLC根据所述数据访问请求,从所述目标LLC中查询对应数据,并对该数据执行处理;其中,所述第一标记用于标记所述数据访问请求用于请求共享数据,并且所述数据访问请求是所述私有缓存检测到所述数据访问请求携带所述第一标记后转发的。
15.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1-7中任一项或者如权利要求8-12中任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-7中任一项或者如权利要求8-12中任一项所述的方法。
17.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项或者如权利要求8-12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311015046.6A CN117014504B (zh) | 2023-08-11 | 2023-08-11 | 数据传输方法、装置、设备、介质及产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311015046.6A CN117014504B (zh) | 2023-08-11 | 2023-08-11 | 数据传输方法、装置、设备、介质及产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117014504A true CN117014504A (zh) | 2023-11-07 |
CN117014504B CN117014504B (zh) | 2024-04-16 |
Family
ID=88563372
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311015046.6A Active CN117014504B (zh) | 2023-08-11 | 2023-08-11 | 数据传输方法、装置、设备、介质及产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117014504B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100332763A1 (en) * | 2009-06-30 | 2010-12-30 | International Business Machines Corporation | Apparatus, system, and method for cache coherency elimination |
US20140351524A1 (en) * | 2013-03-15 | 2014-11-27 | Intel Corporation | Dead block predictors for cooperative execution in the last level cache |
CN104346294A (zh) * | 2013-07-31 | 2015-02-11 | 华为技术有限公司 | 基于多级缓存的数据读/写方法、装置和计算机系统 |
CN104461932A (zh) * | 2014-11-04 | 2015-03-25 | 浪潮电子信息产业股份有限公司 | 一种面向大数据应用的目录缓存管理方法 |
CN112559433A (zh) * | 2019-09-25 | 2021-03-26 | 阿里巴巴集团控股有限公司 | 一种多核互联总线、核间通信方法及多核处理器 |
CN113342709A (zh) * | 2021-06-04 | 2021-09-03 | 海光信息技术股份有限公司 | 在多处理器系统中访问数据的方法和多处理器系统 |
CN114036084A (zh) * | 2021-11-17 | 2022-02-11 | 海光信息技术股份有限公司 | 一种数据访问方法、共享缓存、芯片系统和电子设备 |
CN115373877A (zh) * | 2022-10-24 | 2022-11-22 | 北京智芯微电子科技有限公司 | 异构多核处理器保证共享缓存一致性的控制方法和装置 |
-
2023
- 2023-08-11 CN CN202311015046.6A patent/CN117014504B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100332763A1 (en) * | 2009-06-30 | 2010-12-30 | International Business Machines Corporation | Apparatus, system, and method for cache coherency elimination |
US20140351524A1 (en) * | 2013-03-15 | 2014-11-27 | Intel Corporation | Dead block predictors for cooperative execution in the last level cache |
CN104346294A (zh) * | 2013-07-31 | 2015-02-11 | 华为技术有限公司 | 基于多级缓存的数据读/写方法、装置和计算机系统 |
CN104461932A (zh) * | 2014-11-04 | 2015-03-25 | 浪潮电子信息产业股份有限公司 | 一种面向大数据应用的目录缓存管理方法 |
CN112559433A (zh) * | 2019-09-25 | 2021-03-26 | 阿里巴巴集团控股有限公司 | 一种多核互联总线、核间通信方法及多核处理器 |
CN113342709A (zh) * | 2021-06-04 | 2021-09-03 | 海光信息技术股份有限公司 | 在多处理器系统中访问数据的方法和多处理器系统 |
CN114036084A (zh) * | 2021-11-17 | 2022-02-11 | 海光信息技术股份有限公司 | 一种数据访问方法、共享缓存、芯片系统和电子设备 |
CN115373877A (zh) * | 2022-10-24 | 2022-11-22 | 北京智芯微电子科技有限公司 | 异构多核处理器保证共享缓存一致性的控制方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN117014504B (zh) | 2024-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11734192B2 (en) | Identifying location of data granules in global virtual address space | |
US7814279B2 (en) | Low-cost cache coherency for accelerators | |
US8706973B2 (en) | Unbounded transactional memory system and method | |
CN102591800B (zh) | 一种弱一致性存储模型的数据访存系统和方法 | |
US7613884B2 (en) | Multiprocessor system and method ensuring coherency between a main memory and a cache memory | |
US8176259B2 (en) | System and method for resolving transactions in a cache coherency protocol | |
US7363435B1 (en) | System and method for coherence prediction | |
US20150058570A1 (en) | Method of constructing share-f state in local domain of multi-level cache coherency domain system | |
US20200183840A1 (en) | Caching data from remote memories | |
US10733101B2 (en) | Processing node, computer system, and transaction conflict detection method | |
US11144231B2 (en) | Relocation and persistence of named data elements in coordination namespace | |
TWI386810B (zh) | 多處理器系統以目錄為主之資料傳輸協定 | |
CN111400268A (zh) | 一种分布式持久性内存事务系统的日志管理方法 | |
US10831663B2 (en) | Tracking transactions using extended memory features | |
CN103076992A (zh) | 一种内存数据缓冲方法及装置 | |
US7149852B2 (en) | System and method for blocking data responses | |
US20200195718A1 (en) | Workflow coordination in coordination namespace | |
CN108170544B (zh) | 面向数据无冲突程序的共享数据动态更新方法 | |
CN117014504B (zh) | 数据传输方法、装置、设备、介质及产品 | |
US6678800B1 (en) | Cache apparatus and control method having writable modified state | |
KR20170107061A (ko) | 멀티 코어 시스템에서 데이터 방문자 디렉토리에 액세스하는 방법 및 장치 | |
US10684958B1 (en) | Locating node of named data elements in coordination namespace | |
US20130198455A1 (en) | Cache memory garbage collector | |
US11288208B2 (en) | Access of named data elements in coordination namespace | |
US11016908B2 (en) | Distributed directory of named data elements in coordination namespace |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |