図面 (/)

この項目の情報は公開日時点(2009年1月29日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (20)

課題・解決手段

ホストシステムデータ記憶システムとの間でデータを転送するためのシステムおよび方法を提供する。システムは、ファイルベースプロトコルを使用して、データ記憶システムとホストシステムとの間でデータを転送するインターフェイスを含み、データ記憶システムは、第1の大容量記憶装置および第2の大容量記憶装置を含み、第1の大容量記憶装置は、固体不揮発性メモリ素子であり、第2の大容量記憶装置は、非固体のメモリ素子である。第1の大容量記憶装置は、ファイルバイファイル形式でデータを記憶する1次記憶装置として作動するフラッシュメモリ装置である。第2の大容量記憶装置は、2次記憶装置として作動し、論理インターフェイスを介して受信されるデータを記憶する磁気ディスクドライブである。

概要

背景

関連出願の相互参照
本願は、その全体が本願明細書において参照により援用されている以下の同時係属中の米国特許出願に関する。以下の特許出願とは、2005年2月4日に出願されたアラン・W・シンクレアが発明者である「デュアルメディア記憶装置」という米国特許出願第10/772,855号(代理人整理番号:SDK01P018)(特許文献1)、2005年2月4日に出願されたアラン・W・シンクレアが発明者である「大容量記憶アクセラレータ」という米国特許出願第10/772,789号(代理人整理番号:SDK1P019)(特許文献2)、2005年2月16日に出願されたアラン・W・シンクレアおよびピーター・J・スミスが発明者である「フラッシュメモリにおける直接データファイル記憶」という米国特許出願第11/060,249号(代理人整理番号:SDK0380.US0)(特許文献3)、2005年2月16日に出願されたアラン・W・シンクレアおよびピーター・J・スミスが発明者である「フラッシュメモリにおける直接データファイルのプログラミングおよび削除」という米国特許出願第11/060,174号(代理人整理番号:SDK0380.US1)(特許文献4)、2005年2月16日に出願されたアラン・W・シンクレアおよびピーター・J・スミスが発明者である「フラッシュメモリにおける直接データファイル記憶実施技術」という米国特許出願第11/060,248号(代理人整理番号:SDK0380.US2) (特許文献5)、アラン・W・シンクレアおよびバリーライトによって本願と同時に出願された「フラッシュメモリにおける直接データファイル記憶」という米国仮特許出願(特許文献6)である(以下、前述した特許出願は、「直接データファイル記憶アプリケーション」としてまとめて称せられる)。

従来のコンピュータシステムは、典型的には、いくつかの機能構成要素を含んでいる。これらの構成要素は、中央処理装置(CPU)、メインメモリ入出力(「I/O」)装置、大容量記憶装置を含んでいてもよい。従来のシステムでは、メインメモリは、システムバスまたはローカルメモリバスを介してCPUに接続されている。メインメモリは、実行時間でメインメモリに記憶されるデータおよび/またはプログラム情報CPUアクセスを提供するために使用されている。典型的には、メインメモリは、ランダムアクセスメモリ(RAM)回路から構成されている。CPUおよびメインメモリを有するコンピュータシステムは、しばしば、ホストシステムと称せられる。

大容量記憶は、典型的には、データを保持するために使用される。一般的には、大容量記憶に記憶されたプログラムは、CPUによって実行される前に、メインメモリにコピーされる。普通の大容量記憶装置は、フロッピーディスクハードディスク光ディスクおよびテープドライブを含む。

さらに、フラッシュメモリは、不揮発性記憶装置を提供するために使用されてもよい。ホストシステムは、インターフェイスを介して、フラッシュメモリ(この明細書全体にわたって交換可能に「フラッシュ素子」、「フラッシュ」または「フラッシュカード」とも称する)と連動する。フラッシュメモリは、典型的には、情報を記憶するための不揮発性メモリセルアレイを含む。

フラッシュメモリシステムは、最も一般的に、パソコンカメラ等の様々なホストと取り付け可能に接続されるが、そのようなホストシステム内に組み込まれてもよいメモリカードまたはフラッシュドライブの形状で提供される。

フラッシュメモリコントローラは、典型的には、メモリアレイの処理を制御する。メモリコントローラは、マイクロプロセッサ、いくつかの不揮発性読み出し専用メモリ(「ROM」)、揮発性ランダムアクセスメモリ(「RAM」)および1つ以上の特定の回路、例えば、メモリコントローラを通るときにデータからのECCを計算する誤り訂正符号回路(「ECC」)を含む。

商業用フラッシュメモリシステムの初期世代では、メモリセル長方形アレイは、標準ディスクドライブセクタ、すなわち、512バイトのデータ量をそれぞれ記憶した多くのグループセルに分割されていた。16バイトなどのデータの追加量も、ユーザデータおよび/またはそれが記憶されるメモリセルグループに関係する誤り訂正符号(ECC)およびあるいは他のオーバーヘッドデータを記憶するために、各グループに通常含まれている。そのような各グループ中のメモリセルは、ともに消去可能なメモリセルの最小数である。すなわち、消去装置は、有効に、1つのデータセクタおよび含まれている任意のオーバーヘッドデータを記憶するメモリセルの数である。この種のメモリシステムの例は、米国特許第5,602,987号(特許文献7)および第6,426,893号(特許文献7)で説明されている。それらをデータで再プログラムする前に、メモリセルを消去する必要があることは、フラッシュメモリの特徴である。

従来のシステムでは、ホストは、ファイルシステムを維持し、論理クラスタファイルデータを割り当て、ここで、クラスタサイズは、典型的には固定されている。フラッシュ素子は、複数の論理セクタに分割され、ホストは、複数の論理セクタを含むクラスタ内で空間を割り当てる。クラスタは、論理アドレスの細分であり、クラスタマップは、ファイルアロケーションテーブル(「FAT」)として指定される。FATは、記憶装置自体に通常記憶される。

従来のシステムで、メモリにデータを書き込む場合、ホストは、典型的には、メモリシステムの連続仮想アドレス空間内に、データのセクタ、クラスタまたは他のユニット固有の論理アドレスを割り当てる。ディスクオペレーティングシステムDOS)のように、ホストは、メモリシステムの論理アドレス空間内のアドレスにデータを書き込み、アドレスからデータを読み出す。メモリシステム内のコントローラは、メモリアレイ内物理アドレスにホストから受信される論理アドレスを変換し、ここで、データは、実際に記憶され、次いで、これらのアドレス変換を把握し続ける。メモリシステムのデータ記憶容量は、メモリシステムのために定義された論理アドレス空間全体にわたってアドレス可能なデータ量と少なくとも同じくらいである。

前述した同時係属中の特許出願に開示されるように、発明者は、予め、単一の大容量記憶システムに個々の装置(つまり、大容量記憶およびフラッシュメモリ)を結合する概念調査した。論理インターフェイスがホストと結合記憶システムとの間でデータを転送するために使用されるこれら一体装置が作動する。

ホストが論理アドレスマッピングに対してファイルを実行する必要がないように、他のファイル記憶装置システム(または形式)が現在開発されている。

したがって、ホストシステムが、特殊なファイル記憶形式を使用するフラッシュメモリシステムおよび論理インターフェイスを使用する従来の論理アドレス空間/形式に今も基づく大容量記憶装置に/から、データを効率的に読み出し/書き込みすることを可能にする方法およびシステムの必要がある。
米国特許出願第10/772,855号
米国特許出願第10/772,789号
米国特許出願第11/060,249号
米国特許出願第11/060,174号
米国特許出願第11/060,248号
アラン・W・シンクレアおよびバリー・ライトによって本願と同時に出願された「フラッシュメモリにおける直接データファイル記憶」という米国仮特許出願
米国特許第5,602,987号
米国特許第6,426,893号
米国特許第5,570,315号
米国特許第5,774,397号
米国特許第6,046,935号
米国特許第6,373,746号
米国特許第6,456,528号
米国特許第6,522,580号
米国特許第6,771,536号
米国特許第6,781,877号
米国公開特許出願第2003/0147278号
米国特許第6,763,424号

概要

ホストシステムとデータ記憶システムとの間でデータを転送するためのシステムおよび方法を提供する。システムは、ファイルベースプロトコルを使用して、データ記憶システムとホストシステムとの間でデータを転送するインターフェイスを含み、データ記憶システムは、第1の大容量記憶装置および第2の大容量記憶装置を含み、第1の大容量記憶装置は、固体不揮発性メモリ素子であり、第2の大容量記憶装置は、非固体のメモリ素子である。第1の大容量記憶装置は、ファイルバイファイル形式でデータを記憶する1次記憶装置として作動するフラッシュメモリ装置である。第2の大容量記憶装置は、2次記憶装置として作動し、論理インターフェイスを介して受信されるデータを記憶する磁気ディスクドライブである。

目的

メインメモリは、実行時間でメインメモリに記憶されるデータおよび/またはプログラム情報にCPUアクセスを提供する

効果

実績

技術文献被引用数
2件
牽制数
3件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

データ記憶システムであって、ファイルベースプロトコルを使用するインターフェイスを介してホストシステム連動する第1の不揮発性大容量記憶装置と、第2の不揮発性大容量記憶装置と、を含み、第2の不揮発性大容量記憶装置は、第1の不揮発性大容量記憶装置と連動し、ホストシステムからのデータは、第1の不揮発性大容量記憶装置および/または第2の不揮発性大容量記憶装置に記憶されることが可能であるデータ記憶システム。

請求項2

請求項1記載のデータ記憶システムにおいて、第1の不揮発性大容量記憶装置は、第1の不揮発性大容量記憶装置と第2の不揮発性大容量記憶装置との間でデータ転送を可能とする第2の不揮発性大容量記憶装置の論理アドレス空間に対してデータファイルマッピングするディスクファイルシステムを含むデータ記憶システム。

請求項3

請求項1記載のデータ記憶システムにおいて、第1の不揮発性大容量記憶装置は、1次記憶装置として作動する固体メモリであるデータ記憶システム。

請求項4

請求項1記載のデータ記憶システムにおいて、第2の不揮発性大容量記憶装置は、2次記憶装置として作動する磁気ハードディスクであるデータ記憶システム。

請求項5

請求項1記載のデータ記憶システムにおいて、第1の不揮発性大容量記憶装置中のインターフェイスは、ファイルバイファイル形式フラッシュメモリからデータにアクセスする直接データファイルインターフェイスと連動するデータ記憶システム。

請求項6

請求項5記載のデータ記憶システムにおいて、インターフェイスは、ファイルベースの形式を使用して、フラッシュメモリからホストシステムにデータを転送するデータ記憶システム。

請求項7

請求項5記載のデータ記憶システムにおいて、インターフェイスは、直接データファイルインターフェイスと連動して、第2の不揮発性大容量記憶装置に、および第2の不揮発性大容量記憶装置からデータを転送し、直接データファイルインターフェイスは、ディスクファイルシステムおよびディスクドライバと連動して、論理インターフェイスを介して第2の不揮発性大容量記憶装置からデータを送信および/または受信するデータ記憶システム。

請求項8

請求項1記載のデータ記憶システムであって、第1の不揮発性大容量記憶装置は、第2の不揮発性大容量記憶装置のアクセス時間より速いアクセス時間およびその記憶容量より少ない記憶容量を有し、第2の不揮発性大容量記憶装置が利用不可能な状態ならば、第1の不揮発性大容量記憶装置からデータがアクセスされることが可能であり、または、第2の不揮発性大容量記憶装置が利用可能な状態である場合、第1の不揮発性大容量記憶装置と第2の不揮発性大容量記憶装置との両方からデータがアクセスされることが可能であるデータ記憶システム。

請求項9

請求項1記載のデータ記憶システムにおいて、第1の不揮発性大容量記憶装置は、ホストシステムから受信されるファイルの第1のセグメントを保存するために使用され、第2の不揮発性大容量記憶装置は、ホストシステムから受信されるファイルの第2のセグメントを記憶するために使用されるデータ記憶システム。

請求項10

請求項1記載のデータ記憶システムにおいて、第1の不揮発性大容量記憶装置は、第2の不揮発性大容量記憶装置からデータを読み出すためのキャッシュとして作動するデータ記憶システム。

請求項11

請求項1記載のデータ記憶システムにおいて、第1の不揮発性大容量記憶装置は、第2の不揮発性大容量記憶装置に書き込まれるデータに対して書き込みキャッシュとして作動するデータ記憶システム。

請求項12

請求項1記載のデータ記憶システムにおいて、データ記憶システムのメモリコントローラは、ホストシステムから受信されるファイルデータがどこに記憶されるべきかを決定するデータ記憶システム。

請求項13

請求項1記載のデータ記憶システムにおいて、第1の不揮発性大容量記憶装置は、第2の不揮発性大容量記憶装置に書き込まれるデータに対して一時的なバックアップとして機能するデータ記憶システム。

請求項14

請求項1記載のデータ記憶システムにおいて、第1の不揮発性大容量記憶装置は、第1の不揮発性大容量記憶装置からコピーされ、ホストシステムによって実行される実行アプリケーションプログラムファイルを記憶するデータ記憶システム。

請求項15

請求項1記載のデータ記憶システムにおいて、不応期間にバックグラウンド処理として、第1の不揮発性大容量記憶装置と第2の不揮発性大容量記憶装置との間でデータがコピーされるデータ記憶システム。

請求項16

