TWI713648B - Queuing of decoding tasks according to priority in nand flash controller - Google Patents

Queuing of decoding tasks according to priority in nand flash controller Download PDF

Info

Publication number
TWI713648B
TWI713648B TW105140915A TW105140915A TWI713648B TW I713648 B TWI713648 B TW I713648B TW 105140915 A TW105140915 A TW 105140915A TW 105140915 A TW105140915 A TW 105140915A TW I713648 B TWI713648 B TW I713648B
Authority
TW
Taiwan
Prior art keywords
task
decoding
queue
decoder
tasks
Prior art date
Application number
TW105140915A
Other languages
Chinese (zh)
Other versions
TW201729200A (en
Inventor
付博
許偉
黃政國
高耀龍
Original Assignee
巴貝多商馬維爾國際貿易有限公司
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 巴貝多商馬維爾國際貿易有限公司 filed Critical 巴貝多商馬維爾國際貿易有限公司
Publication of TW201729200A publication Critical patent/TW201729200A/en
Application granted granted Critical
Publication of TWI713648B publication Critical patent/TWI713648B/en

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, 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/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
    • 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
    • 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

Abstract

Apparatus, for performing decoding tasks in a NAND5 Flash memory controller, includes a first task queue for queuing decoding tasks of a first priority, a second task queue for queuing decoding tasks of a second priority higher than the first priority, and control circuitry that, on receipt of portions of data for a plurality of decoding tasks, releases, from the first and second task queues, respective decoding tasks to operate on respective portions of data, according to priorities of the decoding tasks.

Description

在NAND閃速控制器中根據優先順序對解碼任務進行排隊 Queue the decoding tasks in the NAND flash controller according to the priority order 【相關申請的交叉引用】[Cross references to related applications]

本文要求2015年12月11日提交的未決的共同轉讓的美國臨時專利申請號61/266,193的權益,其全部內容通過引用合併於此。 This document claims the rights and interests of the pending co-assigned U.S. Provisional Patent Application No. 61/266,193 filed on December 11, 2015, the entire contents of which are incorporated herein by reference.

本公開的主題的實現通常屬於用於在NAND閃速控制器中將解碼任務根據其優先順序指派給不同佇列的方法和裝置,包括適用於針對不同優先順序的任務的不同解碼器。 The implementation of the subject matter of the present disclosure generally belongs to a method and apparatus for assigning decoding tasks to different queues according to their priority order in a NAND flash controller, including different decoders suitable for tasks with different priority orders.

本文提供的背景技術描述是出於一般地呈現本公開的上下文的目的。本發明人的工作在該背景技術部分中描述工作的程度上以及在提交時可能沒有以其他方式限定為現有技術的描述的各方面,既不明示地不暗示地被承認是抵觸本公開的現有技術。 The background description provided herein is for the purpose of generally presenting the context of the disclosure. The inventor’s work may not be otherwise limited to the various aspects of the description of the prior art to the extent that the work is described in the background art section and at the time of submission, it is neither expressly nor implicitly admitted to contradict the prior art of the present disclosure. technology.

多電平單元(MLC)NAND閃速記憶體正變得普及,因為每單位資料存儲的成本相對于單電平單元(SLC)NAND閃速記憶體儲器的成本減小。然而,因為多於一比特的資訊被存儲在每個單元中,所以MLC NAND閃速記憶體還經歷比SLC NAND閃速記憶體更高的原始誤位元速率。 Multi-level cell (MLC) NAND flash memory is becoming popular because the cost per unit of data storage is reduced relative to the cost of single-level cell (SLC) NAND flash memory. However, because more than one bit of information is stored in each cell, MLC NAND flash memory also experiences a higher original bit error rate than SLC NAND flash memory.

為了滿足可靠性要求,與在SLC NAND閃速記憶體設備中相 比,可以在MLC NAND閃速記憶體設備中使用更高級的糾錯方案。然而,諸如讀取重試解碼和軟判定解碼的高級糾錯方案的複雜性可以增加NAND閃速記憶體資料存取操作的時延。對於不同的應用,資料存取時延的影響將不同。例如,諸如主機資料讀取的一些關鍵操作可能需要相對低的記憶體存取時延,而諸如一些後臺操作(例如,用於垃圾收集的資料存取)的其他操作可能對時延的程度較不敏感。 In order to meet the reliability requirements, it is similar to the SLC NAND flash memory device. In comparison, more advanced error correction schemes can be used in MLC NAND flash memory devices. However, the complexity of advanced error correction schemes such as read retry decoding and soft decision decoding can increase the latency of data access operations in NAND flash memory. For different applications, the impact of data access delay will be different. For example, some key operations such as host data reading may require relatively low memory access latency, while other operations such as some background operations (for example, data access for garbage collection) may have a greater degree of latency. Not sensitive.

一種用於在NAND閃速記憶體控制器中執行解碼任務的裝置,所述裝置包括:用於對第一優先順序的解碼任務進行排隊的第一任務佇列;用於對高於所述第一優先順序的第二優先順序的解碼任務進行排隊的第二任務佇列;以及控制電路,所述控制電路在接收到用於多個解碼任務的資料部分時,從所述第一任務佇列和所述第二任務佇列中釋放所述多個解碼任務中的相應解碼任務,以根據所述多個解碼任務中的相應解碼任務的優先順序來對所述資料部分中的相應部分進行操作。 A device for performing decoding tasks in a NAND flash memory controller. The device includes: a first task queue for queuing decoding tasks in a first priority order; A second task queue in which decoding tasks in a second priority order of a priority order are queued; and a control circuit that, when receiving data parts for multiple decoding tasks, queues from the first task And releasing the corresponding decoding task of the plurality of decoding tasks in the second task queue to operate the corresponding part of the data part according to the priority order of the corresponding decoding task of the plurality of decoding tasks .

在這種裝置中,其中,NAND閃速記憶體控制器包括多個記憶體通道,該裝置可以進一步包括用於所述多個通道中的每個相應通道的相應第一任務佇列、以及用於所述多個通道中的每個相應通道的相應第二任務佇列。至少一個第一解碼器在第一改錯碼解碼方案下進行操作,並且至少一個第二解碼器在第二改錯碼解碼方案下進行操作,該第二改錯碼解碼方案在速度和複雜度中的一個或二者方面不同於第一改錯碼解碼方案。輸入切換電路可控制地將每個資料通道連接到第一解碼器和第二解碼器中的一個。控制電路包括針對每個相應通道的相應通道任務控制塊,以用於 從針對該相應通道的相應第一任務佇列和第二任務佇列中釋放解碼任務,以控制所述輸入切換電路將用於相應通道的相應資料引導到第一解碼器和第二解碼器中的一個。 In such a device, wherein the NAND flash memory controller includes a plurality of memory channels, the device may further include a corresponding first task queue for each corresponding channel of the plurality of channels, and The corresponding second task queue of each corresponding channel in the plurality of channels. At least one first decoder operates under a first error correction code decoding scheme, and at least one second decoder operates under a second error correction code decoding scheme, which is in terms of speed and complexity One or both of them are different from the first error correction code decoding scheme. The input switching circuit controllably connects each data channel to one of the first decoder and the second decoder. The control circuit includes the corresponding channel task control block for each corresponding channel for Release the decoding task from the corresponding first task queue and second task queue for the corresponding channel to control the input switching circuit to guide the corresponding data for the corresponding channel to the first decoder and the second decoder one of.

在這樣的實現中,至少一個第一解碼器包括多個第一解碼器,至少一個第二解碼器包括多個第二解碼器,並且輸入切換電路包括針對每個相應通道的相應解複用器,用於將所述相應通道上的資料可選擇地引導到多個第一解碼器和多個第二解碼器中的一個;第一開關,用於將針對多個第一解碼器的解複用器輸出引導到多個第一解碼器中的可用第一解碼器;以及第二開關,用於將針對多個第二解碼器的解複用器的輸出引導到多個第二解碼器中的可用解碼器。 In such an implementation, at least one first decoder includes multiple first decoders, at least one second decoder includes multiple second decoders, and the input switching circuit includes a corresponding demultiplexer for each corresponding channel , Used to guide the data on the corresponding channel to one of a plurality of first decoders and a plurality of second decoders; the first switch is used to de-multiplex the multiple first decoders The output of the user is directed to the available first decoder among the plurality of first decoders; and a second switch for guiding the output of the demultiplexer for the plurality of second decoders to the plurality of second decoders Available decoders.

這樣的實現還可以進一步包括針對每個相應通道的相應緩衝器,用於保持在該相應通道上接收的資料,直至與該資料相對應的解碼任務從第一任務佇列和第二任務佇列中的一個釋放。 Such an implementation may further include a corresponding buffer for each corresponding channel for holding the data received on the corresponding channel until the decoding task corresponding to the data is from the first task queue and the second task queue One of the releases.

這樣的實現可以進一步包括輸出切換電路,該輸出切換電路用於輸出第一解碼器和第二解碼器中的一個的輸出。在這種實現中,控制電路包括解碼器完成控制電路,該解碼器完成控制電路在從第一解碼器和第二解碼器中的一個接收到解碼器完成信號時,選擇第一解碼器和第二解碼器中的一個的輸出。這樣的實現可以進一步包括用於對第一優先順序的已完成的解碼任務進行排隊的第一任務完成佇列,以及用於對所述第二優先順序的已完成的解碼任務進行排隊的第二任務完成佇列,其中解碼器完成控制電路將每個已完成的解碼任務載入到第一任務完成佇列和第二任務完成佇列中的一個中,並且控制電路進一步包括解碼器完成狀態控制電 路,該解碼器完成狀態控制電路根據已完成的解碼任務的優先順序報告來自第一任務完成佇列和第二任務完成佇列中的已完成的解碼任務。 Such an implementation may further include an output switching circuit for outputting the output of one of the first decoder and the second decoder. In this implementation, the control circuit includes a decoder completion control circuit that selects the first decoder and the second decoder when a decoder completion signal is received from one of the first decoder and the second decoder. The output of one of the two decoders. Such an implementation may further include a first task completion queue for queuing completed decoding tasks in the first priority order, and a second task completion queue for queuing completed decoding tasks in the second priority order. The task completion queue, wherein the decoder completion control circuit loads each completed decoding task into one of the first task completion queue and the second task completion queue, and the control circuit further includes decoder completion status control Electricity The decoder completion status control circuit reports the completed decoding tasks from the first task completion queue and the second task completion queue according to the priority order of the completed decoding tasks.

這樣的裝置可以進一步包括緩衝器,用於保持從NAND閃速記憶體接收的資料,直至與資料相對應的解碼任務從所述第一任務佇列和所述第二任務佇列中的一個中被釋放。 Such a device may further include a buffer for holding data received from the NAND flash memory until the decoding task corresponding to the data is removed from one of the first task queue and the second task queue released.

這樣的裝置可以進一步包括用於對第一優先順序的已完成的解碼任務進行排隊的第一任務完成佇列;以及用於對第二優先順序的已完成的解碼任務進行排隊的第二任務完成佇列,其中控制電路根據所述已完成的解碼任務的優先順序來報告來自所述第一任務完成佇列和所述第二任務完成佇列中的已完成的解碼任務。 Such an apparatus may further include a first task completion queue for queuing completed decoding tasks in a first priority order; and a second task completion queue for queuing completed decoding tasks in a second priority order A queue, wherein the control circuit reports the completed decoding tasks from the first task completion queue and the second task completion queue according to the priority order of the completed decoding tasks.

一種用於在NAND閃速記憶體控制器中執行解碼任務的方法,可以包括:在第一任務佇列中對第一優先順序的解碼任務進行排隊;在第二任務佇列中對高於所述第一優先順序的第二優先順序的解碼任務進行排隊;以及在接收到用於多個解碼任務的資料部分時,從第一任務佇列和第二任務佇列中釋放所述多個解碼任務中的相應解碼任務,以根據多個解碼任務中的相應解碼任務的優先順序來對資料部分中的相應部分進行操作。 A method for executing decoding tasks in a NAND flash memory controller may include: queuing the decoding tasks of the first priority order in a first task queue; and queuing higher than all decoding tasks in a second task queue. The decoding tasks in the second priority order of the first priority order are queued; and when data parts for multiple decoding tasks are received, the multiple decoding tasks are released from the first task queue and the second task queue The corresponding decoding task in the task operates on the corresponding part of the data part according to the priority order of the corresponding decoding task among the multiple decoding tasks.

在這種方法的一個實現中,其中在NAND閃速記憶體控制器包括多個記憶體通道時,對第一優先順序的解碼任務進行排隊可以包括:針對多個通道中的每個相應通道來在相應第一任務佇列中對解碼任務進行排隊;以及對第二優先順序的解碼任務進行排隊可以包括:針對多個通道中的每個相應通道來在相應第二任務佇列中對解碼任務進行排隊。該方法 可以進一步包括將每個資料通道可控制地連接到第一解碼器和第二解碼器中的一個,第一解碼器在第一改錯碼解碼方案下進行操作,第二解碼器在第二改錯碼解碼方案下進行操作,第二改錯碼解碼方案在速度和複雜度中的一個或二者方面不同於第一改錯碼解碼方案。 In an implementation of this method, when the NAND flash memory controller includes multiple memory channels, queuing the decoding tasks of the first priority order may include: for each corresponding channel of the multiple channels Queuing the decoding tasks in the corresponding first task queue; and queuing the decoding tasks in the second priority order may include: queuing the decoding tasks in the corresponding second task queue for each corresponding channel in the plurality of channels Line up. this method It may further include controllably connecting each data channel to one of a first decoder and a second decoder, the first decoder operates under the first error correction code decoding scheme, and the second decoder operates under the second correction code decoding scheme. The second error correction code decoding scheme is different from the first error correction code decoding scheme in one or both of speed and complexity.

在這樣的實現中,可控制地連接包括:將每個資料通道可控制地連接到多個第一解碼器和多個第二解碼器中的一個,多個第一解碼器在第一改錯碼解碼方案下進行操作,多個第二解碼器在第二改錯碼解碼方案下進行操作。 In such an implementation, the controllable connection includes: each data channel is controllably connected to one of a plurality of first decoders and a plurality of second decoders, and the plurality of first decoders can correct errors in the first The operation is performed under the code decoding scheme, and multiple second decoders are operated under the second error correction code decoding scheme.

這樣的實現可以進一步包括:針對每個相應通道,將在相應通道上接收的資料保持在緩衝器中,直至與資料相對應的解碼任務從第一任務佇列和第二任務佇列中釋放。 Such an implementation may further include: for each corresponding channel, keeping the data received on the corresponding channel in the buffer until the decoding task corresponding to the data is released from the first task queue and the second task queue.

這樣的實現還可以進一步包括:在第一任務完成佇列中對第一優先順序的已完成的解碼任務進行排隊;以及在第二任務完成佇列中對第二優先順序的已完成的解碼任務進行排隊;以及根據已完成的解碼任務的優先順序來報告來自所述第一任務完成佇列和所述第二任務完成佇列的完成的解碼任務。 Such an implementation may further include: queuing the completed decoding tasks of the first priority order in the first task completion queue; and queuing the completed decoding tasks of the second priority order in the second task completion queue Queuing; and reporting the completed decoding tasks from the first task completion queue and the second task completion queue according to the priority order of the completed decoding tasks.

這樣的方法還可以進一步包括將從NAND閃速記憶體接收的資料保持在緩衝器中,直至與資料相對應的解碼任務從第一任務佇列和第二任務佇列中的一個中被釋放。 Such a method may further include keeping the data received from the NAND flash memory in the buffer until the decoding task corresponding to the data is released from one of the first task queue and the second task queue.

這種方法的實現可以進一步包括:在第一任務完成佇列中對第一優先順序的完成的解碼任務進行排隊,在第二任務完成佇列中對第二優先順序的完成的解碼任務進行排隊,以及根據已完成的解碼任務的優先 順序來報告來自第一任務完成佇列和第二任務完成佇列中的已完成的解碼任務。 The implementation of this method may further include: queuing completed decoding tasks in the first priority order in the first task completion queue, and queuing the completed decoding tasks in the second priority order in the second task completion queue , And according to the priority of the completed decoding task In order to report the completed decoding tasks from the first task completion queue and the second task completion queue.

在這樣的實現中,根據已完成的解碼任務的優先順序報告來自第一任務完成佇列和第二任務完成佇列中的已完成的解碼任務包括:在報告第一優先順序的任何已完成的解碼任務之前,報告第二優先順序的所有已完成的解碼任務。該實現可以進一步包括在第一任務完成佇列中的已完成的解碼任務的排隊之後的預定持續時間之後,將已完成的解碼任務的優先順序水準從第一優先順序改變為第二優先順序。 In such an implementation, according to the priority order of the completed decoding tasks, the completed decoding tasks from the first task completion queue and the second task completion queue are reported including: any completed decoding tasks in the first priority order are reported Before decoding tasks, report all completed decoding tasks in the second priority order. The implementation may further include changing the priority level of the completed decoding tasks from the first priority order to the second priority order after a predetermined duration after the queuing of the completed decoding tasks in the first task completion queue.

在這樣的實現中,根據已完成的解碼任務的優先順序來報告第一任務完成佇列和第二任務完成佇列中的已完成的解碼任務可以包括:在報告來自所述第二任務完成佇列中的預定數目的任務之後,報告來自第一任務完成佇列的任務。 In such an implementation, reporting the completed decoding tasks in the first task completion queue and the second task completion queue according to the priority order of the completed decoding tasks may include: reporting from the second task completion queue After the predetermined number of tasks in the column, report the tasks from the first task to complete the queue.

在這樣的方法的實現中,從第一任務佇列和第二任務佇列中釋放所述多個解碼任務中的相應解碼任務,以根據在所述多個解碼任務中的相應解碼任務的優先順序來對資料部分中的相應部分進行操作可以包括:在釋放所述第一優先順序的任何解碼任務之前,釋放第二優先順序的所有解碼任務。 In the implementation of such a method, the corresponding decoding tasks among the plurality of decoding tasks are released from the first task queue and the second task queue to be based on the priority of the corresponding decoding tasks among the plurality of decoding tasks. Performing operations on corresponding parts in the data part in order may include: releasing all decoding tasks in the second priority order before releasing any decoding tasks in the first priority order.

這樣的實現可以進一步包括在所述第一任務佇列中的解碼任務的排隊之後的預定持續時間之後,將解碼任務的優先順序水準從第一優先順序改變為所述第二優先順序。 Such an implementation may further include changing the priority level of the decoding tasks from the first priority order to the second priority order after a predetermined duration after the queuing of the decoding tasks in the first task queue.

在這樣的方法中,從第一任務佇列和第二任務佇列中釋放多個解碼任務中的相應解碼任務,以根據在多個解碼任務中的相應解碼任務 的優先順序來對資料部分中的相應部分進行操作可以包括:在來自第二任務佇列中的預定數目的任務的釋放之後,釋放來自所述第一任務佇列的任務。 In such a method, the corresponding decoding tasks among the plurality of decoding tasks are released from the first task queue and the second task queue, so that the corresponding decoding tasks among the plurality of decoding tasks Operating the corresponding parts in the data part in the order of priority may include: releasing the tasks from the first task queue after the predetermined number of tasks in the second task queue are released.

130‧‧‧處理器 130‧‧‧Processor

102‧‧‧主機 102‧‧‧Host

111‧‧‧主機介面 111‧‧‧Host Interface

112‧‧‧ECC編碼器 112‧‧‧ECC encoder

113‧‧‧NAND閃速介面 113‧‧‧NAND flash interface

123‧‧‧主機介面 123‧‧‧Host Interface

122‧‧‧ECC解碼器 122‧‧‧ECC Decoder

121‧‧‧NAND閃速介面 121‧‧‧NAND flash interface

100‧‧‧NAND閃速控制器 100‧‧‧NAND Flash Controller

101‧‧‧NAND閃速記憶體 101‧‧‧NAND flash memory

235‧‧‧解碼器完成狀態控制 235‧‧‧Decoder complete status control

233‧‧‧正常優先順序完成狀態佇列 233‧‧‧Complete status queue in normal priority order

234‧‧‧高優先順序完成狀態佇列 234‧‧‧High priority completion status queue

232‧‧‧解碼器完成控制 232‧‧‧Decoder complete control

223‧‧‧解碼器開始控制 223‧‧‧Decoder start control

224‧‧‧通道任務控制 224‧‧‧Channel mission control

225‧‧‧水準1解碼器開關控制 225‧‧‧Level 1 decoder switch control

226‧‧‧水準2解碼器開關控制 226‧‧‧Level 2 decoder switch control

201:水準1解碼器 201: Level 1 decoder

202:水準2解碼器 202: Level 2 decoder

在結合附圖考慮以下詳細描述之後,本公開的其他特徵、其性質和各種優點將是顯而易見的,在附圖中,相同的附圖標記在全文中表示相同的部件,並且其中:圖1示出可以使用本公開的實現的NAND閃速記憶體控制器的框圖;圖2示出根據可以在NAND閃速控制器中使用的本公開的主題的實現的改錯碼解碼器的結構的框圖;圖3是根據本公開的主題的實現的過程的流程圖,通過其可以填充圖2的解碼器中的針對每個資料通道的解碼任務佇列;圖4是示出根據本公開的主題的實現的過程的流程圖,用於從正常優先順序任務佇列或高優先順序任務佇列中的一個選擇用於執行的任務;圖5是示出根據本公開的主題的實現的用於在正常優先順序解碼任務和高優先順序解碼任務之間選擇規則集合的操作的流程圖;以及圖6是示出根據本公開的主題的實現的用於報告解碼任務的完成的過程的流程圖。 After considering the following detailed description in conjunction with the accompanying drawings, other features, properties and various advantages of the present disclosure will be apparent. In the accompanying drawings, the same reference numerals denote the same components throughout the text, and among them: FIG. 1 shows A block diagram of a NAND flash memory controller that can be implemented using the present disclosure; Figure 2 shows a block diagram of the structure of an error correction code decoder according to an implementation of the subject of the present disclosure that can be used in a NAND flash controller Figure; Figure 3 is a flowchart of the process of implementing the subject of the present disclosure, by which the decoding task queue for each data channel in the decoder of Figure 2 can be filled; Figure 4 shows the subject of the present disclosure A flowchart of the process of implementing the process for selecting a task for execution from one of the normal priority task queue or the high priority task queue; FIG. 5 is a diagram showing the implementation of the subject of the present disclosure for A flowchart of the operation of selecting a rule set between a normal priority decoding task and a high priority decoding task; and FIG. 6 is a flowchart showing a process for reporting the completion of a decoding task according to an implementation of the subject of the present disclosure.

如上所述,MLC NAND閃速記憶體可能經歷比SLC NAND閃速記憶體更高的原始誤位元速率。因此,為了滿足可靠性要求,與在SLC NAND閃速記憶體設備中相比,更多高級糾錯方案可以在MLC NAND閃速 記憶體設備中使用。然而,諸如讀取重試解碼和軟判定解碼的高級糾錯方案的複雜性可以增加NAND閃速記憶體資料存取操作的時延。 As mentioned above, MLC NAND flash memory may experience a higher raw bit error rate than SLC NAND flash memory. Therefore, in order to meet the reliability requirements, more advanced error correction solutions can be used in MLC NAND flash memory devices than in SLC NAND flash memory devices. Used in memory devices. However, the complexity of advanced error correction schemes such as read retry decoding and soft decision decoding can increase the latency of data access operations in NAND flash memory.

因為如上所述的資料存取時延的影響對於不同應用而不同,所以根據本公開的實現,可以不同地處理不同優先順序的記憶體存取操作。另外,可以在使用更複雜且耗時的解碼方案以及使用更簡單和更快速的解碼方案之間實現折衷,更複雜且耗時的解碼方案更可能在第一嘗試就成功,更簡單和更快速的解碼方案可能偶然失敗且需要多於一次的嘗試。 Because the impact of the data access delay described above is different for different applications, according to the implementation of the present disclosure, memory access operations of different priority orders can be handled differently. In addition, a trade-off can be achieved between using more complex and time-consuming decoding schemes and using simpler and faster decoding schemes. More complex and time-consuming decoding schemes are more likely to succeed at the first attempt, simpler and faster The decoding scheme may occasionally fail and require more than one attempt.

總而言之,即使可能發生需要重試操作的偶然故障,也可以通過對大多數記憶體存取操作使用更簡單和更快速的解碼方案,同時對更高優先順序的解碼任務使用更複雜和耗時的解碼方案,來最大化總體輸送量。 All in all, even if accidental failures that require retry operations may occur, simpler and faster decoding schemes can be used for most memory access operations, while more complex and time-consuming decoding tasks can be used for higher priority decoding tasks. Decoding scheme to maximize the overall throughput.

此外,在“插隊”特徵下,即使較高優先順序解碼任務稍後啟動,也可以在正常優先順序解碼任務之前執行較高優先順序解碼任務。 In addition, under the "insertion" feature, even if the higher priority decoding task is started later, the higher priority decoding task can be executed before the normal priority decoding task.

可以參考圖1-6來理解本公開的主題的實現。 The implementation of the subject matter of the present disclosure can be understood with reference to FIGS. 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的各種元件。 FIG. 1 shows a NAND flash memory controller 100 between one or more NAND flash memory devices 101 and a host device 102. The NAND flash controller 100 includes a "programming" or write path 110 and a read path 120. Data from the host device 102 can be written to the NAND flash memory device 101 along the write path 110 and pass through the host device. 102 can read data from the NAND flash memory device 101 along the read path 120. The write path 110 includes a host interface 111 for receiving data in a host format, an encoder 112 for converting the data received by the host interface 111 in a host format into a format used by the NAND flash memory device 101, and an encoder 112 for converting The encoded data is sent to the NAND flash memory of the NAND flash memory device 101 Memory body interface 113. Similarly, the read path 120 includes a NAND flash interface 121 for receiving data from the NAND flash memory device 101 in the format used by the NAND flash memory device 101, and a NAND flash interface 121 for flashing the NAND flash memory interface 121 with NAND flash memory. The data received in the format used by the memory device 101 is converted into a decoder 122 in the format used by the host device 102 and a host interface 123 for transmitting the decoded data to the host device 102. The processor 130, which may be a microprocessor, controls various elements of the write path 110 and the read path 120.

編碼器112和解碼器122是互補的,即,編碼器112和解碼器122使用相同方案的互補版本來對資料進行編碼和解碼,使得從主機設備102接收並且由編碼器112編碼以存儲在NAND閃速記憶體設備101上的資料可以在從NAND閃速記憶體設備101讀回之後由解碼器122來解碼。通常並且在本文論述的實現中,這樣的編碼/解碼方案是改錯碼(ECC),使得即使在寫入或讀取過程中的錯誤之後也可以重建資料。 The encoder 112 and the decoder 122 are complementary, that is, the encoder 112 and the decoder 122 use complementary versions of the same scheme to encode and decode data, so that the data is received from the host device 102 and encoded by the encoder 112 for storage in the NAND The data on the flash memory device 101 can be decoded by the decoder 122 after being read back from the NAND flash memory device 101. Usually and in the implementation discussed herein, such an encoding/decoding scheme is Error Correction Code (ECC), so that the data can be reconstructed even after an error in the writing or reading process.

圖2示出了根據本公開的ECC解碼器122的實現200的細節。ECC解碼器200包括第一多個n解碼器電路201和第二多個m解碼器電路電路202。解碼器電路201中的每一個可以實現比由解碼器電路202中的每一個實現的糾錯解碼方案相對更簡單和更快速的糾錯解碼方案,而解碼器電路202中的每一個可以實現比由解碼器電路201中的每一個實現的糾錯解碼方案相對更複雜和耗時的糾錯解碼方案。通常,與實現相對更複雜和耗時的糾錯解碼方案的解碼器電路202相比,可能存在更多的實現相對更簡單和更快速的糾錯解碼方案的解碼器電路201──即,通常可以預期n>m,但是可以存在m>n的實現。相對更簡單和更快速的糾錯解碼方案可以被稱為“水準1”,而相對更複雜和耗時的糾錯解碼方案可以被稱為“水準2”。 Figure 2 shows details of an implementation 200 of the ECC decoder 122 according to the present disclosure. The ECC decoder 200 includes a first plurality of n decoder circuits 201 and a second plurality of m decoder circuit circuits 202. Each of the decoder circuits 201 can implement a relatively simpler and faster error correction decoding scheme than the error correction decoding scheme implemented by each of the decoder circuits 202, while each of the decoder circuits 202 can implement The error correction decoding scheme implemented by each of the decoder circuits 201 is relatively more complex and time-consuming error correction decoding scheme. Generally, compared with the decoder circuit 202 that implements a relatively more complex and time-consuming error correction decoding scheme, there may be more decoder circuits 201 that implement a relatively simpler and faster error correction decoding scheme—that is, generally It can be expected that n>m, but there can be implementations of m>n. The relatively simpler and faster error correction decoding scheme may be referred to as "level 1", and the relatively more complex and time-consuming error correction decoding scheme may be referred to as "level 2".

在如下所述的處理器130的控制下,通過開關電路204將在通道203上從NAND閃速介面121接收的資料引導到解碼器電路201或解碼器電路202。類似地,來自解碼器電路201或解碼器電路202的解碼資料在208處通過n:1複用器205、m:1複用器206和2:1複用器207被傳送到主機介面123,如下面進一步討論的。 Under the control of the processor 130 described below, the data received from the NAND flash interface 121 on the channel 203 is guided to the decoder circuit 201 or the decoder circuit 202 through the switch circuit 204. Similarly, the decoded data from the decoder circuit 201 or the decoder circuit 202 is transmitted to the host interface 123 at 208 through the n:1 multiplexer 205, the m:1 multiplexer 206 and the 2:1 multiplexer 207, As discussed further below.

處理器130經由解碼任務控制塊210來如上所述控制開關電路204,解碼任務控制塊210包括解碼任務開始部分220和解碼任務完成部分230。 The processor 130 controls the switch circuit 204 as described above via the decoding task control block 210. The decoding task control block 210 includes a decoding task start part 220 and a decoding task completion part 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。 The decoding task start portion 220 of the decoding task control block 210 includes a corresponding pair of decoding task queues 221, 222 for each data channel 203. In each pair of decoding task queues 221, 222, one decoding task queue (for example, decoding task queue 221) is a normal priority task queue, and another decoding task queue (for example, decoding task queue 222) It is a high priority task queue. The decoder start control 223 distributes the incoming decoding task 211 from the processor 130 to the appropriate decoding task queue pair 221 and 222 according to the data channel 203 to which the decoding task 211 is applied, such as determined based on, for example, the task ID field. Each pair of decoding task queues 221, 222 feeds a corresponding channel task control block 224. Each channel task control block 224 passes tasks (including at least task ID and information about priority) to level 1 decoder switch control block 225 and level 2 decoder switch control block 226, and also controls the data to enter the demultiplexer 227 to be able to route the incoming data to the level 1 decoder switch 228 or the level 2 decoder switch 229 on the channel 203.

處理器130經由NAND閃速介面121向NAND閃速記憶體設備101發送與每個解碼任務211相對應的讀取請求。每個讀取請求具有與其對應的解碼任務211相同的任務ID。當NAND閃速介面121從NAND閃速記憶 體設備101返回相應的資料時,在231處通過NAND閃速介面121向通道任務控制塊224發送解碼資料就緒信號,通過任務ID識別返回的資料。 The processor 130 sends a read request corresponding to each decoding task 211 to the NAND flash memory device 101 via the NAND flash interface 121. Each read request has the same task ID as its corresponding decoding task 211. When the NAND flash interface 121 flashes from NAND flash memory When the body device 101 returns the corresponding data, it sends a decoded data ready signal to the channel task control block 224 through the NAND flash interface 121 at 231, and identifies the returned data through the task 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中的一個。 One of the channel task control blocks 224 that owns the task identified by the received task ID (ie, one of the channel task control blocks 224 associated with one of the channels 203 on which the data has been returned) will The queue 221 or 222 (according to the priority order of the tasks) associated with one of the channels 2103 selects the identified task. Then, one of the channel task control blocks 224 passes the task to the level 1 decoder switch control block 225 or the level 2 decoder switch control block 226 to activate the level 1 decoder switch 228 or the level 2 decoder switch 229 according to The priority of the task routes the data to be decoded from the incoming channel 203 to the available one of n level 1 decoder circuits 201 or m level 2 decoder circuits 202, respectively. At the same time, one of the channel task control blocks 224 will also activate the data on the appropriate channel 203 to enter one of the demultiplexers 227 to route the data to the level 1 decoder switch 228 or the level 2 decoder switch 229. One.

在資料被路由到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。 After the data is routed to one of the n level 1 decoder circuits 201 or m level 2 decoder circuits 202, the data will be appropriately routed by one of the n level 1 decoder circuits 201 or m level 2 decoder circuits 202. decoding. After the decoding is completed, depending on the situation, the level 1 decoder circuit 201 or the level 2 decoder circuit 202 will send a completion signal to the decoding task completion section 230 of the decoding task control block 210. The completion signal will be received by the decoder completion control block 232, which will make the multiplexer 205 (in the case of one of the n level 1 decoder circuits 201) or the multiplexer 206 (in the case of m level 2 decoder circuits 202) In the case of one of the decoder circuits 201 or 202, the correct one of the decoder circuits 201 or 202 is selected, and the multiplexer 207 (in the case of one of the n level 1 decoder circuits 201) is also selected to select the multiplexer 205 , Or multiplexer 206 (in the case of one of m level 2 decoder circuits 202) for output to the host interface 123 at 208.

除了在208處控制複用器205、206、207以選擇正確的輸出之外,解碼任務控制塊210的解碼任務完成部分230還在解碼任務完成時通知處理器130。例如,對於任何已完成的任務,解碼器完成控制塊232可以根據已完成的任務的優先順序將已完成的任務的任務ID輸出到正常優先順序完成狀態佇列233或高優先順序完成狀態佇列234。在236處,解碼器完成狀態控制塊235將完成指示從正常優先順序完成狀態佇列233和高優先順序完成狀態佇列234發送到處理器130。 In addition to controlling the multiplexers 205, 206, 207 at 208 to select the correct output, the decoding task completion section 230 of the decoding task control block 210 also notifies the processor 130 when the decoding task is completed. For example, for any completed task, the decoder completion control block 232 can output the task ID of the completed task to the normal priority order completion status queue 233 or the high priority order completion status queue according to the priority order of the completed tasks. 234. At 236, the decoder completion status control block 235 sends a completion indication from the normal priority order completion status queue 233 and the high priority order completion status queue 234 to the processor 130.

與高優先順序任務相關的高優先順序完成佇列234中的任何已完成指示可以在正常優先順序完成狀態佇列233中的任何完成指示之前被發送。替代地,可以以某些預定順序從正常優先順序完成狀態佇列233和高優先順序完成狀態佇列234中兩者提取完成指示。例如,即使其他完成指示保持在高優先順序完成狀態佇列234中,在從高優先順序完成狀態佇列234提取了特定數目的完成指示之後,也可以從正常優先順序完成狀態佇列233中提取一個完成指示。作為另一替代,與高優先順序任務相關的高優先順序完成狀態佇列234中的任何完成指示可以在正常優先順序完成狀態佇列233中的任何完成指示之前被發送,除非完成指示已經駐留在正常優先順序完成狀態佇列233達長於預定持續時間(其可以被認為將該完成指示的優先順序改變為“高”)。 Any completed instructions in the high priority completion queue 234 related to the high priority tasks may be sent before any completion instructions in the normal priority completion status queue 233. Alternatively, the completion indication may be extracted from both the normal priority order completion status queue 233 and the high priority order completion status queue 234 in some predetermined order. For example, even if other completion instructions remain in the high priority completion status queue 234, after a certain number of completion instructions are extracted from the high priority completion status queue 234, they can be extracted from the normal priority completion status queue 233 A completion instruction. As another alternative, any completion indication in the high priority completion status queue 234 related to the high priority task may be sent before any completion indication in the normal priority completion status queue 233, unless the completion indication already resides The normal priority order completion status queue 233 is longer than the predetermined duration (it can be considered as changing the priority order of the completion indication to "high").

返回考慮解碼任務控制塊210的解碼任務開始部分220,由通道任務控制塊224中的一個從其相應的低優先順序任務佇列221和高優先順序任務佇列222中選擇任務可能比從正常優先順序完成狀態佇列233和高優先順序權完成狀態佇列234選擇完成指示更複雜,因為如上所述,不論其狀 態如何,解碼任務都無法被選擇,直至與已經從NAND閃速記憶體設備101返回任務相關聯的資料。在美國專利9,092,156中描述了一種用於在NAND閃速記憶體儲器控制器中處理具有不同優先順序的資料存取的方案,其全部內容通過引用合併於此。然而,可以使用其他方案來優先資料的讀取。 Returning to the decoding task start part 220 of the decoding task control block 210, one of the channel task control blocks 224 selects a task from its corresponding low-priority task queue 221 and high-priority task queue 222, which may have priority than normal The order completion status queue 233 and the high priority completion status queue 234 selection completion instructions are more complicated, because as described above, regardless of their status Regardless of the state, the decoding task cannot be selected until the data associated with the task has been returned from the NAND flash memory device 101. A solution for processing data accesses with different priorities in a NAND flash memory controller is described in US Patent 9,092,156, the entire content of which is incorporated herein by reference. However, other solutions can be used to prioritize the reading of data.

當已經讀取並返回資料時,NAND閃速介面121可以包括用於指示與資料相關聯的優先順序水準。如果多於一個的解碼任務仍然要被處理,則指示優先順序的信號將在選擇解碼任務中使用,其中與在正常優先順序任務佇列221中的正常優先順序解碼任務相比,優選選擇在高優先順序任務佇列222中的較高優先順序解碼任務。 When the data has been read and returned, the NAND flash interface 121 may include a priority level for indicating the priority associated with the data. If more than one decoding task is still to be processed, the signal indicating the priority order will be used in the selection of the decoding task, where it is preferably selected in the higher order than the normal priority order decoding task in the normal priority order task queue 221. The higher priority order decoding task in the priority order task queue 222.

選擇的一部分涉及將資料路由到正確的解碼器。如果正在執行的解碼任務使用水準1解碼器,則它將以指派的優先順序被發送到水準1解碼器開關控制塊225;否則它將被發送到水準2解碼器開關控制塊226。水準1解碼器開關控制塊225和水準2解碼器開關控制塊226可以被認為是仲裁塊。例如,指派給水準1解碼器開關控制塊225和水準2解碼器開關控制塊226中的每一個的任務可以根據加權迴圈仲裁來分配。 Part of the selection involves routing the data to the correct decoder. If the decoding task being performed uses the level 1 decoder, it will be sent to the level 1 decoder switch control block 225 in the assigned priority order; otherwise, it will be sent to the level 2 decoder switch control block 226. The level 1 decoder switch control block 225 and the level 2 decoder switch control block 226 can be regarded as arbitration blocks. For example, the tasks assigned to each of the level 1 decoder switch control block 225 and the level 2 decoder switch control block 226 may be allocated according to weighted loop arbitration.

如上所述,每個水準1解碼器201可以實現相對更簡單和更快速的解碼方案,而每個水準2解碼器202可以實現相對更複雜和耗時的解碼方案。作為一般情況,水準1解碼方案可以用於正常優先順序任務,而水準2解碼方案可以用於更高優先順序的任務。然而,在一些實現中,可以存在水準1解碼方案用於較高優先順序任務的情況,正如可以存在水準2解碼方案用於正常優先順序任務的情況。 As described above, each level 1 decoder 201 can implement a relatively simpler and faster decoding scheme, and each level 2 decoder 202 can implement a relatively more complex and time-consuming decoding scheme. As a general case, level 1 decoding scheme can be used for normal priority tasks, and level 2 decoding schemes can be used for higher priority tasks. However, in some implementations, there may be cases where level 1 decoding schemes are used for higher priority tasks, just as there may be cases where level 2 decoding schemes are used for normal priority tasks.

例如,如果任務具有較高優先順序,因為它是使用水準1解 碼方案的用於失敗的正常優先順序任務的讀取重試任務,則讀取重試嘗試可以再次使用水準1解碼方案,而不管其較高的優先順序。作為另一示例,如果任務具有正常優先順序,並且不存在可用的水準1解碼器,但是存在未使用的水準2解碼器,則可以使用水準2解碼器,而不管該任務的正常優先順序。一個這樣的示例可以涉及不是時延關鍵的資料,諸如垃圾收集任務,其中水準1解碼失敗;對第二次嘗試使用較慢的水準2解碼將使得水準1解碼器可用于時延關鍵的資料。可以存在水準1解碼方案用於較高優先順序任務或水準2解碼方案用於正常優先順序任務的其他情況。 For example, if the task has a higher priority because it uses level 1 solution If the read retry task of the normal priority task of the code scheme is used for the failed normal priority task, then the read retry attempt can use the level 1 decoding scheme again, regardless of its higher priority. As another example, if a task has a normal priority order and there is no level 1 decoder available, but there is an unused level 2 decoder, then a level 2 decoder can be used regardless of the normal priority order of the task. One such example may involve data that is not delay-critical, such as garbage collection tasks where level 1 decoding fails; using a slower level 2 decoding for the second attempt will make level 1 decoders available for delay-critical data. There may be other cases where the level 1 decoding scheme is used for higher priority tasks or the level 2 decoding scheme is used for normal priority tasks.

ECC解碼器200的操作可以更好地參考圖3-5中的流程圖來理解。 The operation of the ECC decoder 200 can be better understood with reference to the flowcharts in FIGS. 3-5.

圖3是示出根據實施例的過程300的實現的流程圖,通過該過程300用於每個資料通道203的解碼任務佇列221、222被填充。針對所討論的通道的新的解碼任務在301處被接收。在302處,確定在301處接收的任務是否是高優先順序任務。如果在301處接收的任務在302處被確定為高優先順序任務,則在303處,將任務置於針對該通道的高優先順序任務佇列222中。然而,如果在302處確定所接收的任務不是高優先順序任務,則在304處,將該任務置於針對該通道的正常優先順序任務佇列221中。在305處,確定是否存在針對該通道的任何其他解碼任務。如果在305處確定了不存在針對該通道的其他解碼任務,則過程300結束。但是如果在305處確定存在針對該通道的其他解碼任務,則過程300返回到301以接收新的解碼任務。 3 is a flowchart showing the implementation of a process 300 according to an embodiment, by which the decoding task queues 221, 222 for each data channel 203 are filled. A new decoding task for the channel in question is received at 301. At 302, it is determined whether the task received at 301 is a high priority task. If the task received at 301 is determined to be a high priority task at 302, then at 303, the task is placed in the high priority task queue 222 for the channel. However, if it is determined at 302 that the received task is not a high priority task, then at 304, the task is placed in the normal priority task queue 221 for the channel. At 305, it is determined whether there are any other decoding tasks for the channel. If it is determined at 305 that there are no other decoding tasks for the channel, the process 300 ends. But if it is determined at 305 that there are other decoding tasks for the channel, the process 300 returns to 301 to receive a new decoding task.

圖4是示出用於從正常優先順序任務佇列221或高優先順序任務佇列222中的一個選擇用於執行的任務的過程400的實現的流程圖。在 401處,從NAND閃速記憶體設備101接收NAND資料就緒信號(例如,在通道203中的一個上)指示資料已經被返回(例如,回應於請求)。在402處,確定已經返回的資料是否屬於高優先順序任務(如上所述,任務ID可以與資料一起返回)。如果是,則在403處,從相應通道203的高優先順序任務佇列222釋放相關聯的任務。否則,如果在402處確定已經返回的資料不屬於高優先順序任務,則在404處,從相應通道203的正常優先順序任務佇列221釋放相關聯的任務。 4 is a flowchart showing the implementation of a process 400 for selecting a task for execution from one of the normal priority task queue 221 or the high priority task queue 222. in At 401, a NAND data ready signal is received from the NAND flash memory device 101 (for example, on one of the channels 203) indicating that the data has been returned (for example, in response to a request). At 402, it is determined whether the returned material belongs to a high-priority task (as described above, the task ID can be returned with the material). If it is, then at 403, the associated task is released from the high priority task queue 222 of the corresponding channel 203. Otherwise, if it is determined at 402 that the returned data does not belong to a high priority task, then at 404, the associated task is released from the normal priority task queue 221 of the corresponding channel 203.

如上所述,解碼器的選擇不是必須由任務的優先順序來確定。雖然大多數高優先順序任務將是水準2解碼器任務,並且大多數正常優先順序任務將是水準1解碼器任務,但是可能存在例外。因此,一旦已經釋放了要執行的任務,在405處確定該任務是否是水準1解碼任務。如果是,則在406處將任務引導到水準1解碼器(經由適當的通道任務控制塊和適當的解碼器開關控制塊),並且過程400結束。否則,如果在405處確定了任務不是水準1解碼任務,則在407處將任務引導到水準2解碼器,並且過程400結束。 As mentioned above, the choice of decoder is not necessarily determined by the priority order of tasks. Although most high priority tasks will be level 2 decoder tasks, and most normal priority tasks will be level 1 decoder tasks, there may be exceptions. Therefore, once the task to be executed has been released, it is determined at 405 whether the task is a level 1 decoding task. If so, then the task is directed to the level 1 decoder at 406 (via the appropriate channel task control block and the appropriate decoder switch control block), and the process 400 ends. Otherwise, if it is determined at 405 that the task is not a level 1 decoding task, then the task is directed to a level 2 decoder at 407 and the process 400 ends.

從佇列221、222釋放任務的實際順序可以根據預定規則來控制。因此,如果資料被返回,但是與具有比另一任務低的優先順序的任務(即,正常優先順序任務)相關聯,則資料可以被保存在緩衝器(未示出)中直至任務準備被執行,針對另一任務已經返回了資料。 The actual order of releasing tasks from the queues 221 and 222 can be controlled according to predetermined rules. Therefore, if the data is returned, but is associated with a task with a lower priority order than another task (ie, a normal priority task), the data can be saved in a buffer (not shown) until the task is ready to be executed , Has returned information for another task.

根據一個可能的規則集合,高優先順序任務將始終優先于正常優先順序任務。根據規則集合的變體,正常優先順序佇列中的過多停留時間(超過預定限制)使得任務被移動到高優先順序佇列中。根據另一可 能的規則集合,對所執行的每p個高優先順序任務執行一個正常優先順序任務,這使得在正常優先順序佇列中的過多停留時間不太可能。可以使用這些規則集的組合,其中對於所執行的每p個高優先順序任務執行一個正常優先順序任務,但是在正常優先順序佇列中的過多停留時間(這應該是罕見的)使得任務從正常優先順序佇列被移動到高優先順序佇列。可以開發其他規則集合。 According to a set of possible rules, high priority tasks will always take priority over normal priority tasks. According to a variation of the rule set, excessive dwell time in the normal priority queue (over a predetermined limit) causes tasks to be moved to the high priority queue. According to another A set of capable rules to execute a normal priority task for every p high-priority tasks executed, which makes it impossible to spend too much time in the normal priority queue. A combination of these rule sets can be used, where for every p high-priority tasks executed, a normal priority task is executed, but excessive residence time in the normal priority queue (this should be rare) makes the task change from normal The priority queue is moved to the high priority queue. Other rule sets can be developed.

圖5中示出了一個可能的這種規則集合的示例500。在501處,確定已經執行的高優先順序任務的數目(從上次重置計數器開始)是否超過閾值。如果不是,則在502處確定是否存在任何高優先順序任務在高優先順序任務佇列中等待。如果是,則在503處選擇高優先順序任務並將其發送到適當的解碼器(例如,參見圖4),其中所選擇的任務在504處執行。如果在502處確定了不存在高優先順序任務在高優先順序任務佇列中等待,或在501處確定了已經執行的高優先順序任務的數目(從上次重置計數器開始)沒有超過閾值,則在505處確定是否存在任何正常優先順序任務在正常優先順序任務佇列中等待。如果是,則在506處選擇正常優先順序任務並將其發送到適當的解碼器(例如,參見圖4),其中在504處執行所選擇的任務。 An example 500 of a possible set of such rules is shown in FIG. 5. At 501, it is determined whether the number of high priority tasks that have been executed (from the last time the counter was reset) exceeds a threshold. If not, it is determined at 502 whether there are any high priority tasks waiting in the high priority task queue. If so, the high priority task is selected at 503 and sent to the appropriate decoder (see, for example, FIG. 4), where the selected task is executed at 504. If it is determined at 502 that there are no high-priority tasks waiting in the high-priority task queue, or it is determined at 501 that the number of high-priority tasks that have been executed (from the last reset of the counter) does not exceed the threshold, Then it is determined at 505 whether there are any normal priority tasks waiting in the normal priority task queue. If so, the normal priority task is selected at 506 and sent to the appropriate decoder (see, for example, FIG. 4), where the selected task is executed at 504.

在504處已經執行了所選擇的任務之後(無論其是高優先順序任務還是正常優先順序任務),在507處,結果被發送到完成狀態佇列233、234以用於例如如圖6所示進行報告。在已經報告結果之後或者如果在505處確定了不存在正常優先順序任務在正常優先順序任務佇列中等待,則在508處確定是否存在任何任務要被執行。如果是,則流程返回到501。如 果在508處確定了沒有任何任務要執行,則過程500結束。 After the selected task has been executed at 504 (regardless of whether it is a high-priority task or a normal-priority task), at 507, the result is sent to the completion status queues 233, 234 for example as shown in FIG. 6 Make a report. After the results have been reported or if it is determined at 505 that there are no normal priority tasks waiting in the normal priority task queue, it is determined at 508 whether there are any tasks to be executed. If so, the process returns to 501. Such as If it is determined at 508 that there are no tasks to be executed, the process 500 ends.

圖6是示出用於報告解碼任務的完成的一個可能過程600的實現的流程圖。在601處,確定是否存在任何未報告的已完成的高優先順序解碼任務(例如,在高優先順序完成狀態佇列234中)。如果是,則在602處報告下一個已完成的高優先順序任務的通知,並且流程返回到601以尋找更多未被報告的已完成的解碼任務。如果在601處確定了不存在未報告的已完成的高優先順序解碼任務,則在603處確定是否存在任何未報告的已完成的正常優先順序解碼任務(例如,在正常優先順序完成狀態佇列233中)。如果是,則在604處報告下一個已完成的正常優先順序任務的通知,並且流程返回到601以尋找更多未報告的已完成的高優先順序解碼任務。如果在603處確定了不存在未報告的已完成的正常優先順序解碼任務,則過程600結束。然而,應當注意,類似於上述用於從佇列221、222釋放任務的各種可能的規則集合的其他報告規則集合也可以應用於任務完成的報告。 Fig. 6 is a flowchart showing the implementation of one possible process 600 for reporting the completion of a decoding task. At 601, it is determined whether there are any unreported completed high-priority decoding tasks (e.g., in the high-priority completion status queue 234). If it is, the notification of the next completed high priority task is reported at 602, and the flow returns to 601 to find more completed decoding tasks that have not been reported. If it is determined at 601 that there are no unreported completed high-priority decoding tasks, then it is determined at 603 whether there are any unreported completed normal priority decoding tasks (for example, in the normal priority order completion status queue 233). If it is, the notification of the next completed normal priority task is reported at 604, and the flow returns to 601 to find more unreported completed high priority decoding tasks. If it is determined at 603 that there are no unreported completed normal priority decoding tasks, the process 600 ends. However, it should be noted that other reporting rule sets similar to the various possible rule sets for releasing tasks from the queues 221, 222 described above can also be applied to the task completion report.

因此,可以看出,提供了解碼裝置和相應的方法,其中可以通過即使可能發生需要重試操作的偶然的失敗也對大多數記憶體存取操作使用更簡單和更快的解碼方案,同時對較高優先順序的解碼任務使用更複雜和耗時的解碼方案,來最大化總體輸送量。還可以看出,在“插隊”特徵下,較高優先順序解碼任務可以在正常優先順序解碼任務之前被執行,即使較高優先順序解碼任務稍晚啟動,但是如上所述,如果正常優先順序任務由於稍晚到達的較高優先順序任務而必須等待過長,則正常優先順序任務本身也可以提高其優先順序。 Therefore, it can be seen that a decoding device and corresponding method are provided, in which a simpler and faster decoding scheme can be used for most memory access operations even if an accidental failure requiring retry operations may occur, while Higher priority decoding tasks use more complex and time-consuming decoding schemes to maximize overall throughput. It can also be seen that under the "jump in queue" feature, the higher priority decoding task can be executed before the normal priority decoding task, even if the higher priority decoding task starts later, but as mentioned above, if the normal priority task Because the higher priority tasks arriving later have to wait too long, the normal priority tasks themselves can also increase their priority.

本發明的其他方面涉及下述條款中的一個或多個: Other aspects of the invention involve one or more of the following clauses:

條款1:一種用於在NAND閃速記憶體控制器中執行解碼任務的裝置,所述裝置包括:用於對第一優先順序的解碼任務進行排隊的第一任務佇列;用於對高於第一優先順序的第二優先順序的解碼任務進行排隊的第二任務佇列;以及控制電路,該控制電路在接收到用於多個解碼任務的資料部分時,從第一任務佇列和所述第二任務佇列中釋放所述多個解碼任務中的相應解碼任務,以根據多個解碼任務中的相應解碼任務的優先順序來對資料部分中的相應部分進行操。 Clause 1: A device for executing decoding tasks in a NAND flash memory controller, the device comprising: a first task queue for queuing decoding tasks in a first priority order; The second task queue in which the decoding tasks in the second priority order of the first priority order are queued; and a control circuit that, when receiving data parts for multiple decoding tasks, starts from the first task queue and the The second task queue releases corresponding decoding tasks among the plurality of decoding tasks, so as to operate corresponding parts in the data part according to the priority order of the corresponding decoding tasks among the plurality of decoding tasks.

條款2:根據條款1所述的裝置,其中,NAND閃速記憶體控制器包括多個記憶體通道,並且其中,所述裝置進一步包括:針對多個通道中的每個相應通道的相應第一任務佇列、以及針對多個通道中的每個相應通道的相應第二任務佇列;至少一個第一解碼器,在第一改錯碼解碼方案下進行操作;至少一個第二解碼器,在第二改錯碼解碼方案下進行操作,第二改錯碼解碼方案在速度和複雜度中的一個或二者方面不同於第一改錯碼解碼方案;以及輸入切換電路,可控制地將每個資料通道連接到所述第一解碼器和所述第二解碼器中的一個;其中,控制電路包括針對每個相應通道的相應通道任務控制塊,以用於從針對該相應通道的相應第一任務佇列和第二任務佇列中釋放解碼任務,以控制輸入切換電路將針對相應通道的相應資料引導到第一解 碼器和第二解碼器中的一個。 Clause 2: The device according to Clause 1, wherein the NAND flash memory controller includes a plurality of memory channels, and wherein the device further includes: a corresponding first channel for each of the plurality of channels The task queue and the corresponding second task queue for each corresponding channel in the multiple channels; at least one first decoder operating under the first error correction code decoding scheme; at least one second decoder operating under the It operates under the second error correction code decoding scheme, which is different from the first error correction code decoding scheme in one or both of speed and complexity; and the input switching circuit, which controllably switches each Data channels are connected to one of the first decoder and the second decoder; wherein, the control circuit includes a corresponding channel task control block for each corresponding channel for downloading from the corresponding first decoder for the corresponding channel The decoding task is released in the first task queue and the second task queue to control the input switching circuit to guide the corresponding data for the corresponding channel to the first solution One of the encoder and the second decoder.

條款3:根據條款2所述的裝置,其中:至少一個第一解碼器包括多個第一解碼器;至少一個第二解碼器包括多個第二解碼器;以及輸入切換電路包括:針對每個相應通道的相應解複用器,用於將相應通道上的資料可選擇地引導到多個第一解碼器和多個第二解碼器中的一個,第一開關,用於將針對多個第一解碼器的解複用器輸出引導到多個第一解碼器中的可用第一解碼器,以及第二開關,用於將針對所述多個第二解碼器的解複用器的輸出引導到所述多個第二解碼器中的可用第二解碼器。 Clause 3: The device according to Clause 2, wherein: at least one first decoder includes a plurality of first decoders; at least one second decoder includes a plurality of second decoders; and the input switching circuit includes: for each The corresponding demultiplexer of the corresponding channel is used to guide the data on the corresponding channel to one of a plurality of first decoders and a plurality of second decoders. The demultiplexer output of a decoder is directed to the available first decoder among the plurality of first decoders, and a second switch is used to direct the output of the demultiplexer for the plurality of second decoders To an available second decoder among the plurality of second decoders.

條款4:根據條款2所述的裝置,進一步包括:針對每個相應通道的相應緩衝器,用於保持在該相應通道上接收的資料,直至與所述資料相對應的解碼任務從所述第一任務佇列和第二任務佇列中的一個釋放。 Clause 4: The device according to Clause 2, further comprising: a corresponding buffer for each corresponding channel for holding the data received on the corresponding channel until the decoding task corresponding to the data starts from the first One of the first task queue and the second task queue is released.

條款5:根據條款2所述的裝置,進一步包括:輸出切換電路,該輸出切換電路用於輸出第一解碼器和第二解碼器中的一個的輸出;其中:控制電路包括解碼器完成控制電路,解碼器完成控制電路在從所述第一解碼器和所述第二解碼器中的一個接收到解碼器完成信號時,選擇所述第一解碼器和所述第二解碼器中的一個的輸出。 Clause 5: The device according to Clause 2, further comprising: an output switching circuit for outputting the output of one of the first decoder and the second decoder; wherein: the control circuit includes a decoder completion control circuit , The decoder completion control circuit, when receiving a decoder completion signal from one of the first decoder and the second decoder, selects one of the first decoder and the second decoder Output.

條款6:根據條款5所述的裝置,進一步包括:用於對第一優先順序的已完成的解碼任務進行排隊的第一任務完成佇列;以及 用於對第二優先順序的已完成的解碼任務進行排隊的第二任務完成佇列;其中:解碼器完成控制電路將每個已完成的解碼任務載入到第一任務完成佇列和第二任務完成佇列中的一個中;並且控制電路進一步包括解碼器完成狀態控制電路,該解碼器完成狀態控制電路根據已完成的解碼任務的優先順序報告來自第一任務完成佇列和第二任務完成佇列中的已完成的解碼任務。 Clause 6: The device according to Clause 5, further comprising: a first task completion queue for queuing completed decoding tasks in the first priority order; and The second task completion queue for queuing the completed decoding tasks in the second priority order; wherein: the decoder completion control circuit loads each completed decoding task into the first task completion queue and the second One of the task completion queues; and the control circuit further includes a decoder completion status control circuit, the decoder completion status control circuit reports from the first task completion queue and the second task completion according to the priority order of the completed decoding tasks The completed decoding tasks in the queue.

條款7:根據條款1所述的裝置,進一步包括:緩衝器,該緩衝器用於保持從NAND閃速記憶體接收的資料,直至與資料相對應的解碼任務從第一任務佇列和第二任務佇列中的一個中被釋放。 Clause 7: The device according to clause 1, further comprising: a buffer for holding the data received from the NAND flash memory until the decoding task corresponding to the data is queued from the first task and the second task One of the queues was released.

條款8:根據條款1所述的裝置,進一步包括:用於對第一優先順序的已完成的解碼任務進行排隊的第一任務完成佇列;以及用於對第二優先順序的已完成的解碼任務進行排隊的第二任務完成佇列;其中:所述控制電路根據所述已完成的解碼任務的優先順序來報告來自第一任務完成佇列和第二任務完成佇列中的已完成的解碼任務。 Clause 8: The device according to clause 1, further comprising: a first task completion queue for queuing completed decoding tasks in the first priority order; and a completed decoding task in the second priority order The second task completion queue where tasks are queued; wherein: the control circuit reports the completed decoding from the first task completion queue and the second task completion queue according to the priority order of the completed decoding tasks task.

條款9:一種用於在NAND閃速記憶體控制器中執行解碼任務的方法,所述方法包括:在第一任務佇列中對第一優先順序的解碼任務進行排隊;在第二任務佇列中對高於所述第一優先順序的第二優先順序的解碼任務進行排隊;以及 在接收到用於多個解碼任務的資料部分時,從第一任務佇列和第二任務佇列中釋放所述多個解碼任務中的相應解碼任務,以根據多個解碼任務中的相應解碼任務的優先順序來對所述資料部分中的相應部分進行操作。 Clause 9: A method for executing decoding tasks in a NAND flash memory controller, the method comprising: queuing decoding tasks of the first priority in a first task queue; and in a second task queue Queuing decoding tasks in a second priority order higher than the first priority order; and When the data part for multiple decoding tasks is received, the corresponding decoding tasks in the multiple decoding tasks are released from the first task queue and the second task queue, so that the corresponding decoding tasks in the multiple decoding tasks are The priority of the task is to operate on the corresponding part of the data part.

條款10:根據條款9所述的方法,其中,NAND閃速記憶體控制器包括多個記憶體通道,並且其中:對第一優先順序的解碼任務進行排隊包括:針對所述多個通道中的每個相應通道來在相應第一任務佇列中對解碼任務進行排隊;以及對第二優先順序的解碼任務進行排隊包括:針對所述多個通道中的每個相應通道來在相應第二任務佇列中對解碼任務進行排隊;所述方法進一步包括:將每個資料通道可控制地連接到第一解碼器和第二解碼器中的一個,第一解碼器在第一改錯碼解碼方案下進行操作,第二解碼器在第二改錯碼解碼方案下進行操作,第二改錯碼解碼方案在速度和複雜度中的一個或二者方面不同於第一改錯碼解碼方案。 Clause 10: The method according to Clause 9, wherein the NAND flash memory controller includes a plurality of memory channels, and wherein: queuing the decoding tasks in the first priority order includes: Queuing the decoding task in the corresponding first task queue for each corresponding channel; and queuing the decoding task in the second priority order includes: performing the corresponding second task on each corresponding channel in the plurality of channels The decoding tasks are queued in the queue; the method further includes: each data channel is controllably connected to one of the first decoder and the second decoder, and the first decoder is in the first error correction code decoding scheme The second decoder operates under the second error correction code decoding scheme, and the second error correction code decoding scheme is different from the first error correction code decoding scheme in one or both of speed and complexity.

條款11:根據條款10所述的方法,其中,可控制地連接包括:將每個資料通道可控制地連接到多個第一解碼器和多個第二解碼器中的一個,多個第一解碼器在所述第一改錯碼解碼方案下進行操作,多個第二解碼器在所述第二改錯碼解碼方案下進行操作。 Clause 11: The method according to clause 10, wherein the controllably connecting includes: connecting each data channel to one of a plurality of first decoders and a plurality of second decoders, and a plurality of first decoders The decoder operates under the first error correction code decoding scheme, and multiple second decoders operate under the second error correction code decoding scheme.

條款12:根據條款10的方法,進一步包括:針對每個相應通道,將在所述相應通道上接收的資料保持在緩衝器中,直至與所述資料相對應的解碼任務從所述第一任務佇列和第二任務佇列中釋放。 Clause 12: The method according to Clause 10, further comprising: for each corresponding channel, keeping the data received on the corresponding channel in a buffer until the decoding task corresponding to the data is removed from the first task Release in the queue and the second task queue.

條款13:根據條款10所述的方法,進一步包括:在第一任務完成佇列中對所述第一優先順序的已完成的解碼任務進行排隊;以及在第二任務完成佇列中對第二優先順序的已完成的解碼任務進行排隊;以及根據所述已完成的解碼任務的優先順序來報告來自所述第一任務完成佇列和所述第二任務完成佇列的已完成的解碼任務。 Clause 13: The method according to clause 10, further comprising: queuing the completed decoding tasks of the first priority order in a first task completion queue; and queuing a second task in a second task completion queue The completed decoding tasks in the priority order are queued; and the completed decoding tasks from the first task completion queue and the second task completion queue are reported according to the priority order of the completed decoding tasks.

條款14:根據條款9所述的方法,進一步包括將從NAND閃速記憶體接收的資料保持在緩衝器中,直至與所述資料相對應的解碼任務從所述第一任務佇列和所述第二任務佇列中的一個中被釋放。 Clause 14: The method according to clause 9, further comprising keeping the data received from the NAND flash memory in a buffer until the decoding task corresponding to the data is queued from the first task and the One of the second task queue is released.

條款15:根據條款9所述的方法,進一步包括:在第一任務完成佇列中對第一優先順序的已完成的解碼任務進行排隊;以及在第二任務完成佇列中對第二優先順序的已完成的解碼任務進行排隊;以及根據已完成的解碼任務的優先順序來報告來自第一任務完成佇列和第二任務完成佇列中的已完成的解碼任務。 Clause 15: The method according to Clause 9, further comprising: queuing the completed decoding tasks in the first priority order in the first task completion queue; and queuing the second priority order in the second task completion queue Queue the completed decoding tasks; and report the completed decoding tasks from the first task completion queue and the second task completion queue according to the priority of the completed decoding tasks.

條款16:根據條款15所述的方法,其中,根據已完成的解碼任務的優先順序報告來自所述第一任務完成佇列和所述第二任務完成佇列中的已完成的解碼任務包括:在報告所述第一優先順序的任何已完成的解碼任務之前,報告所述第二優先順序的所有已完成的解碼任務。 Clause 16: The method according to Clause 15, wherein the reporting of completed decoding tasks from the first task completion queue and the second task completion queue according to the priority of the completed decoding tasks includes: Before reporting any completed decoding tasks in the first priority order, report all completed decoding tasks in the second priority order.

條款17:進一步包括:在第一任務完成佇列中的已完成的解 碼任務的排隊之後的預定持續時間之後,將已完成的解碼任務的優先順序水準從第一優先順序改變為所述第二優先順序。 Article 17: Further includes: the completed solution in the first task completion queue After a predetermined duration after the queuing of the code task, the priority level of the completed decoding task is changed from the first priority order to the second priority order.

條款18:根據條款15所述的方法,其中,根據已完成的解碼任務的優先順序來報告來自第一任務完成佇列和第二任務完成佇列中的已完成的解碼任務包括:在報告來自第二任務完成佇列中的預定數目的任務之後,報告來自第一任務完成佇列的任務。 Clause 18: The method according to clause 15, wherein reporting the completed decoding tasks from the first task completion queue and the second task completion queue according to the priority of the completed decoding tasks includes: After the second task completes the predetermined number of tasks in the queue, the task from the first task complete queue is reported.

條款19:根據條款9所述的方法,其中,從第一任務佇列和第二任務佇列中釋放多個解碼任務中的相應解碼任務,以根據在多個解碼任務中的相應解碼任務的優先順序來對資料部分中的相應部分進行操作包括:在釋放第一優先順序的任何解碼任務之前,釋放第二優先順序的所有解碼任務。 Clause 19: The method according to Clause 9, wherein the corresponding decoding task among the plurality of decoding tasks is released from the first task queue and the second task queue, so that the corresponding decoding task in the plurality of decoding tasks The priority order to operate the corresponding part of the data part includes: releasing all decoding tasks in the second priority order before releasing any decoding tasks in the first priority order.

條款20:根據條款19所述的方法,進一步包括:在對第一任務佇列中的解碼任務的進行排隊之後的預定持續時間之後,將解碼任務的優先順序水準從第一優先順序改變為所述第二優先順序。 Clause 20: The method according to Clause 19, further comprising: after a predetermined duration after queuing the decoding tasks in the first task queue, changing the priority level of the decoding tasks from the first priority order to all the decoding tasks. The second priority order.

條款21:根據條款9所述的方法,其中,從第一任務佇列和第二任務佇列中釋放多個解碼任務中的相應解碼任務,以根據在多個解碼任務中的相應解碼任務的優先順序來對資料部分中的相應部分進行操作包括:在釋放來自第二任務佇列中的預定數目的任務之後,釋放來自所述第一任務佇列的任務。 Clause 21: The method according to Clause 9, wherein the corresponding decoding task among the plurality of decoding tasks is released from the first task queue and the second task queue, so that the corresponding decoding task in the plurality of decoding tasks Prioritizing operations on corresponding parts in the data part includes: releasing tasks from the first task queue after releasing a predetermined number of tasks from the second task queue.

如本文和所附申請專利範圍中所使用的,結構“A和B中的一個”將意指“A或B”。 As used herein and in the scope of the appended application, the structure "one of A and B" will mean "A or B."

應當理解,前述僅是說明本發明的原理,並且本發明可以通 過除了所描述的實施例之外的其他實施例來實踐,所述實施例是為了說明而不是限制的目的而呈現的,並且本發明僅由所附申請專利範圍限定。 It should be understood that the foregoing is only to illustrate the principle of the present invention, and the present invention can be It is practiced through other embodiments in addition to the described embodiments, which are presented for the purpose of illustration rather than limitation, and the present invention is only limited by the scope of the attached patent application.

130‧‧‧處理器 130‧‧‧Processor

102‧‧‧主機 102‧‧‧Host

111‧‧‧主機介面 111‧‧‧Host Interface

112‧‧‧ECC編碼器 112‧‧‧ECC encoder

113‧‧‧NAND閃速介面 113‧‧‧NAND flash interface

123‧‧‧主機介面 123‧‧‧Host Interface

122‧‧‧ECC解碼器 122‧‧‧ECC Decoder

121‧‧‧NAND閃速介面 121‧‧‧NAND flash interface

100‧‧‧NAND閃速控制器 100‧‧‧NAND Flash Controller

101‧‧‧NAND閃速記憶體 101‧‧‧NAND flash memory

Claims (19)

一種用於在NAND閃速記憶體控制器中執行解碼任務的裝置,其中,所述NAND閃速記憶體控制器包括多個記憶體通道,所述裝置包括:相應第一任務佇列,用於所述多個通道中的每個相應通道,對第一優先順序的解碼任務進行排隊;相應第二任務佇列,用於所述多個通道中的每個相應通道,對高於所述第一優先順序的第二優先順序的解碼任務進行排隊;至少一個第一解碼器,所述至少一個第一解碼器在第一改錯碼解碼方案下進行操作;至少一個第二解碼器,所述至少一個第二解碼器在第二改錯碼解碼方案下進行操作,所述第二改錯碼解碼方案在速度和複雜度中的一個或二個方面不同於所述第一改錯碼解碼方案;輸入切換電路,所述輸入切換電路可控制地將每個資料通道連接到所述第一解碼器和所述第二解碼器中的一個;以及控制電路,所述控制電路包括針對每個相應通道的相應通道任務控制塊,用於從針對所述相應通道的所述相應第一任務佇列和所述相應第二任務佇列中釋放解碼任務,以控制所述輸入切換電路將用於所述相應通道的相應資料引導到所述第一解碼器和所述第二解碼器中的一個,其中:所述控制電路在接收到用於多個解碼任務的資料部分時,從所述相應第一任務佇列和所述相應第二任務佇列中釋放所述多個解碼任務中的相應解碼任務,以根據所述多個解碼任務中的所述相應解碼任務的優先順序來 對所述資料部分中的相應部分進行操作。 A device for performing decoding tasks in a NAND flash memory controller, wherein the NAND flash memory controller includes a plurality of memory channels, and the device includes: a corresponding first task queue for Each corresponding channel of the plurality of channels queues the decoding tasks of the first priority; the corresponding second task queue is used for each corresponding channel of the plurality of channels, and the pair is higher than the first priority. The decoding tasks in the second priority order of a priority order are queued; at least one first decoder, the at least one first decoder operates under the first error correction code decoding scheme; at least one second decoder, the At least one second decoder operates under a second error correction code decoding scheme, which is different from the first error correction code decoding scheme in one or both of speed and complexity An input switching circuit, the input switching circuit controllably connects each data channel to one of the first decoder and the second decoder; and a control circuit, the control circuit including for each corresponding The corresponding channel task control block of the channel is used to release the decoding task from the corresponding first task queue and the corresponding second task queue for the corresponding channel to control the input switching circuit to be used for all The corresponding data of the corresponding channel is guided to one of the first decoder and the second decoder, wherein: when the control circuit receives the data part for multiple decoding tasks, the data from the corresponding first decoder In a task queue and the corresponding second task queue, the corresponding decoding tasks among the plurality of decoding tasks are released, so that the corresponding decoding tasks among the plurality of decoding tasks are released according to the priority order of the corresponding decoding tasks among the plurality of decoding tasks. Operate the corresponding part in the data section. 根據請求項1所述的裝置,其中:所述至少一個第一解碼器包括多個第一解碼器;所述至少一個第二解碼器包括多個第二解碼器;以及所述輸入切換電路包括:針對每個相應通道的相應解複用器,用於將所述相應通道上的資料可選擇地引導到所述多個第一解碼器和所述多個第二解碼器中的一個,第一開關,所述第一開關用於將針對所述多個第一解碼器的解複用器輸出引導到所述多個第一解碼器中可用的第一解碼器,以及第二開關,所述第二開關用於將針對所述多個第二解碼器的解複用器的輸出引導到所述多個第二解碼器中可用的第二解碼器。 The apparatus according to claim 1, wherein: the at least one first decoder includes a plurality of first decoders; the at least one second decoder includes a plurality of second decoders; and the input switching circuit includes : The corresponding demultiplexer for each corresponding channel is used to selectively guide the data on the corresponding channel to one of the plurality of first decoders and the plurality of second decoders, the first A switch for directing the output of the demultiplexer for the plurality of first decoders to the available first decoder among the plurality of first decoders, and a second switch, so The second switch is used to direct the output of the demultiplexer for the plurality of second decoders to the available second decoder among the plurality of second decoders. 根據請求項1所述的裝置,進一步包括:針對每個相應通道的相應緩衝器,用於保持在所述相應通道上接收到的資料,直至與所述資料相對應的解碼任務從所述相應第一任務佇列和所述相應第二任務佇列中的一個任務佇列釋放。 The device according to claim 1, further comprising: a corresponding buffer for each corresponding channel, configured to hold the data received on the corresponding channel until the decoding task corresponding to the data changes from the corresponding One of the first task queue and the corresponding second task queue is released. 根據請求項1所述的裝置,進一步包括:輸出切換電路,所述輸出切換電路用於輸出所述第一解碼器和所述第二解碼器中的一個解碼器的輸出;其中:所述控制電路包括解碼器完成控制電路,所述解碼器完成控制電路在從所述第一解碼器和所述第二解碼器中的所述一個解碼器接收到解碼器完成信號時,選擇所述第一解碼器和所述第二解碼器中的所述一個解碼器的輸出。 The apparatus according to claim 1, further comprising: an output switching circuit configured to output an output of one of the first decoder and the second decoder; wherein: the control The circuit includes a decoder completion control circuit, and the decoder completion control circuit selects the first decoder when a decoder completion signal is received from the one of the first decoder and the second decoder. The output of the one of the decoder and the second decoder. 根據請求項4所述的裝置,進一步包括:第一任務完成佇列,用於對所述第一優先順序的已完成的解碼任務進行排隊;以及第二任務完成佇列,用於對所述第二優先順序的已完成的解碼任務進行排隊;其中:所述解碼器完成控制電路將每個已完成的解碼任務載入到所述第一任務完成佇列和所述第二任務完成佇列中的一個任務完成佇列中;並且所述控制電路進一步包括解碼器完成狀態控制電路,所述解碼器完成狀態控制電路根據所述已完成的解碼任務的優先順序來報告來自所述第一任務完成佇列和所述第二任務完成佇列的已完成的解碼任務。 The apparatus according to claim 4, further comprising: a first task completion queue for queuing the completed decoding tasks in the first priority order; and a second task completion queue for queuing the The completed decoding tasks in the second priority order are queued; wherein: the decoder completion control circuit loads each completed decoding task into the first task completion queue and the second task completion queue And the control circuit further includes a decoder completion status control circuit, the decoder completion status control circuit reports from the first task according to the priority order of the completed decoding tasks Completing the queue and the second task completing the completed decoding task of the queue. 根據請求項1所述的裝置,進一步包括:緩衝器,所述緩衝器用於保持從NAND閃速記憶體接收到的資料,直至與所述資料相對應的解碼任務從所述相應第一任務佇列和所述相應第二任務佇列中的一個任務佇列中被釋放。 The device according to claim 1, further comprising: a buffer for holding the data received from the NAND flash memory until the decoding task corresponding to the data is queued from the corresponding first task And the corresponding second task queue is released in one task queue. 根據請求項1所述的裝置,進一步包括:第一任務完成佇列,用於對所述第一優先順序的已完成的解碼任務進行排隊;以及第二任務完成佇列,用於對所述第二優先順序的已完成的解碼任務進行排隊;其中:所述控制電路根據所述已完成的解碼任務的優先順序,報告來自所述第一任務完成佇列和所述第二任務完成佇列的已完成的解碼任務。 The apparatus according to claim 1, further comprising: a first task completion queue for queuing the completed decoding tasks in the first priority order; and a second task completion queue for queuing the The completed decoding tasks in the second priority order are queued; wherein: the control circuit reports from the first task completion queue and the second task completion queue according to the priority order of the completed decoding tasks The completed decoding task. 一種用於在NAND閃速記憶體控制器中執行解碼任務的方法, 其中,所述NAND閃速記憶體控制器包括多個記憶體通道,所述方法包括:針對所述多個通道中的每個相應通道來在相應第一任務佇列中對第一優先順序的解碼任務進行排隊;針對所述多個通道中的每個相應通道來在相應第二任務佇列中對高於所述第一優先順序的第二優先順序的解碼任務進行排隊;將每個資料通道可控制地連接到第一解碼器和第二解碼器中的一個,所述第一解碼器在第一改錯碼解碼方案下進行操作,所述第二解碼器在第二改錯碼解碼方案下進行操作,所述第二改錯碼解碼方案在速度和複雜度中的一個或兩個方面不同於所述第一改錯碼解碼方案;以及在接收到用於多個解碼任務的資料部分時,從所述相應第一任務佇列和所述相應第二任務佇列中釋放所述多個解碼任務中的相應解碼任務,以根據所述多個解碼任務中的所述相應解碼任務的優先順序來對所述資料部分中的相應部分進行操作。 A method for performing decoding tasks in a NAND flash memory controller, Wherein, the NAND flash memory controller includes a plurality of memory channels, and the method includes: for each corresponding channel of the plurality of channels, performing a first priority order in the corresponding first task queue Queue the decoding tasks; queue the decoding tasks in the second priority order higher than the first priority order in the corresponding second task queue for each corresponding channel of the plurality of channels; The channel is controllably connected to one of the first decoder and the second decoder. The first decoder operates under the first error correction code decoding scheme, and the second decoder performs the second error correction code decoding scheme. Operating under the scheme, the second error correction code decoding scheme is different from the first error correction code decoding scheme in one or both of speed and complexity; and after receiving data for multiple decoding tasks Partially, the corresponding decoding task among the plurality of decoding tasks is released from the corresponding first task queue and the corresponding second task queue, so that the corresponding decoding task among the plurality of decoding tasks The order of priority to operate on the corresponding part of the data section. 根據請求項8所述的方法,其中,所述可控制地連接包括:將每個資料通道可控制地連接到多個第一解碼器和多個第二解碼器中的一個,所述多個第一解碼器在所述第一改錯碼解碼方案下進行操作,所述多個第二解碼器在所述第二改錯碼解碼方案下進行操作的。 The method according to claim 8, wherein the controllably connecting includes: connecting each data channel to one of a plurality of first decoders and a plurality of second decoders, the plurality of The first decoder operates under the first error correction code decoding scheme, and the plurality of second decoders operate under the second error correction code decoding scheme. 根據請求項8所述的方法,進一步包括:針對每個相應通道,將在所述相應通道上接收到的資料保持在緩衝器中,直至與所述資料相對應的解碼任務從所述相應第一任務佇列和所述相應第二任務佇列中的一個任務佇列釋放。 The method according to claim 8, further comprising: for each corresponding channel, keeping the data received on the corresponding channel in a buffer until the decoding task corresponding to the data starts from the corresponding first A task queue in a task queue and the corresponding second task queue is released. 根據請求項8所述的方法,進一步包括:在第一任務完成佇列中對所述第一優先順序的已完成的解碼任務進行排隊;以及在第二任務完成佇列中對所述第二優先順序的已完成的解碼任務進行排隊;以及根據所述已完成的解碼任務的優先順序,報告來自所述第一任務完成佇列和所述第二任務完成佇列的已完成的解碼任務。 The method according to claim 8, further comprising: queuing the completed decoding tasks in the first priority order in a first task completion queue; and queuing the second task in a second task completion queue The completed decoding tasks in the priority order are queued; and according to the priority order of the completed decoding tasks, the completed decoding tasks from the first task completion queue and the second task completion queue are reported. 根據請求項8所述的方法,進一步包括將從NAND閃速記憶體接收到的資料保持在緩衝器中,直至與所述資料相對應的解碼任務從所述相應第一任務佇列和所述相應第二任務佇列中的一個任務佇列中被釋放。 The method according to claim 8, further comprising keeping the data received from the NAND flash memory in the buffer until the decoding task corresponding to the data is queued from the corresponding first task and the A task queue in the corresponding second task queue is released. 根據請求項8所述的方法,進一步包括:在第一任務完成佇列中對所述第一優先順序的已完成的解碼任務進行排隊;以及在第二任務完成佇列中對所述第二優先順序的已完成的解碼任務進行排隊;以及根據所述已完成的解碼任務的優先順序,報告來自所述第一任務完成佇列和所述第二任務完成佇列的已完成的解碼任務。 The method according to claim 8, further comprising: queuing the completed decoding tasks in the first priority order in a first task completion queue; and queuing the second task in a second task completion queue The completed decoding tasks in the priority order are queued; and according to the priority order of the completed decoding tasks, the completed decoding tasks from the first task completion queue and the second task completion queue are reported. 根據請求項13所述的方法,其中,根據所述已完成的解碼任務的優先順序報告來自所述第一任務完成佇列和所述第二任務完成佇列的已完成的解碼任務包括:在報告所述第一優先順序的任何已完成的解碼任務之前,報告所述第二優先順序的所有已完成的解碼任務。 The method according to claim 13, wherein the reporting of the completed decoding tasks from the first task completion queue and the second task completion queue according to the priority order of the completed decoding tasks includes: Before reporting any completed decoding tasks in the first priority order, report all completed decoding tasks in the second priority order. 根據請求項14所述的方法,進一步包括:在對所述第一任務完成佇列中的所述已完成的解碼任務的進行排隊之後的預定持續時間之後,將已完成的解碼任務的優先順序水準從所述第一優先順序改變為所述第二優先順序。 The method according to claim 14, further comprising: after a predetermined duration after queuing the completed decoding tasks in the first task completion queue, prioritizing the completed decoding tasks The level is changed from the first priority order to the second priority order. 根據請求項13所述的方法,其中,根據所述已完成的解碼任務的優先順序報告來自所述第一任務完成佇列和所述第二任務完成佇列的已完成的解碼任務包括:在報告來自所述第二任務完成佇列中的預定數目的任務之後,報告來自所述第一任務完成佇列的任務。 The method according to claim 13, wherein the reporting of the completed decoding tasks from the first task completion queue and the second task completion queue according to the priority order of the completed decoding tasks includes: After reporting a predetermined number of tasks from the completion queue of the second task, report the tasks from the completion queue of the first task. 根據請求項8所述的方法,其中,從所述相應第一任務佇列和所述相應第二任務佇列中釋放所述多個解碼任務中的相應解碼任務以根據在所述多個解碼任務中的所述相應解碼任務的優先順序來對所述資料部分中的相應部分進行操作包括:在釋放所述第一優先順序的任何解碼任務之前,釋放所述第二優先順序的所有解碼任務。 The method according to claim 8, wherein the corresponding decoding task of the plurality of decoding tasks is released from the corresponding first task queue and the corresponding second task queue to be based on The priority order of the corresponding decoding task in the task to operate on the corresponding part in the data part includes: releasing all decoding tasks in the second priority order before releasing any decoding tasks in the first priority order . 根據請求項17所述的方法,進一步包括:在所述第一任務佇列中的所述解碼任務的排隊之後的預定持續時間之後,將解碼任務的優先順序水準從所述第一優先順序改變為所述第二優先順序。 The method according to claim 17, further comprising: changing the priority level of the decoding task from the first priority order after a predetermined duration after the queuing of the decoding task in the first task queue Is the second priority order. 根據請求項8所述的方法,其中,從所述相應第一任務佇列和所述相應第二任務佇列中釋放所述多個解碼任務中的相應解碼任務以根據在所述多個解碼任務中的所述相應解碼任務的優先順序來對所述資料部分中的相應部分進行操作包括:在釋放來自所述相應第二任務佇列中的預定數目的任務之後,釋放來自所述相應第一任務佇列的任務。 The method according to claim 8, wherein the corresponding decoding task of the plurality of decoding tasks is released from the corresponding first task queue and the corresponding second task queue to be based on The priority sequence of the corresponding decoding task in the task to operate the corresponding part in the data part includes: after releasing a predetermined number of tasks from the corresponding second task queue, releasing the tasks from the corresponding second task queue. A task in a task queue.
TW105140915A 2015-12-11 2016-12-09 Queuing of decoding tasks according to priority in nand flash controller TWI713648B (en)

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
TW201729200A TW201729200A (en) 2017-08-16
TWI713648B true TWI713648B (en) 2020-12-21

Family

ID=59020757

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105140915A TWI713648B (en) 2015-12-11 2016-12-09 Queuing of decoding tasks according to priority in nand flash controller

Country Status (4)

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

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7048289B2 (en) * 2017-12-08 2022-04-05 キオクシア株式会社 Information processing equipment and methods
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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110213945A1 (en) * 2010-02-26 2011-09-01 Apple Inc. Data partitioning scheme for non-volatile memories
US20150100726A1 (en) * 2013-10-03 2015-04-09 Cleversafe, Inc. Dispersed storage system with width dispersal control and methods for use therewith

Family Cites Families (13)

* 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
KR100194039B1 (en) * 1996-04-19 1999-06-15 윤종용 Priority processing circuit of MPEG system
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
US7523228B2 (en) * 2006-09-18 2009-04-21 International Business Machines Corporation Method for performing a direct memory access block move in a direct memory access device
CN102203752B (en) * 2008-07-29 2014-04-30 新诺普系统公司 Data processing circuit with arbitration between a plurality of queues
US8548061B2 (en) * 2008-08-05 2013-10-01 Panasonic Corporation Image decoding apparatus and image decoding method
CN102480337B (en) * 2010-11-30 2016-04-13 国际商业机器公司 Radio software system and for its decoding device and 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
US9727275B2 (en) * 2014-12-02 2017-08-08 International Business Machines Corporation Coordinating storage of data in dispersed storage networks
CN104850456A (en) * 2015-05-27 2015-08-19 苏州科达科技股份有限公司 Multi-process decoding method and multi-process decoding system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110213945A1 (en) * 2010-02-26 2011-09-01 Apple Inc. Data partitioning scheme for non-volatile memories
US20150100726A1 (en) * 2013-10-03 2015-04-09 Cleversafe, Inc. Dispersed storage system with width dispersal control and methods for use therewith

Also Published As

Publication number Publication date
TW201729200A (en) 2017-08-16
US10089175B2 (en) 2018-10-02
US20170168895A1 (en) 2017-06-15
CN106874081A (en) 2017-06-20
CN106874081B (en) 2022-07-22
KR20170074759A (en) 2017-06-30

Similar Documents

Publication Publication Date Title
TWI713648B (en) Queuing of decoding tasks according to priority in nand flash controller
US11467769B2 (en) Managed fetching and execution of commands from submission queues
US20200127685A1 (en) Systems and methods for a hybrid non-volatile storage system
JP5186382B2 (en) Method and system for enabling indeterminate read data latency in a memory system
US9304952B2 (en) Memory control device, storage device, and memory control method
CN100388253C (en) Dma transfer controller
CN106874210B (en) Controller for semiconductor memory device and method of operating the same
TWI249674B (en) A method, article and apparatus for providing flexible bandwidth allocation via multiple instantiations of separate buses
JPS58109951A (en) Stoppage device for memory controller with interleave queuing unit
JP2009087332A (en) Apparatus, system, method and program for collecting dump data
US20140325124A1 (en) Memory system and method for operating a memory system
US10503438B1 (en) Memory sub-system supporting non-deterministic commands
US20220083266A1 (en) Plane-based queue configuration for aipr-enabled drives
US20130173997A1 (en) Memory controller, memory system, and memory write method
US20070156937A1 (en) Data transfer in multiprocessor system
ES2381233T3 (en) Method and apparatus for data processing using the queuing field
JP2006092521A (en) Nonvolatile memory storage device including interface select switch, and associated method
US7272692B2 (en) Arbitration scheme for memory command selectors
KR101747794B1 (en) Error correction decoder and error correction method thereof
US20230030672A1 (en) Die-based high and low priority error queues
KR20210084632A (en) Open Channel Vector Command Execution
US11204829B2 (en) Systems and methods for an ECC architecture with prioritized task queues
EP3896881A1 (en) Harq data storage management method and device and harq data buffer
EP0802683A2 (en) Data priority processing for MPEG system
JP2006202271A (en) Stream processor and information processor