CN111309647B - 存储装置 - Google Patents
存储装置 Download PDFInfo
- Publication number
- CN111309647B CN111309647B CN201910922541.2A CN201910922541A CN111309647B CN 111309647 B CN111309647 B CN 111309647B CN 201910922541 A CN201910922541 A CN 201910922541A CN 111309647 B CN111309647 B CN 111309647B
- Authority
- CN
- China
- Prior art keywords
- buffer
- foreground
- capacity
- background
- buffer capacity
- 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
Images
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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- 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
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
- 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
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
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)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
本发明涉及一种存储装置,该存储装置可以包括:控制器;非暂时性计算机可读存储介质,被配置为存储用于使控制器执行操作的操作代码;以及缓冲器,被配置为通过控制器的控制在主机装置和非暂时性计算机可读存储介质之间临时存储数据,其中操作包括响应于主机装置的命令监控缓冲器的前台缓冲器使用率,以及基于所监控的前台缓冲器使用率调整用于缓冲器中的命令的前台缓冲器容量。
Description
相关申请的交叉引用
本申请要求于2018年12月12日向韩国知识产权局提交的申请号为10-2018-0159954的韩国申请的优先权,其通过引用整体并入本文。
技术领域
各个实施例总体涉及一种存储装置,更具体地,涉及一种包括非易失性存储器装置的存储装置。
背景技术
存储装置可以包括非易失性存储器装置。存储装置可以是存储器系统。存储装置可以响应于主机装置的写入命令存储从主机装置提供的数据,并且可以响应于主机装置的读取命令将存储的数据提供给主机装置。作为能够处理数据的存储装置的主机装置可以包括计算机、数码相机或移动电话。存储装置可以通过内置在主机装置中来操作,或者可以通过以可分离的形式制造并且联接到主机装置来操作。
发明内容
各个实施例涉及一种存储装置及其操作方法,能够防止关于主机装置的延迟突然增加的现象。
在实施例中,一种存储装置可以包括:控制器;非暂时性计算机可读存储介质,被配置为存储用于控制器执行操作的操作代码;以及缓冲器,被配置为通过控制器的控制在主机装置和非暂时性计算机可读存储介质之间临时存储数据,其中操作包括响应于主机装置的命令监控缓冲器的前台缓冲器使用率,以及基于所监控的前台缓冲器使用率调整用于缓冲器中的命令的前台缓冲器容量。
在实施例中,一种存储装置可以包括:非易失性存储器装置;缓冲器,被配置为在主机装置和非易失性存储器装置之间临时存储数据;以及缓冲器管理电路,被配置为管理缓冲器中的、用于前台操作的前台缓冲器容量和用于后台操作的后台缓冲器容量,其中当缓冲器的前台缓冲器使用率超过阈值时缓冲器管理电路增大后台缓冲器容量。
在实施例中,一种存储装置可以包括:存储器装置;控制器,适用于控制存储器装置以执行前台操作和后台操作;以及缓冲器,具有用于前台操作的第一容量和用于后台操作的第二容量,适用于存储与操作中的一个相关联的数据,其中控制器确定与所存储的数据相对应的缓冲器的使用率,并且当使用率超过阈值时基于使用率调整容量。
根据实施例的存储装置及其操作方法可以防止关于主机装置的延迟突然增加的现象。
附图说明
图1A是示出根据实施例的存储装置的框图。
图1B是示出根据实施例的存储装置的框图。
图2至图4是示出根据实施例的用于管理缓冲器的前台缓冲器容量和后台缓冲器容量的方法的示例的示图。
图5是示出根据实施例的用于操作存储装置的方法的流程图。
图6是示出根据实施例的包括固态驱动器(SSD)的数据处理系统的示图。
图7是示出根据实施例的包括存储器系统的数据处理系统的示图。
图8是示出根据实施例的包括存储器系统的数据处理系统的示图。
图9是示出根据实施例的包括存储器系统的网络系统的示图。
图10是示出根据实施例的包括在存储器系统中的非易失性存储器装置的框图。
具体实施方式
在本公开中,在结合附图阅读以下示例性实施例之后,优点、用于实现它们的特征和方法将变得更加明显。然而,本公开可以以不同的形式实现,而不应该被解释为限于本文阐述的实施例。相反,提供这些实施例是为了详细描述本公开,到使本公开所属领域的技术人员可以容易地实现本公开的技术构思的程度。
在本文中需要了解的是,本公开的实施例不限于附图中所示的细节,附图不一定要按比例绘制,而且在一些情况下,为了更清楚地描述本公开的某些特征,比例可能已经被夸大。虽然本文中使用了特定的术语,但是需要理解的是,本文使用的术语仅是用于描述特定的实施例的目的,而不旨在限制本公开的范围。
注意的是,对“实施例”、“另一实施例”等的参考不一定仅意味着一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。
如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任意和全部组合。将理解的是,当元件被称为在另一元件“上”、“连接”或“联接”到另一元件时,其可以直接在其它元件上、连接或联接到其它元件,或者可以存在中间元件。如本文所使用的,除非上下文另有明确说明,否则单数形式也旨在包括复数形式。在本申请和所附权利要求中使用的冠词“一”和“一个”通常应被解释为意味着“一个或多个”,除非另有说明或从上下文清楚地指向单数形式。将进一步理解,当在本说明书中使用时,术语“包括”和/或“包括有”指定至少一个所述特征、步骤、操作和/或元件的存在,但不排除一个或多个其它特征、步骤、操作和/或元件的存在和添加。
在下文中,将通过实施例的各种示例参照附图在下面描述存储装置。
图1A是示出根据实施例的存储装置10的框图。
参照图1A,存储装置10可以被配置为响应于来自主机装置的写入命令,存储从外部主机装置提供的数据。此外,存储装置10可以被配置为响应于主机装置的读取命令向主机装置提供存储的数据。
存储装置10可以包括存储器系统。存储装置10可以由个人计算机存储卡国际协会(PCMCIA)卡,紧凑型闪存(CF)卡,智能媒体卡,记忆棒,MMC、eMMC、RS-MMC和微型MMC形式的多媒体卡,SD、迷你SD和微型SD形式的安全数字卡、通用闪存(UFS)或固态驱动器(SSD)进行配置。
存储装置10可以包括控制器100和非易失性存储器装置200。
控制器100可以控制存储装置10的一般操作。控制器100可以控制非易失性存储器装置200以根据主机装置的命令执行前台操作。前台操作可以包括分别根据主机装置的写入命令和读取命令在非易失性存储器装置200中写入数据和从非易失性存储器装置200读取数据的操作。
此外,控制器100可以控制非易失性存储器装置200以执行内部所需的后台操作,而与主机装置的命令无关。后台操作可以包括非易失性存储器装置200的损耗均衡操作、垃圾收集操作和擦除操作。与前台操作类似,后台操作还可以包括在非易失性存储器装置200中写入数据以及从非易失性存储器装置200读取数据的操作。
控制器100可以包括主机接口110、存储器接口120、缓冲器管理电路130和缓冲器140。
主机接口110可以与主机装置联接。主机接口110可以从主机装置接收写入命令,并且可以请求缓冲器管理电路130分配缓冲器140的缓冲区域(未示出)。主机接口110可以将从主机装置接收的写入数据存储在缓冲器140中分配的缓冲区域中。写入数据可以临时存储在缓冲器140中分配的缓冲区域中,直到写入数据被写入非易失性存储器装置200中。
作为另一示例,主机接口110可以从主机装置接收读取命令,并且可以请求缓冲器管理电路130以分配缓冲器140的缓冲区域。从非易失性存储器装置200读取的读取数据可以临时存储在缓冲器140中分配的缓冲区域中,直到读取数据被传送到主机装置。在将存储在缓冲器140中的读取数据传送到主机装置之后,主机接口110可以请求缓冲器管理电路130释放为读取数据分配的缓冲区域。所释放的缓冲区域变为空闲,并且可以用于存储另一数据。
存储器接口120可以与非易失性存储器装置200联接。存储器接口120可以控制非易失性存储器装置200以在非易失性存储器装置200中写入写入数据并从非易失性存储器装置200读取读取数据。
当主机装置传送写入命令时,存储器接口120可以将存储在缓冲器140中的写入数据写入非易失性存储器装置200中。此后,存储器接口120可以请求缓冲器管理电路130释放为写入数据分配的缓冲区域。所释放的缓冲区域变为空闲,并且可以用于存储另一数据。
当主机装置传送读取命令时,存储器接口120可以将从非易失性存储器装置200读取的读取数据存储在缓冲器140中分配的缓冲区域中。读取数据可以临时存储在缓冲器140中分配的缓冲区域中,直到读取数据被传送到主机装置。
进一步地,类似于用于前台操作的上述处理,如果在存储装置10中调度后台操作,则存储器接口120可以请求缓冲器管理电路130分配包括在缓冲器140中的缓冲区域,以临时地存储关于非易失性存储器装置200的写入数据或读取数据。
缓冲器管理电路130可以根据主机接口110或存储器接口120的请求,分配和释放包括在缓冲器140中的缓冲区域,以用于前台操作或后台操作。
缓冲器管理电路130可以管理缓冲器140的前台缓冲器容量和后台缓冲器容量。前台缓冲器容量可以是可以在缓冲器140中分配以处理主机装置的命令的缓冲区域的最大容量。也就是说,前台缓冲器容量可以是可以被分配用于缓冲器140中的前台操作的缓冲区域的最大容量。换言之,缓冲器管理电路130不能为前台操作分配缓冲区域以超过当前的前台缓冲器容量。后台缓冲器容量可以是可以被分配用于缓冲器140中的后台操作的缓冲区域的最大容量。换言之,缓冲器管理电路130不能为后台操作分配缓冲区域以超过当前的后台缓冲器容量。
缓冲器管理电路130可以将前台缓冲器容量和后台缓冲器容量之和保持在预设的恒定值。即,前台缓冲器容量和后台缓冲器容量可以处于折衷关系。作为示例,在以下描述中,将以百分比来描述前台缓冲器容量和后台缓冲器容量,并且其和可以是100。
根据实施例,缓冲器140可以进一步包括可以被分配用于除前台操作和后台操作之外的操作的缓冲区域(未示出)。
缓冲器管理电路130可以包括缓冲器监控电路131和缓冲器调整电路132。
缓冲器监控电路131可以根据主机装置的命令监控缓冲器140的前台缓冲器使用率。前台缓冲器使用率可以是当前为缓冲器140中的前台操作分配的缓冲区域的容量率。前台缓冲器使用率可以小于或等于前台缓冲器容量。具体地,缓冲器监控电路131可以监控由于关于主机装置的吞吐量的突然增加而导致的前台缓冲器使用率的增加。
详细地,缓冲器监控电路131可以监控前台缓冲器使用率是否超过阈值。根据实施例,缓冲器监控电路131可以以步进方式监控前台缓冲器使用率是否超过至少两个阈值。缓冲器监控电路131可以将监控结果传送到缓冲器调整电路132。
缓冲器调整电路132可以基于缓冲器监控电路131的监控结果来调整前台缓冲器容量和后台缓冲器容量。详细地,当前台缓冲器使用率不超过阈值时,缓冲器调整电路132可以将前台缓冲器容量和后台缓冲器容量分别设置为预设的正常值。如上所述,前台缓冲器容量和后台缓冲器容量的预设正常值之和可以是100。
根据实施例,前台缓冲器容量的正常值可以是100,并且后台缓冲器容量的正常值可以是0。因此,在实施例中,可以使前台操作的性能最大化。在这种情况下,在需要执行后台操作的情况下,缓冲器调整电路132可以将后台缓冲器容量从0增大,同时将前台缓冲器容量从100减小。
当前台缓冲器使用率超过阈值时,缓冲器调整电路132可以减小前台缓冲器容量。此时,缓冲器调整电路132可以在减小前台缓冲器容量的同时增大后台缓冲器容量。
缓冲器调整电路132可以基于预设调整值来调整前台缓冲器容量和后台缓冲器容量。
阈值可以小于可以被设置为前台缓冲器容量的最小值。例如,如果前台缓冲器容量可以最小减小到85,则可以将阈值设置为小于85的值。
根据实施例,当由缓冲器监控电路131监控前台缓冲器使用率是否以步进方式超过至少两个阈值时,缓冲器调整电路132可以以步进方式调整前台缓冲器容量和后台缓冲器容量。例如,可以由缓冲器监控电路131以步进方式监控前台缓冲器使用率是否超过第一阈值和大于第一阈值的第二阈值。当前台缓冲器使用率超过第一阈值时,缓冲器调整电路132可以将前台缓冲器容量减小第一调整值,并且当前台缓冲器使用率超过第二阈值时,可以进一步将前台缓冲器容量减小第二调整值。当前台缓冲器容量以步进方式减小时,后台缓冲器容量可以相反地以步进方式增大。
根据实施例,预设的第一调整值和第二调整值可以彼此相同或不同。
同时,缓冲器调整电路132通过三个或更多个步骤以步进方式减小/增大前台缓冲器容量/后台缓冲器容量的方法可以类似于使用两个步骤的上述方法。
总之,如果关于主机装置的吞吐量突然增加并且前台缓冲器容量连续保持在或接近作为缓冲器140中的最大值的100以使前台操作的性能最大化,则在前台操作期间需要处理的后台操作可能基本上难以处理。也就是说,虽然每次处理前台操作时几乎不能确保后台缓冲器容量,但是可以仅在确保后台缓冲器容量之后通过分配以缓冲区域来执行后台操作。因此,当关于主机装置的吞吐量增加时,后台操作可能导致前台操作中的瓶颈现象,并且这可能增加关于主机装置的延迟。
因此,在实施例中,当关于主机装置的吞吐量增加并且由此前台缓冲器使用率增加时,可以通过预先减小前台缓冲器容量来降低前台操作的吞吐量。此时,在实施例中,通过在预先减小前台缓冲器容量的同时预先增大后台缓冲器容量,可以平稳地执行后台操作。通过平稳地执行后台操作,可以持续地保持关于主机装置的延迟。
再次参照图1A,缓冲器140可以临时存储待在主机装置和非易失性存储器装置200之间传送和接收的数据。缓冲器140可以包括实际存储数据的缓冲区域(未示出)。
缓冲器140可以包括静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等。
图1B是示出根据实施例的存储装置11的框图。
参照图1B,缓冲器141可以设置在存储装置11中的控制器101之外,而不是如图1A所示设置在内部。除了缓冲器141的位置之外,存储装置11的配置和操作方法可以与图1A中所示的存储装置10的配置和操作方法相同。因此,在下文中,将参照图1A的存储装置10描述实施例的特征。
重新参照图1A,非易失性存储器装置200可以存储从控制器100接收的数据,并且可以在控制器100的控制下读取存储的数据并将所读取的数据传送到控制器100。
非易失性存储器装置200可以包括诸如以下的闪速存储器:NAND闪存或NOR闪存、铁电随机存取存储器(FeRAM)、相变随机存取存储器(PCRAM)、磁阻随机存取存储器(MRAM)、电阻随机存取存储器(ReRAM)等。
虽然在图1A中示出了存储装置10包括一个非易失性存储器装置200,但是应注意,包括在存储装置10中的非易失性存储器装置的数量不限于此。
根据实施例,缓冲器管理电路130的操作可以由操作代码执行。操作代码可以存储在非暂时性计算机可读存储介质中,加载在控制器100中并由控制器100运行。非暂时性计算机可读存储介质可以包括非易失性存储器装置200。
图2至图4是示出根据实施例的用于管理缓冲器的前台缓冲器容量和后台缓冲器容量的方法的示例的示图。例如,图2至图4的方法可以由图1A的缓冲器管理电路130执行,其管理图1A的缓冲器140的前台缓冲器容量和后台缓冲器容量。在图2至图4中,假设前台缓冲器容量的正常值是100并且后台缓冲器容量的正常值是0。
参照图2,由阴影线表示由图1A的缓冲器监控电路131监控的缓冲器140的前台缓冲器使用率。前台缓冲器使用率可以是40并且可以不超过阈值TH 75。因此,由于前台缓冲器使用率不超过阈值TH,缓冲器调整电路132可以将前台缓冲器容量设置为100并将后台缓冲器容量设置为0。
参照图3,前台缓冲器使用率可以是77并且可以超过阈值TH 75。因此,由于前台缓冲器使用率超过阈值TH,缓冲器调整电路132可以将前台缓冲器容量减小到90并且将后台缓冲器容量增大到10。
参照图4,缓冲器监控电路131可以基于第一阈值TH1和第二阈值TH2通过两个步骤监控前台缓冲器使用率的增加。当前台缓冲器使用率类似于图3所示的情况超过第一阈值TH1 75并且不超过第二阈值TH2 80时,缓冲器调整电路132可以已经将前台缓冲器容量减小到90并且已经将后台缓冲器容量增大到10。
此后,如图所示,前台缓冲器使用率可以是82并且超过第二阈值TH2 80。因此,由于前台缓冲器使用率超过第二阈值TH2,缓冲器调整电路132可以将前台缓冲器容量减小到85并且将后台缓冲器容量增大到15。
图5是示出根据实施例的用于操作存储装置(例如,图1A的存储装置10)的方法的流程图。作为示例,图5示出了缓冲器管理电路130通过一个步骤调整缓冲器140中的前台缓冲器容量和后台缓冲器容量的方法。
参照图5,在步骤S110,缓冲器监控电路131可以监控缓冲器140中的前台缓冲器使用率。
在步骤S120,缓冲器监控电路131可以确定前台缓冲器使用率是否超过阈值。当确定前台缓冲器使用率超过阈值时(S120,是),进程可以进行到步骤S130。当确定前台缓冲器使用率不超过阈值时(S120,否),进程可以进行到步骤S140。
在步骤S130,缓冲器调整电路132可以将后台缓冲器容量增大预设的调整值,并且将前台缓冲器容量减小调整值。
在步骤S140,缓冲器调整电路132可以将前台缓冲器容量和后台缓冲器容量设置为预设的正常值。
图6是根据实施例的包括固态驱动器(SSD)1200的数据处理系统1000的示图。参照图6,数据处理系统1000可以包括主机装置1100和SSD 1200。
SSD 1200可以包括控制器1210、缓冲存储器装置1220、多个非易失性存储器装置1231至123n、电源1240、信号连接器1250和电源连接器1260。
控制器1210可以控制SSD 1200的一般操作。控制器1210可以以与图1A中所示的控制器100和图1B中所示的控制器101相同的方式操作。
控制器1210可以包括主机接口单元1211、控制单元1212、随机存取存储器1213、错误校正码(ECC)单元1214和存储器接口单元1215。
主机接口单元1211可以通过信号连接器1250与主机装置1100交换信号SGL。信号SGL可以包括命令、地址、数据等。根据主机装置1100的协议,主机接口单元1211可以接口连接主机装置1100和SSD 1200。例如,主机接口单元1211可以通过诸如以下的标准接口协议中的任意一种与主机装置1100通信:安全数字、通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、个人计算机存储卡国际协会(PCMCIA)、并行高级技术附件(PATA)、串行高级技术附件(SATA)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、外围组件互连(PCI)、高速PCI(PCI-e或PCIe)和通用闪存(UFS)。
控制单元1212可以分析和处理从主机装置1100接收的信号SGL。控制单元1212可以根据用于驱动SSD 1200的固件或软件来控制内部功能块的操作。随机存取存储器1213可以用作驱动此类固件或软件的工作存储器。
ECC单元1214可以生成待传送到非易失性存储器装置1231至123n中的至少一个的数据的奇偶校验数据。所生成的奇偶校验数据可以与数据一起存储在非易失性存储器装置1231至123n中。ECC单元1214可以基于奇偶校验数据,检测从非易失性存储器装置1231至123n中的至少一个读取的数据的错误。如果检测到的错误在可校正的范围内,则ECC单元1214可以校正检测到的错误。
根据控制单元1212的控制,存储器接口单元1215可以向非易失性存储器装置1231至123n中的至少一个提供诸如命令和地址的控制信号。此外,存储器接口单元1215可以根据控制单元1212的控制,与非易失性存储器装置1231至123n中的至少一个交换数据。例如,存储器接口单元1215可以将缓冲存储器装置1220中存储的数据提供到非易失性存储器装置1231至123n中的至少一个,或将从非易失性存储器装置1231至123n中的至少一个读取的数据提供到缓冲存储器装置1220。
缓冲存储器装置1220可以临时存储待存储在非易失性存储器装置1231至123n的至少一个中的数据。此外,缓冲存储器装置1220可以临时存储从非易失性存储器装置1231至123n中的至少一个读取的数据。根据控制器1210的控制,临时存储在缓冲存储器装置1220中的数据可以被传送到主机装置1100或非易失性存储器装置1231至123n中的至少一个。
非易失性存储器装置1231至123n可以用作SSD 1200的存储介质。非易失性存储器装置1231至123n可以分别通过多个通道CH1至CHn与控制器1210联接。一个或多个非易失性存储器装置可以联接到一个通道。联接到每个通道的非易失性存储器装置可以联接到相同的信号总线和数据总线。
电源1240可以将通过电源连接器1260输入的电力PWR提供到SSD1200的内部。电源1240可以包括辅助电源1241。辅助电源1241可以在发生突然断电时提供电力以允许SSD1200正常终止。辅助电源1241可包括大容量电容器。
根据主机装置1100和SSD 1200之间的接口方案,信号连接器1250可以由各种类型的连接器来配置。
根据主机装置1100的供电方案,电源连接器1260可以由各种类型的连接器来配置。
图7是示出根据实施例的包括存储器系统2200的数据处理系统2000的示图。参照图7,数据处理系统2000可以包括主机装置2100和存储器系统2200。
主机装置2100可以以诸如印刷电路板的板的形式配置。虽然未示出,但是主机装置2100可以包括用于执行主机装置的功能的内部功能块。
主机装置2100可以包括连接端子2110,诸如插座、插槽或连接器。存储器系统2200可以安装到连接端子2110。
存储器系统2200可以以诸如印刷电路板的板的形式来配置。存储器系统2200可以被称为存储器模块或存储卡。存储器系统2200可以包括控制器2210、缓冲存储器装置2220、非易失性存储器装置2231和2232、电源管理集成电路(PMIC)2240和连接端子2250。
控制器2210可以控制存储器系统2200的一般操作。控制器2210可以以与图6所示的控制器1210相同的方式来配置。
缓冲存储器装置2220可以临时存储待存储在非易失性存储器装置2231和2232中的数据。此外,缓冲存储器装置2220可以临时存储从非易失性存储器装置2231和2232读取的数据。根据控制器2210的控制,被临时存储在缓冲存储器装置2220中的数据可以被传送到主机装置2100或非易失性存储器装置2231和2232。
非易失性存储器装置2231和2232可以用作存储器系统2200的存储介质。
PMIC 2240可以将通过连接端子2250输入的电力提供到存储器系统2200的内部。PMIC 2240可以根据控制器2210的控制来管理存储器系统2200的电力。
连接端子2250可以联接到主机装置2100的连接端子2110。通过连接端子2250,可以在主机装置2100和存储器系统2200之间传输诸如命令、地址、数据等信号以及电力。根据主机装置2100和存储器系统2200之间的接口方案,连接端子2250可以被配置成各种类型。连接端子2250可以设置在存储器系统2200的任意一侧。
图8是根据实施例的包括存储器系统3200的数据处理系统3000的示图。参照图8,数据处理系统3000可以包括主机装置3100和存储器系统3200。
主机装置3100可以以诸如印刷电路板的板的形式配置。虽然未示出,但是主机装置3100可以包括用于执行主机装置的功能的内部功能块。
存储器系统3200可以以表面安装类型封装的形式配置。存储器系统3200可以通过焊球3250安装到主机装置3100。存储器系统3200可以包括控制器3210、缓冲存储器装置3220和非易失性存储器装置3230。
控制器3210可以控制存储器系统3200的一般操作。控制器3210可以以与图6所示的控制器1210相同的方式来配置。
缓冲存储器装置3220可以临时存储待存储在非易失性存储器装置3230中的数据。此外,缓冲存储器装置3220可以临时存储从非易失性存储器装置3230读取的数据。根据控制器3210的控制,临时存储在缓冲存储器装置3220中的数据可以被传送到主机装置3100或非易失性存储器装置3230。
非易失性存储器装置3230可以用作存储器系统3200的存储介质。
图9是根据实施例的包括存储器系统4200的网络系统4000的示图。参照图9,网络系统4000可以包括通过网络4500联接的服务器系统4300和多个客户端系统4410至4430。
服务器系统4300可以响应于来自多个客户端系统4410至4430的请求服务数据。例如,服务器系统4300可以存储从多个客户端系统4410至4430提供的数据。又例如,服务器系统4300可以向多个客户端系统4410至4430提供数据。
服务器系统4300可以包括主机装置4100和存储器系统4200。存储器系统4200可以由图1A所示的存储装置10、图1B所示的存储装置11、图6所示的SSD 1200、图7所示的存储器系统2200或图8所示的存储器系统3200配置。
图10是根据实施例的包括在存储器系统中的非易失性存储器装置300的框图。参照图10,非易失性存储器装置300可以包括存储器单元阵列310、行解码器320、数据读取和写入(读取/写入)块330、列解码器340、电压发生器350和控制逻辑360。
存储器单元阵列310可以包括存储器单元MC,该存储器单元MC布置在字线WL1至WLm、位线BL1至BLn彼此相交的区域。
行解码器320可以通过字线WL1至WLm与存储器单元阵列310联接。行解码器320可以根据控制逻辑360的控制进行操作。行解码器320可以对从外部装置(例如,图1A的控制器100)提供的地址进行解码。行解码器320可以基于解码结果选择并驱动字线WL1至WLm。例如,行解码器320可以将从电压发生器350提供的字线电压提供至字线WL1至WLm。
数据读取/写入块330可以通过位线BL1至BLn与存储器单元阵列310联接。数据读取/写入块330可以包括分别对应于位线BL1至BLn的读取/写入电路RW1至RWn。数据读取/写入块330可以根据控制逻辑360的控制进行操作。数据读取/写入块330可以根据操作模式作为写入驱动器或读出放大器而操作。例如,数据读取/写入块330可以作为在写入操作中将从外部装置提供的数据存储在存储器单元阵列310中的写入驱动器而操作。又例如,数据读取/写入块330可以作为在读取操作中从存储器单元阵列310读出数据的读出放大器而操作。
列解码器340可以根据控制逻辑360的控制进行操作。列解码器340可以对从外部装置提供的地址进行解码。列解码器340可基于解码结果,将分别对应于位线BL1至BLn的数据读取/写入块330的读取/写入电路RW1至RWn与数据输入/输出线或数据输入/输出缓冲器联接。
电压发生器350可以生成待用于非易失性存储器装置300的内部操作的电压。由电压发生器350生成的电压可以被施加到存储器单元阵列310的存储器单元。例如,在编程操作中生成的编程电压可以被施加到待执行编程操作的存储器单元的字线。又例如,在擦除操作中生成的擦除电压可以被施加到待执行擦除操作的存储器单元的阱区。再例如,在读取操作中生成的读取电压可以被施加到待执行读取操作的存储器单元的字线。
控制逻辑360可以基于从外部装置提供的控制信号控制非易失性存储器装置300的一般操作。例如,控制逻辑360可以控制非易失性存储器装置300的操作,诸如非易失性存储器装置300读取操作、写入操作和擦除操作。
虽然上面已经描述了各种实施例,但是本领域技术人员将理解的是,所描述的实施例仅是示例。因此,不应基于所描述的实施例来限制本文所描述的存储装置。
Claims (18)
1.一种存储装置,包括:
控制器;
非暂时性计算机可读存储介质,存储所述控制器执行操作的操作代码;以及
缓冲器,通过所述控制器的控制在主机装置和所述非暂时性计算机可读存储介质之间临时存储数据,
其中所述操作包括响应于所述主机装置的命令监控所述缓冲器的前台缓冲器使用率,以及基于所监控的前台缓冲器使用率调整所述缓冲器中的所述命令的前台缓冲器容量,其中调整所述前台缓冲器容量包括:当所述前台缓冲器使用率超过阈值时,减小所述前台缓冲器容量。
2.根据权利要求1所述的存储装置,其中调整所述前台缓冲器容量包括:每次所述前台缓冲器使用率以步进方式超过至少两个阈值时,以步进方式减小所述前台缓冲器容量。
3.根据权利要求1所述的存储装置,其中调整所述前台缓冲器容量包括:增大后台操作的后台缓冲器容量,同时减小所述前台缓冲器容量。
4.根据权利要求3所述的存储装置,其中减小所述前台缓冲器容量包括:当所述前台缓冲器使用率超过阈值时,减小所述前台缓冲器容量。
5.根据权利要求3所述的存储装置,其中所述前台缓冲器容量和所述后台缓冲器容量之和保持在预设值。
6.根据权利要求3所述的存储装置,其中调整所述前台缓冲器容量包括:当所述前台缓冲器使用率不超过所述阈值时,将所述后台缓冲器容量减小到0。
7.根据权利要求6所述的存储装置,其中调整所述前台缓冲器容量包括:当调度所述后台操作时,增大所述后台缓冲器容量。
8.根据权利要求1所述的存储装置,其中所述缓冲器包括在所述控制器中。
9.根据权利要求1所述的存储装置,其中所述控制器根据所述主机装置的命令控制待在所述主机装置、所述缓冲器和所述非暂时性计算机可读存储介质之间移动的数据。
10.根据权利要求9所述的存储装置,其中所述操作包括根据所述主机装置的命令从所述非暂时性计算机可读存储介质读取所述数据。
11.根据权利要求9所述的存储装置,其中所述操作包括根据所述主机装置的命令将所述数据存储在所述非暂时性计算机可读存储介质中。
12.一种存储装置,包括:
非易失性存储器装置;
缓冲器,在主机装置和所述非易失性存储器装置之间临时存储数据;以及
缓冲器管理电路,管理所述缓冲器中的、前台操作的前台缓冲器容量和后台操作的后台缓冲器容量,
其中当所述缓冲器的前台缓冲器使用率超过阈值时,所述缓冲器管理电路增大所述后台缓冲器容量。
13.根据权利要求12所述的存储装置,其中当所述前台缓冲器使用率超过所述阈值时,所述缓冲器管理电路在增大所述后台缓冲器容量时减小所述前台缓冲器容量。
14.根据权利要求13所述的存储装置,其中所述缓冲器管理电路将所述前台缓冲器容量和所述后台缓冲器容量之和保持在预设值。
15.根据权利要求13所述的存储装置,其中当所述前台缓冲器使用率不超过所述阈值时,所述缓冲器管理电路将所述后台缓冲器容量减小到0。
16.根据权利要求15所述的存储装置,其中当调度所述后台操作时,所述缓冲器管理电路增大所述后台缓冲器容量。
17.根据权利要求12所述的存储装置,其中每次所述前台缓冲器使用率以步进方式超过至少两个阈值时,所述缓冲器管理电路以步进方式增大所述后台缓冲器容量。
18.一种存储装置,包括:
存储器装置;
控制器,控制所述存储器装置以执行前台操作和后台操作;以及
缓冲器,具有所述前台操作的第一容量和所述后台操作的第二容量,存储与所述前台操作和所述后台操作中的一个相关联的数据,
其中所述控制器确定与所存储的数据相对应的所述缓冲器的使用率,并且当所述使用率超过阈值时基于所述使用率调整所述第一容量和所述第二容量,
其中所述数据与所述前台操作相关联,并且
其中当所述使用率超过所述阈值时,所述控制器减小所述第一容量并增大所述第二容量。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180159954A KR102672193B1 (ko) | 2018-12-12 | 전자 장치 | |
KR10-2018-0159954 | 2018-12-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111309647A CN111309647A (zh) | 2020-06-19 |
CN111309647B true CN111309647B (zh) | 2023-04-07 |
Family
ID=71072465
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910922541.2A Active CN111309647B (zh) | 2018-12-12 | 2019-09-27 | 存储装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11099742B2 (zh) |
CN (1) | CN111309647B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103858116A (zh) * | 2011-08-09 | 2014-06-11 | Lsi公司 | I/o设备及计算主机互操作 |
CN107767915A (zh) * | 2016-08-15 | 2018-03-06 | 闪迪技术有限公司 | 自适应温度和存储器参数抑制 |
CN108694138A (zh) * | 2017-04-10 | 2018-10-23 | 爱思开海力士有限公司 | 控制器及其操作方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI227616B (en) * | 2001-11-20 | 2005-02-01 | Hitachi Ltd | Packet communication device, packet communication system, packet communication module, data processor and data transmission system |
JP2006309579A (ja) * | 2005-04-28 | 2006-11-09 | Hitachi Ltd | 記憶制御装置及びストレージシステム |
JP2008052360A (ja) * | 2006-08-22 | 2008-03-06 | Fujitsu Ltd | ストレージ装置およびライト実行プログラム |
KR101390192B1 (ko) * | 2008-01-17 | 2014-04-29 | 삼성전자주식회사 | 동영상 전송 시스템의 송신 장치 및 수신 장치, 그 버퍼제어 방법 |
EP2405601A1 (en) * | 2009-03-04 | 2012-01-11 | Fujitsu Limited | Data transfer device, data transmission device, data reception device, and control method |
US8621143B2 (en) * | 2011-04-15 | 2013-12-31 | Oracle International Corporation | Elastic data techniques for managing cache storage using RAM and flash-based memory |
US9436595B1 (en) | 2013-03-15 | 2016-09-06 | Google Inc. | Use of application data and garbage-collected data to improve write efficiency of a data storage device |
US11449039B2 (en) * | 2017-10-16 | 2022-09-20 | Nec Corporation | Transportation operation control device, transportation operation control method, and recording medium in which transportation operation control program is stored |
-
2019
- 2019-08-09 US US16/537,197 patent/US11099742B2/en active Active
- 2019-09-27 CN CN201910922541.2A patent/CN111309647B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103858116A (zh) * | 2011-08-09 | 2014-06-11 | Lsi公司 | I/o设备及计算主机互操作 |
CN107767915A (zh) * | 2016-08-15 | 2018-03-06 | 闪迪技术有限公司 | 自适应温度和存储器参数抑制 |
CN108694138A (zh) * | 2017-04-10 | 2018-10-23 | 爱思开海力士有限公司 | 控制器及其操作方法 |
Non-Patent Citations (2)
Title |
---|
Chen F.Hystor: Making the best use of solid state drives in high performance storage systems.《Proceedings of the international conference on Supercomputing》.2011,22-32. * |
吴跃.电商运营平台中监控与后台管理系统的设计.《中国优秀硕士学位论文全文数据库信息科技辑》.2018,(第6期),I138-852. * |
Also Published As
Publication number | Publication date |
---|---|
CN111309647A (zh) | 2020-06-19 |
US11099742B2 (en) | 2021-08-24 |
US20200192582A1 (en) | 2020-06-18 |
KR20200072620A (ko) | 2020-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230273748A1 (en) | Memory system, operating method thereof and computing system | |
US10698830B2 (en) | Obtaining data in a nonvolatile memory device through the use of descriptors | |
CN109426627B (zh) | 数据存储装置及其操作方法 | |
US20200125285A1 (en) | Memory system and operating method thereof | |
US20210141554A1 (en) | Memory system | |
KR20200054534A (ko) | 메모리 시스템 및 그것의 동작 방법 | |
US20210216458A1 (en) | Memory system performing host map management | |
KR20210141159A (ko) | 메모리 시스템 | |
US20230289059A1 (en) | Memory system and operating method thereof | |
US11803307B2 (en) | Memory system and operating method thereof | |
CN111352856B (zh) | 存储器系统及其操作方法 | |
US11513722B2 (en) | Memory system allowing operation during suspensions | |
CN111309647B (zh) | 存储装置 | |
US10776008B2 (en) | Memory system and operating method thereof | |
KR102672193B1 (ko) | 전자 장치 | |
CN110825654B (zh) | 存储器系统及其操作方法 | |
US20210223956A1 (en) | Memory system and data processing system including the same | |
KR102668125B1 (ko) | 메모리 시스템 및 그것의 동작 방법 | |
US20220156184A1 (en) | Memory system | |
CN111061424A (zh) | 数据存储装置及数据存储装置的操作方法 |
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 |