CN117573572A - 重填数据的处理方法、装置、设备及存储介质 - Google Patents
重填数据的处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117573572A CN117573572A CN202410053386.6A CN202410053386A CN117573572A CN 117573572 A CN117573572 A CN 117573572A CN 202410053386 A CN202410053386 A CN 202410053386A CN 117573572 A CN117573572 A CN 117573572A
- Authority
- CN
- China
- Prior art keywords
- cache
- data
- refill
- data block
- access instruction
- 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
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000012545 processing Methods 0.000 title claims abstract description 34
- 230000004044 response Effects 0.000 claims description 11
- 230000002618 waking effect Effects 0.000 claims description 7
- 239000000725 suspension Substances 0.000 claims description 2
- 230000008569 process Effects 0.000 abstract description 18
- 238000010586 diagram Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 101150015860 MC1R gene Proteins 0.000 description 2
- 102100034216 Melanocyte-stimulating hormone receptor Human genes 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请提供了一种重填数据的处理方法、装置、电子设备及计算机可读存储介质,包括:在通过第一缓存获取到处理器的访存指令的情况下,获取所述访存指令在所述第一缓存中的命中结果;若所述命中结果为未命中,则将所述访存指令挂起,同时通过所述第一缓存向第二缓存发送获取请求,在通过所述第一缓存,接收到所述第二缓存响应于所述获取请求后发送的重填数据时,从所述第一缓存中确定目标数据块,并释放所述目标数据块中存储的旧数据,以及将所述重填数据写入所述目标数据块。本申请在第一缓存接收到重填数据后,再释放所选取的目标数据块中存储的旧数据,也保证了此期间访存指令对旧数据读取过程的正常实现。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种重填数据的处理方法、装置、电子设备及计算机可读存储介质。
背景技术
现代处理器中一般设有三级缓存:一级缓存L1、二级缓存L2和三级缓存L3,当处理器的访存指令访问一级缓存L1未命中时,二级缓存L2则需要将访存指令所请求的数据重填至一级缓存L1中,以保证数据访问的正常进行,同理,访存指令在二级缓存L2未命中时,三级缓存L3需要将请求的数据重填至二级缓存L2中。
目前,在下级缓存向上级缓存重填数据的过程中,上级缓存首先选择一个数据块(数据用于表征指存放数据的位置)并将其中的旧数据释放,等待下级缓存将重填数据发送过来时,再将重填数据写入该数据块,实现数据的重填。
但是,上述过程中,从下级缓存发送重填数据至上级缓存往往需要较长的时间,在等待重填数据的时间内,数据块中的旧数据已经被释放,而重填数据尚未收到,所以数据块中没有有效数据,但是数据块仍然被持续占用,从而造成了缓存资源的空闲和浪费。
发明内容
本申请实施例提供一种重填数据的处理方法、装置、电子设备及计算机可读存储介质,以解决相关技术中的问题。
第一方面,本申请实施例提供了一种重填数据的处理方法,所述方法包括:
在通过第一缓存获取到处理器的访存指令的情况下,获取所述访存指令在所述第一缓存中的命中结果;
若所述命中结果为未命中,则将所述访存指令挂起,同时通过所述第一缓存向第二缓存发送获取请求;所述第二缓存是所述第一缓存的下级缓存;
在通过所述第一缓存,接收到所述第二缓存响应于所述获取请求后发送的重填数据时,从所述第一缓存中确定目标数据块,并释放所述目标数据块中存储的旧数据,以及将所述重填数据写入所述目标数据块。
第二方面,本申请实施例提供了一种重填数据的处理装置,所述装置包括:
获取模块,用于在通过第一缓存获取到处理器的访存指令的情况下,获取所述访存指令在所述第一缓存中的命中结果;
未命中模块,用于若所述命中结果为未命中,则将所述访存指令挂起,同时通过所述第一缓存向第二缓存发送获取请求;所述第二缓存是所述第一缓存的下级缓存;
写入模块,用于在通过所述第一缓存,接收到所述第二缓存响应于所述获取请求后发送的重填数据时,从所述第一缓存中确定目标数据块,并释放所述目标数据块中存储的旧数据,以及将所述重填数据写入所述目标数据块。
第三方面,本申请实施例还提供了一种电子设备,包括处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现所述第一方面的方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行所述第一方面的方法。
本申请实施例中,可以在访存指令在第一缓存中未命中时,先不去选择数据块进行释放,而是通知下级的第二缓存去获取访存请求所需的重填数据,等待第二缓存获取到重填数据并发送重填数据至第一缓存时,再从第一缓存中确定目标数据块,并释放目标数据块中存储的旧数据,以及将重填数据写入目标数据块。这样,在重填数据到来之前的这段时间内,存储有旧数据的数据块正常运作,并未被空置及占用,旧数据也可正常被访问。另外,本申请在第一缓存接收到重填数据后,再释放所选取的目标数据块中存储的旧数据,也保证了此期间访存指令对旧数据读取过程的正常实现。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见的,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种实施场景架构图;
图2是本申请实施例提供的一种重填数据的处理方法的步骤流程图;
图3是本发明实施例提供的一种第一缓存的架构示意图;
图4是本申请实施例提供的一种重填数据的处理方法的具体步骤流程图;
图5是本发明实施例提供的另一种第一缓存的架构示意图;
图6是本申请实施例提供的一种重填数据的处理装置的框图;
图7是本发明实施例提供的一种电子设备的框图;
图8是本发明另一个实施例的另一种电子设备的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中的术语“和/或”用于描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请实施例中术语“多个”是指两个或两个以上,其它量词与之类似。
参照图1,图1是本申请实施例提供的一种实施场景架构图,现代处理器为了提升执行效率,减少处理器与内存的交互,可以在处理器上集成多级缓存架构,常见的架构为图1的三级缓存结构,包括:一级缓存L1、二级缓存L2和三级缓存L3。一级缓存L1是最接近处理器的缓存,它容量最小,速度最快;二级缓存L2的容量更大一些,但速度相对一级缓存L1要慢一些,二级缓存L2就是一级缓存L1的缓冲器,二级缓存L2的作用就是存储那些处理器处理时需要用到,但一级缓存L1又无法存储的数据;三级缓存L3的容量最大,同时也是速度最慢的一级,三级缓存L3和内存可以看作是二级缓存L2的缓冲器。
当处理器运作时,处理器会根据访存指令首先去一级缓存L1寻找所需要的数据,之后去二级缓存L2,之后再去三级缓存L3,如果三级缓存都没找到它需要的数据,则从内存里获取数据。寻找的路径越长,耗时越长,所以如果要非常频繁的获取某些数据,保证这些数据在一级缓存L1里,这样速度将非常快。其中,访存指令是从内存的指定地址获取数据,或往内存中的指定地址存储数据的指令。
在上述过程中,访存指令在一级缓存L1中未命中(指一级缓存L1中未存有访存指令请求读取的数据),则继续查找访存指令在二级缓存L2中是否命中,若在二级缓存L2中命中,则二级缓存L2将访存指令请求读取的数据重填入一级缓存L1;若在二级缓存L2中未命中,则继续查找访存指令在三级缓存L3中是否命中,若在三级缓存L3中命中,则三级缓存L3将访存指令请求读取的数据重填入二级缓存L2,再由二级缓存L2将数据重填入一级缓存L1。
但是,由于缓存的空间有限,在缓存发生容量冲突(即缓存空间已满,不足以继续存储重填数据)时,需要在等待重填的第一缓存中选择一个数据块释放其中的旧数据,从而腾出空间来存放重填数据。
相关技术是在第一缓存通知下级的第二缓存进行数据重填的同时,在第一缓存中选择一个数据块释放其中的旧数据,等待下级缓存将重填数据发送过来时,再将重填数据写入该数据块,实现数据的重填。这会导致等待重填数据的过程中,该空置的数据块被持续占用,另外,该过程中若有对旧数据的访问需求,则由于旧数据已被释放而无法成功访问。
为了解决该问题,本申请实施例可以在访存指令在第一缓存中未命中时,先不去选择数据块进行释放,而是通知下级的第二缓存去获取访存请求所需的重填数据,等待第二缓存获取到重填数据并发送重填数据至第一缓存时,再从第一缓存中确定目标数据块,并释放目标数据块中存储的旧数据,以及将重填数据写入目标数据块。这样,在重填数据到来之前的这段时间内,存储有旧数据的数据块正常运作,并未被空置及占用,旧数据也可正常被访问。另外,本申请在第一缓存接收到重填数据后,再释放所选取的目标数据块中存储的旧数据,以及将重填数据写入目标数据块,也保证了此期间访存指令对旧数据读取过程的正常实现。
图2,是本申请实施例提供的一种重填数据的处理方法的步骤流程图,如图2所示,该方法可以包括:
步骤101、在通过第一缓存获取到处理器的访存指令的情况下,获取所述访存指令在所述第一缓存中的命中结果。
在本申请实施例中,访存指令进入第一缓存的流水线后,需要进一步查看第一缓存中是否具有访存指令请求读取的数据,判断是否存在该数据的过程可以理解为判断访存指令在第一缓存中的命中结果,命中结果包括命中或未命中,命中代表第一缓存中具有访存指令请求读取的数据;未命中代表第一缓存中未存有访存指令请求读取的数据。
具体的,判断访存指令在第一缓存中的命中结果需要遍历第一缓存的缓存目录,因此需要花费一定的时长,该时长是固定的,参照图3,其示出了一种第一缓存的架构示意图,第一缓存可以采用5级流水线架构,即包含一个具有5个顺序排列的数据位的流水线队列,每个数据位对应一个流水线时刻,不同数据位对应的流水线时刻不同,指令用于从流水线队列的初始数据位S1进入流水线,并随着时间的迁移,改变所处的数据位。本申请实施例可以在访存指令从流水线队列的起始数据位(S1)进入流水线后,间隔固定数量的数据位(例如间隔2个数据位)后,再获取访存指令在第一缓存的命中结果(在S3数据位对应的时刻获取命中结果),由于获得了命中结果,且命中结果包括命中或未命中。因此本申请实施例后续可以根据命中结果执行相应的指令控制操作。
需要说明的是,间隔固定数量的数据位(图3为间隔2个数据位),是指等待判断访存指令在第一缓存中的命中结果的操作执行所需的时长,由于该时长是固定的,并且第一缓存的流水线队列中数据位表征时刻,因此该时长可以换算为固定数量的数据位,从起始数据位(S1)起间隔固定数量的数据位,表征在访存指令进入第一缓存的流水线后,等待判断是否命中的执行过程完成,从而获得访存指令在第一缓存中的命中结果。
步骤102、若所述命中结果为未命中,则将所述访存指令挂起,同时通过所述第一缓存向第二缓存发送获取请求;所述第二缓存是所述第一缓存的下级缓存。
在本申请实施例中,访存指令在所述第一缓存中的命中结果为命中,表征第一缓存中具有访存指令请求读取的数据,若第一缓存还具有上级的第三缓存,则第一缓存可以将访存指令请求读取的数据重填入第三缓存;若第一缓存没有上级的第三缓存,则处理器可以通过访存指令直接从第一缓存中读取数据。
而在该步骤中,访存指令在所述第一缓存中的命中结果为未命中,表征第一缓存中未存有访存指令请求读取的数据,此时需要查看第一缓存下级的第二缓存中是否具有该数据,若第二缓存中存有该数据,则让第二缓存将该数据重填至第一缓存中,因此,在命中结果为未命中时,本申请实施例可以将访存指令挂起,同时通过第一缓存向第二缓存发送获取请求,以请求第二缓存找到访存指令所需的重填数据并发送至第一缓存。另外,在命中结果为未命中时,本申请实施例无需立即寻找第一缓存中的目标数据块进行释放,这样在重填数据到来之前的这段时间内,存储有旧数据的目标数据块可以正常运作,旧数据也可正常被访问。第二缓存是所述第一缓存的下级缓存,例如,针对三级缓存结构:一级缓存L1、二级缓存L2和三级缓存L3,假设第一缓存为一级缓存L1,则二级缓存可以为二级缓存L2;假设第一缓存为二级缓存L2,则二级缓存可以为三级缓存L3。
需要说明的是,参照图3,访存指令在所述第一缓存中的命中结果为未命中时,将访存指令挂起,是指将访存指令脱离第一缓存的流水线队列,并进入一个分配的缺失状态寄存器(MSHR,Miss-status Handling Registers)进行等待,缺失状态寄存器是用来记录每一项未完成的事务的寄存器,记录的信息包括失效地址、关键字信息以及未完成执行的指令等。一旦第二缓存对第一缓存重填完成后,缺失状态寄存器中的访存指令即可重新执行。重新执行的访存指令可以重新进入第一缓存的流水线队列。
步骤103、在通过所述第一缓存,接收到所述第二缓存响应于所述获取请求后发送的重填数据时,从所述第一缓存中确定目标数据块,并释放所述目标数据块中存储的旧数据,以及将所述重填数据写入所述目标数据块。
在本申请实施例中,第二缓存响应于获取请求,去查找并获取重填数据发送至第一缓存的过程,通常需要较长的时间(需花费第一缓存的流水线中几十个数据位到上百个数据位的时长),而本申请实施例在第一缓存等待重填数据发来的这段时间中,并未对存有旧数据的数据块进行释放及占用,在保证旧数据可正常被访问的基础上,提高了对缓存资源的利用率。
进一步的,本申请实施例具体是在通过第一缓存接收到第二缓存发送的重填数据时,才开始进行目标数据块的选取,若目标数据块中存储有旧数据,则释放该旧数据,并将重填数据写入所述目标数据块。这样,在重填数据到来之前的这段时间内,第一缓存中存储有旧数据的数据块可以正常运作,并未被空置及占用,旧数据也可正常被访问。第一缓存接收到重填数据后,再释放所选取的目标数据块中存储的旧数据,以及将重填数据写入目标数据块,也保证了访存指令读取数据过程的正常实现。
综上,本申请实施例中,可以在访存指令在第一缓存中未命中时,先不去选择数据块进行释放,而是通知下级的第二缓存去获取访存请求所需的重填数据,等待第二缓存获取到重填数据并发送重填数据至第一缓存时,再从第一缓存中确定目标数据块,并释放目标数据块中存储的旧数据,以及将重填数据写入目标数据块。这样,在重填数据到来之前的这段时间内,存储有旧数据的数据块正常运作,并未被空置及占用,旧数据也可正常被访问。另外,本申请在第一缓存接收到重填数据后,再释放所选取的目标数据块中存储的旧数据,也保证了此期间访存指令对旧数据读取过程的正常实现
图4是本申请实施例提供的一种重填数据的处理方法的具体步骤流程图,如图4所示,该方法可以包括:
步骤201、在通过第一缓存获取到处理器的访存指令的情况下,获取所述访存指令在所述第一缓存中的命中结果。
该步骤具体可以参照上述步骤101,此处不做赘述。
步骤202、若所述命中结果为未命中,则控制所述访存指令脱离所述流水线队列,并进入缺失状态寄存器进行挂起等待,同时通过所述第一缓存向第二缓存发送获取请求;所述第二缓存是所述第一缓存的下级缓存。
在本申请实施例中,参照图3,访存指令在所述第一缓存中的命中结果为未命中,表征第一缓存中未存有访存指令请求读取的数据,此时需要通过第一缓存向下级的第二缓存发送获取请求,查看下级的第二缓存中是否具有该数据,若第二缓存中存有该数据,则让第二缓存响应于该获取请求,将该数据重填至第一缓存中。
具体的,在命中结果为未命中时,可以将访存指令脱离第一缓存的流水线队列,并进入一个分配的缺失状态寄存器(MSHR)进行等待,缺失状态寄存器是用来记录每一项未完成的事务的寄存器,一旦第二缓存对第一缓存重填完成后,缺失状态寄存器中的访存指令即可重新执行,重新执行的访存指令可以重新进入第一缓存的流水线队列。
其中,将访存指令脱离第一缓存的流水线队列,是因该访存指令所请求获取的数据在第一缓存中未存储,而导致该访存指令当前未能实现数据读取,从而将该访存指令先脱离第一缓存的流水线队列进入缺失状态寄存器进行等待,避免对第一缓存的其他请求的执行造成干扰,等待下级的第二缓存将该访存指令所请求获取的数据发送至第一缓存后,该访存指令所请求获取的数据已被第一缓存获得,则缺失状态寄存器中的该访存指令可以再次进入第一缓存的流水线队列,从而在第一缓存中正确读取该数据。
步骤203、在通过所述第一缓存,接收到所述第二缓存响应于所述获取请求后发送的重填数据时,从所述第一缓存的流水线队列的起始数据位开始读取第一缓存目录,并在间隔第一数量的数据位后,根据所述第一缓存目录从所述第一缓存中确定所述目标数据块。
在本申请实施例中,参照图5,其示出了另一种第一缓存的架构示意图,图5是衔接图3的第一缓存处理过程,在通过第一缓存,接收到第二缓存响应于获取请求后发送的重填数据时,访存指令所请求获取的数据已被第一缓存获得,则缺失状态寄存器中的该访存指令可以再次进入第一缓存的流水线队列。具体的,访存指令可以从第一缓存的流水线队列的起始数据位(S1数据位)进入流水线,以及从起始数据位(S1数据位)开始读取第一缓存目录,第一缓存目录是一种表征第一缓存中存储数据的目录的数据,通过读取第一缓存目录,可以从第一缓存中确定出一个目标数据块进行释放和存储重填数据。
可选的,步骤203具体可以包括子步骤2031-2032:
子步骤2031、根据所述第一缓存目录,获取所述第一缓存中每个数据块的上次访问时间。
子步骤2032、将所述上次访问时间最早的数据块作为所述目标数据块。
在本申请实施例的一种实现方式中,针对子步骤2031-2032,第一缓存目录记录了第一缓存中各个数据块的上次访问时间,则本申请实施例可以基于第一缓存目录,获取第一缓存中每个数据块的上次访问时间,并将上次访问时间最早的数据块作为目标数据块,上次访问时间最早的数据块表示该数据块中存储的数据最不活跃,因此,将上次访问时间最早的数据块作为目标数据块,可以对其他数据块中的较活跃数据带来的影响降到最低。
在本申请实施例的另一种实现方式中,也可以在第一缓存中随机选取一个数据块作为目标数据块,对目标数据块的选取策略本申请实施例不作具体限定。
可选的,步骤203具体还可以包括子步骤2033-2034:
子步骤2033、在通过所述第一缓存,接收到所述第二缓存响应于所述获取请求后发送的重填数据时,检测所述第一缓存的存储状况。
子步骤2034、在确定所述存储状况为:所述第一缓存中不存在能够存储所述重填数据的空闲数据块时,从所述第一缓存中确定目标数据块。
在本申请实施例中,针对子步骤2033-2034,具体在第一缓存中确定目标数据块之前,首先可以检测所述第一缓存的存储状况,若存储状况为第一缓存中存在能够存储重填数据的空闲数据块,则将空闲数据块直接作为目标数据块,但是,在第一缓存在发生容量冲突(第一缓存中不存在能够存储重填数据的空闲数据块)时,则需要通过上述实施例的方法,从第一缓存中确定目标数据块,并释放目标数据块中的旧数据使其变为空闲数据块,以及将重填数据写入空闲的目标数据块。
步骤204、将所述重填数据写入所述第一缓存的重填缓冲片区。
在本申请实施例中,参照图5,第一缓存在刚接收到下级的第二缓存发送的重填数据时(此时重填数据还未写入目标数据块),需要在将重填数据写入目标数据块之前,先将重填数据暂时存储,因此第一缓存中可以设立一个独立的重填缓冲片区,第一缓存可以将重填数据写入重填缓冲片区进行暂时存储。
步骤205、在所述起始数据位的后一数据位,读取所述重填缓冲片区,并在间隔第二数量的数据位后,读取得到所述重填数据,将读取得到的重填数据写入所述第一缓存的写缓冲片区,以及读取所述目标数据块中的旧数据。
在本申请实施例中,参照图5,在第一缓存的流水线队列的起始数据位(S1数据位)的后一数据位(S2数据位),开启读取重填缓冲片区的操作,由于第一缓存从开始读取重填缓存片区至读取得到重填数据需要花费固定时长(对应流水线,需要花费1个数据位对应的时长),因此在间隔第二数量的数据位(间隔1个数据位)后,在S3数据位可以读取得到重填数据。
在第一缓存的流水线队列的S3数据位中,第一缓存从重填缓冲片区中读取到重填数据的同时,第一缓存还可以将重填数据写入第一缓存的写缓冲片区(图中未绘出),写缓冲片区是第一缓存中设立的一个独立存储片区,其功能是根据是否对目标数据块所执行的读操作,确定是否将重填数据写入目标数据块,以及在确定写入时,将重填数据写入目标数据块。
进一步的,在第一缓存的流水线队列的S3数据位中,第一缓存还同步开启读取目标数据块中的旧数据的操作。
步骤206、在间隔第三数量的数据位后,将读取得到的所述旧数据存入所述第二缓存,完成所述目标数据块的释放。
在本申请实施例中,参照图5,在第一缓存的流水线队列的S3数据位中第一缓存还同步开启读取目标数据块中的旧数据的操作,由于第一缓存从开始读取目标数据块至读取得到其中的旧数据需要花费固定时长(对应流水线,需要花费2个数据位对应的时长),因此在间隔第三数量的数据位(间隔2个数据位)后,在第一缓存的流水线队列的S5数据位可以读取得到目标数据块中的旧数据,此时旧数据被从目标数据块中读出。
进一步的,在第一缓存的流水线队列的S5数据位还可以将读取得到的旧数据向第二缓存发送,完成目标数据块的释放。
需要说明的是,在目标数据块中的旧数据释放后,若后续再接收到对旧数据的读取指令,则第一缓存仍需按照步骤201~207,向第二缓存获取数据并重填入第一缓存,以满足读取指令读取旧数据的需求。
步骤207、在检测到读取所述目标数据块的操作结束时,将所述写缓冲片区中的所述重填数据写入所述目标数据块。
在本申请实施例中,写缓冲片区的功能是根据针对目标数据块所执行的读操作的判断,确定是否将重填数据写入目标数据块。具体的,本申请实施例为读取目标数据块的操作设置较高优先级,因此写缓冲区需要等待对目标数据块的读操作全部结束后,才能开始进行将写缓冲片区中的重填数据写入目标数据块的操作。即写缓冲片区在判断针对目标数据块所执行的读操作全部结束的情况下,写缓冲片区执行将写缓冲片区中的重填数据写入目标数据块的操作,从而完成将重填数据存入第一缓存存储单元的操作。
可选的,所述方法还可以包括:
步骤208、在所述第一缓存接收到的读取请求所携带的第一地址,与所述写缓冲片区中目标重填数据的第二地址匹配的情况下,将所述目标重填数据作为对所述读取请求的响应进行返回。
在本申请实施例中,在目标重填数据处于写缓冲片区中,还未写入目标数据块的这段时间,若接收到对该目标重填数据的读取请求,则可以直接将写缓冲片区中的目标重填数据直接作为对读取请求的响应进行返回。其中,在第一缓存接收到的读取请求所携带的第一地址,与写缓冲片区中目标重填数据的第二地址匹配的情况下,确定读取请求所请求读取的数据为重填缓冲区中的目标重填数据。
需要说明的是,综上,缺失状态寄存器可以建立两个任务,第一个任务用于实现上述实施例过程中第一缓存从第二缓存获取重填数据;第二个任务用于实现上述实施例过程中确定目标数据块、释放目标数据块、将重填数据写入目标数据块,以及向上级缓存继续重填该重填数据。
可选的,所述方法还可以包括:
步骤209、在将所述重填数据写入所述目标数据块后,从所述缺失状态寄存器中提取所述访存指令,并将所述重填数据写入第三缓存,以及唤醒通过所述访存指令从所述第三缓存中读数据的操作。
其中,所述第三缓存是所述第一缓存的上级缓存;所述访存指令在所述第三缓存中未命中。
在本申请实施例中,在第一缓存不具有上级的第三缓存的情况下,访存指令可直接从第一缓存获得重填数据并反馈给处理器。而在第一缓存具有上级的第三缓存的情况下,将重填数据写入目标数据块后,第一缓存还需要从缺失状态寄存器中提取访存指令,并将重填数据写入第三缓存,以及唤醒通过访存指令从第三缓存中读数据的操作,即访存指令是按照先访问上级缓存,若访问上级缓存未命中,再访问下级缓存的数据进行数据访问的,因此访存指令在上级第三缓存中未命中的情况下,下级的第二缓存将重填数据写入本级第一缓存后,第一缓存还需将重填数据重填入上级的第三缓存,在第三缓存已无上级缓存的情况下,可以唤醒通过访存指令从第三缓存中读数据的操作,唤醒后的访存指令可直接从第三缓存获得重填数据并反馈给处理器。同理,在第三缓存还具有更上级的缓存的情况下,第三缓存还需继续将重填数据重填入更上级的缓存。
可选的,步骤209具体可以包括子步骤2091-2092:
子步骤2091、控制所述访存指令从起始数据位进入所述第一缓存的流水线队列,同时通过所述第一缓存生成唤醒指令并由唤醒队列发出至第三缓存。
子步骤2092、在所述流水线队列中间隔所述第二数量的数据位后,通过所述第一缓存获取重填数据,将所述访存指令作为重填指令由重填队列发出至所述第三缓存。
其中,所述唤醒指令用于唤醒通过所述访存指令从所述第三缓存中读数据的操作;所述重填指令用于将所述重填数据写入所述第三缓存供所述访存指令读取。
在本申请实施例中,命中结果为未命中,表征第一缓存中未存有访存指令请求读取的数据,此时需要查看下级的第二缓存中是否具有该数据,若第二缓存中存有该数据,则让第二缓存将该数据重填至第一缓存中,以供访存指令读取。
具体的,参照图3,在等待第二缓存重填第一缓存后,再控制访存指令重新从起始数据位进入所述流水线队列,同时通过第一缓存生成唤醒指令并由唤醒队列发出至上级的第三缓存(进入唤醒队列以及发出唤醒指令的时刻为数据位S1对应的时刻);以及在间隔第二数量的数据位后(间隔2个数据位),通过第一缓存获取重填数据,将访存指令作为重填指令由重填队列发出至第三缓存。
例如,参照图3,命中结果为未命中的情况下,唤醒请求的实际发送时机是数据位S1对应的时刻,重填请求由于要在重填队列中等待一个数据位表征的时长(确保位于重填队列出口处的重填请求及时发出,降低重填队列堵塞的几率),因此重填请求实际的发出时机为数据位S4对应的时刻,可见,本申请实施例可以保证针对每个重填请求,都有一个提前三个数据位的唤醒请求发出。
本申请实施例通过第一缓存简洁明了的多级流水线队列架构实现了对访存指令的管理,基于流水线队列,设计了在一个固定的数据位获取访存指令的命中结果和发送唤醒请求,以及在另一固定的数据位获取重填数据和将重填请求通过重填队列发出;基于流水线队列的架构和指令在流水线中各个处理时机的设计,可以达到对发出唤醒请求的固定提前量的精确且稳定的控制,保证了访存指令读取过程的准确率和覆盖率。整个过程无需读取流水线各级请求的状态,以及基于重填队列请求的状态实时计算提前发出时刻,因此复杂度极低,降低了电路的成本和功耗。
可选的,所述方法还可以包括:
步骤210、若所述命中结果为命中,则读取所述访存指令在所述第一缓存内命中的数据块中的数据并进行返回。
在本申请实施例中,访存指令在第一缓存中的命中结果为命中,表征第一缓存中具有访存指令请求读取的数据,若第一缓存还具有上级的第三缓存,则第一缓存可以将访存指令请求读取的数据重填入第三缓存;若第一缓存没有上级的第三缓存,则处理器可以通过访存指令直接从第一缓存中读取数据。
综上所述,本申请实施例中,可以在访存指令在第一缓存中未命中时,先不去选择数据块进行释放,而是通知下级的第二缓存去获取访存请求所需的重填数据,等待第二缓存获取到重填数据并发送重填数据至第一缓存时,再从第一缓存中确定目标数据块,并释放目标数据块中存储的旧数据,以及将重填数据写入目标数据块。这样,在重填数据到来之前的这段时间内,存储有旧数据的数据块正常运作,并未被空置及占用,旧数据也可正常被访问。另外,本申请在第一缓存接收到重填数据后,再释放所选取的目标数据块中存储的旧数据,也保证了此期间访存指令对旧数据读取过程的正常实现。
图6是本申请实施例提供的一种重填数据的处理装置的框图,该装置包括:
获取模块301,用于在通过第一缓存获取到处理器的访存指令的情况下,获取所述访存指令在所述第一缓存中的命中结果;
未命中模块302,用于若所述命中结果为未命中,则将所述访存指令挂起,同时通过所述第一缓存向第二缓存发送获取请求;所述第二缓存是所述第一缓存的下级缓存;
写入模块303,用于在通过所述第一缓存,接收到所述第二缓存响应于所述获取请求后发送的重填数据时,从所述第一缓存中确定目标数据块,并释放所述目标数据块中存储的旧数据,以及将所述重填数据写入所述目标数据块。
可选的,所述写入模块303,包括:
确定子模块,用于从所述第一缓存的流水线队列的起始数据位开始读取第一缓存目录,并在间隔第一数量的数据位后,根据所述第一缓存目录从所述第一缓存中确定所述目标数据块。
可选的,所述写入模块303,包括:
第一写入子模块,用于将所述重填数据写入所述第一缓存的重填缓冲片区;
处理子模块,用于在所述起始数据位的后一数据位,读取所述重填缓冲片区,并在间隔第二数量的数据位后,读取得到所述重填数据,将读取得到的重填数据写入所述第一缓存的写缓冲片区,以及读取所述目标数据块中的旧数据;
释放子模块,用于在间隔第三数量的数据位后,将读取得到的所述旧数据存入所述第二缓存,完成所述目标数据块的释放;
第二写入子模块,用于在检测到读取所述目标数据块的操作结束时,将所述写缓冲片区中的所述重填数据写入所述目标数据块。
可选的,所述装置还包括:
返回模块,用于在所述第一缓存接收到的读取请求所携带的第一地址,与所述写缓冲片区中目标重填数据的第二地址匹配的情况下,将所述目标重填数据作为对所述读取请求的响应进行返回。
可选的,所述确定子模块,包括:
获取单元,用于根据所述第一缓存目录,获取所述第一缓存中每个数据块的上次访问时间;
确定单元,用于将所述上次访问时间最早的数据块作为所述目标数据块。
可选的,所述未命中模块302,包括:
挂起子模块,用于若所述命中结果为未命中,则控制所述访存指令脱离所述流水线队列,并进入缺失状态寄存器进行挂起等待。
可选的,所述装置还包括:
唤醒模块,用于在将所述重填数据写入所述目标数据块后,从所述缺失状态寄存器中提取所述访存指令,并将所述重填数据写入第三缓存,以及唤醒通过所述访存指令从所述第三缓存中读数据的操作;
其中,所述第三缓存是所述第一缓存的上级缓存;所述访存指令在所述第三缓存中未命中。
可选的,所述唤醒模块,包括:
进入子模块,用于控制所述访存指令从起始数据位进入所述第一缓存的流水线队列,同时通过所述第一缓存生成唤醒指令并由唤醒队列发出至第三缓存;
发送子模块,用于在所述流水线队列中间隔所述第二数量的数据位后,通过所述第一缓存获取重填数据,将所述访存指令作为重填指令由重填队列发出至所述第三缓存;
其中,所述唤醒指令用于唤醒通过所述访存指令从所述第三缓存中读数据的操作;所述重填指令用于将所述重填数据写入所述第三缓存供所述访存指令读取。
可选的,所述装置还包括:
命中模块,用于若所述命中结果为命中,则读取所述访存指令在所述第一缓存内命中的数据块中的数据并进行返回。
可选的,所述写入模块303,包括:
检测子模块,用于在通过所述第一缓存,接收到所述第二缓存响应于所述获取请求后发送的重填数据时,检测所述第一缓存的存储状况;
满载子模块,用于在确定所述存储状况为:所述第一缓存中不存在能够存储所述重填数据的空闲数据块时,从所述第一缓存中确定目标数据块。
综上,本申请实施例中,可以在访存指令在第一缓存中未命中时,先不去选择数据块进行释放,而是通知下级的第二缓存去获取访存请求所需的重填数据,等待第二缓存获取到重填数据并发送重填数据至第一缓存时,再从第一缓存中确定目标数据块,并释放目标数据块中存储的旧数据,以及将重填数据写入目标数据块。这样,在重填数据到来之前的这段时间内,存储有旧数据的数据块正常运作,并未被空置及占用,旧数据也可正常被访问。另外,本申请在第一缓存接收到重填数据后,再释放所选取的目标数据块中存储的旧数据,也保证了此期间访存指令对旧数据读取过程的正常实现。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本申请实施例提供了一种重填数据的处理装置,包括有存储器,以及一个以上的程序,其中一个以上程序存储于存储器中,且经配置以由一个以上处理器执行所述一个以上程序包含用于进行上述一个或多个实施例中所述的方法。
图7是根据一示例性实施例示出的一种电子设备600的框图。例如,电子设备600可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图7,电子设备600可以包括以下一个或多个组件:处理组件602,存储器604,电源组件606,多媒体组件608,音频组件610,输入/输出(I/ O)的接口612,传感器组件614,以及通信组件616。
处理组件602通常控制电子设备600的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件602可以包括一个或多个处理器620来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件602可以包括一个或多个模块,便于处理组件602和其他组件之间的交互。例如,处理组件602可以包括多媒体模块,以方便多媒体组件608和处理组件602之间的交互。
存储器604用于存储各种类型的数据以支持在电子设备600的操作。这些数据的示例包括用于在电子设备600上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,多媒体等。存储器604可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件606为电子设备600的各种组件提供电力。电源组件606可以包括电源管理系统,一个或多个电源,及其他与为电子设备600生成、管理和分配电力相关联的组件。
多媒体组件608包括在所述电子设备600和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的分界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件608包括一个前置摄像头和/或后置摄像头。当电子设备600处于操作模式,如拍摄模式或多媒体模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件610用于输出和/或输入音频信号。例如,音频组件610包括一个麦克风(MIC),当电子设备600处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器604或经由通信组件616发送。在一些实施例中,音频组件610还包括一个扬声器,用于输出音频信号。
I/ O接口612为处理组件602和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件614包括一个或多个传感器,用于为电子设备600提供各个方面的状态评估。例如,传感器组件614可以检测到电子设备600的打开/关闭状态,组件的相对定位,例如所述组件为电子设备600的显示器和小键盘,传感器组件614还可以检测电子设备600或电子设备600一个组件的位置改变,用户与电子设备600接触的存在或不存在,电子设备600方位或加速/减速和电子设备600的温度变化。传感器组件614可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件614还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件614还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件616用于便于电子设备600和其他设备之间有线或无线方式的通信。电子设备600可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或5G),或它们的组合。在一个示例性实施例中,通信组件616经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件616还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备600可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于实现本申请实施例提供的方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器604,上述指令可由电子设备600的处理器620执行以完成上述方法。例如,所述非临时性存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
图8是根据一示例性实施例示出的一种电子设备700的框图。例如,电子设备700可以被提供为一服务器。参照图8,电子设备700包括处理组件722,其进一步包括一个或多个处理器,以及由存储器732所代表的存储器资源,用于存储可由处理组件722的执行的指令,例如应用程序。存储器732中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件722被配置为执行指令,以执行本申请实施例提供的方法。
电子设备700还可以包括一个电源组件726被配置为执行电子设备700的电源管理,一个有线或无线网络接口750被配置为将电子设备700连接到网络,和一个输入输出(I/O)接口758。电子设备700可以操作基于存储在存储器732的操作系统,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本申请实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述实施例所述的方法。
本领域技术人员在考虑说明书及实践这里公开的申请后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (13)
1.一种重填数据的处理方法,其特征在于,所述方法包括:
在通过第一缓存获取到处理器的访存指令的情况下,获取所述访存指令在所述第一缓存中的命中结果;
若所述命中结果为未命中,则将所述访存指令挂起,同时通过所述第一缓存向第二缓存发送获取请求;所述第二缓存是所述第一缓存的下级缓存;
在通过所述第一缓存,接收到所述第二缓存响应于所述获取请求后发送的重填数据时,从所述第一缓存中确定目标数据块,并释放所述目标数据块中存储的旧数据,以及将所述重填数据写入所述目标数据块。
2.根据权利要求1所述的重填数据的处理方法,其特征在于,所述从所述第一缓存中确定目标数据块,包括:
从所述第一缓存的流水线队列的起始数据位开始读取第一缓存目录,并在间隔第一数量的数据位后,根据所述第一缓存目录从所述第一缓存中确定所述目标数据块。
3.根据权利要求2所述的重填数据的处理方法,其特征在于,所述释放所述目标数据块中存储的旧数据,以及将所述重填数据写入所述目标数据块,包括:
将所述重填数据写入所述第一缓存的重填缓冲片区;
在所述起始数据位的后一数据位,读取所述重填缓冲片区,并在间隔第二数量的数据位后,读取得到所述重填数据,将读取得到的重填数据写入所述第一缓存的写缓冲片区,以及读取所述目标数据块中的旧数据;
在间隔第三数量的数据位后,将读取得到的所述旧数据存入所述第二缓存,完成所述目标数据块的释放;
在检测到读取所述目标数据块的操作结束时,将所述写缓冲片区中的所述重填数据写入所述目标数据块。
4.根据权利要求3所述的重填数据的处理方法,其特征在于,所述方法还包括:
在所述第一缓存接收到的读取请求所携带的第一地址,与所述写缓冲片区中目标重填数据的第二地址匹配的情况下,将所述目标重填数据作为对所述读取请求的响应进行返回。
5.根据权利要求2所述的重填数据的处理方法,其特征在于,所述根据所述第一缓存目录从所述第一缓存中确定所述目标数据块,包括:
根据所述第一缓存目录,获取所述第一缓存中每个数据块的上次访问时间;
将所述上次访问时间最早的数据块作为所述目标数据块。
6.根据权利要求1所述的重填数据的处理方法,其特征在于,所述若所述命中结果为未命中,则将所述访存指令挂起,包括:
若所述命中结果为未命中,则控制所述访存指令脱离流水线队列,并进入缺失状态寄存器进行挂起等待。
7.根据权利要求6所述的重填数据的处理方法,其特征在于,所述方法还包括:
在将所述重填数据写入所述目标数据块后,从所述缺失状态寄存器中提取所述访存指令,并将所述重填数据写入第三缓存,以及唤醒通过所述访存指令从所述第三缓存中读数据的操作;
其中,所述第三缓存是所述第一缓存的上级缓存;所述访存指令在所述第三缓存中未命中。
8.根据权利要求7所述的重填数据的处理方法,其特征在于,所述将所述重填数据写入第三缓存,以及唤醒通过所述访存指令从所述第三缓存中读数据的操作,包括:
控制所述访存指令从起始数据位进入所述第一缓存的流水线队列,同时通过所述第一缓存生成唤醒指令并由唤醒队列发出至第三缓存;
在所述流水线队列中间隔第二数量的数据位后,通过所述第一缓存获取重填数据,将所述访存指令作为重填指令由重填队列发出至所述第三缓存;
其中,所述唤醒指令用于唤醒通过所述访存指令从所述第三缓存中读数据的操作;所述重填指令用于将所述重填数据写入所述第三缓存供所述访存指令读取。
9.根据权利要求1所述的重填数据的处理方法,其特征在于,所述方法还包括:
若所述命中结果为命中,则读取所述访存指令在所述第一缓存内命中的数据块中的数据并进行返回。
10.根据权利要求1所述的重填数据的处理方法,其特征在于,所述在通过所述第一缓存,接收到所述第二缓存响应于所述获取请求后发送的重填数据时,从所述第一缓存中确定目标数据块,包括:
在通过所述第一缓存,接收到所述第二缓存响应于所述获取请求后发送的重填数据时,检测所述第一缓存的存储状况;
在确定所述存储状况为:所述第一缓存中不存在能够存储所述重填数据的空闲数据块时,从所述第一缓存中确定目标数据块。
11.一种重填数据的处理装置,其特征在于,所述装置包括:
获取模块,用于在通过第一缓存获取到处理器的访存指令的情况下,获取所述访存指令在所述第一缓存中的命中结果;
未命中模块,用于若所述命中结果为未命中,则将所述访存指令挂起,同时通过所述第一缓存向第二缓存发送获取请求;所述第二缓存是所述第一缓存的下级缓存;
写入模块,用于在通过所述第一缓存,接收到所述第二缓存响应于所述获取请求后发送的重填数据时,从所述第一缓存中确定目标数据块,并释放所述目标数据块中存储的旧数据,以及将所述重填数据写入所述目标数据块。
12.一种电子设备,其特征在于,包括:处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至10中任一项所述的方法。
13.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410053386.6A CN117573572A (zh) | 2024-01-12 | 2024-01-12 | 重填数据的处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410053386.6A CN117573572A (zh) | 2024-01-12 | 2024-01-12 | 重填数据的处理方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117573572A true CN117573572A (zh) | 2024-02-20 |
Family
ID=89895853
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410053386.6A Pending CN117573572A (zh) | 2024-01-12 | 2024-01-12 | 重填数据的处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117573572A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5689679A (en) * | 1993-04-28 | 1997-11-18 | Digital Equipment Corporation | Memory system and method for selective multi-level caching using a cache level code |
CN101650972A (zh) * | 2009-06-12 | 2010-02-17 | 东信和平智能卡股份有限公司 | 智能卡的非易失性存储器数据更新方法 |
CN104346294A (zh) * | 2013-07-31 | 2015-02-11 | 华为技术有限公司 | 基于多级缓存的数据读/写方法、装置和计算机系统 |
CN113515531A (zh) * | 2021-05-08 | 2021-10-19 | 重庆紫光华山智安科技有限公司 | 数据访问方法、装置、客户端及存储介质 |
CN113849494A (zh) * | 2021-09-29 | 2021-12-28 | 联想(北京)有限公司 | 一种数据更新方法及装置 |
CN113961247A (zh) * | 2021-09-24 | 2022-01-21 | 北京睿芯众核科技有限公司 | 一种基于risc-v处理器的向量存/取指令执行方法、系统及装置 |
CN115203250A (zh) * | 2022-05-17 | 2022-10-18 | 广东好太太智能家居有限公司 | 一种高性能的分布式缓存的实现方法及系统 |
CN116303590A (zh) * | 2023-02-06 | 2023-06-23 | 杭州隆埠科技有限公司 | 一种缓存数据访问方法、装置、设备以及存储介质 |
-
2024
- 2024-01-12 CN CN202410053386.6A patent/CN117573572A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5689679A (en) * | 1993-04-28 | 1997-11-18 | Digital Equipment Corporation | Memory system and method for selective multi-level caching using a cache level code |
CN101650972A (zh) * | 2009-06-12 | 2010-02-17 | 东信和平智能卡股份有限公司 | 智能卡的非易失性存储器数据更新方法 |
CN104346294A (zh) * | 2013-07-31 | 2015-02-11 | 华为技术有限公司 | 基于多级缓存的数据读/写方法、装置和计算机系统 |
CN113515531A (zh) * | 2021-05-08 | 2021-10-19 | 重庆紫光华山智安科技有限公司 | 数据访问方法、装置、客户端及存储介质 |
CN113961247A (zh) * | 2021-09-24 | 2022-01-21 | 北京睿芯众核科技有限公司 | 一种基于risc-v处理器的向量存/取指令执行方法、系统及装置 |
CN113849494A (zh) * | 2021-09-29 | 2021-12-28 | 联想(北京)有限公司 | 一种数据更新方法及装置 |
CN115203250A (zh) * | 2022-05-17 | 2022-10-18 | 广东好太太智能家居有限公司 | 一种高性能的分布式缓存的实现方法及系统 |
CN116303590A (zh) * | 2023-02-06 | 2023-06-23 | 杭州隆埠科技有限公司 | 一种缓存数据访问方法、装置、设备以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105955765B (zh) | 应用预加载方法及装置 | |
CN107291626B (zh) | 数据存储方法和装置 | |
WO2019024642A1 (zh) | 进程控制方法、装置、存储介质以及电子设备 | |
JP7166294B2 (ja) | オーディオ処理方法、装置及び記憶媒体 | |
KR20130010169A (ko) | 통화 중 응용 프로그램 실행 방법 및 이를 지원하는 모바일 단말기 | |
CN105930213A (zh) | 应用运行方法及装置 | |
CN111966410B (zh) | 启动处理方法、装置、电子设备及存储介质 | |
WO2021213038A1 (zh) | 历史信息的获取方法、存储介质、系统 | |
US9678868B2 (en) | Method and device for optimizing memory | |
RU2742605C1 (ru) | Способ и устройство для обработки сигнала касания и носитель информации | |
CN109634762B (zh) | 一种数据回收方法、装置、电子设备及存储介质 | |
JP6412651B2 (ja) | タスクディスプレイ方法、装置、プログラムおよび記録媒体 | |
CN107632835B (zh) | 应用安装方法及装置 | |
US10817702B2 (en) | Method, terminal, and computer-readable storage medium for processing fingerprint | |
CN116627501A (zh) | 物理寄存器的管理方法、装置、电子设备及可读存储介质 | |
CN117573572A (zh) | 重填数据的处理方法、装置、设备及存储介质 | |
CN117453435B (zh) | 缓存数据读取方法、装置、设备及存储介质 | |
CN116048757A (zh) | 任务处理方法、装置、电子设备和存储介质 | |
CN117573573B (zh) | 缓存请求的处理方法、装置、设备及存储介质 | |
CN111259675B (zh) | 基于神经网络计算的方法和装置 | |
CN114416178A (zh) | 数据访问方法、装置及非临时性计算机可读存储介质 | |
CN111984423A (zh) | 一种运行深度学习模型的方法、装置及介质 | |
CN112346617A (zh) | 信息显示方法、信息显示装置、终端及存储介质 | |
CN113360254A (zh) | 任务调度方法及系统 | |
CN117111857B (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 |