CN114911716A - 一种动态的、离散的、碎片化的嵌入式系统nand flash使用方法 - Google Patents
一种动态的、离散的、碎片化的嵌入式系统nand flash使用方法 Download PDFInfo
- Publication number
- CN114911716A CN114911716A CN202210227399.1A CN202210227399A CN114911716A CN 114911716 A CN114911716 A CN 114911716A CN 202210227399 A CN202210227399 A CN 202210227399A CN 114911716 A CN114911716 A CN 114911716A
- Authority
- CN
- China
- Prior art keywords
- management table
- block index
- index management
- nand flash
- discrete
- 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
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
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5016—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5022—Mechanisms to release resources
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Logic Circuits (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明提供了一种动态的、离散的、碎片化的嵌入式系统nandflash使用方法,在nandflash的物理层面新增逻辑层面,所述逻辑层面用于复制管控nandflash的所有块,用于对nandflash中的每一个块进行分配管理。本发明所述的一种动态的、离散的、碎片化的嵌入式系统nandflash使用方法,在nandflash的物理层面新增了一个逻辑层面,对nandflash每一个块进行分配管理。
Description
技术领域
本发明属于信息技术领域,尤其是涉及一种动态的、离散的、碎片化的嵌入式系统nand flash使用方法。
背景技术
目前常见的网通产品如PON、路由器等,大都使用NAND flash作为固件存储芯片,其使用方法都是从物理层面设计了固定的分区,分区的地址在分配完成之后是固定的,各个分区分别用作如:bootloader、 os、rootfs、datafs、config等。
上述各个分区的使用情况有两类:1、如bootloader、os、rootfs一般只在系统升级的时候进行一次擦写,其他都是只用作读出,写入频率很低,不易出现坏块,但如果坏块管理功能异常设备会直接损坏; 2、如datafs、config等一般在设备上电运行期间随时会保持读写状态,写入频率较高,较易出现坏块, NAND flash有需要进行坏块管理,目前网通类产品方案商如联发科、博通、高通等,如果出现坏块,一般的操作都是跳过坏块,写入下一个块,很容易出现异常而导致数据丢失。
发明内容
有鉴于此,本发明旨在提出一种动态的、离散的、碎片化的嵌入式系统nand flash使用方法,以解决上述问题中的不足之处。
达到上述目的,本发明的技术方案是这样实现的:
第一方面本方案公开了一种动态的、离散的、碎片化的嵌入式系统nand flash使用方法,在nand flash 的物理层面新增逻辑层面,所述逻辑层面用于复制管控nand flash的所有块,用于对nand flash中的每一个块进行分配管理。
第二方面本方案公开了一种动态的、离散的、碎片化的嵌入式系统nand flash使用方法的系统,包括block index管理表初始化模块、block index管理表维护管理模块、物理地址-逻辑地址的寻址模块。
进一步的,block index管理表初始化模块在进行初始化操作时,包括以下步骤:
S01、创建block index管理表空表;
S02、根据nand flash属性填充block index管理表,对block进行排序,如果原始坏块则跳过,以此形成原始block index管理表;
S03、存储原始block index管理表到专用区域。
进一步的,block index管理表维护管理在进行维护管理时,包括以下步骤:
S11、从block index管理表中释放目前固件区域block资源;
S12、根据算法要求,从闲置block资源中选取特定block填充到block index管理表中软件固件对应区域;
S13、存储block index管理表到专用区域;
S14、进行固件升级动作。
进一步的,block index管理表维护管理模块依赖原始block index管理表进行,包括以下动作:处理申请、处理释放。
进一步的,配置文件、数据文件区域在恢复配置或者主动开启整理功能时执行以下步骤:
S21、从block index管理表中释放对应区域block资源;
S22、根据算法要求,从闲置block资源中选取特定block填充到block index管理表中对应区域;
S23、存储block index管理表到专用区域;
S24、内容搬运或者写入。
第三方面本方案公开了一种电子设备,包括处理器以及与处理器通信连接,且用于存储所述处理器可执行指令的存储器,所述处理器用于执行第一方面所述的一种动态的、离散的、碎片化的嵌入式系统nand flash使用方法。
第四方面本方案公开了一种服务器,包括至少一个处理器,以及与所述处理器通信连接的存储器,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,以使所述至少一个处理器执行第一方面所述的一种动态的、离散的、碎片化的嵌入式系统nand flash使用方法。
第五方面本方案公开了一种计算机可读取存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的一种动态的、离散的、碎片化的嵌入式系统nand flash使用方法。
相对于现有技术,本发明所述的一种动态的、离散的、碎片化的嵌入式系统nandflash使用方法具有以下优势:
本发明所述的一种动态的、离散的、碎片化的嵌入式系统nand flash使用方法,在nand flash的物理层面新增了一个逻辑层面,对nand flash每一个块进行分配管理。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1a、图1b、图1c为本发明实施例所述的一种动态的、离散的、碎片化的嵌入式系统示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以通过具体情况理解上述术语在本发明中的具体含义。
下面将参考附图并结合实施例来详细说明本发明。
本发明在nand flash的物理层面新增了一个逻辑层面,对nand flash每一个块进行分配管理。
按照常规使用方式,从物理层面分区,各分区都是固定按顺序分区如图1a,分配之后就无法变动, bootloader和固件很少写入,而数据和配置表示datafs、config,则频繁写入,空闲区域永远闲置。
本发明改变了上述固定分配的状况,增加逻辑层面,逻辑层面复制管控nandflash的所有块,实现动态变化,如图1可以从a根据对应的坏块管理功能或者写均衡算法进行演变,可以从图1a演变到图1b、图1c等。
Nand Flash以block为最小擦写单位,本发明根据此特性,制定出离散的、碎片化组合的使用方法。
主要行为为:
bootloader阶段负责初始化nandflash中的block index管理表,并进行维护
kernel阶段同步维护block index管理表。
block index管理表本发明使用nandflash方法的关键。
其主要表现方法为:
初始化阶段:
初始化时依据nandflash编程器烧录规则,对nandflash中各block进行顺序排序,其形式为0,1, 2,……n
管理维护阶段:
此阶段时,block index管理表根据软件设计及分配算法,进行碎片化排序,其形式可能为0,1,2, 7,3,6,4,n,5,……随机化顺序。
本发明的主要优点:
灵活性
nandflash大部分区域block是随机组合,需要多少申请多少。
不容易造成浪费
软件分区时如果不强制要求预先分配空间,则可以进行需要多少分配多少的原则动态分配,类似于内存分配。
可以有效的进行写均衡处理
针对频繁写入的配置文件、数据文件区域,可以根据特点的算法进行均衡管理,重新分配其他block 给此类区域。
上述block index管理表完善的前提下,为确保正确的nand flash读写,只需要在nand flash驱动中根据block index管理表进行一次物理地址-逻辑地址的寻址即可。
首先,先采用以下形式中的来描述软件专利的技术方案:
本发明涉及三个模块:block index管理表初始化、block index管理表维护管理、物理地址-逻辑地址的寻址;
block index管理表初始化:
过程:
S01:创建block index管理表空表。
S02:根据nand flash属性填充block index管理表,对block进行排序,此次一般为顺序排序,如果原始坏块则跳过。以此形成原始block index管理表
S03:存储此原始block index管理表到专用区域。
block index管理表维护管理:
依赖原始block index管理表进行,主要动作有:处理申请、处理释放。
对于软件固件只有在升级固件时才会进行此类操作:
S11:从block index管理表中释放目前固件区域block资源
S12:根据算法要求,从闲置block资源中选取特定block填充到block index管理表中软件固件对应区域。
S13:存储block index管理表到专用区域。
S14:进行固件升级动作
对于配置文件、数据文件区域一般在恢复配置或者主动开启整理功能时进行:
S21:从block index管理表中释放对应区域block资源
S22:根据算法要求,从闲置block资源中选取特定block填充到block index管理表中对应区域。
S23:存储block index管理表到专用区域。
S24:内容搬运或者写入。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种动态的、离散的、碎片化的嵌入式系统nand flash使用方法,其特征在于:在nand flash的物理层面新增逻辑层面,所述逻辑层面用于复制管控nand flash的所有块,用于对nand flash中的每一个块进行分配管理。
2.基于权利要求1所述的一种动态的、离散的、碎片化的嵌入式系统nand flash使用方法的系统,其特征在于:包括block index管理表初始化模块、block index管理表维护管理模块、物理地址-逻辑地址的寻址模块。
3.根据权利要求2所述的一种动态的、离散的、碎片化的嵌入式系统,其特征在于,block index管理表初始化模块在进行初始化操作时,包括以下步骤:
S01、创建block index管理表空表;
S02、根据nand flash属性填充block index管理表,对block进行排序,如果原始坏块则跳过,以此形成原始block index管理表;
S03、存储原始block index管理表到专用区域。
4.根据权利要求2所述的一种动态的、离散的、碎片化的嵌入式系统,其特征在于:block index管理表维护管理在进行维护管理时,包括以下步骤:
S11、从block index管理表中释放目前固件区域block资源;
S12、根据算法要求,从闲置block资源中选取特定block填充到blockindex管理表中软件固件对应区域;
S13、存储block index管理表到专用区域;
S14、进行固件升级动作。
5.根据权利要求4所述的一种动态的、离散的、碎片化的嵌入式系统,其特征在于:block index管理表维护管理模块依赖原始block index管理表进行,包括以下动作:处理申请、处理释放。
6.根据权利要求2所述的一种动态的、离散的、碎片化的嵌入式系统,其特征在于:配置文件、数据文件区域在恢复配置或者主动开启整理功能时执行以下步骤:
S21、从block index管理表中释放对应区域block资源;
S22、根据算法要求,从闲置block资源中选取特定block填充到block index管理表中对应区域;
S23、存储block index管理表到专用区域;
S24、内容搬运或者写入。
7.一种电子设备,包括处理器以及与处理器通信连接,且用于存储所述处理器可执行指令的存储器,其特征在于:所述处理器用于执行上述权利要求1所述的一种动态的、离散的、碎片化的嵌入式系统nand flash使用方法。
8.一种服务器,其特征在于:包括至少一个处理器,以及与所述处理器通信连接的存储器,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,以使所述至少一个处理器执行如权利要求1所述的一种动态的、离散的、碎片化的嵌入式系统nand flash使用方法。
9.一种计算机可读取存储介质,存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1所述的一种动态的、离散的、碎片化的嵌入式系统nand flash使用方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210227399.1A CN114911716A (zh) | 2022-03-08 | 2022-03-08 | 一种动态的、离散的、碎片化的嵌入式系统nand flash使用方法 |
PCT/CN2023/076037 WO2023169161A1 (zh) | 2022-03-08 | 2023-02-15 | 一种动态的、离散的、碎片化的嵌入式系统nand flash使用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210227399.1A CN114911716A (zh) | 2022-03-08 | 2022-03-08 | 一种动态的、离散的、碎片化的嵌入式系统nand flash使用方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114911716A true CN114911716A (zh) | 2022-08-16 |
Family
ID=82763422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210227399.1A Pending CN114911716A (zh) | 2022-03-08 | 2022-03-08 | 一种动态的、离散的、碎片化的嵌入式系统nand flash使用方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114911716A (zh) |
WO (1) | WO2023169161A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023169161A1 (zh) * | 2022-03-08 | 2023-09-14 | 太仓市同维电子有限公司 | 一种动态的、离散的、碎片化的嵌入式系统nand flash使用方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107992430A (zh) * | 2017-12-20 | 2018-05-04 | 北京京存技术有限公司 | 闪存芯片的管理方法、装置及计算机可读存储介质 |
CN108345430B (zh) * | 2017-12-27 | 2021-08-10 | 北京兆易创新科技股份有限公司 | 一种Nand flash元件及其运行控制方法和装置 |
US11436023B2 (en) * | 2018-05-31 | 2022-09-06 | Pure Storage, Inc. | Mechanism for updating host file system and flash translation layer based on underlying NAND technology |
CN114911716A (zh) * | 2022-03-08 | 2022-08-16 | 太仓市同维电子有限公司 | 一种动态的、离散的、碎片化的嵌入式系统nand flash使用方法 |
-
2022
- 2022-03-08 CN CN202210227399.1A patent/CN114911716A/zh active Pending
-
2023
- 2023-02-15 WO PCT/CN2023/076037 patent/WO2023169161A1/zh unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023169161A1 (zh) * | 2022-03-08 | 2023-09-14 | 太仓市同维电子有限公司 | 一种动态的、离散的、碎片化的嵌入式系统nand flash使用方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2023169161A1 (zh) | 2023-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114115747B (zh) | 存储器系统及控制方法 | |
US10761977B2 (en) | Memory system and non-transitory computer readable recording medium | |
CN109901790B (zh) | 存储器系统及控制方法 | |
US8954649B2 (en) | Garbage collection in storage devices based on flash memories | |
US7620961B2 (en) | Open-architecture file system | |
US20120303927A1 (en) | Memory allocation using power-of-two block sizes | |
US20100077135A1 (en) | Memory wear leveling method, system and device | |
CN104285214A (zh) | 混合储存集合块跟踪 | |
CN106844583B (zh) | 一种在NOR Flash上建立FAT文件系统的优化方法 | |
JP3119214B2 (ja) | 記憶装置、データ処理システム並びにデータの書き込み及び読み出し方法 | |
CN103678144A (zh) | 数据储存装置与快闪存储器控制方法 | |
US20060250720A1 (en) | Portable data storage device and method of dynamic memory management therefor | |
CN101477469A (zh) | 一种启动代码的可靠性读取方法、写入方法和装置 | |
CN109753361A (zh) | 一种内存管理方法、电子设备及存储装置 | |
CN114911716A (zh) | 一种动态的、离散的、碎片化的嵌入式系统nand flash使用方法 | |
CN108845822B (zh) | 实现软件不中断业务升级的内存管理方法及系统 | |
US20070005929A1 (en) | Method, system, and article of manufacture for sector mapping in a flash device | |
CN108008969B (zh) | 一种软件版本升级方法、装置及网络设备 | |
CN104461705A (zh) | 一种业务访问的方法及存储控制器、集群存储系统 | |
CN111124294B (zh) | 一种扇区映射信息的管理方法及装置、存储介质和设备 | |
KR20080033649A (ko) | 머지 빈도를 줄일 수 있는 플래쉬 메모리 시스템 및 그관리 방법 | |
CN112860595B (zh) | Pci设备或pcie设备、数据存取方法及相关组件 | |
US11687448B2 (en) | Memory system and non-transitory computer readable recording medium | |
CN102541743B (zh) | 用于存储管理的方法、设备和系统 | |
CN114327246B (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 |