新四季網

針對基於塊的架構利用EPWR進行部分壞塊檢測和再使用的製作方法

2023-09-16 15:49:45


1.技術領域

本申請涉及固態存儲器,並且具體地涉及在固態存儲器中的部分壞塊。

2.相關技術

由於固態存儲器的裸片經受應力和掩蔽,所以固態存儲器的各個塊可能由於故障而被標記為壞塊。這樣的壞塊可以被稱為出廠標記壞塊。為了滿足容量和性能要求,有限數量的塊可以是出廠標記壞塊以便通過品質測試。

在運行過程中,如果在對塊寫入時固態存儲器報告了寫入錯誤(如程序故障),則所述塊可能被捨棄並且添加到壞塊列表中。固態存儲器可以具有多個單獨可擦除段,如頁或塊。所述可擦除段各自可以在變得不可靠並且被標記為壞塊之前完成有限數量的擦除循環。壞塊不再能用於存儲數據。



技術實現要素:

可以提供一種存儲系統,所述存儲系統包括固態存儲器、複製模塊、寫入後讀取模塊、和錯誤恢復模塊。所述固態存儲器可以包括第一存儲器和第二存儲器。所述複製模塊可以將數據從所述第一存儲器的塊複製到所述第二存儲器的塊上。所述寫入後讀取模塊可以檢測在被複製到所述第二存儲器的塊上的數據中的任何寫入後讀取錯誤。所述錯誤恢復模塊可以響應於在被複製到所述第二存儲器的所述塊上的所述數據的第一部分中檢測到寫入後讀取錯誤並且在被複製到所述第二存儲器的所述塊上的所述數據的第二部分中沒有檢測到寫入後讀取錯誤而確定所述第二存儲器的所述塊是可用於存儲的部分壞塊。

可以提供一種存儲設備,所述存儲設備包括固態存儲器、複製模塊、寫入後讀取模塊、和錯誤恢復模塊。所述固態存儲器可以包括第一存儲器和第二存儲器。所述複製模塊可以將數據從所述第一存儲器的塊複製到所述第二存儲器的塊上。所述寫入後讀取模塊可以檢測在被複製到所述第二存儲器的所述塊上的所述數據中的任何寫入後讀取錯誤。所述錯誤恢復模塊可以響應於在所述數據的第一部分中檢測到寫入後讀取錯誤並且在所述數據的第二部分中沒有檢測到寫入後讀取錯誤而確定所述第二存儲器的所述塊是部分壞塊。儘管檢測到寫入後讀取錯誤,所述部分壞塊可以仍然可用於數據存儲。

可以提供一種用於部分壞塊再使用的方法。可以將數據從第一存儲器的塊複製到第二存儲器的塊上。可以在被複製到所述第二存儲器的所述塊上的所述數據的第一部分中檢測寫入後讀取錯誤,而不在被複製到所述第二存儲器的所述塊上的所述數據的第二部分中檢測寫入後讀取錯誤。響應於在所述數據的所述第一部分中而沒有在所述數據的所述第二部分中檢測到寫入後讀取錯誤,可以確定所述第二存儲器的所述塊是可用於存儲的部分壞塊。

附圖說明

參照以下附圖和說明可以更好地理解各個實施例。附圖中的部件不一定是按比例繪製的。而且在這些附圖中,相似的參考號遍及所有不同的視圖指代相應的零件。

圖1展示了用於再使用存儲系統的部分壞塊的系統的示例;

圖2展示了檢測部分壞塊的示例;

圖3展示了用於摺疊數據的邏輯的示例的流程圖;並且

圖4展示了EPWR邏輯與缺陷處理的示例的流程圖。

具體實施方式

如果在將塊寫入固態存儲器中時出現寫入錯誤,則所述塊可以被視為是壞塊。然而,所述塊實際上可能是部分壞塊。例如,故障的原因可能是所述塊的僅一個字線上的缺陷,並且所述塊的其餘部分可能仍可用於存儲。通過將所述塊添加至壞塊列表中來捨棄所述塊可能不必要地限制所述固態存儲器的產品壽命。替代性地或另外地,如果出廠標記壞塊的數量超過閾值量,則所述固態存儲器可能必須以一半容量或某個其他減小的容量來出售。因此,不使用部分壞塊可能導致較低的生產產量。

下文描述了可以依賴於寫入後讀取(PWR)或增強型寫入後讀取(EPWR)來檢測並使用部分壞塊的系統和方法。可以在運輸固態存儲器之前檢測或者在運行時間過程中檢測所述部分壞塊。寫入後讀取可以是在將數據寫入塊中之後從所述塊讀取數據以便驗證所讀取的數據與寫入所述塊的數據相匹配的任何操作。增強型寫入後讀取(EPWR)可以是即使在所讀取的數據的子集中可能存在錯誤時仍然使用糾錯碼來重建原始寫入數據的一種寫入後讀取操作。所述系統和方法可以改善產品產量、存儲器可靠性和/或產品壽命。

可以提供一種系統,在所述系統中,PWR可以檢測部分壞塊並且在故障恢復序列之後使用所述部分壞塊。塊的缺陷部分可以用另一個現有的塊來邏輯地更換。當遇到由於存儲器缺陷造成的故障時,所述系統可以將原本將要存儲在存儲器缺陷位置處的數據複製到另一個塊或存儲器(如二進位緩存器)上。所述系統可以更新固件數據結構以便將其反映出來。對塊的缺陷部分的邏輯更換對所述存儲器的用戶可以是透明的。指向存儲器缺陷位置的任何讀取操作都可以自動地重新指向新位置。

