CN113312069A - 用于存储器控制器的固件加载 - Google Patents

用于存储器控制器的固件加载 Download PDF

Info

Publication number
CN113312069A
CN113312069A CN202110214306.7A CN202110214306A CN113312069A CN 113312069 A CN113312069 A CN 113312069A CN 202110214306 A CN202110214306 A CN 202110214306A CN 113312069 A CN113312069 A CN 113312069A
Authority
CN
China
Prior art keywords
memory
page
firmware
plane
subset
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110214306.7A
Other languages
English (en)
Inventor
G·卡列洛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN113312069A publication Critical patent/CN113312069A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0653Configuration or reconfiguration with centralised address assignment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本申请案是针对用于存储器控制器的固件加载。可跨存储器装置的多个平面存储固件集的多个副本,例如在平面集中的每一个内存储一个相应副本。所述副本可在相应平面内的页方位上交错或以其它方式偏离,使得不同平面内的类似定址页存储所述固件集的不同子集。控制器可通过同时检索存储于不同存储器平面内的类似定址页处的所述子集,同时检索所述固件集的不同子集,所述不同子集中的每一个包含在不同副本中。在加载所述固件代码后,所述控制器即刻执行所述固件代码以执行一或多个另外操作。

Description

用于存储器控制器的固件加载
交叉引用
本专利申请案主张卡列罗(CARIELLO)在2020年2月27日申请的标题为“用于存储器控制器的固件加载(FIRMWARE LOADING FOR A MEMORY CONTROLLER)”的美国专利申请案第16/803,682号的优先权,所述美国专利申请案让渡给本受让人并且以全文引用的方式并入本文中。
技术领域
本技术领域涉及用于存储器控制器的固件加载。
背景技术
下文大体上涉及包含至少一个存储器装置的系统,且更具体来说,涉及用于存储器控制器的固件加载。
一种系统可包含各种存储器装置和控制器,所述存储器装置和控制器经由一或多个总线耦合到多种电子装置中的管理信息,所述电子装置例如计算机、无线通信装置、物联网、相机、数字显示器等等。存储器装置广泛地用于在此类电子装置中存储信息。通过编程存储器单元的不同状态来存储信息。举例来说,二进制存储器单元可存储两个状态中的一个,通常由逻辑“1”或逻辑“0”标示。一些存储器单元能够存储大于两个状态中的一个。为了存取所存储的信息,存储器装置可读取或感测存储器单元中的所存储状态。为了存储信息,存储器装置可将状态写入或编程到存储器单元。
存在各种类型的存储器装置,包含磁性硬盘、随机存取存储器(RAM)、只读存储器(ROM)、动态RAM(DRAM)、同步动态RAM(SDRAM)、铁电RAM(FeRAM)、磁性RAM(MRAM)、电阻性RAM(RRAM)、快闪存储器、相变存储器(PCM)、3维交叉点存储器(3D Xpoint)、快闪存储器(例如浮动栅极快闪装置和电荷捕集快闪装置,其可用于“或非”(NOR)或“与非”(NAND)存储器装置中)等。存储器装置可以是易失性或非易失性的。例如快闪存储器单元的非易失性存储器单元即使在不存在外部电源的情况下仍可维持其所存储逻辑状态达很长一段时间。易失性存储器单元(例如,DRAM单元)除非被外部电源周期性地刷新,否则可能随时间推移而丢失其存储的状态。基于快闪的存储器装置与一些非易失性和易失性存储器装置相比可具有改进的性能。
发明内容
描述了一种方法。所述方法可包含从存储器的第一页读取固件代码集的第一子集,其中所述第一页具有第一页地址并且处于所述存储器装置的第一平面内,且其中所述第一平面存储所述固件代码集的第一副本;与读取所述固件代码集的所述第一子集同时地,从存储器的第二页读取所述固件代码集的第二子集,其中所述第二页具有所述第一页地址并且处于所述存储器装置的第二平面内,且其中所述第二平面存储所述固件代码集的第二副本;和将所述固件代码集的所述第一子集、所述固件代码集的所述第二子集或这两者加载到高速缓冲存储器中以供所述存储器装置的控制器执行。
描述了一种设备。所述设备可包含第一存储器平面,其可操作以存储固件代码集的第一副本;第二存储器平面,其可操作以存储所述固件代码集的第二副本;和控制器,其与所述第一存储器平面和所述第二存储器平面耦合。所述控制器可为可操作的以:起始从具有第一页地址的第一页读取所述固件代码集的第一子集的第一读取操作,其中所述第一页处于所述第一存储器平面内;起始与所述第一读取操作同时地从具有所述第一页地址的第二页读取所述固件代码集的第二子集的第二读取操作,其中所述第二页处于所述第二存储器平面内;和至少部分地基于所述第一读取操作执行所述固件代码集的所述第一子集,至少部分地基于所述第二读取操作执行所述固件代码集的所述第二子集,或这两者。
描述了一种设备。所述设备可包含存储器装置的第一存储器平面;所述存储器装置的第二存储器平面;和控制器,其与所述第一存储器平面和所述第二存储器平面耦合。所述控制器可为可操作的以:通过将所述固件的新版本写入到所述第一存储器平面内的第一多个依序定址页来更新存储于所述第一存储器平面中的固件的第一副本,所述第一多个依序定址页从第一页地址开始;和通过将所述固件的所述新版本写入到所述第二存储器平面内的第二多个依序定址页来更新存储于第二存储器平面中的所述固件的第二副本,所述第二多个依序定址页从偏离所述第一页地址的第二页地址开始。
附图说明
图1说明根据本文所公开的实例的支持用于存储器控制器的固件加载的存储器装置的实例。
图2说明根据本文所公开的实例的支持用于存储器控制器的固件加载的NAND存储器电路的实例。
图3说明根据本文所公开的实例的支持用于存储器控制器的固件加载的存储器装置的实例。
图4说明根据本文所公开的实例的支持用于存储器控制器的固件加载的固件布局的实例。
图5说明根据本文所公开的实例的支持用于存储器控制器的固件加载的过程流的实例。
图6说明根据本文所公开的实例的支持用于存储器控制器的固件加载的框图的实例。
图7和8示出说明根据本文所公开的实例的支持用于存储器控制器的固件加载的一或多种方法的流程图。
具体实施方式
在一些情况下,用于存储器装置的起动(start-up)(或“启动(boot-up)”或“重启(reboot)”)程序可涉及从存储器检索固件以使得存储器装置的控制器可执行所述固件。但是对于一些存储器装置,从存储器检索固件可为缓慢的,这可增加用于存储器装置的起动程序的时延。举例来说,归因于共享的读取电路系统,存储器装置可受限于一次读取一页固件代码,当作为起动程序的部分来检索固件代码时,可增加时延。
根据本文中所描述的技术,存储器装置可为可操作的以通过同时读取多页固件代码来减小起动时延。举例来说,存储器装置可被配置成以交错模式存储固件的多个副本,这即使在存储器装置具有共享的读取电路系统的情况下仍允许存储器装置并行读取多页固件代码。装置可并行地重复读取多页固件代码,直到完全加载固件或遇到错误为止。如果遇到错误,那么装置可减少其并行读取的页数或切换到一次从单一页读取固件代码的串行检索方法。虽然参考固件进行描述,但本文中所描述的加载技术可用于任何类型的所存储数据。
一开始在参考图1和2所描述的存储器装置和存储器电路的上下文中描述本公开的特征。进一步通过涉及如参考图3-8所描述的高效固件加载的系统图、过程流和流程图说明且参考所述系统图、过程流和流程图描述本公开的这些和其它特征。
图1说明根据本文所公开的实例的存储器装置100的实例。在一些情况下,存储器装置100可被称为存储器芯片、存储器裸片或电子存储器设备。存储器装置100可包含一或多个存储器单元,例如存储器单元105-a和存储器单元105-b(未标记其它存储器单元)。存储器单元105可以是例如快闪或其它类型的NAND存储器单元(例如在图1中示出的存储器单元105-a的放大图中)、DRAM存储器单元、FeRAM存储器单元、PCM存储器单元或另一类型的存储器单元。
每一存储器单元105可被编程为存储表示一或多个信息位的逻辑状态。在一些情况下,存储器单元105可一次存储一个信息位(例如,逻辑状态0或逻辑状态1),例如在SLC存储器块的可被称为SLC存储器单元的存储器单元中。在一些情况下,单一存储器单元105可一次存储多于一个信息位,例如在MLC、TLC或QLC存储器块的存储器单元中。举例来说,MLC存储器块中的单一存储器单元105(例如,MLC存储器单元)可通过存储以下四个逻辑状态中的一个来一次存储两个信息位:逻辑状态00、逻辑状态01、逻辑状态10或逻辑状态11。举例来说,TLC存储器块中的单一存储器单元105(例如,TLC存储器单元)可通过存储以下八个逻辑状态中的一个来一次存储三个信息位:000、001、010、011、100、101、110、111。
在一些情况下,多层级存储器单元105(例如,MLC存储器单元、TLC存储器单元或QLC存储器单元)可物理上不同于SLC单元。举例来说,多层级存储器单元105可使用不同单元几何形状或使用不同材料制造。在一些情况下,多层级存储器单元105可与SLC单元物理上相同或类似,且存储器块中的其它电路系统(例如控制器电路系统、感测放大器、驱动器等)可被配置成将存储器单元操作(例如,读取和写入)为SLC单元、MLC单元、TLC单元等。
不同存储器单元架构可以不同方式存储逻辑状态。在FeRAM架构中,举例来说,每一存储器单元105可包含具有铁电材料的电容器以存储表示可编程状态的电荷和/或极化。在DRAM架构中,每一存储器单元105可包含具有介电材料(例如,绝缘体)的电容器以存储表示可编程状态的电荷。
在快闪存储器架构中,每一存储器单元105可包含具有用于存储表示逻辑状态的电荷的浮动栅极和/或介电材料的晶体管。举例来说,图1中的存储器单元105-a的放大图是包含可用于存储逻辑状态的晶体管110(例如,金属氧化物半导体(MOS)晶体管)的快闪存储器单元。晶体管110具有控制栅极115并且可包含包夹在介电材料125之间的浮动栅极120。晶体管110包含第一节点130(例如,源极或漏极)和第二节点135(例如,漏极或源极)。可通过将一定数量的电子(例如,电荷)放置(例如,写入、存储)于浮动栅极120上来将逻辑状态存储于晶体管110中。将存储于浮动栅极120上的电荷的量可取决于将存储的逻辑状态。存储于浮动栅极120上的电荷可影响晶体管110的阈值电压,进而影响当晶体管110被激活时流过晶体管110的电流量。可通过将电压施加到控制栅极115(例如,在控制节点140处)以激活晶体管110并且测量(例如,检测、感测)在第一节点130和第二节点135之间流动的所得电流量,以此读取存储于晶体管110中的逻辑状态。
举例来说,感测组件170可确定SLC存储器单元是否以二进制方式存储逻辑状态0或逻辑状态1;例如,基于来自存储器单元的电流的存在或不存在,或基于电流是高于还是低于阈值电流。然而,对于多层级单元,感测组件170可基于各种中间电流等级来确定存储于存储器单元中的逻辑状态。举例来说,感测组件170可基于定义可由TLC单元存储的八个可能逻辑状态的八个不同电流等级(或电流范围)来确定TLC单元的逻辑状态。此类电流等级的间距可相当小(在量值方面),从而与SLC情况相比提供较低错误容限。
类似地,可通过将两个电压(例如,高于阈值的电压或低于阈值的电压)中的一个施加到存储器单元以将表示两个可能逻辑状态中的一个的电荷存储(或不存储)于浮动栅极上,以此写入快闪SLC存储器单元。相比之下,写入到快闪多层级单元可要求以更精细粒度级施用电压以更精细地控制存储于浮动栅极上的电荷量,进而使得能够表示更大逻辑状态集。因此,多级单元可对归因于温度差异或其它操作条件可在存储器装置中出现的电压或电流差异更敏感。
电荷捕集快闪存储器单元可以类似于浮动栅极快闪存储器单元的方式操作,但替代(或除了)将电荷存储于浮动栅极120上,电荷捕获快闪存储器单元可将表示状态的电荷存储于控制栅极115下方的介电材料中。因此,电荷捕集快闪存储器单元可包含或可不包含浮动栅极120。
在一些实例中,存储器单元105的每一行连接到字线160且存储器单元105的每一列连接到数字线165。因此,一个存储器单元105可位于字线160和数字线165的相交点。此相交点可被称为存储器单元的地址。数字线有时被称作位线。在一些情况下,字线160和数字线165可大体上垂直于彼此并且可形成存储器单元阵列105。在一些情况下,字线160和数字线165一般可被称为存取线或选择线。
在一些情况下,存储器装置100可包含三维(3D)存储器阵列,其中多个二维(2D)存储器阵列彼此上下形成。这相比于2D阵列可增加可放置或形成于单个裸片或衬底上的存储器单元的数量,这又可减少制造成本,或增加存储器阵列的性能,或这两个。在图1的实例中,存储器装置100包含多个层级的存储器阵列。在一些实例中,所述层级可由电绝缘材料分隔开。每一层级可对准或定位成使得存储器单元105可跨每一层级彼此对准(准确地对准、重叠或大致对准),从而形成存储器单元堆叠175。在一些情况下,存储器单元堆叠175可被称为存储器单元串,参考图2进行更详细地论述。
可通过行解码器145和列解码器150控制对存储器单元105的存取。举例来说,行解码器145可从存储器控制器155接收行地址并且基于所接收的行地址激活适当的字线160。类似地,列解码器150可从存储器控制器155接收列地址并且激活适当的数字线165。因此,通过激活一个字线160和一个数字线165,可存取一个存储器单元105。
在存取后,感测组件170即刻可读取或感测存储器单元105。举例来说,感测组件170可被配置成基于通过存取存储器单元105产生的信号来确定存储器单元105的所存储逻辑状态。所述信号可包含电压或电流,或这两者,且感测组件170可包含电压感测放大器、电流感测放大器,或这两者。举例来说,电流或电压可施加到存储器单元105(使用对应字线160和/或数字线165),且数字线165上的所得电流或电压的量值可取决于存储器单元105所存储的逻辑状态。举例来说,对于快闪存储器单元,存储于浮动栅极上或存储器单元105中的晶体管的绝缘层中的电荷的量可影响晶体管的阈值电压,进而影响当存取存储器单元105时流过存储器单元105中的晶体管的电流量。此类电流差可用于确定存储于存储器单元105上的逻辑状态。
感测组件170可包含各种晶体管或放大器以便检测和放大数字线165上的信号(例如,电流或电压)。接着可经由输入/输出块180输出存储器单元105的所检测到的逻辑状态。在一些情况下,感测组件170可为列解码器150或行解码器145的一部分,或感测组件170可以其它方式与列解码器150或行解码器145连接或电子通信。
可通过类似地激活相关字线160和数字线165使得逻辑状态(例如,表示一或多个信息位)能够存储于存储器单元105中来设置或写入存储器单元105。列解码器150或行解码器145可接受例如来自输入/输出块180的数据写入到存储器单元105。如先前论述,在快闪存储器(例如NAND和3D NAND存储器装置中使用的快闪存储器)的情况下,通过将电子存储于浮动栅极或绝缘层中来写入存储器单元105。
存储器控制器155可通过例如行解码器145、列解码器150和感测组件170等各种组件控制存储器单元105的操作(例如,读取、写入、重写刷新)。在一些情况下,行解码器145、列解码器150和感测组件170中的一或多个可与存储器控制器155处于相同位置。存储器控制器155可产生行和列地址信号以便激活所要字线160和数字线165。存储器控制器155也可产生和控制在存储器装置100的操作期间所用的各种电压或电流。
在一些实例中,作为起动程序的部分,存储器控制器155可从存储器单元105的集合检索固件代码(或“固件”、“固件数据”)。固件代码可为使得存储器控制器155随后能够使用更复杂的软件执行较高层级功能的低层级代码(例如,操作代码)。固件代码的多个副本可存储在存储器装置100内,这可提供冗余和增加的可靠性以及其它益处。在一些情况下,存储器装置100可能能够同时从不同平面读取存储器单元105的不同页,只要所述页在其相应平面内具有匹配的页地址即可(例如,归因于在平面之间共享读取电路系统的方面)。因为加载固件代码的完整副本可为完整功能性的前提条件,所以检索固件代码的时延可不利地影响存储器装置100的性能和用户体验。根据本文中所描述的技术,存储器装置100可通过以允许存储器装置100同时从多个平面中的多个页读取固件代码的完整副本的子集的模式存储固件,以此减小固件检索时延。
图2说明根据本公开的实例的支持用于存储器控制器的固件加载的NAND存储器电路200的实例。NAND存储器电路200可为例如存储器装置100的存储器装置的一部分的实例。虽然用参考标号标记包含在图2中的一些元件,不标记其它对应元件,但它们是相同的或理解为类似的,以便增加所描绘的特征的能见度和清晰性。
NAND存储器电路200包含在NAND配置中连接的多个快闪存储器单元205(其可为例如快闪存储器单元,例如参考图1所描述的快闪存储器单元)。在NAND存储器配置(被称为NAND存储器)中,多个快闪存储器单元205与彼此串联连接以形成存储器单元205的串210,其中串210中的每一快闪存储器单元205的漏极与所述串中的另一快闪存储器单元205的源极耦合。在一些情况下,在NAND配置中连接以形成NAND存储器的快闪存储器单元可被称为NAND存储器单元。
存储器单元205的每一串210可与被串210中的存储器单元205共享的对应数字线215相关联。串210中的每一存储器单元205可与单独字线230(例如,字线230-a、230-ⅰ、230-n)相关联,使得字线230的数量可等于串210中的存储器单元205的数量。
一般来说,NAND存储器可在阶层上组织为包含多个存储器单元205的串210、包含多个串210的页,以及包含多个页的块。在一些情况下,NAND存储器可以页粒度级被写入和读取,但可能不可以页粒度级被擦除。举例来说,NAND存储器可替代地在较高粒度级下(例如在块粒度级下)可擦除。在一些情况下,NAND存储器单元可能需要在可被重写之前被擦除。不同存储器装置可具有不同读取/写入/擦除特性。
NAND存储器电路200中的存储器单元205的每一串210与串210的一端处的用于漏极(SGD)晶体管220的选择栅极装置和串210的另一端处的用于源极(SGS)晶体管225的选择栅极装置耦合。SGD晶体管220和SGS晶体管225可用于分别地通过在SGD晶体管225的栅极245处和/或在SGS晶体管225的栅极240处施加电压,将存储器单元205的串210耦合到位线215和/或耦合到源节点250。
在NAND存储器操作期间,可施加与源节点250、与源节点250相关联的SGS晶体管225栅极240、字线230、漏极节点235、与漏极节点235相关联的SGD晶体管220的栅极245以及位线215相关联的各个电压电平以对串210中的至少一些NAND存储器单元执行一或多个操作(例如,编程、擦除或读取)。
在一些情况下,在第一操作(例如,读取操作)期间,正电压可施加到与漏极节点235连接的位线215,而源节点250可连接到地或虚拟地(例如,大约0V)。举例来说,施加到漏极节点235的电压可为1V。同时,施加到栅极245和240的电压可增加到高于与源节点250相关联的一或多个SGS 225和与漏极节点235相关联的一或多个SGD 220的阈值电压,使得与存储器串210相关联的通道可电连接到漏极节点235和源节点250。通道可为通过串210中的存储器单元205(例如,通过存储器单元205中的晶体管)的电路径,其可在某些操作条件下传导电流。
同时,除了所选择字线以外的多个字线160(例如,在一些情况下,所有字线160)(即,与串210中的未被选单元相关联的字线)可连接到高于串210中的存储器单元的最高阈值电压(VT)的电压(例如,VREAD)。VREAD可致使串210中的所有未被选存储器单元“接通”,使得每一未被选存储器单元可维持与其相关联的通道中的高导电性。在一些实例中,与所选单元相关联的字线160可连接到电压VTarget。VTarget可经选择为处于经擦除存储器单元的VT与存储器串210中的经编程存储器单元的VT之间的值。当所选存储器单元展现经擦除VT(例如,VTarget>所选存储器单元的VT)时,所选存储器单元205可响应于施加VTarget而“接通”且因此允许电流在存储器串210的通道中从位线215流到源节点250。当所选存储器单元展现经编程VT(例如,因此VTarget<所选存储器单元的VT)时,所选存储器单元可响应于VTarget而“关断”且因此禁止电流在存储器串210的通道中从位线215流到源节点250。参考图1所描述的感测组件170可感测电流量(或其缺失)以读取串210内的所选存储器单元205中的所存储信息。
在一些情况下,NAND存储器单元205可用于存储固件代码。在这类情况下,包含存储器单元205的存储器装置可被配置成并行地从多个页读取固件代码以增加存储器装置的起动程序的效率。
图3说明根据本文所公开的实例的支持用于存储器控制器的固件加载的存储器装置300的实例。存储器装置300可为参考图1所描述的存储器装置100的实例并且可包含参考图2所描述的NAND存储器电路200的方面。存储器装置300可被配置成通过同时从跨不同存储器平面的多个页读取固件代码来高效地检索固件。
存储器装置300可包含控制器305,其可为参考图1所描述的存储器控制器155的实例。存储器装置300还可包含存储器存取电路系统310,其可包含用于对存储器装置300中的存储器单元执行读取、写入和擦除操作的电路系统。在一些实例中,存储器存取电路系统310包含地址总线和/或一或多个地址解码器,其可包含参考图1所描述的列解码器150和/或行解码器145的方面。控制器305和存储器存取电路系统310可与彼此耦合,使得电子信号(例如,命令、数据等)可在两个组件之间交换。
控制器305可包含各种存储器或与各种存储器耦合,所述存储器包含只读存储器(ROM)340、存储器高速缓存器315和存储器裸片320。在一些情况下,存储器高速缓存器315可包含除ROM 340外的不同类型的存储器,例如静态随机存取存储器(SRAM)。ROM 340可存储可由控制器305执行的指令(例如,代码)以致使存储器装置300找到存储于存储器裸片320中的固件代码,使得固件代码可加载到存储器高速缓存器315中。在一些实例中,存储器裸片320包含非易失性存储器单元,例如NAND存储器单元,这允许即使在不通电的情况下仍可保存固件。在将固件加载到存储器高速缓存器315中后,控制器305即刻可执行固件以致使存储器装置300执行各种操作。
虽然为清楚起见示出为具有单一存储器裸片320,但在一些情况下,存储器装置300可包含多个存储器裸片320,且每一存储器裸片320可被配置成独立地执行命令或报告状态。在一些情况下,可存在独立操作寄存器、状态指示信号和/或在存储器裸片320内共享的外部信号线。存储器裸片320可包含(例如,逻辑上划分成)一或多个存储器平面325,其可共享一或多个操作寄存器以使得存储器装置300可对多个存储器平面325执行同时发生的(例如,相同)操作。然而,在一些情况下,每一存储器平面325可具有独立数据寄存器群组,使得用于所述存储器平面325的数据可与用于其它存储器平面325的数据区别开。在每一存储器平面325内可存在一或多个存储器块330,在一些情况下,所述存储器块可为可独立地擦除的最小存储器单元。存储器块330可包含一或多个存储器页335,其可为可独立地读取/写入的最小存储器单元。每一存储器页335可包含多个存储器单元,例如参考图2所描述的存储器单元205。
存储器存取电路系统310可与存储器裸片320耦合并且可操作以对存储器裸片320内的存储器单元(例如,在页或块层级)执行存取操作,例如读取、擦除和写入操作。存储器存取电路系统310可包含使得存储器存取电路系统310能够读取、擦除或写入到存储器裸片320的特定区段的地址电路系统。
但是在一些情况下,存储器存取电路系统310可被配置成使得存储器装置300受到一或多个地址限制。举例来说,存储器存取电路系统310可被配置成使得第一存储器平面325(或存储器块330)内的第一页上的存取操作和第二存储器平面325(或存储器块330)内的第二页面上的存取操作可不同时执行,除非第一页和第二页在其相应存储器平面325内具有相同(匹配、等同、相等)页地址。举例来说,可共享两个存储器平面的页地址电路系统(例如,地址总线和/或解码器),这意味着对两个存储器平面执行的存取操作以那些存储器平面325内的相同页地址为目标。例如此限制的地址限制可增加起动存储器装置300的时延,尤其是在跨存储器平面325以均匀模式存储固件的多个副本的情况下。本文中描述用于减小受到页地址限制的存储器装置300的起动时延的技术。此外,应理解,如本文中所描述的技术可在任何类型的存储器的上下文中以及在可存在与同时存取同一阶层式层级处的存储器实体相关的地址相关限制的任何类型的阶层式存储器结构的上下文中适用。
图4说明根据本文所公开的实例的支持用于存储器控制器的固件加载的替代性固件布局400-a和400-b的实例。每一固件布局400示出存储于如本文中所描述的存储器装置的存储器平面405中的内容组织。固件布局400-a可支持用于加载固件的实例串行检索方法,且固件布局400-b可支持代替或除了串行检索方法之外的实例并行检索方法(例如,串行检索方法可在并行检索方法出现错误或其它问题的情况下用作次选方案)。
在一些实例中,给定固件布局400的存储器平面405可全部安置于同一存储器裸片上。此外,每一存储器平面405可包含多个页且每一页可与页地址相关联。在每一固件布局400中,页地址方案可在每一存储器平面内为相同的。在一些实例中,每一存储器平面中的页地址可依序编号(例如,编号从0到N-1,其中N是存储器平面中的页数量)。在这类情况下,存储器平面中的页可被称为依序定址。虽然每一存储器平面可具有与页地址x相关联的页,但每一页也可与唯一块地址或平面地址相关联,使得页可通过页地址x与其它页(例如,处于不同块和/或平面中)区别开。
出于功能性和可靠性原因,存储器装置可存储固件代码的多个副本(例如,等同副本)。举例来说,存储固件的多个副本可允许存储器装置在用于副本中的一个的更新中断的情况下恢复到固件的旧版本。或者,存储器装置可在一个副本随时间受损的情况下使用固件的备份副本。用于存储器装置的完整固件代码在本文中可以被称为固件代码集,且固件代码集的复制可被称为副本。
在一些实例中,不同存储器平面可存储固件的相应副本。举例来说,第一存储器平面(例如,平面0)可存储固件的第一副本,第二存储器平面(例如,平面1)可存储固件的第二副本,第三平面(例如,平面2)可存储固件的第三副本,且第四平面(例如,平面3)可存储固件的第四副本。在固件布局400-a和固件布局400-b中说明这类存储技术,所述固件布局中的每一个示出存储由62个固件代码子集组成的固件集的相应副本的四个平面405。
在一些实例中,固件代码(例如,存储于页处的固件代码)的子集还可被称作“组块”。因此,页可存储固件代码集的“组块”或“子集”。不存储固件代码的页可被编程有随机数据(标示为“随机”)。在一些实例中,平面中的页可被配置成不仅存储固件代码而且还存储奇偶校验数据和元数据。举例来说,页可包含存储固件代码410的一或多个存储器单元、存储奇偶校验数据415的一或多个存储器单元以及存储元数据420的一或多个存储器单元。页的元数据可用于增加如下文所描述的固件检索方法的可靠性。
在固件布局400-a中,固件的第一副本存储于存储器平面0内的页1到62中,固件的第二副本存储于存储器平面1内的页1到62中,固件的第三副本存储于存储器平面2内的页1到62中,且固件的第四副本存储于存储器平面3内的页1到62中。在此布局中,跨副本的对应固件代码子集存储于具有相同页地址(但在不同平面内,且因此具有不同存储器平面地址)的页处。举例来说,平面0内的页1可存储第一副本的子集0,平面1内的页1可存储第二副本的子集0,平面2内的页1可存储第三副本的子集0,且平面3内的页1可存储第四副本的子集0。两个或更多个固件代码子集可在包括相同数据(例如,是同一固件子集的副本)的情况下为对应的。
使用固件布局400-a的存储器装置可通过执行依序从单一存储器平面405内的连续页(在一些情况下,依序定址页)读取固件代码子集的串行检索方法,将固件的副本加载到存储器高速缓存器中。举例来说,存储器装置可从存储器平面0内的页1读取第一固件代码子集(例如,子集0),接着从存储器平面0内的页2读取第二固件代码子集(例如,子集1),依次类推直到从平面0内的页62从最后一个固件代码子集(例如,子集61)为止。
可防止使用固件布局400-a的一些存储器装置归因于共享页地址电路系统一次(例如,并行)读取多个固件代码子集。举例来说,存储器装置可能不能够同时从平面0读取固件代码子集0,从平面1读取固件代码子集1,这是因为即使跨存储器平面,存储器装置仍是仅能够同时一次寻址单一页地址。换句话说,存储器装置的读取电路系统可限制装置同时存取具有不同存储器平面中的相同页地址的页(例如,存储器装置可能够同时存取平面0中的页4和平面1中的页4,但可能不能够存取平面0中的页4和平面1中的页5)。这类约束条件可在使用例如布局400-a的布局的情况下增加执行装置起动程序的时延,原因是在这类情况下,可一次一个地(例如,依序)读取固件代码子集。在一些实例中,实施串行检索方法的存储器装置可被称为在单个平面模式中操作。
为增加检索效率,存储器装置可实施例如固件布局400-b的布局,这可允许存储器装置即使有寻址限制仍并行地从多个页读取固件代码。术语“同时发生”或“并行”可指一个动作(例如,读取操作)与另一动作在同一时间、与另一动作基本上同时或在部分重叠的时间期间发生的时间关系。固件布局400-b可通过使得用以存储不同副本的给定固件代码子集的页的页地址交错,实现多个固件代码子集的同时读取。举例来说,页4可存储平面0中的副本的第一固件代码子集(例如,子集0),而页3可存储平面1中的副本的第一固件代码子集(例如,子集0),依次类推。通过存储具有偏离(不同)页地址的页中的固件代码的不同副本的类似子集,存储器装置可实现从不同存储器平面内的页同时读取不同固件代码子集的并行检索方法。在一些实例中,实施并行检索方法的存储器装置可被称为在多平面模式中操作。
作为并行检索方法的实例,可同时执行以下读取操作:从平面0中的页4读取第一固件代码子集(例如,集0)的第一读取操作;从平面1中的页4读取第二固件代码子集(例如,集1)的第二读取操作;从平面2中的页4读取第三固件代码子集(例如,集2)的第三读取操作;和从平面3中的页4读取第四固件代码子集(例如,集3)的第四读取操作。因此,可用当使用串行检索方法时读取一个固件代码子集可花费的时间来同时(例如,并行、在时间上至少部分地重叠)读取四个固件代码子集。可在图4中由中空箭头和其中的子集表示并行(同时执行的)读取操作集,且因此表示同时读取所读取的固件代码的子集的操作群组。
存储器装置可继续使用并行检索方法。对不同存储器平面内的同一地址页执行同时读取操作,直到将固件的完整副本加载到存储器高速缓存器中为止。然而,不同于串行检索方法,存储器装置可归因于固件布局400-b的交错模式而跳过从一或多个页地址进行读取。举例来说,在从所有平面405-b上的每一页4进行读取之后,存储器装置可接下来从所有平面405-b上的每一页8进行读取。在给定实例中,作为读取操作的目标的最终页地址可为页62的页地址,原因是固件的最后一个固件代码子集(例如,子集61)存储于存储器平面3中的地址处。因此,可使用来自固件的不同副本的固件代码子集在存储器高速缓存器中加载(构建)完整固件集合,不同副本存储于不同的相应存储器平面中。
在一些情况下,存储器装置可更新其固件。举例来说,存储器装置可执行现场固件更新(FFU),其中新固件版本替换较旧固件版本。在FFU期间,存储器装置可一次替换固件的一个副本。举例来说,存储器装置可完全更新存储于平面0处的固件的第一副本,之后再开始更新存储于其它存储器平面处的固件的其它副本。为更新存储器平面中的固件,存储器装置可例如以从开头页地址(例如,存储器平面0的页4)开始的循序次序覆写或以其它方式替换(例如,通过擦除和编程操作的任何组合)每一固件代码子集。每一存储器平面的开头页地址可不同。举例来说,页4的页地址可为存储器平面0的开头地址,页3的页地址可为存储器平面1的开头地址,页2的页地址可为存储器平面2的开头地址,且页1的页地址可为存储器平面3的开头地址。在一些实例中,存储器装置可擦除页地址处的内容,之后再更新存储于此处的固件子集。举例来说,存储器装置可擦除包含页的存储器块的内容,之后再将新固件代码版本写入到所述页。
存储器装置可通过参考可位于已知地址(例如,存储于ROM中的地址)处的起始代码(STC),定位存储器平面的开头地址。举例来说,存储器装置可执行ROM代码以搜索、找到和加载起始代码。起始代码可为包含关于存储固件的NAND存储器(或其它类型的存储器)的信息的例程(例如,具有极少功能性的固件)。举例来说,起始代码可指示NAND存储器的几何形状、NAND存储器中的平面数目、存储器装置中的NAND裸片数目等。起始代码也可指示NAND存储器的布局400,包含存储于每一存储器平面中的固件副本的开头页地址。在存储器装置辨识起始代码之后,存储器装置可将控制传到起始代码(例如,加载和执行起始代码)以便可读取页的其余部分以获得固件代码。因此,起始代码的使用可使得存储器装置能够动态改变NAND布局而不改变ROM。然而,存储器装置可通过实施排除故障软件(work-around)(例如,使用熔丝通知NAND布局的ROM改变),避免使用起始代码。
在一些情况下,可中断执行固件更新的存储器装置进行的中间更新并且阻止完成更新。仅作为一个实例,存储器装置可当电力消失时,更新平面3中的固件。在这类情境中,平面3中的固件的一部分可经更新,而其余部分保持不被更新。因此,平面3中的固件的至少一部分与平面0、1和/或2中的固件不一致,这取决于存储于平面平面中的固件版本。如果使用并行检索方法的存储器装置未能检测到跨平面的固件版本不同,那么存储器装置可尝试加载和执行不同固件版本,这可增加系统崩溃的可能性。
在一些情况下,为解决此可能问题,每一页可存储指示所述页更新状态的旗标(例如,作为元数据420的部分)。举例来说,页可包含存储表示存储于所述页处的固件代码的更新状态的逻辑状态(例如,值)的存储器单元。当存储于页处的固件代码经更新时,可改变存储于存储器单元处的逻辑状态以反映所述更新。同时从不同平面中的页读取固件代码的存储器装置因此可通过比较存储于每一页中的“状态更新”旗标,检测到跨页的不一致固件更新状态(例如,不同固件版本)。如果旗标是相同值,那么存储器装置可确定存储器页全都具有同一固件版本。如果旗标不同,那么存储器装置可确定存储器页具有不同固件版本。因此,存储器装置可通过每当页经新固件更新上便双态切换表示页的更新状态的位,以此实施固件版本检测方案。
在检测到存储器页具有不同固件版本后,存储器装置即刻可从并行检索方法切换到串行检索方法。举例来说,如果存储器装置确定平面3的页4中的固件代码(例如,子集3)是不同于平面0、1和2的页8中的固件代码的版本,那么存储器装置可读取存储于平面0中的从页7开始的固件其余部分(例如,集3)。存储器装置可基于存储于平面0中的副本是旧固件版本,选择平面0使用串行检索方法。替代地,存储器装置可减少并行检索方法中涉及的平面数目(相较于切换到串行检索方法)。举例来说,存储器装置可从并行读取操作的后续轮次中忽略平面3。因此,存储器装置可对具有存储器平面0、1和2中的页7的页地址的页执行并行读取操作的轮次。
虽然使用旗标(例如,单一位)指示页更新状态与其它固件版本检测方案相比可为高效的,但这类方案可要求格外注意确保旗标在固件更新期间在副本之间始终不同。举例来说,存储器装置可从两个页意外加载不同固件版本,原因是那些页中的旗标出现相同值(例如,原因是一个页比其它页多更新两次)。因此,存储器装置可通过使用每一页中的多个存储器单元(例如,字段)存储对存储于所述页中的固件版本的指示,改进稳健性并且增加检测可靠性。在以多平面模式同时从多个页读取固件代码后,存储器装置即刻可比较与每一页相关联的固件版本,之后再将固件加载到高速缓冲存储器中。如果固件版本不同,那么存储器装置可丢弃固件代码并且切换到单平面模式。如果固件版本相同,那么存储器装置可将固件加载到高速缓冲存储器中并且继续多平面模式。
在一些实例中,在多平面模式中操作的存储器装置可确定页与错误相关联。举例来说,在从平面3的页4读取子集3之后,存储器装置可确定子集3具有错误。存储器装置可使用错误校正码检测错误,所述错误校正码可包含在存储于页4中的奇偶校验数据415中。在检测到错误后,存储器装置即刻可丢弃从平面3的页4读取的数据并且从另一平面中的一个页读取子集3。举例来说,存储器装置可从平面0的页7、或平面1的页6、或平面2的页5读取子集3。存储器装置接着可从页8开头来重新开始并行检索方法。替代地,存储器装置可切换到串行检索方法(例如,在存储器装置确定已超过一定错误数量的情况下)。
虽然关于存储器平面进行描述,但本文中所描述的技术可在存储器块层级实施或扩展到任何其它阶层式层级或架构。另外,本文中所描述的技术可针对存储于存储器中的任何类型的数据进行实施。
图5说明根据本文所公开的实例的支持用于存储器控制器的固件加载的过程流500的实例。过程流500的方面可由如本文中所描述的存储器装置或控制器实施。
在505处,存储器装置可搜索存储器(例如,NAND存储器)中的起始代码。在找到起始代码之后,在510处,存储器装置可加载来自起始代码的存储器参数(例如,存储器几何形状、存储器布局、每一裸片的平面数目、每一装置的裸片数目等),使得存储器可搜索固件代码。在515处,存储器装置可根据本文中所描述的技术对第一存储器平面集执行并行检索方法。在520处,存储器装置可确定从存储器平面读取的固件代码子集中是否存在错误。如果存储器装置检测到错误,那么存储器装置可丢弃固件代码子集,并且在535处,从不同存储器平面读取替换(例如,无错)固件子集。存储器装置接着可在540处切换到使用串行检索方法。替代地,存储器装置可减少在并行检索方法期间读取的平面数量并且从515开始所述过程。减少在并行检索方法期间读取的平面数量可包含从后续同时读取操作省略平面中的一或多个。
如果在520,存储器装置未检测到错误,那么存储器装置可检查在525处读取的每一页的更新状态旗标。举例来说,存储器装置可比较(例如,使用感测放大器)每一状态旗标(例如,位)的值(例如,逻辑状态)。如果在525处确定状态更新旗标的值相同,那么存储器装置可转到如下文所描述的530。如果在525处确定状态旗标的值不同,那么存储器装置可确定页具有不同更新状态(例如,不同固件代码版本)。因此,存储器装置可丢弃具有错误版本的固件代码子集,并且在535处,从不同存储器平面读取替换(例如,正确版本)固件子集。存储器装置接着可在540处切换到使用串行检索方法。替代地,存储器装置可减少在并行检索方法期间读取的平面数量并且从515开始所述过程。
在540处使用串行检索方法读取额外固件代码子集之后(或在使用减少的并行检索方法读取额外固件代码子集之后),存储器装置可在545处检查额外固件数据子集中的错误。如果检测到错误,那么在535处,存储器装置可通过读取不同存储器平面,将具有错误的固件代码替换为无错误固件代码。如果未检测到错误,那么在550处,存储器装置可确定固件代码集(例如,完整副本)是否已加载到存储器高速缓存器中。如果尚未加载固件代码集(例如,错过至少一个固件代码子集),那么存储器装置可在515处继续并行检索方法。如果已加载固件代码集,那么存储器装置可结束并行检索方法并且执行固件代码。
图6示出根据本文所公开的实例的支持用于存储器控制器的固件加载的存储器装置605的框图600。存储器装置605可为参考图1所描述的存储器装置的方面的实例。存储器装置605可包含读取组件610、加载组件615、比较组件620、更新组件625和错误组件630。这些模块中的每一个可彼此直接或间接(例如,经由一或多个总线或其它导电连接件)通信。
读取组件610可从存储器的第一页读取固件代码集的第一子集。第一页可具有第一页地址并且处于存储器装置的第一平面内。并且,第一平面可存储固件代码集的第一副本。读取组件610可与读取固件代码集的第一子集同时地,从存储器的第二页读取固件代码集的第二子集。第二页可具有第一页地址并且可处于存储器装置的第二平面内。并且,第二平面可存储固件代码集的第二副本。加载组件615可将固件代码集的第一子集、固件代码集的第二子集或这两者加载到高速缓冲存储器中以供存储器装置的控制器执行。在一些实例中,第一平面和第二平面共享用于解码页地址的电路系统。在一些实例中,第一平面和第二平面处于同一存储器裸片内。
比较组件620可将存储于第一页中的第一位与存储于第二页中的第二位进行比较。第一位可表示与第一页相关联的固件更新状态,且第二位可表示与第二页相关联的固件更新状态。在一些实例中,比较组件620可确定第一位和第二位具有相同值。在此类实例中,读取组件610可至少部分地基于第一位和第二位具有相同值,同时从第一平面和第二平面内的额外存储器页读取额外固件代码集子集,所述额外页各自具有第二页地址。在一些实例中,比较组件620可确定第一位和第二位具有不同值。在此类实例中,读取组件610可至少部分地基于第一位和第二位具有不同值,从第一平面内的额外存储器页读取额外固件代码集的子集,所述额外页具有不同页地址。另外,更新组件625可至少部分地基于第二位,确定固件代码集的第二子集已经更新。因此,加载组件615可至少部分地基于确定固件代码集的第二子集已经更新,丢弃固件代码集的第二子集。
在一些实例中,更新组件625可更新存储于第一平面的第一页中的固件代码集的第一子集。更新组件625也可至少部分地基于更新固件代码集的第一子集,改变存储于第一平面的第一页中的第一位的值。
在一些实例中,错误组件630可检测与存储于第二页中的固件代码集的第二子集相关联的错误。在此类实例中,读取组件610可至少部分地基于检测到错误,从存储器的处于第一平面内并且具有第二页地址的第三页读取固件代码集的第二子集的副本。
在一些实例中,读取组件610可从存储器的处于第一平面内并且具有第二页地址的第三页读取固件代码集的第三子集。读取组件610也可与读取固件代码集的第三子集同时地,从存储器的处于第二平面内并且具有第二页地址的第四页读取固件代码集的第四子集。
在一些实例中,读取组件610可与读取固件代码集的第一和第二子集同时地,从存储器的处于第三平面内并且具有第一页地址的第三页读取固件代码集的第三子集。第三平面可存储固件代码集的第三副本。在一些实例中,更新组件625可确定固件代码集的第三子集具有不同于固件代码集的第一子集和第二子集的更新状态。在这类情况下,读取组件610可至少部分地基于所述确定,从对第一平面和第二平面内的页执行的同时读取操作后续集忽略第三平面。
在一些实例中,更新组件625可通过将新固件版本写入到第一存储器平面内的第一多个依序定址页,更新存储于第一存储器平面中的固件的第一副本,所述第一多个依序定址页从第一页地址开始。更新组件625也可通过将新固件版本写入到第二存储器平面内的第二多个依序定址页,更新存储于第二存储器平面中的固件的第二副本,所述第二多个依序定址页从偏离第一页地址的第二页地址开始。在一些实例中,更新固件的第一副本可包含将固件的第一子集(例如,子集0)写入到第一存储器平面(例如,固件布局400-b的平面3)内的具有第一页地址(例如,页1)的页,并且将固件的第二子集(例如,子集1)写入到第一存储器平面(例如,固件布局400-b的平面3)内的具有第二页地址的页(例如,页2)。在一些实例中,更新固件的第二副本可包含将固件的第一子集(例如,子集0)写入到第二存储器平面(例如,固件布局400-b的存储器平面2)内的具有第二页地址的页(例如,页2),并且将固件的第二子集(例如,子集1)写入到第二存储器平面(例如,固件布局400-b的存储器平面3)内的具有第三页地址的页(例如,页3)。
在一些实例中,更新组件625可至少部分地基于更新固件的第一副本,改变存储于具有第一页地址的第一页中的第一位的值,所述第一位表示第一存储器页的更新状态。在一些实例中,更新组件625可至少部分地基于更新固件的第二副本,改变存储于具有第二页地址的第二页中的第二位的值,所述第二位表示第二页的更新状态。
图7示出说明根据本文所公开的实例的支持用于存储器控制器的固件加载的一或多种方法700的流程图。方法700的操作可由如本文所描述的存储器装置或其组件实施。举例来说,方法700的操作可由参考图1和6所描述的存储器装置执行。在一些实例中,存储器装置可执行指令集以控制存储器装置的功能元件以执行所描述的功能。另外或替代地,存储器装置可使用专用硬件执行所描述的功能的方面。
在705处,所述方法可包含从存储器的第一页读取固件代码集的第一子集,其中所述第一页具有第一页地址并且处于存储器装置的第一平面内,且其中第一平面存储固件代码集的第一副本。可根据本文中所描述的方法执行705的操作。在一些实例中,可由参考图6所描述的读取组件执行705的操作的方面。
在710处,所述方法可包含与读取固件代码集的第一子集同时地,从存储器的第二页读取固件代码集的第二子集,其中第二页具有第一页地址并且处于存储器装置的第二平面内,且其中第二平面存储固件代码集的第二副本。可根据本文中所描述的方法执行710的操作。在一些实例中,可由参考图6所描述的读取组件执行710的操作的方面。
在715处,所述方法可包含将固件代码集的第一子集、固件代码集的第二子集或这两者加载到高速缓冲存储器中以供存储器装置的控制器执行。可根据本文中所描述的方法执行715的操作。在一些实例中,可由参考图6所描述的加载组件执行715的操作的方面。
在一些实例中,如本文中所描述的设备可执行一或多种方法,例如方法700。所述设备可包含用于以下操作的特征、装置或指令(例如,非暂时性计算机可读媒体存储的可由处理器执行的指令):从存储器的第一页读取固件代码集的第一子集,其中所述第一页具有第一页地址并且处于存储器装置的第一平面内,且其中所述第一平面存储固件代码集的第一副本;与读取固件代码集的第一子集同时地,从存储器的第二页读取固件代码集的第二子集,其中所述第二页具有第一页地址并且处于存储器装置的第二平面内,且其中所述第二平面存储固件代码集的第二副本;和将固件代码集的第一子集、固件代码集的第二子集或这两者加载到高速缓冲存储器中以供存储器装置的控制器执行。
本文中所描述的方法700和设备的一些实例可另外包含用于以下操作的操作、特征、装置或指令:将存储于第一页中的第一位与存储于第二页中的第二位进行比较,所述第一位表示与第一页相关联的固件更新状态且所述第二位表示与第二页相关联的固件更新状态。本文中所描述的方法700和设备的一些实例可另外包含用于以下操作的操作、特征、装置或指令:确定所述第一位和所述第二位具有相同值;和至少部分地基于所述第一位和所述第二位具有所述相同值,同时从所述第一平面和所述第二平面内的额外存储器页读取所述固件代码集的额外子集,所述额外页各自具有第二页地址。
本文中所描述的方法700和设备的一些实例可另外包含用于以下操作的操作、特征、装置或指令:确定所述第一位和所述第二位具有不同值;和至少部分地基于所述第一位和所述第二位具有不同值,从所述第一平面内的额外存储器页读取所述固件代码集的额外子集,所述额外页具有不同页地址。本文中所描述的方法700和设备的一些实例可另外包含用于以下操作的操作、特征、装置或指令:至少部分地基于所述第二位,确定所述固件代码集的所述第二子集已经更新;和至少部分地基于确定所述固件代码集的所述第二子集已经更新,丢弃所述固件代码集的所述第二子集。
本文中所描述的方法700和设备的一些实例可另外包含用于以下操作的操作、特征、装置或指令:更新存储于所述第一平面的所述第一页中的所述固件代码集的所述第一子集;和至少部分地基于更新所述固件代码集的所述第一子集,改变存储于所述第一平面的所述第一页中的所述第一位的值。
本文中所描述的方法700和设备的一些实例可另外包含用于以下操作的操作、特征、装置或指令:从存储器的处于所述第一平面内并且具有第二页地址的第三页读取所述固件代码集的第三子集。本文中所描述的方法700和设备的一些实例可另外包含用于以下操作的操作、特征、装置或指令:与读取所述固件代码集的所述第三子集同时地,从存储器的处于所述第二平面内并且具有所述第二页地址的第四页读取所述固件代码集的第四子集。
本文中所描述的方法700和设备的一些实例可另外包含用于以下操作的操作、特征、装置或指令:与读取所述固件代码集的所述第一子集和所述第二子集同时地,从存储器的处于第三平面内并且具有所述第一页地址的第三页读取所述固件代码集的第三子集,其中所述第三平面存储所述固件代码集的第三副本。本文中所描述的方法700和设备的一些实例可另外包含用于以下操作的操作、特征、装置或指令:确定所述固件代码集的所述第三子集具有不同于所述固件代码集的所述第一子集和所述第二子集的更新状态;和至少部分地基于所述确定,从对所述第一平面和所述第二平面内的页执行的同时读取操作后续集中省略所述第三平面。
在本文中所描述的方法700和设备的一些实例中,所述第一平面和所述第二平面共享用于解码页地址的电路系统。在本文中所描述的方法700和设备的一些实例中,所述第一平面和所述第二平面处于同一存储器裸片内。
图8示出说明根据本文所公开的实例的支持用于存储器控制器的固件加载的一或多种方法800的流程图。方法800的操作可由如本文所描述的存储器装置或其组件实施。举例来说,方法800的操作可由参考图1和6所描述的存储器装置执行。在一些实例中,存储器装置可执行指令集以控制存储器装置的功能元件以执行所描述的功能。另外或替代地,存储器装置可使用专用硬件执行所描述的功能的方面。
在805处,所述方法可包含通过将新固件版本写入到第一存储器平面内的第一多个依序定址页,更新存储于第一存储器平面中的固件的第一副本,所述第一多个依序定址页从第一页地址开始。可根据本文中所描述的方法执行805的操作。在一些实例中,可由参考图6所描述的更新组件执行805的操作的方面。
在810处,所述方法可包含通过将新固件版本写入到第二存储器平面内的第二多个依序定址页,更新存储于第二存储器平面中的固件的第二副本,所述第二多个依序定址页从偏离第一页地址的第二页地址开始。可根据本文中所描述的方法执行810的操作。在一些实例中,可由参考图6所描述的更新组件执行810的操作的方面。
在一些实例中,如本文中所描述的设备可执行一或多种方法,例如方法800。所述设备可包含用于以下操作的特征、装置或指令(例如,非暂时性计算机可读媒体存储的可由处理器执行的指令):通过将新固件版本写入到第一存储器平面内的第一多个依序定址页,更新存储于第一存储器平面中的固件的第一副本,所述第一多个依序定址页从第一页地址开始;和通过将新固件版本写入到第二存储器平面内的第二多个依序定址页,更新存储于第二存储器平面中的固件的第二副本,所述第二多个依序定址页从偏离第一页地址的第二页地址开始。
本文中所描述的方法800和设备的一些实例可另外包含用于以下操作的操作、特征、装置或指令:至少部分地基于更新固件的第一副本,改变存储于具有第一页地址的第一页中的第一位的值,所述第一位表示第一存储器页的更新状态。本文中所描述的方法800和设备的一些实例可另外包含用于以下操作的操作、特征、装置或指令:至少部分地基于更新固件的第二副本,改变存储于具有第二页地址的第二页中的第二位的值,所述第二位表示第二页的更新状态。
本文中所描述的方法800和设备的一些实例可另外包含用于以下操作的操作、特征、装置或指令:将所述固件的第一子集写入到所述第一存储器平面内的具有所述第一页地址的页。本文中所描述的方法800和设备的一些实例可另外包含用于以下操作的操作、特征、装置或指令:将所述固件的第二子集写入到所述第一存储器平面内的具有所述第二页地址的页。本文中所描述的方法800和设备的一些实例可另外包含用于以下操作的操作、特征、装置或指令:将所述固件的所述第一子集写入到所述第二存储器平面内的具有所述第二页地址的页。本文中所描述的方法800和设备的一些实例可另外包含用于以下操作的操作、特征、装置或指令:将所述固件的所述第二子集写入到所述第二存储器平面内的具有第三页地址的页。在一些实例中,更新固件的第二副本是在更新第一副本之后发生。
在一些实例中,如本文中所描述设备可执行一或多种方法,例如方法700或方法800。所述设备可包含第一存储器平面,其可操作以存储固件代码集的第一副本;第二存储器平面,其可操作以存储所述固件代码集的第二副本;和控制器,其与所述第一存储器平面和所述第二存储器平面耦合。所述控制器可为可操作的以:起始从具有第一页地址的第一页读取所述固件代码集的第一子集的第一读取操作,其中所述第一页处于所述第一存储器平面内;起始与所述第一读取操作同时地从具有所述第一页地址的第二页读取所述固件代码集的第二子集的第二读取操作,其中所述第二页处于所述第二存储器平面内;和至少部分地基于所述第一读取操作执行所述固件代码集的所述第一子集,至少部分地基于所述第二读取操作执行所述固件代码集的所述第二子集,或这两者。控制器可为可操作的以在控制器被编程有在被执行时致使控制器执行一操作的指令的情况下执行所述操作。
在一些实例中,控制器可为可操作的以确定所述固件代码集的所述第一子集和所述第二子集具有不同更新状态。并且,控制器可为可操作的以至少部分地基于所述确定,起始从所述第一存储器平面中的多个页读取所述固件代码集的额外子集的多个串行读取操作。
在一些实例中,控制器可为可操作的以确定所述固件代码集的所述第一子集和所述第二子集具有匹配的更新状态。并且,控制器可为可操作的以至少部分地基于所述确定,起始从所述第一存储器平面和所述第二存储器平面中的页读取所述固件代码集的额外子集的多个同时读取操作。
在一些实例中,所述控制器可为可操作的以起始更新所述固件代码集的所述第一副本的第一多个擦除和写入操作,所述第一多个写入操作从所述第一页地址开始。并且,所述控制器可为可操作的以起始更新所述固件代码集的所述第二副本的第二多个擦除和写入操作,所述第二多个写入操作从第二页地址开始。在一些实例中,所述第一多个写入操作可操作以改变所述第一存储器平面的每一页中,表示所述固件代码集的相应子集的更新状态的至少一个逻辑值。在一些实例中,所述第二多个写入操作可操作以改变所述第二存储器平面的每一页中,表示所述固件代码集的相应子集的更新状态的至少一个逻辑值。在一些实例中,所述固件代码集的不同子集写入到与所述第一页地址相关联的存储器单元和与所述第二页地址相关联的存储器单元。
在一些实例中,控制器可操作以起始从具有第二页地址的第三页读取所述固件代码集的第三子集的第三读取操作,其中所述第三页处于所述第一存储器平面内。并且,所述控制器可为可操作的以起始与所述第三读取操作同时地从具有所述第二页地址的第四页读取所述固件代码集的第四子集的第四读取操作,其中所述第四页处于所述第二存储器平面内。
在一些实例中,所述设备可包含第三存储器平面,其可操作以存储所述固件代码集的第三副本。在此类实例中,所述控制器可为可操作的以起始与所述第一读取操作和所述第二读取操作同时地从具有所述第一页地址的第三页读取所述固件代码集的第三子集的第三读取操作,其中所述第三页处于所述第三存储器平面内。并且,所述控制器可为可操作的以至少部分地基于所述第三读取操作,执行所述固件代码集的所述第三子集。
在一些实例中,所述设备可包含电路系统,其可操作以解码用于读取操作的页地址,其中所述电路系统与所述第一存储器平面和所述第二存储器平面耦合。
应注意,本文所描述的方法是可能的实施方案,且操作和步骤可以重新排列或以其它方式加以修改,且其它实施方案是可能的。此外,可以组合来自方法中的两个或更多个的部分。
可使用多种不同技术和技艺中的任一个来表示本文中所描述的信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。一些图式可将信号说明为单个信号;然而,所属领域的一般技术人员将理解,所述信号可表示信号总线,其中总线可具有多种位宽度。
如本文中所使用,术语“虚拟接地”是指保持在大约零伏(0V)的电压下而不直接与接地耦合的电路节点。因此,虚拟接地的电压可在时间上为波动的且在稳定状态下返回到大约0V。可使用例如由运算放大器和电阻器组成的分压器的各种电子电路元件实施虚拟接地。其它实施方案也是可能的。“虚拟接地”或“虚拟地接地”是指连接到约0V。
术语“电子连通”、“导电接触”、“连接”和“耦合”可以指组件之间支持电子在组件之间流动的关系。如果组件之间存在可在任何时间支持信号在组件之间流动的任何导电路径,那么组件被视为彼此电子连通(或彼此导电接触,或彼此连接,或彼此耦合)。在任何给定时间,基于包含所连接组件的装置的操作,彼此电子通信(或彼此导电接触,或彼此连接,或彼此耦合)的组件之间的导电路径可以是开路或闭路。所连接组件之间的导电路径可以是组件之间的直接导电路径,或所连接组件之间的导电路径可以是可包含如开关、晶体管或其它组件的中间组件的间接导电路径。在一些情况下,可例如使用如开关或晶体管的一或多个中间组件将所连接组件之间的信号流动中断一段时间。
术语“耦合”是指从组件之间的开路关系移动到组件之间的闭路关系的条件,在开路关系中,信号当前不能通过导电路径在组件之间传达,在闭路关系中,信号可通过导电路径在组件之间传达。当例如控制器等组件将其它组件耦合在一起时,组件发起允许信号通过先前不准许信号流动的导电路径在其它组件之间流动的改变。
术语“隔离”是指信号当前不能在组件之间流动的组件之间的关系。如果组件之间存在开路,那么组件彼此隔离。举例来说,由定位在两个组件之间的开关间隔开的所述组件在开关断开时彼此隔离。当控制器将两个组件彼此隔离时,控制器实现以下改变:阻止信号使用先前准许信号流动的导电路径在组件之间流动。
如本文所用,术语“大体上”意指经修饰特征(例如由术语大体上修饰的动词或形容词)不必是绝对的但要足够接近以便获得特征的优点。
本文所论述的包含存储器装置的装置可形成在半导体衬底上,例如硅、锗、硅锗合金、砷化镓、氮化镓等。在一些情况下,衬底为半导体晶片。在其它情况下,衬底可为绝缘体上硅(SOI)衬底,例如玻璃上硅(SOG)或蓝宝石上硅(SOP),或另一衬底上的半导体材料的外延层。可通过使用包含但不限于磷、硼或砷的各种化学物质的掺杂来控制衬底或衬底的子区的导电性。可在衬底的初始形成或生长期间,通过离子植入或通过任何其它掺杂方法执行掺杂。
本文中所论述的开关组件或晶体管可表示场效应晶体管(FET),且包括包含源极、漏极和栅极的三端装置。所述端子可通过导电材料(例如金属)连接到其它电子元件。源极和漏极可为导电的,且可包括经重掺杂,例如简并,半导体区。源极与漏极可通过经轻掺杂半导体区或沟道分离。如果沟道是n型的(即,大部分载流子为电子),那么FET可被称为n型FET。如果沟道是p型的(即,大部分载流子为电洞),那么FET可被称为p型FET。通道可由绝缘栅极氧化物封端。可通过将电压施加到栅极来控制通道导电性。举例来说,将正电压或负电压分别施加到n型FET或p型FET可导致通道变得导电。当大于或等于晶体管的阈值电压的电压被施加到晶体管栅极时,晶体管可“接通”或“激活”。当小于晶体管的阈值电压的电压施加到晶体管栅极时,晶体管可“断开”或“解除激活”。
本文结合附图阐述的描述内容描述了实例配置,且并不表示可以实施的或在权利要求书的范围内的所有实例。本文中所使用的术语“示范性”是指“充当实例、例子或说明”,且不“优选于”或“优于”其它实例。详细描述包含具体细节,以提供对所描述技术的理解。然而,可在没有这些具体细节的情况下实践这些技术。在一些情况下,以框图形式示出熟知结构和装置,以免混淆所描述实例的概念。
在附图中,类似组件或特征可以具有相同的参考标记。另外,可通过在参考标记之后跟着短划线和在类似组件当中进行区分的第二标记来区分相同类型的各种组件。如果说明书中仅使用第一参考标记,那么描述适用于具有相同第一参考标记的类似组件中的任一者,与第二参考标记无关。
结合本文中的公开内容所描述的各种说明性块和模块可使用通用处理器、DSP、ASIC、FPGA或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或经设计以执行本文所描述的功能的其任何组合来实施或执行。通用处理器可为微处理器,但在替代方案中,处理器可为任何处理器、控制器、微控制器或状态机。处理器也可实施为计算装置的组合(例如,DSP和微处理器的组合、多个微处理器、与DSP核心结合的一或多个微处理器,或任何其它此类配置)。
本文中所描述的功能可以硬件、由处理器执行的软件、固件或其任何组合实施。如果以由处理器执行的软件来实施,那么可将功能作为一或多个指令或代码存储于计算机可读媒体上或通过计算机可读媒体予以传输。其它实例和实施在本公开和所附权利要求书的范围内。举例来说,归因于软件的性质,本文中所描述的功能可使用由处理器执行的软件、硬件、固件、硬连线或任何这些的组合来实施。实施功能的特征还可物理上位于各种位置处,包含经分布以使得功能的部分在不同物理位置处实施。并且,如本文中所使用,包含在权利要求书中,项目的列表(例如,以例如“中的至少一者”或“中的一或多者”的短语开始的项目的列表)中所使用的“或”指示包含性列表,使得(例如)A、B或C中的至少一者的列表意指A或B或C或AB或AC或BC或ABC(即,A和B和C)。另外,如本文所用,短语“基于”不应理解为提及封闭条件集。举例来说,在不脱离本公开的范围的情况下,描述为“基于条件A”的示范性步骤可基于条件A和条件B两者。换句话说,如本文所用,短语“基于”应同样地解释为短语“至少部分地基于”。
提供本文中的描述使得所属领域的技术人员能够进行或使用本公开。所属领域技术人员将清楚对本公开的各种修改,且本文中所定义的一般原理可应用于其它变化形式而不会脱离本公开的范围。因此,本公开不限于本文描述的实例及设计,而是被赋予与本文公开的原理及新颖特征一致的最宽范围。

