CN109683805A - 存储器系统及其操作方法 - Google Patents

存储器系统及其操作方法 Download PDF

Info

Publication number
CN109683805A
CN109683805A CN201810630853.1A CN201810630853A CN109683805A CN 109683805 A CN109683805 A CN 109683805A CN 201810630853 A CN201810630853 A CN 201810630853A CN 109683805 A CN109683805 A CN 109683805A
Authority
CN
China
Prior art keywords
interface
workload
host
memory
flash
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.)
Granted
Application number
CN201810630853.1A
Other languages
English (en)
Other versions
CN109683805B (zh
Inventor
李知勋
全贞澔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
Hynix Semiconductor Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hynix Semiconductor Inc filed Critical Hynix Semiconductor Inc
Publication of CN109683805A publication Critical patent/CN109683805A/zh
Application granted granted Critical
Publication of CN109683805B publication Critical patent/CN109683805B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data

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)
  • Software Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

本发明提供一种存储器系统和该存储器系统的操作方法。该方法包括:将第一缓冲区域分配给第一工作负载组;将第二缓冲区域分配给第二工作负载组;监控第一工作负载组延迟和第二工作负载组延迟;以及基于监控的结果动态地调整第一缓冲区域和第二缓冲区域中的每一个的存储器空间。

Description

存储器系统及其操作方法
相关申请的交叉引用
本申请要求于2017年10月19日提交的申请号为10-2017-0135912的韩国专利申请的优先权,其全部内容通过引用并入本文。
技术领域
本公开的各个实施例总体涉及一种存储器系统,且更特别地,涉及一种被配置成监控主机接口和闪存接口的性能并基于该监控动态地分配缓冲存储器的存储器系统及该存储器系统的操作方法。
背景技术
通常的存储器装置可包括多个存储块,存储块中的每一个可包括用于存储数据的多个存储器单元。通常,可同时擦除包括在每一个存储块中的存储器单元。
包括多个存储器装置的存储器系统是已知的。在这种存储器系统中,可将包括在多个存储器装置中的多个存储块划分成多个超级块,每一个超级块包括两个或更多个存储块。基于超级块的管理使得存储器系统可以更有效地控制多个存储块。
包括动态随机存取存储器(DRAM)的存储器系统也是已知的,该动态随机存取存储器(DRAM)具有被分配用于主机接口中的工作负载处理的存储器区域和被分配用于闪存接口中的工作负载处理的存储器区域。在这种存储器系统中,在主机接口和闪存接口中的工作负载处理性能可能取决于分配给其的各个存储器区域的大小。
发明内容
本公开的各个实施例涉及一种能够监控主机接口和闪存接口的性能并基于主机接口和闪存接口的性能在主机接口处理和闪存接口处理之间动态地重新分配缓冲存储器的存储器系统和方法。
本公开的一个实施例提供一种存储器系统的操作方法,包括:将第一缓冲区域分配给第一工作负载组;将第二缓冲区域分配给第二工作负载组;监控第一工作负载组延迟和第二工作负载组延迟;以及基于监控的结果动态地调整第一缓冲区域和第二缓冲区域中的每一个的存储器空间。
本公开的另一实施例提供一种存储器系统,包括:主机接口,被配置成与主机通信并处理从主机接收的主机工作负载;闪存接口,被配置成与非易失性存储器装置通信并使用非易失性存储器装置来处理闪存工作负载;性能监控管理部分,被配置成监控处理主机工作负载和闪存工作负载的性能;以及缓冲存储器,包括被分配用于处理主机工作负载的主机工作负载处理区域和被分配用于处理闪存工作负载的闪存工作负载处理区域。性能监控管理部分可基于对性能的监控结果来动态地分配主机工作负载处理区域的存储器空间和闪存工作负载处理区域的存储器空间。
本公开的另一实施例提供一种存储器系统的操作方法,包括:设置通过主机接口处理第一工作负载的第一带宽;设置通过闪存接口处理第二工作负载的第二带宽;监控通过主机接口处理第一工作负载的服务质量(QoS);以及基于监控的结果动态地改变第一带宽和第二带宽。
从下面结合附图的描述中,本发明的这些和其它特征与优点对于本发明所属领域的普通技术人员将变得显而易见。
附图说明
图1是示出根据本公开的实施例的可操作地联接到主机的存储器系统的示图。
图2是示出图1所示的存储器系统中采用的存储器控制器的示例性配置的示图。
图3是示出根据本公开的另一实施例的包括多个非易失性存储器装置的存储器系统的示图。
图4是示出图1所示的非易失性存储器装置的示例性配置的示图。
图5是示出图4所示的非易失性存储器装置中采用的存储块的示例性配置的示图。
图6是示出根据本公开的实施例的缓冲存储器装置的示图。
图7是示出根据本公开的实施例的处理器的示图。
图8是根据本公开的实施例的动态性能控制方法的流程图。
图9是根据本公开的实施例的动态性能控制方法的流程图。
图10是示出根据本公开的实施例的包括图2所示的存储器控制器的存储器系统的示图。
图11是示出根据本公开的实施例的包括图2所示的存储器控制器的存储器系统的示图。
图12是示出根据本公开的实施例的包括图2所示的存储器控制器的存储器系统的示图。
图13是示出根据本公开的实施例的包括图2所示的存储器控制器的存储器系统的示图。
具体实施方式
现将参照附图在下文中更全面地描述本发明的示例性实施例;然而,应当注意的是,本发明可以不同的其它形式来实施,并且不应该被解释为仅限于在此阐述的实施例。相反地,提供这些实施例以便本公开将是彻底且充分的,并且将示例性实施例的范围全面地传达给本发明所属领域的技术人员。
在附图中,为了说明清楚,可以夸大尺寸。将理解的是,当元件被称为在两个元件“之间”时,其可以是这两个元件之间的唯一元件,或者也可存在一个或多个中间元件。
在下文中,将参照附图描述实施例。此处参照作为实施例(和中间结构)的示意图的截面图来描述实施例。这样,将预期到由于例如制造技术和/或偏差而导致的图示形状的变化。因此,实施例不应被解释为限于在此所示的区域的特定形状,而是可包括例如由制造引起的形状偏差。在附图中,为清楚起见,可以夸大层和区域的长度和大小。附图中相同的附图标记表示相同的元件。
诸如“第一”和“第二”的术语可用于描述各个部件,但其不应限制各个部件。这些术语仅用于区分部件与其它部件的目的。例如,在不脱离本公开的实质和范围的情况下,第一部件可被称为第二部件,并且第二部件可被称为第一部件等。此外,“和/或”可包括所提及的部件中的任何一个或组合。
此外,只要在语句中没有特别提及,则单数形式可包括复数形式。此外,在说明书中使用的“包括/包含”或“包括有/包含有”表示存在或添加一个或多个部件、步骤、操作和元件。
此外,除非另有定义,否则本说明书中使用的包括技术术语和科学术语的所有术语具有与相关领域的技术人员通常理解的含义相同的含义。通常使用的字典中定义的术语应被解释为具有与在相关技术的背景下解释的含义相同的含义,并且除非在本说明书中另有明确定义,否则其不应被解释为具有理想化或过于正式的含义。
还应注意的是,在本说明书中,“连接/联接”不仅指一个部件直接地联接另一部件,而且还指通过中间部件间接地联接另一部件。另一方面,“直接连接/直接联接”指一个部件直接地联接另一部件而没有中间部件。
图1是示出根据本公开的实施例的存储器系统1000的示图。
参照图1,存储器系统1000可包括:即使在电力关闭时也保持所存储的数据的非易失性存储器装置1100、被配置成临时存储数据的缓冲存储器装置1300以及被配置成在主机2000的控制下控制非易失性存储器装置1100和缓冲存储器装置1300的存储器控制器1200。
主机2000可使用诸如以下的各种通信方式中的至少一种与存储器系统1000通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪速存储(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)以及降低负载的DIMM(LRDIMM)。
存储器控制器1200可控制存储器系统1000的全部操作,并且控制主机2000与非易失性存储器装置1100之间的数据交换。例如,存储器控制器1200可响应于主机2000的请求而控制非易失性存储器装置1100编程或读取数据。此外,存储器控制器1200可控制非易失性存储器装置1100,使得信息被存储在包括在非易失性存储器装置1100中的主存储块和子存储块中,并且根据针对编程操作而加载的数据量对主存储块或子存储块执行编程操作。在实施例中,非易失性存储器装置1100可包括闪速存储器。
存储器控制器1200可控制主机2000与缓冲存储器装置1300之间的数据交换,或者将用于控制非易失性存储器装置1100的系统数据暂时存储在缓冲存储器装置1300中。
缓冲存储器装置1300可用作存储器控制器1200的操作存储器、高速缓冲存储器或缓冲存储器。缓冲存储器装置1300可存储待由存储器控制器1200执行的代码和命令。缓冲存储器装置1300可存储待由存储器控制器1200处理的数据。
存储器控制器1200可将从主机2000输入的数据临时存储在缓冲存储器装置1300中,然后将临时存储在缓冲存储器装置1300中的数据传输到非易失性存储器装置1100并将其存储在其中。此外,存储器控制器1200可从主机2000接收数据和逻辑地址,并且将该逻辑地址转换成表示数据将被实际存储在非易失性存储器装置1100中的区域的物理地址。存储器控制器1200可将表示逻辑地址与物理地址之间的映射关系的逻辑到物理地址映射表存储在缓冲存储器装置1300中。
在实施例中,缓冲存储器装置1300可包括双倍数据速率同步动态随机存取存储器(DDR SDRAM)、DDR4SDRAM、低功率双倍数据速率4(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)或Rambus动态随机存取存储器(RDRAM)。
图2是示出图1所示的存储器控制器1200的示图。
参照图2,存储器控制器1200可包括处理器710、存储器缓冲器720、命令排队部分730、主机接口740、缓冲器控制部分750、闪存接口760、缓冲存储器装置接口780和总线790。闪存接口760可包括错误校正码(ECC)电路7601和数据随机性发生器7602。
总线790可提供存储器控制器1200的部件之间的通道。
处理器710可控制存储器控制器1200的全部操作,并且可执行逻辑操作。处理器710可通过主机接口740与外部主机2000通信,并且通过闪存接口760与非易失性存储器装置1100通信。此外,处理器710可通过缓冲存储器装置接口780与缓冲存储器装置1300通信。处理器710可通过缓冲器控制部分750来控制存储器缓冲器720。处理器710可使用存储器缓冲器720作为操作存储器、高速缓冲存储器或缓冲存储器来控制存储器系统1000的操作。
命令排队部分730可对从主机2000输入的多个命令进行排队。该操作被称为多排队操作。命令排队部分730可顺序地将排队的命令传输到非易失性存储器装置1100。命令排队部分730可包括嵌入式SRAM。例如,命令排队部分730可被包括在处理器710中。可选地,命令排队部分730可被包括在闪存接口760中。
存储器缓冲器720可用作处理器710的操作存储器、高速缓冲存储器或缓冲存储器。存储器缓冲器720可存储待由处理器710执行的代码和命令。存储器缓冲器720可存储待由处理器710处理的数据。存储器缓冲器720可包括嵌入式静态RAM(嵌入式SRAM)或嵌入式动态RAM(嵌入式DRAM)。
主机接口740可在处理器710的控制下与外部主机2000进行通信。主机接口740可使用诸如以下的各种通信方式中的至少一种来执行通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪速存储(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)以及降低负载的DIMM(LRDIMM)。
缓冲器控制部分750可在处理器710的控制下控制存储器缓冲器720。
闪存接口760可在处理器710的控制下与非易失性存储器装置1100通信。闪存接口760可通过通道与非易失性存储器装置1100通信命令、地址和数据。
例如,存储器控制器1200可既不包括存储器缓冲器720也不包括缓冲器控制部分750。
例如,处理器710可使用代码来控制存储器控制器1200的操作。处理器710可从设置在存储器控制器1200中的非易失性存储器装置(例如,只读存储器)加载代码。可选地,处理器710可通过闪存接口760从非易失性存储器装置1100加载代码。
闪存接口760可包括ECC电路7601。ECC电路7601可执行错误校正。ECC电路7601可基于待通过闪存接口760写入非易失性存储器装置1100中的数据来执行ECC编码。ECC编码的数据可通过闪存接口760传输到非易失性存储器装置1100。ECC电路7601可对通过闪存接口760从非易失性存储器装置1100接收的数据执行ECC解码。
闪存接口760可包括数据随机性发生器7602。数据随机性发生器7602可对数据进行随机化或对随机化的数据进行去随机化。数据随机性发生器7602可对待通过闪存接口760写入非易失性存储器装置1100中的数据执行数据随机化操作。随机化的数据可通过闪存接口760传输到非易失性存储器装置1100。数据随机性发生器7602可对通过闪存接口760从非易失性存储器装置1100接收的数据执行数据去随机化操作。
例如,存储器控制器1200的总线790可被划分成控制总线和数据总线。数据总线可在存储器控制器1200中传输数据。控制总线可在存储器控制器1200中传输诸如命令和地址的控制信息。数据总线和控制总线可彼此分开,并且可既不互相干扰也不互相影响。数据总线可联接到主机接口740、缓冲器控制部分750、闪存接口760和缓冲存储器装置接口780。控制总线可联接到主机接口740、处理器710、缓冲器控制部分750、闪存接口760和缓冲存储器装置接口780。
缓冲存储器装置接口780可在处理器710的控制下与缓冲存储器装置1300通信。缓冲存储器装置接口780可通过通道与缓冲存储器装置1300通信命令、地址和数据。
图3是示出根据本公开的实施例的存储器系统1000的示图。图3示出了包括存储器控制器1200和通过多个通道CH1至CHk联接到存储器控制器1200的多个非易失性存储器装置1100的存储器系统1000。
参照图3,存储器控制器1200可通过通道CH1至CHk与非易失性存储器装置1100通信。存储器控制器1200可包括多个通道接口1201。通道CH1至CHk中的每一个可联接到通道接口1201中对应的一个。例如,第一通道CH1可联接到第一通道接口1201,第二通道CH2可联接到第二通道接口1201,并且第k通道CHk可联接到第k通道接口1201。通道CH1至CHk中的每一个可联接到一个或多个非易失性存储器装置1100。联接到不同通道的非易失性存储器装置1100可彼此独立地操作。例如,联接到第一通道CH1的非易失性存储器装置1100可独立于联接到第二通道CH2的非易失性存储器装置1100进行操作。例如,存储器控制器1200可通过第一通道CH1与联接到第一通道CH1的非易失性存储器装置1100通信数据或命令,并且并行地,通过第二通道CH2与联接到第二通道CH2的非易失性存储器装置1100通信数据或命令。
通道CH1至CHk中的每一个可联接到多个非易失性存储器装置1100。联接到每一个通道的非易失性存储器装置1100可分别形成不同的路。例如,N个非易失性存储器装置1100可联接到每一个通道,并且每一个非易失性存储器装置1100可形成一条不同的路。例如,第一至第N非易失性存储器装置1100可联接到第一通道CH1。第一非易失性存储器装置1100可形成第一路Way1,第二非易失性存储器装置1100可形成第二路Way2,并且第N非易失性存储器装置1100可形成第N路WayN。可选地,与图2的示例不同,两个或更多个非易失性存储器装置1100可形成单条路。
因为第一至第N非易失性存储器装置1100共享第一通道CH1,所以联接到第一通道CH1的第一至第N非易失性存储器装置1100可接连地与存储器控制器1200通信数据或命令,而非同时并行地与存储器控制器1200通信数据或命令。换言之,当存储器控制器1200通过第一通道CH1将数据发送到形成第一通道CH1的第一路Way1的第一非易失性存储器装置1100时,形成第一通道CH1的第二路Way2至第N路WayN的第二至第N非易失性存储器装置1100中的每一个不能通过第一通道CH1与存储器控制器1200通信数据或命令。换言之,当共享第一通道CH1的第一至第N非易失性存储器装置1100中的任何一个占用第一通道CH1时,联接到第一通道CH1的其它非易失性存储器装置1100不能使用第一通道CH1。
形成第一通道CH1的第一路Way1的第一非易失性存储器装置1100和形成第二通道CH2的第一路Way1的第一非易失性存储器装置1100可独立地与存储器控制器1200通信。换言之,当存储器控制器1200通过第一通道CH1和第一通道接口1201与形成第一通道CH1的第一路Way1的第一非易失性存储器装置1100通信数据时,同时地,存储器控制器1200可通过第二通道CH2和第二通道接口1201与形成第二通道CH2的第一路Way1的第一非易失性存储器装置1100通信数据。
图4是示出图1所示的非易失性存储器装置1100的示图。
参照图4,非易失性存储器装置1100可包括被配置成存储数据的存储器单元阵列100。非易失性存储器装置1100可包括外围电路200,外围电路200被配置成执行用于将数据存储在存储器单元阵列100中的编程操作、用于输出所存储的数据的读取操作和用于擦除所存储的数据的擦除操作。非易失性存储器装置1100可包括被配置成在存储器控制器(图1的1200)的控制下控制外围电路200的控制逻辑300。
存储器单元阵列100可包括多个存储块BLK1至BLKm(110;m为正整数)。本地线LL和位线BL1至BLn(n为正整数)可联接到存储块BLK1至BLKm(110)中的每一个。例如,本地线LL可包括第一选择线、第二选择线以及布置在第一选择线和第二选择线之间的多个字线。此外,本地线LL可包括布置在第一选择线和字线之间以及布置在第二选择线和字线之间的虚拟线。此处,第一选择线可以是源极选择线,第二选择线可以是漏极选择线。例如,本地线LL可包括字线、漏极选择线、源极选择线和源极线。本地线LL可进一步包括虚拟线。另外,本地线LL可进一步包括管线。本地线LL可联接到存储块BLK1至BLKm(110)中的每一个。位线BL1至BLn可共同联接到存储块BLK1至BLKm(110)。存储块BLK1至BLKm(110)可实现为二维或三维结构。例如,在具有二维结构的存储块110中,存储器单元可在平行于衬底的方向上布置。例如,在具有三维结构的存储块110中,存储器单元可在垂直于衬底的方向上堆叠。
外围电路200可在控制逻辑300的控制下对所选择的存储块110执行编程操作、读取操作和擦除操作。例如,在控制逻辑300的控制下,外围电路200可将验证电压和通过电压提供给第一选择线、第二选择线和字线,选择性地使第一选择线、第二选择线和字线放电,并且验证联接到字线之中所选择的字线的存储器单元。例如,外围电路200可包括电压生成电路210、行解码器220、页面缓冲器组230、列解码器240、输入/输出电路250和感测电路260。
电压生成电路210可响应于操作信号OP_CMD生成用于编程操作、读取操作和擦除操作的各种操作电压Vop。此外,电压生成电路210可响应于操作信号OP_CMD选择性地使本地线LL放电。例如,在控制逻辑300的控制下,电压生成电路210可生成编程电压、验证电压、通过电压、开启电压、读取电压、擦除电压、源极线电压等。
行解码器220可响应于行地址RADD将操作电压Vop传输到与所选择的存储块110联接的本地线WL。
页面缓冲器组230可包括联接到位线BL1至BLn的多个页面缓冲器PB1至PBn(231)。页面缓冲器PB1至PBn(231)可响应于页面缓冲器控制信号PBSIGNALS进行操作。例如,在读取操作或验证操作期间,页面缓冲器PB1至PBn(231)可临时存储通过位线BL1至BLn接收的数据,或者可感测位线BL1至BLn的电压或电流。
列解码器240可响应于列地址CADD在输入/输出电路250和页面缓冲器组230之间传输数据。例如,列解码器240可通过数据线DL与页面缓冲器231交换数据,或者可通过列线CL与输入/输出电路250交换数据。
输入/输出电路250可将从存储器控制器(图1的1200)接收的命令CMD或地址ADD传输到控制逻辑300,或者可与列解码器240交换数据。
在读取或验证操作期间,感测电路260可响应于使能位VRY_BIT<#>而生成参考电流,并且可将从页面缓冲器组230接收到的感测电压VPB与由参考电流产成的参考电压进行比较,并输出通过信号PASS或失败信号FAIL。
控制逻辑300可响应于命令CMD和地址ADD来输出操作信号OP_CMD、行地址RADD、页面缓冲器控制信号PBSIGNALS和使能位VRY_BIT<#>,从而控制外围电路200。另外,控制逻辑300可响应于通过信号PASS或失败信号FAIL来确定目标存储器单元是已通过验证操作还是未通过验证操作。
在非易失性存储器装置1100的操作中,每一个存储块110可以是擦除操作的基本单位。换言之,包括在每一个存储块110中的多个存储器单元可被同时擦除而非被选择性地擦除。
图5是示出图4所示的存储块110的示图。
参照图5,在存储块110中,彼此平行布置的多个字线可联接在第一选择线和第二选择线之间。此处,第一选择线可以是源极选择线SSL,第二选择线可以是漏极选择线DSL。更详细地,存储块110可包括联接在位线BL1至BLn与源极线SL之间的多个串ST。位线BL1至BLn可分别联接到串ST,并且源极线SL可共同联接到串ST。串ST可具有相同的配置;因此,将通过示例详细描述联接到第一位线BL1的串ST。
串ST可包括彼此串联联接在源极线SL和第一位线BL1之间的源极选择晶体管SST、多个存储器单元F1至F16以及漏极选择晶体管DST。每一个串ST中可包括至少一个源极选择晶体管SST和至少一个漏极选择晶体管DST,并且在每一个串ST中可包括比图中所示的存储器单元F1至F16的数量更多的存储器单元。
源极选择晶体管SST的源极可联接到源极线SL,漏极选择晶体管DST的漏极可联接到第一位线BL1。存储器单元F1至F16可串联联接在源极选择晶体管SST和漏极选择晶体管DST之间。包括在不同串ST中的源极选择晶体管SST的栅极可联接到源极选择线SSL,漏极选择晶体管DST的栅极可联接到漏极选择线DSL,并且存储器单元F1至F16的栅极可联接到多个字线WL1至WL16。在包括在不同串ST中的存储器单元中,联接到每一个字线的一组存储器单元可被称为物理页面PPG。因此,包括在存储块110中的物理页面PPG的数量可对应于字线WL1至WL16的数量。
每一个存储器单元可存储1位数据。该存储器单元通常被称为单层单元SLC。在这种情况下,每一个物理页面PPG可存储单个逻辑页面LPG的数据。每一个逻辑页面LPG的数据可包括与包括在单个物理页面PPG中的单元的数量相对应的数据位。每一个存储器单元可存储2位或更多位数据。该存储器单元通常被称为多层单元MLC。在这种情况下,每一个物理页面PPG可存储两个或更多个逻辑页面LPG的数据。
包括在每一个物理页面PPG中的多个存储器单元可被同时编程。换言之,非易失性存储器装置1100可基于物理页面(PPG)执行编程操作。包括在每一个存储块中的多个存储器单元可被同时擦除。换言之,非易失性存储器装置1100可基于存储块来执行擦除操作。例如,为了更新存储在一个存储块110中的一些数据,可读取存储在存储块110中的全部数据,可改变全部数据中需要更新的数据,然后可将全部数据重新编程到另一存储块110。其原因在于,在每一个存储块110是非易失性存储器装置1100的擦除操作的基本单位的情况下,不可能仅擦除存储在存储块110中的一些数据并再次将新数据编程到其中。存储器装置的这种特性可能是使垃圾收集操作复杂化的因素之一。此外,当由于存储器单元的使用劣化而导致包括在存储块110中的一些存储器单元中发生错误时,相关联的存储块110可被视为坏块,并且包括在该坏块中的所有存储器单元不能被使用。
图6是示出根据本公开的实施例的用于缓冲存储器装置1300的示例性配置的示图。
参照图6,缓冲存储器装置1300可包括物理-逻辑地址映射信息存储区域1301、主机工作负载处理区域1302和闪存工作负载处理区域1303。
例如,当从主机2000向存储器系统1000输入读取命令和与读取命令相对应的逻辑地址时,存储器控制器1200的处理器710可从物理-逻辑地址映射信息存储区域1301读取与逻辑地址相对应的物理地址。存储器控制器1200的闪存接口760可基于从物理-逻辑地址映射信息存储区域1301读出的物理地址而执行从非易失性存储器装置1100读取与读取命令相对应的数据的操作,并将读取数据临时存储在缓冲存储器装置1300的闪存工作负载处理区域1303中。
从主机2000输入并由非易失性存储器装置1100执行的一个或多个命令可在图2的命令排队部分730中排队。存储器系统1000可从主机2000接收多个命令,使它们在命令排队部分730中排队,并改变排队的命令的处理顺序。
闪存接口760可基于读取命令和与逻辑地址相对应的物理地址从非易失性存储器装置1100读出读取数据,并且可将读取数据临时存储在缓冲存储器装置1300的闪存工作负载处理区域1303中。此处,如果闪存工作负载处理区域1303的存储器容量不足,则处理器710可延迟将读取命令输入在非易失性存储器装置1100中。换言之,在闪存工作负载处理区域1303中用于读取命令处理的存储器空间得到保证之前,处理器710可延迟读取命令处理操作。也就是说,当闪存工作负载处理区域1303的存储器空间不足时,增加对读取命令处理的延迟。临时存储在缓冲存储器装置1300的闪存工作负载处理区域1303中的读取数据可被传输到主机2000,并且之后从闪存工作负载处理区域1303擦除。已擦除的空间因此变得可用,并且可用于其它目的。换言之,在读取数据已被传输到主机2000之后,可从闪存工作负载处理区域1303擦除读取数据。然后,已擦除读取数据的存储器空间被分配用于新的工作负载。
因此,例如,如果闪存工作负载处理区域1303的存储器容量相对较小,则用于待在非易失性存储器装置1100中处理的工作负载的存储器空间,例如在处理读取命令时用于临时存储从非易失性存储器装置1100读出的数据的存储器空间可能不足。因此,可能增加非易失性存储器装置1100的工作负载处理的延迟。
另外,作为示例,当通过主机接口740从主机2000输入编程命令、编程数据和与编程命令相对应的逻辑地址时,主机接口740可将逻辑地址传输到存储器控制器1200的处理器710,并且处理器710可分配非易失性存储器装置1100中用于存储编程数据的存储块110,并且可将从主机接口740输入的逻辑地址和分配的存储块110之间的物理-逻辑地址映射信息存储在物理-逻辑地址映射信息存储区域1301中。随后,存储器控制器1200的处理器710可基于物理地址执行将编程数据编程到非易失性存储器装置1100的分配的存储块110的操作。
此处,主机接口740可将从主机2000输入的编程数据临时存储在缓冲存储器装置1300的主机工作负载处理区域1302中。此后,临时存储在缓冲存储器装置1300的主机工作负载处理区域1302中的编程数据可被编程到非易失性存储器装置1100,并且之后从主机工作负载处理区域1302中擦除。已擦除的空间因此得到释放,并且可用于其它目的。换言之,在编程数据已被编程到非易失性存储器装置1100之后,编程数据可以从主机工作负载处理区域1302中擦除。然后,已擦除编程数据的存储器空间可被分配用于新的工作负载。此处,如果主机工作负载处理区域1302的存储器容量相对较小,则用于待通过主机接口740处理的工作负载的存储器空间,例如用于接收编程命令并临时存储编程数据的存储器空间可能不足。因此,增加了通过主机接口740的工作负载处理的延迟。
在实施例中,物理-逻辑地址映射信息存储区域1301,主机工作负载处理区域1302和闪存工作负载处理区域1303可包括在图2的存储器缓冲器720中。如上所述,存储器缓冲器720可包括嵌入式SRAM。缓冲存储器装置1300和存储器缓冲器720可统称为缓冲存储器。
图7是示出根据本公开的实施例的处理器710的示例性配置的示图。
参照图7,存储器控制器1200的处理器710可包括性能监控管理部分711和邮箱712。性能监控管理部分711可包括接口性能监控部分7111、动态缓冲器分配部分7112和接口带宽控制部分7113。
接口性能监控部分7111可监控主机接口740处理从主机2000接收的主机工作负载的性能。主机工作负载可统称为主机工作负载组。主机接口740处理主机工作负载的性能可通过监控处理主机工作负载所需的延迟来推断。换言之,接口性能监控部分7111可监控主机接口740处理从主机接收的主机工作负载所需的延迟。
接口性能监控部分7111可监控主机2000请求的工作负载的服务质量(QoS)。主机2000请求的工作负载的QoS可表示针对各个工作负载所产生的延迟的平均值。在实施例中,由于针对各个工作负载所产生的延迟之中的一些大幅偏离的延迟,主机2000请求的工作负载的QoS可能显着劣化。
为了提高主机2000请求的工作负载的QoS,存储器系统1000预测针对各个工作负载将产生的延迟,并对它们进行管理以防止它们大幅偏离可预测的水平。
接口性能监控部分7111可监控闪存接口760通过非易失性存储器装置1100处理与命令排队部分730中排队的命令相对应的闪存工作负载的性能。闪存工作负载可由闪存接口760通过非易失性存储器装置1100来处理。闪存工作负载可统称为闪存工作负载组。闪存接口760处理闪存工作负载的性能可通过监控处理闪存工作负载所需的延迟来推断。换言之,接口性能监控部分7111可监控闪存接口760通过非易失性存储器装置1100处理闪存工作负载所需的延迟。在与命令排队部分730中排队的命令相对应的闪存工作负载已通过非易失性存储器装置1100被完全处理之后,可从命令排队部分730中擦除对应的命令。换言之,接口性能监控部分7111可通过监控与命令排队部分730中排队或从命令排队部分730中擦除的命令相对应的闪存工作负载来推断闪存接口760的性能。
接口性能监控部分7111可监控待通过主机接口740处理的主机工作负载组的延迟和待通过闪存接口760处理的闪存工作负载组的延迟,并且计算两种延迟的比率。主机工作负载组的延迟可以是形成主机工作负载组的多个主机工作负载的延迟的平均值。闪存工作负载组的延迟可以是形成闪存工作负载组的多个闪存工作负载的延迟的平均值。可通过将主机工作负载组的延迟除以闪存工作负载组的延迟来获得该比率。例如,如果比率为1.2,则主机工作负载组的延迟是闪存工作负载组的延迟的1.2倍。在这种情况下,如参照图6所述,存储器系统1000可扩大缓冲存储器装置1300的主机工作负载处理区域1302并且还可相应地减少闪存工作负载处理区域1303,从而减少主机工作负载组的延迟,同时增加闪存工作负载组的延迟。
动态缓冲器分配部分7112可将初始值分配给缓冲存储器装置1300的主机工作负载处理区域1302和闪存工作负载处理区域1303中的每一个。动态缓冲器分配部分7112可基于由接口性能监控部分7111监控并通过主机接口740处理的主机工作负载组的延迟和由接口性能监控部分7111监控并通过闪存接口760处理的闪存工作负载组的延迟两者来动态地分配缓冲存储器装置1300的主机工作负载处理区域1302和闪存工作负载处理区域1303。换言之,动态缓冲器分配部分7112可基于主机接口740处理主机工作负载组并由接口性能监控部分7111监控的性能和闪存接口760处理闪存工作负载组并由接口性能监控部分7111监控的性能两者来动态地分配缓冲存储器装置1300的主机工作负载处理区域1302和闪存工作负载处理区域1303。主机接口740处理主机工作负载组的性能可以是主机接口740处理包括在主机工作负载组中的各个主机工作负载的性能的平均值。类似地,闪存接口760处理闪存工作负载组的性能可以是闪存接口760处理包括在闪存工作负载组中的各个闪存工作负载的性能的平均值。
例如,当通过主机接口740处理的主机工作负载组的延迟比待通过闪存接口760处理的闪存工作负载组的延迟大第一参考值以上的量时,动态缓冲器分配部分7112可动态地将更多的存储器空间分配给缓冲存储器装置1300的主机工作负载处理区域1302并将更少的存储器空间分配给缓冲存储器装置1300的闪存工作负载处理区域1303。相反地,当通过闪存接口760处理的闪存工作负载组的延迟比待通过主机接口740处理的主机工作负载组的延迟大第二参考值以上的量时,动态缓冲器分配部分7112可动态地将更少的存储器空间分配给缓冲存储器装置1300的主机工作负载处理区域1302并将更多的存储器空间分配给缓冲存储器装置1300的闪存工作负载处理区域1303。
此外,当主机接口740处理主机工作负载组的性能比闪存接口760处理闪存工作负载组的性能大第一参考值以上的量时,动态缓冲器分配部分7112可动态地将更少的存储器空间分配给缓冲存储器装置1300的主机工作负载处理区域1302并将更多的存储器空间分配给缓冲存储器装置1300的闪存工作负载处理区域1303。相反地,当闪存接口760处理闪存工作负载组的性能比主机接口740处理主机工作负载组的性能大第二参考值以上的量时,动态缓冲器分配部分7112可动态地将更多的存储器空间分配给缓冲存储器装置1300的主机工作负载处理区域1302并将更少的存储器空间分配给缓冲存储器装置1300的闪存工作负载处理区域1303。
此外,当通过将通过主机接口740处理主机工作负载组的延迟除以通过闪存接口760处理闪存工作负载组的延迟所获得的值,即主机工作负载组的延迟与闪存工作负载组的延迟的比率,等于或大于第一参考值时,动态缓冲器分配部分7112可动态地将更多的存储器空间分配给缓冲存储器装置1300的主机工作负载处理区域1302并将更少的存储器空间分配给缓冲存储器装置1300的闪存工作负载处理区域1303。相反地,当通过将通过主机接口740处理主机工作负载组的延迟除以通过闪存接口760处理闪存工作负载组的延迟所获得的值,即主机工作负载组的延迟与闪存工作负载组的延迟的比率,等于或小于第二参考值时,动态缓冲器分配部分7112可动态地将更少的存储器空间分配给缓冲存储器装置1300的主机工作负载处理区域1302并将更多的存储器空间分配给缓冲存储器装置1300的闪存工作负载处理区域1303。第一参考值和第二参考值可被选择为彼此不同。第一参考值和第二参考值可被选择为相同,在这种情况下,当主机工作负载组的延迟与闪存工作负载组的延迟的比率小于参考值时,动态缓冲器分配部分7112可动态地将更少的存储器空间分配给缓冲存储器装置1300的主机工作负载处理区域1302并将更多的存储器空间分配给缓冲存储器装置1300的闪存工作负载处理区域1303,并且当主机工作负载组的延迟与闪存工作负载组的延迟的比率等于或大于参考值时,动态缓冲器分配部分7112可动态地将更多的存储器空间分配给缓冲存储器装置1300的主机工作负载处理区域1302并将更少的存储器空间分配给闪存工作负载处理区域1303。
动态缓冲器分配部分7112可基于由接口性能监控部分7111监控的主机2000请求的工作负载的QoS来动态地分配缓冲存储器装置1300的主机工作负载处理区域1302和闪存工作负载处理区域1303。例如,当由接口性能监控部分7111监控的QoS为参考值或更小的情况下,动态缓冲器分配部分7112可动态地将更少的存储器空间分配给缓冲存储器装置1300的主机工作负载处理区域1302并将更多的存储器空间分配给缓冲存储器装置1300的闪存工作负载处理区域1303。
动态缓冲器分配部分7112可基于由接口性能监控部分7111监控的闪存接口760通过非易失性存储器装置1100处理与命令排队部分730中排队的命令相对应的闪存工作负载的性能分配缓冲存储器装置1300的主机工作负载处理区域1302和闪存工作负载处理区域1303。例如,当由接口性能监控部分7111监控的处理与命令排队部分730中排队的命令相对应的闪存工作负载的性能等于参考值或更小时,动态缓冲器分配部分7112可动态地将更少的存储器空间分配给缓冲存储器装置1300的主机工作负载处理区域1302并将更多的存储器空间分配给缓冲存储器装置1300的闪存工作负载处理区域1303。
缓冲存储器装置1300的主机工作负载处理区域1302和闪存工作负载处理区域1303的总和可以是恒定的。换言之,动态缓冲器分配部分7112可基于由接口性能监控部分7111监控的主机接口740的性能和闪存接口760的性能,动态地对具有恒定大小的缓冲存储器空间进行划分并将划分的存储器空间分配给主机工作负载处理区域1302和闪存工作负载处理区域1303。也就是说,如果扩大了主机工作负载处理区域1302,则可减少闪存工作负载处理区域1303。相反地,如果减少了主机工作负载处理区域1302,则可扩大闪存工作负载处理区域1303。
接口带宽控制部分7113可初始化主机接口740处理主机工作负载组的带宽以及闪存接口760处理闪存工作负载组的带宽。接口带宽控制部分7113可基于由接口性能监控部分7111监控并通过主机接口740处理的主机工作负载组的延迟和由接口性能监控部分7111监控并通过闪存接口760处理的闪存工作负载组的延迟两者来改变主机接口740用于处理主机工作负载组的操作带宽和闪存接口760用于处理闪存工作负载组的操作带宽。换言之,接口带宽控制部分7113可基于主机接口740处理主机工作负载组并由接口性能监控部分7111监控的性能和闪存接口760处理闪存工作负载组并由接口性能监控部分7111监控的性能两者来改变主机接口740用于处理主机工作负载组的操作带宽和闪存接口760用于处理闪存工作负载组的操作带宽。
例如,当通过主机接口740处理的主机工作负载组的延迟比待通过闪存接口760处理的闪存工作负载组的延迟大参考值以上的量时,接口带宽控制部分7113可增加主机接口740用于处理主机工作负载组的操作带宽,并且减少闪存接口760用于处理闪存工作负载组的操作带宽。相反地,当待通过闪存接口760处理的闪存工作负载组的延迟比待通过主机接口740处理的主机工作负载组的延迟大参考值以上的量时,接口带宽控制部分7113可减少主机接口740的操作带宽并增加闪存接口760的操作带宽。
此外,当主机接口740处理主机工作负载组的性能比闪存接口760处理闪存工作负载组的性能大参考值以上的量时,接口带宽控制部分7113可减少主机接口740的操作带宽并增加闪存接口760的操作带宽。相反地,当闪存接口760处理闪存工作负载组的性能比主机接口740处理主机工作负载组的性能大参考值以上的量时,接口带宽控制部分7113可增加主机接口740的操作带宽并减少闪存接口760的操作带宽。
此外,当通过将通过主机接口740处理主机工作负载组的延迟除以通过闪存接口760处理闪存工作负载组的延迟所获得的值,即主机工作负载组的延迟与闪存工作负载组的延迟的比率,等于或大于第一参考值时,接口带宽控制部分7113可增加主机接口740的操作带宽并减少闪存接口760的操作带宽。相反地,当通过将通过主机接口740处理主机工作负载组的延迟除以通过闪存接口760处理闪存工作负载组的延迟所获得的值,即主机工作负载组的延迟与闪存工作负载组的延迟的比率,等于或小于第二参考值时,接口带宽控制部分7113可减少主机接口740的操作带宽并增加闪存接口760的操作带宽。第一参考值和第二参考值可相同或不同。
接口带宽控制部分7113可基于由接口性能监控部分7111监控的主机2000请求的工作负载的QoS来动态地改变主机接口740的操作带宽和闪存接口760的操作带宽。例如,当由接口性能监控部分7111监控的QoS等于参考值或更小时,接口带宽控制部分7113可增加主机接口740的操作带宽,并相对地减少闪存接口760的操作带宽。
接口带宽控制部分7113可基于闪存接口760通过非易失性存储器装置1100处理与命令排队部分730中排队的命令相对应的闪存工作负载并由接口性能监控部分7111监控的性能来动态地改变主机接口740的操作带宽和闪存接口760的操作带宽。例如,当处理与命令排队部分730中排队的命令相对应的闪存工作负载并由接口性能监控部分7111监控的性能为参考值或更小时,接口带宽控制部分7113可增加闪存接口760的操作带宽并相对地减少主机接口740的操作带宽。
接口带宽控制部分7113可基于由动态缓冲器分配部分7112分配的主机工作负载处理区域1302和闪存工作负载处理区域1303的存储器空间来动态地改变主机接口740的操作带宽和闪存接口760的操作带宽。换言之,当动态缓冲器分配部分7112分配主机工作负载处理区域1302和闪存工作负载处理区域1303使得主机工作负载处理区域1302的存储器空间增加并且闪存工作负载处理区域1303的存储器空间减少时,接口带宽控制部分7113可增加闪存接口760的操作带宽并相对地减少主机接口740的操作带宽。相反地,当动态缓冲器分配部分7112分配主机工作负载处理区域1302和闪存工作负载处理区域1303使得主机工作负载处理区域1302的存储器空间减少并且闪存工作负载处理区域1303的存储器空间增加时,接口带宽控制部分7113可减少闪存接口760的操作带宽并相对地增加主机接口740的操作带宽。
在实施例中,动态缓冲器分配部分7112可基于由接口带宽控制部分7113改变的主机接口740的带宽和闪存接口760的带宽来将存储器空间分配给主机工作负载处理区域1302和闪存工作负载处理区域1303。换言之,当接口带宽控制部分7113增加闪存接口760的带宽并相对地减少主机接口740的带宽时,动态缓冲器分配部分7112可将更多的存储器空间分配给主机工作负载处理区域1302并将更少的存储器空间分配给闪存工作负载处理区域1303。相反地,当接口带宽控制部分7113减少闪存接口760的带宽并相对地增加主机接口740的带宽时,动态缓冲器分配部分7112可将更少的存储器空间分配给主机工作负载处理区域1302并将更多的存储器空间分配给闪存工作负载处理区域1303。
邮箱712可以是当处理器710与主机接口740或闪存接口760交换关于编程数据或读取数据的信息,即关于逻辑地址或数据是否有效的信息时待使用的存储器空间。邮箱712可包括嵌入式SRAM。接口性能监控部分7111可使用通过邮箱712交换的数据或逻辑地址来监控主机接口740中处理的主机工作负载组的工作负载量或主机接口740的工作负载处理性能,以及监控闪存接口760中处理的闪存工作负载组的工作负载量或闪存接口760的工作负载处理性能。
图8是根据本公开的实施例的动态性能控制方法的流程图。
参照图8,在步骤S801中,当在存储器系统1000中开始动态性能控制操作时,初始化缓冲存储器装置1300的主机工作负载处理区域1302和闪存工作负载处理区域1303。在步骤S801中,可向主机工作负载处理区域1302和闪存工作负载处理区域1303中的每一个分配初始存储器空间。步骤S801可由动态缓冲器分配部分7112执行。
在步骤S802中,可初始化存储器系统1000的主机接口740和闪存接口760中的每一个的带宽。步骤S802可由接口带宽控制部分7113执行。步骤S802可在步骤S801之后执行。可选地,步骤S802可在步骤S801之前执行。进一步可选地,可同时执行步骤S802和步骤S801。
在执行完步骤S801和步骤S802之后,在步骤S803中,可监控主机接口740和闪存接口760产生的与工作负载处理相关的延迟。步骤S803可由接口性能监控部分7111执行。在主机接口740和闪存接口760的工作负载处理中产生的延迟可以是主机接口740和闪存接口760的工作负载处理性能的指标。换言之,接口性能监控部分7111可使用在主机接口740和闪存接口760的工作负载处理中产生的延迟来预测主机接口740的性能和闪存接口760的性能。步骤S804可由接口性能监控部分7111执行。
此处,在步骤S804中,可确定主机接口740和闪存接口760的工作负载处理的延迟的比率是否等于或大于第一参考值。
如果主机接口740和闪存接口760的工作负载处理的延迟的比率为第一参考值或更大(步骤S804中为“是”),则在步骤S805中,可执行分配缓冲存储器装置1300的存储器空间的操作,即可扩大缓冲存储器装置1300的主机工作负载处理区域1302,并且可减少闪存工作负载处理区域1303。主机接口740和闪存接口760的工作负载处理的延迟的比率可以是通过将主机接口740的工作负载处理的延迟除以闪存接口760的工作负载处理的延迟而获得的值。步骤S805可由动态缓冲器分配部分7112执行。
如果主机接口740和闪存接口760的工作负载处理延迟的比率为第一参考值或更大(步骤S804中为“是”),则可改变主机接口740和闪存接口760的带宽。换言之,在步骤S806中,基于在步骤S805中分配的缓冲存储器装置1300的主机工作负载处理区域1302和闪存工作负载处理区域1303的存储器空间,或者通过给予主机接口740的工作负载以权重,可增加主机接口740用于处理主机工作负载组的带宽,并且可相对地减少闪存接口760用于处理闪存工作负载组的带宽。步骤S806可由接口带宽控制部分7113执行。
无论主机工作负载处理区域1302和闪存工作负载处理区域1303的存储器空间如何,都可基于步骤S804的监控结果来通过接口带宽控制部分7113改变主机接口740和闪存接口760的带宽。换言之,可并行地执行步骤S805和步骤S806,即分配缓冲存储器装置1300的存储器空间的操作和改变主机接口740和闪存接口760的带宽的操作。在实施例中,在执行步骤S805之前,即在执行分配缓冲存储器装置1300的存储器空间的操作之前,可执行改变主机接口740和闪存接口760的带宽的操作,即步骤806。
如果主机接口740和闪存接口760的工作负载处理延迟的比率小于第一参考值(步骤S804中为“否”),则在步骤S807中确定主机接口740和闪存接口760的工作负载处理延迟的比率是否等于或小于第二参考值。步骤S807可由接口性能监控部分7111执行。
如果主机接口740和闪存接口760的工作负载处理延迟的比率为第二参考值或更小(步骤S807中为“是”),则在步骤S808中分配缓冲存储器装置1300的存储器空间。也就是说,在步骤S808中,可减少缓冲存储器装置1300的主机工作负载处理区域1302,并且扩大闪存工作负载处理区域1303。步骤S808可由动态缓冲器分配部分7112执行。
如果主机接口740和闪存接口760的工作负载处理延迟的比率为第二参考值或更小(步骤S807中为“是”),则可改变主机接口740和闪存接口760的带宽。换言之,在步骤S809中,基于在步骤S808中重新分配的缓冲存储器装置1300的主机工作负载处理区域1302和闪存工作负载处理区域1303的存储器空间,或者通过给予主机接口740的工作负载以权重,可减少主机接口740用于处理主机工作负载的带宽,并且可增加闪存接口760用于处理闪存工作负载的带宽。步骤S809可由接口带宽控制部分7113执行。
无论主机工作负载处理区域1302和闪存工作负载处理区域1303的存储器空间如何,都可基于步骤S807的结果来通过接口带宽控制部分7113改变主机接口740和闪存接口760的带宽。换言之,可并行地执行步骤S808和步骤S809,即分配缓冲存储器装置1300的存储器空间的操作和改变主机接口740和闪存接口760的带宽的操作。在实施例中,在执行分配缓冲存储器装置1300的存储器空间的操作(即,步骤S808)之前,可执行改变主机接口740和闪存接口760的带宽的操作(即,步骤S809)。
如果主机接口740和闪存接口760的工作负载处理延迟的比率大于第二参考值(步骤S807中为“否”),则可重复步骤S803而不执行步骤S808和步骤S809。
图9是根据本公开的实施例的动态性能控制方法的流程图。
参照图9,在步骤S901中,当在存储器系统1000中开始动态性能控制操作时,初始化缓冲存储器装置1300的主机工作负载处理区域1302和闪存工作负载处理区域1303。在步骤S901中,可向主机工作负载处理区域1302和闪存工作负载处理区域1303中的每一个分配初始存储器空间。步骤S901可由动态缓冲器分配部分7112执行。
在步骤S902中,可初始化存储器系统1000的主机接口740和闪存接口760中的每一个的带宽。步骤S902可由接口带宽控制部分7113执行。步骤S902可在步骤S901之后执行。可选地,步骤S902可在步骤S901之前执行。进一步可选地,可同时执行步骤S902和步骤S901。
在执行完步骤S901和S902之后,在步骤S903中,可监控主机接口740中产生的工作负载处理QoS。步骤S903可由接口性能监控部分7111执行。主机接口740的工作负载处理的QoS可以是主机接口740的工作负载处理性能的指标。换言之,接口性能监控部分7111可通过监控主机接口740的工作负载处理的QoS来预测主机接口740的性能。步骤S904可由接口性能监控部分7111执行。
此处,在步骤S904中,可确定监控的主机接口740中的QoS是否为第一参考值或更小。
如果主机接口740中的QoS为第一参考值或更小(步骤S904中为“是”),则在步骤S905中,可执行重新分配缓冲存储器装置1300的存储器空间的操作,即可扩大缓冲存储器装置1300的主机工作负载处理区域1302,并且可减少闪存工作负载处理区域1303。步骤S905可由动态缓冲器分配部分7112执行。
如果主机接口740中的QoS为第一参考值或更小(步骤S904中为“是”),则可改变主机接口740和闪存接口760的带宽。换言之,在步骤S906中,基于在步骤S905中分配的缓冲存储器装置1300的主机工作负载处理区域1302和闪存工作负载处理区域1303的存储器空间,或者通过给予主机接口740的工作负载以权重,可增加主机接口740用于处理主机工作负载的带宽,并且可相对地减少闪存接口760用于处理闪存工作负载的带宽。步骤S906可由接口带宽控制部分7113执行。
无论主机工作负载处理区域1302和闪存工作负载处理区域1303的存储器空间如何,都可基于步骤S904的结果来通过接口带宽控制部分7113改变主机接口740和闪存接口760的带宽。换言之,可并行地执行步骤S905和步骤S906,即分配缓冲存储器装置1300的存储器空间的操作和改变主机接口740和闪存接口760的带宽的操作。在实施例中,在执行分配缓冲存储器装置1300的存储器空间的操作(即,步骤S905)之前,可执行改变主机接口740和闪存接口760的带宽的操作(即,步骤S906)。
如果主机接口740中的QoS大于第一参考值(步骤S904中为“否”),则在步骤S907中,可确定在命令排队部分730中排队的命令的数量是否为第二参考值或更大。步骤S907可由接口性能监控部分7111执行。
如果在命令排队部分730中排队的命令的数量等于第二参考值或更大(步骤S907中为“是”),则在步骤S908中分配缓冲存储器装置1300的存储器空间。也就是说,在步骤S908中,可减少缓冲存储器装置1300的主机工作负载处理区域1302,并且扩大闪存工作负载处理区域1303。步骤S908可由动态缓冲器分配部分7112执行。
如果在命令排队部分730中排队的命令的数量等于第二参考值或更大(步骤S907中为“是”),则可改变主机接口740和闪存接口760的带宽。换言之,在步骤S909中,基于在步骤S908中重新分配的缓冲存储器装置1300的主机工作负载处理区域1302和闪存工作负载处理区域1303的存储器空间,或者通过给予主机接口740的工作负载以权重,可减少主机接口740用于处理主机工作负载的带宽,并且可增加闪存接口760用于处理闪存工作负载的带宽。步骤S909可由接口带宽控制部分7113执行。
无论主机工作负载处理区域1302和闪存工作负载处理区域1303的存储器空间如何,都可基于步骤S907的结果来通过接口带宽控制部分7113改变主机接口740和闪存接口760的带宽。换言之,可并行地执行步骤S908和步骤S909,即分配缓冲存储器装置1300的存储器空间的操作和改变主机接口740和闪存接口760的带宽的操作。在实施例中,在执行步骤S908,即执行分配缓冲存储器装置1300的存储器空间的操作之前,可执行步骤S909,即执行改变主机接口740和闪存接口760的带宽的操作。
如果在命令排队部分730中排队的命令的数量小于第二参考值(步骤S907中为“否”),则可再次执行步骤S903而不执行步骤S908和步骤S909。
图10是示出包括图2所示的存储器控制器1200的存储器系统30000的示例的示图。
参照图10,存储器系统30000可被实施在移动电话、智能电话、平板电脑、个人数字助理(PDA)或无线通信装置中。存储器系统30000可包括非易失性存储器装置1100和被配置成控制非易失性存储器装置1100的操作的存储器控制器1200。存储器控制器1200可在处理器3100的控制下控制非易失性存储器装置1100的数据存取操作,例如编程操作、擦除操作或读取操作。
编程到非易失性存储器装置1100的数据可在存储器控制器1200的控制下通过显示器3200传输。
无线电收发器3300可通过天线ANT发送和接收无线电信号。例如,无线电收发器3300可将通过天线ANT接收的无线电信号改变为可在处理器3100中处理的信号。因此,处理器3100可处理从无线电收发器3300输出的信号,并将处理后的信号传输到存储器控制器1200或显示器3200。存储器控制器1200可将由处理器3100处理的信号编程到非易失性存储器装置1100。此外,无线电收发器3300可将从处理器3100输出的信号改变为无线电信号,并且通过天线ANT将改变后的无线电信号输出到外部装置。输入装置3400可用于输入用于控制处理器3100的操作的控制信号或待由处理器3100处理的数据。输入装置3400可被实施在诸如触摸板和计算机鼠标的定点装置、小键盘或键盘中。处理器3100可控制显示器3200的操作,使得从存储器控制器1200输出的数据、从无线电收发器3300输出的数据或从输入装置3400输出的数据通过显示器3200输出。
在实施例中,能够控制非易失性存储器装置1100的操作的存储器控制器1200可被实施为处理器3100的一部分或与处理器3100分开设置的芯片。存储器控制器1200可由图8所示的存储器控制器的示例来实施。
图11是示出包括图2所示的存储器控制器1200的存储器系统40000的示例的示图。
参照图11,存储器系统40000可被实施在个人计算机(PC)、平板电脑、上网本、电子阅读器、个人数字助理(PDA)、便携式多媒体播放器(PMP)、MP3播放器或MP4播放器中。
存储器系统40000可包括非易失性存储器装置1100和被配置成控制非易失性存储器装置1100的数据处理操作的存储器控制器1200。
处理器4100可根据从输入装置4200输入的数据通过显示器4300输出存储在非易失性存储器装置1100中的数据。例如,输入装置4200可被实施在诸如触摸板或计算机鼠标的定点装置、小键盘或键盘中。
处理器4100可控制存储器系统40000的整体操作,并且控制存储器控制器1200的操作。在实施例中,能够控制非易失性存储器装置1100的操作的存储器控制器1200可被实施为处理器4100的一部分或与处理器4100分开设置的芯片。存储器控制器1200可由图8所示的存储器控制器的示例来实施。
图12是示出包括图2所示的存储器控制器1200的存储器系统50000的示例的示图。
参照图12,存储器系统50000可实施在例如数码相机、配备有数码相机的便携式电话、配备有数码相机的智能电话或配备有数码相机的平板电脑的图像处理装置中。
存储器系统50000可包括非易失性存储器装置1100和能够控制非易失性存储器装置1100的例如编程操作、擦除操作或读取操作的数据处理操作的存储器控制器1200。
存储器系统50000的图像传感器5200可将光学图像转换为数字信号。转换后的数字信号可被传输到处理器5100或存储器控制器1200。在处理器5100的控制下,转换后的数字信号可通过显示器5300传输或通过存储器控制器1200而存储在非易失性存储器装置1100中。存储在非易失性存储器装置1100中的数据可在处理器5100或存储器控制器1200的控制下通过显示器5300传输。
在实施例中,能够控制非易失性存储器装置1100的操作的存储器控制器1200可被实施为处理器5100的一部分或与处理器5100分开设置的芯片。存储器控制器1200可由图8所示的存储器控制器的示例来实施。
图13是示出包括图2所示的存储器控制器1200的存储器系统70000的示例的示图。
参照图13,存储器系统70000可被实施在存储卡或智能卡中。存储器系统70000可包括非易失性存储器装置1100、存储器控制器1200和卡接口7100。
存储器控制器1200可控制非易失性存储器装置1100和卡接口7100之间的数据交换。在实施例中,卡接口7100可以是安全数字(SD)卡接口或多媒体卡(MMC)接口,但不限于此。存储器控制器1200可由图8所示的存储器控制器的示例来实施。
卡接口7100可根据主机60000的协议来接口连接主机60000和存储器控制器1200以进行数据交换。在实施例中,卡接口7100可支持通用串行总线(USB)协议和芯片间(IC)-USB协议。此处,卡接口可指能够支持主机60000使用的协议的硬件、安装在硬件中的软件或者信号传输方法。
当存储器系统70000连接到诸如个人电脑、平板电脑、数码相机、数字音频播放器、移动电话、控制台视频游戏硬件或数字机顶盒的主机60000的主机接口6200时,主机接口6200可在微处理器6100的控制下通过卡接口7100和存储器控制器1200与非易失性存储器装置1100进行数据通信。
根据本公开,在存储器系统的操作中,可动态地分配有限的缓冲存储器空间以增加主机接口和闪存接口中的工作负载处理性能,由此可提高存储器系统的整体性能。
本文已经公开了实施例的示例,并且尽管使用了特定的术语,但是它们仅以一般的和描述性的意义来使用并理解,而不用于限制的目的。在一些情况下,从本申请提交起,对于本领域普通技术人员而言显而易见的是,除非另外明确指出,否则结合特定实施例描述的特征、特性和/或元件可单独使用或与结合其他实施例描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解的是,在不脱离如权利要求中阐述的本公开的实质和范围的情况下,可进行形式和细节上的各种改变。

