欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

使用閃存的存儲系統(tǒng)的制作方法

文檔序號:6580360閱讀:160來源:國知局
專利名稱:使用閃存的存儲系統(tǒng)的制作方法
技術領域
本發(fā)明涉及一種能夠在多個閃存存儲器模塊之間進行平均讀寫的使用閃 存存儲器的存儲系統(tǒng)。
背景技術
本申請請求2006年3月29日提交的、申請?zhí)枮?006-092217的日本專 利申請的利益,在此處通過參考而引入其公開。
用于存儲數(shù)據(jù)的系統(tǒng)(以下簡稱"存儲系統(tǒng)")通常包括隨機存取非易失 性存儲介質(zhì)。隨機存取非易失性存儲介質(zhì)包括,例如磁盤或光盤。近來,常 見的存儲系統(tǒng)具有許多光盤驅(qū)動器。
當各種半導體技術進一步提高時,開發(fā)了諸如閃存存儲器之類的非易失 性半導體存儲器,在這種非易失性半導體存儲器上能夠?qū)?shù)據(jù)進行擦除。閃 存存儲器是一種半導體存儲器,其是用作只讀存儲器(ROM)以及既可讀又 可寫的隨機存取存儲器(RAM)的非易失性存儲器。與具有許多小光盤驅(qū)動 器的存儲系統(tǒng)相比,把閃存存儲器作為存儲介質(zhì)的存儲系統(tǒng)在使用壽命、功 耗節(jié)約以及存取時間上比較出色。
此處將給出對閃存存儲器的說明。
通常,由于其屬性的原因,不能把數(shù)據(jù)直接重寫到閃存存儲器上。也就 是說,為了把數(shù)據(jù)重寫到閃存存儲器上,不得不把存儲在閃存存儲器上的有 效數(shù)據(jù)轉移到其他位置。因此,在逐個存儲塊的基礎上(on block by block basis)對存儲數(shù)據(jù)進行擦除。此后,把其他數(shù)據(jù)寫入到已經(jīng)擦除了數(shù)據(jù)的每 個存儲塊中。存儲塊表示每次擦除數(shù)據(jù)的的單位存儲區(qū)域。在閃存存儲器中,例如,其中擦除了數(shù)據(jù)的存儲區(qū)域總是設置為"1"。 因此,當重寫數(shù)據(jù)時有可能通過二進制比特轉換把"l"重寫為"0"。然而, 除非擦除了存儲數(shù)據(jù),否則不可能直接把"0"重寫為"1"。為了把數(shù)據(jù)重寫 到閃存存儲器上,擦除了閃存存儲器的整個存儲塊。因此,當把數(shù)據(jù)重寫到 閃存存儲器上時,閃存存儲器總是需要進行存儲塊擦除。
閃存存儲器有存儲塊擦除次數(shù)的限制。例如,保證了存儲塊擦除次數(shù)高 達每個存儲塊00,000次。如果特定存儲塊由于密集地進行數(shù)據(jù)重寫的原因 而經(jīng)歷了過多的擦除次數(shù),那么就會變得再也不可能對該存儲塊中的數(shù)據(jù)進 行擦除,這會引起問題。因此,在使用閃存存儲器作為存儲介質(zhì)的存儲系統(tǒng) 中,必須準備平均讀寫處理以防止在特定存儲塊上出現(xiàn)密集的擦除次數(shù)。
JP-A-8-16482中公開了一種平均讀寫方法,其中存儲系統(tǒng)采用映射管理 方法以便提供主機與閃存存儲器之間的存儲塊聯(lián)系關系(block association relationship)的靈活性,以解決當計算機訪問邏輯存儲塊時由邏輯存儲塊單 方面地(one-sidedly)選擇閃存存儲器的物理存儲塊的問題。在這個方案中, 這種常規(guī)存儲系統(tǒng)對主機訪問的每個邏輯存儲塊的寫入次數(shù),以及由存儲系 統(tǒng)擦除的每個物理存儲塊的擦除次數(shù)進行管理。如果存在寫入次數(shù)過大的邏 輯存儲塊和擦除次數(shù)過大的物理存儲塊;以及寫入次數(shù)較小的邏輯存儲塊和 擦除次數(shù)較小的物理存儲塊,則以下述方式來提供映射,即,允許寫入次數(shù) 過大的邏輯存儲塊對應于擦除次數(shù)較小的物理存儲塊,并且允許寫入次數(shù)較 小的邏輯存儲塊對應于擦除次數(shù)過大的物理存儲塊。
通常,閃存存儲器模塊(以下簡稱"PDEV")是由存儲器控制器和多個 閃存存儲器芯片構成的,并且該存儲器控制器提供與上述常規(guī)方案相同的平 均讀寫處理。在大規(guī)模存儲系統(tǒng)中,可以想到作為存儲介質(zhì)的許多閃存存儲 器彼此相連接以建立大容量存儲器。在這種情況下,通過利用控制器來為每 個閃存存儲器提供平均讀寫。然而,在其中特定閃存存儲器模塊經(jīng)歷了密集 的重寫次數(shù)的情況中,當閃存存儲器模塊的擦除次數(shù)愈加增大時,模塊損耗 越快。為了防止特定模塊上的擦除次數(shù)增大,需要在多個閃存存儲器模塊之 間提供平均讀寫。
如果把上述平均讀寫方案施加于具有與之相連接的許多閃存存儲器的存儲系統(tǒng),則會存在閃存存儲器模塊中的存儲器控制器會遮蔽閃存存儲器芯片 中的物理存儲塊的問題,這將防礙存儲系統(tǒng)中的存儲控制器管理每個物理存 儲塊的擦除次數(shù)。
此外,如果把常規(guī)平均讀寫方案應用于在閃存存儲器模塊中不使用存儲 器控制器(那就是說,不為每個閃存存儲器模塊提供平均讀寫)的整個存儲 系統(tǒng)上,則存儲系統(tǒng)必須整體地管理非常多的物理存儲塊的擦除次數(shù),導致 管理負擔的增加和存儲系統(tǒng)性能的惡化。
鑒于上述問題,需要提供一種使用閃存存儲器的存儲系統(tǒng),其能夠在多 個閃存存儲器模塊之間進行平均讀寫而不必使用閃存存儲器物理存儲塊上的 映射信息,以及需要提供一種用于該存儲系統(tǒng)的平均讀寫方法和用于該存儲 系統(tǒng)的平均讀寫程序。

發(fā)明內(nèi)容
在本發(fā)明的一個方面,提供了一種使用閃存存儲器的存儲系統(tǒng),包括存 儲控制器和作為存儲介質(zhì)的多個閃存存儲器模塊。每個閃存存儲器模塊包括 至少一個閃存存儲器芯片,以及用于對屬于該閃存存儲器芯片的存儲塊的擦 除次數(shù)進行平均的存儲器控制器。存儲控制器把多個閃存存儲器模塊組合成 第一邏輯組,把用于訪問屬于第一邏輯組的閃存存儲器模塊的第一地址轉變 成用于在存儲控制器中指示第一地址的第二地址,并且把多個第一邏輯組組 合成第二邏輯組。
在本發(fā)明的另一個方面,提供了一種用于使用閃存存儲器的存儲系統(tǒng)的 平均讀寫方法,該存儲系統(tǒng)包括閃存存儲器模塊,包括至少一個閃存存儲 器芯片和用于對屬于該閃存存儲器芯片的存儲塊的擦除次數(shù)進行平均的存儲 器控制器;以及存儲控制器,用于把閃存存儲器模塊組合成第一邏輯組,把 用于訪問屬于第一邏輯組的閃存存儲器模塊的第一地址轉變成用于在存儲控 制器中指示第一地址的第二地址,以及把多個第一邏輯組組合成第二邏輯組。
該方法包括允許存儲控制器對于閃存存儲器模塊中的每個預定存儲區(qū)
域的寫入量提供次數(shù)管理的步驟;允許存儲控制器計算平均擦除次數(shù)的步驟,
該平均擦賒次數(shù)是通過把經(jīng)過預定時段每個閃存存儲器模塊的總寫入量除以 閃存存儲器模塊的容量而得到的;以及允許存儲控制器判斷平均擦除次數(shù)的最大值和最小值之間的差是否不小于預定值的第一判斷步驟。在第一判斷步 驟,如果平均擦除次數(shù)的差不小于預定值,則該方法進一步包括允許存儲 控制器在具有平均擦除次數(shù)的最大差值的閃存存儲器模塊之中,在具有最大 寫入量的存儲區(qū)域和具有最小寫入量的存儲區(qū)域之間交換數(shù)據(jù),并且改變第 一地址與第二地址之間的映射信息的步驟。
在本發(fā)明的又一個方面中,提供了一種用于使用閃存存儲器的存儲系統(tǒng) 的平均讀寫程序,該存儲系統(tǒng)包括閃存存儲器模塊,包括至少一個閃存存 儲器芯片和用于對屬于該閃存存儲器芯片的存儲塊的擦除次數(shù)進行平均的存 儲器控制器;以及存儲控制器,用于把多個閃存存儲器模塊組合成第一邏輯 組,把用于訪問屬于第一邏輯組的閃存存儲器模塊的第一地址轉變成用于在 存儲控制器中指示第一地址的第二地址,以及把多個第一邏輯組組合成第二 邏輯組。
該程序執(zhí)行允許計算機對于閃存存儲器模塊中的每個預定存儲區(qū)域的 寫入量提供次數(shù)管理的流程;允許計算機計算平均擦除次數(shù)的流程,該平均 擦除次數(shù)是通過把經(jīng)過預定時段每個閃存存儲器模塊的總寫入量除以閃存存
儲器模塊的容量而得到的;計算機判斷平均擦除次數(shù)的最大值和最小值之間
的差是否不小于預定值的第一判斷的流程。如果差值不小于預定值,則該程 序進一步包括用于允許計算機改變第一地址和第二地址之間的映射信息的流 程。
本發(fā)明還提供了一種使用閃存存儲器的存儲系統(tǒng),包括存儲控制器和通 過多條通道與存儲控制器連接的、作為存儲介質(zhì)的多個閃存存儲器模塊,每
個閃存存儲器模塊包括至少一個閃存存儲器芯片。存儲控制器將多個閃存 存儲器模塊中連接在多條通道的同一通道上的多個閃存存儲器模塊組合成第 一邏輯組;把各第一邏輯組的多個閃存存儲器模塊相對應的第一地址轉換成
用于在存儲控制器中指示第一地址的第二地址;把多個第一邏輯組組合成第
二邏輯組;針對各閃存存儲器模塊,對屬于該閃存存儲器模塊的閃存存儲器 芯片的塊進行擦除次數(shù)的平均;根據(jù)各閃存存儲器模塊的數(shù)據(jù)寫入量或者屬 于各閃存存儲器模塊的閃存存儲器的平均擦除次數(shù),在屬于所述第一邏輯組 的多個閃存存儲器模塊之間交換數(shù)據(jù),然后對應于該數(shù)據(jù)交換,改變第一地址與第二地址之間的映射。
當結合附圖一起閱讀以下的發(fā)明的詳細說明,本發(fā)明的其他特征和優(yōu)點 會變得更加明顯。