請求項15記載のデータ記憶システムにおいて、第1の不揮発性大容量記憶装置と第2の不揮発性大容量記憶装置との間でデータを転送するためにバッファが使用されるデータ記憶システム。

請求項17

データ記憶システムにおいて、ファイルベースのプロトコルを介してホストシステムと連動する第1の不揮発性大容量記憶装置を含み、第1の不揮発性大容量記憶装置は、第2の不揮発性大容量記憶装置と連動するためのディスクドライバを含み、ホストシステムからのファイルデータが、第1の不揮発性大容量記憶装置および/または第2の不揮発性大容量記憶装置に記憶されることが可能であるデータ記憶システム。

請求項18

請求項17記載のデータ記憶システムにおいて、第1の不揮発性大容量記憶装置は、第2の不揮発性大容量記憶装置の論理アドレス空間にデータファイルをマッピングするディスクファイルシステムを含み、第1の不揮発性大容量記憶装置と第2の不揮発性大容量記憶装置との間でデータ転送を可能とするデータ記憶システム。

請求項19

請求項17記載のデータ記憶システムにおいて、第1の不揮発性大容量記憶装置は、1次記憶装置として作動する固体メモリであるデータ記憶システム。

請求項20

請求項17記載のデータ記憶システムにおいて、第2の不揮発性大容量記憶装置は、2次記憶装置として作動する磁気ハードディスクであるデータ記憶システム。

請求項21

請求項17記載のデータ記憶システムにおいて、第1の不揮発性大容量記憶装置は、第2の不揮発性大容量記憶装置のアクセス時間より速いアクセス時間およびその記憶容量より少ない記憶容量を有し、第2の不揮発性大容量記憶装置が利用不可能な状態ならば、第1の不揮発性大容量記憶装置からデータがアクセスされることが可能であり、または、第2の不揮発性大容量記憶装置が利用可能な状態である場合、第1の不揮発性大容量記憶装置と第2の不揮発性大容量記憶装置との両方からデータがアクセスされることが可能であるデータ記憶システム。

請求項22

請求項17記載のデータ記憶システムにおいて、第1の不揮発性大容量記憶装置は、ホストシステムから受信されるファイルの第1のセグメントを保存するために使用され、第2の不揮発性大容量記憶装置は、ホストシステムから受信されるファイルの第2のセグメントを記憶するために使用されるデータ記憶システム。

請求項23

請求項17記載のデータ記憶システムにおいて、第1の不揮発性大容量記憶装置は、第2の不揮発性大容量記憶装置からデータを読み出すためのキャッシュとして作動するデータ記憶システム。

請求項24

請求項17記載のデータ記憶システムにおいて、第1の不揮発性大容量記憶装置は、第2の不揮発性大容量記憶装置に書き込まれるデータに対して書き込みキャッシュとして作動するデータ記憶システム。

請求項25

請求項17記載のデータ記憶システムにおいて、第1の不揮発性大容量記憶装置は、第2の不揮発性大容量記憶装置に書き込まれるデータに対して一時的なバックアップとして機能するデータ記憶システム。

請求項26

請求項17記載のデータ記憶システムにおいて、第1の不揮発性大容量記憶装置は、第1の不揮発性大容量記憶装置からコピーされ、ホストシステムによって実行される実行アプリケーションプログラムファイルを記憶するデータ記憶システム。

請求項27

請求項17記載のデータ記憶システムにおいて、不応期間にバックグラウンド処理として、第1の不揮発性大容量記憶装置と第2の不揮発性大容量記憶装置との間でデータがコピーされ、また第1の不揮発性大容量記憶装置と第2の不揮発性大容量記憶装置との間でデータを転送するためにバッファが使用されることが可能であるデータ記憶システム。

請求項28

第1の不揮発性大容量記憶装置および第2の不揮発性大容量記憶装置を含む、大容量記憶システムにホストシステムによって送信されるデータを書き込む方法であって、個々のファイル内の固有ファイル識別子およびオフセットによってデータの個々のファイルを識別するステップであって、ホストシステムは、固有ファイル識別子およびオフセットを生成し、大容量記憶システムにファイル識別子およびオフセットを送信するステップと、第1の不揮発性記憶装置において空間が利用可能ならば、第1の不揮発性大容量記憶装置にデータを記憶するステップと、第1の不揮発性大容量記憶装置においてファイルに対する記憶空間が利用不可能であるならば、第1の不揮発性大容量記憶装置から第2の不揮発性大容量記憶装置にデータを転送するためのコピー処理予定を決めるステップと、を含む方法。

請求項29

請求項28記載の方法において、大容量記憶システムは、第1の不揮発性大容量記憶装置および/または第2の不揮発性大容量記憶装置にデータが記憶されるべきかどうかを決定する方法。

請求項30

請求項29記載の方法において、第1のセグメントが第1の不揮発性大容量記憶装置に記憶されるとともに第2のセグメントが第2の不揮発性大容量記憶装置に記憶されるように、ホストシステムによって送信されるファイルは分割される方法。

請求項31

請求項28記載の方法において、第1の不揮発性大容量記憶装置は、1次記憶装置として作動する固体メモリである方法。

請求項32

請求項28記載の方法において、第2の不揮発性大容量記憶装置は、2次記憶装置として作動する磁気ハードディスクである方法。

請求項33

第1の不揮発性大容量記憶装置および第2の不揮発性大容量記憶装置を含む、大容量記憶システムからデータを読み出す方法であって、ファイルに対して個々の固有ファイル識別子およびオフセットを受信するステップであって、ホストシステムが固有ファイル識別子およびオフセットを生成し、データが大容量記憶システムから読み出される大容量記憶システムにファイル識別子およびオフセットを送信するステップと、第1の不揮発性大容量記憶装置または第2の不揮発性大容量記憶装置にファイルが位置するかどうかを決定するステップと、ファイルが第1の不揮発性大容量記憶装置に位置するならば、第1の不揮発性大容量記憶装置からデータにアクセスするステップと、を含む方法。

請求項34

請求項33記載の方法において、要求されるファイルの第1のセグメントが第1の不揮発性大容量記憶装置に記憶されるとともに、第2のセグメントが第2の不揮発性大容量記憶装置に記憶されるならば、第2のセグメントが第2の不揮発性大容量記憶装置からアクセスされる間に、第1のセグメントは、ホストシステムに転送される方法。

請求項35

請求項33記載の方法において、第1の不揮発性大容量記憶装置は、1次記憶装置として作動する固体メモリである方法。

請求項36

請求項33記載の方法において、第2の不揮発性大容量記憶装置は、2次記憶装置として作動する磁気ハードディスクである方法。

請求項37

第1の不揮発性大容量記憶装置および第2の不揮発性大容量記憶装置を含む、大容量記憶システムにホストシステムによって送信されるデータを書き込む方法であって、個々のファイル内の固有ファイル識別子およびオフセットによってデータの個々のファイルを識別するステップであって、ホストシステムは、固有ファイル識別子およびオフセットを生成し、大容量記憶システムにファイル識別子およびオフセットを送信するステップと、第1の不揮発性記憶装置において空間が利用可能ならば、第1の不揮発性大容量記憶装置にファイルデータを書き込むステップと、ファイルデータが分割されるべきかどうかを決定するステップと、第2の不揮発性大容量記憶装置にファイルセグメントをコピーするステップと、を含む方法。

請求項38

請求項37記載の方法において、第1の不揮発性大容量記憶装置は、1次記憶装置として作動する固体メモリである方法。

請求項39

請求項37記載の方法において、第2の不揮発性大容量記憶装置は、2次記憶装置として作動する磁気ハードディスクである方法。

請求項40

第1の不揮発性大容量記憶装置および第2の不揮発性大容量記憶装置を含む、大容量記憶システムにホストシステムによって送信されるデータを書き込む方法であって、ホストシステムから書き込みコマンドを受信するステップと、第1の不揮発性大容量記憶装置において空間が利用可能ならば、第1のファイルセグメントを書き込むための第1の不揮発性大容量記憶装置に書き込みコマンドを送信するステップと、第2のファイルセグメントを書き込むための第2の不揮発性大容量記憶装置に書き込みコマンドを送信するステップと、第2の不揮発性大容量記憶装置が第2のファイルセグメントを記憶する準備ができている間、第1の不揮発性大容量記憶装置に第1のファイルセグメントを記憶するステップと、第2の不揮発性大容量記憶装置に第2のファイルセグメントを記憶するステップと、を含む方法。

請求項41

請求項40記載の方法において、第1の不揮発性大容量記憶装置は、1次記憶装置として作動する固体メモリである方法。

請求項42

請求項40記載の方法において、第2の不揮発性大容量記憶装置は、2次記憶装置として作動する磁気ハードディスクである方法。

請求項43

請求項40記載の方法において、第1の不揮発性大容量記憶装置において空間が利用不可能ならば、ファイルデータは、第2の不揮発性大容量記憶装置に記憶される方法。

請求項44

ホストシステムとデータ記憶システムとの間でデータを転送するためのシステムであって、ファイルベースのプロトコルを使用して、データ記憶システムとホストシステムとの間でデータを転送するインターフェイスであって、データ記憶システムは、第1の不揮発性大容量記憶装置および第2の不揮発性大容量記憶装置を含み、第1の不揮発性大容量記憶装置は、第1の形式でデータを記憶し、第2の不揮発性大容量記憶装置は、第2の形式でデータを記憶するインターフェイスを含むシステム。

請求項45

請求項44記載のシステムにおいて、第1の不揮発性大容量記憶装置は、第2の不揮発性大容量記憶装置の論理アドレス空間にデータファイルをマッピングするディスクファイルシステムを含み、第1の不揮発性大容量記憶装置と第2の不揮発性大容量記憶装置との間でデータ転送を可能にするシステム。

請求項46

請求項44記載のシステムにおいて、第1の不揮発性大容量記憶装置は、1次記憶装置として作動する固体メモリであるシステム。

請求項47

請求項44記載のシステムにおいて、第2の不揮発性大容量記憶装置は、2次記憶装置として作動する磁気ハードディスクであるシステム。

請求項48

請求項44記載のシステムにおいて、第1の不揮発性大容量記憶装置は、第2の不揮発性大容量記憶装置のアクセス時間より速いアクセス時間およびその記憶容量より少ない記憶容量を有し、第2の不揮発性大容量記憶装置が利用不可能な状態であるならば、第1の不揮発性大容量記憶装置からデータがアクセスされることが可能であり、または、第2の不揮発性大容量記憶装置が利用可能な状態である場合、第1の不揮発性大容量記憶装置と第2の不揮発性大容量記憶装置との両方からデータがアクセスされることが可能であるシステム。

請求項49

請求項44記載のシステムにおいて、第1の不揮発性大容量記憶装置は、ホストシステムから受信されるファイルの第1のセグメントを保存するために使用され、第2の不揮発性大容量記憶装置は、ホストシステムから受信されるファイルの第2のセグメントを記憶するために使用されるシステム。

請求項50

請求項44記載のシステムにおいて、第1の不揮発性大容量記憶装置は、第2の不揮発性大容量記憶装置からデータを読み出すためのキャッシュとして作動するシステム。

請求項51

請求項44記載のシステムにおいて、第1の不揮発性大容量記憶装置は、第2の不揮発性大容量記憶装置に書き込まれるデータに対して書き込みキャッシュとして作動するシステム。

請求項52

請求項44記載のシステムにおいて、データ記憶システムのメモリコントローラは、ホストシステムから受信されるファイルデータがどこで記憶されるべきかを決定するシステム。

請求項53

請求項44記載のシステムにおいて、第1の不揮発性大容量記憶装置は、第2の不揮発性大容量記憶装置に書き込まれるデータに対して一時的なバックアップとして機能するシステム。

請求項54

請求項44記載のシステムにおいて、第1の不揮発性大容量記憶装置は、第1の不揮発性大容量記憶装置からコピーされ、ホストシステムによって実行される実行アプリケーションプログラムファイルを記憶するシステム。

請求項55

請求項44記載のシステムにおいて、不応期間にバックグラウンド処理として、第1の不揮発性大容量記憶装置と第2の不揮発性大容量記憶装置との間でデータがコピーされるシステム。

請求項56

請求項55記載のシステムにおいて、第1の不揮発性大容量記憶装置と第2の不揮発性大容量記憶装置との間でデータを転送するためにバッファが使用されるシステム。

請求項57

ホストシステムとデータ記憶システムとの間でデータを転送するためのシステムであって、ファイルベースのプロトコルを使用して、データ記憶システムとホストシステムとの間でデータを転送するインターフェイスであって、データ記憶システムは、第1の大容量記憶装置および第2の大容量記憶装置を含み、第1の大容量記憶装置は、固体不揮発性メモリ素子であり、第2の大容量記憶装置は、非固体のメモリ素子であるインターフェイスを含むシステム。

請求項58

請求項57記載のシステムにおいて、第1の大容量記憶装置は、1次記憶装置として作動するフラッシュメモリ装置であるシステム。

請求項59

請求項57記載のシステムにおいて、第2の大容量記憶装置は、2次記憶装置として作動する磁気ディスクドライブであるシステム。

請求項60

請求項57記載のシステムにおいて、第1の大容量記憶装置は、ファイルバイファイル形式でデータを記憶するシステム。

請求項61

請求項57記載のシステムにおいて、第2の大容量記憶装置は、論理インターフェイスを介して受信されるデータを記憶するシステム。

