自动气象站NAND flash扩展存储快速读写算法设计

收稿日期:2020⁃03⁃30;修回日期:2020⁃06⁃08㊀㊀基金项目:广东省气象科技计划资助项目(2014DTZX13)
作者简介:周钦强(1979⁃),男,山东沂源人,高级工程师,硕士,主要研究方向为气象探测技术研发(41409858@qq.com);刘艳中(1981⁃),男,河北献县人,高级工程师,硕士,主要研究方向为气象探测技术研发;敖振浪(1962⁃),男,广东阳江人,正研高工,学士,主要研究方向为气象探测技术与信息处理.
自动气象站NANDflash扩展存储快速读写算法设计∗
周钦强,刘艳中,敖振浪
(广东省气象探测数据中心,广州510080)
摘㊀要:自动气象站数据机内大容量存储与高速实时准确读写是气象观测数据传输应用的最前端关键基础环节㊂针
对基于STM32FSMC管理外部可扩展存储NANDflash的机内硬件设计,分析K9LBG08U0M闪存片内物理结构,提
出以自动气象站观测数据的时间偏移量为唯一主键,建立观测数据与闪存物理地址的一一映射关系,实现观测数据与对应机内存储物理地址的快速映射寻址㊂在此基础上结合NANDflash存储特性,生成自动气象站观测数据快速读写算法㊂在全省约3000个自动气象站组网观测业务时应用表明,其满足了气象数据从观测到预报一分钟到桌面的高质量业务发展需求㊂
关键词:自动气象站;闪存;寻址;读写;设计
0㊀引言
自动气象站长期在野外运行,其观测数据连续性难免会受到通信异常或扰动而中断,因此自动气象站在硬件构架中均含有机内存储设计,使得采集器能够存储一定历史时段内的观测数据,供外部补调以满足观测数据性连续性业务要求㊂新型自动气象(气候)站功能规格书要求主采集器存储1小时的采样瞬时值㊁7天的瞬时气象(分钟)值㊁1月的正点气象要素值,以及相应的导出量和统计量等;数据存储可以使用循环式存储器结构,即允许最新的数据覆盖旧数据[1]㊂随着气象服务的精细化和短时临近业务发展需求,尤其是广东省全国率先实现气象观测数据1分钟到预报员桌面业务要求,对于自动气象站机内存储大容量㊁高速实时性与准确性等整机性能提出了更高的软硬件设计要求,快速读写㊁缺测自动补调输出成为全省组网自动气象站数据从观测到预报应用1分钟内完成的核心关键基础技术环节,尤其是观测数据受到通信异常或扰动而中断时,第一时间快速准确补调缺失资料成为气象预报预警业务的重要数据支撑㊂
闪存(flashmemory)为非易失性存储设备(non⁃volatilememorydevice),文献[2,3]对flash存储特点作了详尽的阐述,得益于flash存储芯片所具有的非易失㊁低功耗㊁存储密度高等优点,基于NANDflash芯片的存储系统近年来在嵌入式环境中得到了广泛应用[4 7]㊂基于广东省DZZ1⁃2N新型自动气象站STM32NANDflash机内扩展三星K9LBG08U0M闪存芯片的硬件设计,对自动气象站配置参数㊁1个月的全要素采样数据㊁1年的分钟数据和正点气象要素值进行存储㊂本文以分钟数据为例提出自动气象站全要素分钟数据机内扩展存储的快速读写算法,在满足新型自动气象(气候)站功能规格书要求的基础上改进读写算法,优化存储性能,经全省3000个自动气象站组网业务的应用,证明地面气象观测数据快速读写算法的快速实时性与准确性㊂
1㊀NANDflash简介
NANDflash具有快速访问㊁低功耗㊁抗震性㊁尺寸小㊁重量轻等特性,并且稳定性良好,即使在系统电源关闭的情况下仍可保存数据㊂随着技术的发展,其价格降低且容量增大,这些使得NANDflash逐渐成为嵌入式系统的一个独立部件,系统存储的工业标准[8]㊂
1.1㊀K9LBG08U0M片内结构
NAND型闪存由擦除块(block)组成,每个块包含一定数量的页(page)㊂由图1[9
]可见K9LBG08U0M芯片共包含8192块,即NAND_DEV_SIZE=0x2000;每块包含128页,即NAND_BLOCK_SIZE=0x0080;每页可编程字节4KB,即NAND_PAGE_SIZE=0x1000㊂K9LBG08U0M芯片存储单元结构如图2所示,内部按照以下行列进行排列㊂
行:128页ˑ8192块=1048576行=220,地址范围0x00 0xFFFFF;
列:(4KB+128Byte)=(212+128)Byte,地址范围0x00 0x1080,其中128列的备用空间从4096列开始,一直到4223列㊂
1.2㊀NADNflash读写特性
NANDflash物理层驱动主要涉及到闪存芯片初始化(ID以及相关属性信息的读取)㊁擦除和数据读写,其中写操作叫做编程(program),主要读写特性如下[2,3]:
a)读和写通常以页为单位执行,而擦除操作则以块为单位来执行㊂
b)NAND型芯片不支持本地更新操作,无法直接对数据页进行覆盖写,必须先擦除该数据页所在的块,亦即在对某个页进行写操作前,必须先对该页所在块进行擦除操作㊂
c)不允许随机写,即在擦除块中的页只能从低地址向高地址顺序进行㊂
2㊀算法设计
关于NANDflash快速读写及性能提升的相关研究多基于大容量文件存储系统和数据库[10 14],而对于NANDflash存储芯片安全高效读写管理的研究相对较少㊂例如文献[15]分析并实现了一种利用多片编程来提高Nandflash擦/写性能的方案;文献[16]设计一种由高密度NANDflash存储阵列㊁大规模FPGA和高性能DSP构成的高速存储模块,通过FPGA与DSP对数据存储过程的联合控制,实现海量数据的超高速存储㊂本章利用自动气象站观测原始数据时间属性的唯一性,结合NANDflash物理结构及存储特性,提出数据指针快速寻址及读写算法,进而提升NANDflash芯片底层驱动快速读写性能㊂
电动抽气机2.1㊀㊀数据指针寻址算法
u型池自动气象站具有野外无人值守全天候实时自动观测的特点,各气象要素传感器实时自动采集数据,经采样算法优化后计算采样数据㊁分钟数据以及相应的导出量和统计量㊂如何准确快速获取每份数据的存储物理地址成为自动气象站提升原始数据读写性能的关键前提,亦即原始数据指针快速寻址设计问题㊂不管是采样数据还是分钟数据,它们唯一身份辨识标签即为日期时间,以此为每一份原始数据的识别主键,并与闪存片内存储物理地址建立关联规则,便可快速获取任意时间气象观测数据的对应存储物理地址,即为自动气象站原始数据指针快速寻址算法的核心基础㊂
隔离桩
闪存片内存储物理地址包含块基偏移地址㊁块内偏移地址和页内偏移地址,以结构体定义为
㊃991㊃㊀第37卷增刊周钦强,等:自动气象站NANDflash扩展存储快速读写算法设计
㊀㊀㊀
typedefstruct
㊀㊀uint32_tblock;㊀//块基偏移
㊀㊀uint32_tpage;㊀//块内页偏移
㊀㊀uint32_tbyte;㊀//页内偏移
}NAND_ADDRESSTypeDef;
自动气象站一旦配置业务运行,其原始输出的分钟数据长度msgLen即为定常,根据K9LBG08U0M块内结构,则可获取每一分
钟数据在每块内存储占用页数pages:糖浆罐
pages=((msgLen%NAND_PAGE_SIZE)>0)?
(msgLen/NAND_PAGE_SIZE+1)ʒ(msgLen/NAND_PAGE_SIZE)(1)其中NAND_PAGE_SIZE见2.1节所述㊂
将分钟数据的日期时间(MMddhhmm)统一计算成分钟(月内天数以31天计),则年内每月每天每一分钟数据对应的的唯一时间偏移量为dt_offset:
dt_offset=(MM-1)ˑ31ˑ24ˑ60+(dd-1)ˑ24ˑ60+(hh-1)ˑ60+mm
(2)根据时间偏移量dt_offset,建立与闪存存储数据指针寻址规则㊂定义NAND_ADDRESSTypeDefaddress为闪存内分钟数据指针,分钟数据在闪存片内存储的起始块地址为MSG_STARTBLK,则
address.byte=0x00
address.page=dt_offset%NAND_BLOCK_SIZE
address.block=dt_offsetˑpages/NAND_BLOCK_SIZE
+MSG_STARTBLK(3)将式(1)(2)代入式(3)即可计算address,由此,建立起分钟数据时间与NANDflash物理地址之间的映射关系,即可计算每一份分钟数据的数据指针,程序流程如图3所示㊂基于此寻址算法可以直接获取全年任意一分钟自动气象站数据在闪存片内的数据指针,避免采用查询㊁遍历等耗时低效方法,从而大大提升自动气象站原始数据的扩展片外存储读写效率㊂
由NANDflash读写特性可知,闪存的读操作和编程操作以页为单位,根据上述数据指针寻址算法一旦确定每一份数据存储物理地址address,自动气象站连续原始数据便可按照时间顺序在闪存片内逐pages顺序存储,依此类推,直到块内NAND_PAGE_SIZE页编程操作结束,块空间溢出后跳转到下一块,逐块顺序编程,地址指针address自动每页每块顺序跳转寻址,数据指针片内寻址增益算法流程如图4所示㊂
2.2㊀读写协议栈
基于前述数据寻址算法,在设计自动气象站原始数据机内扩展存储读写算法时,还需检验NANDflash数据写入读出的一致性,对每一份原始观测数据添加读写协议栈,包括日期时间㊁长度㊁数据校验和㊁存储物理地址等,以分钟数据协议栈为例,如图5所示㊂其中:yyMMddhhmm为分钟数据日期时间,年月日时分,占5Byte;lenthLlenthH为分钟数据长度,占2
Byte,低位在前,高位在后;sumL0sumL1sumH0sumH1为分钟数据校验和,为观测数据字节累加值,占4Byte,低位在前,高位在后;blkLblkHpageLpageHbyteLbyteH为分钟数据在闪存片内的存储物理地址,其中blkLblkH为块地址,pageLpageH为块内页地址,byteLbyteH为页内地址,分别占用2Byte,低位在前,高位在后;bak0bak1bak2为备用索引地址,占用3Byte,低位在前,高位在后㊂
2.3㊀数据读写算法
基于2.1节所述自动气象站分钟数据存储寻址算法,其分钟数据存储读写算法尤其是写操作还必须考虑2.2节所述NANDflash读写特性,即在对某个页进行写操作前,必须先对该页所在块进行擦除操作㊂自动气象站分钟数据顺序写入闪存过程中跨块时需要首先对下一块进行擦除操作,其中一个关键核心问题为分钟数据是否存在临界存储情形,即某份分钟数据因数据指针寻址块内空间不足,而导致部分分钟数据被存储下一个相邻块内,其判别方法如下:
a)若占用页数pages可被块容量NAND_BLOCK_SIZE整除,则
不存在某份分钟数据跨块临界存储情形,直接根据数据指针中的address.page是否等于0即可判别是否跨块擦除操作㊂
b)若占用页数pages不被块容量NAND_BLOCK_SIZE整除,则存在某份分钟数据跨块临界存储,首先将数据指针寻址块内剩余页数写满后,将该分钟数据剩余部分写入下一个相邻块之前必须进行擦除操作㊂
综上所述,自动气象站分钟数据机内NANDflash扩展存储写入算法程序流程如图6所示㊂
由3.1节所述数据指针片内寻址增益算法,分钟数据不管是否跨块临界存储均可直接按块逐页顺序读取,根据分钟数据读写协议栈校验写入前后的数据一致性即可,程序流程如图7所示㊂这也正是NANDflash读写操作代价不对称性的体现㊂
3㊀实现与应用
所提出的自动气象站数据机内NANDflash扩展存储数据读写算法在广东省气象计算机应用开发研究所研制的DZZ1⁃2N型自动气象站中开发实现㊂DZZ1⁃2N新型自动气象站主采集器采用STM32F207VG_144处理器,采用工作频率为120MHz的ARM®CortexTM⁃M332位RISC内核,包含有程序flash㊁内存RAM㊁Watch⁃dog以及A/D转换芯片㊂处理器通过FSMC管理外部可扩展存储NANDflash芯片三星K9LBG08U0M,FSMC起到桥梁作用,既能够进行信号类型的转换,又能够进行信号宽度和时序的调整,屏蔽掉不同存储类型的差异,使之对STM32内核而言没有区别㊂FSMC的
㊃002㊃计算机应用研究2020年㊀
一端通过内部高速总线AHB连接到内核Cortex⁃M3,另一端则是面
向扩展存储器的外部总线㊂内核对外部存储器的访问信号发送到AHB总线后,经过FSMC转换为符合外部存储器通信规约的信号,送到外部存储器的相应引脚,实现内核与外部存储器之间的数据交互[17]㊂DZZ1⁃2N型自动气象站数据机内扩展NANDflash存储硬件设计原理如图8所示
DZZ1⁃2N型自动气象站在全省近3000个区域自动气象站㊁86个国家地面气象站以及生态气象站的安装部署业务应用,野外无人值守运行,自动气象站数据采集器机内扩展存储读写快速稳定㊁数据准确可靠,很好地满足了观测自动化业务高质量发展要求㊂
dic系统4 结束语
影响NANDflash存储访问性能的关键技术不仅仅地址映射,还包括垃圾回收机制㊁磨损均衡策略等,文献[18 20]中均作了详细阐述
蓝牙GPS
㊂为了更清晰说明所提出的自动气象站原始数据机内扩展存储快速读写算法的设计思路,自动气象站NANDflash机内扩展㊀㊀
存储算法中所涉及的磨损均衡策略未在文中予以体现㊂重点针对STM32FSMC管理外部可扩展存储NANDflashK9LBG08U0M闪存机内硬件设计,提出以自动气象站观测数据的唯一时间偏移量为主键,建立观测数据与闪存物理地址的一一映射关系,实现观测数据与对应机内存储物理地址的数据指针快速寻址,从而避免观测数据在存储寻址上耗费大量时间㊂在此基础上结合NANDflash存储特性,生成自动气象站观测数据快速读写算法,并在DZZ1⁃2N型自动气象站系统开发实现,经全省约3000个自动气象站组网观测业务应用,观测数据存储读写实时高速㊁准确稳定,满足气象数据从观测到预报1分钟到桌面的高质量业务发展需求㊂
参考文献:
[1]新型自动气象(气候)站功能规格书[S].北京:中国气象局综合观
测司,2016.
[2]BezR,CamerlenghiE,ModelliA,etal.Introductiontoflashmemory
[J].ProceedingsoftheIEEE,2003,91(4):489⁃502.
[3]ToshibaCorp.NANDvsNORflashmemorytechnologyoverview[EB/
OL].(2006).http://www.tpshiba.com/taec/components/Generic/Memory_Resources/NANDvsNOR.pdf.
[4]刘会忠,程煜,袁达.Flash存储管理在嵌入式系统中的实现[J].计
算机工程,2010,36(8):88⁃90.
[5]刘荣,沈松,李子苑.存储虚拟化和全闪存技术在烟草核心系统的
应用[J].计算机应用与软件,2018,35(6):96⁃101,128.
[6]朱建江,余世明,林鑫.NANDflash在嵌入式袜机提花系统中的研
究及应用[J].计算机应用与软件,2012,29(10):287⁃290.
[7]王宏强,王太勇,邓辉,等.面向闪存类存储设备嵌入式文件系统
研究与实现[J].计算机应用研究,2008,25(3):814⁃819.
[8]杨善林,付超,马溪骏.基于NANDflash控制结构复用的嵌入式存
储系统研究[J].仪器仪表学报,2006,27(8):845⁃851.
[9]SamsungElectronics.Preliminaryflashmemory⁃K9XXG08UXM[EB/
OL].http://downloads.qi⁃handware.com/hardwave/datasheets/qi_1660//uq kqGAG08UM  2GB⁃FINAL_NAND⁃NOT_ON_SOME_PROTOTYPES  .pdf.
[10]时正,陈香兰,纪金松,等.大容量NANDflash文件系统中的地址
映射算法研究[J].小型微型计算机系统,2010,31(1):155⁃159.[11]房俊华,王翰虎,陈梅,等.DB⁃tree:一种高性能的闪存数据库索引
结构[J].计算机应用与软件,2013,30(11):243⁃246.
[12]王新华,王建芬.NANDflash在嵌入式文件系统中的一种动态管
理方法[J].计算机应用与软件,2008,25(9):95⁃98.
[13]岳丽华,向小岩,金培权,等.一种自适应的闪存存储管理方法
[J].小型微型计算机系统,2010,31(8):1675⁃1680.
[14]冉鹏,陈向.VxWorks环境下Nandflash驱动程序设计研究[J].计
算机应用与软件,2013,30(6):325⁃328.
[15]邱华,黄少珉,张萌.提高Nandflash性能的方法[J].计算机工程
与应用,2009,45(8):84⁃86.
[16]王立峰,胡善清,刘峰,等.基于闪存的高速海量存储模块设计
[J].计算机工程,2011,37(7):255⁃257,261.
[17]王永虹,徐炜,等.STM32系列ARMCortex⁃M3微控制器原理与实
践[M].北京:北京航空航天大学出版社,2008.
[18]郑文静,李明强,舒继武.Flash存储技术[J].计算机研究与发展,
2010,47(1):716⁃726.
[19]石乐健,严华.考虑物理块年龄和逻辑页热度的NAND闪存磨损
均衡算法[J].小型微型计算机系统,2015,36(11):2618⁃2621.[20]薛镭.基于NANDflash存储器的磨损均衡DP算法优化[J].计算
机应用与软件,2019,36(6):282⁃286.(上接第189页)提高机组指派的效率和效果,实现机组排班系统的自动化和智能化,本文分析了通用航空机组指派的约束条件,建立了一套符合实际应用的模型,提出了一种基于通航实际情况的改进遗传算法㊂该算法以天为单位进行处理,根据作业日实际情况建立种数量和染体长度,结合改进交叉和变异策略实现了通航机组指派的快速高效处理㊂
参考文献:
[1]王燚妍.基于运行效益的机队分配模型的构建与优化[D].天津:
中国民航大学,2018.
[2]CacchianiV,Salazar⁃GonzalezJJ.Optimalsolutionstoareal⁃world
integratedairlineschedulingproblem[J].TransportationScience,2018,58(3):215⁃217.
[3]KenanaN,JebalibA,DiabatA.Anintegratedflightschedulingand
fleetassignmentproblemunderuncertainty[J].Computers&Opera⁃tionsResearch,2018,100(12):333⁃342.
[4]汪瑜,孙宏,朱金福.基于时间区间内航线机型优化分配的机队规
划方法[J].系统工程理论与实践,2015,35(1):168⁃174.
[5]Dožic'S,Kalic'
M.Three⁃stageairlinefleetplanningmodel[J].Jour⁃
nalofAirTransportManagement,2015,46(7):30⁃39.
[6]姬宇.中国通用航空发展概述[J].现代营销:经营版,2019(11):
34⁃36.
[7]董念清.中国通用航空发展现状㊁困境及对策探析[J].北京理工
大学学报:社会科学版,2014,16(1):110⁃117.
[8]李翱.中国通用航空产业发展研究[D].广汉:中国民用航空飞行
学院,2014.
[9]李岩,袁弘宇,于佳乔,等.遗传算法在优化问题中的应用综述
[J].山东工业技术,2019(12):242⁃243,180.
[10]谭娜,李耀华.基于改进遗传算法的机组指派优化方法研究[J].
控制工程,2015,22(4):674⁃678.
[11]高强,朱星辉,李云,等.飞机排班一体化模型与算法研究[J].武
汉理工大学学报:交通科学与工程版,2012,36(1):153⁃157.
㊃102㊃㊀第37卷增刊周钦强,等:自动气象站NANDflash扩展存储快速读写算法设计
㊀㊀㊀

本文发布于:2024-09-21 08:43:34,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/270064.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   自动   气象站
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议