Claims (20)

1.一种存储器系统的操作方法,其包括:
将第一缓冲区域分配给第一工作负载组;
将第二缓冲区域分配给第二工作负载组;
监控第一工作负载组延迟和第二工作负载组延迟;以及
基于监控的结果动态地调整所述第一缓冲区域和所述第二缓冲区域中的每一个的存储器空间。
2.根据权利要求1所述的方法,其中通过与主机通信的主机接口来处理所述第一工作负载组,并且通过与非易失性存储器装置通信的闪存接口来处理所述第二工作负载组。
3.根据权利要求1所述的方法,
其中所述第一缓冲区域的存储器空间和所述第二缓冲区域的存储器空间之和是恒定的,
其中所述监控包括计算所述第一工作负载组的延迟和所述第二工作负载组的延迟的比率,并且
其中基于延迟的比率来执行所述第一缓冲区域和所述第二缓冲区域中的每一个的存储器空间的动态调整。
4.根据权利要求1所述的方法,其进一步包括基于所述第一缓冲区域的存储器空间和所述第二缓冲区域的存储器空间来控制所述主机接口的带宽和所述闪存接口的带宽。
5.根据权利要求4所述的方法,其进一步包括当所述比率等于或大于参考值时,扩大所述第一缓冲区域并减少所述第二缓冲区域。
6.根据权利要求1所述的方法,其进一步包括:
监控所述主机接口中的服务质量,即QoS;以及
基于所述QoS动态地调整所述第一缓冲区域的存储器空间和所述第二缓冲区域的存储器空间。
7.根据权利要求1所述的方法,其进一步包括:
监控命令排队部分中排队的命令的数量;以及
基于排队的命令的数量来控制所述主机接口的带宽和所述闪存接口的带宽。
8.根据权利要求1所述的方法,其中所述第一缓冲区域和所述第二缓冲区域中的每一个包括动态随机存取存储器,即DRAM。
9.一种存储器系统,其包括:
主机接口,被配置成与主机通信,并且处理从所述主机接收的主机工作负载;
闪存接口,被配置成与非易失性存储器装置通信,并且使用所述非易失性存储器装置来处理闪存工作负载;
性能监控管理部分,被配置成监控处理所述主机工作负载和所述闪存工作负载的性能;以及
缓冲存储器,包括被分配用于处理所述主机工作负载的主机工作负载处理区域,以及被分配用于处理所述闪存工作负载的闪存工作负载处理区域,
其中所述性能监控管理部分基于所述性能的监控结果来动态地分配所述主机工作负载处理区域的存储器空间和所述闪存工作负载处理区域的存储器空间。
10.根据权利要求9所述的存储器系统,其中所述性能监控管理部分基于所述性能的监控结果来动态地控制所述主机接口的带宽和所述闪存接口的带宽。
11.根据权利要求9所述的存储器系统,其中所述性能监控管理部分被配置成监控所述主机工作负载产生的延迟和所述闪存工作负载产生的延迟。
12.根据权利要求11所述的存储器系统,其中所述性能监控管理部分计算所述主机工作负载产生的延迟与所述闪存工作负载产生的延迟的比率,并且当所述比率为参考值或更大时,所述性能监控管理部分扩大所述主机工作负载处理区域的存储器空间并减少所述闪存工作负载处理区域的存储器空间。
13.根据权利要求12所述的存储器系统,其中所述主机工作负载处理区域的存储器空间和所述闪存工作负载处理区域的存储器空间之和是恒定的。
14.根据权利要求9所述的存储器系统,其中所述缓冲存储器包括动态随机存取存储器,即DRAM。
15.根据权利要求9所述的存储器系统,其中所述缓冲存储器包括嵌入式静态随机存取存储器,即嵌入式SRAM。
16.根据权利要求9所述的存储器系统,其中所述性能监控管理部分被配置成监控所述主机接口中的服务质量,即QoS。
17.根据权利要求9所述的存储器系统,其进一步包括被配置成对与所述闪存工作负载相对应的命令进行排队的命令排队部分。
18.根据权利要求9所述的存储器系统,其中所述缓冲存储器进一步包括被配置成存储物理-逻辑地址映射信息的物理-逻辑地址映射信息存储区域。
19.一种存储器系统的操作方法,其包括:
设置通过主机接口处理第一工作负载的第一带宽;
设置通过闪存接口处理第二工作负载的第二带宽;
监控通过所述主机接口处理所述第一工作负载的服务质量,即QoS;以及
基于监控的结果动态地改变所述第一带宽和所述第二带宽。
20.根据权利要求19所述的方法,其进一步包括:
分配用于处理所述第一工作负载的第一缓冲区域,并分配用于处理所述第二工作负载的第二缓冲区域;以及
基于所述第一带宽或所述第二带宽来改变所述第一缓冲区域的存储器空间和所述第二缓冲区域的存储器空间。
CN201810630853.1A 2017-10-19 2018-06-19 存储器系统及其操作方法 Active CN109683805B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020170135912A KR102417977B1 (ko) 2017-10-19 2017-10-19 메모리 시스템 및 그것의 동작 방법
KR10-2017-0135912 2017-10-19

