IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ルネサス エレクトロニクス アメリカ インコーポレイテッドの特許一覧

特開2022-162989スレーブデバイスタイプに基づくネットワークデバイス構成
<>
  • 特開-スレーブデバイスタイプに基づくネットワークデバイス構成 図1
  • 特開-スレーブデバイスタイプに基づくネットワークデバイス構成 図2
  • 特開-スレーブデバイスタイプに基づくネットワークデバイス構成 図3A
  • 特開-スレーブデバイスタイプに基づくネットワークデバイス構成 図3B
  • 特開-スレーブデバイスタイプに基づくネットワークデバイス構成 図4
  • 特開-スレーブデバイスタイプに基づくネットワークデバイス構成 図5
  • 特開-スレーブデバイスタイプに基づくネットワークデバイス構成 図6A
  • 特開-スレーブデバイスタイプに基づくネットワークデバイス構成 図6B
  • 特開-スレーブデバイスタイプに基づくネットワークデバイス構成 図7
  • 特開-スレーブデバイスタイプに基づくネットワークデバイス構成 図8A
  • 特開-スレーブデバイスタイプに基づくネットワークデバイス構成 図8B
  • 特開-スレーブデバイスタイプに基づくネットワークデバイス構成 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022162989
(43)【公開日】2022-10-25
(54)【発明の名称】スレーブデバイスタイプに基づくネットワークデバイス構成
(51)【国際特許分類】
   G06F 13/38 20060101AFI20221018BHJP
   G06F 13/42 20060101ALI20221018BHJP
