CN101620571A - 存储空间的地址管理方法和装置 - Google Patents
存储空间的地址管理方法和装置 Download PDFInfo
- Publication number
- CN101620571A CN101620571A CN200910159935A CN200910159935A CN101620571A CN 101620571 A CN101620571 A CN 101620571A CN 200910159935 A CN200910159935 A CN 200910159935A CN 200910159935 A CN200910159935 A CN 200910159935A CN 101620571 A CN101620571 A CN 101620571A
- Authority
- CN
- China
- Prior art keywords
- address
- storage
- space
- storage element
- storage space
- 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
Landscapes
- Memory System (AREA)
Abstract
本发明实施例提供了一种存储空间的地址管理方法和装置。该方法主要包括:给设备的存储空间中已经使用的存储元素分配对应的地址空间中的地址元素,当所述存储元素的地址信息发生变更时,对所述地址元素的地址进行相应的变更。利用本发明,实现了当存储空间中发生存储元素搬移时,只需要将和该存储元素对应的地址元素的地址进行相应的修改,做到将存储元素的地址变化封装在存储空间和地址空间内部,降低了上层模块的操作难度。
Description
技术领域
本发明涉及计算机应用技术领域,尤其涉及一种设备的存储空间的地址管理方法和装置。
背景技术
在嵌入式设备中,由于受限于存储空间的大小,需要充分地提高存储空间的利用率。分页存储空间管理算法是将存储空间分为N个各种种类的页,每个页可以有m*n大小的存储单元,m表示一页中的slot(插槽)个数,n表示一个slot中的存储单元个数。不同种类的页中的m和/或n不相同。分页内存管理算法的理论利用率可以达到(N-1)*N/2,而实测利用率可以达到98.5%。在采用分页内存管理算法来管理存储空间时,为提高利用率,有可能将存储空间d1位置中的信息搬移到d2位置,而存储空间的上层模块却不会感知这个操作,导致上层模块再次访问d1位置时,获得了不正确的信息。
为解决上述问题,现有技术中的一种在发生存储空间搬移时的编址方法为:当存储信息从存储空间d1位置搬移到d2时,需要先将存储空间d1位置的信息搬移到d2位置,然后将所有对d1位置的引用修改到对d2位置的引用。而对于存储空间的上层模块,如果已经对d1位置产生了引用,则需要将该d1位置的地址放入到栈中。在存储空间搬移时,上层模块需要修改栈中的d1位置的地址为d2位置的地址,然后,上层模块可以重新从栈中读取该d2位置的地址。
在实现本发明过程中,发明人发现上述编址方法至少存在如下问题:
在存储空间发生搬移时,需要更新对被搬移空间的引用。并且上层模块对存储空间的地址的引用都需要入栈,而在每次重新操作该存储空间的地址时,需要考虑从上次引用之后,该存储空间是否发生了搬移,以保证对信息引用的正确性。该方法不但在更新引用时会大量消耗设备资源,而且大大增加了上层模块的操作难度。
发明内容
本发明实施例提供了一种存储空间的地址管理方法和装置,以实现在发生存储空间搬移时,简化上层模块的操作难度,提高设备的资源利用率。
一种设备的存储空间的地址管理方法,包括:
给设备的存储空间中已经使用的存储元素分配对应的地址空间中的地址元素,所述存储元素中至少包括一个存储单元;
当所述存储元素的地址信息发生变更时,对所述地址元素的地址进行相应的变更。
一种设备的存储空间的地址管理装置,包括:
地址元素分配模块,用于给设备的存储空间中已经使用的存储元素分配对应的地址空间中的地址元素,所述存储元素中至少包括一个存储单元;
地址元素变更模块,用于当所述存储元素的地址信息发生变更时,对所述地址元素的地址进行相应的变更。
由上述本发明的实施例提供的技术方案可以看出,本发明实施例通过设置和存储空间对应的地址空间,使地址空间中的地址元素和存储空间中的存储元素互相对应。实现了当存储空间中发生存储元素搬移时,只需要将和该存储元素对应的地址元素的地址进行相应的修改,做到将存储元素的地址变化封装在存储空间和地址空间内部,降低了上层模块的操作难度。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种存储空间的地址管理方法的具体流程图;
图2为本发明实施例提供的一种搬移前的地址元素和存储元素的对应关系示意图;
图3为本发明实施例提供的一种搬移后的地址元素和存储元素的对应关系示意图;
图4为本发明实施例提供的一种存储空间的地址管理装置的具体实现结构图。
具体实施方式
在本发明实施例中,分配一定数量的存储空间和地址空间,所述存储空间中的存储元素的总数和所述地址空间中的地址元素的总数相同,所述存储空间和地址空间可以设置在同一个设备上或不同设备上。然后,给设备的存储空间中已经使用的存储元素分配对应的地址空间中的地址元素,所述存储元素中至少包括一个存储单元,通过地址空间中的地址元素的地址,能够索引到存储空间中的存储元素,并读取存储元素的内容。当所述存储元素的地址信息发生变更时,对所述地址元素的地址进行相应的变更。
为便于对本发明实施例的理解,下面将结合附图以几个具体实施例为例做进一步的解释说明,且各个实施例并不构成对本发明实施例的限定。
实施例一
该实施例提供的一种存储空间的地址管理方法的具体流程如图1所示,包括如下处理步骤:
步骤11:按照存储空间的存储元素总数,分配相应的地址空间。
获取设备中存储空间的存储元素总数,然后,分配地址元素总数和该存储元素总数相同的地址空间。
比如,当设备中采用分页存储空间管理算法时,总共有M个页,每一页包括m*n个存储单元,m和n的最大值为256。上述m*n个存储单元组成一个行为m、列为n的矩阵,该矩阵中每一行或一列存储单元都可以看成存储空间的一个存储元素。当采用将一行存储单元作为存储空间的一个存储元素时,则存储空间的存储元素总数为M*m。上述每个存储元素和存储单元都对应一个地址。
于是,分配M*m个地址空间,该地址空间中包括M*m个地址元素。
步骤12:对地址空间中的各个地址元素进行地址初始化,并将各个空闲的地址元素用链表串联起来。
在开始时,地址空间中的所有地址元素都没有被使用,对地址空间中的各个地址元素进行初始化,将各个地址元素的最高位置为1,代表该元素还没有被使用,在各个地址元素的其它位中记录相邻的下一个空闲的地址元素的索引。于是,根据上述各个地址元素中记录的索引,可以将各个空闲的地址元素用链表串联起来。
比如,当地址空间的地址元素采用32位时,可以将第32bit设置为1,低31bit记录用来下一个空闲地址元素的索引。
步骤13、当使用了存储空间中的一个存储元素来存储信息时,从地址空间中分配一个相应的地址元素,该地址元素和上述存储元素互相对应。
当使用了存储空间中的一个存储元素来存储信息时,同时需要从地址空间中分配一个相应的地址元素,将该地址元素和上述存储元素互相对应,并且该地址元素的地址指向上述存储元素中指定位置(比如第一个)的存储单元。
比如,当设备中采用分页存储空间管理算法,并且将一页中的一行存储单元作为一个存储元素时,一种搬移前的地址元素和存储元素的对应关系示意图如图2所示。在图2中,第3页中的3个已经使用了的存储元素的地址分别为0x100、0x106和0x112。在地址空间中,序号为1、5和9的地址元素分别对应上述3个地址为0x100、0x106和0x112的存储元素,上述序号为1、5和9的地址元素分别采用地址0x100.00、0x106.00和0x112.00。上述存储元素和地址元素的地址采用了16进制。
上述地址0x100.00的小数点之前的数字表示该地址元素对应的存储元素的地址,小数点之后的数字表示该地址元素指向的存储元素中存储单元的偏移,“00”表示是第一个存储单元。如果是指向第3个存储单元,则小数点之后的数字为“03”。
上述序号为1、5和9的地址元素分别对应一个存储元素,并且每个地址元素的地址指向对应的存储元素中的第一个存储单元。
在存储空间的上层模块中需要存储上述地址元素和存储元素的互相对应关系。
步骤14、当存储空间中发生存储元素搬移时,将和该存储元素对应的地址元素的地址进行相应的修改,使修改后的地址元素重新对应位于新的位置的存储元素。
当发生某个存储元素中的存储单元将要被占满等情况时,需要将该存储元素中存储的信息搬移到新的位置上的新存储元素中。并且将该存储元素对应的地址元素的地址也进行相应的修改,使修改后的地址元素重新对应上述新存储元素,并且使修改后的地址元素的地址指向上述新存储元素中指定位置(比如第一个)的存储单元。
比如,上述图2中的地址为0x106的存储元素中的存储单元将要被占满时,将该地址为0x106的存储元素中存储的信息搬移到地址为0x118的新存储元素中。然后,将该地址为0x106的存储元素原来对应的序号为5的地址元素的地址修改为0x118.00。搬移后的地址元素和存储元素的对应关系示意图如图3所示,搬移后的序号为5的地址元素对应地址为0x118的新存储元素,并且序号为1的地址元素的地址指向新存储元素的第一个存储单元。
该实施例实现了当存储空间中发生存储元素搬移时,只需要将和该存储元素对应的地址元素的地址进行相应的修改。上层模块不需要更新对搬移的存储元素的引用,不需要修改已经存储的地址元素和存储元素的对应关系,仍然可以通过该对应关系获取新存储元素对应的地址空间中的地址元素,根据该地址元素的地址找到被搬移的存储元素中的信息。从而简化上层模块的操作难度,提高设备的资源利用率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
本发明实施例还提供了一种存储空间的地址管理装置,用于实现上述方法。其具体实现结构如图4所示,包括:
地址元素分配模块41,用于给设备的存储空间中已经使用的存储元素分配对应的地址空间中的地址元素,所述存储元素中至少包括一个存储单元,通过地址空间中的地址元素的地址,能够索引到存储空间中的存储元素,并读取存储元素的内容。
地址元素变更模块42,用于当所述存储元素的地址信息发生变更时,对所述地址元素的地址进行相应的变更。
所述的装置还可以包括:
地址空间建立模块43,用于建立和所述存储空间互相对应的地址空间,所述存储空间中的存储元素的总数和所述地址空间中的地址元素的总数相同。
比如,当设备中采用分页存储空间管理算法时,总共有M个页,每一页包括m*n个存储单元,m和n的最大值为256。上述m*n个存储单元组成一个行为m、列为n的矩阵,该矩阵中每一行或一列存储单元都可以看成存储空间的一个存储元素。当采用将一行存储单元作为存储空间的一个存储元素时,则存储空间的存储元素总数为M*m。上述每个存储元素和存储单元都对应一个地址。
在开始时,地址空间中的所有地址元素都没有被使用,对地址空间中的各个地址元素进行初始化,将各个地址元素的最高位置为1,代表该元素还没有被使用,在各个地址元素的其它位中记录相邻的下一个空闲的地址元素的索引。于是,根据上述各个地址元素中记录的索引,可以将各个空闲的地址元素用链表串联起来。
所述的地址元素分配模块41包括:
对应处理模块411,用于当所述存储空间中的一个存储元素被使用时,从所述地址空间中为所述存储元素分配一个相应的地址元素,将所述地址元素和所述存储元素互相对应;
地址处理模块412,用于使所述对应处理模块所分配的地址元素的地址指向所述存储元素中指定位置(比如第一个)的存储单元。
所述的地址元素变更模块42包括:
对应关系修改模块421,用于当将所述存储元素中存储的信息搬移到新的位置上的新存储元素中时,将所述存储元素对应的所述地址元素的地址进行相应修改,使修改后的所述地址元素对应所述新存储元素;
地址修改模块422,用于使修改后的所述地址元素的地址指向所述新存储元素中指定位置的存储单元。
本发明实施例可以应用到嵌入式设备。
综上所述,本发明实施例通过设置和存储空间对应的地址空间,使地址空间中的地址元素和存储空间中的存储元素互相对应。实现了当存储空间中发生存储元素搬移时,只需要将和该存储元素对应的地址元素的地址进行相应的修改。而不需要影响外部模块的操作,做到将存储元素的地址变化封装在存储空间和地址空间内部。
本发明实施例实现了上层模块不需要将存储单元的地址入栈,不用关注存储元素的地址是否发生变化。当存储元素的地址发生变化时,上层模块不需要更新对搬移的存储元素的引用,不需要修改已经存储的地址元素和存储元素的对应关系,仍然可以通过该对应关系获取相应的新存储元素的地址,找到被搬移的存储元素中的信息。从而简化上层模块的操作难度,提高设备的资源利用率,提高设备的存储空间的利用率。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (9)
1、一种存储空间的地址管理方法,其特征在于,包括:
给设备的存储空间中已经使用的存储元素分配对应的地址空间中的地址元素,所述存储元素中至少包括一个存储单元;
当所述存储元素的地址信息发生变更时,对所述地址元素的地址进行相应的变更。
2、根据权利要求1所述的存储空间的地址管理方法,其特征在于,所述的给设备的存储空间中已经使用的存储元素分配互相对应的地址空间中的地址元素之前,所述方法还包括:
建立和所述存储空间互相对应的地址空间,所述存储空间中的存储元素的总数和所述地址空间中的地址元素的总数相同。
3、根据权利要求2所述的存储空间的地址管理方法,其特征在于,所述的给设备的存储空间中已经使用的存储元素分配互相对应的地址空间中的地址元素,包括:
当所述存储空间中的一个存储元素被使用时,从所述地址空间中为所述存储元素分配一个相应的地址元素,并且所述地址元素的地址指向所述存储元素中指定位置的存储单元。
4、根据权利要求1至3任一项所述的存储空间的地址管理方法,其特征在于,所述的当所述存储元素的地址信息发生变更时,对所述地址元素的地址进行相应的变更,包括:
当将所述存储元素中存储的信息搬移到新的位置上的新存储元素中时,将所述存储元素对应的所述地址元素的地址进行相应修改,使修改后的所述地址元素对应所述新存储元素,并且使修改后的所述地址元素的地址指向所述新存储元素中指定位置的存储单元。
5、根据权利要求所述的存储空间的地址管理方法,其特征在于,所述的方法适用于嵌入式设备。
6、一种存储空间的地址管理装置,其特征在于,包括:
地址元素分配模块,用于给设备的存储空间中已经使用的存储元素分配对应的地址空间中的地址元素,所述存储元素中至少包括一个存储单元;
地址元素变更模块,用于当所述存储元素的地址信息发生变更时,对所述地址元素的地址进行相应的变更。
7、根据权利要求6所述的存储空间的地址管理装置,其特征在于,所述的装置还包括:
地址空间建立模块,用于建立和所述存储空间互相对应的地址空间,所述存储空间中的存储元素的总数和所述地址空间中的地址元素的总数相同。
8、根据权利要求6所述的存储空间的地址管理装置,其特征在于,所述的地址元素分配模块包括:
对应处理模块,用于当所述存储空间中的一个存储元素被使用时,从所述地址空间中为所述存储元素分配一个相应的地址元素,将所述地址元素和所述存储元素互相对应;
地址处理模块,用于使所述对应处理模块所分配的地址元素的地址指向所述存储元素中指定位置的存储单元。
9、根据权利要求6或7或8所述的存储空间的地址管理装置,其特征在于,所述的地址元素变更模块包括:
对应关系修改模块,用于当将所述存储元素中存储的信息搬移到新的位置上的新存储元素中时,将所述存储元素对应的所述地址元素的地址进行相应修改,使修改后的所述地址元素对应所述新存储元素;
地址修改模块,用于使修改后的所述地址元素的地址指向所述新存储元素中指定位置的存储单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910159935A CN101620571A (zh) | 2009-07-23 | 2009-07-23 | 存储空间的地址管理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910159935A CN101620571A (zh) | 2009-07-23 | 2009-07-23 | 存储空间的地址管理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101620571A true CN101620571A (zh) | 2010-01-06 |
Family
ID=41513818
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910159935A Pending CN101620571A (zh) | 2009-07-23 | 2009-07-23 | 存储空间的地址管理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101620571A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799660A (zh) * | 2012-07-04 | 2012-11-28 | 北京中电华大电子设计有限责任公司 | 一种java卡对象管理方法 |
CN109405822A (zh) * | 2018-12-03 | 2019-03-01 | 北京遥感设备研究所 | 一种星表制作和快速角矩匹配方法和装置 |
-
2009
- 2009-07-23 CN CN200910159935A patent/CN101620571A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799660A (zh) * | 2012-07-04 | 2012-11-28 | 北京中电华大电子设计有限责任公司 | 一种java卡对象管理方法 |
CN109405822A (zh) * | 2018-12-03 | 2019-03-01 | 北京遥感设备研究所 | 一种星表制作和快速角矩匹配方法和装置 |
CN109405822B (zh) * | 2018-12-03 | 2022-06-24 | 北京遥感设备研究所 | 一种星表制作和快速角矩匹配方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9542307B2 (en) | Shiftable memory defragmentation | |
US20160098344A1 (en) | Hardware automation for memory management | |
CN101379472A (zh) | 通过在装置不活动周期期间停用dram的未使用部分的刷新来减小功率消耗 | |
CN105280215A (zh) | 动态随机存取存储器dram的刷新方法、设备以及系统 | |
CN100520735C (zh) | 存储器空间管理方法及其相关系统 | |
CN104346290A (zh) | 存储装置、计算机系统及其操作方法 | |
KR20220150437A (ko) | 고체 상태 드라이브의 판독 성능을 개선시키는 방법 및 장치 | |
CN102043721A (zh) | 闪存存储管理方法 | |
CN101494086A (zh) | 快闪存储器储存装置、快闪存储器控制器及其切换方法 | |
CN104317753A (zh) | 存储设备及其数据读写方法 | |
US8423707B2 (en) | Data access method for flash memory and storage system and controller using the same | |
CN111158579A (zh) | 固态硬盘及其数据存取的方法 | |
CN103164343A (zh) | 基于相变存储器的分页、ecc校验及多位预取方法及其结构 | |
CN102520885B (zh) | 一种混合硬盘的数据管理系统 | |
CN103377135B (zh) | 寻址方法、装置及系统 | |
CN104995611A (zh) | 用于存取存储器的系统及方法 | |
CN102789422B (zh) | 固态硬盘的数据写入方法 | |
CN103309619A (zh) | 一种闪存数据存储方法 | |
CN105912279B (zh) | 固态存储回收系统及固态存储回收方法 | |
CN101620571A (zh) | 存储空间的地址管理方法和装置 | |
CN101770427A (zh) | 一种利用Flash存储空间的方法及装置 | |
US10394478B2 (en) | Method and apparatus for storage device allocation | |
CN104699414B (zh) | 一种数据读写方法及存储设备 | |
CN102314396B (zh) | 区块为基础闪存的字节存取的方法与装置 | |
CN1826657A (zh) | 可编程的芯片选择 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20100106 |