(57)【要約】      （修正有）【課題】少なくとも１つのプロセッサを含むコンピュータによって遂行される更新されたファイルにアクセスする方法及びシステムを提供する。【解決手段】前のファイルの修正されたコンテンツを含む更新を受信するアプリケーションに応答して前のファイルへのアクセスが維持される間に修正されたコンテンツがコピーされた新たなファイルが生成され、前のファイルの論理ブロック住所（以下ＬＢＡという）は前のファイルの物理ブロック住所（以下ＰＢＡという）にマッピングされ、新たなファイルのＬＢＡは新たなファイルのＰＢＡにマッピングされる。上記方法は、前のファイルＬＢＡのマッピングを前のファイルのＰＢＡから新たなファイルのＰＢＡに自動的にスワップし、前のファイルのＬＢＡ及び前のファイルのＰＢＡのマッピングを除去し、新たなファイルのＬＢＡ及び新たなファイルのＰＢＡのマッピングを制御する。【選択図】図３
2019016395.tif 000002
【特許請求の範囲】
【請求項１】
格納装置の外部のプロセッサで実行されるアプリケーションを含むファイル管理システムで、アップデートされたバーションへのアクセスを提供する方法であって、
前記ファイル管理システムは、ファイルシステムによって維持される論理ブロック住所（ＬＢＡｓ；ｌｏｇｉｃａｌ  ｂｌｏｃｋ  ａｄｄｒｅｓｓｅｓ）と前記格納装置によって維持される物理ブロック住所（ＰＢＡｓ；ｐｈｙｓｉｃａｌ  ｂｌｏｃｋ  ａｄｄｒｅｓｓｅｓ）との間のファイル変換階層（ＦＴＬ；ｆｉｌｅ  ｔｒａｎｓｌａｔｉｏｎ  ｌａｙｅｒ）によって維持されるファイル変換階層（ＦＴＬ）マップを有し、
前記方法は、
前記格納装置によって、
前記プロセッサから第１コマンドを受信し、但し前記第１コマンドは第１ファイルの変形されたコンテンツ及び前記第１ファイルへのアクセスが維持される間に、前記変形されたコンテンツがコピーされる第２ファイルの生成を含むアップデートを受信するアプリケーションに応答して伝送され、前記第１コマンドのパラメータは前記第１ファイルに対応する第１リストのＬＢＡ及び前記第２ファイルに対応する第２リストのＬＢＡを含み、前記第１リストのＬＢＡは前記格納装置で前記第１ファイルの格納位置を示す第１リストのＰＢＡにマッピングされ、前記第２リストのＬＢＡは前記格納装置で前記第２ファイルの格納位置を示す第２リストのＰＢＡにマッピングされ、前記第１リストのＬＢＡは前記第２リストのＬＡＢと異なり、前記第１リストのＰＢＡは前記第２リストのＰＡＢと異なる段階と、
前記第１リストのＬＢＡが前記第２リストのＰＢＡにマッピングされるように前記第１リストのＬＢＡをアトミックに（ａｔｏｍｉｃａｌｌｙ）リマッピングし、前記第１リストのＬＢＡの各ＬＢＡに対して、前記第１リストのＬＢＡの中の１つのＬＢＡと前記第２リストのＰＢＡの対応するＰＢＡとの間のマッピングが前記ＦＴＬマップで生成される段階と、
前記第１リストのＰＢＡへの前記第１リストのＬＢＡのマッピングを除去し、前記第１リストのＬＢＡの全てのＬＢＡに対して、前記第１リストのＬＢＡの中の１つのＬＢＡと前記第１リストのＰＢＡの対応するＰＢＡとの間のマッピングが前記ＦＴＬマップで除去される段階と、
前記第２リストのＰＢＡへの前記第２リストのＬＢＡのマッピングをマッピング解除（ｕｎｍａｐｐｉｎｇ）し、前記第２リストのＬＢＡの全てのＬＢＡに対して、前記第２リストのＬＢＡの中の１つのＬＢＡと前記第２リストのＰＢＡの対応するＰＢＡとの間のマッピングが前記ＦＴＬマップで除去される段階と、を有することを特徴とする方法。
【請求項２】
前記第１コマンドは、スワップ及びトリム（ＳＷＡＴ；ｓｗａｐ  ａｎｄ  ｔｒｉｍ）コマンドを含み、ＡＰＩ（ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍｍｉｎｇ  ｉｎｔｅｒｆａｃｅ）を通じて発行されることを特徴とする請求項１に記載の方法。
【請求項３】
前記ＳＷＡＴコマンドは、アプリケーション又はオペレーティングシステムによる呼び出し（ｃａｌｌ）に応答して格納装置ドライバＡＰＩから前記格納装置に発行されることを特徴とする請求項２に記載の方法。
【請求項４】
前記第１リストのＬＢＡ及び前記第２リストのＬＢＡ内のＬＢＡは、前記第１リストのＬＢＡ及び前記第２リストのＬＢＡによって定められた順序に応じてアトミックに（ａｔｏｍｉｃａｌｌｙ）リマッピングされ、前記第１リストのＰＢＡは最善努力方式（ｂｅｓｔ−ｅｆｆｏｒｔ  ｍａｎｎｅｒ）に従って除去されることを特徴とする請求項２に記載の方法。
【請求項５】
前記ＳＷＡＴコマンドは、隣接ＬＢＡのための第１ＳＷＡＴコマンド及び非隣接ＬＢＡのための第２ＳＷＡＴコマンドを含むことを特徴とする請求項４に記載の方法。
【請求項６】
少なくとも１つのアプリケーションを実行するプロセッサ及びメモリを含むコンピュータと、前記プロセッサ及び前記メモリの外部に位置する格納装置と、を備えるファイル管理システムであって、
前記ファイル管理システムは、ファイルシステムによって維持される論理ブロック住所（ＬＢＡｓ；ｌｏｇｉｃａｌ  ｂｌｏｃｋ  ａｄｄｒｅｓｓｅｓ）と前記格納装置によって維持される物理ブロック住所（ＰＢＡｓ；ｐｈｙｓｉｃａｌ  ｂｌｏｃｋ  ａｄｄｒｅｓｓｅｓ）との間のファイル変換階層（ＦＴＬ；ｆｉｌｅ  ｔｒａｎｓｌａｔｉｏｎ  ｌａｙｅｒ）によって維持されるファイル変換階層（ＦＴＬ）マップを有し、
前記格納装置は、
前記プロセッサから第１コマンドを受信し、但し前記第１コマンドは第１ファイルの変形されたコンテンツ及び前記第１ファイルへのアクセスが維持される間に、前記変形されたコンテンツがコピーされる第２ファイルの生成を含むアップデートを受信するアプリケーションに応答して伝送され、前記第１コマンドのパラメータは前記第１ファイルに対応する第１リストのＬＢＡ及び前記第２ファイルに対応する第２リストのＬＢＡを含み、前記第１リストのＬＢＡは前記格納装置で前記第１ファイルの格納位置を示す第１リストのＰＢＡにマッピングされ、前記第２リストのＬＢＡは前記格納装置で前記第２ファイルの格納位置を示す第２リストのＰＢＡにマッピングされ、前記第１リストのＬＢＡは前記第２リストのＬＡＢと異なり、前記第１リストのＰＢＡは前記第２リストのＰＡＢと異なり、
前記第１リストのＬＢＡが前記第２リストのＰＢＡにマッピングされるように前記第１リストのＬＢＡをアトミックに（ａｔｏｍｉｃａｌｌｙ）リマッピングし、前記第１リストのＬＢＡの各ＬＢＡに対して、前記第１リストのＬＢＡの中の１つのＬＢＡと前記第２リストのＰＢＡの対応するＰＢＡとの間のマッピングが前記ＦＴＬマップで生成され、
前記第１リストのＰＢＡへの前記第１リストのＬＢＡのマッピングを除去し、前記第１リストのＬＢＡの全てのＬＢＡに対して、前記第１リストのＬＢＡの中の１つのＬＢＡと前記第１リストのＰＢＡの対応するＰＢＡとの間のマッピングが前記ＦＴＬマップで除去され、
前記第２リストのＰＢＡへの前記第２リストのＬＢＡのマッピングをマッピング解除（ｕｎｍａｐｐｉｎｇ）し、前記第２リストのＬＢＡの全てのＬＢＡに対して、前記第２リストのＬＢＡの中の１つのＬＢＡと前記第２リストのＰＢＡの対応するＰＢＡとの間のマッピングが前記ＦＴＬマップで除去されることを特徴とするシステム。
【請求項７】
前記第１コマンドは、スワップ及びトリム（ＳＷＡＴ；ｓｗａｐ  ａｎｄ  ｔｒｉｍ）コマンドを含み、ＡＰＩ（ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍｍｉｎｇ  ｉｎｔｅｒｆａｃｅ）を通じて発行されることを特徴とする請求項６に記載のシステム。
【請求項８】
前記ＳＷＡＴコマンドは、アプリケーション又はオペレーティングシステムによる呼び出し（ｃａｌｌ）に応答して格納装置ドライバＡＰＩから前記格納装置に発行されることを特徴とする請求項７に記載のシステム。
【請求項９】
前記第１リストのＬＢＡ及び前記第２リストのＬＢＡ内のＬＢＡは、前記第１リストのＬＢＡ及び前記第２リストのＬＢＡによって定められた順序に応じてアトミックに（ａｔｏｍｉｃａｌｌｙ）リマッピングされ、前記第１リストのＰＢＡは最善努力方式（ｂｅｓｔ−ｅｆｆｏｒｔ  ｍａｎｎｅｒ）に従って除去される請求項７に記載のシステム。
【請求項１０】
前記ＳＷＡＴコマンドは、隣接ＬＢＡのための第１ＳＷＡＴコマンド及び非隣接ＬＢＡのための第２ＳＷＡＴコマンドを含むことを特徴とする請求項９に記載のシステム。
【請求項１１】
格納装置の外部のプロセッサで実行されるアプリケーションを含むファイル管理システムで、アップデートされたファイルへのアクセスを提供する方法をコンピュータに実行させるためのプログラム命令語を含むコンピュータ読み取り可能な記録媒体に格納された実行可能なソフトウェア製品であって、
前記ファイル管理システムは、ファイルシステムによって維持される論理ブロック住所（ＬＢＡｓ；ｌｏｇｉｃａｌ  ｂｌｏｃｋ  ａｄｄｒｅｓｓｅｓ）と前記格納装置によって維持される物理ブロック住所（ＰＢＡｓ；ｐｈｙｓｉｃａｌ  ｂｌｏｃｋ  ａｄｄｒｅｓｓｅｓ）との間のファイル変換階層（ＦＴＬ；ｆｉｌｅ  ｔｒａｎｓｌａｔｉｏｎ  ｌａｙｅｒ）によって維持されるファイル変換階層（ＦＴＬ）マップを有し、
前記プログラム命令語は、前記格納装置によって、
前記プロセッサから第１コマンドを受信し、但し前記第１コマンドは第１ファイルの変形されたコンテンツ及び前記第１ファイルへのアクセスが維持される間に、前記変形されたコンテンツがコピーされる第２ファイルの生成を含むアップデートを受信するアプリケーションに応答して伝送され、前記第１コマンドのパラメータは前記第１ファイルに対応する第１リストのＬＢＡ及び前記第２ファイルに対応する第２リストのＬＢＡを含み、前記第１リストのＬＢＡは前記格納装置で前記第１ファイルの格納位置を示す第１リストのＰＢＡにマッピングされ、前記第２リストのＬＢＡは前記格納装置で前記第２ファイルの格納位置を示す第２リストのＰＢＡにマッピングされ、前記第１リストのＬＢＡは前記第２リストのＬＡＢと異なり、前記第１リストのＰＢＡは前記第２リストのＰＡＢと異なり、
前記第１リストのＬＢＡが前記第２リストのＰＢＡにマッピングされるように前記第１リストのＬＢＡをアトミックに（ａｔｏｍｉｃａｌｌｙ）リマッピングし、前記第１リストのＬＢＡの各ＬＢＡに対して、前記第１リストのＬＢＡの中の１つのＬＢＡと前記第２リストのＰＢＡの対応するＰＢＡとの間のマッピングが前記ＦＴＬマップで生成され、
前記第１リストのＰＢＡへの前記第１リストのＬＢＡのマッピングを除去し、前記第１リストのＬＢＡの全てのＬＢＡに対して、前記第１リストのＬＢＡの中の１つのＬＢＡと前記第１リストのＰＢＡの対応するＰＢＡとの間のマッピングが前記ＦＴＬマップで除去され、
前記第２リストのＰＢＡへの前記第２リストのＬＢＡのマッピングをマッピング解除（ｕｎｍａｐｐｉｎｇ）し、前記第２リストのＬＢＡの全てのＬＢＡに対して、前記第２リストのＬＢＡの中の１つのＬＢＡと前記第２リストのＰＢＡの対応するＰＢＡとの間のマッピングが前記ＦＴＬマップで除去されるようにすることを特徴とするコンピュータ読み取り可能な記録媒体に格納された実行可能なソフトウェア製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、更新されたファイルにアクセスする方法及びシステム並びにソフトウェア製品に関し、より詳細には、論理ブロック住所のアトミックスワップ及びトリムのためのＳＷＡＴコマンド及びＡＰＩ（アプリケーションプログラミングインタフェイス）を用いた方法及びシステム並びにソフトウェア製品に関する。
【背景技術】
【０００２】
ファイル管理システムはファイルの最も新しいバーションを追跡（ｔｒａｃｋ）するためにデータ構造を更新する。このようなプロセスにおいて、一部のシステムは前のバーション（ｔｈｅ  ｏｌｄｅｒ  ｖｅｒｓｉｏｎ）に上書きする代わりにファイルの新たなバーションを生成する一方、暫時、ファイルの前のバーションを維持する。結果的に、システムは新たなバーションが更新されているにも拘らず、読出し動作の間にファイルの前のバーションにアクセスする。例えば、使用者がブログページを更新する場合、使用者がブログページを更新する間にユーザーはブログページの前のバーションを読み出しする。この時、システムは新たなファイルにアクセスし、前のファイルを取り替えるためにシステム情報を更新することを要求する。一般的に、システムのデータ構造に対して連続的な更新が連続的に発生し、これはストレージに対して多数回の書込みを必要とする。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明は、上記従来の問題点に鑑みてなされたものであって、本発明の目的は、システムのデータ構造に対する連続的な更新を遂行することなく、更新されたファイルにアクセスするファイル管理方法及びシステム並びにソフトウェア製品を提供することにある。
【課題を解決するための手段】
【０００４】
上記目的を達成するためになされた本発明の方法は、格納装置の外部のプロセッサで実行されるアプリケーションを含むファイル管理システムで、アップデートされたバーションへのアクセスを提供する方法であって、前記ファイル管理システムは、ファイルシステムによって維持される論理ブロック住所（ＬＢＡｓ；ｌｏｇｉｃａｌ  ｂｌｏｃｋ  ａｄｄｒｅｓｓｅｓ）と前記格納装置によって維持される物理ブロック住所（ＰＢＡｓ；ｐｈｙｓｉｃａｌ  ｂｌｏｃｋ  ａｄｄｒｅｓｓｅｓ）との間のファイル変換階層（ＦＴＬ；ｆｉｌｅ  ｔｒａｎｓｌａｔｉｏｎ  ｌａｙｅｒ）によって維持されるファイル変換階層（ＦＴＬ）マップを有し、前記方法は、前記格納装置によって、前記プロセッサから第１コマンドを受信し、但し前記第１コマンドは第１ファイルの変形されたコンテンツ及び前記第１ファイルへのアクセスが維持される間に、前記変形されたコンテンツがコピーされる第２ファイルの生成を含むアップデートを受信するアプリケーションに応答して伝送され、前記第１コマンドのパラメータは前記第１ファイルに対応する第１リストのＬＢＡ及び前記第２ファイルに対応する第２リストのＬＢＡを含み、前記第１リストのＬＢＡは前記格納装置で前記第１ファイルの格納位置を示す第１リストのＰＢＡにマッピングされ、前記第２リストのＬＢＡは前記格納装置で前記第２ファイルの格納位置を示す第２リストのＰＢＡにマッピングされ、前記第１リストのＬＢＡは前記第２リストのＬＡＢと異なり、前記第１リストのＰＢＡは前記第２リストのＰＡＢと異なる段階と、前記第１リストのＬＢＡが前記第２リストのＰＢＡにマッピングされるように前記第１リストのＬＢＡをアトミックに（ａｔｏｍｉｃａｌｌｙ）リマッピングし、前記第１リストのＬＢＡの各ＬＢＡに対して、前記第１リストのＬＢＡの中の１つのＬＢＡと前記第２リストのＰＢＡの対応するＰＢＡとの間のマッピングが前記ＦＴＬマップで生成される段階と、前記第１リストのＰＢＡへの前記第１リストのＬＢＡのマッピングを除去し、前記第１リストのＬＢＡの全てのＬＢＡに対して、前記第１リストのＬＢＡの中の１つのＬＢＡと前記第１リストのＰＢＡの対応するＰＢＡとの間のマッピングが前記ＦＴＬマップで除去される段階と、前記第２リストのＰＢＡへの前記第２リストのＬＢＡのマッピングをマッピング解除（ｕｎｍａｐｐｉｎｇ）し、前記第２リストのＬＢＡの全てのＬＢＡに対して、前記第２リストのＬＢＡの中の１つのＬＢＡと前記第２リストのＰＢＡの対応するＰＢＡとの間のマッピングが前記ＦＴＬマップで除去される段階と、を有する。
【発明の効果】
【０００５】
本発明の方法及びシステムによれば、システムのデータ構造の連続的な更新及びストレージへの不必要な書込み無しにファイルを更新することができる。
【図面の簡単な説明】
【０００６】
【図１】例示的な実施形態によるファイル管理システムを示すブロック図である。
【図２】一般的なファイル管理システムにおけるファイルの更新状況を図式化した図である。
【図３】一実施形態によるファイル管理システムによって遂行されるプロセスを示す順序図である。
【図４】一実施形態によるファイル管理システムにおける図３のプロセスによるファイルの更新状況を図式化した図である。
【発明を実施するための形態】
【０００７】
添付した図面に示した実施形態及び本発明の実施形態を詳細に説明する。類似な参照番号は類似な構成要素を称する。以下で、本発明の技術的思想を説明するために図面を参照して実施形態を説明する。
【０００８】
本発明の長所及び特徴及びこれを達成するための方法は、以下の実施形態の詳細な説明及び添付の図面を参照することによって容易に理解されよう。しかし、本発明の技術的思想は多様な他の実施形態により具現でき、本文に開示した実施形態に限定構成されない場合もある。このような実施形態は、当業者に本発明の技術的思想を本文が完璧に伝達するために提供される。本発明の技術的思想は添付された特許請求の範囲によって定義される。図面で階層（ｌａｙｅｒｓ）及び領域（ｒｅｇｉｏｎｓ）の厚さは一般に説明を容易にするために誇張されている。
【０００９】
本文（特に以下の特許請求の範囲）における単数用語及び類似な用語の使用は本文中において別途規定するか、或いは明確に反対の意味ではない限り、単数及び複数の全てを含むと理解される。別途規定しない限り、“含む”（ｃｏｍｐｒｉｓｉｎｇ）、“有する”（ｈａｖｉｎｇ）、“包含する”（ｉｎｃｌｕｄｉｎｇ）、及び、“含有する”（ｃｏｎｔａｉｎｉｎｇ）の用語は非限定的（ｏｐｅｎ−ｅｎｄｅｄ）な意味、即ち、全て例えば“包含する”に相当するが、必ずしもこの意味に限定されない、として理解される。
【００１０】
本文で使用される構成要素（ｃｏｍｐｏｎｅｎｔ）又はモジュール（ｍｏｄｕｌｅ）の用語は特定動作を遂行するソフトウェア構成要素、又は、ＦＰＧＡ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）又はＡＳＩＣ（ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）のようなハードウェア構成要素を意味する。しかし、これに限定されない。ソフトウェア構成要素又はモジュールは、好ましくは住所指定可能なストレージ媒体内に位置するように構成され、１つ又はそれ以上のプロセスを遂行するように構成される。即ち、例えば、構成要素又はモジュールは、ソフトウェア構成要素、客体指向ソフトウェア構成要素（ｏｂｊｅｃｔ−ｏｒｉｅｎｔｅｄ  ｓｏｆｔｗａｒｅ  ｃｏｍｐｏｎｅｎｔｓ）クラス構成要素（ｃｌａｓｓ  ｃｏｍｐｏｎｅｎｔｓ）及び作業構成要素（タスク構成要素）、プロセス（ｐｒｏｃｅｓｓｅｓ）、機能（ｆｕｎｃｔｉｏｎｓ）、属性（ａｔｔｒｉｂｕｔｅｓ）、手続（ｐｒｏｃｅｄｕｒｅｓ）、サブルーチン（ｓｕｂｒｏｕｔｉｎｅｓ）、プログラムコードのセグメント（ｓｅｇｍｅｎｔｓ  ｏｆ  ｐｒｏｇｒａｍ  ｃｏｄｅ）、  ドライバ（ｄｒｉｖｅｒｓ）、ファームウェア（ｆｉｒｍｗａｒｅ）、マイクロコード（ｍｉｃｒｏｃｏｄｅ）、回路（ｃｉｒｃｕｉｔｒｙ）、データ（ｄａｔａ）、データベース（ｄａｔａｂａｓｅｓ）、データ構造（ｄａｔａ  ｓｔｒｕｃｔｕｒｅｓ）、テーブル（ｔａｂｌｅｓ）、アレイ（ａｒｒａｙｓ）等のような構成要素を含む。複数の構成要素又はモジュールは組み合わされて新しい機能を提供する場合がある。
【００１１】
別途定義しない限り、本文で使用される全ての技術的科学的用語は本発明が属する技術分野における通常の技術者が共通的に理解するのと同一の意味を有する。本文で提供される例示的な用語又は全ての例示の使用は単に本発明を説明するためであって、それによって本発明の範囲を特許請求の範囲と相異した形に限定するものではない。更に、別途定義しない限り、一般的に使用される辞典で定義された全ての用語はそれと相異する形に定義されない。
【００１２】
図１は例示的な実施形態によるファイル管理システム１０を示すブロック図である。ファイル管理システム１０は、電子文書又はファイルを格納し、追跡するコンピュータ１２上に具現される。一実施形態で、コンピュータ１２はデスクトップコンピュータ、ラップトップ、又はワークステーションを含む。他の実施形態で、コンピュータ１２はネットワーク（図示せず）を通じてクライアントコンピュータと通信するサーバを含む。コンピュータ１２はプロセッサ１４、メモリ１６、及び高速ストレージ１８（例えば、ソリッドステートドライブＳＳＤ）のようなストレージディバイス（格納装置）を含む一般的なコンピュータ構成要素を含む。
【００１３】
プロセッサ１４は１つ又はそれ以上のコアを有するシングルプロセッサ又はマルチプロセッサを含む。プロセッサ１４はメモリ１６からのプログラム命令語を実行する。ソフトウェアの例示的な形態は、アプリケーション２０、オペレーションズシステム（ＯＳ、以下、運営体系という）２２、ファイルシステム２４、及び高速ストレージ１８のための装置ドライバ用のアプリケーションプログラミングインタフェイス（ｄｅｖｉｃｅ  ｄｒｉｖｅｒ  ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍｍｉｎｇ  ｉｎｔｅｒｆａｃｅ（以下、ＡＰＩという））２６を含む。
【００１４】
本発明が属する技術分野において周知のようにアプリケーション２０は、プロセッサ１４によって実行されてコンピュータ１２の稼動中に特定の作業を遂行するコンピュータソフトウェアを指す。例えば、アプリケーション２０はウェブブラウザ、ワードプロセッサ、及びデータベースプログラムを含む。一般的に、アプリケーション２０は複数のファイル２８を生成、修正、又は更新する。運営体系２２はコンピュータ１２の動作を制御し、管理するシステムソフトウェアである。運営体系２２はマイクロソフトウインドー、ＭａｃＯＳＸ、及びリナックス（登録商標）を含む。
【００１５】
ファイルシステム２４は、複数のファイル２８のような情報を高速ストレージ１８のようなデータ格納装置にどのようにして格納し、検索し、更新するかを制御するソフトウェアである。一般的にファイルシステム２４は、各ファイル２８のようなデータが高速ストレージ１８又は他のコンピュータ格納装置の何処に格納されるかを特定するために論理ブロック住所指定（ｌｏｇｉｃａｌ  ｂｌｏｃｋ  ａｄｄｒｅｓｓｉｎｇ）を使用する。更に詳細には、論理ブロック住所指定は、各ファイル２８を論理ブロック住所（ｌｏｇｉｃａｌ  ｂｌｏｃｋ  ａｄｄｒｅｓｓ、以下ＬＢＡという）３０にマッピング（割当て）し、論理ブロック住所（ＬＢＡ）を高速ストレージ１８の特定の格納領域、即ち物理ブロック住所（ｐｈｙｓｉｃａｌ  ｂｌｏｃｋ  ａｄｄｒｅｓｓ、以下、ＰＢＡという）３２にマッピングする抽象的作業（ａｂｓｔｒａｃｔｉｏｎ）である。
【００１６】
装置ドライバＡＰＩ（２６）はアプリケーション２０、運営体系２２、及びファイルシステム２４が高速ストレージ１８と直接（ｔｒａｎｓｐａｒｅｎｔｌｙ）、相互に通信できるようにする。装置ドライバＡＰＩ（２６）はコマンドを高速ストレージに提供するか、及び／又は高速ストレージからデータを受信する。
【００１７】
一実施形態で、高速ストレージ１８は物理ブロック住所指定（ｐｈｙｓｉｃａｌ  ｂｌｏｃｋ  ａｄｄｒｅｓｓｉｎｇ）を使用して高速ストレージ１８に格納されたデータの各物理ブロック住所を提供する。住所のこのような形態は物理ブロック住所ＰＢＡと称される。一実施形態で、高速ストレージ１８はソリッドステートドライブＳＳＤを含む。ＳＳＤはメモリのような集積回路を使用してファイル２８のようなデータを半永久的に（ｐｅｒｓｉｓｔｅｎｌｙ）格納するデータ格納装置である。一実施形態で、ＳＳＤはＮＡＮＤフラッシュメモリ又はＲＡＭを使用する。
【００１８】
一実施形態で、高速ストレージ１８は、コンピュータ１２に論理セクタインタフェイスを提供しながら、高速ストレージ１８を管理するファイル変換階層３４（ＦＴＬ、ｆｉｌｅ  ｔｒａｎｓｌａｔｉｏｎ  ｌａｙｅｒ）又はその等価物を更に含む。ＦＴＬ（３４）はファイルシステム２４によって支援されるＬＢＡ（３０）及び高速ストレージ１８によって支援されるＰＢＡ（３２）の間のマッピング関係を制御する。他の実施形態においては、ＳＳＤと異なる形態の格納装置が使用される。
【００１９】
図２は、従来の一般的なファイル管理システム１０におけるファイルの更新状況を図式化した図面である。アプリケーション２０としては、使用者のブログページを示すファイル２００を維持（メンテ）する場合を想定する。ユーザーがブログを更新する時、アプリケーション２０は以前ファイル２０２をファイル２００としてメモリ１６に読み込み、そのコンテンツを修正する。更新を遂行する間に、システム１０は修正されたファイルがコピーされた新しいファイル２０４を生成する。使用者がブログ更新を持続する間に他の使用者は相変わらず以前ファイル２００をアクセスして閲覧できる。使用者がブログ修正を完了し、新しいファイル２０４を新しいページとして提出する時、アプリケーション２０は以前ファイル２０２から新しいファイル２０４に切り替え、以前ファイル２０２を削除する。
【００２０】
以前ファイル及び新しいファイルが実際に格納されたストレージ１８が物理ブロック住所ＰＢＡ（２０８）を維持する一方、ファイルシステム２４は以前ファイル２０２のための論理ブロック住所ＬＢＡ（２０６）及び新しいファイル２０４のための論理ブロック住所ＬＢＡ（２０６）を維持する。この従来例では、ファイルシステム２４は、以前ファイル２０２を論理ブロック住所ＬＢＡ４〜ＬＢＡ５にマッピングし、ストレージ１８は、論理ブロック住所ＬＢＡ４〜ＬＢＡ５を物理ブロック住所ＰＢＡ０〜ＰＢＡ１に各々マッピングする。同様にファイルシステム２４は、新しいファイル２０４を論理ブロック住所ＬＢＡ２４〜ＬＢＡ２５にマッピングし、ストレージ１８は、論理ブロック住所ＬＢＡ２４〜ＬＢＡ２５を物理ブロック住所ＰＢＡ１１〜ＰＢＡ１２に各々マッピングする。
【００２１】
従来の一般的なファイル管理システムには、以前ファイル２０２を置換した新しいファイル２０４にアクセスするために、その都度、システム情報を更新しなければならないという問題点がある。一般的に、システムのデータ構造の連続的な更新はストレージへの多量の書込みを発生する。
【００２２】
システム情報は各ファイル又は文書に対するメタデータを含む。例えば、メタデータはファイルが格納された日付、ファイルを格納した使用者の識別子を含む。メタデータは一般的にデータ構造に格納される。このようなデータ構造の一例は格納されたデータを維持し、ログ時間（ｌｏｇｒｉｔｈｍｉｃ  ｔｉｍｅ）に検索、連続的なアクセス、挿入、除去（削除）が可能であるツリーデータ構造（ｔｒｅｅ  ｄａｔａ  ｓｔｒｕｃｕｒｅ）であるＢ−ツリーである。ファイル２００の各々に対するメタデータ及び／又はＬＢＡ（２０６）のリストがＢーツリーのｉノードによって支援される。１つのファイル２００当たり１つのｉノードが存在する。ファイル２００に対するｉノードがＢ−ツリーのリーフレベル（ｌｅａｆ  ｌｅｖｅｌ）に隣接するように格納された場合、ルーツノード（ｒｏｏｔ  ｎｏｄｅ）までの経路上の全てのノードの更新が必要になり、これによってストレージへの連続的な（ｃａｓｃａｄｉｎｇ、将棋倒し的）更新及び書込みが発生する。
【００２３】
例えば、使用者が上述したようにブログを更新する場合、当該アプリケーションは少なくとも１つのディスク書込みを発生させる、ブログを含むファイル情報の更新を必要とする。使用者が更に多い場合、ディスクの書込みが更に多く発生する。
【００２４】
本願に係わる例示的な実施形態は、システムデータ構造を更新することなく、新しい更新ファイルにアクセスする向上された方法及びシステムを提供する。これによって、システムにおける過度なディスク書込み及び連続的な更新が最少化又は回避される。
【００２５】
例示的な実施形態は、このような問題を解決するための新しいストレージ（例えば、ＳＳＤ）コマンド及びＡＰＩを提案する。即ち、システムデータ構造の更新無しでファイルの新しいバーションがアクセスされる場合、最新システム情報を反映するための連続的な更新を排除することによってストレージ書込みを相当に減少或いは回避できる。実際に、この簡単な例に留まらず、Ｂ＋ツリー、ファイル（ドキュメント）ロギングのような多数のアプリケーションはこの例示的な実施形態が適用される特徴を含む。
【００２６】
例示的な実施形態は、連関されたＡＰＩ及びコマンド（以下で、ＳＷＡＴ（ＳＷａｐ  Ａｎｄ  Ｔｒｉｍ）コマンドと称する）を提供する。与えられた新しいＬＢＡリスト及び以前ＬＢＡリストの対に対して、ＳＷＡＴコマンドはリスト内のＬＢＡのマッピングを順にアトミックに（ａｔｏｍｉｃａｌｌｙ）スワップし、使用されないＬＢＡを整理（ｔｒｉｍ）する。
例示的に、“アトミック（ａｔｏｍｉｃ）”の用語はコンピュータ分野で使用される用語であって、アトミック動作（ａｔｏｍｉｃ  ｏｐｅｒａｔｉｏｎ）は他の動作によって中断（ｉｎｔｅｒｒｕｐｔ）されない動作を示す。即ち、アトミック動作が完了された以後に他の動作が遂行される。
【００２７】
図３は、一実施形態に従って、アプリケーション２０を実行するプロセッサ１４を含むファイル管理システム１０によって遂行されるプロセスを示す順序図であり、図４は図３のプロセスによるファイルの更新状況を図式的に示す図面である。
【００２８】
図１、図３、及び図４を参照すれば、段階３００で、プロセッサ１４は修正されたコンテンツを含む更新を受信すると、ファイルシステム２４内における以前ファイル（ｏｌｄ  ｆｉｌｅ）へのアクセスを維持すると共に、修正されたコンテンツがコピーされた新しいファイル（ｎｅｗ  ｆｉｌｅ）をファイルシステム２４内に生成する。
【００２９】
即ち、更新されるべきファイル４００に対応して、ファイルの以前バーション（即ち、以前ファイル４０２）は暫定的に維持され、ファイルの新しいバーション（即ち、新しいファイル４０４）は修正されたコンテンツを含むように生成される。このように、ファイル４００は何れか一つのアプリケーション２０又は運営体系２２を通じて更新される。
【００３０】
ファイルシステム２４は、以前ファイルＬＢＡ（４０６）、例えば、ＬＢＡ４〜ＬＢＡ５、のリストを使用して以前ファイル４０２の論理格納位置を示し、高速ストレージ１８は以前ファイルのＰＢＡ（４０８）、例えば、ＰＢＡ０〜ＰＢＡ１、のリストを使用して以前ファイル４０２の高速ストレージ１８内での物理格納位置を示す。同様に、新しいファイル４０４の論理格納位置は新しいファイルのＬＢＡ（４１０）、例えば、ＬＢＡ２４〜ＬＢＡ２５、のリストを使用して示され、新しいファイル４０４の高速ストレージ１８内での物理格納位置は新しいファイルの物理ブロック住所４１２（例えば、ＰＢＡ１１〜ＰＢＡ１２）のリストを使用して示される。
【００３１】
図３を再び参照すれば、段階３０２でプロセッサ１４は、新しいファイルへの更新要求に応答して、以前ファイルのＬＢＡ（４０６）のマッピングを、以前ファイルのＰＢＡ（４０８）から新しいファイルのＰＢＡ（４１２）にスワップする。即ち、図４において、矢印４１４により示したように以前ファイルのＬＢＡ（４０６）を新しいファイル４０４のＰＢＡ（４１２）に再マッピングする。より詳細には、プロセッサ１４は、ファイルシステム２４を介して格納装置ドライバＡＰＩ（２６）から格納装置１８に対するＳＷＡＴコマンドを発行させると、ストレージ１８は論理ブロック住所ＬＢＡ（４）を物理ブロック住所ＰＢＡ（１１）にマッピングし、論理ブロック住所ＬＢＡ（５）を物理ブロック住所ＰＢＡ１２にマッピングする。結果的に、このＳＷＡＴコマンドを用いるＡＰＩ（２６）はファイル情報更新を不要にする。
【００３２】
更に、段階３０４でストレージ１８は、以前ファイルＬＢＡ（４０６）の、以前ファイルＰＢＡ（４０８）へのマッピングを整理（ｔｒｉｍ）して、以前ファイルのＰＢＡ（４０８）を解除（ｒｅｌｅａｓｅ）する。図４に示したように以前ファイルＰＢＡ（４０８）、例えば、ＰＢＡ０及びＰＢＡ１の解除は、参照番号４１６のように“Ｘ”付きで表示される。
【００３３】
段階３０６でストレージ１８は、新しいファイルＬＢＡ（４１０）から新しいファイルＰＢＡ（４１２）へのマッピングを解消（ｃｌｅａｒ）する。図４に示したようにＳＷＡＴ動作の以後に、論理ブロック住所ＬＢＡ２４及び論理ブロック住所ＬＢＡ２５に対するマッピングが解消され、選択的に再使用に回され、新しいファイル４０４は参照番号４１８のように“Ｘ”付きで表示され、即ち、選択的に削除（ｄｅｌｅｔｅ）される。
【００３４】
例示的な実施形態によれば、ＳＷＡＴコマンド及びＡＰＩは既存の技術に優る多様な長所を提供する。ＳＷＡＴコマンドはＯＳ（２２）の修正を必要とせず、若干のファームウェア修正を通じてＳＳＤ装置を含むストレージ１８の全ての形態に適用できる。ＳＷＡＴコマンドの実行はアプリケーションからのディスク書込み回数を減少するので、ＳＳＤ装置の寿命を向上できる。ＳＷＡＴコマンドを実行すると、使用されない空間を事前に再生（ｒｅｃｌａｉｍ）させることによってシステムの性能を向上できる。更に、ＳＷＡＴコマンドは、特にマルチバーション同時制御（ｍｕｌｔｉ−ｖｅｒｓｉｏｎ  ｃｏｎｃｕｒｒｅｎｃｙ  ｃｏｎｔｒｏｌ）を有するアプリケーションの顕著な性能上の利点を提供できる。
【００３５】
以下ではＳＷＡＴコマンドについて更に詳細に説明する。上記のようなファイルの処理がアプリケーション２０を通じて委託される時、運営体系２２又はファイルシステム２４の中で何れか１つは、装置ドライバＡＰＩ（２６）を呼び出す（ｃａｌｌ）。その以後に、装置ドライバＡＰＩ（２６）は高速ストレージ１８にＳＷＡＴコマンドを伝送する。
【００３６】
一実施形態で、ＳＷＡＴコマンドはパラメータとして、論理ブロック住所リストＬＢＡの対（例えば、新しいファイルの論理ブロック住所４１０のリスト及び以前ファイルの論理ブロック住所４０６のリスト）を備える。高速ストレージ１８のファイル変換階層（ＦＴＬ）３４は、以前ファイルの論理ブロック住所４０６のリスト（第２ＬＢＡリスト）及び新しいファイルの論理ブロック住所４１０のリスト（第１ＬＢＡリスト）を受信し、前記リストにより定められた順に論理ブロック住所リストの対における論理ブロック住所のマッピングをアトミックに（ａｔｏｍｉｃａｌｌｙ）スワップし、以後に、以前ファイルの物理ブロック住所４０８を最善の方式（例えば、ＳＷＡＴコマンドを実行する間にトリムオーバヘッドを最小化するための集団トリム（ｂａｔｃｈｅｄ  ｔｒｉｍ））に従って除去できる。一実施形態で、ＳＷＡＴコマンドはアトミック（ａｔｏｍｉｃ）である。
【００３７】
ＳＷＡＴコマンド
【００３８】
一実施形態で、論理ブロック住所ＬＢＡは隣接する場合と隣接しない場合がある。従って、隣接する論理ブロック住所及び隣接しない論理ブロック住所の各々のために２つのＳＷＡＴコマンドが提供される。ＳＷＡＴコマンドの技術的思想及び実施形態は、本発明を特定の実施形態の局面で説明する以下の擬似的プログラム（ｐｓｅｕｄｏ＿ｃｏｄｅ）符号を参照すると更によく理解できよう。本発明及びその技術的思想は、ここに特に記載しない多様な形態のプログラム、装置、方法を含む。
【００３９】
［非隣接ＬＢＡのためのＡＰＩ］
【００４０】
ｓｗａｔ（ｕｎｓｉｇｎｅｄ  ｉｎｔ  ＊ｄｓｔ＿ｌｉｓｔ、  ｕｎｓｉｇｎｅｄ  ｉｎｔ  ＊ｓｒｃ＿ｌｉｓｔ、  ｕｎｓｉｇｎｅｄ  ｉｎｔ  ｌｂａ＿ｃｏｕｎｔ、  ｕｎｓｉｇｎｅｄ  ｉｎｔ  ｔｉｍｅｏｕｔ）
【００４１】
このＡＰＩルーチン「ＳＷＡＴ」は、ｄｓｔ＿ｌｉｓｔのＬＢＡのマッピングをｓｃｒ＿ｌｉｓｔのＬＢＡのマッピングとアトミックに（ａｔｏｍｉｃａｌｌｙ）スワップし、ｄｓｔ＿ｌｉｓｔのＬＢＡに対する物理ブロック住所（ＰＢＡ）を整理（ｔｒｉｍ）する。上述されたコマンドが成功裡に遂行される時、ｄｓｔ＿ｌｉｓｔのＬＢＡはｓｒｃ＿ｌｉｓｔのＬＢＡによって指定されたＰＢＡを指定し、ｄｓｔ＿ｌｉｓｔによって指定されたＰＢＡは整理され、ｓｒｃ＿ｌｉｓｔのＬＢＡは解除（ｒｅｌｅａｓｅ）される。大規模なトランザクションのアトミックな（ａｔｏｍｉｃ）処理が要求される時、このＡＰＩが有用である。
【００４２】
「パラメータ」
以下に、非隣接ＬＢＡのためのＡＰＩルーチンにおける「ＳＷＡＴ」命令のパラメータとその意味を列挙する。

