JP2015228235A - 格納デバイスの仮想化 - Google Patents

格納デバイスの仮想化 Download PDF

Info

Publication number
JP2015228235A
JP2015228235A JP2015143318A JP2015143318A JP2015228235A JP 2015228235 A JP2015228235 A JP 2015228235A JP 2015143318 A JP2015143318 A JP 2015143318A JP 2015143318 A JP2015143318 A JP 2015143318A JP 2015228235 A JP2015228235 A JP 2015228235A
Authority
JP
Japan
Prior art keywords
drive
file
logical
address
solid state
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.)
Granted
Application number
JP2015143318A
Other languages
English (en)
Other versions
JP6253614B2 (ja
Inventor
チャン、シン−イ
Hsing-Yi Chiang
カン、シンハイ
Xinhai Kang
ザオ、クン
Qun Zhao
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Marvell World Trade Ltd
Original Assignee
Marvell World Trade Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Marvell World Trade Ltd filed Critical Marvell World Trade Ltd
Publication of JP2015228235A publication Critical patent/JP2015228235A/ja
Application granted granted Critical
Publication of JP6253614B2 publication Critical patent/JP6253614B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Abstract

【課題】仮想ドライブ格納技術を提供する。【解決手段】固体ドライブ(SSD)120及びディスクドライブ130等の複数のドライブを操作することを含み、SSD及びディスクドライブは、論理アドレス空間を有する単一の論理ドライブとして仮想化される。論理ドライブは、SSD及びディスクドライブに論理ブロックアドレス105をマップする。論理ドライブに書き込まれるべきファイルに基づいて、SSD及びディスクドライブの一方に対応するターゲット論理アドレスを決定すること及びターゲット論理アドレスの論理ドライブにファイルを書き込み、SSD及びディスクドライブ上の格納を実行することを含む。【選択図】図1

Description

[関連出願] 本開示は、2009年12月4日に出願された"Hyper SSD"と題する米国特許仮出願第61/266,924号からの優先権を主張し、上記の出願の開示内容全体を参照により本明細書に組み込む。
本願の開示は格納技術に関する。
コンピュータシステムのようなデータ処理システムは、1つ以上の格納デバイスを用いて情報を格納し、また、引き出すことができる。格納デバイスの様々な例としては、固体ドライブ(SSD)、テープドライブ、および、ハードディスクドライブ(HDD)や光学式ドライブ等のディスクドライブが含まれる。SSDには、フラッシュメモリのような不揮発性メモリが含まれる。格納デバイスは、オペレーティングシステムファイルやアプリケーションファイル等のファイルを格納することができる。SSDはHDDよりも低いレイテンシを提供し、HDDはSSDよりも大きな格納容量を提供してよい。
本開示は、特に仮想ドライブを含む格納技術に関するシステムおよび技術を含む。
記載されるシステムおよび技術の1つの側面によれば、格納技術とともに使用される方法は、固体ドライブ(SSD)およびディスクドライブを含む複数のドライブを操作することを含む。SSDおよびディスクドライブは、論理アドレス空間を有する単一の論理ドライブとして仮想化され、論理ドライブは、SSDおよびディスクドライブに論理ブロックアドレスをマップする。本技術は、論理ドライブに書き込まれるべきファイルに基づいて、SSDおよびディスクドライブの一方に対応するターゲット論理アドレスを決定すること、および、ターゲット論理アドレスの論理ドライブにファイルを書き込み、SSDおよびディスクドライブの一方における格納を実行することを含む。いくつかの実施形態において複数のドライブを操作することは、SSDおよびテープドライブ等の大容量格納デバイスを操作することを含む。いくつかの実施形態において複数のドライブを操作することは、第2のドライブよりも高速であり、容量の小さい第1のドライブを操作することを含む。ターゲット論理アドレスを決定することは、ファイルの特性を使用してターゲット論理アドレスを選択することを含んでよい。ターゲット論理アドレスを決定することは、第1アドレス領域および第2アドレス領域の一方を選択することを含んでよい。
記載されるシステムおよび技術の別の側面によれば、格納技術とともに使用される方法は、SSDおよびディスクドライブを含む複数のドライブを操作すること、SSDおよびディスクドライブを仮想化して、論理アドレス空間を有する単一の論理ドライブとすること、論理ドライブに書き込まれるべきファイルの特性に基づいて、SSDおよびディスクドライブの一方に対応するターゲット論理アドレスを選択すること、および、ターゲット論理アドレスの論理ドライブにファイルを書き込み、SSDおよびディスクドライブの一方における格納を実行することを含む。論理ドライブは、SSDおよびディスクドライブに論理ブロックアドレスをマップする。この方法は、SSDおよびディスクドライブを仮想化して、0からLまでの論理アドレス空間を有する単一の論理ドライブとすることができる。ここで、Lは0よりも大きい。仮想化することは、論理アドレス空間における第1アドレス領域の論理ブロックアドレスをSSDにマップし、論理アドレス空間における第1アドレス領域と異なる第2アドレス領域の論理ブロックアドレスをディスクドライブにマップすることを含んでよい。
実施形態には、論理ドライブに関連付けられたファイルの使用量情報を監視することが含まれる。いくつかの実施形態においては、ファイルの特性は、相対的な使用頻度等の使用量情報に基づくものである。ターゲット論理アドレスを選択することは、使用量情報を用いてSSDおよびディスクドライブの一方を選択することを含んでよい。いくつかの場合には、ファイルはディスクドライブに予め格納されている。ターゲット論理アドレスを選択することは、SSDに対応するターゲット論理アドレスを選択することを含んでよい。論理ドライブにファイルを書き込むことは、ディスクドライブからSSDにファイルを移動し、ファイルの読み出しアクセスレイテンシを下げることを含んでよい。いくつかの場合には、ファイルはSSDに既に格納されている。論理ドライブにファイルを書き込むことは、対応する使用量情報に基づいて、SSDに格納されたファイルをディスクドライブに移動し、SSD上の利用可能な空間を増大させることを含んでよい。実施形態には、論理ドライブに関連付けられたファイルの使用量情報を監視することが含まれる。ターゲット論理アドレスを決定することは、使用量情報を用いてSSDおよびディスクドライブの一方を選択することを含んでよい。
実施形態には、論理ドライブに関連付けられたファイルのタイプを識別することが含まれる。ファイルの特性は、ファイルのタイプを含んでよい。ターゲット論理アドレスを選択することは、ファイルタイプのレイテンシ要件に基づいて、SSDに対応するターゲット論理アドレスを選択することを含んでよい。論理ドライブにファイルを書き込むことは、SSDにファイルを書き込むことを含んでよい。
SSDおよびディスクドライブを仮想化することは、0からKまでの第1アドレス領域の論理ブロックアドレスをSSDにマップし、K+1からLまでの第2アドレス領域の論理ブロックアドレスをディスクドライブにマップすることを含んでよい。ここで、LはKよりも大きく、Kは0よりも大きい。論理ドライブにファイルを書き込むことは、ターゲット論理アドレスに基づいて、SSDおよびディスクドライブの一方をコントローラに選択させ、選択されたドライブにファイルを書き込ませることを含んでよい。
記載されるシステムおよび技術は、本明細書に開示される構造的な手段およびそれらの構造的等価物のような、電子回路、コンピュータハードウェア、ファームウェア、ソフトウェア、あるいはそれらの組み合わせによって実施することができる。これは、少なくとも1つのコンピュータ読み取り可能な媒体を含んでよく、1つ以上のデータ処理装置(例えば、プログラマブルプロセッサを含む信号処理デバイス)に対し、記載されるオペレーションを実行させるように動作するプログラムを実現させる。従って、プログラムの実施は、開示される方法、システム、又は装置により実現され、装置の実施は、開示されるシステム、コンピュータ読み取り可能な媒体、又は方法によって実現される。同様に、方法の実施は、開示されるシステム、コンピュータ読み取り可能な媒体、又は装置により実現され、システムの実施は、開示される方法、コンピュータ読み取り可能な媒体、又は装置によって実現される。
例えば、開示される1つ以上の実施例は、これらに限定されるものではないが、特定用途向データ処理装置(例えば、ワイヤレスアクセスポイント等のワイヤレス通信デバイス、リモート環境モニタ、ルータ、スイッチ、コンピュータシステム部品、媒体アクセスユニット)、移動型データ処理装置(例えばワイヤレスクライアント、携帯電話、スマートフォン、携帯情報端末(PDA)、モバイルコンピュータ、デジタルカメラ)、コンピュータのような一般用途向データ処理装置、またはこれらの組み合わせを含む、様々なシステム及び装置として実施されてよい。
システムおよび装置は、SSDと通信する第1インターフェイス、ディスクドライブと通信する第2インターフェイス、および、ドライブと通信し、0からLまでの論理アドレス空間における論理ブロックアドレスをマップするプロセッサ電子部品を含んでよい。ここで、Lは0よりも大きい。SSDおよびディスクドライブは、単一の論理ドライブとして仮想化される。いくつかの実施形態においてプロセッサ電子部品は、論理アドレス空間における第1アドレス領域の論理ブロックアドレスをSSDにマップし、論理アドレス空間における第1アドレス領域と異なる第2アドレス領域の論理ブロックアドレスをディスクドライブにマップする。いくつかの実施形態においてプロセッサ電子部品は、論理ドライブに書き込まれるべきファイルに基づいて、SSDおよびディスクドライブの一方に対応するターゲット論理アドレスを決定すること、および、ターゲット論理アドレスの論理ドライブにファイルを書き込み、SSDおよびディスクドライブの一方における格納を実行することを含んだオペレーションを実行するように構成される。
これらの、およびその他の実施形態は、以下の特徴の1つ以上を含むことができる。ターゲット論理アドレスを決定することは、ファイルの特性を使用してターゲット論理アドレスを選択することを含んでよい。オペレーションは、論理ドライブに関連付けられたファイルの使用量情報を監視することを含んでよい。いくつかの実施形態においては、ファイルの特性は使用量情報に基づくものである。ターゲット論理アドレスを選択することは、使用量情報を用いてSSDおよびディスクドライブの一方を選択することを含んでよい。いくつかの場合、ファイルは既にディスクドライブに格納されている。ターゲット論理アドレスを選択することは、SSDに対応するターゲット論理アドレスを選択することを含んでよい。論理ドライブにファイルを書き込むことは、ディスクドライブからSSDへファイルを移動し、ファイルの読み出しアクセスレイテンシを下げることを含んでよい。いくつかの場合、ファイルは既にSSDに格納されている。論理ドライブにファイルを書き込むことは、対応する使用量情報に基づいて、SSDに格納されているファイルをディスクドライブに移動し、SSD上の利用可能な空間を増大させることを含んでよい。
実施形態には、論理ドライブに関連付けられたファイルのタイプを識別する動作が含まれる。ファイルの特性としてタイプを含んでよい。ターゲット論理アドレスを選択することは、ファイルタイプのレイテンシ要件に基づいて、SSDに対応するターゲット論理アドレスを選択することを含んでよい。論理ドライブにファイルを書き込むことは、SSDにファイルを書き込むことを含んでよい。
いくつかの実施形態においては、SSDは複数のエクステントに分割される。仮想化することは、複数のエクステントの1つのエクステントとディスクドライブとを仮想化して単一の論理ドライブとすることを含んでよい。いくつかの実施形態においては、第1アドレス領域は0からKまでのアドレスを含み、第2アドレス領域はK+1からLまでのアドレスを含む。ここで、LはKよりも大きく、Kは0よりも大きい。
別の側面によれば、システムおよび装置は、SSD、ディスクドライブ、および、ドライブと通信し、0からLまでの論理アドレス空間における論理ブロックアドレスをマップするプロセッサ電子部品を含んでよい。いくつかの実施形態においてプロセッサ電子部品は、第1アドレス領域の論理ブロックアドレスをSSDにマップし、異なる第2アドレス領域の論理ブロックアドレスをディスクドライブにマップする。いくつかの実施形態においては、第1アドレス領域は0からKまでのアドレスを含み、第2アドレス領域はK+1からLまでのアドレスを含む。ここで、LはKよりも大きく、Kは0よりも大きい。ターゲット論理アドレスを決定することは、第1アドレス領域および第2アドレス領域の一方を選択することを含んでよい。
1つ以上の実施例の詳細を、添付する図面及び以下の記載において説明する。その他の特徴および利点は、この記載、図面、及び特許請求の範囲から明らかになるであろう。
2つの物理ドライブに関連付けられた1つの仮想ドライブに対するマッピング技術の例を示す。
SSDおよびHDDを含むシステム構成の例を示す。
SSDおよびHDDを含むシステム構成の別の例を示す。
2つのコントローラ、SSD、およびHDDを含むシステム構成の例を示す。
2つのHDDおよび複数に分割されたSSDを含むシステム構成の例を示す。
オペレーティングシステム格納スタック構成の例を示す。
仮想ドライブ格納プロセスの例を示す。
仮想ドライブ格納プロセスの別の例を示す。
ファイル使用量情報を監視することを含んだ仮想ドライブ格納プロセスの例を示す。
ファイル使用量情報を監視することを含んだ仮想ドライブ格納プロセスの別の例を示す。
ファイルタイブの識別を含む仮想ドライブ格納プロセスの別の例を示す。
様々な図面中の参照符号は構成要素を示す。
本開示は、仮想ドライブ格納技術の詳細および例を提供する。記載されるシステムおよび技術は、ディスクドライブやSSD等の物理格納デバイスを仮想化して仮想ドライブとする機構を含む。記載されるシステムおよび技術は、仮想ドライブの物理ドライブ間でファイルを移動し、仮想ドライブの性能を最適化する機構を含む。タイプの異なる複数の物理ドライブを使用することにより、アクセス性能の増大や格納量の増大といった利点をもたらすことができる。
図1は、2つの物理ドライブに関連付けられた1つの仮想ドライブに対するマッピング技術の例を示す。論理ドライブは、SSD120およびディスクドライブ130等、2つ以上の物理ドライブと関連付けられてよい。マッピング技術100は、仮想ドライブの論理ブロックアドレス(LBA)のような論理アドレス110を、仮想ドライブの物理ドライブ120、130の一方に入力するのに適した論理アドレスにマップする。この例においては、LBA空間105が、第1および第2アドレス領域115、125に分割される。第1領域115は0からKまでのアドレスを含む。第2領域125はK+1からLまでのアドレスを含む。ここで、LはKよりも大きく、Kは0よりも大きい。第1マッピングは、第1領域115中のLBAを、必要に応じてSSD120に適したLBAに変換する。第2マッピングは、第2領域125中のLBAを、ディスクドライブ130に適したLBAに変換する。ここで、K+1からLまでのLBAは、それぞれアドレス0からL−Kにマップされる。アドレスL−Kは、ディスクドライブ130の最大論理アドレス値である。
マッピング技術100は、マッピングに基づいて、論理ブロックアドレス110を複数のアドレス領域の1つにマップする。アドレス領域は、物理ドライブ120、130にそれぞれ関連付けられる。マッピング技術100は、2つの物理ドライブに限定されるものではなく、仮想ドライブに関連付けられた3つ以上の物理ドライブ、あるいはそれらの複数のパーティションに適用することができる。上述した、SSDおよびディスクドライブを含む仮想ドライブの様々な潜在的利点には、高速な起動時間、高速な読み出しおよび書き込み性能、並びに、格納容量の増大が含まれる。
図2は、SSDおよびHDDを含むシステム構成の例を示す。プロセッサ205は、コントローラ210を使用して、単一の論理ドライブに仮想化された2つの物理ドライブ215、220と通信する。物理ドライブ215、220の様々な例としては、SSD215およびHDD220が含まれる。いくつかの実施形態においては、SSD215はNANDフラッシュメモリを含む。いくつかの実施形態においては、SSD215はNORフラッシュメモリを含む。いくつかの実施形態においてSSD215は、バッテリバックアップを有するダブルデータレート(DDR)メモリを含む。
プロセッサ205とコントローラ210との間の物理インターフェイスの様々な例としては、ペリフェラルコンポーネントインターコネクト(PCI)、PCIエクスプレス(PCIe)、シリアルエーティーエー(Serial Advanced Technology Attachment:SATA)、スモールコンピュータシステムインターフェイス(SCSI)、シリアル接続SCSI(SAS)、ユニバーサルシリアルバス(USB)、および、マルチメディアカード(MMC)等のメモリカード用インターフェイスが含まれる。ホストソフトウェア通信プロトコルの様々な例としては、アドバンストホストコントローラインターフェイス(AHCI)、不揮発性メモリホストコントローラインターフェイス(NVMHCI)、インテグレーテッドドライブエレクトロニクス(IDE)、および、インテリジェント入出力(I2O)が含まれる。
いくつかの実施例においてプロセッサ205は、マッピング技術100を用いて、論理ドライブにデータを格納するための物理ドライブ215、220の選択を制御する。例えば、プロセッサ205で実行される仮想化プロセスは、物理ドライブ215、220の仮想化を維持することができる。プロセッサ205上で実行されるアプリケーションは、特定のLBAに書き込むことができる。仮想化プロセスは、LBAを、変換された論理アドレスに変換することができる。仮想化プロセスは、変換された論理アドレスと、ターゲットの物理ドライブ215、220を識別するものとを有する書き込みコマンドを、コントローラ210に対して発行することができる。プロセッサ205は、論理ドライブにファイルを書き込むことができる。いくつかの場合においては、論理ドライブにファイルを書き込むことは、移動操作によって、異なる論理アドレスの論理ドライブにファイルを書き直すことを含む。いくつかの実施形態においてプロセッサ205は、物理ドライブ215、220の一方からファイルを読み出し、他方のドライブにファイルを書き込むことを含んだ移動操作を実行する。いくつかの実施形態において移動操作は、1つ以上のファイルを物理ドライブ215、220の間で移動させるようにコントローラ210を操作することを含む。
いくつかの実施形態においてコントローラ210は、プロセッサ205からの書き込みコマンドを処理する場合に、マッピング技術100を用いて物理ドライブ215、220の選択を制御する。例えば、コントローラ210は、物理ドライブ215、220の仮想化を維持することができる。コントローラ210は、プロセッサ205上で実行されるアプリケーションによって生成された書き込みコマンドを受信することができる。書き込みコマンドは、LBAおよび書き込みデータを含んでよい。コントローラ210は、書き込みコマンドに含まれるLBAに基づいて物理ドライブ215、220を選択する。
図3は、SSDおよびHDDを含むシステム構成の別の例を示す。データ処理システムは、コントローラ305のようなプロセッサ電子部品を含んでよい。コントローラ305は、1つ以上のプロセッサ310、メモリ315、および、SSD330やHDD335等の対応する物理ドライブとの通信用インターフェイス320、325を含む。物理ドライブとの通信用インターフェイス320、325は、アドレス信号、データ信号、またはその両者を生成するための回路を含むことができる。いくつかの実施形態においてコントローラ305は、プロセッサ310、メモリ315、およびインターフェイス320、325を実現するための集積回路を含む。
図4は、2つのコントローラ、SSD、およびHDDを含むシステム構成の例を示す。データ処理システムは、1つ以上のプロセッサ405および1つ以上のコントローラ410、420等のプロセッサ電子部品を含んでよい。プロセッサ405は、それぞれがSSD430およびHDD440のような2つ以上の物理ドライブを制御する2つ以上のコントローラ410、420と通信することができる。プロセッサ405は、仮想化プロセスを実行して、SSD430およびHDD440から仮想ドライブを生成することができる。
図5は、2つのHDDおよび複数に分割されたSSDを含むシステム構成の例を示す。コントローラ510は、SSD530を2つ以上のパーティション540、545に分割することができる。パーティションはエクステントとみなすことができる。コントローラ510は、SSD530の第1パーティション540と第1HDD520とをグループ化して第1仮想ドライブを形成することができる。コントローラ510は、SSD530の第2パーティション545と第2HDD525とをグループ化して第2仮想ドライブを形成することができる。ホストシステム505は、コントローラ510を介して、第1または第2仮想ドライブのどちらかと通信することができる。ホストシステム505は、1つ以上のプロセッサを含んでよい。いくつかの実施形態においては、ホストシステム505がコントローラ510を含む。ホストシステム505は、仮想ドライブまたは物理ドライブ等のドライブに格納されたファイルシステムへのアクセスを提供するオペレーティングシステム(OS)を実行することができる。OSは、物理ドライブを仮想化するドライバを読み込むことができる。いくつかの実施形態においてOSは、仮想ドライブとして構成された物理ドライブと通信することのできるドライバを読み込む。
図6は、オペレーティングシステム格納スタック構成の例を示す。オペレーティングシステム格納スタック構成は、OSファイルシステムドライバ600、1つ以上のOS格納スタックドライバ605、OSディスククラスドライバ610、およびディスクフィルタドライバ615を含むことができる。OSファイルシステムドライバ600は、オペレーティングシステムおよび様々なアプリケーションに、ファイルシステム機能を提供することができる。
ディスクフィルタドライバ615は、複数の異なる物理ドライブに関連付けられた複数のドライバと通信することができる。ディスクフィルタドライバ615は、HDD625等の物理ドライブに関連付けられた格納コントローラドライバ620と通信することができる。ディスクフィルタドライバ615は、SSD645等の物理ドライブに関連付けられた別のコントローラドライバ640と通信することができる。例えば、ディスクフィルタドライバ615は、SSD645中のフラッシュメモリと相互作用するように動作可能なフラッシュコントローラドライバ640と通信することができる。
いくつかの実施形態においては、ブリッジドライバ630が、ディスクフィルタドライバ615およびフラッシュコントローラドライバ640と通信するように結合される。いくつかの実施形態においてブリッジドライバ630は、ディスクフィルタドライバ615とフラッシュコントローラドライバ640との間でコマンドを変換するように動作することができる。
いくつかの実施形態においてディスクフィルタドライバ615は、仮想ドライブを生成する機能を含む。いくつかの実施形態においてディスクフィルタドライバ615は、2つ以上のドライブを1つの仮想ドライブに結合するコントローラを認識している。いくつかの実施形態においては、OSファイルシステムドライバ600のような1つ以上のドライバは、仮想ドライブを認識せず、そのようなドライブを物理ドライブとして扱う。
図7は、仮想ドライブ格納プロセスの例を示す。コントローラ、ホストシステム、またはそれらの組み合わせによって、仮想ドライブ格納プロセスを実行することができる。705において、SSDおよびHDDを含むドライブをプロセスが操作する。いくつかの実施形態においては、ドライブを操作することは、SSDおよびHDDと通信状態にあるコントローラと通信することを含む。いくつかの実施形態においては、ドライブを操作することは、それぞれがSSDおよびHDDと通信状態にある2つ以上のコントローラと通信することを含む。いくつかの実施形態においては、ドライブを操作することは、コントローラによって、あるいはコントローラを必要とせずに、SSDおよびHDDと通信することを含む。
710においてプロセスは、SSDおよびHDDを仮想化して、0からLまでの論理アドレス空間を有する単一の論理ドライブとする。いくつかの実施形態においてプロセスは、SSDおよびHDDが、オペレーティングシステムにとって単一のドライブとして見えるようにする。いくつかの実施形態においては、コントローラが物理ドライブを仮想化する。コントローラおよびホストシステムが電源投入されるたびに仮想化を行ってよい。いくつかの実施形態においては、電源が投入された後の初期化プロセスの間に、仮想ドライブに対する物理ドライブのマッピングを特定するコンフィグレーションファイルにアクセスすることが仮想化に含まれる。
720においてプロセスは、論理ドライブに書き込まれるべきファイルに基づいて、SSDおよびHDDの一方に対応するターゲット論理アドレスを決定する。ターゲット論理アドレスを決定することは、ファイルの特性に基づいて、論理ドライブの論理アドレス空間内においてターゲット論理アドレスを選択することを含んでよい。例えば、オペレーティングシステムは、論理ドライブにファイルを書き込むことができる。プロセスは、ファイルタイプあるいはファイル使用量といったファイルの特性を特定することができる。プロセスは、タイプに基づいて、ファイルがSSDに書き込まれるようにターゲット論理アドレスを選択することができる。あるいは、プロセスは、ファイルがHDDに書き込まれるように、異なるターゲット論理アドレスを選択する。いくつかの実施形態においては、ターゲット論理アドレスは論理ブロックアドレスを含む。いくつかの実施形態においては、ターゲット論理アドレスを決定することは、論理ドライブの論理アドレス空間内における論理アドレスを、SSDおよびHDDの一方の論理アドレス空間内における論理アドレスに変換することを含んでよい。
730においてプロセスは、ターゲット論理アドレスの論理ドライブにファイルを書き込み、SSDおよびHDDの一方における格納を実行する。いくつかの場合、730においてファイルを書き込むことは、SSDからHDDへ、またはHDDからSSDへファイルを移動することを含んでよい。いくつかの実施形態においては、ターゲット論理アドレスは、SSDおよびHDDの一方の論理アドレス空間に基づいている。いくつかの実施形態においては、ターゲット論理アドレスは、仮想ドライブの論理アドレス空間に基づいている。
いくつかの実施形態においては、オペレーティングシステムのファイルシステムドライバは、ターゲット論理アドレスの外部選択を許可しない。そのような実施形態においてプロセスは、オペレーティングシステムが選択したターゲット論理アドレスにオペレーティングシステムが書き込むことを許可できる。オペレーティングシステムによる初期書き込みの後、720においてプロセスは、ファイルの特性に基づいて異なるターゲット論理アドレスを選択することができる。例えば、初期のターゲット論理アドレスがHDDに対応する場合、プロセスは、SSDに対応するターゲット論理アドレスを選択することができる。730においてプロセスは、ファイルを論理ドライブに書き込み、新たなターゲット論理アドレスにファイルを移動する。オペレーティングシステムは、低いアドレス値から高いアドレス値へと論理アドレス、例えば論理ブロックアドレスを指定してよい。従って、空間が許す範囲においてファイルの初期位置がSSD上にあるように、仮想ドライブのSSDを、仮想ドライブのHDDよりも低いアドレス領域にマップすることが有利である。SSD上の空間を管理するために、プロセスは、使用頻度の低いファイルをSSDからHDDへ移動させることができる。
いくつかの実施形態においては、オペレーティングシステムが、既にドライブに書き込まれているファイルを移動するためのアプリケーションプログラミングインターフェイス(API)を提供する。例えば、格納プロセスは、ドライブへの初期書き込み後に、そのようなAPIを使用してファイルを移動することができる。いくつかの実施形態においてオペレーションシステムは、ドライブへのファイルの初期書き込み用ターゲット論理アドレスの選択を制御するためのAPIを提供することができる。
図8は、仮想ドライブ格納プロセスの別の例を示す。805において仮想ドライブ格納プロセスは、2つ以上の物理ドライブを仮想化して、0からLまでの論理アドレス空間を有する単一の論理ドライブとする。810においてプロセスは、0からKまでの第1アドレス領域の論理ブロックアドレスを第1物理ドライブにマップする。815においてプロセスは、K+1からLまでの第2アドレス領域の論理ブロックアドレスを第2物理ドライブにマップする。ここでLはKよりも大きく、Kは0よりも大きい。
820においてプロセスは、複数の物理ドライブの1つに対応するターゲット論理アドレスを選択する。プロセスは、論理ドライブに書き込まれるべきファイルの特性に基づいてターゲット論理アドレスを選択する。いくつかの実施形態においては、ターゲット論理アドレスを選択することは、物理ドライブの1つから他の物理ドライブへファイルを移動するためのターゲット論理アドレスを選択することを含む。
825においてプロセスは、ターゲット論理アドレスに基づいて、物理ドライブの1つをコントローラに選択させる。コントローラに選択させることは、ターゲット論理アドレスを含む書き込みコマンドをコントローラに送ることを含んでよい。いくつかの実施形態においてプロセスは、書き込みコマンド中にドライブ識別子を含む。例えば、コントローラは、書き込みコマンド中のドライブ識別子に基づいてドライブを選択することができる。いくつかの実施形態においては、ターゲット論理アドレスの一部分、例えばターゲット論理アドレスの最も重要なビットが、ドライブ識別子として動作する。いくつかの実施形態においてプロセスは、ターゲット論理アドレスを、ドライブに関連付けられたアドレス領域と互換性のあるアドレスに変換する。830においてプロセスは、コントローラに、選択された物理ドライブへファイルを書き込ませる。いくつかの実施形態においては、コントローラに書き込みコマンドを送ることによって、コントローラに物理ドライブの1つを選択させ、選択された物理ドライブにファイルを書き込ませる。
図9は、ファイル使用量情報を監視することを含んだ仮想ドライブ格納プロセスの例を示す。905において仮想ドライブ格納プロセスは、SSDおよびHDDに関連付けられた論理ドライブ上のファイルの使用量情報を監視する。910においてプロセスは、使用頻度等の使用量情報に基づいて、HDDからSSDへ移動するファイルを選択する。使用量情報に基づいてファイルを選択することは、ファイルの相対的な使用頻度を用いることを含んでよい。プロセスは、ファイル使用ログあるいはテーブル等のデータ構造に基づいて、論理ドライブに格納されたファイルの相対的な使用頻度を決定することができる。例えばプロセスは、他のファイルよりも使用されることの多い1つ以上のファイルを選択してSSDに移動することができる。915においてプロセスは、SSDに対応するターゲット論理アドレスを選択する。920においてプロセスは、選択されたターゲット論理アドレスに基づいて、ファイルをHDDからSSDへ移動して、ファイルの読み出しアクセスレイテンシを下げる。
図10は、ファイル使用量情報を監視することを含んだ仮想ドライブ格納プロセスの別の例を示す。1010において格納プロセスは、SSDおよびHDDに関連付けられた論理ドライブ上のファイルの使用量情報を監視する。使用量情報を監視することは、最終アクセス時刻、あるいはアクセス回数等のファイルアクセス情報を追跡するオペレーションシステムファイルにアクセスすることを含む。1015においてプロセスは、使用量情報に基づいて、SSDからHDDへ転送するファイルを選択する。ファイルを選択することは、2つ以上のファイルの使用量情報に基づいて相対的な使用頻度を決定することを含んでよい。いくつかの実施形態においてプロセスは、最終アクセス日時を閾値として使用し、まれにしか使用されないファイルを検索する。本例においては、SSDに対応するアドレス領域内のアドレスに検索が限定されてよい。
1020においてプロセスは、HDDに対応するターゲット論理アドレスを選択する。そのようなターゲット論理アドレスを選択することは、1つ以上のアドレス領域および1つ以上の物理アドレスをそれぞれ識別するマッピングテーブルの使用を含んでよい。1025においてプロセスは、選択されたターゲット論理アドレスに基づいて、SSDからHDDへとファイルを移動し、SSD上の利用可能な空間を増大させる。ファイルを移動することは、SSDからファイルを読み出し、HDDにファイルを書き込み、SSDからファイルを削除することを含んでよい。ファイルを削除することは、ファイルの消去を必要とせずに、削除されたものとしてファイルをマークすることを含んでよい。
図11は、ファイルタイブの識別を含む仮想ドライブ格納プロセスの別の例を示す。1110において格納プロセスは、SSDおよびHDDに関連付けられた論理ドライブに書き込まれるべきファイルのタイプを識別する。ファイルのタイプを識別することは、移動によって論理ドライブに書き込まれるべきファイルを識別することを含んでよい。ファイルタイプを識別することは、ファイル拡張子列といった、ファイル名の一部分にアクセスすることを含んでよい。いくつかの実施形態においてファイルタイブを識別することは、ファイルの一部分にアクセスしてファイルタイプを決定することを含んでよい。いくつかの実施形態においてファイルタイプを識別することは、ファイルのソース、例えば、書き込まれるべきファイルを提供するプロセスの所有者を決定することを含んでよい。いくつかの実施形態においては、"管理者"または"ルート"といった所有者に関連付けられたファイルがSSDに割り当てられてよい。
1115においてプロセスは、論理ドライブに書き込まれるべきファイルのタイプに基づいて、SSDおよびHDDの一方に対応するターゲット論理アドレスを選択する。1120においてプロセスは、ターゲット論理アドレスの論理ドライブにファイルを書き込み、SSDおよびHDDの一方における格納を実行する。いくつかの実施形態においてプロセスは、SSDからHDDへの、または、HDDからSSDへのファイルの移動を含む。ファイルを移動することは、1115における選択、および1120における書き込みを含んでよい。
ホストシステムは、ハイパードライブユーティリティを実行して、1つ以上の仮想ドライブ、例えばハイパードライブと相互作用することができる。いくつかの実施形態においては、ハイパードライブユーティリティが不揮発性メモリを1つ以上のエクステントに分割できる。ハイパードライブユーティリティは、不揮発性メモリエクステントおよびHDDを、単一のディスクとして仮想化することができる。ハイパードライブユーティリティは、バックグラウンドのプロセスとして実行することができる。いくつかの実施形態においては、そのようなユーティリティがファイルシステムドライバの一部として含まれる。
ハイパードライブユーティリティは、ハイパードライブ上のファイルの格納を最適化することができる。ハイパードライブユーティリティは、ホットな(例えば頻繁に使用される)アプリケーションを、不揮発性メモリを含むSSDに存在するハイパーエクステントに配置することができる。例えば、ユーティリティは、実行可能なアプリケーションファイルをハイパーエクステントに移動することができる。ユーティリティは、コールドな(例えば滅多に使用されない)アプリケーションを、ハイパーエクステントからHDDエクステントへ移動することができる。例えば、ある期間アプリケーションが使用されていない場合、ユーティリティは、そのアプリケーションに関連付けられたファイルを、ハイパーエクステントからHDDエクステントに移動することができる。
いくつかの実施形態においてハイパードライブユーティリティは、ファイルタイプ、ファイル使用量、またはその両者等、1つ以上の特性に基づいて、ファイルを識別してハイパーエクステントに割り当てる。ユーティリティは、ページファイルあるいはスワップファイル等のオペレーティングシステムファイルをハイパーエクステントに格納させることができる。ユーティリティは、スタートアップアプリケーションファイルをハイパーエクステントに格納させることができる。ユーティリティは、頻繁に使用されるアプリケーションに関連付けられたファイルをハイパーエクステントに格納させることができる。ホットなアプリケーションの最新版がある場合、ユーティリティは、最新版をハイパーエクステントへ移動することができる。いくつかの実施形態においてユーティリティは、予め定義されたファイルタイプのリストにアクセスし、ファイルをハイパーエクステントに格納するかどうかを決定する。
ハイパードライブアドレス空間等の仮想ドライブアドレス空間は、SSDに割り当てられた領域[LBA 0,LBA N]、およびHDDに割り当てられた領域[LBA N+1,MAX_LBA]を含むことができる。MAX_LBAは、ハイパードライブアドレス空間に関連付けられた最大LBA値を表す。いくつかの実施形態においてオペレーティングシステムは、ファイルがアドレス空間の最初から始まるように書き込むことができる。もしもオペレーティングシステムがハイパードライブの物理ドライブレイアウトに不可知である場合、ハイパードライブユーティリティは、物理ドライブ間でファイルを移動してハイパードライブ性能を最適化することができる。ドライブ間でファイルを移動することは、ファイルのデータを読み出すこと、ファイルに関連付けられるべき新たなLBAを使用すること、および、新たなLBAにファイルデータを書き込むことを含んでよい。いくつかの実施形態においてユーティリティは、1つ以上のファイルタイプに対して予め定義されたLBA領域を、オペレーティングシステムに備えさせることができる。そのように予め定義された領域は、ハイパードライブのSSDに対応することができる。いくつかの実施形態においてハイパードライブアドレス空間は、HDDに割り当てられた領域[LBA 0,LBA N]、およびSSDに割り当てられた領域[LBA N+1,MAX_LBA]を含むことができる。
いくつかの実施例を上記のように詳細に記載したが、様々な変更が可能である。本明細書に記載される機能的なオペレーションを含め、開示される主題は、電子回路、コンピュータハードウェア、ファームウェア、ソフトウェア、又はそれらの組み合わせ等、本明細書に開示される構造的な手段、及び構造的なその等価物として実施することができる。これは、記載されるオペレーションを1つ以上のデータ処理装置に実行させるべく動作可能なプログラム(メモリデバイス、格納デバイス、機械読み取り可能な格納基板、あるいは、その他の物理的機械読み取り可能な媒体、又はそれらの1つ以上の組み合わせであり、コンピュータ読み取り可能な媒体中の符号化されたプログラム等)を含む。
"データ処理装置"という用語は、例としてプログラム可能なプロセッサ、コンピュータ、あるいは複数のプロセッサまたはコンピュータを含め、データ処理のためのすべての装置、デバイス、および機械を包含する。装置は、ハードウェアに加えて、当該コンピュータプログラムに対する実行環境を生成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、あるいは、それらの1つ以上の組み合わせを構成するコードを含むことができる。
(コンピュータプログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られている)プログラムは、コンパイラ型またはインタープリタ型言語、あるいは宣言型またはプロシージャ型言語を含む任意のプログラム言語で書かれてよい。プログラムは、スタンドアロンプログラムまたはモジュール、コンポーネント、サブルーチン、あるいは、コンピュータ環境における使用に適したその他のユニットを含む、任意の形式で展開されてよい。プログラムは、ファイルシステム中のファイルに必ずしも対応しなくてもよい。プログラムは、他のプログラムまたはデータ(例えば、マークアップ言語ドキュメントに格納される1つ以上のスクリプト)を保持するファイルの一部分に、または当該プログラム専用の単一のファイルに、あるいは、複数の協調されたファイル(例えば、1つ以上のモジュール、サブプログラム、あるいはコードの一部分を格納するファイル)に格納されてよい。プログラムは、1つのコンピュータ上で実行されるべく展開されてよい。あるいは、1つのサイトに位置するか、または、複数のサイトに渡って分配され、通信ネットワークによって相互に接続された複数のコンピュータ上で実行されるべく展開されてよい。
本明細書には多くの詳細な点が含まれているが、これらは、特許請求の範囲に対する限定とみなされるべきではなく、むしろ、特定の実施例に対して具体的な特徴を記載するものとみなされるべきである。個々の実施例の関係において本明細書に記載されるいくつかの特徴は、1つの実施例において組み合わせて実行されてもよい。反対に、1つの実施例に関連して記載される様々な特徴が、複数の実施例において別々に実行されてよく、あるいは、任意の適切なサブコンビネーションにおいて実行されてもよい。さらに、上記の特徴は、特定の組み合わせにおいて作用するように記載され、元々そのように請求されてもいるかもしれないが、いくつかの場合においては、請求される組み合わせから1つ以上の特徴が削除されてよく、また、請求される組み合わせが、サブコンビネーション又はサブコンビネーションの変形に向けられたものでもよい。
同様に、オペレーションは特定の順序で図面に記述されているが、これは、示されている特定の順序で、又は連続した順序でそのようなオペレーションが実行される必要があると理解されるべきではない。あるいは、望ましい結果を達成するために、示される全てのオペレーションが実行される必要があると理解されるべきではない。特定の環境においては、多重タスク処理および並行処理が有利なこともある。さらに、上述の実施例における様々なシステム構成要件を分離することは、全ての実施例においてそのような分離が必要であると理解されるべきではない。
その他の実施例は、以下の特許請求の範囲の範囲内に入るものである。
[項目1]
固体ドライブ(SSD)と、
ディスクドライブと、
複数の前記ドライブと通信し、0からLまでの論理アドレス空間内に論理ブロックアドレスをマップするプロセッサ電子部品と、
を備え、
Lは0よりも大きく、
前記固体ドライブと前記ディスクドライブとは単一の論理ドライブとして仮想化され、
前記プロセッサ電子部品は、前記論理アドレス空間における第1アドレス領域の論理ブロックアドレスを前記固体ドライブにマップし、前記論理アドレス空間における前記第1アドレス領域と異なる第2アドレス領域の論理ブロックアドレスを前記ディスクドライブにマップし、
前記プロセッサ電子部品は、
前記論理ドライブに書き込まれるべきファイルに基づいて、前記固体ドライブおよび前記ディスクドライブの1つに対応するターゲット論理アドレスを決定することと、
前記ターゲット論理アドレスの前記論理ドライブに前記ファイルを書き込み、前記固体ドライブおよび前記ディスクドライブの1つにおける格納を実行することと
を含むオペレーションを実行するシステム。
[項目2]
前記オペレーションは、前記論理ドライブに関連付けられたファイルの使用量情報を監視することを含み、
前記ターゲット論理アドレスを決定することは、前記使用量情報を用いて前記固体ドライブおよび前記ディスクドライブの1つを選択することを含む項目1に記載のシステム。
[項目3]
前記ファイルは前記ディスクドライブに予め格納され、
前記ターゲット論理アドレスを決定することは、前記固体ドライブに対応するターゲット論理アドレスを選択することを含み、
前記論理ドライブに前記ファイルを書き込むことは、前記ディスクドライブから前記固体ドライブへ前記ファイルを移動することを含む項目2に記載のシステム。
[項目4]
前記ファイルは前記固体ドライブに予め格納され、
前記論理ドライブに前記ファイルを書き込むことは、対応する使用量情報に基づいて、前記固体ドライブに格納された前記ファイルを前記ディスクドライブに移動することを含む項目2に記載のシステム。
[項目5]
前記オペレーションは前記ファイルのタイプを識別することを含み、
前記ターゲット論理アドレスを決定することは、前記ファイルの前記タイプのレイテンシ要件に基づいて、前記固体ドライブに対応するターゲット論理アドレスを選択することを含み、
前記ファイルを前記論理ドライブに書き込むことは、前記ファイルを前記固体ドライブに書き込むことを含む項目1に記載のシステム。
[項目6]
前記固体ドライブは複数のエクステントに分割され、
前記論理ドライブは、前記複数のエクステントの1つのエクステントと前記ディスクドライブとに基づく項目1に記載のシステム。
[項目7]
前記第1アドレス領域は、0からKまでのアドレスを含み、
前記第2アドレス領域は、K+1からLまでのアドレス領域を含み、
LはKよりも大きく、
Kは0よりも大きく、
前記第1アドレス領域は前記固体ドライブに割り当てられ、
前記第2アドレス領域は前記ディスクドライブに割り当てられ、
前記ターゲット論理アドレスを決定することは、前記第1アドレス領域および前記第2アドレス領域の1つを選択することを含む項目1に記載のシステム。
[項目8]
固体ドライブ(SSD)と通信する第1インターフェイスと、
ディスクドライブと通信する第2インターフェイスと、
複数の前記ドライブと通信し、0からLまでの論理アドレス空間内に論理ブロックアドレスをマップするプロセッサ電子部品と、
を備え、
Lは0よりも大きく、
前記固体ドライブと前記ディスクドライブとは単一の論理ドライブとして仮想化され、
前記プロセッサ電子部品は、前記論理アドレス空間における第1アドレス領域の論理ブロックアドレスを前記固体ドライブにマップし、前記論理アドレス空間における前記第1アドレス領域と異なる第2アドレス領域の論理ブロックアドレスを前記ディスクドライブにマップし、
前記プロセッサ電子部品は、
前記論理ドライブに書き込まれるべきファイルに基づいて、前記固体ドライブおよび前記ディスクドライブの1つに対応するターゲット論理アドレスを決定することと、
前記ターゲット論理アドレスの前記論理ドライブに前記ファイルを書き込み、前記固体ドライブおよび前記ディスクドライブの1つにおける格納を実行することと
を含むオペレーションを実行する装置。
[項目9]
前記オペレーションは、前記論理ドライブに関連付けられたファイルの使用量情報を監視することを含み、
前記ターゲット論理アドレスを決定することは、前記使用量情報を用いて前記固体ドライブおよび前記ディスクドライブの1つを選択することを含む項目8に記載の装置。
[項目10]
前記ファイルは前記ディスクドライブに予め格納され、
前記ターゲット論理アドレスを決定することは、前記固体ドライブに対応するターゲット論理アドレスを選択することを含み、
前記論理ドライブに前記ファイルを書き込むことは、前記ディスクドライブから前記固体ドライブへ前記ファイルを移動することを含む項目9に記載の装置。
[項目11]
前記ファイルは前記固体ドライブに予め格納され、
前記論理ドライブに前記ファイルを書き込むことは、対応する使用量情報に基づいて、前記固体ドライブに格納された前記ファイルを前記ディスクドライブに移動することを含む項目9に記載の装置。
[項目12]
前記オペレーションは前記ファイルのタイプを識別することを含み、
前記ターゲット論理アドレスを決定することは、前記ファイルの前記タイプのレイテンシ要件に基づいて、前記固体ドライブに対応するターゲット論理アドレスを選択することを含み、
前記ファイルを前記論理ドライブに書き込むことは、前記ファイルを前記固体ドライブに書き込むことを含む項目8に記載の装置。
[項目13]
前記固体ドライブは複数のエクステントに分割され、
前記論理ドライブは、前記複数のエクステントの1つのエクステントと前記ディスクドライブとに基づく項目8に記載の装置。
[項目14]
前記第1アドレス領域は、0からKまでのアドレスを含み、
前記第2アドレス領域は、K+1からLまでのアドレス領域を含み、
LはKよりも大きく、
Kは0よりも大きく、
前記第1アドレス領域は前記固体ドライブに割り当てられ、
前記第2アドレス領域は前記ディスクドライブに割り当てられ、
前記ターゲット論理アドレスを決定することは、前記第1アドレス領域および前記第2アドレス領域の1つを選択することを含む項目8に記載の装置。
[項目15]
固体ドライブ(SSD)とディスクドライブとが、0からLまでの論理アドレス空間を有する単一の論理ドライブとして仮想化されるように、前記固体ドライブおよび前記ディスクドライブを含む複数のドライブを操作する段階と、
前記論理ドライブに書き込まれるべきファイルに基づいて、前記固体ドライブおよび前記ディスクドライブの1つに対応するターゲット論理アドレスを決定する段階と、
前記固体ドライブおよび前記ディスクドライブの1つにおける格納を実行するために、前記ターゲット論理アドレスの前記論理ドライブに前記ファイルを書き込む段階と
を備え、
Lは0よりも大きく、
前記ドライブを操作する段階は、前記論理アドレス空間における第1アドレス領域の論理ブロックアドレスを前記固体ドライブにマップし、前記論理アドレス空間における前記第1アドレス領域と異なる第2アドレス領域の論理ブロックアドレスを前記ディスクドライブにマップする段階を含む方法。
[項目16]
前記論理ドライブに関連付けられたファイルの使用量情報を監視する段階を含み、
前記ターゲット論理アドレスを決定する段階は、前記使用量情報を用いて前記固体ドライブおよび前記ディスクドライブの1つを選択する段階を含む項目15に記載の方法。
[項目17]
前記ファイルは前記ディスクドライブに予め格納され、
前記ターゲット論理アドレスを決定する段階は、前記固体ドライブに対応するターゲット論理アドレスを選択する段階を含み、
前記論理ドライブに前記ファイルを書き込む段階は、前記ディスクドライブから前記固体ドライブへ前記ファイルを移動する段階を含む項目16に記載の方法。
[項目18]
前記ファイルは前記固体ドライブに予め格納され、
前記論理ドライブに前記ファイルを書き込む段階は、対応する使用量情報に基づいて、前記固体ドライブに格納された前記ファイルを前記ディスクドライブに移動する段階を含む項目16に記載の方法。
[項目19]
前記ファイルのタイプを識別する段階を含み、
前記ターゲット論理アドレスを決定する段階は、前記ファイルの前記タイプのレイテンシ要件に基づいて、前記固体ドライブに対応するターゲット論理アドレスを選択する段階を含み、
前記論理ドライブに前記ファイルを書き込む段階は、前記ファイルを前記固体ドライブに書き込む段階を含む項目15に記載の方法。
[項目20]
前記固体ドライブおよび前記ディスクドライブを仮想化する段階は、0からKまでの第1アドレス領域の論理ブロックアドレスを前記固体ドライブにマップし、K+1からLまでの第2アドレス領域の論理ブロックアドレスを前記ディスクドライブにマップする段階を含み、
LはKよりも大きく、
Kは0よりも大きく、
前記論理ドライブに前記ファイルを書き込む段階は、コントローラに(i)前記ターゲット論理アドレスに基づいて、前記固体ドライブおよび前記ディスクドライブの1つを選択させ、(ii)選択された前記ドライブに前記ファイルを書き込ませる段階を含む項目15に記載の方法。
その他の実施例は、以下の特許請求の範囲の範囲内に入るものである。

Claims (20)

  1. 固体ドライブ(SSD)と、
    ディスクドライブと、
    複数の前記ドライブと通信し、0からLまでの論理アドレス空間内に論理ブロックアドレスをマップするプロセッサ電子部品と、
    を備え、
    Lは0よりも大きく、
    前記固体ドライブと前記ディスクドライブとは単一の論理ドライブとして仮想化され、
    前記プロセッサ電子部品は、前記論理アドレス空間における第1アドレス領域の論理ブロックアドレスを前記固体ドライブにマップし、前記論理アドレス空間における前記第1アドレス領域と異なる第2アドレス領域の論理ブロックアドレスを前記ディスクドライブにマップし、
    前記プロセッサ電子部品は、
    前記論理ドライブに書き込まれるべきファイルに基づいて、前記固体ドライブおよび前記ディスクドライブの1つに対応するターゲット論理アドレスを決定することと、
    前記ターゲット論理アドレスの前記論理ドライブに前記ファイルを書き込み、前記固体ドライブおよび前記ディスクドライブの1つにおける格納を実行することと
    を含むオペレーションを実行するシステム。
  2. 前記オペレーションは、前記論理ドライブに関連付けられたファイルの使用量情報を監視することを含み、
    前記ターゲット論理アドレスを決定することは、前記使用量情報を用いて前記固体ドライブおよび前記ディスクドライブの1つを選択することを含む請求項1に記載のシステム。
  3. 前記ファイルは前記ディスクドライブに予め格納され、
    前記ターゲット論理アドレスを決定することは、前記固体ドライブに対応するターゲット論理アドレスを選択することを含み、
    前記論理ドライブに前記ファイルを書き込むことは、前記ディスクドライブから前記固体ドライブへ前記ファイルを移動することを含む請求項2に記載のシステム。
  4. 前記ファイルは前記固体ドライブに予め格納され、
    前記論理ドライブに前記ファイルを書き込むことは、対応する使用量情報に基づいて、前記固体ドライブに格納された前記ファイルを前記ディスクドライブに移動することを含む請求項2に記載のシステム。
  5. 前記オペレーションは前記ファイルのタイプを識別することを含み、
    前記ターゲット論理アドレスを決定することは、前記ファイルの前記タイプのレイテンシ要件に基づいて、前記固体ドライブに対応するターゲット論理アドレスを選択することを含み、
    前記ファイルを前記論理ドライブに書き込むことは、前記ファイルを前記固体ドライブに書き込むことを含む請求項1に記載のシステム。
  6. 前記固体ドライブは複数のエクステントに分割され、
    前記論理ドライブは、前記複数のエクステントの1つのエクステントと前記ディスクドライブとに基づく請求項1に記載のシステム。
  7. 前記第1アドレス領域は、0からKまでのアドレスを含み、
    前記第2アドレス領域は、K+1からLまでのアドレス領域を含み、
    LはKよりも大きく、
    Kは0よりも大きく、
    前記第1アドレス領域は前記固体ドライブに割り当てられ、
    前記第2アドレス領域は前記ディスクドライブに割り当てられ、
    前記ターゲット論理アドレスを決定することは、前記第1アドレス領域および前記第2アドレス領域の1つを選択することを含む請求項1に記載のシステム。
  8. 固体ドライブ(SSD)と通信する第1インターフェイスと、
    ディスクドライブと通信する第2インターフェイスと、
    複数の前記ドライブと通信し、0からLまでの論理アドレス空間内に論理ブロックアドレスをマップするプロセッサ電子部品と、
    を備え、
    Lは0よりも大きく、
    前記固体ドライブと前記ディスクドライブとは単一の論理ドライブとして仮想化され、
    前記プロセッサ電子部品は、前記論理アドレス空間における第1アドレス領域の論理ブロックアドレスを前記固体ドライブにマップし、前記論理アドレス空間における前記第1アドレス領域と異なる第2アドレス領域の論理ブロックアドレスを前記ディスクドライブにマップし、
    前記プロセッサ電子部品は、
    前記論理ドライブに書き込まれるべきファイルに基づいて、前記固体ドライブおよび前記ディスクドライブの1つに対応するターゲット論理アドレスを決定することと、
    前記ターゲット論理アドレスの前記論理ドライブに前記ファイルを書き込み、前記固体ドライブおよび前記ディスクドライブの1つにおける格納を実行することと
    を含むオペレーションを実行する装置。
  9. 前記オペレーションは、前記論理ドライブに関連付けられたファイルの使用量情報を監視することを含み、
    前記ターゲット論理アドレスを決定することは、前記使用量情報を用いて前記固体ドライブおよび前記ディスクドライブの1つを選択することを含む請求項8に記載の装置。
  10. 前記ファイルは前記ディスクドライブに予め格納され、
    前記ターゲット論理アドレスを決定することは、前記固体ドライブに対応するターゲット論理アドレスを選択することを含み、
    前記論理ドライブに前記ファイルを書き込むことは、前記ディスクドライブから前記固体ドライブへ前記ファイルを移動することを含む請求項9に記載の装置。
  11. 前記ファイルは前記固体ドライブに予め格納され、
    前記論理ドライブに前記ファイルを書き込むことは、対応する使用量情報に基づいて、前記固体ドライブに格納された前記ファイルを前記ディスクドライブに移動することを含む請求項9に記載の装置。
  12. 前記オペレーションは前記ファイルのタイプを識別することを含み、
    前記ターゲット論理アドレスを決定することは、前記ファイルの前記タイプのレイテンシ要件に基づいて、前記固体ドライブに対応するターゲット論理アドレスを選択することを含み、
    前記ファイルを前記論理ドライブに書き込むことは、前記ファイルを前記固体ドライブに書き込むことを含む請求項8に記載の装置。
  13. 前記固体ドライブは複数のエクステントに分割され、
    前記論理ドライブは、前記複数のエクステントの1つのエクステントと前記ディスクドライブとに基づく請求項8に記載の装置。
  14. 前記第1アドレス領域は、0からKまでのアドレスを含み、
    前記第2アドレス領域は、K+1からLまでのアドレス領域を含み、
    LはKよりも大きく、
    Kは0よりも大きく、
    前記第1アドレス領域は前記固体ドライブに割り当てられ、
    前記第2アドレス領域は前記ディスクドライブに割り当てられ、
    前記ターゲット論理アドレスを決定することは、前記第1アドレス領域および前記第2アドレス領域の1つを選択することを含む請求項8に記載の装置。
  15. 固体ドライブ(SSD)とディスクドライブとが、0からLまでの論理アドレス空間を有する単一の論理ドライブとして仮想化されるように、前記固体ドライブおよび前記ディスクドライブを含む複数のドライブを操作する段階と、
    前記論理ドライブに書き込まれるべきファイルに基づいて、前記固体ドライブおよび前記ディスクドライブの1つに対応するターゲット論理アドレスを決定する段階と、
    前記固体ドライブおよび前記ディスクドライブの1つにおける格納を実行するために、前記ターゲット論理アドレスの前記論理ドライブに前記ファイルを書き込む段階と
    を備え、
    Lは0よりも大きく、
    前記ドライブを操作する段階は、前記論理アドレス空間における第1アドレス領域の論理ブロックアドレスを前記固体ドライブにマップし、前記論理アドレス空間における前記第1アドレス領域と異なる第2アドレス領域の論理ブロックアドレスを前記ディスクドライブにマップする段階を含む方法。
  16. 前記論理ドライブに関連付けられたファイルの使用量情報を監視する段階を含み、
    前記ターゲット論理アドレスを決定する段階は、前記使用量情報を用いて前記固体ドライブおよび前記ディスクドライブの1つを選択する段階を含む請求項15に記載の方法。
  17. 前記ファイルは前記ディスクドライブに予め格納され、
    前記ターゲット論理アドレスを決定する段階は、前記固体ドライブに対応するターゲット論理アドレスを選択する段階を含み、
    前記論理ドライブに前記ファイルを書き込む段階は、前記ディスクドライブから前記固体ドライブへ前記ファイルを移動する段階を含む請求項16に記載の方法。
  18. 前記ファイルは前記固体ドライブに予め格納され、
    前記論理ドライブに前記ファイルを書き込む段階は、対応する使用量情報に基づいて、前記固体ドライブに格納された前記ファイルを前記ディスクドライブに移動する段階を含む請求項16に記載の方法。
  19. 前記ファイルのタイプを識別する段階を含み、
    前記ターゲット論理アドレスを決定する段階は、前記ファイルの前記タイプのレイテンシ要件に基づいて、前記固体ドライブに対応するターゲット論理アドレスを選択する段階を含み、
    前記論理ドライブに前記ファイルを書き込む段階は、前記ファイルを前記固体ドライブに書き込む段階を含む請求項15に記載の方法。
  20. 前記固体ドライブおよび前記ディスクドライブを仮想化する段階は、0からKまでの第1アドレス領域の論理ブロックアドレスを前記固体ドライブにマップし、K+1からLまでの第2アドレス領域の論理ブロックアドレスを前記ディスクドライブにマップする段階を含み、
    LはKよりも大きく、
    Kは0よりも大きく、
    前記論理ドライブに前記ファイルを書き込む段階は、コントローラに(i)前記ターゲット論理アドレスに基づいて、前記固体ドライブおよび前記ディスクドライブの1つを選択させ、(ii)選択された前記ドライブに前記ファイルを書き込ませる段階を含む請求項15に記載の方法。
JP2015143318A 2009-12-04 2015-07-17 格納デバイスの仮想化 Active JP6253614B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US26692409P 2009-12-04 2009-12-04
US61/266,924 2009-12-04

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2012542078A Division JP5984118B2 (ja) 2009-12-04 2010-11-19 格納デバイスの仮想化

Publications (2)

Publication Number Publication Date
JP2015228235A true JP2015228235A (ja) 2015-12-17
JP6253614B2 JP6253614B2 (ja) 2017-12-27

Family

ID=43501585

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2012542078A Active JP5984118B2 (ja) 2009-12-04 2010-11-19 格納デバイスの仮想化
JP2015143318A Active JP6253614B2 (ja) 2009-12-04 2015-07-17 格納デバイスの仮想化

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2012542078A Active JP5984118B2 (ja) 2009-12-04 2010-11-19 格納デバイスの仮想化

Country Status (5)

Country Link
US (2) US8769241B2 (ja)
EP (1) EP2507700A1 (ja)
JP (2) JP5984118B2 (ja)
TW (1) TWI507869B (ja)
WO (1) WO2011068699A1 (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011068699A1 (en) * 2009-12-04 2011-06-09 Marvell World Trade Ltd. Virtualization of storage devices
US9977732B1 (en) * 2011-01-04 2018-05-22 Seagate Technology Llc Selective nonvolatile data caching based on estimated resource usage
EP2668565B1 (en) 2011-01-27 2019-11-06 Intel Corporation Guest instruction to native instruction range based mapping using a conversion look aside buffer of a processor
WO2012103245A2 (en) 2011-01-27 2012-08-02 Soft Machines Inc. Guest instruction block with near branching and far branching sequence construction to native instruction block
WO2012103253A2 (en) 2011-01-27 2012-08-02 Soft Machines, Inc. Multilevel conversion table cache for translating guest instructions to native instructions
WO2012103359A2 (en) 2011-01-27 2012-08-02 Soft Machines, Inc. Hardware acceleration components for translating guest instructions to native instructions
WO2012103367A2 (en) 2011-01-27 2012-08-02 Soft Machines, Inc. Guest to native block address mappings and management of native code storage
US8713357B1 (en) 2011-09-06 2014-04-29 Western Digital Technologies, Inc. Systems and methods for detailed error reporting in data storage systems
US9195530B1 (en) 2011-09-06 2015-11-24 Western Digital Technologies, Inc. Systems and methods for improved data management in data storage systems
US8700834B2 (en) 2011-09-06 2014-04-15 Western Digital Technologies, Inc. Systems and methods for an enhanced controller architecture in data storage systems
US8707104B1 (en) 2011-09-06 2014-04-22 Western Digital Technologies, Inc. Systems and methods for error injection in data storage systems
US9710397B2 (en) 2012-02-16 2017-07-18 Apple Inc. Data migration for composite non-volatile storage device
US20130238851A1 (en) * 2012-03-07 2013-09-12 Netapp, Inc. Hybrid storage aggregate block tracking
US9053008B1 (en) 2012-03-26 2015-06-09 Western Digital Technologies, Inc. Systems and methods for providing inline parameter service in data storage devices
CN103678143B (zh) * 2012-09-25 2018-10-12 联想(北京)有限公司 文件存储方法、装置及电子设备
US10073851B2 (en) * 2013-01-08 2018-09-11 Apple Inc. Fast new file creation cache
US10467010B2 (en) 2013-03-15 2019-11-05 Intel Corporation Method and apparatus for nearest potential store tagging
US9606935B2 (en) * 2013-03-15 2017-03-28 Intel Corporation Method and apparatus for preventing non-temporal entries from polluting small structures using a transient buffer
WO2014151652A1 (en) 2013-03-15 2014-09-25 Soft Machines Inc Method and apparatus to allow early dependency resolution and data forwarding in a microprocessor
US10152327B2 (en) 2013-03-15 2018-12-11 Intel Corporation Apparatus for gating a load operation based on entries of a prediction table
CN105122206B (zh) 2013-03-15 2018-11-09 英特尔公司 用于支持推测的访客返回地址栈仿真的方法和装置
US20150234595A1 (en) * 2014-02-14 2015-08-20 Kabushiki Kaisha Toshiba Storage device
WO2015183791A1 (en) 2014-05-28 2015-12-03 Corning Optical Communications Wireless, Inc. MULTIPLE APPLICATION MODULES (MAMs) FOR MONITORING SIGNALS IN COMPONENTS IN WIRELESS DISTRIBUTION SYSTEMS, INCLUDING DISTRIBUTED ANTENNA SYSTEMS (DASs), AND RELATED SYSTEMS AND METHODS
WO2016112308A2 (en) 2015-01-09 2016-07-14 Corning Optical Communications LLC Multiple application module or unit
TWI579689B (zh) * 2015-09-25 2017-04-21 瑞昱半導體股份有限公司 資料備份系統
US9936019B2 (en) * 2016-03-16 2018-04-03 Google Llc Efficient live-migration of remotely accessed data
US9959058B1 (en) * 2016-03-31 2018-05-01 EMC IP Holding Company LLC Utilizing flash optimized layouts which minimize wear of internal flash memory of solid state drives
WO2017189406A1 (en) * 2016-04-27 2017-11-02 Corning Optical Communications LLC Multiple application modules (mam) and/or multiple application units (mau) for providing services in wireless distribution systems (wds), including distributed antenna systems (das), and related systems and methods
WO2017210186A1 (en) 2016-05-31 2017-12-07 Corning Optical Communications LLC Multiple application devices for providing services in wireless distribution systems (wds), including distributed antenna systems (das), and related systems and methods
US10942844B2 (en) 2016-06-10 2021-03-09 Apple Inc. Reserved memory in memory management system
US10866912B2 (en) 2017-03-10 2020-12-15 Toshiba Memory Corporation Integrated heterogeneous solid state storage drive
US10713750B2 (en) * 2017-04-01 2020-07-14 Intel Corporation Cache replacement mechanism
US11755420B2 (en) * 2020-09-28 2023-09-12 Druva Inc. Recovery point objective optimized file recovery

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09297659A (ja) * 1996-04-30 1997-11-18 Toshiba Corp 不揮発性記憶装置およびその制御方法
JPH1063551A (ja) * 1996-08-16 1998-03-06 Nec Off Syst Ltd 情報処理装置
US6363400B1 (en) * 1999-02-22 2002-03-26 Starbase Corp. Name space extension for an operating system
US20020083264A1 (en) * 2000-12-26 2002-06-27 Coulson Richard L. Hybrid mass storage system and method
JP2004013454A (ja) * 2002-06-06 2004-01-15 Hitachi Ltd データマッピング管理装置
JP2007226596A (ja) * 2006-02-24 2007-09-06 Hitachi Ltd 記憶制御装置及び記憶制御装置を用いたデータマイグレーション方法

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0497659A (ja) 1990-08-15 1992-03-30 Hitachi Ltd 垂直画面歪補正回路
US5778418A (en) * 1991-09-27 1998-07-07 Sandisk Corporation Mass computer storage system having both solid state and rotating disk types of memory
JPH05127962A (ja) * 1991-11-08 1993-05-25 Nec Software Kansai Ltd 電子デイスクフアイル常駐優先度管理方式
US5420998A (en) 1992-04-10 1995-05-30 Fujitsu Limited Dual memory disk drive
JPH06314177A (ja) * 1993-04-28 1994-11-08 Toshiba Corp 磁気ディスク装置及びアクセス方法
JP2006302315A (ja) * 2003-07-07 2006-11-02 Hitachi Ulsi Systems Co Ltd 記憶装置および記憶システム
JP4327585B2 (ja) * 2003-12-25 2009-09-09 株式会社東芝 記憶装置
US20050235076A1 (en) * 2004-04-14 2005-10-20 Winarski Daniel J Targeted communications for microcode updates using dedicated LUNs
JP4933861B2 (ja) * 2005-09-22 2012-05-16 株式会社日立製作所 ストレージ制御装置、データ管理システムおよびデータ管理方法
SG135082A1 (en) * 2006-02-27 2007-09-28 Gueh How Kiap Method and apparatus for removable, ide-ata or scsi flash memory based data storage in a portable computer device
US7506098B2 (en) * 2006-06-08 2009-03-17 Bitmicro Networks, Inc. Optimized placement policy for solid state storage devices
US7555575B2 (en) * 2006-07-27 2009-06-30 Hitachi, Ltd. Method and apparatus for migrating data between storage volumes of different data pattern
KR100854032B1 (ko) * 2007-02-09 2008-08-26 삼성전자주식회사 메모리 시스템 및 그것의 데이터 저장 방법
US7899987B2 (en) * 2007-05-15 2011-03-01 Sandisk Il Ltd. File storage in a computer system with diverse storage media
US7996447B2 (en) * 2007-07-24 2011-08-09 Dell Products L.P. Method and system for optimal file system performance
KR101498673B1 (ko) * 2007-08-14 2015-03-09 삼성전자주식회사 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템
JP2009134601A (ja) * 2007-11-30 2009-06-18 Fujitsu Ltd ディスクアクセス方式切替装置
US9134917B2 (en) * 2008-02-12 2015-09-15 Netapp, Inc. Hybrid media storage system architecture
JP5075761B2 (ja) * 2008-05-14 2012-11-21 株式会社日立製作所 フラッシュメモリを用いたストレージ装置
US8171278B2 (en) * 2008-08-11 2012-05-01 Vmware, Inc. Booting a computer system from central storage
JP2010049502A (ja) * 2008-08-21 2010-03-04 Hitachi Ltd ストレージサブシステム、及びこれを有するストレージシステム
US8103847B2 (en) * 2009-04-08 2012-01-24 Microsoft Corporation Storage virtual containers
US8321645B2 (en) * 2009-04-29 2012-11-27 Netapp, Inc. Mechanisms for moving data in a hybrid aggregate
WO2011068699A1 (en) * 2009-12-04 2011-06-09 Marvell World Trade Ltd. Virtualization of storage devices
TWI587139B (zh) * 2010-01-20 2017-06-11 旺玖科技股份有限公司 驅動裝置及其取得資料之方法
US8677093B2 (en) * 2010-04-19 2014-03-18 Hitachi, Ltd. Method and apparatus to manage tier information

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09297659A (ja) * 1996-04-30 1997-11-18 Toshiba Corp 不揮発性記憶装置およびその制御方法
JPH1063551A (ja) * 1996-08-16 1998-03-06 Nec Off Syst Ltd 情報処理装置
US6363400B1 (en) * 1999-02-22 2002-03-26 Starbase Corp. Name space extension for an operating system
US20020083264A1 (en) * 2000-12-26 2002-06-27 Coulson Richard L. Hybrid mass storage system and method
JP2004013454A (ja) * 2002-06-06 2004-01-15 Hitachi Ltd データマッピング管理装置
JP2007226596A (ja) * 2006-02-24 2007-09-06 Hitachi Ltd 記憶制御装置及び記憶制御装置を用いたデータマイグレーション方法

Also Published As

Publication number Publication date
TWI507869B (zh) 2015-11-11
JP5984118B2 (ja) 2016-09-06
US20140310449A1 (en) 2014-10-16
EP2507700A1 (en) 2012-10-10
JP6253614B2 (ja) 2017-12-27
JP2013513163A (ja) 2013-04-18
US20110138112A1 (en) 2011-06-09
TW201145022A (en) 2011-12-16
US8769241B2 (en) 2014-07-01
US9164895B2 (en) 2015-10-20
WO2011068699A1 (en) 2011-06-09

Similar Documents

Publication Publication Date Title
JP6253614B2 (ja) 格納デバイスの仮想化
KR100923990B1 (ko) 플래시 저장 장치의 특성을 기반으로 한 컴퓨팅 시스템
KR102168838B1 (ko) 저장 장치들에 대한 매핑 테이블들
KR101395778B1 (ko) 메모리 카드 및 그것을 포함하는 메모리 시스템 그리고그것의 동작 방법
JP6082389B2 (ja) ホストから見たデバイスファームウェア更新の影響の管理
TWI492061B (zh) 經由主機傳輸速率偵測之操作模式或特徵之選擇性啟用
US8316201B2 (en) Methods for executing a command to write data from a source location to a destination location in a memory device
US20150143032A1 (en) Storage medium storing control program, method of controlling information processing device, information processing system, and information processing device
US20140229657A1 (en) Readdressing memory for non-volatile storage devices
US20100161932A1 (en) Methods for writing data from a source location to a destination location in a memory device
JP2010525453A (ja) ソリッドステートドライブ最適化用リムーブオンデリート技術
CN107908571B (zh) 一种数据写入方法、闪存装置及存储设备
US10209897B2 (en) Storage device and control method of the same
US8433847B2 (en) Memory drive that can be operated like optical disk drive and method for virtualizing memory drive as optical disk drive
KR102595233B1 (ko) 데이터 처리 시스템 및 그것의 동작 방법
US9983826B2 (en) Data storage device deferred secure delete
KR20130024271A (ko) 하드 디스크 드라이브와 불휘발성 메모리를 포함하는 스토리지 시스템
JP2014179095A (ja) ハイバネーションからの迅速な再開のための装置、方法およびデバイス
KR102425470B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US20210081126A1 (en) Method and apparatus for performing data-accessing management in a storage server
TW201443647A (zh) 具有資料管理的層疊式資料儲存系統及其操作方法
TWI390399B (zh) 具有虛擬儲存裝置之外接裝置
US9317440B2 (en) Computing device and virtual device control method for controlling virtual device by computing system
CN111367830B (zh) 主机参与的重建ftl表的方法及其存储设备
WO2012143944A2 (en) Multi-host nand flash controller

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160728

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160816

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170404

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170606

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: 20171031

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171128

R150 Certificate of patent or registration of utility model

Ref document number: 6253614

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250