(57)【要約】      （修正有）【課題】２つのシステムが、独立した２つのシステムを可能とするための、インターフェース接続可能とするための十分なハードウェア及び／又はソフトウェアを提供する。【解決手段】ＰＣＩｅファブリック１００は、ＩＯ層スイッチ１０８Ａ、１０８Ｂと、ハブ層スイッチ１０６Ａ、１０６Ｂと、ターゲットデバイスと、を含む。ＩＯ層スイッチは、ＴＬＰをクライアントから受け取り、ＴＬＰ内のアドレスが第１のＩＯ層スイッチ内のいずれのマルチキャスト・アドレス範囲とも対応付けられず、第１のＩＯ層スイッチ内のいずれの下りポートとも対応付けられない決定に基づき、ＴＬＰを、第１のハブ層スイッチにＩＯ層スイッチ内の上りのポートを介してルーティングする。ハブ層スイッチは、ＴＬＰがマルチキャストグループと対応付けられる決定に基づき、書き換えられたＴＬＰを生成し、ターゲットデバイスにハブ層スイッチ上の下りポートを介してルーティングする。【選択図】図１
2015186263.tif 000002
【特許請求の範囲】
【請求項１】
第１のＩＯ層スイッチと第２のＩＯ層スイッチとを備える入出力（Ｉ／Ｏ）層と、
複数のハブ層スイッチを備え、複数のハブ層スイッチが第１のハブ層スイッチと第２のハブ層スイッチとを備え、第１のＩＯ層スイッチが第１のリンクを用いて第１のハブ層スイッチに接続され、第１のＩＯ層スイッチがクロスリンクを用いて第２のハブ層スイッチに接続される、ハブ層と、
各複数のターゲットデバイスが複数のハブ層スイッチの１つに接続され、第１のハブ層スイッチが、第２のリンクを用いて複数のターゲットデバイスの第１のターゲットデバイスに接続され、第１のハブ層スイッチが、第３のリンクを用いて複数のターゲットデバイスの第２のターゲットデバイスに接続される、複数のターゲットデバイスと、を備え、
第１のＩＯ層スイッチは、
トランザクション層パケット（ＴＬＰ）をクライアントから受け取り、
ＴＬＰ内のアドレスが、第１のＩＯ層スイッチ内のいずれのマルチキャスト・アドレス範囲とも対応付けられていないという第１の決定を行い、
ＴＬＰ内のアドレスが、第１のＩＯ層スイッチ内のいずれの下りポートとも対応付けられていないという第２の決定を行い、
第１の決定と第２の決定とに基づき、ＴＬＰを、第１のリンクを用いて、第１のＩＯスイッチ上の第１の上りポートを介して、第１のハブ層スイッチにルーティングするよう構成され、
第１のハブ層スイッチは、
第１のＩＯ層スイッチから、第１の下りポートでＴＬＰを受け取り、
ＴＬＰが第１のマルチキャストグループと対応付けられているという第３の決定を行い、
第３の決定に基づき、
第１の書き換えられたＴＬＰを生成し、第１の書き換えられたＴＬＰを、第１のターゲットデバイスに第２のリンクを用いて第１のハブ層スイッチ上の第２の下りポートを介してルーティングし、第２の下りポートは第１のマルチキャストグループの受信者であるよう構成される、ＰＣＩｅファブリック。
【請求項２】
第１のハブ層スイッチは、
第２の書き換えられたＴＬＰを生成し、第２の書き換えられたＴＬＰを、第１のターゲットデバイスに第３のリンクを用いて第１のハブ層スイッチ上の第３の下りポートを介してルーティングし、第３の下りポートは第１のマルチキャストグループの受信者であるよう、さらに構成される、請求項１に記載の、ＰＣＩｅファブリック。
【請求項３】
第１のハブ層スイッチに第４のリンクを用いて接続され、第４のリンクが、ハブ層スイッチ上の第２の上りポートとプロセッサ上のルート・ポートとの間にある、プロセッサをさらに備え、
ルート・ポートは第２のマルチキャストグループと対応付けられ、
第１のハブ層スイッチは、
第３の決定に基づき、第３の書き換えられたＴＬＰを生成し、第３の書き換えられたＴＬＰを、プロセッサに第３のリンクを用いて第１のハブ層スイッチ上の第２の上りポートを介してルーティングし、第２の上りポートが第１のマルチキャストグループの受信者であるようさらに構成される、請求項１に記載の、ＰＣＩｅファブリック。
【請求項４】
第２のプロセッサをさらに備え、プロセッサと第２のプロセッサとがプロセッサ相互接続を介して動作可能に接続するよう構成される、請求項３に記載の、ＰＣＩｅファブリック。
【請求項５】
第１のＩＯ層スイッチが、
クライアントから、第２のＴＬＰを受け取り、
第２のＴＬＰが第１のＩＯ層スイッチ上の第３の下りポートに関連付られたアドレス範囲内である、アドレスを備える、という第４の決定を行い、
第４の決定に基づき、第２のＴＬＰを第２のハブ層スイッチにクロスリンクを用いて第３の下りポートを介してルーティングするようさらに構成され、
第２のハブ層スイッチが、
第１のＩＯ層スイッチから、第２のＴＬＰを第４の下りポートで受け取り、
第２のＴＬＰが、第２のハブ層スイッチに直接接続するターゲットデバイスと対応付けられる、という第５の決定を行い、
第５の決定に基づき、第２のＴＬＰを、第２のハブ層スイッチに直接接続するターゲットデバイスにルーティングするよう構成される、請求項１に記載の、ＰＣＩｅファブリック。
【請求項６】
第１のＩＯ層スイッチは、
クライアントから、第２のＴＬＰを受け取り、
第２のＴＬＰが、第１のＩＯ層スイッチ上の第３の下りポートに対応付けられたアドレス範囲内であるアドレスを備える、という第４の決定を行い、
第４の決定に基づき、第２のＴＬＰを第２のハブ層スイッチにクロスリンクを用いて第３の下りポートを介してルーティングするようさらに構成され、
第２のハブ層スイッチは、
第１のＩＯ層スイッチから、第２のＴＬＰを第４の下りポートで受け取り、
第２のＴＬＰが第２のマルチキャストグループと対応付けられる、という第５の決定を行い、
第５の決定に基づき、第３の書き換えられたＴＬＰを生成し、第３の書き換えられたＴＬＰを、第３のターゲットデバイスに第４のリンクを用いて第２のハブ層スイッチ上の第５の下りポートを介してルーティングし、第５の下りポートが、第２のマルチキャストグループの受信者であり、第３のターゲットデバイスが、第２のハブ層スイッチに第４のリンクを介して接続されるよう構成される、請求項１に記載の、ＰＣＩｅファブリック。
【請求項７】
第１のＩＯ層スイッチは、
クライアントから、第２のＴＬＰを受け取り、
第２のＴＬＰが第１のマルチキャストグループと対応付けられる、という第３の決定を行い、
第３の決定に基づき、第２の書き換えられたＴＬＰを生成し、第２の書き換えられたＴＬＰを、第１のハブ層スイッチに第１のリンクを用いてルーティングするようさらに構成され、
第１のハブ層スイッチは、
第１のＩＯ層スイッチから、第２の書き換えられたＴＬＰを、第１の下りポートで受け取り、
第２の書き換えられたＴＬＰが、第１のハブ層スイッチに直接接続するターゲットデバイスと対応付けられる、という第５の決定を行い、
第５の決定に基づき、第２の書き換えられたＴＬＰを、第２のハブ層スイッチに直接接続するターゲットデバイスにルーティングするよう構成される、請求項１に記載の、ＰＣＩｅファブリック。
【請求項８】
第１のＩＯ層スイッチ上の第１の上りポートは、プロセッサに直接接続するメモリを除くＰＣＩｅファブリック内のすべてのメモリを含む第１のアドレス範囲と、ＰＣＩｅファブリックに接続するクライアントに対応付けられるすべてのメモリを含む第２のアドレス範囲と、に対応づけられ、第１のアドレス範囲と第２のアドレス範囲とは第１のＩＯ層スイッチで受け取ったＴＬＰパケットをルーティングするために使用される、請求項１に記載の、ＰＣＩｅファブリック。 
【請求項９】
クライアントに対応付けられるすべてのメモリが、永続記憶デバイスと揮発性メモリとから成るグループから選択された少なくとも１つを備える、請求項８に記載の、ＰＣＩｅファブリック。
【請求項１０】
ＰＣＩｅファブリック内のすべてのメモリが、永続記憶デバイスと揮発性メモリとを備えるグループから選択された少なくとも１つを備える、請求項８に記載の、ＰＣＩｅファブリック。
【請求項１１】
第１のハブ層スイッチ上の第２の上りポートが、ＰＣＩｅファブリック内のすべてのスライス内のすべてのメモリを含む第１のアドレス範囲と、ＰＣＩｅファブリックに接続されたクライアントに対応付けられるすべてのメモリを含む第２のアドレス範囲と、に対応付けられ、第１のＩＯ層スイッチと第１のハブ層スイッチとは、ＰＣＩｅファブリック内のスライスの第１のスライス内にあり、第１のスライスはプロセッサに直接接続するメモリを含まず、第１のハブ層スイッチに直接接続しない複数のターゲットデバイスのいずれも含まず、第１のアドレス範囲と第２のアドレス範囲とは、第１のＩＯ層スイッチが受けとったＴＬＰパケットをルーティングするために使用される、請求項１に記載の、ＰＣＩｅファブリック。
【請求項１２】
クロスリンクが、第１のＩＯ層スイッチの第３の下りポートと、第２のハブ層スイッチの下りポートと、を接続する、請求項１に記載の、ＰＣＩｅファブリック。
【請求項１３】
第１のＩＯ層の第３の下りポートが、ＰＣＩｅファブリックのスライス内のメモリを含むアドレス範囲と対応付けられ、ＰＣＩｅファブリックスライス内のメモリは、第２のハブ層スイッチに直接接続する複数のターゲットデバイスを含み、第１のハブ層スイッチに直接接続する複数のターゲットデバイスのいずれも含まない、請求項１２に記載の、ＰＣＩｅファブリック。
【請求項１４】
複数のターゲットデバイスの少なくとも１つが、揮発性メモリと永続記憶デバイスとから成るグループから選択された少なくとも１つを備える、請求項１に記載の、ＰＣＩｅファブリック。
【請求項１５】
複数のターゲットデバイスの少なくとも１つが、ＮＡＮＤフラッシュを備える、請求項１に記載の、ＰＣＩｅファブリック。
【請求項１６】
複数のターゲットデバイスの少なくとも１つが、ネットワークエンドポイントデバイスとエンドポイント記憶デバイスとから成るグループから選択された１つを備える、請求項１に記載の、ＰＣＩｅファブリック。
【請求項１７】
クライアントがＰＣＩｅエンドポイントである、請求項１に記載の、ＰＣＩｅファブリック。
【請求項１８】
第１のＩＯ層スイッチと第１のハブ層スイッチとが、第２のクロスリンクを用いて接続される、請求項１に記載の、ＰＣＩｅファブリック。
【請求項１９】
第１のＩＯ層スイッチがＴＬＰを第１のハブ層スイッチに第２のクロスリンクを用いてルーティングするよう構成される、請求項１８に記載の、ＰＣＩｅファブリック。
【請求項２０】
第２のクロスリンクが、いずれのマルチキャストグループとも対応付けられない、請求項１８に記載の、ＰＣＩｅファブリック。
【請求項２１】
第２のクロスリンクが、第１のＩＯ層スイッチ上の第１の下りポートと、第１のハブ層スイッチ上の第３の下りポートと、に接続される、請求項１８に記載の、ＰＣＩｅファブリック。
【請求項２２】
第１のＩＯ層スイッチと第２のＩＯ層スイッチとを備える入出力（Ｉ／Ｏ）層と、
複数のハブ層スイッチを備え、複数のハブ層スイッチが第１のハブ層スイッチと第２のハブ層スイッチとを備え、第１のＩＯ層スイッチが第１のリンクを用いて第１のハブ層スイッチに接続され、第１のＩＯ層スイッチがクロスリンクを用いて第２のハブ層スイッチに接続される、ハブ層と、を備え、
ＰＣＩｅファブリックは、複数のターゲットデバイスと動作可能に接続され、各複数のターゲットデバイスが複数のハブ層スイッチの１つに接続され、第１のハブ層スイッチが、第２のリンクを用いて複数のターゲットデバイスの第１のターゲットデバイスに接続され、第１のハブ層スイッチが、第３のリンクを用いて複数のターゲットデバイスの第２のターゲットデバイスに接続され、
第１のＩＯ層スイッチは、
トランザクション層パケット（ＴＬＰ）をクライアントから受け取り、
ＴＬＰ内のアドレスが、第１のＩＯ層スイッチ内のいずれのマルチキャスト・アドレス範囲とも対応付けられていないという第１の決定を行い、
ＴＬＰ内のアドレスが、第１のＩＯ層スイッチ内のいずれの下りポートとも対応付けられていないという第２の決定を行い、
第１の決定と第２の決定とに基づき、ＴＬＰを、第１のリンクを用いて、第１のＩＯスイッチ上の第１の上りポートを介して、第１のハブ層スイッチにルーティングするよう構成され、
第１のハブ層スイッチは、
第１のＩＯ層スイッチから、第１の下りポートでＴＬＰを受け取り、
ＴＬＰが第１のマルチキャストグループと対応付けられているという第３の決定を行い、
第３の決定に基づき、
第１の書き換えられたＴＬＰを生成し、第１の書き換えられたＴＬＰを、第１のターゲットデバイスに第２のリンクを用いて第１のハブ層スイッチ上の第２の下りポートを介してルーティングし、第２の下りポートは第１のマルチキャストグループの受信者であるよう構成される、ＰＣＩｅファブリック。
【請求項２３】
第１のＩＯ層スイッチが、
クライアントから、第２のＴＬＰを受け取り、
第２のＴＬＰが第１のＩＯ層スイッチ上の第３の下りポートに関連付られたアドレス範囲内である、アドレスを備えるという第４の決定を行い、
第４の決定に基づき、第２のＴＬＰを第２のハブ層スイッチにクロスリンクを用いて第３の下りポートを介してルーティングするようさらに構成され、
第２のハブ層スイッチが、
第１のＩＯ層スイッチから、第２のＴＬＰを第４の下りポートで受け取り、
第２のＴＬＰが、第２のハブ層スイッチにに直接接続するターゲットデバイスと対応付けられる、という第５の決定を行い、
第５の決定に基づき、第２のＴＬＰを、第２のハブ層スイッチに直接接続するターゲットデバイスにルーティングするよう構成される、請求項２２に記載の、ＰＣＩｅファブリック。
【請求項２４】
第１のＩＯ層スイッチは、
クライアントから、第２のＴＬＰを受け取り、
第２のＴＬＰが、第１のＩＯ層スイッチ上の第３の下りポートに対応付けられたアドレス範囲内であるアドレスを含む、という第４の決定を行い、
第４の決定に基づき、第２のＴＬＰを第２のハブ層スイッチにクロスリンクを用いて第３の下りポートを介してルーティングするようさらに構成され、
第２のハブ層スイッチは、
第１のＩＯ層スイッチから、第２のＴＬＰを第４の下りポートで受け取り、
第２のＴＬＰが第２のマルチキャストグループと対応付けられる、という第５の決定を行い、
第５の決定に基づき、第３の書き換えられたＴＬＰを生成し、第３の書き換えられたＴＬＰを、第３のターゲットデバイスに第４のリンクを用いて第２のハブ層スイッチ上の第５の下りポートを介してルーティングし、第５の下りポートが、第２のマルチキャストグループの受信者であり、第３のターゲットデバイスが、第２のハブ層スイッチに第４のリンクを介して接続されるよう構成される、請求項２２に記載の、ＰＣＩｅファブリック。
【請求項２５】
第１のＩＯ層スイッチは、
クライアントから、第２のＴＬＰを受け取り、
第２のＴＬＰが第１のマルチキャストグループと対応付けられる、という第３の決定を行い、
第３の決定に基づき、第２の書き換えられたＴＬＰを生成し、第２の書き換えられたＴＬＰを、第１のハブ層スイッチに第１のリンクを用いてルーティングするようさらに構成され、
第１のハブ層スイッチは、
第１のＩＯ層スイッチから、第２の書き換えられたＴＬＰを、第１の下りポートで受け取り、
第２の書き換えられたＴＬＰが、第１のハブ層スイッチに直接接続するターゲットデバイスと対応付けられる、という第５の決定を行い、
第５の決定に基づき、第２の書き換えられたＴＬＰを、第２のハブ層スイッチに直接接続するターゲットデバイスにルーティングするよう構成される、請求項２２に記載の、ＰＣＩｅファブリック。
【発明の詳細な説明】
【技術分野】
【０００１】
背景
２つのシステムが、通信する独立した２つのシステムを可能とするために、それぞれのシステムは、２つのシステムがインターフェース接続可能とするための十分なハードウェアおよび／またはソフトウェアを含む必要がある。
【発明の概要】
【課題を解決するための手段】
【０００２】
概要
一般的に、１つの局面では、本発明は、第１のＩＯ層スイッチと第２のＩＯ層スイッチとを備える入出力（Ｉ／Ｏ）層と、複数のハブ層スイッチを備えるハブ層であって、複数のハブ層スイッチが第１のハブ層スイッチと第２のハブ層スイッチとを備え、第１のＩＯ層スイッチが第１のリンクを用いて第１のハブ層スイッチに接続され、第１のＩＯ層スイッチがクロスリンクを用いて第２のハブ層スイッチに接続される、ハブ層と、を備えるＰＣＩｅファブリックに関する。ＰＣＩｅファブリックは、複数のターゲットデバイスをさらに備え、各ターゲットデバイスは複数のハブ層スイッチの１つに接続され、第１のハブ層スイッチが、第２のリンクを用いて複数のターゲットデバイスの第１のターゲットデバイスに接続され、第１のハブ層スイッチが、第３のリンクを用いて複数のターゲットデバイスの第２のターゲットデバイスに接続される。第１のＩＯ層スイッチは、トランザクション層パケット（ＴＬＰ）をクライアントから受け取り、ＴＬＰ内のアドレスが、第１のＩＯ層スイッチ内のいずれのマルチキャスト・アドレス範囲とも対応付けられていないという第１の決定を行い、ＴＬＰ内のアドレスが、第１のＩＯ層スイッチ内のいずれの下りポートとも対応付けられていない、という第２の決定を行い、第１の決定と第２の決定とに基づき、ＴＬＰを、第１のリンクを用いて、第１のＩＯ層スイッチ上の第１の上りポートを介して、第１のハブ層スイッチにルーティングするよう構成される。第１のハブ層スイッチは、第１のＩＯ層スイッチから、第１の下りポートでＴＬＰを受け取り、ＴＬＰが第１のマルチキャストグループと対応付けられている、という第３の決定を行い、第３の決定に基づき、第１の書き換えられたＴＬＰを生成し、第１の書き換えられたＴＬＰを、第１のターゲットデバイスに第２のリンクを用いて第１のハブ層スイッチ上の第２の下りポートを介してルーティングし、第２の下りポートは第１のマルチキャストグループの受信者であるよう構成される。
【０００３】
一般的に、１つの局面では、本発明は、第１のＩＯ層スイッチと第２のＩＯ層スイッチとを備える入出力（Ｉ／Ｏ）層と、複数のハブ層スイッチを備え、複数のハブ層スイッチが第１のハブ層スイッチと第２のハブ層スイッチとを備え、第１のＩＯ層スイッチが第１のリンクを用いて第１のハブ層スイッチに接続され、第１のＩＯ層スイッチがクロスリンクを用いて第２のハブ層スイッチに接続されるハブ層と、を備えるＰＣＩｅファブリックであって、ＰＣＩｅファブリックは、複数のターゲットデバイスと動作可能に接続され、各複数のターゲットデバイスが複数のハブ層スイッチの１つに接続され、第１のハブ層スイッチが、第２のリンクを用いて複数のターゲットデバイスの第１のターゲットデバイスに接続され、第１のハブ層スイッチが、第３のリンクを用いて複数のターゲットデバイスの第２のターゲットデバイスに接続されるＰＣＩｅファブリックに関する。第１のＩＯ層スイッチは、トランザクション層パケット（ＴＬＰ）をクライアントから受け取り、ＴＬＰ内のアドレスが、第１のＩＯ層スイッチ内のいずれのマルチキャスト・アドレス範囲とも対応付けられていない、という第１の決定を行い、ＴＬＰ内のアドレスが、第１のＩＯ層スイッチ内のいずれの下りポートとも対応付けられていない、という第２の決定を行い、第１の決定と第２の決定とに基づき、ＴＬＰを、第１のリンクを用いて、第１のＩＯスイッチ上の第１の上りポートを介して、第１のハブ層スイッチにルーティングするよう構成される。第１のハブ層スイッチは、第１のＩＯ層スイッチから、第１の下りポートでＴＬＰを受け取り、ＴＬＰが第１のマルチキャストグループと対応付けられている、という第３の決定を行い、第３の決定に基づき、第１の書き換えられたＴＬＰを生成し、第１の書き換えられたＴＬＰを、第１のターゲットデバイスに第２のリンクを用いて第１のハブ層スイッチ上の第２の下りポートを介してルーティングし、第２の下りポートは第１のマルチキャストグループの受信者であるよう構成される。
【０００４】
本発明の他の局面は、以下の説明と添付された請求項から明らかになるだろう。
【図面の簡単な説明】
【０００５】
【図１】本発明の１つあるいは複数の実施形態による、ＰＣＩｅファブリックを含むシステムを示す図である。
【図２】本発明の１つあるいは複数の実施形態による、入出力（ＩＯ）層スイッチを示す図である。
【図３】本発明の１つあるいは複数の実施形態による、ハブ層スイッチを示す図である。
【図４】本発明の１つあるいは複数の実施形態による、ＰＣＩｅファブリックを構成する方法を示す図である。
【図５】本発明の１つあるいは複数の実施形態による、ＩＯ層スイッチによってトランザクション・レイヤ・パケット（ＴＬＰ）を処理する方法を示す図である。
【図６】本発明の１つあるいは複数の実施形態による、ハブ層スイッチによってトランザクション・レイヤ・パケットを処理する方法を示す図である。
【図７】本発明の１つあるいは複数の実施形態による、ＰＣＩｅファブリックに接続された永続記憶モジュールによって発行されるＴＬＰを処理する方法を示す図である。
【発明を実施するための形態】
【０００６】
詳細な説明
本発明の具体的実施態様が、添付された図面を参照して、以下に詳細に記述される。以下の実施形態の詳細な説明では、本発明のより完全な理解のために、多数の具体的実施態様が提供されるだろう。しかしながら、当業者とっては、本発明はこれらの具体的な詳細なしに実現してもよいことが明らかであろう。他の例では、説明を不要に複雑化させるのを避けるため、周知の機能は詳細には説明されていない。
【０００７】
以下の図１−７の説明では、図面に関連して説明されたいずれのコンポーネントも、本発明のさまざまな実施態様において、他のいずれの図に関して説明された１つあるいは複数の同様の名称のコンポーネントと同等であってもよい。簡潔にするために、これらのコンポーネントの説明は、各図に対して繰り返されないだろう。したがって、各図のコンポーネントの各すべての実施態様が参考として援用され、１以上の同様の名称のコンポーネントを有する他のすべての図に任意に存在すると仮定される。加えて、本発明のさまざまな実施形態によると、図のコンポーネントのいずれの説明も、他のいずれの図の対応する同様の名称のコンポーネントに関して説明された実施態様に加えて、または組み合わせて、または代わりに実施してもよい任意の実施態様と解すべきである。
【０００８】
一般に、本発明の実施態様は、少なくとも２つの層間で十分に接続されたメッシュトポロジを形成するために接続された、少なくとも２つのスイッチの層を含むＰＣＩｅファブリックに関する。さらに、本発明の実施態様は、ＰＣＩｅファブリック内の１つのスライスに接続されたクライアントが、メモリ、ネットワークエンドポイントデバイス、および／またはＰＣＩｅファブリック内の異なるスライス内の永続記憶デバイス上において（例えば、読み書き動作といった）動作を行うことを可能とするＰＣＩｅファブリックに関する。
【０００９】
典型的なコミュニケーション・ファブリック（たとえば、イーサネット（登録商標）あるいはインフィニバンド）では、リクエストは、各エンドポイントデバイスに固有のエンドポイントアドレスを対応付け、エンドポイントアドレスをリクエストの一部として特定することによって、コミュニケーションファブリック内のスイッチ間をルーティングされる。ＰＣＩｅファブリック内では、読み書き動作は、エンドポイントアドレスではなく、むしろアクセスされたメモリアドレスに基づきファブリックスイッチ間をルーティングされる。結果として、十分に接続されたメッシュのためのアドレスに基づくルーティングの典型的構成は、すべてのクライアントがすべてのエンドポイントデバイスにアクセスすることを許可するとは限らない。本発明の１つあるいは複数の実施形態は、この制限を克服する仕組みを提供する。特に、アドレスに基づくルーティングは、すべてのクライアントがすべてのエンドポイントにアクセスする（後述の）層間で十分に接続されたメッシュを実現するために使用されてもよい。
【００１０】
本発明の１つあるいは複数の実施態様では、ＰＣＩｅファブリック内のコンポーネントはＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）規格を、通信および／または実施する。本発明の実施態様は、いずれの従来、現行、あるいは将来のＰＣＩｅ規格のバージョンに限定されない。さらに、本発明の実施形態は、本発明のさまざまな実施態様を実施するために使用されるＰＣＩｅ規格の機能と同様の機能を実施する他の規格とともに実施されてもよい。
【００１１】
図１は、本発明の１つあるいは複数の実施形態による、ＰＣＩｅファブリックを含むシステムを示す。ＰＣＩｅファブリック（１００）は、２つ以上のスライス（１０４Ａ、１０４Ｂ）からなり、各スライスは、プロセッサ（１１２Ａ、１１２Ｂ）と、１以上のクライアント（１０２Ａ−１０２Ｄ）と、に直接接続される。前述の各コンポーネントは下記に説明される。
【００１２】
本発明の１つの実施態様では、各クライアント（１０２Ａ−１０２Ｄ）は、プロセッサ（あるいは他のタイプのプロセッシング・コンポーネント）と、メモリと、デバイスをＰＣＩｅファブリック（１００）に接続可能とする物理インターフェース（複数可）と、を含む、物理的デバイスである。さらに、各クライアントは、本発明の１つあるいは複数の実施態様の実施に必要なＰＣＩｅ規格（あるいはその一部）を実施する機能性を含む。クライアントはまた、トランザクション・レイヤ・パケット（ＴＬＰ）を送信および／または受信する機能性を含む。ＴＬＰは、ＰＣＩｅ規格にしたがって定められるパケットの種類に対応する。本発明の１つの実施形態では、ＴＬＰは、クライアントがＰＣＩｅファブリックから読み出してＰＣＩｅファブリックにデータを書き込み可能とする。別の言い方では、ＴＬＰは、クライアントがＰＣＩｅファブリック内のロケーション間とデータを転送することを可能とする。本発明の１つの実施形態では、１以上のクライアントがＰＣＩｅエンドポイントとして、すなわち、トランザクションが由来するデバイスおよび／またはトランザクションがターゲットとするデバイスとして、動作する。各クライアントは、ＰＣＩｅファブリックにリンク、すなわち、クライアントとＰＣＩｅファブリック間の物理的接続、を介して接続されていてもよい。
【００１３】
図１の説明を続けると、各スライス（１０４Ａ、１０４Ｂ）は、入出力（Ｉ／Ｏ）層スイッチ（ＩＴＳ）（１０８Ａ、１０８Ｂ）と、ハブ層スイッチ（ＨＴＳ）（１０６Ａ、１０６Ｂ）と、１以上の永続記憶モジュール（ＰＳＭ）と、を含む。これらの各コンポーネントについては、下記に説明する。
【００１４】
ＩＴＳに関して、各ＩＴＳは、１以上のクライアント（１０２Ａ−１０２Ｄ）に接続された物理的なＰＣＩｅスイッチである。各ＩＴＳもまた、ＩＴＳが置かれた同スライス内のＨＴＳに接続される。加えて、各ＩＴＳは、ＩＴＳが置かれたものと異なるスライス内の１以上のＨＴＳに接続されてもよい。本発明の１つの実施形態では、各ＩＴＳはＰＣＩファブリック内のすべてのＨＴＳに接続され、ＰＣＩｅファブリック内の層間で十分に接続されたメッシュをもたらす。本発明の実施形態は、本発明から乖離せずに、層間の十分に接続されたメッシュなしに実施してもよい。
【００１５】
本発明の１つの実施形態では、各ＩＴＳは、（ｉ）接続されたクライアントからＴＬＰを受け取り、アドレスルーティングを用いて、ＩＴＳ上の適切な出口ポート（上りポート、あるいは下りポートの１つ、のいずれか）にＴＬＰをルーティングし、（ii）ＩＴＳが接続された１以上のＨＴＳからＴＬＰを受け取り、アドレスルーティングを用いてＩＴＳ上の適切な出口ポート（例示的に、下りポート）にルーティングするよう、構成される。たとえば、図１において、ＩＴＳ  Ｂ（１０８Ｂ）は、ＴＬＰをクライアントＣ（１０２Ｃ）と、クライアントＤ（１０２Ｄ）と、ＨＴＳ  Ａ（１０６Ａ）と、ＨＴＳ  Ｂ（１０６Ｂ）と、から受け取ってもよい。ＩＴＳについての追加的な詳細が、以下に、図２に関して提供される。
【００１６】
ＨＴＳに関して、各ＨＴＳは、１以上のＩＴＳ（１０８Ａ−１０８Ｂ）と、１以上の永続記憶モジュール（ＰＳＭ）（１１０Ａ−１１０Ｄ）と、に接続された、物理的なＰＣＩｅスイッチである。各ＨＴＳは、ＨＴＳが置かれたものと同スライス内のＩＴＳに接続される。加えて、各ＨＴＳは、ＨＴＳが置かれたものと異なるスライス内の、０以上のＩＴＳに接続してもよい。本発明の１つの実施形態では、各ＨＴＳは、ＰＣＩｅファブリック内の他のすべてのＩＴＳに接続され、ＰＣＩｅファブリック内の層間で十分に接続したメッシュをもたらす。各ＨＴＳはまた、プロセッサに、その（図示しない）ルート・ポートを介して接続してもよい。本発明の実施形態は、層間で十分に接続したメッシュなしに本発明から乖離することなく、実施されてもよい。
【００１７】
本発明の１つの実施形態では、各ＨＴＳは、（ｉ）接続された永続記憶モジュール（ＰＳＭ）からＴＬＰを受け取り、アドレス・ルーティングを用いてＴＬＰをＨＴＳ上の適切な出口ポート（例示的に、下りポート）にルーティングし、（ii）ＨＴＳが接続された１以上のＩＴＳからＴＬＰを受け取り、アドレスルーティングを用いてＨＴＳ上の適切な出口ポート（上りポート、あるいは１以上の下りポート、のいずれか）にＴＬＰをルーティングするよう、構成される。
【００１８】
たとえば、図１において、ＨＴＳ  Ｂ（１０６Ｂ）は、ＰＳＭ  Ｃ（１１０Ｃ）と、ＰＳＭ  Ｄ（１１０Ｄ）と、ＩＴＳ  Ａ（１０８Ａ）と、ＩＴＳ  Ｂ（１０８Ｂ）と、からＴＬＰを受け取ってもよい。ＨＴＳについての追加の詳細が、以下に図３を参照して説明される。
【００１９】
本発明の１つの実施形態では、各永続記憶モジュール（１００Ａ−１１０Ｄ）は、（図示しない）永続記憶デバイスと、任意に（図示しない）揮発性メモリ（たとえば、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）、シンクロナスＤＲＡＭ、ＳＤＲ  ＳＤＲＡＭ、ＤＤＲ  ＳＤＲＡＭ）と、を含む。永続記憶デバイスは、ＮＡＮＤ型フラッシュメモリ、ＮＯＲ型フラッシュメモリ、磁気ＲＡＭメモリ（Ｍ−ＲＡＭ）、スピントルク型磁気ＲＡＭメモリ（ＳＴ−ＭＲＡＭ）、相変化メモリ（ＰＣＭ）、メモリスタメモリ、その他の不揮発ストレージ・クラス・メモリ・デバイス（ＳＣＭ）として定義されるいずれのメモリ、磁気ディスク、光ディスクを含んでもよいが、これらに限定されない。当業者は、本発明の実施形態が、ストレージ・クラス・メモリに限定されないことを理解できるであろう。本発明の１つの実施形態では、各ＰＳＭは１つのスライスのみの一部である。
【００２０】
ＰＣＩｅファブリックの説明を続けると、上述の通り、ＰＣＩｅファブリック内の各スライスは、少なくとも１つのプロセッサ（１１２Ａ、１１２Ｂ）に直接接続されている。各プロセッサは、命令を実行するように構成された単一のコア、あるいは命令を実行するように構成された複数のコアを有する複数の電子回路である。プロセッサは、複合命令セット（ＣＩＳＣ）アーキテクチャ、あるいは縮小命令セット（ＲＩＳＣ）アーキテクチャを用いて、実施されてもよい。本発明の１つあるいは複数の実施形態では、プロセッサは（ＰＣＩｅ規格によって定義されるような）（図示しない）ルート複合体を含む。ルート複合体は、プロセッサを、少なくとも１つのスライスと、ＰＣＩｅファブリックを介してアクセス可能であるが、ＰＣＩｅファブリック内のいずれのスライスの一部ではないメモリ（１１４Ａ、１１４Ｂ）（たとえば、ダイナミックＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ、ＳＤＲ  ＳＤＲＡＭ、ＤＤＲ  ＳＤＲＡＭ）と、に接続する。
【００２１】
本発明の１つの実施形態では、ＰＣＩｅファブリック内のプロセッサ（１１２Ａ、１１２Ｂ）は、たとえばＩｎｔｅｌ（登録商標）ＱｕｉｃｋＰａｔｈ相互接続といったプロセッサ相互接続（１１６）を用いて、直接通信可能である。当業者は、本発明から乖離せずに、プロセッサ（１１２Ａ、１１２Ｂ）間の直接通信を許可するために、その他のポイントツーポイントの通信機構が使用されてもよいことを理解できるだろう。
【００２２】
発明は、図１において示されるシステムに限定されない。
図１に示すように、クライアントは、ＨＴＳに接続されたＩＴＳとＰＳＭとに接続されるが、本発明の実施形態は、クライアントが、ＩＴＳに接続されＨＴＳとＰＳＭとに接続されるように実施されてもよい。
【００２３】
本発明の別の実施形態では、ＰＣＩｅファブリックは、いずれのＰＳＭも含まないように実施されていてもよく、むしろ、ＩＴＳとＨＴＳとの両方が、別々のクライアントの集合に接続し、ＰＣＩｅファブリックがクライアント間の通信を促進するよう実施されてもよい。
【００２４】
さらに、図１に示されるＰＣＩｅファブリックは、２つのスライスと、２つのプロセッサと、４つのＰＳＭと、のみを含むが、ＰＣＩｅファブリックは、本発明から乖離せずに、各上述のコンポーネントをより多くまたは少なく有するよう実施されてもよい。加えて、図１内のＰＣＩｅファブリックは、４つのクライアントと、２つのメモリと、に接続されているが、本発明の実施形態は、本発明から乖離せずに、ＰＣＩｅファブリックが、より多くのまたは少ないクライアントおよび／またはメモリに接続可能に実施されてもよい。
【００２５】
さらに、本発明の実施形態は、記憶デバイス（たとえば、ＰＳＭ（１１０Ａ−１１０Ｄ））を含むＰＣＩｅファブリックに関して記述されているが、本発明の実施形態は、いずれの２つのデバイスがＰＣＩｅファブリックを使用して通信可能に実施されてもよい。たとえば、本発明の１つの実施形態では、図１に示されるクライアントは、ブレードサーバーであってもよく、ブレードサーバーはいずれの物理的なＮＩＣカードを含まず、ＰＳＭはネットワーク・エンドポイント・デバイスに置き換えられてもよい。
【００２６】
本例では、ネットワークエンドポイントデバイスは、ネットワークプロトコルを用いて、ネットワーク（すなわち、有線ネットワーク、無線ネットワーク、それらの組み合わせ）と、またＰＣＩｅを介してＰＣＩｅファブリックと、の両方でインターフェース接続するよう構成されたデバイスである。ネットワークエンドポイントデバイスの１つの例は、ＰＩＣｅ  ＮＩＣカードである。ネットワークエンドポイントデバイスはそれぞれ、（上述のＰＳＭに関して説明された）永続記憶デバイスの組み合わせと、エンドポイント記憶デバイスメモリ（たとえば、ダイナミックＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ、ＳＤＲ  ＳＤＲＡＭ、ＤＤＲ  ＳＤＲＡＭ、あるいは他のいずれのタイプの揮発性メモリ）と、を含んでもよい。
【００２７】
例を続けると、ＰＣＩｅファブリックは、ブレードサーバーが１以上のネットワークエンドポイントデバイスと通信するのを可能にするだろう。この実施形態は、ブレードサーバーが１以上のネットワークエンドポイントデバイスを効率的に共有することを可能とするだろう。本発明はこの例に限定されない。
【００２８】
別の例では、１つあるいは複数の本発明の実施形態では、ＰＳＭは、エンドポイント記憶デバイス（すなわち、データを記憶し、クライアントからの読書きリクエストをサービスする機能性を含むデバイス）に置き換えられてもよい。エンドポイント記憶デバイスはそれぞれ、（上述のＰＳＭに関して説明された）永続記憶デバイスの組み合わせと、エンドポイント記憶デバイスメモリ（たとえば、ダイナミックＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ、ＳＤＲ  ＳＤＲＡＭ、ＤＤＲ  ＳＤＲＡＭ、あるいは他のいずれのタイプの揮発性メモリ）と、を含んでもよい。エンドポイント記憶デバイスの１つの例は、記憶アプライアンスである。発明はこの例に限定されない。
【００２９】
さらに、本発明の実施形態は、ＰＣＩｅファブリックを介して通信する２以上のデバイスを含めるよう拡張してもよい。一般的なケースでは、（図１において示された）ＰＳＭは、ターゲットデバイスに一般化してもよく、ＰＳＭと、ネットワークエンドポイントデバイスと、エンドポイント記憶デバイスと、ＰＣＩｅを用いて通信可能なその他のいずれのデバイスと、を含んでもよい。
【００３０】
ＰＣＩｅファブリックは図１において、ＰＳＭ（あるいはより一般的にターゲットデバイス）を含むものとして示されているが、ＰＣＩｅファブリックは、ターゲットデバイスを含まないように実施されてもよく、むしろ、ＰＣＩｅファブリックはターゲットデバイスに接続するために必要な物理的コンポーネントのみを含むよう実施されてもよい。
【００３１】
図２は、１以上の本発明の実施形態による入出力（ＩＯ）層（ＩＴＳ）スイッチを示す。ＩＴＳ（１０８Ｂ）は、１つの上り（ＵＳ）ポート（ＵＳポート１（１２６））と、１以上の下り（ＤＳ）ポート（ＤＳポート１（１２０）、ＤＳポート２（１２２））、ＤＳポート３（１２４））と、を含む。本発明の１つの実施形態では、ポートは、（前述の）ルート複合体に向かう場合、ＵＳポートに指定される。代替的に、ポートは、ポートがルート複合体から離れるときには、ＤＳポートに指定される。１つの実施形態では、（下りまたは上りのいずれかの）ポートは、ＩＴＳとデバイス（たとえば、クライアント、ＰＣＩｅスイッチ（たとえば、ＩＴＳあるいはＨＴＳ）、等）との間の物理インタフェースである。ポートはリンク（すなわち物理的接続）を介してデバイスに接続する。デバイスがＩＴＳと異なるスライスにあるとき、リンクはクロスリンクと呼ばれる。さらに、図２においては単一ポートとして示されるが、各ポートは、ＴＬＰを送信するときには出口ポートとして、ＴＬＰを受け取るときには入口ポートとして動作してもよい。代替的に、図２において示されるポートは、代わりに、それぞれが、２つの別個のポート―たとえば入口ポートと出口ポートといったポート、として実施されてもよい。
【００３２】
図２の説明を続けると、ＵＳポート（ＵＳポート１（１２６））はリンクを介してＩＴＳと同スライス上のＨＴＳに接続される。ＵＳポート（１２６）はまた、ＰＣＩｅファブリック（１００）内のすべてのスライス（図１内の１０４Ａ、１０４Ｂ）内の（ＰＣＩｅファブリック内のＰＳＭのすべての永続記憶デバイスと揮発性メモリとを含む）すべてのメモリの全アドレス範囲を含むアドレス範囲と、ＰＣＩｅファブリックに接続するすべてのクライアントの（すべての永続記憶デバイスと揮発性メモリとを含む）メモリと、に対応付けられる。前述のアドレス範囲は、プロセッサ（１１２Ａ、１１２Ｂ）に直接取り付けられたメモリ（１１４Ａ、１１４Ｂ）を含まない。前述のアドレス範囲は、連続するアドレス範囲であってもよく、複数の不連続のアドレス範囲から構成されてもよい。
【００３３】
本発明の１つの実施形態では、ＩＴＳ内の少なくとも１つのＤＳポート（ＤＳポート３（１２４））が、クロスリンク（１１８Ａ）を介して、異なるスライス（たとえば、スライスＡ）のＨＴＳ（たとえば、図２のハブ層スイッチＡ）に接続され、そのスライス（たとえば、図２のスライスＡ）と対応付けられた（対応するＰＳＭ内の永続記憶デバイスを含む）メモリと、そのスライス（たとえば、図２のスライスＡ）内のＩＴＳと接続するすべてのクライアントの（すべての永続記憶デバイスと揮発性メモリとを含む）メモリと、のみを含むアドレス範囲と対応付けられる。前述のアドレス範囲は、連続するアドレス範囲であってもよく、複数の不連続のアドレス範囲から構成されてもよい。より一般的に、ＰＣＩｅファブリック内で第２のスライスにクロスリンクを介して接続する、第１のスライス内のＩＴＳ内のＤＳポートは、それが接続する第２のスライスのメモリのみを含むアドレス範囲に対応付けられる。ＰＣＩｅファブリックの実施に応じて、各ＩＴＳは複数のＤＳポートを有してもよく、そのような１以上のＤＳポートは、クロスリンクを介して、異なるスライスのＨＴＳに接続される。ＩＴＳはまた、クライアントに接続されたＤＳポートを含む。本発明の１つの実施形態では、クライアント（たとえば、クライアントＣ、クライアントＤ）に接続された各ＤＳポート（１２０、１２２）は、それが接続されたクライアントのアドレス範囲のみに対応付けられる。
【００３４】
ＩＴＳ（１０８Ｂ）は少なくとも１つのマルチキャストグループを実施してもよい。本発明の１つの実施形態では、マルチキャストグループは、マルチキャスト・アドレス範囲に対応付けられ、このマルチキャストアドレス範囲は、ＵＳポート（ＵＳポート１（１２６））に対応付けられたアドレス範囲とは異なってもよい（あるいはそのサブセットであってもよい）。さらに、少なくとも１つのマルチキャストグループの唯一の受信者がＵＳポート（ＵＳポート１（１２６））である。
【００３５】
図２において示されないが、本発明の１つの実施形態では、ＩＴＳは同スライス内のＩＴＳとＨＴＳ間のクロスリンクを含み、クロスリンクはそのスライス内のＰＳＭ内の（すべての永続記憶デバイスと揮発性メモリとを含む）すべてのメモリの全アドレス範囲を含むアドレス範囲に対応付けられる。前述のアドレス範囲は、連続するアドレス範囲であってもよく、複数の不連続のアドレス範囲から構成されてもよい。
【００３６】
本発明は図２において示されるシステムに限定されない。
図３は、本発明の１以上の実施形態によるハブ層スイッチを示す。ＨＴＳ（１０６Ｂ）は、１つの上り（ＵＳ）ポート（ＵＳポート２（１３６））と、１以上の下り（ＤＳ）ポート（ＤＳポート４（１３０）、ＤＳポート５（１２８））、ＤＳポート６（１３２）、ＤＳポート７（１３４））と、を含む。本発明の１つの実施形態では、ポートは、（前述の）ルート複合体に向かう場合、ＵＳポートに指定される。代替的に、ポートは、ポートがルート複合体から離れるときには、ＤＳポートに指定される。１つの実施形態では、（下りまたは上りのいずれかの）ポートは、ＨＴＳとデバイス（たとえば、ＰＳＭ、プロセッサ、ＰＣＩｅスイッチ（たとえば、ＩＴＳあるいはＨＴＳ）、等）との間の物理インタフェースである。ポートはリンク（すなわち物理的接続）を介してデバイスに接続する。デバイスがＨＴＳと異なるスライスにあるとき、リンクはクロスリンクと呼ばれる。さらに、図３では単一ポートとして示されるが、各ポートは、ＴＬＰを送信するときには出口ポートとして、ＴＬＰを受け取るときには入口ポートとして動作してもよい。代替的に、図３において示されるポートは、代わりに、それぞれが、２つの別個のポート―たとえば入口ポートと出口ポートといったポート、として実施されてもよい。
【００３７】
図３の説明を続けると、ＵＳポート（ＵＳポート２（１３６））はリンクを介してプロセッサ（たとえば図３のプロセッサＢ）に接続する。ＵＳポート（１３６）もまた、ＰＣＩｅファブリック（１００）内のすべてのスライス（図１内の１０４Ａ、１０４Ｂ）内の（ＰＣＩｅファブリック内のＰＳＭ内のすべての永続記憶デバイスと揮発性メモリとを含む）すべてのメモリの全アドレス範囲を含むアドレス範囲と、ＰＣＩｅファブリックに接続するすべてのクライアントの（すべての永続記憶デバイスと揮発性メモリとを含む）メモリと、に対応付けられる。前述のアドレス範囲は、ＰＣＩｅファブリック内のプロセッサ（１１２Ａ、１１２Ｂ）に直接取り付けられたメモリ（１１４Ａ、１１４Ｂ）を含まない。前述のアドレス範囲は、連続するアドレス範囲であってもよく、複数の不連続のアドレス範囲から構成されてもよい。
【００３８】
本発明の１つの実施形態では、少なくとも１つのＤＳポート（ＤＳポート５（１２８））が、クロスリンク（１１８Ｂ）を介して、異なるスライスのＩＴＳ（たとえば、図３のＩＯ層スイッチＢ）に接続され、そのスライス（たとえば、図３のスライスＡ）と対応付けられた（対応するＰＳＭ内の永続記憶デバイスを含む）メモリと、そのスライス（たとえば、図３のスライスＡ）内のＩＴＳと接続するすべてのクライアントの（すべての永続記憶デバイスと揮発性メモリとを含む）メモリと、のみを含むアドレス範囲と対応付けられる。前述のアドレス範囲は、連続するアドレス範囲であってもよく、複数の不連続のアドレス範囲から構成されてもよい。より一般的に、ＰＣＩｅファブリック内で第２のスライスにクロスリンクを介して接続する、第１のスライス内のＨＴＳ内のＤＳポートは、それが接続する第２のスライスのメモリのみを含むアドレス範囲に対応付けられる。ＰＣＩｅファブリックの実施に応じて、各ＩＴＳは多数のＤＳポートを有してもよく、１以上のそのようなＤＳポートは、クロスリンクを介して、異なるスライスのＩＴＳに接続される。
【００３９】
ＨＴＳはまた、ＰＳＭ（１１０Ｃ、１１０Ｄ）に接続されたＤＳポートを含む。本発明の１つの実施形態では、ＰＳＭ（たとえば、ＰＳＭ  Ｃ、ＰＳＭ  Ｄ）に接続された各ＤＳポート（１３２、１３４）は、それが接続されたＰＳＭのアドレス範囲のみに対応付けられる。加えて、ＨＴＳ（１０８Ｂ）は、ＨＴＳと同スライスのＩＴＳに接続されたＤＳポート（ＤＳポート４（１３０））を含む。
【００４０】
ＨＴＳ（１０６Ｂ）もまた、１以上のマルチキャストグループを実施してもよい。ＰＣＩｅファブリックの実施に応じて、各マルチキャストグループは、受信者として、１以上のＰＳＭと対応付けられたＤＳポートと、プロセッサに接続されたＵＳポートとを含む。たとえば、１つのマルチキャストグループは、ＤＳポート６と、ＤＳポート７と、ＵＳポート２とを受信者として含んでもよい。別の例では、マルチキャストグループは、ＤＳポート６とＤＳポート７とを受信者として含んでもよい。本発明は上述の例に限定されない。各マルチキャストグループは、固有のマルチキャスト・アドレス範囲に対応付けられ、このマルチキャスト・アドレス範囲は、ＵＳポート（ＵＳポート２（１２６））に対応付けられたアドレス範囲（あるいはそのサブセット）や、いずれの下りポートに対応付けられたアドレス範囲や、その他のいずれのマルチキャスト・アドレス範囲とは異なってもよい。
【００４１】
図４−７は１以上の本発明の実施形態によるフローチャートを示す。フローチャート内のさまざまなステップが継時的に示され記述されるが、当業者は、ステップのすべてまたは一部が異なる順序で実行されてもよく、連結されまたは削除されてもよく、ステップのすべてまたは一部が並列に実行されてもよいことを、理解できるであろう。本発明の１つの実施形態では、図４−７に示される各ステップは図４−７に示される他のいずれのステップと平行に行われてもよい。
【００４２】
図４は、本発明の１つあるいは複数の実施形態によるＰＣＩｅファブリックを構成する方法を示す。ステップ４００では、ＰＣＩｅファブリック内のすべてのＩＴＳとＨＴＳ内の各上りポートに対応付けられたアドレス範囲は、同じアドレス範囲、すなわち、ＰＣＩｅファブリック内のすべてのスライス内の（ＰＣＩｅファブリック内のＰＳＭ内のすべての永続記憶デバイスと揮発性メモリを含む）すべてのメモリと、ＰＣＩｅファブリックに接続するすべてのクライアントの（すべての永続記憶デバイスと揮発性メモリを含む）メモリと、の全アドレス範囲を含むアドレス範囲に設定される。前述のアドレス範囲は、連続するアドレス範囲であってもよく、複数の不連続のアドレス範囲から構成されてもよい。前述のアドレス範囲は、プロセッサに直接取り付けられたメモリを含まない。本発明の１つの実施形態では、上述の「アドレス範囲」はアドレス範囲の集合として実施されてもよい。本発明の１つの実施形態では、アドレス範囲の集合は３２−ビットアドレス範囲および／または６４−ビットアドレス範囲を含んでもよい。
【００４３】
ステップ４０２では、ＰＣＩｅファブリックのために１以上のマルチキャストグループが生成される。マルチキャストグループの生成は、（ｉ）各マルチキャストグループのマルチキャスト・アドレス範囲を特定することと（ｉｉ）各マルチキャスト・アドレス・グループの受信者を特定することと、を含む。上述のように、各ＩＴＳは、少なくとも１つのマルチキャスト・アドレス・グループに対応付けられてもよく、このマルチキャスト・アドレス・グループは唯一の受信者−ＩＴＳ内のＵＳポート、を有する。さらに、上述のとおり、ＨＴＳは、複数のマルチキャスト・アドレス・グループを実施してもよく、この各マルチキャストグループの受信者は、（リンクおよび／またはクロスリンクに接続されてもよい）ＤＳポートの異なる組み合わせおよび／またはＵＳポートを含む。
【００４４】
ステップ４０４において、アドレス範囲がクロスリンクに接続する各ＤＳポートに対して設定されるが、そのようなＤＳポートは、上述の通り、それらが接続されたスライスに対応するアドレス範囲に対応付けられる。ステップ４０６では、特定のＰＳＭに対応するアドレス範囲が、ＰＳＭに接続された各出口ＤＳポートに対し設定される。ステップ４０８では、特定のクライアントに対応するアドレス範囲が、クライアントに接続された各出口ＤＳポートに対し設定されてもよい。
【００４５】
ステップ４１０では、ＩＴＳに接続されたすべてのクライアントに対するすべてのクライアント・メモリを含むアドレス範囲が、ＩＴＳに接続されたＨＴＳ上の各出口ＤＳポートに対して設定される。たとえば、図２と図３とを参照すると、出口ＤＳポート４（１３０）に対応するアドレス範囲（すなわちＴＬＳがＨＴＳからＩＴＳに送信されたとき）は、ＩＴＳ（１０８Ｂ）に接続するすべてのクライアント（１０２Ｃ、１０２Ｄ）のメモリを含むアドレス範囲である。本発明の１つの実施形態では、ステップ４１０は、与えられたＨＴＳ  ＤＳポートに対しＩＴＳ’  ＵＳポートにプログラムされたのと等しいアドレス範囲を設定することにより実施される。
【００４６】
図５は、本発明の１つあるいは複数の実施形態による、ＩＯ層スイッチによってトランザクション層パケット（ＴＬＰｓ）を処理するための方法を示す。ステップ５００では、ＴＬＰは、クライアントから入口ＤＳポートで受け取られ、ＴＬＰはアドレスとペイロードとに対応付けられ、アドレスはＴＬＰをＰＣＩｅファブリック内でルーティングするために使用され、ペイロードはＰＳＭおよび／またはメモリに格納されるべきデータを含み、あるいはＴＬＰは、ＴＬＰをルーティングするために使用され、またＰＳＭあるいはメモリからデータを読む開始場所も特定するアドレスに対応付けられる。ＴＬＰは、本発明から乖離することなく、その他の情報を含んでもよい。本発明の１つの実施形態では、クライアントは、ＴＬＰを生成しＰＣＩｅファブリックに発行するダイレクトメモリアドレス（ＤＭＡ）エンジンを含んでもよい。
【００４７】
ステップ５０２では、入口ＤＳポートは、ＴＬＰ内のアドレスがマルチキャストアドレス範囲に対応付けられているかどうかに応じて、ＴＬＰ内のアドレスがマルチキャストグループ（ＭＣＧ）に対応付けられるかどうかを決定する。ＴＬＰ内のアドレスが、マルチキャストグループに対応付けられる場合、プロセスはステップ５０８へと進み、その他の場合プロセスはステップ５０４へと進む。
【００４８】
ステップ５０４では、ＴＬＰ内のアドレスがマルチキャストグループに対応付けられていない場合、ＴＬＰ内のアドレスがクロスリンクに接続されたＤＳポートに対応付けられるアドレス範囲（クロスリンクアドレス範囲と呼ぶ。）内かどうかが決定される。ＴＬＰ内のアドレスがクロスリンクアドレス範囲に対応付けられる場合、プロセスはステップ５０６に進み、その他の場合、プロセスはステップ５１２に進む。ステップ５０６では、ＴＬＰは適切なＤＳポートとクロスリンクとを介して、異なるスライス内のＨＴＳに送信される。
【００４９】
ステップ５０８では、ＴＬＰ内のアドレスがマルチキャストグループに対応付けられる場合、ＴＬＰのコピーがマルチキャストの各受信者に提供される。本発明の１つの実施形態では、ＩＴＳ内のＵＳポートが唯一の受信者である。各受信者は、ＴＬＰのコピーを受信した際に、新しいアドレスを含む書き換えられたＴＬＰを生成する機能性を含み、ＴＬＰのコピー内のアドレスは、新しいアドレスを取得するよう翻訳される。ステップ５１０では、ＴＬＰ内のアドレスは、マルチキャスト・アドレス範囲（すなわちステップ５０２で使用されたマルチキャスト・アドレス範囲）内にあるかもしれない、またはないかもしれない新しいアドレスに翻訳される。翻訳の結果、新しいアドレスを含み、元のＴＬＰと同じデータペイロードを含むＴＬＰに書き換えられる。本発明の１つの実施形態では、書き換えられたＴＬＰ内の新しいアドレスは、元のＴＬＰ内のアドレスと同じである。ステップ５１２では、（ｉ）ステップ５１０から書き換えられたＴＬＰ、あるいは（ｉｉ）ステップ５０４の元のＴＬＰが、ＩＴＳ内のＵＳポートを介して、ＩＴＳと同スライス内にあるＨＴＳに送信される。本発明の１つの実施形態では、元のＴＬＰ（すなわちステップ５００で受け取ったＴＬＰ）は、元のＴＬＰ内のアドレスがＩＴＳ内のいずれのポートとも対応付けられておらず、マルチキャスト・アドレス範囲内にないときに、ＩＴＳ内のＵＳポートを介してＨＴＳに送信される。
【００５０】
図６は本発明の１つあるいは複数の実施形態による、ハブ層スイッチによってＴＬＰを処理する方法を示す。
【００５１】
ステップ６００では、ＴＬＰがＨＴＳ内の入口ＤＳポートでクライアントから受け取られる。ここで、ＴＬＰはアドレスとペイロードとに対応付けられ、アドレスはＰＣＩｅファブリック内のＴＬＰをルーティングするために使用され、ペイロードは（ｉ）ＰＳＭ内および／またはメモリに格納すべきデータを含み、または、ＴＬＰはＴＬＰをルーティングするために使用され、またＰＳＭあるいはメモリからデータを読む開始場所も特定するアドレスに対応付けられる。ＴＬＰは、本発明から乖離することなく、その他の情報を含んでもよい。ＴＬＰはＨＴＳと同スライスのＩＴＳから、あるいはＨＴＳと異なるスライスのＩＴＳから（クロスリンクを介して）受け取られてもよい。
【００５２】
ステップ６０２では、入口ＤＳポートは、ＴＬＰ内のアドレスがマルチキャストアドレス範囲に対応付けられているかどうかに応じて、ＴＬＰ内のアドレスがマルチキャストグループ（ＭＣＧ）に対応付けられるかどうかを決定する。ＴＬＰ内のアドレスがマルチキャストグループに対応付けられる場合、プロセスはステップ６１０へと進み、その他の場合プロセスはステップ６０４へと進む。ステップ６０４では、ＴＬＰ内のアドレスがＤＳポートアドレス範囲内にあるかが決定される。ＴＬＰ内のアドレスがＤＳアドレスポート範囲内にあれば、プロセスはステップ６０６へと進み、その他の場合、プロセスはステップ６０８へと進む。ステップ６０６では、ＴＬＰ内のアドレスに対応付けられるＴＬＰがＤＳ出口ポートから送信される。ステップ６０８では、ＴＬＰは、（ＴＬＰ内のアドレスを翻訳することなく）プロセッサ（すなわち、ＨＴＳが置かれたスライスに接続されたプロセッサ）にＨＴＳ内のＵＳポートを介して送信される。
【００５３】
ステップ６１０では、ＴＬＰがマルチキャストグループに対応付けられる場合、ステップ６００で受け取ったＴＬＰのコピーが、マルチキャストの各受信者であるＨＴＳ内の各ＤＳポートに提供される。各受信者は、ＴＬＰのコピーを受信した際に、新しいアドレスを含む書き換えられたＴＬＰを生成する機能性を含み、ＴＬＰのコピー内のアドレスは、ＰＳＭに対応付けられ、他のマルチキャストアドレス範囲にない、新しいアドレスに翻訳される。上述の翻訳の結果、書き換えられた一組のＴＬＰを得る。ステップ６１２では、書き換えられたＴＬＰは、ＨＴＳ内の対応するＤＳポートを介して適切なＰＳＭに送信される。
【００５４】
ステップ６１４では、ＴＬＰがマルチキャストグループに対応付けられ、ＨＴＳ内のＵＳポートが受信者であるとき、ＴＬＰ内のアドレスはいずれのマルチキャスト・アドレス範囲にない新しいアドレスに翻訳される。その結果、前述の翻訳は、ＴＬＰの書き換えをもたらす。ステップ６１６では、書き換えられたＴＬＰはＵＳポートを介してプロセッサに送信される。
【００５５】
本発明の１つの実施形態では、ＰＳＭは、ＨＴＳから（ステップ６０６を介して）ＴＬＰあるいは（ステップ６１０を介して）書き換えられたＴＬＰを受信した際に、（ｉ）ＰＳＭ内の永続記憶デバイス内にＴＬＰのペイロード内にあるデータを格納し、あるいは（ｉｉ）ＴＬＰ内で特定されたＰＳＭ内の場所からデータを読む。さらに、本発明の１つの実施形態では、プロセッサがＨＴＳから書き換えられたＴＬＰを受信した際に、プロセッサは、プロセッサに直接接続されたメモリ内にＴＬＰのペイロード内にあるデータを記憶する。
【００５６】
図７は、本発明の１つあるいは複数の実施形態による、ＰＣＩｅファブリックに接続されたＰＳＭによって発行されたＴＬＰ処理方法を示す。
【００５７】
ステップ７００では、ＴＬＰは、ＨＴＳ上のＤＳポートに接続されたＰＳＭからＨＴＳによって受け取られる。本発明の１つの実施形態では、ＴＬＰは、アドレスとペイロードとに対応付けられ、アドレスはＴＬＰをＰＣＩｅファブリック内でルーティングするために使用され、ペイロードはクライアントあるいはプロセッサメモリに格納すべきデータを含み、または、ＴＬＰはＴＬＰをルーティングするために使用され、またクライアントからデータを読み出すための開始場所も特定するためにも使用されるアドレスに対応付けられる。ＴＬＰは本発明から乖離することなく、他の情報を含んでもよい。本発明の１つの実施形態では、クライアントは、ＴＬＰを生成しＰＣＩｅファブリックに発行するダイレクトメモリアドレス（ＤＭＡ）エンジンを含んでもよい。
【００５８】
ステップ７０２では、ＴＬＰ内のアドレスを用いて、ＴＬＰが、ＴＬＰを受け取ったＨＴＳと同スライスのクライアントに対してであるか、異なるスライスのクライアントに対してであるかの決定が行われる。上述の決定は、ＴＬＰ内のアドレスを含むアドレス範囲に対応付けられるＤＳポートがＨＴＳ内にあるかどうかによって行われてもよい。ＴＬＰ内のアドレスがクロスリンクアドレス範囲に対応付けられる場合、プロセスはステップ７１４へと進み、その他の場合、プロセスはステップ７０４へと進む。
【００５９】
ステップ７０４では、アドレスがクロスリンクアドレス範囲に対応付けられない場合、ＴＬＰは、ＴＬＰを発行したＰＳＭと同スライス内のＩＴＳに接続された出口ＤＳポート（たとえば、図３のＤＳポート４（１３０））にルーティングされる。ステップ７０６では、ＴＬＰは、ＩＴＳ内のＵＳポートに接続された出口ＤＳポートを介してＩＴＳに送信される。ステップ７０８では、ＩＴＳはＨＴＳからＴＬＰを受け取る。ステップ７１０では、ＴＬＰは、ＴＬＰ内のアドレスを含むクライアントアドレス範囲に対応付けられる、出口ＤＳポート（たとえば、図２のＤＳポート１（１０２Ｃ）あるいはＤＳポート２（１０２Ｄ））にルーティングされる。ステップ７１２では、ＴＬＰは、ＴＬＰ内のアドレスを含むアドレス範囲に対応付けられるＩＴＳ上の出口ＤＳポートを介して、クライアントに送信される
ステップ７１４では、アドレスがクロスリンクアドレス範囲に対応付られる場合、ＴＬＰは、ＴＬＰを発行したＰＳＭと異なるスライス内のＩＴＳに接続された出口ＤＳポート（たとえば、図５のＤＳポート５（１２８））にルーティングされる。ステップ７１６では、（異なるスライス内の）ＩＴＳが、ＨＴＳからＴＬＰを受け取る。ステップ７１８では、ＴＬＰは、ＴＬＰ内のアドレスを含むアドレス範囲に対応付けられる出口ＤＳポート（たとえば、図２においてクライアントＡまたはクライアントＢにリンクを介して接続するＤＳポート）にルーティングされる。ステップ７２０では、ＴＬＰは、ＴＬＰ内のアドレスを含むアドレス範囲に対応付けられるＩＴＳ上の出口ＤＳポートを介して、クライアントに送信される。
【００６０】
本発明の１つの実施形態では、クライアントは、（ステップ７１２あるいはステップ７２０を介して）ＴＬＰを受信した際、（ｉ）ＴＬＰのペイロード内にあるデータを格納し、あるいは（ｉｉ）ＴＬＰのペイロードにおいて特定されたクライアント・メモリ（あるいは永続記憶デバイス）内の場所からデータを読み出す。
【００６１】
以下のセクションは本発明の１つあるいは複数の実施形態による例であって、図１−３に示されるＰＣＩｅファブリックに基づく例を記述する。本例は本発明のスコープを限定することを意図しない。
【００６２】
例１
ＩＴＳ  Ｂ（図１の１０８Ｂ）が、ＵＳポート１（１２６）のみを受信者として含む、第１のマルチキャスト・アドレス範囲に対応付けられた第１のマルチキャストグループを構成しするシナリオを考える。さらに、ＨＴＳ  Ｂ（１０６Ｂ）は、（ｉ）ＤＳポート６（１３２）と、ＵＳポート２（１３６）と、を受信者として含む、第２のマルチキャスト・アドレス範囲に対応付けられた、第２のマルチキャストグループを構成し、（ｉｉ）ＤＳポート６（１３２）と、ＤＳポート７（１３４）と、を受信者として含む、第３のマルチキャスト・アドレス範囲に対応付けられた、第３のマルチキャストグループを構成し、（ｉｉｉ）ＤＳポート５（１２８）と、ＤＳポート７（１３４）と、ＵＳポート２（１３６）と、を受信者として含む、第４のマルチキャスト・アドレス範囲に対応付けられた、第４のマルチキャストグループを構成する。
【００６３】
第１のアドレスを有するＴＬＰが、ＩＴＳ  Ｂ（１０８Ｂ）上のＤＳポート１によってクライアントＣ（１０２Ｃ）から受け取られるシナリオを考える。ＤＳポート１が受信すると、第１のアドレスが第１のマルチキャスト・アドレス範囲内であるという決定がされる。したがって、ＴＬＰ内のアドレスは新しいアドレスに翻訳され、書き換えられたＴＬＰが受信者ポート（すなわち本例ではＵＳポート１）からＨＴＳ  Ｂに送信される。
【００６４】
ＨＴＳ  Ｂ内のＤＳポート４によって受信すると、書き換えられた新しいアドレスが第２のマルチキャスト・アドレス範囲内であるという決定がされる。したがって、ＴＬＰ内の新しいアドレスは、（ｉ）第２の新しいアドレスに翻訳され、その結果書き換えられたＴＬＰが（第２のマルチキャストグループへの受信者である）ＤＳポート６から送信され、（ｉｉ）第３の新しいアドレスに翻訳され、その結果書き換えられたＴＬＰが（第２のマルチキャストグループへの受信者ポートである）ＵＳポート２から送信される。
【００６５】
例２
ＩＴＳ  Ａ（図１の１０８Ａ）が、ＨＴＳ  Ａ（１０６Ａ）に対応づけられたＵＳポートのみを受信者として含む、第１のマルチキャスト・アドレス範囲に対応付けられた、第１のマルチキャストグループを構成するシナリオを考える。さらに、ＨＴＳ  Ａ（１０６Ａ）は、ＰＳＭ  Ａ（１１０Ａ）に対応付けられたＤＳポートと、ＰＳＭ  Ｂ（１１０Ｂ）に対応付けられたＤＳポートと、プロセッサＡ（１１２Ａ）に対応付けられたＵＳポートと、ＨＴＳ  Ｂ（１０６Ｂ）へのクロスリンクに対応付けられたＤＳポートとを受信者として含む、第２のマルチキャスト・アドレス範囲に対応付けられた、第２のマルチキャストグループを構成する。加えて、ＨＴＳ  Ｂは、ＤＳポート６（１３２）と、ＤＳポート７（１３４）と、を受信者として含む、第３のマルチキャスト・アドレス範囲に対応付けられた、第３のマルチキャストグループを構成する。
【００６６】
図１を参照し、第１のアドレスを有するＴＬＰが、クライアントＡからＩＴＳ  Ａによって受け取られるシナリオを考える。ＩＴＳ  Ａによって受信すると、第１のアドレスが第１のマルチキャスト・アドレス範囲内である、という決定がされる。したがって、ＴＬＰ内のアドレスが新しいアドレスに翻訳され、書き換えられたＴＬＰが受信者ポート（すなわちＩＴＳ  Ａ内のＵＳポート）からＨＴＳ  Ａに送信される。
【００６７】
ＨＴＳ  Ａによって受信すると、書き換えられたＴＬＰ内の新しいアドレスが第２のマルチキャスト・アドレス範囲内である、という決定がされる。したがって、ＴＬＰ内の新しいアドレスは、（ｉ）第２の新しいアドレスに翻訳され、その結果、第２の新しいアドレスを有する書き換えられたＴＬＰは、ＤＳポートから（第２のマルチキャストグループの受信者である）ＰＳＭ  Ａに送信され、（ｉｉ）第３の新しいアドレスに翻訳され、その結果、第３の新しいアドレスを有する書き換えられたＴＬＰは、ＤＳポートから（第２のマルチキャストグループの受信者である）ＰＳＭ  Ｂに送信され、（ｉｉｉ）第４の新しいアドレスに翻訳され、その結果、第４の新しいアドレスを有する書き換えられたＴＬＰは、ＵＳポートから（第２のマルチキャストグループの受信者である）プロセッサに送信され、（ｉｖ）第５の新しいアドレスに翻訳され、その結果、第５の新しいアドレスを有する書き換えられたＴＬＰは、ＤＳポート５から（第２のマルチキャストグループの受信者である）ＩＴＳ  Ｂにクロスリンクを介して送信される。
【００６８】
ＨＴＳ  ＢのＤＳポート５によって受信すると、書き換えられたＴＬＰ内の第５のアドレスが第３のマルチキャスト・アドレス範囲である、という決定される。したがって、ＤＳポート５が受け取ったＴＬＰ内の新しいアドレスは、（ｉ）第６の新しいアドレスに翻訳され、その結果、書き換えられたＴＬＰは（第３のマルチキャストグループの受信者である）ＤＳポート６から送信され、（ｉｉ）第７の新しいアドレスに翻訳され、その結果、書き換えられたＴＬＰは（第３のマルチキャストグループの受信者である）ＤＳポート７から送信される。
【００６９】
例３
（図１において図示されない）ＩＴＳ  ＡとＨＴＳ  Ａとの間のクロスリンクがあるシナリオを考える。さらに、ＨＴＳ  Ａ（１０６Ａ）は、ＰＳＭ  Ａ（１１０Ａ）に対応付けられたＤＳポートと、ＰＳＭ  Ｂ（１１０Ｂ）に対応付けられたＤＳポートと、プロセッサＡ（１１２Ａ）に対応付けられたＵＳポートと、を受信者として含むマルチキャスト・アドレス・グループ範囲に対応付けられたマルチキャストグループを構成する。
【００７０】
図１を参照し、第１のアドレスを有するＴＬＰがＩＴＳによってクライアントＡから受け取られるシナリオを考える。ＩＴＳ  Ａによって受信されると、第１のアドレスが、ＩＴＳ  ＡとＨＴＳ  Ｂとの間のクロスリンクに対応付けられるＤＳポートに対応付けられる、という決定がされる。ＴＬＰは続いて、ＨＴＳ  Ａに、ＩＴＳ  ＡとＨＴＳ  Ｂとの間のクロスリンクを介して送信される。
【００７１】
ＨＴＳ  Ａによって受信されると、書き換えられたＴＬＰ内のアドレスがマルチキャスト・アドレス範囲である、という決定がされる。したがって、ＴＬＰ内のアドレスは、（ｉ）第１の新しいアドレスに翻訳され、その結果、第１の新しいアドレスを有する書き換えられたＴＬＰはＤＳポートから（マルチキャストグループの受信者である）ＰＳＭ  Ａに送信され、（ｉｉ）第２の新しいアドレスに翻訳され、その結果、第２の新しいアドレスを有する書き換えられたＴＬＰは、ＤＳポートから（第２のマルチキャストグループの受信者である）ＰＳＭ  Ｂに送信され、（ｉｉｉ）第３の新しいアドレスに翻訳され、その結果、第３の新しいアドレスを有する書き換えられたＴＬＰは、ＵＳポートから（第２のマルチキャストグループの受信者である）プロセッサＡに送信される。
【００７２】
本発明は、限られた数の実施形態を用い説明してきたが、この開示の利益を有する当業者は、他の実施形態が、本明細書に開示される本発明の範囲から逸脱することなく考案され得ることを理解するであろう。したがって、本発明の範囲は添付の特許請求の範囲によってのみ限定されるべきである。
【図１】
2015186263.tif 000003
【図２】
2015186263.tif 000004
【図３】
2015186263.tif 000005
【図４】
2015186263.tif 000006
【図５】
2015186263.tif 000007
【図６】
2015186263.tif 000008
【図７】
2015186263.tif 000009
【手続補正書】
【提出日】平成27年8月6日(2015.8.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１のＩＯ層スイッチと第２のＩＯ層スイッチとを備える入出力（Ｉ／Ｏ）層と、
複数のハブ層スイッチを備え、複数のハブ層スイッチが第１のハブ層スイッチと第２のハブ層スイッチとを備え、第１のＩＯ層スイッチが第１のリンクを用いて第１のハブ層スイッチに接続され、第１のＩＯ層スイッチがクロスリンクを用いて第２のハブ層スイッチに接続される、ハブ層と、
複数のターゲットデバイスのそれぞれが複数のハブ層スイッチの１つに接続され、第１のハブ層スイッチが、第２のリンクを用いて複数のターゲットデバイスの第１のターゲットデバイスに接続され、第１のハブ層スイッチが、第３のリンクを用いて複数のターゲットデバイスの第２のターゲットデバイスに接続される、複数のターゲットデバイスと、を備え、
第１のＩＯ層スイッチは、
トランザクション層パケット（ＴＬＰ）をクライアントから受け取り、
ＴＬＰ内のアドレスが、第１のＩＯ層スイッチ内のいずれのマルチキャスト・アドレス範囲とも対応付けられていないという第１の決定を行い、
ＴＬＰ内のアドレスが、第１のＩＯ層スイッチ内のいずれの下りポートとも対応付けられていないという第２の決定を行い、
第１の決定と第２の決定とに基づき、ＴＬＰを、第１のリンクを用いて、第１のＩＯスイッチ上の第１の上りポートを介して、第１のハブ層スイッチにルーティングするよう構成され、
第１のハブ層スイッチは、
第１のＩＯ層スイッチから、第１の下りポートでＴＬＰを受け取り、
ＴＬＰが第１のマルチキャストグループと対応付けられているという第３の決定を行い、
第３の決定に基づき、
第１の書き換えられたＴＬＰを生成し、第１の書き換えられたＴＬＰを、第１のターゲットデバイスに第２のリンクを用いて第１のハブ層スイッチ上の第２の下りポートを介してルーティングし、第２の下りポートは第１のマルチキャストグループの受信者であるよう構成される、ＰＣＩｅファブリック。
【請求項２】
第１のハブ層スイッチは、
第２の書き換えられたＴＬＰを生成し、第２の書き換えられたＴＬＰを、第２のターゲットデバイスに第３のリンクを用いて第１のハブ層スイッチ上の第３の下りポートを介してルーティングし、第３の下りポートは第１のマルチキャストグループの受信者であるよう、さらに構成される、請求項１に記載の、ＰＣＩｅファブリック。
【請求項３】
第１のハブ層スイッチに第４のリンクを用いて接続され、第４のリンクが、ハブ層スイッチ上の第２の上りポートとプロセッサ上のルート・ポートとの間にある、プロセッサをさらに備え、
ルート・ポートは第２のマルチキャストグループと対応付けられ、
第１のハブ層スイッチは、
第３の決定に基づき、第３の書き換えられたＴＬＰを生成し、第３の書き換えられたＴＬＰを、プロセッサに第４のリンクを用いて第１のハブ層スイッチ上の第２の上りポートを介してルーティングし、第２の上りポートが第１のマルチキャストグループの受信者であるようさらに構成される、請求項１に記載の、ＰＣＩｅファブリック。
【請求項４】
第２のプロセッサをさらに備え、プロセッサと第２のプロセッサとがプロセッサ相互接続を介して動作可能に接続するよう構成される、請求項３に記載の、ＰＣＩｅファブリック。
【請求項５】
第１のＩＯ層スイッチが、
クライアントから、第２のＴＬＰを受け取り、
第２のＴＬＰが第１のＩＯ層スイッチ上の第３の下りポートに関連付られたアドレス範囲内である、アドレスを備える、という第４の決定を行い、
第４の決定に基づき、第２のＴＬＰを第２のハブ層スイッチにクロスリンクを用いて第３の下りポートを介してルーティングするようさらに構成され、
第２のハブ層スイッチが、
第１のＩＯ層スイッチから、第２のＴＬＰを第４の下りポートで受け取り、
第２のＴＬＰが、第２のハブ層スイッチに直接接続するターゲットデバイスと対応付けられる、という第５の決定を行い、
第５の決定に基づき、第２のＴＬＰを、第２のハブ層スイッチに直接接続するターゲットデバイスにルーティングするよう構成される、請求項１に記載の、ＰＣＩｅファブリック。
【請求項６】
第１のＩＯ層スイッチは、
クライアントから、第２のＴＬＰを受け取り、
第２のＴＬＰが、第１のＩＯ層スイッチ上の第３の下りポートに対応付けられたアドレス範囲内であるアドレスを備える、という第４の決定を行い、
第４の決定に基づき、第２のＴＬＰを第２のハブ層スイッチにクロスリンクを用いて第３の下りポートを介してルーティングするようさらに構成され、
第２のハブ層スイッチは、
第１のＩＯ層スイッチから、第２のＴＬＰを第４の下りポートで受け取り、
第２のＴＬＰが第２のマルチキャストグループと対応付けられる、という第５の決定を行い、
第５の決定に基づき、第３の書き換えられたＴＬＰを生成し、第３の書き換えられたＴＬＰを、第３のターゲットデバイスに第４のリンクを用いて第２のハブ層スイッチ上の第５の下りポートを介してルーティングし、第５の下りポートが、第２のマルチキャストグループの受信者であり、第３のターゲットデバイスが、第２のハブ層スイッチに第４のリンクを介して接続されるよう構成される、請求項１に記載の、ＰＣＩｅファブリック。
【請求項７】
第１のＩＯ層スイッチは、
クライアントから、第２のＴＬＰを受け取り、
第２のＴＬＰが第１のマルチキャストグループと対応付けられる、という第３の決定を行い、
第３の決定に基づき、第２の書き換えられたＴＬＰを生成し、第２の書き換えられたＴＬＰを、第１のハブ層スイッチに第１のリンクを用いてルーティングするようさらに構成され、
第１のハブ層スイッチは、
第１のＩＯ層スイッチから、第２の書き換えられたＴＬＰを、第１の下りポートで受け取り、
第２の書き換えられたＴＬＰが、第１のハブ層スイッチに直接接続するターゲットデバイスと対応付けられる、という第５の決定を行い、
第５の決定に基づき、第２の書き換えられたＴＬＰを、第２のハブ層スイッチに直接接続するターゲットデバイスにルーティングするよう構成される、請求項１に記載の、ＰＣＩｅファブリック。
【請求項８】
第１のＩＯ層スイッチ上の第１の上りポートは、プロセッサに直接接続するメモリを除くＰＣＩｅファブリック内のすべてのメモリを含む第１のアドレス範囲と、ＰＣＩｅファブリックに接続するクライアントに対応付けられるすべてのメモリを含む第２のアドレス範囲と、に対応づけられ、第１のアドレス範囲と第２のアドレス範囲とは第１のＩＯ層スイッチで受け取ったＴＬＰパケットをルーティングするために使用される、請求項１に記載の、ＰＣＩｅファブリック。
【請求項９】
クライアントに対応付けられるすべてのメモリが、永続記憶デバイスと揮発性メモリとから成るグループから選択された少なくとも１つを備える、請求項８に記載の、ＰＣＩｅファブリック。
【請求項１０】
ＰＣＩｅファブリック内のすべてのメモリが、永続記憶デバイスと揮発性メモリとを備えるグループから選択された少なくとも１つを備える、請求項８に記載の、ＰＣＩｅファブリック。
【請求項１１】
第１のハブ層スイッチ上の第２の上りポートが、ＰＣＩｅファブリック内のすべてのスライス内のすべてのメモリを含む第１のアドレス範囲と、ＰＣＩｅファブリックに接続されたクライアントに対応付けられるすべてのメモリを含む第２のアドレス範囲と、に対応付けられ、第１のＩＯ層スイッチと第１のハブ層スイッチとは、ＰＣＩｅファブリック内のスライスの第１のスライス内にあり、第１のスライスはプロセッサに直接接続するメモリを含まず、第１のハブ層スイッチに直接接続しない複数のターゲットデバイスのいずれも含まず、第１のアドレス範囲と第２のアドレス範囲とは、第１のＩＯ層スイッチが受けとったＴＬＰパケットをルーティングするために使用される、請求項１に記載の、ＰＣＩｅファブリック。
【請求項１２】
クロスリンクが、第１のＩＯ層スイッチの第３の下りポートと、第２のハブ層スイッチの下りポートと、を接続する、請求項１に記載の、ＰＣＩｅファブリック。
【請求項１３】
第１のＩＯ層の第３の下りポートが、ＰＣＩｅファブリックのスライス内のメモリを含むアドレス範囲と対応付けられ、ＰＣＩｅファブリックスライス内のメモリは、第２のハブ層スイッチに直接接続する複数のターゲットデバイスを含み、第１のハブ層スイッチに直接接続する複数のターゲットデバイスのいずれも含まない、請求項１２に記載の、ＰＣＩｅファブリック。
【請求項１４】
複数のターゲットデバイスの少なくとも１つが、揮発性メモリと永続記憶デバイスとから成るグループから選択された少なくとも１つを備える、請求項１に記載の、ＰＣＩｅファブリック。
【請求項１５】
複数のターゲットデバイスの少なくとも１つが、ＮＡＮＤフラッシュを備える、請求項１に記載の、ＰＣＩｅファブリック。
【請求項１６】
複数のターゲットデバイスの少なくとも１つが、ネットワークエンドポイントデバイスとエンドポイント記憶デバイスとから成るグループから選択された１つを備える、請求項１に記載の、ＰＣＩｅファブリック。
【請求項１７】
クライアントがＰＣＩｅエンドポイントである、請求項１に記載の、ＰＣＩｅファブリック。
【請求項１８】
第１のＩＯ層スイッチと第１のハブ層スイッチとが、第２のクロスリンクを用いて接続される、請求項１に記載の、ＰＣＩｅファブリック。
【請求項１９】
第１のＩＯ層スイッチがＴＬＰを第１のハブ層スイッチに第２のクロスリンクを用いてルーティングするよう構成される、請求項１８に記載の、ＰＣＩｅファブリック。
【請求項２０】
第２のクロスリンクが、いずれのマルチキャストグループとも対応付けられない、請求項１８に記載の、ＰＣＩｅファブリック。
【請求項２１】
第２のクロスリンクが、第１のＩＯ層スイッチ上の第１の下りポートと、第１のハブ層スイッチ上の第３の下りポートと、に接続される、請求項１８に記載の、ＰＣＩｅファブリック。
【請求項２２】
第１のＩＯ層スイッチと第２のＩＯ層スイッチとを備える入出力（Ｉ／Ｏ）層と、
複数のハブ層スイッチを備え、複数のハブ層スイッチが第１のハブ層スイッチと第２のハブ層スイッチとを備え、第１のＩＯ層スイッチが第１のリンクを用いて第１のハブ層スイッチに接続され、第１のＩＯ層スイッチがクロスリンクを用いて第２のハブ層スイッチに接続される、ハブ層と、を備え、
ＰＣＩｅファブリックは、複数のターゲットデバイスと動作可能に接続され、各複数のターゲットデバイスが複数のハブ層スイッチの１つに接続され、第１のハブ層スイッチが、第２のリンクを用いて複数のターゲットデバイスの第１のターゲットデバイスに接続され、第１のハブ層スイッチが、第３のリンクを用いて複数のターゲットデバイスの第２のターゲットデバイスに接続され、
第１のＩＯ層スイッチは、
トランザクション層パケット（ＴＬＰ）をクライアントから受け取り、
ＴＬＰ内のアドレスが、第１のＩＯ層スイッチ内のいずれのマルチキャスト・アドレス範囲とも対応付けられていないという第１の決定を行い、
ＴＬＰ内のアドレスが、第１のＩＯ層スイッチ内のいずれの下りポートとも対応付けられていないという第２の決定を行い、
第１の決定と第２の決定とに基づき、ＴＬＰを、第１のリンクを用いて、第１のＩＯスイッチ上の第１の上りポートを介して、第１のハブ層スイッチにルーティングするよう構成され、
第１のハブ層スイッチは、
第１のＩＯ層スイッチから、第１の下りポートでＴＬＰを受け取り、
ＴＬＰが第１のマルチキャストグループと対応付けられているという第３の決定を行い、
第３の決定に基づき、
第１の書き換えられたＴＬＰを生成し、第１の書き換えられたＴＬＰを、第１のターゲットデバイスに第２のリンクを用いて第１のハブ層スイッチ上の第２の下りポートを介してルーティングし、第２の下りポートは第１のマルチキャストグループの受信者であるよう構成される、ＰＣＩｅファブリック。
【請求項２３】
第１のＩＯ層スイッチが、
クライアントから、第２のＴＬＰを受け取り、
第２のＴＬＰが第１のＩＯ層スイッチ上の第３の下りポートに関連付られたアドレス範囲内である、アドレスを備えるという第４の決定を行い、
第４の決定に基づき、第２のＴＬＰを第２のハブ層スイッチにクロスリンクを用いて第３の下りポートを介してルーティングするようさらに構成され、
第２のハブ層スイッチが、
第１のＩＯ層スイッチから、第２のＴＬＰを第４の下りポートで受け取り、
第２のＴＬＰが、第２のハブ層スイッチにに直接接続するターゲットデバイスと対応付けられる、という第５の決定を行い、
第５の決定に基づき、第２のＴＬＰを、第２のハブ層スイッチに直接接続するターゲットデバイスにルーティングするよう構成される、請求項２２に記載の、ＰＣＩｅファブリック。
【請求項２４】
第１のＩＯ層スイッチは、
クライアントから、第２のＴＬＰを受け取り、
第２のＴＬＰが、第１のＩＯ層スイッチ上の第３の下りポートに対応付けられたアドレス範囲内であるアドレスを含む、という第４の決定を行い、
第４の決定に基づき、第２のＴＬＰを第２のハブ層スイッチにクロスリンクを用いて第３の下りポートを介してルーティングするようさらに構成され、
第２のハブ層スイッチは、
第１のＩＯ層スイッチから、第２のＴＬＰを第４の下りポートで受け取り、
第２のＴＬＰが第２のマルチキャストグループと対応付けられる、という第５の決定を行い、
第５の決定に基づき、第３の書き換えられたＴＬＰを生成し、第３の書き換えられたＴＬＰを、第３のターゲットデバイスに第４のリンクを用いて第２のハブ層スイッチ上の第５の下りポートを介してルーティングし、第５の下りポートが、第２のマルチキャストグループの受信者であり、第３のターゲットデバイスが、第２のハブ層スイッチに第４のリンクを介して接続されるよう構成される、請求項２２に記載の、ＰＣＩｅファブリック。
【請求項２５】
第１のＩＯ層スイッチは、
クライアントから、第２のＴＬＰを受け取り、
第２のＴＬＰが第１のマルチキャストグループと対応付けられる、という第３の決定を行い、
第３の決定に基づき、第２の書き換えられたＴＬＰを生成し、第２の書き換えられたＴＬＰを、第１のハブ層スイッチに第１のリンクを用いてルーティングするようさらに構成され、
第１のハブ層スイッチは、
第１のＩＯ層スイッチから、第２の書き換えられたＴＬＰを、第１の下りポートで受け取り、
第２の書き換えられたＴＬＰが、第１のハブ層スイッチに直接接続するターゲットデバイスと対応付けられる、という第５の決定を行い、
第５の決定に基づき、第２の書き換えられたＴＬＰを、第２のハブ層スイッチに直接接続するターゲットデバイスにルーティングするよう構成される、請求項２２に記載の、ＰＣＩｅファブリック。