CN111435305A - 存储装置、控制器及操作存储装置的方法 - Google Patents

存储装置、控制器及操作存储装置的方法 Download PDF

Info

Publication number
CN111435305A
CN111435305A CN201910932838.7A CN201910932838A CN111435305A CN 111435305 A CN111435305 A CN 111435305A CN 201910932838 A CN201910932838 A CN 201910932838A CN 111435305 A CN111435305 A CN 111435305A
Authority
CN
China
Prior art keywords
firmware
load time
memory block
restoration
memory
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.)
Granted
Application number
CN201910932838.7A
Other languages
English (en)
Other versions
CN111435305B (zh
Inventor
金正爱
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.)
SK Hynix Inc
Original Assignee
SK Hynix 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 SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN111435305A publication Critical patent/CN111435305A/zh
Application granted granted Critical
Publication of CN111435305B publication Critical patent/CN111435305B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • 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
    • 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/0706Error 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 the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error 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 the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • 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/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • 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/1446Point-in-time backing up or restoration of persistent data
    • 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/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0626Reducing size or complexity of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明涉及一种存储装置,该存储装置包括半导体存储器装置和控制器,其中半导体存储器装置包括存储块,控制器控制半导体存储器装置。半导体存储器装置将第一固件存储在存储块之中的第一存储块中,并且将第二固件存储在存储块之中的第二存储块中。控制器包括恢复确定电路和恢复执行电路,其中恢复确定电路基于第一固件和第二固件的加载时间、第一固件和第二固件的累积加载时间信息以及启动计数信息来确定是否对第一固件和第二固件中的至少一个执行恢复操作,并且恢复执行电路基于恢复确定电路的确定,对第一固件和第二固件中的至少一个执行恢复操作。

Description

