專利名稱:存儲裝置以及數據重復排除方法
技術領域:
本發明涉及存儲裝置以及數據重復排除方法,尤其適用于以閃速存儲器作 為存儲介質的存儲裝置。
技術背景以往,在存儲裝置中,作為數據存儲介質而使用了例如》茲盤或光盤等可以 隨機存取的非易失性存儲介質。現在主流的存儲裝置具備大量小型磁盤驅動 器。另外,隨著近年的半導體技術的進步,開發了可以統一清除的非易失性半 導體存儲器。作為這種非易失性半導體存儲器存在例如閃速存儲器。在以閃速 存儲器作為存儲介質的存儲裝置中,與具備大量小型磁盤驅動器的存儲裝置相 比,認為壽命、節電以及存取時間等方面更加優秀。在此對閃速存儲器進行說明。在閃速存儲器中,塊(Block)是統一清除 數據的單位的存儲區域,頁(Page)是讀寫數據的單位。如后所述,在l個塊 內設有多個頁。另外,閃速存儲器因其特性而無法直接改寫數據。即,閃速存 儲器,在改寫所存儲的數據時,使存儲的有效數據保存到其它塊中。然后,以 塊為單位清除所存儲的數據。然后,在清除了數據的塊中寫入數據。具體而言,閃速存儲器可以將'T,改寫為"0",但無法將"0"改寫為T。 因此,在閃速存儲器中,在數據改寫時清除在塊中存儲的數據的全體。這樣, 閃速存儲器中的數據的改寫,伴隨著每個塊的數據的清除。但是,閃速存儲器 的每一個塊的數據清除所需的時間,與寫入l頁的數據所需的時間相比,長約 一個數量級。因此,為進行l頁的數據的改寫而進行每次l塊的數據清除時, 閃速存儲器的數據改寫性能悲觀地惡化。即,作為存儲介質而使用閃速存儲器 時,必須通過可以隱蔽從閃速存儲器清除數據的時間的算法來寫入數據。在通常的針對閃速存儲器的數據改寫動作中,以向未使用區域的追加方式 來進行數據改寫,不在每次改寫數據時清除數據。但是,當重復數據的改寫時,
閃速存儲器內的未使用區域減少,因此需要清除已寫入閃速存儲器的不需要的 數據,使存儲區域成為可以再利用的狀態。因此,僅將包含舊數據的塊內的有 效數據拷貝到未使用區域,清除拷貝源的塊來使其成為可以再利用的狀態的塊再生處理(以下將其稱為"再生(reclamation)"),對于閃速存儲器的數據高 速改寫是必須的。以無效數據增多的塊為對象來執行該再生。另一方面,在閃速存儲器中,數據清除的次數存在限制。例如,保證了每 塊多達10萬次的清除次數。數據的改寫集中、清除次數增大的塊存在無法清 除數據而不能使用的問題。因此,以閃速存儲器作為存儲介質的情況下,必須 進行防止數據清除處理集中于特定塊的清除次數平均化處理。為了以上所述的數據清除時間的隱蔽和數據清除次數的平均化,在閃速存 儲器模塊內寫入數據時,進行從邏輯地址向物理地址的地址變換處理。閃速存 儲器模塊由 一個以上的閃速存儲器芯片、和控制向該閃速存儲器芯片的數據讀 寫的閃速存儲器控制器構成。該閃速存儲器控制器進行邏輯地址和物理地址的 變換,而且,為了保存地址變換表,而在閃速存儲器中的每個物理單位區域、 即每個物理塊的規定的邏輯地址存儲區域中存儲了與該物理塊對應的邏輯單 位區域、即邏輯塊的邏輯地址。另外,為了降低存儲裝置的容量成本,數據重復排除技術(也被稱為 deduplication或者數據重復去除技術)受到了關注。數據重復排除技術是將存 儲了相同數據的多個邏輯塊與存儲了該數據的一個物理塊對應起來的技術,可 以節約存儲的數據容量(參照專利文獻1)。通過數據重復排除技術,可以降 低數據的改寫次數,因此通過將該凝:據重復排除技術應用于以閃速存儲器作為 存儲介質的存儲裝置,可以期待閃速存儲器的長壽命化。專利文獻1美國專利6928526號 發明內容在以閃速存儲器作為存儲介質的存儲裝置中應用數據重復排除技術時,需 要在每個物理塊中保持與該物理塊對應的各邏輯塊的邏輯地址。然而,每個物理塊的邏輯地址存儲區域是有限的,因此將大量邏輯地址寫 入該邏輯地址存儲區域時,該邏輯地址存儲區域的容量不足。另外,閃速存儲 器是無法進行數據重寫(overwrite)的存儲介質,因此對重復寫入狀態的物理 塊反復進行數據更新時,無效的邏輯地址增加,數據重復排除的效率降低。因此,在以閃速存儲器作為存儲介質的存儲裝置中應用數據重復排除技術時,需要方便地清除在各物理塊的邏輯地址區域中存儲的無效邏輯地址,若可以做到這一點,則可以實現閃速存儲器的長壽命化,有效地防止數據重復排除的效率惡化,使閃速存儲器的使用效率提高。另一方面,針對閃速存儲器的存儲區域的每個管理單位進行上述的數據重復排除。例如,在搭載有多個閃速存儲器模塊的存儲裝置中,在每個閃速存儲器模塊中獨立地進行所述數據重復排除處理,所述多個閃速存儲器模塊分別搭載多個閃速存儲器芯片。然而,數據的重復不僅發生在閃速存儲器模塊內、在閃速存儲器模塊間有時數據也會重復。因此,若可以排除這種閃速存儲器模塊間的數據重復,則可以進一 步提高數據重復排除的效率。考慮到以上各點而提出本發明,第一,提出了可以實現作為存儲介質的閃速存儲器的長壽命化,同時可以提高閃速存儲器的使用效率的存儲裝置以及數據重復排除方法;第二,提出了可以進一步提高數據重復排除的效率的存儲裝置以及數據重復排除方法。為了解決所述問題,在本發明中,提供一種搭載了一個或多個閃速存儲器模塊的存儲裝置,其特征在于,所述閃速存儲器模塊具備提供存儲區域的至 少一個閃速存儲器芯片;以及控制針對所述閃速存儲器芯片的數據讀寫的控制 器,所述控制器,在所述閃速存儲器芯片提供的所述存儲區域上定義的物理單 位區域內的規定的管理信息存儲區域中,存儲對應的一個或多個邏輯單位區域 的邏輯地址,由此進行排除重復數據的數據重復排除,并且針對每個所述物理 單位區域管理使用度和重復度,所述使用度是所述管理信息存儲區域中存儲的 所述邏輯地址的總數量,所述重復度是該物理單位區域所對應的有效的所述邏 輯地址的數量,對于所述使用度和所述重復度的差超過既定值的所述物理單位 區域,執行將該物理單位區域恢復為初始狀態的再生處理。另外,在本發明中提供一種存儲裝置,其具備提供存儲區域的多個閃速存 儲器模塊、和控制針對所述多個閃速存儲器模塊的數據讀寫的存儲控制器,其 特征在于,所述存儲控制器以規定單位分割數據,在所述多個閃速存儲器模塊 中進行讀寫,并且對于該規定單位以上的數據大小的數據,在跨越所述多個閃速存儲器模塊的范圍內進行排除重復數據的重復排除處理,所述多個閃速存儲 器模塊,對于所述規定單位以下的數據大小的數據,針對每個該閃速存儲器模塊進行數據重復排除處理。而且,在本發明中,提供一種排除存儲裝置中的數據重復的數據重復排除 方法,該存儲裝置搭載了一個或多個閃速存儲器模塊,該閃速存儲器模塊具有 分別提供存儲區域的至少一個閃速存儲器芯片,該數據重復排除方法的特征在于,具有以下步驟第一步驟,在所述閃速存儲器芯片提供的所述存儲區域上 定義的物理單位區域內的規定的管理信息存儲區域中,存儲對應的一個或多個 邏輯單位區域的邏輯地址,來進行所述數據重復排除處理,并且,針對每個所述物理單位區域管理使用度和重復度,所述使用度是在所述管理信息存儲區域 中存儲的所述邏輯地址的總數量,所述重復度是該物理單位區域所對應的有效 的所述邏輯地址的數量;第二步驟,對于所述使用度和所述重復度的差超過既 定值的所述物理單位區域,執行將該物理單位區域恢復為初始狀態的再生處 理。而且,在本發明中提供一種排除存儲裝置中的數據重復的數據重復排除方 法,該存儲裝置具有提供存儲區域的多個閃速存儲器模塊、和控制針對所述多 個閃速存儲器模塊的數據讀寫的存儲控制器,該數據重復排除方法的特征在 于,具備以下步驟第一步驟,所述存儲控制器以規定單位分割數據,在所述 多個閃速存儲器模塊中進行讀寫,并且對于該規定單位以上的數據大小的數 據,在跨越所述多個閃速存儲器模塊的范圍內進行排除重復數據的重復排除處 理;第二步驟,所述多個閃速存儲器模塊,對于所述規定單位以下的數據大小的數據,針對每個該閃速存儲器模塊進行數據重復排除處理。根據本發明,可以在實現作為存儲介質的閃速存儲器的長壽命化的同時有效利用閃速存儲器。另外,根據本發明,可以進一步提高數據重復排除的效率。
圖1是表示第1至第5實施方式的存儲裝置的結構的框圖。 圖2是表示第1至第5實施方式的通道適配器的結構的框圖。 圖3是表示第1至第5實施方式的存儲適配器的結構的框圖。
圖4是表示第1至第5實施方式的閃速存儲器模塊的結構的框圖。圖5是用于說明第1至第5實施方式的閃速存儲器模塊的塊結構的概念圖。圖6是用于說明物理塊中的管理信息存儲區域的概念圖。圖7是用于說明物理地址以及邏輯地址的對應的概念圖。圖8是用于說明物理地址以及邏輯地址的對應的概念圖。圖9是用于說明地址變換表的概念圖。圖IO是用于說明散列值管理表的概念圖。圖U是用于說明物理塊管理表的概念圖。圖12是用于說明第1實施方式的數據寫入處理的流程圖。圖13是用于說明第1實施方式的再生處理的流程圖。圖14是用于說明第2實施方式的數據重復排除處理的流程圖。圖15是用于說明第3實施方式的數據重復排除處理的流程圖。圖16是用于說明第3實施方式的數據重復排除處理的概念圖。圖17是用于說明第3實施方式的物理塊的數據結構的概念圖。圖18是用于說明第4實施方式的再生處理的流程圖。圖19是用于說明RAID條帶化動作的概念圖。圖20是用于說明第5實施方式的數據重復排除處理管理表的概念圖。 符號說明1存儲裝置;2存儲控制器;3閃速存儲器模塊;6A、 6B存儲適配器; 10維護終端;50處理器;53 RAM; 54 ROM; 59、 100物理塊;60、 101頁; 63、 105、 105A 105h管理信息存儲區域;66邏輯地址存儲區域;80地址 變換表;82散列值管理表;84物理塊管理表;104、 104A 104h子塊;120 數據重復排除管理表具體實施方式
參照以下附圖,詳細描述本發明的一個實施方式。(1)第1實施方式圖1表示第1實施方式的存儲裝置1的結構。該存儲裝置1由分別提供 存儲區域的多個閃速存儲器模塊3A~3P;和控制針對這些閃速存儲器模塊3A ~ 3P的數據讀寫的存儲控制器2構成。存儲控制器2具備通道適配器4A、 4B;高速緩沖存儲器5A、 5B;存 儲適配器6A、 6B以及相互結合網7A、 7B。此外,在圖1中表示了各設置兩 個通道適配器4A、 4B;高速緩沖存儲器5A、 5B以及存儲適配器6A、 6B的 情況,^f旦它們也可以各i殳置一個或三個以上。相互結合網7A、 7B例如由交換器等構成,將通道適配器4A、高速緩沖 存儲器5A以及存儲適配器6A相互連接,并且將通道適配器4B、高速緩沖存 儲器5B以及存儲適配器6B相互連接。通道適配器A4經由通道8AA~ 8DA與未圖示的外部的上位裝置相連。同 樣地,通道適配器4B經由通道8AB 8DB與外部的上位裝置相連。此外,上 位裝置是向本實施方式的存儲裝置1讀寫數據的計算機。高速緩沖存儲器5A、 5B用于暫時存儲從通道適配器4A、 4B以及存儲適 配器6A、 6B接收到的數據。存儲適配器6A經由通道9AA ~ 9DA與各閃速存儲器模塊3A ~ 3P分別連 接,以便可以經由對應的通道9AA ~ 9DA訪問希望的閃速存儲器模塊3A ~ 3P。 具體而言,存儲適配器6A經由通道9AA與閃速存儲器模塊3A ~ 3D連接,經 由通道9BA與閃速存儲器模塊3E 3H相連。另外,存儲適配器6A經由通道 9CA與閃速存儲器模塊31 ~ 3L連接,經由通道9DA與閃速存儲器模塊3M ~ 3P連接。同樣地,存儲適配器6B經由通道9AB ~ 9DB與各閃速存儲器模塊3A~ 3P分別連接,以便可以經由對應的通道9AB ~ 9DB訪問希望的閃速存儲器才莫 塊3A-3P。具體而言,存儲適配器6B經由通道9AB與閃速存儲器模塊3A 3D連接,經由通道9BB與閃速存儲器模塊3E-3H連接。另外,存儲適配器 6B經由通道9CB與閃速存儲器模塊31 ~ 3L連接,經由通道9DB與閃速存儲 器模塊3M 3P連接。通道適配器4A、 4B以及存儲適配器6A、 6B與維護終端10相連。維護 終端IO是具備CPU (Central Processing Unit)和存儲器等信息處理資源的計 算機裝置,例如由筆記本型個人計算機構成。維護終端IO將由存儲裝置1的 管理者輸入的設定信息發送至通道適配器4A、 4B和/或存儲適配器6A、 6B。
此外,也可以代替通道適配器4A和存儲適配器6A,而設置具備這些通 道適配器4A和存儲適配器6A的功能的一個適配器。11A ~ 11D表示RAID (Redundant Arrays of Inexpensive Disks )組。例如, RAID組11A由閃速存儲器模塊3A、 3E、 31、 3M構成。當屬于RAID組11A 的閃速存儲器模塊3A、 3E、 31、 3M之一、例如閃速存儲器模塊3A中發生故 障而無法讀出數據時,可以根據存儲在屬于相同RAID組11A的其它閃速存 儲器模塊3E、 31、 3M中的關聯的數據,復原存儲在該閃速存儲器模塊3A中 的數據。閃速存儲器模塊3A ~ 3P經由網絡12A與存儲適配器6A相連,并且經由 網絡12B與存儲適配器6B相連。存儲控制器2和閃速存儲器模塊3A ~ 3P經 由網絡12A、 12B相互通信用于數據重復排除控制的信息等。圖2表示通道適配器4A、 4B的結構。如該圖2所示,通道適配器4A、 4B具備主機通道接口 21、高速緩沖存儲器接口 22、網絡接口 23、處理器 24、本地存儲器25以及處理器外圍控制部26。主機通道接口 21是用于經由通道8AA ~ 8DA、 8AB ~ 8DB與上位裝置進 行通信的接口,將通道8AA-8DA、 8AB 8DB上的數據傳輸協議與存儲控 制器2的內部的數據傳輸協議相互轉換。另外,高速緩沖存儲器接口 22是針 對相互結合網7A、 7B的接口 ,網絡接口 23是用于進行與維護終端10的通信 的接口。此外,主機通道接口 21和高速緩沖存儲器接口 22經由信號線27相 連。處理器24是負責該通道適配器4A、 4B全體的動作控制的處理器,根據 存儲在本地存儲器25中的程序進行各種控制處理。例如,處理器24控制上位 裝置和相互結合網7A、 7B之間的數據傳輸。本地存儲器25存儲由處理器24執行的程序和表。該表由管理者設定或變 更。此時,管理者將與表的設定或表的變更相關的信息輸入維護終端10。維 護終端IO將輸入的信息經由網絡接口 23發送至處理器24。處理器24根據接 收到的信息生成或變更表,將生成或變更后的表存儲在本地存儲器25中。處理器外圍控制部26控制主機通道接口 21、高速緩沖存儲器接口22、網 絡接口 23、處理器24以及本地存儲器25間的數據傳輸。處理器外圍控制部 26例如由芯片組等構成。圖3表示存儲適配器6A、 6B的結構。如該圖3所示,存儲適配器6A、 6B具備高速緩沖存儲器接口 31、存儲通道接口 32、網絡接口 33、處理器34、 本地存儲器35以及處理器外圍控制部36。高速緩沖存儲器接口 31是用于將該存儲適配器6A、6B與相互結合網7A、 7B連接的接口。另外,存儲通道接口 32是用于將該存儲適配器6A、 6B與通 道9AA ~ 9DA、 9AB ~ 9DB連接的接口 ,將通道9AA ~ 9DA、 9AB ~ 9DB上 的數據傳輸協議和存儲控制器2內部的數據傳輸協議相互轉換。此外,高速緩 沖存儲器接口 31和存儲通道接口 32經由信號線37相連。網絡接口 33是用于將該存儲適配器6A、 6B與維護終端10和閃速存儲器 模塊3A~3P連接的接口。處理器34是負責該存儲適配器6A、 6B全體的動作控制的處理器,根據 存儲在本地存儲器35中的程序進行各種控制處理。例如,處理器34控制各閃 速存儲器模塊3A ~ 3P和相互結合網7A、 7B間的數據傳輸。本地存儲器35存儲由處理器34執行的程序和表。該表由管理者設定或變 更。此時,管理者將與表的設定或表的變更相關的信息輸入維護終端10。維 護終端IO將輸入的信息經由網絡接口 33發送至處理器34。處理器34根據接 收到的信息生成或變更表,將生成或變更后的表存儲在本地存儲器35中。處理器外圍控制部36控制高速緩沖存儲器接口 31、存儲通道接口 32、網 絡接口 33、處理器34以及本地存儲器35間的數據傳輸。處理器外圍控制部 36例如由芯片組等構成。圖4表示閃速存儲器模塊3A ~ 3P的結構。閃速存儲器模塊3A ~ 3P具備 閃速存儲器控制器41和閃速存儲器42。閃速存儲器42是用于存儲數據的非 易失性存儲介質,閃速存儲器控制器41進行用于對閃速存儲器42讀寫數據或 刪除存儲在閃速存儲器42中的數據的控制處理。該閃速存儲器控制器41具備處理器50、接口部51、內部總線52、 RAM (Random Access Memory) 53 、 ROM (Read Only Memory) 54、網絡4妄口 55 、 閃速存儲器接口部56以及數據傳輸部57。閃速存儲器42由多個閃速存儲器芯片58構成。在閃速存儲器芯片58提
供的存儲區域中設定多個物理塊59,在該物理塊59中存儲數據。塊59是存 儲器控制器41清除數據的單位。接口部51經由通道9AA ~ 9DA與存儲控制器2內的存儲適配器6A連接, 并且經由通道9AB ~ 9DB與存儲控制器2內的存儲適配器6B連接。并且,接 口部51經由這些通道9AA ~ 9DA、 9AB ~ 9DB收發來自存儲適配器6A和存 儲適配器6B的數據或命令(例如SCSI命令)。例如接口部51接收經由通道9AA~9DA、 9AB ~ 9DB從存儲適配器6A 或存儲適配器6B發送的數據,將接收到的數據存儲在存儲器53中。另外, 接口部51將存儲器53中存儲的數據經由通道9AA ~ 9DA、 9AB ~ 9DB發送 至存儲適配器6A或存儲適配器6B。RAM53由可以高速讀寫數據的SRAM ( Static RAM)或DRAM ( Dynamic RAM)構成,用于暫時存儲由接口部51收發的數據。另外,ROM54由非易 失性存儲器構成,存儲由處理器50執行的程序。在存儲裝置啟動時將該程序 從ROM54向RAM53拷貝,以便能夠由處理器50執行。另外,在RAM53中還存儲了由處理器50參照的表。該表例如是閃速存 儲器42的邏輯地址和物理地址的變換表。邏輯地址是用于從閃速存儲器模塊 3A ~ 3P夕卜(例如從存儲適配器6A、 6B )訪問閃速存儲器42的地址,物理地 址是用于由閃速存儲器控制器41訪問閃速存儲器42的地址。內部總線52將處理器50、接口部51、 RAM53、 ROM54、網絡接口 55、 數據傳輸部57以及閃速存儲器接口部56相互連接,作為數據傳輸路徑而工作。網絡《接口 55控制閃速存儲器控制器41和存儲控制器2間的通信。網絡接 口55經由網絡12A、 12B與存儲適配器6A、 6B相連。閃速存儲器接口部56是將閃速存儲器控制器41和閃速存儲器42連接的 接口。數據傳輸部57根據處理器50的命令,控制接口部51和RAM53以及閃 速存儲器42間等的數據傳輸。此外,由處理器50執行數據傳輸部57的功能 時,可以省略數據傳輸部57。處理器50負責閃速存儲器模塊3A 3P全體的動作控制,根據拷貝到 RAM53中的程序進行各種控制處理。例如,處理器50參照被拷貝到RAM53
中的閃速存儲器42的邏輯地址和物理地址的變換表,在閃速存儲器42中讀寫 數據。另外,處理器50對于閃速存儲器模塊3A 3P內的塊59進行再生處理 (塊再生處理)以及損耗平衡(wear leveling)處理(清除次數平均化處理)。圖5表示在閃速存儲器芯片的存儲區域中設定的塊59的結構。如該圖5 所示,塊59由幾十個(例如64個)左右的頁60構成。如上所述,頁60是閃速存儲器控制器41在閃速存儲器芯片58中讀寫數 據的單位。例如,在NAND (NotAND)型閃速存儲器的情況下,閃速存儲器 控制器41以20 30ps/頁的速度讀出數據,以0.2 0.3ms/頁的速度寫入數據。 另外,閃速存儲器控制器41以2 4ms/塊的速度清除數據。頁60由作為用于存儲通常的數據的區域的數據部61、作為用于存儲該頁 60的管理信息以及糾錯信息的區域的冗余部62構成。例如,每l頁的容量為 2112字節,將其中的2048字節設定為數據部,將64字節設定為冗余部62。管理信息包含偏移地址(offset address )和頁狀態(page status )。該偏移 地址是對應的塊59內的該頁60的相對地址。另外,頁狀態表示該頁60是有 效頁、無效頁、未使用頁或處理過程中的頁中的某種頁。糾錯信息是用于檢測和修正該頁60的錯誤的信息,例如使用漢明碼 (Hamming code )。例如,通過由處理器50執行在RAM53或ROM54中存儲 的程序來生成該糾錯信息。冗余部62通常僅可以由閃速存儲器控制器41訪問。因此,僅數據部61 是可以從存儲適配器6A、 6B訪問的區域。換言之,可以說將邏輯地址映射到 數據部61的存儲器空間。塊59在規定的存儲器位置具有管理信息存儲區域63。該管理信息存儲區 域63是存儲與塊59內的物理地址對應的邏輯地址等的管理信息的區域。因此, 從屬于塊59的頁60的數據部61的合計中減去管理信息存儲區域63而得到的 容量,成為存儲控制器2可以在閃速存儲器模塊3A~ 3P的每1塊中存儲的數 據容量。此外,在本實施方式中,為了便于說明,設在閃速存儲器模塊3A-3P中 讀寫數據的訪問單位是在閃速存儲器42的每1塊中可以存儲的容量。即,存 儲控制器2以向閃速存儲器42內的塊59的數據存儲容量單位,對閃速存儲器
模塊3A 3P讀寫數據。圖6表示管理信息存儲區域63的結構。由該圖6可知,管理信息存儲區 域63由塊管理信息存^f渚區域64、散列(hash)值存儲區域65以及邏輯地址存 儲區域66構成。其中,在塊管理信息存儲區域64中存儲該塊59到目前為止的清除次數、 和表示塊59的狀態(有效、無效、未使用或已寫入)的信息。另夕卜,在散列值存儲區域65中存儲用于識別被寫入該塊59中的數據的信 息、即散列值。該散列值可以通過存儲控制器2生成,或者也可以通過閃速存 儲器模塊3A ~ 3P內的處理器50生成。當通過存儲控制器2生成散列值時,存儲控制器2將生成的散列值和寫入 數據一起發送至閃速存儲器模塊3A 3P。通過該方法有能夠降低處理器50 的負荷的優點。另外,當在閃速存儲器模塊3A 3P內生成散列值時,例如使 用生成閃速存儲器模塊3A 3P內的糾錯信息的某種手段來生成散列值。通過 該方法有能夠降低存儲控制器2和閃速存儲器模塊3A ~ 3P間的通道負荷的優 點。而且,在這種情況下,在本實施方式的存儲裝置1中搭載了數據重復排除功能,通過 該數據重復排除功能,可以將最大8個邏輯塊與一個物理塊(塊59)對應。 因此,本實施方式的情況下,在邏輯地址存儲區域66中可以存儲最大8個與 該塊59對應的邏輯塊的邏輯地址(LBA00 ~ LBA07 )。此外,在邏輯地址存儲區域66中存儲的信息,只要是可以確定邏輯塊的 信息,則也可以是邏輯地址以外的信息。將邏輯地址存儲區域66中存儲的最 大8個的邏輯地址中的有效邏輯地址數定義為重復度,將邏輯地址存儲區域 66中存儲的邏輯地址的總數定義為使用度。另外,可以存儲在邏輯地址存儲 區域66中的邏輯地址數不限于8個,可以是任意個。但是,當將過大的容量 分配給邏輯地址存儲區域66時,1個塊59中可以存儲的數據量減少,因此當 決定存儲的邏輯地址數時,需要考慮管理信息存儲區域63的開銷(overhead )。接著,使用圖7和圖8,具體說明邏輯地址和物理地址的對應以及使用度 和重復度。
圖7表示物理地址空間70的物理塊59A、 59B與邏輯地址空間71的邏輯 塊72A ~ 72C之間的對應關系。第 一物理塊59A是從物理地址"aaaa"開始的 塊,其中寫入了數據"A"。該第一物理塊59A與第一至第三邏輯塊72A 72B 相對應,在該第一物理塊59A的邏輯地址存儲區域63A中存儲了所述第一至 第三邏輯塊72A ~ 72C的邏輯地址("xxxx" 、 "yyyy,, 、 "zzzz")。在這種情況下,第一物理塊59A的邏輯地址存儲區域63A中存儲的3個 邏輯地址全部有效,因此第一物理塊59A的使用度以及重復度都成為"3"。此外,在物理地址空間70中,從物理地址"bbbb,,開始的第二物理塊59B 是未使用塊,^^定在其邏輯地址存儲區域63B中未存儲邏輯地址。另一方面,從這種狀態起將邏輯地址空間71的第三邏輯塊72C中存儲的 數據改寫為"B,,時,如圖8所示,物理地址空間70中,在未使用的第二物 理塊59B中寫入數據"B,,,在該第二物理塊59B的邏輯地址存儲區域63B中 寫入邏輯地址"zzzz" (703 )。然后,存儲了作為第三物理塊72C的原始數據的"A"的第一物理塊59A 的邏輯地址存儲區域66(圖6)中的第三邏輯塊72C的邏輯地址被重寫為"0", 被無效化。該第三邏輯塊72C的數據改寫的結果是,第一物理塊59A的使用 度成為"3",重復度成為"2"。于是,重復度根據數據改寫而增減,但使用度只增加不減少。當使用度達 到邏輯地址存儲區域66的可存儲的邏輯地址數的最大值(例如圖6中為8個) 時,需要對該物理塊59執行再生,使邏輯地址存儲區域66成為未使用。圖9 ~圖11表示在參照圖4說明的閃速存儲器模塊3A ~ 3P的RAM53內 保存的、由處理器50參照的各種管理表。圖9表示地址變換表80,圖10表 示散列值管理表82,圖11表示物理塊管理表84。地址變換表80是用于將上位裝置識別的邏輯地址變換為與該邏輯地址對 應的物理地址的表,如圖9所示,由"邏輯塊地址"欄81A、"物理塊地址" 欄81B以及"已寫入標志"欄81C構成。在"邏輯塊地址"欄81A中存儲上位裝置識別的邏輯地址中、與該閃速 存儲器模塊3A 3P提供的存儲區域對應的邏輯塊的邏輯地址,在"物理塊地 址,,欄81B中存儲與該邏輯地址對應的物理塊的物理地址。
另夕卜,在"已寫入標志,,欄81C中存儲已寫入標志,該已寫入標志表示是 否已對該物理塊進行了數據的寫入。已寫入標志是表示對應的邏輯地址空間是未使用還是已寫入的標志,例如,當已寫入時在"已寫入標志"欄81C中存 儲"1",當未使用時在"已寫入標志"欄81C中存儲"0"。散列值管理表82是用于對寫入該閃速存儲器模塊3A-3P內的物理塊的 數據的散列值等進行管理的表,如圖IO所示,由"散列值,,欄83A、"物理塊 地址"欄83B、"控制標志"欄83C以及"邏輯地址"欄83D構成。其中,在"散列值"欄83A中存儲對應的數據的散列值,在"物理塊地 址"欄83B中存儲該閃速存儲器模塊3A 3P中存儲了該數據的物理塊的物理 地址。另外,在"控制標志,,欄83C中存^f渚用于如后所述地判定是否對該條 目進行了處理的控制標志,在"邏輯塊地址"欄83D中存儲與存儲了所述數 據的物理塊對應的邏輯塊的邏輯地址。此外,在散列值管理表82中,有時同一散列值與多個物理塊的物理地址 相對應。另外,有時針對每個散列值存儲多個邏輯塊的邏輯地址。物理塊管理表84是用于管理該閃速存儲器模塊3A 3P內的每個物理塊 的使用度和重復度等的表,由"物理塊地址"欄85A、"使用度"欄85B、"重 復度"欄85C以及"邏輯地址存儲區域的空閑"欄85D構成。并且,在"物理塊地址"欄85A中存儲該閃速存儲器模塊3A ~ 3P內的各 物理塊的物理地址,在"使用度"欄85B和"重復度"欄85C中分別存儲該 物理塊的當前的使用度和重復度。另外,在"邏輯地址存儲區域的空閑,,欄 85D中,存儲該物理塊的邏輯地址存儲區域66 (圖6)中可以存儲的邏輯地址 的剩余數量。例如如圖6所示,當邏輯地址存儲區域66中可以存儲的邏輯地 址數最大為8個時,該剩余數量成為"8"與使用度的差。圖12表示與本實施方式的存儲裝置1中的數據寫入處理相關的閃速存儲 器模塊3A 3P的處理器50(圖4)的處理內容。在本實施方式中,特征之一 在于同時執行向閃速存儲器芯片58的數據寫入、和數據重復排除處理。即,處理器50當從存儲控制器2接收寫入命令以及寫入對象數據(以下 將其稱為寫入數據)時,開始該圖12所示的數據寫入處理,在散列值管理表 82 (圖10)上檢索針對該寫入數據的散列值(SP1 )。 在這種情況下,如上所述可以在存儲控制器2 (圖1)側以及閃速存儲器控制器41 (圖4)側的某一側生成寫入數據的散列值,例如在存儲控制器2 側生成所述散列值時,處理器50從存儲控制器2 —起接收寫入命令和散列值, 在散列值管理表82上檢索該散列值。另外,在閃速存儲器模塊3A 3P側內 生成所述散列值時,根據該寫入數據計算散列值,在散列值管理表82上檢索 該散列值。接著,處理器50根據步驟SP1的檢索結果,判斷是否將與所述寫入數據 對應的散列值相一致的散列值登錄在了散列值管理表82中(SP2)。在該判斷中得到否定結果,意味著被認為與該寫入數據相同的數據尚未被 寫入本閃速存儲器模塊內。因此,在這種情況下不需要進行數據重復排除處理。 于是,此時處理器50判斷地址變換表80中與作為寫入數據的寫入目的地而指 定的邏輯塊對應的條目的已寫入標志是否為"1" (SP3)。處理器50,當在該判斷中得到否定結果時參照地址變換表80,將寫入數 據寫入與作為寫入目的地而指定的邏輯塊對應的物理塊中。另外,處理器50入該物理塊的管理信息存儲區域63 (圖5)中(SP4),然后進入步驟SP8。與之相對,處理器50當在所述判斷中得到肯定結果時參照物理塊管理表 84,對該邏輯塊分配未使用的物理塊,將寫入數據寫入該物理塊(SP5 )。接著,處理器50通過用"0"重寫邏輯塊的邏輯地址來使其無效化,該邏 輯地址被存儲在此前作為寫入數據的寫入目的地而指定的邏輯塊所對應的物 理塊的管理信息存儲區域63 (圖5 )的邏輯地址存儲區域66 (圖6 )中(SP6 ), 而且,將物理塊管理表84的該物理塊所對應的條目的重復數減去"1" ( SP7 )。接著,處理器50在地址變換表80中登錄條目,并且將該條目中的已寫入 標志設定為"1"(SP8),所述條目是將作為寫入數據的寫入目的地而指定的 邏輯塊、與在步驟SP5中寫入了寫入數據的物理塊對應起來的條目。然后,處理器50在散列值管理表82中登錄新條目,該條目由在步驟SP5 中寫入未使用的物理塊的寫入數據的散列值、該物理塊的物理地址、與該物理 塊對應的邏輯塊的邏輯地址等信息構成。另外,處理器50,作為物理塊管理 表84中與該物理塊對應的條目的邏輯地址存儲區域66的空閑數而設定"7",
并且將該條目的使用度和重復度分別設定為"r (sp9),此后結束該數據寫 入處理。與之相對,處理器50在步驟SP2的判斷中得到肯定結果時,開始數據重 復排除處理,首先,選擇存儲了與步驟SP2中檢測出的散列值相同的已寫入 數據的物理塊,作為與寫入數據的寫入目的地的邏輯塊對應的物理塊。此時, 當所述散列值在散列值管理表82上與多個物理塊對應時,在具有與寫入數據 的寫入目的地邏輯塊對應的物理塊的情況下,處理器50選擇與寫入目的地邏 輯塊對應的物理塊,在沒有與寫入目的地邏輯塊對應的物理塊的情況下,處理 器50參照物理塊管理表84,從該多個物理塊中選擇使用度最小的物理塊 (SPIO)。接著,處理器50通過逐位比較此時預定寫入的寫入數據與已寫入在步驟 SP10中選擇的物理塊的已寫入數據,判斷它們是否完全一致(SPll)。此外, 在僅通過散列值的一致、不一致便可以判斷數據的一致、不一致時,可以省略 該步驟SPll。然后,處理器50在該判斷中得到否定結果時進入步驟SP3,與之相反, 當得到肯定結果時參照物理塊管理表84,判斷寫入了所述已寫入數據的物理 塊的使用度是否未達到物理塊的邏輯地址存儲區域88中可以存儲的邏輯地址 的最大數n(在此為"8")(SP12)。處理器50在該判斷中得到否定結果時進入步驟SP3,與之相反,當得到 肯定結果時,判斷在該物理塊的管理信息存儲區域63 (圖5 )的邏輯地址存儲 區域66(圖6)中是否存儲了作為該寫入數據的寫入目的地而指定的邏輯塊的 邏輯地址(SP13)。在該判斷中得到肯定結果,意味著在該物理塊中已經寫入了與該寫入數據 相同的寫入數據。并且,此時處理器50不將寫入數據寫入該物理塊地、結束 該數據寫入處理。另外,在步驟SP13的判斷中得到否定結果時,為了進行數據重復排除, 處理器50在所述步驟SP10中選擇的物理塊的管理信息存儲區域63的邏輯地 址存儲區域66中追加作為該寫入數據的寫入目的地而指定的邏輯塊的邏輯地 址,并且與之對應地更新散列值管理表82 (SP14)。
另外,處理器50在地址變換表80中登錄作為寫入數據的寫入目的地而指 定的邏輯塊的邏輯地址以及步驟SP10中選擇的物理塊的物理地址的條目,并 且將該條目中的已寫入標志的值設定為"1" (SP15)。而且,處理器50將與步驟SP10中選擇的物理塊對應的物理塊管理表84 上的條目中的邏輯地址存儲區域66的空閑數減少1,并且將該條目的使用度 和重復度分別增加1 (SP16),此后結束該數據寫入處理。另一方面,圖13表示與所述數據寫入處理獨立進行的再生處理相關的閃 速存儲器模塊3A 3P的處理器50的處理內容。該再生處理的特征在于,根 據物理塊的使用度和重復度的差來判定是否執行針對該物理塊的再生。并且,當存儲控制器2檢測出空閑(idle)狀態的閃速存儲器模塊3A 3P 時,向該閃速存儲器模塊3A 3P發出再生的執行命令,接收到該執行命令的 閃速存儲器模塊3A 3P的處理器50,按照存儲在RAM53中的對應的控制程 序,執行該圖13所示的再生處理。即,處理器50,當從存儲控制器2接收了再生的執行命令時,開始再生 處理,首先參照物理塊管理表84,將物理地址指針設置在最小的物理地址 (SP20 )。接著,處理器50參照物理塊管理表84,判斷此時物理塊指針所指示的物 理塊的使用度是否大于"0"(該物理塊并非未使用)、并且該物理塊的使用度 和重復度的差分值是否大于預定的闊值(該物理塊的邏輯地址存儲區域66中 存儲的邏輯地址中被無效化的邏輯地址(被重寫了 "0"的邏輯地址)的數量 多于所述閾值)(SP21 )。處理器50在該判斷中得到否定結果時進入步驟SP27,與之相反,當得到 肯定結果時,判斷該物理塊的重復度是否為"0" (SP22)。在該判斷中得到肯定結果,意味著該物理塊的邏輯地址存儲區域66中不 存在有效的邏輯地址(未被重寫"0"的邏輯地址),即該物理塊中所存儲的寫 入數據已經被更新,并被存儲在其它物理塊中。于是,此時處理器50進入步 驟SP24。與之相反,在所述判斷中得到否定結果,意味著該物理塊的邏輯地址存儲 區域66中存在有效的邏輯地址(該物理塊中存儲的數據是尚未被更新的有效 數據)。于是,此時處理器50將該物理塊中存儲的寫入數據拷貝到未使用的物 理塊中。處理器50選擇清除次數較少的未使用物理塊作為該拷貝目的地物理 塊。另外,此時處理器50,在拷貝源的物理塊的邏輯地址存儲區域66中存儲 的邏輯地址中,僅將有效的邏輯地址拷貝到拷貝目的地的物理塊的邏輯地址存 儲區域66中(SP23)。的地的物理塊的物理地址,并且將散列值管理表82的對應的條目中的物理地 址改寫為拷貝目的地的物理塊的物理地址(SP24),然后,從所述拷貝源的物 理塊中清除寫入該物理塊的寫入數據(SP25)。接著,處理器50將物理塊管理表84中的拷貝源的物理塊的條目初始化 (SP26)。具體而言,處理器50針對物理塊管理表84中的拷貝源的物理塊的 條目,將使用度和重復度都設為"0",而且將邏輯地址存儲區域66的空閑數 恢復為"8"。此后,處理器50參照物理塊管理表84,判斷物理塊指針是否指示著物理 地址在最后的物理塊的該物理地址(SP27)。處理器50,在所述判斷中得到否定結果時參照物理塊管理表84,將物理 地址指針設置在該物理地址指針當時所指示的物理地址的下一物理地址。但 是,此時,應排除在步驟SP23中作為拷貝目的地而選擇的物理塊的物理地址 (SP28 )。然后,處理器50此后重復步驟SP21 ~步驟SP28的處理,直到在步驟SP27 中得到肯定結果。其結果是,順次對該閃速存儲器模塊3A 3P內的物理塊中 滿足步驟SP21中的條件的物理塊進行再生處理。處理器50,最終由于針對相應的全部物理塊的再生結束而在步驟SP27中 得到肯定結果時,結束該再生處理。接下來,說明本實施方式的數據重復排除處理對閃速存儲器的改寫壽命的 效果。首先,在不進行數據重復排除處理時,在閃速存儲器的物理塊中存儲的 數據的清除所需的次數E1如下式表示數學式5El =寫入數據大小/塊大小 ...(5 )。
另一方面,設數據的重復率為m,在進行數據重復排除處理時,閃速存儲 器的物理塊中存儲的數據的清除所需的比例E2可以如下式表示數學式6E2-寫入數據大小x(l-m)/塊大小+ l …(6)。假定寫入數據的大小足夠大,當忽略E2的第2項的"+ l"時,通過數據 重復排除,在物理塊中存儲的數據的清除次數達到(l-m)倍。即,通過數據重 復排除,閃速存儲器的改寫壽命增加1/(l-m)倍。例如,當寫入平均重復50% 的數據時,介質壽命延長到約2倍。另外,實際不向物理塊寫入重復數據,而 僅追加邏輯地址,因此改寫時間縮短,寫入性能提高。但是,為了精確,需要考慮針對每個物理塊設置的管理信息存儲區域66 (圖5 )的開銷對改寫壽命延長效果的影響。當針對每128kB塊大小確保512B 的管理區域時,數據重復排除的介質壽命延長效果降低512B/128kB:約0.4°/。。如上所述,在本實施方式的存儲裝置中,通過使用了數據重復排除技術, 可以實現閃速存儲器的長壽命化,此外,針對每個物理塊來管理使用度和重復 度,當使用度和重復度的差超過閾值時執行針對該物理塊的再生,因此方便地 進行再生,于是可以防止數據重復排除的效率惡化,從而提高閃速存儲器的使 用效率。(2)第2實施方式第2實施方式的特征在于,在各閃速存儲器模塊3A 3P中,在像第1實 施方式那樣進行向閃速存儲器42的數據寫入處理時,不執行數據重復排除處 理,而在與數據寫入處理不同的時刻執行所述數據重復排除處理,并且針對多 個重復數據中的每一個來進行數據重復排除處理。圖14表示與這種第2實施方式中的數據重復排除處理相關的閃速存儲器 模塊3A ~ 3P的處理器50的具體處理內容。處理器按照存儲在RAM53 (圖4 ) 中的對應的程序,執行該圖14所示的數據重復排除處理。即,處理器50當從存儲適配器6A、 6B (圖1 )接收了數據重復排除的執 行命令時,開始該數據重復排除處理,首先,將散列值管理表82的各條目的 控制標志全部設定為"0" (SP30)。接著,處理器50在散列值管理表82上檢索已將控制標志設定為"0"的
多個條目中相同的散列值(SP31)。此外,處理器50在該檢索中檢測出多個 上述散列值時,僅選擇最初檢測出的散列值,以該散列值為對象來執行以下處 理。接下來,處理器50參照物理塊管理表84,設通過步驟SP31的檢索而檢 測出的散列值的各條目所對應的物理塊的數量為X、在這些物理塊的邏輯地址 存儲區域中存儲的有效的邏輯地址的數量為Y,判斷所述X和Y是否滿足下 式數學式7... (7),以及數學式8X-int(Y/n)-l^閾值 …(8 ) ( SP32 )。在此,可以作為這些物理塊的重復 度的合計而求得Y。在此,n是物理塊的邏輯地址存儲區域66 (圖6)中可以存儲的邏輯地址 的最大值(在此是"8" ), int(Y/n)表示小于Y/n并且最接近Y/n的整數。因此, int(Y/n)+l是數據重復排除處理后的使用物理塊數,因此(8 )式的左邊表示數 據重復排除處理的效果。在該判斷中得到否定結果意味著在控制標志被設定為"0"的多個條目 中不存在相同的散列值;或者盡管存在所述散列值,但即使進行數據重復排除 處理,也無法期待很大的效果。于是,此時處理器50結束該數據重復排除處 理。與之相反,在步驟SP32的判斷中得到肯定結果,意味著在控制標志被設 定為"0"的多個條目中存在相同的散列值,并且在進行數據重復排除處理的 情況下,可以期待較大的效果。于是,此時處理器50通過分別逐位比較在步驟SP31中檢測出的多個條目 的各物理塊中存儲的寫入數據,判斷在所述多個條目的各物理塊中分別存儲的 寫入數據是否完全相同(SP33)。此外,在僅通過散列值的一致便可以保證數 據一致的情況下,也可以省略該步驟SP33。然后,處理器50當在該判斷中得到否定結果時,結束針對所述各條目的 物理塊中存儲的寫入數據的數據重復排除處理,在將所述各條目的控制標志都
變更為"1"后(SP34)返回步驟SP31。與之相反,處理器50當在所述判斷中得到肯定結果時,將步驟SP31中檢 測出的多個條目的各物理塊中存儲的相同寫入數據,拷貝到int(Y/n)+l個的 未使用的物理塊中(SP35)。在此,處理器50選擇清除次數較少的未使用物 理塊作為拷貝目的地物理塊。接著,處理器50在寫入數據的拷貝目的地的各物理塊中的邏輯地址存儲 區域66 (圖6)中,分散存儲與拷貝源的各物理塊分別對應的各邏輯塊的邏輯 地址(SP36 )。然后,處理器50將地址變換表80的對應的各條目、即與拷貝源物理塊對 應的各邏輯塊所分別對應的條目的物理地址,更新為在步驟SP36中在邏輯地 址存儲區域66中存儲了該邏輯塊的邏輯地址的物理塊的物理地址。另外,處 理器50將散列值管理表82上的在步驟SP35中拷貝的寫入數據的散列值所對 應的各條目的控制標志分別更新為"1",并且與之配合地,根據步驟SP35以 及步驟SP36的處理,更新所述條目的物理地址、或所述條目的物理地址以及 邏輯地址(SP37 )。接著,處理器50,針對在步驟SP35中的寫入數據的拷貝源的各物理塊, 通過在該物理塊的邏輯地址存儲區域66中存儲的全部邏輯地址上重寫"0", 將這些全部邏輯地址無效化。而且,處理器50將物理塊管理表84中的這些拷 貝源的各物理塊的重復度改寫為"0" (SP38)。接著,處理器50返回步驟SP31,此后重復同樣的處理(SP31-SP38-SP31)。然后,處理器50最終在步驟SP32中得到否定結果時,結束該數據重 復排除處理。如上所述,根據本實施方式,在與數據寫入不同的時刻、例如閃速存儲器 模塊為空閑狀態時等時刻進行數據重復排除處理,因此,除了通過第1實施方 式得到的效果以外,還可以得到以下特殊效果例如數據寫入處理大量重疊時, 可以提前并且有效地防止由于執行數據重復排除處理而導致數據寫入處理的 處理速度降低。(3)第3實施方式第3實施方式的特征在于,不像第2實施方式那樣集體對存儲相同數據的
多個物理塊進行數據重復排除處理,而是每次1對地對存儲了相同數據的物理 塊進行數據重復排除處理。圖15表示與這種第3實施方式中的數據重復排除處理相關的閃速存儲器 模塊3A-3P的處理器50的具體處理內容。處理器50按照在RAM53 (圖4) 中存儲的對應的控制程序,執行該圖15所示的數據重復排除處理。即,處理器50,當從存儲適配器6A、 6B (圖1 )接收數據重復排除的執 行命令時,開始數據重復排除處理,首先將散列值管理表82的各條目的控制 標志全部設定為"0" (SP40)。接著,處理器50在散列值管理表82中檢索分別將控制標志設定為"0" 的多個條目中相同的散列值(SP41)。此外,處理器50當在該檢索中檢測出 滿足上述條件(在分別將控制標志設定為"0"的多個條目中相同)的多個散 列值時,以最初檢測出的散列值為對象執行以下處理。以下,將與通過步驟SP41的檢索而檢測出的散列值的各條目對應的物理 塊中、在物理塊管理表84上登錄的邏輯地址存儲區域66的空閑數量最大的物 理塊稱為第一對象物理塊,將與通過步驟SP41的檢索而檢測出的散列值的各 條目對應的物理塊中、邏輯地址存儲區域66的空閑數量最小并且重復度最小 的塊稱為第二對象物理塊。接著,處理器50參照物理塊管理表84,設存在具有相同散列值且控制標 志為"0"的多個條目,并且第一對象物理塊中的邏輯地址存儲區域66的空閑 數量為X、第二對象物理塊的重復度為Y,判斷能否在第一對象物理塊中的邏 輯地址存儲區域66的空閑區域中,追加在第二對象物理塊中的邏輯地址存儲 區域66中存儲的邏輯地址(X^Y) (SP42)。處理器50,當在該判斷中得到否定結果時,再次通過在散列值管理表82 上檢索在步驟SP41中滿足上述條件的散列值,來判斷是否存在滿足該條件的 其它散列值(SP43)。然后,處理器50在該判斷中得到否定結果時,結束該 數據重復排除處理。與之相反,處理器50在所述判斷中得到肯定結果時返回步驟SP42,此后 重復同樣的處理,直到在步驟SP42中得到肯定結果或者在步驟SP43中得到 否定結果(SP42 - SP43 - SP42 )。 處理器50當最終在步驟SP42中得到肯定結果時,通過分別逐位比較在第 一對象物理塊中存儲的數據與在第二對象物理塊中存儲的數據,判斷在所述多 個條目的各物理塊中分別存儲的數據是否相同(SP44)。此外,當僅通過散列 值的一致便可以保證數據一致時,也可以省略該步驟SP44。處理器50,當在該判斷中得到肯定結果時,如圖16所示,將第二對象物 理塊的邏輯地址存儲區域66中存儲的全部邏輯地址拷貝到第一對象物理塊的 邏輯地址存儲區域66中(SP45)。此外,在該圖16中,寫入第一和第二對象 物理塊59A、 59B的數據都是"A"。并且,該圖16表示了將第二對象物理塊 59B的邏輯地址存儲區域66中存儲的邏輯地址"Y"拷貝到第一對象物理塊 的邏輯地址存儲區域66的空閑區域時的情況。處理器50在步驟SP44中得到 否定結果時,使處理進入步驟SP47。接著,處理器50在第二對象物理塊的邏輯地址存儲區域66中存儲的全部 邏輯地址上重寫"0",來將這些邏輯地址無效化。另外,處理器50將物理塊 管理表84的第二對象物理塊所對應的條目的重復度變更為"0"。而且,處理 器50全部清除地址變換表80的第二對象物理塊所對應的條目的邏輯地址,并 且將該清除的全部邏輯地址作為第一對象物理塊所對應的條目的邏輯地址,追 加到地址變換表80中(SP46 )。而且,處理器50在散列值管理表82中將第二對象物理塊所對應的條目的 控制標志的值變更為"1",并且更新該條目中的物理地址和邏輯地址,而且在 物理塊管理表84中分別更新第一對象物理塊所對應的條目的使用度、重復度 以及邏輯地址存儲區域66的空閑數量(SP47 )。接著,處理器50返回步驟SP41,此后重復同樣的處理,直到在步驟SP43 中得到否定結果(SP41 ~ SP47 - SP41 )。然后,處理器50最終在步驟SP43中 得到否定結果時,結束該數據重復排除處理。如上所述,根據本實施方式,每次l對地對存儲相同數據的物理塊進行數 據重復排除處理,因此,可以得到與第1實施方式的效果等同的效果。(4)第4實施方式在上述第1至第3實施方式中說明了以物理塊為單位來進行數據重復排除 處理的情況。與之相對,第4實施方式的特征在于,以小于物理塊的塊大小的
數據大小來進行數據重復排除處理。圖17表示本實施方式中的閃速存儲器模塊3A-3P中的物理塊100的數 據結構。在該圖17中,物理塊100包含從第一個到第m個的頁101 (101A-101m (m是整數))。這些頁101都由與參照圖6所述的數據部61以及冗余部 62相同的數據部102以及冗余部103構成。在本實施方式中,對以2頁為單位來執行數據重復排除處理的情況進行說 明。以下,將執行數據重復排除處理的頁單位(在此是2頁)稱為子塊104。 例如,物理塊100包含由第1和第2頁IOIA、 IOIB構成的子塊104A;由 第3和第4頁101C、 IOID構成的子塊104B;由第m-l和第m頁101(m-l)、 101m構成的子塊101h (h=m/2)。另外,在各子塊104A ~ 104h中分別設置了 具有與參照圖4所述的管理信息存儲區域63功能相同的管理信息存儲區域 105 ( 105A~ 105h)。另外,以下為了簡化說明,設數據的讀寫單位以及數據重復排除處理單位 為子塊單位。即,在本實施方式中,在圖9的地址變換表80、圖10的散列值 管理表82以及圖11的物理塊管理表84中全部以子塊單位來管理信息。通過 在參照圖14或圖15所述的第2或第3實施方式中的數據重復排除處理的說明 中將"塊,,替換為"子塊,,,可以執行子塊單位的數據重復排除處理。但是,由于子塊不是清除單位,因此再生處理需要修改。因此,以下說明 使數據的讀寫單位以及數據重復排除處理單位為子塊104的情況下的再生處 理。圖18表示在使數據的讀寫以及數據重復排除處理的單位為子塊單位時 的、與再生處理相關的閃速存儲器模塊3A 3P的處理器50的處理內容。該 再生處理的特征在于,進行子塊單位和塊單位的兩級的數據拷貝,處理器50 按照在RAM53 (圖4)中存儲的對應的程序,執行圖18所示的再生處理。即,處理器50當從存儲控制器2接收再生的執行命令時開始再生處理, 首先參照物理塊管理表(參照圖11),將物理地址指針設置在物理地址最小的 物理塊的該物理地址(SP50)。接著,處理器50參照物理塊管理表(參照圖11),判斷此時物理塊指針 所指示的物理塊內的子塊104的使用度是否大于"0"(該子塊104并非未使
用)、并且該子塊104的使用度和重復度的差分值是否大于預先設定的闊值(該 子塊104的管理信息存儲區域105內的邏輯地址存儲區域中存儲的邏輯地址中 無效的邏輯地址的數量多于所述閾值)(SP51 )。處理器50在該判斷中得到否定結果時進入步驟SP55,與之相反,當得到 肯定結果時,將該子塊104中存儲的數據拷貝到未使用的物理塊100的子塊 104中 另外,此時處理器50僅將拷貝源的子塊104內的邏輯地址存儲區域 中存儲的邏輯地址中的有效的邏輯地址,拷貝到拷貝目的地的子塊104的邏輯 地址存儲區域中(SP52)。接著,處理器50將地址變換表(參照圖9)的對應的條目的子塊104的 地址改寫為拷貝目的地的子塊104的地址,并且從散列值管理表(參照圖10 ) 的對應的條目中刪除與拷貝源的子塊104對應的條目(SP53),然后,將物理 塊管理表中的拷貝源的子塊104所對應的條目的重復度更新為"0" (SP54)。此后,處理器50根據物理塊管理表,判斷此時處理過的子塊104是否是 此時作為對象的物理塊100內的最后的子塊104 ( SP55 )。然后,處理器50當在該判斷中得到否定結果時,將物理地址指針設置在 該物理塊100中的下一子塊104的地址(SP56),然后返回步驟SP51,此后重 復同樣的處理(SP51-SP56-SP51)。然后,最終由于針對此時作為對象的物理塊100內的全部子塊104結束同 樣的處理而在步驟SP55中得到肯定結果時,處理器50判斷該物理塊100內 的各子塊104的使用度的合計是否大于0、并且從各子塊104的使用度的合計 中減去重復度的合計所得到的值是否大于規定的閾值(SP57)。處理器50在該判斷中得到否定結果時進入步驟SP62,與之相反,當得到 肯定結果時,與參照圖13所述的再生處理的步驟SP23 ~步驟SP26同樣地將 該物理塊100中存儲的數據拷貝到未使用的物理塊100,并且與之對應地更新 地址變換表、散列值管理表以及物理塊管理表(SP59 SP61)。此后,處理器50參照物理塊管理表,判斷物理塊指針是否指示著物理地 址在最后的物理塊的物理地址(SP62)。當在所述判斷中得到否定結果時,處理器50參照物理塊管理表,將物理 地址指針設置在該物理地址指針此時指示的物理地址的下一物理地址。但是,此時,應排除在步驟SP52、 SP58中作為拷貝目的地而選擇的物理塊100的物 理地址(SP63 )。接著,處理器50返回步驟SP51,之后重復步驟SP51 步驟SP63的處理, 直到在步驟SP62中得到肯定結果。結果,針對該閃速存儲器模塊3A 3P內 的物理塊100以及該物理塊100內的子塊104中滿足步驟SP57的條件的物理 塊10以及滿足步驟SP51的條件的子塊104,順次進行再生處理。然后,處理器50,最終由于結束針對相應的全部物理塊IOO以及子塊104 的再生而在步驟SP62中得到肯定結果時,結束該再生處理。如上所述,根據本實施方式,以小于物理塊的塊大小的數據大小進行數據 重復排除處理,因此與第1至第3實施方式相比,可以更進一步提高數據重復 排除的效率。(5)第5實施方式首先,對RAID (Redundant Array of Inexpensive Disks )的條帶化(數據 分割)動作進行說明。在RAID中如圖19所示將數據分割為被稱為條帶110A, 110B,…的數據 單位,將該條帶110A, IIOB,…進一步分割為被稱為條帶單元110A1 ~ 110A3, 110B1 110B3,...的數據單位。然后,構成相同條帶IIOA, IIOB,...的各條 帶單元110A1 110A3, 110B1 110B3,…分別分散在構成RAID組111的多個 存儲介質112A~ 112D中,并且在相同時刻被讀寫。此外,下面說明所述存儲 介質112A~ 112D是閃速存儲器模塊的情況。根據冗余化方法或條帶化的大小等,在RAID中定義了 RAIDO、 RAID1、 RAID1+ 0等多個級別。并且,例如在RAID5中如圖19所示,由構成相同條 帶110A, IIOB,...的條帶單元110A1 ~ 110A3, 110B1 ~ 110B3,…生成的校 驗位(parity )被分散存儲在構成RAID組111的各閃速存儲器模塊112A~ 112D 中。結果,例如即使條帶IIOA和條帶110B具有完全相同的數據,閃速存儲 器模塊內也沒有重復的數據。即,在條帶單元110A1~110A3, 110B1~ 110B3,...的每個條帶單元中數據重復時,即使在閃速存儲器模塊112A 112D 的每個中進行數據重復排除處理,也無法期待效果。另一方面,當觀察RAID組111全體時,重復數據跨越多個閃速存儲器模
塊112A 112D而存在。為了排除這種重復狀態,需要由可以訪問RAID組111 全體的存儲控制器進行數據重復排除處理。因此,在本實施方式中,存儲裝置1的存儲控制器2 (圖1 )進行控制, 以便以條帶單元大小以上的數據處理單位、并且在跨越多個閃速存儲器模塊 3A 3P(圖1)的范圍內執行數據重復排除處理。另外,在本實施方式中,在 閃速存儲器模塊3A ~ 3P中,以條帶單元大小以下的數據處理單位執行數據重 復排除處理。這樣,通過以不同級別的數據處理單位執行數據重復排除處理, 數據重復的可能性升高,因此提高數據重復排除效果。具體而言,存儲控制器2根據需要,經由網絡12A或網絡12B對閃速存 儲器模塊3A ~ 3P指示在閃速存儲器模塊3A~ 3P的每個中執行的數據重復排 除處理的數據處理單位或條帶單元大小。由此,可以協調存儲控制器2和閃速 存儲器模塊3A ~ 3P中的數據重復排除。此外,作為數據重復排除的分級控制的另一例,存儲控制器2也可以針對 閃速存儲器才莫塊3A 3P中的每一個,經由網絡12A和網絡12B監視該閃速 存儲器模塊3A-3P內存在的各物理塊的使用度和重復度的統計信息,對于沒 有數據重復排除的效果的閃速存儲器模塊3A ~ 3P進行控制,以便停止數據重 復排除處理。另外,存儲控制器2也可以經由網絡12A、 12B調查每個閃速存儲器3A ~ 3P的重復度和未使用的物理塊數的統計信息,計算該重復度和未使用的物理 塊數據的乘積,來預測閃速存儲器模塊3A ~ 3P的每一個中今后可以存儲的容 量。圖20表示為了進行上述本實施方式的數據重復排除處理,而由存儲控制 器2保持并管理的數據重復排除管理表120。從該圖20可以明了 ,數據重復 排除管理表120由"邏輯單元號碼,,欄120A、"邏輯塊地址,,欄120B、"上位 控制"欄120C和"下位控制,,欄120D構成。另外,"邏輯塊地址,,欄120B 由"開始邏輯塊地址,,欄120BA和"最終邏輯塊地址"欄120BB構成,"上 位控制"欄120C由"上位控制標志"欄120CA和"上位控制大小"欄120CB 構成。另外,"下位控制"欄120D由"下位控制標志"欄120DA和"下位控 制大小"欄120DB構成。
并且,在"邏輯單元號碼,,欄120A中存儲存在于該存儲控制器2的下級 的各邏輯單元的邏輯單元號碼,在"開始邏輯塊地址,,欄120BA和"最終邏 輯塊地址"欄120BB中分別存儲在該邏輯單元中進行數據重復排除處理的最 初的邏輯塊的邏輯地址和最后的邏輯塊的邏輯地址。所述進行數據重復排除處 理的最初的邏輯塊的邏輯地址和最后的邏輯塊的邏輯地址,由用戶通過維護終 端10 (圖1 )設定。另外,在"上位控制標志"欄120CA中存儲表示存儲控制器2是否對該 邏輯單元執行數據重復排除處理的標志(以下,將其稱為數據重復排除處理執 行可否標志),在"上位控制大小"欄120CB中存儲執行所述數據重復排除處 理時的數據處理單位(以下,將其稱為數據重復排除處理執行單位)。在所述 "上位控制標志"欄120CA和"上位控制大小"欄120CB中存儲的標志或數 據處理單位,也由用戶通過維護終端10 (圖1)設定。而且,在"下位控制標志"欄120DA中存儲表示在具有與該邏輯單元對 應的物理單元的閃速存儲器模塊3A 3P中是否執行數據重復排除處理的標 志,在"上位控制大小"欄120DB中存儲在所述閃速存儲器模塊3A-3P中 執行數據重復排除處理時的數據處理單位。在所述"上位控制標志"欄120DA 和"上位控制大小,,欄120DB中存儲的標志或數據處理單位,也由用戶通過 維護終端10 (圖1 )設定。然后,存儲控制器2基于該數據重復排除管理表120,根據需要控制對應 的閃速存儲器模塊3A 3P,由此,以條帶單元大小以上的數據處理單位、并 且在跨越多個閃速存儲器模塊3A ~ 3P的范圍內執行數據重復排除處理。此外,作為數據重復排除處理的執行可否的設定例,有時進行設定,以便 對于與容量效率相比更要求冗余性的數據不執行數據重復排除處理。或者,在 與容量效率相比更重視讀寫的吞吐率的情況下,或對于訪問集中的數據,進行 控制以便不執行重復排除處理地將數據分散存儲在多個物理介質中。如上所述,在本實施方式中,以條帶單元大小以上的數據處理單位、并且 在跨越多個閃速存儲器模塊3A ~ 3P的范圍內執行數據重復排除處理,因此, 可以協調存儲控制器2和閃速存儲器模塊3A ~ 3P中的數據重復排除,于是可 以使數據重復排除處理的效果進一步提高。
權利要求
1. 一種搭載了一個或多個閃速存儲器模塊的存儲裝置,其特征在于,所述閃速存儲器模塊具備提供存儲區域的至少一個閃速存儲器芯片;以及控制針對所述閃速存儲器芯片的數據讀寫的控制器,所述控制器,在所述閃速存儲器芯片提供的所述存儲區域上定義的物理單位區域內的規定的管理信息存儲區域中,存儲對應的一個或多個邏輯單位區域的邏輯地址,由此進行排除重復數據的數據重復排除,并且針對每個所述物理單位區域管理使用度和重復度,所述使用度是所述管理信息存儲區域中存儲的所述邏輯地址的總數量,所述重復度是該物理單位區域所對應的有效的所述邏輯地址的數量,對于所述使用度和所述重復度的差超過既定值的所述物理單位區域,執行將該物理單位區域恢復為初始狀態的再生處理。
2. 根據權利要求1所述的存儲裝置,其特征在于, 所述物理單位區域是統一清除數據的單位,所述控制器以所述物理單位區域為單位,在所述閃速存儲器芯片提供的所 述存儲區域中讀寫數據,并且執行用于進行所述數據重復排除的處理。
3. 根據權利要求1所述的存儲裝置,其特征在于,所述控制器用0來重寫所述管理信息存儲區域中存儲的所述邏輯地址中 成為無效的所述邏輯地址。
4. 根據權利要求1所述的存儲裝置,其特征在于,所述控制器,設存儲了同一數據的所述物理單位區域的數量為X、設存儲 了所述同一數據的所述物理單位區域的所述管理信息存^f諸區域中存儲的有效 的所述邏輯地址的數量為Y、設可以在所述管理信息存儲區域中存儲的所述邏 輯地址的最大數量為n,當通過下式計算出的值在規定值以上時,數學式1X-int(Y/n)-l …(1),將所述同一數據拷貝至通過下式計算出的個數的、未使用的所述物理單位 區域中,排除重復的數據, 數學式2int(Y/n)+l。
5. 根據權利要求1所述的存儲裝置,其特征在于, 所述控制器,從存儲了同一翁:據的多個所述物理單位區域中,選擇所述邏輯地址所對應 的所述管理信息存儲區域的空閑最大的第一物理單位區域,并且選擇所述邏輯 地址所對應的所述管理信息存儲區域的空閑最小、且該管理信息存儲區域中存 儲的有效的所述邏輯地址的數量最小的第二物理單位區域,當所述第一物理單位區域的所述邏輯地址所對應的所述管理信息存儲區 域的空閑數量,在所述第二物理單位區域的所述管理信息存儲區域中存儲的有 效的所述邏輯地址的數量以上時,將所述第二物理單位區域的所述管理信息存 儲區域中存儲的有效的所述邏輯地址拷貝至所述第一物理單位區域的所述管 理信息存儲區域的空閑區域中,排除重復的數據。
6. 根據權利要求1所述的存儲裝置,其特征在于, 所述物理單位區域是由作為物理塊內的數據讀寫單位的至少一頁構成的子塊,該物理塊是統一清除數據的單位。
7. —種存儲裝置,具備提供存儲區域的多個閃速存儲器模塊、和控制針 對所述多個閃速存儲器模塊的數據讀寫的存儲控制器,其特征在于,所述存儲控制器以規定單位分割數據,在所述多個閃速存儲器模塊中進行 讀寫,并且對于該規定單位以上的數據大小的數據,在跨越所述多個閃速存儲器模塊的范圍內進行排除重復數據的重復排除處理,所述多個閃速存儲器模塊,對于所述規定單位以下的數據大小的數據,針對每個該閃速存儲器模塊進行數據重復排除處理。
8. 根據權利要求7所述的存儲裝置,其特征在于,所述存儲控制器對所述多個閃速存儲器模塊指示該閃速存儲器模塊中的 所述數據重復排除處理的處理單位。
9. 根據權利要求8所述的存儲裝置,其特征在于, 針對每個規定單位的存儲區域,設定可否執行由所述存儲控制器或所述閃速存儲器才莫塊執行的所述數據重復排除處理。
10. —種排除存儲裝置中的數據重復的數據重復排除方法,該存儲裝置搭 載了 一個或多個閃速存儲器模塊,該閃速存儲器模塊具有分別提供存儲區域的至少一個閃速存儲器芯片,該數據重復排除方法的特征在于,具有以下步驟區域內的規定的管理信息存儲區域中,存儲對應的一個或多個邏輯單位區域的 邏輯地址,來進行所述數據重復排除處理,并且,針對每個所述物理單位區域 管理使用度和重復度,所述使用度是在所述管理信息存儲區域中存儲的所述邏 輯地址的總數量,所述重復度是該物理單位區域所對應的有效的所述邏輯地址 的數量;第二步驟,對于所述使用度和所述重復度的差超過既定值的所述物理單位 區域,執行將該物理單位區域恢復為初始狀態的再生處理。
11. 根據權利要求IO所述的數據重復排除方法,其特征在于, 所述物理單位區域是統一清除數據的單位,所述閃速存儲器模塊以所述物理單位區域為單位,在所述閃速存儲器芯片 提供的所述存儲區域中讀寫數據,并且執行用于進行所述數據重復排除的處 理。
12. 根據權利要求IO所述的數據重復排除方法,其特征在于, 在所述第二步驟中,用0重寫所述管理信息存儲區域中存儲的所述邏輯地址中成為無效的所 述邏輯地址。
13. 根據權利要求IO所述的數據重復排除方法,其特征在于, 在所述第一步驟中,設存儲了同 一數據的所述物理單位區域的數量為X、設存儲了所述同 一數 據的所述物理單位區域的所述管理信息存儲區域中存儲的有效的所述邏輯地 址的數量為Y、設可以在所述管理信息存儲區域中存儲的所述邏輯地址的最大 數量為n,當通過下式計算出的值在規定值以上時,數學式3X-int(Y/n)-l …(3),將所述同一數據拷貝至通過下式計算出的個數的、未使用的所述物理單位 區域中,排除重復的數據,數學式4<formula>formula see original document page 4</formula>
14. 根據權利要求IO所述的數據重復排除方法,其特征在于, 在所述第二步驟中,從存儲了同一數據的多個所述物理單位區域中,選擇所述邏輯地址所對應 的所述管理信息存儲區域的空閑最大的第 一物理單位區域,并且選擇所述邏輯 地址所對應的所述管理信息存儲區域的空閑最小、且該管理信息存儲區域中存 儲的有效的所述邏輯地址的數量最小的第二物理單位區域,當所述第一物理單位區域的所述邏輯地址所對應的所述管理信息存儲區 域的空閑數量,在所述第二物理單位區域的所述管理信息存儲區域中存儲的有 效的所述邏輯地址的數量以上時,將所述第二物理單位區域的所述管理信息存 儲區域中存儲的有效的所述邏輯地址拷貝至所述第一物理單位區域的所述管 理信息存儲區域的空閑區域中,排除重復的數據。
15. 根據權利要求IO所述的數據重復排除方法,其特征在于, 所述物理單位區域是由作為物理塊內的數據讀寫單位的至少一頁構成的子塊,該物理塊是統一清除數據的單位。
16. —種排除存儲裝置中的數據重復的數據重復排除方法,該存儲裝置具 有提供存儲區域的多個閃速存儲器模塊、和控制針對所述多個閃速存儲器模塊 的數據讀寫的存儲控制器,該數據重復排除方法的特征在于,具備以下步驟第一步驟,所述存儲控制器以規定單位分割數據,在所述多個閃速存儲器 模塊中進行讀寫,并且對于該規定單位以上的數據大小的數據,在跨越所述多 個閃速存儲器模塊的范圍內進行排除重復數據的重復排除處理;第二步驟,所述多個閃速存儲器模塊,對于所述規定單位以下的數據大小 的數據,針對每個該閃速存儲器模塊進行數據重復排除處理。
17. 根據權利要求16所述的數據重復排除方法,其特征在于, 在所述第二步驟中,所述存儲控制器對所述多個閃速存儲器模塊指示該閃速存儲器模塊中的 所述數據重復排除處理的處理單位。
18. 根據權利要求17所述的數據重復排除方法,其特征在于, 針對每個規定單位的存儲區域,設定可否執行由所述存儲控制器或所述閃速存儲器模塊執行的所述數據重復排除處理。
全文摘要
本發明提供存儲裝置以及數據重復排除方法,能夠在實現作為存儲介質的閃速存儲器的長壽命化的同時,有效利用閃速存儲器。在閃速存儲器芯片所提供的存儲區域上定義的物理單位區域內的規定的管理信息存儲區域中,存儲對應的1個或多個邏輯單位區域的邏輯地址,來進行數據重復排除處理,并且針對每個物理單位區域,對管理信息存儲區域中存儲的邏輯地址的總數量即使用度、和與該物理單位區域對應的有效的邏輯地址數量即重復度進行管理,對于使用度和重復度的差超過既定值的物理單位區域,執行使該物理單位區域恢復初始狀態的再生處理。
文檔編號G06F12/02GK101398783SQ20081010890
公開日2009年4月1日 申請日期2008年6月6日 優先權日2007年9月28日
發明者中村崇仁, 水野真喜夫, 田中勝也 申請人:株式會社日立制作所