(57)【要約】  PCIeトランザクションレイヤへのコヒーレンシ駆動型拡張が開示される。例示的な態様では、PCIeシステムにおいてメモリを使用できるように緩和型整合性モデルをサポートするためのコヒーレンシエージェントがPCIeシステムに追加される。具体的には、エンドポイントが、メモリからの読取りおよびメモリへの書込みを行うためにメモリの一部の所有権を要求することができる。コヒーレンシエージェントは、要求された部分を含むアドレス範囲を割り当てる。要求側エンドポイントは、割り当てられたアドレス範囲に対応するメモリの内容をローカルエンドポイントメモリ内にコピーして読取り動作および書込み動作をローカルに実行する。所有側エンドポイントは、コピーされたメモリ内容の更新されたスナップショットを要求時に提供してもよい。コピーされたメモリ内容の使用が完了したとき、またはコヒーレンシエージェントから要求が出されたときに、アドレス範囲の所有権がルートコンプレックスに戻り、エンドポイントが、更新された内容をシステムメモリ要素内のアドレス範囲に送り返す。
2018518777.tif 000002
【特許請求の範囲】
【請求項１】
周辺構成要素相互接続(PCI)エクスプレス(PCIe)システムにおけるホストメモリを制御するための方法であって、
ホスト内のホストメモリに関連付けられた前記ホストのルートコンプレックスにおいて、前記ホストメモリ内に記憶されたデータの第1の部分へのアクセスを求める第1のエンドポイントからの要求を受信するステップと、
前記ホストからの前記データの前記第1の部分に関連付けられたアドレス範囲の所有権を前記ホストのコヒーレンシエージェントに要求するステップと、
前記コヒーレンシエージェントによって、前記アドレス範囲の前記所有権を前記ホストから前記第1のエンドポイントに割り当てるステップと、
前記アドレス範囲に関連付けられたデータを前記第1のエンドポイントに提供するステップと、
前記アドレス範囲の前記所有権が前記ホストに戻るときに、前記アドレス範囲に関連付けられた修正されたデータを前記第1のエンドポイントから受信するステップと
を含む方法。
【請求項２】
前記アドレス範囲に関連付けられた前記修正されたデータを前記ホストメモリ内に記憶するステップをさらに含む、請求項1に記載の方法。
【請求項３】
前記アドレス範囲に関連付けられた前記修正されたデータを前記第1のエンドポイントから受信する前に、前記アドレス範囲の前記所有権を前記ホストに返すことを前記第1のエンドポイントに要求するステップをさらに含む、請求項1に記載の方法。
【請求項４】
前記アドレス範囲の前記所有権を前記第1のエンドポイントから前記ルートコンプレックスにおいて受信するステップと、
前記アドレス範囲に関連付けられた前記修正されたデータを前記第1のエンドポイントから受信した後で、前記アドレス範囲の前記所有権を前記ホストに返すステップと
をさらに含む、請求項1に記載の方法。
【請求項５】
前記ルートコンプレックスにおいて、前記ホストメモリ内に記憶された前記データの第2の部分を読み取ることを求める第2のエンドポイントからの要求を受信するステップであって、前記データの前記第2の部分が前記アドレス範囲に関連付けられる、ステップと、
前記アドレス範囲に関連付けられた前記データのスナップショットを前記第1のエンドポイントに要求するステップと、
前記アドレス範囲に関連付けられた前記データの前記スナップショットを前記第2のエンドポイントに提供するステップと
をさらに含む、請求項1に記載の方法。
【請求項６】
前記ルートコンプレックスにおいて、前記ホストメモリ内に記憶された前記データの第2の部分へのアクセスを求める第2のエンドポイントからの要求を受信するステップであって、前記データの前記第2の部分が前記アドレス範囲に関連付けられる、ステップと、
前記コヒーレンシエージェントに、前記第1のエンドポイントから前記アドレス範囲の前記所有権を要求するステップと、
前記第1のエンドポイントに、前記アドレス範囲の前記所有権を前記ホストに返すことを要求するステップと、
前記コヒーレンシエージェントによって、前記アドレス範囲に関連付けられた前記修正されたデータを前記第1のエンドポイントから受信した後で、前記アドレス範囲の前記所有権を前記第1のエンドポイントから前記第2のエンドポイントに割り当てるステップと、
前記アドレス範囲に関連付けられた前記データを前記第2のエンドポイントに提供するステップと
をさらに含む、請求項1に記載の方法。
【請求項７】
周辺構成要素相互接続(PCI)エクスプレス(PCIe)システムのホストシステムであって、
PCIeバスを通して少なくとも第1のエンドポイントおよび第2のエンドポイントに結合されるように構成されたPCIeバスインターフェースと、
データが記憶されたホストメモリであって、少なくとも前記データの第1の部分および前記データの第2の部分がアドレス範囲に関連付けられる、ホストメモリと、
前記ホストメモリに関連付けられたルートコンプレックスであって、前記アドレス範囲に関連付けられた前記データの前記第1の部分の所有権を求める前記第1のエンドポイントからの要求を前記PCIeバスから受信するように構成されたルートコンプレックスと、
前記アドレス範囲の所有権を制御するように構成されたコヒーレンシエージェントと
を備えるホストシステム。
【請求項８】
前記ルートコンプレックスは、
前記ホストシステムからの前記データの前記第1の部分に関連付けられた前記アドレス範囲の前記所有権を前記コヒーレンシエージェントに要求することと、
前記アドレス範囲に関連付けられた前記データを前記第1のエンドポイントに提供することと
を行うようにさらに構成され、
前記コヒーレンシエージェントは、前記アドレス範囲の前記所有権を前記ホストシステムから前記第1のエンドポイントに割り当てることと、
前記アドレス範囲に関連付けられた修正されたデータを前記ホストメモリ内に記憶することと
を行うようにさらに構成される、請求項7に記載のホストシステム。
【請求項９】
前記ルートコンプレックスは、
前記アドレス範囲に関連付けられた前記データを前記第1のエンドポイントに提供することと、
前記アドレス範囲の前記所有権が前記ホストシステムに戻るときに、前記アドレス範囲に関連付けられた前記修正されたデータを前記第1のエンドポイントから受信することと
を行うようにさらに構成される、請求項8に記載のホストシステム。
【請求項１０】
前記ルートコンプレックスは、前記アドレス範囲に関連付けられた前記修正されたデータを前記ホストメモリ内に記憶するようにさらに構成される、請求項9に記載のホストシステム。
【請求項１１】
前記ルートコンプレックスは、前記アドレス範囲に関連付けられた前記修正されたデータを前記第1のエンドポイントから受信する前に、前記アドレス範囲の前記所有権を前記ホストシステムに返すことを前記第1のエンドポイントに要求するようにさらに構成される、請求項9に記載のホストシステム。
【請求項１２】
前記ルートコンプレックスは、前記第1のエンドポイントから前記アドレス範囲の前記所有権を受信し、前記アドレス範囲に関連付けられた前記修正されたデータを前記第1のエンドポイントから受信した後で、前記アドレス範囲の前記所有権を前記ホストシステムに返すようにさらに構成される、請求項9に記載のホストシステム。
【請求項１３】
前記ルートコンプレックスは、
前記ホストメモリ内に記憶された前記データの前記第2の部分を読み取ることを求める要求を前記第2のエンドポイントから受信することと、
前記アドレス範囲に関連付けられた前記データのスナップショットを前記第1のエンドポイントに要求することと、
前記アドレス範囲に関連付けられた前記データの前記スナップショットを前記第2のエンドポイントに提供することと
を行うようにさらに構成される、請求項9に記載のホストシステム。
【請求項１４】
前記ルートコンプレックスは、
前記ホストメモリ内に記憶された前記データの前記第2の部分へのアクセスを求める要求を前記第2のエンドポイントから受信することと、
前記コヒーレンシエージェントに、前記第1のエンドポイントから前記アドレス範囲の前記所有権を要求することと、
前記第1のエンドポイントに、前記アドレス範囲の前記所有権を前記ホストシステムに返すことを要求することと、
前記アドレス範囲に関連付けられた前記データを前記第2のエンドポイントに提供することと
を行うようにさらに構成され、
前記コヒーレンシエージェントは、前記アドレス範囲に関連付けられた前記修正されたデータを前記第1のエンドポイントから受信した後で、前記アドレス範囲の前記所有権を前記第1のエンドポイントから前記第2のエンドポイントに割り当てるようにさらに構成される、請求項9に記載のホストシステム。
【請求項１５】
集積回路(IC)に組み込まれる、請求項7に記載のホストシステム。
【請求項１６】
セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、スマートフォン、タブレット、ファブレット、サーバ、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビ、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、ポータブルデジタルビデオプレーヤ、および自動車からなる群から選択されるデバイスの中に組み込まれる、請求項7に記載のホストシステム。
【請求項１７】
周辺構成要素相互接続(PCI)エクスプレス(PCIe)システムのエンドポイントにおけるデータを管理するための方法であって、
第1のエンドポイントによって、ホストメモリに関連付けられたルートコンプレックスに、前記ホストメモリ内に記憶されたデータの一部へのアクセスを要求するステップと、
アドレス範囲に関連付けられたデータおよび前記アドレス範囲の所有権を前記ルートコンプレックスから受信するステップと、
前記アドレス範囲に関連付けられた前記データを前記第1のエンドポイントのローカルメモリに記憶するステップと、
前記アドレス範囲の前記所有権がホストシステムに戻ったことに応答して、前記アドレス範囲に関連付けられた修正されたデータを前記ルートコンプレックスに提供するステップと
を含む方法。
【請求項１８】
前記アドレス範囲の前記所有権を前記ホストシステムに返すことを求める要求を前記ルートコンプレックスから受信したことに応答して、前記アドレス範囲に関連付けられた前記修正されたデータを提供するステップをさらに含む、請求項17に記載の方法。
【請求項１９】
前記第1のエンドポイントによって、前記アドレス範囲に関連付けられた前記修正されたデータを前記ルートコンプレックスに提供した後で、前記アドレス範囲の前記所有権を前記ホストシステムに返すステップをさらに含む、請求項17に記載の方法。
【請求項２０】
前記第1のエンドポイントにおいて、前記アドレス範囲に関連付けられた前記データのスナップショットを求める第2のエンドポイントからの要求を前記ルートコンプレックスから受信するステップと、
前記アドレス範囲に関連付けられた前記データの前記スナップショットを前記第2のエンドポイントに提供するステップと
をさらに含む、請求項17に記載の方法。
【請求項２１】
前記第1のエンドポイントにおいて、前記アドレス範囲の前記所有権を前記ホストシステムに返すことを求める要求を受信するステップと、
前記アドレス範囲に関連付けられた前記データを前記ルートコンプレックスに提供するステップと、
前記第1のエンドポイントによって、前記アドレス範囲の前記所有権を前記ホストシステムに返すステップと
をさらに含む、請求項17に記載の方法。
【請求項２２】
周辺構成要素相互接続(PCI)エクスプレス(PCIe)システムのエンドポイントであって、
ローカルメモリと、
前記ローカルメモリに結合された処理回路であって、
PCIeシステムのホストメモリに関連付けられたルートコンプレックスに、前記ホストメモリ内に記憶されたデータの一部へのアクセスを要求することと、
アドレス範囲に関連付けられたデータおよび前記アドレス範囲の所有権を前記ルートコンプレックスから受信することと、
前記アドレス範囲に関連付けられた前記データを前記エンドポイントの前記ローカルメモリに記憶することと、
前記アドレス範囲の前記所有権が前記PCIeシステムに戻ったことに応答して、前記アドレス範囲に関連付けられた修正されたデータを前記ルートコンプレックスに提供することと
を行うように構成された処理回路と
を備えるエンドポイント。
【請求項２３】
前記処理回路は、前記アドレス範囲の前記所有権を前記PCIeシステムに返すことを求める要求を前記ルートコンプレックスから受信したことに応答して、前記アドレス範囲に関連付けられた前記修正されたデータを提供するようにさらに構成される、請求項22に記載のエンドポイント。
【請求項２４】
前記処理回路は、前記アドレス範囲に関連付けられた前記修正されたデータを前記ルートコンプレックスに提供した後で、前記アドレス範囲の前記所有権を前記PCIeシステムに返すようにさらに構成される、請求項22に記載のエンドポイント。
【請求項２５】
前記処理回路は、
前記アドレス範囲に関連付けられた前記データのスナップショットを求める第2のエンドポイントからの要求を前記ルートコンプレックスから受信したことに応答して、前記アドレス範囲に関連付けられた前記データの前記スナップショットを前記第2のエンドポイントに提供するようにさらに構成される、請求項22に記載のエンドポイント。
【請求項２６】
前記処理回路は、
前記アドレス範囲に関連付けられた前記データを前記ルートコンプレックスに提供し、前記アドレス範囲の前記所有権を前記PCIeシステムに返すことを求める要求を受信したことに応答して前記アドレス範囲の前記所有権を前記PCIeシステムに返すようにさらに構成される、請求項22に記載のエンドポイント。
【請求項２７】
周辺構成要素相互接続(PCI)エクスプレス(PCIe)システムのホストシステムであって、
PCIeバスを通して少なくとも第1のエンドポイントおよび第2のエンドポイントとインターフェースするための手段と、
データを記憶するための手段であって、少なくとも前記データの第1の部分および前記データの第2の部分がアドレス範囲に関連付けられる、手段と、
データを記憶するための前記手段内に記憶された前記データを求めるデータ所有権要求を処理するための手段であって、前記アドレス範囲に関連付けられた前記データの前記第1の部分の所有権を求める前記第1のエンドポイントからの要求を前記PCIeバスから受信するように構成された手段と、
メモリを制御するための手段であって、前記アドレス範囲の所有権を制御するように構成された手段と
を備えるホストシステム。
【請求項２８】
データ所有権要求を処理するための前記手段は、
前記ホストシステムからの前記データの前記第1の部分に関連付けられた前記アドレス範囲の前記所有権を、メモリを制御するための前記手段に要求することと、
前記アドレス範囲に関連付けられた前記データを前記第1のエンドポイントに提供することと
を行うようにさらに構成され、
メモリを制御するための前記手段は、前記アドレス範囲の前記所有権を前記ホストシステムから前記第1のエンドポイントに割り当てることと、
前記アドレス範囲に関連付けられた修正されたデータを、データを記憶するための前記手段内に記憶することと
を行うようにさらに構成される、請求項27に記載のホストシステム。
【請求項２９】
周辺構成要素相互接続(PCI)エクスプレス(PCIe)システムであって、
ホストシステムを備え、前記ホストシステムが、
PCIeバスを通して少なくともPCIeシステムのエンドポイントに結合されるように構成されたPCIeバスインターフェースと、
データが記憶されたホストメモリであって、前記データの少なくとも一部がアドレス範囲に関連付けられる、ホストメモリと、
前記ホストメモリに関連付けられたルートコンプレックスであって、前記アドレス範囲に関連付けられた前記データの前記一部の所有権を求める前記エンドポイントからの要求を前記PCIeバスから受信するように構成されたルートコンプレックスと、
前記アドレス範囲の所有権を制御するように構成されたコヒーレンシエージェントと
を備え、
前記エンドポイントが、ローカルメモリと処理回路とを備え、前記処理回路が、
前記ホストメモリ内に記憶された前記データの前記一部へのアクセスを前記ルートコンプレックスに要求することと、
前記アドレス範囲に関連付けられた前記データおよび前記アドレス範囲の前記所有権を前記ルートコンプレックスから受信することと、
前記アドレス範囲に関連付けられた前記データを前記ローカルメモリに記憶することと、
前記アドレス範囲の前記所有権が前記ホストシステムに戻ったことに応答して、前記アドレス範囲に関連付けられた修正されたデータを前記ルートコンプレックスに提供することと
を行うように構成されるPCIeシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権主張
本出願は、米国特許法第119条(e)に基づいて、2015年6月22日に出願された「COHERENCY DRIVEN ENHANCEMENTS TO A PERIPHERAL COMPONENT INTERCONNECT (PCI) EXPRESS (PCIe) TRANSACTION LAYER」という名称の米国仮特許出願第62/182,815号の優先権を主張し、同仮出願の内容全体が参照により本明細書に組み込まれる。
【０００２】
本出願はまた、2016年6月16日に出願された「COHERENCY DRIVEN ENHANCEMENTS TO A PERIPHERAL COMPONENT INTERCONNECT (PCI) EXPRESS (PCIe) TRANSACTION LAYER」という名称の米国特許出願第15/184,181号の優先権を主張し、同出願の内容全体が参照により本明細書に組み込まれる。
【０００３】
本開示の技術は概して、周辺構成要素相互接続(PCI)エクスプレス(PCIe)システムに関する。
【背景技術】
【０００４】
モバイル通信デバイスは、現代社会においてますます一般的になっている。そのようなモバイル通信デバイスの普及が進んでいる理由の1つは、これらのデバイス上で利用可能な機能が増大していることである。そのような機能の増大は、モバイル通信デバイス内にかなり複雑な集積回路(IC)を含めることによって可能になる。モバイル通信デバイス内のICの数および複雑さが増すと、様々なICが互いに通信することが必要になる。
【０００５】
ICが互いに通信するのを可能にする様々なプロトコルを概説するいくつかの規格が公開されている。普及しているプロトコルには、周辺構成要素相互接続(PCI)プロトコルがあり、このプロトコルには、PCIエクスプレス(PCIe)プロトコルを含む様々な形態がある。PCIプロトコルおよびPCIeプロトコルは、IC間通信プロトコルとして有用であるが、ケーブルまたはその他のコネクタを通してモバイル端末をリモートデバイスに結合するのに使用されてもよい。
【０００６】
PCIeプロトコルは、メモリ要素へのアクセスを制御するのにしばしば使用される。多くの例では、複数のPCIe構成要素がメモリ要素に同時にアクセスすることを望む場合がある。そのような場合、そのようなアクセス要求は、データを読み取る/書き込むためにシステムメモリ(またはデバイスメモリ)に送られる。しかし、PCIeはコヒーレントでないと定義される。すなわち、システムメモリ(またはデバイスメモリ)への修正が自動的に他のPCIe構成要素に伝達されることはない。要するに、メモリ要素へのアクセスを正しく管理し制御するのは困難である場合がある。したがって、メモリリソースのそのような同時使用を管理するためのより優れた機構が必要である。
【発明の概要】
【課題を解決するための手段】
【０００７】
発明を実施するための形態で開示する態様は、周辺構成要素相互接続(PCI)エクスプレス(PCIe)トランザクションレイヤへのコヒーレンシ駆動型拡張(coherency driven enhancement)を含む。例示的な態様では、PCIeシステムにおいてメモリを使用できるように緩和型整合性モデル(relaxed consistency model)をサポートするためのコヒーレンシエージェント(coherency agent)がPCIeシステムに追加される。PCIeシステムは、データが記憶されたシステムメモリ要素を含んでもよい。本開示の例示的な態様は、PCIeシステムのエンドポイントにシステムメモリ要素に対して読取りおよび書込みを行うことを要求するのではなく、エンドポイントがシステムメモリ要素の一部の所有権(ownership)を要求するのを可能にする。システムメモリ要素のそのような部分は、システムメモリ要素のアドレス範囲によって定義されてもよい。コヒーレンシエージェントは、要求されたアドレス範囲を要求側エンドポイント(requesting endpoint)に割り当てる。この割当ては、所有権の割当てと呼ばれる場合もある。要求側エンドポイントは、割り当てられたアドレス範囲に対応するシステムメモリ要素の内容をローカルエンドポイントメモリ内にコピーする。要求側エンドポイントは次いで、コピーされたメモリ内容に対してローカル読取り動作および書込み動作を実行する。所有側エンドポイント(owning endpoint)は、ルートコンプレックス(root complex)またはその他のエンドポイントによる要求に応じて(任意のローカル書込み動作によって更新された)コピーされたメモリ内容の更新されたスナップショットを送ってもよい。エンドポイントによるコピーされたメモリ内容の使用が完了したとき、またはルートコンプレックスのコヒーレンシエージェントから命令が出された後に、アドレス範囲の所有権がルートコンプレックスに戻り、エンドポイントが、更新された内容をシステムメモリ要素内のアドレス範囲に送り返す。
【０００８】
この点に関して、一態様では、PCIeシステムにおけるホストメモリを制御するための方法が提供される。この方法は、ホスト内のホストメモリに関連付けられた、ホストのルートコンプレックスにおいて、ホストメモリ内に記憶されたデータの第1の部分へのアクセスを求める第1のエンドポイントからの要求を受信するステップを含む。この方法は、ホストからのデータの第1の部分に関連付けられたアドレス範囲の所有権をホストのコヒーレンシエージェントに要求するステップをさらに含む。この方法は、コヒーレンシエージェントによって、アドレス範囲の所有権をホストから第1のエンドポイントに割り当てるステップと、アドレス範囲に関連付けられたデータを第1のエンドポイントに提供するステップとをさらに含む。この方法は、アドレス範囲の所有権がホストに戻るときに、アドレス範囲に関連付けられた修正されたデータを第1のエンドポイントから受信するステップをさらに含む。
【０００９】
別の態様では、PCIeシステムのホストシステムが提供される。ホストシステムは、PCIeバスを通して少なくとも第1のエンドポイントおよび第2のエンドポイントに結合されるように構成されたPCIeバスインターフェースを含む。ホストシステムは、データが記憶されたホストメモリであって、少なくともデータの第1の部分およびデータの第2の部分がアドレス範囲に関連付けられる、ホストメモリをさらに含む。ホストシステムは、ホストメモリに関連付けられ、アドレス範囲に関連付けられたデータの第1の部分の所有権を求める第1のエンドポイントからの要求をPCIeバスから受信するように構成されたルートコンプレックスをさらに含む。ホストシステムは、アドレス範囲の所有権を制御するように構成されたコヒーレンシエージェントをさらに含む。
【００１０】
別の態様では、PCIeシステムのエンドポイントにおけるデータを管理するための方法が提供される。この方法は、第1のエンドポイントによって、ホストメモリに関連付けられたルートコンプレックスに、ホストメモリ内に記憶されたデータの一部へのアクセスを要求するステップを含む。この方法は、アドレス範囲に関連付けられたデータおよびアドレス範囲の所有権をルートコンプレックスから受信するステップをさらに含む。この方法は、アドレス範囲に関連付けられたデータを第1のエンドポイントのローカルメモリに記憶するステップをさらに含む。この方法は、アドレス範囲の所有権がホストシステムに戻ったことに応答して、アドレス範囲に関連付けられた修正されたデータをルートコンプレックスに提供するステップをさらに含む。
【００１１】
別の態様では、PCIeシステムのエンドポイントが提供される。エンドポイントはローカルメモリを含む。エンドポイントは、ローカルメモリに結合された処理回路も含む。エンドポイントの処理回路は、PCIeシステムのホストメモリに関連付けられたルートコンプレックスに、ホストメモリ内に記憶されたデータの一部へのアクセスを要求するように構成される。エンドポイントの処理回路は、アドレス範囲に関連付けられたデータおよびアドレス範囲の所有権をルートコンプレックスから受信するようにさらに構成される。エンドポイントの処理回路は、アドレス範囲に関連付けられたデータをエンドポイントのローカルメモリに記憶するようにさらに構成される。エンドポイントの処理回路は、アドレス範囲の所有権がPCIeシステムに戻ったことに応答して、アドレス範囲に関連付けられた修正されたデータをルートコンプレックスに提供するようにさらに構成される。
【００１２】
別の態様では、PCIeシステムのホストシステムが提供される。ホストシステムは、PCIeバスを通して少なくとも第1のエンドポイントおよび第2のエンドポイントとインターフェースするための手段を含む。ホストシステムは、データを記憶するための手段であって、少なくともデータの第1の部分およびデータの第2の部分がアドレス範囲に関連付けられる手段をさらに含む。ホストシステムは、データを記憶するための手段内に記憶されたデータを求めるデータ所有権要求を処理するための手段であって、アドレス範囲に関連付けられたデータの第1の部分の所有権を求める第1のエンドポイントからの要求をPCIeバスから受信するように構成された手段をさらに含む。ホストシステムは、アドレス範囲の所有権を制御するように構成されたメモリを制御するための手段をさらに含む。
【００１３】
別の態様では、PCIeシステムが提供される。PCIeシステムは、PCIeバスを通してPCIeシステムの少なくともエンドポイントに結合されるように構成されたPCIeバスインターフェースを含むホストシステムを含む。ホストシステムは、データが記憶されたホストメモリであって、データの少なくとも一部がアドレス範囲に関連付けられる、ホストメモリをさらに含む。ホストシステムは、ホストメモリに関連付けられ、アドレス範囲に関連付けられたデータの上記の一部の所有権を求めるエンドポイントからの要求をPCIeバスから受信するように構成されたルートコンプレックスをさらに含む。ホストシステムは、アドレス範囲の所有権を制御するように構成されたコヒーレンシエージェントをさらに含む。
【００１４】
PCIeシステムは、ホストメモリ内に記憶されたデータの上記の一部へのアクセスをルートコンプレックスに要求するように構成されたローカルメモリおよび処理回路を含むエンドポイントをさらに含む。処理回路は、アドレス範囲に関連付けられたデータおよびアドレス範囲の所有権をルートコンプレックスから受信するようにさらに構成される。処理回路は、アドレス範囲に関連付けられたデータをローカルメモリにおいて、記憶するようにさらに構成される。処理回路は、アドレス範囲の所有権がホストシステムに戻ったことに応答して、アドレス範囲に関連付けられた修正されたデータをルートコンプレックスに提供するようにさらに構成される。
【図面の簡単な説明】
【００１５】
【図１】従来の周辺構成要素相互接続(PCI)エクスプレス(PCIe)システムのブロック図である。
【図２】PCIeトランザクションレイヤへのコヒーレンシ駆動型拡張を含む例示的なPCIeシステムのブロック図である。
【図３】図2のPCIeシステムにおけるメモリ要素の簡略状態図である。
【図４】図2のPCIeシステムの要素間のコヒーレンシシグナリングに関する例示的なメッセージ信号図である。
【図５】ホストメモリを制御するための例示的な方法を示すフローチャートである。
【図６】例示的なPCIeエンドポイントにおけるデータを管理するための例示的な方法を示すフローチャートである。
【図７】図2のPCIeシステムを含むことができる例示的なプロセッサベースシステムのブロック図である。
【発明を実施するための形態】
【００１６】
次に図面を参照しながら、本開示のいくつかの例示的な態様について説明する。「例示的な」という単語は、本明細書では、「例、実例、または例証として機能する」を意味するために使用される。「例示的」として本明細書において説明するいずれの態様も、必ずしも他の態様よりも好ましいか、または有利であると解釈されるべきでない。
【００１７】
発明を実施するための形態で開示する態様は、周辺構成要素相互接続(PCI)エクスプレス(PCIe)トランザクションレイヤへのコヒーレンシ駆動型拡張を含む。例示的な態様では、PCIeシステムにおいてメモリを使用するための緩和型整合性モデルをサポートするためにコヒーレンシエージェントがPCIeシステムに追加される。PCIeシステムは、データが記憶されたシステムメモリ要素を含んでもよい。本開示の例示的な態様は、PCIeシステムのエンドポイントにシステムメモリ要素に対して読取りおよび書込みを行うことを要求するのではなく、エンドポイントがシステムメモリ要素の一部の所有権を要求するのを可能にする。システムメモリ要素のそのような部分は、システムメモリ要素のアドレス範囲によって定義されてもよい。コヒーレンシエージェントは、要求されたアドレス範囲を要求側エンドポイントに割り当てる。この割当ては、所有権の割当てと呼ばれる場合もある。要求側エンドポイントは、割り当てられたアドレス範囲に対応するシステムメモリ要素の内容をローカルエンドポイントメモリ内にコピーする。要求側エンドポイントは次いで、コピーされたメモリ内容に対してローカル読取り動作および書込み動作を実行する。所有側エンドポイントは、ルートコンプレックスまたはその他のエンドポイントの要求に応じて(任意のローカル書込み動作によって更新された)コピーされたメモリ内容の更新されたスナップショットを送ってもよい。エンドポイントによるコピーされたメモリ内容の使用が完了したとき、またはルートコンプレックスのコヒーレンシエージェントから命令が出された後に、アドレス範囲の所有権がルートコンプレックスに戻され、エンドポイントが、更新された内容をシステムメモリ要素内のアドレス範囲に送り返す。
【００１８】
PCIeトランザクションレイヤへのコヒーレンシ駆動型拡張の例示的な態様について説明する前に、まず従来のPCIeシステムについて図1において簡単に説明する。PCIeトランザクションレイヤへのコヒーレンシ駆動型拡張の特定の例示的な態様についての説明ではまず、図2を参照する。
【００１９】
この点に関して、図1は、従来のPCIeシステム100のブロック図である。従来のPCIeシステム100は、中央処理ユニット(CPU)、システムオンチップ(SoC)などであってもよいホストシステム102を含む。ホストシステム102は、PCIeバス106を通して複数のPCIeエンドポイント104(1)〜104(M)に結合される。非制限的な例では、従来のPCIeシステム100は、PCIeエンドポイント104(N+1)〜104(M)を制御するPCIeスイッチ108を含む。この例では、PCIeエンドポイント104(N+1)〜104(M)は、PCIeスイッチ108を介してホストシステム102と通信するように構成される。PCIeプロトコルでは、ホストシステム102などのホストと複数のPCIeエンドポイント104(1)〜104(M)などのエンドポイントとの間のポイントツーポイント接続が必要であることを諒解されたい。したがって、各接続はそれ自体のバスと見なされてもよい。しかし、説明の都合上、そのような複数の接続を本明細書ではPCIeバス106と呼ぶ。さらに、ハブまたはPCIeスイッチ108を使用することによってポイントツーマルチポイント機能が実現されてもよい。図示のように、PCIeバス106内のポイントツーポイント接続によってPCIeエンドポイント104(1)〜104(N)が接続され、PCIeエンドポイント104(N+1)〜104(M)がPCIeスイッチ108に結合される。PCIeシステム100が、本開示の範囲から逸脱せずに複数のスイッチを含んでもよく(図示せず)あるいはスイッチを含まなくてもよい(同じく図示せず)ことを諒解されたい。同様に、任意のスイッチに結合されるエンドポイントの数は、本開示の範囲から逸脱せずに変更されてもよい。複数のPCIeエンドポイント104(1)〜104(M)の各々は、ホストシステム102に対するスレーブと見なされてもよい。
【００２０】
引き続き図1を参照すると、ホストシステム102は、少なくとも1つのプロセッサ110と、メモリコントローラ112と、メモリ管理ユニット(MMU)114とを含む。プロセッサ110、メモリコントローラ112、およびMMU114は、内部バス116(たとえば、システムネットワークオンチップ(SNoC)バス)に結合される。メモリコントローラ112は、たとえば、ダイナミックランダムアクセスメモリ(DRAM)またはダブルデータレート(DDR)DRAMなどのメモリ118を制御するように構成される。ホストシステム102は、MMU114に通信可能に結合されたPCIeルートコンプレックス(RC)120も含む。PCIe RC120は、信号をPCIeバス106に送信するかあるいはPCIeバス106から受信するのを可能にするバスインターフェース122を介して複数のPCIeエンドポイント104(1)〜104(M)およびPCIeスイッチ108を制御するように構成される。PCIe RC120と複数のPCIeエンドポイント104(1)〜104(M)とPCIeスイッチ108との間の通信は、トランザクションレイヤパケット(TLP)(図示せず)に基づく。各TLPは、PCIe RC120がTLPを複数のPCIeエンドポイント104(1)〜104(M)およびPCIeスイッチ108に正しく転送するのを可能にするアドレス情報を含む。この点に関して、PCIe RC120はインターネットプロトコル(IP)ネットワークのルータに類似しており、TLPは、IPネットワークにおいて伝達されるIPパケットに類似している。
【００２１】
PCIeプロトコルによれば、TLPは、PCIe RC120と複数のPCIeエンドポイント104(1)〜104(M)とPCIeスイッチ108との間で読取りおよび書込みなどのトランザクション、ならびにある種のイベントを伝達するのに使用される。PCIeプロトコルでは、メモリトランザクション、入出力(I/O)トランザクション、構成トランザクション、およびメッセージトランザクションを含む4種のトランザクションを定義している。メモリトランザクションには、読取り要求トランザクション、書込み要求トランザクション、およびアトミック動作要求トランザクションが含まれる。メモリトランザクションについては、PCIeはコヒーレントでないと定義されている。すなわち、たとえば、メモリ118の修正が、複数のPCIeエンドポイント104(1)〜104(M)などの他のPCIe構成要素に自動的に伝達されることはない。したがって、たとえば、複数のPCIeエンドポイント104(1)〜104(M)などのPCIe構成要素からメモリ118へのアクセスを管理し制御するのは困難である場合がある。
【００２２】
この点に関して、図2は、PCIeトランザクションレイヤへのコヒーレンシ駆動型拡張を含む例示的なPCIeシステム200の概略図である。例示的な態様では、PCIeシステム200は例示的なホストシステム202を含む。ホストシステム202は、例示的なコヒーレンシエージェント204(図面ではCAと示されている)などのメモリを後述の機能を実行するように制御するための手段を含む。具体的には、コヒーレンシエージェント204は、例示的なPCIe RC206などの、データに関するデータ所有権要求を処理するための手段とMMU208との間に追加され、PCIeシステム200に緩和型整合性モデルを提供する。
【００２３】
ホストシステム202は、図1に示す従来のホストシステム102に関して上記で説明した要素と同様ないくつかの要素を含む。具体的には、ホストシステム202は、MMU208と、少なくとも1つのプロセッサ210と、メモリコントローラ212と、ホストメモリ214などの、データを記憶するための手段と、内部バス216(たとえば、システムネットワークオンチップ(SNoC)バス)とを含む。これらの要素は、図1に示す従来のホストシステム102におけるMMU114、少なくとも1つのプロセッサ110、メモリコントローラ112、メモリ118、および内部バス116に類似しており、本明細書ではこれらの要素についてさらに詳細に説明することはない。PCIeシステム200は、PCIeバス220を通してPCIe RC206に結合された複数の例示的なPCIeエンドポイント218(1)〜218(M)をさらに含む。複数のPCIeエンドポイント218(1)〜218(M)の各々は、ローカルメモリ222(1)〜222(M)のそれぞれのローカルメモリと、後述の機能を実行するように構成された、ローカルメモリ222(1)〜222(M)のそれぞれのローカルメモリに結合されたそれぞれの処理回路224(1)〜224(M)とを含む。さらに、非制限的な例では、PCIeシステム200は、PCIeエンドポイント218(N+1)〜218(M)を制御するPCIeスイッチ226を含む。したがって、この例では、PCIeエンドポイント218(N+1)〜218(M)は、PCIeスイッチ226を介してホストシステム202と通信するように構成される。さらに、PCIe RC206は、複数のPCIeエンドポイント218(1)〜218(M)およびPCIeスイッチ226と通信しそれらを制御するためにバスインターフェース228などのエンドポイントとインターフェースするための手段に結合される。
【００２４】
本開示の例示的な態様では、緩和型整合性モデルは、複数のPCIeエンドポイント218(1)〜218(M)のうちの1つなどのエンドポイントがホストメモリ214の一部からの読取りおよび一部への書込みを望むときに実施される。本開示の例示的な態様がなければ、エンドポイントがホストメモリ214からの読取りまたはホストメモリ214への書込みを望むたびに、対応するメッセージがPCIeバス220を横切らなければならない。本開示の例示的な態様は、これらのメッセージをなくし、したがって、コヒーレンシエージェント204を使用して、ホストメモリ214の内容の所望の一部が記憶されたアドレス範囲の所有権を要求側エンドポイント(たとえば、PCIeエンドポイント218(1))に割り当てることによってPCIeバス220上のメッセージトラフィックを低減させる。PCIeバス220上のメッセージトラフィックがそのように低減すると、他のメッセージについて利用可能な帯域幅が大きくなるのでPCIeバス220上の全体的なレイテンシが小さくなる場合がある。このように所有権が割り当てられた後、PCIeエンドポイント218(1)は、アドレス範囲内に記憶されたデータ、したがってホストメモリ214の所望の部分をローカルメモリ222(1)にコピーする。PCIeエンドポイント218(1)は、PCIeバス220を介して通信してアドレス範囲内のホストメモリ214の所望の部分にアクセスする必要なしにローカルメモリ222(1)にアクセスすることによってアドレス範囲内のデータの所望の部分により高速にアクセスしてもよい。PCIeエンドポイント218(1)は次いで、PCIeエンドポイント218(1)がコピーされたデータに対するPCIeエンドポイント218(1)の要件を完了するか、あるいはPCIe RC206がPCIeエンドポイント218(1)に再び所有権を要求するまで、コピーされたデータに対して読取り動作および書込み動作を実行してもよい。
【００２５】
図3は、図4のメッセージ信号図400において信号が交互に転送されるときの図2のホストメモリ214およびローカルメモリ222(1)の簡略状態図300である。したがって、以下の説明では図3と図4の両方が使用される。この点に関して、初期状態302では、ホストメモリ214にはデータが記憶されており、このデータは、よく理解されるように、関連付けられたアドレスを有する場合がある。一例として、アドレス範囲は、ホストメモリ214内に記憶されたデータのブロックまたは部分を指す場合がある。図示のように、214(A)〜214(X)は、データA〜Xのそれぞれに異なるブロックのアドレスである。同様に、PCIeエンドポイント218(1)のローカルメモリ222(1)は、初期状態302では空であってもよい。PCIeエンドポイント218(1)は、PCIeエンドポイント218(1)がホストメモリ214の一部からの読取りおよび一部への書込みを行う必要があると判定してもよい。一例として、ホストメモリ214の上記の一部は、アドレス範囲214(H)〜214(K)におけるホストメモリ214の内容である。しかし、ホストメモリ214の上記の一部が、アドレス範囲214(H)〜214(K)におけるホストメモリ214の内容の全部でなくてもよいことに留意されたい。たとえば、PCIeエンドポイント218(1)は、アドレス範囲214(I)〜214(J)における内容へのアクセスのみを望むことがあるが、コヒーレンシエージェント204は、PCIeエンドポイント218(1)が必要とするホストメモリ214の内容よりも大きい所定のサイズのアドレス範囲を与える場合がある。
【００２６】
この点に関して、PCIeエンドポイント218(1)は、信号402(図4)を介してアドレス範囲214(H)〜214(K)の所有権を要求してもよい。PCIe RC206は、信号402を受信し、信号404を介してコヒーレンシエージェント204にアドレス範囲214(H)〜214(K)のステータスを問い合わせる。コヒーレンシエージェント204は、アドレス範囲214(H)〜214(K)は現在割り当てられていないと判定し、次いで、PCIe RC206に、アドレス範囲214(H)〜214(K)の所有権を信号406を介してPCIeエンドポイント218(1)に渡すよう命令する。PCIe RC206は、PCIeエンドポイント218(1)への信号408を介して要求を確認する。次いで、アドレス範囲214(H)〜214(K)内のデータH〜Kがローカルメモリ222(1)にコピーされる(信号410)。
【００２７】
引き続き図3を参照すると、データH〜Kは、状態304に示すようにローカルメモリ222(1)にコピーされる。同様に、状態304は、アドレス範囲214(H)〜214(K)の所有権が何らかの他のエンティティに割り当てられており、ホストメモリ214内のアドレス範囲214(H)〜214(K)からの読取りおよびアドレス範囲214(H)〜214(K)への書込みが許容されないことを示す。PCIeエンドポイント218(1)は、ローカルメモリ222(1)上のデータH〜K(信号412)に対する読取り/書込みを行い、それによって、状態306によって示されるようにローカルメモリ222(1)の内容をデータH'〜K'に変更してもよい。ホストメモリ214には依然としてデータH〜Kが記憶されていることに留意されたい。
【００２８】
引き続き図4を参照すると、PCIeエンドポイント218(1)はアドレス範囲214(H)〜214(K)の所有権を有するが、PCIeエンドポイント218(N)は、信号414を介してPCIe RC206に読取り要求を送る。PCIe RC206は、信号416を介して、コヒーレンシエージェント204へのアドレス範囲214(H)〜214(K)のステータスについての問合せによって応答する。コヒーレンシエージェント204は、信号418を介して、アドレス範囲214(H)〜214(K)の所有権がPCIeエンドポイント218(1)にあることの表示によって応答する。コヒーレンシエージェント204は、信号420を介して、PCIeエンドポイント218(1)に、アドレス範囲のスナップショット(すなわち、アドレス範囲214(H)〜214(K)に対応するデータのスナップショット)(現在はPCIeエンドポイント218(1)におけるデータH'〜K')を与えるよう要求する。PCIeエンドポイント218(1)は、信号422を介してPCIeエンドポイント218(N)に読取り完了を示し、アドレス範囲の要求されたスナップショットを(すなわち、アドレス範囲214(H)〜214(K)に対応するデータH'〜K'を)PCIeエンドポイント218(N)に与える。アドレス範囲のスナップショットが、直接送られるのではなくホストシステム202を通して送られる場合があることに留意されたい。しかし、PCIeエンドポイント218(1)とPCIeエンドポイント218(N)との間に直接PCIe接続が存在する場合、アドレス範囲のスナップショットが直接与えられてもよい。
【００２９】
場合によっては、PCIeエンドポイント218(N)に、アドレス範囲214(H)〜214(K)に書込みを行う必要が生じる場合がある。PCIe RC206に書込み要求(信号424)が送られる。PCIe RC206は、信号426を介して、コヒーレンシエージェント204へのアドレス範囲214(H)〜214(K)のステータスについての問合せによって応答する。コヒーレンシエージェント204は、アドレス範囲214(H)〜214(K)の所有権をPCIe RC206に返すことをPCIe RC206に通知することによって応答する(信号428)。次いで、PCIe RC206は、PCIeエンドポイント218(1)に、アドレス範囲214(H)〜214(K)の所有権をPCIe RC206に返すよう命令する(信号430)。次いで、PCIeエンドポイント218(1)は、ホストメモリ214にデータH'〜K'を書き込み(信号432)、PCIeエンドポイント218(1)によってアドレス範囲214(H)〜214(K)に加えられた変更によってホストメモリ214を更新する。この例では、すべてのデータH〜KがH'〜K'として書き直されるものと仮定しているが、本開示がそのように限定されないことに留意されたい。たとえば、PCIeエンドポイント218(1)が、PCIeエンドポイント218(1)において実際に加えられた変更に応じてH'〜K'の代わりにH'、I、J'およびK'、HおよびI'〜K'、または古い値と新しい値の任意の他の組合せを返してもよい。
【００３０】
したがって、図3の状態308に示すように、アドレス範囲214(H)〜214(K)は現在、データH'〜K'を有し、データH'〜K'は、上述のようにアドレス範囲214(H)〜214(K)の所有権をPCIeエンドポイント218(N)に割り当てるか、またはPCIe RC206が、アドレス範囲214(H)〜214(K)の所有権を保持することと、PCIeエンドポイント218(N)にホストメモリ214に対する読取りおよび書込みを許可することとを可能にすることによって、PCIeエンドポイント218(N)によって操作される場合がある。この点に関して、PCIe RC206は、PCIeエンドポイント218(N)によって書込み要求(信号424)に加えられたデータをホストメモリ214に書き込む(信号434)。
【００３１】
図示されていないが、PCIeエンドポイント218(1)が、アドレス範囲214(H)〜214(K)の所有権が転送されたタスクを完了したときに、PCIeエンドポイント218(1)がアドレス範囲214(H)〜214(K)の所有権を返すことも可能である。そのような場合、前述のように、データH'〜K'が再びホストメモリ214にコピーされてもよい。
【００３２】
図5は、例示的な態様によるホストメモリを制御するための例示的な方法を示すフローチャート500である。この方法については、図2の例示的なPCIeシステム200、図3の状態図300、および図4のメッセージ信号図400に関連して説明する。この方法は、ホストシステム202におけるホストメモリ214に関連付けられたホストシステム202のPCIe RC206において、ホストメモリ214内に記憶されたデータH〜Kの第1の部分へのアクセスを求める第1のPCIeエンドポイント218(1)からの要求を受信することを含む(ブロック502)。次いで、PCIe RC206は、ホストシステム202からのデータH〜Kの第1の部分に関連付けられたアドレス範囲214(H)〜214(K)の所有権をホストシステム202のコヒーレンシエージェント204に要求する(ブロック504)。次いで、コヒーレンシエージェント204は、アドレス範囲214(H)〜214(K)の所有権を前記ホストシステム202から第1のPCIeエンドポイント218(1)に割り当てる(ブロック506)。次いで、ホストメモリ214は、アドレス範囲214(H)〜214(K)に関連付けられたデータH〜Kを第1のPCIeエンドポイント218(1)に提供する(ブロック508)。第1のPCIeエンドポイント218(1)がデータH〜Kに対して所望の動作を実行した後、次のステップでは、アドレス範囲の所有権が第1のPCIeエンドポイント218(1)からホストシステム202に転送されたときに、ホストシステム202がアドレス範囲214(H)〜214(K)に関連付けられた修正されたデータH'〜K'を受信する(ブロック510)。
【００３３】
図6は、PCIeエンドポイント218(1)などの例示的なPCIeエンドポイントにおけるデータを管理するための例示的な方法を示すフローチャート600である。この方法は、第1のPCIeエンドポイント218(1)によって、ホストメモリ214に関連付けられたPCIe RC206に、ホストメモリ214内に記憶されたデータH〜Kの一部へのアクセスを要求することを含む(ブロック602)。この方法は、アドレス範囲214(H)〜214(K)に関連付けられたデータH〜Kおよびアドレス範囲214(H)〜214(K)の所有権をPCIe RC206から受信することをさらに含む(ブロック604)。第1のPCIeエンドポイント218(1)は、データH〜Kおよび対応するアドレス範囲214(H)〜214(K)にわたる所有権を受信した後、アドレス範囲214(H)〜214(K)に関連付けられたデータH〜Kをローカルメモリ222(1)において記憶する(ブロック606)。この方法は、アドレス範囲214(H)〜214(K)の所有権がホストシステム202に戻ったことに応答して、アドレス範囲214(H)〜214(K)に関連付けられた修正されたデータH'〜K'をPCIe RC206に提供する(ブロック608)ことをさらに含む。
【００３４】
本明細書で開示する態様によるPCIeトランザクションレイヤへのコヒーレンシ駆動型拡張は、任意のプロセッサベースデバイス内に設けられるか、またはその中に組み込まれ得る。例としては、限定ではないが、セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定位置データユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、スマートフォン、タブレット、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビ、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、自動車およびポータブルデジタルビデオプレーヤが含まれる。
【００３５】
この点に関して、図7は、図2に示すPCIeシステム200を使用することができるプロセッサベースシステム700の一例を示す。この例では、プロセッサベースシステム700は、各々が1つまたは複数のプロセッサ(図示せず)を含む1つまたは複数の中央処理ユニット(CPU)702を含む。CPU702は、一時的に記憶されたデータに迅速にアクセスできるようにプロセッサ(図示せず)に結合されたキャッシュメモリ(図示せず)を有してもよい。CPU702は、システムバス704に結合される。よく知られているように、CPU702は、システムバス704を介してアドレス情報、制御情報、およびデータ情報を交換することによって、これらの他のデバイスと通信する。たとえば、CPU702は、バストランザクション要求を1つまたは複数のメモリコントローラ706に伝達することができる。
【００３６】
他のデバイスをシステムバス704に接続することができる。図7に示すように、これらのデバイスには、例として、1つまたは複数のディスプレイコントローラ708、および1つまたは複数のPCIeコントローラ710を含めることができる。PCIeコントローラ710は、1つまたは複数のPCIeインターフェース714または図2に示すPCIeバス220を通して、図2の複数のPCIeエンドポイント218(1)〜218(M)などの1つまたは複数のPCIeデバイス712と通信してもよい。メモリコントローラ706は、1つまたは複数のメモリインターフェース718を通してメモリユニット716と相互作用してもよい。例示的な態様では、メモリインターフェース718が図2のPCIeバス220のようなPCIeバスであってもよいことに留意されたい。ディスプレイコントローラ708は、ディスプレイインターフェース722を介してディスプレイ720と通信してもよい。ディスプレイ720は、限定はしないが、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、発光ダイオード(LED)ディスプレイなどを含む、任意のタイプのディスプレイを含むことができる。
【００３７】
図7には示されていないが、プロセッサベースシステム700は、ネットワーク(図示せず)との間でデータを交換するのを可能にするように構成された任意のデバイスであってもよいネットワークインターフェースデバイスを含んでもよい。ネットワークは、限定はしないが、有線ネットワークまたはワイヤレスネットワーク、プライベートネットワークまたは公衆ネットワーク、ローカルエリアネットワーク(LAN)、ワイヤレスローカルエリアネットワーク(WLAN)、ワイドエリアネットワーク(WAN)、BLUETOOTH(登録商標)ネットワーク、およびインターネットを含む、任意のタイプのネットワークであってよい。ネットワークインターフェースデバイスは、必要に応じて、任意のタイプの通信プロトコルをサポートするように構成することができる。
【００３８】
本明細書で開示する態様に関して説明する様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムは、電子ハードウェアとして実装されても、メモリもしくは別のコンピュータ可読媒体に記憶されプロセッサもしくは他の処理デバイスによって実行される命令として実装されても、あるいはその両方の組合せとして実装されてもよいことが、当業者にはさらに理解されよう。本明細書で説明するスレーブデバイスは、例として、任意の回路、ハードウェア構成要素、集積回路(IC)、またはICチップにおいて採用される場合がある。本明細書で開示するメモリは、任意のタイプおよびサイズのメモリであってもよく、任意のタイプの所望の情報を記憶するように構成されてもよい。この互換性を明確に示すために、上記では、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップについて、概してそれらの機能に関して説明した。そのような機能がどのように実施されるのかは、特定の適用例、設計選択、および/またはシステム全体に課された設計制約によって決まる。当業者は、説明した機能を特定の用途ごとに様々な方法で実装してもよいが、そのような実装形態の決定は、本開示の範囲からの逸脱を引き起こすものと解釈されるべきではない。
【００３９】
本明細書で開示する態様に関して説明する種々の例示的な論理ブロック、モジュール、および回路は、プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタロジック、個別ハードウェア構成要素、または本明細書で説明する機能を実行するように設計されるそれらの任意の組合せを用いて実装または実行される場合がある。プロセッサは、マイクロプロセッサである場合があるが、代替としてプロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンである場合がある。プロセッサはまた、コンピューティングデバイスの組合せ(たとえば、DSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサの組合せ、DSPコアとそれと連携する1つもしくは複数のマイクロプロセッサとの組合せ、または任意の他のそのような構成)として実装されてもよい。
【００４０】
本明細書で開示する態様は、ハードウェアとして具現化され、かつハードウェアに記憶されている命令として具現化されてもよく、このような命令は、たとえば、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、電気的プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野において知られている任意の他の形態のコンピュータ可読媒体内に存在してよい。例示的な記憶媒体が、プロセッサがその記憶媒体から情報を読み取ること、およびその記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体はプロセッサと一体化されてもよい。プロセッサおよび記憶媒体は、ASIC内に存在してもよい。ASICは、リモート局の中に存在する場合がある。代替として、プロセッサおよび記憶媒体は、リモート局、基地局、またはサーバの中に個別構成要素として存在する場合がある。
【００４１】
本明細書の例示的な態様のいずれかにおいて説明する動作ステップは、例および説明を提供するために記載されていることにも留意されたい。上述の動作は、図示したシーケンス以外の多数の異なるシーケンスにおいて実行される場合がある。さらに、単一の動作ステップとして説明した動作は、実際にはいくつかの異なるステップとして実行される場合がある。追加として、例示的な態様において説明した1つまたは複数の動作ステップが組み合わされてもよい。当業者には容易に明らかであるように、フローチャート図に示す動作ステップが数多くの異なる修正を受けてよいことを理解されたい。当業者にはまた、情報および信号が様々な異なる技術および技法のいずれを使用して表されてもよいことが理解されよう。たとえば、上記の説明全体を通じて参照される場合があるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁気粒子、光場あるいは光粒子、またはそれらの任意の組合せによって表現されてもよい。
【００４２】
本開示の前の説明は、いかなる当業者も本開示を作成または使用することができるように提供される。本開示の様々な変更は、当業者には容易に明らかになり、本明細書で定義した一般原理は、本開示の趣旨または範囲から逸脱することなく他の変形形態に適用されてもよい。したがって、本開示は、本明細書で説明した例および設計に限定されるものではなく、本明細書で開示する原理および新規の特徴と一致する最も広い範囲を与えられるべきである。
【符号の説明】
【００４３】
100  PCIeシステム
102  ホストシステム
104  PCIeエンドポイント
106  PCIeバス
108  PCIeスイッチ
110  プロセッサ
112  メモリコントローラ
114  MMU
116  内部バス
118  メモリ
120  PCIeルートコンプレックス
122  バスインターフェース
200  PCIeシステム
202  ホストシステム
204  コヒーレンシエージェント
206  PCIeルートコンプレックス
208  MMU
210  プロセッサ
212  メモリコントローラ
214  ホストメモリ
216  内部バス
218  PCIeエンドポイント
220  PCIeバス
226  PCIeスイッチ
228  バスインターフェース
302  初期状態
304  状態
402  信号
408  信号
700  プロセッサベースシステム
720  ディスプレイ
722  ディスプレイインターフェース
704  システムバス
706  メモリコントローラ
708  ディスプレイコントローラ
710  PCIeコントローラ
712  PCIeデバイス
714  PCIeインターフェース
716  メモリユニット
718  メモリインターフェース
722  ディスプレイインターフェース
【図１】
2018518777.tif 000003
【図２】
2018518777.tif 000004
【図３】
2018518777.tif 000005
【図４】
2018518777.tif 000006
【図５】
2018518777.tif 000007
【図６】
2018518777.tif 000008
【図７】
2018518777.tif 000009
【手続補正書】
【提出日】平成29年12月25日(2017.12.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
周辺構成要素相互接続(PCI)エクスプレス(PCIe)システムにおけるホストメモリを制御するための方法であって、
ホスト内のホストメモリに関連付けられた前記ホストのルートコンプレックスにおいて、前記ホストメモリ内に記憶されたデータの第1の部分へのアクセスを求める第1のエンドポイントからの要求を受信するステップと、
前記ホストからの前記データの前記第1の部分に関連付けられたアドレス範囲の所有権を前記ホストのコヒーレンシエージェントに要求するステップと、
前記コヒーレンシエージェントによって、前記アドレス範囲の前記所有権を前記ホストから前記第1のエンドポイントに割り当てるステップと、
前記アドレス範囲に関連付けられたデータを前記第1のエンドポイントに提供するステップと、
前記アドレス範囲の前記所有権が前記ホストに戻るときに、前記アドレス範囲に関連付けられた修正されたデータを前記第1のエンドポイントから受信するステップと
を含む方法。
【請求項２】
前記アドレス範囲に関連付けられた前記修正されたデータを前記ホストメモリ内に記憶するステップをさらに含む、請求項1に記載の方法。
【請求項３】
前記アドレス範囲に関連付けられた前記修正されたデータを前記第1のエンドポイントから受信する前に、前記アドレス範囲の前記所有権を前記ホストに返すことを前記第1のエンドポイントに要求するステップをさらに含む、請求項1に記載の方法。
【請求項４】
前記アドレス範囲の前記所有権を前記第1のエンドポイントから前記ルートコンプレックスにおいて受信するステップと、
前記アドレス範囲に関連付けられた前記修正されたデータを前記第1のエンドポイントから受信した後で、前記アドレス範囲の前記所有権を前記ホストに返すステップと
をさらに含む、請求項1に記載の方法。
【請求項５】
前記ルートコンプレックスにおいて、前記ホストメモリ内に記憶された前記データの第2の部分を読み取ることを求める第2のエンドポイントからの要求を受信するステップであって、前記データの前記第2の部分が前記アドレス範囲に関連付けられる、ステップと、
前記アドレス範囲に関連付けられた前記データのスナップショットを前記第1のエンドポイントに要求するステップと、
前記アドレス範囲に関連付けられた前記データの前記スナップショットを前記第2のエンドポイントに提供するステップと
をさらに含む、請求項1に記載の方法。
【請求項６】
前記ルートコンプレックスにおいて、前記ホストメモリ内に記憶された前記データの第2の部分へのアクセスを求める第2のエンドポイントからの要求を受信するステップであって、前記データの前記第2の部分が前記アドレス範囲に関連付けられる、ステップと、
前記コヒーレンシエージェントに、前記第1のエンドポイントから前記アドレス範囲の前記所有権を要求するステップと、
前記第1のエンドポイントに、前記アドレス範囲の前記所有権を前記ホストに返すことを要求するステップと、
前記コヒーレンシエージェントによって、前記アドレス範囲に関連付けられた前記修正されたデータを前記第1のエンドポイントから受信した後で、前記アドレス範囲の前記所有権を前記第1のエンドポイントから前記第2のエンドポイントに割り当てるステップと、
前記アドレス範囲に関連付けられた前記データを前記第2のエンドポイントに提供するステップと
をさらに含む、請求項1に記載の方法。
【請求項７】
周辺構成要素相互接続(PCI)エクスプレス(PCIe)システムのホストシステムであって、
PCIeバスを通して少なくとも第1のエンドポイントおよび第2のエンドポイントに結合されるように構成されたPCIeバスインターフェースと、
データが記憶されたホストメモリであって、少なくとも前記データの第1の部分および前記データの第2の部分がアドレス範囲に関連付けられる、ホストメモリと、
前記ホストメモリに関連付けられたルートコンプレックスであって、
前記アドレス範囲に関連付けられた前記データの前記第1の部分の所有権を求める前記第1のエンドポイントからの要求を前記PCIeバスから受信することと、
前記ホストシステムからの前記データの前記第1の部分に関連付けられた前記アドレス範囲の前記所有権をコヒーレンシエージェントに要求することと、
前記アドレス範囲に関連付けられた前記データを前記第1のエンドポイントに提供することと、
前記アドレス範囲の前記所有権が前記ホストシステムに戻るときに、前記アドレス範囲に関連付けられた修正されたデータを前記第1のエンドポイントから受信することと
を行うように構成されたルートコンプレックスと、
前記アドレス範囲の所有権を制御するように構成された前記コヒーレンシエージェントであって、
前記アドレス範囲の前記所有権を前記ホストシステムから前記第1のエンドポイントに割り当てるようにさらに構成される、前記コヒーレンシエージェントと
を備えるホストシステム。
【請求項８】
前記ルートコンプレックスは、
前記アドレス範囲に関連付けられた前記修正されたデータを前記ホストメモリ内に記憶することを行うようにさらに構成される、請求項7に記載のホストシステム。
【請求項９】
前記ルートコンプレックスは、前記アドレス範囲に関連付けられた前記修正されたデータを前記ホストメモリ内に記憶するようにさらに構成される、請求項8に記載のホストシステム。
【請求項１０】
前記ルートコンプレックスは、前記アドレス範囲に関連付けられた前記修正されたデータを前記第1のエンドポイントから受信する前に、前記アドレス範囲の前記所有権を前記ホストシステムに返すことを前記第1のエンドポイントに要求するようにさらに構成される、請求項8に記載のホストシステム。
【請求項１１】
前記ルートコンプレックスは、前記第1のエンドポイントから前記アドレス範囲の前記所有権を受信し、前記アドレス範囲に関連付けられた前記修正されたデータを前記第1のエンドポイントから受信した後で、前記アドレス範囲の前記所有権を前記ホストシステムに返すようにさらに構成される、請求項8に記載のホストシステム。
【請求項１２】
前記ルートコンプレックスは、
前記ホストメモリ内に記憶された前記データの前記第2の部分を読み取ることを求める要求を前記第2のエンドポイントから受信することと、
前記アドレス範囲に関連付けられた前記データのスナップショットを前記第1のエンドポイントに要求することと、
前記アドレス範囲に関連付けられた前記データの前記スナップショットを前記第2のエンドポイントに提供することと
を行うようにさらに構成される、請求項8に記載のホストシステム。
【請求項１３】
前記ルートコンプレックスは、
前記ホストメモリ内に記憶された前記データの前記第2の部分へのアクセスを求める要求を前記第2のエンドポイントから受信することと、
前記コヒーレンシエージェントに、前記第1のエンドポイントから前記アドレス範囲の前記所有権を要求することと、
前記第1のエンドポイントに、前記アドレス範囲の前記所有権を前記ホストシステムに返すことを要求することと、
前記アドレス範囲に関連付けられた前記データを前記第2のエンドポイントに提供することと
を行うようにさらに構成され、
前記コヒーレンシエージェントは、前記アドレス範囲に関連付けられた前記修正されたデータを前記第1のエンドポイントから受信した後で、前記アドレス範囲の前記所有権を前記第1のエンドポイントから前記第2のエンドポイントに割り当てるようにさらに構成される、請求項8に記載のホストシステム。
【請求項１４】
集積回路(IC)に組み込まれる、請求項7に記載のホストシステム。
【請求項１５】
セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、スマートフォン、タブレット、ファブレット、サーバ、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビ、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、ポータブルデジタルビデオプレーヤ、および自動車からなる群から選択されるデバイスの中に組み込まれる、請求項7に記載のホストシステム。
【請求項１６】
周辺構成要素相互接続(PCI)エクスプレス(PCIe)システムのエンドポイントにおけるデータを管理するための方法であって、
第1のエンドポイントによって、ホストメモリに関連付けられたルートコンプレックスに、前記ホストメモリ内に記憶されたデータの一部へのアクセスを要求するステップと、
アドレス範囲に関連付けられたデータおよび前記アドレス範囲の所有権を前記ルートコンプレックスから受信するステップと、
前記アドレス範囲に関連付けられた前記データを前記第1のエンドポイントのローカルメモリに記憶するステップと、
前記アドレス範囲の前記所有権がホストシステムに戻ったことに応答して、前記アドレス範囲に関連付けられた修正されたデータを前記ルートコンプレックスに提供するステップと
を含む方法。
【請求項１７】
前記アドレス範囲の前記所有権を前記ホストシステムに返すことを求める要求を前記ルートコンプレックスから受信したことに応答して、前記アドレス範囲に関連付けられた前記修正されたデータを提供するステップをさらに含む、請求項16に記載の方法。
【請求項１８】
前記第1のエンドポイントによって、前記アドレス範囲に関連付けられた前記修正されたデータを前記ルートコンプレックスに提供した後で、前記アドレス範囲の前記所有権を前記ホストシステムに返すステップをさらに含む、請求項16に記載の方法。
【請求項１９】
前記第1のエンドポイントにおいて、前記アドレス範囲に関連付けられた前記データのスナップショットを求める第2のエンドポイントからの要求を前記ルートコンプレックスから受信するステップと、
前記アドレス範囲に関連付けられた前記データの前記スナップショットを前記第2のエンドポイントに提供するステップと
をさらに含む、請求項16に記載の方法。
【請求項２０】
前記第1のエンドポイントにおいて、前記アドレス範囲の前記所有権を前記ホストシステムに返すことを求める要求を受信するステップと、
前記アドレス範囲に関連付けられた前記データを前記ルートコンプレックスに提供するステップと、
前記第1のエンドポイントによって、前記アドレス範囲の前記所有権を前記ホストシステムに返すステップと
をさらに含む、請求項16に記載の方法。
【請求項２１】
周辺構成要素相互接続(PCI)エクスプレス(PCIe)システムのエンドポイントであって、
ローカルメモリと、
前記ローカルメモリに結合された処理回路であって、
PCIeシステムのホストメモリに関連付けられたルートコンプレックスに、前記ホストメモリ内に記憶されたデータの一部へのアクセスを要求することと、
アドレス範囲に関連付けられたデータおよび前記アドレス範囲の所有権を前記ルートコンプレックスから受信することと、
前記アドレス範囲に関連付けられた前記データを前記エンドポイントの前記ローカルメモリに記憶することと、
前記アドレス範囲の前記所有権が前記PCIeシステムに戻ったことに応答して、前記アドレス範囲に関連付けられた修正されたデータを前記ルートコンプレックスに提供することと
を行うように構成された処理回路と
を備えるエンドポイント。
【請求項２２】
前記処理回路は、前記アドレス範囲の前記所有権を前記PCIeシステムに返すことを求める要求を前記ルートコンプレックスから受信したことに応答して、前記アドレス範囲に関連付けられた前記修正されたデータを提供するようにさらに構成される、請求項21に記載のエンドポイント。
【請求項２３】
前記処理回路は、前記アドレス範囲に関連付けられた前記修正されたデータを前記ルートコンプレックスに提供した後で、前記アドレス範囲の前記所有権を前記PCIeシステムに返すようにさらに構成される、請求項21に記載のエンドポイント。
【請求項２４】
前記処理回路は、
前記アドレス範囲に関連付けられた前記データのスナップショットを求める第2のエンドポイントからの要求を前記ルートコンプレックスから受信したことに応答して、前記アドレス範囲に関連付けられた前記データの前記スナップショットを前記第2のエンドポイントに提供するようにさらに構成される、請求項21に記載のエンドポイント。
【請求項２５】
前記処理回路は、
前記アドレス範囲に関連付けられた前記データを前記ルートコンプレックスに提供し、前記アドレス範囲の前記所有権を前記PCIeシステムに返すことを求める要求を受信したことに応答して前記アドレス範囲の前記所有権を前記PCIeシステムに返すようにさらに構成される、請求項21に記載のエンドポイント。
【請求項２６】
周辺構成要素相互接続(PCI)エクスプレス(PCIe)システムのホストシステムであって、
PCIeバスを通して少なくとも第1のエンドポイントおよび第2のエンドポイントとインターフェースするための手段と、
データを記憶するための手段であって、少なくとも前記データの第1の部分および前記データの第2の部分がアドレス範囲に関連付けられる、手段と、
データを記憶するための前記手段内に記憶された前記データを求めるデータ所有権要求を処理するための手段であって、前記アドレス範囲に関連付けられた前記データの前記第1の部分の所有権を求める前記第1のエンドポイントからの要求を前記PCIeバスから受信するように構成され、
前記ホストシステムからの前記データの前記第1の部分に関連付けられた前記アドレス範囲の前記所有権を、メモリを制御するための手段に要求することと、
前記アドレス範囲に関連付けられた前記データを前記第1のエンドポイントに提供することと、
前記アドレス範囲の前記所有権が前記ホストシステムに戻るときに、前記アドレス範囲に関連付けられた修正されたデータを前記第1のエンドポイントから受信することと
を行うようにさらに構成される手段と、
メモリを制御するための前記手段であって、前記アドレス範囲の前記所有権を制御するように構成され、
前記アドレス範囲の前記所有権を前記ホストシステムから前記第1のエンドポイントに割り当てるようにさらに構成される、手段と
を備えるホストシステム。
【請求項２７】
データ所有権要求を処理するための前記手段は、
前記ホストシステムからの前記データの前記第1の部分に関連付けられた前記アドレス範囲の前記所有権を、メモリを制御するための前記手段に要求することと、
前記アドレス範囲に関連付けられた前記データを前記第1のエンドポイントに提供することと
を行うようにさらに構成され、
メモリを制御するための前記手段は、前記アドレス範囲の前記所有権を前記ホストシステムから前記第1のエンドポイントに割り当てることと、
前記アドレス範囲に関連付けられた前記修正されたデータを、データを記憶するための前記手段内に記憶することと
を行うようにさらに構成される、請求項26に記載のホストシステム。
【請求項２８】
周辺構成要素相互接続(PCI)エクスプレス(PCIe)システムであって、
ホストシステムを備え、前記ホストシステムが、
PCIeバスを通して少なくともPCIeシステムのエンドポイントに結合されるように構成されたPCIeバスインターフェースと、
データが記憶されたホストメモリであって、前記データの少なくとも一部がアドレス範囲に関連付けられる、ホストメモリと、
前記ホストメモリに関連付けられたルートコンプレックスであって、前記アドレス範囲に関連付けられた前記データの前記一部の所有権を求める前記エンドポイントからの要求を前記PCIeバスから受信するように構成されたルートコンプレックスと、
前記アドレス範囲の所有権を制御するように構成されたコヒーレンシエージェントと
を備え、
前記エンドポイントが、ローカルメモリと処理回路とを備え、前記処理回路が、
前記ホストメモリ内に記憶された前記データの前記一部へのアクセスを前記ルートコンプレックスに要求することと、
前記アドレス範囲に関連付けられた前記データおよび前記アドレス範囲の前記所有権を前記ルートコンプレックスから受信することと、
前記アドレス範囲に関連付けられた前記データを前記ローカルメモリに記憶することと、
前記アドレス範囲の前記所有権が前記ホストシステムに戻ったことに応答して、前記アドレス範囲に関連付けられた修正されたデータを前記ルートコンプレックスに提供することと
を行うように構成されるPCIeシステム。
【国際調査報告】
2018518777.tif 000010
2018518777.tif 000011