專利名稱:非易失性半導體存儲器的多個器件的并行搜索的制作方法
技術領域:
背景技術:
非易失性半導體存儲器(NVSM)可以被用作計算機系統(tǒng)(例如,桌上型計算機、膝上型計算機、便攜式計算機等)或者消費類設備(例如,音樂播放器、手機、相機等)或者其它合適應用的大容量存儲器。NVSM可以包括一個或更多個存儲器器件(諸如閃存存儲器)和用于存取/訪問每個存儲器器件的控制電路。每個存儲器器件被耦合到I/O總線以及多個接ロ控制線。當向存儲器器件發(fā)出 編程命令或者擦除命令時,控制電路經由I/O總線傳遞地址和命令數據(以及用于編程操作的寫入數據)。當發(fā)出讀取命令時,控制電路經由I/O總線傳遞地址和命令數據,然后經由I/O總線接收讀取數據。每個存儲器器件通常包括以段編程的一個或更多個存儲器陣列,這些段被稱為“頁”。多個頁被分組為“塊”,其中通過擦除整塊的頁來擦除頁。因此,在擦除周期期間擦除塊之前,單個塊的不同頁(或者部分頁)可以在多個編程周期上被編程。通常保持寫日志,該寫日志包括地址映射(邏輯塊地址到物理塊地址)以及最后寫入的頁。將寫日志周期性地寫到NVSM從而使其跨過加電周期被保存。然而,當發(fā)生電力故障時可能不能保存寫日志,因此當NVSM被加電時不能從寫日志確定最后寫入的塊。相反,通常捜索NVSM以定位最后寫入的頁,例如通過搜索標識最后寫入頁的地址的特定模式。
圖IA示出根據本發(fā)明實施例包括N個存儲器器件的非易失性半導體存儲器。圖IB示出根據本發(fā)明實施例的流程圖,其中通過向N個存儲器器件的每個發(fā)出讀取命令來進行搜索,其中每個讀取命令的地址間隔的距離是由捜索范圍和N確定的距離。圖IC圖示說明示例性實施例,其中存在3個存儲器器件,搜索范圍是27個地址,并且讀取命令的地址之間的距離是9。圖2A圖示說明示例性實施例,其中存在4個存儲器器件,初始搜索范圍是81個地址,并且讀取命令的地址之間的初始距離是20。圖2B圖示說明示例性實施例,其中在第一搜索迭代之后,捜索范圍更新為20,并且讀取命令的地址之間的距離更新為5。圖2C圖示說明示例性實施例,其中調整讀取命令的地址從而使得地址對N取模的結果是唯一的(從而讀取命令被發(fā)送到N個存儲器器件的每個)。圖2D圖示說明第三和最后搜索迭代的示例性實施例,其中發(fā)出讀取命令的連繼的地址,每個地址針對N個存儲器器件的每個。圖3是根據本發(fā)明實施例的流程圖,其中在毎次搜索迭代之后更新搜索范圍和讀取命令的地址之間的距離。圖4A-圖4C示出替代實施例,其中調整讀取命令的地址從而使得地址對N取模的結果是唯一的(從而讀取命令被發(fā)送到N個存儲器器件的每個)。
具體實施例方式圖IA示出根據本發(fā)明實施例的非易失性半導體存儲器2,其包括N個存儲器器件1-4,,每個存儲器器件包括多個塊,其中每個塊包括通過地址訪問的多個存儲器段。非易失性半導體存儲器2還包括控制電路6,控制電路6可操作用于執(zhí)行圖IB的流程圖,其中通過對N個存儲器器件的每個發(fā)出讀取命令來執(zhí)行搜索,并且每個讀取命令的地址間隔一定的距離,該距離是響應于地址的搜索范圍和N確定的,并且該地址的搜索范圍大于N(步驟8)。從至少一個存儲器器件讀取的數據被評估以確定搜索是否完成(步驟10)。非易失性半導體存儲器2可以包括控制電路6和存儲器器件1-4,的任意適當配置。在一個實施例中,每個存儲器器件4-4,包括適當的閃存存儲器(例如,NAND或者NOR閃存),并且控制電路6包括適當的閃存控制器。在一個實施例中,控制電路6通過對磁盤驅動器進行仿真來實現固態(tài)驅動器(SSD),該磁盤驅動器可由主機系統(tǒng)使用標準磁盤驅動器通信協(xié)議(例如,ATA協(xié)議)訪問。在圖IA的實施例中,每個存儲器器件包括多個塊,并且每個塊包括多個被稱為頁的存儲器段。在讀/寫命令期間訪問的存儲器段可以包括任意適當大小,諸如ー塊頁中的完整頁或者部分頁。在本發(fā)明的實施例中,例如,當嘗試找到電力故障期間最后寫入的頁時,可以搜索分配給存儲器器件的存儲器段的地址范圍。圖IC示出示例性實施例,其中非易失性半導體存儲器2包括能夠并行處理讀/寫命令的3個存儲器器件(N = 3)。例如,當處理寫命令時,數據可以并行地作為“超級塊”寫入到三個連繼地址(例如,Al、A2和A3),每個地址被分配到3個存儲器器件的每個中的塊的相應存儲器段。接著可以通過讀取三個連繼地址的超級塊即并行地從每個存儲器器件讀取相應存儲器段來處理讀取操作。在一個實施例中,為了加速捜索存儲器器件(例如,找到電力故障期間最后寫入的存儲器段),讀取命令并行發(fā)出到N個存儲器器件的每個,其中讀取地址間隔的距離是由搜索范圍和存儲器器件的數量N確定的距離。在圖IC的示例中,讀取命令的地址之間的距離是9 (搜索范圍除以N)。如以下更詳細描述,然后評估從存儲器器件讀取的數據,以便更新地址的搜索范圍和讀取地址之間的距離,因而通過減少搜索迭代次數來加速捜索操作。圖2A-圖2D圖示說明捜索一定范圍的地址以確定電カ故障期間的最后寫入頁的本發(fā)明的實施例。在圖2A的示例中,非易失性半導體存儲器包括4個存儲器器件(N = 4),并且在電カ故障期間最后寫入的地址是A47。因此,在從Al到A80的地址搜索范圍內進行搜索,以找到最后寫入的地址A47,其中從Al到A80的初始搜索范圍表示在保存寫日志之前寫入的地址塊。
在圖2A-圖2D基礎上參照圖3的流程圖來理解根據本發(fā)明的實施例的迭代搜索步驟。通過用N = 4整除初始搜索范圍(81),確定讀取地址之間的初始距離等于20(步驟12)。起始地址被初始化(步驟14),諸如通過將讀取距離除以2并且將得到的地址調整到第一存儲器器件。然后當前地址被分配到起始地址(步驟16),并且通過將讀取距離與當前地址相加來確定下一個地址(步驟18)。然后當前地址被分配到下一地址(步驟20),并且重復該過程直到為N個存儲器器件的每個產生了讀取地址(步驟22)。因此,在圖2A的示例中,在第一搜索迭代期間,發(fā)出4個讀取命令(分別對應N個存儲器器件的每個),其中讀取命令的地址間隔距離為20。在產生讀取命令之后,如果必要則調整讀取地址(步驟24)從而使得每個地址除以N的模是唯一值(從而讀取命令被發(fā)送到N個存儲器器件的每個)。接著向N個存儲器器件的每個發(fā)出讀取命令(步驟26),并且從存儲器器件讀取的數據被評估以確定搜索是否完成(步驟28)。如果搜索未完成,則更新捜索范圍(步驟30)并且從步驟12開始執(zhí)行另ー個迭代。例如,可以相對干與寫入的存儲器段對應的最后讀取地址和與未寫入的存儲器段對應的第一讀取地址,更新搜索范圍(圖3的步驟30)。參照圖2A的示例,地址A30對應于先前寫入的最后讀取存儲器段,并且地址A51對應于未寫入的第一讀取存儲器段。因此,搜索范圍被更新為A50減去A31加I (20)。接著讀取命令之間的距離被更新(步驟12)為20除以4等于5。接著通過將更新距離(5)加到每個隨后的地址,從起始地址(例如,A31)確 定讀取命令的地址,如圖2B所例示。然而,當除以N取模后,得到的地址將不是唯一的(即,多個讀取地址分配到同一存儲器器件)。因此,調整讀取地址(步驟24)從而使得地址除以N取模后是唯一的(從而讀取命令被發(fā)送到N個存儲器器件的每個)。圖2C示出調整的讀取地址的示例,其中最后兩個地址遞增I。如圖2C所示,在并行執(zhí)行讀取命令之后,讀取地址被評估以找到最后寫入地址(A44)和第一個未寫入地址(A50)。接著更新搜索范圍并且執(zhí)行最后一次搜索迭代,如圖2D所示。如圖2D所示,在執(zhí)行讀取命令之后,最后寫入地址(A47)與第一個未寫入地址(A48)相鄰,因此最后寫入地址(A47)被定位并且搜索結束。任意適當技術可以被用來標識寫入的存儲器段和未寫入的存儲器段。例如,在一個實施例中,塊中的每個存儲器段可以包括擴展數據(例如,標記),該擴展數據標識存儲器段為已寫入或者未寫入。因此,在本實施例中,從每個存儲器段讀取的數據可以與目標數據(例如,標記)相比較以確定存儲器段是已寫入還是未寫入。在另ー個實施例中,從每個存儲器段讀取的數據可以被處理以產生校驗值(例如,錯誤校正值),該校驗值標識存儲器段為已寫入或者未寫入。此處描述的搜索技術還可以被用來找到存儲在存儲器段中的其它類型的數據或者存儲器段的其它狀態(tài)(不同于最后寫入的存儲器段)。在圖3的步驟24,可以使用任意適當技術來調整地址,從而使得地址除以N取模后是唯一值(從而讀取命令被發(fā)送到N個存儲器器件的每個)。圖4A是根據用于調整地址的實施例的流程圖,其中計數器被初始化為零(步驟32),接著為N個地址的每個產生調整值(步驟34)。以對應的調整值調整每個地址(步驟36),并且重復該過程直至N個地址的每個已經被調整(步驟38)。圖4B是示出替代實施例的流程圖,其用于調整地址從而使得地址除以N取模(即地址MOD N)是唯一值。計數器被初始化為零(步驟40),并且為N個地址的每個產生調整值(步驟42)。以對應的調整值調整每個地址(步驟44),并且重復該過程直至N個地址的每個已經被調整(步驟46)。圖4C是示出替代實施例的流程圖,其用于調整地址從而使得地址除以N取模是唯ー值。計數器被初始化為零(步驟48),并且產生偏移量(步驟50)。使用該偏移量為N個地址的每個產生調整值(步驟42)。以對應的調整值調整每個地址(步驟54),并且重復該過程直至N個地址的每個已經被調整(步驟56)。
非易失性半導體存儲器中的控制電路6(圖1A)可以包括任意適當電路,諸如ー個或更多個集成電路。在一個實施例中,控制電路6包括微處理器,該微處理器執(zhí)行用于實現上述流程圖的控制程序的代碼段??商鎿Q地或者除了微處理器之外,控制電路6還可以包 括實現為專用集成電路的狀態(tài)機電路。
權利要求
1.一種非易失性半導體存儲器,其包括N個存儲器器件和控制電路,其中每個存儲器器件包括多個塊,其中每個塊包括通過地址訪問的多個存儲器段,所述控制電路可操作用于通過以下操作在地址的搜索范圍內搜索 為所述N個存儲器器件的每個發(fā)出讀取命令,其中 每個讀取命令的地址間隔一定的距離,所述距離是響應于所述地址的所述搜索范圍和N確定的;并且 所述地址的所述搜索范圍大于N ;以及 評估從至少一個所述存儲器器件讀取的數據以確定搜索是否完成。
2.根據權利要求I所述的非易失性半導體存儲器,其中所述N個存儲器器件可操作用于并行地處理各個讀取命令。
3.根據權利要求I所述的非易失性半導體存儲器,其中所述控制電路可操作用于通過將所述地址的所述搜索范圍除以N來確定所述距離。
4.根據權利要求I所述的非易失性半導體存儲器,其中所述控制電路可操作用于響應于評估從至少一個所述存儲器器件中讀取的數據來更新所述搜索范圍。
5.根據權利要求4所述的非易失性半導體存儲器,其中所述控制電路可操作用于響應于評估從至少一個所述存儲器器件中讀取的數據來減小所述搜索范圍。
6.根據權利要求5所述的非易失性半導體存儲器,其中所述控制電路可操作用于相對于當數據匹配目標數據以及當數據不匹配所述目標數據時減小所述搜索范圍。
7.根據權利要求I所述的非易失性半導體存儲器,其中所述控制電路可操作用于響應于第一地址除以N的模來調整第一讀取命令的所述第一地址。
8.一種搜索非易失性半導體存儲器的方法,所述非易失性半導體存儲器包括N個存儲器器件,每個存儲器器件包括多個塊,其中每個塊包括通過地址訪問的多個存儲器段,所述方法包括 為所述N個存儲器器件的每個發(fā)出讀取命令,其中 每個讀取命令的地址間隔一定的距離,所述距離是響應于地址的搜索范圍和N確定的;并且 所述地址的所述搜索范圍大于N ;以及 評估從至少一個所述存儲器器件讀取的數據以確定搜索是否完成。
9.根據權利要求8所述的方法,其中所述N個存儲器器件可操作用于并行地處理各個讀取命令。
10.根據權利要求8所述的方法,所述方法還包括通過將所述地址的所述搜索范圍除以N來確定所述距離。
11.根據權利要求8所述的方法,所述方法還包括響應于評估從至少一個所述存儲器器件中讀取的數據來更新所述搜索范圍。
12.根據權利要求11所述的方法,所述方法還包括響應于評估從至少一個所述存儲器器件中讀取的數據來減小所述搜索范圍。
13.根據權利要求12所述的方法,所述方法還包括相對于當數據匹配目標數據以及當數據不匹配所述目標數據時減小所述搜索范圍。
14.根據權利要求8所述的方法,所述方法還包括響應于第一地址除以N的模來調整第一讀取命令的所述第一地址。全文摘要
本發(fā)明涉及非易失性半導體存儲器的多個器件的并行搜索。公開了一種非易失性半導體存儲器,其包括N個存儲器器件,每個存儲器器件包括多個塊,其中每個塊包括通過地址訪問的多個存儲器段。通過為N個存儲器器件的每個發(fā)出讀取命令來進行搜索,其中每個讀取命令的地址間隔的距離是響應于地址的搜索范圍和N確定的距離;地址的搜索范圍大于N。從至少一個存儲器器件讀取的數據被評估以確定搜索是否完成。
文檔編號G06F13/16GK102629237SQ20121002224
公開日2012年8月8日 申請日期2012年2月1日 優(yōu)先權日2011年2月4日
發(fā)明者E·O·阿巴斯托, J·婁 申請人:西部數據技術公司