CN111159061B - 存储设备、存储设备的操作方法和主机的操作方法 - Google Patents
存储设备、存储设备的操作方法和主机的操作方法 Download PDFInfo
- Publication number
- CN111159061B CN111159061B CN201911057357.2A CN201911057357A CN111159061B CN 111159061 B CN111159061 B CN 111159061B CN 201911057357 A CN201911057357 A CN 201911057357A CN 111159061 B CN111159061 B CN 111159061B
- Authority
- CN
- China
- Prior art keywords
- stripe size
- data
- identification information
- host
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- 230000015654 memory Effects 0.000 claims abstract description 216
- 230000004044 response Effects 0.000 claims abstract description 23
- 238000013507 mapping Methods 0.000 claims description 24
- 238000010586 diagram Methods 0.000 description 18
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 6
- 101100481704 Arabidopsis thaliana TMK3 gene Proteins 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003321 amplification Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Classifications
-
- 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
- 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
-
- 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
- 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/0615—Address space extension
- G06F12/0623—Address space extension for memory modules
-
- 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
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- 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/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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0656—Data buffering 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/10—Providing a specific technical effect
- G06F2212/1056—Simplification
-
- 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/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)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
公开了一种包括多个存储体的存储设备的操作方法,包括:从主机接收包括流标识信息的写命令;响应于写命令,基于与流标识信息相对应的分条大小来分配多个存储体之中的要存储数据的存储体;以及将数据写入所分配的存储体中。
Description
相关申请的交叉引用
本申请要求于2018年11月8日提交的韩国专利申请No.10-2018-0136538的优先权,其公开内容通过引用并入本文中。
技术领域
本文所述的本发明构思的实施例涉及集成电路存储器器件,并且更具体地涉及多存储体存储器器件、操作多存储体存储器器件的方法、以及使用主机设备控制多存储体存储器器件的方法。
背景技术
半导体存储器通常被分类为易失性存储器器件和非易失性存储器器件,在易失性存储器器件中,所存储的数据在掉电时消失,而在非易失性存储器器件中,即使在掉电时所存储的数据仍被保留。
通常,非易失性存储器器件可以用于存储大量数据。然而,由于非易失性存储器器件的操作速度的典型限制,在存储大量数据时可能发生过多的延迟时间。可以使用多个非易失性存储器器件来减少存储大量数据所需的总延迟时间。控制非易失性存储器器件的存储器控制器可以通过使用多个非易失性存储器器件来执行分条(striping)。分条涉及用于将数据分发和存储到非易失性存储器器件中的技术。存储数据的非易失性存储器器件的数量可以随分条大小的变化而变化。
在存储器控制器具有固定分条大小的情况下,无论数据的特性(例如,流ID)如何,相同的分条策略可以应用于所有数据。在这种情况下,由于分条是“固定的”并且由此在不考虑主机的所需性能的情况下执行,因此主机通常不能获得最优性能。
发明内容
本发明构思的实施例提供了一种操作存储设备的方法、以及一种主机控制存储设备的操作方法,所述操作存储设备的方法可以考虑主机的所需性能针对每个数据流应用分条策略。
此外,本发明构思的实施例提供了主机和存储设备之间的接口协议,使得主机可以选择分条大小。
根据示例性实施例,一种包括多个存储体的存储设备的操作方法包括:从主机接收包括流标识信息的写命令,分配多个存储体之中的要存储数据的存储体。该分配基于与流标识信息相对应的分条大小,并且响应于写命令而执行。在分配时,数据被写入到所分配的存储体中。
根据另一示例性实施例,一种控制多存储体存储设备的主机的操作方法包括:针对要被写入到存储设备中的多个数据流中的每一个数据流选择分条大小;向存储设备提供关于所选择的分条大小的分条大小信息以及与所选择的分条大小相对应的流标识信息。基于分条大小信息和流标识信息分配要存储数据的存储器存储体。
根据另一示例性实施例,存储设备包括含有多个存储器存储体的存储器器件、以及存储器控制器。响应于来自主机的包括流标识信息的写命令,存储器控制器基于与流标识信息相对应的分条大小,分配多个存储器存储体之中的要存储数据的存储体。
根据另一示例性实施例,一种操作多存储体存储设备的方法包括将包括流标识信息的写命令发送到多存储体存储设备。响应于该写命令,执行操作以分配多存储体存储设备中的多个存储体之中的要存储与写命令相关联的数据的至少一个存储体。该分配基于流标识信息中包括的分条大小信息。然后,将“写入”数据写入到所分配的至少一个存储体中。此外,发送写命令可以在以下操作之后:将包括流标识信息和分条大小信息的第一指令命令发送到多存储体存储设备,然后响应于第一指令命令在多存储体存储设备中将分条大小信息映射到流标识信息。此外,发送写命令之后可以是如下操作:将包括流标识信息的第二指令命令发送到多存储体存储设备,然后响应于第二指令命令,取消映射先前被映射到流标识信息的分条大小信息。
附图说明
通过参考附图详细描述本发明构思的示例性实施例,本发明构思的上述及其他目的和特征将变得更清楚。
图1是根据本发明构思的实施例的电子系统的框图。
图2示出了根据本发明构思的实施例的存储器器件存储数据的示例。
图3是示出了图1的存储设备的示例的框图。
图4A和图4B示出了根据分条大小将数据存储在图3中的写缓冲器中的示例。
图5是示出了图1的存储器控制器的框图。
图6是示出了图1的主机和存储设备执行的写操作的示例的图。
图7是示出了针对图6的写操作的存储器控制的示例性操作的图。
图8是示出了图1的主机和存储设备执行的写操作的另一示例的图。
图9是示出了针对图8的写操作的存储器控制器的示例性操作的图。
图10是示出了针对图8的取消映射分条大小的存储器控制器的示例性操作的图。
图11是示出了根据本发明构思的实施例的SSD系统的框图。
具体实施方式
下面以使本领域普通技术人员容易实现本发明构思的程度详细并清楚地描述了本发明构思的实施例。
图1示出了根据本发明构思的实施例的电子系统1000的框图。参考图1,计算系统1000包括主机100和存储设备200。主机100可以控制存储设备200的操作。为了控制存储设备200的操作,主机100可以向存储设备200提供命令。存储设备200可以响应于命令执行操作。例如,存储设备200可以存储从主机100提供的数据,或可以将存储的数据提供给主机100。
存储设备200可以包括存储器控制器210和存储器器件220。存储器控制器210可以控制存储器器件220的操作。存储器控制器210可以响应于从主机100接收的命令来控制存储器器件220的操作。为了控制存储器器件220的操作,存储器控制器210可以向存储器器件220提供命令。例如,存储器控制器210可以控制存储器器件220,使得从主机100提供的数据被写入存储器器件220中。备选地,存储器控制器210可以控制存储器器件220,使得存储在存储器器件220中的数据从存储器器件220输出。
存储器器件220可以在存储器控制器210的控制下操作。例如,响应于来自存储器控制器210的命令,存储器器件220可以写入数据或者可以输出数据。例如,存储器器件220可以包括闪存设备。然而,本发明构思不限于此。例如,存储器器件220可以包括以下至少一项:易失性存储器器件,例如静态随机存取存储器(SRAM)、动态RAM(DRAM)或同步DRAM(SDRAM);和非易失性存储器器件,例如只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、相变RAM(PRAM)、磁RAM(MRAM)、电阻式RAM(RRAM)或铁电RAM(FRAM)。
存储器器件220可以包括多个存储体221至23n(n是大于“0”的整数)。存储体221至23n中的每一个可以连接到相关通道。例如,第一存储体221至第n存储体22n可以连接到第一通道CH1,并且第一存储体231到第n存储体23n可以连接到第m通道CHm(m是整数大于“0”)。存储体221至23n中的每一个可以通过连接的通道从存储器控制器210接收命令和数据。例如,存储体221至23n中的每一个可以用单独的管芯实现,但是本发明构思不限于此。
存储器控制器210可以并行访问各个存储体221至23n。例如,存储器控制器210可以并行地分别将数据写入第一存储体221和第二存储体222中。备选地,存储器控制器210可以并行地分别从第一存储体221和第二存储体222输出数据。存储器控制器210可以通过连接到各个存储体221至23n的通道访问存储体221至23n。
在实施例中,主机100可以执行各种应用。主机100可以将根据应用的执行而产生的数据存储在存储设备200中。如图1所示,为了存储数据“DATA”,主机100可以向存储设备200提供写命令HRCMD和数据“DATA”。存储器控制器210可以响应于写命令HRCMD将数据“DATA”存储在存储器器件220中。为了存储数据“DATA”,存储器控制器210可以向存储器器件220提供写命令HRCMD和数据“DATA”。例如,存储器控制器210可以将写命令HRCMD和数据“DATA”提供给存储体221至23n之一。接收写命令HRCMD的存储体可以存储数据“DATA”。
来自主机100的写命令HRCMD可以包括流标识信息(即,流ID)。流标识信息可以根据所提供的数据“DATA”的特性指示用于标识数据“DATA”的信息。也就是说,可以将相同的流标识信息分配给彼此相关联的数据“DATA”。例如,主机100可以将不同的流标识信息分配给根据不同应用的执行而产生的数据“DATA”,并且可以将相同的流标识信息分配给根据相同应用产生的数据“DATA”。然而,本发明构思不限于此。例如,根据数据“DATA”的特性,可以将不同的流标识信息分配给根据相同应用产生的数据“DATA”。
存储器控制器210可以基于写命令HRCMD中包括的流标识信息来分配要存储数据“DATA”的一个或多个存储体。存储器控制器210可以基于与流标识信息相对应的分条大小来分配存储体221至23n中的一个存储体。分条大小可以指示要存储相同流标识信息的数据的候选存储体的数量。例如,在分条大小为“1CH×2存储体”的情况下,数据“DATA”可以存储在两个候选存储体之一中。例如,在连接到第一通道CH1的第一存储体221和第二存储体222是候选存储体的情况下,第一存储体221和第二存储体222中的一个存储体可以被分配用于要存储数据“DATA”的存储体。
可以从主机100向存储器控制器210提供与流标识信息相对应的分条大小信息。主机100可以针对每个流选择分条大小,并且可以向存储器控制器210提供针对每个流的分条大小信息。
如上所述,可以根据数据“DATA”的流标识信息来确定分条大小。存储器控制器210可以基于针对每个流的分条大小来分配要存储数据“DATA”的存储体。
下面,为了便于描述,假设图1的存储器器件220包括:连接到两个通道CH1和CH2的六个存储体221至223和231至233(即,“n”是3并且“m”是2的情况)。然而,本发明构思不限于此。例如,存储器器件220可以包括连接到给定数量的通道的给定数量的存储体。
图2示出了根据本发明构思的实施例的存储器器件220存储数据的示例。参考图2,存储器器件220可以包括连接到第一通道CH1的第一存储体至第三存储体221至223、以及连接到第二通道CH2的第一存储体至第三存储体231至233。
存储器器件220可以存储从存储器控制器210提供的数据“DATA”。所提供的数据“DATA”的流标识信息可以是第一流(流1)或第二流(流2)。存储器控制器210可以基于写命令HRCMD确定数据“DATA”的流标识信息。
存储器控制器210可以基于与数据“DATA”的流标识信息相对应的分条大小来分配要存储数据“DATA”的存储体。例如,与第一流相对应的分条大小可以是“2CH×2存储体”,并且与第二流相对应的分条大小可以是“1CH×1存储体”。
第一,关于第一流的第一数据DATA1,存储器控制器210可以基于“2CH×2存储体”的相关分条大小,将连接到第一通道CH1的第一存储体221分配用于要存储第一数据DATA1的存储体(①)。详细地,存储器控制器210可以将第一存储体221的第一块BLK1的特定地址分配用于要存储第一数据DATA1的存储器地址。
第二,关于第一流的第二数据DATA2,存储器控制器210可以基于“2CH×2存储体”的分条大小,将与被分配给第一数据DATA1的第一存储体221不同的存储体分配用于要存储第二数据DATA2的存储体。存储器控制器210可以将连接到第二通道CH2的第一存储体231分配用于要存储第二数据DATA2的存储体(②)。详细地,存储器控制器210可以将第一存储体231的第一块BLK1的特定地址分配用于要存储第二数据DATA2的存储器地址。
第三,关于第二流的第三数据DATA3,存储器控制器210可以基于“1CH×1存储体”的相关分条大小,将第一存储体221分配用于要存储第三数据DATA3的存储体(③)。详细地,存储器控制器210可以将第一存储体221的第二块BLK2的特定地址分配用于要存储第三数据DATA3的存储器地址。
第四,关于第一流的第四数据DATA4,存储器控制器210可以基于“2CH×2存储体”的分条大小,将与被分配给第一数据DATA1和第二数据DATA2的存储体221和231不同的存储体分配用于要存储第四数据DATA4的存储体。存储器控制器210可以将连接到第一通道CH1的第二存储体222分配用于要存储第四数据DATA4的存储体(④)。详细地,存储器控制器210可以将第二存储体222的第一块BLK1的特定地址分配用于要存储第四数据DATA4的存储器地址。
第五,关于第二流的第五数据DATA5,存储器控制器210可以基于“1CH×1存储体”的分条大小,将与被分配给第三数据DATA3的第一存储体221相同的存储体分配用于要存储第五数据DATA5的存储体。存储器控制器210可以将第一存储体221分配用于要存储第五数据DATA5的存储体(⑤)。详细地,存储器控制器210可以将第一存储体221的第二块BLK2的特定地址分配用于要存储第五数据DATA5的存储器地址。在这种情况下,被分配给第五数据DATA5的存储器地址可以与被分配给第三数据DATA3的存储器地址不同。
第六,关于第一流的第六数据DATA6,存储器控制器210可以基于“2CH×2存储体”的分条大小,将与被分配用于第一数据DATA1、第二数据DATA2和第四数据DATA4的存储体221、222和231不同的存储体分配用于要存储第六数据DATA6的存储体。存储器控制器210可以将连接到第二通道CH2的第二存储体232分配用于要存储第六数据DATA6的存储体(⑥)。详细地,存储器控制器210可以将第二存储体232的第一块BLK1的特定地址分配用于要存储第六数据DATA6的存储器地址。
第七,关于第一流的第七数据DATA7,存储器控制器210可以基于“2CH×2存储体”的分条大小,分配要存储第七数据DATA7的存储体。由于所有四个存储体221、222、231和232均被分配给先前接收的第一流的数据DATA1、DATA2、DATA4和DATA6,因此存储器控制器210可以将四个存储体221、222、231和232中的一个存储体分配用于要存储第七数据DATA7的存储体。存储器控制器210可以将第一存储体221分配用于要存储第七数据DATA7的存储体(⑦)。详细地,存储器控制器210可以将第一存储体221的第一块BLK1的特定地址分配用于要存储第七数据DATA7的存储器地址。在这种情况下,被分配给第七数据DATA7的存储器地址可以与被分配给第一数据DATA1的存储器地址不同。
存储器控制器210可以将数据“DATA”提供给所分配的存储体。存储器控制器210可以与数据“DATA”一起提供写命令HRCMD和要存储数据“DATA”的存储器地址。存储器控制器210可以通过连接到所分配的存储体的通道提供数据“DATA”、写命令HRCMD和存储器地址。存储体可以响应于写命令HRCMD将数据“DATA”存储在存储器地址处。
例如,存储器控制器210可以向第一存储体221提供第一数据DATA1、写命令HRCMD和存储器地址(第一块BLK1的特定地址)。第一存储体221可以响应于写命令HRCMD将第一数据DATA1存储在第一块BLK1的特定地址处。
如上所述,存储器控制器210可以基于针对每个流的分条大小来分配要存储数据“DATA”的存储体。在分条尺寸指示2或更大的情况下,存储器控制器210可以分配存储体,使得相同流的数据“DATA”被分发并存储到多个存储体中。在分条大小指示“1”的情况下,存储器控制器210可以分配一个存储体,使得相同流的数据“DATA”存储在该一个存储体中。
在分条大小较大的情况下(即,能够被分配给相同流的数据“DATA”的候选存储体的数量较大),与分条大小较小(即,能够被分配给相同流的数据“DATA”的候选存储体的数量较小)的情况相比,可以减少写操作和读操作的延迟时间。在分条大小较大的情况下,可以并行访问以用于写操作和读操作的存储体的数量可以较大。例如,如图2中所示,在对第一流执行读操作的情况下,可以从四个存储体221、222、231和232并行输出数据“DATA”。相反,在对第二流执行读操作的情况下,可以从一个存储体221输出数据“DATA”。因此,与第一流相关联的延迟时间可以小于与第二流相关联的延迟时间。这样,在分条大小较大的情况下,与分条大小较小的情况相比,可以提高峰值顺序读写性能。
在分条大小较小的情况下,与分条大小较大的情况相比,多流支持计数可以较大。多流支持计数表示可以存储在存储器器件220中并具有不同特性的流的数量。由于用于在一个存储体中存储不同流的块的数量是有限的,因此可能需要确保用于存储各种流的备用存储体。由于在分条大小较大的情况下要使用的存储体的数量多于分条大小较小的情况,因此多流支持计数可以较小。相反,由于在分条大小较小的情况下要使用的存储体的数量小于分条大小较大的情况,因此多流支持计数可以较大。
如上所述,存储器器件220的性能可以随分条大小而变化。根据本发明构思的实施例,主机100可以根据存储器器件220的所需性能来选择针对每个流的分条大小。可以关于峰值顺序读写性能很重要的流来选择相对大的分条大小。在多流支持计数很重要的情况下,可以选择相对小的分条大小。这样,电子系统1000可以灵活地管理针对每个流的分条大小,从而使得可以有效地操作存储设备200。
如图2所示,存储器控制器210可以将相同的存储体分配给不同流的数据(例如,DATA1和DATA3)。在这种情况下,可以将不同的块分配给不同流的数据“DATA”,并且可以将相同的块分配给相同流的数据“DATA”。这样,在相同流的数据“DATA”一起存储在相同块中的情况下,可以提高写放大因子(WAF)的性能。因此,可以增加存储器器件220的寿命。
图3是示出了图1的存储设备200的示例的框图。参考图3,存储设备200包括存储器控制器210、存储器器件220和写缓冲器230。存储器器件220可以包括连接到第一通道CH1的存储体221至223、以及连接到第二通道CH2的存储体231至233。图3的存储器控制器210和存储器器件220的操作与图1的存储器控制器210和存储器器件220的操作实质上相同或者相似,因此将省略附加描述以避免冗余。
存储器控制器210可以基于流标识信息来分配用于存储数据“DATA”的存储体。在将数据“DATA”提供给存储器器件220的分配的存储体之前,存储器控制器210可以将数据“DATA”存储到写缓冲器230。存储器控制器210可以将数据“DATA”存储在写缓冲器230的区域之中的与分配的存储体相对应的特定区域中。在特定区域被填充多达给定幅度(或更大)并且当数据“DATA”被存储到写缓冲器230时该特定区域被完全填充的情况下,存储器控制器210可以获取存储在特定区域中的数据“DATA”,并且可以将数据“DATA”存储在存储体中。也就是说,存储器控制器210可以通过使用写缓冲器230临时存储要被存储在相同存储体中的数据“DATA”;当所存储的数据“DATA”的大小不小于给定大小时,存储器控制器210可以将数据“DATA”存储在存储体中。因此,存储器控制器210可以不仅基于流标识信息分配要存储数据“DATA”的存储体,存储器控制器210还可以分配写缓冲器230中的临时存储数据“DATA”的存储器地址。
写缓冲器230可以包括多个缓冲器区域BA1至BA6。缓冲器区域BA1至BA6可以分别与存储器器件220的存储体221至233相对应。例如,第一缓冲器区域BA1可以对应于第一存储体221,并且第二缓冲器区域BA2可以对应于第一存储体231。第三缓冲器区域BA3可以对应于第二存储体222,并且第四缓冲器区域BA4可以对应于第二存储体232。例如,写缓冲器230可以用诸如DRAM之类的易失性存储器实现,但是本发明构思不限于此。
图4A和图4B示出了根据分条大小将数据存储在图3中的写缓冲器230中的示例。详细地,图4A示出了在分条大小为“2CH×2存储体”的情况下存储数据“DATA”的示例,并且图4B示出了在分条大小为“1CH×1存储体”的情况下存储数据“DATA”的示例。
参考图1、图3、图4A和图4B,可以从主机100顺序地提供相同流的第一数据至第十六数据DATA1至DATA16。为了存储第一数据至第十六数据DATA1至DATA16,存储器控制器210可以将存储体分配给相应的数据“DATA”。将存储体分配给第一数据至第十六数据DATA1至DATA16的方式可以随与流相对应的分条大小而变化。
在将第一数据至第十六数据DATA1至DATA16存储在存储器器件220中之前,存储器控制器210可以将第一数据至第十六数据DATA1至DATA16存储在写缓冲器230中。写缓冲器230可以包括第一缓冲器区域至第四缓冲器区域BA1至BA4。第一缓冲器区域至第四缓冲器区域BA1至BA4可以分别与存储体221、222、231和232相对应。例如,第一缓冲器区域BA1可以对应于第一存储体221,并且第二缓冲器区域BA2可以对应于第一存储体231。各个数据“DATA”可以存储在缓冲器区域BA1至BA4之中的与分配的存储体相对应的缓冲器区域中。
首先,参考图4A,由于与流相对应的分条大小是“2CH×2存储体”,因此存储器控制器210可以分配四个存储体作为要存储数据“DATA”的存储体。例如,存储器控制器210可以将第一存储体221分配给第一数据DATA1,并且可以将第一存储体231分配给第二数据DATA2。存储器控制器210可以将第二存储体222分配给第三数据DATA3,并且可以将第二存储体232分配给第四数据DATA4。在以上述顺序分配存储体的情况下,可以将四个存储体221、222、231和232均等地分配给第一数据至第十六数据DATA1至DATA16。
在将数据“DATA”存储在分配的存储体中之前,存储器控制器210可以将数据“DATA”存储在相关的缓冲器区域中,如图4A所示。例如,在将数据DATA1、DATA5、DATA9和DATA13存储在第一存储体221中之前,存储器控制器210可以将第一数据DATA1、第五数据DATA5、第九数据DATA9、和第十三数据DATA13存储在第一缓冲器区域BA1中。在当第十三数据DATA13存储在第一缓冲器区域BA1中时第一缓冲器区域BA1被完全填充(或填充多达给定大小或更大)的情况下,存储器控制器210可以将存储在第一缓冲器区域BA1中的数据DATA1、DATA5、DATA9和DATA13存储在第一存储体221中。之后,存储器控制器210可以删除存储在第一缓冲器区域BA1中的数据DATA1、DATA5、DATA9和DATA13,并且可以再次使用第一缓冲器区域BA1。同样地,在第二缓冲器区域至第四缓冲器区域BA2至BA4被完全填充(或者被填充多达给定大小或更大)的情况下,存储器控制器210可以将存储在每个缓冲器区域中的数据存储在对应的存储体中。之后,存储器控制器210可以删除存储在每个缓冲器区域中的数据,并且可以再次使用每个缓冲器区域。
参考图4B,由于与流相对应的分条大小是“1CH×1存储体”,因此存储器控制器210可以分配一个存储体用于要存储数据“DATA”的存储体。例如,存储器控制器210可以将第一存储体221分配给第一数据至第四数据DATA1至DATA4。在第一存储体221被分配给第一数据至第四数据DATA1至DATA4时不能分配第一存储体221的情况下,存储器控制器210可以将任何其他存储体分配给稍后要提供的数据“DATA”。例如,存储器控制器210可以将第一存储体231分配给第五数据至第八数据DATA5至DATA8。同样地,存储器控制器210可以将第二存储体222分配给第九数据至第十二数据DATA9至DATA12,并且可以将第二存储体232分配给第十三数据至第十六数据DATA13至DATA16。
在将数据“DATA”存储在分配的存储体中之前,存储器控制器210可以将数据“DATA”存储在相关的缓冲器区域中,如图4B所示。例如,在将数据DATA1至DATA4存储在第一存储体221中之前,存储器控制器210可以将第一数据至第四数据DATA1至DATA4存储在第一缓冲器区域BA1中。在当第四数据DATA4存储在第一缓冲器区域BA1中时第一缓冲器区域BA1被完全填充(或填充多达给定大小或更大)的情况下,存储器控制器210可以将存储在第一缓冲器区域BA1中的数据DATA1至DATA4存储在第一存储体221中。之后,存储器控制器210可以删除第一缓冲器区域BA1中存储的数据DATA1至DATA4,并且可以再次使用第一缓冲器区域BA1。同样地,在第二缓冲器区域至第四缓冲器区域BA2至BA4被完全填充(或者被填充多达给定大小或更大)的情况下,存储器控制器210可以将存储在每个缓冲器区域中的数据存储在对应的存储体中。之后,存储器控制器210可以删除每个缓冲器区域中存储的数据,并且可以再次使用每个缓冲器区域。
如上所述,存储设备200可以使用写缓冲器230来临时存储数据“DATA”。如图4A所示,在分条大小为“2CH×2存储体”的情况下,在提供第十三数据DATA13之后,第一缓冲器区域BA1的数据“DATA”可以存储在第一存储体221中。相反,如图4B所示,在分条大小为“1CH×1存储体”的情况下,在提供第四数据DATA4之后,第一缓冲器区域BA1的数据“DATA”可以存储在第一存储体221中。这样,图4A的第一缓冲器区域BA1的数据“DATA”存储在第一存储体221中的时间可以慢于图4B的第一缓冲器区域BA1的数据“DATA”存储在第一存储体221中的时间。此外,重新使用图4A的第一缓冲器区域BA1的时间可以慢于重新使用图4B的第一缓冲器区域BA1的时间。也就是说,在分条大小较大的情况下,与分条大小较小的情况相比,能够重新使用写缓冲器230的时段可以变得更长。因此,在分条大小较大的情况下,可能需要更高容量的写缓冲器230。
这样,主机100可以考虑写缓冲器230的容量针对每个流选择分条大小。例如,为了减小要使用的写缓冲器230的容量,主机100可以将与特定流相对应的分条大小设置为较小大小。
图5是示出了图1的存储器控制器210的示例的框图。参考图5,存储器控制器210可以包括总线211、处理器212、RAM 213、ROM 214、纠错码(ECC)电路215、主机接口216和存储器接口217。如所示,总线211被配置为提供存储器控制器210的各组件之间的通道。处理器212可以控制存储器控制器210的整体操作。例如,响应于来自主机100的写命令HRCMD,处理器212可以控制分配要存储数据“DATA”的存储体的操作。
RAM 213可以用作存储器控制器210的缓冲器存储器、高速缓冲器存储器或工作存储器。RAM 213可以存储处理器212执行的代码和命令,并且可以存储由处理器212处理的数据。RAM 213可以包括闪存转换层(FTL)218。FTL 218可以是在主机100和存储器器件220之间执行各种管理操作使得可以有效地使用存储器器件220的软件或固件。在实施例中,RAM213中存储的FTL 218可以由处理器212驱动。
例如,FTL 218可以基于针对每个流的分条大小来分配要存储数据“DATA”的存储体,并且可以管理所分配的存储体的存储器地址。此外,FTL 218可以根据所分配的存储体来分配写缓冲器230中的临时存储数据“DATA”的存储器地址,并且可以管理写缓冲器230中的分配的存储器地址。
ROM 214可以以固件的形式存储存储器控制器210进行操作所需的各种信息。例如,ROM 214可以存储与流标识信息相对应的分条大小信息。然而,本发明构思不限于此。例如,与流标识信息相对应的分条大小信息可以存储在RAM 213中。
在将数据“DATA”存储在存储器器件220中之前,ECC电路215可以产生用于纠错的奇偶校验位。此外,ECC电路215可以通过使用奇偶校验位来校正从存储器器件220输出的数据“DATA”的错误。在实施例中,ECC电路215可以基于分条大小来产生奇偶校验位。例如,在分条大小为“2CH×2存储体”的情况下,ECC电路215可以关于数据“DATA”要存储在三个存储体中来产生奇偶校验位。也就是说,数据“DATA”可以存储在四个存储体中的三个存储体中,并且奇偶校验位可以存储在其余的一个存储体中。在分条大小为“1CH×2存储体”的情况下,ECC电路215可以关于数据“DATA”要存储在一个存储体中来产生奇偶校验位。这样,随着分条大小减小,要产生的奇偶校验位的数量可以增加,因此,可以提高存储设备200的可靠性。因此,主机100可以考虑峰值顺序读写性能、多流支持计数以及存储设备200的可靠性,针对每个流选择分条大小。
存储器控制器210可以通过主机接口216与主机100通信。例如,存储器控制器210可以通过主机接口216接收与针对每个流而选择的分条大小有关的信息。存储器控制器210可以通过主机接口216接收包括流标识信息在内的写命令HRCMD。例如,主机接口216可以遵照NVMe(非易失性存储器快速)协议来执行通信,但是本发明构思不限于此。
存储器控制器210可以通过存储器接口217与存储器器件220通信。例如,存储器控制器210可以通过存储器接口217将写命令HRCMD和数据“DATA”提供给分配的存储体。
图6是示出了图1的主机100和存储设备200执行的写操作的示例的图。参考图6,在操作S101中,主机100可以向存储设备200请求支持分条大小信息。支持分条大小信息指示存储设备200可以提供的最大分条大小信息。例如,在存储设备200可以提供最大“4CH×4存储体”分条的情况下,支持分条大小信息可以是“4CH×4存储体”。例如,主机100可以通过指令(directive)命令或标识命令向存储设备200请求支持分条大小信息。然而,本发明构思不限于此。例如,主机100可以通过使用单独的命令来请求支持分条大小信息。
在操作S102中,存储设备200可以向主机100提供支持分条大小信息。在操作S103中,主机100可以基于支持分条大小信息针对每个流选择分条大小。例如,在支持分条大小信息是“4CH×4存储体”的情况下,主机100可以关于第一流选择“2CH×2存储体”,并且可以关于第二流选择“1CH×1存储体”。
在操作S104中,主机100可以向存储设备200提供包括流标识信息和分条大小信息在内的写命令HRCMD。例如,写命令HRCMD可以包括指示第一流的流标识信息和指示“2CH×2存储体”的分条大小信息。此外,主机100可以向存储设备200提供写数据“DATA”。
在操作S105中,存储设备200可以基于写命令HRCMD中包括的流标识信息和分条大小信息来分配要存储数据“DATA”的存储体。在操作S106中,存储设备200可以将数据“DATA”写入所分配的存储体中。
图7是示出了针对图6的写操作的存储器控制器210的示例性操作的图。详细地,图7的写操作的示例与图2的写操作的示例一致。参考图7,存储器控制器210可以从主机100接收第一写命令至第七写命令HRCMD1至HRCMD7以及第一数据至第七数据DATA1至DATA7(①至⑦)。第一写命令至第七写命令HRCMD1至HRCMD7可以分别与第一数据至第七数据DATA1至DATA7相对应。例如,第一写命令HRCMD1可以是针对第一数据DATA1的写命令HRCMD。第一写命令至第七写命令HRCMD1至HRCMD7中的每一个写命令可以包括流标识信息和分条大小信息。
写命令HRCMD1、HRCMD2、HRCMD4、HRCMD6和HRCMD7中的每一个写命令可以包括指示第一流的流标识信息和指示“2CH×2存储体”的分条大小信息。写命令HRCMD3和HRCMD5中的每一个写命令可以包括指示第二流的流标识信息和指示“1CH×1存储体”的分条大小信息。
存储器控制器210可以基于流标识信息和分条大小信息,针对数据DATA1至DATA7中的每一个数据分配存储体,如图2所示。例如,存储器控制器210可以将连接到第一通道CH1的第一存储体221分配给第一数据DATA1,并且可以将连接到第二通道CH2的第一存储体231分配给第二数据DATA2。
存储器控制器210可以映射被分配给相应数据“DATA”的存储体的存储器地址,并且可以将映射信息存储在映射表BT中。映射表BT可以存储在图5的RAM 213或ROM 214中或存储在外部存储器中。例如,存储器控制器210可以将第一数据DATA1和连接到第一通道CH1的第一存储体221的第一块的地址相映射,并且可以将映射结果存储在映射表BT中。存储器控制器210可以将第三数据DATA3和连接到第一通道CH1的第一存储体221的第二块的地址相映射,并且可以将映射结果存储在映射表BT中。
在图7中示出了数据“DATA”和存储器地址之间的映射信息存储在映射表BT中的示例,但是本发明构思不限于此。例如,在从主机100接收到与数据“DATA”相对应的逻辑地址的情况下,存储器控制器210可以将逻辑地址和存储器地址(即,存储器器件220的物理地址)相映射,并且可以将映射信息存储在映射表BT中。
图8是示出了图1的主机100和存储设备200执行的写操作的另一示例的图。参考图8,操作S111至操作S113与图6的操作S101至操作S103相同,因此,将省略附加描述以避免冗余。
在操作S114中,主机100可以向存储设备200提供包括流标识信息和分条大小信息在内的第一指令命令。主机100可以通过指令命令设置存储设备200的操作所需的各种信息。例如,第一指令命令可以是指令接收命令。
由于向存储设备200提供了包括流标识信息和分条大小信息在内的第一指令命令,因此在操作S115中,存储设备200可以设置与第一指令命令的流标识信息相对应的分条大小。例如,与第一流相对应的分条大小可以被设置为“2CH×2存储体”。存储设备200可以映射和存储分条大小和相关的流标识信息。
在操作S116中,主机100可以向存储设备200提供包括流标识信息在内的写命令HRCMD。主机100可以将数据“DATA”与写命令HRCMD一起提供给存储设备200。
在操作S117中,存储设备200可以基于写命令HRCMD的流标识信息和预设的分条大小信息来分配要存储数据“DATA”的存储体。预设的分条大小信息可以是与流标识信息相对应的分条大小信息。在操作S118中,存储设备200可以将数据“DATA”写入所分配的存储体中。
在操作S119中,主机100可以向存储设备200提供包括流标识信息在内的第二指令命令。例如,第二指令命令可以是指令发送命令。
当向存储设备200提供了包括流标识信息的第二指令命令时,在操作S120中,存储设备200可以取消映射被设置为与第二指令命令的流标识信息相对应的分条大小。也就是说,存储设备200可以删除被设置为与流标识信息相对应的分条大小信息。例如,在指示第一流的流标识信息包括在第二指令命令中的情况下,存储设备200可以取消映射设置为与第一流相对应的分条大小。
图8中给出了第二指令命令包括流标识信息的描述,但是本发明构思不限于此。例如,在将不包括流标识信息的第二指令命令提供给存储设备200的情况下,存储设备200可以整体取消映射针对每个流设置的分条大小。
图8中给出了在操作S118之后执行操作S119和操作S120的描述,但是本发明构思不限于此。例如,可以执行取消映射由第二指令命令设置的分条大小的操作,而不管操作S111至操作S118的写操作。
如上所述,在通过使用单独的指令命令预先设置针对每个流的分条大小的情况下,写命令HRCMD可以仅包括流标识信息。因此,分条大小信息可以不包括在写命令HRCMD中。因此,可以减少要从主机100向存储设备200提供的数据的量,因此,可以提高写操作的速度。
图9是示出了针对图8的写操作的存储器控制器210的示例性操作的图。详细地,图9的写操作的示例与图2的写操作的示例一致。参考图9,首先,存储器控制器210可以接收两个第一指令命令DRCMD1和DRCMD2(①,②)。第一指令命令DRCMD1和DRCMD2可以包括流标识信息和分条大小信息。第一指令命令DRCMD1可以包括指示第一流的流标识信息和指示“2CH×2存储体”的分条大小信息。第一指令命令DRCMD2可以包括指示第二流的流标识信息和指示“1CH×1存储体”的分条大小信息。
在接收到第一指令命令DRCMD1和DRCMD2的情况下,存储器控制器210可以基于指令类型或指令操作值识别第一指令命令DRCMD1和DRCMD2是用于设置分条大小的命令。在这种情况下,第一指令命令DRCMD1和DRCMD2可以包括指令类型和指令操作值。
响应于第一指令命令DRCMD1,存储器控制器210可以将分条大小“2CH×2存储体”和第一流相映射,并且可以将映射信息存储在映射表SST中。响应于第一指令命令DRCMD1,存储器控制器210可以将分条大小“1CH×1存储体”和第二流相映射,并且可以将映射信息存储在映射表SST中。映射表SST可以存储在图5的RAM 213或ROM 214中或存储在外部存储器中。
之后,存储器控制器210可以从主机100接收第一写命令至第七写命令HRCMD1至HRCMD7以及第一数据至第七数据DATA1至DATA7(③至⑨)。第一写命令至第七写命令HRCMD1至HRCMD7可以分别与第一数据至第七数据DATA1至DATA7相对应。第一写命令至第七写命令HRCMD1至HRCMD7中的每一个写命令可以包括流标识信息。
写命令HRCMD1、HRCMD2、HRCMD4、HRCMD6和HRCMD7中的每一个写命令可以包括指示第一流的流标识信息。写命令HRCMD3和HRCMD5中的每一个写命令可以包括指示第二流的流标识信息。
存储器控制器210可以基于流标识信息和预先被设置为与流标识信息相对应的分条大小信息来分配用于数据DATA1至DATA7中的每一个数据的存储体,如图2所示。存储器控制器210可以映射被分配给相应数据“DATA”的存储体的存储器地址,并且可以将映射信息存储在映射表BT中。
图10是示出了针对图8的取消映射分条大小的存储器控制器210的示例性操作的图。参考图10,存储器控制器210可以接收第二指令命令DSCMD。第二指令命令DSCMD可以包括指示第二流的流标识信息。
在接收到第二指令命令DSCMD的情况下,存储器控制器210可以基于指令类型或指令操作值识别第二指令命令DSCMD是用于取消映射针对流的分条大小的命令。在这种情况下,第二指令命令DSCMD可以包括指令类型和指令操作值。
响应于第二指令命令DSCMD,存储器控制器210可以取消映射被映射到第二流的分条大小,并且可以更新映射表SST的映射信息。
如上所述,根据本发明构思的实施例的主机100可以针对每个流动态地选择分条大小,并且存储设备200可以基于针对每个流的分条大小来存储数据“DATA”。这样,存储设备200可以考虑主机100的所需性能来应用分条策略。然而,本发明构思不限于此。例如,主机100可以针对每个命名空间动态地选择分条大小,并且存储设备200可以基于针对每个命名空间的分条大小来存储数据“DATA”。
图11是示出了根据本发明构思的实施例的SSD系统2000的框图。参考图11,SSD系统2000可以包括主机2100和SSD 2200。SSD 2200通过信号连接器2201与主机2100交换信号SIG,并且通过电力连接器2202向SSD 2200供电PWR。SSD 2200可以包括SSD控制器2210、多个闪存2221至222n、辅助电源2230和缓冲器存储器2240。闪存2221至222n中的每一个可以用单独的管芯或单独的芯片实现。例如,闪存2221至222n中的每一个可以包括参考图1至图10描述的存储体。
SSD控制器2210可以响应于从主机2100接收的信号SIG来控制闪存2221至222n。闪存2221至222n可以在SSD控制器2210的控制下操作。SSD控制器2210可以包括参考图1至图10描述的存储器控制器210的功能。例如,SSD控制器2210可以从主机2100接收包括流标识信息的写命令HRCMD以及数据“DATA”。SSD控制器2210可以基于与流标识信息相对应的分条大小来分配闪存2221至222n中的要存储数据“DATA”的一个闪存。SSD控制器2210可以将数据“DATA”存储在所分配的闪存中。
辅助电源2230通过电力连接器2202与主机2100连接。可以由来自主机2100的电力PWR对辅助电源2230进行充电。在不能从主机2100平稳地供应电力PWR的情况下,辅助电源2230可以提供SSD系统2200的电力。
缓冲器存储器2240作为SSD 2200的缓冲器存储器操作。缓冲器存储器2240可以包括参考图3和图4描述的写缓冲器230的功能。例如,缓冲器存储器2240可以临时存储从主机2100接收的数据,或者可以临时存储闪存2221至222n的元数据(例如,图9的映射表BT和SST)。备选地,缓冲器存储器2240可以临时存储SSD控制器2210操作所需的各种信息。
根据本发明构思,可以考虑峰值顺序读写性能、多流支持计数和存储设备的可靠性来应用分条策略。
此外,根据本发明构思,在存储设备中,可以通过针对每个流应用分条策略来减少所使用的缓冲器存储器的量。
尽管已经参考本发明的示例性实施例描述了本发明构思,但是对于本领域普通技术人员来说显而易见的是,可以在不脱离如在所附权利要求中说明的本发明构思的精神和范围的情况下,对其进行各种改变和修改。
Claims (14)
1.一种包括多个存储体的存储设备的操作方法,所述方法包括:
从主机接收包括流标识信息和分条大小信息在内的第一指令命令;
响应所述第一指令命令,将所述分条大小信息与所述流标识信息相映射;
从所述主机接收包括所述流标识信息的写命令;
响应于所述写命令,基于与所述流标识信息相对应的分条大小来分配所述多个存储体之中的要存储数据的存储体;以及
将所述数据写入所分配的存储体中,
其中,基于在所述映射中映射的所述分条大小信息来分配所述要存储数据的存储体。
2.根据权利要求1所述的方法,还包括:
在写入数据之后,从所述主机接收包括所述流标识信息的第二指令命令;以及
响应所述第二指令命令,取消映射被映射到所述流标识信息的所述分条大小信息。
3.根据权利要求1所述的方法,还包括:
在接收所述写命令之前,根据所述主机的请求,在所述存储设备处向所述主机提供支持分条大小信息。
4.根据权利要求3所述的方法,其中,所述主机基于所述支持分条大小信息来选择与所述流标识信息相对应的所述分条大小。
5.根据权利要求1所述的方法,其中,所述分条大小指示要存储相同流标识信息的数据的候选存储体的数量。
6.一种主机的操作方法,所述主机控制包括多个存储体的存储设备,所述方法包括:
针对每个流选择分条大小;以及
向所述存储设备提供与所选择的分条大小有关的分条大小信息和与所选择的分条大小相对应的流标识信息,
其中,基于所述分条大小信息和所述流标识信息,分配所述多个存储体之中的要存储数据的存储体,并且
其中,在包括所述流标识信息的后续发出的写命令之前,通过所述主机发出的指令命令将所述分条大小信息和所述流标识信息提供给所述存储设备。
7.根据权利要求6所述的方法,还包括:
在所述选择之前,向所述存储设备请求支持分条大小信息,
其中,基于从所述存储设备提供的所述支持分条大小信息来选择所述分条大小。
8.一种存储设备,包括:
存储器器件,包括多个存储体;以及
存储器控制器;
其中,响应于来自主机的包括流标识信息的写命令,所述存储器控制器被配置为基于与所述流标识信息相对应的分条大小,分配所述多个存储体之中的要存储数据的存储体,并且
其中,所述存储器控制器被配置为:
在从所述主机接收所述写命令之前,从所述主机接收包括所述流标识信息和所述分条大小信息在内的第一指令命令;
响应所述第一指令命令,将所述分条大小信息与所述流标识信息相映射;以及
基于映射的分条大小信息分配所述要存储数据的存储体。
9.根据权利要求8所述的存储设备,其中,基于所述分条大小和与数据有关的所述流标识信息两者来分配所述要存储数据的存储体。
10.根据权利要求8所述的存储设备,还包括:
包括多个缓冲器区域的写缓冲器,
其中,在将所述数据存储在所分配的存储体中之前,所述存储器控制器将所述数据存储在与所分配的存储体相对应的缓冲器区域中。
11.根据权利要求10所述的存储设备,其中,当在将所述数据存储在所述缓冲器区域中之后所述缓冲器区域被完全填充时,所述存储器控制器将存储在所述缓冲器区域中的所述数据存储在所分配的存储体中。
12.根据权利要求8所述的存储设备,其中,响应于来自所述主机的包括所述流标识信息的第二指令命令,所述存储器控制器取消映射被映射到所述流标识信息的所述分条大小信息。
13.根据权利要求8所述的存储设备,其中,在从所述主机接收所述写命令之前,所述存储器控制器根据所述主机的请求向所述主机提供支持分条大小信息,以及
其中,所述主机基于所述支持分条大小信息来选择所述分条大小。
14.根据权利要求8所述的存储设备,其中,所述分条大小指示要存储相同流标识信息的数据的候选存储体的数量。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180136538A KR20200053204A (ko) | 2018-11-08 | 2018-11-08 | 저장 장치, 저장 장치의 동작 방법 및 저장 장치를 제어하는 호스트의 동작 방법 |
KR10-2018-0136538 | 2018-11-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111159061A CN111159061A (zh) | 2020-05-15 |
CN111159061B true CN111159061B (zh) | 2024-05-28 |
Family
ID=70551360
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911057357.2A Active CN111159061B (zh) | 2018-11-08 | 2019-10-31 | 存储设备、存储设备的操作方法和主机的操作方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10942679B2 (zh) |
KR (1) | KR20200053204A (zh) |
CN (1) | CN111159061B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200053204A (ko) * | 2018-11-08 | 2020-05-18 | 삼성전자주식회사 | 저장 장치, 저장 장치의 동작 방법 및 저장 장치를 제어하는 호스트의 동작 방법 |
KR20220101349A (ko) | 2021-01-11 | 2022-07-19 | 삼성전자주식회사 | 스토리지 장치의 데이터 기입 방법 및 이를 수행하는 스토리지 장치 |
KR20220124318A (ko) | 2021-03-02 | 2022-09-14 | 삼성전자주식회사 | 쓰기 동작을 리디렉션하는 스토리지 컨트롤러 및 이의 동작 방법 |
US11693594B2 (en) * | 2021-03-29 | 2023-07-04 | Micron Technology, Inc. | Zone striped zone namespace memory |
CN113222807B (zh) * | 2021-05-22 | 2023-12-19 | 上海阵量智能科技有限公司 | 数据存储器、数据存储、读取方法、芯片及计算机设备 |
US11656792B2 (en) * | 2021-06-29 | 2023-05-23 | International Business Machines Corporation | Mirroring data in write caches of a controller of a non-volatile memory |
KR102385572B1 (ko) | 2021-11-02 | 2022-04-13 | 삼성전자주식회사 | 컨트롤러, 스토리지 장치 및 스토리지 장치의 동작 방법 |
KR102493864B1 (ko) * | 2021-11-16 | 2023-01-31 | 삼성전자주식회사 | 스토리지 장치의 동작 방법 및 호스트 및 스토리지 장치를 포함하는 스토리지 시스템의 동작 방법 |
JP2023140125A (ja) | 2022-03-22 | 2023-10-04 | キオクシア株式会社 | メモリシステムおよび方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102483719A (zh) * | 2009-07-10 | 2012-05-30 | 苹果公司 | 基于块的非透明高速缓存 |
CN103581033A (zh) * | 2012-07-27 | 2014-02-12 | 重庆重邮信科通信技术有限公司 | 数据流处理的方法及设备 |
CN108121674A (zh) * | 2016-11-30 | 2018-06-05 | 三星电子株式会社 | 缓冲器分配的控制器和存储装置及操作存储装置的方法 |
CN108335711A (zh) * | 2017-01-18 | 2018-07-27 | 三星电子株式会社 | 非易失性存储器件、其操作方法及存储设备 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6938123B2 (en) * | 2002-07-19 | 2005-08-30 | Storage Technology Corporation | System and method for raid striping |
US20070079098A1 (en) * | 2005-10-03 | 2007-04-05 | Hitachi, Ltd. | Automatic allocation of volumes in storage area networks |
US20070180214A1 (en) * | 2005-12-20 | 2007-08-02 | Dell Products L.P. | System and method for dynamic striping in a storage array |
JP4856467B2 (ja) * | 2006-05-01 | 2012-01-18 | 株式会社日立製作所 | ストレージ資源管理システム、ストレージ資源管理方法および管理計算機 |
CN100530138C (zh) | 2007-06-28 | 2009-08-19 | 忆正存储技术(深圳)有限公司 | 基于多通道闪存设备逻辑条带的自适应控制方法 |
JP2010176646A (ja) * | 2009-02-02 | 2010-08-12 | Toshiba Information Systems (Japan) Corp | メモリシステムおよびメモリシステムのインターリーブ制御方法 |
US8244962B2 (en) | 2009-04-08 | 2012-08-14 | Google Inc. | Command processor for a data storage device |
JP5021018B2 (ja) * | 2009-11-30 | 2012-09-05 | 株式会社日立製作所 | データ配置方法及びデータ管理システム |
US8472350B2 (en) * | 2010-12-31 | 2013-06-25 | Telefonaktiebolaget L M Ericsson (Publ) | Bank aware multi-bit trie |
US8848445B2 (en) * | 2011-05-17 | 2014-09-30 | Sandisk Technologies Inc. | System and method for minimizing write amplification while maintaining sequential performance using logical group striping in a multi-bank system |
KR20120129239A (ko) * | 2011-05-19 | 2012-11-28 | 삼성전자주식회사 | 비휘발성 메모리 장치, 이의 동작 방법, 및 이를 포함하는 메모리 시스템 |
WO2013138552A1 (en) | 2012-03-16 | 2013-09-19 | Marvell World Trade Ltd. | Architecture for storage of data on nand flash memory |
US9542126B2 (en) * | 2013-04-22 | 2017-01-10 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Redundant array of independent disks systems that utilize spans with different storage device counts for a logical volume |
US9542284B2 (en) | 2014-08-06 | 2017-01-10 | International Business Machines Corporation | Buffered automated flash controller connected directly to processor memory bus |
US20160048342A1 (en) * | 2014-08-12 | 2016-02-18 | Facebook, Inc. | Reducing read/write overhead in a storage array |
US9696935B2 (en) * | 2015-04-24 | 2017-07-04 | Kabushiki Kaisha Toshiba | Storage device that secures a block for a stream or namespace and system having the storage device |
US9898202B2 (en) | 2015-11-30 | 2018-02-20 | Samsung Electronics Co., Ltd. | Enhanced multi-streaming though statistical analysis |
US9880780B2 (en) | 2015-11-30 | 2018-01-30 | Samsung Electronics Co., Ltd. | Enhanced multi-stream operations |
KR101734160B1 (ko) | 2016-04-28 | 2017-05-11 | 주식회사 디에이아이오 | 작업부하 편중을 완화하는 저장 장치 |
US10198215B2 (en) | 2016-06-22 | 2019-02-05 | Ngd Systems, Inc. | System and method for multi-stream data write |
JP2018022275A (ja) | 2016-08-02 | 2018-02-08 | 東芝メモリ株式会社 | 半導体記憶装置 |
KR20200053204A (ko) * | 2018-11-08 | 2020-05-18 | 삼성전자주식회사 | 저장 장치, 저장 장치의 동작 방법 및 저장 장치를 제어하는 호스트의 동작 방법 |
-
2018
- 2018-11-08 KR KR1020180136538A patent/KR20200053204A/ko not_active Application Discontinuation
-
2019
- 2019-05-16 US US16/413,755 patent/US10942679B2/en active Active
- 2019-10-31 CN CN201911057357.2A patent/CN111159061B/zh active Active
-
2021
- 2021-02-04 US US17/167,772 patent/US11537324B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102483719A (zh) * | 2009-07-10 | 2012-05-30 | 苹果公司 | 基于块的非透明高速缓存 |
CN103581033A (zh) * | 2012-07-27 | 2014-02-12 | 重庆重邮信科通信技术有限公司 | 数据流处理的方法及设备 |
CN108121674A (zh) * | 2016-11-30 | 2018-06-05 | 三星电子株式会社 | 缓冲器分配的控制器和存储装置及操作存储装置的方法 |
CN108335711A (zh) * | 2017-01-18 | 2018-07-27 | 三星电子株式会社 | 非易失性存储器件、其操作方法及存储设备 |
Also Published As
Publication number | Publication date |
---|---|
US20200150899A1 (en) | 2020-05-14 |
KR20200053204A (ko) | 2020-05-18 |
US10942679B2 (en) | 2021-03-09 |
CN111159061A (zh) | 2020-05-15 |
US20210157528A1 (en) | 2021-05-27 |
US11537324B2 (en) | 2022-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111159061B (zh) | 存储设备、存储设备的操作方法和主机的操作方法 | |
CN109582599B (zh) | 数据储存装置以及非挥发式存储器操作方法 | |
JP6709180B2 (ja) | メモリシステムおよび制御方法 | |
TWI703494B (zh) | 記憶體系統及非揮發性記憶體之控制方法 | |
JP6765321B2 (ja) | メモリシステムおよび制御方法 | |
JP6765322B2 (ja) | メモリシステムおよび制御方法 | |
US20100082917A1 (en) | Solid state storage system and method of controlling solid state storage system using a multi-plane method and an interleaving method | |
CN110096221B (zh) | 存储器系统及其控制方法 | |
JP7155028B2 (ja) | メモリシステムおよび制御方法 | |
KR20120030137A (ko) | 영구 가비지 컬렉션을 갖는 메모리 시스템 | |
CN109101185B (zh) | 固态存储设备及其写命令和读命令处理方法 | |
CN109656833B (zh) | 数据储存装置 | |
CN108959112B (zh) | 存储系统及使用其的损耗均衡方法 | |
US20180107391A1 (en) | Storage system having a host that manages physical data locations of storage device | |
JP2021033848A (ja) | メモリシステムおよび制御方法 | |
KR102349381B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
JP2021033847A (ja) | メモリシステムおよび制御方法 | |
KR20200028615A (ko) | 스토리지 장치, 스토리지 시스템 및 스토리지 장치의 동작 방법 | |
JP2023012773A (ja) | メモリシステムおよび制御方法 | |
JP2020123040A (ja) | メモリシステムおよび制御方法 | |
JP2021033845A (ja) | メモリシステムおよび制御方法 | |
US11182289B1 (en) | Memory system and operating method thereof | |
JP2023044135A (ja) | メモリシステムおよび制御方法 | |
CN107844265A (zh) | 操作计算系统的方法以及操作计算系统中的存储器控制器的方法 | |
US11922036B2 (en) | Host data stream assignment with space-leveling across storage block containers |
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 |