Publications (2)

Publication Number Publication Date
CN109683805A true CN109683805A (zh) 2019-04-26
CN109683805B CN109683805B (zh) 2022-06-07

Family

ID=66170592

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810630853.1A Active CN109683805B (zh) 2017-10-19 2018-06-19 存储器系统及其操作方法

Country Status (4)

Country Link
US (1) US10956060B2 (zh)
KR (1) KR102417977B1 (zh)
CN (1) CN109683805B (zh)
TW (1) TWI765044B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10866747B2 (en) * 2019-02-10 2020-12-15 Hewlett Packard Enterprise Development Lp Securing a memory drive
CN110351595B (zh) 2019-07-17 2023-08-18 北京百度网讯科技有限公司 一种缓冲处理方法、装置、设备和计算机存储介质
US11106365B1 (en) * 2020-02-10 2021-08-31 EMC IP Holding Company LLC Flow control of input/output (IO) in a synchronous replication session
US11061835B1 (en) 2020-02-12 2021-07-13 EMC IP Holding Company LLC Sensitivity matrix for system load indication and overload prevention
WO2022047619A1 (en) * 2020-09-01 2022-03-10 Micron Technology, Inc. Dynamically tuning host performance booster thresholds
JP2022049405A (ja) 2020-09-16 2022-03-29 キオクシア株式会社 記憶装置および制御方法
US20220147279A1 (en) * 2020-11-06 2022-05-12 Seagate Technology Llc Heat management solid-state data storage system
KR20220149220A (ko) 2021-04-30 2022-11-08 삼성전자주식회사 메모리 장치
US12073873B2 (en) 2021-08-31 2024-08-27 Micron Technology, Inc. Dynamic buffer limit for at-risk data
US11899974B2 (en) 2021-10-05 2024-02-13 Silicon Motion, Inc. Method and apparatus for performing automatic setting control of memory device in predetermined communications architecture with aid of auxiliary setting management
KR102580946B1 (ko) * 2021-11-09 2023-09-21 삼성전자주식회사 버퍼 메모리의 할당 비율을 제어하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작 방법
CN116107496A (zh) * 2021-11-09 2023-05-12 三星电子株式会社 存储器系统和操作存储器控制器的方法
JP2023137515A (ja) * 2022-03-18 2023-09-29 キオクシア株式会社 半導体記憶装置
US12120174B1 (en) * 2023-07-26 2024-10-15 Dell Products L.P. Resource allocation management in distributed systems

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020138692A1 (en) * 2001-03-23 2002-09-26 International Business Machines Corporation Method for dynamically adjusting buffer utilization ratios in a hard disk drive system
US20050071599A1 (en) * 2003-09-30 2005-03-31 Modha Dharmendra Shantilal Storage system and method for dynamically allocating cache space among different workload classes
US20150046656A1 (en) * 2013-08-06 2015-02-12 International Business Machines Corporation Managing and sharing storage cache resources in a cluster environment
CN104375895A (zh) * 2013-08-13 2015-02-25 华为技术有限公司 用于多种存储器间的数据存储调度方法以及装置
US20160026406A1 (en) * 2014-06-05 2016-01-28 Sandisk Technologies Inc. Methods, systems, and computer readable media for providing flexible host memory buffer
CN106233269A (zh) * 2014-04-14 2016-12-14 微软技术许可有限责任公司 在存储器控制器中的精细粒度带宽供应

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185641B1 (en) 1997-05-01 2001-02-06 Standard Microsystems Corp. Dynamically allocating space in RAM shared between multiple USB endpoints and USB host
KR100498508B1 (ko) 2003-09-16 2005-07-01 삼성전자주식회사 데이터 전송시간을 감소시키는 듀얼 버퍼링(Dualbuffering) 메모리 시스템 및 이에 대한 제어방법
US20050125563A1 (en) * 2003-12-09 2005-06-09 Douglas Chet R. Load balancing device communications
KR20140008745A (ko) * 2012-07-11 2014-01-22 삼성전자주식회사 자기 메모리 장치
KR101386013B1 (ko) * 2012-07-17 2014-04-16 주식회사 디에이아이오 하이브리드 스토리지 장치
KR20150044370A (ko) * 2013-10-16 2015-04-24 삼성전자주식회사 이종 메모리들을 관리하는 시스템들
US9971511B2 (en) * 2016-01-06 2018-05-15 Samsung Electronics Co., Ltd. Hybrid memory module and transaction-based memory interface
US10459636B2 (en) * 2017-03-24 2019-10-29 Sandisk Technologies Llc System and method for managing data in non-volatile memory systems having multiple mapping layers

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020138692A1 (en) * 2001-03-23 2002-09-26 International Business Machines Corporation Method for dynamically adjusting buffer utilization ratios in a hard disk drive system
US20050071599A1 (en) * 2003-09-30 2005-03-31 Modha Dharmendra Shantilal Storage system and method for dynamically allocating cache space among different workload classes
US20150046656A1 (en) * 2013-08-06 2015-02-12 International Business Machines Corporation Managing and sharing storage cache resources in a cluster environment
CN104375895A (zh) * 2013-08-13 2015-02-25 华为技术有限公司 用于多种存储器间的数据存储调度方法以及装置
CN106233269A (zh) * 2014-04-14 2016-12-14 微软技术许可有限责任公司 在存储器控制器中的精细粒度带宽供应
US20160026406A1 (en) * 2014-06-05 2016-01-28 Sandisk Technologies Inc. Methods, systems, and computer readable media for providing flexible host memory buffer

