(57)【特許請求の範囲】
【請求項１】
装置であって、
ストレージインターフェースであって、コマンドのランダム実行を許容するストレージプロトコルと互換性のあるドライブと通信するストレージインターフェースと、
キュー（ｑｕｅｕｅ）であって、複数の書き込みコマンドを一時的に保持し、各書き込みコマンドは関連付けられた書き込みデータを有するものである、前記キューと、
制御ロジックであって、前記複数の書き込みコマンドの少なくとも幾つかに関連付けられた前記書き込みデータを事前フェッチ（取り出し）し、この事前フェッチされたデータを前記ドライブに送信する制御ロジックと、
を有する装置であって、
前記ドライブが前記装置に前記複数の書き込みコマンドの順序を通知し、前記通知により前記事前フェッチが可能となるものであり、
前記制御ロジックは、前記ドライブから前記装置に通知された前記順序に従って前記関連付けられた書き込みデータの前記事前フェッチを実行するように構成され、前記制御ロジックはさらに前記複数の書き込みコマンドの少なくとも幾つかが前記ドライブによって実行される前に前記事前フェッチの少なくとも幾つかを実行するものである
装置。
【請求項２】
請求項１記載の装置において、前記装置は最初に、前記通知された順序ではないシーケンスの前記書き込みコマンドに接するものである装置。
【請求項３】
請求項１記載の装置において、前記装置および前記ドライブの各々は前記通知された順序を使用するように予め設定されているものである装置。
【請求項４】
請求項１記載の装置において、前記通知された順序は、少なくとも１つの動作モードの選択を介して前記装置および前記ドライブのうちの少なくとも１つで決定されるものである装置。
【請求項５】
請求項１記載の装置において、前記通知された順序は先着順である装置。
【請求項６】
請求項１記載の装置において、前記装置および前記ドライブのうちの少なくとも１つは、常に前記通知された順序を使用するものである装置。
【請求項７】
請求項１記載の装置において、前記装置は、前記ドライブに対してホストバスアダプタとして機能するものである装置。
【請求項８】
請求項１記載の装置において、前記装置は、前記ドライブに対してブリッジとして機能するものである装置。
【請求項９】
請求項１記載の装置において、前記ストレージプロトコルはシリアルＡＴＡ（ＳＡＴＡ）と互換性があるものである装置。
【請求項１０】
請求項１記載の装置において、前記ドライブはソリッドステートドライブ（ＳＳＤ）である装置。
【請求項１１】
請求項１記載の装置において、前記ドライブは前記通知された順序と無関係な順序により非書き込みコマンドを実行することが可能であり、且つ当該非書き込みコマンドの実行は前記書き込みコマンドの実行と混合されるものである装置。
【請求項１２】
請求項１記載の装置において、前記装置は、前記書き込みコマンドを少なくとも生成するものである装置。
【請求項１３】
請求項１記載の装置において、前記装置は、前記書き込みコマンドを少なくとも受信するものである装置。
【請求項１４】
請求項１記載の装置において、前記制御ロジックにより、さらに、特定シーケンスで前記書き込みコマンドを前記ドライブに送信することが可能となり、前記通知された順序は前記特定シーケンスによって確立され、且つ前記特定シーケンスと同じである装置。
【請求項１５】
請求項１記載の装置において、前記キューに一時的に保持される前記複数の書き込みコマンドは特定シーケンスにより保持され、前記制御ロジックにより、さらに、前記特定シーケンスで前記複数の書き込みコマンドを前記ドライブに送信することが可能となり、前記通知された順序は前記特定シーケンスによって確立され、且つ前記特定シーケンスと同じである装置。
【請求項１６】
請求項１記載の装置において、この装置はさらに、書き込みデータストレージを有し、
前記制御ロジックはさらに、前記書き込みデータストレージの使用可能部分の全てを後続フェッチされる前記関連付けられた書き込みデータ用に利用することができるように構成されているものである装置。
【請求項１７】
請求項１記載の装置において、前記ドライブはハードディスクドライブ（ｈａｒｄ  ｄｉｓｋ  ｄｒｉｖｅ：ＨＤＤ）であり、前記通知された順序は、当該ＨＤＤにおけるメディアローテーション（ｍｅｄｉａ  ｒｏｔａｔｉｏｎｓ）数を減少させることを可能にする再順序付けを含むものである装置。
【請求項１８】
請求項１記載の装置において、前記ドライブはソリッドステートドライブ（ｓｏｌｉｄ−ｓｔａｔｅ  ｄｒｉｖｅ：ＳＳＤ）であり、前記通知された順序は、当該ＳＳＤの内部構造に最適化した再順序付けを含むものである装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はストレージデバイスに関し、特にそのようなストレージデバイスに関連付けられた書き込みコマンドの順序付けに関する。
【背景技術】
【０００２】
ストレージシステムは、ストレージデバイスおよび、当該ストレージデバイスに接続するおよび／または通信するその他のデバイスを含んだ多くのデバイスを含む。前記ストレージデバイスと通信するこれらデバイスは、多くの場合当該ストレージデバイスに関連付けられたコマンドおよび／またはデータにアクセスする必要がある。多くの異なるタイプのストレージデバイスにおいて、コマンドはキューに入れられてからランダムに実行される。
シリアルＡＴＡ（ＳＡＴＡ）コンピュータバスは、例えばハードドライブディスク、光学ドライブなどのストレージデバイスに対するホストバスアダプタを接続するための１つのストレージデバイス・インターフェースである。現在、ＳＡＴＡシステムおよび他の類似のシステムにおいて、コマンドはキューに入れられてからランダムに実行される。ＳＡＴＡに接続されるデバイスは、前記書き込みコマンドが実行される順序に関する情報を全く有していない。
こうして、ＳＡＴＡドライブに取り付けられたデバイスは、全てのコマンドに関する書き込みデータをプリフェッチ（事前読込み）するリソースが十分にない場合、書き込みコマンドをプリフェッチしない。全てのコマンドのプリフェッチは、メモリの大部分の使用を必要とするため、非常に犠牲が大きい。また、実行されているコマンドが必ずしもプリフェッチされたデータのコマンドであるとは限らないため、このプリフェッチは能力を追加的に向上させない。従って、これらおよび／または他の上記従来技術に関連する問題に対する対処が必要とされている。
この出願の発明に関連する先行技術文献情報としては、以下のものがある（国際出願日以降国際段階で引用された文献及び他国に国内移行した際に引用された文献を含む）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】  米国特許第５３４７６４８号明細書
【特許文献２】  米国特許第５６６６５３２号明細書
【特許文献３】  米国特許第６０８８７０１号明細書
【特許文献４】  米国特許第５８８１２２９号明細書
【特許文献５】  米国特許第７１２０７２９号明細書
【特許文献６】  米国特許第７１０３７３２号明細書
【特許文献７】  米国特許第７０９６３１３号明細書
【特許文献８】  米国特許第７０３５９６７号明細書
【特許文献９】  米国特許第６９８５９９２号明細書
【特許文献１０】  米国特許第６９７３５３１号明細書
【特許文献１１】  米国特許第６８３１８６５号明細書
【特許文献１２】  米国特許第６０００００６号明細書
【特許文献１３】  米国特許第５９５６４７３号明細書
【特許文献１４】  米国特許第５６２１６８７号明細書
【特許文献１５】  米国特許第５５６８４２３号明細書
【特許文献１６】  米国特許第７０３２０８７号明細書
【特許文献１７】  米国特許第７００００６３号明細書
【特許文献１８】  米国特許第６９４８０２６号明細書
【特許文献１９】  米国特許第６９２５５２３号明細書
【特許文献２０】  米国特許第６９１４８５３号明細書
【特許文献２１】  米国特許第６７３２２２１号明細書
【特許文献２２】  米国特許第６６９４４０２号明細書
【特許文献２３】  米国特許第６５３９４５３号明細書
【特許文献２４】  米国特許第６４０５２９５号明細書
【特許文献２５】  米国特許第６２３０２３３号明細書
【特許文献２６】  米国特許第６１５４８０８号明細書
【特許文献２７】  米国特許第５９６３９７０号明細書
【特許文献２８】  米国特許第５８３５９３５号明細書
【特許文献２９】  米国特許第５８１９３０７号明細書
【特許文献３０】  米国特許第５５６８６２６号明細書
【特許文献３１】  米国特許第５５４４３５６号明細書
【特許文献３２】  米国特許第５４８５５９５号明細書
【特許文献３３】  米国特許第７８２７３２０号明細書
【特許文献３４】  米国特許第７７１１８９７号明細書
【特許文献３５】  米国特許第７６５３７７５号明細書
【特許文献３６】  米国特許第７５４９０１３号明細書
【特許文献３７】  米国特許第７４０３１３０号明細書
【特許文献３８】  米国特許第７０７６６０５号明細書
【特許文献３９】  米国特許第５９０９５９１号明細書
【特許文献４０】  米国特許第５６７５８１６号明細書
【特許文献４１】  米国特許第５５１９８３１号明細書
【特許文献４２】  米国特許第５３８６５５２号明細書
【特許文献４３】  米国特許第８１０８７３７号明細書
【特許文献４４】  米国特許第８１４０７１２号明細書
【特許文献４５】  米国特許第８０９０９０５号明細書
【特許文献４６】  米国特許出願公開第２００９／０００６７８７号明細書
【特許文献４７】  米国特許出願公開第２００９／０１６４６９８号明細書
【特許文献４８】  米国特許出願公開第２００８／０１５１４０５号明細書
【特許文献４９】  米国特許出願公開第２００６／０２６５５４９号明細書
【特許文献５０】  米国特許出願公開第２００２／０１８４４７６号明細書
【特許文献５１】  米国特許出願公開第２００６／０２１２６５５号明細書
【特許文献５２】  米国特許出願公開第２００７／０２７３６９９号明細書
【特許文献５３】  米国特許出願公開第２００８／０３０７１４７号明細書
【特許文献５４】  米国特許出願公開第２００９／０１９３２７９号明細書
【特許文献５５】  米国特許出願公開第２００９／０２３５０２１号明細書
【特許文献５６】  米国特許出願公開第２０１０／０２１１７４４号明細書
【特許文献５７】  米国特許出願公開第２０１０／０２４１８１２号明細書
【特許文献５８】  米国特許出願公開第２０１１／００４１０３９号明細書
【特許文献５９】  米国特許出願公開第２０１１／０００４７２２号明細書
【特許文献６０】  米国特許出願公開第２０１０／００１７６５０号明細書
【特許文献６１】  米国特許出願公開第２００９／００９４４０９号明細書
【特許文献６２】  米国特許出願公開第２００８／０３１３３８８号明細書
【特許文献６３】  米国特許出願公開第２００８／０２９４８１３号明細書
【特許文献６４】  米国特許出願公開第２００８／０２９４８０１号明細書
【特許文献６５】  米国特許出願公開第２００８／０２２９０４５号明細書
【特許文献６６】  米国特許出願公開第２００８／０１６８２５５号明細書
【特許文献６７】  米国特許出願公開第２００８／０１５５１４５号明細書
【特許文献６８】  米国特許出願公開第２００８／００８６５７６号明細書
【特許文献６９】  米国特許出願公開第２００８／０００５３９８号明細書
【特許文献７０】  米国特許出願公開第２００８／０００５３１４号明細書
【特許文献７１】  米国特許出願公開第２００７／０１２７３６６号明細書
【特許文献７２】  米国特許出願公開第２００７／００３０７３４号明細書
【特許文献７３】  米国特許出願公開第２００６／０２１８４３７号明細書
【特許文献７４】  米国特許出願公開第２００６／００２０７４５号明細書
【特許文献７５】  米国特許出願公開第２００６／０００４９３５号明細書
【特許文献７６】  米国特許出願公開第２００５／０１６６０１４号明細書
【特許文献７７】  米国特許出願公開第２００５／０１０２３２３号明細書
【特許文献７８】  米国特許出願公開第２００４／００８１１７９号明細書
【特許文献７９】  米国特許出願公開第２０１１／００８３０４７号明細書
【特許文献８０】  米国特許出願公開第２０１１／００１６２３３号明細書
【特許文献８１】  米国特許出願公開第２０１０／０２５１００９号明細書
【特許文献８２】  米国特許出願公開第２０１２／０１０２２８７号明細書
【特許文献８３】  米国特許出願公開第２０１２／００８４４９２号明細書
【特許文献８４】  米国特許出願公開第２０１１／００２２７６５号明細書
【特許文献８５】  米国特許出願公開第２０１１／００１６２３９号明細書
【特許文献８６】  米国特許出願公開第２０１１／０００４７１０号明細書
【特許文献８７】  米国特許出願公開第２０１１／０００４７１８号明細書
【特許文献８８】  米国特許出願公開第２０１０／０２５０８３０号明細書
【特許文献８９】  米国特許出願公開第２０１０／０２５０８２９号明細書
【特許文献９０】  国際公開第２０１１／００３０５０号
【特許文献９１】  国際公開第２０１１／０１１５６２号
【特許文献９２】  国際公開第２０１１／０１１２９５号
【特許文献９３】  国際公開第２０１１／００８９６３号
【特許文献９４】  国際公開第２０１１／００３０５０号
【特許文献９５】  国際公開第２０１０／１１１６９４号
【非特許文献】
【０００４】
【非特許文献１】  ＯＬＳＯＮ  Ａｌａｎ  Ｒａｎｄ，  Ｄｅｎｉｓ  Ｊ  Ｌａｎｇｌｏｉｓ，  Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅｓ  Ｄａｔａ  Ｒｅｌｉａｂｉｌｉｔｙ  ａｎｄ  Ｌｉｆｅｔｉｍｅ，  Ａｐｒｉｌ  ７，  ２００８，  Ｉｍａｔｉｏｎ
【非特許文献２】  ＪＵＮＥ  １５，  ２０１２  ＬＩＳＴ  ＯＦ  ＲＥＦＥＲＥＮＣＥＳ  ＵＳＥＤ  ＩＮ  ＡＲＴ  ＲＥＪＥＣＴＩＯＮＳ  ＩＮ  ＣＡＳＥＳ  ＲＥＬＡＴＥＤ  ＴＯ  ＤＯＣＫＥＴ  ＮＯ．  ＳＦ−１０−２８ＵＳ，  ２  ｐａｇｅｓ
【発明の概要】
【課題を解決するための手段】
【０００５】
ストレージデバイスに関連付けられた複数の書き込みコマンドを順序付けするシステム、方法、およびコンピュータプログラム製品が提供されている。動作中、所定のストレージデバイスに関連付けられ、且つ所定のデバイスに送信される複数の書き込みコマンドが特定される。更に、前記複数の書き込みコマンドの順序が決定される。この決定された順序は前記デバイスにとって既知である。更にまた、前記複数の書き込みコマンドは、前記決定された順序により順序付けされる。
【図面の簡単な説明】
【０００６】
【図１】図１は、１実施形態に従った、ストレージデバイスに関連付けられた複数の書き込みコマンドを順序付けする方法を示している。
【図２】図２は、１実施形態に従った、ストレージデバイスに関連付けられた複数の書き込みコマンドを順序付けするシステムを示している。
【図３】図３は、別つの実施形態に従った、ストレージデバイスに関連付けられた複数の書き込みコマンドを順序付けする方法を示している。
【図４】図４は、例示した様々な実施形態の様々なアーキテクチャおよび／または機能性が実行される例示的なシステムを図示する。
【発明を実施するための形態】
【０００７】
本発明の１若しくはそれ以上の実質形態の詳細な説明を、本発明の選り抜かれた詳細を図示する添付の図面ともに以下に提供する。本発明は、実施形態と関連して説明する。本発明の実施形態は単に例示的なもであることが理解され、本発明は本明細書の実施形態にまたはあらゆる若しくは全ての実施形態により明確に限定されるものではなく、そして、本発明は多数の変更、修正、および均等物を包含する。説明における単調さを避けるため、様々な単語ラベル（これに限定されるものではないが、第１に、最後の、特定の、様々な、更に、他の、特別な、選択の、幾つかの、および著しい）が個別セットの実施形態に適用されており、このように本明細書で使用されているラベルは、品質または好適な若しくは偏見的なあらゆる形態を伝達することを明示的に意味しているのではなく、単に前記個別セットを便利なように識別することを目的としている。記載の方法での幾つかの工程の順序は本発明の範囲内において変更可能である。本発明への十分な理解を助けるため、以下の記載において多数の具体的詳細が示されている。前記詳細は実施例の目的のために提供され、本発明は一部あるいは全ての詳細に関係なく特許請求の範囲に従って実行される。明確さのため、本発明に関する技術分野で知られている技工物については詳細に記載せずに、本発明が不必要に曖昧にならないようにしている。
【０００８】
前書き
この前書は、発明の詳細な説明のより迅速な理解を促す目的でのみ含むものであり、本発明は前書きで提供されている概念に限定されるものではなく（たとえあったとしても明示的な実施例を含むのみ）、全ての前書きの段落は、必ずしも全体の発明の内容を簡略したものではなく、また包括的なまたは限定的に説明することを目的とするものでもない。例えば、以下の前書きは、空間的または組織的にいくつかの実施形態にのみ限定される概括的情報を提供する。特許請求の範囲から最終的に引き出されるものを含む、明細書の部分を通して検討されるその他多くの実施形態がある。
【０００９】
図１は、１実施形態に従った、ストレージデバイスに関連付けられた複数の書き込みコマンドの順序に関する方法１００を示す。図示するように、デバイスに送信されるストレージデバイスに関連付けられた複数の書き込みコマンドが特定される。工程１０２を参照。
【００１０】
本明細書の記載の内容におけるストレージデバイスは、データを保存することが可能なあらゆるデバイスを言及している。例えば、様々な実施形態において、ストレージデバイスは、これに限定されるものではないが、シリアルＡＴＡ（ＳＡＴＡ）ドライブ、シリアル接続ＳＣＳＩ（ＳＡＳ）ドライブ、ファイバーチャンネル（ＦＣ）ドライブ、ユニバーサル・シリアル・バス（ＵＳＢ）ドライブ、および／またはその他のあらゆるストレージデバイスを含む。さらに、様々な実施形態において、前記ストレージデバイスは、ストレージデバイスとして認識されるように構成されたペリフェラル・コンポーネント・インターコネクト（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ：ＰＣＩ）若しくはＰＣＩエクスプレス（ＰＣＩ  Ｅｘｐｒｅｓｓ）ベースのプラグインカード、またはストレージデバイスとして認識されるように構成されたＰＣＩ若しくはＰＣＩ  Ｅｘｐｒｅｓｓインターフェースを含む。１実施形態において、ＰＣＩ若しくはＰＣＩ  Ｅｘｐｒｅｓｓインターフェースは前記ストレージデバイスにアクセスするのに使用される。
【００１１】
さらに、前記書き込みコマンドは、コマンドの受信が可能なあらゆるタイプのデバイスに送信される。例えば、様々な実施形態において、前記デバイスは、ホストシステム、ＳＡＳ／ＳＡＴＡブリッジ（例えば、ＳＡＳからＳＡＴＡブリッジへなど）、ＵＳＢ／ＳＡＴＡブリッジ（例えば、ＵＳＢからＳＡＴＡブリッジへなど）、ＦＣ／ＳＡＴＡブリッジ（例えば、ＦＣからＳＡＴＡへなど）、ＰＣＩ若しくはＰＣＩ  Ｅｘｐｒｅｓｓベースのプラグインカード（例えば、ストレージデバイスとして認識されるように構成された、など）、ＰＣＩ若しくはＰＣＩ  Ｅｘｐｒｅｓｓインターフェース、少なくとも１つのストレージデバイス若しくはシステムへのアクセスに使用されるインターフェース、または一度に未処理の複数のコマンドを有することが可能なあらゆるデバイスを含む。
【００１２】
前記ストレージデバイスに関連付けられた前記書き込みコマンドを特定する工程に加えて、前記複数の書き込みコマンドの順序が決定され、この決定された順序は前記デバイスにより知られている（既知である）。工程１０４を参照。１実施形態において、前記決定された順序は、前記デバイスにとって既知である所定の順序である。
【００１３】
任意選択として、前記順序は、前記書き込みコマンドが特定される順序に基づいて決定される（例えば、先着順ベースの方法など）。例えば、コマンドが生成および／または受信される際、当該コマンドがキューに入れられる。別の任意選択として、前記順序は、前記デバイスにとって既知である所定の順序を含む。
【００１４】
言うまでもなく、前記順序は前記デバイスにとって既知である任意の順序である。１実施形態において、コントローラは前記デバイスに前記順序を通知する。この場合、前記順序がリアルタイムまたは準リアルタイムで前記ストレージデバイスによって決定される。
【００１５】
さらに進んで、前記複数の書き込みコマンドは、前記決定された順序で順序付けされる。工程１０６を参照。この場合、前記ストレージデバイスは、前記決定された順序により前記複数の書き込みコマンドを順序付けする。
【００１６】
このような方法で、前記デバイスは、前記複数の書き込みコマンドに関連付けられたデータをプリフェッチ（事前読込み）することができる。この場合、前記デバイスは、関連付けられた書き込みコマンドが実行される前に前記データのプリフェッチを行うことができる。これは、前記デバイスが前記書き込みコマンドの順序を認識しているため、遂行される。
【００１７】
１実施形態において、前記ストレージデバイスに関連付けられた読み出しコマンドも特定される。この場合、前記ストレージデバイスに関連付けられた前記複数の読み出しコマンドはランダムにまたは決定された順序で順序付けされる。いずれの場合においても、前記読み出しコマンドは前記書き込みコマンドと混合され、前記書き込みコマンドは互いに関連し合う決定順序を保持する。
【００１８】
例示的な実施形態
詳細な説明に対する前書きの結論として、以下は例示的な実施形態の収集物であって、「ＥＣ」（例示的組み合わせ（Ｅｘａｍｐｌｅ  Ｃｏｍｂｉｎａｔｉｏｎｓ））として明示的に列挙した少なくとも幾つかのものを含み、本明細書に記載された概念に従った様々な実施形態のタイプの追加的説明を提供し、これらの実施例は相互排他的、包括的、または限定的なことを意味するものではなく、そして、本発明はこれらの例示的な実施形態に限定されるものではなく、むしろ添付の特許請求の範囲の範囲内で可能な全ての修正および変更を包含する。
【００１９】
ＥＣ１．方法であって、
所定のストレージデバイスに関連付けられ、且つ所定のデバイスに送信される複数の書き込みコマンドを特定する工程と、
前記複数の書き込みコマンドの順序を決定する工程であって、この決定された順序は前記デバイスにとって既知である、前記決定する工程と、
前記決定された順序により前記複数の書き込みコマンドを順序付けする工程と
を有する方法。
【００２０】
ＥＣ２．ＥＣ１記載の方法において、前記決定された順序は、前記デバイスにとって既知である所定の順序である方法。
【００２１】
ＥＣ３．ＥＣ１記載の方法において、前記決定された順序は、前記複数の書き込みコマンドが特定される順序に基づいて決定されるものである方法。
【００２２】
ＥＣ４．前記ＥＣ１記載の方法において、さらに、
前記デバイスが前記複数の書き込みコマンドに関連付けられたデータのプリフェッチ（事前読込み）を行うことを許可する工程を有するものである方法。
【００２３】
ＥＣ５．ＥＣ４記載の方法において、前記デバイスは、関連付けられた書き込みコマンドが実行される前に前記データのプリフェッチを行うことが許可されるものである方法。
【００２４】
ＥＣ６．ＥＣ１記載の方法において、前記特定する工程、前記決定する工程、および前記順序付けする工程は、前記ストレージデバイスのモードに基づいて実行されるものである方法。
【００２５】
ＥＣ７．ＥＣ１記載の方法において、前記ストレージデバイスは、前記決定された順序により前記複数の書き込みコマンドを順序付けするものである方法。
【００２６】
ＥＣ８．ＥＣ１記載の方法において、前記デバイスは、ホストシステム用のストレージインターフェース・アダプタを含むものである方法。
【００２７】
ＥＣ９．ＥＣ１記載の方法において、前記デバイスは、ＳＡＳ／ＳＡＴＡブリッジを含むものである方法。
【００２８】
ＥＣ１０．ＥＣ１記載の方法において、前記デバイスは、ＵＳＢ／ＳＡＴＡブリッジを含むものである方法。
【００２９】
ＥＣ１１．ＥＣ１記載の方法において、前記デバイスは、ＦＣ／ＳＡＴＡブリッジを含むものである方法。
【００３０】
ＥＣ１２．ＥＣ１記載の方法において、前記デバイスは、ＰＣＩベースのプラグインカード若しくはＰＣＩ  Ｅｘｐｒｅｓｓベースのプラグインカードのうちのいずれか１つを含むものである方法。
【００３１】
ＥＣ１３．ＥＣ１記載の方法において、前記デバイスは、ＰＣＩインターフェース若しくはＰＣＩ  Ｅｘｐｒｅｓｓインターフェースのうちのいずれか１つを含むものである方法。
【００３２】
ＥＣ１４．ＥＣ１記載の方法において、前記デバイスは、少なくとも１つのストレージデバイスまたはシステムにアクセスするために使用されるインターフェースを含むものである方法。
【００３３】
ＥＣ１５．ＥＣ１記載の方法において、前記デバイスは、一度に未処理の複数のコマンドを有することが可能なデバイスを含むものである方法。
【００３４】
ＥＣ１６．ＥＣ１記載の方法において、さらに、
前記ストレージデバイスに関連付けられた複数の読み出しコマンドを特定する工程を有するものである方法。
【００３５】
ＥＣ１７．ＥＣ１６記載の方法において、前記ストレージデバイスに関連付けられた前記複数の読み出しコマンドは、ランダムに順序付けされるものである方法。
【００３６】
ＥＣ１８．ＥＣ１７記載の方法において、ランダムに順序付けされた前記複数の読み出しコマンドは、前記決定された順序で順序付けされた前記複数の書き込みコマンドと混合されるものである方法。
【００３７】
ＥＣ１９．ＥＣ１記載の方法において、前記ストレージデバイスは、シリアルＡＴＡ（Ｓｅｒｉａｌ  ＡＴＡ：ＳＡＴＡ）ドライブ、シリアル接続ＳＣＳＩ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ：ＳＡＳ）ドライブ、ファイバーチャンネル（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ：ＦＣ）ドライブ、またはユニバーサル・シリアル・バス（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ：ＵＳＢ）ドライブのうちの１つを含むものである方法。
【００３８】
ＥＣ２０．ＥＣ１記載の方法において、前記ストレージデバイスは、ストレージデバイスとして認識されるように構成されたＰＣＩベースのプラグインカード若しくはＰＣＩ  Ｅｘｐｒｅｓｓベースのプラグインカードのうちのいずれか１つを含むものである方法。
【００３９】
ＥＣ２１．ＥＣ１記載の方法において、前記ストレージデバイスは、ストレージデバイスとして認識されるように構成されたＰＣＩインターフェース若しくはＰＣＩ  Ｅｘｐｒｅｓｓインターフェースのうちのいずれか１つを含むものである方法。
【００４０】
ＥＣ２２．ＥＣ１記載の方法において、ＰＣＩインターフェース若しくはＰＣＩ  Ｅｘｐｒｅｓｓインターフェースは、前記ストレージデバイスにアクセスするために使用されるものである方法。
【００４１】
ＥＣ２３．コンピュータ可読媒体に組み込まれたコンピュータプログラム製品であって、
所定のストレージデバイスに関連付けられ、且つ所定のデバイスに送信される複数の書き込みコマンドを特定するコンピュータコードと、
前記複数の書き込みコマンドの順序を決定するコンピュータコードであって、この決定された順序は前記デバイスにとって既知である、前記決定するコンピュータコードと、
前記決定された順序により前記複数の書き込みコマンドを順序付けするコンピュータコードと
を有するコンピュータプログラム製品。
【００４２】
ＥＣ２４．装置であって、
ストレージデバイスであって、当該ストレージデバイスに関連付けられ、且つ所定のデバイスに送信される複数の書き込みコマンドを特定し、前記デバイスにとって既知である決定順序により前記複数の書き込みコマンドを順序付けするものである、前記ストレージデバイス
を有する装置。
【００４３】
ＥＣ２５．方法であって、
ランダムな順序でコマンド実行を許可するストレージプロトコルと互換性があるドライブと通信可能なデバイスが、書き込みデータが関連付けられた書き込みコマンドの各々を処理する工程と、
前記デバイスが、前記書き込みコマンドの少なくとも幾つかに関連付けられた前記書き込みデータをフェッチ（取り出し）する工程であって、前記デバイスはこのフェッチされたデータを前記ドライブに送信するものである、前記フェッチする工程と、
前記ドライブが、前記書き込みコマンドを実行する順序と同じ特定の順序により前記関連付けられた書き込みデータのフェッチを実行する工程と
を有し、
前記デバイスは、次にフェッチする前記関連付けられた書き込みデータ用に利用可能な書き込みデータストレージの全てを十分に使用することができるものである
方法。
【００４４】
ＥＣ２６．ＥＣ２５記載の方法において、前記デバイスは最初に、前記特定の順序ではなくシーケンスにより前記書き込みコマンドに遭遇するものである方法。
【００４５】
ＥＣ２７．ＥＣ２５記載の方法において、前記ドライブに対して、前記デバイスはホストバスアダプタまたはブリッジとして機能するものである方法。
【００４６】
ＥＣ２８．ＥＣ２５記載の方法において、さらに、
前記デバイスが、特定シーケンスにより前記書き込みコマンドを前記ドライブに送信する工程を有し、
前記特定の順序は前記特定シーケンスにより確立され、且つ前記特定シーケンスと同じである方法。
【００４７】
ＥＣ２９．ＥＣ２９記載の方法において、前記ストレージプロトコルはシリアルＡＴＡ（ＳＡＴＡ）と互換性があるものである方法。
【００４８】
ＥＣ３０．ＥＣ２５記載の方法において、前記ドライブはソリッドステートドライブ（ｓｏｌｉｄ−ｓｔａｔｅ  ｄｒｉｖｅ：ＳＳＤ）である方法。
【００４９】
ＥＣ３１．ＥＣ２５記載の方法において、前記ドライブは前記特定の順序と無関係な順序により非書き込みコマンドを実行することが可能であり、且つ当該非書き込みコマンドの実行は前記書き込みコマンドの実行と混合されるものである方法。
【００５０】
ＥＣ３２．装置であって、
ランダムな順序でコマンド実行を許可するストレージプロトコルと互換性があるドライブと通信する手段と、
書き込みデータが関連付けられた書き込みコマンドの各々を処理する手段と、
前記書き込みコマンドの少なくとも幾つかに関連付けられた前記書き込みデータをフェッチ（取り出し）する手段と、
前記フェッチされたデータを前記ドライブに送信する手段と、
前記書き込みコマンドを実行する順序と同じ特定の順序により前記関連付けられた書き込みデータのフェッチを前記ドライブによって実行する手段と
を有し、
前記デバイスは、次にフェッチする前記関連付けられた書き込みデータ用に利用可能な書き込みデータストレージの全てを十分に使用することができるものである
装置。
【００５１】
ＥＣ３３．ＥＣ３２記載の装置において、前記装置は最初に、前記特定の順序ではなくシーケンスにより前記書き込みコマンドに遭遇するものである装置。
【００５２】
ＥＣ３４．ＥＣ３２記載の装置において、前記装置はイニシエータまたはブリッジである装置。
【００５３】
ＥＣ３５．ＥＣ３２記載の装置において、さらに、
特定シーケンスにより前記書き込みコマンドを前記ドライブに送信する手段を有し、
前記特定の順序が前記特定シーケンスによって確立され、且つ前記特定シーケンスと同じである装置。
【００５４】
ＥＣ３６．ＥＣ３２記載の装置において、前記ストレージプロトコルはシリアルＡＴＡ（ＳＡＴＡ）と互換性があるものである装置。
【００５５】
ＥＣ３７．ＥＣ３２記載の装置において、前記ドライブはソリッドステートドライブ（ＳＳＤ）である装置。
【００５６】
ＥＣ３８．ＥＣ３２記載の装置において、前記ドライブは前記特定の順序と無関係な順序により非書き込みコマンドを実行することが可能であり、且つ当該非書き込みコマンドの実行は前記書き込みコマンドの実行と混合されるものである装置。
【００５７】
ＥＣ３９．一連の命令を格納する有形コンピュータ可読媒体であって、コンピュータによって当該命令が実行されるとき、当該コンピュータにより、
ランダムな順序でコマンド実行を許可するストレージプロトコルと互換性があるドライブと通信することが可能なデバイスが、書き込みデータが関連付けられた書き込みコマンドの各々を処理する工程と、
前記デバイスが、前記書き込みコマンドの少なくとも幾つかに関連付けられた前記書き込みデータをフェッチ（取り出し）する工程であって、前記デバイスはこのフェッチデータを前記ドライブに送信するものである、前記フェッチする工程と、
前記ドライブが、前記書き込みコマンドを実行する順序と同じ特定の順序により前記関連付けられた書き込みデータのフェッチを実行する工程と
を有する機能を実行させるものであり、
前記デバイスは、次にフェッチする前記関連付けられた書き込みデータ用に利用可能な書き込みデータストレージの全てを十分に使用することができるものである
有形コンピュータ可読媒体。
【００５８】
ＥＣ４０．ＥＣ３９記載の有形コンピュータ可読媒体において、前記デバイスは最初に、前記特定の順序ではなくシーケンスにより前記書き込みコマンドに遭遇するものである有形コンピュータ可読媒体。
【００５９】
ＥＣ４１．ＥＣ３９記載の有形コンピュータ可読媒体において、前記デバイスはホストバスアダプタおよびブリッジのうちの１つから選択されたものである有形コンピュータ可読媒体。
【００６０】
ＥＣ４２．ＥＣ３９記載の有形コンピュータ可読媒体において、前記書き込みコマンドを処理する工程は、前記書き込みコマンドを生成する工程および前記書き込みコマンドを受信する工程のうちの少なくとも１つを有するものである有形コンピュータ可読媒体。
【００６１】
ＥＣ４３．ＥＣ３９記載の有形コンピュータ可読媒体において、前記ストレージプロトコルはシリアルＡＴＡ（ＳＡＴＡ）と互換性があるものである有形コンピュータ可読媒体。
【００６２】
ＥＣ４４．ＥＣ３９記載の有形コンピュータ可読媒体において、前記デバイスはソリッドステートドライブ（ＳＳＤ）である有形コンピュータ可読媒体。
【００６３】
ＥＣ４５．ＥＣ３９記載の有形コンピュータ可読媒体において、前記ドライブは前記特定の順序と無関係な順序により非書き込みコマンドを実行することが可能であり、且つ当該非書き込みコマンドの実行は前記書き込みコマンドの実行と混合されるものである有形コンピュータ可読媒体。
【００６４】
ＥＣ４６．ＥＣ３９記載の有形コンピュータ可読媒体において、前記格納された一連の命令が前記コンピュータによって実行されるとき、前記コンピュータにより、さらに、
前記デバイスが特定シーケンスにより前記書き込みコマンドを前記ドライブに送信する工程を有する機能を実行させるものであり、
前記特定の順序は前記特定シーケンスによって確立され、且つ前記特定シーケンスと同じである有形コンピュータ可読媒体。
【００６５】
ＥＣ４７．装置であって、
ランダムな順序でコマンド実行を許可するストレージプロトコルと互換性があるドライブと通信することが可能なストレージインターフェースと、
書き込みコマンドを一時的に保持することが可能なキュー（ｑｕｅｕｅ）であって、各書き込みコマンドは書き込みデータと関連付けられているものである、前記キューと、
前記書き込みコマンドの少なくとも幾つかに関連付けられた前記書き込みデータをフェッチ（取り出し）して、このフェッチされたデータを前記ドライブに送信する制御論理と、
を有し、
前記制御論理は前記書き込みコマンドを実行する順序と同じ特定の順序により前記関連付けられた書き込みデータのフェッチを前記ドライブによって実行することが可能であり、且つさらにフェッチする前記関連付けられた書き込みデータ用に利用可能な書き込みデータストレージの全てを十分に使用することができるものである
装置。
【００６６】
ＥＣ４８．ＥＣ４７記載の装置において、前記装置は最初に、前記特定の順序ではなくシーケンスにより前記書き込みコマンドに遭遇するものである装置。
【００６７】
ＥＣ４９．ＥＣ４７記載の装置において、前記特定の順序は、前記ドライブによって前記装置に通信されるものである装置。
【００６８】
ＥＣ５０．ＥＣ４７記載の装置において、前記装置および前記ドライブの各々は前記特定の順序を使用するように予め設定されているものである装置。
【００６９】
ＥＣ５１．ＥＣ４７記載の装置において、前記特定の順序は、少なくとも１つの動作モードの選択を介して前記装置および前記ドライブのうちの少なくとも１つで決定されるものである装置。
【００７０】
ＥＣ５２．ＥＣ４７記載の装置において、前記特定の順序は先着順である装置。
【００７１】
ＥＣ５３．ＥＣ４７記載の装置において、前記装置および前記ドライブのうちの少なくとも１つは、常に前記特定の順序を使用するものである装置。
【００７２】
ＥＣ５４．ＥＣ４７記載の装置において、前記装置は、前記ドライブに対してホストバスアダプタとして機能するものである装置。
【００７３】
ＥＣ５５．ＥＣ４７記載の装置において、前記装置は、前記ドライブに対してブリッジとして機能するものである装置。
【００７４】
ＥＣ５６．ＥＣ４７記載の装置において、前記ストレージプロトコルはシリアルＡＴＡ（ＳＡＴＡ）と互換性があるものである装置。
【００７５】
ＥＣ５７．ＥＣ４７記載の装置において、前記ドライブはソリッドステートドライブ（ＳＳＤ）である装置。
【００７６】
ＥＣ５８．ＥＣ４７記載の装置において、前記ドライブは前記特定の順序と無関係な順により非書き込みコマンドを実行することが可能であり、且つ当該非書き込みコマンドの実行は前記書き込みコマンドの実行と混合されるものである装置。
【００７７】
ＥＣ５９．ＥＣ４７記載の装置において、前記装置は、前記書き込みコマンドを少なくとも生成するものである装置。
【００７８】
ＥＣ６０．ＥＣ４７記載の装置において、前記装置は、前記書き込みコマンドを少なくとも受信するものである装置。
【００７９】
ＥＣ６１．ＥＣ４７記載の装置において、前記制御論理はさらに、特定シーケンスにより前記書き込みコマンドを前記ドライブに送信することが可能であり、前記特定の順序は前記特定シーケンスによって確立され、且つ前記特定シーケンスと同じである装置。
【００８０】
ＥＣ６２．ＥＣ４７記載の装置において、前記キューに一時的に保持される前記書き込みコマンドは特定シーケンスにより保持され、前記制御論理はさらに、前記特定シーケンスにより前記書き込みコマンドを前記ドライブに送信することが可能であり、前記特定の順序は前記特定シーケンスによって確立され、且つ前記特定シーケンスと同じである装置。
【００８１】
更なる特徴
これから、ユーザーの望みによって前述のフレームワークが実施される或いはされいない様々な随意のアーキテクチャおよび特徴に関するより事例的情報を示す。以下の情報は、例証目的で示すものであり、いかなる方法も限定するものとして解釈されるべきでないことは強く注意しなければならない。記載された他の特徴を除いてまたは除かないで、以下のいずれの特徴も随意に組み込まれる。
【００８２】
図２は、１実施形態に従った、ストレージデバイスに関連付けられた複数の書き込みコマンドを順序付けするシステム２００を示す。任意選択的に、前記システム２００は図１の方法１００を実行するように実施することもできる。しかしながら、言うまでもなく、前記システム２００はあらゆる望ましい環境で実行される。上述の定義が本説明においても適用されることは、理解されるべきである。
【００８３】
図示するように、前記システム２００は、ストレージデバイス２０２を含む。更に図示するように、１若しくはそれ以上のデバイス２０４は前記ストレージデバイス２０２と通信および／またはに接続されている。この通信および／または接続は、あらゆるタイプのバスなどを利用して達成される。
【００８４】
この場合、前記ストレージデバイス２０２は、任意の数のストレージデバイスを表す。例えば、様々な実施形態において、前記ストレージデバイス２０２は、ＳＡＴＡドライブ、ＳＡＳドライブ、ＦＣドライブ、ＵＳＢドライブ、ストレージデバイスとして認識されるように構成されたＰＣＩ若しくはＰＣＩ  Ｅｘｐｒｅｓｓベースのプラグインカード、および／または他のあらゆるストレージデバイスを表している。
【００８５】
更にまた、前記１若しくはそれ以上のデバイス２０４は、コマンドを受信することが可能なあらゆるデバイスを含む。例えば、様々な実施形態において、前記デバイス２０４は、ＳＡＳ／ＳＡＴＡブリッジ、ＵＳＢ／ＳＡＴＡブリッジ、ＦＣ／ＳＴＡＴブリッジ、ＰＣＩ若しくはＰＣＩ  Ｅｘｐｒｅｓｓベースのプラグインカード、エキスパンダ、およびイニシエータ、および／または他のあらゆるデバイスを含む。
【００８６】
動作において、前記ストレージデバイス２０２は、１若しくはそれ以上の前記デバイス２０４に送信される前記ストレージデバイス２０２に関連付けられた書き込みコマンドを特定する。前記ストレージデバイス２０２は、次に順序を決定する。様々な実施形態において、この決定はリアルタイム若しくは準リアルタイムで行われるか、または予め定められた順序である。
【００８７】
前記ストレージデバイス２０２は、次に決定された順序により前記書き込みコマンドを順序付けし、この決定された順序は前記デバイス２０４によって認識される。１実施形態において、前記ストレージデバイス２０２は、前記順序により前記書き込みコマンドをキューに入れることによって前記書き込みコマンドを順序付けする。別の実施形態において、前記ストレージデバイス２０２は、順序を前記書き込みコマンドに割り当てることによって前記書き込みコマンドを順序付けする。
【００８８】
１実施形態において、前記特定する工程、決定する工程、および順序付けする工程は、前記ストレージデバイス２０２のモードに基づいて実行される。例えば、モードは、特定の順序付けが実行されるおよび／または利用されることを示唆する。別の実施形態において、前記特定する工程、決定する工程、および順序付けする工程は、標準機能として実行される。
【００８９】
１実施形態において、前記ストレージデバイス２０２に関連付けられた複数の読み出しコマンドも特定される。この場合、前記ストレージデバイス２０２に関連付けられた前記複数の読出しコマンドは、ランダムに順序付けされる。さらに、ランダムに順序付けされた前記複数の読み出しコマンドは、前記決定された順序の前記複数の書き込みコマンドと混合される。
【００９０】
このような方法で、前記デバイス２０４は、前記書き込みコマンドに関連付けられたデータを事前先読み（プリフェッチ）することができる。この場合、前記デバイス２０４は、関連付けられた書き込みコマンドが実行される前に前記データのプリフェッチを行うことができる。これは、前記デバイス２０４が前記書き込みコマンドの順序を認識しているため、遂行される。
【００９１】
例えば、幾つかのシステムにおいて、ＳＡＴＡドライブに接続されるデバイス（例えば、ホスト／ブリッジなど）は、前記書き込みコマンドの順序を認識しない。このように、前記ドライブは、全ての前記コマンドに対する書き込みデータのプリフェッチを行うための十分なリソースを有していなければ、書き込みデータのプリフェッチを行うことはできない。しかしながら、全てのコマンドのプリフェッチは、メモリの大部分を使用するため非常なコスト高になる。
【００９２】
任意選択的に、ハードディスクドライブ（ｈａｒｄ  ｄｉｓｋ  ｄｒｉｖｅ：ＨＤＤ）は、全ての前記データを取得（フェッチ）するのに必要とされる前記メディアの回転数を下げるために前記コマンドを再順序付けする。また、ソリッドステートドライブ（ｓｏｌｉｄ−ｓｔａｔｅ  ｄｒｉｖｅ：ＳＳＤ）は、当該ドライブ用に最適化するため内部構造に基づいて前記コマンドを再順序付けする。しかしながら、幾つかの場合には、書き込みデータをフェッチするのに必要な前記ドライブに接続される前記ホスト／ブリッジは、支障となる。
【００９３】
このように、前記ドライブは、前記ホストおよび／またはブリッジによって認識されている決定論的な仕方で前記コマンドを順序付けする。１実施形態において、これは先着順で実行される。このように、前記ホストは、前記書き込みコマンドの順序を認識するようになり、前記コマンドが実行される前に書き込みコマンドをプリフェッチする。様々な実施形態において、前記ドライブは、常にこの順序付けを実行するか、または前記順序付けはモードに基づいて行われる。任意選択として、２つ以上のモードがある。
【００９４】
また、前記順序付けは、前記コマンドを互いに順序付けし合う決定論的な技術を有さないプロトコル内の任意のプロトコルまたはモードに実行される。前記書き出しコマンドの順序は、前記書き込みコマンドの順序に対して決定論的であるかもしれないしそうでないかもしれないことは注意しなければならない。
【００９５】
例えば、多くの読み出しおよび書き込みコマンドが受信される。前記読み出しコマンドはランダムに順序付けされ、前記書き込みコマンドは確定的に順序付けされる。前記読み出しおよび書き込みコマンドが混合されて、前記書き込みコマンドの互いに相対的順序は保持される。１実施形態において、メモリコントローラ（例えば、ＳＳＤコントローラなど）は、書き込みコマンドの順序についての情報を前記ドライブに接続された前記デバイスに送ることにより、効率的なプリフェッチを可能にする。
【００９６】
図３は、別の実施形態に従った、ストレージデバイスに関連付けられた複数の書き込みコマンドを順序付けする方法３００を示す。任意選択的に、前記本方法３００は、図１〜２の機能性およびアーキテクチャとの関連で実行される。しかしながら、言うまでもなく、前記方法３００はあらゆる望ましい環境で実行される。再び、上述した定義は本記載においても適用される。
【００９７】
図示するように、コマンドが特定されるかどうかが決定される。工程３０２を参照。コマンドが特定された場合、前記コマンドが読み出しコマンドであるかどうかが決定される。工程３０４を参照。
【００９８】
前記コマンドが読み出しコマンドである場合、前記読み出しコマンドは、ランダムにキューに入れられる。工程３０６を参照。前記コマンドが読み出しコマンドでない場合、前記コマンドが書き込みコマンドであるかどうかが決定される。工程３０８を参照。
【００９９】
前記コマンドが書き込みコマンドである場合、前記コマンドは、受信デバイスに認識される順序でキューに入れられる。工程３１０を参照。例えば、１実施形態において、前記書き込みコマンドが順序に従ってキューに入れられ、その後前記受信デバイスは前記順序に関して通知される。別の実施形態において、前記書き込みコマンドは前記受信デバイスによって既に認識された所定順序によりキューに入れられる。
【０１００】
次に、データをプリフェッチするコマンドが受信デバイスから受信されるかどうかが決定される。工程３１２を参照。データをプリフェッチするコマンドが受信される場合、前記データは送信される。工程３１４を参照。
【０１０１】
１実施形態において、ＳＡＴＡドライブは、ホスト、ブリッジ、または接続デバイスは、前記コマンドを送信するのと同じ順序で書き込みコマンドを実行する。前記ホスト、ブリッジ、または接続デバイスは、その後前記書き込みコマンドが実行される順序の知識に基づいてデータをプリフェッチする。このように、あらゆる入手可能な書き込みデータが次のデータに使用される。
【０１０２】
このような方法で、前記書き込みデータは、前記デバイスが当該書き込みデータの準備が整う前にプリフェッチされるので、能力が非常に増大する。１実施形態において、ＳＳＤコントローラは、書き込みコマンドの順序についての情報を接続された前記デバイスに送ることにより、効率的なプリフェッチを可能にする。
【０１０３】
図４は、上述の様々な実施形態の様々なアーキテクチャおよび／または機能性が実行される例示的なシステム４００を図示する。図示するように、システム４００はコミュニケーションバス４０２に接続される少なくとも１つのホスト処理装置４０１を含むように提供される。前記システム４００はまた、主記憶装置４０４を含む。制御論理（ソフトウェア）およびデータは、ランダム・アクセス・メモリ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ：ＲＡＭ）の形態を取る前記主記憶装置４０４に格納される。
【０１０４】
前記システム４００はまた、グラフィックプロセッサ４０６と表示装置４０８（例えば、コンピュータモニタ）とを含む。１実施形態において、前記グラフィックプロセッサ４０６は複数のシェーダモジュール、ラスタライゼーションモジュールなどを含む。前述のモジュールの各々は、実に単一半導体プラットフォーム上に位置して、グラフィックス・プロセッシング・ユニット（ｇｒａｐｈｉｃｓ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ：ＧＰＵ）を形成する。
【０１０５】
本明細書の記載において、単一半導体プラットフォームはたった一つの単一半導体ベースの集積回路またはチップを言及している。前記用語の単一半導体プラットフォームはまた、増大した接続性を備えたマルチチップモジュールを言及し、オンチップ動作をシミュレーションし、且つ従来の中央処理装置（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ：ＣＰＵ）およびバス導入の利用を実質的に改善する。言うまでもなく、様々なモジュールはまた、ユーザーの望みに応じて別々に或いは半導体プラットフォームの様々な組み合わせで据えられる。
【０１０６】
前記システム４００はまた、二次記憶装置４１０を含む。前記二次記憶装置４１０は、ハードディスクドライブおよび／または例えばフロッピー（登録商標）ディスクドライブ、磁気テープ装置、コンパクトディスクドライブなどを代表とする着脱可能なストレージデバイスを含む。前記着脱可能なストレージデバイスは、周知の方法で着脱可能なストレージユニットから読み出すおよび／またはに書き込む。
【０１０７】
コンピュータプログラム（またはコンピュータ制御論理アルゴリズム）が前記主記憶装置４０４および／または前記二次記憶装置４１０に格納される。このようなコンピュータプログラムは、実行時に前記システム４００に様々機能を実行させることができる。記憶装置（メモリ）４０４、記憶装置（ストレージ）４１０および／または他のあらゆるストレージがコンピュータ可読媒体の可能な実施例である。
【０１０８】
１実施形態において、前出の様々な図面のアーキテクチャおよび／または機能性は、前記ホスト処理装置４０１、グラフィックプロセッサ４０６、前記ホスト処理装置４０１および前記グラフィックプロセッサ４０６の両方の能力の少なくとも一部の能力を持つ集積回路（図示せず）、チップセット（例えば、関連する機能を実行するためのユニットとして動作するように設計され且つ販売される一群の集積回路）、および／またはそれに関する他のあらゆる集積回路において実施される。
【０１０９】
また更に、前出の前記様々な図面のアーキテクチャおよび／または機能性は、一般的なコンピュータシステム、回路基板システム、娯楽としての用途専用のゲーム機システム、特定用途向けシステム、および／または他のあらゆる望ましいシステムにおいて実施される。例えば、前記システム４００は、デスクトップコンピュータ、ラップトップコンピュータ、および／または他のあらゆるタイプの論理回路の形を取る。また更に、前記システム４００は、これに限定されるものではないが、携帯情報端末（ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ：ＰＤＡ）装置、携帯電話装置、テレビなどを含む他の様々なデバイスの形を取る。
【０１１０】
更に、図示していないが、前記システム４００は通信目的のためにネットワーク［例えば、電気通信網、ローカルエリア・ネットワーク、（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ：ＬＡＮ）、ワイヤレス・ネットワーク、および例えばインターネット、ピアツーピアネットワーク、ケーブルネットワークなどの広域ネットワーク（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ：ＷＡＮ）］につながれる。
【０１１１】
様々な実施形態を上記で説明してきたが、これらはほんの一例として記載したに過ぎず、これらに限定されるものでないことは理解されるべきでる。このように、好ましい実施形態の広さおよび範囲は上記の例示的な実施形態のいずれによっても限定されるべきではなく、以下の特許請求の範囲およびこの均等物によってのみ規定されるべきものである。
【０１１２】
結論
前記記載において、文章および図面を準備するに当たって単に便宜上特定の選択がなされたものであり、そして、それと反対のことが示されていない限り、前記選択は、記載の実施形態の構成および動作に関する追加情報を伝達するものとしてそれ自体解釈されるべきではない。前記選択の例としては、前記図の番号付けの使用に指定される特定の組織または割当と、前記実施形態の特徴および要素を特定および参照するのに使用される要素識別子（例えば、付記または数の指示子）の特定の組織または割当とを含む。
【０１１３】
単語「含む（ｉｎｃｌｕｄｅｓ）」または「含んでいる（ｉｎｃｌｕｄｉｎｇ）」は、無制限の範囲の論理的組み合わせを説明する抽象的概念として解釈されることを特に意図しており、その後に「の中で（に）（ｗｉｔｈｉｎ）」が明確に続かない限り物理的束縛を伝えることを意味するものではない。
【０１１４】
前述の実施形態を説明の明確さと理解のために少し詳しく説明してきたが、本発明は記載の詳細に限定されるものではない。本発明には多くの実施形態が存在する。記載の実施形態は例示的なものであり、これに限定されるものではない。
【０１１５】
構成、配置、および使用における様々な変化が、本明細書とできるだけ一致し、且つ交付済み特許の特許請求の範囲の範囲内であることは理解されるであろう。例えば、相互接続および機能ユニットビット幅、クロック速度、並びに使用される技術タイプは、各コンポーネントブロックの様々な実施形態に従って変化する。相互接続およぼ論理回路に与えられる名称は単に例示的なものであり、記載の概念を限定するものと解釈されるべきではない。フローチャートおよびフローダイヤグラムプロセスの順序および配置、動作、並びに機能要素は、様々な実施形態に従って変化する。また、その反対のことが特に述べられていない限り、特定の値範囲、使用される最大値および最小値、または記載の実施形態に単に存在する他の特定の仕様（例えば、フラッシュメモリ技術タイプのような、レジスタおよびバッファーの入力またはステージの数）は、導入技術の改善および変化を追うことが期待され、それは限定として解釈されるべきではない。
【０１１６】
本技術分野で知られている機能的に等価な技術は、様々なコンポーネント、サブシステム、動作、機能、ルーティン、サブルーティン、インラインルーティン、手順、マクロ、またはそれらの一部を実行するように記載されたものを除いて、使用可能である。実施形態の多くの機能面は、設計制約と、より速い処理手続き（以前はハードウェアであった機能をソフトウェアに移行するのを促進する）およびより高い集積密度（以前はソフトウェアにあった機能をハードウェアに移行するのを促進する）の技術動向とに依存する実施形態の機能として、ハードウェア（すなわち、一般の専用回路）またはソフトウェア（すなわち、プログラムされたコントローラまたはプロセッサのある方法を介し）のいずれかで選択的に実現可能である。様々な実施形態の特定の変化は、これに限定されるものではないが：パーティション分割の相違の程度；異なるフォームファクタおよび機器構成；異なるオペレーティングシステムおよび他のシステムソフトウェアの使用；異なるインターフェース規格、ネットワークプロトコル、または通信リンクの使用；および、特定の用途に限定される特有の工学およびビジネスに従った、本明細書に記載される概念を実行するとき予測されるその他の変化を含む。
【０１１７】
前記実施形態を詳細に、および記載の実施形態の多くの態様の最小限の実施に必要とされるのをはるかに超える環境状況で説明してきた。当業者であれば、幾つかの実施形態で開示の構成要素または特徴が残りの要素との間の基本的な協働を変えないで省略されていることを理解するであろう。このようにして、記載された詳細の多くが記載の実施形態の様々な態様を実施するのに必要とされていないことは、理解されるだろう。残りの要素が従来技術と見分けられる限りにおいて、省略される構成要素および特徴は本明細書に記載の概念を制限していない。
【０１１８】
このような全ての設計上の変更は、前記記載の実施形態によって伝達される技術に関するごくわずかな変更である。本明細書に記載の実施形態は、他のコンピューティングアプリケーションおよびネットワーキングアプリケーションに対する幅広い適用性があり、記載の実施形態の特定の用途または産業に限定されるものではない。このようにして、本発明は交付済み特許の特許請求の範囲の範囲内に包含される全ての可能な修正および変更を含むと解釈されるものである。
【図１】
0005957634.tif 000002
【図２】
0005957634.tif 000003
【図３】
0005957634.tif 000004
【図４】
0005957634.tif 000005