CN107229581A - 数据存储装置及其操作方法 - Google Patents

数据存储装置及其操作方法 Download PDF

Info

Publication number
CN107229581A
CN107229581A CN201610864059.4A CN201610864059A CN107229581A CN 107229581 A CN107229581 A CN 107229581A CN 201610864059 A CN201610864059 A CN 201610864059A CN 107229581 A CN107229581 A CN 107229581A
Authority
CN
China
Prior art keywords
order
attribute
queue
data storage
storage device
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
CN201610864059.4A
Other languages
English (en)
Other versions
CN107229581B (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 CN107229581A publication Critical patent/CN107229581A/zh
Application granted granted Critical
Publication of CN107229581B publication Critical patent/CN107229581B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on 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/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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • 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
    • 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
    • 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
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Advance Control (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供一种数据存储装置,其包括:多个非易失性存储器装置;以及控制器,其适于接收命令并且对多个非易失性存储器装置执行该命令。控制器包括:第一队列,其适于存储命令;以及命令管理器,其适于基于命令的第一属性和第一队列的队列信息,管理第一队列中的命令。

Description

数据存储装置及其操作方法
相关申请的交叉引用
本申请要求于2016年3月25日向韩国知识产权局提交的申请号为10-2016-0036154的韩国专利申请的优先权,其全文通过引用并入本文。
技术领域
本发明的各个实施例总体涉及数据存储装置,且更特别地,涉及包括非易失性存储器装置的数据存储装置。
背景技术
数据存储装置响应于写入请求存储由外部装置提供的数据。数据存储装置也可以响应于读取请求将存储的数据提供给外部装置。使用数据存储装置的外部装置的示例包括计算机、数码相机、移动电话等等。数据存储装置可以被嵌入在外部装置中或者分开制造之后被连接。
发明内容
在实施例中,数据存储装置可以包括:多个非易失性存储器装置;以及控制器,其适于接收命令并且对多个非易失性存储器装置执行命令,其中控制器可以包括:第一队列,其适于存储命令;以及命令管理器,其适于基于命令的第一属性和第一队列的队列信息管理第一队列中的命令。
在实施例中,数据存储装置的操作方法可以包括:接收命令;以及基于命令的第一属性和第一队列的队列信息管理第一队列中的命令。
在实施例中,数据存储装置可以包括:多个非易失性存储器装置;以及控制器,其适于接收用于多个非易失性存储器装置的第一命令并将用于多个非易失性存储器装置的第一命令存储在第一队列中;如果第二命令被接收,则基于第二命令和存储在队列中的第一命令的属性,将第一和第二命令重新排序,并且根据重新排序结果执行第一和第二命令。
附图说明
图1是示出根据本发明的实施例的包括命令管理器的数据存储装置的框图。
图2是示出根据本发明的实施例的图1的命令管理器的配置的框图。
图3是示出根据本发明的实施例的图2的命令管理器的控制单元基于命令的第一属性将接收到的命令输入至第一队列的方法的简图。
图4是示出根据本发明的实施例的图2的命令管理器的重新排序单元设置命令的第二属性的方法的表格。
图5是示出根据本发明的实施例的图1的命令管理器设置命令的第二属性并且基于第二属性将命令从第一队列中移除的方法的简图。
图6是示出根据本发明的实施例的图1的命令管理器设置命令的第二属性并且基于第二属性和备用计数处理命令的方法的简图。
图7是根据本发明的实施例的图1的数据存储装置的操作方法的流程图。
图8是根据本发明的另一个实施例的图1的数据存储装置的操作方法的流程图。
图9是根据本发明的另一个实施例的图1的数据存储装置的操作方法的流程图。
图10是示出根据本发明的实施例的固态驱动器(SSD)的框图。
图11是示出根据本发明的实施例的包括数据存储装置的数据处理系统的框图。
具体实施方式
在下文中,根据本发明的数据存储装置及其操作方法的各个实施例将参照附图来描述。然而,本发明可以不同的形式实施并且不应该被解释为限于本文所述的实施例。而是,这些实施例被提供以详细描述本发明至本发明所属领域内的技术人员可以实施本发明的技术方案的程度。
需要理解的是,本发明的实施例不限于附图中所示的细节,附图不一定按比例绘制,并且,在一些实例中,比例可能已经被放大以更清楚地描述本发明的某些特征。虽然使用了特定的术语,但需要理解的是,所使用的术语只是为了描述特定的实施例,并不是为了限定本发明的范围。
现参照图1,根据本发明的实施例的数据存储装置10被提供。
数据存储装置10可以配置为响应于来自外部装置(未示出)的写入命令CMD,存储从外部装置提供的数据。数据存储装置10也可以配置为响应于来自外部装置的读取命令CMD,将存储的数据提供给外部装置。
数据存储装置10可以通过个人计算机存储卡国际协会(PCMCIA)卡、标准闪存(CF)卡、智能媒体卡、记忆棒、各种多媒体卡(例如,MMC、eMMC、RS-MMC以及微型-MMC)、各种安全数字卡(例如,SD、迷你-SD以及微型-SD)、通用闪速存储器(UFS)、固态驱动器(SSD)等来配置。
数据存储装置10可以包括控制器100和多个非易失性存储器装置200,例如非易失性存储器装置201-204。
控制器100可以控制数据存储装置10的操作。例如,控制器100可以响应于从外部装置接收的写入命令,将数据存储在非易失性存储器装置200中。同样,作为示例,控制器100可以响应于从外部装置接收的读取命令,读取存储在非易失性存储器装置200中的数据并且将读取的数据输出至外部装置。
控制器100可以包括命令处理单元105。命令处理单元105可以从外部装置接收命令CMD,并且通过对非易失性存储器装置200执行命令CMD,控制非易失性存储器装置200。
命令处理单元105可以包括命令管理器150、第一队列110、多个第二队列120以及多个执行单元130。
命令管理器150可以基于命令CMD的第一属性和第一队列110的队列信息管理第一队列110中的命令CMD。例如,命令管理器150可以通过基于第一属性和队列信息从第一队列110中移除命令CMD并且基于命令CMD的地址信息将命令CMD输入至从第二队列120中选择的第二队列来管理命令CMD。
例如,第一属性可以是由外部装置根据优先级的顺序赋予命令CMD的属性。例如,第一属性可以包括“简单的”、“有序的”和“首要的”属性,但是根据实施例,第一属性不限于前述属性。
在实施例中,第一属性可以被分为第一类型和第二类型,其中第一类型可以包括,例如,首要属性和有序属性,而第二类型可以包括,例如,简单属性。第一属性为第一类型的命令可以被处理以对应于由外部装置设置的优先级的顺序。第一属性为第二类型的命令可以在不被顺序限制的情况下,以无序执行被基本上处理。
当将命令CMD输入至第一队列110时,基于接收的命令CMD的第一属性和当时被存储在第一队列110中的那些命令的第一属性,命令管理器150确定接收的命令CMD在存储在第一队列110中的命令中的顺序。即,命令管理器150可以基于存储在第一队列110中的命令的第一属性,执行命令的排序。详细地,命令管理器150可以赋予具有首要属性的命令CMD最早的次序(turn)。命令管理器150可以赋予具有有序属性的命令CMD晚于具有首要属性的命令但早于具有简单属性的命令的次序。命令管理器150可以赋予具有简单属性的命令CMD最晚的次序。命令管理器150可以赋予具有与当前存储在第一队列110中的命令的属性相同的属性的命令CMD晚于当前存储在第一队列110中的命令的次序。
命令管理器150可以管理在当前存储在第一队列110中的命令中具有为第一类型的第一属性的命令的数量(下文称为备用计数CNT),作为第一队列110的队列信息。即,备用计数CNT可以表示,在当前存储在第一队列110中的命令中具有首要属性和有序属性的命令的数量。
命令管理器150可以在命令CMD被存储在第一队列110中的前一刻(immediatelybefore),基于命令CMD的第一属性和备用计数CNT,设置命令CMD的第二属性。命令CMD的第二属性可以包括重新排序属性或者无序属性。当第一属性AT1为第一类型或备用计数CNT大于0时,命令管理器150可以将命令CMD的第二属性AT2设置为重新排序属性。当第一属性AT1为第二类型并且备用计数CNT为0时,命令管理器150可以将第二属性AT2设置为无序属性。
命令管理器150根据在第一队列110中的命令顺序基于命令CMD的第二属性将命令CMD从第一队列110中移除,或者不考虑顺序将命令CMD从第一队列110中移除,然后将移除的命令CMD输入至从第二队列120中选择的第二队列。例如,当命令CMD的第二属性AT2是重新排序属性时,命令管理器150可以禁止将命令CMD从第一队列110中移除直到具有比命令CMD更早次序的命令从第一队列110中被移除。当命令CMD的第二属性AT2是无序属性时,命令管理器150不考虑在第一队列110中的命令CMD的次序将命令CMD从第一队列110中移除。
在实施例中,通过基于命令CMD的第一属性和备用计数CNT设置第二属性(即,通过重新排序),命令管理器150可以将当高优先级命令存在于第一队列110中时输入的低优先级命令迟于高优先级命令传输至第二队列120。因此,这可以引起根据由外部装置赋予命令CMD的优先级的顺序执行命令。
对于本质上由优先级的顺序限制的命令CMD(即,具有简单属性的命令CMD),尽管相应的非易失性存储器装置不处于繁忙的状态,但直到对应于另一个非易失性存储器装置的较早次序的另一个命令被从第一队列110中移除的等待可以延迟操作。为防止这种情况,命令管理器150可以不考虑第一队列110中的顺序,通过重新排序将在高优先级命令不存在于第一队列110中时被输入的具有简单属性的命令CMD传输至第二队列120。必然地,命令管理器150可以有助于抑制处理的延迟并且提高操作性能。
根据实施例,由命令管理器150重新排序的命令可以限于读取命令。写入命令可以在不具有由外部装置特别赋予的第一属性的情况下被处理并且可以在不具有由命令管理器150赋予的第二属性的情况下被处理。例如,写入命令可以被处理为无序属性。在另一个示例中,写入命令可以根据接收的顺序被处理。
根据实施例,命令管理器150可以将命令CMD的第二属性与命令CMD一起存储在第一队列110中,或者与命令CMD分开管理第二属性。
根据实施例,命令管理器150可以基于当前的备用计数CNT,处理当前存储在第一队列110中的命令,而不考虑命令的第二属性,如同命令具有无序属性。例如,如上所述,当目前的备用计数CNT不为“0”时,命令管理器150可以根据命令CMD的第二属性管理命令CMD。当目前的备用计数CNT为“0”时,即使命令CMD的第二属性是重新排序属性,命令管理器150可以处理命令CMD,如同其具有无序属性。为此,例如,当目前的备用计数CNT为“0”时,命令管理器150可以将存储在第一队列110中的命令的第二属性重置为无序属性。
第一队列110可以存储接收的命令。
第二队列120可以存储从第一队列110中移除的命令。第二队列120可以包括多个队列121-124。
在示出的示例中,执行单元130包括四个执行单元131-134。执行单元130中的每一个对应于各自的第二队列121-124并且也对应于各自的非易失性存储器装置201-204。执行单元130中的每一个可以对相应的非易失性存储器装置执行被存储在相应的第二队列中的命令。例如,执行单元131可以对非易失性存储器装置201连续地执行被存储在第二队列121中的命令。
根据控制器100的控制,非易失性存储器装置200可以存储从控制器100传输的数据并且可以读取存储的数据并将读取的数据传输到控制器100。
非易失性存储器装置200中的每个可以是或者包括诸如以下的闪速存储器中的一个:NAND闪存或NOR闪存、铁电随机存取存储器(FeRAM)、相变随机存取存储器(PCRAM)、磁阻随机存取存储器(MRAM)、电阻随机存取存储器(ReRAM)等等。
图2是示出图1中的命令管理器150的示例配置的框图。
参照图2,命令管理器150可以包括重新排序单元151和控制单元152。
当命令CMD在命令管理器150处被接收时,重新排序单元151可以在命令CMD被存储在第一队列110中的前一刻,基于命令CMD的第一属性AT1和备用计数CNT,设置命令CMD的第二属性AT2。重新排序单元151可以接收来自控制单元152的第一属性AT1和备用计数CNT,设置第二属性AT2,并且将其传输至控制单元152。例如,当第一属性AT1为第一类型或者备用计数CNT大于0时,重新排序单元151可以将第二属性AT2设置为重新排序属性。当第一属性AT1为第二类型且备用计数CNT是0时,重新排序单元151可以将第二属性AT2设置为无序属性。
控制单元152可以管理备用计数CNT。即,在当前被存储在第一队列110中的命令中,控制单元152可以管理第一属性AT1为第一类型(即,首要属性或有序属性)的命令的数量。当命令CMD被输入至第一队列110时,如果命令CMD的第一属性AT1为第一类型,控制单元152可以增加备用计数CNT。当命令CMD从第一队列110中被移除时,如果命令CMD的第一属性AT1为第一类型,控制单元152可以减小备用计数CNT。
控制单元152将命令CMD输入至第一队列110,基于命令CMD的第二属性AT2将命令CMD从第一队列110移除,并且将移除的命令CMD传输至第二队列120。当将命令CMD输入至第一队列110时,基于命令CMD的第一属性和当前被存储在第一队列110中的命令的第一属性,控制单元152确定命令CMD在被存储在第一队列110中的命令中的次序。当新输入的命令CMD的第二属性AT2是重新排序属性时,控制单元152可以禁止将新输入的命令CMD从第一队列110移除直到具有比新输入的命令CMD更早次序的命令从第一队列110中被移除。进一步地,当新输入的命令CMD的第二属性AT2是无序属性时,控制单元152不考虑命令CMD在第一队列110中的次序将新输入的命令CMD从第一队列110中移除。
图3是示出图2中的控制单元152基于新输入的命令CMD的第一属性AT1将命令CMD输入至第一队列110的方法的简图。在图3中,命令可以根据基于第一属性AT1赋予的顺序被输入至第一队列110。为了方便描述,新输入的命令CMD具有第二属性AT2并且因此(根据第二属性)被从第一队列110移除的情况未在图3中示出。
在下文中,通过控制单元152对新输入的命令CMD排序的方法将参照图1至图3详细描述。
参照图3,控制单元152基于接收的命令CMD的第一属性AT1和当前被存储在第一队列110中的命令的第一属性AT1确定被接收在第一队列110处的命令CMD的次序并且将命令CMD输入至第一队列110,如下。
在T11时刻,其第一属性AT1是简单属性的读取命令RC11可以被接收。控制单元152将读取命令RC11输入至第一队列110。
在T12时刻,其第一属性AT1是首要属性的读取命令RC12可以被接收。控制单元152以早于读取命令RC11的次序将读取命令RC12输入至第一队列110。
在T13时刻,其第一属性AT1是有序属性的读取命令RC13可以被接收。控制单元152以早于读取命令RC11且晚于读取命令RC12的次序将读取命令RC13输入至第一队列110。
在T14时刻,其第一属性AT1是有序属性的读取命令RC14可以被接收。控制单元152以早于读取命令RC11且晚于读取命令RC13的次序将读取命令RC14输入至第一队列110。
在T15时刻,其第一属性AT1是简单属性的读取命令RC15可以被接收。控制单元152以晚于读取命令RC11的次序将读取命令RC15输入至第一队列110。
在T16时刻,其第一属性AT1是简单属性的读取命令RC16可以被接收。控制单元152以晚于读取命令RC15的次序将读取命令RC16输入至第一队列110。
图4是示出图2的重新排序单元151设置命令CMD的第二属性AT2的方法的表格TBL。
参照图4,当命令CMD在命令管理器150处被接收时,重新排序单元151可以基于命令CMD的第一属性AT1和当前的备用计数CNT设置命令CMD的第二属性AT2。
首先,重新排序单元151可以将命令CMD的第一属性AT1分类为第一类型或者第二类型属性。第一类型属性可以是或者包括首要属性和有序属性中的至少一种,而第二类型可以包括简单属性。
当命令CMD的第一属性AT1为第一类型时,重新排序单元151可以不考虑当前的备用计数CNT将命令CMD的第二属性AT2设置为重新排序属性。如果当前的备用计数CNT为“0”,则当命令CMD的第一属性AT1为第二类型时,重新排序单元151可以将命令CMD的第二属性AT2设置为无序属性。如果当前的备用计数CNT不是“0”,即大于“0”,则当命令CMD的第一属性AT1为第二类型时,重新排序单元151可以将命令CMD的第二属性AT2设置为重新排序属性。
必然地,在实施例中,如果当前的备用计数CNT大于“0”,则可以不考虑第一属性AT1而将命令CMD的第二属性AT2设置为重新排序属性。如果当前的备用计数CNT为“0”,则其第一属性AT1为第一类型的命令CMD的第二属性AT2可以被设置为重新排序属性,并且其第一属性AT1为第二类型的命令CMD的第二属性AT2可以被设置为无序属性。
图5示出图1中的命令管理器150设置命令CMD的第二属性AT2并且基于第二属性AT2将命令CMD从第一队列110移除的方法。
在下文中,命令管理器150的操作方法将参照图1、图2、图4和图5详细描述。
在T21时刻,其第一属性AT1是有序属性的读取命令RC21可以被接收。因为读取命令RC21的第一属性AT1为第一类型,重新排序单元151将读取命令RC21的第二属性AT2设置为重新排序属性。然后,控制单元152将读取命令RC21输入至第一队列110。而且,因为读取命令RC21的第一属性AT1是第一类型,控制单元152将备用计数CNT增加到“1”。
在T22时刻,其第一属性AT1是简单属性的读取命令RC22可以被接收。因为当前的备用计数CNT为“1”,重新排序单元151将读取命令RC22的第二属性AT2设置为重新排序属性。然后,控制单元152以晚于读取命令RC21的次序将读取命令RC22输入至第一队列110。读取命令RC22不被从第一队列110移除直到较早次序的读取命令RC21从第一队列110中被移除。因此,由外部装置赋予读取命令RC21的优先级的顺序被保护。而且,因为读取命令RC22的第一属性AT1为第二类型,控制单元152将备用计数CNT保持在“1”。
在T23时刻,其第一属性AT1是简单属性的读取命令RC23可以被接收。因为当前的备用计数CNT为“1”,重新排序单元151将读取命令RC23的第二属性AT2设置为重新排序属性。控制单元152以晚于读取命令RC22的次序将读取命令RC23输入至第一队列110。读取命令RC23不被从第一队列110移除直到较早次序的读取命令RC21和RC22从第一队列110被移除。而且,因为读取命令RC23的第一属性AT1为第二类型,控制单元152将备用计数CNT保持在“1”。
在T24时刻,控制单元152将读取命令RC21从第一队列110移除并且将移除的读取命令RC21输入至第二队列120的任意一个。读取命令RC21待被输入至的第二队列可以根据读取命令RC21的地址信息被选择。例如,尽管当读取命令RC21待被输入至的第二队列能够接收读取命令RC21时,控制单元152可以处理读取命令RC21,但实施例不限于此。因为其第一属性AT1为第一类型的读取命令RC21已经从第一队列110被移除,控制单元152将备用计数CNT减小至“0”。
在T25时刻,其第一属性AT1是简单属性的读取命令RC24可以被接收。因为当前的备用计数CNT为“0”,重新排序单元151将读取命令RC24的第二属性AT2设置为无序属性。控制单元152以晚于读取命令RC23的次序将读取命令RC24输入至第一队列110。而且,因为读取命令RC24的第一属性AT1为第二类型,控制单元152将备用计数CNT保持在“0”。
在时刻T26,控制单元152先于较早次序的其它读取命令RC22和RC23将具有无序属性的读取命令RC24从第一队列110中移除。读取命令RC24可以从第一队列110中被移除并且根据地址信息被输入至第二队列120中的任意一个。例如,如果对应于读取命令RC24的非易失性存储器装置不处于繁忙的状态而对应于读取命令RC22和RC23的非易失性存储器装置处于繁忙的状态,如上所述,将读取命令RC24早于其它命令RC22和RC23输入至第二队列120可必然地有助于增强操作性能。
图6示出图1的命令管理器150设置命令CMD的第二属性AT2并且基于第二属性AT2和备用计数CNT处理命令CMD的方法。
根据实施例,当目前的备用计数CNT不为“0”时,如参照图5所述,命令管理器150可以根据命令CMD的第二属性AT2处理命令CMD。当目前的备用计数CNT为“0”时,即使命令CMD的第二属性AT2是重新排序属性,命令管理器150可以如同其具有无序属性管理命令CMD。
参照图6,命令管理器150在时刻T31至T35的操作与参照图5所述的命令管理器150在时刻T21至T25的操作大体相同。因此,详细的描述将被省略。
在时刻T36,控制单元152将读取命令RC33从第一队列110中移除并且将移除的读取命令RC33输入至第二队列120中的任意一个。读取命令RC33被输入至的第二队列可以根据读取命令RC33的地址信息被选择。即,尽管读取命令RC33的第二属性AT2是重新排序属性,但因为当前的备用计数CNT为“0”,读取命令RC33可以先于较早次序的读取命令RC32从第一队列110中被移除。例如,如果对应于读取命令RC33的非易失性存储器装置不处于繁忙的状态而对应于读取命令RC32和RC34的非易失性存储器装置处于繁忙的状态,如上所述,将读取命令RC33先于其它命令RC32和RC34输入至第二队列120可以有助于增强操作性能。
在T36时刻,其第二属性AT2是无序属性的读取命令RC34当然可以先于较早次序的命令RC32和RC33从第一队列110中被移除。
图7是示出图1的数据存储装置10的操作方法的示例的流程图。在图7中,命令管理器150可以基于接收的命令CMD的第一属性AT1和备用计数CNT设置第二属性AT2并且可以将命令CMD输入至第一队列110。
在下文中,数据存储装置10的操作方法将参照图1、图2、图4和图7详细地描述。
在步骤S110中,命令管理器150的重新排序单元151确定命令CMD的第一属性AT1是否为第一类型。当第一属性AT1不是第一类型时,即当第一属性AT1是第二类型时,进程移动到步骤S120。当第一属性AT1是第一类型时,进程移动到步骤S130。
在步骤S120中,重新排序单元151在命令CMD被存储在第一队列110中的前一刻确定备用计数CNT是否为“0”。当备用计数CNT不为“0”时,即当其大于“0”时,进程移动到步骤S130。当备用计数CNT为“0”时,进程移动到步骤S140。
在步骤S130中,重新排序单元151将命令CMD的第二属性AT2设置为重新排序属性。
在步骤S140中,重新排序单元151将命令CMD的第二属性AT2设置为无序属性。
在步骤S150中,控制单元152将命令CMD输入至第一队列110。控制单元152基于接收的命令CMD的第一属性AT1和当前存储在第一队列110中的命令的第一属性AT1,确定命令CMD在第一队列110中的次序并且将命令CMD输入至第一队列110。
在步骤S160中,控制单元152确定命令CMD的第一属性AT1是否为第一类型。当第一属性AT1为第一类型时,进程移动到步骤S170。当第一属性AT1不是第一类型时,即当第一属性AT1是第二类型时,进程可以结束。
在步骤S170中,控制单元152增加备用计数CNT。
图8是示出图1的数据存储装置10的操作方法的另一个示例的流程图。在图8中,命令管理器150基于命令CMD的第二属性AT2和命令CMD在第一队列110中的次序,将存储在第一队列110中的命令CMD从第一队列110移除。
在下文中,数据存储装置10的操作方法将参照图1、图2和图8详细地描述。
在步骤S210中,控制单元152确定存储在第一队列110中的命令CMD的第二属性AT2是否为重新排序属性。当第二属性AT2是重新排序属性时,进程移动到步骤S220。当第二属性AT2不是重新排序属性时,即当其是无序属性时,进程移动到步骤S240。
在步骤S220中,控制单元152确定具有比命令CMD的次序更早次序的命令是否不存在于第一队列110中。当存在比命令CMD的次序更早次序的命令时,进程移动到步骤S230。当不存在比命令CMD的次序更早次序的命令时,进程移动到步骤S240。
在步骤S230中,控制单元152禁止将命令CMD从第一队列110中移除。然后,进程移动到步骤S220。即,只要在第一队列110中存在具有比接收的命令CMD的次序更早次序的命令,控制单元152可以禁止将接收的命令CMD从第一队列110中移除。
在步骤S240中,控制单元152将命令CMD从第一队列110中移除并且将移除的命令CMD输入至第二队列120的任意一个。控制单元152可以根据命令CMD的地址信息选择第二队列120的任意一个。
在步骤S250中,控制单元152确定命令CMD的第一属性AT1是否为第一类型。当第一属性AT1为第一类型时,进程移动到步骤S260。当第一属性AT1不为第一类型时,即当第一属性AT1为第二类型时,进程可以结束。
在步骤S260中,控制单元152减小备用计数CNT。
图9是示出图1的数据存储装置10的操作方法的另一个示例的流程图。在图9中,命令管理器150可以基于命令CMD的当前的备用计数CNT、其第二属性AT2及其在第一队列110中的次序,处理存储在第一队列110中的命令CMD。即,相比于图8,当当前的备用计数CNT为“0”时,命令管理器150将命令CMD从第一队列110中移除,而不考虑命令CMD的第二属性AT2,如同命令CMD具有无序属性。
在下文中,命令管理器150的操作方法将参照图1、图2和图9详细地描述。
在步骤S310中,控制单元152确定当前的备用计数CNT是否大于“0”。当当前的备用计数CNT大于“0”时,进程移动到步骤S320。当当前的备用计数CNT为“0”时,进程移动到步骤S350。
步骤S320至步骤S370可以与图8的步骤S210至步骤S260大体相同的方式被执行。因此,详细的描述将被省略。
图10示出根据本发明的实施例的固态驱动器(SSD)1000。
参照图10,SSD 1000可以包括控制器1100和存储介质1200。
控制器1100可以控制主机装置1500和存储介质1200之间的数据交换。控制器1100可以包括处理器1110、随机存取存储器(RAM)1120、只读存储器(ROM)1130、错误校正码(ECC)单元1140、主机接口1150以及存储介质接口1160。
处理器1110可以控制控制器1100的操作。处理器1110可以根据来自主机装置1500的数据处理请求,将数据存储在存储介质1200中并且从存储介质1200中读取存储的数据。为了高效地管理存储介质1200,处理器1110可以控制SSD 1000的内部操作,诸如,例如合并操作、损耗平衡操作等等。
处理器1110可以包括图1的命令处理单元105。
RAM 1120可以存储待被处理器1110使用的程序和程序数据。RAM 1120可以在将从主机接口1150接收的数据转移到存储介质1200之前,临时存储它们,并且可以在将从存储介质1200接收的数据转移到主机装置1500之前,临时存储它们。
ROM 1130可以存储待被处理器1110读取的程序代码。程序代码可以包括待被处理器1110处理以用于处理器1110控制控制器1100的内部单元的命令。
ECC单元1140可以编码待被存储在存储介质1200中的数据,并且可以解码从存储介质1200中读取的数据。ECC单元1140可以根据ECC算法检测并校正数据中出现的错误。
主机接口1150可以与主机装置1500交换数据处理请求、数据等。
存储介质接口1160可以将控制信号和数据传输至存储介质1200。存储介质接口1160可以从存储介质1200接收数据。存储介质接口1160可以通过多个通道CH0至CHn与存储介质1200联接。
存储介质1200可以包括多个非易失性存储器装置NVM0至NVMn。多个非易失性存储器装置NVM0至NVMn的每一个可以根据控制器1100的控制执行写入操作和读取操作。
图11是示出根据本发明的实施例的数据处理系统2000的框图。
数据处理系统2000可以是或者包括计算机、笔记本电脑、上网本、智能电话、数字电视(TV)、数码相机、导航仪等等。数据处理系统2000可以包括主处理器2100、主存储器装置2200、数据存储装置2300以及输入/输出装置2400。数据处理系统2000的内部单元可以通过系统总线2500来交换数据、控制信号等。
主处理器2100可以控制数据处理系统2000的操作。例如。主处理器2100可以是诸如微型处理器的中央处理单元。主处理器2100可以在主存储器装置2200上执行操作系统的软件、应用、装置驱动程序等。
主存储器装置2200可以存储待被主处理器2100使用的程序和程序数据。主存储器装置2200可以暂时存储将被传输到数据存储装置2300和输入/输出装置2400的数据。
数据存储装置2300可以包括控制器2310和存储介质2320。数据存储装置2300可以与图1所示的数据存储装置10大体相似的方式配置并操作。
输入/输出装置2400可以是或者包括键盘、扫描器、触摸屏、屏幕监视器、打印机、鼠标等中的至少一个,其能够与用户交换数据,诸如从用户接收用于控制数据处理系统2000的命令或者向用户提供处理结果。
根据实施例,数据处理系统2000可以通过诸如局域网(LAN)、广域网(WAN)、无线网等的网络2600与至少一个服务器2700通信。数据处理系统2000可以包括网络接口(未示出)以访问网络2600。
同样应当注意的是,在某些情况下,如对本领域技术人员将显而易见的,结合一个实施例描述的特征或元件可以被单独使用或与另一个实施例的其它特征或元件结合使用,除非另有特别说明。
尽管各个实施例已经在上文被描述,但本领域技术人员将理解的是,所描述的实施例仅为示例。因此,在本文中描述的数据存储装置及其操作方法不应限于所述的实施例。在不脱离如权利要求所限定的本发明的精神和/或范围的情况下,很多其它实施例和/或其变型可以被本领域技术人员设想到。

Claims (20)

1.一种数据存储装置,其包括:
多个非易失性存储器装置;以及
控制器,其适于接收命令并且对所述多个非易失性存储器装置执行所述命令,
其中所述控制器包括:
第一队列,其适于存储所述命令;以及
命令管理器,其适于基于所述命令的第一属性和所述第一队列的队列信息,管理所述第一队列中的所述命令。
2.根据权利要求1所述的数据存储装置,其进一步包括:
多个第二队列,其分别对应于所述非易失性存储器装置,
其中所述命令管理器通过基于所述第一属性和所述队列信息将所述命令从所述第一队列中移除以及基于所述命令的地址信息将所述命令输入至从所述第二队列中选择的任意一个来管理所述命令。
3.根据权利要求2所述的数据存储装置,其进一步包括:
多个执行单元,其分别对应于所述多个第二队列,并且其分别对应于所述非易失性存储器装置,
其中所述多个执行单元的每一个对相应的非易失性存储器装置执行被存储在相应的第二队列中的命令。
4.根据权利要求1所述的数据存储装置,其中所述命令管理器基于所述第一属性和存储在所述第一队列中的命令的第一属性,确定所述命令在被存储在所述第一队列中的命令中的次序。
5.根据权利要求1所述的数据存储装置,其中所述命令管理器包括:
重新排序单元,其适于在所述命令被存储在所述第一队列中的前一刻,基于所述第一属性和所述队列信息,设置所述命令的第二属性;以及
控制单元,其适于基于所述第二属性,将所述命令输入至所述第一队列并且将所述命令从所述第一队列中移除。
6.根据权利要求5所述的数据存储装置,其中所述控制单元管理计数作为所述队列信息,所述计数是在存储在所述第一队列中的命令中其每个的第一属性是第一类型的命令的数量。
7.根据权利要求6所述的数据存储装置,其中所述重新排序单元当所述第一属性为所述第一类型或者所述计数大于0时,将所述第二属性设置为重新排序属性,并且当所述第一属性是第二类型并且所述计数为0时,将所述第二属性设置为无序属性。
8.根据权利要求5所述的数据存储装置,其中当所述第二属性是重新排序属性时,所述控制单元禁止将所述命令从所述第一队列中移除直到具有比所述命令更早次序的命令从所述第一队列中被移除。
9.根据权利要求5所述的数据存储装置,其中当所述第二属性是无序属性时,所述控制单元不考虑所述命令在所述第一队列中的次序,将所述命令从所述第一队列中移除。
10.根据权利要求5所述的数据存储装置,其中所述控制单元不考虑所述第二属性,基于所述队列信息将所述命令从所述第一队列中移除。
11.一种数据存储装置的操作方法,其包括:
接收命令;以及
基于所述命令的第一属性和第一队列的队列信息,管理在所述第一队列中的所述命令。
12.根据权利要求11所述的操作方法,其中管理所述命令包括:
基于所述第一属性和所述队列信息,将所述命令从所述第一队列移除;以及
基于所述命令的地址信息,将所述命令输入至从多个第二队列中选择的任意一个。
13.根据权利要求12所述的操作方法,其进一步包括:
对分别对应于所述第二队列的多个非易失性存储器装置并行地执行存储在所述第二队列中的命令。
14.根据权利要求11所述的操作方法,其中管理所述命令包括基于所述第一属性和存储在所述第一队列中的命令的第一属性,确定所述命令在存储在所述第一队列中的命令中的次序。
15.根据权利要求11所述的操作方法,其中管理所述命令包括:
在所述命令被存储在所述第一队列中的前一刻,基于所述第一属性和所述队列信息,设置所述命令的第二属性;以及
基于所述第二属性,将所述命令从所述第一队列中移除。
16.根据权利要求15所述的操作方法,其中所述队列信息包括计数,其是在存储在所述第一队列中的命令中其每个的第一属性是第一类型的命令的数量。
17.根据权利要求16所述的操作方法,其中设置所述第二属性包括:
当所述第一属性为第一类型或者所述计数大于0时,将所述第二属性设置为重新排序属性;以及
当所述第一属性为第二类型并且所述计数为0时,将所述第二属性设置为无序属性。
18.根据权利要求15所述的操作方法,其中移除所述命令包括:
当所述第二属性是重新排序属性时,禁止将所述命令从所述第一队列中移除直到具有比所述命令更早次序的命令从所述第一队列中被移除。
19.根据权利要求15所述的操作方法,其中移除所述命令包括:
当所述第二属性是无序属性时,不考虑所述命令在所述第一队列中的次序,将所述命令从所述第一队列中移除。
20.一种数据存储装置,其包括:
多个非易失性存储器装置;以及
控制器,其适于:
接收用于所述多个非易失性存储器装置的第一命令并且将所述第一命令存储在队列中;
当第二命令被接收时,基于所述第二命令和存储在所述队列中的所述第一命令的属性,将所述第一命令和所述第二命令重新排序,并且根据重新排序的结果,执行所述第一命令和所述第二命令。
CN201610864059.4A 2016-03-25 2016-09-29 数据存储装置及其操作方法 Active CN107229581B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020160036154A KR102526104B1 (ko) 2016-03-25 2016-03-25 데이터 저장 장치 및 그것의 동작 방법
KR10-2016-0036154 2016-03-25

Publications (2)

Publication Number Publication Date
CN107229581A true CN107229581A (zh) 2017-10-03
CN107229581B CN107229581B (zh) 2022-01-04

Family

ID=59898639

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610864059.4A Active CN107229581B (zh) 2016-03-25 2016-09-29 数据存储装置及其操作方法

Country Status (3)

Country Link
US (1) US10324622B2 (zh)
KR (1) KR102526104B1 (zh)
CN (1) CN107229581B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110196736A (zh) * 2018-02-26 2019-09-03 爱思开海力士有限公司 电子设备及其操作方法
CN113495682A (zh) * 2020-03-20 2021-10-12 西部数据技术公司 用于对装置管理配置请求进行列队的系统和方法
CN116529710A (zh) * 2020-12-01 2023-08-01 美光科技公司 用于主机接口的队列配置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10228880B2 (en) * 2016-09-06 2019-03-12 HGST Netherlands B.V. Position-aware primary command queue management

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101000609A (zh) * 2006-01-12 2007-07-18 鸿富锦精密工业(深圳)有限公司 虚拟机系统及利用该系统执行指令的方法
CN101082891A (zh) * 2007-05-10 2007-12-05 忆正存储技术(深圳)有限公司 并行闪存控制器
CN101149714A (zh) * 2006-09-18 2008-03-26 国际商业机器公司 用于执行直接存储器存取的方法和系统
CN101498994A (zh) * 2009-02-16 2009-08-05 华中科技大学 一种固态硬盘控制器
CN101571810A (zh) * 2009-05-31 2009-11-04 清华大学 执行程序的方法、验证程序结果的方法、装置及系统
CN102203752A (zh) * 2008-07-29 2011-09-28 Vl有限公司 具有多个队列之间的仲裁的数据处理电路
CN104346223A (zh) * 2013-07-31 2015-02-11 想象力科技有限公司 基于类型的优先化指令
US20150095605A1 (en) * 2013-10-02 2015-04-02 Advanced Micro Devices, Inc. Latency-Aware Memory Control

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101135313B1 (ko) 2010-04-23 2012-04-17 성균관대학교산학협력단 요청 동작을 스케줄링하는 낸드 플래시 메모리 장치 및 방법

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101000609A (zh) * 2006-01-12 2007-07-18 鸿富锦精密工业(深圳)有限公司 虚拟机系统及利用该系统执行指令的方法
CN101149714A (zh) * 2006-09-18 2008-03-26 国际商业机器公司 用于执行直接存储器存取的方法和系统
CN101082891A (zh) * 2007-05-10 2007-12-05 忆正存储技术(深圳)有限公司 并行闪存控制器
CN102203752A (zh) * 2008-07-29 2011-09-28 Vl有限公司 具有多个队列之间的仲裁的数据处理电路
CN101498994A (zh) * 2009-02-16 2009-08-05 华中科技大学 一种固态硬盘控制器
CN101571810A (zh) * 2009-05-31 2009-11-04 清华大学 执行程序的方法、验证程序结果的方法、装置及系统
CN104346223A (zh) * 2013-07-31 2015-02-11 想象力科技有限公司 基于类型的优先化指令
US20150095605A1 (en) * 2013-10-02 2015-04-02 Advanced Micro Devices, Inc. Latency-Aware Memory Control

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110196736A (zh) * 2018-02-26 2019-09-03 爱思开海力士有限公司 电子设备及其操作方法
CN113495682A (zh) * 2020-03-20 2021-10-12 西部数据技术公司 用于对装置管理配置请求进行列队的系统和方法
CN116529710A (zh) * 2020-12-01 2023-08-01 美光科技公司 用于主机接口的队列配置

Also Published As

Publication number Publication date
US20170277434A1 (en) 2017-09-28
KR20170111199A (ko) 2017-10-12
US10324622B2 (en) 2019-06-18
KR102526104B1 (ko) 2023-04-27
CN107229581B (zh) 2022-01-04

Similar Documents

Publication Publication Date Title
US10540115B2 (en) Controller adaptation to memory program suspend-resume
CN108628777B (zh) 动态和自适应中断合并的系统和方法
CN110447009B (zh) 用于自适应命令获取聚合的系统和方法
CN110088723B (zh) 用于对提交队列和完成队列进行处理并且做出仲裁的系统和方法
CN110088725B (zh) 用于对提交队列和完成队列进行处理并做出仲裁的系统和方法
TWI703494B (zh) 記憶體系統及非揮發性記憶體之控制方法
KR102395477B1 (ko) 호스트 메모리에 대한 메모리 액세스를 스케쥴링하는 장치 컨트롤러, 및 이를 포함하는 저장 장치
CN107229581A (zh) 数据存储装置及其操作方法
US10642500B2 (en) Methods, systems and computer readable media for intelligent fetching of data storage device commands from submission queues
JP2018169810A (ja) メモリシステムおよび制御方法
CN110032332A (zh) 存储设备和包括存储设备的电子设备
CN105683953B (zh) 支持加速数据库操作的数据存储设备
TW201248405A (en) Selective data storage in LSB and MSB pages
US11662952B2 (en) Memory system and method of controlling nonvolatile memory and for reducing a buffer size
KR20160068108A (ko) 반도체 메모리 장치를 포함하는 메모리 시스템 및 그것의 관리 방법
KR20120105294A (ko) 불휘발성 메모리를 제어하는 메모리 컨트롤러
CN107678976A (zh) 数据存储装置及其操作方法
CN105718213B (zh) 改进在低队列深度工作负载中的混合随机性能的方法
KR102349381B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US20200026472A1 (en) Memory system with parity cache scheme and method of operating such memory system
CN104813270A (zh) 从主机至存储设备的对所删除的数据的提示
CN107507638A (zh) 数据存储装置及其操作方法
CN110489056A (zh) 控制器以及包括该控制器的存储器系统
CN108351836A (zh) 具有选择性储存的多级非易失性缓存
US10019158B2 (en) Determination of a read voltage to be applied to a page based on read voltages of other pages

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