从主机引导存储设备的制作方法

文档序号:6376100阅读:139来源:国知局
专利名称:从主机引导存储设备的制作方法
技术领域
本文涉及从主机引导存储设备,诸如带有闪存的设备。
背景技术
各种类型的非易失性存储器(NVM),诸如闪存存储(例如,NAND闪存、NOR闪存),可以用于大容量存储。例如,消费电子产品(例如,便携式媒体播放器)使用闪存来存储数据,包括音乐、视频、图像和其他的媒体或类型的信息。存储设备已被配置用于从本地存储在设备上的信息引导。例如,包括存储控制器(带有ー个或多个处理器/微处理器)的存储设备可以使用存储于存储设备的NW中的固件引导。在另ー个例子中,“原始”(“raw”)存储设备(不包括存储控制器的存储设备)可以使用存储于存储设备的NVM中的调节值(trim value)引导。调节值可以被加载到原始存储设备的寄存器中,并可以由原始存储设备上的电路使用来控制原始存储设备的各种操作,诸如定时、脉冲计数和/或施加电压电平。

发明内容
本文一般性地描述了从主机设备引导存储设备的相关技木。主机设备可以存储用于ー个或者多个存储设备的引导信息(例如,固件、调节值),并且可以通过在所述主机和所述存储设备之间的ー个或者多个通信通道(例如,总线)提供这样的引导信息给所述存储设备。响应于指示或者与指示一起,引导信息可以由主机设备提供给存储设备来引导所述存储设备。例如,主机设备可以提供引导命令给存储设备,并且可以响应于来自所述存储设备的指示所述存储设备准备好接收所述引导信息的信号,随后提供引导信息给所他述存储设备。在另ー个例子中,关闭电源的存储设备可以接收提示所述存储设备开启电源并引导的信号。响应于这样的指示,所述存偏设备可以从所述主机设备请求并接收弓I导信息。在一个实施方式中,ー种方法包括在存储设备接收用于引导所述存储设备的指令,其中所述存储设备包括所述存储设备的控制器可访问的非易失性存储器;以及,响应于接收用于引导所述存储设备的所述指令,通过所述存储设备获取来自主机设备的固件,其中所述主机设备与所述存储设备分开并与所述存储设备通信耦合。所述方法还可以包括使用来自所述主机设备的所述固件引导所述存储设备,其中所述存储设备与所述主机分开引导,并且所述主机设备使用存储于所述非易失性存储器并且通过与所述存储设备的存储控制器的通信获得的数据或者指令执行操作。在另ー个实施方式中,ー种方法包括由主机设备提供引导命令给存储设备,其指示所述存断设备使用固件从所述主机设备引导,其中所述主机设备与所述存储设备分开并与所述存储设备通信耦合,并且所述存储设备包括非易失性存储器。所述方法还包括在主机设备接收存储设备准备好接收来自所述主机设备固件的指示;以及,响应于接收所述指示,所述主机设备传输所述固件到所述存储设备,其中到所述存储设备的所述固件的传输使得所述存储设备使用所述固件引导,其中所述存储设备与所述主机设备分开引导。
在另ー个实施方式中,ー种存储设备包括非易失性存储器,适合于将所述存储设备通信耦合到主机设备的主机接ロ,以及存储控制器,被配置为执行在所述非易失性存储器上的存储操作并且适用于通过所述主机接ロ与所述主机设备通信。所述存储控制器还可以被配置通过所述主机接ロ接收用于从所述主机设备引导所述存储设备的指令;响应于接收所述指令,获取来自所述主机设备的固件;以及使用来自所述主机设备的固件引导所述存储设备,其中所述存储设备与所述主机设备分开引导,并且所述主机设备使用存储于所述非易失性存储器并且经由通过所述主机接ロ与所述存储设备的存储控制器的通信获得的数据或者指令执行操作。在另ー令实施方式中,一个系统包括非易失性存储器,以及存储控制器,所述存储控制器被配置为在所述非易失性存储器上执行操作并且通过主机接ロ与主机设备通信。所述存储控制器还可以被配置为通过所述主机接ロ接收用于从所述主机设备引导所述存储设备的指令;响应于接收所述指令,获取来自所述主机设备的固件;以及使用来自所述主机设备的固件引导所述存储设备,其中所述存储设备与所述主机设备分开引导,并且所述主机设备使用存储于所述非易失性存储器并且经由通过所述主机接ロ与所述存储设备的存储控制器的通信获得的数据或者指令执行操作。可以实方施本文所述的主题的特定实施例以实现ー个或者多个以下优点。可以减少存储设备的NVM的磨损。例如,存储设备可以高频率地切换开启和关闭以减少耗电量(例如,在设有使用时切换为关闭),其可以使得毎次所述设备启动时,存储用于所述存储设备的引导信息的NVM部分被访问以引导所述设备。这样频率的访问会磨损所述NVM并且缩短所述NVM的寿命。通过从主机设备而不是从存储设备的NVM获取引导信息,可以减少所述存储设备的NVM的磨损并且可以延长所述存储设备的NVM的寿命。可以提高存储设备引导的速度,其可以最小化访问所述存断设备所存储的数据的延迟。例如,用于所述存储设备的引导信息可以存储在主机设备的NVM中,并且当所述主机设备引导(例如,使用自身的引导信息)时被加载到所述主机设备的易失性存储器(例如,随机访问存储器(RAM))。当存储设备被切换启动和关闭时,所述主机设备可以在其中維持所述引导信息,并且从它的易失性存储器提供所述引导信息给所述存储设备。从所述主机设备的易失性存储器转移引导信息到所述存储设备可以比所述存储设备从所述存储设备本地的NVM读取引导信息更快。可以增加存储设备的可用存储容量,并且可以增加包括主机设备和多个存储设备的系统的总存储容量。例如。通过从存储设备的NVM移动引导信息到主机设备,本来存储所述引导信息的所述存储设备的NVM上的存储空间可以用来存储其他信息(例如,数据)。在另ー个例子中,主机设备可以存储通用于多个存储设备的引导信息的単一拷贝,而不是所述多个存储设备的每一个都存储所述引导信息的本地拷贝。有多个存储设备的系统通过避免在所述多个存储设备上的引导信息的冗余存储可以增加总消储容量。通过更新/改变由主机设备提供给存储设备的引导信息可以容易更新和改变存储设备进行操作的方式。例如,如果遇到存储设备的错误,主机设备可以使得所述存储设备使用诊断固件(由所述主机提供给所述存储设备)重新引导而不是用当遇到所述错误时所使用的操作固件。诊断固件可以使得存储设备执行备种诊断操作(例如,产生错误日志、识别错误源)并且提供所获得的诊断信息给主机设备。主机设备可以存储各种类型的固件(例如,操作固件、诊断固件、生产固件(manufacturing firmware))并且可以依据所述存储设备的状态(例如,遇到错误、新硬件刚安装、正常操作)在提供给存储设备的固件中切换。下面的附图和说明书阐明了一个或者多个实施例的细节。根据所述说明书和附图以及权利要求,本发明的其他的特征、对象和优点将是很明白。


