CN115016742A - 一种嵌入式设备的内存扩展方法 - Google Patents

一种嵌入式设备的内存扩展方法 Download PDF

Info

Publication number
CN115016742A
CN115016742A CN202210941188.4A CN202210941188A CN115016742A CN 115016742 A CN115016742 A CN 115016742A CN 202210941188 A CN202210941188 A CN 202210941188A CN 115016742 A CN115016742 A CN 115016742A
Authority
CN
China
Prior art keywords
memory
current data
data
mapping state
storage
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
Application number
CN202210941188.4A
Other languages
English (en)
Other versions
CN115016742B (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.)
Beigu Electronics Co ltd
Beigu Electronics Co ltd Shanghai Branch
Beigu Electronics Wuxi Co ltd
Luogu Technology Shanghai Co ltd
Original Assignee
Beigu Electronics Co ltd Shanghai Branch
Beigu Electronics Wuxi Co ltd
Luogu Technology Shanghai Co ltd
North Valley Electronics 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 Beigu Electronics Co ltd Shanghai Branch, Beigu Electronics Wuxi Co ltd, Luogu Technology Shanghai Co ltd, North Valley Electronics Co ltd filed Critical Beigu Electronics Co ltd Shanghai Branch
Priority to CN202210941188.4A priority Critical patent/CN115016742B/zh
Publication of CN115016742A publication Critical patent/CN115016742A/zh
Application granted granted Critical
Publication of CN115016742B publication Critical patent/CN115016742B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Read Only Memory (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种嵌入式设备的内存扩展方法,属于嵌入式应用开发内存管理领域。所述嵌入式设备设置有第一存储器和第二存储器,所述内存扩展方法包括:在第一存储器内获取第一内存块,并将当前数据的头部数据存入第一内存块,头部数据用于记录当前数据的存储信息;获取当前数据的数据长度;判断第一存储器内是否存在满足当前数据的数据长度的第二内存块;若存在,向第一存储器申请第二内存块,并将当前数据存入第二内存块;若不存在,向第二存储器申请一满足当前数据的数据长度的存储空间,并将当前数据存入存储空间;根据当前数据的存储状态更新头部数据。本发明提供的嵌入式设备的内存扩展方法,能够利用嵌入式设备进行大量数据的快速存储和读写。

Description

一种嵌入式设备的内存扩展方法
技术领域
本发明涉及嵌入式应用开发内存管理领域,尤其涉及一种嵌入式设备的内存扩展方法。
背景技术
目前嵌入式设备逐年增多,尤其是中低端嵌入式设备例如单片机设备的出货量巨大。嵌入式设备在进行单片机选型时会着重考虑成本问题,所以会选择存储资源少一些的单片机作为主控芯片,因此大部分开发人员会面临缺内存的问题。而当内存不足时,目前采用的方法大多是通过更换存储资源更多的单片机或是外挂RAM存储器来解决,但与之带来的就是成本的提升。
因此,如何提供一种嵌入式设备的内存扩展方法,以克服现有技术中存在的上述缺陷,日益成为本领域技术人员亟待解决的技术问题之一。
发明内容
本发明的目的在于提供一种嵌入式设备的内存扩展方法,以解决现有技术存在的嵌入式设备内存不足,以及通过外挂RAM存储器导致成本增加的问题。
为了达到上述目的,本发明提供了一种嵌入式设备的内存扩展方法,所述嵌入式设备设置有第一存储器和第二存储器,所述内存扩展方法,包括:
在所述第一存储器内获取第一内存块,并将当前数据的头部数据存入所述第一内存块,所述头部数据用于记录所述当前数据的存储信息;
获取所述当前数据的数据长度;
判断所述第一存储器内是否存在满足所述当前数据的数据长度的第二内存块;
若存在,向所述第一存储器申请所述第二内存块,并将所述当前数据存入所述第二内存块;
若不存在,向所述第二存储器申请一满足所述当前数据的数据长度的存储空间,并将所述当前数据存入所述存储空间;
根据所述当前数据的存储状态更新所述头部数据。
可选的,所述头部数据在所述第一存储器内的存储信息包括:所述头部数据的起始地址、所述第二内存块的引用次数、所述第二内存块的存在时间、所述第二内存块的存储长度、所述当前数据的映射状态和所述当前数据的存储位置;
所述头部数据在所述第二存储器内的存储信息包括:所述当前数据的存储位置、所述存储空间是否使用状态、所述存储空间的存储长度、所述存储空间是否全存储、所述头部数据的起始地址、所述存储空间的引用次数和所述存储空间的存在时间。
可选的,所述当前数据的映射状态包括:映射状态0、映射状态1和映射状态2;
其中,所述映射状态0为所述头部数据和所述当前数据均存放在所述第一存储器内;
所述映射状态1为所述头部数据存放在所述第一存储器内,所述当前数据存放在所述第二存储器内;
所述映射状态2为所述头部数据和所述当前数据均存放在所述第二存储器内;
当对所述嵌入式设备进行读写操作时,根据所述当前数据的映射状态进行读写操作:
当所述当前数据处于映射状态0时,调用第一存储器读写接口进行第一存储器内所述当前数据的读写;
当所述当前数据处于映射状态1或映射状态2时,调用第二存储器读写接口进行所述第二存储器内所述当前数据的读写。
可选的,还包括:建立第一内存管理链表和第二内存管理链表;
其中,向所述第一存储器每申请一内存块,将该内存块添加至所述第一内存管理链表;
向所述第二存储器每申请一存储空间,将该存储空间添加至所述第二内存管理链表。
可选的,还包括以下方式进行内存管理:
根据所述第一存储器内的所述头部数据获取所述当前数据的映射状态以及计算所述当前数据的使用频率;
当所述当前数据的使用频率高于第一预设值,按照第一管理规则,根据所述当前数据的映射状态,将所述当前数据和所述头部数据转存至所述第一存储器,或保留所述当前数据和所述头部数据在所述第一存储器内的原始存储位置;
当所述当前数据的使用频率低于所述第一预设值且高于第二预设值时,按照第二管理规则,根据所述当前数据的映射状态,将所述当前数据转存至所述第二存储器和将所述头部数据转存至所述第一存储器,或保留所述当前数据在所述第二存储器内的原始存储位置和所述头部数据在所述第一存储器内的原始存储位置;
当所述当前数据的使用频率低于所述第二预设值时,按照第三管理规则,根据所述当前数据的映射状态,将所述当前数据和所述头部数据转存至所述第二存储器,或保留所述当前数据和所述头部数据在所述第二存储器内的原始存储位置。
可选的,所述根据所述头部数据计算所述当前数据的使用频率,包括:
实时遍历第一内存管理链表和第二内存管理链表,获取所述当前数据的头部数据;
根据下式计算得到所述当前数据的使用频率:
k=n/t
式中,k为所述当前数据的使用频率,n为所述当前数据在所述第一存储器内和在所述第二存储器内的引用次数的和,t为所述当前数据在所述第一存储器内和在所述第二存储器内的存在时间的和。
可选的,所述第一管理规则包括:获取所述当前数据的映射状态,当所述当前数据处于所述映射状态1时,将所述当前数据由所述第二存储器转存至所述第一存储器内,所述头部数据的原始存储位置不改变,并更新所述当前数据为所述映射状态0;当所述当前数据处于所述映射状态2时,将所述当前数据和所述头部数据均由所述第二存储器转存至所述第一存储器内,并更新所述当前数据为所述映射状态0;
所述第二管理规则包括:获取所述当前数据的映射状态,当所述当前数据处于所述映射状态0时,将所述当前数据由所述第一存储器转存至所述第二存储器,所述头部数据的原始存储位置不改变,并更新所述当前数据为所述映射状态1;当所述当前数据处于所述映射状态2时,将所述头部数据由所述第二存储器转存至所述第一存储器,所述当前数据的原始存储位置不改变,并更新所述当前数据为所述映射状态1;
所述第三管理规则包括:获取所述当前数据的映射状态,当所述当前数据处于所述映射状态0时,将所述当前数据和所述头部数据由所述第一存储器转存至所述第二存储器,并更新所述当前数据为所述映射状态2;当所述当前数据处于所述映射状态1时,将所述头部数据由所述第一存储器转存至所述第二存储器,所述当前数据的原始存储位置不改变,并更新所述当前数据为所述映射状态2。
可选的,当所述当前数据和/或所述头部数据的存储位置改变后,将同步更新第一内存管理链表和第二内存管理链表。
可选的,当将所述当前数据转存至所述第一存储器内时,所述第一存储器内需具有满足所述当前数据的数据长度的内存块,否则,所述当前数据保留在所述第二存储器内的原始存储位置;
当将所述当前数据转存至所述第二存储器内时,所述第二存储器内需具有满足所述当前数据的数据长度的存储空间,否则,所述当前数据保留在所述第一存储器内的原始存储位置。
可选的,还包括采用以下方式释放内存块:
根据所述头部数据获取所述当前数据的映射状态;
当所述当前数据处于所述映射状态0时,先释放存储所述当前数据的内存块,再释放存储所述头部数据的内存块,并更新第一内存管理链表;
当所述当前数据处于所述映射状态1时,先将第二内存管理链表中所述当前数据的使用状态更新为未使用状态,再释放存储所述头部数据的内存块,并同步更新第一内存管理链表;
当所述当前数据处于所述映射状态2时,将第二内存管理链表中所述头部数据的使用状态更新为未使用状态。
与现有技术相比,本发明提供的一种嵌入式设备的内存扩展方法具有以下有益效果:
本发明提供的一种嵌入式设备的内存扩展方法,所述嵌入式设备设置有第一存储器和第二存储器,所述内存扩展方法,包括:首先在所述第一存储器内获取第一内存块,并将当前数据的头部数据存入所述第一内存块,所述头部数据用于记录所述当前数据的存储信息;其次获取所述当前数据的数据长度;随后判断所述第一存储器内是否存在满足所述当前数据的数据长度的第二内存块;若存在,向所述第一存储器申请所述第二内存块,并将所述当前数据存入所述第二内存块;若不存在,向所述第二存储器申请一满足所述当前数据的数据长度的存储空间,并将所述当前数据存入所述存储空间;最后根据所述当前数据的存储状态更新所述头部数据。本发明提供的嵌入式设备的内存扩展方法,通过将所述头部数据存入所述第一存储器内,由于所述第一存储器(例如RAM存储器)具有更快的读写能力,因此,当将所述头部数据存入所述第一存储器后,能够快速从所述头部数据内获取所述当前数据的数据长度,以便对所述当前数据进行存储。同时,当所述第一存储器内空间不足时,能够将所述当前数据存储在所述第二存储器内,由于所述第二存储器(例如Flash存储器)具有更大的存储空间,因此本发明提供的内存扩展方法,使得所述嵌入式设备不仅内存容量大,而且读写能力强以及使用成本低。
附图说明
图1为本发明一实施方式提供的嵌入式设备的内存扩展方法的流程图;
图2为本发明一实施方式提供的RAM内存管理链表释放前示意图;
图3为本发明一实施方式提供的RAM内存管理链表释放后示意图;
图4为本发明一实施方式提供的Flash内存管理链表释放前示意图;
图5为本发明一实施方式提供的Flash内存管理链表释放后示意图。
具体实施方式
下面将结合示意图对本发明的具体实施方式进行更详细的描述。根据下列描述,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。应当了解,说明书附图并不一定按比例的显示本发明的具体结构,并且在说明书附图中用于说明本发明某些原理的图示性特征也会采取略微简化的画法。本文所公开的本发明的具体设计特征包括例如具体尺寸、方向、位置和外形将部分地由具体所要应用和使用的环境来确定。以及,在以下说明的实施方式中,有时在不同的附图之间共同使用同一附图标记来表示相同部分或具有相同功能的部分,而省略其重复说明。在本说明书中,使用相似的标号和字母表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本实施例提供了一种嵌入式设备的内存扩展方法,具体地,请参见附图1,其示意性地给出了本实施例提供的嵌入式设备的内存扩展方法的流程图,从图1可以看出,所述嵌入式设备设置有第一存储器和第二存储器,所述内存扩展方法,包括:
在所述第一存储器内获取第一内存块,并将当前数据的头部数据存入所述第一内存块,所述头部数据用于记录所述当前数据的存储信息;
获取所述当前数据的数据长度;
判断所述第一存储器内是否存在满足所述当前数据的数据长度的第二内存块;
若存在,向所述第一存储器申请所述第二内存块,并将所述当前数据存入所述第二内存块;
若不存在,向所述第二存储器申请一满足所述当前数据的数据长度的存储空间,并将所述当前数据存入所述存储空间;
根据所述当前数据的存储状态更新所述头部数据。
如此设置,本发明提供的嵌入式设备的内存扩展方法,通过将所述头部数据存入所述第一存储器内,由于所述第一存储器(例如RAM存储器)具有更快的读写能力,因此,当将所述头部数据存入所述第一存储器后,能够快速从所述头部数据内获取所述当前数据的数据长度,以便对所述当前数据进行存储。同时,当所述第一存储器内空间不足时,能够将所述当前数据存储在所述第二存储器内,由于所述第二存储器(例如Flash存储器)具有更大的存储空间,因此本发明提供的内存扩展方法,使得所述嵌入式设备不仅内存容量大,而且读写能力强以及使用成本低。
需要特别说明的是,如本领域技术人员可以理解地,上述示例虽然第一存储器以RAM为例,第二存储器以FLASH为例,但本发明并不限制所述第一存储器和所述第二存储器的具体类型。所述第一存储器也可以为除RAM存储器之外的其他存储器;所述第二存储器也可以为除FLASH存储器之外的其他存储器。
优选的,所述头部数据在所述第一存储器内的存储信息包括:所述头部数据的起始地址、所述第二内存块的引用次数、所述第二内存块的存在时间、所述第二内存块的存储长度、所述当前数据的映射状态和所述当前数据的存储位置;
所述头部数据在所述第二存储器内的存储信息包括:所述当前数据的存储位置、所述存储空间是否使用状态、所述存储空间的存储长度、所述存储空间是否全存储、所述头部数据的起始地址、所述存储空间的引用次数和所述存储空间的存在时间。由此,通过所述头部数据所包括的存储信息,能够快速获取所述当前数据的位置和存储状态等信息,从而对所述当前数据进行读写。
优选的,所述当前数据的映射状态包括:映射状态0、映射状态1和映射状态2;其中,所述映射状态0为所述头部数据和所述当前数据均存放在所述第一存储器内;所述映射状态1为所述头部数据存放在所述第一存储器内,所述当前数据存放在所述第二存储器内;所述映射状态2为所述头部数据和所述当前数据均存放在所述第二存储器内;当对所述嵌入式设备进行读写操作时,根据所述当前数据的映射状态进行读写操作:当所述当前数据处于映射状态0时,调用第一存储器读写接口进行第一存储器内所述当前数据的读写;当所述当前数据处于映射状态1或映射状态2时,调用第一存储器读写接口进行所述第二存储器内所述当前数据的读写。由此,根据所述映射状态,能够获取所述当前数据的存储位置,从而在其对应位置通过对应数据接口进行所述当前数据的快速读写。
优选的,所述内存扩展方法还包括:建立第一内存管理链表和第二内存管理链表;其中,向所述第一存储器每申请一内存块,将该内存块添加至所述第一内存管理链表;向所述第二存储器每申请一存储空间,将该存储空间添加至所述第二内存管理链表。如此设置,便于在对所述当前数据进行读出时,通过遍历所述第一内存管理链表和所述第二内存管理链表快速找到所述当前数据的头部数据,从而找到所述当前数据以读出。
优选的,还包括以下方式进行内存管理:
根据所述第一存储器内的所述头部数据获取所述当前数据的映射状态以及计算所述当前数据的使用频率;
当所述当前数据的使用频率高于第一预设值,按照第一管理规则,根据所述当前数据的映射状态,将所述当前数据和所述头部数据转存至所述第一存储器,或保留所述当前数据和所述头部数据在所述第一存储器内的原始存储位置;
当所述当前数据的使用频率低于所述第一预设值且高于第二预设值时,按照第二管理规则,根据所述当前数据的映射状态,将所述当前数据转存至所述第二存储器和将所述头部数据转存至所述第一存储器,或保留所述当前数据在所述第二存储器内的原始存储位置和所述头部数据在所述第一存储器内的原始存储位置;
当所述当前数据的使用频率低于所述第二预设值时,按照第三管理规则,根据所述当前数据的映射状态,将所述当前数据和所述头部数据转存至所述第二存储器,或保留所述当前数据和所述头部数据在所述第二存储器内的原始存储位置。
如此设置,本发明提供的嵌入式设备的内存扩展方法,通过将所述当前数据的使用频率与所述第一预设值和所述第二预设值进行对比,利用对比结果和所述当前数据的映射状态,将使用频率高于所述第一预设值的所述当前数据和所述头部数据都存储在读写能力快的所述第一存储器(例如RAM存储器)内,由此保障了使用频率高的所述当前数据能够被快速读写。同时,由于所述第二存储器(例如Flash存储器)具有更大的存储空间,因此通过将使用频率低的所述当前数据存储至所述第二存储器内,使得所述嵌入式设备既能够进行大量的数据存储,且不影响使用频率高的所述当前数据的存储。由此,本发明提供的内存扩展方法,使得所述嵌入式设备不仅内存容量大,同时读写能力强以及使用成本低。
优选的,所述根据所述头部数据计算所述当前数据的使用频率,包括:
建立一动态处理任务,所述动态处理任务实时遍历第一内存管理链表和第二内存管理链表,获取所述当前数据的头部数据;
根据下式计算得到所述当前数据的使用频率:
k=n/t
式中,k为所述当前数据的使用频率,n为所述当前数据在所述第一存储器内和在所述第二存储器内的引用次数的和,t为所述当前数据在所述第一存储器内和在所述第二存储器内的存在时间的和。
由此,通过所述动态处理任务实时遍历所述第一内存管理链表和所述第二内存管理链表以找出所述头部数据,并根据所述头部数据获取所述当前数据在所述嵌入式设备内引用次数和存在时间,从而通过计算获取所述当前数据的使用频率。
优选的,所述预设存储规则,包括:
所述第一管理规则包括:获取所述当前数据的映射状态,当所述当前数据处于所述映射状态1时,将所述当前数据由所述第二存储器转存至所述第一存储器内,所述头部数据的原始存储位置不改变,并更新所述当前数据为所述映射状态0;当所述当前数据处于所述映射状态2时,将所述当前数据和所述头部数据均由所述第二存储器转存至所述第一存储器内,并更新所述当前数据为所述映射状态0;
所述第二管理规则包括:获取所述当前数据的映射状态,当所述当前数据处于所述映射状态0时,将所述当前数据由所述第一存储器转存至所述第二存储器,所述头部数据的原始存储位置不改变,并更新所述当前数据为所述映射状态1;当所述当前数据处于所述映射状态2时,将所述头部数据由所述第二存储器转存至所述第一存储器,所述当前数据的原始存储位置不改变,并更新所述当前数据为所述映射状态1;
所述第三管理规则包括:获取所述当前数据的映射状态,当所述当前数据处于所述映射状态0时,将所述当前数据和所述头部数据由所述第一存储器转存至所述第二存储器,并更新所述当前数据为所述映射状态2;当所述当前数据处于所述映射状态1时,将所述头部数据由所述第一存储器转存至所述第二存储器,所述当前数据的原始存储位置不改变,并更新所述当前数据为所述映射状态2。
如此设置,本发明提供的内存扩展方法,通过将所述当前数据的使用频率和所述第一预设值和所述第二预设值进行对比,并利用所述头部数据获取所述当前数据的映射状态,从而将使用频率高于所述第一预设值的所述当前数据和所述头部数据都存储在读写能力快的所述第一存储器内,由此保障了使用频率高的所述当前数据能够被快速读写。同时,由于所述第二存储器具有更大的存储空间,因此通过将使用频率低的所述当前数据存储至所述第二存储器内,使得所述嵌入式设备能够进行大量的数据存储,且不影响使用频率高的所述当前数据的存储。
优选的,当所述当前数据和/或所述头部数据的存储位置改变后,将同步更新第一内存管理链表和第二内存管理链表。由此,保障了后续对所述当前数据进行再次读写时,能够快速找到所述头部数据和所述当前数据。
优选的,当将所述当前数据转存至所述第一存储器内时,所述第一存储器内需具有满足所述当前数据的数据长度的内存块,否则,所述当前数据保留在所述第二存储器内的原始存储位置;当将所述当前数据转存至所述第二存储器内时,所述第二存储器内需具有满足所述当前数据的数据长度的存储空间,否则,所述当前数据保留在所述第一存储器内的原始存储位置。由此,避免将所述当前数据转存至第一存储器或第二存储器时,因无法获得相应存储器内满足所述当前数据的数据长度的内存块,而导致转存失败的问题。
优选的,还包括采用以下方式释放内存块:
根据所述头部数据获取所述当前数据的映射状态;
当所述当前数据处于所述映射状态0时,先释放存储所述当前数据的内存块,再释放存储所述头部数据的内存块,并更新第一内存管理链表;
当所述当前数据处于所述映射状态1时,先将第二内存管理链表中所述当前数据的使用状态更新为未使用状态,再释放存储所述头部数据的内存块,并同步更新第一内存管理链表;
当所述当前数据处于所述映射状态2时,将第二内存管理链表中所述头部数据的使用状态更新为未使用状态。
由此,通过将所述内存块进行释放,使得当进行新的当前数据的存储时,所述嵌入式设备内能够有足够的存储空间进行存储。
为了更便于理解本发明提供的嵌入式设备的内存扩展方法,内存管理时释放内存块的过程,以下以应用本发明提供的数据存储方法和内存扩展方法后的嵌入式设备的一场景示例说明。请参见附图2-附图5,其中,图2-图5示意性地给出了第一存储器和第二存储器释放前和释放后的示意图,结合图2-图5可以看出,在该应用场景中,当所述第一存储器为RAM存储器,所述第二存储器为Flash存储器,需要对RAM内存块2进行释放时,先去判断内存块2是否处于映射1状态。如图4所示,通过判断,此时所述RAM内存块2处于映射状态1,并映射到了存储空间2,此时,内存管理会将存储空间2的是否使用状态更新为未使用状态,以供后面其它当前数据进行存储使用,需要说明的是,如果有相邻的若干内存都被释放,由于内存块与内存块之间的地址是连续的,因此所有被释放的内存块将合并成一个新的内存块,此时Flash内存管理链表如图5所示,同时RAM内存块2也将被释放,释放后的RAM内存管理链表如图3所示。
另外,应当注意的是,在本文的实施方式中所揭露的系统和方法,也可以通过其他的方式实现。以上所描述的装置实施方式仅仅是示意性的,例如,附图中的流程图和框图显示了根据本文的多个实施方式的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用于执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。
综上,本发明提供的嵌入式设备的内存扩展方法,通过将所述头部数据存入所述第一存储器内,由于所述第一存储器(例如RAM存储器)具有更快的读写能力,因此,当将所述头部数据存入所述第一存储器后,能够快速从所述头部数据内获取所述当前数据的数据长度,以便对所述当前数据进行存储。同时,当所述第一存储器内空间不足时,能够将所述当前数据存储在所述第二存储器内,由于所述第二存储器(例如Flash存储器)具有更大的存储空间,因此本发明提供的内存扩展方法,使得所述嵌入式设备不仅内存容量大,而且读写能力强以及使用成本低。
上述仅为本发明的优选实施例而已,并不对本发明起到任何限制作用。任何所属技术领域的技术人员,在不脱离本发明的技术方案的范围内,对本发明揭露的技术方案和技术内容做任何形式的等同替换或修改等变动,均属未脱离本发明的技术方案的内容,仍属于本发明的保护范围之内。

Claims (10)

1.一种嵌入式设备的内存扩展方法,其特征在于,所述嵌入式设备设置有第一存储器和第二存储器,所述内存扩展方法,包括:
在所述第一存储器内获取第一内存块,并将当前数据的头部数据存入所述第一内存块,所述头部数据用于记录所述当前数据的存储信息;
获取所述当前数据的数据长度;
判断所述第一存储器内是否存在满足所述当前数据的数据长度的第二内存块;
若存在,向所述第一存储器申请所述第二内存块,并将所述当前数据存入所述第二内存块;
若不存在,向所述第二存储器申请一满足所述当前数据的数据长度的存储空间,并将所述当前数据存入所述存储空间;
根据所述当前数据的存储状态更新所述头部数据。
2.如权利要求1所述的一种嵌入式设备的内存扩展方法,其特征在于,
所述头部数据在所述第一存储器内的存储信息包括:所述头部数据的起始地址、所述第二内存块的引用次数、所述第二内存块的存在时间、所述第二内存块的存储长度、所述当前数据的映射状态和所述当前数据的存储位置;
所述头部数据在所述第二存储器内的存储信息包括:所述当前数据的存储位置、所述存储空间是否使用状态、所述存储空间的存储长度、所述存储空间是否全存储、所述头部数据的起始地址、所述存储空间的引用次数和所述存储空间的存在时间。
3.如权利要求2所述的一种嵌入式设备的内存扩展方法,其特征在于,所述当前数据的映射状态包括:映射状态0、映射状态1和映射状态2;
其中,所述映射状态0为所述头部数据和所述当前数据均存放在所述第一存储器内;
所述映射状态1为所述头部数据存放在所述第一存储器内,所述当前数据存放在所述第二存储器内;
所述映射状态2为所述头部数据和所述当前数据均存放在所述第二存储器内;
当对所述嵌入式设备进行读写操作时,根据所述当前数据的映射状态进行读写操作:
当所述当前数据处于映射状态0时,调用第一存储器读写接口进行第一存储器内所述当前数据的读写;
当所述当前数据处于映射状态1或映射状态2时,调用第二存储器读写接口进行所述第二存储器内所述当前数据的读写。
4.如权利要求3所述的一种嵌入式设备的内存扩展方法,其特征在于,还包括:建立第一内存管理链表和第二内存管理链表;
其中,向所述第一存储器每申请一内存块,将该内存块添加至所述第一内存管理链表;
向所述第二存储器每申请一存储空间,将该存储空间添加至所述第二内存管理链表。
5.如权利要求3-4任一项所述的一种嵌入式设备的内存扩展方法,其特征在于,还包括以下方式进行内存管理:
根据所述第一存储器内的所述头部数据获取所述当前数据的映射状态以及计算所述当前数据的使用频率;
当所述当前数据的使用频率高于第一预设值,按照第一管理规则,根据所述当前数据的映射状态,将所述当前数据和所述头部数据转存至所述第一存储器,或保留所述当前数据和所述头部数据在所述第一存储器内的原始存储位置;
当所述当前数据的使用频率低于所述第一预设值且高于第二预设值时,按照第二管理规则,根据所述当前数据的映射状态,将所述当前数据转存至所述第二存储器和将所述头部数据转存至所述第一存储器,或保留所述当前数据在所述第二存储器内的原始存储位置和所述头部数据在所述第一存储器内的原始存储位置;
当所述当前数据的使用频率低于所述第二预设值时,按照第三管理规则,根据所述当前数据的映射状态,将所述当前数据和所述头部数据转存至所述第二存储器,或保留所述当前数据和所述头部数据在所述第二存储器内的原始存储位置。
6.如权利要求5所述的一种嵌入式设备的内存扩展方法,其特征在于,所述根据所述头部数据计算所述当前数据的使用频率,包括:
实时遍历第一内存管理链表和第二内存管理链表,获取所述当前数据的头部数据;
根据下式计算得到所述当前数据的使用频率:
k=n/t
式中,k为所述当前数据的使用频率,n为所述当前数据在所述第一存储器内和在所述第二存储器内的引用次数的和,t为所述当前数据在所述第一存储器内和在所述第二存储器内的存在时间的和。
7.如权利要求5所述的一种嵌入式设备的内存扩展方法,其特征在于,
所述第一管理规则包括:获取所述当前数据的映射状态,当所述当前数据处于所述映射状态1时,将所述当前数据由所述第二存储器转存至所述第一存储器内,所述头部数据的原始存储位置不改变,并更新所述当前数据为所述映射状态0;当所述当前数据处于所述映射状态2时,将所述当前数据和所述头部数据均由所述第二存储器转存至所述第一存储器内,并更新所述当前数据为所述映射状态0;
所述第二管理规则包括:获取所述当前数据的映射状态,当所述当前数据处于所述映射状态0时,将所述当前数据由所述第一存储器转存至所述第二存储器,所述头部数据的原始存储位置不改变,并更新所述当前数据为所述映射状态1;当所述当前数据处于所述映射状态2时,将所述头部数据由所述第二存储器转存至所述第一存储器,所述当前数据的原始存储位置不改变,并更新所述当前数据为所述映射状态1;
所述第三管理规则包括:获取所述当前数据的映射状态,当所述当前数据处于所述映射状态0时,将所述当前数据和所述头部数据由所述第一存储器转存至所述第二存储器,并更新所述当前数据为所述映射状态2;当所述当前数据处于所述映射状态1时,将所述头部数据由所述第一存储器转存至所述第二存储器,所述当前数据的原始存储位置不改变,并更新所述当前数据为所述映射状态2。
8.如权利要求7所述的一种嵌入式设备的内存扩展方法,其特征在于,当所述当前数据和/或所述头部数据的存储位置改变后,将同步更新第一内存管理链表和第二内存管理链表。
9.如权利要求8所述的一种嵌入式设备的内存扩展方法,其特征在于,当将所述当前数据转存至所述第一存储器内时,所述第一存储器内需具有满足所述当前数据的数据长度的内存块,否则,所述当前数据保留在所述第二存储器内的原始存储位置;
当将所述当前数据转存至所述第二存储器内时,所述第二存储器内需具有满足所述当前数据的数据长度的存储空间,否则,所述当前数据保留在所述第一存储器内的原始存储位置。
10.如权利要求5所述的一种嵌入式设备的内存扩展方法,其特征在于,还包括采用以下方式释放内存块:
根据所述头部数据获取所述当前数据的映射状态;
当所述当前数据处于所述映射状态0时,先释放存储所述当前数据的内存块,再释放存储所述头部数据的内存块,并更新第一内存管理链表;
当所述当前数据处于所述映射状态1时,先将第二内存管理链表中所述当前数据的使用状态更新为未使用状态,再释放存储所述头部数据的内存块,并同步更新第一内存管理链表;
当所述当前数据处于所述映射状态2时,将第二内存管理链表中所述头部数据的使用状态更新为未使用状态。
CN202210941188.4A 2022-08-08 2022-08-08 一种嵌入式设备的内存扩展方法 Active CN115016742B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210941188.4A CN115016742B (zh) 2022-08-08 2022-08-08 一种嵌入式设备的内存扩展方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210941188.4A CN115016742B (zh) 2022-08-08 2022-08-08 一种嵌入式设备的内存扩展方法

Publications (2)

Publication Number Publication Date
CN115016742A true CN115016742A (zh) 2022-09-06
CN115016742B CN115016742B (zh) 2022-12-02

Family

ID=83065931

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210941188.4A Active CN115016742B (zh) 2022-08-08 2022-08-08 一种嵌入式设备的内存扩展方法

Country Status (1)

Country Link
CN (1) CN115016742B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090217105A1 (en) * 2008-02-26 2009-08-27 Po-Chun Hsu Debug device for embedded systems and method thereof
CN101673246A (zh) * 2009-08-06 2010-03-17 深圳市融创天下科技发展有限公司 一种高效的先进先出数据池读写方法
US20100325384A1 (en) * 2009-06-23 2010-12-23 Samsung Electronics Co., Ltd. Data storage medium accessing method, data storage device and recording medium to perform the data storage medium accessing method
CN106959893A (zh) * 2017-03-31 2017-07-18 联想(北京)有限公司 加速器、用于加速器的内存管理方法以及数据处理系统
CN109918352A (zh) * 2019-03-04 2019-06-21 北京百度网讯科技有限公司 存储器系统和存储数据的方法
WO2021088466A1 (zh) * 2019-11-04 2021-05-14 盛科网络(苏州)有限公司 提高网络芯片报文存储效率的方法、设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090217105A1 (en) * 2008-02-26 2009-08-27 Po-Chun Hsu Debug device for embedded systems and method thereof
US20100325384A1 (en) * 2009-06-23 2010-12-23 Samsung Electronics Co., Ltd. Data storage medium accessing method, data storage device and recording medium to perform the data storage medium accessing method
CN101673246A (zh) * 2009-08-06 2010-03-17 深圳市融创天下科技发展有限公司 一种高效的先进先出数据池读写方法
CN106959893A (zh) * 2017-03-31 2017-07-18 联想(北京)有限公司 加速器、用于加速器的内存管理方法以及数据处理系统
CN109918352A (zh) * 2019-03-04 2019-06-21 北京百度网讯科技有限公司 存储器系统和存储数据的方法
WO2021088466A1 (zh) * 2019-11-04 2021-05-14 盛科网络(苏州)有限公司 提高网络芯片报文存储效率的方法、设备及存储介质

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
SWAROOP GHOSH: "Tutorial T6B: Embedded Memory Design for Future Technologies: Challenges and Solutions", 《2014 27TH INTERNATIONAL CONFERENCE ON VLSI DESIGN AND 2014 13TH INTERNATIONAL CONFERENCE ON EMBEDDED SYSTEMS》 *
孙洁: "计算机应用的内存管理技术研究", 《计算机与现代化》 *
王庆江等: "嵌入式系统及其开发领域典型特征分析", 《计算机应用研究》 *
高明星等: "基于PLD的嵌入式系统外存模块设计", 《电子技术应用》 *

Also Published As

Publication number Publication date
CN115016742B (zh) 2022-12-02

Similar Documents

Publication Publication Date Title
US10936207B2 (en) Linked lists in flash memory
US7673105B2 (en) Managing memory pages
US20180081797A1 (en) Wear-leveling nandflash memory reading/writing method
CN111880956B (zh) 一种数据同步方法和装置
CN112307263B (zh) 一种文件存储方法、装置、设备及介质
CN113568582B (zh) 数据管理方法、装置和存储设备
CN113282249B (zh) 一种数据处理方法、系统、设备以及介质
CN113434470B (zh) 数据分布方法、装置及电子设备
CN106095331B (zh) 一种固定大文件内部资源的控制方法
CN116431080B (zh) 一种数据落盘方法、系统、设备及计算机可读存储介质
CN115016742B (zh) 一种嵌入式设备的内存扩展方法
CN114168225B (zh) 固态硬盘映射表延迟更新方法、装置、计算机设备及存储介质
CN111949212B (zh) 基于自定义开放通道ssd的文件系统及文件管理方法
CN115328851A (zh) 一种数据保护方法、装置、设备及介质
CN112181288B (zh) 一种非易失性存储介质的数据处理方法和计算机存储介质
CN111444114B (zh) 一种非易失性内存中数据的处理方法、装置及系统
CN110716923B (zh) 数据处理方法、装置、节点设备及存储介质
US6711588B1 (en) File management method for file system
CN113470725A (zh) 一种动态随机存储器的测试方法及装置
CN111090396A (zh) 一种文件的处理方法、装置及电子设备
CN110688057A (zh) 一种分布式存储方法及装置
CN110874273A (zh) 一种数据处理方法及装置
CN113608681B (zh) 一种数据存储方法、系统、设备以及介质
CN112882867B (zh) 一种索引信息存储方法、装置及存储设备
CN111435285B (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
CP03 Change of name, title or address

Address after: Building 1 and 1-3 floors of Building 2 of Jinan Energy Industry Park, No. 1815 Gangyuan 7th Road, High tech Zone, Jinan City, Shandong Province, 250104

Patentee after: Beigu Electronics Co.,Ltd.

Patentee after: Beigu Electronics (Wuxi) Co.,Ltd.

Patentee after: Luogu Technology (Shanghai) Co.,Ltd.

Patentee after: Beigu Electronics Co.,Ltd. Shanghai Branch

Address before: 250104 building 20, zhizaogu, 2966 Chunhui Road, high tech Zone, Jinan City, Shandong Province

Patentee before: NORTH VALLEY ELECTRONICS Co.,Ltd.

Patentee before: Beigu Electronics (Wuxi) Co.,Ltd.

Patentee before: Luogu Technology (Shanghai) Co.,Ltd.

Patentee before: Beigu Electronics Co.,Ltd. Shanghai Branch

CP03 Change of name, title or address