請求項62

請求項57記載のシステムにおいて、第1の大容量記憶装置および第2の大容量記憶装置は、異なる形式を使用して、データを記憶するシステム。

請求項63

請求項57記載のシステムにおいて、第1の大容量記憶装置および第2の大容量記憶装置は、同様の形式を使用して、データを記憶するシステム。

請求項64

請求項57記載のシステムにおいて、第1の大容量記憶装置は、第2の大容量記憶装置の論理アドレス空間にデータファイルをマッピングするディスクファイルシステムを含み、第1の大容量記憶装置と第2の大容量記憶装置との間でデータ転送を可能とするシステム。

請求項65

請求項57記載のシステムにおいて、第1の大容量記憶装置は、第2の大容量記憶装置のアクセス時間より速いアクセス時間およびその記憶容量より少ない記憶容量を有し、第2の大容量記憶装置が利用不可能な状態であるならば、第1の大容量記憶装置からデータがアクセスされることが可能であり、または、第2の大容量記憶装置が利用可能な状態である場合、第1の大容量記憶装置と第2の大容量記憶装置との両方からデータがアクセスされることが可能であるシステム。

請求項66

請求項57記載のシステムにおいて、第1の大容量記憶装置は、ホストシステムから受信されるファイルの第1のセグメントを保存するために使用され、第2の大容量記憶装置は、ホストシステムから受信されるファイルの第2のセグメントを記憶するために使用されるシステム。

請求項67

請求項57記載のシステムにおいて、第1の大容量記憶装置は、第2の大容量記憶装置からデータを読み出すためのキャッシュとして作動するシステム。

請求項68

請求項57記載のシステムにおいて、第1の大容量記憶装置は、第2の大容量記憶装置に書き込まれるデータに対して書き込みキャッシュとして作動するシステム。

請求項69

請求項57記載のシステムにおいて、データ記憶システムのメモリコントローラは、ホストシステムから受信されるファイルデータがどこで記憶されるべきかを決定するシステム。

請求項70

請求項57記載のシステムにおいて、第1の大容量記憶装置は、第2の大容量記憶装置に書き込まれるデータに対して一時的なバックアップとして機能するシステム。

請求項71

請求項57記載のシステムにおいて、第1の大容量記憶装置は、第1の大容量記憶装置からコピーされ、ホストシステムによって実行される実行アプリケーションプログラムファイルを記憶するシステム。

請求項72

請求項57記載のシステムにおいて、不応期間にバックグラウンド処理として、第1の大容量記憶装置と第2の大容量記憶装置との間でデータがコピーされるシステム。

請求項73

請求項72記載のシステムにおいて、第1の大容量記憶装置と第2の大容量記憶装置との間でデータを転送するためにバッファが使用されるシステム。

技術分野

0001

本発明は、概して記憶装置に関し、より詳細には、直接データファイル記憶インターフェイスを使用するデュアルメディア記憶装置に関する。

背景技術

0002

関連出願の相互参照
本願は、その全体が本願明細書において参照により援用されている以下の同時係属中の米国特許出願に関する。以下の特許出願とは、2005年2月4日に出願されたアラン・W・シンクレアが発明者である「デュアルメディア記憶装置」という米国特許出願第10/772,855号(代理人整理番号:SDK01P018)(特許文献1)、2005年2月4日に出願されたアラン・W・シンクレアが発明者である「大容量記憶アクセラレータ」という米国特許出願第10/772,789号(代理人整理番号:SDK1P019)(特許文献2)、2005年2月16日に出願されたアラン・W・シンクレアおよびピーター・J・スミスが発明者である「フラッシュメモリにおける直接データファイル記憶」という米国特許出願第11/060,249号(代理人整理番号:SDK0380.US0)(特許文献3)、2005年2月16日に出願されたアラン・W・シンクレアおよびピーター・J・スミスが発明者である「フラッシュメモリにおける直接データファイルのプログラミングおよび削除」という米国特許出願第11/060,174号(代理人整理番号:SDK0380.US1)(特許文献4)、2005年2月16日に出願されたアラン・W・シンクレアおよびピーター・J・スミスが発明者である「フラッシュメモリにおける直接データファイル記憶実施技術」という米国特許出願第11/060,248号(代理人整理番号:SDK0380.US2) (特許文献5)、アラン・W・シンクレアおよびバリーライトによって本願と同時に出願された「フラッシュメモリにおける直接データファイル記憶」という米国仮特許出願(特許文献6)である(以下、前述した特許出願は、「直接データファイル記憶アプリケーション」としてまとめて称せられる)。

0003

従来のコンピュータシステムは、典型的には、いくつかの機能構成要素を含んでいる。これらの構成要素は、中央処理装置(CPU)、メインメモリ入出力(「I/O」)装置、大容量記憶装置を含んでいてもよい。従来のシステムでは、メインメモリは、システムバスまたはローカルメモリバスを介してCPUに接続されている。メインメモリは、実行時間でメインメモリに記憶されるデータおよび/またはプログラム情報CPUアクセスを提供するために使用されている。典型的には、メインメモリは、ランダムアクセスメモリ(RAM)回路から構成されている。CPUおよびメインメモリを有するコンピュータシステムは、しばしば、ホストシステムと称せられる。

0004

大容量記憶は、典型的には、データを保持するために使用される。一般的には、大容量記憶に記憶されたプログラムは、CPUによって実行される前に、メインメモリにコピーされる。普通の大容量記憶装置は、フロッピーディスクハードディスク光ディスクおよびテープドライブを含む。

0005

さらに、フラッシュメモリは、不揮発性記憶装置を提供するために使用されてもよい。ホストシステムは、インターフェイスを介して、フラッシュメモリ(この明細書全体にわたって交換可能に「フラッシュ素子」、「フラッシュ」または「フラッシュカード」とも称する)と連動する。フラッシュメモリは、典型的には、情報を記憶するための不揮発性メモリセルアレイを含む。

0006

フラッシュメモリシステムは、最も一般的に、パソコンカメラ等の様々なホストと取り付け可能に接続されるが、そのようなホストシステム内に組み込まれてもよいメモリカードまたはフラッシュドライブの形状で提供される。

0007

フラッシュメモリコントローラは、典型的には、メモリアレイの処理を制御する。メモリコントローラは、マイクロプロセッサ、いくつかの不揮発性読み出し専用メモリ(「ROM」)、揮発性ランダムアクセスメモリ(「RAM」)および1つ以上の特定の回路、例えば、メモリコントローラを通るときにデータからのECCを計算する誤り訂正符号回路(「ECC」)を含む。

0008

商業用フラッシュメモリシステムの初期世代では、メモリセル長方形アレイは、標準ディスクドライブセクタ、すなわち、512バイトのデータ量をそれぞれ記憶した多くのグループセルに分割されていた。16バイトなどのデータの追加量も、ユーザデータおよび/またはそれが記憶されるメモリセルグループに関係する誤り訂正符号(ECC)およびあるいは他のオーバーヘッドデータを記憶するために、各グループに通常含まれている。そのような各グループ中のメモリセルは、ともに消去可能なメモリセルの最小数である。すなわち、消去装置は、有効に、1つのデータセクタおよび含まれている任意のオーバーヘッドデータを記憶するメモリセルの数である。この種のメモリシステムの例は、米国特許第5,602,987号(特許文献7)および第6,426,893号(特許文献7)で説明されている。それらをデータで再プログラムする前に、メモリセルを消去する必要があることは、フラッシュメモリの特徴である。

0009

従来のシステムでは、ホストは、ファイルシステムを維持し、論理クラスタファイルデータを割り当て、ここで、クラスタサイズは、典型的には固定されている。フラッシュ素子は、複数の論理セクタに分割され、ホストは、複数の論理セクタを含むクラスタ内で空間を割り当てる。クラスタは、論理アドレスの細分であり、クラスタマップは、ファイルアロケーションテーブル(「FAT」)として指定される。FATは、記憶装置自体に通常記憶される。

0010

従来のシステムで、メモリにデータを書き込む場合、ホストは、典型的には、メモリシステムの連続仮想アドレス空間内に、データのセクタ、クラスタまたは他のユニット固有の論理アドレスを割り当てる。ディスクオペレーティングシステムDOS)のように、ホストは、メモリシステムの論理アドレス空間内のアドレスにデータを書き込み、アドレスからデータを読み出す。メモリシステム内のコントローラは、メモリアレイ内物理アドレスにホストから受信される論理アドレスを変換し、ここで、データは、実際に記憶され、次いで、これらのアドレス変換を把握し続ける。メモリシステムのデータ記憶容量は、メモリシステムのために定義された論理アドレス空間全体にわたってアドレス可能なデータ量と少なくとも同じくらいである。

0011

前述した同時係属中の特許出願に開示されるように、発明者は、予め、単一の大容量記憶システムに個々の装置(つまり、大容量記憶およびフラッシュメモリ)を結合する概念調査した。論理インターフェイスがホストと結合記憶システムとの間でデータを転送するために使用されるこれら一体装置が作動する。

0012

ホストが論理アドレスマッピングに対してファイルを実行する必要がないように、他のファイル記憶装置システム(または形式)が現在開発されている。

0013

したがって、ホストシステムが、特殊なファイル記憶形式を使用するフラッシュメモリシステムおよび論理インターフェイスを使用する従来の論理アドレス空間/形式に今も基づく大容量記憶装置に/から、データを効率的に読み出し/書き込みすることを可能にする方法およびシステムの必要がある。
米国特許出願第10/772,855号
米国特許出願第10/772,789号
米国特許出願第11/060,249号
米国特許出願第11/060,174号
米国特許出願第11/060,248号
アラン・W・シンクレアおよびバリー・ライトによって本願と同時に出願された「フラッシュメモリにおける直接データファイル記憶」という米国仮特許出願
米国特許第5,602,987号
米国特許第6,426,893号
米国特許第5,570,315号
米国特許第5,774,397号
米国特許第6,046,935号
米国特許第6,373,746号
米国特許第6,456,528号
米国特許第6,522,580号
米国特許第6,771,536号
米国特許第6,781,877号
米国公開特許出願第2003/0147278号
米国特許第6,763,424号

0014

本発明の1つの態様では、ホストシステムとデータ記憶システムとの間でデータを転送するためのシステムを提供する。システムは、ファイルベースプロトコルを使用して、データ記憶システムとホストシステムとの間でデータを転送するインターフェイスを含み、ここで、データ記憶システムは、第1の大容量記憶装置および第2の大容量記憶装置を含み、第1の大容量記憶装置は、固体不揮発性メモリ素子であり、第2の大容量記憶装置は、非固体のメモリ素子である。

0015

第1の大容量記憶装置は、ファイルバイファイル形式でデータを記憶する1次記憶装置として作動するフラッシュメモリ装置である。第2の大容量記憶装置は、2次記憶装置として作動し、論理インターフェイスを介して受信されるデータを記憶する磁気ディスクドライブである。

0016

本発明の他の態様では、ホストシステムとデータ記憶システムとの間でデータを転送するためのシステムを提供する。システムは、ファイルベースのプロトコルを使用して、データ記憶システムとホストシステムとの間でデータを転送するインターフェイスを含み、ここで、データ記憶システムは、第1の不揮発性大容量記憶装置および第2の不揮発性大容量記憶装置を含み、第1の不揮発性大容量記憶装置は、第1の形式でデータを記憶し、第2の不揮発性大容量記憶装置は、第2の形式でデータを記憶する。

0017

本発明のさらに他の態様では、データ記憶システムを提供する。データ記憶システムは、ファイルベースのプロトコルを使用するインターフェイスを介してホストシステムと連動する第1の不揮発性大容量記憶装置と、第2の不揮発性大容量記憶装置と、を含み、ここで、第2の不揮発性大容量記憶装置は、第1の不揮発性大容量記憶装置と連動し、ホストシステムからのデータは、第1の不揮発性大容量記憶装置および/または第2の不揮発性大容量記憶装置に記憶されることが可能である。

0018

本発明の他の態様では、データ記憶システムを提供する。データ記憶システムは、ファイルベースのプロトコルを介して、ホストシステムと連動する第1の不揮発性大容量記憶装置を含み、ここで、第1の不揮発性大容量記憶装置は、第2の不揮発性大容量記憶装置と連動するディスクドライバを含み、ホストシステムからのファイルデータは、第1の不揮発性大容量記憶装置および/または第2の不揮発性大容量記憶装置に記憶されることが可能である。

0019

本発明のさらに他の態様では、大容量記憶システムにホストシステムによって送信されるデータを書き込む方法を提供する。大容量記憶システムは、第1の不揮発性大容量記憶装置および第2の不揮発性大容量記憶装置を含む。その方法は、個々のファイル内の固有ファイル識別子およびオフセットによってデータの個々のファイルを識別するステップであって、ホストシステムは、固有ファイル識別子およびオフセットを生成し、大容量記憶システムにファイル識別子およびオフセットを送信するステップと、空間が第1の不揮発性記憶装置において利用可能なら、第1の不揮発性大容量記憶装置にデータを記憶するステップと、ファイルのための記憶空間が第1の不揮発性大容量記憶装置において利用不可能であるなら、次いで、第1の不揮発性大容量記憶装置から第2の不揮発性大容量記憶装置にデータを転送するためにコピー処理予定を決めるステップと、を含む。

0020

