JP5586718B2 - 制御プログラム、ホスト装置の制御方法、情報処理装置およびホスト装置 - Google Patents
制御プログラム、ホスト装置の制御方法、情報処理装置およびホスト装置 Download PDFInfo
- Publication number
- JP5586718B2 JP5586718B2 JP2013020765A JP2013020765A JP5586718B2 JP 5586718 B2 JP5586718 B2 JP 5586718B2 JP 2013020765 A JP2013020765 A JP 2013020765A JP 2013020765 A JP2013020765 A JP 2013020765A JP 5586718 B2 JP5586718 B2 JP 5586718B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- storage unit
- logical address
- read
- function
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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)
Description
・SSDの空き領域が枯渇している、すなわちSSDコントローラに有効なデータを持っていないと認識されているNANDフラッシュメモリの物理ブロック(フリーブロック)が枯渇している場合、そのSSDにデータ書き込みを行うと、SSDコントローラに有効なデータを持っていると認識されているNANDフラッシュメモリの物理ブロック(アクティブブロック)上の無効なデータ領域を検索し有効なデータを整理(NAND整理)することで、新たなフリーブロックを確保する処理に負荷がかかり、書き込みのパフォーマンスが著しく劣化する、
・無効データが多くてSSD上での空き領域が枯渇している状況で書き込みが行われると、特定の領域に書き込みが集中したり、頻繁に発生するNAND整理によって余分なブロックの消去が発生したりして、SSDの信頼性が著しく劣化する、
などがある。
・ホスト無効−デバイス有効データ("host-invalid and device-valid data"):ホスト(OS)にとって無効だがdevice(不揮発性記憶装置)には有効なデータ
・ホスト有効−デバイス有効データ("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とし、不揮発性記憶装置2A、2Bとして、SSD(Solid State Drive)を用いるが、たとえば、ハードディスクドライブ、ハイブリッドディスクドライブ、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は、書き込みと読み出しのうち読み出しのみ可能な記憶装置であってもよい。
[SSD]
図4は、バックアップ先である不揮発性記憶装置2Bの書き込み動作を示すフローチャートである。不揮発性記憶装置2Bは、ホスト装置3から書き込み命令を受信する(ステップS100)。書き込み命令には、書き込みコマンド、LBA、及びデータが含まれる。
次に、不揮発性記憶装置2BのNAND整理処理(garbage collection, GC)について説明する。図5は、不揮発性記憶装置2BのNAND整理処理を示すフローチャートである。物理ブロックに含まれる全ページのうちアクティブページテーブルに登録されているアクティブページ(有効ページ)はLBAに対応付けられている。一方、物理ブロックに含まれる全ページが有効ページであるとは限らず、有効ページに該当しないページ(無効ページ)はLBAに対応付けられていない。物理ブロックは無効ページの分だけデータに空きがあることになり、これら無効ページと有効ページとを分類することでフリーブロックを確保することができる。
次に、不揮発性記憶装置2Bの削除通知処理について説明する。削除通知のためのコマンドとして、たとえば、INCITS ATA/ATAPI Command Set−2 (ACS−2)で記述されているData Set Management Command(通称トリム(TRIM)コマンド)があげられる。削除通知処理は、OS100上でデータが削除された場合、LBAおよび論理セクタ数に関するデータ(LBA Range Entry)を不揮発性記憶装置に通知することにより、以後不揮発性記憶装置2B上でLBAから論理セクタ数分のLBA領域を空き領域として扱うことができる方式である。削除通知により、不揮発性記憶装置2Bはフリーブロックを新たに確保することができる。なお、トリムコマンドの機能は、Data Set Management Commandだけでなく、たとえばACS2記載のSCTコマンドを用いたベンダー独自のコマンドなどその他コマンドによって実現してもよい。また、インタフェース19BにSATAインタフェース以外のインタフェースを用いている場合、トリムコマンドとしてそのインタフェース固有の削除通知処理用コマンドを用いてもよい。また、トリムコマンドとして、NVM Express Revision 1.1 October 11, 2012 (http://www.nvmexpress.org/)に記述されている11h Dataset Management commandのDeallocate(AD)を用いてもよい。たとえば、不揮発性記憶装置2Bが後述のDeterministic Zeroing TRIM機能を保有している場合、トリムコマンドの機能は、前記コマンドだけでなく、NVM Express Revision 1.1に記載されている08h Write Zeroesコマンドによって実現されてもよい。また、トリムコマンドとして、SCSI Block Commands-3 (SBC-3), Revision 35, Dec.07.2012(http://www.t10.org/)に記述されている42h UNMAP commandを用いてもよい。なお、本実施形態では、データの削除の場合だけでなく、データをバックアップおよびコピーする場合にトリムコマンドを用いる。
次に、バックアップ先である不揮発性記憶装置2Bの読み出し動作について説明する。図7は、不揮発性記憶装置2Bの読み出し動作を示すフローチャートである。バックアップ元の不揮発性記憶装置2Aのデータをバックアップ後に、ホスト装置3がバックアップ先である不揮発性記憶装置2Bからバックアップデータを読みだす場合がある。その場合不揮発性記憶装置2Bはホスト装置3から読み出し命令を受信する(ステップS400)。読み出し命令には、読み出しコマンド、及びLBAが含まれる。
f(Ai)=Di(iは0以上の整数)
を満たす。関数fは、自由に設定することが可能であり、その一例として、たとえば、LBAを変数として、
f(LBA)=0
と設定した場合、SSDC41Bは、ホスト装置3からの要求に対応するデータ長分の“0”で埋め尽くされたデータをホスト装置3に送信することになる。関数fはSSDC41Bに格納されてもよいし、NANDメモリ16B内に格納されてもよいし、RAM40B内に格納されても良い。未書き込み領域読み出しを高速に行うという観点では、関数fは、SSDC41BまたはRAM40B内に格納されるか、不揮発性記憶装置2Bの電源OFF時にはNANDメモリ16B内に格納しておき不揮発性記憶装置2B起動時にRAM40Bに読み出されることが望ましい。
データ=f(LBA)
と表す。
つぎに、ホスト装置3上で動作する制御プログラム(制御ツール)200の格納方法について説明する。例えば、制御ツール200は、図8に示すように、ホスト装置3が電源オフになっているときはバックアップ元である不揮発性記憶装置2AのNANDメモリ16Aに格納されているが、ホスト3の起動時またはプログラム起動時に、NANDメモリ16から主メモリ6上の領域6Bにロードされる。一方、ホスト装置3に不揮発性記憶装置2Aおよび不揮発性記憶装置2Bとは別の不揮発性記憶装置20が接続されている場合は、図9に示すように、制御プログラム200は、不揮発性記憶装置20の領域20Bに格納されており、ホスト装置3の起動時またはプログラム起動時に、領域20Bから領域6Bにロードされるようにしてもよい。特に、不揮発性記憶装置20がOSを格納するシステムドライブとして使用されており、不揮発性記憶装置2Aが文書や静止画データや動画データなどユーザデータを格納するデータドライブとして使用されている場合は、システムドライブ20にはOSやアプリケーションプログラムを主として格納するドライブとして使用し、データドライブ2Aにはユーザデータを格納するドライブとして使用するというように、ドライブ2Aとドライブ20の役割を明確に分ける観点で、システムドライブとしての不揮発性記憶装置20に制御プログラムを格納することが望ましい。あるいは制御プログラム200を格納するドライブ20としてUSBメモリを採用すると、通常利用時はUSBメモリをホスト装置3から切り離しておき、不揮発性記憶装置2Aをバックアップする時などの制御プログラム200を使用するときにのみ、USBメモリをホスト装置3に接続するようにしてもよい。また制御プログラムを、バックアップ先である不揮発性記憶装置2Bに格納しておいてもよい。
次に、コンピュータシステム1の構成例について説明する。コンピュータシステム1は、例えば、デスクトップコンピュータやノートブック型のポータブルコンピュータとして実現し得る。図14は、コンピュータシステム1としてのデスクトップコンピュータの概略図である。
図18に、制御プログラム200によるバックアップ動作の動作フローを示す。制御プログラム200は不揮発性記憶装置2Aから不揮発性記憶装置2Bに対するデータバックアップ機能を有するプログラムである。制御プログラム200のバックアップ機能はキーボード14やマウス15を介してユーザによる手動で開始されてもよいし、CPU4により自動的に開始されてもよい。図18に示すフローでは、バックアップ対象のLBA領域を長さLの小領域に分割して、それぞれの小領域に対しバックアップ動作のサブルーチンを行うことになる。小領域の参照にはLBAのポインタであるcLBAがもちいられ、cLBAが0からLずつインクリメントされていくことにより、全LBA領域のデータがバックアップされることになる。小領域の長さLは1以上の整数である。
第1の実施形態では、バックアップ単位として、等論理セクタ長Lごとに区切った小領域に対して行う場合について述べたが、可変長の小領域に対して行ってもよい。たとえば、小領域として、OS100上で管理されるファイル単位を採用してもよい。図19は、第2の実施形態の制御ツール200の動作例を示すフローチャートである。
第1、第2の実施形態では、制御プログラム200内の関数f(LBA)を用いてバックアップ処理を行い、バックアップ後のデータ読み出し時においては、バックアップ先である不揮発性記憶装置2BのSSDC41Bは、NANDメモリ16B内の関数f(LBA)を用いてデバイス無効データ(device-invalid data)をf(LBA)に復元してホスト装置3に送信するようにしている。
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に格納される。
(2)(1)で読み出したデータが関数f(LBA)に等しいか否かを判定する(セクタの整数倍ごとにデータを読み出した場合は、その中の全セクタが関数f(LBA)に等しいか否かを判定する)。
(3)等しい場合は1点、等しくない場合は0点と点数をつける。
(4)SSDの全論理アドレス領域に対して点数付けを行い、点数の合計を算出する(代表して一部領域のみについて点数付けを行ってもよい)。
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に格納される。
関数f(LBA)=固定値(=Q)である場合、データQをバックアップ先不揮発性記憶装置2BのNANDメモリ16BまたはSSDC41BまたはRAM40Bにのみ保存し、制御プログラム200に保存しないようにしてもよい。第4の実施形態においては、制御プログラム200は、図18のステップS530や図19のステップS640において、データをf(LBA)=Qと比較する時、不揮発性記憶装置2Bから取得した固定値Qを用いて比較を行う。不揮発性記憶装置2Bから固定値Qを取得する方法として、たとえば非特許文献1のACS−2に記述されているECh IDENTIFY DEVICEコマンドを用いることができる。たとえば、ECh IDENTIFY DEVICEコマンドのデータのうち、Vendor Specificとして割り当てられているWord129をデータ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に格納される。
図31に示すように、バックアップ先の不揮発性記憶装置2Bとしてネットワークストレージドライブまたはクラウドストレージを用いることもできる。たとえば、コンピュータシステム1とクラウドストレージ2Bをインターネットやイントラネットなどのネットワークを介して接続し、制御ソフトウェア200がクラウドストレージ2Bにネットワーク経由で削除通知コマンドおよび書き込みコマンドを送信することによって、本実施形態のバックアップ処理を行うこともできる。大量のデータ転送を伴う書き込みコマンドに比べて削除通知コマンドのデータ転送量は少量であるため、バックアップ動作を高速に行うことができるとともに、書き込みによるクラウドストレージ2Bの信頼性劣化を抑制することができる。また、クラウドストレージ2Bの記憶媒体にSSDを採用している場合は、クラウドストレージ2Bのフリーブロック数減少を抑制することができる。
第2の実施形態では、バックアップ元記憶媒体として記憶装置2Aを用いる場合について述べたが、第6の実施形態では、データのコピー元を主メモリ6とする。すなわち、この第6の実施形態では、アプリケーションプログラムが起動されて動作しているときに、アプリケーションプログラムが主メモリ6上に一時的に記憶されているアプリケーションプログラム用データを、不揮発性記憶装置2Bにコピーして保存する際に、第2の実施形態で説明した手法を採用する。なお、本実施形態において、記憶装置2Aは必要ない。
第7の実施形態では、記憶装置2Aおよび記憶装置2Bのインタフェースとして、ネットワーク7002を使用する場合について説明する。本実施形態では、図38のコンピュータシステム1は、記憶部2Aおよび記憶部2Bに接続されたネットワーク7002を含んで構成される。
第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に送信する。
第9の実施形態では、記憶部2A、2Bのインタフェースとして、第7の実施形態と同様にネットワーク7002を使用し、かつファイル単位でバックアップを行う場合について説明する。図45のコンピュータシステム1は、ストレージネットワーク7002に接続されたメタデータサーバ(MDS)7008と、記憶部2A、記憶部2Cに分散管理されるメタデータ300を含んで構成される。
第1〜第9の実施形態による手法を用いれば、制御ツール200によって、記憶部2Aに格納されたユーザデータを記憶部2Bに高速にコピーすることが可能となる。記憶装置2Aの購入者であるエンドユーザは、購入した記憶装置2Aが信頼性劣化した時、制御ツール200を用いて新しく購入した信頼性の良い記憶装置2Bにデータをコピーすることでデータを救出することが可能である。一方、エンドユーザ自身がデータをリカバリするのではなく、記憶装置2Aや記憶装置2Bの販売業者が無償あるいは有償サービスとして、またはデータ復旧サービス業者が有償サービスとして、記憶装置2Aから記憶装置2Bへのエンドユーザのデータの救出サービスを行なっても良い。本実施形態では、このような企業サービスとしてのデータ救出サービスについて説明する。なお、本実施形態で説明するデータ救出サービスは、第1〜第9の実施形態の手法を用いても良いし、用いなくても良いが、第1〜第9の実施形態の手法を組み合わせることで、より高速にデータ救出できるとともに、バックアップ先の記憶装置2Bへのデータ書き込み量を低減することで記憶装置2Bを長寿命することができる。
上記各実施形態では、バックアップ元の不揮発性記憶装置2AとしてSSDを例に挙げて説明したが、各実施形態はSSD以外の不揮発性記憶装置にも広く適用可能であり、例えば、磁性媒体(プラッタ)を用いたハードディスクドライブ(HDD)や、NAND型フラッシュメモリと磁性媒体(プラッタ)の両方を用いたハイブリッドハードディスクドライブ(ハイブリッドHDD)に適用することも可能である。削除通知命令が送信される先はバックアップ先の不揮発性記憶装置2Bであって、バックアップ元の不揮発性記憶装置2Aではないため、バックアップ元の不揮発性記憶装置2Aが削除通知命令をサポートしていなくても本発明は適用可能である。
Claims (27)
- リードとライトのうち少なくともリード可能な第1のメモリを有する第1の記憶部と、
リードおよびライト可能な不揮発性の第2のメモリと、論理アドレスと物理アドレスとを関連付ける管理テーブルと、受信した削除通知により指定された論理アドレスを無効にするように前記管理テーブルを書き換え、受信した読み出し命令に含まれる論理アドレスが無効である場合に、各論理アドレスに対して確定的なデータを指定する第1の関数で表されるデータをホスト装置に送信する制御部とを有する第2の記憶部と、
が接続可能なホスト装置にロードされる制御プログラムであって、
前記第1の記憶部の第1の論理アドレス領域からデータを読み出す第1の処理と、
前記第1の論理アドレス領域からの読み出しデータが前記第1の関数で表されるデータと同じであるか否かを判定する第2の処理と、
前記読み出しデータと前記第1の関数で表されるデータとが同じでない場合には、前記第2のメモリの第2の論理アドレス領域に前記読み出しデータを書き込む第3の処理と、
前記読み出しデータと前記第1の関数で表されるデータとが同じである場合には、前記第2のメモリに前記読み出しデータを書き込まずに、前記第2のメモリの前記第2の論理アドレス領域のデータを無効にするための削除通知を行う第4の処理と、
を前記ホスト装置に実行させるように構成された制御プログラム。 - 前記第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のメモリを有する第1の記憶部と、
リードおよびライト可能な不揮発性の第2のメモリと、論理アドレスと物理アドレスとを関連付ける管理テーブルと、受信した削除通知により指定された論理アドレスを無効にするように前記管理テーブルを書き換え、受信した読み出し命令に含まれる論理アドレスが無効である場合に、各論理アドレスに対して確定的なデータを指定する第1の関数で表されるデータをホスト装置に送信する制御部とを有する第2の記憶部と、
が接続可能なホスト装置の制御方法であって、
前記第1の記憶部の第1の論理アドレス領域からデータを読み出す第1の工程と、
前記第1の論理アドレス領域からの読み出しデータが前記第1の関数で表されるデータと同じであるか否かを判定する第2の工程と、
前記読み出しデータと前記第1の関数で表されるデータとが同じでない場合には、前記第2のメモリの第2の論理アドレス領域に前記読み出しデータを書き込む第3の工程と、
前記読み出しデータと前記第1の関数で表されるデータとが同じである場合には、前記第2のメモリに前記読み出しデータを書き込まずに、前記第2のメモリの前記第2の論理アドレス領域のデータを無効にするための削除通知を行う第4の工程と、
を備えることを特徴とするホスト装置の制御方法。 - 前記第1の関数で表されるデータは、前記第2の記憶部が受信する論理アドレスによらず同じデータが設定されることを特徴とする請求項8に記載のホスト装置の制御方法。
- 前記第1の関数で表されるデータは、前記第2の記憶部が受信する少なくとも2以上の異なる論理アドレスに対して異なるデータが設定されることを特徴とする請求項8に記載のホスト装置の制御方法。
- 前記第1の記憶部は不揮発性であり、前記第1の記憶部と前記第2の記憶部とは、それぞれ異なる不揮発性記憶装置に含まれることを特徴とする請求項8に記載のホスト装置の制御方法。
- 前記第1の記憶部は不揮発性であり、前記第1の記憶部と前記第2の記憶部とは、同一の不揮発性記憶装置に含まれ、
前記第1の論理アドレス領域と前記第2の論理アドレス領域が互いに重複しない論理アドレスを持つことを特徴とする請求項8に記載のホスト装置の制御方法。 - 前記第2の工程を実行する前に、前記第2の記憶部から前記第1の関数を取得することを特徴とする請求項8に記載のホスト装置の制御方法。
- リードとライトのうち少なくともリード可能な第1のメモリを有する第1の記憶部と、
リードおよびライト可能な不揮発性の第2のメモリと、論理アドレスと物理アドレスとを関連付ける管理テーブルと、受信した削除通知により指定された論理アドレスを無効にするように前記管理テーブルを書き換え、受信した読み出し命令に含まれる論理アドレスが無効である場合に、各論理アドレスに対して確定的なデータを指定する第1の関数で表されるデータをホスト装置に送信する制御部とを有する第2の記憶部と、
前記第1の記憶部と前記第2の記憶部に接続可能なホスト装置と、
を備える情報処理装置において、
前記ホスト装置は、
前記第1の記憶部の第1の論理アドレス領域からデータを読み出し、
前記第1の論理アドレス領域からの読み出しデータが前記第1の関数で表されるデータと同じであるか否かを判定し、
前記読み出しデータと前記第1の関数で表されるデータとが同じでない場合には、前記第2のメモリの第2の論理アドレス領域に前記読み出しデータを書き込み、
前記読み出しデータと前記第1の関数で表されるデータとが同じである場合には、前記第2のメモリに前記読み出しデータを書き込まずに、前記第2のメモリの前記第2の論理アドレス領域のデータを無効にするための削除通知を行う
ことを特徴とする情報処理装置。 - 前記第1の関数で表されるデータは、前記第2の記憶部が受信する論理アドレスによらず同じデータが設定されることを特徴とする請求項14に記載の情報処理装置。
- 前記第1の関数で表されるデータは、前記第2の記憶部が受信する少なくとも2以上の異なる論理アドレスに対して異なるデータが設定されることを特徴とする請求項14に記載の情報処理装置。
- 前記第1の記憶部は不揮発性であり、前記第1の記憶部と前記第2の記憶部とは、それぞれ異なる不揮発性記憶装置に含まれることを特徴とする請求項14に記載の情報処理装置。
- 前記第1の記憶部は不揮発性であり、前記第1の記憶部と前記第2の記憶部とは、同一の不揮発性記憶装置に含まれ、
前記第1の論理アドレス領域と前記第2の論理アドレス領域が互いに重複しない論理アドレスを持つことを特徴とする請求項14に記載の情報処理装置。 - 前記第1の論理アドレス領域からの読み出しデータが前記第1の関数で表されるデータと同じであるか否かを判定する前に、前記第2の記憶部から前記第1の関数を取得することを特徴とする請求項14に記載の情報処理装置。
- 前記第1の記憶部は揮発性であり、前記ホスト装置はアプリケーションプログラムを具備し、前記第1の論理アドレス領域からのデータの読み出しは、前記アプリケーションプログラムから前記第1の論理アドレス領域のデータを前記第2の記憶部に保存する命令を受信して実行されることを特徴とする請求項14に記載の情報処理装置。
- リードとライトのうち少なくともリード可能な第1のメモリを有する第1の記憶部と、
リードおよびライト可能な不揮発性の第2のメモリと、論理アドレスと物理アドレスとを関連付ける管理テーブルと、受信した削除通知により指定された論理アドレスを無効にするように前記管理テーブルを書き換え、受信した読み出し命令に含まれる論理アドレスが無効である場合に、各論理アドレスに対して確定的なデータを指定する第1の関数で表されるデータをホスト装置に送信する制御部とを有する第2の記憶部と、
が接続可能なホスト装置であって、
前記第1の記憶部の第1の論理アドレス領域からデータを読み出し、
前記第1の論理アドレス領域からの読み出しデータが前記第1の関数で表されるデータと同じであるか否かを判定し、
前記読み出しデータと前記第1の関数で表されるデータとが同じでない場合には、前記第2のメモリの第2の論理アドレス領域に前記読み出しデータを書き込み、
前記読み出しデータと前記第1の関数で表されるデータとが同じである場合には、前記第2のメモリに前記読み出しデータを書き込まずに、前記第2のメモリの前記第2の論理アドレス領域のデータを無効にするための削除通知を行う
ことを特徴とするホスト装置。 - 前記第1の関数で表されるデータは、前記第2の記憶部が受信する論理アドレスによらず同じデータが設定されることを特徴とする請求項21に記載のホスト装置。
- 前記第1の関数で表されるデータは、前記第2の記憶部が受信する少なくとも2以上の異なる論理アドレスに対して異なるデータが設定されることを特徴とする請求項21に記載のホスト装置。
- 前記第1の記憶部は不揮発性であり、前記第1の記憶部と前記第2の記憶部とは、それぞれ異なる不揮発性記憶装置に含まれることを特徴とする請求項21に記載のホスト装置。
- 前記第1の記憶部は不揮発性であり、前記第1の記憶部と前記第2の記憶部とは、同一の不揮発性記憶装置に含まれ、
前記第1の論理アドレス領域と前記第2の論理アドレス領域が互いに重複しない論理アドレスを持つことを特徴とする請求項21に記載のホスト装置。 - 前記第1の論理アドレス領域からの読み出しデータが前記第1の関数で表されるデータと同じであるか否かを判定する前に、前記第2の記憶部から前記第1の関数を取得することを特徴とする請求項21に記載のホスト装置。
- 前記第1の記憶部は揮発性であり、前記ホスト装置はアプリケーションプログラムを具備し、前記第1の論理アドレス領域からのデータの読み出しは、前記アプリケーションプログラムから前記第1の論理アドレス領域のデータを前記第2の記憶部に保存する命令を受信して実行されることを特徴とする請求項21に記載のホスト装置。
Priority Applications (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013020765A JP5586718B2 (ja) | 2012-06-19 | 2013-02-05 | 制御プログラム、ホスト装置の制御方法、情報処理装置およびホスト装置 |
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 |
KR1020147033999A KR20150013235A (ko) | 2012-06-19 | 2013-03-25 | 제어 프로그램을 저장한 저장 매체, 정보 처리 장치의 제어 방법, 정보 처리 시스템, 및 정보 처리 장치 |
US14/408,220 US9501230B2 (en) | 2012-06-19 | 2013-03-25 | Storage medium storing control program, method of controlling information processing device, information processing system, and information processing device |
EP13719185.4A EP2862050B1 (en) | 2012-06-19 | 2013-03-25 | Storage medium storing control program, method of controlling information processing device, information processing system, and information processing device |
PCT/JP2013/059792 WO2013190878A1 (en) | 2012-06-19 | 2013-03-25 | Storage medium storing control program, method of controlling information processing device, information processing system, and information processing device |
CN201380032155.7A CN104412218B (zh) | 2012-06-19 | 2013-03-25 | 存储控制程序的存储介质、控制信息处理设备的方法、信息处理系统,以及信息处理设备 |
US15/285,993 US9880766B2 (en) | 2012-06-19 | 2016-10-05 | Storage medium storing control program, method of controlling information processing device, information processing system, and information processing device |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012137765 | 2012-06-19 | ||
JP2012137765 | 2012-06-19 | ||
JP2013020765A JP5586718B2 (ja) | 2012-06-19 | 2013-02-05 | 制御プログラム、ホスト装置の制御方法、情報処理装置およびホスト装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014146971A Division JP5802804B2 (ja) | 2012-06-19 | 2014-07-17 | 制御プログラム、ホスト装置の制御方法、情報処理装置およびホスト装置 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2014026635A JP2014026635A (ja) | 2014-02-06 |
JP2014026635A5 JP2014026635A5 (ja) | 2014-05-01 |
JP5586718B2 true JP5586718B2 (ja) | 2014-09-10 |
Family
ID=48191017
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013020765A Expired - Fee Related JP5586718B2 (ja) | 2012-06-19 | 2013-02-05 | 制御プログラム、ホスト装置の制御方法、情報処理装置およびホスト装置 |
Country Status (7)
Country | Link |
---|---|
US (2) | US9501230B2 (ja) |
EP (1) | EP2862050B1 (ja) |
JP (1) | JP5586718B2 (ja) |
KR (1) | KR20150013235A (ja) |
CN (1) | CN104412218B (ja) |
TW (2) | TWI516920B (ja) |
WO (1) | WO2013190878A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9304685B2 (en) | 2013-09-10 | 2016-04-05 | Kabushiki Kaisha Toshiba | Storage array system and non-transitory recording medium storing control program |
Families Citing this family (46)
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 |
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 |
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 |
WO2016194199A1 (ja) * | 2015-06-04 | 2016-12-08 | 株式会社日立製作所 | ストレージ装置 |
EP3113026B1 (en) * | 2015-06-29 | 2019-07-24 | aicas GmbH | Automatic memory management using a memory management unit |
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 |
TWI587211B (zh) * | 2016-03-28 | 2017-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 | キオクシア株式会社 | 情報処理装置、ストレージデバイスおよび情報処理システム |
CN113628240A (zh) | 2017-04-21 | 2021-11-09 | 泽尼马克斯媒体公司 | 通过预期运动矢量的玩家输入运动补偿 |
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 |
US10108538B1 (en) | 2017-07-31 | 2018-10-23 | Google Llc | Accessing prologue and epilogue data |
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 | 深圳大心电子科技有限公司 | 数据备份方法、数据恢复方法以及存储控制器 |
JP7279889B2 (ja) * | 2017-11-07 | 2023-05-23 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | メモリブロックリクレーム方法およびメモリブロックリクレーム装置 |
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 | 三菱重工業株式会社 | 管理装置、管理方法およびプログラム。 |
CN108563401B (zh) * | 2018-03-27 | 2021-05-28 | 深圳忆联信息系统有限公司 | 一种ssd性能加速方法 |
JP6901427B2 (ja) * | 2018-03-27 | 2021-07-14 | キオクシア株式会社 | ストレージ装置、コンピュータシステムおよびストレージ装置の動作方法 |
KR102649131B1 (ko) | 2018-08-14 | 2024-03-19 | 에스케이하이닉스 주식회사 | 메모리 시스템 내 대용량 데이터 저장이 가능한 블록에서의 유효 데이터 체크 방법 및 장치 |
KR20200087487A (ko) | 2019-01-11 | 2020-07-21 | 에스케이하이닉스 주식회사 | 메모리 시스템에서의 유효 데이터 체크 방법 및 장치 |
KR20200140560A (ko) * | 2019-06-07 | 2020-12-16 | 삼성전자주식회사 | 전자 장치 및 그 시스템 |
US11221776B2 (en) * | 2019-12-30 | 2022-01-11 | Micron Technology, Inc. | Metadata indication for a memory device |
CN112363670B (zh) * | 2020-10-14 | 2023-02-03 | 天津津航计算技术研究所 | 一种sata ncq命令调度方法 |
JP2022145329A (ja) * | 2021-03-19 | 2022-10-04 | 株式会社Kokusai Electric | 管理装置、データ処理方法、プログラム、半導体装置の製造方法および処理システム |
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 | 眞澄 鈴木 | フラッシュメモリを用いた記憶装置 |
EP3361371A1 (en) * | 2008-11-07 | 2018-08-15 | Dell International L.L.C. | Thin import for a data storage system |
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 | メモリシステムの制御方法、情報処理装置、及びプログラム |
CN103890724B (zh) | 2011-08-19 | 2017-04-19 | 株式会社东芝 | 信息处理设备、用于控制信息处理设备的方法、主机装置、以及用于外部存储装置的性能评估方法 |
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 US US14/408,220 patent/US9501230B2/en active Active
- 2013-03-25 KR KR1020147033999A patent/KR20150013235A/ko not_active Application Discontinuation
- 2013-03-25 EP EP13719185.4A patent/EP2862050B1/en active Active
- 2013-03-25 CN CN201380032155.7A patent/CN104412218B/zh active Active
- 2013-03-25 WO PCT/JP2013/059792 patent/WO2013190878A1/en active Application Filing
-
2016
- 2016-10-05 US US15/285,993 patent/US9880766B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9304685B2 (en) | 2013-09-10 | 2016-04-05 | Kabushiki Kaisha Toshiba | Storage array system and non-transitory recording medium storing control program |
Also Published As
Publication number | Publication date |
---|---|
WO2013190878A1 (en) | 2013-12-27 |
JP2014026635A (ja) | 2014-02-06 |
EP2862050A1 (en) | 2015-04-22 |
US20170024156A1 (en) | 2017-01-26 |
TWI556101B (zh) | 2016-11-01 |
TW201401047A (zh) | 2014-01-01 |
US9880766B2 (en) | 2018-01-30 |
TWI516920B (zh) | 2016-01-11 |
CN104412218A (zh) | 2015-03-11 |
KR20150013235A (ko) | 2015-02-04 |
TW201604688A (zh) | 2016-02-01 |
US9501230B2 (en) | 2016-11-22 |
EP2862050B1 (en) | 2019-10-16 |
US20150143032A1 (en) | 2015-05-21 |
CN104412218B (zh) | 2017-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5586718B2 (ja) | 制御プログラム、ホスト装置の制御方法、情報処理装置およびホスト装置 | |
JP5989875B2 (ja) | 制御プログラム、ホスト装置の制御方法、情報処理装置およびホスト装置 | |
JP5314772B2 (ja) | 性能の異なる実領域群で構成されたプールを有するストレージシステムの管理システム及び方法 | |
US9176881B2 (en) | Computer system and storage control method | |
US10509739B1 (en) | Optimized read IO for mix read/write scenario by chunking write IOs | |
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 | |
KR102406666B1 (ko) | 스냅샷 기능을 지원하는 키-밸류 스토리지 장치 및 상기 키-밸류 스토리지 장치의 동작 방법 | |
US10719245B1 (en) | Transactional IO scheduler for storage systems with multiple storage devices | |
US8954666B2 (en) | Storage subsystem | |
US10733105B1 (en) | Method for pipelined read optimization to improve performance of reading data from data cache and storage units | |
US10489301B1 (en) | Method and system for metadata churn absorption | |
US10908818B1 (en) | Accessing deduplicated data from write-evict units in solid-state memory cache | |
JP2017211920A (ja) | ストレージ制御装置、ストレージシステム、ストレージ制御方法およびストレージ制御プログラム | |
CN118051179A (zh) | 用于使用多个分区的分区命名空间存储的技术 | |
US10592123B1 (en) | Policy driven IO scheduler to improve write IO performance in hybrid storage systems | |
US10565120B1 (en) | Method for efficient write path cache load to improve storage efficiency | |
US10585802B1 (en) | Method and system for caching directories in a storage system | |
US10474588B1 (en) | Method and system for memory-based data caching | |
US10599340B1 (en) | Policy driven IO scheduler to improve read IO performance in hybrid storage systems | |
US10664442B1 (en) | Method and system for data consistency verification in a storage system | |
US10346054B1 (en) | Policy driven IO scheduler resilient to storage subsystem performance | |
US11537597B1 (en) | Method and system for streaming data from portable storage devices | |
US20210263648A1 (en) | Method for managing performance of logical disk and storage array | |
WO2018109818A1 (ja) | データの格納を制御する計算機システム及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140303 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140303 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20140303 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20140515 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20140624 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140722 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5586718 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |