具有经由控制器集成的多功能的闪存驱动器的制造方法_2

文档序号:9616223阅读:来源:国知局
。闪存,诸如闪存240,可以是NAND或N0R闪存,和可以具有“擦除块”,擦除块是可以在一个时间被擦除的最小单位的闪存。擦除块具有基本上大于可以被读取或写入的存储器的最小单位。例如,NAND闪存可被以典型地2KB到4KB的范围大小的单位被随机存取的方式读取或写入。然而,一擦除块可以是128KB或256KB或更大的量级。
[0045]其结果是,当准备好从闪存240擦除数据或命令时,存储控制器235需要能够确保仅是预期被擦除的数据被实际擦除。存储控制器235可以通过管理数据使得将被擦除的闪存240的擦除块只包含要删除的数据来确保这一点。存储控制器235还可以通过读取在将被擦除的擦除块中的但并不打算被擦除的数据或命令,并存储数据或命令至临时存储器中来确保这一点,临时存储器可以是存储控制器235的一部分或者可以是另一模块的一部分。存储控制器235然后可以安全地擦除含有将被擦除和不将被擦除的数据/指令的混合的擦除块。一旦擦除块被擦除,不打算被擦除的数据/命令可以从临时存储器中被读取和写回闪存240。
[0046]在将电影复制到闪存200之后,用户105从电脑115拔掉闪存驱动器200。在这一点上没有电源连接到组件205-240的任何一个。然而,作为一个非易失性存储器,闪存240保持被写入到它的数据。
[0047]随后,第一连接器205被连接到智能手机120,以及第一连接器205的电源引脚被电连接到智能手机120的3.3V电源。在这一点上,第二连接器210的电源引脚未被连接。锁存器220检测来自第一连接器205的3.3V电源引脚是活跃的,以及从第二连接器210的5.5V电源引脚是不活跃的,且锁存器220被设置成第一值以指示第一连接器205是活跃的。多路复用器215,基于多路复用器选择被设定为第一值,选择第一连接器205的数据引脚以发送到1S接口控制器230。1S接口控制器230和存储控制器235,基于锁存器220的输出,可确定第一连接器205是否是活跃的。闪存驱动器“引导”,如前所述。在闪存驱动器处于就绪状态后的某点,智能手机120发送外设协议消息到闪存驱动器200以启动通信。
[0048]外设协议是使外设设备,诸如闪存驱动器200,与1S设备进行通信的一个协议和/或一组命令。1S设备是运行任何版本的1S的计算设备。即使当两个设备有物理上兼容的连接器,这两个设备可能不兼容,例如,由于不兼容的通信协议。例如,虽然运行1S的Apple计算设备可具有全尺寸USB连接器,但Apple计算设备可能具有不兼容的通信协议。当用户插入闪存驱动器到Apple计算设备的全尺寸USB连接器时,Apple计算设备可能会显示一个消息,说明该闪存驱动器是无法识别或不被支持的设备。这可能是因为Apple计算设备不能识别仅支持大容量存储类USB协议的设备,即使该设备通过标准的USB连接器相连。
[0049]作为具有不兼容的通信协议的结果是,该闪存驱动器不能被用来从不相容的Apple计算设备发送数据或获得数据,即使该闪存驱动器和Apple计算设备都可以通过物理上兼容的连接器被连接。在这样的情况下,Apple计算设备可能要求所述外设设备支持除USB大容量存储器类的协议之外的外设协议。外设协议可以是,例如,Apple的专有外设协议,该协议的细节可从Apple公司的MFi许可项目获得。外设协议的例子包括提交于2012年 1 月 10 日的美国专利 8,590,036,题为 “Method and system for authenticating anaccessory”所涉及的附件协议。
[0050]为了与外设设备兼容,Apple计算设备可以进一步要求该外设设备支持认证方案,其需要外设设备包括安全1C,如安全IC225。安全1C是可以从计算设备,如1S设备,接收消息并能提供响应给计算设备的1C,使得计算设备能够认证包括安全1C的外设设备。
[0051]返回到例子中,外设协议消息通过多路复用器215传递到1S接口控制器230。1S接口控制器230被配置为经由1S接口控制器230的1C设计的定制和/或通过1S接口控制器230执行的软件,使用外设协议进行通信。1S接口控制器230接收并识别外设协议命令。为了建立通道与Apple 1S设备,如智成手机120,的通彳目,闪存驱动器200可以由智能手机120认证。智能手机120发送消息以发起认证过程,响应于此,1S控制器130与安全1C 225的通信以获得认证数据。安全1C 225发送认证数据到1S接口控制器230,其转发认证数据至智能手机120以授权闪存驱动器并启用闪存驱动器和智能手机120之间的数据传送。
[0052]用户105使用1S界面,启动复制命令,将电影从闪存驱动器200复制至智能手机120。智能手机120,采用了一系列的命令,其可以包括活或者USB命令,其是由存储控制器235处理的,或者外设协议命令,其是由1S接口控制器230处理的,或USB和外设协议命令两者,来启动电影的复制。存储控制器235从闪存240读取电影并发送电影到1S接口控制器230,其经由复用器215和第一个连接器205转发电影至智能手机120。
[0053]图3是示出了使用一个控制器模块集成两组功能的闪存驱动器的一个例子的框图,与各种实施例是一致的。闪存驱动器300包括第一连接器205、第二连接器210、多路复用器215、锁存器220、安全1C 225、存储控制器335和闪存240。在一些实施例中,存储控制器335与存储控制器235是相同的,或具有相同的功能。存储控制器335被用于第一组的功能,包括:处理USB协议和管理与闪存240的通信,以及第二组功能,包括:Apple 1S特定处理,和与安全1C进行通信。第二组的功能,在图2的实施例中,是通过1S接口控制器230处理,值得注意的是其不被包括在闪存驱动器300中。在各实施例中,第一组功能包括处理USB协议之外的通信协议,和管理与闪存240的通信。第二组功能包括处理通信协议,诸如Apple外设协议,以及与安全1C的通信。
[0054]在图3的实施例中,第一连接器205、第二连接器210、多路复用器215、锁存器220、安全芯片225、存储控制器335和闪存240,每一个都是连接到PCB(未示出)的单独的组件,并且PCB电连至各组件的引脚。此外,安全1C 225、存储控制器335和闪存240的每一个都是集成电路(1C)。而安全1C 225、存储控制器335和闪存240在本实施例中是单独的集成电路,在其他实施方案中,任何的和/或所有的安全1C 225、存储控制器335和闪存240,以及多路复用器215和锁存器220,可以被集成到一个或多个1C。
[0055]再次参照图1的例子,闪存驱动器300将处理:从电脑115复制电影和发送电影到智能手机120,类似于闪存驱动器200的方式,有一些显著的区别是使用整合存储处理器335集成两组功能的结果或使其可能实现。由图2的1S接口控制器230和存储控制器235处理的过程可以由图3的存储控制器335进行处理。如在图2的示例中的存储控制器235,存储控制器335被配置成,通过存储控制器335的1C设计的定制和/或通过存储控制器335执行的软件,使用USB协议进行通信,以及与闪存240通信。不同于图2示例中的存储控制器235,存储控制器335还被配置成,通过存储控制器335的1C设计的定制和/或通过存储控制器335执行的软件,利用外设协议进行通信,并与安全1C 225进行通信。当存储控制器335被配置为通过软件而不是通过存储控制器335的1C设计的定制时,存储控制器335可以与存储控制器235相同或具有与存储控制器235相同的功能。
[0056]图4是示出了通过存储控制器的的1C设计的定制集成了两组功能的闪存驱动器的一个例子的框图,与各种实施例一致。闪存驱动器400包括第一连接器205、第二连接器210、多路复用器215、锁存器220、安全IC225、存储控制器335、闪存接口控制器405,暂存器410、USB/PP/SIC控制器415和闪存240。一些实施例中,存储控制器435是与图3中的存储控制器335相同的,或具有与图3中的存储控制器335相同的功能。
[0057]在图4的实施例中,存储控制器435被用于第一组的功能,包括:处理USB协议和管理与闪存240的通信,以及第二组功能,包括Apple 1S特定处理,和与安全1C的通信。存储控制器435的子模块、闪存接口控制器405管理与闪存240的通信,以及存储控制器435的第二子模块,USB/PP/SIC控制器415处理USB协议、Apple 1S的特定处理,和与安全1C的通信。
[0058]虽然图4示出了经由存储控制器的1C设计的定制集成的两组功能,但功能可以通过由可编程1C执行的定制软件等效地集成,例如微控制器或专用集成电路(ASIC),或经由定制1C设计和定制软件的组合。如也被称为模块,图4的定制的1C的各块可以当功能通过定制软件被集成时,在定制软件中具有相当的模块。
[0059]再次参照图1的例子,图4的实施方式的闪存驱动器400将以类似于或相同于图3的闪存驱动器300的方式处理从笔记本电脑115复制电影和发送电影到智能手机120。在闪存驱动器400连接到笔记本电脑115且处于就绪状之后,电影复制可以通过发送消息由电脑115发起,如USB协议消息,到闪存驱动器400以发起通信并发送电影的第一数据。第一数据可以通过第二连接器210和多路复用器215到存储控制器435,在那里它传递给子模块USB/PP/SIC控制器415。当USB/PP/SIC控制器415接收第一数据时,它可以在其被连接至的临时存储器410B中存储第一数据。
[0060]闪存可被在典型地2KB到4KB的范围大小的单位中以随机存取的方式读取或写入,有时也被称为块。从笔记本电脑115被复制的第一数据可以被存储在临时存储器410B中,直到有足够的电影和/或其它数据已经被接收以触发闪存240的块的写入。第一数据可替代地或附加地被发送到闪存接口控制器405,在那里它可以被存储在临时存储器410A,直到有足够的电影和/或其它数据已经被接收以触发闪存240的块的写入。
[0061]—旦足够的数据已被接收以触发写入,临时存储存储器中存储的电影和/或其它数据可以被读取,以及将被写入到闪存240的块的数据可以被发送到闪存接口控制器405。闪存接口控制器405可以将数据写入闪存240的块。一旦数据被写入到闪存240中,保持数据的临时存储存储器的对应存储器可用于其他用途。此外,由笔记本电脑115发送的命令,如USB命令,也可以存储在临时存储存储器410B中,直到USB/PP/SIC控制器415能够适当地处理这些命令。
[0062]在从笔记本电脑115被断开并连接到智能手机120之后,闪存驱动器400可以发送电影到智能手机120。要发送的电影数据保留在闪存240中。在闪存驱动器处于准备状态之后的某时,智能手机120发送外设协议消息到闪存驱动器400以启动通信。外设协议消息通过第一连接器205和多路复用器215到存储控制器435,其中消息传递到子模块USB传递/PP/SIC控制器415。USB/PP/SIC控制器415接收外设协议命令,并可以发送命令到临时存储器410B,直到USB/PP/SIC控制器415已准备好处理该命令。
[0063]作为建立与闪存驱动器400的通信通道的一部分,智能手机120发送消息到闪存驱动器400以启动认证过程,响应于此,USB/PP/SIC控制器415与安全1C 225进行通信,以获得认证数据。安全1C 225发送认证数据到USB/PP/SIC控制器415,其转发认证数据到智能手机120以认证闪存驱动器400并使数据在闪存驱动器400和智能手机120之间传送。在一些实施例中,USB/PP/SIC控制器415在基于认证数据的处理发送消息到智能手机120之前,处理认证数据以支持闪存驱动器400的认证和使数据在闪存驱动器400和智能手机120之间传送。
[0064]用户105使用1S界面,启动复制命令,将电影从闪存驱动器400复制至智能手机120。智能手机120,采用了一系列的命令,可以包括任何USB命令或外设协议命令,这两者都是通过USB/PP/SIC控制器415来处理,发起电影的复制。USB/PP/SIC控制器415将消息发送到闪存接口控制器405,响应于此,闪存接口控制器405从闪存240读取电影,并发送电影到USB/PP/SIC控制器415,它经由多路复用器215和第一连接器205转发电影至智能手机 120。
[0065]在一些实施方案中,闪存接口控制器405可以读取被从闪存240发送的电影数据和将数据存储在临时存储存储器410A。闪存接口控制器405可以替代地,或者附加地,发送电影数据到USB/PP/SIC控制器415,它可以存储将被发送电影数据至临时存储存储器410B。一旦USB/PP/SIC控制器415准备好发送电影数据到智能手机120,它可以从临时存储器410B读取电影数据和发送电影数据到智能手机120,或可以直接从闪存接口控制器405接收电影数据和发送电影数据到智能手机120。另外,要被发送的命令可以存储在临时存储器410B,直到USB/PP/SIC控制器415准备好将命令发送到连接的设备。
[0066]闪存接口控制器405还可以管理闪存240的擦除。正如前面讨论的,闪存具有“擦除块”,擦除块是可以在一个时间被擦除的最小单位的闪存。擦除块具有基本上大于可以被读取或写入的存储器的最小单位。例如,NAND闪存可被在典型地2KB到4KB的范围大小的单位中以随机存取的方式读取或写入。然而,一擦除块可以是128KB或256KB或更大的量级。其结果是,当准备好从闪存240擦除数据或命令时,管理与闪存驱动器的通信的控制器,例如闪存接口控制器405,需要能够确保仅是预期的被擦除的数据被实际擦除。闪存接口控制器405可以通过管理数据,这样将被擦除的闪存240的擦除块只包含要删除的数据来确保这一点。闪存接口控制器405还可以通过读取在将被擦除的擦除块中的但并不打算被擦除的数据或命令,并存储数据或命令至临时存储器410B中来确保这一点。闪存接口控制器405然后可以安全地擦除含有将被擦除和将不被擦除的数据/指令的混合的擦除块。一旦擦除块被擦除,不打算被擦除的数据/命令可以从临时存储器410B中被读取和写回闪存 240。
[0067]本领域的技术人员将认识到示于图1-4和上述中的逻辑,和在下面讨论,以及在工作图中的逻辑,可以以各种方式来改变。例如,逻辑的次序可以被重新安排,子步骤可以并行执行,示出的逻辑可以被省略,其他逻辑可以被包括,等等。此外,所公开的技术的范围还包括实施例,其以其他各种方式实现所描述的功能。因此,所公开的技术的范围旨在涵盖所有这些替代,修改和变化落入权利要求书的范围内,以及所有的等同物。
[0068]图5是示出了使用闪存驱动器400从非-1OS的计算设备505 (NCD505)复制数据到1S计算设备510(ICD510)的工作图,与各种实施例一致。NCD505是不运行1S的计算设备,诸如笔记本电脑115,以及I⑶510是运行1S的设备,诸如智能手机120。虽然图示说明使用闪存驱动器400以从NCD 505复制数据到I⑶510,数据可以类似地使用闪存驱动器400被从ICD 510复制至NCD 505。
[0069]用户,如用户105,将闪存驱动器400的连接器,例如凸形USB连接器,插入NCD505的兼容连接器,如凹形USB连接器。被插入后,闪存驱动器400通电并经过一个复位序列,其中它初始化并处于就绪状态。在一些实施例中,初始化过程中,闪存驱动器400从闪存240读取并执行软件。例如,在经历复位序列后,闪存接口控制器405从闪存240读取数据。数据可以是将被闪存接口控制器405或USB/PP/SIC控制器415执行的软件。软件能够被执行以使闪存驱动器400进入就绪状态。
[0070]一旦闪存驱动器400处于就绪状态,闪存驱动器400或NCD505可以启动两个设备之间的通信。响应于被插入NCD 505的USB连接器和有效地“引导”到准备状态,闪存驱动器400可以决定使用的协议以将消息发送到NCD 505以发起设备之间的通信(步骤518)。例如,闪存驱动器400可以基于被插入USB连接器,判断发送USB命令或消息至NCD 505以启动通信(步骤520)。响应于接收USB命令或消息,NCD 505可以发送响应,以建立设备之间的通信(步骤512)。在一些实施例中,NCD 505可以发送消息以发起通信到闪存驱动器400,且闪存驱动器400可以发送响应以建立通信。
[0071]在某个时间点,用户105指示他要从NCD505复制数据,诸如电影,到闪动驱动器400。例如,用户105可以在NCD505上利用非-1OS操作系统的用户界面,如在笔记本电脑115上运行的Windows操作系统,以指示复制电影到闪存驱动器400 (步骤514)。NCD 505可使用USB协议和USB协议命令发送电影到闪存驱动器400 (步骤516)。闪存驱动器400在USB/PP/SIC控制器415接收命令,其中USB命令被解释。基于所接收的USB命令,USB/PP/SIC控制器415确定将电影数据写入闪存240 (步骤522),并且可以转发电影数据到闪存接口控制器405,其管理数据到闪存240的写入(步骤524)。在电影数据被写入到闪存驱动器400之后,用户105从NCD的505的USB接口拔出闪存驱动器400。
[0072
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1