Claims (25)

1.一种由存储器装置执行的方法,所述方法包括:
从存储器的第一页读取固件代码集的第一子集,其中所述第一页具有第一页地址并且处于所述存储器装置的第一平面内,且其中所述第一平面存储所述固件代码集的第一副本;
与读取所述固件代码集的所述第一子集同时地,从存储器的第二页读取所述固件代码集的第二子集,其中所述第二页具有所述第一页地址并且处于所述存储器装置的第二平面内,且其中所述第二平面存储所述固件代码集的第二副本;和
将所述固件代码集的所述第一子集、所述固件代码集的所述第二子集或这两者加载到高速缓冲存储器中以供所述存储器装置的控制器执行。
2.根据权利要求1所述的方法,其另外包括:
将存储于所述第一页中的第一位与存储于所述第二页中的第二位进行比较,所述第一位表示与所述第一页相关联的固件更新状态且所述第二位表示与所述第二页相关联的固件更新状态。
3.根据权利要求2所述的方法,其另外包括:
确定所述第一位和所述第二位具有相同值;和
至少部分地基于所述第一位和所述第二位具有所述相同值,同时从所述第一平面和所述第二平面内的额外存储器页读取所述固件代码集的额外子集,所述额外页各自具有第二页地址。
4.根据权利要求2所述的方法,其另外包括:
确定所述第一位和所述第二位具有不同值;和
至少部分地基于所述第一位和所述第二位具有不同值,从所述第一平面内的额外存储器页读取所述固件代码集的额外子集,所述额外页具有不同页地址。
5.根据权利要求4所述的方法,其另外包括:
至少部分地基于所述第二位,确定所述固件代码集的所述第二子集已经更新;和
至少部分地基于确定所述固件代码集的所述第二子集已经更新,丢弃所述固件代码集的所述第二子集。
6.根据权利要求2所述的方法,其另外包括:
更新存储于所述第一平面的所述第一页中的所述固件代码集的所述第一子集;和
至少部分地基于更新所述固件代码集的所述第一子集,改变存储于所述第一平面的所述第一页中的所述第一位的值。
7.根据权利要求1所述的方法,其另外包括:
检测与存储于所述第二页中的所述固件代码集的所述第二子集相关联的错误;和
至少部分地基于检测到所述错误,从存储器的处于所述第一平面内并且具有第二页地址的第三页读取所述固件代码集的所述第二子集的副本。
8.根据权利要求1所述的方法,其另外包括:
从存储器的处于所述第一平面内并且具有第二页地址的第三页读取所述固件代码集的第三子集;和
与读取所述固件代码集的所述第三子集同时地,从存储器的处于所述第二平面内并且具有所述第二页地址的第四页读取所述固件代码集的第四子集。
9.根据权利要求1所述的方法,其另外包括:
与读取所述固件代码集的所述第一子集和所述第二子集同时地,从存储器的处于第三平面内并且具有所述第一页地址的第三页读取所述固件代码集的第三子集,其中所述第三平面存储所述固件代码集的第三副本。
10.根据权利要求9所述的方法,其另外包括:
确定所述固件代码集的所述第三子集具有不同于所述固件代码集的所述第一子集和所述第二子集的更新状态;和
至少部分地基于所述确定,从对所述第一平面和所述第二平面内的页执行的同时读取操作后续集中省略所述第三平面。
11.根据权利要求1所述的方法,其中所述第一平面和所述第二平面共享用于解码页地址的电路系统。
12.根据权利要求1所述的方法,其中所述第一平面和所述第二平面处于同一存储器裸片内。
13.一种设备,其包括:
第一存储器平面,其可操作以存储固件代码集的第一副本;
第二存储器平面,其可操作以存储所述固件代码集的第二副本;和
控制器,其与所述第一存储器平面和所述第二存储器平面耦合,所述控制器可操作以:
起始从具有第一页地址的第一页读取所述固件代码集的第一子集的第一读取操作,其中所述第一页处于所述第一存储器平面内;
起始与所述第一读取操作同时地从具有所述第一页地址的第二页读取所述固件代码集的第二子集的第二读取操作,其中所述第二页处于所述第二存储器平面内;和
至少部分地基于所述第一读取操作执行所述固件代码集的所述第一子集,至少部分地基于所述第二读取操作执行所述固件代码集的所述第二子集,或这两者。
14.根据权利要求13所述的设备,其中所述控制器进一步可操作以:
确定所述固件代码集的所述第一子集和所述第二子集具有不同更新状态;和
至少部分地基于所述确定,起始从所述第一存储器平面中的多个页读取所述固件代码集的额外子集的多个串行读取操作。
15.根据权利要求13所述的设备,其中所述控制器进一步可操作以:
确定所述固件代码集的所述第一子集和所述第二子集具有匹配的更新状态;和
至少部分地基于所述确定,起始从所述第一存储器平面和所述第二存储器平面中的页读取所述固件代码集的额外子集的多个同时读取操作。
16.根据权利要求13所述的设备,其中所述控制器进一步可操作以:
起始更新所述固件代码集的所述第一副本的第一多个擦除和写入操作,所述第一多个擦除和写入操作从所述第一页地址开始;和
起始更新所述固件代码集的所述第二副本的第二多个擦除和写入操作,所述第二多个擦除和写入操作从第二页地址开始。
17.根据权利要求16所述的设备,其中所述第一多个擦除和写入操作可操作以改变所述第一存储器平面的每一页中,表示所述固件代码集的相应子集的更新状态的至少一个逻辑值;且其中所述第二多个擦除和写入操作可操作以改变所述第二存储器平面的每一页中,表示所述固件代码集的相应子集的更新状态的至少一个逻辑值。
18.根据权利要求16所述的设备,其中所述固件代码集的不同子集写入到与所述第一页地址相关联的存储器单元和与所述第二页地址相关联的存储器单元。
19.根据权利要求13所述的设备,其中所述控制器进一步可操作以:
起始从具有第二页地址的第三页读取所述固件代码集的第三子集的第三读取操作,其中所述第三页处于所述第一存储器平面内;和
起始与所述第三读取操作同时地从具有所述第二页地址的第四页读取所述固件代码集的第四子集的第四读取操作,其中所述第四页处于所述第二存储器平面内。
20.根据权利要求13所述的设备,其另外包括:
第三存储器平面,其可操作以存储所述固件代码集的第三副本,其中所述控制器进一步可操作以:
起始与所述第一读取操作和所述第二读取操作同时地从具有所述第一页地址的第三页读取所述固件代码集的第三子集的第三读取操作,其中所述第三页处于所述第三存储器平面内;和
至少部分地基于所述第三读取操作,执行所述固件代码集的所述第三子集。
21.根据权利要求13所述的设备,其另外包括:
电路系统,其可操作以解码用于读取操作的页地址,其中所述电路系统与所述第一存储器平面和所述第二存储器平面耦合。
22.一种设备,其包括:
存储器装置的第一存储器平面;
所述存储器装置的第二存储器平面;和
控制器,其与所述第一存储器平面和所述第二存储器平面耦合,所述控制器可操作以:
通过将所述固件的新版本写入到所述第一存储器平面内的第一多个依序定址页来更新存储于所述第一存储器平面中的固件的第一副本,所述第一多个依序定址页从第一页地址开始;和
通过将所述固件的所述新版本写入到所述第二存储器平面内的第二多个依序定址页来更新存储于第二存储器平面中的所述固件的第二副本,所述第二多个依序定址页从偏离所述第一页地址的第二页地址开始。
23.根据权利要求22所述的设备,其中所述控制器进一步可操作以:
至少部分地基于更新所述固件的所述第一副本而改变存储于具有所述第一页地址的第一页中的第一位的值,所述第一位表示所述第一页的更新状态;和
至少部分地基于更新所述固件的所述第二副本而改变存储于具有所述第二页地址的第二页中的第二位的值,所述第二位表示所述第二页的更新状态。
24.根据权利要求22所述的设备,其中所述控制器可操作以至少部分地基于以下操作而更新所述固件的所述第一副本:
将所述固件的第一子集写入到所述第一存储器平面内的具有所述第一页地址的页;和
将所述固件的第二子集写入到所述第一存储器平面内的具有所述第二页地址的页。
25.根据权利要求24所述的设备,其中所述控制器可操作以在更新所述第一副本之后更新所述固件的所述第二副本,且其中所述控制器可操作以至少部分地基于以下操作而更新所述固件的所述第二副本:
将所述固件的所述第一子集写入到所述第二存储器平面内的具有所述第二页地址的页;和
将所述固件的所述第二子集写入到所述第二存储器平面内的具有第三页地址的页。
CN202110214306.7A 2020-02-27 2021-02-25 用于存储器控制器的固件加载 Pending CN113312069A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/803,682 2020-02-27
US16/803,682 US11157416B2 (en) 2020-02-27 2020-02-27 Firmware loading for a memory controller

