背景技术
通常称作“快闪”存储器的非易失性固态存储器技术的普及近年来已大幅提高。快闪存储器通常是指电可擦除半导体存储器,其可以相对小的区块而非基于整个芯片或如常规电可擦除可编程只读存储器(EEPROM)装置中一样以相对大的区块进行擦除并重写。快闪存储器在应用(其中所存储数据的非易失性(意即,断电之后数据得以保留)是必要的,但其中重写频率相对较低)已变得尤其普遍。快闪存储器的普遍应用的实例包括便携式音频播放器、蜂窝式电话手持机中的电话号码和电话行为的“订户身份模块(SIM)”卡存储、计算机和工作站的“拇指键”可移除存储装置、数码相机的存储装置等。
典型常规快闪存储器产品被有效地布置为“芯片组”,其由包括具有一个或一个以上装置(或“阵列”)形式的快闪存储器存储资源的一个或一个以上集成电路和充当所述快闪存储器产品的存储器控制器的集成电路组成。快闪存储器阵列可布置为所谓的或非(NOR)快闪存储器(其中个别存储器单元可随机存取)或所谓的与非(NAND)快闪存储器(其中存储器的页或区块必须依序存取)。如此项技术中所已知,这些快闪存储器布置的每一者具有优点和缺点。举例来说,NOR快闪存储器尤其有利于小容量代码存储,而NAND快闪存储器对于例如音频播放器和数码相机的高容量数据存储尤其有用。近年来,多级单元(MLC)快闪存储器的使用已变得流行,尤其在NAND快闪存储器中,在MLC快闪存储器中,每一快闪存储器单元可存储多位数据值(通常为两个位值,存储为四种可能状态之一)。
根据一个典型布置,快闪存储器作为含有快闪存储器资源和安装于卡上的子系统控制器的快闪存储器子系统来制造并售卖。这些子系统的实例包括众所周知的致密快闪(CF)卡、安全数字(SD)卡和多媒体卡。图1以方框图形式说明示范性常规快闪存储器系统2。在此布置中,多个快闪存储器装置(“阵列”)12经由快闪媒体接口FMI连接到子系统控制器10,所述接口FMI通常为传送来自子系统控制器10的物理地址信号和控制信号且与装置12双向传送数据的总线。子系统控制器10通过接口总线IF连接到连接器C。如此项技术中所众所周知,快闪存储器系统2可插入到例如相机、计算机、音频播放器等的主机装置中或以其它方式通过连接器C连接到所述主机装置。连接器C和接口总线IF根据实施和实现快闪存储器系统2所依据的特定标准来布置(例如,如CF卡、SD卡或多媒体卡)。
在其它已知布置(例如,智慧媒体卡)中,快闪存储器系统不包括子系统控制器。在这些布置中,以类似方式参看图1,快闪媒体接口FMI连接到位于快闪存储器系统外部的控制器,例如包括在利用所述快闪存储器的主机装置(例如,相机)中的控制器。
通常,直到常规快闪存储器阵列被装配到卡中之后,其也未被格式化或初始化(也许以芯片测试级确立的缺陷区块的标记除外)。快闪存储器初始化通常包括如根据文件系统来格式化阵列、产生缺陷映射以使得在使用时避免物理缺陷存储器位置、存储器阵列的低级用户区域格式化、加载可由使用所述快闪存储器系统和其中实施所述子系统控制器的所述系统的系统执行的应用软件的光盘图像、下载固件和操作参数、微调本机振荡器频率等。初始化过程的结果为快闪存储器系统,其中可在对应于来自主机系统的逻辑地址的物理位置处写入并读取数据。另外,预期如果物理存储器的一部分有缺陷或如果将为附加应用程序存储额外的光盘图像数据,则快闪存储器系统的配置也可在操作期间更新。
一般来说,快闪存储器资源的初始化通常是由快闪存储器系统制造商来执行,此通常在快闪存储器装置12和子系统控制器10以常规方式安装到最终系统板上且因此互连之后进行。如图2所示,举例来说,在快闪存储器系统2制造之后,其经由连接器C和测试电缆DUT_CBL连接到测试器TSTR。测试器TSTR将经由测试电缆DUT_CBL和连接器C与快闪存储器系统2通信,以确保快闪存储器系统2中的电连接的连续性,确保连接器C的端子的恰当DC行为,且执行某些可在快闪存储器装置12的初始化之前执行的基本功能测试。另外,如此项技术中所已知,测试器TSTR通常可将诊断命令施加到快闪存储器系统2(具体来说是施加到控制器10),以用于测试快闪存储器系统2(包括其快闪存储器装置12)的功能性,并用于初始化快闪存储器系统2。如上文所提及,快闪存储器系统2的常规初始化包括:格式化并配置快闪存储器装置12的快闪存储器资源,检测并记录快闪存储器装置12的物理缺陷存储器位置,将控制程序(“固件”)加载到控制器10中(例如,加载到嵌入在控制器10内的NOR快闪存储器中),且将具有DOS或光盘图像形式的应用软件加载到适用于既定应用程序中的快闪存储器装置12中。此应用软件的实例包括数据加密软件、损耗平衡算法和可由控制器10执行的类似者。
然而,近来,快闪存储器存储装置已变得需要与许多新应用程序(包括那些受控于所谓的“系统单芯片”或“SOC”的应用程序)结合使用。在这些预期的SOC应用程序中,单个集成电路集成了中央处理单元(CPU)、其系统存储器(RAM和ROM)、标准接口功能(例如,USB、串行I/O等)和用于系统中的其它外围装置。如当前所配置,为了利用快闪存储器的非易失性可重写存储特征,使用快闪存储器的消费者装置的SOC架构也用从SOC到快闪存储器装置的外部接口将快闪存储器子系统控制器集成到SOC中。图3说明现将描述的使用快闪存储器的基于SOC架构的此类常规布置。
如图3所示,SOC 20与快闪存储器35介接,所述存储器通常经由常规快闪存储器接口NAND_IF布置为一个或一个以上NAND快闪存储器装置(当然,虽然可改为使用NOR快闪存储器)。在此布置中,在SOC 20内实现快闪存储器子系统控制器29,而非作为以上图1中所描述的快闪存储器子系统的一部分。SOC 20实际上是系统单芯片,且同样包括CPU 22和各种系统功能,例如系统ROM 24、系统RAM 26和标准接口30(例如,USB、SCSI、RS-232或其它接口),CPU 22经由如图3所示的常规总线CPU_BUS连接到所述系统功能。其它外围装置也可包括在SOC 20内,且经由总线桥接器28和外围总线PER_BUS与CPU 22通信。在图3的实例中,一个这种外围装置是子系统控制器29,其通过在外围总线PER_BUS与子系统控制器29之间转译信号的标准接口27A、27B耦合到外围总线PER_BUS;此转译使常规子系统控制器29能够容易地实施在SOC 29内而无需大批的重新设计。同样,SOC 22可容易地以将快闪存储器35用作类似于光盘存储器的非易失性存储器的方式操作。举例来说,在快闪存储器35上可保持大量数据存储,也可保持应用程序。举例来说,存储在快闪存储器35上的应用程序可以与在较大系统中从光盘存储器调用并加载应用程序的方式非常相同的方式经由子系统控制器29(和总线PER_BUS、CPU_BUS和各种接口和桥接器)而加载到系统RAM 26中以由CPU 22执行。类似地,数据可通过子系统控制器29由CPU 22从快闪存储器35存储并存取。
遗憾的是,常规初始化方法不可容易地初始化成此配置的快闪存储器35,在此配置中子系统控制器29与快闪存储器分开且嵌入于SOC 20内。明确来说,除了通过相应子系统控制器(例如予系统控制器29)外,快闪存储器35的某些部分是不可存取的,且快闪存储器35的这些“系统”部分恰是初始化过程所涉及的。然而,在初始化之前,在图3的常规SOC布置中,对于快闪存储器35的初始化来说,子系统控制器29是不可存取的。图3说明结合本发明而假想的用以初始化SOC配置中的快闪存储器35的强力方法,通过所述方法测试器TSTR经由专用总线SPC_BUS连接到快闪存储器35的专门设计的接口且经由此接口执行诊断命令以实现初始化。然而,此假想方法需要创建专用测试硬件(测试器TSTR和专用总线SPC_BUS),以及创建到快闪存储器35中的专用接口,此两者皆增加系统制造和生产的实质成本,且将限制系统可配置和初始化的灵活性。
通过其它背景,第6,009,496号美国专利描述具有嵌入式快闪存储器的微控制器架构,其中机载微处理器执行存储在板上只读存储器中的重编程控制常规程序,以重编程所述嵌入式快闪存储器。此第6,009,496号美国专利也揭示,所述微控制器系统在重新制造时可手动地设定为此重编程模式,在此情况下所述微处理器执行来自板上ROM的重编程控制常规程序,以利用经由外部接口接收的数据编程所述嵌入式快闪存储器。
发明内容
因此,本发明的目的是提供一种方法和系统,其用于初始化具有集成快闪存储器子系统控制器的系统单芯片(SOC)型系统的快闪存储器子系统。
本发明的另一目的是提供可将常规测试硬件用于所述初始化的此种方法和系统。
本发明的另一目的是提供此种方法和系统,其中SOC硬件根本上无需重新布置以提供所述初始化。
本发明的一个方面在于提供一种初始化一数字系统的非易失性存储器子系统的方法,所述方法包含以下步骤:执行所述数字系统的非易失性存储器子系统的初始化序列,其中所述数字系统包括系统单芯片集成电路,所述系统单芯片集成电路包括中央处理单元、不同于所述中央处理单元的嵌入式非易失性存储器子系统控制器、以及外部接口,所述初始化序列包括用以开放所述系统单芯片集成电路的所述外部接口与所述系统单芯片集成电路的所述嵌入式非易失性存储器子系统控制器之间的通信信道的命令;以及根据施加到所述外部接口且经由所述通信信道传送到所述嵌入式非易失性存储器子系统控制器的初始化命令,初始化所述数字系统中的一个或一个以上非易失性存储器阵列。
优选地,所述方法进一步包含:经由所述外部接口下载一个或一个以上初始化指令;其中执行所述初始化序列包含:执行所述下载的一个或一个以上初始化指令。
优选地,其中所述系统单芯片集成电路还包括存储一个或一个以上初始化指令的系统程序存储器,其中执行所述初始化序列包含:操作所述系统单芯片集成电路的所述中央处理单元,以执行存储在所述系统程序存储器中的一个或一个以上初始化指令。
优选地,其中初始化一个或一个以上非易失性存储器阵列包含:根据文件系统格式化所述一个或一个以上非易失性存储器阵列。
优选地,其中初始化一个或一个以上非易失性存储器阵列包含:将可由所述中央处理单元执行的应用软件程序加载到所述一个或一个以上非易失性存储器阵列中。
优选地,其中初始化一个或一个以上非易失性存储器阵列进一步包含:将应用程序数据预先加载到所述一个或一个以上非易失性存储器阵列中。
优选地,其中初始化一个或一个以上非易失性存储器阵列包含:更新用于所述嵌入式非易失性存储器子系统控制器的系统固件。
优选地,其中所述系统单芯片集成电路进一步包含系统随机存取存储器,且其中下载一个或一个以上初始化指令包含:将所述一个或一个以上初始化指令存储在所述系统随机存取存储器中;且其中执行所述非易失性存储器子系统的初始化序列包含:从所述系统随机存取存储器检索所述一个或一个以上初始化指令;和执行所述检索的一个或一个以上初始化指令。
优选地,其中所述系统单芯片集成电路进一步包含系统只读存储器;且所述方法进一步包含:使所述系统单芯片集成电路的所述中央处理单元加电;以及通过所述中央处理单元执行存储在所述系统只读存储器中的至少一个引导序列指令,以询问所述一个或一个以上非易失性存储器阵列,以检测是否驻留有应用程序;其中响应于确定应用程序未驻留在所述一个或一个以上非易失性存储器阵列中,执行所述下载步骤。
优选地,所述方法进一步包含:响应于确定应用程序驻留在所述一个或一个以上非易失性存储器阵列中,通过所述中央处理单元执行所述应用程序。
优选地,其中所述一个或一个以上非易失性存储器阵列包含一个或一个以上快闪存储器阵列。
优选地,所述方法进一步包含:将主机系统连接到所述外部接口;其中所述主机系统经由所述外部接口执行所述初始化步骤。
本发明的另一方面在于提供一种数字系统,该系统包括系统单芯片集成电路和一个或一个以上非易失性存储器阵列,其中系统单芯片集成电路包含:中央处理单元;存储器子系统控制器;以及外部接口。一个或一个以上非易失性存储器阵列耦合到所述存储器子系统控制器。其中所述中央处理单元经编程以询问所述一个或一个以上非易失性存储器阵列,以确定应用程序是否驻留在所述一个或一个以上非易失性存储器阵列中,且响应于确定应用程序未驻留在所述一个或一个以上非易失性存储器阵列中,执行初始化命令以使得所述中央处理单元经由所述外部接口下载初始化指令至所述存储器子系统控制器,且执行所下载的初始化指令以开放所述外部接口与所述存储器子系统控制器之间的通信信道,从而初始化所述一个或一个以上非易失性存储器阵列。
优选地,所述数字系统进一步包含:耦合到所述中央处理单元的系统随机存取存储器,以用于存储所述下载的可执行指令。
优选地,其中所述下载的可执行指令包含一个或一个以上指令的序列,其可由所述中央处理单元执行以用于开放所述外部接口与所述存储器子系统控制器之间的通信信道。
优选地,所述数字系统进一步包含:耦合到所述中央处理单元的系统只读存储器,其用于存储可由所述中央处理单元执行的引导序列指令,所述引导序列指令包含用于询问所述一个或一个以上非易失性存储器阵列以确定应用程序是否驻留在所述一个或一个以上非易失性存储器阵列中的指令。
优选地,其中所述引导序列指令进一步包含用于响应于确定应用程序未驻留在所述一个或一个以上非易失性存储器阵列中,经由所述外部接口下载可执行指令的指令。
优选地,其中所述中央处理单元也经编程以响应于确定应用程序未驻留在所述一个或一个以上非易失性存储器阵列中,从所述系统只读存储器检索所述初始化指令。
优选地,其中所述外部接口是根据工业标准接口协议而建构。
优选地,其中所述一个或一个以上非易失性存储器阵列包含一个或一个以上快闪存储器阵列。
优选地,其中所述系统单芯片集成电路进一步包含:系统总线,其将所述存储器子系统控制器耦合到所述中央处理单元;以及接口电路,其用于将所述系统总线耦合到所述存储器子系统控制器的接口,所述存储器子系统控制器的所述接口是标准的快闪存储器接口。
优选地,所述数字系统进一步包含:耦合到所述系统单芯片集成电路的至少一个外围功能。
优选地,其中所述至少一个外围功能包含:音频输出接口。
优选地,其中所述至少一个外围功能包含:用户输入元件;以及显示器。
所属领域的技术人员将参看下文说明书连同其图式来明白本发明的其它目的和优点。
本发明可实施到系统单芯片(SOC)架构中,在所述架构中SOC的标准外部接口制成为外部测试硬件可进行存取。当由CPU执行可执行初始化程序(其是从外部测试硬件下载到SOC的系统存储器中或已存在于系统ROM中)时,所述可执行的初始化程序将开放外部测试硬件与SOC中的快闪存储器子系统控制器之间的通信信道。此通信信道使外部测试硬件能够经由子系统控制器实现快闪存储器的初始化、准备快闪存储器以供SOC使用、将SOC应用程序加载到快闪存储器上等。
具体实施方式
本发明将结合其优选实施例加以描述,即实施为一种利用测试硬件来初始化由系统单芯片(SOC)使用的快闪存储器的系统和方法,SOC包括例如数字音频播放器(DAP)的快闪存储器子系统控制器。选择本发明的此特定示范性实施例是因为:本发明在以此种布置利用时将尤其有益。然而,也预期本发明的益处也可应用于快闪存储器系统的其它架构和实施方案。因此,应了解,仅以举例方式提供下列描述,且所述描述不欲限制所主张的本发明的真实范畴。
图4参考数字系统60说明本发明的优选实施例的示范性实施例。此实例中的系统60对应于数字音频播放器(DAP),假定其包括特定外围装置。当然,参考本说明书的所属领域的技术人员将容易地认识到,系统60可期望用于许多功能的任一者,此主要由所述系统执行的系统软件和其外围设备的布置来确定。这些其它数字系统的实例包括:例如无线电话手持机、无线电子邮件系统(例如,黑莓(BLACKBERRY)装置)的通信系统、数字音频录音机、电子计算器、例如对编录控制或传递业务有用的手持式计算系统(意即,“掌上型计算机”装置)等。根据本发明的优选实施例,数字系统60是基于系统单芯片(“SOC”)40,其实质上具体化单个集成电路内的所有基本系统功能。在此实例中,SOC 40包括中央处理单元(CPU)42,其为数字系统60的主要计算组件。CPU 42优选是通过执行软件指令来操作的通用或专用微处理器或微计算机,所述指令(例如)存储在系统ROM 44、系统RAM 46(一旦SOC 40启动)中且在其初始化之后存储在快闪存储器55中。结合本发明,预期由CPU 42执行的功能包括通过SOC 40中的各种总线传送的命令或通过至所述功能的控制信号线(图4中未展示)来控制SOC 40内的各种其它功能。
在此示范性架构中,CPU 42通过系统总线CPU_BUS连接到系统只读存储器(ROM)44和系统随机存取存储器(RAM)46。用于实现系统ROM 44和系统RAM 46的特定尺寸、架构和技术将取决于用于集成SOC 40的可用技术以及所需性能和可靠性特征。预期参考本说明书的所属领域的技术人员将能够容易地实现每一特定安装的这些存储器功能。在此示范性架构中,其它功能也驻留在系统总线CPU_BUS上,包括标准接口50和总线桥接器48。
标准接口50是常规的接口功能,其提供必需的信号转换、缓冲和其它功能性以用于支持CPU 42与一侧上的系统总线CPU_BUS的其它驻留部件之间的通信以及CPU 42与另一侧上的外部装置或系统之间的通信。标准接口50在优选根据工业标准接口协议而建构且操作的意义上是“标准”的。这些接口协议的实例包括通用串行总线(USB)1.1和2.0接口、IEEE 1394(或“火线”)接口,例如众所周知的RS-232和SCSI接口的串行接口和其类似者。在系统60的现代实施方案中,尤其在对应于数字音频播放器时,标准接口50通常将遵循USB或IEEE 1394接口标准。如DAP技术中所已知,主机计算机与DAP之间的音频文件(且,最近为相片和其它数据)的同步,以及DAP中的电池的可能充电通常经由USB 2.0或IEEE 1394接口进行。在图4的实例中,标准接口50是USB 2.0接口且同样通过USB连接USB_2连接到主机系统HOST。
如上文所提及且如图4所示,总线桥接器48也驻留在系统总线CPU_BUS上。在此实例中,总线桥接器48是将系统总线CPU_BUS耦合到外围总线PER_BUS的常规总线接口。SOC 40外部的各种外围设备通过适当外部连接器和电路板导体而驻留在外围总线PER_BUS上。在系统60的此实例中,对应于DAP,外围总线PER_BUS的驻留部件包括SD快闪存储器接口51、LCD显示器53、例如键、按钮、开关等的各种输入元件55和音频输出接口57。
根据本发明的优选实施例,标准接口功能47A也驻留在外围总线PER_BUS上。接口功能47A与通过快闪存储器子系统控制器49实现或作为所述控制器的一部分的接口功能47B通信。根据本发明的此实施例,标准接口功能47A、47B和子系统控制器49皆被集成到SOC 40中。为促进子系统控制器49的建构和设计,标准接口47B可对应于在常规快闪存储器系统(例如,如图1所示)中所使用的常规安全数字(SD)接口,在此情况下标准接口功能47A是常规转译器功能,以如所示地将来自SD接口的信号转译到外围总线PER_BUS。在此布置中,需要任何额外电路设计以将子系统控制器49和标准接口47B集成到SOC 40中的情况很少。或者,当然,子系统控制器49可经建构以便其直接与外围总线PER_BUS介接,或在替代方案中另外经建构以便其直接与系统总线CPU_BUS介接(从而避免总线桥接器48的中间功能)。预期参考本说明书的所属领域的技术人员将明白这些和其它架构变体。
在本发明的此实施例中,集成于SOC 40内的子系统控制器49连接到快闪存储器接口NAND_IF,快闪存储器55连接(或可连接)到所述接口NAND_IF。SOC 40内的集成子系统控制器49也时常被称作“嵌入式”控制器。预期快闪存储器接口NAND_IF是常规快闪存储器接口总线或结构,且同样包括用于将地址信号运载到快闪存储器55的导体、一个或一个以上芯片选择控制线、读写选通线或时钟线和双向数据总线。在常用的快闪存储器布置中,地址信号和数据信号经由常用线组(“地址线/数据线”)经时间多路复用以节约接口电路和系统板面积。
本发明的此实施例中的子系统控制器49优选执行常规的快闪存储器控制功能,包括(例如)控制经由接口NAND_IF从相关联的快闪存储器55读取数据和将数据写入到快闪存储器55、实施错误校正编码、将逻辑地址(来自CPU 42)映射到物理地址(在快闪存储器55中)、初始化并维持快闪存储器55中的缺陷存储器单元的映射、实现损耗平衡等。如此项技术中所众所周知的,同样,子系统控制器49优选经建构以包括例如微控制器或微处理器的逻辑功能性,和用于存储其可执行软件指令以及有关快闪存储器55的映射和配置的系统信息的其自身的内部存储器(易失性存储器、非易失性存储器或两者)。此项技术中已知的典型子系统控制器的架构和功能性的实例描述于第6,426,893号美国专利中,所述专利在此共同转让且以引用方式并入本文中。预期此常规操作和建构可结合根据本发明的此优选实施例的子系统控制器49而使用,除了从图4和此描述中显而易见的内容,子系统控制器49实现于SOC 40内且集成到SOC 40中。预期参考本说明书的所属领域的技术人员将能够容易地根据此示范性架构以及根据适用于特定系统配置的其它等效架构如此实现子系统控制器49和其功能性,而没有不当的实施方案。
视情况,可根据多处理器架构实现子系统49,而不包括以上参考的第6,426,893号美国专利中所设想的单个微处理器或微控制器。举例来说,主CPU可连同具有与主CPU类似的架构(意即,在均质多处理器环境中)或具有不同架构(意即,在异质多处理器环境中)的快闪处理器一起实施。在任一情况下,向所述快闪处理器提供专用于快闪存储器55的管理的系统资源(存储器等),所述管理包括所有快闪存取操作和例如损耗平衡、错误校正的辅助功能等的管理。所述主CPU可具备专用资源以充当应用程序处理器,以用于执行主机应用程序、管理与主机的通信、结合实时操作系统和文件系统来管理子系统控制器49的支持环境等。额外选项提供与所述应用程序处理器和快闪处理器结合或仅与所述主CPU结合的数字信号处理器(DSP),以充当用于进行例如数据加密和解密等的复杂计算性操作的从属DSP。
根据本发明的此实施例,系统60的快闪存储器55对应于快闪电可擦除可编程只读存储器(EEPROM)单元的一个或一个以上阵列,所述单元如此项技术中所已知的布置在每一可以区块擦除的阵列内,且同样可在需要时由实施系统重写。在本发明的此优选实施例中,用于构成快闪存储器55的一个或一个以上阵列内的个别存储器单元的特别存储器技术可为二进制或多级单元(MLC)类型的任一者,其在每一阵列内配置为NAND型或NOR型快闪存储器。对于此特定示范性实施方案(其中系统60为DAP),预期MLCNAND快闪存储器技术将优选用于主要以串行方式存取的大量数据存储。根据本发明的此实施例,作为用于写入数据、快闪擦除数据、逻辑到物理地址映射和管理损耗平衡的目的的区块和页,构成快闪存储器55的一个或一个以上快闪存储器的布置可符合许多这些布置中的任一者。适用于实现为根据本发明的系统60中的快闪存储器55的内部架构和支持电路的实例描述于以下美国专利中:第5,172,338号、第5,602,987号、第5,315,541号、第5,200,959号、第5,270,979号、第5,428,621号、第5,663,901号、第5,532,962号、第5,430,859号、第5,712,180号、第6,151,248号、第6,222,762号和第6,426,893号,所述专利在此全部共同转让且以引用方式并入本文中。
如以上所论述,在制造系统60期间的某点处,需要初始化快闪存储器55以使其可使用。快闪存储器初始化通常包括例如以下功能:根据文件系统格式化快闪存储器55、检测缺陷存储器位置以使其未被映射使用、产生初始的逻辑到物理地址存储器映射、实现损耗平衡簿记和算法。举例来说,也可实现子系统控制器49本身的初始化以下载其系统固件和操作参数、微调本机振荡器频率等。另外,取决于快闪存储器55和系统60的特定应用,快闪存储器55的初始化也可包括将可执行应用软件加载到快闪存储器55中以由系统60的CPU 42稍后执行,以及给快闪存储器55预先加载用于此可执行应用软件的应用数据(例如,用于为DAP的系统60的MP3音频文件)。
根据本发明的优选实施例,系统60允许主机系统HOST经由标准接口50实现快闪存储器55的初始化,标准接口50在此情况下为USB 2.0接口。当然,如上文所提及,此标准接口可替代地遵循不同标准,例如IEEE 1394(火线)接口。在制造上下文中,预期主机系统HOST将为制造测试设备,例如可从坦尼西斯科技(Tanisys Technology)购得的测试设备,或由制造商使用的其它专用快闪存储器测试设备。预期快闪存储器55的此初始化可在完成系统60装配之后(即,具有包括例如显示器53、音频输出57和输入元件55的外围设备)或在最终装配之前仅在SOC 40连接到快闪存储器55之后执行。
或者,考虑到主机系统HOST正经由常规标准接口(例如,USB 2.0)与SOC 40通信,预期主机系统HOST可为常规的个人计算机或工作站,其经适当的应用程序编程以实现快闪存储器初始化。另外,在替代方案中,预期由主机系统HOST实现的快闪存储器初始化无需仅在制造(即,快闪存储器55的“最初”初始化)期间执行,而是也可在系统使用和部署之后执行,(例如)以升级作为“固件”存储在快闪存储器55中的系统60的可执行应用程序或实际上可由子系统控制器49执行的固件系统软件(其也可存储在快闪存储器55中)。
现参看图5,现在将详细描述根据本发明的优选实施例的SOC 40与主机系统HOST进行组合以实现快闪存储器55的初始化的操作。假定在此实例中,SOC 40在此初始化开始时还未加电。且如上文所提及,虽然必要时可连接一个或一个以上外围装置,但取决于制造的特定阶段,各种外围装置不必仍连接到外围总线PER_BUS。同样当此初始化过程开始时,快闪存储器55优选经由接口NAND_IF连接到SOC 40,以避免所述过程中稍后的停止或等待状态。在过程70中,经由图4的实例中的总线USB_2将主机系统HOST连接到标准接口50。当然,用必需的软件指令编程主机系统HOST而以下述方式实现初始化;预期参考本说明书的所属领域的技术人员可容易地得到这些初始化程序,且实际上预期常规的快闪存储器初始化程序可驻留在主机系统HOST中,并且仅对其进行较小修改以实现下述操作。
在过程72中,使包括CPU 42的SOC 40加电。在加电时,如对例如SOC 40的系统是常规的,首先由CPU 42执行驻留在系统ROM 44中的启动序列(图5的过程74),其中由CPU 42执行常规的起动和复位指令以开始其操作。根据本发明的此优选实施例,存储在系统ROM 44中的所述启动序列包括可执行指令,CPU 42通过所述指令询问快闪存储器55以在加电或复位后寻找可执行的应用程序,且将在下文描述所述询问操作之后的条件指令。因此,作为执行启动序列(过程74)的部分,CPU 42执行决策75以确定可执行应用程序代码是否驻留在快闪存储器55中。
图6为根据本发明的优选实施例的快闪存储器55的示范性逻辑存储器映射,所述存储器在初始化后可结合决策75而使用。如所示,快闪存储器55包括对应于从0000的逻辑块地址(LBA)扩展到最大LBA值maxLBA的逻辑存储器空间的物理容量。此逻辑存储器空间主要专用于用户数据,其被指派了从LBA0000到最大LBAmaxUserLBA的存储器空间。在此实例中,快闪存储器55中最上面的1百万字节存储器空间经保留以用于应用固件程序存储器,所述空间从LBA maxUserLBA扩展到最大LBA值maxLBA,其等于地址maxUserLBA+1M。优选的是,用户将不可存取在LBA值maxUserLBA以上的存储器空间,并且对其的存取由子系统控制器49封锁。如图6所示,根据本发明的此优选实施例,在快闪存储器55的初始化之后,应用固件的两个副本被存储在所述快闪存储器空间的此最上部分中。应用固件副本A驻留在快闪存储器55中,位于LBA值maxUserLBA+512k与LBA值maxLBA之间的存储器空间中;应用固件副本B驻留在LBA值maxUserLBA与LBA值maxUserLBA+512k之间的存储器空间中。根据本发明的此实施例,希望固件副本A与B相同,从而充当应用固件的冗余副本。
根据本发明的优选实施例,CPU 42通过询问在LBA地址maxUserLBA以上的快闪存储器55而执行来自系统ROM 44的启动序列。如果LBA maxUserLBA与maxLBA之间的空间含有应用固件的有效副本(副本A或副本B),则决策76是YES,且将在过程76中执行所述应用固件。接着根据在过程74中发现的所述应用程序开始SOC 40和系统60的正常系统操作(在外围设备存在时)。通过评估每一副本的常规循环冗余检查和(CRC)值来确定应用固件的有效性;如果一个副本有效且另一副本被损坏,则优选将所述有效副本复制到快闪存储器55中的另一副本的位置以用于冗余检查。
另一方面,如果LBAmaxUserLBA与maxLBA之间的存储器空间为空,或不含有应用固件的有效副本(例如,两个副本的CRC皆失效),则决策75返回NO结果,其指示不存在应用固件。当然,此将是在初始化快闪存储器55之前的情况。
替代确定应用程序是否存在于快闪存储器55中的决策75,且尤其在维护或固件升级操作中,预期决策75可基于不同标准,考虑到在此种情况下,应用程序将已驻留在快闪存储器55中。如此项技术中所已知,系统的固件升级可通过按下起动键等的专用组合来实现,此通常与系统的功率循环组合。
根据本发明的此优选实施例,响应于来自决策75的NO结果或符合此类其它标准,CPU 42执行对应于过程80的来自系统ROM 44的指令序列,在所述过程中启用某一“传递”命令逻辑,以使得由SOC 40经由标准接口50接收的命令“传递”到子系统控制器49以供执行。在此实例中,这些传递命令具有SCSI(小计算机串行接口)扩展命令的形式,其引导CPU 42通过低级快闪存储器装置驱动器来格式化经由标准接口50接收的请求以由子系统控制器49执行。实际上,所述传递命令逻辑是一段由CPU 42执行的胶合逻辑代码,其在其SCSI命令解译器与所述低级装置驱动器之间介接。
或者,此初始化序列可从主机系统HOST下载到系统RAM 46,且接着由CPU 42执行以询问快闪存储器55来确定应用固件是否存在,且接着建立通信信道。另外,在替代方案中,CPU 42借以询问快闪存储器55以确定其初始化状态的指令可存在于系统ROM中,且如果初始化是必要的,所述初始化序列的剩余部分可接着从主机系统HOST下载到系统RAM 46中。预期参考本说明书的所属领域的技术人员将明白下载或驻留的初始化序列码的这些和其它组合,且具有为特定应用程序选择的特定调适。
当CPU 42启用所述SCSI传递命令逻辑时,在过程82中,开放主机系统HOST与子系统控制器49之间的通信信道。当系统60布置为DAP时,预期此通信信道类似于由系统60利用的信道,以便实现主机计算机与快闪存储器之间的音乐文件的“同步”。实际上,预期CPU 42在过程82中有效地建立主机系统HOST与子系统控制器49之间的直接通信路径,以使得在不需要由CPU 42实际执行的情况下,经由此路径转发命令和数据。图7说明主机系统HOST与快闪存储器55之间的此通信信道(如根据本发明的优选实施例在过程82中由SOC 40中的CPU 42所建立的)。
当然,此操作中的CPU 42所涉及的范围将取决于SOC 40的具体结构。然而,如以上相对于图2所描述的,在初始化期间,此通信信道将允许主机系统HOST与子系统控制器49之间的通信,以用于以类似于常规测试设备与常规快闪存储器系统之间的通信的方式初始化快闪存储器55;此布置允许主机系统HOST的初始化硬件和软件类似于已用常规的快闪存储器制造设备和处理而实现的硬件和软件。
在过程84中,在于过程82中开放通信信道之后,主机系统HOST经由所述信道将初始化命令和数据转发到子系统控制器49(图7)。如此项技术中所已知,这些初始化命令包括必需的诊断指令和使子系统控制器49存取在正常操作中另外不可存取的快闪存储器55的系统存储器位置的类似指令。
举例来说,在通过以上提及的SCSI传递命令扩展实现通信信道的情况下,由CPU 42解译的传递命令相当受限制:
用于所有媒体类型:
检查媒体卡类型(命令代码D0h)(检查SD/MMC或CF媒体类型)
用于SD/MMC媒体:
媒体卡SD执行命令(命令代码D1h)
媒体卡SD主机控制命令(命令代码D2h)
用于CF媒体:
媒体卡CF发送命令(命令代码D1h)
媒体卡CF数据命令(命令代码D2h)
媒体卡CF状态命令(命令代码D3h)
所述检查媒体卡类型命令询问子系统控制器49以识别快闪存储器55的媒体类型,且也启用并停用SOC 40执行所述传递命令(意即,当禁止时,命令代码D1h等不转译为传递命令)。
对于SD/MMC媒体的实例,当启用时,一旦主机系统HOST发出媒体卡SD执行命令(D1h),CPU 42即向子系统控制器49发出相应的原生命令。来自主机系统HOST的执行命令可包括:包括数据传送方向(去往快闪存储器55或来自快闪存储器55)、命令类型的引数,限定命令的引数等。一旦接收到执行命令,CPU 42便向子系统控制器49发送相应的原生命令,且充当用于主机系统HOST与快闪存储器子系统之间的数据传送的缓冲器。媒体卡SD主机控制命令可用于向快闪存储器子系统指示例如操作频率的某些属性和向主机指示等待状态、区块长度和其它控制属性。对于CF媒体的实例,发送命令指示由后续数据命令存取的快闪存储器55的特定区段、柱面和装置位置,所述数据命令作为原生命令由CPU 42转发到子系统控制器49以用于将数据从主机系统HOST发送到快闪存储器55或将数据从快闪存储器55发送到主机系统HOST。CF状态命令仅为由主机系统HOST发出以从子系统控制器49的状态寄存器检索状态信息的命令。
如以上在关于第6,009,496号美国专利的发明背景中所提及,常规微控制器架构包括用以在编程嵌入式快闪存储器时执行重编程控制常规程序的板上微处理器。根据本发明的此实施例所使用的传递命令和命令逻辑相对于常规方法来说尤其有益,因为所述命令最小化CPU 42在实现快闪存储器子系统的控制中的作用,改为允许主机系统HOST实现此控制。另外,相对小的命令集减少CPU 42的额外开销且允许所述命令扩展到新的记忆卡类型。
根据本发明的此实施例,在过程86中,由主机系统HOST发出的这些传递命令的序列经由子系统控制器49初始化快闪存储器55。如此项技术中所已知的且如上所述,初始化过程86包括以下操作:根据所需文件系统和结构而格式化快闪存储器55、检测并映射缺陷存储器位置、建立逻辑到物理地址映射结构和映射本身,以及为子系统控制器49提供适当的损耗平衡算法以确保快闪存储器55中的存储器单元的最大使用寿命。也可在此时在子系统控制器49本身内初始化系统固件、操作参数、本机振荡器频率等。另外,也如上文所提及,预期快闪存储器55的初始化也将包括将应用软件加载到快闪存储器55中(例如,在图6的实例中,所述软件为加载到LBA地址maxUserLBA以上的存储器空间中的冗余副本A和B),以供CPU 42在其系统操作中使用,且可能还包括将应用程序数据(例如,用于布置为DAP的系统60的MP3音频文件、JPEG相片文件等)预先加载到快闪存储器55中。当然,程序代码和数据的此加载和预先加载将在如上所述的快闪存储器55的格式化和其它系统初始化之后进行。
在完成初始化过程86之后,且可能在快闪存储器55的此功能测试和数据验证之后,完成此初始化中的主机系统HOST的操作。在过程88中,主机系统HOST接着通过发出检查媒体卡类型命令(D0h)停用传递命令的功能性,并释放系统总线CPU_BUS。SOC 40和系统60的操作(视外围功能是否存在而定)可接着如所想要地继续进行到所需或可能的程度。在初始化环境中,例如在SOC 40或系统60的制造期间,CPU 42仅可进入闲置或关闭状态。如果初始化对应于固件更新或其它维护操作,则CPU 42可改为复位或重新启动,且根据其正常操作开始执行来自快闪存储器55的应用程序(即,决策75是YES)。预期参考本说明书的所属领域的技术人员将容易地按需要实现下一操作序列。
如上文所提及,上述架构和方法的各种替代物适用于本发明且与本发明结合。举例来说,系统单芯片或包括快闪存储器控制器电路的其它大型系统集成的特定架构可依据特定应用而广泛改变。举例来说,本发明的优选实施例的总线结构和接口布置可采用系统设计者所需的许多替代形式。类似地,此种集成系统的特定应用也可采用超出上述示范性DAP的许多形式中的任何一种,仅举例来说,其包括:例如通用或专用计算系统的系统、便携式音频和视频播放器和录音机、无线(或有线)电话手持机和系统、例如用于编录或传递控制的便携式专用系统。且快闪存储器资源的初始化中所包括的特殊任务可包括来自以上结合本发明的优选实施例所描述的实施例的或多或少(或实际上完全不同)的任务。预期参考本说明书的所属领域的技术人员将容易地认识到,这些和其它替代方案在所主张的本发明的范畴内。
根据本发明的优选实施例,快闪存储器资源在利用系统单芯片架构的高度集成数字系统中可用作程序和数据的光盘更换和其它非易失性大容量存储,而不引发提供用于快闪存储器的初始化的专用接口和测试设备的实际成本。而是,根据本发明,常规主计算机或测试设备可使用已由系统单芯片提供的常规标准接口技术与集成快闪存储器子系统控制器通信,以有效且容易地初始化所述快闪存储器资源。研发时间和制造费用因本发明而最小化,同时在最终系统的结构、操作和管理上提供大量灵活性。
虽然已根据本发明的优选实施例描述了本发明,但是当然预期参考本说明书和其图式的所属领域的技术人员将明白这些实施例的修改和替代方案、获得本发明的优点和益处的修改和替代方案。预期这些修改和替代方案在本文随后主张的本发明的范畴内。