CN106874081B - 在nand闪速控制器中根据优先级对解码任务进行排队 - Google Patents

在nand闪速控制器中根据优先级对解码任务进行排队 Download PDF

Info

Publication number
CN106874081B
CN106874081B CN201611132290.0A CN201611132290A CN106874081B CN 106874081 B CN106874081 B CN 106874081B CN 201611132290 A CN201611132290 A CN 201611132290A CN 106874081 B CN106874081 B CN 106874081B
Authority
CN
China
Prior art keywords
task
tasks
priority
decoding
queue
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
Application number
CN201611132290.0A
Other languages
English (en)
Other versions
CN106874081A (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.)
Marvell Asia Pte Ltd
Original Assignee
Marvell Asia Pte Ltd
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 Marvell Asia Pte Ltd filed Critical Marvell Asia Pte Ltd
Publication of CN106874081A publication Critical patent/CN106874081A/zh
Application granted granted Critical
Publication of CN106874081B publication Critical patent/CN106874081B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/1016Error in accessing a memory location, i.e. addressing error
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Retry When Errors Occur (AREA)

Abstract

根据NAND闪速控制器中的优先级的解码任务的排队。一种用于在NAND5闪速存储器控制器中执行解码任务的装置包括:用于对第一优先级的解码任务进行排队的第一任务队列;用于对高于第一优先级的第二优先级的解码任务进行排队的第二任务队列;在接收到多个解码任务的数据部分时,根据解码任务的优先级,从第一和第二任务队列释放相应的解码任务以对数据的相应部分进行操作。第一和第二解码器在速度或复杂度不同的第一和第二解码方案下操作。输入切换电路可控制地将每个数据通道连接到第一或第二解码器。解码器完成控制电路在从第一或第二解码器接收到解码器完成信号时选择第一或第二解码器的输出。根据优先级,已完成的解码任务在第一和第二任务完成队列中排队。

Description