「ｄｓｔ＿ｌｉｓｔ」
ｄｓｔ＿ｌｉｓｔはＬＢＡのリストを含み、初期には（即ち、スワップ前には）以前コンテンツを指定する。しかし、ｄｓｔ＿ｌｉｓｔはＳＷＡＴ呼び出しが成功裡に遂行された後には新しいコンテンツを指定する。その際、ｄｓｔ＿ｌｉｓｔ内のＬＢＡのコンテンツ（即ち、ＰＢＡ）は除去され、ＬＢＡのマッピングはＳＷＡＴ呼び出しと共に更新される。

「ｓｒｃ＿ｌｉｓｔ」
ｓｒｃ＿ｌｉｓｔは新しいコンテンツのＬＢＡのリストを含み、ｓｒｃ＿ｌｉｓｔのＬＢＡはＳＷＡＴ呼び出しが成功裡に実行された後に解除される。ｓｒｃ＿ｌｉｓｔ内のＬＢＡのコンテンツ（即ち、ＰＢＡ）は維持されるが、ＬＢＡ自身は選択的に再使用される。

「ｌｂａ＿ｃｏｕｎｔ」
両ＬＢＡリスト内のＬＢＡの個数。ここで、２つのリストの長さは同一でなければならず、ＬＢＡの最大個数は個々の具現例に依存して変化し、ＮＶＭ＿ＭＡＸ＿ＳＷＡＴ＿ＬＢＡ＿ＣＯＵＮＴによって定義される。

