一种eMMC的开机优化方法及其装置制造方法

文档序号:6625804阅读:974来源:国知局
一种eMMC的开机优化方法及其装置制造方法
【专利摘要】本发明公开一种eMMC的开机优化方法及其装置,其中方法包括如下步骤:处理器发送预读取的数据的起始地址到eMMC的DMA控制器;处理器使能eMMC的命令寄存器;eMMC的DMA控制器在eMMC的命令寄存器被使能后根据处理器发送预读取的数据的起始地址将预读取的数据发送到内存;间隔预设的一段时间后,处理器去能eMMC的命令寄存器,DMA控制器停止发送;处理器从内存读取预读取的数据。本发明减少了读取文件的时间,达到了减少开机时间的目的,优化了开机效果。
【专利说明】一种eMMC的开机优化方法及其装置

【技术领域】
[0001]本发明涉及存储器优化【技术领域】,尤其涉及一种eMMC的开机优化方法及其装置。

【背景技术】
[0002]eMMC (Embedded Multi Media Card)为MMC协会所订立的、主要是针对手机或平板电脑等产品的内嵌式存储器标准规格,由一个嵌入式存储解决方案组成,带有MMC(多媒体卡)接口、快闪存储器设备及主控制器。eMMC的一个明显优势是在封装中集成了一个控制器,它提供标准接口并管理闪存,使得手机厂商就能专注于产品开发的其它部分,并缩短向市场推出产品的时间。越来越多的移动设备采用eMMC作为存储单元。
[0003]目前移动设备的操作系统,特别是安卓系统在开机阶段大量的时间用于从主存中读取数据到内存。这些数据包括了可执行程序、库文件和资源配置文件等,这些都是零散的小数据。操作系统开机时,CPU和内存都可以跑在一个比较高的频率,但是主要时间花销都在从主存设备中读取数据,这是目前瓶颈所在。正如我们桌面操作系统一样,硬盘读写数据才是瓶颈,内存和CPU都已经相对资源过剩了。最终造成使用eMMC的移动设备的开机时间相对较长。


【发明内容】

[0004]为此,需要提供一种eMMC的开机优化方案,解决现有采用eMMC的设备开机时间长的问题。
[0005]为实现上述目的,发明人提供了一种eMMC的开机优化方法,包括如下步骤:
[0006]处理器发送预读取的数据的起始地址到eMMC的DMA控制器;
[0007]处理器使能eMMC的命令寄存器;
[0008]eMMC的DMA控制器在eMMC的命令寄存器被使能后根据处理器发送预读取的数据的起始地址将预读取的数据发送到内存;
[0009]间隔预设的一段时间后,处理器去能eMMC的命令寄存器,DMA控制器停止发送;
[0010]处理器从内存读取预读取的数据。
[0011]进一步地,所述间隔预设的一段时间具体包括:
[0012]处理器设置预设的一段时间到定时器并使能定时器;
[0013]定时器在预设的一段时间到达后通知处理器。
[0014]进一步地,所述定时器在预设的一段时间到达后通知处理器包括:定时器在预设的一段时间到达后产生一个中断通知处理器。
[0015]进一步地,还包括如下步骤:处理器加载内存的数据并完成开机后,取消定时器。
[0016]进一步地,还包括如下步骤:处理器从内存读取预读取的数据后,将下次预读取的数据的起始地址发送到eMMC的DMA控制器。
[0017]以及发明人还提供一种eMMC的开机优化装置,包括:处理器、内存和eMMC,所述eMMC包括命令寄存器和DMA控制器,其中:
[0018]处理器用于发送预读取的数据的起始地址到eMMC的DMA控制器、使能eMMC的命令寄存器、在间隔预设的一段时间后去能eMMC的命令寄存器和从内存读取预读取的数据;
[0019]DMA控制器用于在eMMC的命令寄存器被使能后根据处理器发送预读取的数据的起始地址将预读取的数据发送到内存以及在eMMC的命令寄存器被去能时停止发送数据。
[0020]进一步地,还包括定时器;
[0021]所述处理器还用于设置预设的一段时间到定时器并使能定时器;
[0022]所述定时器用于在预设的一段时间到达后通知处理器。
[0023]进一步地,定时器用于在预设的一段时间到达后通知处理器具体包括:定时器用于在预设的一段时间到达后产生一个中断通知处理器。
[0024]进一步地,处理器还用于加载内存的数据并完成开机后,取消定时器。
[0025]进一步地,处理器还用于从内存读取预读取的数据后,将下次预读取的数据的起始地址发送到eMMC的DMA控制器。
[0026]区别于现有技术,上述技术方案通过处理器在DMA控制器的预读取设置,加快了数据从eMMC到内存的速度,从而加快了处理器加载的速度,缩短了处理器开机的时间,提闻用户体验

