掌桥专利:专业的专利平台
掌桥专利
首页

具有采用低速回退的快速引导代码传输的非易失性存储设备

文献发布时间:2023-06-19 16:11:11



背景技术

许多电子设备利用嵌入式或连接的存储系统。通常,嵌入式或连接的存储系统包括非易失性存储器,诸如闪存存储器。包括嵌入式或连接的存储系统的电子设备被称为主机。

主机启动操作并进入针对预期操作的准备就绪状态的过程被称为“引导”或“引导过程”。主机通常具有ROM(只读存储器),该ROM存储用于开始引导过程的最少量的代码。当主机开机或重启时,将执行存储在ROM中的代码,该代码指示主机从嵌入式或连接的存储系统的专用部分上载完整的引导代码。主机将使用该引导代码来执行引导过程。

由于电子设备的用户通常不想为了引导过程的完成而等待太长时间,因此期望以高传输速度执行来自嵌入式或连接的存储系统的完整引导代码的传输。在一些情况下,引导代码的传输速度在嵌入式或连接的存储系统中预编程。然而,当线路条件(例如,温度、干扰和/或线路延迟)变得不利于以预编程的传输速度进行通信时,会发生问题。例如,引导代码在从存储系统传输到主机期间可能遭受损坏。如果不能由主机读取引导代码,则主机和/或存储系统可被视为不可操作。

附图说明

类似编号的元件是指不同的图中的共同部件。

图1A是连接到主机的存储系统的一个实施方案的框图。

图1B示出前端处理器电路的一个实施方案的框图。

图1C示出后端处理器电路的一个实施方案的框图。

图1D示出存储器封装件的一个实施方案的框图。

图1E是主机和存储系统之间的接口的框图。

图2A是存储器管芯的一个实施方案的功能框图。

图2B是集成存储器组件的一个实施方案的功能框图。

图2C描绘了集成存储器组件的一个实施方案。

图3是描述如何在主机和存储系统之间的接口上执行命令的时序图。

图4是描绘命令的结构的框图。

图5是描述用于将引导代码从存储系统传输到主机的过程的一个实施方案的流程图。

图6是描述用于将引导代码从存储系统传输到主机的过程的一个实施方案的流程图。

图7是描述用于将引导代码从存储系统传输到主机的过程的一个实施方案的流程图。

图8是描述用于将引导代码从存储系统传输到主机的过程的一个实施方案的时序图。

图9是描述用于将引导代码从存储系统传输到主机的过程的一个实施方案的时序图。

图10是描述用于将引导代码从存储系统传输到主机的过程的一个实施方案的时序图。

图11是描述用于将引导代码从存储系统传输到主机的过程的一个实施方案的流程图。

图12是描述用于将引导代码从存储系统传输到主机的过程的一个实施方案的流程图。

图13是描述用于将引导代码从存储系统传输到主机的过程的一个实施方案的流程图。

图14是描述用于将引导代码从存储系统传输到主机的过程的一个实施方案的时序图。

具体实施方式

为了防止主机和/或存储系统被视为不可操作,建议快速传输引导代码,并且如果快速传输引导代码存在问题,则自动回退到低速传输引导代码。实现该建议的存储系统包括被配置为存储用于主机的引导代码的非易失性存储器,和连接到该非易失性存储器的控制电路。响应于来自主机的传输引导代码的第一请求(例如,在加电、重置或其他情况下),该存储系统开始以第一传输速度向主机传输引导代码。如果确定引导代码传输已失败(例如,在主机处接收的引导代码包括过多错误或由于不利的线路条件诸如极端温度、干扰和/或其他线路延迟而以其他方式不可用),则主机将发出对引导代码的第二请求。响应于对引导代码的第二请求,并且因为引导代码的前一次传输失败而认识到这是回退条件,该存储系统以较低的传输速度向主机重新传输引导代码。以较低的速度传输可允许主机成功接收引导代码。

图1A是连接到主机系统120的存储系统100的一个实施方案的框图。存储系统100可实现本文所公开的技术。许多不同类型的存储系统可与本文所公开的技术一起使用。示例性存储系统包括SD卡或固态驱动器(“SSD”);然而,也可以使用其他类型的存储系统。存储系统100包括存储器控制器102、用于存储数据的一个或多个存储器封装件104,和本地存储器(例如,DRAM/ReRAM)106。存储器控制器102包括前端处理器电路(FEP)110和一个或多个后端处理器电路(BEP)112。在一个实施方案中,FEP电路110在ASIC上实现。在一个实施方案中,每个BEP电路112在单独ASIC上实现。在一个实施方案中,用于BEP电路112和FEP电路110中的每一者的ASIC在同一半导体上实现,使得存储器控制器102被制造为片上系统(“SoC”)。FEP 110和BEP 112均包括其本身的处理器。在一个实施方案中,FEP 110和BEP112按主从配置运行,其中FEP 110是主设备,并且每个BEP 112是从设备。例如,FEP电路110实现闪存转换层,该闪存转换层执行存储器管理(例如,垃圾收集、损耗均衡等)、逻辑到物理地址转换、与主机的通信、DRAM(本地易失性存储器)的管理以及SSD(或其他非易失性存储系统)的整体操作的管理。BEP电路112根据FEP电路110的请求来管理存储器封装件104中的存储器操作。例如,BEP电路112可以实施读取、擦除和编程过程。另外,BEP电路112可执行缓冲器管理,设置FEP电路110所需的特定电压电平,执行纠错(ECC),控制到存储器封装的切换模式接口等。在一个实施方案中,每个BEP电路112负责其本身的一组存储器封装。存储器控制器102是控制电路的一个示例。

在一个实施方案中,存在多个存储器封装件104。每个存储器封装件104可包括一个或多个存储器管芯。在一个实施方案中,存储器封装件104中的每个存储器管芯利用NAND闪存存储器(包括二维NAND闪存存储器和/或三维NAND闪存存储器)。在其他实施方案中,存储器封装件104可以包括其他类型的存储器;例如,存储器封装可包括相变存储器(PCM)或磁阻随机存取存储器(MRAM)。

在一个实施方案中,存储器控制器102使用接口130与主机系统120通信。为了与存储系统100一起运行,主机系统120包括经由总线128进行通信的主机处理器122、主机存储器124和接口126。主机存储器124是主机的物理存储器,并且可以是DRAM、SRAM、非易失性存储器或另一类型的存储装置。主机120还可以包括连接到总线128的硬盘驱动器和/或与总线128通信的USB驱动器。用于对主机处理器122进行编程的软件(代码)可存储在主机存储器124、连接到总线128的硬盘驱动器或USB驱动器中。主机存储器124、连接到总线128的硬盘驱动器和USB驱动器是非暂态处理器可读存储介质的示例,该存储介质存储处理器可读代码,该代码当在主机处理器122上执行时,使得主机处理器122执行下述方法。