「ｔｉｍｅｏｕｔ」
マイクロ秒（ｍｉｃｒｏｓｅｃｏｎｄ）単位のＳＷＡＴ動作の最大時間。０である場合、無限時間を意味する。

「ＲＥＴＵＲＮ」
以下に、非隣接ＬＢＡのためのＡＰＩルーチン「ＳＷＡＴ」からの戻り（リターン）時のモードを列挙する。
「ＮＶＭ＿ＳＵＣＣＥＳＳ」・・・ＳＷＡＴが成功裡に完了して戻る場合である。
「ＮＶＭ＿ＥＲＲ＿ＲＯＬＬＢＡＣＫ」・・・このエラーは装置が幾つかの原因、例えば媒体障害、タイムアウト等の原因によってＳＷＡＴ動作を遂行するのに失敗して戻る場合である。
「ＮＶＭ＿ＥＲＲ＿ＩＮＶＡＩＬＤ＿ＬＢＡ」・・・このエラーはＬＢＡが装置の範囲外にあるか、又はＬＢＡがどのＰＢＡにもマッピングされない、ことによってリスト上のＬＢＡが無効とされて戻る場合である。
「ＮＶＭ＿ＥＲＲ＿ＩＮＶＡＩＬＤ＿ＰＡＲＡＭ」・・・このエラーはルーチンの一部のパラメータが無効とされて戻る場合である。例えば、ｄｓｔ＿ｌｉｓｔ又はｓｒｃ＿ｌｉｓｔがＮＵＬＬ（空白）になり、ｌｂａ＿ｃｏｕｎｔが０、又は負数（例えば、−１）に設定されて非常に大きいか、或いはタイプの不一致があって戻る場合である。
「ＮＶＭ＿ＥＲＲ＿ＴＩＭＥＯＵＴ」・・・このエラーは装置がユーザーによって定義された時間範囲内に動作を完了できずに戻る場合である。

