對相關申請的交叉引用
本申請要求于2016年3月25日提交的第10-2016-0036386號韓國專利申請的優(yōu)先權,該韓國專利申請的公開內容通過引用整體并入于此。
本公開的實施例涉及數(shù)據(jù)存儲設備,并且更具體地,涉及用于提高主機(host)和數(shù)據(jù)存儲設備之間的傳輸效率的數(shù)據(jù)存儲設備和方法,以及包括其的數(shù)據(jù)處理系統(tǒng)。
背景技術:
具有大容量的存儲設備通常包括多個存儲器設備(memorydevice)。存儲器設備用于存儲數(shù)據(jù)。存儲器設備被分為易失性存儲器設備和非易失性存儲器設備。
數(shù)據(jù)復制或備份經(jīng)常用于在存儲設備或電源出現(xiàn)故障的情況下恢復數(shù)據(jù)。數(shù)據(jù)鏡像就是一種這樣的數(shù)據(jù)復制方案。其是在至少一個設備中重復地存儲數(shù)據(jù)的技術。主機通常針對相同的數(shù)據(jù)在存儲設備上運行多個寫入命令以執(zhí)行數(shù)據(jù)鏡像,或者運行具有由存儲設備接收的單個地址并在存儲設備中轉換(translate)的單個寫入命令以執(zhí)行復制。因此,典型的數(shù)據(jù)復制可能需要由主機生成的更多數(shù)量(例如,兩倍之多)的命令,或者可能需要在存儲設備處執(zhí)行地址轉換和/或處理。這兩者都可能需要額外的處理。
技術實現(xiàn)要素:
一些實施例提供了用于提高在主機和數(shù)據(jù)存儲設備之間的數(shù)據(jù)效率并且降低功耗的數(shù)據(jù)存儲系統(tǒng)、方法、以及設備。
在一些實施例中,數(shù)據(jù)存儲設備包括:第一非易失性存儲器設備;第二非易失性存儲器設備;以及管理電路,其連接到第一非易失性存儲器設備和第二非易失性存儲器設備。所述管理電路被配置為:接收外部多訪問命令(multi-accesscommand),所述外部多訪問命令從所述數(shù)據(jù)存儲設備的外部接收,并且包括第一地址和第二地址,基于所述外部多訪問命令和第一地址,生成第一內部訪問命令并將第一內部訪問命令和第一地址提供給第一非易失性存儲器設備,以及基于所述外部多訪問命令和第二地址,生成第二內部訪問命令并將第二內部訪問命令和第二地址提供給第二非易失性存儲器設備。
在一些實施例中,其可以包括上述或其它實施例,訪問數(shù)據(jù)存儲設備的方法包括:在所述數(shù)據(jù)存儲設備處從在所述數(shù)據(jù)存儲設備外部的設備接收外部多訪問命令,所述外部多訪問命令包括第一地址和第二地址;將基于所述外部多訪問命令的第一訪問命令提供給第一非易失性存儲器設備,第一訪問命令包括第一地址;使用第一訪問命令和第一地址在第一非易失性存儲器設備上運行第一訪問操作;將基于所述外部多訪問命令的第二訪問命令提供給第二非易失性存儲器設備,第二訪問命令包括第二地址;以及使用第二訪問命令和第二地址在第二非易失性存儲器設備上運行第二訪問操作。
在一些實施例中,其可以包括上述或其它實施例,用于數(shù)據(jù)存儲設備的多訪問方法包括:通過生成多訪問請求在主機設備上啟動多訪問操作;對所述多訪問請求執(zhí)行映射操作以生成多訪問命令,所述多訪問命令包括至少命令類型指示符、復制/拆分標志、以及多個地址;以及從所述主機向所述數(shù)據(jù)存儲設備發(fā)送所述多訪問命令。
在一些實施例中,其可以包括上述或其它實施例,用于包括管理電路和多個非易失性存儲器設備的數(shù)據(jù)存儲設備的多訪問方法包括:從所述數(shù)據(jù)存儲設備外部的設備接收外部多訪問命令,所述外部多訪問命令包括命令類型指示符和至少第一地址和第二地址;使用第一地址將基于所述外部多訪問命令的第一內部多訪問命令傳輸?shù)剿鰯?shù)據(jù)存儲設備的第一非易失性存儲器設備;使用第二地址將基于所述外部多訪問命令的第二內部多訪問命令傳輸?shù)剿鰯?shù)據(jù)存儲設備的第二非易失性存儲器設備;使用第一地址訪問第一非易失性存儲器設備;以及使用第二地址訪問第二非易失性存儲器設備。
附圖說明
通過參考附圖詳細描述其示例性實施例,上述和其它特征和優(yōu)點將變得更加明顯,其中:
圖1是根據(jù)一些實施例的數(shù)據(jù)處理系統(tǒng)的框圖;
圖2是根據(jù)一些實施例的圖1中所示的主機和數(shù)據(jù)存儲設備的框圖;
圖3是根據(jù)一些實施例的圖2中所示的存儲器設備集群(cluster)的框圖;
圖4是根據(jù)一些實施例的主機的層級(hierarchical)結構的示圖;
圖5a和圖5b是圖1中所示的數(shù)據(jù)存儲設備的示例的框圖;
圖6是根據(jù)一些實施例的數(shù)據(jù)處理系統(tǒng)的多訪問方法的流程圖;
圖7是根據(jù)一些實施例的數(shù)據(jù)處理系統(tǒng)的多寫入方法的流程圖;
圖8a是根據(jù)一些實施例的諸如圖7中所示的多寫入命令的示圖;
圖8b是根據(jù)本發(fā)明構思的其它實施例的諸如圖7中所示的另一多寫入命令的示圖;
圖9是根據(jù)一些實施例的用于說明數(shù)據(jù)處理系統(tǒng)的多寫入操作的示圖;
圖10是根據(jù)其它實施例的用于說明數(shù)據(jù)處理系統(tǒng)的多寫入操作的示圖;
圖11是根據(jù)一些實施例的數(shù)據(jù)處理系統(tǒng)的多讀取方法的流程圖;
圖12是根據(jù)其它實施例的數(shù)據(jù)處理系統(tǒng)的多讀取方法的流程圖;
圖13是根據(jù)一些實施例的用于說明數(shù)據(jù)處理系統(tǒng)的多讀取操作的示圖;
圖14是根據(jù)一些實施例的用于說明數(shù)據(jù)處理系統(tǒng)的多擦除方法的示圖;
圖15是根據(jù)一些實施例的數(shù)據(jù)處理系統(tǒng)的框圖;以及
圖16和圖17是根據(jù)一些實施例的包括數(shù)據(jù)存儲設備的數(shù)據(jù)處理系統(tǒng)的框圖。
相同的數(shù)字始終指代相同的元素。雖然不同的附圖示出了示例性實施例的變型,并且可以使用諸如“在一個實施例中”的語言來指代,但是這些附圖不一定旨在彼此相互排斥。相反,如從下面的詳細描述的上下文中將看到的,當將附圖及其描述作為整體考慮時,不同附圖中描繪和描述的某些特征可以與其它附圖中的其它特征組合以得到各種實施例。并且這些各種實施例也應當在本發(fā)明構思的范圍內。
具體實施方式
圖1是根據(jù)一些實施例的數(shù)據(jù)處理系統(tǒng)100的框圖。圖2是根據(jù)一些實施例的圖1中所示的主機200和數(shù)據(jù)存儲設備300的框圖。圖3是根據(jù)一些實施例的圖2中所示的存儲器設備集群400a的框圖。
參考圖1至圖3,數(shù)據(jù)處理系統(tǒng)100可以包括主機200和數(shù)據(jù)存儲設備300,數(shù)據(jù)存儲設備300可以通過接口110與主機200通信命令和/或數(shù)據(jù)。數(shù)據(jù)處理系統(tǒng)100可以被實現(xiàn)為,例如,個人計算機(pc)、工作站、數(shù)據(jù)中心、互聯(lián)網(wǎng)數(shù)據(jù)中心(idc)、存儲區(qū)域網(wǎng)絡(san)、網(wǎng)絡附接存儲(nas)或移動計算設備,但是本發(fā)明構思不限于這些示例。移動計算設備可以是膝上型計算機、蜂窩電話、智能電話、平板pc、個人數(shù)字助理(pda)、企業(yè)數(shù)字助理(eda)、數(shù)字靜止照相機、數(shù)字攝像機、便攜式多媒體播放器(pmp)、個人導航設備或便攜式導航設備(pnd)、手持游戲控制臺、移動互聯(lián)網(wǎng)設備(mid)、可穿戴計算機、物聯(lián)網(wǎng)(iot)設備,萬物互聯(lián)(ioe)設備、無人機或電子書,但不限于此。
接口110可以被實現(xiàn)為,例如,串行高級技術附件(sata)接口、高速sata(satae)接口、sas(串行附接小型計算機系統(tǒng)接口(scsi))、高速外圍組件互連(pcie)接口、高速非易失性存儲器(nvme)接口、高級主機控制器接口(ahci)或多媒體卡(mmc)接口,但是本發(fā)明構思不限于這些示例。接口110可以在主機200和數(shù)據(jù)存儲設備300之間傳輸電信號或光學信號。
主機200可以通過接口110控制數(shù)據(jù)存儲設備300的數(shù)據(jù)處理操作(例如,寫入或讀取操作)。主機200可以指代主機控制器。
數(shù)據(jù)存儲設備300可以包括管理模塊310和多個非易失性存儲器(nvm)設備410-1至410-m,其中“m”是至少為2的整數(shù)。為了在描述中方便起見,nvm設備410-1至410-m將被稱為存儲器設備集群400。圖2中所示的數(shù)據(jù)存儲設備300a還可以包括緩沖器360和電源管理集成電路(pmic)370。
數(shù)據(jù)存儲設備300可以是非易失性存儲器設備,諸如基于閃存的存儲器設備或相變隨機訪問存儲器(pram)設備,但是其不限于這些示例。數(shù)據(jù)存儲設備300可以被實現(xiàn)為,例如,固態(tài)驅動器或固態(tài)盤(ssd)、嵌入式ssd(essd)、通用閃速存儲器(ufs)、mmc、嵌入式mmc(emmc)或受管理(managed)nand,但是本發(fā)明構思不限于這些示例。
在數(shù)據(jù)存儲設備300包括一個或多個基于閃存的存儲器設備的情況下,每個基于閃存的存儲器設備可以包括存儲器單元陣列。存儲器單元陣列可以包括多個存儲器單元。存儲器單元陣列可以是二維或三維存儲器單元陣列。
三維存儲器單元陣列可以在具有布置在硅襯底上或上方的有源區(qū)域的存儲器單元的陣列中的一個或多個物理級(physicallevel)處單體地(monolithically)形成,并且可以包括與存儲器單元的操作相關的電路。電路可以形成在硅襯底中、硅襯底上、或硅襯底的上方。術語“單體的(monolithic)”意指陣列中的每一級(level)處的層(layer)直接沉積在陣列中的基礎級(underlyinglevel)處的層上。三維存儲器單元陣列可包括垂直取向的垂直nand串,使得至少一個存儲器單元置于另一存儲器單元上或上方。所述至少一個存儲器單元可以包括電荷捕獲層。以下專利文獻(其通過引用整體并入本文)描述了用于三維存儲器陣列的合適配置,其中三維存儲器陣列被配置為多個級,其中字線和/或位線在各級之間共享:專利號為7,679,133、8,553,466、8,654,587和8,559,235的美國專利以及公開號為2011/0233648的美國專利申請。
可替換地,數(shù)據(jù)存儲設備300可以被實現(xiàn)為硬盤驅動器(hdd)、pram設備、磁阻ram(mram)設備、自旋力矩傳輸mram(stt-mram)設備、鐵電ram(fram)設備或電阻式ram(rram)設備。
可以包括各種電路元件并且可以包括集成電路的管理模塊310可以被稱為管理電路310,并且可以控制在主機200和nvm設備410-1至410-m之間傳輸?shù)拿詈?或數(shù)據(jù)的傳遞或處理。在nvm設備410-1至410-m是nand設備的情況下,管理電路310可以被指代為nand管理電路。管理模塊310可以在例如ic或片上系統(tǒng)(soc)中實現(xiàn)。圖2中所示的主機200a可以包括總線架構210、中央處理單元(cpu)220、存儲器225和第一接口230。主機200a可以在數(shù)據(jù)存儲設備300a的外部。主機200a(包括其各種組件)和數(shù)據(jù)存儲設備300(包括其各種組件)可被配置以執(zhí)行這里所描述的各種操作和方法。
cpu220、存儲器225和第一接口230可以經(jīng)由總線架構210彼此通信命令和/或數(shù)據(jù)。盡管主機200a包括總線架構210、cpu220、存儲器225以及圖2中所示的實施例中的第一接口230,但是本發(fā)明構思不限于圖2中所示的主機200a。
主機200可以被實現(xiàn)為ic、主板、soc、應用處理器(ap)、移動ap、web服務器、數(shù)據(jù)服務器或數(shù)據(jù)庫服務器,但是本發(fā)明構思不限于這些示例??偩€架構210可以被實現(xiàn)為高級微控制器總線架構(amba)、高級高性能總線(ahb)、高級外圍總線(apb)、高級可擴展接口(axi)、高級系統(tǒng)總線(asb)、axi一致性擴展(ace)或其組合,但是本發(fā)明構思不限于這些示例。
cpu220可以生成用于控制數(shù)據(jù)存儲設備300的寫入操作的寫入命令、用于控制數(shù)據(jù)存儲設備300的讀取操作的讀取命令或用于控制數(shù)據(jù)存儲設備300的擦除操作的擦除命令。寫入命令可以包括寫入地址(例如,邏輯地址或物理地址)。讀取命令可以包括讀取地址(例如,邏輯地址或物理地址)。cpu220還可以生成用于控制數(shù)據(jù)存儲設備300的多寫入操作的多寫入命令(n-write)、用于控制數(shù)據(jù)存數(shù)設備300的多讀取操作的多讀取命令(n-read)或用于控制數(shù)據(jù)存儲設備300的多擦除操作的多擦除命令(n-erase)。由主機生成的命令在這里被稱為與存儲設備300相關的外部命令。
為了在描述中方便起見,n-write、n-read和n-erase各自通常被稱為多訪問命令或外部多訪問命令。外部多訪問命令是在各種實施例中最初在主機200和數(shù)據(jù)存儲設備300之間傳遞的命令,使得使用單個命令相對于至少兩個地址(例如,物理地址)執(zhí)行數(shù)據(jù)寫入、讀取或擦除操作。例如,所述至少兩個地址可以與單個多訪問命令相關聯(lián)并且可以與所述單個多訪問命令一起傳輸。多訪問命令可以包括n-write、n-read和n-erase,但是本發(fā)明構思不限于這些示例。包括多個地址的其它命令也可以被描述為多訪問命令。
cpu220可以包括至少一個內核(core)。
存儲器225可以存儲用于cpu220的操作的數(shù)據(jù)、將要傳輸?shù)綌?shù)據(jù)存儲設備300的數(shù)據(jù)或者從數(shù)據(jù)存儲設備300接收的數(shù)據(jù)。存儲器225還可以存儲可以由cpu220運行的閃存轉換層(flashtranslationmemory,ftl)代碼。ftl代碼可以被簡單地稱為ftl。下面將參考圖4詳細描述主機200和ftl中的示例層級(hierarchy)。
第一接口230可以改變將要傳輸?shù)綌?shù)據(jù)存儲設備300的命令和/或數(shù)據(jù)的格式,并且可以將所述命令和/或數(shù)據(jù)以改變的格式通過接口110傳輸?shù)綌?shù)據(jù)存儲設備300。第一接口230還可以改變從數(shù)據(jù)存儲設備300接收的響應和/或數(shù)據(jù)的格式,并且可以將所述響應和/或數(shù)據(jù)以改變的格式通過總線架構210傳輸?shù)絚pu220。例如,第一接口230可以包括傳輸和接收命令和/或數(shù)據(jù)的收發(fā)器。第一接口230的結構和操作可以被配置為與這些接口110的結構和操作兼容。
圖2中所示的管理模塊310a可以包括:總線架構311、內部存儲器(例如,sram)315、第二接口320、cpu330、緩沖器控制器340和第三接口350。管理模塊310a的總線架構311可以被實現(xiàn)為amba、ahb、apb、axi、asb、ace或其組合,但是本發(fā)明構思不限于這些示例。
內部存儲器315可以存儲用于管理模塊310a的操作的數(shù)據(jù)或者從由管理模塊310a執(zhí)行的數(shù)據(jù)處理操作(例如寫入或讀取操作)生成的數(shù)據(jù)。內部存儲器315可以存儲可以由cpu330運行的ftl的部分代碼。ftl的部分功能(或用于執(zhí)行部分功能的代碼)可以在主機200中被實現(xiàn),ftl的另一部分功能(或用于執(zhí)行另一部分功能的代碼)可以在數(shù)據(jù)存儲設備300的管理模塊310a中被實現(xiàn)。然而,在這里描述的各種實施例中,ftl沒有完全在數(shù)據(jù)存儲設備300上被實現(xiàn)。在一些情況下,ftl沒有任何部分在數(shù)據(jù)存儲設備300上被實現(xiàn)。
內部存儲器315可以被實現(xiàn)為ram、動態(tài)ram(dram)、靜態(tài)ram(sram)、緩沖器、緩沖存儲器、高速緩沖存儲器或緊湊耦合存儲器(tcm),但不限于這些示例。
第二接口320可以改變將要傳輸?shù)街鳈C200a的響應和/或數(shù)據(jù)的格式,并且可以將所述響應和/或數(shù)據(jù)以改變的格式通過接口110傳輸?shù)街鳈C200a。第二接口320還可以從主機200a接收命令和/或數(shù)據(jù),改變所述命令和/或數(shù)據(jù)的格式,并且將所述命令和/或數(shù)據(jù)以改變的格式發(fā)送到cpu330和/或緩沖器控制器340。第二接口320可以包括傳輸和接收信號和/或數(shù)據(jù)的收發(fā)器。
第二接口320的結構和操作可以被配置為與這些接口110的結構和操作兼容。第二接口320可以是,例如,sata接口、satae接口、sas、pcie接口、nvme接口、ahci、mmc接口、nand型閃速存儲器接口或nor型閃速存儲器接口,但不限于此。
cpu330可以通過總線架構311控制內部存儲器315、第二接口320、緩沖器控制器340和第三接口350。cpu330可以包括至少一個內核。cpu330可以控制pmic370。
緩沖器控制器340可以根據(jù)cpu330的控制將數(shù)據(jù)寫入緩沖器360或從緩沖器360讀取數(shù)據(jù)。緩沖器控制器340可以被稱為控制器或緩沖器管理器,其可以控制在緩沖器360上的寫入和讀取操作。
第三接口350可以根據(jù)cpu330的控制通過通道cha至chd來控制在存儲器設備集群400a上的數(shù)據(jù)處理操作(例如,寫入或讀取操作)。第三接口350可以是,例如,sata接口、satae接口、sas、pcie接口、nvme接口、ahci、mmc接口、nand型閃速存儲器接口或nor型閃速存儲器接口,但不限于此。
緩沖器360可以寫入從主機200接收的數(shù)據(jù)或讀取根據(jù)緩沖器控制器340的控制已經(jīng)存儲的數(shù)據(jù)。緩沖器360可以被實現(xiàn)為易失性存儲器,諸如緩沖存儲器、ram、sram或dram,但是本公開不限于這些示例。
當管理模塊310和緩沖器360分別形成在不同的半導體芯片中時,管理模塊310和緩沖器360可以使用層疊封裝(pop)、多芯片封裝(mcp)或系統(tǒng)內封裝(sip)在單個封裝中實現(xiàn),但是本公開不限于這些示例。包括緩沖器360的第一芯片可以例如使用諸如凸塊(bump)或球(ball)的堆疊端子(stackingterminal)堆疊在包括管理模塊310的第二芯片的上方。
pmic370可以控制施加到管理模塊310、緩沖器360、和/或存儲器設備集群400a的操作電壓。施加到管理模塊310的第一操作電壓、施加到緩沖器360的第二操作電壓和施加到存儲器設備集群400a的第三操作電壓可以彼此相同或不同。
圖2中所示的存儲器設備集群400a可以包括通過各自的通道cha至chd傳輸和接收數(shù)據(jù)的多個存儲器設備410-1至410-m。如圖3所示,存儲器設備410-1至410-m可以分別包括多個存儲器元件或存儲器芯片ca0至ca2、cb0至cb2、cc0至cc2和cd0至cd2。雖然在圖3中所示的實施例中三個存儲器芯片連接到四個通道cha到chd中的每一個,但是當前的實施例僅僅是示例,并且通道的數(shù)量以及連接到每條通道上的存儲器芯片的數(shù)量可以被改變。每個存儲器芯片可以是,例如,非易失性存儲器芯片,諸如nand存儲器。如這里所述,半導體芯片是指從晶圓形成的晶片(die)并且其上包括集成電路??梢远询B半導體芯片以形成諸如芯片堆疊和/或半導體封裝的半導體設備。半導體芯片也可以被稱為半導體設備。
存儲器設備410-1、410-2、410-3或410-4中的存儲器元件或存儲器芯片ca0至ca2、cb0至cb2、cc0至cc2或cd0至cd2可以在單個封裝中實現(xiàn)或安裝在單個模塊上。每個存儲器芯片可以包括多個塊;每個塊可以包括多個頁面。
第一存儲器設備410-1可以連接到第一通道cha;第二存儲器設備410-2可以連接到第二通道chb;第m存儲器設備410-m可以連接到第m通道chd??梢愿鶕?jù)不同的情況適當?shù)卮_定存儲器設備410-1至410-m的數(shù)量和通道的數(shù)量。存儲器設備410-1至410-m中的每一個中的存儲器芯片或存儲器元件的數(shù)量也可以根據(jù)不同的情況適當?shù)卮_定。
這里所使用的通道可以指代存在于管理模塊310(例如,第三接口350)與存儲器設備之間的獨立數(shù)據(jù)通路。數(shù)據(jù)通路可以包括可以傳遞數(shù)據(jù)和/或控制信號的傳輸線。
圖4是根據(jù)本發(fā)明構思的一些實施例的主機的層級結構240的示圖。參考圖4,層級結構240可以包括應用層250、ftl260和存儲接口層270。ftl260可以執(zhí)行地址映射261、垃圾收集(gc)263、損耗平衡(wear-leveling,wl)265和壞塊管理(bbm)267。
例如,在一個實施例中,地址映射261包括將邏輯地址映射到與數(shù)據(jù)存儲設備300中的物理位置相對應的物理地址。ftl260可以使用將邏輯地址鏈接到物理地址的地址轉換映射表(未示出),將邏輯塊地址轉換為對應于數(shù)據(jù)存儲設備300中的物理位置的物理塊地址。地址映射方法可以是扇區(qū)映射、塊映射或混合映射,但不限于這些示例。此外,地址映射可以將邏輯地址(例如,單個邏輯地址)映射到多個物理地址,諸如數(shù)據(jù)存儲或存儲器設備集群的兩個不同的非易失性存儲器設備的兩個物理地址。
wl265是管理數(shù)據(jù)存儲設備300的技術,使得寫入操作不集中在數(shù)據(jù)存儲設備300中的特定塊上,例如,每個塊具有統(tǒng)一的寫入計數(shù)。ftl260可以記錄并管理對于每個塊或頁的寫入計數(shù)并且可以執(zhí)行管理,使得基于寫入計數(shù)執(zhí)行寫入操作。
gc263是均衡數(shù)據(jù)存儲設備300中的塊的擦除計數(shù)的技術。bbm267可以指代管理數(shù)據(jù)存儲設備300的壞塊信息的功能或代碼。
ftl260可以是存儲在主機200的存儲器225中并在cpu220中運行的軟件或固件代碼。ftl260可以被實現(xiàn)為主機200的操作系統(tǒng)(os)的一部分。如上所述,在一些實施例中,ftl260可以部分地在主機200中實現(xiàn)并且部分地在數(shù)據(jù)存儲設備300中實現(xiàn)。例如,地址映射261、gc263和wl265可以在主機200中實現(xiàn)以及bbm267可以在數(shù)據(jù)存儲設備300中實現(xiàn),但是本發(fā)明構思不限于該示例。
存儲接口層270可以對應于圖2中所示的第一接口230。
圖5a和圖5b是圖1中所示的數(shù)據(jù)存儲設備300的示例300b和300c的框圖。圖5a中所示的數(shù)據(jù)存儲設備300b的結構和操作類似于圖2中所示的數(shù)據(jù)存儲設備300a的結構和操作。因此,描述將集中在數(shù)據(jù)存儲設備300a和300b之間的差異以避免冗余。與圖2中所示的數(shù)據(jù)存儲設備300a的管理模塊310a相比,圖5a中所示的數(shù)據(jù)存儲設備300b的管理模塊310b還可以包括也被稱為糾錯碼(ecc)電路的糾錯碼(ecc)引擎325和/或數(shù)據(jù)運算器335。
ecc引擎325可以糾正將要存儲在存儲器設備集群400b中的數(shù)據(jù)中的錯誤和/或從存儲器設備集群400b輸出的數(shù)據(jù)中的錯誤。ecc引擎325可以在管理模塊310b內的任何地方實現(xiàn)。例如,ecc引擎325可以在第三接口350內實現(xiàn)。
數(shù)據(jù)運算器335或數(shù)據(jù)運算電路,可以壓縮將要存儲在存儲器設備集群400b中的數(shù)據(jù),并且可以解壓縮從存儲器設備集群400b輸出的數(shù)據(jù)。數(shù)據(jù)運算器335還可以從將要存儲在存儲器設備集群400b中的數(shù)據(jù)生成奇偶校驗數(shù)據(jù)。因此,數(shù)據(jù)運算器335也可以更具體地被稱為數(shù)據(jù)壓縮/解壓縮電路。
圖5b中所示的數(shù)據(jù)存儲設備300c的結構和操作類似于圖2中所示的數(shù)據(jù)存儲設備300a的結構和操作。因此,描述將集中在數(shù)據(jù)存儲設備300a和300c之間的差別以避免冗余。與圖2中所示的數(shù)據(jù)存儲設備300a的管理模塊310a相比,圖5b中所示的數(shù)據(jù)存儲設備300c的管理模塊310c不包括緩沖器控制器340。因此,數(shù)據(jù)存儲設備300c不包括緩沖器360。
在主機200c和數(shù)據(jù)存儲設備300c之間的接口110’可以與nvm接口(例如,nand接口)兼容。因此,主機200c可以根據(jù)與nvm接口兼容的接口110’向管理模塊310c發(fā)送命令(例如,nand命令)和地址(或多個地址),并且可以將數(shù)據(jù)直接傳輸(130)到存儲器設備集群400c。
管理模塊310c可以從主機200c接收命令和地址(或多個地址),并將它們施加到存儲器設備集群400c。管理模塊310c可以將從主機200c接收的命令和地址(或多個地址)轉換為適合于存儲器設備集群400c。在本實施例中,來自主機200c的命令和地址(或多個地址)可以經(jīng)由管理模塊310c被施加到存儲器設備集群400c,但是所述數(shù)據(jù)可以不經(jīng)過管理模塊310c而直接從主機200c傳輸?shù)酱鎯ζ髟O備集群400c。
圖6是根據(jù)本發(fā)明構思的一些實施例的數(shù)據(jù)處理系統(tǒng)100的多訪問方法的流程圖。參考圖1至圖6,在操作s101中,主機200向數(shù)據(jù)存儲設備300發(fā)送多訪問命令(n-access),并且數(shù)據(jù)存儲設備300接收n-access。
相對于數(shù)據(jù)存儲設備300被稱為外部多訪問命令的n-access指定至少兩個地址(例如,至少兩個物理塊地址),使得使用單個命令在所述至少兩個物理塊地址上執(zhí)行訪問操作。例如,所述至少兩個物理塊地址可以是同一芯片上的不同塊、不同芯片上的不同塊或不同封裝上的不同塊。為了在所述至少兩個物理塊地址上執(zhí)行訪問操作,通常需要至少兩個單獨的命令或至少兩次命令。然而,根據(jù)本發(fā)明構思的各種實施例,使用最初在主機200和數(shù)據(jù)存儲設備300之間定義的n-access,使得使用單個命令在所述至少兩個不同的物理塊地址上能夠執(zhí)行訪問操作(例如,寫入操作、讀取操作或擦除操作)。
n-access可以包括n個地址(例如,物理地址)的地址列表add_list,其中n是至少為2的整數(shù)。根據(jù)命令的形式或類型,n-access可以包括或可以不包括數(shù)據(jù)。稍后將參照圖8a和8b詳細描述n-access。n-access命令可以源自于在所述主機處生成的包括單個邏輯地址的初始命令,所述單個邏輯地址可以是目的地址。例如,主機可以包括將與在主機處發(fā)起的命令(也稱為請求)相關聯(lián)的邏輯地址轉換為包括兩個物理地址的命令的閃存轉換層。如上所述,所述兩個物理地址可以基于所述單個邏輯地址和所述閃存轉換層操作。
數(shù)據(jù)存儲設備300的管理模塊310可以將n-access存儲在緩沖器360中。管理模塊310可以將n-access轉換為適合于nvm設備(例如,nand閃存存儲器設備)的訪問命令nvm_access。
當?shù)谝晃锢淼刂穚ba1和第二物理地址pba2被包括在n-access的地址列表add_list中時,管理模塊310可以在操作s103中生成并向第一nvm設備發(fā)送包括第一物理地址pba1的第一訪問命令nvm_access,并且可以在操作s105中生成并向第二nvm設備發(fā)送包括第二物理地址pba2的第二訪問命令nvm_access。每個訪問命令nvm_access可以是寫入命令nvm_write、讀取命令nvm_read或擦除命令nvm_erase,但不限于此。相對于數(shù)據(jù)存儲設備300,每個訪問命令nvm_access可以被稱為內部訪問命令。
在向第一nvm設備發(fā)送第一訪問命令nvm_access以及向第二nvm設備發(fā)送第二訪問命令nvm_access之后,在操作s107中,管理模塊310可以向主機200發(fā)送n-access的確認ack。
以上述方式,數(shù)據(jù)存儲設備300可以從數(shù)據(jù)存儲設備(例如,主機200)外部的設備接收外部多訪問命令,其中所述外部多訪問命令包括第一地址和第二地址。基于所述外部多訪問命令,將第一訪問命令提供給第一非易失性存儲器,第一訪問命令包括第一地址,以及將第二訪問命令提供給第二非易失性存儲器,第二訪問命令包括第二地址。然后,使用第一訪問命令和第一地址在第一非易失性存儲器設備上運行第一訪問操作,以及使用第二訪問命令和第二地址在第二非易失性存儲器設備上運行第二訪問操作。
圖7是根據(jù)本發(fā)明構思的一些實施例的數(shù)據(jù)處理系統(tǒng)100的多寫入方法的流程圖。圖8a是根據(jù)本發(fā)明構思的一些實施例的多訪問命令(諸如圖7中所示的n-write)的示圖。圖8b是根據(jù)本發(fā)明構思的其它實施例的多訪問命令(諸如圖7中所示的n-write)的示圖。
參考圖1至圖8b,在操作s110中,主機200向數(shù)據(jù)存儲設備300發(fā)送多訪問命令(n-write),并且數(shù)據(jù)存儲設備300的管理模塊310從主機200接收n-write。多訪問命令指定至少兩個地址(例如,物理塊地址),使得使用單個命令在所述至少兩個物理塊地址上執(zhí)行操作。為了在至少兩個物理塊地址執(zhí)行數(shù)據(jù)寫入、讀取或擦除操作,通常需要至少兩個單獨的命令或至少兩次命令。然而,根據(jù)本發(fā)明構思的實施例,使用最初在主機200和數(shù)據(jù)存儲設備300之間定義的多訪問命令(例如,n-write),使得使用單個命令在至少兩個不同的物理塊地址上能夠執(zhí)行訪問操作。例如,在主機200和數(shù)據(jù)存儲設備300之間傳輸?shù)膶懭朊羁梢园ㄅc兩個不同的各自存儲器塊相關聯(lián)的至少兩個不同的物理地址。
例如,主機200可以使得數(shù)據(jù)存儲設備300能夠使用單個命令(例如,n-write)在n個不同的物理塊地址上執(zhí)行訪問操作。參考圖8a,命令40a可以包括命令標識符41、操作碼(opcode)42、數(shù)據(jù)指針43、復制/拆分標志47和地址列表。命令40a還可以包括可選的壓縮標志(未示出)和/或芯片地址(例如,芯片使能,也未示出)。
命令標識符41可以是被唯一定義的數(shù)據(jù),以識別命令。例如,每個命令可以用數(shù)字標識,使得它以后可以與相應的數(shù)據(jù)匹配。例如,來自主機的寫入或擦除命令可以包括命令標識符,這樣,當確認被返回到主機時,其具有相同的標識符,使得主機知道該確認是針對哪個命令/請求的響應。可替代地,來自主機的讀取命令可以包括命令標識符,這樣,當數(shù)據(jù)被返回到主機時,它具有相同的標識符,使得主機知道確認是針對哪個命令/請求的響應。
操作碼42可指定對應于命令的操作。例如,操作可以是正常(例如,單個)讀取操作、多讀取操作、正常(例如,單個)寫入操作、多寫入操作等。操作碼42可以指定命令的類型,使得管理模塊310知道如何處理所述命令。例如,如果操作碼用于正常讀取(例如,使用單個地址),則管理模塊310能夠適當?shù)剞D換用于單訪問的命令、地址和任何數(shù)據(jù)。然而,如果操作碼用于多讀取,則管理模塊310可以轉換用于多訪問的命令、地址和任何數(shù)據(jù)。操作碼在本文中還可以被描述為命令類型指示符。
數(shù)據(jù)指針43可以是指示數(shù)據(jù)在主機200的存儲器225中的位置的地址信息。數(shù)據(jù)指針43可以以鏈表結構連接,但是本發(fā)明構思不限于該實施例。數(shù)據(jù)存儲設備300的管理模塊310可以基于數(shù)據(jù)指針43從主機200的存儲器225讀取數(shù)據(jù)或向主機200的存儲器225寫入數(shù)據(jù)。
可以包括復制/拆分標志47,以便在多訪問的情況下指示相關聯(lián)的數(shù)據(jù)是重復數(shù)據(jù)還是拆分數(shù)據(jù),或者指示兩者都不是(例如,如果命令是單訪問命令)。如下面進一步討論的,在一些情況下,與寫入命令相關聯(lián)的數(shù)據(jù)將被復制并存儲在兩個不同的物理位置。或者,與寫入命令相關聯(lián)的數(shù)據(jù)可以被拆分,使得其一部分存儲在第一物理位置,并且剩余部分存儲在第二物理位置。盡管描述了兩個位置,但是這僅是示例,并且可以使用更多位置(例如,三個或更多個)以將數(shù)據(jù)復制或拆分成三個或更多個位置。類似地,對于讀取命令,能夠讀取的數(shù)據(jù)是存儲在多個位置中的重復數(shù)據(jù),或者可替代地,是存儲在多個位置中的分割數(shù)據(jù)?;趶椭?拆分標志47的值,管理模塊310控制如何處理輸入或輸出的命令和/或數(shù)據(jù)。
地址列表可以包括至少兩個,即,n個物理地址。例如,地址列表可以包括第一物理地址44和第二物理地址45。物理地址44和45中的每一個可以包括數(shù)據(jù)存儲設備300中將被寫入數(shù)據(jù)的物理塊的起始地址(start_address)441或451和物理塊的數(shù)量443或453。可替代地,每個物理地址44或45可以包括數(shù)據(jù)存儲設備300中將被寫入數(shù)據(jù)的物理塊的start_address441或451以及結束地址(未示出)。因此,包括在地址列表中的每個物理地址可以以各種形式包括用于指定將被寫入數(shù)據(jù)的物理塊的位置的信息。
雖然未示出,但是命令中的附加字段可以指示芯片地址(例如,以芯片使能數(shù)據(jù)的形式)。因此,如果與外部多訪問命令相關聯(lián)的兩個物理地址對應于第一芯片處的第一物理地址和第二芯片處的第二物理地址,則兩個芯片地址可以包括在命令40a中。在一個實施例中,這樣的芯片地址被包括在與start_addresses相同的字段中,例如作為附加到開始地址的附加位。然而,芯片地址不需要不同,并且在外部多訪問命令中的不同的物理地址是用于同一芯片中的不同塊的情況下,芯片地址可以是相同的芯片地址。在一些實施例中,不同的物理地址對應于兩個不同芯片內的相同的相對(relative)物理地址,但是兩個不同的芯片地址。
同樣未示出,命令中的附加字段可以包括壓縮/解壓縮代碼。例如,基于響應于多訪問命令是否以及如何壓縮或解壓縮數(shù)據(jù),能夠使用數(shù)據(jù)壓縮/解壓縮代碼。
參考圖8b,n-write40b可以包括命令標識符41、操作碼42、地址列表和數(shù)據(jù)46。盡管未示出,但其也可以包括諸如圖8a中所示的多訪問標志、以及芯片地址/多芯片地址,和/或壓縮/解壓縮標志。圖8b中所示的n-write40b類似于圖8a中所示的n-write40a,因此將描述它們之間的差異以避免冗余。
盡管圖8a中所示的n-write40a包括數(shù)據(jù)指針43時,圖8b中所示的n-write40b包括將要被寫入數(shù)據(jù)存儲設備300的數(shù)據(jù)46。n-write40a或40b可以具有數(shù)據(jù)包(packet)形式,但是本發(fā)明構思不限于這些實施例。
返回參考圖7,數(shù)據(jù)存儲設備300的管理模塊310可以接收n-write,并且還可以接收并且將包括在n-write中的寫入數(shù)據(jù)wdat存儲在緩沖器360中。n-write可以是包括單個命令標識符的單個命令??商娲?,管理模塊310可以從由圖8a中所示的n-write中包括的數(shù)據(jù)指針43指定的主機200的存儲器225中讀取寫入數(shù)據(jù)wdat,并且可以將寫入數(shù)據(jù)wdat存儲在緩沖器360中。
管理模塊310將n-write(外部命令)轉換為適合于nvm設備(例如,nand閃存設備)的寫入命令nvm_write(例如,內部命令)。當?shù)谝缓偷诙锢淼刂穚ba1和pba2包括在n-write的地址列表add_list中時,在操作s120中,管理模塊310可以生成并向第一nvm設備發(fā)送包括第一物理地址pba1的第一寫入命令nvm_write,并且可以在操作s130中生成并向第二nvm設備發(fā)送包括第二物理地址pba2的第二寫入命令nvm_write。第一和第二nvm設備可以是分別連接到不同通道(例如,如圖2中所示的cha和chb)的nvm設備,例如410-1和410-2。因此,操作s120和s130可以并行(例如,同時)執(zhí)行。
寫入第一nvm設備的第一數(shù)據(jù)dat1和寫入第二nvm設備的第二數(shù)據(jù)dat2是基于從主機200接收的寫入數(shù)據(jù)wdat。例如,第一數(shù)據(jù)dat1和第二數(shù)據(jù)dat2可以是存儲在緩沖器360中的數(shù)據(jù),并且可以從緩沖器360提供給各自的第一和第二非易失性存儲器設備。第一和第二數(shù)據(jù)dat1和dat2中的每一個可以與寫入數(shù)據(jù)wdat相同,可以是寫入數(shù)據(jù)wdat的一部分,可以是寫入數(shù)據(jù)wdat的壓縮數(shù)據(jù),或者可以是寫數(shù)據(jù)wdat的奇偶校驗數(shù)據(jù),但是本發(fā)明構思不限于這些示例。寫入數(shù)據(jù)wdat的壓縮數(shù)據(jù)或奇偶校驗數(shù)據(jù)可以由圖5a中所示的數(shù)據(jù)運算器335生成。
更具體地,在一些實施例中,外部多訪問命令是包括寫入數(shù)據(jù)的多寫入命令,并且所述寫入數(shù)據(jù)的第一部分包括在第一內部訪問命令中(例如,在由管理模塊310轉換并使用第一地址的第一命令中),并且所述寫入數(shù)據(jù)的第二部分而不是所述寫入數(shù)據(jù)的第一部分包括在第二內部訪問命令中(例如,在由管理模塊310轉換并使用第二地址的第二命令中)。在這種情況下,復制/拆分標志47可以指示拆分數(shù)據(jù)。
在一些實施例中,外部多訪問命令是包括寫入數(shù)據(jù)的多寫入命令,并且與所述多寫入命令相關聯(lián)的所有寫入數(shù)據(jù)被包括在第一內部訪問命令中,以及與所述多寫入命令相關聯(lián)的所有數(shù)據(jù)也被包括在第二內部訪問命令中。在這種情況下,復制/拆分標志47可以指示復制數(shù)據(jù)。
根據(jù)上述描述,可以在主機200處發(fā)起并生成多訪問請求,并且可以首先在主機200處(例如,在主機的閃存轉換層處)處理所述多訪問請求以形成多訪問命令。例如,可以執(zhí)行映射操作(例如,使用映射表和電路),其將諸如邏輯地址的第一地址轉換為兩個或更多個第二地址,例如物理地址。所述兩個或更多個第二地址可以彼此不同,并且可以使用諸如結合圖4所描述的閃存轉換層控制來選擇。之后,在數(shù)據(jù)存儲設備處,多訪問命令可以由,例如,管理模塊310,轉換成單獨的第一和第二內部訪問命令。以這種方式,主機200可以向數(shù)據(jù)存儲設備300提供多訪問命令,并且數(shù)據(jù)存儲設備300可以經(jīng)由管理模塊310基于從主機200接收到的命令向數(shù)據(jù)存儲設備300的多個分別的存儲器設備(例如,向多個存儲器設備的不同的物理地址)提供分別的內部多訪問命令。
圖9是用于說明根據(jù)本發(fā)明構思的一些實施例的數(shù)據(jù)處理系統(tǒng)的多寫入操作的示圖。這里,第一數(shù)據(jù)dat1和第二數(shù)據(jù)dat2中的每一個可以與從主機200接收到的寫入數(shù)據(jù)wdat相同。
管理模塊310可以根據(jù)多寫命令(n-write)中的操作碼42和復制/拆分標志47將與從主機200接收到的寫入數(shù)據(jù)wdat相同的數(shù)據(jù)存儲在不同的物理地址(即,第一物理地址和第二物理地址)中。在一些實施例中,操作碼42和復制/拆分標志47可以是相同字段的一部分。由于相同的寫入數(shù)據(jù)wdat存儲在不同的物理地址中,因此可以執(zhí)行所述寫入數(shù)據(jù)wdat的復制或鏡像。
可替代地,第一和第二數(shù)據(jù)dat1和dat2中的一個與所述寫入數(shù)據(jù)wdat相同,另一個可以是所述寫入數(shù)據(jù)wdat的壓縮數(shù)據(jù)或奇偶校驗數(shù)據(jù)。例如,壓縮/解壓縮標志和/或甚至另外的奇偶校驗/錯誤糾正標志可以指示這些。此時,在操作s120中,管理模塊310可以將從主機200接收到的寫入數(shù)據(jù)wdat存儲在第一物理地址中,并且在操作s130中可以將所述寫入數(shù)據(jù)wdat的壓縮數(shù)據(jù)或奇偶校驗數(shù)據(jù)存儲在第二物理地址中。應當注意,當由管理模塊執(zhí)行糾錯或壓縮時,可以在數(shù)據(jù)被復制/拆分之前執(zhí)行,或者在數(shù)據(jù)被復制/拆分之后執(zhí)行。通常,以遠小于用于ssd的頁面/塊的大小為單位(例如,1k的單位)執(zhí)行糾錯(例如,使用糾錯碼,“ecc”)。因此,在這種情況下,可以在復制或拆分數(shù)據(jù)之前或之后以多個步驟執(zhí)行ecc。
圖10是用于解釋根據(jù)本發(fā)明構思的其它實施例的數(shù)據(jù)處理系統(tǒng)的多寫入操作的示圖。管理模塊310可以根據(jù)多寫入命令(n-write)中的操作碼42和復制/拆分標志47將從主機200接收到的寫入數(shù)據(jù)wdat分為至少兩段dat1’和dat2’,并且可以將段dat1’和dat2’分別存儲在不同的物理地址中,即,第一物理地址和第二物理地址(在操作s120和s130中)。例如,復制/拆分標志47可以指示與多訪問命令相關聯(lián)的數(shù)據(jù)的第一部分應當被寫入數(shù)據(jù)存儲設備的第一存儲器設備而不是數(shù)據(jù)存儲設備的第二存儲器設備,以及與所述多訪問命令相關聯(lián)的數(shù)據(jù)的第二部分應當被寫入第二存儲器設備而不是第一存儲器設備。第一段dat1’可以是所述寫入數(shù)據(jù)wdat的前半部分,第二段dat2’可以是所述寫入數(shù)據(jù)wdat的后半部分。
在操作s120中將第一寫入命令nvm_write發(fā)送到第一nvm設備并且在操作s130中將第二寫入命令nvm_write發(fā)送到第二nvm設備之后,管理模塊310可以將n_write的確認ack發(fā)送到主機200。
圖11是根據(jù)本發(fā)明構思的一些實施例的數(shù)據(jù)處理系統(tǒng)的多讀取方法的流程圖。參考圖1至圖5b以及圖11,在操作s210中,主機200向數(shù)據(jù)存儲設備300發(fā)送多讀取命令(n-read),并且數(shù)據(jù)存儲設備300的管理模塊310在操作s210中從主機200接收n-read。主機可以首先生成多讀取請求,并且例如使用諸如上述的映射表和電路將所述多讀取請求轉換為包括兩個地址的多讀取命令。
n-read指定至少兩個(例如,n個)物理塊地址,使得使用單個命令在所述至少兩個物理塊地址上執(zhí)行讀取操作。根據(jù)本發(fā)明構思的實施例,使用最初在主機200和數(shù)據(jù)存儲設備300之間定義的n-read,使得利用單個命令(例如,具有單個命令標識符)在至少兩個不同的物理塊地址上能夠執(zhí)行讀取操作。
n-read可以類似于圖8a或8b中所示的n-write。類似于圖8a或8b中所示的n-write40a或40b,n-read可以包括命令標識符41、操作碼42、復制/拆分標志47、壓縮/解壓縮標志以及地址列表44和45(以及可選的芯片地址字段)。然而,n-read可以不同于n-write,因為n-read不包括數(shù)據(jù)指針43以及將要被寫入數(shù)據(jù)存儲設備300的數(shù)據(jù)46。
數(shù)據(jù)存儲設備300的管理模塊310可以接收n-read并將其存儲在緩沖器360中。管理模塊310可以將n-read轉換為適合于nvm設備(例如,nand閃存器件)的讀取命令nvm_read。
當?shù)谝缓偷诙锢淼刂穚ba1和pba2被包括在n-read的地址列表add_list中時,在操作s220中,管理模塊310可以生成并向第一nvm設備發(fā)送包括第一物理地址pba1的第一讀取命令nvm_read,并且在操作s240中可以生成并向第二nvm設備發(fā)送包括第二物理地址pba2的第二讀取命令nvm_read。第一和第二nvm設備可以是分別連接到不同通道(例如,如圖2所示的cha和chb)的nvm設備,例如410-1和410-2。因此,操作s220和s240可以并行(例如,同時)執(zhí)行。
在操作s230中,第一nvm設備可以響應于第一讀取命令nvm_read從第一物理地址pba1讀取第一數(shù)據(jù)dat1,并且將第一數(shù)據(jù)dat1發(fā)送到管理模塊310。在操作s250中,第二nvm裝置可以響應于第二讀取命令nvm_read從第二物理地址pba2讀取第二數(shù)據(jù)dat2,并且將第二數(shù)據(jù)dat2發(fā)送到管理模塊310。操作s230和s250可以并行執(zhí)行。
管理模塊310可以將分別從第一和第二nvm設備讀取的第一和第二數(shù)據(jù)dat1和dat2臨時存儲在緩沖器360中。在操作s260中,管理模塊310可以基于第一和第二數(shù)據(jù)dat1和dat2,將讀取數(shù)據(jù)rdat傳輸?shù)街鳈C200。
傳輸?shù)街鳈C200的讀取數(shù)據(jù)rdat可以是第一和第二數(shù)據(jù)dat1和dat2的組合。例如,當根據(jù)n-write和指示拆分數(shù)據(jù)的復制/拆分標志,從主機200接收到的寫入數(shù)據(jù)wdat已經(jīng)被分成第一和第二數(shù)據(jù)dat1和dat2,并且被分別存儲在第一和第二物理地址pba1和pba2處時,主機200可以在將n-read發(fā)送到數(shù)據(jù)存儲設備300之前將n-read中的操作碼42設置為特定值。在操作s260中,根據(jù)n-read,數(shù)據(jù)存儲設備300可以分別從第一和第二物理地址pba1和pba2讀取第一和第二數(shù)據(jù)dat1和dat2,并且將通過組合第一和第二數(shù)據(jù)dat1和dat2而獲得的讀取數(shù)據(jù)rdat發(fā)送到主機200。
圖12是根據(jù)本發(fā)明構思的其它實施例的數(shù)據(jù)處理系統(tǒng)的多讀取方法的流程圖。圖12中所示的多讀取方法類似于圖11中所示的多讀取方法;因此將主要描述它們之間的差異。
在圖12中所示的實施例中,傳輸?shù)街鳈C200的讀取數(shù)據(jù)rdat可以是第一數(shù)據(jù)dat1或第二數(shù)據(jù)dat2。在這種情況下,當相同的數(shù)據(jù)被存儲在不同的物理地址用于數(shù)據(jù)復制或鏡像(例如,復制/拆分標志指示復制)時,只有從所述不同的物理地址讀取的數(shù)據(jù)之一被傳輸?shù)街鳈C200。同時,管理模塊310可以將來自不同的物理地址的數(shù)據(jù)dat1和dat2中最早讀取的數(shù)據(jù)(例如,具有更快的讀取速度的數(shù)據(jù))發(fā)送到主機200。以這種方式,管理電路被配置為基于第一非易失性存儲器設備的數(shù)據(jù)讀取速度和第二非易失性存儲器設備的數(shù)據(jù)讀取速度,在將從第一非易失性存儲器設備讀取的第一數(shù)據(jù)發(fā)送到主機以及將從第二非易失性存儲器設備讀取的第二數(shù)據(jù)發(fā)送到主機之間進行選擇。
在一個實施例中,例如,在操作s255中,不使用復制/拆分標志,管理模塊310可以比較從不同的物理地址讀取的第一和第二數(shù)據(jù)dat1和dat2。當?shù)谝缓偷诙?shù)據(jù)dat1和dat2彼此相同時,在操作s260’中,可以僅將第一和第二數(shù)據(jù)dat1和dat2中的一個傳輸?shù)街鳈C200。當?shù)谝缓偷诙?shù)據(jù)dat1和dat2彼此不同時,兩個數(shù)據(jù)可以作為重新組合、先前分割的數(shù)據(jù)被發(fā)送到主機200。
管理模塊310可以使用圖5a中所示的ecc引擎325來糾正將要存儲在存儲器設備集群400中的數(shù)據(jù)中的錯誤和/或從存儲器設備集群400輸出的數(shù)據(jù)中的錯誤。
管理模塊310可以對第一數(shù)據(jù)dat1或第二數(shù)據(jù)dat2執(zhí)行預定的數(shù)據(jù)處理。例如,當?shù)诙?shù)據(jù)dat2是第一數(shù)據(jù)dat1的壓縮數(shù)據(jù)時,管理模塊310可以解壓縮第二數(shù)據(jù)dat2以獲得解壓縮數(shù)據(jù)。當?shù)诙?shù)據(jù)dat2是第一數(shù)據(jù)dat1的奇偶校驗數(shù)據(jù)時,管理模塊310可以將第一數(shù)據(jù)dat1的奇偶校驗數(shù)據(jù)與已經(jīng)被讀取的第二數(shù)據(jù)dat2進行比較,并且當?shù)谝粩?shù)據(jù)dat1的奇偶校驗數(shù)據(jù)與第二數(shù)據(jù)dat2相同時,可以將第一數(shù)據(jù)dat1作為讀取數(shù)據(jù)rdat傳輸?shù)街鳈C200。
圖13是用于解釋根據(jù)本發(fā)明構思的一些實施例的數(shù)據(jù)處理系統(tǒng)的多讀取操作的示圖。在圖13所示的實施例中,n-read可以包括地址列表add_list,所述地址列表add_list包括三個不同物理地址。
響應于n-read,數(shù)據(jù)存儲設備300的管理模塊310可以從分別具有三個不同的物理地址的nvm設備410-1b、410-2b和410-3b中分別讀取第一至第三數(shù)據(jù)dat1、dat2和dat3。三個nvm設備可以是不同類型的設備。例如,nvm設備410-1b可以是三級單元(tlc)nand;nvm設備410-2b可以是單級單元(slc)nand;nvm設備410-3b可以是多級單元(mlc)nand。
管理模塊310可以將第一至第三數(shù)據(jù)dat1、dat2和dat3的組合傳輸?shù)街鳈C200??商娲?,管理模塊310可以將第一至第三數(shù)據(jù)dat1、dat2和dat3中的一個發(fā)送到主機200。
在圖7和圖9至圖13中所示的實施例中,數(shù)據(jù)經(jīng)由管理模塊310在主機200和nvm設備之間傳遞。然而,在其它實施例中,數(shù)據(jù)可以不通過管理模塊310而直接在主機200和nvm設備之間直接傳遞。
圖14是用于解釋根據(jù)本發(fā)明構思的一些實施例的數(shù)據(jù)處理系統(tǒng)的多擦除方法的示圖。參考圖1至圖14,在操作s310中,主機200向數(shù)據(jù)存儲設備300發(fā)送多擦除命令(n-erase),并且數(shù)據(jù)存儲設備300的管理模塊310在操作s310中從主機200接收n-erase。n-erase指定至少兩個物理塊地址,使得使用單個命令在所述至少兩個物理塊地址上執(zhí)行擦除操作。如上所述的類似的轉換和標志可用于n-erase。根據(jù)本發(fā)明構思的實施例,使用最初在主機200和數(shù)據(jù)存儲設備300之間定義的n-erase,使得使用單個命令在至少兩個不同的物理塊地址上能夠執(zhí)行擦除操作。
n-erase可以類似于圖8a或8b中所示的n-write。類似于圖8a或8b中所示的n-write40a或40b,n-erase可以包括命令標識符41、操作碼42和地址列表44和45。然而,如同n-read,n-erase可以不包括數(shù)據(jù)指針43和將要被寫入數(shù)據(jù)存儲設備300的數(shù)據(jù)46,并且還可以不包括復制/拆分標志47和壓縮/解壓縮標志。
數(shù)據(jù)存儲設備300的管理模塊310可以接收n-erase并將其存儲在緩沖器360中。管理模塊310可以將n-erase轉換為適合于nvm設備(例如,nand閃存器件)的擦除命令nvm_erase。
當?shù)谝缓偷诙锢淼刂穚ba1和pba2包括在n-erase的地址列表add_list中時,在操作s320中,管理模塊310可以生成并向第一nvm設備發(fā)送包括第一物理地址pba1的第一擦除命令nvm_erase,并且可以在操作s330中生成并向第二nvm設備發(fā)送包括第二物理地址pba2的第二擦除命令nvm_erase。第一和第二nvm設備可以是分別連接到不同通道(例如,如圖2中所示的cha和chb)的nvm設備,例如410-1和410-2。因此,操作s320和s330可以并行(例如,同時)執(zhí)行。
響應于第一擦除命令nvm_erase,第一nvm裝置可以擦除對應于第一物理地址pba1的塊。響應于第二擦除命令nvm_erase,第二nvm設備可以擦除對應于第二物理地址pba2的塊。
在操作s320中將第一擦除命令nvm_erase發(fā)送到第一nvm設備以及在操作s330中將第二擦除命令nvm_erase發(fā)送到第二nvm設備之后,在操作s340中,管理模塊310可以將n-erase的確認ack發(fā)送到主機200。
根據(jù)上述實施例,數(shù)據(jù)存儲設備可以從數(shù)據(jù)存儲設備外部的設備接收外部多訪問命令。所述外部多訪問命令可以包括第一地址和第二地址??梢曰谒鐾獠慷嘣L問命令向數(shù)據(jù)存儲設備的第一非易失性存儲器提供第一訪問命令(例如,由所述數(shù)據(jù)存儲設備生成)。例如,第一訪問命令可以包括第一地址。之后,使用第一訪問命令和第一地址在第一非易失性存儲器設備上運行第一訪問操作??梢曰谒鐾獠慷嘣L問命令向第二非易失性存儲器提供第二訪問命令(例如,由所述數(shù)據(jù)存儲設備生成)。例如,第二訪問命令可以包括第二地址。使用第二訪問命令和第二地址在第二非易失性存儲器設備上運行第二訪問操作。所述多訪問命令可以包括單個命令標識符。此外,可以同時運行第一訪問操作和第二訪問操作。
如上所述,可以利用從主機200發(fā)送到數(shù)據(jù)存儲設備300的單個多訪問命令將數(shù)據(jù)寫入到至少兩個存儲區(qū)域、從其中讀取數(shù)據(jù)或從其中擦除數(shù)據(jù)。因此,與通常需要至少兩次命令傳輸?shù)某R?guī)數(shù)據(jù)處理系統(tǒng)相比,根據(jù)本發(fā)明的一些實施例的數(shù)據(jù)處理系統(tǒng)能夠有效地使用帶寬,從而降低功耗。
圖15是根據(jù)本發(fā)明構思的某些實施例的數(shù)據(jù)處理系統(tǒng)500的框圖。參考圖1至圖15,數(shù)據(jù)處理系統(tǒng)500可以包括數(shù)據(jù)庫520、數(shù)據(jù)庫服務器530、第二網(wǎng)絡540以及多個客戶端計算機550和551。數(shù)據(jù)庫520和數(shù)據(jù)庫服務器530可以包括在數(shù)據(jù)中心510。數(shù)據(jù)中心510可以是因特網(wǎng)數(shù)據(jù)中心或云數(shù)據(jù)中心。
數(shù)據(jù)庫520可以包括多個數(shù)據(jù)存儲設備300。數(shù)據(jù)存儲設備300可以安裝在機架中。數(shù)據(jù)存儲設備300的結構和操作基本上與上面結合圖1至11所描述的數(shù)據(jù)存儲設備300的結構和操作大體相同或類似。
數(shù)據(jù)庫服務器530可以控制每個數(shù)據(jù)存儲設備300的操作。數(shù)據(jù)庫服務器530可以執(zhí)行圖1中所示的主機200的功能。數(shù)據(jù)庫服務器530可以通過第一網(wǎng)絡535,例如,局域網(wǎng)(lan),連接到第二網(wǎng)絡540,例如,因特網(wǎng)或wi-fi??蛻舳擞嬎銠C550和551可以經(jīng)由第二網(wǎng)絡540連接到數(shù)據(jù)庫服務器530。
圖16和圖17是包括根據(jù)本發(fā)明構思的一些實施例的包括數(shù)據(jù)存儲設備300的數(shù)據(jù)處理系統(tǒng)900和900’的框圖。參考圖16,數(shù)據(jù)處理系統(tǒng)900可以包括數(shù)據(jù)存儲設備300、電源910、cpu920、ram930、用戶接口940和系統(tǒng)總線950,所述系統(tǒng)總線與元件300、910、920、930和940彼此電連接。
cpu920控制數(shù)據(jù)處理系統(tǒng)900的整體操作。ram930存儲數(shù)據(jù)處理系統(tǒng)900的操作所需的信息。用戶接口940提供數(shù)據(jù)處理系統(tǒng)900和用戶之間的接口。電源910向內部元件,即cpu920、ram930、用戶接口940和數(shù)據(jù)存儲設備300供電。
cpu920可以對應于主機200,數(shù)據(jù)存儲設備300可以響應于來自主機200的多訪問命令(n-access)而在不同的物理地址上執(zhí)行訪問操作。
圖17中所示的數(shù)據(jù)處理系統(tǒng)900’類似于圖16中所示的數(shù)據(jù)處理系統(tǒng)900;因此將主要描述其間的差異以避免冗余。與圖16中所示的數(shù)據(jù)處理系統(tǒng)900相比,圖17中所示的數(shù)據(jù)處理系統(tǒng)900’還包括獨立冗余磁盤陣列(raid)控制卡960。多個數(shù)據(jù)存儲設備300-1至300-k(其中“k”是至少為2的整數(shù))可以不直接與主機(即cpu920)接口,但是它們可以安裝在raid控制卡960上,并且可以經(jīng)由raid控制卡960與主機920對接。
分別在圖16和17中所分別示出的數(shù)據(jù)處理系統(tǒng)900和900’的每一個可以是計算機、pda、蜂窩電話、智能電話、mp3播放器、pmp、汽車導航系統(tǒng)或mid,但不限于這些示例。
如上所述,根據(jù)本發(fā)明構思的一些實施例,最初在主機和數(shù)據(jù)存儲設備之間定義的多訪問命令用于使用單個命令傳輸多個地址和數(shù)據(jù),使得數(shù)據(jù)存儲設備的數(shù)據(jù)處理效率增加,并且主機和數(shù)據(jù)存儲設備之間的數(shù)據(jù)傳輸效率也提高。結果,降低了數(shù)據(jù)存儲設備和包括數(shù)據(jù)存儲設備的數(shù)據(jù)處理系統(tǒng)的功耗。
盡管已經(jīng)參考本發(fā)明的示例性實施例具體示出和描述了本發(fā)明構思,但是本領域普通技術人員將理解,可以在形式和細節(jié)上進行各種改變,而不脫離附加的權利要求精神和范圍。