(57)【特許請求の範囲】
【請求項１】
ストレージシステム及びホストコンピュータを備えるコンピューティングシステムであって、
前記ホストコンピュータは、
ドライバ、及びアドレスとポートとを対応づけたアドレスマップを含むホストメモリと、
前記ホストメモリに接続されるホスト中央処理ユニットと、を含み、
前記ホスト中央処理ユニットは、
前記ドライバを用いて、コマンドをコマンドパケットに分割し、
前記コマンドパケットに、使用する前記ポートに対応した前記アドレスを付加し、
前記コマンドパケットを前記アドレスマップにマッピングし、
データ媒体から分離しているコマンドアドレス媒体を介して、前記アドレスマップに基づいて前記ストレージシステムに前記コマンドパケットを伝達して状態情報を要請するように構成され、
前記ホスト中央処理ユニットは、前記ストレージシステムのホストインターフェイスを介して前記ストレージシステムに前記コマンドパケットを伝達するように構成され、
前記状態情報は、前記ストレージシステムのコマンドブロック内の構成状態ブロックに含まれ、前記ストレージシステムのメモリ装置を駆動するために使用されるコマンドに伴う情報であることを特徴とするコンピューティングシステム。
【請求項２】
前記ホスト中央処理ユニットは、
前記アドレスマップに基づいて前記ストレージシステムのメモリ装置に対する書き込みのためのコマンドを前記ストレージシステムに伝達して状態情報を要請し、
前記書き込みのためのコマンドに伴う状態情報の読み出しのための追加コマンドを発行するように構成されることを特徴とする請求項１に記載のコンピューティングシステム。
【請求項３】
前記アドレスマップは、バンクグループ又はバンクグループ内の複数のバンクで構成され、
前記ホスト中央処理ユニットは、前記アドレスマップのバンクにアクセスするように構成されることを特徴とする請求項１に記載のコンピューティングシステム。
【請求項４】
ストレージシステム及びホストコンピュータを備えるコンピューティングシステムの動作方法であって、
前記ホストコンピュータが、前記ホストコンピュータのホストメモリに含まれるドライバを用いて、コマンドをコマンドパケットに分割し、前記コマンドパケットに、使用するポートに対応したアドレスを付加する段階と、
前記ホストコンピュータが、前記コマンドパケットを、前記アドレスと前記ポートとを対応づけた前記ホストメモリに含まれるアドレスマップにマッピングする段階と、
前記ホストコンピュータが、データ媒体から分離しているコマンドアドレス媒体を介して、前記アドレスマップに基づいて前記ストレージシステムに前記コマンドパケットを伝達して状態情報を要請する段階と、を有し、
前記コマンドパケットを伝達して状態情報を要請する段階は、前記ストレージシステムのホストインターフェイスを介して前記ストレージシステムに前記コマンドパケットを伝達する段階を含み、
前記状態情報は、前記ストレージシステムのコマンドブロック内の構成状態ブロックに含まれ、前記ストレージシステムのメモリ装置を駆動するために使用されるコマンドに伴う情報であることを特徴とするコンピューティングシステムの動作方法。
【請求項５】
前記ストレージシステムが、前記コマンドアドレス媒体を介して伝達された前記コマンドパケットをパーシングする（ｐａｒｓｉｎｇ）段階を更に有することを特徴とする請求項４に記載のコンピューティングシステムの動作方法。
【請求項６】
前記ストレージシステムが、前記コマンドアドレス媒体を介して伝達された前記コマンドパケットから前記コマンドを組み立てる段階を更に有することを特徴とする請求項４に記載のコンピューティングシステムの動作方法。
【請求項７】
前記ストレージシステムが、前記データ媒体を介して伝達される保護情報を認識する必要が無いデータとして演算するために前記状態情報のトレーニングを遂行する段階を更に有することを特徴とする請求項４に記載のコンピューティングシステムの動作方法。
【請求項８】
前記ストレージシステムが、前記データ媒体を介して保護情報を受信する段階を更に有することを特徴とする請求項４に記載のコンピューティングシステムの動作方法。
【請求項９】
前記コマンドパケットを伝達して状態情報を要請する段階は、前記アドレスマップに基づいて前記ストレージシステムのメモリ装置に対する書き込みのためのコマンドを前記ストレージシステムに伝達して状態情報を要請する段階を含み、
前記ホストコンピュータが、前記書き込みのためのコマンドに伴う状態情報の読み出しのための追加コマンドを発行する段階を更に有することを特徴とする請求項４に記載のコンピューティングシステムの動作方法。
【請求項１０】
前記アドレスマップは、バンクグループ又はバンクグループ内の複数のバンクで構成され、
前記コマンドパケットを伝達して状態情報を要請する段階は、前記アドレスマップのバンクにアクセスする段階を含むことを特徴とする請求項４に記載のコンピューティングシステムの動作方法。
【請求項１１】
前記ストレージシステムが、前記コマンドパケットを整列させて前記コマンドを組み立てる段階を更に有することを特徴とする請求項４に記載のコンピューティングシステムの動作方法。
【請求項１２】
前記ストレージシステムが、前記データ媒体を通じて前記コマンドパケットを受信しない段階を更に有することを特徴とする請求項４に記載のコンピューティングシステムの動作方法。
【請求項１３】
前記ストレージシステムが、不揮発性ストレージを提供する段階を更に有することを特徴とする請求項１１に記載のコンピューティングシステムの動作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピューティングシステムに関し、より詳細には通信のためのコンピューティングシステムに関する。
【背景技術】
【０００２】
近年の消費者及び産業用の電子装置、特に、グラフィックコンピュータシステム、サーバ、テレビジョン、プロジェクタ、セルラーフォン（携帯通信端末）、ＰＤＡ（ｐｏｒｔａｂｌｅ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔｓ）、及びそれらの組み合わせ装置のような装置は、現代生活を支援するために向上した水準の機能を提供している。
現行の技術での研究及び開発でも多様な他の指針を得ることができる。
【０００３】
電子装置の大部分はデータストレージを必要とする。
また、格納されるデータの通信は最も重要である。
ホスト装置及びストレージ装置を他のタイプの装置と柔軟に組み合わせるための柔軟性が提供されているが、ストレージ装置とホスト装置との間の通信は、段々とさらに複雑になっている。
【０００４】
即ち、独占的な情報に基づいた情報処理相互運用の問題点（ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ  ｐｒｏｂｌｅｍｓ）を回避しながら、信頼性あり、確実なメカニズムを有する通信メカニズムを使用するコンピューティングシステムに対する要求が相変わらず存在している。
【０００５】
市場での重要な製品差別化のために減少された機会及び増加する消費者の期待と共に、増加し続ける商業的競争力の観点から、このような問題の解決策を探すことがさらに重要である。
さらに、費用を減少させ、性能及び効率を向上させ、競争力を備えるための要求はこのような問題点の解決策を探す重要な必要性にさらに大きい緊急性を加える。
このような問題の解決策は、長い間に研究されてはいるが、以前の開発では、いくつかの解決策を提案したか、或いは提示しなかった。
即ち、このような問題点の解決策は当業者において長い間、完全には解決しない問題であった。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許第８，８７４，８３１号公報
【特許文献２】米国特許公開第２０１４／００４０５５０号明細書
【特許文献３】米国特許公開第２０１４／０１８１３６４号明細書
【特許文献４】米国特許公開第２０１４／０２３７１７６号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は上記従来のコンピューティングシステムにおける問題点に鑑みてなされたものであって、本発明の目的は、向上した通信性能を有するコンピューティングシステム及びその動作方法を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するためになされた本発明によるコンピューティングシステムは、ドライバ及びアドレスマップを含むホストメモリと、前記ホストメモリと接続され、前記ドライバを使用してコマンドをコマンドパケットに分割し、前記コマンドパケットを前記アドレスマップにマッピングし、データ媒体から分離しているコマンドアドレス媒体を介して、前記アドレスマップに基づいて前記コマンドパケットを伝達して前記ホストメモリからの状態情報を要請し、不揮発性装置に対する揮発性メモリインターフェースを介して前記コマンドパケットを伝達するように構成されたホスト中央処理ユニットと、を有することを特徴とする。
【００１０】
上記目的を達成するためになされた本発明によるコンピューティングシステムの動作方法は、コンピューティングシステムの動作方法であって、ドライバを使用してコマンドをコマンドパケットに分割する段階と、前記コマンドパケットをアドレスマップにマッピングする段階と、データ媒体から分離しているコマンドアドレス媒体を介して、前記アドレスマップに基づいて前記コマンドパケットを伝達して前記ホストメモリからの状態情報を要請する段階と、不揮発性装置の揮発性メモリインターフェースを介して前記コマンドパケットを伝達する段階と、を有することを特徴とする。
【発明の効果】
【００１１】
本発明に係るコンピューティングシステム及びその動作方法によれば、コマンドアドレス媒体は、データ伝送媒体を活用する代わりに、コマンド又はコマンドパケットを、メモリチャンネル基盤のＮＶＭ−ＤＩＭＭシステムに伝送するために使用することで、ホストコンピュータのデータ伝送媒体の独占的な具現を分離する柔軟性を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態によるデータ通信メカニズムを使用するコンピューティングシステムの例示的なブロック図である。
【図２】本発明の実施形態によるコンピューティングシステムによって活用される通信メカニズムのためのアドレスマップの例をさらに詳細に示す図である。
【図３】本発明の実施形態によるコンピューティングシステムによって活用される通信メカニズムを使用するコマンドを発行する流れを説明するために例示的に示す図である。
【図４】本発明の実施形態によるコンピューティングシステムによって活用される通信メカニズムを使用して状態情報を回収する流れを説明するために例示的に示す図である。
【図５】本発明の実施形態によるコンピューティングシステムの動作の方法を説明するためのフローチャートである。
【発明を実施するための形態】
【００１３】
次に、本発明に係るコンピューティングシステム及びその動作方法を実施するための形態の具体例を図面を参照しながら説明する。
【００１４】
本発明の多様な実施形態は、フレキシブルメモリインターフェイスを提供する。
フレキシブルメモリインターフェイスは、ＤＤＲのような揮発性メモリインターフェイスを活用しながら、現存するストレージタイプシステムの機能を維持する。
【００１５】
本発明の多様な実施形態は、コマンドアドレス媒体を活用する。
特定の例として、コマンドアドレス媒体は、不揮発性メモリデュアルインラインメモリモジュール（ｎｏｎ−ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ  ｄｕａｌ  ｉｎｌｉｎｅ  ｍｅｍｏｒｙ  ｍｏｄｕｌｅｓ；以下、ＮＶＭ−ＤＩＭＭ）のためのコマンド及びアドレスＣＡバスに基づいたプロトコルである。
ＮＶＭ−ＤＩＭＭのためのこのようなプロトコルは、ホスト中央処理ユニット（特定の例として、（単一又は複数の）中央処理ユニット（ＣＰＵ）／プラットフォーム、アルゴリズム、及びそれらの具現物）と完全に独立的であり、任意のＥＣＣ／スクランブルメカニズムを使用する任意のシステムに適用されることにおいてシステムに幅広く適用されることを可能にする。
【００１６】
言い換えれば、コマンドアドレス媒体は、データ伝送媒体を活用する代わりに、コマンド又はコマンドパケットをメモリチャンネル基盤のＮＶＭ−ＤＩＭＭシステムに伝送するために使用することができる。
本発明の実施形態は、ホストコンピュータのデータ伝送媒体の独占的な具現を分離する柔軟性を提供することができる。
データ伝送媒体の独占的な具現は、独占的なエラー訂正コード（ＥＣＣ；ｅｒｒｏｒ  ｃｏｒｒｅｃｔ  ｃｏｄｅ）、スクランブリング（ｓｃｒａｍｂｌｉｎｇ）、及びスウィズリング（ｓｗｉｚｚｌｉｎｇ）が含まれたデータ伝送を含むことができる。
【００１７】
本発明の多様な実施形態は、ホストコンピュータ又はさらに詳細にはホスト中央処理ユニットからの保護情報の細部事項を認識する必要が無く、メモリチャンネルを駆動する柔軟性が可能であるようにする。
本発明の実施形態は、コマンドアドレス媒体上で、装置コマンドの処理及び伝送を可能であるようにする。
一方、本発明の実施形態は、ホストコンピュータ又はホスト中央処理ユニットが伝送のためのデータ媒体上でＥＣＣ保護化／スクランブル化／スウィズル化になったデータのような保護情報を相変わらず、伝送し、活用できるようにする。
【００１８】
以下の実施形態は、当業者が本発明を使用するように具現ができる十分に詳細に説明される。他の実施形態が本発明に基づいて明確になり、システム、プロセス、又は機械的な変化が本発明の実施形態の思想から逸脱しなくて行われることができることは理解されるべきである。
以下の詳細な説明で、多様な細部的な説明は実施形態の全般的な理解を助けるために提供される。しかし、本発明はこのような詳細な説明無しで実現することができることは容易に理解されるべきである。実施形態の曖昧性を避けるために、一部の広く公知された回路、システム構成、及び処理段階は詳細に説明しない。
【００１９】
システムの実施形態を示す図面は概略的な図式であり、計測されない。特に、一部の寸法は表現の明確性のためのものであり、誇張されて示され得る。同様に、たとえ説明を簡単にするために図面で同様な性向（ｏｒｉｅｎｔａｔｉｏｎ）が示すが、図面のこのような説明は大部分に任意的なものである。一般的に、実施形態は多様な性向を解説するものである。実施形態は説明を簡単にするために第１実施形態、第２実施形態等に番号が付けられるが、実施形態の限定を提供するか、或いは他の重要性を有しない。
【００２０】
本文で使用される“モジュール（ｍｏｄｕｌｅ）”の用語は用語が使用される脈絡にしたがって本発明の実施形態でソフトウェア、ハードウェア、又はそれらの組み合わせを含むことができる。
例えば、ソフトウェアは、」機械コード、ファームウェア、埋め込み型コード、及びアプリケーションソフトウェアである。
例えば、ハードウェアは、回路、プロセッサ、コンピュータ、集積回路、集積回路コア、圧力センサー、慣性センサー、ＭＥＭＳ（ｍｉｃｒｏｅｌｅｃｔｒｏｍｅｃｈａｎｉｃａｌ  ｓｙｓｔｅｍ）、受動素子、又はそれらの組み合わせである。
また、モジュールが以下の装置請求項で記載された場合、モジュールは装置請求項の思想及び目的のためのハードウェア回路を含むものとみなす。
【００２１】
図１は、本発明の実施形態によるデータ通信メカニズムを使用するコンピューティングシステムの例示的なブロック図である。
図１を参照すると、通信メカニズムを含むコンピューティングシステム１００を示し、ホストコンピュータ１０２と接続されたストレージシステム１０１を示す。
【００２２】
本実施形態で、ホストコンピュータ１０２は、コンピューティングシステム１００のための演算及びインターフェイス資源を提供する。
ホストコンピュータ１０２は、コンピューティングシステム１００に対するストレージ資源を提供するか、又はストレージ資源とインターフェイシングする。
ストレージシステム１０１は、コンピューティングシステム１００、又は特定な例として、ホストコンピュータ１０２のためのストレージ容量又は拡張されたストレージ容量を提供する。
【００２３】
例示的な実施形態として、ホストコンピュータ１０２は揮発性メモリインターフェイス、又はさらに詳細な例として、デュアルデータレート（ＤＤＲ；ｄｕａｌｄａｔａ  ｒａｔｅ）揮発性メモリインターフェイスのような特定のメモリインターフェイスを通じてストレージシステム１０１と通信する。
柔軟性（ｆｌｅｘｉｂｉｌｉｔｙ）のために、コンピューティングシステム１００はホストコンピュータ１０２及びストレージシステム１０１に対する多様な組み合わせと混合及びマッチすることができる。
【００２４】
例えば、コンピュータシステム１００がストレージシステム１０１のためのさらに多い永久メモリ（例えば、不揮発性メモリ、さらに詳細な例として、ソリッドステートディスクＳＳＤ又はフラッシュメモリ装置）を有することを必要としても、ホストコンピュータ１０２は先に言及したＤＤＲのような揮発性メモリと共に動作するように設計することができる。
本発明の実施形態は、ホストコンピュータ１０２がＤＤＲインターフェイスの物理的階層のような揮発性メモリインターフェイスを活用しながらも、不揮発性メモリであるストレージシステム１０１と共に動作するようにすることができる。
【００２５】
説明を簡単にするために、コンピューティングシステム１００は、ホストコンピュータ１０２及びストレージシステム１０１と組み合わされた（混合及びマッチング）ものとして説明する。
しかし、コンピューティングシステム１００に対する構成を異なるようにすることができることは理解されるべきである。
例えば、ホストコンピュータ１０２は、格納機能を提供するのに必須的ではない他のタイプのシステムと接続することができる。
また、例えば、ホストコンピュータ１０２は、揮発性メモリ又はＤＤＲインターフェイスのようなストレージインターフェイスの以外の他の物理的階層インターフェイスを使用することができる。
【００２６】
ホストコンピュータ１０２は、ＤＤＲの以外の他の通信プロトコルを使用することができる。
例示的に、ホストコンピュータ１０２は、ＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＳＡＮ（ｓｔｏｒａｇｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）、又はＭＡＮ（ｍｅｔｒｏｐｏｌｉｔａｎ  ａｒｅａ  ｎｅｔｗｏｒｋ）のようなネットワークプロトコルインターフェイスを使用することができる。
ホストコンピュータ１０２は、無線のみでなく、有線インターフェイスを活用することができる。
【００２７】
ホストコンピュータ１０２の説明に再び戻って、ホストコンピュータ１０２は、多様な方式に具現することができる。
例示的に、ホストコンピュータ１０２は、サーバ、ワークステーション、ルータ、デスクトップコンピュータ、モバイルコンピューティング装置、又はそれらの組み合わせである。
ホストコンピュータ１０２は、少なくともホスト中央処理ユニット１０４及びホストメモリ１０６を含む。
ホストメモリ１０６は、ホスト中央処理ユニット１０４に接続される。
【００２８】
ホストメモリ１０６は、ホストコンピュータ１０２のためのデータストレージ又は命令語コードを提供する。
例示的に、ホストメモリ１０６はドライバ１０８及びアドレスマップ１１０を含む。
ドライバ１０８は、ホストコンピュータ１０２がストレージシステム１０１のみでなく、ホストコンピュータ１０２に対する他の機能と互いに作用するためのコードを含む。
アドレスマップ１１０はホストコンピュータ１０２がストレージシステム１０１と互いに作用するために活用されるシステムアドレスに対するシステムアドレス情報を提供する。
【００２９】
さらに詳細な例として、図１の点線で示したように、ホストコンピュータ１０２は、アドレスマップ１１０と共にドライバ１０８を活用してコマンド１３０をコマンドパケット１３１に変換する。
コマンドパケット１３１はストレージシステム１０１に伝送される。
コマンド１３０は、ホストコンピュータ１０２からストレージシステム１０１に提供される機能的な命令語である。
コマンド１３０の例は、ストレージシステム１０１にデータを書き込むための書き込みコマンド又はストレージシステム１０１からデータを読み出すための読み出しコマンドを含む。
コマンド１３０の他の例として、状態クエリー及びクリアーコマンドを含む。
【００３０】
コマンドパケット１３１は、ストレージシステム１０１に伝送されるコマンド１３０の各々に対する一部（ｐｏｒｔｉｏｎｓ  ｆｏｒ  ｅａｃｈ  ｏｆ  ｔｈｅ  ｃｏｍｍａｎｄｓ）である。
コマンドパケット１３１は、コマンド１３０に基づいた形式（ｆｏｒｍａｔｔｉｎｇ）を含む。
コマンド１３０及びコマンドパケット１３１は以下でさらに説明する。
【００３１】
ホスト中央処理ユニット１０４は、ホストコンピュータ１０２のための実行ハードウェア回路（ｅｘｅｃｕｔｉｏｎ  ｈａｒｄｗａｒｅ  ｃｉｒｃｕｉｔｒｙ）を提供する。
ホスト中央処理ユニット１０４は、ホストメモリ１０６からデータ又はコードを回収（ｒｅｔｒｉｅｖｅ）する。
説明を簡単にするために、コンピューティングシステム１００は、ホストメモリ１０６がホスト中央処理ユニット１０４から分離され、区分されるものとして説明する。
【００３２】
しかし、コンピューティングシステム１００に対する構成が異なり得ることは理解されるべきである。
例えば、ホスト中央処理ユニット１０４は、ホストメモリ１０６の少なくとも一部を含む。
ホスト中央処理ユニット１０４は、ドライバ１０８の少なくとも一部を含む。
アドレスマップ１１０は、ホスト中央処理ユニット１０４内に少なくとも部分的に存在することができる。
【００３３】
ホスト中央処理ユニット１０４は、周辺インターフェイス１１２を含む。
周辺インターフェイス１１２は、ホストコンピュータ１０２への、そしてホストコンピュータ１０２からのインターフェイス機能を提供する。
例示的に、周辺インターフェイス１１２は、ホストコンピュータ１０２がストレージシステム１０１を活用するようにすることができる。
【００３４】
ホスト中央処理ユニット１０４は、ハードウェア回路を使用して多様な異なる方式で具現することができる。
例えば、ホスト中央処理ユニット１０４は、プロセッサ、ＡＳＩＣ（ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）、埋め込み型プロセッサ、マイクロプロセッサ、ハードウェア制御ロジック、ハードウェアＦＳＭ（ｆｉｎｉｔｅ  ｓｔａｔｅ  ｍａｃｈｉｎｅ）、ＤＳＰ（ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒ）、ＦＰＧＡ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）、又はそれらの組み合わせである。
【００３５】
周辺インターフェイス１１２は、ハードウェア回路を使用して多様な異なる方式で具現することができる。
例えば、周辺インターフェイス１１２は、デジタル回路、アナログ回路、又はそれらの組み合わせを使用して具現することができる。
追加的な例として、周辺インターフェイス１１２は、ロジックゲート、トランジスタ、又はそれらの組み合わせを使用して具現することができる。
【００３６】
本実施形態では、ストレージシステム１０１は、ホストインターフェイス１１４、コマンドブロック１１６、コントローラ１１８、及びメモリインターフェイス１２０を含む。
ホストインターフェイス１１４は、ストレージシステム１０１とホストコンピュータ１０２との間の通信機能を提供する。
さらに詳細には、ホストインターフェイス１１４は、周辺インターフェイス１１２との通信機能を提供する。
ホストコンピュータ１０２及びストレージシステム１０１は、コマンドアドレス媒体１２２及びデータ媒体１２４と通信する。
【００３７】
コマンドアドレス媒体１２２は、コマンド、アドレス、及び制御の通信を提供する。
コマンドアドレス媒体１２２は無線又は有線である。
コマンドアドレス媒体１２２は、双方向（ｂｉｄｉｒｅｃｔｉｏｎａｌ）又は単一方向（ｕｎｉｄｉｒｅｃｔｉｏｎａｌ）方式に動作することができる。
コマンドアドレス媒体１２２は、全二重（ｆｕｌｌ−ｄｕｐｌｅｘ）又は単信（ｓｉｍｐｌｅｘ）で動作する。
【００３８】
データ媒体１２４はデータの通信を提供する。
データ媒体１２４は無線又は有線である。
データ媒体１２４は、双方向（ｂｉｄｉｒｅｃｔｉｏｎａｌ）又は単一方向（ｕｎｉｄｉｒｅｃｔｉｏｎａｌ）方式に動作する。
データ媒体１２４は、全二重（ｆｕｌｌ−ｄｕｐｌｅｘ）又は単信（ｓｉｍｐｌｅｘ）で動作する。
【００３９】
ホストインターフェイス１１４は多様な方式に具現することができる。
例えば、ホストインターフェイス１１４は、デジタル回路、アナログ回路、有限状態マシン、プログラム可能なロジック又は回路、プロセッサコア、プロセッサ、又はそれらの組み合わせを含むハードウェア回路を使用して具現することができる。
このような実施形態において、例示的に、コマンドブロック１１６は、ホストコンピュータ１０２からのコマンドパケット１３１を処理する。
コマンドブロック１１６は、コマンドパケット１３１を処理するためにコントローラ１１８と互いに作用する。
コマンドブロック１１６は、メモリインターフェイス１２０からデータを回収する。
【００４０】
追加的な例として、コントローラ１１８は、ストレージシステム１０１のためのインターフェイス、機能的な制御、又はそれらの組み合わせを提供することができる。
さらに詳細な例として、コントローラ１１８は、メモリインターフェイス１２０と互いに作用する。
メモリインターフェイス１２０は、周辺メモリ１２６へのアクセスを提供する。
このような実施形態において、コントローラ１１８は、ハードディスクドライブ（ＨＤＤ；ｈａｒｄ  ｄｉｓｋ  ｄｒｉｖｅ）又はフラッシュメモリ装置、又はソリッドステートドライブのような不揮発性メモリである周辺メモリ１２６へのアクセスのためのコマンド１３０を実行することができる。
【００４１】
コントローラ１１８は多様な方式で具現することができる。
例えば、コントローラ１１８は、プロセッサ、プロセッサコア、ＡＳＩＣ、埋め込み型プロセッサ、マイクロプロセッサ、ハードウェア制御ロジック、ハードウェアＦＳＭ、ＤＳＰ、ＦＰＧＡ、又はそれらの組み合わせとして具現することができる。
追加的な例として、コントローラ１１８は、デジタル回路又はロジック、アナログ回路、又はそれらの組み合わせのようなハードウェア回路を使用して具現することができる。
【００４２】
ホストインターフェイス１１４に対する説明に戻ると、ホストインターフェイス１１４は、コマンドパケット生成器（ＣＰＧ；ｃｏｍｍａｎｄ  ｐａｃｋｅｔ  ｇｅｎｅｒａｔｏｒ）１２８、ホスト書き込みバッファ１３２、及びホスト読み出しバッファ１３４を含む。
コマンドパケット生成器１２８は、ホストコンピュータ１０２からのコマンドパケット１３１を分析するか、又は生成する。
コマンドパケット生成器１２８は、コマンドアドレス媒体１２２により伝達される情報（ｉｎｆｏｒｍａｔｉｏｎ  ｃａｒｒｉｅｄ  ｏｎ  ｔｈｅ  ｃｏｍｍａｎｄ  ａｄｄｒｅｓｓ  ｍｅｄｉｕｍ）に基づいてコマンドパケット１３１を分析するか、又は生成する。これは以下で詳細に説明する。
【００４３】
ホスト書き込みバッファ１３２は、ホストコンピュータ１０２とストレージシステム１０１との間の情報の伝送を支援する。
例示的に、ホスト書き込みバッファ１３２は、コマンドアドレス媒体１２２、データ媒体１２４、又はそれらの組み合わせから情報を受信することができる。
ホスト書き込みバッファ１３２は、情報がストレージシステム１０１の他の部分によって活用され回収される前に、臨時的なストレージとして使用される。
【００４４】
ホスト書き込みバッファ１３２は、多様な方式で具現することができる。
例えば、ホスト書き込みバッファ１３２は、プロセッサ、プロセッサコア、マイクロプロセッサ、ハードウェア制御ロジック、ハードウェアＦＳＭ、ＤＳＰ、ＦＰＧＡ、又はそれらの組み合わせで具現することができる。
ホスト書き込みバッファ１３２は、ランダムアクセスメモリ（ＲＡＭ；ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、ロジックレジスタ、又はそれらの組み合わせのようなメモリ構造を使用して具現することができる。
さらに詳細な例として、ホスト書き込みバッファ１３２は、ＦＩＦＯ（ＦＩＦＯ；ｆｉｒｓｔ−ｉｎ  ｆｉｒｓｔ−ｏｕｔ）機能、接続リスト（ｌｉｎｋｅｄ  ｌｉｓｔ）、又はキュー（ｑｕｅｕｅ）を使用して具現することができる。
【００４５】
ホスト読み出しバッファ１３４は、ホストコンピュータ１０２とストレージシステム１０１との間の情報の伝送を支援する。
例えば、ホスト読み出しバッファ１３４は、コマンドブロック１１６、コントローラ１１８、メモリインターフェイス１２０、又はそれらの組み合わせから情報を受信することができる。
ホスト読み出しバッファ１３４は、コマンドアドレス媒体１２２、データ媒体１２４、又はそれらの組み合わせにより情報を提供する。
ホスト読み出しバッファ１３４は、情報がホストコンピュータ１０２によって活用され、回収される前に臨時ストレージとして使用される。
【００４６】
ホスト読み出しバッファ１３４は多様な方式で具現することができる。
例えば、ホスト読み出しバッファ１３４は、プロセッサ、プロセッサコア、マイクロプロセッサ、ハードウェア制御ロジック、ハードウェアＦＳＭ、ＤＳＰ、ＦＰＧＡ、又はそれらの組み合わせで具現することができる。
ホスト読み出しバッファ１３４は、ＲＡＭ、ロジックレジスタ、又はそれらの組み合わせのようなメモリ構造を使用して具現することができる。
さらに詳細な例として、ホスト読み出しバッファ１３４は、ＦＩＦＯ機能、接続リスト、又はキューを使用して具現することができる。
【００４７】
コマンドブロック１１６の説明に戻ると、例示的に、コマンドブロック１１６は、コマンドパケットアセンブラ（ＣＰＡ；ｃｏｍｍａｎｄ  ｐａｃｋｅｔ  ａｓｓｅｍｂｌｅｒ）１３６、コマンドキュー１３８、構成状態ブロック（ｃｏｎｆｉｇｕｒａｔｉｏｎ  ｓｔａｔｅ  ｂｌｏｃｋ）１４０、メモリ書き込みバッファ１４２、応答バッファ１４４、又はそれらの組み合わせを含む。
コマンドパケットアセンブラ１３６は、コマンドパケット１３１のシークェンス又はサブシークェンスをコマンド１３０の中で１つの全体バーションに累積する。
以下で、コマンドパケットアセンブラ１３６に対してさらに詳細に説明する。
【００４８】
コマンドブロック１１６は多様な方式で具現することができる。
例えば、コマンドブロック１１６は、プロセッサ、プロセッサコア、ＡＳＩＣ、マイクロプロセッサ、ハードウェア制御ロジック、ハードウェアＦＳＭ、ＤＳＰ、ＦＰＧＡ、又はそれらの組み合わせで具現することができる。
例示的に、コマンドブロック１１６は、デジタル回路又はロジック、アナログ回路、又はそれらの組み合わせのようなハードウェア回路を使用して具現することができる。
【００４９】
このような実施形態では、コマンドキュー１３８はコマンド１３０の全体バーションのためのストレージを提供することができる。
コマンドキュー１３８からのコマンド１３０は、コントローラ１１８によって実行される。
コントローラ１１８は、メモリインターフェイス１２０と互いに作用してコマンド１３０の実行を完了する。
【００５０】
このような実施形態では、構成状態ブロック１４０はストレージシステム１０１を構成し、ストレージシステム１０１から状態情報１４１を回収する機能を提供する。
メモリ書き込みバッファ１４２は、メモリインターフェイス１２０とホスト書き込みバッファ１３２、コントローラ１１８、コマンドパケットアセンブラ１３６、コマンドキュー１３８、構成状態ブロック１４０、又はそれらの組み合わせ間の情報の伝送を支援する。
例示的には、メモリ書き込みバッファ１４２は、情報がストレージシステム１０１の他の部分によって活用され、回収される前に臨時ストレージとして使用することができる。
【００５１】
応答バッファ１４４は、ホスト読み出しバッファ１３４とストレージシステム１０１の他の部分との間の情報の伝送を支援する。
例示的には、応答バッファ１４４は、メモリインターフェイス１２０、構成状態ブロック１４０、コントローラ１１８、又はそれらの組み合わせからホスト読み出しバッファ１３４に情報を提供する。
このような実施形態では、ホスト中央処理ユニット１０４に持続的に近接するようにデータを移動するか、又は、さらに一般的に、特にビックデータ時代において、性能向上、電力減少、又はそれらの組み合わせのために、ホスト中央処理ユニット１０４に近接するようにデータを移動させるアプリケーションの例である。
【００５２】
本発明の実施形態では、ＤＤＲのような揮発性メモリインターフェイスを使用しながら、現存するストレージシステムの機能を維持するフレキシブルメモリインターフェイスを提供する。
多様な実施形態は、コマンドアドレス媒体１２２、さらに詳細には不揮発性メモリデュアルインラインメモリモジュール（ＮＶＭ−ＤＩＭＭ）のためのコマンド及びアドレスＣＡバス基盤のプロトコルを活用する。
不揮発性メモリデュアルインラインメモリモジュール（ＮＶＭ−ＤＩＭＭ）ためのこのようなプロトコルは、ホスト中央処理ユニット１０４（特定の例として、単一又は複数の中央処理ユニットＣＰＵ／プラットフォーム、アルゴリズム、及びそれらの具現）と完全に独立的であり、任意のＥＣＣ／スクランブルメカニズムを使用する任意のシステムに適用されることにおいてシステムに幅広く適用すること可能にする。
【００５３】
言い換えれば、コマンドアドレス媒体１２２は、データ媒体１２４を活用する代わりに、コマンド１３０又はコマンドパケット１３１を伝送するために使用される。
本発明の実施形態は、データ媒体１２４上のホストコンピュータ１０２の独占的な具現を分離する柔軟性を提供する。
独占的な具現は、独占的なエラー訂正コードＥＣＣ、スクランブリング、及びスウィズリングが含まれたデータ伝送を含む。
【００５４】
このような実施形態のさらに詳細な例として、コンピューティングシステム１００は、データ媒体１２４の代わりにコマンドアドレス媒体１２２を活用して、コマンドパケット１３１としてコマンド１３０をホストコンピュータ１０２からストレージシステム１０１に通信する。
コマンド１３０の例、又は詳細な例として、コマンドパケット１３１は、書き込みデータ、読み出しデータ、読み出し状態、構成コマンド、クリアーコマンド、又はそれらの組み合わせのようなＳＳＤコマンドを含む。
コンピューティングシステム１００又はホストコンピュータ１０２は、コマンドアドレス媒体１２２上でコマンド１３０、又はさらに詳細な例として、コマンドパケット１３１を通信するために、ドライバ１０８を活用してシステムアドレス及びアドレスマップ１１０で予め定められたアドレス空間を使用する。
【００５５】
このような実施形態では、コンピューティングシステム１００は、データ媒体１２４を活用してホストコンピュータ１０２とストレージシステム１０１との間でデータを伝送する。
ＥＣＣエンコーディング、スクランブリング、スウィズリング又はそれらの組み合わせを含むデータ媒体１２４上のデータと関連した他の情報は、データとしてみなすことができ、変形無しで、そして、ＥＣＣ、スクランブリング、スウィズリングの詳細な内容を認識する必要無しでストレージシステム１０１に格納することができる。
ホストコンピュータ１０２は、このようなデータを格納するための周辺メモリ１２６のメモリ領域のような、データアドレス情報をコマンドアドレス媒体１２２経由で伝送する。
【００５６】
このような実施形態では、コンピューティングシステム１００は、ストレージシステム１０１によるコマンド１３０の実行のために、データ媒体１２４を通じて状態情報１４１を回収する。
状態情報１４１は、構成状態ブロック１４０から回収される。
さらに詳細な例として、コマンドアドレス媒体１２２上のコマンド１３０、又は詳細な例として、コマンドパケット１３１は、状態クエリー、コマンドクエリー、及び構成読み出しを含む。
このようなタイプのコマンド１３０は、コマンドパケット生成器１２８、コマンドパケットアセンブラ１３６、又はそれらの組み合わせを通じて処理される。
このような実施形態では、コマンドパケットアセンブラ１３６は、１回にコマンド１３０の中で１つを処理する。
コマンドパケット１３１のすべてのフィールドがコマンドパケットアセンブラ１３６によって処理された場合、全体又は完了されたコマンド１３０は、コマンドキュー１３８に移動される。
【００５７】
また、コマンドパケット生成器１２８は、コマンドアドレス媒体１２２からアドレスビットを分析する。
アドレスビットの例は、バンクグループ、バンク、ロー、及びカラム情報を含む。
例示的には、構成状態ブロック１４０内の状態情報１４１は、システムアドレス空間を再マッピングするアドレスマップ１１０を活用してホストコンピュータ１０２によって読み出されるために直接的にアクセスされる。
【００５８】
図２は、本発明の実施形態による図１のコンピューティングシステム１００によって活用される通信技法のためのアドレスマップ１１０の例をさらに詳細に示す図である。
図２を参照すると、先に言及したように、アドレスマップ１１０は、図１のホストコンピュータ１０２が図１のストレージシステム１０１と互いに作用するようにすることができる。
詳細な例として、ホストコンピュータ１０２は、図１のドライバ１０８及びアドレスマップ１１０を活用して図１のデータ媒体１２４ではない図１のコマンドアドレス媒体１２２を通じて図１のコマンド１３０を通信する。
コマンドアドレス媒体１２２からのコマンド１３０は、図１のコマンドパケット生成器１２８、図１のコマンドパケットアセンブラ１３６、又はそれらの組み合わせによって処理される。
【００５９】
例示的には、ストレージシステム１０１が不揮発性メモリを含んでも、図２に示したアドレスマップ１１０は、ＤＤＲインターフェイスのためのものである。
アドレスマップ１１０は、バンクグループ２０２又はバンクグループ２０２内の複数のバンク２０４のために組織化される。
詳細な例として、バンクグループ２０２は、アドレスマップ１１０内の４ビットで表現することができ、バンク２０４は‘０’から‘Ｆ’までの１６進法のアドレスで示される。
また、ロー及びカラムアドレスは、ＤＤＲアドレスのための例でのようにアドレスマップ１１０で提供される。
図１の周辺メモリ１２６の細部事項にしたがって、ローアドレスは、１４乃至１８ビットであり、カラムアドレスは１０ビットである。
しかし、異なる大きさのビット数を他の実施形態で使用することもできる。
【００６０】
このような実施形態で、アドレスマップ１１０は、他のプログラム領域に分割され得る。
バンク２０４の中で、１つは書き込みポート２０６に専用される。
書き込みポート２０６は、ホストコンピュータ１０２がストレージシステム１０１にデータを書き込むようにする。
バンク２０４の中で、その他の１つは読み出しポート２０８に専用される。
読み出しポート２０８は、ホストコンピュータ１０２がストレージシステム１０１からデータを読み出すようにする。
このような実施形態で、バンク２０４の中の、またその他の１つは状態読み出しポート２１０に専用される。
状態読み出しポート２１０は、ホストコンピュータ１０２がストレージシステム１０１に伝送されたコマンド１３０に対する図１の状態情報１４１を読み出すようにする。
バンク２０４の中の、またその他の１つは状態構成読み出し又はクリアー２１２に専用される。
状態構成読み出し又はクリアー２１２は、ホストコンピュータ１０２がストレージシステム１０１から構成を読み出すか、又はストレージシステム１０１の構成をクリアーするようにする。
【００６１】
このような実施形態で、アドレスマップ１１０は、ホストコンピュータ１０２からストレージシステム１０１に複数のコマンドパケット１３１として図１のコマンド１３０の各々を伝達するための複数のコマンドポート２１４を含む。
コマンドポート２１４の各々は、複数のバンク２０４を有する。
「０」から「５」までの番号が記載された複数のバンク２０４は、ポート「０．０」から「０．５」までの番号が記載されたコマンドポート「０」を総合的に示す。
「８」から「Ｄ」までの番号が記載されたバンク２０４は、ポート「１．０」から「１．５」までの番号が記載されたコマンドポート「１」を総合的に示す。
このような実施形態で、ホストコンピュータ１０２は、ドライバ１０８を活用してホストコンピュータ１０２によるストレージシステム１０１への各アクセスがアドレスマップ１１０の適切なバンク２０４に変換されるように保障する。
詳細な例として、コマンドパケット１３１はアドレスマップ１１０の適切なポートにマッピングされてコマンド１３０を伝達する。
【００６２】
下記の表１はコマンドパケット１３１の例を示す。
“フィールド（Ｆｉｅｌｄ）”が記載された列は、コマンドパケット１３１の各々の一部の機能を示す。
“広さ（Ｗｉｄｔｈ）”が記載された列は、特定フィールドに対するビットの個数を示す。
“Ｃｏｍｍｅｎｔｓ”が記載された列はフィールドに対する機能的な簡略な説明を提供する。
【表１】
0006785629.tif 000002
【００６３】
「ＳＴＲＥＡＭ＿ＩＤ」は、コマンドパケット１３１のサブシークェンスを１つの全体コマンド１３０として組み立てるためにコマンドパケットアセンブラ１３６によって活用される。
ＣＲＣという略語は、循環重複検査（ｃｙｃｌｉｃ  ｒｅｄｕｎｄａｎｃｙ  ｃｈｅｃｋ）を示すものであるが、任意のエラー検出方式又はコードをこのフィールドのために使用することができる。
【００６４】
図３は、本発明の実施形態で、図１のコンピューティングシステム１００によって活用される通信メカニズムを使用するコマンド１３０を発行する流れを説明するために例示的に示す図である。
図３を参照すると、本発明の実施形態で、流れを示す図は、コマンド発行（ｃｏｍｍａｎｄ  ｉｓｓｕｅ）３０２、コマンド伝送（ｃｏｍｍａｎｄ  ｔｒａｎｓｍｉｓｓｉｏｎ）３０４、コマンド取出（ｃｏｍｍａｎｄ  ｅｘｔｒａｃｔｉｏｎ）３０６、及びコマンド組立（ｃｏｍｍａｎｄ  ａｓｓｅｍｂｌｅ）３０８を含む。
【００６５】
コマンド発行３０２は、図１のホストコンピュータ１０２から伝送されるコマンド１３０を準備する。
例示的には、ホストコンピュータ１０２又は特定な例として、ホスト中央処理ユニット１０４は、ドライバ１０８を使用してコマンド１３０を処理する。
このような処理は、図２のアドレスマップ１１０のフィールドに適切にコマンド１３０各々を分割するか、或いは分けられる。
このような処理は、コマンド１３０の各々を図１のコマンドパケット１３１に分割するか、或いは分けられる。
詳細な例として、ドライバ１０８は、コマンド１３０各々をメモリアクセスのサブシークェンス又はコマンドパケット１３１に分割することを指揮し、コマンドパケット１３１をアドレスマップ１１０の適切なポートにマッピングする。
流れはコマンド伝送３０４に進行する。
【００６６】
コマンド伝送３０４は、ホストコンピュータ１０２からコマンド１３０を伝送する。
例示的には、ホストコンピュータ１０２又はさらに詳細な例として、ホスト中央処理ユニット１０４は、分割するか、或いは分けられたコマンド１３０、又は言い換えればコマンドパケット１３１をストレージシステム１０１に伝送する。
ホストコンピュータ１０２は、データ媒体１２４ではないコマンドアドレス媒体１２２を通じて図２の適切なフィールドを伝送するためにコマンドパケット１３１をバンク２０４に伝送する。
同様に、ストレージシステム１０１は、データ媒体１２４ではないコマンドアドレス媒体１２２を通じてコマンドパケット１３１を受信する。
【００６７】
図３に示した実施形態では、処理されるコマンド１３０は書き込みコマンドであり、コマンドパケット１３１は、ＢＡＮＫ０、ＢＡＮＫ４、ＢＡＮＫ１、ＢＡＮＫ３、ＢＡＮＫ５、及びＢＡＮＫ２の番号に記載されたバンク２０４で示している。
ホストコンピュータ１０２又はホスト中央処理ユニット１０４は、６つのメモリ書き込みをＢＡＮＫ０〜５の番号が記載されたバンク２０４に対するアドレスマップの各コマンドポートにコマンドアドレス媒体１２２を通じて伝送する。
コマンドポート又はバンク２０４の各々は、読み出しコマンド又は書き込みコマンドのために保留（ｒｅｓｅｒｖｅｄ）される。
【００６８】
ホストコンピュータ１０２は、周辺メモリ１２６に直接書き込み又は読み出しを正常的に相変わらず遂行することができる。
流れはコマンド取出３０６に進行する。
ホスト中央処理ユニット１０４からのデータを参照する直接読み出し又は書き込みは、ＥＣＣエンコード／デコード、ディスクランブル／スクランブル、又はスウィズリングを含むこと無しでストレージシステム１０１に、又はストレージシステム１０１から読み出すことができる。
【００６９】
コマンド取出３０６は、ホストコンピュータ１０２からコマンドパケット１３１を受信する。
コマンド取出３０６は、コマンドアドレス媒体１２２を通じて受信された情報からコマンドパケット１３１を分析する。
例示的には、ストレージシステム１０１、さらに詳細な例として、ホストインターフェイス１１４は、コマンドアドレス媒体１２２からコマンドパケット１３１を受信する。
例示的な実施形態として、図１のコマンドパケット生成器１２８は、コマンドアドレス媒体１２２、図１のホスト書き込みバッファ１３２、又はそれらの組み合わせから受信されたコマンドパケット１３１を含む情報を分析し、取出する。
流れはコマンド組立３０８に進行する。
【００７０】
コマンド組立３０８は、コマンドパケット１３１から全体コマンド１３０を構成する。
例示的には、図１のコマンドブロック１１６又は詳細な例として、図１のコマンドパケットアセンブラ１３６は、コマンドパケット１３１をコマンド伝送３０４で活用されたバンク２０４からのバンク番号に基づいて正確な順序に配列する。
コマンドパケット１３１は、コマンドパケット１３１内の「ＳＴＲＥＡＭ＿ＩＤ」フィールド（表１参照）に基づいて配列される。
【００７１】
また、コマンド組立３０８は、コマンドパケット１３１の各々、又はコマンドパケットアセンブラ１３６によって組立されたコマンド１３０に対するエラー検出をさらに遂行する。
エラー検出は、表１に記載された「ＣＲＣ」フィールドに基づいて遂行される。
エラー検出がパスされた場合、組み立てられたコマンド１３０は図１のコマンドキュー１３８に伝送される。
【００７２】
説明の目的のために、コマンド発行３０２からコマンド組立３０８までの流れは線形的であり、一方向の流れとして示した。
しかし、流れを異なるようにすることができることは理解されるべきである。
例えば、流れを示す図の動作は同時に遂行することができる。
コマンド１３０の中の１つがコマンド組立３０８によって処理される間、コマンド１３０の中のその他の１つはコマンド取出３０６によって同時に処理され得る。
この時、コマンド取出３０６及びコマンド組立３０８の両方は、ストレージシステム１０１で遂行される。
また、コマンド１３０のその他の１つはコマンド伝送３０４のみでなく、コマンド発行３０２で同時に処理される。
このような例は、ホストコンピュータ１０２で遂行される。
【００７３】
「同時に」（ｃｏｎｃｕｒｒｅｎｔ）という用語は、コマンド１３０の中の１つが図３に示した全体の流れを完了するのを待ち、他のコマンド１３０が図３の流れの他のステージで処理される前に完了されることを要求しなく、動作が重畳されて実行されることを示す。
同様に、アドレスマップ１１０の他のコマンドポートは、コマンド伝送３０４が以前のコマンド１３０を処理することを完了する前でも、コマンド発行３０２によって使用することができる。
【００７４】
例示的な実施形態として、コマンドポートの中のいずれか１つが次のコマンド１３０のために使用される前に、コマンド１３０の中の１つがコマンド伝送３０４から完全に除去されなければならない場合、１つのコマンド１３０を処理することの限定が具現され得る。
例えば、流れを示す図は、反複（ｉｔｅｒａｔｉｏｎｓ）及びループ（ｌｏｏｐｓ）を含み得る。
コマンド組立３０８で検出されたエラーの例で、コマンド１３０の誤ったバーション（ｅｒｒｏｎｅｏｕｓ  ｖｅｒｓｉｏｎ）をコマンドキュー１３８に伝送する代わりに、流れはコマンド組立３０８からコマンド発行３０２、コマンド伝送３０４、コマンド取出３０６、又はそれらの組み合わせで再び進行することができる。
【００７５】
図４は、本発明の実施形態による図１のコンピューティングシステム１００によって活用される通信メカニズムを使用して図１の状態情報１４１を回収する流れを説明するために例示的に示す図である。
下記に示す表２は、図１の構成状態ブロック１４０の状態情報１４１に対する例を含む。
【表２】
0006785629.tif 000003
【００７６】
すべての「ＣＭＤ＿ＩＤ」は、ストレージシステム１０１のメモリ装置を駆動するために使用されるコマンドを示す。
例えば、コマンドは、読み出し、書き込み、状態クエリー、クリアー、又はそれらの組み合わせである。
すべてのコマンドは、予め定義され、唯一の識別子として割り当てられ得る。
図４に示した流れの図は、状態情報１４１を読み出す段階の例である。
このような例は、図１のストレージシステム１０１内で発生する処理（ｐｒｏｃｅｓｓ）を示す。
このような例で、コマンド処理は、図３のように説明され、流れを示す図のその部分は説明を簡単にするために、図では示していない。
【００７７】
このような実施形態で、流れを示す図は、状態準備４０２、状態ロード４０４、リダンダンシマップ４０６、及び状態リターン４０８を含む。
状態準備４０２は、要請された適切な状態情報１４１を配布確定する（ｄｉｒｅｃｔ）。
状態情報１４１の例は表２に示す。
状態ロード４０４は、状態要請のための読み出しポートレジスタ４１０をロードする。
【００７８】
リダンダンシマップ４０６は、状態情報１４１に基づいてエラー訂正又はエラー検出のために使用される保護情報４１２を提供する。
保護情報４１２は、データのスウィズリング及びスクランブリングを含む。
２つの方法の全ては容易に知られなく、独占的である。
状態リターン４０８は、状態情報１４１のみでなく、もしあれば、保護情報４１２を提供する。
保護情報４１２は、典型的に独占的であり、実施形態はデータがＥＣＣ、スクランブリング、スウィズリング、又はそれらの組み合わせを認識する必要が無いデータとしてストレージシステム１０１に格納されるようにする。
【００７９】
本発明の実施形態では、通信メカニズムのホストコンピュータ１０２、又はさらに詳細にはホスト中央処理ユニット１０４から保護情報４１２の詳細な内訳の確認に対する要求無しで通信メカニズムを動作することを柔軟にすることができる。
本発明の実施形態は、コマンドアドレス媒体１２２上でコマンド１３０の伝送及び処理を遂行することができる。
一方、本発明の実施形態は、ホストコンピュータ１０２又はホスト中央処理ユニット１０４がデータ媒体１２４上で保護情報４１２を伝送し、活用するようにすることができる。
【００８０】
例示的には、図１のホストコンピュータ１０２は、図３のコマンド発行３０２を通じて書き込みコマンド１３０を発行することによって状態（ｓｔａｔｕｓ）を要請することができる。
図３のコマンド伝送３４０は、図２のコマンドアドレス媒体１２２上で状態情報１４１のためにコマンド１３０、さらに詳細な例として、コマンドパケット１３１を要請される特定の状態情報１４１の適切な識別子と共に伝達することができる。
このような実施形態として、識別子は、表２に記載された状態情報１４１のためのフィールドの中で１つである。
【００８１】
ストレージシステム１０１は、図３に示した流れの図の少なくとも一部をレバレッジング（ｌｅｖｅｒａｇｉｎｇ）して状態情報１４１のためのコマンド１３０を処理する。
特定の例として、図１のコマンドパケット生成器１２８は、図１のコマンドパケット１３１のためにコマンドアドレス媒体１２２からの情報を分割又は区分する。
図１のコマンドパケットアセンブラ１３６は、コマンドパケット１３１を整列させる。
すべての組み立ての後に、コマンド１３０は、コマンドパケットアセンブラ１３６から構成状態ブロック１４０に伝送される。
【００８２】
このような例で、構成状態ブロック１４０は状態準備４０２を遂行する。
コマンド１３０からの識別子（ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）は表２に示したように状態情報１４１のためのフィールドの中で１つとマッチングする。
識別子とマッチングされた状態情報１４１は選択され、ストレージシステム１０１は状態情報１４１のその部分を状態ロード４０４に伝送する。
状態ロード４０４は、状態情報１４１を状態情報準備４０２から読み出し、ポートレジスタ４１０にロードする。
【００８３】
例示的には、読み出しポートレジスタ４１０は、図２のアドレスマップ１１０及び図２の状態読み出しポート２１０を通じてアクセスされる。
例えば、読み出しポートレジスタ４１０は、図１の応答バッファ１４４の一部であるか、又は外部にある。
又は例示的に、読み出しポートレジスタ４１０は、図１のホスト読み出しバッファ１３４の一部であるか、又は外部にある。
流れは状態ロード４０４からリダンダンシマップ４０６に継続される。
【００８４】
リダンダンシマップ４０６は、読み出しポートレジスタ４１０内の状態情報１４１と関連された保護情報４１２を提供する。
リダンダンシマップ４０６は、多様な方式で保護情報４１２を提供する。
例えば、保護情報４１２はストレージシステム１０１からホストコンピュータ１０２に提供された状態情報１４１をトレーニングすることから取得される。
トレーニングは、公知された表２の状態情報１４１に対する多様なフィールドに基づき、保護情報４１２は知られない。
さらに詳細な例として、トレーニングは、図１のコマンドブロック１１６、図１のコントローラ１１８、又はそれらの組み合わせによって遂行される。
【００８５】
公知された状態情報１４１を活用することは、何が保護情報４１２になるかに対する演算を勘案し、これはルックアップテーブル（ＬＵＴ）に格納される（Ｌｅｖｅｒａｇｉｎｇ  ｔｈｅ  ｋｎｏｗｎ  ａｌｌｏｗｓ  ｆｏｒ  ｔｈｅ  ｃａｌｃｕｌａｔｉｏｎ  ｏｆ  ｗｈａｔ  ｗｏｕｌｄ  ｂｅ  ｔｈｅ  ｐｒｏｔｅｃｔｉｏｎ  ｉｎｆｏｒｍａｔｉｏｎ  ４１２、  ｗｈｉｃｈ  ｃａｎ  ｂｅ  ｓｔｏｒｅｄ  ｉｎ  ａ  ｌｏｏｋ−ｕｐ  ｔａｂｌｅ（ＬＵＴ）。
保護情報４１２は、状態情報１４１の値がルックアップテーブルのインデックスとして使用することができるルックアップテーブルのエントリである。
リダンダンシマップ４０６の実行は、多様なトリガーによって呼出される。
例示的には、リダンダンシマップ４０６は、状態情報１４１のいくつかのフィールドが要請されるかの識別子を特定する書き込み機能としてコマンド１３０に基づいて遂行される。
追加的な例として、リダンダンシマップ４０６は、以下で説明される状態情報１４１を読み出すためのコマンド１３０に基づいて遂行される。
【００８６】
ホストコンピュータ１０２は、状態情報１４１及び関連した保護情報４１２を読み出すためにコマンド１３０を発行する。
例示的には、ホストコンピュータ１０２は、コマンド発行３０２又はコマンド伝送３０４を使用せずに、状態情報１４１の直接読み出し（ｄｉｒｅｃｔ  ｒｅａｄ）を遂行することができる。
直接読み出しは、コマンドアドレス媒体１２２上の読み出しポートレジスタ４１０のアドレスを発行することによってホストコンピュータ１０２と共に遂行される。
読み出しポートレジスタ４１０が図１のデータ媒体１２４を通じて状態情報１４１及び関連した保護情報４１２を返還するように状態リターン４０８（ｓｔａｔｕｓ  ｒｅｔｕｒｎ）を遂行することができる。
【００８７】
詳細な例として、コマンド１３０が、図２のバンクグループ２０２（１６進数「Ｅ」）に記入された“ＲｄＳｔａｔｕｓ”であるか、又は図２の状態構成読み出し又はクリアー２１２である場合、特定された状態情報１４１が読み出しポートレジスタ４１０に移動される。
読み出しポートレジスタ４１０の値がＬＵＴから保護情報４１２を回収するために使用される。
状態情報１４１、保護情報４１２、又はそれらの組み合わせは、構成状態ブロック１４０、ホスト読み出しバッファ１３４、又はそれらの組み合わせに移動されホストコンピュータ１０２によって読み出される。
コマンド１３０が、図２のバンクグループ２０２（１６進数「Ｆ」）に書き込まれた場合、状態情報１４１、保護情報４１２、又はそれらの組み合わせは構成状態ブロック１４０、ホスト読み出しバッファ１３４、又はそれらの組み合わせから読み出される。
コマンド１３０が、図２のバンクグループ２０２（１６進数「Ｅ」）に書き込まれた“ＣｌｒＳｔａｔｕｓ”である場合、状態情報１４１の部分がクリアーされる。
【００８８】
図５は、本発明の実施形態によるコンピューティングシステム１００の動作方法を説明するためのフローチャートである。
図５を参照すると、コンピューティングシステムの動作方法（５００）は、ステップＳ５０２で、ドライバを使用してコマンドをコマンドパケットに分割する段階と、
ステップＳ５０４で、コマンドパケットをアドレスマップにマッピングする段階と、
ステップＳ５０６で、コマンドアドレス媒体を通じてアドレスマップに基づいてコマンドパケットを伝達する段階と、を含む。
【００８９】
例示的には、ステップＳ５０２は、図１のホストコンピュータ１０２又はさらに詳細な例として、図１のホスト中央処理ユニット１０４によって遂行される。
例示的には、ステップＳ５０４は、ホストコンピュータ１０２又はさらに詳細な例として、中央処理ユニット１０４によって遂行される。
例示的には、ステップＳ５０６は、ホストコンピュータ１０２又はさらに詳細な例として、図１の周辺インターフェイス１１２によって遂行される。
【００９０】
ステップＳ５０６は、アドレスマップのバンクをアクセスする段階をさらに含む。
ステップＳ５０６は、状態情報を要請するためにアドレスマップに基づいて書き込みのためのコマンドを伝達する段階をさらに含む。
【００９１】
コンピューティングシステムの動作方法（５００）は、状態情報の読み出しのための追加コマンドを発行する段階をさらに含む。
コンピューティングシステムの動作方法（５００）は、コマンドアドレス媒体からのコマンドパケットを分析する段階又はコマンドアドレス媒体からのコマンドパケットからコマンドを組立する段階をさらに含む。
コンピューティングシステムの動作方法（５００）は、保護情報を演算するためにトレーニングする段階又はデータ媒体を通じて保護情報を受信する段階をさらに含む。
コンピューティングシステムの動作方法（５００）は、コマンドパケットを整列してコマンドを組み立てる段階又はデータ媒体を通じてコマンドパケットを受信しない段階をさらに含む。
このような整列は、図１のコマンドブロック１１６によって実行される。
コンピューティングシステムの動作方法（５００）は、図１のストレージシステム１０１によって不揮発性ストレージを提供する段階をさらに含む。
【００９２】
結果的に、本発明の実施形態によれば、方法、プロセス、装置、製品、及び／又はシステムは簡単であり、費用効率が高く、複雑でなく、効用価値が高く、敏感であり、効率的であり、広く公知された構成を適用することによって容易に、効率的であり、経済的な製造業、アプリケーション、及び活用性のために具現することができる。
本発明の実施形態の他の重要な思想は、費用を減少させ、システムを単純化し、性能を向上させる歴史的な趨勢を提供し、価値あるように支援することである。
その結果、本発明の実施形態のこのような、そして他の価値ある事項は技術の状態を少なくとも次のレベルにさらに向上させることができる。
【００９３】
尚、本発明は、上述の実施形態に限られるものではない。本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
【符号の説明】
【００９４】
１００    コンピューティングシステム
１０１    ストレージシステム
１０２    ホストコンピュータ
１０４    ホスト中央処理ユニット
１０６    ホストメモリ
１０８    ドライバ
１１０    アドレスマップ
１１２    周辺インターフェイス
１１４    ホストインターフェイス
１１６    コマンドブロック
１１８    コントローラ
１２０    メモリインターフェイス
１２２    コマンドアドレス媒体
１２４    データ媒体
１２６    周辺メモリ
１２８    コマンドパケット生成器
１３０    コマンド
１３１    コマンドパケット
１３２    ホスト書き込みバッファ
１３４    ホスト読み出しバッファ
１３６    コマンドパケットアセンブラ
１３８    コマンドキュー
１４０    構成状態ブロック
１４１    状態情報
１４２    メモリ書き込みバッファ
１４４    応答バッファ
【図１】
0006785629.tif 000004
【図２】
0006785629.tif 000005
【図３】
0006785629.tif 000006
【図４】
0006785629.tif 000007
【図５】
0006785629.tif 000008