TW201401047A - 控制程式、主機裝置之控制方法、資訊處理裝置及主機裝置 - Google Patents
控制程式、主機裝置之控制方法、資訊處理裝置及主機裝置 Download PDFInfo
- Publication number
- TW201401047A TW201401047A TW102106465A TW102106465A TW201401047A TW 201401047 A TW201401047 A TW 201401047A TW 102106465 A TW102106465 A TW 102106465A TW 102106465 A TW102106465 A TW 102106465A TW 201401047 A TW201401047 A TW 201401047A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- memory
- logical address
- function
- lba
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1456—Hardware arrangements for backup
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2206/00—Indexing scheme related to dedicated interfaces for computers
- G06F2206/10—Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
- G06F2206/1014—One time programmable [OTP] memory, e.g. PROM, WORM
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
Abstract
根據本實施形態,於來自備份來源之記憶部之讀出資料與第1函數所表示之資料不同之情形時,對備份目的地之記憶部寫入上述讀出資料。於上述讀出資料與上述第1函數所表示之資料相同之情形時,不對備份的地之記憶部寫入上述讀出資料,而發出刪除通知。
Description
本實施形態係關於一般用於將第1記憶體之資料備份至非揮發性之第2記憶體之控制程式、主機裝置之控制方法、資訊處理裝置及主機裝置。
本申請案係基於且主張2012年6月19日申請的日本專利申請案第2011-137765號及2013年2月5日申請的日本專利申請案第2013-020765號之優先權的權利;該等日本專利申請案之全部內容以引用之方式併入本文中。
在操作系統(OS)上刪除非揮發性記憶裝置(例如硬碟、固態驅動器(SSD))上之檔案資料之情形時,因僅刪除OS上之資料之管理資訊,故非揮發性記憶裝置實際上並未刪除資料。因每在OS上刪除資料時即進行非揮發性記憶裝置上之刪除處理,故就未執行刪除處理之方面而言,可提高動作性能。該方式特別對讀寫較緩慢之硬碟驅動器有效。
另一方面,該方式中,由於應已在OS上刪除之資料被在非揮發性記憶裝置中當做有效之資料(主機無效-裝置有效資料),故非揮發性記憶裝置中不存在資料之區域少於OS所辨識之空白區域。特別地,對邏輯位址與非揮發性記憶裝置之實體位址未必為一一對應之SSD而言,非揮發性記憶裝置中之空白區域之耗盡有成為問題之情形。
問題所在:
‧在SSD之空白區域耗盡即認為SSD控制器不具有有效資料之NAND快閃記憶體之實體區塊(空閒區塊)耗盡之情形時,若對該SSD進行資料寫入,則藉由檢索認為SSD控制器具有有效資料之NAND快閃記憶體之實體區塊(現用區塊)上之無效資料區域而整理有效資料(NAND整理),進行確保新的空閒區塊之處理時會產生負荷,導致寫入性能顯著劣化。
‧若在無效資料增多而SSD上之空白區域耗盡之狀況下進行寫入,則寫入會集中於特定之區域,或因頻繁產生之NAND整理而導致額外地刪除區塊,從而有SSD之可靠性顯著劣化等之情形。
如以上般之問題於在主機上進行資料刪除之情形時,藉由自主機對SSD發出資料刪除通知可予以避免。該資料刪除通知例如係INCITS ATA/ATAPI Command Set-2(ACS-2)所記述之data set management command(俗稱Trim指令),或NVM Express Revision 1.1所記述之11h Dataset Management command之Deallocate(AD)。該方式中,在主機上刪除資料之情形時,藉由主機將刪除後之資料所存在之邏輯位址空間通知至SSD,其後即使在SSD上仍將該區域當做空白區域。藉此,Trim指令實現將主機無效-裝置有效資料轉換為主機無效-裝置無效資料,由此SSD可重新確保空白區域。
於處理刪除通知之情形時,SSD對資料管理區域進行讀寫而使該區域無效化之處理。無效化處理中,若改寫SSD之管理資訊而使該區域被當做無效即可,實際上,亦可刪除或不刪除該區域之資料本身。
再者,作為參考文獻而揭示有以下之資料。以下,在引用該文獻時僅稱作「參考文獻」。
[參考文獻]ATA/ATAPI Command Set -2(ACS -2) d 2015r6 Feb. 22.2011(http://www.t13.org/)98頁至99頁、第50頁:Data Set
Management Command(Trim指令)130頁至171頁:Ech IDENTIFY DEVICE指令342頁至365頁:SCT Command Transport 217頁:25h READ DMA EXT指令218頁:60h READ FPDMA QUEUED指令322頁:35h WRITE DMA EXT指令324頁:61h WRITE FPDMA QUEUED指令。
本發明之實施形態提供可高速化資料之備份,增加備份目的地之記憶體之空閒區塊數目,降低備份目的地之記憶體之寫入量之控制程式、主機裝置之控制方法、資訊處理裝置及主機裝置。
根據實施形態,第1記憶部具有至少可進行讀入與寫入中之讀入之第1記憶體。第2記憶部具有:非揮發性之第2記憶體,其可進行讀入及寫入;管理表,其關聯邏輯位址與實體位址;及控制部,其以使由接收到之刪除通知指定之邏輯位址成為無效之方式改寫上述管理表,且於接收到之讀出命令中所含之邏輯位址為無效之情形時,將第1函數所表示之資料發送至主機裝置。控制程式被載入第1及第2記憶部可連接之主機裝置。控制程式具備第1至第4控制部。第1控制部自與第1記憶部之第1邏輯位址對應之區域讀出資料。第2控制部判斷與上述第1邏輯位址區域對應之讀出資料是否與上述第1函數所表示之資料相同。第3控制部於上述讀出資料與上述第1函數所表示之資料不同之情形時,對上述第2記憶體之第2邏輯位址區域寫入上述讀出資料。第4控制部於上述讀出資料與上述第1函數所表示之資料相同之情形時,不對上述第2記憶體寫入上述讀出資料,而發出用於使上述第2記憶體之上述第2邏輯位址區域之資料成為無效之刪除通知。
根據實施形態之控制程式、主機裝置之控制方法、資訊處理裝
置及主機裝置,可高速化資料之備份,增加備份目的地之記憶體之空閒區塊數目,從而降低備份目的地之記憶體之寫入量。
1‧‧‧電腦系統
2A‧‧‧非揮發性記憶裝置
2B‧‧‧非揮發性記憶裝置
2C‧‧‧記憶部
3‧‧‧主機
4‧‧‧CPU
5‧‧‧北橋晶片
6‧‧‧主記憶體
6A‧‧‧記憶區域
6B‧‧‧控制工具
6C‧‧‧OS檔案管理表
6D‧‧‧應用程式
6E‧‧‧應用資料
7‧‧‧南橋晶片
8‧‧‧顯示控制器
9‧‧‧顯示器
10‧‧‧光學驅動器
11‧‧‧BISO-ROM
12‧‧‧LAN控制器
13‧‧‧USB控制器
14‧‧‧鍵盤
15‧‧‧滑鼠
16A‧‧‧NAND快閃記憶體
16B‧‧‧NAND型快閃記憶體
19A‧‧‧記憶體介面
19B‧‧‧I/F
20‧‧‧非揮發性記憶裝置(SSD、HDD等)
20B‧‧‧控制工具
22B‧‧‧區域
23B‧‧‧區域
23‧‧‧DVD-ROM或CD-ROM
24‧‧‧USB記憶體
24B‧‧‧區域
30‧‧‧母板
31‧‧‧電腦主體
32‧‧‧電源裝置
33‧‧‧觸控墊
34‧‧‧電腦主體
35‧‧‧顯示器單元
36‧‧‧電源開關
40B‧‧‧RAM(DRAM等)
41B‧‧‧SSDC
42B‧‧‧介面控制器(IFC)
43B‧‧‧匯流排
44B‧‧‧快取記憶體(CM)
45B‧‧‧管理資訊
100‧‧‧操作系統
200‧‧‧控制工具/控制程序/控制部
300‧‧‧OS檔案管理表/元資料
400‧‧‧應用程式
500‧‧‧應用資料
7000‧‧‧備份伺服器
7001‧‧‧網路
7002‧‧‧儲存網路
7003‧‧‧資料庫伺服器
7004‧‧‧用戶端
7004A‧‧‧用戶端
7005‧‧‧網路開關
7006a‧‧‧通道延伸器
7006b‧‧‧通道延伸器
7007‧‧‧遠距離網路
7008‧‧‧元資料伺服器
7010‧‧‧終端用戶
D001‧‧‧使用者資料
圖1係表示第1實施形態之電腦系統之功能構成例的方塊圖。
圖2係表示SSD之內部構成例的功能區塊圖。
圖3係表示SSD之管理資訊的圖。
圖4係表示SSD之寫入之動作例的流程圖。
圖5係表示SSD之NAND記憶體之整理之動作例的流程圖。
圖6係表示SSD接收刪除通知時之動作例的流程圖。
圖7係表示SSD之讀出之動作例的流程圖。
圖8係表示將控制工具保存於SSD之情形時之電腦系統之功能構成例的流程圖。
圖9係表示將控制工具保存於其他外部記憶裝置之情形時之電腦系統之功能構成例的方塊圖。
圖10係表示自WEB安裝控制工具之情形時之電腦系統之功能構成例的方塊圖。
圖11係表示自光學驅動器安裝控制工具之情形時之電腦系統之功能構成例的方塊圖。
圖12係表示自USB記憶體安裝控制工具之情形時之電腦系統之功能構成例的方塊圖。
圖13係表示主機之階層式之功能構成例的方塊圖。
圖14係表示電腦系統之外觀構成的圖。
圖15係表示電腦系統之另一外觀構成的圖。
圖16係表示電腦系統之外觀構成的圖。
圖17係表示電腦系統之另一外觀構成的圖。
圖18係表示以控制程式進行之備份之第1實施形態之動作順序的
流程圖。
圖19係表示以控制程式進行之備份之第2實施形態之動作順序的流程圖。
圖20係表示LBA與資料之關係之一例的圖。
圖21係表示圖20之資料之情形時之0-fill區之存在概率分佈之一例的圖。
圖22係表示LBA與資料之關係之另一例的圖。
圖23係表示圖22之資料之情形時之0-fill區及1-fill區之存在概率分佈之一例的圖。
圖24係表示LBA與資料之關係之另一例的圖。
圖25係表示圖24之資料之情形時之0-fill區、320a-fill區及1-fill區之存在概率分佈之一例的圖。
圖26係表示LBA與資料之關係之另一例的圖。
圖27係表示圖26之資料之情形時所釋放之區的圖。
圖28係用於說明函數f(LBA)之決定方法的圖。
圖29係表示以控制程式進行之備份之第4實施形態之動作順序的流程圖。
圖30係表示以控制程式進行之備份之第4實施形態之另一動作順序的流程圖。
圖31係概念性地表示將網路儲存驅動器或雲儲存作為備份目的地之非揮發性記憶裝置之情形時的圖。
圖32係表示第6實施形態之電腦系統之功能構成例的方塊圖。
圖33係表示主機之階層式之功能構成例的圖。
圖34係表示以控制程式進行之備份之第6實施形態之動作順序的流程圖。
圖35係表示OS檔案管理表的圖。
圖36係表示主機之階層式之功能構成上之資料寫入之流程的圖。
圖37係表示主機之階層式之功能構成上之資料寫入之另一流程的圖。
圖38係表示網路所使用之第7實施形態之電腦系統之一例的方塊圖。
圖39係表示網路所使用之第7實施形態之電腦系統之另一例的方塊圖。
圖40係表示網路所使用之第7實施形態之電腦系統之另一例的方塊圖。
圖41係表示網路所使用之第7實施形態之電腦系統之另一例的方塊圖。
圖42係表示網路所使用之第7實施形態之電腦系統之另一例的方塊圖。
圖43係表示網路所使用之第8實施形態之電腦系統之另一例的方塊圖。
圖44係表示網路所使用之第8實施形態之電腦系統之另一例的方塊圖。
圖45係表示網路所使用之第8實施形態之電腦系統之另一例的方塊圖。
圖46係表示第9實施形態中所使用元資料之一例的圖。
圖47係表示以控制程式進行之備份之第9實施形態之動作順序的流程圖。
圖48係表示檔案ID清單之資料結構的圖。
圖49係表示第10實施形態之系統構成的圖。
本實施形態中,藉由在備份動作中使用Trim指令,將主機有效-裝置有效資料當做主機有效-裝置無效資料處理,藉此,可高速化SSD之資料之備份,增加備份目的地之SSD之空閒區塊數目,從而降低備份目的地之SSD之寫入量。
首先,對本說明書中所使用之用語進行說明。
‧主機無效-裝置有效資料(「host-invalid and device-valid data」):對主機(OS)而言無效但對裝置(非揮發性記憶裝置)有效之資料
‧主機有效-裝置有效資料(「host-valid and device-valid data」):對主機對非揮發性記憶裝置皆有效之資料
‧主機有效-裝置無效資料(「host-valid and device-invalid data」):對主機而言有效但對非揮發性記憶裝置無效之資料
‧主機無效-裝置無效資料(「host-invalid and device-invalid data」):對主機、對非揮發性記憶裝置而言皆無效之資料
‧主機有效資料(「host-valid data」):至少對主機而言有效之資料
‧主機無效資料(「host-invalid data」):至少對主機而言無效之資料
‧裝置有效資料(「device-valid data」):至少對非揮發性記憶裝置而言有效之資料
‧裝置無效資料(「device-invalid data」):至少對非揮發性記憶裝置而言無效之資料
以下,參照隨附圖式,詳細說明實施形態之控制程式、主機裝置之控制方法、資訊處理裝置及主機裝置。再者,並非由該等實施形態限定本發明。
圖1表示資訊處理裝置之一例即電腦系統1之第1實施形態之構
成。本電腦系統1包括記憶裝置2A、主機裝置3、連接非揮發性記憶裝置2A與主機裝置3之記憶體介面19A、及記憶裝置2A之備份用之非揮發性記憶裝置2B可予以安裝之記憶體介面19B。本實施形態中,雖記憶裝置2A為非揮發性記憶裝置2A,且將SSD(Solid State Drive:固態驅動器)用作非揮發性記憶裝置2A、2B,但,其亦可為例如硬碟驅動器、混合式碟驅動器、SD卡、USB記憶體、NAND型快閃記憶體、ReRAM(Resistance Random Access Memory:電阻隨機存取記憶體)、磁帶等其他非揮發性記憶裝置。且,雖非揮發性記憶裝置2A與非揮發性記憶裝置2B可為不同種類之非揮發性記憶裝置,但期望非揮發性記憶裝置2B之可讀寫之邏輯位址即LBA(Logical Block Addressing:邏輯區域位址)之最大值(LBA Count)與非揮發性記憶裝置2A之LBA Count相等,或大於非揮發性記憶裝置2A之LBA Count。且,作為記憶裝置2A,不僅可使用非揮發性記憶裝置,且亦可使用揮發性記憶裝置即DRAM(Dynamic Random Access Memory:動態隨機存取記憶體)或SRAM(Static Random Access Memory:靜態隨機存取記憶體)。且,記憶裝置2A亦可為僅可進行寫入與讀出中之讀出之記憶裝置。
又,本實施形態中,雖將SATA(Serial Advanced Technology Attachment:串列進階技術附著構件)介面用作介面19A、19B,但其亦可為USB(Universal Serial Bus:通用序列匯流排)、SAS(Serial Attached SCSI:串行SCSI)、Thunderbolt(註冊商標),PCI Express、LAN(Local Area Network:局部區域網路)、光纖通道或乙太網路等其他介面。介面19A及介面19B亦可為不同類型之介面。例如,亦可為介面19A為SATA介面而介面19B為USB介面。
又,備份目的地之非揮發性記憶裝置2B亦可藉由經由如網路驅動器或雲儲存般之網路安裝於主機裝置3,設置於實體上與裝置3相隔之位置。本實施形態中,作為一例,揭示將SATA介面用作介面19B之
情形之例。
CPU(控制電路)4係主機裝置3之中央運算處理裝置;主機裝置3之各種運算及控制由CPU4進行。CPU4經由南橋晶片7而進行非揮發性記憶裝置2A、2B或DVD-ROM等光學驅動器10之控制。CPU4經由北橋晶片5而進行主記憶體6之控制。作為主記憶體6,例如亦可採用DRAM。
使用者藉由鍵盤14或滑鼠15等輸入裝置進行主機裝置3之控制;來自鍵盤14或滑鼠15之信號經由USB(Universal Serial Bus:通用序列匯流排)控制器13及南橋晶片7而由CPU4予以處理。CPU4經由北橋晶片5及顯示控制器8而對顯示器(顯示裝置)9發送圖像資料或正文資料等。使用者可經由顯示器9看到來自主機裝置3之圖像資料或正文資料等。
CPU4係為了控制電腦系統1之動作而設計之處理器,執行自非揮發性記憶裝置2A載入至主記憶體6之操作系統(OS)100。進而,光學驅動器10可對裝入之光碟進行讀出處理及寫入處理中之至少一種處理之情形時,CPU4執行該等處理。且,CPU4亦執行存儲於BIOS(Basic Input/Output System:基本輸入輸出系統)-ROM11之系統BIOS。再者,系統BIOS係用於控制電腦系統1內之硬體之程式。ROM11中取代系統BIOS而存儲有UEFI(Unified Extensible Firmware Interface:統一可擴展固件介面)韌體,亦可由CPU4予以執行。另外,CUP4經由南橋晶片7而控制LAN(Local Area Network:局部區域網路)控制器12。
北橋晶片5係連接於CPU4之局域匯流排之橋裝置。北橋晶片5中亦內設有讀寫控制主記憶體6之記憶體控制器。且,北橋晶片5亦具有與顯示控制器8進行通訊等功能。
主記憶體6暫時記憶程式或資料,作為CPU4之作業用記憶體而發揮作用。作為主記憶體6,例如使用DRAM(Dynamic Random Access
Memory:動態隨機存取記憶)或MRAM(Magnetoresistive Random Access Memory:磁阻隨機存取記憶體)、ReRAM(Resistance Random Access Memory:電阻隨機存取記憶體),或SRAM(Static Random Access Memory:靜態隨機存取記憶體)。主記憶體6包含存儲OS100之記憶區域6A與存儲控制工具(控制程式)200之記憶區域6B。眾所周知,OS100係管理主機裝置3之輸入輸出裝置,管理磁碟或記憶體,進行用於使軟體可利用主機裝置3之硬體之控制等管理主機裝置3全體之程式。控制程式200係具有自非揮發性記憶裝置2A對於非揮發性記憶裝置2B之資料備份功能之程式。本實施形態中,雖對OS100與控制程式200予以區分,但控制程式200亦可為OS100之一部分。
顯示控制器8係控制電腦系統1之顯示器9的視訊再生控制器。南橋晶片7係連接於CPU4之局域匯流排之橋裝置。南橋晶片7經由SATA介面19A控制存儲有各種軟體及資料之記憶裝置即非揮發性記憶裝置2A。非揮發性記憶裝置2A亦可不經由南橋晶片7而直接連接於CPU4。
電腦系統1中,以LBA之最小單位即邏輯位址單位對非揮發性記憶裝置2A及非揮發性記憶裝置2B進行讀寫。例如,經由SATA介面19A、19B,將寫入指令(寫入要求)、讀入指令(讀入要求)及快閃指令等輸出至非揮發性記憶裝置2A、非揮發性記憶裝置2B。
又,南橋晶片7亦可具有用於讀寫控制BIOS-ROM11、光學驅動器10、LAN控制器12、USB控制器13之功能。USB控制器13上連接有鍵盤14及滑鼠15。
圖2表示備份目的地即非揮發性記憶裝置2B的方塊圖。本實施形態中,對將固態驅動器(SSD)用作非揮發性記憶裝置2B之例進行說明。雖備份來源即非揮發性記憶裝置2A亦為與其相同構成,但因備
份來源即非揮發性記憶裝置2A自身並未發送Trim指令,故即使非揮發性記憶裝置2A不支持Trim指令等而不滿足此處所示之要件,仍可在本發明予以適用。本實施形態中,非揮發性記憶裝置2B具備作為非揮發性半導體記憶體之NAND型快閃記憶體(以下,略寫為NAND記憶體)16B、經由SATA介面19B與主機裝置3進行信號之收發之介面控制器(IFC)42B、包含NAND記憶體16B之實體位址與LBA之邏輯轉換表之管理資訊42B及作為IFC42B與NAND記憶體16B之中間緩衝器而發揮作用之快取記憶體(CM)44B之作為半導體記憶體之RAM(Random Access Memory:隨機存取記憶體)40B;執行NAND記憶體16B及RAM40B之管理、控制及IFC42B之控制之SSD控制器(SSDC)41B;及連接該等構成要素之匯流排43B。
作為RAM40B,可採用DRAM(Dynamic Random Access Memory:動態隨機存取記憶)、SRAM(Static Random Access Memory:靜態隨機存取記憶體)、FeRAM(Ferroelectric Random Access Memory:鐵電隨機存取記憶體)、MRAM(Magnetoresistive Random Access Memory:磁阻隨機存取記憶體)、PRAM(Phase Change Random Access Memory:相變隨機存取記憶體)、及ReRAM(Resistance Random Access Memory:電阻隨機存取記憶體)等。RAM40B亦可包含於SSDC41B。
NAND記憶體16B記憶由主機裝置3所指定之使用者資料,或為備份用而記憶管理資訊42B。NAND記憶體16B具有複數個記憶體單元呈矩陣狀排列之記憶體單元陣列,各記憶體單元可使用上一頁及下一頁而執行多值記憶。NAND記憶體16B由複數個記憶體晶片構成,各記憶體晶片以排列複數個資料刪除單位即區塊而構成。且,NAND記憶體16B中,每頁地進行資料之寫入及資料之讀出。區塊由複數頁構成。
RAM40B具有作為主機裝置3與NAND記憶體16間之資料傳送用快取而發揮功能之快取記憶體(CM)44B。且,RAM40作為管理資訊42B之記憶用記憶體及其他作業區域用記憶體而發揮作用。管理資訊42B係在啟動非揮發性記憶裝置2B時等展開記憶於NAND記憶體16B之區域45B之各種管理表者;其定期或在斷開電源時保存於NAND記憶體16B之區域45B。
如圖3所示,管理表42B包含空閒區塊表、作用區塊表及作用頁表。實體區塊ID及實體頁位址包含於實體位址。作用區塊表進行結合實體區塊ID與邏輯位址(LBA)之管理;登錄於作用區塊表中之實體區塊(作用區塊)保存至少對SSDC41B而言有效之資料。空閒區塊表管理未與LBA結合之實體區塊。因登錄於空閒區塊表中之實體區塊(空閒區塊)未與LBA結合,故無法保存有效之資料。
主動頁表進行結合實體頁位址與LBA之管理;登錄於主動頁表之實體頁(主動頁)保存至少對SSDC41B而言有效之資料。且,登錄於作用頁表中之實體頁與其所屬之實體區塊ID(實體區塊位址)相關聯。再者,期望由管理表所管理之LBA為由非揮發性記憶裝置2B所管理之最小資料尺寸或大於其之資料尺寸之位址。為縮小管理表42B之資料尺寸,亦可將以特定位元右移位運算LBA後之位址用作作用區塊表或作用頁表所保存之邏輯位址。
非揮發性記憶裝置2B之控制器即SSDC41B藉由執行記憶於NAND記憶體16B之系統程式(韌體)之處理器與各種硬體電路等實現其功能;其執行對於來自主機裝置3之寫入要求、快存要求、讀入要求等各種指令之主機裝置3-NAND記憶體16B間之資料傳送控制,記憶於RAM40B及NAND記憶體16B之各種管理表之更新及管理,寫入至NAND記憶體16B之資料之ECC編碼,及自NAND記憶體16B讀出之資料之ECC解碼等。
主機裝置3對非揮發性記憶裝置2B發出讀入要求或寫入要求時,經由ATA介面19B輸入作為邏輯位址之LBA。且,主機裝置3對非揮發性記憶裝置2B發出讀入要求或寫入要求時,與LBA一起輸入成為讀入要求或寫入要求之對象之扇區尺寸。
IFC42B具有如下功能:接收來自主機裝置3之讀入要求、寫入要求、其他要求及資料,並將所接收之要求或資料發送至SSDC41B,或藉由SSDC41B之控制而對RAM40B發送資料。
圖4係表示備份目的地即非揮發性記憶裝置2B之寫入動作的流程圖。非揮發性記憶裝置2B自主機裝置3接收寫入命令(步驟S100)。寫入命令中包含寫入指令、LBA及資料。
接著,SSDC41B自DRAM40B讀出空閒區塊表(步驟S110),並自空閒區塊表取得實體區塊ID。於不存在空閒區塊之情形時,進行下述之NAND整理,取得實體區塊ID(步驟S120、S130)。
接著,SSDC41B對與已取得之實體區塊ID對應之空閒區塊進行程式處理(寫入處理)(步驟S140)。接著,SSDC41B自空閒區塊表刪除經程式化之實體區塊ID(步驟S150)。接著,SSDC41B更新空閒區塊表及作用頁表(步驟S160)。即,對作用區塊表追加與經程式化之區塊對應之LBA及實體區塊ID,進而,對作用頁表追加LBA、實體區塊ID及實體頁位址。再者,亦可在進行步驟S140之程式處理之前對寫入對象之實體區塊進行刪除。
接著,對非揮發性記憶裝置2B之NAND整理處理(garbage collection、GC)進行說明。圖5係表示非揮發性記憶裝置2B之NAND整理處理的流程圖。實體區塊所包含之全部頁面中登錄至作用頁表之作用頁面(有效頁面)與LBA對應。另一方面,實體區塊所包含之全部
頁面未必皆為有效頁面,非有效頁面之頁面(無效頁面)並不與LBA對應。實體區塊係僅無效頁面之資料存在空白,藉由區分該等無效頁面與有效頁面,可確保空閒區塊。
首先,SSDC41B設定行序號i=0、空白區域累積量s=0(步驟S200)。接著,SSDC41B自DRAM40B讀出作用區塊表之開頭行,取得實體區塊ID(步驟S210)。將步驟S210中所取得之實體區塊ID稱作目前實體區塊ID。接著,SSDC41B自DRAM40B讀出作用頁表,取得目前實體區塊ID包含之所有實體頁位址(步驟S220)。
接著,SSDC41B計算目前實體區塊中之無效頁面之尺寸,將該無效頁面尺寸代入變量v(步驟S230)。接著,SSDC41B判斷是否為v>0(步驟S235),並於v>0之情形時,將目前實體區塊ID追加至整理對象區塊清單(步驟S240)。另一方面,步驟S235中,判定不存在無效頁面之情形時(步驟S235:否),SSDC41B遞增目前實體區塊ID,將作業對象轉移至下一實體區塊ID(步驟S245)。
接著,SSDC41B對空白區域累積量s加上變量v(步驟S250)。接著,SSDC41B判斷空白區域累積量s是否達到實體區塊尺寸,即目前所取得之無效頁面之總尺寸是否達到實體區塊尺寸(步驟S255)。空白區域累積量s未達到實體區塊尺寸之情形時,在對行序號i加上1後(步驟S245),反覆進行步驟S210以後之處理。
另一方面,空白區域累積量s達到實體區塊尺寸之情形時,SSDC41B自整理對象區塊清單之所有實體區塊讀出全部作用頁面之資料,將該讀出之資料存儲於DRAM40B(步驟S260)。接著,SSDC41B對整理對象區塊清單之所有實體區塊進行刪除處理(步驟S265)。接著,SSDC41B更新作用區塊表、空閒區塊表、及作用頁表(步驟S270)。即,自作用區塊表刪除進行刪除處理後之實體區塊並將其追加至空閒區塊表,且,自作用頁表刪除資料被讀出之作用頁面。
接著,SSDC41B將存儲於DRAM40B之所有作用頁面之資料寫入至空閒區塊(步驟S280)。接著,SSDC41B更新作用區塊表、空閒區塊表、及作用頁表(步驟S290)。即,自空閒區塊表刪除經程式化之實體區塊並將其追加至作用區塊表,且,將經程式化之實體頁面追加至作用頁表。
如此,因NAND整理多數伴隨有NAND記憶體16B之讀出動作、刪除動作及程式動作,故需要大量的時間。因此,若在空閒區塊耗盡之狀況下對非揮發性記憶裝置2B進行寫入,則因產生NAND整理,而有可能使主機裝置3之寫入處理速度下降,並導致NAND記憶體16B之可靠性降低。再者,步驟S265之刪除處理亦可不在圖4之步驟S130之NAND整理中進行,而係在步驟S140之寫入動作之前進行。
接著,對非揮發性記憶裝置2B之刪除通知處理進行說明。作為用於刪除通知之指令,例如,可舉出INCITS ATA/ATAPI Command Set-2(ACS-2)所揭示之Data Set Management Command(俗稱Trim(TRIM)指令)。刪除通知處理為以下一種方法:在OS100上刪除資料之情形時,藉由將與LBA及邏輯扇區數目有關之資料(LBA Range Entry:LBA值域條目)通知至非揮發性記憶裝置,其後在非揮發性記憶裝置2B上可自LBA將邏輯扇區數目之LBA區域當做空白區域。藉由刪除通知,而非揮發性記憶裝置2B可重新確保空閒區塊。再者,Trim指令之功能不僅由Data Set Management Command實現,且可由例如使用ACS2所揭示之SCT指令之供應商獨立之指令等其他指令實現。且,將SATA介面以外之介面用作介面19B之情形時,亦可將該介面固有之刪除通知處理用指令用作Trim指令。且,作為Trim指令,亦可利用NVM Express Revision 1.1 October 11,2012(http://www.nvmexpress.org/)所揭示之11h Dataset Management command之
Deallocate(AD)。例如,於非揮發性記憶裝置2B具有下述之Deterministic Zeroing TRIM功能之情形時,Trim指令之功能不僅由上述指令實現,且由NVM Express Revision 1.1所揭示之08h Write Zeroes指令實現。且,作為Trim指令,亦可使用SCSI Block Commands-3(SBC-3),Revision 35,Dec.07.2012(http:www.t10.org/)所揭示之42h UNMAP Command。再者,本實施形態中,不僅在刪除資料之情形時而且在備份及複製資料之情形時使用Trim指令。
圖6係表示非揮發性記憶裝置2B之刪除通知處理的流程圖。非揮發性記憶裝置2B自主機裝置3接收刪除通知(步驟S300)。刪除通知包含刪除指令、LBA及扇區尺寸。接著,SSDC41B自DRAM40B讀出作用頁表(步驟S310)。接著,SSDC41B自作用頁表刪除與成為由刪除通知所指定之刪除對象之LBA區域對應之所有頁面中頁面內之所有區域為刪除通知對象之整個頁面(步驟S320)。藉此,刪除通知對象之頁面自裝置有效資料成為裝置無效資料。
接著,SSDC41B自DRAM40B讀出作用區塊表(步驟S330)。接著,SSDC41B參考作用區塊表,自作用區塊表刪除作用頁表中不存在實體區域ID之實體區塊並將其追加至空閒區塊表(步驟S340)。
如此,非揮發性記憶裝置2B藉由將與刪除通知處理對象之LBA對應之NAND區域上之資料自裝置有效資料變更為裝置無效資料,利用NAND整理以外之方法,即使使用刪除通知處理,仍可確保空閒區塊。再者,主機裝置3發出刪除通知之資料尺寸亦可為非揮發性記憶裝置2B以管理表所管理之最小資料尺寸以上。
如上所述,接收刪除通知後之非揮發性記憶裝置可重新確保空閒區塊。如此,由刪除通知指定之裝置有效資料成為裝置無效資料。因自主機裝置3針對SSD之刪除通知命令僅伴隨有管理資訊之改寫,故較伴隨管理資訊之改寫及對NAND記憶體寫入使用者資料之自主機
裝置3針對SSD之寫入命令可實現高速處理。
接著,對備份目的地即非揮發性記憶裝置2B之讀出動作進行說明。圖7係表示非揮發性記憶裝置2B之讀出動作的流程圖。有備份備份來源之非揮發性記憶裝置2A之資料後主機裝置3自備份目的地即非揮發性記憶裝置2B讀出備份資料之情形。於該情形時,非揮發性記憶裝置2B自主機裝置3接收讀出命令(步驟S400)。讀出命令包含讀出指令及LBA。
接著,SSDC41B自DRAM40B讀出作用區塊表(步驟S410)。接著,SSDC41B參考與自主機裝置3接收之LBA對應之實體區塊ID(步驟S420)。作用區塊表中存在實體區塊ID之情形時,SSDC41B於其後進行已寫入區域讀出處理。即,SSDC41B讀出作用頁表(步驟S430),參考該作用頁表而讀出NAND記憶體16B之該頁面(步驟S440)。又,SSDC41B將讀出之資料發送至主機裝置3(步驟S450)。
另一方面,作用區塊表中不存在與自主機3接收到之LBA對應之實體區塊ID之情形時,SSDC41B於其後進行未寫入區域讀出處理。即,SSDC41B不進行NAND記憶體16B之讀出處理,而係將函數f所表示之資料發送至與來自主機裝置3之要求對應之資料長度主機裝置3(步驟S460)。具體而言,若設位址為Ai、資料為Di,則函數f所表示之資料滿足:f(Ai)=Di(i為0以上之整數)函數f可自由設定,作為其一例,例如以LBA為變量,設定f(LBA)=0之情形時,SSDC41B將與來自主機裝置3之要求對應之資料長度之以「0」填盡之資料發送至主機裝置3。函數f可存儲於SSDC41B,亦可存儲於NAND記憶體16B內,亦可存儲於RAM40B內。自高速進行未
寫入區域讀出之角度而言,期望函數f存儲於SSDC41B或RAM40B內;或於切斷非揮發性記憶裝置2B之電源時事先存儲於NAND記憶體16B,而在啟動非揮發性記憶裝置2B時讀出至RAM40B。
未寫入區域讀出之動作並未伴隨NAND記憶體16B之讀出處理,或NAND記憶體16B之讀出量大幅降低。因此,相較於伴隨作用頁表之讀出處理及NAND記憶體16B之讀出處理之先前的寫入區域讀出動作,未寫區域讀出動作較為高速進行。
如此,於利用主機裝置3對備份目的地即非揮發性記憶裝置2B之包含裝置無效資料之LBA區域進行讀出時,亦可不執行非揮發性記憶裝置2B之NAND記憶體16B之讀出動作;裝置無效資料之讀出動作與裝置有效資料之讀出動作相比較為高速進行。雖讀出包含裝置無效資料之LBA區域時自非揮發性記憶裝置2B讀出至主機裝置3之資料可為任意資料,但本實施形態中,其必須為至少對各LBA為確定之(deterministic)資料。且,自更正確地確定所要備份之資料之角度而言,期望非揮發性記憶裝置2B於啟動或連接於主機裝置3時,將非揮發性記憶裝置2B之裝置無效資料之值為確定之情形通知至主機裝置3。例如,如參考文獻ACS-2所揭示般,藉由IDENTIFY DEVICE data word 169之bit14為1,非揮發性記憶裝置2B可將裝置無效資料之值為確定之情形提前通知至主機裝置3。本發明中,以函數f(LBA)表示至少對各LBA確定之(確定之)資料資料=f(LBA)。
特別地,f(LBA)=0時,期望IDENTIFY DEVICE data word 169之bit5為1,藉此,非揮發性記憶裝置2B可將裝置無效資料之讀出值為固定值0之情形(非揮發性記憶裝置2B具有Deterministic Zeroing TRIM功能之情形)提前通知至主機裝置3。f(LBA)=0之情形時,特別地邏輯扇區尺寸為512位元組之情形時,函數f成為如f(LBA)=00000...0般以0
填盡之(0-fill)512位元組長度之資料。
接著,對在主機裝置3上進行動作之控制程式(控制工具)200之存儲方法進行說明。例如,如圖8所示,控制工具200於主機裝置3被切斷電源時存儲於備份來源即非揮發性記憶裝置2A之NAND記憶體16A,而於啟動主機3或程式時自NAND記憶體16A載入於主記憶體6上之區域6B。另一方面,於主機裝置3連接有有別於非揮發性記憶裝置2A及非揮發性記憶裝置2B之非揮發性記憶裝置20之情形時,如圖9所示,控制工具200亦可存儲於非揮發性記憶裝置20之區域20B,並於啟動主機3或程式時自區域20B載入至區域6B。特別地,如將非揮發性記憶裝置20用作存儲OS之系統驅動器,將非揮發性記憶裝置2A用作存儲文件、靜態資料或動態資料等使用者資料之資料驅動器之情形時,系統驅動器20用作主要存儲OS或應用程式之驅動器,資料驅動器2A用作存儲使用者資料之驅動器般,自明確劃分驅動器2A與驅動器20之功能之角度而言,期望將控制程式存儲於作為系統驅動器之非揮發性記憶裝置20。或者,若將USB記憶體用作存儲控制工具200之驅動器20,則在日常使用中,亦可事先自主機裝置3拔出USB記憶體,僅於備份非揮發性記憶裝置2A時等之使用控制程式200時,將USB記憶體連接於主機裝置3。且,亦可將控制程式預先存儲於備份目的地即非揮發性記憶裝置2B。
自節省使用者進行控制程式備份之精力之角度而言,例如,如圖8或圖9所示,期望於將控制程式存儲於非揮發性記憶裝置2A或非揮發性記憶裝置20之狀態(預先安裝狀態)下銷售電腦程式1,擺放於店鋪而傳遞至使用者手中。另一方面,自使用者可選擇是否安裝控制程式及可對使用者提供最新之控制程式之角度而言,期望控制程式200藉由來自WEB之下載,或來自DVD-ROM或USB記憶體等外部記
憶媒體之安裝而存儲於非揮發性記憶裝置2A或非揮發性記憶裝置20。
圖10係來自WEB之下載之一例。控制程式200存儲於WEB伺服器21內之記憶媒體22之區域22B;控制程式200經由網際網路、局域網路或無線LAN等之網路,經由例如連接於LAN控制器12或USB控制器12之網路機械下載(或安裝)至NAND記憶體16B。圖9之情形係控制工具200被下載或安裝至非揮發性記憶裝置20上之區域20B。
圖11係來自DVD-ROM或CD-ROM等光學媒體之安裝之一例。控制工具200存儲於DVD-ROM或CD-ROM等光學媒體23之區域23B,藉由將光學媒體23安裝於光學驅動器10,控制工具200經由光學驅動器10而安裝至非揮發性記憶裝置2A之NAND記憶體16A上。圖12係來自USB記憶體24之安裝之一例。控制工具200存儲於USB記憶體24之區域24B,藉由USB記憶體24連接於USB控制器13,控制工具200經由USB控制器13而安裝至非揮發性記憶裝置2A之NAND記憶體16A上。亦可代替USB記憶體24而使用SD卡等其他外部記憶體。自便於使用者獲取之角度而言,期望在出售SSD2時將光學媒體23或USB記憶體24作為附屬品附贈於SSD2中而銷售。另一方面,光學媒體23或USB記憶體24亦可作為軟體商品而單獨銷售,亦可作為雜誌或書籍之目錄而附屬之。
圖13表示電腦系統1之軟體等級之階層結構。通常,將控制程式200等載入於主記憶體6上之各種軟體並非直接與非揮發性記憶裝置2A及非揮發性記憶裝置2B進行通訊,而係經由已載入於主記憶體6之OS100與非揮發性記憶裝置2A及非揮發性記憶裝置2B進行通訊。各種軟體需對非揮發性記憶裝置2A發送讀入要求、寫入要求等命令之情形時,各種軟體對OS100發出以檔案為單位之讀寫請求。OS100參考內包於OS100之檔案管理表,特定與存在讀寫要求之檔案對應之非揮
發性記憶裝置2A、非揮發性記憶裝置2B之邏輯位址(LBA),轉換為該介面固有之命令而發送至非揮發性記憶裝置2A、非揮發性記憶裝置2B。
自非揮發性記憶裝置2A返回應答之情形時,OS100特定該應答為對於何種軟體之應答,對特定之軟體返回應答。再者,控制程式200亦可構成為不使用OS100之檔案管理表而經由OS100直接讀寫非揮發性記憶裝置2A、非揮發性記憶裝置2B之LBA;亦可構成為在不經由OS100而直接讀寫非揮發性記憶裝置2A或非揮發性記憶裝置2B之LBA。
接著,對電腦系統1之構成例進行說明。電腦系統1可實現為例如台式電腦或筆記本型之電腦。圖14係作為電腦系統1之台式電腦的概略圖。
台式電腦具備電腦主體31、顯示器9、鍵盤14、及滑鼠15等。電腦主體31具備搭載有主要之硬體之母板30、非揮發性記憶裝置2A、及電源裝置32等。非揮發性記憶裝置2A經由SATA電纜而實體連接於母板30,經由安裝於母板30上之南橋晶片7,電性連接於安裝於同一母板30上之CPU4。電源裝置32產生台式電腦使用之各種電源,經由電源電纜對母板30或非揮發性記憶裝置2A等供給電源。
圖15係作為電腦系統1之便攜式電腦的概略圖。便攜式電腦包括電腦主體34、顯示器單元35等。顯示器單元35例如組裝有由LCD(Liquid Crystal Display:液晶顯示器)構成之顯示裝置9。顯示器單元35以相對電腦主體34而自由轉動於露出該主體34之上表面之敞開位置與遮蓋主體34之上表面之閉塞位置之間之方式安裝。主體34具有薄型之箱狀框體,其上表面配置有電源開關36、鍵盤14、及觸控墊33等。且,主體34亦與台式電腦同樣地具備非揮發性記憶裝置2A、母
板及電源裝置等。
作為適用本實施形態之資訊處理機械,除電腦系統1外,亦可為靜態相機或視頻攝像相機等攝像裝置等,亦可為平板電腦、智慧型手機、博弈機或汽車導航系統等。
本實施形態中,將非揮發性記憶裝置2B用作非揮發性記憶裝置2A之備份用記憶裝置。自電腦系統1之輕質化、節約電力化及節省空間化之角度而言,期望在非揮發性記憶裝置2A之可靠性尚未劣化之情形時,非揮發性記憶裝置2B並不連接於主機裝置3;於該情形時,非揮發性記憶裝置2A之可靠性劣化之情形時,經由顯示器9自控制程式將「請連接備份用記憶裝置」之訊息顯示給使用者,由使用者將備份用非揮發性記憶裝置2B連接於主機裝置3。例如,電腦系統為台式電腦之情形時,非揮發性記憶裝置2B例如亦可如圖14所示般地經由SATA電纜或USB電纜而連接於母板30。非揮發性記憶裝置2B亦可存儲於電腦主體31之內部。且,電腦系統1為便攜式電腦之情形時,非揮發性記憶裝置2B例如亦可如圖15所示般地經由SATA電纜或USB電纜而連接於電腦主體34。於該情形時,自易於裝卸之角度而言,介面19B較佳為eSATA介面。非揮發性記憶裝置2B亦可存儲於電腦主體34之內部。安裝非揮發性記憶裝置2B後,控制程式200自非揮發性記憶裝置2A對非揮發性記憶裝置2B進行使用者資料之備份。
結束以控制程式200進行之資料備份之情形時,自電腦系統1之節約電力化、輕質化及節省空間化之角度而言,如圖16、圖17所示,期望自電腦系統1取下非揮發性記憶裝置2A,而將非揮發性記憶裝置2B安裝於非揮發性記憶裝置2A之安裝位置,以非揮發性記憶裝置2B置換非揮發性記憶裝置2A。
圖18表示以控制程式200進行之備份動作的動作流程。控制程式
200係具有自非揮發性記憶裝置2A針對非揮發性記憶裝置2B之資料備份功能的程式。控制程式200之備份功能亦可由使用者以手動之方式藉由鍵盤14或滑鼠15而啟動,亦可藉由CPU4而自動啟動。圖18所示之流程中,將備份對象之LBA區域劃分為長度為L之小區域,對各個小區域進行備份動作之次常式。參考小區域時需使用LBA之指標即cLBA,藉由使cLBA自0以L程度遞增,備份整個LBA區域之資料。小區域之長度L為1以上之整數。
若啟動備份功能,則控制程式200將資料複製對象LBA之指標即cLBA設置為0(步驟S500)。控制程式200將自LBA=cLBA讀出相當於邏輯扇區數=L之資料之命令發送至非揮發性記憶裝置2A(步驟S510)。作為讀出命令,期望使用例如參考文獻ACS-2所記述之60h READ FPDMA QUEUED指令或25h READ DMA EXT指令等。已接收讀出命令之非揮發性記憶裝置2A將該LBA區域之讀出資料(D)發送至主機裝置3,主機裝置3接收資料D(步驟S520)。控制程式200將資料D與函數f(cLBA)進行比較(步驟S530),根據資料D與函數f(cLBA)為不相等之情形(步驟S530:否)或相等之情形(步驟S530:是),劃分為不同之步驟。
資料D與函數f(cLBA)不相等之情形時(步驟S530:否),控制程式200對非揮發性記憶裝置2B發送自LBA=cLBA對相當於邏輯扇區數=L之LBA區域寫入資料D之命令,控制程式200對非揮發性記憶裝置2B發送資料D,非揮發性記憶裝置2B之記憶體控制器即SSDC41B將資料D寫入至NAND記憶體16B(步驟S540)。作為寫入命令,使用例如參考文獻ACS-2所揭示之61h WRITE FPDMA QUEUED指令或35h WRITE DMA EXT指令等。
D與函數f(cLBA)相等之情形時(步驟S530:是),控制程式200對於非揮發性記憶裝置2B自LBA=cLBA對相當於邏輯扇區數=L之LBA區
域發出刪除通知。非揮發性記憶裝置2B之SSDC41B改寫管理資訊42B,將與該LBA區域對應之資料轉換為裝置無效資料(步驟S550)。作為刪除通知命令,使用例如參考文獻ACS-2所揭示之06h DATA SET MANAGEMENT指令、SCT指令,或NVM Express Revision1.1所揭示之11h Dataset Management command之Deal locate(AD)等。
若結束步驟S540或步驟S550,則控制程式200僅以L遞增cLBA(步驟S560),對整個小區域執行步驟S500至步驟S550之次常式。cLBA超過非揮發性記憶裝置2B可讀寫之最大LBA時,結束整個LBA區域之讀出(步驟S570:是),結束備份處理。
再者,將步驟S540中已寫入至非揮發性記憶裝置2B之資料確實地存儲至NAND型快閃記憶體,或將在步驟S550中進行刪除通知處理後之最新之管理資訊42B確實地存儲於NAND型快閃記憶體;自防止非揮發性記憶裝置2B因意外之電源斷開而造成資料損失之觀點而言,期望在結束備份時藉由控制程式200對非揮發性記憶裝置2B發出例如參考文獻ACS-2所揭示之E0h Standby Immediate指令或E6h SLEEP指令等待機狀態睡眠狀態轉換指令,使非揮發性記憶裝置2B處於可切斷電源之狀態;藉由對非揮發性記憶裝置2B發出例如參考文獻ACS-2所揭示之E7h FLUSHI CACHE指令或EAh FLUSH CACHE指令等快存指令,將非揮發性記憶裝置2B之RAM40B之管理資訊42B或CM44B之資料保存於NAND型快閃記憶體16B。
結束以控制程式200進行之資料備份之情形時,為節省電腦系統1之電力,將Information technology ATA/ATAPI Command Set-3(ACS-3)所揭示之E0h Standby Immediate指令或E6h SLEEP指令等發送至非揮發性記憶裝置2A,切斷供給非揮發性記憶裝置2A之電源,使非揮發性記憶裝置2A轉換為Serial ATA Revision 3.1所揭示之Partial狀態或Slumber狀態,或激活「Serial ATA Technical Proposal:
SAT31_TPR_C108 Title:Device Sleep」所揭示之DEVSLP信號而使非揮發性記憶裝置2A轉換為DevSleep狀態;或使非揮發性記憶裝置2A轉換為PCI Express Base Specification Revision 3.0所揭示之D1狀態、D2狀態或D3狀態;或使其轉換為PCI Express Base Specification Revision 3.0所揭示之L1狀態、L2狀態或L3狀態。
如上所述,對於非揮發性記憶裝置2B之刪除通知處理較對於非揮發性記憶裝置2B之寫入處理可更高速地進行。且,雖對於非揮發性記憶裝置2B之寫入處理會消耗NAND記憶體區塊,但因對於非揮發性記憶裝置2B之刪除通知處理幾乎未消耗NAND記憶體區塊,故可抑制非揮發性記憶裝置2B之動作速度之下降。且,雖對於非揮發性記憶裝置2B之寫入處理會導致出現NAND記憶體區塊之刪除而使NAND記憶體之可靠性劣化,但因對於非揮發性記憶裝置2B之刪除通知處理幾乎未產生NAND記憶體區塊之刪除處理,故可減少NAND記憶體之可靠性之劣化。
比較例之備份方式中,因已對備份目的地對象之LBA區域進行步驟S550之寫入動作,故出現低速情形,存在非揮發性記憶裝置2B之動作速度下降,NAND記憶體16B之可靠性劣化之問題點。另一方面,若利用本實施形態之控制工具200進行備份,則非揮發性記憶裝置2A之資料中函數f(LBA)所表示之資料故意存在之情形時,因不僅對如此之資料執行步驟S540而且執行步驟S550,故交比較例之備份方式可高速進行備份,可抑制非揮發性記憶裝置2B之動作速度之下降,由此可抑制NAND記憶體16B之可靠性之劣化。本實施形態中,雖將SSD用作非揮發性記憶裝置2B,但亦可將硬碟驅動器(HDD)等其他非揮發性記憶裝置用作非揮發性記憶裝置2B。例如,將HDD用作非揮發性記憶裝置2B之情形時,藉由利用步驟S550而減少對非揮發性記憶裝置2B之寫入量,可減輕非揮發性記憶裝置2B之可靠性之劣
化,藉由減少自主機裝置3傳送至非揮發性記憶裝置2B之資料量,可高速進行備份動作。
本實施形態中,雖已對備份非揮發性記憶裝置2A之整個LBA之情形予以說明,但備份對象LBA區域亦可限定於整個LAB區域中之一部分區域而進行。
又,本實施形態中,雖對備份來源非揮發性記憶裝置2A與備份目的地非揮發性記憶裝置2B使用不同之SSD,但備份來源非揮發性記憶裝置2A與備份目的地非揮發性記憶裝置2B亦可為同一SSD(2A=2B)。即,亦可將SSD劃分為2個分區即分區A(開頭LBA=0)與分區B(開頭LBA=X),由控制程式200自分區A對分區B進行備份動作。於該情形時,例如,亦可設備份來源LBA與備份目的地LBA之對應關係為cLBA(備份來源LBA)→X+cLBA(備份目的地LBA)之關係而進行備份。
第1實施形態中,雖已對以作為備份單位之每等邏輯扇區長度L進行劃分後之小區域執行之情形予以敍述,但也可對長度可變之小區域予以執行。例如,亦可將OS100上所管理之檔案單位用作小區域。圖19係表示第2實施形態之控制工具200之動作例的流程圖。
控制程式200取得保存於備份來源非揮發性記憶裝置2A內之NAND記憶體16A之OS檔案管理表(元資料),將非揮發性記憶裝置2A內之所有檔案資訊作為備份對象清單而保存於主記憶體6(步驟S600)。備份對象清單無需為非揮發性記憶裝置2A之所有檔案,而係亦可為一部分檔案之清單。控制程式200基於備份對象清單內之資訊,對於備份對象清單內之各檔案,取得保存有該檔案之資料之LBA(設=cLBA)(步驟S605),自備份來源非揮發性記憶裝置2A讀出該LBA之資料(步驟S610)。作為讀出命令,使用例如參考文獻ACS-2所
揭示之60h READ FPDMA QUEUED指令或25h READ DMA EXT指令等。
為判定步驟S610中所讀出之資料,期望以邏輯扇區單位分解所讀出之資料(步驟S620)。控制程式200選擇分解後之一個資料D(步驟S630),判斷劃分資料D是否與f(cLBA)相等(步驟S640)。對於劃分資料D與函數f(cLBA)不一致之資料,使用例如參考文獻ACS-2所揭示之61h WRITE FPDMA QUEUED指令或35h WRITE DMA EXT指令等,對備份目的地非揮發性記憶裝置2B寫入資料(步驟S645)。對於劃分資料D與函數f(LBA)一致之資料,則不對備份目的地非揮發性記憶裝置2B發送資料寫入命令,而係對非揮發性記憶裝置2B之該LBA發送刪除通知命令(步驟S650)。作為刪除通知命令,使用例如參考文獻ACS-2所揭示之06h DATA SET MANAGEMENT指令、SCT指令或NVM Express Revision 1.1所揭示之11h Dataset Management command之Deallocate(AD)等。控制程式200對所有劃分資料反覆進行步驟S630至S650之處理。
控制程式200對備份目的地非揮發性記憶裝置2B之OS檔案管理表(元資料)寫入選擇檔案之資訊。藉此,備份後之檔案可由OS辨識。控制程式200判斷是否已讀出所有檔案(步驟680),於尚未讀出所有檔案之情形時選擇下一檔案,取得選擇檔案之LBA資訊(步驟S690),使順序進展至步驟S610。已讀出所有檔案之情形時則就此結束處理。本實施形態中,雖已對備份非揮發性記憶裝置2A之所有檔案之情形予以敍述,但也可將備份對象檔案限定於所有檔案中之一部分之檔案而進行。
如此,第2實施形態中,以檔案為單位進行備份來源之資料讀出、寫入。藉此,可省略對不存在檔案之LBA之讀出、寫入、刪除通知,從而可更高速進行備份動作。
第1及第2實施形態中,利用控制程式200內之函數f(LBA)進行備份處理,進行備份後之資料讀出時,備份目的地即非揮發性記憶裝置2B之SSDC41B利用NAND快閃記憶體16B內之函數f(LBA),將裝置無效資料(device-invalid data)還原為函數f(LBA)而發送至主機裝置3。
第3實施形態中,對在設計控制程式200時、進行製品設計時或出場前、出場後之決定函數f(LBA)之方法進行說明。特別地,期望在決定安裝於SSD之OS或系統構成時,對於該等系統,在設計控制程式200、進行產品設計或出場前設定最恰當之函數f(LBA)。函數f(LBA),例如作為結合LBA與資料之表格資料,或將函數f(LBA)以運算之方式執行之軟體資料或韌體資料,存儲於記憶裝置2B之SSD41B、NAND記憶體16B、RAM40B、或主機裝置3之主記憶體6。或者,函數f(LBA),亦可搭載於將函數f(LBA)作為演算法而執行之作為電子電路之記憶裝置2B之SSD41B。例如,將函數f(LBA)存儲於記憶裝置2B之NAND記憶體16B與主機裝置3之主記憶體6之控制程式200內之情形時,控制程式200內之函數f(LBA)與NAND記憶體16B內之函數f(LBA)需相同。例如,亦可以同一函數f(LBA)設計控制程式200與非揮發性記憶裝置2B,亦可控制程式200自非揮發性記憶裝置2B取得函數f(LBA),以控制程式200所取得之函數f(LBA)覆蓋控制程式200內之函數f(LBA);亦可由非揮發性記憶裝置2B自控制程式200取得函數f(LBA),以非揮發性記憶裝置2B所取得之函數f(LBA)覆蓋NAND型快閃記憶體16B內之函數f(LBA)。
圖20係表示邏輯位址及資料之一例的圖。SSD邏輯位址區域藉由邏輯位址(LBA)而由主機3辨識。邏輯位址係以1個扇區為最小管理單位,且1個扇區例如為512位元組。如圖20所示,對各扇區劃分有邏輯位址(0000h、0001h、0002h、...、ba02h、...)。再者,數字末尾之h係
表示該數字為16進制的標示。
圖20中,假設(模擬)使用者所欲備份之典型之資料之模型而如下地決定函數f(LBA)。作為事前驗證,非揮發性記憶裝置2B之設計者將成為重現典型之使用者所欲使用之環境之模型之資料圖案寫入至SSD之狀態下讀出所有邏輯位址,與0-fill扇區進行比較,藉此可導入如圖21所示般之0-fill扇區之存在概率分佈。且,進行比較時,若利用所有邏輯位址區域之總體積劃分0-fill扇區,則可導入正確之0-fill扇區之比例。藉由設函數f(LBA)=000...0h(固定值;0為512位元組之循環),於進行備份時最多釋放與成為0-fill扇區之總扇區數目相同之區塊,可節約空閒區塊。於該情形時,函數f(LBA)中,例如,作為512位元組之資料000...0h,或作為結合所有LBA與512位元組之資料000...0h之表格資料,或以作為對所有LBA生成512位元組之資料000...0h之運算法之方式而執行之軟體資料或韌體資料,存儲於記憶裝置2B之SSD41B、NAND記憶體16B、RAM40B或主機裝置3之主記憶體6。
圖22係函數f(LBA)無法成為一定之固定值之例。有如於某邏輯位址區域頻繁出現某資料圖案,某邏輯位址區域頻繁出現其他資料圖案般,因邏輯位址區域而頻繁出現之循環圖案不同之情形。如圖22所示,認為如下情形:邏輯位址區域之前半部分存在大量0-fill扇區,而邏輯位址之後半部分存在大量1-fill資料(以「1」填盡所有位元之資料,若以16進制表示則為以fh填盡之資料)。0-fill扇區之存在概率分佈及1-fill扇區之存在概率分佈係如圖23所示。於該情形時,較設函數f(LBA)=000...0h(固定值)或函數f(LBA)=fff...fh(固定值),期望如設「函數f(LBA)=000...0h(LBA≦c000h),f(LBA)=fff...fh(LBA>c000h)」般,函數f(LBA)在兩個邏輯位址區域為不同之值之一方在進行備份後可確保之空閒區塊數目增加。於該情形時,函數f(LBA),例
如,作為對於LBA=c000h以下之範圍之LBA對應512位元組之資料000...0,對於LBA=c001h以上之範圍之LBA對應512位元組之資料fff...fh之表格資料,或對於LBA=c000h以下之範圍之LBA生成512位元組之資料000...0h,對於LBA=c001h以上之範圍之LBA生成512位元組之資料fff...fh之運算法之方式而執行之軟體資料或韌體資料,存儲於記憶裝置2B之SSDC41B、NAND記憶體16B、RAM40B或主機裝置3之主記憶體6中。
圖24係3個邏輯位址區域所頻繁出現之資料為不同之情形。0-fill扇區之存在概率分佈、320a-fill扇區(以320a資料填盡之為1個扇區長度的資料)之存在概率分佈、及1-fill扇區之存在概率分佈係如圖25所示。於該情形時,期望如「函數f(LBA)=000...0h(LBA≦7fffh)而函數f(LBA)=320a320a...320ah(8000h≦LBA≦c000h),函數f(LBA)=fff...fh(LBA≧c001h)」般,函數f(LBA)在三個邏輯位址區域為不同之值之一方在進行備份後可確保之空閒區塊數目增加。於該情形時,函數f(LBA),例如,作為對於LBA≦7fffh之範圍之LBA對應512位元組之資料000...0h、對於8000h≦LBA≦c000h之範圍之LBA對應512位元組之資料320a320a...320ah、對於LBA≧c001h之範圍之LBA對應512位元組之資料fff...fh之表格資料,存儲於記憶裝置2B之SSDC41B、NAND記憶體16B、RAM40B或主機裝置3之主記憶體6中。或者,函數f(LBA),例如,作為對於LBA≦7fffh之範圍之LBA生成512位元組之資料000...0h、對於8000h≦LBA≦c000h之範圍之LBA生成512位元組之資料320a320a...320ah、對於LBA≧c001h之範圍之LBA生成512位元組之資料fff...fh之演算法之方式而執行之軟體資料或韌體資料,存儲於記憶裝置2B之SSDC41B、NAND記憶體16B、RAM40B或主機裝置3之主記憶體6中。
又,亦可使用以每L尺寸地劃分邏輯位址區域後之管理單位。尺
寸L為LBA之最小單位以上。雖函數f(LBA)在管理單位之內部為一定值,但在不同之管理單位之間函數f(LBA)亦可不同。成為如開頭之管理單位中函數f(LBA)=D0(固定值)、下一管理單位中函數f(LBA)=D1(固定值)、...般之情形。該情形時之函數f(LBA)表示如下。
「f(LBA)=D0(0≦LBA≦L-1,f(LBA)=D1(L≦LBA≦2L-1),f(LBA)=D1(2L≦LBA≦3L-1),...Dk(kL≦LBA≦(k+1)L-1),...」
Dk(k=0、1、...)係尺寸為L之任意圖案資料。於該情形時,函數f(LBA),例如,作為對於kL≦LBA≦(k+1)L-1之範圍之LBA(k=0、1、...),對應512位元組之資料Dk之表格資料,存儲於記憶裝置2B之SSDC41B、NAND記憶體16B、RAM40B或主機裝置3之主記憶體6中。或者,函數f(LBA),例如,作為對於kL≦LBA≦(k+1)L-1之範圍之LBA(k=0、1、...),生成512位元組之資料Dk之運算法之方式而執行之軟體資料或韌體資料,存儲於記憶裝置2B之SSDC41B、NAND記憶體16B、RAM40B或主機裝置3之主記憶體6中。
Dk(k=0、1、...)之選擇方法存在任意性,藉由選擇最恰當之Dk而決定最恰當之函數f(LBA)。對於Dk之各種候補,非揮發性記憶裝置2B及控制程式200之設計者事先基於終端用戶欲備份之典型之資料之模型,利用以下方法進行點數賦予。
(1)讀出每各種扇區之資料(或,亦可以每扇區之整數倍地讀出資料,亦可以每管理單位地讀出資料)。
(2)判斷(1)中所讀出之資料是否與函數f(LBA)相等(每扇區之整數倍地讀出資料之情形時,判斷其中之所有扇區是否與函數f(LBA)相等)。
(3)相等之情形時賦予1點,不相等之情形時則賦予0點。
(4)對SSD之所有邏輯位址區域進行點數賦予,計算總點數(亦可作為代表而僅對一部分區域進行點數賦予)。
而且,成為最高點數之Dk為最恰當者,利用該Dk決定最恰當之函數f(LBA)。例如,若設L=128MiB(MiB=1,048,576位元組),則自開端以每128MiB均等地劃分SSD之所有邏輯位址區域,讀出各個區塊,判斷區塊內之所有資料是否與函數f(LBA)相等,並於相等之情形時加上1點,計算總點數。例如,對如(D0,D1,...)=(0000...h,0000...h,...),(ffff...h,ffff...h,...),(ffff...h,0000...h,...),(0000...h,ffff...h,...)般之複數個候補進行該點數計算,將點數最高之候補選作最恰當之(D0,D1,...)而決定函數f(LBA)。期望將作為函數f(LBA)之資訊之最佳化後之資料行Dk(k=0、1、...)事先存儲於SSDC41B、RAM40B或NAND記憶體16B。亦可不將最佳化後之資料行Dk(k=0、1、...)保存於控制程式200,而係由控制程式200自非揮發性記憶裝置2B取得。可使用例如參考文獻ACS-2所揭示之ECh IDENTIFY DEVICE指令;可使用例如將IDENTIFY DEVICE資料之中劃分成Vendor Specific之Word 129以後之資料區域劃分作資料行Dk(k=0、1、...)取得用區域。
亦可將以可變長度劃分邏輯位址區域後之區塊用作管理單位。該情形時之函數f(LBA)係表示如下。
「f(LBA)=D0(0≦LBA≦L1-1,f(LBA)=D1(L≦LBA≦L2-1),f(LBA)=D2(L2≦LBA≦L3-1,...),Dk(Lk≦LBA≦L(k+1)-1),...」
Dk(k=0、1、...)係尺寸為L之任意圖案資料。「L0<L1<L2<...<Lk<...」。於該情形時,函數f(LBA),例如,作為對於Lk≦LBA≦L(k+1)-1之範圍之LBA(k=0、1、...),對應512位元組之資料Dk之表格資料,存儲於記憶裝置2B之SSDC41B、NAND記憶體16B、RAM40B或主機裝置3之主記憶體6中。或者,函數f(LBA),例如,作為對於Lk≦LBA≦L(k+1)-1之範圍之LBA(k=0、1、...),生成512位元組之資料Dk之運算法之方式而執行之軟體資料或韌體資料而
存儲於記憶裝置2B之SSDC41B、NAND記憶體16B、RAM40B或主機裝置3之主記憶體6中。
圖26之情形為,因以同一資料填盡之扇區較少,故即使適用將固定長度或可變長度劃分邏輯位址後之區塊用作管理單位之方法亦無法獲得充分之效果,其為資料與LBA存在一定關係之情形。於如此之情形時,較佳為使用更普通之決定函數f(LBA)之方法。例如,準備複數個函數f(LBA)之候補,在終端用戶欲備份之典型之資料之模型中,對各個函數f(LBA)進行上述之點數賦予,將得點最高之函數f(LBA)作為最恰當之函數f(LBA)。如圖27所示,於該情形時,釋放資料與LBA存在一定關係之扇區。
又,例如,對於兩種參數a、b,亦可定義「函數f(LBA)=A×LBA+b」,將變更參數a、b後者用作函數f(LBA)之候補。而且,在終端用戶欲備份之典型之資料之模型中,求得得點最高之(a、b),使用得點最高之(a、b)決定函數f(LBA)。圖28係說明函數f(LBA)之決定方法的圖。圖28中,圖示有參數b為b1、b2、b3之情形。若變更參數a,則(a,b)=(a0,b2)之得點最高。因此,計算出「函數f(LBA)=a0×LBA+b2」。於該情形時,函數f(LBA)例如作為將函數f(LBA)以運算法之方式而執行之軟體資料或韌體資料而存儲於記憶裝置2B之SSDC41B、NAND記憶體16B、RAM40B或主機裝置3之主記憶體6。
LBA在ATA規格中為一般48位元之LBA之情形時,藉由設LBA=(d0,d1,d2,...,d47)t之行數之48之矢量(t為轉換記號)、A為512×48之行列、b為行數4096(1扇區=512位元組=4096位元)之矢量,以「函數f(LBA)=A×LBA+b」之方式,以行數4096之矢量形式取得函數f(LBA)。於該情形時,存在矢量f(LBA)之第1行為第1位元之資料、第2行為第2位元之資料之對應關係。進而,一般而言,若以n位元表述
LBA時,則藉由設LBA=(d0,d1,d2,...,dn-1)t之行數n之矢量、A為n×m之行列、b為行數m之矢量,以「函數f(LBA)=A×LBA+b」之方式,以行數m之矢量形式取得函數f(LBA)。於該情形時,函數f(LBA)例如作為行列A或矢量b之排列資料,或將函數f(LBA)作為演算法之方式而執行之軟體資料或韌體資料而存儲於記憶裝置2B之SSDC41B、NAND記憶體16B、RAM40B或主機裝置3之主記憶體6。
本實施形態中,雖已對函數f(LBA)在以LBA為變量而僅依存於LBA之情形或為不依存於LBA之固定值之情形予以說明,但亦可依存於LBA以外之變量。例如,作為函數f,亦可使用以LBA與記憶裝置2B所設定之參數X為自變量之2變量函數f(LBA,X),亦可使用LBA與主機裝置3所設定之參數Y為自變量之2變量函數f(LBA,Y)。
於函數f(LBA)=固定值(=Q)之情形時,亦可僅將資料Q保存於備份目的地非揮發性記憶裝置2B之NAND記憶體16B、SSDC41B或RAM40B,而未將其保存於控制程式200。第4實施形態中,圖18之步驟S530或圖19之步驟S640中,於將資料與f(LBA)=Q進行比較時,控制程式200利用自非揮發性記憶裝置2B取得之固定值進行比較。作為自非揮發性記憶裝置2B取得固定值之方法,可使用例如參考文獻ACS-2所揭示之ECh IDENTIFY DEVICE指令。例如,可將ECh IDENTIFY DEVICE指令之資料中劃分為Vendor Specific之Word 129劃分至資料Q。於該情形時,因Word129之資料(=R)為1字=2位元之資料長度、Q為512位元組之資料長度,故控制程式200作為Q=RRRR...R(並列排列R256個者)
而生成Q。作為函數f(LBA)之資料R例如存儲於記憶裝置2B之SSDC41B、NAND記憶體16B或RAM40B,於控制程式200自記憶裝置2B接收資料R後存儲於主機裝置3之主記憶體6。
圖29係第4實施形態之動作例的流程圖。控制程式200對非揮發性記憶裝置2B發出作為函數f(LBA)取得指令之例如ECh IDENTIFY DEVICE指令,自非揮發性記憶裝置2B之NAND快閃記憶體16B取得Word129之資料(步驟S700)。而且,控制程式200並列結合取得之資料R而生成資料Q(步驟S710)。
控制程式200將資料複製對象LBA之點即cLBA設置為0(步驟S720)。控制程式200將自LBA=cLBA讀出相當於邏輯扇區數=L之資料之命令發送至非揮發性記憶裝置2A(步驟S730)。接收讀出命令之非揮發性記憶裝置2A將該LBA區域之讀出資料D發送至主機裝置3,主機裝置3接收資料D(步驟S740)。控制程式200將資料D與固定值Q進行比較(步驟S750),於資料D與固定值Q不相等之情形時(步驟S750:否)或相等之情形時(步驟S750:是)分成不同之步驟。
於D與Q不相等之情形時(步驟S750:否),控制程式200對非揮發性裝置2B發出自LBA=cLBA對相當於邏輯扇區數=L之LBA區域寫入資料D之命令,控制程式200對非揮發性記憶裝置2B發送資料D,非揮發性記憶裝置2B之記憶體控制器即SSDC41B將資料D寫入至NAND記憶體16B(步驟S760)。
於D與Q相等之情形時(步驟S750:是),控制程式200對非揮發性記憶裝置2B自LBA=cLBA對相當於邏輯扇區數=L之LBA區域發送刪除通知,SSDC41B改寫管理資訊42B,將與該LBA區域對應之資料轉換為裝置無效資料(步驟S770)。
若結束步驟S760或步驟S770,則控制程式200將cLBA遞增僅L(步驟S780),在讀出非揮發性記憶裝置2A之所有LBA區域之資料之前(步驟S790:是),反覆執行步驟S730至步驟S780之處理。
圖30係表示第4實施形態之另一動作例的流程圖。圖30之動作例中,每各LBA地對備份目的地非揮發性記憶裝置2B發出例如Identify
Device指令而生成資料Q。
控制程式200將資料複製對象LBA之點即cLBA設置為0(步驟S800)。控制程式200對非揮發性記憶裝置2B發出作為函數f(LBA)取得指令之例如ECh IDENTIFY DEVICE指令,自非揮發性記憶裝置2B之NAND記憶體16B取得Word129之資料R(步驟S810)。而且,控制程式200並列結合取得之資料R而製作資料Q(步驟S820)。
控制程式200將自LBA=cLBA讀出相當於邏輯扇區數=L之資料之命令發送至非揮發性記憶裝置2A(步驟S830)。接收到讀出命令之非揮發性記憶裝置2A將該LBA區域之讀出資料D發送至主機裝置3,主機裝置3接收資料D(步驟S840)。控制程式200將資料D與固定值Q進行比較(步驟S850),於資料D與固定值Q不相等之情形時(步驟S850:否)或相等之情形時(步驟S850:是)分成不同之步驟。
於D與Q不相等之情形時(步驟S850:否),控制程式200對非揮發性裝置2B發出自LBA=cLBA對相當於邏輯扇區數=L之LBA區域寫入資料D之命令,控制程式200對非揮發性記憶裝置2B發送資料D,非揮發性記憶裝置2B之記憶體控制器即SSDC41B將資料D寫入至NAND記憶體16B(步驟S860)。
於D與Q相等之情形時(步驟S850:是),控制程式200對非揮發性記憶裝置2B自LBA=cLBA對相當於邏輯扇區數=L之LBA區域發送刪除通知,SSDC41B改寫管理資訊42B,將與該LBA區域對應之資料轉換為裝置無效資料(步驟S870)。
若結束步驟S760或步驟S770,則控制程式200僅以L遞增cLBA(步驟S880),在讀出非揮發性記憶裝置2A之所有LBA區域之資料之前(步驟S790:是),反覆執行步驟S810至步驟S880之處理。
再者,取得資料R時,若將非揮發性記憶裝置2B與控制程式200設計成發出包含LBA之函數f(LBA)取得指令,非揮發性記憶裝置2B對
該指令返回R=f(LBA),則即使在f(LBA)不是固定值而為函數之情形時,仍可適用本實施形態。例如,使用作為函數f(LBA)取得指令之ACS2所揭示之SCT指令,在SCT command transfer中,對記憶裝置2B發出B0h/D6h SMART WRITE LOG指令、3Fh WRITE LOG EXT指令或57h WRITE LOG DMA EXT指令之寫入資料內存儲LBA而傳送至記憶裝置2B,在SCT data transfer中,對記憶裝置2B發出B0h/D5h SMART READ LOG指令、2Fh READ LOG EXT指令、或47h READ LOG DMA EXT指令,自記憶裝置2B所接收之讀出資料取得R=f(LBA)。
如此,本實施形態中,可於備份目的地非揮發性記憶裝置2B側一次元管理函數f(LBA),因無需獨立保存於控制程式200,故可容易地管理或開發控制程式200。
如圖31所示,可將網路儲存驅動器或雲儲存用作備份目的地之非揮發性記憶裝置2B。例如,亦可經由網路或網際網路等網路而連接電腦系統1與雲儲存2B,藉由控制程式200經由網路對雲儲存2B發送刪除通知指令及寫入指令,進行本實施形態之備份處理。因較伴隨大量之資料傳送之寫入指令刪除通知指令之資料傳送量較少,故可高速進行備份動作,且可抑制寫入引起之雲儲存2B之可靠性之劣化。且,將SSD用作雲儲存2B之記憶媒體之情形時,可抑制雲儲存2B之空閒區塊數之減少。
第2實施形態中已對將記憶裝置2A用作備份來源記憶媒體之情形予以敍述,但,第6實施形態中,將資料之複製對象作為主記憶體6。即,該第6實施形態中,啟動應用程式而進行動作時,應用程式將暫時記憶於主記憶體6上之應用程式用資料複製保存至非揮發性記憶裝
置2B時,採用第2實施形態所說明之方法。再者,本實施形態中,無需記憶裝置2A。
作為主記憶體6,使用例如DRAM(Dynamic Random Access Memory:動態隨機存取記憶)或SRAM(Static Random Access Memory:靜態隨機存取記憶體)等揮發性記憶體,或MRAM(Magnetoresistive Random Access Memory:磁阻隨機存取記憶體)ReRAM(Resistance Random Access Memory:電阻隨機存取記憶體)等非揮發性記憶體。
圖32表示電腦系統1之第6實施形態之構成。本實施形態中,雖控制工具200包含於OS100,但OS100與控制工具200亦可存儲於主記憶體6之不同之區域。主記憶體6之區域6B中存儲有Microsoft Word(註冊商標)或Microsoft Power Point(註冊商標)等一般應用程式400。應用程式400為主機裝置3可執行之程式,例如於啟動主機裝置3時被自非非揮發性記憶讀出至主記憶體6。主機裝置3在CPU4之控制下執行應用程式400,藉由與硬體資源之協同作用而實現處理。應用程式400將主記憶體6上之區域6E用作作業區域,例如,藉助顯示器9與滑鼠5在應用程式400之GUI上按下保存按鈕,或激活應用程式400之自動保存功能,則如圖33所示,應用程式400以將區域6E之應用資料500保存於記憶裝置2B之方式對OS100發送命令,藉此,OS100將區域6E之資料備份複製於記憶裝置2B。
圖34係表示第6實施形態之控制工具200之動作例的流程圖。如圖35所示,控制工具200於啟動電腦系統1等時取得保存於備份目的地非揮發性記憶裝置2B內之NAND記憶體16B之OS檔案管理表(元資料)300b,將其作為OS檔案管理表300而保存於主記憶體6。若自應用程式400對OS100發出將區域6E之應用資料500保存於記憶裝置2B之命令(步驟S900),則控制工具200讀出存儲於主記憶體6內之區域6C之
OS檔案管理表300(步驟S910)。藉此,控制工具200(OS100)取得應讀出資料之主記憶體6之區域6E之位址與應保存之資料之LBA(步驟S920)。OS100自區域6E讀出應用資料500(步驟S930)。
為判斷讀出之應用資料500,期望以邏輯扇區為單位D分解所讀出之應用資料500(步驟S940)。控制工具200選擇分解後之1個資料D(步驟S950),判斷劃分資料D是否與函數f(cLBA)相等(步驟S960)。對於劃分資料D與函數f(cLBA)不一致之資料,使用例如參考文獻ACS-2所揭示之61h WRITE FPDMA QUEUED指令、35h WRITE DMA EXT指令,或NVM Express Revision 1.1所揭示之01h Write指令等等,如圖36所示,對記憶裝置2B寫入資料(步驟S980)。對於劃分資料D與函數f(cLBA)一致之資料,則不對記憶裝置2B發送資料寫入命令,如圖37所示,對記憶裝置2B之該LBA發送刪除通知命令(步驟S970)。作為刪除通知命令,使用例如參考文獻ACS-2所揭示之06h DATA SET MANAGEMENT指令、SCT指令或NVM Express Revision 1.1所揭示之11h Dataset Management command之Deallocate(AD)等。例如,非揮發性記憶裝置2B具有下述之Deterministic Zeroing TRIM功能之情形時,作為刪除通知命令,不僅使用上述指令,亦可使用NVM Express Revision 1.1所揭示之08h Write Zeroes指令。且,作為Trim指令,亦可使用SCSI Block Command-3(SBC-3),Revision 35,Dec.07.2012(http://www.t10.org/)所揭示之42h UNMAP command。
控制程式200對所有劃分資料反覆進行如此之處理(步驟S950至步驟S990)。控制程式200對主記憶體6之OS檔案管理表(元資料)300寫入寫入有應用資料500之LBA。且,將主記憶體6之OS檔案管理表300備份保存於非揮發性記憶裝置2B內之NAND記憶體16B,結束處理(步驟S995)。
如此,第6實施形態中,可利用刪除命令將主記憶體6之資料高
速複製保存至記憶裝置2B。
第7實施形態中,對將網路7002用作記憶裝置2A及記憶裝置2B之介面之情形進行說明。本實施形態中,圖38之電腦系統1以包含連接於記憶部2A及記憶部2B之網路7002而構成。
網路7002係用於儲存讀寫之儲存網路,例如,使用光纖通道(Fibre Channel)。特別地,作為儲存網路,例如使用SAN(Storage Area Network:儲存區域網路)或NAS(Network Attached Storage:網路附加儲存)。SAN例如使用FC-SAN(Fibre Channel Storage Area Network:光纖通道儲存區域網路)或IP-SAN(Internet Protocol Storage Area Network:網路儲存區域網路),作為其上層協定,例如使用SCSI(Small Computer System Interface:小型計算機系統介面)。本實施形態中,揭示將IP-SAN用作儲存網路7002之例,以ISCSI(Internet Small Computer System Interface:網路小型計算機介面)用作其上層協定者。儲存網路7002包含網路開關7005或匯流排(未圖示)。
網路7001係分別連接1至複數個伺服器、1至複數個用戶端的網路,例如,可使用LAN(Local Area Network:局部區域網路)或WAN(Wide Area Network:廣域網路)。例如,將乙太網路用作LAN。
用戶端7004係連接於網路7001而執行所需之處理的電腦。典型而言,用戶端7004具備處理器、主記憶體、通訊介面、局域輸入輸出裝置等硬體資源,且具備裝置驅動器或操作系統(OS)、應用程式等軟體資源(未圖示)。藉此,用戶端7004在處理器之控制下執行各種程式,藉由與硬體資源之協同作用而實現處理。例如,用戶端7004藉由在處理器之控制下執行業務應用程式,經由資料庫伺服器7003對記憶體2A進行I/O讀寫,實現所需之業務系統。
資料庫伺服器(DB伺服器)7003係連接於網路7001與儲存網路
7002且由資料庫管理系統(DBMC:Database management system)所運轉之伺服器;若接收來自用戶端7004之資料讀出要求,則自記憶部2A或記憶部2B讀出資料並對用戶端7004發送讀出資料;若其接收來自用戶端7004之資料寫入要求,則自用戶端7004接收寫入資料而對記憶部2A或記憶部2B寫入資料。資料庫伺服器7003記憶有用於管理記憶部2A或記憶部2B之記憶資料之管理資訊(元資料)。
記憶部2A亦可單獨提供對於DB伺服器7003之資料儲存服務,亦可作為由複數個儲存裝置虛擬構成之1個儲存裝置,提供對於DB伺服器7003之資料儲存服務。記憶部2A中形成有用於提供給DB伺服器7003之一個以上的邏輯裝置(LDEV)。邏輯裝置亦可在RAID之控制下相對將幾個硬碟驅動器虛擬地整合成一個裝置之假想裝置(VDEV)而形成。
邏輯裝置(LDEV)係DB伺服器7003可辨識之邏輯記憶裝置,劃分為邏輯單元(LU);DB伺服器7003將形成於實體裝置上之邏輯裝置當做邏輯單元。各邏輯單元賦予有邏輯單元編號(LUN)。且,邏輯單元劃分為邏輯扇區(邏輯區塊);各邏輯扇區劃分有LBA。DB伺服器7003藉由將包含邏輯單元編號及LBA之邏輯位址之指令發送至儲存裝置,可對於特定之邏輯單元之特定之邏輯扇區進行讀寫。如上所述,利用iSCSI之本實施形態中,DB伺服器7003、記憶部2A及記憶部2B分別作為經iSCSI名劃分後之iSCSI節點之啟動器及目標而發揮功能。因此,DB伺服器7003、記憶部2A及記憶部2B經由以IP位址及TCP埠編號之組合特定之網路,收發iSCSI PDU。因此,DB伺服器7003藉由指定iSCSI名、IP位址、及TCP埠編號,辨識網路7002上之記憶部2A及記憶部2B,對其邏輯單元內之邏輯進行讀寫。再者,用戶端7004亦可不經由DB伺服器7003而直接連接於儲存網路7002。
儲存網路7002連接有備份伺服器7000,控制工具200存儲於備份
伺服器7000內之主記憶體。再者,DB伺服器7003亦可具備備份伺服器7000之功能。且,控制工具200之功能亦可不作為備份伺服器7000之一部分即控制工具200而係如圖39所示,作為網路開關7005之一部分即控制部200而安裝;亦可如圖40所示,作為備份來源記憶裝置2A之一部分即控制部200而安裝。進而,亦可作為用戶端7004之一部分即控制部200而安裝。
再者,為容灾(disaster recovery)而將記憶部2A之資料備份於記憶部2B之情形時,期望使記憶部2A及記憶部2B之實體配置相距100公里以上之距離;於該情形時,如圖41所示,期望記憶部2A與記憶部2B經由通道延伸器(channel extender)7006a、7006b,經由WAN(Wide Area Network)或專用線般之遠距離網路7007而連接。
本實施形態中,雖已對備份來源記憶部2A與備份目的地記憶部部2B為不同之記憶裝置之情形進行說明,但即使為將同一記憶裝置內之不同記憶區域作為記憶部2A及記憶部2B之情形,仍可適用本發明。即,相對同一記憶裝置而形成2個以上之LDEV並對各者劃分LU之情形時,例如,設某LU為記憶部2A,另一LU為記憶部2B,將記憶部2A之資料複製於記憶部2B之情形,仍可適用本發明。自LU至LU之資料複製即使為複製LU內之所有LBA區域之情形,或複製LU之一部分LBA區域之情形,仍可適用本發明。
圖42表示本實施形態之控制工具200(控制部200)之備份動作。若開始備份動作,則備份伺服器7000內之控制程式200將資料複製對象LBA之點即cLBA作為資料複製開始LBA而例如設置為0(S1000)。控制程式200將自LBA=cLBA讀出邏輯扇區數=L之資料之命令發送至記憶部2A(步驟S1010)。作為來自記憶部2A之讀出命令,使用例如SCSI Block Commands-3(SBC-3),T10/BSR INCITS 514,Revision 35(http://www.t10.org/)所揭示之28h READ(10)指令、A8h READ(12)指
令、88h READ(16)指令或7Fh READ(32)指令等。接收讀出命令之記憶部2A將該LBA區域之讀出資料(D)經由儲存網路7002而發送至備份伺服器7000,備份伺服器7000接收資料D(步驟S1020)。
控制程式200將資料D與函數f(cLBA)進行比較(步驟S1030)。於資料D與f(LBA)函數不相等之情形時(步驟S1030:否),控制程式200將自LBA=cLBA寫入邏輯扇區數=L之資料之命令與資料D發送至記憶部2B(步驟S1040)。藉此,記憶部2B將資料D寫入至NAND記憶部16B。作為對記憶部2B之寫入命令,可使用例如上述之SBC-3所揭示之2Ah WRITE(10)指令、AAh WRITE(12)指令、8Ah WRITE(16)指令或7Fh WRITE(32)指令等。
於D與f(cLBA)相等之情形時(步驟S1030:是),控制程式200自LBA=cLBA將對於邏輯扇區數=L之LBA區域之刪除通知發送至記憶部2B(步驟S1050)。記憶部2B之SSDC41B改寫管理資訊42B,將與該LBA區域對應之資料變更為裝置無效資料。作為對記憶部2B之刪除通知命令,使用例如上述之SBC-3所揭示之42h UNMAP指令等。
若結束步驟S1040或步驟S1050,則控制程式200僅以L遞增cLBA(步驟S1060),對全部小區域執行步驟S1010至步驟S1050之次常式。cLBA超過記憶部2B之可讀寫最大LBA時所有LBA區域之讀出結束(步驟S1070:是),備份處理結束。
作為進行備份之範圍,可備份記憶部2A全體,亦可備份記憶部2A之一部分。於備份記憶部2A之一部分之情形時,例如,對於記憶部2A之邏輯單元(LU)單位內之所有LBA,亦可在記憶部2B進行備份,於該情形時,將邏輯單元(LU)劃分至記憶部2B,自記憶部2A之邏輯單元(LU)對記憶部2B之邏輯單元(LU)複製資料。
如圖40所示,於將控制部200安裝於備份目的地記憶裝置2A之一部分之情形時,作為本實施形態之控制工具200(控制部200)之備份動
作,亦可採用伺服空閒備份;於該情形時,例如使用擴展複製指令。作為擴展複製指令,亦可使用例如SCSI Primary Command-(SPC-3),IINCITS T10/1731-D,Revision 36e(http://www.t10.org/)所揭示之83h EXTENDED COPY指令。若備份伺服器7000、資料庫伺服器7003、網路開關7005或用戶端7004將包含備份對象區域與備份目的地之位址之擴展複製指令發送至記憶裝置2A,則控制部200對備份對象區域進行與圖18所示之處理相同之備份處理。即,控制部200對自擴展複製指令所指定之記憶裝置2A之備份對象開頭LBA至備份對象末尾LBA之區域,反覆進行來自記憶裝置2A之資料讀出,判斷讀出資料D是否與f(cLBA)相等,於D≠f(cLBA)時,將寫入命令及資料D經由儲存網路7002而發送至記憶裝置2B;於D=f(cLBA)時,將刪除通知經由儲存網路7002發送至記憶裝置2B。藉此,記憶裝置2B進行資料寫入處理或刪除通知處理。
第7實施形態中,雖已對在儲存網路7002內備份資料之情形予以敍述,但,如圖43所示,亦可將連接於用戶端7004A之記憶部2A之資料備份至連接於儲存網路7002之記憶部2B。進行該備份時,控制工具200對自記憶裝置2A之備份對象開頭LBA至備份對象末尾LBA之區域,反覆進行來自記憶裝置2A之資料讀出,判斷讀出資料D是否與f(cLBA)相等,於D≠f(cLBA)時,將寫入命令及資料D經由儲存網路7002而發送至記憶裝置2B;於D=f(cLBA)時,將刪除通知經由儲存網路7002發送至記憶裝置2B。
又,如圖44所示,亦可將連接於儲存網路7002之記憶部2A之資料備份至連接於用戶端7004A之記憶部2B。進行該備份時,控制工具200對自記憶裝置2A之備份對象開頭LBA至備份對象末尾LBA之區域,反覆進行來自記憶裝置2A之資料讀出,判斷讀出資料D是否與
f(cLBA)相等,於D≠f(cLBA)時,將寫入命令及資料D發送至記憶裝置2B;於D=f(cLBA)時,將刪除通知經由儲存網路7002發送至記憶裝置2B。
第9實施形態中,對作為記憶部2A、2B之介面與第7實施形態同樣地使用儲存網路7002,且以檔案為單位進行備份之情形進行說明。圖45之電腦系統1構成為包含連接於儲存網路7002之元資料伺服器(MDS)7008與由記憶部2A及記憶部2C分散管理之元資料300。
元資料300例如亦可具有與第2實施形態、第6實施形態或圖35所示之OS檔案管理資訊300相同之結構,亦可具有其他結構。作為元資料300之管理演算法,可使用區塊演算法或B+tree演算法。本實施形態中,對元資料300具有圖46所示之結構之情形進行說明。元資料300包含檔案識別ID、用於特定存儲有檔案之記憶部之記憶部識別ID、表示存儲有檔案之區域之開頭LBA之LBA、表示檔案之資料長度之演算法、檔案之所有者ID、檔案之最終更新時刻及其他屬性資訊。期望記憶部識別ID為各記憶部固有之序號,例如,可使用Word Wide Name(WWN)、IP位址或MAC位址等。雖元資料300僅存儲於備份來源即記憶部2A,但就提高系統全體之可靠性及性能之角度而言,期望其由記憶部2A或記憶部2B以外之記憶部即連接於儲存網路7002之記憶部2C與記憶部2A分散管理。或者,元資料300並非存儲於儲存網路7002上之記憶部,而係存儲於連接於元資料伺服器7008之局域輸入輸出裝置(未圖示)。
元資料伺服器(MDS)7008連接於儲存網路7002,藉由管理儲存於記憶部2A、記憶部2B或記憶部2C之檔案資料之元資料,在系統1中構築檔案系統。作為檔案系統,例如可使用SAN檔案系統、集束型檔案系統、RAIN(Redundant Array of Inexpensive/Independent Nodes)檔案
系統、或pNFS(parallel Network File System:並行網路文件系統)或Google File System(GFS)等。典型而言,元資料伺服器7008具備處理器、主記憶體、通訊介面、局域輸入輸出裝置等硬體資源,且具備裝置驅動器或操作系統(OS)、元資料管理程式等軟體資源(未圖示)。藉此,元資料伺服器7008在處理器之控制下,執行各種程式,藉由與硬體資源之協同作用而實現處理。
用戶端7010係連接於儲存網路7002,執行所需之處理之電腦。典型而言,用戶端7010具備具備處理器、主記憶體、通訊介面、局域輸入輸出裝置等硬體資源,且具備裝置驅動器或操作系統(OS)、應用程式等軟體資源(未圖示)。藉此,用戶端7010在處理器之控制下,執行各種程式,藉由與硬體資源之協同作用而實現處理。例如,用戶端7010藉由在處理器之控制下執行業務應用程式,可對記憶部2A、記憶部2B及記憶部2C進行檔案讀寫,實現所需之業務系統。
進行檔案讀寫時,需要檔案之存儲位置或屬性資訊,該等由用戶端7010自元資料伺服器7008取得。例如,用戶端7010需要自某檔案之讀出資料時,用戶端7010將包含上述檔案之檔案識別ID之檔案資訊讀出要求發送至元資料伺服器7008,元資料伺服器7008自元資料300檢索檔案識別ID,將該列之記憶部識別ID、LBA、扇區計數或屬性資訊等發送至用戶端7010,用戶端對記憶部識別ID所指定之記憶部發送包含LBA與扇區計數之資料讀出命令,特定之記憶部自LBA讀出扇區計數長度之資料而將其發送至用戶端7010。
例如,用戶端7010需要對某檔案寫入資料時,用戶端7010將包含檔案之檔案識別ID或檔案尺寸之寫入區域劃分要求發送至元資料伺服器7008,元資料伺服器7008基於元資料300而檢索應寫入檔案之記憶部識別ID或LBA,將記憶部識別ID、LBA或屬性資訊等發送至用戶端7010,用戶端7010對記憶部識別ID所特定之記憶部發送包含LBA、
扇區計數之資料寫入命令與寫入資料,特定之記憶部自LBA對扇區計數長度之區域寫入資料。
圖47表示本實施形態之控制工具200(控制部200)之備份動作。作為來自記憶部2A之讀出命令,使用例如上述之SBC-3所揭示之28h READ(10)指令、A8h READ(12)指令、88h READ(16)指令或7Fh READ(32)指令等。作為對記憶部2B之寫入命令,使用例如上述SBC-3所揭示之2Ah WRITE(10)指令、AAh WRITE(12)指令、8Ah WRITE(16)指令或7Fh WRITE(32)指令等。作為對記憶部2B之刪除命令,使用例如上述SBC-3所揭示之42h UNMAP指令等。
控制工具200對元資料伺服器7008發送檔案ID清單取得要求(步驟S1100)。元資料伺服器7008讀出元資料300,取得已登錄之檔案之ID清單,例如以如圖48所示般之資料結構將檔案ID清單發送至控制工具200(步驟S1110)。檔案ID清單例如亦可為元資料300所包含之所有檔案之檔案ID清單,或亦可為記憶部2A、特定之檔案或特定之LU所包含之所有檔案等,亦可為登錄至元資料300之檔案中之一部分檔案之檔案ID清單。本實施形態中,對備份記憶部2A所包含之所有檔案之情形進行說明。控制工具200將所接收之檔案ID清單作為備份對象檔案清單而存儲於備份伺服器7000內之主記憶體(步驟S1120)。
對於備份檔案清單內之各檔案,控制工具200將包含檔案識別ID之檔案資訊讀出要求發送至元資料伺服器7008,元資料伺服器7008自元資料300檢索檔案ID,將存儲有檔案之LBA(=cLBA)或作為檔案尺寸之扇區計數(=cL)發送至控制工具200。(步驟S1130)。
控制工具200將包含檔案之檔案識別ID與扇區計數cL之寫入區域劃分要求發送至元資料伺服器7008,元資料伺服器7008基於元資料300檢索應寫入檔案之記憶部識別ID或LBA(=tLBA),將作為備份目的地之記憶部2B之記憶部識別ID或tLBA發送至控制工具200(步驟
S1140)。在進行寫入區域劃分要求時,期望控制工具200並非將記憶部2A之區域劃分至寫入區域,在寫入區域劃分要求中予以明確之指定。
控制工具200對記憶部2A發送包含cLBA與扇區計數cL之資料讀出命令,記憶部2A自LBA讀出資料而發送至控制工具200。(S1150)。控制工具200例如以邏輯扇區為單位而分解自記憶部2A接收之資料(步驟S1160),控制工具200對各個分解資料D與寫入該D之LBA(=tLBA)判斷是否為D=f(tLBA)(步驟S1170、S1180)。
控制工具200於D≠f(tLBA)時,將對tLBA寫入資料D之命令與資料D發送至記憶部2B(步驟S1190);於D=f(tLBA),對記憶部2B發送tLBA之刪除通知(步驟S1200)。為改善S1190與S1200之處理效率,期望於資料寫入命令連續之情形時,結合複數個資料寫入命令或寫入資料而發送至記憶部2B,或於刪除資料連續之情形時,結合複數個刪除通知而發送至記憶部2B。
又,控制工具200以將備份後之檔案之記憶部識別ID自記憶部2A之ID改寫為記憶部2B之ID地命令元資料伺服器7008。於cLBA≠tLBA之情形時,控制工具200以將備份後之檔案之cLBA該寫為tLBA地命令元資料伺服器7008(步驟S1170)。再者,cLBA與tLBA之關係亦可為cLBA=tLBA,亦可為cLBA≠tLBA。
若使用第1至第9實施形態之方法,則控制工具200可將存儲於記憶部2A之使用者資料快速複製至記憶部2B。記憶裝置2A之購買者即終端用戶可在所購買之記憶裝置2A之可靠性產生劣化時,藉由利用控制工具200對新購買之可靠性良好之記憶裝置2B複製資料而可恢復資料。另一方面,亦可並非由終端用戶自身進行資料之恢復,而係由記憶裝置2A或記憶裝置2B之銷售者作為無償或有償服務,或資料恢
復服務業者作為有償服務,進行自記憶裝置2A至記憶裝置2B之終端用戶之資料恢復服務。本實施形態中,對作為如此之商家服務之資料恢復服務進行說明。再者,雖本實施形態中所說明之資料恢復服務亦可使用或不使用第1至第9實施形態之方法,但藉由組合第1至第9實施形態之方法,可高速進行資料恢復,且藉由減少對備份目的地之記憶裝置2B之資料寫入量,可延長記憶裝置2B之使用壽命。
若終端用戶購入記憶裝置2A,則藉由對經由介面2A而連接於個人電腦、伺服器、博弈機或數字相機等資訊處理裝置3之記憶裝置2A寫入資料,或自記憶裝置2A讀出資料,而使用記憶裝置2A。
記憶裝置2A有因隨著使用次數之增加而隨時間劣化、或積累偶發之不良、或記憶裝置2A存在錯誤而於某日突然出現無法啟動或無法正常讀寫之故障。如此之故障狀態中,終端用戶將無法讀出之前存儲於記憶裝置2A之業務文件、寫真或電子郵件等使用者資料。因此,期望在記憶裝置2A面臨故障狀態之前,事先將使用者資料複製存儲至可靠性良好之記憶裝置即記憶裝置2B。
資料恢復服務中,為避免在進行資料恢復時因失誤而刪除使用者資料,且避免達到記憶裝置2A之故障預測時點或故障而使記憶裝置2A之可靠性進一步劣化,應儘可能快速地進行資料恢復。
又,即使記憶裝置2A達到故障狀態後,資料恢復服務仍可自記憶裝置2A恢復資料。例如,日本專利第4,643,671號公報所揭示之到達唯讀模式或寫保護模式時,如日本專利第5,002,719號公報所揭示般,因記憶裝置2A無法正常處理所接收之寫入指令,故如Windows(註冊商標)般之OS無法正確識別記憶裝置2A,以致終端用戶難以恢復使用者資料。進行資料恢復服務行業人員藉由對在進行資料恢復時所使用之主機裝置3搭載例如本實施形態中所說明之控制工具200或例如日本專利第5,002,719號公報所採用之控制程式,即使為如
此之故障狀態,仍可恢復使用者資料。
圖49係說明使用者資料恢復服務中自記憶裝置2A之故障預測時點(或故障到達)之階段至將使用者資料恢復至記憶裝置2B之階段之順序的圖。使用者資料恢復服務中,例如,記憶裝置2A或記憶裝置2B之銷售者可作為無償或有償服務而進行,或資料恢復服務業者可作為有償服務而進行將終端用戶之資料自記憶裝置2A恢復至記憶裝置2B之服務。
記憶裝置2A之故障藉由自記憶裝置2A收集例如S.M.A.R.T資訊般之統計資訊,可事先預測故障,可獲知故障產生。例如,利用日本專利第5,002,719號公報、日本專利第4,764,490號公報、或日本專利公開第2011-209879號公報所揭示之技術,記憶裝置2A之故障可由終端用戶所使用之故障預測軟體而預先獲知。
終端用戶利用故障預測軟體而例如經由顯示器9獲知故障預測或故障,自主機裝置3取下記憶裝置2A,將記憶裝置2A寄往資料恢復服務中心(資料恢復服務從業者)。
服務中心自使用者接受記憶裝置2A。服務中心準備作為記憶裝置2A之資料複製端(恢復端)之可靠性良好之記憶裝置即記憶裝置2B。例如,服務中心重新製造或重新購買記憶裝置2B,將其用作記憶裝置2A之資料複製端。
服務中心將備份來源即記憶裝置2A與備份目的地即記憶裝置2B連接於資料恢復服務用之裝置即進行資料恢復時所使用之主機裝置3,將記憶裝置2A之使用者資料D001複製至記憶裝置2。期望該複製處理例如以如本第1至第9實施形態所揭示之複製處理(備份處理)之方式進行。期望進行資料恢復時所使用之主機裝置3具備例如本實施形態中所介紹之控制工具200,或例如日本專利第5,002,719號所採用之控制程式。
自避免使記憶裝置2A之可靠性進一步劣化之角度而言,期望不對記憶裝置2A進行寫入動作。且,因若記憶裝置2A之介面控制器42B之可靠性劣化則有與主機裝置3進行通訊時產生CRC錯誤或R錯誤等通訊錯誤之虞,故資料恢復服務所需之主機裝置3以儘可能使介面19A之令速度降至低速之方式予以控制。例如,介面19A或記憶裝置2A之介面控制器42B與Serial ATA之Generation3之最大令速度即6.0 Gbps對應時,期望以較低之令速度即3.0 Gbps或最低之令速度即1.5 Gbps與記憶裝置2A進行通訊。且,介面19A與如PCI Express般之多通道通訊對應之情形時,若記憶裝置2A之介面控制器42B之可靠性正在劣化,則與主機裝置3之通訊中有產生通道間抗色偏失敗等通訊錯誤之虞,故進行資料恢復時所使用之主機裝置3以儘可能使介面19A之令通道數為低速之方式予以控制。例如,介面19A或記憶裝置2A之介面控制器42B與PCI Express之4通道通訊對應時,期望以較小之通道數即2個通道或最低之通道數即1個通道與記憶裝置2A進行通訊。於結束複製動作後,期望進行資料恢復時所使用之主機裝置3讀出存儲於記憶裝置2B之使用者資料D001,與自主機裝置2A讀出之資料進行比較而確認是否一致(驗證動作)。
服務中心將備份目的地即記憶裝置2B寄給終端用戶。或者,服務中心將已恢復之資料D001以電子郵件之方式發送至使用者,或藉由上傳至雲儲存以電子方式發送至使用者。
使用者獲得已恢復之資料D001。
上述各實施形態中,雖已以SSD為例對備份來源之非揮發性記憶裝置2A予以說明,但各實施形態亦可廣泛地適用SSD以外之非揮發性記憶裝置;例如,亦可適用使用磁性媒體(塗層裝置)之硬碟驅動器(HDD)、或使用NAND型快閃記憶體與磁性媒體(塗層裝置)兩者之混
合式硬碟驅動器(混合式HDD)。因發送刪除通知命令之終端為備份目的地之非揮發性記憶裝置2B而非備份來源之非揮發性記憶裝置2A,故即使備份來源之非揮發性記憶裝置2A不支持刪除通知命令,仍可適用本發明。
雖已說明本發明之幾種實施形態,但該等實施形態係例示者而並非用於限定發明之範圍。該等新穎之實施形態可以其他各種實施形態予以實施,在不脫離發明要旨之範圍內,可進行各種省略、置換及變更。該等實施形態或其變形包含於發明範圍或要旨內,且包含於與專利申請之範圍所揭示之範圍同等之範圍內。
1‧‧‧電腦系統
2A‧‧‧非揮發性記憶裝置
2B‧‧‧非揮發性記憶裝置
3‧‧‧主機
4‧‧‧CPU
5‧‧‧北橋晶片
6‧‧‧主記憶體
6A‧‧‧記憶區域
6B‧‧‧控制工具(控制程式)200之記憶區域
7‧‧‧南橋晶片
8‧‧‧顯示控制器
9‧‧‧顯示器
10‧‧‧光學驅動器
11‧‧‧BIOS-ROM
12‧‧‧LAN控制器
13‧‧‧USB控制器
14‧‧‧鍵盤
15‧‧‧滑鼠
19A‧‧‧記憶體介面
19B‧‧‧記憶體介面
100‧‧‧操作系統
200‧‧‧控制工具(控制程式)
Claims (27)
- 一種控制程式,其係被載入於主機裝置者,該主機裝置可連接以下裝置:第1記憶部,其具有至少可進行讀入與寫入中之讀入之第1記憶體;第2記憶部,其具有:非揮發性之第2記憶體,其可進行讀入及寫入;管理表,其關聯邏輯位址與實體位址;及控制部,其以使由接收到之刪除通知指定之邏輯位址成為無效之方式改寫上述管理表,且於接收到之讀出命令中所含之邏輯位址為無效之情形時,將第1函數所表示之資料發送至主機裝置;且該控制程式構成為使上述主機執行以下處理:第1處理,其自上述第1記憶部之第1邏輯位址區域讀出資料;第2處理,其判斷來自上述第1邏輯位址區域之讀出資料是否與上述第1函數所表示之資料相同;第3處理,其於上述讀出資料與上述第1函數所表示之資料不同之情形時,對上述第2記憶體之第2邏輯位址區域寫入上述讀出資料;及第4處理,其於上述讀出資料與上述第1函數所表示之資料相同之情形時,不對上述第2記憶體寫入上述讀出資料,而發出用於使上述第2記憶體之上述第2邏輯位址區域之資料成為無效之刪除通知。
- 如請求項1之控制程式,其中以上述第1函數所表示之資料無論上述第2記憶部所接收之邏輯位址為何皆設定相同之資料。
- 如請求項1之控制程式,其中以上述第1函數所表示之資料對上述第2記憶部所接收之至少2個以上之不同之邏輯位址設定不同 之資料。
- 如請求項1之控制程式,其中上述第1記憶部為非揮發性;上述第1記憶部與上述第2記憶部分別包含於不同之非揮發性記憶裝置中。
- 如請求項1之控制程式,其中上述第1記憶部為非揮發性;上述第1記憶部與上述第2記憶部包含於同一非揮發性記憶裝置中;且上述第1邏輯位址區域與上述第2邏輯位址區域具有彼此不重複之邏輯位址。
- 如請求項1之控制程式,其以如下方式構成:進行上述第4處理時,在判斷來自上述第1邏輯位址區域之讀出資料是否與以上述第1函數所表示之資料相同之前,使上述主機裝置執行自上述第2記憶部取得上述第1函數之第5處理。
- 如請求項1之控制程式,其中上述第1記憶部為揮發性;上述主機裝置具備應用程式;上述第1處理中之上述資料讀出係自上述應用程式接收並執行將上述第1邏輯位址區域之資料保存於上述第2記憶部之命令。
- 一種主機裝置之控制方法,其特徵在於該主機裝置可連接以下裝置:第1記憶部,其具有至少可進行讀入與寫入中之讀入之第1記憶體;第2記憶部,其具有:非揮發性之第2記憶體,其可進行讀入及寫入;管理表,其關聯邏輯位址與實體位址;及控制部,其以使由接收到之刪除通知指定之邏輯位址成為無效之方式改寫上述管理表,且於接收到之讀出命令中所含之邏輯位址為無效之情形時,將第1函數所表示之資料發送至主機裝置;且該控制方法包含以下步驟: 第1步驟,其自上述第1記憶部之第1邏輯位址區域讀出資料;第2步驟,其判斷來自上述第1邏輯位址區域之讀出資料是否與上述第1函數所表示之資料相同;第3步驟,其於上述讀出資料與上述第1函數所表示之資料不同之情形時,對上述第2記憶體之第2邏輯位址區域寫入上述讀出資料;及第4步驟,其於上述讀出資料與上述第1函數所表示之資料相同之情形時,不對上述第2記憶體寫入上述讀出資料,而發出用於使上述第2記憶體之上述第2邏輯位址區域之資料成為無效之刪除通知。
- 如請求項8之主機裝置之控制方法,其中以上述第1函數所表示之資料無論上述第2記憶部所接收之邏輯位址為何皆設定相同之資料。
- 如請求項8之主機裝置之控制方法,其中以上述第1函數所表示之資料對上述第2記憶部所接收之至少2個以上之不同之邏輯位址設定不同之資料。
- 如請求項8之主機裝置之控制方法,其中上述第1記憶部為非揮發性;上述第1記憶部與上述第2記憶部分別包含於不同之非揮發性記憶裝置中。
- 如請求項8之主機裝置之控制方法,其中上述第1記憶部為非揮發性;上述第1記憶部與上述第2記憶部包含於同一非揮發性記憶裝置中;且上述第1邏輯位址區域與上述第2邏輯位址區域具有彼此不重複之邏輯位址。
- 如請求項8之主機裝置之控制方法,其中於執行上述第2步驟之前,自上述第2記憶部取得上述第1函數。
- 一種資訊處理裝置,其包括:第1記憶部,其具有至少可進行讀入與寫入中之讀入之第1記憶體;第2記憶部,其具有:非揮發性之第2記憶體,其可進行讀入及寫入;管理表,其關聯邏輯位址與實體位址;及控制部,其以使由接收到之刪除通知指定之邏輯位址成為無效之方式改寫上述管理表,且於接收到之讀出命令中所含之邏輯位址為無效之情形時,將第1函數所表示之資料發送至主機裝置;及可連接於上述第1記憶部與上述第2記憶部之主機裝置;且該資訊處理裝置之特徵在於:上述主機裝置具備:第1控制部,其自上述第1記憶部之第1邏輯位址區域讀出資料;第2控制部,其判斷來自上述第1邏輯位址區域之讀出資料是否與上述第1函數所表示之資料相同;第3控制部,其於上述讀出資料與上述第1函數所表示之資料不同之情形時,對上述第2記憶體之第2邏輯位址區域寫入上述讀出資料;及第4控制部,其於上述讀出資料與上述第1函數所表示之資料相同之情形時,不對上述第2記憶體寫入上述讀出資料,而發出用於使上述第2記憶體之上述第2邏輯位址區域之資料成為無效之刪除通知。
- 如請求項14之資訊處理裝置,其中以上述第1函數所表示之資料無論上述第2記憶部所接收之邏輯位址為何皆設定相同之資料。
- 如請求項14之資訊處理裝置,其中以上述第1函數所表示之資料對上述第2記憶部所接收之至少2個以上之不同之邏輯位址設定 不同之資料。
- 如請求項14之資訊處理裝置,其中上述第1記憶部為非揮發性;上述第1記憶部與上述第2記憶部分別包含於不同之非揮發性記憶裝置中。
- 如請求項14之資訊處理裝置,其中上述第1記憶部為非揮發性;上述第1記憶部與上述第2記憶部包含於同一非揮發性記憶裝置中;且上述第1邏輯位址區域與上述第2邏輯位址區域具有彼此不重複之邏輯位址。
- 如請求項14之資訊處理裝置,其具備第5控制部,其在第4控制部判斷來自上述第1邏輯位址區域之讀出資料是否與上述第1函數所表示之資料相同之前,自上述第2記憶部取得上述第1函數。
- 如請求項14之資訊處理裝置,其中上述第1記憶部為揮發性;上述主機裝置具備應用程式;上述第1控制部所進行之上述資料讀出係自上述應用程式接收並執行將上述第1邏輯位址區域之資料保存於上述第2記憶部之命令。
- 一種主機裝置,其特徵在於可連接以下裝置:第1記憶部,其具有至少可進行讀入與寫入中之讀入之第1記憶體;及第2記憶部,其具有:非揮發性之第2記憶體,其可進行讀入及寫入;管理表,其關聯邏輯位址與實體位址;及控制部,其以使由接收到之刪除通知指定之邏輯位址成為無效之方式改寫上述管理表,且於接收到之讀出命令中所含之邏輯位址為無效之情形時,將第1函數所表示之資料發送至主機裝置;且該主機裝置包含: 第1控制部,其自上述第1記憶部之第1邏輯位址區域讀出資料;第2控制部,其判斷來自上述第1邏輯位址區域之讀出資料是否與上述第1函數所表示之資料相同;第3控制部,其於上述讀出資料與上述第1函數所表示之資料不同之情形時,對上述第2記憶體之第2邏輯位址區域寫入上述讀出資料;及第4控制部,其於上述讀出資料與上述第1函數所表示之資料相同之情形時,不對上述第2記憶體寫入上述讀出資料,而發出用於使上述第2記憶體之上述第2邏輯位址區域之資料成為無效之刪除通知。
- 如請求項21之主機裝置,其中以上述第1函數所表示之資料無論上述第2記憶部所接收之邏輯位址為何皆設定相同之資料。
- 如請求項21之主機裝置,其中以上述第1函數所表示之資料對上述第2記憶部所接收之至少2個以上之不同之邏輯位址設定不同之資料。
- 如請求項21之主機裝置,其中上述第1記憶部為非揮發性;上述第1記憶部與上述第2記憶部分別包含於不同之非揮發性記憶裝置中。
- 如請求項21之主機裝置,其中上述第1記憶部為非揮發性;上述第1記憶部與上述第2記憶部包含於同一非揮發性記憶裝置中;且上述第1邏輯位址區域與上述第2邏輯位址區域具有彼此不重複之邏輯位址。
- 如請求項21之主機裝置,其具備第5控制部,其在第4控制部判斷來自上述第1邏輯位址區域之讀出資料是否與上述第1函數所表示之資料相同之前,自上述第2記憶部取得上述第1函數。
- 如請求項21之主機裝置,其中上述第1記憶部為揮發性;上述主機裝置具備應用程式;上述第1控制部所進行之上述資料讀出係自上述應用程式接收並執行將上述第1邏輯位址區域之資料保存於上述第2記憶部之命令。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2012137765 | 2012-06-19 | ||
| JP2013020765A JP5586718B2 (ja) | 2012-06-19 | 2013-02-05 | 制御プログラム、ホスト装置の制御方法、情報処理装置およびホスト装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201401047A true TW201401047A (zh) | 2014-01-01 |
| TWI516920B TWI516920B (zh) | 2016-01-11 |
Family
ID=48191017
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW102106465A TWI516920B (zh) | 2012-06-19 | 2013-02-23 | A control program, a control method of a host device, an information processing device, and a host device |
| TW104136100A TWI556101B (zh) | 2012-06-19 | 2013-02-23 | A control method, an information processing device, and a host device of the host device |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW104136100A TWI556101B (zh) | 2012-06-19 | 2013-02-23 | A control method, an information processing device, and a host device of the host device |
Country Status (7)
| Country | Link |
|---|---|
| US (2) | US9501230B2 (zh) |
| EP (1) | EP2862050B1 (zh) |
| JP (1) | JP5586718B2 (zh) |
| KR (1) | KR20150013235A (zh) |
| CN (1) | CN104412218B (zh) |
| TW (2) | TWI516920B (zh) |
| WO (1) | WO2013190878A1 (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI670651B (zh) * | 2017-07-31 | 2019-09-01 | 美商谷歌有限責任公司 | 用於增加處理單元執行機器學習運算之速度之設備、方法及系統 |
Families Citing this family (49)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP6005566B2 (ja) | 2013-03-18 | 2016-10-12 | 株式会社東芝 | 情報処理システム、制御プログラムおよび情報処理装置 |
| US9367448B1 (en) | 2013-06-04 | 2016-06-14 | Emc Corporation | Method and system for determining data integrity for garbage collection of data storage systems |
| US9304685B2 (en) | 2013-09-10 | 2016-04-05 | Kabushiki Kaisha Toshiba | Storage array system and non-transitory recording medium storing control program |
| US9405761B1 (en) * | 2013-10-29 | 2016-08-02 | Emc Corporation | Technique to determine data integrity for physical garbage collection with limited memory |
| JP6525507B2 (ja) * | 2014-05-14 | 2019-06-05 | キヤノン株式会社 | 情報処理装置、情報処理方法及びプログラム |
| US10120793B2 (en) | 2014-12-29 | 2018-11-06 | Toshiba Memory Corporation | Memory device and non-transitory computer readable recording medium |
| JP6482322B2 (ja) | 2014-12-29 | 2019-03-13 | 東芝メモリ株式会社 | メモリ装置及びプログラム |
| US20160291887A1 (en) * | 2015-03-30 | 2016-10-06 | Kabushiki Kaisha Toshiba | Solid-state drive with non-volatile random access memory |
| US20160321010A1 (en) | 2015-04-28 | 2016-11-03 | Kabushiki Kaisha Toshiba | Storage system having a host directly manage physical data locations of storage device |
| US9774753B2 (en) * | 2015-05-28 | 2017-09-26 | Canon Kabushiki Kaisha | Image forming apparatus, control method therefor, and storage medium |
| US20180067676A1 (en) * | 2015-06-04 | 2018-03-08 | Hitachi, Ltd. | Storage device |
| ES2747962T3 (es) * | 2015-06-29 | 2020-03-12 | Aicas Gmbh | Gestión de memoria automática que usa una unidad de gestión de memoria |
| US10656838B2 (en) | 2015-07-13 | 2020-05-19 | Samsung Electronics Co., Ltd. | Automatic stream detection and assignment algorithm |
| JP2017033501A (ja) | 2015-08-06 | 2017-02-09 | 株式会社東芝 | 記憶装置および制御方法 |
| US20170068480A1 (en) * | 2015-09-09 | 2017-03-09 | Mediatek Inc. | Power Saving Methodology for Storage Device Equipped with Task Queues |
| CN105306865B (zh) * | 2015-10-29 | 2019-05-17 | 四川奇迹云科技有限公司 | 一种视频监控数据系统 |
| US11010391B2 (en) * | 2015-12-30 | 2021-05-18 | Sap Se | Domain agnostic similarity detection |
| US10360108B2 (en) * | 2016-01-05 | 2019-07-23 | Acronis International Gmbh | System and method of using performance-maintaining commands for generating a backup of unsupported file systems |
| US10546385B2 (en) * | 2016-02-25 | 2020-01-28 | Technion Research & Development Foundation Limited | System and method for image capture device pose estimation |
| US10101939B2 (en) | 2016-03-09 | 2018-10-16 | Toshiba Memory Corporation | Storage system having a host that manages physical data locations of a storage device |
| TWI662473B (zh) * | 2016-03-28 | 2019-06-11 | 慧榮科技股份有限公司 | 資料儲存裝置的映像檔製作方法 |
| US10866905B2 (en) | 2016-05-25 | 2020-12-15 | Samsung Electronics Co., Ltd. | Access parameter based multi-stream storage device access |
| KR102229013B1 (ko) * | 2016-09-02 | 2021-03-17 | 삼성전자주식회사 | 자동 스트림 검출 및 할당 알고리즘 |
| US10156996B2 (en) * | 2016-09-06 | 2018-12-18 | Toshiba Memory Corporation | Memory device and read processing method using read counts, first, second, and third addresses |
| JP6875808B2 (ja) * | 2016-09-09 | 2021-05-26 | キヤノン株式会社 | 情報処理装置 |
| TWI653533B (zh) * | 2017-03-07 | 2019-03-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
| JP6732684B2 (ja) * | 2017-03-15 | 2020-07-29 | キオクシア株式会社 | 情報処理装置、ストレージデバイスおよび情報処理システム |
| TWI788772B (zh) * | 2017-04-21 | 2023-01-01 | 美商時美媒體公司 | 用於藉由預測運動向量及/或快取重複運動向量的玩家輸入運動補償的系統及方法 |
| US10372381B2 (en) | 2017-06-05 | 2019-08-06 | International Business Machines Corporation | Implicit leader election in a distributed storage network |
| US10289333B2 (en) * | 2017-06-14 | 2019-05-14 | Western Digital Technologies, Inc. | Data storage device configured to perform operations using a wireless interface |
| GB201709499D0 (en) * | 2017-06-15 | 2017-08-02 | Microsoft Technology Licensing Llc | Memory management in non-volatile memory |
| US10489257B2 (en) * | 2017-08-08 | 2019-11-26 | Micron Technology, Inc. | Replaceable memory |
| JP2019057178A (ja) * | 2017-09-21 | 2019-04-11 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
| CN109558271B (zh) * | 2017-09-26 | 2023-02-24 | 深圳大心电子科技有限公司 | 数据备份方法、数据恢复方法以及存储控制器 |
| EP3696681B1 (en) * | 2017-11-07 | 2023-12-20 | Huawei Technologies Co., Ltd. | Memory block recovery method and device |
| US11288180B2 (en) * | 2018-01-19 | 2022-03-29 | Micron Technology, Inc. | Management of storage resources allocated from non-volatile memory devices to users |
| JP6443572B1 (ja) | 2018-02-02 | 2018-12-26 | 富士通株式会社 | ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム |
| JP6710232B2 (ja) * | 2018-02-27 | 2020-06-17 | 三菱重工業株式会社 | 管理装置、管理方法およびプログラム。 |
| JP6901427B2 (ja) * | 2018-03-27 | 2021-07-14 | キオクシア株式会社 | ストレージ装置、コンピュータシステムおよびストレージ装置の動作方法 |
| CN108563401B (zh) * | 2018-03-27 | 2021-05-28 | 深圳忆联信息系统有限公司 | 一种ssd性能加速方法 |
| KR102649131B1 (ko) | 2018-08-14 | 2024-03-19 | 에스케이하이닉스 주식회사 | 메모리 시스템 내 대용량 데이터 저장이 가능한 블록에서의 유효 데이터 체크 방법 및 장치 |
| KR102708925B1 (ko) | 2019-01-11 | 2024-09-25 | 에스케이하이닉스 주식회사 | 메모리 시스템에서의 유효 데이터 체크 방법 및 장치 |
| KR102751536B1 (ko) | 2019-06-07 | 2025-01-07 | 삼성전자주식회사 | 전자 장치 및 그 시스템 |
| US11221776B2 (en) * | 2019-12-30 | 2022-01-11 | Micron Technology, Inc. | Metadata indication for a memory device |
| US11789748B2 (en) * | 2020-10-05 | 2023-10-17 | SK Hynix Inc. | Firmware parameters optimizing systems and methods |
| CN112363670B (zh) * | 2020-10-14 | 2023-02-03 | 天津津航计算技术研究所 | 一种sata ncq命令调度方法 |
| JP7535967B2 (ja) * | 2021-03-19 | 2024-08-19 | 株式会社Kokusai Electric | 管理装置、データ処理方法、プログラム、半導体装置の製造方法および処理システム |
| CN114356797B (zh) * | 2021-11-22 | 2025-09-12 | 尧云科技(西安)有限公司 | 一种基于文件系统优化的固态存储方法、系统及设备 |
| US11809711B2 (en) | 2022-01-18 | 2023-11-07 | Silicon Motion, Inc. | Flash memory scheme capable of decreasing waiting time of trim command |
Family Cites Families (30)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6073221A (en) * | 1998-01-05 | 2000-06-06 | International Business Machines Corporation | Synchronization of shared data stores through use of non-empty track copy procedure |
| US6745305B2 (en) | 2000-12-13 | 2004-06-01 | Ncr Corporation | Zeroed block optimization in disk mirroring applications |
| JP4288037B2 (ja) * | 2002-02-25 | 2009-07-01 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 記録ディスクを用いた記録装置、記録システムおよびそのバックアップ方法 |
| US7024526B2 (en) * | 2002-10-31 | 2006-04-04 | Hitachi, Ltd. | Apparatus and method of null data skip remote copy |
| JP4225378B2 (ja) * | 2003-12-17 | 2009-02-18 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 複製装置、複製方法、複製プログラム、ブロック識別情報取得プログラム、及び記録媒体 |
| US8122193B2 (en) | 2004-12-21 | 2012-02-21 | Samsung Electronics Co., Ltd. | Storage device and user device including the same |
| US9207876B2 (en) | 2007-04-19 | 2015-12-08 | Microsoft Technology Licensing, Llc | Remove-on-delete technologies for solid state drive optimization |
| US8706950B2 (en) | 2008-03-01 | 2014-04-22 | Kabushiki Kaisha Toshiba | Memory system |
| JP5052376B2 (ja) | 2008-03-21 | 2012-10-17 | 株式会社日立製作所 | ストレージシステム及びストレージシステムにおける論理ユニットの引継方法 |
| JP4164118B1 (ja) | 2008-03-26 | 2008-10-08 | 眞澄 鈴木 | フラッシュメモリを用いた記憶装置 |
| CN102246135B (zh) * | 2008-11-07 | 2015-04-22 | 戴尔康佩伦特公司 | 数据存储系统的瘦导入 |
| JP5317689B2 (ja) | 2008-12-27 | 2013-10-16 | 株式会社東芝 | メモリシステム |
| JP5275052B2 (ja) | 2009-01-08 | 2013-08-28 | 株式会社東芝 | 不揮発性半導体記憶装置 |
| JP4764490B2 (ja) | 2009-03-30 | 2011-09-07 | 株式会社東芝 | ハードウェア使用状況に応じたユーザー評価装置 |
| US8364931B2 (en) * | 2009-06-29 | 2013-01-29 | Mediatek Inc. | Memory system and mapping methods using a random write page mapping table |
| KR101759926B1 (ko) | 2009-07-23 | 2017-07-21 | 삼성전자주식회사 | 메모리 반도체 장치, 그 제조 방법 및 동작 방법 |
| US8386537B2 (en) | 2009-12-15 | 2013-02-26 | Intel Corporation | Method for trimming data on non-volatile flash media |
| JP2011128998A (ja) | 2009-12-18 | 2011-06-30 | Toshiba Corp | 半導体記憶装置 |
| JP5214656B2 (ja) | 2010-03-29 | 2013-06-19 | 株式会社東芝 | 評価装置および評価プログラム |
| US8661189B2 (en) | 2010-08-31 | 2014-02-25 | Apple Inc. | Systems and methods for trimming logical block addresses corresponding to a data structure residing in non-volatile memory |
| JP5066241B2 (ja) * | 2010-09-24 | 2012-11-07 | 株式会社東芝 | メモリシステム |
| KR101893897B1 (ko) | 2010-10-29 | 2018-08-31 | 삼성전자주식회사 | 메모리 시스템 및 사용자 장치 그리고 그것의 데이터 관리 방법 |
| JP2012123499A (ja) * | 2010-12-07 | 2012-06-28 | Toshiba Corp | メモリシステム |
| JP5002719B1 (ja) | 2011-03-10 | 2012-08-15 | 株式会社東芝 | 情報処理装置、外部記憶装置、ホスト装置、中継装置、制御プログラム及び情報処理装置の制御方法 |
| JP5405513B2 (ja) | 2011-03-22 | 2014-02-05 | 株式会社東芝 | メモリシステム、不揮発性記憶装置、不揮発性記憶装置の制御方法、及びプログラム |
| JP2012221251A (ja) | 2011-04-08 | 2012-11-12 | Toshiba Corp | メモリシステムの制御方法、情報処理装置、及びプログラム |
| EP2745203B1 (en) | 2011-08-19 | 2016-09-21 | Kabushiki Kaisha Toshiba | Information processing apparatus |
| JP5112566B1 (ja) | 2011-12-16 | 2013-01-09 | 株式会社東芝 | 半導体記憶装置、不揮発性半導体メモリの検査方法、及びプログラム |
| JP5659178B2 (ja) | 2012-03-16 | 2015-01-28 | 株式会社東芝 | 不揮発性記憶装置及び不揮発性メモリの制御方法 |
| US9201784B2 (en) | 2012-09-07 | 2015-12-01 | Kabushiki Kaisha Toshiba | Semiconductor storage device and method for controlling nonvolatile semiconductor memory |
-
2013
- 2013-02-05 JP JP2013020765A patent/JP5586718B2/ja not_active Expired - Fee Related
- 2013-02-23 TW TW102106465A patent/TWI516920B/zh not_active IP Right Cessation
- 2013-02-23 TW TW104136100A patent/TWI556101B/zh not_active IP Right Cessation
- 2013-03-25 KR KR1020147033999A patent/KR20150013235A/ko not_active Ceased
- 2013-03-25 WO PCT/JP2013/059792 patent/WO2013190878A1/en not_active Ceased
- 2013-03-25 CN CN201380032155.7A patent/CN104412218B/zh active Active
- 2013-03-25 US US14/408,220 patent/US9501230B2/en active Active
- 2013-03-25 EP EP13719185.4A patent/EP2862050B1/en active Active
-
2016
- 2016-10-05 US US15/285,993 patent/US9880766B2/en active Active
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI670651B (zh) * | 2017-07-31 | 2019-09-01 | 美商谷歌有限責任公司 | 用於增加處理單元執行機器學習運算之速度之設備、方法及系統 |
| US10802956B2 (en) | 2017-07-31 | 2020-10-13 | Google Llc | Accessing prologue and epilogue data |
Also Published As
| Publication number | Publication date |
|---|---|
| EP2862050A1 (en) | 2015-04-22 |
| KR20150013235A (ko) | 2015-02-04 |
| EP2862050B1 (en) | 2019-10-16 |
| US20170024156A1 (en) | 2017-01-26 |
| TWI556101B (zh) | 2016-11-01 |
| US9880766B2 (en) | 2018-01-30 |
| JP2014026635A (ja) | 2014-02-06 |
| US9501230B2 (en) | 2016-11-22 |
| JP5586718B2 (ja) | 2014-09-10 |
| WO2013190878A1 (en) | 2013-12-27 |
| US20150143032A1 (en) | 2015-05-21 |
| TW201604688A (zh) | 2016-02-01 |
| CN104412218B (zh) | 2017-05-03 |
| CN104412218A (zh) | 2015-03-11 |
| TWI516920B (zh) | 2016-01-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI516920B (zh) | A control program, a control method of a host device, an information processing device, and a host device | |
| JP5989875B2 (ja) | 制御プログラム、ホスト装置の制御方法、情報処理装置およびホスト装置 | |
| US8510499B1 (en) | Solid state drive caching using memory structures to determine a storage space replacement candidate | |
| US9176881B2 (en) | Computer system and storage control method | |
| KR102406666B1 (ko) | 스냅샷 기능을 지원하는 키-밸류 스토리지 장치 및 상기 키-밸류 스토리지 장치의 동작 방법 | |
| US8386717B1 (en) | Method and apparatus to free up cache memory space with a pseudo least recently used scheme | |
| US10936412B1 (en) | Method and system for accessing data stored in data cache with fault tolerance | |
| US20190129971A1 (en) | Storage system and method of controlling storage system | |
| US10684947B2 (en) | Increasing high performance data storage utilization by reducing write operations | |
| CN104956312A (zh) | 存储装置及存储装置的控制方法 | |
| JP4920898B2 (ja) | 計算機システム、データ管理方法およびプログラム | |
| US20130138705A1 (en) | Storage system controller, storage system, and access control method | |
| US10042719B1 (en) | Optimizing application data backup in SMB | |
| WO2015097751A1 (ja) | 不揮発性キャッシュメモリにデータをバックアップするストレージシステム | |
| US11847030B2 (en) | Prioritizing virtual machines for backup protection at a virtual machine disk level | |
| CN118051179A (zh) | 用于使用多个分区的分区命名空间存储的技术 | |
| US10489301B1 (en) | Method and system for metadata churn absorption | |
| US10733105B1 (en) | Method for pipelined read optimization to improve performance of reading data from data cache and storage units | |
| WO2010131373A1 (en) | Storage subsystem | |
| US10585802B1 (en) | Method and system for caching directories in a storage system | |
| US10599340B1 (en) | Policy driven IO scheduler to improve read IO performance in hybrid storage systems | |
| US10565120B1 (en) | Method for efficient write path cache load to improve storage efficiency | |
| US12299303B2 (en) | Dynamic reserve capacity in storage systems | |
| US11537597B1 (en) | Method and system for streaming data from portable storage devices | |
| WO2014109053A1 (ja) | ファイルサーバ、ストレージ装置及びデータ管理方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| MM4A | Annulment or lapse of patent due to non-payment of fees |