主机系统120在存储系统100外部并之分开。在一个实施方案中,存储系统100嵌入主机120中或连接到该主机系统。存储器控制器102可经由各种类型的通信接口与主机120通信,包括例如SD卡接口、PCIe上的NVME、构造架构上的NVMe,或基于加速器高速缓存一致互连(CCIX)、快速链路计算(CXL)、开放式一致加速器处理器接口(OpenCAPI)、Gen-Z等的高速缓存/存储器一致架构。

图1B是FEP电路110的一个实施方案的框图。图1B示出了与主机系统120通信的主机接口150和主机处理器152。主机处理器152可以是本领域中已知的适于实现的任何类型的处理器。主机处理器152与片上网络(NOC)154通信。NOC是集成电路上的通信子系统,通常在SoC中的核心之间。NOC可跨越同步和异步时钟域,或者使用非时钟的异步逻辑。NOC技术将网络理论和方法应用于片上通信,并且与常规总线和交叉开关互连相比带来了显著的改善。与其他设计相比,NOC提高了SoC的可扩展性以及复杂SoC的电源效率。NOC的导线和链路由许多信号共享。由于NOC中的所有链路可在不同的数据分组上同时运行,因此实现了高度并行。因此,随着集成子系统的复杂性不断增大,与先前的通信架构(例如,专用的点对点信号线、共享总线或具有桥的分段总线)相比,NOC提供增强的性能(诸如吞吐量)和可扩展性。连接到NOC 154并且与NOC 154通信的是存储器处理器156、SRAM 160和DRAM控制器162。DRAM控制器162用于操作DRAM(例如,DRAM 106,它是易失性存储器)并且与该DRAM通信。SRAM 160是由存储器处理器156使用的本地易失性RAM存储器。存储器处理器156用于运行FEP电路并且执行各种存储器操作。与NOC通信的还有两个PCIe接口164和166。在图1B的实施方案中,存储器控制器102包括两个BEP电路112;因此,存在两个PCIe接口164/166。每个PCIe接口164/166与BEP电路112中的一个通信。在其他实施方案中,可存在多于或少于两个BEP电路112;因此,可存在多于两个PCIe接口。

图1C是BEP电路112的一个实施方案的框图。图1C示出用于与FEP电路110通信(例如,与图1B的PCIe接口164和166中的一者通信)的PCIe接口200。PCIe接口200与两个NOC202和204通信。在一个实施方案中,两个NOC可被组合成一个大的NOC。每个NOC(202/204)通过XOR引擎(224/254)、ECC引擎(226/256)连接到SRAM(230/260)、缓冲器(232/262)、处理器(220/250)和数据路径控制器(222/252)。

ECC引擎226/256用于执行纠错,如本领域所知。在本文中,ECC引擎226/256可被称为控制器ECC引擎。XOR引擎224/254用于对数据执行XOR,使得可在存在编程错误的情况下以可恢复的方式组合和存储数据。在一个实施方案中,XOR引擎224/254可恢复使用ECC引擎226/256无法解码的数据。

数据路径控制器222连接到存储器接口228,以用于经由四个信道与集成存储器组件通信。因此,顶部NOC 202与用于与存储器封装通信的四个信道的存储器接口228相关联,并且底部NOC 204与用于与存储器封装通信的四个附加信道的存储器接口258相关联。在一个实施方案中,每个存储器接口228/258都包括四个切换模式接口(TM接口)、四个缓冲器和四个调度器。对于每个信道,存在一个调度器、缓冲器和TM接口。处理器可以是本领域中已知的任何标准处理器。数据路径控制器222/252可以是处理器、FPGA、微处理器或其他类型的控制器。XOR引擎224/254和ECC引擎226/256是专用的硬件电路,称为硬件加速器。在其他实施方案中,XOR引擎224/254、ECC引擎226/256可在软件中实现。调度器、缓冲器和TM接口是硬件电路。在其他实施方案中,存储器接口(用于与存储器管芯通信的电路)可以为与图1C所描绘不同的结构。另外,具有与图1B和图1C不同的结构的控制器也可以与本文描述的技术一起使用。

图1D是存储器封装件104的一个实施方案的框图,该封装件包括连接到存储器总线(数据线和芯片使能线)318的多个存储器管芯300(存储器管芯0、存储器管芯1、存储器管芯2,…存储器管芯M)。存储器总线318连接到切换模式接口270以用于与BEP电路112的TM接口进行通信(参见例如图1C)。在一些实施方案中,存储器封装件可以包括连接到存储器总线318和TM接口270的小控制器。总之,存储器封装件104可具有8个或16个存储器管芯;然而,也可以实现其他数量的存储器管芯。本文描述的技术不限于任何特定数量的存储器管芯。在一些实施方案中,存储器封装件还可包括处理器、CPU设备,诸如RISC-V CPU以及一定量的RAM,以帮助实现下文所述的一些能力。本文描述的技术不限于任何特定数量的存储器管芯。

图1E是主机120与存储系统100之间的接口130的框图。在一个实施方案中,接口130是SD卡接口,其包括以下信号:CLK、V

图2A是描绘可以实现本文所述技术的存储器管芯300的一个示例的框图。存储器管芯300(其可对应于图1C的存储器管芯300中的一个)包括非易失性存储器阵列302。存储器阵列302的全部或一部分用于存储引导代码350。在一个实施方案中,引导代码350驻留在一个存储器管芯300上。在另一个实施方案中,引导代码350驻留在多个存储器管芯300上。存储器阵列302的阵列端子线包括组织成行的各种字线层,以及组织成列的各种位线层。然而,也可以实现其他取向。存储器管芯300包括行控制电路320,该行控制电路的输出端308连接到存储器阵列302的相应字线。行控制电路320从系统控制逻辑电路360接收一组M行地址信号和一个或多个各种控制信号,并且通常可以包括诸如行解码器322、阵列端子驱动器324和块选择电路326等电路以用于读取操作和写入操作两者。行控制电路320还可以包括读取/写入电路。存储器管芯300还包括列控制电路310,该列控制电路包括感测放大器330,该列控制电路的输入端/输出端306连接到存储器阵列302的相应位线。尽管针对阵列302仅示出了单个块,但是存储器管芯可以包括可以被单独访问的多个阵列或多个平面。列控制电路系统310从系统控制逻辑部件360接收一组N个列地址信号和一个或多个各种控制信号,并且通常可以包括诸如列解码器312、阵列端子接收器或驱动器314、块选择电路系统316以及读/写电路系统和I/O多路复用器等电路。

