CN113986780A - 一种自由映射方法、装置、存储介质及电子设备 - Google Patents

一种自由映射方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN113986780A
CN113986780A CN202111233318.0A CN202111233318A CN113986780A CN 113986780 A CN113986780 A CN 113986780A CN 202111233318 A CN202111233318 A CN 202111233318A CN 113986780 A CN113986780 A CN 113986780A
Authority
CN
China
Prior art keywords
data
mapped
main memory
cache
base address
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
Application number
CN202111233318.0A
Other languages
English (en)
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.)
Shanghai Awinic Technology Co Ltd
Original Assignee
Shanghai Awinic Technology 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 Shanghai Awinic Technology Co Ltd filed Critical Shanghai Awinic Technology Co Ltd
Priority to CN202111233318.0A priority Critical patent/CN113986780A/zh
Publication of CN113986780A publication Critical patent/CN113986780A/zh
Pending legal-status Critical Current

Links

Images

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
    • G06F12/0866Addressing 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/0873Mapping of cache memory to specific storage devices or parts thereof

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基地址与主存基地址之间的关系也可以任意设置,并不固定,进而使得数据映射过程中,不受单个块中的数据个数影响,也不受块的固定位置影响,从而提高了映射自由度。

Description

一种自由映射方法、装置、存储介质及电子设备
技术领域
本发明涉及存储技术领域,尤其涉及一种自由映射方法、装置、存储介质及电子设备。
背景技术
CPU的运算速度比主存储器的读写速度要快很多,这就使得CPU在访问内存时要花很长的等待时间,造成系统整体性能的下降。为解决CPU和主存储器(以下简称主存)之间速度不匹配的问题,通常可采用高速缓冲存储器(Cache)将存储在主存中的参数设置预先加载至Cache中,让CPU下次处理时先访问Cache,以减少CPU等待时间,提高系统工作效率。
但是,当CPU修改系统参数后,若确认保存该更改,需将被修改内容从Cache中刷新至主存指定的存储区域(指定存储区域可包括原参数对应存储区域以及其余未使用区域即备用区域);若该修改无效需重新返回初始参数设置,则需将主存中对应部分的内容重加载至Cache中的相应区域。为保证加载与刷新操作的正确性,主存与Cache间需存在映射关系。
但现有技术中的各种映射方法,无法满足数据的随机加载或刷新要求,导致系统功耗和时间成本较高。
发明内容
有鉴于此,本发明提供一种自由映射方法、装置、存储介质及电子设备,应用于主存储器和高速缓冲存储器之间,以解决现有技术中数据的随机加载或刷新受到现有映射方法限制,导致系统功耗和时间成本较高的问题。
为实现上述目的,本发明提供如下技术方案:
一种自由映射方法,应用于主存储器和高速缓冲存储器之间,所述自由映射方法包括:
获取待映射数据的个数;
根据所述待映射数据的个数,确定高速缓冲存储器基地址和主存储器基地址;
根据所述高速缓冲存储器基地址与所述主存储器基地址之间的对应关系,将所述待映射数据在所述主存储器与所述高速缓冲存储器之间进行映射。
优选的,在上述自由映射方法中,所述获取待映射数据的个数包括:
获取待映射数据;
确定所述待映射数据的个数。
优选的,在上述自由映射方法中,所述根据所述待映射数据的个数,确定高速缓冲存储器基地址和主存储器基地址,具体包括:
判断所述待映射数据的位置;
若所述待映射数据位于所述高速缓冲存储器中,则直接获取所述待映射数据在所述高速缓冲存储器中的所述高速缓冲存储器基地址;
并基于所述待映射数据的个数,在所述主存储器中的所有地址中确定所述主存储器基地址;
若所述待映射数据位于所述主存储器中,则直接获取所述待映射数据在所述主存储器中的所述主存储器基地址;
并基于所述待映射数据的个数,在所述高速缓冲存储器中的所有地址中确定所述高速缓冲存储器基地址。
优选的,在上述自由映射方法中,所述根据所述高速缓冲存储器基地址与所述主存储器基地址之间的对应关系,将所述待映射数据在所述主存储器与所述高速缓冲存储器之间进行映射,具体包括:
建立所述高速缓冲存储器基地址与所述主存储器基地址之间的对应关系;
并根据所述对应关系,将所述高速缓冲存储器中的待映射数据刷新至所述主存储器中,或者将所述主存储器中的待映射数据加载至所述高速缓冲存储器中。
一种自由映射装置,应用于主存储器和高速缓冲存储器之间,所述自由映射装置包括:
获取模块,用于获取待映射数据的个数;
确定模块,用于根据所述待映射数据的个数,确定高速缓冲存储器基地址和主存储器基地址;
映射模块,用于根据所述高速缓冲存储器基地址与所述主存储器基地址之间的对应关系,将所述待映射数据在所述主存储器与所述高速缓冲存储器之间进行映射。
优选的,在上述自由映射装置中,所述获取模块包括:
第一获取单元,用于获取待映射数据;
第一确定单元,用于确定所述待映射数据的个数。
优选的,在上述自由映射装置中,所述确定模块包括:
判断单元,用于判断所述待映射数据的位置;
第二获取单元,用于若所述待映射数据位于所述高速缓冲存储器中,则直接获取所述待映射数据在所述高速缓冲存储器中的所述高速缓冲存储器基地址;
第二确定单元,用于基于所述待映射数据的个数,在所述主存储器中的所有地址中确定所述主存储器基地址;
第三获取单元,用于若所述待映射数据位于所述主存储器中,则直接获取所述待映射数据在所述主存储器中的所述主存储器基地址;
第三确定单元,用于基于所述待映射数据的个数,在所述高速缓冲存储器中的所有地址中确定所述高速缓冲存储器基地址。
优选的,在上述自由映射装置中,所述映射模块包括:
建立单元,用于建立所述高速缓冲存储器基地址与所述主存储器基地址之间的对应关系;
映射单元,用于根据所述对应关系,将所述高速缓冲存储器中的待映射数据刷新至所述主存储器中,或者将所述主存储器中的待映射数据加载至所述高速缓冲存储器中。
一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行上述任意一项所述的自由映射方法。
一种电子设备,所述电子设备包括:至少一个处理器、以及与所述处理器连接的至少一个存储器、总线;
其中,所述处理器、所述存储器通过所述总线完成相互间的通信;
所述处理器用于调用所述存储器中的程序指令,以执行上述任一项所述的自由映射方法。
经由上述的技术方案可知,本发明提供的主存与cache自由映射方法,不对主存和cache内进行特定块划分,而预设cache基地址和主存基地址之间的关系,以及待映射数据的个数,根据预设的地址关系,将待映射数据直接进行映射,从而使得cache和主存之间的数据能够自由映射,本发明提供的自由映射方法仅涉及待映射数据的个数以及cache基地址和主存基地址之间的一一对应关系,从而根据预设参数的关系,能够直接将cache中的待映射数据刷新至主存中,或者将主存中的待映射数据加载到cache对应的位置,而不受主存块的划分方式,以及cache中块的划分方式的影响,使得映射方式更加灵活,进而降低了系统功耗和时间成本。
相对于直接映射而言,不固定主存块和cache块之间的块间对应关系,以及数据个数的固定,自由度更高。
相对于全相联映射而言,同样不固定块中数据个数,映射数据个数的自由度更高。
相对于组相连映射而言,同时不固定块中数据个数,也不固定主存块和cache块之间的块间对应关系,同样能够提高映射自由度。
也即,本发明中提供的主存和cache自由映射方法,只需要将待映射数据的个数确定,就确定了待映射数据的单个块中数据个数,而这个数据个数可以根据实际场景进行任意设置;然后按照cache基地址与主存基地址之间的预设关系进行数据映射即可。而cache基地址与主存基地址之间的关系也可以任意设置,并不固定,进而使得数据映射过程中,不受单个块中的数据个数影响,也不受块的固定位置影响,从而提高了映射自由度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为直接映射方法示意图;
图2为全相联映射方法示意图;
图3为组相联映射方法示意图;
图4为本发明实施例提供的一种应用于主存储器与高速缓冲存储器之间的自由映射方法的流程图示意图;
图5为本发明实施例提供的另一种应用于主存储器与高速缓冲存储器之间的自由映射方法的流程图示意图;
图6为本发明实施例提供的又一种应用于主存储器与高速缓冲存储器之间的自由映射方法的流程图示意图;
图7为本发明实施例提供的Cache数据刷新至主存的结构示意图;
图8为本发明实施例提供的主存数据加载至Cache的结构示意图;
图9为本发明实施例提供的一种应用于主存储器与高速缓冲存储器之间的自由映射装置的原理结构示意图;
图10为本发明实施例提供的另一种应用于主存储器与高速缓冲存储器之间的自由映射装置的原理结构示意图;
图11为本发明实施例提供的又一种应用于主存储器与高速缓冲存储器之间的自由映射装置的原理结构示意图;
图12为本发明实施例提供的又一种应用于主存储器与高速缓冲存储器之间的自由映射装置的原理结构示意图;
图13为本发明实施例提供的一种电子设备的硬件架构示意图。
具体实施方式
正如背景技术部分所述,现有技术中的映射方法无法满足数据的随机加载或刷新要求。
发明人发现,出现这种情况的原因为:Cache的容量很小,它保存的内容只是主存内容的一个子集,且Cache与主存的数据交换是以块(cache line)为单位的。为了把信息放到Cache中,必须应用某种函数把主存地址定位到Cache中,这称为地址映射。
在信息按这种映射关系装入Cache后,CPU执行程序时,会将程序中的主存地址变换成Cache地址,这个变换过程叫做地址变换。现有技术中主存与Cache之间存在的按照地址映射方式可以分为三种方式:直接映射、全相联映射和组相联映射。
假设某台计算机主存容量为1MB,被分为2048块,每个Block为512B;Cache容量为8KB,被分为16块,每块也是512B。
下面以此为例介绍三种基本的地址映射方法。
1)直接映射
一个主存地址能被映射到的Cache块是固定的。就如每个人的停车位是固定分配好的,可以直接找到。缺点是:因为人多车位少,很可能几个人争用同一个车位,导致Cache淘汰换出频繁,需要频繁的从主存读取数据到Cache,这个代价也较高。请参见图1,图1为直接映射示意图;主存中的一个块只能映射到Cache的某一特定块中去。例如,主存的第0块、第16块、第32块、第48块、……、第2032块等128块,只能映射到Cache的第0块;主存的第1块、第17块、第33块、第49块、……、第2033块等128块,只能映射到Cache的第1块;此类推,主存的第15块、第31块、第47块、……、第2047块等128块,只能映射到Cache的第15块中。映射完毕,Cache总共有0~15即16块,主存中的每128(2048/16)块,只能映射到Cache中的某一个块中。
即映射规则为cache line index=(主存(Page)的line数)%(cache中cacheline的总数)主存的line数是0~2047,cache中cache line的总数是16。
直接映射是最简单的地址映射方式,它的硬件简单,成本低,地址变换速度快,而且不涉及替换算法问题。但是这种方式不够灵活,Cache的存储空间得不到充分利用,每个主存块只有一个固定位置可存放,容易产生冲突,使Cache效率下降,因此只适合大容量Cache采用。例如,如果一个程序需要重复引用主存中第0块与第16块,最好将主存第0块与第16块同时复制到Cache中,但由于它们都只能复制到Cache的第0块中去,即使Cache中别的存储空间空着也不能占用,因此这两个块会不断地交替装入Cache中,导致命中率降低。
2)全相联映射
主存中的一个地址可被映射进任意cache line,问题是:当寻找一个地址是否已经被占用时,需要遍历每一个cache line来寻找,这个代价很高。就像停车位可以大家随便停一样,停的时候简单,找车的时候需要一个一个停车位的找了。
请参见图2,图2是全相联映射示意图。主存中任何一块都可以映射到Cache中的任何一块位置上。
全相联映射方式比较灵活,主存的各块可以映射到Cache的任一块中,Cache的利用率高,块冲突概率低,只要淘汰Cache中的某一块,即可调入主存的任一块。但是,由于Cache比较电路的设计和实现比较困难,这种方式只适合于小容量Cache采用。
3)组相联映射
组相联映射实际上是直接映射和全相联映射的折中方案,其组织结构如图3所示。
组间采用直接映射,组内采用全相联映射。也就是说,将Cache分成2^u组,每组包含2^v块,主存共有2^M块(M=s+u),主存块存放到哪个组是固定的,至于存到该组哪一块则是灵活的。即主存的某块只能映射到Cache的特定组中的任意一块。主存的某块b与Cache的组k之间满足以下关系:k=b%(2^u)。
例如,Cache分为8组(u=3),每组2块(v=1),主存共有2048块(M=11)。
主存中的各块与Cache的组号之间有固定的映射关系,但可自由映射到对应Cache组中的任何一块。例如:
主存的第0块、第2^u块、…第(2^s-1)2^u块、…第2040块等均映射于Cache的第0组,但可映射到其中的第0块或第1块;
主存的第1块、第2^u+1块、…第(2^s-1)2^u+1块、…第2041块等均映射于Cache的第2组,但可映射到Cache第2组中的任意一块;
主存的第2块、第2^u+2块、…第(2^s-1)2^u+2块、…第2042块等均映射于Cache的第3组,但可映射到Cache第3组中的任意一块;
主存的第7块、第2^u+7块、…第(2^s-1)2^u+7块、…第2047块等均映射于Cache的第8组,但可映射到Cache第8组中的任意一块。
常采用的组相联结构Cache,每组内有2、4、8、16块,称为2路、4路、8路、16路组相联Cache。以上为2路组相联Cache。组相联结构Cache是前两种方法的折中方案,适度兼顾二者的优点,尽量避免二者的缺点,因而得到普遍采用。
组相联映射结合了直接映射和全相联映射的优点,块的冲突概率降低,块的利用率大幅提高,特别适合于实现大容量的Cache,因此在现代CPU中得到了广泛应用。
但是,实际使用过程中,直接映射以及组相联映射的主存块与Cache块的块间对应关系均已固定,无法更改;而在全相联映射中,虽可实现主存块与Cache块的自由映射,但二者块中数据个数多少已事先固定,无法更改。
而在实际使用过程中,需要加载或刷新的数据是随机的,数据个数与数据所在位置均随具体情况而不同,因而,现有技术提供的映射方法,无法满足数据个数和数据位置随机的加载或刷新要求,导致数据映射时时间成本和系统功耗较大。
基于此,本发明提供一种自由映射方法,应用于主存储器和高速缓冲存储器之间,该自由映射方法包括:
获取待映射数据的个数;
根据所述待映射数据的个数,确定高速缓冲存储器基地址和主存储器基地址;
根据所述高速缓冲存储器基地址与所述主存储器基地址之间的对应关系,将所述待映射数据在所述主存储器与所述高速缓冲存储器之间进行映射。
本发明提供的主存储器和高速缓冲存储器的自由映射方法,不对主存和cache内进行特定块划分,而预设cache基地址和主存基地址之间的关系,以及待映射数据的个数,根据预设的地址关系,将待映射数据直接进行映射,从而使得cache和主存之间的数据能够自由映射,本发明提供的自由映射方法仅涉及待映射数据的个数以及cache基地址和主存基地址之间的一一对应关系,从而根据预设参数的关系,能够直接将cache中的待映射数据刷新至主存中,或者将主存中的待映射数据加载到cache基地址对应的位置,而不受主存块的划分方式,以及cache中块的划分方式的影响,使得映射方式更加灵活,进而降低了系统功耗和时间成本。
相对于直接映射而言,不固定主存块和cache块之间的块间对应关系,以及数据个数的固定,自由度更高。
相对于全相联映射而言,同样不固定块中数据个数,映射数据个数的自由度更高。
相对于组相连映射而言,同时不固定块中数据个数,也不固定主存块和cache块之间的块间对应关系,同样能够提高映射自由度。
也即,本发明中提供的主存和cache的自由映射方法,只需要将待映射数据的个数确定,就确定了待映射数据的单个块中数据个数,而这个数据个数可以根据实际场景进行任意设置;然后按照cache基地址与主存基地址之间的预设关系进行数据映射即可。而cache基地址与主存基地址之间的关系也可以任意设置,并不固定,进而使得数据映射过程中,不受单个块中的数据个数影响,也不受块的固定位置影响,从而提高了映射自由度。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参考图4,图4为本发明实施例提供的一种应用于主存储器与高速缓冲存储器之间的自由映射方法的流程图示意图。
所述自由映射方法包括:
S101:获取待映射数据的个数。
S102:根据所述待映射数据的个数,确定高速缓冲存储器基地址和主存储器基地址。
在该步骤中,当待映射数据的个数为m时,且m=1,高速缓冲存储器的所有地址有N个时,那么高速缓冲存储器基地址可以有N个选择;同理,当待映射数据的个数为m时,且m=1,主存储器的所有地址有N个时,那么主存储器基地址可以有N个选择。
当待映射数据的个数为m时,且m>1,高速缓冲存储器的所有地址有N个时,那么高速缓冲存储器基地址可以有N-m+1个选择;同理,当待映射数据的个数为m时,且m>1,主存储器的所有地址有N个时,那么主存储器基地址可以有N-m+1个选择。
S103:根据所述高速缓冲存储器基地址与所述主存储器基地址之间的对应关系,将所述待映射数据在所述主存储器与所述高速缓冲存储器之间进行映射。
在该实施例中,在高速缓冲存储器从主存储器中记载数据之前,或数据从高速缓冲存储器刷新至主存储器之间,定义好待映射数据的个数、高速缓冲存储器基地址以及主存储器基地址。
基于不同的映射参数设置可以产生不同的映射效果,依据不同使用情境中映射参数设置的不同,高速缓冲存储器中某一个Length(数据个数)可配的块可以映射至主存储器中与其数据个数一致的多个不同块;同理,主存储器中的某一个Length可配的块也可映射至高速缓冲存储器中与其数据个数一致的多个不同块。
该自由映射方法,不对主存储器和高速缓冲存储器内进行特定块划分,而预设高速缓冲存储器基地址和主存储器基地址之间的关系,以及待映射数据的个数,根据预设的地址关系,将待映射数据直接进行映射,从而使得主存储器和高速缓冲存储器之间的数据能够自由映射,本发明提供的自由映射方法仅涉及待映射数据的个数以及高速缓冲存储器基地址和主存储器基地址之间的一一对应关系,从而根据预设参数的关系,能够直接将高速缓冲存储器中的待映射数据刷新至主存储器中,或者将主存储器中的待映射数据加载到高速缓冲存储器基地址对应的位置,而不受主存储器中主存块的划分方式,以及高速缓冲存储器中块的划分方式的影响,使得映射方式更加灵活,进而降低了系统功耗和时间成本。
相对于直接映射而言,不固定主存块和cache块之间的块间对应关系,以及数据个数的固定,自由度更高。
相对于全相联映射而言,同样不固定块中数据个数,映射数据个数的自由度更高。
相对于组相连映射而言,同时不固定块中数据个数,也不固定主存块和cache块之间的块间对应关系,同样能够提高映射自由度。
也即,本发明中提供的主存和cache的自由映射方法,只需要将待映射数据的个数确定,就确定了待映射数据的单个块中数据个数,而这个数据个数可以根据实际场景进行任意设置;然后按照cache基地址与主存基地址之间的预设关系进行数据映射即可。而cache基地址与主存基地址之间的关系也可以任意设置,并不固定,进而使得数据映射过程中,不受单个块中的数据个数影响,也不受块的固定位置影响,从而提高了映射自由度。
可选的,在本发明另一实施例中,参考图5,图5为本发明实施例提供的另一种应用于主存储器与高速缓冲存储器之间的自由映射方法的流程图示意图。
步骤S101中,获取待映射数据的个数包括:
S1011:获取待映射数据。
S1012:确定所述待映射数据的个数。
在该实施例中,所述待映射数据的个数,也可以理解为待映射数据的长度。
可选的,在本发明另一实施例中,参考图6,图6为本发明实施例提供的又一种应用于主存储器与高速缓冲存储器之间的自由映射方法的流程图示意图。
步骤S102中,根据所述待映射数据的个数,确定高速缓冲存储器基地址和主存储器基地址,具体包括:
S1021:判断所述待映射数据的位置。
S1022:若所述待映射数据位于所述高速缓冲存储器中,则直接获取所述待映射数据在所述高速缓冲存储器中的所述高速缓冲存储器基地址。
S1023:并基于所述待映射数据的个数,在所述主存储器中的所有地址中确定所述主存储器基地址。
S1024:若所述待映射数据位于所述主存储器中,则直接获取所述待映射数据在所述主存储器中的所述主存储器基地址。
S1025:并基于所述待映射数据的个数,在所述高速缓冲存储器中的所有地址中确定所述高速缓冲存储器基地址。
步骤S103中,根据所述高速缓冲存储器基地址与所述主存储器基地址之间的对应关系,将所述待映射数据在所述主存储器与所述高速缓冲存储器之间进行映射,具体包括:
S1031:建立所述高速缓冲存储器基地址与所述主存储器基地址之间的对应关系。
S1032:并根据所述对应关系,将所述高速缓冲存储器中的待映射数据刷新至所述主存储器中,或者将所述主存储器中的待映射数据加载至所述高速缓冲存储器中。
在该实施例中,判断所述待映射数据的位置,主要是为了确定cache向主存进行映射,还是主存向cache进行映射。
参考图7,图7为本发明实施例提供的Cache数据刷新至主存的结构示意图。
当Cache中基地址为Caddr,数据个数为Length的某一块需刷新至主存中时,可根据此时主存的使用情况,从主存的众多地址中结合数据个数,选择一个基地址为Maddr,数据个数为Length的主存块用于Cache块数据的存储;由于Maddr自由可配,选取方式灵活,因而所选的主存块可以是主存中任意一个数据个数为Length的块。
需要说明的是,当需要将Cache块数据刷新至主存中的多个主存块上时,多个主存块之间不能存在交叠。
参考图8,图8为本发明实施例提供的主存数据加载至Cache的结构示意图。
当主存中基地址为Maddr,数据个数为Length的某一块需加载至Cache时,可根据此时Cache的占用或分配情况,从Cache的众多地址中结合数据个数,选择一个基地址为Caddr,数据个数为Length的Cache块给主存块进行暂存,由于Caddr自由可配,选取方式灵活,因而所选的Cache块可以是Cache中任意一个数据个数为Length的块。
需要说明的是,当需要将主存块数据加载至Cache中的多个Cache块上时,多个Cache块之间不能存在交叠。
可选的,在本发明另一实施例中还提供了一种自由映射装置,应用于主存储器和高速缓冲存储器之间,参考图9,图9为本发明实施例提供的一种应用于主存储器与高速缓冲存储器之间的自由映射装置的原理结构示意图。
所述自由映射装置包括:
获取模块11,用于获取待映射数据的个数;
确定模块12,用于根据所述待映射数据的个数,确定高速缓冲存储器基地址和主存储器基地址;
映射模块13,用于根据所述高速缓冲存储器基地址与所述主存储器基地址之间的对应关系,将所述待映射数据在所述主存储器与所述高速缓冲存储器之间进行映射。
在该实施例中,该主存和cache的自由映射装置,只需要将待映射数据的个数确定,就确定了待映射数据的单个块中数据个数,而这个数据个数可以根据实际场景进行任意设置;然后按照cache基地址与主存基地址之间的预设关系进行数据映射即可。而cache基地址与主存基地址之间的关系也可以任意设置,并不固定,进而使得数据映射过程中,不受单个块中的数据个数影响,也不受块的固定位置影响,从而提高了映射自由度。
可选的,在本发明另一实施例中,参考图10,图10为本发明实施例提供的另一种应用于主存储器与高速缓冲存储器之间的自由映射装置的原理结构示意图。
所述获取模块11包括:
第一获取单元111,用于获取待映射数据;
第一确定单元112,用于确定所述待映射数据的个数。
可选的,在本发明另一实施例中,参考图11,图11为本发明实施例提供的又一种应用于主存储器与高速缓冲存储器之间的自由映射装置的原理结构示意图。
所述确定模块12包括:
判断单元121,用于判断所述待映射数据的位置;
第二获取单元122,用于若所述待映射数据位于所述高速缓冲存储器中,则直接获取所述待映射数据在所述高速缓冲存储器中的所述高速缓冲存储器基地址;
第二确定单元123,用于基于所述待映射数据的个数,在所述主存储器中的所有地址中确定所述主存储器基地址;
第三获取单元124,用于若所述待映射数据位于所述主存储器中,则直接获取所述待映射数据在所述主存储器中的所述主存储器基地址;
第三确定单元125,用于基于所述待映射数据的个数,在所述高速缓冲存储器中的所有地址中确定所述高速缓冲存储器基地址。
可选的,在本发明另一实施例中,参考图12,图12为本发明实施例提供的又一种应用于主存储器与高速缓冲存储器之间的自由映射装置的原理结构示意图。
所述映射模块13包括:
建立单元131,用于建立所述高速缓冲存储器基地址与所述主存储器基地址之间的对应关系;
映射单元132,用于根据所述对应关系,将所述高速缓冲存储器中的待映射数据刷新至所述主存储器中,或者将所述主存储器中的待映射数据加载至所述高速缓冲存储器中。
需要说明的是,本发明实施例提供的一种自由映射装置的原理和上述实施例提供的一种自由映射方法的原理相同,在此不再赘述。
可选的,在本发明另一实施例中还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行上述实施例所述的自由映射方法。
可选的,在本发明另一实施例中还提供了一种电子设备,参考图13,图13为本发明实施例提供的一种电子设备的硬件架构示意图。
所述电子设备包括:至少一个处理器14、以及与所述处理器14连接的至少一个存储器15、总线16;
其中,所述处理器14、所述存储器15通过所述总线16完成相互间的通信;
所述处理器14用于调用所述存储器15中的程序指令,以执行上述实施例所述的自由映射方法。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括上述要素的物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种自由映射方法,其特征在于,应用于主存储器和高速缓冲存储器之间,所述自由映射方法包括:
获取待映射数据的个数;
根据所述待映射数据的个数,确定高速缓冲存储器基地址和主存储器基地址;
根据所述高速缓冲存储器基地址与所述主存储器基地址之间的对应关系,将所述待映射数据在所述主存储器与所述高速缓冲存储器之间进行映射。
2.根据权利要求1所述的自由映射方法,其特征在于,所述获取待映射数据的个数包括:
获取待映射数据;
确定所述待映射数据的个数。
3.根据权利要求1所述的自由映射方法,其特征在于,所述根据所述待映射数据的个数,确定高速缓冲存储器基地址和主存储器基地址,具体包括:
判断所述待映射数据的位置;
若所述待映射数据位于所述高速缓冲存储器中,则直接获取所述待映射数据在所述高速缓冲存储器中的所述高速缓冲存储器基地址;
并基于所述待映射数据的个数,在所述主存储器中的所有地址中确定所述主存储器基地址;
若所述待映射数据位于所述主存储器中,则直接获取所述待映射数据在所述主存储器中的所述主存储器基地址;
并基于所述待映射数据的个数,在所述高速缓冲存储器中的所有地址中确定所述高速缓冲存储器基地址。
4.根据权利要求1所述的自由映射方法,其特征在于,所述根据所述高速缓冲存储器基地址与所述主存储器基地址之间的对应关系,将所述待映射数据在所述主存储器与所述高速缓冲存储器之间进行映射,具体包括:
建立所述高速缓冲存储器基地址与所述主存储器基地址之间的对应关系;
并根据所述对应关系,将所述高速缓冲存储器中的待映射数据刷新至所述主存储器中,或者将所述主存储器中的待映射数据加载至所述高速缓冲存储器中。
5.一种自由映射装置,其特征在于,应用于主存储器和高速缓冲存储器之间,所述自由映射装置包括:
获取模块,用于获取待映射数据的个数;
确定模块,用于根据所述待映射数据的个数,确定高速缓冲存储器基地址和主存储器基地址;
映射模块,用于根据所述高速缓冲存储器基地址与所述主存储器基地址之间的对应关系,将所述待映射数据在所述主存储器与所述高速缓冲存储器之间进行映射。
6.根据权利要求5所述的自由映射装置,其特征在于,所述获取模块包括:
第一获取单元,用于获取待映射数据;
第一确定单元,用于确定所述待映射数据的个数。
7.根据权利要求5所述的自由映射装置,其特征在于,所述确定模块包括:
判断单元,用于判断所述待映射数据的位置;
第二获取单元,用于若所述待映射数据位于所述高速缓冲存储器中,则直接获取所述待映射数据在所述高速缓冲存储器中的所述高速缓冲存储器基地址;
第二确定单元,用于基于所述待映射数据的个数,在所述主存储器中的所有地址中确定所述主存储器基地址;
第三获取单元,用于若所述待映射数据位于所述主存储器中,则直接获取所述待映射数据在所述主存储器中的所述主存储器基地址;
第三确定单元,用于基于所述待映射数据的个数,在所述高速缓冲存储器中的所有地址中确定所述高速缓冲存储器基地址。
8.根据权利要求1所述的自由映射装置,其特征在于,所述映射模块包括:
建立单元,用于建立所述高速缓冲存储器基地址与所述主存储器基地址之间的对应关系;
映射单元,用于根据所述对应关系,将所述高速缓冲存储器中的待映射数据刷新至所述主存储器中,或者将所述主存储器中的待映射数据加载至所述高速缓冲存储器中。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求1-4任意一项所述的自由映射方法。
10.一种电子设备,其特征在于,所述电子设备包括:至少一个处理器、以及与所述处理器连接的至少一个存储器、总线;
其中,所述处理器、所述存储器通过所述总线完成相互间的通信;
所述处理器用于调用所述存储器中的程序指令,以执行权利要求1-4任一项所述的自由映射方法。
CN202111233318.0A 2021-10-22 2021-10-22 一种自由映射方法、装置、存储介质及电子设备 Pending CN113986780A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111233318.0A CN113986780A (zh) 2021-10-22 2021-10-22 一种自由映射方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111233318.0A CN113986780A (zh) 2021-10-22 2021-10-22 一种自由映射方法、装置、存储介质及电子设备

