説明

不揮発性メモリストレージ装置と通信する方法およびシステム

ストレージ装置のための方法およびシステムが提供される。一方法は、ストレージ装置のコマンド解析モジュールにより、ホストシステムからのコマンドを解釈することと、ホストシステムと連携するコマンド解析モジュールにより、操作に関する情報をコマンドから抽出することとを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、不揮発性メモリストレージ装置に関し、より具体的には不揮発性メモリストレージ装置との通信に関する。
【0002】
関連出願の相互参照
本願は、その全体が本願明細書において参照により援用されている、2007年6月29日に出願された米国特許出願第11/771,203号(特許文献1)と2007年6月29日に出願された米国特許出願第11/771,165号(特許文献2)の利益を主張する。
【背景技術】
【0003】
情報の蓄積にあたって、不揮発性メモリストレージ装置が一般的に利用されている。これらの装置は携帯電話機、デジタルカメラ、デスクトップコンピュータ、ラップトップコンピュータ、およびその他の類似のシステムで使われている(本願明細書では合同的かつ互換的に「ホストシステム」または「ホスト」と呼ぶ)。
各種のホストシステムプラットフォームではソフトウェア層(ソフトウェア開発キット(SDK)層と呼ばれることもある)を使用し、不揮発性メモリスストレージデバイスドライバを介して不揮発性メモリストレージ装置と通信する。不揮発性メモリストレージ装置のさらなる機能にアクセスするため、ホストシステムにSDK層を追加することもあり、これにより、これらのSDK層なしでは利用できない不揮発性メモリストレージ装置のさらなる機能にアクセスすることができる。異なるホストシステム提供業者へのSDK移植は厄介であり、これを軽減することが望まれる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】米国特許出願第11/771,203号
【特許文献2】米国特許出願第11/771,165号
【発明の概要】
【0005】
一実施形態において、ストレージ装置のための方法が提供される。この方法は、ストレージ装置のコマンド解析モジュールにより、ホストシステムからのコマンドを解釈することと、コマンド解析モジュールにより、操作に関する情報をコマンドから抽出することとを含む。
【0006】
別の実施形態において、ストレージ装置のための方法が提供される。この方法は、ストレージ装置により、ホストシステムからプラットフォーム独立形式コマンドを受信することと、ストレージ装置のコマンド解析モジュールにより、コマンドを解釈することと、コマンド解析モジュールにより、操作に関する情報をコマンドから抽出することと、ストレージ装置によって操作が実行された後、コマンド解析モジュールにより、ホストシステムへ応答を送信することとを含む。
【0007】
さらに別の実施形態において、ストレージ装置のための方法が提供される。この方法は、ストレージ装置により、ホストシステムからプラットフォーム独立形式コマンドを受信することと、ストレージ装置のファームウェアコードにより、コマンドにて操作指令の有無を検出することと、コマンド解析モジュールにより、操作に関する情報をコマンドから抽出することと、ストレージ装置によって操作が実行された後、コマンド解析モジュールにより、ホストシステムへ応答を送信することとを含む。
【0008】
一実施形態において、ストレージ装置が提供される。このストレージ装置は、ホストシステムからのプラットフォーム独立形式コマンドを解釈し、かつ操作に関する情報をコマンドから抽出する、コマンド解析モジュールを含み、このコマンド解析モジュールはホストシステムと連携する。
【0009】
別の実施形態において、ストレージ装置が提供される。このストレージ装置は、ホストシステムからプラットフォーム独立形式コマンドを受信し、コマンドを解釈し、操作に関する情報をコマンドから抽出し、かつストレージ装置によって操作が実行された後にホストシステムへ応答を送信する、コマンド解析モジュールを含む。
【0010】
さらに別の実施形態において、ストレージ装置が提供される。このストレージ装置は、ホストシステムからプラットフォーム独立形式コマンドを受信し、ストレージ装置のファームウェアコードがコマンドにて操作指令の有無を検出した後に操作に関する情報をコマンドから抽出し、かつストレージ装置によって操作が実行された後にホストシステムへ応答を送信する、コマンド解析モジュールを含む。
【0011】
この簡単な概要は、説明の本質を速やかに理解できるように提供されたものである。この後に続く好適な実施形態の詳細な説明を添付の図面と併せて参照することにより、より完全に説明を理解することができる。
【0012】
これより種々の実施形態の図面を参照しながら前述した特徴とその他の特徴を説明する。図面において、同じ構成要素には同じ参照符号を付す。図に示された実施形態は、説明を制限することではなく図解することを目的とする。図面は以下の図を含む。
【図面の簡単な説明】
【0013】
【図1A】不揮発性メモリ装置へ機能的に結合するホストシステムのブロック図を示す。
【図1B】不揮発性メモリ装置用メモリコントローラのブロック図の一例を示す。
【図1C】不揮発性メモリ装置との通信に用いる典型的なソフトウェアアーキテクチャのブロック図を示す。
【図1D】一実施形態に従い、コマンド解析モジュールを備えるシステムのブロック図を示す。
【図2】一実施形態に従い、不揮発性メモリ装置と通信するプロセスの流れ図を示す。
【図3】一実施形態に従い、不揮発性メモリ装置と通信するプロセスおよびシステムの一例を示す。
【発明を実施するための形態】
【0014】
種々の実施形態の理解を助けるため、計算システムと不揮発性メモリストレージ装置の一般的なアーキテクチャおよび動作を先に説明する。次に、一般的なアーキテクチャを参照しながら具合的なアーキテクチャおよび動作を説明する。
【0015】
図1Aは、システムバス105へ接続された中央処理装置(「CPU」)(またはマイクロプロセッサ、またはプロセッサ)101を含む典型的なホストシステム100のブロック図を示す。システムバス105へ結合されたランダムアクセスメインメモリ(「RAM」)103は、メモリストレージへのアクセスをCPU101に提供する。CPU101はプログラム命令を実行するときに処理ステップをRAM103に蓄積し、蓄積された処理ステップをRAM103から実行する。
ホストシステム100は、ネットワークインターフェイス104経由でコンピュータネットワーク(図示せず)へ接続する。インターネットはこのようなネットワークの1つであり、ホストシステム100はインターネットからアプリケーション、コード、文書等の電子情報をダウンロードできる。
起動命令シーケンスや基本入出力操作システム(BIOS)シーケンス等、一定の命令シーケンスを蓄積するため、読み出し専用メモリ(「ROM」)102を設ける。
キーボード、キーパッド、ポインティングデバイス(「マウス」)、モニタ、モデム等の入出力(「I/O」)装置106も設ける。
【0016】
ホストシステム100と結合する不揮発性メモリストレージ装置111は、コントローラモジュール108(「メモリコントローラ」または「コントローラ」と呼ばれることもある)とソリッドステートメモリモジュール109〜110(メモリモジュール#1およびメモリモジュール#Nと図に示されている)とを含む。コントローラモジュール108はバスインターフェイス107を介して、あるいはシステムバス105を介して直接的に、あるいは他の何らかの周辺バス(図示せず)を介して、ホストプロセッサ101と連携する。
【0017】
不揮発性メモリストレージ装置111は、一実施形態において、フラッシュメモリ装置(またはカード)であってもよい。コンパクトフラッシュ(CF)、マルチメディアカード(MMC)、セキュアデジタル(SD)、ミニSD、メモリスティック、スマートメディア、トランスフラッシュ等、現在様々なフラッシュメモリカードが数多く市販されている。これらのカードはいずれも規格化された仕様(例えば、その全体が本願明細書において参照により援用されているユニバーサルシリアルバス(USB)仕様に基づくインターフェイス)に基づく特有の機械的および/または電気的インターフェイス(あるいは無線インターフェイス等、タイプの異なる何らかのインターフェイス)を有するが、それぞれに内蔵されたフラッシュメモリはよく似ている。これらのカードはいずれも、本件出願人にあたるサンディスク コーポレイションより入手できる。
サンディスク コーポレイションはまた、そのCruzerという商標のもとで一連のフラッシュドライブを提供している。これはユニバーサルシリアルバス(USB)プラグを有する小型の手持ち型メモリシステムであって、ホストシステムとの接続にあたってこのプラグをホストのUSB差込口に差し込む。これらのメモリカードとフラッシュドライブはコントローラを内蔵し、このコントローラがホストシステムと連携して、ホストシステムに内蔵されたフラッシュメモリの動作を制御する。
【0018】
このようなメモリカードとフラッシュドライブを使用するホストシステム(100等)は数多くあり、様々である。例えば、パーソナルコンピュータ(PC)、ラップトップをはじめとするポータブルコンピュータ、携帯電話機、個人用携帯情報端末(PDA)、デジタル静止画カメラ、デジタル動画カメラ、ポータブルオーディオプレイヤ等を挙げることができる。ホストは通常ならば1種類以上のメモリカードまたはフラッシュドライブに対応する差込口を内蔵するが、メモリカードを差し込むアダプタが必要なものもある。
【0019】
図1Bは、コントローラモジュール108の内部アーキテクチャのブロック図を示す。コントローラモジュール108はマイクロコントローラ114を含み、マイクロコントローラは、インターフェイスロジック116を通じて他の様々なコンポーネントと連携する。メモリ115には、マイクロコントローラ114が不揮発性メモリストレージ装置111の動作を制御するためのファームウェアおよびソフトウェア命令が蓄積される。メモリ115は、揮発性の再プログラム可能なランダムアクセスメモリ(「RAM」)か、再プログラム不可能な不揮発性メモリ(「ROM」)か、一度だけプログラム可能なメモリか、再プログラム可能なフラッシュ形式の電気的に消去可能でプログラム可能な読み出し専用メモリ(「EEPROM」)であってもよい。
ホストインターフェイス113はホストシステム100と連携し、メモリインターフェイス112はメモリモジュール109〜110と連携する。
【0020】
図1Cは、ストレージデバイスドライバ121とSDK層118とを用いて不揮発性メモリストレージ装置111と通信する従来型オペレーティングシステムの最上位ブロック図を示す。ソフトウェアアプリケーション117はホストシステム100によって実行され、不揮発性メモリストレージ装置111に蓄積された情報を読み出すコマンドか、不揮発性メモリストレージ装置111で情報を書き込むコマンドか、他の何らかの機能を遂行するコマンドを送信する。これらの操作はファームウェア命令119を実行するマイクロコントローラ114によって遂行される。
ホストシステム100には、不揮発性メモリストレージ装置111へのアクセスにあたってSDK層118が必要になることがある。使用するオペレーティングシステムはホストシステム100によって異なるため、バージョンが異なるSDK層118が必要になる。これはストレージ装置の提供業者にとって厄介であり、不揮発性メモリストレージ装置111を使用するユーザにも支障をきたすことがある。
【0021】
一実施形態において、不揮発性メモリストレージ装置111AへのアクセスにあたってSDK層118が不要か、パーシャルSDK層120(SDK層118の薄バージョン)(「薄SDK層」と呼ぶ)を使用する、簡略されたアーキテクチャが提供される。図1Dは、プラットフォームに依存しない形式で不揮発性メモリストレージ装置111Aと通信する最上位アーキテクチャのブロック図を示す。不揮発性メモリストレージ装置111Aは、不揮発性メモリストレージ装置111の全コンポーネントを含むほか、後述する、ホストシステム100と連携するコマンド解析モジュール122を含む。
コマンド解析モジュール122は、ホストシステム100からストレージドライバ121と薄SDK層120とを通じて送信されるコマンドを解析する。これらのコマンドは汎用形式をとるため、ホストシステムごとに別々のSDK層118を用意する必要はない。
【0022】
コマンド解析モジュール122は、一実施形態において、XMLパーサである。XMLは、その全体が本願明細書において参照により援用されているW3Cコンソーシアムによって定義される標準マークアップ言語(拡張マークアップ言語(Extensible Markup language))の略である。XMLは普及しつつあるテキスト方式のマークアップ言語である。HTML(ハイパーテキストマークアップ言語)と同様に、データはタグ(山括弧で括られた識別子<...>等)を用いて識別する。これらのタグはいずれも「マークアップ」と呼ばれている。しかし、HTMLと違ってXMLのタグはデータ表示のあり方を指定するのではなく、データを識別するものである。HTMLのタグは「このデータを太字フォントで表示」(<b>...</b>)と指定するが、XMLのタグは、プログラムにおけるフィールド名のような働きをする。XMLのタグはアプリケーションのタイプに応じてカスタマイズできる。この実施形態のコマンド解析モジュール122は、ホストシステム100からXMLタグ(コマンド)を受信し、解釈できる。
【0023】
パーシャルSDK層120とコマンド解析モジュール122との間では、読み出し、書き込み、削除、ディレクトリ作成コマンド等、種々のファイルシステムコマンドに対応するXMLタグが規定されている。ホストシステム100によって送信されるXMLタグは、ディレクトリ作成、データ書き込み、データ読み出し等、複数の操作の実行命令を含むことがある。操作の実行にあたって、コマンド解析モジュール122が操作に関する情報を抽出し、不揮発性メモリストレージ装置111Aの適当なコンポーネント/モジュール(マイクロコントローラ114等)に通知する。
【0024】
図2は、薄SDK層120を使用するか、SDK層118を使用せずに不揮発性メモリストレージ装置111Aと通信するプロセスの流れ図を示す。このプロセスは、ホストシステム100が不揮発性メモリストレージ装置111Aへクエリコマンドを送信するステップS200で始まる。ステップS202では、不揮発性メモリストレージ装置111Aでサポートされた機能に関する情報が不揮発性メモリストレージ装置111Aから送信される。
ステップS204では、ホストシステム100がプラットフォーム独立形式のコマンドを送信する。プラットフォーム独立形式とは、コマンドの形式がホストシステム100のオペレーティングシステム/環境に左右されないことを意味する。例えば、XML等がプラットフォーム独立形式にあたる。
コマンド解析モジュール122は、ステップS206でコマンド(またはタグ)を解析し、ホストシステム100が要望する任意の操作について情報を抽出する。1つのタグに複数の操作の情報を入れることもできる。コマンド解析モジュール122は、操作を実行すべきモジュールに通知する。
ステップS208では操作が実行され、ホストシステム100が応答を望む場合には、コマンド解析モジュール122がホストシステム100に応答を送り返す。
【0025】
以下、一実施形態に従いXMLタグを使用する一例を紹介する。この例のホストシステムはディレクトリ作成コマンドを送信してもよい。以下に記された斜体のテキストは、この操作の実行に用いられるXMLタグを示す。タグ「Path」にはディレクトリ名が入り、ホストがステータスを知りたい場合には、タグ「RetStatus」に操作の「リターンステータス」が蓄積される。以下、ディレクトリを作成するためのXMLタグを示す。
<FileSystemOperation>
<OpType>CreateDirectory</OpType>
<Parameters>
<Path>”0:\\MyDir\\MyMusic”</Path>
</Parameters>
<RetStatus></RetStatus>
</FileSystemOperation>
【0026】
図3は、図2の処理ステップを使用する一例を示す。この例のホストシステム100は携帯電話機である。例えば、ホストシステム100は、ディレクトリを作成するためのXMLタグ(例えば、パケット/ファイル「write SNDK.XML」)を用意する。このXMLタグは、ファイルシステムオペレーションによって識別される。不揮発性メモリストレージ装置111Aは、XMLタグで指定された操作をサポートしない場合には、その旨を伝える応答(またはステータス)「Interface_Not_Supported」を返すことができる。
ファームウェア119は、タグの書き込みに先立ちXMLタグで操作指令の有無を判断する。これは、ファームウェア119がファイルシステム操作を識別するために使用可能な特別な識別子を使用することにより達成され得る。
コマンド解析モジュール122はXMLパケットを傍受し、要求された操作を実行するため、適当なモジュールに通知する。操作が実行された後にはコマンド解析モジュール122がホストシステム100へステータスXMLパケットを送信する。
ホストシステム100は、操作ステータスのチェックを望む場合にタグを読み返すことができる。例えば、図3では、「0:\\myDir\\MyMusic」作成の結果として「SD_SUCCESS」が返っている。
一実施形態において、不揮発性メモリストレージ装置と通信しその機能にアクセスするにあたって、パーシャルSDK層が必要となる場合と、SDK層が不要となる場合とがある。
【0027】
前述した実施形態の説明では不揮発性メモリストレージ装置が使われているが、ハードディスクやテープドライブ、またはその他の種類のホストシステムとの連携にあたってメモリコントローラや状態マシン等のハードウェア/ソフトウェアを使用するストレージ装置等、いかなるタイプのストレージ装置であっても前述した実施形態を実装できることに留意するべきである。
現時点で好適な実施形態と考えられるものについて説明が記されているが、この説明が前述したものに限定されないことが理解できるはずである。反対に、本願の説明は様々な修正および等価構成を添付の特許請求の範囲の精神および範囲内に含めることを目的とする。

【特許請求の範囲】
【請求項1】
ストレージ装置のための方法あって、
前記ストレージ装置により、ホストシステムからプラットフォーム独立形式コマンドを受信するステップと、
前記ストレージ装置のコマンド解析モジュールにより、前記コマンドを解釈するステップと、
前記コマンド解析モジュールにより、操作に関する情報を前記コマンドから抽出するステップと、
前記ストレージ装置によって前記操作が実行された後、前記コマンド解析モジュールにより、前記ホストシステムへ応答を送信するステップと、
を含む方法。
【請求項2】
請求項1記載の方法において、
前記コマンドには複数の操作に関する情報が埋め込まれる方法。
【請求項3】
請求項1記載の方法において、
前記コマンド解析モジュールは、前記操作に関する情報を前記ストレージ装置のモジュールに提供する方法。
【請求項4】
請求項3記載の方法において、
前記モジュールは、マイクロコントローラである方法。
【請求項5】
請求項1記載の方法において、
前記コマンド解析モジュールは、XMLパーサである方法。
【請求項6】
請求項1記載の方法において、
前記ストレージ装置は、不揮発性メモリストレージ装置である方法。
【請求項7】
ストレージ装置のための方法であって、
前記ストレージ装置により、ホストシステムからプラットフォーム独立形式コマンドを受信するステップと、
前記ストレージ装置のファームウェアコードにより、前記コマンドにて操作指令の有無を検出するステップと、
コマンド解析モジュールにより、操作に関する情報を前記コマンドから抽出するステップと、
前記ストレージ装置によって前記操作が実行された後、前記コマンド解析モジュールにより、前記ホストシステムへ応答を送信するステップと、
を含む方法。
【請求項8】
請求項7記載の方法において、
前記コマンドには複数の操作に関する情報が埋め込まれる方法。
【請求項9】
請求項7記載の方法において、
前記コマンド解析モジュールは、前記操作に関する情報を前記ストレージ装置のモジュールに提供する方法。
【請求項10】
請求項9記載の方法において、
前記モジュールは、マイクロコントローラである方法。
【請求項11】
請求項7記載の方法において、
前記コマンド解析モジュールは、XMLパーサである方法。
【請求項12】
請求項7記載の方法において、
前記ストレージ装置は、不揮発性メモリストレージ装置である方法。
【請求項13】
請求項7記載の方法において、
前記コマンド解析モジュールは、パーシャルソフトウェア層を介して前記ホストシステムと連携する方法。
【請求項14】
ストレージ装置のための方法であって、
前記ストレージ装置のコマンド解析モジュールにより、ホストシステムからのプラットフォーム独立形式コマンドを解釈するステップと、
前記ホストシステムと連携する前記コマンド解析モジュールにより、操作に関する情報を前記コマンドから抽出するステップと、
を含む方法。
【請求項15】
請求項14記載の方法において、
前記コマンドには複数の操作に関する情報が埋め込まれる方法。
【請求項16】
請求項14記載の方法において、
前記コマンド解析モジュールは、前記操作に関する情報を前記ストレージ装置のモジュールに提供する方法。
【請求項17】
請求項16記載の方法において、
前記モジュールは、マイクロコントローラである方法。
【請求項18】
請求項14記載の方法において、
前記コマンド解析モジュールは、XMLパーサである方法。
【請求項19】
請求項14記載の方法において、
前記ストレージ装置は、不揮発性メモリストレージ装置である方法。
【請求項20】
請求項14記載の方法において、
前記コマンド解析モジュールは、パーシャルソフトウェア層を介して前記ホストシステムと連携する方法。
【請求項21】
ストレージ装置であって、
ホストシステムからプラットフォーム独立形式コマンドを受信し、前記コマンドを解釈し、操作に関する情報を前記コマンドから抽出し、かつ前記ストレージ装置によって前記操作が実行された後に前記ホストシステムへ応答を送信するためのコマンド解析モジュールを備えるストレージ装置。
【請求項22】
請求項21記載のストレージ装置において、
前記コマンドには複数の操作に関する情報が埋め込まれるストレージ装置。
【請求項23】
請求項21記載のストレージ装置において、
前記コマンド解析モジュールは、前記操作に関する情報を前記ストレージ装置のモジュールに提供するストレージ装置。
【請求項24】
請求項23記載のストレージ装置において、
前記モジュールは、マイクロコントローラであるストレージ装置。
【請求項25】
請求項21記載のストレージ装置において、
前記コマンド解析モジュールは、XMLパーサであるストレージ装置。
【請求項26】
請求項21記載のストレージ装置において、
前記ストレージ装置は、不揮発性メモリストレージ装置であるストレージ装置。
【請求項27】
ストレージ装置であって、
ホストシステムからプラットフォーム独立形式コマンドを受信し、前記ストレージ装置のファームウェアコードが前記コマンドにて操作指令の有無を検出した後に操作に関する情報を前記コマンドから抽出し、かつ前記ストレージ装置によって前記操作が実行された後に前記ホストシステムへ応答を送信するためのコマンド解析モジュールを備えるストレージ装置。
【請求項28】
請求項27記載のストレージ装置において、
前記コマンドには複数の操作に関する情報が埋め込まれるストレージ装置。
【請求項29】
請求項27記載のストレージ装置において、
前記コマンド解析モジュールは、前記操作に関する情報を前記ストレージ装置のモジュールに提供するストレージ装置。
【請求項30】
請求項29記載のストレージ装置において、
前記モジュールは、マイクロコントローラであるストレージ装置。
【請求項31】
請求項27記載のストレージ装置において、
前記コマンド解析モジュールは、XMLパーサであるストレージ装置。
【請求項32】
請求項27記載のストレージ装置において、
前記ストレージ装置は、不揮発性メモリストレージ装置であるストレージ装置。
【請求項33】
請求項27記載のストレージ装置において、
前記コマンド解析モジュールは、パーシャルソフトウェア層を介して前記ホストシステムと連携するストレージ装置。
【請求項34】
ストレージ装置であって、
ホストシステムからのプラットフォーム独立形式コマンドを解釈し、かつ操作に関する情報を前記コマンドから抽出するためのコマンド解析モジュールを備え、前記コマンド解析モジュールは前記ホストシステムと連携するストレージ装置。
【請求項35】
請求項34記載のストレージ装置において、
前記コマンドには複数の操作に関する情報が埋め込まれるストレージ装置。
【請求項36】
請求項34記載のストレージ装置において、
前記コマンド解析モジュールは、前記操作に関する情報を前記ストレージ装置のモジュールに提供するストレージ装置。
【請求項37】
請求項36記載のストレージ装置において、
前記モジュールは、マイクロコントローラであるストレージ装置。
【請求項38】
請求項34記載のストレージ装置において、
前記コマンド解析モジュールは、XMLパーサであるストレージ装置。
【請求項39】
請求項34記載のストレージ装置において、
前記ストレージ装置は、不揮発性メモリストレージ装置であるストレージ装置。
【請求項40】
請求項34記載のストレージ装置において、
前記コマンド解析モジュールは、パーシャルソフトウェア層を介して前記ホストシステムと連携するストレージ装置。

【図1A】
image rotate

【図1B】
image rotate

【図1C】
image rotate

【図1D】
image rotate

【図2】
image rotate

【図3】
image rotate


【公表番号】特表2010−534873(P2010−534873A)
【公表日】平成22年11月11日(2010.11.11)
【国際特許分類】
【出願番号】特願2010−515224(P2010−515224)
【出願日】平成20年6月30日(2008.6.30)
【国際出願番号】PCT/US2008/068796
【国際公開番号】WO2009/006408
【国際公開日】平成21年1月8日(2009.1.8)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.コンパクトフラッシュ
【出願人】(506197901)サンディスク コーポレイション (175)
【Fターム(参考)】