本発明の他の態様では、大容量記憶システムからデータを読み出す方法を提供する。大容量記憶システムは、第1の不揮発性大容量記憶装置および第2の不揮発性大容量記憶装置を含む。その方法は、ファイルのための個々の固有ファイル識別子およびオフセットを受信するステップであって、ホストシステムは、固有ファイル識別子およびオフセットを生成し、データが大容量記憶システムから読み出されるために、大容量記憶システムにファイル識別子およびオフセットを送信するステップと、第1の不揮発性大容量記憶装置または第2の不揮発性大容量記憶装置にファイルが位置するかどうかを決定するステップと、ファイルが第1の不揮発性大容量記憶装置に位置するなら、第1の不揮発性大容量記憶装置からデータにアクセスするステップと、を含む。

0021

本発明のさらに他の態様では、第1の不揮発性大容量記憶装置および第2の不揮発性大容量記憶装置を有する大容量記憶システムにホストシステムによって送信されるデータを書き込むための方法を提供する。その方法は、個々のファイル内の固有ファイル識別子およびオフセットによってデータの個々のファイルを識別するステップであって、ホストシステムは、固有ファイル識別子およびオフセットを生成し、大容量記憶システムにファイル識別子およびオフセットを送信するステップと、空間が第1の不揮発性大容量記憶装置において利用可能なら、第1の不揮発性大容量記憶装置にファイルデータを書き込むステップと、ファイルデータが分割されるべきかどうかを決定するステップと、第2の不揮発性大容量記憶装置にファイルセグメントをコピーするステップと、を含む。

0022

本発明のさらに他の態様では、大容量記憶システムにホストシステムによって送信されるデータを書き込むための方法を提供し、ここで、大容量記憶システムは、第1の不揮発性大容量記憶装置および第2の不揮発性大容量記憶装置を含む。その方法は、ホストシステムから書き込みコマンドを受信するステップと、空間が第1の不揮発性大容量記憶装置において利用可能なら、第1のファイルセグメントを書き込むために第1の不揮発性大容量記憶装置に書き込みコマンドを送信するステップと、第2のファイルセグメントを書き込むために第2の不揮発性大容量記憶装置に書き込みコマンドを送信するステップと、第2の不揮発性大容量記憶装置が第2のファイルセグメントを記憶する準備ができている間、第1の不揮発性大容量記憶装置に第1のファイルセグメントを記憶するステップと、第2の不揮発性大容量記憶装置に第2のファイルセグメントを記憶するステップと、を含む。

0023

本発明の本質をすぐに理解するように、この概要を提供する。本発明についてのより完全な理解を、添付の図面に関連して本発明の好ましい実施形態についての以下の詳細な説明を参照することによって得ることが可能である。

0024

本発明の前述した特徴および他の特徴を、好ましい実施形態の図面を参照して以下に説明する。図面において、同じ構成要素は、同じ参照数字を有する。例示する実施形態は、例示することを意図し、本発明を限定しない。図面は、以下の図を含む。

発明を実施するための最良の形態

0025

好ましい実施形態の理解を促進するために、ホストシステム/フラッシュ素子の一般的なアーキテクチャおよび処理について記載する。次いで、好ましい実施形態の具体的なアーキテクチャおよび処理を、一般的なアーキテクチャを参照して記載する。

0026

ホストシステム:
図1Aは、本発明を利用することができる汎用計算機システム(ホストシステム)100を示す。システム100の構成要素は、コンピュータ160、マウス170などの様々な入出力(「I/O」)装置、キーボード165、モニタ120およびプリンタ125を含む。

0027

図1Bは、計算機システム100の概念化された説明を示す。構成要素130は、ユーザが、計算機システム100と情報をやりとりすることを可能にするマウスやキーボードなどの複数の入力装置を表わすことを意図する。同様に、出力135は、1つ以上の出力装置、例えば、モニタ120やプリンタ125を表す。

0028

計算機システム100は、システムバス155に接続された中央処理装置(「CPU」)(またはマイクロプロセッサ)175を含む。メインメモリ145(例えば、ランダムアクセスメインメモリ(「RAM」))もシステムバス155に接続され、CPU175に記憶装置へのアクセスを提供する。プログラムの命令を実行する場合、CPU175は、RAM145にそれらのプロセスステップを記憶し、RAM145から記憶されたプロセスステップを実行する。

0029

読み出し専用メモリ(「ROM」)(図示せず)は、スタートアップ命令シーケンスまたは基本入出力オペレーティングシステム(BIOS)シーケンスなどの不変命令シーケンスを記憶するために設けられる。

0030

大容量記憶装置150は、計算機システム100が、永久に大量のデータを保持することを可能にする。大容量記憶装置150を、以下に詳細に説明する。

0031

大容量記憶システム:
図2Aは、大容量記憶システム(仮想フラッシュ記憶または仮想記憶装置と称してもよい)150のブロック図を示す。大容量記憶システム150は、ファイルインターフェイスチャンネル103を介してホストシステム100と連動する。ファイルインターフェイス103は、以下に記載するファイルベースのプロトコルを使用して、大容量記憶150の構成要素とホストシステム100との間でデータ/コマンドの転送を促進する。

0032

大容量記憶150は、1次記憶(1次記憶装置とも称する)として直接データファイルフラッシュ素子(または固体の不揮発性メモリ素子)116(図2Nで116として示されている)および2次記憶(2次記憶装置とも称する)としての高容量磁気ディスク(または他の非固体のメモリ素子、例えば、テープ駆動)110を使用する仮想フラッシュファイル記憶である。データは、ファイルバイファイル形式でフラッシュ素子116に記憶される。

0033

2次記憶110は、ディスクコントローラ111Aおよび記憶装置111Bを含む。ディスクコントローラ111Aは、1次記憶116と2次記憶110との間でのデータ転送を促進する。2次記憶110は、非固体のメモリ素子、例えば、ハードディスク、テープ駆動および他のものであってもよいことは注目すべきである。

0034

実際には、磁気ディスク110がフラッシュ素子116と共に使用される場合、ユーザにとって、大容量記憶装置150は、フラッシュ記憶装置であるように思われる。

0035

1次記憶116は、ホストシステム100の不可欠な部分である一方で、従来のハードディスクとして作動する2次記憶110は、ホストシステム100の外部にあってもよいことは注目すべきである。さらに、1次記憶116および2次記憶110は、同様または異なる形式を使用してデータを記憶することができる。

0036

フラッシュ素子116(または本願明細書全体にわたって交換可能に使用される1次記憶116)は、コントローラモジュール116A(「メモリシステムコントローラ」または「メモリコントローラ」または「コントローラ」と称してもよい)および固体のメモリモジュール116Bを含む。コントローラ116Aは、ファイルインターフェイス103または他の周辺機器用バス(図示せず)またはシステムバス155を介してホストシステム100と連動する。

0037

市販の様々なフラッシュ素子(またはフラッシュメモリカード)が現在あり、例として、コンパクトフラッシュ(CF)、マルチメディアカードMMC)、セキュアデジタル(SD)、ミニSD、メモリスティックスマートメディアおよびトランスフラッシュカードが挙げられる。これらの各カードは、その標準化された規格によって固有の機械的および/または電気的インターフェイスを有するが、各々に含まれたフラッシュメモリは、非常に類似している。これらのカードは、すべて、本願の譲受人であるサンディスクコーポレイションから入手可能である。サンディスクは、クルーザー(Cruzer)という商標のもとで、フラッシュドライブのラインも提供し、それは、ホストのUSBレセプタクルに差し込むことによりホストに接続するためのユニバーサルシリアル・バス(USB)プラグを有する小さなパッケージ中の携帯用メモリシステムである。これらの各メモリカードおよびフラッシュドライブは、それらの中のフラッシュメモリのホストおよび制御動作と連動するコントローラを含む。

0038

そのようなメモリカードおよびフラッシュドライブを使用するホストシステムは、多く、多様である。それらとして、パソコン(PC)、ラップトップおよび他の携帯用コンピュータ携帯電話個人用携帯情報端末(PDA)、デジタル静止画カメラ、デジタル動画カメラ、および携帯用オーディオプレイヤが挙げられる。ホストとして、典型的には、1つ以上のタイプのメモリカードまたはフラッシュドライブ用の内蔵レセプタクルが挙げられるが、メモリカードが差し込まれるアダプタを必要とするものもある。

0039

2次記憶110と比較する場合、1次記憶116は、コンパクトであり、様々な可動部を使用する2次記憶110と異なり可動部なしで作動することができるので、衝撃や振動に対してより高い抵抗を有する。

0040

また、1次記憶116は、2次記憶110よりさらに速いシーク時間を有し、つまり、ホストは、2次記憶110からデータを読み出し/2次記憶110にデータを書き込むことができるよりも速く、1次記憶116からデータを読み出し/1次記憶116にデータを書き込むことが可能である。1次記憶116は、典型的には、2次記憶110より少ない記憶容量を有する。大容量記憶システム150は、以下に詳細に説明するより速い直接データファイルフラッシュ記憶装置および高容量記憶装置の両方を有利に提供する。

0041

NORなどの他のアーキテクチャを代わりに使用することもできるが、メモリセルアレイ116BのNANDアーキテクチャが現在好ましい。NANDフラッシュメモリおよびメモリシステムの一部としてのそれらの操作の例として、米国特許第5,570,315号(特許文献9)、第5,774,397号(特許文献10)、第6,046,935号(特許文献11)、第6,373,746号(特許文献12)、第6,456,528号(特許文献13)、第6,522,580号(特許文献14)、第6,771,536号(特許文献15)、および第6,781,877号(特許文献16)、および米国公開特許出願第2003/0147278号(特許文献17)を参照して挙げることができる。

0042

図2Bは、コントローラモジュール116Aの内部アーキテクチャのブロック図を示す。コントローラモジュール116Aは、インターフェイスロジック116Eを介して様々な他の構成要素と連動するマイクロコントローラ116Cを含む。メモリ116Dは、フラッシュ素子116の操作を制御するために、マイクロコントローラ116Cによって使用されるファームウェアおよびソフトウェアの命令を記憶する。メモリ116Dは、揮発性の再プログラム可能なランダムアクセスメモリ(「RAM」)、再プログラム可能でない不揮発性メモリ(「ROM」)、一回限りプログラム可能なメモリ、またはフラッシュ式の再プログラム可能で電気的に消去可能でプログラム可能な読み出し専用メモリ(「EEPROM」)であってもよい。

0043

ホストインターフェイス116Gは、(ファイルインターフェイスを介して)ホストシステム100と連動する一方で、フラッシュインターフェイス116Fは、メモリモジュール116Bと連動する。

0044

図2Cは、以下のさらなる説明で例として使用されるフラッシュメモリセルアレイ(116B)の構成を概念的に説明する。メモリセルの4つのプレーンまたはサブアレイ131〜134は、単一の集積メモリセルチップ、2つのチップ(各チップ上の2つのプレーン)、または4つの別個のチップ上にあってもよい。具体的な配置は、以下の説明にとって重要ではない。もちろん、1,2,8,16またはそれ以上などの他のプレーンの数が、システム内に存在していてもよい。プレーンは、それぞれのプレーン131〜134内に位置するブロック137,138,139および140Aなどの長方形によって、図2Cで示すメモリセルのブロックに個々に分割される。各プレーン内に、数十または数百のブロックがあってもよい。

0045

メモリセルのブロックは、消去のユニットであり、最も少数のメモリセルが、物理的にともに消去可能である。しかし、並列処理の増加について、ブロックは、より大きなメタブロックユニット中で操作される。各プレーンからの1つのブロックは、メタブロックを形成するために論理上ともに結合されている。4つのブロック137〜140Aは、1つのメタブロック141を形成するために示されている。メタブロック内のセルは、すべて、典型的にはともに消去される。メタブロックを形成するために使用されるブロックは、ブロック145〜148から構成された第2のメタブロック143に示すように、それぞれのプレーン内の同じ相対的記憶位置に限定される必要はない。

0046

高いシステム性能のために、プレーンのすべてにわたってメタブロックを拡大することが通常好ましいが、メモリシステムは、異なるプレーンで1つ、2つまたは3つのブロックのいずれかまたはすべてのメタブロックを動的に形成する性能で操作することができる。これは、メタブロックのサイズが、1つのプログラミング操作において記憶のために利用可能なデータの量とより緊密に適合されることを可能にする。

0047

個々のブロックは、図2Dで説明するように、操作上の目的のためにメモリセルのページに順に分割されている。各ブロック131〜134のメモリセルは、例えば、P0〜P7の8ページに分割されている。また、各ブロック内に16,32またはそれ以上のページのメモリセルがあってもよい。ページは、ブロック内でプログラムし、読み出し、一度にプログラムされるデータの最少量を含むブロック内のデータのユニットである。

0048

NANDアーキテクチャでは、ページは、ブロック内のワード線に沿ってメモリセルから形成されている。しかし、メモリシステムの操作上の並列処理を増加させるために、2つ以上のブロック内のそのようなページは、メタページに論理的に結合されてもよい。メタページ151は、図2Dで説明され、4つの各ブロック131〜134からの1つの物理ページから形成されている。メタページ151は、例えば、4つの各ブロックにページP2を含むが、メタページのページは、必ずしも、各ブロック内の同じ相対的記憶位置を有する必要がない。

0049