存储装置、控制器及操作存储装置的方法
相关申请的交叉引用
本申请要求于2019年1月15日向韩国知识产权局提交的申请号为10-2019-0004970的韩国专利申请的优先权,其内容通过引用整体并入本文。
技术领域
各个实施例总体涉及一种存储装置、控制器及操作存储装置的方法。
背景技术
存储装置基于诸如计算机和智能电话的主机的请求来存储数据。存储装置可将数据存储在磁盘中,诸如硬盘驱动器(HDD),或者存储装置可将数据存储在非易失性存储器中,诸如固态驱动器(SDD)、通用闪存(UFS)装置或嵌入式MMC(eMMC)装置。
存储装置可包括设置于存储装置中的SoC(片上系统)和固件(FW),以根据主机的请求对非易失性存储器执行读取和写入操作。固件被存储在存储装置中包括的存储器中,并且在启动时存储装置加载存储器中存储的固件。可通过主机或外部装置的请求来更新所存储的固件。
发明内容
各个实施例涉及一种能够减少用于在启动时确定是否恢复固件的时间和存储空间资源的存储装置及其操作方法。
在实施例中,一种存储装置可包括:半导体存储器装置,包括多个存储块;以及控制器,被配置成控制半导体存储器装置,其中半导体存储器装置将第一固件存储在多个存储块之中的第一存储块中,并且将第二固件存储在多个存储块之中的第二存储块中,并且其中控制器包括:恢复确定电路,被配置成基于第一固件的加载时间、第二固件的加载时间、第一固件的累积加载时间信息、第二固件的累积加载时间信息以及启动计数信息来确定是否对第一固件和第二固件中的至少一个执行恢复操作;以及恢复执行电路,被配置成基于恢复确定电路的确定,对第一固件和第二固件中的至少一个执行恢复操作。
在实施例中,一种适于控制半导体存储器装置的控制器可包括:恢复确定电路,被配置成基于第一固件的加载时间、第二固件的加载时间、第一固件的累积加载时间信息、第二固件的累积加载时间信息以及启动计数信息来确定是否对第一固件和第二固件中的至少一个执行恢复操作;以及恢复执行电路,被配置成基于恢复确定电路的确定,对第一固件和第二固件中的至少一个执行恢复操作。
在实施例中,一种操作存储装置的方法,该存储装置包括半导体存储器装置和控制器,该半导体存储器装置包括多个存储块,控制器控制半导体存储器装置,该方法可包括:加载在多个存储块之中的第一存储块中存储的第一固件;加载在多个存储块之中的第二存储块中存储的第二固件;基于第一固件的加载时间、第二固件的加载时间、第一固件的累积加载时间信息、第二固件的累积加载时间信息以及启动计数信息,确定是否对第一固件和第二固件中的至少一个执行恢复操作;并且对被确定执行恢复操作的、第一固件和第二固件中的至少一个执行恢复操作。
在实施例中,一种存储装置可包括:存储器装置和控制器,其中存储器装置被配置成存储第一固件和第二固件、第一固件和第二固件各自的累积加载时间、以及分别利用第一固件和第二固件来启动存储装置的次数(启动次数);控制器被配置成:i)在存储装置启动的同时,加载第一固件并基于所加载的第一固件来加载第二固件,ii)测量第一固件和第二固件各自的当前加载时间,iii)基于第一固件和第二固件各自的当前加载时间和累积加载时间以及启动次数来恢复第一固件和第二固件,并且iv)在恢复时,初始化与每个所恢复的固件对应的累积加载时间和启动次数。
根据本公开的实施例,提供了一种能够减少用于在启动时确定是否恢复固件的时间和空间资源的存储装置及其操作方法。
附图说明
图1是示出根据本公开的实施例的存储装置的配置的示图。
图2是示出在启动诸如图1的存储装置时加载固件的操作的示图。
图3是示出确定是否执行恢复操作和在诸如图1的存储装置中执行恢复的操作的示图。
图4是示出根据本公开的实施例的加载固件和确定是否对固件执行恢复操作的进程的流程图。
图5是示出根据本公开的实施例的确定是否对固件执行恢复操作的进程的流程图。
图6是示出根据本公开的实施例的操作存储装置的方法的流程图。
具体实施方式
在本公开中,在结合附图阅读以下实施例之后,优点、特征及实现它们的方法将变得显而易见。然而,本发明可以不同形式实现,因此不应被解释为限于本文中阐述的实施例。相反,提供这些实施例以详细地描述本公开至本公开所属领域的技术人员可以实现本发明的程度。
本发明不限于附图中所示的细节,因为附图不一定按比例绘制,并且在一些情况下,可能放大了比例以更清楚地描绘本公开的某些特征。在整个附图和说明书中,相同的附图标记表示相同的元件。
虽然本文使用了特定术语,但是应当理解,本文所使用的术语仅用于描述特定实施例的目的,而不旨在限制本公开的范围。
具体的结构和功能描述用于描述本公开的实施例。然而,如上所述,本公开的实施例可以各种形式来实施,因此,本发明不限于本文描述的具体细节或实施例。相反,本发明不仅包括所公开的实施例,而且包括落入权利要求范围内的所公开的实施例的所有变化、修改和等同方案。
如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任意一个和全部组合。诸如“第一”和“第二”的术语可用于标识各个组件,但这些组件不应受到这些术语的限制。这些术语仅用于将一个组件与具有相同或相似名称的其它组件区分开。例如,在不脱离基于本公开的概念的范围的情况下,一个实例中的第一组件可在另一实例中被指定为第二组件。
根据上下文,单数表述可包括复数表述。除非另有说明或上下文清楚地指向单数形式,否则本申请和所附权利要求书中使用的冠词“一”和“一个”通常应被解释为表示“一个或多个”。在本说明书中,应当理解的是,诸如“包括”或“具有”的术语仅旨在指示存在特征、数量、步骤、操作、组件、部件或其组合,并且不旨在排除存在或将添加一个或多个其它特征、数量、步骤、操作、组件、部件或其组合的可能性。
除非有不同的定义,否则本文使用的包括技术或科学术语的所有术语具有与本公开所属领域的技术人员通常理解的术语相同的含义。除非在本说明书中明确定义,否则普通字典定义的术语应当在相关技术的背景下解释,并且不应当以理想化或过于形式化的方式解释。
可省略对本文所并入的公知的功能和结构的详细描述,以避免模糊本公开的主题。这旨在使公开的主题更加清楚。
而且,在描述本公开的组件时,可使用如第一、第二、A、B、(a)和(b)的术语。这些只是为了将一个组件与另一组件区分开,而不是暗示或建议这些组件的实质、顺序或序列。如果一个组件被描述为“连接”、“联接”或“链接”到另一组件,这可表示这些组件不仅直接“连接”、“联接”或“链接”,而且可表示经由第三组件而间接“连接”、“联接”或“链接”。
下面参照附图描述各个实施例,以详细说明本公开至本领域技术人员能够容易地实施本公开的技术思想的程度。在整个说明书中,对“实施例”等的参考不一定仅针对一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。
图1是示出根据本公开的实施例的存储装置的配置的示图。
参照图1,存储装置100可包括半导体存储器装置110和控制器120。
半导体存储器装置110可存储数据。半导体存储器装置110可响应于控制器120的控制来操作。半导体存储器装置110可包括存储器单元阵列,该存储器单元阵列包括存储数据的多个存储器单元。
在实施例中,半导体存储器装置110可以是DDR SDRAM(双倍数据速率同步动态随机存取存储器)、LPDDR4(低功率双倍数据速率4)SDRAM、GDDR(图形双倍数据速率)SDRAM、LPDDR(低功率DDR)、RDRAM(Rambus动态随机存取存储器)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器、电阻式随机存取存储器(RRAM)、相变存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)或自旋转移力矩随机存取存储器(STT-RAM)。
在实施例中,半导体存储器装置110可被实现为三维阵列结构。本公开不仅可应用于其中电荷存储层由导电浮栅(FG)配置的闪速存储器装置,而且还可应用于其中电荷存储层由介电层配置的电荷撷取闪存(CTF)。
半导体存储器装置110被配置成从控制器120接收命令和地址,并且访问存储器单元阵列中的由地址选择的区域。换言之,半导体存储器装置110可对由地址选择的区域执行与命令相对应的操作。
例如,半导体存储器装置110可执行编程操作、读取操作和擦除操作。在编程操作中,半导体存储器装置110可将数据编程到由地址选择的区域。在读取操作中,半导体存储器装置110可从由地址选择的区域中读取数据。在擦除操作中,半导体存储器装置110可擦除由地址选择的区域中存储的数据。
半导体存储器装置110可在其中包括多个存储块,例如N个存储块(N为自然数),该N个存储块可被分别指定为BLK1、BLK2、……、BLK(N)。半导体存储器装置110可将固件存储在多个存储块BLK1、BLK2、……、BLK(N)之中的至少一个存储块中。
固件可以是一个或多个固件项目,该一个或多个固件项目可以是不同版本的固件。各个固件项目可存储在半导体存储器装置110中的不同存储块中。
例如,在存储块之中,第一固件可存储在第一存储块中,第二固件可存储在第二存储块中。
将不同的固件项目存储在单独的存储块中的原因是为了限制特定存储块中的错误对整个固件集的影响。也就是说,当在特定存储块中发生错误时,其它存储块中的固件项目不会受到该错误的影响。
控制器120可根据主机50的请求来控制半导体存储器装置110的操作,或者在不存在主机50的请求时控制半导体存储器装置110的操作。例如,控制器120可控制对半导体存储器装置110的写入操作、读取操作、擦除操作和后台操作。例如,后台操作可以是垃圾收集(GC)操作、损耗均衡(WL)操作、坏块管理(BBM)操作等。
控制器120可包括主机接口121、处理器122、闪存接口123、RAM124、恢复确定电路125、恢复执行电路126及总线127。
主机接口121提供用于与主机50通信的接口。
处理器122可控制控制器120的一般操作,并且可执行逻辑计算。处理器122可通过主机接口121与主机50通信,并且可通过闪存接口123与半导体存储器装置110通信。
处理器122可执行闪存转换层(FTL)的功能。处理器122可通过闪存转换层FTL将由主机50提供的逻辑块地址(LBA)转换成物理块地址(PBA)。闪存转换层(FTL)可接收逻辑块地址(LBA),并且通过使用映射表来将逻辑块地址转换成物理块地址(PBA)。根据映射单元,存在闪存转换层的各种地址映射方法。代表性的地址映射方法包括页面映射方法、块映射方法和混合映射方法。
处理器122被配置成使从主机50接收的数据随机化。例如,处理器122可通过使用随机化种子来使从主机50接收的数据随机化。将随机化的数据作为待存储的数据提供到半导体存储器装置110并且编程在存储器单元阵列中。
处理器122被配置成在读取操作中使从半导体存储器装置110接收的数据去随机化。例如,处理器122可通过使用去随机化种子来使从半导体存储器装置110接收的数据去随机化。去随机化的数据可被输出到主机50。
处理器122可驱动在启动时加载在RAM 124中的固件,以控制控制器120的一般操作并且执行逻辑计算。
闪存接口123提供用于与半导体存储器装置110通信的接口。
RAM 124可存储驱动控制器120所需的固件、程序代码、命令或数据,并且RAM 124可以是SRAM或DRAM。
下面参照图2描述在启动时将半导体存储器装置110中存储的固件加载到RAM 124中的操作。
恢复确定电路125基于第一固件的加载时间、第二固件的加载时间、第一固件的累积加载时间信息、第二固件的累积加载时间信息以及启动计数信息来确定是否对第一固件和第二固件中的至少一个执行恢复操作。
固件的恢复操作表示在固件的加载或操作期间发生异常的情况下使固件正常化的操作,并且例如可以是在正常状态下将固件再次存储在半导体存储器装置110中的操作。
固件的累积加载时间信息表示关于每次启动存储装置100时所进行的将固件加载到RAM 124中所花费时间的历史信息。例如,在存储装置100被启动10次的情况下,将在这10次启动的每一次中将固件加载到RAM 124所花费的时间反映至固件的累积加载时间信息。
累积加载时间信息可以呈单独的每次启动的加载时间的形式,或者可以呈单独的加载时间的总和的形式。
例如,当存储装置100已被预先启动过三次并且固件在各个启动时间的加载时间为1.0ms、1.5ms和1.2ms时,固件的累积加载时间信息可以是分别地包括时间值1.0ms、1.5ms和1.2ms的形式,或者可以是包括(1.0+1.5+1.2)=3.7ms作为固件的加载时间总和的形式。
下面描述为什么使用第一固件和第二固件中的每一个的加载时间、每个这种固件项目的累积加载时间信息以及启动计数信息来确定是否恢复第一固件和第二固件。
是否恢复固件可基于施加到存储固件的存储块的应力(stress)水平或应力量。为此,可使用与存储固件的存储块的相同条件的测试存储块来执行间接估计施加到这种存储块的应力的方法。相同条件表示以与存储固件的存储块相同的方式执行写入操作。
详细地,在每次启动时读取测试存储块中存储的数据之后,如果在读取过程中发生错误,则估计施加到测试存储块的相同应力也被施加到存储固件的存储块,并且根据所估计的应力的水平来恢复该固件。
然而,如上所述使用测试存储块可能导致数据存储空间减少的问题,因为将待用于存储数据的存储块替代地用作测试存储块。测试存储块方案的另一问题在于:因为必须在启动时检查测试存储块的状态,所以增加了总启动时间。换言之,如果使用测试存储块,则在启动时会浪费时间和存储空间资源。
此外,在固件被分布到不同存储块的情况下,即使在仅恢复特定存储块中存储的固件就足够时,也可能对全部固件执行恢复。恢复未发生错误的块中的固件的问题在于:不必要地增加了该块的擦除/写入计数。
因此,为了得到施加到存储固件的存储块中的应力,使用固件的加载时间来直接确定存储固件的存储块的应力状态的方法可能优于使用单独的测试块的间接估计方法。这是因为对存储块的应力状态越大,就越有可能发生读取干扰。如果发生读取干扰,则可能花费很长时间来从存储块读取固件。
恢复执行电路126对被恢复确定电路125确定执行恢复操作的、第一固件和第二固件中的至少一个执行恢复操作。
下面参照图3更详细地描述恢复确定电路125和恢复执行电路126的操作。
总线127可被配置成提供控制器120的组件之间的通道。
图2是示出在图1的存储装置100启动时加载固件的操作的示图。
首先,作为示例,如上参照图1所述,在半导体存储器装置110中包括的存储块之中,第一固件存储在第一存储块中,并且第二固件存储在第二存储块中。
在启动时,首先将第一存储块中存储的第一固件加载到RAM 124。此时,可测量第一固件的加载时间,该第一固件的加载时间将用于确定是否恢复第一固件。
第一固件的加载时间可由将第一固件加载到RAM 124的模块来测量。例如,第一固件的加载时间可由在启动时最初进行操作的ROM装置来测量。ROM装置可使用开始加载第一固件时的时钟值和完成加载第一固件时的时钟值之间的差值来计算第一固件的加载时间。
在将第一固件加载到RAM 124之后,将第二存储块中存储的第二固件加载到RAM124。先前加载到RAM 124中的第一固件可执行将第二固件加载到RAM 124的操作。即,如果将第一固件加载到RAM 124,则随着处理器122驱动第一固件,第二存储块中存储的第二固件被加载到RAM 124。
例如,第一固件可以是在启动时从半导体存储器装置110中读取主固件并且将该主固件加载到RAM 124的启动加载器固件,并且第二固件可以是执行控制器120的一般操作的主固件。
类似于第一固件的情况,可测量第二固件的加载时间,该第二固件的加载时间将用于确定是否恢复第二固件。例如,由于驱动了用于加载第二固件的第一固件,所以可测量第二固件的加载时间。
系统时钟或实时时钟(RTC)可用于测量上述第一固件的加载时间和第二固件的加载时间。
以这种方式单独测量第一固件的加载时间和第二固件的加载时间的原因在于:选择性地确定需要恢复第一固件和第二固件中的哪个,以避免不必要地恢复未发生错误或其它问题的块中的固件的问题。普遍地恢复分布在存储块之中的全部固件会导致对未发生问题的块造成不必要的损耗。
如果通过单独测量第一固件的加载时间和第二固件的加载时间来单独确定第一固件和第二固件的恢复操作,则有利地将恢复仅针对发生问题的块中的固件;不会对其余的未发生问题的块中的正常固件执行恢复,从而不会使这些块的损耗增加。
此外,当启动时发生超时时,因为可以识别由于固件加载期间发生的问题而导致超时的固件,所以可提供调试操作较为容易的优点。例如,在第一固件是由ROM装置加载的启动加载器固件的情况下,很难检查到第一固件中是否发生了错误。在这方面,基于第一固件的加载时间,可检查第一固件中是否发生了错误。这是因为,如果在读取第一固件期间发生了错误,则需要额外的时间来校正错误,从而增加第一固件的加载时间。
此后,将第一固件的加载时间添加到第一固件的累积加载时间信息中,并且将第二固件的加载时间添加到第二固件的累积加载时间信息中。也就是说,在每次启动时,更新第一固件和第二固件的累积加载时间信息。这使得当随后重新启动存储装置100时反映第一固件和第二固件的当前加载时间。
将第一固件的加载时间添加到或反映到第一固件的累积加载时间信息的时间和将第二固件的加载时间添加到或反映到第二固件的累积加载时间信息的时间可在确定是否执行恢复操作之前或之后。
当所存储的固件被更新到新版本时,因为固件的大小改变,所以固件的加载时间也改变,并且在这种情况下,先前版本的固件的累积加载时间信息不再有效。
因此,如果对第一固件执行了更新,则可初始化第一固件的累积加载时间信息。类似地,如果对第二固件执行了更新,则可初始化第二固件的累积加载时间信息。
图3是示出确定是否执行恢复操作和在图1的存储装置100中执行恢复的操作的示图。
恢复确定电路125基于第一固件的加载时间、第二固件的加载时间、第一固件的累积加载时间信息、第二固件的累积加载时间信息以及启动计数信息来确定是否对第一固件和第二固件中的至少一个执行恢复操作。
如上参照图2所述,在将第一固件和第二固件加载到RAM 124的过程中,测量第一固件的加载时间和第二固件的加载时间。
从半导体存储器装置110中读取第一固件的累积加载时间信息和第二固件的累积加载时间信息。例如,可以与第一固件相同的方式从第一存储块中读取第一固件的累积加载时间信息。此外,可以与第二固件相同的方式从第二存储块中读取第二固件的累积加载时间信息。
最后,也可从半导体存储器装置110中读取启动计数信息,该启动计数信息指示先前已启动了多少次存储装置100。
从存储固件的存储块中读取相关固件的累积加载时间信息的原因在于:在累积加载时间信息存储在RAM或寄存器中的情况下,累积加载时间信息可能由于SPO(突然断电)而丢失。
为了确定是否恢复第一固件,恢复确定电路125基于第一固件的累积加载时间信息和启动计数信息来计算第一固件的平均加载时间。
例如,如果第一固件的加载时间总和为A’,并且启动计数为C,则可将第一固件的平均加载时间计算为D=A’/C。在这种情况下,各个启动过程中的加载时间的权重相同。
又例如,在第一固件的累积加载时间信息中,可以通过对第一固件的最近加载时间之前的第一固件的加载时间附加地施加权重来计算第一固件的平均加载时间。
这是因为在初始启动时测量的第一固件的加载时间很可能具有正常值,但是如果第一存储块的读取计数随着启动的重复而增加,则此后测量的第一固件的加载时间很可能比正常值长。因此,通过附加地对第一固件的先前加载时间施加权重,可以更清楚地确定当前启动时的第一固件的加载时间中的异常。
(第一种情况:相同的权重)详细地,假设先前三次启动时的第一固件的加载时间分别为1.0ms、1.2ms和1.4ms。如果各个启动过程中的加载时间的权重均为1(即,没有加权),则第一固件的平均加载时间为(1.0+1.2+1.4)/3=1.2ms。
(第二种情况:不同的权重)然而,当第一启动过程的权重为1,第二启动过程的权重为0.8,第三启动过程的权重为0.6时,第一固件的平均加载时间为(1.0*1+1.2*0.8+1.4*0.6)/(1.0+0.8+0.6)=1.16ms。(每个启动过程的具体权重值可实验性地确定。)
如果第四次启动时的第一固件的加载时间为1.45ms,因为在后一种情况下(第二种情况),第一固件的加载时间和第一固件的平均加载时间之间的差值较大,所以很可能将后一种情况确定为需要恢复的情况。(同时,在说明书中,除非另有说明,否则固件的加载时间通常表示固件的当前(最近)加载时间。)
恢复确定电路125可通过将在启动时加载第一固件的同时所测量的第一固件的加载时间A与上述第一固件的平均加载时间D进行比较来确定是否对第一固件执行恢复操作。
例如,在第一固件的加载时间与第一固件的平均加载时间之间的差值大于或等于第一阈值(例如,1ms)的情况下,恢复确定电路125可确定执行对第一固件的恢复操作。进行这种比较的原因在于:在测量加载时间的过程中,可能由于内部或外部因素(例如,内部温度或电源电压)而发生错误。
进一步地,为了确定是否恢复第二固件,恢复确定电路125基于第二固件的累积加载时间信息和启动计数信息来计算第二固件的平均加载时间。
例如,如果第二固件的加载时间总和为B’,并且启动计数为C,则可将第二固件的平均加载时间计算为E=B’/C。在这种情况下,各个启动过程中的加载时间的权重相同,即为1。
又例如,以与第一固件相同的方式,在第二固件的累积加载时间信息中,可以通过对第二固件的最近加载时间之前的第二固件的加载时间附加地施加权重来计算第二固件的平均加载时间。
恢复确定电路125可通过将在启动时加载第二固件的同时所测量的第二固件的加载时间B与上述第二固件的平均加载时间E进行比较来确定是否对第二固件执行恢复操作。
例如,以与第一固件相同的方式,在第二固件的加载时间与第二固件的平均加载时间之间的差值等于或大于第二阈值的情况下,恢复确定电路125可确定执行对第二固件的恢复操作。
上述第一阈值和第二阈值可基于通过重复的实验所测量的值来确定。第一阈值和第二阈值可基于在读取时实际失败的固件的加载时间而实验性地确定。
独立地确定是否执行对第一固件的恢复操作以及是否执行对第二固件的恢复操作。换言之,恢复确定电路125可确定仅对第一固件或第二固件执行恢复操作,或者可确定对第一固件和第二固件两者执行恢复操作。
恢复执行电路126可对被恢复确定电路125确定执行恢复操作的、第一固件和第二固件中的至少一个执行恢复操作。
可以以下方式来执行恢复操作:擦除然后重新编程存储固件的存储块。在通常在闪速存储器中执行的写入操作中,以以下方式来执行恢复操作:将数据重新写入在不同于存储数据的存储块的单独存储块中。然而,对固件的恢复采用直接擦除存储固件的存储块,然后将固件重新编程到相同存储块中的方案。这是因为,为了在启动时加载固件,需要固定存储块的存储固件的位置。
因此,当执行对第一固件的恢复操作时,恢复执行电路126可擦除第一存储块,然后将第一固件重新编程到第一存储块。类似地,当执行对第二固件的恢复操作时,恢复执行电路126可擦除第二存储块,然后将第二固件重新编程到第二存储块。
在这方面,因为在擦除存储块的同时也擦除了最初存储在存储块中的固件,所以固件的备份应当存储在单独的区域中,例如不同的存储块中以用于重新编程。
例如,在将第一固件重新编程到第一存储块中的情况下,加载在RAM中的第一固件可用作重新编程操作的基础,但是也可读取和重新编程在半导体存储器装置110的存储块之中的备份存储块中存储的第一固件。
类似地,在将第二固件重新编程到第二存储块中的情况下,加载在RAM中的第二固件可用作重新编程操作的基础,但是也可读取和重新编程在半导体存储器装置110的存储块之中的备份存储块中存储的第二固件。
图4是示出根据本公开的实施例的加载固件和确定是否对固件执行恢复操作的进程的流程图。该进程可由上述存储装置100来执行。
首先,将半导体存储器装置110中的第一存储块中存储的第一固件加载到RAM 124(S410)。此时,如上参照图2所述,测量第一固件的加载时间。
恢复确定电路125基于第一固件的启动计数信息和累积加载时间信息来计算第一固件的平均加载时间(S420)。第一固件的累积加载时间信息可存储在半导体存储器装置110中,并且例如可以与第一固件相同的方式从第一存储块中读取。
当第一固件的加载完成时,将半导体存储器装置110中的第二存储块中存储的第二固件加载到RAM 124(S430)。在步骤S410中加载的第一固件用于执行加载第二固件的操作。处理器122驱动所加载的第一固件,使得将第二固件加载到RAM 124。
恢复确定电路125基于第二固件的启动计数信息和累积加载时间信息来计算第二固件的平均加载时间(S440)。可以与第二固件相同的方式从第二存储块中读取第二固件的累积加载时间信息。
此后,恢复确定电路125可通过使用在步骤S410中测量的第一固件的加载时间、在步骤S420中计算的第一固件的平均加载时间、在步骤S430中测量的第二固件的加载时间以及在步骤S440中计算的第二固件的平均加载时间来确定是否对第一固件和第二固件中的至少一个执行恢复操作(S450)。
图5是示出根据本公开的实施例的确定是否对固件执行恢复操作的详细进程的流程图。该进程可由上述存储装置100来执行。
首先,恢复确定电路125将当前的第一固件的加载时间A与第一固件的平均加载时间D进行比较(S510)。
在第一固件的加载时间A与第一固件的平均加载时间D之间的差值(即,A-D)大于或等于第一阈值的情况下(步骤S520中为“是”),恢复执行电路126执行对第一固件的恢复操作(S530)。相反,在第一固件的加载时间A与第一固件的平均加载时间D之间的差值(即,A-D)小于第一阈值的情况下(步骤S520中为“否”),不执行对第一固件的恢复操作。
此后,恢复确定电路125将当前的第二固件的加载时间B与第二固件的平均加载时间E进行比较(S540)。
在第二固件的加载时间B与第二固件的平均加载时间E之间的差值(即,B-E)大于或等于第二阈值的情况下(步骤S550中为“是”),恢复执行电路126执行对第二固件的恢复操作(S560)。相反,在第二固件的加载时间B与第二固件的平均加载时间E之间的差值(即,B-E)小于第二阈值的情况下(S550中为“否”),不执行对第二固件的恢复操作。
如上参照图3所述,当在步骤S530中执行对第一固件的恢复操作时,恢复执行电路126可擦除第一存储块,然后将第一固件重新编程到第一存储块。类似地,当在步骤S560中执行对第二固件的恢复操作时,恢复执行电路126可擦除第二存储块,然后将第二固件重新编程到第二存储块。
图6是示出根据本公开的实施例的用于操作例如先前描述的存储装置100的存储装置的方法的流程图。
首先,存储装置100将半导体存储器装置110中的第一存储块中存储的第一固件加载到控制器120中的RAM 124(S610)。如上所述,在将第一固件加载到RAM 124的过程中测量第一固件的加载时间。
然后,存储装置100将半导体存储器装置110中的第二存储块中存储的第二固件加载到控制器120中的RAM 124(S620)。此外,如上所述,在将第二固件加载到RAM 124的过程中测量第二固件的加载时间。
如上所述,在第一固件用于执行加载第二固件的操作的情况下,在第二固件之前加载第一固件。
此后,存储装置100的控制器120中的恢复确定电路125基于第一固件的加载时间、第二固件的加载时间、第一固件的累积加载时间信息、第二固件的累积加载时间信息以及启动计数信息来确定是否对第一固件和第二固件中的至少一个执行恢复操作(S630)。
存储装置100的控制器120中的恢复执行电路126对被恢复确定电路125确定执行恢复操作的、第一固件和第二固件中的至少一个执行恢复操作(S640)。如上参照图3所述,可以以擦除然后重新编程存储固件的存储块的方式来执行恢复操作。
在上面结合本公开的实施例描述的存储装置中,因为未使用测试存储块,所以可提供以下优点:当与传统技术相比时,可节省原本用于单独的测试存储块的存储空间,并且还可节省在启动时在读取测试存储块中存储的数据的过程中将花费的时间。
进一步地,因为可对分布到不同存储块的固件独立地执行恢复,所以可以防止传统技术的以下问题:在传统技术中,由于对存储无需恢复的固件的存储块执行恢复而导致的擦除/写入计数增加。
因此,本公开的实施例中的上述存储装置提供的优点在于:可在防止对存储块的不必要损耗的同时,缩短启动时间并且稳定地保持固件。
本领域技术人员将理解的是,在不脱离本公开的实质和基本特性的情况下,上述技术配置可进行修改或在其它布置中实现。因此,应当理解的是,上述实施例是说明性的,而非限制性的。此外,本发明的范围由所附权利要求及其等同方案限定,而非由前面的描述来限定,并且落入权利要求及其等同方案的范围内的所有变化或修改都由本发明所涵盖。
在本公开的上述实施例中,可选择性地执行或省略一些步骤。此外,这些步骤不一定需要按照所描述的顺序来执行,并且它们可按照改变后的顺序来执行。
本领域技术人员将根据本公开理解到的是,在不脱离本公开的更宽的实质和范围的情况下,可对本公开进行各种修改和改变。因此,本发明不仅包括所公开的实施例,还包括落入权利要求及其等同方案的范围内的所有改变和修改。

