专利名称:数据请求处理电路、方法及其缓存电路和处理器
专利类型:实用新型专利
专利申请号:CN202211733347.8
专利申请(专利权)人:上海芷锐电子科技有限公司
权利人地址:上海市闵行区苏召路1628号
专利发明(设计)人:吴昊
专利摘要:本申请提供一种数据请求处理电路、方法、及其缓存电路和处理器,该电路包括:下游数据处理模块、数据请求管理模块以及上游管理模块;下游数据处理模块用于将获取的目标下游数据传输给上游管理模块;其中,目标下游数据通过缓存缺失的目标数据请求在下游内存中读取获得;数据请求管理模块用于将目标下游数据关联的目标数据请求信息传输给上游管理模块;上游管理模块用于将目标下游数据和关联的目标数据请求信息传输给上游设备,以响应目标数据请求,由于本方案是直接将目标下游数据传输给上游,因此,本方案设计的数据请求处理电路无需对缓存进行写入和读取,进而提高缓存未命中的数据请求的响应时间和功耗。
主权利要求:
1.一种数据请求处理电路,其特征在于,所述电路包括:下游数据处理模块、数据请求管理模块以及上游管理模块;
所述下游数据处理模块用于将获取的目标下游数据传输给所述上游管理模块;其中,所述目标下游数据通过缓存缺失的目标数据请求在下游内存中读取获得;
所述数据请求管理模块用于将所述目标下游数据关联的所述目标数据请求信息传输给所述上游管理模块;
所述上游管理模块用于将所述目标下游数据和关联的目标数据请求信息传输给上游设备,以响应所述目标数据请求;
所述电路还包括缓存模块,所述下游数据处理模块与所述缓存模块电连接;
所述下游数据处理模块还用于将所述目标下游数据写入所述缓存模块中。
2.根据权利要求1所述的电路,其特征在于,所述下游数据处理模块与所述上游管理模块电连接,所述数据请求管理模块与所述上游管理模块电连接,所述上游管理模块用于与上游设备电连接。
3.根据权利要求1所述的电路,其特征在于,所述数据请求管理模块存储有多个缓存缺失的数据请求;
所述数据请求管理模块还用于在多个缓存缺失的数据请求中,确定所述目标下游数据关联的目标数据请求,以获取所述目标数据请求的目标数据请求信息。
4.根据权利要求3所述的电路,其特征在于,所述下游数据处理模块与所述数据请求管理模块电连接;
所述下游数据处理模块还用于将获取的目标下游数据对应的目标请求标识传输给所述数据请求管理模块;
所述数据请求管理模块还用于根据所述下游数据处理模块传输的目标下游数据对应的目标请求标识,在多个缓存缺失的数据请求中查找具有相同请求标识的数据请求,获得所述目标下游数据关联的目标数据请求。
5.根据权利要求3所述的电路,其特征在于,所述下游数据处理模块还用于获取数据请求管理模块传输的缓存缺失的目标数据请求信息;以及根据目标请求标识在下游内存中读取对应的数据,获得所述目标下游数据;
其中,所述目标数据请求信息包括目标请求标识。
6.根据权利要求4或5所述的电路,其特征在于,其中,所述目标请求标识包括目标请求地址和目标请求携带的唯一标识中的至少一种。
7.一种缓存电路,其特征在于,所述缓存电路包括权利要求1‑6中任一项所述的数据请求处理电路。
8.一种处理器,其特征在于,所述处理器包括权利要求7所述的缓存电路。
9.一种数据请求处理方法,其特征在于,所述方法包括:
当根据目标数据请求信息在下游内存中读取获得目标下游数据时,直接将所述目标下游数据和所述目标下游数据关联的目标数据请求信息传输给上游设备,以响应所述目标数据请求;
所述方法还包括:将所述目标下游数据写入缓存模块中。
10.根据权利要求9所述的方法,其特征在于,在所述将所述目标下游数据和所述目标下游数据关联的目标数据请求信息传输给上游设备之前,所述方法还包括:根据所述目标下游数据对应的目标请求标识在多个缓存缺失的数据请求中查找具有相同请求标识的数据请求,获得所述目标下游数据关联的目标数据请求。 说明书 : 数据请求处理电路、方法及其缓存电路和处理器技术领域[0001] 本申请涉及处理器技术领域,具体而言,涉及一种数据请求处理电路、方法、及其缓存电路和处理器。背景技术[0002] 目前处理器的缓存电路在缓存未命中(cachemiss)时会存在较大开销,为了能在缓存未命中情况下不会阻塞上游继续运行,缓存电路引入未命中状态处理寄存器(MissstatusHandlingRegisters,MSHR)电路来完成非阻塞缓存的实现。[0003] 在传统的MSHR电路中,当下游数据返回时,MSHR电路首先会将下游数据写进缓存的数据随机存取存储器(DataRAM)中,然后再从DataRAM中读取存储的下游数据返回给上游,实现对应数据请求的响应。[0004] 但上述方式需要将返回的下游数据写入DataRAM并从DataRAM中读出,而读写需要耗费大量的时间长度,从而造成数据请求效率低的问题。发明内容[0005] 本申请实施例的目的在于提供一种数据请求处理电路、方法、及其缓存电路和处理器,用以解决传统的MSHR电路存在的效率低的问题。[0006] 第一方面,本发明提供一种数据请求处理电路,该电路包括:下游数据处理模块、数据请求管理模块以及上游管理模块;下游数据处理模块用于将获取的目标下游数据传输给上游管理模块;其中,目标下游数据通过缓存缺失的目标数据请求在下游内存中读取获得;数据请求管理模块用于将目标下游数据关联的目标数据请求信息传输给上游管理模块;上游管理模块用于将目标下游数据和关联的目标数据请求信息传输给上游设备,以响应目标数据请求。[0007] 上述设计的数据请求处理电路,本方案通过下游数据处理模块在得到目标下游数据时,直接将获取的目标下游数据传输给上游管理模块,并且通过数据请求管理模块将目标下游数据关联的目标数据请求信息传输给上游管理模块,通过上游管理模块将得到的目标下游数据和关联的目标数据请求信息传输给上游设备,从而响应目标数据请求,由于本方案是直接将目标下游数据传输给上游,因此,本方案设计的数据请求处理电路无需对DataRAM进行写入和读取,进而提高缓存未命中的数据请求的响应时间和功耗。[0008] 在第一方面的可选实施方式中,下游数据处理模块与上游管理模块电连接,数据请求管理模块与上游管理模块电连接,上游管理模块用于与上游设备电连接。[0009] 在第一方面的可选实施方式中,该电路还包括缓存模块,下游数据处理模块与缓存模块电连接;下游数据处理模块还用于将目标下游数据写入缓存模块中。本实施方式将目标下游数据写入缓存模块40中存储,从而使得目标数据请求在下一次访问时实现缓存命中,从而直接从缓存中读取,提高访问效率并降低功耗。[0010] 在第一方面的可选实施方式中,数据请求管理模块存储有多个缓存缺失的数据请求;数据请求模块还用于在多个缓存缺失的数据请求中,确定所述目标下游数据关联的目标数据请求,以获取目标数据请求的目标数据请求信息。[0011] 在第一方面的可选实施方式中,下游数据处理模块与数据请求管理模块电连接;下游数据处理模块还用于将获取的目标下游数据对应的目标请求标识传输给数据请求管理模块;数据请求管理模块还用于根据下游数据处理模块传输的目标下游数据对应的目标请求标识,在多个缓存缺失的数据请求中查找具有相同请求标识的数据请求,获得目标下游数据关联的目标数据请求。本实施方式通过数据请求管理模块将目标下游数据关联的所有目标数据请求的信息均发送给上游管理模块,从而使得目标下游数据关联的所有数据请求一次性处理,进而无需访问多次,进而降低访问功耗。[0012] 在第一方面的可选实施方式中,下游数据处理模块还用于获取数据请求管理模块传输的缓存缺失的目标数据请求信息;以及根据目标标识在下游内存中读取对应的数据,获得目标下游数据;其中,目标数据请求信息包括目标请求标识。[0013] 在第一方面的可选实施方式中,其中,目标请求标识包括目标请求地址和目标请求携带的唯一标识中的至少一种。[0014] 第二方面,本发明提供一种缓存电路,缓存电路包括第一方面的任意一种实施方式所述的数据请求处理电路。[0015] 上述设计的缓存电路,由于其包含前述任一可选实施方式的数据请求处理电路,因此,该缓存电路在数据请求缓存未命中的情况下,直接将目标下游数据和目标下游数据关联的目标数据请求信息传输给上游,无需对DataRAM进行写入和读取,进而提高缓存未命中的数据请求的响应时间和功耗。[0016] 第三方面,本发明提供一种处理器,所述处理器包括第二方面所述的缓存电路。[0017] 上述设计的处理器,由于其包含前述的缓存电路,因此,该处理器在数据请求缓存未命中的情况下,直接将目标下游数据和目标下游数据关联的目标数据请求信息传输给上游,无需对DataRAM进行写入和读取,进而提高缓存未命中的数据请求的响应时间和功耗。[0018] 第四方面,本发明提供一种数据请求处理方法,该方法包括:当根据目标数据请求信息在下游内存中读取获得目标下游数据时,直接将目标下游数据和目标下游数据关联的目标数据请求信息传输给上游设备,以响应目标数据请求。[0019] 上述设计的数据请求处理方法,本方案直接将返回的下游数据传输给上游,并且将下游数据关联的目标数据请求信息也返回给上游,以对缓存未命中的目标数据请求进行响应,从而无需对DataRAM进行写入和读取,进而提高缓存未命中的数据请求的响应时间和功耗。[0020] 在第四方面的可选实施方式中,在将目标下游数据和目标下游数据关联的目标数据请求信息传输给上游设备之前,该方法还包括:根据目标下游数据对应的目标请求标识在多个缓存缺失的数据请求中查找具有相同请求标识的数据请求,获得目标下游数据关联的目标数据请求。[0021] 在第四方面的可选实施方式中,该方法还包括:将目标下游数据写入缓存模块中。[0022] 上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。附图说明[0023] 为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。[0024] 图1为本申请实施例提供的数据请求处理电路的第一结构示意图;[0025] 图2为本申请实施例提供的数据请求处理电路的第二结构示意图;[0026] 图3为本申请实施例提供的数据请求处理电路的第三结构示意图;[0027] 图4为本申请实施例提供的数据请求处理方法的流程示意图;[0028] 图5为本申请实施例提供的电子设备的结构示意图。[0029] 图标:10‑下游数据处理模块;20‑数据请求管理模块;30‑上游管理模块;40‑缓存模块;A‑上游设备;5‑电子设备;501‑处理器;502‑存储器;503‑通信总线。具体实施方式[0030] 下面将结合附图对本申请技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本申请的技术方案,因此只作为示例,而不能以此来限制本申请的保护范围。[0031] 除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。[0032] 在本申请实施例的描述中,技术术语“第一”“第二”等仅用于区别不同对象,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量、特定顺序或主次关系。在本申请实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。[0033] 在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。[0034] 在本申请实施例的描述中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。[0035] 在本申请实施例的描述中,术语“多个”指的是两个以上(包括两个),同理,“多组”指的是两组以上(包括两组),“多片”指的是两片以上(包括两片)。[0036] 在本申请实施例的描述中,技术术语“中心”“纵向”“横向”“长度”“宽度”“厚度”“上”“下”“前”“后”“左”“右”“竖直”“水平”“顶”“底”“内”“外”“顺时针”“逆时针”“轴向”“径向”“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请实施例和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请实施例的限制。[0037] 在本申请实施例的描述中,除非另有明确的规定和限定,技术术语“安装”“相连”“连接”“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;也可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请实施例中的具体含义。[0038] 目前处理器的数据访问方式一般是根据访问地址首先去缓存中找对应地址的数据,若缓存中有对应的地址和地址对应的具体数据,则称为缓存命中,在缓存命中的情况下,一般直接读取缓存中对应的具体数据即可实现数据请求/数据访问响应;若缓存中没有对应的地址和具体数据(后续称为primarymiss)或缓存中有对应的地址但没有对应地址的具体数据(secondarymiss),则需要去内存中获取对应地址的具体数据,这种情况称为缓存未命中(cachemiss)。[0039] 由于缓存未命中情况下,缓存电路需要从内存中去读取对应地址的具体数据,而从上游到下游内存读取耗费的时间长并且需要消耗大量的功耗,同时,长时间的数据读取过程会造成下个访问请求阻塞,因此,缓存未命中(cachemiss)情况下会存在较大开销。[0040] 为了能在缓存未命中情况下不会阻塞上游继续运行,目前,缓存电路引入未命中状态处理寄存器(MissstatusHandlingRegisters,MSHR)电路来完成非阻塞缓存的实现。[0041] 在传统的MSHR电路中,当下游数据返回时,MSHR电路首先会将下游数据写进缓存的数据随机存取存储器(DataRAM)中,然后再从DataRAM中读取存储的下游数据返回给上游,实现对应数据请求的响应。[0042] 本发明人发现,传统的MSHR电路由于需要将下游数据首先写进DataRAM,然后再从DataRAM中读取,而数据读写会耗费较长的时间和大量功耗,从而造成数据请求响应效率较为低下和功耗的增加;再者,在某个地址对应的所有缓存未命中请求都访问缓存的情况下,该地址在缓存中是不允许被替换掉的,这样就需要缓存耗费额外的容量去记录该地址对应所有请求的状态,从而降低该段时间段缓存的容量;另外,当同一个地址的数据被不同的设备同时访问时,即在MSHR电路内有多个同地址的请求时,传统方式需要访问DataRAM多次,从而带来功耗的浪费;最后,现有的MSHR电路对于primarymiss和secondarymiss是分开管理的,例如,在MSHR电路中开了3个primarymiss和7个secondarymiss的硬件资源,这样可能会因为硬件资源不够灵活造成某些场景下的性能损失。[0043] 基于上述问题,本发明人设计一种数据请求处理电路、方法、及其缓存电路和处理器,在下游数据返回时,本方案直接将返回的下游数据传输给上游,并且将下游数据关联的目标数据请求信息也返回给上游,以对缓存未命中的目标数据请求进行响应,从而无需对DataRAM进行写入和读取,进而提高缓存未命中的数据请求的响应时间和功耗;由于在对目标数据请求响应过程中,不需要将下游数据写入在缓存的DataRAM中,因此,不会耗费缓存的额外容量;由于本方案将下游数据关联的目标数据请求信息一并返回给上游,因此,下游数据关联的所有数据请求均一次性处理,进而无需访问多次,降低访问功耗;另外,由于本方案不需要对primarymiss和secondarymiss分开管理,因此,能够更好地利用硬件的灵活性。[0044] 基于上述思路,本申请提供一种数据请求处理电路,如图1所示,该数据请求处理电路包括下游数据处理模块10、数据请求管理模块20以及上游管理模块30,请参照图1所示例的本方案的一种电路连接方式,该下游数据处理模块10与该上游管理模块30电连接,该数据请求管理模块20与该上游管理模块30电连接,该上游管理模块30可与上游设备A电连接。其中,上游下游设备是基于信息流向进行区分的,例如,一个数据请求过程中,上游设备发起数据请求,然后根据数据请求访问缓存,若缓存未命中,则访问内存,内存返回数据请求对应的数据,在这个过程中,内存即称为下游,内存基于数据请求/数据访问返回的数据即称为下游数据,发起数据请求/数据访问的设备即称为上游设备,其中,上游设备可具体为:用户终端、服务器、计算机等等。[0045] 上述设计的数据请求处理电路,该下游数据处理模块10用于在得到目标下游数据时,直接将获取的目标下游数据传输给上游管理模块30,该目标下游数据是指目标数据请求在缓存未命中情况下,从内存中获取的目标数据请求对应的数据,其中,该目标数据请求可以是目标地址访问请求等等。[0046] 在上述情况下,数据请求管理模块20用于将目标下游数据关联的目标数据请求信息传输给上游管理模块30,其中,一般情况下,数据请求管理模块20中可同时存在有多个缓存未命中的数据请求,因此,当目标下游数据返回时,数据请求管理模块20需要基于返回的目标下游数据在多个缓存未命中的数据请求找到目标下游数据对应的数据请求,从而获得目标下游数据关联的目标数据请求信息,然后将目标下游数据关联的目标数据请求信息传输给上游管理模块30。例如,数据请求管理模块20中存在有多个缓存未命中的数据请求:请求1、请求2、请求3以及请求4,假设基于返回的目标下游数据在多个缓存未命中的数据请求找到对应的数据请求为请求4,那么则将请求4的相关请求信息发送给上游管理模块30。[0047] 上游管理模块30将得到的目标下游数据和关联的目标数据请求信息传输给上游设备A,从而响应上游设备发起的目标数据请求。其中,作为一种可能的实施方式,目标下游数据和目标下游数据关联的目标数据请求信息可同时发送给上游管理模块30,上游管理模块30在接收到目标下游数据和目标下游数据关联的目标数据请求信息之后即可传输给上游设备A;作为又一种可能的实施方式,由于数据请求管理模块20需要先确定目标数据请求,然后再发送目标数据请求信息,因此,目标下游数据可能会先被上游管理模块30接收,在此情况下,上游管理模块30可对目标下游数据暂存,等待接收到目标下游数据关联的目标数据请求信息之后,才将目标下游数据和目标下游数据关联的目标数据请求信息一并传输给上游设备A。[0048] 上述设计的数据请求处理电路,本方案通过下游数据处理模块10在得到目标下游数据时,直接将获取的目标下游数据传输给上游管理模块30,并且通过数据请求管理模块20将目标下游数据关联的目标数据请求信息传输给上游管理模块30,通过上游管理模块30将得到的目标下游数据和关联的目标数据请求信息传输给上游设备A,从而响应目标数据请求,由于本方案是直接将目标下游数据传输给上游,因此,本方案设计的数据请求处理电路无需对DataRAM进行写入和读取,进而提高缓存未命中的数据请求的响应时间和功耗。[0049] 在本实施例的可选实施方式中,前文描述到数据请求管理模块20可根据在多个缓存未命中(缓存缺失)的数据请求中确定目标下游数据关联的目标数据请求。作为一种可能的实施方式,如图2所示,下游数据处理模块10可与该数据请求管理模块20电连接,在此基础上,下游数据处理模块10可将获取的目标下游数据的目标请求标识,然后将该目标下游数据的目标请求标识传输给数据请求管理模块20,数据请求管理模块20即可根据目标下游数据的目标请求标识,在多个缓存缺失的数据请求中查找具有相同请求标识的数据请求,从而获得目标下游数据关联的目标数据请求。[0050] 例如,依照前述的举例,假设请求1对应的请求标识为A1、请求2对应的请求标识为A2、请求3对应的请求标识为A3、请求4对应的请求标识为A4,下游数据处理模块10获取的目标下游数据的目标请求标识为A4,那么数据请求管理模块20即可根据目标请求标识A4查找到相同请求标识A4的请求4,从而获得目标下游数据关联的请求4。[0051] 作为一种可能的实施方式,该目标请求标识可包括目标请求携带的唯一标识,例如,前文描述的A1、A2、A3以及A4可为对应请求的唯一标识;作为又一种可能的实施方式,由于访问数据具有对应的访问地址这个特征信息,因此,该目标请求标识也可以为目标请求地址,数据请求管理模块20即可根据目标下游数据的目标请求地址,在多个缓存缺失的数据请求中查找具有相同请求地址的数据请求,从而获得目标下游数据关联的目标数据请求。[0052] 进一步地,在某些情况下,同一个地址的数据可能被不同的设备同时访问,此时,数据请求管理模块20中可能同时存在相同请求地址的多个请求,数据请求管理模块20根据目标下游数据的目标请求地址,在多个缓存缺失的数据请求中查找获得的具有相同请求地址的数据请求可能为多个,在此基础上,数据请求管理模块20可将查找到的与目标下游数据具有相同请求地址的多个数据请求均作为目标数据请求,从而发送给上游管理模块30。例如,数据请求管理模块20中存在请求1、请求2、请求3和请求4,请求1对应的地址为00,请求2和3对应的地址均为11,请求4对应的地址为01,而获取的目标下游数据对应的目标请求地址为11,那么则可确定目标下游数据关联的目标数据请求为请求2和请求3。[0053] 上述设计的实施方式,本方案通过数据请求管理模块20将目标下游数据关联的所有目标数据请求的信息均发送给上游管理模块30,从而使得目标下游数据关联的所有数据请求一次性处理,进而无需访问多次,进而降低访问功耗。[0054] 这里需要说明的是,当数据请求管理模块20将目标下游数据关联的目标数据请求信息传输给上游管理模块30后,数据请求管理模块20可对自身存储的数据请求进行状态更新,例如,数据请求管理模块20可将自身存储的目标数据请求信息删除,从而释放数据请求管理模块20的容量,进而为接收另外的缓存未命中的数据请求做好准备。[0055] 在本实施例的可选实施方式中,作为一种可能的实施方式,目标下游数据可通过专门的内存访问模块,基于目标下游数据的目标请求地址对内存进行访问读取,然后发送给下游数据处理模块10,下游数据处理模块10在得到目标下游数据后直接发送给上游管理模块30。[0056] 作为又一种可能的实施方式,下游数据处理模块10可自行对内存进行访问,从而读取内存获得目标下游数据。具体的,该数据请求管理模块20可将需要读取的目标下游数据的目标请求标识(如目标请求地址)发送给下游数据处理模块10,下游数据处理模块10可根据该目标请求标识(如目标请求地址)在内存中读取对应的目标下游数据,下游数据处理模块10在读取得到目标下游数据后,直接将目标下游数据发送给上游管理模块30。[0057] 这里需要说明的是,当目标下游数据通过下游数据处理模块10自行在内存中读取获得目标下游数据的情况下,下游数据处理模块10还是会将目标下游数据的目标请求标识反馈给数据请求管理模块20,从而触发数据请求管理模块20找到目标下游数据关联的目标数据请求。[0058] 在本实施例的可选实施方式中,如图3所示,该数据请求处理电路还可包括缓存模块40,该缓存模块40与下游数据处理模块10电连接。[0059] 上述设计的数据请求处理电路,该下游数据处理模块10还可将目标下游数据写入缓存模块40中。其中,该缓存模块40具体可为数据随机存取存储器(DataRAM)。[0060] 作为一种可能的实施方式,该下游数据处理模块10可在将目标下游数据发送给上游管理模块30之后,将目标下游数据写入缓存模块40中。作为又一种可能的实施方式,下游数据处理模块10可在将目标下游数据发送给上游管理模块30的同时,将目标下游数据写入缓存模块40中。具体写入时间,本方案可不作限定,可根据实际场景需要进行适应性调整。[0061] 这里需要说明的是,本方案虽然将目标下游数据写入缓存模块40中,在缓存未命中的情况下,上游管理模块30获取的目标下游数据并不是从缓存模块40中读取获得的,而是下游数据处理模块10直接发送获得的。本方案采用下游数据处理模块10将目标下游数据写入缓存模块40中存储,目的在于考虑到目标下游数据对应的目标请求下一次访问的情况,为了避免目标数据请求再次发生缓存未命中的情况,从而带来的内存读取功耗以及低效率,因此,本方案将目标下游数据写入缓存模块40中存储,从而使得目标数据请求在下一次访问时实现缓存命中,从而直接从缓存中读取,提高访问效率并降低功耗。[0062] 另外,由于不需要通过访问缓存模块40来获取目标下游数据,因此,当目标下游数据写入该缓存模块40之后,缓存模块40无需占用容量去记录对应的数据是否能够被替换,从而降低缓存模块40的容量损耗。[0063] 上述设计的数据请求处理电路,本方案首先通过下游数据处理模块10将目标下游数据直接发送给上游管理模块30,并且下游数据处理模块10将目标下游数据对应的目标请求标识传输给数据请求管理模块20,使得数据请求管理模块20在多个缓存未命中的数据请求中查找与目标请求标识相同的数据请求,获得目标下游数据关联的目标数据请求,然后数据请求管理模块20将目标下游数据关联的目标数据请求信息传输给上游管理模块30,从而通过上游管理模块30将目标下游数据和目标数据请求信息返回给上游设备A,从而对上游设备A的目标请求进行响应,使得上游设备A可以获得目标数据请求对应的访问数据。[0064] 基于本方案设计的数据请求处理电路,本方案直接将目标下游数据传输给上游,因此,本方案设计的数据请求处理电路无需对DataRAM进行写入和读取,进而提高缓存未命中的数据请求的响应时间和功耗;再者,通过数据请求管理模块20将目标下游数据关联的所有目标数据请求的信息均发送给上游管理模块30,从而使得目标下游数据关联的所有数据请求一次性处理,进而无需访问多次,进而降低访问功耗;另外,由于不需要通过访问缓存模块40来获取目标下游数据,因此,当目标下游数据写入该缓存模块40之后,缓存模块40无需占用容量去记录对应的数据是否能够被替换,从而降低缓存模块40的容量损耗。[0065] 在本实施例的可选实施方式中,本申请还提供一种缓存电路,该缓存电路包括前述任一可选实施方式描述的数据请求处理电路。[0066] 上述设计的缓存电路,由于其包含前述任一可选实施方式的数据请求处理电路,因此,该缓存电路在数据请求缓存未命中的情况下,直接将目标下游数据和目标下游数据关联的目标数据请求信息传输给上游,无需对DataRAM进行写入和读取,进而提高缓存未命中的数据请求的响应时间和功耗。[0067] 在本实施例的可选实施方式中,本申请还提供一种处理器,该处理器包括前文描述的缓存电路。[0068] 上述设计的处理器,由于其包含前述的缓存电路,因此,该处理器在数据请求缓存未命中的情况下,直接将目标下游数据和目标下游数据关联的目标数据请求信息传输给上游,无需对DataRAM进行写入和读取,进而提高缓存未命中的数据请求的响应时间和功耗。[0069] 在本实施例的可选实施方式中,本申请还提供一种数据请求处理方法,该数据请求处理方法可应用于计算设备,该计算设备包括但不限于前文描述的缓存电路、包含该缓存电路的处理器、包含该处理器的芯片、计算机、服务器等,如图4所示,该数据请求处理方法可通过如下方式实现,包括:[0070] 步骤S400:当根据目标数据请求信息在下游内存中读取获得目标下游数据时,直接将目标下游数据和所述目标下游数据关联的目标数据请求信息传输给上游设备。[0071] 在上述实施方式中,目标数据请求信息可包括目标数据请求的访问地址、访问标识等等,该目标数据请求是指缓存未命中的某一个数据请求,在缓存未命中的情况下,数据请求所需的访问数据需要从下游内存中读取获得,其中,下游内存中读取获得的方式可根据前文描述的基于专门的内存读取模块读取获得,或通过前文描述的下游数据处理模块读取获得。[0072] 本方案在根据目标数据请求信息在下游内存中读取获得目标下游数据时,直接将从下游内存中获得的目标下游数据以及目标下游数据关联的目标数据请求信息传输给上游设备,从而相应上游设备的目标数据请求。其中,直接表示的是,从下游内存中获得目标下游数据时,即刻将该目标下游数据传输给上游设备,而不会经过缓存或者存储。[0073] 上述设计的数据请求处理方法,本方案直接将返回的下游数据传输给上游,并且将下游数据关联的目标数据请求信息也返回给上游,以对缓存未命中的目标数据请求进行响应,从而无需对DataRAM进行写入和读取,进而提高缓存未命中的数据请求的响应时间和功耗。[0074] 在本实施例的可选实施方式中,在直接将所述目标下游数据和所述目标下游数据关联的目标数据请求信息传输给上游设备之前,本方案可获取目标下游数据对应的目标请求标识,然后根据目标请求标识在多个缓存未命中的数据请求中查找具有相同目标请求标识的数据请求,从而确定目标数据请求,进而获取目标数据请求信息。其中,该目标数据请求信息可包括目标数据请求地址、目标数据请求方等等。[0075] 在本实施例的可选实施方式中,本方案还可将目标下游数据存储在缓存模块中。[0076] 根据本申请的一些实施例,如图5所示,本申请提供一种电子设备5,包括:处理器501和存储器502,处理器501和存储器502通过通信总线503和/或其他形式的连接机构(未标出)互连并相互通讯,存储器502存储有处理器501可执行的计算机程序,当计算设备运行时,处理器501执行该计算机程序,以执行时执行前述实现方式中执行的方法,例如步骤S400:当根据目标数据请求信息在下游内存中读取获得目标下游数据时,直接将所述目标下游数据和所述目标下游数据关联的目标数据请求信息传输给上游设备,以响应所述目标数据请求。[0077] 本申请提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行前述执行的方法。[0078] 其中,存储介质可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(StaticRandomAccessMemory,简称SRAM),电可擦除可编程只读存储器(ElectricallyErasableProgrammableRead‑OnlyMemory,简称EEPROM),可擦除可编程只读存储器(ErasableProgrammableReadOnlyMemory,简称EPROM),可编程只读存储器(ProgrammableRed‑OnlyMemory,简称PROM),只读存储器(Read‑OnlyMemory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。[0079] 本申请提供一种计算机程序产品,该计算机程序产品在计算机上运行时,使得计算机执行前述的方法。[0080] 最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围,其均应涵盖在本申请的权利要求和说明书的范围当中。尤其是,只要不存在结构冲突,各个实施例中所提到的各项技术特征均可以任意方式组合起来。本申请并不局限于文中公开的特定实施例,而是包括落入权利要求的范围内的所有技术方案。
专利地区:上海
专利申请日期:2022-12-30
专利公开日期:2024-09-03
专利公告号:CN116010293B