CN109902031B - 存储系统及其操作方法 - Google Patents
存储系统及其操作方法 Download PDFInfo
- Publication number
- CN109902031B CN109902031B CN201810879383.2A CN201810879383A CN109902031B CN 109902031 B CN109902031 B CN 109902031B CN 201810879383 A CN201810879383 A CN 201810879383A CN 109902031 B CN109902031 B CN 109902031B
- Authority
- CN
- China
- Prior art keywords
- memory
- mapping data
- address mapping
- nth
- ssd
- 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.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims abstract description 583
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000013507 mapping Methods 0.000 claims abstract description 225
- 230000004044 response Effects 0.000 claims abstract description 44
- 238000012546 transfer Methods 0.000 claims abstract description 14
- 239000000872 buffer Substances 0.000 claims description 274
- 239000007787 solid Substances 0.000 claims description 7
- 230000003139 buffering effect Effects 0.000 claims description 6
- 238000013403 standard screening design Methods 0.000 claims 40
- 238000004891 communication Methods 0.000 description 35
- 238000010586 diagram Methods 0.000 description 30
- 238000013500 data storage Methods 0.000 description 12
- 230000002093 peripheral effect Effects 0.000 description 9
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000003936 working memory Effects 0.000 description 3
- 101000741396 Chlamydia muridarum (strain MoPn / Nigg) Probable oxidoreductase TC_0900 Proteins 0.000 description 2
- 101000741399 Chlamydia pneumoniae Probable oxidoreductase CPn_0761/CP_1111/CPj0761/CpB0789 Proteins 0.000 description 2
- 101000741400 Chlamydia trachomatis (strain D/UW-3/Cx) Probable oxidoreductase CT_610 Proteins 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- 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
- 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/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- 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
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/408—Address circuits
- G11C11/4082—Address Buffers; level conversion circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- 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
Abstract
本发明提供一种存储系统及操作存储系统的方法。操作存储系统的方法可以包括:通过主机系统,输出用于读取地址映射数据的命令,多条地址映射数据与第一存储器系统至第(n‑1)存储器系统对应,地址映射数据被存储在第n存储器系统中,其中n是3或更大的自然数;在第一传输操作中,响应于命令,从第n存储器系统输出地址映射数据并且将地址映射数据输入到主机系统;以及在第二传输操作中,从主机系统输出地址映射数据并且将地址映射数据输入到第一存储器系统至第(n‑1)存储器系统。
Description
相关申请的交叉引用
本申请要求于2017年12月7日提交的申请号为10-2017-0167583的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
本公开的各个实施例总体涉及一种存储系统及操作该存储系统的方法。特别地,实施例涉及一种包括单独的元固态驱动器(SSD)的存储系统及操作该存储系统的方法,其中元固态驱动器(SSD)用于存储多个用户SSD的地址映射数据。
背景技术
存储器装置可以包括多个存储块。进一步地,每个存储块可以包括多个存储器单元,并且可以对单个存储块中的存储器单元同时执行擦除操作。
当从主机接收到写入命令和逻辑地址时,存储器系统可以分配与逻辑地址对应的物理地址,并且可以将数据写入到与物理地址对应的存储器区域。
存储系统可以包括主机系统和闪存阵列。主机系统可以包括主机缓冲存储器和主机控制器。进一步地,闪存阵列可以包括多个SSD。每个SSD可以包括非易失性存储器装置、缓冲存储器装置和存储器控制器。
发明内容
各个实施例涉及一种存储系统及操作该存储系统的方法,该存储系统包括用于存储元数据的单独的元SSD并且使用单独的元SSD有效地管理元数据。
本公开的实施例可以提供一种操作存储系统的方法。方法可以包括:通过主机系统,输出用于读取地址映射数据的命令,多条地址映射数据与第一存储器系统至第(n-1)存储器系统对应,地址映射数据被存储在第n存储器系统中,其中n是3或更大的自然数;在第一传输操作中,响应于命令,从第n存储器系统输出地址映射数据并且将地址映射数据输入到主机系统;以及在第二传输操作中,从主机系统输出地址映射数据并且将地址映射数据输入到第一存储器系统至第(n-1)存储器系统。
本公开的实施例可以提供一种操作存储系统的方法。方法可以包括:当第一用户固态驱动器(SSD)中满足与第一用户SSD对应的第一地址映射数据的刷新(flush)条件时,通过主机系统,从第一用户SSD读取第一地址映射数据;通过主机系统,将从第一用户SSD读取的第一地址映射数据输出到元SSD;以及通过元SSD,将从主机系统输出的第一地址映射数据刷新到非易失性存储器装置。
本公开的实施例可以提供一种存储系统。存储系统可以包括:闪存阵列,包括第一用户固态驱动器(SSD)至第n用户SSD和第一个元SSD,其中n是2或更大的自然数;以及主机系统,联接到闪存阵列。此处,第一用户SSD至第n用户SSD和第一元SSD中的每个可以包括控制器缓冲存储器和非易失性存储器装置。第一元SSD的非易失性存储器装置可以被配置为存储分别与第一用户SSD至第n用户SSD对应的第一条地址映射数据至第n条地址映射数据。主机系统可以被配置为在启动操作期间读取存储在第一元SSD的非易失性存储器装置中的第一条地址映射数据至第n条地址映射数据,并且将读取的第一条地址映射数据至第n条地址映射数据分别存储在第一用户SSD至第n用户SSD的控制器缓冲存储器中。
本公开的实施例可以提供一种存储系统。存储系统可以包括:多个数据存储器系统,每个数据存储器系统被配置为将地址映射数据缓冲在对应的控制器缓冲存储器中并且根据每个数据存储器系统的操作更新每个数据存储器系统的地址映射数据;至少一个专用元存储器系统,被配置为存储各个地址映射数据;以及主机系统。主机系统可以被配置为在各个数据存储器系统的启动期间,通过将存储在专用元存储器系统中的各个地址映射数据提供给各个数据存储器系统来控制各个数据存储器系统缓冲各个地址映射数据,并且通过将缓冲在各个数据存储器系统中的各个地址映射数据传送到专用元存储器系统,控制专用元存储器系统基于缓冲在各个数据存储器系统中的各个地址映射数据来更新存储在专用元存储器系统中的各个地址映射数据。
附图说明
图1是示出根据本公开的实施例的存储器系统的示图。
图2是示出图1的存储器控制器的示图。
图3是示出根据本公开的实施例的存储器系统的示图。
图4是示出图1的非易失性存储器装置的示图。
图5是示出图4的存储块的示图。
图6是示出根据本公开的实施例的存储系统的示图。
图7是示出根据本公开的实施例的启动顺序的流程图。
图8是示出根据本公开的实施例的启动顺序的示图。
图9是示出根据本公开的实施例的对地址映射数据的刷新操作的流程图。
图10是示出根据本公开的实施例的对地址映射数据的刷新操作的示图。
图11是示出根据本公开的实施例的对地址映射数据的刷新操作的流程图。
图12是用于说明根据本公开的实施例的映射数据存储区域的配置的示图。
图13是用于说明根据本公开的实施例的映射数据存储区域的配置的示图。
图14是用于说明根据本公开的实施例的映射数据存储区域的配置的示图。
图15是示出存储器系统的实施例的示图。
图16是示出存储器系统的实施例的示图。
图17是示出存储器系统的实施例的示图。
图18是示出存储器系统的实施例的示图。
具体实施方式
从以下结合附图对实施例的描述,本公开的优点和特征以及用于实现该优点和特征的方法将变得清楚。然而,本公开不限于以下实施例,而是可以以其它形式实施。提供以下实施例,使得本公开透彻且完整,并且向本领域技术人员充分传达本公开的技术精神。在整个说明书中,对“实施例”等的参考不一定针对仅一个实施例,并且对“实施例”等的不同参考不一定针对相同的实施例。
还应注意的是,在本说明书中,“连接/联接”不仅指一个部件直接联接另一部件,而且还指通过一个或多个中间部件间接联接另一部件。在本说明书中,当元件被称为“包括”或“包含”部件时,该元件不排除一个或多个其它部件,而是可以进一步包括这些其它部件,除非上下文另有明确说明。
图1是示出根据本公开的实施例的存储器系统的示图。
参照图1,存储器系统1000可以包括:非易失性存储器装置1100,即使电力供应中断,也会保留存储在非易失性存储器装置1100中的数据;缓冲存储器装置1300,临时存储数据;以及存储器控制器1200,在主机系统2000的控制下控制非易失性存储器装置1100和缓冲存储器装置1300。
主机系统2000可以使用诸如以下的各种通信方法中的至少一种与存储器系统1000通信:通用串行总线(USB)通信方法、串行AT附件(SATA)通信方法、串列SCSI(SAS)通信方法、高速芯片间(HSIC)通信方法、小型计算机系统接口(SCSI)通信方法、外围组件互连(PCI)通信方法、PCI高速(PCIe)通信方法、非易失性存储器高速(NVMe)通信方法、通用闪存(UFS)通信方法、安全数字(SD)通信方法、多媒体卡(MMC)通信方法、嵌入式MMC(eMMC)通信方法、双列直插式存储器模块(DIMM)通信方法、寄存式DIMM(RDIMM)通信方法和负载减少的DIMM(LRDIMM)通信方法。进一步地,存储器系统1000可以是包括闪速存储器的固态驱动器(SSD)。
存储器控制器1200可以控制存储器系统1000的整体操作,并且可以控制主机系统2000与非易失性存储器装置1100之间的数据交换。例如,存储器控制器1200可以响应于从主机系统2000接收的请求,通过控制非易失性存储器装置1100来编程或读取数据。进一步地,存储器控制器1200可以存储关于非易失性存储器装置1100中的主存储块和子存储块的信息,并且可以选择非易失性存储器装置1100,使得根据为编程操作加载的数据量而对主存储块或子存储块执行编程操作。在实施例中,非易失性存储器装置1100可以包括闪速存储器。
存储器控制器1200可以控制主机系统2000与缓冲存储器装置1300之间的数据交换,或者可以将用于控制非易失性存储器装置1100的系统数据临时存储在缓冲存储器装置1300中。缓冲存储器装置1300可以用作存储器控制器1200的工作存储器、高速缓冲存储器或缓冲存储器。缓冲存储器装置1300可以存储由存储器控制器1200执行的代码和命令。进一步地,缓冲存储器装置1300可以存储由存储器控制器1200处理的数据。
存储器控制器1200可以将从主机系统2000接收的数据临时存储在缓冲存储器装置1300中,并且然后将临时存储在缓冲存储器装置1300中的数据传输到非易失性存储器装置1100,此后,传输的数据被存储在非易失性存储器装置1100中。并且,存储器控制器1200可以从主机系统2000接收数据和逻辑地址,并且可以将逻辑地址转换为物理地址,该物理地址指示实际上将存储数据的非易失性存储器装置1100的区域。进一步地,存储器控制器1200可以将配置逻辑地址与物理地址之间的映射关系的逻辑-物理地址映射表存储在缓冲存储器装置1300中。
在实施例中,缓冲存储器装置1300可以包括双倍数据速率同步动态随机存取存储器(DDR SDRAM)、双倍数据速率第四代(DDR4)SDRAM、低功耗双倍数据速率第四代(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)SDRAM或者Rambus DRAM(RDRAM)。
在实施例中,存储器系统1000可以不包括缓冲存储器装置1300,缓冲存储器装置1300可以是单独部件,或者缓冲存储器装置1300的功能可以分布在存储器系统1000的一个或多个其它部件中。
图2是示出图1的存储器控制器的示图。
参照图2,存储器控制器1200可以包括处理器710、存储器缓冲器720、错误检查与校正(ECC)单元730、主机接口740、缓冲器控制电路750、闪存接口760、数据随机发生器770、缓冲存储器接口780和总线790。
总线790可以提供存储器控制器1200的部件之间的信道。
处理器710可以控制存储器控制器1200的整体操作并且可以执行逻辑操作。处理器710可以通过主机接口740与外部主机系统2000通信,并且可以通过闪存接口760与非易失性存储器装置1100通信。进一步地,处理器710可以通过缓冲存储器接口780与缓冲存储器装置1300通信。此外,处理器710可以通过缓冲器控制电路750控制存储器缓冲器720。处理器710可以通过使用存储器缓冲器720作为工作存储器、高速缓冲存储器或缓冲存储器来控制存储器系统1000的操作。
处理器710可以使从主机系统2000输入的多个命令排队。该操作被称为多队列操作。处理器710可以将多个排队命令顺序地传送到非易失性存储器装置1100。
存储器缓冲器720可以用作处理器710的工作存储器、高速缓冲存储器或缓冲存储器。存储器缓冲器720可以存储由处理器710执行的代码和命令。存储器缓冲器720可以存储由处理器710处理的数据。存储器缓冲器720可以包括静态RAM(SRAM)或动态RAM(DRAM)。
ECC单元730可以执行错误检查与校正。ECC单元730可以基于通过闪存接口760待被写入到非易失性存储器装置1100的数据来执行错误校正码(ECC)编码。ECC编码的数据可以通过闪存接口760被传送到非易失性存储器装置1100。ECC单元730可以对通过闪存接口760从非易失性存储器装置1100接收的数据执行ECC解码。在实施例中,ECC单元730可以作为闪存接口760的部件被包括或被包含在闪存接口760中。
主机接口740可以在处理器710的控制下与外部主机系统2000通信。主机接口740可以使用诸如以下的各种通信方法中的至少一种执行通信:通用串行总线(USB)通信方法、串行AT附件(SATA)通信方法、串列SCSI(SAS)通信方法、高速芯片间(HSIC)通信方法、小型计算机系统接口(SCSI)通信方法、外围组件互连(PCI)通信方法、PCI高速(PCIe)通信方法、非易失性存储器高速(NVMe)通信方法、通用闪存(UFS)通信方法、安全数字(SD)通信方法、多媒体卡(MMC)通信方法、嵌入式MMC(eMMC)通信方法、双列直插式存储器模块(DIMM)通信方法、寄存式DIMM(RDIMM)通信方法和负载减少的DIMM(LRDIMM)通信方法。
缓冲器控制电路750可以在处理器710的控制下控制存储器缓冲器720。
闪存接口760可以在处理器710的控制下与非易失性存储器装置1100通信。闪存接口760可以通过信道将命令、地址和数据传输到非易失性存储器装置1100/从非易失性存储器装置1100接收命令、地址和数据。
在实施例中,存储器控制器1200可以不包括存储器缓冲器720和缓冲器控制电路750。
在实施例中,处理器710可以使用代码来控制存储器控制器1200的操作。处理器710可以从设置在存储器控制器1200中的非易失性存储器装置(例如,ROM)加载代码。在实施例中,处理器710可以通过闪存接口760从非易失性存储器装置1100加载代码。
数据随机发生器770可以使数据随机化或者使随机化的数据去随机化。数据随机发生器770可以对通过闪存接口760待被写入到非易失性存储器装置1100的数据执行数据随机化操作。随机化的数据可以通过闪存接口760被传送到非易失性存储器装置1100。数据随机发生器770可以对通过闪存接口760从非易失性存储器装置1100接收的数据执行数据去随机化操作。在实施例中,数据随机发生器770可以作为闪存接口760的部件被包括或被包含在闪存接口760中。
在实施例中,存储器控制器1200的总线790可以被划分成控制总线和数据总线。数据总线可以在存储器控制器1200中传输数据,并且控制总线可以在存储器控制器1200中传输诸如命令或地址的控制信息。数据总线和控制总线可以彼此分离,使得既不彼此干扰也不彼此影响。数据总线可以联接到主机接口740、缓冲器控制电路750、ECC单元730、闪存接口760和缓冲存储器接口780。控制总线可以联接到主机接口740、处理器710、缓冲器控制电路750、闪存接口760和缓冲存储器接口780。在实施例中,存储器控制器1200可以不包括缓冲存储器接口780,缓冲存储器接口780可以被设置为单独部件,或者缓冲存储器接口780的功能可以分布在存储器控制器1200的一个或多个其它部件中。
缓冲存储器接口780可以在处理器710的控制下与缓冲存储器装置1300通信。缓冲存储器接口780可以通过信道将命令、地址和数据传输到缓冲存储器装置1300/从缓冲存储器装置1300接收命令、地址和数据。
存储器系统1000可以从主机系统2000接收写入命令、写入数据和逻辑地址。存储器控制器1200可以响应于写入命令来分配将存储写入数据的非易失性存储器装置1100的物理存储空间,即,存储块或页面。换言之,存储器控制器1200可以响应于写入命令,将与逻辑地址对应的物理地址映射到逻辑地址。此处,物理地址可以被称为“闪存物理地址”,使得它与主机物理地址区分开,并且闪存物理地址可以是与将存储从主机系统2000接收的写入数据的非易失性存储器装置1100的物理存储空间对应的地址。
存储器系统1000可以将上述逻辑地址与物理地址之间的映射数据,即逻辑-物理地址映射数据,存储在非易失性存储器装置1100的存储块中。
当存储器系统1000启动时,存储在非易失性存储器装置1100中的逻辑-物理地址映射数据可以被加载到缓冲存储器装置1300或存储器缓冲器720中。此外,当需要检查存储在非易失性存储器装置1100中的逻辑-物理地址映射数据时,存储器系统1000可以从非易失性存储器装置1100读取逻辑-物理地址映射数据,并且将逻辑-物理地址映射数据存储在缓冲存储器装置1300或存储器缓冲器720中。缓冲存储器装置1300和/或存储器缓冲器720可以被称为控制器缓冲存储器。
在实施例中,存储器系统1000可以被配置成使得当从主机系统2000接收到写入命令、写入数据和逻辑地址时,存储器控制器1200响应于写入命令来分配将存储写入数据的非易失性存储器装置1100的物理存储空间。即,存储器控制器1200可以响应于写入命令,将与逻辑地址对应的物理地址映射到逻辑地址。此时,存储器控制器1200可以将新生成的逻辑地址与物理地址之间的映射数据,即逻辑-物理地址映射数据更新在缓冲存储器装置1300或存储器缓冲器720中。
存储器系统1000可以从主机系统2000接收读取命令和逻辑地址。响应于读取命令,存储器系统1000可以根据存储在非易失性存储器装置1100中的逻辑-物理地址映射数据来检查与逻辑地址对应的物理地址,可以读取存储在与物理地址对应的存储器区域中的数据,并且可以将读取的数据输出到主机系统2000。
处理器710可以包括主机控制部分711、闪存控制部分712和闪存转换部分713。
主机控制部分711可以控制主机系统2000、主机接口740和控制器缓冲存储器之间的数据传输。在示例中,主机控制部分711可以控制将从主机系统2000输入的数据经由主机接口740缓冲在存储器缓冲器720或缓冲存储器装置1300中的操作。在示例中,主机控制部分711可以控制将缓冲在存储器缓冲器720或缓冲存储器装置1300中的数据经由主机接口740输出到主机系统2000的操作。
在示例中,主机控制部分711可以控制响应于写入命令,获取存储在主机系统2000的主机缓冲存储器(例如,图6的2100)中的数据并将获取的数据缓冲在控制器缓冲存储器中的操作。进一步地,主机控制部分711可以控制,将响应于写入命令缓冲在控制器缓冲存储器中的数据输出到主机系统2000的主机缓冲存储器(例如,图6的2100)的操作。
闪存控制部分712可以控制在写入操作期间,将缓冲在存储器缓冲器720或缓冲存储器装置1300中的数据传输到非易失性存储器装置1100并将数据编程到非易失性存储器装置1100的操作。在示例中,闪存控制部分712可以控制将在读取操作期间从非易失性存储器装置1100读取并输出的数据缓冲在存储器缓冲器720或缓冲存储器装置1300中的操作。
闪存转换部分713可以在数据写入操作期间将与从主机系统2000输入的逻辑地址对应的物理地址映射到逻辑地址。此处,数据可以被写入到与映射的物理地址对应的非易失性存储器装置1100的存储空间。闪存转换部分713可以在数据读取操作期间,检查映射到从主机系统2000输入的逻辑地址的物理地址并且将物理地址传输到闪存控制部分712。闪存控制部分712可以从与物理地址对应的非易失性存储器装置1100的存储空间读取数据。指示非易失性存储器装置1100的存储空间的物理地址可以被称为“闪存物理地址”,使得它与主机物理地址区分开。
图3是示出根据本公开的实施例的存储器系统的示图。图3示出包括存储器控制器1200和多个非易失性存储器装置1100的存储器系统1000,其中多个非易失性存储器装置1100通过多个信道CH1至CHk联接到存储器控制器1200。这种存储器系统1000可以被称为固态驱动器(SSD)。
参照图3,存储器控制器1200可以通过多个信道CH1至CHk与多个非易失性存储器装置1100通信。存储器控制器1200可以包括多个信道接口1201,并且信道CH1至CHk中的每个可以联接到多个信道接口1201中的对应信道接口。在示例中,第一信道CH1可以联接到第一信道接口1201,第二信道CH2可以联接到第二信道接口1201,并且第k信道CHk可以联接到第k信道接口1201。多个信道CH1至CHk中的每个可以联接到一个或多个非易失性存储器装置1100。进一步地,联接到不同信道的非易失性存储器装置1100可以彼此独立地操作。换言之,联接到第一信道CH1的非易失性存储器装置1100和联接到第二信道CH2的非易失性存储器装置1100可以彼此独立地操作。在实施例中,存储器控制器1200可以在通过第一信道CH1与联接到第一信道CH1的非易失性存储器装置1100交换数据或命令的同时,并行地通过第二信道CH2与联接到第二信道CH2的非易失性存储器装置1100交换数据或命令。
多个信道CH1至CHk中的每个可以联接到多个非易失性存储器装置1100。此处,联接到一个信道的多个非易失性存储器装置1100可以分别配置多个不同的路径(way)。在示例中,N个非易失性存储器装置1100可以联接到一个信道,并且N个非易失性存储器装置1100中的每个可以配置不同的路径。即,第一至第N非易失性存储器装置1100可以联接到第一信道CH1,其中第一非易失性存储器装置1100可以配置第一路径Way1,第二非易失性存储器装置1100可以配置第二路径Way2,并且第N非易失性存储器装置1100可以配置第N路径WayN。在另一实施例中,不同于图2中所示的,两个或更多个非易失性存储器装置1100可以配置单个路径。
由于联接到CH1的第一至第N非易失性存储器装置1100共用CH1,因此联接到CH1的第一至第N非易失性存储器装置1100可以与存储器控制器1200顺序地交换数据或命令,而不是与存储器控制器1200同时并行地交换数据或命令。换言之,当存储器控制器1200正在通过CH1将数据传输到CH1的配置路径Way1的第一非易失性存储器装置1100时,CH1的配置路径Way2至WayN的第二至第N非易失性存储器装置1100不可通过CH1与存储器控制器1200交换数据或命令。即,当共用CH1的非易失性存储器装置1100中的任何一个非易失性存储器装置占用CH1时,联接到CH1的剩余的非易失性存储器装置1100不可使用CH1。
然而,CH1的配置Way1的第一非易失性存储器装置1100和CH2的配置Way1的第一非易失性存储器装置1100可以独立地与存储器控制器1200通信。换言之,当存储器控制器1200通过CH1和第一信道接口1201与CH1的配置Way1的第一非易失性存储器装置1100交换数据时,存储器控制器1200可以通过CH2和第二信道接口1201与CH2的配置Way1的第一非易失性存储器装置1100交换数据。
图4是示出图1的非易失性存储器装置的示图。
参照图4,非易失性存储器装置1100可以包括存储数据的存储器单元阵列100。非易失性存储器装置1100还可以包括外围电路200,外围电路200执行用于将数据存储在存储器单元阵列100中的编程操作、用于输出所存储的数据的读取操作以及用于擦除所存储的数据的擦除操作。非易失性存储器装置1100可以包括控制逻辑300,控制逻辑300在存储器控制器(例如,图1的1200)的控制下控制外围电路200。
存储器单元阵列100可以包括多个存储块BLK1至BLKm 110(其中m是正整数)。局部线(local line)LL和位线BL1至BLn(其中n是正整数)可以联接到存储块BLK1至BLKm 110中的每个。例如,局部线LL可以包括第一选择线、第二选择线以及布置在第一选择线与第二选择线之间的多个字线。进一步地,局部线LL可以包括布置在第一选择线与字线之间以及第二选择线与字线之间的虚设线(dummy line)。此处,第一选择线可以是源极选择线,并且第二选择线可以是漏极选择线。例如,局部线LL可以包括字线、漏极选择线和源极选择线以及源极线。例如,局部线LL可以进一步包括虚设线。例如,局部线LL可以进一步包括管线(pipeline)。局部线LL可以分别联接到存储块BLK1至BLKm110,并且位线BL1到BLn可以共同联接到存储块BLK1到BLKm 110。存储块BLK1至BLKm 110可以被实施为二维(2D)结构或三维(3D)结构。例如,具有2D结构的存储块110中的存储器单元可以被水平地布置在衬底上。例如,具有3D结构的存储块110中的存储器单元可以被垂直地堆叠在衬底上。
外围电路200可以被配置为在控制逻辑300的控制下对选择的存储块110执行编程操作、读取操作或擦除操作。例如,在控制逻辑300的控制下,外围电路200可以将验证电压和通过电压供给到第一选择线、第二选择线和字线,可以选择性地使第一选择线、第二选择线和字线放电,并且可以验证联接到从字线中选择的字线的存储器单元。例如,外围电路200可以包括电压生成电路210、行解码器220、页面缓冲器组230、列解码器240、输入/输出电路250和感测电路260。
电压生成电路210可以响应于操作信号OP_CMD而生成用于编程操作、读取操作和擦除操作的各种操作电压Vop。进一步地,电压生成电路210可以响应于操作信号OP_CMD而选择性地使局部线LL放电。例如,电压生成电路210可以在控制逻辑300的控制下生成编程电压、验证电压、通过电压、导通电压、读取电压、擦除电压、源极线电压等。
行解码器220可以响应于行地址RADD而将操作电压Vop传递到联接到选择的存储块110的局部线LL。
页面缓冲器组230可以包括联接到位线BL1至BLn的多个页面缓冲器PB1至PBn231。页面缓冲器PB1至PBn 231可以响应于页面缓冲器控制信号PBSIGNALS而被操作。例如,在读取操作或验证操作期间,页面缓冲器PB1至PBn 231可以临时存储通过位线BL1至BLn接收的数据,或者可以感测位线BL1至BLn的电压或电流。
列解码器240可以响应于列地址CADD在输入/输出电路250与页面缓冲器组230之间传输数据。例如,列解码器240可以通过数据线DL与页面缓冲器231交换数据,或者可以通过列线CL与输入/输出电路250交换数据。
输入/输出电路250可以将从存储器控制器(例如,图1的1200)接收的命令CMD和地址ADD传输到控制逻辑300,或者可以与列解码器240交换数据DATA。
在读取操作或验证操作期间,感测电路260可以响应于使能位VRY_BIT<#>而生成参考电流,并且可以通过将从页面缓冲器组230接收的感测电压VPB与基于参考电流生成的参考电压进行比较来输出通过信号PASS或失败信号FAIL。
控制逻辑300可以响应于命令CMD和地址ADD,通过输出操作信号OP_CMD、行地址RADD、页面缓冲器控制信号PBSIGNALS、使能位VRY_BIT<#>和列地址CADD来控制外围电路200。进一步地,控制逻辑300可以响应于通过信号PASS或失败信号FAIL来确定验证操作是通过还是失败。
在非易失性存储器装置1100的操作中,每个存储块110可以是擦除操作的单位。即,一个存储块110中的多个存储器单元可以被同时擦除,而不是被选择性地擦除。
图5是示出图4的存储块的示图。
参照图5,存储块110可以被配置成使得并行布置的多个字线被联接在第一选择线与第二选择线之间。此处,第一选择线可以是源极选择线SSL,并且第二选择线可以是漏极选择线DSL。详细地,存储块110可以包括联接在位线BL1至BLn与源极线SL之间的多个串ST。位线BL1至BLn可以分别联接到串ST,并且源极线可以共同联接到串ST。由于串ST可以具有相同的配置,因此将通过示例的方式来详细描述联接到第一位线BL1的串ST。
串ST可以包括串联连接在源极线SL和第一位线BL1之间的源极选择晶体管SST、多个存储器单元F1至F16以及漏极选择晶体管DST。单个串ST可以包括一个或多个源极选择晶体管SST和漏极选择晶体管DST,并且可以包括比如图所示的存储器单元F1至F16更多的存储器单元。
源极选择晶体管SST的源极可以联接到源极线SL,并且漏极选择晶体管DST的漏极可以联接到第一位线BL1。存储器单元F1至F16可以串联地连接在源极选择晶体管SST和漏极选择晶体管DST之间。不同串ST中的源极选择晶体管SST的栅极可以联接到源极选择线SSL,漏极选择晶体管DST的栅极可以联接到漏极选择线DSL,并且存储器单元F1至F16的栅极可以联接到多个字线WL1至WL16。不同串ST中联接到相同字线的一组存储器单元可以被称为“物理页面PPG”。因此,数量与字线WL1至WL16的数量相同的物理页面PPG可以被包括在存储块110中。
一个存储器单元(MC)可以存储一位数据。该存储器单元通常被称为单层单元(SLC)。在该情况下,一个物理页面PPG可以存储与一个逻辑页面LPG对应的数据。与一个逻辑页面LPG对应的数据可以包括数量与一个物理页面PPG中的单元的数量相同的数据位。进一步地,一个存储器单元(MC)可以存储两位或更多位数据。该存储器单元通常被称为多层单元(MLC)。此处,一个物理页面PPG可以存储与两个或更多个逻辑页面LPG对应的数据。
当存储器单元存储两位数据时,一个物理页面PPG可以包括两个页面PG。此处,一个页面PG可以存储与一个逻辑页面LPG对应的数据。一个存储器单元可以根据数据而具有多个阈值电压中的任何一个阈值电压,并且一个物理页面PPG中的多个页面PG可以由阈值电压差表示。
一个物理页面PPG中的多个存储器单元可以同时被编程。即,非易失性存储器装置1100可以对每个物理页面PPG执行编程操作。一个存储块中的多个存储器单元可以被同时擦除。即,非易失性存储器装置1100可以对每个存储块110执行擦除操作。在实施例中,为了更新存储在一个存储块110中的数据的一部分,可以读取存储在存储块110中的全部数据,并且可以改变所读取的数据中待被更新的一部分,此后,可以将全部数据编程到另一存储块110。
图6是示出根据本公开的实施例的存储系统的示图。
参照图6,存储系统4000可以包括主机系统2000和闪存阵列3000。主机系统2000可以包括主机缓冲存储器2100和主机控制器2200。进一步地,闪存阵列3000可以包括多个存储器系统1000。存储器系统1000可以是SSD。
闪存阵列3000可以包括第一存储器系统1000_1至第n存储器系统1000_n(其中n是2或更大的自然数),并且第一存储器系统1000_1至第n存储器系统1000_n中的每个可以是用于存储用户数据的用户SSD。并且,闪存阵列3000可以包括第a存储器系统1000_a和第b存储器系统1000_b,并且第a存储器系统1000_a和第b存储器系统1000_b中的每个可以是用于存储元数据的元SSD。在实施例中,闪存阵列3000可以包括第a存储器系统1000_a和第b存储器系统1000_b中的一个,即,仅包括单个元SSD。
用户SSD 1000_1至1000_n中的每个可以从主机系统2000的主机控制器2200接收写入命令、逻辑地址和写入数据,并且可以响应于写入命令将逻辑地址映射到物理地址。进一步地,用户SSD 1000_1至1000_n中的每个可以将逻辑地址与物理地址之间的映射数据临时存储在控制器缓冲存储器中。逻辑地址与物理地址之间的映射数据可以被称为逻辑-物理地址映射数据。在示例中,基于响应于写入命令而新生成的逻辑地址与物理地址之间的映射数据,用户SSD 1000_1至1000_n中的每个可以更新存储在控制器缓冲存储器中的逻辑-物理地址映射数据。
用户SSD 1000_1至1000_n中的每个可以首先将从主机系统2000接收的写入数据临时存储在控制器缓冲存储器中。此后,用户SSD 1000_1至1000_n中的每个可以基于逻辑-物理地址映射数据将临时存储在控制器缓冲存储器中的写入数据编程到非易失性存储器装置1100。即,用户SSD 1000_1至1000_n中的每个可以将写入数据存储在与物理地址对应的非易失性存储器装置1100的存储空间中。写入数据可以是存储系统4000从用户接收的用户数据。换言之,用户数据可以由存储系统4000外部的源提供。
在开始写入操作之前,用户SSD 1000_1至1000_n中的每个可以获取存储在主机系统2000的主机缓冲存储器2100中的写入数据,并且可以将获取的数据临时存储在控制器缓冲存储器中。在示例中,闪存阵列3000和主机系统2000可以通过非易失性存储器快速(NVMe)接口方法彼此交换数据。在该情况下,用户SSD 1000_1至1000_n中的每个可以直接访问主机系统2000的主机缓冲存储器2100,而不需要单独的输入/输出(IO)协议。在示例中,主机系统2000可以向用户SSD 1000_1至1000_n中的每个提供主机缓冲存储器2100中存储写入数据的空间的位置信息。此外,当从主机系统2000输入写入命令时,用户SSD 1000_1至1000_n中的每个可以基于位置信息访问主机系统2000的主机缓冲存储器2100,获取写入数据,并且将获取的数据临时存储在控制器缓冲存储器中。
用户SSD 1000_1至1000_n中的每个可以从主机系统2000的主机控制器2200接收读取命令和逻辑地址。响应于读取命令,用户SSD 1000_1至1000_n中的每个可以基于临时存储在控制器缓冲存储器中的逻辑-物理地址映射数据,检查映射到从主机系统2000输入的逻辑地址的物理地址。并且,用户SSD 1000_1至1000_n中的每个可以读取存储在与物理地址对应的非易失性存储器装置1100的存储空间中的读取数据,并且可以将读取数据临时存储在控制器缓冲存储器中。此后,用户SSD 1000_1至1000_n中的每个可以将临时存储在控制器缓冲存储器中的读取数据输出到主机系统2000。
主机系统2000的主机控制器2200可以获取临时存储在用户SSD 1000_1至1000_n中的每个的控制器缓冲存储器中的读取数据,并且可以将获取的数据临时存储在主机缓冲存储器2100中。在示例中,闪存阵列3000和主机系统2000可以通过非易失性存储器快速(NVMe)接口方法彼此通信。在该情况下,主机系统2000可以直接访问用户SSD 1000_1至1000_n中的每个的控制器缓冲存储器,而不需要单独的IO协议。因此,主机系统2000可以从用户SSD 1000_1至1000_n中的每个接收读取完成信号,该读取完成信号指示读取数据已经被存储在控制器缓冲存储器中。进一步地,当接收到读取完成信号时,主机系统2000可以访问用户SSD 1000_1至1000_n中的每个的控制器缓冲存储器,获取读取数据,并且将获取的数据加载到主机缓冲存储器2100中。
元SSD 1000_a和1000_b可以存储用于存储系统4000的内部操作的元数据。在示例中,元SSD 1000_a和1000_b可以存储用于第一用户SSD 1000_1至第n用户SSD 1000_n的内部操作的元数据。在示例中,元数据可以包括第一用户SSD 1000_1至第n用户SSD 1000_n中的每个的逻辑-物理地址映射数据。换言之,与用户数据不同,元数据可以由存储系统4000通过存储系统4000的内部操作生成。在示例中,元SSD 1000_a和1000_b中的每个可以是用于存储元数据的专用SSD。进一步地,第一用户SSD 1000_1至第n用户SSD 1000_n可以使用存储在元SSD 1000_a和1000_b中的元数据,而无需将用于第一用户SSD 1000_1至第n用户SSD 1000_n的各个内部操作的元数据单独存储在设置在第一用户SSD 1000_1至第n用户SSD 1000_n中的非易失性存储器装置1100中。
元SSD 1000_a和1000_b可以将存储系统4000的操作所需的元数据存储在元SSD中的各自非易失性存储器装置1100中。在示例中,元数据可以包括第一用户SSD 1000_1至第n用户SSD 1000_n的多条逻辑-物理地址映射数据,即,第一条逻辑-物理地址映射数据至第n条逻辑-物理地址映射数据。
当存储系统4000通电时,主机系统2000的主机控制器2200可以将元数据的读取命令提供给元SSD 1000_a和1000_b。元SSD 1000_a和1000_b的存储器控制器1200中的每个可以响应于读取命令来读取存储在对应的非易失性存储器装置1100中的元数据,并且可以将元数据临时存储在控制器缓冲存储器中。此后,元SSD 1000_a和1000_b可以将临时存储在元SSD 1000_a和1000_b的各自控制器缓冲存储器中的元数据输出到主机系统2000,主机系统2000可以将这些元数据临时存储在主机缓冲存储器2100中。
在示例中,元SSD 1000_a和1000_b中的每个可以从对应的非易失性存储器装置1100读取元数据,将读取的元数据临时存储在控制器缓冲存储器中,并且此后将读取完成信号传输到主机系统2000。响应于读取完成信号,主机控制器2200可以直接访问元SSD1000_a和1000_b中的每个的控制器缓冲存储器,获取临时存储的元数据,并且然后将获取的元数据临时存储在主机缓冲存储器2100中。
主机控制器2200可以输入写入命令和与各个用户SSD(即,用户SSD 1000_1至1000_n)对应的多条元数据。详细地,主机控制器2200可以将写入命令和与第一用户SSD1000_1对应的第一逻辑-物理地址映射数据输入到第一用户SSD 1000_1。第一用户SSD1000_1可以响应于写入命令将第一逻辑-物理地址映射数据临时存储在第一用户SSD1000_1的控制器缓冲存储器中。进一步地,主机控制器2200可以将写入命令和与第二用户SSD 1000_2对应的第二逻辑-物理地址映射数据输入到第二用户SSD 1000_2。第二用户SSD1000_2可以响应于写入命令将第二逻辑-物理地址映射数据临时存储在第二用户SSD1000_2的控制器缓冲存储器中。并且,主机控制器2200可以将写入命令和与第n用户SSD1000_n对应的第n逻辑-物理地址映射数据输入到第n用户SSD 1000_n。第n用户SSD 1000_n可以响应于写入命令将第n逻辑-物理地址映射数据临时存储在第n用户SSD 1000_n的控制器缓冲存储器中。
上述对第一用户SSD 1000_1至第n用户SSD 1000_n的元数据写入操作可以并行执行或者可以顺序执行。
在实施例中,第一用户SSD 1000_1至第n用户SSD 1000_n中的每个可以响应于写入命令,直接访问主机缓冲存储器2100,获取临时存储的元数据,并且然后将获取的元数据加载到对应的控制器缓冲存储器中。即,主机控制器2200可以将存储分别与第一至第n用户SSD对应的第一条逻辑-物理地址映射数据至第n条逻辑-物理地址映射数据的主机缓冲存储器2100中的位置通知给第一用户SSD 1000_1至第n用户SSD 1000_n。第一用户SSD 1000_1至第n用户SSD 1000_n可以基于位置信息直接访问主机缓冲存储器2100,获取对应的逻辑-物理地址映射数据,并且将获取的数据加载到各自控制器缓冲存储器中。
例如,用于写入元数据的写入命令可以与用于写入用户数据的写入命令不同。响应于用于写入用户数据的写入命令,用户SSD 1000_1至1000_n可以将用户数据临时存储在控制器缓冲存储器中,并且此后将用户数据编程到非易失性存储器装置1100。相反地,响应于用于写入元数据的写入命令,用户SSD 1000_1至1000_n可以将元数据临时存储在控制器缓冲存储器中,并且不将元数据编程到非易失性存储器装置1100。
主机控制器2200可以读取临时存储在用户SSD 1000_1至1000_n的各自控制器缓冲存储器中的元数据,并且可以将读取的元数据临时存储在主机缓冲存储器2100中。在实施例中,主机控制器2200可以将读取命令提供给第一用户SSD 1000_1,并且第一用户SSD1000_1可以响应于读取命令,将临时存储在第一用户SSD 1000_1的控制器缓冲存储器中的第一逻辑-物理地址映射数据输出到主机系统2000。主机系统2000可以将从第一用户SSD1000_1输出的第一逻辑-物理地址映射数据临时存储在主机缓冲存储器2100中。进一步地,主机控制器2200可以将读取命令提供给第二用户SSD 1000_2,并且第二用户SSD 1000_2可以响应于读取命令,将临时存储在第二用户SSD 1000_2的控制器缓冲存储器中的第二逻辑-物理地址映射数据输出到主机系统2000。主机系统2000可以将从第二用户SSD 1000_2输出的第二逻辑-物理地址映射数据临时存储在主机缓冲存储器2100中。并且,主机控制器2200可以将读取命令提供给第n用户SSD 1000_n,并且第n用户SSD 1000_n可以响应于读取命令,将临时存储在第n用户SSD 1000_n的控制器缓冲存储器中的第n逻辑-物理地址映射数据输出到主机系统2000。主机系统2000可以将从第n用户SSD 1000_n输出的第n逻辑-物理地址映射数据临时存储在主机缓冲存储器2100中。
上述读取第一条逻辑-物理地址映射数据至第n条逻辑-物理地址映射数据的操作可以并行执行,或者可选地可以顺序执行。
在示例中,用于读取元数据的读取命令可以与用于读取用户数据的读取命令不同。响应于用于读取用户数据的读取命令,用户SSD 1000_1至1000_n可以读取临时存储在用户SSD 1000_1至1000_n的非易失性存储器装置1100中的用户数据,可以将读取的用户数据临时存储在控制器缓冲存储器中,并且然后可以将用户数据输出到主机系统2000。相反地,响应于用于读取元数据的读取命令,用户SSD 1000_1至1000_n可以将临时存储在控制器缓冲存储器中的元数据直接输出到主机系统2000,而不对非易失性存储器装置1100执行单独的读取操作。
在示例中,主机控制器2200可以直接访问用户SSD 1000_1至1000_n的各自控制器缓冲存储器,可以获取存储在控制器缓冲存储器中的元数据,并且可以将获取的元数据加载到主机缓冲存储器2100中。在实施例中,闪存阵列3000和主机系统2000可以通过NVMe接口方法彼此通信。在该情况下,主机系统2000可以直接访问用户SSD 1000_1至1000_n的控制器缓冲存储器,而无需单独的IO协议。
主机系统2000可以执行将临时存储在主机缓冲存储器2100中的元数据写入到第a元SSD 1000_a和第b元SSD 1000_b的操作。主机系统2000可以将写入命令和临时存储在主机缓冲存储器2100中的元数据输入到第a元SSD 1000_a和第b元SSD 1000_b。第a元SSD1000_a和第b元SSD 1000_b可以响应于写入命令,将元数据临时存储在第a元SSD 1000_a和第b元SSD 1000_b的控制器缓冲存储器中,并且此后将临时存储在控制器缓冲存储器中的元数据编程到第a元SSD 1000_a和第b元SSD 1000_b的非易失性存储器装置1100。
在示例中,主机系统2000可以将写入命令和关于主机缓冲存储器2100中存储元数据的位置的信息输入到第a元SSD 1000_a和第b元SSD 1000_b。第a元SSD 1000_a和第b元SSD 1000_b可以基于位置信息获取存储在主机缓冲存储器2100中的元数据,并且将获取的元数据加载到控制器缓冲存储器中。此后,第a元SSD 1000_a和第b元SSD 1000_b可以将加载到控制器缓冲存储器中的元数据编程到非易失性存储器装置1100。
如上所述,除了可以仅用于存储用户数据的多个SSD之外,存储系统4000可以包括用于存储元数据的单独的SSD。因此,用于存储用户数据的多个SSD可以不执行存储元数据的单独操作,因此可以有效地操作存储系统4000。
图7是示出根据本公开的实施例的启动顺序的流程图。进一步地,图8是示出根据本公开的实施例的启动顺序的示图。
参照图7和图8,当存储系统4000通电时,存储系统4000可以执行启动操作。当启动操作开始时,在步骤S701中,主机控制器2200可以将用于读取第一存储器系统1000_1至第n存储器系统1000_n的多条地址映射数据的读取命令提供给第a存储器系统1000_a和第b存储器系统1000_b。第a存储器系统1000_a和第b存储器系统1000_b可以是用于存储元数据的元SSD,并且第一存储器系统1000_1至第n存储器系统1000_n可以是用于存储用户数据的用户SSD。
在步骤S702中,第a存储器系统1000_a和第b存储器系统1000_b的各自存储器控制器1200可以读取存储在分别联接到存储器控制器1200的非易失性存储器装置1100中的第一存储器系统1000_1至第n存储器系统1000_n的多条地址映射数据(即,第一条地址映射数据至第n条地址映射数据),并且可以将读取的地址映射数据缓冲在控制器缓冲存储器中。在示例中,第一条地址映射数据至第n条地址映射数据的部分可以被存储在第a存储器系统1000_a中,并且第一条地址映射数据至第n条地址映射数据的剩余部分可以被存储在第b存储器系统1000_b中。此处,主机控制器2200首先可以读取存储在第a存储器系统1000_a中的第一条地址映射数据至第n条地址映射数据的部分,并且其次可以读取存储在第b存储器系统1000_b中的第一条地址映射数据至第n条地址映射数据的剩余部分。
在步骤S703中,主机控制器2200可以获取缓冲在第a存储器系统1000_a和第b存储器系统1000_b的控制器缓冲存储器中的第一存储器系统1000_1至第n存储器系统1000_n的第一条地址映射数据至第n条地址映射数据,并且可以将获取的地址映射数据缓冲在主机缓冲存储器2100中。
在示例中,主机控制器2200首先可以访问第a存储器系统1000_a的控制器缓冲存储器并获取所缓冲的第一条地址映射数据至第n条地址映射数据的部分,并且其次可以访问第b存储器系统1000_b的控制器缓冲存储器并获取所缓冲的第一条地址映射数据至第n条地址映射数据的剩余部分。
主机控制器2200可以将从第a存储器系统1000_a的控制器缓冲存储器获取的第一条地址映射数据至第n条地址映射数据的部分缓冲在主机缓冲存储器2100中,并且可以将从第b存储器系统1000_b的控制器缓冲存储器获取的第一条地址映射数据至第n条地址映射数据的剩余部分缓冲在主机缓冲存储器2100中。
在步骤S704中,主机控制器2200可以将缓冲在主机缓冲存储器2100中的第一存储器系统1000_1至第n存储器系统1000_n的第一条地址映射数据至第n条地址映射数据分别输出到第一存储器系统1000_1至第n存储器系统1000_n。步骤S704中的这种输出可以顺序地或并行地执行。
在步骤S705中,第一存储器系统1000_1至第n存储器系统1000_n中的每个可以将输入的地址映射数据缓冲在对应的控制器缓冲存储器中。换言之,第一存储器系统1000_1可以接收从主机系统2000输出的第一地址映射数据,并且将第一地址映射数据缓冲在第一存储器系统1000_1的控制器缓冲存储器中,并且第二存储器系统1000_2可以接收从主机系统2000输出的第二地址映射数据,并且将第二地址映射数据缓冲在第二存储器系统1000_2的控制器缓冲存储器中。进一步地,第n存储器系统1000_n可以接收从主机系统2000输出的第n地址映射数据,并且将第n地址映射数据缓冲在第n存储器系统1000_n的控制器缓冲存储器中。
在示例中,第一存储器系统1000_1至第n存储器系统1000_n可以访问主机缓冲存储器2100,分别获取第一条地址映射数据至第n条地址映射数据,并且将第一条地址映射数据至第n条地址映射数据存储在各自控制器缓冲存储器中。详细地,主机控制器2200可以将存储第一地址映射数据的主机缓冲存储器2100中的位置通知给第一存储器系统1000_1,并且第一存储器系统1000_1可以基于位置信息访问主机缓冲存储器2100,获取第一地址映射数据,并且将第一地址映射数据缓冲在控制器缓冲存储器中。另外,主机控制器2200可以将存储第二地址映射数据的主机缓冲存储器2100中的位置通知给第二存储器系统1000_2,并且第二存储器系统1000_2可以基于位置信息访问主机缓冲存储器2100,获取第二地址映射数据,并且将第二地址映射数据缓冲在控制器缓冲存储器中。并且,主机控制器2200可以将存储第n地址映射数据的主机缓冲存储器2100中的位置通知给第n存储器系统1000_n,并且第n存储器系统1000_n可以基于位置信息访问主机缓冲存储器2100,获取第n地址映射数据,并且将第n地址映射数据缓冲在控制器缓冲存储器中。
通过上述操作,存储系统4000可以完成启动操作。第一存储器系统1000_1至第n存储器系统1000_n中的每个可以基于缓冲在控制器缓冲存储器中的地址映射数据来执行写入操作和读取操作。
主机缓冲存储器2100可以包括多个元缓冲存储器2110,即,第一元缓冲存储器2110_1至第n元缓冲存储器2110_n。当执行启动操作时,第一存储器系统1000_1至第n存储器系统1000_n的第一条地址映射数据至第n条地址映射数据可以分别从第a存储器系统1000_a和第b存储器系统1000_b输出并输入到主机系统2000。此处,与第一存储器系统1000_1对应的第一地址映射数据可以被存储在第一元缓冲存储器2110_1中,与第二存储器系统1000_2对应的第二地址映射数据可以被存储在第二元缓冲存储器2110_2中,并且与第n存储器系统1000_n对应的第n地址映射数据可以被存储在第n元缓冲存储器2110_n中。
主机系统2000可以将存储在第一元缓冲存储器2110_1中的第一地址映射数据输出到第一存储器系统1000_1,该第一存储器系统1000_1可以该第一地址映射数据缓冲在第一存储器系统1000_1的控制器缓冲存储器中。另外,主机系统2000可以将存储在第二元缓冲存储器2110_2中的第二地址映射数据输出到第二存储器系统1000_2,该第二存储器系统1000_2可以将该第二地址映射数据缓冲在第二存储器系统1000_2的控制器缓冲存储器中。并且,主机系统2000可以将存储在第n元缓冲存储器2110_n中的第n地址映射数据输出到第n存储器系统1000_n,该第n存储器系统1000_n可以将该第n地址映射数据缓冲在第n存储器系统1000_n的控制器缓冲存储器中。上述一系列操作可以顺序地执行。
在实施例中,主机系统2000可以将主机缓冲存储器2100中存储第一地址映射数据的第一元缓冲存储器2110_1的位置信息通知给第一存储器系统1000_1。第一存储器系统1000_1可以基于位置信息获取存储在第一元缓冲存储器2110_1中的第一地址映射数据,并且可以将第一地址映射数据缓冲在控制器缓冲存储器中。进一步地,主机系统2000可以将主机缓冲存储器2100中存储第二地址映射数据的第二元缓冲存储器2110_2的位置信息通知给第二存储器系统1000_2。第二存储器系统1000_2可以基于位置信息获取存储在第二元缓冲存储器2110_2中的第二地址映射数据,并且可以将第二地址映射数据缓冲在控制器缓冲存储器中。并且,主机系统2000可以将主机缓冲存储器2100中存储第n地址映射数据的第n元缓冲存储器2110_n的位置信息通知给第n存储器系统1000_n。第n存储器系统1000_n可以基于位置信息获取存储在第n元缓冲存储器2110_n中的第n地址映射数据,并且可以将第n地址映射数据缓冲在控制器缓冲存储器中。上述一系列操作可以顺序地执行。
图9是示出根据本公开的实施例的对地址映射数据的刷新操作的流程图。进一步地,图10是示出根据本公开的实施例的对地址映射数据的刷新操作的示图。
参照图9和图10,在步骤S901中,主机控制器2200可以将数据写入命令提供给第一存储器系统1000_1至第n存储器系统1000_n中的一个或多个。
已经接收到写入命令的存储器系统,例如,第n存储器系统1000_n,可以执行数据写入操作。此处,在步骤S902中,第n存储器系统1000_n可以更新缓冲在第n存储器系统1000_n的控制器缓冲存储器中的地址映射数据。
换言之,主机控制器2200可以将写入命令和逻辑地址传输到第n存储器系统1000_n,并且第n存储器系统1000_n的存储器控制器1200可以将物理地址映射到逻辑地址,并且可以基于逻辑地址与物理地址之间的映射数据来更新缓冲在控制器缓冲存储器中的地址映射数据。进一步地,第n存储器系统1000_n可以基于物理地址将写入数据编程到非易失性存储器装置1100。第一存储器系统1000_1至第n存储器系统1000_n可以是用于存储用户数据的用户SSD。
当更新第一存储器系统1000_1至第n存储器系统1000_n的多条地址映射数据时,在步骤S903中,第一存储器系统1000_1至第n存储器系统1000_n中的一个或多个中可能满足地址映射数据刷新条件。在实施例中,当存储在控制器缓冲存储器中的地址映射数据的更新程度大于或等于设定水平或预定水平时,可以满足地址映射数据刷新条件。在示例中,当存储在第a存储器系统1000_a的非易失性存储器装置1100中的与第n存储器系统1000_n对应的第n地址映射数据与存储在第n存储器系统1000_n的控制器缓冲存储器中的第n地址映射数据之间的差异大于或等于设定水平或预定水平时,第n存储器系统1000_n可以满足地址映射数据刷新条件。
当某个存储器系统中,例如,第n存储器系统1000_n中满足地址映射数据刷新条件时,在步骤S904中,第n存储器系统1000_n可以将满足地址映射数据刷新条件通知给主机控制器2200。
在步骤S905中,主机控制器2200可以读取存储在满足地址映射数据刷新条件的第n存储器系统1000_n的控制器缓冲存储器中的第n地址映射数据,并且可以将第n地址映射数据缓冲在第n元缓冲存储器2110_n中。
此后,主机控制器2200可以输出缓冲在第n元缓冲存储器2110_n中的、满足地址映射数据刷新条件的第n存储器系统1000_n的第n地址映射数据。在步骤S906中,第a存储器系统1000_a或第b存储器系统1000_b可以将从主机缓冲存储器2100输出的第n地址映射数据缓冲在控制器缓冲存储器中。第a存储器系统1000_a或第b存储器系统1000_b可以是用于存储元数据的元SSD。
在实施例中,主机控制器2200可以将缓冲第n地址映射数据的第n元缓冲存储器2110_n的位置通知给第a存储器系统1000_a,并且第a存储器系统1000_a可以基于位置信息从第n元缓冲存储器2110_n获取第n地址映射数据,并将获取的数据缓冲在控制器缓冲存储器中。
在步骤S907中,主机控制器2200可以将命令输入到第a存储器系统1000_a或第b存储器系统1000_b,该命令将缓冲在控制器缓冲存储器中的地址映射数据刷新到非易失性存储器装置1100。
在步骤S908中,第a存储器系统1000_a或第b存储器系统1000_b的存储器控制器1200可以响应于刷新命令,将缓冲在控制器缓冲存储器中的地址映射数据刷新到存储器系统1000_a或1000_b中的非易失性存储器装置1100。
在实施例中,主机控制器2200可以将写入命令和缓冲第n地址映射数据的第n元缓冲存储器2110_n的位置输入到第a存储器系统1000_a。第a存储器系统1000_a可以响应于写入命令和位置信息从第n元缓冲存储器2110_n获取第n地址映射数据,将第n地址映射数据缓冲在控制器缓冲存储器中,并且然后将缓冲在控制器缓冲存储器中的第n地址映射数据编程到第a存储器系统1000_a中的非易失性存储器装置1100中。
如在上述操作的情况下,当闪存阵列3000的多个用户SSD中的任何一个满足元数据刷新条件时,存储系统4000可以读取存储在满足元数据刷新条件的用户SSD的控制器缓冲存储器中的元数据,并且可以将元数据刷新到元SSD。
图11是示出根据本公开的实施例的对地址映射数据的刷新操作的流程图。
参照图11,在步骤S1101中,主机控制器2200可以将数据写入命令提供给第一存储器系统1000_1至第n存储器系统1000_n中的一个或多个。
已经接收到写入命令的存储器系统,例如,第n存储器系统1000_n,可以执行数据写入操作。此处,在步骤S1102中,第n存储器系统1000_n可以更新缓冲在第n存储器系统1000_n的控制器缓冲存储器中的地址映射数据。
换言之,主机控制器2200可以将写入命令和逻辑地址传输到第n存储器系统1000_n,并且第n存储器系统1000_n的存储器控制器1200可以将物理地址映射到逻辑地址,并且可以基于逻辑地址与物理地址之间的映射数据来更新缓冲在控制器缓冲存储器中的地址映射数据。进一步地,第n存储器系统1000_n可以基于物理地址将写入数据编程到非易失性存储器装置1100。
当更新第一存储器系统1000_1至第n存储器系统1000_n的多条地址映射数据时,在步骤S1103中,第一存储器系统1000_1至第n存储器系统1000_n中的一个或多个中可能满足地址映射数据刷新条件。在实施例中,当地址映射数据的更新程度大于或等于设定水平或预定水平时,可以满足地址映射数据刷新条件。
当某个存储器系统中,例如,第n存储器系统1000_n中满足地址映射数据刷新条件时,在步骤S1104中,第n存储器系统1000_n可以将满足地址映射数据刷新条件通知给主机控制器2200。
在步骤S1105中,主机控制器2200可以顺序地读取存储在第一存储器系统1000_1至第n存储器系统1000_n的各自控制器缓冲存储器中的多条地址映射数据,并且可以将读取的地址映射数据缓冲在主机缓冲存储器2100中。在实施例中,主机控制器2200可以将读取命令顺序地输入到第一存储器系统1000_1至第n存储器系统1000_n,并且可以将从第一存储器系统1000_1至第n存储器系统1000_n顺序地输出的第一条地址映射数据至第n条地址映射数据分别缓冲在第一元缓冲存储器2110_1至第n元缓冲存储器2110_n中。在实施例中,主机控制器2200可以顺序地访问第一存储器系统1000_1至第n存储器系统1000_n的各自控制器缓冲存储器,获取第一条地址映射数据至第n条地址映射数据,并且将这些数据分别加载到第一元缓冲存储器2110_1至第n元缓冲存储器2110_n中。
在步骤S1106中,主机控制器2200可以将缓冲在主机缓冲存储器2100的第一元缓冲存储器2110_1至第n元缓冲存储器2110_n中的第一条地址映射数据至第n条地址映射数据顺序地输入到第a存储器系统1000_a和第b存储器系统1000_b的各自控制器缓冲存储器,并且第a存储器系统1000_a和第b存储器系统1000_b可以将第一条地址映射数据至第n条地址映射数据缓冲在第a存储器系统1000_a和第b存储器系统1000_b的控制器缓冲存储器中。
进一步地,在步骤S1107中,主机控制器2200可以将用于将缓冲在控制器缓冲存储器中的多条地址映射数据刷新到非易失性存储器装置1100的命令输入到第a存储器系统1000_a和第b存储器系统1000_b。
在步骤S1108中,第a存储器系统1000_a和第b存储器系统1000_b可以响应于命令,将缓冲在对应的控制器缓冲存储器中的多条地址映射数据刷新到第a存储器系统1000_a和第b存储器系统1000_b的非易失性存储器装置1100。
如在上述操作的情况下,当闪存阵列3000的多个用户SSD中的任何一个满足元数据刷新条件时,存储系统4000可以读取存储在包括不满足元数据刷新条件的用户SSD的所有用户SSD的控制器缓冲存储器中的元数据,并且可以将读取的元数据刷新到元SSD。
图12是用于说明根据本公开的实施例的映射数据存储区域的配置的示图。
参照图12,存储系统4000可以使用单个存储器系统1000作为元SSD。用作元SSD的存储器系统1000可以将关于第一用户SSD 1000_1至第n用户SSD 1000_n的元数据,例如,第一条地址映射数据至第n条地址映射数据存储在非易失性存储器装置1100中。此处,存储元数据的存储器系统1000可以包括多个元数据块组120,元数据块组120中的每个可以包括一个或多个存储块110。
在示例中,用作元SSD的存储器系统1000的非易失性存储器装置1100可以包括第一元数据块组120_1至第n元数据块组120_n。第一元数据块组120_1可以存储用作用户SSD的第一存储器系统1000_1的元数据,例如第一地址映射数据,第二元数据块组120_2可以存储用作用户SSD的第二存储器系统1000_2的元数据,例如第二地址映射数据,并且第n元数据块组120_n可以存储用作用户SSD的第n存储器系统1000_n的元数据,例如第n地址映射数据。
图13是用于说明根据本公开的实施例的映射数据存储区域的配置的示图。
参照图13,存储系统4000可以使用单个存储器系统1000作为元SSD。用作元SSD的存储器系统1000可以包括多个非易失性存储器装置1100。用作元SSD的存储器系统1000可以将第一用户SSD 1000_1至第n用户SSD 1000_n的多条元数据,例如,第一条地址映射数据至第n条地址映射数据划分并单独存储在多个非易失性存储器装置1100中。
在实施例中,用作元SSD的存储器系统1000可以包括第a非易失性存储器装置1100_a和第b非易失性存储器装置1100_b。此处,第a非易失性存储器装置1100_a可以存储第一存储器系统1000_1至第i存储器系统1000_i(其中i是大于或等于2且小于n的自然数)的多条元数据,即,第一条地址映射数据至第i条地址映射数据,并且第b非易失性存储器装置1100_b可以存储第(i+1)存储器系统1000_(i+1)至第n存储器系统1000_n的多条元数据,即,第(i+1)条地址映射数据至第n条地址映射数据。
第a非易失性存储器装置1100_a和第b非易失性存储器装置1100_b中的每个可以包括多个元数据块组120,元数据块组120中的每个可以包括一个或多个存储块110。在示例中,第a非易失性存储器装置1100_a可以包括第一元数据块组120_1至第i元数据块组120_i,并且第一元数据块组120_1至第i元数据块组120_i可以顺序地存储第一条地址映射数据至第i条地址映射数据。并且,第b非易失性存储器装置1100_b可以包括第(i+1)元数据块组120_(i+1)至第n元数据块组120_n,并且第(i+1)元数据块组120_(i+1)至第n元数据块组120_n可以顺序地存储第(i+1)条地址映射数据至第n条地址映射数据。
图14是用于说明根据本公开的实施例的映射数据存储区域的配置的示图。
参照图14,闪存阵列3000可以包括存储元数据的多个存储器系统1000。在示例中,闪存阵列3000可以包括用作元SSD的第a存储器系统1000_a和第b存储器系统1000_b,并且第a存储器系统1000_a和第b存储器系统1000_b中的每个可以包括一个或多个非易失性存储器装置1100。
第a存储器系统1000_a和第b存储器系统1000_b中的非易失性存储器装置1100可以各自包括多个元数据块组120。元数据块组120中的每个可以包括一个或多个存储块110。在示例中,第a存储器系统1000_a中的非易失性存储器装置1100可以包括第一元数据块组120_1至第i元数据块组120_i,并且第一元数据块组120_1至第i元数据块组120_i可以顺序地存储第一条地址映射数据至第i条地址映射数据。并且,第b存储器系统1000_b中的非易失性存储器装置1100可以包括第(i+1)元数据块组120_(i+1)至第n元数据块组120_n,并且第(i+1)元数据块组120_(i+1)至第n元数据块组120_n可以顺序地存储第(i+1)条地址映射数据至第n条地址映射数据。
图15是示出存储器系统的实施例的示图。
参照图15,存储器系统30000可以被实施在蜂窝电话、智能电话、平板PC、个人数字助理(PDA)或无线通信装置中。存储器系统30000可以包括非易失性存储器装置1100和能够控制非易失性存储器装置1100的操作的存储器控制器1200。存储器控制器1200可以在处理器3100的控制下控制非易失性存储器装置1100的数据存取操作,例如,编程操作、擦除操作或读取操作。
编程在非易失性存储器装置1100中的数据可以在存储器控制器1200的控制下通过显示器3200输出。
无线电收发器3300可以通过天线ANT发送和接收无线电信号。例如,无线电收发器3300可以将通过天线ANT接收的无线电信号改变为处理器3100中可以处理的信号。因此,处理器3100可以处理从无线电收发器3300输出的信号并且将处理的信号传输到存储器控制器1200或显示器3200。存储器控制器1200可以将由处理器3100处理的信号编程到非易失性存储器装置1100。此外,无线电收发器3300可以将从处理器3100输出的信号改变为无线电信号,并且通过天线ANT将改变的无线电信号输出到外部装置。输入装置3400可以用于输入用于控制处理器3100的操作的控制信号或者待由处理器3100处理的数据。输入装置3400可以被实施为诸如触摸板或计算机鼠标的点击装置、小键盘或键盘。处理器3100可以控制显示器3200的操作,使得从存储器控制器1200输出的数据、从无线电收发器3300输出的数据或从输入装置3400输出的数据通过显示器3200被输出。
在实施例中,能够控制非易失性存储器装置1100的操作的存储器控制器1200可以被实施为处理器3100的一部分或被实施为与处理器3100分开设置的芯片。进一步地,存储器控制器1200可以由图2中所示的示例性存储器控制器来实施。
图16是示出存储器系统的实施例的示图。
参照图16,存储器系统40000可以被实施在个人计算机、平板PC、电子书、电子阅读器、个人数字助理(PDA)、便携式多媒体播放器(PMP)、MP3播放器或MP4播放器中。
存储器系统40000可以包括非易失性存储器装置1100和能够控制非易失性存储器装置1100的数据处理操作的存储器控制器1200。
处理器4100可以根据从输入装置4200输入的数据,通过显示器4300输出存储在非易失性存储器装置1100中的数据。例如,输入装置4200可以被实施为诸如触摸板或计算机鼠标的点击装置、小键盘或键盘。
处理器4100可以控制存储器系统40000的整体操作并且控制存储器控制器1200的操作。在实施例中,能够控制非易失性存储器装置1100的操作的存储器控制器1200可以被实施为处理器4100的一部分或被实施为与处理器4100分开设置的芯片。进一步地,存储器控制器1200可以由图2中所示的示例性存储器控制器来实施。
图17是示出存储器系统的实施例的示图。
参照图17,存储器系统50000可以被实施在例如数码相机、设置有数码相机的便携式电话、设置有数码相机的智能手机或设置有数码相机的平板PC的图像处理装置中。
存储器系统50000可以包括非易失性存储器装置1100和存储器控制器1200,存储器控制器1200能够控制非易失性存储器装置1100的数据处理操作,例如编程操作、擦除操作或读取操作。
存储器系统50000的图像传感器5200可以将光学图像转换为数字信号。转换的数字信号可以被传输到处理器5100或存储器控制器1200。在处理器5100的控制下,转换的数字信号可通过显示器5300输出,或通过存储器控制器1200存储在非易失性存储器装置1100中。存储在非易失性存储器装置1100中的数据可以在处理器5100或存储器控制器1200的控制下通过显示器5300输出。
在实施例中,能够控制非易失性存储器装置1100的操作的存储器控制器1200可以被实施为处理器5100的一部分或被实施为与处理器5100分开设置的芯片。进一步地,存储器控制器1200可以由图2中所示的示例性存储器控制器来实施。
图18是示出存储器系统的实施例的示图。
参照图18,存储器系统70000可以被实施在存储卡或智能卡中。存储器系统70000可以包括非易失性存储器装置1100、存储器控制器1200和卡接口7100。
存储器控制器1200可以控制非易失性存储器装置1100与卡接口7100之间的数据交换。在实施例中,卡接口7100可以是安全数字(SD)卡接口或多媒体卡(MMC)接口,但是不限于此。进一步地,存储器控制器1200可以由图2中所示的示例性存储器控制器来实施。
卡接口7100可以根据主机60000的协议来接口连接主机60000与存储器控制器1200以进行数据交换。在实施例中,卡接口7100可以支持通用串行总线(USB)协议和芯片间(IC)-USB协议。此处,卡接口可以是能够支持由主机60000使用的协议的硬件、安装在硬件中的软件或者信号传输方法。
当存储器系统70000连接到诸如PC、平板PC、数码相机、数字音频播放器、蜂窝电话、控制台视频游戏硬件或数字机顶盒的主机60000的主机接口6200时,主机接口6200可以在微处理器6100的控制下,通过卡接口7100和存储器控制器1200执行与非易失性存储器装置1100的数据通信。
本公开提供一种存储系统,该存储系统包括用于存储元数据的单独的元SSD,元数据是关于用于存储用户数据的多个用户SSD的元数据,并且该存储系统可以使用单独的元SSD有效地执行启动操作和元数据刷新操作。
虽然已经描述并说明本公开的各个实施例,但是本领域技术人员将理解,根据本公开,可以进行各种变型、添加和替换。因此,本公开的范围由所附权利要求和权利要求的等同物限定,而不是由前面的描述限定。
Claims (20)
1.一种操作存储系统的方法,所述方法包括:
通过主机系统,输出用于读取地址映射数据的命令,多条所述地址映射数据与第一存储器系统至第(n-1)存储器系统对应,所述地址映射数据被存储在第n存储器系统的非易失性存储器装置中,其中n是3或更大的自然数;
在第一传输操作中,响应于所述命令,从所述第n存储器系统输出所述地址映射数据并且将所述地址映射数据输入到所述主机系统;以及
在第二传输操作中,从所述主机系统输出所述地址映射数据并且将所述地址映射数据输入到所述第一存储器系统至所述第(n-1)存储器系统的各自控制器缓冲存储器,
其中所述第一存储器系统至所述第n存储器系统中的每个包括控制器缓冲存储器和非易失性存储器装置。
2.根据权利要求1所述的方法,其中:
多条所述地址映射数据包括分别与所述第一存储器系统至所述第(n-1)存储器系统对应的第一条地址映射数据至第(n-1)条地址映射数据,并且
在所述第二传输操作期间,所述第一条地址映射数据至所述第(n-1)条地址映射数据分别被顺序地输入到所述第一存储器系统至所述第(n-1)存储器系统。
3.根据权利要求2所述的方法,其中所述第一存储器系统至所述第(n-1)存储器系统将从所述主机系统输入的第一条地址映射数据至第(n-1)条地址映射数据分别缓冲在各自控制器缓冲存储器中。
4.根据权利要求1所述的方法,其中:
所述主机系统包括主机缓冲存储器,
多条所述地址映射数据被缓冲在所述主机缓冲存储器中,并且
所述第二传输操作包括通过所述第一存储器系统至所述第(n-1)存储器系统,访问所述主机缓冲存储器并获取所述地址映射数据。
5.根据权利要求3所述的方法,其中在所述第一传输操作期间,所述第n存储器系统:
响应于所述命令,读取存储在所述第n存储器系统的非易失性存储器装置中的地址映射数据,
将从所述第n存储器系统的非易失性存储器装置读取的地址映射数据缓冲在所述第n存储器系统的控制器缓冲存储器中,以及
将缓冲在所述第n存储器系统的控制器缓冲存储器中的地址映射数据输出到所述主机系统。
6.根据权利要求5所述的方法,进一步包括:
通过所述主机系统,将读取命令输入到所述第一存储器系统;
通过所述第一存储器系统,响应于所述读取命令,基于缓冲在所述第一存储器系统的控制器缓冲存储器中的第一条地址映射数据,读取存储在所述第一存储器系统的非易失性存储器装置中的数据;以及
将所述数据输出到所述主机系统。
7.根据权利要求3所述的方法,进一步包括:
通过所述主机系统,将写入命令和逻辑地址输入到所述第一存储器系统;
通过所述第一存储器系统,响应于所述写入命令,将物理地址映射到所述逻辑地址;
基于所述逻辑地址与所述物理地址之间的映射,更新缓冲在所述控制器缓冲存储器中的第一条地址映射数据;以及
基于所述物理地址将写入数据编程到所述非易失性存储器装置。
8.根据权利要求3所述的方法,其中:
所述第n存储器系统仅存储元数据,所述元数据包括所述地址映射数据,并且
所述元数据是所述存储系统中内部生成的数据。
9.根据权利要求2所述的方法,其中当所述存储系统通电时,执行所述命令的输出。
10.一种操作存储系统的方法,所述方法包括:
通过主机系统,将与第一用户固态驱动器即第一用户SSD对应的第一地址映射数据从元SSD传输到所述第一用户SSD;
通过所述第一用户SSD,将所述第一地址映射数据存储到所述第一用户SSD的控制器缓冲存储器;
通过所述第一用户SSD,更新所述第一用户SSD的控制器缓冲存储器中的所述第一地址映射数据;
当所述第一用户SSD中满足更新的第一地址映射数据的刷新条件时,通过所述主机系统,将缓冲在所述第一用户SSD的控制器缓冲存储器中的所述更新的第一地址映射数据传输到所述元SSD;以及
通过所述元SSD,将所述更新的第一地址映射数据刷新到所述元SSD的非易失性存储器装置。
11.根据权利要求10所述的方法,进一步包括通过所述主机系统,访问所述第一用户SSD的控制器缓冲存储器并且获取所述第一地址映射数据。
12.根据权利要求10所述的方法,进一步包括通过所述主机系统,从第二用户SSD的控制器缓冲存储器读取与所述第二用户SSD对应的第二地址映射数据,其中所述第二用户SSD不满足所述刷新条件。
13.根据权利要求12所述的方法,进一步包括:
通过所述主机系统,将从所述第二用户SSD读取的所述第二地址映射数据输出到所述元SSD;以及
通过所述元SSD,将所述第二地址映射数据刷新到所述元SSD的非易失性存储器装置。
14.根据权利要求10所述的方法,进一步包括:
通过所述主机系统,将写入命令和逻辑地址输入到所述第一用户SSD;
通过所述第一用户SSD,响应于所述写入命令,将所述逻辑地址映射到物理地址;以及
通过所述第一用户SSD,基于所述逻辑地址与所述物理地址之间的映射,更新缓冲在所述第一用户SSD的控制器缓冲存储器中的所述第一地址映射数据,
其中当所述第一地址映射数据的更新程度大于或等于设定水平时,满足所述刷新条件。
15.一种存储系统,包括:
闪存阵列,包括第一用户固态驱动器即第一用户SSD至第n用户SSD和第一元SSD,其中n是2或更大的自然数;以及
主机系统,联接到所述闪存阵列,
其中所述第一用户SSD至所述第n用户SSD和所述第一元SSD中的每个包括控制器缓冲存储器和非易失性存储器装置,
其中所述第一元SSD的非易失性存储器装置存储分别与所述第一用户SSD至所述第n用户SSD对应的第一条地址映射数据至第n条地址映射数据,并且
其中所述主机系统在启动操作期间,读取存储在所述第一元SSD的非易失性存储器装置中的所述第一条地址映射数据至所述第n条地址映射数据,并且将所读取的第一条地址映射数据至第n条地址映射数据存储在所述第一用户SSD至所述第n用户SSD的各自控制器缓冲存储器中。
16.根据权利要求15所述的存储系统,其中:
所述主机系统包括主机缓冲存储器,并且
所述主机系统访问所述第一用户SSD至所述第n用户SSD的控制器缓冲存储器,获取所述第一条地址映射数据至所述第n条地址映射数据,将所述第一条地址映射数据至所述第n条地址映射数据缓冲在所述主机缓冲存储器中,并且将缓冲在所述主机缓冲存储器中的所述第一条地址映射数据至所述第n条地址映射数据刷新到所述第一元SSD。
17.根据权利要求16所述的存储系统,其中所述第一用户SSD至所述第n用户SSD响应于从所述主机系统输入的写入命令,分别更新存储在各自控制器缓冲存储器中的所述第一条地址映射数据至所述第n条地址映射数据。
18.根据权利要求17所述的存储系统,其中所述第一用户SSD至所述第n用户SSD基于分别更新的第一条地址映射数据至第n条地址映射数据,对各自非易失性存储器装置分别执行写入操作。
19.根据权利要求16所述的存储系统,其中所述第一条地址映射数据至所述第n条地址映射数据被存储在所述第一元SSD的非易失性存储器装置中的不同存储块中。
20.根据权利要求16所述的存储系统,其中:
所述闪存阵列进一步包括第二元SSD,并且
所述第一条地址映射数据至所述第n条地址映射数据被划分为两个组,所述两个组中的第一组被存储在所述第一元SSD中并且所述两个组中的第二组被存储在所述第二元SSD中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2017-0167583 | 2017-12-07 | ||
KR1020170167583A KR20190067540A (ko) | 2017-12-07 | 2017-12-07 | 스토리지 시스템 및 그것의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109902031A CN109902031A (zh) | 2019-06-18 |
CN109902031B true CN109902031B (zh) | 2023-12-08 |
Family
ID=66696910
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810879383.2A Active CN109902031B (zh) | 2017-12-07 | 2018-08-03 | 存储系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10769060B2 (zh) |
KR (1) | KR20190067540A (zh) |
CN (1) | CN109902031B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014081100A1 (ko) * | 2012-11-22 | 2014-05-30 | 주식회사 이에프텍 | 비휘발성 메모리 시스템 및 이를 위한 맵핑 테이블 관리 방법 |
CN106055279A (zh) * | 2016-06-12 | 2016-10-26 | 浪潮(北京)电子信息产业有限公司 | 管理固态硬盘的地址映射表的方法、装置及固态硬盘 |
CN106201901A (zh) * | 2014-12-10 | 2016-12-07 | 爱思开海力士有限公司 | 包括映射表的控制器、包括半导体存储器件的存储系统及其操作方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060143365A1 (en) * | 2002-06-19 | 2006-06-29 | Tokyo Electron Device Limited | Memory device, memory managing method and program |
JP4571958B2 (ja) * | 2007-03-30 | 2010-10-27 | 富士通株式会社 | コントローラまたはディスク制御による省電力化装置 |
JP5722685B2 (ja) * | 2011-04-12 | 2015-05-27 | 株式会社日立製作所 | 半導体装置、不揮発性メモリ装置の制御方法 |
US8966205B1 (en) * | 2012-05-10 | 2015-02-24 | Western Digital Technologies, Inc. | System data management using garbage collection and hybrid self mapping |
US9870152B2 (en) * | 2012-06-07 | 2018-01-16 | Hitachi, Ltd. | Management system and management method for managing data units constituting schemas of a database |
US20150186259A1 (en) * | 2013-12-30 | 2015-07-02 | Sandisk Technologies Inc. | Method and apparatus for storing data in non-volatile memory |
CN103777905B (zh) * | 2014-02-14 | 2017-04-12 | 华中科技大学 | 一种软件定义的固态盘融合存储方法 |
US9858008B2 (en) * | 2014-10-30 | 2018-01-02 | ScaleFlux | Method to reduce flash memory IOs with host maintained address mapping table |
KR20160083762A (ko) * | 2015-01-02 | 2016-07-12 | 삼성전자주식회사 | 스토리지 시스템에서의 매핑 테이블 관리 방법 및 이를 적용한 스토리지 시스템 |
KR20170001235A (ko) | 2015-06-26 | 2017-01-04 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
US10229051B2 (en) * | 2015-12-30 | 2019-03-12 | Samsung Electronics Co., Ltd. | Storage device including nonvolatile memory device and controller, operating method of storage device, and method for accessing storage device |
US10289544B2 (en) * | 2016-07-19 | 2019-05-14 | Western Digital Technologies, Inc. | Mapping tables for storage devices |
US10853233B2 (en) * | 2016-10-18 | 2020-12-01 | Toshiba Memory Corporation | Reconstruction of address mapping in a host of a storage system |
US10558393B2 (en) * | 2017-10-20 | 2020-02-11 | Qualcomm Incorporated | Controller hardware automation for host-aware performance booster |
-
2017
- 2017-12-07 KR KR1020170167583A patent/KR20190067540A/ko unknown
-
2018
- 2018-07-11 US US16/032,592 patent/US10769060B2/en active Active
- 2018-08-03 CN CN201810879383.2A patent/CN109902031B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014081100A1 (ko) * | 2012-11-22 | 2014-05-30 | 주식회사 이에프텍 | 비휘발성 메모리 시스템 및 이를 위한 맵핑 테이블 관리 방법 |
CN106201901A (zh) * | 2014-12-10 | 2016-12-07 | 爱思开海力士有限公司 | 包括映射表的控制器、包括半导体存储器件的存储系统及其操作方法 |
CN106055279A (zh) * | 2016-06-12 | 2016-10-26 | 浪潮(北京)电子信息产业有限公司 | 管理固态硬盘的地址映射表的方法、装置及固态硬盘 |
Non-Patent Citations (1)
Title |
---|
基于非易失性存储器的存储系统技术研究进展;舒继武等;科技导报;第34卷(第14期);第86-93页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109902031A (zh) | 2019-06-18 |
US10769060B2 (en) | 2020-09-08 |
KR20190067540A (ko) | 2019-06-17 |
US20190179742A1 (en) | 2019-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109992537B (zh) | 存储系统及其操作方法 | |
US11334448B2 (en) | Memory system and operating method thereof | |
US10678476B2 (en) | Memory system with host address translation capability and operating method thereof | |
CN109683805B (zh) | 存储器系统及其操作方法 | |
CN109947662B (zh) | 存储器系统及其操作方法 | |
CN109697024B (zh) | 存储器系统及其操作方法 | |
US10684796B2 (en) | Memory system and operating method thereof | |
US20190138440A1 (en) | Memory system and operating method thereof | |
KR102516547B1 (ko) | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 | |
US20190121727A1 (en) | Memory system and method for operating the same | |
CN110413535B (zh) | 存储器控制器及存储器控制器的操作方法 | |
KR20190032809A (ko) | 메모리 시스템 및 그것의 동작 방법 | |
KR102479483B1 (ko) | 메모리 시스템 및 이의 동작 방법 | |
US10977144B2 (en) | Memory system and method of operating the same | |
US20190294542A1 (en) | Memory system and operating method thereof | |
CN111240585A (zh) | 控制器、包括控制器的存储器系统及其操作方法 | |
US10942675B2 (en) | Memory system and operating method thereof | |
CN109902031B (zh) | 存储系统及其操作方法 | |
CN113126895A (zh) | 存储装置及其操作方法 | |
KR20240002571A (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 |