【专利附图】

【附图说明】
[0027]图1为本发明的方法实施例的流程图;
[0028]图2为本发明的装置实施例的示意图。
[0029]附图标记说明:
[0030]1、处理器;
[0031]2、eMMC;
[0032]3、内存。

【具体实施方式】
[0033]为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
[0034]请参阅图1,本实施例提供一种eMMC的开机优化方法,可运行于具有处理器1、eMMC2以及内存3的装置(如图2所示)上,处理器1、eMMC2、内存3三者间两两连接。处理器I可以是现有的CPU、MCU等。eMMC2存储有处理器I开机所需要的数据,如可执行文件、库文件和配置资源等。处理器I上电开机时需要读取这些开机所需的数据到内存3(如DDR内存)中,而后从内存3加载这些数据并完成开机。eMMC2包含有eMMC控制器以及eMMC存储颗粒,eMMC控制器用于接受处理器I的控制将文件或数据存储到eMMC存储颗粒或者从eMMC存储颗粒将存储的文件或数据读出并发送给处理器I或内存3。eMMC控制器包含有DMA控制器和命令寄存器。DMA (Direct Memory Access)控制器为直接内存存取控制器,通过处理器I的设置后,DMA控制器可以完成自动的数据迁移,如将数据从eMMC存储颗粒读出并发送到内存3。命令寄存器在被使能(enable)或去能(disable)时,DMA控制器相应地工作或不工作,即通过设置命令寄存器可以控制DMA控制器的工作与否。
[0035]在某一实施例中,eMMC的开机优化方法在上电开机后,包括如下步骤:在步骤SlOl中处理器发送预读取的数据的起始地址到eMMC的DMA控制器。预读取的数据的起始地址即开机所需要的数据的地址,这个数据地址是开机所需要数据或者开机所需要的部分数据在eMMC存储颗粒中的地址。而后,进入步骤S102处理器使能eMMC的命令寄存器,具体的使能方式可以是处理器发送一个使能命令到命令寄存器。eMMC的命令寄存器被使能后,则进入步骤S103中eMMC的DMA控制器在eMMC的命令寄存器被使能后根据处理器发送预读取的数据的起始地址将预读取的数据发送到内存,即DMA控制器将开机所需要的数据发送到内存中。在步骤S104间隔预设的一段时间后,处理器去能eMMC的命令寄存器,DMA控制器停止发送,则此时内存存储有处理器预读取的数据,而后在步骤S105处理器从内存读取预读取的数据。
[0036]具体地,处理器在送预读取的数据的起始地址到DMA控制器时并不需要指定读取的数据长度,则在预设的一段时间内,DMA控制器会不断将起始地址的数据以及起始地址接下来的地址的数据发送到内存。处理器从内存读取预读取的数据可以完成开机操作。当然,在某些实施例中,处理器也可以指定读取的数据长度到DMA控制器,只要使得DMA控制器能将预读取的数据读出即可。以下结合实施例对本方法的效果进行说明,如图2所示,假设预读取的数据的起始地址为A,经过本方法后,DMA控制器将A到G的一段数据全部存储到内存中,但是其中包含有不需要的数据(即本次无用数据)如地址B到地址C所对应的数据,地址F到地址G所对应的数据。本次读取只需要一次的协议头和协议尾的耗时,而不需要每次读取地址A、D、E造成的三次协议头和协议尾的耗时,减少了协议头和协议尾的开销,同时通过DMA控制器的自动数据读取和发送,虽然有无用的数据被读出,但是时间上还是减少了,特别在数据量大的情况下,则DMA控制器数据迁移优势会更加明显,使得数据读取时间大大缩短,从而减少了开机时间,达到开机优化目的。
[0037]特别地,本发明人在创造本发明的过程中,发现目前操作系统开机启动阶段预读取的数据,这些数据相当部分是零散小数据,具有阶段连续性(即某些零散小数据之间地址相对集中,整个启动阶段有非常多个这种地址相对集中的区间,我们称这种数据排布方式为阶段连续性)。如果分次去读取这些零散小数据,那每次读取的协议头和协议尾所需要的时间将是装置开机耗时中的很大一部分,通过本方法可以将这些相对集中的数据一次性发送到内存中,避免了大量的协议头和协议尾的耗时,减少了数据读取的时间,从而减少了开机时间,优化了开机过程,提高了用户体验。
[0038]本方法中预设的一段时间可以根据想要读取的数据量的大小进行设定,在数据量大时,预设的一段时间相应地长,从而使得DMA控制器可以发到更多的数据到内存中。在这一预设的一段时间在计时时,处理器可以完成开机的其他工作,如模块初始化、驱动等,可更加充分地利用开机时间。处理器实现一个预设的一段时间具有多种实施方式,如可以通过循环地判断实时时钟的方式实现或是计数的方式实现。在某一实施例中,为了使得处理器可以充分地利用处理器资源,计时可以通过定时器(timer)实现,则步骤S104中间隔预设的一段时间具体包括:处理器设置预设的一段时间到定时器并使能定时器,定时器在预设的一段时间到达后通知处理器。如处理器可以设置N毫秒到定时器,而后使能定时器,定时器开始计时。N毫秒的计时时间到达后,定时器发送一个指令到处理器,通知处理器计时时间已到,则处理器去能命令寄存器,使得DMA控制器不再进行数据读取和发送工作。而后处理器可以在内存中读取DMA控制器已经发送到内存中的数据。
[0039]通过定时器计时,处理器只需在定时时间到达后才进行接下来的去能命令寄存器的操作,节省了处理器需要去计时所需要的资源消耗,从而可以将这些资源用在开机其他处理过程中,达到更加充分利用开机时间的目的。在某些实施例中,定时器的通知方式可以采用中断进行通知,则定时器在预设的一段时间到达后通知处理器的步骤包括:定时器在预设的一段时间到达后产生一个中断通知处理器。则处理器去能命令寄存器的操作可以使用一个中断服务程序实现,当处理器接收到定时器的中断时,进入中断服务程序去能命令寄存器,则DMA控制器停止发送eMMC存储颗粒的数据到内存中。处理器在使用中断情况下可以更好地利用处理器资源。
[0040]以及在某些实施例中还包括如下步骤:步骤S106处理器加载内存的数据并完成开机后,取消定时器,即处理器在开机完成后释放出定时器资源。开机完成的标志可以是处理器完成了开机所需模块的初始化以及加载了开机所需的程序。
[0041]开机所需数据可能是集中地存在多个存储区域,则处理器可能需要完成多次的预读取数据的起始地址的发送和使能去能命令寄存器,即在步骤S105后还包括如下步骤:处理器从内存读取预读取的数据后,将下次预读取的数据的起始地址发送到eMMC的DMA控制器。开机完成前,DMA控制器会多次将不同的预读取的数据发送到内存中去。则在本实施例的方法完成后,可以进入步骤S106取消定时器。在某些实施例中,开机所需数据可能是存储在某些固定存储区域,如系统文件的存储区域不会有大的改变,比较固定。也有可能是存储在某些不固定的区域,如后续安装的开机启动所需的驱动或插件,这些数据可能随着当前系统的状态的改变而不同。则本方法还可以在开机后,处理器将开机所需的数据(即预读取的数据)的起始地址以及预设的一段时间都存放为一个开机文件(如数据表),而后在下次开机时读取开机文件,获取开机文件中的起始地址和预设的一段时间,将开机文件的预读取的数据的起始地址发送到eMMC的DMA控制器,以及之后步骤S104间隔的预设的一段时间也使用开机文件中的预设的一段时间。通过这样的方式,处理器可以根据当前的系统状态对开机文件进行调整,在下次开机时可以更加准确地针对开机所需的文件进行读取,节省开机的时间。
[0042]以及发明人还提供一种eMMC的开机优化装置,如图2所示,包括:处理器1、内存3和eMMC2,eMMC2包括命令寄存器和DMA控制器,命令寄存器和DMA控制器可以放置在eMMC控制器中,其中:处理器I用于发送预读取的数据的起始地址到eMMC2的DMA控制器,这个数据流向可以参考如图2中的指示①。处理器I还用于使能eMMC2的命令寄存器、在间隔预设的一段时间后去能eMMC2的命令寄存器,即处理器I可以用于使能去能命令寄存器,这个数据流向可以参考指示②。处理器I还用于从内存3读取预读取的数据,这个数据流向如指示⑥所示。
[0043]以及DMA控制器用于在eMMC2的命令寄存器被使能后根据处理器发送预读取的数据的起始地址将预读取的数据发送到内存,如指示④。DMA控制器还用于在eMMC的命令寄存器被去能时停止发送数据。则本装置在开机读取数据的过程中,可以一次性将大量的数据发送到内存中,只需要一次的协议头和协议尾的耗时,避免了多次对数据进行读取而需要大量的协议头和协议尾的耗时,减少了数据发送时间,加快了开机速度。例如,预读取的数据为IMB数据,如果按照一次IKB进行读取,需要启动协议通讯1024次,即有1024次的协议头尾开销的耗时,采用本方法后一次就直接读取1M,只需要一次协议头尾的耗时。
[0044]为了充分地利用处理器资源,在某些实施例中,本装置还包括用于计时的定时器;则处理器I还用于设置预设的一段时间到定时器并使能定时器,如图2的指示③所示,定时器在使能后会开始计时,定时器用于在预设的一段时间到达后通知处理器1,如图2的指示⑤所示。处理器I接收到定时器的通知后则进入去能命令寄存器的步骤。
[0045]在某些实施例中,定时器通知处理器I的方式可以采用中断的方式,则定时器用于在预设的一段时间到达后通知处理器I具体包括:定时器用于在预设的一段时间到达后产生一个中断通知处理器I。则去能命令寄存器步骤可以放在一个中断服务程序中实现,处理器I在接收到中断后会进入中断服务程序中对命令寄存器进行去能。
[0046]为了释放资源,在某些实施例中,处理器I还用于加载内存的数据并完成开机后,取消定时器。开机完成后,处理器I可以进入常规的读取eMMC的模式,即处理器发送预读取数据的数据块个数和数据块起始地址到eMMC控制器,eMMC控制器会将数据读取出来并返回给处理器I。比如处理器希望读取长度为512bytes的数据,该eMMC的每个数据块(block)数据长度为128bytes,那么处理器此次就需要读取4个数据块的数据,即发送的数据块个数为4,同时还要发送512bytes的起始地址到eMMC。常规的读取eMMC的模式并不需要定时器,则可以释放定时器资源,当然,在需要定时器时,可以再次设置并使能定时器。
[0047]当读取完成后还有需要再次预读取的数据时,处理器I还用于从内存3读取预读取的数据后,将下次预读取的数据的起始地址发送到eMMC的DMA控制器。即再次进入上述的步骤S101-S105过程。在每次步骤S104的间隔预设的一段时间的等待过程中,处理器I都可以进行其他的操作,如初始化模块、配置寄存器、运行内存中的数据等,这样可以充分地利用开机时间,达到节省开机时间、优化开机过程的目的。
[0048]需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括……”或“包含……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的要素。此夕卜,在本文中,“大于”、“小于”、“超过”等理解为不包括本数;“以上”、“以下”、“以内”等理解为包括本数。
[0049]本领域内的技术人员应明白,上述各实施例可提供为方法、装置、或计算机程序产品。这些实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。上述各实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法所述的全部或部分步骤。所述计算机设备,包括但不限于:个人计算机、服务器、通用计算机、专用计算机、网络设备、嵌入式设备、可编程设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等;所述的存储介质,包括但不限于:RAM、ROM、磁碟、磁带、光盘、闪存、U盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储等。
[0050]上述各实施例是参照根据实施例所述的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到计算机设备的处理器以产生一个机器,使得通过计算机设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0051]这些计算机程序指令也可存储在能引导计算机设备以特定方式工作的计算机设备可读存储器中,使得存储在该计算机设备可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0052]这些计算机程序指令也可装载到计算机设备上,使得在计算机设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0053]尽管已经对上述各实施例进行了描述,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改,所以以上所述仅为本发明的实施例,并非因此限制本发明的专利保护范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的【技术领域】,均同理包括在本发明的专利保护范围之内。
【权利要求】
1.一种eMMC的开机优化方法,其特征在于,包括如下步骤: 处理器发送预读取的数据的起始地址到eMMC的DMA控制器; 处理器使能eMMC的命令寄存器; eMMC的DMA控制器在eMMC的命令寄存器被使能后根据处理器发送预读取的数据的起始地址将预读取的数据发送到内存; 间隔预设的一段时间后,处理器去能eMMC的命令寄存器,DMA控制器停止发送; 处理器从内存读取预读取的数据。
2.根据权利要求1所述的eMMC的开机优化方法,其特征在于:所述间隔预设的一段时间具体包括: 处理器设置预设的一段时间到定时器并使能定时器; 定时器在预设的一段时间到达后通知处理器。
3.根据权利要求2所述的eMMC的开机优化方法,其特征在于:所述定时器在预设的一段时间到达后通知处理器包括:定时器在预设的一段时间到达后产生一个中断通知处理器。
4.根据权利要求2或3所述的eMMC的开机优化方法,其特征在于:还包括如下步骤:处理器加载内存的数据并完成开机后,取消定时器。
5.根据权利要求1所述的eMMC的开机优化方法,其特征在于:还包括如下步骤:处理器从内存读取预读取的数据后,将下次预读取的数据的起始地址发送到eMMC的DMA控制器。
6.一种eMMC的开机优化装置,其特征在于,包括:处理器、内存和eMMC,所述eMMC包括命令寄存器和DMA控制器,其中: 处理器用于发送预读取的数据的起始地址到eMMC的DMA控制器、使能eMMC的命令寄存器、在间隔预设的一段时间后去能eMMC的命令寄存器和从内存读取预读取的数据; DMA控制器用于在eMMC的命令寄存器被使能后根据处理器发送预读取的数据的起始地址将预读取的数据发送到内存以及在eMMC的命令寄存器被去能时停止发送数据。
7.根据权利要求6所述的eMMC的开机优化装置,其特征在于:还包括定时器; 所述处理器还用于设置预设的一段时间到定时器并使能定时器; 所述定时器用于在预设的一段时间到达后通知处理器。
8.根据权利要求7所述的eMMC的开机优化装置,其特征在于:定时器用于在预设的一段时间到达后通知处理器具体包括:定时器用于在预设的一段时间到达后产生一个中断通知处理器。
9.根据权利要求7或8所述的eMMC的开机优化装置,其特征在于:处理器还用于加载内存的数据并完成开机后,取消定时器。
10.根据权利要求6所述的eMMC的开机优化装置,其特征在于:处理器还用于从内存读取预读取的数据后,将下次预读取的数据的起始地址发送到eMMC的DMA控制器。
【文档编号】G06F9/445GK104182264SQ201410445725
【公开日】2014年12月3日 申请日期:2014年9月3日 优先权日:2014年9月3日
【发明者】林涛 申请人:福州瑞芯微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1