在NAND闪速控制器中根据优先级对解码任务进行排队
相关申请的交叉引用
本文要求2015年12月11日提交的未决的共同转让的美国临时专利申请号61/266,193的权益,其全部内容通过引用合并于此。
技术领域
本公开的主题的实现通常属于用于在NAND闪速控制器中将解码任务根据其优先级指派给不同队列的方法和装置,包括适用于针对不同优先级的任务的不同解码器。
背景技术
本文提供的背景技术描述是出于一般地呈现本公开的上下文的目的。本发明人的工作在该背景技术部分中描述工作的程度上以及在提交时可能没有以其他方式限定为现有技术的描述的各方面,既不明示地不暗示地被承认是抵触本公开的现有技术。
多电平单元(MLC)NAND闪速存储器正变得普及,因为每单位数据存储的成本相对于单电平单元(SLC)NAND闪速存储器储器的成本减小。然而,因为多于一比特的信息被存储在每个单元中,所以MLC NAND闪速存储器还经历比SLC NAND闪速存储器更高的原始误比特率。
为了满足可靠性要求,与在SLC NAND闪速存储器设备中相比,可以在MLC NAND闪速存储器设备中使用更高级的纠错方案。然而,诸如读取重试解码和软判定解码的高级纠错方案的复杂性可以增加NAND闪速存储器数据存取操作的时延。对于不同的应用,数据存取时延的影响将不同。例如,诸如主机数据读取的一些关键操作可能需要相对低的存储器存取时延,而诸如一些后台操作(例如,用于垃圾收集的数据存取)的其他操作可能对时延的程度较不敏感。
发明内容
一种用于在NAND闪速存储器控制器中执行解码任务的装置,所述装置包括:用于对第一优先级的解码任务进行排队的第一任务队列;用于对高于所述第一优先级的第二优先级的解码任务进行排队的第二任务队列;以及控制电路,所述控制电路在接收到用于多个解码任务的数据部分时,从所述第一任务队列和所述第二任务队列中释放所述多个解码任务中的相应解码任务,以根据所述多个解码任务中的相应解码任务的优先级来对所述数据部分中的相应部分进行操作。
在这种装置中,其中,NAND闪速存储器控制器包括多个存储器通道,该装置可以进一步包括用于所述多个通道中的每个相应通道的相应第一任务队列、以及用于所述多个通道中的每个相应通道的相应第二任务队列。至少一个第一解码器在第一纠错码解码方案下进行操作,并且至少一个第二解码器在第二纠错码解码方案下进行操作,该第二纠错码解码方案在速度和复杂度中的一个或二者方面不同于第一纠错码解码方案。输入切换电路可控制地将每个数据通道连接到第一解码器和第二解码器中的一个。控制电路包括针对每个相应通道的相应通道任务控制块,以用于从针对该相应通道的相应第一任务队列和第二任务队列中释放解码任务,以控制所述输入切换电路将用于相应通道的相应数据引导到第一解码器和第二解码器中的一个。
在这样的实现中,至少一个第一解码器包括多个第一解码器,至少一个第二解码器包括多个第二解码器,并且输入切换电路包括针对每个相应通道的相应解复用器,用于将所述相应通道上的数据可选择地引导到多个第一解码器和多个第二解码器中的一个;第一开关,用于将针对多个第一解码器的解复用器输出引导到多个第一解码器中的可用第一解码器;以及第二开关,用于将针对多个第二解码器的解复用器的输出引导到多个第二解码器中的可用解码器。
这样的实现还可以进一步包括针对每个相应通道的相应缓冲器,用于保持在该相应通道上接收的数据,直至与该数据相对应的解码任务从第一任务队列和第二任务队列中的一个释放。
这样的实现可以进一步包括输出切换电路,该输出切换电路用于输出第一解码器和第二解码器中的一个的输出。在这种实现中,控制电路包括解码器完成控制电路,该解码器完成控制电路在从第一解码器和第二解码器中的一个接收到解码器完成信号时,选择第一解码器和第二解码器中的一个的输出。这样的实现可以进一步包括用于对第一优先级的已完成的解码任务进行排队的第一任务完成队列,以及用于对所述第二优先级的已完成的解码任务进行排队的第二任务完成队列,其中解码器完成控制电路将每个已完成的解码任务加载到第一任务完成队列和第二任务完成队列中的一个中,并且控制电路进一步包括解码器完成状态控制电路,该解码器完成状态控制电路根据已完成的解码任务的优先级报告来自第一任务完成队列和第二任务完成队列中的已完成的解码任务。
这样的装置可以进一步包括缓冲器,用于保持从NAND闪速存储器接收的数据,直至与数据相对应的解码任务从所述第一任务队列和所述第二任务队列中的一个中被释放。
这样的装置可以进一步包括用于对第一优先级的已完成的解码任务进行排队的第一任务完成队列;以及用于对第二优先级的已完成的解码任务进行排队的第二任务完成队列,其中控制电路根据所述已完成的解码任务的优先级来报告来自所述第一任务完成队列和所述第二任务完成队列中的已完成的解码任务。
一种用于在NAND闪速存储器控制器中执行解码任务的方法,可以包括:在第一任务队列中对第一优先级的解码任务进行排队;在第二任务队列中对高于所述第一优先级的第二优先级的解码任务进行排队;以及在接收到用于多个解码任务的数据部分时,从第一任务队列和第二任务队列中释放所述多个解码任务中的相应解码任务,以根据多个解码任务中的相应解码任务的优先级来对数据部分中的相应部分进行操作。
在这种方法的一个实现中,其中在NAND闪速存储器控制器包括多个存储器通道时,对第一优先级的解码任务进行排队可以包括:针对多个通道中的每个相应通道来在相应第一任务队列中对解码任务进行排队;以及对第二优先级的解码任务进行排队可以包括:针对多个通道中的每个相应通道来在相应第二任务队列中对解码任务进行排队。该方法可以进一步包括将每个数据通道可控制地连接到第一解码器和第二解码器中的一个,第一解码器在第一纠错码解码方案下进行操作,第二解码器在第二纠错码解码方案下进行操作,第二纠错码解码方案在速度和复杂度中的一个或二者方面不同于第一纠错码解码方案。
在这样的实现中,可控制地连接包括:将每个数据通道可控制地连接到多个第一解码器和多个第二解码器中的一个,多个第一解码器在第一纠错码解码方案下进行操作,多个第二解码器在第二纠错码解码方案下进行操作。
这样的实现可以进一步包括:针对每个相应通道,将在相应通道上接收的数据保持在缓冲器中,直至与数据相对应的解码任务从第一任务队列和第二任务队列中释放。
这样的实现还可以进一步包括:在第一任务完成队列中对第一优先级的已完成的解码任务进行排队;以及在第二任务完成队列中对第二优先级的已完成的解码任务进行排队;以及根据已完成的解码任务的优先级来报告来自所述第一任务完成队列和所述第二任务完成队列的完成的解码任务。
这样的方法还可以进一步包括将从NAND闪速存储器接收的数据保持在缓冲器中,直至与数据相对应的解码任务从第一任务队列和第二任务队列中的一个中被释放。
这种方法的实现可以进一步包括:在第一任务完成队列中对第一优先级的完成的解码任务进行排队,在第二任务完成队列中对第二优先级的完成的解码任务进行排队,以及根据已完成的解码任务的优先级来报告来自第一任务完成队列和第二任务完成队列中的已完成的解码任务。
在这样的实现中,根据已完成的解码任务的优先级报告来自第一任务完成队列和第二任务完成队列中的已完成的解码任务包括:在报告第一优先级的任何已完成的解码任务之前,报告第二优先级的所有已完成的解码任务。该实现可以进一步包括在第一任务完成队列中的已完成的解码任务的排队之后的预定持续时间之后,将已完成的解码任务的优先级水平从第一优先级改变为第二优先级。
在这样的实现中,根据已完成的解码任务的优先级来报告第一任务完成队列和第二任务完成队列中的已完成的解码任务可以包括:在报告来自所述第二任务完成队列中的预定数目的任务之后,报告来自第一任务完成队列的任务。
在这样的方法的实现中,从第一任务队列和第二任务队列中释放所述多个解码任务中的相应解码任务,以根据在所述多个解码任务中的相应解码任务的优先级来对数据部分中的相应部分进行操作可以包括:在释放所述第一优先级的任何解码任务之前,释放第二优先级的所有解码任务。
这样的实现可以进一步包括在所述第一任务队列中的解码任务的排队之后的预定持续时间之后,将解码任务的优先级水平从第一优先级改变为所述第二优先级。
在这样的方法中,从第一任务队列和第二任务队列中释放多个解码任务中的相应解码任务,以根据在多个解码任务中的相应解码任务的优先级来对数据部分中的相应部分进行操作可以包括:在来自第二任务队列中的预定数目的任务的释放之后,释放来自所述第一任务队列的任务。
附图说明
在结合附图考虑以下详细描述之后,本公开的其他特征、其性质和各种优点将是显而易见的,在附图中,相同的附图标记在全文中表示相同的部件,并且其中:
图1示出可以使用本公开的实现的NAND闪速存储器控制器的框图;
图2示出根据可以在NAND闪速控制器中使用的本公开的主题的实现的纠错码解码器的结构的框图;
图3是根据本公开的主题的实现的过程的流程图,通过其可以填充图2的解码器中的针对每个数据通道的解码任务队列;
图4是示出根据本公开的主题的实现的过程的流程图,用于从正常优先级任务队列或高优先级任务队列中的一个选择用于执行的任务;
图5是示出根据本公开的主题的实现的用于在正常优先级解码任务和高优先级解码任务之间选择规则集合的操作的流程图;以及
图6是示出根据本公开的主题的实现的用于报告解码任务的完成的过程的流程图。
具体实施方式
如上所述,MLC NAND闪速存储器可能经历比SLC NAND闪速存储器更高的原始误比特率。因此,为了满足可靠性要求,与在SLC NAND闪速存储器设备中相比,更多高级纠错方案可以在MLC NAND闪速存储器设备中使用。然而,诸如读取重试解码和软判定解码的高级纠错方案的复杂性可以增加NAND闪速存储器数据存取操作的时延。
因为如上所述的数据存取时延的影响对于不同应用而不同,所以根据本公开的实现,可以不同地处理不同优先级的存储器存取操作。另外,可以在使用更复杂且耗时的解码方案以及使用更简单和更快速的解码方案之间实现折衷,更复杂且耗时的解码方案更可能在第一尝试就成功,更简单和更快速的解码方案可能偶然失败且需要多于一次的尝试。
总而言之,即使可能发生需要重试操作的偶然故障,也可以通过对大多数存储器存取操作使用更简单和更快速的解码方案,同时对更高优先级的解码任务使用更复杂和耗时的解码方案,来最大化总体吞吐量。
此外,在“插队”特征下,即使较高优先级解码任务稍后启动,也可以在正常优先级解码任务之前执行较高优先级解码任务。
可以参考图1-6来理解本公开的主题的实现。
图1示出了在一个或多个NAND闪速存储器设备101和主机设备102之间的NAND闪速存储器控制器100。NAND闪速控制器100包括“编程”或写入路径110以及读取路径120,来自主机设备102的数据可以沿写入路径110被写入到NAND闪速存储器设备101,并且通过主机设备102沿读取路径120可以从NAND闪速存储器设备101读取数据。写入路径110包括将以主机格式接收数据的主机接口111、用于将由主机接口111以主机格式接收的数据转换成由NAND闪速存储器设备101使用的格式的编码器112、以及用于将编码数据传送到NAND闪速存储器设备101的NAND闪速存储器接口113。类似地,读取路径120包括以NAND闪速存储器设备101使用的格式从NAND闪速存储器设备101接收数据的NAND闪速接口121、用于将NAND闪速存储器接口121以NAND闪速存储器设备101使用的格式接收的数据转换成由主机设备102使用的格式的解码器122、以及用于将解码的数据传送到主机设备102的主机接口123。可以是微处理器的处理器130控制写入路径110和读取路径120的各种组件。
编码器112和解码器122是互补的,即,编码器112和解码器122使用相同方案的互补版本来对数据进行编码和解码,使得从主机设备102接收并且由编码器112编码以存储在NAND闪速存储器设备101上的数据可以在从NAND闪速存储器设备101读回之后由解码器122来解码。通常并且在本文论述的实现中,这样的编码/解码方案是纠错码(ECC),使得即使在写入或读取过程中的错误之后也可以重建数据。
图2示出了根据本公开的ECC解码器122的实现200的细节。ECC解码器200包括第一多个n解码器电路201和第二多个m解码器电路电路202。解码器电路201中的每一个可以实现比由解码器电路202中的每一个实现的纠错解码方案相对更简单和更快速的纠错解码方案,而解码器电路202中的每一个可以实现比由解码器电路201中的每一个实现的纠错解码方案相对更复杂和耗时的纠错解码方案。通常,与实现相对更复杂和耗时的纠错解码方案的解码器电路202相比,可能存在更多的实现相对更简单和更快速的纠错解码方案的解码器电路201——即,通常可以预期n>m,但是可以存在m>n的实现。相对更简单和更快速的纠错解码方案可以被称为“水平1”,而相对更复杂和耗时的纠错解码方案可以被称为“水平2”。
在如下所述的处理器130的控制下,通过开关电路204将在通道203上从NAND闪速接口121接收的数据引导到解码器电路201或解码器电路202。类似地,来自解码器电路201或解码器电路202的解码数据在208处通过n:1复用器205、m:1复用器206和2:1复用器207被传送到主机接口123,如下面进一步讨论的。
处理器130经由解码任务控制块210来如上所述控制开关电路204,解码任务控制块210包括解码任务开始部分220和解码任务完成部分230。
解码任务控制块210的解码任务开始部分220包括用于每个数据通道203的解码任务队列221、222的相应对。在每对解码任务队列221、222内,一个解码任务队列(例如,解码任务队列221)是正常优先级任务队列,而另一解码任务队列(例如,解码任务队列222)是高优先级任务队列。解码器开始控制223根据解码任务211如基于例如任务ID字段确定的被应用于的数据通道203,将来自处理器130的进入解码任务211分发到适当的解码任务队列对221、222。每对解码任务队列221、222馈送相应的通道任务控制块224。每个通道任务控制块224将任务(至少包括任务ID和关于优先级的数据)传递到水平1解码器开关控制块225和水平2解码器开关控制块226,并且还控制数据进入解复用器227,以能够将进入数据在通道203上路由到水平1解码器开关228或水平2解码器开关229。
处理器130经由NAND闪速接口121向NAND闪速存储器设备101发送与每个解码任务211相对应的读取请求。每个读取请求具有与其对应的解码任务211相同的任务ID。当NAND闪速接口121从NAND闪速存储器设备101返回相应的数据时,在231处通过NAND闪速接口121向通道任务控制块224发送解码数据就绪信号,通过任务ID识别返回的数据。
拥有由所接收的任务ID标识的任务的通道任务控制块224中的一个(即,与数据已经在其上被返回的通道203中的一个相关联的通道任务控制块224中的一个)将从与通道2103中的一个相关联的队列221或222(根据任务的优先级)选择所识别的任务。然后,通道任务控制块224中的一个将任务传递到水平1解码器开关控制块225或水平2解码器开关控制块226,以激活水平1解码器开关228或水平2解码器开关229,来根据任务的优先级将来自进入通道203的要被解码的数据分别路由到n个水平1解码器电路201或m个水平2解码器电路202中可用的一个。同时,通道任务控制块224中的一个还将激活在适当通道203上的数据进入解复用器227中的一个,以将数据路由到水平1解码器开关228或水平2解码器开关229中的一个。
在数据被路由到n个水平1解码器电路201或m个水平2解码器电路202中的一个之后,数据将由n个水平1解码器电路201或m水平2解码器电路202中的一个适当地解码。在解码完成之后,视情况而定,水平1解码器电路201或水平2解码器电路202将向解码任务控制块210的解码任务完成部分230发送完成信号。完成信号将由解码器完成控制块232接收,这将使得复用器205(在n个水平1解码器电路201中的一个的情况下)或复用器206(在m个水平2解码器电路202中的一个的情况下)选择解码器电路201或202中的正确的一个,并且还将使得复用器207(在n个水平1解码器电路201中的一个的情况下)选择复用器205,或者复用器206(在m个水平2解码器电路202中的一个的情况下),以用于在208处输出到主机接口123。
除了在208处控制复用器205、206、207以选择正确的输出之外,解码任务控制块210的解码任务完成部分230还在解码任务完成时通知处理器130。例如,对于任何已完成的任务,解码器完成控制块232可以根据已完成的任务的优先级将已完成的任务的任务ID输出到正常优先级完成状态队列233或高优先级完成状态队列234。在236处,解码器完成状态控制块235将完成指示从正常优先级完成状态队列233和高优先级完成状态队列234发送到处理器130。
与高优先级任务相关的高优先级完成队列234中的任何已完成指示可以在正常优先级完成状态队列233中的任何完成指示之前被发送。替代地,可以以某些预定顺序从正常优先级完成状态队列233和高优先级完成状态队列234中两者提取完成指示。例如,即使其他完成指示保持在高优先级完成状态队列234中,在从高优先级完成状态队列234提取了特定数目的完成指示之后,也可以从正常优先级完成状态队列233中提取一个完成指示。作为另一替代,与高优先级任务相关的高优先级完成状态队列234中的任何完成指示可以在正常优先级完成状态队列233中的任何完成指示之前被发送,除非完成指示已经驻留在正常优先级完成状态队列233达长于预定持续时间(其可以被认为将该完成指示的优先级改变为“高”)。
返回考虑解码任务控制块210的解码任务开始部分220,由通道任务控制块224中的一个从其相应的低优先级任务队列221和高优先级任务队列222中选择任务可能比从正常优先级完成状态队列233和高优先级权完成状态队列234选择完成指示更复杂,因为如上所述,不论其状态如何,解码任务都无法被选择,直至与已经从NAND闪速存储器设备101返回任务相关联的数据。在美国专利9,092,156中描述了一种用于在NAND闪速存储器储器控制器中处理具有不同优先级的数据存取的方案,其全部内容通过引用合并于此。然而,可以使用其他方案来优先数据的读取。
当已经读取并返回数据时,NAND闪速接口121可以包括用于指示与数据相关联的优先级水平。如果多于一个的解码任务仍然要被处理,则指示优先级的信号将在选择解码任务中使用,其中与在正常优先级任务队列221中的正常优先级解码任务相比,优选选择在高优先级任务队列222中的较高优先级解码任务。
选择的一部分涉及将数据路由到正确的解码器。如果正在执行的解码任务使用水平1解码器,则它将以指派的优先级被发送到水平1解码器开关控制块225;否则它将被发送到水平2解码器开关控制块226。水平1解码器开关控制块225和水平2解码器开关控制块226可以被认为是仲裁块。例如,指派给水平1解码器开关控制块225和水平2解码器开关控制块226中的每一个的任务可以根据加权循环仲裁来分配。
如上所述,每个水平1解码器201可以实现相对更简单和更快速的解码方案,而每个水平2解码器202可以实现相对更复杂和耗时的解码方案。作为一般情况,水平1解码方案可以用于正常优先级任务,而水平2解码方案可以用于更高优先级的任务。然而,在一些实现中,可以存在水平1解码方案用于较高优先级任务的情况,正如可以存在水平2解码方案用于正常优先级任务的情况。
例如,如果任务具有较高优先级,因为它是使用水平1解码方案的用于失败的正常优先级任务的读取重试任务,则读取重试尝试可以再次使用水平1解码方案,而不管其较高的优先级。作为另一示例,如果任务具有正常优先级,并且不存在可用的水平1解码器,但是存在未使用的水平2解码器,则可以使用水平2解码器,而不管该任务的正常优先级。一个这样的示例可以涉及不是时延关键的数据,诸如垃圾收集任务,其中水平1解码失败;对第二次尝试使用较慢的水平2解码将使得水平1解码器可用于时延关键的数据。可以存在水平1解码方案用于较高优先级任务或水平2解码方案用于正常优先级任务的其他情况。
ECC解码器200的操作可以更好地参考图3-5中的流程图来理解。
图3是示出根据实施例的过程300的实现的流程图,通过该过程300用于每个数据通道203的解码任务队列221、222被填充。针对所讨论的通道的新的解码任务在301处被接收。在302处,确定在301处接收的任务是否是高优先级任务。如果在301处接收的任务在302处被确定为高优先级任务,则在303处,将任务置于针对该通道的高优先级任务队列222中。然而,如果在302处确定所接收的任务不是高优先级任务,则在304处,将该任务置于针对该通道的正常优先级任务队列221中。在305处,确定是否存在针对该通道的任何其他解码任务。如果在305处确定了不存在针对该通道的其他解码任务,则过程300结束。但是如果在305处确定存在针对该通道的其他解码任务,则过程300返回到301以接收新的解码任务。
图4是示出用于从正常优先级任务队列221或高优先级任务队列222中的一个选择用于执行的任务的过程400的实现的流程图。在401处,从NAND闪速存储器设备101接收NAND数据就绪信号(例如,在通道203中的一个上)指示数据已经被返回(例如,响应于请求)。在402处,确定已经返回的数据是否属于高优先级任务(如上所述,任务ID可以与数据一起返回)。如果是,则在403处,从相应通道203的高优先级任务队列222释放相关联的任务。否则,如果在402处确定已经返回的数据不属于高优先级任务,则在404处,从相应通道203的正常优先级任务队列221释放相关联的任务。
如上所述,解码器的选择不是必须由任务的优先级来确定。虽然大多数高优先级任务将是水平2解码器任务,并且大多数正常优先级任务将是水平1解码器任务,但是可能存在例外。因此,一旦已经释放了要执行的任务,在405处确定该任务是否是水平1解码任务。如果是,则在406处将任务引导到水平1解码器(经由适当的通道任务控制块和适当的解码器开关控制块),并且过程400结束。否则,如果在405处确定了任务不是水平1解码任务,则在407处将任务引导到水平2解码器,并且过程400结束。
从队列221、222释放任务的实际顺序可以根据预定规则来控制。因此,如果数据被返回,但是与具有比另一任务低的优先级的任务(即,正常优先级任务)相关联,则数据可以被保存在缓冲器(未示出)中直至任务准备被执行,针对另一任务已经返回了数据。
根据一个可能的规则集合,高优先级任务将始终优先于正常优先级任务。根据规则集合的变体,正常优先级队列中的过多停留时间(超过预定限制)使得任务被移动到高优先级队列中。根据另一可能的规则集合,对所执行的每p个高优先级任务执行一个正常优先级任务,这使得在正常优先级队列中的过多停留时间不太可能。可以使用这些规则集的组合,其中对于所执行的每p个高优先级任务执行一个正常优先级任务,但是在正常优先级队列中的过多停留时间(这应该是罕见的)使得任务从正常优先级队列被移动到高优先级队列。可以开发其他规则集合。
图5中示出了一个可能的这种规则集合的示例500。在501处,确定已经执行的高优先级任务的数目(从上次重置计数器开始)是否超过阈值。如果不是,则在502处确定是否存在任何高优先级任务在高优先级任务队列中等待。如果是,则在503处选择高优先级任务并将其发送到适当的解码器(例如,参见图4),其中所选择的任务在504处执行。如果在502处确定了不存在高优先级任务在高优先级任务队列中等待,或在501处确定了已经执行的高优先级任务的数目(从上次重置计数器开始)没有超过阈值,则在505处确定是否存在任何正常优先级任务在正常优先级任务队列中等待。如果是,则在506处选择正常优先级任务并将其发送到适当的解码器(例如,参见图4),其中在504处执行所选择的任务。
在504处已经执行了所选择的任务之后(无论其是高优先级任务还是正常优先级任务),在507处,结果被发送到完成状态队列233、234以用于例如如图6所示进行报告。在已经报告结果之后或者如果在505处确定了不存在正常优先级任务在正常优先级任务队列中等待,则在508处确定是否存在任何任务要被执行。如果是,则流程返回到501。如果在508处确定了没有任何任务要执行,则过程500结束。
图6是示出用于报告解码任务的完成的一个可能过程600的实现的流程图。在601处,确定是否存在任何未报告的已完成的高优先级解码任务(例如,在高优先级完成状态队列234中)。如果是,则在602处报告下一个已完成的高优先级任务的通知,并且流程返回到601以寻找更多未被报告的已完成的解码任务。如果在601处确定了不存在未报告的已完成的高优先级解码任务,则在603处确定是否存在任何未报告的已完成的正常优先级解码任务(例如,在正常优先级完成状态队列233中)。如果是,则在604处报告下一个已完成的正常优先级任务的通知,并且流程返回到601以寻找更多未报告的已完成的高优先级解码任务。如果在603处确定了不存在未报告的已完成的正常优先级解码任务,则过程600结束。然而,应当注意,类似于上述用于从队列221、222释放任务的各种可能的规则集合的其他报告规则集合也可以应用于任务完成的报告。
因此,可以看出,提供了解码装置和相应的方法,其中可以通过即使可能发生需要重试操作的偶然的失败也对大多数存储器存取操作使用更简单和更快的解码方案,同时对较高优先级的解码任务使用更复杂和耗时的解码方案,来最大化总体吞吐量。还可以看出,在“插队”特征下,较高优先级解码任务可以在正常优先级解码任务之前被执行,即使较高优先级解码任务稍晚启动,但是如上所述,如果正常优先级任务由于稍晚到达的较高优先级任务而必须等待过长,则正常优先级任务本身也可以提高其优先级。
本发明的其他方面涉及下述条款中的一个或多个:
条款1:一种用于在NAND闪速存储器控制器中执行解码任务的装置,所述装置包括:
用于对第一优先级的解码任务进行排队的第一任务队列;
用于对高于第一优先级的第二优先级的解码任务进行排队的第二任务队列;以及
控制电路,该控制电路在接收到用于多个解码任务的数据部分时,从第一任务队列和所述第二任务队列中释放所述多个解码任务中的相应解码任务,以根据多个解码任务中的相应解码任务的优先级来对数据部分中的相应部分进行操。
条款2:根据条款1所述的装置,其中,NAND闪速存储器控制器包括多个存储器通道,并且其中,所述装置进一步包括:
针对多个通道中的每个相应通道的相应第一任务队列、以及针对多个通道中的每个相应通道的相应第二任务队列;
至少一个第一解码器,在第一纠错码解码方案下进行操作;
至少一个第二解码器,在第二纠错码解码方案下进行操作,第二纠错码解码方案在速度和复杂度中的一个或二者方面不同于第一纠错码解码方案;以及
输入切换电路,可控制地将每个数据通道连接到所述第一解码器和所述第二解码器中的一个;
其中,控制电路包括针对每个相应通道的相应通道任务控制块,以用于从针对该相应通道的相应第一任务队列和第二任务队列中释放解码任务,以控制输入切换电路将针对相应通道的相应数据引导到第一解码器和第二解码器中的一个。
条款3:根据条款2所述的装置,其中:至少一个第一解码器包括多个第一解码器;
至少一个第二解码器包括多个第二解码器;以及
输入切换电路包括:
针对每个相应通道的相应解复用器,用于将相应通道上的数据可选择地引导到多个第一解码器和多个第二解码器中的一个,
第一开关,用于将针对多个第一解码器的解复用器输出引导到多个第一解码器中的可用第一解码器,以及
第二开关,用于将针对所述多个第二解码器的解复用器的输出引导到所述多个第二解码器中的可用第二解码器。
条款4:根据条款2所述的装置,进一步包括:针对每个相应通道的相应缓冲器,用于保持在该相应通道上接收的数据,直至与所述数据相对应的解码任务从所述第一任务队列和第二任务队列中的一个释放。
条款5:根据条款2所述的装置,进一步包括:输出切换电路,该输出切换电路用于输出第一解码器和第二解码器中的一个的输出;其中:
控制电路包括解码器完成控制电路,解码器完成控制电路在从所述第一解码器和所述第二解码器中的一个接收到解码器完成信号时,选择所述第一解码器和所述第二解码器中的一个的输出。
条款6:根据条款5所述的装置,进一步包括:
用于对第一优先级的已完成的解码任务进行排队的第一任务完成队列;以及
用于对第二优先级的已完成的解码任务进行排队的第二任务完成队列;其中:
解码器完成控制电路将每个已完成的解码任务加载到第一任务完成队列和第二任务完成队列中的一个中;并且
控制电路进一步包括解码器完成状态控制电路,该解码器完成状态控制电路根据已完成的解码任务的优先级报告来自第一任务完成队列和第二任务完成队列中的已完成的解码任务。
条款7:根据条款1所述的装置,进一步包括:缓冲器,该缓冲器用于保持从NAND闪速存储器接收的数据,直至与数据相对应的解码任务从第一任务队列和第二任务队列中的一个中被释放。
条款8:根据条款1所述的装置,进一步包括:
用于对第一优先级的已完成的解码任务进行排队的第一任务完成队列;以及
用于对第二优先级的已完成的解码任务进行排队的第二任务完成队列;其中:
所述控制电路根据所述已完成的解码任务的优先级来报告来自第一任务完成队列和第二任务完成队列中的已完成的解码任务。
条款9:一种用于在NAND闪速存储器控制器中执行解码任务的方法,所述方法包括:
在第一任务队列中对第一优先级的解码任务进行排队;
在第二任务队列中对高于所述第一优先级的第二优先级的解码任务进行排队;以及
在接收到用于多个解码任务的数据部分时,从第一任务队列和第二任务队列中释放所述多个解码任务中的相应解码任务,以根据多个解码任务中的相应解码任务的优先级来对所述数据部分中的相应部分进行操作。
条款10:根据条款9所述的方法,其中,NAND闪速存储器控制器包括多个存储器通道,并且其中:
对第一优先级的解码任务进行排队包括:针对所述多个通道中的每个相应通道来在相应第一任务队列中对解码任务进行排队;以及
对第二优先级的解码任务进行排队包括:针对所述多个通道中的每个相应通道来在相应第二任务队列中对解码任务进行排队;所述方法进一步包括:
将每个数据通道可控制地连接到第一解码器和第二解码器中的一个,第一解码器在第一纠错码解码方案下进行操作,第二解码器在第二纠错码解码方案下进行操作,第二纠错码解码方案在速度和复杂度中的一个或二者方面不同于第一纠错码解码方案。
条款11:根据条款10所述的方法,其中,可控制地连接包括:将每个数据通道可控制地连接到多个第一解码器和多个第二解码器中的一个,多个第一解码器在所述第一纠错码解码方案下进行操作,多个第二解码器在所述第二纠错码解码方案下进行操作。
条款12:根据条款10的方法,进一步包括:针对每个相应通道,将在所述相应通道上接收的数据保持在缓冲器中,直至与所述数据相对应的解码任务从所述第一任务队列和第二任务队列中释放。
条款13:根据条款10所述的方法,进一步包括:
在第一任务完成队列中对所述第一优先级的已完成的解码任务进行排队;以及
在第二任务完成队列中对第二优先级的已完成的解码任务进行排队;以及
根据所述已完成的解码任务的优先级来报告来自所述第一任务完成队列和所述第二任务完成队列的已完成的解码任务。
条款14:根据条款9所述的方法,进一步包括将从NAND闪速存储器接收的数据保持在缓冲器中,直至与所述数据相对应的解码任务从所述第一任务队列和所述第二任务队列中的一个中被释放。
条款15:根据条款9所述的方法,进一步包括:
在第一任务完成队列中对第一优先级的已完成的解码任务进行排队;以及
在第二任务完成队列中对第二优先级的已完成的解码任务进行排队;以及
根据已完成的解码任务的优先级来报告来自第一任务完成队列和第二任务完成队列中的已完成的解码任务。
条款16:根据条款15所述的方法,其中,根据已完成的解码任务的优先级报告来自所述第一任务完成队列和所述第二任务完成队列中的已完成的解码任务包括:在报告所述第一优先级的任何已完成的解码任务之前,报告所述第二优先级的所有已完成的解码任务。
条款17:进一步包括:在第一任务完成队列中的已完成的解码任务的排队之后的预定持续时间之后,将已完成的解码任务的优先级水平从第一优先级改变为所述第二优先级。
条款18:根据条款15所述的方法,其中,根据已完成的解码任务的优先级来报告来自第一任务完成队列和第二任务完成队列中的已完成的解码任务包括:在报告来自第二任务完成队列中的预定数目的任务之后,报告来自第一任务完成队列的任务。
条款19:根据条款9所述的方法,其中,从第一任务队列和第二任务队列中释放多个解码任务中的相应解码任务,以根据在多个解码任务中的相应解码任务的优先级来对数据部分中的相应部分进行操作包括:在释放第一优先级的任何解码任务之前,释放第二优先级的所有解码任务。
条款20:根据条款19所述的方法,进一步包括:在对第一任务队列中的解码任务的进行排队之后的预定持续时间之后,将解码任务的优先级水平从第一优先级改变为所述第二优先级。
条款21:根据条款9所述的方法,其中,从第一任务队列和第二任务队列中释放多个解码任务中的相应解码任务,以根据在多个解码任务中的相应解码任务的优先级来对数据部分中的相应部分进行操作包括:在释放来自第二任务队列中的预定数目的任务之后,释放来自所述第一任务队列的任务。
如本文和所附权利要求书中所使用的,结构“A和B中的一个”将意指“A或B”。
应当理解,前述仅是说明本发明的原理,并且本发明可以通过除了所描述的实施例之外的其他实施例来实践,所述实施例是为了说明而不是限制的目的而呈现的,并且本发明仅由所附权利要求限定。

