数据搬移的方法、装置、存储器及终端
技术领域
本发明涉及智能终端领域,尤其涉及的是一种数据搬移的方法、装置、存储器及终端。
背景技术
谷歌安卓(Android)“棉花糖”(Marshmallow),版本号为6.0,也称GoogleM版本或Android M版本,将空间下载技术(Over-the-Air Technology,OTA)差分升级模式,从基于文件的差分变更为基于物理块(block)的二进制差分升级模式。
Google M版本采用基于物理块的升级方式的核心原因是增强系统文件的安全保护,提供安全校验机制,但是是通过牺牲升级效率的方式,达到提升安全保护的目的。
基于文件差分升级,是要在文件系统基础上,针对每个有变化的文件进行处理,将新的文件写入文件系统。如图1所示,在基于文件进行差分升级的情况下,由于有文件系统进行统一管理,手机只需对有变化的文件进行擦写操作即可,没有变化的文件在升级过程中不会受到任何影响。
基于物理块的差分升级,则是基于嵌入式多媒体卡(Embedded MultiMedia Card,EMMC)的存储单元——物理块,将每个有变化的物理块上的数据进行处理,形成新的物理块数据。图2为在原物理块block1和物理块block2之间插入一个物理块的数据后的变化,从图中可以看出,本来只新增了一个物理块的数据,但最终的结果,却是物理块block2之后的所有物理块都要进行数据搬移处理,如此导致了大量没有改动的物理块需要进行数据搬移,造成升级操作量增加,升级时间延长,进行了大量的EMMC擦写操作,影响EMMC寿命。
发明内容
本发明提供了一种数据搬移的方法、装置、存储器及终端,能够节省升级所需的时间,减轻对存储器寿命的影响。
本发明实施例第一方面提供了一种数据搬移的方法,用于基于物理块(block)的二进制差分升级中的数据搬移,该方法包括:
存储器接收处理器(Central Processing Unit,CPU)发送的第一逻辑块ID和第二逻辑块ID,其中,第一逻辑块ID为原有逻辑块ID,第二逻辑块ID为新逻辑块ID,存储器修改逻辑块与物理块的映射关系表,建立第一逻辑块ID对应的物理块标识与第二逻辑块ID的对应关系(即映射关系),从而完成第一逻辑块ID对应的物理块的数据搬移。其中,逻辑块与物理块的映射关系表保存了逻辑块ID与物理块标识的对应关系。
具体的修改过程为:存储器根据逻辑块与物理块的映射关系表,确定与第一逻辑块ID对应的第一物理块标识;通过修改逻辑块与物理块的映射关系表,解除第一逻辑块ID与第一物理块标识的对应关系;建立第二逻辑块ID与第一物理块标识的对应关系。
本发明实施例中,在基于物理块的差分升级过程中,不用进行实际的物理块擦写操作,通过修改逻辑块与物理块的映射关系表就可以完成物理块的数据搬移,因此,可以解决现有技术中因差分升级过程中需要进行大量的存储器擦除和写操作而影响存储器的寿命的问题,且通过本发明实施例中的方法,只需要修改逻辑块与物理块的映射关系表,就可以完成大量的物理块数据的搬移,从而可以提高基于物理块的差分升级的效率。
结合第一方面,在第一方面的第一种可能的实现方式中,存储器接收CPU发送的第一逻辑块ID和第二逻辑块ID包括:存储器通过逻辑块物理块映射关系变更接口接收CPU的发送的第一逻辑块ID和第二逻辑块ID。
该逻辑块物理块映射关系变更接口为存储器对外提供的标准接口函数,可用于完成物理块数据的搬移,从而提高了本发明方案的可实现性。
结合第一方面,或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,在建立逻辑块与物理块的映射关系表中的第二逻辑块ID与第一物理块标识的对应关系之前还包括:根据逻辑块与物理块的映射关系表,确定第二物理块标识,第二物理块标识为逻辑块与物理块的映射关系表中与第二逻辑块ID对应的物理块标识,之后,解除逻辑块与物理块的映射关系表中的第二逻辑块ID与第二物理块标识的对应关系。
在实际处理中,在修改映射关系表时,需要将已取消映射关系的逻辑块映射至新的物理块地址,从而能够保证能够正常的数据访问。
因此,结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,在取消逻辑块与物理块的映射关系表中的第一逻辑块ID与第一物理块标识的对应关系之后,建立逻辑块与物理块的映射关系表中的第一逻辑块ID与第三物理块标识的对应关系,第三物理块标识为存储器中的物理块的物理块标识中除第一物理块标识之外的物理块标识。
因此,结合第一方面的第二种可能的实现方式,在第一方面的第四种可能的实现方式中,在解除所述第二逻辑块ID与所述第二物理块标识的对应关系之后,通过修改所述逻辑块与物理块的映射关系表,建立第三逻辑块ID与第二物理块标识的对应关系其中,在建立第三逻辑块ID与第二物理块标识的对应关系之前,在逻辑块与物理块的映射关系表中,不存在与第三逻辑块ID对应的物理块标识。
结合第一方面或第一方面的任一种可能的实现方式,上述存储器为嵌入式多媒体卡(EMMC)。
第二方面,本发明实施例提供了一种数据搬移的方法,该方法包括:CPU向存储器发送第一逻辑块ID和第二逻辑块ID,以使得存储器根据逻辑块与物理块的映射关系表,确定第一物理块标识,第一物理块标识为与第一逻辑块ID对应的物理块标识;之后,修改逻辑块与物理块的映射关系表:解除第一逻辑块ID与第一物理块标识的对应关系;建立第二逻辑块ID与第一物理块标识的对应关系。
本发明实施例中,CPU向存储器直接传递原有逻辑块ID(第一逻辑块ID)与新的逻辑块ID(第二逻辑块ID),存储器通过修改逻辑块与物理块的映射关系表就可以完成物理块的数据搬移,而不用进行实际的物理块擦写操作,因此可以提高差分升级的效率,并避免因擦写物理块导致的对存储器寿命的影响。
第三方面,本发明实施例提供了一种存储装置,该存储装置包括:接收模块,用于接收CPU发送的第一逻辑块ID和第二逻辑块ID;第一存储模块,包含多个物理块,所述物理块用于存储数据;第二存储模块,用于存储指令;处理模块,用于调用所述指令实现:当接收到CPU发送的第一逻辑块ID和第二逻辑块ID时,根据逻辑块与物理块的映射关系表,确定述第一逻辑块ID对应第一物理块标识,通过修改所述逻辑块与物理块的映射关系表,解除第一逻辑块ID与第一物理块标识的对应关系;建立第二逻辑块ID与第一物理块标识的对应关系。
本发明实施例中的存储器通过接收模块接收到原有逻辑块ID(第一逻辑块ID)与新的逻辑块ID(第二逻辑块ID)后,存储器的内部集成的处理模块通过修改逻辑块与物理块的映射关系表,将新的逻辑块ID指向原有逻辑块ID指向的物理块,即可完成原有逻辑块ID对应的物理块的数据搬移,无需进行物理块的数据擦除与写操作,从而可以降低因擦除与写操作导致的存储器的寿命,且可以提高物理块上数据搬移的效率,从而提高差分升级的效率。
所述处理模块调用存储在所述存储模块中的指令以实现上述第一方面的方法设计中的方案,由于该存储装置解决问题的实施方式以及有益效果可以参见上述第一方面和第一方面的各可能的实施方式以及有益效果,因此该存储装置的实施可以参见上述方法的实施,重复之处不再赘述。
第四方面,本发明实施例提供了一种处理器,该处理器包括:处理模块,用于处理数据;发送模块,用于向存储器发送第一逻辑块ID和第二逻辑块ID,以使得存储器根据逻辑块与物理块的映射关系表确定第一物理块标识,第一物理块标识为与第一逻辑块ID对应的物理块标识;之后,解除逻辑块与物理块的映射关系表中第一逻辑块ID与第一物理块标识的对应关系;建立第二逻辑块ID与第一物理块标识的对应关系。
结合第四方面,在第四方面的第一种可能的实现方式中,发送模块,具体用于向存储器提供的逻辑块物理块映射关系变更接口发送第一逻辑块ID和第二逻辑块ID。
第五方面,本发明实施例提供了一种存储器,该存储器包括:存储单元和处理器,其中,存储单元,包含多个物理块,物理块用于存储数据,存储单元还用于存储指令。所述处理器调用存储在所述存储单元中的指令以实现上述第一方面的方法设计中的方案,由于该存储器解决问题的实施方式以及有益效果可以参见上述第一方面和第一方面的各可能的实施方式以及有益效果,因此该存储器的实施可以参见方法的实施,重复之处不再赘述。
第六方面,本发明实施例提供了一种处理器,处理器用于向存储器发送第一逻辑块ID和第二逻辑块ID,以使得存储器执行第一方面数据搬移方法中的全部或部分步骤。
结合第六方面,在第六方面的第一种可能的实现方式中,处理器具体用于向存储器的逻辑块物理块映射关系变更接口发送第一逻辑块ID和第二逻辑块ID,以使得存储器执行第一方面数据搬移方法中的全部或部分步骤。
可选的,本发明实施例第三方面所提供的存储装置以及第五方面所提供的存储器可以为EMMC。
第七方面,本发明还提供一种存储介质,该介质存储有程序,该程序执行时包括上述第一方面的数据搬移方法中的部分或者全部步骤。
从以上技术方案可以看出,本发明实施例的方案具有如下有益效果:
本发明实施例中,在差分升级过程中,不用进行实际的物理块擦写操作,而是通过修改逻辑块与物理块的映射关系表就可以完成物理块的数据搬移,本发明的具体方法是存储器接收CPU发送的第一逻辑块ID和第二逻辑块ID后,将逻辑块与物理块的映射关系表中的第二逻辑块ID映射至第一逻辑块ID对应的物理块标识,从而完成第一逻辑块ID对应的物理块的数据搬移。因此,可以解决在差分升级过程中需要进行大量的存储器擦除和写操作而影响存储器的寿命的问题,且通过本发明实施例中的方法,只需要修改逻辑块与物理块的映射关系表就可以完成大量的的数据搬移,从而可以提高物理块差分升级的效率。
附图说明
图1为现有技术中基于文件的差分处理示意图;
图2为本发明实施例的差分处理示意图;
图3为本发明实施例装载有谷歌M版本的终端的部分结构示意图;
图4为本发明实施例CPU访问存储器的基本过程及存储器的硬件结构示意图;
图5为本发明实施例逻辑块与物理块的映射关系示意图;
图6为本发明实施例CPU与存储器之间完成物理块数据搬移的信息交互图;
图7为本发明实施例中的存储器的功能模块示意图;
图8为本发明实施例中的存储器的硬件结构示意图;
图9为本发明实施例中的处理器(CPU)的功能模块示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例可以应用于装载有软件操作系统的终端,示例性地,本发明实施例以装载有Android M版本操作系统的终端为例。
应理解,在本发明实施例中,终端可称之为用户设备(User Equipment,简称为“UE”)、移动台(Mobile Station,简称为“MS”)、移动终端(MobileTerminal),计算机,微机等。该终端可以经无线接入网(Radio Access Network,简称为“RAN”)与一个或多个核心网进行通信,例如,终端可以是移动电话(或称为“蜂窝”电话)、具有移动终端的计算机等,例如,终端还可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们与无线接入网交换语音和/或数据。本发明对此并不限定,例如终端还包括具有多承载特征的有线接入的终端。
在装载有Android M版本系统的终端中,以手机为例,本发明实施例中的终端的硬件结构如图3所示。本领域技术人员可以理解的是,上述举例的其他装在有Android M版本系统的终端的核心硬件结构与图3所示的手机的硬件结构大同小异。
图3示出的是与本发明实施例提供的终端相关的手机的部分结构的框图。参考图3,手机包括:射频(Radio Frequency,RF)电路310、存储器320、输入单元330、显示单元340、传感器350、音频电路360、无线保真(wirelessfidelity,WiFi)模块370、处理器380、以及电源390等部件。本领域技术人员可以理解,图3中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图3对手机的各个构成部件进行具体的介绍:
存储器320包括第一存储器和第二存储器,该第一存储器121可以为该终端的内存,第二存储器122可以为该终端的外存。该第一存储器121可以为非易失存储器(Non-Volatile Random Access Memory,NVRAM)、动态随机存储器(Dynamic Random Access Memory,DRAM)、静态随机存储器(StaticRandom-Access Memory,SRAM)、Flash闪存(Nor Flash或Nand Flash)、嵌入式多媒体卡EMMC等存储器的其中一种;该第二存储器122可以为硬盘、光盘、USB盘、软盘或磁带机等。存储器320可用于存储一个或多个软件程序以及数据,软件程序可包含指令,处理器380通过运行存储在存储器320的软件程序及模块,从而执行手机的各种功能应用以及数据处理。
处理器(CPU)380是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器320内的软件程序/或模块,以及调用存储在存储器320内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器380可包括一个或多个处理单元;优选的,处理器380可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器380中。
另外,手机还包括以下模块:
RF电路310可用于收发信息或通话过程中信号的接收和发送,特别地,将基站的下行信息接收后,给处理器380处理;另外,将设计上行的数据发送给基站。通常,RF电路310包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low Noise Amplifier,LNA)、双工器等。此外,RF电路310可以通过无线通信与网络和其他设备通信。
输入单元330可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元330可包括触控面板331(也称触摸屏)以及其他输入设备332。可选的,触控面板331可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器380,并能接收处理器380发来的命令并加以执行。除了触控面板331,输入单元330还可以包括其他输入设备332。具体地,其他输入设备332可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元340可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元340可包括显示面板341,可选的,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-EmittingDiode,OLED)等形式来配置显示面板341。进一步的,触控面板331可覆盖显示面板341,当触控面板331检测到在其上或附近的触摸操作后,传送给处理器380以确定触摸事件的类型,随后处理器380根据触摸事件的类型在显示面板341上提供相应的视觉输出。虽然在图3中,触控面板331与显示面板341是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板331与显示面板341集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器350,比如光传感器、运动传感器以及其他传感器。音频电路360、扬声器361,传声器362可提供用户与手机之间的音频接口。WiFi属于短距离无线传输技术,手机通过WiFi模块370可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图3示出了WiFi模块370,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
手机还包括给各个部件供电的电源390(比如电池),优选的,电源可以通过电源管理系统与处理器380逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
本发明主要涉及图3中所示的CPU访问内存(即图3中所示的第一存储器321)的过程,本发明实施例中的存储器具体为终端中与CPU进行通信的内存,即第一存储器321。本发明实施例的存储器具体还可以是图3所示的实施例中举例的非易失存储器、动态随机存储器、静态随机存储器、Flash闪存、嵌入式多媒体存储卡EMMC等存储器。优选的,本发明实施例中以EMMC为例进行说明。
为了便于说明,本发明实施例以CPU访问嵌入式多媒体存储卡EMMC为例。
EMMC,是针对手机或平板电脑等终端的内嵌式存储器标准规格,是对Flash闪存中的Nand Flash进行封装后的集成器件,Nand Flash直接对物理块(block)进行操作。且EMMC在封装中集成了一个内部处理器,由EMMC内部处理器完成内存管理,例如:Nand Flash的坏块管理和写均衡处理,并提供标准接口给处理器进行内存的访问和操作。
图4为手机处理器(CPU)访问EMMC存储器件的基本过程示意图。
如图4所示,EMMC包括EMMC内部处理器,Nand Flash闪存,EMMC内部处理器通过内部总线与Nand Flash闪存进行通信,通过物理块标识(ID)信息对Nand Flash闪存进行访问。EMMC器件通过安全数字输入输出卡(Secure Digital Input and Output Card,SDIO)总线与CPU进行通信,具体为EMMC内部处理器对外提供了标准的接口函数,CPU可以通过这些接口函数对EMMC的Nand Flash进行读写擦除等操作。
其中,EMMC中保存了逻辑块与物理块的映射关系表,该映射关系表指示逻辑块与物理块的对应关系(即映射关系),如图5所示,逻辑块BLK1对应物理块block1,逻辑块BLK2对应物理块block2,逻辑块BLK3对应物理块block3,逻辑块BLK4对应物理块block4。
具体的,该逻辑块与物理块的映射关系是由EMMC中的EMMC驱动程序进行创建和维护,EMMC驱动程序还用于修改逻辑块与物理块的映射关系。
需要说明的是,该逻辑块与物理块的映射关系表可以存储在Nand Flash闪存中某个物理块中,也可以存储在EMCC的其他内部缓存中。
逻辑块与物理块的映射关系表中用逻辑块ID指示逻辑块,用物理块标识指示物理块。其中,物理块标识为每个物理块的编号,例如:第1500个块,或者,物理块标识为具体的物理地址,例如:0xBB8CCB8,或者,物理块标识还可以用地址偏移量进行指示,具体此处不做限定。
CPU需要对EMMC的Nand Flash进行读写擦除等操作时,通过接口函数向EMMC发送逻辑块ID等信息,EMMC内部处理器接收到CPU发送的逻辑块ID等信息后,通过查询逻辑块与物理块的映射关系表,将逻辑块ID转化成物理块标识,再将其转化成Nand Flash可识别的格式,根据接口函数处理该物理块标识所对应的物理块。
下面对几种基本的接口函数进行说明:
1、读(Read)操作:
输入参数:逻辑块ID。
处理过程:根据逻辑块与物理块的映射关系表确定该逻辑块ID所对应的物理块标识,然后从Nand Flash中该物理块标识对应的物理块中读取存储的数据,再将所读取的数据反馈给CPU。
2、写(Write)操作:
输入参数:逻辑块ID,写入数据内存地址。
处理过程:根据逻辑块与物理块的映射关系表确定该逻辑块所对应的物理块标识,该物理块标识对应Nand Flash中的某个物理块,再将输入参数中的指定内存地址中的数据写入所确定的物理块标识所对应的物理块中。如果写的过程中,发生物理块损坏的情况,则EMMC会自动再找一个新的备用块,将其指定为输入参数中的逻辑块ID对应的物理块,然后再写入,并建立新的备用块的物理块标识与输入参数中的逻辑块ID的对应关系,将对应关系保存在逻辑块与物理块的映射关系表中。
3、擦除(Erase)操作:
输入参数:逻辑块ID。
处理过程:根据逻辑块与物理块的映射关系表确定该逻辑块所对应的物理块标识,该物理块标识对应Nand Flash中的某个物理块,再擦除该物理块。如果擦除的过程中,发生物理块损坏的情况,则EMMC会自动再找一个新的备用块,将其指定为输入参数中的逻辑块ID对应的物理块,建立新的备用块的物理块标识与输入参数中的逻辑块ID的对应关系,将对应关系保存在逻辑块与物理块的映射关系表中。
现有技术中,在基于物理块的差分升级过程中,需要对每个有变化的块进行处理,需要进行物理块中数据的搬移,例如图2的插入一个物理块block的数据后,需要对原物理块block2上的数据搬移到物理块block 3,物理块block 3上的数据搬移到物理块block 4,同理,物理块block4……blockn中的数据依次进行搬移至物理块block 5……blockn+1,以使得原物理块block 2中写入插入的数据。
具体的,现有技术中,每个物理块的数据搬移是通过上述的基本的接口函数来完成,具体搬移过程为:
步骤1:读取原有逻辑块ID对应的物理块中的数据。
步骤2:擦除新逻辑块ID对应的物理块。
步骤3:将原有逻辑块ID对应的物理块的数据写入到新逻辑块ID对应的物理块。
步骤4:擦除原有逻辑块ID对应的物理块。
现有技术中,在基于物理块的二进制差分升级过程中采用上述步骤对物理块中的数据进行搬移时,需要进行大量的EMMC擦除和写操作,影响EMMC的寿命,且大量的物理块中的数据需要搬移,使得物理块差分升级的效率得不到提升。
本发明实施例提供了的数据搬移方法,是通过直接修改逻辑块与物理块的映射关系表,不用进行实际的物理块擦写操作,能够加快搬移速率,减轻对FLASH寿命的影响。
本发明实施例中的物理块数据的搬移过程如下:
601、CPU向EMMC发送第一逻辑块ID和第二逻辑块ID。
EMMC和CPU之间约定接口函数以及函数格式,在基于物理块的二进制差分升级中,如果需要进行物理块数据的搬移,CPU向EMMC发送原有逻辑块ID和新逻辑块ID,原有逻辑块ID为第一逻辑块ID,新逻辑块ID为第二逻辑块ID。
EMMC根据第一逻辑块ID和第二逻辑块ID以及接口函数定义修改逻辑块与物理块的映射关系表。
具体的,在实际应用中,EMMC和CPU之间约定的接口为逻辑块物理块映射关系变更接口。该接口函数为EMMC提供的除以上举例的3种接口函数外的接口函数,该接口函数的具体定义如下:
[原有逻辑块ID(即:第一逻辑块ID),新逻辑块ID(即:第二逻辑块ID)]。
处理结果:当EMMC接收到CPU发送的接口函数:[原有逻辑块ID(即:第一逻辑块ID),新逻辑块ID(即:第二逻辑块ID)],通过查询EMMC和CPU之间约定的接口函数定义得知,该接口函数定义为建立第二逻辑块ID与第一逻辑块ID对应的物理块标识的对应关系;通过查找逻辑块与物理块的映射关系表,确定第一逻辑块ID对应的物理块标识为第一物理块标识。
因此,CPU通过逻辑块物理块映射关系变更接口向EMMC发送所述第一逻辑块ID和第二逻辑块ID,EMMC通过该接口接收CPU发送的第一逻辑块ID和第二逻辑块ID。
602、EMMC通过修改逻辑块与物理块的映射关系表,建立第二逻辑块ID与第一逻辑块ID对应的第一物理块标识的对应关系。
修改映射关系表的具体过程为:
EMMC通过查询所述逻辑块与物理块的映射关系表,确定第一逻辑块ID对应的物理块标识为第一物理块标识,通过修改逻辑块与物理块的映射关系表,解除第一逻辑块ID与第一物理块标识的对应关系,建立第二逻辑块ID与第一物理块标识的对应关系,使第二逻辑块ID指向第一物理块标识对应的物理块。
在实际处理中,一个物理块可以只对应一个逻辑块,因此,在建立第二逻辑块ID与第一物理块标识的对应关系之前,需要先通过修改逻辑块与物理块的映射关系表,解除第二逻辑块ID与第二物理块标识的对应关系。具体是EMMC通过查询逻辑块与物理块的映射关系表,确定第二逻辑块ID对应的物理块标识为第二物理块标识,通过修改逻辑块与物理块的映射关系表,解除第二逻辑块ID与第二物理块标识的对应关系。
另外,在解除第一逻辑块ID与第一物理块标识的对应关系之后,EMMC可以通过修改逻辑块与物理块的映射关系表,建立第一逻辑块ID与第三物理块标识的对应关系,其中,第三物理块标识为EMMC的闪存中除第一物理块标识之外的任一物理块标识,优选地,第三物理块标识对应的物理块为备用物理块。
另外,在解除第二逻辑块ID与第二物理块标识的对应关系之后,EMMC可以通过修改逻辑块与物理块的映射关系表,建立第三逻辑块ID与第二物理块标识的对应关系,其中,在建立第三逻辑块ID与第二物理块标识的对应关系之前,在逻辑块与物理块的映射关系表中,不存在与第三逻辑块ID对应的物理块标识。
示例性说明修改物理块与逻辑块的映射关系的实现方式,例如:修改映射关系前,第n个物理块映射至第n个逻辑块,需要将第n个逻辑块映射至第m个物理块的实现方式,可以先根据逻辑块与物理块的映射关系表确定第n个逻辑块映射至第n个物理块,解除第n个逻辑块与第n个物理块的对应关系,解除第m个逻辑块与第m个物理块的对应关系,再建立第n个逻辑块与原第m个物理块的对应关系,依此类推。
举例进行说明:
以一Nand Flash为例,一共有2048个物理块,若初始状态下EMMC驱动程序将第1个逻辑块映射至第1个物理块,第2个逻辑块映射至第2个物理块,第3个逻辑块映射至第3个物理块……第2048个逻辑块映射至第2048个物理块。在差分升级过程中,需往第50个物理块写入大量数据,且当第50个物理块已经写满时,需要在第50物理块和第51个物理块之间插入一个物理块,用于存储第50个物理块未写完的数据。通过修改逻辑块与物理块的映射关系表中的第51个逻辑块的对应关系,将原第51个逻辑块映射至该NandFlash中的一个可以用来写入数据的物理块(例如第100个物理块),向第100个物理块写入上述未写完的数据。
具体的,CPU通过与EMMC提供的逻辑块物理块映射关系变更接口函数向EMMC发送参数:[第100个逻辑块,第51个逻辑块],EMMC通过查询EMMC和CPU之间约定的接口函数定义得知,该接口函数定义为建立第51个逻辑块与第100个逻辑块对应的物理块的对应关系;通过查找逻辑块与物理块的映射关系表,确定第100个逻辑块对应的物理块标识为第100个物理块,通过修改逻辑块与物理块的映射关系表,建立第51逻辑块与第100个物理块的对应关系。修改逻辑块与物理块的映射关系表时,可以先根据逻辑块与物理块的映射关系表确定第51个逻辑块对应的物理块为第51个物理块,解除第51个逻辑块与第51个物理块的对应关系,解除第100个逻辑块与第100个物理块的对应关系,建立第51个逻辑块与第100个物理块的对应关系。同时,通过修改逻辑块与物理块的映射关系表,使第52~第100个逻辑块分别映射至第51~第99个物理块;即:建立第52个逻辑块与第51个物理块的对应关系,建立53个逻辑块与第52个物理块的对应关系,建立第54个逻辑块与第53个物理块的对应关系……第100个逻辑块与第99个物理块的对应关系,第51个逻辑块映射至第100个物理块,第101个逻辑块映射至第101个物理块,……第2048个逻辑块映射至第2048个物理块;通过修改逻辑块与物理块的映射关系表,即可完成第50个逻辑块之后的数据的搬移,而不用进行实际的物理块擦写操作。
因此,通过本发明实施例中的方法,可以通过修改逻辑块与物理块的映射关系表,不用进行实际的物理块擦写操作,因此,可以解决基于物理块的差分升级过程中,需要进行大量的EMMC擦除和写操作而影响EMMC的寿命的问题,且在基于物理块的二进制差分升级过程中,通过本发明实施例中的方法,只需要修改逻辑块与物理块的映射关系表,就可以完成大量的物理块的数据的搬移,而无需对需要搬移的物理块进行擦除和写操作,从而可以提高物理块差分升级的效率。
以上是对本发明实施例中的数据搬移的方法进行的介绍,下面从功能模块角度对本发明实施例中的存储装置进行介绍。需要说明的是,本发明实施例中的存储装置在实际应用中可以是上述图3所示的实施中的存储器320,具体的,可以是上述方法实施例中EMMC存储器。
结合图7,本发明实施例提供的存储装置在功能模块上包括:
接收模块701,用于接收CPU发送的第一逻辑块ID和第二逻辑块ID;
第一存储模块702,包含多个物理块,所述物理块用于存储数据;
第二存储模块703,用于存储指令;
处理模块704,用于调用第二存储模块703中的指令实现:当接收到CPU发送的第一逻辑块ID和第二逻辑块ID时,将逻辑块与物理块的映射关系表中的所述第二逻辑块ID映射至所述第一逻辑块ID对应的物理块标识,所述物理块标识指示所述EMMC的Flash存储中的多个物理块中的其中一个。具体过程为:根据逻辑块与物理块的映射关系表,确定述第一逻辑块ID对应第一物理块标识;通过修改所述逻辑块与物理块的映射关系表,解除逻辑块与物理块的映射关系表中的第一逻辑块ID与第一物理块标识的对应关系,解除第二逻辑块ID与第二物理块标识的对应关系;建立第二逻辑块ID与第一物理块标识的对应关系。
需要说明的是,所述逻辑块与物理块的映射关系表可以存储于第一存储模块702或第二存储模块703中,也可以存储于该存储装置终端中的其他功能模块。
具体的,EMMC对外提供了标准的逻辑块物理块映射关系变更接口,接收模块701,具体是通过该逻辑块物理块映射关系变更接口接收CPU发送的第一逻辑块ID和第二逻辑块ID。
另外,处理模块704,还用于在建立逻辑块与物理块的映射关系表中的第二逻辑块ID与第一物理块标识的对应关系之前,根据逻辑块与物理块的映射关系表,确定第二物理块标识,第二物理块标识为与第二逻辑块ID对应的物理块标识,通过修改所述逻辑块与物理块的映射关系表,解除逻辑块与物理块的映射关系表中的第二逻辑块ID与第二物理块标识的对应关系。
另外,处理模块704,还用于在解除逻辑块与物理块的映射关系表中的第一逻辑块ID与第一物理块标识的对应关系之后,通过修改所述逻辑块与物理块的映射关系表,建立第一逻辑块ID与第三物理块标识的对应关系,第三物理块标识为第一存储模块702中的多个物理块的标识中除第一物理块标识之外的物理块标识。
另外,处理模块704,还用于在解除第二逻辑块ID与第二物理块标识的对应关系之后,通过修改逻辑块与物理块的映射关系表,建立第三逻辑块ID与第二物理块标识的对应关系。
需要说明的是,如果该存储装置是EMMC,则第一存储模块702和第二存储模块703具体可以对应于EMMC中的Nand Flash,处理模块704可以对应于EMMC中的EMMC内部处理器。
上述接收模块701、第一存储模块702、第二存储模块703以及处理模块704之间的具体信息交互请参阅图6所示的方法实施例中的描述,具体此处不再赘述。
结合图8,本发明实施例提供的存储器在硬件上包括:
存储单元801和处理器802,其中,存储单元801所具有的功能对应于图7所示的实施例中描述的第一存储模块702和第二存储模块703所具有的功能,具体包含多个物理块,物理块用于存储数据;还用于存储指令。
处理器802,用于调用指令实现图7所示的实施例中描述的接收模块701以及处理模块704所具有的功能。具体为:当接收到CPU发送的第一逻辑块ID和第二逻辑块ID时,根据逻辑块与物理块的映射关系表,确定第一物理块标识,第一物理块标识与第一逻辑块ID对应;通过修改逻辑块与物理块的映射关系表,解除第一逻辑块ID与第一物理块标识的对应关系,建立第二逻辑块ID与第一物理块标识的对应关系。其他功能具体请参阅图7所示的实施例中的接收模块701以及处理模块704所具有的功能,此处不再赘述。
需要说明的是,如果该存储器是EMMC,则存储单元801对应于图4所示的EMMC器件中的Flash存储,处理器对应于图4所示的EMMC器件中的EMMC内部处理器。如图4中所述,EMMC是对Flash闪存中的Nand Flash进行封装后的集成器件,Nand Flash直接对物理块(block)进行操作。且EMMC在封装中集成了一个内部处理器,由EMMC内部处理器完成内存管理,并提供标准接口给处理器进行内存的访问和操作。操作中包括对物理块数据的搬移,具体的,EMMC内部处理器,在用于进行物理块数据的搬移时,用于接收CPU发送的第一逻辑块ID和第二逻辑块ID,将逻辑块与物理块的映射关系表中的第二逻辑块ID映射至第一逻辑块ID对应的物理块标识,物理块标识指示多个物理块中的其中一个,物理块标识为EMMC内部处理器根据第一逻辑块ID从逻辑块与物理块的映射关系表中确定。
图9是本发明实例中的CPU的功能模块示意图,该处理器包括:处理模块901,用于处理数据;发送模块902,用于向EMMC发送第一逻辑块ID和第二逻辑块ID,以使得EMMC将逻辑块与物理块的映射关系表中的第二逻辑块ID映射至第一逻辑块ID对应的物理块标识,具体是:根据逻辑块与物理块的映射关系表,确定第一物理块标识,第一物理块标识为与第一逻辑块ID对应的物理块标识;之后,解除逻辑块与物理块的映射关系表中第一逻辑块ID与第一物理块标识的对应关系;建立第二逻辑块ID与第一物理块标识的对应关系。
其中,发送模块902具体用于向EMMC的逻辑块物理块映射关系变更接口发送第一逻辑块ID和第二逻辑块ID。
EMMC根据第一逻辑块ID和第二逻辑块ID进行逻辑块与物理块的映射关系表的调整以完成物理块数据搬移的过程请参阅图6所示的实施例,此处不在赘述。
在实际应用中,图9所示的CPU在硬件实体上对应图3所示的终端中的处理器380或图4所示的实施例中的处理器(CPU),除此之外,从硬件实体上来说,本发明实施例中的处理器还能执行处理器380所执行的功能,具体此处不再赘述。
另外,本发明实施例中保护的终端至少包括存储器和处理器,另外,还包括其他硬件结构,终端的硬件结构具体如图3所示。存储器320和处理器380除了图3所示的实施例中描述的功能以外,存储器320中还存储逻辑块与物理块的映射关系表;当存储器320接收到处理器380发送的第一逻辑块ID和第二逻辑块ID时,根据逻辑块与物理块的映射关系表,确定第一物理块标识,第一物理块标识与第一逻辑块ID对应;通过修改逻辑块与物理块的映射关系表,解除第一逻辑块ID与第一物理块标识的对应关系,建立第二逻辑块ID与第一物理块标识的对应关系。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”是用于区别类似的对象,而不是描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上图7所描述的装置实施例仅仅是功能模块示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。