Publications (1)

Publication Number Publication Date
CN113312069A true CN113312069A (zh) 2021-08-27

Family

ID=77370650

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110214306.7A Pending CN113312069A (zh) 2020-02-27 2021-02-25 用于存储器控制器的固件加载

Country Status (2)

Country Link
US (2) US11157416B2 (zh)
CN (1) CN113312069A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116483280A (zh) * 2023-04-26 2023-07-25 珠海妙存科技有限公司 固件存储方法、固件查找方法、设备及介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3099607B1 (fr) * 2019-07-30 2021-11-05 Stmicroelectronics Grand Ouest Sas Composant électronique à micrologiciel
DE102020121109A1 (de) * 2019-09-20 2021-03-25 Samsung Electronics Co., Ltd. Speicher-controller, speichervorrichtungen und betriebsverfahren der speichervorrichtungen

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101808095A (zh) * 2010-03-22 2010-08-18 华中科技大学 一种分布式存储环境下的加密副本组织方法
CN101933095A (zh) * 2008-02-04 2010-12-29 莫塞德技术公司 具有可配置页面尺寸的非易失性存储器设备
US20120173953A1 (en) * 2010-12-29 2012-07-05 Flynn Patrick S Method to synchronize a replacement controller's firmware version to the native configuration database version on a simplex array
CN102623066A (zh) * 2012-01-19 2012-08-01 苏州希图视鼎微电子有限公司 固化代码参数表的保存及获取方法
US20140331033A1 (en) * 2013-05-06 2014-11-06 Phison Electronics Corp. Firmware code loading method, memory controller and memory storage apparatus
CN106575259A (zh) * 2014-08-15 2017-04-19 美光科技公司 用于同时存取存储器的不同存储器平面的设备及方法
CN107153509A (zh) * 2016-03-02 2017-09-12 爱思开海力士有限公司 数据存储装置及其操作方法
CN107408087A (zh) * 2015-11-05 2017-11-28 美光科技公司 用于在存储器存取操作期间同时存取存储器的多个存储器平面的设备及方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7631138B2 (en) * 2003-12-30 2009-12-08 Sandisk Corporation Adaptive mode switching of flash memory address mapping based on host usage characteristics
WO2012048444A1 (en) * 2010-10-14 2012-04-19 Freescale Semiconductor, Inc. Are Memory controller and method for accessing a plurality of non-volatile memory arrays
US9542333B2 (en) * 2014-12-04 2017-01-10 Qualcomm Incorporated Systems and methods for providing improved latency in a non-uniform memory architecture
FR3099607B1 (fr) * 2019-07-30 2021-11-05 Stmicroelectronics Grand Ouest Sas Composant électronique à micrologiciel

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101933095A (zh) * 2008-02-04 2010-12-29 莫塞德技术公司 具有可配置页面尺寸的非易失性存储器设备
CN101808095A (zh) * 2010-03-22 2010-08-18 华中科技大学 一种分布式存储环境下的加密副本组织方法
US20120173953A1 (en) * 2010-12-29 2012-07-05 Flynn Patrick S Method to synchronize a replacement controller's firmware version to the native configuration database version on a simplex array
CN102623066A (zh) * 2012-01-19 2012-08-01 苏州希图视鼎微电子有限公司 固化代码参数表的保存及获取方法
US20140331033A1 (en) * 2013-05-06 2014-11-06 Phison Electronics Corp. Firmware code loading method, memory controller and memory storage apparatus
CN106575259A (zh) * 2014-08-15 2017-04-19 美光科技公司 用于同时存取存储器的不同存储器平面的设备及方法
CN107408087A (zh) * 2015-11-05 2017-11-28 美光科技公司 用于在存储器存取操作期间同时存取存储器的多个存储器平面的设备及方法
CN107153509A (zh) * 2016-03-02 2017-09-12 爱思开海力士有限公司 数据存储装置及其操作方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116483280A (zh) * 2023-04-26 2023-07-25 珠海妙存科技有限公司 固件存储方法、固件查找方法、设备及介质
CN116483280B (zh) * 2023-04-26 2023-11-28 珠海妙存科技有限公司 固件存储方法、固件查找方法、设备及介质