Claims (18)

1.一种用于在NAND闪速存储器控制器中执行解码任务的装置,其中,所述NAND闪速存储器控制器包括多个存储器通道,所述装置包括:
用于所述多个存储器通道中的每个相应通道的相应第一任务队列,用于对第一优先级的解码任务进行排队;
用于所述多个存储器通道中的每个相应通道的相应第二任务队列,用于对高于所述第一优先级的第二优先级的解码任务进行排队;
至少一个第一解码器,所述至少一个第一解码器在第一纠错码解码方案下进行操作;
至少一个第二解码器,所述至少一个第二解码器在第二纠错码解码方案下进行操作,所述第二纠错码解码方案在速度和复杂度中的一个或二个方面不同于所述第一纠错码解码方案;
输入切换电路,所述输入切换电路可控制地将每个数据通道连接到所述第一解码器和所述第二解码器中的一个;以及
控制电路,所述控制电路包括针对每个相应通道的相应通道任务控制块,用于从针对所述相应通道的所述相应第一任务队列和所述相应第二任务队列中释放解码任务,以控制所述输入切换电路将用于所述相应通道的相应数据引导到所述第一解码器和所述第二解码器中的一个,其中:所述控制电路在接收到用于多个解码任务的数据部分时,从相应所述第一任务队列和所述第二任务队列中释放所述多个解码任务中的相应解码任务,以根据所述多个解码任务中的所述相应解码任务的优先级来对所述数据部分中的相应部分进行操作。
2.根据权利要求1所述的装置,其中:
所述至少一个第一解码器包括多个第一解码器;
所述至少一个第二解码器包括多个第二解码器;以及
所述输入切换电路包括:
针对每个相应通道的相应解复用器,用于将所述相应通道上的数据可选择地引导到所述多个第一解码器和所述多个第二解码器中的一个,
第一开关,所述第一开关用于将针对所述多个第一解码器的解复用器输出引导到所述多个第一解码器中可用的第一解码器,以及
第二开关,所述第二开关用于将针对所述多个第二解码器的解复用器的输出引导到所述多个第二解码器中可用的第二解码器。
3.根据权利要求1所述的装置,进一步包括:针对每个相应通道的相应缓冲器,用于保持在所述相应通道上接收到的数据,直至与所述数据相对应的解码任务从所述相应第一任务队列和相应第二任务队列中的一个任务队列释放。
4.根据权利要求1所述的装置,进一步包括:输出切换电路,所述输出切换电路用于输出所述第一解码器和所述第二解码器中的一个解码器的输出;其中:
所述控制电路包括解码器完成控制电路,所述解码器完成控制电路在从所述第一解码器和所述第二解码器中的所述一个解码器接收到解码器完成信号时,选择所述第一解码器和所述第二解码器中的所述一个解码器的输出。
5.根据权利要求4所述的装置,进一步包括:
第一任务完成队列,用于对所述第一优先级的已完成的解码任务进行排队;以及
第二任务完成队列,用于对所述第二优先级的已完成的解码任务进行排队;其中:
所述解码器完成控制电路将每个已完成的解码任务加载到所述第一任务完成队列和所述第二任务完成队列中的一个任务完成队列中;并且
所述控制电路进一步包括解码器完成状态控制电路,所述解码器完成状态控制电路根据所述已完成的解码任务的优先级来报告来自所述第一任务完成队列和所述第二任务完成队列的已完成的解码任务。
6.根据权利要求1所述的装置,进一步包括:缓冲器,所述缓冲器用于保持从NAND闪速存储器接收到的数据,直至与所述数据相对应的解码任务从所述相应第一任务队列和所述相应第二任务队列中的一个任务队列中被释放。
7.根据权利要求1所述的装置,进一步包括:
第一任务完成队列,用于对所述第一优先级的已完成的解码任务进行排队;以及
第二任务完成队列,用于对所述第二优先级的已完成的解码任务进行排队;其中:
所述控制电路根据所述已完成的解码任务的优先级,报告来自所述第一任务完成队列和所述第二任务完成队列的已完成的解码任务。
8.一种用于在NAND闪速存储器控制器中执行解码任务的方法,所述NAND闪速存储器控制器包括多个存储器通道,所述方法包括:
针对所述多个存储器通道中的每个相应通道来在相应第一任务队列中对第一优先级的解码任务进行排队;
针对所述多个存储器通道中的每个相应通道来在相应第二任务队列中对高于所述第一优先级的第二优先级的解码任务进行排队;
将每个数据通道可控制地连接到第一解码器和第二解码器中的一个,所述第一解码器在第一纠错码解码方案下进行操作,所述第二解码器在第二纠错码解码方案下进行操作,所述第二纠错码解码方案在速度和复杂度中的一个或两个方面不同于所述第一纠错码解码方案;以及
在接收到用于多个解码任务的数据部分时,从相应所述第一任务队列和所述第二任务队列中释放所述多个解码任务中的相应解码任务,以根据所述多个解码任务中的所述相应解码任务的优先级来对所述数据部分中的相应部分进行操作。
9.根据权利要求8所述的方法,其中,所述可控制地连接包括:将每个数据通道可控制地连接到多个第一解码器和多个第二解码器中的一个,所述多个第一解码器在所述第一纠错码解码方案下进行操作,所述多个第二解码器在所述第二纠错码解码方案下进行操作的。
10.根据权利要求8所述的方法,进一步包括:针对每个相应通道,将在所述相应通道上接收到的数据保持在缓冲器中,直至与所述数据相对应的解码任务从所述相应第一任务队列和相应第二任务队列中的一个任务队列释放。
11.根据权利要求8所述的方法,进一步包括将从NAND闪速存储器接收到的数据保持在缓冲器中,直至与所述数据相对应的解码任务从所述相应第一任务队列和所述相应第二任务队列中的一个任务队列中被释放。
12.根据权利要求8所述的方法,进一步包括:
在第一任务完成队列中对所述第一优先级的已完成的解码任务进行排队;以及
在第二任务完成队列中对所述第二优先级的已完成的解码任务进行排队;以及
根据所述已完成的解码任务的优先级,报告来自所述第一任务完成队列和所述第二任务完成队列的已完成的解码任务。
13.根据权利要求12所述的方法,其中,根据所述已完成的解码任务的优先级报告来自所述第一任务完成队列和所述第二任务完成队列的已完成的解码任务包括:在报告所述第一优先级的任何已完成的解码任务之前,报告所述第二优先级的所有已完成的解码任务。
14.根据权利要求13所述的方法,进一步包括:在对所述第一任务完成队列中的所述已完成的解码任务的进行排队之后的预定持续时间之后,将已完成的解码任务的优先级水平从所述第一优先级改变为所述第二优先级。
15.根据权利要求12所述的方法,其中,根据所述已完成的解码任务的优先级报告来自所述第一任务完成队列和所述第二任务完成队列的已完成的解码任务包括:在报告来自所述第二任务完成队列中的预定数目的任务之后,报告来自所述第一任务完成队列的任务。
16.根据权利要求8所述的方法,其中,从相应所述第一任务队列和所述第二任务队列中释放所述多个解码任务中的相应解码任务以根据在所述多个解码任务中的所述相应解码任务的优先级来对所述数据部分中的相应部分进行操作包括:在释放所述第一优先级的任何解码任务之前,释放所述第二优先级的所有解码任务。
17.根据权利要求16所述的方法,进一步包括:在所述第一任务队列中的所述解码任务的排队之后的预定持续时间之后,将解码任务的优先级水平从所述第一优先级改变为所述第二优先级。
18.根据权利要求8所述的方法,其中,从相应所述第一任务队列和所述第二任务队列中释放所述多个解码任务中的相应解码任务以根据在所述多个解码任务中的所述相应解码任务的优先级来对所述数据部分中的相应部分进行操作包括:在释放来自所述相应第二任务队列中的预定数目的任务之后,释放来自所述相应第一任务队列的任务。
CN201611132290.0A 2015-12-11 2016-12-09 在nand闪速控制器中根据优先级对解码任务进行排队 Active CN106874081B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201562266193P 2015-12-11 2015-12-11
US62/266,193 2015-12-11

