基于動態顆粒的中間存儲的制作方法
【專利摘要】本申請公開了基于動態顆粒的中間存儲。一種數據存儲系統包括數據存儲和隨機存取存儲器。排序模塊通信地耦合到隨機存取存儲器并且被配置成對在所述隨機存取存儲器接收的輸入寫入數據的數據塊進行排序。存儲控制器通信地耦合到所述隨機存取存儲器和數據存儲器,并且被配置以寫入所排序的數據塊到數據存儲的顆粒存儲區中的一個或多個單獨排序顆粒中。一種方法和處理器實現過程提供對于在數據存儲的隨機訪問存儲器中接收的寫入數據的數據塊進行排序。方法和處理器實現過程寫入所排序的數據塊到數據存儲的顆粒存儲區中的一個或多個單獨排序顆粒中,其中每個顆粒動態受限于邏輯塊地址的子集。
【專利說明】基于動態顆粒的中間存儲
[0001]相關申請的交叉引用
[0002]本申請涉及標題為“StagingSorted Data in Intermediate Storage” 并與本申請同時提交的美國申請N0._[案卷號.STL17728],通過引用而具體并入公開內容。
【背景技術】
[0003]一些數據存儲系統(諸如,含有旋轉磁存儲、磁帶和/或旋轉光學存儲的那些)遭受相對高的等待時間(例如,在毫秒范圍或更大)以達到物理存儲器內的隨機定位位置。一旦達到目標位置(例如,通過查找操作),數據以適度高的速率從物理存儲器相對順序傳送(讀或寫)。有關提高數據傳輸速率的許多挑戰之一是:在數據存儲系統中所請求數據的物理位置和邏輯順序的約束內,管理主機的傳輸請求。
[0004]發明概述
[0005]本文描述和請求的實施例通過在數據存儲系統內的整個多層物理存儲有效隔離動態映射數據而解決上述問題。該高效率的數據隔離可以減少邏輯上連續數據訪問物理存儲介質的行為偏差,尤其是在搭接磁記錄區域中。
[0006]一種數據存儲系統包括數據存儲和隨機存取存儲器。排序模塊通信地耦合到隨機存取存儲器并且被配置成對在所述隨機存取存儲器接收的輸入寫入數據的數據塊進行排序。存儲控制器通信地耦合到所述隨機存取存儲器和數據存儲器,并且被配置以寫入所排序的數據塊到數據存儲的顆粒存儲區中的一個或多個單獨排序顆粒中。
[0007]—種方法和處理器實現過程提供:對于在數據存儲的隨機訪問存儲器中接收的寫入數據的數據塊進行排序。方法和處理器實現過程寫入所排序的數據塊到數據存儲的顆粒存儲區中的一個或多個單獨排序顆粒中,其中每個顆粒動態受限于邏輯塊地址的子集。
[0008]本文中也描述和引用其它實施例。
[0009]附圖簡述
[0010]圖1示出中間等待存儲的臨時區域中停留所排序數據的示例數據存儲系統。
[0011]圖2示出對于多排序數據的組塊(chunk)具有一個或多個停留區域的示例存儲介質。
[0012]圖3示出基于一般增加數據組織的改變等級具有分層存儲的示例數據存儲系統。
[0013]圖4示出其中過時數據被識別并標記為失效的示例停留區域。
[0014]圖5示出在停留區域中所排序數據的組塊的示例產生。
[0015]圖6示出示例排序來自組塊集合的數據子集,用于停留區域的外部。
[0016]圖7示出分塊數據塊到停留區的示例操作。
[0017]圖8示出示例操作來自停留區域的重新排序數據塊,到其他中間存儲。
[0018]圖9示出其中所排序數據塊記錄在單個顆粒中的示例顆粒存儲區。
[0019]圖10示出其中所排序數據塊壓縮為單個顆粒的示例顆粒存儲區。
[0020]圖11示出其中所排序數據塊記錄為單個顆粒的搭迭磁記錄的條帶中示例顆粒存儲區。
[0021]圖12示出其中所排序數據塊記錄為單個顆粒的搭迭磁記錄的條帶中示例顆粒存儲區。
[0022]圖13示出包括隨機存取器、停留存儲區、顆粒存儲區和目的存儲區的存儲的示例等級。
[0023]圖14示出包括隨機存取器、停留存儲區、顆粒存儲區和目的存儲區的存儲的其他示例等級。
[0024]圖15示出將數據塊存儲到顆粒存儲區的示例操作。
[0025]圖16示出將數據塊存儲到目的地存儲區的示例操作。
[0026]發明詳述
[0027]圖1示出示例數據存儲系統100,用于在中間等待存儲的停留區域102中停留所排序的數據。在圖示的例子中,數據存儲系統100表示具有一個或多個磁存儲盤104的硬盤驅動器,但該存儲介質的其他實施例可以是光盤讀取器(例如,CD讀/寫器或DVD讀取器/寫入器)、磁帶驅動器、固態驅動器(SSD)等的形式。數據存儲系統100與主機設備106進行通信,它發送寫數據并從數據存儲系統100接收讀出數據。
[0028]例如,主機設備106可以寫數據文件到數據存儲系統100,其在磁存儲盤104上記錄數據文件,并可以在以后從數據存儲系統100中讀出數據文件。在主機層,用戶數據通常是結構化的可變長度的文件,它可以由一個或多個固定長度的數據塊構成。數據塊是主機設備106使用邏輯塊地址(LBA)可尋址的。數據存儲系統100包括具有數據寫電路108的寫入通道,所述數據寫入電路108根據數據存儲系統100所使用的編碼方案編碼數據塊。一個或多個數據塊可以與冗余信息相結合,以形成自包含碼字用于錯誤檢測和/或校正。
[0029]數據寫入電路108通過寫入控制器110寫入數據塊,它確定由寫入控制器110向在數據存儲系統100內的一層或多層數據存儲寫入的數據塊的物理位置和順序。當數據塊寫入到存儲盤104時,該數據塊被寫入到存儲盤104上的物理塊地址(PBA)。LBA和PBA的映射關系可以隨時間改變并被稱為“動態映射”。即使映射隨著時間改變,寫入控制器110管理LBA和PBA之間的動態映射。存儲器116可以存儲由寫入控制器110處理的固件指令,以實現動態映射、排序、重新分配、輕載以及由寫入控制器110執行的其它功能。
[0030]在數據存儲系統100中,具有連續邏輯地址的數據塊組可以被記錄在存儲盤104上大致連續的物理位置,以實現特定數據集的查找操作之后連續數據訪問的較低延遲。此夕卜,動態映射可以被智能擴展以支持數據存儲系統100中的多層物理存儲,其中不同層的物理存儲可以提供不同的平均存取延遲。
[0031]正如以上所提到的,寫入控制器110可將數據塊寫入數據存儲系統100內的一層或多層數據存儲。例如,存儲盤104的數據存儲區112被稱為“目標存儲”,表示通常用于長期存儲的物理存儲區域。雖然目標存儲中的數據是用于長期儲存,這些數據仍然可以隨著時間從目標存儲位置移動到其他目標存儲位置。此外,存儲盤104的數據存儲區114,被稱為“顆粒存儲”,表示其中存儲在每個動態可調尺寸顆粒中的數據被限制到邏輯塊地址(LBA)的特定子集的中間物理存儲。盡管其它尺寸也可以使用,示例顆粒大小可以是大約1MB。事實上,顆粒可以在相同的盤片表面或甚至在相同SMR條帶上具有不同尺寸。
[0032]此外,存儲盤104的數據存儲區102,被稱為“停留區”,表示其中邏輯塊組可以遞增地寫入和重寫在增加的連續LBA順序的物理存儲區域。例如,數據塊可以由數據存儲系統100以任意或稀疏LBA順序(例如,從邏輯空間的不同區域接收數據塊)從主機設備106接收。這些數據塊可以物理上連續方式寫入到停留區。
[0033]隨機訪問存儲器118還表示了數據存儲系統100的存儲區。它的隨機訪問特性和低訪問延遲提供了適于按照一定約束排序數據塊的存儲區域(例如,LBA順序、PBA排序、最經常訪問的順序、優先級數據的順序等)。在一個實施例中,數據被接收到所述隨機存取存儲器118,根據LBA順序進行排序,并寫入到稱為“組塊(chunk)”的數據組中的停留區,其關隨機存取存儲器的可用量118調整尺寸。盡管其它尺寸也可以使用,示例組塊尺寸可以是6価。
[0034]數據讀出和恢復電路120可以從磁存儲盤104 (或從隨機存取存儲器118)讀出數據(和適當的糾錯編碼),并使用錯誤校正編碼以檢測和/或糾正錯誤(例如,由磁存儲盤104上劃痕損傷引起的數據錯誤)。數據讀取和恢復電路120然后把讀出的數據(其可是校正的讀取數據)發送到主機設備106。
[0035]可以各種不同的方式在隨機存取存儲器118接收的數據塊的排序。在一個實施例中,排序可以由處理器或其它控制電路來實現,而數據塊駐留在隨機存取存儲器118中。在替代實施例中,排序可在數據塊傳輸到和/或從隨機存取存儲器118的過程中實現,諸如通過使用分散聚集DMA (直接存儲器存取)傳輸方案。也可以使用其他排序技術和配置。
[0036]在一個數據存儲系統,諸如圖1的數據存儲系統100,停留區域可以是非搭迭磁記錄區或搭迭磁記錄區。在非搭迭磁記錄區中,相對于寫入磁極的尺寸,每個磁介質的單元格具有足夠大的尺寸,以允許寫入磁極將數據寫入到該單元格而不重寫任何周圍單元格的數據。結果,數據可以隨機地寫入到磁介質上任何地方的可用單元格。然而,隨著對磁性介質的數據存儲密度的增加需求,單元格大小減小。匹配地減少寫入磁極的大小是困難的,因為由較大寫入磁極提供的有力寫入場梯度常常需要偏移磁化介質上的單元格的極性。結果,使用相對較大的寫入磁極將數據寫入磁化介質上的小單元格可影響相鄰單元格的偏振(即,重寫相鄰單元格)。用于適配所述磁介質以利用更小單元格并同時防止在寫操作期間重寫相鄰數據的一種技術是搭迭磁記錄(SMR)。
[0037]SMR采用寫入磁極產生的大量強烈寫入場。搭迭磁記錄的一項限制在于:當數據被寫入到磁性介質時,它被寫入到連續增加或減小半徑的軌道。強寫入場影響兩個或多個相鄰的軌道,這些軌道包括被寫入到一個或多個先前寫入軌道的軌道。結果,為了改變搭迭數據中的任何數據單元格,所有搭迭數據以選定順序寫命令被重新寫入。
[0038]為了實現SMR增加的單元格密度,并同時補償在該系統中缺乏隨機寫入的功能,可以在搭迭數據內創建一個或多個隔離區域。隔離區域(也被稱為保護軌道)是不可用于記錄的搭迭數據內的一個或多個相鄰數據磁道的分組。在操作中,隔離區域限定搭迭數據的單獨數據條帶(即,由保護軌道限制的邏輯扇區的組合)。常規地,每個保護軌道足夠寬,以防止在整個保護軌道的任何覆蓋。因此,保護軌道創造搭迭的條帶,該條帶包括與其他條帶隔離的一個或多個相鄰軌道。因此,當條帶內的一個或多個單元被改變時,重寫搭迭數據的單個條帶(而非所有磁盤上的搭迭數據)。
[0039]然而,數據條帶中重新寫入數據的一個或多個單元格仍通常包含多個步驟,包括:讀出全部數據條帶,記錄數據條帶的數據到磁盤上的介質暫存存儲器(例如,臨時緩存),從介質暫存區中讀取數據,并使用一個或多個改變的單元格重新寫入數據到原始數據條帶。因此,比未搭迭的數據寫入操作,搭迭數據寫入操作通常更耗時且較少的功率效率。
[0040]冗余信息可以與寫入數據交織以創建多邏輯塊大小的碼字。如果在接收到足夠的附加數據已到達預測位置之前已多次追加停留區域,每次數據被寫入到停留區域,該冗余信息可被包括,或冗余信息可以可預見的時間間隔被記錄,以使得可以保持增量冗余。此夕卜,寫入數據到圖1的停留區域(或其他停留區域)可以分步進行以在消耗暫存區空間進程之前釋放停留區域大小。以這種方式,停留區域空間更可能用于新的寫入數據塊。
[0041]圖2示出對于多排序數據的組塊(chunk)具有一個或多個停留區域(諸如,停留區域202)的示例存儲介質。在一個實施例中,數據存儲盤204的表面包括許多同心軌道206。軌道206分布在存儲器204的表面,并且可以采取任何數目的不同形式,包括(但不限于)常規的預搭迭連續記錄、離散軌道記錄、以及搭迭磁記錄。在一些實施例中,單一的存儲盤表面可以例如支持常規預搭迭的連續記錄和搭迭磁記錄。進一步,單一的磁盤表面的相同區域可在不同時間用于常規預搭迭的連續記錄和搭迭磁性記錄。在其它實施例中,不同的存儲盤表面可以專用于不同的記錄類型(例如,一個存儲盤的表面可用于一種類型的記錄,以及同一存儲盤的表面或另一個存儲盤可以用于不同類型的記錄)。
[0042]不同類型的記錄可以促進不同層次的訪問延遲。通過沿著由存儲在徑向伺服突發扇區(諸如,伺突發扇區208)的伺服信息指定的磁道寫入磁頭寫入數據形成傳統的連續記錄模式。當把數據寫入到存儲介質中時,寫入磁頭重新寫入軌道部分,潛在地導致各個軌道的邊界隨時間的細微變化。與此相反,離散軌道記錄模式包括使用非磁性軌道間隔離的同心離散軌道,其中,數據連續地沿著每個隔離的軌道記錄。因此,寫入磁頭在寫入操作過程中在離散目標軌道一致集合中寫入數據。讀取和寫入訪問到這些類型的記錄區之間可能有所不同,另外,沿著軌道隔離和排序數據塊也可影響存取等待時間。
[0043]搭迭磁記錄采用寫入磁極,該寫入磁極記錄比讀取傳感器所需要的更寬軌道。然而,在搭迭磁記錄中,寫入操作通常導致在給定方向上相鄰磁道的改寫。因此,寫入磁道被寫入以在給定方向互相重疊,而使窄軌道的數據可以由磁頭正確讀出。因此,重疊軌道被寫在軌道的組合或條帶中,其與其他軌道分離或以其他方式分開。
[0044]當使用徑向伺服突發扇區208配置,每個軌道206被分成伺服突發扇區208之間的切片(稱為數據楔塊或扇區210)。伺服突發扇區包括數據用于保持讀/寫頭在目標軌道上的準確定位并置于圍繞所述存儲磁盤204的預定間隔位置。
[0045]當存儲盤204轉動時,讀/寫磁頭在伺服突發扇區208中讀出包含地址的伺服信息,并發送伺服信息反饋給伺服控制系統。伺服控制系統檢查從伺服突發扇區208讀出的伺服信息地址是否對應于目標軌道位置。如果該地址不對應于目標軌道位置,伺服控制系統調節讀/寫頭到正確的軌道位置,作為搜索操作的一部分。
[0046]如上所示,各軌道磁道206包括具有存儲用戶信息的離散數據扇區210。在特定磁道上包含的數據扇區數量部分依賴于軌道的長度(例如,圓周)。除了包含用戶信息,每個數據扇區可還包括其他數據,以幫助識別和處理用戶信息(例如,錯誤檢測和校正編碼)。
[0047]根據一個實施例,存儲盤204的一個或多個部分被保留用作停留區域202,中間存儲器的類型。停留區域202被顯示在圖2,作為位于接近存儲盤204的外徑212的軌道206的圓周分組。停留區域202被顯示在圖2作為示例,并且應當理解的是:停留區域202可以被寫在存儲盤204的任何其它區域(徑向或周向)。靠近外徑212的軌道的特征是:和鄰近存儲盤204的內徑214的軌道相比,可以更高的順序數據率讀取它們。
[0048]除了所述一個或多個停留區域202,存儲盤204還包括一個或多個顆粒存儲區216,中間存儲器的類型,其中,每個動態可調尺寸的顆粒被限制在邏輯塊地址的特定子集(LBA)0存儲盤204還包括目標存儲區域218,其中比存儲盤204的其它區域,數據塊通常記錄用于長期儲存。在一個實施例中,目標存儲區域218的特征在于至少某些局限的地址范圍的非動態的LBA到PBA的映射,盡管其他實施例可以包括使用動態映射的目的地存儲區域。應當理解的是,各種中間和目標存儲區的圖示放置僅僅是示例,并且這些區域可以位于存儲盤204上的任何位置。此外,停留區域202、顆粒存儲區216和目的地存儲區域218中的一個或多個可以搭迭磁記錄區域,非搭迭磁記錄區域或其它記錄格式的區域。
[0049]首先,作為一般性意見,應理解的是:數據寫入可以采取多種途徑到各種存儲區域(例如,到隨機存取存儲器,到停留區域,到顆粒存儲區域,到目的地存儲區域,等等)。在一個實施例中,主機設備將數據塊寫入到隨機存取存儲器,其中所述數據塊可以或可以不進行初始排序。如果隨機存取存儲器是非易失性的,該數據塊可累積在隨機存取存儲器以服務主機裝置的讀取請求,而不會被寫入到其他非易失性存儲介質。可替換地,數據塊可以從隨機存取存儲器寫入到停留區域(在個別排序集合或作為未排序的數據塊),或其他存儲器。即使當數據塊被寫入到停留區域或其它存儲中,相同的數據塊也可以被保留在隨機存取存儲器,這樣可避免未來可能的介質讀取操作。此外,因為功率損失的可能性,通常希望保持寫入數據的至少副本在非易失性存儲器(例如,NVRAM或另一非易失性存儲介質)中。
[0050]圖3示出基于一般增加數據組織的改變等級具有分層存儲的示例數據存儲系統300。存儲控制器302管理讀和寫入數據塊到各存儲區,到隨機存取存儲器304,到中間存儲310 (例如,停留區域306或顆粒存儲區域308),或者目標存儲(例如,數據存儲310的目標存儲區312)。應當理解的是:單個存儲盤上可存在多個停留區域、多個顆粒存儲區域和多個目的地的存儲區域。此外,存儲控制器302可隨時間動態地調整給定存儲區域的作用。例如,停留區域可以隨操作的不同時間用作目標存儲區。
[0051]在一個實施例中,存儲控制器302接收新的寫入數據的數據塊,響應于從主機設備的一個或多個寫入命令。所接收的數據塊可以任意LBA順序被接收-一些其他寫命令可以更加LBA有序,而其他的寫入命令可以更少的LBA排序,以及寫入命令的一些組合可針對邏輯地址空間的基本上不同的區域。然而,在本實施例中,存儲控制器302接收數據塊到隨機存取存儲器304中,對數據塊進行排序,以及將排序的數據塊寫入到停留區域306中的停留區域306的相對連續物理空間。術語“相對連續”指的是可關聯于多個讀/寫命令的讀/寫操作,從/到物理存儲區域,其中單一的查找操作(或幾個查找操作)用來完成讀/寫操作,以及數據塊被讀出/寫入到一個或多個軌道的順序PBA。應當理解的是:跳過數據存儲310中損壞、失效或者“壞”PBA或讀取/寫入數據存儲310的附近多個軌道的數據并不排除讀/寫操作被認為是“相對連續”。
[0052]在任何時間,但一般在低存儲活動期間,存儲控制器302可以使用相對連續的讀操作讀出存儲在停留區域306的數據。讀出的數據被傳輸到隨機存取存儲器304,以預定順序排序在隨機存取存儲器304中(例如,以LBA順序,以最頻繁訪問的順序,等等),然后與入到停留區域306或到另一個存儲區或主機設備。在一個實施例中,讀出、排序并寫入到停留區306的數據量被稱為“組塊”,并且與隨機存取存儲器304的大小相同,但也可以使用其它尺寸(例如,隨機存取存儲器304的不同部分可用于不同的目的或為不同的“組塊”)。在另一實施例中,響應于讀出命令,讀出與排序的數據可替換地被轉移到主機設備或轉移到另一個存儲區(例如,閃存、顆粒存儲區域308或目標存儲區312)。
[0053]當存儲控制器302寫入所排序的數據到停留區306時,存儲控制器302常規地將排序數據寫入到停留區域306的新的位置,而不是使用該數據的新排序的副本覆蓋先前讀取數據的物理存儲。一旦新排序的數據被寫入到停留區域306 (或其他存儲區域),包含先前讀出數據的物理存儲可被標記為陳舊的,并收回用于新的寫入數據。回收操作可以被稱為“碎片收集”,并且可以允許同一數據的多個有序和無序的版本駐留在停留區域306或數據存儲310的其他存儲區域。在替代實施例中,可使用數據的新排序副本重寫之前讀出的PBA。還應當理解的是:可重復多次讀取、排序和寫入記錄在停留區域306 (或其它存儲區域)的數據(例如,以增加數據的特定組塊的邏輯和物理順序之間的相關性)。
[0054]還應當理解:存儲控制器302的寫入操作處理可以有利于創建停留區域內更大空間以接收新的寫入數據的順序來執行。例如,在停留區域中消耗PBA的主機命令或數據存儲系統操作之前,可執行在停留區域中產生更陳舊的PBA或在停留區域中產生相對連續陳舊的PBA的更多區域的主機命令或數據存儲系統操作。例如,刪除數據塊的主機命令可以被優先提前于新數據寫入命令。同樣,從停留區域向顆粒存儲區域或目標存儲區傳輸數據塊的數據存儲系統操作可優先提前于新數據寫入命令。在這種方式中,數據存儲系統可以防止或減少停留區域太滿而不能接收新的寫入數據的可能性。
[0055]圖4示出其中陳舊數據被識別并標記為失效的示例停留區400。在一個實施例中,過時的數據被“標記”為失效,因為轉化為相應PBA的LBA不再存儲陳舊數據。圖4描繪了陳舊數據標記模塊406,用于說明性目的。然而,陳舊數據標記模塊406是典型的動態映射子系統的功能組件,其將LBA重新映射到包含新數據的PBA并刪除相同的LBA到陳舊PBA的映射。陳舊數據標記模塊406的另一方面可包括計數器,它記錄在物理細分上的陳舊位置數目。
[0056]該停留區400從存儲控制器接收數據塊,所述存儲控制器以相對連續的方式記錄數據塊。在圖4中,數據顯示為在十個連續的寫操作402 (從寫操作I到寫操作10)期間寫入到停留區400。寫入操作402指定單獨的介質訪問,產生各個數據塊的記錄404 (在圖4中使用對應LBA標記)。例如,寫操作I在相對連續的(例如,物理上連續的)的方式寫入與LBA73、21和94相關的數據塊到停留區400,以及寫操作2以相對連續的(例如,物理順序)方式寫入與LBA24和92相關聯的數據塊到停留區400。響應每個寫操作,存儲控制器記錄每個數據塊的LBA到PBA映射。在這種方式中,存儲控制器可以根據其對應的LBA檢索主機設備從其PBA請求的數據塊。關聯的動態映射信息可以存儲在存儲控制器可訪問的動態映射表(未不出)中。
[0057]如關于寫操作4和5所示,兩次寫入和LBA46相關聯的數據塊,一次是在寫操作4,以及在寫操作5。因此,因為較新的最新數據塊已由寫操作5寫入,在寫入操作4中該數據塊存儲寫入的數據現在是陳舊的。此外,存儲控制器更新LBA46和寫操作5相關聯的新PBA之間的動態映射。
[0058]陳舊數據標記模塊406檢測LBA46的新的寫入,因此標志來自寫操作的數據塊4為失效(例如,LBA46不再映射到存儲陳舊數據塊的PBA)。寫操作7和8還示出作為寫入相同的LBA17。因此,陳舊數據標記模塊406標志著由寫操作7寫入的LBA17的數據塊為陳舊并更新LBA17和寫操作8相關的新PBA之間的動態映射。
[0059]因為所述存儲控制器從停留區域400讀取相對連續的數據,陳舊數據塊將被忽略或以其他方式管理,以排除其轉移到隨機存取存儲器,用于排序和隨后重新寫入到主機設備或存儲介質。當物理數據塊被標記為失效時,物理數據塊可以被回收和再利用用于新的數據塊,其中包括新排序塊。
[0060]應當理解的是,停留區域400中所示的所有寫入數據或寫入數據的一個或多個部分也可以保留在隨機存取存儲器(圖4中未示出)中。因此,從主機設備最近寫入的數據副本可以被保持在隨機存取存儲器以及停留區域中。在這種方式中,存儲控制器不必要從停留區讀取以獲得在隨機存取存儲器中的最近寫入數據。
[0061]圖5示出在停留區域502中示例產生排序的數據塊500。在一個實施例中,當主機設備寫入數據塊到存儲控制器時,存儲控制器直接將數據塊寫入到隨機存取存儲器504,如503所示,在那里它可以被排序并復制到停留區域502,同時仍然保持排序的副本在隨機存取存儲器中。在可替代實施例中,如505所示,存儲控制器可以將數據塊的未排序的序列501從停留區502讀取到隨機存取存儲器504,如在506示出的數據塊。
[0062]排序模塊508根據LBA順序排序各種數據,如在510示出的數據塊,盡管應當理解的是:排序模塊508可以根據其它排序偏好對數據塊進行排序,其包括最頻繁訪問、最近存取等。各種排序方法可用于排序隨機存取存儲器504內的數據塊序。已排序的數據(以下簡稱“組塊”)然后以相對連續的方式被寫入停留區域502內的另一個位置,到主機設備,或者到存儲介質的其他中間或目的地存儲區域。如前面所討論,雖然圖5示出組塊500寫在同一停留區域502中的分離位置,但在替代實施例中,排序塊可以被重新寫到先前讀出數據上。
[0063]響應新的組塊500寫入到停留區域502,存儲控制器在更新動態映射信息來反映停留區域502中LBA (21、24、73和94)和他們的新的PBA之間的新關系。此外,陳舊數據標記模塊標志對相同LBA (即,PBA501)存儲先前數據塊的之前PBA為陳舊。以這種方式,那些PBA可被回收重新用于新的寫入數據。通常,每當數據塊被排序和“分塊”時,這些數據塊的平均存取延遲減少,因為在LBA排序的情況下,后續的讀操作正在存取具有更好的LBA到PBA的映射的數據。從一個角度看,每次介質訪問傳輸多次排序數據塊到/從臨時區域攤銷了較大數量數據塊之間相對連續的物理介質訪問之間的等待時間。
[0064]圖6示出從組塊集合602示例排序數據子集600,用于記錄在停留區域604中。存儲控制器從停留區604讀取數據塊的多個有序集(例如,通過多次讀取訪問的多個組塊)到隨機存取存儲器606 (例如,整個存儲器606或其部分)。注:根據介質訪問,可讀取數據的多個區段,以分攤在多個范圍的介質訪問之間的延遲。
[0065]排序模塊608根據預定順序(例如,圖6中的LBA順序)排序在隨機存取存儲器606接收的數據塊。不同的排序方法(諸如,從每個排序組塊的頭部讀取的N進制合并排序)可以用于排序在隨機存取存儲器606內接收的數據塊。在612,610的新排序塊寫入到停留區604。響應新的組塊612寫入到停留區604,存儲控制器更新動態映射信息來反映LBA (1、
2、11和16)和他們的停留區域604內新的PBA之間的新的關系。此外,陳舊數據標記模塊標志為相同LBA存儲先前數據塊的PBA為失效。以這種方式,那些PBA可被回收以重新用于新的寫入數據。614的數據塊代表仍記錄在停留區域604中的未排序、未分塊的數據塊。
[0066]此外,在一個實施例中,陳舊數據標記模塊標志對相同LBA存儲先前數據塊的之前PBA為陳舊。以這種方式,那些PBA可被回收重新用于新的寫入數據。但是,在替代實施例中,對應于寫入其他存儲的數據塊在停留區中的數據塊704不需要被標記為陳舊。在該實施例中,數據塊的多個副本可以被記錄在數據存儲系統中的多個物理位置(例如,停留區中,閃存緩存中,內部隨機存取存儲器中,顆粒存儲區域中,目標存儲區中),以及存儲控制器可為讀或寫操作確定物理位置,用于呈現訪問主機請求數據塊集合的最短延遲。該數據塊的動態映射可以管理同一數據塊中與訪問在每個物理位置相關聯,以減少對平均存取延遲的預期等待時間相結合的多個物理位置的一個給定的讀或寫命令的數據塊。
[0067]在一個實施例中,通過應用磁盤調度邏輯,從停留區域604讀取數據。例如,讀請求被進行排隊和調度用于基于查找時間、延遲時間等執行。在一些實施例中,磁盤調度邏輯也可用于寫入操作,諸如寫到顆粒存儲區或目標存儲區。
[0068]圖7示出從停留區域分塊數據塊的示例操作700。接收操作702從主機設備或其他存儲接收邏輯塊地址的數據塊到隨機存取存儲器。排序操作704以預定義的順序接收數據塊。示例排序可以包括(但不限于)LBA順序、最頻繁訪問的順序、最近存取順序,等等。
[0069]寫入操作706寫入排序的數據塊到停留區,作為排序數據塊的集合(例如,簡稱排序組塊)。動態映射操作708將數據塊的LBA動態映射到數據存儲的臨時區域中的對應PBA。
[0070]圖8示出從停留區域再排序數據塊到其他中間存儲的示例操作800。讀取操作802從數據存儲的停留區域中的不同集合的排序數據塊(例如,組塊)讀取相對連續的數據塊的集合。傳送操作804傳送所讀取的數據塊到隨機存取存儲器。排序操作906以預定順序排序傳輸的數據塊。示例排序可以包括(但不限于)LBA順序、最頻繁訪問的順序、最近存取順序7等等。
[0071]寫入操作808寫入已排序的數據塊到另一中間存儲區、到目的地存儲區域,或到主機設備。例如,已排序的數據塊可以被寫入到組塊中的不同停留區域或顆粒存儲區域。在另一個示例中,排序的數據塊可以被寫入到數據存儲的目標存儲區域以進行長期存儲。在又一示例中,響應于讀取命令,排序的數據塊可以被傳輸到主機設備。如果該數據塊被重新寫入到數據存儲,動態重映射操作810動態地重新映射數據塊的LBA到數據存儲的停留區中的新對應的物理塊地址。標記操作812標記在讀取操作802中讀取數據塊的PBA為陳舊。收回操作814收回停留區中的陳舊PBA,例如用于再次使用停留區中的陳舊PBA以記錄其他數據塊。。例如,如果該數據塊被移動到目標存儲區域,存儲這些數據塊的停留區域中的PBA可被標記為陳舊并回收用于新的數據塊使用。然而,在輕載情況下,存儲控制器可以保持相同的數據塊的副本在存儲區域中,在其他中間存儲區中和/或在目標存儲區域中。在這種方式中,存儲控制器可以從提供最低平均存取延遲的存儲器讀取所請求的數據塊。動態映射保持每個LBA到PBA關系的映射,并且可以提供信息以幫助確定對于特定讀取命令的每個關系的最低平均訪問延時。
[0072]圖9示出其中所排序數據塊被記錄在單獨顆粒902、903和904的示例顆粒存儲900(該顆粒存儲區域900’表示新的數據塊寫入到顆粒存儲區900之前的顆粒存儲區900的狀態。ABC和O至15表示顆粒存儲區900/900’內各數據塊的坐標)。示例顆粒存儲區900還包括未示出為包括或不包括映射數據的其他顆粒,包括顆粒903、906、908、910和912。每個顆粒由粗輪廓指定并包含動態受限于LBA(例如,特定的LBA范圍,最近存取的LBA范圍,最頻繁訪問的LBA范圍)的特定子集的數據塊。該約束可以由數據存儲系統動態定義或對于每個顆粒隨時間重新定義,以存儲寫入到該顆粒存儲區的寫入數據。此外,如果它不立即破壞、擦除或覆蓋顆粒中、另一顆粒中的任何其他非預期數據,或任何其它記錄數據區域,顆粒或顆粒的任何部分可被單獨寫入。顆粒中的數據塊的LBA到PBA關系被動態映射以允許顆粒存儲區900中的數據塊的重組。
[0073]在一個實施例中,每個顆粒的大小是固定的,但不同的顆粒可以有不同的大小。在這種方式中,數據塊的單個小顆粒可以進行排序和重新寫入到顆粒存儲區域內的較大顆粒。顆粒集也可以被“追加”或聚集,以便該組顆粒可以包含滿足相同LBA子集的數據塊。例如,多個顆粒的每一個可經配置以存儲來自相同LBA范圍的數據塊。在未來的某個時刻,這些多個顆粒中的數據塊可以被排序和/或壓縮成其它顆粒(通常為一個或多個更大的顆粒,以提供增加的數據組織)。雖然顆粒存儲可被存儲在搭迭磁性記錄區(例如參見,圖11和圖12),顆粒存儲區900被示為不搭迭的磁記錄區域。
[0074]顆粒存儲模塊914可以從不同的來源接收寫入數據塊,包括直接從主機設備、從停留區(未示出)、從隨機存取存儲器916等。這樣的數據塊也可以從不同的顆粒集合讀取到顆粒存儲區900’,然后寫入到顆粒存儲區域900中的新顆粒集合。
[0075]在一個實施例中,數據塊集合918被接收到所述隨機存取存儲器916,由顆粒排序模塊920排序,并傳送到顆粒存儲區900中的一個或多個單獨顆粒。應當理解的是,數據塊918可以在隨機存取存儲器916中進行排序或當傳輸到或從隨機存取存儲器(例如,使用分散聚集DMA技術)時進行排序。
[0076]如顆粒902中所示,數據塊不需要在單個顆粒內完全排序,但它們在給定的介質訪問(例如,在寫操作)中以排序形式寫入。其它數據塊可以被排序并寫入在顆粒內的空的PBA,如顆粒902中的LBA40 (即,PBAA4)和顆粒904中的LBA50、55和56 (即,B1, Bll和B12)。
[0077]圖10示出排序的數據塊被壓縮成單個顆粒劑1008和1012的示例顆粒存儲區1000 (該顆粒存儲區域1000’表示新的數據塊寫入到顆粒存儲區1000之前的顆粒存儲區1000的狀態。ABC和O至15表示顆粒存儲區1000/1000’內的各數據塊的坐標)。示例顆粒存儲區1000還包括未示出為包括或不包括映射數據的其他顆粒,包括顆粒1002、1003、1004、1006和1012。每個顆粒由粗輪廓指定并包含動態受限于LBA (例如,特定的LBA范圍,最近存取的LBA范圍,最頻繁訪問的LBA范圍)的特定子集的數據塊。該約束可以由數據存儲系統動態定義或對于每個顆粒隨時間重新定義,以存儲寫入到該顆粒存儲區的寫入數據。此外,如果它不立即破壞、擦除或覆蓋顆粒中、另一顆粒中的任何其他非預期數據,或任何其它記錄數據區域,顆粒或顆粒的任何部分可被單獨寫入。顆粒中的數據塊的LBA到PBA關系被動態映射以允許顆粒存儲區900中的數據塊的重組。
[0078]顆粒存儲模塊1014從顆粒存儲區域1000’的顆粒讀取數據塊到隨機存取存儲器1016,通過顆粒排序模塊1020將它們排序,并將其寫入到顆粒存儲區1000/1000’中的新的顆粒或顆粒集合(在這種情況下,顆粒1008和1012)。作為結果,顆粒1008和1012包含每個顆粒中順序PBA的高LBA排序數據塊。進一步,顆粒1002、1003、1010、1006和1004的存儲空間被釋放以供由到顆粒存儲區1000的新寫入數據使用。在這種方式中,顆粒存儲區1000中的數據塊被認為是壓實和高度組織的(例如,以LBA到PBA排序動態映射)。應當理解的是,數據也可以被就地壓縮,被重新寫回到同樣顆粒,而不是被壓縮/寫入到不同顆粒,顆粒的子集或顆粒集合。
[0079]圖11示出其中排序的數據塊被記錄到單獨顆粒1102和1104的搭迭磁記錄的條帶1108中的示例顆粒存儲區1100 (該顆粒存儲區域1100’表示新的數據塊寫入到顆粒存儲區1100之前的顆粒存儲區1100的狀態。ABC和O至15表示顆粒存儲區1100/1100’內的各數據塊的坐標)。示例顆粒存儲區域1100還包括示出不包括映射數據的相同搭迭磁記錄帶中的另一顆粒1106。每個顆粒由粗輪廓指定并包含動態受限于LBA(例如,特定的LBA范圍,最近存取的LBA范圍,最頻繁訪問的LBA范圍)的特定子集的數據塊。該約束可以由數據存儲系統動態定義或對于每個顆粒隨時間重新定義,以存儲寫入到該顆粒存儲區的寫入數據。此外,如果它不立即破壞、擦除或覆蓋顆粒中、另一顆粒中的任何其他非預期數據,或任何其它記錄數據區域,顆粒或顆粒的任何部分可被單獨寫入。顆粒中的數據塊的LBA到PBA的關系被動態映射以允許顆粒存儲區1100中的數據塊的重組。
[0080]在一個實施例中,每個顆粒的大小是固定的,但不同的顆粒可以有不同的大小。在這種方式中,數據塊的單個小顆粒可以進行排序和重新寫入到顆粒存儲區域內的較大顆粒。此外,如圖11所示,單個條帶1108可包括一個以上的顆粒。顆粒集也可以被“追加”或聚集,以便該組顆粒可以包含滿足相同LBA子集的數據塊。例如,多個顆粒的每一個可經配置以存儲來自相同LBA范圍的數據塊。在未來的某個時刻,這些多個顆粒中的數據塊可以被排序和/或壓縮成其它顆粒(通常為一個或多個更大的顆粒,以提供增加的數據組織)。
[0081]顆粒存儲模塊1114可以從不同的來源接收寫入數據塊,包括直接從主機設備、從停留區(未示出)、從隨機存取存儲器1116等。這樣的數據塊也可以從不同的顆粒集合讀取到顆粒存儲區1100’,然后寫入到顆粒存儲區域1100中的新顆粒集合。
[0082]在一個實施例中,數據塊集合1118被接收到所述隨機存取存儲器1116,由顆粒排序模塊1120排序,并傳送到顆粒存儲區1100中的一個或多個單獨顆粒。應當理解的是,數據塊1118可以在隨機存取存儲器1116中進行排序或當傳輸到或從隨機存取存儲器(例如,使用分散聚集DMA技術)時進行排序。
[0083]如顆粒1102中所示,數據塊不需要在單個顆粒內完全排序,但它們在給定的介質訪問(例如,在寫操作)中以排序形式寫入。其它數據塊可以被排序并寫入在顆粒內的空的PBA,如顆粒1102中的LBA40 (即,PBAA1)和顆粒1104中的LBA50、55和56 (即,B8、B9和B7)。
[0084]圖12示出其中排序的數據塊被記錄到單獨顆粒1102和1104的搭迭磁記錄的條帶1208中的示例顆粒存儲區1200 (該顆粒存儲區域1100’表示新的數據塊寫入到顆粒存儲區1200之前的顆粒存儲區1100的狀態。ABC和O至15表示顆粒存儲區1200/1200’內的各數據塊的坐標)。示例顆粒存儲區域1200還包括示出不包括映射數據的相同搭迭磁記錄帶中的另一顆粒1206。每個顆粒由粗輪廓指定并包含動態受限于LBA(例如,特定的LBA范圍,最近存取的LBA范圍,最頻繁訪問的LBA范圍)的特定子集的數據塊。該約束可以由數據存儲系統動態定義或對于每個顆粒隨時間重新定義,以存儲寫入到該顆粒存儲區的寫入數據。此外,如果它不立即破壞、擦除或覆蓋顆粒中、另一顆粒中的任何其他非預期數據,或任何其它記錄數據區域,顆粒或顆粒的任何部分可被單獨寫入。顆粒中的數據塊的LBA到PBA的關系被動態映射以允許顆粒存儲區1200中的數據塊的重組。
[0085]顆粒存儲模塊1214從顆粒存儲區1200’的顆粒讀取數據塊到隨機存取存儲器1216,通過顆粒排序模塊1220將它們排序,并將其寫入到顆粒存儲區1200中的新的顆粒或顆粒集合(在這種情況下,顆粒1206)。其結果是,顆粒1206在每個顆粒的連續PBA或每個顆粒的附近順序PBA (例如,諸如顆粒中存在有缺陷的PBA)的高度LBA順序的數據。進一步,顆粒1204的存儲空間被釋放以供到顆粒存儲區域1200的新寫入數據使用。在這種方式中,顆粒存儲區1200中的數據塊被認為是壓實和高度組織的(例如,動態地映射在LBA到PBA的排序)。
[0086]在隨后的操作中,顆粒存儲模塊1214可以寫入滿足適當的LBA相關約束的其它數據塊到顆粒1202和1204。例如,通過動態映射,顆粒1204的約束(以前存儲LBA50-59的數據塊)可以改變以存儲從40-49的LBA。因此,顆粒存儲模塊1214可以寫入LBA40-49范圍中的新的數據塊集合到顆粒1204。通過附加顆粒1204至相同的基于LBA約束作為顆粒1202,該顆粒1202和1204的集合可以支持數據塊的相同LBA分組。也就是說,LBA40-49中的非陳舊數據塊可以跨越兩個顆粒1202和1204。
[0087]類似的操作也可以提供顆粒劑存儲區1200內的數據塊壓實,諸如關于圖10所述。此外,該動態映射可允許壓縮算法被應用到顆粒存儲區1200中的數據,得到需要比LBA在顆粒內存儲數據相比需要更少PBA的選擇。
[0088]此外,和停留區域相同,局部碼字和/或增加碼字可用作寫入到部分填充顆粒的數據塊。以這種方式,當數據塊寫入數據存儲時,另外的糾錯碼(ECC)片也被寫入了顆粒存儲區域1200。新的數據塊和新的錯誤代碼的組合被稱為“碼字”。當記錄到顆粒存儲區域1200時,可變數量的數據(例如,數據塊的數目可變)。為了維持其他ECC,碼字的大小可以不同或其他ECC以增量方式計算并寫在固定邊界(例如,在合適的固定位置,而不是可變的字大小)。
[0089]圖13示出在數據存儲系統中包括隨機存取存儲器1300、停留區1302、顆粒存儲區1304和目的存儲區域1306的存儲的示例等級。數據塊被記錄在停留區1302中的單獨排序集合(“組塊”)。這些數據塊已被從隨機存取存儲器1300寫入到停留區1302。在一個實施例中,先前未排序的數據塊根據給定排序順序(例如,在圖13中所示的情況下,LBA順序)進行排序。在其他實施方式中,數據塊傳送到或從隨機存取存儲器1300期間進行排序(例如,通過分散聚集DMA進程)。
[0090]當停留區填滿了單獨排序的數據集合時,數據存儲系統執行流程,使空間可用于新的寫入數據。在某些情況下,當對應于相同LBA的新數據被寫入到停留區1302時,停留區1302的數據塊可能會過時。因此,數據存儲系統可以執行無用單元收集或壓實以從保存陳舊數據的PBA取回存儲空間。在其他情況下,停留區1302的數據塊可被讀入隨機存取存儲器1300并由排序模塊1308進行排序,用于存儲到該顆粒存儲區1304。
[0091]圖13所示的顆粒存儲區1304采用包含3顆粒1312、1314和1316的搭迭磁記錄帶1310的形式。ABC和從O到15表示顆粒存儲區1300內各個數據塊的坐標。在一個實施方式中,停留區1302中的數據塊根據每個顆粒的動態映射約束被讀入隨機存取存儲器1300、由排序模塊1308排序,并寫入到顆粒。例如,在圖13中,顆粒1312被分配到LBA40-49,顆粒1314被分配到LBA50-59,以及顆粒1316被分配到LBA60-69。
[0092]應當理解的是,圖13中所示的動態映射約束僅僅是實例。此外,個別顆粒可以使用相同約束動態映射以追加相同約束內的2個顆粒(有效生長的顆粒)。例如,顆粒1312和1314的LBA約束可以動態地映射以形成包含LBA30-61的一組顆粒。因此,LBA60可以被寫入到PBA A9,以及LBA61可以被寫入到PBA A2。這樣,不僅顆粒的LBA含量變化,多顆粒可以聚合以形成有序集合的顆粒,這有助于壓實和過度配置。在一些實施例中,數據塊可以通過隨機存取存儲器1300從停留區1302寫入到目標存儲區1306,而不用首先被存儲在顆粒儲存區1304中。
[0093]在圖13中,在它們被寫入到顆粒存儲區1304 (例如,數據存儲系統的動態映射在停留區1302中不再映射邏輯塊地址的數據塊到PBA)之后,停留區1302中的數據塊被標記為失效,以及停留區1302中的PBA因此可以用于新的寫入數據。此外,該目標存儲區域1306目前沒有寫入任何數據塊。還要注意的是:即使相同的數據塊已被寫入到停留區1302、顆粒存儲區1304,或者目標存儲區1306,隨機存取存儲器1300可保留由主機設備存取的一個或多個數據塊。這種能力,通過動態映射LBA到PBA以保持數據塊的額外拷貝的能力允許數據存儲系統以確定由主機設備要求的任何讀取數據可用的最低延遲訪問選項(例如,動態映射允許數據存儲系統決定是否從存儲介質或從隨機存取存儲器讀取請求的數據)。
[0094]圖14示出包括隨機存取存儲器1400、停留區1402、顆粒存儲區1404和目的存儲區域1406的存儲的示例等級。停留區1402包括新的單獨排序的組塊。顆粒存儲區域1404包括具有陳舊數據塊(它可以被回收并再用于新的寫入數據)的顆粒1412和1414,以及包括當寫入目的存儲區1406時不陳舊的數據的顆粒1416。因此,顆粒1416包含實時數據的其他副本,其可通過存儲控制器讀出。該數據拷貝可以被保持一段時間(例如,直至顆粒被壓縮)。
[0095]該目標存儲區域1406可以是非搭迭格式(如圖所示)或搭迭格式。來自顆粒存儲區1404的排序數據塊以高度有序的結構通過所述隨機存取存儲器寫入到目標存儲區1406,以提供相對低的平均延遲寫入。
[0096]圖15示出用于存儲數據塊到顆粒存儲區的示例性操作1500。圖15的操作1500描述從停留區通過隨機存取存儲器到顆粒存儲區的寫入操作。然而,應當理解的是,數據塊也可以通過隨機存取存儲器從主機設備寫入顆粒存儲,無需停留區中的中間存儲。
[0097]讀操作1502讀取停留區中單獨排序的數據塊。傳輸操作1504傳送所讀取的數據塊到隨機接入存儲器。排序操作根據動態定義的顆粒約束排序1506所傳輸的數據。寫入操作1508按照所定義的顆粒約束寫入排序的數據塊,到顆粒存儲區1508中的一個或多個顆粒。
[0098]映射操作1510動態地重新映射的數據塊的LBA到顆粒存儲區1508中的一個或多個顆粒的寫入PBA。標記操作1512標記之前在停留區中存儲寫入數據的PBA為陳舊的。注意:該映射操作1510和標記操作1512可被集成到相同的操作-重新映射LBA固有標記以前的PBA為陳舊。收回操作1514回收停留區域內的陳舊PBA用于新寫入的數據使用。
[0099]圖16示出用于存儲數據塊到目標存儲區的示例性操作1600。讀取操作1602從顆粒存儲區中的單個排序的顆粒集讀取數據塊。傳輸操作1604傳送所讀取的數據塊到隨機存取存儲器。根據定義的順序,排序操作1606排序所傳送的數據。根據相對靜態的LBA到PBA映射,寫入操作1608寫入排序的數據塊到目標存儲區。應當指出的是:對于大的離散區域的LBA至PBA的映射(例如,256MB)仍可隨時間(例如,碎片整理過程中,當檢測到損壞的PBA,等)發生變化。
[0100]寫入目的存儲區域中的數據塊可以保留在隨機存取存儲器或顆粒存儲區,作為數據的附加現實拷貝。或者,所述相應顆粒和/或隨機存取存儲器可重新用于新的寫入數據。
[0101]本文所述技術的實施例實現為一個或多個計算機系統中的邏輯步驟。本技術的邏輯操作被實現為(I)在一個或多個計算機系統中執行的處理器實現的步驟序列和(2) —個或多個計算機系統中的互連機器或電路模塊。依賴于實現該技術的計算機系統的性能要求,本實施例是選擇的主題。因此,構成本文所述技術的實施例的邏輯操作被不同地稱為操作、步驟、對象或模塊。此外,應當理解的是:除非明確要求或以由權利要求語言固有地需要的特定順序,邏輯操作可以按任何順序執行。
[0102]數據存儲和/或存儲器可以由各種類型的存儲器實現,諸如硬盤介質、包含多個存儲設備的存儲陣列、光介質、固態硬盤技術、R0M、RAM,以及其他技術。該操作可以以固件、軟件、硬連線電路、門陣列技術和其它技術來實現,由微處理器、微處理器核心、微控制器、專用電路或其它處理技術執行或輔助。應當理解的是:寫入控制器、存儲控制器、數據寫電路、數據讀取和恢復電路、陳舊數據標記模塊、排序模塊以及數據存儲系統的其他功能模塊可以包括或與處理器合作,用于處理處理器可讀指令,用于執行系統實現過程。
[0103]上面的說明書,示例和數據提供了本技術的示例性實施例的結構和使用的完整描述。因為不脫離本技術的精神和范圍的情況下可以進行該技術的許多實施例,本發明存在于所附的權利要求。此外,不同實施例的結構特征可以與另一個實施例中的結合,而不脫離所附權利要求書。
【權利要求】
1.一種方法,包括: 將分組為邏輯塊地址的子集數據塊寫入到數據存儲的顆粒存儲區中的一個或多個單獨顆粒,其中每個顆粒動態受限于邏輯塊地址的子集。
2.根據權利要求1實施的方法,進一步包括: 動態映射寫入數據塊的邏輯塊地址到所述數據存儲的所述顆粒存儲區中的新的物理塊地址。
3.根據權利要求1所述的方法,進一步包括: 按照邏輯塊地址的子集,排序所述數據塊。
4.根據權利要求1所述的方法,其中,顆粒存儲區中的至少一個顆粒動態受限于和另一顆粒的相同邏輯塊地址的子集。
5.如權利要求1所述的方法,進一步包括: 讀取在數據存儲的顆粒存儲區中記錄的多個單獨顆粒到隨機存取存儲器中; 根據邏輯塊地址的另一子集,重新排序在隨機存取存儲器中接收的多個單獨顆粒中讀取的數據塊;以及 寫入重新排序的數據塊到顆粒存儲區中的新顆粒,其中新顆粒受限于邏輯塊地址的其他子集。
6.根據權利要求1所述的方法,進一步包括: 讀取在數據存儲的顆粒存儲區中記錄的多個單獨顆粒到隨機存取存儲器中; 從隨機訪問存儲器向主機設備寫入多個單獨顆粒的多個數據塊。
7.根據權利要求1所述的方法,進一步包括: 讀取在數據存儲的顆粒存儲區中記錄的多個單獨顆粒到隨機存取存儲器中; 根據LBA-PBA映射,重新排序在隨機存取存儲器中接收的多個單獨顆粒中讀取的數據塊;以及 寫入重新排序的數據塊到目標存儲區的LBA-PBA映射區。
8.一種數據存儲系統,包括: 數據存儲; 隨機訪問存儲器;以及 存儲控制器,通信地耦合到所述隨機存取存儲器和所述數據存儲并且被配置為:將分組為邏輯塊地址的子集數據塊寫入到數據存儲的顆粒存儲區中的一個或多個單獨顆粒,其中每個顆粒動態受限于邏輯塊地址的子集。
9.根據權利要求8所述的數據存儲系統,其中所述存儲控制器進一步經配置以: 動態映射寫入數據塊的邏輯塊地址到所述數據存儲的所述顆粒存儲區中的新的物理塊地址。
10.根據權利要求8所述的數據存儲系統,進一步包括: 排序模塊進一步經配置以:按照邏輯塊地址的子集,排序所述數據塊。
11.根據權利要求8所述的數據存儲系統,其中,顆粒存儲區中的至少一個顆粒動態受限于和另一顆粒的相同邏輯塊地址的子集。
12.如權利要求8所述的數據存儲系統,其中所述存儲控制器進一步經配置以:讀取在數據存儲的顆粒存儲區中記錄的多個單獨顆粒到隨機存取存儲器中,并進一步包括:排序模塊經配置以:根據將寫入到顆粒存儲區中新顆粒的邏輯塊地址的另一子集,重新排序在隨機存取存儲器中接收的多個單獨顆粒中讀取的數據塊;其中新顆粒受限于邏輯塊地址的其他子集。
13.根據權利要求8所述的數據存儲系統,其中所述存儲控制器進一步經配置以:讀取在數據存儲的顆粒存儲區中記錄的多個單獨顆粒到隨機存取存儲器中,并進一步包括: 排序模塊,經配置以根據LBA-PBA映射,重新排序在隨機存取存儲器中接收的多個單獨顆粒中讀取的數據塊,寫入所述重新排序的數據塊到目標存儲區的靜態映射區。
14.存儲處理器可讀指令的一個或多個處理器可讀存儲介質,用于在數據存儲系統中執行系統可實現過程,所述過程包括: 將分組為邏輯塊地址的子集數據塊寫入到數據存儲的顆粒存儲區中的一個或多個單獨顆粒,其中每個顆粒動態受限于邏輯塊地址的子集。
15.如權利要求14所述的一個或多個處理器可讀存儲介質,其中所述處理進一步包括: 動態映射寫入數據塊的邏輯塊地址到所述數據存儲的所述顆粒存儲區中的新的物理塊地址。
16.根據權利要求14所述的一個或多個處理器可讀存儲介質,其中排序操作包括: 按照邏輯塊地址的子集 ,排序所述數據塊。
17.根據權利要求14所述的一個或多個處理器可讀存儲介質,其中,顆粒存儲區中的至少一個顆粒動態受限于和另一顆粒的相同邏輯塊地址的子集。
18.如權利要求14所述的一個或多個處理器可讀存儲介質,其中,所述處理包括: 讀取在數據存儲的顆粒存儲區中記錄的多個單獨顆粒到隨機存取存儲器中; 根據邏輯塊地址的另一子集,重新排序在隨機存取存儲器中接收的多個單獨顆粒中讀取的數據塊;以及 寫入重新排序的數據塊到顆粒存儲區中的新顆粒,其中新顆粒受限于邏輯塊地址的其他子集。
19.根據權利要求14所述的一個或多個處理器可讀存儲介質,其中,所述處理包括: 讀取在數據存儲的顆粒存儲區中記錄的多個單獨顆粒到隨機存取存儲器中; 從隨機訪問存儲器向主機設備寫入多個單獨顆粒的多個數據塊。
20.根據權利要求14所述的一個或多個處理器可讀存儲介質,其中所處處理包括: 讀取在數據存儲的顆粒存儲區中記錄的多個單獨顆粒到隨機存取存儲器中; 根據LBA-PBA映射,重新排序在隨機存取存儲器中接收的多個單獨顆粒中讀取的數據塊;以及 寫入重新排序的數據塊到目標存儲區的LBA-PBA映射區。
【文檔編號】G06F12/02GK104049908SQ201410093915
【公開日】2014年9月17日 申請日期:2014年3月14日 優先權日:2013年3月15日
【發明者】M·A·蓋爾特納, B·T·埃德加 申請人:希捷科技有限公司