Claims (17)

1.一种存储装置,包括:
半导体存储器装置,包括多个存储块;以及
控制器,控制所述半导体存储器装置,
其中所述半导体存储器装置将第一固件存储在所述多个存储块之中的第一存储块中,并且将第二固件存储在所述多个存储块之中的第二存储块中,并且
其中所述控制器包括:
恢复确定电路,基于所述第一固件的加载时间、所述第二固件的加载时间、所述第一固件的累积加载时间信息、所述第二固件的累积加载时间信息以及启动计数信息来确定是否对所述第一固件和所述第二固件中的至少一个执行恢复操作;以及
恢复执行电路,基于所述恢复确定电路的确定,对所述第一固件和所述第二固件中的至少一个执行所述恢复操作。
2.根据权利要求1所述的存储装置,
其中在所述第二固件之前加载所述第一固件,并且
其中所述第一固件执行加载所述第二固件的操作。
3.根据权利要求1所述的存储装置,
其中所述恢复确定电路基于所述第一固件的累积加载时间信息和所述启动计数信息来计算所述第一固件的平均加载时间,并且
其中当所述第一固件的加载时间与所述第一固件的平均加载时间之间的差值大于或等于第一阈值时,所述恢复确定电路确定执行对所述第一固件的恢复操作。
4.根据权利要求3所述的存储装置,其中所述恢复执行电路擦除所述第一存储块,然后将所述第一固件重新编程到所述第一存储块。
5.根据权利要求1所述的存储装置,
其中所述恢复确定电路基于所述第二固件的累积加载时间信息和所述启动计数信息来计算所述第二固件的平均加载时间,并且
其中当所述第二固件的加载时间与所述第二固件的平均加载时间之间的差值大于或等于第二阈值时,所述恢复确定电路确定执行对所述第二固件的恢复操作。
6.根据权利要求5所述的存储装置,其中所述恢复执行电路擦除所述第二存储块,然后将所述第二固件重新编程到所述第二存储块。
7.根据权利要求1所述的存储装置,其中所述第一固件的累积加载时间信息存储在所述第一存储块中。
8.根据权利要求1所述的存储装置,其中所述第二固件的累积加载时间信息存储在所述第二存储块中。
9.一种控制半导体存储器装置的控制器,所述控制器包括:
恢复确定电路,基于第一固件的加载时间、第二固件的加载时间、所述第一固件的累积加载时间信息、所述第二固件的累积加载时间信息以及启动计数信息来确定是否对所述第一固件和所述第二固件中的至少一个执行恢复操作;以及
恢复执行电路,基于所述恢复确定电路的确定,对所述第一固件和所述第二固件中的至少一个执行所述恢复操作。
10.一种操作存储装置的方法,所述存储装置包括半导体存储器装置和控制器,所述半导体存储器装置包括多个存储块,所述控制器控制所述半导体存储器装置,所述方法包括:
加载在所述多个存储块之中的第一存储块中存储的第一固件;
加载在所述多个存储块之中的第二存储块中存储的第二固件;
基于所述第一固件的加载时间、所述第二固件的加载时间、所述第一固件的累积加载时间信息、所述第二固件的累积加载时间信息以及启动计数信息来确定是否对所述第一固件和所述第二固件中的至少一个执行恢复操作;并且
对被确定执行所述恢复操作的、所述第一固件和所述第二固件中的至少一个执行所述恢复操作。
11.根据权利要求10所述的方法,
其中在所述第二固件之前加载所述第一固件,并且
其中所述第一固件执行加载所述第二固件的操作。
12.根据权利要求10所述的方法,其中确定是否执行所述恢复操作包括:
基于所述第一固件的累积加载时间信息和所述启动计数信息来计算所述第一固件的平均加载时间;并且
当所述第一固件的加载时间与所述第一固件的平均加载时间之间的差值大于或等于第一阈值时,确定执行对所述第一固件的恢复操作。
13.根据权利要求12所述的方法,其中执行所述恢复操作包括:擦除所述第一存储块,然后将所述第一固件重新编程到所述第一存储块。
14.根据权利要求10所述的方法,其中确定是否执行所述恢复操作包括:
基于所述第二固件的累积加载时间信息和所述启动计数信息来计算所述第二固件的平均加载时间;并且
当所述第二固件的加载时间与所述第二固件的平均加载时间之间的差值大于或等于第二阈值时,确定执行对所述第二固件的恢复操作。
15.根据权利要求14所述的方法,其中执行所述恢复操作包括:擦除所述第二存储块,然后将所述第二固件重新编程到所述第二存储块。
16.根据权利要求10所述的方法,其中所述第一固件的累积加载时间信息存储在所述第一存储块中。
17.根据权利要求10所述的方法,其中所述第二固件的累积加载时间信息存储在所述第二存储块中。
CN201910932838.7A 2019-01-15 2019-09-29 存储装置、控制器及操作存储装置的方法 Active CN111435305B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190004970A KR20200088565A (ko) 2019-01-15 2019-01-15 저장 장치, 컨트롤러 및 저장 장치의 동작 방법
KR10-2019-0004970 2019-01-15