Publications (2)

Publication Number Publication Date
CN106874081A CN106874081A (zh) 2017-06-20
CN106874081B true CN106874081B (zh) 2022-07-22

Family

ID=59020757

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611132290.0A Active CN106874081B (zh) 2015-12-11 2016-12-09 在nand闪速控制器中根据优先级对解码任务进行排队

Country Status (4)

Country Link
US (1) US10089175B2 (zh)
KR (1) KR20170074759A (zh)
CN (1) CN106874081B (zh)
TW (1) TWI713648B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7048289B2 (ja) * 2017-12-08 2022-04-05 キオクシア株式会社 情報処理装置および方法
US10747613B2 (en) * 2018-09-07 2020-08-18 Toshiba Memory Corporation Pooled frontline ECC decoders in memory systems
US11204829B2 (en) * 2019-03-26 2021-12-21 Innogrit Technologies Co., Ltd. Systems and methods for an ECC architecture with prioritized task queues
US11556274B1 (en) 2021-09-01 2023-01-17 Western Digital Technologies, Inc. Endurance groups ECC allocation
US11640267B2 (en) 2021-09-09 2023-05-02 Western Digital Technologies, Inc. Method and system for maintenance allocation between NVM groups

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6072543A (en) * 1996-04-19 2000-06-06 Samsung Electronics Co., Ltd. Priority order processing circuit and method for an MPEG system
CN101149714A (zh) * 2006-09-18 2008-03-26 国际商业机器公司 用于执行直接存储器存取的方法和系统
US20110213945A1 (en) * 2010-02-26 2011-09-01 Apple Inc. Data partitioning scheme for non-volatile memories
CN102203752A (zh) * 2008-07-29 2011-09-28 Vl有限公司 具有多个队列之间的仲裁的数据处理电路
CN102480337A (zh) * 2010-11-30 2012-05-30 国际商业机器公司 无线电软件系统以及用于其的解码装置和方法
CN104850456A (zh) * 2015-05-27 2015-08-19 苏州科达科技股份有限公司 多进程解码方法和系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5822772A (en) * 1996-03-22 1998-10-13 Industrial Technology Research Institute Memory controller and method of memory access sequence recordering that eliminates page miss and row miss penalties
US7010654B2 (en) * 2003-07-24 2006-03-07 International Business Machines Corporation Methods and systems for re-ordering commands to access memory
US7299324B2 (en) * 2003-11-05 2007-11-20 Denali Software, Inc. Reactive placement controller for interfacing with banked memory storage
US8548061B2 (en) * 2008-08-05 2013-10-01 Panasonic Corporation Image decoding apparatus and image decoding method
US9141468B2 (en) * 2011-12-12 2015-09-22 Cleversafe, Inc. Managing memory utilization in a distributed storage and task network
US20130263147A1 (en) * 2012-03-29 2013-10-03 Lsi Corporation Systems and Methods for Speculative Read Based Data Processing Priority
US9092156B1 (en) 2013-05-30 2015-07-28 Marvell International Ltd. Methods and apparatus for managing storage device commands
US9857974B2 (en) * 2013-10-03 2018-01-02 International Business Machines Corporation Session execution decision
US9727275B2 (en) * 2014-12-02 2017-08-08 International Business Machines Corporation Coordinating storage of data in dispersed storage networks

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6072543A (en) * 1996-04-19 2000-06-06 Samsung Electronics Co., Ltd. Priority order processing circuit and method for an MPEG system
CN101149714A (zh) * 2006-09-18 2008-03-26 国际商业机器公司 用于执行直接存储器存取的方法和系统
CN102203752A (zh) * 2008-07-29 2011-09-28 Vl有限公司 具有多个队列之间的仲裁的数据处理电路
US20110213945A1 (en) * 2010-02-26 2011-09-01 Apple Inc. Data partitioning scheme for non-volatile memories
CN102480337A (zh) * 2010-11-30 2012-05-30 国际商业机器公司 无线电软件系统以及用于其的解码装置和方法
CN104850456A (zh) * 2015-05-27 2015-08-19 苏州科达科技股份有限公司 多进程解码方法和系统