在一個示例中,可以提供一種存儲系統,所述存儲系統包括固態存儲器、複製模塊、寫入後讀取模塊、和錯誤恢復模塊。所述固態存儲器可以包括第一存儲器和第二存儲器,如單級存儲單元(SLC)快閃記憶體和多級存儲單元(MLC)快閃記憶體。作為摺疊操作的一部分,所述複製模塊可以將數據從所述第一存儲器的塊複製到所述第二存儲器的塊上,以便將所述數據從所述SLC上移動至所述MLC快閃記憶體上。所述寫入後讀取模塊可以檢測在被複製到所述第二存儲器的所述塊上的所述數據中的任何寫入後讀取錯誤。所述錯誤恢復模塊可以響應於在被複製到所述第二存儲器的所述塊上的所述數據的第一部分中檢測到寫入後讀取錯誤而在被複製到所述第二存儲器的所述塊上的所述數據的第二部分中沒有檢測到寫入後讀取錯誤而確定所述第二存儲器的所述塊是可用於存儲的部分壞塊。

圖1展示了用於再使用存儲系統102的部分壞塊的系統100的示例。所述存儲系統102可以包括存儲接口104、處理器106、存儲器108、存儲控制器110、和固態存儲器112。

所述存儲系統102可以是將數據存儲在固態存儲器112中的設備或設備組合。例如,所述存儲系統102可以是包括提供對數據的塊級訪問的設備或設備組合的塊設備。塊設備通過採用邏輯數據塊(LDA)形式讀取和寫入數據來提供塊級訪問。所述存儲系統102可以採用任何形式,如快閃記憶體驅動器、固態驅動器、硬碟驅動器、存儲區域網絡(SAN)、或包括固態存儲器的任何其他可讀取/寫入的計算機可讀存儲介質。

所述存儲系統102可以是主機系統(未示出)的一部分、或者與之物理地分開。例如,所述存儲系統102可以是採用可以在多個主機設備之間所攜帶的可攜式存儲器卡的形式的存儲設備。在另一個示例中,所述存儲系統102可以是嵌入所述主機系統中的固態盤(SSD)。替代性地或另外地,所述存儲系統102可以是即使在所述存儲系統102與所述主機系統進行通信時仍與所述主機系統物理地分開的分立存儲設備。

所述存儲接口104可以是被配置成用於向和/或從所述主機系統傳遞數據的任何基於硬體的部件。所述存儲接口104可以是串行高級技術附接(也稱為串行ATA或SATA)接口、SCSI(小型計算機系統接口)接口、通用串行總線(USB)電路、乙太網接口、或存儲系統發送和/或接收數據所通過的任何其他類型物理接口。

所述存儲控制器110可以是以下任何基於硬體的部件:所述部件將從主機系統接收到的邏輯地址(如邏輯塊地址(LBA))轉譯成合適的信令以訪問固態存儲器112中的塊122或塊的子集(如,頁或字線)的相應物理位置114。存儲控制器110的示例可以包括存儲器控制器、NAND控制器、NOR控制器、磁碟控制器、SCSI(小型計算機系統接口)控制器、光纖通道控制器、控制器(INFINIBAND是俄勒岡州比弗頓市的System I/O公司的註冊商標)、串行連接SCSI控制器、PATA(IDE)控制器、以及串行ATA控制器。

所述固態存儲器112可以是包括一個或多個集成電路組件作為存儲器的任何存儲器。所述固態存儲器112可以包括第一存儲器116和/或第二存儲器118。所述固態存儲器112的示例可以包括NAND型快閃記憶體、NOR型快閃記憶體、靜態隨機存取存儲器(SRAM)、動態隨機存取存儲器(DRAM)存儲器、電可擦除可編程只讀存儲器(EEPROM)、或者任何其他類型的固態存儲器。

所述第一存儲器116和所述第二存儲器118可以各自包括構成所述固態存儲器112的一部分半導體材料。所述第一存儲器116和所述第二存儲器118可以各自是同一存儲器的多個部分。替代性地或另外地,所述第一存儲器116可以包含集成電路,所述集成電路與包含所述第二存儲器118的集成電路物理上不同。替代性地,所述第一存儲器116可以被包括在包括所述第二存儲器118的同一個集成電路中。在一些示例中,所述第一存儲器116可以是與所述第二存儲器116不同類型的存儲器。例如,所述第一存儲器116可以包括單級存儲單元快閃記憶體,而所述第二存儲器118可以包括多級存儲單元快閃記憶體。所述第一存儲器116的大小可以與所述第二存儲器118的大小相同或不同。

所述固態存儲器112可以包括多個附加部件。例如,所述固態存儲器112可以包括緩存器120。所述緩存器120可以在數據被寫入所述第一存儲器116和/或所述第二存儲器118中之前暫時存儲所述數據。例如,所述緩存器120可以通過沒有大到足以填充整個塊122的存儲接口104來存儲從主機系統接收到的數據。一旦從主機系統接收到足夠的數據來至少填充整個塊122,所述數據就可以從所述緩存器120複製到所述固態存儲器112中的不同物理位置,如在第一存儲器116和/或所述第二存儲器118中的某個位置處。在一些示例中,所述緩存器120可以是二進位緩存器。