高いシステム性能のために、4つのプレーンのすべてにわたって平行にデータの最大量をプログラムし読み出すことが好ましいが、メモリシステムは、異なるプレーン中の個別のブロック中で1,2または3ページのいずれかまたはすべてのメタページを形成するために操作することもできる。これは、プログラミングおよび読み出し操作が、便利に平行に扱われてもよいデータの量と適応して一致することを可能にし、メタページの一部が、データでプログラムされないままである場合を低減する。

0050

多数のプレーンの物理ページから形成されたメタページは、図2Dで説明するように、それらの多数のプレーンのワード線の行に沿ってメモリセルを含む。同時に1つのワード線の行でセルのすべてをプログラムするのではなく、それらは、より一般には、2つ以上のインターリーブされたグループ中で交互にプログラムされ、各グループは、(単一ブロック中の)データのページ、または(多数のブロックにわたる)データのメタページを記憶する。一度に代替のメモリセルをプログラムすることによって、データレジスタおよびセンス増幅器を含む1ユニットの周辺回路を、各ビット線ごとに設ける必要はなく、むしろ隣接するビット線間での時分割方式である。これは、周辺回路に必要な基板空間の量を効率よく利用し、メモリセルが、行に沿って密度が増加して包装されることを可能にする。そうでなければ、所定のメモリシステムから利用可能な並列処理を最大にするために、行に沿ってすべてのセルを同時にプログラムすることが好ましい。

0051

図2Eは、ページまたはメタページのデータの2つのセクタ153および155の論理データページを示す。各セクタは、通常、ユーザの512バイトの部分157、または記憶されているシステムデータ、および部分157中のデータまたはそれが記憶されている物理ページまたはブロックに関連するオーバーヘッドデータ用のバイト159の他の数を含む。オーバーヘッドデータのバイトの数は、典型的には、16バイトであり、各セクタ153および155は合計528バイトとする。オーバーヘッド部159は、そのようなオーバーヘッドデータ159から計算されたECCを加えて、プログラミングの間にデータ部157から計算されたECC、その論理アドレス、ブロックが消去され再プログラムされた回数の経験カウント、1つまたはそれ以上の制御フラグ、動作電圧レベル等を含んでいてもよい。または、オーバーヘッドデータ159またはその一部は、他のブロック中の異なるページに記憶されていてもよい。

0052

メモリの並列処理が増加するので、メタブロックのデータ記憶容量が増加し、その結果、データページおよびメタページのサイズも増加する。次いで、データページは、データの2つより多いセクタを含んでいてもよい。データページ中の2つのセクタおよびメタページ当たり2つのデータページで、メタページには4つのセクタがある。このように、各メタページは、2,048バイトのデータを記憶する。これは、高度な並列処理であり、行中のメモリセルの数をさらに増加することができる。この理由で、フラッシュメモリの幅は、ページおよびメタページ中でデータの量を増加させるために拡大される。

0053

前に特定された物理的に小さな再プログラム可能な不揮発性メモリカードおよびフラッシュドライブは、512メガバイト(MB)、1ギガバイト(GB)、2GBおよび4GBのデータ記憶容量で市販され、より高くなってもよい。

0054

図2Fは、ホストとそのような大容量メモリシステムとの間の最も一般的なインターフェイスを説明する。ホストは、ホストによって実行されたアプリケーションソフトウェアまたはファームウェアプログラムによって生成または使用されるデータファイルを処理する。文書処理データファイルは、1例であり、コンピュータを使った設計(CAD)ソフトウェアの描画ファイルは、他の例であり、主として、PC、ラップトップコンピュータ等の一般的なコンピュータホストで見られる。pdf形式の文書も、そのようなファイルである。さらに、デジタルカメラは、メモリカードに記憶される各画像のためにデータファイル(さらにおよび/またはビデオ)を生成する。携帯電話は、電話帳などの内部メモリカード上のファイルからデータを利用する。PDAは、アドレスファイルカレンダーファイル等のいくつかの様々なファイルを記憶し使用する。任意のそのようなアプリケーションでは、メモリカードは、また、ホストを操作するソフトウェアを含んでいてもよい。

0055

ホストとメモリシステムとの間の共通の論理インターフェイスは、図2Fで説明される。連続論理アドレス空間161は、メモリシステムに記憶されることが可能なすべてのデータのためにアドレスを提供することができるほど十分に大きい。ホストアドレス空間は、典型的には、データのクラスタのインクリメントに分割されている。各クラスタは、データの多くのセクタを含むために、所定のホストシステムで設計されてもよく、4〜64のセクタのどこかが一般的である。標準セクタは、512バイトのデータを含む。

0056

3つのファイル1,2,3は、図2Fの例で示され、生成された。ホストシステム上で作動するアプリケーションプログラムは、データの順序集合として各ファイルを生成し、固有の名前または他の参照によってそれを特定する。他のファイルにまだ割り当てられていない十分に利用可能な論理アドレス空間は、ファイル1にホストによって割り当てられる。ファイル1は、利用可能な論理アドレスの連続範囲を割り当てられるために示される。アドレスの範囲も、ホストペレーティングソフトウェアのための特有の範囲などの具体的な目的のために一般的に割り当てられ、次いで、これらのアドレスは、ホストがデータに論理アドレスを割り当てているときに利用されていないとしても、データを記憶するために回避される。

0057

ファイル2が、後にホストによって生成される場合、ホストは、図2Fに示すように、同様に、論理アドレス空間161内の連続アドレスの2つの異なる範囲を割り当てる。ファイルは、割り当てられた連続論理アドレスである必要はないが、むしろ他のファイルに既に割り当てられたアドレス範囲間でアドレスのフラグメントとすることができる。次いで、この例は、ホストによって生成されたさらに他のファイル3が、予め、ファイル1,2および他のデータに割り当てられないホストアドレス空間の割り当てられた他の部分であることを示す。

0058

ホストは、ファイルアロケーションテーブル(FAT)の維持によりメモリ論理アドレス空間を絶えず把握し、ここで、ホストが様々なホストファイルに割り当てる論理アドレスが維持される。FATテーブルは、ホストメモリと同様に、不揮発性メモリに典型的には記憶され、新しいファイルが記憶される場合、ホストによって頻繁に更新され、他のファイルは削除され、ファイル等は訂正される。ホストファイルが削除される場合、例えば、ホストは、次いで、論理アドレスが、ここで、他のデータファイルとともに使用するために利用可能であることを示すために、FATテーブルを更新することにより、削除されたファイルに予め割り当てられた論理アドレスの割り当てを解除する。

0059

ホストは、メモリシステムコントローラがファイルを記憶するために選択する物理位置について注意していない。典型的なホストは、単に、その論理アドレス空間およびその様々なファイルに割り当てられた論理アドレスを知っている。他方、メモリシステムは、典型的なホスト/カードインターフェイスを介して、データが書き込まれている論理アドレス空間の一部のみを知っているが、具体的なホストファイルに割り当てられた論理アドレス、またはホストファイルの数さえ知らない。メモリシステムコントローラ116Aは、ホストデータが記憶されるフラッシュメモリセルアレイ内の固有の物理アドレス中へのデータの記憶または検索のためにホストによって提供される論理アドレスを変換する。ブロック163は、これらの論理−物理アドレス変換の作業テーブルを表わし、メモリシステムコントローラ116Aによって維持される。

0060

メモリシステムコントローラ116Aは、高いレベルでシステムの性能を維持する方法により、メモリアレイ165のブロックおよびメタブロック内にデータファイルを記憶するようにプログラムされている。4つのプレーンまたはサブアレイがこの実例で使用されている。データは、各プレーンからブロックから形成されたメタブロック全体にわたってシステムが可能とする最大限の並列処理で、プログラムされ、読み出されることが好ましい。少なくとも1つのメタブロック167は、予備のブロックとして、メモリコントローラによって使用される操作ファームウェアおよびデータを記憶するために通常割り当てられる。他のメタブロック169または複数のメタブロックは、ホストペレーティングソフトウェア、ホストFATテーブル等の記憶に割り当てられてもよい。物理記憶空間のほとんどは、データファイルの記憶のために残る。

0061

しかし、メモリシステムコントローラ116Aは、受信したデータが、その様々なファイルオブジェクトの中のホストによってどのように割り当てられたかについては分からない。メモリコントローラ116Aが、典型的にホストと情報をやりとりすることから分かるすべては、コントローラの論理−物理アドレステーブル163によって維持されるように、対応する物理アドレスに、ホストによって具体的な論理アドレスに書き込まれたデータが記憶されるということである。

0062

典型的なメモリシステムでは、アドレス空間161内でデータの量を記憶するのに必要であるよりも、記憶容量の2,3の別のブロックが設けられている。これらの別のブロックの1つ以上は、メモリの寿命の間に欠陥になる可能性がある他のブロックの代用に、余分のブロックとして設けられてもよい。個々のメタブロック内に含まれたブロックの論理グループ分けは、通常、メタブロックにもともと割り当てられた欠陥ブロックのための余分のブロックの代用を含み、様々な理由で変更されてもよい。メタブロック171などの1つ以上の追加のブロックが、消去されたブロックプール中に典型的に維持される。

0063

ホストが、メモリシステムにデータを書き込む場合、コントローラ116Aは、ホストによって、消去されたブロックプール中のメタブロック内の物理アドレスに割り当てられた論理アドレスを変換する。次いで、論理アドレス空間161内にデータを記憶するために使用されない他のメタブロックは、結果生じるデータ書き込み操作の間の使用のために、消去されたプールブロックとして消去され、指定される。

0064

元の記憶されたデータが使用されなくなるので、具体的なホスト論理アドレスで記憶されたデータは、新しいデータによって頻繁に上書きされる。メモリシステムコントローラ116Aは、それに応じて、消去されたブロック中に新しいデータを書き込み、次いで、それらの論理アドレスでのデータが記憶される新しい物理ブロックを特定するために、それらの論理アドレスと論理−物理アドレステーブルを交換する。次いで、それらの論理アドレスで元のデータを含むブロックは、消去され、新しいデータの記憶に利用可能になる。書き込み開始時に、消去ブロックプールからの予め消去されたブロック中に十分な記憶容量がないなら、現在のデータ書き込み操作が完了される前に、そのような消去は、しばしば行われるに違いない。これは、システムデータプログラミング速度に悪影響を及ぼす可能性がある。メモリコントローラ116Aは、典型的には、ホストが、それらの同じ論理アドレスに新しいデータを書き込む場合に限り、所定の論理アドレスでのデータが、ホストによって使用されなくなったことが分かる。したがって、メモリの多くのブロックは、一時的に、そのような無効データを記憶することができる。

0065

ブロックおよびメタブロックのサイズは、集積回路メモリチップの領域を効率的に使用するために増加している。これは、個々のデータの書き込みの大部分がメタブロックの記憶容量未満であり、多くの場合、ブロック未満であるデータの量を記憶することをもたらす。メモリシステムコントローラ116Aが、新しいデータを、消去されたプールメタブロックに通常導くので、これは、満たされなくなるメタブロックの一部をもたらす可能性がある。新しいデータが、他のメタブロック中に保存されたいくつかのデータの更新であるなら、新しいデータメタページと連続する論理アドレスを有する他のメタブロックからのデータの残りの有効なメタページは、論理アドレス順に新しいメタブロックにコピーされることが望ましい。古いメタブロックは、他の有効データメタページを保持してもよい。これは、使用されず無効であり、異なるメタブロックに書き込まれる同じ論理アドレスで新しいデータと取り替えられる個々のメタブロックのあるメタページのデータをいずれもたらす。

0066

論理アドレス空間161全体にわたってデータを記憶するのに十分な物理メモリ空間を維持するために、そのようなデータは、周期的に圧縮または集約される(ガーベッジコレクション)。これは、連続論理アドレスでデータを読み出すことをより効率的にするので、実際と同様に、それらの論理アドレスと同じ順に、メタブロック内のデータのセクタを維持することも望ましい。したがって、データ圧縮およびガーベッジコレクションは、典型的には、この追加目標で行なわれる。部分ブロックデータ更新を受信する場合にメモリを管理するいくつかの態様およびメタブロックの使用は、米国特許第6,763,424号(特許文献18)に記載されている。

0067

直接データファイル記憶システム:
図2Gは、2005年2月16日に出願された同時係属中の米国特許出願第11/060,249号(代理人整理番号:SDK0380.US0)(特許文献3)、および前に参照されている直接データファイル記憶アプリケーションに開示された、「直接データファイル」記憶のためのフラッシュ素子116または「直接ファイル記憶」(「DFS」)方法/システムによって使用されるレイアウトを示す。

0068

DFS装置では、データは、前述した特許出願に記載するように、ファイルバイファイル形式(つまり、ファイルベースのプロトコルを使用する)でホストシステム100によってアクセスされ、すなわち、データは、ファイル内の固有ファイル識別子(「ファイルID」または任意の他の固有の基準)およびオフセットアドレスを使用して、論理的にホストによって特定される。論理アドレス空間は、装置のために定義されない。ホストシステム100は、論理クラスタにファイルデータを割り当てず、ファイルのディレクトリインデックステーブル情報は、フラッシュ素子116によって生成される。

0069

ホストは、ファイル内の固有ファイルID(または他の固有の基準)および複数のユニットのデータ(バイトなど)のオフセットアドレスによって、各ファイルをアドレス指定する。このファイルアドレスは、メモリシステムコントローラ116Aに直接付与され、次いで、各ホストファイルのデータが、物理的に記憶されるそれ自身のテーブルを維持する。

