一种高速自平衡存储控制方法及存储介质技术

技术编号:37331085 阅读:16 留言:0更新日期:2023-04-21 23:08
本发明专利技术公开一种高速自平衡存储控制方法及存储介质,本发明专利技术抽象出物理控制层,用于管理和适配物理存储空间,该物理控制层主要包含一组控制关键字。本发明专利技术对物理存储空间采用循环写入的方式,天然具有写均衡特点,从而避免对单一存储空间反复擦写导致坏块。本发明专利技术建立逻辑地址和物理地址的哈希映射,读写时间复杂度为O(1)。本发明专利技术在操作端建立了逻辑页缓存,对逻辑写入进行了进一步抽象,写入操作可以采用任意长度,从而满足“短写长存”的特点。本发明专利技术的读取可以采用两种方式,一种是以逻辑地址为基地址,读取任意长度数据;另一种是以数据内容为关键字,采用算法搜索的方式读取特定字节数据。节数据。节数据。

【技术实现步骤摘要】
一种高速自平衡存储控制方法及存储介质


[0001]本专利技术涉及一种高速自平衡存储控制方法及存储介质,属于信息


技术介绍

[0002]随着闪存技术的发展,闪存介质的存储空间越来越大,成本也越来越低。Nandflash是其中较为典型的一种flash存储器,其特征是以块(block)

页(page)

字节(byte)作为分区结构,并且一般以页(page)作为读写单元,以块(block)作为擦除单元。块存储结构的这种特性,在使用时存在非对称的读写与擦除操作,增加了存储系统管理的难度,为使用此种介质设置了物理上的限制条件。
[0003]为了进行标准化管理一般需要采用文件系统对存储介质进行格式化,并使用文件系统的抽象接口进行读写管理。在小型嵌入式设备中,主控的MCU结构比较简单,逻辑功能比较单一,缺少大型文件系统的运行环境,导致在嵌入式设备中很难管理此种块存储设备。

技术实现思路

[0004]本专利技术所要解决的技术问题是克服现有技术的缺陷,提供一种高速自平衡存储控制方法及存储介质。
[0005]为达到上述目的,本专利技术提供一种高速自平衡存储控制方法,包括:步骤1,初始化块存储设备的物理接口;步骤2,利用存储设备的物理接口,读取硬件信息;步骤3,根据硬件信息计算该硬件的物理存储结构,并初始化物理控制关键字的值;步骤4,初始化cycle关键字为预先设定的初始值;步骤5,计算可操作的逻辑单元数量logic_unit_num;步骤6,将可操作的逻辑单元数量logic_unit_num赋值给logic_unit_num关键字;步骤7,从逻辑地址存储区域中读取上次存储的next_write_address,若读取next_write_address失败,则设置next_write_address为默认起始地址,并进入步骤8,若读取next_write_address成功则直接进入步骤8;步骤8,在内存中申请缓存页存储空间,该缓存页存储空间的大小为logic_unit_capacity;若申请缓存页存储空间失败,则重复执行本步骤。
[0006]优先地,物理控制关键字包括物理设备的存储块数量block_nums、物理设备单个存储块的页数量page_nums、物理设备最小页的单页字节数page_bytes、最小可操作的逻辑单元块logic_unit_capacity、是否自动循环写入cycle、逻辑单元数量 logic_unit_num和下一个可写入的逻辑单元地址next_write_address。
[0007]优先地,步骤5,计算可操作的逻辑单元数量logic_unit_num:logic_unit_num =(block_nums+1)*( page_nums+1)*((page_bytes+1)/(logic_unit_capacity+
1))

1。
[0008]优先地,步骤9,若申请缓存页存储空间成功,则将数据写入缓存页,进入步骤10;步骤10,判断缓存页是否已经写满数据,若是则进入步骤11,否则进入步骤9;步骤11,获取逻辑地址next_write_address中的变量值,令logic_unit_capacity=next_write_address,根据logic_unit_num =(block_nums+1)*( page_nums+1)*((page_bytes+1)/(logic_unit_capacity+1))

1,计算获得block_nums、page_nums和page_bytes。
[0009]优先地,步骤12,若物理存储地址为块边界或页边界,则执行擦除操作并进入步骤13,否则直接进入步骤13;步骤13,将next_write_address中的变量值进行累加,并更新给next_write_address中的变量值。
[0010]优先地,步骤14,判断next_write_address中的变量值是否成功写入逻辑地址存储区域,若是则进入步骤15,否则进入步骤12;步骤15,存储next_write_address的变量值到逻辑地址存储区域,进入步骤10。
[0011]优先地,步骤91,在进入步骤9之前,先执行以下步骤:判断待存储区域的缓存地址是否为空,若是则进入步骤9,若否则获取next_write_address中的变量值,根据映射公式logic_unit_num =(block_nums+1)*( page_nums+1)*((page_bytes+1)/(logic_unit_capacity+1))

