CN117193627A - 计算系统及其操作方法 - Google Patents
计算系统及其操作方法 Download PDFInfo
- Publication number
- CN117193627A CN117193627A CN202310343649.2A CN202310343649A CN117193627A CN 117193627 A CN117193627 A CN 117193627A CN 202310343649 A CN202310343649 A CN 202310343649A CN 117193627 A CN117193627 A CN 117193627A
- Authority
- CN
- China
- Prior art keywords
- garbage collection
- storage device
- host
- memory
- amount
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000036541 health Effects 0.000 claims abstract description 65
- 230000008569 process Effects 0.000 claims abstract description 4
- 230000015654 memory Effects 0.000 claims description 235
- 230000004044 response Effects 0.000 claims description 35
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 abstract description 4
- 239000000872 buffer Substances 0.000 description 36
- 238000010586 diagram Methods 0.000 description 26
- 238000004891 communication Methods 0.000 description 11
- 230000002093 peripheral effect Effects 0.000 description 10
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 9
- 238000013507 mapping Methods 0.000 description 8
- 238000012937 correction Methods 0.000 description 5
- 239000010410 layer Substances 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000011017 operating method Methods 0.000 description 2
- 238000005086 pumping Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 101000934888 Homo sapiens Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Proteins 0.000 description 1
- 102100025393 Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Human genes 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 239000002356 single layer Substances 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
- 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/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
- 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
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- 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/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/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/0658—Controller construction 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/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- 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]
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)
- Memory System (AREA)
- Selective Calling Equipment (AREA)
Abstract
本公开的实施例涉及计算系统及其操作方法。本技术涉及一种电子设备。根据本技术,主机设备可以包括垃圾收集控制器和空闲时间处理器。垃圾收集控制器可以:向存储设备提供健康信息请求命令,该健康信息请求命令用于请求包括主机写入量和存储设备写入量的健康信息;基于健康信息,向存储设备提供第一垃圾收集控制命令,该第一垃圾收集控制命令用于请求垃圾收集成本信息;基于垃圾收集成本信息和存储设备的空闲时间,向存储设备提供第二垃圾收集控制命令,该第二垃圾收集控制命令用于指使执行垃圾收集。空闲时间处理器可以处理关于空闲时间的信息。
Description
相关申请的交叉引用
本申请要求于2022年6月8日提交的韩国专利申请号10-2022-0069776的优先权,其全部公开内容通过引用并入本文。
技术领域
本公开涉及一种电子设备,并且更具体地,涉及一种计算系统及其操作方法。
背景技术
存储设备是在诸如计算机或智能电话的主机设备的控制下存储数据的设备。存储设备可以包括其中存储有数据的存储器设备和控制该存储器设备的存储器控制器。存储器设备被划分为易失性存储器设备和非易失性存储器设备。
易失性存储器设备是仅在被供应电源时存储数据并且在电源被切断时丢失所存储的数据的设备。易失性存储器设备包括静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等。
非易失性存储器设备是即使电源被切断也不会丢失数据的设备。非易失性存储器设备包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、快闪存储器等。
主机可以基于从存储设备接收到的健康信息来预测对存储设备的垃圾收集需求。考虑到存储设备的垃圾收集成本和空闲时间,主机可以通过控制存储设备以抢先执行垃圾收集来提高存储设备的性能。
发明内容
本公开的一个实施例提供了一种通过预先对存储设备执行垃圾收集来提高性能的计算系统及其操作方法。
根据本公开的一个实施例,一种主机设备可以包括垃圾收集控制器和空闲时间处理器。垃圾收集控制器可以:向存储设备提供健康信息请求命令,该健康信息请求命令用于请求包括主机写入量和存储设备写入量的健康信息;基于健康信息,向存储设备提供第一垃圾收集控制命令,该第一垃圾收集控制命令用于请求垃圾收集成本信息;基于垃圾收集成本信息和存储设备的空闲时间,向存储设备提供第二垃圾收集控制命令,该第二垃圾收集控制命令用于指使执行垃圾收集。空闲时间处理器可以处理关于空闲时间的信息。
根据本公开的一个实施例,一种操作主机设备的方法可以包括:向存储设备提供健康信息请求命令,该健康信息请求命令用于请求包括主机写入量和存储设备写入量的健康信息;基于从存储设备接收到的健康信息,向存储设备提供第一垃圾收集控制命令,该第一垃圾收集控制命令用于请求垃圾收集成本信息;以及基于垃圾收集成本信息和存储设备的空闲时间,向存储设备提供第二垃圾收集控制命令,该第二垃圾收集控制命令指使执行垃圾收集。
根据本公开的一个实施例,一种存储设备可以包括存储器设备和存储器控制器。存储器设备可以包括多个存储器块。存储器控制器可以:响应于来自外部设备的健康信息请求命令,向外部设备提供包括外部设备写入量和存储设备写入量的健康信息;响应于来自外部设备的第一垃圾收集控制命令,向外部设备提供包括将通过垃圾收集而被确保的空闲块的预期数目的垃圾收集成本信息;以及响应于来自外部设备的第二垃圾收集控制命令,对存储器设备执行垃圾收集。
根据一种控制器的操作方法的一个实施例,该操作方法包括响应于第一请求向主机提供第一信息,该第一信息表示从主机提供到其的累积数据量和占用存储器设备的存储空间的累积数据量,响应于第二请求向主机提供第二信息,该第二信息表示通过垃圾收集操作预期变得空闲的候选存储器块的数目和垃圾收集操作所需的预期时间量,从而基于无效页的数目来预期候选存储器块的数目,并且响应于第三请求而控制存储器设备以对由主机基于第二信息确定的多个目标存储器块执行垃圾收集操作。第一至第三请求中的每一个请求均从主机提供。
根据一种主机设备的操作方法的一个实施例,该操作方法包括向存储器系统请求第一信息,该第一信息表示从其提供到存储器系统的第一累积数据量和占用存储器系统的存储空间的第二累积数据量,当由此确定第二累积量大于第一累积量时,向存储器系统请求第二信息,该第二信息表示通过垃圾收集操作预期变得空闲的候选存储器块的数目和垃圾收集操作所需的预期时间量,并且向存储器系统请求对由此基于第二信息确定的多个目标存储器块的垃圾收集操作。
根据本技术,提供了一种通过预先对存储设备执行垃圾收集来提高性能的存储器控制器及其操作方法,以及计算系统及其操作方法。
附图说明
图1是图示了根据本公开的一个实施例的计算系统的图。
图2是图示了根据本公开的一个实施例的图1的存储器设备的结构的图。
图3是图示了根据本公开的一个实施例的图1的主机和存储器控制器的配置和操作的图。
图4是图示了根据本公开的一个实施例的主机和存储设备的操作的流程图。
图5是图示了根据本公开的一个实施例的健康信息的图。
图6是图示了根据本公开的一个实施例的智能健康信息日志的图。
图7是图示了根据本公开的一个实施例的垃圾收集控制命令的图。
图8A是图示了根据本公开的一个实施例的空闲块的预期数目的图。
图8B是图示了根据本公开的一个实施例的用于确定空闲块的预期数目的空闲块计算表的图。
图9是图示了根据本公开的一个实施例的基于垃圾收集成本信息的垃圾收集的图。
图10是图示了根据本公开的一个实施例的操作主机的方法的流程图。
图11是图示了根据本公开的一个实施例的操作主机的方法的流程图。
图12是图示了根据本公开的一个实施例的操作存储设备的方法的流程图。
图13是图示了根据本公开的另一个实施例的图1的存储器控制器的图。
图14是图示了应用根据本公开的一个实施例的存储设备的存储器卡系统的框图。
图15是图示了应用根据本公开的一个实施例的存储设备的固态驱动器(SSD)系统的框图。
图16是图示了应用根据本公开的一个实施例的存储设备的用户系统的框图。
具体实施方式
根据本说明书中公开的概念的实施例的具体结构或功能说明仅被例示以用于描述根据本公开的概念的实施例。根据本公开的概念的实施例可以以各种形式来执行,并且不应被解释为限于本说明书中描述的实施例。
图1是图示了根据本公开的一个实施例的计算系统的图。
参考图1,计算系统可以包括存储设备50和主机300。
存储设备50可以包括存储器设备100和控制该存储器设备的操作的存储器控制器200。存储设备50是在主机300的控制下存储数据的设备,主机300诸如是蜂窝电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、TV、平板PC或车载信息娱乐系统。
存储设备50可以根据作为与主机300的通信方法的主机接口而被制造为各种类型的存储设备中的一种。例如,存储设备50可以被配置为各种类型的存储设备中的任何一种,诸如SSD、多媒体卡(MMC、eMMC、RS-MMC和micro-MMC形式)、安全数字卡(SD、mini-SD和micro-SD形式)、通用串行总线(USB)存储设备、通用快闪存储装置(UFS)设备、个人计算机存储器卡国际协会(PCMCIA)卡型存储设备、外围组件互连(PCI)卡型存储设备、PCI快速(PCI-E)卡型存储设备、紧凑式快闪(CF)卡、智能媒体卡和记忆棒。
存储设备50可以被制造为各种类型的封装中的任何一种。例如,存储设备50可以被制造为各种封装类型中的任何一种,诸如叠层封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶片级制造封装(WFP)和晶片级堆叠封装(WSP)。
存储器设备100可以存储数据。存储器设备100在存储器控制器200的控制下进行操作。存储器设备100可以包括存储器单元阵列,该存储器单元阵列包括存储数据的多个存储器单元。
存储器单元中的每一个可以被配置为存储一个数据位的单层单元(SLC)、存储两个数据位的多层单元(MLC)、存储三个数据位的三层单元(TLC)或者存储四个数据位的四层单元(QLC)。
存储器单元阵列可以包括多个存储器块。每个存储器块可以包括多个存储器单元。一个存储器块可以包括多个页。在一个实施例中,页可以是用于在存储器设备100中存储数据或者读取存储器设备100中存储的数据的单位。
存储器块可以是用于擦除数据的单位。在一个实施例中,存储器设备100可以是双倍数据速率同步动态随机存取存储器(DDR SDRAM)、低功率双倍数据速率第四代(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)、NAND快闪存储器、竖直NAND快闪存储器、NOR快闪存储器、电阻式随机存取存储器(RRAM)、相变随机存取存储器(PRAM)、磁阻式随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)、自旋转移力矩随机存取存储器(STT-RAM)等。在本说明书中,为了便于说明,存储器设备100是NAND快闪存储器。
存储器设备100被配置为从存储器控制器200接收命令和地址,并且访问存储器单元阵列的由地址选择的区域。也就是说,存储器设备100可以对由地址选择的区域执行由命令指示的操作。例如,存储器设备100可以执行写入操作(编程操作)、读取操作和擦除操作。在编程操作期间,存储器设备100可以将数据编程到由地址选择的区域。在读取操作期间,存储器设备100可以从由地址选择的区域读取数据。在擦除操作期间,存储器设备100可以擦除存储在由地址选择的区域中的数据。
存储器控制器200控制存储设备50的整体操作。
当向存储设备50供应电源时,存储器控制器200可以执行固件FW。当存储器设备100是快闪存储器设备时,存储器控制器200可以操作诸如快闪转换层(FTL)的固件来控制主机300和存储器设备100之间的通信。
在一个实施例中,存储器控制器200可以从主机300接收数据和逻辑块地址(LBA),并且将LBA转换成物理块地址(PBA),该物理块地址指示被包括在存储器设备100中的数据将被存储在其中的存储器单元的地址。
存储器控制器200可以响应于主机300的请求来控制存储器设备100执行编程操作、读取操作或擦除操作。在编程操作期间,存储器控制器200可以向存储器设备100提供写入命令、物理块地址以及数据。在读取操作期间,存储器控制器200可以向存储器设备100提供读取命令和物理块地址。在擦除操作期间,存储器控制器200可以向存储器设备100提供擦除命令和物理块地址。
在一个实施例中,存储器控制器200可以与来自主机300的请求无关地生成命令、地址和数据并且将该命令、地址和数据发送到存储器设备100。例如,存储器控制器200可以将命令、地址和数据提供到存储器设备100执行诸如用于损耗均衡的编程操作和用于垃圾收集的编程操作的后台操作。
在一个实施例中,存储器控制器200可以控制至少两个存储器设备100。在这种情况下,存储器控制器200可以根据交错方法控制存储器设备100以提高操作性能。交错方法可以是用于重叠至少两个存储器设备100的操作时段的操作方法。
存储器控制器200可以控制通过至少一个或多个通道连接的多个存储器设备100。每个存储器设备100可以包括至少一个或多个平面。每个平面可以包括多个存储器块。
存储器控制器200可以存储健康信息和存储器块信息。
健康信息可以包括主机写入量和存储设备写入量。主机写入量可以是与从主机300提供到存储器控制器200的写入命令相对应的数据量。主机写入量可以是从存储设备50的上电时间开始通过从主机300接收到的写入命令完成的写入数据量。每当存储设备50的电源被关断和开启时,主机写入量可以被重置。存储设备写入量可以是与在存储器设备100中执行的写入操作相对应的数据量。存储设备写入量可以是从存储设备50的上电时间开始通过存储设备50中的写入操作完成的写入数据量。每当存储设备50的电源被关断和开启时,存储写入量可以被重置。健康信息可以包括主机读取量、存储设备读取量和存储设备50的忙碌时间。存储设备50的忙碌时间指示存储设备50执行由主机300请求而不是由存储设备50本身请求的操作的时间。主机读取量可以是与从主机300提供到存储器控制器200的读取命令相对应的数据量。存储设备读取量可以是与在存储器设备100中执行的读取操作相对应的数据量。
存储器块信息可以包括关于被包括在存储器设备100中的多个存储器块的信息。存储器块信息可以包括被包括在存储器块中的多个页之中的存储无效数据的页的数目。
存储器控制器200可以响应于从主机300接收到的健康信息请求命令而向主机300提供健康信息。存储器控制器200可以响应于从主机300接收到的第一垃圾收集控制命令而向主机300提供垃圾收集成本信息。垃圾收集成本信息可以包括多个存储器块之中将通过垃圾收集确保的空闲块的预期数目和垃圾收集的预期时间。存储器控制器200可以基于被包括在存储器块信息中的无效数据页计数来计算空闲块的预期数目和预期时间。存储器控制器200可以响应于从主机300接收到的第二垃圾收集控制命令来对存储器设备100执行垃圾收集。
健康信息请求命令可以包括用于请求存储设备50的寄存器信息的获取参数命令。第一和第二垃圾收集控制命令可以包括用于设置存储设备50的寄存器信息的设置参数命令。
主机300可以使用诸如以下项的各种通信标准或接口中的至少一种来与存储设备50通信:通用串行总线(USB)、串行AT附件(SATA)、串行附接SCSI(SAS)、高速互连芯片(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、PCI快速(PCIe)、非易失性存储器快速(NVMe)、通用快闪存储装置(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)、低负载DIMM(LRDIMM)以及SM-BUS(一种集成电路间通信)。
主机300可以向存储器控制器200提供用于请求包括主机写入量和存储设备写入量的健康信息的健康信息请求命令。主机300可以基于健康信息来预测存储设备50的垃圾收集需求。当存储设备写入量大于主机写入量时,主机300可以承认垃圾收集需求。在存储设备写入量大于主机写入量的情况下,这种情况可能指示在存储设备50中内部地执行了大量的写入操作,这导致无效数据页的数目增加,并且因此这种情况可能指示非常需要执行垃圾收集。当垃圾收集需求被承认时,主机300可以向存储器控制器200提供用于请求垃圾收集成本信息的第一垃圾收集控制命令。
主机300可以向存储器控制器200提供第二垃圾收集控制命令,其用于基于垃圾收集成本信息和存储设备50的空闲时间指使执行垃圾收集。主机300可以基于垃圾收集单位时间和存储设备50的空闲时间的比较结果来向存储器控制器200提供第二垃圾收集控制命令。垃圾收集单位时间可以是确保一个空闲块所需的预期时间。可以基于被包括在垃圾收集成本信息中的空闲块的预期数目和预期时间来计算垃圾收集单位时间。当空闲时间大于垃圾收集单位时间时,主机300可以向存储器控制器200提供第二垃圾收集控制命令。主机300可以基于垃圾收集单位时间和存储设备50的空闲时间的比较结果来计算将通过垃圾收集确保的目标空闲块的数目。主机300可以向存储器控制器200提供包括目标空闲块的数目的信息和第二垃圾收集控制命令。
主机300可以基于提供到存储器控制器200的输入和输出命令来计算存储设备50的空闲时间。存储设备50的空闲时间可以是其中根据主机300的请求的所有操作被完成并且存储器控制器200等待接收主机300的请求的时间。具体地,主机300可以通过测量从当主机300从存储设备50接收最后一个命令的响应时开始到当主机300向存储设备50发送对新的下一个命令的请求时为止的时间来计算空闲时间。
图2是图示了根据本公开的一个实施例的图1的存储器设备的结构的图。
参考图2,存储器设备100可以包括存储器单元阵列110、外围电路120和控制逻辑130。
存储器单元阵列110包括多个存储器块BLK1至BLKz。多个存储器块BLK1至BLKz通过行线RL而连接到地址解码器121。多个存储器块BLK1至BLKz通过位线BL1至BLm而连接到读取和写入电路123。多个存储器块BLK1至BLKz中的每一个包括多个存储器单元。在一个实施例中,多个存储器单元是非易失性存储器单元。多个存储器单元之中连接到相同字线的存储器单元被定义为一个物理页。也就是说,存储器单元阵列110由多个物理页构成。根据本公开的一个实施例,被包括在存储器单元阵列110中的多个存储器块BLK1至BLKz中的每一个可以包括多个虚设单元。虚设单元中的至少一个可以串联连接在漏极选择晶体管和存储器单元之间,以及源极选择晶体管和存储器单元之间。
存储器设备100的存储器单元中的每一个可以被配置为存储一个数据位的SLC、存储两个数据位的MLC、存储三个数据位的TLC或存储四个数据位的QLC。
外围电路120可以包括地址解码器121、电压生成器122、读取和写入电路123、数据输入/输出电路124和感测电路125。
外围电路120驱动存储器单元阵列110。例如,外围电路120可以驱动存储器单元阵列110执行编程操作、读取操作和擦除操作。
地址解码器121通过行线RL连接到存储器单元阵列110。行线RL可以包括漏极选择线、字线、源极选择线和公共源极线。根据本公开的一个实施例,字线可以包括普通字线和虚设字线。根据本公开的一个实施例,行线RL还可以包括管道选择线。
地址解码器121被配置为响应于控制逻辑130的控制而进行操作。地址解码器121从控制逻辑130接收地址ADDR。
地址解码器121被配置为对接收到的地址ADDR的块地址进行解码。地址解码器121根据经解码的块地址来选择存储器块BLK1至BLKz之中的至少一个存储器块。地址解码器121被配置为对接收到的地址ADDR的行地址进行解码。地址解码器121可以根据经解码的行地址在被选择的存储器块的字线之中选择至少一条字线。地址解码器121可以将从电压生成器122接收到的操作电压Vop施加到被选择的字线。
在编程操作期间,地址解码器121可以将编程电压施加到被选择的字线,并且将具有小于编程电压的电平的电平的通过电压施加到未被选择的字线。在编程验证操作期间,地址解码器121可以将验证电压施加到被选择的字线,并且将具有大于验证电压的电平的电平的验证通过电压施加到未被选择的字线。
在读取操作期间,地址解码器121可以将读取电压施加到被选择的字线,并且将具有大于读取电压的电平的电平的读取通过电压施加到未被选择的字线。
根据本公开的一个实施例,以存储器块为单位执行存储器设备100的擦除操作。在擦除操作期间输入到存储器设备100的地址ADDR包括块地址。地址解码器121可以对块地址进行解码,并且根据经解码的块地址来选择至少一个存储器块。在擦除操作期间,地址解码器121可以将接地电压施加到输入到被选择的存储器块的字线。
根据本公开的一个实施例,地址解码器121可以被配置为对被传送的地址ADDR的列地址进行解码。经解码的列地址可以被传送到读取和写入电路123。作为示例,地址解码器121可以包括诸如行解码器、列解码器和地址缓冲器的组件。
电压生成器122被配置为通过使用供应到存储器设备100的外部电源电压来生成多个操作电压Vop。电压生成器122响应于控制逻辑130的控制而进行操作。
在一个实施例中,电压生成器122可以通过调节外部电源电压来生成内部电源电压。由电压生成器122生成的内部电源电压被用作存储器设备100的操作电压。
在一个实施例中,电压生成器122可以使用外部电源电压或内部电源电压来生成多个操作电压Vop。电压生成器122可以被配置为生成存储器设备100所需的各种电压。例如,电压生成器122可以生成多个擦除电压、多个编程电压、多个通过电压、多个选择读取电压以及多个非选择读取电压。
为了生成具有各种电压电平的多个操作电压Vop,电压生成器122可以包括接收内部电压的多个泵浦电容器,并且响应于控制逻辑130来选择性地激活多个泵浦电容器以生成多个操作电压Vop。被生成的多个操作电压Vop可以由地址解码器121供应到存储器单元阵列110。
读取和写入电路123包括第一至第m页缓冲器PB1至PBm。第一至第m页缓冲器PB1至PBm分别通过第一至第m位线BL1至BLm连接到存储器单元阵列110。第一至第m页缓冲器PB1至PBm响应于控制逻辑130的控制而进行操作。
第一至第m页缓冲器PB1至PBm与数据输入/输出电路124传递数据DATA。在编程时,第一至第m页缓冲器PB1至PBm通过数据输入/输出电路124和数据线DL接收要被存储的数据DATA。
在编程操作期间,当编程电压被施加到被选择的字线时,第一至第m页缓冲器PB1至PBm可以通过位线BL1至BLm将要被存储的数据DATA(即,通过数据输入/输出电路124接收到的数据DATA)传送给被选择的存储器单元。被选择的页的存储器单元根据被传送的数据DATA而被编程。与施加有编程准许电压(例如,接地电压)的位线连接的存储器单元可以具有增加的阈值电压。与施加有编程禁止电压(例如,电源电压)的位线连接的存储器单元的阈值电压可以被维持。在编程验证操作期间,第一至第m页缓冲器PB1至PBm通过位线BL1至BLm从被选择的存储器单元读取存储在存储器单元中的数据DATA。
在读取操作期间,读取和写入电路123可以通过位线BL1至BLm从被选择的页的存储器单元读取数据DATA,并且将所读取的数据DATA存储在第一至第m页缓冲器PB1至PBm中。
在擦除操作期间,读取和写入电路123可以使位线BL1至BLm浮置。在一个实施例中,读取和写入电路123可以包括列选择电路。
数据输入/输出电路124通过数据线DL连接到第一至第m页缓冲器PB1至PBm。数据输入/输出电路124响应于控制逻辑130的控制而进行操作。
数据输入/输出电路124可以包括接收输入数据DATA的多个输入/输出缓冲器(未示出)。在编程操作期间,数据输入/输出电路124从外部控制器(未示出)接收要被存储的数据DATA。在读取操作期间,数据输入/输出电路124将从被包括在读取和写入电路123中的第一至第m页缓冲器PB1至PBm传送的数据DATA输出到外部控制器。
在读取操作或验证操作期间,感测电路125可以响应于由控制逻辑130生成的允许位VRYBIT的信号来生成参考电流,并且可以将从读取和写入电路123接收到的感测电压VPB与由参考电流生成的参考电压进行比较来向控制逻辑130输出通过信号或失败信号。
控制逻辑130可以连接到地址解码器121、电压生成器122、读取和写入电路123、数据输入/输出电路124和感测电路125。控制逻辑130可以被配置为控制存储器设备100的所有操作。控制逻辑130可以响应于从外部设备传送的命令CMD而进行操作。
控制逻辑130可以响应于命令CMD和地址ADDR来生成各种信号以控制外围电路120。例如,控制逻辑130可以响应于命令CMD和地址ADDR来生成操作信号OPSIG、地址ADDR、读取和写入电路控制信号PBSIGNALS以及允许位VRYBIT。控制逻辑130可以向电压生成器122输出操作信号OPSIG、向地址解码器121输出地址ADDR、向读取和写入电路123输出读取和写入控制信号PBSIGNALS并且向感测电路125输出允许位VRYBIT。此外,控制逻辑130可以响应于由感测电路125输出的通过或失败信号PASS/FAIL来确定验证操作是通过还是失败。
图3是图示了根据本公开的一个实施例的图1的主机和存储器控制器的配置和操作的图。
参考图3,存储器控制器200可以包括存储器设备状态信息存储装置210和垃圾收集处理器220。
存储器设备状态信息存储装置210可以存储健康信息HINF和存储器块信息BLK_INF。
健康信息HINF可以包括主机写入量和存储设备写入量。主机写入量可以是与从主机300提供到存储器控制器200的写入命令相对应的数据量。存储设备写入量可以是与在存储器设备100中执行的写入操作相对应的数据量。健康信息HINF可以包括主机读取量、存储设备读取量和存储设备的忙碌时间。主机读取量可以是与从主机300提供到存储器控制器200的读取命令相对应的数据量。存储设备读取量可以是与在存储器设备100中执行的读取操作相对应的数据量。
存储器块信息BLK_INF可以包括关于被包括在存储器设备100中的多个存储器块的信息。存储器块信息BLK_INF可以包括被包括在存储器块中的多个页之中的存储无效数据的页的数目。
垃圾收集处理器220可以响应于从垃圾收集控制器310接收到的健康信息请求命令HINF_CMD而将健康信息HINF提供到垃圾收集控制器310。垃圾收集处理器220可以响应于从垃圾收集控制器310接收到的第一垃圾收集控制命令GCCTL_CMD而将垃圾收集成本信息GCC_INF提供到垃圾收集控制器310。垃圾收集成本信息GCC_INF可以包括多个存储器块之中将通过垃圾收集确保的空闲块的预期数目和垃圾收集的预期时间。垃圾收集处理器220可以基于被包括在存储器块信息BLK_INF中的无效数据页计数来计算空闲块的预期数目和预期时间。垃圾收集处理器220可以响应于从垃圾收集控制器310接收到的第二垃圾收集控制命令GCCTL_CMD来对存储器设备100执行垃圾收集。
健康信息请求命令HINF_CMD可以包括用于请求存储器设备100的寄存器信息的获取参数命令。第一和第二垃圾收集控制命令GCCTL_CMD可以包括用于设置存储器设备100的寄存器信息的设置参数命令。
主机300可以包括垃圾收集控制器310和空闲时间处理器320。
垃圾收集控制器310可以向垃圾收集处理器220提供用于请求包括主机写入量和存储设备写入量的健康信息HINF的健康信息请求命令HINF_CMD。垃圾收集控制器310可以基于健康信息HINF来预测存储设备的垃圾收集需求。当存储设备写入量大于主机写入量时,垃圾收集控制器310可以承认垃圾收集需求。在存储设备写入量大于主机写入量的情况下,这种情况可能指示在存储设备50中内部地执行了大量的写入操作,这导致无效数据页的数目增加,并且因此这种情况可能指示非常需要执行垃圾收集。当垃圾收集需求被承认时,垃圾收集控制器310可以向垃圾收集处理器220提供用于请求垃圾收集成本信息GCC_INF的第一垃圾收集控制命令GCCTL_CMD。
垃圾收集控制器310可以基于垃圾收集成本信息GCC_INF和存储器设备100的空闲时间而向垃圾收集处理器220提供第二垃圾收集控制命令GCCTL_CMD,其用于指使执行垃圾收集。垃圾收集控制器310可以基于垃圾收集单位时间和存储器设备100的空闲时间的比较结果而向垃圾收集处理器220提供第二垃圾收集控制命令GCCTL_CMD。垃圾收集单位时间可以是确保一个空闲块所需的预期时间。可以基于被包括在垃圾收集成本信息GCC_INF中的空闲块的预期数目和预期时间来计算垃圾收集单位时间。当空闲时间大于垃圾收集单位时间时,垃圾收集控制器310可以向垃圾收集处理器220提供第二垃圾收集控制命令GCCTL_CMD。垃圾收集控制器310可以基于垃圾收集单位时间和存储器设备100的空闲时间的比较结果来计算将将通过垃圾收集确保的目标空闲块的数目。垃圾收集控制器310可以向垃圾收集处理器220提供包括目标空闲块的数目的信息和第二垃圾收集控制命令GCCTL_CMD。
空闲时间处理器320可以处理关于存储器设备100的空闲时间的信息。具体地,空闲时间处理器320可以收集并更新关于空闲时间的信息,并且基于关于该空闲时间的信息来计算该空闲时间。关于空闲时间的信息可以包括关于被提供到存储器控制器200的输入和输出命令的信息。关于空闲时间的信息可以包括基于被包括在健康信息中的主机写入量、存储设备写入量、主机读取量、存储设备读取量以及存储设备的忙碌时间生成的信息。存储器设备100的空闲时间可以是其中根据主机300的请求的所有操作被完成并且存储器控制器200等待接收主机300的请求的时间。具体地,空闲时间可以是其中存储设备等待接收来自主机的命令而不根据由主机所请求的命令来执行操作的时间。空闲时间处理器320通过主机写入量、存储设备写入量、主机读取量、存储设备读取量以及存储设备的忙碌时间来确定存储设备是根据主机的请求执行操作还是根据存储设备的需要执行内部操作。因此,空闲时间处理器320可以计算存储设备等待主机请求或执行内部操作而不执行根据主机请求的操作的时间作为空闲时间。
图4是图示了根据本公开的一个实施例的主机和存储设备的操作的流程图。
参考图4,在操作S401中,主机可以向存储设备提供健康信息请求命令HINF_CMD。
在操作S403中,存储设备可以向主机提供包括存储设备写入量和主机写入量的健康信息HINF。主机写入量可以是与提供到存储设备的写入命令相对应的数据量。存储设备写入量可以是与在存储设备内部执行的写入操作相对应的数据量。
在操作S405中,主机可以比较存储设备写入量和主机写入量。作为比较结果,当存储设备写入量大于主机写入量时,主机可以承认存储设备的垃圾收集需求。在存储设备写入量大于主机写入量的情况下,这种情况可能指示在存储设备50中内部地执行了大量的写入操作,这导致无效数据页的数目增加,并且因此这种情况可能指示非常需要执行垃圾收集。
在操作S407中,当垃圾收集需求被承认时,主机可以向存储设备提供用于请求垃圾收集成本信息GCC_INF的第一垃圾收集控制命令GCCTL_CMD。
在操作S409中,存储设备可以响应于第一垃圾收集控制命令GCCTL_CMD来计算垃圾收集成本GCC。存储设备可以基于被包括在存储器块中的无效数据页计数来计算将通过垃圾收集确保的空闲块的预期数目和垃圾收集的预期时间。
在操作S411中,存储设备可以向主机提供垃圾收集成本信息GCC_INF。垃圾收集成本信息GCC_INF可以包括在多个存储器块之中将通过垃圾收集确保的空闲块的预期数目和垃圾收集的预期时间。
在操作S413中,主机可以将垃圾收集单位时间GCUT与存储设备的空闲时间IdleTime进行比较。垃圾收集单位时间可以是确保一个空闲块所需的预期时间。可以基于被包括在垃圾收集成本信息GCC_INF中的空闲块的预期数目和预期时间来计算垃圾收集单位时间。
在操作S415中,当空闲时间Idle Time大于垃圾收集单位时间GCUT时,主机可以向存储设备提供第二垃圾收集控制命令GCCTL_CMD。主机可以基于垃圾收集单位时间GCUT和空闲时间Idle Time的比较结果来计算将通过垃圾收集确保的目标空闲块的数目。主机可以向存储设备提供包括目标空闲块的数目的信息和第二垃圾收集控制命令GCCTL_CMD。
在操作S417中,存储设备可以响应于从主机接收到的第二垃圾收集控制命令GCCTL_CMD来执行垃圾收集。
图5是图示了根据本公开的一个实施例的健康信息的图。
参考图5,健康信息HINF可以包括主机写入量Host Write和存储设备写入量Device Write。主机写入量Host Write可以是与从主机向存储设备提供的写入命令相对应的数据量。主机写入量Host Write可以是由主机请求写入到存储设备的数据量。
存储设备写入量Device Write可以是与在存储设备中执行的写入操作相对应的数据量。存储设备写入量Device Write可以包括与主机的请求分离的根据存储设备内部执行的写入操作的数据量。
图6是图示了根据本公开的一个实施例的智能健康信息日志的图。
参考图6,智能健康信息日志可以是图5的健康信息的一个实施例。一个字节可以是指示每个字段的位值。字段的数目以及与字段相对应的字节值不限于本实施例。在图6中,智能健康信息日志中只示出了所有字段之中的部分字段,并且还可以包括其他字段。
读取的数据单元可以包括除了元数据之外的由主机从控制器读取的512字节的数据单元的数目。写入的数据单元可以包括除了元数据之外的由主机写入到控制器的512字节的数据单元的数目。主机读取命令可以包括由控制器完成的读取命令的数目。主机写入命令可以包括由控制器完成的写入命令的数目。控制器忙碌时间可以包括当控制器由于输入和输出命令而处于忙碌状态时的时间量。
图7是图示了根据本公开的一个实施例的垃圾收集控制命令的图。
参考图7,垃圾收集控制命令GCCTL_CMD可以根据一个值指使返回垃圾收集成本信息GCC_INF或者执行垃圾收集。例如,当该值为0时,垃圾收集控制命令GCCTL_CMD可以是用于请求存储设备返回垃圾收集成本信息GCC_INF的命令。当该值为1时,垃圾收集控制命令GCCTL_CMD可以是用于指使存储设备执行垃圾收集的命令。垃圾收集控制命令可以是用于设置存储设备的寄存器信息的设置参数命令。
图8A是图示了根据本公开的一个实施例的空闲块的预期数目的图。
参考图8A,存储器块池可以包括第一至第六存储器块BLK1至BLK6。每个存储器块可以包括四个页。被包括在存储器块池中的存储器块的数目和被包括在每个存储器块中的页的数目不限于本实施例。
可以通过垃圾收集GC擦除无效页数据,并且可以将有效页数据移动并存储在另一个存储器块中。例如,可以将存储在第一至第四存储器块BLK1至BLK4中的有效页数据复制到作为空闲块的第五和第六存储器块BLK5和BLK6。此后,第一至第四存储器块BLK1至BLK4可以被擦除并被用作空闲块。
无效数据页计数IPC可以是被包括在存储器块中的存储无效数据的页的数目。在图8A中,由于无效数据页计数IPC为8并且在一个存储器块中包括有4个页,因此可以预期8/4=2个空闲块通过垃圾收集被确保。
因此,在垃圾收集GC之前,空闲块的数目可以是两个,并且空闲块的预期数目可以是两个。在垃圾收集GC之后,空闲块的数目可以是四个,并且空闲块的预期数目可以是零个。因此,可以通过垃圾收集GC额外确保两个空闲块。
图8B是图示了根据本公开的一个实施例的用于确定空闲块的预期数目的空闲块计算表的图。
参考图8B,可以根据无效数据页计数IPC值X来确定空闲块的预期数目EFBLK。例如,当X大于或等于Y1且小于Y2时,可以将空闲块的预期数目确定为Z1。当X大于或等于Y2且小于Y3时,可以将空闲块的预期数目确定为Z2。类似地,当X大于或等于Yn且小于Y(n+1)时,可以将空闲块的预期数目确定为Zn。
在一个实施例中,Y1至Y(n+1)和Z1至Zn的值可以包括制造工艺步骤中的预设值。在另一个实施例中,Y1至Y(n+1)和Z1至Zn的值可以根据存储设备的环境而周期性或非周期性地更新。
空闲块计算表的示例不限于本实施例,并且空闲块的预期数目可以基于通过将X的值代入到预设方程或根据存储设备的环境而变化的方程中所得到的值来确定。
图9是图示了根据本公开的一个实施例的基于垃圾收集成本信息GCC_INF的垃圾收集的图。
参考图9,将通过垃圾收集确保的空闲块的预期数目可以是十个。垃圾收集所需的预期时间可以是5。可以根据存储设备的性能和环境而不同地设置时间单位。垃圾收集单位时间可以是5/10=0.5。也就是说,通过垃圾收集确保一个空闲块可能需要0.5的时间。
将通过垃圾收集确保的目标空闲块的数目可以基于垃圾收集单位时间和存储设备的空闲时间的比较结果来计算。例如,当存储设备的空闲时间为0.2(其小于垃圾收集单位时间)时,目标空闲块的数目可以为零。在这种情况下,主机可以不提供用于指使存储设备执行垃圾收集的命令。
当存储设备的空闲时间为0.7(其大于垃圾收集单位时间)时,目标空闲块的数目可以是一个。主机可以向存储设备提供用于指使执行垃圾收集的命令和包括目标空闲块的数目的信息。存储设备可以执行垃圾收集以确保与目标空闲块的数目一样多。当存储设备的空闲时间为10(其大于垃圾收集单位时间)时,目标空闲块的数目可以为10。主机可以向存储设备提供用于指使执行垃圾收集的命令和包括目标空闲块的数目的信息。
根据一个实施例,即使在执行整体的垃圾收集时可以确保10个空闲块,主机也可以指使存储设备在考虑到存储设备的空闲时间的情况下确保空闲块的优化数目。因此,可以在其中不降低存储设备的性能的范围内抢先确保空闲块。
图10是图示了根据本公开的一个实施例的操作主机的方法的流程图。
参考图10,在操作S1001中,主机可以向存储设备提供用于请求包括主机写入量和存储设备写入量的健康信息的命令。
在操作S1003中,主机可以基于健康信息来预测垃圾收集需求。
在操作S1005中,当垃圾收集需求被承认时,主机可以向存储设备提供用于请求垃圾收集成本信息GCC_INF的命令。
在操作S1007中,主机可以基于垃圾收集成本信息GCC_INF来确定是否执行垃圾收集。
在操作S1009中,主机可以指使存储设备执行垃圾收集。此时,主机可以向存储设备提供包括将通过垃圾收集确保的目标空闲块的数目的信息。
图11是图示了根据本公开的一个实施例的操作主机的方法的流程图。
参考图11,在操作S1101中,主机可以向存储设备提供健康信息请求命令。
在操作S1103中,主机可以接收包括主机写入量和存储设备写入量的健康信息。
在操作S1105中,主机可以确定存储设备写入量是否大于或等于主机写入量。当存储设备写入量大于或等于主机写入量时,操作进行到操作S1107。当存储设备写入量小于主机写入量时,可以结束操作。在存储设备写入量大于主机写入量的情况下,这种情况可能指示存储设备中内部地执行了大量写入操作,这导致无效数据页的数目增加,并且因此这种情况可能指示非常需要执行垃圾收集。
在操作S1107中,主机可以向存储设备提供用于请求垃圾收集成本信息GCC_INF的垃圾收集控制命令。
在操作S1109中,主机可以从存储设备接收包括空闲块的预期数目和预期时间的垃圾收集成本信息GCC_INF。
在操作S1111中,主机可以确定存储设备的空闲时间是否长于垃圾收集单位时间。当空闲时间长于或等于垃圾收集单位时间时,操作进行到操作S1113。当空闲时间短于垃圾收集单位时间时,结束操作。垃圾收集单位时间可以是确保一个空闲块所需的预期时间。
在操作S1113中,主机可以向存储设备提供包括将通过垃圾收集确保的目标空闲块的数目的信息和用于指使垃圾收集的垃圾收集控制命令。
图12是图示了根据本公开的一个实施例的操作存储设备的方法的流程图。
参考图12,在操作S1201中,存储设备可以响应于从主机接收到的健康信息请求命令向主机提供包括主机写入量和存储设备写入量的健康信息。
在操作S1203中,存储设备可以响应于从主机接收到的垃圾收集控制命令,基于被包括在存储器块信息中的无效数据页计数来检查包括空闲块的预期数目和预期时间的垃圾收集成本。具体地,存储设备可以基于无效数据页计数和存储在空闲块计算表中的值来确定空闲块的预期数目。当空闲块的预期数目被确定时,存储设备可以基于预设时间值或者根据存储设备的环境而更新的时间值来确定与空闲块的预期数目相对应的预期时间。
在操作S1205中,存储设备可以向主机提供垃圾收集成本信息GCC_INF。
在操作S1207中,存储设备可以响应于从主机接收到的垃圾收集控制命令来执行与目标空闲块的数目相对应的垃圾收集。
图13是图示了根据本公开的另一个实施例的图1的存储器控制器的图。
参考图13,存储器控制器1000连接到主机和存储器设备。存储器控制器1000被配置为响应于来自主机的请求而访问存储器设备。例如,存储器控制器1000被配置为控制存储器设备的写入、读取、擦除和后台操作。存储器控制器1000被配置为提供存储器设备和主机之间的接口。存储器控制器1000被配置为驱动用于控制存储器设备的固件。
存储器控制器1000可以包括处理器1010、存储器缓冲器1020、纠错电路(ECC)1030、主机接口1040、缓冲器控制器1050、存储器接口1060和总线1070。
总线1070可以被配置为提供存储器控制器1000的组件之间的通道。
处理器1010可以控制存储器控制器1000的整体操作,并且可以执行逻辑操作。处理器1010可以通过主机接口1040来与外部主机通信,并且通过存储器接口1060来与存储器设备通信。此外,处理器1010可以通过缓冲器控制器1050来与存储器缓冲器1020通信。处理器1010可以将存储器缓冲器1020作为操作存储器、高速缓存存储器或缓冲存储器而控制存储设备的操作。
处理器1010可以执行FTL的功能。处理器1010可以通过FTL将由主机提供的LBA转换成PBA。FTL可以使用映射表来接收LBA并将该LBA转换成PBA。快闪转换层的地址映射方法可以包括根据映射单元的各种方法。代表性的地址映射方法包括页映射方法、块映射方法和混合映射方法。
处理器1010被配置为将从主机接收到的数据随机化。例如,处理器1010可以使用随机化种子来随机化从主机接收到的数据。被随机化的数据作为要被存储的数据而被提供到存储器设备,并且被编程到存储器单元阵列。
处理器1010被配置为在读取操作期间将从存储器设备接收到的数据去随机化。例如,处理器1010可以使用去随机化种子来去随机化从存储器设备接收到的数据。被去随机化的数据可以被输出到主机。
在一个实施例中,处理器1010可以通过驱动软件或固件来执行随机化和去随机化。
存储器缓冲器1020可以被用作处理器1010的操作存储器、高速缓存存储器或缓冲存储器。存储器缓冲器1020可以存储由处理器1010执行的代码和命令。存储器缓冲器1020可以存储由处理器1010处理的数据。存储器缓冲器1020可以包括静态RAM(SRAM)或动态RAM(DRAM)。
ECC 1030可以执行纠错。ECC 1030可以基于将通过存储器接口1060写入到存储器设备的数据来执行纠错编码(ECC编码)。纠错编码数据可以通过存储器接口1060而被传送到存储器设备。ECC 1030可以执行对通过存储器接口1060而从存储器设备接收到的数据执行纠错解码(ECC解码)。例如,ECC 1030可以作为存储器接口1060的组件而被包括在存储器接口1060中。
主机接口1040被配置为在处理器1010的控制下与外部主机通信。主机接口1040可以被配置为使用诸如以下项的各种通信标准或接口中的至少一种来执行通信:通用串行总线(USB)、串行AT附件(SATA)、串行附接SCSI(SAS)、高速互连芯片(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、非易失性存储器快速(NVMe)、通用快闪存储装置(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)以及低负载DIMM(LRDIMM)。
缓冲器控制器1050被配置为在处理器1010的控制下控制存储器缓冲器1020。
存储器接口1060被配置为在处理器1010的控制下与存储器设备通信。存储器接口1060可以通过通道来与存储器设备传递命令、地址和数据。
例如,存储器控制器1000可以不包括存储器缓冲器1020和缓冲器控制器1050。
例如,处理器1010可以使用代码来控制存储器控制器1000的操作。处理器1010可以从存储器控制器1000内部提供的非易失性存储器设备(例如,只读存储器)加载代码。作为另一个示例,处理器1010可以通过存储器接口1060从存储器设备加载代码。
例如,存储器控制器1000的总线1070可以被划分为控制总线和数据总线。数据总线可以被配置为在存储器控制器1000内发送数据,并且控制总线可以被配置为在存储器控制器1000内发送诸如命令和地址的控制信息。数据总线和控制总线可以相互分离,并且可以不相互不干扰或相互影响。数据总线可以连接到主机接口1040、缓冲器控制器1050、ECC1030和存储器接口1060。控制总线可以连接到主机接口1040、处理器1010、缓冲器控制器1050、存储器缓冲器1020以及存储器接口1060。
图14是图示了应用根据本公开的一个实施例的存储设备的存储器卡系统的框图。
参考图14,存储器卡系统2000包括存储器控制器2100、存储器设备2200和连接器2300。
存储器控制器2100连接到存储器设备2200。存储器控制器2100被配置为访问存储器设备2200。例如,存储器控制器2100可以被配置为控制存储器设备2200的读取、写入、擦除和后台操作。存储器控制器2100被配置为提供存储器设备2200和主机之间的接口。存储器控制器2100被配置为驱动用于控制存储器设备2200的固件。存储器控制器2100可以与参考图1描述的存储器控制器200相同地实现。
例如,存储器控制器2100可以包括诸如随机存取存储器(RAM)、处理器、主机接口、存储器接口和ECC的组件。
存储器控制器2100可以通过连接器2300来与外部设备通信。存储器控制器2100可以根据特定的通信标准来与外部设备(例如,主机)通信。例如,存储器控制器2100被配置为通过诸如以下项的各种通信标准或接口中的至少一种来与外部设备进行通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、PCI快速(PCI-E)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机系统接口(SCSI)、增强型小型盘接口(ESDI)、集成驱动电子设备(IDE)、火线、通用快闪存储装置(UFS)、Wi-Fi、蓝牙和NVMe。例如,连接器2300可以由上述各种通信标准或接口中的至少一种来定义。
例如,存储器设备2200可以由诸如以下项的各种非易失性存储器元件构成:电可擦除可编程ROM(EEPROM)、NAND快闪存储器、NOR快闪存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)和自旋转移力矩磁性RAM(STT-MRAM)。
存储器控制器2100和存储器设备2200可以被集成到一个半导体设备中以配置存储器卡。例如,存储器控制器2100和存储器设备2200可以被集成到一个半导体设备中以配置诸如PC卡(个人计算机存储器卡国际协会(PCMCIA))、紧凑式快闪卡(CF)、智能媒体卡(SM或SMC)、记忆棒、多媒体卡(MMC、RS-MMC、MMCmicro或eMMC)、SD卡(SD、miniSD、microSD或SDHC)以及通用快闪存储装置(UFS)的存储器卡。
图15是图示了应用根据本公开的一个实施例的存储设备的固态驱动器(SSD)系统的框图。
参考图15,SSD系统3000包括主机3100和SSD 3200。SSD 3200通过信号连接器3001来与主机3100交换信号并且通过电源连接器3002接收电源。SSD 3200包括SSD控制器3210、多个快闪存储器3221至322n、辅助电源设备3230和缓冲存储器3240。
根据本公开的一个实施例,SSD控制器3210可以执行参考图1描述的存储器控制器200的功能。
SSD控制器3210可以响应于从主机3100接收到的信号来控制多个快闪存储器3221至322n。例如,该信号可以是基于主机3100和SSD 3200之间的接口的信号。例如,信号可以是由诸如以下项的通信标准或接口中的至少一种定义的信号:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、PCI快速(PCI-E)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机系统接口(SCSI)、增强型小型盘接口(ESDI)、集成驱动电子设备(IDE)、火线、通用快闪存储装置(UFS)、Wi-Fi、蓝牙和NVMe。
辅助电源设备3230通过电源连接器3002连接到主机3100。辅助电源设备3230可以从主机3100接收电源并且可以充电。当从主机3100的电源供应不畅时,辅助电源设备3230可以为SSD 3200提供电源。例如,辅助电源设备3230可以位于SSD 3200中或者可以位于SSD3200外部。例如,辅助电源设备3230可以位于主板上并且可以向SSD 3200提供辅助电源。
缓冲存储器3240作为SSD 3200的缓冲存储器进行操作。例如,缓冲存储器3240可以临时存储从主机3100接收到的数据或从多个快闪存储器3221至322n接收到的数据,或者可以临时存储快闪存储器3221至322n的元数据(例如,映射表)。缓冲存储器3240可以包括诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM的易失性存储器或者诸如FRAM、ReRAM、STT-MRAM和PRAM的非易失性存储器。
图16是图示了应用根据本公开的一个实施例的存储设备的用户系统的框图。
参考图16,用户系统4000包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可以驱动被包括在用户系统4000中的组件、操作系统(OS)、用户程序等。例如,应用处理器4100可以包括控制被包括在用户系统4000中的组件的控制器、接口、图形引擎等。应用处理器4100可以被提供为片上系统(SoC)。
存储器模块4200可以作为用户系统4000的主存储器、操作存储器、缓冲存储器或高速缓存存储器进行操作。存储器模块4200可以包括诸如DRAM、SDRAM、DDR SDRAM、DDR2SDRAM、DDR3SDRAM、LPDDR SDRAM、LPDDR2 SDRAM或LPDDR3 SDRAM的易失性随机存取存储器或者诸如PRAM、ReRAM、MRAM或FRAM的非易失性随机存取存储器。例如,应用处理器4100和存储器模块4200可以基于叠层封装(POP)进行封装并且被提供为单个半导体封装。
网络模块4300可以与外部设备通信。例如,网络模块4300可以支持诸如码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进、Wimax、WLAN、UWB、蓝牙和Wi-Fi的无线通信。例如,网络模块4300可以被包括在应用处理器4100中。
存储模块4400可以存储数据。例如,存储模块4400可以存储从应用处理器4100接收到的数据。替代地,存储模块4400可以将存储在存储模块4400中的数据发送到应用处理器4100。例如,存储模块4400可以被实现为诸如相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、NAND快闪、NOR快闪以及三维NAND快闪的非易失性半导体存储器元件。例如,存储模块4400可以被提供为诸如存储器卡的可移动存储设备(可移动驱动器)以及用户系统4000的外部驱动器。
例如,存储模块4400可以包括多个非易失性存储器设备,并且多个非易失性存储器设备可以与参考图1描述的存储器设备100相同地操作。存储模块4400可以与参考图1描述的存储设备50相同地操作。
用户接口4500可以包括用于向应用处理器4100输入数据或指令或者用于向外部设备输出数据的接口。例如,用户接口4500可以包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、相机、麦克风、陀螺仪传感器、振动传感器和压电元件的用户输入接口。用户接口4500可以包括诸如液晶显示器(LCD)、有机发光二极管(OLED)显示设备、有源矩阵OLED(AMOLED)显示设备、LED、扬声器以及监视器的用户输出接口。
虽然根据上述实施例对本公开的技术精神进行了具体描述,但是应当注意,上述实施例用于进行说明而并非用于限制。此外,本领域的技术人员将理解,可以在本公开和所附权利要求的技术精神的范围内做出各种实施例。此外,实施例可以进行组合以形成另外的实施例。
Claims (20)
1.一种主机设备,包括:
垃圾收集控制器,被配置为:
向存储设备提供健康信息请求命令,所述健康信息请求命令用于请求包括主机写入量和存储设备写入量的健康信息,
基于所述健康信息,向所述存储设备提供第一垃圾收集控制命令,所述第一垃圾收集控制命令用于请求垃圾收集成本信息,以及
基于所述垃圾收集成本信息和所述存储设备的空闲时间,向所述存储设备提供第二垃圾收集控制命令,所述第二垃圾收集控制命令用于指使执行垃圾收集;以及
空闲时间处理器,被配置为处理关于所述空闲时间的信息。
2.根据权利要求1所述的主机设备,
其中所述主机写入量是与从所述主机向所述存储设备提供的写入命令相对应的数据量,以及
其中所述存储设备写入量是与在所述存储设备中被执行的写入操作相对应的数据量。
3.根据权利要求2所述的主机设备,其中当所述存储设备写入量大于所述主机写入量时,所述垃圾收集控制器向所述存储设备提供所述第一垃圾收集控制命令。
4.根据权利要求1所述的主机设备,其中所述垃圾收集成本信息包括将通过所述垃圾收集而被确保的空闲块的预期数目和所述垃圾收集所需的预期时间。
5.根据权利要求4所述的主机设备,其中所述垃圾收集控制器基于所述空闲时间与垃圾收集单位时间的比较结果来向所述存储设备提供所述第二垃圾收集控制命令,所述垃圾收集单位时间是基于空闲块的所述预期数目和所述预期时间而被计算出的。
6.根据权利要求5所述的主机设备,其中所述垃圾收集控制器还被配置为:当所述空闲时间大于所述垃圾收集单位时间时,向所述存储设备提供所述第二垃圾收集控制命令。
7.根据权利要求5所述的主机设备,其中所述垃圾收集控制器还被配置为:基于所述比较结果来计算将通过所述垃圾收集而被确保的目标空闲块的数目,并且将包括目标空闲块的所述数目的信息与所述第二垃圾收集控制命令一起提供给所述存储设备。
8.根据权利要求1所述的主机设备,
其中所述健康信息请求命令包括用于请求所述存储设备的寄存器信息的获取参数命令,以及
其中所述第一垃圾收集控制命令和所述第二垃圾收集控制命令包括用于设置所述寄存器信息的设置参数命令。
9.根据权利要求1所述的主机设备,
其中所述健康信息包括主机读取量、存储设备读取量以及所述存储设备的忙碌时间,所述主机读取量是与从所述主机向所述存储设备提供的读取命令相对应的数据量,所述存储设备读取量是与在所述存储设备中被执行的读取操作相对应的数据量,以及
其中所述空闲时间处理器基于所述健康信息和关于所述空闲时间的信息中的至少一者来计算所述空闲时间,关于所述空闲时间的所述信息包括关于被提供到所述存储设备的输入和输出命令的信息。
10.一种操作主机设备的方法,所述方法包括:
向存储设备提供健康信息请求命令,所述健康信息请求命令用于请求包括主机写入量和存储设备写入量的健康信息;
基于从所述存储设备接收到的所述健康信息,向所述存储设备提供第一垃圾收集控制命令,所述第一垃圾收集控制命令用于请求垃圾收集成本信息;以及
基于所述垃圾收集成本信息和所述存储设备的空闲时间,向所述存储设备提供第二垃圾收集控制命令,所述第二垃圾收集控制命令指使执行垃圾收集。
11.根据权利要求10所述的方法,还包括基于被提供到所述存储设备的输入和输出命令来计算所述空闲时间,
其中所述空闲时间表示从当所述主机设备从所述存储设备接收到对上一个命令的响应开始,到当所述主机设备向所述存储设备发送新的下一个命令的请求为止的时间。
12.根据权利要求10所述的方法,
其中所述主机写入量是与被提供到所述存储设备的写入命令相对应的数据量,以及
其中所述存储设备写入量是与在所述存储设备中被执行的写入操作相对应的数据量。
13.根据权利要求12所述的方法,其中当所述存储设备写入量大于所述主机写入量时,所述第一垃圾收集控制命令被提供。
14.根据权利要求10所述的方法,其中所述垃圾收集成本信息表示将通过所述垃圾收集而被确保的空闲块的预期数目和所述垃圾收集所需的预期时间。
15.根据权利要求14所述的方法,其中所述第二垃圾收集控制命令基于所述空闲时间与垃圾收集单位时间的比较结果而被提供,所述垃圾收集单位时间是基于空闲块的所述预期数目和所述预期时间而被计算出的。
16.根据权利要求15所述的方法,还包括:
基于所述比较结果来计算将通过所述垃圾收集而被确保的目标空闲块的数目;以及
将表示目标空闲块的所述数目的信息与所述第二垃圾收集控制命令一起提供给所述存储设备。
17.一种存储设备,包括:
存储器设备,包括多个存储器块;以及
存储器控制器,被配置为:
响应于来自外部设备的健康信息请求命令,向所述外部设备提供包括外部设备写入量和存储设备写入量的健康信息,
响应于来自所述外部设备的第一垃圾收集控制命令,向所述外部设备提供包括将通过垃圾收集而被确保的空闲块的预期数目的垃圾收集成本信息,以及
响应于来自所述外部设备的第二垃圾收集控制命令,对所述存储器设备执行所述垃圾收集。
18.根据权利要求17所述的存储设备,
其中所述外部设备写入量是与从所述外部设备向所述存储器控制器提供的写入命令相对应的数据量,以及
其中所述存储设备写入量是与在所述存储器设备中被执行的写入操作相对应的数据量。
19.根据权利要求17所述的存储设备,其中所述存储器控制器包括:
存储器设备状态信息存储装置,被配置为存储关于所述多个存储器块的存储器块信息和所述健康信息,并且包括空闲块计算表;以及
垃圾收集处理器,被配置为基于无效数据页计数和所述空闲块计算表来确定空闲块的所述预期数目。
20.根据权利要求17所述的存储设备,
其中所述健康信息请求命令包括用于请求所述存储设备的寄存器信息的获取参数命令,以及
其中所述第一垃圾收集控制命令和所述第二垃圾收集控制命令包括用于设置所述寄存器信息的设置参数命令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2022-0069776 | 2022-06-08 | ||
KR1020220069776A KR20230168908A (ko) | 2022-06-08 | 2022-06-08 | 컴퓨팅 시스템 및 그 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117193627A true CN117193627A (zh) | 2023-12-08 |
Family
ID=88874126
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310343649.2A Pending CN117193627A (zh) | 2022-06-08 | 2023-04-03 | 计算系统及其操作方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230401006A1 (zh) |
KR (1) | KR20230168908A (zh) |
CN (1) | CN117193627A (zh) |
DE (1) | DE102023109661A1 (zh) |
TW (1) | TW202349203A (zh) |
-
2022
- 2022-06-08 KR KR1020220069776A patent/KR20230168908A/ko unknown
- 2022-12-14 US US18/081,519 patent/US20230401006A1/en active Pending
-
2023
- 2023-04-03 CN CN202310343649.2A patent/CN117193627A/zh active Pending
- 2023-04-18 DE DE102023109661.3A patent/DE102023109661A1/de active Pending
- 2023-05-18 TW TW112118475A patent/TW202349203A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
US20230401006A1 (en) | 2023-12-14 |
KR20230168908A (ko) | 2023-12-15 |
DE102023109661A1 (de) | 2023-12-14 |
TW202349203A (zh) | 2023-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110389720B (zh) | 存储装置及其操作方法 | |
US11449417B2 (en) | Memory controller performing host-aware performance booster mode and method of operating the same | |
CN112905502A (zh) | 存储装置及其操作方法 | |
CN111352855B (zh) | 具有提高的映射更新速度的存储装置及其操作方法 | |
CN111177020B (zh) | 存储装置及其操作方法 | |
KR20190123544A (ko) | 저장 장치 및 그 동작 방법 | |
US11954021B2 (en) | Storage device and operating method thereof | |
KR20210142981A (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
US11687450B2 (en) | Storage device for translating address and operating method thereof | |
KR20200114009A (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
KR20210090439A (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
CN114860622A (zh) | 存储装置及操作存储装置的方法 | |
CN110827873B (zh) | 存储器控制器 | |
KR20210099930A (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
CN111258931A (zh) | 存储器控制器及操作该存储器控制器的方法 | |
KR20230007881A (ko) | 저장 장치 및 그 동작 방법 | |
CN114115708A (zh) | 存储装置及其操作方法 | |
US11886361B2 (en) | Memory controller and operating method thereof | |
KR20220053973A (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
KR20220048864A (ko) | 저장 장치 및 그 동작 방법 | |
CN112199037A (zh) | 存储器控制器及其操作方法 | |
US20230401006A1 (en) | Computing system and method of operating the same | |
US11500768B2 (en) | Storage device performing garbage collection and method of operating the same | |
US11928056B2 (en) | Memory controller for allocating cache lines and method of operating the same | |
US12032850B2 (en) | Memory controller performing booting operation and method of operating the same |
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 |