系统控制逻辑部件360从主机120接收数据和命令,并且向存储器控制器102提供输出数据和状态。在一些实施方案中,系统控制逻辑部件360包括提供存储器操作的管芯级控制的状态机362。在一个实施方案中,状态机362能够由软件编程。在其他实施方案中,状态机362不使用软件并且完全地在硬件(例如,电路)中实现。在另一个实施方案中,状态机362由微控制器或微处理器替换,其中微控制器或微处理器在存储器芯片之上或之外。系统控制逻辑部件360还可以包括功率控制模块364,该功率控制模块控制在存储器操作期间供应给存储器阵列302的行和列的功率和电压,并且可以包括用于产生调节电压的电荷泵和调节器电路。系统控制逻辑部件360包括存储装置366,该存储装置可用于存储用于操作存储器阵列302的参数。

命令和数据经由存储器控制器接口368(也称为“通信接口”)在存储器控制器102与存储器管芯300之间传输。存储器控制器接口368是用于与存储器控制器102通信的电接口。存储器控制器接口368的示例包括切换模式接口和开放NAND闪存接口(ONFI)。也可以使用其他I/O接口。例如,存储器控制器接口368可实现切换模式接口,该切换模式接口连接到存储器控制器102的存储器接口228/258的切换模式接口。在一个实施方案中,存储器控制器接口368包括连接到存储器控制器102的一组输入和/或输出(I/O)引脚。

在一些实施方案中,存储器管芯300的所有元件(包括系统控制逻辑部件360)可以形成为单个管芯的一部分。在其他实施方案中,系统控制逻辑部件360中的一些或全部可以形成在不同的管芯上。

出于本文档的目的,短语“控制电路”包括存储器控制器102、状态机362、微控制器、微处理器、系统控制逻辑部件360的全部或一部分、行控制电路320、列控制电路310和/或用于控制非易失性存储器的其他类似电路中的任一者或组合。一个或多个控制电路可以仅包括硬件或者包括硬件和软件(包括固件)的组合。例如,由固件编程以执行本文描述的功能的控制器是控制电路的一个示例。控制电路可以包括处理器、FGA、ASIC、集成电路,或其他类型的电路。

在一个实施方案中,存储器结构302包括非易失性存储器单元的三维存储器阵列,其中多个存储器级形成在单个衬底诸如晶圆上方。存储器结构可包括任何类型的非易失性存储器,该非易失性存储器在具有设置在硅(或其他类型的)衬底上方的有源区域的存储器单元的一个或多个物理级中一体地形成。在一个示例中,非易失性存储器单元包括具有电荷俘获层的垂直NAND串。

在另一个实施方案中,存储器结构302包括非易失性存储器单元的二维存储器阵列。在一个示例中,非易失性存储器单元是利用浮动栅极的NAND闪存存储器单元。也可使用其他类型的存储器单元(例如,NOR型闪存存储器)。

包括在存储器结构302中的存储器阵列架构或存储器单元的确切类型不限于上述示例。可以使用许多不同类型的存储器阵列架构或存储器技术来形成存储器阵列302。实现本文提出的要求保护的新实施方案不需要特定的非易失性存储器技术。用于存储器陈列(或其他类型的存储器结构)302的存储器单元的合适技术的其他示例包括ReRAM存储器(电阻式随机存取存储器)、磁阻式存储器(例如,MRAM、自旋转移矩MRAM、自旋轨道扭矩MRAM)、FeRAM、相变存储器(例如,PCM)等。用于存储器单元架构的合适技术的示例包括二维阵列、三维阵列、交叉点阵列、堆叠二维阵列、竖直位线阵列等。

ReRAM交叉点存储器的一个示例包括可逆电阻切换元件,其布置在由X线和Y线(例如,字线和位线)访问的交叉点阵列中。在另一个实施方案中,存储器单元可包括导电桥存储器元件。导电桥存储器元件也可称为可编程金属化单元。基于固体电解质内的离子的物理重新定位,导电桥存储器元件可用作状态改变元件。在一些情况下,导电桥存储器元件可包括两个固体金属电极,一个是相对惰性的(例如,钨),而另一个是电化学活性的(例如,银或铜),在两个电极之间具有固体电解质的薄膜。随着温度升高,离子的迁移率也增加,这导致导电桥存储器单元的编程阈值降低。因此,导电桥存储器元件可在整个温度范围内具有宽范围的编程阈值。

另一个示例是通过磁存储元件来存储数据的磁阻随机存取存储器(MRAM)。这些元件由两个被薄绝缘层隔开的铁磁层形成,这两个铁磁层中的每一个铁磁层都可以保持磁化。这两个层中的一个层是被设置为特定极性的永磁体;另一个层的磁化可以被改变以匹配外磁场对存储存储器的磁化。存储器设备由此类存储器单元的网格构建。在用于编程的一个实施方案中,每个存储器单元位于一对写入线之间,该对写入线被布置成彼此成直角,与单元平行,一个在单元上方并且一个在单元下方。当电流通过它们时,产生感应磁场。下文将更详细地讨论基于MRAM的存储器实施方案。

相变存储器(PCM)利用了硫属化合物玻璃的独特性能。一个实施方案使用GeTe-Sb2Te3超晶格通过仅利激光脉冲(或来自另一个源的光脉冲)改变锗原子的配位状态来实现非热相变。因此,编程的剂量是激光脉冲。可以通过阻止存储器单元接收光来抑制存储器单元。在其他PCM实施方案中,存储器单元通过电流脉冲来编程。应当注意,在该文件中使用“脉冲”不需要矩形脉冲,但包括声音、电流、电压光或其他波的(连续或非连续)振动或脉冲串。各个可选择存储器单元或位内的这些存储器元件可以包括作为选择器的另外的串联元件,诸如双向阈值开关或金属绝缘体衬底。

本领域普通技术人员将认识到,本文所述的技术不限于单个特定存储器结构、存储器配置或材料构成,但涵盖了在如本文所述的以及如本领域普通技术人员所理解的技术实质与范围内的许多相关的存储器结构。

图2A的元件可被分组为两个部分,即存储器阵列302的结构和外围电路,该外围电路(在一些实施方案中)包括除存储器阵列302之外的所有结构即310、320和360。存储器电路的重要特性是其容量,该容量可以通过如下方式增加:增加留给存储器结构302作特定用途的存储系统100的存储器管芯的面积;然而,这减小了可用于外围电路系统的存储器管芯的面积。这可以对这些外围元件造成相当严重的限制。例如,需要在可用区域内装配感测放大器电路,这可是对感测放大器设计架构的重大限制。相对于系统控制逻辑部件360,可用面积减小可能会限制可以在芯片上实现的可用功能。因此,在存储系统100的存储器管芯的设计中,需要对存储器结构302的专用面积量以及外围电路系统的专用面积量进行基本权衡。