【FI】
G06F13/38 320A
G06F13/38 350
G06F13/42 310
【審査請求】未請求
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2022064591
(22)【出願日】2022-04-08
(31)【優先権主張番号】17/229,165
(32)【優先日】2021-04-13
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】518364964
【氏名又は名称】ルネサス エレクトロニクス アメリカ インコーポレイテッド
【氏名又は名称原語表記】RENESAS ELECTRONICS AMERICA INC.
【住所又は居所原語表記】1001 Murphy Ranch Road, Milpitas, California 95035, U.S.A.
(74)【代理人】
【識別番号】110002066
【氏名又は名称】弁理士法人筒井国際特許事務所
(72)【発明者】
【氏名】チャイ シュビング
(72)【発明者】
【氏名】ワン ディアンロン
(72)【発明者】
【氏名】ホー ジン
(72)【発明者】
【氏名】ワン ウェイ
(57)【要約】      (修正有)
【課題】異なるタイプのデータトランザクションに基づく異なる動作モードを使用してデータトランザクションを実行するようにネットワークデバイスを構成する装置、システム及び方法を提供する。
【解決手段】システム100において、第1の動作モードは、マスターデバイス102a、102bに、複数のスレーブデバイス150とのデータトランザクションを実行させる。複数のスレーブデバイスは、ネットワーク要素110を介して互いに接続する。第2の動作モードは、マスターデバイスを、複数のスレーブデバイスから切断する。複数のスレーブデバイスに接続された複数のエージェント130は、データトランザクションを実行する。第3の動作モードは、マスターデバイスに、複数のスレーブデバイスの第1のサブセットとのデータトランザクションを実行させ、かつ、マスターデバイスを、複数のスレーブデバイスの第2のサブセットから切断させる。
【選択図】図1
【特許請求の範囲】
【請求項1】
装置であって、
マスターデバイスに接続されたマスターポートと、
複数のスレーブデバイスに接続された複数のスレーブポートと、
前記マスターポートに接続されたネットワーク要素と、
前記マスターポートおよび前記複数のスレーブポートに接続され、前記複数のスレーブポートを制御して、第1の動作モード、第2の動作モード、および第3の動作モードのうち特定の動作モードで動作するように構成されたコントローラと、
を備え、
前記第1の動作モードは、前記マスターデバイスに、前記ネットワーク要素を介して前記複数のスレーブデバイスとのデータトランザクションを実行させ、前記複数のスレーブデバイスは前記ネットワーク要素を介して互いに接続されており、
前記第2の動作モードは、前記マスターポートを前記複数のスレーブポートから切断し、前記複数のスレーブポートに接続された複数の回路ブロックに、前記複数のスレーブデバイスとの前記データトランザクションを実行させ、
前記第3の動作モードは、前記マスターデバイスに、前記ネットワーク要素を介して前記複数のスレーブデバイスの第1のサブセットとの前記データトランザクションを実行させ、前記マスターデバイスを、前記スレーブデバイスの第2のサブセットから切断させる、装置。
【請求項2】
請求項1に記載の装置において、
前記コントローラは、前記マスターポートを制御して、前記データトランザクションを実行するように構成され、
前記データトランザクションは、オープンドレインモードと、前記オープンドレインモードおよびプッシュプルモードの組合せとのうちの一方を使用した、装置。
【請求項3】
請求項2に記載の装置において、
前記コントローラは、
前記データトランザクションの検出が集積回路間(I2C)トランザクションであることに対応して、前記オープンドレインモードをアクティブ化するように、
前記データトランザクションの検出がI3Cトランザクションであることに対応して、前記オープンドレインモードおよび前記プッシュプルモードの前記組合せをアクティブ化するように、
構成された、装置。
【請求項4】
請求項1に記載の装置において、
前記コントローラは、前記複数のスレーブポートを制御して、前記データトランザクションを実行するように構成され、
前記データトランザクションは、オープンドレインモードと、前記オープンドレインモードおよびプッシュプルモードの組合せとのうちの一方を使用した、装置。
【請求項5】
請求項1に記載の装置において、
前記マスターポートは、第1のマスターポートであり、
前記コントローラは、前記第1のマスターポートと、別のマスターデバイスに接続された第2のマスターポートとのうち前記第1のマスターポートを選択するように構成された、装置。
【請求項6】
請求項1に記載の装置において、
前記コントローラは、
前記複数のスレーブデバイスがI3Cスレーブデバイスであることに対応して、前記複数のスレーブポートに対して前記第1の動作モードをアクティブ化するように、
前記複数のスレーブデバイスがI2Cまたはシステム管理バス(SMBus)デバイスであることに対応して、前記複数のスレーブポートに対して前記第2の動作モードをアクティブ化するように、
前記スレーブデバイスの前記第1のサブセットと前記第2のサブセットとの差に対応して、前記複数のスレーブポートに対して前記第3の動作モードをアクティブ化するように、
構成された、装置。
【請求項7】
請求項6に記載の装置において、
前記差は、
前記複数のスレーブデバイスの前記第1のサブセットが、前記複数のスレーブデバイスの前記第2のサブセットよりも高速度で動作すること、
前記複数のスレーブデバイスの前記第1のサブセットが、前記複数のスレーブデバイスの前記第2のサブセットにおけるアドレス空間と異なるアドレス空間内にあること
の一方を示す、装置。
【請求項8】
請求項1に記載の装置において、
前記第2の動作モードの下で、前記回路ブロックは、レジスタ空間にアクセスして、複数のスレーブデバイスとの前記データトランザクションを実行するためにトランザクション記述子を得るように構成され、前記レジスタ空間は、前記マスターポートに接続されたオンチップスレーブインタフェースによってアクセス可能である、装置。
【請求項9】
請求項1に記載の装置において、
前記コントローラは、前記複数のスレーブデバイスを制御して、前記第1の動作モード、前記第2の動作モード、前記第3の動作モードのうち2つ以上の組合せを使用した前記データトランザクションを実行するように構成される、装置。
【請求項10】
システムであって、
マスターデバイスと、
複数のスレーブデバイスと、
前記マスターデバイスおよび前記複数のスレーブデバイスに接続されたネットワークデバイスとを備え、
前記ネットワークデバイスは、
前記マスターデバイスに接続されたマスターポートと、
前記複数のスレーブデバイスに接続せれた複数のスレーブポートと、
前記マスターポートに接続されたネットワーク要素と、
前記マスターポートおよび前記複数のスレーブポートに接続され、前記複数のスレーブポートを制御して、第1の動作モード、第2の動作モード、および第3の動作モードのうちの特定の動作モードの下で動作するように構成されたコントローラと、
を備え、
前記第1の動作モードは、前記マスターデバイスに、前記ネットワーク要素を介して前記複数のスレーブデバイスとのデータトランザクションを実行させ、前記複数のスレーブデバイスは、前記ネットワーク要素を介して互いに接続されており、
前記第2の動作モードは、前記マスターポートを前記複数のスレーブポートから切断し、前記複数のスレーブポートに接続された前記複数の回路ブロックに、前記複数のスレーブデバイスとの前記データトランザクションを実行させ、
前記第3の動作モードは、前記マスターデバイスに、前記ネットワーク要素を介して前記複数のスレーブデバイスの第1のサブセットとの前記データトランザクションを実行させ、前記マスターデバイスを、前記複数のスレーブデバイスの第2のサブセットから切断させる、システム。
【請求項11】
請求項10に記載のシステムにおいて、
前記コントローラは、前記マスターポートを制御して、前記データトランザクションを実行するように構成され、
前記データトランザクションは、オープンドレインモードと、前記オープンドレインおよびプッシュプルモードの組合せとのうちの一方を使用する、システム。
【請求項12】
請求項11に記載のシステムにおいて、
前記コントローラは、
前記データトランザクションの検出が集積回路間(I2C)トランザクションであることに対応して、前記オープンドレインモードをアクティブ化するように、
前記データトランザクションの検出がI3Cトランザクションであることに対応して、前記オープンドレインモードおよび前記プッシュプルモードの前記組合せをアクティブ化するように、
構成された、システム。
【請求項13】
請求項10に記載のシステムにおいて、
前記コントローラは、前記スレーブポートを制御して、前記データトランザクションを実行するように構成され、
前記データトランザクションは、オープンドレインモードと、前記オープンドレインモードおよびプッシュプルモードの組合せとのうち一方を使用した、システム。
【請求項14】
請求項10に記載のシステムにおいて、
前記マスターデバイスは、第1のマスターデバイスであり、
前記マスターポートは、第1のマスターポートであり、
前記ネットワークデバイスは、第2のマスターデバイスに接続された第2のマスターポートをさらに備え、
前記システムは、第2のマスターデバイスをさらに備え、
前記コントローラは、前記第1のマスターポートおよび前記第2のマスターポートのうちの前記マスターポートを選択するように構成された、システム。
【請求項15】
請求項14に記載のシステムにおいて、
前記第2のマスターデバイスは、前記ネットワークデバイスである、システム。
【請求項16】
請求項10に記載のシステムにおいて、
前記コントローラは、
前記複数のスレーブデバイスがI3Cスレーブデバイスであることに対応して、前記複数のスレーブポートに対して前記第1の動作モードをアクティブ化するように、
前記複数のスレーブデバイスがI2Cスレーブデバイスまたはシステム管理バス(SMBus)デバイスであることに対応して、複数のスレーブポートに対して前記第2の動作モードをアクティブ化するように、
前記複数のスレーブデバイスの前記第1のサブセットと前記第2のサブセットとの差に対応して、前記複数のスレーブポートに対して前記第3の動作モードをアクティブ化するように、
構成された、システム。
【請求項17】
請求項10に記載のシステムにおいて、
前記第2の動作モードの下で、前記回路ブロックは、レジスタ空間にアクセスして、前記複数のスレーブデバイスとの前記データトランザクションを実行するためにトランザクション記述子を得るように構成され、前記レジスタ空間は、前記マスターポートに接続されたオンチップスレーブインタフェースにアクセス可能である、システム。
【請求項18】
請求項10に記載のシステムにおいて、前記コントローラは、前記複数のスレーブデバイスを制御して、前記第1の動作モード、前記第2の動作モード、前記第3の動作モードのうち2つ以上の組合せを使用した前記データトランザクションを実行するように構成された、システム。
【請求項19】
マスターデバイスと複数のスレーブデバイスと間でデータトランザクションを制御する方法であって、
マスターデバイスと複数のスレーブデバイスとの間でデータトランザクションを検出し、
前記データトランザクションのタイプの決定し、
前記データトランザクションの決定した前記タイプに基づいて、前記スレーブデバイスに接続された複数のスレーブポートを制御して、第1の動作モード、第2の動作モード、第3の動作モードのうちの特定の動作モードで前記データトランザクションを実行し、
前記第1の動作モードは、前記マスターデバイスに、ネットワーク要素を介して前記複数のスレーブデバイスとの前記データトランザクションを実行させ、前記複数のスレーブデバイスは前記ネットワーク要素を介して互いに接続されており、
前記第2のモードは、前記マスターデバイスを前記複数のスレーブポートから切断し、前記複数のスレーブポートに接続された複数の回路ブロックに、前記複数のスレーブデバイスとの前記データトランザクションを実行させ、
前記第3のモードは、前記マスターデバイスに、前記ネットワーク要素を介して前記複数のスレーブデバイスの第1のサブセットとの前記データトランザクションを実行させ、前記マスターデバイスを、前記複数のスレーブデバイスの第2のサブセットから切断させる、方法。
【請求項20】
請求項19に記載の方法において、
前記複数のスレーブポートを制御して、前記特定の動作モードの下で前記データトランザクションを実行することが、
前記データトランザクションの前記タイプがI3Cトランザクションであることに対応して、前記複数のスレーブポートに対して前記第1の動作モードをアクティブ化すること、
前記データトランザクションの前記タイプがI2Cトランザクションであることに対応して、前記複数のスレーブポートに対して前記第2の動作モードをアクティブ化すること、
前記複数のスレーブデバイスの前記第1のサブセットが前記データトランザクションの決定した前記タイプを実行可能であることに対応して、前記スレーブデバイスの前記第2のサブセットが前記データトランザクションの決定した前記タイプを実行不可能であることに対応して、前記スレーブポートに対して前記第3の動作モードをアクティブ化すること、
を含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、異なるタイプのデータトランザクションに基づく異なる動作モードを使用してデータトランザクションを実行するようにネットワークデバイスを構成することができる装置、デバイス、システム、および方法に関する。
【背景技術】
【0002】
マスターデバイスは、ハブおよびスイッチなどのネットワークデバイスを介して1つまたは複数のスレーブデバイスと通信して、相互にデータの読み取りおよび書き込みなどのデータトランザクションを実行することができる。データトランザクションの性能は、マスターデバイスとスレーブデバイスでサポートされている通信プロトコルに基づかせることができる。さまざまなスレーブデバイスが、さまざまな通信プロトコルとさまざまなタイプのデータトランザクションとをサポートできる。
【発明の概要】
【0003】
いくつかの例では、マスターデバイスと複数のスレーブデバイスとの間でデータトランザクションを制御するための装置が、一般に説明されている。装置は、マスターデバイスに接続されたマスターポートを含むことができる。この装置は、複数のスレーブデバイスに接続された複数のスレーブポートをさらに含むことができる。装置は、マスターポートに接続されたネットワーク要素をさらに含むことができる。装置は、マスターポートおよび複数のスレーブポートに接続されたコントローラをさらに含むことができる。コントローラは、複数のスレーブポートを制御して、第1の動作モード、第2の動作モード、および第3の動作モードのうちの特定の動作モードで動作するように構成することができる。第1の動作モードは、マスターデバイスに、ネットワーク要素を介して複数のスレーブデバイスとのデータトランザクションを実行させることができ、複数のスレーブデバイスは、ネットワーク要素を介して互いに接続することができる。第2の動作モードは、マスターポートを複数のスレーブポートから切断することができ、複数のスレーブポートに接続された複数の回路ブロックに、複数のスレーブデバイスとのデータトランザクションを実行させることができる。第3の動作モードは、マスターデバイスに、ネットワーク要素を介して複数のスレーブデバイスの第1のサブセットとのデータトランザクションを実行させることができ、マスターデバイスを、複数のスレーブデバイスの第2のサブセットから切断させることができる。
【0004】
いくつかの例では、マスターデバイスおよび複数のスレーブデバイスを含むシステムが一般に説明される。ネットワークデバイスは、マスターデバイスと複数のスレーブデバイスとに接続することができる。ネットワークデバイスは、マスターデバイスに接続されたマスターポートを含めることができる。ネットワークデバイスは、複数のスレーブデバイスに接続された複数のスレーブポートをさらに含むことができる。ネットワークデバイスは、マスターポートに接続されたネットワーク要素をさらに含むことができる。ネットワークデバイスは、マスターポートおよび複数のスレーブポートに接続されたコントローラをさらに含むことができる。コントローラは、複数のスレーブポートを制御して、第1の動作モード、第2の動作モード、および第3の動作モードのうちの特定の動作モードで動作するように構成することができる。第1の動作モードは、マスターデバイスに、ネットワーク要素を介して複数のスレーブデバイスとのデータトランザクションを実行させることができ、複数のスレーブデバイスは、ネットワーク要素を介して互いに接続することができる。第2の動作モードは、マスターポートを複数のスレーブポートから切断することができ、複数のスレーブポートに接続された複数の回路ブロックに、複数のスレーブデバイスとのデータトランザクションを実行させることができる。第3の動作モードは、マスターデバイスに、ネットワーク要素を介して複数のスレーブデバイスの第1のサブセットとのデータトランザクションを実行させることができ、マスターデバイスを、複数のスレーブデバイスの第2のサブセットから切断させることができる。
【0005】
いくつかの例では、マスターデバイスと複数のスレーブデバイスとの間でデータトランザクションを制御するための方法が一般に説明されている。この方法は、マスターデバイスと複数のスレーブデバイスとの間のデータトランザクションを検出することを含むことができる。この方法は、データトランザクションのタイプを決定することをさらに含むことができる。この方法は、決定したタイプのデータトランザクションに基づいて、スレーブデバイスに接続された複数のスレーブポートを制御して、第1の動作モード、第2の動作モード、および第3の動作モードのうちの特定の動作モードでデータトランザクションを実行することをさらに含むことができる。第1の動作モードは、マスターデバイスに、ネットワーク要素を介して複数のスレーブデバイスとのデータトランザクションを実行させることができ、複数のスレーブデバイスは、ネットワーク要素を介して互いに接続される。第2の動作モードは、マスターデバイスを複数のスレーブポートから切断することができ、複数のスレーブポートに接続された複数の回路ブロックに、複数のスレーブデバイスとのデータトランザクションを実行させることができる。第3の動作モードは、マスターデバイスに、ネットワーク要素を介して複数のスレーブデバイスの第1のサブセットとのデータトランザクションを実行させることができ、マスターデバイスを、複数のスレーブデバイスの第2のサブセットから切断させることができる。
【0006】
様々な実施形態のさらなる特徴ならびに構造および動作は、添付の図面を参照して以下に詳細に説明される。図面において、同様の参照番号は、同一または機能的に類似した要素を示す。
【図面の簡単な説明】
【0007】
図1】一実施形態において、スレーブデバイスタイプに基づくネットワークデバイス構成を実施することができる例示的なシステムを示す図である。
図2】一実施形態において、図1に示すシステムの例示的な動作モードを示す図である。
図3A】一実施形態において、図1に示されるシステムの別の例示的な動作モードを示す図である。
図3B】一実施形態において、図1に示されるシステムの別の例示的な動作モードを示す図である。
図4】一実施形態において、図1に示すシステムの別の例示的な動作モードを示す図である。
図5】一実施形態において、図1に示されるシステム100の動作モードの組み合わせを示す図である。
図6A】一実施形態において、スレーブデバイスタイプに基づくネットワークデバイス構成に関連するマスターポートの詳細を示す図である。
図6B】一実施形態において、スレーブデバイスタイプに基づくネットワークデバイス構成に関連するスレーブポートの詳細を示す図である。
図7】一実施形態において、スレーブデバイスタイプに基づくネットワークデバイス構成に関連する例示的な電圧検出を示す図である。
図8A】一実施形態において、非透過モードで実施することができる回路ブロックの詳細を示す図である。
図8B】一実施形態において、透過モードで実施することができる回路ブロックの詳細を示す図である。
図9】一実施形態において、スレーブデバイスタイプに基づくネットワークデバイス構成を実施するプロセスを示すフロー図である。
【発明を実施するための形態】
【0008】
図1は、一実施形態において、スレーブデバイスタイプに基づくネットワークデバイス構成を実施することができる例示的なシステム100を示す図である。システム100は、例えば、コンピュータデバイスのマザーボードのような回路基板の上に実装することができる。システム100は、マスターデバイス102aおよびマスターデバイス102bのような1つまたは複数のマスターデバイスを含むことができる。マスターデバイス102aおよびマスターデバイス102bは、システム100の実装に応じて、同じタイプのデバイスまたは異なるタイプのデバイスであり得る。例えば、マスターデバイス102aおよびマスターデバイス102bのそれぞれの1つは、マザーボード上のコントローラのような回路基板の上のマスターデバイスであり得る。システム100は、150a、150b、150c、150d、150e、150f、150g、150hを含む複数のスレーブデバイス150をさらに含むことができる。図1には8個のスレーブデバイスが示されているが、当業者には、任意の数のスレーブデバイスをシステム100に含めることができることが明らかである。システム100内のスレーブデバイスの数は、システム100の所望の実装に依存することができる。本明細書で説明されるスレーブデバイスのいくつかの例には、コンピュータシステムまたはデバイスにおける温度センサ、ファンセンサ、電圧センサ、蓋スイッチ、クロック発生器、周辺構成要素相互接続(PCI)アドインカードが含まれるが、これらに限定されない。図1に示される構成要素間の様々な接続は、1つまたは複数のトレースまたはラインを含むことができることは、当業者には明らかであろう。たとえば、集積回路間(I2C)シリアル通信プロトコルまたはI3Cシリアル通信プロトコルの下での接続には、シリアルクロックライン(SCL)とシリアルデータ(SDA)ラインを含む一対のラインを含めることができる。例示的な実施形態では、デバイス120は、マザーボードに繋がるアドインカードの上のエッジハブデバイスであり得る。マスターデバイス102aは、アドインカードのオンカードマスターであり得、マスターデバイス102bは、マザーボードマスターであり得る。したがって、オンカードマスターとマザーボードマスターは、スレーブデバイス150へのアクセスを共有することができる。
【0009】
システム100は、装置またはデバイス120をさらに含むことができる。デバイス120は、マスターポート104a、マスターポート104b、ネットワーク要素110、コントローラ122、および複数のスレーブポート140を含むことができる。マスターポート104a、104bはそれぞれ、マスターデバイス102a、102bに接続することができる。例示的な実施形態では、マスターポート104a、104bは、同じセットの回路構成要素を含む同一の回路ブロックであり得る。マスターポート104a、104bは、集積回路間(I2C)シリアル通信プロトコルおよび/またはI3C(またはSenseWire)シリアル通信プロトコルの下で動作するマスターデバイスをサポートすることができるマスター側ポートであり得る。複数のスレーブポート140は、スレーブポート140a、140b、140c、140d、140e、140f、140g、および140hを含むことができる。スレーブポート140は、図1に示されるように、スレーブデバイス150に接続することができる。例示的な実施形態では、スレーブポート140は、同じセットの回路構成要素を含む同一の回路ブロックであり得る。複数のスレーブポートは、I2Cおよび/またはI3cシリアル通信プロトコルで動作するスレーブデバイスをサポートできるスレーブ側ポートであり得る。
【0010】
デバイス120は、130a、130b、130c、130d、130e、130f、130g、および130hを含む複数の回路ブロック130(または「SMBusエージェント」)をさらに含むことができる。回路ブロック130は、スレーブポート140に接続することができる。例示的な実施形態では、回路ブロック130は、同じセットの回路構成要素を含む同一の回路ブロックであり得る。回路ブロック130のそれぞれの1つは、SMBusトランザクションを受信または送信するように構成されたシステム管理バス(SMBus)エージェントであり、対応するSMBusエージェントに接続されたスレーブポートの背後のSMBusセグメント内で伸びるシリアルクロックライン(SCL)をサポートすることができる。一例では、SMBusは、システム100内の複数のスレーブデバイスとマスターデバイス102a、102b間の通信に使用することができるシングルエンド2線式バスであり得る。
【0011】
ネットワーク要素110は、複数のデバイス(例えば、スレーブデバイス150)を接続して、複数のデバイスが単一のネットワークセグメントとして動作することを可能にすることができるハブデバイスまたはスイッチであり得る。例示的な実施形態では、ネットワークデバイスは、I2C/I3C階層の物理的セグメンテーションを可能にする1対N(1:N)のI2C/I3C(例えば、I2C、I3Cプロトコルの両方をサポートする)ハブネットワークであり得、選択したマスターデバイスがいつでも見える負荷を低減することができる。一例では、ネットワーク要素110は、ソフトウェアレベルの透過性を維持して、複数のスレーブポート140に接続されたすべてのスレーブデバイスに、すべてのスレーブポートが直接接続されているようにおよびネットワーク要素110が、選択したマスターデバイスとスレーブデバイスとの間に存在しないように同じ方法でアクセスさせることができる。
【0012】
マスターポート104aは、オンチップスレーブインタフェース106aに接続することができ、マスターポート104bは、オンチップスレーブインタフェース106bに接続することができる。オンチップスレーブインタフェース106a、106bは、互いに接続することができ、ストレージ要素108に接続することができ、ストレージ要素108は、1セットのレジスタおよびバッファを含むことができる。例示的な実施形態では、オンチップスレーブインタフェース106a、106bは、同じセットの回路構成要素を含む同一の回路ブロックであり得る。一例では、ストレージエレメント(記憶素子)108は、オンチップスレーブインタフェース106a、106bのそれぞれ1つの専用レジスタスペースにマッピングすることができる(またはマスターポート104a、104b専用の)共有レジスタスペースを含むことができる。マスターポート104a、104bのそれぞれ1つは、ストレージエレメント108のレジスタ空間にマッピングされている独自の専用レジスタを持つことができる。ストレージエレメント108は、レジスタにマッピングされ得るページ化バッファ空間をさらに含むことができる。
【0013】
コントローラ122は、デバイス120の構成要素を制御するための制御論理を実装するように構成されたインテリジェント論理ユニットであり得る。コントローラ122は、スイッチング要素124を操作して、マスターポート104a、104bのうち1つのマスターポートを選択するように構成することができる。一例では、スイッチング要素124はマルチプレクサであり得、コントローラ122は、選択信号を生成し、その選択信号を使用してマルチプレクサを操作してマスターポートを選択するように構成することができる。選択したマスターポートに接続されたマスターデバイスは、ネットワーク要素110に繋ぐことができ、マスターデバイスが複数のスレーブポート140にアクセスできるようにする。さらに、スイッチング要素124は、マスターデバイス102a、102bに、システム100を実行するネットワークのダウンストリームを共有することを可能にすることができる。
【0014】
一例では、マルチプレクサまたはスイッチング要素124は、状態1)マスターポート104a、104bのいずれも選択されていない(例えば、スレーブポート140に接続されているマスターデバイスがない)状態、状態2)2つのマスターポート104a、104bのうちの1つが選択され、スレーブポート140に接続されいる状態のうちの1つであり得る。スイッチング要素が状態1)にあるとき、マスターデバイス102a、102bは、ネットワーク要素110に繋がることができず、したがって、スレーブポート140に接続された任意のスレーブデバイスを見ることができない。さらに、状態1)の下で、マスターデバイス102a、102bは、それ自体のオンチップスレーブインタフェース106a、106bを見るかもしれない。こうして、デフォルトのスレーブアドレスとスレーブデバイス150との間に競合が存在できるいくつかの例(例えば、I2C動作下)では、オンチップインタフェースアドレスは、スレーブポート140を有効にする前にダウンストリームのデバイスと競合することなく再プログラムすることができる。
【0015】
コントローラ122は、マスターポート104a、104bと複数のスレーブポート140とを個別に制御するように構成することができる。マスターポート104a、104bと複数のスレーブポート140とを個別に制御することによって、システム100は、異なるスレーブデバイスのタイプおよび異なる通信プロトコルに対してトランザクションを実行するように構成することができる。マスターポート104a、104bと複数のスレーブポート140の様々な動作モードの説明は、以下でより詳細に説明される。
【0016】
図2は、一実施形態において、図1に示すシステム100の例示的な動作モードを示す図である。図2に示す例では、コントローラ122は、複数のスレーブポート140を制御して、第1のスレーブ動作モード(透過モードと呼ばれる)で動作することができる。透過モードで動作するように複数のスレーブポート140を構成するために、選択したマスターデバイス102aは、複数のスレーブポート140をネットワーク要素110に接続することができる。選択したマスターデバイス102aもまた、複数のスレーブポート140をそれらのそれぞれのエージェントまたは回路ブロック130から切り離す(切断する)ことができる。ネットワーク要素110への複数のスレーブポート140の接続、および、エージェントからの複数のスレーブポート140の切り離しは、選択したマスターデバイス102aがネットワーク要素110を介して複数のスレーブデバイス150にアクセスすることを可能にすることができる。
【0017】
一例では、複数のスレーブポート140は、複数のスレーブデバイス150がI3CスレーブデバイスまたはI3C互換のI2Cスレーブデバイスであることに対応して、または、データトランザクションがI3Cトランザクションであることに対応して、透過モードで動作するように構成することができる。例えば、コントローラ122は、データトランザクションのデータフレーム構造を分析して(例えば、トランザクション開始、トランザクション停止などを識別するために)、データトランザクションがI2CまたはI3Cトランザクションであるかどうかを決定することができる。回路ブロック130は、透過モードで非アクティブ化することができ、したがって、透過モードでSCLストレッチングを実行しないかもしれない。複数のスレーブデバイス150をネットワーク要素110に接続することにより、複数のスレーブデバイス150は、同じ速度およびトラフィックを見ることができる。速度およびトラフィックを維持するために、コントローラ122は、ある条件に対応して、スレーブポート140での動作速度を減少するように構成することができる。例えば、透過モードでは、複数のスレーブデバイス150のうちの少なくとも1つが残りのスレーブデバイスよりも低速で動作することに対応して、コントローラ122は、複数のスレーブポート140の動作速度を低下させて、複数のスレーバデバイスに同じ動作速度で動作させるように構成することができる。一例では、コントローラ122は、スレーブデバイス150g、150hがI2Cスレーブデバイスであり、スレーブデバイス150a~150fがI3Cスレーブデバイスであると決定することができる。その決定に対応して、コントローラ122は、スレーブポート140a~140fの動作速度をスレーブポート140g、140hと同じになるように低下させることができ、その結果、複数のスレーブデバイス150は、同じ速度で同じネットワークセグメントとして動作することができる。いくつかの例では、スレーブデバイス150の少なくとも1つが低速で動作しているかどうかを判断するために、コントローラ122は、システム100内のトラフィックを監視して、他のスレーブデバイスと比較してより低速で動作できるスレーブデバイスを識別することができる。
【0018】
図3Aおよび図3Bは、一実施形態において、図1に示されるシステム100の別の例示的な動作モードを示す図である。図3Aに示される例では、コントローラ122は、複数のスレーブポート140を制御して、第2のスレーブ動作モード(エージェントモードまたは非透過モードと呼ばれる)で動作するようにできる。非透過モードで動作するように複数のスレーブポート140を構成するために、コントローラ122は、複数のスレーブポート140をネットワーク要素110から、および、マスターポート104a、104bから切断することができる。コントローラ122はまた、複数のスレーブポート140を、回路ブロック130のうちのそれらのそれぞれのエージェントまたは回路ブロックに接続することができる。ネットワーク要素110からの複数のスレーブポート140の切断、および、回路ブロック130への複数のスレーブポート140の接続は、ストレージエレメント108のレジスタにアクセスすることによって、回路ブロック130がスレーブデバイス150との通信を処理することを可能にすることができる。
【0019】
一例では、複数のスレーブポート140は、複数のスレーブデバイス150がI2Cスレーブデバイスまたはシステム管理バス(SMBus)スレーブデバイスであることに対応して、または、データトランザクションがI2Cトランザクションであることに対応して、非透過モードで動作するように構成することができる。非透過モードでは、複数のスレーブポート140は、互いに切断することができ、同じ速度およびトラフィックを見えないかもしれない。さらに、非透過モードでは、複数の回路ブロック130のうちのそれぞれの回路ブロックは、ストレージエレメント108のレジスタおよびバッファに格納されたトランザクション記述子およびトランザクションデータにアクセスするように構成することができる。非透過モードの下で回路ブロック130によって受信される得るトランザクション記述子およびデータの例には、ターゲットスレーブアドレス、読み取りまたは書き込みビットの値、トランザクションタイプ(例えば、単一トランザクション、書き込み、読み取り、書き込み後に読み取りが続く、など)、トランザクション速度(引き伸ばされていない場合)、書き込みまたは読み取りのバイト数、書き込みトランザクションのペイロードデータ、書き込み後に読み取りに続くトランザクションの受信データなどを含むことができる。回路ブロック130は、非透過モードでは回路ブロック130はスレーブデバイス150に接続されるので、回路ブロック130は、受信したトランザクション記述子およびデータを使用してスレーブデバイス150との通信を処理するためにスレーブ側マスターデバイスとして機能することができる。一例では、回路ブロック130は、帯域内割り込み(IBI)トレース302を介してストレージエレメント108内のレジスタおよびバッファにアクセスすることができる。
【0020】
図3Bに示される別の例示的な実施形態では、回路ブロック130のうちのそれぞれの回路ブロックは、複数のマルチプレクサ304のうちの個々のマルチプレクサに接続することができる。マルチプレクサ304のうちのそれぞれのマルチプレクサは、トレース306およびトレース308に接続することができ、トレース306は、マルチプレクサ304をマスターポート104aに接続することができ、トレース308は、マルチプレクサ304をマスターポート104bに接続することができる。いくつかの例では、トレース306、308はそれぞれ、オンチップスレーブインタフェース106a、106bが回路ブロック130にアクセスすることを可能にする内部通信バスであり得る。マスターポート104aが、選択したマスターポートであることに対応して、マルチプレクサ304は、トレース306を選択して、非透過モードの下でオンチップスレーブインタフェース106aを回路ブロック130に接続することができる。オンチップスレーブインタフェース106aと回路ブロック130との間の接続は、回路ブロック130がオンチップスレーブインタフェース106aを介してストレージエレメント108にアクセスすることを可能にすることができる。
【0021】
図4は、一実施形態において、図1に示されるシステム100の別の例示的な動作モードを示す図である。図4に示す例では、コントローラ122は、複数のスレーブポート140を制御して、第3のスレーブ動作モード(区分化モードと呼ばれる)で動作するようにできる。区分化モードで動作するように複数のスレーブポート140を構成するために、コントローラ122は、複数のスレーブポート140のサブセットをネットワーク要素110に選択的に接続することができ、複数のスレーブポート140の別のサブセットをネットワーク要素110から選択的に切断することができる。ネットワーク要素110への、および、ネットワーク要素110からの複数のスレーブポート140の選択的な接続および切断は、選択したマスターデバイス102aがネットワーク要素110を介して接続したスレーブデバイスにアクセスすることを可能にすることができる。区分化モードの下では、ネットワーク要素110に接続されたままであるスレーブポートは、透過モードの下で動作することができる。
【0022】
区分化モードは、I3CスレーブデバイスまたはI3C互換のI2Cスレーブデバイスに対してアクティブ化することができる。一例では、コントローラ122は、特定の基準を満たさない複数のスレーブデバイス150のうちの少なくとも1つに対応して、区分化モードで動作するようにスレーブポート140を構成することができる。例えば、スレーブデバイス150f、150g、および150hが、残りのスレーブデバイスと比較してより低速で動作することに対応して、コントローラ122は、スレーブポート140f、140g、および140hをネットワーク要素110から、および、それらの回路ブロック130f、130g、および130hから切断することができる。切断すると、スレーブデバイス150a~150eは、ネットワーク要素110に接続されたままであり、透過モードで動作することができる。別の例では、コントローラ122は、スレーブデバイス150a~150eがターゲットアドレス空間に割り当てられ、スレーブデバイス150f、150g、および150hが非ターゲットアドレス空間に割り当てられることを決定することができる。コントローラ122は、選択したマスターデバイス102aがスレーブデバイス150a~150eにアクセスできるように、スレーブポート140f、140g、および140hをネットワーク要素110およびそれらの回路ブロック130f、130g、および130hから切断することができる。
【0023】
図5は、一実施形態において、図1に示されるシステム100の動作モードの組み合わせを示す図である。図5に示す例では、コントローラ122は、スレーブポート140の第1の部分が透過モードの下で動作でき、スレーブポート140の第2の部分が非透過モードの下で動作でき、スレーブポート140の第3の部分が、区分化モードに基づいて切断できるように、複数のスレーブポート140を個別に制御することができる。図5に示す例では、スレーブポート140a、140b、140e、および140fは、透過モードで動作することができ、スレーブデバイス150a、150b、150e、および150fは、I3CデバイスまたはI3C互換のI2Cデバイスであり得る。スレーブポート140c、140dは、非透過モードで動作することができ、デバイス150c、150dは、I2CデバイスまたはI3C互換のI2Cデバイスであり得る。スレーブポート140g、140hは、区分化モードの下でネットワーク要素110および回路ブロック130g、130hから切断することができる。
【0024】
スレーブポート140に対する選択的な接続、切断、および動作モードは、システム100が異なるタイプのスレーブデバイスで実行されることを可能にすることによってフレキシビリティ(柔軟性)を提供することができる。一例では、このフレキシビリティにより、回路基板またはマザーボードの特定の構成要素(コンポーネント)を完全に交換する必要性を減らすことができる。例えば、デバイス120のスレーブポートは、古いネットワークハブを交換したり、新しいまたは追加のネットワークハブを設置したりする必要なしに、異なるタイプのスレーブデバイス(例えば、異なる動作速度および異なる通信プロトコルを有するデバイス)を調整するように個別に構成して、これらの異なるスレーブデバイスを調整することができる。
【0025】
図6Aは、一実施形態において、スレーブデバイスタイプに基づくネットワークデバイス構成に関連するマスターポートの詳細を示す図である。図6Aに従ってマスターポート104aに関する以下の説明は、図1から図5に示されるマスターポート104bにも適用できることに留意されたい。図6Aに示される例では、マスターポート104aは、低ドロップアウト(LDO)レギュレータ602、回路604、およびリドライバ回路606を含むことができる。LDOレギュレータ602は、デバイス120に埋め込まれたオンチップ電圧レギュレータであり得、入力/出力(I/O)電圧をマスターポート104aに供給するように構成され得る。回路604は、マスターポート104aをネットワーク要素110に接続するブリッジ回路であり得、マスターポート104aによって使用され得るオープンドレイン(OD)およびプッシュプル動作を処理することができる。リドライバ回路606は、マスターポート104aがオープンドレイン(OD)モードで動作している場合に、シリアルクロックライン(SCL)ストレッチング(例えば、SCLラインを押し続けることによって通信を減速する)を実行するようにアクティブ化することができる。コントローラ122は、制御信号610を生成して、マスターポート104aを制御するように構成することができる。例示的な実施形態では、制御信号610は、制御信号610がオープンドレイン(OD)専用モードをアクティブ化(例えば、セット)または非アクティブ化(例えば、クリア)できるように、バイナリ信号または論理信号であり得る。OD専用モードでは、マスターポート104aは、特定の電圧(例えば、3.3ボルト)まで、I2Cトランザクションのようなオープンドレイン動作を実行するように構成することができる。
【0026】
非OD専用モード(例えば、OD専用モードが非アクティブ化されるとき)の下で、マスターポート104aは、I3Cトランザクションまたは動作、または共通コマンドコード(CCC)トランザクション、またはI3CスレーブデバイスまたはI3C互換のI2Cスレーブデバイス(スレーブデバイス150の中で)を対象とするマスタートランザクションを実行するように構成することができる。非OD専用モードはまた、マスターポート104aが、電圧しきい値の影響を受けるプッシュプルモードを使用して動作することを可能にする。いくつかの例では、電圧しきい値は、非OD専用モードの下でLDOレギュレータ602によって設定することができる。一例では、コントローラ122は、制御信号612を生成して、マスターポート104aをLDOレギュレータ602に接続または切断することができる。一例では、LDOレギュレータ602がマスターポート104aに接続されるとき、LDOレギュレータ602は、マスターポート104aへの1.0、1.1、1.2、または1.8ボルト(V)のような調整電圧を提供することができる。マスターポート104aは、LDOレギュレータ602によって提供される調整電圧までプッシュプル動作を実行することができる。一例では、システム100のユーザは、マスターポート104a、104bの動作電圧をプログラムすることができる(例えば、LODレギュレータ602によって供給される調整電圧を設定する)。
【0027】
マスターポート104aは、ストレージエレメント108のレジスタ空間にマッピングされた専用レジスタを有することができる。これらの専用レジスタのいくつかは、マスターポート104aのステータスに関する情報を格納することができる。たとえば、レジスタは、OD_Only値を格納して、マスターポート104aがOD専用モードまたは非OD専用モードで現在動作しているか否かを指し示すことができる。OD_Onlyレジスタは、マスターポート104aがOD専用モードで動作している場合には設定値(たとえば、バイナリ「1」)を格納でき、マスターポート104aが非OD専用モードで動作している場合にはクリア値(たとえば、バイナリ「0」)を格納することができる。一例では、マスターポート104aは、I3CトランザクションまたはCCCコマンドの検出に対応して、OD_Onlyレジスタを自動的にクリア(消去)する(「1」から「0」に変更する)ことができる。さらに、OD_Nolyレジスタの値は、ストレージエレメント108のレジスタ空間へのアクセスのタイプに対応して設定またはクリアすることができる。例えば、ストレージエレメント108のレジスタ空間へのI2Cアクセスに対応して、コントローラ122は、マスターポート104aが、I2CプロトコルをサポートするOD専用モードで動作できるように、マスターポート104aを制御して、OD_Onlyレジスタをクリアすることができる。別のレジスタは、「VIO_M」値を格納して、LDOレギュレータ602によって調整電圧がマスターポート104aに供給されていることを示すことができる。
【0028】
一例では、コントローラ122は、7Ehアドレス(例えば、I3Cプロトコルの下でのCCCフレーム内のブロードキャストアドレス)を有するデータトランザクションの要求を受信し、データトランザクションがI3C対応トランザクションであり得ると決定することができる。インタフェース動作電圧(例えば、LDOレギュレータ602からの調整電圧)がまだ設定されていない場合、インタフェース動作電圧は、そのマスターポット104aに関連するI3C動作電圧(例えば、VIO_Mレジスタに格納された値)に設定することができる。マスターポート104a用のVIO_Mレジスタは、マスターポート104b用のVIO_Mレジスタとは異なる値を持つことができることに留意するべきである。
【0029】
例示的な実装では、マスターポート104aは、3.3V耐性のI2C動作にパワーアップ(電力を供給)することができる。電力供給の後に、マスターポート104aに接続されたマスターデバイス102aは、マスターポート104aのVIO_Mレジスタをプログミングして、動作電圧を1.2Vに設定することができる。その後、この設定した動作電圧に従って後続の動作が実行される。たとえば、マスターポート104aがプッシュプルモードで動作する場合、1.2VがプッシュプルIO電圧になる。
【0030】
別の例示的な実装では、マスターポート104bは、3.3V耐性のI2C動作にパワーアップすることができる。マスターポート104bは、1.0Vのデフォルトのプッシュプル電圧を持つことができる。電力供給の後、マスターポート104bに接続されたマスターデバイス102bは、1.0V信号レベルで動作することができる。マスターデバイス102bは、デバイス120のコントローラ122にCCCを直ちに送信し始めることができる。CCCフレームで7Ehアドレスを受信すると、コントローラ122は、CCCに直ちに応答し、動作電圧を1.0Vに変更することができる。特に明示的にプログミングされていない限り、プッシュプル動作(例えば、CCC読み取りでは)は、この1.0Vの事前設定された電圧で動作することができる。
【0031】
図6Bは、一実施形態において、スレーブデバイスタイプに基づくネットワークデバイス構成に関連するスレーブポートの詳細を示す図である。図6Bに従ってスレーブポート140aに関する以下の説明は、図1から図5に示される複数のスレーブポート140のうちの他のスレーブポートにも適用できることに留意されたい。図6Bで示される例では、スレーブポート140aは、低ドロップアウト(LDO)レギュレータ620、回路624、回路626、およびリドライバ回路622を含むことができる。LDOレギュレータ620は、デバイス120に埋め込まれたオンチップ電圧レギュレータであり得、およびスレーブポート140aにIO電圧を供給するように構成することができる。回路624は、スレーブポート140a内のブリッジ回路であり得、オープンドレインおよびプッシュプル動作をサポートすることができる。回路626は、スレーブポート140aをネットワーク要素110に接続するブリッジ回路であり得、オープンドレインおよびプッシュプル動作をサポートすることができる。
【0032】
スレーブポート140aは、スイッチ638をさらに含むことができ、スイッチ638は、スイッチ638が閉じられたときにネットワーク要素110をスレーブデバイス150aに接続することができる。スレーブポート140aがオープンドレイン(OD)モードで動作している場合、リドライバ回路622をアクティブ化(起動)して、シリアルクロックライン(SCL)ストレッチングを実行することができる。コントローラ122は、制御信号630、制御信号634、および制御信号636を生成して、スレーブポート140aを制御するように構成することができる。例示的な実施形態では、制御信号630、634、および636は、1つまたは複数のスイッチング要素をオンまたはオフに切り替えることができる、または、スレーブポート140a内の1つまたは複数の構成要素をアクティブ化(例えば、設定)または非アクティブ化(例えば、消去)することができるバイナリ信号または論理信号であり得る。例えば、制御信号630は、スレーブポート140aに対してOD専用モードをアクティブ化または非アクティブ化することができる。OD専用モードでは、スレーブポート140aは、特定の電圧(例えば、3.3V)まで、I2Cトランザクションのようなオープンドレイン動作を実行するように構成することができる。さらに、透過モードでは、マスターデバイス102a、102bとスレーブデバイス150とは、同じオープンドレイン(OD専用または非OD専用)モードで動作することができることに留意されたい。非透過モードでは、マスターデバイス102a、102bとスレーブデバイス150とは、同じオープンドレインモードで動作する必要がないかもしれない。
【0033】
非OD専用モード(例えば、OD専用モードが非アクティブ化されるとき)の下で、スレーブポート140aは、I3Cトランザクション、またはCCCトランザクション、またはI3Cスレーブデバイス若しくはI3C互換のI2Cスレーブデバイス(スレーブデバイス150のうち)を対象とする選択したマスターポートからのトランザクションをサポートするように構成することができる。非OD専用モードはまた、スレーブポート140aがプッシュプルモードを使用して動作することを可能にし、スレーブポート140aに印加された電圧は、非OD専用モードの下でLDOレギュレータ620によって調整することができる。一例では、コントローラ122は、制御信号632を生成して、スレーブポート140aをLDOレギュレータ620に接続または切断することができる。一例では、LDOレギュレータ620がスレーブポート140aに接続されるとき、LDOレギュレータ620は、1.0Vから1.2Vの範囲内の電圧のような調整電圧を、スレーブポート140aに提供することができる。スレーブポート140aは、LDOレギュレータ620によって提供される調整電圧までプッシュプル動作を実行することができる。一例では、システム100のユーザは、スレーブポート140の動作電圧をプログラミングすることができる(例えば、LDOレギュレータ620によって供給される調整電圧を設定する)。
【0034】
コントローラ122は、制御信号634を使用して、回路ブロック130aをアクティブ化または非アクティブ化することができる。コントローラ122は、制御信号636を使用して、スイッチ638をアクティブ化または非アクティブ化することができる。スレーブポート140aの透過モードをアクティブ化するために、コントローラ122は、制御信号636を生成してスイッチ638を閉じことができ、制御信号634を生成して回路ブロック130aを回路624から切断することができる。透過モードでは、選択したマスターデバイスは、回路626、閉スイッチ638、回路624、およびリドライバ回路622を介してスレーブポート140aにアクセスすることができる。非透過モードをアクティブ化するために、コントローラ122は、制御信号636を生成してスイッチ638を開くことができ、制御信号634を生成して回路ブロック130aを回路624に接続することができる。非透過モードでは、回路ブロック130aは、回路624およびリドライバ回路622を介してスレーブポート140aにアクセスすることができる。一例では、アクティブ化した回路ブロック130aは、SCLストレッチングをサポートすることができる。
【0035】
ストレージエレメント108は、スレーブポート140用の様々な制御信号の登録した記憶値を含むことができる。例えば、レジタは、「OD_Only」値を格納して、スレーブポート140aが現在OD専用モードまたは非OD専用モードで動作しているか否か示すことができる。OD_Onlyレジスタは、スレーブポート140aが、OD専用モードで動作している場合には設定値(たとえば、バイナリ「1」)を格納することができ、スレーブポート140aが非OD専用モードで動作している場合にはクリア値(たとえば、バイナリ「0」)を格納することできる。一例では、コントローラ122は、特定の電圧または手順の検出(例えば、I3Cトランザクションの検出)に対応して、OD_Onlyレジスタをクリアする(「1」から「0」に変更する)ことができる。スレーブポート用の別のレジスタは、「UseAgent」値を格納して、回路ブロック130aがアクティブ化または非アクティブ化されているかを示すことができる。UseAgentレジスタの設定値は、回路ブロック130aがアクティブ化され、スレーブポートが非透過モードであることを示すことができ、UseAgentレジスタのクリア値は、回路ブロック130が非アクティブ化され、スレーブポートが透過モードであることを示すことができる。スレーブポート用の別のレジスタは、「Disconnect」値を格納して、スイッチ638が接続されている(閉じている)か切断されている(開いている)かを示すことができる。Disconnectレジスタの設定値は、スイッチ638が開いていることを示すことができ、Disconnectレジスタのクリア値は、スイッチ638が閉じていることを示すことができる。
【0036】
図7は、一実施形態において、スレーブデバイスタイプに基づくネットワークデバイス構成に関連する例示的な電圧検出を示す図である。デバイス120は、1つまたは複数のスレーブデバイスのSDA電圧を決定するように構成された比較器702を含むことができる。一例では、マルチプレクサ708は、スレーブデバイス150を順次選択することができ、選択したスレーブデバイスのSDA電圧710を比較器702に入力することができる。例えば、1.5Vまたは2.1Vのいずれかのしきい値電圧が、システム100の使用者またはコントローラ122によって設定することができる。マルチプレクサ704は、選択した電圧712を比較器702に出力することができる。比較器702は、SDA電圧710と選択した電圧712とを比較して、SDA電圧が、選択した電圧712により高いまたは低いかを決定することができる。比較器702の結果714は、マスターポート104a、104bとスレーブポート140とを初期化するために使用することができる。例えば、選択した電圧712は2.1Vであり得、比較器の結果714は、スレーブデバイス150の1つのSDA電圧710が、選択した2.1Vの電圧よりも大きいことを示すことができる。
【0037】
比較器702は、結果714をコントローラ122に出力することができ、コントローラ122は、LDOレギュレータ(例えば、図6に示されるLDOレギュレータ602、620)を有効にして、マスターポート104a、104bとスレーブポート140との電圧を調整することができる。一例では、スレーブデバイス150は、IBIトレース706を介してIBI要求を送信して、選択したマスターデバイスに新しい状態またはイベントを通知することができる。I3Cスレーブは、ポート状態変化の検出、エラーの検出、または他のタイプのIBIイベントなどのような特定のIBI生成イベントに対応してIBIを生成することができる。いくつかの例では、比較器702によって実行される電圧検出は、スレーブポートが切断されているかどうかを検出することができる(たとえば、SDA電圧710がゼロ値を持つなどのような異常な場合)。
【0038】
図8Aおよび図8Bは、一実施形態において、非透過モードで実施することができる回路ブロックの詳細を示す図である。図8Aは、SMBusエージェント800(例えば、回路ブロック130のうちの回路ブロック)がアクティブまたはアクティブ化されている(例えば、対応するスレーブポートが非透過モードにある)場合での例示的な構成を示している。図8Bは、SMBusエージェント800が非アクティブまたは非アクティブ化されている(例えば、対応するスレーブポートが透過モードにあるかまたは切断されている)場合での例示的な構成を示している。SMBusエージェント800は、スレーブ側マスターとして動作するように構成でき、スレーブトランザクションをサポートするように構成できる回路ブロック130のうちの回路ブロックであり得る。SMBusエージェント800は、書き込み、読み取り、書き込み後に読み出しが続くトランザクションを起動するように構成されたマスターエージェントまたは回路ブロックを含むことができる。
【0039】
SMBusエージェント800は、スレーブポート(例えば、スレーブポート140のうちのスレーブポート)からトランザクションを受信するように構成されたスレーブエージェントまたは回路ブロックをさらに含むことができる。SMBusエージェント800は、トランザクションデータおよび記述子を格納するように構成された1つまたは複数のトランザクションバッファをさらに含むことができる。
【0040】
SMBusエージェント800に装着されたスレーブポート(「装着したスレーブポート」)は、ブリッジング回路822およびブリッジング回路824を含むことができる。ブリッジング回路822、824は、装着したスレーブポートに接続せれるスレーブデバイス用のODおよび/またはプッシュプルモードを容易にすることができる論理コンポーネントを含むことができる。図8Aにおいて、SMBusエージェント800がアクティブであるとき(例えば、装着したスレーブポートが非透過モードにあるとき)、装着したスレーブポートに接続されたSCLチャネル842は、ブリッジング回路822に接続され、装着したスレーブポートに接続されたSDAチャネル844は、ブリッジ回路824に接続される。さらに、非透過モードでは、選択したマスターポートに接続されたSCLチャネル802とSDAチャネル804とはそれぞれ、ブリッジ回路822、824から切断することができる。こうして、選択したマスターデバイスは、装着したスレーブポートに接続されたスレーブデバイスと相互作用しないかもしれず、SMBusエージェント800は、相互作用を容易にすることができる。一例では、SCLチャネル842は、VIO論理レベル(例えば、図6Aおよび図6Bに示されたLDOレギュレータからの調整電圧)で動作するプッシュプル出力ドライバであり得る。さらに、SCLチャネル842は、装着したスレーブポートがI2CモードであるかI3Cモードであるかに関係なく、プッシュプル動作で動作することができる。IBIが有効になっている場合、ペイロードとしてステータスレジスタを持つIBIが、IBIトレース812を介して選択したマスターデバイスに対して生成される。データアクセスラインは、SMBusエージェント800がアクティブか非アクティブかに関係なく、SMBusエージェント800とマスター側のオンチップスレーブインタフェース810との間に存在することもできる。
【0041】
SMBusエージェント800のマスターエージェントは、例えば、SMBusまたはI2Cトランザクションを開始することができ、SCLストレッチングをサポートすることができる。SMBusエージェント800は、スレーブ側のSCLストレッチングもサポートすることができる。SMBusエージェント800のマスターエージェントとスレーブエージェントとは並行して操作(動作)することができる。一例では、スレーブエージェントは2つのトランザクションバッファにアクセスすることができ、最初のスレーブトランザクションを受信した直後に新しいスレーブトランザクションを受信できるようにし、バッファリングされたデータはマスター側でまだ取得されていない。両方のバッファが一杯になると、スレーブエージェントは後続のトランザクションで否定応答を出力する。SMBusエージェント800は、ストレージエレメント108のページ化バッファ空間を介してアクセスできる専用データバッファをさらに含むことができる。SMBusエージェント800は、マスター側オンチップスレーブインタフェース810(例えば、オンチップスレーブインタフェース106a、106b)からトランザクション記述子を受信して、装着したスレーブポートでSMBusマスタートランザクションを開始することができる。
【0042】
図8Bにおいて、SMBusエージェント800が非アクティブであるとき(例えば、装着したスレーブポートが透過モードにあるとき)、マスター側のSCLチャネル802は、スレーブ側のSCLチャネル842に接続することができ、マスター側のSDAチャネル804は、ブリッジ回路824を介してスレーブ側のSDAチャネル844に接続することができる。さらに、透過モードでは、SMBusエージェント800をブリッジ回路824から切断することができ、IBIは、無効である(動作しない)。こうして、選択したマスターデバイスは、装着したスレーブポートに接続されたスレーブデバイスと相互作用することができる。
【0043】
図9は、一実施形態において、スレーブデバイスタイプに基づくネットワークデバイス構成を実施するプロセス900を示すフロー図である。プロセス900は、ブロック902、904、および/または906のうちの1つまたは複数によって示されるように、1つまたは複数の動作、作用(アクション)、または機能を含むことができる。個別のブロックとして図示されているが、様々なブロックは、所望の実装に応じて、追加のブロックに分割でき、より少ないブロックに組合わせでき、削除でき、または並行に実行することができる。
【0044】
プロセス900は、ブロック902で開始することができる。ブロック90で、ネットワークデバイスは、マスターデバイスと複数のスレーブデバイスとの間でデータトランザクションを検出することができる。プロセス900は、ブロック902からブロック904に進むことができる。ブロック904で、ネットワークデバイスは、データトランザクションのタイプを決定することができる。プロセス900は、ブロック904からブロック906に進むことができる。ブロック906において、ネットワークデバイスは、決定したタイプのデータトランザクションに基づいて、スレーブデバイスに接続された複数のスレーブポートを制御して、第1の動作モード、第2の動作モード、および第3の動作モードのうちの特定の動作モードの下でデータトランザクションを実行することができる。第1の動作モードは、マスターデバイスに、ネットワーク要素を介して複数のスレーブデバイスとのデータトランザクションを実行させることができ、複数のスレーブデバイスは、ネットワーク要素を介して互いに接続されている。第2の動作モードは、マスターデバイスを複数のスレーブポートから切断することができ、複数のスレーブポートに接続された複数の回路ブロックに、複数のスレーブデバイスとのデータトランザクションを実行させることができる。第3の動作モードは、マスターデバイスに、ネットワーク要素を介して複数のスレーブデバイスの第1のサブセットとのデータトランザクションを実行させることができ、マスターデバイスを、複数のスレーブデバイスの第2のサブセットから切断させることができる。
【0045】
いくつかの例では、ネットワークデバイスは、データトランザクションのタイプがI3Cトランザクションであることに対応して、複数のスレーブポートに対して第1の動作モードをアクティブ化することができる。いくつかの例では、ネットワークデバイスは、データトランザクションのタイプがI2Cトランザクションであることに対応して、複数のスレーブポートに対して第2の動作モードをアクティブ化することができる。いくつかの例では、ネットワークデバイスは、複数のスレーブデバイスの第1のサブセットが、決定したタイプのデータトランザクションを実行できることに対応して、および、複数のスレーブデバイスの第2のサブセットが、決定したタイプのデータトランザクションを実行できないことに対応して、複数のスレーブポートに対して第3の動作モードをアクティブ化することができる。
【0046】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータプログラム製品の可能な実装のアーキテクチャ、機能、および動作を示している。この点で、フローチャートまたはブロック図の各ブロックは、モジュール、セグメント、または命令の一部を表してもよく、これは、具体的な論理機能を実行するための1つまたは複数の実行可能命令を含んでいる。いくつかの代替の実装では、ブロックに示されている機能は、図に示されている順序とは異なるかもしれない。たとえば、連続して表示される2つのブロックは、実際には、実質的に同時に実行されるかもしれず、または、関連する機能に応じて、ブロックが逆の順序で実行されることも時々ある。ブロック図および/またはフローチャート図の各ブロック、およびブロック図および/またはフローチャート図のブロックの組み合わせは、特定の機能を実行し、または作用し、または特別な目的のハードウェアとコンピュータ命令の組み合わせを実行する特別な目的のハードウェアベースのシステムによって実行することができることにも留意されたい。
【0047】
本明細書で使用される用語は、特定の実施形態を説明することのみを目的としており、本発明を限定することを意図するものではない。本明細書で使用される場合、単数形「a」、「an」および「the」は、文脈が明らかに他のことを示さない限り、複数形も含むことを意図している。さらに、「comprises(含む)」および/または「comprising(含む)」という用語は、本明細書で使用される場合、記載された特徴、整数、ステップ、動作、エレメント(要素)、および/またはコンポーネント(構成要素)の存在を述べるが、1つまたは複数の他の特徴、整数、ステップ、動作、エレメント、コンポーネント、および/またはそれらのグループの存在または追加を妨げるものではないことが理解される。
【0048】
本発明の様々な実施形態の説明は、例示の目的で提示されてきたが、網羅的であることまたは開示された実施形態に限定されることを意図するものではない。 説明された実施形態の範囲および趣旨から逸脱することなく、多くの変更および変形が当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、市場で見られる技術に対する実際の適用または技術的改善を最もよく説明するため、または、当業者が本明細書に開示される実施形態を理解できるようにするために選択された。
図1
図2
図3A
図3B
図4
図5
図6A
図6B
図7
図8A
図8B
図9
【手続補正書】
【提出日】2022-07-04
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項1
【補正方法】変更
【補正の内容】
【請求項1】
装置であって、
マスターデバイスに接続されたマスターポートと、
複数のスレーブデバイスに接続された複数のスレーブポートと、
前記マスターポートに接続されたネットワーク要素と、
前記マスターポートおよび前記複数のスレーブポートに接続され、前記複数のスレーブポートを制御して、第1の動作モード、第2の動作モード、および第3の動作モードのうち特定の動作モードで動作するように構成されたコントローラと、
を備え、
前記第1の動作モードは、前記マスターデバイスに、前記ネットワーク要素を介して前記複数のスレーブデバイスとのデータトランザクションを実行させ、前記複数のスレーブデバイスは前記ネットワーク要素を介して互いに接続されており、
前記第2の動作モードは、前記マスターポートを前記複数のスレーブポートから切断し、前記複数のスレーブポートに接続された複数の回路ブロックに、前記複数のスレーブデバイスとの前記データトランザクションを実行させ、
前記第3の動作モードは、前記マスターデバイスに、前記ネットワーク要素を介して前記複数のスレーブデバイスの第1のサブセットとの前記データトランザクションを実行させ、前記マスターデバイスを、前記複数のスレーブデバイスの第2のサブセットから切断させる、装置。
【手続補正2】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項10
【補正方法】変更
【補正の内容】
【請求項10】
システムであって、
マスターデバイスと、
複数のスレーブデバイスと、
前記マスターデバイスおよび前記複数のスレーブデバイスに接続されたネットワークデバイスとを備え、
前記ネットワークデバイスは、
前記マスターデバイスに接続されたマスターポートと、
前記複数のスレーブデバイスに接続れた複数のスレーブポートと、
前記マスターポートに接続されたネットワーク要素と、
前記マスターポートおよび前記複数のスレーブポートに接続され、前記複数のスレーブポートを制御して、第1の動作モード、第2の動作モード、および第3の動作モードのうちの特定の動作モードの下で動作するように構成されたコントローラと、
を備え、
前記第1の動作モードは、前記マスターデバイスに、前記ネットワーク要素を介して前記複数のスレーブデバイスとのデータトランザクションを実行させ、前記複数のスレーブデバイスは、前記ネットワーク要素を介して互いに接続されており、
前記第2の動作モードは、前記マスターポートを前記複数のスレーブポートから切断し、前記複数のスレーブポートに接続された複数の回路ブロックに、前記複数のスレーブデバイスとの前記データトランザクションを実行させ、
前記第3の動作モードは、前記マスターデバイスに、前記ネットワーク要素を介して前記複数のスレーブデバイスの第1のサブセットとの前記データトランザクションを実行させ、前記マスターデバイスを、前記複数のスレーブデバイスの第2のサブセットから切断させる、システム。
【手続補正3】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項14
【補正方法】変更
【補正の内容】
【請求項14】
請求項10に記載のシステムにおいて、
前記マスターデバイスは、第1のマスターデバイスであり、
前記マスターポートは、第1のマスターポートであり、
前記システムは、第2のマスターデバイスをさらに備え、
前記ネットワークデバイスは、前記第2のマスターデバイスに接続された第2のマスターポートをさらに備え、
前記コントローラは、前記第1のマスターポートおよび前記第2のマスターポートのうちの前記第1のマスターポートを選択するように構成された、システム。
【手続補正4】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項15
【補正方法】変更
【補正の内容】
【請求項15】
請求項14に記載のシステムにおいて、
前記第2のマスターデバイスは、前記ネットワークデバイスの外部である、システム。