CN116680089B - 一种访存控制结构、方法、内存系统、处理器及电子设备 - Google Patents
一种访存控制结构、方法、内存系统、处理器及电子设备 Download PDFInfo
- Publication number
- CN116680089B CN116680089B CN202310967718.7A CN202310967718A CN116680089B CN 116680089 B CN116680089 B CN 116680089B CN 202310967718 A CN202310967718 A CN 202310967718A CN 116680089 B CN116680089 B CN 116680089B
- Authority
- CN
- China
- Prior art keywords
- request
- accessed
- current
- target
- access
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000012545 processing Methods 0.000 claims abstract description 116
- 230000004044 response Effects 0.000 claims abstract description 39
- 230000008569 process Effects 0.000 claims abstract description 17
- 239000000872 buffer Substances 0.000 claims description 26
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/0625—Power saving in storage systems
-
- 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)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请涉及一种访存控制结构、方法、内存系统、处理器及电子设备,属于计算机领域。该访存控制结构包括:请求处理模块以及结果处理模块;请求处理模块,被配置为与内存连接,以及接收当前待访问请求,若所述当前待访问请求为之前接收的目标待访问请求的冗余请求,将所述当前待访问请求关联为所述目标待访问请求的副请求,并丢弃所述当前待访问请求;结果处理模块,被配置为与所述内存连接,以及在接收到所述内存响应所述目标待访问请求返回的应答数据后,基于所述应答数据对所述目标待访问请求关联的副请求进行处理。本申请能够在保证方案准确性和完整性的前提下,极大的减少对内存的访问,降低对内存访问的带宽要求。
Description
技术领域
本申请属于计算机领域,具体涉及一种访存控制结构、方法、内存系统、处理器及电子设备。
背景技术
目前,处理器的性能受限于“内存墙”的存在,如何减少处理器对内存带宽的需求,以及对内存延迟的容忍度已经成为处理器设计中必须考虑的问题。
相关技术中,会在处理器中加入一套内存子系统,包括一个独立的访存控制单元(通常包括一个较深的延迟缓冲器)和配套的一级或多级缓存cache。通过较深的延迟缓冲器缓冲足够多的未完成访存请求,以隐藏访问内存的延迟,再通过一级或多级缓存减少对最终内存的访问。
上述的这种实现方式可以缓解内存墙问题对处理器性能的限制,但还是存在很多可以优化的空间,比如,虽然可以通过缓存减少对最终内存的带宽需求,并减少访存延迟时间,但每次对缓存的访问也是一种延迟,并且会产生较大的功耗。
发明内容
鉴于此,本申请的目的在于提供一种访存控制结构、方法、内存系统、处理器及电子设备,以降低对内存访问的带宽要求以及节约功耗。
本申请的实施例是这样实现的:
第一方面,本申请实施例提供了一种访存控制结构,包括:请求处理模块以及结果处理模块;请求处理模块,被配置为与内存连接,以及接收当前待访问请求,若所述当前待访问请求为之前接收的目标待访问请求的冗余请求,将所述当前待访问请求关联为所述目标待访问请求的副请求,并丢弃所述当前待访问请求;结果处理模块,被配置为与所述内存连接,以及在接收到所述内存响应所述目标待访问请求返回的应答数据后,基于所述应答数据对所述目标待访问请求关联的副请求进行处理。
本申请实施例中,若当前待访问请求为之前接收的目标待访问请求的冗余请求,则丢弃当前待访问请求,这样可以减少对内存的访问,降低对内存访问的带宽要求和节约功耗,同时,将当前待访问请求关联为目标待访问请求的副请求,以便在接收到内存响应目标待访问请求返回的应答数据后,基于应答数据对目标待访问请求关联的副请求进行处理,这样即使将当前待访问请求丢弃后,也不会对发送当前待访问请求的源端造成影响,以保证方案的准确性和完整性。
结合第一方面实施例的一种可能的实施方式,所述访存控制结构还包括:延迟缓冲器,分别与所述请求处理模块和所述结果处理模块连接;所述请求处理模块还被配置为将接收的各个待访问请求的相关信息保存至所述延迟缓冲器,以及基于所述延迟缓冲器中保存的各个待访问请求的相关信息,判断所述当前待访问请求是否为冗余请求。
本申请实施例中,通过将接收的各个待访问请求的相关信息保存起来,以便于基于保存的各个待访问请求的相关信息,判断当前待访问请求是否为冗余请求,这样可以快速、准确判断出当前待访问请求是否为冗余请求。
结合第一方面实施例的一种可能的实施方式,所述相关信息包括访问类型、访问地址和访问数据长度;若所述当前待访问请求、所述目标待访问请求的访问类型为读请求,所述当前待访问请求的访问地址与所述目标待访问请求的访问地址相同,且当前待访问请求的数据访问长度小于等于所述目标待访问请求的数据访问长度;若所述当前待访问请求、所述目标待访问请求的访问类型为写请求,所述当前待访问请求的访问地址与所述目标待访问请求的访问地址相同,且当前待访问请求的数据访问长度与所述目标待访问请求的数据访问长度存在重叠。
本申请实施例中,通过比较当前待访问请求、目标待访问请求的访问类型、访问地址和访问数据长度的关系,如果满足上述关系,则可以确定当前待访问请求为目标待访问请求的冗余请求,便可以将当前待访问请求丢弃掉。
结合第一方面实施例的一种可能的实施方式,若所述当前待访问请求、所述目标待访问请求为写请求,所述请求处理模块,还被配置为基于所述当前待访问请求中的写数据更新所述目标待访问请求中的写数据。
本申请实施例中,如果当前待访问请求为写请求,除了将当前待访问请求关联为目标待访问请求的副请求外,还需要基于当前待访问请求中的写数据更新目标待访问请求中的写数据,这样可以保证方案的准确性。
结合第一方面实施例的一种可能的实施方式,所述相关信息还包括冗余请求关联信息,所述请求处理模块,还被配置为更新所述目标待访问请求的相关信息中的冗余请求关联信息,将所述当前待访问请求关联为所述目标待访问请求的副请求。
本申请实施例中,利用冗余请求关联信息来记录副请求,这样只需要对目标待访问请求的相关信息中的冗余请求关联信息进行更新,如将当前待访问请求的唯一标识加入目标待访问请求的冗余请求关联信息中,即可将当前待访问请求关联为目标待访问请求的副请求,能进一步提高处理效率。
结合第一方面实施例的一种可能的实施方式,所述请求处理模块还被配置为在判断当前待访问请求是否为冗余请求之前,将接收到的同一批次的多个待访问请求进行请求合并处理。
本申请实施例中,在判断当前待访问请求是否为冗余请求之前,先将接收到的同一批次的多个待访问请求进行请求合并处理,仅对合并剩余的待访问请求进行冗余请求的判断,这样可以减少需要判断是否为冗余请求的待访问请求的数量,从而可以提高效率。
第二方面,本申请实施例还提供了一种内存系统,包括内存和如上述第一方面实施例和/或结合第一方面实施例的任一种可能的实施方式提供访存控制结构,所述内存与所述访存控制结构连接。
第三方面,本申请实施例还提供了一种处理器,包括如上述的内存系统。
第四方面,本申请实施例还提供了一种电子设备,包括上述的处理器。
第五方面,本申请实施例还提供了一种访存控制方法,包括:接收当前待访问请求,若所述当前待访问请求为之前接收且未完成内存访问的目标待访问请求的冗余请求,将所述当前待访问请求关联为所述目标待访问请求的副请求,并丢弃所述当前待访问请求;在接收到所述内存响应所述目标待访问请求返回的应答数据后,基于所述应答数据对所述目标待访问请求关联的副请求进行处理。
结合第五方面实施例的一种可能的实施方式,所述方法还包括:基于事先保存的各个未完成内存访问的待访问请求的相关信息,判断所述当前待访问请求是否为冗余请求。
结合第五方面实施例的一种可能的实施方式,所述当前待访问请求包括同一批次的多个当前待访问请求;基于事先保存的各个未完成内存访问的待访问请求的相关信息,判断所述当前待访问请求是否为冗余请求,包括:对同一批次的多个当前待访问请求进行请求合并处理,得到剩余的当前待访问请求;基于事先保存的各个未完成内存访问的待访问请求的相关信息,依次判断各个剩余的当前待访问请求是否为冗余请求。
本申请的其他特征和优点将在随后的说明书阐述。本申请的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本申请的上述及其它目的、特征和优势将更加清晰。
图1示出了本申请实施例提供的一种访存控制结构与内存连接的结构示意图。
图2示出了本申请实施例提供的又一种访存控制结构与内存连接的结构示意图。
图3示出了本申请实施例提供的一种访存控制方法的流程示意图。
图4示出了本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。以下实施例可作为示例,用于更加清楚地说明本申请的技术方案,而不能以此来限制本申请的保护范围。本领域技术人员可以理解的是,在不相冲突的情况下,下述实施例及实施例中的特征可以相互结合。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中诸如“第一”、“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
再者,本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
在本申请实施例的描述中,除非另有明确的规定和限制,技术术语“连接”可以是直接电性连接,也可以是通过中间媒介间接电性连接。
本申请实施例提供了一种访存控制结构、方法、内存系统、处理器及电子设备,以降低对内存的访问,进一步缓解内存墙问题。下面将结合图1对本申请实施例提供的访存控制结构进行说明。该访存控制结构包括:请求处理模块、结果处理模块。其中,该访存控制结构被配置为与内存连接,具体为请求处理模块、结果处理模块均被配置为与内存连接。
请求处理模块被配置为接收当前待访问请求,若当前待访问请求为之前接收的目标待访问请求的冗余请求,将当前待访问请求关联为目标待访问请求的副请求,并丢弃当前待访问请求,这样可以减少对内存的访问,降低对内存访问的带宽要求。其中,若多条待访问请求的访问类型相同,访问地址相同、且访问数据长度存在重叠,则这多条待访问请求互为冗余请求。
副请求是相对于主请求而言的,若当前待访问请求为目标待访问请求的冗余请求,则将当前待访问请求关联为目标待访问请求的副请求,此时目标待访问请求即为主请求。若当前待访问请求为目标待访问请求的副请求,则表征当前待访问请求与目标待访问请求为冗余请求,即副请求等于冗余请求。
结果处理模块被配置为在接收到内存响应目标待访问请求返回的应答数据后,基于应答数据对目标待访问请求关联的副请求进行处理,这样即使将当前待访问请求丢弃后,也不会对发送当前待访问请求的源端造成影响,以保证方案的准确性和完整性。
采用本申请实施例提供的访存控制结构,能够在保证方案准确性和完整性的前提下,极大的减少对内存的访问,降低对内存访问的带宽要求。请求处理模块会正常响应接收到的每一条非冗余的待访问请求向内存发起访问,以进行正常的内存访问。当待访问请求为冗余请求时,则不向内存发起访问,从而减少了对内存的访问。
一种可能的实施方式下,访存控制结构还包括:延迟缓冲器,该延迟缓冲器分别与请求处理模块和结果处理模块连接。请求处理模块还被配置为将接收的各个待访问请求的相关信息保存至延迟缓冲器。延迟缓冲器被配置为保存各个待访问请求的相关信息。请求处理模块每当接收到一条待访问请求时,会将当前待访问请求的相关信息保存到延迟缓冲器中。
其中,相关信息可以用于冗余请求判断,例如,相关信息可以包括访问类型(读请求或写请求)访问地址和访问数据长度。在判断待访问请求1是否为待访问请求2的冗余请求时,需要判断二者的访问类型、访问地址以及访问数据长度等信息。例如,如果待访问请求2的访问类型与待访问请求1访问类型的相同、待访问请求2的访问地址与待访问请求1的访问地址相同,以及待访问请求2的访问数据长度与待访问请求1的访问数据长度存在重叠,则认为待访问请求2为待访问请求1的冗余请求。
一种可能的实施方式下,请求处理模块还可以被配置为基于延迟缓冲器中保存的各个待访问请求的相关信息,判断当前待访问请求是否为冗余请求。请求处理模块每当接收到一条待访问请求时,除了会将当前待访问请求的相关信息保存到延迟缓冲器中外,还会基于延迟缓冲器中保存的各个待访问请求的相关信息,判断当前待访问请求是否为冗余请求。如果当前待访问请求不为冗余请求,则正常发起对内存的访问,如果当前待访问请求为冗余请求,则丢弃当前待访问请求,并将当前待访问请求关联为目标待访问请求的副请求。
在一些实施方式下,可能会涉及地址转换,如虚实地址转换,因此,请求处理模块还可以被配置为先对待访问请求的访问地址进行转换,再以此判断是否为冗余请求。
为了更好理解,下面举例进行说明,假设在0时刻,请求处理模块接收到首条待访问请求0,由于是首条待访问请求,因此不可能为冗余请求,则正常发起对内存的访问,并且将待访问请求0的相关信息保存至延迟缓冲器。在1时刻,请求处理模块接收到第2条待访问请求1,判断待访问请求1是否为冗余请求,如果待访问请求1不为冗余请求,则正常发起对内存的访问,如果待访问请求1为待访问请求0的冗余请求,则丢弃待访问请求1,并将待访问请求1关联为待访问请求0的副请求,并且将待访问请求1的相关信息保存至延迟缓冲器。在2时刻,请求处理模块接收到第3条待访问请求2,判断待访问请求2是否为冗余请求,如果待访问请求2不为冗余请求,则正常发起对内存的访问,如果待访问请求2为待访问请求1(或待访问请求0)的冗余请求,则丢弃待访问请求2,并将待访问请求2关联为待访问请求0的副请求,并且将待访问请求2的相关信息保存至延迟缓冲器。以此类推。可以理解的是,由于待访问请求1已经丢弃,且为待访问请求0的副请求,因此,即便待访问请求2为待访问请求1的冗余请求,也只可能将其关联为待访问请求0的副请求。
由于当前待访问请求为目标待访问请求的冗余请求,则二者的访问类型相同、访问地址相同以及访问数据长度存在重叠。具体为,若当前待访问请求、目标待访问请求为读请求,当前待访问请求的访问地址与目标待访问请求的访问地址相同,且当前待访问请求的数据访问长度小于等于目标待访问请求的数据访问长度;若当前待访问请求、目标待访问请求为写请求,当前待访问请求的访问地址与目标待访问请求的访问地址相同,且当前待访问请求的数据访问长度与目标待访问请求的数据访问长度存在重叠。对于重叠可以是部分重叠或完全重叠,例如,可以是当前待访问请求的数据访问长度小于等于目标待访问请求的数据访问长度,或者,当前待访问请求的数据访问长度大于等于目标待访问请求的数据访问长度。
需要说明的是,上述的冗余处理过程并不等同于相关技术中对待访问请求的合并,通常请求合并是指对同一批次(如同一时刻)的多个待访问请求进行请求合并处理。而本申请中的冗余处理过程为对不同批次(如不同时刻)的多个待访问请求进行请求处理。
作为一种可选的实施方式,请求处理模块还被配置为在对不同批次的待访问请求进行冗余处理之前,先将接收到的同一批次的多个待访问请求进行请求合并处理。在该种实施方式下,需要向请求处理模块发送同一批次的多个待访问请求,请求处理模块在接收到同一批次的多个待访问请求后,先对其进行请求合并处理,得到剩余的待访问请求,之后依次判断各个剩余的待访问请求是否为冗余请求,然后根据是否为冗余请求做不同的处理。
请求处理模块接收到的当前待访问请求可以是写请求,也可以是读请求。若当前待访问请求、目标待访问请求为写请求,请求处理模块还被配置为基于当前待访问请求中的写数据更新目标待访问请求中的写数据。基于前述可知,当前待访问请求、目标待访问请求的访问地址相同,且数据访问长度存在重叠,其重叠可以是:目标待访问请求的数据访问长度大于当前待访问请求的数据访问长度,也可以是目标待访问请求的数据访问长度小于等于当前待访问请求的数据访问长度。
当目标待访问请求的数据访问长度小于等于当前待访问请求的数据访问长度,基于当前待访问请求中的写数据更新目标待访问请求中的写数据的实现方式可以是直接将当前待访问请求中的写数据替换目标待访问请求中的写数据即可。当目标待访问请求的数据访问长度大于当前待访问请求的数据访问长度,基于当前待访问请求中的写数据更新目标待访问请求中的写数据的实现方式可以是,可以是直接将当前待访问请求中的写数据替换目标待访问请求中的写数据中与其存在重叠的部分即可,保留目标待访问请求中的写数据中未重叠部分。例如,目标待访问请求中的写数据的长度为1~5bit,当前待访问请求中的写数据的长度为1~3bit,则用当前待访问请求中的写数据替换掉目标待访问请求中的写数据中的1~3bit,保留剩余的4~5bit的数据。
一种实施方式下,相关信息还可以用于表征是否有关联的冗余请求,该种实施方式下,相关信息除了包含上述的访问类型、访问地址和访问数据长度外,还可以包含冗余请求关联信息,冗余请求关联信息用于记录待访问请求所关联的副请求。请求处理模块还可以被配置为更新目标待访问请求的相关信息中的冗余请求关联信息,将当前待访问请求关联为目标待访问请求的副请求。例如,冗余请求关联信息可以包括2个关键字段,如用字段1、字段2表示,其中,字段1表示是否有关联的副请求,如字段1的值为“1”表示有副请求,如字段1的值为“0”表示没有副请求。也可以用其他数值或字母来表示是否有关联的副请求,并不限于上述的“1”或“0”。字段2表示副请求的唯一标识,当字段1表示没有关联的副请求,字段2可以为空。
每条待访问请求都有各自的唯一标识,例如,假设当前待访问请求的唯一标识用N1表示,目标待访问请求的唯一标识用M1表示。由于当前待访问请求为目标待访问请求的冗余请求,所以在更新目标待访问请求的冗余请求关联信息时,需要将目标待访问请求的字段1的值更新为“1”,在字段2中添加当前待访问请求的唯一标识N1。如果在当前访问请求之前,目标待访问请求存在其他副请求,则目标待访问请求的字段1的值为“1”,在更新目标待访问请求的冗余请求关联信息时,直接将当前待访问请求的唯一标识N1添加在目标待访问请求的字段2中即可。
其中,每条待访问请求可以有多条副请求,所以字段2中可以包括多个副请求的唯一标识。
在判断当前待访问请求是否为之前接收到的待访问请求的冗余请求时,需要之前接收到的待访问请求未完成内存访问。由于请求处理模块接收到的当前待访问请求可以是写请求,也可以是读请求,对于读请求,未完成内存访问可以是指未将待访问请求的相关信息中的执行状态更新为完成,对于写请求未完成内存访问可以是指未发起内存访问(待访问请求处于缓存队列中,排队等待内存访问)。在该种实施方式下,每条待访问请求的相关信息还可以用于表征待访问请求是否执行完成。相关信息还可以包括执行状态,当完成内存访问,会将相关信息中的执行状态更新为完成。例如,可以用“1”表示执行完成,用“0”表示未执行完成。
可以理解的是,访存控制结构可以包括缓存队列用于缓存请求处理模块发送的用于对内存进行访问的待访问请求,请求处理模块在接收到非冗余请求的待访问请求,会将其缓存至缓存队列,内存会依次响应缓存队列中的待访问请求。如果当前待访问请求是写请求,在判读当前待访问请求是否为之前接收到的待访问请求的冗余请求时,只能基于缓存队列中缓存的未发起内存访问的待访问请求的相关信息,判断当前待访问请求是否为冗余请求,而非是基于所有待访问请求的相关信息,判断当前待访问请求是否为冗余请求。
一种实施方式下,请求处理模块可以是一个相对复杂的模块,一种可选实施方式下,请求处理模块可以由多个结构相对简单的单元模块构成,例如,包括请求处理单元、冗余请求捕获单元、冗余请求处理单元;其中,请求处理单元分别与延迟缓冲器和冗余请求捕获单元连接,冗余请求捕获单元还与冗余请求处理单元、延迟缓冲器连接,冗余请求处理单元被配置为与内存连接,如图2所示。通过赋予不同单元模块不同功能,这样可以简化请求处理模块的设计难度,此外,也可以降低维修成本,例如,当某个单元模块异常时,仅需要更换异常的单元模块即可,而无需更换整个请求处理模块。请求处理单元被配置为接收待访问请求,并将待访问请求的相关信息保存至所述延迟缓冲器,以及将接收到的待访问请求发送给冗余请求捕获单元。
可选地,请求处理单元还可以被配置为将接收到的同一批次的多个待访问请求进行请求合并处理,之后再将剩余的待访问请求的相关信息保存至所述延迟缓冲器,以及将剩余的待访问请求发送给冗余请求捕获单元。
可选地,请求处理单元还可以被配置为对接收的待访问请求的访问地址进行地址转换处理,如虚实转换。
冗余请求捕获单元被配置为基于延迟缓冲器中保存的各个待访问请求的相关信息,判断当前待访问请求是否为冗余请求,如果当前待访问请求为目标待访问请求的冗余请求,更新目标待访问请求的相关信息中的冗余请求关联信息,将当前待访问请求关联为目标待访问请求的副请求,并将当前待访问请求以及冗余请求的判断结果下发给冗余请求处理单元。
冗余请求处理单元被配置为根据当前待访问请求是否为冗余请求以及请求类型做相应处理,如果当前待访问请求为冗余请求,将当前待访问请求丢弃,如果当前待访问请求为写请求,则还会基于当前待访问请求中的写数据更新目标待访问请求中的写数据。如果当前待访问请求不为冗余请求,则正常向内存发起访问。
结果处理模块被配置为在接收到内存响应目标待访问请求返回的应答数据后,基于应答数据对目标待访问请求关联的副请求进行处理,这样即使将当前待访问请求丢弃后,也不会对发送当前待访问请求的源端造成影响,以保证方案的准确性和完整性。
可选地,结果处理模块被配置为在接收到内存响应待访问请求返回的应答数据后,根据该待访问请求有无副请求以及访问类型做相应处理。如果该待访问请求无副请求,则处理完该待访问请求的应答数据即完成,如果该待访问请求有副请求,则处理完该待访问请求的应答数据后,还需要对关联的副请求进行处理。以及结果处理模块还被配置为更新待访问请求的相关信息中的执行状态,当结果处理模块处理完该待访问请求的应答数据后,会将延迟缓冲器中保存的该待访问请求的相关信息中的执行状态更新为完成,以表征完成内存访问。
结果处理模块可以基于延迟缓冲器中保存的该待访问请求的相关信息获悉该待访问请求有无副请求。
在对应答数据进行处理时,会根据待访问请求的访问类型做不同处理,例如,如果待访问请求为写请求,则直接将内存返回的应答数据(如表征写入成功),返回给发起待访问请求的源端。如果待访问请求为读请求,还可以对内存返回的应答数据(如读数据)进行指定处理(如格式转换、算术运算等),并将处理结果返回给发起待访问请求的源端。
其中,不同的待访问读请求的指定处理可以不同,在该种实施方式下,相关信息还可以包括数据处理描述信息,用于指示对数据进行怎么样的处理,如格式转换、算术运算等。结果处理模块被配置为基于目标待访问请求关联的副请求对应的处理描述信息对应答数据进行处理,并将处理结果发送给发送目标待访问请求关联的副请求的源端。
本申请实施例还提供了一种访存控制方法,该访存控制方法可以应用于上述的访存控制结构。下面将结合图3对其进行说明。
S1:接收当前待访问请求,若所述当前待访问请求为之前接收且未完成内存访问的目标待访问请求的冗余请求,将所述当前待访问请求关联为所述目标待访问请求的副请求,并丢弃所述当前待访问请求。
可以是上述的请求处理模块接收当前待访问请求,若当前待访问请求为之前接收且未完成内存访问的目标待访问请求的冗余请求,将当前待访问请求关联为目标待访问请求的副请求,并丢弃当前待访问请求。
一种实施方式下,该访存控制方法还包括:基于事先保存的各个未完成内存访问的待访问请求的相关信息,判断当前待访问请求是否为冗余请求。若当前待访问请求包括同一批次的多个当前待访问请求,则基于事先保存的各个未完成内存访问的待访问请求的相关信息,判断当前待访问请求是否为冗余请求的过程可以是:对同一批次的多个当前待访问请求进行请求合并处理,得到剩余的当前待访问请求;基于事先保存的各个未完成内存访问的待访问请求的相关信息,依次判断各个剩余的当前待访问请求是否为冗余请求。
相关信息可以包括访问类型、访问地址和访问数据长度,在判断当前待访问请求是否为目标待访问请求的冗余请求时,可以是判断当前待访问请求与目标待访问请求的访问类型、访问地址、访问数据长度的关系,以此来判断当前待访问请求是否为目标待访问请求的冗余请求。
可选地,该访存控制方法还包括保存接收到的各个待访问请求的相关信息,例如,可以将接收的各个待访问请求的相关信息保存至延迟缓冲器。
可选地,相关信息还可以包括冗余请求关联信息,若当前待访问请求为之前接收且未完成内存访问的目标待访问请求的冗余请求后,该访存控制方法还包括更新目标待访问请求的相关信息中的冗余请求关联信息,将当前待访问请求关联为目标待访问请求的副请求。
S2:在接收到所述内存响应所述目标待访问请求返回的应答数据后,基于所述应答数据对所述目标待访问请求关联的副请求进行处理。
可以是上述的结果处理模块在接收到所述内存响应所述目标待访问请求返回的应答数据后,基于所述应答数据对所述目标待访问请求关联的副请求进行处理。
可选地,相关信息还可以包括:数据处理描述信息,在基于应答数据对目标待访问请求关联的副请求进行处理时,可以是基于目标待访问请求关联的副请求对应的处理描述信息对应答数据进行处理,并将处理结果发送给发送目标待访问请求关联的副请求的源端。
可选地,相关信息还可以包括:执行状态,在完成对应答数据的处理后,该访存控制方法还可以包括,更新相关信息中的执行状态,将其更新为执行完成。
本申请实施例还提供了一种内存系统,该内存系统包括内存和上述的访存控制结构,内存和访存控制结构连接。访存控制结构被配置为接收当前待访问请求,若当前待访问请求为之前接收的目标待访问请求的冗余请求,将当前待访问请求关联为目标待访问请求的副请求,并丢弃当前待访问请求,以及在接收到内存响应目标待访问请求返回的应答数据后,基于应答数据对目标待访问请求关联的副请求进行处理。
其中,该内存可以是包含多级缓存的内存,如包含三级缓存的内存;该内存也可以是包括一组缓存(cache)和存储器的内存,该组缓存可以包含三级缓存。
内存系统实施例所提供的访存控制结构,其实现原理及产生的技术效果和前述访存控制结构实施例相同,为简要描述,内存系统实施例部分未提及之处,可参考前述访存控制结构实施例中相应内容。
本申请实施例还提供了一种处理器,该处理器包括上述的内存系统。处理器可以是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)、微处理器等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。或者该处理器也可以是任何常规的处理器等。
如图4所示,图4示出了本申请实施例提供的一种电子设备的结构框图。所述电子设备包括:收发器、存储器、通讯总线以及上述的处理器。
所述收发器、所述存储器、处理器各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。其中,收发器用于收发数据。存储器用于存储计算机程序或者软件功能模块,计算机程序或者软件功能模块包括至少一个可以软件或固件(Firmware)的形式存储于所述存储器中或固化在所述电子设备的操作系统(Operating System,OS)中的软件功能模块。所述处理器,用于执行存储器中存储的软件功能模块或计算机程序。
其中,存储器可以是,但不限于,随机存取存储器(RandomAccessMemory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。
处理器可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit, CPU)、网络处理器(NetworkProcessor,NP)、微处理器等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。或者该处理器也可以是任何常规的处理器等。
其中,上述的电子设备,包括但不限于手机、平板、电脑、车载设备、服务器等。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (12)
1.一种访存控制结构,其特征在于,包括:
请求处理模块,被配置为与内存连接,以及接收当前待访问请求,若所述当前待访问请求为之前接收的目标待访问请求的冗余请求,将所述当前待访问请求关联为所述目标待访问请求的副请求,并丢弃所述当前待访问请求;
结果处理模块,被配置为与所述内存连接,以及在接收到所述内存响应所述目标待访问请求返回的应答数据后,基于所述应答数据对所述目标待访问请求关联的副请求进行处理;
其中,所述请求处理模块通过如下方式判断所述当前待访问请求是否为所述目标待访问请求的冗余请求:
若所述当前待访问请求、所述目标待访问请求的访问类型为读请求,所述当前待访问请求的访问地址与所述目标待访问请求的访问地址相同,且当前待访问请求的数据访问长度小于等于所述目标待访问请求的数据访问长度,则所述当前待访问请求为所述目标待访问请求的冗余请求;
若所述当前待访问请求、所述目标待访问请求的访问类型为写请求,则所述当前待访问请求的访问地址与所述目标待访问请求的访问地址相同,且当前待访问请求的数据访问长度与所述目标待访问请求的数据访问长度存在重叠,则所述当前待访问请求为所述目标待访问请求的冗余请求。
2.根据权利要求1所述的访存控制结构,其特征在于,所述访存控制结构还包括:延迟缓冲器,分别与所述请求处理模块和所述结果处理模块连接;
所述请求处理模块还被配置为将接收的各个待访问请求的相关信息保存至所述延迟缓冲器,以及基于所述延迟缓冲器中保存的各个待访问请求的相关信息,判断所述当前待访问请求是否为冗余请求。
3.根据权利要求2所述的访存控制结构,其特征在于,所述相关信息包括访问类型、访问地址和访问数据长度。
4.根据权利要求1所述的访存控制结构,其特征在于,若所述当前待访问请求、所述目标待访问请求为写请求,所述请求处理模块,还被配置为基于所述当前待访问请求中的写数据更新所述目标待访问请求中的写数据。
5.根据权利要求2所述的访存控制结构,其特征在于,所述相关信息还包括用于记录待访问请求所关联的副请求的冗余请求关联信息,所述请求处理模块,还被配置为更新所述目标待访问请求的相关信息中的冗余请求关联信息,将所述当前待访问请求关联为所述目标待访问请求的副请求。
6.根据权利要求1-5任一项所述的访存控制结构,其特征在于,所述请求处理模块还被配置为在判断所述当前待访问请求是否为冗余请求之前,将接收到的同一批次的多个待访问请求进行请求合并处理。
7.一种内存系统,其特征在于,包括内存和如权利要求1-6任一项所述的访存控制结构,所述内存与所述访存控制结构连接。
8.一种处理器,其特征在于,包括如权利要求7所述的内存系统。
9.一种电子设备,其特征在于,包括如权利要求8所述的处理器。
10.一种访存控制方法,其特征在于,包括:
接收当前待访问请求,若所述当前待访问请求为之前接收且未完成内存访问的目标待访问请求的冗余请求,将所述当前待访问请求关联为所述目标待访问请求的副请求,并丢弃所述当前待访问请求;
在接收到所述内存响应所述目标待访问请求返回的应答数据后,基于所述应答数据对所述目标待访问请求关联的副请求进行处理;
其中,通过如下方式判断所述当前待访问请求是否为所述目标待访问请求的冗余请求:
若所述当前待访问请求、所述目标待访问请求的访问类型为读请求,所述当前待访问请求的访问地址与所述目标待访问请求的访问地址相同,且当前待访问请求的数据访问长度小于等于所述目标待访问请求的数据访问长度,则所述当前待访问请求为所述目标待访问请求的冗余请求;
若所述当前待访问请求、所述目标待访问请求的访问类型为写请求,则所述当前待访问请求的访问地址与所述目标待访问请求的访问地址相同,且当前待访问请求的数据访问长度与所述目标待访问请求的数据访问长度存在重叠,则所述当前待访问请求为所述目标待访问请求的冗余请求。
11.根据权利要求10所述的访存控制方法,其特征在于,所述方法还包括:
基于事先保存的各个未完成内存访问的待访问请求的相关信息,判断所述当前待访问请求是否为冗余请求。
12.根据权利要求11所述的访存控制方法,其特征在于,所述当前待访问请求包括同一批次的多个当前待访问请求;基于事先保存的各个未完成内存访问的待访问请求的相关信息,判断所述当前待访问请求是否为冗余请求,包括:
对同一批次的多个当前待访问请求进行请求合并处理,得到剩余的当前待访问请求;
基于事先保存的各个未完成内存访问的待访问请求的相关信息,依次判断各个剩余的当前待访问请求是否为冗余请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310967718.7A CN116680089B (zh) | 2023-08-03 | 2023-08-03 | 一种访存控制结构、方法、内存系统、处理器及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310967718.7A CN116680089B (zh) | 2023-08-03 | 2023-08-03 | 一种访存控制结构、方法、内存系统、处理器及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116680089A CN116680089A (zh) | 2023-09-01 |
CN116680089B true CN116680089B (zh) | 2023-11-14 |
Family
ID=87785904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310967718.7A Active CN116680089B (zh) | 2023-08-03 | 2023-08-03 | 一种访存控制结构、方法、内存系统、处理器及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116680089B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103838513A (zh) * | 2012-11-22 | 2014-06-04 | 深圳市中兴微电子技术有限公司 | 内存读写的动态控制方法及装置 |
CN104346285A (zh) * | 2013-08-06 | 2015-02-11 | 华为技术有限公司 | 内存访问处理方法、装置及系统 |
CN106796542A (zh) * | 2014-08-13 | 2017-05-31 | Netapp股份有限公司 | 合并存储操作 |
CN107710172A (zh) * | 2015-06-02 | 2018-02-16 | 华为技术有限公司 | 存储器的访问系统及方法 |
CN110275841A (zh) * | 2019-06-20 | 2019-09-24 | 上海燧原智能科技有限公司 | 访问请求处理方法、装置、计算机设备和存储介质 |
CN111753065A (zh) * | 2020-03-27 | 2020-10-09 | 北京沃东天骏信息技术有限公司 | 请求响应方法、系统、计算机系统和可读存储介质 |
CN114416397A (zh) * | 2021-12-30 | 2022-04-29 | 上海阵量智能科技有限公司 | 一种芯片、访问内存的方法及计算机设备 |
CN116501249A (zh) * | 2023-03-30 | 2023-07-28 | 华中科技大学 | 一种减少gpu内存重复数据读写的方法及相关设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11614893B2 (en) * | 2010-09-15 | 2023-03-28 | Pure Storage, Inc. | Optimizing storage device access based on latency |
US9928149B2 (en) * | 2014-08-29 | 2018-03-27 | Cynny Space Srl | Systems and methods to maintain data integrity and redundancy in a computing system having multiple computers |
KR20170136382A (ko) * | 2016-06-01 | 2017-12-11 | 주식회사 맴레이 | 메모리 컨트롤러, 그리고 이를 포함하는 메모리 모듈 및 프로세서 |
KR20230000690A (ko) * | 2021-06-25 | 2023-01-03 | 삼성전자주식회사 | 적응적인 기록/독출 제어를 수행하는 스토리지 장치 및 스토리지 장치의 동작방법 |
-
2023
- 2023-08-03 CN CN202310967718.7A patent/CN116680089B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103838513A (zh) * | 2012-11-22 | 2014-06-04 | 深圳市中兴微电子技术有限公司 | 内存读写的动态控制方法及装置 |
CN104346285A (zh) * | 2013-08-06 | 2015-02-11 | 华为技术有限公司 | 内存访问处理方法、装置及系统 |
CN106796542A (zh) * | 2014-08-13 | 2017-05-31 | Netapp股份有限公司 | 合并存储操作 |
CN107710172A (zh) * | 2015-06-02 | 2018-02-16 | 华为技术有限公司 | 存储器的访问系统及方法 |
CN110275841A (zh) * | 2019-06-20 | 2019-09-24 | 上海燧原智能科技有限公司 | 访问请求处理方法、装置、计算机设备和存储介质 |
CN111753065A (zh) * | 2020-03-27 | 2020-10-09 | 北京沃东天骏信息技术有限公司 | 请求响应方法、系统、计算机系统和可读存储介质 |
CN114416397A (zh) * | 2021-12-30 | 2022-04-29 | 上海阵量智能科技有限公司 | 一种芯片、访问内存的方法及计算机设备 |
CN116501249A (zh) * | 2023-03-30 | 2023-07-28 | 华中科技大学 | 一种减少gpu内存重复数据读写的方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116680089A (zh) | 2023-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110275841B (zh) | 访问请求处理方法、装置、计算机设备和存储介质 | |
US9350826B2 (en) | Pre-fetching data | |
CN111737564B (zh) | 一种信息查询方法、装置、设备及介质 | |
US20100017572A1 (en) | Transactional memory support for non-coherent shared memory systems using selective write through caches | |
US20090158001A1 (en) | Accessing control and status register (csr) | |
CN111626858A (zh) | 冲正交易的处理方法、装置、电子设备和计算机可读介质 | |
US11256444B2 (en) | Method for processing read/write data, apparatus, and computer readable storage medium thereof | |
US8190821B2 (en) | Cache control apparatus, information processing apparatus, and cache control method | |
CN113535425A (zh) | 一种数据发送方法、装置、电子设备及存储介质 | |
CN116680089B (zh) | 一种访存控制结构、方法、内存系统、处理器及电子设备 | |
US20100250651A1 (en) | Data access method for making asynchronous request to block device | |
CN114036195A (zh) | 一种数据请求处理方法、装置、服务器和存储介质 | |
CN115114042A (zh) | 存储数据访问方法、装置、电子设备和存储介质 | |
CN111125168B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
US8856457B2 (en) | Information processing system and a system controller | |
CN116107771B (zh) | 缓存状态记录方法、数据访问方法及相关装置、设备 | |
US20100146200A1 (en) | Non-snoop read/write operations in a system supporting snooping | |
CN108664417B (zh) | 一种目录更新方法及装置 | |
CN107977282B (zh) | 一种SPI-Nand读取数据页的方法及装置 | |
US20140136796A1 (en) | Arithmetic processing device and method for controlling the same | |
CN117539802B (zh) | 一种缓存操作方法、系统以及相关装置 | |
CN118151851B (zh) | 固态硬盘读取方法、装置、设备及可读存储介质 | |
CN116049031B (zh) | 数据处理方法、装置、电子设备和存储介质 | |
US11914865B2 (en) | Methods and systems for limiting data traffic while processing computer system operations | |
US20240311321A1 (en) | Multi-core system and reading method |
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 | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: A memory access control structure, method, memory system, processor, and electronic device Granted publication date: 20231114 Pledgee: Shanghai Rural Commercial Bank Co.,Ltd. Qingpu sub branch Pledgor: Shanghai Denglin Technology Co.,Ltd. Registration number: Y2024310000617 |
|
PE01 | Entry into force of the registration of the contract for pledge of patent right |