本发明专利技术公开了一种写数据的方法和设备,包括:接收光模块发送的写数据指令,写数据指令中包含了待写入闪存Flash的数据;根据写数据指令中包含了待写入Flash的数据的逻辑地址,确定所述待写入Flash的数据存储在所述Flash内部的物理地址;根据设定的物理地址与至少两个存储区域之间的对应关系,得到确定的所述物理地址对应的至少两个存储区域;并从得到的所述至少两个存储区域中选择一个存储区域,在所述选择的存储区域内没有存储数据时,将所述待写入Flash的数据直接写入所述选择的存储区域,这样,光模块在执行写操作时,节省了写数据过程中擦除Flash的时间,有效地缩短了光模块写数据的周期,提高了写数据的效率。
【技术实现步骤摘要】
本专利技术涉及计算机控制技术的光模块领域,尤其涉及一种写数据的方法和设备。
技术介绍
在计算机控制技术的光模块领域,光模块对外提供了软件访问控制功能。主机(Host)可通过 I2C(Inter-1ntegrade Circuit,内部集成电路)、MD1(Management DateInput/Output,管理数据输入输出总线)等总线接口访问光模块。其中,访问形式包括读数据、写数据等。此外,有些光模块存在对内部的Flash闪存储设备执行写操作的命令,比如,XFP模块提供128字节的区域作为用户的可写入区域。根据Flash闪存储设备的存储特性,当需要向Flash闪存储设备中写入数据时,需要首先确定写入数据存储在Flash闪存储设备的目标地址,并对Flash闪存储设备中的目标地址执行擦除操作,然后再将待写入的数据写入至该目标地址中。完成这一系列的操作存在以下问题:1、需要消耗大量的时间。由于擦除Flash闪存储设备的最小单位是页,每次在对Flash闪存储设备进行擦除操作前还需要将该页内原有的数据读取至RAM中保存,待擦除操作执行完毕之后,在将RAM中保存的数据逐个写入,消耗时间比较长。2、对于Flash闪存储设备存在对某一个地址反复擦写的情况,这样还会降低Flash的寿命。3、假设将Flash闪存储设备设置的MCU (Micro Control Unit,微控制单元)内部,在对Flash闪存储设备执行擦除操作时,MCU将处于待机状态,无法响应系统发生的其他指令,将导致光模块通信的异常。
技术实现思路
本专利技术实施例提供了一种写数据的方法和设备,用于解决目前光模块在向Flash内部写数据时存在写数据周期长且写数据效率比较低的问题。根据本专利技术的第一方面,提供了一种写数据的方法,包括:接收光模块发送的写数据指令,其中,所述写数据指令中包含了待写入闪存Flash的数据;根据所述写数据指令中包含了待写入Flash的数据的逻辑地址,确定所述待写入Flash的数据存储在所述Flash内部的物理地址;根据设定的物理地址与至少两个存储区域之间的对应关系,得到确定的所述物理地址对应的至少两个存储区域;并从得到的所述至少两个存储区域中选择一个存储区域,在所述选择的存储区域内没有存储数据时,将所述待写入Flash的数据直接写入所述选择的存储区域。结合本专利技术第一方面可能的实施方式中,第一种可能的实施方式,所述设定的物理地址与至少两个存储区域之间的对应关系的确定方式包括:预先将Flash内部的存储区域划分成N个子存储区域,其中,N为自然数;从N份存储区域中选择至少两个子存储区域作为一个物理地址对应的存储区域,并建立所述物理地址与所述至少两个子存储区域之间的对应关系,其中,不同物理地址对应的子存储区域不同。结合本专利技术第一方面的第一种可能的实施方式中,第二种可能的实施方式,所述将Flash内部的存储区域划分成N个子存储区域,包括:将Flash内部的存储区域平均划分成N个子存储区域。结合本专利技术第一方面可能的实施方式中,或者结合本专利技术第一方面的第一种可能的实施方式中,或者结合本专利技术第一方面的第二种可能的实施方式中,第三种可能的实施方式,所述从得到的所述至少两个存储区域中选择一个存储区域,在所述选择的存储区域没有存储数据时,将所述待写入Flash的数据直接写入所述选择的存储区域,包括:从得到的所述至少两个存储区域中选择一个存储区域,并判断所述选择的存储区域内是否已存储数据;若所述选择的存储区域内没有存储数据时,将所述待写入Flash的数据直接写入所述选择的存储区域。结合本专利技术第一方面的第三种可能的实施方式中,第四种可能的实施方式,所述方法还包括:若所述选择的存储区域内已有存储数据时,将所述存储区域内的存储数据与所述待写入Flash的数据进行比较;当所述存储区域内的存储数据与所述待写入Flash的数据相同时,触发所述待写入Flash的数据写完成指令;当所述存储区域内写入数据与所述待写入Flash的数据不相同时,继续选择下一个存储区域,直至在确定选择的所述下一个存储区域内没有存储数据时,将所述待写入Flash的数据直接写入选择的所述下一个存储区域。结合本专利技术第一方面的第四种可能的实施方式中,第五种可能的实施方式,所述方法还包括:在当所述存储区域内写入数据与所述待写入Flash的数据相同时触发所述待写入Flash的数据写完成指令时,记录所述存储区域与所述待写入Flash的数据之间的对应关系,以便于在读取所述待写入Flash的数据时,确定读取所述待写入Flash的数据的存储区域。结合本专利技术第一方面可能的实施方式中,或者结合本专利技术第一方面的第一种可能的实施方式中,或者结合本专利技术第一方面的第二种可能的实施方式中,或者结合本专利技术第一方面的第三种可能的实施方式中,或者结合本专利技术第一方面的第四种可能的实施方式中,或者结合本专利技术第一方面的第五种可能的实施方式中,第六种可能的实施方式,所述Flash内部的存储区域属于已擦除存储区域,处于可被写入数据的状态。根据本专利技术的第二方面,提供了一种写数据的设备,包括:接收模块,用于接收光模块发送的写数据指令,其中,所述写数据指令中包含了待写入闪存Flash的数据;确定模块,用于根据所述写数据指令中包含了待写入Flash的数据的逻辑地址,确定所述接收模块接收到的所述待写入Flash的数据存储在所述Flash内部的物理地址;写数据模块,用于根据设定的物理地址与至少两个存储区域之间的对应关系,得到所述确定模块确定的所述物理地址对应的至少两个存储区域;并从得到的所述至少两个存储区域中选择一个存储区域,在所述选择的存储区域内没有存储数据时,将所述接收模块接收到的所述待写入Flash的数据直接写入所述选择的存储区域。结合本专利技术第二方面可能的实施方式中,第一种可能的实施方式,所述设备还包括对应关系确定t吴块,其中:所述对应关系确定模块,用于确定物理地址与至少两个存储区域之间的对应关系,具体用于:预先将Flash内部的存储区域划分成N个子存储区域,其中,N为自然数;从N份存储区域中选择至少两个子存储区域作为一个物理地址对应的存储区域,并建立所述物理地址与所述至少两个子存储区域之间的对应关系,其中,不同物理地址对应的子存储区域不同。结合本专利技术第二方面的第一种可能的实施方式中,第二种可能的实施方式,所述对应关系确定模块,具体用于将Flash内部的存储区域平均划分成N个子存储区域。结合本专利技术第二方面可能的实施方式中,或者结合本专利技术第二方面的第一种可能的实施方式中,或者结合本专利技术第二方面的第二种可能的实施方式中,第三种可能的实施方式,所述写数据模块,具体用于从得到的所述至少两个存储区域中选择一个存储区域,并判断所述选择的存储区域内是否已存储数据;若所述选择的存储区域内没有存储数据时,将所述待写入Flash的数据直接写入所述选择的存储区域。结合本专利技术第二方面的第三种可能的实施方式中,第四种可能的实施方式,所述写数据模块,还用于若所述选择的存储区域内已有存储数据时,将所述存储区域内的存储数据与所述待写入Flash的数据进行比较;当所述存储区域内的存储数据与所述待写入Flash的数据相同时,触发所述待写入Flash的数据写完成指令;当本文档来自技高网...
【技术保护点】
一种写数据的方法,其特征在于,包括:接收光模块发送的写数据指令,其中,所述写数据指令中包含了待写入闪存Flash的数据;根据所述写数据指令中包含了待写入Flash的数据的逻辑地址,确定所述待写入Flash的数据存储在所述Flash内部的物理地址;根据设定的物理地址与至少两个存储区域之间的对应关系,得到确定的所述物理地址对应的至少两个存储区域;并从得到的所述至少两个存储区域中选择一个存储区域,在所述选择的存储区域内没有存储数据时,将所述待写入Flash的数据直接写入所述选择的存储区域。
【技术特征摘要】
【专利技术属性】
技术研发人员:连民,程祥,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。