存储器阵列302与外围电路系统通常有矛盾的另一个区域是在形成这些区域时所涉及的处理中,因为这些区域通常涉及不同的处理技术,导致在单个管芯上实施不同技术时需要进行权衡。例如,当存储器阵列302是NAND闪存时,这是NMOS结构,而外围电路通常是基于CMOS的。例如,诸如感测放大器电路、电荷泵、状态机中的逻辑元件和系统控制逻辑部件360中的其他外围电路系统等元件通常采用PMOS器件。用于制造CMOS管芯的处理操作在许多方面将不同于针对NMOS闪存NAND存储器或其他存储器单元技术所优化的处理操作。

为了改进这些限制,下文所述的实施方案可将图2A的元件分离到单独形成的管芯上,然后将这些管芯接合在一起。更具体地讲,存储器阵列302可以形成在一个管芯(存储器管芯)上,并且外围电路元件中的一些或全部(包括一个或多个控制电路)可以形成在单独的管芯(控制管芯)上。例如,存储器管芯可以仅由存储器元件形成,诸如闪存NAND存储器、MRAM存储器、PCM存储器、ReRAM存储器或其他存储器类型的存储器单元阵列。然后可以将外围电路中的一些或全部电路(甚至包括诸如解码器和感测放大器等元件)移到单独的控制管芯上。这允许根据其技术单独地优化存储器管芯中的每个管芯。例如,NAND存储器管芯可以针对基于NMOS的存储器阵列结构进行优化,而无需担心现在已移到可以针对CMOS处理进行优化的独立外围电路系统管芯上的CMOS元件。这为外围元件提供了更多空间,如果外围元件被限制于容纳了存储器单元阵列的相同管芯的边缘,则现在可结合可能不容易结合的附加能力。然后可在接合式多管芯存储器电路中将两个管芯接合在一起,其中一个管芯上的阵列连接到另一个存储器电路上的外围元件。例如,虽然下面将集中介绍一个存储器管芯和一个控制管芯的接合式存储器电路,但其他实施方案可使用更多管芯,诸如两个存储器管芯和一个外围电路管芯。

图2B示出了图2A的布置的替代性布置,其可以使用晶圆对晶圆接合来实现以提供接合管芯对(被称为集成存储器组件)。图2B描绘了集成存储器组件307的一个实施方案的功能框图。一个或多个集成存储器组件307可用于存储系统100中的存储器封装件104中。集成存储器组件307包括两种类型的半导体管芯(或更简洁地,“管芯”)。存储器管芯301包括存储器阵列302。存储器阵列302可包含非易失性存储器单元。存储器阵列302的一部分用于存储引导代码350。引导代码350由主机处理器124用于执行引导过程,如上所述。

控制管芯311包括控制电路310、320和360(其细节在上文中讨论)。在一些实施方案中,控制管芯311被配置为连接到存储器管芯301中的存储器阵列302。图2B示出了外围电路系统的示例,其包括形成于外围电路或控制管芯311中的控制电路,这些控制电路耦接到形成于存储器管芯301中的存储器阵列302。通用部件以类似于图2A的方式标记。系统控制逻辑部件360、行控制电路320和列控制电路310位于控制管芯311中。在一些实施方案中,列控制电路310的全部或一部分以及行控制电路320的全部或一部分位于存储器管芯301上。在一些实施方案中,系统控制逻辑部件360中的一些电路位于存储器管芯301上。

系统控制逻辑部件360、行控制电路320和列控制电路310可以由常规工艺(例如,CMOS工艺)形成,使得添加更常见于存储器控制器102上的元件和功能诸如ECC可能需要很少的附加工艺步骤或不需要附加工艺步骤(即,用于制造存储器控制器102的相同工艺步骤也可以用于制造系统控制逻辑部件360、行控制电路320和列控制电路310)。因此,尽管移走管芯(诸如,存储器管芯301)中的此类电路可减少制造此类管芯所需的步骤数量,但向管芯(诸如,控制管芯311)添加此类电路可能不需要许多附加的工艺步骤。

图2B示出了控制管芯311上的包括感测放大器350的列控制电路310,该列控制电路通过电路径306耦接到存储器管芯301上的存储器阵列302。例如,电路径306可以在列解码器312、驱动电路314、块选择器316与存储器阵列(或结构)302的位线之间提供电连接。电路径可以从控制管芯311中的列控制电路310延伸穿过控制管芯311上的焊盘,这些焊盘接合到存储器管芯301的对应焊盘,这些对应焊盘连接到存储器结构302的位线。存储器结构302的每条位线都可以在电路径306中具有对应的电路径,包括连接到列控制电路310的一对接合焊盘。类似地,行控制电路320(包括行解码器322、阵列驱动器324和块选择器326)通过电路径308耦接到存储器阵列302。电路径308中的每条电路径可以对应于字线、虚设字线或选择栅极线。也可以在控制管芯311与存储器结构管芯301之间提供附加的电路径。

在一些实施方案中,集成存储器组件307中存在多于一个控制管芯311和/或多于一个存储器管芯301。在一些实施方案中,集成存储器组件307包括多个控制管芯311和多个存储器管芯301的堆叠。在一些实施方案中,每个控制管芯311附连(例如,接合)到存储器结构管芯301中的至少一个存储器结构管芯。

如本文所指出的,集成存储器组件307中可存在多于一个控制管芯311和多于一个存储器管芯301。在一些实施方案中,集成存储器组件307包括多个控制管芯311和多个存储器管芯301的堆叠。图2C描绘了堆叠在衬底400上的集成存储器组件307的一个实施方案的侧视图。集成存储器组件307具有三个控制管芯311和三个存储器管芯301。每个控制管芯311接合到存储器管芯301中的一个存储器管芯。描绘了接合焊盘402、404中的一些接合焊盘。可能有更多的接合焊盘。接合在一起的两个管芯301、311之间的空间填充有固态层406,该固态层可由环氧树脂、其他树脂或聚合物形成。该固态层406保护了管芯301和311之间的电连接,并进一步将管芯固定在一起。各种材料可用作固态层406,但在实施方案中,该材料可以是来自Henkel公司的Hysol环氧树脂,该公司在美国加利福尼亚州设有办事处。

集成存储器组件307可例如以阶梯式偏移量堆叠,使得每一级处的接合焊盘410不被覆盖并且能够从上方触及。连接到接合焊盘410的引线接合412将控制管芯311连接到衬底400。多个此类引线接合可跨每个控制管芯311的宽度形成(即,形成到图2C的页面中)。