圖1是顯示根據(jù)本發(fā)明實施例的存儲系統(tǒng)的結構的框圖。
圖2是顯示通道適配器的結構的框圖。
圖3是顯示存儲適配器的結構的框圖。
圖4是顯示閃存存儲器模塊的結構的框圖。
圖5是顯示閃存存儲器模塊的存儲塊的結構的框圖。
圖6是顯示根據(jù)本發(fā)明的該實施例的存儲系統(tǒng)的邏輯組結構和地址轉換
層次(hierarchy)的框圖。
圖7是顯示根據(jù)本發(fā)明該實施例的存儲系統(tǒng)的RAID組的結構的框圖。 圖8是顯示其中閃存存儲器模塊和硬盤驅(qū)動器與存儲控制器相連接的例
子的框圖。
圖9是顯示用于在多個閃存存儲器模塊之間進行平均讀寫的方法的流程圖。
圖10顯示了在根據(jù)本發(fā)明實施例的平均讀寫流程所伴隨的數(shù)據(jù)交換流 程之前,虛擬頁面地址和邏輯頁面地址之間的地址轉換表。
圖11顯示了在根據(jù)本發(fā)明實施例的平均讀寫流程所伴隨的數(shù)據(jù)交換流 程之后,虛擬頁面地址和邏輯頁面地址之間的地址轉換表。
圖12顯示了存儲控制器中管理的用于每個閃存存儲器模塊的擦除次數(shù) 管理表。
圖13是用于說明平均讀寫流程所伴隨的數(shù)據(jù)交換流程之前的虛擬頁面 地址和邏輯頁面地址之間的映射的框圖。
圖14是用于說明平均讀寫流程所伴隨的數(shù)據(jù)交換流程之后的虛擬頁面 地址和邏輯頁面地址之間的映射的框圖。
圖15顯示了數(shù)據(jù)交換流程之前的初始狀態(tài)。
圖16顯示了數(shù)據(jù)交換流程期間的狀態(tài)。圖17顯示了另一個數(shù)據(jù)交換流程期間的狀態(tài)。
圖18顯示了另一個數(shù)據(jù)交換流程期間的狀態(tài)。
圖19顯示了另一個數(shù)據(jù)交換流程期間的狀態(tài)。 圖20顯示了另一個數(shù)據(jù)交換流程期間的狀態(tài)。
圖21顯示了另一個數(shù)據(jù)交換流程期間的狀態(tài)。
圖22顯示了另一個數(shù)據(jù)交換流程期間的狀態(tài)。
圖23顯示了另一個數(shù)據(jù)交換流程期間的狀態(tài)。
圖24顯示了數(shù)據(jù)交換流程之后的最終狀態(tài)。
圖25是顯示在數(shù)據(jù)交換流程之前/之后偏移量值如何轉變的表。
圖26是顯示如圖15到圖24所述的、偏移量值為"0"的邏輯頁面地址 區(qū)域與偏移量值為"1"的邏輯頁面地址區(qū)域之間的數(shù)據(jù)交換流程的流程圖。
圖27是顯示偏移量值為"0"的邏輯頁面地址區(qū)域與偏移量值為"0"的 邏輯頁面地址區(qū)域之間的數(shù)據(jù)交換流程的流程圖。
圖28是顯示偏移量值為"1"的邏輯頁面地址區(qū)域與偏移量值為"1"的 邏輯頁面地址區(qū)域之間的數(shù)據(jù)交換流程的流程圖。
圖29是用于說明數(shù)據(jù)交換流程之前虛擬頁面地址和邏輯頁面地址之間 的映射的框圖。
圖30是用于說明數(shù)據(jù)交換流程之后虛擬頁面地址和邏輯頁面地址之間 的映射的框圖。
圖31是用于說明數(shù)據(jù)交換流程之前虛擬頁面地址與邏輯頁面地址之間
的地址轉換表的一個表格。
圖32是用于說明數(shù)據(jù)交換流程之后虛擬頁面地址與邏輯頁面地址之間
的地址轉換表的一個表格。
圖33是用于說明數(shù)據(jù)交換流程之前的自由區(qū)域管理表的--個表格。
圖34是用于說明數(shù)據(jù)交換流程之后的自由區(qū)域管理表的一個表格。
圖35是顯示如何替換閃存存儲器模塊的步驟的流程圖。
圖36顯示了當閃存存儲器模塊上出現(xiàn)故障時的情況。
圖37是用于說明閃存存儲器模塊替換之后的狀態(tài)的框圖。
圖38是顯示在閃存存儲器模塊替換之后如何重建數(shù)據(jù)的框圖。
10圖39是顯示其中將備份組中的閃存存儲器模塊替換為新模塊的情況的 框圖。
具體實施例方式
在下文中參考附圖,提供關于本發(fā)明的實施例的說明。 <概述>
根據(jù)本發(fā)明實施例的一種使用閃存存儲器的存儲系統(tǒng),包括存儲控制器 和作為存儲介質(zhì)的多個閃存存儲器模塊。每個閃存存儲器模塊(例如,閃存
存儲器模塊P0)包括至少一個閃存存儲器芯片(例如,閃存存儲器芯片405), 以及用于對屬于該閃存存儲器芯片的存儲塊(例如,存儲塊406)的擦除次 數(shù)進行平均的存儲器控制器(例如,控制器MC)。存儲控制器(例如,存儲 控制器SC)把多個閃存存儲器模塊組合成第一邏輯組(例如,平均讀寫組 WOO),并且把用于訪問屬于第一邏輯組的閃存存儲器模塊的第一地址(例如, 邏輯頁面地址600)轉換成用于在存儲控制器中表示第一地址的第二地址(例 如,虛擬頁面地址604),并且將多個第一邏輯組進行組合以構成第二邏輯組
(例如,RAID (Redundant Array of Independent Disks ,獨立磁盤冗余陣列) 組)。
圖1是顯示根據(jù)本實施例的存儲系統(tǒng)的結構的框圖。 存儲系統(tǒng)100包括存儲控制器SC和閃存存儲器模塊POO到P35。 存儲控制器SC包括通道適配器CA0、 CAl,緩沖存儲器CM0、 CMl, 存儲適配器SA0、 SAl,以及互連網(wǎng)絡NWO、 NW1。雖然通道適配器CAO、 CA1,緩沖存儲器CM0、 CMl,存儲適配器SAO、 SAl在附圖中是分別成對 顯示的,但是那些組件不限制于成對提供,而是可以以任意數(shù)量提供。
互連網(wǎng)絡NW0、 NW1可以是構成存儲控制器SC的部分的交換器 (Switch)以及互連設備。具體地說,互連網(wǎng)絡NW0、 NW1將通道適配器 CA0、緩沖存儲器CMO以及存儲適配器SAO相互連接?;ミB網(wǎng)絡NW0、 NW1 還將通道適配器CA1、緩沖存儲器CM1以及存儲適配器SA1相互連接。
如隨后在圖2中所示的通道適配器CA0,經(jīng)由通道C00、 C01、 C02、 C03 而與外部主機系統(tǒng)(未顯示)相連接。通道適配器CA1經(jīng)由通道CIO、 Cll、 C12、 C13而與外部主機系統(tǒng)(未顯示)相連接。主機系統(tǒng)表示用于對根據(jù)本
ii實施例的存儲系統(tǒng)100進行數(shù)據(jù)讀取和寫入的計算機。存儲系統(tǒng)100經(jīng)由光
纖通道交換器、FC-AL (光纖頻通道仲裁環(huán))、SAS (串行附屬SCSI)擴展器 等等而與主機系統(tǒng)或其他存儲系統(tǒng)相連接。
緩沖存儲器CM0暫時地存儲從通道適配器CA0和存儲適配器SAO所接 收到的數(shù)據(jù)。緩沖存儲器CM1暫時地存儲從通道適配器CA1和存儲適配器 SA1中所接收的數(shù)據(jù)。
存儲適配器SAO與閃存存儲器模塊POO等等(隨后在圖3中描述)相連 接。具體地說,存儲適配器SAO經(jīng)由通道D00而與閃存存儲器模塊POO到 P05相連接。存儲適配器SAO還經(jīng)由通道D01與閃存存儲器模塊P10到P15 相連接。存儲適配器SAO更進一步經(jīng)由通道D02與閃存存儲器模塊P20到 P25相連接。此外,存儲適配器SA0經(jīng)由通道D03而與閃存存儲器模塊P30 到P35相連接。
存儲適配器SA1與閃存存儲器模塊POO等等相連接。具體地說,存儲適 配器SA1經(jīng)由通道DIO而與閃存存儲器模塊POO到P05相連接。存儲適配器 SA1還經(jīng)由通道Dll與閃存存儲器模塊P10到P15相連接。存儲適配器SA1 更進一步經(jīng)由通道D12與閃存存儲器模塊P20到P25相連接。此外,存儲適 配器SA1經(jīng)由通道D13而與閃存存儲器模塊P30到P35相連接。具體地說, 存儲適配器和閃存存儲器模塊經(jīng)由光纖通道交換器、FC-AL、 SAS擴展器等 等而相互連接。
通道適配器CA0、CA1和存儲適配器SA0、SA1與維護終端SVP相連接。 維護終端SVP向通道適配器CAO、 CA1和/或存儲適配器SAO、 SA1發(fā)送由 存儲系統(tǒng)100的管理員所輸入的設置信息。代替采用存儲適配器SAO和通道 適配器CAO,存儲系統(tǒng)100可裝有單個適配器。在這種情況下,這個適配器 執(zhí)行由存儲適配器SAO和通道適配器CAO所執(zhí)行的流程。
圖2是顯示通道適配器的結構的框圖。通道適配器CAO包括主機通道接 口21、緩沖存儲器接口22、網(wǎng)絡接口23、處理器24、本地存儲器25以及處 理器外圍設備控制單元26。
主機通道接口 21經(jīng)由通道COO、 COl、 C02、 C03而與外部主機系統(tǒng)(未 顯示)相連接。主機通道接口 21在通道COO、 COK C02、 C03上的數(shù)據(jù)傳送協(xié)議和存儲控制器SC內(nèi)部的數(shù)據(jù)傳送協(xié)議之間進行相互轉換。
緩沖存儲器接口 22與互連網(wǎng)絡NW0、 NW1相連接。網(wǎng)絡接口 23與維 護終端SVP相連接。主機通道接口 21和緩沖存儲器接口 22經(jīng)由信號線27 相互連接。
處理器24通過運行存儲在本地存儲器25上的每一個程序而執(zhí)行各種流 程。具體地說,處理器24控制主機系統(tǒng)和互連網(wǎng)絡NW0、 NW1之間的數(shù)據(jù)
傳送o
本地存儲器25存儲由處理器24所運行的程序。本地存儲器25存儲處理 器24所要查閱的表。該表可以由管理員來設置或改變。
在這種情況下,管理員輸入關于設置或改變該表的信息。維護終端SVP 經(jīng)由網(wǎng)絡接口 23把管理員輸入的信息發(fā)送給處理器24。處理器24根據(jù)所接 收的信息而生成或改變該表。然后,處理器24將該表存儲在本地存儲器25 上。
處理器外圍設備控制單元26控制主機接口通道21、緩沖存儲器接口 22、 網(wǎng)絡接口23、處理器24以及本地存儲器25之間的數(shù)據(jù)傳送。處理器外圍設 備控制單元26例如是芯片組等等。通道適配器CA1具有與通道適配器CAO 相同的結構。因此,此處省去了對通道適配器CA1的說明。
圖3是顯示根據(jù)本實施例的存儲適配器的框圖。存儲適配器SAO包括緩 沖存儲器接口31、存儲器通道接口32、網(wǎng)絡接口33、處理器34、本地存儲 器35以及處理器外圍設備控制單元36。
緩沖存儲器接口 31與互連網(wǎng)絡NWO、 NW1相連接。存儲器通道接口 32 與通道DOO、 DOl、 D02、 D03相連接。存儲器通道接口 32在通道DOO、 D01 、 D02、 D03上的數(shù)據(jù)傳送協(xié)議和存儲控制器SC內(nèi)部的數(shù)據(jù)傳送協(xié)議之間進行 相互轉換。緩沖存儲器接口 31和存儲器通道接口 32經(jīng)由信號線37相互連接。 網(wǎng)絡接口 33與維護終端SVP相連接。
處理器34通過運行存儲在本地存儲器35上的每一個程序而執(zhí)行各種流程。
本地存儲器35存儲由處理器34所運行的程序。本地存儲器35同樣存儲 由處理器34所查閱的表。該表可以由管理員來設置或改變。
13在這種情況下,管理員把關于設置或改變該表的信息輸入到維護終端 SVP中。維護終端SVP經(jīng)由網(wǎng)絡接口 33把管理員輸入的信息發(fā)送給處理器
34。處理器34根據(jù)所接收的信息而生成或改變該表。然后,處理器34將該 表存儲在本地存儲器35上。
處理器外圍設備控制單元36控制緩沖存儲器接口 31、存儲器通道接口 32、網(wǎng)絡接口33、處理器34和本地存儲器35之間的數(shù)據(jù)傳送。處理器外圍 設備控制單元36可以是芯片組等等。存儲適配器SA1具有與存儲適配器SAO 相同的結構。因此,此處省去了對存儲適配器SA1的說明。
圖4是顯示根據(jù)本發(fā)明的閃存存儲器模塊的結構的框圖。閃存存儲器模 塊P00包括存儲器控制器MC和閃存存儲器MEM。閃存存儲器MEM存儲數(shù) 據(jù)。存儲器控制器MC讀取/寫入或擦除存儲在閃存存儲器MEM上的數(shù)據(jù)。
存儲器控制器MC包括處理器()iP) 401、接口單元(I/F) 402、數(shù)據(jù)傳 送單元(HUB) 403、存儲器(RAM) 404和存儲器(ROM) 407。
閃存存儲器MEM包括多個閃存存儲器芯片405。每個閃存存儲器芯片 405包括多個存儲塊406以便在其上存儲數(shù)據(jù)。每個存儲塊406是存儲器控 制器MC擦除數(shù)據(jù)的一個單位,如隨后在圖5中所描述的那樣。
存儲塊406包括多個頁面。頁面是存儲器控制器MC讀/寫數(shù)據(jù)的單位, 如隨后在圖5中所描述的那樣。把每個頁面分類為有效頁面、無效頁面、未 使用頁面或者壞頁面。有效頁面是存儲有效數(shù)據(jù)的頁面。無效頁面是存儲無 效數(shù)據(jù)的頁面。未使用頁面是沒有存儲數(shù)據(jù)的頁面。壞頁面是物理上不可用 的頁面,例如,因為頁面包含有損壞的存儲元件。
接口單元402經(jīng)由通道D00而與存儲控制器SC中的存儲適配器SAO相 連接。接口單元402也經(jīng)由通道D10而與存儲控制器SC中的存儲適配器SA1 相連接。
接口單元402從存儲適配器SAO和存儲適配器SA1接收指令。來自存儲 適配器SAO和存儲適配器SA1的指令諸如是SCSI命令。 具體地說,接口單元402從存儲適配器SAO和存儲適配器SA1接收數(shù)據(jù)。然 后接口單元402把所接收的數(shù)據(jù)存儲在存儲器404上。接口單元402也把存 儲在存儲器404上的數(shù)據(jù)發(fā)送給存儲適配器SAO和存儲適配器SA1 。存儲器404例如是能夠以高速來讀/寫數(shù)據(jù)的動態(tài)隨機存取存儲器。存儲
器404暫時地存儲由接口單元402發(fā)送或接收的數(shù)據(jù)。存儲器407是用于存 儲要由處理器401來運行的程序的非易失性存儲器。當激活閃存存儲器模塊 POO時,把程序從存儲器407拷貝到存儲器404上從而處理器401能夠運行 該程序。存儲器404存儲處理器401所要查閱的表。該表可包括例如閃存存 儲器MEM的邏輯頁面地址和物理頁地址之間的地址轉換表。邏輯頁面地址 是當從閃存存儲器模塊外部(例如,從存儲適配器SAO)訪問作為在閃存存 儲器上讀/寫數(shù)據(jù)的單位的頁面時使用的地址。物理頁面地址是當存儲器控制 器MC訪問作為在閃存存儲器上讀/寫數(shù)據(jù)的單位的頁面時所使用的地址。
數(shù)據(jù)傳送單元403可以是例如用于將處理器401、接口單元402、存儲器 404、存儲器407以及閃存存儲器MEM相互連接的交換器,并控制這些組件 之間的數(shù)據(jù)傳送。 .
處理器401通過運行存儲在存儲器404上的每一個程序而執(zhí)行各種流程。 例如,處理器401查閱閃存存儲器的邏輯頁面地址和物理頁面地址之間的地 址轉換表(存儲在存儲器404上),然后根據(jù)該表在閃存存儲器MEM上讀/ 寫數(shù)據(jù)。處理器401為閃存存儲器模塊中的存儲塊406提供回收流程(存儲 塊回收流程)和平均讀寫流程。
回收流程(存儲塊回收流程)是把存儲塊406中的無效頁面重建成未使 用頁面的流程,以便能夠把含有較少未使用頁面的存儲塊重建為再次有效。 此處假定作為回收流程的目標的存儲塊406包括有效頁面、無效頁面和未使 用頁面,其中很多是無效頁面。在這種情況下,需要擦除無效頁面以便增加 未使用頁面。然而,擦除流程不是在逐頁面基礎上進行的,而是在逐存儲塊 基礎上進行的。因此,需要以這樣一種方式來把存儲塊重建為有效,即,把 目標存儲塊的有效頁面拷貝到空存儲塊上,然后擦除目標存儲塊。具體地說, 處理器401把作為回收流程的目標的存儲塊406 (即目標存儲塊)中有效頁 面上所存儲的數(shù)據(jù)拷貝到未使用的存儲塊上。處理器401將拷貝了數(shù)據(jù)的該 未使用的存儲塊的邏輯存儲塊號碼修改為目標存儲塊的邏輯存儲塊號碼。然 后,擦除目標存儲塊上的所有數(shù)據(jù),從而完成回收流程。
例如,隨著處理器401把更多數(shù)據(jù)寫入到存儲塊406上,存儲塊406中更多的未使用頁面被減少。然后,如果存儲塊406變得缺少未使用頁面,則
處理器401不能再把數(shù)據(jù)寫到存儲塊406上。因此,處理器401通過在存儲 塊406上執(zhí)行回收流程而把無效頁面回收成未使用頁面。
平均讀寫流程是用于對存儲塊406的擦除次數(shù)進行平均的流程,從而能 夠提高閃存存儲器MEM耐用性。閃存存儲器MEM經(jīng)歷的數(shù)據(jù)擦除次數(shù)越 多,閃存存儲器MEM最終達到其耐用性的速度就越快。通常,保證閃存存 儲器MEM的耐用性高達10,000到100,000次。
現(xiàn)在,其他閃存存儲器模塊P01到P35具有與閃存存儲器模塊POO相同 的結構。因此,省去了對這些模塊POl到P35的說明。
圖5是顯示閃存存儲器模塊的存儲塊的結構的圖示。閃存存儲器模塊P00 的存儲塊406包括多個頁面501 。存儲塊406通常包括幾十個頁面50K例如, 32個頁面、64個頁面)。
每個頁面501是存儲器控制器MC之類讀/寫數(shù)據(jù)的一個單位。例如,在 NAND型閃存存儲器中,存儲器控制器MC之類以20到30 ps或更低/頁面的 速度來讀數(shù)據(jù),并且以0.2到0.3 ms/頁面的速度寫數(shù)據(jù)。存儲器控制器MC 之類以2到4 ms /存儲塊的速度來擦除數(shù)據(jù)。
頁面501包括數(shù)據(jù)段502和冗余段503。例如,數(shù)據(jù)段502包含512字 節(jié),冗余段503包含16字節(jié)。數(shù)據(jù)段502存儲順序的數(shù)據(jù)(ordinal data)。
冗余段503存儲關于頁面501的管理信息和錯誤校正碼。管理信息包括 偏移量地址和頁面狀態(tài)。偏移量地址是頁面501所屬的存儲塊406中的相對 地址。頁面狀態(tài)顯示了頁面501是否是有效頁面、無效頁面、未使用頁面、 或正在進行處理的頁面。錯誤校正碼是用于檢測和校正頁面501上的錯誤的 碼,諸如Humming碼。
圖6是顯示邏輯組的結構和地址轉換的層次的框圖。圖6中的存儲系統(tǒng) 具有與圖1中的存儲系統(tǒng)相同的硬件配置。為了方便起見,僅顯示了作為與 閃存存儲器模塊poo到P35連接的存儲控制器SC的通道的通道DOO、 D01 、 D02、 D03,并且在圖中省略了通道DIO、 DU、 D12、 D13。
在根據(jù)本實施例的存儲系統(tǒng)100中,在同一個通道上相互連接的閃存存 儲器模塊構成了一個平均讀寫組(WDEV)。例如,通道DOO上的閃存存儲器模塊P00到P03構成了平均讀寫組WOO。類似地,通道D01上的閃存存儲 器模塊P10到P13構成了平均讀寫組W10;通道D02上的閃存存儲器模塊 P20到P23構成了平均讀寫組W20;以及通道D03上的閃存存儲器模塊P30 到P33構成了平均讀寫組W30。
從存儲控制器SC可經(jīng)由每個閃存存儲器模塊相應的邏輯頁面地址訪問 每個閃存存儲器模塊。例如,可經(jīng)由模塊的每個相應的邏輯頁面地址600而 訪問通道D00上的閃存存儲器模塊POO到P03。類似地,可經(jīng)由模塊的每個 相應的邏輯頁面地址601而訪問通道D01上的閃存存儲器模塊P10到P13; 可經(jīng)由模塊的每個相應的邏輯頁面地址602而訪問通道D02上的閃存存儲器 模塊P20到P23;以及可經(jīng)由模塊的每個相應的邏輯頁面地址603而訪問通 道D03上的閃存存儲器模塊P30到P33。
存儲控制器SC把屬于相同的平均讀寫組的閃存存儲器模塊的多個邏輯 頁面地址放到一起成為一組并且把該組轉換成單個虛擬頁面地址。例如,存 儲控制器SC把屬于平均讀寫組WOO的閃存存儲器模塊POO到P03的邏輯頁 面地址600放在一起,并且把該組轉換成虛擬頁面地址604。類似地,把屬 于平均讀寫組W10的閃存存儲器模塊P10到P13的邏輯頁面地址601放在一 起并轉換成虛擬頁面地址605;把屬于平均讀寫組W20的閃存存儲器模塊P20 到P23的邏輯頁面地址602放在一起并轉換成虛擬頁面地址606;以及把屬 于平均讀寫組W30的閃存存儲器模塊P30到P33的邏輯頁面地址603放在一 起并轉換成虛擬頁面地址607。
如上所述,存儲控制器SC把邏輯頁面地址轉換成虛擬頁面地址。以這 種方式,即使為了平均讀寫的目的而在閃存存儲器模塊之間傳遞數(shù)據(jù)并且改 變了相關的邏輯頁面地址,作為較高層次設備的存儲控制器SC也能夠改變 邏輯頁面地址與對應于該邏輯地址的虛擬頁面地址之間的映射,從而能夠不 相沖突地訪問數(shù)據(jù)。
在根據(jù)本實施例的存儲系統(tǒng)100中,將多個平均讀寫組進行組合從而構 成單個RAID組(VDEV)。在圖6中,將四個平均讀寫組WOO到W30組合 成一個RAID組VOO。構成單個RAID組的每一個平均讀寫組中的每個虛擬 頁面地址頁面區(qū)域具有相同的存儲容量。將一個或多個RAID組中的區(qū)域組
17合成單個邏輯巻608,其是存儲控制器SC向主機系統(tǒng)顯示的存儲區(qū)域。
通道D00上的閃存存儲器模塊P04、 P05構成備份組(YDEV) YOO。類 似地,通道DOl上的閃存存儲器模塊P14、 P15構成備份組Y10;通道D02 上的閃存存儲器模塊P24、 P25構成備份組Y20;以及通道D03上的閃存存 儲器模塊P34、 P35構成備份組Y30。隨后將描述如何替換模塊。
圖7是顯示根據(jù)本實施例的存儲系統(tǒng)100的RAID組的結構的框圖。RAID 組720是處于RAID級5的RAID組,由平均讀寫組700到703構成。例如, 平均讀寫700由閃存存儲器模塊730、 731構成。需要指出的是,根據(jù)功能把 RAID分類到一個級別中,諸如RAID級0或RAID級1等等。
RAID組721是由平均讀寫組704、 705構成的處于RAID級1的RAID 組。類似地,RAID組722是由平均讀寫組706、 707構成的處于RAID級1 的RAID組。
在存儲系統(tǒng)100中,如果把RAID分類到級別O、 1、 3、 5、 6或l+0中,
則為構成相同RAID組的每一個平均讀寫組的邏輯頁面地址區(qū)域提供相等的 容量。平均讀寫組容量的上限是由公式1定義的,其下限是由公式2定義的。 具體地說,"閃存存儲器模塊的持續(xù)的寫入速度"和"系統(tǒng)耐用性"的乘積除 以"閃存存儲器耐用性"得到第二值(上限)。"對系統(tǒng)進行操作時的閃存存 儲器模塊的有效寫入速度"與"系統(tǒng)耐用性"的乘積除以"閃存存儲器耐用 性"得到第一值(下限)。接著,將每個平均讀寫組的邏輯頁面地址區(qū)域的容 量設置成不小于第一值且不大于第二值。例如,系統(tǒng)耐用性通常為5到10年, 閃存存儲器耐用性通常為IO,OOO到IOO,OOO次。公式2中的有效寫入速度表 示考慮從主機系統(tǒng)到存儲系統(tǒng)100的寫訪問率(write access ratio)的有效寫 入速度。
平均讀寫組容量值(上限)=
每個模塊持續(xù)的寫入速度X系統(tǒng)耐用性 閃存存儲器耐用性
平均讀寫組容量值(下限)=
每個模塊的有效寫入速度X系統(tǒng)耐用性閃存存儲器耐用性
將平均讀寫組的容量設置為落入由公式1和公式2所定義的范圍。通過 為平均讀寫組中的閃存存儲器模塊提供平均讀寫,能夠保證閃存存儲器模塊 耐用性在存儲系統(tǒng)100的系統(tǒng)耐用期之內(nèi)。
RAID組723是由平均讀寫組708到711構成的處于RAID級4的RAID
組;平均讀寫組708到710是用于存儲數(shù)據(jù)的平均讀寫組;而平均讀寫組711 是用于存儲奇偶校驗(parity)的平均讀寫組。用于存儲奇偶校驗的平均讀寫 組的更新次數(shù)比用于存儲數(shù)據(jù)的其他平均讀寫組的更新次數(shù)更多。因此,為 了提供處于RAID級4的RAID組中的平均讀寫流程,將用于存儲奇偶校驗 的平均讀寫組中的邏輯頁面地址區(qū)域的容量設置為大于用于存儲數(shù)據(jù)的平均 讀寫組中的邏輯頁面地址區(qū)域的容量。例如,如果構成RAID組的平均讀寫 組的數(shù)量是"n",則將用于存儲奇偶校驗的平均讀寫組的邏輯頁面地址區(qū)域 的容量設置為不小于用于存儲數(shù)據(jù)的平均讀寫組的邏輯頁面地址區(qū)域的容量 的一倍且不大于用于存儲數(shù)據(jù)的平均讀寫組的邏輯頁面地址區(qū)域的容量的 (n-1)倍。
圖中未示出,在RAID級2上,用于存儲冗余信息的平均讀寫組比用于 存儲數(shù)據(jù)的平均讀寫組具有更多的更新次數(shù)。例如,在RAID級2上,如果 存在10個用于存儲數(shù)據(jù)的平均讀寫組以及4個用于存儲奇偶校驗的平均讀寫 組(10D4P),則將用于存儲冗余信息的平均讀寫組中的邏輯頁面地址區(qū)域的 容量設置為不小于用于存儲數(shù)據(jù)的平均讀寫組中的邏輯頁面地址區(qū)域的容量 的一倍且不大于用于存儲數(shù)據(jù)的平均讀寫組中的邏輯頁面地址區(qū)域的容量的 10/4=2.5倍。對于25D5P,將用于存儲冗余信息的平均讀寫組中的邏輯頁面 地址區(qū)域的容量設置為不小于用于存儲數(shù)據(jù)的平均讀寫組中的邏輯頁面地址 區(qū)域的容量的一倍且不大于該容量的25/5 = 5倍。
換句話說,在RAID級2或RAID級4上,如果用于存儲數(shù)據(jù)的平均讀 寫組的數(shù)量是"n",而用于存儲冗余信息的平均讀寫組的數(shù)量是"m",則將 用于存儲冗余信息的平均讀寫組中的邏輯頁面地址區(qū)域的容量設置為不小于 用于存儲數(shù)據(jù)的平均讀寫組中的邏輯頁面地址區(qū)域的容量的一倍且不大于該 容量的"n/m"倍。以這種方式,通過組合平均讀寫組而構成了存儲控制器SC中的每個
RAID組。具體地說,存儲控制器SC考慮每個RAID組的平均讀寫組而對其 進行管理。因此,每個平均讀寫組的虛擬頁面地址被視為是獨立的,而與每 個平均讀寫組中的邏輯頁面地址及虛擬頁面地址之間的映射無關。因此,存 儲控制器SC能夠把處于不同級別的多個RAID組相互連接。
圖8是顯示其中閃存存儲器模塊和硬盤驅(qū)動器與存儲控制器SC相連接 的例子的框圖。閃存存儲器模塊810到812構成了平均讀寫組830。閃存存 儲器模塊813到815構成了平均讀寫組831,并且平均讀寫組830.、 831構成 了 RAID組840。
類似于圖6,存儲控制器SC把邏輯頁面地址800轉換成虛擬頁面地址 802以便訪問閃存存儲器模塊810到812中的任何一個。存儲控制器SC還把 邏輯頁面地址801轉換成虛擬頁面地址803以便訪問閃存存儲器模塊813到 815中的任何一個。
將硬盤驅(qū)動器820和823組合成RAID組841。類似地,將硬盤驅(qū)動器 821和824組合成RAID組842;并且將硬盤驅(qū)動器822和825組合成RAID 組843。存儲控制器SC經(jīng)由邏輯存儲塊地址804或805而訪問每個硬盤驅(qū)動 器。在由硬盤驅(qū)動器構成的RAID組中,因為不需要平均讀寫所以沒有定義 平均讀寫組。存儲控制器SC僅在由閃存存儲器模塊構成的RAIO組中定義平 均讀寫組,并且把邏輯頁面地址轉換成虛擬頁面地址。
當激活系統(tǒng)或把存儲介質(zhì)與系統(tǒng)相連接時,存儲控制器SC根據(jù)是否需 要任何地址轉換的判斷或者如何配置RAID組的判斷等等而改變控制,所述 判斷取決于存儲介質(zhì)是否是閃存存儲器或硬盤驅(qū)動器。
存儲控制器SC通過利用由閃存存儲器模塊構成的RAID組840或者由硬 盤驅(qū)動器構成的RAID組841到843中任何一個的區(qū)域,或者通過將RAID 組840和RAID組841到843的區(qū)域組合而構成邏輯巻808。閃存存儲器模塊 的存儲區(qū)域或硬盤驅(qū)動器的存儲區(qū)域的選擇可以是這樣的,即在閃存存儲器 模塊上存儲讀取訪問較多并且更新次數(shù)較少的數(shù)據(jù),并且在硬盤驅(qū)動器上存 儲更新次數(shù)較多的數(shù)據(jù)。閃存存儲器模塊能夠利用潛規(guī)則(law latency)訪問 硬盤驅(qū)動器。因此,如果根據(jù)存儲介質(zhì)的訪問屬性而選擇存儲區(qū)域,如上所
20述,則可實現(xiàn)存儲系統(tǒng)的高性能。
將參考附圖,給出關于根據(jù)本實施例的存儲系統(tǒng)100的操作的說明。 將參考圖9到圖14,給出關于用于根據(jù)本實施例的存儲系統(tǒng)100的平均
讀寫方法的說明。這個方法在多個閃存存儲器模塊之間提供平均讀寫。
圖9是顯示多個閃存存儲器模塊之間的平均讀寫流程的流程圖。為了簡 便,假定目標平均讀寫組WOO具有兩個閃存存儲器模塊POO、 P04。
圖10顯示了根據(jù)本實施例的平均讀寫流程伴隨的數(shù)據(jù)交換流程之前的 虛擬頁面地址和邏輯頁面地址之間的地址轉換表。
圖11顯示了根據(jù)本實施例的平均讀寫流程伴隨的數(shù)據(jù)交換之后的虛擬 頁面地址和邏輯頁面地址之間的地址轉換表。
參考圖10和圖11,表示了虛擬頁面地址和邏輯頁面地址之間的映射, 以及這些映射的偏移量值。在根據(jù)本實施例的存儲系統(tǒng)中,把邏輯頁面地址 區(qū)域(數(shù)據(jù)長度)設置為大于相應的虛擬頁面地址區(qū)域(數(shù)據(jù)長度)。在邏輯 頁面地址區(qū)域中,如果在起始地址端寫有有效數(shù)據(jù)并且在結束地址端存在自 由區(qū)域,則指示偏移量值"0"。如果在結束地址端寫有有效數(shù)據(jù)并且在起始 地址端存在自由區(qū)域,則指示偏移量值"l"。在這種情況下,自由區(qū)域的大 小是閃存存儲器頁面的數(shù)據(jù)段的整數(shù)倍(至少一倍),并且等于閃存存儲器模 塊中的存儲器控制器一次在閃存存儲器上讀/寫的數(shù)據(jù)量。
圖12顯示了由存儲控制器SC管理的每個閃存存儲器模塊的擦除次數(shù)管 理表。存儲控制器SC記錄作為閃存存儲器模塊內(nèi)的數(shù)據(jù)交換單位的每個區(qū) 域的總寫入量。如公式3所示,通過把前一平均擦除次數(shù)值與平均處理次數(shù) 相加可以獲得閃存存儲器模塊中的閃存存儲器的平均擦除次數(shù),所述平均處 理次數(shù)是通過把獨立的預定時間段中模塊的每個邏輯頁面地址區(qū)域的單獨的 總寫入量的和,除以模塊的整個邏輯頁面地址區(qū)域容量(模塊容量)而得到 的。
獨立的預定時間段中模塊的 S每個邏輯頁面地址區(qū)域的
平均擦除次數(shù)二前一值十 單獨的總寫入量的和__模塊容量
在圖12的管理表中,記錄了兩個平均擦除次數(shù)值。 一個是最后一次運行 平均讀寫流程時所記錄的前一平均擦除次數(shù)(《)0、 f04),另一個是到目前為
止的當前平均擦除次數(shù)(e00、 e04)。從執(zhí)行前一平均讀寫流程的上一次的時 間直到現(xiàn)在,記錄用于管理每個邏輯頁面地址區(qū)域的寫入次數(shù)的總寫入量。 通過公式3可容易地計算出當前平均擦除次數(shù)。通過管理每個獨立的預定時 間段中邏輯頁面地址區(qū)域的總寫入量,可以獲得對于邏輯頁面地址區(qū)域最近 的訪問頻率。在該管理表中,用這樣的方式來設置移動標志,即,在數(shù)據(jù)交 換流程之前把該標志設置為"0",在數(shù)據(jù)交換流程之后把該標志設置為"1"。 在公式3中,在每個獨立的時間段中對總寫入量進行管理。假定沒有獨立的 預定時間段,則可以由公式4來表示經(jīng)過整個時間段的總寫入量。公式3的 結果或公式4的結果得到相同的平均擦除次數(shù)值。
經(jīng)過整個預定時間段模塊的 Z 每個邏輯頁面地址區(qū)域的
平均擦除次數(shù)^ _單獨的總寫入量的和_
模塊容量
即使當諸如電源故障之類的故障出現(xiàn)時或當不在系統(tǒng)服務時間內(nèi)時,也 需要保持圖10或圖11所示的地址轉換表以及圖12中的平均擦除次數(shù)管理 表。因此,存儲控制器SC在每個閃存存儲器模塊的每個預定區(qū)域上存儲與 每個模塊的地址轉換表以及平均擦除次數(shù)管理表有關的數(shù)據(jù)。
在圖9中,當事件出現(xiàn)時(例如每當任何平均讀寫組(WDEV)的總寫 入量達到預定值時),或者以每個預定的時間段,存儲控制器SC執(zhí)行平均讀 寫流程。此時,存儲控制器SC把平均讀寫組中的閃存存儲器模塊的移動標 志設置為"0" (S901)。
接下來,存儲控制器SC通過查尋圖12的平均擦除次數(shù)管理表而檢驗移動標志設置為"0",并檢驗平均擦除次數(shù)的最大值和最小值(S902)。
存儲控制器SC判斷平均擦除次數(shù)的最大值和最小值之間的差是否不小
于預定值(S903)。如果擦除次數(shù)的差不小于預定值,則存儲控制器SC進行 到S904。如果擦除次數(shù)的差小于預定值,則存儲控制器SC完成該流程。
然后,存儲控制器SC從圖12的管理表中,在具有最大平均擦除次數(shù)的 閃存存儲器模塊(PDEV)中選擇具有最大總寫入量的邏輯頁面地址區(qū)域;并 且在具有最小平均擦除次數(shù)的閃存存儲器模塊(PDEV)中選擇具有最小總寫 入量的邏輯頁面地址(S904)。
接下來,存儲控制器SC把圖10的虛擬頁面與邏輯頁面之間的地址轉換 表的狀態(tài)字段設置為"交換"。具體地說,存儲控制器SC把表示"交換"的 值輸入到圖IO的轉換表的狀態(tài)字段中,以便在兩個所選擇的邏輯頁面地址區(qū) 域之間執(zhí)行數(shù)據(jù)交換并且改變與相應的虛擬頁面地址的映射(S905)。在訪問 其上指示了 "交換"的存儲區(qū)域中,存儲控制器SC暫時地停留在等待狀態(tài), 并且在數(shù)據(jù)交換操作和映射改變操作完成之后,再次嘗試訪問該存儲區(qū)域。 在這個流程期間,將從主機系統(tǒng)寫入的數(shù)據(jù)存儲在存儲控制器SC中的緩沖 存儲器上。
接下來,存儲控制器SC在上述兩個邏輯頁面地址區(qū)域之間交換數(shù)據(jù) (S906)。隨后將給出關于數(shù)據(jù)交換流程的詳細說明。
數(shù)據(jù)交換流程之后,存儲控制器SC對數(shù)據(jù)交換目標區(qū)域所屬于的閃存 存儲器模塊(PDEV)的字段(其中記錄了前一平均擦除次數(shù)值)中的當前平 均擦除次數(shù)值進行更新,并且將總寫入量清零(S907)。因此,緊接在數(shù)據(jù)交 換操作之后的平均擦除次數(shù)值與前一平均擦除次數(shù)值相同。
如圖11所示,存儲控制器SC改變虛擬頁面地址與邏輯頁面地址之間的 映射和偏移量值,并且清除狀態(tài)字段,然后把移動標志設置為"1" (S908)。 在圖12中,要成為平均讀寫的目標的平均讀寫組WOO包括兩個閃存存儲器 模塊POO、 P04。因此,如果在閃存存儲器模塊POO、 P04之間執(zhí)行了任何數(shù) 據(jù)交換,則將閃存存儲器模塊POO、 P04的移動標志都設置為"1"。
存儲控制器SC判斷是否存在移動標志為"0"的多個閃存存儲器模塊 (PDEV) (S909)。如果判斷沒有移動標志為"0"的多個閃存存儲器模塊,則存儲控制器SC完成平均讀寫流程。如果判斷存在移動標志為"0"任意多
個閃存存儲器模塊,則存儲控制器SC返回到S902。在圖12中,如果閃存存 儲器模塊POO、 P04的移動標志都設置為"1",則存儲控制器SC完成平均讀 寫流程。例如,如果平均讀寫組包括四個或更多閃存存儲器模塊,則存儲控 制器SC在S902更進一步檢驗是否能夠在其余的閃存存儲器模塊之間執(zhí)行數(shù) 據(jù)交換。
每次執(zhí)行平均讀寫流程,都改變虛擬頁面地址與邏輯頁面地址之間的映 射,并且同樣更新平均擦除次數(shù)。因此,每次流程平均讀寫流程都需要對存 儲在閃存存儲器模塊的預定區(qū)域上的地址管理表(圖IO或圖11)與圖12的 平均擦除次數(shù)管理表進行更新。
現(xiàn)在,如下描述S906的數(shù)據(jù)交換流程。
圖13是為了說明平均讀寫流程伴隨的數(shù)據(jù)交換流程之前的虛擬頁面地 址與邏輯頁面地址之間的映射的框圖。為了提供例子,此處要說明如何交換 數(shù)據(jù)以及如何改變虛擬頁面地址區(qū)域的數(shù)據(jù)區(qū)域1301與虛擬頁面地址區(qū)域 的數(shù)據(jù)區(qū)域1302之間的映射。虛擬頁面地址區(qū)域的數(shù)據(jù)區(qū)域1301與邏輯頁 面地址區(qū)域的數(shù)據(jù)區(qū)域1303相對應。虛擬頁面地址區(qū)域的數(shù)據(jù)區(qū)域1302與 邏輯頁面地址區(qū)域的數(shù)據(jù)區(qū)域1304相對應。例如,假定在邏輯頁面地址區(qū)域 上,在數(shù)據(jù)區(qū)域之間存在任何自由區(qū)域。如果自由區(qū)域位于相關的數(shù)據(jù)區(qū)域 之后,則把偏移量值設置為"0";以及如果自由區(qū)域位于相關的數(shù)據(jù)區(qū)域之 前,則把偏移量值設置為"1"。例如,在圖13中,因為數(shù)據(jù)區(qū)域1303具有 在其之前的自由區(qū)域(虛線所示),從而其偏移量設置為"1";并且數(shù)據(jù)區(qū)域 1304具有在其之后的自由區(qū)域(虛線所示),從而其偏移量設置為"0"。因 此,設置了邏輯頁面地址區(qū)域的總存儲量大于虛擬頁面地址區(qū)域的總存儲量。
圖14是用于說明執(zhí)行了平均讀寫流程的伴隨的數(shù)據(jù)交換之后,虛擬頁面 地址和邏輯頁面地址之間的映射的框圖。虛擬頁面地址區(qū)域的數(shù)據(jù)區(qū)域1401 與邏輯頁面地址區(qū)域的數(shù)據(jù)區(qū)域1404相對應;并且虛擬頁面地址區(qū)域的數(shù)據(jù) 區(qū)域1402與邏輯頁面地址區(qū)域的數(shù)據(jù)區(qū)域1403相對應。數(shù)據(jù)區(qū)域1403的偏 移量值是"0",且數(shù)據(jù)區(qū)域1404的偏移量值是"0"。
為了提供數(shù)據(jù)交換流程的例子,圖15到圖24以一步接一步的基礎,顯示了如何在偏移量值為"0"的數(shù)據(jù)區(qū)域與偏移量值為"1"的數(shù)據(jù)區(qū)域之間 交換數(shù)據(jù)。在圖15到圖24中,在左邊是偏移量值為"0"的邏輯頁面地址區(qū)
域。如圖所示,邏輯頁面地址區(qū)域被分成五段,如分別以"E"、 "F"、 "G"、 "H"和"-"所示。"E"至lj "H"表示其上寫入了有效數(shù)據(jù)的區(qū)域,而"-" 表示自由區(qū)域。
在圖15到圖24中,在右邊是偏移量值為"1"的邏輯頁面地址區(qū)域。邏 輯頁面地址區(qū)域被分成五段,如分別以"A"、 "B"、 "C"、 "D"和"-"所示。 "A"到"D"表示其上寫入了有效數(shù)據(jù)的區(qū)域,而"-"表示自由區(qū)域。
圖15顯示了數(shù)據(jù)交換流程之前的初始狀態(tài)。在左邊偏移量值是"0",而 在右邊偏移量值是"1 "。
圖16顯示了數(shù)據(jù)交換流程期間的狀態(tài),把左邊(偏移量值為"0")的邏 輯頁面地址區(qū)域E上的數(shù)據(jù)重寫到右邊(偏移量值為"1")的自由區(qū)域上。
圖17顯示了數(shù)據(jù)交換流程期間的狀態(tài),把右邊的邏輯頁面地址區(qū)域A 上的數(shù)據(jù)重寫到左邊的原邏輯頁面地址區(qū)域E上。
圖18顯示了數(shù)據(jù)交換流程期間的狀態(tài),把左邊的邏輯頁面地址區(qū)域F上 的數(shù)據(jù)重寫到右邊的原邏輯頁面地址區(qū)域A上。 圖19顯示了數(shù)據(jù)交換流程期間的狀態(tài),把右邊的邏輯頁面地址區(qū)域B 上的數(shù)據(jù)重寫到左邊的原邏輯頁面地址區(qū)域F上。
圖20顯示了數(shù)據(jù)交換流程期間的狀態(tài),把左邊的邏輯頁面地址區(qū)域G 上的數(shù)據(jù)重寫到右邊的原邏輯頁面地址區(qū)域B上。
圖21顯示了數(shù)據(jù)交換流程期間的狀態(tài),把右邊的邏輯頁面地址區(qū)域C 上的數(shù)據(jù)重寫到左邊的原邏輯頁面地址區(qū)域G上。
圖22顯示了數(shù)據(jù)交換流程期間的狀態(tài),把左邊的邏輯頁面地址區(qū)域H 上的數(shù)據(jù)重寫到右邊的原邏輯頁面地址區(qū)域C上。
圖23顯示了數(shù)據(jù)交換流程期間的狀態(tài),把右邊的邏輯頁面地址區(qū)域D 上的數(shù)據(jù)重寫到左邊的原邏輯頁面地址區(qū)域H上。
圖24顯示了數(shù)據(jù)交換流程之后的最終狀態(tài)。偏移量值在左邊是"0",且 偏移量值在右邊也是"0"。 ..
基本上,閃存存儲器是這樣的一種半導體器件,其中不能在物理地址區(qū)域上執(zhí)行重寫流程。具體地說,為了交換物理地址區(qū)域上的數(shù)據(jù),實際上將 數(shù)據(jù)拷貝到未使用頁面上,然后把存儲了數(shù)據(jù)的原始頁面設置成無效頁面。 因此,在這個原始頁面上沒有執(zhí)行實際的重寫過程。
根據(jù)本實施例,上述流程全部在邏輯頁面地址區(qū)域基礎上執(zhí)行,因此, 能夠在邏輯頁面上重寫數(shù)據(jù)。用這種方式,通過執(zhí)行這種重寫流程可以基于 數(shù)據(jù)交換來執(zhí)行平均讀寫流程。
圖25是顯示數(shù)據(jù)交換流程之前/之后偏移量值如何轉變的表。
如果在偏移量值都為"0"的兩個邏輯頁面地址區(qū)域之間執(zhí)行數(shù)據(jù)交換, 則數(shù)據(jù)交換流程之后偏移量值分別變?yōu)?0"和"1"。如果在偏移量值為"0" 的邏輯頁面地址區(qū)域與偏移量值為"1"的邏輯頁面地址區(qū)域之間執(zhí)行數(shù)據(jù)交 換,則數(shù)據(jù)交換流程之后偏移量值分別變?yōu)?0"和"0"。如果在偏移量值都 為"1"的兩個邏輯頁面地址區(qū)域之間執(zhí)行數(shù)據(jù)交換,則數(shù)據(jù)交換流程之后偏 移量值分別變?yōu)?1"和"o"。
將參考流程圖,給出關于數(shù)據(jù)交換流程的詳細說明。
圖26是顯示偏移量值為"0"的邏輯頁面地址區(qū)域與偏移量值為"1"的 邏輯頁面地址區(qū)域之間的數(shù)據(jù)交換流程(如圖15到圖24所述)的流程圖。 此處,存儲控制器SC在偏移量值為"0"的邏輯頁面地址區(qū)域與偏移量值為
"1"的邏輯頁面地址區(qū)域之間設置數(shù)據(jù)交換目標(S2601)。
存儲控制器SC把目標邏輯頁面地址區(qū)域分成"n"段;并設置為1"
(S2602)。就圖15而言,例如,設置為"n=5",并且把有效數(shù)據(jù)寫入到所分 割的(n-l)個段上,剩余的一個段用作自由區(qū)域。存儲控制器SC把數(shù)據(jù)從 偏移量值為"0"的第i個邏輯頁面地址區(qū)域中移動到偏移量值為"1"的第i 個邏輯頁面地址區(qū)域中(S2603),然后同樣地把數(shù)據(jù)從偏移量值為"1"的第 i+l個邏輯頁面地址區(qū)域中移動到偏移量值為"0"的第i個邏輯頁面地址區(qū) 域中(S2604);并且使"i"遞增"1" (S2605)。然后,存儲控制器SC判斷 是否"i^"(S2606)。如果判斷不是"i^",那么存儲控制器SC返回到S2603。 如果判斷為."i=n",那么存儲控制器SC完成數(shù)據(jù)交換流程。
圖27是顯示偏移量值為"0"的邏輯頁面地址區(qū)域與偏移量值為"0"的 邏輯頁面地址區(qū)域之間的數(shù)據(jù)交換流程的流程圖。此處,存儲控制器SC在偏移量值為"0"的邏輯頁面地址區(qū)域與偏移量值為"0"的邏輯頁面地址區(qū) 域之間設置數(shù)據(jù)交換目標(S2701)。
存儲控制器SC把目標邏輯頁面地址區(qū)域分成"n"段,并設置為"i=n" (S2702)。有效數(shù)據(jù)寫入到所分割的(n-1)個段上,剩余的一個段是自由區(qū) 域。直到到達"i-l"之前,以逐段的基礎重復數(shù)據(jù)交換流程(S2703到S2706)。 在S2706,如果判斷為"i=l",則完成數(shù)據(jù)交換流程。
圖28是顯示偏移量值為"1"的邏輯頁面地址區(qū)域與偏移量值為"1"的 邏輯頁面地址區(qū)域之間的數(shù)據(jù)交換流程的流程圖。此處,存儲控制器SC在 偏移量值為"1"的邏輯頁面地址區(qū)域與偏移量值為"1"的邏輯頁面地址區(qū) 域之間設置數(shù)據(jù)交換目標(S28(H)。
存儲控制器SC把目標邏輯頁面地址區(qū)域分成"n"段;并設置為"i=2" (S2802)。有效數(shù)據(jù)寫入到所分割的(n-1)個段上,剩余的一個段是自由區(qū) 域。直到變成"i〉n"之前,以逐段的基礎重復數(shù)據(jù)交換流程(S2803到S2806)。 在S2806,如果判斷為"i>n",則完成數(shù)據(jù)交換流程。
圖29到圖34是說明根據(jù)本發(fā)明另一個實施例的平均讀寫流程的附圖。 根據(jù)上述實施例,在閃存存儲器模塊中分布有用于數(shù)據(jù)交換的自由區(qū)域。在 這個實施例中,將說明把自由區(qū)域處理為每個模塊中的一個組的方法。
圖29是用于說明執(zhí)行數(shù)據(jù)交換流程之前的虛擬頁面地址和邏輯頁面地' 址之間的映射的框圖。
圖30是用于說明執(zhí)行數(shù)據(jù)交換流程之后的虛擬頁面地址與邏輯頁面地 址之間的映射的框圖。為了簡便,假定目標平均讀寫組WOO具有兩個閃存存 儲器模塊POO、 P04。在數(shù)據(jù)交換之前的狀態(tài)(圖29)中,閃存存儲器模塊 P00、P04的邏輯頁面地址區(qū)域具有從地址ACO到地址AC4之前的數(shù)據(jù)區(qū)域。 地址AC4的區(qū)域或更多區(qū)域用作用于數(shù)據(jù)交換的自由區(qū)域(2903、 2904)。 這個自由區(qū)域的大小(數(shù)據(jù)長度)與用于數(shù)據(jù)交換的數(shù)據(jù)區(qū)域的大小相同以 執(zhí)行平均讀寫流程。
圖31是用于說明執(zhí)行數(shù)據(jù)交換流程之前的用于虛擬頁面地址與邏輯頁 面地址之間的數(shù)據(jù)交換的地址轉換表的一個表格。圖32是用于說明執(zhí)行數(shù)據(jù) 交換流程之后的用于虛擬頁面地址與邏輯頁面地址之間的數(shù)據(jù)交換的地址轉換表的一個表格。在這個實施例中,由于把用于數(shù)據(jù)交換的自由區(qū)域處理為 一個組,從而圖10和圖11的地址轉換表所需要的偏移量值管理就不必要了。 代之以需要管理自由區(qū)域位置。
圖33是用于說明執(zhí)行數(shù)據(jù)交換流程之前的自由區(qū)域管理表的一個表格, 而圖34是用于說明執(zhí)行數(shù)據(jù)交換流程之后的自由區(qū)域管理表的一個表格。自 由區(qū)域管理表管理每個閃存存儲器模塊中的自由區(qū)域的起始邏輯頁面地址和 大小(數(shù)據(jù)長度)。
將參考圖29,給出如何在虛擬頁面地址區(qū)域的數(shù)據(jù)區(qū)域2901和數(shù)據(jù)區(qū) 域2902之間交換數(shù)據(jù)以及如何改變虛擬頁面地址與邏輯頁面地址之間的映 射的說明。如圖31中的邏輯頁面地址與虛擬頁面地址之間的地址轉換表所 示,可以理解虛擬頁面地址區(qū)域中的數(shù)據(jù)區(qū)域2901與邏輯頁面地址區(qū)域中的 數(shù)據(jù)區(qū)域2905相對應;而虛擬頁面地址區(qū)域中的數(shù)據(jù)區(qū)域2902與邏輯頁面 地址區(qū)域中的數(shù)據(jù)區(qū)域2906相對應。參考圖33中的自由區(qū)域管理表,可以 理解閃存存儲器模塊P00中用于數(shù)據(jù)交換的自由區(qū)域是區(qū)域2903;而閃存存 儲器模塊P04中用于數(shù)據(jù)交換的自由區(qū)域是區(qū)域2卯4。
接下來,將數(shù)據(jù)區(qū)域2905上的數(shù)據(jù)寫入到自由區(qū)域2卯4上,將數(shù)據(jù)區(qū) 域2906上的數(shù)據(jù)寫入到自由區(qū)域2903上。如圖30所示,將虛擬頁面地址區(qū) 域中的數(shù)據(jù)區(qū)域3001設置為與邏輯頁面地址區(qū)域中的數(shù)據(jù)區(qū)域3004相對應; 并將虛擬頁面地址區(qū)域中的數(shù)據(jù)區(qū)域3002設置為與邏輯頁面地址區(qū)域中的 數(shù)據(jù)區(qū)域3003相對應。完成上述數(shù)據(jù)交換流程之后,更新虛擬頁面地址與邏 輯頁面地址之間的轉換表,如圖32所示。如圖34所示,可以理解閃存存儲 器模塊P00中用于數(shù)據(jù)交換的自由區(qū)域是區(qū)域3005;而閃存存儲器模塊P04 中用于數(shù)據(jù)交換的自由區(qū)域是區(qū)域3006。
根據(jù)本實施例,將用于數(shù)據(jù)交換的自由區(qū)域處理為每個模塊一個組,而 不是象其他實施例所述的那樣在閃存存儲器模塊中分配用于數(shù)據(jù)交換的自由 區(qū)域,借此消除了對偏移量值的管理,結果產(chǎn)生了較容易的數(shù)據(jù)交換控制。
接下來,此處將對在閃存存儲器模塊(PDEV)上出現(xiàn)故障的情況給出說明。
參考圖35到圖39,給出了對當閃存存儲器模塊上出現(xiàn)故障時如何替換閃存存儲器模塊的方法的說明。
圖35是顯示如何替換模塊的步驟的流程圖。
圖36到圖39是說明圖35的流程圖的每個步驟的框圖。 圖36顯示了當閃存存儲器模塊上出現(xiàn)故障時的情況。圖36顯示了 RAID 組(VDEV) VOO,以及構成RAID組V00的平均讀寫組(WDEV) W00、 W10、 W20、 W30。備份組(YDEV) Y00連接于連接了平均讀寫組WOO的 同一通道DOl上。
現(xiàn)在,假定在平均讀寫組WOO中的閃存存儲器模塊(PDEV) POl上出 現(xiàn)故障(S350O。
然后,選擇其中平均讀寫(WDEV) W00可用的備份組(YDEV)。選擇 了連接在平均讀寫組WOO的相同通道DOl上的備份組YOO (S3502)。然后, 從屬于該備份組YOO的閃存存儲器模塊中,選擇了閃存存儲器模塊P04用于 替換閃存存儲器模塊POl (S3503)。
圖37是用于說明閃存存儲器模塊替換之后的狀態(tài)的框圖。如圖37所示, 把閃存存儲器模塊POl替換為平均讀寫組WOO與備份組YOO之間的閃存存 儲器模塊P04。在替換中,故障的模塊POl停留在待機狀態(tài)。
接下來,圖38是顯示在閃存存儲器替換之后如何重建數(shù)據(jù)的框圖。如圖 38所示,將寫在閃存存儲器模塊POl上的數(shù)據(jù)重建并寫入到新合并到平均讀 寫組W00中的閃存存儲器模塊P04上(S3504)。要指出的是,此時,由于平 均讀寫,用于數(shù)據(jù)重建的數(shù)據(jù)存儲并分配在不同平均讀寫組中的閃存存儲器 模塊之間。換句話說,在同一虛擬頁面地址中不同的平均讀寫組中所存儲的 數(shù)據(jù)上進行數(shù)據(jù)重建。
圖39是顯示其中將備份組中的閃存存儲器替換為新的閃存存儲器模塊 的情況的框圖。如圖39所示,把替換中處于待機狀態(tài)的閃存存儲器模塊POl 替換為新的閃存存儲器模塊P06,并且將模塊P06合并到備份組Y00中 (S3505)。然后,完成閃存存儲器模塊替換。
根據(jù)模塊替換之前舊模塊的總寫入量,判斷在模塊替換之后是否能夠立 即執(zhí)行平均讀寫流程。要指出的是,除了伴隨著數(shù)據(jù)重建的一些寫入之外, 新替換的模塊在相關的邏輯頁面地址區(qū)域的整個區(qū)域上沒有總寫入量,因此,不可能知道邏輯頁面地址區(qū)域的每個預定區(qū)域的寫入頻率??梢允褂媚K替 換之前舊模塊的總寫入量來獲知邏輯頁面地址區(qū)域的寫入頻率,以便執(zhí)行平 均讀寫流程。
本發(fā)明提供了一種在多個閃存存儲器模塊之間提供平均讀寫的方法,其 適用于提高閃存存儲器模塊耐用性的目的,具體地說適用于利用具有多個閃 存存儲器模塊的大容量閃存存儲器的存儲系統(tǒng); 一種為此的平均讀寫方法; 以及用于運行上述方法的平均讀寫程序。
已經(jīng)如上所述說明了根據(jù)本發(fā)明的實施例。然而,本發(fā)明的實施例不局 限于那些說明,本領域技術人員可確定本發(fā)明的基本特征并且在不脫離權利 要求的精神和范圍的情況下可以對本發(fā)明進行各種改進和變化以使它適應于 各種應用和條件。
權利要求
1.一種使用閃存存儲器的存儲系統(tǒng),包括存儲控制器和通過多條通道與所述存儲控制器連接的、作為存儲介質(zhì)的多個閃存存儲器模塊,每個閃存存儲器模塊包括至少一個閃存存儲器芯片,所述存儲控制器將所述多個閃存存儲器模塊中連接在所述多條通道的同一通道上的多個閃存存儲器模塊組合成第一邏輯組;把各第一邏輯組的多個閃存存儲器模塊相對應的第一地址轉換成用于在存儲控制器中指示所述第一地址的第二地址;把多個所述第一邏輯組組合成第二邏輯組;針對各閃存存儲器模塊,對屬于該閃存存儲器模塊的閃存存儲器芯片的塊進行擦除次數(shù)的平均;根據(jù)各閃存存儲器模塊的數(shù)據(jù)寫入量或者屬于各閃存存儲器模塊的閃存存儲器的平均擦除次數(shù),在屬于所述第一邏輯組的所述多個閃存存儲器模塊之間交換數(shù)據(jù),然后對應于該數(shù)據(jù)交換,改變所述第一地址與所述第二地址之間的映射。
2. 根據(jù)權利要求l所述的使用閃存存儲器的存儲系統(tǒng),其中 第二邏輯組包括用于在閃存存儲器模塊中的任一個上出現(xiàn)故障時重建所記錄的數(shù)據(jù)的冗余信息。 '
3. 根據(jù)權利要求l所述的使用閃存存儲器的存儲系統(tǒng),其中 第二邏輯組是RAID級0、 RAID級1、 RAID級1+0、 RAID級3、 RAID級5或者RAID級6中任何一個上的邏輯組,并且為構成第二邏輯組的每一 個第一邏輯組提供相等的容量。
4. 根據(jù)權利要求1或2所述的使用閃存存儲器的存儲系統(tǒng),其中第一值是存儲系統(tǒng)操作期間每個閃存存儲器模塊的有效寫入速度與存儲 系統(tǒng)耐用性的乘積除以閃存存儲器耐用性而得到的商;第二值是每個閃存存儲器模塊的持續(xù)的寫入速度與存儲系統(tǒng)耐用性的乘 積除以閃存存儲器耐用性而得到的商;并且將第一邏輯組的容量設置為不小于第一值且不大于第二值。
5. 根據(jù)權利要求1或2所述的使用閃存存儲器的存儲系統(tǒng), 其中第二邏輯組是RAID級2或者RAID級4上的邏輯組;并且在構成第二邏輯組的第一邏輯組中,如果用于存儲冗余信息的第一邏輯 組的數(shù)目是m,而用于存儲數(shù)據(jù)的第一邏輯組的數(shù)目是"n",則將用于存儲冗余信息的第一邏輯組的容量設置為用于存儲數(shù)據(jù)的第--邏輯組的容量的至少一倍且不大于"n/m"倍。
6. 根據(jù)權利要求1或2所述的使用閃存存儲器的存儲系統(tǒng),其中將經(jīng)由 第一地址訪問的存儲區(qū)域設置為大于經(jīng)由第二地址訪問的存儲區(qū)域。
7. 根據(jù)權利要求1或2所述的使用閃存存儲器的存儲系統(tǒng),其中存儲控制器存儲每個閃存存儲器模塊的第一地址與第二地址之間的映射信息,以及 每個閃存存儲器模塊中存儲塊的平均擦除次數(shù)。
8. 根據(jù)權利要求1或2所述的使用閃存存儲器的存儲系統(tǒng),其中存儲控制器構建多個第二邏輯組。
9. 根據(jù)權利要求1或2所述的使用閃存存儲器的存儲系統(tǒng),其中存儲控 制器構建不同的RAID級上的多個第二邏輯組。
10. 根據(jù)權利要求1或2所述的使用閃存存儲器的存儲系統(tǒng),其中當激 活存儲系統(tǒng)或者當存儲介質(zhì)連接于存儲系統(tǒng)時,存儲控制器判斷該存儲介質(zhì) 是否是閃存存儲器。
11. 根據(jù)權利要求l所述的使用閃存存儲器的存儲系統(tǒng),其中, 在針對所述多個閃存存儲器模塊的至少一個進行擦除次數(shù)的平均時, 所述存儲控制器,將作為進行擦除次數(shù)平均的對象的閃存存儲器模塊的數(shù)據(jù)在與作為 進行擦除次數(shù)平均的對象的所述閃存存儲器模塊所屬于的第-一邏輯組不同的 其他的多個第一邏輯組中的多個閃存存儲器模塊之間分配并存儲,其中,所 述其他的多個第一邏輯組與作為進行擦除次數(shù)平均的對象的所述閃存存儲器 模塊所屬的第一邏輯組屬于同一個第二邏輯組;對應于上述數(shù)據(jù)的分配存儲,改變所述第一地址與所述第二地址之間的映射,在重建上述分配并存儲的數(shù)據(jù)時, 所述存儲控制器,使用已改變了映射的所述第一地址以及第二地址,從分配并存儲有 所述數(shù)據(jù)的、屬于同一所述第二邏輯組的所述其他的多個第一邏輯組的所述 多個閃存存儲器模塊中獲取所述分配并存儲的數(shù)據(jù),使用該獲取的數(shù)據(jù)進行 所述數(shù)據(jù)的重建。
全文摘要
一種使用閃存存儲器的存儲系統(tǒng),包括存儲控制器和通過多條通道與存儲控制器連接的、作為存儲介質(zhì)的多個閃存存儲器模塊,每個閃存存儲器模塊包括至少一個閃存存儲器芯片。存儲控制器將多個閃存存儲器模塊中連接在同一通道上的多個閃存存儲器模塊組合成第一邏輯組;把各第一邏輯組的多個閃存存儲器模塊相對應的第一地址轉換成第二地址;把多個第一邏輯組組合成第二邏輯組;針對各閃存存儲器模塊,對屬于閃存存儲器芯片的塊進行擦除次數(shù)的平均;根據(jù)各閃存存儲器模塊的數(shù)據(jù)寫入量或?qū)儆诟鏖W存存儲器模塊的閃存存儲器的平均擦除次數(shù),在屬于第一邏輯組的多個閃存存儲器模塊之間交換數(shù)據(jù),然后對應于該數(shù)據(jù)交換,改變第一地址與第二地址之間的映射。
文檔編號G06F12/02GK101645041SQ200910173130
公開日2010年2月10日 申請日期2006年12月19日 優(yōu)先權日2006年3月29日
發(fā)明者島田健太郎, 田中勝也 申請人:株式會社日立制作所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
柞水县| 昌乐县| 丰顺县| 车致| 金溪县| 乾安县| 黄大仙区| 彭阳县| 同德县| 惠东县| 婺源县| 三门峡市| 云林县| 通许县| 无棣县| 梁平县| 新龙县| 平武县| 峨边| 阜南县| 密山市| 甘谷县| 奉新县| 图们市| 门头沟区| 泸定县| 兴安盟| 澄城县| 瑞安市| 丹棱县| 永年县| 临猗县| 睢宁县| 富宁县| 石屏县| 洮南市| 松江区| 新安县| 南溪县| 涞源县| 江西省|