CN114063923A - 数据读取方法、装置、处理器及电子设备 - Google Patents
数据读取方法、装置、处理器及电子设备 Download PDFInfo
- Publication number
- CN114063923A CN114063923A CN202111361589.4A CN202111361589A CN114063923A CN 114063923 A CN114063923 A CN 114063923A CN 202111361589 A CN202111361589 A CN 202111361589A CN 114063923 A CN114063923 A CN 114063923A
- Authority
- CN
- China
- Prior art keywords
- data
- level cache
- current
- request
- cache
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请实施例提供一种数据读取方法、装置、处理器及电子设备,其中数据读取方法包括:接收读取第一数据的特殊请求,所述特殊请求所请求的第一数据为处理器当前无需处理的数据;当确定接收所述特殊请求的当前级模块为存储指定级缓存,且所述第一数据在所述当前级缓存中命中时,停止返回所述第一数据。本申请实施例可在避免计算错误的基础上,提高读取效率。
Description
技术领域
本申请实施例涉及计算机领域,具体涉及一种数据读取方法、装置、处理器及电子设备。
背景技术
在典型计算机结构中,通常包含处理器和多级存储器。多级存储器中,内存储器存储指令和数据。处理器从内存储器中获取指令和相应的数据,执行指令,并将结果数据写回到内存储器中。此外,在处理器和内存储器之间,通常有一级或多级高速缓冲存储器(Cache)。高速缓冲存储器用于降低处理器读取指令和数据的时间。当存储器需要读取内存储器中某个地址数据时,它首先检查该数据是否存在于高速缓存器中。如果高速缓存器中包含该数据,则处理器直接从高速缓存器中读取该数据,从高速缓存器中读取数据要远快于从内存储器中读取数据。否则的话,高速缓存器从内存储器中读取该数据,存放在高速缓存器中,并返回给内存储器。
高性能计算通常会有明确处理顺序,先对先接收到的请求进行处理,返回数据后,再对后接收到的请求进行处理,如果先接收到的请求的数据的获取时间较长,会造成时间的浪费,降低时间利用率,而如果在时间间隔内同时处理后接收到的请求,又会造成计算模块所接收到的数据的混乱,造成计算错误。
因此,如何在避免数据错误的同时,提高时间利用率,就成为亟需解决的技术问题。
发明内容
有鉴于此,本申请实施例提供一种数据处理方法、装置、缓存器、处理器及电子设备,以在避免数据错误的同时,提高时间利用率。
为实现上述目的,本申请实施例提供如下技术方案。
第一方面,本申请实施例提供一种数据读取方法,应用于缓存,包括:
接收读取第一数据的特殊请求,所述特殊请求所请求的第一数据为处理器当前无需处理的数据。
当确定接收所述特殊请求的当前级模块为存储指定级缓存,且所述第一数据在所述当前级缓存中命中时,停止返回所述第一数据。
第二方面,本申请实施例提供一种数据读取方法,适用于处理器,包括:
确定满足发送特殊请求的预定条件时,向一级高速缓存发送读取第一数据的特殊请求,所述第一数据为所述处理器当前不需处理的数据。
停止接收所述第一数据。
第三方面,本申请实施例提供一种数据读取装置,应用于缓存,包括:数据获取请求接收模块,适于接收读取第一数据的特殊请求,所述特殊请求所请求的第一数据为处理器当前无需处理的数据;
数据获取应答模块,适于当确定接收所述特殊请求的当前级缓存为存储指定级缓存,且所述第一数据在所述当前级缓存中命中时,停止返回所述第一数据。
第四方面,本申请实施例提供一种数据读取装置,适用于处理器,包括:数据获取请求发送模块,适于确定满足发送特殊请求的预定条件时,向一级缓存发送读取第一数据的特殊请求,所述第一数据为所述处理器当前不需处理的数据;
数据获取应答接收模块,适于停止接收所述第一数据。
第五方面,本申请实施例提供一种处理器,所述处理器执行计算机可执行指令,以实现如上述第一方面或第二方面任一方面所述的数据读取方法。
第六方面,本申请实施例提供给一种电子设备,包括如上述第五方面所述的处理器。
本申请实施例提供的数据读取方法,当前级缓存所接收的请求包括特殊请求,特殊请求所请求的数据是当前不需要处理的第一数据,如果当前级缓存为存储指定级缓存,进一步确定所请求的第一数据在当前级缓存中是否命中,如果命中,并不将第一数据返回。
可见,本申请实施例所提供的数据读取方法,可以提前将当前不需要处理的第一数据存储至存储指定级缓存,当后续需要处理第一数据时,可以直接从存储指定级缓存中获取,从而可以在整体上提高读取效率;并且,由于当前对第一数据的存储位置的确定是提前进行的,因此,可以在当前级缓存空闲时执行,从而可以充分利用当前级缓存的时间,提高当前级缓存的时间利用率;进一步地,提前存储至存储指定级缓存的第一数据并不会返回至处理器,从而可以避免处理器接收到当前不需要处理的数据,并将其作为当前需要处理的数据所带来的计算错误;同时,由于不需要将第一数据从存储指定级缓存逐级返回至处理器,也就可以避免对于缓存网络授权的申请,从而可以降低为了提高当前级缓存的时间利用率所带来的缓存网络的压力。
附图说明
图1为缓存技术的一系统结构示意图;
图2为各级高速缓存时间情况的一示意图;
图3为各级高速缓存时间情况的另一示意图;
图4为本申请实施例所提供的数据读取方法的流程图;
图5为本申请实施例所提供的数据读取方法的读取第一数据的流程图;
图6为本申请实施例所提供的数据读取方法的流程图;
图7为本申请实施例所提供的数据读取方法的流程图;
图8为本申请实施例所提供的的数据读取装置的结构框图;
图9为本申请实施例所提供的数据读取装置的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1示出了缓存技术的系统结构示意图。如图1所示,缓存技术主要包含处理器100、多级高速缓存和内存130。
图1中,处理器100,可以是中央处理器,也可以是图形处理器或通用图形处理器。本申请实施例所有所述的处理器都是指功能意义上的处理器,即具有逻辑运算和控制功能的运算和控制核心,而不是从产品封装上看的包含高速缓存在内的一个封装盒,本申请实施例所述的处理器可能对应某些文献里所描述的处理器的物理核心。
多级高速缓存,一级高速缓存110存储量最小,二级高速缓存120比一级大,后面以此类推,在极小存储量的一级高速缓存110中有时还会区分成指令高速缓存和数据高速缓存,只有数据高速缓存可以存储数据,这进一步减小了一级高速缓存可以存储的数据大小。一般一个处理器100独享一个一级高速缓存110,多个处理器共享一个二级高速缓存120,在一些实施例中,也可以是一个处理器独享一个一级高速缓存110和一个二级高速缓存120,多个处理器共享一个三级高速缓存,后面以此类推,处理器100通过共享高速缓存实现了相互间的数据交流。高速缓存存取速度快比内存块,存储容量比处理器大。
内存130,内存是存储所有指令和数据的存储单元,存储容量大但存取速度慢。
处理器100后连接专属的一级高速缓存110,一级高速缓存110连接二级高速缓存120,最后连接内存130,专属的一级高速缓存110一般存储空间较小,只保存对应处理器当下处理的关联数据。当一级高速缓存110中没有命中时才会去二级高速缓存120中寻找。例如在一些实施例中,二级高速缓存120为多个处理器服务,但一次只能为一个处理器提供服务,不同的处理器通过二级高速缓存实现互相访问以及与内存的访问。在另一些实施例中二级高速缓存120仍为一个处理器所专属,共享的是三级高速缓存。处理器100通过对高速缓存的访问避免了对内存130的直接访问,从而避免了巨大速度差异带来的时间浪费,提高了效率。
高性能计算通常会有明确处理顺序,下面以在图1所示的二级缓存结构中对A、B两个矩阵的读取为例进行说明。
在一些高性能计算的实施例中,假设矩阵A中包括数据a0、a1、a2、........、an,矩阵B中包括数据b0、b1、b2、......、bm,并且矩阵A是先要处理的矩阵,从而,在进行数据的处理时,先对矩阵A中的数据a0、a1、a2、........、an进行读取,在依次接收到基于读取请求返回的数据并进行数据处理后,才会对矩阵B中的数据b0、b1、b2、......、bm进行读取。
然而,在数据的读取过程中,一级高速缓存110首先接收到数据的读取请求,如果数据在一级高速缓存110中缺失,则需要到二级高速缓存120中读取,从而就会出现一级高速缓存110空闲的情况,如果数据在二级高速缓存120中仍然未命中,则需要到三级高速缓存中或者内存130中读取,那么不仅会出现一级高速空闲的情况,还会出现二级高速缓存120或者三级高速缓存空闲的情况。
当各级高速缓存空闲时,所呈现的高速缓存的时间利用情况可以如图2所示,图2为各级高速缓存时间情况的一示意图。
如图中所示,比如:当a1在一级高速缓存中未命中时,需要到二级高速缓存中获取数据,并返回,因此获取a2的时间间隔较长,这就造成了时间利用了较低。
为了提高各级高速缓存的时间利用率,可以在对矩阵A的各个数据读取和操作过程中,穿插对矩阵B的数据的读取,从而所呈现的高速缓存的时间利用情况可以如图3所示,图3为各级高速缓存时间情况的另一示意图。
这样,在当a1在一级高速缓存中未命中,向二级高速缓存中获取数据a1的同时,向一级高速缓存中获取数据b0,从而可以缩短一级高速缓存的空闲时间,提高时间利用率。
然而,由于所有读取请求在命中后都需要返回数据,这样的操作方式会使得数据b0较早地返回至处理器,容易使计算单元获取错误数据,错误的返回顺序可能导致运算出错,或者增加计算流程的复杂度。
为此,本申请实施例提供的数据读取方法,可以使在收到处理器发出的当前暂不需要处理的数据读取请求后,不返回给处理器找到的数据,而是存储在存储指定级缓存里,从而在避免数据错误的同时,提高时间利用率,同时减小由于提高时间利用率所造成的工作量的增加。
请参考图4,图4示出本申请实施例所提供的数据读取方法的流程图,该流程图适用于各级高速缓存的存储模块。
如图4所示,本申请实施例所提供的数据读取方法可以包括如下步骤:
在步骤S210中,接收读取第一数据的特殊请求。
特殊请求,是相对于普通请求而言的,其中,普通请求是指所请求的数据为处理器当前需要处理的数据的请求,特殊请求是指所请求的第一数据为处理器当前无需处理的数据的请求,具体可以通过在数据读取请求中设置标识位的方式进行标识。
具体地,处理器当前需要处理是指发送请求后,处理器需要等待返回数据并接着进行后续的运算处理;处理器当前不需要处理是指发送请求后,处理器不需要等待数据的返回,也不需要接着进行运算处理。
容易理解的是,本文所述的接收读取第一数据的特殊请求,并非是指各级缓存仅接收特殊请求,而是指在数据处理过程中,各级缓存所接收数据请求,既包括普通请求,也包括特殊请求,但在当下时刻,接收到的是特殊请求,后续的步骤是在接收到特殊请求后的具体处理方式。
当然,什么时间能够接收到特殊请求,以及所接收的请求为特殊请求还是普通请求,并不是接收请求的各级缓存决定的,而是由请求发出的处理器决定的,但接收的特殊请求不一定是由处理器直接发出的,具体为:当接收特殊请求的当前级缓存为一级高速缓存时,特殊请求由处理器直接发出;当接收特殊请求的当前级缓存为二级高速缓存时,特殊请求由一级高速缓存直接发出。
并且,第一数据为处理器当前无需处理的数据是指该数据并非为处理器正在等待的数据,比如:当前所需要处理的数据是矩阵A的其中一个数据,而第一数据为矩阵B的一个数据;或者,当前所需要处理的数据是矩阵A的a1数据,而第一数据为处理顺序位于a1数据的后面的数据an,当然,当处理顺序位于a1数据的后面的数据an时,为了避免刚接收到对于an的特殊请求,并进行处理的过程中,就接收到对于an的普通请求,造成处理资源的浪费,具体可以选择与a1数据具有一定间隔的数据。
在步骤S220中,判断接收所述特殊请求的当前级缓存是否为存储指定级缓存,若是,执行步骤S230,若否,执行步骤S260。
接收到特殊请求后,首先根据特殊请求中所携带的存储指定级缓存信息,确定接收特殊请求的当前级缓存与存储指定级缓存的异同。
容易理解的是,存储指定级缓存是指用于存储第一数据的模块,可以为一级缓存、二级缓存或者三级高速缓存中的任意一级,将第一数据存储至存储指定级缓存后,可以在接收到获取第一数据的普通请求后,快速地将第一数据返回至处理器,从而提高数据处理效率。
由于一级高速缓存的存储空间较小,并且存储空间较小的一级高速缓存中有时还会分成指令高速缓存和数据高速缓存,只有数据高速缓存可以存储数据,这会造成一级高速缓存可以存储的数据的存储空间的进一步减小,如果将处理器当前无需处理的第一数据存储至一级高速缓存,一方面很可能会将处理器当前正需要处理的数据替换掉,影响数据处理,同时,也很有可能在处理后续的各个数据时,被替换掉;而三级高速缓存虽然空间较大,但当接收到获取第一数据的普通请求时,仍然需要从三级高速缓存中读取数据,影响数据读取效率,因此,在一种具体实施方式中,存储指定级缓存可以为二级缓存。
当然,如果是多核处理器,为了方便各个处理器核能够及时获取到第一数据,存储指定级缓存可以为多个处理器核共享的高速缓存。
在当前级缓存接收到特殊请求后,首先进行当前级缓存是否为存储指定级缓存的判断,如果是,则执行步骤S230,否则,那么,执行步骤S260。
容易理解的是,当前级缓存不是存储指定级缓存时,当前级缓存应当为位于存储指定级缓存和处理器之间的模块,即存储指定级缓存的前级缓存,这是由于如果当前级缓存为位于存储指定级缓存之后的模块,那么,当当前级缓存为存储指定级缓存时就执行步骤S230了,不会再出现判断结果为否的情况。
在步骤S230中,判断所述第一数据在所述当前级缓存中是否命中,若是,执行步骤S240,若否,执行步骤S250。
当当前级缓存为存储指定级缓存时,进一步确定第一数据在所述当前级缓存中是否命中,如果命中,那么对于第一数据的存储位置已经满足要求,执行步骤S240,如果未命中,那么对于第一数据的存储位置还未满足要求,需要执行步骤S250。
容易理解的是,本文所述的命中是指所请求的数据在当前级缓存中找到。
在步骤S240中,停止返回所述第一数据。
容易理解的是,本文所述的停止返回所述第一数据是指,在确定第一数据在所述当前级缓存中命中时,对于特殊请求的执行就已经结束了,后续无需再做任何的处理。
另外,本申请所提供的方案,不仅不返回第一数据,为了避免占用返回带宽,在确定第一数据在所述当前级缓存中命中时,也不返回第一数据的获取应答,即处理器只发出读取到指定级的第一数据的特殊请求,但却不需要知道该请求是否完成,完成的情况怎么样,当需要读取第一数据到处理器时,再发出读取第一数据的普通请求即可。
当然在其他实施例中,也可以返回第一数据的获取应答。
这样,本申请实施例所提供的数据读取方法,可以提前确保当前不需要处理的第一数据存储在存储指定级缓存,当后续需要处理需要第一数据时,可以直接从存储指定级缓存中获取,从而可以在整体上提高读取效率;并且,由于当前对第一数据的存储位置的确定是提前进行的,因此,可以在当前级缓存空闲时执行,从而可以充分利用当前级缓存的时间,提高当前级缓存的时间利用率;进一步地,提前存储至存储指定级缓存的第一数据并不会返回至处理器,从而可以避免处理器接收到当前不需要处理的数据,并将其作为当前需要处理的数据所带来的计算错误;同时,由于不需要将第一数据从存储指定级缓存逐级返回至处理器,也就可以避免对于缓存网络授权的申请,从而可以降低为了提高当前级缓存的时间利用率所带来的缓存网络的压力。
在步骤S250中,从所述当前级缓存的下一级缓存中读取所述第一数据。
当第一数据在当前级缓存中未命中时,进一步从当前级缓存的下一级缓存中读取第一数据,直至第一数据在当前级缓存中命中。
从所述当前级缓存的下一级缓存中读取所述第一数据的具体步骤,可以参考图5,图5为本申请实施例所提供的数据读取方法的读取第一数据的流程图。
如图中所示,当第一数据在当前级缓存中未命中时,当前级缓存和下一级缓存执行以下操作:
步骤S2500,向所述下一级缓存发送获取第一数据的数据请求。
当第一数据在当前级缓存中未命中时,首先向下一级缓存发送数据请求,以从下一级缓存中获取第一数据。
步骤S2501,判断所述第一数据在所述下一级缓存中是否命中,如果是,则执行步骤S2502,如果否,则执行步骤S2503。
步骤S2502,从所述下一级缓存中读取所述第一数据。
如果第一数据在所述下一级缓存中命中,那么下一级缓存向当前级缓存返回第一数据,即当前级缓存从下一级缓存中读取到第一数据。
步骤S2503,通过所述下一级缓存发送获取所述第一数据的数据请求。
如果第一数据在所述下一级缓存中仍然未命中,通过所述下一级缓存发送获取所述第一数据的数据请求,具体是向下一级缓存的下一级缓存或者内存发送数据请求。
这样,不论当前级缓存为哪一级,通过上述方式,可以最终获取到第一数据,并返回至当前级缓存。
当然,当当前级缓存获取到第一数据后,仍然执行步骤S240。
这样,本申请实施例所提供的数据读取方法,在第一数据在当前级缓存中为命中时,可以提前将当前不需要处理的第一数据存储至存储指定级缓存,当后续需要处理需要第一数据时,可以直接从存储指定级缓存中获取,从而可以进一步在整体上提高读取效率。
在步骤S260中,直接向下一级缓存发送所述特殊请求。并将接收特殊请求的下一级缓存作为新的当前级缓存,转向执行步骤S220。
当当前级缓存不是存储指定级缓存时,为了节省处理流程,在当前级缓存中不做命中与否的操作,直接向下一级缓存发送请求第一数据的特殊请求。
将接收特殊请求的下一级缓存作为新的当前级缓存,进一步执行步骤S220,直至,当前级缓存为存储指定级缓存。
可见,本申请实施例所提供的技术方案,在位于处理器与存储指定级缓存之间的各级缓存中,不进行第一数据是否命中的判断,而是直接进行特殊请求的发送,从而可以降低流程的复杂度,减少运算量,从而进一步提高数据的处理效率。
当然,在另一实施例中,位于处理器与存储指定级缓存之间的各级缓存也可以进行第一数据是否命中的检查,具体可以请参考图6,图6示出了本申请实施例所提供的数据读取方法的另一流程示意图。
如图6所示,本申请实施例所提供的数据读取方法还可以包括:
在步骤S310中,接收读取第一数据的特殊请求。
在步骤S320中,判断接收所述特殊请求的当前级缓存是否为存储指定级缓存,若是,执行步骤S330,若否,执行步骤S360。
基于前述论述可知,当前级缓存如果不是存储指定级缓存,那么应为当前指定级缓存的前级缓存,即接收所述特殊请求的当前级缓存为存储指定级缓存的前级缓存时,执行步骤S360,接收所述特殊请求的当前级缓存为存储指定级缓存时,执行步骤S330。
在步骤S330中,判断所述第一数据在所述当前级缓存中是否命中,若是,执行步骤S340,若否,执行步骤S350。
在步骤S340中,停止返回第一数据。
在步骤S350中,从所述当前级缓存的下一级缓存中读取所述第一数据。
步骤S310-步骤S350的具体内容可以参考图4所示的步骤S210-步骤S250的描述,在此不再赘述。
在步骤S360中,判断所述第一数据在当前级缓存中是否命中,如果是,则执行步骤S340,如果否,则执行步骤S370。
即在当前级缓存为存储指定级缓存的前级缓存时,仍对第一数据在当前级缓存进行命中与否的检查。
如果命中,那么直接执行步骤S340,即读取第一数据的特殊请求执行完毕,无需执行其他处理,这是因为,前级缓存所存储的数据在后级缓存中都会存储,如果前级缓存中第一数据命中,那么位于前级缓存之后的存储指定级缓存中必然命中,因此,无需进一步进行后续的数据请求的发送以及命中与否的判断,可以直接执行步骤S340。
而如果未命中,那么需要执行步骤S370,即向下一级缓存发送获取第一数据的数据请求。
在步骤S370中,向下一级缓存发送所述第一数据的获取请求。
在步骤S380中,将接收所述特殊请求的下一级缓存作为新的当前级缓存,并执行步骤S320。
步骤S370和步骤S380的具体内容,请分别参考图4所示的步骤S260和步骤S270的描述,在此不再赘述。
可见,本申请实施例提供的数据读取方法,当当前级缓存为存储指定级缓存的前级缓存时,也进行数据是否命中的判断,如果命中,则直接停止后续的流程,只在未命中的时候,进行特殊请求的发送,从而可以避免部分特殊请求的进一步传输,简化流程。
容易理解的是,除了高速缓存接收和执行读取第一数据的特殊请求,以实现数据读取效率的提高,以及各级缓存模块的时间利用率的提高,处理器还需要在适当的时候进行特殊请求的发送,为此,本发明实施例还提供一种数据读取方法,适用于处理器。
请参考图7,图7示出了本申请实施例所提供的数据读取方法的流程图。
如图7所示,本申请实施例所提供的数据读取方法,包括:
在步骤S400中,判断是否满足发送特殊请求的预定条件,如果是,则执行步骤S410,如果否,则执行步骤S430。
容易理解的是,处理器在工作过程中,会持续发送数据读取请求,而数据处理请求中除了包括特殊请求外,还包括普通请求,其中,特殊请求和普通请求的具体概念,请参考本文前述内容的描述。因此,本申请实施例所述的判断是否满足发送特殊请求的预定条件之前很有可能已经发送了数据读取的普通请求,是在发送前一数据读取请求和发送后一数据读取请求的间隙,进行的判断。
为了方便描述,利用第二数据表示前一数据读取请求所请求的数据,即第二数据为在所述特殊请求发送前所请求的处理器当前需要处理的数据;利用第三数据表示后一数据读取请求所请求的数据,即第三数据为在所述特殊请求发送后即将请求的处理器当前需要处理的数据。
具体的,所述预定条件可以包括在第一预定时间内未接收到所述第二数据,或者距离发出读取第三数据的普通请求的间隔时间满足第二预定时间。
下面针对各个预定条件进行说明:
1)在第一预定时间内未接收到所述第二数据,在不返回第二数据是否命中的应答的情况下,可以从发送获取第二数据的普通请求开始计时,当满足第一预定时间,未接收到数据,则说明第二数据需要到更低级别的缓存中寻找,从而可以发送特殊请求,以提高对应级缓存的时间利用率,当然,第一预定时间可以根据需要进行确定。
2)需确定下一普通请求所读取的第三数据,当处理器接收到第二数据后,需要进行运算,从而确定下一个数据请求是获取数据C还是D,因此,会存在确定时间,此时各级缓存都处于等待状态,从而可以发送特殊请求,以提高对应级缓存的时间利用率。
从而,可以充分利用各种造成各级缓存时间利用率降低的情况,提高缓存的时间利用率以及数据的读取效率。
具体地,在一种实施方式中,所述第二数据和第三数据可以均为第二矩阵的数据,所述第一数据为第一矩阵的数据,从而,可以避免由于特殊请求所请求的数据与普通请求所请求的数据在处理器中应当处理的时刻过近。
在步骤S410中,向一级高速缓存发送读取第一数据的特殊请求。
如果满足发送特殊请求的预定条件,那么处理器向一级高速缓存发送读取第一数据的特殊请求,缓存接收到特殊请求后,执行适用于缓存的数据读取方法。
在步骤S420中,停止接收第一数据。
容易理解的是,本文所述的停止接收第一数据是指,发出特殊请求后,对于处理器而言,对该请求的执行已经结束了,无需进行后续的任何处理,可以指继续执行其他请求的发送,本文为了进行强调,特将停止接收第一数据明确,实际处理器并未进行任何操作。
在步骤S430中,接收第二数据或者向一级高速缓存发送读取第三数据的普通请求。
如果不满足发送特殊请求的预定条件,那么可以继续进行普通请求的处理,比如接收第二数据或者向一级高速缓存发送读取第三数据的普通请求。
可见,本申请实施例所提供的数据读取方法,可以提前请求当前不需要处理的第一数据,并使第一数据存储在存储指定级缓存,当后续需要处理需要第一数据时,可以直接从存储指定级缓存中获取,从而可以在整体上提高读取效率;并且在当前级缓存空闲时执行,从而可以充分利用当前级缓存的时间,提高当前级缓存的时间利用率;进一步地,处理器不接收第一数据从而可以避免处理器接收到当前不需要处理的数据,并将其作为当前需要处理的数据所带来的计算错误,还以避免对于缓存网络授权的申请,从而可以降低为了提高当前级缓存的时间利用率所带来的缓存网络的压力。
上文描述了本申请实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本申请实施例披露、公开的实施例方案。
本申请实施例还提供一种数据读取装置,该装置可以认为是缓存或者处理器为实现本申请实施例提供的数据处理方法所需设置的功能模块。下文描述的装置内容可与上文描述的方法内容相互对应参照。
作为一种可选实现中,图8示出了本申请实施例所提供的的数据读取装置的结构框图。
如图8所示,该数据读取装置600,适用于高速缓存器中,可以包括:
数据获取请求接受模块610,适于接收读取第一数据的特殊请求,所述特殊请求所请求的第一数据为处理器当前无需处理的数据。
数据获取应答模块620,适于当确定接收所述特殊请求的当前级缓存为存储指定级缓存,且所述第一数据在所述当前级缓存中命中时,停止返回所述第一数据。
基于对于数据读取方法的描述可知,当当前级模块所处理的请求为普通请求时,数据获取应答模块620,需要返回对应的数据。
在一些实施例中,本申请实施例所提供的数据读取装置600还包括:
数据获取模块630,适于当确定所述当前级缓存为存储指定级缓存,第一数据在所述当前级缓存中缺失时,从所述当前级缓存的下一级缓存中读取所述第一数据。
在一些实施例中,所述数据获取模块630,包括:
数据获取请求发送模块631,适于向所述下一级缓存发送所述第一数据的获取请求;
数据读取模块632,适于当确定所述第一数据在所述下一级缓存中命中时,从所述下一级缓存中读取所述第一数据。
在一些实施例中,所述数据读取模块632,还适于当确定所述第一数据在所述下一级缓存中缺失时,通过所述下一级缓存发送获取所述第一数据的数据请求。
在一些实施例中,所述数据获取模块632,还适于确定当前级缓存为存储指定级缓存的前级缓存时,直接向下一级缓存发送所述特殊请求,将接收所述特殊请求的下一级缓存作为新的当前级缓存,直至所述存储指定级缓存接收到所述特殊请求。
在一些实施例中,所述数据获取应答模块632,还适于当确定当前级缓存为指定级缓存的前级缓存,且所述第一数据在当前级缓存中命中时,停止返回所述第一数据。
在进一步的一些实施例中,该装置还可进一步设置一个或多个功能模块,或者在图8所示的一个或多个功能模块的基础上增加功能,还包括:
数据获取请求发送模块631,适于当确定当前级缓存为指定级缓存的前级缓存,且所述第一数据在当前级缓存中缺失时,向下一级缓存发送所述第一数据的特殊请求,并将接收所述特殊请求的下一级缓存作为新的当前级缓存。
本申请实施例所提供的数据读取装置,可以提前确保当前不需要处理的第一数据存储在存储指定级缓存,当后续需要处理需要第一数据时,可以直接从存储指定级缓存中获取,从而可以在整体上提高读取效率;并且,由于当前对第一数据的存储位置的确定是提前进行的,因此,可以在当前级缓存空闲时执行,从而可以充分利用当前级缓存的时间,提高当前级缓存的时间利用率;进一步地,提前存储至存储指定级缓存的第一数据并不会返回至处理器,从而可以避免处理器接收到当前不需要处理的数据,并将其作为当前需要处理的数据所带来的计算错误;同时,由于不需要将第一数据从存储指定级缓存逐级返回至处理器,也就可以避免对于缓存网络授权的申请,从而可以降低为了提高当前级缓存的时间利用率所带来的缓存网络的压力。
图9示出了本申请实施例所提供的数据读取装置的结构框图。图9所示的数据读取装置适用于处理器中。如图9所示,数据读取装置700可以包括:
数据获取请求发送模块710,适于确定满足发送特殊请求的预定条件时,向一级高速缓存发送读取第一数据的特殊请求,所述第一数据为所述处理器当前不需处理的数据;
数据获取应答接收模块720,适于停止接收所述第一数据。
在一些实施例中,所述预定条件可以包括在第一预定时间内未接收到所述第二数据,或者需确定下一普通请求所读取的第三数据,其中,所述第二数据为在所述特殊请求发送前所请求的处理器当前需要处理的数据,所述第三数据为在所述特殊请求发送后,即将请求的处理器当前需要处理的数据。
在一些实施例中,所述第二数据和第三数据均为第二矩阵的数据,所述第一数据为第一矩阵的数据。
本申请实施例所提供的数据读取装置,可以提前请求当前不需要处理的第一数据,并使第一数据存储在存储指定级缓存,当后续需要处理需要第一数据时,可以直接从存储指定级缓存中获取,从而可以在整体上提高读取效率;并且在当前级缓存空闲时执行,从而可以充分利用当前级缓存的时间,提高当前级缓存的时间利用率;进一步地,处理器不接收第一数据从而可以避免处理器接收到当前不需要处理的数据,并将其作为当前需要处理的数据所带来的计算错误,还以避免对于缓存网络授权的申请,从而可以降低为了提高当前级缓存的时间利用率所带来的缓存网络的压力。
本申请实施例还提供一种处理器,该处理器执行计算机可执行指令,以实现本申请实施例提供的数据读取方法。
本申请实施例还提供一种电子设备,该电子设备可以包括本申请实施例上述提供的处理器。
虽然本申请实施例披露如上,但本申请并非限定于此。任何本领域技术人员,在不脱离本申请的精神和范围内,均可作各种更动与修改,因此本申请的保护范围应当以权利要求所限定的范围为准。
Claims (24)
1.一种数据读取方法,其特征在于,应用于高速缓存器,包括:
接收读取第一数据的特殊请求,所述特殊请求所请求的第一数据为处理器当前无需处理的数据;
当确定接收所述特殊请求的当前级缓存为存储指定级缓存,且所述第一数据在所述当前级缓存中命中时,停止返回所述第一数据。
2.如权利要求1所述的数据读取方法,其特征在于,还包括:
当确定所述当前级缓存为存储指定级缓存,第一数据在所述当前级缓存中缺失时,从所述当前级缓存的下一级缓存中读取所述第一数据。
3.如权利要求2所述的数据读取方法,其特征在于,所述从所述当前级缓存的下一级缓存中读取所述第一数据的步骤,包括:
向所述下一级缓存发送获取所述第一数据的数据请求;
当确定所述第一数据在所述下一级缓存中命中时,从所述下一级缓存中读取所述第一数据。
4.如权利要求3所述的数据读取方法,其特征在于,所述从所述当前级缓存的下一级缓存中读取所述第一数据的步骤,还包括:
当确定所述第一数据在所述下一级缓存中缺失时,通过所述下一级缓存发送获取所述第一数据的数据请求。
5.如权利要求1所述的数据读取方法,其特征在于,还包括:
当确定当前级缓存为所述存储指定级缓存的前级缓存时,直接向下一级缓存发送所述特殊请求,将接收所述特殊请求的下一级缓存作为新的当前级缓存,直至所述存储指定级缓存接收到所述特殊请求。
6.如权利要求1所述的数据读取方法,其特征在于,还包括:
当确定当前级缓存为所述存储指定级缓存的前级缓存,且所述第一数据在当前级缓存中命中时,停止返回所述第一数据。
7.如权利要求6所述的数据读取方法,其特征在于,还包括:
当确定当前级缓存为所述存储指定级缓存的前级缓存,且所述第一数据在当前级缓存中缺失时,向下一级缓存发送所述第一数据的特殊请求,并将接收所述特殊请求的下一级缓存作为新的当前级缓存。
8.如权利要求1-7任一项所述的数据读取方法,其特征在于,所述存储指定级缓存包括二级缓存。
9.一种数据读取方法,其特征在于,适用于处理器,包括:
确定满足发送特殊请求的预定条件时,向一级高速缓存发送读取第一数据的特殊请求,所述第一数据为所述处理器当前不需处理的数据;
停止接收所述第一数据。
10.如权利要求9所述的数据读取方法,其特征在于,所述预定条件包括在第一预定时间内未接收到第二数据、或者需确定下一普通请求所读取的第三数据,其中,所述第二数据为在所述特殊请求发送前所请求的处理器当前需要处理的数据,所述第三数据为在所述特殊请求发送后即将请求的处理器当前需要处理的数据。
11.如权利要求10所述的数据读取方法,其特征在于,所述第二数据和第三数据均为第二矩阵的数据,所述第一数据为第一矩阵的数据。
12.一种数据读取装置,其特征在于,应用于缓存,包括:
数据获取请求接收模块,适于接收读取第一数据的特殊请求,所述特殊请求所请求的第一数据为处理器当前无需处理的数据;
数据获取应答模块,适于当确定接收所述特殊请求的当前级缓存为存储指定级缓存,且所述第一数据在所述当前级缓存中命中时,停止返回所述第一数据。
13.如权利要求12所述的数据读取装置,其特征在于,还包括:
数据获取模块,适于当确定所述当前级缓存为存储指定级缓存,第一数据在所述当前级缓存中缺失时,从所述当前级缓存的下一级缓存中读取所述第一数据。
14.如权利要求13所述的数据读取装置,其特征在于,所述数据获取模块,包括:
数据获取请求发送模块,适于向所述下一级缓存发送所述第一数据的获取请求;数据读取模块,适于当确定所述第一数据在所述下一级缓存中命中时,从所述下一级缓存中读取所述第一数据。
15.如权利要求14所述的数据读取装置,其特征在于,所述数据读取模块,还适于当确定所述第一数据在所述下一级缓存中缺失时,通过所述下一级缓存发送获取所述第一数据的数据请求。
16.如权利要求12所述的数据读取装置,其特征在于,所述数据获取模块,还适于确定当前级缓存为存储指定级缓存的前级缓存时,直接向下一级缓存发送所述特殊请求,将接收所述特殊请求的下一级缓存作为新的当前级缓存,直至所述存储指定级缓存接收到所述特殊请求。
17.如权利要求12所述的数据读取装置,其特征在于:
所述数据获取应答模块,还适于当确定当前级缓存为指定级缓存的前级缓存,且所述第一数据在当前级缓存中命中时,停止返回所述第一数据。
18.如权利要求17所述的数据读取装置,其特征在于,还包括:
数据获取请求发送模块,适于当确定当前级缓存为指定级缓存的前级缓存,且所述第一数据在当前级缓存中缺失时,向下一级缓存发送所述第一数据的特殊请求,并将接收所述特殊请求的下一级缓存作为新的当前级缓存。
19.一种数据读取装置,其特征在于,适用于处理器,包括:
数据获取请求发送模块,适于确定满足发送特殊请求的预定条件时,向一级高速缓存发送读取第一数据的特殊请求,所述第一数据为所述处理器当前不需处理的数据;
数据获取应答接收模块,适于停止接收所述第一数据。
20.如权利要求19所述的数据读取装置,其特征在于,所述预定条件包括在第一预定时间内未接收到第二数据,或者需确定下一普通请求所读取的第三数据,其中,所述第二数据为在所述特殊请求发送前所请求的处理器当前需要处理的数据,所述第三数据为在所述特殊请求发送后,即将请求的处理器当前需要处理的数据。
21.如权利要求20所述的数据读取装置,其特征在于,所述第二数据和第三数据均为第二矩阵的数据,所述第一数据为第一矩阵的数据。
22.一种处理器,其特征在于,所述处理器执行计算机可执行指令,以实现如权利要求1-11任一项所述的数据读取方法。
23.如权利要求22所述的处理器,其特征在于,所述处理器包括通用图形处理器。
24.一种电子设备,其特征在于,包括如权利要求22或23所述的处理器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111361589.4A CN114063923A (zh) | 2021-11-17 | 2021-11-17 | 数据读取方法、装置、处理器及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111361589.4A CN114063923A (zh) | 2021-11-17 | 2021-11-17 | 数据读取方法、装置、处理器及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114063923A true CN114063923A (zh) | 2022-02-18 |
Family
ID=80273610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111361589.4A Pending CN114063923A (zh) | 2021-11-17 | 2021-11-17 | 数据读取方法、装置、处理器及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114063923A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117453435A (zh) * | 2023-12-20 | 2024-01-26 | 北京开源芯片研究院 | 缓存数据读取方法、装置、设备及存储介质 |
-
2021
- 2021-11-17 CN CN202111361589.4A patent/CN114063923A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117453435A (zh) * | 2023-12-20 | 2024-01-26 | 北京开源芯片研究院 | 缓存数据读取方法、装置、设备及存储介质 |
CN117453435B (zh) * | 2023-12-20 | 2024-03-15 | 北京开源芯片研究院 | 缓存数据读取方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110647480B (zh) | 数据处理方法、远程直接访存网卡和设备 | |
US9239798B2 (en) | Prefetcher with arbitrary downstream prefetch cancelation | |
CN107291629B (zh) | 一种用于访问内存的方法和装置 | |
CN105677580A (zh) | 访问缓存的方法和装置 | |
CN113419824A (zh) | 数据处理方法、装置、系统及计算机存储介质 | |
CN114356223A (zh) | 存储器的访问方法及装置、芯片、电子设备 | |
CN108874691B (zh) | 数据预取方法和内存控制器 | |
CN114063923A (zh) | 数据读取方法、装置、处理器及电子设备 | |
CN112612728B (zh) | 缓存管理方法及装置、设备 | |
CN114036077A (zh) | 数据处理方法及相关装置 | |
WO2014206229A1 (zh) | 一种加速器以及数据处理方法 | |
WO2013185660A1 (zh) | 一种网络处理器的指令存储装置及该装置的指令存储方法 | |
CN106649143B (zh) | 一种访问缓存的方法、装置及电子设备 | |
CN115576872B (zh) | 多级缓存的访问检测方法及装置 | |
WO2023124304A1 (zh) | 芯片的缓存系统、数据处理方法、设备、存储介质及芯片 | |
CN108062224B (zh) | 基于文件句柄的数据读写方法、装置及计算设备 | |
CN110750210A (zh) | 存储系统 | |
CN113742258B (zh) | 用于高效缓存一致性协议处理的节点控制器 | |
CN115269199A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN113467935A (zh) | 一种L1cache load forward的实现方法及系统 | |
CN114091384A (zh) | 数据处理电路及人工智能芯片、数据处理方法和装置 | |
CN113867801A (zh) | 指令缓存、指令缓存组及其请求合并方法 | |
CN113220608A (zh) | 一种NVMe命令处理器及其处理方法 | |
CN107807888B (zh) | 一种用于soc架构的数据预取系统及其方法 | |
CN112559434A (zh) | 一种多核处理器及核间数据转发方法 |
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 |