CN110688247A - 数据存储装置、数据存储装置操作方法及固件提供服务器 - Google Patents

数据存储装置、数据存储装置操作方法及固件提供服务器 Download PDF

Info

Publication number
CN110688247A
CN110688247A CN201811534179.3A CN201811534179A CN110688247A CN 110688247 A CN110688247 A CN 110688247A CN 201811534179 A CN201811534179 A CN 201811534179A CN 110688247 A CN110688247 A CN 110688247A
Authority
CN
China
Prior art keywords
firmware
information
data storage
storage device
flag
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
CN201811534179.3A
Other languages
English (en)
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
Hynix Semiconductor 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 Hynix Semiconductor Inc filed Critical Hynix Semiconductor Inc
Publication of CN110688247A publication Critical patent/CN110688247A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0412Digitisers structurally integrated in a display
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10KORGANIC ELECTRIC SOLID-STATE DEVICES
    • H10K50/00Organic light-emitting devices
    • H10K50/80Constructional details
    • H10K50/84Passivation; Containers; Encapsulations
    • H10K50/844Encapsulations
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10KORGANIC ELECTRIC SOLID-STATE DEVICES
    • H10K59/00Integrated devices, or assemblies of multiple devices, comprising at least one organic light-emitting element covered by group H10K50/00
    • H10K59/10OLED displays
    • H10K59/12Active-matrix OLED [AMOLED] displays
    • H10K59/122Pixel-defining structures or layers, e.g. banks
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10KORGANIC ELECTRIC SOLID-STATE DEVICES
    • H10K59/00Integrated devices, or assemblies of multiple devices, comprising at least one organic light-emitting element covered by group H10K50/00
    • H10K59/30Devices specially adapted for multicolour light emission
    • H10K59/35Devices specially adapted for multicolour light emission comprising red-green-blue [RGB] subpixels
    • H10K59/351Devices specially adapted for multicolour light emission comprising red-green-blue [RGB] subpixels comprising more than three subpixels, e.g. red-green-blue-white [RGBW]
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10KORGANIC ELECTRIC SOLID-STATE DEVICES
    • H10K59/00Integrated devices, or assemblies of multiple devices, comprising at least one organic light-emitting element covered by group H10K50/00
    • H10K59/40OLEDs integrated with touch screens
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10KORGANIC ELECTRIC SOLID-STATE DEVICES
    • H10K71/00Manufacture or treatment specially adapted for the organic devices covered by this subclass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/041Indexing scheme relating to G06F3/041 - G06F3/045
    • G06F2203/04103Manufacturing, i.e. details related to manufacturing processes specially suited for touch sensitive devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/041Indexing scheme relating to G06F3/041 - G06F3/045
    • G06F2203/04111Cross over in capacitive digitiser, i.e. details of structures for connecting electrodes of the sensing pattern where the connections cross each other, e.g. bridge structures comprising an insulating layer, or vias through substrate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Optics & Photonics (AREA)
  • Manufacturing & Machinery (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及一种数据存储装置,该数据存储装置包括:储存器,存储标志信息和固件,标志信息与属性相关,每个属性对应于修正版本,固件包括每个属性的寄存器设置信息和固件执行代码分支信息;以及控制器,从储存器读取标志信息和固件以根据标志信息执行固件。

Description

数据存储装置、数据存储装置操作方法及固件提供服务器
相关申请的交叉引用
本申请要求于2018年7月6日向韩国知识产权局提交的申请号为10-2018-0078669的韩国申请的优先权,该韩国申请的全部内容通过引用并入本文。
技术领域
各个实施例总体涉及一种半导体集成装置,且更特别地,涉及一种数据存储装置、该数据存储装置的操作方法及用于该数据存储装置的固件提供服务器。
背景技术
诸如存储器装置的半导体装置正不断地发展以获得更高的集成度、更大的容量和更佳的性能,这提高了半导体装置的操作速度。
这种半导体装置的优点在于它具有高容量数据存储,但缺陷或错误的发生率也可能增加。因此,即使在发布产品之后,也有必要不断地监测产品的性能以检测其中的任何缺陷或错误。
如果检测到这样的缺陷或错误,则可执行修正。修正是指对已经发布的初始产品中的诸如错误或缺陷等不足进行校正或弥补,修正并再次发布的产品被称为修正产品。因此,可通过改变首次发布的产品的规格中的一部分来制造修正产品。
换言之,修正产品在规格上可与首次发布的产品不同,但由首次发布的产品衍生而来。因此,有必要系统地管理首次发布的产品和由其衍生而来的修正产品。
发明内容
在实施例中,数据存储装置可包括:储存器,被配置成存储标志信息和固件,标志信息与属性相关,每个属性对应于修正版本,固件包括每个属性的寄存器设置信息和固件执行代码分支信息;以及控制器,被配置成从储存器读取标志信息和固件以根据标志信息执行固件。
在实施例中,包括储存器和控制器的数据存储装置的操作方法可包括:将标志信息和固件存储到储存器的设置区域,标志信息与属性相关,每个属性对应于修正版本,固件包括每个属性的寄存器设置信息和固件执行代码分支信息;以及通过控制器从储存器读取标志信息和固件以根据标志信息执行固件。
在实施例中,被配置成将固件提供给数据存储装置的固件提供服务器可包括:标志设置器,被配置成与数据存储装置的修正版本对应地确定标志信息的属性,该标志信息包括属性;以及固件生成器,被配置成生成操作数据存储装置所需的固件,改变固件以根据数据存储装置的修正版本反映寄存器设置信息和固件执行代码分支信息,并且将改变的固件和确定的标志信息的属性提供给数据存储装置,其中寄存器设置信息和固件执行代码分支信息针对每个属性被设置。
在实施例中,系统可包括:数据存储装置;以及固件提供服务器,适于:对数据存储装置的固件执行至少一次修正;基于至少一次修正生成固件和标志信息,固件包括寄存器设置信息和固件执行代码分支信息,标志信息包括与固件的版本对应的属性;并且将固件和标志信息提供给数据存储装置,其中数据存储装置适于:从固件提供服务器接收固件和标志信息;并且通过基于从标志信息选择的一个属性调用寄存器设置信息和固件执行代码分支信息来执行固件。
附图说明
图1是示出根据实施例的数据存储装置的示图。
图2A和图2B是示出根据修正版本的固件改变的示图。
图3是示出根据实施例的中央处理单元的示图。
图4是示出根据实施例的固件提供服务器的示图。
图5是示出根据实施例的固件的示图。
图6是示出根据实施例的固件提供方法的流程图。
图7是示出根据实施例的另一固件提供方法的流程图。
图8是示出根据实施例的数据存储系统的示图。
图9和图10是示出根据实施例的数据处理系统的示图。
图11是示出包括根据实施例的数据存储装置的网络系统的示图。
图12是示出根据实施例的数据存储装置中包括的非易失性存储器装置的框图。
具体实施方式
将参照附图详细描述实施例。在整个说明书中,对“实施例”等的参考不一定仅针对一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。
图1是示出根据实施例的数据存储装置10的示图。
参照图1,数据存储装置10可包括控制器110和储存器120。
控制器110可响应于来自主机装置的请求来控制储存器120。例如,控制器110可根据从主机装置提供的编程(或写入)命令、访问地址和数据将数据写入储存器120。另外,控制器110可响应于来自主机装置的读取命令和访问地址,从储存器120读取数据以将数据提供给主机装置。
储存器120可允许根据控制器110的控制将数据写入储存器120或者从储存器120读取写入的数据。储存器120可利用易失性存储器装置或非易失性存储器装置来实施。在实施例中,储存器120可利用诸如以下的各种非易失性存储器装置中的任意一种来实施:电可擦除可编程只读存储器(ROM)(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变随机存取存储器(RAM)(PRAM)、电阻式RAM(ReRAM或RRAM)、铁电RAM(FRAM)或自旋转移扭矩磁性RAM(STT-MRAM)。储存器120可包括多个管芯、多个芯片或多个封装。此外,储存器120可由被配置成将一位数据存储到一个存储器单元的单层单元或者被配置成将多位数据存储到一个存储器单元的多层单元形成。
在实施例中,储存器120可包括固件(FW)储存器121。固件储存器121可存储固件,该固件被配置成允许配置控制器110的硬件控制配置储存器120的硬件以操作数据存储装置10。因此,控制器110可驱动固件以控制储存器120。
在实施例中,储存器120的特定区域可具有特定容量并且被分配给固件储存器121。可保护该区域,使得不允许或限制用户对该区域中的数据的访问,从而不操作存储在该区域中的固件。
在实施例中,出于校正固件中的错误、提高数据存储装置10的性能、添加功能等目的,可频繁地更新存储在固件储存器121中的固件。
数据存储装置10可从主机装置接收新版本的固件并更新储存器120中的固件储存器121以便更新固件。
控制器110可包括中央处理单元(CPU)111、主机接口(IF)113、工作存储器115、缓冲器管理器117和存储器接口(IF)119。
中央处理单元111可读取存储在固件储存器121中的固件并驱动所读取的固件。由中央处理单元111驱动的固件可处理来自主机装置的请求并控制储存器120的全部操作。在实施例中,中央处理单元111可被配置成将对储存器120的数据读取或写入操作所需的各种控制信息传送到主机接口113、工作存储器115、缓冲器管理器117和存储器接口119。在实施例中,中央处理单元111可执行闪存转换层(FTL)的功能,该闪存转换层(FTL)被配置成执行用于管理储存器120的垃圾收集、地址映射、损耗均衡、错误检测或校正等。
根据中央处理单元111的控制,主机接口113可从主机装置(或主机处理器)接收命令和时钟信号,并且提供通信信道以控制数据的输入和输出。特别地,主机接口113可提供主机装置和数据存储装置10之间的物理连接。另外,主机接口113可根据主机装置的总线格式来提供主机装置和数据存储装置10之间的接口连接。主机装置的总线格式可包括诸如以下的标准接口协议之中的至少一种:安全数字、通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、个人计算机存储卡国际协会(PCMCIA)、并行高级技术附件(PATA)、串行高级技术附件(SATA)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、外围组件互连(PCI)、高速PCI(PCI-e)和通用闪存(UFS)。
工作存储器115可存储控制器110的操作所需的诸如固件或软件的程序代码,并且还存储程序代码所使用的代码数据。在实施例中,在启动储存器120之后,存储在固件储存器121中的固件可被传送并加载到工作存储器115,然后由中央处理单元111执行。在实施例中,固件可存储在工作存储器115中,而不在储存器120中单独提供固件储存器121。
工作存储器115可以是可存储程序代码的非临时性机器可读介质,诸如随机存取存储器(RAM)、存储级存储器(SCM)、非易失性存储器(NVM)、闪速存储器或固态驱动器(SSD)。
缓冲器管理器117可被配置成将在储存器120的输入/输出操作时传输到主机装置和从主机装置接收的数据临时存储在缓冲存储器130中。缓冲器管理器117可被配置成管理缓冲存储器130的使用状态。
缓冲存储器130可利用具有高数据读取/写入速度的存储介质来实施,并且为了便于读取,可将诸如数据块的逻辑地址的频繁使用的信息或写入时间信息存储在缓冲存储器130中。缓冲存储器130可以是可存储数据的非临时性机器可读介质,诸如RAM、SCM、NVM、闪速存储器或SSD,但不限于此。
图1示出了缓冲存储器130位于控制器110外部的配置,但缓冲存储器130也可设置在控制器110中并由缓冲器管理器117管理。
工作存储器115和缓冲存储器130可被集成为单个组件,或者如图1所示单独进行设置。
存储器接口119可提供被配置成在控制器110和储存器120之间传输和接收信号的通信信道。存储器接口119可根据中央处理单元111的控制将临时存储在缓冲存储器130中的数据写入储存器120。另外,存储器接口119可将从储存器120读取的数据传送到缓冲存储器130以被临时存储在缓冲存储器130中。
数据存储装置10可从稍后将描述的固件提供服务器(例如,图4的固件提供服务器20)接收固件,并且将该固件存储在储存器120的固件储存器121或工作存储器115中。
固件提供服务器可向数据存储装置10提供标志和固件二进制文件,其中标志具有待基于数据存储装置10的修正结果来确定的属性,固件二进制文件包括每个标志属性的寄存器设置信息和固件执行代码分支信息。
图2A和图2B是示出根据修正版本的固件改变的示图。
参照图2A,固件提供服务器可基于数据存储装置10的修正结果来确定标志属性(A、B或C……)。另外,固件提供服务器可向数据存储装置10提供固件二进制文件,该固件二进制文件包括每个标志属性的寄存器设置信息和固件执行代码分支信息。
在实施例中,如图2A所示,寄存器设置信息可包括寄存器名称R1至Rn、地址(例如,起始地址和偏移量)、属性(即,是否可读取/可写入(R/W))、寄存器描述(功能)和/或重置值。
此外,如图2B所示,寄存器设置信息可包括针对寄存器R1至Rn中的每个寄存器分配给每个位的功能的详细描述和重置值。
在实施例中,如图2A所示,固件执行代码分支信息可包括分支条件和分支地址。
设置寄存器是通过中央处理单元111在指定(或生成)地址的寄存器中记录和保持特定数据的一系列操作。待设置的寄存器的数量和地址可根据修正结果而不同。即使对于相同的寄存器,也可改变寄存器设置信息,即每个寄存器的分配地址、属性和功能(或描述)或分配给每个位的详细功能,或者可改变固件执行代码的分支信息。在实施例中,这些信息可包括在固件中并被应用于每个修正产品。
在实施例中,可主要以诸如C语言的高级语言生成可在中央处理单元111中执行的固件或应用程序(*.c文件)。以高级语言生成的源文件可通过编译器转换为汇编文件(*.s文件)。可以汇编程序可执行的执行文件(*.elf)的格式再次生成汇编文件。最后,可从执行文件中提取仅以机器语言形成的二进制信息,以生成二进制文件(*.bin)。
在实施例中,固件可包括至少一个子程序。每个子程序可具有相同的执行顺序,或者子程序可根据数据存储装置10的修正版本而具有不同的执行顺序。因此,可生成针对每个修正版本定义了子程序执行顺序的分支信息。可基于具有根据修正结果的属性的标志来调用分支信息以驱动固件。
在实施例中,固件提供服务器可将包括标志的特征代码生成为程序代码,并且将该程序代码包括为固件的一部分。
数据存储装置10可将标志和固件或包括从固件提供服务器接收的标志特征代码的固件存储在设置的存储区域中。中央处理单元111驱动固件以用于数据存储装置10的操作。此处,中央处理单元111可根据标志的属性设置寄存器,或者根据固件中的分支信息执行固件。中央处理单元111也可被称为微处理器或微控制器。
在实施例中,寄存器设置信息可包括每个寄存器的地址、功能、属性等。
图3是示出例如图1的中央处理单元111的根据实施例的中央处理单元的示图。
参照图3,中央处理单元111可包括处理器30和存储器40。在实施例中,存储器40可以是图1所示的工作存储器115,但不限于此。
处理器30可包括内核301和寄存器303。
内核301可包括解码器3011、控制组件3013和计算组件3015。
解码器3011可被配置成对从存储程序代码的存储器40提供的指令进行解译。
控制组件3013可被配置成将解码器3011解译的指令转换为与该指令对应的控制信号,以生成控制信号。
计算组件3015可被配置成响应于已从控制组件3013提供的控制信号执行算术/逻辑计算或运算。
寄存器303可以是被配置成存储中央处理单元111使用的地址、数据等的空间。根据用途,寄存器303可被分为通用寄存器GR、状态寄存器SR、链接寄存器LR、程序计数器PC、当前程序状态寄存器CPSR和保存程序状态寄存器SPSR。
通用寄存器GR可用于数据运算。
状态寄存器SR可存储当前操作过程的状态、先前操作模式的过程状态等。
链接寄存器LR可指定待从子例程返回的地址或在中断过程之后返回的地址。
程序计数器PC可存储中央处理单元111当前正执行的指令的地址,即待读取程序的存储器的位置。
当前程序状态寄存器CPSR可存储当前正执行的程序的操作结果、内核301的执行模式等。
保存程序状态寄存器SPSR可被配置成备份先前的CPSR。
存储器40可被划分为变量存储区域401和代码存储区域403。
变量存储区域401可存储诸如全局区域变量和/或局部区域变量的变量。代码存储区域403可以二进制格式存储执行代码。
将固件二进制文件和变量加载到存储器中以驱动固件。在控制组件3013的控制下,将寄存器303的PC当前正指示的存储器地址处的执行代码锁存到内核301(即,获取过程)。由解码器3011解译锁存的执行代码(即,解码过程)。将解译的代码传送到计算组件3015以在控制组件3013的控制下执行(即,执行过程)。
重复这些获取过程、解码过程和执行过程并执行该执行代码。
在实施例中,执行固件时基于标志属性来调用寄存器设置信息和固件执行代码分支信息。接下来,基于调用的寄存器设置信息和固件执行代码分支信息来设置处理器30的寄存器303,然后可执行配置固件的子程序。
图4是示出根据实施例的固件提供服务器20的示图。
参照图4,固件提供服务器20可包括控制器210、储存器220、用户界面(UI)230、标志设置器240、固件(FW)生成器250和特征代码生成器260。
控制器210可被配置成控制固件提供服务器20的全部操作。控制器210可利用中央处理单元(CPU)来实施。
储存器220可包括主存储装置和辅助存储装置,并且存储固件提供服务器20的操作所需的程序、控制数据、应用程序、操作参数、处理结果等。
用户界面230可包括输入装置接口和输出装置接口,以便提供操作者(或用户)可访问固件提供服务器20的环境。
标志设置器240可被配置成基于数据存储装置10的修正结果来确定标志属性,并且存储数据存储装置10的每个修正版本的标志属性。
固件生成器250可生成数据存储装置10的操作所需的实质上是固件二进制文件的固件。此外,固件生成器250可改变固件,使得寄存器设置信息和固件执行代码分支信息根据修正结果而被反映到该固件。因此,固件(或二进制文件)可包括每个标志属性的寄存器设置信息和固件执行代码分支信息。
在实施例中,固件提供服务器20可将由标志设置器240确定的标志和由固件生成器250改变的固件二进制文件提供给数据存储装置10。
在实施例中,固件提供服务器20可进一步包括特征代码生成器260。特征代码生成器260可将特征信息生成为程序代码,该特征信息包括具有根据数据存储装置10的修正结果而确定的属性的标志。
在这种情况下,固件生成器250可生成固件二进制文件以包括特征代码。换言之,固件生成器250可将特征代码包括为固件的一部分。
在实施例中,固件提供服务器20可将包括标志特征代码的固件提供给图1的数据存储装置10。
在实施例中,固件可包括至少一个子程序。每个子程序可包括数据头和执行代码部分。特征代码可与待包括在固件中的子程序链接。
图5是示出根据实施例的固件的示图。
参照图5,固件FW可以是包括Sub A和Sub B的一组子程序。在另一实施例中,固件FW可包括单个子程序。
例如Sub A和Sub B的每个子程序可包括数据头部分和执行代码部分。例如,子程序Sub A可包括数据头部分HEADER A和执行代码部分CODE A。数据头部分可存储处理器信息,以及每个子程序的起始位置、偏移量、大小和链接信息。可将可执行代码记录在代码部分中。
可将特征代码记录在特征代码部分中,其中标志属性被编码在特征代码中。
数据存储装置10可将标志和固件或包括从固件提供服务器接收的标志特征代码的固件存储在设置的存储区域中。
可根据数据存储装置10的规范在固件中定义关于形成处理器30的寄存器的设置信息。因此,可与根据数据存储装置10的修正结果而生成的标志属性信息相对应地生成关于寄存器的设置信息,然后将设置信息包括在固件中。
另外,例如Sub A和Sub B的每个子程序可具有相同的执行顺序,或者子程序可根据数据存储装置10的修正版本而具有不同的执行顺序。因此,例如Sub A和Sub B的每个子程序可生成针对每个修正版本定义子程序执行顺序的固件执行代码分支信息。可通过基于具有根据修正结果的属性的标志来调用固件执行代码分支信息来驱动固件。
图6是示出根据实施例的固件提供方法的流程图。
即使已发布的产品(即,数据存储装置)也可能需要监测其性能以确定其是否具有缺陷或错误。根据监测结果,可发布修正产品。
参照图6,可执行修正(操作S101)。修正是查找和弥补已发布的初始产品中的诸如错误或缺陷等不足的过程。根据修正结果,可发布修正产品。
根据修正结果,可确定是否需要改变固件以校正固件本身中的错误或者提高系统性能(操作S103)。当确定需要改变固件(操作S103,是)时,标志设置器240可基于数据存储装置10的修正结果来确定标志属性,并且存储数据存储装置10的每个修正版本的标志属性(操作S105)。
固件生成器250可改变固件,使得寄存器设置信息和固件执行代码分支信息根据修正结果而被反映到该固件(操作S107)。
在实施例中,如图2A所示,寄存器设置信息可包括寄存器名称R1至Rn、地址(例如,起始地址和偏移量)、属性(即,是否可读取/可写入(R/W))、寄存器描述(或功能)和重置值。进一步地,寄存器设置信息可包括关于寄存器R1至Rn中的每个寄存器分配给每个位的详细描述和重置值。另外,如图2A所示,固件执行代码分支信息可包括分支条件和分支地址。
因此,固件(即,二进制文件)可包括每个标志属性的寄存器设置信息和固件执行代码分支信息。可将改变的固件与标志属性信息一起存储(操作S109)。
然后,固件提供服务器20可将由标志设置器240确定的标志和由固件生成器250改变的固件二进制文件提供(或传输)到数据存储装置10(操作S111)。
图7是示出根据实施例的另一固件提供方法的流程图。
参照图7,可在发布产品之后执行修正(操作S201)。修正是查找和弥补诸如错误或缺陷等不足的过程。
根据修正结果,可确定是否需要改变固件,以校正固件本身中的错误或者提高系统性能(操作S203)。当确定需要改变固件(操作S203,是)时,标志设置器240可基于数据存储装置10的修正结果来确定标志属性,并且存储数据存储装置10的每个修正版本的标志属性(操作S205)。
当确定了标志属性时,特征代码生成器260可将特征信息生成为程序代码,该特征信息包括具有根据修正结果而确定的属性的标志(操作S207)。
固件生成器250可改变固件,使得寄存器设置信息和固件执行代码分支信息根据修正结果而被反映到该固件(操作S209)。因此,固件(即,二进制文件)可包括每个标志属性的寄存器设置信息和固件执行代码分支信息。
固件生成器250可对改变的固件和特征代码进行组合(操作S211)。因此,特征代码可被包括为固件的一部分。
可将包括特征代码的固件存储为最终固件(操作S213)。
固件提供服务器20可将包括标志特征代码的最终固件提供(或传输)到数据存储装置10(操作S215)。
以这种方式,可使初始发布的产品的固件和由其衍生而来的修正产品的固件一致,因此可使管理和更新变得容易。
因为针对同一产品只制造和发布一个固件,所以制造商容易管理每个产品的固件。对于消费者而言,因为在无需考虑产品的修正版本的情况下,下载和使用制造商提供的单个固件,所以操作和管理每个产品的固件简单且容易。
图8是示出根据实施例的数据存储系统1000的示图。
参照图8,数据存储系统1000可包括主机装置1100和数据存储装置1200。在实施例中,数据存储装置1200可被配置成固态驱动器(SSD)。
数据存储装置1200可包括控制器1210、多个非易失性存储器装置1220-0至1220-n、缓冲存储器装置1230、电源1240、信号连接器1101和电源连接器1103。
控制器1210可控制数据存储装置1200的一般操作。控制器1210可包括主机接口、控制组件、用作工作存储器的随机存取存储器、错误校正码(ECC)组件和存储器接口。在实施例中,控制器1210可由包括如图1和图3所示的中央处理单元111的控制器110来实施。
主机装置1100可通过信号连接器1101与数据存储装置1200交换信号。该信号可包括命令、地址、数据等。
控制器1210可分析和处理从主机装置1100接收的信号。控制器1210可根据用于驱动数据存储装置1200的固件或软件来控制内部功能块的操作。
缓冲存储器装置1230可临时存储待存储在非易失性存储器装置1220-0至1220-n中的至少一个中的数据。此外,缓冲存储器装置1230可临时存储从非易失性存储器装置1220-0至1220-n中的至少一个读取的数据。根据控制器1210的控制,临时存储在缓冲存储器装置1230中的数据可被传输到主机装置1100或非易失性存储器装置1220-0至1220-n中的至少一个。
非易失性存储器装置1220-0和1220-n可用作数据存储装置1200的存储介质。非易失性存储器装置1220-0至1220-n可分别通过多个信道CH1至CHn与控制器1210联接。一个或多个非易失性存储器装置可联接到一个信道。联接到相同信道的非易失性存储器装置可联接到相同的信号总线和数据总线。
电源1240可将通过电源连接器1103输入的电力提供到数据存储装置1200的内部。电源1240可包括辅助电源。辅助电源可提供电力以允许数据存储装置1200在发生突然断电时正常终止。辅助电源可包括大容量电容器。
信号连接器1101可根据主机装置1100和数据存储装置1200之间的接口方案而通过各种类型的连接器配置。
电源连接器1103可根据主机装置1100的供电方案而通过各种类型的连接器配置。
图9是示出根据实施例的数据处理系统3000的示图。参照图9,数据处理系统3000可包括主机装置3100和存储器系统3200。
主机装置3100可以诸如印制电路板的板形式来配置。虽然未示出,但主机装置3100可包括用于执行主机装置的功能的内部功能块。
主机装置3100可包括诸如插座、插槽或连接器的连接端子3110。存储器系统3200可被安装到连接端子3110。
存储器系统3200可以诸如印制电路板的板形式来配置。存储器系统3200可被称为存储器模块或存储卡。存储器系统3200可包括控制器3210、缓冲存储器装置3220、非易失性存储器装置3231和3232、电源管理集成电路(PMIC)3240和连接端子3250。
控制器3210可控制存储器系统3200的一般操作。控制器3210可以与包括如图1和图3所示的中央处理单元111的控制器110相同的方式来实施。
缓冲存储器装置3220可临时存储待被存储在非易失性存储器装置3231和3232中的数据。此外,缓冲存储器装置3220可临时存储从非易失性存储器装置3231和3232读取的数据。根据控制器3210的控制,临时存储在缓冲存储器装置3220中的数据可被传输到主机装置3100或非易失性存储器装置3231和3232。
非易失性存储器装置3231和3232可用作存储器系统3200的存储介质。
PMIC 3240可将通过连接端子3250输入的电力提供到存储器系统3200的内部。PMIC 3240可根据控制器3210的控制来管理存储器系统3200的电力。
连接端子3250可联接到主机装置3100的连接端子3110。通过连接端子3250,诸如命令、地址、数据等的信号和电力可在主机装置3100与存储器系统3200之间传输。根据主机装置3100和存储器系统3200之间的接口方案,连接端子3250可被配置成各种类型。连接端子3250可被设置在存储器系统3200的任意一侧上。
图10是示出根据实施例的数据处理系统4000的示图。参照图10,数据处理系统4000可包括主机装置4100和存储器系统4200。
主机装置4100可以诸如印制电路板的板形式来配置。虽然未示出,但主机装置4100可包括用于执行主机装置的功能的内部功能块。
存储器系统4200可以表面安装型封装的形式来配置。存储器系统4200可通过焊球4250安装到主机装置4100。存储器系统4200可包括控制器4210、缓冲存储器装置4220和非易失性存储器装置4230。
控制器4210可控制存储器系统4200的一般操作。控制器4210可以与包括如图1和图3所示的中央处理单元111的控制器110相同的方式来配置。
缓冲存储器装置4220可临时存储待被存储在非易失性存储器装置4230中的数据。此外,缓冲存储器装置4220可临时存储从非易失性存储器装置4230读取的数据。根据控制器4210的控制,临时存储在缓冲存储器装置4220中的数据可被传输到主机装置4100或非易失性存储器装置4230。
非易失性存储器装置4230可用作存储器系统4200的存储介质。
图11是示出包括根据实施例的数据存储装置的网络系统5000的示图。参照图11,网络系统5000可包括通过网络5500联接的服务器系统5300和多个客户端系统5410至5430。
服务器系统5300可响应于来自多个客户端系统5410至5430的请求来服务数据。例如,服务器系统5300可存储从多个客户端系统5410至5430提供的数据。再例如,服务器系统5300可将数据提供给多个客户端系统5410至5430。
服务器系统5300可包括主机装置5100和存储器系统5200。存储器系统5200可由图1所示的数据存储装置10、图8所示的数据存储装置1200、图9所示的存储器系统3200或图10所示的存储器系统4200来配置。
图12是示出根据实施例的数据存储装置中包括的非易失性存储器装置300的框图。参照图12,非易失性存储器装置300可包括存储器单元阵列310、行解码器320、数据读取/写入块330、列解码器340、电压发生器350和控制逻辑360。
存储器单元阵列310可包括设置在字线WL1至WLm和位线BL1至BLn彼此相交的区域处的存储器单元MC。
存储器单元阵列310可包括三维(3D)存储器阵列。三维存储器阵列具有垂直于半导体衬底的平坦表面延伸的方向。此外,三维存储器阵列是包括NAND串的结构,在NAND串中至少一个存储器单元位于另一存储器单元的垂直上部中。
然而,三维存储器阵列的结构不限于上述布置。更一般地,可以具有水平方向性和垂直方向性的高度集成的方式形成3D存储器阵列结构。
行解码器320可通过字线WL1至WLm与存储器单元阵列310联接。行解码器320可根据控制逻辑360的控制来进行操作。行解码器320可对从外部装置(未示出)提供的地址进行解码。行解码器320可基于解码结果来选择并驱动字线WL1至WLm。例如,行解码器320可将从电压发生器350提供的字线电压提供给字线WL1至WLm。
数据读取/写入块330可通过位线BL1至BLn与存储器单元阵列310联接。数据读取/写入块330可包括分别对应于位线BL1至BLn的读取/写入电路RW1至RWn。数据读取/写入块330可根据控制逻辑360的控制来进行操作。数据读取/写入块330可根据操作模式操作为写入驱动器或读出放大器。例如,数据读取/写入块330可在写入操作中操作为写入驱动器,写入驱动器将从外部装置提供的数据存储在存储器单元阵列310中。再例如,数据读取/写入块330可在读取操作中操作为读出放大器,读出放大器从存储器单元阵列310读出数据。
列解码器340可根据控制逻辑360的控制来进行操作。列解码器340可对从外部装置提供的地址进行解码。列解码器340可基于解码结果将分别对应于位线BL1至BLn的数据读取/写入块330的读取/写入电路RW1至RWn与数据输入/输出线或数据输入/输出缓冲器联接。
电压发生器350可生成将用于非易失性存储器装置300的内部操作的电压。通过电压发生器350生成的电压可被施加到存储器单元阵列310的存储器单元。例如,可将在编程操作中生成的编程电压施加到待执行编程操作的存储器单元的字线。再例如,在擦除操作中生成的擦除电压可被施加到待执行擦除操作的存储器单元的阱区。又例如,在读取操作中生成的读取电压可被施加到待执行读取操作的存储器单元的字线。
控制逻辑360可基于从外部装置提供的控制信号来控制非易失性存储器装置300的一般操作。例如,控制逻辑360可控制非易失性存储器装置300的操作,例如非易失性存储器装置300的读取操作、写入操作和擦除操作。
虽然已经说明和描述了各个实施例,但是本领域技术人员根据本公开将理解的是,所描述的实施例是可在本发明的范围内进行各种修改的示例。因此,本文所公开的数据存储装置、该数据存储装置的操作方法及包括该数据存储装置的存储系统不应基于所描述的实施例而受到限制。相反地,本发明包括落入权利要求的范围内的所有变化和修改。

Claims (20)

1.一种数据存储装置,包括:
储存器,存储标志信息和固件,所述标志信息与属性相关,每个属性对应于修正版本,所述固件包括每个属性的寄存器设置信息和固件执行代码分支信息;以及
控制器,从所述储存器读取所述标志信息和所述固件以根据所述标志信息执行所述固件。
2.根据权利要求1所述的数据存储装置,其中所述属性中的每个属性被生成为程序代码并且被包括为所述固件的一部分。
3.根据权利要求1所述的数据存储装置,其中所述固件包括至少一个子程序,并且所述固件执行代码分支信息包括定义所述至少一个子程序的执行顺序的信息。
4.根据权利要求3所述的数据存储装置,其中所述属性中的每个属性被生成为程序代码,并且与所述至少一个子程序链接以被存储为所述固件。
5.根据权利要求1所述的数据存储装置,其中所述控制器根据针对所述属性中的每个属性设置的信息设置寄存器,并且根据所述固件执行代码分支信息执行所述固件。
6.一种数据存储装置的操作方法,所述数据存储装置包括储存器和控制器,所述操作方法包括:
将标志信息和固件存储到所述储存器的设置区域,所述标志信息与属性相关,每个属性对应于修正版本,所述固件包括每个属性的寄存器设置信息和固件执行代码分支信息;以及
通过所述控制器从所述储存器读取所述标志信息和所述固件以根据所述标志信息执行所述固件。
7.根据权利要求6所述的操作方法,其中所述属性中的每个属性被生成为程序代码并且被包括为所述固件的一部分。
8.根据权利要求6所述的操作方法,其中所述固件包括至少一个子程序,并且所述固件执行代码分支信息包括定义所述至少一个子程序的执行顺序的信息。
9.根据权利要求8所述的操作方法,其中所述属性中的每个属性被生成为程序代码,并且与所述至少一个子程序链接以被存储为所述固件。
10.根据权利要求6所述的操作方法,进一步包括:
通过所述控制器,根据针对所述属性中的每个属性设置的信息设置寄存器;以及
通过所述控制器,根据所述固件执行代码分支信息执行所述固件。
11.一种固件提供服务器,将固件提供给数据存储装置,所述固件提供服务器包括:
标志设置器,与所述数据存储装置的修正版本对应地确定标志信息的属性,所述标志信息包括属性;以及
固件生成器,生成操作所述数据存储装置所需的固件,改变所述固件以根据所述数据存储装置的修正版本反映寄存器设置信息和固件执行代码分支信息,并且将所改变的固件和所确定的所述标志信息的属性提供给所述数据存储装置,其中所述寄存器设置信息和所述固件执行代码分支信息针对每个属性被设置。
12.根据权利要求11所述的固件提供服务器,进一步包括:特征代码生成器,将所确定的所述标志信息的属性生成为程序代码。
13.根据权利要求12所述的固件提供服务器,其中所述固件生成器改变所述固件以包括特征代码。
14.根据权利要求13所述的固件提供服务器,其中所述固件生成器将包括所述特征代码的固件提供给所述数据存储装置。
15.根据权利要求12所述的固件提供服务器,其中所述固件包括至少一个子程序,并且所述固件执行代码分支信息是用于定义所述至少一个子程序的执行顺序的信息。
16.根据权利要求15所述的固件提供服务器,其中特征代码与所述至少一个子程序链接以被存储为所述固件。
17.一种系统,包括:
数据存储装置;以及
固件提供服务器:
对所述数据存储装置的固件执行至少一次修正;
基于所述至少一次修正,生成固件和标志信息,所述固件包括寄存器设置信息和固件执行代码分支信息,所述标志信息包括与所述固件的版本对应的属性;并且
将所述固件和所述标志信息提供给所述数据存储装置,
其中所述数据存储装置:
从所述固件提供服务器接收所述固件和所述标志信息;并且
通过基于从所述标志信息选择的一个属性调用所述寄存器设置信息和所述固件执行代码分支信息来执行所述固件。
18.根据权利要求17所述的系统,其中所述属性中的每个属性被生成为程序代码并且被包括为所述固件的一部分。
19.根据权利要求17所述的系统,其中所述固件包括至少一个子程序,并且所述固件执行代码分支信息包括定义所述至少一个子程序的执行顺序的信息。
20.根据权利要求19所述的系统,其中所述属性中的每个属性被生成为程序代码,并且与所述至少一个子程序链接以被存储为所述固件。
CN201811534179.3A 2018-07-06 2018-12-14 数据存储装置、数据存储装置操作方法及固件提供服务器 Pending CN110688247A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2018-0078669 2018-07-06
KR1020180078669A KR20200005220A (ko) 2018-07-06 2018-07-06 데이터 저장 장치 및 동작 방법, 이를 위한 펌웨어 제공 서버

Publications (1)

Publication Number Publication Date
CN110688247A true CN110688247A (zh) 2020-01-14

Family

ID=69102053

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811534179.3A Pending CN110688247A (zh) 2018-07-06 2018-12-14 数据存储装置、数据存储装置操作方法及固件提供服务器

Country Status (3)

Country Link
US (2) US20200012490A1 (zh)
KR (1) KR20200005220A (zh)
CN (1) CN110688247A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116560700A (zh) * 2023-07-11 2023-08-08 沐曦集成电路(上海)有限公司 芯片固件升级系统

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200005220A (ko) * 2018-07-06 2020-01-15 에스케이하이닉스 주식회사 데이터 저장 장치 및 동작 방법, 이를 위한 펌웨어 제공 서버
US20210342241A1 (en) * 2020-04-29 2021-11-04 Advanced Micro Devices, Inc. Method and apparatus for in-memory failure prediction
US11836502B2 (en) * 2021-06-14 2023-12-05 Dell Products L.P. Multi-boot system and method for a baseboard management controller (BMC)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070294599A1 (en) * 2006-05-30 2007-12-20 Mattias Edlund Method for patching a read-only memory and a data processing system comprising a means of patching the read-only memory based on patch contexts
US7590835B1 (en) * 2006-06-30 2009-09-15 American Megatrends, Inc. Dynamically updating a computer system firmware image
CN101674590A (zh) * 2009-09-29 2010-03-17 中兴通讯股份有限公司 一种客户端设备及其远程升级方法、远程升级服务系统
US20100169709A1 (en) * 2008-12-31 2010-07-01 Askey Computer Corporation System Of Updating Firmware And Method Thereof, And Method Of Creating Firmware
CN108073799A (zh) * 2016-11-07 2018-05-25 爱思开海力士有限公司 半导体存储器系统及其操作方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200005220A (ko) * 2018-07-06 2020-01-15 에스케이하이닉스 주식회사 데이터 저장 장치 및 동작 방법, 이를 위한 펌웨어 제공 서버

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070294599A1 (en) * 2006-05-30 2007-12-20 Mattias Edlund Method for patching a read-only memory and a data processing system comprising a means of patching the read-only memory based on patch contexts
US7590835B1 (en) * 2006-06-30 2009-09-15 American Megatrends, Inc. Dynamically updating a computer system firmware image
US20100169709A1 (en) * 2008-12-31 2010-07-01 Askey Computer Corporation System Of Updating Firmware And Method Thereof, And Method Of Creating Firmware
CN101674590A (zh) * 2009-09-29 2010-03-17 中兴通讯股份有限公司 一种客户端设备及其远程升级方法、远程升级服务系统
CN108073799A (zh) * 2016-11-07 2018-05-25 爱思开海力士有限公司 半导体存储器系统及其操作方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116560700A (zh) * 2023-07-11 2023-08-08 沐曦集成电路(上海)有限公司 芯片固件升级系统
CN116560700B (zh) * 2023-07-11 2023-09-22 沐曦集成电路(上海)有限公司 芯片固件升级系统

Also Published As

Publication number Publication date
KR20200005220A (ko) 2020-01-15
US20210124571A1 (en) 2021-04-29
US20200012490A1 (en) 2020-01-09
US11243759B2 (en) 2022-02-08

Similar Documents

Publication Publication Date Title
US11243759B2 (en) Data storage device, operation method thereof, and firmware providing server therefor
CN109284202B (zh) 控制器及其操作方法
KR102532084B1 (ko) 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
CN110858126B (zh) 数据存储设备及其操作方法和具有该设备的存储系统
US20130339644A1 (en) Methods of operating memory devices within a communication protocol standard timeout requirement
KR20200031852A (ko) 메모리 시스템 내 펌웨어를 유지하는 방법 및 장치
CN110390988B (zh) 数据存储装置、防止读取干扰的操作方法及存储系统
KR20190067370A (ko) 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
CN111755039A (zh) 在恢复进程期间减少存储器系统中单元干扰的设备及方法
CN111258918A (zh) 数据存储装置及其操作方法、存储系统
CN111414131B (zh) 数据存储装置、其操作方法和包括其的存储系统
CN110362423B (zh) 优化恢复性能的数据存储装置、操作方法以及存储系统
CN112835514B (zh) 存储器系统
KR20200089939A (ko) 메모리 시스템 및 그 동작 방법
US20190179561A1 (en) Data storage device, operating method thereof, and storage system having the same
CN111708480B (zh) 数据存储装置及其操作方法和控制器
CN111752854A (zh) 数据存储装置及其操作方法
CN116521057A (zh) 数据处理系统、其操作方法及其存储装置
US11543990B2 (en) Data storage apparatus with extended lifespan and operation method thereof
CN110874335A (zh) 数据存储装置、其操作方法以及具有该装置的存储系统
US11550578B2 (en) Data storage apparatus including swap memory and operating method thereof
CN110727393B (zh) 数据存储装置及其操作方法、存储系统
CN109840222B (zh) 存储器系统及其操作方法
CN114595095A (zh) 存储器系统及存储器系统的控制器
CN114791787A (zh) 数据存储设备及其操作方法

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200114