[0036] 下面结合图和具体的实施例对本发明作进一步的说明,但是不作为本发明的限定。
[0037] 随着半导体工艺的发展,嵌入式MASK ROM(即嵌入式MASK只读存储器)的面积越来越小,容量越来越大,可以用来存储越来越多的数据,而且MASK ROM的读取速度比NAND Flash(即NAND闪存)快,因此可以集成到EMMC/UFS控制器中,用来存储数据,从而提高EMMC/UFS卡的读取速度,如图4所示。
[0038] 加入嵌入式MASK ROM的EMMC/UFS卡的基本结构如图4所示,其中只示出EMMC的基本结构,两者基本结构相同,另外UFS卡上的存储器还包括NOR Flash或SD卡(即SD Card),这样的EMMC/UFS卡包括两种存储设备NAND Flash和嵌入式MASK ROM以及封装接口。因此我们可以将存储在NAND Flash中的用户的一部分数据放入嵌入式MASK ROM中(在本发明的实施例中,将后续加载的数据分为主数据以及相对于主数据的辅助数据,其中主数据包括移动终端设备的不同操作系统/系统级的应用程序的相同内容或非更新内容,其余内容均为辅助数据),比如操作系统和系统级的应用程序等数据,下面我们以操作系统为例分两个方面来说明这种方法的应用,系统级的应用程序情况相同,不再赘述。
[0039] 对于同一种操作系统来说(这里以andriod为例),我们分以下两个方面来说明:
[0040] 不同的andriod手机生产厂商,操作系统基本不同,但是它们肯定存在相同内容,比如内核,因此我们可以把这些相同的部分放入嵌入式MASK ROM中,这样当执行移动终端设备的操作系统时,可以直接从嵌入式MASK ROM中加载,而不用从NAND Flash中加载,而从嵌入式MASK ROM中加载的速度要比从NAND Flash中加载的速度快,因此可以提高系统的启动速度,提高用户体验。
[0041] 对于同一个andriod操作系统的手机生产厂商,每次更新操作系统时,操作系统中的某些特定的部分永远保持不变或者大部分时间都不更新(即非更新),因此我们可以将这些部分放入嵌入式MASK ROM中,由于这些部分永远不变或者大部分时间都不更新,这样会导致这些数据所在的存储块的擦写次数远远低于其他存储块,在均衡损耗算法下,这些部分所在存储块需要转移到其他擦写次数较高的存储块中,造成了不必要的擦写。本发明中将移动终端设备的不同操作系统/系统级的应用程序的相同内容或非更新内容放在嵌入式MASK ROM中,可以避免不必要的擦写,从而提高NAND Flash的性能。
[0042] 对于不同的操作系统,比如andriod,IOS,Windows Phone等,每种操作系统之间基本都不相同,但每一种操作系统都有上面提到的两个特点,因此当嵌入式MASK ROM容量足够大时,我们可以将每一种操作系统中的满足以上所述两点特性的数据内容都放入嵌入式MASK ROM中,如图5所示。假设andriod系统(即图5中第一系统)中满足以上所述两点特性的数据内容为A,IOS系统(即图5中第二系统)中满足以上所述两点特性的数据内容为B,我们把A和B这两部分内容都放入嵌入式MASK ROM中,这样如果EMMC/UFS卡用于andriod系统时,数据内容A被激活,其他部分不被激活,虽然有一定的冗余浪费,但是提高了andriod系统的启动速度,提高了EMMC/UFS读性能;如果EMMC/UFS卡用于IOS系统时,数据内容B被激活,其他部分不被激活,提高了IOS系统的启动速度,如果EMMC/UFS应用于其他操作系统,情况相同,不再赘述。这样无论以后EMMC/UFS卡应用于哪种操作系统,都可以提高系统的启动速度。
[0043] 如果EMMC/UFS卡中的嵌入式MASK ROM只用来存储一种操作系统(以andriod为例)中满足上述两点特性的数据内容,那么会有一定的局限性,因为嵌入式MASK ROM只存储andriod系统中的这些数据时,这些EMMC/UFS卡只能提高andriod系统的启动速度,对于其他操作系统来说并不能提高启动速度,因此会对这些只存储andriod系统中满足以上所述两点特性的数据的EMMC/UFS有一定的库存压力;而如果EMMC/UFS卡中的嵌入式的MASK ROM中存储有多种操作系统中满足上述两点特性的数据内容,例如andriod、IOS、Windows Phone等,那么EMMC/UFS用于andriod系统的智能设备时可以提高andriod系统的启动速度,用于IOS系统的智能设备时可以提高IOS系统的启动速度,用于Windows Phone系统的智能设备时可以提高Windows Phone的启动速度,因此只要EMMC/UFS卡的嵌入式MASK ROM中存储有相应操作系统的满足以上两点特性的数据,就可以提高相应系统的启动速度,而且嵌入式的MASK ROM的利用率也达到100%。
[0044] 一般情况下,操作系统或者系统级的应用程序存储在EMMC/UFS中的NAND Flash中,假设操作系统或者系统级的应用程序为数据X,满足以上所述两个特性的数据为数据Y,具体如图6所示,FTL中地址映射表中数据Y的地址为addr1,相应的地址映射表如表一所示:
[0045]
[0046] 表一
[0047] 当把满足以上两点特性的数据Y放入嵌入式的MASK ROM时,具体如图7所示,而FTL中的地址映射表的数据也要做相应的修改,此时FTL中地址映射表中数据Y的地址为addr2,相应的地址映射表如表二所示。
[0048]
[0049] 表二
[0050] 下面我们举两个例子分别说明以上两种情况。对于同一种操作系统来说(以andriod为例),这里我们以MIUI系统(即第三系统)和Flyme系统(即第四系统)为例,对于MIUI系统和Flyme系统来说,这些系统的内核都是由Google发布的标准andriod系统的内核Core_A(即内核A)所决定的,而对于MIUI系统或者Flyme系统来说,这些操作系统存在某些大部分时间都不更新的部分,假设MIUI系统大部分时间都不更新的内容为MIUI_A(即第三系统A),Flyme系统大部分时间都不更新的内容为Flyme_A(即第四系统A),一般情况下Core_A、MIUI_A和Flyme_A这些数据都存储于NAND Flash中,当读取这些数据的时候直接从NAND Flash中读取,本发明中我们把Core_A、MIUI_A和Flyme_A放入嵌入式的MASK ROM中,更新FTL中的地址映射表,并标记NAND Flash中的Core_A、MIUI_A、Flyme_A无效,这样当要读取这些部分时可以直接从嵌入式的MASK ROM中读取,从而提高了系统的启动的速度,如图8所示。
[0051] 对于不同的操作系统来说(以andriod和IOS为例),andriod系统和IOS系统基本都不相同,但是它们都有上文提到的两个特点,假设IOS系统的内核为Core_B(即内核B),大部分时间都不更新的部分为IOS_B(即第二系统B),对于andriod系统来说,我们在上面的例子中已经做了分析,对于IOS系统来说,我们也可以将IOS的内核Core_B和大部分时间都不更新的部分IOS_B放入嵌入式MASK ROM中,更新FTL中的地址映射表,标记NAND Flash中相应的部分无效。这样当EMMC/UFS应用于MIUI系统时,嵌入式MASK ROM中存储的Core_A和MIUI_A会被激活,其他部分不被激活;当EMMC/UFS应用于Flyme系统时,嵌入式MASK ROM中存储的Core_A和Flyme_A会被激活,其他部分不被激活;当EMMC/UFS应用于IOS系统时,嵌入式MASK ROM中存储的Core_B和IOS_B会被激活,其他部分不被激活,如图9所示,对于其他操作系统和andriod/IOS相同。
[0052] 因此,当操作系统或者系统级的应用程序满足以上两点特性的数据存储在嵌入式MASK ROM中时,则用于提高EMMC/UFS卡读取性能的步骤概括为:
[0053] 步骤S1、预先将若干具有不同操作系统(在本发明的实施例中,该不同的操作系统除了多种操作系统之外还包括具有部分不同内容的同一操作系统)的移动终端设备上电后需要加载的数据分为主数据和相对于主数据的辅助数据,并将主数据存储至嵌入式MASK ROM中,将辅助数据存储至NAND Flash中。
[0054] 步骤S2、当任一移动终端设备上电后,根据地址映射表判断移动终端设备需要加载的数据是否存储于嵌入式MASK ROM中,若是,则从嵌入式MASK ROM加载数据(从嵌入式MASK ROM中加载操作系统/系统级的应用程序到内存中,再从内存中加载到片上缓存中,由处理器执行),否则从NAND Flash加载数据,如图10所示。
[0055] 前面我们提到同一种操作系统在每次更新中有些部分永远保持不变或者大部分时间不更新,因此我们将这些部分放入嵌入式MASK ROM中,但是如果操作系统中这些大部分时间都不更新的部分在某次操作系统更新时发生了改变(即非更新内容转换为更新内容),而嵌入式MASK ROM是只可读不可写的,所以并不能重新往嵌入式MASK ROM里面写数据,所以这时就需要将更新内容写入NAND Flash中(有效内容),非更新内容仍然存储于嵌入式MASK ROM中,并重新更新FTL中的地址映射表,使存储于嵌入式MASK ROM中的非更新内容无效。下面我们举个例子说明。
[0056] 我们以IOS系统为例,假设IOS系统中大部分时间都不更新的部分为IOS_B(即第二系统B),IOS_B存储在EMMC/UFS的嵌入式MASK ROM中。假设IOS_B在某次操作系统更新时发生了变化,那么由于嵌入式的MASK ROM只可读不可写,所以更新的内容必须存储在NAND Flash中,同时更新FTL中的地址映射表,并标记嵌入式MASK ROM中的IOS_B无效,设置NAND Flash中的IOS_B有效,当要读取IOS_B时直接从NAND Flash中读取,具体如图11所示。
[0057] 综上所述,本发明公开了一种EMMC/UFS卡及其提高EMMC/UFS卡读性能的方法,通过在EMMC/UFS控制器芯片中加入一个嵌入式MASK只读存储器,并将具有不同操作系统的移动终端设备上电后需要加载的数据分为主数据和相对于主数据的辅助数据,数据存储至嵌入式MASK只读存储器中,辅助数据存储至NAND闪存中,当任一移动终端设备上电后,判断该移动终端设备需要加载的数据是否存储于嵌入式MASK只读存储器中,若是,则从嵌入式MASK只读存储器加载数据;因为从嵌入式MASK只读存储器中的读取数据的速度要比在NAND闪存中读取数据的速度快,从而提高移动终端设备系统的即时启动速度。
[0058] 本领域技术人员应该理解,本领域技术人员在结合现有技术以及上述实施例可以实现所述变化例,在此不做赘述。这样的变化例并不影响本发明的实质内容,在此不予赘述。
[0059] 以上对本发明的较佳实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,其中未尽详细描述的设备和结构应该理解为用本领域中的普通方式予以实施;任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例,这并不影响本发明的实质内容。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。