1,令logic_unit_capacity=next_write_address,计算block_nums、page_nums和page_bytes。
[0012]步骤92,将指定数量的数据读取到逻辑地址存储区域。
[0013]优先地,数据包括字节形式的图片数据和文字数据。
[0014]一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一项所述方法的步骤。
[0015]一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一项所述方法的步骤。
[0016]本专利技术所达到的有益效果:第一方面,本专利技术主要用于解决基于块存储设备的读写不一致问题,抽象出物理控制层,用于管理和适配物理存储空间,该物理控制层主要包含一组控制关键字,用于管理和适配物理存储空间。
[0017]第二方面,本专利技术对物理存储空间采用按顺序循环写入的方式,天然具有写均衡特点,从而避免对单一存储空间反复擦写导致坏块。
[0018]第三方面,本专利技术建立逻辑地址和物理地址的哈希映射,使得读写时间复杂度为O(1)。
[0019]第四方面,本专利技术在操作端建立了逻辑页缓存,对逻辑写入进行了进一步抽象,写入操作可以采用任意长度,从而满足“短写长存”的特点,擦写过程中建立逻辑页缓存机制,可以满足任意长度数据写入。
[0020]第五方面,本专利技术的读取可以采用两种方式,一种是以逻辑地址为基地址,读取任意长度数据;另一种是以数据内容为关键字,采用算法搜索的方式读取特定字节数据。
附图说明
[0021]图1是BMS系统数据本地化存储的结构图;图2是Nandflash块存储硬件的结构图;图3是本专利技术的框架图;图4是抽象控制类及物理存储结构图;图5是本专利技术的逻辑流程图;图6是本专利技术缓存页写入逻辑示意图。
具体实施方式
[0022]以下实施例仅用于更加清楚地说明本专利技术的技术方案,而不能以此来限制本专利技术的保护范围。
[0023]本专利技术通过以下技术方案来实现:第一方面,本专利技术抽象出物理控制层,用于管理和适配物理存储空间,该物理控制层主要包含一组控制关键字。
[0024]第二方面,本专利技术对物理存储空间采用循环写入的方本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种高速自平衡存储控制方法,其特征在于,包括:步骤1,初始化块存储设备的物理接口;步骤2,利用存储设备的物理接口,读取硬件信息;步骤3,根据硬件信息计算该硬件的物理存储结构,并初始化物理控制关键字的值;步骤4,初始化cycle关键字为预先设定的初始值;步骤5,计算可操作的逻辑单元数量logic_unit_num;步骤6,将可操作的逻辑单元数量logic_unit_num赋值给logic_unit_num关键字;步骤7,从逻辑地址存储区域中读取上次存储的next_write_address,若读取next_write_address失败,则设置next_write_address为默认起始地址,并进入步骤8,若读取next_write_address成功则直接进入步骤8;步骤8,在内存中申请缓存页存储空间,该缓存页存储空间的大小为logic_unit_capacity;若申请缓存页存储空间失败,则重复执行本步骤。2.根据权利要求1所述的一种高速自平衡存储控制方法,其特征在于,物理控制关键字包括物理设备的存储块数量block_nums、物理设备单个存储块的页数量page_nums、物理设备最小页的单页字节数page_bytes、最小可操作的逻辑单元块logic_unit_capacity、是否自动循环写入cycle、逻辑单元数量 logic_unit_num和下一个可写入的逻辑单元地址next_write_address。3.根据权利要求2所述的一种高速自平衡存储控制方法,其特征在于,步骤5,计算可操作的逻辑单元数量logic_unit_num:logic_unit_num =(block_nums+1)*( page_nums+1)*((page_bytes+1)/(logic_unit_capacity+1))

1。4.根据权利要求3所述的一种高速自平衡存储控制方法,其特征在于,步骤9,若申请缓存页存储空间成功,则将数据写入缓存页,进入步骤10;步骤10,判断缓存页是否已经写满数据,若是则进入步骤11,否则进入步骤9;步骤11,获取逻辑地址next_write_address中的变量值,令logic_unit_capacity=next_write_addres...

【专利技术属性】
技术研发人员:刘雪枫李亮田绪超孙清心
申请(专利权)人:江苏汇智高端工程机械创新中心有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1