【００４３】
［隣接ＬＢＡのためのＡＰＩ］
【００４４】
ｃｏｎｔ＿ｓｗａｔ（ｕｎｓｉｇｎｅｄ  ｉｎｔ  ｄｓｔ＿ｌｂａ、ｕｎｓｉｇｎｅｄ  ｉｎｔ  ｓｒｃ＿ｌｂａ、ｕｎｓｉｇｎｅｄ  ｉｎｔ  ｌｂａ＿ｃｏｕｎｔ、ｕｎｓｉｇｎｅｄ  ｉｎｔ  ｔｉｍｅｏｕｔ）
【００４５】
ｃｏｎｔ＿ｓｗａｔルーチンは（ｄｓｔ＿ｌｂａ，ｄｓｔ＿ｌｂａ＋ｌｂａ＿ｃｏｕｎｔ−１）の範囲内のＬＢＡのマッピングを（ｓｒｃ＿ｌｂａ，ｓｒｃ＿ｌｂａ＋ｌｂａ＿ｃｏｕｎｔ−１）の範囲内のＬＢＡのマッピングとスワップし、ＰＢＡ（ｄｓｔ＿ｌｂａ，ｄｓｔ＿ｌｂａ＋ｌｂａ＿ｃｏｕｎｔ−１）をアトミックに（ａｔｏｍｉｃａｌｌｙ）整理する。上述されたコマンドが成功裡に実行される時、（ｄｓｔ＿ｌｂａ，ｄｓｔ＿ｌｂａ＋ｌｂａ＿ｃｏｕｎｔ−１）に対するＬＢＡは（ｓｒｃ＿ｌｂａ，ｓｒｃ＿ｌｂａ＋ｌｂａ＿ｃｏｕｎｔ−１）に対するＬＢＡによって指定されるＰＢＡを指定し、（ｄｓｔ＿ｌｂａ、ｄｓｔ＿ｌｂａ＋ｌｂａ＿ｃｏｕｎｔ−１）に対するＰＢＡは整理され、（ｓｒｃ＿ｌｂａ、ｓｒｃ＿ｌｂａ＋ｌｂａ＿ｃｏｕｎｔ−１）のＬＢＡは解除される。
【００４６】
「パラメータ」
以下に、隣接ＬＢＡのためのＡＰＩルーチンにおける「ＳＷＡＴ」命令のパラメータとその意味を列挙する。

