本文要求2015年12月11日提交的未決的共同轉(zhuǎn)讓的美國(guó)臨時(shí)專利申請(qǐng)?zhí)?2/266,193的權(quán)益,其全部?jī)?nèi)容通過(guò)引用合并于此。
技術(shù)領(lǐng)域
本公開(kāi)的主題的實(shí)現(xiàn)通常屬于用于在NAND閃速控制器中將解碼任務(wù)根據(jù)其優(yōu)先級(jí)指派給不同隊(duì)列的方法和裝置,包括適用于針對(duì)不同優(yōu)先級(jí)的任務(wù)的不同解碼器。
背景技術(shù):
本文提供的背景技術(shù)描述是出于一般地呈現(xiàn)本公開(kāi)的上下文的目的。本發(fā)明人的工作在該背景技術(shù)部分中描述工作的程度上以及在提交時(shí)可能沒(méi)有以其他方式限定為現(xiàn)有技術(shù)的描述的各方面,既不明示地不暗示地被承認(rèn)是抵觸本公開(kāi)的現(xiàn)有技術(shù)。
多電平單元(MLC)NAND閃速存儲(chǔ)器正變得普及,因?yàn)槊繂挝粩?shù)據(jù)存儲(chǔ)的成本相對(duì)于單電平單元(SLC)NAND閃速存儲(chǔ)器儲(chǔ)器的成本減小。然而,因?yàn)槎嘤谝槐忍氐男畔⒈淮鎯?chǔ)在每個(gè)單元中,所以MLC NAND閃速存儲(chǔ)器還經(jīng)歷比SLC NAND閃速存儲(chǔ)器更高的原始誤比特率。
為了滿足可靠性要求,與在SLC NAND閃速存儲(chǔ)器設(shè)備中相比,可以在MLC NAND閃速存儲(chǔ)器設(shè)備中使用更高級(jí)的糾錯(cuò)方案。然而,諸如讀取重試解碼和軟判定解碼的高級(jí)糾錯(cuò)方案的復(fù)雜性可以增加NAND閃速存儲(chǔ)器數(shù)據(jù)存取操作的時(shí)延。對(duì)于不同的應(yīng)用,數(shù)據(jù)存取時(shí)延的影響將不同。例如,諸如主機(jī)數(shù)據(jù)讀取的一些關(guān)鍵操作可能需要相對(duì)低的存儲(chǔ)器存取時(shí)延,而諸如一些后臺(tái)操作(例如,用于垃圾收集的數(shù)據(jù)存取)的其他操作可能對(duì)時(shí)延的程度較不敏感。
技術(shù)實(shí)現(xiàn)要素:
一種用于在NAND閃速存儲(chǔ)器控制器中執(zhí)行解碼任務(wù)的裝置,所述裝置包括:用于對(duì)第一優(yōu)先級(jí)的解碼任務(wù)進(jìn)行排隊(duì)的第一任務(wù)隊(duì)列;用于對(duì)高于所述第一優(yōu)先級(jí)的第二優(yōu)先級(jí)的解碼任務(wù)進(jìn)行排隊(duì)的第二任務(wù)隊(duì)列;以及控制電路,所述控制電路在接收到用于多個(gè)解碼任務(wù)的數(shù)據(jù)部分時(shí),從所述第一任務(wù)隊(duì)列和所述第二任務(wù)隊(duì)列中釋放所述多個(gè)解碼任務(wù)中的相應(yīng)解碼任務(wù),以根據(jù)所述多個(gè)解碼任務(wù)中的相應(yīng)解碼任務(wù)的優(yōu)先級(jí)來(lái)對(duì)所述數(shù)據(jù)部分中的相應(yīng)部分進(jìn)行操作。
在這種裝置中,其中,NAND閃速存儲(chǔ)器控制器包括多個(gè)存儲(chǔ)器通道,該裝置可以進(jìn)一步包括用于所述多個(gè)通道中的每個(gè)相應(yīng)通道的相應(yīng)第一任務(wù)隊(duì)列、以及用于所述多個(gè)通道中的每個(gè)相應(yīng)通道的相應(yīng)第二任務(wù)隊(duì)列。至少一個(gè)第一解碼器在第一糾錯(cuò)碼解碼方案下進(jìn)行操作,并且至少一個(gè)第二解碼器在第二糾錯(cuò)碼解碼方案下進(jìn)行操作,該第二糾錯(cuò)碼解碼方案在速度和復(fù)雜度中的一個(gè)或二者方面不同于第一糾錯(cuò)碼解碼方案。輸入切換電路可控制地將每個(gè)數(shù)據(jù)通道連接到第一解碼器和第二解碼器中的一個(gè)??刂齐娐钒ㄡ槍?duì)每個(gè)相應(yīng)通道的相應(yīng)通道任務(wù)控制塊,以用于從針對(duì)該相應(yīng)通道的相應(yīng)第一任務(wù)隊(duì)列和第二任務(wù)隊(duì)列中釋放解碼任務(wù),以控制所述輸入切換電路將用于相應(yīng)通道的相應(yīng)數(shù)據(jù)引導(dǎo)到第一解碼器和第二解碼器中的一個(gè)。
在這樣的實(shí)現(xiàn)中,至少一個(gè)第一解碼器包括多個(gè)第一解碼器,至少一個(gè)第二解碼器包括多個(gè)第二解碼器,并且輸入切換電路包括針對(duì)每個(gè)相應(yīng)通道的相應(yīng)解復(fù)用器,用于將所述相應(yīng)通道上的數(shù)據(jù)可選擇地引導(dǎo)到多個(gè)第一解碼器和多個(gè)第二解碼器中的一個(gè);第一開(kāi)關(guān),用于將針對(duì)多個(gè)第一解碼器的解復(fù)用器輸出引導(dǎo)到多個(gè)第一解碼器中的可用第一解碼器;以及第二開(kāi)關(guān),用于將針對(duì)多個(gè)第二解碼器的解復(fù)用器的輸出引導(dǎo)到多個(gè)第二解碼器中的可用解碼器。
這樣的實(shí)現(xiàn)還可以進(jìn)一步包括針對(duì)每個(gè)相應(yīng)通道的相應(yīng)緩沖器,用于保持在該相應(yīng)通道上接收的數(shù)據(jù),直至與該數(shù)據(jù)相對(duì)應(yīng)的解碼任務(wù)從第一任務(wù)隊(duì)列和第二任務(wù)隊(duì)列中的一個(gè)釋放。
這樣的實(shí)現(xiàn)可以進(jìn)一步包括輸出切換電路,該輸出切換電路用于輸出第一解碼器和第二解碼器中的一個(gè)的輸出。在這種實(shí)現(xiàn)中,控制電路包括解碼器完成控制電路,該解碼器完成控制電路在從第一解碼器和第二解碼器中的一個(gè)接收到解碼器完成信號(hào)時(shí),選擇第一解碼器和第二解碼器中的一個(gè)的輸出。這樣的實(shí)現(xiàn)可以進(jìn)一步包括用于對(duì)第一優(yōu)先級(jí)的已完成的解碼任務(wù)進(jìn)行排隊(duì)的第一任務(wù)完成隊(duì)列,以及用于對(duì)所述第二優(yōu)先級(jí)的已完成的解碼任務(wù)進(jìn)行排隊(duì)的第二任務(wù)完成隊(duì)列,其中解碼器完成控制電路將每個(gè)已完成的解碼任務(wù)加載到第一任務(wù)完成隊(duì)列和第二任務(wù)完成隊(duì)列中的一個(gè)中,并且控制電路進(jìn)一步包括解碼器完成狀態(tài)控制電路,該解碼器完成狀態(tài)控制電路根據(jù)已完成的解碼任務(wù)的優(yōu)先級(jí)報(bào)告來(lái)自第一任務(wù)完成隊(duì)列和第二任務(wù)完成隊(duì)列中的已完成的解碼任務(wù)。
這樣的裝置可以進(jìn)一步包括緩沖器,用于保持從NAND閃速存儲(chǔ)器接收的數(shù)據(jù),直至與數(shù)據(jù)相對(duì)應(yīng)的解碼任務(wù)從所述第一任務(wù)隊(duì)列和所述第二任務(wù)隊(duì)列中的一個(gè)中被釋放。
這樣的裝置可以進(jìn)一步包括用于對(duì)第一優(yōu)先級(jí)的已完成的解碼任務(wù)進(jìn)行排隊(duì)的第一任務(wù)完成隊(duì)列;以及用于對(duì)第二優(yōu)先級(jí)的已完成的解碼任務(wù)進(jìn)行排隊(duì)的第二任務(wù)完成隊(duì)列,其中控制電路根據(jù)所述已完成的解碼任務(wù)的優(yōu)先級(jí)來(lái)報(bào)告來(lái)自所述第一任務(wù)完成隊(duì)列和所述第二任務(wù)完成隊(duì)列中的已完成的解碼任務(wù)。
一種用于在NAND閃速存儲(chǔ)器控制器中執(zhí)行解碼任務(wù)的方法,可以包括:在第一任務(wù)隊(duì)列中對(duì)第一優(yōu)先級(jí)的解碼任務(wù)進(jìn)行排隊(duì);在第二任務(wù)隊(duì)列中對(duì)高于所述第一優(yōu)先級(jí)的第二優(yōu)先級(jí)的解碼任務(wù)進(jìn)行排隊(duì);以及在接收到用于多個(gè)解碼任務(wù)的數(shù)據(jù)部分時(shí),從第一任務(wù)隊(duì)列和第二任務(wù)隊(duì)列中釋放所述多個(gè)解碼任務(wù)中的相應(yīng)解碼任務(wù),以根據(jù)多個(gè)解碼任務(wù)中的相應(yīng)解碼任務(wù)的優(yōu)先級(jí)來(lái)對(duì)數(shù)據(jù)部分中的相應(yīng)部分進(jìn)行操作。
在這種方法的一個(gè)實(shí)現(xiàn)中,其中在NAND閃速存儲(chǔ)器控制器包括多個(gè)存儲(chǔ)器通道時(shí),對(duì)第一優(yōu)先級(jí)的解碼任務(wù)進(jìn)行排隊(duì)可以包括:針對(duì)多個(gè)通道中的每個(gè)相應(yīng)通道來(lái)在相應(yīng)第一任務(wù)隊(duì)列中對(duì)解碼任務(wù)進(jìn)行排隊(duì);以及對(duì)第二優(yōu)先級(jí)的解碼任務(wù)進(jìn)行排隊(duì)可以包括:針對(duì)多個(gè)通道中的每個(gè)相應(yīng)通道來(lái)在相應(yīng)第二任務(wù)隊(duì)列中對(duì)解碼任務(wù)進(jìn)行排隊(duì)。該方法可以進(jìn)一步包括將每個(gè)數(shù)據(jù)通道可控制地連接到第一解碼器和第二解碼器中的一個(gè),第一解碼器在第一糾錯(cuò)碼解碼方案下進(jìn)行操作,第二解碼器在第二糾錯(cuò)碼解碼方案下進(jìn)行操作,第二糾錯(cuò)碼解碼方案在速度和復(fù)雜度中的一個(gè)或二者方面不同于第一糾錯(cuò)碼解碼方案。
在這樣的實(shí)現(xiàn)中,可控制地連接包括:將每個(gè)數(shù)據(jù)通道可控制地連接到多個(gè)第一解碼器和多個(gè)第二解碼器中的一個(gè),多個(gè)第一解碼器在第一糾錯(cuò)碼解碼方案下進(jìn)行操作,多個(gè)第二解碼器在第二糾錯(cuò)碼解碼方案下進(jìn)行操作。
這樣的實(shí)現(xiàn)可以進(jìn)一步包括:針對(duì)每個(gè)相應(yīng)通道,將在相應(yīng)通道上接收的數(shù)據(jù)保持在緩沖器中,直至與數(shù)據(jù)相對(duì)應(yīng)的解碼任務(wù)從第一任務(wù)隊(duì)列和第二任務(wù)隊(duì)列中釋放。
這樣的實(shí)現(xiàn)還可以進(jìn)一步包括:在第一任務(wù)完成隊(duì)列中對(duì)第一優(yōu)先級(jí)的已完成的解碼任務(wù)進(jìn)行排隊(duì);以及在第二任務(wù)完成隊(duì)列中對(duì)第二優(yōu)先級(jí)的已完成的解碼任務(wù)進(jìn)行排隊(duì);以及根據(jù)已完成的解碼任務(wù)的優(yōu)先級(jí)來(lái)報(bào)告來(lái)自所述第一任務(wù)完成隊(duì)列和所述第二任務(wù)完成隊(duì)列的完成的解碼任務(wù)。
這樣的方法還可以進(jìn)一步包括將從NAND閃速存儲(chǔ)器接收的數(shù)據(jù)保持在緩沖器中,直至與數(shù)據(jù)相對(duì)應(yīng)的解碼任務(wù)從第一任務(wù)隊(duì)列和第二任務(wù)隊(duì)列中的一個(gè)中被釋放。
這種方法的實(shí)現(xiàn)可以進(jìn)一步包括:在第一任務(wù)完成隊(duì)列中對(duì)第一優(yōu)先級(jí)的完成的解碼任務(wù)進(jìn)行排隊(duì),在第二任務(wù)完成隊(duì)列中對(duì)第二優(yōu)先級(jí)的完成的解碼任務(wù)進(jìn)行排隊(duì),以及根據(jù)已完成的解碼任務(wù)的優(yōu)先級(jí)來(lái)報(bào)告來(lái)自第一任務(wù)完成隊(duì)列和第二任務(wù)完成隊(duì)列中的已完成的解碼任務(wù)。
在這樣的實(shí)現(xiàn)中,根據(jù)已完成的解碼任務(wù)的優(yōu)先級(jí)報(bào)告來(lái)自第一任務(wù)完成隊(duì)列和第二任務(wù)完成隊(duì)列中的已完成的解碼任務(wù)包括:在報(bào)告第一優(yōu)先級(jí)的任何已完成的解碼任務(wù)之前,報(bào)告第二優(yōu)先級(jí)的所有已完成的解碼任務(wù)。該實(shí)現(xiàn)可以進(jìn)一步包括在第一任務(wù)完成隊(duì)列中的已完成的解碼任務(wù)的排隊(duì)之后的預(yù)定持續(xù)時(shí)間之后,將已完成的解碼任務(wù)的優(yōu)先級(jí)水平從第一優(yōu)先級(jí)改變?yōu)榈诙?yōu)先級(jí)。
在這樣的實(shí)現(xiàn)中,根據(jù)已完成的解碼任務(wù)的優(yōu)先級(jí)來(lái)報(bào)告第一任務(wù)完成隊(duì)列和第二任務(wù)完成隊(duì)列中的已完成的解碼任務(wù)可以包括:在報(bào)告來(lái)自所述第二任務(wù)完成隊(duì)列中的預(yù)定數(shù)目的任務(wù)之后,報(bào)告來(lái)自第一任務(wù)完成隊(duì)列的任務(wù)。
在這樣的方法的實(shí)現(xiàn)中,從第一任務(wù)隊(duì)列和第二任務(wù)隊(duì)列中釋放所述多個(gè)解碼任務(wù)中的相應(yīng)解碼任務(wù),以根據(jù)在所述多個(gè)解碼任務(wù)中的相應(yīng)解碼任務(wù)的優(yōu)先級(jí)來(lái)對(duì)數(shù)據(jù)部分中的相應(yīng)部分進(jìn)行操作可以包括:在釋放所述第一優(yōu)先級(jí)的任何解碼任務(wù)之前,釋放第二優(yōu)先級(jí)的所有解碼任務(wù)。
這樣的實(shí)現(xiàn)可以進(jìn)一步包括在所述第一任務(wù)隊(duì)列中的解碼任務(wù)的排隊(duì)之后的預(yù)定持續(xù)時(shí)間之后,將解碼任務(wù)的優(yōu)先級(jí)水平從第一優(yōu)先級(jí)改變?yōu)樗龅诙?yōu)先級(jí)。
在這樣的方法中,從第一任務(wù)隊(duì)列和第二任務(wù)隊(duì)列中釋放多個(gè)解碼任務(wù)中的相應(yīng)解碼任務(wù),以根據(jù)在多個(gè)解碼任務(wù)中的相應(yīng)解碼任務(wù)的優(yōu)先級(jí)來(lái)對(duì)數(shù)據(jù)部分中的相應(yīng)部分進(jìn)行操作可以包括:在來(lái)自第二任務(wù)隊(duì)列中的預(yù)定數(shù)目的任務(wù)的釋放之后,釋放來(lái)自所述第一任務(wù)隊(duì)列的任務(wù)。
附圖說(shuō)明
在結(jié)合附圖考慮以下詳細(xì)描述之后,本公開(kāi)的其他特征、其性質(zhì)和各種優(yōu)點(diǎn)將是顯而易見(jiàn)的,在附圖中,相同的附圖標(biāo)記在全文中表示相同的部件,并且其中:
圖1示出可以使用本公開(kāi)的實(shí)現(xiàn)的NAND閃速存儲(chǔ)器控制器的框圖;
圖2示出根據(jù)可以在NAND閃速控制器中使用的本公開(kāi)的主題的實(shí)現(xiàn)的糾錯(cuò)碼解碼器的結(jié)構(gòu)的框圖;
圖3是根據(jù)本公開(kāi)的主題的實(shí)現(xiàn)的過(guò)程的流程圖,通過(guò)其可以填充圖2的解碼器中的針對(duì)每個(gè)數(shù)據(jù)通道的解碼任務(wù)隊(duì)列;
圖4是示出根據(jù)本公開(kāi)的主題的實(shí)現(xiàn)的過(guò)程的流程圖,用于從正常優(yōu)先級(jí)任務(wù)隊(duì)列或高優(yōu)先級(jí)任務(wù)隊(duì)列中的一個(gè)選擇用于執(zhí)行的任務(wù);
圖5是示出根據(jù)本公開(kāi)的主題的實(shí)現(xiàn)的用于在正常優(yōu)先級(jí)解碼任務(wù)和高優(yōu)先級(jí)解碼任務(wù)之間選擇規(guī)則集合的操作的流程圖;以及
圖6是示出根據(jù)本公開(kāi)的主題的實(shí)現(xiàn)的用于報(bào)告解碼任務(wù)的完成的過(guò)程的流程圖。
具體實(shí)施方式
如上所述,MLC NAND閃速存儲(chǔ)器可能經(jīng)歷比SLC NAND閃速存儲(chǔ)器更高的原始誤比特率。因此,為了滿足可靠性要求,與在SLCNAND閃速存儲(chǔ)器設(shè)備中相比,更多高級(jí)糾錯(cuò)方案可以在MLCNAND閃速存儲(chǔ)器設(shè)備中使用。然而,諸如讀取重試解碼和軟判定解碼的高級(jí)糾錯(cuò)方案的復(fù)雜性可以增加NAND閃速存儲(chǔ)器數(shù)據(jù)存取操作的時(shí)延。
因?yàn)槿缟纤龅臄?shù)據(jù)存取時(shí)延的影響對(duì)于不同應(yīng)用而不同,所以根據(jù)本公開(kāi)的實(shí)現(xiàn),可以不同地處理不同優(yōu)先級(jí)的存儲(chǔ)器存取操作。另外,可以在使用更復(fù)雜且耗時(shí)的解碼方案以及使用更簡(jiǎn)單和更快速的解碼方案之間實(shí)現(xiàn)折衷,更復(fù)雜且耗時(shí)的解碼方案更可能在第一嘗試就成功,更簡(jiǎn)單和更快速的解碼方案可能偶然失敗且需要多于一次的嘗試。
總而言之,即使可能發(fā)生需要重試操作的偶然故障,也可以通過(guò)對(duì)大多數(shù)存儲(chǔ)器存取操作使用更簡(jiǎn)單和更快速的解碼方案,同時(shí)對(duì)更高優(yōu)先級(jí)的解碼任務(wù)使用更復(fù)雜和耗時(shí)的解碼方案,來(lái)最大化總體吞吐量。
此外,在“插隊(duì)”特征下,即使較高優(yōu)先級(jí)解碼任務(wù)稍后啟動(dòng),也可以在正常優(yōu)先級(jí)解碼任務(wù)之前執(zhí)行較高優(yōu)先級(jí)解碼任務(wù)。
可以參考圖1-6來(lái)理解本公開(kāi)的主題的實(shí)現(xiàn)。
圖1示出了在一個(gè)或多個(gè)NAND閃速存儲(chǔ)器設(shè)備101和主機(jī)設(shè)備102之間的NAND閃速存儲(chǔ)器控制器100。NAND閃速控制器100包括“編程”或?qū)懭肼窂?10以及讀取路徑120,來(lái)自主機(jī)設(shè)備102的數(shù)據(jù)可以沿寫(xiě)入路徑110被寫(xiě)入到NAND閃速存儲(chǔ)器設(shè)備101,并且通過(guò)主機(jī)設(shè)備102沿讀取路徑120可以從NAND閃速存儲(chǔ)器設(shè)備101讀取數(shù)據(jù)。寫(xiě)入路徑110包括將以主機(jī)格式接收數(shù)據(jù)的主機(jī)接口111、用于將由主機(jī)接口111以主機(jī)格式接收的數(shù)據(jù)轉(zhuǎn)換成由NAND閃速存儲(chǔ)器設(shè)備101使用的格式的編碼器112、以及用于將編碼數(shù)據(jù)傳送到NAND閃速存儲(chǔ)器設(shè)備101的NAND閃速存儲(chǔ)器接口113。類似地,讀取路徑120包括以NAND閃速存儲(chǔ)器設(shè)備101使用的格式從NAND閃速存儲(chǔ)器設(shè)備101接收數(shù)據(jù)的NAND閃速接口121、用于將NAND閃速存儲(chǔ)器接口121以NAND閃速存儲(chǔ)器設(shè)備101使用的格式接收的數(shù)據(jù)轉(zhuǎn)換成由主機(jī)設(shè)備102使用的格式的解碼器122、以及用于將解碼的數(shù)據(jù)傳送到主機(jī)設(shè)備102的主機(jī)接口123??梢允俏⑻幚砥鞯奶幚砥?30控制寫(xiě)入路徑110和讀取路徑120的各種組件。
編碼器112和解碼器122是互補(bǔ)的,即,編碼器112和解碼器122使用相同方案的互補(bǔ)版本來(lái)對(duì)數(shù)據(jù)進(jìn)行編碼和解碼,使得從主機(jī)設(shè)備102接收并且由編碼器112編碼以存儲(chǔ)在NAND閃速存儲(chǔ)器設(shè)備101上的數(shù)據(jù)可以在從NAND閃速存儲(chǔ)器設(shè)備101讀回之后由解碼器122來(lái)解碼。通常并且在本文論述的實(shí)現(xiàn)中,這樣的編碼/解碼方案是糾錯(cuò)碼(ECC),使得即使在寫(xiě)入或讀取過(guò)程中的錯(cuò)誤之后也可以重建數(shù)據(jù)。
圖2示出了根據(jù)本公開(kāi)的ECC解碼器122的實(shí)現(xiàn)200的細(xì)節(jié)。ECC解碼器200包括第一多個(gè)n解碼器電路201和第二多個(gè)m解碼器電路電路202。解碼器電路201中的每一個(gè)可以實(shí)現(xiàn)比由解碼器電路202中的每一個(gè)實(shí)現(xiàn)的糾錯(cuò)解碼方案相對(duì)更簡(jiǎn)單和更快速的糾錯(cuò)解碼方案,而解碼器電路202中的每一個(gè)可以實(shí)現(xiàn)比由解碼器電路201中的每一個(gè)實(shí)現(xiàn)的糾錯(cuò)解碼方案相對(duì)更復(fù)雜和耗時(shí)的糾錯(cuò)解碼方案。通常,與實(shí)現(xiàn)相對(duì)更復(fù)雜和耗時(shí)的糾錯(cuò)解碼方案的解碼器電路202相比,可能存在更多的實(shí)現(xiàn)相對(duì)更簡(jiǎn)單和更快速的糾錯(cuò)解碼方案的解碼器電路201——即,通常可以預(yù)期n>m,但是可以存在m>n的實(shí)現(xiàn)。相對(duì)更簡(jiǎn)單和更快速的糾錯(cuò)解碼方案可以被稱為“水平1”,而相對(duì)更復(fù)雜和耗時(shí)的糾錯(cuò)解碼方案可以被稱為“水平2”。
在如下所述的處理器130的控制下,通過(guò)開(kāi)關(guān)電路204將在通道203上從NAND閃速接口121接收的數(shù)據(jù)引導(dǎo)到解碼器電路201或解碼器電路202。類似地,來(lái)自解碼器電路201或解碼器電路202的解碼數(shù)據(jù)在208處通過(guò)n:1復(fù)用器205、m:1復(fù)用器206和2:1復(fù)用器207被傳送到主機(jī)接口123,如下面進(jìn)一步討論的。
處理器130經(jīng)由解碼任務(wù)控制塊210來(lái)如上所述控制開(kāi)關(guān)電路204,解碼任務(wù)控制塊210包括解碼任務(wù)開(kāi)始部分220和解碼任務(wù)完成部分230。
解碼任務(wù)控制塊210的解碼任務(wù)開(kāi)始部分220包括用于每個(gè)數(shù)據(jù)通道203的解碼任務(wù)隊(duì)列221、222的相應(yīng)對(duì)。在每對(duì)解碼任務(wù)隊(duì)列221、222內(nèi),一個(gè)解碼任務(wù)隊(duì)列(例如,解碼任務(wù)隊(duì)列221)是正常優(yōu)先級(jí)任務(wù)隊(duì)列,而另一解碼任務(wù)隊(duì)列(例如,解碼任務(wù)隊(duì)列222)是高優(yōu)先級(jí)任務(wù)隊(duì)列。解碼器開(kāi)始控制223根據(jù)解碼任務(wù)211如基于例如任務(wù)ID字段確定的被應(yīng)用于的數(shù)據(jù)通道203,將來(lái)自處理器130的進(jìn)入解碼任務(wù)211分發(fā)到適當(dāng)?shù)慕獯a任務(wù)隊(duì)列對(duì)221、222。每對(duì)解碼任務(wù)隊(duì)列221、222饋送相應(yīng)的通道任務(wù)控制塊224。每個(gè)通道任務(wù)控制塊224將任務(wù)(至少包括任務(wù)ID和關(guān)于優(yōu)先級(jí)的數(shù)據(jù))傳遞到水平1解碼器開(kāi)關(guān)控制塊225和水平2解碼器開(kāi)關(guān)控制塊226,并且還控制數(shù)據(jù)進(jìn)入解復(fù)用器227,以能夠?qū)⑦M(jìn)入數(shù)據(jù)在通道203上路由到水平1解碼器開(kāi)關(guān)228或水平2解碼器開(kāi)關(guān)229。
處理器130經(jīng)由NAND閃速接口121向NAND閃速存儲(chǔ)器設(shè)備101發(fā)送與每個(gè)解碼任務(wù)211相對(duì)應(yīng)的讀取請(qǐng)求。每個(gè)讀取請(qǐng)求具有與其對(duì)應(yīng)的解碼任務(wù)211相同的任務(wù)ID。當(dāng)NAND閃速接口121從NAND閃速存儲(chǔ)器設(shè)備101返回相應(yīng)的數(shù)據(jù)時(shí),在231處通過(guò)NAND閃速接口121向通道任務(wù)控制塊224發(fā)送解碼數(shù)據(jù)就緒信號(hào),通過(guò)任務(wù)ID識(shí)別返回的數(shù)據(jù)。
擁有由所接收的任務(wù)ID標(biāo)識(shí)的任務(wù)的通道任務(wù)控制塊224中的一個(gè)(即,與數(shù)據(jù)已經(jīng)在其上被返回的通道203中的一個(gè)相關(guān)聯(lián)的通道任務(wù)控制塊224中的一個(gè))將從與通道2103中的一個(gè)相關(guān)聯(lián)的隊(duì)列221或222(根據(jù)任務(wù)的優(yōu)先級(jí))選擇所識(shí)別的任務(wù)。然后,通道任務(wù)控制塊224中的一個(gè)將任務(wù)傳遞到水平1解碼器開(kāi)關(guān)控制塊225或水平2解碼器開(kāi)關(guān)控制塊226,以激活水平1解碼器開(kāi)關(guān)228或水平2解碼器開(kāi)關(guān)229,來(lái)根據(jù)任務(wù)的優(yōu)先級(jí)將來(lái)自進(jìn)入通道203的要被解碼的數(shù)據(jù)分別路由到n個(gè)水平1解碼器電路201或m個(gè)水平2解碼器電路202中可用的一個(gè)。同時(shí),通道任務(wù)控制塊224中的一個(gè)還將激活在適當(dāng)通道203上的數(shù)據(jù)進(jìn)入解復(fù)用器227中的一個(gè),以將數(shù)據(jù)路由到水平1解碼器開(kāi)關(guān)228或水平2解碼器開(kāi)關(guān)229中的一個(gè)。
在數(shù)據(jù)被路由到n個(gè)水平1解碼器電路201或m個(gè)水平2解碼器電路202中的一個(gè)之后,數(shù)據(jù)將由n個(gè)水平1解碼器電路201或m水平2解碼器電路202中的一個(gè)適當(dāng)?shù)亟獯a。在解碼完成之后,視情況而定,水平1解碼器電路201或水平2解碼器電路202將向解碼任務(wù)控制塊210的解碼任務(wù)完成部分230發(fā)送完成信號(hào)。完成信號(hào)將由解碼器完成控制塊232接收,這將使得復(fù)用器205(在n個(gè)水平1解碼器電路201中的一個(gè)的情況下)或復(fù)用器206(在m個(gè)水平2解碼器電路202中的一個(gè)的情況下)選擇解碼器電路201或202中的正確的一個(gè),并且還將使得復(fù)用器207(在n個(gè)水平1解碼器電路201中的一個(gè)的情況下)選擇復(fù)用器205,或者復(fù)用器206(在m個(gè)水平2解碼器電路202中的一個(gè)的情況下),以用于在208處輸出到主機(jī)接口123。
除了在208處控制復(fù)用器205、206、207以選擇正確的輸出之外,解碼任務(wù)控制塊210的解碼任務(wù)完成部分230還在解碼任務(wù)完成時(shí)通知處理器130。例如,對(duì)于任何已完成的任務(wù),解碼器完成控制塊232可以根據(jù)已完成的任務(wù)的優(yōu)先級(jí)將已完成的任務(wù)的任務(wù)ID輸出到正常優(yōu)先級(jí)完成狀態(tài)隊(duì)列233或高優(yōu)先級(jí)完成狀態(tài)隊(duì)列234。在236處,解碼器完成狀態(tài)控制塊235將完成指示從正常優(yōu)先級(jí)完成狀態(tài)隊(duì)列233和高優(yōu)先級(jí)完成狀態(tài)隊(duì)列234發(fā)送到處理器130。
與高優(yōu)先級(jí)任務(wù)相關(guān)的高優(yōu)先級(jí)完成隊(duì)列234中的任何已完成指示可以在正常優(yōu)先級(jí)完成狀態(tài)隊(duì)列233中的任何完成指示之前被發(fā)送。替代地,可以以某些預(yù)定順序從正常優(yōu)先級(jí)完成狀態(tài)隊(duì)列233和高優(yōu)先級(jí)完成狀態(tài)隊(duì)列234中兩者提取完成指示。例如,即使其他完成指示保持在高優(yōu)先級(jí)完成狀態(tài)隊(duì)列234中,在從高優(yōu)先級(jí)完成狀態(tài)隊(duì)列234提取了特定數(shù)目的完成指示之后,也可以從正常優(yōu)先級(jí)完成狀態(tài)隊(duì)列233中提取一個(gè)完成指示。作為另一替代,與高優(yōu)先級(jí)任務(wù)相關(guān)的高優(yōu)先級(jí)完成狀態(tài)隊(duì)列234中的任何完成指示可以在正常優(yōu)先級(jí)完成狀態(tài)隊(duì)列233中的任何完成指示之前被發(fā)送,除非完成指示已經(jīng)駐留在正常優(yōu)先級(jí)完成狀態(tài)隊(duì)列233達(dá)長(zhǎng)于預(yù)定持續(xù)時(shí)間(其可以被認(rèn)為將該完成指示的優(yōu)先級(jí)改變?yōu)椤案摺?。
返回考慮解碼任務(wù)控制塊210的解碼任務(wù)開(kāi)始部分220,由通道任務(wù)控制塊224中的一個(gè)從其相應(yīng)的低優(yōu)先級(jí)任務(wù)隊(duì)列221和高優(yōu)先級(jí)任務(wù)隊(duì)列222中選擇任務(wù)可能比從正常優(yōu)先級(jí)完成狀態(tài)隊(duì)列233和高優(yōu)先級(jí)權(quán)完成狀態(tài)隊(duì)列234選擇完成指示更復(fù)雜,因?yàn)槿缟纤?,不論其狀態(tài)如何,解碼任務(wù)都無(wú)法被選擇,直至與已經(jīng)從NAND閃速存儲(chǔ)器設(shè)備101返回任務(wù)相關(guān)聯(lián)的數(shù)據(jù)。在美國(guó)專利9,092,156中描述了一種用于在NAND閃速存儲(chǔ)器儲(chǔ)器控制器中處理具有不同優(yōu)先級(jí)的數(shù)據(jù)存取的方案,其全部?jī)?nèi)容通過(guò)引用合并于此。然而,可以使用其他方案來(lái)優(yōu)先數(shù)據(jù)的讀取。
當(dāng)已經(jīng)讀取并返回?cái)?shù)據(jù)時(shí),NAND閃速接口121可以包括用于指示與數(shù)據(jù)相關(guān)聯(lián)的優(yōu)先級(jí)水平。如果多于一個(gè)的解碼任務(wù)仍然要被處理,則指示優(yōu)先級(jí)的信號(hào)將在選擇解碼任務(wù)中使用,其中與在正常優(yōu)先級(jí)任務(wù)隊(duì)列221中的正常優(yōu)先級(jí)解碼任務(wù)相比,優(yōu)選選擇在高優(yōu)先級(jí)任務(wù)隊(duì)列222中的較高優(yōu)先級(jí)解碼任務(wù)。
選擇的一部分涉及將數(shù)據(jù)路由到正確的解碼器。如果正在執(zhí)行的解碼任務(wù)使用水平1解碼器,則它將以指派的優(yōu)先級(jí)被發(fā)送到水平1解碼器開(kāi)關(guān)控制塊225;否則它將被發(fā)送到水平2解碼器開(kāi)關(guān)控制塊226。水平1解碼器開(kāi)關(guān)控制塊225和水平2解碼器開(kāi)關(guān)控制塊226可以被認(rèn)為是仲裁塊。例如,指派給水平1解碼器開(kāi)關(guān)控制塊225和水平2解碼器開(kāi)關(guān)控制塊226中的每一個(gè)的任務(wù)可以根據(jù)加權(quán)循環(huán)仲裁來(lái)分配。
如上所述,每個(gè)水平1解碼器201可以實(shí)現(xiàn)相對(duì)更簡(jiǎn)單和更快速的解碼方案,而每個(gè)水平2解碼器202可以實(shí)現(xiàn)相對(duì)更復(fù)雜和耗時(shí)的解碼方案。作為一般情況,水平1解碼方案可以用于正常優(yōu)先級(jí)任務(wù),而水平2解碼方案可以用于更高優(yōu)先級(jí)的任務(wù)。然而,在一些實(shí)現(xiàn)中,可以存在水平1解碼方案用于較高優(yōu)先級(jí)任務(wù)的情況,正如可以存在水平2解碼方案用于正常優(yōu)先級(jí)任務(wù)的情況。
例如,如果任務(wù)具有較高優(yōu)先級(jí),因?yàn)樗鞘褂盟?解碼方案的用于失敗的正常優(yōu)先級(jí)任務(wù)的讀取重試任務(wù),則讀取重試嘗試可以再次使用水平1解碼方案,而不管其較高的優(yōu)先級(jí)。作為另一示例,如果任務(wù)具有正常優(yōu)先級(jí),并且不存在可用的水平1解碼器,但是存在未使用的水平2解碼器,則可以使用水平2解碼器,而不管該任務(wù)的正常優(yōu)先級(jí)。一個(gè)這樣的示例可以涉及不是時(shí)延關(guān)鍵的數(shù)據(jù),諸如垃圾收集任務(wù),其中水平1解碼失敗;對(duì)第二次嘗試使用較慢的水平2解碼將使得水平1解碼器可用于時(shí)延關(guān)鍵的數(shù)據(jù)。可以存在水平1解碼方案用于較高優(yōu)先級(jí)任務(wù)或水平2解碼方案用于正常優(yōu)先級(jí)任務(wù)的其他情況。
ECC解碼器200的操作可以更好地參考圖3-5中的流程圖來(lái)理解。
圖3是示出根據(jù)實(shí)施例的過(guò)程300的實(shí)現(xiàn)的流程圖,通過(guò)該過(guò)程300用于每個(gè)數(shù)據(jù)通道203的解碼任務(wù)隊(duì)列221、222被填充。針對(duì)所討論的通道的新的解碼任務(wù)在301處被接收。在302處,確定在301處接收的任務(wù)是否是高優(yōu)先級(jí)任務(wù)。如果在301處接收的任務(wù)在302處被確定為高優(yōu)先級(jí)任務(wù),則在303處,將任務(wù)置于針對(duì)該通道的高優(yōu)先級(jí)任務(wù)隊(duì)列222中。然而,如果在302處確定所接收的任務(wù)不是高優(yōu)先級(jí)任務(wù),則在304處,將該任務(wù)置于針對(duì)該通道的正常優(yōu)先級(jí)任務(wù)隊(duì)列221中。在305處,確定是否存在針對(duì)該通道的任何其他解碼任務(wù)。如果在305處確定了不存在針對(duì)該通道的其他解碼任務(wù),則過(guò)程300結(jié)束。但是如果在305處確定存在針對(duì)該通道的其他解碼任務(wù),則過(guò)程300返回到301以接收新的解碼任務(wù)。
圖4是示出用于從正常優(yōu)先級(jí)任務(wù)隊(duì)列221或高優(yōu)先級(jí)任務(wù)隊(duì)列222中的一個(gè)選擇用于執(zhí)行的任務(wù)的過(guò)程400的實(shí)現(xiàn)的流程圖。在401處,從NAND閃速存儲(chǔ)器設(shè)備101接收NAND數(shù)據(jù)就緒信號(hào)(例如,在通道203中的一個(gè)上)指示數(shù)據(jù)已經(jīng)被返回(例如,響應(yīng)于請(qǐng)求)。在402處,確定已經(jīng)返回的數(shù)據(jù)是否屬于高優(yōu)先級(jí)任務(wù)(如上所述,任務(wù)ID可以與數(shù)據(jù)一起返回)。如果是,則在403處,從相應(yīng)通道203的高優(yōu)先級(jí)任務(wù)隊(duì)列222釋放相關(guān)聯(lián)的任務(wù)。否則,如果在402處確定已經(jīng)返回的數(shù)據(jù)不屬于高優(yōu)先級(jí)任務(wù),則在404處,從相應(yīng)通道203的正常優(yōu)先級(jí)任務(wù)隊(duì)列221釋放相關(guān)聯(lián)的任務(wù)。
如上所述,解碼器的選擇不是必須由任務(wù)的優(yōu)先級(jí)來(lái)確定。雖然大多數(shù)高優(yōu)先級(jí)任務(wù)將是水平2解碼器任務(wù),并且大多數(shù)正常優(yōu)先級(jí)任務(wù)將是水平1解碼器任務(wù),但是可能存在例外。因此,一旦已經(jīng)釋放了要執(zhí)行的任務(wù),在405處確定該任務(wù)是否是水平1解碼任務(wù)。如果是,則在406處將任務(wù)引導(dǎo)到水平1解碼器(經(jīng)由適當(dāng)?shù)耐ǖ廊蝿?wù)控制塊和適當(dāng)?shù)慕獯a器開(kāi)關(guān)控制塊),并且過(guò)程400結(jié)束。否則,如果在405處確定了任務(wù)不是水平1解碼任務(wù),則在407處將任務(wù)引導(dǎo)到水平2解碼器,并且過(guò)程400結(jié)束。
從隊(duì)列221、222釋放任務(wù)的實(shí)際順序可以根據(jù)預(yù)定規(guī)則來(lái)控制。因此,如果數(shù)據(jù)被返回,但是與具有比另一任務(wù)低的優(yōu)先級(jí)的任務(wù)(即,正常優(yōu)先級(jí)任務(wù))相關(guān)聯(lián),則數(shù)據(jù)可以被保存在緩沖器(未示出)中直至任務(wù)準(zhǔn)備被執(zhí)行,針對(duì)另一任務(wù)已經(jīng)返回了數(shù)據(jù)。
根據(jù)一個(gè)可能的規(guī)則集合,高優(yōu)先級(jí)任務(wù)將始終優(yōu)先于正常優(yōu)先級(jí)任務(wù)。根據(jù)規(guī)則集合的變體,正常優(yōu)先級(jí)隊(duì)列中的過(guò)多停留時(shí)間(超過(guò)預(yù)定限制)使得任務(wù)被移動(dòng)到高優(yōu)先級(jí)隊(duì)列中。根據(jù)另一可能的規(guī)則集合,對(duì)所執(zhí)行的每p個(gè)高優(yōu)先級(jí)任務(wù)執(zhí)行一個(gè)正常優(yōu)先級(jí)任務(wù),這使得在正常優(yōu)先級(jí)隊(duì)列中的過(guò)多停留時(shí)間不太可能。可以使用這些規(guī)則集的組合,其中對(duì)于所執(zhí)行的每p個(gè)高優(yōu)先級(jí)任務(wù)執(zhí)行一個(gè)正常優(yōu)先級(jí)任務(wù),但是在正常優(yōu)先級(jí)隊(duì)列中的過(guò)多停留時(shí)間(這應(yīng)該是罕見(jiàn)的)使得任務(wù)從正常優(yōu)先級(jí)隊(duì)列被移動(dòng)到高優(yōu)先級(jí)隊(duì)列。可以開(kāi)發(fā)其他規(guī)則集合。
圖5中示出了一個(gè)可能的這種規(guī)則集合的示例500。在501處,確定已經(jīng)執(zhí)行的高優(yōu)先級(jí)任務(wù)的數(shù)目(從上次重置計(jì)數(shù)器開(kāi)始)是否超過(guò)閾值。如果不是,則在502處確定是否存在任何高優(yōu)先級(jí)任務(wù)在高優(yōu)先級(jí)任務(wù)隊(duì)列中等待。如果是,則在503處選擇高優(yōu)先級(jí)任務(wù)并將其發(fā)送到適當(dāng)?shù)慕獯a器(例如,參見(jiàn)圖4),其中所選擇的任務(wù)在504處執(zhí)行。如果在502處確定了不存在高優(yōu)先級(jí)任務(wù)在高優(yōu)先級(jí)任務(wù)隊(duì)列中等待,或在501處確定了已經(jīng)執(zhí)行的高優(yōu)先級(jí)任務(wù)的數(shù)目(從上次重置計(jì)數(shù)器開(kāi)始)沒(méi)有超過(guò)閾值,則在505處確定是否存在任何正常優(yōu)先級(jí)任務(wù)在正常優(yōu)先級(jí)任務(wù)隊(duì)列中等待。如果是,則在506處選擇正常優(yōu)先級(jí)任務(wù)并將其發(fā)送到適當(dāng)?shù)慕獯a器(例如,參見(jiàn)圖4),其中在504處執(zhí)行所選擇的任務(wù)。
在504處已經(jīng)執(zhí)行了所選擇的任務(wù)之后(無(wú)論其是高優(yōu)先級(jí)任務(wù)還是正常優(yōu)先級(jí)任務(wù)),在507處,結(jié)果被發(fā)送到完成狀態(tài)隊(duì)列233、234以用于例如如圖6所示進(jìn)行報(bào)告。在已經(jīng)報(bào)告結(jié)果之后或者如果在505處確定了不存在正常優(yōu)先級(jí)任務(wù)在正常優(yōu)先級(jí)任務(wù)隊(duì)列中等待,則在508處確定是否存在任何任務(wù)要被執(zhí)行。如果是,則流程返回到501。如果在508處確定了沒(méi)有任何任務(wù)要執(zhí)行,則過(guò)程500結(jié)束。
圖6是示出用于報(bào)告解碼任務(wù)的完成的一個(gè)可能過(guò)程600的實(shí)現(xiàn)的流程圖。在601處,確定是否存在任何未報(bào)告的已完成的高優(yōu)先級(jí)解碼任務(wù)(例如,在高優(yōu)先級(jí)完成狀態(tài)隊(duì)列234中)。如果是,則在602處報(bào)告下一個(gè)已完成的高優(yōu)先級(jí)任務(wù)的通知,并且流程返回到601以尋找更多未被報(bào)告的已完成的解碼任務(wù)。如果在601處確定了不存在未報(bào)告的已完成的高優(yōu)先級(jí)解碼任務(wù),則在603處確定是否存在任何未報(bào)告的已完成的正常優(yōu)先級(jí)解碼任務(wù)(例如,在正常優(yōu)先級(jí)完成狀態(tài)隊(duì)列233中)。如果是,則在604處報(bào)告下一個(gè)已完成的正常優(yōu)先級(jí)任務(wù)的通知,并且流程返回到601以尋找更多未報(bào)告的已完成的高優(yōu)先級(jí)解碼任務(wù)。如果在603處確定了不存在未報(bào)告的已完成的正常優(yōu)先級(jí)解碼任務(wù),則過(guò)程600結(jié)束。然而,應(yīng)當(dāng)注意,類似于上述用于從隊(duì)列221、222釋放任務(wù)的各種可能的規(guī)則集合的其他報(bào)告規(guī)則集合也可以應(yīng)用于任務(wù)完成的報(bào)告。
因此,可以看出,提供了解碼裝置和相應(yīng)的方法,其中可以通過(guò)即使可能發(fā)生需要重試操作的偶然的失敗也對(duì)大多數(shù)存儲(chǔ)器存取操作使用更簡(jiǎn)單和更快的解碼方案,同時(shí)對(duì)較高優(yōu)先級(jí)的解碼任務(wù)使用更復(fù)雜和耗時(shí)的解碼方案,來(lái)最大化總體吞吐量。還可以看出,在“插隊(duì)”特征下,較高優(yōu)先級(jí)解碼任務(wù)可以在正常優(yōu)先級(jí)解碼任務(wù)之前被執(zhí)行,即使較高優(yōu)先級(jí)解碼任務(wù)稍晚啟動(dòng),但是如上所述,如果正常優(yōu)先級(jí)任務(wù)由于稍晚到達(dá)的較高優(yōu)先級(jí)任務(wù)而必須等待過(guò)長(zhǎng),則正常優(yōu)先級(jí)任務(wù)本身也可以提高其優(yōu)先級(jí)。
本發(fā)明的其他方面涉及下述條款中的一個(gè)或多個(gè):
條款1:一種用于在NAND閃速存儲(chǔ)器控制器中執(zhí)行解碼任務(wù)的裝置,所述裝置包括:
用于對(duì)第一優(yōu)先級(jí)的解碼任務(wù)進(jìn)行排隊(duì)的第一任務(wù)隊(duì)列;
用于對(duì)高于第一優(yōu)先級(jí)的第二優(yōu)先級(jí)的解碼任務(wù)進(jìn)行排隊(duì)的第二任務(wù)隊(duì)列;以及
控制電路,該控制電路在接收到用于多個(gè)解碼任務(wù)的數(shù)據(jù)部分時(shí),從第一任務(wù)隊(duì)列和所述第二任務(wù)隊(duì)列中釋放所述多個(gè)解碼任務(wù)中的相應(yīng)解碼任務(wù),以根據(jù)多個(gè)解碼任務(wù)中的相應(yīng)解碼任務(wù)的優(yōu)先級(jí)來(lái)對(duì)數(shù)據(jù)部分中的相應(yīng)部分進(jìn)行操。
條款2:根據(jù)條款1所述的裝置,其中,NAND閃速存儲(chǔ)器控制器包括多個(gè)存儲(chǔ)器通道,并且其中,所述裝置進(jìn)一步包括:
針對(duì)多個(gè)通道中的每個(gè)相應(yīng)通道的相應(yīng)第一任務(wù)隊(duì)列、以及針對(duì)多個(gè)通道中的每個(gè)相應(yīng)通道的相應(yīng)第二任務(wù)隊(duì)列;
至少一個(gè)第一解碼器,在第一糾錯(cuò)碼解碼方案下進(jìn)行操作;
至少一個(gè)第二解碼器,在第二糾錯(cuò)碼解碼方案下進(jìn)行操作,第二糾錯(cuò)碼解碼方案在速度和復(fù)雜度中的一個(gè)或二者方面不同于第一糾錯(cuò)碼解碼方案;以及
輸入切換電路,可控制地將每個(gè)數(shù)據(jù)通道連接到所述第一解碼器和所述第二解碼器中的一個(gè);
其中,控制電路包括針對(duì)每個(gè)相應(yīng)通道的相應(yīng)通道任務(wù)控制塊,以用于從針對(duì)該相應(yīng)通道的相應(yīng)第一任務(wù)隊(duì)列和第二任務(wù)隊(duì)列中釋放解碼任務(wù),以控制輸入切換電路將針對(duì)相應(yīng)通道的相應(yīng)數(shù)據(jù)引導(dǎo)到第一解碼器和第二解碼器中的一個(gè)。
條款3:根據(jù)條款2所述的裝置,其中:至少一個(gè)第一解碼器包括多個(gè)第一解碼器;
至少一個(gè)第二解碼器包括多個(gè)第二解碼器;以及
輸入切換電路包括:
針對(duì)每個(gè)相應(yīng)通道的相應(yīng)解復(fù)用器,用于將相應(yīng)通道上的數(shù)據(jù)可選擇地引導(dǎo)到多個(gè)第一解碼器和多個(gè)第二解碼器中的一個(gè),
第一開(kāi)關(guān),用于將針對(duì)多個(gè)第一解碼器的解復(fù)用器輸出引導(dǎo)到多個(gè)第一解碼器中的可用第一解碼器,以及
第二開(kāi)關(guān),用于將針對(duì)所述多個(gè)第二解碼器的解復(fù)用器的輸出引導(dǎo)到所述多個(gè)第二解碼器中的可用第二解碼器。
條款4:根據(jù)條款2所述的裝置,進(jìn)一步包括:針對(duì)每個(gè)相應(yīng)通道的相應(yīng)緩沖器,用于保持在該相應(yīng)通道上接收的數(shù)據(jù),直至與所述數(shù)據(jù)相對(duì)應(yīng)的解碼任務(wù)從所述第一任務(wù)隊(duì)列和第二任務(wù)隊(duì)列中的一個(gè)釋放。
條款5:根據(jù)條款2所述的裝置,進(jìn)一步包括:輸出切換電路,該輸出切換電路用于輸出第一解碼器和第二解碼器中的一個(gè)的輸出;其中:
控制電路包括解碼器完成控制電路,解碼器完成控制電路在從所述第一解碼器和所述第二解碼器中的一個(gè)接收到解碼器完成信號(hào)時(shí),選擇所述第一解碼器和所述第二解碼器中的一個(gè)的輸出。
條款6:根據(jù)條款5所述的裝置,進(jìn)一步包括:
用于對(duì)第一優(yōu)先級(jí)的已完成的解碼任務(wù)進(jìn)行排隊(duì)的第一任務(wù)完成隊(duì)列;以及
用于對(duì)第二優(yōu)先級(jí)的已完成的解碼任務(wù)進(jìn)行排隊(duì)的第二任務(wù)完成隊(duì)列;其中:
解碼器完成控制電路將每個(gè)已完成的解碼任務(wù)加載到第一任務(wù)完成隊(duì)列和第二任務(wù)完成隊(duì)列中的一個(gè)中;并且
控制電路進(jìn)一步包括解碼器完成狀態(tài)控制電路,該解碼器完成狀態(tài)控制電路根據(jù)已完成的解碼任務(wù)的優(yōu)先級(jí)報(bào)告來(lái)自第一任務(wù)完成隊(duì)列和第二任務(wù)完成隊(duì)列中的已完成的解碼任務(wù)。。
條款7:根據(jù)條款1所述的裝置,進(jìn)一步包括:緩沖器,該緩沖器用于保持從NAND閃速存儲(chǔ)器接收的數(shù)據(jù),直至與數(shù)據(jù)相對(duì)應(yīng)的解碼任務(wù)從第一任務(wù)隊(duì)列和第二任務(wù)隊(duì)列中的一個(gè)中被釋放。
條款8:根據(jù)條款1所述的裝置,進(jìn)一步包括:
用于對(duì)第一優(yōu)先級(jí)的已完成的解碼任務(wù)進(jìn)行排隊(duì)的第一任務(wù)完成隊(duì)列;以及
用于對(duì)第二優(yōu)先級(jí)的已完成的解碼任務(wù)進(jìn)行排隊(duì)的第二任務(wù)完成隊(duì)列;其中:
所述控制電路根據(jù)所述已完成的解碼任務(wù)的優(yōu)先級(jí)來(lái)報(bào)告來(lái)自第一任務(wù)完成隊(duì)列和第二任務(wù)完成隊(duì)列中的已完成的解碼任務(wù)。
條款9:一種用于在NAND閃速存儲(chǔ)器控制器中執(zhí)行解碼任務(wù)的方法,所述方法包括:
在第一任務(wù)隊(duì)列中對(duì)第一優(yōu)先級(jí)的解碼任務(wù)進(jìn)行排隊(duì);
在第二任務(wù)隊(duì)列中對(duì)高于所述第一優(yōu)先級(jí)的第二優(yōu)先級(jí)的解碼任務(wù)進(jìn)行排隊(duì);以及
在接收到用于多個(gè)解碼任務(wù)的數(shù)據(jù)部分時(shí),從第一任務(wù)隊(duì)列和第二任務(wù)隊(duì)列中釋放所述多個(gè)解碼任務(wù)中的相應(yīng)解碼任務(wù),以根據(jù)多個(gè)解碼任務(wù)中的相應(yīng)解碼任務(wù)的優(yōu)先級(jí)來(lái)對(duì)所述數(shù)據(jù)部分中的相應(yīng)部分進(jìn)行操作。
條款10:根據(jù)條款9所述的方法,其中,NAND閃速存儲(chǔ)器控制器包括多個(gè)存儲(chǔ)器通道,并且其中:
對(duì)第一優(yōu)先級(jí)的解碼任務(wù)進(jìn)行排隊(duì)包括:針對(duì)所述多個(gè)通道中的每個(gè)相應(yīng)通道來(lái)在相應(yīng)第一任務(wù)隊(duì)列中對(duì)解碼任務(wù)進(jìn)行排隊(duì);以及
對(duì)第二優(yōu)先級(jí)的解碼任務(wù)進(jìn)行排隊(duì)包括:針對(duì)所述多個(gè)通道中的每個(gè)相應(yīng)通道來(lái)在相應(yīng)第二任務(wù)隊(duì)列中對(duì)解碼任務(wù)進(jìn)行排隊(duì);所述方法進(jìn)一步包括:
將每個(gè)數(shù)據(jù)通道可控制地連接到第一解碼器和第二解碼器中的一個(gè),第一解碼器在第一糾錯(cuò)碼解碼方案下進(jìn)行操作,第二解碼器在第二糾錯(cuò)碼解碼方案下進(jìn)行操作,第二糾錯(cuò)碼解碼方案在速度和復(fù)雜度中的一個(gè)或二者方面不同于第一糾錯(cuò)碼解碼方案。
條款11:根據(jù)條款10所述的方法,其中,可控制地連接包括:將每個(gè)數(shù)據(jù)通道可控制地連接到多個(gè)第一解碼器和多個(gè)第二解碼器中的一個(gè),多個(gè)第一解碼器在所述第一糾錯(cuò)碼解碼方案下進(jìn)行操作,多個(gè)第二解碼器在所述第二糾錯(cuò)碼解碼方案下進(jìn)行操作。
條款12:根據(jù)條款10的方法,進(jìn)一步包括:針對(duì)每個(gè)相應(yīng)通道,將在所述相應(yīng)通道上接收的數(shù)據(jù)保持在緩沖器中,直至與所述數(shù)據(jù)相對(duì)應(yīng)的解碼任務(wù)從所述第一任務(wù)隊(duì)列和第二任務(wù)隊(duì)列中釋放。
條款13:根據(jù)條款10所述的方法,進(jìn)一步包括:
在第一任務(wù)完成隊(duì)列中對(duì)所述第一優(yōu)先級(jí)的已完成的解碼任務(wù)進(jìn)行排隊(duì);以及
在第二任務(wù)完成隊(duì)列中對(duì)第二優(yōu)先級(jí)的已完成的解碼任務(wù)進(jìn)行排隊(duì);以及
根據(jù)所述已完成的解碼任務(wù)的優(yōu)先級(jí)來(lái)報(bào)告來(lái)自所述第一任務(wù)完成隊(duì)列和所述第二任務(wù)完成隊(duì)列的已完成的解碼任務(wù)。
條款14:根據(jù)條款9所述的方法,進(jìn)一步包括將從NAND閃速存儲(chǔ)器接收的數(shù)據(jù)保持在緩沖器中,直至與所述數(shù)據(jù)相對(duì)應(yīng)的解碼任務(wù)從所述第一任務(wù)隊(duì)列和所述第二任務(wù)隊(duì)列中的一個(gè)中被釋放。
條款15:根據(jù)條款9所述的方法,進(jìn)一步包括:
在第一任務(wù)完成隊(duì)列中對(duì)第一優(yōu)先級(jí)的已完成的解碼任務(wù)進(jìn)行排隊(duì);以及
在第二任務(wù)完成隊(duì)列中對(duì)第二優(yōu)先級(jí)的已完成的解碼任務(wù)進(jìn)行排隊(duì);以及
根據(jù)已完成的解碼任務(wù)的優(yōu)先級(jí)來(lái)報(bào)告來(lái)自第一任務(wù)完成隊(duì)列和第二任務(wù)完成隊(duì)列中的已完成的解碼任務(wù)。
條款16:根據(jù)條款15所述的方法,其中,根據(jù)已完成的解碼任務(wù)的優(yōu)先級(jí)報(bào)告來(lái)自所述第一任務(wù)完成隊(duì)列和所述第二任務(wù)完成隊(duì)列中的已完成的解碼任務(wù)包括:在報(bào)告所述第一優(yōu)先級(jí)的任何已完成的解碼任務(wù)之前,報(bào)告所述第二優(yōu)先級(jí)的所有已完成的解碼任務(wù)。
條款17:進(jìn)一步包括:在第一任務(wù)完成隊(duì)列中的已完成的解碼任務(wù)的排隊(duì)之后的預(yù)定持續(xù)時(shí)間之后,將已完成的解碼任務(wù)的優(yōu)先級(jí)水平從第一優(yōu)先級(jí)改變?yōu)樗龅诙?yōu)先級(jí)。
條款18:根據(jù)條款15所述的方法,其中,根據(jù)已完成的解碼任務(wù)的優(yōu)先級(jí)來(lái)報(bào)告來(lái)自第一任務(wù)完成隊(duì)列和第二任務(wù)完成隊(duì)列中的已完成的解碼任務(wù)包括:在報(bào)告來(lái)自第二任務(wù)完成隊(duì)列中的預(yù)定數(shù)目的任務(wù)之后,報(bào)告來(lái)自第一任務(wù)完成隊(duì)列的任務(wù)。
條款19:根據(jù)條款9所述的方法,其中,從第一任務(wù)隊(duì)列和第二任務(wù)隊(duì)列中釋放多個(gè)解碼任務(wù)中的相應(yīng)解碼任務(wù),以根據(jù)在多個(gè)解碼任務(wù)中的相應(yīng)解碼任務(wù)的優(yōu)先級(jí)來(lái)對(duì)數(shù)據(jù)部分中的相應(yīng)部分進(jìn)行操作包括:在釋放第一優(yōu)先級(jí)的任何解碼任務(wù)之前,釋放第二優(yōu)先級(jí)的所有解碼任務(wù)。
條款20:根據(jù)條款19所述的方法,進(jìn)一步包括:在對(duì)第一任務(wù)隊(duì)列中的解碼任務(wù)的進(jìn)行排隊(duì)之后的預(yù)定持續(xù)時(shí)間之后,將解碼任務(wù)的優(yōu)先級(jí)水平從第一優(yōu)先級(jí)改變?yōu)樗龅诙?yōu)先級(jí)。
條款21:根據(jù)條款9所述的方法,其中,從第一任務(wù)隊(duì)列和第二任務(wù)隊(duì)列中釋放多個(gè)解碼任務(wù)中的相應(yīng)解碼任務(wù),以根據(jù)在多個(gè)解碼任務(wù)中的相應(yīng)解碼任務(wù)的優(yōu)先級(jí)來(lái)對(duì)數(shù)據(jù)部分中的相應(yīng)部分進(jìn)行操作包括:在釋放來(lái)自第二任務(wù)隊(duì)列中的預(yù)定數(shù)目的任務(wù)之后,釋放來(lái)自所述第一任務(wù)隊(duì)列的任務(wù)。
如本文和所附權(quán)利要求書(shū)中所使用的,結(jié)構(gòu)“A和B中的一個(gè)”將意指“A或B”。
應(yīng)當(dāng)理解,前述僅是說(shuō)明本發(fā)明的原理,并且本發(fā)明可以通過(guò)除了所描述的實(shí)施例之外的其他實(shí)施例來(lái)實(shí)踐,所述實(shí)施例是為了說(shuō)明而不是限制的目的而呈現(xiàn)的,并且本發(fā)明僅由所附權(quán)利要求限定。