硅通孔(TSV)414可用于将信号路由通过控制管芯311。硅通孔(TSV)416可用于将信号路由通过存储器管芯301。可在半导体管芯301、311中的集成电路形成之前、期间或之后形成TSV 414、416。可通过蚀刻穿过晶圆的孔来形成TSV。然后,可将这些孔衬有防金属扩散的阻挡。阻挡层又可以衬有种子层,并且种子层可以镀有电导体,诸如铜,尽管可以使用其他合适的材料,诸如铝、锡、镍、金、掺杂的多晶硅以及合金或其组合。

就图2C所描绘的具体实施的一个实施方案而言,可使用连接到接合焊盘410和引线接合412的各种所描绘的TSV 414和416,使得多个控制管芯311可彼此通信,并且多个控制管芯311可在彼此之间传输数据,例如,第一控制管芯可从其接合的存储器管芯读取数据,将该数据(在一些任选的处理之后)传输到第二控制管芯,并且第二控制管芯可将该数据编程到接合到第二控制管芯的存储器管芯中。

焊球418可任选地附连到衬底400的下表面上的接触焊盘420。焊球418可用于将集成存储器组件307以电气方式和机械方式耦接到印刷电路板。在集成存储器组件307将用作LGA封装件的情况下,可省略焊球418。焊球418可形成集成存储器组件307与存储器控制器102之间的接口的一部分。

在图2C的实施方案中,存储器管芯301和控制管芯311成对布置。也就是说,每个存储器管芯301接合到对应的/匹配的/配对的控制管芯311并且与其通信。在其他实施方案中,控制管芯可接合(或以其他方式连接)到多于一个存储器管芯。

如上所述,在一个实施方案中,存储系统100和主机120之间的接口130是SD卡接口(参见例如图1E)。在一个实施方案中,通过SD卡接口进行的通信基于命令和数据位流。命令是启动操作的令牌。命令从主机120发送到存储系统100(例如,存储器控制器102)。命令在CMD线上串行传输。响应是作为对先前所接收的命令的响应而从存储系统100(例如,存储器控制器102)发送到主机120的令牌。响应在CMD线上串行传输。数据可以经由数据线Data[3:0]从主机120传输到存储系统100,或者从存储系统100传输到主机120。数据传输在SD数据块中进行。循环冗余校验(CRC)是通常用于数字网络和存储设备中以检测原始数据的不期望的变化的错误检测代码。SD数据块包括CRC位。命令可导致一个或多个SD数据块的传输(每个SD数据块具有CRC位)。

图3是描绘接口130随时间推移的CMD线和Data[3:0]的时序图/信号图。图3包括在CMD线上从主机120到存储系统100的命令的示例,该命令导致存储系统100(例如,存储器控制器102)在CMD线上发送响应令牌和在Data[3:0]中发送多个数据块,其中CRC位附加到每个SD数据块。例如,图3的命令可包括发送引导代码350的请求,并且数据块可包括添加有CRC位的引导代码350(从存储器阵列302读取)。另选地,图3的命令可包括从存储器阵列302读取数据的请求,并且数据块可进行数据读取。

图4描绘了在CMD线上从主机120发送到存储系统100的命令的一个实施方案的结构。在该实施方案中,命令具有48位。该命令以开始位(例如,0)开始,然后是指示传输方向的位(例如,1=来自主机120)。接下来的六位指示命令的命令索引,该值被解释为介于0和63之间的二进制编码数字,指示命令集中的哪个命令正被发布。一些命令需要由三十二位数据模式[39:8]编码的参数。在参数之后是八个CRC位。命令由结束位(例如,1)终止。命令的一个示例是空闲命令(例如,CMD0),其请求存储系统100进入空闲状态并且具有等于0的命令索引(在一个实施方案中)。通常,CMD0的参数[39:8]被设定为0。

如上所述,存储系统100存储主机120的引导代码350。主机120具有ROM(图1中未示出),该ROM存储用于开始引导过程的最少量的代码。当主机120开机或重新启动时,将执行存储在ROM中的代码,该代码指示主机120从存储系统100上载完整的引导代码350。主机处理器124将使用该引导代码来执行引导过程。

为了提高性能,如果引导代码350以高传输速度从存储系统100传输到主机120,则是最佳的。然而,当线路条件(例如,温度、干扰和/或线路延迟)变得不利于以高传输速度进行通信时,会发生问题。例如,由于极端温度、干扰或其他线路延迟,引导代码350可能在从存储系统100传输到主机120期间损坏。如果引导代码350不能由主机120读取,则主机120和/或存储系统100可被视为不可操作。

为了防止主机120和/或存储系统100被视为不可操作,建议快速传输引导代码,并且如果快速传输引导代码存在问题,则自动回退到低速传输引导代码。图5是描述用于实现从存储系统100到主机120的快速引导代码传输的过程的一个实施方案的流程图,其中如果快速引导代码传输存在问题,则将回退到低速引导代码传输。在一个实施方案中,图5的过程由上述存储系统100的控制电路中的任一者执行。例如,在一个具体实施中,图5的过程由存储器控制器102(或存储系统100中的另一个处理器)执行或在其方向上执行。

在图5的步骤502中,控制电路接收向存储系统100外部的实体传输引导代码350的请求。在一个实施方案中,主机120是存储系统100外部的实体,并且控制电路从主机120接收该请求。在步骤504中,控制电路开始经由接口130以第一传输速度(例如,快速传输速度)向实体传输引导代码350。在一个示例性具体实施中,控制电路从非易失性存储器阵列302读取引导代码350,并且在开始传输引导代码之前将CRC位(纠错)添加到引导代码,以创建多个数据块,这些数据块经由Data[3:0]传输到主机120,如图3所描绘。在步骤506中,控制电路确定引导代码350未成功传输。在一个实施方案中,控制电路被配置为通过从主机接收到引导代码未成功传输的指示来确定引导代码未成功传输。下面提供了更多详细信息。在步骤508中,控制电路以比第一传输速度低的传输速度经由接口130向实体传输引导代码350。在一个实施方案中,响应于确定引导代码350未成功传输,控制电路被配置为自动选择较低的传输速度。在一个示例性具体实施中,控制电路被配置为在不具有来自主机120的使用较低的传输速度的指示的情况下使用较低的传输速度。

在一个实施方案中,接口230可以三种模式操作,每种模式具有其自身的传输速度。下表提供了接口230的多个传输速度的一个示例。

传输速度指示在一秒的时间内可在Data[3:0]上传输的数据量。模式SD HS和SDR104在时钟信号CLK的上升沿上传输数据。模式DDR50在时钟信号CLK的上升沿和下降沿上传输数据。在一个实施方案中,时钟速度对于SD HS和DDR50是相同的,但对于DDR50,Data[3:0]上的数据具有更高的传输速度,因为对于DDR50,数据是在时钟信号CLK的上升沿和下降沿上传输的。在其他实施方案中,可实施多于三种操作模式和多于三种传输速度,并且/或者可实施不同的操作模式和不同的传输速度。根据上表,SD HS是具有最低传输速度(25MB/s)的模式,并且SDR104是具有最高传输速度(104MB/s)的模式。