Publications (2)

Publication Number Publication Date
CN111435305A true CN111435305A (zh) 2020-07-21
CN111435305B CN111435305B (zh) 2023-04-11

Family

ID=71517678

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910932838.7A Active CN111435305B (zh) 2019-01-15 2019-09-29 存储装置、控制器及操作存储装置的方法

Country Status (3)

Country Link
US (1) US10877676B2 (zh)
KR (1) KR20200088565A (zh)
CN (1) CN111435305B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060179207A1 (en) * 2005-02-10 2006-08-10 International Business Machines Corporation Processor instruction retry recovery
KR20070010892A (ko) * 2005-07-20 2007-01-24 엘지전자 주식회사 광디스크장치의 부팅시간에 따른 제어방법
US20080235501A1 (en) * 2007-03-19 2008-09-25 James Ray Bailey Method For Detecting and Correcting Firmware Corruption
CN103890724A (zh) * 2011-08-19 2014-06-25 株式会社东芝 信息处理设备、用于控制信息处理设备的方法、存储控制工具的非临时记录介质、主机装置、存储性能评估工具的非临时记录介质、以及用于外部存储装置的性能评估方法
CN105706061A (zh) * 2013-10-31 2016-06-22 微软技术许可有限责任公司 使用非易失性存储器的崩溃恢复
US20170185481A1 (en) * 2015-12-29 2017-06-29 Cnex Labs, Inc. Computing system with data recovery mechanism and method of operation thereof

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8589730B2 (en) 2010-08-31 2013-11-19 Apple Inc. Handling errors during device bootup from a non-volatile memory
US8868796B1 (en) * 2013-04-18 2014-10-21 Otter Products, Llc Device and method for updating firmware of a peripheral device

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060179207A1 (en) * 2005-02-10 2006-08-10 International Business Machines Corporation Processor instruction retry recovery
KR20070010892A (ko) * 2005-07-20 2007-01-24 엘지전자 주식회사 광디스크장치의 부팅시간에 따른 제어방법
US20080235501A1 (en) * 2007-03-19 2008-09-25 James Ray Bailey Method For Detecting and Correcting Firmware Corruption
CN103890724A (zh) * 2011-08-19 2014-06-25 株式会社东芝 信息处理设备、用于控制信息处理设备的方法、存储控制工具的非临时记录介质、主机装置、存储性能评估工具的非临时记录介质、以及用于外部存储装置的性能评估方法
CN105706061A (zh) * 2013-10-31 2016-06-22 微软技术许可有限责任公司 使用非易失性存储器的崩溃恢复
US20170185481A1 (en) * 2015-12-29 2017-06-29 Cnex Labs, Inc. Computing system with data recovery mechanism and method of operation thereof

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHANIK PARK等: ""A high performance controller for NAND flash-based solid state disk"" *
彭福石: ""NAND文件系统的研究"" *