「ｄｓｔ＿ｌｂａ」
（ｄｓｔ＿ｌｂａ、ｄｓｔ＿ｌｂａ＋ｌｂａ＿ｃｏｕｎｔ−１）の範囲のＬＢＡは、初期には（即ち、スワップ前には）以前コンテンツを指定し、ｃｏｎｔ＿ｓｗａｔが成功裡に遂行された後には、新しいコンテンツを指定する。（ｄｓｔ＿ｌｂａ、ｄｓｔ＿ｌｂａ＋ｌｂａ＿ｃｏｕｎｔ−１）の範囲内のＬＢＡのコンテンツ（即ち、ＰＢＡ）は除去され、（ｄｓｔ＿ｌｂａ、ｄｓｔ＿ｌｂａ＋ｌｂａ＿ｃｏｕｎｔ−１）の範囲内のＬＢＡのマッピングはＳＷＡＴ呼び出しと共に更新される。

「ｓｒｃ＿ｌｂａ」
ｓｒｃ＿ｌｂａは新しいコンテンツを指定し、（ｄｓｔ＿ｌｂａ、ｄｓｔ＿ｌｂａ＋ｌｂａ＿ｃｏｕｎｔ−１）の範囲内のＬＢＡはｎｖｍ＿ｃｏｎｔ＿ｓｗａｔが成功裡に遂行された後に解除される。（ｄｓｔ＿ｌｂａ、ｄｓｔ＿ｌｂａ＋ｌｂａ＿ｃｏｕｎｔ−１）の範囲内のＬＢＡのコンテンツ（ＰＢＡ）は維持されるが、それらのＬＢＡ自身は選択的に再使用される。

