CN117539796A - 电子装置及缓冲存储器管理方法 - Google Patents
电子装置及缓冲存储器管理方法 Download PDFInfo
- Publication number
- CN117539796A CN117539796A CN202410026373.XA CN202410026373A CN117539796A CN 117539796 A CN117539796 A CN 117539796A CN 202410026373 A CN202410026373 A CN 202410026373A CN 117539796 A CN117539796 A CN 117539796A
- Authority
- CN
- China
- Prior art keywords
- cache
- target
- pool
- blocks
- size
- 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.)
- Granted
Links
- 238000007726 management method Methods 0.000 title claims abstract description 17
- 238000012163 sequencing technique Methods 0.000 claims abstract description 5
- 230000004044 response Effects 0.000 claims description 19
- 238000000034 method Methods 0.000 claims description 10
- 238000000638 solvent extraction Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 12
- 239000002699 waste material Substances 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification 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
- 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/0893—Caches characterised by their organisation or structure
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
一种电子装置及缓冲存储器管理方法,所述缓冲存储器管理方法,包括:将缓冲存储器的存储空间划分为多个缓存池,其中每个缓存池包括多个缓存块,属于同一个缓存池的所述多个缓存块各自的标准空间大小是相同的,并且属于不同缓存池的多个缓存块各自的所述标准空间大小是不同的;根据所述多个缓存池依据各自所对应的所述标准空间大小,由小至大,排序所述多个缓存池;根据所述目标数据大小、所述多个缓存池所对应的多个标准空间大小以及所述多个缓存池的排列顺序,从所述多个缓存池中选择目标缓存池,其中所述目标数据大小不大于所述目标缓存池的目标标准空间大小;以及将所述目标缓存数据存储到所述目标缓存池的空白的目标缓存块内。
Description
技术领域
本发明涉及一种存储器管理技术,尤其是涉及针对缓冲存储器的一种缓冲存储器管理方法及使用所述缓冲存储器的电子装置。
背景技术
随机访问存储器 (RAM) 是嵌入式***不可缺少的一部分,在传统的嵌入式软件设计中,对于软件需要使用到的 RAM,通常是固定的地址和大小,这种设计模式比较简单,但是缺失了灵活性,在一些复杂场景下效果不是很好。
同样的,在存储固件设计中也存在这个问题,存储主控内置的缓存空间有限,需要分配给 Read/Write 收发数据, 暂存映射表(Mapping Table),垃圾回收(GarbageCollection)搬移数据等场景使用,假如给每部分以固定的缓存地址和大小,那在很多场景下会造成浪费,进而影响性能。
发明内容
本发明的目的在于解决上述问题,提供了一种用于管理缓冲存储器的缓存空间的方法,该方法可将缓存空间分为多个部分,每个部分的大小和位置都可以根据需要进行调整;根据不同的情境,将要存储的缓存数据存储在合适大小的部分,以减少缓存空间的浪费。
本发明的实施例提供一种电子装置。所述电子装置包括:缓冲存储器;以及处理器。所述处理器电性连接至所述缓冲存储器。其中,所述处理器被配置用以:将所述缓冲存储器的存储空间划分为多个缓存池,其中每个缓存池包括多个缓存块,属于同一个缓存池的所述多个缓存块各自的标准空间大小是相同的,并且属于不同缓存池的多个缓存块各自的所述标准空间大小是不同的;根据所述多个缓存池依据各自所对应的所述标准空间大小,由小至大,排序所述多个缓存池;识别目标缓存数据的目标数据大小;根据所述目标数据大小、所述多个缓存池所对应的多个标准空间大小以及所述多个缓存池的排列顺序,从所述多个缓存池中选择目标缓存池,其中所述目标数据大小不大于所述目标缓存池的目标标准空间大小,其中排序在所述目标缓存池之前的第一缓存池的第一标准空间大小小于所述目标缓存池的所述目标标准空间大小,并且所述目标数据大小大于所述第一标准空间大小;以及将所述目标缓存数据存储到所述目标缓存池的空白的目标缓存块内。
在本发明的一实施例中,其中相邻排序的一对缓存池各自的标准空间大小的比值为P,其中排序在所述目标缓存池之后的第二缓存池的第二标准空间大小为所述目标缓存池的所述目标标准空间大小的P倍,并且所述第二缓存池的缓存块足以存储P个目标缓存数据。
在本发明的一实施例中,其中在根据所述目标数据大小、所述多个缓存池所对应的所述多个标准空间大小以及所述多个缓存池的所述排列顺序,从所述多个缓存池中选择所述目标缓存池的运作中,所述处理器,从对应到最小的标准空间大小的缓存池开始,依照所述排列顺序,将所述目标数据大小对所述多个缓存池所对应的所述多个标准空间大小进行比较,其中反应于判定所述目标数据大小大于当前所比较的缓存池的标准空间大小时,所述处理器选择下一个缓存池来进行所述比较,其中反应于判定所述目标数据大小不大于当前所比较的缓存池所对应的标准空间大小时,所述处理器将当前所比较的所述缓存池作为所述目标缓存池。
在本发明的一实施例中,其中当要选择下一个缓存池来进行所述比较但不存在下一个缓存池时,所述处理器将当前所比较的所述缓存池作为所述目标缓存池;以及所述处理器使用所述目标缓存池的Q个目标缓存块来存储所述目标缓存数据,其中Q个目标缓存块的大小大于所述目标数据大小,并且Q-1个目标缓存块的大小小于所述目标数据大小。
在本发明的一实施例中,其中反应于判定所述目标缓存池不具有足够的空白的所述目标缓存块来存储所述目标缓存数据,所述处理器对排序在所述目标缓存池后的所述第二缓存池执行缓存块分割操作,以在所述第二缓存池内获得空白的P个目标缓存块,并且将所述目标缓存数据存储到所述第二缓存池内的空白的所述P个目标缓存块的其中之一。
在本发明的一实施例中,其中反应于判定所述目标缓存池不具有足够的空白的所述目标缓存块来存储所述目标缓存数据,所述处理器对排序在所述目标缓存池前的所述第一缓存池执行缓存块合并操作,以获得在所述第一缓存池内空白的M个目标缓存块,并且将所述目标缓存数据存储到所述第一缓存池内的空白的所述M个目标缓存块。
在本发明的一实施例中,其中反应于判定所述目标缓存池不具有足够的空白的所述目标缓存块来存储所述目标缓存数据,所述处理器对所述多个缓存池中的第四缓存池执行缓存块整理操作,以获得在所述第四缓存池内的一个空白的目标缓存块,并且将所述目标缓存数据存储到所述第四缓存池内的空白的所述目标缓存块。
在本发明的一实施例中,其中所述缓存块整理操作包括:根据所述第四缓存池内的多个第四缓存块各自的地址,将所述多个第四缓存块分组到多个第四缓存块组,其中每个第四缓存块组包括P个第四缓存块,其中所述P个第四缓存块的大小等于所述目标标准空间大小;识别所述多个第四缓存块组中具有最多的空白的第四缓存块的第五缓存块组;将所述第五缓存块组内当前所存储的数据搬移到所述多个第四缓存块组中的一或多第六缓存块组内的空白的第四缓存块中;以及合并所述第五缓存块组内的P个第四缓存块,以获得空白的所述目标缓存块。
本发明的一实施例提供用于缓冲存储器的一种缓冲存储器管理方法。所述方法包括:将所述缓冲存储器的存储空间划分为多个缓存池,其中每个缓存池包括多个缓存块,属于同一个缓存池的所述多个缓存块各自的标准空间大小是相同的,并且属于不同缓存池的多个缓存块各自的所述标准空间大小是不同的;根据所述多个缓存池依据各自所对应的所述标准空间大小,由小至大,排序所述多个缓存池;识别目标缓存数据的目标数据大小;根据所述目标数据大小、所述多个缓存池所对应的多个标准空间大小以及所述多个缓存池的排列顺序,从所述多个缓存池中选择目标缓存池,其中所述目标数据大小不大于所述目标缓存池的目标标准空间大小,其中排序在所述目标缓存池之前的第一缓存池的第一标准空间大小小于所述目标缓存池的所述目标标准空间大小,并且所述目标数据大小大于所述第一标准空间大小;以及将所述目标缓存数据存储到所述目标缓存池的空白的目标缓存块内。
基于上述,本发明实施例所提供的电子装置以及缓冲存储器管理方法,可对电子装置的缓冲存储器的存储空间(缓冲空间)划分到各自具有不同大小的存储块的缓存池,以让待存储的缓存数据可存储到大小最适合的存储块,减少了存储空间的浪费,增进了缓冲存储器的存储能力。
附图说明
包含附图以便进一步理解本发明,且附图并入本说明书中并构成本说明书的一部分。附图说明本发明的实施例,并与描述一起用于解释本发明的原理。
图1为根据本发明的实施例所示出的主机***与存储装置的方块示意图;
图2为根据本发明的实施例所示出的指令调度方法的流程图;
图3A及图3B为根据本发明的实施例所示出的划分多个缓存池的示意图;
图4为根据本发明的实施例所示出的比对目标缓存数据和多个缓存池的示意图;
图5A为根据本发明的另一实施例所示出的比对目标缓存数据和多个缓存池的示意图;
图5B为根据本发明的另一实施例所示出的存储目标缓存数据到目标缓存池内的多个目标缓存块的示意图;
图6为根据本发明的实施例所示出经由缓冲块合并操作来获得目标缓存块的示意图;
图7A为根据本发明的另一实施例所示出的比对目标缓存数据和多个缓存池的示意图;
图7B为根据本发明的另一实施例所示出的存储目标缓存数据到经由缓冲块分割操作所获得的目标缓存块的示意图;
图8A为根据本发明的实施例所示出的搬移已缓存的数据的示意图;
图8B为根据本发明的另一实施例所示出的存储目标缓存数据到经由缓冲块合并操作所获得的目标缓存块的示意图;
图9为根据本发明的实施例所示出缓冲块合并操作的示意图。
附图标号说明
100:电子装置
110:处理器
120:缓冲存储器
130:数据传输接口电路
S210、S220、S230、S240、S250:缓冲存储器管理方法的流程步骤
1201~1203:缓存池
1201(1)~1201(4N)、1202(1)~1202(2N)、1203(1)~1203(N)、1203(N+1)、1202(2N+1)、1202(2N+2):缓存块
A301、A302、A411、A412、A511、A512、A513、A521、A611、A612、A613、A711、A712、A721、A722、A811、A812、A821、A831、A911、A912:箭头
TBD1~TBD4:目标缓存数据
TS1:缓存块组
具体实施方式
现将详细地参考本发明的示范性实施例,示范性实施例的实例说明于附图中。只要有可能,相同组件符号在附图和描述中用来表示相同或相似部分。
图1为根据本发明的实施例所示出的主机***与存储装置的方块示意图。请参照图1,电子装置100例如是个人电脑、笔记本电脑、服务器。电子装置100包括处理器(Processor)110及缓冲存储器(Host Memory)120、存储装置130。
在本实施例中,处理器110例如是中央处理单元(Central Processing Unit,CPU)、微处理器(micro-processor)、或是其他可程序化的处理单元(Microprocessor)、数字信号处理器(Digital Signal Processor,DSP)、可程序化控制器、特殊应用集成电路(Application Specific Integrated Circuits,ASIC)、可程序化逻辑装置(ProgrammableLogic Device,PLD)或其他类似电路组件,本发明并不限于此。
在本实施例中,缓冲存储器(Buffer Memory)120用以暂存处理器110所执行的指令或数据。例如,在本实施例中,缓冲存储器120可以是动态随机存取存储器(DynamicRandom Access Memory,DRAM)、静态随机存取存储器(Static Random Access Memory,SRAM)等。然而,必须了解的是,本发明不限于此,缓冲存储器120也可以是其他适合的存储器。在其他实施例中,缓冲存储器120也可被称为存储器(Memory)、主机存储器(HostMemory)、快取存储器(Cache Memory)或装置存储器(Device Memory)。
存储装置130可例如是U盘、存储卡、固态硬盘(Solid State Drive,SSD)或无线存储器存储装置。存储装置130用以存储长时间存放的数据。在一实施例中,处理器110可将不再需要被缓存的数据移除或存储到储存装置130内,以释放缓冲存储器120被所述数据所占用的存储空间。
图2为根据本发明的实施例所示出的缓冲存储器管理方法的流程图。请参照图2 ,在步骤S210中,处理器110将所述缓冲存储器的存储空间划分为多个缓存池,其中每个缓存池包括多个缓存块,属于同一个缓存池的所述多个缓存块各自的标准空间大小是相同的,并且属于不同缓存池的多个缓存块各自的所述标准空间大小是不同的。接着,在步骤S220中,处理器110根据所述多个缓存池依据各自所对应的所述标准空间大小,由小至大,排序所述多个缓存池。
举例来说,请参照图3A及图3B,处理器110例如经由对缓冲存储器120执行初始化操作,将缓冲存储器120的存储空间划分为三个部分(也称缓存池)1201、1202、1203(如箭头A301所示)。
如箭头A302所示,每个缓存池1201~1203被划分多个缓存块。例如,缓存池1201包括相同初始大小(标准空间大小)的缓存块1201(1)~1201(4N);缓存池1202包括相同初始大小(标准空间大小)的缓存块1202(1)~1202(2N);缓存池1203包括相同初始大小(标准空间大小)的缓存块1203(1)~1203(N)。由于缓存池1201的每个缓存块的标准空间大小是最小的,缓存池1201会被排序在最前面。
此外,在本实施例中,相邻排序的两个缓存池,各自的缓存块的初始大小的比值固定为P。例如,相邻排序的一对缓存池各自的标准空间大小的比值为P,其中排序在所述目标缓存池之后的第二缓存池的第二标准空间大小为所述目标缓存池的所述目标标准空间大小的P倍,并且所述第二缓存池的缓存块足以存储P个目标缓存数据。如图3B所示的例子中,缓存池1202和缓存池1203相邻,缓存池1203的缓存块的初始大小是缓存池1202的缓存块的初始大小的2倍(如,缓存块1203(1)的大小为缓存块1202(1)加上缓存块1202(2)的大小),即,P等于2。依此类推,可知道,缓存池1202和缓存池1201相邻,缓存池1202的缓存块的初始大小是缓存池1201的缓存块的初始大小的2倍。缓存池的缓存块的初始大小也可称为缓存池的标准空间大小。
在一实施例中,处理器110可以链表的形式将这些缓存块连起来,分配时直接从链表头部直接拿出,释放时则再次连接到链表尾部。
在上述所提供的不同大小的缓存块的设计下,处理器110可将要存储的目标缓存数据存储到最适当且最不浪费的缓存池的缓存块中。
请再回到图2,在步骤S230中,处理器110识别目标缓存数据的目标数据大小。接着,在步骤S240中,处理器110根据所述目标数据大小、所述多个缓存池所对应的多个标准空间大小以及所述多个缓存池的排列顺序,从所述多个缓存池中选择目标缓存池,其中所述目标数据大小不大于所述目标缓存池的目标标准空间大小,其中排序在所述目标缓存池之前的第一缓存池的第一标准空间大小小于所述目标缓存池的所述目标标准空间大小,并且所述目标数据大小大于所述第一标准空间大小。
更详细来说,处理器110,从对应到最小的标准空间大小的缓存池开始,依照所述排列顺序,将所述目标数据大小对所述多个缓存池所对应的所述多个标准空间大小进行比较。反应于判定所述目标数据大小大于当前所比较的缓存池的标准空间大小时,处理器110选择下一个缓存池来进行所述比较;反应于判定所述目标数据大小不大于当前所比较的缓存池所对应的标准空间大小时,处理器110将当前所比较的所述缓存池作为所述目标缓存池。
也就是说,在识别要存储的缓存数据(如,目标缓存数据)的大小(如,目标数据大小)后,处理器110会依据排序顺序/排序方向,从排序在最前面的缓存池开始进行比较,比较缓存池内的缓存块的初始大小(标准空间大小)和目标数据大小。
当目标数据大小大于所比较的缓存池的标准空间大小时,处理器110会判定目标缓存数据无法存入到此缓存池的一个(初始大小的)缓存块内,处理器110会接着比较目标数据大小和下一个缓存池的标准空间大小直到当目标数据大小不大于所比较的缓存池的标准空间大小(即,目标缓存数据可存入到所比较的缓存池的一个(初始大小的)缓存块内)。此时,这个缓存池就是目标缓存池。
接着,在步骤S250中,处理器110将所述目标缓存数据存储到所述目标缓存池的空白的目标缓存块内。
举例来说,请参照图4,在图4中,目标缓存数据TBD1的面积和缓存块的面积可用来做大小比较的示例性说明。假设处理器110要存储目标缓存数据TBD1。如箭头A411所示,一开始,处理器110会选择缓存池1201来进行比较(因为排序在最前面)。处理器110判定目标缓存数据TBD1的目标数据大小大于缓存池1201的标准空间大小(如,目标缓存数据TBD1的大小大于缓存池1201的缓存块1201(1)~1201(4N)中的每一个),处理器110会知道目标缓存数据TBD1无法存储到缓存池1201内的缓存块。接着,如箭头A412所示,处理器110选择下一个缓存池1202来进行比较,并且判定了目标缓存数据TBD1的目标数据大小不大于缓存池1202的标准空间大小。接着,处理器110会将缓存池1202视为目标缓存池,并且将目标缓存数据存储到缓存池1202内的一个空白的缓存块中。
在一实施例中,当要选择下一个缓存池来进行所述比较但不存在下一个缓存池时,处理器110将当前所比较的所述缓存池作为所述目标缓存池;以及处理器110使用所述目标缓存池的Q个目标缓存块来存储所述目标缓存数据,其中Q个目标缓存块的大小大于所述目标数据大小,并且Q-1个目标缓存块的大小小于所述目标数据大小。
简单来说,当目标缓存池的一个初始大小的缓存块无法存储目标缓存数据时,处理器110会使用目标缓存池的多个缓存块一同来存储目标缓存数据。
举例来说,请参照图5A,假设处理器110要存储目标缓存数据TBD2。如箭头511所示,一开始,处理器110会选择缓存池1201来进行比较,并且判定目标缓存数据TBD2的目标数据大小大于缓存池1201的标准空间大小。接着,如箭头A512所示,处理器110选择下一个缓存池1202来进行比较,并且判定了目标缓存数据TBD2的目标数据大小大于缓存池1202的标准空间大小。接着,如箭头A513所示,处理器110选择下一个缓存池1203来进行比较,并且判定了目标缓存数据TBD2的目标数据大小大于缓存池1203的标准空间大小。在此例子中,由于已经没有下一个缓存池,处理器110会将缓存池1203作为目标缓存池,并且选择空白的多个缓存块作为目标缓存块来存储目标缓存数据。被选择的缓存块的总大小不小于目标缓存数据。
如图5B所示,接续图5A的例子,如箭头A521所示,处理器110选择了缓存池1203中2个(即,Q=2)空白的缓存块1203(1)、1203(2)作为目标缓存块来存储目标缓存数据TBD2。
然而,在实际的使用情境中,会面临到缓存池没有具有足够的空白的缓存块来存储目标缓存数据。本发明也提供多个解决方案(如,缓存块合并操作,缓存块分割操作及缓存块整理操作)。
在一实施例中,反应于判定所述目标缓存池不具有足够的空白的所述目标缓存块来存储所述目标缓存数据,处理器110对排序在所述目标缓存池前的所述第一缓存池执行缓存块合并操作,以获得在所述第一缓存池内空白的M个目标缓存块,并且将所述目标缓存数据存储到所述第一缓存池内的空白的所述M个目标缓存块。
在一实施例中,反应于判定所述目标缓存池不具有足够的空白的所述目标缓存块来存储所述目标缓存数据,处理器110对排序在所述目标缓存池后的所述第二缓存池执行缓存块分割操作,以在所述第二缓存池内获得空白的P个目标缓存块,并且将所述目标缓存数据存储到所述第二缓存池内的空白的所述P个目标缓存块的其中之一。
在一实施例中,反应于判定所述目标缓存池不具有足够的空白的所述目标缓存块来存储所述目标缓存数据,处理器110对所述多个缓存池中的第四缓存池执行缓存块整理操作,以获得在所述第四缓存池内的一个空白的目标缓存块,并且将所述目标缓存数据存储到所述第四缓存池内的空白的所述目标缓存块。所述缓存块整理操作包括:根据所述第四缓存池内的多个第四缓存块各自的地址,将所述多个第四缓存块分组到多个第四缓存块组,其中每个第四缓存块组包括P个第四缓存块,其中所述P个第四缓存块的大小等于所述目标标准空间大小;识别所述多个第四缓存块组中具有最多的空白的第四缓存块的第五缓存块组;将所述第五缓存块组内当前所存储的数据搬移到所述多个第四缓存块组中的一或多第六缓存块组内的空白的第四缓存块中;以及合并所述第五缓存块组内的P个第四缓存块,以获得空白的所述目标缓存块。
对于缓存块合并操作,举例来说,请参照图6,假设要存储的目标缓存数据TBD3的目标数据大小大于目标缓存池1203的标准空间大小但小于两倍的缓存池1203的标准空间大小。此外,更假设缓存池1203仅具有一个空白的缓存块1203(N),其不足以存储所有的目标缓存数据TBD3。在此例子中,处理器110会选择缓存池1202(其为排序在缓存池1203之前的第一缓存池),以查找且选择其中的两个空白的缓存块1202(1)、1202(2)来执行缓存块合并(如,箭头A612所示),以获得空白的缓存块1203(N+1)(如,目标缓存块)。接着,处理器110将目标缓存数据TBD3存储到缓存块1203(N)内(如箭头A611所示)以及缓存块1203(N+1)内(如箭头A613所示)。
然而,若在图6的例子中,假设缓存池1203不具有任何空白的缓存块。此时,处理器110会尝试使用缓存池1202的四个空白的缓存块来进行缓存块合并,以生成两个目标缓存块,从而存储需要两个缓存池1203的标准空间大小来进行存储的目标缓存数据TBD3。
在另个更极端的例子中,更假设缓存池1202内也没有足够的空白的缓存块来执行缓存块合并操作以生成目标缓存块,处理器110可查找缓存池1201,使用每4个空白的缓存块执行缓存块合并操作以生成1个目标缓存块。
对于缓存块分割操作,举例来说,请参照图7A、图7B,假设处理器110要存储目标缓存数据TBD4。如箭头711所示,一开始,处理器110会选择缓存池1201来进行比较,并且判定目标缓存数据TBD4的目标数据大小大于缓存池1201的标准空间大小。接着,如箭头A712所示,处理器110选择下一个缓存池1202来进行比较,并且判定了目标缓存数据TBD2的目标数据大小不大于缓存池1202的标准空间大小。处理器110会将缓存池1202作为目标缓存池。然而,如图7B所示,在本实施例中,目标缓存池1202内没有空白的缓存块来存储目标缓存数据TBD4。处理器110会尝试选择排序在目标缓存池1202后的缓存池1203(如,第二缓存池),以查找且选择一个空白的缓存块1203(1)来执行缓存块分割操作,以获得2个目标缓存块1202(2N+1)、1202(2N+2)(如箭头A721所示)。接着,处理器110可选择目标缓存块1202(2N+1)、1202(2N+2)的其中之一(如,缓存块1202(2N+1))来存储目标缓存数据TBD4(如箭头A722所示)。
应注意的是,在图6、图7B的例子中,可看到缓存池中可具有非其标准空间大小的缓存块。例如,图6中的缓存池1202的缓存块1203(N+1)的大小并非缓存池1202的标准空间大小。又例如,图7B中的缓存池1203的缓存块1202(2N+1)、1202(2N+2)的大小并非缓存池1203的标准空间大小。
在一些情况下,当判定没有足够的空白的缓存块来当作目标缓存块以存池目标缓存数据时,处理器110可对目标缓存池来先执行缓存块整理操作,以尝试整理出足够的空白的缓存块来作为目标缓存块以存储目标缓存数据。
对于缓存块整理操作,请参照图8A、图8B,假设要存储的目标缓存数据TBD3的目标数据大小大于目标缓存池1203的标准空间大小但小于两倍的缓存池1203的标准空间大小。此外,更假设缓存池1203仅具有一个空白的缓存块1203(N)以及一个因缓存块分割操作而生成的缓存块1202(2N+2),并且这两个缓存块也不足以存储所有的目标缓存数据TBD3。在此例子中,由于有不具备标准空间大小的缓存块1202(2N+1)、1202(2N+2)在目标缓存池1203中,处理器110会先对目标缓存池1203(如,第四缓存池)执行缓存块整理操作。
如箭头A812所示,处理器110将存储在缓存块1202(2N+1)的数据搬移到缓存池1202的空白的缓存块1202(1)内,以让缓存块1202(2N+1)成为空白的缓存块。接着,如箭头A821所示,处理器110对缓存块1202(2N+1)、1202(2N+2)执行缓存块合并,以生成缓存块1203(N-1)(如,目标缓存块),其具有缓存池1203的标准空间大小。最后,如箭头A831所示,处理器110可将目标缓存数据TBD3存储到缓存块1203(N-1)、1203(N)内。
另个例子,请参照图9,假设处理器110对缓存池1201(如,第四缓存池)执行缓存块整理操作,并且第四缓存池1201中四个缓存块的大小等于一个标准空间大小(对应缓存池1203)。处理器110将四个缓存块1201(1)~1201(4)分组到第一个缓存块组;将四个缓存块1201(5)~1201(8)分组到第二个缓存块组;将四个缓存块1201(9)~1201(12)分组到第三个缓存块组;将四个缓存块1201(13)~1201(16)分组到第四个缓存块组。接着,处理器110识别出这些缓存块组中具有最多空白的缓存块的缓存块组为第五缓存块组TS1,并且将第五缓存块组TS1内的数据(如,存储在缓存块1201(13)内的数据)搬移到其他缓存块组(如,第六缓存块组)的空白的缓存块(如,缓存块1201(9))内(如,箭头A911所示)。接着,如箭头A912所示,处理器110将第五缓存块组TS1内的四个缓存块1201(13)~1201(16)合并为一个目标缓存块(如,缓存块1203(5))。最后,处理器110可将目标缓存数据存储到目标缓存块内。
在一实施例中,缓存池划分与使用的步骤如下:
1、将缓存空间划分为多个缓存池,每个缓存池中包括相同尺寸的多个缓存块,不同缓存池中的缓存块尺寸不同。
2、响应于缓存调用请求,根据所需要的缓存大小分配目标缓存池中的空闲缓存块。
3、分配时从最小尺寸的缓存池开始依次比较,若当前缓存池内缓存块的尺寸小于所需缓存大小,则选择更大一级尺寸的缓存池进行比较;若当前缓存池中的缓存块的尺寸不小于所需缓存大小,则当前缓存池为目标缓存池。
4、若最大尺寸的缓存池中的缓存块尺寸仍小于所需缓存大小,则从当前缓存池中分配多个缓存块,使得多个缓存块的尺寸之和不小于所需缓存大小。
5、若目标缓存池中已没有空闲缓存块,则按以下顺序尝试解决:a)从更大一级尺寸的缓存池中分配一个空闲缓存块并拆分为多个目标尺寸的缓存块,将多个目标尺寸的缓存块加入目标缓存池;b)若更大一级的缓存池中不存在空闲缓存块,从更小一级尺寸的缓存池中选择较小的空闲缓存块并合并为目标尺寸的缓存块,将目标尺寸的缓存块加入目标缓存池;c)若更小一级的缓存块中没有足够合并为目标尺寸的空闲缓存块,等待当前缓存池释放缓存块。处理器110将依次按照以上顺序进行尝试,直至有空闲缓存块能被分配出来。
在一实施例中,通常处理器110可用的缓存空间不会很大,可以采用位图(bitmap)来管理缓存空间的使用状况,以最小的缓存块粒度(如,最小的标准空间大小)作为一个单位,每个单位映射为bitmap中的1个比特,不同尺寸的缓存块为单位缓存块的倍数,如缓存块尺寸为4个单位缓存块,则映射为4个比特。处理器110以位图中的每个比特为键值(key)建立一张涵盖整个缓存空间的位图,位图中还记录了单位缓存块的使用状态和组合状态,使用状态指示该比特位映射的缓存块处于占用(如,使用第一位元值)还是空闲状态(如,使用第二位元值),组合状态则指示每个单位缓存块是一个完整的最小尺寸缓存块,还是属于大尺寸缓存块的一部分。此外,在对缓存块进行分割、合并及整理的时候,处理器110可同时修改位图中对应单位缓存块的组合状态。
基于上述,本发明实施例所提供的电子装置以及缓冲存储器管理方法,可对电子装置的缓冲存储器的存储空间划分到各自具有不同大小的存储块的缓存池,以让待存储的缓存数据可存储到大小最适合的存储块,减少了存储空间的浪费,增进了缓冲存储器的存储能力。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (16)
1.一种电子装置,其特征在于,包括:
缓冲存储器;以及
处理器,电性连接至所述缓冲存储器,
其中所述处理器被配置用以:
将所述缓冲存储器的存储空间划分为多个缓存池,其中每个缓存池包括多个缓存块,属于同一个缓存池的所述多个缓存块各自的标准空间大小是相同的,并且属于不同缓存池的多个缓存块各自的所述标准空间大小是不同的;
根据所述多个缓存池依据各自所对应的所述标准空间大小,由小至大,排序所述多个缓存池;
识别目标缓存数据的目标数据大小;
根据所述目标数据大小、所述多个缓存池所对应的多个标准空间大小以及所述多个缓存池的排列顺序,从所述多个缓存池中选择目标缓存池,
其中所述目标数据大小不大于所述目标缓存池的目标标准空间大小,其中排序在所述目标缓存池之前的第一缓存池的第一标准空间大小小于所述目标缓存池的所述目标标准空间大小,并且所述目标数据大小大于所述第一标准空间大小;以及
将所述目标缓存数据存储到所述目标缓存池的空白的目标缓存块内。
2.根据权利要求1所述的电子装置,其特征在于,其中相邻排序的一对缓存池各自的标准空间大小的比值为P,
其中排序在所述目标缓存池之后的第二缓存池的第二标准空间大小为所述目标缓存池的所述目标标准空间大小的P倍,并且所述第二缓存池的缓存块足以存储P个目标缓存数据。
3.根据权利要求2所述的电子装置,其特征在于,其中在根据所述目标数据大小、所述多个缓存池所对应的所述多个标准空间大小以及所述多个缓存池的所述排列顺序,从所述多个缓存池中选择所述目标缓存池的运作中,
所述处理器,从对应到最小的标准空间大小的缓存池开始,依照所述排列顺序,将所述目标数据大小对所述多个缓存池所对应的所述多个标准空间大小进行比较,
其中反应于判定所述目标数据大小大于当前所比较的缓存池的标准空间大小时,所述处理器选择下一个缓存池来进行所述比较,
其中反应于判定所述目标数据大小不大于当前所比较的缓存池所对应的标准空间大小时,所述处理器将所述当前所比较的缓存池作为所述目标缓存池。
4.根据权利要求3所述的电子装置,其特征在于,其中当要选择下一个缓存池来进行所述比较但不存在下一个缓存池时,
所述处理器将所述当前所比较的缓存池作为所述目标缓存池;以及
所述处理器使用所述目标缓存池的Q个目标缓存块来存储所述目标缓存数据,其中Q个目标缓存块的大小大于所述目标数据大小,并且Q-1个目标缓存块的大小小于所述目标数据大小。
5.根据权利要求3所述的电子装置,其特征在于,其中反应于判定所述目标缓存池不具有足够的空白的所述目标缓存块来存储所述目标缓存数据,所述处理器对排序在所述目标缓存池后的所述第二缓存池执行缓存块分割操作,以在所述第二缓存池内获得空白的P个目标缓存块,并且将所述目标缓存数据存储到所述第二缓存池内的空白的所述P个目标缓存块的其中之一。
6.根据权利要求3所述的电子装置,其特征在于,其中反应于判定所述目标缓存池不具有足够的空白的所述目标缓存块来存储所述目标缓存数据,所述处理器对排序在所述目标缓存池前的所述第一缓存池执行缓存块合并操作,以获得在所述第一缓存池内空白的M个目标缓存块,并且将所述目标缓存数据存储到所述第一缓存池内的空白的所述M个目标缓存块。
7.根据权利要求3所述的电子装置,其特征在于,其中反应于判定所述目标缓存池不具有足够的空白的所述目标缓存块来存储所述目标缓存数据,所述处理器对所述多个缓存池中的第四缓存池执行缓存块整理操作,以获得在所述第四缓存池内的一个空白的目标缓存块,并且将所述目标缓存数据存储到所述第四缓存池内的空白的所述目标缓存块。
8.根据权利要求7所述的电子装置,其特征在于,其中所述缓存块整理操作包括:
根据所述第四缓存池内的多个第四缓存块各自的地址,将所述多个第四缓存块分组到多个第四缓存块组,其中每个第四缓存块组包括P个第四缓存块,其中所述P个第四缓存块的大小等于所述目标标准空间大小;
识别所述多个第四缓存块组中具有最多的空白的第四缓存块的第五缓存块组;
将所述第五缓存块组内当前所存储的数据搬移到所述多个第四缓存块组中的一或多第六缓存块组内的空白的第四缓存块中;以及
合并所述第五缓存块组内的P个第四缓存块,以获得空白的所述目标缓存块。
9.一种缓冲存储器管理方法,用于缓冲存储器,其特征在于,包括:
将所述缓冲存储器的存储空间划分为多个缓存池,其中每个缓存池包括多个缓存块,属于同一个缓存池的所述多个缓存块各自的标准空间大小是相同的,并且属于不同缓存池的多个缓存块各自的所述标准空间大小是不同的;
根据所述多个缓存池依据各自所对应的所述标准空间大小,由小至大,排序所述多个缓存池;
识别目标缓存数据的目标数据大小;
根据所述目标数据大小、所述多个缓存池所对应的多个标准空间大小以及所述多个缓存池的排列顺序,从所述多个缓存池中选择目标缓存池,
其中所述目标数据大小不大于所述目标缓存池的目标标准空间大小,其中排序在所述目标缓存池之前的第一缓存池的第一标准空间大小小于所述目标缓存池的所述目标标准空间大小,并且所述目标数据大小大于所述第一标准空间大小;以及
将所述目标缓存数据存储到所述目标缓存池的空白的目标缓存块内。
10.根据权利要求9所述的缓冲存储器管理方法,其特征在于,其中排序相邻的一对缓存池各自的标准空间大小的比值为P,
其中排序在所述目标缓存池之后的第二缓存池的第二标准空间大小为所述目标缓存池的所述目标标准空间大小的P倍,并且所述第二缓存池的缓存块足以存储P个目标缓存数据。
11.根据权利要求10所述的缓冲存储器管理方法,其特征在于,其中根据所述目标数据大小、所述多个缓存池所对应的所述多个标准空间大小以及所述多个缓存池的所述排列顺序,从所述多个缓存池中选择所述目标缓存池的步骤包括:
从对应到最小的标准空间大小的缓存池开始,依照所述排列顺序,将所述目标数据大小对所述多个缓存池所对应的所述多个标准空间大小进行比较;
反应于判定所述目标数据大小大于当前所比较的缓存池的标准空间大小时,选择下一个缓存池来进行所述比较;以及
反应于判定所述目标数据大小不大于当前所比较的缓存池所对应的标准空间大小时,将所述当前所比较的缓存池作为所述目标缓存池。
12.根据权利要求11所述的缓冲存储器管理方法,其特征在于,所述方法还包括:
当要选择下一个缓存池来进行所述比较但不存在下一个缓存池时,
将所述当前所比较的缓存池作为所述目标缓存池;以及
使用所述目标缓存池的Q个目标缓存块来存储所述目标缓存数据,其中Q个目标缓存块的大小大于所述目标数据大小,并且Q-1个目标缓存块的大小小于所述目标数据大小。
13.根据权利要求11所述的缓冲存储器管理方法,其特征在于,所述方法还包括:反应于判定所述目标缓存池不具有足够的空白的所述目标缓存块来存储所述目标缓存数据,对排序在所述目标缓存池后的所述第二缓存池执行缓存块分割操作,以在所述第二缓存池内获得空白的P个目标缓存块,并且将所述目标缓存数据存储到所述第二缓存池内的空白的所述P个目标缓存块的其中之一。
14.根据权利要求11所述的缓冲存储器管理方法,其特征在于,所述方法还包括:反应于判定所述目标缓存池不具有足够的空白的所述目标缓存块来存储所述目标缓存数据,对排序在所述目标缓存池前的所述第一缓存池执行缓存块合并操作,以获得在所述第一缓存池内空白的M个目标缓存块,并且将所述目标缓存数据存储到所述第一缓存池内的空白的所述M个目标缓存块。
15.根据权利要求11所述的缓冲存储器管理方法,其特征在于,所述方法还包括:反应于判定所述目标缓存池不具有足够的空白的所述目标缓存块来存储所述目标缓存数据,对所述多个缓存池中的第四缓存池执行缓存块整理操作,以获得在所述第四缓存池内的一个空白的目标缓存块,并且将所述目标缓存数据存储到所述第四缓存池内的空白的所述目标缓存块。
16.根据权利要求15所述的缓冲存储器管理方法,其特征在于,其中所述缓存块整理操作包括:
根据所述第四缓存池内的多个第四缓存块各自的地址,将所述多个第四缓存块分组到多个第四缓存块组,其中每个第四缓存块组包括P个第四缓存块,其中所述P个第四缓存块的大小等于所述目标标准空间大小;
识别所述多个第四缓存块组中具有最多的空白的第四缓存块的第五缓存块组;
将所述第五缓存块组内当前所存储的数据搬移到所述多个第四缓存块组中的一或多第六缓存块组内的空白的第四缓存块中;以及
合并所述第五缓存块组内的P个第四缓存块,以获得空白的所述目标缓存块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410026373.XA CN117539796B (zh) | 2024-01-09 | 2024-01-09 | 电子装置及缓冲存储器管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410026373.XA CN117539796B (zh) | 2024-01-09 | 2024-01-09 | 电子装置及缓冲存储器管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117539796A true CN117539796A (zh) | 2024-02-09 |
CN117539796B CN117539796B (zh) | 2024-05-28 |
Family
ID=89796247
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410026373.XA Active CN117539796B (zh) | 2024-01-09 | 2024-01-09 | 电子装置及缓冲存储器管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117539796B (zh) |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1677946A (zh) * | 2004-04-02 | 2005-10-05 | 华为技术有限公司 | 一种缓存分配方法及装置 |
CN101034961A (zh) * | 2007-04-11 | 2007-09-12 | 重庆重邮信科(集团)股份有限公司 | 多进程harq技术ir缓存的管理方法及装置 |
CN102436421A (zh) * | 2010-09-29 | 2012-05-02 | 腾讯科技(深圳)有限公司 | 缓存数据的方法 |
CN102567522A (zh) * | 2011-12-28 | 2012-07-11 | 北京握奇数据***有限公司 | 一种智能卡文件***的管理方法及设备 |
CN103595653A (zh) * | 2013-11-18 | 2014-02-19 | 福建星网锐捷网络有限公司 | 一种缓存分配方法、装置及设备 |
CN107864391A (zh) * | 2017-09-19 | 2018-03-30 | 北京小鸟科技股份有限公司 | 视频流缓存分发方法及装置 |
CN108959517A (zh) * | 2018-06-28 | 2018-12-07 | 河南思维轨道交通技术研究院有限公司 | 文件管理方法、装置及电子设备 |
CN112817526A (zh) * | 2021-01-19 | 2021-05-18 | 杭州和利时自动化有限公司 | 一种数据存储方法、装置及介质 |
CN113395415A (zh) * | 2021-08-17 | 2021-09-14 | 深圳大生活家科技有限公司 | 基于降噪技术的相机数据处理方法及*** |
CN114064588A (zh) * | 2021-11-24 | 2022-02-18 | 建信金融科技有限责任公司 | 存储空间调度方法及*** |
CN115168304A (zh) * | 2022-09-06 | 2022-10-11 | 北京奥星贝斯科技有限公司 | 一种数据处理方法、装置、存储介质及设备 |
CN116303118A (zh) * | 2023-05-18 | 2023-06-23 | 合肥康芯威存储技术有限公司 | 一种存储设备及其控制方法 |
CN117056246A (zh) * | 2023-07-04 | 2023-11-14 | 山东日照发电有限公司 | 一种数据缓存方法及*** |
CN117311621A (zh) * | 2023-09-26 | 2023-12-29 | 济南浪潮数据技术有限公司 | 一种缓存盘空间分配方法、装置、计算机设备及存储介质 |
CN117349246A (zh) * | 2022-06-27 | 2024-01-05 | 北京小米移动软件有限公司 | 磁盘整理方法、装置和存储介质 |
-
2024
- 2024-01-09 CN CN202410026373.XA patent/CN117539796B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1677946A (zh) * | 2004-04-02 | 2005-10-05 | 华为技术有限公司 | 一种缓存分配方法及装置 |
CN101034961A (zh) * | 2007-04-11 | 2007-09-12 | 重庆重邮信科(集团)股份有限公司 | 多进程harq技术ir缓存的管理方法及装置 |
CN102436421A (zh) * | 2010-09-29 | 2012-05-02 | 腾讯科技(深圳)有限公司 | 缓存数据的方法 |
CN102567522A (zh) * | 2011-12-28 | 2012-07-11 | 北京握奇数据***有限公司 | 一种智能卡文件***的管理方法及设备 |
CN103595653A (zh) * | 2013-11-18 | 2014-02-19 | 福建星网锐捷网络有限公司 | 一种缓存分配方法、装置及设备 |
CN107864391A (zh) * | 2017-09-19 | 2018-03-30 | 北京小鸟科技股份有限公司 | 视频流缓存分发方法及装置 |
CN108959517A (zh) * | 2018-06-28 | 2018-12-07 | 河南思维轨道交通技术研究院有限公司 | 文件管理方法、装置及电子设备 |
CN112817526A (zh) * | 2021-01-19 | 2021-05-18 | 杭州和利时自动化有限公司 | 一种数据存储方法、装置及介质 |
CN113395415A (zh) * | 2021-08-17 | 2021-09-14 | 深圳大生活家科技有限公司 | 基于降噪技术的相机数据处理方法及*** |
CN114064588A (zh) * | 2021-11-24 | 2022-02-18 | 建信金融科技有限责任公司 | 存储空间调度方法及*** |
CN117349246A (zh) * | 2022-06-27 | 2024-01-05 | 北京小米移动软件有限公司 | 磁盘整理方法、装置和存储介质 |
CN115168304A (zh) * | 2022-09-06 | 2022-10-11 | 北京奥星贝斯科技有限公司 | 一种数据处理方法、装置、存储介质及设备 |
CN116303118A (zh) * | 2023-05-18 | 2023-06-23 | 合肥康芯威存储技术有限公司 | 一种存储设备及其控制方法 |
CN117056246A (zh) * | 2023-07-04 | 2023-11-14 | 山东日照发电有限公司 | 一种数据缓存方法及*** |
CN117311621A (zh) * | 2023-09-26 | 2023-12-29 | 济南浪潮数据技术有限公司 | 一种缓存盘空间分配方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117539796B (zh) | 2024-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107665146B (zh) | 内存管理装置和方法 | |
US9966152B2 (en) | Dedupe DRAM system algorithm architecture | |
US11243716B2 (en) | Memory system and operation method thereof | |
US9697111B2 (en) | Method of managing dynamic memory reallocation and device performing the method | |
US11093410B2 (en) | Cache management method, storage system and computer program product | |
US11314689B2 (en) | Method, apparatus, and computer program product for indexing a file | |
CN108959113B (zh) | 用于闪存感知堆存储器管理的方法和*** | |
US8914571B2 (en) | Scheduler for memory | |
US10789170B2 (en) | Storage management method, electronic device and computer readable medium | |
CN114036078A (zh) | 用于管理存储***中的缓存设备的方法和*** | |
CN115129621B (zh) | 一种内存管理方法、设备、介质及内存管理模块 | |
JP3989312B2 (ja) | キャッシュメモリ装置およびメモリ割付方法 | |
CN115964319A (zh) | 远程直接内存访问的数据处理方法及相关产品 | |
US20220350531A1 (en) | Memory swapping method and apparatus | |
US7484070B1 (en) | Selective memory block remapping | |
US11093291B2 (en) | Resource assignment using CDA protocol in distributed processing environment based on task bid and resource cost | |
CN117539796B (zh) | 电子装置及缓冲存储器管理方法 | |
CN117078495A (zh) | 图形处理器的内存分配方法、装置、设备及存储介质 | |
US9880778B2 (en) | Memory devices and methods | |
CN110119245B (zh) | 用于操作nand闪存物理空间以扩展存储器容量的方法和*** | |
CN106537321B (zh) | 存取文件的方法、装置和存储*** | |
CN107797757B (zh) | 影像处理***中的快取存储器管理方法及装置 | |
US20180203875A1 (en) | Method for extending and shrinking volume for distributed file system based on torus network and apparatus using the same | |
CN111078405B (zh) | 内存分配方法、装置、存储介质及电子设备 | |
CN113722085B (zh) | 图形资源的分配方法与分配*** |
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 |