除了所述固態存儲器112之外,所述存儲系統102可以包括存儲器108,所述存儲器包括邏輯到物理映射124和/或多個模塊,如寫入後讀取(PWR)模塊126、複製模塊128、錯誤恢復模塊130和/或映射模塊132。所述存儲器108可以是用於存儲和檢索數據的任何設備或其組合。所述存儲器108可以包括非易失性和/或易失性存儲器,如隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦除可編程只讀存儲器(EPROM)或快閃記憶體。替代性地或另外地,所述存儲器108可以包括任何其他形式的數據存儲部件。

所述邏輯到物理映射124可以是數據結構(如表格)和/或模塊(如查找模塊),所述數據結構和/或模塊確定和/或存儲在固態存儲器112的多個塊122的邏輯地址與物理位置114之間的映射。例如,所述邏輯到物理映射124可以包括文件系統的邏輯數據塊與固態存儲器112的所述塊122或塊122的子集的物理位置114之間的映射。在將所述邏輯地址轉譯成適當的信令以訪問塊122的相應物理位置114時,所述存儲控制器110可以依賴於所述邏輯到物理映射124。

所述物理位置114可以是所述固態存儲器112中的存儲有所述塊122的位置。所述塊112中的每一個塊都可以具有相應的物理位置114。物理位置114可以是識別相應的塊122在所述固態存儲器112中被存儲的位置的塊號或其他標識符。所述物理位置114可以包括其他存儲單元(如頁)的位置。頁可以小於塊122。

PWR模塊126可以是執行寫入後讀取的任何部件。寫入後讀取可以是在將數據寫入塊122中之後從所述塊122讀取所述數據以便驗證讀取的數據與寫入所述塊122的數據相匹配的任何操作。所述寫入後讀取可以是增強型寫入後讀取(EPWR)。EPWR可以是即使在所讀取的數據的子集中可能存在錯誤時仍然使用糾錯來重建原始寫入的數據的一種寫入後讀取操作。相應地,在一些示例中,PWR模塊126可以包括EPWR模塊。所述EPWR模塊可以是執行EPWR的任何部件。

所述複製模塊128可以是將數據從第一存儲器116複製到第二存儲器118上的任何部件。所複製的數據可以初始地存儲在第一存儲器116的子集上或者在整個第一存儲器116上。所述複製模塊128可以將所述數據從第一存儲器116的一組塊122複製到所述第二存儲器116的一組塊122上。

在一些示例中,所述複製模塊128可以是摺疊模塊。所述摺疊模塊可以是將數據摺疊到所述固態存儲器112的目標塊中的任何部件。當數據從所述固態存儲器112中其他地方的一個或多個源塊移動至目標塊時,所述數據可以被認為是被摺疊到所述目標塊中。在摺疊過程中,例如,所述摺疊模塊可以將數據從多個源塊移動至所述目標塊。所述源塊可以在所述第一存儲器116中並且所述目標塊可以在所述第二存儲器118中。例如,所述第一存儲器116可以包括單級存儲單元快閃記憶體,並且所述第二存儲器118可以包括多級存儲單元快閃記憶體。因此這種摺疊可以提高單級存儲單元快閃記憶體的可用性。在一些情形下,提高單級存儲單元快閃記憶體的可用性可以是有利的,因為單級存儲單元快閃記憶體可以具有比多級存儲單元快閃記憶體更快的寫入時間。

在其他示例中,所述複製模塊128可以是磨損均衡模塊的一部分。所述磨損均衡模塊可以將數據從一個物理位置複製到另一個物理位置以便延長所述固態存儲器112的使用壽命。例如,任何塊122中的沒有發生改變(或者相對靜態)的數據可以周期性地移動,使得可以使用所述塊的低使用率存儲單元來存儲其他更加動態的數據。在又其他示例中,所述複製模塊128可以包括將數據從第一存儲器116複製到第二存儲器118上的任何其他類型的部件。

在系統100再使用部分壞塊的操作過程中,寫入後讀取(PWR)、如增強型寫入後讀取(EPWR)可以檢測部分壞塊。參見圖1和圖2二者,系統100可以檢測並再使用部分壞塊122-2,如在下文中更詳細地描述的。

所述第一存儲器116中的塊122-1可以包括數據。所述邏輯到物理映射124-1(在複製所述數據之前)可以將邏輯地址202映射到所述第一存儲器116中的塊122-1中的相應位置上。

所述複製模塊128可以將所述數據從第一存儲器116中的塊122-1複製到所述第二存儲器118中的塊122-2上。所述寫入後讀取模塊126可以通過從所述第二存儲器118中的塊122-2讀取數據並且與從所述第一存儲器116中的塊122-1讀取的數據進行比較來執行寫入後讀取(PWR),如增強型寫入後讀取(EPWR)。如果在所述數據的第一部分204中檢測到、但是在所述數據的第二部分206中沒有檢測到寫入後讀取錯誤,則所述第二存儲器118中的塊122-2可能是部分壞塊。雖然所述數據的第一部分204沒有被成功地存儲在所述部分壞塊122-2中,但是所述數據的第二部分206被成功地存儲在所述第二存儲器118的部分壞塊122-2中。

基於在所述數據的第一部分204中檢測到寫入後讀取錯誤,錯誤恢復模塊130可以將所述數據的第一部分204從所述第一存儲器116的塊122-1複製到緩存器120上。映射模塊132可以改變邏輯地址202的映射以便考慮所述數據的新的物理位置。通過將所述數據的第一部分204複製到緩存器120上,所述第一存儲器116的塊122-1可以被添加至空閒塊列表中或者以其他方式被釋放,因為不再需要塊122-1來存儲所述數據的第一部分204和第二部分206。