「ｌｂａ＿ｃｏｕｎｔ」
両ＬＢＡリスト内のＬＢＡの個数。ここで、２つのリストの長さは同一でなければならず、ＬＢＡの最大個数は個々の具現例に依存して変化し、ＮＶＭ＿ＭＡＸ＿ＳＷＡＴ＿ＬＢＡ＿ＣＯＵＮＴによって定義される。

「ｔｉｍｅｏｕｔ」
マイクロ秒（ｍｉｃｒｏｓｅｃｏｎｄ）単位のＳＷＡＴ動作の最大時間。０に設定される場合、無限時間を意味する。

「ＲＥＴＵＲＮ」
以下に、隣接ＡＰＩルーチン「ＳＷＡＴ」からの戻り（リターン）時のモードを列挙する。
「ＮＶＭ＿ＳＵＣＣＥＳＳ」・・・ＳＷＡＴが成功裡に完了して戻る場合である。
「ＮＶＭ＿ＥＲＲ＿ＲＯＬＬＢＡＣＫ」・・・このエラーは装置が幾つかの原因、例えば媒体障害、タイムアウト等の原因によってＳＷＡＴ動作を遂行するのに失敗して戻る場合である。
「ＮＶＭ＿ＥＲＲ＿ＩＮＶＡＩＬＤ＿ＬＢＡ」・・・このエラーはＬＢＡが装置の範囲外にあるか、又はＬＢＡがどのＰＢＡにもマッピングされない、ことによってリスト上のＬＢＡが無効とされて戻る場合である。
「ＮＶＭ＿ＥＲＲ＿ＩＮＶＡＩＬＤ＿ＰＡＲＡＭ」・・・このエラーはルーチンの一部のパラメータが無効とされて戻る場合である。例えば、ｄｓｔ＿ｌｉｓｔ又はｓｒｃ＿ｌｉｓｔがＮＵＬＬ（空白）になり、ｌｂａ＿ｃｏｕｎｔが０、又は負数（例えば、−１）に設定されて非常に大きいか、或いはタイプの不一致があって戻る場合である。
「ＮＶＭ＿ＥＲＲ＿ＴＩＭＥＯＵＴ」・・・このエラーは装置がユーザーによって定義された時間範囲内に動作を完了できずに戻る場合である。

