一种提高ZNS固态硬盘NORFLASH写入性能的方法技术

技术编号:37618248 阅读:11 留言:0更新日期:2023-05-18 12:09
本发明专利技术涉及一种提高ZNS固态硬盘NOR FLASH写入性能的方法,以及使用该方法的电子设备和装置,所述方法包括:通过设置缓冲区,并逐步写满,同时擦除待写入区域,记录每次写入时的起始位置,以便在写入下一个log时,对NOR FLASH中下一区块进行同步擦除操作;采用该方法可以降低在SPI NOR FLASH操作时CPU的无效等待时间,从而降低反复大量写NOR FLASH时对系统性能的影响,提高NOR FLASH写入性能,同时进一步提高ZNS固态硬盘的使用寿命。进一步提高ZNS固态硬盘的使用寿命。进一步提高ZNS固态硬盘的使用寿命。

【技术实现步骤摘要】
一种提高ZNS固态硬盘NOR FLASH写入性能的方法


[0001]本专利技术涉及计算机存储领域,尤其涉及一种提高ZNS固态硬盘NOR FLASH写入性能的方法。

技术介绍

[0002]ZNS SSD即分区命名空间固态硬盘,ZNS是从OC(Open Channel,开放通道)SSD基础上发展而来的,实现了把FTL(Flash Translation Layer,闪存转换层)从SSD内部迁移到上层的Host端,把SSD内部开放给了Host端,这样用户可以根据自己需要,比较灵活的拥有自己特定的FTL。
[0003]ZNS SSD内部可以根据不同的应用场景将不同的zone与不同的物理位置进行映射;Config A是一种最有利于顺序读写的配置,这种方法可以保证读写过程Die的并发性最好,一般来说标准SSD都会按照这种方式写入。Config B更有利于Latency敏感的场景,每个用户控制自己的Die,从而减少相互之间的影响。
[0004]ZRWA允许在SSD缓存中对数据进行随机写入和就地覆盖。与Zone Append命令相比,这种方法在SSD上需要更多的资源。ZNS SSD要求所有zone只能顺序写入(或者append等),不能出现复写操作,重新使用前需要对zone执行zone reset命令等,这样应用及驱动都需要更多的配合ZNS SSD,不过当前各大存储系统及开源工具都已经或者计划完成ZNSSSD的适配与支持,标准化的接口实现了强大的软件和硬件生态系统。
[0005]相比普通SSD产品,ZNS SSD主要有五大优势:消除了SSD的GC(GarbageCollection,垃圾回收)进程的WAF(Write Amplification,写放大)、消除了传统的OP(Overprovisioning,预留空间)空间、由于较小的映射表,DRAM更少、更高的吞吐量和更低的延迟、大幅提升SSD盘寿命。
[0006]ZNS固态硬盘中的SPI NOR FLASH,对于已写入数据的sector必须要擦除才能再写入数据,而SPI NOR FLASH三大操作“读、写、擦除”中,擦除是最耗时的动作,SPI NOR FLASH在操作时,下一步的NOR FLASH操作必须在硬件上等上个NOR FLASH动作完成.当系统在做IO等消耗CPU的操作时,保存log时每次需要等擦除完NOR FLASH再写入log到NOR FLASH,擦除过程由SPI硬件完成,擦除过程中CPU处于无效等待状态,该无效等待时间对系统性能影响比较大。
[0007]ZNS固态硬盘中的SPI NOR FLASH,对于写过数据的sector必须要擦除才能再写入数据,而SPI NOR FLASH三大操作“读、写、擦除”中,擦除是最耗时的动作,SPI NOR FLASH在操作时,下一步的NOR FLASH操作必须在硬件上等上个NOR FLASH操作完成。而当系统在做IO等占用CPU操作时,保存log时每次需要等擦除完NOR FLASH再写入log到NOR FLASH,擦除过程由SPI硬件完成,擦除过程中CPU处于无效等待状态,该无效等待时间对系统性能影响比较大,其中某些擦除sector耗时较多,如擦除sector[N+1]需要45ms,则CPU必须要等45ms擦除完后,才能把P1的数据写入NOR FLASH,同理后续的步骤也一样,因此现有技术中ZNS固态硬盘在写NOR FLASH时降低了系统CPU的有效利用率,影响了系统总体性能。

技术实现思路