Publications (1)

Publication Number Publication Date
CN113986780A true CN113986780A (zh) 2022-01-28

Family

ID=79740423

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111233318.0A Pending CN113986780A (zh) 2021-10-22 2021-10-22 一种自由映射方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN113986780A (zh)

Similar Documents

Publication Publication Date Title
CN105740164B (zh) 支持缓存一致性的多核处理器、读写方法、装置及设备
CN104679669B (zh) 高速缓存cache存储器系统及访问缓存行cache line的方法
EP2645259B1 (en) Method, device and system for caching data in multi-node system
US20150113230A1 (en) Directory storage method and query method, and node controller
CN115168247B (zh) 用于并行处理器中动态共享存储空间的方法及相应处理器
CN110347338B (zh) 混合内存数据交换处理方法、系统及可读存储介质
US7925857B2 (en) Method for increasing cache directory associativity classes via efficient tag bit reclaimation
CN115168248B (zh) 支持simt架构的高速缓冲存储器及相应处理器
CN116501249A (zh) 一种减少gpu内存重复数据读写的方法及相关设备
CN114238165B (zh) 数据处理方法、数据处理装置以及存储介质
CN117389914B (zh) 缓存系统、缓存写回方法、片上系统及电子设备
US10366008B2 (en) Tag and data organization in large memory caches
CN110647476B (zh) 一种固态硬盘写数据的方法、装置、设备及存储介质
KR20160121819A (ko) 이종 메모리 기반 데이터 관리 장치
CN115079957B (zh) 请求处理方法、装置、控制器、设备及存储介质
CN115658328B (zh) 用于管理存储空间的装置及方法、计算设备、芯片
CN113986780A (zh) 一种自由映射方法、装置、存储介质及电子设备
CN108804571B (zh) 一种数据存储方法、装置以及设备
CN1333346C (zh) 一种访问文件的方法
KR20230022439A (ko) 지속적인 이력 기반 캐시 제어 정보에 기반한 캐시 제어 정책의 예측적 조정을 위한 캐시 관리 회로
CN111026680A (zh) 将第一标识符映射到第二标识符
US10579519B2 (en) Interleaved access of memory
CN109508302A (zh) 一种内容填充方法和存储器
CN116775560B (zh) 写分配方法、缓存系统、片上系统、电子组件及电子设备
US8117393B2 (en) Selectively performing lookups for cache lines

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