发明内容
为此,需要提供一种监控eMMC的方案,解决现有需要监控对eMMC的写入行为,防止写入行为可能对eMMC造成损坏的问题,同时不影响应用程序的正常工作。
为实现上述目的,发明人提供了一种监控eMMC的方法,包括如下步骤:
监控预写入到eMMC热点地址的文件;
写入所述文件到非eMMC的存储位置;
在满足一定条件时;
将所述非eMMC的存储位置的文件写入到eMMC。
进一步地,所述写入所述文件到非eMMC的存储位置具体包括:写入所述文件到内存中。
进一步地,所述在满足一定条件时具体包括:在文件大小超过写入阈值时。
进一步地,所述在满足一定条件时具体包括:在关机指令被触发时。
进一步地,所述eMMC热点地址包括eMMC被频繁写入的地址。
以及发明人还提供一种监控eMMC的装置,包括如下模块:
监控模块:用于监控预写入到eMMC热点地址的文件;
非eMMC写入模块:用于写入所述文件到非eMMC的存储位置;
eMMC写入模块:用于在满足一定条件时;
将所述非eMMC的存储位置的文件写入到eMMC。
进一步地,所述非eMMC写入模块包括用于写入所述文件到内存中。
进一步地,所述在满足一定条件时具体包括:在文件大小超过写入阈值时。
进一步地,所述在满足一定条件时具体包括:在关机指令被触发时。
进一步地,所述eMMC热点地址包括eMMC被频繁写入的地址。
区别于现有技术,上述技术方案通过写入文件到非eMMC存储位置,有效地减少了eMMC的写入量,尤其是一些热点地址的频繁写入,提高了eMMC颗粒的使用寿命,同时在写入到内存时,可以使得系统运行更为流畅(写内存的速度要比写eMMC快的多)。
具体实施方式
为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
请参阅图1到图4,本实施例提供了一种监控eMMC的方法,本方法可以应用于具有eMMC的电子设备上,eMMC上还可以存储有操作系统,电子设备可以包含有处理模块,处理模块可以运行有该操作系统。操作系统一般包含有文件管理系统即文件系统,以及操作系统可以运行有应用程序。
图1给出了一个现有技术中应用程序将文件或数据写入eMMC的示意图。应用程序A需要写入A文件到eMMC时,会通过文件系统直接写入eMMC,文件系统可以获取到应用程序A所创建的进程A的A文件,可以获取到的文件A预写入的文件起始地址(地址或称LBA,Logical Block Address)以及长度L,而后文件系统可以直接将文件A写入到相应的eMMC的地址上去。这样,应用程序A可以直接写入到eMMC,当应用程序A是频繁地对eMMC某些地址进行写入时,则会对eMMC的寿命产生很大影响,特别是现在使用越来越广泛的TLC类型的eMMC。
为了解决该问题,本实施例提供的解决方法包括如下步骤,如图2所示,首先为步骤S101监控预写入到eMMC热点地址的文件。相对于现有的操作系统,监控可以通过文件系统监控应用程序的预写入行为来实现。对于没有操作系统来说,可以由eMMC写入程序来对需要写入到eMMC的文件进行监控,因为eMMC的写入需要eMMC写入程序来执行。其中,预写入就是文件系统或者eMMC写入程序已经接收到文件但还未写入到eMMC。热点地址即写入可能会造成eMMC损坏的地址(也可以是地址段),这些地址可以是厂家根据应用程序、eMMC或者操作系统预先设置的某一些地址,如某些应用程序会经常写入某些地址、操作系统会经常写入某些地址等。监控到这些要写入到热点地址的文件后,进入步骤S102写入所述文件到非eMMC的存储位置,即不将所述文件写入eMMC,而将文件存储到非eMMC的存储位置。
文件存储后,如果需要读取该文件,则从所述非eMMC的存储位置读取该文件。对于需要读取所述eMMC热点地址的数据,也要从所述非eMMC的存储位置上进行读取,这样在需要读取eMMC热点地址数据的应用程序看来,所述eMMC热点地址的数据已经是更新过的。为了避免数据的丢失,在步骤S103满足一定条件时;进入步骤S104将所述非eMMC的存储位置的文件写入到eMMC。该一定条件即是需要将文件写入到eMMC热点位置的条件。通过将需要写入热点地址的文件写入到非eMMC位置,防止对eMMC热点位置的写入,而只在需要写入时,才将文件写入到eMMC热点地址,可以减少对该热点地址的频繁写入,避免eMMC的损坏,同时,对应用程序的行为没有限制,应用程序不会运行异常。
其中,非eMMC位置可以是其他存储位置,如外接存储卡、U盘、硬盘等,这些存储位置的数据不容易丢失。在某些实施例中,为了进一步提升写入的速度,可以将所述非eMMC的存储位置设置为内存中的存储位置,则步骤S102应该为写入所述文件到内存中。具体地,可以在内存中指定一块存储区域,用于存储预写入eMMC热点地址的文件。为了使得需要读取eMMC热点地址时读取的是最新的文件,具体地,数据的读取可以通过如下步骤:判断所述指定的内存的存储区域,如果所述内存存储区域存储有数据,则读取所述内存存储区域的数据,否则,读取所述eMMC热点地址的数据。这样,只要有写入的内存的存储区域的文件,在读取的时候都会被读取得到,由于内存的存储区域的文件是最新的,可以保证读取到的也是最新的文件。
上述步骤S103的一定条件可以从减少文件写入到eMMC的时间出发,避免文件状态的不合理性造成回写入到eMMC时间过长,使得用户需要长时间等待的情况。文件状态不合理如文件数量过多、文件总大小过大等情况。具体地,可以在文件大小上设定一个阈值,则在满足一定条件时具体包括:在文件大小超过写入阈值时,即当写入非eMMC存储位置的文件的大小超过一定阈值后,则将存储在非eMMC存储位置的文件写入到eMMC。
如图3所示,给出了上述在文件大小上设定一个阈值的具体实施方式。具体地,本实施例是在操作系统上实施的。其中应用程序A作为文件的产生者,应用程序A需要将A文件写入到eMMC中。操作系统具有文件系统,在文件系统中,操作系统可以监控应用程序A的进程A,得到进程A需要写入eMMC的文件的名称、长度以及该文件在eMMC上的地址(LBA,Logicblock address)。在应用程序A需要写入A文件时,那么文件系统可以记录应用程序A所操作A文件的信息,具体记录方式可以按照图3中所列的表格的方式。而后判断是否写入的地址是热点地址,如果是热点地址则需要对此进行管理,图3采用热点控制单元来实现对要写入到热点地址的文件的管理。热点控制单元根据预写入的文件的不同,进行不同操作。具体地,当应用程序A想要向eMMC中写入应用程序A所操作的文件A的数据时,热点控制单元获取了此次数据。热点控制单元将此次的A文件的数据量x加上之前已经写入在内存存储区域的数据量T,与阈值M进行比较。如果x+T小于阈值M,那么热点控制单元会将文件A这部分数据直接写到内存的存储区域,而不直接写入eMMC。如果x+T大于或等于阈值M,那么热点控制单元会将之前内存的存储区域已经保存的数据长度为T的数据回写到eMMC,并再将此次写入的A文件的数据一并接着写入eMMC。这样,在数据量积累到一定程度就回写到eMMC,避免数据量过大,而后回写到eMMC需要等待过长时间的问题。回写后,可以内存存储区域中的数据清空,而后应用程序读取该存储区域的数据为空时,则可以获取到已经回写到eMMC的数据。
上述的文件大小的阈值可以通过以下方式设定:如在系统启动时默认设置一个阈值M(这个值的大小可以有厂商根据eMMC容量大小来选定),在某些实施例中也可以由用户进行设定。在某些实施例中,如果某个应用程序在单位时间内多次写入超过阈值的数据量,可以在用户界面弹出提示,提醒用户该应用程序有可能存在异常写入行为(如应用程序可能是病毒等),并让用户选择是否增加该应用程序的写入阈值或者拒绝该应用程序的写入行为,而后接收用户的写入阈值设置或者拒绝应用程序的写入行为,防止过度触发写入阈值,仍然造成频繁地写入eMMC。
上述的一定条件还可以是为了防止写入到非eMMC存储位置的文件丢失的条件。如在应用程序A关闭(可以通过检测进程A实现)后,则对该非eMMC存储位置的数据的读写次数将会大大降低,则为了避免文件丢失,可以将非eMMC存储位置的回写到eMMC中。在某些实施例中,可以通过检测没有写入该非eMMC存储位置的时间,如果这个时间大于一个预设值,即长时间没有对该非eMMC存储位置写入,则也可以将非eMMC存储位置的文件写回至该文件对应的eMMC热点地址,避免文件的丢失。在某些实施例中,还可以是非eMMC存储位置可能被清空或者非eMMC存储位置所在的磁盘被卸载等,这些事件都可能导致非eMMC存储位置的文件的丢失,则在这些事件发生前要将文件回写。发明人在实际实验过程中发现,其中系统关机造成数据的丢失的频率大于上述其他可能引起数据丢失的情况,则步骤S103在满足一定条件时具体包括:在关机指令被触发时。关机指令被触发时,操作系统即要进行关机,此时应该回写文件到eMMC。为了保证文件被全部回写,则可以暂缓关机操作,在文件写入到eMMC结束后,执行关机操作,从而避免了关机操作造成的文件的丢失的问题。
正如上述实施例中所说的热点地址可以是厂商预先设定的地址,当然也可以是系统实时获取到的地址。具体地,系统可以获取到eMMC被频繁写入的地址,并以此地址作为热点地址。系统可以通过监控应用程序的写入行为,如果在单位时间内,应用程序写入某些地址的次数大于一个预设的值,则认为这些地址为热点地址。如应用程序在一分钟内写入某地址的次数大于5次,则认为该地址为热点地址。或者在某段地址(或称地址段)中,单位时间内写入的数据量大于一个预设的值。如应用程序在一分钟内写入到某地址段的数据量大于地址段所能容纳数据量的80%时,认为该地址段为热点地址。在某些实施例中,也可以对应用程序进行归类后,判断应用程序所属的类型,如果应用程序所属的类型为频繁写入的类型,则认为应用程序写入的地址都为热点地址。如在线聊天应用,一旦有消息进来,就要记录和写入,则会造成eMMC的频繁写入,还是会造成eMMC频繁写入的问题。则该类型的应用程序即可将它的要写入eMMC的数据或文件写到非eMMC的位置。对于应用程序的分类,可以根据应用程序的文件写入行为进行分类。
综上,本方法可以通过预先判断写入文件的位置或者通过监控应用程序的行为防止对eMMC的频繁读写,又不限定应用程序的行为,避免了应用程序无法正常工作的问题,有大大降低了eMMC的读取写入次数,延长了eMMC的寿命。
以及发明人还提供一种监控eMMC的装置4,如图4所示,包括如下模块:监控模块40、非eMMC写入模块41和eMMC写入模块42。其中:监控模块40用于监控预写入到eMMC热点地址的文件;非eMMC写入模块41:用于写入所述文件到非eMMC的存储位置;eMMC写入模块42:用于在满足一定条件时;将所述非eMMC的存储位置的文件写入到eMMC。其中,热点地址可以是一个热点地址段,这个地址段的长度也可以任意设定的,如正负4K长度的地址段。如认定地址A为写入频繁的地址或者容易损坏的地址,则A地址前后4K都认为是热点地址。通过非eMMC写入模块41将文件写到非eMMC存储位置,避免文件直接写到eMMC中,而在需要写入时,才写入到eMMC,避免了对eMMC的频繁写入又可以保证文件最终还是会存在eMMC中,延长了eMMC使用寿命。
非eMMC存储位置可以包含RAM或者ROM等,RAM(如内存)具有速度快的优点,则在本实施例中,所述非eMMC写入模块包括用于写入所述文件到内存中,则写入内存还可以提高系统的处理文件的速度。
所述一定条件可以是多种条件,如写入非eMMC存储位置的文件大小超过某一阈值或者是系统关机时。则eMMC写入模块42在满足一定条件时具体包括:在文件大小超过写入阈值时或者在关机指令被触发时。这样回写到eMMC可以减少等待时间并保证文件的安全。
进一步地,所述eMMC热点地址包括eMMC被频繁写入的地址。热点地址即是写入容易造成eMMC损坏的地址,则频繁的写入也是容易造成eMMC损坏的,则热点地址即包括eMMC被频繁写入的地址。对于这些地址的写入,本方案先缓存到内存中,避免了eMMC的频繁写入,延长了eMMC的寿命。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括……”或“包含……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的要素。此外,在本文中,“大于”、“小于”、“超过”等理解为不包括本数;“以上”、“以下”、“以内”等理解为包括本数。
本领域内的技术人员应明白,上述各实施例可提供为方法、装置、或计算机程序产品。这些实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。上述各实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法所述的全部或部分步骤。所述计算机设备,包括但不限于:个人计算机、服务器、通用计算机、专用计算机、网络设备、嵌入式设备、可编程设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等;所述的存储介质,包括但不限于:RAM、ROM、磁碟、磁带、光盘、闪存、U盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储等。
上述各实施例是参照根据实施例所述的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到计算机设备的处理器以产生一个机器,使得通过计算机设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机设备以特定方式工作的计算机设备可读存储器中,使得存储在该计算机设备可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机设备上,使得在计算机设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已经对上述各实施例进行了描述,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改,所以以上所述仅为本发明的实施例,并非因此限制本发明的专利保护范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围之内。