CN102725741B - 高速缓冲存储器控制方法、装置和*** - Google Patents

高速缓冲存储器控制方法、装置和*** Download PDF

Info

Publication number
CN102725741B
CN102725741B CN201180003800.3A CN201180003800A CN102725741B CN 102725741 B CN102725741 B CN 102725741B CN 201180003800 A CN201180003800 A CN 201180003800A CN 102725741 B CN102725741 B CN 102725741B
Authority
CN
China
Prior art keywords
address
cache
memory
scope
realm
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
Application number
CN201180003800.3A
Other languages
English (en)
Other versions
CN102725741A (zh
Inventor
蔡安宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sichuan Huakun Zhenyu Intelligent Technology Co ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN102725741A publication Critical patent/CN102725741A/zh
Application granted granted Critical
Publication of CN102725741B publication Critical patent/CN102725741B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means

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

本发明提供一种高速缓冲存储器控制方法、装置和***,其中方法包括:获取目标对象的变化的地址范围;根据变化的地址范围确定地址变化类型,若为内存地址的分配或者释放,则确定与变化的地址范围对应的cache操作地址范围,并控制cache在cache操作地址范围执行cache操作信息;所述cache操作信息为禁止所述cache在所述cache操作地址范围执行数据同步。本发明避免了cache执行不必要的同步工作,显著提高了CPU的处理效率,降低了对总线和内存带宽的需求。

Description

高速缓冲存储器控制方法、装置和***
技术领域
本发明涉及计算机技术,尤其涉及一种高速缓冲存储器控制方法、装置和***。
背景技术
中央处理器(Central Process Unit,简称:CPU)在运算时需要从主存储器即内存中读取数据,但是,内存的存取速度比CPU的操作速度慢得多,使得CPU的处理能力不能充分发挥,影响整个***的工作效率。为了缓和CPU和内存速度不匹配的矛盾,通常在CPU和内存之间采用高速缓冲存储器cache,cache可以预先读取内存中的数据,CPU直接对cache进行存取操作。
具体的,内存中包括用于存放数据的栈内存和堆内存,其中,栈内存是用于存储程序运行中的临时数据的一段内存,堆内存是为某个应用程序分配的一段内存,cache会保持与栈内存和堆内存之间的数据一致,以保证CPU的正确读取。例如,当内存中新分配一段栈内存或者堆内存,并在程序对该内存操作时,cache会先读取该新分配地址对应的旧的存储数据,以保持数据一致;但是新分配的栈内存或者堆内存后续会存放新数据,cache读取的这些旧数据实际是无效数据,根本不需要读取。又例如,当程序完成对内存的使用后,进行栈回退或者堆内存释放操作,即释放所占用的内存地址时,为保持数据一致,cache也会将其内存储的在程序运行中改写过的数据写回到内存中,而实际上这些数据是已经使用过的数据,已经成为无效数据,根本不需要写回。
因此,现有技术的cache执行了很多不必要的数据同步工作,而这些同步工作会使得在程序运行中CPU的ALU或者其他部件需要等待cache做完这些工作,增加了CPU的等待时间,降低了CPU的处理效率,并且,浪费带宽资源。
发明内容
本发明的第一个方面是提供一种高速缓冲存储器控制方法,以减少cache不必要的同步工作,提高CPU的处理效率,节省带宽。
本发明的另一个方面是提供一种高速缓冲存储器控制装置,以减少cache不必要的同步工作,提高CPU的处理效率,节省带宽。
本发明的又一个方面是提供一种高速缓冲存储器控制***,以减少cache不必要的同步工作,提高CPU的处理效率,节省带宽。
本发明提供的高速缓冲存储器cache控制方法,包括:
获取目标对象的变化的地址范围;
根据所述变化的地址范围确定地址变化类型;若所述地址变化类型为内存地址的分配或者释放;则
确定与变化的地址范围对应的cache操作地址范围,并控制cache在cache操作地址范围执行cache操作信息;所述cache操作信息为禁止所述cache在所述cache操作地址范围执行数据同步。
本发明提供的高速缓冲存储器cache控制***,包括:
地址检测模块,用于获取目标对象的变化的地址范围;
cache控制模块,用于根据所述变化的地址范围确定地址变化类型;若所述地址变化类型为内存地址的分配或者释放,则确定与变化的地址范围对应的cache操作地址范围,并控制cache在cache操作地址范围执行cache操作信息;所述cache操作信息为禁止所述cache在所述cache操作地址范围执行数据同步。
本发明提供的高速缓冲存储器控制装置,包括本发明所述的高速缓冲存储器控制***。
本发明高速缓冲存储器控制方法的技术效果是:通过获取目标对象的变化的地址范围得到地址变化类型,并可以根据该变化类型控制cache执行对应操作,即在内存地址分配或者释放时,禁止cache进行数据同步,从而解决了CPU等待延时的问题,避免了cache执行不必要的同步工作,显著提高了CPU的处理效率。
本发明高速缓冲存储器控制装置的技术效果是:通过获取目标对象的变化的地址范围得到地址变化类型,并可以根据该变化类型控制cache执行对应操作,即在内存地址分配或者释放时,禁止cache进行数据同步,从而解决了CPU等待延时的问题,避免了cache执行不必要的同步工作,显著提高了CPU的处理效率。
本发明高速缓冲存储器控制***的技术效果是:通过获取目标对象的变化的地址范围得到地址变化类型,并可以根据该变化类型控制cache执行对应操作,即在内存地址分配或者释放时,禁止cache进行数据同步,从而解决了CPU等待延时的问题,避免了cache执行不必要的同步工作,显著提高了CPU的处理效率。
附图说明
图1为本发明高速缓冲存储器控制***一实施例的应用结构示意图;
图2为本发明高速缓冲存储器控制***另一实施例的工作流程示意图;
图3为本发明高速缓冲存储器控制***再一实施例的工作流程示意图;
图4为本发明高速缓冲存储器控制方法实施例的流程示意图。
具体实施方式
实施例一
本发明实施例首先提供一种高速缓冲存储器控制***,为了使得对于该***的结构和原理的说明更加清楚,本实施例是将该***应用在中央处理器CPU中为例对***进行描述。
图1为本发明高速缓冲存储器控制***一实施例的应用结构示意图,如图1所示,本实施例的***可以包括:地址检测模块11、cache控制模块12;
其中,地址检测模块11,用于获取目标对象的变化的地址范围;
例如,所述的目标对象可以包括栈内存、堆内存,或者用于存放代码段、数据段等数据的内存等。所述的变化的地址范围指的是,例如,对于栈内存,该变化的地址范围对应于栈增长或者栈回退的地址范围,可以获取该地址范围对应的初始内存地址和最新内存地址;对于堆内存,该变化的地址范围对应于堆内存分配或者释放时的地址范围,可以获取该地址范围对应的起始地址和结束地址。
例如,该地址检测模块11与CPU中的算术逻辑单元算数逻辑单元(Arithmetic Logic Unit,简称:ALU)连接,可以从ALU中获取栈内存的初始内存地址和最新内存地址。举例说明,原来的栈所占用的内存地址范围为a1~a2,在新分配栈内存后,新的栈所占用的内存地址范围为a1~a3,则该栈内存的初始内存地址为a2,最新内存地址为a3;堆内存的地址同理。
cache控制模块12,与地址检测模块11连接,用于根据地址检测模块11检测到的目标对象的初始内存地址和最新内存地址确定地址变化类型,所述地址变化类型包括内存地址的分配或者释放;
例如,所述的内存地址的分配:包括栈增长、堆分配;所述的内存地址的释放:包括栈回退、堆释放。
例如,仍以上述的栈内存变化为例,假设该栈内存为向高地址增长型。则若地址a3大于地址a2,则表明该栈内存的变化为“栈增长”,即,新分配了一段栈内存;若地址a3小于a2,则表明该栈内存的变化为“栈回退”,即,释放一段栈内存。所以,通过检测内存地址,可以根据该内存地址的变化分析得到变化类型;而一般新分配内存表示可能有新的应用程序将要运行并使用该内存,释放内存表示应用程序已经运行完毕;即,通过感知变化的地址范围得到了应用程序的运行行为。
该cache控制模块12,还用于在所述地址变化类型为内存地址的分配或者释放时,确定与变化的地址范围对应的cache操作地址范围,并控制cache在cache操作地址范围执行cache操作信息;所述cache操作信息为禁止所述cache在所述cache操作地址范围执行数据同步。
例如,若地址变化类型为内存地址的分配,则cache控制模块12确定与变化的地址范围对应的cache操作地址范围,即与分配的内存地址对应的cache操作地址范围,并控制cache在cache操作地址范围执行cache操作信息,其中,cache操作信息为:禁止所述cache在所述cache操作地址范围执行数据同步。例如,在所述cache建立与所述变化的地址范围对应的高速缓存行单元,所述高速缓存行单元为所述cache操作地址范围;并将状态标识设置为clean,根据cache的工作原理,只要设置为未修改标识例如clean就能够禁止clean-line从下级存储器执行数据读入同步。
若地址变化类型为内存地址的释放,则确定与变化的地址范围对应的cache操作地址范围,即与释放的内存地址对应的cache操作地址范围,并控制cache在cache操作地址范围执行cache操作信息,其中,cache操作信息为:禁止所述cache在所述cache操作地址范围执行数据同步。例如,确定与所述变化的地址范围对应的高速缓存行单元,所述高速缓存行单元为所述cache操作地址范围;并禁止高速缓存行单元向下级存储器执行数据写出同步。所述的禁止执行数据同步的具体实施可以是,例如,将cache-line的状态标识设置为clean;或者,将cache-line的状态标识设置为无效(即表示该cache-line未使用);或者,将cache-line的状态标识设置有效,但是在状态标识处增加一比特位,用于存储标识cache-line中的数据无效的状态标识;上述措施均可以使得cache-line不再执行数据同步。所述的下级存储器包括cache中的下一级cache或者内存。
例如,cache中通常是按照高速缓存行单元(cache-line)来存储的,即cache中一般设置有多个存储数据的cache-line,操作指令也通常是对整个cache-line的操作。由地址检测模块11所获得的初始内存地址和最新内存地址构成的地址范围有可能其中一部分地址对应的是部分cache-line,不是完整的一个cache-line,此时一般是不进行操作的。
举例说明,假设一个cache-line的长度是32字节,有两个cache-line,其中一个是0~32字节且均写满数据,另一个是33~64字节且只有33~36字节存储数据其他空间为空。现在发生了栈回退,栈回退对应的地址范围是28~36字节,则如果该栈回退对应的地址范围均设置为禁止数据同步,则两个cache-line需要全部禁止同步,这显然不合理,因为,第一个cache-line中的0~27字节的数据是需要同步的,否则会造成数据不一致。因此,只能是对第二个cache-line禁止同步,第一个cache-line需要同步。
由此可以看到,cache操作地址范围与实际检测到的内存地址变化范围并不一定是完全相同的,需要根据cache的内部结构即是按照cache-line组织存储,以及cache中的操作方式即以整个cache-line为操作对象,来确定具体的cache操作地址范围,这里的cache操作地址范围可以理解为,对cache中的哪几个cache-line执行操作,或者这几个cache-line对应的地址。
其中,cache中的每一个cache-line都对应设置有一个该cache-line的状态标识,cache-line也是按照该状态标识进行操作的。例如,应用程序在运行时,所涉及到的大部分数据存取操作都是CPU直接从cache执行的,cache中的数据被改写,cache将被改写的cacheline标记为dirty,表示被改写,后续cache会将数据写回到下级存储器(内存或下级cache),以保证数据的正确性。相应的,本实施例在内存地址分配或者释放时,禁止所述cache在所述cache操作地址范围执行数据同步。例如,确定与所述变化的地址范围对应的高速缓存行单元,所述高速缓存行单元为所述cache操作地址范围;并将cache-line的状态标识设置为clean,使得cache-line根据该状态标识不再读写无效数据,从而减少CPU的等待延时,提高CPU的处理效率,并且节省了带宽资源。
更进一步的,本实施例的cache控制模块12可以包括:地址和操作生成单元13、cache指令生成单元14、cache操作控制单元15。
其中,地址和操作生成单元13,与地址检测模块11连接,可以接收地址检测模块11得到的目标对象的变化的地址范围,并可以根据上述变化的地址范围判断得到地址变化类型为分配或者释放;以及,可以确定该分配或者释放的内存地址对应的cache操作地址范围,所述的cache操作地址范围为仅包括所述分配或者释放的内存地址中的地址的高速缓存行单元;还确定所述地址变化类型对应的cache操作信息。
例如,若为内存地址的分配,则所述cache操作信息为所述在cache建立与分配的内存地址对应的高速缓存行单元,并禁止所述cache在所述高速缓存行单元执行数据同步;若为内存地址的释放,则所述cache操作信息为所述禁止所述cache在所述高速缓存行单元执行数据同步。
其中,cache指令生成单元14,与地址和操作生成单元13连接,用于接收地址和操作生成单元13传送的所述cache操作地址范围、以及所述cache操作信息;并将上述信息转换为用于控制cache操作的cache控制指令,例如,生成“cache操作地址和指令”序列。
可选的,cache指令生成单元14,具体用于将所述cache操作地址范围转换为地址范围指令,或者,将所述cache操作地址范围转换为对应的地址序列指令。即,控制cache操作可以是对cache中的地址范围或者地址序列,例如,通常在对cache控制时是根据地址序列,假设某一个cache-line的地址范围是a1~a2,另一个cache-line的地址范围是a3~a4,如果要对这两个cache-line操作,则控制指令是地址序列“a2、a4”,即从每个cache-line的地址范围中选择一个单独的地址,用于标识该cache-line,通过地址序列“a2、a4”就可以得知控制的是a2对应的cache-line以及a4对应的cache-line。本实施例对此进行了扩展,通过地址范围控制cache,控制指令可以为“a1~a2”,cache就可以根据该地址范围得知需要操作的是哪个cache-line。
其中,cache操作控制单元15,位于cache中,并且与cache指令生成单元14连接,用于根据cache指令生成单元14生成的cache控制指令,控制对应的cache操作信息,例如,将cache的与变化的地址范围对应的高速缓存行单元的状态标识设置为禁止数据同步同步标识例如clean。
可选的,地址和操作生成单元13,具体用于由所述cache操作地址范围中选取部分操作地址范围,在所述部分操作地址范围执行cache操作信息即禁止执行数据同步。即,操作的cache地址范围可以是部分地址,只实现部分地址的cache操作。例如,由内存地址变化得到的初始cache操作地址范围包括三个cache-line,可以选择其中的两个cache-line作为实际的cache操作地址范围,另一个cache-line不进行相关cache操作信息。
可选的,当地址变化类型为内存地址的释放时,cache控制模块12,具体用于将cache的高速缓存行单元的状态标识设置为未修改标识;或者,将所述cache的高速缓存行单元的状态标识设置为无效标识;或者,为所述cache的高速缓存行单元中的存储数据设置无效标识。
可选的,地址检测模块11中存储栈地址或者堆地址的方式可以为:通过寄存器方式,将上述地址存储在地址检测模块11的寄存器中;或者,可以是指令方式,通过地址传输指令,传递相关地址和操作到地址检测模块11中。所述指令方式,可以采用现有指令,操作通用寄存器,将上述地址送到地址检测模块11中,或者在已有指令集基础上新增指令,该新增的指令将上述地址存储到地址检测模块11。地址和操作生成单元13可以根据地址检测模块11后续送入的地址,产生cache操作地址范围和操作指令。指令方式每次操作可以是一个地址,分2次操作;或者一次指令操作两个地址;指令操作码可以包含对应的操作类型,如:将所述的地址对应的cache-line的状态置为clean、无效或者数据无效。例如,通过对cache操作的指令来完成上述的“对特定的cache-line”进行“禁止所述cache在所述高速缓存行单元执行数据同步”的操作;以代码的方式表示,可以是:Cache_clean r1,r2,或者Cache_operationr1,r2,clean;其中r1,r2是通用寄存器,存放地址范围,可以是起始地址+长度,也可以是起始地址+结束地址等。
需要说明的是,本实施例的各模块的划分只是一种示例,具体实现中,并不限制在本实施例的模块划分方式,只要能实现该整个***的功能即可。例如,地址序列的产生可以在地址和操作生成单元,也可以在cache指令生成单元等。并且,本实施例的各个模块或者单元,可以是硬件实现,也可以是软件实现,不做限制。
此外,本实施例的方案适用于一级或者多级cache,当cache为包括多级存储单元的多级cache时,多级cache通常下级为上级提供数据缓存,容量更大,但速度更低,例如L2cache、L3cache,各级cache存储的数据需要保持一致。交互主要也是数据同步。针对多级cache,在每一级cache都包括本实施例的地址和操作生成单元、cache指令生成单元和cache操作控制单元,该三个单元可采取与前级相同的处理,不再赘述;只是,由于各级cache-line size不同,各级cache对应的cache操作地址范围是不同的。
可选的,多级存储单元中的上一级存储单元分别向下一级存储单元发送所述cache操作地址范围,以使得所述下一级存储单元根据所述cache操作地址范围以及下一级存储单元的高速缓存行单元的长度,生成对应所述下一级存储单元的cache操作地址范围。或者,多级存储单元中的最高一级存储单元将所述变化的地址范围同时发送至所有下级存储单元,以使得所述下级存储单元根据所述变化的地址范围,分别得到对应所述下级存储单元的cache操作地址范围。
本实施例的高速缓冲存储器控制***,通过检测栈或堆内存的地址变化类型,可以根据该变化类型控制cache执行对应操作,即在内存地址分配或者释放时,禁止cache进行数据同步,从而解决了CPU等待延时的问题,避免了cache执行不必要的同步工作,显著提高了CPU的处理效率。
实施例二
图2为本发明高速缓冲存储器控制***另一实施例的工作流程示意图,本实施例是结合图1所示的***结构,以及该图2所示的***工作流程,以栈增长、栈回退的cache控制为例,对高速缓冲存储器控制***的工作原理进行说明。其中,本实施例是以CPU中不存在内存管理单元(MemoryManagement Unit,简称:MMU)为例,即cache地址和所检测到的内存地址的格式是一致的,不需要进行虚拟地址(程序内存地址)到物理地址(cache地址)的转换。
201、地址检测模块检测栈指针的值,获得栈内存的初始内存地址和最新内存地址;
其中,栈内存的地址是由栈指针标识的,CPU在改变栈内存的地址时,会相应使得ALU中的栈指针寄存器的值发生改变。高速缓冲存储器控制***中的地址检测模块11可以获取ALU中的栈指针值,该栈指针值即为内存地址,检测栈指针值是否发生变化;并在发生变化时,将旧栈指针对应的初始内存地址、以及新栈指针对应的最新内存地址发送至地址和操作生成单元13。
202、地址和操作生成单元根据栈指针值判断栈内存的变化类型;
栈增长的方向可以分为栈向低地址增长、栈向高地址增长;本实施例以栈向低地址增长为例,但是对于栈向高地址增长也同样适用。
例如,地址和操作生成单元比较新、旧栈指针的值,如果新地址比旧地址小,则表明栈内存的变化类型为栈增长;如果新地址比旧地址大,则表明栈内存的变化类型为栈回退。
203、地址和操作生成单元根据栈内存的变化,确定cache操作地址范围;并根据栈内存的变化类型,得到与该变化类型对应的cache操作信息;
其中,所述的与栈内存的变化类型对应的cache操作信息可以是预先设定在地址和操作生成单元的,地址和操作生成单元在确定地址变化类型后,可以查询获得对应的cache操作信息。
具体的,如果是栈增长,则对应的cache操作信息是:在cache建立与分配的内存地址对应的高速缓存行单元即cache-line,并将高速缓存行单元的状态标识设置为禁止数据同步,例如标记为clean;由于标记为clean,cache-line就会认为该数据不需要执行同步,所以不会从下级存储器件获取同步数据;所述的高速缓存行单元为cache操作地址范围;
例如,对于栈向低地址增长的类型,cache操作地址范围是:从新的栈地址向低地址按cache-line对齐开始,到旧的栈地址向低地址按cache-line长度对齐对齐,即cache操作地址范围[S1,S2]=[floor(new SP(新的栈地址),cache-line size),floor(old SP(旧的栈地址),cache-line size)];
举例说明:假设旧的栈地址为136,新的栈地址为68,由于68<136,所以为栈增长,单个cache-line的长度为32,地址高于136的数据,还在被使用,所以不能优化,故地址136所在的cache-line不能被优化,由此则cache操作地址范围[S1,S2]=[floor(68,32),floor(136,32)]=[64,128]。
可能可选的,该cache操作地址范围,在具体实现中,可以是从地址范围开始,按照cache-line增长,也可以是地址范围本身起始和结束地址按照cache-line对齐。
例如,地址范围可以采用如下方式:
1)[起始地址,结束地址];如上述[0x80202012,0x80203034];
2)[起始地址,长度];如上述地址范围可表述为[0x80202012,0x00001000];
3)[起始地址,次数];如上述地址范围可表述为[0x80202012,128];
4)[起始地址对齐到cache line,结束地址对齐到cache line];如上述地址范围可表述为[0x80202020,0x80203020];
5)[起始地址对齐到cache line,长度];如上述地址范围可表述为[0x80202020,0x00001000];
6)[起始地址对齐到cache line,次数];如上述地址范围可表述为[0x80202020,128];
具体的,如果是栈回退,则对应的cache操作信息是:控制所述cache在所述cache的高速缓存行单元禁止执行数据同步;
例如,具体实现中,可以是将对应的cache操作地址范围对应的cache-line的状态标识设置为clean,则该数据将不再被同步;或者,由于栈回退的数据是已经使用过的无效数据,也可以直接将所述的cache-line的数据进行消除。从而避免了cache执行不必要的数据同步工作,提高了CPU的处理效率。
所述对应的cache操作地址范围是:从新的栈地址向低地址按cache-line对齐开始,到旧的栈地址向上按cache-line长度对齐对齐,即[S1,S2]=[floor(old SP,cache-line size),floor(new SP,cache-line size)]。
举例说明:假设旧的栈地址为68,新的栈地址为136,由于136>68,所以为栈回退,单个cache-line的长度为32,地址高于136的数据,还在被使用,所以不能优化,故地址136所在的cache-line不能被优化,由此则cache操作地址范围[S1,S2]=[floor(68,32),floor(136,32)]=[64,128]。
204、地址和操作生成单元将cache操作地址范围、cache操作信息发送至cache指令生成单元,由cache指令生成单元生成cache控制指令;
其中,cache指令生成单元14在接收到cache操作地址范围、cache操作信息之后,将其生成用于控制cache的指令序列;
205、cache指令生成单元将cache控制指令发送至cache操作控制单元15;由cache操作控制单元15根据所述cache控制指令,控制cache在所述cache操作地址范围执行所述cache操作信息。
进一步的,上述的工作流程是以栈内存的变化为例;对于堆内存的变化,***的工作流程与上述流程基本相同,也是从ALU中获取到堆内存的地址范围,并执行上述的流程,不再赘述。
其中,在对于堆内存的变化时,堆内存的地址范围可以是由软件从ALU中获取后写入到地址检测模块11中的寄存器的。
其中,在对于堆内存的变化时,举例说明堆内存释放时的cache操作地址范围的确定:堆内存释放时,释放的内存地址从0x80202012-0x80203034,这段地址范围内的数据不会再被使用,因此也不需要同步到下级存储器。但是0x80202012之前的数据,以及0x80203034之后的数据(不含这2个地址,都有可能被程序使用),因此cache优化操作不能对这部分数据进行优化。因此实际操作的地址范围是[roof(0x80202012,32),floor(0x80203034,32)]=[0x80202020,0x80203020],共涵盖128个cache-line。
其中,针对堆内存变化的cache操作地址范围的确定,可归纳为[roof(start,cache-line size,floor(end,cache-line size)],针对栈内存变化的cache操作地址范围的确定,可以归纳为:如果向低地址增长,则向低地址对齐,即为[floor(start,cache-line size,floor(end,cache-line size)];如果向高地址增长,则向高地址对齐,即为[roof(start,cache-line size,roof(end,cache-line size)]。
本实施例的高速缓冲存储器控制***,通过检测栈或堆内存的地址变化类型,可以根据该变化类型控制cache执行对应操作,即在内存地址分配或者释放时,禁止cache进行数据同步,从而解决了CPU等待延时的问题,避免了cache执行不必要的同步工作,显著提高了CPU的处理效率。
实施例三
图3为本发明高速缓冲存储器控制***再一实施例的工作流程示意图,本实施例与图2所示实施例的区别在于,本实施例的***所应用的CPU中存在MMU,需要进行虚拟地址(内存地址)到物理地址(cache地址)的转换;并且以通过检测MMU得知发生了任务切换为例,所述的任务指的是应用程序,切换是指程序切换到另一个栈运行。
例如intel x86CPU的cr3寄存器的值发生变换,则说明任务发生切换。
此外,具体实施中,也可以检测MMU中的转译查找缓存(TranslationLookaside Buffer,简称:TLB),通过将栈指针虚拟地址送给TLB,TLB转换得到物理地址,如果所命中的TLBentry中的ASID不一样,则说明发生了切换。例如,如果MMU的映射关系未发生变化,但是通过TLB转换栈指针的虚拟地址到物理地址时,所命中的TLB中的ASID发生变化,即可认为是发生了任务切换。
另外,对于一个CPU,栈的范围是受限的,所以也可以通过比较栈指针的变化范围是否大于设定阈值,来确定栈是否发生切换。这个特定值可由软件提供到特定的寄存器,也可由硬件短路硬编码固定。即,在MMU的映射关系信息发生变化时,栈内存一定发生切换;在MMU的映射关系信息未发生变化时,如果栈内存的变化的地址范围超过设定阈值,则也断定任务切换即栈内存发生切换。此时可以获取变化之后的内存映射关系信息对应的栈内存的初始内存地址和最新内存地址,或者,超过设定阈值的栈内存对应的初始内存地址和最新内存地址。
301、地址检测模块检测栈指针的值,获得栈内存的初始内存地址和最新内存地址;并且,地址检测模块还通过MMU/TLB查询内存地址对应的cache地址,以及是否发生任务切换;
可选的,也可以是地址和操作生成单元执行所述的地址转换操作,即通过MMU/TLB查询内存地址对应的cache地址。
同时,地址检测模块还通过检测MMU/TLB的信息查看是否发生任务切换。具体的,MMU/TLB中存储有当前任务的主要信息,例如,与任务对应的内存映射关系信息,当任务发生变化时,MMU/TLB中的内存映射关系信息也会发生变化,地址检测模块就可以通过检测MMU的信息变化,检测到是否发生任务切换。
假设本实施例中发生了任务切换;
302、地址检测模块将转换后的cache地址发送至地址和操作生成单元,并且通知地址和操作生成单元,发生了任务切换;
303、地址和操作生成单元将之前接收到的地址检测模块检测到的栈地址设置为无效状态,并接收新任务的栈指针值,作为新任务的初始内存地址;
因为任务切换前后,栈指针变化之间的空间并不构成一个栈帧;所以在任务切换完成前,栈指针的值是无效的。任务切换时,先保存被切换出去的任务的运行环境(寄存器等),再切换内存映射,在内存映射完成后,将新切换进来的任务的运行环境恢复,此时将新任务的栈指针值写入栈指针寄存器,新任务的程序继续运行;地址检测模块将新任务的栈指针值发送到地址和操作生成单元,该栈指针是该新任务上次的内存地址,即可以作为该新任务的初始内存地址。此时,地址和操作生成单元将接收到的栈指针值又重新设置为有效状态。
304、地址检测模块检测到新任务的栈指针发生变化,将新的栈指针值发送到地址和操作生成单元;
305、地址和操作生成单元根据303中的初始内存地址和304中的最新内存地址,生成新任务的地址范围、地址变化类型以及对应的cache操作信息;
306、cache指令生成单元接收cache操作地址范围、cache操作信息,并转换为cache控制指令发送至cache操作控制单元;
307、cache操作控制单元根据cache控制指令,控制cache在所述cache操作地址范围执行所述cache操作信息。
本实施例的高速缓冲存储器控制***,通过检测栈或堆内存的地址变化类型,可以根据该变化类型控制cache执行对应操作,即在内存地址分配或者释放时,禁止cache进行数据同步,从而解决了CPU等待延时的问题,避免了cache执行不必要的同步工作,显著提高了CPU的处理效率。
实施例四
图4为本发明高速缓冲存储器控制方法实施例的流程示意图,本实施例的方法可以由本发明任意实施例的高速缓冲存储器控制***所执行,本实施例对该方法只做简单说明,具体可以结合参见实施例所述。如图4所示,该方法可以包括:
401、获取目标对象的变化的地址范围;
402、根据所述变化的地址范围确定地址变化类型;
所述地址变化类型包括内存地址的分配或者释放;
403、若所述地址变化类型为内存地址的分配或者释放,则确定与变化的地址范围对应的cache操作地址范围,并控制cache在cache操作地址范围执行cache操作信息;所述cache操作信息为禁止所述cache在所述cache操作地址范围执行数据同步。
例如,若为内存地址的分配,则在所述cache建立与分配的内存地址对应的高速缓存行单元,所述高速缓存行单元为所述cache操作地址范围;并禁止所述cache在所述高速缓存行单元执行数据同步;
例如,若为内存地址的释放,则确定与所述变化的地址范围对应的高速缓存行单元,所述高速缓存行单元为所述cache操作地址范围;并禁止所述cache在与所述高速缓存行单元执行数据同步。
具体的,所述控制cache在cache操作地址范围执行cache操作信息,包括:根据所述变化的地址范围以及地址变化类型,得到所述cache操作地址范围、以及与所述地址变化类型对应的所述cache操作信息;将所述cache操作地址范围、所述cache操作信息转换为cache控制指令;根据所述cache控制指令,控制cache在所述cache操作地址范围执行所述cache操作信息。
例如,当所述目标对象为栈内存时,所述获取目标对象的变化的地址范围,具体为:检测与所述栈内存对应的栈指针的值,获得所述栈内存的初始内存地址和最新内存地址。
可选的,所述目标对象为栈内存;还包括:检测MMU中的内存映射关系信息或者栈内存的变化的地址范围是否超过设定阈值;若所述内存映射关系信息发生改变或者所述地址范围超过设定阈值,则所述获取目标对象的变化的地址范围,具体为:获取变化之后的内存映射关系信息对应的栈内存的初始内存地址和最新内存地址,或者,超过设定阈值的栈内存对应的初始内存地址和最新内存地址;相应的,所述确定与分配的内存地址对应的cache操作地址范围,包括:查询所述MMU获得与所述栈内存的初始内存地址和最新内存地址分别对应的cache地址;根据所述cache地址确定与分配的内存地址对应的cache操作地址范围。
可选的,所述确定与分配或者释放的内存地址对应的cache操作地址范围,包括:确定仅包括所述分配或者释放的内存地址中的地址的高速缓存行单元为所述cache操作地址范围。
可选的,还包括:由所述cache操作地址范围中选取部分操作地址范围;相应的,所述控制cache在cache操作地址范围执行cache操作信息,具体为:控制cache在部分cache操作地址范围执行cache操作信息。
可选的,若所述地址变化类型为内存地址的释放,则所述控制cache的高速缓存行单元禁止执行数据同步,具体包括:将cache的高速缓存行单元的状态标识设置为未修改标识;或者,将所述cache的高速缓存行单元的状态标识设置为无效标识;或者,为所述cache的高速缓存行单元中的存储数据设置无效标识。
可选的,所述cache操作地址范围转换为cache控制指令,具体为:将所述cache操作地址范围转换为地址范围指令;或者,将所述cache操作地址范围转换为对应的地址序列指令。
可选的,所述cache包括多级存储单元;还包括:所述多级存储单元中的上一级存储单元分别向下一级存储单元发送所述cache操作地址范围,以使得所述下一级存储单元根据所述cache操作地址范围以及下一级存储单元的高速缓存行单元的长度,生成对应所述下一级存储单元的cache操作地址范围;或者,所述多级存储单元中的最高一级存储单元将所述变化的地址范围同时发送至所有下级存储单元,以使得所述下级存储单元根据所述变化的地址范围,分别得到对应所述下级存储单元的cache操作地址范围。
本实施例的高速缓冲存储器控制方法,通过检测栈或堆内存的地址变化类型,可以根据该变化类型控制cache执行对应操作,即在内存地址分配或者释放时,禁止cache进行数据同步,从而解决了CPU等待延时的问题,避免了cache执行不必要的同步工作,显著提高了CPU的处理效率。
实施例五
本发明实施例还提供一种高速缓冲存储器控制装置,该装置包括本发明任意实施例的高速缓冲存储器控制***。
例如,该装置可以为中央处理器CPU,参见图1所示,该CPU中包括:本发明任意实施例的高速缓冲存储器控制***,还包括算术逻辑单元ALU、高速缓冲存储器cache等。
其中,高速缓冲存储器控制***中的地址检测模块与ALU连接,用于从ALU中获取栈或者堆的内存地址;cache控制模块与cache连接,可以根据检测的栈或堆内存地址的变化得到对应的cache操作地址范围、以及cache操作信息,并据此控制cache执行对应操作,使得cache在分配新内存或者释放内存时不再进行不必要的数据同步,从而提高CPU的处理效率。
进一步的,该CPU还可以包括MMU/TLB,高速缓冲存储器控制***中的地址和操作生成单元,与所述MMU连接,可以通过MMU进行地址转换,将内存的虚拟地址转换为对应的cache地址,以及通过检测MMU中的信息变化或者栈内存的变化范围查看是否发生任务切换等。
本实施例的高速缓冲存储器控制装置,通过检测栈或堆内存的地址变化类型,可以根据该变化类型控制cache执行对应操作,即在内存地址分配或者释放时,禁止cache进行数据同步,从而解决了CPU等待延时的问题,避免了cache执行不必要的同步工作,显著提高了CPU的处理效率。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (20)

1.一种高速缓冲存储器cache控制方法,其特征在于,包括:
获取目标对象的变化的地址范围;
根据所述变化的地址范围确定地址变化类型;若所述地址变化类型为内存地址的分配或者释放;则
确定与变化的地址范围对应的cache操作地址范围,并控制cache在cache操作地址范围执行cache操作信息;所述cache操作信息为禁止所述cache在所述cache操作地址范围执行数据同步;
其中,若所述地址变化类型为内存地址的分配,则
所述确定与变化的地址范围对应的cache操作地址范围,包括:在所述cache建立与所述变化的地址范围对应的高速缓存行单元,所述高速缓存行单元为所述cache操作地址范围;
所述禁止所述cache在所述cache操作地址范围执行数据同步具体为:禁止所述cache在所述高速缓存行单元执行数据同步;
其中,若所述地址变化类型为内存地址的释放,则
所述确定与变化的地址范围对应的cache操作地址范围,包括:确定与所述变化的地址范围对应的高速缓存行单元,所述高速缓存行单元为所述cache操作地址范围;
所述禁止所述cache在所述cache操作地址范围执行数据同步具体为:禁止所述cache在所述高速缓存行单元执行数据同步。
2.根据权利要求1所述的高速缓冲存储器控制方法,其特征在于,所述控制cache在cache操作地址范围执行cache操作信息,包括:
根据所述变化的地址范围以及地址变化类型,得到所述cache操作地址范围以及所述cache操作信息;
将所述cache操作地址范围、所述cache操作信息转换为cache控制指令;
根据所述cache控制指令,控制cache在所述cache操作地址范围执行所述cache操作信息。
3.根据权利要求1或2所述的高速缓冲存储器控制方法,其特征在于,当所述目标对象为栈内存时,所述获取目标对象的变化的地址范围,具体为:
检测与所述栈内存对应的栈指针的值,获得所述栈内存的初始内存地址和最新内存地址;
相应的,所述根据所述变化的地址范围确定地址变化类型,所述地址变化类型包括内存地址的分配或者释放,具体为:
若根据所述栈内存的初始内存地址和最新内存地址获知为栈增长,则确定所述地址变化类型为内存地址的分配;或者,
若根据所述栈内存的初始内存地址和最新内存地址获知为栈回退,则确定所述地址变化类型为内存地址的释放。
4.根据权利要求1或2所述的高速缓冲存储器控制方法,其特征在于,如果存在MMU,所述目标对象为栈内存,所述方法还包括:
检测MMU中的内存映射关系信息是否发生改变,若所述内存映射关系信息发生改变,则所述获取目标对象的变化的地址范围具体为:获取内存映射关系信息发生改变之后的栈内存的初始内存地址和最新内存地址;
相应的,所述确定与变化的地址范围对应的cache操作地址范围,包括:
查询所述MMU获得与所述栈内存的初始内存地址和最新内存地址分别对应的cache地址;
根据所述cache地址确定与所述变化的地址范围对应的cache操作地址范围。
5.根据权利要求1或2所述的高速缓冲存储器控制方法,其特征在于,如果存在MMU,所述目标对象为栈内存,所述方法还包括:
检测栈内存的变化的地址范围是否超过设定阈值;若所述地址范围超过设定阈值,则所述获取目标对象的变化的地址范围具体为:获取超过设定阈值的栈内存对应的初始内存地址和最新内存地址;
相应的,所述确定与变化的地址范围对应的cache操作地址范围,包括:
查询所述MMU获得与所述栈内存的初始内存地址和最新内存地址分别对应的cache地址;
根据所述cache地址确定与所述变化的地址范围对应的cache操作地址范围。
6.根据权利要求1或2所述的高速缓冲存储器控制方法,其特征在于,所述确定与变化的地址范围对应的cache操作地址范围,包括:
确定仅包括所述变化的地址范围中的地址的高速缓存行单元为所述cache操作地址范围。
7.根据权利要求1或2所述的高速缓冲存储器控制方法,其特征在于,所述控制cache在cache操作地址范围执行cache操作信息,具体为:由所述cache操作地址范围中选取部分操作地址范围,在部分cache操作地址范围执行cache操作信息。
8.根据权利要求1所述的高速缓冲存储器控制方法,其特征在于,若所述地址变化类型为内存地址的释放,则所述禁止cache在所述高速缓存行单元执行数据同步,具体包括:
将所述高速缓存行单元的状态标识设置为未修改标识;或者,
将所述高速缓存行单元的状态标识设置为无效标识;或者,
为所述高速缓存行单元中的存储数据设置无效标识。
9.根据权利要求1所述的高速缓冲存储器控制方法,其特征在于,若所述地址变化类型为内存地址的分配,则所述禁止cache在所述高速缓存行单元执行数据同步,具体包括:
将所述高速缓存行单元的状态标识设置为未修改标识;或者,
为所述高速缓存行单元中的存储数据设置无效标识。
10.根据权利要求2所述的高速缓冲存储器控制方法,其特征在于,所述cache操作地址范围转换为cache控制指令,具体为:
将所述cache操作地址范围转换为地址范围指令,
或者,将所述cache操作地址范围转换为对应的地址序列指令。
11.一种高速缓冲存储器cache控制***,其特征在于,包括:
地址检测模块,用于获取目标对象的变化的地址范围;
cache控制模块,用于根据所述变化的地址范围确定地址变化类型;若所述地址变化类型为内存地址的分配或者释放,则确定与变化的地址范围对应的cache操作地址范围,并控制cache在cache操作地址范围执行cache操作信息;所述cache操作信息为禁止所述cache在所述cache操作地址范围执行数据同步;
其中,若地址变化类型为内存地址的分配,则
所述cache控制模块,具体用于在所述cache建立与所述变化的地址范围对应的高速缓存行单元,所述高速缓存行单元为所述cache操作地址范围;并禁止所述cache在所述高速缓存行单元执行数据同步;
其中,若地址变化类型为内存地址的释放,则
所述cache控制模块,具体用于确定与所述变化的地址范围对应的高速缓存行单元,所述高速缓存行单元为所述cache操作地址范围;并禁止所述cache在所述高速缓存行单元执行数据同步。
12.根据权利要求11所述的高速缓冲存储器控制***,其特征在于,所述cache控制模块,包括:
地址和操作生成单元,用于根据所述变化的地址范围确定地址变化类型,所述地址变化类型包括内存地址的分配或者释放;以及,用于根据所述变化的地址范围以及地址变化类型,得到所述cache操作地址范围以及所述cache操作信息;
cache指令生成单元,用于将所述cache操作地址范围、所述cache操作信息转换为cache控制指令;
cache操作控制单元,用于根据所述cache控制指令,控制cache在所述cache操作地址范围执行所述cache操作信息。
13.根据权利要求11或12所述的高速缓冲存储器控制***,其特征在于,所述目标对象为栈内存;相应的,
所述地址检测模块,具体用于检测与所述栈内存对应的栈指针的值,获得所述栈内存的初始内存地址和最新内存地址;
所述cache控制模块,具体用于根据所述栈内存的初始内存地址和最新内存地址,确定地址变化类型;若为栈增长,则所述地址变化类型为内存地址的分配;或者,若为栈回退,则所述地址变化类型为内存地址的释放。
14.根据权利要求11或12所述的高速缓冲存储器控制***,其特征在于,如果存在MMU,所述目标对象为栈内存,则
所述地址检测模块,具体用于检测MMU中的内存映射关系信息是否发生改变;若所述内存映射关系信息发生改变,则获取内存映射关系信息发生改变之后的栈内存的初始内存地址和最新内存地址;
所述地址和操作生成单元,具体用于查询所述MMU获得与所述栈内存的初始内存地址和最新内存地址分别对应的cache地址,并根据cache地址确定与所述变化的地址范围对应的cache操作地址范围。
15.根据权利要求11或12所述的高速缓冲存储器控制***,其特征在于,如果存在MMU,所述目标对象为栈内存,则
所述地址检测模块,具体用于检测栈内存的变化的地址范围是否超过设定阈值;若所述地址范围超过设定阈值,则获取超过设定阈值的栈内存对应的初始内存地址和最新内存地址;
所述地址和操作生成单元,具体用于查询所述MMU获得与所述栈内存的初始内存地址和最新内存地址分别对应的cache地址;并根据cache地址确定与所述变化的地址范围对应的cache操作地址范围。
16.根据权利要求11或12所述的高速缓冲存储器控制***,其特征在于,
所述地址和操作生成单元,具体用于确定仅包括所述变化的地址范围中的地址的高速缓存行单元为所述cache操作地址范围。
17.根据权利要求11或12所述的高速缓冲存储器控制***,其特征在于,
所述地址和操作生成单元,具体用于由cache操作地址范围中选取部分操作地址范围,控制cache在部分cache操作地址范围执行cache操作信息。
18.根据权利要求11所述的高速缓冲存储器控制***,其特征在于,
所述cache控制模块,具体用于在所述地址变化类型为内存地址的释放时,确定与所述变化的地址范围对应的高速缓存行单元,所述高速缓存行单元为所述cache操作地址范围;并将所述高速缓存行单元的状态标识设置为未修改标识;或者,为所述高速缓存行单元中的存储数据设置无效标识;或者,为所述高速缓存行单元中的存储数据设置无效标识;
或者,具体用于在所述地址变化类型为内存地址的分配时,在所述cache建立与所述变化的地址范围对应的高速缓存行单元,所述高速缓存行单元为所述cache操作地址范围;并将所述高速缓存行单元的状态标识设置为未修改标识;或者,为所述高速缓存行单元中的存储数据设置无效标识。
19.根据权利要求11所述的高速缓冲存储器控制***,其特征在于,
所述cache指令生成单元,具体用于将所述cache操作地址范围转换为地址范围指令,或者,将所述cache操作地址范围转换为对应的地址序列指令。
20.一种高速缓冲存储器控制装置,其特征在于,包括权利要求11-19任一所述的高速缓冲存储器控制***。
CN201180003800.3A 2011-12-31 2011-12-31 高速缓冲存储器控制方法、装置和*** Active CN102725741B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/085200 WO2013097246A1 (zh) 2011-12-31 2011-12-31 高速缓冲存储器控制方法、装置和***

Publications (2)

Publication Number Publication Date
CN102725741A CN102725741A (zh) 2012-10-10
CN102725741B true CN102725741B (zh) 2014-11-05

Family

ID=46950463

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180003800.3A Active CN102725741B (zh) 2011-12-31 2011-12-31 高速缓冲存储器控制方法、装置和***

Country Status (2)

Country Link
CN (1) CN102725741B (zh)
WO (1) WO2013097246A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104239237B (zh) * 2013-06-20 2017-07-14 华为技术有限公司 一种tlb管理方法及装置
CN107577614B (zh) * 2013-06-29 2020-10-16 华为技术有限公司 数据写入方法及内存***
WO2015002632A1 (en) * 2013-07-01 2015-01-08 Hewlett-Packard Development Company, L.P. Lookup of a data structure containing a mapping between a virtual address space and a physical address space
CN104346294B (zh) 2013-07-31 2017-08-25 华为技术有限公司 基于多级缓存的数据读/写方法、装置和计算机***
GB2522906B (en) * 2014-02-10 2021-07-14 Advanced Risc Mach Ltd Region identifying operation for identifying a region of a memory attribute unit corresponding to a target memory address
US10303525B2 (en) * 2014-12-24 2019-05-28 Intel Corporation Systems, apparatuses, and methods for data speculation execution
GB2539455A (en) * 2015-06-16 2016-12-21 Nordic Semiconductor Asa Memory watch unit
CN110688329B (zh) * 2019-09-06 2021-08-10 无锡江南计算技术研究所 一种可同时支持多套Cache数据私有段动态设置的方法
CN112559141B (zh) * 2019-09-26 2024-04-30 上海亮衡信息科技有限公司 任务切换方法、装置、计算机设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1879092A (zh) * 2003-11-12 2006-12-13 松下电器产业株式会社 高速缓冲存储器及其控制方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11184695A (ja) * 1997-12-19 1999-07-09 Nec Corp キャッシュメモリ及びキャッシュメモリへのアクセス方法
US7437517B2 (en) * 2005-01-11 2008-10-14 International Business Machines Corporation Methods and arrangements to manage on-chip memory to reduce memory latency
CN101135994B (zh) * 2007-09-07 2010-06-23 杭州华三通信技术有限公司 一种划分缓存空间的方法和装置以及缓存控制器
WO2009037912A1 (ja) * 2007-09-20 2009-03-26 Nec Corporation キャッシュメモリシステムおよびキャッシュメモリ制御方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1879092A (zh) * 2003-11-12 2006-12-13 松下电器产业株式会社 高速缓冲存储器及其控制方法

Also Published As

Publication number Publication date
CN102725741A (zh) 2012-10-10
WO2013097246A1 (zh) 2013-07-04

Similar Documents

Publication Publication Date Title
CN102725741B (zh) 高速缓冲存储器控制方法、装置和***
CN108804350B (zh) 一种内存访问方法及计算机***
CN101169751B (zh) 具有闪存设备的***及其数据恢复方法
US9921972B2 (en) Method and apparatus for implementing a heterogeneous memory subsystem
CN104750625B (zh) 数据储存装置以及快闪存储器控制方法
RU2666241C2 (ru) Перераспределение сегментов памяти для решения проблемы фрагментации
CN102054533B (zh) 隔离顺序、随机和***数据以减少垃圾回收的针对基于页映射的非易失性半导体存储器
CN101937319B (zh) 存储器***及其映射方法
KR100823171B1 (ko) 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법
US8095723B2 (en) Log-based flash translation layer and operating method thereof
US8612692B2 (en) Variable write back timing to nonvolatile semiconductor memory
CN108139981B (zh) 一种页表缓存tlb中表项的访问方法,及处理芯片
CN107818052B (zh) 内存访问方法及装置
US8645612B2 (en) Information processing device and information processing method
US20100312955A1 (en) Memory system and method of managing the same
US20180024738A1 (en) Data reading method, data writing method and storage controller using the same
CN101283335A (zh) 闪存管理
CN111512290B (zh) 文件页表管理技术
US20200310984A1 (en) Storage device, controller and method for operating controller
CN103744611A (zh) 基于固态硬盘为缓存的计算机***及缓存加速方法
KR101061483B1 (ko) 메모리 회로 및 메모리 회로의 엑세스 방법, 메모리 관리 시스템 및 메모리 관리방법
WO2019156965A1 (en) Partial save of memory
CN108763100A (zh) 一种固态存储设备快速trim方法及其***
WO2008115720A1 (en) Methods for storing memory operations in a queue
CN111124944B (zh) 一种数据写入方法、装置及DRAM-Less固态硬盘

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231124

Address after: No. 1-9, 24th Floor, Unit 2, Building 1, No. 28, North Section of Tianfu Avenue, High tech Zone, Chengdu, Sichuan Province, 610000

Patentee after: Sichuan Huakun Zhenyu Intelligent Technology Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.