CN108415664B - 数据存储装置及其操作方法 - Google Patents
数据存储装置及其操作方法 Download PDFInfo
- Publication number
- CN108415664B CN108415664B CN201711148214.3A CN201711148214A CN108415664B CN 108415664 B CN108415664 B CN 108415664B CN 201711148214 A CN201711148214 A CN 201711148214A CN 108415664 B CN108415664 B CN 108415664B
- Authority
- CN
- China
- Prior art keywords
- command
- weight
- threshold
- commands
- data storage
- 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
- 238000013500 data storage Methods 0.000 title claims abstract description 78
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000008569 process Effects 0.000 claims description 13
- 230000015654 memory Effects 0.000 description 34
- 238000010586 diagram Methods 0.000 description 18
- 239000000872 buffer Substances 0.000 description 15
- 230000007423 decrease Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 6
- 101000711846 Homo sapiens Transcription factor SOX-9 Proteins 0.000 description 4
- 102100034204 Transcription factor SOX-9 Human genes 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 238000013467 fragmentation Methods 0.000 description 3
- 238000006062 fragmentation reaction Methods 0.000 description 3
- 238000011017 operating method Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 208000037586 Congenital muscular dystrophy, Ullrich type Diseases 0.000 description 2
- 201000006814 Ullrich congenital muscular dystrophy Diseases 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000003936 working memory Effects 0.000 description 2
- 239000000956 alloy Substances 0.000 description 1
- 229910045601 alloy Inorganic materials 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 201000006815 congenital muscular dystrophy Diseases 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 229910000679 solder Inorganic materials 0.000 description 1
- 150000003623 transition metal compounds Chemical class 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk 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
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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
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)
Abstract
本发明提供一种数据存储装置的操作方法,其包括:基于在命令队列中排队的命令的数据大小的总和来确定第一权重;根据命令的类型通过对权重求和来确定第二权重;以及基于第一权重和第二权重中的至少一个来控制用于选择存在于命令队列中的紧急命令的紧急命令选择阈值。
Description
相关申请的交叉引用
本申请要求于2017年2月9日向韩国知识产权局提交的申请号为10-2017-0018102的韩国申请的优先权,其整体通过引用并入本文。
技术领域
各个实施例总体涉及一种半导体装置,并且更特别地,涉及一种数据存储装置及其操作方法。
背景技术
近来,用于计算机环境的范例已经转变至普适计算使得计算机***可以随时随地被使用。由于该事实,诸如移动电话、数码相机和笔记本电脑的便携式电子装置的使用已经快速增长。通常,便携式电子装置使用数据存储装置或存储器***来存储数据,其中数据存储装置或存储器***使用存储器装置。数据存储装置可以被用于存储在便携式电子装置中待使用的数据。
由于使用存储器装置的数据存储装置不包括机械驱动单元,因此使用存储器装置的数据存储装置具有优良的稳定性和耐久性。并且,使用存储器装置的数据存储装置的优点在于它可以较快速地访问数据并消耗较少的功率。具有这样的优点的数据存储装置的非限制性示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡、通用闪速存储(UFS)装置和固态驱动器(SSD)。
发明内容
本发明的各个实施例涉及一种能够在超时时间(timeout)内处理具有低优先级的命令的数据存储装置及其操作方法。
在实施例中,数据存储装置可以包括:非易失性存储器装置;命令队列,其适于使从主机装置接收的命令排队;以及处理器,其适于通过对在命令队列中排队的命令的数据大小求和来确定第一权重,根据命令的类型通过对权重求和来确定第二权重,以及基于第一权重和第二权重中的至少一个来控制用于选择存在于命令队列中的紧急命令的紧急命令选择阈值。
在实施例中,一种数据存储装置的操作方法可以包括:基于数据大小总和确定第一权重;根据命令的类型通过对权重求和来确定第二权重;以及基于第一权重和第二权重中的至少一个来控制用于选择存在于命令队列中的紧急命令的紧急命令选择阈值。
根据本发明的实施例,可以根据是否发生延迟来实时地控制用于首先选择和处理存在于命令队列中的紧急命令的检查点。
作为结果,可以防止在命令队列中等待的低优先级命令发生超时。
附图说明
图1是示出根据本公开的实施例的数据存储装置的框图。
图2是示出从主机装置接收的命令的示例的简图。
图3是示出根据命令队列中排队的每个命令的数据大小而改变的命令队列检查点和年龄(age)差值的简图。
图4是示出根据本公开的实施例的包括控制紧急命令选择阈值的数据存储装置的操作方法的流程图。
图5是示出根据本公开的实施例的数据存储装置中用于选择紧急命令的方法的流程图。
图6是示出根据本公开的实施例的包括固态驱动器(SSD)的数据处理***的示例的简图。
图7是示出图6所示的控制器的示例的简图。
图8是示出包括根据本公开的实施例的数据存储装置的数据处理***的示例的简图。
图9是示出包括根据本公开的实施例的数据存储装置的数据处理***的示例的简图。
图10是示出根据包括本公开的实施例的数据存储装置的网络***的示例的简图。
图11是示出包括在根据本公开的实施例的数据存储装置中的非易失性存储器装置的示例的简图。
具体实施方式
在下文中,以下将通过实施例的各个示例参照附图来描述数据存储装置及其操作方法。然而,本公开可以以不同的形式体现并且不应被解释为限于本文示出的实施例。相反,提供这些实施例作为示例,使得本公开将是彻底且完全的,并且将向本发明所属领域技术人员完全传达本发明的各个方面和特征。
将理解的是,虽然术语“第一”、“第二”、“第三”等可在本文使用以描述各种元件,但是这些元件不受这些术语限制。使用这些术语来将一个元件与另一元件区分。因此,在不脱离本发明的精神和范围的情况下,以下描述的第一元件也可被称为第二元件或第三元件。
附图不一定按比例绘制,在一些情况下,为了更清楚地示出实施例的各种元件,可能已经夸大了比例。例如,在附图中,为了便于说明,与实际尺寸和间隔相比,元件的尺寸和元件之间的间隔可被夸大。
将进一步理解的是,当元件被称为“连接至”或“联接至”另一元件时,它可以直接在其它元件上、连接至或联接至其它元件,或可存在一个或多个中间元件。另外,也将理解的是,当元件被称为在两个元件“之间”时,其可以是两个元件之间仅有的元件或也可存在一个或多个中间元件。
当短语“......和......中的至少一个”在本文中与项目列表一起使用时,是指列表中的单个项目或列表中项目的任何组合。例如,“A、B和C中的至少一个”是指只有A,或只有B,或只有C,或A、B和C的任何组合。
为了便于描述,在本文中可以使用诸如“下面”、“下方”、“下部”、“上方”、“上部”等的空间相对术语以描述如图所示的一个元件或特征与另一元件或特征的关系。将理解的是,除了附图中描绘的方位之外,空间相对术语旨在包括装置在制造、使用或操作中的不同方位。例如,如果附图中的装置被翻转,则被描述为在其它元件或特征“下方”或“下面”的元件将在其它元件或特征“上方”。装置可以以其它方式(旋转90度或在其它方位处)定向,并且本文使用的空间相对描述符应当被相应地解释。
本文使用术语的目的仅是描述特定实施例而不旨在限制本发明。如本文使用的,单数形式也旨在包括复数形式,除非上下文另有清楚地说明。将进一步理解的是,当在该说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,它们指定阐述的元件的存在而不排除一个或多个其它元件的存在或增加。如本文使用的,术语“和/或”包括一个或多个相关的所列项目的任何一个和所有组合。
除非另有限定,否则本文所使用的包括技术术语和科学术语的所有术语具有与本发明所属领域中普通技术人员基于本公开通常理解的含义相同的含义。将进一步理解的是,诸如在常用词典中限定的那些术语的术语应被理解为具有与它们在本公开的上下文和相关领域中的含义一致的含义并且将不以理想化或过于正式的意义来解释,除非本文如此明确地限定。
在以下描述中,为了提供本发明的彻底理解,阐述了许多具体细节。本发明可在没有一些或全部这些具体细节的情况下被实践。在其它情况下,为了不使本发明不必要模糊,未详细地描述公知的进程结构和/或进程。
也注意的是,在一些情况下,对相关领域的技术人员显而易见的是,结合一个实施例描述的元件(也被称为特征)可单独使用或与另一实施例的其它元件结合使用,除非另有明确说明。
在下文中,将参照附图详细地描述本发明的各个实施例。
图1是示出根据实施例的数据存储装置10的框图。
参照图1,数据存储装置10可以存储待由诸如移动电话、MP3播放器、膝上型计算机、台式计算机、游戏机、电视(TV)、车载信息娱乐***等的主机装置(未示出)访问的数据。数据存储装置10也可以被称为存储器***。
根据与主机装置电联接的接口的协议,数据存储装置10可以利用各种类型的存储装置中的任意一种来实施。例如,数据存储装置10可以利用诸如以下的各种类型的存储装置中的任意一种来实施:固态驱动器(SSD),诸如MMC、eMMC、RS-MMC和微型MMC的多媒体卡,诸如SD、迷你SD和微型SD的安全数字卡,通用串行总线(USB)存储装置,通用闪速存储(UFS)装置,个人计算机存储卡国际协会(PCMCIA)卡型存储装置,***组件互连(PCI)卡型存储装置,高速PCI(PCI-E)卡型存储装置,标准闪存(CF)卡,智能媒体卡,记忆棒等。
数据存储装置10可以利用各种类型的封装中的任意一种来实施。例如,数据存储装置10可以利用诸如以下的各种类型的封装中的任意一种来实施:堆叠封装(POP)、***级封装(SIP)、片上***(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)和晶圆级堆叠封装(WSP)。
数据存储装置10可以包括非易失性存储器装置100和控制器200。
非易失性存储器装置100可以操作为数据存储装置10的存储介质。非易失性存储器装置100可以根据存储器单元利用诸如以下的各种类型的非易失性存储器装置中的任意一种来实施:NAND闪速存储器装置、NOR闪速存储器装置、使用铁电电容器的铁电随机存取存储器(FRAM)、使用隧道磁阻(TMR)层的磁性随机存取存储器(MRAM)、使用硫族化物合金的相变随机存取存储器(PRAM)和使用过渡金属化合物的电阻式随机存取存储器(RRAM或ReRAM)。
虽然图1示出数据存储装置10包括一个非易失性存储器装置100,但这仅是示例,并且数据存储装置10可以包括多个非易失性存储器装置。实施例可以以相同的方式应用于包括多个非易失性存储器装置的数据存储装置。
非易失性存储器装置100可以包括具有分别设置在其中多个位线(未示出)和多个字线(未示出)彼此交叉的区域处的多个存储器单元的存储器单元阵列(未示出)。
非易失性存储器装置100可以包括多个存储块(未示出),并且每个存储块可以包括多个页面。
控制器200可以通过驱动装载在随机存取存储器210中的固件或软件来控制数据存储装置10的各种操作。控制器200可以解码和驱动诸如固件或软件的代码类型指令或算法。控制器200可以以硬件的形式或以硬件和软件的组合形式来实施。
控制器200可以包括随机存取存储器210、命令队列220和处理器230。虽然在图1中未示出,但是控制器200可以进一步包括主机接口单元,其对应于主机装置的协议接口连接主机装置与数据存储装置10。例如,主机接口单元可以通过以下中的任意一种与主机装置通信:通用串行总线(USB)协议、通用闪速存储(UFS)协议、多媒体卡(MMC)协议、并行高级技术附件(PATA)协议、串行高级技术附件(SATA)协议、小型计算机***接口(SCSI)协议、串列SCSI(SAS)协议、***组件互连(PCI)协议和高速PCI(PCI-e)协议。
并且,控制器200可以进一步包括存储器控制单元(未示出),其被配置成根据处理器230的控制来控制非易失性存储器装置100的操作。存储器控制单元也可以被称为存储器接口单元。
随机存取存储器210可以存储待由处理器230驱动的固件或软件。进一步地,随机存取存储器210可以被配置成存储用于驱动固件或软件必需的数据。即,随机存取存储器210可以操作为处理器230的工作存储器。
随机存取存储器210可以被配置成临时存储待从主机装置传输到非易失性存储器装置100的数据或待从非易失性存储器装置100传输到主机装置的数据。换言之,随机存取存储器210可以操作为缓冲存储器。
命令队列220可以包括能够使从主机装置接收的命令按照命令被接收的顺序排队的存储空间。命令队列220可以具有先入先出(FIFO)结构,并且在命令队列220中排队的命令可以由处理器230从首先排队的命令开始顺序地输出。
从主机装置接收的命令可以具有不同的优先级。即,在从主机装置接收的命令中,可能存在应当比其它命令更早地被处理以提高数据存储装置10的性能的命令。命令的优先级与接收的命令相对于队列中的其它命令待被处理的顺序有关,具有相对较高优先级的命令可以比具有相对较低优先级的命令更早地被处理。
因此,具有相对较低优先级的命令可以在其在命令队列220中排队的状态下等待,直到轮到其被处理,即,直到具有相对较高优先级的命令已经被处理。然而,如果具有高于相应命令的优先级的命令从主机装置被连续地接收,则当相应命令的等待时间无限期地增加时,相对较低优先级的命令可能不在超时时间内被处理。超时时间可以意味着命令的预定可执行时间。具体地,超时时间可以是从命令从主机装置被接收到命令在非易失性存储器装置100中变成可执行的时间。本实施例涉及一种方法,其中可以在任何情况下在超时时间内处理在命令队列220中处于等待且具有相对较低优先级的命令。
处理器230可以控制控制器200的各种操作。在一些实施例中,处理器230可以从命令队列220提取排队的命令,分析提取的命令,然后处理提取的命令。例如,如果提取的命令是读取命令,则处理器230可以基于与读取命令一起从主机装置接收的逻辑地址从非易失性存储器装置100读出数据,并且可以将读取数据传输至主机装置。并且,如果提取的命令是写入命令,则处理器230可以基于与写入命令一起从主机装置接收的逻辑地址将写入数据存储在非易失性存储器装置100中。
为此,处理器230可解码并驱动加载在随机存取存储器210上的固件数据。处理器230可以以硬件的形式或以硬件和软件的组合形式来实施。
虽然处理器230可以按照命令排队的顺序来顺序地提取并处理在命令队列220中排队的命令,但是在命令队列220中排队的命令的优先级彼此不同的情况下,具有相对较高优先级的命令可以比具有相对较低优先级的命令被更早地提取并处理。
处理器230可以在每次到达预定命令队列检查点时检查在命令队列220中排队的命令中是否存在紧急命令,并且当存在紧急命令时,处理器230可以首先处理紧急命令,而不管其它命令的优先级。
命令队列检查点可以对应于在命令队列220中排队的命令的数量(在下文中被称为“命令的数量”)变成大于阈值数量(在下文中被称为“第一阈值”)的时间点。即,处理器230可以确定在命令队列220中排队的命令的数量是否大于第一阈值,并且当命令的数量大于第一阈值时,可以针对紧急命令检查命令队列220。
紧急命令可以意味着具有发生超时的可能性的命令。换言之,从主机装置接收的命令中的每一个具有超时时间信息,并且处理器230可以基于排队命令的超时时间信息来控制非易失性存储器装置100,使得各个命令可以在其指定的超时时间内被处理。
处理器230可以在每次到达预定命令队列检查点时通过检查命令队列220来检查和处理紧急命令,使得在命令队列220中排队的命令中具有较低优先级的命令可以在超时时间内被正常地处理。
例如,当到达命令队列检查点时,处理器230可以计算命令队列220中最近排队的命令即最后排队的命令的年龄和其它命令的年龄之间的年龄差值,并且可以确定在计算的差值中是否存在大于预定阈值(在下文中被称为“第二阈值”)的年龄差值。如果存在大于第二阈值的年龄差值,则处理器230可以确定在除了最近排队的命令之外的其它命令中对应于相应的年龄差值的命令为紧急命令,并且首先处理该紧急命令。命令的年龄与从主机装置接收命令的次序有关。
在本实施例中,处理器230可以根据情况可变地控制第一阈值和第二阈值,从而控制检查命令队列220的频率和检查并处理紧急命令的频率。
从主机装置接收的命令中的每一个可以包括其中存储各种信息的多个字段。例如,如图2所示,每个命令可以包括其中存储命令类型信息的命令类型字段、其中存储数据大小信息的数据大小字段以及其中存储关于是否开始执行的信息的执行开始设置字段。虽然在图2中示出每个命令包括三个字段,但是这仅是为了便于说明而示出了与本实施例相关联的字段,并且应当注意的是,包括在每个命令中的字段不具体限于此。
命令类型信息是关于相应命令是读取命令还是写入命令的信息,并且数据大小信息是关于待读取的数据的大小或待写入的数据的大小的信息。处理器230控制第一阈值和第二阈值的方法如下。在本实施例中,第一阈值可以意味着在命令队列220中排队以确定命令队列220的检查点的命令的数量,并且第二阈值可以意味着用于在命令队列220中排队的命令中选择紧急命令的排队命令之间的年龄差值。
处理器230可以对在命令队列220中排队的所有命令的数据大小求和,并且基于数据大小的总和来计算第一权重。例如,第一权重可以与数据大小的总和成比例。即,第一权重可以随着数据大小的总和增大而增大,并且可以随着数据大小的总和减小而减小。
处理器230可以在每次从主机装置接收的命令在命令队列220中排队时对在命令队列220中排队的所有命令的数据大小求和,从而计算第一权重。
并且,处理器230可以基于在命令队列220中排队的各个命令的类型来计算第二权重。例如,处理器230可以将根据命令的类型预先设置的权重应用到在命令队列220中排队的各个命令,并且通过对应用的权重求和来计算第二权重。例如,处理时间相对较长的命令的权重可以被设置成相对较高,并且处理时间相对较短的命令的权重可以被设置成相对较低。随着在命令队列220中排队的命令中权重被设置成高的命令的比例增加,第二权重可以增加。相反,随着在命令队列220中排队的命令中权重被设置成低的命令的比例增加,第二权重可以减小。
处理器230可以在每次从主机装置接收的命令在命令队列220中排队时根据在命令队列220中排队的所有命令的类型对权重求和,从而计算第二权重。
换言之,处理器230可以实时地计算第一权重和第二权重,并且也可以分别基于实时计算的第一权重和第二权重实时地控制第一阈值和第二阈值。因此,可以实时控制用于选择紧急命令的命令队列检查点和年龄差值。
同时,处理器230可以不仅基于上述第一权重和第二权重而且基于非易失性存储器装置100的脏状态值(dirty status valve)来控制第一阈值和第二阈值。“脏状态值”可以意味着非易失性存储器装置100的空闲块中的有效页面的碎片化程度。例如,随着碎片化程度增加,脏状态值增加。并且,随着碎片化程度减小,脏状态值减小。
用于计算第一权重的因素,即根据在命令队列220中排队的命令的数据大小的总和、用于计算第二权重的因素,即根据在命令队列220中排队的命令的类型的权重的总和、以及非易失性存储器装置100的脏状态值可以对应于对延迟产生影响的因素。
即,当根据在命令队列220中排队的命令的数据大小的总和以及根据在命令队列220中排队的命令的类型的权重的总和增加并且非易失性存储器装置100是脏的时,延迟会增加。“延迟”可以意味着直到数据存储装置10向主机装置提供从主机装置接收的命令的响应的时间被延迟。如果延迟增加,则在命令队列220中等待并且具有低优先级的命令不在其规定的超时时间内被处理的可能性可能增加。
通常,由于命令队列检查点和用于选择紧急命令的年龄差值,即第一阈值和第二阈值,分别固定,所以即使在延迟增加的情况下,紧急命令也是直到到达固定的命令队列检查点时才会被检查和处理。因此,可能发生在超时时间内未处理紧急命令的情况。此外,即使在不发生延迟的情况下,也可能发生不必要地频繁检查命令队列220的情况。
为了解决这些问题,在本实施例中,处理器230可以基于对延迟产生影响的因素来主动地控制第一阈值和第二阈值。即,处理器230可以基于延迟增加因素来增加或减小第一阈值或第二阈值中的每一个。
例如,如果作为引起延迟的因素的第一权重、第二权重和非易失性存储器装置100的脏状态值增加,则处理器230可以通过减小第一阈值和第二阈值来提前命令队列检查点并减小用于选择紧急命令的年龄差值。以该方式,通过提前命令队列检查点并减小年龄差值,检查命令队列220的频率和处理紧急命令的频率可以增加。换言之,在预期延迟增加的情况下,处理器230可以更频繁地检查命令队列220并在超时时间内处理紧急命令。
如果作为引起延迟的因素的第一权重、第二权重和非易失性存储器装置100的脏状态值减小,则处理器230可以通过增加第一阈值和第二阈值来推迟命令队列检查点并增加用于选择紧急命令的年龄差值。以该方式,通过推迟命令队列检查点并增加年龄差值,检查命令队列220的频率和处理紧急命令的频率可以减小。换言之,在预期延迟减小的情况下,处理器230可以不对命令队列220执行不必要的检查操作。虽然在本实施例中描述处理器230通过考虑第一权重、第二权重和非易失性存储器装置100的脏状态值的全部来控制第一阈值和第二阈值,但是应当注意的是,本实施例不具体地限于此,并且可以基于从第一权重、第二权重和非易失性存储器装置100的脏状态值中选择的至少一个来控制第一阈值和第二阈值。
图3是示出根据图1的命令队列220中排队的命令的数据大小的总和而改变的命令队列检查点和年龄差值的简图。在图3中,为了便于说明,其中具有较小数据大小的命令被排队的命令队列被称为第一命令队列220A,其中具有较大数据大小的命令被排队的命令队列被称为第二命令队列220B。第一命令队列220A和第二命令队列220B被示出作为示例来说明根据命令的数据大小来控制的命令队列检查点和年龄差值,并且第一命令队列220A和第二命令队列220B不是单独配置的部件。
此外,为了便于说明,假设在第一命令队列220A和第二命令队列220B中,第一命令CMD1和CDM1′是具有最低优先级并且最早被接收的命令。
参照图3,在第一命令队列220A中排队的命令中的每一个的数据大小为4KB,而在第二命令队列220B中排队的命令中的每一个的数据大小为512KB。在每次命令排队时,处理器230可以从第一命令CMD1和CDM1′中的每一个在第一命令队列220A和第二命令队列220B中的每一个中排队时开始累积地对命令的数据大小求和。
例如,如果第九命令CMD9在第一命令队列220A中排队,则在第一命令队列220A中排队的命令的数据大小的总和可以是36KB。类似地,如果第六命令CMD6′在第二命令队列220B中排队,则在第二命令队列220B中排队的命令的数据大小的总和可以是3072KB。
处理器230可以将对应于数据大小总和36KB的第一权重分配给第一命令队列220A,并将对应于数据大小总和3072KB的第一权重分配给第二命令队列220B。如上所述,由于第一权重与数据大小总和的大小成比例,因此分配给第二命令队列220B的第一权重可以相对大于分配给第一命令队列220A的第一权重。
根据该事实,处理器230可以增加分配有相对较小的第一权重的第一命令队列220A的第一阈值和第二阈值,并且减小分配有相对较大的第一权重的第二命令队列220B的第一阈值和第二阈值。
例如,在图1的命令队列220对应于第一命令队列220A的情况下,由于没有预期到延迟会增加,因此当在命令队列220中排队的命令的数量等于或大于第一阈值,例如“9”时,处理器230可以根据命令队列检查点CP1来检查命令队列220。处理器230可以计算最近排队的命令CMD9与其它命令之间的年龄差值,并且确定并处理在计算的年龄差值中具有等于或大于第二阈值例如“8”的年龄差值的命令CMD1作为紧急命令UCMD。
此外,在图1的命令队列220对应于第二命令队列220B的情况下,由于预期到延迟会增加,因此当在命令队列220中排队的命令的数量等于或大于第一阈值,例如“6”时,处理器230可以根据命令队列检查点CP2来检查命令队列220。处理器230可以计算最近排队的命令CMD6′与其它命令之间的年龄差值,并且确定并处理在计算的年龄差值中具有等于或大于第二阈值例如“5”的年龄差值的命令CMD1′作为紧急命令UCMD′。
即,如果预期到延迟会增加,则可以通过提前命令队列检查点并减小年龄差值来更频繁地检查命令队列220,并且可以检查到在短时间内将发生超时的紧急命令并在超时时间内将其正常地处理。
图4是示出根据实施例的包括控制紧急命令选择阈值的数据存储装置的操作方法的流程图。在说明图4的方法时,可以参考图1和图2。
参照图4,在步骤S410中,处理器230可以确定是否从主机装置接收到命令。如果从主机装置接收到命令,则可以执行步骤S420。
在步骤S420中,处理器230可以对在命令队列220中排队的所有命令的数据大小求和,并且基于数据大小的总和来计算第一权重。例如,第一权重可以随着数据大小的总和增加而增加,并且可以随着数据大小的总和减小而减小。
在步骤S430中,处理器230可以根据在命令队列220中排队的所有命令的类型通过对权重求和来计算第二权重。
在步骤S440中,处理器230可以检查非易失性存储器装置100的脏状态。
在步骤S450中,处理器230可以基于分别通过步骤S420至S440获得的第一权重、第二权重和非易失性存储器装置100的脏状态来控制紧急命令选择阈值。紧急命令选择阈值可以是用于在命令队列220中排队的命令中选择具有较高可能性发生超时的紧急命令的阈值。
紧急命令选择阈值可以包括用于设置命令队列检查点的对应于命令数量的第一阈值以及用于选择紧急命令的对应于年龄差值的第二阈值。
在步骤S450中,处理器230可以通过使用第一权重、第二权重和非易失性存储器装置100的脏状态中的至少一个来控制紧急命令选择阈值。在实施例中,处理器230可以基于第一权重、第二权重和非易失性存储器装置100的脏状态中的全部来控制紧急命令选择阈值。
图5是示出根据实施例的数据存储装置中用于选择紧急命令的方法的流程图。在说明图5的方法时,可以参考图1和图2。
参照图5,在步骤S510中,处理器230可以确定在命令队列220中排队的命令的数量是否多于或大于第一阈值。如果在命令队列220中排队的命令的数量大于第一阈值,则可以执行步骤S520。
在步骤S520中,处理器230可以计算命令队列220中最近排队的命令的年龄与在命令队列220中排队的其它命令的年龄之间的差值。
在步骤S530中,处理器230可以确定通过步骤S520计算的差值中是否存在大于第二阈值的差值。如果存在大于第二阈值的差值,则可以执行步骤S540。
在步骤S540中,处理器230可以选择对应于相应差值的命令作为紧急命令,并且首先处理选择的紧急命令,而不管优先级。
在步骤S510和S530中使用的第一阈值和第二阈值可以是通过图4的步骤S420至S450来控制的阈值。即,在图5所示的用于选择紧急命令的方法中使用的第一阈值和第二阈值可以通过在图4所示的用于控制紧急命令选择阈值的方法来进行实时地控制。
图6是示出根据本公开的实施例的包括固态驱动器(SSD)2200的数据处理***2000的示例的简图。参照图6,数据处理***2000可以包括主机装置2100和SSD 2200。
SSD 2200可以包括控制器2210、缓冲存储器装置2220、多个非易失性存储器装置2231至223n、电源2240、信号连接器2250和电源连接器2260。
控制器2210可以控制SSD 2200的整体操作。
缓冲存储器装置2220可以临时存储待存储在非易失性存储器装置2231至223n中的数据。缓冲存储器装置2220可以临时存储从非易失性存储器装置2231至223n读取的数据。临时存储在缓冲存储器装置2220中的数据可以根据控制器2210的控制被传输到主机装置2100或非易失性存储器装置2231至223n。
非易失性存储器装置2231至223n可以用作SSD 2200的存储介质。非易失性存储器装置2231至223n可以通过多个通道CH1至CHn分别联接到控制器2210。一个或多个非易失性存储器装置可以联接到一个通道。联接到一个通道的非易失性存储器装置可以联接到相同的信号总线和相同的数据总线。
电源2240可以将通过电源连接器2260输入的电源PWR提供给SSD2200的内部。电源2240可以包括辅助电源2241。辅助电源2241可以供给电力,使得即使当发生突然断电时SSD2200也正常地终止。辅助电源2241可以包括能够对电源PWR充电的大容量电容器。
控制器2210可以通过信号连接器2250与主机装置2100交换信号SGL。信号SGL可以包括命令、地址、数据等。根据主机装置2100和SSD 2200之间的接口方法,信号连接器2250可以配置有各种类型的连接器。
图7是示出图6的控制器2210的示例的简图。参照图7,控制器2210可以包括主机接口单元2211、控制单元2212、随机存取存储器(RAM)2213、错误校正码(ECC)单元2214和存储器接口单元2215。
主机接口单元2211可以根据主机装置2100的协议在主机装置2100和SSD 2200之间执行接口连接。例如,主机接口单元2211可以通过以下中的任意一种与主机装置2100通信:安全数字协议、通用串行总线(USB)协议、多媒体卡(MMC)协议、嵌入式MMC(eMMC)协议、个人计算机存储卡国际协会(PCMCIA)协议、并行高级技术附件(PATA)协议、串行高级技术附件(SATA)协议、小型计算机***接口(SCSI)协议、串列SCSI(SAS)协议、***组件互连(PCI)协议、高速PCI(PCI-e)协议和通用闪速存储(UFS)协议。主机接口单元2211可以执行主机装置2100将SSD 2200识别为例如硬盘驱动器(HDD)的通用数据存储装置的盘模拟功能。
控制单元2212可以分析和处理从主机装置2100接收的信号SGL。控制单元2212可以根据用于驱动SSD 2200的固件和/或软件来控制内部功能块的操作。RAM 2213可以用作驱动固件或软件的工作存储器。
ECC单元2214可以生成待传送到非易失性存储器装置2231至223n中的至少一个的数据的奇偶校验数据。生成的奇偶校验数据可以与数据一起被存储在非易失性存储器装置2231至223n中。ECC单元2214可以基于奇偶校验数据来检测从非易失性存储器装置2231至223n中的至少一个读取的数据的错误。如果检测的错误在可校正的范围内,则ECC单元2214可以校正检测的错误。
存储器接口单元2215可以根据控制单元2212的控制将诸如命令和地址的控制信号提供给非易失性存储器装置2231至223n。存储器接口单元2215可以根据控制单元2212的控制与非易失性存储器装置2231至223n中的至少一个交换数据。例如,存储器接口单元2215可以将存储在缓冲存储器装置2220中的数据提供给非易失性存储器装置2231至223n,或将从非易失性存储器装置2231至223n读取的数据提供给缓冲存储器装置2220。
图8是示出根据本公开的实施例的包括数据存储装置3200的数据处理***3000的示例的简图。参照图8,数据处理***3000可以包括主机装置3100和数据存储装置3200。
主机装置3100可以被配置成诸如印刷电路板(PCB)的板形式。虽然在图8中未示出,但是主机装置3100可以包括被配置成执行主机装置3100的功能的内部功能块。
主机装置3100可以包括诸如插座、插槽或连接器的连接端子3110。数据存储装置3200可以被安装在连接端子3110上。
数据存储装置3200可以被配置成诸如PCB的板形式。数据存储装置3200可以指存储器模块或存储卡。数据存储装置3200可以包括控制器3210、缓冲存储器装置3220、非易失性存储器装置3231至3232、电源管理集成电路(PMIC)3240和连接端子3250。
控制器3210可以控制数据存储装置3200的总体操作。控制器3210可以被配置为具有与图7所示的控制器2210相同的配置。
缓冲存储器装置3220可以临时存储待存储在非易失性存储器装置3231和3232中的数据。缓冲存储器装置3220可以临时存储从非易失性存储器装置3231和3232读取的数据。临时存储在缓冲存储器装置3220中的数据可以根据控制器3210的控制被传输到主机装置3100或非易失性存储器装置3231和3232。
非易失性存储器装置3231和3232可以被用作数据存储装置3200的存储介质。
PMIC 3240可以将通过连接端子3250输入的电力提供给数据存储装置3200的内部。PMIC 3240可以根据控制器3210的控制来管理数据存储装置3200的电力。
连接端子3250可以联接到主机装置3100的连接端子3110。诸如命令、地址和数据的信号以及电力可以通过连接端子3250在主机装置3100和数据存储装置3200之间传输和/或接收。连接端子3250可以根据主机装置3100和数据存储装置3200之间的接口连接方法被配置成各种形式。连接端子3250可以被布置在数据存储装置3200的任意一侧中。
图9是示出根据本公开的实施例的包括数据存储装置4200的数据处理***4000的示例的简图。参照图9,数据处理***4000可以包括主机装置4100和数据存储装置4200。
主机装置4100可以被配置成诸如印刷电路板(PCB)的板形式。虽然在图9中未示出,但是主机装置4100可以包括被配置成执行主机装置4100的功能的内部功能块。
数据存储装置4200可以被配置成表面安装封装的形式。数据存储装置4200可以通过焊球4250被安装在主机装置4100上。数据存储装置4200可以包括控制器4210、缓冲存储器装置4220和非易失性存储器装置4230。
控制器4210可以控制数据存储装置4200的总体操作。控制器4210可以被配置为具有与图7所示的控制器2210相同的配置。
缓冲存储器装置4220可以临时存储待存储在非易失性存储器装置4230中的数据。缓冲存储器装置4220可以临时存储从非易失性存储器装置4230读取的数据。临时存储在缓冲存储器装置4220中的数据可以通过控制器4210的控制被传输到主机装置4100或非易失性存储器装置4230。
非易失性存储器装置4230可以用作数据存储装置4200的存储介质。
图10是示出包括根据本公开的实施例的数据存储装置5200的网络***5000的示例的简图。参照图10,网络***5000可以包括通过网络5500联接的服务器***5300和多个客户端***5410至5430。
服务器***5300可以响应于多个客户端***5410至5430的请求来服务数据。例如,服务器***5300可以存储从多个客户端***5410到5430提供的数据。又例如,服务器***5300可以将数据提供给多个客户端***5410至5430。
服务器***5300可以包括主机装置5100和数据存储装置5200。数据存储装置5200可以被配置为图1的数据存储装置10、图6的数据存储装置2200、图8的数据存储装置3200或图9的数据存储装置4200。
图11是示出根据本公开的实施例的包括在数据存储装置中的非易失性存储器装置100的示例的简图。参照图11,非易失性存储器装置100可以包括存储器单元阵列110、行解码器120、列解码器140、数据读取/写入块130、电压发生器150和控制逻辑160。
存储器单元阵列110可以包括布置在字线WL1至WLm和位线BL1至BLn彼此相交的区域中的存储器单元MC。
行解码器120可以通过字线WL1至WLm联接到存储器单元阵列110。行解码器120可以通过控制逻辑160的控制来操作。行解码器120可以解码从外部设备(未示出)提供的地址。行解码器120可以基于解码结果来选择并驱动字线WL1至WLm。例如,行解码器120可以基于地址解码结果将从电压发生器150提供的字线电压提供给字线WL1至WLm中的一个或多个。
数据读取/写入块130可以通过位线BL1至BLn联接到存储器单元阵列110。数据读取/写入块130可以包括对应于位线BL1至BLn的读取/写入电路RW1至RWn。数据读取/写入块130可以根据控制逻辑160的控制来操作。数据读取/写入块130可以根据操作模式用作写入驱动器或读出放大器。例如,数据读取/写入块130可以在写入操作中用作写入驱动器,该写入驱动器被配置成将从外部设备提供的数据存储在存储器单元阵列110中。又例如,数据读取/写入块130可以在读取操作中用作读出放大器,该读出放大器被配置成从存储器单元阵列110读取数据。
列解码器140可以根据控制逻辑160的控制来操作。列解码器140可以解码从外部设备(未示出)提供的地址。列解码器140可以基于解码结果来联接对应于位线BL1至BLn的数据读取/写入块130的读取/写入电路RW1至RWn和数据输入/输出(I/O)线(或数据I/O缓冲器)。
电压发生器150可以产生用于非易失性存储器装置100的内部操作的电压。通过电压发生器150产生的电压可以被施加到存储器单元阵列110的存储器单元。例如,在编程操作中产生的编程电压可以被施加到在其中待执行编程操作的存储器单元的字线。又例如,在擦除操作中产生的擦除电压可以被施加到在其中待执行擦除操作的存储器单元的阱区。再例如,在读取操作中产生的读取电压可以被施加到在其中待执行读取操作的存储器单元的字线。
控制逻辑160可以基于从外部设备提供的控制信号来控制非易失性存储器装置100的总体操作。例如,控制逻辑160可以控制非易失性存储器装置100的操作,诸如非易失性存储器装置100的读取操作、写入操作和擦除操作。
虽然上面已经描述各个实施例,但是本领域技术人员将理解,描述的实施例仅是示例。因此,注意的是,本文描述的数据存储装置和操作方法不应当基于描述的实施例受到限制,并且在不偏离如权利要求所限定的本发明的范围或精神的情况下,本发明所属领域的技术人员可以设想出许多其它实施例及其变型。
Claims (16)
1.一种数据存储装置的操作方法,其包括:
基于在命令队列中排队的命令的数据大小的总和来确定第一权重;
根据所述命令的类型通过对权重求和来确定第二权重;以及
基于所述第一权重和所述第二权重中的至少一个来控制用于选择存在于所述命令队列中的紧急命令的紧急命令选择阈值。
2.根据权利要求1所述的方法,其进一步包括,在确定所述第一权重之前,
确定是否从主机装置接收到命令。
3.根据权利要求2所述的方法,其中当从所述主机装置接收到命令时,确定所述第一权重。
4.根据权利要求1所述的方法,其进一步包括:
检查非易失性存储器装置的脏状态。
5.根据权利要求4所述的方法,其中通过使用所述第一权重、所述第二权重和所述非易失性存储器装置的脏状态的全部来控制所述紧急命令选择阈值。
6.根据权利要求4所述的方法,其中通过使用在所述第一权重、所述第二权重和所述非易失性存储器装置的脏状态中选择的至少一个来控制所述紧急命令选择阈值。
7.根据权利要求1所述的方法,其中所述紧急命令选择阈值包括:
用于设置用于选择所述紧急命令的时间点的第一阈值;以及
用于在所述命令队列中排队的所述命令中选择所述紧急命令的第二阈值。
8.根据权利要求7所述的方法,其进一步包括:
确定在所述命令队列中排队的所述命令的数量是否大于所述第一阈值;
当所述命令的数量大于所述第一阈值时,计算所述命令队列中最近排队的命令的年龄与其它命令的年龄之间的差值;
确定在计算的差值中是否存在大于所述第二阈值的差值;以及
当存在大于所述第二阈值的差值时,选择对应于相应差值的命令作为所述紧急命令并处理所述紧急命令。
9.根据权利要求1所述的方法,其中所述紧急命令选择阈值与所述第一权重和所述第二权重成反比。
10.一种数据存储装置,其包括:
非易失性存储器装置;
命令队列,其适于使从主机装置接收的命令排队;以及
处理器,其适于通过对在所述命令队列中排队的所述命令的数据大小求和来确定第一权重,根据所述命令的类型通过对权重求和来确定第二权重,以及基于所述第一权重和所述第二权重中的至少一个来控制用于选择存在于所述命令队列中的紧急命令的紧急命令选择阈值。
11.根据权利要求10所述的数据存储装置,其中所述处理器基于所述非易失性存储器装置的脏状态来控制所述紧急命令选择阈值。
12.根据权利要求11所述的数据存储装置,其中所述处理器通过使用所述第一权重、所述第二权重和所述非易失性存储器装置的脏状态中的全部来控制所述紧急命令选择阈值。
13.根据权利要求11所述的数据存储装置,其中所述处理器通过使用在所述第一权重、所述第二权重和所述非易失性存储器装置的脏状态中选择的至少一个来控制所述紧急命令选择阈值。
14.根据权利要求10所述的数据存储装置,其中所述紧急命令选择阈值包括:
用于设置用于选择所述紧急命令的时间点的第一阈值;以及
用于在所述命令队列中排队的所述命令中选择所述紧急命令的第二阈值。
15.根据权利要求14所述的数据存储装置,其中所述处理器确定在所述命令队列中排队的所述命令的数量是否大于所述第一阈值,并且当所述命令的数量大于所述第一阈值时,所述处理器计算所述命令队列中最近排队的命令的年龄与其它命令的年龄之间的差值。
16.根据权利要求15所述的数据存储装置,其中所述处理器确定在计算的差值中是否存在大于所述第二阈值的差值,并且当存在大于所述第二阈值的差值时,所述处理器选择对应于相应差值的命令作为所述紧急命令并处理所述紧急命令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170018102A KR20180092435A (ko) | 2017-02-09 | 2017-02-09 | 데이터 저장 장치 및 그것의 동작 방법 |
KR10-2017-0018102 | 2017-02-09 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108415664A CN108415664A (zh) | 2018-08-17 |
CN108415664B true CN108415664B (zh) | 2021-03-02 |
Family
ID=63037170
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711148214.3A Active CN108415664B (zh) | 2017-02-09 | 2017-11-17 | 数据存储装置及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10528393B2 (zh) |
KR (1) | KR20180092435A (zh) |
CN (1) | CN108415664B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9961023B2 (en) * | 2014-05-13 | 2018-05-01 | Red Hat Israel, Ltd. | Adjusting buffer size for network interface controller |
KR102410671B1 (ko) * | 2017-11-24 | 2022-06-17 | 삼성전자주식회사 | 스토리지 장치, 스토리지 장치를 제어하는 호스트 장치, 및 스토리지 장치의 동작 방법 |
US11221795B2 (en) | 2019-02-25 | 2022-01-11 | International Business Machines Corporation | Queue management for multiway queues |
KR20200115831A (ko) * | 2019-03-27 | 2020-10-08 | 에스케이하이닉스 주식회사 | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 |
CN113377277A (zh) * | 2020-03-09 | 2021-09-10 | 伊姆西Ip控股有限责任公司 | 管理存储器的方法、设备和计算机程序产品 |
JP2023517080A (ja) * | 2020-03-10 | 2023-04-21 | マイクロン テクノロジー,インク. | メモリサブシステムに対するキューの維持 |
US20230063880A1 (en) * | 2021-08-26 | 2023-03-02 | Mocrosoft Technology Licensing, LLC | Performing quality-based action(s) regarding engineer-generated documentation associated with code and/or application programming interface |
US20230128077A1 (en) * | 2021-10-22 | 2023-04-27 | EMC IP Holding Company, LLC | System and Method for Aggregation of Write Commits To Control Written Block Size |
CN114047875B (zh) * | 2021-10-25 | 2024-04-19 | 深圳市硅格半导体有限公司 | 命令调度方法、装置、设备及计算机程序产品 |
CN116996450B (zh) * | 2023-08-05 | 2024-03-22 | 哈尔滨商业大学 | 一种管理数据处理方法、装置及*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1886227A2 (en) * | 2005-05-13 | 2008-02-13 | Texas Instruments Incorporated | Command-re-ordering in hub interface unit based on priority |
KR20090032328A (ko) * | 2007-09-27 | 2009-04-01 | 한양대학교 산학협력단 | 가중치 기반 멀티큐 부하분산 병렬처리 시스템 및 방법 |
CN103049363A (zh) * | 2013-02-01 | 2013-04-17 | 山东华芯半导体有限公司 | 一种NAND Flash控制器的验证方法 |
CN106055488A (zh) * | 2015-04-06 | 2016-10-26 | 爱思开海力士有限公司 | 数据储存设备及其操作方法 |
CN106201908A (zh) * | 2014-12-04 | 2016-12-07 | 爱思开海力士有限公司 | 包括半导体存储器件的存储***及其操作方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6170042B1 (en) * | 1998-02-24 | 2001-01-02 | Seagate Technology Llc | Disc drive data storage system and method for dynamically scheduling queued commands |
US7574538B1 (en) * | 2004-06-29 | 2009-08-11 | Emc Corporation | Contiguous I/O command queuing within a data storage device |
DE102004047349A1 (de) * | 2004-09-29 | 2006-04-06 | Infineon Technologies Ag | Datensicherungsschicht-Protokolleinheit, Mobilfunkeinrichtungen, Mobilfunknetzwerk-Kontrolleinheit und Verfahren zum Auslesen von Daten aus einer Mehrzahl von Datensicherungsschicht-Protokoll-Pufferspeichern |
US7797468B2 (en) * | 2006-10-31 | 2010-09-14 | Hewlett-Packard Development Company | Method and system for achieving fair command processing in storage systems that implement command-associated priority queuing |
CN101277175B (zh) * | 2007-03-30 | 2012-02-29 | 国际商业机器公司 | 改进会话启动协议服务器性能的方法和装置 |
CN102761832B (zh) * | 2011-04-28 | 2015-05-27 | ***通信集团河南有限公司 | 一种消息分发方法以及消息分发装置 |
JP5958020B2 (ja) | 2012-03-30 | 2016-07-27 | 富士通株式会社 | ストレージシステム |
US8959263B2 (en) * | 2013-01-08 | 2015-02-17 | Apple Inc. | Maintaining I/O priority and I/O sorting |
US9423979B2 (en) * | 2014-03-10 | 2016-08-23 | Kabushiki Kaisha Toshiba | Memory system and memory controller for determining whether one or plurality of pointers can be stored in a second buffer and for executing data transfer between data buffer and host using the pointers |
KR101730991B1 (ko) * | 2014-10-28 | 2017-04-28 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
US9927983B2 (en) * | 2015-09-28 | 2018-03-27 | Sandisk Technologies Llc | Methods, systems and computer readable media for intelligent fetching of data storage device commands from submission queues |
-
2017
- 2017-02-09 KR KR1020170018102A patent/KR20180092435A/ko not_active Application Discontinuation
- 2017-09-12 US US15/701,854 patent/US10528393B2/en active Active
- 2017-11-17 CN CN201711148214.3A patent/CN108415664B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1886227A2 (en) * | 2005-05-13 | 2008-02-13 | Texas Instruments Incorporated | Command-re-ordering in hub interface unit based on priority |
KR20090032328A (ko) * | 2007-09-27 | 2009-04-01 | 한양대학교 산학협력단 | 가중치 기반 멀티큐 부하분산 병렬처리 시스템 및 방법 |
CN103049363A (zh) * | 2013-02-01 | 2013-04-17 | 山东华芯半导体有限公司 | 一种NAND Flash控制器的验证方法 |
CN106201908A (zh) * | 2014-12-04 | 2016-12-07 | 爱思开海力士有限公司 | 包括半导体存储器件的存储***及其操作方法 |
CN106055488A (zh) * | 2015-04-06 | 2016-10-26 | 爱思开海力士有限公司 | 数据储存设备及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US10528393B2 (en) | 2020-01-07 |
US20180225151A1 (en) | 2018-08-09 |
CN108415664A (zh) | 2018-08-17 |
KR20180092435A (ko) | 2018-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108415664B (zh) | 数据存储装置及其操作方法 | |
CN108694018B (zh) | 数据存储装置及其操作方法 | |
US10248501B2 (en) | Data storage apparatus and operation method thereof | |
CN113220220B (zh) | 控制器、控制器的操作方法及包括该控制器的存储装置 | |
CN111124273B (zh) | 数据存储装置及数据存储装置的操作方法 | |
US10877697B2 (en) | Data storage device and operating method thereof | |
US20200218653A1 (en) | Controller, data storage device, and operating method thereof | |
US10878924B2 (en) | Data storage device intergrating host read commands and method of operating the same | |
CN111414313B (zh) | 数据存储装置及数据存储装置的操作方法 | |
US10776048B2 (en) | Electronic apparatus and operating method thereof | |
US20190205059A1 (en) | Data storage apparatus and operating method thereof | |
KR102645786B1 (ko) | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 | |
CN112988045A (zh) | 数据存储装置及其操作方法 | |
CN108417232B (zh) | 数据存储装置及其操作方法 | |
CN111324297B (zh) | 控制器、数据存储装置及数据存储装置的操作方法 | |
US11429612B2 (en) | Address search circuit and method of semiconductor memory apparatus and controller therefor | |
CN110795366B (zh) | 数据存储装置及数据存储装置的操作方法 | |
US10515693B1 (en) | Data storage apparatus and operating method thereof | |
US11157214B2 (en) | Controller, memory system and operating method thereof | |
US11314461B2 (en) | Data storage device and operating method of checking success of garbage collection operation | |
US10628322B2 (en) | Memory system and operating method thereof |
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 |