【００４７】
ＳＷＡＴコマンドは、製造者専用コマンド（ｖｅｎｄｏｒ  ｓｐｅｃｉｆｉｃ  ｃｏｍｍａｎｄ）を通じてＳＡＴＡ、ＳＡＳ、ＰＣＩｅ、ｅＭＭＣ、ＵＦＳ等のストレージプロトコルの形態で具現される。
【００４８】
本発明は先に説明された実施形態によって説明されたが、本発明の技術的思想範囲内で実施形態は多様に修正できる。例えば、例示的な実施形態はハードウェア、ソフトウェア、プログラム命令語を含むコンピュータ読出し可能媒体、又はそれらの組み合わせを使用して具現できる。本発明によって書かれたソフトウェアはメモリ、ハードディスク、又はＣＤ／ＤＶＤ−ＲＯＭのようなコンピュータ読出し可能媒体に格納され、プロセッサによって実行される。従って、多様な修正が添付された請求の範囲の思想と範囲から逸脱することなく当業者によって具現されよう。
【符号の説明】
【００４９】
１０      ファイル管理システム
１２      コンピュータ
１４      プロセッサ
１６      メモリ
１８      格納装置（高速ストレージ）
２０      アプリケーション
２２      運営体系（ＯＳ）
２４      ファイルシステム
２６      装置ドライバ
２８      ファイル
３０      論理ブロック住所（ＬＢＡ）
３２      物理ブロック住所（ＰＢＡ）
２００、４００      ファイル
２０２、４０２      以前ファイル
２０４、４０４      新しいファイル
２０６、４０６      以前ファイルの論理ブロック住所
２０８、４０８      以前ファイルの物理ブロック住所
４１０      新しいファイルの論理ブロック住所
４１２      新しいファイルの物理ブロック住所
４１４      再マッピングを示す「→」印
４１６      解除（ｒｅｌｅａｓｅ）を示す「Ｘ」印
４１８      解消（ｃｌｅａｒ）を示す「Ｘ」印
【図１】
2019016395.tif 000003
【図２】
2019016395.tif 000004
【図３】
2019016395.tif 000005
【図４】
2019016395.tif 000006