各種實(shí)施例總體而言涉及一種電子器件,更具體地,涉及一種控制半導(dǎo)體存儲(chǔ)器件的控制器及其操作方法。
背景技術(shù):
半導(dǎo)體存儲(chǔ)器件由諸如硅(Si)、鍺(Ge)、砷化鎵(GaAs)及磷化銦(InP)的半導(dǎo)體材料制成。半導(dǎo)體存儲(chǔ)器件分為易失性存儲(chǔ)器件和非易失性存儲(chǔ)器件。
易失性存儲(chǔ)器件在斷電時(shí)丟失儲(chǔ)存的數(shù)據(jù)。易失性存儲(chǔ)器件的示例包含靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)和同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(SDRAM)。不管為上電狀態(tài)還是斷電狀態(tài),非易失性存儲(chǔ)器件都保留儲(chǔ)存的數(shù)據(jù)。非易失性存儲(chǔ)器件的示例包含只讀存儲(chǔ)器(ROM)、掩膜只讀存儲(chǔ)器(MROM)、可編程只讀存儲(chǔ)器(PROM)、可擦除可編程只讀存儲(chǔ)器(EPROM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、快閃存儲(chǔ)器、相變隨機(jī)存取存儲(chǔ)器(PRAM)、磁性隨機(jī)存取存儲(chǔ)器(MRAM)、電阻式隨機(jī)存取存儲(chǔ)器(RRAM)以及鐵電式隨機(jī)存取存儲(chǔ)器(FRAM)??扉W存儲(chǔ)器分為NOR型存儲(chǔ)器和NAND型存儲(chǔ)器。
半導(dǎo)體存儲(chǔ)器件控制器可以在主機(jī)的請(qǐng)求下產(chǎn)生命令,并執(zhí)行產(chǎn)生的命令??刂破骺梢园脕?lái)儲(chǔ)存命令的命令隊(duì)列。命令隊(duì)列可以被限定在諸如RAM的存儲(chǔ)器單元中。儲(chǔ)存于命令隊(duì)列中的命令可以順序地輸出至該半導(dǎo)體存儲(chǔ)器件。
技術(shù)實(shí)現(xiàn)要素:
實(shí)施例針對(duì)一種具有改善的操作時(shí)間的控制器及其操作方法。
根據(jù)一個(gè)實(shí)施例,一種用于控制半導(dǎo)體存儲(chǔ)器件的操作方法可以包括:將多個(gè)讀取命令儲(chǔ)存在基于先進(jìn)先出法來(lái)管理的命令隊(duì)列中;將所述多個(gè)讀取命令中的一個(gè)提供給半導(dǎo)體存儲(chǔ)器件;基于響應(yīng)于提供的讀取命令而從半導(dǎo)體存儲(chǔ)器件提供的讀取數(shù)據(jù)來(lái)判斷提供的讀取命令通過(guò)還是失??;以及當(dāng)提供的讀取數(shù)據(jù)命令通過(guò)時(shí),中止命令隊(duì)列中的剩余的讀取命令。
半導(dǎo)體存儲(chǔ)器件可以包含多個(gè)頁(yè),且所述多個(gè)讀取命令可以用于識(shí)別所述多個(gè)頁(yè)之一中儲(chǔ)存的數(shù)據(jù)的命令。
判斷可以包括:對(duì)讀取數(shù)據(jù)執(zhí)行ECC解碼,且當(dāng)ECC解碼通過(guò)時(shí),提供的讀取命令可以通過(guò)。
該操作方法還可以包括:當(dāng)提供的讀取命令失敗時(shí),用剩余的讀取命令來(lái)重復(fù)提供和判斷。
該操作方法還可以包括:產(chǎn)生用來(lái)改變半導(dǎo)體存儲(chǔ)器件的設(shè)定值的多個(gè)參數(shù)設(shè)定命令,所述多個(gè)參數(shù)設(shè)定命令與所述多個(gè)讀取命令一起儲(chǔ)存在命令隊(duì)列中;以及將所述多個(gè)參數(shù)設(shè)定命令中的一個(gè)提供給半導(dǎo)體存儲(chǔ)器件。
該中止可以包括:當(dāng)提供的讀取命令通過(guò)時(shí),中止命令隊(duì)列中的剩余的參數(shù)設(shè)定命令。
該設(shè)定值可以對(duì)應(yīng)于在半導(dǎo)體存儲(chǔ)器件的讀取操作期間施加至半導(dǎo)體存儲(chǔ)器件的字線的電壓。
命令隊(duì)列可以包含從頭地址至尾地址的存儲(chǔ)空間,以及所述多個(gè)讀取命令可以被儲(chǔ)存在頭地址與尾地址之間的從開(kāi)始地址至結(jié)束地址的存儲(chǔ)空間中。
該中止可以包括:當(dāng)提供的讀取命令通過(guò)時(shí),產(chǎn)生陰影指針,該陰影指針指向與剩余的讀取命令中的第一個(gè)相對(duì)應(yīng)的地址;以及擦除由該陰影指針?biāo)赶虻氖S嘧x取命令,同時(shí)將該陰影指針從當(dāng)前的地址移動(dòng)至下一個(gè)地址,直到該陰影指針指向結(jié)束地址為止。
該中止可以包括:順序地停止開(kāi)始地址與結(jié)束地址之間的剩余讀取命令。
該中止可以擦除命令隊(duì)列中的儲(chǔ)存在開(kāi)始地址與結(jié)束地址之間的存儲(chǔ)空間中的剩余讀取命令。
當(dāng)對(duì)讀取數(shù)據(jù)中包含的一個(gè)或多個(gè)碼字的ECC解碼失敗時(shí),該判斷可以判斷提供的讀取命令是否失敗。
可以對(duì)響應(yīng)于先前提供的讀取命令而先前從半導(dǎo)體存儲(chǔ)器件提供的讀取數(shù)據(jù)中ECC解碼失敗的一個(gè)或多個(gè)碼字執(zhí)行ECC解碼。
根據(jù)另一實(shí)施例,一種控制半導(dǎo)體存儲(chǔ)器件的控制器可以包括:命令隊(duì)列,基于先進(jìn)先出法來(lái)管理;命令發(fā)生單元,適用于將多個(gè)讀取命令儲(chǔ)存在命令隊(duì)列中;存儲(chǔ)器控制單元,適用于:將所述多個(gè)讀取命令中的一個(gè)提供給半導(dǎo)體存儲(chǔ)器件;以及基于響應(yīng)于提供的讀取命令而從半導(dǎo)體存儲(chǔ)器件提供來(lái)判斷提供的讀取命令通過(guò)還是失??;以及命令管理單元,適用于當(dāng)提供的數(shù)據(jù)通過(guò)時(shí)中止剩余的讀取命令。
該半導(dǎo)體存儲(chǔ)器件可以包含多個(gè)頁(yè),以及所述多個(gè)讀取命令可以用于識(shí)別儲(chǔ)存在所述多個(gè)頁(yè)之一中的數(shù)據(jù)。
該存儲(chǔ)器控制單元可以包括:數(shù)據(jù)緩沖器,適用于儲(chǔ)存響應(yīng)于提供的讀取命令而從半導(dǎo)體存儲(chǔ)器件提供的讀取數(shù)據(jù);錯(cuò)誤校正塊,適用于以單個(gè)碼字為單位來(lái)對(duì)讀取數(shù)據(jù)執(zhí)行ECC解碼;解碼狀態(tài)表,適用于儲(chǔ)存對(duì)包含于讀取數(shù)據(jù)中的每個(gè)碼字的ECC解碼的通過(guò)或失敗信息;多路復(fù)用塊,適用于以單個(gè)碼字為單位將讀取數(shù)據(jù)從數(shù)據(jù)緩沖器提供至錯(cuò)誤校正塊;以及存儲(chǔ)器控制器,適用于:通過(guò)查閱解碼狀態(tài)表來(lái)控制多路復(fù)用塊以將響應(yīng)于先前提供的讀取命令先前從半導(dǎo)體存儲(chǔ)器件提供的讀取數(shù)據(jù)中ECC解碼失敗的一個(gè)或多個(gè)碼字提供給錯(cuò)誤校正塊;以及根據(jù)ECC解碼的結(jié)果,更新儲(chǔ)存在解碼狀態(tài)表中的失敗信息。
當(dāng)對(duì)讀取數(shù)據(jù)中包含的一個(gè)或多個(gè)碼字的ECC解碼失敗時(shí),該存儲(chǔ)器控制單元確定提供的讀取命令失敗。
根據(jù)一個(gè)實(shí)施例,一種用于控制包含多個(gè)頁(yè)的半導(dǎo)體存儲(chǔ)器件的操作方法可以包括:將用于識(shí)別選中頁(yè)中的數(shù)據(jù)的多個(gè)命令儲(chǔ)存在基于先進(jìn)先出法來(lái)管理的命令隊(duì)列中;將所述多個(gè)命令中的一個(gè)提供給半導(dǎo)體器件;當(dāng)提供的讀取命令失敗時(shí),重復(fù)提供剩余的讀取命令;以及當(dāng)提供的讀取命令通過(guò)時(shí),中止剩余的讀取命令
附圖說(shuō)明
圖1為圖示根據(jù)一個(gè)實(shí)施例的存儲(chǔ)系統(tǒng)的框圖。
圖2為圖示圖1中所示的半導(dǎo)體存儲(chǔ)器件的框圖。
圖3為圖示圖2中所示的存儲(chǔ)單元陣列的框圖。
圖4為圖示根據(jù)一個(gè)實(shí)施例的圖1中所示的控制器的框圖。
圖5為圖示根據(jù)一個(gè)實(shí)施例的控制器的操作方法的流程圖。
圖6為圖示命令隊(duì)列的概念圖。
圖7為圖示圖5中所示的步驟S150的一個(gè)實(shí)施例的流程圖。
圖8為圖示圖7中所示的實(shí)施例的概念圖。
圖9為圖示圖5中所示的步驟S150的另一實(shí)施例的流程圖。
圖10為圖9中所示的實(shí)施例的概念圖。
圖11為圖示根據(jù)另一實(shí)施例的圖1中所示的控制器的框圖。
圖12為圖示圖11中所示的第一命令隊(duì)列和第二命令隊(duì)列的概念圖。
圖13為圖示圖4和圖11中所示的存儲(chǔ)器控制單元的示圖。
圖14為圖示包含于讀取數(shù)據(jù)中的碼字的概念圖。
圖15為圖示圖13中所示的解碼狀態(tài)表的概念圖。
圖16為圖示圖4和圖11中所示的控制器的實(shí)施例的框圖。
圖17為圖示圖1中所示的存儲(chǔ)系統(tǒng)的應(yīng)用示例的框圖。
具體實(shí)施方式
在下文中,將參照附圖來(lái)詳細(xì)描述各種實(shí)施例。附圖被提供以允許本領(lǐng)域技術(shù)人員理解本發(fā)明的實(shí)施例的范圍。然而,本發(fā)明可以以不同形式體現(xiàn),且不應(yīng)被解釋為局限于所闡述的實(shí)施例。相反地,這些實(shí)施例被提供使得本公開(kāi)將是徹底且完整的。此外,實(shí)施例被提供以將本發(fā)明的范圍充分地傳達(dá)給本領(lǐng)域技術(shù)人員。
貫穿本公開(kāi),附圖標(biāo)記直接對(duì)應(yīng)于本發(fā)明的各種附圖和實(shí)施例中相同編號(hào)的部件。亦注意到,在本說(shuō)明書(shū)中,“連接/耦接”表示一個(gè)組件不僅直接耦接到另一組件,而且也表示通過(guò)中間組件而間接耦接到另一組件。此外,只要未說(shuō)明,則單數(shù)形態(tài)可以包含復(fù)數(shù)形態(tài),反之亦然。
圖1為圖示根據(jù)一個(gè)實(shí)施例的存儲(chǔ)系統(tǒng)50的框圖。
參照?qǐng)D1,存儲(chǔ)系統(tǒng)50可以包含半導(dǎo)體存儲(chǔ)器件100和控制器200。
半導(dǎo)體存儲(chǔ)器件100可以通過(guò)控制器200來(lái)控制。半導(dǎo)體存儲(chǔ)器件100可以包含存儲(chǔ)單元陣列110和驅(qū)動(dòng)該存儲(chǔ)單元陣列110的外圍電路120。存儲(chǔ)單元陣列110可以包含多個(gè)非易失性存儲(chǔ)單元。
外圍電路120可以通過(guò)控制器200來(lái)控制。在控制器200的控制下,外圍電路120可以將數(shù)據(jù)編程至存儲(chǔ)單元陣列110中、從存儲(chǔ)單元陣列110讀取數(shù)據(jù)以及從存儲(chǔ)單元陣列110擦除數(shù)據(jù)。
根據(jù)一個(gè)實(shí)施例,半導(dǎo)體存儲(chǔ)器件100的讀取操作和編程操作可以以頁(yè)為單位來(lái)執(zhí) 行。半導(dǎo)體存儲(chǔ)器件100的擦除操作可以以存儲(chǔ)塊為單位來(lái)執(zhí)行。
在編程操作期間,外圍電路120可以從控制器20接收指示編程操作的命令、物理地址和寫(xiě)入數(shù)據(jù)。單個(gè)存儲(chǔ)塊以及包含于其中的單個(gè)頁(yè)可以通過(guò)物理地址來(lái)指定。外圍電路120可以將寫(xiě)入數(shù)據(jù)編程至對(duì)應(yīng)的頁(yè)中。
在讀取操作期間,外圍電路120可以從控制器200接收指示該讀取操作的命令(在下文中為讀取命令)以及物理地址。單個(gè)存儲(chǔ)塊以及包含于其中的單個(gè)頁(yè)可以通過(guò)該物理地址來(lái)指定。外圍電路120可以從對(duì)應(yīng)的頁(yè)讀取數(shù)據(jù),并將讀取的數(shù)據(jù)(在下文中為讀取數(shù)據(jù))輸出至控制器200。
在擦除操作期間,外圍電路120可以從控制器200接收指示該擦除操作的命令和物理地址。物理地址可以指定單個(gè)存儲(chǔ)塊。外圍電路120可以擦除對(duì)應(yīng)于該物理地址的存儲(chǔ)塊的數(shù)據(jù)。
根據(jù)一個(gè)實(shí)施例,半導(dǎo)體存儲(chǔ)器件100可以為快閃存儲(chǔ)器件。
控制器200可以控制半導(dǎo)體存儲(chǔ)器件100的常規(guī)操作。控制器200可以在主機(jī)的請(qǐng)求下訪問(wèn)半導(dǎo)體存儲(chǔ)器件100。例如,控制器1200可以控制半導(dǎo)體存儲(chǔ)器件100的讀取操作、編程操作、擦除操作和/或后臺(tái)操作(background operation)。控制器200可以提供半導(dǎo)體存儲(chǔ)器件100與主機(jī)之間的接口??刂破?00可以驅(qū)動(dòng)用于控制半導(dǎo)體存儲(chǔ)器件100的固件。
當(dāng)主機(jī)傳送讀取請(qǐng)求時(shí),為了識(shí)別對(duì)應(yīng)于該讀取請(qǐng)求的頁(yè)中的數(shù)據(jù),控制器200可以將讀取命令提供給半導(dǎo)體存儲(chǔ)器件100??刂破?00可以將包含于該讀取請(qǐng)求中的邏輯塊地址轉(zhuǎn)換為物理塊地址。根據(jù)一個(gè)實(shí)施例,控制器200可以當(dāng)作閃存轉(zhuǎn)換層(FTL,flash translation layer)。控制器200可以將產(chǎn)生的物理地址與該讀取命令一起提供給半導(dǎo)體存儲(chǔ)器件100。
響應(yīng)各個(gè)讀取命令,半導(dǎo)體存儲(chǔ)器件100可以將讀取數(shù)據(jù)傳送至控制器200。控制器200可以判斷在該讀取數(shù)據(jù)中是否包含有錯(cuò)誤。例如,控制器200可以根據(jù)錯(cuò)誤校正碼來(lái)對(duì)該讀取數(shù)據(jù)解碼??梢允褂酶鞣N錯(cuò)誤校正碼,諸如BCH碼(Bose Chaudhuri Hocquenghem code)、漢明碼(Hamming code)、里德-所羅門(mén)碼(Reed Solomon code)、低密度奇偶校驗(yàn)碼(LDPC code,low density parity check code)。例如,當(dāng)讀取數(shù)據(jù)包含多于預(yù)定數(shù)量的錯(cuò)誤位時(shí),解碼可以失敗。當(dāng)讀取數(shù)據(jù)包含等于或少于該預(yù)定數(shù)量的錯(cuò)誤位時(shí),解碼可以成功。
解碼成功可以意指對(duì)應(yīng)的讀取命令通過(guò),而解碼失敗可以意指對(duì)應(yīng)的讀取命令失 敗。當(dāng)解碼成功時(shí),控制器200可以將錯(cuò)誤校正過(guò)的讀取數(shù)據(jù)輸出給主機(jī)。當(dāng)解碼失敗時(shí),控制器200可以重新傳送讀取命令至半導(dǎo)體存儲(chǔ)器件100。
圖2為圖示參照?qǐng)D1而描述的半導(dǎo)體存儲(chǔ)器件100的框圖。圖3為圖2中所示的存儲(chǔ)單元陣列110的框圖。
參照?qǐng)D2,半導(dǎo)體存儲(chǔ)器件100可以包含存儲(chǔ)單元陣列110和外圍電路120。
存儲(chǔ)單元陣列110可以包含多個(gè)存儲(chǔ)單元。所述多個(gè)存儲(chǔ)單元可以通過(guò)行線RL而耦接到地址解碼器121,以及通過(guò)位線BL而耦接到讀寫(xiě)電路123。
參照?qǐng)D3,存儲(chǔ)單元陣列110可以包含多個(gè)存儲(chǔ)塊BLK1至BLKz。第一存儲(chǔ)塊BLK1至第z存儲(chǔ)塊BLKz可以共同耦接到第一位線BL1至第m位線BLm。第一位線BL1至第m位線BLm可以形成圖2中所示的位線BL。存儲(chǔ)塊BLK1至BLKz中的每個(gè)可以形成擦除單元。
在圖3中,圖示了包含于存儲(chǔ)塊BLK1至BLKz的一個(gè)存儲(chǔ)塊(BLK1)中的元件,以及為了清楚而省略包含于剩余的存儲(chǔ)塊BLK2至BLKz中的元件。剩余的存儲(chǔ)塊BLK2至BLKz中的每個(gè)可以以與第一存儲(chǔ)塊BLK1基本上相同的方式來(lái)配置。
存儲(chǔ)塊BLK1可以包含多個(gè)單元串CS1至CSm。第一單元串CS1至第m單元串CSm可以分別耦接到第一位線BL1至第m位線BLm。
單元串CS1至CSm中的每個(gè)可以包含漏極選擇晶體管DST、串聯(lián)耦接的多個(gè)存儲(chǔ)單元MC1至MCn以及源極選擇晶體管SST。漏極選擇晶體管DST可以耦接到漏極選擇線DSL1。第一存儲(chǔ)單元MC1至第n存儲(chǔ)單元MCn可以分別耦接到第一字線WL1至第n字線WLn。源極選擇晶體管SST可以耦接到源極選擇線SSL1。漏極選擇晶體管DST的漏極端可以耦接到對(duì)應(yīng)的位線。源極選擇晶體管SST的源極端可以耦接到參考電壓節(jié)點(diǎn)。根據(jù)一個(gè)實(shí)施例,源極選擇晶體管SST的源極端可以耦接到公共源極線(未示出)。該公共源極線可以被偏置至參考電壓。
第一單元串CS1至第m單元串CSm中的耦接到單個(gè)字線的存儲(chǔ)單元可以形成單個(gè)頁(yè)pg。因此,存儲(chǔ)塊BLK1可以包含多個(gè)頁(yè)。
漏極選擇線DSL1、第一字線WL1至第n字線WLn以及源極選擇線SSL1可以被包含于圖2中所示的行線RL中。漏極選擇線DSL1、第一字線WL1至第n字線WLn以及源極選擇線SSL1可以通過(guò)地址解碼器121來(lái)控制。第一位線BL1至第m位線BLm可以通過(guò)讀寫(xiě)電路123來(lái)控制。
再次參照?qǐng)D2,外圍電路120可以包含地址解碼器121、電壓發(fā)生器122、讀寫(xiě)電路123、輸入/輸出緩沖器124以及控制邏輯125。
地址解碼器121可以通過(guò)行線RL而耦接到存儲(chǔ)單元陣列110。地址解碼器121可以通過(guò)控制邏輯125來(lái)控制。地址解碼器121可以通過(guò)控制邏輯125來(lái)接收物理地址PA。
半導(dǎo)體存儲(chǔ)器件100的讀取操作可以以頁(yè)為單位(見(jiàn)圖3中的引用符號(hào)pg)來(lái)執(zhí)行。在讀取操作期間所接收的物理地址PA可以包含塊地址和行地址。
地址解碼器121可以對(duì)接收的物理地址PA中的塊地址解碼。地址解碼器121可以根據(jù)解碼的塊地址來(lái)選擇存儲(chǔ)塊BLK1至BLKz中的一個(gè)。
地址解碼器121可以對(duì)接收的物理地址PA中的行地址解碼,并選擇選中存儲(chǔ)塊中的一個(gè)字線。因此,單個(gè)頁(yè)可以被選中。地址解碼器121可以將來(lái)自電壓發(fā)生器122的讀取電壓施加至選中字線,并將來(lái)自電壓發(fā)生器122的通過(guò)電壓施加至未選中字線。
電壓發(fā)生器122可以通過(guò)控制邏輯125來(lái)控制。電壓發(fā)生器122可以通過(guò)使用被提供給半導(dǎo)體存儲(chǔ)器件100的外部電源電壓來(lái)產(chǎn)生內(nèi)部電源電壓。例如,電壓發(fā)生器122可以通過(guò)調(diào)節(jié)外部電源電壓來(lái)產(chǎn)生內(nèi)部電源電壓。內(nèi)部電源電壓可以被提供至地址解碼器121、讀寫(xiě)電路123、輸入/輸出緩沖器124以及控制邏輯125,并被用作半導(dǎo)體存儲(chǔ)器件100的操作電壓。
電壓發(fā)生器122可以通過(guò)使用外部電源電壓和內(nèi)部電源電壓中的至少一種來(lái)產(chǎn)生多個(gè)電壓。根據(jù)一個(gè)實(shí)施例,電壓發(fā)生器122可以包含接收內(nèi)部電源電壓的多個(gè)泵電容,并通過(guò)在控制邏輯125的控制下選擇性地激活多個(gè)泵電容來(lái)產(chǎn)生多個(gè)電壓。例如,在讀取操作期間,電壓發(fā)生器122可以產(chǎn)生讀取電壓以及具有比該讀取電壓高的電壓電平的通過(guò)電壓。產(chǎn)生的電壓可以被提供給地址解碼器121。
讀寫(xiě)電路123可以通過(guò)位線BL而耦接到存儲(chǔ)單元陣列110。讀寫(xiě)電路123可以通過(guò)控制邏輯125來(lái)控制。
在讀取操作期間,讀寫(xiě)電路123可以讀取并儲(chǔ)存來(lái)自存儲(chǔ)單元陣列110的選中字線的頁(yè)的讀取數(shù)據(jù)DATA。讀取數(shù)據(jù)DATA可以通過(guò)數(shù)據(jù)線DL而被傳送至輸入/輸出緩沖器124。
輸入/輸出緩沖器124可以通過(guò)數(shù)據(jù)線DL而耦接到讀寫(xiě)電路123。輸入/輸出緩沖器124可以通過(guò)控制邏輯125來(lái)控制。輸入/輸出緩沖器124可以將通過(guò)數(shù)據(jù)線DL而從讀寫(xiě)電路123傳送來(lái)的讀取數(shù)據(jù)DATA向外部輸出。
控制邏輯125可以控制半導(dǎo)體存儲(chǔ)器件100的常規(guī)操作。控制邏輯125可以接收命令CMD和物理地址PA。在讀取操作期間,命令CMD可以為讀取命令。在編程操作期間,命令CMD可以指示該編程操作。在擦除操作期間,命令CMD可以指示該擦除操作??刂七壿?25可以響應(yīng)于接收到的命令CMD來(lái)控制地址解碼器121、電壓發(fā)生器122、讀寫(xiě)電路123以及輸入/輸出緩沖器124。
用來(lái)改變半導(dǎo)體存儲(chǔ)器件100的設(shè)定值的參數(shù)設(shè)定命令可以被接收作為命令CMD。例如,參數(shù)設(shè)定命令可以包含用來(lái)改變讀取電壓的信息??刂七壿?25可以響應(yīng)于參數(shù)設(shè)定命令來(lái)控制電壓發(fā)生器122以改變讀取電壓。例如,參數(shù)設(shè)定命令可以包含用來(lái)改變通過(guò)電壓的信息。
在每個(gè)頁(yè)中包含的存儲(chǔ)單元的閾值電壓分布可以因?yàn)楦鞣N原因而改變。眾所周知的是,選中字線的數(shù)據(jù)通過(guò)控制讀取電壓而被識(shí)別為不同的讀取數(shù)據(jù)。換言之,通過(guò)施加不適當(dāng)?shù)淖x取電壓,許多錯(cuò)誤位可以被包含于讀取數(shù)據(jù)中。通過(guò)控制讀取電壓,可以減少讀取數(shù)據(jù)中包含的錯(cuò)誤位。當(dāng)讀取命令由于通過(guò)執(zhí)行讀取命令而獲得的讀取數(shù)據(jù)中包含許多錯(cuò)誤位而失敗時(shí),圖1中所示的控制器200可以通過(guò)將參數(shù)設(shè)定命令提供給半導(dǎo)體存儲(chǔ)器件100來(lái)控制讀取電壓,并通過(guò)再次傳送讀取命令來(lái)再次接收對(duì)應(yīng)的頁(yè)的讀取數(shù)據(jù)。
圖4為根據(jù)一個(gè)實(shí)施例的參照?qǐng)D1而描述的控制器200的框圖。
參照?qǐng)D4,控制器200可以包含存儲(chǔ)器單元210、命令發(fā)生單元220、存儲(chǔ)器控制單元230和命令管理單元240。
存儲(chǔ)器單元210可以耦接到命令發(fā)生單元220、存儲(chǔ)器控制單元230和命令管理單元240。在控制器200中,存儲(chǔ)器單元210可以提供儲(chǔ)存空間。在存儲(chǔ)器單元210中,可以定義命令隊(duì)列CQ和狀態(tài)信息隊(duì)列SQ。命令隊(duì)列CQ和狀態(tài)信息隊(duì)列SQ兩者都可以使用先進(jìn)先出法(first-in first-out basis)來(lái)管理。命令隊(duì)列CQ和狀態(tài)信息隊(duì)列SQ中的每個(gè)可以包含頭地址HA和尾地址TA。
命令發(fā)生單元220可以耦接到存儲(chǔ)器單元210和命令管理單元240。命令發(fā)生單元220可以通過(guò)命令管理單元240來(lái)控制。響應(yīng)來(lái)自主機(jī)的請(qǐng)求,命令發(fā)生單元220可以在命令管理單元240的控制下產(chǎn)生對(duì)應(yīng)于該請(qǐng)求的命令。
根據(jù)一個(gè)實(shí)施例,命令發(fā)生單元220可以當(dāng)作閃存轉(zhuǎn)換層(FTL)。命令發(fā)生單元220可以將來(lái)自主機(jī)的請(qǐng)求中包含的邏輯塊地址轉(zhuǎn)換為物理塊地址。當(dāng)對(duì)應(yīng)的命令被儲(chǔ)存于命令隊(duì)列CQ中時(shí),命令發(fā)生單元220可以將產(chǎn)生的物理地址與對(duì)應(yīng)的命令一起儲(chǔ)存在 存儲(chǔ)器單元210中。儲(chǔ)存在存儲(chǔ)器單元210中的物理地址可以通過(guò)存儲(chǔ)器控制單元230而與對(duì)應(yīng)的命令一起被傳送至半導(dǎo)體存儲(chǔ)器件100。
根據(jù)一個(gè)實(shí)施例,命令發(fā)生單元220可以產(chǎn)生用于識(shí)別與讀取請(qǐng)求相對(duì)應(yīng)的頁(yè)(在下文中為選中頁(yè))的數(shù)據(jù)的多個(gè)命令,并將產(chǎn)生的命令儲(chǔ)存在命令隊(duì)列CQ中,命令隊(duì)列CQ被限定在存儲(chǔ)器單元210中。根據(jù)一個(gè)實(shí)施例,命令發(fā)生單元220可以重復(fù)產(chǎn)生讀取命令和參數(shù)設(shè)定命令,并將產(chǎn)生的讀取命令和參數(shù)設(shè)定命令輸入至命令隊(duì)列CQ中。
根據(jù)一個(gè)實(shí)施例,命令發(fā)生單元220可以響應(yīng)于讀取請(qǐng)求而產(chǎn)生用于識(shí)別選中頁(yè)的數(shù)據(jù)的多個(gè)命令。產(chǎn)生的命令可以被順序地提供給半導(dǎo)體存儲(chǔ)器件100。
根據(jù)一個(gè)實(shí)施例,命令發(fā)生單元220可以響應(yīng)于讀取請(qǐng)求而首先產(chǎn)生單個(gè)讀取命令。該讀取命令和對(duì)應(yīng)的物理地址可以被提供給半導(dǎo)體存儲(chǔ)器件100。來(lái)自半導(dǎo)體存儲(chǔ)器件100的讀取數(shù)據(jù)可以被接收。當(dāng)對(duì)讀取數(shù)據(jù)的解碼失敗時(shí),命令發(fā)生單元220可以在命令管理單元240的控制下產(chǎn)生用于識(shí)別選中頁(yè)中的數(shù)據(jù)的多個(gè)命令。
存儲(chǔ)器控制單元230可以耦接到存儲(chǔ)單元210和命令管理單元240。存儲(chǔ)器控制單元230可以包含ECC塊235。存儲(chǔ)器控制單元230可以通過(guò)命令管理單元240來(lái)控制。
存儲(chǔ)器控制單元230可以在命令管理單元240的控制下從命令隊(duì)列CQ輸出命令,并將輸出的命令提供給半導(dǎo)體存儲(chǔ)器件100。
當(dāng)讀取命令RCMD從命令隊(duì)列CQ輸出時(shí),半導(dǎo)體存儲(chǔ)器件100可以接收讀取命令RCMD。半導(dǎo)體存儲(chǔ)器件100可以響應(yīng)于讀取命令RCMD而將讀取的數(shù)據(jù)提供給控制器200。讀取數(shù)據(jù)可以包含儲(chǔ)存于單個(gè)頁(yè)中的數(shù)據(jù)位。存儲(chǔ)器控制單元230的ECC塊235可以通過(guò)錯(cuò)誤校正碼而對(duì)讀取數(shù)據(jù)解碼以校正讀取數(shù)據(jù)中的錯(cuò)誤。當(dāng)解碼成功或讀取命令RCMD通過(guò)時(shí),存儲(chǔ)器控制單元230可以將指示讀取命令RCMD通過(guò)的狀態(tài)信息儲(chǔ)存在信息隊(duì)列SQ中,狀態(tài)信息隊(duì)列SQ被限定在存儲(chǔ)器單元210中。當(dāng)解碼失敗或該讀取命令RCMD失敗時(shí),存儲(chǔ)器控制單元230可以將指示讀取命令RCMD失敗的狀態(tài)信息儲(chǔ)存在狀態(tài)信息隊(duì)列SQ中。
在讀取命令RCMD被輸出之后,當(dāng)參數(shù)設(shè)定命令PST從命令隊(duì)列CQ輸出時(shí),半導(dǎo)體存儲(chǔ)器件100可以改變內(nèi)部設(shè)定值。
下一個(gè)讀取命令RCMD可以基于先進(jìn)先出法而從命令隊(duì)列CQ輸出。存儲(chǔ)器控制單元230可以將下一個(gè)讀取命令RCMD提供給半導(dǎo)體存儲(chǔ)器件100。半導(dǎo)體存儲(chǔ)器件100可以響應(yīng)于下一個(gè)讀取命令RCMD而將第二讀取命令提供給控制器200。根據(jù)一個(gè)實(shí)施例,第二讀取命令可以被暫時(shí)地儲(chǔ)存于存儲(chǔ)器控制單元230中或存儲(chǔ)器單元210中。存 儲(chǔ)器控制單元230的ECC塊235可以通過(guò)錯(cuò)誤校正碼而對(duì)讀取數(shù)據(jù)解碼。根據(jù)解碼結(jié)果,存儲(chǔ)器控制單元230可以將第二狀態(tài)信息儲(chǔ)存在狀態(tài)信息隊(duì)列SQ中。
通過(guò)上述方式,控制器200可以將命令隊(duì)列CQ中儲(chǔ)存的讀取命令和參數(shù)設(shè)定命令順序地提供給半導(dǎo)體存儲(chǔ)器件100、接收對(duì)應(yīng)的讀取數(shù)據(jù)以及對(duì)接收到的讀取數(shù)據(jù)解碼。指示讀取數(shù)據(jù)是否被成功解碼或者對(duì)應(yīng)的讀取命令通過(guò)還是失敗的信息可以作為狀態(tài)信息而被儲(chǔ)存在狀態(tài)信息隊(duì)列SQ中。
命令管理單元240可以控制存儲(chǔ)器單元210、命令發(fā)生單元220和存儲(chǔ)器控制單元230。命令管理單元240可以響應(yīng)于來(lái)自主機(jī)的讀取請(qǐng)求而控制命令發(fā)生單元220來(lái)產(chǎn)生多個(gè)命令。命令管理單元240可以控制存儲(chǔ)器控制單元230來(lái)將儲(chǔ)存在命令隊(duì)列CQ中的命令傳送至半導(dǎo)體存儲(chǔ)器件100。
命令管理單元240可以參照狀態(tài)信息隊(duì)列SQ中儲(chǔ)存的狀態(tài)信息來(lái)管理命令隊(duì)列CQ。命令隊(duì)列CQ的開(kāi)始地址和結(jié)束地址可以指示用于識(shí)別選中頁(yè)中的數(shù)據(jù)的命令在命令隊(duì)列CQ中的位置。開(kāi)始地址和結(jié)束地址可以被限定在命令隊(duì)列CQ的頭地址HA與尾地址TA之間。
命令發(fā)生單元220可以將開(kāi)始地址和結(jié)束地址提供給命令管理單元240。命令管理單元240可以識(shí)別開(kāi)始地址和結(jié)束地址。
當(dāng)從狀態(tài)信息隊(duì)列SQ輸出的狀態(tài)信息指示讀取命令RCMD通過(guò)時(shí),命令管理單元240可以將錯(cuò)誤校正過(guò)的讀取數(shù)據(jù)從存儲(chǔ)器控制單元230輸出給主機(jī)。根據(jù)一個(gè)實(shí)施例,當(dāng)多個(gè)讀取命令中的一個(gè)通過(guò)時(shí),命令管理單元240可以中止剩余在命令隊(duì)列CQ中的剩余的讀取命令和剩余的參數(shù)設(shè)定命令,或者中止基于先進(jìn)先出法而接著通過(guò)的讀取命令的剩余讀取命令和剩余參數(shù)設(shè)定命令。
當(dāng)從狀態(tài)信息隊(duì)列SQ輸出的狀態(tài)信息指示讀取命令RCMD失敗時(shí),命令管理單元240可以判斷下一個(gè)讀取命令RCMD是否通過(guò)。命令管理單元240可以基于從狀態(tài)信息隊(duì)列SQ輸出的下一個(gè)狀態(tài)信息來(lái)判斷下一個(gè)讀取命令RCMD是否通過(guò)。作為判斷的結(jié)果,命令管理單元240可以中止剩余在命令隊(duì)列CQ中的剩余的讀取命令和剩余的參數(shù)設(shè)定命令。例如,當(dāng)下一個(gè)讀取命令RCMD通過(guò)時(shí),可以中止基于先進(jìn)先出法而接著該下一個(gè)讀取命令RCMD的讀取命令和參數(shù)設(shè)定命令。
不同于本發(fā)明,假設(shè)命令發(fā)生單元220產(chǎn)生單個(gè)讀取命令來(lái)識(shí)別選中頁(yè)的數(shù)據(jù),并根據(jù)該讀取命令是否失敗來(lái)產(chǎn)生其它命令,例如參數(shù)設(shè)定命令和另一個(gè)讀取命令。當(dāng)對(duì)應(yīng)的讀取命令失敗時(shí),命令發(fā)生單元220產(chǎn)生參數(shù)設(shè)定命令和下一個(gè)讀取命令以再次識(shí) 別選中頁(yè)的數(shù)據(jù)。因此,命令發(fā)生單元220需要停止當(dāng)前正被執(zhí)行的操作。例如,命令管理單元240可以將中斷信號(hào)傳送給命令發(fā)生單元220,且命令發(fā)生單元220可以響應(yīng)于該中斷信號(hào)而終止當(dāng)前執(zhí)行的操作。因此,可以增大命令發(fā)生單元220和控制器200的操作時(shí)間。當(dāng)另一個(gè)命令(例如編程命令)已經(jīng)輸入至命令隊(duì)列CQ時(shí),命令發(fā)生單元220可以在命令隊(duì)列CQ中搜索另一個(gè)命令(例如該編程命令)。隨后,命令發(fā)生單元220可以中止搜索的命令,或者將用于識(shí)別選中頁(yè)的數(shù)據(jù)的另一個(gè)命令添加至在搜索的命令的地址之前的地址。因此,可以增大命令發(fā)生單元220和控制器200的操作時(shí)間。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,命令發(fā)生單元220可以產(chǎn)生用于識(shí)別選中頁(yè)的數(shù)據(jù)的多個(gè)命令,并將產(chǎn)生的命令儲(chǔ)存在命令隊(duì)列CQ中。當(dāng)從命令隊(duì)列CQ輸出的讀取命令中的一個(gè)通過(guò)時(shí),可以中止命令隊(duì)列CQ中剩余的命令,或者可以中止基于先進(jìn)先出法而接著通過(guò)的讀取命令的命令。與取消同時(shí),命令發(fā)生單元220可以執(zhí)行其他操作。因此,可以改善命令發(fā)生單元220和控制器200的操作時(shí)間。
圖5為圖示根據(jù)一個(gè)實(shí)施例的控制器200的操作方法的流程圖。
參照?qǐng)D4和圖5,在步驟S110處,可以產(chǎn)生多個(gè)讀取命令及多個(gè)參數(shù)設(shè)定命令。讀取命令和參數(shù)設(shè)定命令可以用于識(shí)別選中頁(yè)的數(shù)據(jù)。當(dāng)對(duì)第一讀取數(shù)據(jù)的解碼失敗時(shí),命令發(fā)生單元220可以在命令管理單元240的控制下產(chǎn)生用于識(shí)別選中頁(yè)的數(shù)據(jù)的讀取命令和參數(shù)設(shè)定命令。在步驟S120處,產(chǎn)生的命令可以被儲(chǔ)存在命令隊(duì)列CQ中。
在步驟S130處,當(dāng)讀取命令和參數(shù)設(shè)定命令被順序提供給半導(dǎo)體存儲(chǔ)器件100時(shí),可以判斷讀取命令中的每個(gè)是否通過(guò)。
當(dāng)讀取命令RCMD被提供給半導(dǎo)體存儲(chǔ)器件100時(shí),存儲(chǔ)器控制單元230可以從半導(dǎo)體存儲(chǔ)器件100接收與讀取命令RCMD相對(duì)應(yīng)的讀取數(shù)據(jù)。存儲(chǔ)器控制單元230可以對(duì)讀取數(shù)據(jù)解碼,并將關(guān)于讀取數(shù)據(jù)是否被成功解碼的信息作為第一狀態(tài)信息而儲(chǔ)存在狀態(tài)信息隊(duì)列SQ中。當(dāng)參數(shù)設(shè)定命令被提供給半導(dǎo)體存儲(chǔ)器件100時(shí),半導(dǎo)體存儲(chǔ)器件100可以改變內(nèi)部設(shè)定值。當(dāng)下一個(gè)讀取命令RCMD被提供給半導(dǎo)體存儲(chǔ)器件100時(shí),存儲(chǔ)器控制單元230可以從半導(dǎo)體存儲(chǔ)器件100接收與下一個(gè)讀取命令RCMD相對(duì)應(yīng)的讀取數(shù)據(jù)。存儲(chǔ)器控制單元230可以對(duì)對(duì)應(yīng)的讀取數(shù)據(jù)解碼,并將關(guān)于對(duì)應(yīng)的讀取數(shù)據(jù)是否被成功解碼的信息作為第二狀態(tài)信息儲(chǔ)存在狀態(tài)信息隊(duì)列SQ中。第一狀態(tài)信息和第二狀態(tài)信息基于先進(jìn)先出法而儲(chǔ)存在狀態(tài)信息隊(duì)列SQ中。
命令管理單元240可以監(jiān)控狀態(tài)信息隊(duì)列SQ。命令管理單元240可以檢查狀態(tài)信息隊(duì)列SQ,并判斷每個(gè)讀取命令是否通過(guò)。
存儲(chǔ)器控制單元230(其將讀取命令和參數(shù)設(shè)定命令傳送至半導(dǎo)體存儲(chǔ)器件100,并將狀態(tài)信息儲(chǔ)存在狀態(tài)信息隊(duì)列SQ中)和命令管理單元240(其檢查狀態(tài)信息隊(duì)列SQ,并判斷每個(gè)命令是否通過(guò))可以并行地執(zhí)行這些操作。
在步驟S140處,當(dāng)讀取命令中的一個(gè)通過(guò)時(shí),可以執(zhí)行步驟S150。當(dāng)讀取命令全部失敗(在步驟S140中為“否”)時(shí),其可以意指在步驟S110處產(chǎn)生的命令全部都被提供給半導(dǎo)體存儲(chǔ)器件100,且不管所有的讀取命令和參數(shù)設(shè)定命令,對(duì)選中頁(yè)的數(shù)據(jù)的識(shí)別都失敗。
在步驟S150處,可以中止命令隊(duì)列CQ中剩余的讀取命令和剩余的設(shè)定命令,或者可以中止基于先進(jìn)先出法而接著通過(guò)的讀取命令的讀取命令和參數(shù)設(shè)定命令。
圖6為圖示命令隊(duì)列CQ的概念圖。
參考圖6,命令隊(duì)列CQ可以在頭地址HA與尾地址TA之間儲(chǔ)存命令。頭地址HA可以指示命令隊(duì)列CQ中的第一命令CMD1的位置。命令隊(duì)列CQ的最后命令CMDq可以通過(guò)尾地址TA來(lái)指定。命令隊(duì)列CQ可以基于先進(jìn)先出法來(lái)管理。頭地址HA的命令可以首先被輸入至命令隊(duì)列CQ,并輸出至半導(dǎo)體存儲(chǔ)器件100。尾地址TA的命令可以最后被輸入至命令隊(duì)列CQ,并輸出至半導(dǎo)體存儲(chǔ)器件100。
通過(guò)命令發(fā)生單元220產(chǎn)生的命令CMD1至CMDp、RCMD1至RCMDx、PST1至PSTy以及CMDp+1至CMDq可以按照輸入至命令隊(duì)列CQ的順序來(lái)儲(chǔ)存在命令隊(duì)列CQ中。儲(chǔ)存在命令隊(duì)列CQ中的命令可以具有命令隊(duì)列CQ中的它們自己的地址。
例如,當(dāng)?shù)谝幻頒MD1至第p命令CMDp順序地儲(chǔ)存在命令隊(duì)列CQ中時(shí),命令發(fā)生單元220可以產(chǎn)生用于識(shí)別選中頁(yè)的數(shù)據(jù)的第一讀取命令RCMD1至第x讀取命令RCMDx以及第一參數(shù)設(shè)定命令PST1至第y參數(shù)設(shè)定命令PSTy。產(chǎn)生的讀取命令RCMD1至RCMDx以及參數(shù)設(shè)定命令PST1至PSTy可以按照輸入至命令隊(duì)列CQ的順序來(lái)儲(chǔ)存在命令隊(duì)列CQ中。讀取命令RCMD1至RCMDx以及參數(shù)設(shè)定命令PST1至PSTy可以順序地儲(chǔ)存在命令隊(duì)列CQ的開(kāi)始地址SA與命令隊(duì)列CQ的結(jié)束地址EA之間。命令發(fā)生單元220可以將命令隊(duì)列CQ的開(kāi)始地址SA和命令隊(duì)列CQ的結(jié)束地址EA通知給命令管理單元240。因此,命令管理單元240可以知道用于識(shí)別選中頁(yè)的數(shù)據(jù)的命令位于命令隊(duì)列CQ的開(kāi)始地址SA與命令隊(duì)列CQ的結(jié)束地址之間。
圖6圖示了交替地布置在命令隊(duì)列CQ中的讀取命令和參數(shù)設(shè)定命令。在圖6中,第一讀取命令RCMD1、第一參數(shù)設(shè)定命令PST1、第二讀取命令RCMD2、第二參數(shù)設(shè)定命令PST2……第y參數(shù)設(shè)定命令PSTy以及第x讀取命令RCMDx可以被順序地布置 在命令隊(duì)列CQ中。然而,這僅為示例。又例如,命令發(fā)生單元220可以在命令隊(duì)列CQ中布置不同數(shù)量和次序的讀取命令和參數(shù)設(shè)定命令。換言之,在命令隊(duì)列CQ中,讀取命令和參數(shù)設(shè)定命令可以根據(jù)命令發(fā)生單元220的實(shí)施方法和ECC塊235的實(shí)施方法來(lái)布置。
在讀取命令RCMD1至RCMDx以及參數(shù)設(shè)定命令PST1至PSTy被儲(chǔ)存在命令隊(duì)列CQ中之后,命令發(fā)生單元220可以產(chǎn)生其他命令CMDp+1至CMDq。產(chǎn)生的第p+1命令CMDp+1至第q命令CMDq可以從結(jié)束地址EA開(kāi)始以順序的方式儲(chǔ)存在命令隊(duì)列CQ中。
第一命令CMD1至第p命令CMDp以及第p+1命令CMDp+1至第q命令CMDq可以不是用于識(shí)別選中頁(yè)的數(shù)據(jù)的命令。在此條件下,命令CMD1至CMDq可以不被限制。例如,命令CMD1至CMDq中的每個(gè)可以為用于編程操作、擦除操作以及響應(yīng)于另一讀取請(qǐng)求的其他讀取操作的命令中的一個(gè)。
儲(chǔ)存在命令隊(duì)列CQ中的所有命令可以基于先進(jìn)先出法來(lái)輸出。例如,存儲(chǔ)器控制單元230可以從頭地址HA順序地增大操作指針(operation pointer)OP,并輸出由操作指針OP所指向的命令。在第一命令CMD1至第p命令CMDp輸出之后,可以輸出用于識(shí)別選中頁(yè)的數(shù)據(jù)的命令RCMD1至RCMDx以及PST1至PSTy。
圖6圖示了指向第一讀取命令RCMD1的操作指針OP。第一讀取命令RCMD1可以被輸出。當(dāng)?shù)谝蛔x取命令RCMD1被提供給半導(dǎo)體存儲(chǔ)器件100時(shí),半導(dǎo)體存儲(chǔ)器件100可以將與第一讀取命令RCMD1相對(duì)應(yīng)的第一讀取數(shù)據(jù)傳送至控制器200。
第一參數(shù)設(shè)定命令PST1可以被輸出。半導(dǎo)體存儲(chǔ)器件100可以響應(yīng)于第一參數(shù)設(shè)定命令PST1而改變內(nèi)部設(shè)定值。隨后,第二讀取命令RCMD2可以被輸出。當(dāng)?shù)诙x取命令RCMD2被提供給半導(dǎo)體存儲(chǔ)器件100時(shí),半導(dǎo)體存儲(chǔ)器件100可以將與第二讀取命令RCMD2相對(duì)應(yīng)的第二讀取數(shù)據(jù)傳送至控制器200。
可以根據(jù)第一讀取數(shù)據(jù)來(lái)判斷第一讀取命令RCMD1是否通過(guò)。可以對(duì)第一讀取數(shù)據(jù)解碼。狀態(tài)信息可以被儲(chǔ)存在狀態(tài)信息隊(duì)列SQ中,該狀態(tài)信息指示第一讀取數(shù)據(jù)是否被成功解碼?;谠摖顟B(tài)信息,可以判斷第一讀取命令RCMD1是否通過(guò)。當(dāng)?shù)谝蛔x取命令RCMD1通過(guò)時(shí),命令管理單元240可以中止開(kāi)始地址SA與結(jié)束地址EA之間的命令RCMD1至RCMDx以及PST1至PSTy之中剩余的命令。例如,當(dāng)該第二讀取命令RCMD2被輸出,且檢測(cè)到第一讀取命令RCMD1通過(guò)時(shí),可以中止開(kāi)始地址SA與結(jié)束地址EA之間的接著第一讀取命令RCMD1的剩余命令RCMD3至RCMDx以及PST2至PSTy。
圖7為圖示參照?qǐng)D5而描述的步驟S150的一個(gè)實(shí)施例的流程圖。
參照?qǐng)D4、圖6和圖7,在步驟S310處,當(dāng)檢測(cè)到命令隊(duì)列CQ中的讀取命令中的一個(gè)通過(guò)時(shí),命令管理單元240可以在開(kāi)始地址SA與結(jié)束地址EA之間定義陰影指針SP。例如,命令管理單元240可以向存儲(chǔ)器控制單元230詢問(wèn)操作指針OP的位置,并將該操作指針OP定義為陰影指針SP。此意指命令隊(duì)列CQ將剩余的讀取命令和剩余的參數(shù)設(shè)定命令儲(chǔ)存在由陰影指針SP所指示的地址與結(jié)束地址EA之間。也即,在命令隊(duì)列CQ中,基于先進(jìn)先出法而接著通過(guò)的讀取命令的讀取命令和參數(shù)設(shè)定命令可以被儲(chǔ)存在由陰影指針SP所指示的地址與結(jié)束地址EA之間。
在步驟S320處,命令管理單元240可以擦除由陰影指針SP所指示的地址的命令。在步驟S330處,命令管理單元240可以將陰影指針SP移動(dòng)至命令隊(duì)列CQ中的下一個(gè)地址。在步驟S340處,當(dāng)陰影指針SP指示結(jié)束地址EA時(shí),命令管理單元240可以中止結(jié)束地址EA的命令,并停止取消剩余的讀取命令和剩余的參數(shù)設(shè)定命令。當(dāng)陰影指針SP尚未指示結(jié)束地址EA時(shí),可以重復(fù)步驟S320至S340。換言之,可以重復(fù)步驟S320至S340,直到陰影指針SP指示結(jié)束地址EA為止。根據(jù)另一實(shí)施例,可以在步驟S320之前執(zhí)行步驟S330。
圖8為圖7中所示的一個(gè)實(shí)施例的概念圖。
參照?qǐng)D8,第一命令CMD1至第p命令CMDp可以首先被輸出。存儲(chǔ)器控制單元230可以輸出由操作指針OP所指向的命令,同時(shí)將操作指針OP從頭地址HA順序地移動(dòng)至下一個(gè)地址。圖8用陰影線圖示了被輸出的命令。
存儲(chǔ)器控制單元230可以輸出第一讀取命令RCMD1、第一參數(shù)設(shè)定命令PST1和第二讀取命令RCMD2,同時(shí)將操作指針OP移動(dòng)至下一個(gè)地址。
當(dāng)檢測(cè)到命令隊(duì)列CQ中的讀取命令中的一個(gè)通過(guò)時(shí),可以在開(kāi)始地址SA與結(jié)束地址EA之間定義陰影指針SP。命令管理單元240可以向存儲(chǔ)器控制單元230詢問(wèn)操作指針OP的位置,并定義陰影指針SP,使得陰影指針SP可以指向操作指針OP的地址。圖8圖示為操作指針OP指向第二讀取命令RCMD2的地址。隨后,命令管理單元240可以重復(fù)擦除由陰影指針SP所指示的地址的命令,并將陰影指針SP移動(dòng)至下一個(gè)地址,直到陰影指針SP指示結(jié)束地址EA為止。命令管理單元240可以控制存儲(chǔ)器單元210來(lái)擦除儲(chǔ)存在由陰影指針SP所指示的地址處的命令。因此,可以中止命令隊(duì)列CQ中剩余的讀取命令RCMD3至RCMDx以及剩余的參數(shù)設(shè)定命令PST2至PSTy。
根據(jù)一個(gè)實(shí)施例,可以不從命令隊(duì)列CQ輸出剩余的命令,且可以中止剩余的讀取 命令和剩余的參數(shù)設(shè)定命令。因此,可以更迅速地中止剩余的命令。
圖9為圖示參照?qǐng)D5而描述的步驟S150的另一實(shí)施例的流程圖。
參照?qǐng)D4、圖6和圖7,在步驟S410處,當(dāng)檢測(cè)到命令隊(duì)列CQ中的讀取命令中的一個(gè)通過(guò)時(shí),命令管理單元240可以從命令隊(duì)列CQ順序地輸出開(kāi)始地址SA與結(jié)束地址EA之間的基于先進(jìn)先出法而接著通過(guò)的讀取命令的剩余讀取命令。由于命令隊(duì)列CQ基于先進(jìn)先出法來(lái)操作,因此可以從命令隊(duì)列CQ擦除被輸出的命令。
在步驟S420處,命令管理單元240可以終止被輸出的命令。
圖10為圖9中所示的實(shí)施例的概念圖。
參照?qǐng)D10,第一命令CMD1至第p命令CMDp可以被輸出。圖10將被輸出的命令圖示為陰影線。操作指針OP可以到達(dá)開(kāi)始地址SA。
隨后,存儲(chǔ)器控制單元230可以輸出第一讀取命令RCMD1、第一參數(shù)設(shè)定命令PST1以及第二讀取命令RCMD2,同時(shí)將操作指針OP從開(kāi)始地址SA移動(dòng)至下一個(gè)地址。
例如,當(dāng)?shù)谝蛔x取命令RCMD1或第二讀取命令RCMD2通過(guò)時(shí),命令管理單元240可以向存儲(chǔ)器控制單元230詢問(wèn)來(lái)確定操作指針OP的位置,并將開(kāi)始地址SA與結(jié)束地址EA之間的基于先進(jìn)先出法而接著通過(guò)的第一讀取命令RCMD1或第二讀取命令RCMD2的剩余命令順序地輸出,同時(shí)將操作指針OP移動(dòng)至命令隊(duì)列CQ中的下一個(gè)地址。圖10示例性地圖示了操作指針OP指向第二讀取命令RCMD2。由操作指針OP指示的地址的命令可以通過(guò)命令管理單元240來(lái)順序地輸出。隨后,可以終止基于先進(jìn)先出法而接著通過(guò)的讀取命令且通過(guò)操作指針OP來(lái)指示的被輸出的命令。命令管理單元240可以終止被順序地輸出的讀取命令。換言之,可以忽略基于先進(jìn)先出法而接著通過(guò)的讀取命令的被順序地輸出的讀取命令。因此,可以中止命令隊(duì)列CQ中的剩余的讀取命令和剩余的參數(shù)設(shè)定命令。
根據(jù)一個(gè)實(shí)施例,甚至當(dāng)基于先進(jìn)先出法而接著通過(guò)的讀取命令的剩余讀取命令和剩余參數(shù)設(shè)定命令被中止時(shí),也可以從命令隊(duì)列CQ輸出剩余的命令,而不需要參照?qǐng)D7和圖8而描述的命令隊(duì)列CQ中的取消過(guò)程。因此,可以簡(jiǎn)化命令管理單元240的設(shè)計(jì)。
圖11為圖示根據(jù)另一實(shí)施例的圖1中所示的控制器200的框圖。圖2為圖11中所示的第一命令隊(duì)列CQ1和第二命令隊(duì)列CQ2的概念圖。
參照?qǐng)D11和圖12,控制器300可以包含存儲(chǔ)器單元310、命令發(fā)生單元220、存儲(chǔ)器控制單元230和命令管理單元240。
存儲(chǔ)器單元310可以包含第一命令隊(duì)列CQ1、第二命令隊(duì)列CQ2和狀態(tài)信息隊(duì)列SQ。第一命令隊(duì)列CQ1可以包含第一頭地址HA1和第一尾地址TA1。第二命令隊(duì)列CQ2可以包含第二頭地址HA2和第二尾地址TA2。存儲(chǔ)器單元310可以將用于識(shí)別選中頁(yè)中的數(shù)據(jù)的多個(gè)命令RCMD1至RCMDx以及PST1至PSTy儲(chǔ)存在第一命令隊(duì)列CQ1中。命令發(fā)生單元220可以將其他命令CMD1至CMDq儲(chǔ)存在第二命令隊(duì)列CQ2中。
命令發(fā)生單元220可以將與來(lái)自主機(jī)的請(qǐng)求相對(duì)應(yīng)的命令儲(chǔ)存在第二命令隊(duì)列CQ2中。儲(chǔ)存在第二命令隊(duì)列CQ2中的命令CMD1至CMDq可以從第二頭地址HA2順序地輸出,且被提供給半導(dǎo)體存儲(chǔ)器件100。
例如,當(dāng)操作指針OP指示第p命令CMDp時(shí),第p命令CMDp可以對(duì)應(yīng)于與來(lái)自主機(jī)的讀取請(qǐng)求相對(duì)應(yīng)的命令。第p命令CMDp以及指示選中頁(yè)的物理地址可以被提供給半導(dǎo)體存儲(chǔ)器件100。半導(dǎo)體存儲(chǔ)器件100可以將對(duì)應(yīng)的讀取數(shù)據(jù)傳送至控制器300。存儲(chǔ)器控制單元230可以對(duì)該讀取數(shù)據(jù)解碼,并將關(guān)于該讀取數(shù)據(jù)是否被成功解碼的信息儲(chǔ)存在狀態(tài)信息隊(duì)列SQ中。當(dāng)作為檢查狀態(tài)信息隊(duì)列SQ的結(jié)果而第p命令CMDp被確定為失敗時(shí),命令管理單元240可以控制命令發(fā)生單元220來(lái)產(chǎn)生用于識(shí)別選中頁(yè)的數(shù)據(jù)的命令RCMD1至RCMDx以及PST1至PSTy,并將產(chǎn)生的命令RCMD1至RCMDx以及PST1至PSTy輸入至單獨(dú)的命令隊(duì)列CQ1。
然后,操作指針OP可以被鎖定至第二命令隊(duì)列CQ2中的當(dāng)前地址,且可以基于先進(jìn)先出法來(lái)輸出第一命令隊(duì)列CQ1中的命令RCMD1至RCMDx以及PST1至PSTy。
根據(jù)此實(shí)施例,用于識(shí)別選中頁(yè)的數(shù)據(jù)的命令RCMD1至RCMDx以及PST1至PSTy可以被儲(chǔ)存在第一命令隊(duì)列CQ1中。當(dāng)從第一命令隊(duì)列CQ1輸出的讀取命令中的一個(gè)通過(guò)時(shí),可以為了取消而從第一命令隊(duì)列CQ1擦除基于先進(jìn)先出法而接著通過(guò)的讀取命令的剩余讀取命令和剩余參數(shù)設(shè)定命令??梢詾榱巳∠跏蓟谝幻铌?duì)列CQ1。由于用于識(shí)別選中頁(yè)中的數(shù)據(jù)的命令RCMD1至RCMDx以及PST1至PSTy儲(chǔ)存在第一命令隊(duì)列CQ1中,因此可以中止剩余的命令,而無(wú)需參照?qǐng)D6而描述的管理開(kāi)始地址SA和結(jié)束地址EA。因此,可以簡(jiǎn)化命令管理單元240的設(shè)計(jì)。
圖13為圖示參照?qǐng)D4和圖11所描述的存儲(chǔ)器控制單元230的視圖。圖14為圖示包含于讀取數(shù)據(jù)中的碼字CW1至CW4的概念圖。圖15為圖示圖13中所示的解碼狀態(tài)表DT的概念圖。
參照?qǐng)D13,存儲(chǔ)器控制單元230可以包含存儲(chǔ)器控制器431、數(shù)據(jù)緩沖器432、ECC塊235和多路復(fù)用塊MUX。
存儲(chǔ)器控制器431可以控制數(shù)據(jù)緩沖器432、ECC塊235和多路復(fù)用塊MUX。存儲(chǔ)器控制器431可以響應(yīng)于命令管理單元240而從命令隊(duì)列CQ輸出讀取命令RCMD,并將輸出的讀取命令RCMD提供給半導(dǎo)體存儲(chǔ)器件100。來(lái)自半導(dǎo)體存儲(chǔ)器件100的讀取數(shù)據(jù)可以被儲(chǔ)存于數(shù)據(jù)緩沖器432中。存儲(chǔ)器控制器431可以控制多路復(fù)用塊MUX來(lái)將儲(chǔ)存在數(shù)據(jù)緩沖器432中的讀取數(shù)據(jù)中的碼字的部分或全部傳送至ECC塊235。存儲(chǔ)器控制器431可以查閱解碼狀態(tài)表DT。
從半導(dǎo)體存儲(chǔ)器件100傳送來(lái)的讀取數(shù)據(jù)可以包含儲(chǔ)存在單個(gè)頁(yè)中的數(shù)據(jù)位。該數(shù)據(jù)位可以劃分成多個(gè)碼字。例如,如圖14中所示,該讀取數(shù)據(jù)可以包含第一碼字CW1至第四碼字CW4。
ECC塊235可以以碼字為單位來(lái)執(zhí)行解碼操作。ECC塊235可以通過(guò)存儲(chǔ)器控制器431來(lái)控制。ECC塊235可以通過(guò)多路復(fù)用塊MUX來(lái)接收一個(gè)或多個(gè)碼字,并根據(jù)錯(cuò)誤校正碼來(lái)對(duì)碼字中的每一個(gè)解碼。每當(dāng)存儲(chǔ)器控制單元230接收與讀取命令RCMD1至RCMDx相對(duì)應(yīng)的讀取數(shù)據(jù)時(shí),ECC塊235可以接收讀取數(shù)據(jù)中的碼字。此外,ECC塊235可以將關(guān)于接收到的碼字是否被成功解碼的信息反饋至存儲(chǔ)器控制器431。根據(jù)一個(gè)實(shí)施例,ECC塊235可以將錯(cuò)誤校正過(guò)的碼字暫時(shí)地儲(chǔ)存在存儲(chǔ)器單元210中。
根據(jù)一個(gè)實(shí)施例,存儲(chǔ)器控制器431可以儲(chǔ)存解碼狀態(tài)表DT。解碼狀態(tài)表DT可以包含關(guān)于對(duì)碼字中的每個(gè)的解碼是通過(guò)還是失敗的信息。如圖15中所示,存儲(chǔ)器控制器431的解碼狀態(tài)表DT可以包含關(guān)于第一碼字CW1至第四碼字CW4中的每個(gè)是否被成功解碼的信息。存儲(chǔ)器控制器431可以從ECC塊235接收關(guān)于每個(gè)碼字是否成功的信息,并基于接收到的信息來(lái)更新解碼狀態(tài)表DT。例如,隨著半導(dǎo)體存儲(chǔ)器件100響應(yīng)于更多的讀取命令和參數(shù)設(shè)定命令而執(zhí)行讀取操作,第一碼字CW1至第四碼字CW4中的更多個(gè)可以被成功地解碼。
圖15圖示了解碼狀態(tài)表DT,解碼狀態(tài)表DT包含指示對(duì)第一碼字CW1和第二碼字CW2的譯碼是否通過(guò)以及對(duì)第三碼字CW3和第四碼字CW4的解碼是否失敗的信息。例如,當(dāng)ECC塊235成功對(duì)第三碼字CW3成功解碼時(shí),存儲(chǔ)器控制器431可以在解碼狀態(tài)表DT中將與第三碼字CW3相對(duì)應(yīng)的信息從失敗更新成通過(guò)。當(dāng)ECC塊235在對(duì)第一碼字CW1至第四碼字CW4中的一個(gè)或多個(gè)解碼失敗時(shí),存儲(chǔ)器控制器431可以將指示對(duì)應(yīng)的讀取命令失敗的狀態(tài)信息儲(chǔ)存在狀態(tài)信息隊(duì)列SQ中。每當(dāng)ECC塊235成功地對(duì)第一碼字CW1至第四碼字CW4中的每個(gè)解碼時(shí),存儲(chǔ)器控制器431可以將指示對(duì) 應(yīng)的讀取命令通過(guò)的狀態(tài)信息儲(chǔ)存在狀態(tài)信息隊(duì)列SQ中。
根據(jù)一個(gè)實(shí)施例,存儲(chǔ)器控制器431可以通過(guò)查閱解碼狀態(tài)表DT來(lái)控制多路復(fù)用塊MUX以僅將碼字CW1至CW4中解碼失敗的一個(gè)從數(shù)據(jù)緩沖器432傳送至ECC塊235。因此,ECC塊235可以不重復(fù)對(duì)所有的讀取數(shù)據(jù)的解碼。因此,可以改善對(duì)讀取數(shù)據(jù)解碼所需的時(shí)間量。
圖13圖示了包含于存儲(chǔ)器控制單元230中的解碼狀態(tài)表DT。然而,這僅為示例。在另一示例中,解碼狀態(tài)表DT可以被儲(chǔ)存于存儲(chǔ)器單元210中。
圖16為圖示參照?qǐng)D4和圖11而描述的控制器200和控制器300的實(shí)施例1200的框圖。
參照?qǐng)D16,控制器1200可以包含存儲(chǔ)器單元1210、處理單元1220、主機(jī)接口1230、存儲(chǔ)器接口1240和錯(cuò)誤校正塊1250。
處理單元1220可以控制控制器1200的常規(guī)操作。存儲(chǔ)器單元1210可以被用作處理單元1220的操作存儲(chǔ)器、在圖4和圖11中所示的半導(dǎo)體存儲(chǔ)器件100與主機(jī)之間的高速緩沖存儲(chǔ)器和/或在半導(dǎo)體存儲(chǔ)器件100與主機(jī)之間的緩沖存儲(chǔ)器。處理單元1220和存儲(chǔ)器單元1210可以當(dāng)作圖4和圖11中所示的命令發(fā)生單元220和命令管理單元240。例如,處理單元1220可以將程序命令、數(shù)據(jù)文件和數(shù)據(jù)結(jié)構(gòu)加載在存儲(chǔ)器單元1210中,并通過(guò)運(yùn)行加載的數(shù)據(jù)來(lái)執(zhí)行命令發(fā)生單元220和命令管理單元240的功能。
另外,存儲(chǔ)器單元1210可以被用作圖4和圖11中所示的存儲(chǔ)器單元210和存儲(chǔ)器單元310。圖16圖示為提供一個(gè)存儲(chǔ)器單元1210。然而,兩個(gè)或更多個(gè)存儲(chǔ)器單元可以被提供。
主機(jī)接口1230可以包含用于在主機(jī)與控制器1200之間交換數(shù)據(jù)的協(xié)議。例如,控制器1200可以通過(guò)一種或多種協(xié)議來(lái)與主機(jī)通信,諸如通用串行總線(USB)協(xié)議、多媒體卡(MMC)協(xié)議、外圍組件互連(PCI)協(xié)議、快速外圍組件互連(PCI-E,PCI-express)協(xié)議、高級(jí)技術(shù)附件(ATA)協(xié)議、串行高級(jí)技術(shù)附件(SATA)協(xié)議、并行高級(jí)技術(shù)附件(PATA)協(xié)議、小型計(jì)算機(jī)系統(tǒng)接口(SCSI)協(xié)議、增強(qiáng)型小盤(pán)接口(ESDI)協(xié)議、集成驅(qū)動(dòng)電路(IDE)協(xié)議、私有協(xié)議等。
存儲(chǔ)器接口1240可以與半導(dǎo)體存儲(chǔ)器件100接口。錯(cuò)誤校正塊1250可以通過(guò)使用錯(cuò)誤校正碼來(lái)對(duì)從半導(dǎo)體存儲(chǔ)器件100接收的讀取數(shù)據(jù)解碼。存儲(chǔ)器接口1240和錯(cuò)誤校正塊1250可以執(zhí)行圖4和圖11中所示的存儲(chǔ)器控制單元230的功能。
圖17為圖示圖1中所示的存儲(chǔ)系統(tǒng)50的應(yīng)用示例(2000)的框圖。
參照?qǐng)D17,存儲(chǔ)系統(tǒng)2000可以包含半導(dǎo)體存儲(chǔ)器件2100和控制器2200。半導(dǎo)體存儲(chǔ)器件2100可以包含多個(gè)半導(dǎo)體數(shù)據(jù)芯片。這多個(gè)半導(dǎo)體數(shù)據(jù)芯片可以被劃分成多個(gè)組。
在圖17中,多個(gè)組可以分別通過(guò)第一通道CH1至第k通道CHk來(lái)與控制器2200通信。每個(gè)半導(dǎo)體數(shù)據(jù)芯片可以以與以上參照?qǐng)D1至圖3所描述的半導(dǎo)體存儲(chǔ)器件100基本上相同的方式來(lái)配置和操作。
每個(gè)組可以通過(guò)單個(gè)公共通道來(lái)與控制器2200通信??刂破?200可以以與以上參照?qǐng)D16所描述的控制器1200基本上相同的方式來(lái)配置,且可以被配置成通過(guò)多個(gè)信道CH1至CHk來(lái)控制半導(dǎo)體存儲(chǔ)器件2100的多個(gè)數(shù)據(jù)芯片。
圖17圖示了耦接到單個(gè)通道的多個(gè)半導(dǎo)體數(shù)據(jù)芯片。然而,存儲(chǔ)系統(tǒng)200可以被修改,使得單個(gè)半導(dǎo)體數(shù)據(jù)芯片可以耦接到單個(gè)通道。
根據(jù)一個(gè)實(shí)施例,命令發(fā)生單元可以產(chǎn)生用于識(shí)別選中頁(yè)的數(shù)據(jù)的命令,并將產(chǎn)生的命令儲(chǔ)存在命令隊(duì)列中。當(dāng)從命令隊(duì)列讀取的讀取命令通過(guò)時(shí),可以中止對(duì)應(yīng)的命令之中剩余在命令隊(duì)列中的命令。命令發(fā)生單元可以執(zhí)行其他操作。因此,可以改善命令發(fā)生單元和控制器的操作時(shí)間。
根據(jù)一個(gè)實(shí)施例,可以提供具有改善的操作時(shí)間的控制器及其操作方法。
對(duì)于本領(lǐng)域技術(shù)人員而言明顯的是,在不脫離本發(fā)明的精神和范圍的情況下,可以對(duì)本發(fā)明的上述示例性實(shí)施例作出各種修改。因此,本發(fā)明意在涵蓋落入所附權(quán)利要求及其等價(jià)的范圍之內(nèi)的所有變型。