在複製所述數據並且檢測寫入後讀取錯誤之前,邏輯地址202的第一子集208被映射到第一存儲器116中的存儲有所述數據的第一部分204的一個或多個位置上。類似地,邏輯地址202的第二子集210被映射到第一存儲器116中的存儲有所述數據的第二部分206的一個或多個位置上。圖2中所展示的邏輯到物理映射124-1(在複製之前)示出了這樣的映射。

所述映射模塊132可以改變所述邏輯到物理映射124-1,使得邏輯地址202的第一子集208被映射到所述緩存器120中的存儲有所述數據的第一部分204的一個或多個位置上。此外,所述映射模塊132可以改變所述邏輯到物理映射124-1,使得邏輯地址202的第二子集210被映射到所述第二存儲器118的部分壞塊122-2中的存儲有所述數據的第二部分206的一個或多個位置上。圖2中所展示的邏輯到物理映射124-2(在複製之後)示出了這樣的映射。

所述存儲控制器110例如可以隨後將所述數據的第一部分204與從主機系統接收到的附加數據一起從緩存器120移動至固態存儲器112的第一存儲器116、第二存儲器118、和/或其他部分中。所述邏輯到物理映射124可以相應地被更新。例如,所述緩存器120可以包括以下數據:所述數據被主機系統寫入所述存儲系統100中,但是沒有大到足以被寫入所述第一存儲器116、所述第二存儲器118、和/或其他存儲存儲器的任何塊中。在一個示例中,所述緩存器120可以包括一組SLC塊,在這裡所述存儲系統100存儲了來自主機系統的零散數據。一旦足夠的數據被寫入緩存器120中,則所述緩存器120中的數據的塊可以被寫入更新塊中,如MLC塊或不同的SLC塊。通過將所述數據的第一部分204複製到緩存器120上,所述數據的第一部分204可以被放置在隊列中以便稍後與足以填充一個塊的數據一起複製。

當所述複製模塊128將數據從第一存儲器116中的塊122-1複製到所述第二存儲器118中的塊上時,可能已經發生了寫入錯誤。例如,所述寫入錯誤可以是程序故障。所述程序故障可以是慢編程位或某種其他缺陷的結果。只要PWR指示全部數據或至少所述數據的第二部分206被成功寫入所述第二存儲器118的塊122-2上,系統100就可以忽略所述寫入錯誤。

將所述第一存儲器116的塊122-1複製到所述第二存儲器118的塊122-2上可以是指複製一個或多個塊。例如,可以將所述第一存儲器116的多個塊122複製到所述第二存儲器118的這一個塊122-2上。替代性地或另外地,可以將第一存儲器116的這一個塊122-1複製到所述第二存儲器118的多個塊122上。在又其他示例中,可以將所述第一存儲器116的多個塊122複製到所述第二存儲器的多個塊122上。所述第二存儲器118的塊122可以是與所述第一存儲器116的塊122大小相同或不同的。所述第一存儲器116的大小可以是與所述第二存儲器118的大小相同或不同的。

如果所述數據的未能被複製到第二存儲器118的塊122-2上的第一部分204相對於所述數據的第二部分206而言太大,則所述第二存儲器118的塊122-2可以被視為壞塊而不是部分壞塊。例如,這種判定可以基於未能被複製的塊122-2的頁數是否超過閾值頁數。在替代性示例中,可以使用一組不同的指標來判定所述塊是壞塊還是部分壞塊。

如果塊122-2被確定為壞塊,則可以觸發恢復序列。例如,所述恢復序列可以涉及將數據從NAND鎖存器、BRAM(塊RAM)和/或其他結構複製到新的塊上。所述第二存儲器118的塊122-2可以被丟棄到壯大的壞塊列表中,從而減少了系統100中的可用備用件。

圖3展示了系統100的用於摺疊數據的邏輯的示例的流程圖。所述示例中的邏輯是用於將所述第一存儲器116(單級存儲單元(SLC)快閃記憶體)的塊122-1摺疊至所述第二存儲器118(多級存儲單元(MLC)快閃記憶體)的塊122-2上。

所述摺疊有時可以一次以一頁、一個字線(WL)、或某個其他存儲單位來執行。例如,在摺疊開始(302)時,可以將標識頁號和/或字線的索引設置(304)為零。可以將通過所述索引所標識的頁和/或字線從第一存儲器116的塊122-1複製(306)到第二存儲器118的塊122-2上。

如果當複製通過所述索引所標識的頁和/或字線時沒有檢測(308)到程序故障(寫入失敗),則可以判定(312)是否仍需要複製塊122-1中的更多頁和/或字線。如果需要更多複製,則將索引加一(314),並且操作可以返回到複製(306)通過所述索引所標識的頁和/或字線。替代性地,如果不需要更多複製,則摺疊可以完成(318)。

另一方面,如果檢測到(308)程序故障(或任何類型的寫入失敗),則可以將程序故障計數加一(310)。所述程序故障計數可以指示當將第一存儲器116的塊122-1複製到所述第二存儲器118的塊122-2上時所檢測到的程序故障或寫入錯誤的數量。