在一个示例性具体实施中,步骤504包括以104MB/S的最高传输速度传输引导代码(SDR104),并且步骤508包括以25MB/S(SD HS)的最低传输速度传输引导代码,即使存在低于第一传输速度(例如,SDR104为104MB/s)并且高于最低传输速度(例如,SD HS为25MB/s)的另一传输速度(例如,DDR50为50MB/s)。

在另一个示例性具体实施中,步骤504包括以104MB/S的最高传输速度传输引导代码(SDR104),并且步骤508包括以相对于第一传输速度的次低传输速度传输引导代码。在该示例中,相对于第一传输速度的次低传输速度为50MB/S(DDR50)。应当注意,该次低传输速度(例如,DDR50为50MB/s)高于最低传输速度(例如,SD HS为25MB/s)。

应当注意,在图5的过程中,引导代码350的全部或一部分被传输(或尝试被传输)两次:在步骤504中传输一次,在步骤508中传输第二次。在步骤504和步骤508两者中,传输相同的引导代码。因此,在步骤504和508两者中,控制电路从存储器阵列302中的相同位置读取相同的引导代码350并将相同的引导代码350发送到主机120。

在一些实施方案中,控制电路被配置为在开始传输引导代码350之前向主机120传输调谐块,以便主机120调谐从存储系统100接收数据。调谐块是可用于调谐主机120的采样点的已知数据块。调谐将补偿时序预算中的静态延迟,包括过程、电压以及不同PCB负载和偏差。在一些实施方案中,包括调谐块的已知数据块被发送到主机四十次。在其他实施方案中,包括调谐块的已知数据块可被发送到主机多于或少于四十次。在一个实施方案中,调谐块包含在Data[3:0]上传输的64字节的预定义数据。在一些实施方案中,CRC位被添加到调谐块。在包括调谐块的一些实施方案中,在步骤506中确定引导代码未成功传输可包括由于主机120未能成功接收调谐块,主机120未能使用调谐块成功调谐接收,和/或主机120未能在成功调谐之后成功接收引导代码350而确定引导代码未成功传输。

图6是描述用于实现从存储系统100到主机120的快速引导代码传输的过程的一个实施方案的流程图,其中如果快速引导代码传输存在问题,则将回退到低速引导代码传输。在一个实施方案中,图6的过程由上述存储系统100的控制电路中的任一者执行。例如,在一个具体实施中,图6的过程由存储器控制器102(或存储系统100中的另一个处理器)执行或在其方向上执行。图6的过程是图5的过程的一个示例性具体实施。

在图6的步骤602中,主机120通过在第一初始时间段期间将命令线CMD保持在预设电平达预先确定的时钟周期数来发送传输引导代码350的请求。在存储系统100的一个实施方案中,当主机首先接通电源、或重新接通电源、或复位启动系统100时,如果主机120在75个或更多个时钟周期内保持CMD为低电平(例如,接地、0v或预设的低电压),则这被视为对存储系统100向主机120传输引导代码350的命令或请求。在步骤604中,控制电路(例如,存储器控制器102)通过感测主机120在第一初始时间段期间已将命令线CMD保持在预设电平达预先确定的时钟周期数,来从主机120接收传输引导代码350的请求。在一个实施方案中,步骤602和步骤604是图5的步骤502的示例性具体实施。在图6的步骤606中,控制电路开始以如存储系统100上预先配置的第一传输速度向主机传输引导代码。例如,存储系统100可包括寄存器或寄存器组,主机100可利用该寄存器或寄存器组对应当用于传输引导代码的传输速度进行编程。在另一个实施方案中,存储系统100可被预先配置为以传输速度进行传输。在一个实施方案中,步骤606是图5的步骤504的示例性具体实施。

如上所述,在一些实施方案中,在发送实际引导代码之前,存储系统100将传输调谐块。在步骤608中,主机无法成功接收引导代码。例如,主机120可能无法成功地接收调谐块,无法使用调谐块成功执行调谐,或者无法接收引导代码350的全部或一部分。在步骤610中,主机在完成引导代码的传输之前将命令线改变为除预设电平之外的电平,以便指示引导代码未成功传输。因此,如果调谐失败或者引导代码未被成功接收,则主机将改变命令线CMD以指示失败。例如,如果主机将命令线CMD线保持接地以指示传输引导代码的请求,则在步骤610中,主机将把命令线CMD线改变为V

在图6的步骤616中,主机120重新接通电源(关机,然后接通电源)和/或执行存储系统100的重置。在步骤618中,主机120通过在第二初始时间段期间将命令线CMD保持在预设电平达预先确定的时钟周期数(例如,75)来向存储系统100发送传输引导代码的请求。在步骤620中,存储系统100的控制电路通过感测到主机在第二初始时间段(其在第一初始时间段之后)期间已将命令线信号CMD保持在预设电平(例如,地电平)达预先确定的时钟周期数来接收传输引导代码的请求(来自步骤618)。在步骤622中,控制电路检查标记(其在步骤614中可能已设置或可能未设置)的状态。如果设置了该标记,则控制电路将在步骤622中重置该标记。如果设置了该标记,则这意味着先前传输引导代码的尝试失败。在步骤624中,控制电路被配置为响应于引导代码未成功传输而自动选择比第一传输速度低的传输速度,引导代码未成功传输由控制电路通过在步骤622中检查标记的状态来学习。响应于步骤618、620和622来执行步骤624。在步骤626中,控制电路以在步骤624中自动选择的较低的传输速度开始向主机传输引导代码。在一些实施方案中,主机可选择较低的传输速度。在其他实施方案中,不会自动选择较低的传输速度。在步骤628中,主机成功接收传输的所有引导代码。应当注意,步骤626和628还可包括传输调谐块。在步骤630中,主机改变命令线CMD以指示引导代码成功传输;例如,通过将命令线升高到V