图IA为描述包括被配置为提供固件形式的引导信息给包括存储控制器的NVM封装的主机设备的示例系统的框图。图IB为描述包括被配置为提供固件形式的引导信息给不包括存储控制器的NVM封装的主机设备的示例系统的框图。图2为描述包括带有被配置为提供引导信息给各种NVM封装的主机控制器的存储设备的示例系统的框图。图3为描述用于从主机引导存储设备的示例过程的流程图。图4为描述用于从主机引导存储设备的示例过程的流程图。在所述各种附图中相似的參考标记指示相似的元件。
具体实施例方式主机设备可以存储引导信息(例如,固件或者调节值)以及提供所述引导信息给与所述主机设备通过通信通道(例如,总线)连接的一个或者多个存储设备。存储设备引导信息可以与指令或请求一起,或者响应于指令或请求,被提供给存储设备以引导存储设备,可以响应于所述存储设备启动和/或接收到来自所述主机设备的引导命令而产生所述指令或请求。在所述存储设备操作期间,主机设备可以在易失性存储器中为存储设备维持引导信息(例如,当所述主机设备引导时通过从NVM加载所述引导信息至易失性存储器)并且可以从所述易失性存储器提供所述弓I导信息给所述存储设备。弓I导信息可以提供给源始存储设备(例如,设有存储控制器的存储设备)和/或包括存储控制器的存储设备。主机设备可以存储并且提供各种类型的引导信息给存储设备,包括操作引导信息(例如,用于执行读、写和擦除操作)、诊断引导信息(例如,用于执行诊断操作)和或生产引导信息(例如,用于存储设备的组件的测试安装和操作)。图IA为描述包括被配置为提供固件形式的引导信息给包括存储控制器的NVM封装104的主机设备102的示例系统100的框图。例如,如在所述示例系统100中所描述的,所述主机设备102可以为所述NVM封装104提供固件106。在接收到所述固件106之前、期间和/或响应于接收所述固件106,所述NVM封装104可以发送状态消息108给所述主机设备102。例如,所述NVM封装104可以在所述状态消息108中指示其正在引导,并且作为响应接收所述固件106。在另ー个例子中,在接收到从所述主机设备102引导的命令之后,所述NVM封装104可以指示其准备好接收所述固件106。在另外的例子中,NVM封装104可以通过所述状态消息108指示所述固件106的各个部分被接收。所述主机设备102可以是各种主机设备和/或系统中的任意ー个,诸如可携帯式媒体播放器、蜂窝电话、袖珍个人电脑、个人数字助手(PDA)、桌面电脑、膝上电脑和/或平板计算设备。所述NVM封装104包括NVM并且可以是球栅阵列封装或者其他合适类型的集成电路(IC)封装。所述NVM封装104可以通过与所述主机设备102的连接110 (例如,总线)提供从所述主机设备102获得固件。所述NVM封装104可以是所述主机设备102的一部分或者与所述主机设备102分开。所述主机设备102可以包括主机控制器112,其被配置为与所述NVM封装104交互以从所述NVM封装104获得诊断信息。所述主机控制器112可以包括被配置为基于软件和/或固件指令的执行而执行操作的一个或者多个处理器和/或微处理器。此外和/或可选地,所述主机控制器112可以包括基于硬件的组件,诸如专用集成电路(ASIC),其被配置为执行各种操作。由所述主机控制器112所执行的操作可以包括确定何时启动和关闭所述NVM封装104、何时引导所述NVM封装、提供一种固件给所述NVM封装以及提供所述固件106给所述NVM封装104。例如,所述主机控制器112可以提供引导命令给所述NVM封装104以及,响应于指示所述NVM封装104准备好接收所述固件106的状态消息,提供所述固件106给所述NVM封装104。所述主机控制器112可以格式化根据在所述主机设备102和所述NVM封装104之间使用的通信协议传输给所述NVM封装104的信息(例如,命令、所述固件106)。所述NVM封装104包括存储器114 (易失性存储器和/或NVM),其存储可以被提供给所述NVM封装104的各种类型的固件116-120( S卩,作为固件106)。例如,当所述主机设备102引导时,所述主机设备102可以从所述主机设备102的NVM加载所述固件116-120到易失性存储器。在所述主机设备102和所述NVM封装104操作期间,所述主机设备102可以在所述易失性存储器中維持所述固件116-120。所述主机设备102可以从所述易失性存储器提供所述固件116-120给所述NVM封装104。在其他的实施方式中,所述固件116-120可以被存储于所述主机设备102的NVM中,并且按需读出所述主机设备102的NVM以引导所述NVM封装104。所述固件116-120可以由所述NVM封装104运行以执行引导操作(例如,机始化存储芯片(die)、加载用于操作所述NVM封装的指令到易失性存储器中)和/或引导后操作(例如,读/写/擦除操作、诊断操作)。例如,由所述主机设备102转移到所述NVM封装104的所述固件106可以包括带有指令的引导加载器,其被执行时使得用于操作所述NVM封装104的指令被加载到易失性存储器中以用于由所述NVM封装104执行。在另一例子中,由所述主机设备102转移到所述NVM封装104的所述固件106可以包括用于操作所述NVM封装104的指令,并且可以被加载到易失性存储器中(例如,由引导加载器操作)作为所述NVM封装104的引导过程的一部分。图IA描述了包括可操作固件116、诊断固件118和生产固件120的示例固件116-120。可操作固件116使得所述NVM封装104执行“正常”存储操作,诸如由所述主机设备102请求的执行读、写和擦除操作。操作固件116还可以使得所述NVM封装104执行存储管理操作,诸如损耗均衡或者错误校正。所述诊断固件118使得所述NVM封装执行诊断操作,诸如跟踪数据错误源和产生错误日志。所述生产固件120检测所述NVM封装104的各种组件的操作和安装,诸如存储芯片、I/O信号和传感器(例如,温度传感器)。其他类型的固件也是可能的。例如,相同固件的不同版本可以由所述主机设备102存储并提供给所述NVM封装104 (例如,固件版本I. I和固件版本1.2)。
所述主机设备102可以经由所述连接110与所述NVM封装104通信。在所述主机设备102和所述NVM封装104之间的所述连接110可以是固定的(例如,固定通信通道)和/或可分开的(例如,通用串行总线(USB)端ロ)。与所述NVM封装104交互可以包括提供命令(例如,引导命令、读命令、写命令)和传输引导信息,例如所述固件106,给所述NVM封装104。所述NVM封装104可以经由所述连接110使用主机接ロ 122和存储控制器124与所述主机设备102交互。与所述主机控制器112相拟,所述存储控制器124可以包括被配置为基于软件和/或固件指令的运行而执行操作的一个或者多个处理器和/或微处理器126。此外和/或可选地,所述存储控制器124可以包括基于硬件的组件,诸如ASIC,其被配置为执行各种操作。所述存储控制器124可以执行各种操作,诸如使用来自所述主机设备102的所述固件来引导所述NVM封装104。各种存储管理功能,诸如错误校正和损耗均衡,可以由所述主机控制器112和所述存储控制器124単独地或者结合地执行。在其中所述存储控制器124被配置为执行至少某些存储管理功能的实施方式中,所述NVM封装104可以称为“托管(managed)NVM” (或对于NAND闪存为“托管NAMD”)。这可以与“原始NVM” (或对于NAND闪存为“原始NAND”)相比,其中在所述NVM封装104之外的所述主机控制器112为所述NVM封装104执行存储管理功能。所述存储控制器124包括易失性存储器128和NVMl32。所述易失性存储器128可以是各种易失性存储器类型中的任意ー种,包括缓存和/或RAM。所述易失性存储器128可以由所述存储控制器124使用以执行存储操作和/或临时存储从NWM读出或者写到NVM的数据。例如,所述易失性存储器128可以存储固件130,诸如经由所述连接110所接收的所述固件106,到所述主机设备102,并且可以使用所述固件130来执行在所述NVM封装104上的操作(例如,读/写操作、诊断操作)。所述NVM132为系统存储器,其可以被所述存储控制器124使用以持久地存储系统信息(例如,诊断日志)和/或临时地存储信息,诸如固件,其可能无法配合于所述易失性存储器128中。所述NVM132可以如此受限制地读、写和/或擦除使得只有具有适当权限的特定系统操作可以访问所述NVM132。例如,所述NVM132可以包括存储特定物理地址的指令,该指令被加载到所述易失性存储器128中并且响应于由所述存储控制器124所接收的引导信号(例如,来自所述主机设备102的引导命令、从之前的未启动状态接收动力)由处理器/微处理器126执行。相反,可能不允许与作为从所述主机设备102所接收的写命令的一部分来执行的操作一起访问所述NVM132。在另ー示例中,从所述主机设备102所接收的所述固件106的ー些部分可以被存储于所述NVM132中,并且按需被加载到所述易失性存储器128中。所述NVMl 32可以是各种NVM (例如,NAND闪存、NOR闪存)中的任意ー种。在一些实施方式中,所述NVM132还本地并且持久地存储用于所述NVM封装104的固件。在这样的实施方式中,所述NVM封装104可以默认使用本地存储的固件并且所述主机设备102可以通过为所述NVM104提供的“从主机引导”命令覆写(override)这种默认设置。所述存储控制器124使用共享的内部总线134来访问用于持久数据存储的NVM。在所述示例系统100中,如此NVM被描述为包括多个存储芯片136a-n,其包括NVM138a-n。所述存储芯片可以是各种存储芯片,诸如集成电路(IC)芯片。尽管关于所述NVM封装104只描述了单一共享总线134,但NVM封装可以包括多于ー个的共享内部总线。每个内部总线可以与多个存储芯片(例如,2、3、4、8、32等)连接,如关于所述多个存储芯片136a-n所描述的。所述存储芯片136a_n可以以各种配置物理排列,诸如被堆积(stacked)。所述NVM138a-n可以是各种NVM中的任意ー种,诸如基于浮置栅极或者电荷捕捉技术的NAND闪存、NOR闪存、可察可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、铁电随机存取存储器(FRAM)、磁随机存储器(MRAM)、相变存储器(PCM),或者其任意组合。存储控制器124可以在所述NVM138a-n上使用由所述主机设备102提供的所述固件130执行各种操作(例如,读/写操作、诊断操作、生产测试操作)来引导所述NVM封装104。图IB为描述包括被配置为提供固件形式的引导信息给不包括存储控制器的NVM封装的主机设备的示例系统的框图。例如,如在所述示例系统150中所描述的,所述主机设备152可以为所述NVM封装154提供调节值156。在接收到所述调节值156之前、期间和/或响应于接收所述调节值156,所述NVM封装154可以发送状态消息158给所述主机设备152。例如,所述NVM封装154可以在所述状态消息158中指示其正在引导,并且作为响应接收所述调节值156。在另ー个例子中,在接收到从所述主机设备152引导的命令之后,所述NVM封装154可以指示其准备好接收所述调节值156。在另外的例子中,NVM封装154可以通过所述状态消息158指示所述调节值156的各个部分被接收。所述主机设备152可以是各种主机设备和/或系统中的任意ー个,诸如可携帯式媒体播放器、蜂窝电话、袖珍个人电脑、个人数字助手(PDA)、桌面电脑、膝上电脑和/或平板计算设备。所述NVM封装154包括NVM并且可以是球栅阵列封装或者其他适合类型的集成电路(IC)封装。所述NVM封装154可以通过与所述主机设备152的连接160 (例如,总线),提供从所述主机设备152获得固件。所述NVM封装154可以是所述主机设备152的一部分或者与所述主机设务152分开。所述主机设备152可以包括主机控制器162,其被配置为与所述NVM封装154交互以从所述NVM封装154获得诊断信息。所述主机控制器162可以包括被配置为基于软件和/或固件指令的运行而执行操作的一个或者多个处理器和/或微处理器。此外和/或可选地,所述主机控制器162可以包括基于硬件的组件,诸如ASIC,其被配置为执行各种操作。由所述主机控制器162所执行的操作可以包括确定何时启动和关闭所述NVM封装154、何时引导所述NVM封装154、提供一种固件给所述NVM封装154以及提供所述调节值156给所述NVM封装154。例如,所述主机控制器162可以提供引导命令给所述NVM封装154以及,响应于指示所述NVM封装154准备好接收所述调节值156的状态158,提供所述调节值156给所述NVM封装154。所述主机控制器162可以格式化根据在所述主机设备152和所述NVM封装154之间使用的通信协议传输给所述NVM封装154的信息(例如,命令、调节值156)。所述主机设备152包括存储器164 (例如,易失性存储器和/或NVM),其存储可以被提供给所述NVM封装154的调节值166。例如,当所述主机设备152引导时,所述主机设备152可以从所述主机设备152的NVM加载调节值166到易失性存储器。在所述主机设备152和所述NVM封装154操作期间,所述主机设备152可以在所述易失性存储器中維持所述调节值164。所述主机设备152可以从所述易失性存储器提供所述调节随166给所述NVM封装154。在其他的实施方式中,所述调节值166可以被存储于所述主机设备152的NVM中,并且按需读出所述主机设备152的NVM以引导所述NVM封装154。
9
所述调节值166可以包括用于配置所述NVM封装154以执行存储操作(例如,读、写、擦除)和与所述主机设备152交互的各种值。例如,所述调节值166可以包括值,所述值校准由所述NVM封装154使用的用于执行存储操作和与所述主机设备152通信的时序和电压电平。例如,调节值166可以是预定的数据值,当其被加载到易失性存储器中吋,由所述NVM封装154的组件使用以执行操作,诸如读和/或编程NVM。例如,所述调节值166可以定义编程电压电平和/或编程脉冲宽度,其用于所述NVM封装154中的NVM的数据采样。在引导期间,所述调节值166可以被用于初始化所述NVM封装154的各种组件,包括所述NVM封装154的NVM,以便所述NVM封装154能够可靠地读和/或写数据到所述NVM。所述主机设备152可以经由所述连接160与所述NVM封装154通信。在所述主机设备152和所述NVM封装154之间的所述连接160可以是固定的(例如,固定通信通道)和/或可分开的(例如,通用串行总线(USB)端ロ)。与所述NVM封装154交互可以包括提供命令(例如,引导命令、读命令、写命令)和传输引导信息,例如所述调节值156,给所述NVM封装154。所述NVM封装154可以经由所述连接160,使用主机接ロ 168和控制电路170与所述主机设备152交互。所述控制电路170可以被配置为至少执行经由所述主机接ロ 168从所述主机设备152接收到的命令(例如,读、写)。所述控制电路170可以通过各和哽件组件,诸如IC和ASIC,来实现。所述控制电路170包括被配置为执行从所述主机设备152接收到的命令(例如,控制信号)的命令执行逻辑172。所述命令执行逻辑172可以至少部分地基于寄存器174的内容执行所述命令。所述寄存器174可以加载从所述主机设备152接收到的调节值176。调节值156还可以和/或可线地被NVM封装154的NVM使用。例如,所述调节值156可以被存储于所述控制电路170中并且被发送给所述NVM,诸如原始NAND芯片。所述调节值156可以被用于控制所述NVM的数据采样,诸如用于所述NVM的控制电压和时序。所述寄存器174可以由所述命令执行逻辑172访问(作为所述命令执行逻辑172的一部分和/或与其分开),并且可以被用于各种能力,诸如存储数据、地址、指令、条件和状态信息。在所述NVM封装154正在引导时,所述寄存器174可以加载所述调节值176 (从所述主机设备152所接收的)。所述主机控制器162可以执行用于所述NVM封装154的各种操作,如上所述的关于图IA的所述存储控制器124可以执行的关于所述NVM封装104的操作。例如,所述主机控制器162可以执行用于所述NVM封装154的存储管理操作,诸如损耗平衡。所述系统150可以称为“原始NVM” (或对于NAND闪存为“原始NAND” )。所述控制电路172使用共享的内部总线178来访问被使用于持久数据存储的NVM。在所述示例系统150中,这种NVM被描述为包括NVM182a-n的多个存储芯片180a_n。所述存储芯片可以是各种存储芯片,诸如集成电路(IC)芯片。尽管关于所述NVM封装154只描述了单一共享总线178,但NVM封装可以包括多于ー个的共享内部总线。每个内部总线可以与多个存储芯片(例如,2、3、4、8、32等)连接,如关于所述多个存储芯片180a-n所描述的。所述存储芯片180a-n可以以各种配置物理排列,诸如被堆积。所述NVM182a_n可以是各种NVM中的任意ー种,诸如基于浮置栅极或者电荷捕捉技术的NAND闪存、NOR闪存、EPR0M、EEPROM、FRAM、MRAM、PCM,或者其任意组合。控制电路170可以在所述NVM182a_n上使用由
10所述主机设备152提供的所述调节值176执行操作(例如,读/写操作)来引导所述NVM封装154。尽管所述系统100和150被分开地讨论,但组合来自这两个系统的特征的其他系统也是可能的。例如,除了提供所述固件106给包括所述存储控制器124的所述NVM封装104之外,所述主机设备102还可以被配置为提供调节值(例如,所述调节值156)给所述NVM封装154用于所述NVM封装154的各种组件的配置。图2为描述包括带有被配置为提供引导信息给各种NVM封装的主机控制器204的存储设备202的示例系统200的框图。所述存储设备202可以是各种存储设备中的任意一种,诸如可携帯式媒体播放器、蜂窝电话、袖珍个人电脑、个人数字助手(PDA)、桌面电脑、膝上电脑和/或平板计算设备,和/或可移除/可携帯的存储设备(例如,闪存卡、USB闪存驱动)。示例存储设备202包括主机控制器204和NVM206。所述主机设备204可以与如上所述的关于图IA-B的所述主机设备112和/或所述主机设备162相似。所述主机控制器204包括一个或者多个处理器208、易失性存储器210和NVM212。所述处理器208可以是任意种类的处理器,诸如微处理器、中央处理器(CPU)、图形处理器(GPU)或者其中的任意组合。所述易失性存储器210可以是各种易失性存储器的任意ー种,诸如RAM和缓存。所述易失性存储器210可以由所述处理器208使用以执行各种操作,诸如检索和处理存储于所述NVM206中的数据。所述NVM212可以是各种NVM的任意ー种,诸如闪存(例如,NAND闪存、NOR闪存)中的任意ー种。所述NVM212可以持久地存储引导信息,诸如固件214和/或调节值216。所述固件214可以与如上关于图IA所描述的固件116-120相似,并且所述调节值216可以与如上关于图IB所描述的所述调节值166相似。所述固件214和/或调节值216可以被加载到所述易失性存储器210中(例如,当所述主机控制器204引导时),并按需从所述易失性存储器210被传输给所述NVM206。所述NVM206可以包括ー个或多个NVM封装218a_b。所述NVM封装218a_b中的每ー个都可以与所述NVM封装104和/或上述关于图IA-B所描述NVM封装154相似。例如,所述NVM封装218a-b每ー个可以包括多个带有NVM(例如,存储芯片136a_n和NVM138a_n)的存储芯片、一个或者多个存储控制器(例如,存储控制器124)和/或使用所述固件214和/或所述调节值216引导的控制电路(例如,所述控制电路170)。所述NVM206可以包括任意数量的NVM封装(例如,2、3、4、8、16等)。如上关于图IA-B所描述的,所述NVM管理可以由所述主机控制器204和/或所述NVM封装218a-b的控制器执行。例如,所述主机控制器204可以被配置为通过提供不同的固件和/或调节值给所述NVM封装218a-b来调整所述NVM封装218a_b的操作。在所述NVM封装218a-b的控制器控制所述存储管理操作(例如,错误校正、损耗平衡等)的至少ー部分的实施方式中,所述NVM封装218a-b可以被认为是“托管的”NVM。所述系统200被描述为还包括可以与所述存储设备202通信连接(直接和/或间接地)的外部设备220。在所述外部设备220和所述存储设备202间的通信可以包括在所述两个设备之间的数据和/或指令的传输。所述外部设备220可以是各种电子设备中的任意ー种,包括桌面电脑、膝上电脑、服务器系统和媒体计算设备(例如,媒体服务器、电视、立体声系统)。所述存储设备202可以通过物理的和/或无线的连接,使用外部设备接ロ222 (例如,无线芯片(chip)、USB接ロ等)与所述外部设备220通信。例如,在一些实施方式中,所述存储设备202可以是便携式媒体播放器和所述外部设备220可以是桌面电脑,所述桌面电脑可以经由物理连接(例如,USB线)相互传输媒体文件(例如,声音文件、视频文件等)。所述外部设备220可以为所述NVM206提供更新的和/或新的固件和/或调节值给所述存储设备202。例如,所述存储设备202可以被配置为周期性地检查来自所述外部设备220的固件214和/或调节值216的更新版本是否可用(和/或所述部设备220可以检查所述固件214和/或调节值216的版本,并且在可用的情况下提供已经更新的引导信息给所述存储设备)。所述固件214和/或调节值216可以由所述NVM封装218a_b中的每ー个使用。例如,所述固件214和/或调节值216的单ー拷贝可以被消储在所述NVM212中,并且被用于到多个NVM封装,诸如所述NVM封装218a-b。图3为描述用于从主机引导存储设备的示例过程300的流程图。所述过程300可以由多种存储设备执行,包括如上关于图IA所描述的NVM封装104、如上关于图IB所描述的NVM封装154和/或如上关于图2所描述的存储设备202。所述过程300包括在存储设备接收引导存储设备的指示(在302)。这种指示包括存储设备(例如所述NVM封装104和/或所述NVM封装154)可以接收的各种信号和/或命令。例如从主机设备(例如,所述主机设备102和/或所述主机设备152)所接收的芯片使能断言(assertion)信号可以是引导的指示。在另一例子中,从未启动状态启动的存储设备可以充当引导所述存储设备的指示。在另一例子中,从主机(例如,所述主机设备102和/或所述主机设备152)所接收的引导命令可以是引导存储设备的指示。在一些实施方式中,存储设备可以确定其是否重启。例如,所述NVM封装104的所述存储控制器124可以确定其在遇到特定类型错误时要重启并且给自身提供引导的指示。响应于接收到所述引导的指示,所述存储设备可以从主机设备获得引导信息(在304)。引导信息可以包括用于引导和操作存储设备的各种信息,包括固件(例如,所述固件106)和/或调节值(例如,所述调节值156)。获取引导信息可以包括提供给主机设备的存储设备准备好接收引导信息的指示(例如,所述状态指示器108),以多部分(例如,多个数据块)地从所述主机设备接收所述引导信息,并且提供每个部分已经成功由所述存储设备接收的确认(例如,所述状态指示器108)给所述主机设备。所述存储设备可以使用从所述主机设备所接收的所述引导信息引导(在306)。例如,所述存储控制器124可以通过加载从所述主机设备102所接收的所述固件130到所述易失性存储器128中并且使用固件130进行引导所述NVM封装104来引导所述NVM封装104。在另一例子中,从所述主机设备152所接收的所述调节值176可以被加载到所述寄存器174中并且所述NVM封装154可以被引导。在引导所述存储设备后,可以使用来自所述主机设备的所述引导信息来执行ー个或多个存储操作(在308)。例如,如所述固件130所提供的和/或所述主机设备102所命令的,所述存储控制器124可以执行存储操作。例如,如果所述操作固件116被提供给所述NVM封装104,所述存储控制器124可以执行标准存储操作(例如,读、写、擦除),并且,在一些实施方式中,可以执行存储管理操作,诸如损耗均衡和错误校正。在另一例子中,如果所述诊断固件118被提供给所述NVM封装104,所述存储控制器可以执行类似于产生和存储诊断日志的诊断操作。在叉一例子中,如果生产固件120被提供给所述NVM封装104,所述存储控制器124可以执行测试操作以确定是否所述NVM封装104的各种组件(例如,所述NVM138a-n、所述主机接口 122、所述处理器/微处理器126)已经恰当地安装和依照它们的相应技术规范操作。在另一例子中,所述控制电路170可以使用包含在所述寄存器174中的所述调节值176执行由所述主机设备152传输给所述NVM封装154的命令。一旦所述存储操作完成,所述存储设备可以关闭(power off)(在310)。例如,主机设备(例如,所述主机设备102和/或152)可以通过提供芯片使能去断言(deassertion)信号给所述存储设备和/或关闭为所述存储设备供电的电源使得存储设备(例如,所述NVM封装104和/或154)关闭。在另一例子中,存储设备(例如,所述NVM封装104)可以确定在以所述设备空闲状态过去阈值量的时间后,所述存储设 备将关闭。所述过程300可以连续地重复-意味着当存储设备在各种电源和/或操作状态之间连续地转换时,存储设备可以使用来自主机设备的引导信息重启。例如,为了减少存储设备的耗电量(以及尽可能延长电池寿命),存储设备可以在不使用时关闭。存储设备可以频繁地关闭和开启。这些从关闭状态到开启状态的转换中的每一个可以使得所述存储设备使用从所述主机获得的所述弓I导信息进行引导。图4为描述用于从主机引导存储设备的示例过程400的流程图。所述过程400可以由各种主机设备执行,诸如如上关于图IA所描述的主机设备102,如上关于图IB所描述的主机设备152,和/或如上关于图2所描述的存储设备202。在一些实施方式中,所述过程400通过接收来自存储设备的对弓I导信息的请求开始(在402)。例如,所述NVM封装104可以提供以固件形式的对引导信息的请求给所述主机设备102。在一些实施方式中,所述过程400通过判断需要访问存储设备和所述存储设备关闭开始(在404)。例如,所述主机设备102可以接收与一个范围的逻辑地址有关的读请求(或确定读数据的需要),判断相应于所述NVM封装104的逻辑地址的范围,并且判断所述NVM封装104关闭。基于这种判断,可以提供引导命令给所述存储设备(在406)。例如,所述主机设备102可以提供“从主机引导”的命令给所述NVM封装104。响应于提供这种命令,主机设备可以等待以提供引导信息给所述存储设备,直到接收到所述存储设备准备好接收所述引导信息的指令(在408)。引导信息可以被传输到所述存储设备(在410)。例如,所述主机设备102可以传输所述固件116-120中的一个或多个给所述NVM封装104。在另一例子中,所述主机设备152可以传输所述调节值166给所述NVM封装154。可以从所述主机设备的易失性存储器传输所述引导信息。一旦所述引导信息已经被传输给存储设备,所述主机可以提供一个或者多个命令给所述存储设备和/或等待来自所述存储设备的响应(在412)。例如,如果所述主机设备102传输所述诊断固件118给所述NVM封装104,那么所述主机设备102可以为所述NVM封装104发出一个或者多个命令来收集和提供特定诊断信息给所述主机设备102,并且可以等待被提供给所述主机设备102的诊断信息。在另一例子中,在所述NVM封装154已经成功地使用所传输的调节值156引导后,所述主机设备152可以提供读命令给所述NVM封装154,并且等待来自所述NVM封装154的被请求的数据。如果没有更多的命令以提供给存储设备和/或以接收来自所述存储设备的被请求的信息,主机可以使得所述存储设备关闭(在414)。例如,所述主机设备102可以通过提供芯片使能去断言(deassertion)信号给所述NVM封装104,其可以使得所述NVM封装104关闭。可以由主机设备,诸如所述主机设备102和/或所述主机设备152重复所述过程400。例如,当所述主机设备102需要所述NVM封装104执行一些任务(例如,读数据、存储数据、测试组件、确定诊断信息)时,所述主机设备102可以使得所述NVM封装104使用来自所述主机设备102的引导信息引导,并且可以在不需要时,使得所述NVM封装104关闭,以便减少耗电量。 本文所述的主题和操作的实施例以数字电子电路实现,或者以计算为机软件、固件、或者硬件,包括在本文所公开的结构和它们的等价结构,或者以它们中的一个或者多个的组合实现。本文所述的主题可以实现为一个或者多个计算机程序,即,一个或者多个计算机程序指令的模块,其在计算机存储介质上编码,用于由数据处理装置执行或者用于控制数据处理装置的操作。可选地或者此外,所述程序指令可以在人工产生的传播信号上编码,例如,机器产生的电、光或电嗞信号,其被产生用于编码信息用于传输给合适的接收设备用于通过数据处理装置执行。计算机存储介质可以是,或者电含其中,计算机可读存储设备、计算机可读存储基底、随机或串行访问存储阵列或设备,或者它们中的一个或者多个的组合。而且,当计算机存储介质不是传播信号时,计算机存储介质可以是在人工产生的传播信号上编码的计算机程序指令的来源或目标。所述计算机存储介质还可以是,或者电含其中,一个或者多个分开的物理组件或者介质(例如,多个CD、磁盘或者其他存储设备)。本文中所述的操作可以实现为由数据处理装置在存储于一个或者多个计算机可读存储介质或从其他来源所接收的数据上执行的操作。术语“数据处理装置”包含所有类型的用于处理数据的装置、设备和机器,包括示例性的可编程处理器、计算机、芯片上系统,或者前述的多个或组合。所述装置可以包括专用逻辑电路,例如,FPGA(现场可编程门阵列)或者ASIC(专用集成电路)。除了硬件以外,所述装置还可以包括,产生用于讨论中的计算机程序的执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机,或者它们中一个或者多个的组合的代码。所述装置和执行环境可以实现各种不同的计算模型架构,诸如网络服务(web service)、分布式计算和网格计算架构。计算机程序(也被称为程序、软件、软件应用、脚本或者代码)可以以程序语言的任意形式编写,包括编译或者解释语言、说明或程序语言,并且可以以任意形式部署,包括作为独立的程序或者作为模块、组件、子程序、对象或者其他适合用于计算环境中的单元。计算机程序可以,但不必,对应于文件系统中的文件。程序可以被存储在持有其他程序或者数据的文件的一部分中(例如,保存在标记语言文档的一个或者多个脚本),在专用于讨论中的程序的一个文件中,或者在多个协同文件(例如,保存一个或者多个模块、子程序或者代码部分的文件)中。计算机程序可以被部署以在位于一个位置的或通过通信网络相互连接的多个位置上分布的一个计算机或者多个计算机上执行。在本文中所述的过程和逻辑流程可以由执行一个或者多个计算机程序通过对输入数据操作和产生输出来执行动作的一个或者多个可编程处理器执行。所述过程和逻辑流程可以通过专用逻辑电路执行,并且装置也用以实现为专用逻辑电路,例如,FPGA(现场可编程门阵列)或者ASIC(专用集成电路)。适合于计算机程序执行的处理器包括,以示例方式,通用和专用微处理器,以及任意类型的数字计算机的一个或者多个处理器。一般地,处理器将从只读存储器或者随机存取存储器或者二者接收指令和数据。计算机的必需元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或者多个存储设备。一般地,计算机将还包括用于存储数据的一个或者多个大容量存储设备或者与其操作性地耦合以接收数据或者发送数据,或者二者,例如,磁盘、磁光盘或者光盘。但是,计算机不必具有这些设备。此外,计算机可以被嵌入到另一设备中,例如,移动电话、个人数字助手(PDA)、移动音频或者视频播放器、游戏机、全球定位系统(GPS)接收机或者可携带存储设备(例如,通用串行总线(USB)闪存驱动),仅举几例。适合于存储计第机程序指令和数据的设备包括各种形式的非易失性存储器、介质和存储设备,包括以示例方式的半导体存储设备,例如,EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或者可移除磁盘;磁光盘;以及⑶ROM和DVD-ROM磁盘。处理器和存储器可·以附加有或者合并于专用逻辑电路中。类似地,尽管操作以特定次序在附图中描述,但这不能理解为要求这些操作以所示的特定次序或者以顺序次序执行,或者执行所有的所示操作,以实现所期望的结果。在某些环境中,多任务和并行处理可以是有利的。此外,在上述实施例中的各种系统组件的分开不应被理解为在所有实施例中需要这样的分开,而是应当理解为所述的程序组件和系统可以一般地在单一软件产品中集成在一起或者封装到多个软件产品中。因此,已经描述了所述主题的特定实施例。其他实施例落入如下的权利要求的范围内。此外,可以使用用于从主机引导的其他机构。在一些情况中,在权利要求中所引用的动作可以以不同次序实现并且仍然能够实现所期望的结果。此外,为实现所期望的结果,在附图中所描述的过程不必要求所示的特定次序,或者顺序次序。在一些实现中,多任务和并行处理是有利的。
权利要求
1.一种系统,包括 用于在存储设备接收用于引导存储设备的指令的装置,其中所述存储设备包括所述存储设备的控制器可访问的非易失性存储器; 用于响应于接收所述用于引导存储设备的指令,通过所述存储设备从主机设备获取固件的装置,其中所述主机设备与所述存储设备分开并与所述存储设备通作耦合;以及 用于使用来自所述主机设备的固件引导所述存储设备的装置,其中所述存储设备与所述主机设备分开引导,以及所述主机设备使用存储于所述非易失性存储器并且通过与所述存储设备的存储控制器通信获得的数据或者指令来执行操作。
2.根据权利要求I的系统,其中用于引导所述存储设备的指令被所述主机设备接收并且指示所述存储设备使用来自所述主机设备的固件引导以及覆写所述存储设备的非易失性储器所存储的从固件引导的指令。
3.根据权利要求I的系统,进一歩包括,在所述存储设备已经使用来自所述主机设备的固件引导后,使用所述固件在所述存储设备上执行ー个或者多个操作。
4.根据权利要求3的系统,其中所述固件包括操作固件,其具有使得所述控制器在所述非易失性存储器上执行读、写和擦除操作的指令,并且在所述存储设备上执行的所述ー个或者多个操作包括ー个或者多个所述读、写和擦除操作。
5.根据权利要求4的系统,其中所述操作固件进ー步包括使得所述控制器在所述非易失性存储器上执行存储管理操作的指令。
6.根据权利要求5的系统,其中所述ー个或者多个所述存储管理操作包括损耗均衡操作。
7.根据权利要求3的系统,其中所述固件包括诊断固件,其具有使得所述控制器在所述存储设备上制行诊断操作的指令;以及 其中在所述存储设备上执行的所述ー个或者多个操作包括一个或者多个诊断操作。
8.根据权利要求3的系统,其中所述固件包括生产固件,其具有使得所述控制器测试所述存储设备的组件的安装和操作的指令,所述组件至少包括所述非易失性存储器,以及在所述存储设备上执行的所述ー个或者多个操作包括用于测试所述存储设备的一个或者多个组件的安装和操作的ー个或者多个操作。
9.根据权利要求I的系统,其中所述非易失性存储器包括闪存。
10.ー种方法,包括 由主机设备提供引导命令给存储设备,指示所述存储设备使用来自所述主机设备的固件引导,其中所述主机设备与所述存储设备分开并与所述存储设备通信耦合,并且所述存储设备包括非易失性存储器; 在主机设备接收存设备难备好从所述主机设备接收固件的指示;以及 响应于接收所述指示,所述主机设备传输所述固件到所述存储设备,其中到所述存储设备的所述固件的传输使得所述存储设备使用所述固件引导,其中所述存储设备与所述主机设备分开引导。
11.根据权利要求10的方法,其中所述固件包括操作固件,其具有使得所述存储设备的控制器在所述存储设备的所述非易失性存储器上执行读、写和擦除操作的指令。
12.根据权利要求10的方法,其中所述固件包括诊断固件,其具有使得所述存储设备的控制器在所述存储设备上执行诊断操作的指令。
13.根据权利要求10的方法,其中所述固件包括生产固件,其具有使得所述存储设备的控制器测试所述存储设备的组件的安装和操作的指令,所述组件至少包括所述非易失性存储器。
14.根据权利要求10的方法,其中所述固件被存储于所述主机设备的易失性存储器中并且从所述主机设备的易失性存储器提供给所述存储设备。
15.根据权利利要求10的方法,进ー步包括,响应于访问存储于所述主机设备可访问的多个存储设备的一个中的数据的请求,决定所述请求数据由存储设备存储;以及 其中响应于决定所述请求数据由所述存储设备存储,提供所述引导命令给所述存储设备。
16.ー种存储设备,包括 非易失性存储器; 主机接ロ,适用于将所述存储设备通信耦接到主机设备;以及 存储控制器,被配置为在所述非易失性存储器上执行存储操作并且适用于通过所述主机接ロ与所述主机设备通信,其中所述存储控制器还可以被配置为 通过所述主机接ロ接收用于从所述主机设备引导所述存储设备的指令; 响应于接收所述指令,从所述主机设备获取固件;以及 使用来自所述主机设备的固件引导所述存储设备,其中所述存储设备与所述主机设备分开引导,并且所述主机设备使用存储于所述非易失性存储器并且经由通过所述主机接ロ与所述存储设备的存储控制器的通信获得的数据或者指令执行操作。
17.根据权利要求16的存储设备,其中所述固件包括操作固件,其具有使得所述存储控制器在所述非易失性存储器上执行读、写和擦除操作的指令。
18.根据权利要求17的存储设备,其中所述操作固件进ー步具有使得所述存储控制器在所述非易失性存储器上执行存储管理操作的指令。
19.根据权利要求16的存储设备,其中所述固件包括诊断固件,其具有使得所述存储控制器在所述存储设备上执行诊断操作的指令。
20.根据权利要求16的存储设备,其中所述固件包括生产固件,其具有使得所述存储控制器测试所述存储设备的组件的安装和操作的指令,所述组件至少包括所述非易失性存储器。
全文摘要
本发明涉及从主机引导存储设备。在一个实施方式中,一种方法包括在存储设备接收用于引导所述存储设备的指令,其中所述存储设备包括所述存储设备的控制器可访问的非易失性存储器;以及,响应于接收用于引导所述存储设备的所述指令,通过所述存储设备获取来自主机设备的固件,其中所述主机设备与所述存储设备分开并与所述存储设备通信耦合。所述方法还可以包括使用来自所述主机设备的所述固件引导所述存储设备,其中所述存储设备与所述主机设备分开引导,并且所述主机设备使用存储于所述非易失性存储器中并且通过与所述存储设备的存储控制器的通信获得的数据或者指令执行操作。
文档编号G06F9/30GK102915210SQ201210319478
公开日2013年2月6日 申请日期2012年6月29日 优先权日2011年7月1日
发明者A·费, N·J·瓦卡拉特, N·瑟弗 申请人:苹果公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1