可以判定(316)所述程序故障計數是否超過閾值。如果所述程序故障計數沒有超過所述閾值,則操作可以進行到判定(312)是否仍需要複製塊122-1中的更多頁和/或字線。換言之,所述第二存儲器118的塊122-2仍可能潛在地是部分壞塊而不是壞塊。替代性地,如果超過了所述閾值,則可以將所述第二存儲器118的塊122-2添加至壞塊列表或壯大的缺陷列表中,並且可以從空閒塊列表中選擇(318)第二存儲器118中的新的MLC塊。所述系統100可以返回至開始(302)將第一存儲器116的塊122-1摺疊到第二存儲器118中的新的MLC塊上而不是摺疊到第二存儲器118的塊122-2上。

換言之,雖然可能檢測到程序故障或其他寫入錯誤,所述系統100仍可以繼續嘗試使用所述第二存儲器118的塊122-2。不一定啟動程序故障/數據恢復。除非在複製到所述第二存儲器118的塊122-2上時所檢測到的程序故障的數量超過所述閾值,否則將不丟棄所述塊122-2。

在所述第一存儲器116的塊122-1被摺疊到第二存儲器118的塊122-2中之後,可以在所述第二存儲器118的塊122-2上執行寫入後讀取操作,如EPWR。替代性地,可以在所述第一存儲器116的塊122-1被完全摺疊到所述第二存儲器118的塊122-2中之前,在所述第二存儲器118的塊122-2的每個部分上執行寫入後讀取操作。

圖4展示了EPWR邏輯與缺陷處理的示例的流程圖。例如可以在摺疊完成(318)之後開始多個操作。

EPWR操作可以一次一頁地執行。例如,可以將頁索引設置(402)為零。可以從第二存儲器118的塊122-2中讀取(404)通過所述頁索引所標識的頁。

由於在這個示例中所述寫入後讀取操作是EPWR操作,所以判定(406)是否在從所述第二存儲器118的塊122-2中讀取到的頁中是否檢測到糾錯碼(ECC)錯誤。如果沒有檢測到ECC錯誤,則可以判定(408)是否已經檢測了塊122-2中的所有頁的錯誤。替代性地,如果檢測到ECC錯誤,則可以將EPWR故障計數加一(410)。所述EPWR故障計數可以指示第二存儲器118的塊122-2中遭遇寫入後讀取錯誤的頁數。

如果所述EPWR故障計數被加一,則可以判定(412)所述EPWR故障計數是否超過閾值。如果超過了所述閾值,則可以從空閒塊列表中選擇(318)第二存儲器118中的新的MLC塊,並且系統100可以返回至開始(302)將所述第一存儲器116的塊122-1摺疊到所述第二存儲器118中的新的MLC塊中。可以將所述第二存儲器的塊122-2添加至壞塊列表(如壯大的缺陷列表)中。替代性地,如果所述EPWR故障計數沒有超過所述閾值,則所述系統100仍可以嘗試使用第二存儲器118的塊122-2來存儲數據。相應地,如果所述EPWR故障計數沒有超過所述閾值,則操作可以進行到判定(408)是否已經檢查了塊122-2中的全部頁的寫入後讀取錯誤。如果還沒有檢查全部頁,則可以將所述頁索引加一(413),並且操作可以返回至讀取(404)通過所述頁索引所標識的頁。

一旦已經檢查了塊122-2中的全部頁的寫入後讀取錯誤,則可以判定(414)所述EPWR故障計數是否非零。如果所述EPWR故障計數為零,則所述EPWR檢查可以完成(416)。替代性地,如果所述EPWR故障計數為非零,則所述數據的原本要被複製到故障頁或字線上的部分(換言之,所述數據的第一部分204)被複製(418)到緩存器120上。接著可以更新固件數據結構(如二進位緩存器索引)來反映所述數據的第一部分204將從所述緩存器120中讀取。

在圖3和圖4中所展示的寫入和讀取對應地可以每頁、每字線、或每個任何其他存儲單位地執行。提及SLC和MLC快閃記憶體僅僅是對第一和第二存儲器116和118的說明。

提及塊122卻可以更廣義地指代存儲單元。每個存儲單元可以是存儲控制器110可以讀取或寫入的數據單元。存儲單元可以是物理塊、頁、字線、扇區、或存儲控制器110可以讀取或寫入的任何其他數據單元。

在一個示例中,邏輯地址202(LBA A至Y)在第一存儲器116的塊122-1(塊M)中所存儲的數據摺疊之前被映射到所述數據上。在將所述數據摺疊到第二存儲器118的塊122-2(塊N)中之後,寫入後讀取將檢測第二存儲器118的塊122-2(塊N)是部分壞塊,並且與LBA A至B相對應的數據(所述數據的第一部分204)未能進行寫入後讀取。與LBA A至B相對應的數據(所述數據的第一部分204)被複製到緩存器120上。二進位緩存器索引(邏輯到物理映射124)被更新。第一組邏輯地址208(LBA A至B)被映射到所述緩存器120中的相應物理位置114上。第二組邏輯地址210(LBA C至Y)被映射到所述第二存儲器118的塊122-2(塊N)中的相應物理位置114上。表1展示了在摺疊之前和之後的映射。

表1

系統100可以保護一種包括所述固態存儲器112的產品免於由於慢編程位而導致的寫入錯誤。針對慢編程位而言,EPWR可以通過(如果寫入錯誤是邊緣故障),從而促進所述系統繼續,而不對包括慢編程位的塊進行附加垃圾收集。此外,所述系統100可以防止所述部分壞塊被丟棄,從而延長所述產品的壽命。

