(57)【要約】本明細書で説明されるシステムは、ＰＣＩｅデバイスが、複数のＰＣＩｅトポロジー及び構成が変更されるホストシステムで使用可能である。一部の場合には、複数の変化するＰＨＹ及びＰＣＩｅは、ホストインターフェース設計を満足させるアプリケーション及び／又は仕様の数を増加させるために使用される。更に、本明細書で説明される一部のシステムは、複数の用途のために構成されうるホストインターフェースを生成するために、複数のシンクロナイザー、クロックマルチプライヤユニット、及びセレクタを含んでもよい。本明細書で開示されるシステムの仕様の柔軟性が増加するが、ＰＣＩｅベースのデバイスのための本開示のシステムを用いることによりコストが低減されうる。【選択図】図３
2016526716.tif 000002
【特許請求の範囲】
【請求項１】
ストレージデバイスであって、
複数の不揮発性ソリッドステートメモリデバイスと、
ホストシステムからのメモリアクセスコマンドを受信するように構成されるＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）コネクタのセットと、
前記複数の不揮発性ソリッドステートメモリデバイスにアクセスするためのメモリアクセスコマンドを受信及び処理するように構成されるコントローラと、を備え、前記コントローラは、ホストインターフェースを備え、
前記ホストインターフェースは、
複数の物理インターフェース（ｐｈｙｓｉｃａｌ  ｉｎｔｅｒｆａｃｅｓ（ＰＨＹ））であって、各ＰＨＹは、前記ＰＣＩｅコネクタのセットから前記ＰＣＩｅコネクタのサブセットと通信するように構成され、複数のＰＨＹのうちの少なくとも１つは、デュアルＰＣＩｅ  ＰＨＹを備え、それにより、前記ホストインターフェースが複数のＰＣＩｅトポロジーで使用可能である、複数の物理インターフェース（ＰＨＹ）と、
前記複数のＰＨＹを通過する信号を処理するように構成される１以上のＰＣＩｅコアと、
を備えるストレージデバイス。
【請求項２】
各ＰＨＹは、クロック信号のプロバイダシステムとの同期を維持しつつ、前記ホストインターフェースで受信された前記クロック信号の周波数を逓倍するように構成されるクロックマルチプライヤユニットを備える請求項１に記載のストレージデバイス。
【請求項３】
前記ホストインターフェースは、各ＰＨＹのクロック信号を同期するように構成されるシンクロナイザーを更に備える請求項２に記載のストレージデバイス。
【請求項４】
前記シンクロナイザーは、
前記複数のＰＨＹから１つのＰＨＹを選択し、
選択されたＰＨＹの前記クロックマルチプライヤユニットに少なくとも部分的に基づいて各ＰＨＹの前記クロック信号を同期し、
前記複数のＰＨＹから残りの各ＰＨＹの前記クロックマルチプライヤユニットをアクティブにしない
ことにより、各ＰＨＹの前記クロック信号を同期するように構成される請求項３に記載のストレージデバイス。
【請求項５】
前記ホストインターフェースは、セレクタのセットを更に備え、各セレクタは、前記複数のＰＨＹからの対応するＰＨＹと関連付けられる請求項１に記載のストレージデバイス。
【請求項６】
前記セレクタのセットからの少なくとも１つのセレクタは、前記セレクタに提供されるセレクタ信号に少なくとも部分的に基づいて前記対応するＰＨＹからデータ／コマンド信号を受信するために、１以上のＰＣＩｅコアから１つのＰＣＩｅコアを選択するように構成される請求項５に記載のストレージデバイス。
【請求項７】
前記ホストインターフェースは、ホストプロセッサを更に備え、前記ホストプロセッサは、前記セレクタ信号を前記セレクタに提供するように構成される請求項６に記載のストレージデバイス。
【請求項８】
前記セレクタのセットからの少なくとも１つのセレクタは、前記１以上のＰＣＩｅコアからの１つのＰＣＩｅコアと関連付けられ、前記少なくとも１つのセレクタは、前記少なくとも１つのセレクタと関連付けられた信号経路のレイテンシの度合いを維持するように構成される請求項５に記載のストレージデバイス。
【請求項９】
前記ホストインターフェースは、前記複数のＰＨＹからの第１のＰＨＹと関連付けられるレイテンシユニットを更に備え、前記レイテンシユニットは、前記第１のＰＨＹと、第２の信号レイテンシと一致する前記１以上のＰＣＩｅコアからの第１の対応するＰＣＩｅコアとの間の第１の信号レイテンシを維持するように構成され、前記第２の信号レイテンシは、前記複数のＰＨＹからの第２のＰＨＹと、前記１以上のＰＣＩｅコアからの第２の対応するＰＣＩｅコアとの間の信号レイテンシと関連付けられる、請求項５に記載のストレージデバイス。
【請求項１０】
前記ＰＣＩｅコネクタのセットは、異なる入力／出力コネクタのセットを備える請求項１に記載のストレージデバイス。
【請求項１１】
前記１以上のＰＣＩｅコアからの各ＰＣＩｅコアは、ホストシステムの別のルートコンプレックスと関連付けられる請求項１に記載のストレージデバイス。
【請求項１２】
前記コントローラは、ソリッドステートドライバコントローラである請求項１に記載のストレージデバイス。
【請求項１３】
少なくとも１つのＰＨＹは、デュアルＰＣＩｅ  ＰＨＹではない請求項１に記載のストレージデバイス。
【請求項１４】
前記コントローラは、前記ホストインターフェース及び前記複数の不揮発性ソリッドステートメモリデバイスと通信するように構成されるメモリコントローラを更に備える請求項１に記載のストレージデバイス。
【請求項１５】
Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）カードのためのコントローラであって、前記コントローラは、
複数の物理インターフェース（ｐｈｙｓｉｃａｌ  ｉｎｔｅｒｆａｃｅｓ（ＰＨＹ））であって、各ＰＨＹは、ＰＣＩｅコネクタのセットから前記ＰＣＩｅコネクタのサブセットと通信するように構成され、少なくとも１つのＰＨＹは、少なくとも１つの他のＰＨＹとは異なる数のＰＣＩｅコネクタをサポートし、それにより、前記コントローラが複数のＰＣＩｅカードトポロジーで使用可能である、複数の物理インターフェース（ＰＨＹ）と、
前記複数のＰＨＹと通信するように構成される１以上のＰＣＩｅコアと、
を備えるコントローラ。
【請求項１６】
各ＰＨＹは、クロック信号のプロバイダシステムとの同期を維持しつつ、前記コントローラで受信された前記クロック信号を変更するように構成されるクロックマルチプライヤユニットを備える請求項１５に記載のコントローラ。
【請求項１７】
各ＰＨＹのクロック信号を同期するように構成されるシンクロナイザーを更に備える請求項１６に記載のコントローラ。
【請求項１８】
前記シンクロナイザーは、
前記複数のＰＨＹから１つのＰＨＹを選択し、
選択されたＰＨＹの前記クロックマルチプライヤユニットを用いて各ＰＨＹの前記クロック信号を同期し、
前記複数のＰＨＹから残りの各ＰＨＹの前記クロックマルチプライヤユニットをアクティブにしない
ことにより、各ＰＨＹの前記クロック信号を同期するように構成される請求項１７に記載のストレージデバイス。
【請求項１９】
セレクタのセットを更に備え、各セレクタは、前記複数のＰＨＹからの対応するＰＨＹと関連付けられる請求項１５に記載のコントローラ。
【請求項２０】
前記セレクタのセットからの少なくとも１つのセレクタは、前記セレクタに提供されるセレクタ信号に少なくとも部分的に基づいて前記対応するＰＨＹからデータ／コマンド信号を受信するために、１以上のＰＣＩｅコアから１つのＰＣＩｅコアを選択するように構成される請求項１９に記載のコントローラ。
【請求項２１】
前記セレクタのセットからの少なくとも１つのセレクタは、前記１以上のＰＣＩｅコアからの代替ＰＣＩｅコアの選択を可能にすることなく、前記複数のＰＨＹからの１つのＰＨＹと、前記１以上のＰＣＩｅコアからの対応するＰＣＩｅコアとの間で通信された信号の信号レイテンシを変更する請求項１９に記載のコントローラ。
【請求項２２】
コントローラであって、
複数の物理インターフェース（ｐｈｙｓｉｃａｌ  ｉｎｔｅｒｆａｃｅｓ（ＰＨＹ））であって、各ＰＨＹは、シリアルインターフェースコネクタのセットから前記シリアルインターフェースコネクタのサブセットと通信するように構成され、少なくとも１つのＰＨＹは、少なくとも１つの他のＰＨＹとは異なる数のシリアルインターフェースコネクタをサポートする、複数の物理インターフェース（ＰＨＹ）と、
前記複数のＰＨＹと通信するように構成される１以上のプロセッシングコアと、
を備えるコントローラ。
【請求項２３】
各ＰＨＹは、クロック信号のプロバイダシステムとの同期を維持しつつ、前記コントローラで受信された前記クロック信号を変更するように構成されるクロックマルチプライヤユニットを備える請求項２２に記載のコントローラ。
【請求項２４】
各ＰＨＹのクロック信号を同期するように構成されるシンクロナイザーを更に備える請求項２３に記載のコントローラ。
【請求項２５】
前記シンクロナイザーは、
前記複数のＰＨＹから１つのＰＨＹを選択し、
選択されたＰＨＹの前記クロックマルチプライヤユニットを用いて各ＰＨＹの前記クロック信号を同期し、
前記複数のＰＨＹから残りの各ＰＨＹの前記クロックマルチプライヤユニットをアクティブにしない
ことにより、各ＰＨＹの前記クロック信号を同期するように構成される請求項２４に記載のコントローラ。
【請求項２６】
セレクタのセットを更に備え、各セレクタは、前記複数のＰＨＹからの対応するＰＨＹと関連付けられる請求項２２に記載のコントローラ。
【請求項２７】
前記セレクタのセットからの少なくとも１つのセレクタは、前記セレクタに提供されるセレクタ信号に少なくとも部分的に基づいて前記対応するＰＨＹからデータ／コマンド信号を受信するために、１以上のプロセッシングコアから１つのプロセッシングコアを選択するように構成される請求項２６に記載のコントローラ。
【請求項２８】
前記セレクタのセットからの少なくとも１つのセレクタは、前記１以上のプロセッシングコアからの代替プロセッシングコアの選択を可能にすることなく、前記複数のＰＨＹからの１つのＰＨＹと、前記１以上のプロセッシングコアからの対応するプロセッシングコアとの間で通信された信号の信号レイテンシを変更する請求項２６に記載のコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、フラッシュドライブを含むが、これに限定されない不揮発性ストレージサブシステムに関する。より具体的には、本開示は、ストレージデバイスコントローラとホストシステムのルートコンプレックスとの間で通信するためのＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）コネクタを用いる不揮発性ストレージサブシステムのためのシステム及び方法に関する。
【背景技術】
【０００２】
ＰＣＩｅは、ＰＣＩ標準規格及びＡＧＰ標準規格を含む複数の古い標準規格を置き換えるために設計された高速シリアル拡張カードのための標準規格である。ＰＣＩｅは、グラフィックスカード及びネットワークカードを含む様々な拡張カードのために用いられてもよい。更に、ＰＣＩｅ標準規格は、ソリッドステートドライブのために用いられてもよい。
【発明の概要】
【０００３】
ＰＣＩｅ標準規格に適合するデバイスは、様々なコンポーネントを含んでもよく、複数のサイズ及びフォームファクタで入ってきてもよい。例えば、ＰＣＩｅ適合デバイスは、１つのレーン、４つのレーン又は１６のレーンを含んでもよい。更に、ＰＣＩｅ適合デバイスは、ラップトップで使用されうるミニカードとして設計されてもよい。
【図面の簡単な説明】
【０００４】
図面を通して、参照番号は、参照要素間の対応を示すために再利用されてもよい。図面は、本稿で説明される本発明の実施形態を図示するために提供されており、本発明の範囲を限定するものとして解釈されるべきではない。
【図１Ａ】図１Ａは、ｘ４  ＰＣＩｅリンクを介してストレージデバイスと通信するホストシステムの例を示すブロック図である。
【図１Ｂ】図１Ｂは、図１Ａに示されるストレージデバイスと通信するホストシステムのより詳細な例を示すブロック図である。
【図１Ｃ】図１Ｃは、図１Ｂに示されるホストインターフェースのより詳細な例を示すブロック図である。
【図２Ａ】図２Ａは、ｘ２  ＰＣＩｅリンクを介してストレージデバイスと通信する２つのルートコンプレックスを有するホストシステムの例を示すブロック図である。
【図２Ｂ】図２Ｂは、図２Ａのシステム・オン・チップ（Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ（ＳｏＣ））に含まれてもよいホストインターフェースの例を示すブロック図である。
【図３】図３は、１つ又は２つのルートコンプレックスで用いられてもよいデュアル物理インターフェース（デュアルＰＨＹｓ）を有するホストインターフェースの例を示すブロック図である。
【図４】図４は、ｘ８  ＰＣＩｅリンクを介してＰＣＩｅカードと通信するホストシステムの例を示すブロック図である。
【図５】図５は、１つ又は２つのルートコンプレックスで用いられてもよいデュアルＰＨＹとクアッドＰＨＹとの組み合わせを有するホストインターフェースの例を示すブロック図である。
【発明を実施するための形態】
【０００５】
特定の実施形態が説明されるが、これらの実施形態は例示のみを目的とするもので本発明の保護範囲を限定する意図はない。実際、本稿において説明される新規の方法及びシステムは他の様々な形態で実施され得る。更に、本稿において説明される方法及びシステムの形態には、多様な省略、置換、変更が、本発明の保護範囲を逸脱すること無く行われ得る。
【０００６】
概要
上述したように、Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）コンポーネントデバイスは、様々なサイズ及びフォームで入ってくる。更に、ＰＣＩｅ標準規格は、ソリッドステートデバイス及びグラフィックスカードを含む様々な種類のデバイスで使用される。一般的に、ＰＣＩｅコンポーネントデバイスは、アプリケーションに特有である複数のコンポーネントで入ってくる。しかし、アプリケーション特有であるかに関わらず、多くのＰＣＩｅ適合デバイスは、同様の種類のコンポーネントを共有する。例えば、複数のＰＣＩｅ適合デバイスは、１以上のルートコンプレックスを介したホストシステムとＰＣＩｅデバイスとの通信を促進するために設計されるホストインターフェースを含んでもよい。一部のＰＣＩｅ適合デバイスが、コンポーネントの種類を共有するが、サブコンポーネントがアプリケーション固有であり、かつ柔軟に使用できないため、各コンポーネントは、別々に設計される。
【０００７】
本開示の一部の実施形態は、関連するルートコンプレックスの数が変化する様々なＰＣＩｅ適合デバイスで用いられるべき柔軟性を提供するホストインターフェース設計に関する。一部の実施形態では、柔軟なホストインターフェースは、ＰＣＩｅデバイスと関連付けられる１以上のコストを低減しうる。この低減されたコストは、ホストインターフェースの柔軟性を増加してしまう一部の場合でも実現されうる。
【０００８】
本明細書に示される一部の実施形態は、サイズが変化した物理インターフェース（ｐｈｙｓｉｃａｌ  ｉｎｔｅｒｆａｃｅｓ（ＰＨＹｓ））、及び一部の場合には、サイズが変化したＰＣＩｅコアを使用し、これにより、ホストインターフェースを、様々なシステム及びＰＣＩｅトポロジーで使用することができる。例えば、本明細書で説明される一部の実施形態は、各ホストのホストインターフェースを再設計することなく、１、２又はそれ以上のルートコンプレックスを有するホストデバイスで用いられてもよい。本明細書で開示されるＰＨＹは、ＰＣＩｅ  ＰＨＹｓを含んでもよい。
【０００９】
説明の簡略化のために、本開示はＰＣＩｅについて説明するが、本開示は、これに限定されない。例えば、本開示は、高速シリアルインターフェースを含む任意の種類のシリアルインターフェースで使用されてもよい。更に、本開示は、１つのシリアルインターフェース及び１以上のプロセッシングコアを含む任意の種類のデバイス及び／又はカードで用いられてもよい。
【００１０】
システム概要
図１Ａは、ｘ４  ＰＣＩｅリンクを介してストレージデバイス１０４と通信するホストシステム１０２の例を示すブロック図である。一実施形態では、ストレージデバイス１０４は、ＳＳＤ、ハードディスクドライブ、ハイブリッドドライブ又は他のデータストレージデバイスであってもよい。ホストシステム１０２は、ストレージデバイスと通信してもよい任意のコンピュータデバイスを含んでもよい。図示されるように、ホストシステム１０２は、ストレージデバイス１０４のシステム・オン・チップ（Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ（ＳｏＣ））１０８と通信することによりストレージデバイスと通信するルートコンプレックス１０６を含んでもよい。ルートコンプレックス１０６は、例えば、処理を代表してトランザクションリクエストを生成するプロセッシングメモリアクセスコマンドを促す任意のシステムを含みうる。ストレージデバイス１０４は、１以上の不揮発性ソリッドステートメモリアレイ１６０を含んでもよい任意の種類のストレージメディアを含みうる（図１Ｂに図示される）。一部の実施形態では、回転磁気メディアのような他の種類のメディアは、ソリッドステートメモリに代えて又は加えて用いられてもよい。ＳｏＣ１０８は、ストレージデバイス１０４及び不揮発性ソリッドステートメモリアレイ１６０と相互作用する１以上のコンポーネントを含みうる。
【００１１】
ストレージデバイス１０４及びＳｏＣ１０８の更なる詳細が図１Ｂに示され、図１Ｂは、ストレージデバイス１０４と通信するホストシステム１０２のより詳細な例を示すブロック図である。図１Ｂに示されるように、ホストシステム１０２は、ルートコンプレックス１０６に加えてプロセッサ１３２を含んでもよい。プロセッサは、メモリアクセスコマンドをストレージデバイス１０４へ送り、ストレージデバイスからのデータトラフィックを処理してもよい。一部の場合には、ルートコンプレックス１０６は、プロセッサ１３２が、ルートコンプレックス１０６へのメモリアクセスリクエストの少なくとも部分的な処理をオフローディング（ｏｆｆ−ｌｏａｄｉｎｇ）可能にすることにより、仲介（ｉｎｔｅｒｍｅｄｉａｒｙ）として機能してもよい。２つの別の部品が示されているが、一部の場合には、ルートコンプレックス１０６は、プロセッサ１３２の一部として含まれてもよい。
【００１２】
前述したように、ストレージデバイス１０４は、複数の不揮発性ソリッドステートメモリアレイ１６０を含んでもよい。当該アレイは、例えば、フラッシュ集積回路、カルコゲナイドＲＡＭ（Ｃｈａｌｃｏｇｅｎｉｄｅ  ＲＡＭ（Ｃ−ＲＡＭ））、相変化メモリ（Ｐｈａｓｅ  Ｃｈａｎｇｅ  Ｍｅｍｏｒｙ（ＰＣ−ＲＡＭ又はＰＲＡＭ））、オボニックユニファイドメモリ（Ｏｖｏｎｉｃ  Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ（ＯＵＭ））、抵抗ＲＡＭ（Ｒｅｓｉｓｔａｎｃｅ  ＲＡＭ（ＲＲＡＭ（登録商標）））、ＮＡＮＤメモリ、ＮＯＲメモリ、ＥＥＰＲＯＭ、強誘電体メモリ（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  Ｍｅｍｏｒｙ（ＦｅＲＡＭ））、又は他のディスクリートＮＶＭチップを含んでもよい。ソリッドステートストレージデバイスは、従来から知られているように、ブロック、ページ及びセクターに物理的に分割されてもよい。他の形態のストレージ（例えば、バッテリバックアップ揮発性ＤＲＡＭ又はＳＲＡＭデバイス、磁気ディスクドライブ等）は、追加又は代替的に使用されてもよい。
【００１３】
ストレージデバイス１０４は、ルートコンプレックス１０６からＳｏＣ１０８へ、又はその逆に信号を伝えるコネクタ１１２を含んでもよい。コネクタ１１２は、ＰＣＩｅコネクタ又は異なる入力／出力コネクタのような物理コネクタであってもよい。信号は、メモリアクセスコマンド及びデータの両方を含んでもよい。
【００１４】
一部の場合には、ＳｏＣ１０８は、コントローラとして機能してもよい。ＳｏＣ１０８は、少なくとも、ホストインターフェース１１０及びメモリコントローラ１１４を含んでもよい。図示されないが、ＳｏＣ１０８は、不揮発性ソリッドステートメモリアレイ１６０の管理及びアクセスを促進する追加のコンポーネントを含んでもよい。例えば、ＳｏＣ１０８は、誤り訂正符号（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅ（ＥＣＣ））システムを含んでもよい。
【００１５】
ホストインターフェース１１０は、コネクタ１１２を介してルートコンプレックス１０６からの信号を受信し、メモリコントローラ１１４による処理のための信号を用意するための任意のシステムを含みうる。これらの信号は、不揮発性ソリッドステートメモリアレイ１６０のストレージのためのメモリアクセスコマンド及びデータを含んでもよい。更に、ホストインターフェース１１０は、ルートコンプレックス１０６へプロビジョニングするためのメモリコントローラ１１４から受信される信号を処理するように構成されてもよい。一部の場合には、ホストインターフェースは、ホストプロセッサ１１６を含んでもよい。ホストプロセッサ１１６は、ホストインターフェース１１０で受信される信号の処理を促進することができる任意のシステムを含んでもよい。ホストインターフェース１１０に関する更なる詳細は、図１Ｃについて以下に説明される。
【００１６】
メモリコントローラ１１４は、不揮発性ソリッドステートメモリアレイ１６０と通信するための任意のシステムを含みうる。メモリコントローラ１１４は、ホストインターフェース１１０から受信されるメモリアクセスコマンドに応じて不揮発性ソリッドステートメモリアレイ１６０にアクセスしてもよい。更に、メモリコントローラ１１４は、ガベージコレクション及びウェアレベリングのようなメモリマネジメントコマンドを実行してもよい。一部の実施形態では、メモリコントローラ１１４は、メモリマネジメント及びメモリアクセスコマンドの一部又は全部を実行するためにプロセッサ１２０を含んでもよい。
【００１７】
図１Ｃは、図１Ｂに示されるホストインターフェース１１０のより詳細な例を示すブロック図である。ホストインターフェース１１０は、図１Ｂに示されるホストプロセッサ１１６に加えて、クアッドＰＨＹ１４０及びｘ４  ＰＣＩｅコア１４２を含んでもよい。クアッドＰＨＹ１４０は、４つのレーンをサポートしうるＰＨＹである。クアッドＰＨＹの各ピンは、コネクタ１１２のコネクタ１１２Ａ−１１２Ｄと関連付けられたＰＣＩｅレーンと通信してもよい。図１Ｃに示されるように、コネクタ１１２の各コネクタ１１２Ａ−１１２Ｄは、２つの差動信号対（例えば、Ｅ１０／１１とＥ１３／１４、Ｅ１９／２０とＥ２２／２３等）を含むレーンであってもよい。差動信号対の１つは、データ及び／又はコマンドを送信するために用いられてもよく、差動信号対の１つは、データ及び／又はコマンドを受信するために用いられてもよい。４つのコネクタ１１２Ａ−１１２Ｄ及び単一のクアッドＰＨＹ１４０が示されているが、異なる数のコネクタ及び異なる数のクアッドＰＨＹが可能である。例えば、ホストインターフェース１１０は、総計８つのコネクタについての４つのコネクタと通信する各クアッドＰＨＹを有する２つのクアッドＰＨＹを含んでもよい。
【００１８】
クアッドＰＨＹ１４０は、コネクタ１１２から信号を受信し、信号をＰＣＩｅコア１４２に提供する前に、複数の信号処理動作を実行するように構成される任意の種類の物理インターフェースを含みうる。例えば、クアッドＰＨＹ１４０は、再形成（ｒｅｓｈａｐｅ）、再生成（ｒｅｇｅｎｅｒａｔｅ）、フィルタ、又は他の信号処理機能を実行してもよい。更に、クアッドＰＨＹ１４０は、受信された信号の周波数を変更してもよい。一部の場合には、クアッドＰＨＹ１４０は、シリアル信号を取得し、パラレル信号に変換してもよい。例えば、クアッドＰＨＹ１４０は、データの高速シリアルストリームを取得し、低速パラレルストリームに変換してもよい。一旦信号が処理されると、クアッドＰＨＹ１４０は、信号をＰＣＩｅコア１４２に提供してもよい。
【００１９】
一部の実施形態では、信号は、Ｉｎｔｅｌ（登録商標）から発行されているＰＨＹ  Ｉｎｔｅｒｆａｃｅ  ｆｏｒ  ＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＩＰＥ）のような業界標準規格に合致するように変更されてもよい。有利には、ＰＩＰＥ標準規格を実装することにより、異なる製造メーカーにより開発されたＰＨＹ及びＰＣＩｅコアは、互いに機能するように構成されうる。一部の場合には、ＰＩＰＥ標準規格は、クアッドＰＨＹ１４０及びＰＣＩｅコア１４２により実装されてもよい。しかし、他の場合には、ＰＩＰＥ１４４のような仲介は、クアッドＰＨＹ１４０及び／又はＰＣＩｅコア１４２へ、又はクアッドＰＨＹ１４０及び／又はＰＣＩｅコア１４２から送受信された信号を変更するために用いられてもよく、クアッドＰＨＹ１４０とＰＣＩｅコア１４２との通信を成功させることができる。図１Ｃに別々のデバイスとして図示されているが、典型的には、ＰＩＰＥ１４４は、デバイス間の通信のための信号のフォーマットを表す概念的なデバイスである。すなわち、ＰＩＰＥ１４４の要件は、ホストインターフェース１１０の別々のコンポーネントとしてではなく、クアッドＰＨＹ１４０及びＰＣＩｅコア１４２の一部として実装されてもよい。
【００２０】
上述したように、ホストインターフェース１１０は、ｘ４  ＰＣＩｅコアを含んでもよい。ｘ４  ＰＣＩｅコアは、メモリコントローラ１１４のようなルートコンプレックスとコントローラとの間の通信を促進することができる任意の種類のＰＣＩｅコアを含んでもよい。ＰＣＩｅコアは、通信を促進するために複数のデジタル信号処理（ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｉｎｇ（ＤＳＰ））機能を実行してもよい。例えば、ＰＣＩｅコアは、誤り訂正、リクエストの再送を要求する、受信されたデータをパケット化する、データリンクを後に実現する等を行ってもよい。
【００２１】
マルチルートコンプレックスシステムの例
一部の例では、複数のルートコンプレックスがＰＣＩｅコアを共有してもよいが、一般的に、各ルートコンプレックス及び／又はプロセッサは、別々のＰＣＩｅコアと関連付けられる。よって、図１Ｃに表される例は、単一のプロセッサ１３２及び／又はルートコンプレックス１０６を含むホストシステム１０２で使用するために構成されるホストインターフェース１１０を示す。しかし、図２Ａに示されるように、ホストシステム２０２は、複数のルートコンプレックスを含んでもよい。
【００２２】
図２Ａは、一対のｘ２  ＰＣＩｅリンクを介してストレージデバイス２０４と通信する２つのルートコンプレックス２０６Ａ，２０６Ｂを有するホストシステム２０２の例を示すブロック図である。ストレージデバイス２０４は、ＳｏＣ２０８を含んでもよく、ＳｏＣ２０８は、前述されたＳｏＣ１０８と同様の機能を有してもよい。ＳｏＣ１０８と同様に、ＳｏＣ２０８は、ストレージデバイス２０４のためのコントローラとして機能してもよい。
【００２３】
図２Ｂは、図２Ａのシステム・オン・チップ（Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ（ＳｏＣ））２０８に含まれてもよいホストインターフェース２１０の例を示すブロック図である。ホストインターフェース２１０は、コネクタ２１２を介してルートコンプレックス２０６Ａ，２０６Ｂと通信してもよく、ＳｏＣ２０８をストレージデバイス２０４と接続するために用いられてもよい。コネクタ２１２は、物理コネクタであってもよく、コネクタ１１２について前述された実施形態の一部又は全部を含んでもよい。コネクタ１１２と同様に、コネクタ２１２は、４つのコネクタを含んでもよく、各コネクタは、コネクタ１１２Ａ−１１２Ｄについて説明されたような２つの差動信号対のレーンを含む。しかし、コネクタ１１２Ａ−１１２Ｄとは異なり、コネクタ２１２の４つのコネクタは、２対のコネクタ、つまり、コネクタ２１２Ａ，２１２Ｂ及びコネクタ２１３Ａ，２１３Ｂに分割されてもよい。
【００２４】
コネクタ２１２Ａ，２１２Ｂ及びコネクタ２１３Ａ，２１３Ｂの各対は、異なるルートコンプレックス２０６Ａ，２０６Ｂに割り当てられてもよい、又は関連付けられてもよい。すなわち、一部の場合には、コネクタ２１２Ａ，２１２Ｂ及びコネクタ２１３Ａ，２１３Ｂの各対は、異なるルートコンプレックス２０６Ａ，２０６Ｂから信号を受信し、異なるルートコンプレックス２０６Ａ，２０６Ｂへ信号を送信するように構成されてもよい。更に、図２Ｂに示されるように、コネクタ２１２Ａ，２１２Ｂ及びコネクタ２１３Ａ，２１３Ｂの各対は、異なるクアッドＰＨＹ２４０Ａ，２４０Ｂと通信してもよい。コネクタ２１２Ａ，２１２Ｂは、クアッドＰＨＹ２４０Ａと通信してもよく、コネクタ２１３Ａ，２１３Ｂは、クアッドＰＨＹ２４０Ｂと通信してもよい。
【００２５】
各クアッドＰＨＹ２４０Ａ，２４０Ｂは、ｘ４  ＰＣＩｅコア２４２Ａ，２４２Ｂのそれぞれと通信してもよい。よって、ルートコンプレックス２０６Ａは、コネクタ２１２Ａ，２１２Ｂにデータ及び／又はコマンドを提供してもよく、データ及び／又はコマンドは、クアッドＰＨＹ２４０Ａを介してＰＣＩｅコア２４２Ａに提供される。同様に、ルートコンプレックス２０６Ｂは、コネクタ２１３Ａ，２１３Ｂにデータ及び／又はコマンドを提供してもよく、データ及び／又はコマンドは、クアッドＰＨＹ２４０Ｂを介してＰＣＩｅコア２４２Ｂに提供される。更に、ＰＣＩｅコア２４２Ａ，２４２Ｂは、クアッドＰＨＹ２４０Ａ，２４０Ｂ及び対応するコネクタ２１２Ａ，２１２Ｂ及び２１３Ａ，２１３Ｂそれぞれを介して、ルートコンプレックス２０６Ａ，２０６Ｂそれぞれと通信してもよい。
【００２６】
図２Ｂに示されるように、一部の場合には、ホストシステム２０２が、複数のルートコンプレックス２０６Ａ，２０６Ｂを含むとき、クアッドＰＨＹ２４０Ａ，２４０Ｂ及びＰＣＩｅコア２４２Ａ，２４２Ｂの一部は、活用されない又は全てが活用されなくてもよい。例えば、図２ＢのクアッドＰＨＹ２４０Ａのピン０及び１は、コネクタ２１２Ａ，２１２Ｂを通信されてもよいが、ピン２及び３は、未接続のままであってもよく、又は終端されてもよい。同様に、クアッドＰＨＹ２４０Ｂのピン２及び３は、未接続のままであってもよく、又は終端されてもよい。更に、４つの接続は、クアッドＰＨＹ２４０Ａ，２４０ＢとＰＣＩｅコア２４２Ａ，２４２Ｂとで図２Ｂに示されているが、接続の２つのみが使用されてもよい。一部の実施形態では、２つの接続のみがクアッドＰＨＹ２４０Ａ，２４０ＢとＰＣＩｅコア２４２Ａ，２４２Ｂとで形成されてもよい。このような場合には、クアッドＰＨＹ２４０Ａ，２４０Ｂ及びＰＣＩｅコア２４２Ａ，２４２Ｂの残りの容量と関連付けられるポート及び／又は機能ブロックは、停止される又は終端される、又は動作可能にする、又は機能してもよいが、使用されない。図示されないが、ホストインターフェース１１０と同様に、ホストインターフェース２１０は、ホストプロセッサを含んでもよい。
【００２７】
特定の実施形態では、複数のルートコンプレックスを含むホストシステム２０２でホストインターフェース２１０が使用されることができることにより、エネルギー、空間及び金銭のような無駄なリソースをもたらす場合がある。更に、一部の場合には、クアッドＰＨＹを用いることにより、ホストインターフェース２１０のアプリケーションに対して柔軟性が低下する。低下した柔軟性及び無駄なリソースに対する１つの解決手段は、ホストインターフェースで異なるサイズのＰＨＹを使用することである。例えば、クアッドＰＨＹに代えてデュアルＰＨＹを用いること、又はクアッドＰＨＹと組み合わせることにより、無駄なリソースの量を低減し、ホストインターフェースの柔軟性を増大することができる。代替のホストインターフェースの例は、図３及び５について以下に示される。
【００２８】
デュアルＰＨＴを有するホストインターフェースの例
図３は、１つ又は２つのルートコンプレックス（例えば、ルートコンプレックス２０６Ａ，  ２０６Ｂ）で用いられてもよいデュアル物理インターフェース（デュアルＰＨＹｓ）３４０Ａ，  ３４０Ｂを有するホストインターフェース３１０の例を示すブロック図である。ホストインターフェース３１０は、ホストインターフェース２１０と同様の機能を含んでもよい。例えば、ホストインターフェース２１０と同様に、ホストインターフェース３１０は、２つのルートコンプレックスと２つのＰＣＩｅコアとの通信を可能にする。
【００２９】
一般的には、ホストインターフェース２１０は、単一のルートコンプレックスで使用されない。ホストインターフェース２１０が単一のルートコンプレックスで使用される場合には、ホストインターフェース２１０は、（例えば、コネクタ２１２Ａ，２１２Ｂを介して）２つのＰＣＩｅレーンに限定されてもよい。しかし、ホストインターフェース３１０は、単一のルートコンプレックスを含むホストで使用されてもよい。更に、ホストインターフェース３１０は、コネクタ３１２Ａ，３１２Ｂ，３１３Ａ，３１３Ｂを介して４つのＰＣＩｅレーンへのアクセスを有する単一のルートコンプレックスを有するホスト（例えば、ホスト１０２）を提供してもよい。
【００３０】
ホストインターフェース３１０は、コネクタ３１２を介してホストの１以上のルートコンプレックスと通信されてもよい。図３に示されるように、コネクタ３１２は、差動入力／出力コネクタであってもよい。コネクタ２１２と同様に、コネクタ３１２は、２対のコネクタ、つまり、コネクタ３１２Ａ，３１２Ｂ及びコネクタ３１３Ａ，３１３Ｂに分割されてもよい。
【００３１】
更に、コネクタ２１２と同様に、コネクタ３１２Ａ，３１２Ｂ及び３１３Ａ，３１３Ｂの各対は、異なるルートコンプレックス（例えば、ルートコンプレックス２０６Ａ，２０６Ｂ）と通信するように構成される、又は関連付けられてもよい。すなわち、一部の場合には、コネクタ３１２Ａ，３１２Ｂ及び３１３Ａ，３１３Ｂの各対は、異なるルートコンプレックス２０６Ａ，２０６Ｂからの信号を受信し、異なるルートコンプレックス２０６Ａ，２０６Ｂへ信号を送信するように構成されてもよい。更に、図３に示されるように、コネクタ３１２Ａ，３１２Ｂ及び３１３Ａ，３１３Ｂの各対は、異なるデュアルＰＨＹ３４０Ａ，３４０Ｂと通信してもよい。コネクタ３１２Ａ，３１２Ｂは、デュアルＰＨＹ３４０Ａと通信してもよく、コネクタ３１３Ａ，３１３Ｂは、デュアルＰＨＹ３４０Ｂと通信してもよい。
【００３２】
ホストインターフェース２１０と同様に、ホストインターフェース３１０は、一対のＰＣＩｅコア３４２Ａ，３４２Ｂを含んでもよい。図示された実施形態では、ＰＣＩｅコア３４２Ａは、一部の場合には、４つのコネクタ３１２Ａ，３１２Ｂ，３１３Ａ，３１３Ｂからの、ホストインターフェース３１０で受信される信号を処理することができるｘ４  ＰＣＩｅコア３４２Ａである。更に、ＰＣＩｅコア３４２Ｂは、一部の場合には、２つのコネクタ３１３Ａ，３１３Ｂからの、ホストインターフェース３１０で受信される信号を処理することができるｘ２  ＰＣＩｅコアである。図３に示される例のＰＣＩｅコア３４２Ａ，３４２Ｂは、ホストインターフェース３１０が、ｘ４  ＰＣＩｅコアにアクセスする単一のルートコンプレックス、又は別のＰＣＩｅコアにそれぞれアクセス可能な２つのルートコンプレックスをサポート可能となるように選択されている。
【００３３】
有利には、特定の実施形態では、ホストインターフェース３１０が、１つのルートコンプレックスを含むホストシステム及び２つのルートコンプレックスを含むホストシステムの両方で用いられうるため、ホストインターフェース３１０は、ホストインターフェース２１０よりも優れた柔軟性を提供する。更に、単一のルートコンプレックスを含むホストシステムで用いられるとき、ホストインターフェース３１０は、ルートコンプレックスが、ｘ４  ＰＣＩｅコアの４つのレーンを使用することを可能にする。また、ホストインターフェース３１０は、小さなＰＨＹを使用することにより、ホストインターフェース２１０よりもリソースの損失を少なくすると共に、ホストインターフェース２１０よりも優れた機能性及び柔軟性をサポートする。
【００３４】
図３は、単一のルートコンプレックス及びデュアルルートコンプレックスホストシステムの両方をサポートしつつ、最小限の数及びサイズのＰＣＩｅコアを使用するホストインターフェースの構成の一例を示す。しかし、他の構成も可能である。例えば、ＰＣＩｅコア３４２Ａ，３４２Ｂの両方がｘ４  ＰＣＩｅコアであってもよい。第２の例として、ＰＣＩｅコア３４２Ａは、ｘ４  ＰＣＩｅコアであってもよく、ＰＣＩｅコア３４２Ｂは、ｘ８  ＰＣＩｅコアであってもよい。
【００３５】
各デュアルＰＨＹ３４０Ａ，３４０Ｂは、クロックマルチプライヤユニット（ｃｌｏｃｋ  ｍｕｌｔｉｐｌｉｅｒ  ｕｎｉｔ（ＣＭＵ））３５０Ａ，３５０Ｂを含む。ＣＭＵ３５０Ａ，３５０Ｂは、ホストインターフェース３１０の外部から受信されたクロック信号、又はデュアルＰＨＹ３４０Ａ，３４０Ｂの外部から受信されたクロック信号を変更することが可能な任意のシステムを含みうる。例えば、クロック信号は、ホストインターフェース３１０へのピン入力（図示せず）から受信されてもよい。第２の例として、クロック信号は、外部ソースから又はクロック生成器からコントローラで受信され、ホストインターフェース３１０へ提供されてもよい。クロック信号が受信されることに関わらず、ＣＭＵ３５０Ａ，３５０Ｂは、クロック信号の周波数を増加又は減少することによりクロック信号を変更してもよい。一部の実施形態では、ＣＭＵ３５０Ａ，３５０Ｂは、省略及び／又は作動しなくてもよい。
【００３６】
ホストインターフェース３１０は、また、デュアルＰＨＹ３４０Ａ，３４０Ｂに提供されるクロック信号を同期するように構成されるシンクロナイザー３５２又はシンクを含んでもよい。一部の実施形態では、シンクロナイザー３５２は、ＣＭＵ３５０Ａ，３５０Ｂを制御することによりデュアルＰＨＹ３４０Ａ，３４０Ｂに提供されるクロック信号を同期してもよい。ＣＭＵ３５０Ａ，３５０Ｂを制御することは、ＣＭＵ３５０Ａ，３５０Ｂの動作を同期することを含んでもよい。それに代えて、シンクロナイザー３５２は、デュアルＰＨＹ３４０Ａ，３４０Ｂの両方に対するクロック信号を変更するためにＣＭＵ（例えば、ＣＭＵ３５２Ａ）を選択すること、及び選択されないＣＭＵ（例えば、ＣＭＵ３５２Ｂ）を停止することにより、クロック信号を同期してもよい。一部の場合には、同期されたクロック信号は、ＰＣＩｅコア３４２Ａ，３４２Ｂ及びホストプロセッサ３１６のようなホストインターフェース３１０に含まれる他のデバイスに提供されてもよい。一部の実施形態では、シンクロナイザー３５２は、省略及び／又は作動しなくてもよい。例えば、ホストシステムが２つのルートコンプレックスを含む場合、各ルートコンプレックスが、コマンド／データを非同期的に提供するときに、クロック信号の同期は不要となってもよい。しかし、一部の場合には、複数のルートコンプレックスを互いに非同期的に機能するにもかかわらず、シンクロナイザー３５２は、不揮発性ソリッドステートメモリアレイの同期メモリアクセスコマンドを維持するために、クロック信号及び／又はＣＭＵ３５０Ａ，３５０Ｂを同期してもよい。
【００３７】
更に図３を参照すると、ホストインターフェース３１０は、１以上のセレクタ及び／又はマルチプレクサ３６０Ａ，３６０Ｂを含んでもよい。セレクタ３６０Ａ，３６０Ｂは、デュアルＰＨＹ３４０Ａ，３４０Ｂから受信された信号を、それぞれ、選択されたＰＣＩｅコア３４２Ａ，３４２Ｂへ向ける。図３に示されるように、デュアルＰＨＹ３４０Ｂから受信された信号は、セレクタ３６０Ｂで受信される、ホストプロセッサ３１６からのセレクタ信号に少なくとも部分的に基づいて、ＰＣＩｅコア３４２Ａ又はＰＣＩｅコア３４２Ｂのいずれかに提供されてもよい。デュアルＰＨＹ３４０Ａからの信号は、ＰＣＩｅコア３４２Ａへ提供されてもよい。
【００３８】
セレクタ３６０ＡとＰＣＩｅコアとの単一接続によって図示されるように、一部の場合には、デュアルＰＨＹ  ３４０Ａからの信号は、セレクタ信号に関わらず、ＰＣＩｅコア３４２Ａへ提供される。このような場合には、ホストプロセッサ３１６は、セレクタ３６０Ａと通信しなくてもよい。更に、一部のこのような場合には、ホストインターフェース３１０は、セレクタ３６０Ａを含まなくてもよい。しかし、他の場合には、図３に示されるように、セレクタ３６０Ａは、ＰＣＩｅコアのセットからの選択の規模に関わらず、含まれる。有利には、特定の実施形態では、セレクタ３６０Ａを含むことにより、ホストインターフェース３１０が、ＰＨＹ３４０ＡとＰＣＩｅコア３４２Ａとの間、及びＰＨＹ３４０ＢとＰＣＩｅコア３４２Ｂとの間で等しい又は実質的に等しい通信レイテンシを維持することが可能となる。一部の他の実施形態では、セレクタ３６０Ａは、レイテンシブロックによって置き換えられてもよく、レイテンシブロックは、セレクタ３６０ＢによってデュアルＰＨＹ３４０ＢとＰＣＩｅコア３４２Ａ，３４２Ｂとの間の信号経路に導入されるような、等しい又は実質的に等しい量のレイテンシを提供するように構成される１以上の遅延エレメント（例えば、フリップフロップ）から形成されてもよい。
【００３９】
ホストプロセッサ３１６は、予めインストールされた又は予め構成されたファームウェアに基づいてセレクタ３６０Ａ，３６０Ｂに選択信号を生成又は提供してもよい。一部の場合には、ホストインターフェース３１０へ提供される外部信号は、セレクタ３６０Ａ，３６０Ｂへセレクタ信号として提供されてもよい。それに代えて、外部信号は、セレクタ信号を決定するために、ホストプロセッサ３１６によって用いられてもよい。一部の実施形態では、セレクタ信号は、ホストインターフェース３１０とホストシステムとの通信に応じて自動的に決定されてもよい。例えば、ホストシステムが１以上のルートコンプレックスを含む場合、ホストプロセッサ３１６は、デュアルＰＨＹ３４０Ｂから受信された信号をセレクタにＰＣＩｅコア３４２Ａへ提供させるセレクタ信号をセレクタ３６０Ｂへ提供してもよい。それに代えて、ホストシステムが２つのルートコンプレックスを含む場合、ホストプロセッサ３１６は、デュアルＰＨＹ３４０Ｂから受信された信号をセレクタにＰＣＩｅコア３４２Ｂへ提供させるセレクタ信号をセレクタ３６０Ｂへ提供してもよい。一部の場合には、ホストインターフェース３１０は、予め構成される。このような場合には、ＰＨＹから信号を受信するＰＣＩｅコアは、動作時に変更しない。
【００４０】
一部のこのような場合には、ホストに含まれるルートコンプレックスの数に関わらず、セレクタ信号は、変更しないであろう。例えば、ホストインターフェース３１０が、２つのルートコンプレックスを含むホストと使用するために予め設定されることとする。このような場合には、１つのルートコンプレックスから受信された信号は、デュアルＰＨＹ３４０Ａ、その後、セレクタ３６０Ａを介してＰＣＩｅコア３４２Ａへのコネクタ３１２Ａ，３１２Ｂへ通信されるであろう。同様に、第２のルートコンプレックスから受信された信号は、デュアルＰＨＹ３４０Ｂ、その後、セレクタ３６０Ｂを介してＰＣＩｅコア３４２Ｂへのコネクタ３１３Ａ，３１３Ｂへ通信されるであろう。上記の例に続いて、単一のルートコンプレックスを有するホストは、ホストインターフェース３１０を有するＳＳＤに接続されることとする。このような場合には、コネクタ３１２Ａ，３１２Ｂは、ルートコンプレックスからの信号を受信してもよいが、コネクタ３１３Ａ，３１３Ｂは、信号を受信しなくてもよく、デュアルＰＨＹ３４０Ｂ及びＰＣＩｅコア３４２Ｂは、使用されなくてもよい。他の場合には、ＰＨＹ３４０Ａ，３４０Ｂ及びＰＣＩｅコア３４２Ａ，３４２Ｂは、単一のルートコンプレックスからの命令及びデータを受信してもよい。
【００４１】
ＰＣＩｅカードの例
本開示の実施形態は、ここまで、ソリッドステートドライブのようなストレージデバイスについて説明されてきた。しかし、本開示は、このような場合に限定されない。本開示は、ＰＣＩｅカードのような他のＰＣＩｅベースのカード（例えば、ＰＣＩｅグラフィックスカード、ＰＣＩｅネットワークカード、ＰＣＩｅ  ＵＳＢカード等）に適用されうる。図４は、ｘ８  ＰＣＩｅリンクを介してＰＣＩｅカード４０４と通信するホストシステム４０２の例を示すブロック図である。
【００４２】
ストレージデバイス１０４と同様に、ＰＣＩｅカード４０４は、ホストシステム４０２のルートコンプレックス４０６と通信するＳｏＣ４０８を含んでもよい。ＳｏＣ４０８は、ＳｏＣ１０８と同様に構成されてもよい。すなわち、ＳｏＣ４０８は、ホストインターフェース及びコントローラを含んでもよく、ＰＣＩｅカードの種類に基づいて、メモリコントローラであってもよく、又はメモリコントローラでなくてもよい。更に、ＳｏＣのホストインターフェースは、異なるサイズのＰＨＹを用いるように構成されてもよく、これにより、ＰＣＩｅカード４０４を、複数のルートコンプレックスを含む他のホストシステムで使用することが可能となる。複数のルートコンプレックスで使用されてもよいＰＣＩｅカード４０４のＳｏＣ４０８のためのホストインターフェースの例は図５に示される。
【００４３】
ＰＣＩｅカードのためのホストインターフェースの例
図５は、１つ又は２つのルートコンプレックスで用いられてもよいデュアルＰＨＹ５４０Ａ，５４０ＢとクアッドＰＨＹ５４０Ｃとの組み合わせを有するホストインターフェース５１０の例を示すブロック図である。ホストインターフェース５１０は、ホストインターフェース３１０，２１０と同様の機能を含んでもよい。例えば、ホストインターフェース２１０，３１０と同様に、ホストインターフェース５１０は、２つのルートコンプレックスと２つのＰＣＩｅコアとの通信を可能にする。
【００４４】
更に、前述されたホストインターフェースと同様に、ホストインターフェース５１０は、コネクタ５１２のセットを介して１以上のルートコンプレックスと通信してもよい。コネクタ５１２は、ホストシステムのルートコンプレックスの数及び／又はホストインターフェース５１０に含まれるＰＨＹの数に基づいてコネクタのセットの個数に分割されてもよい。例えば、コネクタ５１２は、デュアルＰＨＹ５４０Ａと関連付けられるコネクタ５１２Ａ，５１２Ｂと、デュアルＰＨＹ５４０Ｂと関連付けられるコネクタ５１３Ａ，５１３Ｂと、を含んでもよい。コネクタ５１２Ａ，５１２Ｂの対及びコネクタ５１３Ａ，５１３Ｂの対のいずれも第１のルートコンプレックスと通信するように構成されてもよい。クアッドＰＨＹ５４０Ｃと関連付けられてもよいコネクタ５１４Ａ‐５１４Ｄは、第２のルートコンプレックスと通信するように構成されてもよい。それに代えて、コネクタ５１２Ａ，５１２Ｂ，５１３Ａ，５１３Ｂ，５１４Ａ‐５１４Ｄは、単一のルートコンプレックスと通信するように構成されてもよい。
【００４５】
更に、ホストインターフェース５１０は、ホストインターフェース２１０，３１０について前述されたコンポーネントの一部又は全部を含んでもよい。例えば、図５に示されるように、ホストインターフェース５１０は、デュアル５４０Ａ，５４０Ｂ及びクアッドＰＨＹ５４０Ｃを含む複数のＰＨＹを含んでもよい。各ＰＨＹ５４０Ａ，５４０Ｂ，５４０Ｃは、それぞれ、ＣＭＵ５５０Ａ，５５０Ｂ，５５０Ｃを含んでもよい。ＣＭＵ５５０Ａ‐５５０Ｃは、ＰＨＹ５４０Ａ‐５４０Ｃのそれぞれで受信されるクロック信号を逓倍又は変更するように構成されてもよい。ホストインターフェース３１０と同様に、ＣＭＵ５５０Ａ‐５５０Ｃの一部又は全部は、ホストシステム及び／又はマスターＣＭＵとして選択されるＣＭＵのルートコンプレックスの個数のような複数の要因に基づいて、アクティブとなる又はアクティブとならなくてもよい。マスターＣＭＵは、各ＰＨＹに対するクロック信号の、変更又は逓倍を制御してもよい。一部の場合には、残りのＣＭＵは、アクティブでなくてもよい。他の場合には、残りのＣＭＵは、マスターＣＭＵからの命令に基づいて、対応するＰＨＹのためのクロック信号を変更するスレーブＣＭＵであってもよく、それ自体が命令を受信する又はシンクロナイザーによって制御される。
【００４６】
ホストインターフェース３１０と同様に、ホストインターフェース５１０は、ＰＨＹ５４０Ａ‐５４０Ｃで受信されるクロック信号を同期するためのシンクロナイザー５５２Ａ，５５２Ｂを含んでもよい。図５には２つのシンクロナイザーが示されるが、一部の実施形態では、ホストインターフェース５１０は、ＣＭＵ５５０Ａ‐５５０Ｃの一部又は全部、及び／又はＰＨＹ５４０Ａ‐５４０Ｃで受信されるクロック信号を同期するように構成されてもよい単一のシンクロナイザーを含んでもよい。シンクロナイザーは、シンクロナイザー３５２について前述されたプロセスの一部又は全部を用いて、ＣＭＵ５５０Ａ‐５５０Ｃ及び／又はＰＨＹ５４０Ａ‐５４０Ｃのクロック信号を同期しうる。例えば、シンクロナイザー５５２Ａ，５５２Ｂは、単一のルートコンプレックスがホストシステムで使用されるとき、３つのＰＨＹ５４０Ａ‐５４０Ｃの全てのクロック信号を同期してもよい。それに代えて、２つのルートコンプレックスがホストシステムに含まれるときのような一部の場合には、ルートコンプレックス５５２Ａは、ＰＨＹ５４０Ａ，５４０Ｂのクロック信号を同期してもよい。このような一部の場合には、シンクロナイザー５５２Ｂは、ＰＨＹ５４０ＣのＣＭＵ５５０Ｃを制御してもよい。それに代えて、シンクロナイザー５５２Ｂは、アクティブでなくてもよい。
【００４７】
図５を更に参照すると、ホストシステム５１０は、一対のＰＣＩｅコア５４２Ａ，５４２Ｂを含んでもよい。２つのＰＣＩｅコア５４２Ａ，５４２Ｂを含むことにより、ホストインターフェース５１０を含むＰＣＩｅカード（又はＳＳＤカード）は、１つ又は２つのルートコンプレックスを含むシステムで使用されうる。一部の実施形態では、ホストインターフェース５１０は、別の個数のＰＣＩｅコアを含むように構成されてもよい。例えば、ホストインターフェース５１０は、３つのＰＣＩｅコアで構成されることができ、これにより、ホストインターフェース５１０を、３つのルートコンプレックスを含むホストで使用されることを可能にする。このような例示的な構成では、セレクタの１以上は、３つのＰＣＩｅコアの間から選択するように構成されてもよい。更に、ＰＣＩｅコア５４２Ａ，５４２Ｂが、それぞれ、ｘ４及びｘ８コアとして示されるが、他のサイズのコアも可能である。例えば、ＰＣＩｅコア５４２Ａ，５４２Ｂのいずれもｘ８コアでありうる。
【００４８】
前述したように、ホストインターフェース５１０は、複数のセレクタ５６０Ａ，５６０Ｂを含んでもよく、複数のセレクタ５６０Ａ，５６０Ｂは、制御信号に基づいてＰＣＩｅコア５４２Ａ，５４２Ｂの間から選択してもよく、制御信号は、ホストプロセッサ５１６又は外部制御信号から受信されてもよい。更に、ホストインターフェース５１０は、セレクタ５６０Ａ，５６０Ｂによって提供されるようにクアッドＰＨＹ５５０とＰＣＩｅコア５４２Ｂとの間の同一又は実質的に同様なレイテンシを提供するように構成されるレイテンシユニット５６２を含んでもよい。一部の場合には、レイテンシユニット５６２は、信号にレイテンシを追加又は制御しうる任意のコンポーネント又はデバイスを含んでもよい。例えば、レイテンシユニットは、１以上のフリップフロップ又はラッチを含んでもよい。一部の実施形態では、図３について説明されたように、レイテンシユニット５６２は、単一のＰＣＩｅコアから選択する、又はその選択機能がアクティブにされないセレクタであってもよい。
【００４９】
図示されないが、一部の実施形態では、レイテンシユニット５６２は、セレクタ５６０Ａ，５６０Ｂの１以上によって導入されるレイテンシと一致するレイテンシを維持するレイテンシユニット５６２を促進するための制御信号又は他の信号を受信してもよい。この制御信号又は他の信号は、ホストプロセッサ５１６又はそれ以外によって提供されてもよい。一部の場合には、レイテンシユニットは、１又はセレクタの前又は後からの信号を受信し、レイテンシユニットを適切なレイテンシに決定し、クアッドＰＨＹ５４０Ｃから受信された信号に適用してもよい。例えば、レイテンシユニットが、セレクタ５６０Ｂに提供される前述の命令が、ＰＣＩｅコア５４２Ｂへセレクタ５４０Ｂを通過する４つのクロックサイクルを取ることを決定する場合、レイテンシユニット５６２は、４つのクロックサイクルのレイテンシを、クアッドＰＨＹ５４０Ｃから受信される信号へ導入してもよい。
【００５０】
結論
開示されるシステム及び方法は、ホストインターフェースを複数の用途で使用可能にする。ホストインターフェースは、ＰＣＩｅベースのソリッドステートドライブ及び／又はＰＣＩｅカードを、プロセッサ及び／又はルートコンプレックスの数が変化するホストで使用されることを可能にする複数のＰＨＹサイズ及び構成を含みうる。更に、ホストインターフェースは、ＰＣＩｅベースのソリッドステートドライブ及び／又はＰＣＩｅカードを、プロセッサ及び／又はルートコンプレックスの数が変化するホストで使用されることを可能にするサイズ及び構成が変化する複数のＰＣＩｅコアを含みうる。よって、柔軟性の増加及びコスト（例えば、金銭的コスト、エネルギーコスト、スペースコスト）の低減は、異なるＳＳＤ及びＰＣＩｅカード用途及び構成を設計及び製造するために得られる。
【００５１】
他の変形例
一部の実施形態では、他のアプローチ及び方法が使用されうることを当業者は理解するであろう。例えば、一部の実施形態では、各ＰＨＹは、その独自のＰＣＩｅコアと関連付けられてもよく、複数のＰＨＹは、単一のルートコンプレックスと関連付けられてもよい。このような場合には、セレクタは、オプションであってもよい。追加システムコンポーネントが使用されることができ、開示されたシステムコンポーネントが組み合わせられる又は省略されることができる。実施形態に応じて、上述されたステップのうちのあるステップが削除され、他のステップが追加されてもよい。
【００５２】
特定の実施形態が記載されたが、これらの実施形態は例示のためにのみ提供されたものであり、本開示の保護の範囲を限定することを意図しない。実際に、本稿に記載の新規な方法及びシステムは他の多様な形態で実施され得る。更に、本稿に記載の方法及びシステムの形態の様々な省略、置換、及び変更が、保護の精神から逸脱することなく加えられ得る。添付の請求の範囲及びその等価物は、このような形態又は変形をも、本開示の精神及び範囲に含まれるものとして包含するよう意図されている。各種実施形態では、実際の物理及びロジック構造は、図面に示されるものとは異なることを当業者は理解するであろう。実施形態に応じて、上述された例及びプロセスにおいて説明された特定のステップが異なる順序で実行されてもよく、削除されてもよく、他のステップが追加されてもよい。更に、上述した特定の実施形態の機能及び属性は、異なる方法で組み合わせられて追加の実施形態を成立し得て、その全てが、本開示の範囲に包含される。本開示は特定の好適な実施形態及び応用を提供しているが、本稿に記載の全ての機能及び利点を提供しない実施形態を含む、当業者にとって明白なその他の実施形態も、本開示の範囲に包含される。したがって、本開示の範囲は、添付の請求の範囲を参照することによってのみ定義されるように意図される。
【図１Ａ】
2016526716.tif 000003
【図１Ｂ】
2016526716.tif 000004
【図１Ｃ】
2016526716.tif 000005
【図２Ａ】
2016526716.tif 000006
【図２Ｂ】
2016526716.tif 000007
【図３】
2016526716.tif 000008
【図４】
2016526716.tif 000009
【図５】
2016526716.tif 000010
【国際調査報告】
2016526716.tif 000011
2016526716.tif 000012
2016526716.tif 000013
2016526716.tif 000014
2016526716.tif 000015
2016526716.tif 000016
2016526716.tif 000017