Also Published As

Publication number Publication date
US20200225858A1 (en) 2020-07-16
US10877676B2 (en) 2020-12-29
CN111435305B (zh) 2023-04-11
KR20200088565A (ko) 2020-07-23

Similar Documents

Publication Publication Date Title
US9940045B2 (en) Address mapping table recovery upon power failure
US10990378B2 (en) Storage device and operating method thereof
US8589730B2 (en) Handling errors during device bootup from a non-volatile memory
US8463826B2 (en) Incremental garbage collection for non-volatile memories
US8205070B2 (en) Device bootup from a NAND-type non-volatile memory
US11288157B2 (en) Controller and operation method thereof
US20100250875A1 (en) Eeprom emulation using flash memory
CN110890113A (zh) 存储设备及其操作方法
US11422825B2 (en) Determination of power-off duration of NVMe SSD
CN112201284B (zh) 存储器系统及其操作方法
CN112181283A (zh) 存储器系统、存储器控制器及操作方法
CN111796763A (zh) 存储器系统、存储器控制器及存储器控制器的操作方法
CN108255637B (zh) 数据存储装置及其操作方法
CN114253465A (zh) 存储器系统及其操作方法
CN111435305B (zh) 存储装置、控制器及操作存储装置的方法
CN111338566A (zh) 存储器子系统中的功率损耗保护
CN112015331A (zh) 控制器及其操作方法
KR20210012123A (ko) 메모리 시스템, 메모리 컨트롤러 및 동작 방법
US11048440B2 (en) Memory system, memory device and operating method thereof
CN110688246B (zh) 集成电路及用以操作集成电路上的存储器的方法
US8806283B1 (en) Automatic and on-demand testing of non-volatile storage devices
US20240176407A1 (en) Storage device for executing background operation based on power state and operating method thereof
US20240143168A1 (en) Storage device controlling garbage collection or wear leveling on the basis of timestamp, and method thereof
KR102671743B1 (ko) 메모리 시스템 및 메모리 시스템의 동작방법
KR20220150180A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법

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
GR01 Patent grant
GR01 Patent grant