在生產中,將被確定為壞塊的全部塊122(但是其實際上可能是壞塊或部分壞塊)標識為出廠標記壞塊。所述系統102可以通過將所述出廠標記壞塊添加至空閒塊列表中來將所述出廠標記壞塊作為好塊對待。換言之,所述空閒塊列表可以包括出廠標記壞塊和好塊(好塊是在生產過程中沒有被標記為壞的塊)。在運行過程中,當數據被寫入所述固態存儲器112中時,從所述空閒塊列表中選擇塊,並且將所述數據寫入所選擇的塊中。系統100的PWR模塊126接著可以判定所選擇的塊是好塊、部分壞塊、還是壞塊,如上文所描述的。如果所選擇的塊是好塊或部分壞塊,所述則所述系統100可以使用所述所選擇的塊。如果所選擇的塊是壞塊,則可以通過例如將所述所選擇的塊添加至壯大的缺陷列表中而丟棄所述所選擇的塊。

換言之,出廠標記壞塊可以首先被添加至空閒塊列表中並且接著隨後在從所述空閒塊列表中選擇以便進行寫入的運行過程中進行測試。如果所選擇的塊是部分壞塊,則可以將所選擇的塊用作部分壞塊,或者如果所選擇的塊是壞塊(例如,由於太多有缺陷的字線),則可以將其添加至壯大的缺陷列表中。在可能的情況下將塊122用作部分壞塊可以導致產品產量有效地增大。在對所述塊進行第一次寫入時,將所選擇的壞塊添加至壯大的缺陷列表中導致所選擇的塊不被用於存儲。

替代性地,所述複製模塊128可以被包含在測試模塊中、或者在生產過程中被測試模塊調用以避免所述部分壞塊初始地被添加至出廠標記壞塊中。所述測試模塊可以執行一個或多個測試來確定所述固態存儲器112的哪些塊將是出廠標記壞塊。如果塊被確定為壞塊,則所述測試模塊可以將所述塊添加至出廠標記壞塊的列表中。然而,如果所述塊被確定為部分壞塊,則所述測試模塊可以不將所述塊添加至出廠標記壞塊的列表中。而是,可以將所述塊添加至空閒塊列表中,例如表明所述塊可用於存儲數據(如主機數據)。第一存儲器116可以包括被寫入所述第二存儲器118中的測試數據。在PWR模塊126識別出部分壞塊之後,則所述數據的未能成功複製的第一部分204可能不需要被複製到緩存器120上,因為所述數據只是測試數據。類似地,如果只是確定出廠標記壞塊,則所述邏輯到物理映射124可能不需要被映射模塊132更新。

系統100和102可以用附加的、不同的、或更少的部件來實施。例如,系統100和102可以包括主機系統。替代性地或另外地,系統100和102可以僅包括集成電路,所述集成電路包括在圖1中展示的所述部件的子集,如固體存儲器112和存儲控制器110。

每個部件可以包括附加的、不同的、或更少的部件。在第一示例中,存儲器108可以包括與所展示的相比附加的、不同的、或更少的模塊。在第二示例中,固態存儲器112可以包括多個附加存儲器部分。在第三示例中,緩存器120可以不被包含在包括第一存儲器116和第二存儲器118的固態存儲器112中。

所述流程圖中所展示的邏輯可以包括與所展示的相比附加的、更少的或不同的操作。例如,用於摺疊數據的邏輯可以包括僅將數據從第一存儲器116的塊122-1複製到第二存儲器118的塊122-2上。在另一個示例中,EPWR邏輯可以包括:僅在被複製到所述第二存儲器118的塊122-2上的數據的第一部分204中檢測到寫入後讀取錯誤,但是在被複製到所述第二存儲器118的塊122-2上的數據的第二部分206中沒有檢測到寫入後讀取錯誤;並且響應於在所述數據的第一部分204中而沒有在所述數據的第二部分206中檢測到寫入後讀取錯誤,確定所述第二存儲器118的塊122-2是可用於存儲的部分壞塊。此外,所述流程圖中所展示的操作可以按不同於所展示的順序來執行。

處理器106可以是與存儲器108和存儲接口104通信。所述處理器106可以是微處理器、通用處理器、中央處理單元、專用集成電路(ASIC)、數位訊號處理器、現場可編程門陣列(FPGA)、數字電路、模擬電路、和/或任何類型的處理器。

處理器106可以是可操作來執行邏輯的一個或多個設備。所述邏輯可以包括嵌入存儲器108或其他存儲器中的在被所述處理器106執行時致使所述處理器106執行所述邏輯的多個計算機可執行指令或計算機代碼。所述計算機代碼可以包括由所述處理器106可執行的多個指令。