0070

このファイルベースのインターフェイスは、図2Gで説明され、図2Fの論理アドレスインターフェイスと比較されるべきである。各ファイル1,2および3の特定および図2Gのファイル内のデータのオフセットは、メモリコントローラに直接渡される。次いで、この論理アドレス情報は、メモリコントローラ機能173によって、メモリ165のメタブロックおよびメタページの物理アドレスに変換される。

0071

ファイルベースのインターフェイスも、図2Lによって説明され、図2Hの論理アドレスインターフェイスと比較されるべきである。論理アドレス空間および図2Hのホスト維持FATテーブルは、図2Lに存在しない。もっと正確に言えば、ホストによって生成されたデータファイルは、ファイル内のデータのファイル番号およびオフセットによってメモリシステムに特定される。次いで、メモリシステムは、直接、メモリセルアレイの物理ブロックにファイルをマッピングする。

0072

図2Mを参照して、本願明細書において説明される1例の大容量記憶システムの機能層を示す。「直接データファイル記憶バックエンドシステム」(または直接ファイル記憶バックエンドシステム)は、「直接データファイルインターフェイス」(または直接ファイルインターフェイス)107および「ファイルベースのフロントエンドシステム」115を介して、ファイルベースのインターフェイスチャンネルにわたってホストシステムと通信する。各ホストファイルは、ファイル名によってなど、一意的に特定される。ファイル内のデータは、ファイルに特有の線形アドレス空間内のオフセットアドレスによって特定される。

0073

仮想フラッシュ記憶150:
図2Nは、1次記憶116(図2Aの1次記憶116に類似する)および2次記憶110を有する仮想フラッシュ記憶150と連動するホストシステム100を示す。

0074

ホスト100で作動するホストアプリケーションプログラム101は、仮想フラッシュ記憶150からデータを読み出し、および/または仮想フラッシュ記憶150にデータを書き込むためにホストファイルドライバ102を介して連動する。ホストファイルドライバ102は、ファイル内に固有ファイルID(または他の固有の基準)および(バイトなどの)データのユニットのオフセットアドレスによって各ファイルが識別されるホストアドレスを提供する。

0075

仮想フラッシュ記憶150は、磁気ディスクの容量を提供しながら、直接データファイル記憶装置として実行し、機能する。

0076

仮想記憶150に書き込まれるファイルは、1次記憶116に向けられ、次の読み出しおよび/または書き込みアクセスのために利用可能とされる。仮想記憶150から読み出されるファイルは、1次記憶116でそれらの現在の記憶位置から読み出され、または2次記憶110から直接読み出され、次のアクセスのために1次記憶116にコピーされる。

0077

最大ファイル数は、1次記憶116で保持されてもよい。ファイルの現在の記憶位置は、最後にアクセスされてから最長時間未使用で、1次記憶116から2次記憶110に移動される。

0078

ファイルは、1次記憶116に記憶されたファイルの第1のブロックに初期アクセスを向け、次いで、初期シーク時間後に2次記憶110に切り替えることにより、2次記憶110から効率的に読み出されてもよい。

0079

1次記憶116は、2次記憶110の代わりにアプリケーションプログラムファイル104を記憶することも可能である。アプリケーションプログラムファイル104は、CPU145によって1次記憶116からコピーされ、次いで、メインメモリ145から実行される。1次記憶116は、2次記憶110と比較して速くアクセスされることが可能であるので、アプリケーションプログラムファイル104の全体の実行時間が短縮される。

0080

1次記憶116中の直接データファイル記憶装置の構成要素、例えば、ファイルベースのフロントエンドシステム115、直接データファイルインターフェイス107および直接データファイルバックエンドシステム108は、前述した同時係属中の特許出願に記載されている。

0081

以下に詳細に記載するように、ファイルディレクタモジュール106は、1次記憶116および2次記憶110中に、および1次記憶116および2次記憶110からのファイルの転送を管理する。ファイルデータを移動させる処理は、同時係属中の特許出願に記載されたガーベッジコレクション処理に従って行なわれてもよく、それによって、データは、バックグラウンドタスクとしてコピーされてもよく、または向上効率および全体性能に基づいてフォアグラウンドタスクとしてインターリーブされてもよい。

0082

ファイルディレクタ106は、ホスト100と仮想記憶150との間で転送されているデータを一時的に記憶するために使用されることができるバッファ105(またはメモリ105)にアクセスする。

0083

1次記憶116は、ディスクファイルシステム113、および1次記憶116が論理インターフェイス111Cによって従来の磁気ディスク110と連動することを可能にするディスクドライバ112を含む。ディスクファイルシステム113およびディスクドライバ112は、1次記憶116と2次記憶110との間でファイルデータ転送を可能とするために、磁気ディスク110によって使用される従来の論理アドレス空間に、直接データファイルインターフェイス107でデータファイルをマッピングする。

0084

磁気ディスク111上に記憶されるファイルのデフラグなどのバックグラウンド処理を行なうために、ディスクファイルシステム113およびディスクドライバ112も使用されてもよいことは注目すべきである。

0085

ファイルディレクタ106は、ファイルのためのデータが位置する記憶(つまり、1次および/または2次)を識別するために、以下に詳細に記載されたファイルロケータテーブル106A(図2Sおよび2Tで示される)を使用する。ファイルロケータテーブルは、フラッシュメモリ116Bに記憶することが可能であり、テーブルのすべてまたは一部のコピーもメモリ116Dのキャッシュに格納されてもよい。

0086

図2Sは、ファイルロケータテーブル106Aがファイルディレクタ106と連動する状態で、大容量記憶システム150(図2Nで示されるシステムに類似する)のブロック図を示す。図2Sは、また、ファイルインターフェイス103を介してホスト100から受信されるファイルデータパス(103Aであると識別される)、論理インターフェイス111Cを介するLBAデータパス103Bおよびファイルディレクタ106と直接データファイルインターフェイス(または直接ファイルインターフェイス)107との間を流れる制御情報103Cを示す。

0087

図2Tは、ファイルロケータテーブル106Aエントリを示す。ファイルロケータテーブル106Aは、記憶システム150に記憶される各ファイルのための1つのエントリ(欄106Bに基づく)を含む。各エントリは、1次記憶116に記憶される順次ファイルオフセットアドレスを有するデータランの開始および終了アドレス(欄106C)、および2次記憶110(欄106D)に記憶される順次ファイルオフセットアドレスを有するデータランの開始および終了アドレスを記録する。ファイルの有効データは、1または両方の記憶のいずれかに存在していてもよい。

0088

データが記憶に書き込まれ、記憶の間にコピーされ、または記憶から削除される場合、ファイルロケータテーブル106Aは更新される。ファイルロケータテーブル106Aは、ファイル内に具体的なオフセットアドレスを有するデータが位置する記憶だけを識別する。それは、データが位置する記憶内の物理記憶位置を識別しない。これは、2つの記憶内の構造にインデックスを付ける正常なファイルディレクトリおよびファイルによって行われる。

0089

大容量記憶システム150は、いくつかの長所を有する。例えば、本発明の1つの態様では、2次記憶110は、利用可能または利用不可能な状態に位置することができる。利用不可能な状態は、装置が物理的に利用不可能、またはメモリコントローラが利用可能になるまで装置にアクセスすることができないことを意味することが可能である。

0090

1次記憶116は、常に利用可能な状態であり、その結果、メモリコントローラ116Aによってアクセス可能である。2次記憶110が利用可能な状態である場合、次いで、ファイルディレクタ106は、1次記憶116および2次記憶110の両方にアクセスすることが可能である。

0091

ファイルインターフェイスチャンネル103が、ホストシステムからデータを受信する場合、コントローラ116Aは、1次記憶116または2次記憶110のいずれかにデータを書き込むことが可能である。データが1次記憶116Aに最初に書き込まれる場合、データは、次いで、バックグラウンド処理として2次記憶110にコピーされる。

0092

コントローラ116Aは、記憶空間使用量を最適化することに基づいて、およびホストが書き込み処理をできるだけ速く完成することを可能にするために、適切な記憶装置を選択する。1次記憶116Aは、2次記憶110より低いシーク時間を有するので、最初に、1次記憶116Aに書き込み、次いで、2次記憶110にコピーすることが有利である。

0093

他の態様では、仮想フラッシュ記憶150は、速いシステムブーツおよび速いアプリケーション起動を提供する。そのブーツプロセスの間のホストシステム、例えば、オペレーティングシステムおよび構成ファイルによって要求される情報は、1次記憶116にファイルバイファイル形式で記憶されることが可能である。この状況で、1次記憶116は、読み出しキャッシュとして作動し、その速いランダムリードアクセス特性は、はるかに速いシステムアクセスおよび起動を可能とする。

0094

ブーツプロセスに使用される情報は、識別されることができ、上書きされないように保護されることが可能である。この初期情報は、2次記憶110からコピーされるか、または1次記憶116に記憶されることが可能である。アプリケーションソフトウェアファイル(104として示される)は、アプリケーションがホストシステムによって速く始めることができるのと同様に処理されることが可能である。

0095

仮想記憶150は、低電力記憶装置として作動することも可能である。典型的には、2次記憶110は、フラッシュメモリベースの1次記憶116より多くの電力を消費する。1次メモリ記憶116は、新たに書き込まれた情報のコピーと一緒に、1次記憶116の新たにアクセスされた情報のコピーを維持することにより、読み出し/キャッシュ装置として使用されることが可能である。これは、1次記憶116でのキャッシュヒットによって、仮想ファイル記憶150がホスト要求に速く応答することを可能にする。次いで、コントローラ116Aは、2次記憶110をスピンダウンして、電力消費を低減することが可能である。これは、携帯用アプリケーション、例えば、ラップトップ、ノートブック、他のものにおいて特に有利である。

0096

仮想ファイル記憶150は、衝撃耐性記憶装置としても作動する。装置が高い機械的衝撃の危険のある環境で使用される場合、コントローラ116Aは、2次記憶110をスピンダウンすることが可能である。そのような環境の可能性が高い場合、コントローラ116Aファームウェアは、2次記憶110をスピンダウンするようにプログラムされることが可能である。読み出し/書き込みキャッシュとして作動する1次記憶116は、ホストが機能することを必要とする情報をホストシステムに提供する。

0097

一旦、2次記憶110が利用可能になれば、データは、次いで、1次記憶116と2次記憶110との間で同期される。携帯機器について、一旦、装置がドッキングステーションに置かれれば、2次記憶110は利用可能になる。他の態様では、動き検出回路類は、システムが、衝撃傾向の環境にもはやないかどうかを決定するために使用されることが可能である。また、ユーザは、2次記憶110がどの時間にも利用可能なように、手動セッティングを変更することが可能である。他の場合では、プラギングによって、電源出力のシステムは、コントローラ116Aに信号を送って、2次記憶110を始動してもよい。

0098

1次記憶116および2次記憶110を有する仮想フラッシュ記憶150は、容易にアクセス可能な短期バックアップを有する信頼できる記憶装置を提供する。情報が、2次記憶110に転送された後でさえ、1次記憶116は、書き込みキャッシュとして作動し、情報を保持することが可能である。情報ができるだけ長く維持され、空間が必要な場合のみ、上書きされる場合、書き込みキャッシュは、新たに書き込まれた情報のコピーを提供する。これは、2次記憶110がディスクの故障により機能が停止しデータを失った場合、保護手段を提供する。

0099

2次記憶110から読み出されるデータがコピーされ、1次記憶116に記憶される場合、1次記憶116は、読み出しキャッシュとして作動する。コピーされたデータは、フラッシュメモリ116Bに記憶され、ファイルディレクタ106によって制御される。2次記憶110から読み出されるデータが選択的にコピーされてもよいことは注目すべきである。これは、データが読み出される頻度性質、つまり読み出されるファイルの種類およびサイズ、または他の基準に基づくこともあり得る。コントローラ116Aファームウェアは、1次記憶116を構成するようにプログラムされて、そのような基準に基づいて読み出しキャッシュとして作動してもよい。

0100

前述したように、1次記憶116は、書き込みキャッシュとして作動することも可能である。ホストシステム100が、ファイルインターフェイスチャンネル103を介してデータを送信する場合、ファイルディレクタ106は、フラッシュメモリ116Bにデータを完全にまたは部分的に記憶し、次いで、仮想記憶150が使用されていない場合、2次記憶110にデータをコピーすることが可能である。1次記憶116でコピーされるデータの量は、ファイルのサイズ、および1次記憶116で利用可能な空き領域の量に所定時間依存する。これは、1次記憶116がより速いアクセス時間を有するので、ホストシステムが速く書き込むことを可能にする。

0101

さらに本発明の他の態様では、メモリコントローラ116Aは、ホストから受信されるファイルを2つ以上のセグメントに分割する。1つのセグメントは、1次記憶116に記憶され、他のセグメントは、2次記憶110に記憶される。ホストがファイルを要求する場合、容易にファイルを位置することができるように、1次記憶116に記憶されるセグメントは、ファイルのための十分な情報を含む。ホストが、完全なファイルを読み出さなければならない場合、第2のセグメントが2次記憶110から得られている間に、1次記憶116に記憶される第1のセグメントに速くアクセスすることが可能である。

0102