Also Published As

Publication number Publication date
KR20190043868A (ko) 2019-04-29
CN109683805B (zh) 2022-06-07
US20190121558A1 (en) 2019-04-25
TW201917576A (zh) 2019-05-01
US10956060B2 (en) 2021-03-23
KR102417977B1 (ko) 2022-07-07
TWI765044B (zh) 2022-05-21

Similar Documents

Publication Publication Date Title
CN109683805A (zh) 存储器系统及其操作方法
TWI774830B (zh) 記憶體系統及其操作方法
JP6149117B2 (ja) 部分的なページメモリ動作
US20200356307A1 (en) Input/Output Size Control between a Host System and a Memory Sub-System
CN111752857B (zh) 存储器控制器及操作存储器控制器的方法
KR102518884B1 (ko) 메모리 시스템 및 그것의 동작 방법
US8850102B2 (en) Flash memory with small data programming capability
CN110389720B (zh) 存储装置及其操作方法
CN109783397A (zh) 存储器系统及其操作方法
CN110275673A (zh) 存储装置及其操作方法
CN109521945A (zh) 存储器装置、存储器系统及其操作方法
CN109947361A (zh) 存储器系统及其操作方法
KR20190043863A (ko) 메모리 시스템 및 그것의 동작 방법
CN110245097A (zh) 存储器控制器及具有存储器控制器的存储器系统
KR102717019B1 (ko) 메모리 컨트롤러 및 그것의 동작 방법
CN113168377A (zh) Slc高速缓存分配
KR102479483B1 (ko) 메모리 시스템 및 이의 동작 방법
CN110047549A (zh) 存储器系统及其操作方法
CN110489360A (zh) 存储器控制器及该存储器控制器的操作方法
CN110287130A (zh) 存储装置及其操作方法
KR20190044968A (ko) 메모리 시스템 및 그것의 동작 방법
US20210390046A1 (en) Method of operating a memory with dynamically changeable attributes
CN110175132A (zh) 存储装置及其操作方法
CN112306385A (zh) 存储器控制器及其操作方法
KR20210128780A (ko) 메모리 컨트롤러 및 이를 포함하는 저장 장치

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant