專利名稱:支持失序主機(jī)命令組塊介質(zhì)訪問的非易失性半導(dǎo)體存儲器模塊的制作方法
技術(shù)領(lǐng)域:
背景技術(shù):
可以采用非易失性半導(dǎo)體存儲器(NVSM)模塊作為計算機(jī)系統(tǒng)(例如,桌上型計算機(jī)、膝上型計算機(jī)、便攜式計算機(jī)等)或者消費類裝置( 如,音樂播放器、蜂窩電話、相機(jī)等)或者其它合適應(yīng)用的大容量存儲器。NVSM模塊可以包括一個或更多個存儲器件(諸如閃存存儲器)和用于經(jīng)包括I/O總線的通道訪問每個存儲器件的存儲器控制器。存儲器控制器可以接收命令,諸如來自主機(jī)的寫命令或者讀命令,并且向存儲器件提交每個命令。當(dāng)向存儲器件提交寫命令時,存儲器控制器通過I/O總線傳遞地址和寫數(shù)據(jù)。當(dāng)提交讀命令時,存儲器控制器通過I/O總線傳遞地址,接著通過I/O總線接收讀取的數(shù)據(jù)。然而,主機(jī)可以通過相應(yīng)的讀命令和寫命令對一個或更多個存儲器件中的任意物理位置進(jìn)行讀取和寫入。因此,存儲器控制器負(fù)責(zé)確保全部命令按照主機(jī)指定的順序在一個或更多個存儲器件上執(zhí)行。這通常通過使用基于命令的一致性方案來實現(xiàn)。然而,如果多個主機(jī)命令正在訪問存儲器件的公共物理區(qū)域,則基于命令的一致性方案要求按照命令被接收到的相同順序逐個執(zhí)行命令
發(fā)明內(nèi)容
圖I示出根據(jù)本發(fā)明實施例的非易失性半導(dǎo)體存儲器模塊,其包括可操作地耦合到多個存儲器件的存儲器控制器,其中所述存儲器控制器包括一致性檢查模塊和緩沖器,該緩沖器包括活動組塊一致性列表。圖2圖解說明根據(jù)本發(fā)明實施例的活動組塊一致性列表,其包括已經(jīng)從先前接收的主機(jī)命令分離的活動組塊。圖3是根據(jù)本發(fā)明實施例的流程圖,其中主機(jī)命令被分離為一個或更多個組塊,并且針對活動組塊一致性列表中的先前接收的活動組塊評估每個組塊的依賴性。圖4是根據(jù)本發(fā)明實施例的流程圖,其中檢查存儲器件中已經(jīng)完成執(zhí)行的每個活動組塊的前向依賴性,并且如果檢測到前向依賴性,則相關(guān)聯(lián)的依賴活動組塊被清除以提交用于存儲器件訪問。
具體實施例方式圖I示出根據(jù)本發(fā)明實施例的非易失性存儲器模塊102,其包括N個存儲器件KM1-KMn,每個存儲器件包括存儲器陣列106。在一個實施例中,每個存儲器陣列106包括多個塊,其中每個塊包括被稱為頁的多個存儲段。在讀/寫命令期間被訪問的存儲段可以包括任意適當(dāng)大小,諸如一組頁中的完整頁或者部分頁。
非易失性半導(dǎo)體存儲器模塊102還包括經(jīng)相應(yīng)通道IIO1-IIOn可操作地耦合到存儲器件KM1-KMn中每個的存儲器控制器108,其中每個通道包括用于在相關(guān)聯(lián)的存儲器件和存儲器控制器108之間傳遞讀/寫數(shù)據(jù)的I/O總線。非易失性半導(dǎo)體存儲器模塊102可以包括存儲器控制器108和存儲器件KM1-KMIn的任意適當(dāng)配置。在圖I的實施例中,存儲器件KM1-KMn中的每個包括適當(dāng)?shù)拈W存(例如,NAND或者NOR閃存),并且存儲器控制器包括閃存控制器。在一個實施例中,每個存儲器件KM1-KMn可以包括例如相位變化隨機(jī)存取存儲器(PRAM)、電阻變化RAM(ReRAM)、磁阻RAM(MRAM)或者其它適當(dāng)類型的非易失性半導(dǎo)體存儲器。
在一個實施例中,存儲器控制器108通過仿真可被主機(jī)系統(tǒng)使用標(biāo)準(zhǔn)磁盤驅(qū)動通信協(xié)議(例如,ATA協(xié)議)訪問的磁盤驅(qū)動器來實現(xiàn)固態(tài)驅(qū)動器(SSD)。該實施例中的主機(jī)112可以包括單獨的微處理器(例如,在桌上型或者膝上型計算機(jī)中),其通過適當(dāng)接口(例如串行或者并行ATA)與SSD通信。在替代實施例中,非易失性半導(dǎo)體存儲器模塊2可以在消費類裝置(例如相機(jī)或者蜂窩電話)中實現(xiàn)。在一個實施例中,非易失性半導(dǎo)體存儲器模塊102是用混合驅(qū)動器中的硬盤驅(qū)動器(HDD)實現(xiàn)的,其中存儲器控制器108使用一個接口(例如,嵌入式多媒體卡(eMMC)、通用閃存存儲器(UFS)或者開放NAND閃存接口(ONFI)接口)經(jīng)由橋與HDD通信。該實施例中的主機(jī)112可以使用另一個接口(例如串行ATA(SATA)或者串行附接SCSI (SAS)接口)與HDD通信。在一個實施例中,一個或更多個非易失性半導(dǎo)體存儲器模塊102被實現(xiàn)為具有存儲裝置中的橋,其中主機(jī)112經(jīng)一個接口(例如SAS接口)與該橋通信,并且一個或更多個非易失性半導(dǎo)體存儲器模塊102中的每個經(jīng)另一個接口(例如SATA接口)與該橋通f目。在圖I的實施例中,存儲器控制器108包括一致性檢查模塊114,該一致性檢查模塊可操作以將從主機(jī)112接收的每個命令分離為一個或更多個組塊,其中每個組塊具有與閃存的至少一個編程單元相對應(yīng)的大小。在一個實施例中,該至少一個編程單元對應(yīng)于閃存的頁。在圖I的實施例中,一致性檢查模塊114還可操作用于通過對照包括一個或更多個活動組塊(即,已經(jīng)從先前接收的主機(jī)命令分離但是未在存儲器件KM1-KMn之一中完成執(zhí)行的組塊)的活動組塊一致性表116檢查每個塊來確定當(dāng)前主機(jī)命令中的每個組塊是獨立組塊還是依賴組塊。在圖I的實施例中,活動組塊一致性列表116被存儲在緩沖器118中。在一個實施例中,活動組塊一致性列表116被存儲在一致性檢查模塊114中。在本發(fā)明的實施例中,一致性檢查模塊114還可操作用于從主機(jī)112接收命令(例如,讀命令和寫命令)。下面將結(jié)合圖2的描述提供關(guān)于活動組塊一致性列表的額外細(xì)節(jié)。在本發(fā)明的實施例中,獨立組塊準(zhǔn)備好被提交用于訪問存儲器件,而依賴組塊被延遲訪問存儲器件直至相關(guān)聯(lián)的依賴性被清除為止。在一個實施例中,當(dāng)依賴組塊所依賴的活動組塊在存儲器件中完成執(zhí)行時,依賴組塊的相關(guān)聯(lián)的依賴性被清除。在一個實施例中,活動組塊包括至少一個邏輯塊地址(LBA)。在一個實施例中,活動組塊包括八個LBA。在圖I的實施例中,存儲器控制器108還包括可通信地耦合到一致性檢查模塊110的緩沖器118,其中緩沖器118存儲已經(jīng)在一致性檢查模塊110中從主機(jī)命令分離的組塊。緩沖器118包括易失性存儲器,諸如動態(tài)隨機(jī)存取存儲器(DRAM)或者靜態(tài)隨機(jī)存取存儲器(SRAM)。在本發(fā)明的一個實施例中,緩沖器118從主機(jī)112接收命令(例如,讀命令和寫命令)。在圖I的實施例中,存儲器控制器108還包括執(zhí)行模塊120,該執(zhí)行模塊可通信地耦合到緩沖器118并且可操作用于從緩沖器118接收組塊并提交組塊以訪問適當(dāng)?shù)拇鎯ζ骷T趫DI的實施例中,執(zhí)行模塊120包括執(zhí)行隊列122,該執(zhí)行隊列用于臨時存儲主機(jī)命令的組塊,這些組塊已經(jīng)被清除以提交用于存儲器件訪問直至適當(dāng)?shù)拇鎯ζ骷兊每捎脼橹?。在圖I的實施例中,執(zhí)行模塊120還包括狀態(tài)塊124,該狀態(tài)塊用于從存儲器件104r104N中的每個接收已經(jīng)被提交用于存儲器件訪問的組塊的狀態(tài)(例如,組塊完成指示)。在一個實施例中,執(zhí)行隊列122包括多個單獨的執(zhí)行隊列,每個單獨的執(zhí)行隊列經(jīng)通道IIO1-IIOn之一可操作地耦合到存儲器件KM1-KMn之一,其中每個單獨的執(zhí)行隊列提供對僅僅一個存儲器件的訪問。在替代實施例中,執(zhí)行隊列122包括全局執(zhí)行隊列,用于為被清除以提交到存儲器件KM1-KMn中任意一個的組塊提供臨時存儲。圖2圖解說明根據(jù)本發(fā)明實施例的活動組塊一致性列表。在圖2的活動組塊一致性列表216中,活動組塊0_0-0_5與命令A(yù)相關(guān)聯(lián),活動組塊1_0-1_5與命令B相關(guān)聯(lián),活動組塊2_0-2_2與命令C相關(guān)聯(lián),以及活動組塊3_0-3_5與命令D相關(guān)聯(lián)。在圖2所示的 示例中,用黑影標(biāo)記獨立組塊,并且用缺少陰影標(biāo)記依賴組塊。在一個實施例中,當(dāng)活動組塊中的一個與另一個活動組塊交疊時,在兩個活動組塊之間形成依賴性鏈路,其中當(dāng)活動組塊中一個的至少一個LBA與另一個活動組塊中的至少一個LBA相同時兩個活動組塊之間發(fā)生交疊。在一個實施例中,活動組塊是依賴的,因為它們與一個或更多個其它活動組塊正在訪問相同的邏輯組塊號(LCN)。在一個實施例中,用依賴性指針指示兩個活動組塊之間的依賴性,其中依賴性指針從交疊組塊指到被交疊組塊(即,依賴組塊)。在一個實施例中,獨立組塊被清除以提交到存儲器件之一,因為它(即獨立組塊)不具有與另一個活動組塊的依賴性。相反地,依賴組塊必須等待被提交以對存儲器件訪問直至其依賴的活動組塊在存儲器件中完成執(zhí)行并且與完成的活動組塊的依賴性鏈路被清除。在圖2的實施例中,依賴性指針218指示活動組塊3_1依賴于活動組塊0_0,依賴性指針220指示活動組塊1_0依賴于活動組塊0_3,并且依賴性指針222指示活動組塊3_4依賴于活動組塊1_0。在圖2的活動組塊一致性列表216中,形成例如在活動組塊0_0和3_1之間,活動組塊0_3和1_0之間,以及活動組塊1_0和3_4之間的依賴性鏈路。在圖2的實施例中,獨立組塊3_0、0_0-0_5、1_3-1_5和2_0-2_2被清除以提交用于訪問存儲器件,而依賴組塊3_1-3_5和1_0-1_2必須各自等待提交用于存儲器件訪問直至與另一個活動組塊的相關(guān)聯(lián)的依賴性鏈路被清除為止。在圖2的實施例中,在命令C之前從主機(jī)接收命令B。然而,來自命令C的獨立組塊2_0-2_2被清除用于存儲器件訪問,而來自命令B的依賴組塊1_0-1_2必須等待被提交用于存儲器件訪問直至來自命令A(yù)的相應(yīng)獨立組塊0_3-0_5在存儲器件中完成執(zhí)行為止。因而,本發(fā)明的實施方式使得獨立組塊能夠被失序地提交用于存儲器件訪問。在一個實施例中,每個活動組塊具有包括依賴性指針條目和狀態(tài)指示的結(jié)構(gòu)。在一個實施例中,組塊狀態(tài)指示可以是例如活動的、不活動、等待、讀取或者寫入。在一個實施例中,當(dāng)兩個活動組塊交疊時,在這些活動組塊之間形成依賴性鏈路,并且在相對于另一個活動組塊獨立的活動組塊中的依賴性指針條目中標(biāo)記依賴性指針。當(dāng)獨立組塊在存儲器件中完成執(zhí)行時,依賴性鏈路被清除,因而觸發(fā)依賴組塊被提交用于存儲器件訪問。例如,在圖2的活動組塊列表216中,由于活動組塊0_0交疊活動組塊3_1,所以在活動組塊0_0和活動組塊3_1之間形成依賴性鏈路,并且在活動組塊0_0的結(jié)構(gòu)中的依賴性指針條目中標(biāo)記依賴性指針218。當(dāng)活動組塊0_0在存儲器件中完成執(zhí)行時,依賴性鏈路被清除,因而觸發(fā)活動組塊3_1被提交用于存儲器件訪問。在一個實施例中,在與主機(jī)命令相關(guān)聯(lián)的每個活動組塊在存儲器件中完成執(zhí)行之后,與該主機(jī)命令相關(guān)聯(lián)的全部活動組塊被從活動組塊列表中去除。例如,在圖2中的活動組塊列表216中,當(dāng)與主機(jī)命令A(yù)相關(guān)聯(lián)的活動 組塊0_0-0_5已經(jīng)在存儲器件中各自完成執(zhí)行時,活動組塊0_0-0_5全部被從活動組塊列表216中去除。在圖2的活動組塊一致性列表216中,活動組塊根據(jù)增加的LCN被水平地排序,并且根據(jù)進(jìn)入活動組塊列表216的時間被豎直地排序。因而,與命令D相關(guān)聯(lián)的活動組塊3_0-3_5是活動組塊一致性列表216中的最新活動組塊,而與命令A(yù)相關(guān)聯(lián)的活動組塊0_0-0_5是活動組塊列表216中的最老活動組塊。在一個實施例中,當(dāng)在一致性檢查模塊114(圖I)中將新主機(jī)命令分離為一個或更多個組塊時,對照活動組塊列表中的每個活動組塊從最近的到最老的活動組塊檢查每個組塊的依賴性。當(dāng)被交疊的活動組塊被標(biāo)識時或者當(dāng)全部活動組塊已經(jīng)被檢查而沒有標(biāo)識被交疊的組塊時,針對新主機(jī)命令中每個組塊的依賴性檢查結(jié)束。例如,在圖2的活動組塊一致性列表216中,首先對照活動組塊3_0-3_5檢查來自新主機(jī)命令的組塊的依賴性,接著對照活動組塊2_0-2_2檢查,依次類推,直至標(biāo)識了交疊組塊或者到達(dá)活動組塊列表216的末端為止。圖3是根據(jù)本發(fā)明的實施例由圖I中的存儲器控制器108執(zhí)行的流程圖,其中存儲器控制器108從主機(jī)接收命令(步驟302),并且將主機(jī)命令(例如讀命令或者寫命令)分離為一個或更多個組塊(步驟304)。在一個實施例中,每個組塊具有與閃存的至少一個編程單元相對應(yīng)的大小。在本發(fā)明的實施例中,該至少一個編程單元對應(yīng)于閃存的頁。對于每個組塊,存儲器控制器108對照活動組塊一致性列表檢查組塊(步驟306),并且確定該組塊是否是依賴組塊(步驟308)。在一個實施例中,活動組塊一致性列表包括一個或更多個活動組塊,其中每個活動組塊與先前接收的主機(jī)命令(例如讀命令或者寫命令)相關(guān)聯(lián),并且其中“活動”組塊是指在存儲器件中未完成執(zhí)行的組塊。在一個實施例中,按照從最新到最老活動組塊的順序?qū)φ栈顒咏M塊一致性列表中的每個活動組塊檢查當(dāng)前主機(jī)命令的每個組塊,直至被交疊的活動組塊被標(biāo)識或者已經(jīng)檢查了列表中的全部活動組塊,其中當(dāng)每個組塊中至少一個LBA相同時兩個組塊交疊。如果在活動組塊一致性列表中找到被交疊的活動組塊,則正被檢查的當(dāng)前組塊被標(biāo)識為依賴組塊。在一個實施例中,在交疊的活動組塊和當(dāng)前組塊之間建立依賴性鏈路,并且在交疊的活動組塊的結(jié)構(gòu)中的條目中標(biāo)記依賴性指針。在圖3所示的本發(fā)明的實施例中,如果正被檢查依賴性的當(dāng)前組塊被確定為是依賴組塊,則存儲器控制器108存儲該依賴組塊并且延遲提交用于訪問存儲器件直至依賴性被清除為止(步驟310)。在一個實施例中,依賴組塊被存儲在緩沖器118中(圖I)。在一個實施例中,在鏈接到依賴組塊的活動組塊已經(jīng)在存儲器件中完成執(zhí)行并且先前在這兩個組塊之間形成的依賴性鏈路被清除之后,清除依賴性。如果正被檢查依賴性的當(dāng)前組塊被確定為是獨立組塊,則存儲器控制器108將該獨立組塊發(fā)送到執(zhí)行隊列120 (圖I)以提交到存儲器件KM1-KMn之一(圖I)(步驟312)。在圖3的實施例中,當(dāng)存儲器件可用時,存儲器控制器108將獨立組塊提交到存儲器件(步驟314)。在圖3的本發(fā)明的實施例中,步驟306、308、310、312和314被存儲器控制器108針對當(dāng)前主機(jī)命令中的每個組塊適當(dāng)?shù)刂貜?fù)。圖4是根據(jù)本發(fā)明的實施例由圖I中的存儲器控制器108執(zhí)行的流程圖,其中當(dāng)活動組塊在圖I的存儲器件104中完成執(zhí)行時(步驟402),存儲器控制器108在活動組塊一致性列表中將該活動組塊標(biāo)記為已完成(步驟404),并且檢查已完成的活動組塊的前向依賴性(步驟406)。在一個實施例中,前向依賴性由在完成的活動組塊中的依賴性指針條目中標(biāo)記的依賴性指針指示,其中依賴性指針指示依賴于完成的活動組塊的活動組塊。在圖4的實施例中,如果前向依賴性檢查指示前向依賴性,則存儲器控制器108 清除相關(guān)聯(lián)的依賴組塊以提交到存儲器件(步驟408),將清除了依賴性的活動組塊發(fā)送到執(zhí)行隊列(步驟410),并且當(dāng)存儲器件可用時將清除了依賴性的活動組塊提交到存儲器件(步驟412)。在一個實施例中,通過清除先前在相關(guān)聯(lián)的依賴活動組塊和完成的活動組塊之間形成的依賴性鏈路,相關(guān)聯(lián)的依賴組塊被清除以提交到存儲器件。在一個實施例中,完成的活動組塊中的依賴性指針指示相關(guān)聯(lián)的依賴組塊將被清除用于存儲器件提交。在圖4的實施例中,如果在完成的活動組塊中不指示前向依賴性(步驟406),或者指示前向依賴性并且相關(guān)聯(lián)的依賴組塊被提交到存儲器件用于執(zhí)行(步驟412),則存儲器控制器108確定完成的活動組塊是否是相關(guān)聯(lián)的主機(jī)命令中要完成的最后活動組塊(步驟414)。如果完成的活動組塊被確定為相關(guān)聯(lián)的主機(jī)命令中要完成的最后活動組塊,則存儲器控制器108從活動組塊一致性列表中去除相關(guān)聯(lián)的主機(jī)命令中的全部活動組塊(步驟416)。然而,如果完成的活動組塊不是相關(guān)聯(lián)的主機(jī)命令中要完成的最后活動組塊,則存儲器控制器108在活動組塊一致性列表中保留完成的活動組塊直至相關(guān)聯(lián)的主機(jī)命令中的全部剩余的(若干)活動組塊在存儲器件中完成執(zhí)行為止。應(yīng)注意的是在圖3和圖4的流程圖中示出步驟的具體順序以圖解說明本發(fā)明的各個方面。在其它實施例中,可以按照不同順序執(zhí)行圖3和圖4中的流程圖中的步驟。非易失性半導(dǎo)體存儲器模塊102(圖I)中的存儲器控制器108可以包括任意適當(dāng)電路,諸如一個或更多個集成電路。在一個實施例中,存儲器控制器108包括微處理器,該微處理器執(zhí)行控制程序的代碼片段以便實現(xiàn)上述流程圖。替代地,或者除了微處理器之外,存儲器控制器108可以包括用專用集成電路實現(xiàn)的狀態(tài)機(jī)電路。
權(quán)利要求
1.一種非易失性半導(dǎo)體存儲器模塊,其包括 存儲器件; 可操作地耦合到所述存儲器件的存儲器控制器,所述存儲器控制器可操作用于 從主機(jī)接收命令; 將所述命令分離為一個或更多個組塊,所述一個或更多個組塊包括第一組塊,所述第一組塊包括至少一個邏輯塊地址LBA ;以及 對照包括一個或更多個活動組塊的活動組塊一致性列表檢查所述第一組塊以確定所述第一組塊是否是獨立組塊并且準(zhǔn)備提交用于訪問所述存儲器件,或者是否是依賴組塊并且延遲訪問所述存儲器件直至相關(guān)聯(lián)的依賴性被清除為止。
2.根據(jù)權(quán)利要求I所述的非易失性半導(dǎo)體存儲器模塊,其中,所述存儲器控制器還可操作用于 通過確定所述第一組塊交疊所述活動組塊一致性列表中的活動組塊,確定所述第一組塊是依賴組塊; 在所述第一組塊和被交疊的活動組塊之間形成依賴性鏈路;以及 延遲提交所述第一組塊用于訪問所述存儲器件直至所述依賴性鏈路被清除為止。
3.根據(jù)權(quán)利要求2所述的非易失性半導(dǎo)體存儲器模塊,其中,所述存儲器控制器還可操作用于在被交疊的組塊已在所述存儲器件中完成執(zhí)行之后清除所述依賴性鏈路。
4.根據(jù)權(quán)利要求2所述的非易失性半導(dǎo)體存儲器模塊,其中,所述存儲器控制器還可操作用于在被交疊的活動組塊中形成依賴性指針,以及其中在被交疊的活動組塊已在所述存儲器件中完成執(zhí)行之后所述依賴性指針觸發(fā)提交所述第一組塊用于訪問所述存儲器件。
5.根據(jù)權(quán)利要求2所述的非易失性半導(dǎo)體存儲器模塊,其中,所述存儲器控制器還可操作用于當(dāng)所述第一組塊中的至少一個LBA與所述活動組塊中的至少一個LBA相同時確定所述第一組塊和所述活動組塊交疊。
6.根據(jù)權(quán)利要求2所述的非易失性半導(dǎo)體存儲器模塊,其中,所述存儲器控制器包括緩沖器,以及其中所述控制器還可操作用于將所述第一組塊存儲在所述緩沖器中直至所述依賴性鏈路被清除為止。
7.根據(jù)權(quán)利要求I所述的非易失性半導(dǎo)體存儲器模塊,其中,所述活動組塊一致性列表中的所述一個或更多個活動組塊的每個沒有在所述存儲器件中完成執(zhí)行。
8.根據(jù)權(quán)利要求I所述的非易失性半導(dǎo)體存儲器模塊,其中,所述一個或更多個組塊還包括第二組塊,其中所述第二組塊包括至少一個LBA以及其中所述存儲器控制器可操作用于 通過確定所述第一組塊交疊所述活動組塊一致性列表中的活動組塊,確定所述第一組塊是依賴組塊; 在所述第一組塊和被交疊的活動組塊之間形成依賴性鏈路; 延遲提交所述第一組塊用于訪問所述存儲器件直至所述依賴性鏈路被清除為止; 通過確定所述第二組塊不交疊所述活動組塊一致性列表中的任何活動組塊,確定所述第二組塊是獨立組塊;以及 提交所述第二組塊用于訪問所述存儲器件。
9.根據(jù)權(quán)利要求I所述的非易失性半導(dǎo)體存儲器模塊,其中,所述存儲器控制器還可操作用于按照從最新到最舊活動組塊的順序?qū)φ账龌顒咏M塊一致性列表中的每個活動組塊檢查所述第一組塊,直至被交疊的活動組塊被標(biāo)識或者全部活動組塊已經(jīng)被檢查。
10.根據(jù)權(quán)利要求I所述的非易失性半導(dǎo)體存儲器模塊,其中,所述活動組塊一致性列表中的所述一個或更多個活動組塊的每個與先前接收的主機(jī)命令相關(guān)聯(lián)。
11.根據(jù)權(quán)利要求I所述的非易失性半導(dǎo)體存儲器模塊,其中,所述第一組塊具有與閃存的至少一個編程單元相對應(yīng)的大小。
12.根據(jù)權(quán)利要求11所述的非易失性半導(dǎo)體存儲器模塊,其中,所述至少一個編程單元對應(yīng)于閃存的頁。
13.根據(jù)權(quán)利要求I所述的非易失性半導(dǎo)體存儲器模塊,其中,所述存儲器件包括閃存存儲器件。
14.一種操作包括存儲器件的非易失性半導(dǎo)體存儲器模塊的方法,所述方法包括 從主機(jī)接收命令; 將所述命令分離為一個或更多個組塊,所述一個或更多個組塊包括第一組塊,所述第一組塊包括至少一個邏輯塊地址;以及 對照包括一個或更多個活動組塊的活動組塊一致性列表檢查所述第一組塊以確定所述第一組塊是否是獨立組塊并且準(zhǔn)備提交用于訪問所述存儲器件,或者是否是依賴組塊并且延遲訪問所述存儲器件直至相關(guān)聯(lián)的依賴性被清除為止。
15.根據(jù)權(quán)利要求14所述的方法,還包括 通過確定所述第一組塊交疊所述活動組塊一致性列表中的活動組塊,確定所述第一組塊是依賴組塊; 在所述第一組塊和被交疊的活動組塊之間形成依賴性鏈路;以及 延遲提交所述第一組塊用于訪問所述存儲器件直至所述依賴性鏈路被清除為止。
16.根據(jù)權(quán)利要求15所述的方法,還包括在被交疊的組塊在所述存儲器件中已經(jīng)完成執(zhí)行之后清除所述依賴性鏈路。
17.根據(jù)權(quán)利要求15所述的方法,還包括在被交疊的活動組塊中形成依賴性指針,以及其中所述依賴性指針在被交疊的活動組塊已在所述存儲器件中完成執(zhí)行之后觸發(fā)提交所述第一組塊用于訪問所述存儲器件。
18.根據(jù)權(quán)利要求15所述的方法,還包括當(dāng)所述第一組塊中的至少一個邏輯塊地址與所述活動組塊中的至少一個邏輯塊地址相同時確定所述第一組塊和所述活動組塊交疊。
19.根據(jù)權(quán)利要求15所述的方法,還包括將所述第一組塊存儲在緩沖器中直至所述依賴性鏈路被清除為止。
20.根據(jù)權(quán)利要求14所述的方法,其中,所述活動組塊一致性列表中的所述一個或更多個活動組塊的每個沒有在所述存儲器件中完成執(zhí)行。
21.根據(jù)權(quán)利要求14所述的方法,其中,所述一個或更多個組塊還包括第二組塊,其中所述第二組塊包括至少一個邏輯塊地址,所述方法還包括 通過確定所述第一組塊交疊所述活動組塊一致性列表中的活動組塊,確定所述第一組塊是依賴組塊; 在所述第一組塊和被交疊的活動組塊之間形成依賴性鏈路; 延遲提交所述第一組塊用于訪問所述存儲器件直至所述依賴性鏈路被清除為止;通過確定所述第二組塊不交疊所述活動組塊一致性列表中的任何活動組塊,確定所述第二組塊是獨立組塊;以及 提交所述第二組塊用于訪問所述存儲器件。
22.根據(jù)權(quán)利要求14所述的方法,還包括按照從最新到最老活動組塊的順序?qū)φ账龌顒咏M塊一致性列表中的每個活動組塊檢查所述第一組塊,直至被交疊的活動組塊被標(biāo)識或者全部活動組塊已經(jīng)被檢查。
23.根據(jù)權(quán)利要求14所述的方法,其中,所述活動組塊一致性列表中的所述一個或更多個活動組塊的每個與先前接收的主機(jī)命令相關(guān)聯(lián)。
24.根據(jù)權(quán)利要求14所述的方法,其中,所述第一組塊具有與閃存的至少一個編程單元相對應(yīng)的大小。
25.根據(jù)權(quán)利要求24所述的方法,其中,所述至少一個編程單元對應(yīng)于閃存的頁。
26.根據(jù)權(quán)利要求14所述的方法,其中,所述存儲器件包括閃存存儲器件。
全文摘要
本發(fā)明涉及支持失序主機(jī)命令組塊介質(zhì)訪問的非易失性半導(dǎo)體存儲器模塊。本發(fā)明公開一種非易失性半導(dǎo)體存儲器模塊,其包括存儲器件和可操作耦合到存儲器件的存儲器控制器,其中存儲器控制器可操作用于接收主機(jī)命令,將主機(jī)命令分離為包括含有至少一個邏輯塊地址(LBA)的第一組塊的一個或更多個組塊,以及對照包括一個或更多個活動組塊的活動組塊一致性列表檢查第一組塊以確定第一組塊是否是獨立組塊并準(zhǔn)備被提交以訪問存儲器件,或者是否是依賴組塊并且延遲訪問存儲器件直至相關(guān)聯(lián)的依賴性被清除為止。
文檔編號G06F12/02GK102736863SQ20121009987
公開日2012年10月17日 申請日期2012年4月6日 優(yōu)先權(quán)日2011年4月6日
發(fā)明者D·S·蘇里亞布迪, M-M·L·蘇 申請人:西部數(shù)據(jù)技術(shù)公司