図2Qは、前述した概念を説明する。ファイル「F」は、書き込みコマンドに応じて、ファイルインターフェイス103を介してホストから受信される。メモリコントローラ116Aは、最初に、1次記憶116に全ファイルを書き込む。ホスト書き込み処理が完了した後、メモリコントローラ116Aは、2つの部分、F1およびF2にファイルデータを分割する。データが、1次記憶116にデータをコピーするために最初に待機する代わりに受信されるので、メモリコントローラ116Aは、リアルタイムで、複数のセグメントにファイルを分割してもよいことは注目すべきである。

0103

F1は、1次記憶116に記憶され、F2は、2次記憶110にコピーされる。典型的には、コピー処理は、バックグラウンド処理として行われる。

0104

セグメントF1およびF2のサイズは、2次記憶110および1次記憶116にアクセスするためのシーク時間に依存し、それぞれ、ファイルの全体サイズおよびデータがホストに転送されることが可能な割合に依存する。メモリコントローラ116Aは、ファイルを分割して、ホストへのデータ転送が効率的で、メモリ空間の使用量が最適であることを確保する。

0105

ホストがファイルFを読み出さなければならない場合、最初に、1次記憶116に記憶されるセグメントF1にアクセスすることとなる。1次記憶116が、より速いアクセス時間を有するので、ホストは、より速い速度でF1にアクセスすることが可能である。F1がホストに転送されている間に、コントローラ116Aは、より遅いシーク時間を有する2次記憶110からセグメントF2を得る。従って、F1転送が完全な場合、F2が既に得られ、転送される準備がされる。これは、仮想記憶150から読み出し処理の全体効率を向上する。

0106

ファイルロケータ106Aは、ファイルセグメントF1およびF2がどこに記憶されるのかを追跡する(図2Tおよび図2Rに示される部分的な表)。図2Rの部分的な表は、セグメント(例えば、1次記憶116に記憶されたセグメント1(つまりF1)および2次記憶110に記憶されたセグメント2)のトップレベルの記憶位置を示す。ファイルデータを転送するために、ファイルディレクタ106は、ファイルロケータ106Aにアクセスして、特定のセグメントがどこにあるかを決定する。

0107

さらに本発明の他の態様では、論理ブロックアドレスをキャッシュに格納する代わりに、ファイルをキャッシュに格納することは、先行技術のシステムに対する利点を提供する。以前のデュアル記憶媒体システムでは、ホストは、フラッシュ素子とハードディスクとの両方の間で論理インターフェイスを有する。ホストに/ホストから転送されるデータは、論理アドレスによって識別され、キャッシュに格納することは、ファイルの代わりに、論理アドレス上で行われる。ファイルの論理アドレスの全範囲が適切なときに正確な装置に位置することを確実にする方法はない。

0108

例えば、システムは、ハードディスク(2次記憶)の電源が落とされる場合、またはディスクが取り出される場合(例えば、切り離された携帯用機器で)、実行ファイルがフラッシュ素子に記憶されることを確実にしなければならない。前のシステムでは、これは、フラッシュ中で実行ファイルのための論理アドレスをキャッシュに格納し、次いで、フラッシュ素子でそれらをロックすることにより達成される。論理アドレスが、予めディスクからアクセスされた場合、キャッシュに格納することが行なわれる。しかし、論理アドレスが、実行ファイル全体を表すという保証はない。それは、携帯用機器が接続され、ディスクが利用可能な場合に使用されるアプリケーション内の機能のためのみであってもよい。切り離されたモードで使用される他の機能は、全くキャッシュに格納されなくてもよい。

0109

大容量記憶システム150は、論理アドレス範囲の代わりに、完全なファイルをキャッシュに格納することにより、前述した欠点を解決する。これは、1次記憶116が速いアクセスに利用可能な状態で、(前述した例で検討されるように)実行ファイル全体がキャッシュに格納されることを確実にする。

0110

処理フロー
本発明の1つの態様では、1次記憶116のファイルディレクタ106は、以下に要約されるとともに、図3〜6および8A/8B〜9に例示される処理フローチャートに関して詳細に記載される様々な処理を行なう。

0111

新しいファイルが書き込みのために開かれる場合、それは、1次記憶116内で開かれる。大容量記憶システム150は、このファイル内にデータを書き込み、更新し、読み出すための直接データファイル装置として機能する。

0112

既存のファイルが書き込みのために開かれる場合、それは、また、1次記憶116で開かれる。現バージョンが2次記憶110に常駐する場合、それは、次いで、1次記憶116にコピーされる。これは、バックグラウンド処理として行なわれるが、低い負荷サイクルで、1次記憶116の他のデータを読み出しまたは書き込むとともに、インターリーブされてもよい。再び、大容量記憶システム150は、このファイル内にデータを書き込み、更新し、読み出すための直接データファイル装置として機能する。

0113

既存のファイルが、読み出すために開かれる場合、ファイルの最新バージョンは、1次記憶116または2次記憶110のいずれかのその記憶位置から開かれる。ファイルが、2次記憶110から読み出される場合、それは、1次記憶116にコピーされる。ファイルは、2次記憶110から読み出される間に、同時にコピーされることが好ましいが、それは、個々のバックグラウンド処理としてコピーされてもよく、または低い負荷サイクル処理として1次記憶の他のデータを読み出しまたは書き込むとともに、インターリーブされてもよい。

0114

ファイルが閉じられる場合、1次記憶116から2次記憶110にコピーされてもよい。これは、1次記憶116の最大数のファイルを保持しながら、最長時間未使用で通常行われる。ファイルが削除されるまで、大部分の有効電流ファイルバージョンが1次記憶116に残る間に、そのようなコピーは、先制のバックグラウンド処理として行なわれてもよい。

0115

いくつかのファイルは、1次記憶116にロックされてもよく、その結果、1次記憶116から常に読み出される。例えば、オペレーティングシステムおよびアプリケーションプログラム104に関連するファイルは、1次記憶116から常に読み出される。1次記憶116のいくつかのファイルも、バックアップとしてのセキュリティのために2次記憶110にコピーされる。

0116

ファイルの動作中のバージョンが、2次記憶110に割り当てられる場合、ファイルのためのデータの初期ブロックは、次いで、1次記憶116に保持されてもよい。

0117

現バージョンが2次記憶110にあるファイルが読み出される場合、2次記憶110が順次データのためにシークを行なう間、そのデータの第1のブロックは、1次記憶116から読み出されてもよい。これは、記憶されたファイルデータにより速いアクセスを提供する。

0118

ファイルが、オンカードアプリケーション(104)のある種類によって読み出すことによって開かれる場合、次いで、2次記憶110から1次記憶116にファイルをコピーすることは抑制されてもよい。これは、ウイルス検査ソフトウェアなどのアプリケーションが、2次記憶110の多くのファイル上で直接作動することを可能にする。

0119

ホストインターフェイスが不応である場合、コマンドがホストインターフェイスで受信され、または保留中のファイルすべてがコピーされるまで、複数ユニットのデータを連続的に転送することにより、ファイルがコピーされることに注目すべきである。

0120

ホストインターフェイスが動作中の場合、ファイルは、バッファ(105、図2N)と不応である記憶との間で複数ユニットのデータをコピーして、ホストインターフェイスから複数ユニットのデータへの書き込み/ホストインターフェイスからの読み出しをインターリーブすることによりコピーされる。1次または2次記憶のいずれかから/1次または2次記憶のいずれかにホストインターフェイスからデータを読み出す/ホストインターフェイスにデータを書き込むための処理は、処理とインターリーブされて、2つの記憶での処理が大部分は並列である方法で、他の記憶に/他の記憶からデータをコピーしてもよい。

0121

1ユニットのデータは、任意の便利なユニットであってもよい。例えば、512バイトを含むデータのセクタであってもよく、それは、2次記憶110にアドレス指定されることが可能な最小ユニットのデータである。また、データのページであってもよく、それは、フラッシュメモリ116Bでプログラムすることが可能な最小ユニットのデータである。ページは、1,2,4,8またはそれ以上のセクタを含んでいてもよい。データのメタページであってもよく、それは、フラッシュメモリ116Bにプログラムされることが可能な最大ユニットのデータである。メタページは、1,2,4,8またはそれ以上のページを含んでいてもよい。また、メタページより大きな1ユニットのデータであってもよい。1つの記憶に書き込まれ/読み出される1ユニットのデータは、他の記憶に書き込まれ/読み出される1ユニットのデータとは異なるサイズを有していてもよい。

0122

処理フローチャートを詳細に参照すると、図3は、本発明の1つの態様による、ホストシステム100と仮想記憶150との間でのデータの転送のために実行可能なプロセスステップの全体の処理フローチャートを示す。図3を詳細に参照して、プロセスは、ステップS300で開始する。ステップS302では、コントローラ116Aは、ファイルを書き込むためにコマンドが受信されるかどうかを決定する。コマンドが受信されるならば、プロセスは、図4に記載されたステップS306に進む。

0123

書き込みコマンドがないなら、ステップS304で、ファイル読み出し処理のためのコマンドが受けられたかどうかを決定する。読み出しコマンドが受信されるならば、プロセスは、図5を参照して以下に説明するステップS308に進む。

0124

読み出しコマンドが、ステップS304、次いでステップS310で受信されなかった場合、コントローラ116Aは、ファイルコピーログが、任意のエントリを含むかどうかを決定する。含むならば、プロセスは、以下の図6で説明するステップS312に進む。エントリが存在しないならば、プロセスは、ステップS302に戻る。

0125

ファイル書き込み処理フロー
図4は、本発明の1つの態様による仮想記憶にデータを書き込むための実行可能なプロセスステップの処理フローチャートを示す。図3で示すように、ファイル書き込みプロセスは、ステップS306で開始する。

0126

コントローラ116Aは、ステップ400で、目標ファイルが既に開いているかどうかを決定する。ファイルが開いていないならば、ステップS402で、目標ファイルは、1次記憶116で開かれる。ファイルは、ファイルベースのインターフェイスを使用して開かれる。

0127

ステップS404では、ファイルロケータ106Aは読み出される。ファイルロケータ106Aは、1次記憶116または2次記憶110のいずれかに記憶されているようなファイルの記憶位置を識別するために使用される。

0128

ファイルの記憶位置情報がステップS406で読み出された後、コントローラ116Aは、ファイルの現バージョンが、2次記憶110に記憶されるかどうかを決定する。ファイルが2次記憶110に位置する場合、エントリは、次いで、1次記憶116によって維持されるコピーログ700(図7に示される)に加えられる。コピーログは、メモリ116Dに記憶され、行なわれる必要のある様々なコピー処理のリストを含む。コピーログは、コピーされる必要のある各ファイルに対してエントリを有する。また、ファイルがどこに位置する可能性があるかを識別するエントリ、例えば、1次記憶116または2次記憶110を含む。コピーログは、また、あて先を識別するエントリを含み、ファイルは、つまり、1次記憶116、2次記憶110またはバッファ105にコピーされる。

0129

ファイルの現バージョンが、2次記憶110に記憶されないならば、プロセスは、ステップS410に進む。ステップS410では、書き込みコマンドは、直接データファイルバックエンドシステム108に送信される。

0130

ステップS412では、ファイルディレクタ412は、空間がデータを書き込むことができるかどうかを決定する。データが単一ユニットとして書き込まれるので、空間がデータを書き込むために利用可能かどうかを決定するために、低いしきい値が使用される。しきい値は、少数のユニットのデータだけが1次記憶116にさらに書き込まれることが可能な容量を定義するために設定されているが、そのとき、1次記憶116から2次記憶110へのファイルコピー処理は、1次記憶116でより利用可能な空間を生成するために開始されるべきである。空間が利用可能でないならば、ステップS414で、ファイルは、1次記憶116からコピーするために選択される。

0131

空間が、ステップS412で利用可能ならば、ステップS416で、ファイルディレクタ106は、ホストシステム100からのデータが利用可能かどうかを決定する。ホストデータが利用可能でないならば、プロセスは、ステップS422に進む。

0132

データが利用可能ならば、ステップS418では、ファイルディレクタ106は、データが1次記憶116によって要求されているかどうかを決定する。要求されているならば、1ユニットのデータは、1次記憶116に転送される。データが1次記憶116によって要求されていないならば、プロセスはステップS422に進む。

0133

ステップS422では、ファイルディレクタ106は、ファイルをコピーするエントリが、コピーログ700に存在するかどうかを決定する。存在するならば、ファイルのための1つ以上のデータユニットは、ステップS424でコピーされる。エントリが存在しないならば、ステップS426で、ファイルディレクタ106は、他のコマンドが受信されるかどうかを決定する。他のコマンドが受信されないならば、プロセスは、ステップS412に戻る。他のコマンドが受信されるならば、ステップS428で、ファイルロケータは、1次記憶116または2次記憶110のいずれかでファイルの現在の記憶位置を反映するために更新される。その後、ステップS430で、プロセスは、ステップS302に戻る。

0134

図8Aは、メモリコントローラ116Aが、1つのセグメントが1次記憶116および2次記憶110の他のセグメントに記憶されることが可能であるように、入ってくるファイルを分割する処理フローチャートを示す。図8を詳細に参照すると、ステップS800で、メモリコントローラ116Aは、ホストシステムから書き込みコマンドを受信する。

0135

ステップS802で、メモリコントローラ116Aは、1次記憶116にファイルを書き込む。ファイルが書き込まれた後、ステップS804で、メモリコントローラ116Aは、ファイルが分割されることが可能(またはすべき)かどうかを決定する。ファイルが分割されることができない/分割されるべきでないならば、プロセスは、(ステップS806で)ステップS800に戻る。

