CN110688324B - 固态驱动器及其存储器分配方法 - Google Patents
固态驱动器及其存储器分配方法 Download PDFInfo
- Publication number
- CN110688324B CN110688324B CN201910338020.2A CN201910338020A CN110688324B CN 110688324 B CN110688324 B CN 110688324B CN 201910338020 A CN201910338020 A CN 201910338020A CN 110688324 B CN110688324 B CN 110688324B
- Authority
- CN
- China
- Prior art keywords
- stream
- solid state
- state drive
- group
- flow
- 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 145
- 239000007787 solid Substances 0.000 title claims abstract description 117
- 238000000034 method Methods 0.000 title claims description 20
- 238000013507 mapping Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 36
- 239000000872 buffer Substances 0.000 description 20
- 230000006870 function Effects 0.000 description 7
- 238000012937 correction Methods 0.000 description 6
- 239000000758 substrate Substances 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 101100058964 Arabidopsis thaliana CALS5 gene Proteins 0.000 description 2
- 102100031885 General transcription and DNA repair factor IIH helicase subunit XPB Human genes 0.000 description 2
- 101000920748 Homo sapiens General transcription and DNA repair factor IIH helicase subunit XPB Proteins 0.000 description 2
- 101100482995 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) gsl-3 gene Proteins 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 230000004083 survival effect Effects 0.000 description 2
- 101000641216 Aquareovirus G (isolate American grass carp/USA/PB01-155/-) Non-structural protein 4 Proteins 0.000 description 1
- 101100366714 Caenorhabditis elegans ssl-1 gene Proteins 0.000 description 1
- 101100204010 Drosophila melanogaster Ssl gene Proteins 0.000 description 1
- 101000927946 Homo sapiens LisH domain-containing protein ARMC9 Proteins 0.000 description 1
- 101100049574 Human herpesvirus 6A (strain Uganda-1102) U5 gene Proteins 0.000 description 1
- 102100036882 LisH domain-containing protein ARMC9 Human genes 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 101150064834 ssl1 gene Proteins 0.000 description 1
- 101150062870 ssl3 gene Proteins 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 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/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
- 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
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced 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
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
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)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Oscillators With Electromechanical Resonators (AREA)
- Credit Cards Or The Like (AREA)
Abstract
一种固态驱动器包括:多个非易失性存储器,所述非易失性存储器中的每一个包括通道,所述通道包括连接到管芯的至少一个通路;主机接口,从主机接收流数据和流信息;以及资源分配器,基于所述流信息将所述流数据分配给所述多个非易失性存储器的超级块,其中第一超级块包括第一单位超级块,以及所述第一单位超级块包括第一管芯的块,所述第一管芯对应于第一通道并且连接到包括在所述第一通道中的多个通路。
Description
相关申请的交叉引用
本申请要求于2018年7月6日在韩国知识产权局提交的韩国专利申请No.10-2018-0078729的优先权,并在此通过引用完整地并入其公开内容。
技术领域
本发明构思涉及固态驱动器及其存储器分配方法。
背景技术
传统上,磁盘是主要的计算机数据存储设备。然而,使用非易失性存储器(而不是磁盘)进行存储的固态驱动器(SSD)设备在计算机系统和便携式设备中的使用正在不断增加。
SDD设备的非易失性存储器可以是闪存,并且可以包括各种设计考虑因素。这些考虑因素可以包括用于有效利用存储容量的策略。例如,当先前存储的数据值被更新到闪存时,当前存储该数据值的页在内部被标记为无效的,并且更新后的数据值被存储在新的页中。
当删除数据时,存储该数据的页同样被标记为无效的。可以通过称为垃圾收集的过程来恢复无效的页。垃圾收集在包括多个页在内的块的级别进行操作。如果直到一个块完全为空(例如,直到块中的所有页被标记为无效的)时才执行垃圾收集,则SSD可能没有用于写入数据的空闲页。因此,执行垃圾收集需要将有效的页从删除目标块移动到其他块。
由于这种垃圾收集技术消耗了大量资源,因此可能会降低SSD的速度和性能。
发明内容
根据本发明构思的示例性实施例,提供了一种固态驱动器,包括:多个非易失性存储器,所述非易失性存储器中的每一个包括通道,所述通道包括连接到管芯的至少一个通路;主机接口,从主机接收流数据和流信息;以及资源分配器,基于所述流信息将所述流数据分配给所述多个非易失性存储器的超级块,其中第一超级块包括第一单位超级块,以及所述第一单位超级块包括第一管芯的块,所述第一管芯对应于第一通道并且连接到包括在所述第一通道中的多个通路。
根据本发明构思的示例性实施例,提供了一种固态驱动器,包括:多个非易失性存储器;以及固态驱动器控制器,从主机接收多个流和流信息,根据所述流信息定义所述非易失性存储器中要存储所述流中的每一个的超级块的位置和大小,并将所述流中的每一个分配给与所述流相对应的超级块。
根据本发明构思的示例性实施例,提供了一种固态驱动器的存储器分配方法,该方法包括:从主机接收流数据和流信息;基于所述流信息在非易失性存储器中定义超级块,所述超级块包括单位超级块,所述单位超级块与通道相对应并且包括管芯的块,所述管芯连接到包括在所述通道中的多个通路;以及将所述流数据分配给所述超级块。
根据本发明构思的示例性实施例,提供了一种固态驱动器,包括:多个非易失性存储器,所述非易失性存储器中的每一个包括通道,所述通道包括连接到管芯的至少一个通路;主机接口,从主机接收流数据和流信息;以及资源分配器,根据所述流信息将所述流数据分配给所述多个非易失性存储器的块,其中,所述块中之一包括流组,所述流组包括分配给第一通道的第一行的第一流、分配给第二通道的第一行的第二流、分配给第三通道的第一行的第三流以及分配给第四通道的第一行的第四流,其中,所述第一通道、所述第二通道、所述第三通道和所述第四通道中的每一个通道的第一行彼此相邻。
附图说明
通过参考附图详细描述本发明构思的示例性实施例,本发明构思的以上和其他特征将变得更显而易见,在附图中:
图1是示出了根据本发明构思的示例性实施例的固态驱动器系统的框图;
图2是详细示出了图1的非易失性存储器的框图;
图3是详细示出了图2的存储单元阵列的等效电路图;
图4是详细示出了图2的存储单元阵列的等效电路图;
图5是详细示出了图1的固态驱动器控制器的框图;
图6是示出了图5的资源分配器的存储器分配操作的示意图;
图7是示出了图5的资源分配器的存储器分配操作的示意图;
图8是详细示出了图1的固态驱动器控制器的框图;
图9是示出了图8的映射表的示例性表;
图10是示出了图8的分组表的示例性表;
图11是示出了图5的资源分配器的分组操作的示意图;
图12是示出了图5的资源分配器的性能的示例性图;
图13是示出了图1的固态驱动器与主机之间的命令流的示意图;
图14是示出了根据本发明构思的示例性实施例的固态驱动器的操作的示意图;
图15是示出了根据本发明构思的示例性实施例的固态驱动器的框图;
图16是示出了图15的资源分配器的操作的示意图;
图17是示出了与主机之间的命令流的示意图;
图18是示出了根据本发明构思的示例性实施例的固态驱动器的操作的示意图;
图19是示出了根据本发明构思的示例性实施例的固态驱动器的操作的示意图;
图20是示出了根据本发明构思的示例性实施例的固态驱动器的存储器分配方法的流程图;
图21是详细示出了图20的超级块定义步骤的流程图;
图22是示出了根据本发明构思的示例性实施例的固态驱动器的存储器分配方法的流程图;以及
图23是详细示出了图22的超级块定义步骤的流程图。
具体实施方式
在下文中,将参考图1至图13描述根据本发明构思的示例性实施例的固态驱动器。
图1是示出了根据本发明构思的示例性实施例的固态驱动器系统的框图。
参考图1,固态驱动器系统包括主机1100和固态驱动器(SSD)1200。
固态驱动器1200可以包括多个非易失性存储器件10、11、12和13以及固态驱动器控制器20。
多个非易失性存储器件10、11、12和13可以用作固态驱动器1200的存储介质。多个非易失性存储器件10、11、12和13中的每一个可以包括闪存器件。
固态驱动器控制器20可以经由多个通道CH1、CH2、CH3和CH4连接到多个非易失性存储器件10、11、12和13中的每一个。在图1中,通道的数量可以是4;然而,本发明构思不限于此。例如,根据本发明构思的示例性实施例的固态驱动器可以具有三个或少于三个通道或者五个或多于五个通道。
多个非易失性存储器件可以连接到一个通道,连接到一个通道的多个非易失性存储器的数量可以被称为存储体(bank)或通路(way)。各个通路可以连接到单个管芯(die)或芯片。
例如,第一通道CH1可以包括第一通路W1、第二通路W2、第三通路W3和第四通路W4。第一通路W1连接到第一管芯10_1,第二通路W2可以连接到第二管芯10_2。第三通路W3连接到第三管芯10_3,第四通路W4可以连接到第四管芯10_4。换句话说,第一非易失性存储器10可以包括四个管芯,即第一管芯10_1、第二管芯10_2、第三管芯10_3和第四管芯10_4。
第二通道CH2也连接到四个通路,例如,第一通路W1、第二通路W2、第三通路W3和第四通路W4,并且各个通路可以分别连接到四个管芯11_1、11_2、11_3和11_4。第二非易失性存储器11可以包括四个管芯,即,第一管芯11_1、第二管芯11_2、第三管芯11_3和第四管芯11_4。
第三通道CH3也连接到四个通路,例如,第一通路W1、第二通路W2、第三通路W3和第四通路W4,并且各个通路可以分别连接到四个管芯12_1、12_2、12_3和12_4。第三非易失性存储器12可以包括四个管芯,即,第一管芯12_1、第二管芯12_2、第三管芯12_3和第四管芯12_4。
第四通道CH4也连接到四个通路,例如,第一通路W1、第二通路W2、第三通路W3和第四通路W4,并且各个通路可以分别连接到四个管芯13_1、13_2、13_3和13_4。第四非易失性存储器13可以包括四个管芯,即,第一管芯13_1、第二管芯13_2、第三管芯13_3和第四管芯13_4。
尽管连接到一个通道的管芯的数量被示为4,但是本发明构思不限于此。例如,连接到一个通道的多个非易失性存储器的数量可以是8。
固态驱动器控制器20可以经由信号连接器SC向主机1100发送信号SGL并从主机1100接收信号SGL。这里,信号SGL可以包括命令、地址、数据等。固态驱动器控制器20可以根据主机1100的命令将数据写入多个非易失性存储器件10、11、12和13,或者可以根据主机1100的命令从多个非易失性存储器件10、11、12和13读取数据。
固态驱动器1200还可以包括辅助电源设备30。辅助电源设备30可以经由电源连接器PC从主机1100接收电源PWR的输入,并且可以向固态驱动器控制器20供电。
辅助电源设备30可以位于固态驱动器1200的内部和外部。例如,辅助电源设备30可以位于主板上,并且可以向固态驱动器1200提供辅助电源。
固态驱动器1200还可以包括易失性存储器件40。易失性存储器件40作为固态驱动器控制器20的输入/输出缓冲器来操作。例如,在写入模式中,固态驱动器控制器20可以将从主机1100接收的数据存储在易失性存储器件40中,并且可以将存储在易失性存储器件40中的数据写入多个非易失性存储器件10、11、12和13中。此外,在读取模式中,固态驱动器控制器20可以将从多个非易失性存储器件10、11、12和13读取的数据存储在易失性存储器件40中,并且可以将存储在易失性存储器件40中的数据提供给主机1100。
易失性存储器件40可以包括动态随机存取存储器(DRAM)设备。然而,本发明构思不限于此。
多个非易失性存储器件10、11、12和13中的每一个可以包括多个存储块BL1、BL2、BL3和BL4。
多个非易失性存储器件10、11、12和13的存储块BL1、BL2、BL3和BL4可以形成单个超级块SBL。超级块SBL可以是具有块BL1、BL2、BL3和BL4的集合,其是特定非易失性存储器件的擦除单元。例如,超级块SBL可以是连接到彼此不同的通道CH1、CH2、CH3和CH4的块集合。
固态驱动器控制器20对流和超级块SBL进行映射。当支持多个流时,固态驱动器控制器20可以针对每个流映射不同的超级块SBL。可以一对一地对流和超级块SBL进行映射。备选地,可以按照一对多或多对一的关系对流和超级块SBL进行映射。
此外,固态驱动器控制器20可以在单级单元(SLC)模式、多级单元(MLC)模式或三级单元(TLC)模式下操作包括在多个非易失性存储器件10、11、12和13中的多个存储块BL1、BL2、BL3和BL4中的每一个。
当包括在多个非易失性存储器件10、11、12和13中的每一个中的存储块BL1、BL2、BL3和BL4在SLC模式下操作时,包括在特定存储块中的存储单元可以存储一比特的数据。
当包括在多个非易失性存储器件10、11、12和13中的每一个中的存储块BL1、BL2、BL3和BL4在MLC模式下操作时,包括在特定存储块中的存储单元可以存储两比特的数据。
当包括在多个非易失性存储器件10、11、12和13中的每一个中的存储块BL1、BL2、BL3和BL4在TLC模式下操作时,包括在特定存储块中的存储单元可以存储三比特的数据。
固态驱动器控制器20可以基于存储在多个非易失性存储器件10、11、12和13中的多个数据的访问模式,将多个数据分开存储在以SLC模式操作的存储器块、以MLC模式操作的存储器块或者以TLC模式操作的存储器块中。
稍后将描述固态驱动器控制器20的详细操作。
图2是详细示出了图1的非易失性存储器的框图。
参考图2,可以与图2的第一非易失性存储器10类似地分别实现图1的第一非易失性存储器至第四非易失性存储器10、11、12和13。
第一非易失性存储器10可以包括存储单元阵列100、地址解码器200、页缓冲器电路300、数据输入/输出电路400和控制电路500。
存储单元阵列100可以经由串选择线SSL、多个字线WL和地选择线GSL连接到地址解码器200。此外,存储单元阵列100可以经由多个位线BL连接到页缓冲器电路300。
存储单元阵列100可以包括多个存储块BL1、BL2、BL3和BL4,并且多个存储块BL1、BL2、BL3和BL4中的每一个可以包括连接到多个字线WL和多个位线BL的多个存储单元。
在本发明构思的示例性实施例中,存储单元阵列100可以是在衬底上形成为三维结构(或竖直结构)的三维存储单元阵列。在这种情况下,存储单元阵列100可以包括竖直存储单元串,该竖直存储单元串包括彼此堆叠的多个存储单元。
在本发明构思的另一个示例性实施例中,存储单元阵列100可以是在衬底上形成为二维结构(或水平结构)的二维存储单元阵列。
图3是详细示出了图2的存储单元阵列的示例性等效电路图。
图3的存储单元阵列100a可以对应于图2的存储单元阵列100。图3中示出的存储单元阵列100a是在衬底上形成为三维结构的三维存储单元阵列。例如,包括在存储单元阵列100a中的多个存储单元串可以形成在垂直于衬底的方向上。
参考图3,存储单元阵列100可以包括连接在位线BL1、BL2和BL3与公共源极线(CSL)之间的多个存储单元串NS11、NS12、NS13、NS21、NS22、NS23、NS31、NS32和NS33。多个存储单元串NS11至NS33中的每一个可以包括串选择晶体管(SST)、多个存储单元(MC1、MC2、MC3、MC4、MC5、MC6、MC7和MC8)以及地选择晶体管(GST)。
尽管图3示出了多个存储器单元串NS11至NS33中的每一个包括八个存储单元(MC1、MC2、……、MCS),但是本发明构思不限于此。
串选择晶体管(SST)可以连接到相应的串选择线SSL1、SSL2和SSL3。多个存储单元(MC1、MC2、...、MC8)可以分别连接到相应的字线(WL1、WL2、WL3、WL4、WL5、WL6、WL7和WL8)。地选择晶体管(GST)可以连接到相应的地选择线(GSL1、GSL2和GSL3)。串选择晶体管(SST)可以连接到相应的位线(BL1、BL2和BL3),地选择晶体管(GST)可以连接到公共源极线(CSL)。
具有相同高度的字线(例如,WL1)共同连接,并且地选择线(GSL1、GSL2和GSL3)和串选择线(SSL1、SSL2和SSL3)可以分别分离。
虽然图3示出了存储单元阵列100a连接到八个字线(WL1、WL2、……、WL8)和三个位线(BL1、BL2和BL3),但是本发明构思不限于此。
图4是详细示出了图2的存储单元阵列的示例性等效电路图。
图4的存储单元阵列100b可以对应于图2的存储单元阵列100。图4中示出的存储单元阵列100b是在衬底上形成为二维结构的二维存储单元阵列。例如,包括在存储单元阵列100b中的多个存储单元串可以形成在平行于衬底的方向上。
参考图4,存储单元阵列100b可以包括多个存储单元串(NS1、NS2、NS3、……、NSm)。
多个存储单元串(NS1、NS2、NS3、……、NSm)中的每一个可以包括串联连接的串选择晶体管(SST)、多个存储单元(MC)和地选择晶体管(GST)。
包括在多个存储单元串(NS1、NS2、NS3、……、NSm)中的串选择晶体管(SST)可以共同连接到串选择线SSL。在包括在多个存储单元串(NS1、NS2、NS3、……、NSm)中的多个存储单元(MC)当中,在相同行中形成的存储单元可以共同连接到相应的字线(WL1、WL2、WL3、WL4、……、WL(n-1)、WLn)。在多个存储单元串(NS1、NS2、NS3、……、NSm)中包括的地选择晶体管(GST)可以共同连接到地选择线GSL。
在多个存储单元串(NS1、NS2、NS3、……、NSm)中包括的地选择晶体管(GST)可以共同连接到公共源极线(CSL)。
在多个存储单元串(NS1、NS2、NS3、……、NSm)中包括的串选择晶体管(SST)可以连接到相应的位线(BL1、BL2、BL3、……、BLm)。
这里,n和m均表示正整数。
再次参考图2,控制电路500从固态驱动器控制器20接收命令信号CMD和地址信号ADDR,并且可以基于命令信号CMD和地址信号ADDR来控制非易失性存储器件10的写入操作、读取操作或擦除操作。
例如,控制电路500可以基于命令信号CMD产生控制信号CON,并且可以基于地址信号ADDR产生行地址R_ADDR和列地址C_ADDR。控制电路500可以将控制信号CON和行地址R_ADDR提供给地址解码器200,并可以将列地址C_ADDR提供给数据输入/输出电路400。
地址解码器200可以经由串选择线SSL、多个字线WL和地选择线GSL连接到存储单元阵列100。
在写入操作或读取操作时,地址解码器200可以基于从控制电路500提供的行地址R_ADDR,将多个字线WL之一确定为选择字线,并且将除了该选择字线之外的剩余字线确定为非选择字线。
地址解码器200可以从布置在非易失性存储器件10内部或外部的电压发生单元接收用于操作非易失性存储器件10的字线电压VWL。字线电压VWL可以经由地址解码器200施加到多个字线WL。
页缓冲器电路300可以经由多个位线BL连接到存储单元阵列100。
页缓冲器电路300可以包括多个页缓冲器。在本发明构思的示例性实施例中,一个位线可以连接到一个页缓冲器。在本发明构思的另一个示例性实施例中,两个或更多个位线可以连接到一个页缓冲器。
页缓冲器电路300可以在写入操作时暂时存储要写入到选定页的数据,并且可以在读取操作时暂时存储从选定页读取的数据。
数据输入/输出电路400可以经由数据线DL连接到页缓冲器电路300。
在写入操作时,数据输入/输出电路400从固态驱动器控制器20接收写入数据(DATA),并且可以基于从控制电路500提供的列地址C_ADDR向页缓冲器电路300提供写入数据(DATA)。
在读取操作时,数据输入/输出电路400可以基于从控制电路500提供的列地址C_ADDR,向固态驱动器控制器20提供存储在页缓冲器电路300中的读取数据(DATA)。
上面已经参考图2至图4描述了包括在固态驱动器1200中的多个非易失性存储器件10、11、12和13的示例,但是本发明构思限于此。例如,多个非易失性存储器件10、11、12和13中的每一个可以用各种形式实现。
图5是详细示出了图1的固态驱动器控制器的框图。
参考图5,固态驱动器控制器20包括存储器接口21、主机接口22、纠错电路(ECC)23、中央处理单元(CPU)24、缓冲存储器25和资源分配器26。
存储器接口21可以将从缓冲存储器25发送的数据(DATA)分散到多个通道CH1、CH2、CH3和CH4。此外,存储器接口21可以将从多个非易失性存储器件10、11、12和13读取的数据(DATA)传送到缓冲存储器25。
在本发明构思的示例性实施例中,存储器接口21可以使用闪存接口技术。在这种情况下,固态驱动器控制器20可以根据闪存接口技术执行写入操作、读取操作或擦除操作。
主机接口22可以允许固态驱动器1200的接口连接与主机1100的协议相对应。例如,主机接口22可以使用通用串行总线(USB)、小型计算机系统接口(SCSI)、外围组件互连(PCI)快速、高级技术附接(ATA)、并行ATA(PATA)、串行ATA(SATA)、串行附接等,与主机1100传送命令信号CMD、地址信号ADDR和数据(DATA)。此外,主机接口22可以执行磁盘仿真功能,其使得主机1100能够将固态驱动器1200识别为硬盘驱动器(HDD)。
主机接口22可以从主机1100接收包括流和流信息在内的数据(DATA)。这将在后面更详细地解释。
缓冲存储器25可以临时存储从主机1100提供的数据(DATA)和从多个非易失性存储器件10、11、12和13读取的数据(DATA)。在本发明构思的示例性实施例中,缓冲存储器25可以包括易失性存储器,诸如DRAM和静态随机存取存储器(SRAM)。在本发明构思的示例性实施例中,缓冲存储器25可以是紧耦合存储器(TCM)。
纠错电路23可以使用写入多个非易失性存储器件10、11、12和13的数据(DATA)来产生纠错码。纠错码可以存储在多个非易失性存储器件10、11、12和13的备用区中。此后,纠错电路23使用纠错码检测从多个非易失性存储器件10、11、12和13读取的数据(DATA)的错误,并且可以纠正检测到的错误。
中央处理单元24可以分析和处理从主机1100提供的命令信号CMD和地址信号ADDR。中央处理单元24可以经由主机接口22与主机1100通信,并且可以经由存储器接口21控制多个非易失性存储器件10、11、12和13。中央处理单元24可以基于用于驱动固态驱动器1200的固件来控制多个非易失性存储器件10、11、12和13的操作。
资源分配器26基于由主机接口22接收的流和流信息来调整固态驱动器1200的资源。固态驱动器1200的资源可以是固态驱动器控制器20将数据(DATA)写入非易失性存储器件10、11、12和13所需的资源。
资源分配器26可以基于流和流信息来控制分配给流的缓冲存储器25的大小。
资源分配器26可以基于流和流信息来控制分配给流的易失性存储器件40的大小。易失性存储器件40位于固态驱动器控制器20的外部,并且可以连接到固态驱动器控制器20。
图6是示出了图5的资源分配器的存储器分配操作的示意图。
参考图1、图5和图6,资源分配器26确定流位于非易失性存储器的哪个区域,并将各个流分配给相应位置。
在主机视图中,第一流(流1)可以经由主机接口22发送到固态驱动器1200。此时,与传统的多流设备不同,第一流(流1)可以具有小尺寸。
例如,第一流(流1)可以与单位超级块USBL的大小相同。这将在下文中描述。
SSD视图示出了非易失性存储器件10、11、12和13的存储区域。非易失性存储器件10、11、12和13的存储区域可以包括第一通道CH1、第二通道CH2、第三通道CH3和第四通道CH4。通道CH1至CH4中的每一个由多行和多列的块BL组成。在图6中,块BL可以是与图1的多个存储块BL1、BL2、BL3以及BL4中的每一个相对应的部分。
SSD视图的非易失性存储器件10、11、12和13的存储区域的一列可以意味着一个管芯。换句话说,针对每个通道存在四列可以意味着图1的针对每个通道布置的四个管芯。
在图6中,示出了每个管芯具有七个块BL的结构,但这仅仅是示例性的,本发明构思不限于此。
单位超级块USBL可以仅设置在一个通道中。换句话说,单位超级块USBL可以仅布置在第一通道CH1、第二通道CH2、第三通道CH3和第四通道CH4中的一个中。单位超级块USBL可以包括所在通道中的多个管芯的块BL。换句话说,由于四个管芯位于第四通道CH4中,因此形成一行的最多四个块BL可以是单位超级块USBL的示例。在下文中,为了方便起见,将四个块BL描述为包括在单位超级块USBL中。
超级块SBL可以包括至少一个单位超级块USBL。超级块SBL可以包括至少一个相邻的单位超级块USBL。换句话说,超级块SBL可以包括位于相邻通道中的、同一行的单位超级块USBL。在这种情况下,只要超级块彼此相邻,在四个通道CH1至CH4上彼此相邻的四个单位超级块USBL可以形成超级块SBL。
另外,位于相同通道中并且恰好在彼此下方或恰好在彼此上方的单位超级块USBL可以形成超级块SBL。例如,多个单位超级块USBL可以在两个通道中水平和垂直地形成超级块SBL。
超级块SBL包括位于相邻区域中的单位超级块USBL,这是因为分配给超级块SBL的流具有类似的属性,例如,类似的存活时间(生存时间(TTL))。因此,可以提高垃圾收集过程的集中程度。
再次考虑主机视图,第一流(流1)的大小可以与单位超级块USBL的大小相同。因此,第一流(流1)可以被分配给多个单位超级块USBL之一。然而,由于这不是由主机1100选择的,而是取而代之地由固态驱动器1200确定的,因此第一流(流1)可能不被分配给具有良好写入效率的位置。
图7是示出了图5的资源分配器的存储器分配操作的示例性图。
参考图6和图7,如主机视图中所示,数据(DATA)可以按数据交织化方式或数据条带化方式被分成多个流(流1、流2、流3和流4)。在四个流的情况下,如果将每个流写入四个通道CH1至CH4中的每一个,则可以实现最佳效率。
然而,如图6中所示,由于不确定第一流(流1)被分配到哪个通道和哪个位置,所以如图7所示的低效布置也是可能的。
例如,当第一流(流1)被分配给第二通道CH2的第一行,第二流(流2)被分配给第一通道CH1的第二行,第三流(流3)被分配给第二通道CH2的第三行,并且第四流(流4)被分配给第四通道CH4的第一行时,由于第一流(流1)和第三流(流3)需要同时写入第二通道CH2,因此可能不会使写入性能最大化。然而,图5所示的根据本发明构思的实施例的固态驱动器可以操作为使写入性能最大化。这将在下文中描述。
图8是详细示出了图1的固态驱动控制器的框图,图9是示出了图8的映射表的示例性表。图10是示出了图8的分组表的示例性表。
图8是示出了图5的固态驱动器控制器20的内部操作的框图。图8的映射表29、流组管理器31、流池27、物理块池28等可以是由图5的中央处理单元(CPU)24、存储器接口21和缓冲存储器25实现的功能块。
参考图1和图8至图10,固态驱动器控制器20可以包括主机接口22、流组管理器31、流池27、物理块池28、资源器26和映射表29。
主机1100可以对具有类似属性的流进行分组。在这种情况下,可以考虑到每个流的热/冷属性、存活时间等,基于需要哪一性能因子来确定根据类似属性进行的分组。换句话说,在频繁执行写入和更新的流的情况下,由于快速写入是必不可少的,因此必须具有高的性能因子。然而,在需要长的存活时间的流的情况下,性能因子可以相对较低。
主机接口22可以从主机1100接收流数据和流信息。流数据可以具有流组的形式。流信息可以包括流组属性。流组属性可以是流组中包括的流的数量和性能因子。
当非易失性存储器件10、11、12和13的通道的数量为4时,可以分配给不同管芯中的具有相同编号的块的流的最大数量可以是4。换句话说,由于一个流对应于一个单位超级块,因此流的数量可以从1至4中选择。性能因子不可以大于流的数量。换句话说,如果流组中包括四个流,则它们可以具有最大为,当然也可以具有更低的性能因子。
性能因子可以是一种写入速度。换句话说,在性能因子为4的流组的情况下,将四个流写入四个通道,这可以具有最高效率。当性能因子是2时,如果流的数量是4,则这些流被写入两个通道,并且该写入与性能因子是4的情况相比可能执行得更慢。
流组管理器31可以通过从主机1100接收的流信息来记录分组表。图10示出了分组表的示例。换句话说,可以知道特定流属于哪个组。例如,在图10中,组1可以包括流1、2、3和4,组2可以包括流5、6、7和8,组3可以包括流9和10,组4可以包括流11。
流池27可以包括由主机接口22接收的流数据。在流池27中,排除已分配给存储器的流,仅留下尚未分配的流。在本发明构思的该实施例中,由于流存在于流组中,所以可以按流组为单位向流池27添加流和从流池27中排除流。
物理块池28可以包括非易失性存储器件10、11、12和13中剩余的空闲块。如果资源分配器26将流池27中的流分配给物理块池28,则可以从物理块池28中排除物理块池28内的空闲块。
资源分配器26可以参考来自流组管理器31的流的组信息,以定义物理块池28中的物理块的超级块。资源分配器26可以将存在于流池27中的流组分配给超级块SBL。
例如,资源分配器26可以根据性能因子来确定超级块SBL的大小。性能因子可以确定超级块SBL对应于多少个通道或者超级块SBL包括多少个单位超级块USBL。换句话说,当性能因子是4时,超级块SBL对应于四个通道,并且可以包括四个单位超级块USBL。
随后,资源分配器26可以根据流组中包括的流的数量来确定超级块SBL的位置。通过考虑与超级块SBL相对应的通道的数量,可以将超级块SBL的位置确定为在空的空闲块中。通道的数量可以由超级块SBL的大小确定。
随后,资源分配器26可以将流组分配给所确定的超级块SBL。
资源分配器26可以将从流组管理器31接收的分组的当前状态传送到主机接口22,并且主机接口22可以将流组信息发送到主机1100。
在分配流时,映射表29可以记录流被分配给哪个物理块。可以随着流分配的更新来更新映射表29。图9是映射表29的示例性图。例如,如图9所示,第一流对应于物理块0、4、8、12、……,第二流对应于物理块1、2、9、10、……。
图11是示出了图5的资源分配器的分组操作的示意图。
参考图8和图11,在主机视图中,主机1100可以对多个流进行分组和发送。
例如,第一流至第四流(流1、2、3和4)可以属于第一流组(流组1)。第一流组(流组1)包括作为流信息的四个流,并且可以具有性能因子4。
第五流至第八流(流5、6、7和8)可以属于第二流组(流组2)。第二流组(流组2)包括作为流信息的四个流,并且可以具有性能因子2。
第九流和第十流(流9至流10)可以属于第三流组(流组3)。第三流组(流组3)包括作为流信息的两个流,并且可以具有性能因子2。
第十一流(流11)可以不属于第四流组或任何组(无组)。在这种情况下,可以不单独需要其流信息。
由于第一流组(流组1)包括四个流并且性能因子是4,因此可以由资源分配器26将其分配给与四个通道CH1至CH4相对应的第一超级块SBL1。
由于第二流组(流组2)包括四个流并且性能因子是2,因此可以由资源分配器26将其分配给与两个通道CH1和CH2相对应的第二超级块SBL2。
由于第三流组(流组3)包括两个流并且性能因子是2,因此可以由资源分配器26将其分配给与两个通道CH3和CH4相对应的第三超级块SBL3。
由于第十一流(流11)不构成组,因此可以由资源分配器26将其分配给与一个通道(例如,CH1)相对应的第四超级块SBL4。第四超级块SBL4可以仅包括单个单位超级块。
图12是示出了图5的资源分配器的性能的示例性图。
参考图8和图12,第一流至第四流(流1、2、3和4)可以被指定为单个流组。在这种情况下,资源分配器26识别出该组包括四个流并且性能因子是4。因此,资源分配器26可以将该流组写入四个相应的通道。这可能是最有效和快速地写入四个流的方法。
在传统的多流应用的情况下,尽管由主机请求的流的大小是不同的,但是由于包含所有通道的所有管芯在内的超级块被分配,因此存储器管理的效率可能较低。另外,由于它们不管理将流分配到哪个通道区域,因此可能将流分配给具有相同超级块的通道,因而降低了写入性能。
相反,根据本发明构思的示例性实施例的固态驱动器可以始终高效地执行存储器分配操作,而不管流组的大小(其根据流的数量而改变)如何。另外,对于可以以相对低的性能写入的流,可以通过将速度调整为低速来实现优化的资源分配。
图13是示出了图1的固态驱动器与主机之间的命令流的示意图。
参考图1和图13,主机1100首先向固态驱动器1200询问流状态(1)。
随后,固态驱动器1200向主机1100答复流的当前状态(2)。此时,流的当前状态可以包括关于当前流的组的信息以及关于是否可以对流组的存储器进行分配的信息。
随后,主机1100发送流组的流信息(3)。此时,流信息可以包括性能因子、流组中包括的流的数量、每个流的ID等。
随后,多个流的数据可以构成,并且可以被传送到固态驱动器1200(4)。
接下来,主机1100可以可选地重构流组(5)。
根据刚刚描述的实施例的固态驱动器可以通过基于流的属性执行分组来执行有效的操作。换句话说,在具有高性能因子的流组的情况下,可以通过各个通道的并行写入操作来高速执行写入操作。然而,在具有低性能因子的流组的情况下,可以仅将一些通道用于写入操作,从而有效地利用资源。因此,固态驱动器1200的写入操作的性能可以以最佳速度操作。
在下文中,将参考图1、图8和图14描述根据本发明构思的示例性实施例的固态驱动器。上面参考附图已描述的元件和/或功能可以被省略。
图14是示出了根据本发明构思的示例性实施例的固态驱动器的操作的示意图。
参考图1、图8和图14,主机1100可以定义包括在分组时已经定义的组在内的上级组。
例如,在主机视图中,第四流组(流组4)可以是包括第二流组(流组2)和第三流组(流组3)在内的上级组。在这种情况下,资源分配器26将第二流组(流组2)分配给与两个通道CH1和CH2相对应的第二超级块SBL2,并将第三流组(流组3)分配给与两个通道CH3和CH4相对应的第三超级块SBL3。出现这种情况可能是因为第二流组(流组2)和第三流组(流组3)的性能因子是2。
因此,第四流组(流组4)可以包括两个流(流组2和3)并且可以具有性能因子2。因此,作为第四流组(流组4)的元素的第二流组(流组2)和第三流组(流组3)被分配给彼此不同的通道。因此,第四超级块SBL4可以包括与第一通道CH1和第二通道CH2相对应的第二超级块SBL2、以及与第三通道CH3和第四通道CH4相对应的、不同于第二超级块SBL2的第三超级块SBL3。
在该实施例中,可以通过有效的资源分配在组之间使固态驱动器的写操作的性能最大化。
在下文中,将参考图1和图15至图17描述根据本发明构思的示例性实施例的固态驱动器。上面参考附图已描述的元件和/或功能可以被省略。
图15是示出了根据本发明构思的示例性实施例的固态驱动器的框图,图16是示出了图15中的资源分配器的操作的示意图。
参考图1和图15至图17,主机1100可以不对流进行分组。在这种情况下,不将流确定为具有相同的大小,并且可以将流确定为具有不同的大小。流的范围大小可以是例如单位超级块的整数倍。
主机接口22可以从主机1100接收流信息,换言之,流属性。此时,流属性可以包括流的范围大小和性能因子。
资源分配器26可以根据性能因子来确定超级块的大小。资源分配器26可以根据流的范围大小来确定超级块SBL的位置。
由于第一流(流1)的范围大小为4(其是单位超级块的四倍)并且性能因子为4,因此第一流(流1)可以由资源分配器26分配给与四个通道CH1至CH4相对应的第一超级块SBL1。由于第二流(流2)的范围大小为4(其是单位超级块的四倍)并且性能因子为2,因此第二流(流2)可以由资源分配器26分配给与两个通道CH1和CH2相对应的第二超级块SBL2。
由于第三流(流3)的范围大小为2(其是单位超级块的两倍)并且性能因子为2,因此第三流(流3)可以由资源分配器26分配给与两个通道CH3和CH4相对应的第三超级块SBL3。由于第四流(流4)的范围大小为1(其等于单位超级块的大小)并且性能因子为1,因此第四流(流4)可以由资源分配器26分配给与一个通道CH1相对应的第四超级块SBL4。
图17是示出了图15的包括固态驱动器控制器在内的固态驱动器与主机之间的命令流的示意图。
参考图1和图17,主机1100首先向固态驱动器1200询问流属性(1)。
随后,固态驱动器1200向主机1100答复流的当前状态(2)。在这种情况下,流属性可以包括与表示当前流的属性的列表有关的信息以及与是否可以根据流属性来分配存储器相关的信息。
随后,主机1100发送与流属性有关的流信息(3)。流信息可以包括性能因子、流的范围大小、每个流的ID等。
随后,可以将流的数据作为单个流传送到固态驱动器1200(4)。
接下来,主机1100可以可选地重置流属性(5)。
根据本实施例的固态驱动器可以根据流的大小和性能因子有效地对单个属性的流进行分配并将其写入到存储器。换句话说,随着流大小的变化,可以根据性能因子以最大效率保持写性能,同时防止不必要的动作。
此外,在本实施例中,由于主机1100不需要执行分组,因此可以减少主机1100的计算量。例如,由于固态驱动器控制器20的资源分配器26操控这样的计算,因此可以减轻主机1100的负担。
在下文中,将参考图1、图15和图18描述根据本发明构思的示例性实施例的固态驱动器。上面参考附图已描述的元件和/或功能可以被省略。
图18是示出了根据本发明构思的示例性实施例的固态驱动器的操作的示意图。
参考图1、图15和图18,根据本发明构思的示例性实施例的固态驱动器1200可以在主机1100处完全指定物理块的地址。
换句话说,主机1100可以直接指定并发送每个流的物理块的地址作为流信息。例如,可以将第一流(流1)写入第一超级块SBL1,并且可以将第二流(流2)写入第二超级块SBL2。可以将第三流(流3)写入第三超级块SBL3,并且可以将第四流(流4)写入第四超级块SBL4。上述第一超级块至第四超级块(SBL1至SBL4)可以是由主机1100指定的块。
为此,主机1100预先知道与固态驱动器1200的物理块有关的各种信息。例如,主机1100知道第一流(流1)的物理块地址是1、8、15、……。
因此,在本实施例中,由于固态驱动器1200根本不需要干预存储器分配,因此固态驱动器1200的写入速度可以变得非常快。
在下文中,将参考图1、图15和图19描述根据本发明构思的示例性实施例的固态驱动器。上面参考附图已描述的元件和/或功能可以被省略。
图19是示出了根据本发明构思的示例性实施例的固态驱动器的操作的示意图。
参考图1、图15和图19,根据本发明构思的示例性实施例的固态驱动器1200在主机1100处完全指定物理块的地址,并且每个流的范围大小可以相同。
换句话说,主机1100可以直接指定并发送每个流的物理块的地址作为流信息。例如,可以将第一流(流1)写入第一超级块SBL1,并且可以将第二流(流2)写入第二超级块SBL2。可以将第三流(流3)写入第三超级块SBL3,并且可以将第四流(流4)写入第四超级块SBL4。上述第一超级块SBL1至第四超级块SBL4可以是由主机1100指定的块。
在该实施例中,由于每个流的大小相同,因此可以将相似的流分配给相邻的位置。例如,当第一流(流1)和第三流(流3)具有相似属性时,第一超块SBL1和第三超块SBL3可以被布置为彼此相邻。这可以具有与由主机1100执行的分组基本相同的效果。
为此,主机1100可以预先知道与固态驱动器1200的物理块有关的各种信息。
在本实施例中,由于固态驱动器1200根本不需要干预存储器分配,因此固态驱动器1200的写入速度可以变得非常快。
下面,将参考图1、图8和图11至图21描述根据本发明构思的示例性实施例的固态驱动器的存储器分配方法。上面参考附图已描述的元件和/或功能可以被省略。
图20是示出了根据本发明构思的示例性实施例的固态驱动器的存储器分配方法的流程图,图21是详细示出了图20的超级块定义步骤的流程图。
首先,参考图20,接收流组和流信息(S100)。
例如,参考图1、图8和图11,主机接口22可以从主机1100接收流数据和流信息。这里,流数据可以包括流组。流信息可以包括流组属性。流组属性可以是流组中包括的流的数量和性能因子。
再次参考图20,定义超级块SBL(S200)。
参考图21,首先,考虑流的数量和性能因子来确定超级块SBL的大小(S210)。
例如,参考图1、图8和图11,资源分配器26可以根据性能因子来确定超级块SBL的大小。性能因子可以确定超级块SBL对应于多少个通道或者超级块SBL包括多少个单位超级块USBL。换句话说,当性能因子是4时,超级块SBL对应于四个通道,并且可以包括四个单位超级块USBL。
再次参考图21,确定超级块SBL的位置(S220)。
例如,参考图1、图8和图11,资源分配器26可以根据流组中包括的流的数量来确定超级块SBL的位置。通过考虑与超级块SBL的大小相对应的通道的数量,可以将超级块SBL的位置确定为在空的空闲块中。
再次参考图20,将流组分配给超级块(S300)。
例如,参考图1、图8和图11,资源分配器26可以将流组分配给所确定的超级块SBL。
下面,将参考图1、图15、图16、图22和图23描述根据本发明构思的示例性实施例的固态驱动器的存储器分配方法。上面参考附图已描述的元件和/或功能可以被省略。
图22是示出了根据本发明构思的示例性实施例的固态驱动器的存储器分配方法的流程图,图23是详细示出了图22的超级块定义步骤的流程图。
首先,参考图22,接收流和流信息(S101)。
例如,参考图1和图16,主机接口22可以从主机1100接收流信息,换言之,流属性。此时,流属性可以包括流的范围大小和性能因子。
再次参考图22,定义超级块SBL(S200)。
参考图23,首先,考虑流的范围大小和性能因子来确定超级块SBL的大小(S211)。
例如,参考图1、图15和图16,资源分配器26可以根据性能因子来确定超级块SBL的大小。
再次参考图23,确定超级块SBL的位置(S221)。
例如,参考图1、图15和图16,资源分配器26可以根据流的范围大小来确定超级块SBL的位置。
再次参考图22,将流组分配给超级块SBL(S301)。
例如,参考图1、图15和图16,资源分配器26可以将流分配给所确定的超级块SBL。
尽管已经参考本发明构思的示例性实施例具体示出和描述了本发明构思,但是本领域普通技术人员将理解的是,在不脱离所附权利要求所限定的本发明构思的精神和范围的情况下,可以进行形式和细节上的多种改变。
Claims (18)
1.一种固态驱动器,包括:
多个非易失性存储器,所述非易失性存储器中的每一个包括通道,所述通道包括连接到管芯的至少一个通路;
主机接口,从主机接收流数据和流信息;以及
资源分配器,基于所述流信息将所述流数据分配给所述多个非易失性存储器的超级块,
其中,每个超级块包括至少一个单位超级块,以及
每个单位超级块对应于一通道,并包括连接到包括在所述通道中的多个通路的管芯的块,
其中,所述流数据包括流组,每个流组包括多个流,以及
所述流信息包括在所述流组中包括的流的数量和所述流组的性能因子。
2.根据权利要求1所述的固态驱动器,其中,所述流数据是包括第一流在内的第一流组,以及
所述资源分配器将所述第一流分配给第一单位超级块。
3.根据权利要求1所述的固态驱动器,其中,所述资源分配器基于所述流的数量和所述性能因子来确定所述超级块包括多少个单位超级块。
4.根据权利要求1所述的固态驱动器,其中,所述流的数量大于或等于所述性能因子。
5.根据权利要求2所述的固态驱动器,还包括:
流组管理器,存储与所述第一流所属的所述第一流组有关的信息。
6.根据权利要求2所述的固态驱动器,其中,所述流数据是包括所述第一流组和第二流组在内的上级流组,以及
所述第二流组包括第二流。
7.根据权利要求1所述的固态驱动器,其中,所述流数据还包括单个流,以及
所述资源分配器将所述流分配给所述超级块。
8.根据权利要求7所述的固态驱动器,其中,所述流信息包括所述流的范围大小和所述流的性能因子。
9.根据权利要求8所述的固态驱动器,其中,所述资源分配器基于所述流的范围大小和所述流的性能因子来确定所述超级块包括多少个单位超级块。
10.根据权利要求1所述的固态驱动器,其中,所述流数据还包括单个流,以及
所述流信息包括所述流的分配位置。
11.一种固态驱动器,包括:
多个非易失性存储器;以及
固态驱动器控制器,从主机接收流数据和流信息,根据所述流信息定义所述非易失性存储器中要存储所述流数据的超级块的位置和大小,并将所述流数据分配给与所述流数据相对应的超级块,其中,所述超级块包括单位超级块,所述单位超级块与一通道相对应并且包括连接到包括在所述通道中的多个通路的管芯的块,
其中,所述流数据包括流组,每个流组包括多个流,以及
所述流信息包括在所述流组中包括的流的数量和所述流组的性能因子。
12.根据权利要求11所述的固态驱动器,其中,所述固态驱动器控制器包括:
主机接口,从所述主机接收所述流数据和所述流信息,以及
资源分配器,根据所述流信息将所述流数据分配给与所述流数据相对应的超级块。
13.根据权利要求12所述的固态驱动器,其中,所述固态驱动器控制器包括映射表,在所述映射表中记录了所述流中的每一个被分配给的超级块。
14.根据权利要求12所述的固态驱动器,其中,所述固态驱动器控制器还包括将所述流组与所述流相关联的流组管理器。
15.一种固态驱动器的存储器分配方法,所述方法包括:
从主机接收流数据和流信息;
基于所述流信息在非易失性存储器中定义超级块,所述超级块包括单位超级块,所述单位超级块与通道相对应并且包括连接到包括在所述通道中的多个通路的管芯的块;以及
将所述流数据分配给所述超级块,
其中,所述流数据包括流组,每个流组包括多个流,以及
所述流信息是所述流组中包括的流的数量和所述流组的性能因子。
16.根据权利要求15所述的固态驱动器的存储器分配方法,其中,所述流数据还包括一个流,
所述流信息是所述流的范围大小和性能因子。
17.根据权利要求15所述的固态驱动器的存储器分配方法,其中,所述流数据还包括一个流,以及
所述流信息包括所述流的分配位置。
18.根据权利要求15所述的固态驱动器的存储器分配方法,还包括:
在接收到所述流信息之前,
从所述主机接收对流的当前状态的询问;以及
向所述主机答复所述流的当前状态。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180078729A KR102611566B1 (ko) | 2018-07-06 | 2018-07-06 | 솔리드 스테이트 드라이브 및 그의 메모리 할당 방법 |
KR10-2018-0078729 | 2018-07-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110688324A CN110688324A (zh) | 2020-01-14 |
CN110688324B true CN110688324B (zh) | 2024-06-04 |
Family
ID=69102061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910338020.2A Active CN110688324B (zh) | 2018-07-06 | 2019-04-24 | 固态驱动器及其存储器分配方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11010071B2 (zh) |
KR (1) | KR102611566B1 (zh) |
CN (1) | CN110688324B (zh) |
SG (1) | SG10201901589RA (zh) |
TW (1) | TWI808167B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11336303B2 (en) | 2010-06-04 | 2022-05-17 | Micron Technology, Inc. | Advanced bitwise operations and apparatus in a multi-level system with nonvolatile memory |
CN111522507B (zh) * | 2020-04-14 | 2021-10-01 | 中山大学 | 一种低延迟的文件系统地址空间管理方法、系统及介质 |
US11294598B2 (en) | 2020-04-24 | 2022-04-05 | Western Digital Technologies, Inc. | Storage devices having minimum write sizes of data |
US11537510B2 (en) * | 2020-04-24 | 2022-12-27 | Western Digital Technologies, Inc. | Storage devices having minimum write sizes of data |
KR20220049329A (ko) | 2020-10-14 | 2022-04-21 | 삼성전자주식회사 | 스토리지 컨트롤러, 스토리지 장치, 및 스토리지 장치의 동작 방법 |
US11853565B2 (en) * | 2021-10-01 | 2023-12-26 | Western Digital Technologies, Inc. | Support higher number of active zones in ZNS SSD |
KR20230097866A (ko) * | 2021-12-24 | 2023-07-03 | 삼성전자주식회사 | 메모리 컨트롤러를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법 |
US11966605B2 (en) * | 2022-03-09 | 2024-04-23 | Kioxia Corporation | Superblock-based write management in non-volatile memory devices |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103137199A (zh) * | 2011-11-30 | 2013-06-05 | 三星电子株式会社 | 存储器系统、数据存储设备、存储卡和固态驱动器 |
CN103325417A (zh) * | 2012-03-23 | 2013-09-25 | 三星电子株式会社 | 非易失性存储器件、非易失性存储系统、及其编程方法 |
CN103971739A (zh) * | 2013-02-04 | 2014-08-06 | 三星电子株式会社 | 包括非易失性存储设备的存储系统及其编程方法 |
JP2016170583A (ja) * | 2015-03-12 | 2016-09-23 | 株式会社東芝 | メモリシステムおよび情報処理システム |
CN107632777A (zh) * | 2016-07-18 | 2018-01-26 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN108121673A (zh) * | 2016-11-29 | 2018-06-05 | 三星电子株式会社 | 控制器以及包括控制器和非易失性存储器件的存储设备 |
CN108121674A (zh) * | 2016-11-30 | 2018-06-05 | 三星电子株式会社 | 缓冲器分配的控制器和存储装置及操作存储装置的方法 |
CN108121665A (zh) * | 2016-11-29 | 2018-06-05 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2124754C (en) | 1993-06-30 | 2005-06-28 | Mark Zbikowski | Storage of file data on disk in multiple representations |
US7657572B2 (en) | 2007-03-06 | 2010-02-02 | Microsoft Corporation | Selectively utilizing a plurality of disparate solid state storage locations |
US8239614B2 (en) * | 2009-03-04 | 2012-08-07 | Micron Technology, Inc. | Memory super block allocation |
US8095765B2 (en) * | 2009-03-04 | 2012-01-10 | Micron Technology, Inc. | Memory block management |
KR101600951B1 (ko) | 2009-05-18 | 2016-03-08 | 삼성전자주식회사 | 고체 상태 드라이브 장치 |
US8954690B2 (en) | 2011-02-12 | 2015-02-10 | Andy Vincent Lawrence | Systems and methods for managing unstructured data |
US9170941B2 (en) * | 2013-04-05 | 2015-10-27 | Sandisk Enterprises IP LLC | Data hardening in a storage system |
US20150378884A1 (en) | 2013-04-08 | 2015-12-31 | Avalanche Technology, Inc. | Storage system controlling addressing of solid storage disks (ssd) |
US9448924B2 (en) | 2014-01-08 | 2016-09-20 | Netapp, Inc. | Flash optimized, log-structured layer of a file system |
CN104461391B (zh) * | 2014-12-05 | 2019-08-02 | 上海宝存信息科技有限公司 | 一种存储设备元数据管理处理方法及系统 |
US9996302B2 (en) | 2015-04-03 | 2018-06-12 | Toshiba Memory Corporation | Storage device writing data on the basis of stream |
US10282324B2 (en) | 2015-07-13 | 2019-05-07 | Samsung Electronics Co., Ltd. | Smart I/O stream detection based on multiple attributes |
US9898200B2 (en) | 2016-02-18 | 2018-02-20 | Samsung Electronics Co., Ltd | Memory device having a translation layer with multiple associative sectors |
US10592171B2 (en) * | 2016-03-16 | 2020-03-17 | Samsung Electronics Co., Ltd. | Multi-stream SSD QoS management |
US10540274B2 (en) | 2016-03-29 | 2020-01-21 | Micron Technology, Inc. | Memory devices including dynamic superblocks, and related methods and electronic systems |
CN107025066A (zh) * | 2016-09-14 | 2017-08-08 | 阿里巴巴集团控股有限公司 | 在基于闪存的存储介质中写入存储数据的方法和装置 |
KR102610537B1 (ko) * | 2016-11-10 | 2023-12-06 | 삼성전자주식회사 | 솔리드 스테이트 드라이브 장치 및 이를 포함하는 저장 시스템 |
US10198203B2 (en) * | 2016-11-15 | 2019-02-05 | Samsung Electronics Co., Ltd. | Method of operating memory device using pseudo-random functions, memory device using the same and memory system including the device |
KR20180079584A (ko) * | 2016-12-30 | 2018-07-11 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작 방법 |
CN109656834B (zh) * | 2017-10-12 | 2022-11-11 | 慧荣科技股份有限公司 | 数据管理方法以及数据储存系统 |
CN107783734B (zh) | 2017-11-17 | 2021-03-16 | 北京联想超融合科技有限公司 | 一种基于超融合存储系统的资源分配方法、装置及终端 |
-
2018
- 2018-07-06 KR KR1020180078729A patent/KR102611566B1/ko active IP Right Grant
-
2019
- 2019-02-04 US US16/266,187 patent/US11010071B2/en active Active
- 2019-02-25 SG SG10201901589RA patent/SG10201901589RA/en unknown
- 2019-04-24 CN CN201910338020.2A patent/CN110688324B/zh active Active
- 2019-04-29 TW TW108114880A patent/TWI808167B/zh active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103137199A (zh) * | 2011-11-30 | 2013-06-05 | 三星电子株式会社 | 存储器系统、数据存储设备、存储卡和固态驱动器 |
CN103325417A (zh) * | 2012-03-23 | 2013-09-25 | 三星电子株式会社 | 非易失性存储器件、非易失性存储系统、及其编程方法 |
CN103971739A (zh) * | 2013-02-04 | 2014-08-06 | 三星电子株式会社 | 包括非易失性存储设备的存储系统及其编程方法 |
JP2016170583A (ja) * | 2015-03-12 | 2016-09-23 | 株式会社東芝 | メモリシステムおよび情報処理システム |
CN107632777A (zh) * | 2016-07-18 | 2018-01-26 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN108121673A (zh) * | 2016-11-29 | 2018-06-05 | 三星电子株式会社 | 控制器以及包括控制器和非易失性存储器件的存储设备 |
CN108121665A (zh) * | 2016-11-29 | 2018-06-05 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN108121674A (zh) * | 2016-11-30 | 2018-06-05 | 三星电子株式会社 | 缓冲器分配的控制器和存储装置及操作存储装置的方法 |
Also Published As
Publication number | Publication date |
---|---|
US20200012444A1 (en) | 2020-01-09 |
TW202006549A (zh) | 2020-02-01 |
KR20200005240A (ko) | 2020-01-15 |
SG10201901589RA (en) | 2020-02-27 |
TWI808167B (zh) | 2023-07-11 |
KR102611566B1 (ko) | 2023-12-07 |
US11010071B2 (en) | 2021-05-18 |
CN110688324A (zh) | 2020-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110688324B (zh) | 固态驱动器及其存储器分配方法 | |
US11520504B2 (en) | Data storage device and operating method thereof | |
US11287992B2 (en) | Controller and storage device including controller and nonvolatile memory devices | |
CN109101434B (zh) | 存储装置、存储系统及所述存储装置的操作方法 | |
KR102533207B1 (ko) | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 | |
KR102274276B1 (ko) | 부분 페이지 메모리 동작 | |
US10466908B2 (en) | Memory system that buffers data before writing to nonvolatile memory | |
US11226895B2 (en) | Controller and operation method thereof | |
US20140237169A1 (en) | Hot memory block table in a solid state storage device | |
KR20160110596A (ko) | 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 가비지 컬렉션 방법 | |
KR20180052465A (ko) | 솔리드 스테이트 드라이브 장치 및 이를 포함하는 저장 시스템 | |
KR20170026926A (ko) | 데이터 양에 기초하여 복수의 데이터 스트림을 관리하도록 구성되는 스토리지 장치 | |
KR20140020445A (ko) | 3차원 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법 | |
KR20210017481A (ko) | 컨트롤러 및 컨트롤러의 동작방법 | |
US20220261171A1 (en) | Storage devices, data storage systems and methods of operating storage devices | |
KR20160050393A (ko) | 메모리 장치, 메모리 시스템, 상기 메모리 장치의 동작 방법 및 상기 메모리 시스템의 동작 방법 | |
US11803223B2 (en) | Open channel solid state drive, nonvolatile memory system including the same and method of power loss protection of open channel solid state drive | |
CN110928805B (zh) | 存储器系统及其操作方法 | |
KR20150093004A (ko) | 불휘발성 저장 장치의 동작 방법 및 불휘발성 저장 장치를 액세스하는 컴퓨팅 장치의 동작 방법 | |
KR102157570B1 (ko) | 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스 | |
KR20130087936A (ko) | 메모리 장치, 메모리 시스템 및 이의 프로그램 방법 | |
US20200089421A1 (en) | Data storage device, operation method thereof, and storage system including the same | |
KR20160144547A (ko) | 스토리지 장치 및 스토리지 장치의 동작 방법 | |
US20240143187A1 (en) | Storage device, controller and method for performing global wear-leveling | |
US11573715B2 (en) | Memory cell level assignment using optimal level permutations in a non-volatile memory |
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 |