專利名稱:用于在快閃存儲器數(shù)據(jù)存儲裝置中存儲數(shù)據(jù)的方法及設備的制作方法
技術領域:
本說明涉及一種數(shù)據(jù)存儲裝置。
背景技術:
可使用數(shù)據(jù)存儲裝置來存儲數(shù)據(jù)。數(shù)據(jù)存儲裝置可與計算裝置一同使用以提供所述計算裝置的數(shù)據(jù)存儲需要。在某些實例中,可期望在數(shù)據(jù)存儲裝置上存儲大量數(shù)據(jù)。此外,可期望快速地執(zhí)行從所述數(shù)據(jù)存儲裝置讀取數(shù)據(jù)及向所述數(shù)據(jù)存儲裝置寫入數(shù)據(jù)的命令。
發(fā)明內容
在第一一般方面中,揭示一種在包括多個存儲器芯片的快閃存儲器數(shù)據(jù)存儲裝置中存儲數(shù)據(jù)的方法。所述方法包括確定所述數(shù)據(jù)存儲裝置中的存儲器芯片的數(shù)目;經(jīng)由耦合到所述數(shù)據(jù)存儲裝置的主機,界定所述數(shù)據(jù)存儲裝置的第一分區(qū),其中所述第一分區(qū)包括所述多個存儲器芯片的第一子集;及經(jīng)由耦合到所述數(shù)據(jù)存儲裝置的主機,界定所述數(shù)據(jù)存儲裝置的第二分區(qū),其中所述第二分區(qū)包括所述多個存儲器芯片的第二子集。在從所述第二分區(qū)讀取數(shù)據(jù)的同時將第一數(shù)據(jù)寫入到所述第一分區(qū),且在從所述第一分區(qū)讀取數(shù)據(jù)的同時將第一數(shù)據(jù)寫入到所述第二分區(qū)。實施方案可包括以下特征中的一者或一者以上。舉例來說,可在讀取數(shù)據(jù)的同時將第二數(shù)據(jù)寫入到所述第一分區(qū),且可在從所述第一分區(qū)讀取數(shù)據(jù)的同時將第二數(shù)據(jù)寫入到所述第二分區(qū),且對于N =第3到至少第10或至少低100或至少第1000 可在從所述第二分區(qū)讀取數(shù)據(jù)的同時將N數(shù)據(jù)寫入到所述第一分區(qū),且可在從所述第一分區(qū)讀取數(shù)據(jù)的同時將N數(shù)據(jù)寫入到所述第二分區(qū)。確定所述數(shù)據(jù)存儲裝置中的存儲器芯片的數(shù)目可包括將指示所述數(shù)據(jù)存儲裝置中的存儲器芯片的所述數(shù)目的信息從所述數(shù)據(jù)存儲裝置傳輸?shù)剿鲋鳈C,且所述所傳輸信息可包括關于所述數(shù)據(jù)存儲裝置的物理架構的信息,其中包括關于所述數(shù)據(jù)存儲裝置的特定存儲器芯片與特定通道之間的連接的信息??稍谒鲋鳈C中界定所述數(shù)據(jù)存儲裝置中的將從所述主機向其寫入數(shù)據(jù)的地址位置,其中所述地址位置規(guī)定將所述數(shù)據(jù)寫入到所述多個存儲器芯片中的特定一者。所述數(shù)據(jù)存儲裝置可包括用于在所述主機與所述多個存儲器芯片之間傳遞數(shù)據(jù)的多個物理通道,其中每一通道可操作地連接到不同多個所述存儲器芯片,且所述方法進一步包括確定所述物理通道的數(shù)目;確定所述數(shù)目個通道的第一子集,其中通道的所述第一子集中的通道僅可操作地連接到存儲器芯片的所述第一子集中的存儲器芯片;及確定所述數(shù)目個通道的第二子集,其中通道的所述第二子集中的通道僅可操作地連接到存儲器芯片的所述第二子集中的存儲器芯片。可在所述主機中界定所述數(shù)據(jù)存儲裝置中的將從所述主機向其寫入數(shù)據(jù)的地址位置,其中所述地址位置規(guī)定經(jīng)由特定通道將所述數(shù)據(jù)寫入到所述多個存儲器芯片中的特定一者。另外,所述數(shù)據(jù)存儲裝置可包括用于在所述主機與所述多個存儲器芯片之間傳遞數(shù)據(jù)的多個物理通道,且所述方法可進一步包括確定所述物理通道的數(shù)目,其中所述所確定通道可操作地連接到存儲器芯片的所述第一子集中的所述存儲器芯片且可操作地連接到存儲器芯片的所述第二子集中的存儲器芯片。所述第一子集可不包括所述第二子集中的任何存儲器芯片,且所述第二子集可不包括所述第一子集中的任何存儲器芯片。所述方法可進一步包括接收所述第一分區(qū)的存儲器芯片已出故障或可能要出故障的指示;經(jīng)由耦合到所述數(shù)據(jù)存儲裝置的所述主機將所述數(shù)據(jù)存儲裝置的所述第一分區(qū)重新界定為包括所述多個存儲器芯片的第三子集,其中所述第三子集不同于所述第一子集,且其中所述第三子集不包括所述第二子集中的任何存儲器芯片,且其中所述第二子集不包括所述第三子集中的任何存儲器芯片。重新界定所述第一分區(qū)可包括將所述第三子集界定為所述第一子集的除已出故障或接近出故障的所述存儲器芯片以外的存儲器芯片。在另一一般方面中,一種設備包括快閃存儲器數(shù)據(jù)存儲裝置,其包括多個存儲器芯片;及主機,其經(jīng)由接口可操作地耦合到所述數(shù)據(jù)存儲裝置。所述主機包括配置檢測引擎,其經(jīng)配置以檢測所述數(shù)據(jù)存儲裝置中的存儲器芯片的數(shù)目;分區(qū)引擎;及驅動器。所述分區(qū)引擎經(jīng)配置以界定所述數(shù)據(jù)存儲裝置的第一分區(qū),其中所述第一分區(qū)包括所述多個存儲器芯片的第一子集;及所述數(shù)據(jù)存儲裝置的第二分區(qū),其中所述第二分區(qū)包括所述多個存儲器芯片的第二子集。所述驅動器經(jīng)配置以將第一數(shù)據(jù)寫入到所述第一分區(qū);在正將所述第一數(shù)據(jù)寫入到所述第一分區(qū)的同時從所述第二分區(qū)讀取數(shù)據(jù);及在從所述第一分區(qū)讀取數(shù)據(jù)的同時將所述第一數(shù)據(jù)寫入到所述第二分區(qū)。實施方案可包括以下特征中的一者或一者以上。舉例來說,所述驅動器可進一步經(jīng)配置以在從所述第二分區(qū)讀取數(shù)據(jù)的同時將第二數(shù)據(jù)寫入到所述第一分區(qū)且在從所述第一分區(qū)讀取數(shù)據(jù)的同時將所述第二數(shù)據(jù)寫入到所述第二分區(qū);及對于N =第3到至少第 10,所述驅動器可進一步經(jīng)配置以在從所述第二分區(qū)讀取數(shù)據(jù)的同時將N數(shù)據(jù)寫入到所述第一分區(qū)且在從所述第一分區(qū)讀取數(shù)據(jù)的同時將所述N數(shù)據(jù)寫入到所述第二分區(qū)。所述數(shù)據(jù)存儲裝置可經(jīng)配置以在從所述主機接收到命令后即刻將指示所述數(shù)據(jù)存儲裝置中的存儲器芯片的所述數(shù)目的信息從所述數(shù)據(jù)存儲裝置傳輸?shù)剿鲋鳈C,且所述所傳輸信息可包括關于所述數(shù)據(jù)存儲裝置的物理架構的信息,其中包括關于所述數(shù)據(jù)存儲裝置的特定存儲器芯片與特定通道之間的連接的信息。所述主機可進一步包括經(jīng)配置以給待寫入到所述數(shù)據(jù)存儲裝置的數(shù)據(jù)指派存儲器地址的地址指派引擎,其中所述所指派存儲器地址規(guī)定將所述數(shù)據(jù)寫入到所述多個存儲器芯片中的特定一者。當所述數(shù)據(jù)存儲裝置包括用于在所述主機與所述多個存儲器芯片之間傳遞數(shù)據(jù)的多個物理通道時,其中每一通道可操作地連接到不同多個所述存儲器芯片,所述配置檢測引擎可進一步經(jīng)配置以檢測所述物理通道的數(shù)目,且所述分區(qū)引擎可進一步經(jīng)配置以 確定所述數(shù)目個通道的第一子集,其中所述第一通道子集中的通道僅可操作地連接到所述第一存儲器芯片子集中的存儲器芯片;及確定所述數(shù)目個通道的第二子集,其中所述第二通道子集中的通道僅可操作地連接到所述第二存儲器芯片子集中的存儲器芯片。所述地址指派引擎可經(jīng)配置以給待寫入到所述數(shù)據(jù)存儲裝置的數(shù)據(jù)指派存儲器地址,其中所述所指派存儲器地址規(guī)定經(jīng)由特定通道將所述數(shù)據(jù)寫入到所述多個存儲器芯片中的特定一者。在另一實施方案中,當所述數(shù)據(jù)存儲裝置包括用于在所述主機與所述多個存儲器芯片之間傳遞數(shù)據(jù)的多個物理通道時,所述多個物理通道可為可操作地連接到所述第一存儲器芯片子集中的存儲器芯片且可操作地連接到所述第二存儲器芯片子集中的存儲器芯片。所述分區(qū)引擎進一步經(jīng)配置以接收所述第一分區(qū)的存儲器芯片已出故障或可能要出故障的指示;將所述數(shù)據(jù)存儲裝置的所述第一分區(qū)重新界定為包括所述多個存儲器芯片的第三子集,其中所述第三子集不同于所述第一子集,且其中所述第三子集不包括所述第二子集中的任何存儲器芯片且其中所述第二子集不包括所述第三子集中的任何存儲器
-H-· I I心片。在附圖及下文說明中闡述一個或一個以上實施方案的細節(jié)。從所述說明及圖式且從權利要求書將明了其它特征。
圖1是數(shù)據(jù)存儲裝置的示范性框圖。圖2是所述數(shù)據(jù)存儲裝置的印刷電路板的示范性透視框圖。圖3A是與圖1的數(shù)據(jù)存儲裝置一同使用的示范性計算裝置的示范性框圖。圖;3B是與圖1的數(shù)據(jù)存儲裝置一同使用的示范性計算裝置的示范性框圖。圖4是圖解說明在圖1的數(shù)據(jù)存儲裝置上存儲數(shù)據(jù)的實例性過程的示范性流程圖。圖5是圖1的數(shù)據(jù)存儲裝置的實例性實施方案的示范性框圖。圖6是圖解說明圖1的數(shù)據(jù)存儲裝置的實例性操作的示范性流程圖。
具體實施例方式本文件描述一種用于數(shù)據(jù)存儲的設備、系統(tǒng)及技術。此數(shù)據(jù)存儲設備可包括可與一個或一個以上不同存儲器板一同使用的控制器的控制器板,其中所述存儲器板中的每一者具有多個快閃存儲器芯片。所述數(shù)據(jù)存儲設備可使用所述控制器板上的接口來與主機進行通信。以此方式,所述控制器板上的所述控制器可經(jīng)配置以使用所述接口來從所述主機接收命令且使用所述存儲器板上的所述快閃存儲器芯片來執(zhí)行這些命令。圖1是數(shù)據(jù)存儲裝置100的框圖。數(shù)據(jù)存儲裝置100可包括控制器板102以及一個或一個以上存儲器板10 及104b。數(shù)據(jù)存儲裝置100可經(jīng)由接口 108與主機106進行通信。接口 108可在主機106與控制器板102之間。控制器板102可包括控制器110、DRAM 111、多個物理通道112、電力模塊114及存儲器模塊116。存儲器板10 及104b可包括所述存儲器板中的每一者上的多個快閃存儲器芯片118a及11汕。存儲器板10 及104b還可包括存儲器裝置120a及120b。
一般來說,數(shù)據(jù)存儲裝置100可經(jīng)配置以將數(shù)據(jù)存儲于快閃存儲器芯片118a及 118b上。主機106可將數(shù)據(jù)寫入到快閃存儲器芯片118a及118b及從快閃存儲器芯片118a 及118b讀取數(shù)據(jù),并且引起將關于快閃存儲器芯片118a及118b執(zhí)行的其它操作。可經(jīng)由控制器板102上的控制器110來處理且由控制器110來控制主機106與快閃存儲器芯片 118a及11 之間的數(shù)據(jù)讀取及寫入以及其它操作??刂破?10可從主機106接收命令且致使使用存儲器板10 及104b上的快閃存儲器芯片118a及11 來執(zhí)行這些命令。主機 106與控制器110之間的通信可經(jīng)由接口 108??刂破?10可使用通道112來與快閃存儲器芯片118a及118b進行通信。控制器板102可包括DRAM 111。DRAM 111可為可操作地耦合到控制器110且可用以存儲信息。舉例來說,DRAM 111可用以存儲邏輯地址到物理地址映射及壞塊信息。DRAM 111還可經(jīng)配置以用作主機106與快閃存儲器芯片118a及11 之間的緩沖器。在一個示范性實施方案中,控制器板102以及存儲器板10 及104b中的每一者為物理上單獨的印刷電路板(PCB)。存儲器板10 可在可操作地連接到控制器板102PCB的一個PCB上。舉例來說,存儲器板10 可物理及/或電連接到控制器板102。類似地,存儲器板104b可為與存儲器板10 分開的PCB且可為可操作地連接到控制器板102PCB。舉例來說,存儲器板 104b可物理及/或電連接到控制器板102。存儲器板10 及104b每一者可單獨地與控制器板102斷開及從控制器板102移除。舉例來說,存儲器板10 可從控制器板102斷開且由另一存儲器板(未展示)替換, 其中所述另一存儲器板可操作地連接到控制器板102。在此實例中,可用其它存儲器板換出存儲器板10 及104b中的任一者或兩者,使得所述其它存儲器板可與同一控制器板102 及控制器110 —同操作。舉例來說,存儲器板104b可物理及/或電連接到控制器板102。在一個示范性實施方案中,控制器板102以及存儲器板10 及104b中的每一者可以磁盤驅動器形狀因數(shù)物理連接。所述磁盤驅動器形狀因數(shù)可包括不同大小,例如(舉例來說)3. 5"磁盤驅動器形狀因數(shù)及2. 5"磁盤驅動器形狀因數(shù)。在一個示范性實施方案中,控制器板102以及存儲器板10 及104b中的每一者可使用高密度球柵陣列(BGA)連接器電連接??墒褂肂GA連接器的其它變化形式,其中包括 (舉例來說)細球柵陣列(FBGA)連接器、超細球柵陣列(UBGA)連接器及微球柵陣列(MBGA) 連接器。也可使用其它類型的電連接構件。接口 108可包括控制器110與主機106之間的高速接口。所述高速接口可使得能夠在主機106與快閃存儲器芯片118a及118b之間快速傳送數(shù)據(jù)。在一個示范性實施方案中,所述高速接口可包括外圍組件互連高速(“PCIe”)接口。舉例來說,所述PCIe接口可為PCIe x4接口或PCIe x8接口。接口 108可包括到主機106的連接器,例如(舉例來說) 外部PCIe連接器電纜組合件。也可使用其它高速接口、連接器及連接器組合件。在一個示范性實施方案中,控制器板102與存儲器板10 及104b上的快閃存儲器芯片118a及11 之間的通信可布置及配置成多個物理通道112。通道112中的每一者可與一個或一個以上快閃存儲器芯片118a及118b通信。控制器110可經(jīng)配置而使得從主機106接收的命令可由控制器110使用通道112中的每一者同時或至少實質上同時執(zhí)行。 以此方式,可在不同物理通道112上同時執(zhí)行多個命令,此可改善數(shù)據(jù)存儲裝置100的吞吐量。
在圖1的實例中,圖解說明二十00)個物理通道112。完全實線圖解說明控制器 110與存儲器板10 上的快閃存儲器芯片118a之間的十(10)個物理通道?;旌系膶嵕€與虛線圖解說明控制器110與存儲器板104b上的快閃存儲器芯片118b之間的十(10)個通道。如圖1中所圖解說明,通道112中的每一者可支持多個快閃存儲器芯片。舉例來說,通道112中的每一者可支持多達32個快閃存儲器芯片。在一個示范性實施方案中,所述20 個通道中的每一者可經(jīng)配置以支持6個快閃存儲器芯片并與其通信。在此實例中,存儲器板10 及104b中的每一者將各自包括60個快閃存儲器芯片。依據(jù)快閃存儲器芯片118a 及118b的類型及數(shù)目,數(shù)據(jù)存儲100裝置可經(jīng)配置以存儲多達多個數(shù)據(jù)太字節(jié)且包括多個數(shù)據(jù)太字節(jié)在內??刂破?10可包括微控制器、FPGA控制器、其它類型的控制器或這些控制器的組合。在一個示范性實施方案中,控制器110為微控制器??梢杂布④浖蛴布c軟件的組合來實施所述微控制器。舉例來說,可從存儲器(例如,存儲器模塊116)給所述微控制器加載計算機程序產(chǎn)品,所述計算機程序產(chǎn)品包括在被執(zhí)行時可致使所述微控制器以某一方式執(zhí)行的指令。所述微控制器可經(jīng)配置以使用接口 108從主機106接收命令且執(zhí)行所述命令。舉例來說,所述命令可包括用以使用快閃存儲器芯片118a及118b讀取、寫入、拷貝及擦除數(shù)據(jù)塊的命令以及其它命令。在另一示范性實施方案中,控制器110為FPGA控制器??梢杂布④浖蛴布c軟件的組合來實施所述FPGA控制器。舉例來說,可從存儲器(例如,存儲器模塊116)給所述FPGA控制器加載固件,所述固件包括在被執(zhí)行時可致使所述FPGA控制器以某一方式執(zhí)行的指令。所述FPGA控制器可經(jīng)配置以使用接口 108從主機106接收命令且執(zhí)行所述命令。舉例來說,所述命令可包括用以使用快閃存儲器芯片118a及118b讀取、寫入、拷貝及擦除數(shù)據(jù)塊的命令以及其它命令。存儲器模塊116可經(jīng)配置以存儲數(shù)據(jù),可將所述數(shù)據(jù)加載到控制器110。舉例來說,存儲器模塊116可經(jīng)配置以存儲FPGA控制器的一個或一個以上圖像,其中所述圖像包括供所述FPGA控制器使用的固件。存儲器模塊116可與主機106介接以與主機106通信。 存儲器模塊116可與主機106直接介接及/或可經(jīng)由控制器110間接與主機106介接。舉例來說,主機106可將固件的一個或一個以上圖像傳遞到存儲器模塊116以進行存儲。在一個示范性實施方案中,存儲器模塊116包括電可擦除可編程只讀存儲器(EEPROM)。存儲器模塊116還可包括其它類型的存儲器模塊。存儲器板10 及104b可經(jīng)配置以與不同類型的快閃存儲器芯片118a及118b — 同操作。在一個示范性實施方案中,快閃存儲器芯片118a及快閃存儲器芯片118b可為相同類型的快閃存儲器芯片,其中包括需要來自電力模塊114的相同電壓及來自相同快閃存儲器芯片銷售商。術語銷售商與制造商在本文件通篇中可互換使用。在另一示范性實施方案中,存儲器板10 上的快閃存儲器芯片118a可為與存儲器板104b上的快閃存儲器芯片118b不同的類型的快閃存儲器芯片。舉例來說,存儲器板 10 可包括SLC NAND快閃存儲器芯片且存儲器板104b可包括MLC NAND快閃存儲器芯片。 在另一實例中,存儲器板10 可包括來自一個快閃存儲器芯片制造商的快閃存儲器芯片且存儲器板104b可包括來自不同快閃存儲器芯片制造商的快閃存儲器芯片。具有全部相同類型的快閃存儲器芯片或具有不同類型的快閃存儲器芯片的靈活性使得能夠使數(shù)據(jù)存儲裝置100適合主機106正在使用的不同應用程序。在另一示范性實施方案中,存儲器板10 及104b可在同一存儲器板上包括不同類型的快閃存儲器芯片。舉例來說,存儲器板10 可在同一 PCB上包括SLC NAND芯片及 MLC NAND芯片兩者。類似地,存儲器板104b可包括SLC NAND芯片及MLC NAND芯片兩者。 以此方式,數(shù)據(jù)存儲裝置100可有利地經(jīng)定制以滿足主機106的規(guī)格。在另一示范性實施方案中,存儲器板10 及104b可包括其它類型的存儲器裝置, 其中包括非快閃存儲器芯片。舉例來說,存儲器板10 及104b可包括隨機存取存儲器 (RAM),例如(舉例來說)動態(tài)RAM (DRAM)及靜態(tài)RAM (SRAM)以及其它類型的RAM及其它類型的存儲器裝置。在一個示范性實施方案中,存儲器板10 及104b兩者可包括RAM。在另一示范性實施方案中,所述存儲器板中的一者可包括RAM且另一存儲器板可包括快閃存儲器芯片。此外,所述存儲器板中的一者可包括RAM及快閃存儲器芯片兩者。存儲器板10 及104b上的存儲器模塊120a及120b可分別用以存儲與快閃存儲器芯片118a及118b相關的信息。在一個示范性實施方案中,存儲器模塊120a及120b可存儲快閃存儲器芯片的裝置特性。所述裝置特性可包括所述芯片為SLC芯片還是MLC芯片、 所述芯片為NAND還是NOR芯片、芯片選擇的數(shù)目、塊的數(shù)目、每塊頁的數(shù)目、每頁字節(jié)的數(shù)目及所述芯片的速度。在一個示范性實施方案中,存儲器模塊120a及120b可包括串行EEPROM。EEPROM 可存儲裝置特性??舍槍θ魏谓o定類型的快閃存儲器芯片匯編一次裝置特性且可用所述裝置特性產(chǎn)生適當EEPROM圖像。當存儲器板10 及104b可操作地連接到控制器板102時, 則可從EEPROM讀取所述裝置特性,使得控制器110可自動辨識控制器110正在控制的快閃存儲器芯片118a及11 的類型。另外,可針對特定類型的快閃存儲器芯片118a及118b 使用所述裝置特性來將控制器110配置成適當參數(shù)。如上文所論述,控制器110可包括FPGA控制器。參照圖2,其圖解說明FPGA控制器210的示范性框圖。FPGA控制器可經(jīng)配置以按上文關于圖1的控制器110所描述的方式操作。FPGA控制器210可包括用以將多個物理通道112連接到快閃存儲器芯片218的多個通道控制器250??扉W存儲器芯片218被圖解說明為連接到通道控制器250中的每一者的多個快閃存儲器芯片。快閃存儲器芯片218表示圖1的快閃存儲器芯片118a及118b, 快閃存儲器芯片118a及118b在圖1的單獨存儲器板10 及104b上。所述單獨存儲器板未在圖2的實例中展示。FPGA控制器210可包括PCIe接口模塊208、雙向直接存儲器存取 (DMA)控制器252、動態(tài)隨機存取存儲器(DRAM)控制器254、命令處理器/隊列256及信息與配置接口模塊258??墒褂媒涌谂c主機(例如,圖1的主機106)傳遞信息。在此實例(圖2)中,F(xiàn)PGA 控制器210包括用以與主機及PCIe接口模塊208通信的PCIe接口。PCIe接口模塊208可經(jīng)布置及配置以從主機接收命令且將命令發(fā)送到主機。PCIe接口模塊208可在主機與數(shù)據(jù)存儲裝置之間提供數(shù)據(jù)流控制。PCIe接口模塊208可使得能夠在主機與控制器210且最終快閃存儲器芯片218之間高速傳送數(shù)據(jù)。在一個示范性實施方案中,PCIe接口及PCIe接口模塊208可包括64位總線。雙向直接存儲器存取DMA控制器252可經(jīng)布置及配置以控制PCIe接口模塊208與命令處理器/隊列256之間的總線的操作。雙向DMA控制器252 可經(jīng)配置以與PCIe接口 208及通道控制器250中的每一者介接。雙向DMA控制器252使得能夠在主機106與快閃存儲器芯片218之間進行雙向直接存儲器存取。DRAM控制器2M可經(jīng)布置及配置以控制邏輯地址到物理地址的翻譯。舉例來說, 在其中主機使用邏輯地址來尋址存儲器空間的實施方案中,DRAM控制器邪4可借助將由主機使用的邏輯地址翻譯成快閃存儲器芯片218中的實際物理地址(與正被寫入到快閃存儲器芯片218或從快閃存儲器芯片218讀取的數(shù)據(jù)相關)來輔助命令處理器/隊列256。從主機接收的邏輯地址可翻譯成快閃存儲器芯片218中的一者中的位置的物理地址。類似地, 快閃存儲器芯片218中的一者中的位置的物理地址可翻譯成邏輯地址且被傳遞到主機。命令處理器/隊列256可經(jīng)布置及配置以經(jīng)由PCIe接口模塊208從主機接收命令且經(jīng)由通道控制器250控制所述命令的執(zhí)行。命令處理器/隊列256可維持待執(zhí)行的若干個命令的隊列且使用有序列表來對所述命令進行排序以確??墒紫忍幚碜罾厦睢C钐幚砥?00可維持指定給同一快閃存儲器芯片的命令的次序且可對指定給不同快閃存儲器芯片的命令進行重新排序。以此方式,可同時執(zhí)行多個命令且可同時或至少實質同時使用通道112中的每一者。命令處理器/隊列256可經(jīng)配置以無序地處理不同通道112的命令且保持按通道命令排序。舉例來說,命令處理器/隊列256可無序地處理從主機接收且指定給不同通道的命令。以此方式,可保持所述通道忙碌??砂疵钐幚砥?隊列256從主機接收命令的次序來處理從主機接收以在同一通道上進行處理的命令。在一個示范性實施方案中,命令處理器/隊列256可經(jīng)配置以將從主機接收的命令列表維持為先進先出排序列表,以確保所述命令的及時執(zhí)行。通道控制器250可經(jīng)布置及配置以處理來自命令處理器/隊列256的命令。通道控制器250中的每一者可經(jīng)配置以處理多個快閃存儲器芯片218的命令。在一個示范性實施方案中,通道控制器250中的每一者可經(jīng)配置以處理多達32個快閃存儲器芯片218(且包括32個快閃存儲器芯片218在內)的命令。通道控制器250可經(jīng)配置以按命令處理器/隊列256指定的次序來處理來自命令處理器/隊列256的命令。可處理的命令的實例包括但不限于讀取快閃頁、編程快閃頁、拷貝快閃頁、擦除快閃塊、讀取快閃塊的元數(shù)據(jù)、映射快閃存儲器芯片的壞塊及復位快閃存儲
器芯片ο信息與配置接口模塊258可經(jīng)布置及配置以與存儲器模塊(例如,圖1的存儲器模塊116)介接以接收FPGA控制器210的配置信息。舉例來說,信息與配置接口模塊258 可從所述存儲器模塊接收一個或一個以上圖像以將固件提供到FPGA控制器210。對所述圖像及對所述固件的修改可由主機經(jīng)由信息與配置接口模塊258提供到控制器210。經(jīng)由信息與配置接口模塊258接收的修改可應用于控制器210的組件中的任一者,其中包括(舉例來說)PCIe接口模塊208、雙向直接存儲器存取DMA控制器252、DRAM控制器254、命令處理器/隊列256及通道控制器250。信息與配置接口模塊258可包括一個或一個以上寄存器,可視需要通過來自主機的指令修改所述一個或一個以上寄存器。FPGA控制器210可經(jīng)布置及配置以結合主機協(xié)作及處理命令。FPGA控制器210 可執(zhí)行或至少輔助執(zhí)行錯誤校正、壞塊管理、邏輯/物理映射、無用單元收集、損耗均衡、與快閃存儲器芯片218相關的分割及低級格式化。圖3A是設備300的示意性框圖,設備300包括具有組織成第一分區(qū)321及第二分區(qū) 322 的多個快閃存儲器芯片 318a、318b、318c、318d、318e、318f、318g、318h、318i、318j、 318k,3181的數(shù)據(jù)存儲裝置302。第一及第二分區(qū)321及322界定數(shù)據(jù)存儲裝置302中的存儲空間的不同物理區(qū)域,使得可將不同種類的目錄及文件分類在不同分區(qū)中,或使得一個分區(qū)可用于不同于另一分區(qū)的目的。第一分區(qū)可包括第一子集快閃存儲器芯片318a到 318f,而第二分區(qū)可包括第二子集快閃存儲器芯片318g到3181,其中不存在任何為兩個分區(qū)的部分的快閃存儲器芯片。也就是說,在個別快閃存儲器芯片之間劃出分區(qū)321與分區(qū) 322之間的邊界,以確保個別快閃存儲器芯片不屬于一個以上分區(qū)。將數(shù)據(jù)存儲裝置組織成兩個或兩個以上分區(qū)可用于若干個目的。舉例來說,可保持存儲于一個分區(qū)上的操作系統(tǒng)文件與存儲于另一分區(qū)上的用戶文件分離??蓜討B(tài)且快速地改變大小(可能使文件系統(tǒng)滿)的高速緩沖存儲器及日志文件可存儲于一個分區(qū)上且保持與存儲于不同分區(qū)上的其它文件分離。分區(qū)可用于多重引導設置,其允許用戶在單個計算機上具有一個以上操作系統(tǒng)。舉例來說,用戶可在同一數(shù)據(jù)存儲裝置的不同分區(qū)上安裝 Linux、Mac OS X及Microsoft Windows或其它操作系統(tǒng)且具有在加電時引導到任何操作系統(tǒng)(由硬件支持)中的選擇??墒褂梅謪^(qū)來保護或隔離文件以使得更容易地恢復遭破壞文件系統(tǒng)或操作系統(tǒng)安裝。舉例來說,如果一個分區(qū)遭破壞但任何其它文件系統(tǒng)均不受影響,那么所述存儲裝置上的數(shù)據(jù)仍可為可挽回的。針對只讀數(shù)據(jù)使用單獨的分區(qū)還減少所述分區(qū)上的文件系統(tǒng)遭破壞的機會。分區(qū)還可提高其中較小文件系統(tǒng)更高效的系統(tǒng)上的總體計算機性能。舉例來說,僅具有一個NTFS文件系統(tǒng)的大硬盤驅動器通常具有非常大的順序存取的主文件表(MFT),且通常比較小分區(qū)的較小MFT花費更多的時間來讀取此MFT。在另一實例性實施例中,數(shù)據(jù)存儲裝置302可用以存儲必須從所述數(shù)據(jù)存儲裝置快速讀取且將其供應到主機的大量數(shù)據(jù)(例如,許多千兆字節(jié)或太字節(jié)的數(shù)據(jù))。舉例來說,所述數(shù)據(jù)存儲裝置可用以高速緩沖存儲大量的公開可存取信息(例如,來自萬維網(wǎng)的網(wǎng)頁的大語料庫、書籍的電子版本的大庫或表示大量電信的數(shù)字信息等),所述大量的公開可存取信息可由主機響應于查詢而提取。因此,可為重要的是響應于主機所發(fā)出的讀取命令而非??焖俚卮嫒〔⒎祷叵嚓P數(shù)據(jù)。然而,還可需要隨相關信息改變而不斷地更新數(shù)據(jù)存儲裝置中所存儲的信息以保持所述信息為最近的。舉例來說,如果存儲裝置上的信息與網(wǎng)頁的語料庫相關,那么可需要隨網(wǎng)頁改變且隨新網(wǎng)頁被創(chuàng)建而更新存儲裝置上所存儲的 fn息ο在此系統(tǒng)中,經(jīng)分割快閃存儲器數(shù)據(jù)存儲裝置302可提供優(yōu)越性能。在快閃存儲器存儲裝置中,到快閃存儲器芯片的寫入操作比從快閃存儲器芯片的讀取操作花費更長的時間(例如,長10到100倍)。在各種實施例中,每一快閃存儲器芯片318a到3181可每個別存儲媒體經(jīng)由單個通信通道31 到321f與主機350進行通信,使得給定快閃存儲器芯片上的單個讀取或寫入(但非兩者)在給定時間框架內。在此實施例中,到存儲媒體的寫入操作可阻擋從同一裝置的可能讀取操作。舉例來說,通過快閃存儲器芯片318a到3181,完成寫入命令所需要的時間或等待時間可遠遠大于完成讀取命令所需要的時間或等待時間。另外,快閃存儲器芯片318a到 3181可招致多個事務以便完成單個寫入操作。此情況的實例可包括“無用單元收集”。因此,將數(shù)據(jù)存儲裝置的芯片318a到3181組織成兩個或兩個以上分區(qū)(其中,在不同芯片之間的邊界處界定所述分區(qū))提供用以確??焖僮x取操作同時還允許實時更新所述數(shù)據(jù)存儲裝置上所存儲的信息的方式。舉例來說,分區(qū)321及322兩者可用以存儲待響應于查詢而提供的大致相同數(shù)據(jù)語料庫(例如,網(wǎng)頁語料庫),且個別分區(qū)可在服務于請求與用新信息更新之間交替。舉例來說,在第一時間周期中,第一分區(qū)321可用以將信息提供到主機(例如,可響應于用戶查詢而請求的信息),同時更新第二分區(qū)322上的數(shù)據(jù)(例如,響應于對語料庫的網(wǎng)頁的改變或增加)。接著,在第二時間周期中,最近經(jīng)更新的第二分區(qū)322可用以將信息提供到主機,同時更新第一分區(qū)321上的數(shù)據(jù)。以此方式,第一分區(qū)上的數(shù)據(jù)可鏡射于第二分區(qū)上,使得第二分區(qū)可維持與第一分區(qū)上的數(shù)據(jù)實質相同的數(shù)據(jù)。為確保兩個分區(qū)維持實質相同的數(shù)據(jù)語料庫且第二分區(qū)通過存儲與第一分區(qū)實質相同的數(shù)據(jù)而鏡射第一分區(qū),主機可將數(shù)據(jù)寫入到第一分區(qū),且接著主機可將被寫入到第一分區(qū)的相同數(shù)據(jù)寫入到第二分區(qū)。主機可執(zhí)行額外操作以確保第二分區(qū)鏡射第一分區(qū)。舉例來說,如果主機從裝置302接收到所述分區(qū)中的任一者上的快閃存儲器芯片已出故障或可能要出故障的指示,那么主機可將對應于所述出故障或即將出故障的芯片上的數(shù)據(jù)的數(shù)據(jù)拷貝到所述分區(qū)的另一芯片上。在一個實施方案中,主機可從不包括所述出故障或即將出故障的芯片的分區(qū)拷貝數(shù)據(jù)。通過準備裝置302上的鏡射分區(qū)321及322,數(shù)據(jù)可總是從充當只讀裝置的分區(qū)來提供,且因此提供對來自主機的讀取命令的非??焖俚捻憫?,而不會因寫入命令減慢,同時正在用新信息更新另一分區(qū)。界定分區(qū)而使得個別快閃存儲器芯片僅包括于一個分區(qū)中確保沒有快閃芯片將具有在實質相同時間向其寫入且從其讀取的數(shù)據(jù),此將導致對來自主機 350的讀取請求的響應的延遲。然而,在另一實施方案中,兩個鏡射分區(qū)之間的邊界不需要沿物理芯片邊界劃出,在此情況下芯片的一些物理存儲器地址可屬于一個分區(qū)且所述芯片的其它物理存儲器地址可屬于另一鏡射分區(qū)。如上文所論述,存儲器芯片318a到3181可連接到可包括FPGA控制器310的控制器。所述FPGA控制器可經(jīng)配置以按上文關于圖1控制器110或圖2的FPGA 210所描述的方式操作。FPGA控制器310可包括用以將多個通道112連接到快閃存儲器芯片318a到 3181的多個通道控制器3Ua、312b、312c、312d、3Ue、312f。當然,如上文所描述,存儲裝置可包括遠多于12個快閃存儲器芯片、遠多于六個通道控制器,且遠多于兩個快閃存儲器芯片可為跨越物理通道可操作地連接到通道控制器。因此,圖3A及圖;3B中所示的實施方案僅為示意性的,以用于說明的清晰性目的。在一個實施方案中,通道控制器312a、312b、312c、312d、312e、312f可控制可操作地連接到為每一分區(qū)321及322的部分的快閃存儲器芯片的通道。舉例來說,通道控制器 31 可為可操作地連接到存儲器芯片318a (其為第一分區(qū)321的部分),且還可操作地連接到存儲器芯片318g(其為第二分區(qū)322的部分)。在此配置中,第一分區(qū)321中的至少一個存儲器芯片連接到數(shù)據(jù)存儲裝置302與主機之間的每一通信通道,且第二分區(qū)322中的至少一個存儲器芯片連接到數(shù)據(jù)存儲裝置302與主機350之間的每一通信通道。此配置產(chǎn)生分區(qū)321或322與主機之間的通信的最大并行性,此可產(chǎn)生從數(shù)據(jù)存儲裝置302的快速讀取存取時間及向數(shù)據(jù)存儲裝置302的快速寫入時間。在另一實施方案中,大約一半通道控制器可為可操作地連接到第一分區(qū)中的快閃存儲器芯片且大約一半通道控制器可為可操作地連接到第二分區(qū)中的快閃存儲器芯片。在圖;3B中所示的另一實施方案中,快閃存儲器芯片318a、3imK318C、318d、318e、318f、318g、318h、318i、318j、318k、3181 可組織成第一分區(qū) 331、第二分區(qū) 332、第三分區(qū) 333及第四分區(qū)334,其中不同分區(qū)界定數(shù)據(jù)存儲裝置302中的存儲空間的不同物理區(qū)域, 使得不同種類的目錄及文件可存儲于不同分區(qū)中,或使得一個分區(qū)可用于不同于另一分區(qū)的目的。第一分區(qū)331可包括第一子集快閃存儲器芯片318a到318c。第二分區(qū)332可包括第二子集快閃存儲器芯片318d到318f。第三分區(qū)333可包括第三子集快閃存儲器芯片 318g到318i。第四分區(qū)3;34可包括第四子集快閃存儲器芯片318j到3181。在一個實施方案中,在不同分區(qū)331、332、333及334當中,不存在任何其物理存儲器地址空間為兩個或兩個以上分區(qū)的部分的快閃存儲器芯片。也就是說,在個別快閃存儲器芯片之間劃出分區(qū) 331、332、333及334之間的邊界,以確保個別快閃存儲器芯片不屬于一個以上分區(qū)。在圖;3B的系統(tǒng)中,經(jīng)分割快閃存儲器數(shù)據(jù)存儲裝置302可提供優(yōu)越性能(例如, 當用以存儲待響應于查詢而提供的數(shù)據(jù)語料庫(例如,網(wǎng)頁語料庫)時)且個別分區(qū)可在服務于請求與用新信息更新之間交替。舉例來說,在第一時間周期中,第一、第二及第三分區(qū)331、332及333可用以將信息提供到主機(例如,可響應于用戶查詢而請求的信息),同時更新第四分區(qū)334上的數(shù)據(jù)(例如,響應于對語料庫的網(wǎng)頁的改變或增加)。接著,在第二時間周期中,最近經(jīng)更新的第四分區(qū)334連同第二及第三分區(qū)332及333可用以將信息提供到主機,同時更新第一分區(qū)331上的數(shù)據(jù)。因此,可以循環(huán)方式更新每一分區(qū)上的數(shù)據(jù),同時由其它分區(qū)服務于查詢請求。可重復此過程,使得數(shù)據(jù)總是從充當只讀裝置的分區(qū)來提供,且因此提供對來自主機的讀取命令的非??焖俚捻憫粫驅懭朊顪p慢,同時正在用新信息更新另一分區(qū)。界定四個分區(qū)產(chǎn)生數(shù)據(jù)存儲裝置上所存儲的信息的冗余, 使得如果一分區(qū)、通道或個別存儲器芯片出故障而導致一個分區(qū)不再可用,那么剩余三個分區(qū)可繼續(xù)用以提供數(shù)據(jù)存儲裝置,其中輪流更新所述剩余分區(qū)中的每一者,同時其它剩余分區(qū)服務于數(shù)據(jù)請求。如上文所描述,數(shù)據(jù)存儲裝置302可經(jīng)由接口 308連接到主機350,接口 308可為高速接口,例如(舉例來說)PCIe接口。主機可包括(舉例來說)處理器352、第一存儲器 354、第二存儲器356、存儲器裝置檢測引擎358及分區(qū)引擎360。第一存儲器3M可包括 (舉例來說)適于存儲可由處理器352執(zhí)行的機器可讀、可執(zhí)行代碼指令的非易失性存儲器裝置(例如,硬磁盤)。第一存儲器邪4上所存儲的代碼指令可加載到第二存儲器(例如, 易失性存儲器,例如隨機存取存儲器)356中,在此處其可由處理器352執(zhí)行以創(chuàng)建存儲器裝置檢測引擎358及分區(qū)引擎360。第二存儲器可包括專用于用戶模式應用程序的“用戶空間” 363的邏輯塊及專用于運行用戶級應用程序必須控制以執(zhí)行其功能的較低級資源的 “核心空間”364的邏輯塊。存儲器裝置檢測引擎358及分區(qū)引擎360可駐存于第二存儲器 356的核心空間364中。存儲器裝置檢測引擎358可經(jīng)配置以檢測數(shù)據(jù)存儲裝置302上的快閃存儲器芯片 318的數(shù)目,且分區(qū)引擎360可經(jīng)配置以界定所述數(shù)據(jù)存儲裝置的第一分區(qū)321及第二分區(qū) 322。因此,在主機350上運行的存儲器裝置檢測引擎358及分區(qū)引擎360可由主機用來發(fā)現(xiàn)數(shù)據(jù)存儲裝置302的硬件裝置性質且接著經(jīng)由主機界定分區(qū)321及322。在一個實施方案中,存儲器裝置檢測引擎358可向數(shù)據(jù)存儲裝置發(fā)出查詢命令,且響應于所述查詢命令, 數(shù)據(jù)存儲裝置可將關于(舉例來說)快閃存儲器芯片318的數(shù)目、每一芯片的大小(例如, 按字節(jié)測量)、數(shù)據(jù)存儲裝置中的通道的數(shù)目及每一通道控制器31 到31 可操作地連接到的快閃存儲器芯片的信息返回到主機。此信息可存儲于控制器板310的EEPROM 116上及/或數(shù)據(jù)存儲裝置302的快閃板的EEPROM 120a上。存儲器裝置檢測引擎可輪詢EEPROM 116或EEPROM 120a(例如,在主機350的啟動操作期間)以致使數(shù)據(jù)存儲裝置將此信息返回到主機350。在另一實施方案中,主機可輪詢快閃存儲器芯片318以提供關于(舉例來說)快閃存儲器芯片318的數(shù)目、每一芯片的大小(例如,按字節(jié)測量)、數(shù)據(jù)存儲裝置中的通道的數(shù)目、每一通道控制器31 到31 可操作地連接到的快閃存儲器芯片的信息。分區(qū)引擎360可從存儲器裝置檢測引擎358接收關于快閃芯片318的數(shù)目、每一快閃芯片的大小、通道的數(shù)目及每一通道可操作地連接到的存儲器芯片的信息,且基于此信息,分區(qū)引擎可界定數(shù)據(jù)存儲裝置302中的第一分區(qū)321及第二分區(qū)322。舉例來說,可按存儲器塊單位來分配每一分區(qū)大小,存儲器塊單位為快閃存儲器中的擦除操作的標準單位。在主機350上運行的分區(qū)引擎可將第一分區(qū)界定為包括從存儲器芯片318的第一子集抽取的存儲器塊及從存儲器芯片318的第二子集抽取的第二分區(qū)存儲器塊,其中所述第一子集不包括所述第二子集中的任何快閃芯片且所述第二子集不包括所述第一子集中的任何快閃芯片。分區(qū)引擎360接著可將物理存儲器塊地址(其可包括(舉例來說)唯一通道編號、唯一快閃存儲器芯片編號及快閃存儲器芯片內的塊地址)映射到可由在用戶空間中運行的應用程序使用的邏輯地址,使得在主機350上運行的用戶空間應用程序可參照邏輯空間地址從數(shù)據(jù)存儲裝置302讀取數(shù)據(jù)及向數(shù)據(jù)存儲裝置302寫入數(shù)據(jù)。在已界定多個分區(qū)的分區(qū)方案且已將數(shù)據(jù)存儲于數(shù)據(jù)存儲裝置100的快閃存儲器芯片上之后,所述裝置可將關于分割方案的信息存儲于(例如)存儲器116上,使得當在稍后時間引導所述裝置時,其可將所述分割方案傳遞到主機106以供主機使用。舉例來說, 所述裝置可維持關于所述數(shù)據(jù)存儲裝置的物理配置的信息(包括所述裝置中的快閃存儲器芯片的數(shù)目)及關于所述分割方案的信息(包括哪些快閃存儲器存儲芯片及通道與存儲器116上的哪些分區(qū)相關聯(lián))。接著,當引導包括主機106及數(shù)據(jù)存儲裝置100的系統(tǒng)時, 存儲裝置100可(例如)響應于由主機106的配置檢測引擎358執(zhí)行的讀取操作而將此信息傳遞到主機106。主機106的分割引擎360接著可界定在主機上運行的操作系統(tǒng)及應用程序的分區(qū)。舉例來說,分割引擎360可基于從存儲裝置100讀取的信息來界定第一及第二分區(qū),其中所述第一及第二分區(qū)不包括相同存儲器芯片中的任一者。分割引擎360還可針對第一及第二分區(qū)分配邏輯/物理存儲器映射,使得在主機上運行的用戶級應用程序可使用邏輯地址,所述邏輯地址接著被映射(例如,在主機的核心空間364中運行的地址指派引擎366)到存儲裝置100的快閃存儲器芯片的物理存儲器地址。分區(qū)引擎360還可用以將數(shù)據(jù)存儲裝置的第一分區(qū)重新界定為包括所述多個快閃存儲器芯片的第三子集,其中所述第三子集不同于所述第一子集,且其中所述第三子集不包括所述第二子集中的任何快閃存儲器芯片且其中所述第二子集不包括所述第三子集中的任何快閃存儲器芯片。舉例來說,參照圖3A及圖:3B,用戶可決定圖3A中所示的原始分區(qū)方案不適合他或她的需要,且因此可使用主機來重新界定分區(qū)321及322(例如,以在特定分區(qū)中包括更多或更少的快閃存儲器芯片)或向所述方案添加額外分區(qū)。在一個實施方案中,第一分區(qū)321可重新界定為分區(qū)331及333。允許用戶經(jīng)由主機界定分區(qū)而非迫使用戶接受由控制器310預界定或預加載于控制器310中的分區(qū)方案給予用戶按照他或她的期望來界定分區(qū)且在需要產(chǎn)生時改變分區(qū)方案的靈活性。在另一實施方案中,主機可檢測快閃存儲器芯片中的一者(例如,318a)的即將來臨的故障,且響應于此信息,分區(qū)引擎可將第一分區(qū)321重新界定為從分區(qū)排除快閃存儲器芯片318a,即重新界定為除存儲器芯片 318a以外的原始界定的第一分區(qū)。因此,可界定任何數(shù)目個分區(qū)(多達存儲裝置100中的快閃存儲器芯片118a及118b的數(shù)目),且分區(qū)方案內的不同分區(qū)可包括不同數(shù)目個快閃存儲器芯片且可包括不同量的存儲器空間。主機還可包括地址指派引擎366,地址指派引擎366可存在于核心364中且可給待寫入到數(shù)據(jù)存儲裝置302的數(shù)據(jù)指派物理存儲器地址。舉例來說,在用戶空間363中運行的應用程序可要求將數(shù)據(jù)從主機350寫入到數(shù)據(jù)存儲裝置302,且用戶空間應用程序可規(guī)定將數(shù)據(jù)寫入到特定邏輯存儲器地址。地址指派引擎366可將邏輯地址翻譯成物理地址, 所述物理地址可包括(舉例來說)應將數(shù)據(jù)寫入到的特定通道、可操作地連接到應將數(shù)據(jù)寫入到其的所述所規(guī)定通道的特定快閃存儲器芯片及應將數(shù)據(jù)寫入到其的所述所規(guī)定存儲器芯片的特定物理塊地址。在此實施方案中,邏輯地址到物理存儲器空間地址的翻譯可由地址指派引擎366來執(zhí)行,使得FPGA 210的DRAM控制器254的作用減小或不相關。一旦已界定所述分區(qū),那么可以將一個分區(qū)的數(shù)據(jù)鏡射于另一分區(qū)上的方式來將數(shù)據(jù)寫入到數(shù)據(jù)存儲裝置310。舉例來說,主機350可包括在存儲器356的核心空間364中操作的裝置驅動器362,其可用以將數(shù)據(jù)傳遞到數(shù)據(jù)存儲裝置310及從數(shù)據(jù)存儲裝置310傳遞數(shù)據(jù)。為在兩個分區(qū)之間鏡射數(shù)據(jù),裝置驅動器362可將來自主機350的第一數(shù)據(jù)寫入到第一分區(qū)321且可在正將所述第一數(shù)據(jù)寫入到所述第一分區(qū)的同時從第二分區(qū)322讀取數(shù)據(jù)。接著,驅動器362可在從第一分區(qū)321讀取數(shù)據(jù)的同時將所述第一數(shù)據(jù)寫入到第二分區(qū)322。所述驅動器可通過交替地在第一分區(qū)321與第二分區(qū)322之間寫入數(shù)據(jù)而繼續(xù)在所述兩個分區(qū)之間鏡射數(shù)據(jù)。舉例來說,驅動器362可執(zhí)行N條數(shù)據(jù)的循環(huán),其中所述驅動器將第N數(shù)據(jù)寫入到所述第一分區(qū),在正將所述第N數(shù)據(jù)寫入到所述第一分區(qū)的同時從所述第二分區(qū)讀取數(shù)據(jù),且在從所述第一分區(qū)讀取數(shù)據(jù)的同時將所述第N數(shù)據(jù)寫入到所述第二分區(qū)。圖4是圖解說明分割圖1的數(shù)據(jù)存儲裝置的實例性過程400的示范性流程圖,其中所述裝置包括多個快閃存儲器芯片。過程400可包括確定數(shù)據(jù)存儲裝置中的快閃存儲器芯片的數(shù)目402。舉例來說,配置檢測引擎查詢數(shù)據(jù)存儲裝置以收集關于數(shù)據(jù)存儲裝置中的快閃存儲器芯片的數(shù)目的信息??山?jīng)由耦合到數(shù)據(jù)存儲裝置的主機來界定數(shù)據(jù)存儲裝置的第一分區(qū),其中所述第一分區(qū)包括所述多個快閃存儲器芯片的第一子集404??山?jīng)由主機來界定數(shù)據(jù)存儲裝置的第二分區(qū),其中所述第二分區(qū)包括所述多個快閃存儲器芯片的第二子集406。在從所述第二分區(qū)讀取數(shù)據(jù)的同時將第一數(shù)據(jù)寫入到所述第一分區(qū)407,且在從所述第二分區(qū)讀取數(shù)據(jù)的同時將第一數(shù)據(jù)寫入到所述第二分區(qū)409。特定實施方案可包括某些任選特征。舉例來說,確定數(shù)據(jù)存儲裝置中的快閃存儲器芯片的數(shù)目可包括將指示數(shù)據(jù)存儲裝置中的快閃存儲器芯片的數(shù)目的信息從數(shù)據(jù)存儲裝置傳輸?shù)街鳈C409??稍谥鳈C中界定所述數(shù)據(jù)存儲裝置中的將從主機向其寫入數(shù)據(jù)的地址位置,其中所述地址位置規(guī)定將所述數(shù)據(jù)寫入到所述多個存儲器芯片中的特定一者412。當數(shù)據(jù)存儲裝置包括用于在主機與多個快閃存儲器芯片之間傳遞數(shù)據(jù)的多個物理通道時,其中每一通道可操作地連接到不同多個所述存儲器芯片,過程400可進一步包括確定物理通道的數(shù)目414 ;確定所述通道的第一子集,其中所述通道的所述第一子集中的通道僅可操作地連接到存儲器芯片的第一子集中的存儲器芯片416 ;確定所述通道的第二子集,其中所述通道的所述第二子集中的通道僅可操作地連接到存儲器芯片的第二子集中的存儲器芯片418 ;及在主機中界定數(shù)據(jù)存儲裝置中的將從主機向其寫入數(shù)據(jù)的地址位置,其中所述地址位置規(guī)定經(jīng)由特定通道將數(shù)據(jù)寫入到所述多個存儲器芯片中的特定一者 420。另外,過程400可包括經(jīng)由耦合到數(shù)據(jù)存儲裝置的主機將數(shù)據(jù)存儲裝置的第一分區(qū)重新界定為包括所述多個快閃存儲器芯片的第三子集422。在此實施方案中,當通道的第一子集僅連接到第一分區(qū)的存儲器芯片時且當通道的第二子集僅連接到第二分區(qū)的存儲器芯片時,則主機總是具有借以存取每一分區(qū)的通道。在另一實施方案中,所有所述通道可連接到第一分區(qū)及第二分區(qū)的存儲器芯片424,且在此實施方案中,當使用所有所述通道來與每一分區(qū)進行通信時,則每一分區(qū)可以另一分區(qū)不具有借以與主機進行通信的任何通道為代價來利用使用所有所述通道與主機進行通信。圖5是設備500的實例性實施方案的示范性框圖,其中主機551可控制數(shù)據(jù)跨越到數(shù)據(jù)存儲裝置501的快閃存儲器芯片514、515、516、517、524、525、526、527、534、535、 536,537,544,545,546及M7的不同通道513、523、533、543及/或跨越不同快閃存儲器芯片的分條。舉例來說,邏輯順序數(shù)據(jù)(例如,文件的數(shù)據(jù))可破分成段且可將所述段指派給不同通道513、523、533、543或指派給不同快閃存儲器芯片514、515、516、517、524、525、 526、527、534、535、536、537、M4、M5、546及M7。通過將數(shù)據(jù)分段且跨越不同通道及/或快閃存儲器芯片將其分條(例如,以循環(huán)方式),可將邏輯順序數(shù)據(jù)的不同段同時寫入到不同物理裝置(例如,通道或快閃存儲器芯片)。由于與主機551的處理器552處理去往存儲裝置501的數(shù)據(jù)包的時間相比將數(shù)據(jù)寫入到快閃存儲器芯片所需要的時間是不尋常的,因此跨越不同通道513、523、533、543將數(shù)據(jù)分條或將數(shù)據(jù)分條到不同快閃存儲器芯片514、 515、516、517、524、525、526、527、534、535、536、537、544、545、546 及 547 可加速邏輯順序數(shù)據(jù)從主機551到存儲裝置501的寫入。類似地,從存儲裝置501回讀經(jīng)分條的邏輯順序數(shù)據(jù)(其中,所述數(shù)據(jù)已跨越不同通道或芯片分條)可比跨越單個通道或從單個芯片讀取所述數(shù)據(jù)更快速。因此,當回讀經(jīng)分條數(shù)據(jù)時,可跨越第一通道513將邏輯順序數(shù)據(jù)的第一段回讀到主機551(例如,從芯片514),同時正在從另一芯片(例如,芯片524)提取邏輯順序數(shù)據(jù)的下一段以跨越第二通道514傳輸。當使用“芯片分條”將邏輯順序數(shù)據(jù)分條到特定快閃存儲器芯片514、515、516、 517、524、525、526、527、534、535、536、537、544、545、546 及 547 時,主機可規(guī)定特定段的目的地存儲器地址,其中所述所規(guī)定地址可包括待向其寫入所述段的特定快閃存儲器芯片。 因此,可將數(shù)據(jù)到特定芯片的分條置于主機551的控制下。此可提供當向存儲裝置501寫入數(shù)據(jù)及從存儲裝置501讀取數(shù)據(jù)時的較大程度的并行性。舉例來說,在包括12個通道及每通道20個快閃存儲器芯片的存儲裝置的實施方案中,可跨越所有240個快閃存儲器芯片將文件分條,此意指當在需要第二次存取芯片之前以循環(huán)方式存取芯片時可執(zhí)行240個寫入或讀取操作。此高程度的并行性結果可產(chǎn)生主機551與存儲裝置501之間的高數(shù)據(jù)吞吐率,使得可非??焖俚貜拇鎯ρb置讀取數(shù)據(jù)及向存儲裝置寫入數(shù)據(jù)。當使用“通道分條”跨越特定通道513、523、533、543將邏輯順序數(shù)據(jù)分條時,主機可規(guī)定特定段的目的地存儲器地址,其中所述所規(guī)定地址可包括待向其寫入所述段的特定通道。接著,在將所述段寫入到所述所規(guī)定通道時,可操作地連接到待向其寫入所述段的所述所規(guī)定通道的特定快閃存儲器芯片可由主機551基于芯片的當前運行時間狀態(tài)(例如, 基于不同芯片的芯片空間可用性)來動態(tài)地挑選。通道分條可比芯片分條更不受芯片故障的影響,因為如果在使用通道分條時單個芯片出故障,那么存儲裝置可繼續(xù)操作。另外,通道分條在寫入性能(與讀取性能相對)方面提供優(yōu)于芯片分條的優(yōu)勢,因為可操作地連接到所規(guī)定通道的所有芯片的最佳芯片被動態(tài)地選擇用于寫入日期。由于通道分條的寫入性能優(yōu)勢,在使用通道分條時可高效地執(zhí)行涉及數(shù)個寫入操作的無用單元收集。因此,可將數(shù)據(jù)到特定芯片的分條置于主機551的控制下。此可提供當向存儲裝置501寫入數(shù)據(jù)及從存儲裝置501讀取數(shù)據(jù)時的較大程度的并行性。舉例來說,在包括40 個通道及每通道16個快閃存儲器芯片的存儲裝置的實施方案中,可跨越所有640個快閃存儲器芯片將文件分條,此意指當在需要第二次存取芯片之前以循環(huán)方式存取芯片時可執(zhí)行 640個寫入或讀取操作。此高程度的并行性結果可產(chǎn)生主機551與存儲裝置501之間的高數(shù)據(jù)吞吐率,使得可非??焖俚貜拇鎯ρb置讀取數(shù)據(jù)及向存儲裝置寫入數(shù)據(jù)。類似于上文結合圖3所論述的實施例,快閃存儲器芯片514、515、516、517、524、 525、526、527、534、535、536、537、544、545、546 及 547 可連接到可包括 FPGA 控制器 510 的控制器。FPGA控制器510可經(jīng)配置以按上文關于圖1的控制器110、圖2的FPGA 210或圖 3的FPGA 310所描述的方式操作。FPGA控制器510可包括多個通道控制器512、522、532、 M2,其經(jīng)由相應物理通道513、523、533、543可操作地連接到快閃存儲器芯片的相應群組 514、515、516 及 517 ;524,525,526 及 527 ;534,535,536 及 537 ;及 544、545、546 及 547。當然,如上文所描述,存儲裝置可包括遠多于16個快閃存儲器芯片、遠多于四個通道控制器, 且遠多于四個快閃存儲器芯片可為跨越物理通道可操作地連接到通道控制器。因此,圖5 中所示的實施方案僅為示意性的,以用于說明的清晰性目的。如上文所描述,數(shù)據(jù)存儲裝置501可經(jīng)由接口 508連接到主機551,接口 508可為高速接口,例如(舉例來說)PCIe接口。主機可包括(舉例來說)處理器552、第一存儲器 554及第二存儲器560。第二存儲器560可包括(舉例來說)將可執(zhí)行指令加載到其中以由處理器552快速執(zhí)行的易失性存儲器(例如,隨機存取存儲器)。第一存儲器妨4可包括(舉例來說)適于存儲可由處理器552執(zhí)行的機器可讀、可執(zhí)行代碼指令的非易失性存儲器裝置(例如,硬磁盤)。第一存儲器5M上所存儲的代碼指令可加載到第二存儲器(例如,易失性存儲器,例如隨機存取存儲器)560,在此處其可由處理器552執(zhí)行以使用“芯片分條”、“通道分條”或兩者的組合將數(shù)據(jù)分條。第二存儲器可包括專用于用戶模式應用程序的“用戶空間”562的邏輯塊及專用于運行用戶級應用程序必須控制以執(zhí)行其功能的較低級資源的“核心空間”564的邏輯塊。在第二存儲器560的核心空間564內可駐存有用于設置分條方案的初始化引擎566、用于將邏輯順序數(shù)據(jù)分段成段的分段引擎568、用于跨越存儲裝置501的相異物理元件(例如,通道或芯片)將數(shù)據(jù)分條的分條引擎570及用于給數(shù)據(jù)段指派地址的地址指派引擎572。初始化引擎566可經(jīng)配置以確定借以將數(shù)據(jù)寫入到連接到單獨通道的快閃存儲器芯片的第一組塊通道大小。在一個實施方案中,初始化引擎可基于關于寫入到存儲裝置 501中的快閃存儲器芯片的數(shù)據(jù)的頁大小的信息且基于關于連接到存儲裝置501中的通道的快閃存儲器芯片的數(shù)目的信息來確定第一通道組塊大小。舉例來說,如果存儲裝置包括 40個通道且16個快閃存儲器芯片連接到每一通道且頁大小為4K,那么初始化引擎可將適當?shù)耐ǖ澜M塊大小確定為4K的某一倍數(shù)(例如,8K、32K、40K或80K)。初始化引擎566可從存儲媒體(例如,EEPR0M)520接收關于存儲裝置501的物理配置的此信息,存儲媒體520 存儲關于(舉例來說)裝置501中的物理通道513、523、533、543的數(shù)目、所述裝置中的快閃存儲器芯片 514、515、516、517、524、525、526、527、534、535、536、537、544、545、546 及 547 的數(shù)目、所述存儲裝置中的快閃存儲器芯片的類型(例如,單電平單元(“SLC”)快閃或多電平單元(“MLC”)快閃)及寫入到所述芯片的數(shù)據(jù)的頁大小的信息。主機550可將命令傳輸?shù)酱鎯ρb置501以請求傳送關于存儲裝置的物理參數(shù)(例如,通道的數(shù)目、芯片的數(shù)目、 芯片的類型及頁大小)的此信息,且響應于所述命令,存儲裝置501可將所述信息傳輸回到主機550。當使用通道分條技術將邏輯順序數(shù)據(jù)寫入到存儲裝置501時,可按通道組塊大小單位將所述邏輯順序數(shù)據(jù)分段。舉例來說,分段引擎568可將邏輯順序數(shù)據(jù)(例如,數(shù)據(jù)文件)劃分成多個段,其大小可(舉例來說)等于由初始化引擎566確定的通道組塊大小。 在一個實施方案中,分段引擎568可接收邏輯順序數(shù)據(jù)且可輸出根據(jù)所規(guī)定通道組塊大小來確定大小的段。分條引擎570接著可控制邏輯順序數(shù)據(jù)按第一通道組塊大小單位到數(shù)據(jù)存儲裝置501的不同通道的分條。舉例來說,地址指派引擎572可給所述數(shù)據(jù)段指派存儲器地址,其中所述所指派存儲器地址規(guī)定將段寫入到存儲裝置501的物理通道中的特定一者ο分條引擎570可用地址(其可由地址指派引擎572指派)給每一段加標簽,此將致使特定段寫入到由所述地址指示的特定通道513、523、533、M3。舉例來說,可將數(shù)據(jù)的第一通道組塊寫入到通道513,可將數(shù)據(jù)的第二通道組塊寫入到通道523,可將數(shù)據(jù)的第三通道組塊寫入到通道533,且可將數(shù)據(jù)的第四通道組塊寫入到通道M3。當尋址到特定通道(例如,通道51 的通道組塊大小單位的數(shù)據(jù)到達與所述特定通道相關聯(lián)的通道控制器(例如,通道控制器51 時,則如果使用通道分條且所述通道組塊大小單位的數(shù)據(jù)不尋址到連接到所述通道的特定快閃存儲器芯片,那么所述通道控制器可將所述通道組塊大小單位的部分寫入到不同快閃存儲器芯片??苫谶B接到所述通道的每一芯片的當前運行時間狀態(tài) (例如,基于連接到所述通道的芯片的芯片空間可用性)來動態(tài)地確定(例如,由主機550 或由控制器)針對每一部分選擇的個別快閃存儲器芯片。舉例來說,如果當通道組塊大小單位的數(shù)據(jù)到達控制器512時仍正在執(zhí)行到快閃存儲器芯片514的寫入操作,那么可將所述通道組塊大小單位的數(shù)據(jù)的所述部分寫入到快閃存儲器芯片515、516及517直到到芯片 514的寫入操作完成為止。因此,通過在將邏輯順序數(shù)據(jù)從主機寫入到存儲裝置時使用通道分條,可在也正在從另一通道讀取數(shù)據(jù)的同時將數(shù)據(jù)寫入到一個通道。另外,通過使用通道分條且動態(tài)地確定在特定通道內向其寫入邏輯順序數(shù)據(jù)的段的個別快閃存儲器芯片,可增強系統(tǒng)500的寫入性能,因為數(shù)據(jù)將被優(yōu)先寫入到大多數(shù)準備好接受所述數(shù)據(jù)的芯片,因此將保持主機等待芯片變?yōu)榭纱嫒〉臅r間保持為最小值。此外,由于快閃存儲器中的無用單元收集為寫入密集型過程,因此通道分條可改善無用單元收集的性能。主機550控制數(shù)據(jù)分條的初始化及執(zhí)行的優(yōu)勢在于,主機可控制并改變用以執(zhí)行數(shù)據(jù)分條的參數(shù),使得主機可設置并控制與存儲裝置501的交互。舉例來說,主機550可最初將其自身配置成使用第一通道組塊大小來跨越數(shù)據(jù)存儲裝置501的不同通道將數(shù)據(jù)分條,但當用戶的期望改變、設備500用于不同應用程序、不同快閃存儲器芯片用于存儲裝置中等時,可引起使用不同通道組塊大小來跨越所述通道將數(shù)據(jù)分條的需要。在此情況下,初始化引擎可進一步經(jīng)配置以確定借以將數(shù)據(jù)寫入到連接到單獨通道的快閃存儲器芯片的不同于第一通道組塊大小的第二通道組塊大小。分段引擎可進一步經(jīng)配置以將邏輯順序數(shù)據(jù)分段成第二通道組塊大小段,且分條引擎可進一步經(jīng)配置以按第二通道組塊大小單位將數(shù)據(jù)分條到數(shù)據(jù)存儲裝置的不同通道。除確定借以跨越不同通道按段將邏輯順序數(shù)據(jù)分條的通道組塊大小外,初始化引擎還可確定借以跨越芯片將邏輯順序數(shù)據(jù)分條的芯片組塊大小,其中所述芯片組塊大小確定待在開始向不同芯片寫入數(shù)據(jù)之前向特定芯片寫入的數(shù)據(jù)量。接著,當使用“芯片分條” 跨越特定芯片(例如,連接到特定通道513的芯片514、515、516及517)將邏輯順序數(shù)據(jù)分條時,主機可規(guī)定特定段的目的地存儲器地址,其中所述所規(guī)定地址可包括待向其寫入所述段的特定芯片。在芯片分條的情況下,可按芯片組塊大小單位跨越存儲裝置501的不同芯片將邏輯順序數(shù)據(jù)分條。也就是說,在已將芯片組塊大小數(shù)據(jù)段寫入到一個快閃存儲器芯片之后,可將下一芯片組塊大小單位寫入到不同芯片。因此,芯片分條提供從存儲裝置 501的讀取操作及向存儲裝置501的寫入操作中的最大并行性。舉例來說,在具有40個通道及每通道16個芯片的存儲裝置501中,可在重新訪問芯片之前將數(shù)據(jù)文件的段寫入到 640個不同芯片。因此,芯片分條在讀取性能方面提供優(yōu)于通道分條的優(yōu)勢,因為可通過芯片分條實現(xiàn)高程度的并行性。因此,在芯片分條的情況下,初始化引擎566可經(jīng)配置以確定借以將數(shù)據(jù)寫入到存儲裝置501的快閃存儲器芯片的第一芯片組塊大小。舉例來說,基于從存儲裝置501接收的關于存儲裝置501中的快閃存儲器芯片的數(shù)目及用以將數(shù)據(jù)寫入到快閃存儲器芯片的頁大小的信息,初始化引擎566可將適當?shù)耐ǖ澜M塊大小確定為頁大小的某一倍數(shù)((例如,8K、32K、40K、80K、160K、320K 等)。接著,當使用芯片分條技術將邏輯順序數(shù)據(jù)寫入到存儲裝置501時,可按芯片組塊大小單位將所述邏輯順序數(shù)據(jù)分段以寫入到芯片。舉例來說,分段引擎568可將邏輯順序數(shù)據(jù)(例如,數(shù)據(jù)文件)劃分成多個段,其大小可(舉例來說)等于由初始化引擎566確定的芯片組塊大小。在一個實施方案中,分段引擎568可接收邏輯順序數(shù)據(jù)且可輸出根據(jù)所規(guī)定芯片組塊大小來確定大小的段。分條引擎570接著可控制邏輯順序數(shù)據(jù)按芯片組塊大小單位到數(shù)據(jù)存儲裝置501的不同芯片的分條。舉例來說,地址指派引擎572可給所述數(shù)據(jù)段指派存儲器地址,其中所述所指派存儲器地址規(guī)定將段寫入到存儲裝置501的芯片中的特定一者。在另一實施方案中,分段引擎568可接收邏輯順序數(shù)據(jù)且可輸出根據(jù)所規(guī)定通道組塊大小來確定大小且進一步細分成芯片組塊大小單位的段。分條引擎570接著可控制邏輯順序數(shù)據(jù)按通道組塊大小單位到數(shù)據(jù)存儲裝置501的不同通道的分條且可控制數(shù)據(jù)按芯片組塊大小單位到連接到所述通道的芯片的分條。舉例來說,地址指派引擎572可給所述數(shù)據(jù)段指派存儲器地址,其中所述所指派存儲器地址規(guī)定將段寫入到存儲裝置501的通道中的特定一者及芯片中的特定一者。分條引擎570可用地址(其可由地址指派引擎572指派)給每一段加標簽,此將致使特定段寫入到由所述地址指示的特定通道513、523、533、543及特定快閃存儲器芯片514、515、516、517、524、525、526、527、534、535、536、537、544、545、546 及 547。舉例來說,可將數(shù)據(jù)的第一通道組塊寫入到通道513,可將數(shù)據(jù)的第二通道組塊寫入到通道523,可將數(shù)據(jù)的第三通道組塊寫入到通道533,且可將數(shù)據(jù)的第四通道組塊寫入到通道M3,而可將所述第一通道組塊的數(shù)據(jù)的第一芯片組塊寫入到芯片514,可將所述第一通道組塊的數(shù)據(jù)的第二芯片組塊寫入到芯片515,可將所述第一通道組塊的數(shù)據(jù)的第三芯片組塊寫入到芯片 516,且可將所述第一通道組塊的數(shù)據(jù)的第四芯片組塊寫入到芯片517,且可將所述第二通道組塊的數(shù)據(jù)的第一芯片組塊寫入到芯片524,可將所述第二通道組塊的數(shù)據(jù)的第二芯片組塊寫入到芯片525,可將所述第二通道組塊的數(shù)據(jù)的第三芯片組塊寫入到芯片526,且可將所述第二通道組塊的數(shù)據(jù)的第四芯片組塊寫入到芯片527等。因此,通過在將邏輯順序數(shù)據(jù)從主機寫入到存儲裝置時使用芯片分條,可在也正在從另一芯片讀取數(shù)據(jù)的同時將數(shù)據(jù)寫入到一個芯片。接著,當從存儲裝置501的多個芯片回讀所述邏輯順序數(shù)據(jù)時,可從不同快閃存儲器芯片并行執(zhí)行讀取操作??山M合使用分區(qū)與分條。舉例來說,可將存儲裝置中的快閃存儲器芯片的第一分區(qū)10 界定為使用通道分條,且將所述裝置的第二分區(qū)104b界定為使用芯片分條。因此, 由于使用通道分條技術來在主機與第一分區(qū)10 之間寫入及讀取數(shù)據(jù),因此所述第一分區(qū)可提供相對更好的寫入性能、冗余及故障容限,而由于使用芯片分條技術來在主機與第二分區(qū)之間寫入及讀取數(shù)據(jù),因此所述第二分區(qū)可提供相對更好的讀取性能。圖6是圖解說明圖5的數(shù)據(jù)存儲裝置的實例性操作的示范性流程圖。其展示將數(shù)據(jù)從主機分條到數(shù)據(jù)存儲裝置的過程600。所述裝置包括多個快閃存儲器芯片,且所述數(shù)據(jù)存儲裝置包括用于在所述主機與所述多個快閃存儲器芯片之間傳遞數(shù)據(jù)的多個物理通道。 每一通道可操作地連接到不同多個所述存儲器芯片???舉例來說)由初始化引擎566確定所述多個通道中的物理通道的數(shù)目602???舉例來說)由初始化引擎566確定借以將數(shù)據(jù)寫入到連接到單獨通道的快閃存儲器芯片的第一通道組塊大小604??捎芍鳈C(舉例來說,由在主機550上運行的分段引擎568)將邏輯順序數(shù)據(jù)分段成第一通道組塊大小段 606???舉例來說)由與地址指派引擎572協(xié)作的分條引擎570按第一通道組塊大小單位將數(shù)據(jù)分條到數(shù)據(jù)存儲裝置的不同通道608。在一個實施方案中,過程600可進一步包括確定借以將數(shù)據(jù)寫入到不同快閃存儲器芯片的芯片組塊大小610 ;及針對所述所確定物理通道中的每一者,確定可操作地連接到所述通道的快閃存儲器芯片的數(shù)目612。可由主機將通道組塊大小段分段成芯片組塊大小段614,且可按芯片組塊大小單位將通道組塊大小的單位中的數(shù)據(jù)分條到連接到通道的不同快閃存儲器芯片616。在另一實施方案中,可確定借以將數(shù)據(jù)寫入到連接到單獨通道的快閃存儲器芯片的第二通道組塊大小618。可將邏輯順序數(shù)據(jù)分段成第二通道組塊大小段620,且可按第二通道組塊大小單位將數(shù)據(jù)分條到數(shù)據(jù)存儲裝置的不同通道622。本文中所描述的各種技術的實施方案可以數(shù)字電子電路或者以計算機硬件、固件、軟件或其組合來實施。實施方案可實施為計算機程序產(chǎn)品,即,有形地體現(xiàn)于信息載體中(例如,體現(xiàn)于機器可讀存儲裝置中)的計算機程序,以由數(shù)據(jù)處理設備(例如,可編程處理器、一計算機或多個計算機)執(zhí)行或控制所述數(shù)據(jù)處理設備的操作??梢匀魏涡问降木幊陶Z言(包含編譯語言或解譯語言)來寫入計算機程序(例如,上文所描述的計算機程序),且可以任何形式來部署所述計算機程序,包含部署為獨立程序或部署為模塊、組件、子例程或適合在計算環(huán)境中使用的其它單元。計算機程序可經(jīng)部署以在一個計算機上或在位于一個位點處或跨越多個位點分布且由通信網(wǎng)絡互連的多個計算機上執(zhí)行。方法步驟可由執(zhí)行計算機程序的一個或一個以上可編程處理器執(zhí)行,以通過處理輸入數(shù)據(jù)并產(chǎn)生輸出來執(zhí)行功能。方法過程還可由專用邏輯電路(例如,F(xiàn)PGA或ASIC(專用集成電路))執(zhí)行,且設備可實施為專用邏輯電路。舉例來說,適合執(zhí)行計算機程序的處理器包括通用及專用微處理器兩者,以及任何種類的數(shù)字計算機的任何一個或一個以上處理器。一般來說,處理器將從只讀存儲器或隨機存取存儲器或兩者接收指令及數(shù)據(jù)。計算機的元件可包括用于執(zhí)行指令的至少一個處理器及用于存儲指令及數(shù)據(jù)的一個或一個以上存儲器裝置。一般來說,計算機還可包括用于存儲數(shù)據(jù)的一個或一個以上大容量存儲裝置(例如,磁盤、磁光盤或光盤)或經(jīng)操作地耦合以從所述一個或一個以上大容量存儲裝置接收數(shù)據(jù)或向其傳送數(shù)據(jù)或既接收數(shù)據(jù)又傳送數(shù)據(jù)。適合包含計算機程序指令及數(shù)據(jù)的信息載體包括所有形式的非易失性存儲器,其中包括(舉例來說)半導體存儲器裝置,例如EPROM、EEPROM及快閃存儲器裝置;磁盤,例如內部硬磁盤或可抽換式磁盤;磁光盤;及⑶-ROM及DVD-ROM光盤。所述處理器及存儲器可由專用邏輯電路補充或并入于專用邏輯電路中。為提供與用戶的交互,實施方案可實施于計算機上,所述計算機具有用于向所述用戶顯示信息的顯示裝置(例如,陰極射線管(CRT)或液晶顯示器(LCD)監(jiān)視器)及所述用戶可通過其來向計算機提供輸入的鍵盤及指向裝置(例如,鼠標或軌跡球)。也可使用其它種類的裝置來提供與用戶的交互;舉例來說,提供給所述用戶的反饋可為任何形式的感觀反饋,例如,視覺反饋、聽覺反饋或觸覺反饋;且來自所述用戶的輸入可以任何形式來接收, 其中包括聲音、語音或觸覺輸入。實施方案可實施于計算系統(tǒng)(包括后端組件,例如,作為數(shù)據(jù)服務器;或包括中間件組件,例如,應用程序服務器;或包括前端組件,例如,具有用戶可經(jīng)由其來與實施方案交互的圖形用戶接口或Web瀏覽器的客戶端計算機)或此類后端、中間件或前端組件的任一組合中。組件可由任何數(shù)字數(shù)據(jù)通信形式或媒體(例如,通信網(wǎng)絡)互連。通信網(wǎng)絡的實例包括局域網(wǎng)(LAN)及廣域網(wǎng)(WAN),例如因特網(wǎng)。雖然本文已圖解說明及描述了所描述實施方案的某些特征,然而所屬領域的技術人員現(xiàn)在將能想出許多修改、替代、改變及等效形式。因此,應理解,所附權利要求書打算涵蓋歸屬于本發(fā)明的范圍內的所有此類修改及改變。
權利要求
1.一種在包括多個存儲器芯片(118、218、318)的快閃存儲器數(shù)據(jù)存儲裝置(100、302、 501)中存儲數(shù)據(jù)的方法,所述方法包含確定^)2)所述數(shù)據(jù)存儲裝置(100、302、501)中的存儲器芯片(118、218、318)的數(shù)目;經(jīng)由耦合到所述數(shù)據(jù)存儲裝置(100、302、501)的主機(106、350、551),界定(404)所述數(shù)據(jù)存儲裝置(100、302、501)的第一分區(qū)(321),其中所述第一分區(qū)(321)包括所述多個存儲器芯片(118、218、318)的第一子集;經(jīng)由耦合到所述數(shù)據(jù)存儲裝置(100、302、501)的主機(106、350、551),界定(406)所述數(shù)據(jù)存儲裝置(100、302、501)的第二分區(qū)(322),其中所述第二分區(qū)(32 包括所述多個存儲器芯片(118、218、318)的第二子集;在從所述第二分區(qū)(32 讀取數(shù)據(jù)的同時將第一數(shù)據(jù)寫入007)到所述第一分區(qū)(321);及在從所述第一分區(qū)(321)讀取數(shù)據(jù)的同時將所述第一數(shù)據(jù)寫入(409)到所述第二分區(qū)(322)。
2.根據(jù)權利要求1所述的方法,其進一步包含在從所述第二分區(qū)(32 讀取數(shù)據(jù)的同時將第二數(shù)據(jù)寫入到所述第一分區(qū)(321); 在從所述第一分區(qū)(321)讀取數(shù)據(jù)的同時將所述第二數(shù)據(jù)寫入到所述第二分區(qū) (322);及對于N =第3到至少第10 在從所述第二分區(qū)(32 讀取數(shù)據(jù)的同時將N數(shù)據(jù)寫入(407)到所述第一分區(qū)(321);及在從所述第一分區(qū)(321)讀取數(shù)據(jù)的同時將所述N數(shù)據(jù)寫009)到所述第二分區(qū) (322)。
3.根據(jù)前述權利要求中任一權利要求所述的方法,其中確定所述數(shù)據(jù)存儲裝置(100、 302,501)中的存儲器芯片(118、218、318)的數(shù)目包括將指示所述數(shù)據(jù)存儲裝置(100、302、 501)中的存儲器芯片(118、218、318)的所述數(shù)目的信息從所述數(shù)據(jù)存儲裝置(100、302、 501)傳輸?shù)剿鲋鳈C(106,350,551) ο
4.根據(jù)權利要求3所述的方法,其中所述所傳輸信息包括關于所述數(shù)據(jù)存儲裝置 (100,302,501)的物理架構的信息,其中包括關于所述數(shù)據(jù)存儲裝置(100、302、501)的特定存儲器芯片(118、218、318)與特定通道(112)之間的連接的信息。
5.根據(jù)前述權利要求中任一權利要求所述的方法,其進一步包含在所述主機(106、 350,551)中界定(41 所述數(shù)據(jù)存儲裝置(100、302、501)中的將從所述主機(106、350、 551)向其寫入數(shù)據(jù)的地址位置,其中所述地址位置規(guī)定將所述數(shù)據(jù)寫入到所述多個存儲器芯片(118、218、318)中的特定一者。
6.根據(jù)前述權利要求中任一權利要求所述的方法,其中所述數(shù)據(jù)存儲裝置(100、302、 501)包括用于在所述主機(106、350、551)與所述多個存儲器芯片(118、218、318)之間傳遞數(shù)據(jù)的多個物理通道(112),每一通道可操作地連接到不同多個所述存儲器芯片(118、 218、318),所述方法進一步包含確定(414)所述物理通道(112)的數(shù)目;確定G16)所述數(shù)目個通道(11 的第一子集,其中通道(11 的所述第一子集中的通道(112)僅可操作地連接到存儲器芯片(118、218、318)的所述第一子集中的存儲器芯片 (118、218、318);及確定(418)所述數(shù)目個通道(11 的第二子集,其中通道(11 的所述第二子集中的通道(112)僅可操作地連接到存儲器芯片(118、218、318)的所述第二子集中的存儲器芯片 (118、218、318)。
7.根據(jù)前述權利要求中任一權利要求所述的方法,其中所述數(shù)據(jù)存儲裝置(100、302、 501)包括用于在所述主機(106、350、551)與所述多個存儲器芯片(118、218、318)之間傳遞數(shù)據(jù)的多個物理通道(112),所述方法進一步包含確定(414)所述物理通道(112)的數(shù)目;其中所述所確定通道(112)可操作地連接到存儲器芯片(118、218、318)的所述第一子集中的存儲器芯片(118、218、318)且可操作地連接到存儲器芯片(118、218、318)的所述第二子集中的存儲器芯片(118、218、318)。
8.根據(jù)權利要求6或7所述的方法,其進一步包含在所述主機(106、350、551)中界定(420)所述數(shù)據(jù)存儲裝置(100、302、501)中的將從所述主機(106、350、551)向其寫入數(shù)據(jù)的地址位置,其中所述地址位置規(guī)定經(jīng)由特定通道將所述數(shù)據(jù)寫入到所述多個存儲器芯片(118、218、318)中的特定一者。
9.根據(jù)前述權利要求中任一權利要求所述的方法,其中所述第一子集不包括所述第二子集中的任何存儲器芯片(118、218、318),且其中所述第二子集不包括所述第一子集中的任何存儲器芯片(118、218、318)。
10.根據(jù)前述權利要求中任一權利要求所述的方法,其進一步包含接收所述第一分區(qū)(321)的存儲器芯片已出故障或可能要出故障的指示;經(jīng)由耦合到所述數(shù)據(jù)存儲裝置(100、302、501)的所述主機(106、350、551)將所述數(shù)據(jù)存儲裝置(100、302、501)的所述第一分區(qū)(321)重新界定(42 為包括所述多個存儲器芯片(118、218、318)的第三子集,其中所述第三子集不同于所述第一子集,且其中所述第三子集不包括所述第二子集中的任何存儲器芯片(118、218、318)且其中所述第二子集不包括所述第三子集中的任何存儲器芯片(118、218、318)。
11.根據(jù)權利要求10所述的方法,其中重新界定所述第一分區(qū)(321)包括將所述第三子集界定為所述第一子集的除已出故障或接近出故障的所述存儲器芯片以外的存儲器芯片(118、218、318)。
12.—種設備,其包含快閃存儲器數(shù)據(jù)存儲裝置(100、302、501),其包括多個存儲器芯片(118、218、318);主機(106、350、551),其經(jīng)由接口可操作地耦合到所述數(shù)據(jù)存儲裝置(100、302、501), 所述主機(106,350,551)包含配置檢測引擎(358),其經(jīng)配置以檢測所述數(shù)據(jù)存儲裝置(100、302、501)中的存儲器芯片(118、218、318)的數(shù)目;分區(qū)引擎(360),其經(jīng)配置以界定所述數(shù)據(jù)存儲裝置(100、302、501)的第一分區(qū) (321),其中所述第一分區(qū)(321)包括所述多個存儲器芯片(118、218、318)的第一子集;及所述數(shù)據(jù)存儲裝置(100、302、501)的第二分區(qū)(322),其中所述第二分區(qū)(32 包括所述多個存儲器芯片(118、218、318)的第二子集; 驅動器(362),其經(jīng)配置以在從所述第二分區(qū)(32 讀取數(shù)據(jù)的同時將第一數(shù)據(jù)寫入到所述第一分區(qū)(321);及在從所述第一分區(qū)(321)讀取數(shù)據(jù)的同時將所述第一數(shù)據(jù)寫入到所述第二分區(qū) (322)。
13.根據(jù)權利要求12所述的設備,其中所述驅動器(36 進一步經(jīng)配置以 將第二數(shù)據(jù)寫入到所述第一分區(qū)(321);在正將所述第二數(shù)據(jù)寫入到所述第一分區(qū)(321)的同時從所述第二分區(qū)(32 讀取數(shù)據(jù);在從所述第一分區(qū)(321)讀取數(shù)據(jù)的同時將所述第二數(shù)據(jù)寫入到所述第二分區(qū) (322);及對于N =第3到至少第10 將N數(shù)據(jù)寫入到所述第一分區(qū)(321);在正將所述N數(shù)據(jù)寫入到所述第一分區(qū)(321)的同時從所述第二分區(qū)(32 讀取數(shù)據(jù);及在從所述第一分區(qū)(321)讀取數(shù)據(jù)的同時將所述N數(shù)據(jù)寫入到所述第二分區(qū)(322)。
14.根據(jù)權利要求12到13中任一權利要求所述的設備,其中所述數(shù)據(jù)存儲裝置(100、 302,501)經(jīng)配置以在從所述主機(106、350、551)接收到命令后即刻將指示所述數(shù)據(jù)存儲裝置(100、302、501)中的存儲器芯片(118、218、318)的所述數(shù)目的信息從所述數(shù)據(jù)存儲裝置(100,302,501)傳輸?shù)剿鲋鳈C(106、350、551)。
15.根據(jù)權利要求14所述的設備,其中所述所傳輸信息包括關于所述數(shù)據(jù)存儲裝置 (100,302,501)的物理架構的信息,其中包括關于所述數(shù)據(jù)存儲裝置(100、302、501)的特定存儲器芯片(118、218、318)與特定通道(112)之間的連接的信息。
16.根據(jù)權利要求12到15中任一權利要求所述的設備,其中所述主機(106、350、551) 進一步包含經(jīng)配置以給待寫入到所述數(shù)據(jù)存儲裝置(100、302、501)的數(shù)據(jù)指派存儲器地址的地址指派引擎(366、572),其中所述所指派存儲器地址規(guī)定將所述數(shù)據(jù)寫入到所述多個存儲器芯片(118、218、318)中的特定一者。
17.根據(jù)權利要求12到16中任一權利要求所述的設備,其中所述數(shù)據(jù)存儲裝置(100、 302,501)包括用于在所述主機(106、350、551)與所述多個存儲器芯片(118、218、318)之間傳遞數(shù)據(jù)的多個物理通道(112),每一通道可操作地連接到不同多個所述存儲器芯片 (118、218、318),且其中所述配置檢測引擎進一步經(jīng)配置以檢測所述物理通道(11 的數(shù)目; 其中所述分區(qū)引擎進一步經(jīng)配置以確定所述數(shù)目個通道(112)的第一子集,其中通道 (112)的所述第一子集中的通道(112)僅可操作地連接到存儲器芯片(118、218、318)的所述第一子集中的存儲器芯片(118、218、318);且其中所述分區(qū)引擎進一步經(jīng)配置以確定所述數(shù)目個通道(112)的第二子集,其中通道 (112)的所述第二子集中的通道(112)僅可操作地連接到存儲器芯片(118、218、318)的所述第二子集中的存儲器芯片(118、218、318)。
18.根據(jù)權利要求17所述的設備,其中所述主機(106、350、551)進一步包含經(jīng)配置以給待寫入到所述數(shù)據(jù)存儲裝置(100、302、501)的數(shù)據(jù)指派存儲器地址的地址指派引擎 (366、572),其中所述所指派存儲器地址規(guī)定經(jīng)由特定通道將所述數(shù)據(jù)寫入到所述多個存儲器芯片(118、218、318)中的特定一者。
19.根據(jù)權利要求12到18中任一權利要求所述的設備,其中所述第一分區(qū)(321)包括可操作地連接到單個通道的存儲器芯片(118、218、318)。
20.根據(jù)權利要求12到19中任一權利要求所述的設備,其中所述數(shù)據(jù)存儲裝置(100、302、501)包括用于在所述主機(106、350、551)與所述多個存儲器芯片(118、218、31幻之間傳遞數(shù)據(jù)的多個物理通道(112),其中所述多個物理通道(112)可操作地連接到存儲器芯片(118、218、318)的所述第一子集中的存儲器芯片 (118、218、318)且可操作地連接到存儲器芯片(118、218、318)的所述第二子集中的存儲器芯片(118、218、318)。
21.根據(jù)權利要求12到20中任一權利要求所述的設備,其中所述分區(qū)引擎進一步經(jīng)配置以接收所述第一分區(qū)(321)的存儲器芯片已出故障或可能要出故障的指示;將所述數(shù)據(jù)存儲裝置(100、302、501)的所述第一分區(qū)(321)重新界定為包括所述多個存儲器芯片(118、218、318)的第三子集,其中所述第三子集不同于所述第一子集,且其中所述第三子集不包括所述第二子集中的任何存儲器芯片(118、218、318)且其中所述第二子集不包括所述第三子集中的任何存儲器芯片(118、218、318)。
22.根據(jù)權利要求21所述的設備,其中將所述第一分區(qū)(321)重新界定為包括所述多個存儲器芯片(118、218、318)的所述第三子集包括將所述第三子集界定為所述第一子集的除已出故障或接近出故障的所述存儲器芯片以外的存儲器芯片(118、218、318)。
全文摘要
本發(fā)明揭示一種在包括多個存儲器芯片(118、218、318)的快閃存儲器數(shù)據(jù)存儲裝置(100、302、501)中存儲數(shù)據(jù)的方法。所述方法包括確定所述數(shù)據(jù)存儲裝置(100、302、501)中的存儲器芯片(118、218、318)的數(shù)目;經(jīng)由耦合到所述數(shù)據(jù)存儲裝置(100、302、501)的主機(106、350、551),界定所述數(shù)據(jù)存儲裝置(100、302、501)的第一分區(qū)(321),其中所述第一分區(qū)(321)包括所述多個存儲器芯片(118、218、318)的第一子集;及經(jīng)由耦合到所述數(shù)據(jù)存儲裝置(100、302、501)的主機(106、350、551),界定所述數(shù)據(jù)存儲裝置(100、302、501)的第二分區(qū)(322),其中所述第二分區(qū)(322)包括所述多個存儲器芯片(118、218、318)的第二子集。在從所述第二分區(qū)(322)讀取數(shù)據(jù)的同時將第一數(shù)據(jù)寫入到所述第一分區(qū)(321),且在從所述第一分區(qū)(321)讀取數(shù)據(jù)的同時將第一數(shù)據(jù)寫入到所述第二分區(qū)(322)。
文檔編號G06F3/06GK102428453SQ201080020507
公開日2012年4月25日 申請日期2010年4月5日 優(yōu)先權日2009年4月8日
發(fā)明者安德魯·T·斯溫, 羅伯特·S·斯普林科, 阿爾貝特·T·博爾歇斯 申請人:谷歌公司