CN112559389A - 存储控制装置、处理装置、计算机系统和存储控制方法 - Google Patents
存储控制装置、处理装置、计算机系统和存储控制方法 Download PDFInfo
- Publication number
- CN112559389A CN112559389A CN201910913440.9A CN201910913440A CN112559389A CN 112559389 A CN112559389 A CN 112559389A CN 201910913440 A CN201910913440 A CN 201910913440A CN 112559389 A CN112559389 A CN 112559389A
- Authority
- CN
- China
- Prior art keywords
- write
- memory
- storage control
- write access
- access requests
- 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
- 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/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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- 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/0877—Cache access modes
-
- 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/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- 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/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1054—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
-
- 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/502—Control mechanisms for virtual memory, cache or TLB using adaptive policy
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
公开了一种存储控制装置、存储控制方法、处理装置以及计算机系统。存储控制装置包括:地址检测单元,适于检测依次到来的写访问请求映射的物理地址是否发生跳转;逻辑控制单元,适于在高速缓冲存储器未命中且依次到来的多个写访问请求映射的物理地址未发生跳转的情况下采用非写分配策略,其中,在非写分配策略下,若依次到来的多个写访问请求映射的物理地址连续发生跳转的次数小于预设次数,则逻辑控制单元维持采用非写分配策略,预设次数大于1。本公开实施例在依次到来的写访问请求所映射的物理地址连续发生跳转的次数小于预设次数时能够维持采用非写分配策略,避免在处理访问几率低的信息时选择写分配策略,增强了计算机系统的鲁棒性和稳定性。
Description
技术领域
本发明涉及处理器领域,更具体而言,涉及一种存储控制装置、处理装置、计算机系统和存储控制方法。
背景技术
为了缓解处理器与存储器之间的速度差距,通常在处理器和存储器之间设置高速缓冲存储器(Cache),高速缓冲存储器的访问速度高于存储器。高速缓冲存储器用于对存储器中的一些可能会被反复调用的程序数据或者报文数据等数据信息和/或指令信息进行缓存。这里的存储器通常指主存储器(或简称为主存或内存),用于存储由数据信号表示的指令信息和/或数据信息,例如存放处理器提供的数据和/或实现处理器与外部存储设备之间的信息交换。
处理器可以通过发起写访问请求访问主存,写访问请求指定了需要写入数据的物理地址以及需要被写入的数据。处理器发起写访问请求后,如果需要访问的数据块已被高速缓冲存储器缓存,即高速缓冲存储器命中,则处理器可以直接访问高速缓冲存储器而无需访问存储器,从而避免访问存储器导致的较长延迟;如果需要访问的数据块未被高速缓冲存储器缓存,即高速缓冲存储器未命中,则处理器可以采用写分配策略或非写分配策略处理该写访问请求。
写分配(Write Allocate)策略是指:在高速缓冲存储器未命中时,首先向高速缓冲存储器的下一级存储器发起读请求,以将该存储器中与写访问请求匹配的数据块调入高速缓冲存储器中;随后,再根据写访问请求指定的数据更新高速缓冲存储器中相应的数据块。
非写分配(Not Write Allocate或Write Non-allocate)策略是指:在高速缓冲存储器未命中时,直接向存储器发起写请求,以根据写访问请求指定的数据更新存储器中相应的数据块,而不对高速缓冲存储器进行修改。
相比于写分配策略,非写分配策略占用的时间更短,更适合处理短时间内不会再被访问的数据;写分配策略可以将写访问请求指定的数据存入高速缓冲存储器中,因此相比于非写分配策略,写分配策略更适合处理可能被重复访问的数据。
在传统方案中,若检测到连续的写访问请求映射至连续的物理地址(即未发生跳转),则采用非写分配策略响应写访问请求;一旦检测到连续的写访问请求映射的物理地址发生跳转,则直接退出非写分配操作并切换至写分配操作。
然而,对于连续的写访问请求,一些可能不会被重复访问的数据不一定对应连续的物理地址。例如,在内存拷贝等操作过程中,处理器可能每隔一段时间就需要跳转到其他地址上进行内存搬运等操作;在一些进程中,需要被连续访问的数据块可能具有连续的虚拟地址和不连续的物理地址。传统方案在这些发生物理地址跳转的情况下都会采用写分配操作,这将会降低处理器的效率、损耗处理器的性能。
发明内容
有鉴于此,本发明实施例提供一种鲁棒性更强的存储控制装置、处理装置、计算机系统和存储控制方法,以解决以上问题。
为了达到这个目的,第一方面,本发明提供一种存储控制装置,包括:地址检测单元,适于检测依次到来的写访问请求映射的物理地址是否发生跳转;以及逻辑控制单元,与所述地址检测单元耦接,适于在高速缓冲存储器未命中且依次到来的多个所述写访问请求映射的物理地址未发生跳转的情况下采用非写分配策略处理所述写访问请求,其中,在所述非写分配策略下,若依次到来的多个所述写访问请求映射的物理地址连续发生跳转的次数小于预设次数,则所述逻辑控制单元维持采用所述非写分配策略,所述预设次数大于1。
在一些实施例中,所述写访问请求包括:存储指令映射的物理地址;以及所述存储指令指定的写入数据,在所述非写分配策略下,所述写入数据被写入存储器且未被写入所述高速缓冲存储器。
在一些实施例中,所述逻辑控制单元适于:在所述非写分配策略下,若依次到来的多个所述写访问请求映射的物理地址连续发生跳转的次数大于/等于所述预设次数,则所述逻辑控制单元采用写分配策略,在所述写分配策略下,所述写入数据被写入高速缓冲存储器。
在一些实施例中,所述逻辑控制单元适于:在初始态下,选择采用所述写分配策略,若依次到来的所述写访问请求映射的物理地址未发生跳转,所述逻辑控制单元退出所述初始态并进入初级屏蔽态;在所述初级屏蔽态下,采用非写分配策略,若依次到来的多个所述写访问请求映射的物理地址连续发生跳转的次数等于所述预设次数,则返回所述初始态。
在一些实施例中,所述逻辑控制单元还适于:在所述初级屏蔽态下,若依次到来的所述写访问请求映射的物理地址未发生跳转,则进入第1级缓冲态;在所述第1级缓冲态下,若依次到来的所述写访问请求映射的物理地址发生跳转,则返回所述初级屏蔽态。
在一些实施例中,所述逻辑控制单元还适于:在所述第1级缓冲态至第K-1级缓冲态下,若依次到来的多个所述写访问请求映射的物理地址未发生跳转,则转移至下一级所述缓冲态;在第2级缓冲态至第K级缓冲态下,若依次到来的所述写访问请求映射的物理地址发生跳转,则转移至上一级所述缓冲态,K为大于/等于2的自然数。
在一些实施例中,存储控制装置还包括用于存储缓冲深度值的寄存器,所述逻辑控制单元还适于:在初始阶段采用所述写分配策略,并将所述缓冲深度值复位为初始值;若依次到来的所述写访问请求依次映射至连续的物理地址,则按照第一预设梯度增大所述缓冲深度值;若依次到来的所述写访问请求映射的物理地址发生跳转,则按照第二预设梯度减小所述缓冲深度值;当所述缓冲深度值小于设定阈值时,选择采用所述写分配策略,当所述缓冲深度值大于/等于所述设定阈值时,选择采用所述非写分配策略。
在一些实施例中,所述设定阈值大于/等于所述初始值与所述第一预设梯度之和。
在一些实施例中,所述写访问请求还包括写策略信息,所述写策略信息指示所述写分配策略和所述非写分配策略之一,所述逻辑控制单元被配置以执行:屏蔽所述写访问请求的所述写策略信息,以选择采用所述非写分配策略;或根据所述写访问请求的所述写策略信息,采用所述写分配策略。
在一些实施例中,存储控制装置还包括:读缓冲单元,适于在所述写分配策略下向所述存储器发起读请求,并将所述存储器返回的数据块存入所述高速缓冲存储器,以便根据所述写入数据修改所述数据块。
在一些实施例中,存储控制装置还包括:写缓冲单元,适于在所述非写分配策略下向所述存储器发起写请求,以便根据所述写入数据修改所述存储器中相应的数据块。
在一些实施例中,所述预设次数设置为固定值,或根据内存访问函数被调用的次数确定,所述内存访问函数由至少一个所述写访问请求实现。
第二方面,本公开实施例提供了一种处理装置,所述处理装置为处理器、处理器核或片上系统,并包括如上所述的任一种存储控制装置。
在一些实施例中,处理装置还包括:指令执行单元,适于根据所述存储指令提供所述写访问请求;硬件寄存器,适于提供所述写策略信息。
在一些实施例中,处理装置还包括:内存管理单元,与所述寄存器耦接,适于提供与所述存储指令指定的虚拟地址匹配的表项,以便根据所述表项将所述虚拟地址转译为所述存储指令映射的物理地址,并向所述指令执行单元提供所述写策略信息。
在一些实施例中,所述硬件寄存器为全局寄存器。
第三方面,本公开实施例还提供了一种存储控制方法,包括:检测依次到来的写访问请求映射的物理地址是否发生跳转;以及若高速缓冲存储器未命中且依次到来的多个所述写访问请求映射的物理地址未发生跳转,则采用非写分配策略处理所述写访问请求,其中,在所述非写分配策略下,若依次到来的多个所述写访问请求映射的物理地址连续发生跳转的次数小于预设次数,则维持采用所述非写分配策略,所述预设次数大于1。
在一些实施例中,所述写访问请求包括:存储指令映射的物理地址;以及所述存储指令指定的写入数据,在所述非写分配策略下,所述写入数据被写入存储器且未被写入所述高速缓冲存储器。
在一些实施例中,存储控制方法还包括:在所述非写分配策略下,若依次到来的多个所述写访问请求映射的物理地址连续发生跳转的次数大于/等于所述预设次数,则所述逻辑控制单元采用写分配策略,在所述写分配策略下,所述写入数据被写入所述高速缓冲存储器。
在一些实施例中,所述存储控制逻辑包括:在初始状态下,选择采用所述写分配策略,若依次到来的多个所述写访问请求映射的物理地址未发生跳转,所述逻辑控制单元退出所述初始状态并进入初级屏蔽态;在所述初级屏蔽态下,采用非写分配策略,若依次到来的多个所述写访问请求映射的物理地址连续发生跳转的次数等于所述预设次数,则返回所述初始态。
在一些实施例中,所述存储控制逻辑还包括:在所述初级屏蔽态下,若依次到来的多个所述写访问请求映射的物理地址未发生跳转,则进入第1级缓冲态;在所述第1级缓冲态下,若依次到来的所述写访问请求映射的物理地址发生跳转,则返回所述初级屏蔽态。
在一些实施例中,所述存储控制逻辑还包括:在所述第1级缓冲态至第K-1级缓冲态下,若依次到来的多个所述写访问请求映射的物理地址未发生跳转,则转移至下一级所述缓冲态;在第2级缓冲态至第K级缓冲态下,若依次到来的所述写访问请求映射的物理地址发生跳转,则转移至上一级所述缓冲态,K为大于/等于2的自然数。
在一些实施例中,所述存储控制逻辑包括:在初始阶段采用所述写分配策略,并将所述缓冲深度值复位为初始值;若依次到来的所述写访问请求映射的物理地址未发生跳转,则按照第一预设梯度增大所述缓冲深度值;若依次到来的所述写访问请求映射的物理地址发生跳转,则按照第二预设梯度减小所述缓冲深度值;当所述缓冲深度值小于设定阈值时,选择采用所述写分配策略,当所述缓冲深度值大于/等于所述设定阈值时,选择采用所述非写分配策略。
在一些实施例中,所述设定阈值大于/等于所述初始值与所述第一预设梯度之和。
在一些实施例中,所述写访问请求还包括写策略信息,所述写策略信息指示所述写分配策略和所述非写分配策略之一,所述存储控制逻辑通过屏蔽所述写访问请求的所述写策略信息选择采用所述非写分配策略,或根据所述写访问请求的所述写策略信息采用所述写分配策略。
在一些实施例中,存储控制方法还包括:获得与所述存储指令指定的虚拟地址匹配的表项;根据所述表项的标识和数据将所述存储指令指定的虚拟地址转译为所述存储指令映射的物理地址;以及根据所述表项的属性标志位提供所述写策略信息。
在一些实施例中,所述写策略信息由全局寄存器提供。
在一些实施例中,所述存储控制逻辑还包括:在所述写分配策略下向所述存储器发起读请求,并将所述存储器返回的数据块存入所述高速缓冲存储器,以便根据所述写入数据修改所述数据块。
在一些实施例中,所述存储控制逻辑还包括:在所述非写分配策略下向所述存储器发起读请求,以便根据所述写入数据修改所述存储器中相应的数据块。
在一些实施例中,所述预设次数设置为固定值,或根据内存访问函数被调用的次数确定,所述内存访问函数由至少一个所述写访问请求实现。
第四方面,本公开实施例还提供了一种计算机系统,包括:如上所述的任一种处理装置;高速缓冲存储器,与所述存储控制装置耦接;以及存储器,与所述存储控制装置耦接。
在一些实施例中,所述计算机系统由片上系统实现。
相比于传统方案,本公开实施例提供的存储控制方法、存储控制装置、处理装置和计算机系统能够检测依次到来的写访问请求所映射的物理地址是否发生多次跳转,若依次到来的多个写访问请求映射的物理地址连续发生跳转的次数小于预设次数,则维持采用非写分配策略而不将写访问请求指定的写入数据存入高速缓冲存储器和/或存储器,以尽量避免在处理访问几率较低的信息时选择通过写分配策略完成写入数据的存储、避免访问概率较低的写入数据被存入高速缓冲存储器、提升计算机系统的性能和效率、增强处理器和计算机系统的鲁棒性和稳定性。
附图说明
通过参考以下附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1示出本发明实施例中的计算机系统的示意性框图;
图2是本发明实施例中处理器的示意性框图;
图3示出根据本发明实施例执行存储指令的部分流程示意图;
图4示出了根据本发明的一个实施例的存储控制单元的示意图;
图5a至5c分别示出根据本发明实施例的存储控制逻辑的状态转移示意图;
图6示出根据本发明的一个实施例的存储控制方法的流程示意图。
具体实施方式
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。
在本文中使用以下术语。
计算机系统:通用嵌入式系统、台式机、服务器、片上系统或其他具备信息处理能力的系统。
存储器:位于计算机系统内,用于存储信息的物理结构。按照用途的不同,存储器可以分为主存储器(也可称为内部存储器,或简称为内存/主存)和辅助存储器(也可称为外部存储器,或简称为辅存/外存)。主存用于存储由数据信号表示的指令信息和/或数据信息,例如用于存放处理器提供的数据,也可用于实现处理器与外存之间的信息交换。外存提供的信息需要被调入主存中才能被处理器访问,因此本文提到的存储器一般是指主存,本文提到的存储设备一般是指外存。
物理地址(Physical Address,简称为PA):地址总线上的地址。处理器或其他硬件可以向地址总线提供物理地址以访问主存。物理地址也可称为实际地址、真实地址或绝对地址。本文所述的“连续的物理地址”可以对应数值上连续的二进制码,然而本公开实施例不限于此。在一些具体的设计中,“连续的物理地址”也可以对应仅有1位不同的二进制码。
虚拟地址:软件或程序所使用的抽象地址。虚拟地址空间可以大于物理地址空间,虚拟地址可以被映射至对应的物理地址。
分页管理机制:将虚拟地址空间划分为多个部分,每部分作为一个虚拟页(page),并将物理地址空间划分为多个部分,每部分作为一个物理页(page frame)。物理页也称为物理块或物理页框。
页表:用于指定虚拟页和物理页之间的对应关系,通常被存储在主存中。页表中包括多个表项,每个表项分别用于指定虚拟页到物理页的映射关系以及一些管理标志,从而可以用于将虚拟页中的虚拟地址转译为相应物理页中的物理地址。页表中包含的一部分表项可以被缓存在主存之外的寄存器中,以便于在地址转译过程中被调用。
写分配策略:在高速缓冲存储器未命中时,首先向高速缓冲存储器的下一级存储器发起读请求,以将该存储器中与写访问请求匹配的数据块调入高速缓冲存储器中;随后,再根据写访问请求指定的数据更新高速缓冲存储器中相应的数据块。写分配操作也可称为写时取(Fetch On Write)操作。
非写分配策略:在高速缓冲存储器未命中时,直接向存储器发起写请求,以根据写访问请求指定的数据更新存储器中相应的数据块,而不对高速缓冲存储器进行修改。
高速缓冲存储器的命中与未命中:当处理器需要访问主存中的信息时,可以先在高速缓冲存储器中查找所需的信息。若高速缓冲存储器中已存有所需的信息,则称为高速缓冲存储器命中或hit,此时无需再对主存进行查找;若高速缓冲存储器中没有存储所需的信息,则称为高速缓冲存储器未命中,也可称为缺失、失效或miss。
内存访问函数:需要访问内存的函数,例如为内存拷贝函数或内存初始化函数。
内存拷贝操作:通过C和C++语言中的内存拷贝函数memcpy实现的操作,用于从源主存地址拷贝若干个数据(每个数据例如为一个字节长度)到目标主存地址中。每次内存拷贝操作可以通过至少一次调用内存拷贝函数实现。
内存初始化操作:通过C和C++语言中的内存初始化函数memset实现的操作,用于将主存的指定内容全部设置为指定的值。每次内存初始化操作可以通过至少一次调用内存初始化函数实现。
内存拷贝或内存初始化等操作通常需要将一系列信息(指令信息和/或数据信息)写入主存,这些信息被访问的频率较低、信息量较大,因此不希望这些信息被写入高速缓冲存储器中,以节约时间、避免高速缓冲存储器被访问频率较低的信息占用。
在执行内存拷贝或内存初始化等需要对主存进行更新的操作时,处理器将会依次发起多个写访问请求,以修改主存中相应的信息。每个写访问请求指定了需要访问的物理地址、需要被写入的数据,还可以指定一些辅助信息,辅助信息可以包括用于指示写分配策略是否有效的写分配信息。本文提到的“连续的写访问请求”或“依次到来的写访问请求”指的是发起顺序上连续的写访问请求,这一系列写访问请求会被按次序处理。
然而,依次到来的写访问请求在一些情况下映射至不连续的物理地址。例如,在执行内存拷贝操作时,可能每隔一段时间处理器需要访问的物理地址会发生跳转,即处理器发起的一系列写访问请求指定的物理地址将会发生跳转;又例如,面向程序的虚拟页是连续的,但是这些连续的虚拟页可能映射至不连续的物理页,导致连续的虚拟地址被映射至不连续的物理地址。
在传统方案中,若检测到连续的写访问请求映射至连续的物理地址(即未发生跳转),则采用非写分配策略响应写访问请求;一旦检测到连续的写访问请求映射的物理地址发生跳转,则直接退出非写分配策略并切换至写分配策略。基于上述分析,内存拷贝等操作过程中可能会出现连续到来的写访问请求映射至不连续的物理地址(即物理地址发生跳转)的情况,因此传统方案将会在内存拷贝等类似的操作中多次在写分配策略和非写分配策略之间发生不必要的切换,损耗了处理器的性能和效率。
基于此,本申请实施例提供了一种存储控制方案,用于根据依次到来的写访问请求所映射的物理地址动态地对写分配策略和非写分配策略进行选择和切换,当依次到来的多个写访问请求映射的物理地址连续发生跳转的次数小于预设次数时,仍能维持采用非写分配策略而不将写访问请求指定的写入数据存入高速缓冲存储器和/或存储器,从而能够在依次到来的多个写访问请求映射的物理地址连续发生跳转的次数大于/等于预设次数时才由非写分配策略恢复至写分配策略,以优化对写访问请求的处理过程,提高了处理器的鲁棒性和效率。
下面将以内存拷贝操作的应用场景对本发明实施例进行示例性的说明,然而本发明实施例不限于此,本申请还可以根据本发明实施例的启示被应用于其他操作,例如由内存初始化等函数或指令实现的内存初始化操作,或其他可能面向不连续的物理地址且面向访问几率较低的信息的相关操作。
系统概述
图1示出本发明实施例中的计算机系统的示意性框图。该计算机系统10是“中心”系统架构的示例。计算机系统10可基于目前市场上各种型号的处理器构建,并由WINDOWSTM操作系统版本、UNIX操作系统、Linux操作系统等操作系统驱动。此外,计算机系统10可以在PC机、台式机、笔记本、服务器和移动通信装置等硬件和/或软件中实施。
如图1所示,本发明实施例的计算机系统10可以包括一个或多个处理器12,以及存储器14。
计算机系统10中的存储器14可以主存储器(简称为主存或内存)。用于存储由数据信号表示的指令信息和/或数据信息,例如存放处理器12提供的数据(例如为运算结果),也可以用于实现处理器12与外部存储设备16(或称为辅助存储器或外部存储器)之间的数据交换。
在一些情形下,处理器12可能需要访问存储器14,以获取存储器14中的数据或对存储器14中的数据进行修改。由于存储器14的访问速度较慢,为了缓解处理器12与存储器14之间的速度差距,计算机系统10还包括与总线11耦合的高速缓冲存储器18,高速缓冲存储器18用于对存储器14中的一些可能会被反复调用的程序数据或者报文数据等数据进行缓存。高速缓冲存储器18例如由静态随机存储器(Static Random Access Memory,简称为SRAM)等类型的存储装置实现。高速缓冲存储器18可以为多级结构,例如具有一级缓存(L1Cache)、二级缓存(L2 Cache)和三级缓存(L3 Cache)的三级缓存结构,也可以是三级以上的缓存结构或其他类型缓存结构。在一些实施例中,高速缓冲存储器18的一部分(例如一级缓存,或一级缓存和二级缓存)可以集成在处理器12内部或与处理器12集成于同一片上系统中。
基于此,处理器12可以包括指令执行单元121、内存管理单元122以及存储控制单元123等部分。指令执行单元121在执行一些需要修改内存的指令时发起写访问请求,该写访问请求指定了需要写入内存中的写入数据和相应的物理地址;内存管理单元122用于将这些指令指定的虚拟地址转译为该虚拟地址映射的物理地址,写访问请求指定的物理地址与相应指令指定的物理地址可以一致;存储控制单元123用于通过写分配操作或非写分配操作将写入数据存入写访问请求映射的物理地址指向的存储位置。
存储器14和高速缓冲存储器18之间的信息交互通常按块来组织。在一些实施例中,高速缓冲存储器18和存储器14可以按照相同的空间尺寸被划分成数据块,数据块可以作为高速缓冲存储器18和存储器14之间的数据交换的最小单位(包括预设长度的一个或多个数据)。为了表述简洁清晰,下面将高速缓冲存储器18中的各个数据块简称为缓存块(可以称为cacheline或高速缓存线),且不同的缓存块具有不同的缓存块地址;将存储器14中的各个数据块简称为内存块,且不同的内存块具有不同的内存块地址。缓存块地址例如包括用于定位数据块的物理地址标签。
由于受到空间和资源的限制,高速缓冲存储器18无法对存储器14中的全部内容都进行缓存,即高速缓冲存储器18的存储容量通常小于存储器14,高速缓冲存储器18提供的各个缓存块地址无法对应存储器14提供的全部内存块地址。处理器12在需要访问内存时,首先经总线11访问高速缓冲存储器18,以判断所要访问的内容是否已被存储于高速缓冲存储器18中,如果是,则高速缓冲存储器18命中,此时处理器12直接从高速缓冲存储器18中调用所要访问的内容;如果处理器12需要访问的内容不在高速缓冲存储器18中,则高速缓冲存储器18,处理器12需要经总线11访问存储器14,以在存储器14中查找相应的信息。因为高速缓冲存储器18的存取速率非常快,因此当高速缓冲存储器18命中时,处理器12的效率可以显著提高,进而也使整个计算机系统10的性能和效率得以提升。
此外,计算机系统10还可以包括存储设备16、显示设备13、音频设备14、鼠标/键盘15等输入/输出设备。存储设备16例如是通过相应接口与总线11耦合的硬盘、光盘以及闪存等用于信息存取的设备。显示设备13例如经相应的显卡与总线11耦合,用于根据总线11提供的显示信号进行显示。
计算机系统10通常还包括通信设备17,因此可以通过各种方式与网络或其他设备通信。通信设备17例如可以包括一种或多种通信模块,作为示例,通信设备17可以包括适用于特定的无线通信协议的无线通信模块。例如,通信设备17可以包括WLAN模块,用于实现符合电气和电子工程师协会(IEEE)制定的802.11标准的Wi-FiTM通信;通信设备17也可以包括WWAN模块,用于实现符合蜂窝或其他无线广域协议的无线广域通信;通信设备17还可以包括蓝牙模块等采用其它协议的通信模块,或其它自定义类型的通信模块;通信设备17也可以是用于串行传输数据的端口。
当然,不同的计算机系统根据主板、操作系统和指令集架构的不同,其结构也可能有所变化。例如目前很多计算机系统设置有连接在总线11和各个输入/输出设备之间的输入/输出控制中心,且该输入/输出控制中心可以集成于处理器12之内或独立于处理器12。
如下文所述,本公开实施例的计算机系统10的存储控制单元23通过检测依次到来的写访问请求所映射的物理地址是否发生多次跳转选择写分配操作和非写分配操作之一将写访问请求指定的写入数据存入高速缓冲存储器18和/或存储器14,以尽量避免在处理访问几率较低的信息时选择通过写分配操作完成写入数据的存储、避免访问概率较低的写入数据被存入高速缓冲存储器、提升计算机系统的性能和效率。
处理器
图2是本发明实施例中处理器12的示意性框图。
在一些实施例中,每个处理器12可以包括用于处理指令的一个或多个处理器核120,指令的处理和执行是可以被用户(例如通过应用程序)和/或系统平台控制的。在一些实施例中,每个处理器核120可以用于处理特定的指令集。在一些实施例中,指令集可以支持复杂指令集计算(Complex Instruction Set Computing,CISC)、精简指令集计算(Reduced Instruction Set Computing,RISC)或基于超长指令字(Very LongInstruction Word,VLIW)的计算。不同的处理器核120可以各自处理不同或相同的指令集。在一些实施例中,处理器核120还可以包括其他处理模块,例如数字信号处理器(DigitalSignal Processor,DSP)等。作为一种示例,图2中示出了处理器核1至m,m是非0的自然数。
在一些实施例中,图1示出的高速缓冲存储器18可以被全部或部分集成于处理器12中。且根据不同架构,高速缓冲存储器18可以是位于各个处理器核101之内和/或之外的单个或多级的内部高速高速缓冲存储器(如图2示出的3级高速高速缓冲存储器L1至L3,图2中统一标识为18),也可以包括面向指令的指令高速缓存和面向数据的数据高速缓存。在一些实施例中,处理器12中的各个部件可以共享至少一部分的高速缓冲存储器,如图2所示,处理器核1至m例如共用第三级高速高速缓冲存储器L3。处理器12还可以包括外部高速缓存(未示出),其他高速缓存结构也可以作为处理器12的外部高速缓存。
在一些实施例中,如图2所示,处理器12可以包括寄存器堆126(Register File),寄存器堆126可以包括用于存储不同类型的数据和/或指令的多个寄存器,这些寄存器可以是不同类型的。例如,寄存器堆126可以包括:整数寄存器、浮点寄存器、状态寄存器、指令寄存器和指针寄存器等。寄存器堆126中的寄存器可以选用通用寄存器来实现,也可以根据处理器12的实际需求采用特定的设计。
处理器12可以包括内存管理单元(Memory Management Unit,MMU)122,用于实现虚拟地址到物理地址的转译。内存管理单元122中缓存有了页表中的一部分表项,内存管理单元122也可以从内存中获取未被缓存的表项。每个处理器核120中可以设置一个或多个内存管理单元122,不同处理器核120中的内存管理单元120也可以与位于其他处理器或处理器核中的内存管理单元120实现同步,使得每个处理器或处理器核可以共享统一的虚拟存储系统。
处理器12用于执行指令序列(即程序)。处理器12执行每个指令的过程包括:从存放指令的存储器中取出指令、对取出的指令进行译码、执行译码后的指令、保存指令执行结果等步骤,如此循环,直到执行完指令序列中的全部指令或遇到停机指令。
为了实现上述过程,处理器12可以包含取指令单元124、指令译码单元125、指令发射单元(未示出)、指令执行单元121和指令引退单元(未示出)等。
取指令单元124作为处理器12的启动引擎,用于将指令从存储器14中搬运到指令寄存器(可以是图2示出的寄存器堆26中的一个用于存放指令的寄存器)中,并接收下一个取指地址或根据取指算法计算获得下一个取指地址,取指算法例如包括:根据指令长度递增地址或递减地址。
取出指令后,处理器12进入指令译码阶段,指令译码单元125按照预定的指令格式,对取回的指令进行解码,以获得取回的指令所需的操作数获取信息,从而为指令执行单元121的操作做准备。操作数获取信息例如指向立即数、寄存器或其他能够提供源操作数的软件/硬件。
指令发射单元通常存在于高性能的处理器12中,位于指令译码单元125与指令执行单元之间,用于指令的调度和控制,以将各个指令高效地分配至不同的指令执行单元121,使得多个指令的并行操作成为可能。指令经取指、译码并被调度到相应的指令执行单元121之后,相应的指令执行单元121开始执行该指令,即执行该指令所指示的操作、实现相应的功能。
指令引退单元(或称为指令写回单元)主要用于负责将指令执行单元121产生的执行结果写回到相应的存储位置(例如为处理器12内部的寄存器)中,以使后续指令能够从该存储位置处快速获取相应的执行结果。
对于不同类别的指令,可以在处理器12中相应地设置不同的指令执行单元121。指令执行单元121可以是运算单元(例如包含算术逻辑单元,矢量运算单元等,用于根据操作数进行运算并输出运算结果)、内存执行单元(例如用于根据指令访问内存以读取内存中的数据或向内存写入指定的数据等)以及协处理器等。在处理器12中,各个指令执行单元121可以并行运行并输出相应的执行结果。
指令执行单元121在执行某类指令(例如访存指令)时,需要访问存储器14,以获取存储器14中存储的信息或提供需要写入存储器14中的数据。
需要说明的是,用于执行访存指令的指令执行单元121也可以简称称为内存执行单元,该内存执行单元例如为加载存储单元(Load Store Unit,LSU)和/或其他用于内存访问的单元。
访存指令被取指令单元124获取之后,指令译码单元125可以对访存指令进行译码处理,使得访存指令的源操作数可被获取。译码处理后的访存指令被提供至相应的指令执行单元121中,该指令执行单元121可以对访存指令的源操作数进行相应的运算(例如由算术逻辑单元对存储于寄存器中的源操作数进行运算)以获得访存指令对应的地址信息,并根据该地址信息发起相应的请求,例如地址转译请求、写访问请求等。
访存指令的源操作数通常包括地址操作数,指令执行单元121对该地址操作数进行运算以获得访存指令对应的虚拟地址或物理地址。当内存管理单元122被禁用时,指令执行单元121可以直接通过逻辑运算获得访存指令的物理地址。当内存管理单元121被启用时,相应的指令执行单元121根据访存指令对应的虚拟地址发起地址转译请求,该地址转译请求包括与访存指令的地址操作数对应的虚拟地址;内存管理单元122响应地址转译请求,并根据与该虚拟地址匹配的表项将地址转译请求中的虚拟地址转换为物理地址,使得指令执行单元121可以根据转译后的物理地址访问高速缓冲存储器18和/或存储器14。
根据功能的不同,访存指令可包括加载指令和存储指令。加载指令的执行过程通常不需要对存储器14或高速缓冲存储器18中的信息进行修改,指令执行单元121只需要根据加载指令的地址操作数读取存储于存储器14、高速缓冲存储器18或外部的存储设备中的数据。
不同于加载指令,存储指令的源操作数不仅包括地址操作数,还包括数据信息,存储指令的执行过程通常需要对存储器14和/或高速缓冲存储器18进行修改。存储指令的数据信息可以指向写入数据,该写入数据的来源可以是运算指令、加载指令等指令的执行结果,也可以是处理器12中的寄存器或其他存储单元提供的数据、还可以是立即数。
内存拷贝操作通常用于将存储器14的源存储区中存储的若干个字节拷贝到存储器14的目标存储区中。内存拷贝函数memcpy的函数格式例如为:
memcpy(destin,source,n)
其中,destin指向需要存储复制内容的目标存储区(为存储器14的一个存储区域),source指向复制内容所在的源存储区(为存储器14的一个存储区域),n指示复制内容包含的字节数。
内存拷贝函数可以由一系列的访存指令实现。处理器12可获得源存储区中存储的n个字节的复制内容,并执行存储指令流,以将复制内容写入目标存储区。复制内容可按照字节或字或其他单位划分为多个写入数据,每个存储指令用于将相应的一个写入数据写入目标存储区内相应的一个存储位置。
图3示出根据本发明实施例执行存储指令的部分流程示意图。下面将结合图2和图3对存储指令的执行过程进行示例性的描述。
在图3示出的操作310中,指令执行单元121发起写访问请求。该写访问请求包括存储指令指定的写入数据以及存储指令映射的物理地址。
在操作310中,指令执行单元121可以先根据存储指令的地址操作数发起地址转译请求,该地址转译请求包括与存储指令的地址操作数对应的虚拟地址;随后,内存管理单元122响应地址转译请求,并根据页表中相应的表项将地址转译请求中的虚拟地址转换为可用于访问存储器的物理地址,即存储指令映射的物理地址。
写访问请求还可以指定一些辅助信息,辅助信息可以包括用于指示写分配策略是否有效的写分配信息。该写分配信息可以来源于寄存器堆126提供的全局配置信息,也可以由页表中与存储指令的虚地址匹配的表项的属性标志位提供,还可以来源于其他配置信息。
在图3示出的操作320中,响应于写访问请求,存储控制单元123将存储指令映射的物理地址与高速缓冲存储器中各个缓存块地址进行比较,以判断高速缓冲存储器是否命中。
判断高速缓冲存储器18是否命中的方法可以包括:判断高速缓冲存储器18的各个缓存块地址与写访问请求映射的物理地址匹配,如果某个缓存块的缓存块地址与写访问请求映射的物理地址的物理页号匹配,则可以继续根据写访问请求映射的物理地址判断该匹配的缓存块中是否存在对应的缓存项(cache entry,每个缓存块包括可以被物理地址的若干位索引的多个缓存项),若存在,则高速缓冲存储器18命中,若高速缓冲存储器18中不存在与写访问请求映射的缓存块和缓存项,则说明高速缓冲存储器18没有命中这一写访问请求。
如果高速缓冲存储器命中,则执行操作330:指令执行单元121根据写访问请求指定的写入数据更新相应的缓存项。
如果高速缓冲存储器未命中,则执行下述操作340。
在图3示出的操作340中,存储控制单元123选择采用写分配策略或非写分配策略处理写访问请求,以便根据存储指令指定的写入数据更新相应的缓存块和/或内存块。
需要说明的是,写分配策略本身不会影响计算机系统的功能,只是对计算机系统和处理器的性能有所影响,例如降低计算机系统和处理器执行某些存储指令的速度。
在一些实施例中,存储控制单元123可以由软件和/或硬件实现。例如,硬件实现的存储控制单元123可以集成于处理器12或高速缓冲存储器18中,或与处理器12和/或高速缓冲存储器18集成于同一片上系统中,或以其他形式与处理器和高速缓冲存储器耦合。
存储管理单元
图4示出了根据本发明的一个实施例的存储控制单元123的示意图。存储控制单元可以是由硬件和/或软件实现的存储管理装置。该存储控制装置可以集成在处理器12或高速缓冲存储器18中,也可以与处理器12和/或高速缓冲存储器18集成于同一个片上系统中,还可以是独立于处理器12和高速缓冲存储器18的封装芯片。由于存储管理单元可以用于选择写分配策略和分写分配策略之一,因此也可被称为分配模式调节器(Allocate ModeRegulator,AMR)。
存储控制单元123用于接收写访问请求,判断依次到来的写访问请求映射的物理地址是否发生跳转,并根据判断结果信息和存储控制逻辑选择写分配策略和非写分配策略之一,从而在高速缓冲存储器未命中时采用选定的写分配策略或非写分配策略处理相应的写访问请求,以更新存储器14和/或高速缓冲存储器18。
存储控制单元123可以包括地址检测单元33、逻辑控制单元34、查找单元35、写缓冲单元32以及读缓冲单元31。然而本申请实施例不限于此。
在内存拷贝操作的执行过程中,存储控制单元123接收与存储指令流对应的一系列的写访问请求。查找单元35,用于将写访问请求映射的物理地址与高速缓冲存储器18内的各个缓存块地址进行比较,以判定高速缓冲存储器是否命中。
若高速缓冲存储器18命中,则直接将写访问请求指定的写入数据写入相应的缓存块。该缓存块可以被标记为脏块,在后续的一些步骤中,被标记为脏块的缓存块可以与存储器14中相应的内存块实现统一,并随后消除用于指示脏块的标记。
若高速缓冲存储器未命中,则逻辑控制单元34根据存储控制逻辑和地址检测单元33提供的判断结果信息选择写分配策略或非写分配策略。
在写分配策略下,逻辑控制单元34控制读缓冲单元31发起读请求,使得存储器14响应该读请求以向读缓冲单元31返回所需的数据块,读缓冲单元31随后将该数据块写入高速缓冲存储器18的相应缓存块地址。随后,查找单元35可以再次对高速缓冲存储器中的各个缓存块进行查找,由于此时高速缓冲存储器中存在与写访问请求映射的物理地址匹配的缓存块,因此高速缓冲存储器命中,可以直接将指定的写入数据存入相应的缓存块中,以修改高速缓冲存储器中缓存的数据。
在非写分配策略下,逻辑控制单元34控制写缓冲单元32向存储器14发起写请求,写缓冲单元32对写访问请求指定的写入数据进行缓存并根据缓存的写入数据更新存储器14中相应的内存块,而无需将存储器14中相应的内存块写入高速缓冲存储器,也无需对高速缓冲存储器中存储的数据进行修改。
地址检测单元33用于对写访问请求映射的物理地址进行检测,以判断先后到来的写访问请求映射的物理地址是否发生跳转,并提供判断结果信息。例如,当连续的两个写访问请求映射的物理地址分别对应不连续的物理页,则这两个写访问请求映射的物理地址不连续,此时判断结果信息指示先后到来的写访问请求映射的物理地址发生跳转。判断结果信息可以被存储在相应的寄存器中,例如包括:当前的写访问请求映射的物理地址是否与前一个到来的写访问请求映射的物理地址连续;依次到来的写访问请求映射的物理地址连续发生跳转的次数;依次到来的写访问请求映射的物理地址是否连续多次不发生跳转。然而本公开实施例的判断结果信息不限于此。
在一些实施例中,当判断结果信息表征依次到来的多个写访问请求映射的物理地址未发生跳转,逻辑控制单元34可以选择采用非写分配策略处理当前的写访问请求;在非写分配策略下,若判断结果信息表征依次到来的多个写访问请求映射的物理地址连续发生跳转的次数大于/等于预设次数y,则逻辑控制单元34由非写分配策略恢复至写分配策略。其中,预设次数y可以设置为大于1的固定值,也可以根据前文所述的内存拷贝函数被在当前内存拷贝操作中被调用的次数确定,还可以根据其他因素被设置或被动态调整。
在一些实施例中,地址检测单元33可以对前一次接收到的写访问请求映射的物理地址进行缓存(例如采用相应的寄存器进行缓存),并将缓存的物理地址与当前接收到的写访问请求映射的物理地址进行逐位比较,以判断这两个先后到来的写访问请求映射的物理地址是否发生跳转。
在一些实施例中,写访问请求可以包含上述写分配信息。当写分配信息指示写分配策略时,逻辑控制单元34在选择非写分配策略时可以屏蔽写访问请求的写策略信息;若逻辑控制单元34选定写分配策略,则不对写分配信息进行屏蔽,从而采用写分配策略对写访问请求进行处理。写分配信息例如为存储在相应寄存器中的一个标志位。
存储控制逻辑可以由硬件和/或软件实现,例如由计数器、寄存器堆中的部分寄存器以及逻辑电路等组件实现。
下面,将基于上述分析对存储控制逻辑实现的存储控制方法进行示例性的描述。
实施例1
根据一个实施例,存储控制逻辑由状态机实现,状态机可以包括初始态和初级屏蔽态,本申请不限于此。
图5a示出根据本发明的一个实施例的存储控制逻辑的状态转移示意图。
初始态:存储控制逻辑采用写分配策略。在此状态下,若判断结果信息表征依次到来的i个写访问请求映射的物理地址未发生跳转,则逻辑控制逻辑退出初始态并进入初级屏蔽态;否则,存储控制逻辑维持在初始态。这里的i个写访问请求指向i个连续的物理地址,这i个连续的物理地址例如对应几个或几十个字节的数据。其中,i为大于/等于1的自然数。
初级屏蔽态:存储控制逻辑采用非写分配策略,例如通过屏蔽写访问请求中的写分配信息实现。在此状态下,若依次到来的多个写访问请求映射的物理地址连续Y1次发生跳转,则返回初始态;若依次到来的写访问请求映射的物理地址发生连续跳转的次数小于Y1或未发生跳转,则存储控制逻辑将维持在初级屏蔽态,以采用非写分配策略处理当前的写访问请求。本实施例中,Y1与预设次数y相等。
可以看出,在本实施例中,由初始态转移至初级屏蔽态的条件是“依次到来的i个写访问请求映射的物理地址未发生跳转”,由初级屏蔽态转移至初始态的条件是“依次到来的写访问请求映射的物理地址连续Y1次发生跳转”。
由上述示例可知,本实施例在内存拷贝等用于处理访问频率较低的数据的操作中,避免因写访问请求映射的物理地址发生跳转而导致写分配策略和非写分配之间发生不必要的切换,提高了处理器的性能和效率。
在内存拷贝操作结束后,存储控制逻辑将会根据后续的写访问请求恢复写分配策略。
实施例2
根据一个实施例,存储控制逻辑由状态机实现,状态机可以包括初始态、初级屏蔽态以及第1级缓冲态,本申请不限于此。
图5b示出根据本发明的一个实施例的存储控制逻辑的状态转移示意图。
初始态:存储控制逻辑采用写分配策略。在此状态下,若判断结果信息表征依次到来的i个写访问请求映射的物理地址未发生跳转,则逻辑控制逻辑退出初始态并进入初级屏蔽态;否则存储控制逻辑维持在初始态。这里的i与实施例1中的定义相同,在此不再赘述。
初级屏蔽态:存储控制逻辑采用非写分配策略,例如通过屏蔽写访问请求中的写分配信息实现。在此状态下,若判断结果信息表征依次到来的写访问请求映射的物理地址连续Y2次发生跳转,则退出初级屏蔽态并返回初始态;若连续到来的写访问请求映射至连续的物理地址,则退出初级屏蔽态并进入第1级缓冲态;其他情况下不发生状态转移。其中,Y2可以设置为大于1的固定值,也可以根据前文所述的内存拷贝函数被在当前内存拷贝操作中被调用的次数确定,还可以根据其他因素被设置或被动态调整。
第1级缓冲态:存储控制逻辑采用非写分配策略。在此状态下,若判断结果信息表征连续到来的多个写访问请求依次映射至连续的物理地址,则存储控制逻辑维持在第1级缓冲态;若判断结果信息表征依次到来的写访问请求映射的物理地址发生跳转,则退出第1级缓冲态并返回初级屏蔽态。
在本实施例中,初始态的存储控制逻辑主要用于处理内存拷贝操作之外的一些操作,使得这些操作发起的写访问请求指定的写入数据能够通过写分配策略被写入高速缓冲存储器中,以方便访问;初级屏蔽态和第1级缓冲态都是采用非写分配策略的状态,但初级屏蔽态和第1级缓冲态的屏蔽强度不同。这里所述的屏蔽强度表示:为了从当前状态返回至初始态,依次到来的写访问请求映射的物理地址需要连续发生跳转的次数,即预设次数y。
初级屏蔽态转移至初始态的条件是“依次到来的写访问请求映射的物理地址连续Y2次发生跳转”,因此初级屏蔽态的屏蔽强度等于Y2,即:在初级屏蔽态下,预设次数y=Y2。
从第1级缓冲态返回初始态需要经历初级屏蔽态,且当第1级缓冲态返回至初级屏蔽态之后,一旦写访问请求再次映射至多个连续的物理地址,则存储控制逻辑可能会从初级屏蔽态再次转移至第1级缓冲态。因此,第1级缓冲态的屏蔽强度大于Y2(即:在第1级缓冲态下,预设次数y>Y2),从而能够进一步避免物理地址的单次跳转或少数次跳转导致写分配策略和非写分配策略之间发生不必要的切换。
基于本实施例,优选的,由初始态转移至初级屏蔽态的条件是“依次到来的i个写访问请求映射的物理地址未发生跳转”,由初级屏蔽态转移至第1级缓冲态的条件是“依次到来的多个写访问请求映射的物理地址未发生跳转”,由第1级缓冲态转移至初级屏蔽态的条件是“当前接收到的写访问请求与前一个到来的写访问请求映射的物理地址不连续”,由初级屏蔽态转移至初始态的条件是“依次到来的多个写访问请求映射的物理地址连续Y2次发生跳转”。然而本实施例不限于此,例如:由初级屏蔽态转移至第1级缓冲态的条件还可以是“当前接收到的写访问请求与前一个到来的写访问请求映射至连续的物理地址”。
由上述示例可知,本实施例在内存拷贝等用于处理访问频率较低的数据的操作中,避免因写访问请求映射的物理地址发生跳转而导致写分配策略和非写分配之间发生不必要的切换,提高了处理器的性能和效率。
在内存拷贝操作结束后,存储控制逻辑将会根据后续的写访问请求逐渐恢复写分配策略。
实施例3
根据一个实施例,存储控制逻辑由状态机实现,状态机可以包括初始态、初级屏蔽态以及第1至第K级缓冲态,本申请不限于此。其中K为大于等于2的自然数。状态机中的不同状态可以分别对应不同的状态编号,状态编号例如被存储在寄存器中。
图5c示出根据本发明的一个实施例的存储控制逻辑的状态转移示意图。
初始态:存储控制逻辑采用写分配策略。在此状态下,若判断结果信息表征依次到来的i个写访问请求映射的物理地址未发生跳转,则逻辑控制逻辑退出初始态并进入初级屏蔽态;否则,存储控制逻辑维持在初始态。这里的i与实施例1中的定义相同,在此不再赘述。
初级屏蔽态:存储控制逻辑采用非写分配策略,例如通过屏蔽写访问请求中的写分配信息实现。在此状态下,若判断结果信息表征依次到来的写访问请求映射的物理地址连续Y3次发生跳转,则退出初级屏蔽态并返回初始态;若连续到来的写访问请求映射至连续的物理地址,则退出初级屏蔽态并进入第1级缓冲态;其他情况下不发生状态转移。其中,Y3可以设置为大于1的固定值,也可以根据前文所述的内存拷贝函数被在当前内存拷贝操作中被调用的次数确定,还可以根据其他因素被设置或被动态调整。
第1至第K级缓冲态:存储控制逻辑采用非写分配策略。
在第1级缓冲态下,若判断结果信息表征依次到来的写访问请求映射的物理地址发生跳转,则返回初级屏蔽态;在第1至第K-1级缓冲态下,若判断结果信息表征依次到来的多个写访问请求映射的物理地址未发生跳转,则存储控制逻辑转移至下1级缓冲态;在第2级缓冲态至第K级缓冲态下,若判断结果信息表征依次到来的写访问请求映射的物理地址发生跳转,则转移至上1级缓冲态。
与上述第2实施例类似,在本实施例中,初级屏蔽态和第1至K级缓冲态都是采用非写分配策略的状态,但初级屏蔽态、第1至K级缓冲态的屏蔽强度依次递增,K的值可以根据预设次数y确定。
例如,从第1级缓冲态返回初始态需要经历初级屏蔽态,只有当依次到来的写访问请求映射的物理地址连续发生跳转的次数达到Y3+1时,存储控制逻辑才能恢复写分配策略;而对于第2级缓冲态来说,从第2级缓冲态返回初始态需要经历初级屏蔽态和第1级缓冲态,且在第2级缓冲态返回至第1级缓冲态之后,如果写访问请求再次映射至多个连续的物理地址,那么存储控制逻辑可能会从第1级缓冲态再次转移至第2级缓冲态。
因此,各级缓冲态的屏蔽强度依次递增(即,各级缓冲态对应的预设次数y递增),且均能够避免物理地址的单次跳转或少数次跳转导致的写分配策略和非写分配策略之间发生不必要的切换,也可以避免不连续地发生物理地址单次跳转或少数次跳转导致写分配策略和非写分配策略之间发生不必要的切换。
基于本实施例,优选的,由初始态转移至初级屏蔽态的条件是“依次到来的i个写访问请求映射的物理地址未发生跳转”,由初级屏蔽态转移至第1级缓冲态以及由各级缓冲态转移至下一级缓冲态的条件是“依次到来的多个写访问请求映射的物理地址未发生跳转”,由第1级缓冲态返回初级屏蔽态的条件是“先后到来的两个写访问请求映射的物理地址发生跳转”,由各级缓冲态返回上一级缓冲态的条件是“先后到来的两个写访问请求映射的物理地址发生跳转”,由初级屏蔽态转移至初始态的条件是“依次到来的多个写访问请求映射的物理地址连续Y3次发生跳转”。然而本实施例不限于此,例如:由初级屏蔽态转移至第1级缓冲态的条件/由各级缓冲态转移至下一级缓冲态的条件还可以是“当前接收到的写访问请求与前一写访问请求映射至连续的物理地址”。
在内存拷贝操作结束后,存储控制逻辑将会根据后续的写访问请求恢复写分配策略。
与上述实施例1和实施例2类似,本实施例在内存拷贝等用于处理访问频率较低的数据的操作中,减少了写分配策略和非写分配之间不必要的切换,提高了处理器的性能和效率。
实施例4
根据另一个实施例,存储控制单元123还可以包括用于存储缓冲深度值的寄存器,存储控制逻辑可以根据缓冲值实现相应的存储控制方法。
图6示出根据本发明的一个实施例的存储控制方法的流程示意图。
如图6示出的操作601,在初始阶段采用写分配策略,且缓冲深度值为初始值。
在操作602中,若判断结果信息表征依次到来的至少两个写访问请求映射的物理地址未发生跳转,则按照第一预设梯度增大缓冲深度值,例如对缓冲深度值进行加1运算。
在操作603中,若判断结果信息表征依次到来的至少两个写访问请求映射的物理地址不连续,则按照第二预设梯度减小缓冲深度值,例如对缓冲深度值进行减1运算。第二预设梯度例如与第一预设梯度相等。
在操作604中,判断缓冲深度值是否小于设定阈值,若是,则执行操作605以采用写分配策略,若否,则执行操作606以采用非写分配策略。
在一些实施例中,设定阈值大于/等于初始值与第一预设梯度(或第二预设)之和,从而在依次到来的写访问请求映射的物理地址出现单次跳转或较少次的跳转时不会由非写分配策略恢复至写分配策略。
本实施例在内存拷贝等用于处理访问频率较低的数据的操作中,同样可以避免因写访问请求映射的物理地址发生跳转而导致写分配策略和非写分配之间发生不必要的切换,提高了处理器的性能和效率。
至此,通过示例描述了根据依次到来的写访问请求映射的物理地址是否发生跳转选择写分配策略和非写分配策略之一的存储控制方法、存储控制装置以及相关的处理装置和计算机系统。
在传统方案中,若检测到连续的写访问请求映射至连续的物理地址(即未发生跳转),则采用非写分配策略响应写访问请求;一旦检测到连续的写访问请求映射的物理地址发生跳转,则直接退出非写分配操作并切换至写分配操作。
然而,对于连续的写访问请求,一些可能不会被重复访问的数据不一定对应连续的物理地址。例如,在内存拷贝等操作过程中,处理器可能每隔一段时间就需要跳转到其他地址上进行内存搬运等操作;在一些进程中,需要被连续访问的数据可能具有连续的虚拟地址,但这些连续的虚拟地址可能会映射至不连续的物理地址。传统方案在这些发生物理地址跳转的情况下都会采用写分配操作,这将会降低处理器的效率、损耗处理器的性能。
相比于传统方案,本公开实施例提供的存储控制方法、存储控制装置、处理装置和计算机系统能够检测依次到来的写访问请求所映射的物理地址是否发生多次跳转,若依次到来的多个写访问请求映射的物理地址连续发生跳转的次数小于预设次数,则维持采用非写分配策略而不将写访问请求指定的写入数据存入高速缓冲存储器和/或存储器,以尽量避免在处理访问几率较低的信息时选择通过写分配策略完成写入数据的存储、避免访问概率较低的写入数据被存入高速缓冲存储器、提升计算机系统的性能和效率、增强处理器和计算机系统的鲁棒性和稳定性。
本申请还公开了一种包括存储于其上的计算机可执行指令的计算机可读存储介质,所述计算机可执行指令在被处理器执行时使得所述处理器执行本文所述的各实施例的方法。
此外,本申请还公开了一种系统,该系统包括用于实现本文所述的各实施例的方法的装置。
本申请还公开了一种处理装置,该处理装置包括上述处理器、处理器核或集成了上述处理器或处理器核的片上系统。
需要领会,以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本说明书的实施例存在许多变型。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
例如,在一些实施例中,存储控制单元可以包括使能寄存器,通过配置使能寄存器中的至少一位数值,可以设置存储控制单元的开启和关闭。
应该理解,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例而言,由于其基本相似于装置和系统实施
例中描述的方法,所以描述的比较简单,相关之处参见其他实施例的部分说明即可。
应该理解,上述对本说明书特定实施例进行了描述。其它实施例在权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
应该理解,本文用单数形式描述或者在附图中仅显示一个的元件并不代表将该元件的数量限于一个。此外,本文中被描述或示出为分开的模块或元件可被组合为单个模块或元件,且本文中被描述或示出为单个的模块或元件可被拆分为多个模块或元件。
还应理解,本文采用的术语和表述方式只是用于描述,本说明书的一个或多个实施例并不应局限于这些术语和表述。使用这些术语和表述并不意味着排除任何示意和描述(或其中部分)的等效特征,应认识到可能存在的各种修改也应包含在权利要求范围内。其他修改、变化和替换也可能存在。相应的,权利要求应视为覆盖所有这些等效物。
Claims (32)
1.一种存储控制装置,其特征在于,包括:
地址检测单元,适于检测依次到来的写访问请求映射的物理地址是否发生跳转;以及
逻辑控制单元,与所述地址检测单元耦接,适于在高速缓冲存储器未命中且依次到来的多个所述写访问请求映射的物理地址未发生跳转的情况下采用非写分配策略处理所述写访问请求,
其中,在所述非写分配策略下,若依次到来的多个所述写访问请求映射的物理地址连续发生跳转的次数小于预设次数,则所述逻辑控制单元维持采用所述非写分配策略,所述预设次数大于1。
2.根据权利要求1所述的存储控制装置,其特征在于,所述写访问请求包括:
存储指令映射的物理地址;以及
所述存储指令指定的写入数据,
在所述非写分配策略下,所述写入数据被写入存储器且未被写入所述高速缓冲存储器。
3.根据权利要求2所述的存储控制装置,其特征在于,所述逻辑控制单元适于:
在所述非写分配策略下,若依次到来的多个所述写访问请求映射的物理地址连续发生跳转的次数大于/等于所述预设次数,则所述逻辑控制单元采用写分配策略,
在所述写分配策略下,所述写入数据被写入高速缓冲存储器。
4.根据权利要求3所述的存储控制装置,其特征在于,所述逻辑控制单元适于:
在初始态下,选择采用所述写分配策略,若依次到来的所述写访问请求映射的物理地址未发生跳转,所述逻辑控制单元退出所述初始态并进入初级屏蔽态;
在所述初级屏蔽态下,采用非写分配策略,若依次到来的多个所述写访问请求映射的物理地址连续发生跳转的次数等于所述预设次数,则返回所述初始态。
5.根据权利要求4所述的存储控制装置,其特征在于,所述逻辑控制单元还适于:
在所述初级屏蔽态下,若依次到来的所述写访问请求映射的物理地址未发生跳转,则进入第1级缓冲态;
在所述第1级缓冲态下,若依次到来的所述写访问请求映射的物理地址发生跳转,则返回所述初级屏蔽态。
6.根据权利要求5所述的存储控制装置,其特征在于,所述逻辑控制单元还适于:
在所述第1级缓冲态至第K-1级缓冲态下,若依次到来的多个所述写访问请求映射的物理地址未发生跳转,则转移至下一级所述缓冲态;
在第2级缓冲态至第K级缓冲态下,若依次到来的所述写访问请求映射的物理地址发生跳转,则转移至上一级所述缓冲态,
K为大于/等于2的自然数。
7.根据权利要求3所述的存储控制装置,其特征在于,还包括用于存储缓冲深度值的寄存器,所述逻辑控制单元还适于:
在初始阶段采用所述写分配策略,并将所述缓冲深度值复位为初始值;
若依次到来的所述写访问请求依次映射至连续的物理地址,则按照第一预设梯度增大所述缓冲深度值;
若依次到来的所述写访问请求映射的物理地址发生跳转,则按照第二预设梯度减小所述缓冲深度值;
当所述缓冲深度值小于设定阈值时,选择采用所述写分配策略,当所述缓冲深度值大于/等于所述设定阈值时,选择采用所述非写分配策略。
8.根据权利要求7所述的存储控制装置,其特征在于,所述设定阈值大于/等于所述初始值与所述第一预设梯度之和。
9.根据权利要求3所述的存储控制装置,其特征在于,所述写访问请求还包括写策略信息,所述写策略信息指示所述写分配策略和所述非写分配策略之一,
所述逻辑控制单元被配置以执行:
屏蔽所述写访问请求的所述写策略信息,以选择采用所述非写分配策略;或
根据所述写访问请求的所述写策略信息,采用所述写分配策略。
10.根据权利要求3所述的存储控制装置,其特征在于,还包括:
读缓冲单元,适于在所述写分配策略下向所述存储器发起读请求,并将所述存储器返回的数据块存入所述高速缓冲存储器,以便根据所述写入数据修改所述数据块。
11.根据权利要求3所述的存储控制装置,其特征在于,还包括:
写缓冲单元,适于在所述非写分配策略下向所述存储器发起写请求,以便根据所述写入数据修改所述存储器中相应的数据块。
12.根据权利要求1所述的存储控制装置,其特征在于,所述预设次数设置为固定值,或根据内存访问函数被调用的次数确定,
所述内存访问函数由至少一个所述写访问请求实现。
13.一种处理装置,其特征在于,所述处理装置为处理器、处理器核或片上系统,并包括如权利要求1至12任一项所述的存储控制装置。
14.一种处理装置,其特征在于,所述处理装置为处理器、处理器核或片上系统,并包括:
如权利要求9所述的存储控制装置;
指令执行单元,适于根据所述存储指令提供所述写访问请求;
硬件寄存器,适于提供所述写策略信息。
15.根据权利要求14所述的处理装置,其特征在于,还包括:
内存管理单元,与所述寄存器耦接,适于提供与所述存储指令指定的虚拟地址匹配的表项,以便根据所述表项将所述虚拟地址转译为所述存储指令映射的物理地址,并向所述指令执行单元提供所述写策略信息。
16.根据权利要求14所述的处理装置,其特征在于,所述硬件寄存器为全局寄存器。
17.一种存储控制方法,其特征在于,包括:
检测依次到来的写访问请求映射的物理地址是否发生跳转;以及
若高速缓冲存储器未命中且依次到来的多个所述写访问请求映射的物理地址未发生跳转,则采用非写分配策略处理所述写访问请求,
其中,在所述非写分配策略下,若依次到来的多个所述写访问请求映射的物理地址连续发生跳转的次数小于预设次数,则维持采用所述非写分配策略,所述预设次数大于1。
18.根据权利要求17所述的存储控制方法,其特征在于,所述写访问请求包括:
存储指令映射的物理地址;以及
所述存储指令指定的写入数据,
在所述非写分配策略下,所述写入数据被写入存储器且未被写入所述高速缓冲存储器。
19.根据权利要求18所述的存储控制方法,其特征在于,还包括:
在所述非写分配策略下,若依次到来的多个所述写访问请求映射的物理地址连续发生跳转的次数大于/等于所述预设次数,则所述逻辑控制单元采用写分配策略,
在所述写分配策略下,所述写入数据被写入所述高速缓冲存储器。
20.根据权利要求19所述的存储控制方法,其特征在于,所述存储控制逻辑包括:
在初始状态下,选择采用所述写分配策略,若依次到来的多个所述写访问请求映射的物理地址未发生跳转,所述逻辑控制单元退出所述初始状态并进入初级屏蔽态;
在所述初级屏蔽态下,采用非写分配策略,若依次到来的多个所述写访问请求映射的物理地址连续发生跳转的次数等于所述预设次数,则返回所述初始态。
21.根据权利要求20所述的存储控制方法,其特征在于,所述存储控制逻辑还包括:
在所述初级屏蔽态下,若依次到来的多个所述写访问请求映射的物理地址未发生跳转,则进入第1级缓冲态;
在所述第1级缓冲态下,若依次到来的所述写访问请求映射的物理地址发生跳转,则返回所述初级屏蔽态。
22.根据权利要求21所述的存储控制方法,其特征在于,所述存储控制逻辑还包括:
在所述第1级缓冲态至第K-1级缓冲态下,若依次到来的多个所述写访问请求映射的物理地址未发生跳转,则转移至下一级所述缓冲态;
在第2级缓冲态至第K级缓冲态下,若依次到来的所述写访问请求映射的物理地址发生跳转,则转移至上一级所述缓冲态,
K为大于/等于2的自然数。
23.根据权利要求19所述的存储控制装置,其特征在于,所述存储控制逻辑包括:
在初始阶段采用所述写分配策略,并将所述缓冲深度值复位为初始值;
若依次到来的所述写访问请求映射的物理地址未发生跳转,则按照第一预设梯度增大所述缓冲深度值;
若依次到来的所述写访问请求映射的物理地址发生跳转,则按照第二预设梯度减小所述缓冲深度值;
当所述缓冲深度值小于设定阈值时,选择采用所述写分配策略,当所述缓冲深度值大于/等于所述设定阈值时,选择采用所述非写分配策略。
24.根据权利要求23所述的存储控制方法,其特征在于,所述设定阈值大于/等于所述初始值与所述第一预设梯度之和。
25.根据权利要求19所述的存储控制方法,其特征在于,所述写访问请求还包括写策略信息,所述写策略信息指示所述写分配策略和所述非写分配策略之一,
所述存储控制逻辑通过屏蔽所述写访问请求的所述写策略信息选择采用所述非写分配策略,或
根据所述写访问请求的所述写策略信息采用所述写分配策略。
26.根据权利要求25所述的存储控制方法,其特征在于,还包括:
获得与所述存储指令指定的虚拟地址匹配的表项;
根据所述表项的标识和数据将所述存储指令指定的虚拟地址转译为所述存储指令映射的物理地址;以及
根据所述表项的属性标志位提供所述写策略信息。
27.根据权利要求25所述的存储控制方法,其特征在于,所述写策略信息由全局寄存器提供。
28.根据权利要求19所述的存储控制方法,其特征在于,所述存储控制逻辑还包括:
在所述写分配策略下向所述存储器发起读请求,并将所述存储器返回的数据块存入所述高速缓冲存储器,以便根据所述写入数据修改所述数据块。
29.根据权利要求19所述的存储控制方法,其特征在于,所述存储控制逻辑还包括:
在所述非写分配策略下向所述存储器发起读请求,以便根据所述写入数据修改所述存储器中相应的数据块。
30.根据权利要求17所述的存储控制方法,其特征在于,所述预设次数设置为固定值,或根据内存访问函数被调用的次数确定,
所述内存访问函数由至少一个所述写访问请求实现。
31.一种计算机系统,其特征在于,包括:
如权利要求13至16任一项所述的处理装置;
高速缓冲存储器,与所述存储控制装置耦接;以及
存储器,与所述存储控制装置耦接。
32.根据权利要求31所述的计算机系统,其特征在于,所述计算机系统由片上系统实现。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910913440.9A CN112559389A (zh) | 2019-09-25 | 2019-09-25 | 存储控制装置、处理装置、计算机系统和存储控制方法 |
PCT/US2020/043519 WO2021061269A1 (en) | 2019-09-25 | 2020-07-24 | Storage control apparatus, processing apparatus, computer system, and storage control method |
US16/938,723 US11436146B2 (en) | 2019-09-25 | 2020-07-24 | Storage control apparatus, processing apparatus, computer system, and storage control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910913440.9A CN112559389A (zh) | 2019-09-25 | 2019-09-25 | 存储控制装置、处理装置、计算机系统和存储控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112559389A true CN112559389A (zh) | 2021-03-26 |
Family
ID=74880923
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910913440.9A Pending CN112559389A (zh) | 2019-09-25 | 2019-09-25 | 存储控制装置、处理装置、计算机系统和存储控制方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11436146B2 (zh) |
CN (1) | CN112559389A (zh) |
WO (1) | WO2021061269A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117707994A (zh) * | 2024-02-02 | 2024-03-15 | 北京象帝先计算技术有限公司 | 请求缓冲器、系统、组件、设备及传输方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7039756B2 (en) * | 2003-04-28 | 2006-05-02 | Lsi Logic Corporation | Method for use of ternary CAM to implement software programmable cache policies |
JP2005149082A (ja) * | 2003-11-14 | 2005-06-09 | Hitachi Ltd | ストレージ制御装置、及びストレージ制御装置の制御方法 |
US7958312B2 (en) | 2005-11-15 | 2011-06-07 | Oracle America, Inc. | Small and power-efficient cache that can provide data for background DMA devices while the processor is in a low-power state |
JP2010250373A (ja) | 2009-04-10 | 2010-11-04 | Canon Inc | 情報処理装置、制御方法及びプログラム |
US8473669B2 (en) | 2009-12-07 | 2013-06-25 | Sandisk Technologies Inc. | Method and system for concurrent background and foreground operations in a non-volatile memory array |
US8458435B1 (en) | 2010-12-20 | 2013-06-04 | Western Digital Technologies, Inc. | Sequential write thread detection |
US8688915B2 (en) * | 2011-12-09 | 2014-04-01 | International Business Machines Corporation | Weighted history allocation predictor algorithm in a hybrid cache |
US9223710B2 (en) * | 2013-03-16 | 2015-12-29 | Intel Corporation | Read-write partitioning of cache memory |
GB2526849B (en) * | 2014-06-05 | 2021-04-14 | Advanced Risc Mach Ltd | Dynamic cache allocation policy adaptation in a data processing apparatus |
US20170255569A1 (en) * | 2016-03-01 | 2017-09-07 | Qualcomm Incorporated | Write-allocation for a cache based on execute permissions |
CN106507080B (zh) * | 2016-11-29 | 2018-07-17 | 广东欧珀移动通信有限公司 | 控制方法、控制装置及电子装置 |
US9996478B1 (en) * | 2016-12-09 | 2018-06-12 | Advanced Micro Devices, Inc. | No allocate cache policy |
-
2019
- 2019-09-25 CN CN201910913440.9A patent/CN112559389A/zh active Pending
-
2020
- 2020-07-24 US US16/938,723 patent/US11436146B2/en active Active
- 2020-07-24 WO PCT/US2020/043519 patent/WO2021061269A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US11436146B2 (en) | 2022-09-06 |
WO2021061269A1 (en) | 2021-04-01 |
US20210089459A1 (en) | 2021-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6151662A (en) | Data transaction typing for improved caching and prefetching characteristics | |
US6901505B2 (en) | Instruction causing swap of base address from segment register with address from another register | |
US6055650A (en) | Processor configured to detect program phase changes and to adapt thereto | |
US6076151A (en) | Dynamic memory allocation suitable for stride-based prefetching | |
US10656945B2 (en) | Next instruction access intent instruction for indicating usage of a storage operand by one or more instructions subsequent to a next sequential instruction | |
US5944815A (en) | Microprocessor configured to execute a prefetch instruction including an access count field defining an expected number of access | |
US7117290B2 (en) | MicroTLB and micro tag for reducing power in a processor | |
US6665749B1 (en) | Bus protocol for efficiently transferring vector data | |
US8924624B2 (en) | Information processing device | |
US6807622B1 (en) | Processor which overrides default operand size for implicit stack pointer references and near branches | |
CN107479860B (zh) | 一种处理器芯片以及指令缓存的预取方法 | |
US6088789A (en) | Prefetch instruction specifying destination functional unit and read/write access mode | |
US6889312B1 (en) | Selective zero extension based on operand size | |
US6513107B1 (en) | Vector transfer system generating address error exception when vector to be transferred does not start and end on same memory page | |
US20210089470A1 (en) | Address translation methods and systems | |
US20150143045A1 (en) | Cache control apparatus and method | |
US5958045A (en) | Start of access instruction configured to indicate an access mode for fetching memory operands in a microprocessor | |
CN112559049A (zh) | 用于指令高速缓存的路预测方法、访问控制单元以及指令处理装置 | |
US9367455B2 (en) | Using predictions for store-to-load forwarding | |
US6687806B1 (en) | Apparatus and method for generating 64 bit displacement and immediate values | |
JP3837289B2 (ja) | 同じ論理的空間を占有する複数のレジスタファイルを含むマイクロプロセッサ | |
WO2021061446A1 (en) | Storage management apparatus, storage management method, processor, and computer system | |
US20040243765A1 (en) | Multithreaded processor with multiple caches | |
CN112559389A (zh) | 存储控制装置、处理装置、计算机系统和存储控制方法 | |
US6880068B1 (en) | Mode dependent segment use with mode independent segment update |
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 |