系統100可以採用許多不同的方式來實施。每個模塊,如PWR模塊126、複製模塊128、錯誤恢復模塊130、和映射模塊132,可以是硬體、或硬體與軟體的組合。例如,每個模塊可以包括專用集成電路(ASIC)、現場可編程門陣列(FPGA)、電路、數字邏輯電路、模擬電路、離散電路的組合、門、或任何其他類型的硬體或其組合。替代性地或另外地,每個模塊可以包括存儲器硬體,如存儲器112的例如包括由所述處理器106或其他處理器(如,存儲控制器110)可執行來實施所述模塊的一個或多個特徵的多個指令的這部分。當所述模塊中的任一個包括所述存儲器的、包括由所述處理器可執行的多個指令的這部分時,所述模塊可以包括或不包括所述處理器。在一些示例中,每個模塊可能僅是存儲器108或其他物理存儲器的、包括由處理器106或其他處理器可執行來實施相應模塊的特徵的指令的這部分,而所述模塊不包括任何其他硬體。由於每個模塊包括至少一些硬體,即使在所包含的硬體包括軟體時仍是如此,因此每個模塊可以互換地被稱為硬體模塊,如PWR硬體模塊126、複製硬體模塊128、錯誤恢復硬體模塊130、和映射硬體模塊132。類似地,由於存儲器可以是電路,所以每個模塊可以互換地被稱為電路,即使在相應的模塊只包括所述存儲器的、包括可執行指令的這部分時仍是如此。

一些特徵被示為存儲在計算機可讀存儲介質中(例如,作為被實施為計算機可執行指令的邏輯、或者作為存儲器中的數據結構)。邏輯和數據結構可以被存儲在、分布在一種或多種類型的計算機可讀存儲介質上、或從中讀取。計算機可讀存儲介質的示例可以包括硬碟、軟盤、CD-ROM、快閃記憶體驅動器、緩存器、易失性存儲器、非易失性存儲器、RAM、快閃記憶體、或任何其他類型的計算機可讀存儲介質或存儲介質。所述計算機可讀存儲介質可以包括任何類型的非暫時性計算機可讀介質,如CD-ROM、易失性存儲器、非易失性存儲器、ROM、RAM、或任何其他適合的存儲設備。

系統100的處理能力可以分布在多個實體之間,如在多個處理器和存儲器之間,可選地包括多個分布式處理系統。多個參數、資料庫和其他數據結構可以被分開存儲和管理,可以被結合到單一存儲器或資料庫中,可以用許多不同的方式被邏輯地和物理地組織,並且可以用不同類型的數據結構(如鍊表、哈希表、或隱式存儲機制)來實現。程序或電路等邏輯可以在多個模塊之間組合或拆分,分布在若干個存儲器和處理器上,並且可以在如共享庫的庫中實現。

存儲系統102可以是包括固態存儲器112的半導體存儲器設備。半導體存儲器設備包括易失性存儲器設備(如動態隨機存取存儲器(「DRAM」)或靜態隨機存取存儲器(「SRAM」))、非易失性存儲器設備(如電阻式隨機存取存儲器(「ReRAM」)、電可擦除可編程只讀存儲器(「EEPROM」)、快閃記憶體(其還可以被考慮為EEPROM的子集)、鐵電隨機存取存儲器(「FRAM」)、和磁阻隨機存取存儲器(「MRAM」))、以及能夠存儲信息的其他半導體元件。。每種類型的存儲器設備可以具有多種不同的配置。例如,快閃記憶體設備可以被配置成NAND或NOR配置。

存儲器設備可以由無源和/或有源元件以任何組合來形成。通過非限制性示例的方式,無源半導體存儲器元件包括ReRAM設備元件,在一些實施例中,所述元件包括如反熔絲相變材料等電阻率切換存儲元件以及(可選地)如二極體等操控元件。進一步通過非限制性示例的方式,有源半導體存儲器元件包括EEPROM和快閃記憶體設備元件,在一些實施例中,所述元件包括如浮柵、導電納米顆粒、或電荷存儲介電材料等包含了電荷存儲區域的元件。

多個存儲器元件可以被配置為使得它們串聯或使得每個元件是可單獨訪問的。通過非限制性示例的方式,NAND配置(NAND存儲器)中的快閃記憶體設備通常包含串聯的存儲器元件。NAND存儲器陣列可以被配置為使得陣列包括多個存儲器串,其中,串包括共享單個位線並作為群組被訪問的多個存儲器元件。替代性地,存儲器元件可以被配置為使得每一個元件是可單獨訪問的(例如,NOR存儲器陣列)。NAND和NOR存儲器配置是示例性的,並且存儲器元件可以以其他方式配置。

位於基板內和/或上方的半導體存儲器元件可以被安排在兩個或三個維度(如二維存儲器結構或三維存儲器結構)中。

在二維存儲器結構中,半導體存儲器元件被安排在單個平面或單個存儲器設備級中。通常,在二維存儲器結構中,存儲器元件被安排在基本上平行於支撐存儲器元件的基板的主要表面而延伸的平面中(例如,在x-z方向平面中)。基板可以是在其上方或在其中形成存儲器元件層的晶片,或者其可以是在形成存儲器元件之後附接至其上的載體基板。作為非限制性示例,基板可以包括如矽等半導體。

可以在單個存儲器設備級中將存儲器元件安排成有序陣列,如在多個行和/或列中。然而,可以在非規則或非正交配置中排列存儲器元件。存儲器元件中的每個存儲器元件可以具有兩個或更多個電極或接觸線,如位線和字線。

三維存儲器陣列被安排成使得存儲器元件佔據多個平面或多個存儲器設備級,由此在三個維度(即,在x方向、y方向和z方向上,其中,y方向基本上垂直於並且x和z方向基本上平行於基板的主表面)中形成結構。

作為非限制性示例,三維存儲器結構可以被垂直地安排成多個二維存儲器設備級的堆疊。作為另一個非限制性示例,三維存儲器陣列可以被安排成多個垂直列(例如,基本上垂直於基板的主表面延伸的列,即,在y方向上),每列在每列中具有多個存儲器元件。可以在二維配置中(例如,在x-z平面中)安排所述列,導致存儲器元件的三維安排,元件位於多個垂直堆疊的存儲器平面上。存儲器元件在三個維度中的其他配置也可以構成三維存儲器陣列。