[0008]为解决上述技术问题,本专利技术实施例提供了一种提高ZNS固态硬盘NOR FLASH写入性能的方法。
[0009]本专利技术具体涉及一种通过设置缓冲区,并逐步写满,同时擦除待写入区域来降低写NOR FLASH时对系统性能影响的操作方法。具体方法包括:
[0010]步骤1设置一个合适大小的内存缓冲区(以下统一写作logbuf,其大小为LOG_SIZE),运行时log逐个记录并写入到logbuf中;
[0011]步骤2当logbuf中数据写满,即数据大小达到与LOG_SIZE相同时,将logbuf写入到NOR FLASH中;
[0012]步骤3在将上一个logbuf写入NOR FLASH之后,即将开始写入下一个logbuf的同时,开始擦除下一次即将保存的LOG_SIZE区域;
[0013]步骤4重复步骤2

3,直到所要写入的大量数据均写入到NOR FLASH中为止。
[0014]进一步的所述步骤1中包含以下步骤:
[0015]步骤1.1在NOR FLASH Flash中选取一个空物理扇区作为存储缓冲区;
[0016]步骤1.2将log数据写入其对应的物理地址。
[0017]进一步的所述步骤2的具体步骤如下:
[0018]步骤2.1记录logbuf中当前数据长度;
[0019]步骤2.2判断步骤2.1中当前数据长度与LOG_SIZE的大小;
[0020]步骤2.3如果当前数据长度与LOG_SIZE大小相等,则表示已完成目标数据的写入,如果小于LOG_SIZE大小,则继续重复步骤2.1至步骤2.2直至logbuf写满数据;
[0021]步骤2.4将步骤2.3的logbuf中的数据写入到待写入的NOR FLASH扇区中。
[0022]进一步的步骤3中的擦除具体步骤如下:
[0023]步骤3.1记录上次写操作结束时的位置sector[N],计算得到下次所要擦除操作的起始位置sector[N+i],其中i为LOG_SIZE的大小;
[0024]步骤3.2在logbuf写入下一组log数据的同时,擦除sector[N+i]至sector[N+2i]扇区的数据。
[0025]可选的,所述NOR FLASH存储器的每个物理块再被划分成:一个块头部(Block Header),一系列的物理页,以及根据物理块大小的不同,每个物理块尾部可能有一个剩余区,其大小小于一个物理页的大小;每个物理页又划分为备用区和数据区两部分,数据区用于存储文件数据,备用区用于存储管理物理页的管理数据。
[0026]可选的,所述备用区的MDR表采用带CRC校验的双备份结构,MDR表中每个用户文件信息具有独立CRC校验,如果其中一个MDR表全部或部分数据损坏,能够通过另外MDR表修复。
[0027]可选的,本专利技术还提供一种电子设备,包括:
[0028]一个或多个处理器;
[0029]存储器,用于存储一个或多个程序;
[0030]其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如步骤1

4所述的方法。
[0031]可选的,本专利技术还提供一种计算机可读存储介质,其上存储有可执行指令,所述可
执行指令被处理器执行时使处理器执行如步骤1

4所述的方法。
[0032]本专利技术所提供的一种降低ZNS固本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种提高ZNS固态硬盘NOR FLASH写入性能的方法,具体方法包括以下步骤:步骤1、设置一个合适大小的内存缓冲区logbuf[LOG_SIZE],运行时log逐个记录并写入到logbuf中;步骤2、当logbuf中数据写满,即数据大小达到与LOG_SIZE相同时,将logbuf写入到NOR FLASH中;步骤3、在将上一个logbuf写入NOR FLASH之后,即将开始写入下一个logbuf的同时,开始擦除下一次即将保存的LOG_SIZE区域;步骤4、重复步骤2

3,直到所要写入的大量数据均写入到NOR FLASH中为止;其中所述步骤2的具体步骤如下:步骤2.1记录logbuf中当前数据长度;步骤2.2判断步骤2.1中当前数据长度与LOG_SIZE的大小;步骤2.3如果当前数据长度与LOG_SIZE大小相等,则表示已完成目标数据的写入,如果小于LOG_SIZE大小,则继续重复步骤2.1至步骤2.2直至logbuf写满数据;步骤2.4将步骤2.3的logbuf中的数据写入到待写入的NOR FLASH扇区中;其中步骤3中的擦除具体步骤如下:步骤3.1记录上次写操作结束时的位置sector[N],计算得到下次所要擦除操作的起始位置sector[N+i],其中i为LOG_SIZE的大小;步骤3.2在lo...

【专利技术属性】
技术研发人员:钦传雄刘兴斌
申请(专利权)人:武汉麓谷科技有限公司
类型:发明
国别省市:

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

1