相關申請的交叉引用
本申請要求2016年3月25日提交的第15/081,644號美國非臨時申請的優先權,其全部內容通過引用合并于此。
本公開的示例性實施例涉及一種存儲系統及其操作方法。
背景技術:
計算機環境范式已經變為可以隨時隨地使用的普適計算系統。由于這個原因,諸如移動電話、數字相機和筆記本電腦的便攜式電子設備的使用已快速增加。這些便攜式電子設備通常使用具有存儲器件的存儲系統(即,數據儲存設備)。該數據儲存設備被用作便攜式電子設備的主存儲設備或輔助存儲設備。
由于使用存儲器件的數據儲存設備無活動部件,因此它們提供優異的穩定性、耐久性、高信息訪問速度和低功耗。具有這些優點的數據儲存設備的示例包括通用串行總線(usb)存儲器件、具有各種接口的存儲卡以及固態驅動器(ssd)。
技術實現要素:
本發明的方面包括一種存儲系統。該存儲系統可以包括:存儲器件,所述存儲器件具有多個裸片、第一超級塊以及第二超級塊,第一超級塊包括儲存在裸片上的位置處的第一元頁,而第二超級塊包括儲存在裸片上的位置處的第二元頁;以及控制器,所述控制器適用于讀取這些超級塊中的元頁,其中,第一元頁的儲存位置與第二元頁的儲存位置錯開,使得在單個讀取期間通過控制器讀取第一元頁和第二元頁。
本發明的其他方面包括一種方法,該方法包括:將與第一超級塊相對應的第一元頁儲存在裸片上的位置處;將與第二超級塊相對應的第二元頁儲存在裸片上的位置處,使得第一元頁的儲存位置與第二元頁的儲存位置錯開;以及在單個讀取期間讀取第一元頁和第二元頁。
本發明的進一步的方面包括一種存儲器件。該存儲器件可以包括多個裸片以及多個超級塊,所述多個超級塊中的每個包括在多個裸片中的裸片上的位置處儲存的元頁,其中,這些元頁中的每個的儲存位置彼此錯開,使得在單個讀取命令期間讀取這些元頁中 的每個。
附圖說明
圖1是示意性地圖示根據本發明的一個實施例的存儲系統的框圖。
圖2是圖示根據本發明的一個實施例的存儲系統的框圖。
圖3是圖示根據本發明的一個實施例的存儲器件的存儲塊的電路圖。
圖4是圖示根據本發明的一個實施例的存儲器控制器的控制單元的示圖。
圖5是根據本發明的若干方面的存儲系統的框圖。
圖6a和圖6b是根據本發明的若干方面的超級塊和裸片的示圖。
圖7是對超級塊執行的讀取的示圖。
圖8是根據本發明的若干方面的用于儲存元頁和執行spor過程的步驟的流程圖。
圖9是根據本發明的若干方面的超級塊的示圖。
圖10是根據本發明的若干方面執行的讀取的示圖。
具體實施方式
下面將參照附圖來更詳細地描述各種實施例。然而,本發明可以以不同的形式實施,而不應當被解釋為局限于本文中所闡述的實施例。相反地,這些實施例被提供使得本公開將是徹底和完整的,且這些實施例將把本發明的范圍充分傳達給本領域技術人員。貫穿本公開,相同的附圖標記在本發明的各種附圖和實施例中始終指代相同的部分。
本發明可以以各種方式來實施,包括作為:過程;裝置;系統;物的組合;在計算機可讀儲存介質上實施的計算機程序產品;和/或處理器(諸如適用于運行儲存在耦接至該處理器的存儲器上的指令和/或由耦接至該處理器的存儲器提供的指令的處理器)。在此說明書中,這些實施方式或本發明可以采用的任何其他形式可以被稱作技術。一般而言,在本發明的范圍之內可以改變所公開的過程的步驟的次序。除非另外說明,否則被描述為適用于執行任務的組件(諸如處理器或存儲器)可以被實施為暫時適用于在給定時間執行該任務的常規組件或被制造用來執行該任務的專用組件。如本文中所用,術語“處理器”指適用于處理數據(諸如計算機程序指令)的一個或更多個器件、電路和/或處理核。
下面與圖示本發明的原理的附圖一起提供對本發明的一個或更多個實施例的詳細描述。雖然關聯這些實施例來描述本發明,但本發明不局限于任何實施例。本發明的范圍僅由權利要求來限制,且本發明包括若干替代、變型和等同。在下面的描述中闡述了若干具體細節以提供對本發明的透徹理解。提供這些細節出于示例的目的,且可以在無這些具體細節中的一些或全部的情況下根據權利要求來實踐本發明。為了清楚的目的,未詳細描述與本發明相關的技術領域中已知的技術材料,使得本發明不被不必要地混淆。
與硬盤不同,存儲器件(諸如快閃存儲器)的“寫入前擦除”限制需要系統軟件中的被稱作閃存轉換層(ftl)的特殊層來仿真用于向后兼容性(backwardcompatibility)的塊器件接口。文件系統和應用程序可以使用快閃存儲器就好像它們在使用硬盤一樣。被認為是邏輯塊尋址(lba)的邏輯至物理(l2p)映射系統是ftl的一部分。
由于用于ftl或lba的表(在下文中為lba表)可以在作為易失性存儲器的動態隨機存取存儲器(dram)中,因此當出現突然斷電時,lba表將丟失,這導致數據丟失。為了防止數據丟失,固件必須能夠在電源接通時重建最新表。如此頻繁地將lba表寫入至存儲器件(例如,與非快閃存儲器)將導致嚴重的寫入性能退化。在有限性能退化的情況下,如何執行快速突然斷電恢復(spor)是重要且困難的任務。
本文中將描述改善存儲系統(例如,固態驅動器(ssd))的性能(尤其是關于spor)的技術。例如,本文中描述的技術降低了用于讀取多個超級塊所需的硬件訪問的次數。
圖1是示意性地圖示根據本發明的一個實施例的存儲系統10的框圖。
參見圖1,存儲系統10可以包括存儲器控制器100和半導體存儲器件200。
存儲器控制器100可以控制半導體存儲器件200的全部操作。
半導體存儲器件200可以在存儲器控制器100的控制下執行一個或更多個擦除操作、編程操作和讀取操作。半導體存儲器件200可以經由輸入/輸出線接收命令cmd、地址addr和數據data。半導體存儲器件200可以經由電力線接收電源pwr以及經由控制線接收控制信號ctrl。控制信號可以包括命令鎖存使能(cle)信號、地址鎖存使能(ale)信號、芯片使能(ce)信號、寫入使能(we)信號、讀取使能(re)信號等。
存儲器控制器100和半導體存儲器件200可以被集成至單個半導體器件中。例如,存儲器控制器100和半導體存儲器件200可以集成至諸如固態驅動器(ssd)的單個半導體器件。固態驅動器可以包括用于將數據儲存在其中的儲存設備。當半導體存儲系統10應用于固態驅動器(ssd)中時,可以顯著改善耦接至存儲系統10的主機(未示出) 的操作速度。
存儲器控制器100和半導體存儲器件200可以集成至諸如存儲卡的單個半導體器件中。例如,存儲器控制器100和半導體存儲器件200可以集成至單個半導體器件中以配置存儲卡,諸如個人計算機存儲卡國際協會(pcmcia)的pc卡、緊湊式閃存(cf)卡、智能媒體(sm)卡、記憶棒、多媒體卡(mmc)、減小尺寸多媒體卡(rs-mmc)、微尺寸版本的mmc(微型mmc)、安全數字(sd)卡、迷你安全數字(迷你sd)卡、微型安全數字(微型sd)卡、安全數字大容量(sdhc)卡以及通用快閃儲存器(ufs)。
又例如,存儲系統10可以被提供為電子設備,諸如計算機、超移動pc(umpc)、工作站、上網本計算機、個人數字助理(pda)、便攜式計算機、網絡平板電腦、無線電話、移動電話、智能電話、電子書閱讀器、便攜式多媒體播放器(pmp)、便攜式游戲機、導航儀、黑匣子、數字相機、數字多媒體廣播(dmb)播放器、三維電視、智能電視、數字錄音機、數字音頻播放器、數字圖片記錄儀、數字圖片播放器、數字錄像機、數字視頻播放器、數據中心的儲存設備、能夠在無線環境中收發信息的設備、家庭網絡的電子設備之一、計算機網絡的電子設備之一、遠程信息處理網絡的電子設備之一、射頻識別(rfid)設備或計算系統的元件設備等中包括的各種元件中的一種。
圖2是圖示根據本發明的一個實施例的存儲系統的詳細框圖。例如,圖2的存儲系統可以為圖1中所示的存儲系統10。
參見圖2,存儲系統10可以包括存儲器控制器100和半導體存儲器件200。存儲系統10可以響應于來自主機設備的請求而操作,具體地,儲存要由主機設備訪問的數據。
主機設備可以用各種類型的電子設備中的任意一種來實施。在一些實施例中,主機設備可以包括諸如臺式計算機、工作站、三維(3d)電視、智能電視、數字錄音機、數字音頻播放器、數字圖片記錄儀、數字圖片播放器、數字錄像機和數字視頻播放器的電子設備。在一些實施例中,主機設備可以包括諸如移動電話、智能電話、電子書、mp3播放器、便攜式多媒體播放器(pmp)和便攜式游戲機的便攜式電子設備。
存儲器件200可以儲存要由主機設備訪問的數據。
存儲器件200可以用易失性存儲器件(諸如動態隨機存取存儲器(dram)和靜態隨機存取存儲器(sram))或非易失性存儲器件(諸如只讀存儲器(rom)、掩膜rom(mrom)、可編程rom(prom)、可擦除可編程rom(eprom)、電可擦除可編程rom(eeprom)、鐵電隨機存取存儲器(fram)、相變ram(pram)、磁阻式ram(mram)以及電阻式ram(rram))來實施。
控制器100可以控制存儲器件200中數據的儲存。例如,控制器100可以響應于來自主機設備的請求而控制存儲器件200。控制器100可以將從存儲器件200讀取的數據提供給主機設備,以及將從主機設備提供的數據儲存在存儲器件200中。
控制器100可以包括經由總線160耦接的儲存單元110、控制單元120、錯誤校正碼(ecc)單元130、主機接口140和存儲器接口150。
儲存單元110可以用作存儲系統10和控制器100的工作存儲器,以及儲存用于驅動存儲系統10和控制器100的數據。當控制器100控制存儲器件200的操作時,儲存單元110可以儲存由控制器100和存儲器件200使用的數據以用于諸如讀取操作、寫入操作、編程操作和擦除操作的操作。
儲存單元110可以用易失性存儲器來實施。儲存單元110可以用靜態隨機存取存儲器(sram)或動態隨機存取存儲器(dram)來實施。如上所述,儲存單元110可以將由主機設備使用的數據儲存在存儲器件200中以用于讀取操作和寫入操作。為了儲存該數據,儲存單元110可以包括程序存儲器、數據存儲器、寫入緩沖器、讀取緩沖器、映射緩沖器等。
控制單元120可以控制存儲系統10的常規操作,以及響應于來自主機設備的寫入請求或讀取請求而控制針對存儲器件200的寫入操作或讀取操作。控制單元120可以驅動被稱作閃存轉換層(ftl)的固件來控制存儲系統10的常規操作。例如,ftl可以執行諸如邏輯至物理(l2p)映射、磨損均衡、垃圾收集以及壞塊處理的操作。l2p映射被認為是邏輯塊尋址(lba)。
ecc單元130可以檢測并校正在讀取操作期間從存儲器件200讀取的數據中的錯誤。當錯誤位的數量大于或等于可校正錯誤位的閾值數量時,ecc單元130不能校正錯誤位,而可以輸出表示校正錯誤位失敗的錯誤校正失敗信號。
在一些實施例中,ecc單元130可以基于諸如低密度奇偶校驗(ldpc)碼、博斯-查德胡里-霍昆格母(bch,bose-chaudhuri-hocquenghem)碼、渦輪碼、渦輪乘積碼(tpc)、里德-索羅門(rs)碼、卷積碼、遞歸系統碼(rsc)、格碼調制(tcm)、塊碼調制(bcm)等的編碼調制來執行錯誤校正操作。ecc單元130可以包括用于錯誤校正操作的所有電路、系統或設備。
主機接口140可以經由各種接口協議(諸如通用串行總線(usb)、多媒體卡(mmc)、外圍組件互連快速(pci-e)、小計算機系統接口(scsi)、串行連接scsi(sas)、串行高級技術附件(sata)、并行高級技術附件(pata)、增強型小盤接口(esdi)和集 成驅動電路(ide))中的一種或更多種來與主機設備通信。
存儲器接口150可以提供控制器100與存儲器件200之間的接口以允許控制器100響應于來自主機設備的請求而控制存儲器件200。存儲器接口150可以產生針對存儲器件200的控制信號,并在cpu120的控制下處理數據。當存儲器件200是諸如“與非”快閃存儲器的快閃存儲器時,存儲器接口150可以產生針對存儲器的控制信號,并在cpu120的控制下處理數據。
存儲器件200可以包括存儲單元陣列210、控制電路220、電壓發生電路230、行解碼器240、頁緩沖器250、列解碼器260以及輸入/輸出電路270。存儲單元陣列210可以包括多個存儲塊211,且可以將數據儲存在其中。電壓發生電路230、行解碼器240、頁緩沖器250、列解碼器260以及輸入/輸出電路270形成針對存儲單元陣列210的外圍電路。外圍電路可以執行針對存儲單元陣列210的編程操作、讀取操作或擦除操作。控制電路220可以控制外圍電路。
電壓發生電路230可以產生具有各種電平的操作電壓。例如,在擦除操作中,電壓發生電路230可以產生具有各種電平的操作電壓,諸如擦除電壓和通過電壓。
行解碼器240可以連接至電壓發生電路230和多個存儲塊211。行解碼器240可以響應于由控制電路220產生的行地址radd而從多個存儲塊211之中選擇至少一個存儲塊,并將從電壓發生電路230供應的操作電壓傳輸給多個存儲塊211之中的選中存儲塊。
頁緩沖器250經由位線bl(未示出)連接至存儲單元陣列210。響應于由控制電路220產生的頁緩沖器控制信號,頁緩沖器250可以用正電壓對位線bl預充電,在編程操作和讀取操作中將數據傳輸給選中存儲塊或從選中存儲塊接收數據,或者暫時儲存傳輸來的數據。
列解碼器260可以將數據傳輸給頁緩沖器250或從頁緩沖器250接收數據,或者將數據傳輸給輸入/輸出電路270或從輸入/輸出電路270接收數據。
輸入/輸出電路270可以將從外部設備(例如,存儲器控制器100)傳輸來的命令和地址傳輸給控制電路220,將來自外部設備的數據傳輸給列解碼器260,或者經由輸入/輸出電路270而將來自列解碼器260的數據輸出給外部設備。
控制電路220可以響應于該命令和該地址來控制外圍電路。
圖3是圖示根據本發明的一個實施例的半導體存儲器件的存儲塊的電路圖。例如,圖3中的存儲塊可以為圖2中示出的存儲單元陣列200的存儲塊211。
參見圖3,存儲塊211可以包括分別耦接至位線bl0至blm-1的多個單元串221。每列的單元串可以包括一個或更多個漏極選擇晶體管dst以及一個或更多個源極選擇晶體管sst。多個存儲單元或存儲單元晶體管可以串聯耦接在選擇晶體管dst與sst之間。存儲單元mc0至mcn-1中的每個可以由在每個單元中儲存多位的數據信息的多電平單元(mlc)形成。單元串221可以分別電耦接至對應的位線bl0至blm-1。
在一些實施例中,存儲塊211可以包括“與非”型快閃存儲單元。然而,存儲塊211不局限于“與非”快閃存儲器,而是可以包括“或非”型快閃存儲器、組合了兩種或更多種類型的存儲單元的混合快閃存儲器以及控制器嵌入至存儲芯片內部的一體式與非(one-nand)快閃存儲器。
圖4是圖示根據本發明的一個實施例的存儲器控制器的控制單元的示圖。例如,圖4中的控制單元可以為圖2中的控制器100的控制單元120。
參見圖4,控制器100的控制單元120可以經由接口(例如,圖2的存儲器接口150)而耦接至包括多個超級塊的存儲器件200。
控制單元120可以包括邏輯塊尋址(lba)表410、重建單元420和垃圾收集(gc)單元430。lba表410可以是從邏輯塊地址(lba)至物理地址的映射表,其為閃存轉換層(ftl)的一部分。重建單元420可以在spor期間重建lba表。gc單元430可以在spor期間執行任何所需的垃圾收集操作。要注意的是,圖4僅圖示了控制單元120包括用于關于spor的操作的元件。
本文中所公開的方法、過程、系統和設備可以使用上述的存儲器控制器和/或存儲器控制器的控制單元來實施。
參見圖5,示出了示例性存儲系統以圖示典型的spor過程。該存儲系統包括dram500,dram500包括ftl510。dram500通常與存儲器/nand502分離。nand502包括多個超級塊。為了具有最大的并行度,每個裸片中的具有同一塊索引的物理塊被分組成超級塊。同一超級塊的每個物理塊中的具有同一頁索引的頁被分組成超級頁。當超級塊充滿且準備閉合時,超級塊中的頁的lba被寫入在其最后作為元頁(例如,圖5中的mp)。當突然斷電發生時,nand502具有兩個開放塊(一個用于主機寫入的開放塊530和一個用于垃圾收集(gc)的開放塊540)以及很多其他閉合塊(例如,閉合超級塊)。
在spor期間,對于開放塊530和540,需要讀出所有的用戶頁,且需要為它們中的每個恢復lba。對于閉合塊,可以讀取元頁mp,以及按照時間次序(意味著最舊的 元頁最先)對表ftl更新(或重放)映射信息。這樣,對于特定的lba,有效映射信息將覆蓋無效映射信息。當重放/更新完成時,整個表被重建了,且主機命令可以開始起作用。
接下來參見圖6a和圖6b,示出了超級塊的示圖60和62。超級塊可以指一起來分配、寫入和擦除的一組塊/頁,且超級塊利用每個芯片/平面/裸片中的一個塊來保存元數據。如所示,超級塊100包括裸片0的頁100、裸片1的頁100、裸片2的頁100和裸片3的頁100。元數據用來描述頁中的數據,也可以表示超級塊的類型(例如,閉合超級塊、主機寫入開放超級塊、垃圾收集開放超級塊等)。
如圖6b中所述,對超級塊的先前布置和設計意在包括沿同一裸片的元塊(例如,用于儲存元數據的塊或元頁等)。例如,超級塊100至超級塊107中的每個包括他們在裸片3上的對應元塊。
在圖7中,示圖示出了對諸如圖6a和圖6b中所示的超級塊的超級塊配置執行的讀取。一旦spor過程啟動,就執行讀取命令以重建lba表。讀取命令用來判斷哪些超級塊是開放的、哪些超級塊是閉合的、超級塊閉合的次序等,這通常通過從元塊讀取元數據或元頁來判斷。
在圖6a和圖6b所示的元塊在每個超級塊的同一裸片上的示例中,當發送了讀取命令時,將訪問多個裸片之中的同一頁。例如,如果讀取命令是針對頁100的,則其從裸片0至裸片3中的每個讀取頁100(例如,圖7中的read1),其中,裸片0至裸片3中的每個的頁100包含針對單個超級塊(超級塊100)的超級塊信息。對于spor過程,所需的關鍵信息是包含在元塊/元頁/元數據中的信息。因此,讀取命令將最終讀取裸片3處的元塊,此外其還將必須讀取裸片0、裸片1和裸片2處的非元塊,這增加了重建時間,因為對于lba表重建來說這些讀取通常是不必要的。當考慮在所示示例中以類似方式執行8個讀取操作(例如,read1-read8)時,對lba表重建執行了24個額外且不必要的讀取。
因此,這里公開的本發明的示例試圖減少突然斷電之后完成lba表重建所必需的讀取的數量。
圖8是根據本發明若干方面的用于儲存元數據以及重建lba表的步驟的流程圖80。圖9是根據本發明若干方面的包括元塊的超級塊布局的示圖。圖10是根據本發明若干方面的spor過程期間執行的示例性讀取的示圖。
雖然本文中使用術語元塊、元頁和元數據來描述本發明,但本領域技術人員將認識 到這些術語指用來在spor過程期間重建lba表的信息。該信息可以為元數據的形式,可以儲存在元頁中,可以位于元塊中等。
參見圖8,在步驟800處,閉合第一超級塊,以及產生與第一超級塊相對應的第一元頁。如上所述,當超級塊要閉合時,包括用于spor過程的信息的元頁或元數據被產生,且其與其所對應的超級塊關聯地儲存。
在步驟802處,將第一元頁儲存在第一超級塊的裸片處。例如,參見圖9,當超級塊100閉合時,元頁(例如,可以儲存在元塊上)可以儲存和位于裸片0處(如示例所示為4nand配置)。
在步驟804處,閉合第二超級塊,以及產生與第二超級塊相對應的第二元頁。
在步驟806處,將第二元頁儲存在第二超級塊的裸片處,使得第二元頁的儲存位置與第一元頁的儲存位置錯開。例如,參見圖9,超級塊100的元塊儲存和位于裸片0處,而超級塊101的元塊儲存和位于裸片1處。超級塊100的元塊的位置與超級塊101的元塊的位置錯開,意味著它們儲存在彼此不同的裸片上。
如圖9中所示,由于此示例描述了4nand配置,因此多達4個元塊的位置可以彼此錯開(例如,意味著儲存和位于不同的裸片上)。雖然本文中公開的示例示出了4nand配置,但這是示例性的而非排他性的。nand配置的其他大小適用于實踐本發明,這將改變可以彼此錯開的元塊的數量。因此,超級塊100、101、102和103的元塊中的每個彼此錯開,且元塊104、105、106和107中的每個彼此錯開。
在步驟808處,啟動spor過程,以及執行讀取操作。該讀取操作被執行,使得在同一讀取操作期間訪問第一元頁和第二元頁。
如上關于現有技術的存儲器配置所討論的,單個讀取將僅訪問單個元頁。然而,參見圖10,在單個讀取操作期間,本文中公開的本發明允許單個讀取來訪問多個元頁。在圖10中,讀取操作read1可以訪問裸片0上的頁100、裸片1上的頁101、裸片2上的頁102和裸片3上的頁103(其中,每個頁對應于不同的超級塊),而不是讀取全部4個裸片上的第100頁。注意,這些頁彼此錯開。結果,超級塊100、101、102和103可以被配置為使得超級塊100的元塊被儲存在裸片0的頁100處、超級塊101的元塊被儲存在裸片1的頁101處等(如圖9中所示)。因此,讀取操作可以在單個讀取操作期間訪問全部4個超級塊(超級塊100-103)的元頁(例如,用來重建lba表所必需的信息,諸如判斷超級塊是開放的還是閉合的),導致讀取減少四倍。
這種系統將通過減少如在spor中所進行的讀取多個超級塊所需的時間來改善存 儲器件(例如,ssd)的性能。
雖然已經為了清楚理解的目的而相當詳細地描述了前述實施例,但本發明不局限于所提供的細節。存在很多實施本發明的替代方法。所公開的實施例是說明性的而非限制性的。