(57)【要約】  拡張メッセージシグナル割込み(MSI)データが開示される。一態様では、MSIビットは、システムレベル識別子を含むように修正される。例示的な態様では、MSIメッセージデータの上位16ビットはシステムレベル識別子となるように修正される。MSIメッセージデータ内にシステムレベル識別子を与えることにより、割込みコントローラは割込みソースを確認し得る。
2018518772.tif 000002
【特許請求の範囲】
【請求項１】
ペリフェラルコンポーネントインターコネクト(PCI)エクスプレス(PCIe)システムにおいて情報を引き渡す方法であって、
ホストにおいて信号を受信するステップであって、前記信号は、
ヘッダ部と、
PCIeエンドポイントからの最初の16ビットのうちの少なくとも1ビットに拡張メッセージシグナル割込み(MSI)メッセージデータを含んだボディ部と
を含む、ステップと、
前記ホストのルートコンプレックスにおいて、前記信号から前記ボディ部を抽出して、MSIベクトルのボディ部にそのまま前記拡張MSIメッセージデータを有する前記MSIベクトルを形成するステップと、
システムネットワークオンチップ(SNoC)を介して、前記MSIベクトルの前記ボディ部にそのまま前記拡張MSIメッセージデータを有する前記MSIベクトルを前記ホスト内の割込みコントローラに引き渡すステップと
を含む方法。
【請求項２】
前記ホストにおいて、ヘッダ部を含む前記信号を受信するステップは、前記ホストにおいて、前記ヘッダ部内にリクエスタ識別子を含む前記信号を受信するステップを含む、請求項1に記載の方法。
【請求項３】
前記ホストにおいて、前記拡張MSIメッセージデータを備える前記ボディ部を受信するステップは、割込み優先順位情報を含む前記ボディ部を受信するステップを含む、請求項1に記載の方法。
【請求項４】
前記ホストにおいて、前記拡張MSIメッセージデータを備える前記ボディ部を受信するステップは、割込み節度情報を含む前記ボディ部を受信するステップを含む、請求項1に記載の方法。
【請求項５】
前記ホストにおいて、前記拡張MSIメッセージデータを備える前記ボディ部を受信するステップは、追加メッセージデータを含む前記ボディ部を受信するステップを含む、請求項1に記載の方法。
【請求項６】
前記ホストにおいて、前記拡張MSIメッセージデータを備える前記ボディ部を受信するステップは、ソース識別子を含むボディ部を受信するステップを含む、請求項1に記載の方法。
【請求項７】
前記ホストから前記PCIeエンドポイントに、前記PCIeエンドポイントが前記拡張MSIメッセージデータを送ることが可能であるか否かを照会するステップをさらに含む、請求項1に記載の方法。
【請求項８】
前記MSIベクトルの前記ボディ部内の前記拡張MSIメッセージデータを使用するように、前記ホスト内の前記割込みコントローラを構成するステップをさらに含む、請求項1に記載の方法。
【請求項９】
ペリフェラルコンポーネントインターコネクト(PCI)エクスプレス(PCIe)システムにおいて情報を引き渡す方法であって、
PCIeシステム内のスレーブにおいて信号を生成するステップであって、前記信号は、
ヘッダ部と、
最初の16ビットのうちの少なくとも1ビットに拡張メッセージシグナル割込み(MSI)メッセージデータを含むボディ部と
を含む、ステップと、
前記PCIeシステムのホストに前記信号を送るステップと
を含む方法。
【請求項１０】
前記ヘッダ部は前記スレーブのためのリクエスタ識別子を含む、請求項9に記載の方法。
【請求項１１】
前記拡張MSIメッセージデータは、ソース識別子、割込み優先順位情報、および割込み節度情報のうちの1つを含む、請求項9に記載の方法。
【請求項１２】
前記ホストから機能照会を受信するステップをさらに含む、請求項9に記載の方法。
【請求項１３】
前記スレーブが前記拡張MSIメッセージデータを使用することが可能であることを示す情報を用いて、前記機能照会に応答するステップをさらに含む、請求項12に記載の方法。
【請求項１４】
ペリフェラルコンポーネントインターコネクト(PCI)エクスプレス(PCIe)システム内のホストであって、
システムネットワークオンチップ(SNoC)バスと、
PCIeバスに結合されるように構成されたPCIeバスインターフェースであって、拡張メッセージシグナル割込み(MSI)メッセージデータを有する信号を前記PCIeバスから受信するようにさらに構成されるPCIeバスインターフェースと、
前記SNoCバスに結合された割込みコントローラと、
前記SNoCバスに結合されたメモリ管理ユニットと、
前記PCIeバスインターフェースおよび前記メモリ管理ユニットに結合されたルートコンプレックスであって、前記信号からボディ部を抽出して、MSIベクトルのボディ部にそのまま前記拡張MSIメッセージデータを有する前記MSIベクトルを形成し、前記メモリ管理ユニットおよび前記SNoCバスを通して、前記MSIベクトルの前記ボディ部にそのまま前記拡張MSIメッセージデータを有する前記MSIベクトルを前記割込みコントローラに引き渡すように構成されたルートコンプレックスと
を備えるホスト。
【請求項１５】
ペリフェラルコンポーネントインターコネクト(PCI)エクスプレス(PCIe)システム内のスレーブであって、
PCIeバスに結合されるように構成されたPCIeバスインターフェースと、
スレーブが拡張メッセージシグナル割込み(MSI)メッセージデータを使用し得ることを示す情報を含む機能レジスタと、
制御システムであって、
割込み要求条件を検出し、
ヘッダ部と前記拡張MSIメッセージデータを含むボディ部とを含む信号を組み立て、
前記PCIeバスを介してホストに前記信号を送る
ように構成された制御システムと
を備えるスレーブ。
【請求項１６】
ペリフェラルコンポーネントインターコネクト(PCI)エクスプレス(PCIe)システムであって、
PCIeバスと、
PCIeスレーブであって、
前記PCIeバスに結合されたスレーブPCIeバスインターフェースと、
スレーブ制御システムであって、
割込み要求条件を検出し、
ヘッダ部と拡張メッセージシグナル割込み(MSI)メッセージデータを含むボディ部とを含む信号を組み立て、
前記PCIeバスを介してホストに前記信号を送る
ように構成されたスレーブ制御システムと、
前記ホストであって、
システムネットワークオンチップ(SNoC)バスと、
前記PCIeバスに結合されたホストPCIeバスインターフェースであって、前記信号を受信するようにさらに構成されるホストPCIeバスインターフェースと、
前記SNoCバスに結合された割込みコントローラと、
前記ホストPCIeバスインターフェースに結合されたルートコンプレックスであって、前記信号から前記ボディ部を抽出して、MSIベクトルのボディ部にそのまま前記拡張MSIメッセージデータを有する前記MSIベクトルを形成し、前記SNoCバスを通して、前記MSIベクトルの前記ボディ部にそのまま前記拡張MSIメッセージデータを有する前記MSIベクトルを前記割込みコントローラに引き渡すように構成されたルートコンプレックスと
を備える前記ホストと
を備えるシステム。
【請求項１７】
ペリフェラルコンポーネントインターコネクト(PCI)エクスプレス(PCIe)システムにおいて信号源を識別する方法であって、
ホストにおいて、ヘッダ部内のリクエスタ識別子とボディ部内のソース識別子とを有する信号をペリフェラルコンポーネントインターコネクト(PCI)エクスプレス(PCIe)エンドポイントから受信するステップと、
前記ホストのルートコンプレックスにおいて、前記リクエスタ識別子を除去するステップと、
前記ボディ部を抽出して、メッセージシグナル割込み(MSI)ベクトルのボディ部にそのまま前記ソース識別子を有する前記MSIベクトルを形成するステップと、
システムネットワークオンチップ(SNoC)を介して、前記MSIベクトルの前記ボディ部にそのまま前記ソース識別子を有する前記MSIベクトルを前記ホスト内の割込みコントローラに引き渡すステップと
を含む方法。
【請求項１８】
割込みを要求することを許可された前記PCIeエンドポイントを確認するために、前記割込みコントローラにおいて前記ソース識別子を使用するステップをさらに含む、請求項17に記載の方法。
【請求項１９】
前記ホストにおいて前記PCIeエンドポイントへの機能クエリを開始するステップをさらに含む、請求項17に記載の方法。
【請求項２０】
前記PCIeエンドポイントが前記信号の前記ボディ部内の前記ソース識別子を使用することが可能であることを示す、前記機能クエリへの応答を、前記PCIeエンドポイントから受信するステップをさらに含む、請求項19に記載の方法。
【請求項２１】
前記信号の前記ボディ部内の前記ソース識別子の使用を可能にするように前記PCIeエンドポイントに命令するステップをさらに含む、請求項20に記載の方法。
【請求項２２】
前記MSIベクトルの前記ボディ部内の前記ソース識別子を読み取るように前記割込みコントローラを構成するステップをさらに含む、請求項17に記載の方法。
【請求項２３】
ペリフェラルコンポーネントインターコネクト(PCI)エクスプレス(PCIe)システムにおいて信号源を識別する方法であって、
PCIeシステム内のスレーブにおいて信号を生成するステップであって、前記信号は、
リクエスタ識別子を含むヘッダ部と、
ソース識別子を含むボディ部と
を含む、ステップと、
前記PCIeシステムのホストに前記信号を送るステップと
を含む方法。
【請求項２４】
ホストであって、
ペリフェラルコンポーネントインターコネクト(PCI)エクスプレス(PCIe)バスに結合されるように構成されたバスインターフェースと、
前記バスインターフェースに結合されたルートコンプレックスであって、
信号のヘッダ部内にリクエスタ識別子とソース識別子とを含む信号を前記バスインターフェースから受信し、
前記信号から前記ヘッダ部を除去し、
メッセージシグナル割込み(MSI)ベクトルのボディ部内に前記ソース識別子を含む前記信号のボディ部を含む前記MSIベクトルを割込みコントローラに送る
ように構成されたルートコンプレックスと、
前記MSIベクトルの前記ボディ部内に前記ソース識別子を含む前記MSIベクトルを受信するように構成された前記割込みコントローラと
を備えるホスト。
【請求項２５】
前記ホストは、PCIeエンドポイントの機能に関して前記PCIeエンドポイントにクエリするように構成される、請求項24に記載のホスト。
【請求項２６】
前記ホストは、PCIeエンドポイントが前記信号の前記ボディ部内に前記ソース識別子を埋め込み得ることを示す機能応答を前記PCIeエンドポイントから受信するように構成される、請求項24に記載のホスト。
【請求項２７】
信号源を識別する方法であって、
ホストにおいて、ヘッダ部内のリクエスタ識別子とボディ部内のシステムレベル識別子とを有する信号をペリフェラルコンポーネントインターコネクト(PCI)エクスプレス(PCIe)エンドポイントから受信するステップと、
前記ホストのルートコンプレックスにおいて、前記リクエスタ識別子を除去するステップと、
ボディ部を抽出して、メッセージシグナル割込み(MSI)ベクトルのボディ部にそのまま前記システムレベル識別子を有する前記MSIベクトルを形成するステップと、
システムネットワークオンチップ(SNoC)を介して、前記MSIベクトルの前記ボディ部にそのまま前記システムレベル識別子を有する前記MSIベクトルを前記ホスト内の割込みコントローラに引き渡すステップと
を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権出願
本出願は、参照によりその全体が本明細書に組み込まれる、2015年6月22日に出願した、「ENHANCED MESSAGE SIGNALED INTERRUPTS FOR SYSTEM IDENTIFICATION」という名称の米国仮特許出願第62/182,800号の優先権と利点を主張するものである。
【０００２】
本出願はまた、参照によりその全体が本明細書に組み込まれる、2015年10月20日に出願した、「EXTENDED MESSAGE SIGNALED INTERRUPTS (MSI) MESSAGE DATA」という名称の米国仮特許出願第62/243,850号の優先権と利点を主張するものである。
【０００３】
本出願はまた、参照によりその全体が本明細書に組み込まれる、2016年6月16日に出願した、「EXTENDED MESSAGE SIGNALED INTERRUPTS (MSI) MESSAGE DATA」という名称の米国特許出願第15/184,124号の優先権を主張するものである。
【０００４】
本開示の技術は、一般にペリフェラルコンポーネントインターコネクト(PCI)通信バスに関する。
【背景技術】
【０００５】
モバイル通信デバイスは、現代社会においてますます一般的になってきた。そのような通信デバイスの高まる人気は、部分的には、これらのデバイス上で利用可能な機能の向上によって推進されている。そのような向上した機能は、一層複雑な集積回路(IC)がモバイル通信デバイス内に含められることによって可能となっている。モバイル通信デバイス内のICの個数および複雑性が増すにつれて、様々なICが互いに通信する必要性も増している。
【０００６】
ICが互いに通信することを可能にする様々なプロトコルを略述するいくつかの規格が公開されている。普及しているプロトコルは、PCIエクスプレス(PCIe)プロトコルを含む、様々な種類で提供されているペリフェラルコンポーネントインターコネクト(PCI)プロトコルである。IC間の通信プロトコルとして有用であるが、PCIおよびPCIeプロトコルは、ケーブルまたは他のコネクタを通じてモバイル端末をリモートデバイスに結合するためにも使用され得る。
【０００７】
PCIeプロトコルは、PCIe準拠のバスを介して送信および受信され得る様々なメッセージタイプを規定している。そのような1つのメッセージが割込みである。割込み信号はホストに供給され、ホストは、割込み信号の発信源が割込みを要求することを許可されているかどうかを確認しなければならない。現在は、ホストにおけるルートコンプレックスが割込み信号のヘッダ部から識別子を除去し、サイドチャネルにおける別の信号を使用してメモリ管理ユニットにその識別子を供給している。識別子はまた、システムにおいてサイドチャネルの割込みコントローラにルーティングされる。そのようなサイドチャネルの使用は、電力消費量を増大させるだけでなく、追加の導体要素を必要とし得る。したがって、そのようなソース識別子を供給するためのサイドチャネルへの依存を軽減する必要がある。識別子に加えて、異なる情報を含んだ他のメッセージがサイドチャネル上で送られてもよく、そのようなサイドチャネルへの依存を低減する必要性は、これらの他のメッセージにも当てはまる。
【発明の概要】
【課題を解決するための手段】
【０００８】
発明を実施するための形態で開示する態様は、拡張メッセージシグナル割込み(MSI)メッセージデータを含む。本開示の例示的な態様は、拡張MSIメッセージデータ内の未使用ビットを有意味なデータで置き換えることによって割込みを処理するのを支援する追加情報のために、拡張MSIメッセージデータを使用することを企図するものである。例示的な一態様では、MSIビットは、追加情報を含むように修正され、その追加情報はシステムレベル識別子(ときにはソース識別子と呼ばれることがある)であってもよい。例示的な態様では、拡張MSIメッセージデータの上位16ビットは、システムレベル識別子を含み得る追加情報を含むように修正され、そのサイズは、全16ビットよりも小さくてもよいが、最高で全16ビットであってもよい。拡張MSIメッセージデータ内にシステムレベル識別子を供給することにより、割込みコントローラは割込みソースを確認し得る。他の例示的な態様が、拡張MSIメッセージデータに割込み優先順位情報または割込み節度情報を供給してもよい。履歴的に未使用のMSIビットのボディ部に追加の拡張MSIメッセージデータを供給することにより、サイドチャネルの必要性が低減され得るが、それによって配線が簡略化され、電力消費量も低減される。
【０００９】
この点について、一態様では、ペリフェラルコンポーネントインターコネクト(PCI)エクスプレス(PCIe)システムにおいて情報を引き渡す方法が開示される。本方法は、ホストにおいて信号を受信するステップを含む。その信号はヘッダ部を含む。信号はまたボディ部を含む。ボディ部は、PCIeエンドポイントからの最初の16ビットのうちの少なくとも1ビットに拡張MSIメッセージデータを含む。本方法はまた、ホストのルートコンプレックスにおいて、信号からボディ部を抽出して、MSIベクトルのボディ部にそのまま拡張MSIメッセージデータを有するMSIベクトルを形成するステップを含む。本方法はまた、システムネットワークオンチップ(SNoC)を介して、MSIベクトルのボディ部にそのまま拡張MSIメッセージデータを有するMSIベクトルをホスト内の割込みコントローラに引き渡すステップを含む。
【００１０】
別の態様では、PCIeシステムに情報を引き渡す方法が開示される。本方法は、PCIeシステム内のスレーブにおいて信号を生成するステップを含む。その信号はヘッダ部を含む。信号はまたボディ部を含む。ボディ部は、最初の16ビットのうちの少なくとも1ビットに拡張MSIメッセージデータを含む。本方法はまた、PCIeシステムのホストに信号を送るステップを含む。
【００１１】
別の態様では、PCIeシステムにおけるホストが開示される。ホストはSNoCバスを含む。ホストはまたPCIeバスインターフェースを含む。PCIeバスインターフェースは、PCIeバスに結合されるように構成されている。PCIeバスインターフェースはさらに、拡張MSIメッセージデータを有する信号をPCIeバスから受信するように構成されている。ホストはまた、SNoCバスに結合された割込みコントローラを含む。ホストはまた、SNoCバスに結合されたメモリ管理ユニットを含む。ホストはまた、PCIeバスインターフェースおよびメモリ管理ユニットに結合されたルートコンプレックスを含む。ルートコンプレックスは、信号からボディ部を抽出して、MSIベクトルのボディ部にそのまま拡張MSIメッセージデータを有するMSIベクトルを形成し、メモリ管理ユニットおよびSNoCバスを通して、MSIベクトルのボディ部にそのまま拡張MSIメッセージデータを有するMSIベクトルを割込みコントローラに引き渡すように構成される。
【００１２】
別の態様では、PCIeシステムにおけるスレーブが開示される。スレーブは、PCIeバスに結合されるように構成されたPCIeバスインターフェースを含む。スレーブはまた機能レジスタを含む。機能レジスタは、スレーブが拡張MSIメッセージデータを使用し得ることを示す情報を含む。スレーブはまた制御システムを含む。制御システムは、割込み要求条件を検出するように構成される。制御システムはまた、ヘッダ部と拡張MSIメッセージデータを含んだボディ部とを含む信号を組み立てるように構成される。制御システムはまた、PCIeバスを介してホストに信号を送信するように構成される。
【００１３】
別の態様では、PCIeシステムが開示される。PCIeシステムはPCIeバスを含む。PCIeシステムはまたPCIeスレーブを含む。PCIeスレーブは、PCIeバスに結合されたスレーブPCIeバスインターフェースを含む。PCIeスレーブはまたスレーブ制御システムを含む。スレーブ制御システムは、割込み要求条件を検出するように構成される。スレーブ制御システムはまた、ヘッダ部と拡張MSIメッセージデータを含んだボディ部とを含む信号を組み立てるように構成される。スレーブ制御システムはまた、PCIeバスを介してホストに信号を送信するように構成される。PCIeシステムはまたホストを含む。ホストはSNoCバスを含む。ホストはまた、PCIeバスに結合されたホストPCIeバスインターフェースを含む。ホストPCIeバスインターフェースはさらに、信号を受信するように構成される。ホストはまた、SNoCバスに結合された割込みコントローラを含む。ホストはまた、ホストPCIeバスインターフェースに結合されたルートコンプレックスを含む。ルートコンプレックスは、信号からボディ部を抽出して、MSIベクトルのボディ部にそのまま拡張MSIメッセージデータを有するMSIベクトルを形成し、SNoCバスを通して、MSIベクトルのボディ部にそのまま拡張MSIメッセージデータを有するMSIベクトルを割込みコントローラに引き渡すように構成される。
【００１４】
別の態様では、PCIeシステム内の信号源を識別する方法が開示される。本方法は、ホストにおいて、ヘッダ部内のリクエスタ識別子とボディ部内のソース識別子とを有する信号をPCIeエンドポイントから受信するステップを含む。本方法はまた、ホストのルートコンプレックスにおいて、リクエスタ識別子を除去するステップを含む。本方法はまた、ボディ部を抽出して、MSIベクトルのボディ部にそのままソース識別子を有するMSIベクトルを形成するステップを含む。本方法はまた、SNoCを介して、MSIベクトルのボディ部にそのままソース識別子を有するMSIベクトルをホスト内の割込みコントローラに引き渡すステップを含む。
【００１５】
別の態様では、PCIeシステム内の信号源を識別する方法が開示される。本方法は、PCIeシステム内のスレーブにおいて信号を生成するステップを含む。信号は、リクエスタ識別子を含んだヘッダ部を含む。信号はまた、ソース識別子を含んだボディ部を含む。本方法はまた、PCIeシステムのホストに信号を送るステップを含む。
【００１６】
別の態様では、ホストが開示される。ホストは、PCIeバスに結合されるように構成されたバスインターフェースを含む。ホストはまた、バスインターフェースに結合されたルートコンプレックスを含む。ルートコンプレックスは、信号のヘッダ部内のリクエスタ識別子とソース識別子とを含む信号をバスインターフェースから受信するように構成される。ルートコンプレックスはまた、信号からヘッダ部を除去するように構成される。ルートコンプレックスはまた、ソース識別子を含む信号のボディ部をMSIベクトルのボディ部に収容したMSIベクトルを割込みコントローラに送信するように構成される。割込みコントローラは、MSIベクトルのボディ部にソース識別子を収容したMSIベクトルを受信するように構成される。
【００１７】
別の態様では、PCIeシステムにおけるスレーブが開示される。スレーブは、PCIeバスに結合されるように構成されたPCIeバスインターフェースを含む。スレーブはまた、スレーブが割込み信号のボディ部内のソース識別子を使用し得ることを示す情報を含んだ機能レジスタを含む。スレーブはまた制御システムを含む。制御システムは、割込み要求条件を検出するように構成される。制御システムはまた、リクエスタ識別子を含んだヘッダ部とソース識別子を含んだボディ部とを含む信号を組み立てるように構成される。制御システムはまた、PCIeバスを介してホストに信号を送信するように構成される。
【００１８】
別の態様では、信号源を識別する方法が開示される。本方法は、ホストにおいて、ヘッダ部内のリクエスタ識別子とボディ部内のシステムレベル識別子とを有する信号をPCIeエンドポイントから受信するステップを含む。本方法はまた、ホストのルートコンプレックスにおいて、リクエスタ識別子を除去するステップを含む。本方法はまた、ボディ部を抽出して、MSIベクトルのボディ部にそのままシステムレベル識別子を有するMSIベクトルを形成するステップを含む。本方法はまた、SNoCを介して、MSIベクトルのボディ部にそのままシステムレベル識別子を有するMSIベクトルをホスト内の割込みコントローラに引き渡すステップを含む。
【図面の簡単な説明】
【００１９】
【図１】中央処理装置(CPU)の態様がさらに示された、例示的なペリフェラルコンポーネントインターコネクト(PCI)エクスプレス(PCIe)システムのブロック図である。
【図２】PCIeエンドポイントからPCIeホストに送信される従来のメッセージシグナル割込み(MSI)信号またはパケットを示す。
【図３】拡張MSIメッセージデータがMSI信号のボディ部内に存在する、本開示の例示的な態様によるMSI信号またはパケットを示す。
【図４】図1の要素間における例示的な信号メッセージフロー図を示す。
【図５】本開示の例示的な態様による、拡張MSIメッセージデータが中に存在する状態でホスト内のルートコンプレックスからホスト内の割込みコントローラに送信され得る例示的なシステムネットワークオンチップ(SNoC)パケットまたはMSIベクトルを示す。
【図６】図1のPCIeシステムに関連付けられる例示的な方法を示すフローチャートである。
【図７】ホスト側の視点から見た、例示的な態様による拡張MSIメッセージデータを交換するプロセスを示すフローチャートである。
【図８】スレーブ側の視点から見た、例示的な態様によるメッセージデータを交換するプロセスを示すフローチャートである。
【図９】複数のエンドポイントが単一のシステムレベル識別子を共有するシステムの簡略ブロック図を示す。
【図１０】図1のPCIeシステムを含み得る例示的なプロセッサベースシステムのブロック図である。
【発明を実施するための形態】
【００２０】
次に図面を参照しながら、本開示のいくつかの例示的な態様について述べる。「例示的な」という単語は、本明細書では、「例、実例、または例証として機能する」を意味するために使用される。「例示的」として本明細書において説明されるいずれの態様も、必ずしも他の態様よりも好ましいか、または有利であると解釈されるべきでない。
【００２１】
発明を実施するための形態で開示する態様は、拡張メッセージシグナル割込み(MSI)メッセージデータを含む。本開示の例示的な態様は、拡張MSIメッセージデータ内の未使用ビットを有意味なデータで置き換えることによって割込みを処理するのを支援する追加情報のための拡張MSIメッセージデータを使用することを企図するものである。例示的な一態様では、MSIビットは、追加情報を含むように修正され、その追加情報はシステムレベル識別子(ときにはソース識別子と呼ばれることがある)であってもよい。例示的な態様では、拡張MSIメッセージデータの上位16ビットは、システムレベル識別子を含み得る追加情報を含むように修正され、そのサイズは、全16ビットよりも小さくてもよいが、最高で全16ビットであってもよい。拡張MSIメッセージデータ内にシステムレベル識別子を供給することにより、割込みコントローラは割込みソースを確認し得る。他の例示的な態様が、拡張MSIメッセージデータに割込み優先順位情報または割込み節度情報を供給してもよい。履歴的に未使用のMSIビットのボディ部に追加の拡張MSIメッセージデータを供給することにより、サイドチャネルの必要性が低減され得るが、それによって配線が簡略化され、電力消費量も低減される。
【００２２】
この点について、図1は、MSIベクトルにおける抽出および使用のために信号のボディ部内における拡張MSIメッセージデータの交換をサポートするように構成された例示的なペリフェラルコンポーネントインターコネクト(PCI)エクスプレス(PCIe)システム100のブロック図である。具体的には、図1は、ホスト102を含むPCIeシステム100を示しており、ホスト102は、中央処理装置(CPU)、システムオンチップ(SoC)などであり得る。ホスト102は、PCIeバス106を通じてPCIeエンドポイント104(1)〜104(M)に結合されている。PCIeプロトコルは、ホストとエンドポイントとの間のポイントツーポイント接続を要求し、したがって、各接続はそれ自体のバスであると見なされ得ることを諒解されたい。しかしながら、便宜上、複数の接続が本明細書ではPCIeバス106と称されている。さらに、ポイントツーマルチポイント能力がハブまたはスイッチ108の使用によって達成されてもよい。図示のように、PCIeエンドポイント104(1)〜104(N)は、PCIeバス106内のポイントツーポイント接続によって接続され、PCIeエンドポイント104(N+1)〜104(M)はスイッチ108に結合される。PCIeシステム100は、本開示の範囲から逸脱することなく複数のスイッチ(図示せず)を含んでも、スイッチ(同様に図示せず)を含まなくてもよいことを諒解されたい。同様に、スイッチに結合されたエンドポイントの数は、本開示の範囲から逸脱することなく様々となり得る。PCIeエンドポイント104(1)〜104(M)の各々はまた、ホスト102に対するスレーブと見なされてもよい。
【００２３】
引き続き図1を参照すると、各PCIeエンドポイント104(1)〜104(M)は、PCIeバス106に結合するように構成されたそれぞれのスレーブPCIeバスインターフェース110(1)〜110(M)を含む。さらに、各PCIeエンドポイント104(1)〜104(M)は制御システム112(1)〜112(M)を含んでもよい。制御システム112(1)〜112(M)は、対応する機能レジスタ116(1)〜116(M)と相互動作してもよい。機能識別子がそこに記憶されてもよく、各機能は、ホスト12によって読み取られ得る一意の機能識別子を有する。一元的な機能レジスタとして説明されているが、本開示はまた、本開示の範囲から逸脱することなく、各レジスタが異なる機能または機能の総数のサブセットを表す機能レジスタのバンクをも企図することを諒解されたい。機能レジスタの一般的概念は、PCIe規格において十分に裏付けられている。本開示の例示的な態様は、以下で概説するように、新たな機能レジスタを加えている。加えて、各PCIeエンドポイント104(1)〜104(M)は、対応するコンフィギュレーションレジスタ118(1)〜118(M)を有してもよい。
【００２４】
引き続き図1を参照すると、ホスト102はバスインターフェース120を含んでもよく、バスインターフェース102は、信号をPCIeバス106上に送信することまたはPCIeバス106から受信することを可能にする。PCIeプロトコルのポイントツーポイントの性質が与えられると、バスインターフェース120は複数のポイントツーポイントインターフェースを含んでもよいことに留意されたい。しかしながら、そのような個々のインターフェースは簡単のために図示されていない。ホスト102は、メモリ管理ユニット124と通信するPCIeルートコンプレックス122をさらに含む。メモリ管理ユニット124は、ホスト102の内部バスとして働くシステムネットワークオンチップ(SNoC)126に結合されている。具体的には、メモリ管理ユニット124は、SNoC126を通じて割込みコントローラ128と通信してもよい。
【００２５】
従来型のシステムでは、PCIeエンドポイントが割込みを生成した場合、PCIeエンドポイントは、図2に示すようにMSIパケットまたは信号200を生成し、PCIeバスを介してPCIeルートコンプレックスにそのMSI信号200を送信する。MSI信号200はヘッダ部202を有し、リクエスタ識別子204(図面ではリクエスタIDと称される)が、ヘッダ部202のメッセージ制御フィールド206にある。MSI信号200は、ヘッダ部202内に宛先アドレス208と、ボディ部210とをさらに有する。MSIメッセージデータ212は、ボディ部210の末尾の16ビットに含まれている。従来型のシステムの場合、ボディ部210の最初の16ビット214は予約されており、使用されない。引き続き従来型のシステムを参照すると、PCIeルートコンプレックスは、リクエスタ識別子204がサイドチャネルにおいて別の信号を通じて供給される状態で、MSI信号200からヘッダ部202を除去し、メモリ管理ユニットに割込みを引き渡している。メモリ管理ユニットは次に、サイドチャネル上でリクエスタ識別子を維持するSNoCを介して割込みコントローラに割込みを引き渡している。割込み優先順位および割込み節度などの追加情報が、ヘッダ部202に同様に含められてもよいが、PCIeルートコンプレックスによって取り出され、サイドバンドを通じて割込みコントローラに送信されてもよい。そのようなサイドチャネルの使用は、特別な配線を必要とし、追加チャネルが駆動されなければならないことで電力消費量を増加させ、またそれ以外にも望ましくないことになり得る。
【００２６】
本開示の例示的な態様は、MSI信号のボディ部に拡張MSIメッセージデータを含めることによってサイドチャネルの必要性を排除する。図3を参照すると、本開示の例示的な態様による例示的なMSIパケットまたは信号300が提示される。図2のMSI信号200と同様に、MSI信号300はヘッダ部302を有し、リクエスタ識別子304(図面ではリクエスタIDと称される)が、ヘッダ部302のメッセージ制御フィールド306にある。MSI信号300は、ヘッダ部302内に宛先アドレス308と、ボディ部310とをさらに有する。MSIメッセージデータ312は、ボディ部310の末尾の16ビットに含まれている。ボディ部310の最初の16ビット314は、拡張MSIメッセージデータ316を保持するために使用される。例示的な態様では、拡張MSIメッセージデータ316はソース識別子またはシステムレベル識別子であってよい。システムレベル識別子はデバイス識別子と同じである必要はなく、例示的な態様では、複数のデバイスが同じシステムレベル識別子を有してもよいことに留意されたい。例示的な態様では、システムレベル識別子は、対応するコンフィギュレーションレジスタ118(1)〜118(M)を使用して図1のPCIeエンドポイント104(1)〜104(M)のうちの1つによって作成され得る。このコンフィギュレーションレジスタ118(1)〜118(M)のコンテンツは、ホスト102上で稼働しているソフトウェアによって設定されてもよい。代替的に、システムレベル識別子は、PCIe列挙プロセスによって供給されるリクエスタ識別子304と同じであってもよい。他の例示的な態様では、拡張MSIメッセージデータは、割込み優先順位情報または割込み節度情報であってよい。さらに別の例示的な態様では、拡張MSIメッセージデータは、さもなければMSIメッセージデータ312に入れられる追加データであってもよい。拡張MSIメッセージデータは次いで、サイドチャネルの必要なしに割込みコントローラ128に引き渡されるMSIベクトルのボディ部内に保存されてもよい。
【００２７】
ボディ部310の最初の16ビット314がシステムレベル識別子を提供するために使用され得ることが特に企図されるが、本開示はそのように限定されない。この点について、上記で言及したように、ボディ部310は、割込み優先順位情報、割込み節度情報(割込みを実行する前に所定数の割込みをアグリゲートするために使用され得る)などの拡張メッセージデータを搬送し得る。さらに、システムレベル識別子が最初の16ビット314のうちのすべての16ビットを使用し得ることも企図されるが、本開示はそのように限定されない。すなわち、16ビット未満がシステムレベル識別子に使用されてもよく、任意の残りのビットが、割込み優先順位情報、割込み節度情報などの他の情報を搬送するために使用されてもよい。さらに別の態様では、通常は16ビットのみであるMSIメッセージデータ312が、ボディ部310の全32ビットを使用するように拡張されてもよい。
【００２８】
図4は、図1の要素間における信号メッセージフロー図400を示す。例示のために、PCIeエンドポイント104(1)が使用されているが、他のPCIeエンドポイント104(2)〜104(M)のいずれかが同様の方式で動作し得ることを諒解されたい。ホスト102は、信号メッセージフロー図400に関連するプロセスの特定の動作を開始する、プロセッサ上で稼働するソフトウェアの形態をなすPCIeドライバ402を有してよい。この点について、列挙(図示せず)の後、PCIeドライバ402は、エンドポイント(EP)アビリティ可能信号404を送信することによって、PCIeルートコンプレックス122に機能照会を開始させてもよい。次いで、PCIeルートコンプレックス122は、PCIeエンドポイント104(1)にEP照会可能メッセージ406を送信してもよい。このEP照会可能メッセージ406は、機能レジスタ116(1)が読み取られるようにし得る。PCIeエンドポイント104(1)は、PCIeエンドポイント104(1)が拡張MSIメッセージデータを使用することが可能であることを示す肯定信号408を送り返す。肯定信号408に基づいて、PCIeルートコンプレックス122は、PCIeドライバ402に継続肯定信号410を引き渡し得る。PCIeドライバ402は次いで、PCIeルートコンプレックス122に送られるアビリティ有効化信号412を生成し得る。PCIeルートコンプレックス122は次いで、MSI信号300のボディ部310内の拡張MSIメッセージデータを使用するようにPCIeエンドポイント104(1)に命令するアビリティ有効化コマンド414をPCIeエンドポイント104(1)に送る。PCIeルートコンプレックス122はまた、割込みコントローラ128が受信するMSIベクトルのボディ部内の拡張MSIメッセージデータを探すように割込みコントローラ128を構成するために、コマンド416を割込みコントローラ128に送る。拡張MSIメッセージデータがシステムレベル識別子である場合、メモリ管理ユニット124に常駐するアクセス制御コンフィギュレーションソフトウェア418などのソフトウェアは、信号420を通じてシステムレベル識別子を設定するために適切なコンフィギュレーションレジスタ118(1)〜118(M)に書込みコマンドが送られるように指令し得る。本開示の例示的で非限定的な態様は、メモリ管理ユニット124にアクセス制御コンフィギュレーションソフトウェア418を提供するが、アクセス制御コンフィギュレーションソフトウェア418は同様に、ホスト102内のプロセッサまたはコントローラに存在してもよい。しかしながら、本開示はそのように限定されず、この機能はホスト102内のファームウェア内に実装されてもよい。さらに、ホスト102内のプロセッサまたはコントローラはアクセス制御コンフィギュレーションソフトウェア418のための1つの位置であるが、アクセス制御コンフィギュレーションソフトウェア418の機能はホスト102の外部でも実施され得ることを諒解されたい。
【００２９】
引き続き図4を参照すると、信号420は、PCIeルートコンプレックス122に、システムレベル識別子設定信号422をPCIeエンドポイント104(1)に送信させており、このシステムレベル識別子設定信号422は、コンフィギュレーションレジスタ118(1)にシステムレベル識別子を設定するものである。ホスト102内のPCIeドライバであり得るクライアントドライバ424は、信号426を通じてPCIeエンドポイント104(1)の適切なレジスタにメッセージデータを設定する。例示的で非限定的な態様では、クライアントドライバ424は、ホスト102内の任意のプロセッサまたはコントローラ上で稼働してもよく、あるいは必要に応じてもしくは所望に応じてホスト102の外部に配置されてもよい。
【００３０】
引き続き図4を参照すると、PCIeエンドポイント104(1)は、割込み信号428を生成し、PCIeバス106を介してPCIeルートコンプレックス122にその割込み信号428を送る。PCIeルートコンプレックス122は次いで、MSIベクトルを有するメッセージペイロード430をメモリ管理ユニット124に引き渡す。メモリ管理ユニット124は次いで、SNoC126を使用して、MSIベクトル432のボディ部内の拡張MSIメッセージデータを有するMSIベクトル432を割込みコントローラ128に引き渡す。割込みコントローラ128は次いで、MSIベクトル432を構文解析し、たとえばシステムレベル識別子であり得る拡張MSIメッセージデータを抽出する。拡張MSIメッセージデータがシステムレベル識別子である場合、抽出されたシステムレベル識別子は、(たとえば、ルックアップテーブル(図示せず)などを用いて)割込みを要求することを許可されたエンティティと比較され、システムレベル識別子が許可されている場合、割込みコントローラ128は、割込み実行のために、メモリ管理ユニット124に割込み許可信号434を送る。拡張MSIメッセージデータがシステムレベル識別子以外のデータを含む場合、追加データが同様に、MSIベクトル432のボディ部内にあり、MSIベクトル432からの抽出後に適切に使用される。
【００３１】
MSIベクトル432は、図5に示すように、MSIメッセージデータ500と拡張MSIメッセージデータ502とを含んでいる。例示的な態様では、MSIメッセージデータ500はMSIベクトル432の末尾の16ビット内にあり、拡張MSIメッセージデータ502は最初の16ビット内にある。上述のように、拡張MSIメッセージデータ502は、システムレベル識別子、割込み優先順位情報、割込み節度情報、追加のMSIデータなどであり得る。さらに、16ビットが拡張MSIメッセージデータ502のために利用可能であるが、すべて16ビット未満を使用することも依然として本開示の範囲内に入る。
【００３２】
図4の信号メッセージフロー図400と実質的に同様の例示的なプロセスのフローチャートが図6に提示されている。この点について、プロセス600はシステムレベルフローチャートを示している。プロセス600は、PCIeルートコンプレックス122がPCIeエンドポイント104(1)に機能クエリ(たとえば、EP照会可能メッセージ406)を送る(ブロック602)ことで始まる。PCIeルートコンプレックス122は、PCIeエンドポイント104(1)がMSI信号300のボディ部310内の拡張MSIメッセージデータ(たとえば、システムレベル識別子)を使用することが可能であることを示す機能応答(たとえば、肯定信号408)をPCIeエンドポイント104(1)から受信する(ブロック604)。PCIeルートコンプレックス122は、拡張MSIメッセージデータの使用を可能にするようにPCIeエンドポイント104(1)に命令する(ブロック606)(たとえば、アビリティ有効化コマンド414)。PCIeルートコンプレックス122はさらに、MSIベクトルのボディ部内の拡張MSIメッセージデータ502を探すように割込みコントローラ128を構成する(ブロック608)(たとえば、コマンド416)。
【００３３】
引き続き図6を参照すると、PCIeエンドポイント104(1)は、PCIeルートコンプレックス122において受信される、MSI信号のヘッダ部302内にリクエスタ識別子304とボディ部310内に拡張MSIメッセージデータ316とを有する割込み信号428を生成する(ブロック610)。PCIeルートコンプレックス122において、PCIeルートコンプレックス122はヘッダ部302を除去し、メモリ管理ユニット124に割込みを引き渡す(ブロック612)(たとえば、MSIベクトル432)。メモリ管理ユニット124は、SNoC126を介して割込みコントローラ128にMSIベクトル432を引き渡す(ブロック614)。割込みコントローラ128は、図示のように拡張MSIメッセージデータを使用し、拡張MSIメッセージデータがシステムレベル識別子である場合、割込みコントローラ128は、システムレベル識別子に基づいて割込みを検証する(ブロック616)。要求側のエンティティがホストに割込みをかけることを許可されていることを割込みコントローラ128が確認すると、割込みコントローラ128は適切な割込み措置をとる。
【００３４】
図6のプロセス600は本開示の例示的なプロセスを示しているが、図7および図8はそれぞれ、ホスト視点およびスレーブ視点のフローチャートを示している。この点に関して、図7はプロセス700を示している。プロセス700は、図1のPCIeシステム100が始動し、PCIeシステム100内の要素を列挙すると開始する(ブロック702)。列挙プロセスは、PCIeプロトコルに十分に裏付けされているため、これ以上は説明されない。ホスト102は、PCIeエンドポイント104(1)〜104(M)の各々に機能照会を送る(ブロック704)。ホスト102は、PCIeエンドポイント104(1)〜104(M)から機能応答を受信する(ブロック706)。受信した機能応答に基づいて、ホスト102は、拡張MSIメッセージデータを使用するようにPCIeエンドポイント104(1)〜104(M)の対応エンドポイントに命令する(ブロック708)。この時点で、PCIeドライバ402およびクライアントドライバ424は、PCIeエンドポイント104(1)〜104(M)内の拡張メッセージデータレジスタおよびメッセージデータレジスタ(これらはコンフィギュレーションレジスタ118(1)〜118(M)内にあり得ることに留意されたい)をポピュレートし得ることに留意されたい。例示的な態様では、拡張メッセージデータレジスタは、システムレベル識別子またはソース識別子をポピュレートされる。上記で説明したように、これは、列挙の間に作成された識別子と同じであっても異なってもよい。
【００３５】
引き続き図7を参照すると、ホスト102はまた、MSIベクトルのボディ部内の拡張MSIデータを使用するように割込みコントローラ128を構成する(ブロック710)。その後のある時点で、ホスト102は、PCIeバス106を介して、リクエスタ識別子304を有するヘッダ部302と、拡張MSIメッセージデータを有するボディ部310とをその中に加えたMSI信号300を受信することになる(ブロック712)。PCIeルートコンプレックス122は、MSIベクトルのボディ部にそのまま拡張MSIメッセージデータを有するMSIベクトルを形成するために、MSI信号300からボディ部310を抽出する(ブロック714)。MSIベクトルは次いで、SNoC126を介して割込みコントローラ128に引き渡される(ブロック716)。
【００３６】
同様に、図8は、スレーブ視点からプロセス800を示している。プロセス800は、PCIeシステム100の起動時における列挙で開始する(ブロック802)。列挙の後、スレーブはホスト102から機能照会を受信する(ブロック804)。スレーブは、適切な機能レジスタ116(1)〜116(M)を読み取り(ブロック806)、スレーブが拡張MSIメッセージデータを使用することが可能であることを示す情報で機能照会に応答する(ブロック808)。スレーブは、拡張MSIメッセージデータの使用を有効化する命令を受信する(ブロック810)(たとえば、信号414)。
【００３７】
引き続き図8を参照すると、その後のある時点で、スレーブは割込み条件を検出し(ブロック812)、リクエスタ識別子を有するヘッダ部とボディ部の最初の16ビットに拡張MSIメッセージデータを有するボディ部とを有する割込み信号を生成する(ブロック814)。スレーブは次いで、PCIeバス106を介してホスト102に割込み信号を送る(ブロック816)。
【００３８】
様々なプロセス600、700、および800において機能照会を使用することにより、(レガシー構成要素が照会されるときに生じるような)肯定応答の存在しないときに、アビリティが有効化されず、拡張MSIメッセージデータがMSIベクトルの最初の16ビットに配置されないということから、後方互換性が維持され得る。
【００３９】
上記で言及したように、複数のエンドポイントが同じシステムレベル識別子を有してもよい。この点について、図9は、例示的なPCIeシステム900のブロック図を示している。PCIeシステム900はホスト902を含み、ホスト902はCPUであっても他のSoCであってもよい。PCIeシステム900はさらに、PCIeエンドポイント904(1)〜904(4)を含む。ホスト902は、PCIeバス908を通してスイッチ906に結合される。PCIeエンドポイント904(1)〜904(4)はスイッチ906を通してPCIeバス908に結合されることに留意されたい。
【００４０】
引き続き図9を参照すると、ホスト902はバスインターフェース910を含んでもよく、バスインターフェース910は、信号をPCIeバス908上に送信することまたはPCIeバス908から受信することを可能にする。ホスト902は、メモリ管理ユニット(図面ではMMUと称される)914と通信するPCIeルートコンプレックス912をさらに含む。メモリ管理ユニット914は、ホスト902の内部バスとして働くSNoC916に結合される。具体的には、メモリ管理ユニット914は、SNoC916を通じて割込みコントローラ918と通信してもよい。
【００４１】
引き続き図9を参照すると、PCIeエンドポイント904(1)および904(2)は、それらに関連付けられる同じシステムレベル識別子(SLI1)を有している。すなわち、アクセス制御コンフィギュレーションソフトウェア418は、同じシステムレベル識別子を用いてそれぞれのコンフィギュレーションレジスタ920(1)および920(2)をプログラムしている。PCIeエンドポイント904(3)は、それのコンフィギュレーションレジスタ920(3)内に第2のシステムレベル識別子(SLI2)を有し、PCIeエンドポイント904(4)は、それのそれぞれのコンフィギュレーションレジスタ920(4)内に第3のシステムレベル識別子(SLI3)を有する。
【００４２】
引き続き図9を参照すると、割込みコントローラ918はMSIエントリリスト922を有し、MSIエントリリスト922は、それを用いてシステムレベル識別子がその割込み実施することを許可されるようにプログラムされ得る。したがって、図6のブロック616に導入された構想を拡張して、割込みコントローラ918は、MSIベクトルアドレスを受信し、拡張MSIメッセージデータからシステムレベル識別子を抽出する。MSIベクトルアドレスを使用して、割込みコントローラ918は、抽出されたシステムレベル識別子を、MSIエントリリスト922内の許可されたシステムレベル識別子と比較し、一致する場合、割込みコントローラ918は、割込み要求内で通常のMSIデータに作用する。
【００４３】
本明細書で開示する態様による拡張MSIメッセージデータは、任意のプロセッサベースのデバイス内に設けられ得るか、またはその中に組み込まれ得る。例としては、限定ではないが、セットトップボックス、エンターテイメントユニット、ナビゲーションデバイス、通信デバイス、固定位置データユニット、モバイルロケーションデータユニット、モバイル電話、セルラー電話、スマートフォン、タブレット、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビ、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、自動車、およびポータブルデジタルビデオプレーヤを含む。
【００４４】
この点について、図10は、図1に示すPCIeシステム100を採用し得るプロセッサベースシステム1000の一例を示す。この例では、プロセッサベースシステム1000は、各々が1つまたは複数のプロセッサ(図示せず)を含む1つまたは複数の中央処理ユニット(CPU)1002を含む。CPU1002は、一時的に記憶されたデータへの高速アクセスのためにプロセッサ(図示せず)に結合されたキャッシュメモリ(図示せず)を有してもよい。CPU1002は、システムバス1004に結合される。よく知られているように、CPU1002は、システムバス1004を介してアドレス情報、制御情報、およびデータ情報を交換することによって、他のデバイスと通信する。たとえば、CPU1002は、バストランザクション要求を1つまたは複数のメモリコントローラ1006に通信することができる。
【００４５】
他のデバイスもシステムバス1004に接続され得る。図10に示すように、これらのデバイスは、例として、1つまたは複数のディスプレイコントローラ1008および1つまたは複数のPCIeコントローラ1010を含み得る。メモリコントローラ1006は、1つまたは複数のメモリインターフェース1014を通してメモリユニット1012と相互動作してもよい。例示的な態様では、メモリインターフェース1014は、図1のPCIeバス106のようなPCIeバスであってもよい。ディスプレイコントローラ1008は、ディスプレイインターフェース1018を通してディスプレイ1016と通信してもよい。ディスプレイ1016は、限定はしないが、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、発光ダイオード(LED)ディスプレイなどを含む、任意のタイプのディスプレイを含むことができる。
【００４６】
図10には示されていないが、プロセッサベースシステム1000はまた、ネットワーク(図示せず)との間でデータの交換を可能にするように構成された任意のデバイスであり得るネットワークインターフェースデバイスを含んでもよい。ネットワークは、限定はしないが、有線ネットワークまたはワイヤレスネットワーク、プライベートネットワークまたは公衆ネットワーク、ローカルエリアネットワーク(LAN)、ワイヤレスローカルエリアネットワーク(WLAN)、ワイドエリアネットワーク(WAN)、BLUETOOTH(登録商標)ネットワーク、およびインターネットを含む、任意のタイプのネットワークであってよい。ネットワークインターフェースデバイスは、所望される任意のタイプの通信プロトコルをサポートするように構成され得る。
【００４７】
引き続き図10を参照すると、PCIeコントローラ1010は、1つもしくは複数のPCIeインターフェース1022またはPCIeバス106および908を通して、図1のPCIeエンドポイント104(1)〜104(M)および図9のPCIeエンドポイント904(1)〜904(4)などの1つまたは複数のPCIeデバイス1020と通信し得る。
【００４８】
本明細書で開示する態様に関して説明する様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムは、電子ハードウェアとして、メモリもしくは別のコンピュータ可読媒体に記憶され、プロセッサもしくは他の処理デバイスによって実行される命令として、またはその両方の組合せとして実施される場合があることは、当業者はさらに理解されよう。本明細書で説明するデバイスは、例として、任意の回路、ハードウェア構成要素、集積回路(IC)、またはICチップにおいて採用される場合がある。本明細書において開示されるメモリは、任意のタイプおよびサイズのメモリである場合があり、所望の任意のタイプの情報を記憶するように構成される場合がある。この互換性について明確に説明するために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップについて、上記では概してそれらの機能性に関して説明してきた。そのような機能性がどのように実装されるかは、特定の適用例、設計選択、および/または全体的なシステムに課される設計制約によって決まる。当業者は、説明した機能性を特定の適用例ごとに様々な方法で実現してもよいが、そのような実装形態の決定は、本開示の範囲からの逸脱を引き起こすものと解釈されるべきではない。
【００４９】
本明細書で開示する態様に関して説明する種々の例示的な論理ブロック、モジュール、および回路は、プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明する機能を実行するように設計されるそれらの任意の組合せを用いて実装または実行されてもよい。プロセッサは、マイクロプロセッサである場合があるが、代替としてプロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであってもよい。プロセッサはまた、コンピューティングデバイスの組合せ(たとえば、DSPおよびマイクロプロセッサ、複数のマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成)として実装されてもよい。
【００５０】
本明細書で開示する態様は、ハードウェアにおいて、および、ハードウェアに記憶されている命令において具現化されてよく、命令は、たとえば、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、電気的プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野において知られている任意の他の形態のコンピュータ可読媒体内に存在してよい。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取ること、および記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体は、プロセッサと一体であってもよい。プロセッサおよび記憶媒体は、ASICに存在してもよい。ASICは、リモート局内に存在してもよい。代替として、プロセッサおよび記憶媒体は、リモート局、基地局、またはサーバの中で個別構成要素として存在してもよい。
【００５１】
本明細書の例示的な態様のいずれかにおいて説明する動作ステップは、例および説明を提供するために記載されることにも留意されたい。上述の動作は、図示したシーケンス以外の多数の異なるシーケンスにおいて実行される場合がある。さらに、単一の動作ステップにおいて説明した動作は、実際にはいくつかの異なるステップにおいて実行される場合がある。追加として、例示的な態様において説明した1つまたは複数の動作ステップが組み合わされてよい。メッセージフロー図およびフローチャート図に示された動作ステップが、当業者には容易に明らかであるような数多くの異なる変更を受けてよいことを理解されたい。情報および信号が様々な異なる技術および技法のいずれかを使用して表されてよいことも、当業者は理解されよう。たとえば、上記の説明全体にわたって参照され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表されてよい。
【００５２】
本開示の前の説明は、いかなる当業者も本開示を作成または使用することを可能にするために提供される。本開示の様々な変更は、当業者には容易に明らかになり、本明細書で定義した一般原理は、本開示の趣旨または範囲から逸脱することなく他の変形形態に適用されてよい。したがって、本開示は、本明細書で説明した例および設計に限定されるものではなく、本明細書で開示する原理および新規の特徴と一致する最も広い範囲を与えられるべきである。
【符号の説明】
【００５３】
100  ペリフェラルコンポーネントインターコネクト(PCI)エクスプレス(PCIe)システム
102  ホスト
104(1)〜104(M)  PCIeエンドポイント
106  PCIeバス
108  ハブまたはスイッチ
110(1)〜110(M)  スレーブPCIeバスインターフェース
112(1)〜112(M)  制御システム
116(1)  機能レジスタ
118(1)〜118(M)  コンフィギュレーションレジスタ
120  バスインターフェース
122  PCIeルートコンプレックス
124  メモリ管理ユニット
126  SNoC
128  割込みコントローラ
200  信号
202  ヘッダ部
204  リクエスタID
208  宛先アドレス
210  ボディ部
300  信号
302  ヘッダ部
308  宛先アドレス
310  ボディ部
312  MSIメッセージデータ
316  拡張MSIメッセージデータ
402  PCIeドライバ
406  EP照会可能メッセージ
410  継続肯定信号
412  アビリティ有効化信号
414  アビリティ有効化コマンド
416  コマンド
418  アクセス制御コンフィギュレーションソフトウェア
420  信号
422  システムレベル識別子設定信号
424  クライアントドライバ
426  信号
428  割込み信号
430  MSIベクトル
432  MSIベクトル
434  割込み許可信号
500  MSIメッセージデータ
502  拡張MSIメッセージデータ
900  PCIeシステム
902  ホスト
904(1)〜904(4)  PCIeエンドポイント
906  スイッチ
908  PCIeバス
910  バスインターフェース
912  PCIeルートコンプレックス
914  メモリ管理ユニット
916  SNoC
920  コンフィギュレーションレジスタ
922  MSIエントリリスト
1000  プロセッサベースシステム
1002  中央処理ユニット(CPU)
1004  システムバス
1006  メモリコントローラ
1008  ディスプレイコントローラ
1010  PCIeコントローラ
1014  メモリインターフェース
1018  ディスプレイインターフェース
1020  PCIeデバイス
1022  PCIeインターフェース
【図１】
2018518772.tif 000003
【図２】
2018518772.tif 000004
【図３】
2018518772.tif 000005
【図４】
2018518772.tif 000006
【図５】
2018518772.tif 000007
【図６】
2018518772.tif 000008
【図７】
2018518772.tif 000009
【図８】
2018518772.tif 000010
【図９】
2018518772.tif 000011
【図１０】
2018518772.tif 000012
【手続補正書】
【提出日】平成29年12月25日(2017.12.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ペリフェラルコンポーネントインターコネクト(PCI)エクスプレス(PCIe)システムにおいて情報を引き渡す方法であって、
ホストにおいて、PCIeエンドポイントから信号を受信するステップであって、前記信号は、
ヘッダ部と、
ボディ部であって、最初の予約済みの16ビットを含み、前記最初の予約済みの16ビットのうちの少なくとも1ビットに拡張メッセージシグナル割込み(MSI)メッセージデータをさらに含む、ボディ部と
を含む、ステップと、
前記ホストのルートコンプレックスにおいて、前記信号から前記ボディ部を抽出して、MSIベクトルのボディ部にそのまま前記拡張MSIメッセージデータを有する前記MSIベクトルを形成するステップと、
システムネットワークオンチップ(SNoC)を介して、前記MSIベクトルの前記ボディ部にそのまま前記拡張MSIメッセージデータを有する前記MSIベクトルを前記ホスト内の割込みコントローラに引き渡すステップと
を含む方法。
【請求項２】
前記ホストにおいて、前記ヘッダ部を含む前記信号を受信するステップは、前記ホストにおいて、前記ヘッダ部内にリクエスタ識別子を含む前記信号を受信するステップを含む、請求項1に記載の方法。
【請求項３】
前記ホストにおいて、前記拡張MSIメッセージデータを備える前記ボディ部を受信するステップは、割込み優先順位情報を含む前記ボディ部を受信するステップを含む、請求項1に記載の方法。
【請求項４】
前記ホストにおいて、前記拡張MSIメッセージデータを備える前記ボディ部を受信するステップは、割込み節度情報を含む前記ボディ部を受信するステップを含む、請求項1に記載の方法。
【請求項５】
前記ホストにおいて、前記拡張MSIメッセージデータを備える前記ボディ部を受信するステップは、追加メッセージデータを含む前記ボディ部を受信するステップを含む、請求項1に記載の方法。
【請求項６】
前記ホストにおいて、前記拡張MSIメッセージデータを備える前記ボディ部を受信するステップは、ソース識別子を含む前記ボディ部を受信するステップを含む、請求項1に記載の方法。
【請求項７】
前記ホストから前記PCIeエンドポイントに、前記PCIeエンドポイントが前記拡張MSIメッセージデータを送ることが可能であるか否かを照会するステップをさらに含む、請求項1に記載の方法。
【請求項８】
前記MSIベクトルの前記ボディ部内の前記拡張MSIメッセージデータを使用するように、前記ホスト内の前記割込みコントローラを構成するステップをさらに含む、請求項1に記載の方法。
【請求項９】
ペリフェラルコンポーネントインターコネクト(PCI)エクスプレス(PCIe)システムにおいて情報を引き渡す方法であって、
PCIeシステム内のスレーブにおいて信号を生成するステップであって、前記信号は、
ヘッダ部と、
ボディ部であって、最初の予約済みの16ビットを含み、前記最初の予約済みの16ビットのうちの少なくとも1ビットに拡張メッセージシグナル割込み(MSI)メッセージデータをさらに含む、ボディ部と
を含む、ステップと、
前記PCIeシステムのホストに前記信号を送るステップと
を含む方法。
【請求項１０】
前記ヘッダ部は前記スレーブのためのリクエスタ識別子を含む、請求項9に記載の方法。
【請求項１１】
前記拡張MSIメッセージデータは、ソース識別子、割込み優先順位情報、および割込み節度情報のうちの1つを含む、請求項9に記載の方法。
【請求項１２】
前記ホストから機能照会を受信するステップをさらに含む、請求項9に記載の方法。
【請求項１３】
前記スレーブが前記拡張MSIメッセージデータを使用することが可能であることを示す情報を用いて、前記機能照会に応答するステップをさらに含む、請求項12に記載の方法。
【請求項１４】
ペリフェラルコンポーネントインターコネクト(PCI)エクスプレス(PCIe)システム内のホストであって、
システムネットワークオンチップ(SNoC)バスと、
PCIeバスに結合されるように構成されたPCIeバスインターフェースであって、拡張メッセージシグナル割込み(MSI)メッセージデータを有する信号を前記PCIeバスから受信するようにさらに構成されるPCIeバスインターフェースと、
前記SNoCバスに結合された割込みコントローラと、
前記SNoCバスに結合されたメモリ管理ユニットと、
前記PCIeバスインターフェースおよび前記メモリ管理ユニットに結合されたルートコンプレックスであって、前記信号からボディ部を抽出して、MSIベクトルのボディ部にそのまま前記拡張MSIメッセージデータを有する前記MSIベクトルを形成し、前記メモリ管理ユニットおよび前記SNoCバスを通して、前記MSIベクトルの前記ボディ部にそのまま前記拡張MSIメッセージデータを有する前記MSIベクトルを前記割込みコントローラに引き渡すように構成されたルートコンプレックスと
を備えるホスト。
【請求項１５】
ペリフェラルコンポーネントインターコネクト(PCI)エクスプレス(PCIe)システム内のスレーブであって、
PCIeバスに結合されるように構成されたPCIeバスインターフェースと、
スレーブが拡張メッセージシグナル割込み(MSI)メッセージデータを使用し得ることを示す情報を含む機能レジスタと、
制御システムであって、
割込み要求条件を検出し、
ヘッダ部と前記拡張MSIメッセージデータを含むボディ部とを含む信号を組み立て、
前記PCIeバスを介してホストに前記信号を送る
ように構成された制御システムと
を備えるスレーブ。
【請求項１６】
ペリフェラルコンポーネントインターコネクト(PCI)エクスプレス(PCIe)システムであって、
PCIeバスと、
PCIeスレーブであって、
前記PCIeバスに結合されたスレーブPCIeバスインターフェースと、
スレーブ制御システムであって、
割込み要求条件を検出し、
ヘッダ部と拡張メッセージシグナル割込み(MSI)メッセージデータを含むボディ部とを含む信号を組み立て、
前記PCIeバスを介してホストに前記信号を送る
ように構成されたスレーブ制御システムと、
前記ホストであって、
システムネットワークオンチップ(SNoC)バスと、
前記PCIeバスに結合されたホストPCIeバスインターフェースであって、前記信号を受信するようにさらに構成されるホストPCIeバスインターフェースと、
前記SNoCバスに結合された割込みコントローラと、
前記ホストPCIeバスインターフェースに結合されたルートコンプレックスであって、前記信号から前記ボディ部を抽出して、MSIベクトルのボディ部にそのまま前記拡張MSIメッセージデータを有する前記MSIベクトルを形成し、前記SNoCバスを通して、前記MSIベクトルの前記ボディ部にそのまま前記拡張MSIメッセージデータを有する前記MSIベクトルを前記割込みコントローラに引き渡すように構成されたルートコンプレックスと
を備える前記ホストと
を備えるシステム。
【請求項１７】
ペリフェラルコンポーネントインターコネクト(PCI)エクスプレス(PCIe)システムにおいて信号源を識別する方法であって、
ホストにおいて、PCIeエンドポイントから、ヘッダ部内のリクエスタ識別子とボディ部内のソース識別子とを有する信号を受信するステップと、
前記ホストのルートコンプレックスにおいて、前記リクエスタ識別子を除去するステップと、
前記ボディ部を抽出して、メッセージシグナル割込み(MSI)ベクトルのボディ部にそのまま前記ソース識別子を有する前記MSIベクトルを形成するステップと、
システムネットワークオンチップ(SNoC)を介して、前記MSIベクトルの前記ボディ部にそのまま前記ソース識別子を有する前記MSIベクトルを前記ホスト内の割込みコントローラに引き渡すステップと
を含む方法。
【請求項１８】
割込みを要求することを許可された前記PCIeエンドポイントを確認するために、前記割込みコントローラにおいて前記ソース識別子を使用するステップをさらに含む、請求項17に記載の方法。
【請求項１９】
前記ホストにおいて前記PCIeエンドポイントへの機能クエリを開始するステップをさらに含む、請求項17に記載の方法。
【請求項２０】
前記PCIeエンドポイントが前記信号の前記ボディ部内の前記ソース識別子を使用することが可能であることを示す、前記機能クエリへの応答を、前記PCIeエンドポイントから受信するステップをさらに含む、請求項19に記載の方法。
【請求項２１】
前記信号の前記ボディ部内の前記ソース識別子の使用を可能にするように前記PCIeエンドポイントに命令するステップをさらに含む、請求項20に記載の方法。
【請求項２２】
前記MSIベクトルの前記ボディ部内の前記ソース識別子を読み取るように前記割込みコントローラを構成するステップをさらに含む、請求項17に記載の方法。
【請求項２３】
ペリフェラルコンポーネントインターコネクト(PCI)エクスプレス(PCIe)システムにおいて信号源を識別する方法であって、
PCIeシステム内のスレーブにおいて信号を生成するステップであって、前記信号は、
リクエスタ識別子を含むヘッダ部と、
ソース識別子を含むボディ部と
を含む、ステップと、
前記PCIeシステムのホストに前記信号を送るステップと
を含む方法。
【請求項２４】
ホストであって、
ペリフェラルコンポーネントインターコネクト(PCI)エクスプレス(PCIe)バスに結合されるように構成されたバスインターフェースと、
前記バスインターフェースに結合されたルートコンプレックスであって、
信号のヘッダ部内にリクエスタ識別子とソース識別子とを含む信号を前記バスインターフェースから受信し、
前記信号から前記ヘッダ部を除去し、
メッセージシグナル割込み(MSI)ベクトルのボディ部内に前記ソース識別子を含む前記信号のボディ部を含む前記MSIベクトルを割込みコントローラに送るように構成されたルートコンプレックスと、
前記MSIベクトルの前記ボディ部内に前記ソース識別子を含む前記MSIベクトルを受信するように構成された前記割込みコントローラと
を備えるホスト。
【請求項２５】
前記ホストは、PCIeエンドポイントの機能に関して前記PCIeエンドポイントにクエリするように構成される、請求項24に記載のホスト。
【請求項２６】
前記ホストは、PCIeエンドポイントが前記信号の前記ボディ部内に前記ソース識別子を埋め込み得ることを示す機能応答を前記PCIeエンドポイントから受信するように構成される、請求項24に記載のホスト。
【請求項２７】
信号源を識別する方法であって、
ホストにおいて、ペリフェラルコンポーネントインターコネクト(PCI)エクスプレス(PCIe)エンドポイントから、ヘッダ部内のリクエスタ識別子とボディ部内のソース識別子とを有する信号を受信するステップと、
前記ホストのルートコンプレックスにおいて、前記リクエスタ識別子を除去するステップと、
ボディ部を抽出して、メッセージシグナル割込み(MSI)ベクトルのボディ部にそのまま前記システムレベル識別子を有する前記MSIベクトルを形成するステップと、
システムネットワークオンチップ(SNoC)を介して、前記MSIベクトルの前記ボディ部にそのまま前記システムレベル識別子を有する前記MSIベクトルを前記ホスト内の割込みコントローラに引き渡すステップと
を含む方法。
【国際調査報告】
2018518772.tif 000013
2018518772.tif 000014
2018518772.tif 000015