Also Published As

Publication number Publication date
KR20170074759A (ko) 2017-06-30
US20170168895A1 (en) 2017-06-15
US10089175B2 (en) 2018-10-02
CN106874081A (zh) 2017-06-20
TWI713648B (zh) 2020-12-21
TW201729200A (zh) 2017-08-16

Similar Documents

Publication Publication Date Title
CN106874081B (zh) 在nand闪速控制器中根据优先级对解码任务进行排队
US11467769B2 (en) Managed fetching and execution of commands from submission queues
CN111081308B (zh) 用于混合非易失性存储系统的系统和方法
US20150067291A1 (en) Controller, memory system, and method
JP5186382B2 (ja) メモリ・システム内で不確定な読み取りデータ待ち時間を可能にする方法及びシステム
CN103403681A (zh) 描述符调度器
US8635386B2 (en) Communication control device, data communication method and program
US10826526B2 (en) Memory system and information processing system
CN106469126B (zh) 处理io请求的方法及其存储控制器
US20150261444A1 (en) Memory system and information processing device
US20220083266A1 (en) Plane-based queue configuration for aipr-enabled drives
JP2013137713A (ja) メモリコントローラ、メモリシステムおよびメモリ書込み方法
CN113138801B (zh) 命令分发装置、方法、芯片、计算机设备及存储介质
US20170160952A1 (en) Memory controller, memory system, and information processing system
CN104166629B (zh) 具有有效的软信息接口的nand闪存存储系统
JP2007108950A (ja) I/o処理装置及び方法
US20230030672A1 (en) Die-based high and low priority error queues
US11204829B2 (en) Systems and methods for an ECC architecture with prioritized task queues
US20100325373A1 (en) Duplexing Apparatus and Duplexing Control Method
CN114780215A (zh) 一种任务调度方法、装置、设备及存储介质
CN114153764B (zh) 进行动态资源管理的方法、记忆装置及记忆装置的控制器
CN109271108B (zh) 一种存储器控制装置及数据存储设备
CN110764710A (zh) 低延迟高iops的数据访问方法与存储系统
TWI646546B (zh) 資料儲存裝置以及記憶體讀取方法
CN109783021A (zh) 数据存储系统及数据存储、读取方法、装置、电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
CB03 Change of inventor or designer information

Inventor after: Fu Bo

Inventor after: Xu Wei

Inventor after: Huang Zhengguo

Inventor after: Gao Yaolong

Inventor before: Fu Bo

Inventor before: Xu Wei

Inventor before: Huang Zhengguo

Inventor before: Gao Yaolong

CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Fu Bo

Inventor after: Xu Wei

Inventor after: Huang Zhengguo

Inventor after: Gao Yaolong

Inventor before: Fu Bo

Inventor before: Xu Wei

Inventor before: Huang Zhengguo

Inventor before: Gao Yaolong

CB03 Change of inventor or designer information
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20200426

Address after: Singapore City

Applicant after: Marvell Asia Pte. Ltd.

Address before: Ford street, Grand Cayman, Cayman Islands

Applicant before: Kaiwei international Co.

Effective date of registration: 20200426

Address after: Ford street, Grand Cayman, Cayman Islands

Applicant after: Kaiwei international Co.

Address before: Hamilton, Bermuda

Applicant before: Marvell International Ltd.

Effective date of registration: 20200426

Address after: Hamilton, Bermuda

Applicant after: Marvell International Ltd.

Address before: Babado J San Mega Le

Applicant before: MARVELL WORLD TRADE Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant