CN114579484A - 数据存储装置及其操作方法 - Google Patents
数据存储装置及其操作方法 Download PDFInfo
- Publication number
- CN114579484A CN114579484A CN202110574967.0A CN202110574967A CN114579484A CN 114579484 A CN114579484 A CN 114579484A CN 202110574967 A CN202110574967 A CN 202110574967A CN 114579484 A CN114579484 A CN 114579484A
- Authority
- CN
- China
- Prior art keywords
- metadata
- ftl core
- core
- write request
- ftl
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1657—Access to multiple memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1012—Adding 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 codes or arrangements adapted for a specific type of error
- G06F11/1032—Simple parity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1663—Access to shared memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1684—Details of memory controller using multiple buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0661—Format or protocol conversion arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种数据存储装置,该数据存储装置包括非易失性存储器装置和控制器,该非易失性存储器装置包括第一非易失性存储器组和第二非易失性存储器组,第一非易失性存储器组包括联接到第一闪存转换层(FTL)内核的多个第一非易失性存储器,第二非易失性存储器组包括联接到第二FTL内核的多个第二非易失性存储器;该控制器包括第一FTL内核和公共存储器,该第一FTL内核被配置为将从主机装置传输的第一用户数据和与第二用户数据有关的第二元数据写入多个第一非易失性存储器之中的一个中。
Description
相关申请的交叉引用
本申请要求于2020年12月1日提交的申请号为10-2020-0165656的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
各个实施例总体上可以涉及一种半导体装置,并且更特别地,涉及一种数据存储装置及其操作方法。
背景技术
使用存储器装置的数据存储装置不具有机械驱动单元并且表现出良好的稳定性、耐久性、快速的信息访问速率和低功耗。这种数据存储装置包括通用串行总线(USB)存储器装置、具有各种接口的存储卡、通用闪存(UFS)装置和固态驱动器(SSD)等。
数据存储装置可以包括多个独立的闪存转换层(FTL)内核以提供多内核环境。多个FTL内核可以独立地操作。多个独立的FTL内核可以联接到独立的存储器装置(例如,NAND闪速存储器装置)以进行读取操作、写入操作和擦除操作等。
在可以通过在一个数据存储装置中实施多个独立的FTL内核来期望两个或更多个数据存储装置的高性能的多内核环境中,操作员已找到一种提高数据处理性能的方法。
发明内容
本公开的实施例提供一种在由多个独立内核配置的多内核环境中具有提高的数据处理性能的数据存储装置及其操作方法。
在本公开的实施例中,一种数据存储装置可以包括:非易失性存储器装置,包括第一非易失性存储器组和第二非易失性存储器组,第一非易失性存储器组包括联接到第一闪存转换层(FTL)内核的多个第一非易失性存储器,第二非易失性存储器组包括联接到第二FTL内核的多个第二非易失性存储器;以及控制器。该控制器可以包括:协议内核,被配置为从主机装置接收命令并且将该命令分配给第一FTL内核和第二FTL内核中的一个;第一FTL内核,被配置为将来自主机装置的第一用户数据和第二元数据写入多个第一非易失性存储器之中的一个中,并且该第二元数据与在多个第二非易失性存储器中存储的第二用户数据有关;以及公共存储器,被配置为存储从第一FTL内核和第二FTL内核传输的数据。
在本公开的实施例中,一种数据存储装置的操作方法可以包括:第一闪存转换层(FTL)内核将从主机装置传输的第一用户数据写入多个第一非易失性存储器中的一个中;第一FTL内核将与第一用户数据相关的第一元数据写入公共存储器中;并且第二FTL内核将第一元数据写入多个第二非易失性存储器中的一个中。
在本公开的实施例中,一种数据存储装置可以包括:非易失性存储器装置,包括多个第一非易失性存储器和多个第二非易失性存储器;以及控制器。该控制器可以包括:第一闪存转换层(FTL)内核,被配置为将来自主机装置的第一用户数据写入多个第一非易失性存储器中的一个中;第二FTL内核,被配置为将来自主机装置的第二用户数据写入多个第二非易失性存储器中的一个中;以及公共存储器,被配置为存储与第一用户数据相关联的第一元数据,其中第一FTL内核被配置为向第二FTL内核传输元数据写入请求消息,并且其中第二FTL内核被配置为响应于元数据写入请求消息而将第一元数据写入多个第二非易失性存储器中的一个中,并且在第一元数据被写入多个第二非易失性存储器中的一个中之后,向第一FTL内核传输元数据写入完成消息。
根据实施例,在包括多个FTL内核的多内核环境中,与用户数据有关的元数据可以存储在联接到对方内核的存储器中,从而可以提高数据的写入性能。
在下面更详细地描述这些和其他特征、方面和实施例。
附图说明
根据下列结合附图的详细描述,将更清楚地理解本公开的主题的以上和其他的方面、特征以及优点,其中:
图1是示出根据本公开的实施例的电子设备的示图;
图2是示出根据本公开的实施例的数据存储装置的配置的示图;
图3是说明根据本公开的实施例的数据存储方法的示意图;
图4是示出根据本公开的实施例的公共存储器的详细配置的示例的示图;
图5是示出根据本公开的实施例的公共存储器的详细配置的另一示例的示图;
图6是示出根据本公开的实施例的公共存储器的详细配置的又一示例的示图;
图7是说明根据本公开的实施例的数据存储装置的操作方法的流程图;
图8是说明根据本公开的实施例的图7的存储元数据的方法的示例的流程图;
图9是说明根据本公开的实施例的图7的存储元数据的方法的另一示例的流程图;
图10是示出根据本公开的实施例的包括固态驱动器(SSD)的数据处理系统的示图;
图11是示出图10中的控制器的配置的示图;
图12是示出根据本公开的实施例的包括数据存储装置的数据处理系统的示图;
图13是示出根据本公开的实施例的包括数据存储装置的数据处理系统的示图;
图14是示出根据本公开的实施例的包括数据存储装置的网络系统的示图;以及
图15是示出根据本公开的实施例的数据存储装置中包括的非易失性存储器装置的配置的示图。
具体实施方式
参照附图详细描述本教导的各个实施例。附图是各个实施例和中间结构的示意图。如此,例如由于制造技术和/或公差导致的附图的配置和形状的变化是意料之中的。因此,所描述的实施例不应被解释为限于本文中示出的特定配置和形状,而是可以包括不背离所附权利要求书中所限定的本教导的精神和范围的配置和形状的偏差。
参照本教导的实施例的横截面图和/或平面图来在本文中描述本教导。然而,本教导的实施例不应被解释为限制本教导。尽管已示出和描述了本教导的一些实施例,但本领域普通技术人员将领会的是,在不背离本教导的原理和精神的情况下可以在这些实施例中进行改变。
图1是示出根据本公开的实施例的电子设备1的示图。
参照图1,电子设备1可以包括主机装置20和数据存储装置10。
主机装置20可以是诸如以下的设备:移动电话、MP3播放器、膝上型计算机、台式计算机、游戏机、电视(TV)、车载信息娱乐系统等。主机装置20可以包括文件系统21。进一步,尽管在图1中未示出,但是主机装置20可以包括处理单元(例如,中央处理单元(CPU))和驱动单元。处理单元可以控制主机装置20的全部操作,并且驱动单元可以根据处理单元的控制来驱动数据存储装置10。在实施例中,主机装置20的驱动单元可以包括应用(未示出)、文件系统21、主机存储器(未示出)等。
该应用可以被称为应用程序并且可以是在操作系统(OS)上运行的软件。该应用可以响应于用户输入而处理数据。例如,该应用可以响应于用户输入而处理用户数据并且将命令传输到文件系统21,该命令用于将经处理的用户数据存储在数据存储装置10的非易失性存储器装置(例如,图2中的非易失性存储器装置200)中。
响应于从应用传输的命令,文件系统21可以分配待存储用户数据的逻辑块地址(LBA)。在实施例中,文件系统21可以是闪存友好型文件系统(F2FS)、扩展文件系统4(EXT4)或与其类似的另一类型的文件系统,但是不限于此。
主机存储器(未示出)可以临时存储待写入数据存储装置10的非易失性存储器装置200中的数据或从数据存储装置10的非易失性存储器装置200中读出的数据。主机存储器可以用作工作存储器,该工作存储器被配置为驱动(或运行)应用、文件系统21等。
数据存储装置10可以存储待由主机装置20访问的数据。在某些情况下,数据存储装置10可以被称为存储器系统。
根据联接到主机装置20的接口协议,数据存储装置10可以包括各种类型的存储装置之中的一种。例如,数据存储装置10可以包括诸如以下的各种类型的存储装置中的一种:固态驱动器(SSD),MMC、eMMC、RS-MMC和微型MMC形式的多媒体卡,SD、迷你SD和微型SD形式的安全数字卡,通用串行总线(USB)存储装置,通用闪存(UFS)装置,个人计算机存储卡国际协会(PCMCIA)卡型存储装置,外围组件互连(PCI)卡型存储装置,高速PCI(PCI-e或PCIe)卡型存储装置,紧凑式闪速(CF)卡,智能媒体卡,记忆棒等。
数据存储装置10可以被制造为各种类型的封装之中的一种。例如,数据存储装置10可以被制造为诸如以下的各种类型的封装中的任意一种:堆叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)或者晶圆级堆叠封装(WSP)。
图2是示出根据本公开的实施例的数据存储装置10的配置的示图。
在下文中,将参照描述了根据本公开的实施例的数据存储方法的图3的示意图来描述数据存储装置10。
数据存储装置10可以包括控制器100和非易失性存储器装置200。
非易失性存储器装置200可以作为数据存储装置10的存储介质被操作。根据存储器单元,非易失性存储器装置200可以包括诸如以下的各种类型的非易失性存储器装置中的一种:NAND闪速存储器装置、NOR闪速存储器装置、使用铁电电容器的铁电随机存取存储器(FRAM)、使用隧道磁阻(TMR)层的磁性随机存取存储器(MRAM)、使用硫族化物合金的相变随机存取存储器(PRAM)和使用过渡金属化合物的电阻式随机存取存储器(ReRAM)。
非易失性存储器装置200可以包括存储器单元阵列(未示出),该存储器单元阵列包括多个存储器单元,多个存储器单元布置在多个字线(未示出)和多个位线(未示出)彼此交叉的区域中。例如,存储器单元阵列中的存储器单元中的每一个可以是待存储单个位数据(例如,1位数据)的单层单元(SLC)、待存储2位数据的多层单元(MLC)、待存储3位数据的三层单元(TLC)和待存储4位数据的四层单元(QLC)。存储器单元阵列可以包括SLC、MLC、TLC和QLC中的至少一个或多个存储器单元。例如,存储器单元阵列110可以包括以二维(2D)水平结构布置的存储器单元或以3D垂直结构布置的存储器单元。
在实施例中,非易失性存储器装置200可以包括第一非易失性存储器组210和第二非易失性存储器组220,该第一非易失性存储器组210包括通过第一存储器接口150联接到第一FTL内核120的多个第一非易失性存储器210-1、210-2、210-3和210-4,该第二非易失性存储器组220包括通过第二存储器接口160联接到第二FTL内核130的多个第二非易失性存储器220-1、220-2、220-3和220-4。
具体地,多个第一非易失性存储器210-1至210-4可以构成第一非易失性存储器组210。
多个第二非易失性存储器220-1至220-4可以构成第二非易失性存储器组220。
第一非易失性存储器组210可以联接到稍后待描述的第一FTL内核120。第一非易失性存储器组210中的第一非易失性存储器210-1至210-4可以存储第二FTL内核130中存储的用户数据的元数据。
元数据可以是在存储用户数据时生成的数据并且包括诸如写入计数和地址信息的映射表信息,但是元数据不限于此。
第二非易失性存储器组220可以联接到稍后待描述的第二FTL内核130。第二非易失性存储器组220中的第二非易失性存储器220-1至220-4可以存储第一FTL内核120中存储的用户数据的元数据。稍后将对此进行详细描述。
控制器100可以通过驱动加载到存储器(未示出)中的固件或软件来控制数据存储装置10的全部操作。控制器100可以解码并驱动诸如固件或软件的代码类型的指令或算法。可以利用硬件或者硬件和软件的组合来实施控制器100。
尽管在图2中未示出,但是控制器100可以进一步包括错误校正码(ECC)引擎,该错误校正码引擎通过对从主机装置20提供的写入数据执行ECC编码来生成奇偶校验并且使用奇偶校验对从非易失性存储器装置200读出的读取数据执行ECC解码。ECC引擎可以设置在第一存储器接口150和第二存储器接口160的内部或外部。
在实施例中,控制器100可以包括协议内核110、第一FTL内核120、第二FTL内核130、公共存储器140、第一存储器接口150和第二存储器接口160。
协议内核110可以被配置为执行主机接口的功能并且可以响应于主机装置20的协议来执行主机装置20与数据存储装置10之间的接口连接。例如,协议内核110可以通过USB协议、UFS协议、MMC协议、并行高级技术附件(PATA)协议、串行高级技术附件(SATA)协议、小型计算机系统接口(SCSI)协议、串列SCSI(SAS)协议、PCI协议和PCI-e协议之中的一个协议与主机装置20通信。
在本实施例中,协议内核110可以被配置为接收从主机装置20传输的命令并且将该命令分配给第一FTL内核120和第二FTL内核130中的一个。
当从主机装置20接收到读取命令时,协议内核110可以基于存储对应于该读取命令的用户数据的物理地址来允许第一FTL内核120和第二FTL内核130中的相应FTL内核运行该读取命令。
第一内核120可以由微控制单元(MCU)和中央处理单元(CPU)配置。第一FTL内核120可以处理从主机装置20传输的请求。为了处理从主机装置20传输的请求,第一FTL内核120可以驱动加载到存储器(未示出)中的代码类型的指令或算法(例如,固件)并且控制诸如协议内核110、公共存储器140和第一存储器接口150的内部元件以及非易失性存储器装置200的操作。
第一FTL内核120可以基于从主机装置20传输的请求来生成控制非易失性存储器装置200的操作的控制信号并且通过第一存储器接口150向非易失性存储器装置200提供所生成的控制信号。
第一FTL内核120的上述操作也可以应用于第二FTL内核130。
参照图3,第一FTL内核120可以将从主机装置20传输的第一用户数据和与第二用户数据有关的第二元数据分别写入多个第一非易失性存储器210-1至210-4中的一个中。第二用户数据可以是通过第二FTL内核130存储在多个第二非易失性存储器220-1至220-4中的用户数据。
第一FTL内核120存储第一用户数据的时间和第二FTL内核130存储与第一用户数据有关的第一元数据的时间可以彼此重叠。因此,与在完成第一用户数据的存储之后存储第一元数据的现有方法相比,可以提高数据的写入速度。
第一FTL内核120可以根据检查第二元数据的方法对存储元数据的方法进行分类。
图4是示出根据本公开的实施例的公共存储器140的详细配置的示例的示图。将描述公共存储器140包括公共队列的示例。
例如,参照图4,第一FTL内核120可以在每个预设时间检查(或确定)第二公共队列144中存储的第二元数据的写入请求消息的计数编号。
当作为检查结果检查出计数编号被改变时,第一FTL内核120可以从第二公共存储器142接收与改变后的计数编号匹配的第二元数据以及与改变后的计数编号之前的未写入第二元数据的先前计数编号匹配的第二元数据,并且将第二元数据写入多个第一非易失性存储器210-1至210-4中的一个中。
例如,当先前第二元数据的写入请求消息的计数编号是“1”并且当前第二元数据的写入请求消息的计数编号是“2”时,第一FTL内核120可以通过计数编号的改变来识别出生成了待存储的新的第二元数据。接下来,当计数编号“1”的第二元数据未写入多个第一非易失性存储器210-1至210-4中的任何一个中时,第一FTL内核120可以从第二公共存储器142接收与改变后的计数编号“2”匹配的第二元数据以及与改变后的计数编号“2”之前的先前计数编号“1”匹配的第二元数据,并且将第二元数据写入多个第一非易失性存储器210-1至210-4中的一个中。当与改变后的计数编号“2”之前的先前计数编号“1”匹配的第二元数据已被写入多个第一非易失性存储器210-1至210-4中的任意一个中时,第一FTL内核120可以从第二公共存储器142仅接收与改变后的计数编号“2”匹配的第二元数据,并且将该第二元数据写入多个第一非易失性存储器210-1至210-4中的一个中。
当完成第二元数据的写入时,第一FTL内核120可以将第二元数据的写入完成消息传输到第二FTL内核130。
当接收到读取命令时,第一FTL内核120可以向第二FTL内核130请求与该读取命令相对应的第一元数据。例如,第一FTL内核120和第二FTL内核130可以在它们之间已经预先约定存储对方的元数据。因此,当处理读取命令时,第一FTL内核120和第二FTL内核130可以向对方FTL内核请求元数据。
参照图3,第二FTL内核130可以将从主机装置20传输的第二用户数据和与第一用户数据有关的第一元数据分别写入多个第二非易失性存储器220-1至220-4中的一个中。
参照图4,第二FTL内核130可以在每个预设时间检查第一公共队列143中存储的第一元数据的写入请求消息的计数编号。当作为检查结果检查出计数编号被改变时,第二FTL内核130可以从第一公共存储器141接收与改变后的计数编号匹配的第一元数据以及与改变后的计数编号之前的未写入第一元数据的先前计数编号匹配的第一元数据,并且将第一元数据写入多个第二非易失性存储器220-1至220-4中的一个中。
当完成第一元数据的写入时,第二FTL内核130可以将第一元数据的写入完成消息传输到第一FTL内核120。
当接收到读取命令时,第二FTL内核130可以向第一FTL内核120请求与该读取命令相对应的第二元数据。
尽管在图2中仅示出了两个内核,例如第一FTL内核120和第二FTL内核130,但是除了第一FTL内核120和第二FTL内核130之外,还可以实施多个FTL内核。因此,在FTL内核本身中生成的元数据可以存储在对方的FTL内核中。例如,第一FTL内核120可以被称为存储用户数据的一方的内核,而第二FTL内核130可以被称为存储元数据的一方的对方内核。
公共存储器140可以存储包括从第一FTL内核120和第二FTL内核130传输的第一元数据和第二元数据的数据。
公共存储器140可以被配置为由第一FTL内核120和第二FTL内核130两者访问。第一FTL内核120和第二FTL内核130可以不经由协议内核110而将数据存储在公共存储器140中。
例如,参照图4,公共存储器140可以包括第一公共存储器141、第二公共存储器142、第一公共队列143和第二公共队列144。
第一公共存储器141可以存储从第一FTL内核120传输的第一元数据。
在实施例中,第一公共存储器141可以是待由第一FTL内核120存储第一元数据的存储器。然后第二FTL内核130可以从第一公共存储器141获取待存储在第二FTL内核130中的第一元数据。
第二公共存储器142可以存储从第二FTL内核130传输的第二元数据。
在实施例中,第二公共存储器142可以是待由第二FTL内核130存储第二元数据的存储器。然后第一FTL内核120可以从第二公共存储器142获取待存储在第一FTL内核120中的第二元数据。
第一公共队列143可以存储从第一FTL内核120传输的第一元数据的写入请求消息。第一元数据的写入请求消息可以被称为消息,该消息向第二FTL内核130请求将第一元数据写入多个第二非易失性存储器220-1至220-4中的一个中。第二FTL内核130可以以预设时段检查第一公共队列143。当检查出针对新的第一元数据的写入请求出现时,第二FTL内核130可以接收并存储相应的第一元数据。
第二公共队列144可以存储从第二FTL内核130传输的第二元数据的写入请求消息。第二元数据的写入请求消息可以被称为消息,该消息向第一FTL内核120请求将第二元数据写入多个第一非易失性存储器210-1至210-4中的一个中。第一FTL内核120可以以预设时段检查第二公共队列144。当检查出针对新的第二元数据的写入请求出现时,第一FTL内核120可以接收并存储相应的第二元数据。
第一元数据的写入请求消息和第二元数据的写入请求消息可以包括用于识别新元数据的出现的计数编号作为头部信息。
图5是示出根据本公开的实施例的公共存储器140的详细配置的另一示例的示图。将描述与公共存储器140分开地实施消息队列的示例。
参照图5,公共存储器140可以包括第一公共存储器141和第二公共存储器142。与包括第一公共存储器141和第二公共存储器142的公共存储器140分开地,数据存储装置10可以包括消息队列170,消息队列170包括第一消息队列171和第二消息队列172。
第一公共存储器141可以存储从第一FTL内核120传输的第一元数据。
第二公共存储器142可以存储从第二FTL内核130传输的第二元数据。
当存储了从第一FTL内核120传输的第一元数据的写入请求消息时,第一消息队列171可以生成写入请求中断(write request interrupt)并且将该写入请求中断传输到第二FTL内核130。
当存储了从第二FTL内核130传输的第二元数据的写入请求消息时,第二消息队列172可以生成写入请求中断并且将该写入请求中断传输到第一FTL内核120。
可以利用由硬件知识财产(IP)配置的消息专用IP来实施第一消息队列171和第二消息队列172。第一消息队列171和第二消息队列172可以支持第一FTL内核120和第二FTL内核130之间的通信并且可以被称为邮箱。
在实施例中,当第一元数据和第二元数据的写入请求消息被排队时,第一消息队列171和第二消息队列172中的每一个可以将用于通知写入请求消息的排队的写入请求中断传输到第一FTL内核120和第二FTL内核130中的相应FTL内核。
图6是示出根据本公开的实施例的公共存储器140的详细配置的又一示例的示图。将描述利用一个队列实施公共队列的示例。
参照图6,公共存储器140可以包括第一公共存储器141、第二公共存储器142和公共队列145。
第一公共存储器141可以存储从第一FTL内核120传输的第一元数据。
第二公共存储器142可以存储从第二FTL内核130传输的第二元数据。
公共队列145可以存储从第一FTL内核120传输的第一元数据的写入请求消息和从第二FTL内核130传输的第二元数据的写入请求消息。
公共队列145可以通过匹配用于识别写入请求消息的识别信息来存储第一元数据的写入请求消息和第二元数据的写入请求消息。
例如,识别信息可以是用于识别出与写入请求消息相对应的元数据必须存储在第一FTL内核120方的多个第一非易失性存储器210-1至210-4之中的一个中的信息,或者用于识别出与写入请求消息相对应的元数据必须存储在第二FTL内核130方的多个第二非易失性存储器210-1至210-4之中的一个中的信息。可以预先约定这种识别信息,以便可以识别相应的含义。
尽管在图6中未示出,但是也可以不在公共存储器140内部而在公共存储器140外部实施公共队列145。
第一存储器接口150可以位于第一FTL内核120和第一非易失性存储器组210之间,并且根据第一FTL内核120的控制来控制第一非易失性存储器组210。
第二存储器接口160可以位于第二FTL内核130和第二非易失性存储器组220之间,并且根据第二FTL内核130的控制来控制第二非易失性存储器组220。
当非易失性存储器装置200由NAND闪速存储器配置时,第一存储器接口150和第二存储器接口160可以被称为闪存控制顶部(FCT)。第一存储器接口150和第二存储器接口160可以将通过第一FTL内核120和第二FTL内核130生成的控制信号传输到非易失性存储器装置200。控制信号可以包括用于控制非易失性存储器装置200的操作的命令、地址、操作控制信号等。例如,操作控制信号可以包括芯片使能信号、命令锁存使能信号、地址锁存使能信号、写入使能信号、读取使能信号、数据选通信号等,但是操作控制信号不限于此。进一步,第一存储器接口150和第二存储器接口160可以将写入数据传输到非易失性存储器装置200或者从非易失性存储器装置200接收读取数据。
第一存储器接口150和第二存储器接口160以及非易失性存储器装置200可以通过通道联接。第一存储器接口150和第二存储器接口160可以通过通道向非易失性存储器装置200传输诸如命令、地址、操作控制信号和数据(例如,写入数据)的信号。进一步,第一存储器接口150和第二存储器接口160可以通过通道从非易失性存储器装置200接收状态信号(例如,就绪/忙碌(R/B)信号)、数据(例如,读取数据)等。
尽管未在附图中示出,但是数据存储装置10可以进一步包括存储器,该存储器包括动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM),但是该存储器不限于此。该存储器可以存储通过第一FTL内核120和第二FTL内核130驱动的固件。该存储器可以存储驱动固件所需的数据,例如,元数据。例如,该存储器可以作为第一FTL内核120和第二FTL内核130的工作存储器操作。
该存储器可以被配置为包括数据缓冲器,该数据缓冲器被配置为临时存储待从主机装置20传输到非易失性存储器装置200的写入数据或者来自非易失性存储器装置200并且待传输到主机装置20的读取数据。例如,该存储器可以作为缓冲存储器操作。该存储器可以设置在控制器100的内部或外部。
图7是描述根据本公开的实施例的数据存储装置10的操作方法的流程图。
参照图7,当接收到从主机装置20传输的命令时,协议内核110可以分配第一FTL内核120和第二FTL内核130中的一个作为用于处理该命令的FTL内核(S101、S103)。当该命令是写入请求时,该命令可以包括待写入的用户数据。
协议内核110可以遵照预先设置的方案,诸如以第一FTL内核120和第二FTL内核130的顺序交替地分配FTL内核的方法。
接下来,第一FTL内核120可以将通过协议内核110从主机装置20传输的第一用户数据写入多个第一非易失性存储器210-1至210-4中的一个中(S105)。
第一FTL内核120可以将与第一用户数据有关的第一元数据写入公共存储器140中(S107)。可以在公共存储器140中单独划分待存储由第一FTL内核120方生成的第一元数据的区域。
第二FTL内核130可以将第一元数据写入多个第二非易失性存储器220-1至220-4之中的一个中(S109)。
接下来,第二FTL内核130可以将第一元数据的写入完成消息传输到第一FTL内核120(S111)。
已经描述了在操作S105至S111中第二FTL内核130方存储第一元数据的示例。另一方面,可以实施第一FTL内核120可以存储从第二FTL内核130方提供的第二元数据的示例。
图8是描述图7中的存储元数据的方法的示例的流程图,并且将详细描述图7中的操作S107至S109。
在下文中,将描述公共存储器140包括公共队列的示例。
在图7中的操作S107中,第一FTL内核120可以将与第一用户数据有关的第一元数据和第一元数据的写入请求消息写入公共存储器140中(S201)。
第一元数据的写入请求消息可以包括用于识别新元数据的出现的计数编号作为头部信息。
接下来,第二FTL内核130可以在预设时间之后检查公共存储器140中存储的第一元数据的写入请求消息的计数编号(S203)。
当作为检查结果检查出计数编号被改变(S205,是)时,第二FTL内核130可以从公共存储器140接收与改变后的计数编号匹配的第一元数据以及与改变后的计数编号之前的未写入第一元数据的先前计数编号匹配的第一元数据(S207)。
当检查出计数编号被改变时,第二FTL内核130可以识别出存在新的第一元数据的写入请求消息。
接下来,第二FTL内核130可以将第一元数据写入多个第二非易失性存储器220-1至220-4之中的一个中(S209)。
图9是描述图7中的存储元数据的方法的另一示例的流程图,并且将详细描述图7中的操作S107至S109。
在下文中,将描述与公共存储器140分开地实施消息队列的示例。
在图7中的操作S107中,第一FTL内核120可以将与第一用户数据有关的第一元数据写入公共存储器140中(S301)。
消息队列(见图5的170)可以存储从第一FTL内核120传输的第一元数据的写入请求消息(S303)。
消息队列170可以针对第一元数据的写入请求消息生成写入请求中断并且将该写入请求中断传输到第二FTL内核130(S305)。
第二FTL内核130可以从公共存储器140接收第一元数据并且将该第一元数据写入多个第二非易失性存储器220-1至220-4之中的一个中(S307、S309)。
图10是示出根据本公开的实施例的包括固态驱动器(SSD)的数据处理系统2000的框图。参照图10,数据处理系统2000可以包括主机装置2100和固态驱动器(SSD)2200。
SSD 2200可以包括控制器2210、缓冲存储器装置2220、非易失性存储器装置2231至223n、电源2240、信号连接器2250以及电源连接器2260。
控制器2210可以控制SSD 2200的全部操作。
缓冲存储器装置2220可以临时存储待存储在非易失性存储器装置2231至223n中的数据。进一步,缓冲存储器装置2220可以临时存储从非易失性存储器装置2231至223n读出的数据。根据控制器2210的控制,可以将临时存储在缓冲存储器装置2220中的数据传输到主机装置2100或非易失性存储器装置2231至223n。
非易失性存储器装置2231至223n可以用作SSD 2200的存储介质。非易失性存储器装置2231至223n可以分别通过多个通道CH1至CHn与控制器2210联接。一个或多个非易失性存储器装置可以联接到一个通道。联接到相同的通道的非易失性存储器装置可以联接到相同的信号总线和数据总线。
电源2240可以向SSD 2200的内部提供通过电源连接器2260输入的电力PWR。电源2240可以包括辅助电源2241。辅助电源2241可以在发生突然断电(SPO)时供应电力以允许SSD 2200正常终止。辅助电源2241可以包括能够对电力PWR进行充电的大容量电容器。
控制器2210可以通过信号连接器2250与主机装置2100交换信号SGL。信号SGL可以包括命令、地址、数据等。根据主机装置2100和SSD 2200之间的接口方案,信号连接器2250可以由各种类型的连接器配置。
图11是示出图10所示的控制器2210的框图。参照图11,控制器2210可以包括主机接口2211、控制单元2212、随机存取存储器2213、错误校正码(ECC)单元2214和存储器接口2215。
主机接口2211可以根据主机装置2100的协议来提供主机装置2100和SSD 2200之间的接口连接。例如,主机接口2211可以通过SD、USB、MMC、嵌入式MMC(eMMC)、PCMCIA、PATA、SATA、SCSI、SAS、PCI、PCI-e和UFS协议之中的一个与主机装置2100通信。另外,主机接口2211可以执行支持主机装置2100将SSD 2200识别为例如硬盘驱动器(HDD)的通用数据存储装置的磁盘模拟功能。
控制单元2212可以分析和处理从主机装置2100输入的信号SGL。控制单元2212可以根据用于驱动SDD 2200的固件或软件来控制内部功能块的操作。随机存取存储器2213可以用作用于驱动这种固件或软件的工作存储器。
ECC单元2214可以生成待传输到非易失性存储器装置2231至223n的数据的奇偶校验数据。所生成的奇偶校验数据可以与该数据一起存储在非易失性存储器装置2231至223n中。ECC单元2214可以基于奇偶校验数据来检测从非易失性存储器装置2231至223n读出的数据的错误。当检测到的错误在可校正范围内时,ECC单元2214可以校正检测到的错误。
存储器接口2215可以根据控制单元2212的控制向非易失性存储器装置2231至223n提供诸如命令和地址的控制信号。存储器接口2215可以根据控制单元2212的控制与非易失性存储器装置2231至223n交换数据。例如,存储器接口2215可以向非易失性存储器装置2231至223n提供缓冲存储器装置2220中存储的数据,或者向缓冲存储器装置2220提供从非易失性存储器装置2231至223n读出的数据。
图12是示出根据本公开的实施例的包括数据存储装置的数据处理系统3000的示图。参照图12,数据处理系统3000可以包括主机装置3100和数据存储装置3200。
可以以诸如印刷电路板的板的形式配置主机装置3100。尽管在图12中未示出,但是主机装置3100可以包括用于执行主机装置的功能的内部功能块。
主机装置3100可以包括连接端子3110,诸如插座、插槽或连接器。数据存储装置3200可以安装在连接端子3110上。
可以以诸如印刷电路板的板的形式配置数据存储装置3200。数据存储装置3200可以被称为存储器模块或存储卡。数据存储装置3200可以包括控制器3210、缓冲存储器装置3220、非易失性存储器装置3231和3232、电源管理集成电路(PMIC)3240以及连接端子3250。
控制器3210可以控制数据存储装置3200的全部操作。可以以与图11所示的控制器2210相同的方式配置控制器3210。
缓冲存储器装置3220可以临时存储待存储在非易失性存储器装置3231和3232中的数据。进一步,缓冲存储器装置3220可以临时存储从非易失性存储器装置3231和3232读出的数据。根据控制器3210的控制,可以将临时存储在缓冲存储器装置3220中的数据传输到主机装置3100或非易失性存储器装置3231和3232。
非易失性存储器装置3231和3232可以用作数据存储装置3200的存储介质。
PMIC 3240可以向数据存储装置3200的内部提供通过连接端子3250输入的电力。PMIC 3240可以根据控制器3210的控制来管理数据存储装置3200的电力。
连接端子3250可以联接到主机装置3100的连接端子3110。通过连接端子3250,可以在主机装置3100和数据存储装置3200之间传送诸如命令、地址、数据等的信号以及电力。可以根据主机装置3100和数据存储装置3200之间的接口方案以各种类型配置连接端子3250。连接端子3250可以设置在数据存储装置3200的任意一侧。
图13是示出根据本公开的实施例的包括数据存储装置的数据处理系统4000的框图。参照图13,数据处理系统4000可以包括主机装置4100和数据存储装置4200。
可以以诸如印刷电路板的板的形式配置主机装置4100。尽管在图13中未示出,但是主机装置4100可以包括用于执行主机装置的功能的内部功能块。
可以以表面安装型封装的形式配置数据存储装置4200。数据存储装置4200可以通过焊球4250安装在主机装置4100上。数据存储装置4200可以包括控制器4210、缓冲存储器装置4220和非易失性存储器装置4230。
控制器4210可以控制数据存储装置4200的全部操作。可以以与图11所示的控制器2210相同的方式配置控制器4210。
缓冲存储器装置4220可以临时存储待存储在非易失性存储器装置4230中的数据。进一步,缓冲存储器装置4220可以临时存储从非易失性存储器装置4230读出的数据。根据控制器4210的控制,可以将临时存储在缓冲存储器装置4220中的数据传输到主机装置4100或非易失性存储器装置4230。
非易失性存储器装置4230可以用作数据存储装置4200的存储介质。
图14是示出根据本公开的实施例的包括数据存储装置的网络系统5000的示图。参照图14,网络系统5000可以包括通过网络5500彼此连接的服务器系统5300和多个客户端系统5410至5430。
服务器系统5300可以响应于来自多个客户端系统5410至5430的请求而服务数据。例如,服务器系统5300可以存储从多个客户端系统5410至5430提供的数据。在另一示例中,服务器系统5300可以向多个客户端系统5410至5430提供数据。
服务器系统5300可以包括主机装置5100和数据存储装置5200。数据存储装置5200可以由图1所示的数据存储装置10、图10所示的SSD 2200、图12所示的数据存储装置3200或图13所示的数据存储装置4200配置。
图15是示出根据本公开的实施例的数据存储装置中包括的非易失性存储器装置1000的框图。参照图15,非易失性存储器装置1000可以包括存储器单元阵列1100、行解码器1200、数据读取/写入块1300、列解码器1400、电压生成器1500和控制逻辑1600。
存储器单元阵列1100可以包括存储器单元MC,存储器单元MC布置在字线WL1至WLm和位线BL1至BLn彼此相交的区域。
行解码器1200可以通过字线WL1至WLm与存储器单元阵列1100联接。行解码器1200可以根据控制逻辑1600的控制而操作。行解码器1200可以对从外部装置(未示出)提供的地址进行解码。行解码器1200可以基于解码结果来选择并驱动字线WL1至WLm。例如,行解码器1200可以向字线WL1至WLm提供从电压生成器1500提供的字线电压。
数据读取/写入块1300可以通过位线BL1至BLn与存储器单元阵列1100联接。数据读取/写入块1300可以包括与位线BL1至BLn相对应的读取/写入电路RW1至RWn。数据读取/写入块1300可以根据控制逻辑1600的控制而操作。根据操作模式,数据读取/写入块1300可以作为写入驱动器或读出放大器操作。例如,数据读取/写入块1300可以在写入操作中作为写入驱动器操作,写入驱动器将从外部装置提供的数据存储在存储器单元阵列1100中。在另一示例中,数据读取/写入块1300可以在读取操作中作为读出放大器操作,读出放大器从存储器单元阵列1100读出数据。
列解码器1400可以根据控制逻辑1600的控制而操作。列解码器1400可以对从外部装置提供的地址进行解码。列解码器1400可以基于解码结果,将数据输入/输出线(或数据输入/输出缓冲器)与分别对应于位线BL1至BLn的数据读取/写入块1300的读取/写入电路RW1至RWn联接。
电压生成器1500可以生成待在非易失性存储器装置1000的内部操作中使用的电压。可以将由电压生成器1500生成的电压施加到存储器单元阵列1100的存储器单元MC。例如,可以将在编程操作中生成的编程电压施加到待执行编程操作的存储器单元的字线。在另一示例中,可以将在擦除操作中生成的擦除电压施加到待执行擦除操作的存储器单元的阱区。在又一示例中,可以将在读取操作中生成的读取电压施加到待执行读取操作的存储器单元的字线。
基于从外部装置提供的控制信号,控制逻辑1600可以控制非易失性存储器装置1000的全部操作。例如,控制逻辑1600可以控制非易失性存储器装置1000的操作,诸如非易失性存储器装置1000的读取操作、写入操作和擦除操作。
本文所述的方法、过程和/或操作可以由代码或指令执行,该代码或指令待由计算机、处理器、控制器或其他信号处理装置执行。计算机、处理器、控制器或其他信号处理装置可以是本文所述的那些或除本文所述的元件之外的一个。因为详细描述了形成方法(或计算机、处理器、控制器或其他信号处理装置的操作)的基础的算法,所以用于实施方法实施例的操作的代码或指令可以将计算机、处理器、控制器或其他信号处理装置转换为用于执行本文的方法的专用处理器。
当至少部分地以软件来实施时,控制器、处理器、装置、模块、单元、复用器、生成器、逻辑电路、管理器、接口、解码器、驱动器、生成器以及其他信号生成和信号处理特征部件可以包括,例如存储器或其他存储装置,该存储器或其他存储装置用于存储例如待由计算机、处理器、微处理器、控制器或其他信号处理装置执行的代码或指令。计算机、处理器、微处理器、控制器或其他信号处理装置可以是本文所述的那些或除本文所述的元件之外的一个。因为详细描述了形成方法(或计算机、处理器、微处理器、控制器或其他信号处理装置的操作)的基础的算法,所以用于实施方法实施例的操作的代码或指令可以将计算机、处理器、微处理器、控制器或其他信号处理装置转换为用于执行本文中描述的方法的专用处理器。
本发明的上述实施例旨在说明而不是限制本发明。各种替代方案和等同方案是可能的。本发明不受本文中描述的实施例的限制。本发明也不限于任何特定类型的半导体装置。鉴于本公开而显而易见的其他增加、减少或修改旨在落入所附权利要求书的范围内。
Claims (19)
1.一种数据存储装置包括:
非易失性存储器装置,包括第一非易失性存储器组和第二非易失性存储器组,所述第一非易失性存储器组包括联接到第一闪存转换层内核即第一FTL内核的多个第一非易失性存储器,所述第二非易失性存储器组包括联接到第二FTL内核的多个第二非易失性存储器;以及
控制器,
其中所述控制器包括:
协议内核,从主机装置接收命令并且将所述命令分配到所述第一FTL内核和所述第二FTL内核中的一个;
所述第一FTL内核,将来自所述主机装置的第一用户数据以及第二元数据写入所述多个第一非易失性存储器之中的一个中,其中所述第二元数据与所述多个第二非易失性存储器中存储的第二用户数据有关;以及
公共存储器,存储从所述第一FTL内核和所述第二FTL内核传输的数据。
2.根据权利要求1所述的数据存储装置,其中所述控制器进一步包括:所述第二FTL内核,将来自所述主机装置的所述第二用户数据以及第一元数据写入所述多个第二非易失性存储器之中的一个中,并且所述第一元数据与所述第一用户数据有关。
3.根据权利要求2所述的数据存储装置,其中所述公共存储器包括:
第一公共存储器,存储从所述第一FTL内核传输的所述第一元数据;以及
第二公共存储器,存储从所述第二FTL内核传输的所述第二元数据。
4.根据权利要求3所述的数据存储装置,其中所述公共存储器进一步包括:
第一公共队列,存储所述第一元数据的写入请求消息;以及
第二公共队列,存储所述第二元数据的写入请求消息。
5.根据权利要求4所述的数据存储装置,其中所述第一元数据的所述写入请求消息和所述第二元数据的所述写入请求消息中的每一个包括用于识别新元数据的出现的计数编号。
6.根据权利要求5所述的数据存储装置,其中所述第一FTL内核在每个设定时间检查所述第二公共队列中存储的所述第二元数据的所述写入请求消息的所述计数编号,并且当作为检查结果检查出所述计数编号被改变时,从所述第二公共存储器接收与改变后的计数编号匹配的第二元数据以及与所述改变后的计数编号之前的未写入第二元数据的先前计数编号匹配的第二元数据,并且将所述第二元数据写入所述多个第一非易失性存储器之中的一个中,并且
其中所述第二FTL内核在每个设定时间检查所述第一公共队列中存储的所述第一元数据的所述写入请求消息的所述计数编号,并且当作为检查结果检查出所述计数编号被改变时,从所述第一公共存储器接收与改变后的计数编号匹配的第一元数据以及与所述改变后的计数编号之前的未写入第一元数据的先前计数编号匹配的第一元数据,并且将所述第一元数据写入所述多个第二非易失性存储器之中的一个中。
7.根据权利要求3所述的数据存储装置,进一步包括:
第一消息队列,当存储了所述第一元数据的写入请求消息时,生成写入请求中断并且将所述写入请求中断传输到所述第二FTL内核;以及
第二消息队列,当存储了所述第二元数据的写入请求消息时,生成写入请求中断并且将所述写入请求中断传输到所述第一FTL内核。
8.根据权利要求3所述的数据存储装置,其中所述公共存储器进一步包括公共队列,所述公共队列通过匹配用于识别所述第一元数据的写入请求消息和所述第二元数据的写入请求消息的识别信息来存储所述第一元数据的所述写入请求消息和所述第二元数据的所述写入请求消息。
9.根据权利要求2所述的数据存储装置,进一步包括公共队列,所述公共队列通过匹配用于识别所述第一元数据的写入请求消息和所述第二元数据的写入请求消息的识别信息来存储从所述第一FTL内核传输的所述第一元数据的所述写入请求消息和从所述第二FTL内核传输的所述第二元数据的所述写入请求消息。
10.根据权利要求2所述的数据存储装置,其中当完成所述第二元数据的写入时,所述第一FTL内核将所述第二元数据的写入完成消息传输到所述第二FTL内核,并且
其中当完成所述第一元数据的写入时,所述第二FTL内核将所述第一元数据的写入完成消息传输到所述第一FTL内核。
11.根据权利要求1所述的数据存储装置,其中当从所述主机装置接收到读取命令时,所述协议内核基于存储与所述读取命令相对应的用户数据的物理地址来允许所述第一FTL内核和所述第二FTL内核中的一个运行所述读取命令。
12.根据权利要求11所述的数据存储装置,其中当接收到所述读取命令时,所述第一FTL内核向所述第二FTL内核请求与所述读取命令相对应的第一元数据,并且
其中当接收到所述读取命令时,所述第二FTL内核向所述第一FTL内核请求与所述读取命令相对应的第二元数据。
13.一种数据存储装置的操作方法包括:
通过第一闪存转换层内核即第一FTL内核,将从主机装置传输的第一用户数据写入多个第一非易失性存储器中的一个中;
通过所述第一FTL内核,将与所述第一用户数据相关的第一元数据写入公共存储器中;并且
通过第二FTL内核,将所述第一元数据写入多个第二非易失性存储器中的一个中。
14.根据权利要求13所述的方法,其中将所述第一元数据写入所述公共存储器中进一步包括:通过所述第一FTL内核,将所述第一元数据的写入请求消息写入所述公共存储器中。
15.根据权利要求14所述的方法,其中所述第一元数据的所述写入请求消息包括用于识别新元数据的出现的计数编号。
16.根据权利要求15所述的方法,进一步包括:在将所述第一元数据写入所述公共存储器中之后并且在将所述第一元数据写入所述多个第二非易失性存储器之中的一个中之前,
通过所述第二FTL内核,在设定的时间之后,检查所述公共存储器中存储的所述第一元数据的所述写入请求消息的所述计数编号;并且
当作为检查结果所述计数编号被改变时,通过所述第二FTL内核,从所述公共存储器接收与改变后的计数编号匹配的第一元数据以及与所述改变后的计数编号之前的未写入第一元数据的先前计数编号匹配的第一元数据。
17.根据权利要求14所述的方法,进一步包括:在将所述第一元数据写入所述公共存储器中之后并且在将所述第一元数据写入所述多个第二非易失性存储器之中的一个中之前,
将从所述第一FTL内核传输的所述第一元数据的所述写入请求消息存储在消息队列中;
针对所述第一元数据的所述写入请求消息生成写入请求中断并且将所述写入请求中断传输到所述第二FTL内核;并且
从所述公共存储器接收所述第一元数据。
18.根据权利要求13所述的方法,进一步包括:在将所述第一元数据写入所述多个第二非易失性存储器之中的一个中之后,通过所述第二FTL内核将所述第一元数据的写入完成消息传输到所述第一FTL内核。
19.一种数据存储装置包括:
非易失性存储器装置,包括多个第一非易失性存储器和多个第二非易失性存储器;以及
控制器,包括:
第一闪存转换层内核即第一FTL内核,将来自主机装置的第一用户数据写入所述多个第一非易失性存储器中的一个中;
第二FTL内核,将来自所述主机装置的第二用户数据写入所述多个第二非易失性存储器中的一个中;以及
公共存储器,存储与所述第一用户数据相关联的第一元数据;
其中所述第一FTL内核向所述第二FTL内核传输元数据写入请求消息,并且
其中所述第二FTL内核响应于所述元数据写入请求消息而将所述第一元数据写入所述多个第二非易失性存储器中的一个中,并且在所述第一元数据被写入所述多个第二非易失性存储器中一个中之后向所述第一FTL内核传输元数据写入完成消息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2020-0165656 | 2020-12-01 | ||
KR1020200165656A KR20220076803A (ko) | 2020-12-01 | 2020-12-01 | 데이터 저장 장치 및 그것의 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114579484A true CN114579484A (zh) | 2022-06-03 |
Family
ID=81752632
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110574967.0A Withdrawn CN114579484A (zh) | 2020-12-01 | 2021-05-26 | 数据存储装置及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11409473B2 (zh) |
KR (1) | KR20220076803A (zh) |
CN (1) | CN114579484A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240111456A1 (en) * | 2022-10-02 | 2024-04-04 | Silicon Motion, Inc. | Storage device controller and method capable of allowing incoming out-of-sequence write command signals |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8296480B2 (en) * | 2009-11-30 | 2012-10-23 | Lsi Corporation | Context execution in a media controller architecture |
KR101784816B1 (ko) | 2011-08-18 | 2017-10-12 | 삼성전자 주식회사 | 비휘발성 메모리 시스템 |
US9223799B1 (en) * | 2012-06-29 | 2015-12-29 | Emc Corporation | Lightweight metadata sharing protocol for location transparent file access |
US10956346B1 (en) * | 2017-01-13 | 2021-03-23 | Lightbits Labs Ltd. | Storage system having an in-line hardware accelerator |
US10191812B2 (en) * | 2017-03-30 | 2019-01-29 | Pavilion Data Systems, Inc. | Recovery mechanism for low latency metadata log |
KR102538222B1 (ko) * | 2018-06-26 | 2023-06-01 | 삼성전자주식회사 | 스토리지 장치, 스토리지 장치를 포함하는 스토리지 시스템, 그리고 스토리지 장치를 액세스하는 방법 |
US10824568B2 (en) * | 2018-07-25 | 2020-11-03 | Western Digital Technologies, Inc. | Speculative pre-fetching of flash translation layer tables for use with solid state systems |
KR102648790B1 (ko) | 2018-12-19 | 2024-03-19 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그 동작 방법 |
US10635431B1 (en) * | 2019-01-09 | 2020-04-28 | Bank Of America Corporation | Dynamically updating source code from a cloud environment |
KR102263040B1 (ko) * | 2019-04-23 | 2021-06-09 | 삼성전자주식회사 | 멀티 코어 솔리드 스테이트 드라이브의 운용 방법 |
CN112115067A (zh) * | 2019-06-21 | 2020-12-22 | 慧荣科技股份有限公司 | 闪存物理资源集合管理装置及方法及计算机可读取存储介质 |
US11093143B2 (en) * | 2019-07-12 | 2021-08-17 | Samsung Electronics Co., Ltd. | Methods and systems for managing key-value solid state drives (KV SSDS) |
US11385820B2 (en) * | 2020-03-04 | 2022-07-12 | Micron Technology, Inc. | Command batching for a memory sub-system |
KR20220009523A (ko) * | 2020-07-15 | 2022-01-25 | 삼성전자주식회사 | 스토리지 컨트롤러, 및 스토리지 컨트롤러의 동작 방법 |
-
2020
- 2020-12-01 KR KR1020200165656A patent/KR20220076803A/ko active Search and Examination
-
2021
- 2021-04-21 US US17/236,500 patent/US11409473B2/en active Active
- 2021-05-26 CN CN202110574967.0A patent/CN114579484A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US11409473B2 (en) | 2022-08-09 |
KR20220076803A (ko) | 2022-06-08 |
US20220171569A1 (en) | 2022-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110083545B (zh) | 数据存储装置及其操作方法 | |
CN107122317B (zh) | 数据存储装置 | |
CN109992202B (zh) | 数据存储设备、其操作方法以及包括其的数据处理系统 | |
US10838653B2 (en) | Electronic device and operating method thereof | |
CN111124273B (zh) | 数据存储装置及数据存储装置的操作方法 | |
CN111414313B (zh) | 数据存储装置及数据存储装置的操作方法 | |
CN113220220B (zh) | 控制器、控制器的操作方法及包括该控制器的存储装置 | |
CN109407966B (zh) | 数据存储装置及其操作方法 | |
CN111916140A (zh) | 控制器及其操作方法以及包括控制器的存储器系统 | |
CN113704138A (zh) | 存储装置及其操作方法 | |
US20220229775A1 (en) | Data storage device and operating method thereof | |
CN109426453B (zh) | 数据存储装置及其操作方法 | |
US11263126B2 (en) | Data storage device and operating method thereof | |
US11461238B2 (en) | Storage device, memory controller, and method for fetching write commands from submission queues to perform full page writes | |
KR102645786B1 (ko) | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 | |
CN112988045A (zh) | 数据存储装置及其操作方法 | |
US11409473B2 (en) | Data storage device and operating method thereof | |
CN114385070B (zh) | 主机、数据存储装置、数据处理系统以及数据处理方法 | |
CN115794535A (zh) | 事件日志管理方法、控制器和存储装置 | |
US11157401B2 (en) | Data storage device and operating method thereof performing a block scan operation for checking for valid page counts | |
CN110795366B (zh) | 数据存储装置及数据存储装置的操作方法 | |
US20210064622A1 (en) | Address search circuit and method of semiconductor memory apparatus and controller therefor | |
US20200250082A1 (en) | Controller, memory system, and operating method thereof | |
CN112783429A (zh) | 数据存储装置、使用其的存储系统及其操作方法 | |
CN111324302B (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20220603 |
|
WW01 | Invention patent application withdrawn after publication |