0136

ファイルが分割されるならば、ステップS808で、メモリコントローラ116Aは、ファイルセグメント(F1およびF2、図2Q)を決定し、ステップS810で、ファイルセグメントは、2次記憶110にコピーされる。図6を参照して以下に記載するように、コピー処理は、バックグラウンド処理として行われる。

0137

図8Bは、本発明の1つの態様によるファイルセグメンテーションを扱うためのさらに他のフローチャートを示す。プロセスは、ステップS812で開始し、ステップS814で、ファイル(「F」)のために書き込みコマンドは、ホストシステム100から受信される。

0138

ステップS816で、(ファイルディレクタ106を介して)メモリコントローラ116Aは、1次記憶116(ステップS412、図4に類似する)に空間が存在するかどうかを決定する。空間が、1次記憶116で利用可能ならば、ステップS818で、ファイルセグメント(例えば、F1、ファイルヘッダ)を書き込むために、書き込みコマンドは、1次記憶116に送信される。ステップS820で、ファイルディレクタ106は、ファイルセグメントF2を書き込むために、2次記憶110に書き込みコマンドを送信する。ステップS818およびS820が、ステップS816後に同時に行われることが可能であることは注目すべきである。

0139

ステップS822で、ファイルセグメントF1のための少なくとも1ユニットのデータは、1次記憶116に送信される。任意のデータユニットが、ステップS822で書き込まれる前に、ステップS820で書き込みコマンドが送信されることは注目すべきである。これは、データユニットが1次記憶116に書き込まれる間に、2次記憶110がそのシーク時間を経ることを可能にする。これは、全体の書き込みプロセスを促進する。

0140

ステップS824で、セグメントF2のためのデータは、2次記憶110へ送信され、ステップS830でプロセスは終了する。

0141

ステップS816で、空間が1次記憶116で利用不可能ならば、ステップS826で、書き込みコマンドは、2次記憶110に送信され、ステップS828で、ファイルのためのデータは、2次記憶110に送信される。

0142

ファイル読み出しプロセス
図5は、本発明の1つの態様によるファイル読み出しプロセスのための処理フローチャートを示す。ファイル読み出しプロセスは、図3のステップS308から開始する。ファイルディレクタ106は、ステップS500で、ファイルロケータ106Aを読み出す。

0143

ステップS502で、ファイルディレクタ106は、ファイルが1次記憶116にあるかどうかを決定する。ファイルがあるならば、ステップS504で、読み出しコマンドは、1次記憶110に送信される。ファイルが、1次記憶110に位置しないならば、ステップS512で、現在のファイルは、2次記憶110からコピーするためにログ記録され、ステップS514で、読み出しコマンドは、2次記憶110に送信され、プロセスは、ステップS506に進む。

0144

ステップS506で、ファイルディレクタ106は、データが、選択された記憶(つまり、1次記憶116または2次記憶110)から利用可能かどうかを決定する。利用可能ならば、ステップS508で、データは、選択された記憶から転送される。データが利用可能でないならば、プロセスは、ステップS516に進み、ここで、ファイルディレクタ106は、ファイルコピーログエントリが存在するかどうかを決定する。エントリが存在するならば、ステップS518で、ファイルに対して1つ以上のデータユニットはコピーされる。エントリが存在しないならば、ステップS510で、ファイルディレクタ106は、他のコマンドが受信されるかどうかを決定する。他のコマンドが受信されないならば、プロセスは、ステップS506に戻り、そうでなければ、ステップS520で、プロセスは、ステップS302(図3)に進む。

0145

図9は、本発明の1つの態様による図8Aおよび8Bに関して、前述したように、2つ(またはより多いセグメント)に記憶されたファイルを読み出すための処理フローチャートを示す。図9を詳細に参照すると、プロセスは、ステップS900で開始し、ステップS902で、ファイル(「F」)のための読み出しコマンドは、ホストシステム100から受信される。

0146

ステップS904で、ファイルディレクタ106は、要求されるファイル(「F」)が分割されるかどうかを決定する。ファイルが分割されないならば、ステップS914で、ファイルのための読み出しコマンドは、ファイルがどこに記憶されるかに基づいて、1次記憶116/2次記憶110に送信される。ステップS916で、ファイルのためのデータは、1次記憶116または2次記憶110から受信され、プロセスは終了する。

0147

ファイルが分割されるならば、ステップS906で、ファイルディレクタ106は、1次記憶116のメモリコントローラ116AにセグメントF1のための読み出しコマンドを送信する。ステップS908で、ファイルディレクタ106は、2次記憶110にセグメントF2のための読み出しコマンドも送信する。

0148

ステップS910で、セグメントF1のためのデータは、1次記憶116から受信される。データが、1次記憶116から受信される間に、2次記憶110は、セグメントF2のためのデータを送信するためのそのシーク時間を完了していることに注目すべきである。これは、読み出しプロセスの全体効率を向上する。

0149

ステップS912で、セグメントF2のためのデータは、2次記憶110から受信され、プロセスは終了する。

0150

ファイルコピー処理:
図6は、本発明の1つの態様による、データをコピーするためのフローチャートを示す。フローチャートは、図3のプロセスステップS312を実行することである。

0151

図6を詳細に参照すると、ステップS600で、ファイルディレクタ106は、ホストインターフェイスが不応である、つまり、データを転送するためにホスト100から動作中のコマンドがあるかどうかを決定する。動作中のコマンドがあるならば、プロセスは、以下に説明するステップS622に進む。

0152

ホストインターフェイスが不応であるならば、ステップS602で、ファイルディレクタ106は、1次記憶116からのファイルコピー処理が保留中である、つまり、コピー処理が進行中または行われるために待機しているかどうかを決定する。ファイルコピー処理が保留中であれば、ステップS604で、ファイルのための少なくとも1ユニットのデータは、1次記憶116から2次記憶110にコピーされ、プロセスは、以下に説明するステップS606に進む。

0153

ファイルコピー処理が、ステップS602で保留中でないならば、ステップS612で、ファイルディレクタ106は、ファイルコピー処理が2次記憶110から保留中であるかどうかを決定する。処理が保留中ならば、ステップS614で、少なくとも1ユニットのデータは、2次記憶110から1次記憶116に転送され、プロセスは、ステップS606に進む。

0154

2次記憶110からのファイルコピー処理が保留中でないならば、ステップS616で、ファイルディレクタ106は、ファイルコピー処理がバッファ105から保留中かどうかを決定する。ファイルコピー処理が、バッファ105から保留中ならば、ステップS618で、少なくとも1ユニットのデータは、バッファ105から1次記憶116または2次記憶110のいずれかに転送され、プロセスは、ステップS606に進む。ファイルコピー処理が、保留中でないならば、ステップS620で、プロセスは、ステップS302に戻る。

0155

ステップS606で、ファイルディレクタ106は、他のコピーコマンドが受信されるかどうかを決定する。他のコマンドが受信されていないならば、プロセスは、ステップS602に戻る。コマンドが受信されているならば、ステップS608で、ファイルロケータ106Aは、ファイルの現在の記憶位置を反映するために更新され、プロセスは、(ステップS610で)ステップS302に戻る。

0156

ステップS622を詳細に参照すると、ファイルディレクタ106は、1次記憶116が動作中かどうかを決定する。動作中であるならば、ステップS624で、ファイルディレクタ106は、ファイルコピー処理がバッファ105と2次記憶110との間で保留中かどうかを決定する。ファイル処理が保留中ならば、ステップS626で、少なくとも1ユニットのデータは、バッファ105と2次記憶110との間で転送される。ファイル処理が、ステップS624で保留中でないならば、ステップS634で、プロセスは、ステップS302に戻る。

0157

1次記憶116が、ステップS622で動作中でないならば、ステップS628で、ファイルディレクタ106は、2次記憶110が動作中かどうかを決定する。2次記憶110が動作中でないならば、ステップS634で、プロセスは、ステップS302に戻る。

0158

2次記憶110が動作中ならば、ステップS630で、ファイルディレクタ106は、ファイルコピー処理が、バッファ105と1次記憶116との間で保留中かどうかを決定する。ファイル処理が保留中ならば、ステップS632で、少なくとも1ユニットのデータは、バッファ105と1次記憶116との間で転送される。

0159

ファイルコピー処理が、ステップS630で保留中でないならば、プロセスは、ステップS634に進む。

0160

ホスト100が不応である間、前述したファイルコピー処理は、1ユニットのデータを転送する。処理は、バックグラウンドで行われ、ホスト110から仮想記憶150に書き込み処理でインターリーブされる。インターリーブ(つまり、ホスト110から書き込まれた書き込みデータの量およびコピーされたデータの量)の比率は、コピーされている1ユニットのデータのサイズを変えることにより変えることができる。1ユニットのデータのサイズは、実行を最適化するために選択される。

0161

処理のリスト:
図2Pは、ファイルディレクタ106によってデータ転送処理のリストを提供する表1を示す。

0162

処理201は、ホスト100から1次記憶116への好ましいファイル書き込み処理である。処理202は、ホスト100から2次記憶110への書き込み処理である。この処理は、不十分な空間が1次記憶116において利用可能ならば使用されてもよい。

0163

ファイルの現バージョンが1次記憶116に存在するならば、処理203は、1次記憶116からホスト100へのファイル読み出し処理である。処理204は、2次記憶110からファイルデータを読み出すために使用される。

0164

処理205は、ファイルコピー処理である。この処理中に、ファイルデータは、1次記憶116から2次記憶110にコピーされる。ホストインターフェイス103が不応である場合、処理205が行われることが好ましい。

0165

処理206は、また、ファイルコピー処理である。この処理中に、ファイルデータは、2次記憶110から1次記憶116にコピーされる。インターフェイス103が不応である場合、処理206も行なわれることが好ましい。

0166

処理207〜210は、バッファ105を使用して行われ、ホスト100から2次記憶110に/からデータの転送、および/またはホスト100から1次記憶116に/からデータの転送と同時に行われてもよい。処理207は、ファイルデータがバッファ105にフラッシュメモリ116Bからコピーされるファイルコピー処理である。処理208は、ファイルデータがバッファ105から1次記憶116にコピーされるファイルコピー処理である。

0167

処理209は、2次記憶110からバッファ105にファイルデータをコピーするために行なわれる。処理210は、バッファ105から2次記憶110にファイルデータをコピーするために行なわれる。

0168

本発明の1つの態様では、仮想記憶150は、大容量記憶システムに、直接データファイルフラッシュメモリシステムおよび従来の磁気ディスクを提供する。これは、従来の磁気ディスクと同様に、直接データファイルシステムフラッシュ記憶装置にホストシステムアクセスへのアクセスを提供する。

0169

本発明を具体的な実施形態を参照して説明してきたが、これらの実施形態は実例にすぎず、限定されない。本発明の多くの他の用途および実施形態は、この開示および添付の特許請求の範囲の観点から明らかになる。

図面の簡単な説明

0170

フラッシュ素子を使用するホストシステムのブロック図を示す。
図1Aのホストシステムのアーキテクチャを示す。
本発明の1つの態様による仮想記憶のブロック図を示す。
本発明の1つの態様によって使用されるフラッシュ素子のメモリコントローラのブロック図を示す。
フラッシュメモリシステムのための物理メモリ構成の例を示す。
図2Cの物理メモリの一部の拡大図を示す。
図2Cおよび2Dの物理メモリの一部のさらなる拡大図を示す。
ホストと再プログラム可能なメモリシステムとの間の従来の論理アドレスインターフェイスを示す。
本発明の1つの態様によるホストと再プログラム可能なメモリシステムとの間の直接データファイル記憶インターフェイスを示す。
ホストと再プログラム可能なメモリシステムとの間の従来の論理アドレスインターフェイスを、図2Fとは異なる方法で示す。
本発明の1つの態様によるホストと再プログラム可能なメモリシステムとの間の直接データファイル記憶インターフェイスを、図2Gと異なる方法で示す。
メモリシステムの1例の機能階層を示す。
本発明の1つの態様による仮想記憶の詳細なブロック図を示す。
本発明の1つの態様による図2Nの仮想記憶を使用して行なわれる様々な処理のリストを有する表を示す。
本発明の1つの態様によるファイルを分割する例を示す。
本発明の1つの態様によるファイルを分割するために使用される表の例を示す。
本発明の1つの態様によるファイルロケータがファイルディレクタモジュールと連動する状態での記憶システムのさらに他のブロック図を示す。
本発明の1つの態様によるファイルロケータテーブルのブロック図を示す。
本発明の1つの態様による仮想記憶を使用するための全体の処理フローチャートを示す。
本発明の1つの態様による仮想記憶を使用する書き込みプロセスのためのフローチャートを示す。
本発明の1つの態様による仮想記憶を使用する読み出しプロセスのためのフローチャートを示す。
本発明の1つの態様による仮想記憶を使用するコピープロセスのためのフローチャートを示す。
本発明の1つの態様による仮想記憶によって維持されるコピーログを示す。
本発明の1つの態様によるファイルセグメントを書き込むための処理フローチャートを示す。
本発明の1つの態様によるファイルセグメントを書き込むための処理フローチャートを示す。
本発明の1つの態様による、分割されたファイルを読み出すためのフローチャートを示す。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