图7是描述用于实现从存储系统100到主机120的快速引导代码传输的过程的一个实施方案的流程图,其中如果快速引导代码传输存在问题,则将回退到低速引导代码传输。在一个实施方案中,图7的过程由上述存储系统100的控制电路中的任一者执行。例如,在一个具体实施中,图7的过程由存储器控制器102(或存储系统100中的另一个处理器)执行或在其方向上执行。图7的过程是图5的过程的一个示例性具体实施。图7的过程类似于图6的过程(如共同的附图标记所示),不同之处在于标记的使用。例如,在图7的过程中,步骤605(在步骤604之后并且在606之前执行)包括控制电路设置标记以指示引导代码传输过程已开始。图7的过程中省略了图6的步骤614。图7的步骤622已从图6的步骤622改变,因为当控制电路将检查标记的状态时,在步骤622中将不重置标记。另外,在图7的过程结束时,在步骤632中,控制电路将重置标记。因此,在图6的过程中,标记用于指示引导代码的传输已失败。在图7的过程中,标记用于指示引导代码传输过程已开始,并且当引导代码传输过程已完成时,重置标记。因此,当执行图7的过程时,如果存储系统接收到传输引导代码的请求并且标记已被设置,则这意味着引导代码的前一次传输失败,使得当前传输是要以较低的传输速度执行的回退模式。

图8是描述将引导代码从存储系统100传输到主机120的过程的一个实施方案的时序图。图8示出了用于图5、图6或图7的过程中的任一个的信号V

图9是描述用于将引导代码从存储系统100传输到主机120的过程的一个实施方案的时序图。图9示出了当引导代码的传输中存在错误时,信号V

图10是描述将引导代码从存储系统传输到主机的过程的一个实施方案的时序图。图10的过程示出了当传输调谐块或调谐存在错误时,图5、图6或图7的过程的信号V

图11是描述用于实现从存储装置100到主机120的快速引导代码传输的过程的另一个实施方案的流程图,其中如果快速引导代码传输存在问题,则将回退到低速引导代码传输。在一个实施方案中,图11的过程由上述存储系统100的控制电路中的任一者执行。例如,在一个具体实施中,图11的过程由存储器控制器102(或存储系统100中的另一个处理器)执行或在其方向上执行。图11的过程是图5的过程的一个示例性具体实施。

在图11的步骤802中,主机120执行接通电源或重新接通电源,和/或存储系统100的重置。在步骤804中,主机120发送第一空闲命令,该命令具有指示第一传输速度的数据模式。该空闲命令被发送到存储系统100。该空闲命令的一个示例是CMD0,其为用于SD卡接口的命令。再次参见图4,每个命令包括命令索引和参数。CMD0具有用于命令索引的特定位模式,并且通常为其参数使用全零。然而,建议在参数字段中包括指示所请求的传输速度的非零数据模式。在另一个实施方案中,数据模式还可指示是否包括调谐块。下表包括要包括在参数字段(命令的位39:8—参见图4)中的一组示例性数据模式。

数据模式0xF0F0F0F0和0xE0E0E0E0指示使用预定义的传输速度。在一些实施方案中,主机120可利用预定义的传输速度(例如,SD HS、DDR50或SDR104中的一者)在存储系统100中设置配置参数。另选地,存储系统100可预先配置有预定义的传输速度。

上表的数据模式和相关联的传输速度仅为一组示例。也可使用其他数据模式和传输速度。另外,其他实施方案可实现比上述数据模式和传输速度更多或更少的数量。

在图11的步骤806中,控制电路接收和/或识别空闲命令及其数据模式并进入空闲状态。控制电路还将开始准备引导代码传输,这可包括从存储器阵列302读取引导代码。图11的步骤804和806是图5的步骤502的示例性具体实施。

在图11的步骤810中,控制电路将响应于第一空闲命令来设置标记。如上所述,存储系统100上的控制电路可包括存储在非易失性存储器中的标记,该标记指示引导代码传输过程已开始。在步骤812中,如果空闲命令中的数据模式指示包括调谐块,则控制电路发出调谐块。在步骤814中,如果调谐块成功传输并且主机120能够成功调谐,则在步骤816中,控制电路将CRC位添加到从存储器阵列102读取的引导代码块,并且开始以所请求的传输速度传输引导代码。如果调谐不成功(包括调谐块未成功传输或调谐成功传输但主机无法调谐),则在步骤814之后,该过程在图12(或图13)的步骤902处继续以执行回退条件。

如果调谐成功,则在步骤816中,引导代码从存储系统100传输到主机120。在步骤820中,主机接收引导代码350的全部或一部分。如果引导代码成功传输(步骤822),则控制电路将在步骤824中重置标记(标记在步骤818中被设置),并且主机和存储系统两者将在步骤826中进入正常操作。例如,主机120将完成引导过程,然后以其预期的容量操作。然而,如果引导代码未成功传输(步骤822),则该过程在图12(或图13)的步骤902中继续。在一个实施方案中,图11的步骤810至820是图5的步骤504的示例性具体实施。

图12是描述当快速引导代码传输存在问题时执行回退到低速引导代码传输的过程的一个实施方案的流程图。例如,在图11中,步骤816包括以所请求的传输速度传输引导代码,其中所请求的传输速度是快速传输速度。如果引导代码的传输失败,则根据图12的步骤执行回退过程。在一个实施方案中,图12的过程由上述存储系统100的控制电路中的任一者执行。例如,在一个具体实施中,图12的过程由存储器控制器102(或存储系统100中的另一个处理器)执行或在其方向上执行。图12的过程是图5的步骤506和508的一个示例性具体实施。

如果调谐不成功(步骤814)或引导代码传输不成功(步骤822),则执行图12的步骤902。在步骤902中,主机120执行接通电源或重新接通电源,或者以其他方式重置存储系统100。在步骤904中,主机120发送第二空闲命令(例如,CMD0),该命令具有指示以第二传输速度传输引导代码的数据模式。可使用上述数据模式。在步骤906中,控制电路接收或以其他方式识别第二空闲命令及数据模式并进入空闲状态。此外,控制电路准备传输引导代码350。在步骤908中,控制电路响应于第二空闲命令来检查标记。该标记将向控制电路指示这是否由于传输失败而为回退条件或者这是否是传输引导代码的初始尝试。在步骤910中,控制电路确定所请求的传输速度(数据模式中指示的第二传输速度—参见步骤904)是否低于图11的步骤804的第一传输速度。在一个实施方案中,主机可使用步骤904的数据模式选择较低的传输速度。在该示例中,图12的步骤910将包括控制电路确定第二传输速度是否低于第一传输速度。如果不是,则在步骤914中,控制电路将选择低于第一传输速度的新传输速度。如果在步骤904的数据模式中指示的第二传输速度低于步骤912中的第一传输速度,则控制电路将新传输速度设置为第二传输速度。在另一个选项中,数据模式可指示使用已在配置寄存器或存储器位置中设置的预定义的传输速度。然而,如果步骤804中的空闲命令和数据模式也指示使用预先配置的传输速度,则在步骤910中,将确定所请求的新速度不低于第一传输速度,因此控制电路将必须自动地将新传输速度选择为低于第一传输速度的速度。应当注意,响应于标记被设置而执行步骤910至914。