Also Published As

Publication number Publication date
US11714757B2 (en) 2023-08-01
US20210271604A1 (en) 2021-09-02
US11157416B2 (en) 2021-10-26
US20220107899A1 (en) 2022-04-07

Similar Documents

Publication Publication Date Title
CN107492391B (zh) 基于单元电流的位线电压
KR102000307B1 (ko) 메모리 리프레시 방법 및 장치
US20200073754A1 (en) Error correction code event detection
US11714757B2 (en) Firmware loading for a memory controller
KR20220051255A (ko) 내용 주소화 메모리에 대한 에러 정정
US11799496B2 (en) Error correction bit flipping scheme
US11016843B2 (en) Direct-input redundancy scheme with adaptive syndrome decoder
US11862252B2 (en) Temperature-based memory management
US20220114049A1 (en) Direct-input redundancy scheme with dedicated error correction code circuit
US11901029B2 (en) Counter-based read in memory device
US11244739B2 (en) Counter-based read in memory device
US11817145B2 (en) Programming multi-level memory cells
CN116893925A (zh) 使用行错误信息的擦除操作
US11829268B2 (en) Data recovery management for memory
US11886708B2 (en) Fast mode for a memory device
US20240070059A1 (en) Memory devices including logic non-volatile memory

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
AD01 Patent right deemed abandoned

Effective date of abandoning: 20230922

AD01 Patent right deemed abandoned