通過非限制性示例的方式,在三維NAND存儲器陣列中,存儲器元件可以被耦合在一起,以便在單個水平(例如,x-z)存儲器設備級內形成NAND串。替代性地,存儲器元件可以被耦合在一起,以便形成橫跨多個水平存儲器設備級的垂直NAND串。可以設想其他三維配置,其中,一些NAND串包含單個存儲器級中的存儲器元件,而其他串包含跨越多個存儲器級的存儲器元件。還可以在NOR配置中和在ReRAM配置中設計三維存儲器陣列。

通常,在單片式三維存儲器陣列中,在單個基板上方形成一個或多個存儲器設備級。可選地,單片式三維存儲器陣列還可以具有至少部分地位於單個基板內的一個或多個存儲器層。作為非限制性示例,基板可以包括如矽等半導體。在單片式三維陣列中,構成陣列的每個存儲器設備級的層通常在陣列的基礎存儲器設備級的層上形成。然而,單片式三維存儲器陣列的鄰近存儲器設備級的層可以被共享或在存儲器設備級之間存在中間層。

然後,再次,二維陣列可以被單獨地形成並且然後被封裝在一起,以便形成具有多個存儲器層的非單片式存儲器設備。例如,非單片式堆疊存儲器可以通過在單獨地基板上形成存儲器級然後將存儲器級堆疊在彼此頂上來構造。可以減薄基板或者可以在堆疊之前將其從存儲器設備級中移除,但是因為存儲器設備級最初地在單獨的基板上方形成,所以所產生的存儲器陣列不是單片式三位存儲器陣列。此外,多個二維存儲器陣列或三維存儲器陣列(單片式或非單片式)可以在單獨的晶片上形成然後被封裝在一起,以便形成堆疊晶片存儲器設備。

存儲器元件的操作以及與存儲器元件的通信通常需要相關聯的電路。作為非限制性示例,存儲器設備可以具有用於控制和驅動存儲器元件完成如編程和讀取等功能的電路。此相關聯的電路可以位於與存儲器元件相同的基板上和/或位於單獨的基板上。例如,用於存儲器讀-寫操作的控制器可以位於單獨的控制器晶片上和/或位於與存儲器元件相同的基板上。

本領域的技術人員將意識到,本發明不限於所描述的二維和三維示例性結構,但涵蓋了如此處描述的本發明的精神和範圍內的和如本領域的技術人員理解的所有相關存儲器結構。

無論所描述的具體實施方式怎樣,所有的討論本質上都是示例性的,而非限制性的。可以在計算機可讀存儲介質上提供用於實現上文所討論的過程、方法和/或技術的相應邏輯、軟體或指令。可以響應於存儲在計算機可讀介質中或其上的一個或多個邏輯或指令集來執行圖中所展示的或在此所描述的功能、動作或任務。所述功能、動作或任務獨立於指令集、存儲介質、處理器或處理策略的具體類型、並且可以由單獨地或組合地運行的軟體、硬體、集成電路、固件、微代碼等來執行。同樣,處理策略可以包括多重處理、多任務處理、並行處理等。在一個實施例中,所述指令被存儲在可移動介質設備上以供本地或遠程系統讀取。在其他實施例中,所述邏輯或指令被存儲在遠程位置中,以便通過計算機網絡或通過電話線傳輸。在另外的其他實施例中,所述邏輯或指令被存儲在給定計算機、中央處理單元(「CPU」)、圖形處理單元(「GPU」)或系統內。

此外,雖然上文描述了特定部件,但是在此所描述的方法、系統和製品可以包括附加的、更少的或不同的部件。例如,處理器可以被實現為微處理器、微控制器、專用集成電路(ASIC)、離散邏輯、或其他類型的電路或邏輯的組合。類似地,存儲器可以是DRAM、SRAM、快閃記憶體或任何其他類型的存儲器。標誌、數據、資料庫、表格、實體和其他數據結構可以被分開地存儲和管理、可以被結合到單一存儲器或資料庫中、可以被分布、或者可以以許多不同的方式被邏輯地和物理地組織。所述部件可以獨立運行或者是相同程序或裝置的一部分。所述部件可以位於分開的硬體(如分開的可移除電路板)上、或共享共用硬體、如相同存儲器和用於實現來自存儲器的指令的處理器。程序可以是單一程序的部分、是多個分開的程序、或者被分布在若干存儲器和處理器上。

為了清楚以下短語的使用並且由此向公眾告知,短語「、、...和中的至少一個」、或「、、...中的至少一個或其組合」、或「、、...和/或」是由申請人在最廣的意義上定義的,除非申請人明確地相反聲明,否則取代了上下文中的任何其他暗示的定義,是指選自包括A、B、...和N的組中的一個或多個元素。換言之,所述短語是指元素A、B、...或N中的一個或多個元素的任何組合,包括:單獨的任何一個元素或所述一個元素與其他元素中的一個或多個的組合,所述其他元素也可以包括其他未列出元素的組合。

雖然已經描述了不同實施例,但是本領域普通技術人員應了解的是,更多的實施例和實現方式也是可能的。相應地,在此所描述的所述實施例是示例、而不是唯一可能的實施例和實現方式。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