在步骤916中,控制电路发出调谐块。只有在数据模式指示使用调谐块的情况下才执行步骤916。如果数据模式指示不使用调谐块,则该过程将跳到步骤920。如果要使用调谐块,则在步骤916中将该调谐块传输到主机并且在步骤918中由主机接收。在步骤920中,控制电路将CRC位添加到引导代码块,并开始以新的传输速度传输引导代码。在步骤922中,主机120成功接收引导代码。作为成功传输引导代码的结果,控制电路重置标记(参见步骤908)。在步骤926中,系统进入正常操作;例如,执行引导过程,并且主机120和存储系统100用于其预期目的。

图13是描述用于当以初始快速引导代码速度传输引导代码不成功时实现回退过程的过程的另一个实施方案的流程图。图13是结合图11的过程执行的,并且是图12的过程的另选实施方案。在一个实施方案中,图13的过程由上述存储系统100的控制电路中的任一者执行。例如,在一个具体实施中,图13的过程由存储器控制器102(或存储系统100中的另一个处理器)执行或在其方向上执行。图13的过程是图5的步骤506和508的另一个示例性具体实施。图13的过程从与图12相同的步骤902至908开始。然而,图13的过程偏离图12的过程的步骤950(在步骤908之后执行),其中控制电路自动设置新的传输速度。也就是说,不管空闲命令中包括的数据模式如何,控制电路都将自动选择可用的最低传输速度或相对于第一传输速度的次低传输速度。在步骤950之后,图13的过程包括执行与图12中相同的步骤916至926。

图14是描述在图11至图13中所使用的过程的执行期间信号V

已公开了一种非易失性存储系统,该非易失性存储系统可存储用于主机的引导代码并作为引导过程的一部分将该引导代码传输到主机,使得以高速执行引导代码到主机的传输以减轻传输对完成引导过程所需的总时间的影响。然而,如果引导代码的传输失败,而不是断定该非易失性存储系统不可操作(并且可能替换它),则该非易失性存储系统回退到以较低速度传输引导代码的故障安全模式,从而增加了引导代码传输成功的机会。

一个实施方案包括非易失性存储装置,该非易失性存储装置包括被配置为存储引导代码的非易失性存储器和连接到该非易失性存储器的控制电路。该控制电路被配置为:接收将引导代码传输到在该非易失性存储装置外部的实体的请求,开始以第一传输速度向该实体传输引导代码,确定引导代码未成功传输,以及以比第一传输速度低的传输速度向该实体传输引导代码。

在一个示例性具体实施中,该控制电路被配置为通过感测到该实体在第一时间段期间已将命令线信号保持在预设电平达预先确定的时钟周期数来接收传输引导代码的请求;该控制电路被配置为通过在以第一传输速度向该实体传输引导代码完成之前感测到该实体已将命令线信号改变为除预设电平之外的电平来确定引导代码未成功传输;该控制电路被配置为感测该实体在第一时间段之后的第二时间段期间已将命令线信号保持在预设电平达所述预先确定的时钟周期数;并且该控制电路被配置为响应于引导代码未成功传输并且响应于感测到该实体在第二时间段期间已将命令线信号保持在预设电平达预先确定的时钟周期数,自动选择较低的传输速度。

在一个示例性具体实施中,该控制电路被配置为通过从该实体接收将该非易失性存储装置置于空闲状态的第一空闲命令来接收传输引导代码的请求,该空闲命令包括指示第一传输速度的第一数据模式;该控制电路被配置为通过重新接通其电源或接收具有指示较低的传输速度的新数据模式的第二空闲命令来确定引导代码未成功传输;并且该控制电路被配置为响应于具有新数据模式的第二空闲命令来以较低的传输速度向该实体传输引导代码。

一个实施方案包括操作非易失性存储装置的方法,该方法包括:在该非易失性存储装置处从主机接收向该主机传输引导代码的第一请求,该引导代码存储在该非易失性存储装置中的非易失性存储器中;响应于第一请求,以第一传输速度从该非易失性存储装置向该主机传输引导代码的至少一部分;在该非易失性存储装置处从该主机接收向该主机传输引导代码的第二请求;以及以低于第一传输速度的第二传输速度从该非易失性存储装置向该主机传输引导代码。

一个示例性具体实施包括非易失性存储装置,该非易失性存储装置包括被配置为存储用于主机的引导代码的非易失性存储器和连接到该非易失性存储器的控制电路。该控制电路包括用于与主机进行通信的主机接口。该控制电路被配置为读取存储在该非易失性存储器中的引导代码。该控制电路还包括用于以下操作的装置:首先以第一传输速度向主机传输引导代码,以及响应于首先传输引导代码未成功,自动选择低于第一传输速度的第二传输速度并以第二传输速度向主机重新传输引导代码。

用于首先以第一传输速度向主机传输引导代码、自动选择低于第一传输速度的第二传输速度以及以第二传输速度向主机重新传输引导代码的装置的示例性结构包括(但不限于)微处理器、微控制器、RISC处理器、FPGA、状态机和/或它们的组合,例如执行图5、图6、图7、图9、图10、图11与图12或图13和/或图14的过程中的任一个的存储器控制器102、FEP110、存储器处理器156和/或状态机362。

出于本文件的目的,说明书中提到“实施方案”、“一个实施方案”、“一些实施方案”或“另一个实施方案”可用于描述不同的实施方案或相同的实施方案。

出于本文件的目的,连接可为直接连接或间接连接(例如,经由一个或多个其它部件)。在一些情况下,当元件被提及连接或耦接到另一个元件时,该元件可直接连接至另一个元件,或者经由居间元件间接连接至另一个元件。当元件被提及直接连接至另一个元件时,则在该元件与另一个元件之间没有居间元件。如果两个设备是直接连接或间接连接的,则两个设备是“通信”的,使得它们能够在它们之间进行电子信号通信。

出于本文档的目的,术语“基于”可理解为“至少部分地基于”。

出于本文档的目的,在没有附加上下文的情况下,诸如“第一”对象、“第二”对象和“第三”对象的数字术语的使用可能不意味着对象的排序,而是可用于识别目的以识别不同的对象。

出于本文档的目的,对象的术语“组”可指一个或多个对象的“组”。

出于说明和描述的目的,已提供了上述详细描述。其并非旨在详尽的或旨在限制本发明所公开的精确形式。根据以上教导内容,很多修改和变型都是可能的。选择所述实施方案以便最好地解释所建议的技术的原理及其实际应用,从而使本领域的其他技术人员能够在各种实施方案中和适合于设想的具体使用的各种修改中最好地利用它。本发明的范围旨在由所附权利要求书限定。

技术分类

06120114734306