(57)【特許請求の範囲】
【請求項１】
読取りおよび書込みデータ・バスを有するプロセッサ・ローカル・バス（ＰＬＢ）を管理する装置であって、
前記ＰＬＢに結び付けられた読取りデータのための第１アドレス・フェーズを生成する第１手段と、
前記ＰＬＢに結び付けられた書込みデータのための第２アドレス・フェーズを生成する第２手段とを含み、前記第２アドレス・フェーズ生成手段が、前記書込みデータ・バスがアイドルで前記読取りデータ・バスがビジーであるときに書込みオペレーションを実行するように構成され、逆も同様である装置。
【請求項２】
前記第１および第２アドレス・フェーズ生成手段が、読取りおよび書込み要求を同時に処理するように構成される、請求項１に記載の装置。
【請求項３】
前記第１アドレス・フェーズ生成手段に結び付けられた読取りデータを処理する手段と、
前記第２アドレス・フェーズ生成手段に結び付けられた書込みデータを処理する手段とをさらに含む、請求項１に記載の装置。
【請求項４】
前記読取りデータ処理手段に結び付けられた読取りデータを要求する手段と、前記書込みデータ処理手段に結び付けられた書込みデータを要求する手段とをさらに含む、請求項３に記載の装置。
【請求項５】
読取りおよび書込みデータ・バスを有するプロセッサ・ローカル・バス（ＰＬＢ）と、
前記ＰＬＢに結び付けられたアービタと、
前記ＰＬＢに結び付けられた少なくとも２つのマスタとを含み、前記少なくとも２つのマスタの第１マスタが、
前記ＰＬＢに結び付けられた読取りデータのための第１アドレス・フェーズを生成する第１手段と、
前記ＰＬＢに結び付けられた書込みデータのための第２アドレス・フェーズを生成する第２手段とを含み、前記第２アドレス・フェーズ生成手段が、前記書込みデータ・バスがアイドルで前記読取りデータ・バスがビジーであるときに書込みオペレーションを実行するように構成され、逆も同様であるシステム・オン・ア・チップ。
【請求項６】
前記第１および第２アドレス・フェーズ生成手段が読取りおよび書込み要求を同時に処理するように構成される、請求項５に記載のシステム。
【請求項７】
前記第１アドレス・フェーズ生成手段に結び付けられた読取りデータを処理する手段と、
前記第２アドレス・フェーズ生成手段に結び付けられた書込みデータを処理する手段とをさらに含む、請求項６に記載のシステム。
【請求項８】
前記読取りデータ処理手段に結び付けられた読取りデータを要求する手段と、前記書込みデータ処理手段に結び付けられた書込みデータを要求する手段とをさらに含む、請求項７に記載のシステム。
【請求項９】
読取りおよび書込みデータ・バスを有するプロセッサ・ローカル・バス（ＰＬＢ）を管理する方法であって、
前記ＰＬＢに結び付けられた読取りデータのための第１アドレス・フェーズを生成するステップと、
前記ＰＬＢに結び付けられた書込みデータのための第２アドレス・フェーズを生成するステップとを含み、前記第２アドレス・フェーズ生成ステップにおいて、前記書込みデータ・バスがアイドルで前記読取りデータ・バスがビジーであるときに書込みオペレーションを実行し、逆も同様である方法。
【請求項１０】
前記第１および第２アドレス・フェーズ生成ステップにおいて読取りおよび書込み要求を同時に処理する、請求項９に記載の方法。
【請求項１１】
前記第１アドレス・フェーズ生成ステップのための読取りデータを処理するステップと、
前記第２アドレス・フェーズ生成ステップのための書込みデータを処理するステップとをさらに含む、請求項９に記載の方法。
【請求項１２】
前記読取りデータ処理ステップのための読取りデータを要求するステップと、前記書込みデータ処理ステップのための書込みデータを要求するステップとをさらに含む請求項１１に記載の方法。
【請求項１３】
読取りおよび書込みデータ・バスを有するプロセッサ・ローカル・バス（ＰＬＢ）、前記ＰＬＢに結び付けられたアービタ、および前記ＰＬＢに結び付けられた少なくとも２つのマスタを有するシステム・オン・ア・チップにおいて、前記少なくとも２つのマスタの第１マスタにより前記ＰＬＢを管理する方法であって、前記方法が、
前記ＰＬＢを介して提供される読取りデータのための第１アドレス・フェーズを生成するステップと、
前記ＰＬＢを介して提供される書込みデータのための第２アドレス・フェーズを生成するステップとを含み、前記第２アドレス・フェーズ生成ステップにおいて、前記書込みデータ・バスがアイドルで前記読取りデータ・バスがビジーであるときに書込みオペレーションを実行し、逆も同様である方法。
【請求項１４】
前記第１および第２アドレス・フェーズ生成ステップにおいて読取りおよび書込み要求を同時に処理する、請求項１３に記載の方法。
【請求項１５】
前記第１アドレス・フェーズ生成ステップのための読取りデータを処理するステップと、
前記第２アドレス・フェーズ生成ステップのための書込みデータを処理するステップとをさらに含む、請求項１４に記載の方法。
【請求項１６】
前記読取りデータ処理ステップのための読取りデータを要求すること、および前記書込みデータ処理ステップのための書込みデータを要求することをさらに含む、請求項１５に記載の方法。
【請求項１７】
読取りおよび書込みデータ・バスを有するプロセッサ・ローカル・バス（ＰＬＢ）を管理するコンピュータ・プログラムが記録されたコンピュータ可読な記録媒体であって、前記コンピュータ・プログラムは、コンピュータを、
前記ＰＬＢを介して読取りデータのための第１アドレス・フェーズを生成するコンピュータ・プログラム・コード手段と、
前記ＰＬＢを介して書込みデータのための第２アドレス・フェーズを生成するコンピュータ・プログラム・コード手段として機能させるように構成され、前記第２アドレス・フェーズ生成において、前記書込みデータ・バスがアイドルで前記読取りデータ・バスがビジーであるときに書込みオペレーションを実行可能にし、逆も同様であるコンピュータ可読な記録媒体。
【請求項１８】
前記第１および第２アドレス・フェーズを生成する前記コンピュータ・プログラム・コード手段が、読取りおよび書込み要求を同時に処理するように構成される請求項１７に記載の記録媒体。
【請求項１９】
前記第１アドレス・フェーズを生成する前記コンピュータ・プログラム・コード手段のための読取りデータを処理するコンピュータ・プログラム・コード手段と、
前記第２アドレス・フェーズを生成する前記コンピュータ・プログラム・コード手段に結び付けられた書込みデータを処理するコンピュータ・プログラム・コード手段とをさらに含む、請求項１７に記載の記録媒体。
【請求項２０】
読取りデータを要求するコンピュータ・プログラム・コード手段と、
書込みデータを要求するコンピュータ・プログラム・コード手段とをさらに含む、請求項１９に記載の記録媒体。
【請求項２１】
読取りおよび書込みデータ・バスを有するプロセッサ・ローカル・バス（ＰＬＢ）、前記ＰＬＢに結び付けられたアービタ、および前記ＰＬＢに結び付けられた少なくとも２つのマスタを有するシステム・オン・ア・チップにおいて、前記少なくとも２つのマスタの第１マスタにより前記ＰＬＢを管理するコンピュータ・プログラムが記録されたコンピュータ可読な記録媒体であって、前記コンピュータ・プログラムは、コンピュータを、
前記ＰＬＢを提供するためのコンピュータ・プログラム・コード手段と、
前記ＰＬＢに結び付けられたアービタを提供するためのコンピュータ・プログラム・コード手段と、
前記ＰＬＢに結び付けられた少なくとも２つのマスタを提供するためのコンピュータ・プログラム・コード手段として機能させるように構成され、前記少なくとも２つのマスタの第１マスタにおいて、
前記ＰＬＢに結び付けられた読取りデータのための第１アドレス・フェーズを生成する第１手段と、
前記ＰＬＢに結び付けられた書込みデータのための第２アドレス・フェーズを生成する第２手段として機能させるように構成され、前記第２アドレス・フェーズ生成手段が、前記書込みデータ・バスがアイドルで前記読取りデータ・バスがビジーであるときに書込みオペレーションを実行するように構成され、逆も同様であるコンピュータ可読な記録媒体。
【請求項２２】
前記第１および第２アドレス・フェーズ生成手段が、読取りおよび書込み要求を同時に処理するように構成される、請求項２１に記載の記録媒体。
【請求項２３】
前記第１マスタにおいて、
前記第１アドレス・フェーズ生成手段に結び付けられた読取りデータを処理する手段と、
前記第２アドレス・フェーズ生成手段に結び付けられた書込みデータを処理する手段として機能させるためのコンピュータ・プログラムをさらに含む、請求項２２に記載の記録媒体。
【請求項２４】
前記第１マスタにおいて、
前記読取りデータ処理手段に結び付けられた読取りデータを要求する手段と、前記書込みデータ処理手段に結び付けられた書込みデータを要求する手段として機能させるためのコンピュータ・プログラムをさらに含む、請求項２３に記載の記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般にシステム・オン・ア・チップ（ｓｙｓｔｅｍ−ｏｎ−ａ−ｃｈｉｐ、ＳＯＣ）アプリケーションに関し、より詳細には、そのようなＳＯＣアプリケーションにおいて使用されるオンチップ・バス（ｏｎ−ｃｈｉｐ  ｂｕｓｅｓ）に関する。
【０００２】
【従来の技術】
最近のシリコン密度の向上は、多数の機能を単一のシリコン・チップ上に統合することを可能にする。この密度の増加に伴い、以前カード・レベルでプロセッサに接続されていた周辺装置は、プロセッサと同じダイ上に統合される。結果としてチップ設計者は、伝統的にシステム設計者によって処理された問題を取り扱わなければならない。このタイプの単一ダイ上の複合的な回路の実施は、システム・オン・ア・チップ（ＳＯＣ）と呼ばれる。
【０００３】
通常、ＳＯＣは多数の論理ゲートを代表する多数の機能ブロックを含む。そのようなシステムの設計は、マクロに基づく手法により実現される。マクロに基づく設計は、論理エントリおよび検証、ならびに特定の機能を有するマクロの再使用を容易にする。マクロは、ネットリスト（ｎｅｔｌｉｓｔ）の形態でライブラリ内に提供される再使用可能なテスト済み設計である。総称的シリアル・ポートから複合的なメモリ・コントローラおよびプロセッサ・コアにおよぶアプリケーションにおいて、各ＳＯＣはいくつかの共通マクロを使用する。コアは、ＶＨＤＬ、Ｖｅｒｉｌｏｇなど任意のハードウェア記述ランゲージにおいて再使用可能なテスト済み設計である。
【０００４】
そのようなアプリケーションにおいて使用される多数の単一チップ・ソリューションは、それぞれが自分自身の内部アーキテクチャを有するカスタム・チップとして設計される。そのようなチップ内の論理ユニットはしばしば、異なるアプリケーションにおいて抽出し再使用することが困難である。結果として同じ機能が、１つのアプリケーションから他のアプリケーションに何度も再設計される。
【０００５】
【発明が解決しようとする課題】
したがってそのようなＳＯＣ実施例において使用される、柔軟かつ堅固に多種多様な組込みシステム要件をサポートするオンチップ・バスのための改善されたアーキテクチャの必要性が明らかに存在する。
【０００６】
【課題を解決するための手段】
本発明の第１の態様によれば、読取りおよび書込みデータ・バスを有するプロセッサ・ローカル・バス（Ｐｒｏｃｅｓｓｏｒ  Ｌｏｃａｌ  Ｂｕｓ、ＰＬＢ）を管理する装置がここに提供される。この装置は、ＰＬＢに結び付けられた読取りデータのためのアドレス・フェーズ（ａｄｄｒｅｓｓ  ｐｈａｓｅ）を生成する第１モジュールおよびＰＬＢに結び付けられた書込みデータのためのアドレス・フェーズを生成する第２モジュールを含む。第２アドレス・フェーズ生成モジュールは、書込みデータ・バスがアイドルで読取りデータ・バスがビジーであるときに書込みオペレーションを実行するように構成され、その逆も同様である。第１および第２アドレス・フェーズ生成モジュールは、読取りおよび書込み要求を同時に処理するように構成されることが好ましい。この装置は、第１アドレス・フェーズ生成モジュールに結び付けられた読取りデータを処理するモジュール、および第２アドレス・フェーズ生成モジュールに結び付けられた書込みデータを処理するモジュールもまた含むことができる。この装置は、読取りデータ処理モジュールに結び付けられた読取りデータ要求モジュール、および書込みデータ処理モジュールに結び付けられた書込みデータ要求モジュールを含むことがさらに好ましい。
【０００７】
本発明の第２の態様によれば、システム・オン・ア・チップがここに提供される。このシステムは、
プロセッサ・ローカル・バス（ＰＬＢ）、
ＰＬＢに結び付けられたアービタ（ａｒｂｉｔｅｒ）、および
ＰＬＢに結び付けられた少なくとも２つのマスタを含み、前記少なくとも２つのマスタの第１マスタは、ＰＬＢに結び付けられた読取りデータのための第１アドレス・フェーズを生成する第１モジュール、およびＰＬＢに結び付けられた書込みデータのための第２アドレス・フェーズを生成する第２モジュールを含む。第２アドレス・フェーズ生成モジュールは、書込みデータ・バスがアイドルで読取りデータ・バスがビジーであるときに書込みオペレーションを実行するように構成され、その逆も同様である。
【０００８】
本発明の第３の態様によれば、読取りおよび書込みデータ・バスを有するプロセッサ・ローカル・バス（ＰＬＢ）を管理する方法がここに提供される。本方法は、ＰＬＢに結び付けられた読取りデータのための第１アドレス・フェーズを生成するステップと、ＰＬＢに結び付けられた書込みデータのための第２アドレス・フェーズを生成するステップとを含む。第２アドレス・フェーズ生成ステップは、書込みデータ・バスがアイドルで読取りデータ・バスがビジーであるときに書込みオペレーションを実行することができ、逆も同様である。
【０００９】
本発明の第４の態様によれば、システム・オン・ア・チップを提供する方法がここに提供される。本システムは、プロセッサ・ローカル・バス（ＰＬＢ）、ＰＬＢに結び付けられたアービタ、およびＰＬＢに結び付けられた少なくとも２つのマスタを有する。本方法は、ＰＬＢを介して提供される読取りデータのための第１アドレス・フェーズを生成するステップと、ＰＬＢを介して提供される書込みデータのための第２アドレス・フェーズを生成するステップとを含む。第２アドレス・フェーズ生成ステップは、書込みデータ・バスがアイドルで読取りデータ・バスがビジーであるときに書込みオペレーションを実行することができ、逆も同様である。
【００１０】
本発明の第５の態様によれば、読取りおよび書込みデータ・バスを有するプロセッサ・ローカル・バス（ＰＬＢ）を管理するコンピュータ・プログラムが中に記録されたコンピュータ可読媒体を有するコンピュータ・プログラム・プロダクトがここに提供される。本コンピュータ・プログラム・プロダクトは、ＰＬＢを介して読取りデータのための第１アドレス・フェーズを生成するコンピュータ・プログラム・コード・モジュールと、ＰＬＢを介して書込みデータのための第２アドレス・フェーズを生成するコンピュータ・プログラム・コード・モジュールを含む。第２アドレス・フェーズ生成は、書込みデータ・バスがアイドルで読取りデータ・バスがビジーであるときに書込みオペレーションを実行することができ、逆も同様である。
【００１１】
本発明の第６の態様によれば、システム・オン・ア・チップを提供するコンピュータ・プログラムが中に記録されたコンピュータ可読媒体を有するコンピュータ・プログラム・プロダクトがここに提供され、前記コンピュータ・プログラム・プロダクトは、
プロセッサ・ローカル・バス（ＰＬＢ）を提供するコンピュータ・プログラム・コード・モジュールと、ＰＬＢに結び付けられたアービタを提供するコンピュータ・プログラム・コード・モジュールと、ＰＬＢに結び付けられた少なくとも２つのマスタを提供するコンピュータ・プログラム・コード・モジュールとを含み、前記少なくとも２つのマスタの第１マスタが、ＰＬＢに結び付けられた読取りデータのための第１アドレス・フェーズを生成する第１手段と、ＰＬＢに結び付けられた書込みデータのための第２アドレス・フェーズを生成する第２手段とを含み、前記第２アドレス・フェーズ生成手段が、書込みデータ・バスがアイドルで読取りデータ・バスがビジーであるときに書込みオペレーションを実行するように構成され、逆も同様である。
【００１２】
【発明の実施の形態】
読取りおよび書込みデータ・バスを有するプロセッサ・ローカル・バス（ＰＬＢ）を管理する方法、装置およびコンピュータ・プログラム・プロダクトを述べる。次の記述において多数の詳細を述べる。しかしこれらの具体的詳細なしで本発明を実施できることが当業者には明らかであろう。他の例では、本発明をあいまいにしないために、よく知られている機能を詳細には述べない。
【００１３】
本発明の諸実施形態は一般に、ＳＯＣ設計において使用されるオンチップ・バスを対象とし、柔軟かつ堅固であり、その結果多種多様な組込みシステムのニーズをサポートする。詳細には、インタマクロ通信のために共通バスが使用され、その結果マクロ相互接続性を保証することにより、そのようなＳＯＣアプリケーション内の論理ユニットの再使用を促進する。この目的のために、相互接続コア、ライブラリ・マクロ、およびカスタム論理回路のための３つのバスが利用される。それらのバスは、プロセッサ・ローカル・バス（ＰＬＢ）、オンチップ周辺バス（ＯＰＢ）、およびデバイス制御レジスタ（ＤＣＲ）バスを含む。
【００１４】
プロセッサ・ローカル・バス（ＰＬＢ）は、多数のシステム・オン・チップ（ＳＯＣ）アプリケーションにおいて使用される高性能オンチップ・バスである。ＰＬＢは、マスタおよびスレーブが接続されるＰＬＢコア（アービタ、制御およびゲート論理回路）からなる。ＰＬＢアーキテクチャは、最大１６のマスタをサポートする。個々のシステムの複雑性次第で、ＰＬＢコアは、設計されるか、または標準ライブラリから選択される。一般に標準ライブラリにおいて提供されるＰＬＢコアは、４／８マスタまたは最大１６のマスタをサポートする。ＰＬＢアーキテクチャは、別々の読取りおよび書込みバスを有するので、アドレス・パイプライン処理の実行後に、マスタは同時に読取りおよび書込みオペレーションを実行することができる。しかしＰＬＢアーキテクチャは、読取りおよび書込み両方の要求を同時には起動することができない。所与のシステム・オン・チップ（ＳＯＣ）アプリケーションにおいて、ＰＬＢアーキテクチャの重複読取りおよび書込み転送機能を用いてＰＬＢバス利用を改善することができる。
【００１５】
図１は、本発明の諸実施形態を実施することができるＰＬＢシステム１００の一実施例を示すブロック図である。システム１００は、プロセッサ・ローカル・バス１３０、プロセッサ・コア１１０、ＰＬＢアービタ１２０、外部周辺装置コントローラ１４０、およびメモリ・コントローラ１５０を含む。またシステム１００は、他のマスタも有し、このマスタは、例えばＯＨＣＩリンク・コントローラ１６０とすることができる。ＯＨＣＩリンク・コントローラ１６０は、プロセッサ・ローカル・バス１３０を１３９４ＰＨＹに結び付ける。ＩＥＥＥ１３９４は、シリアル通信プロトコルであり、ＰＨＹはこのプロトコルの物理層インタフェースである。ＰＬＢアービタ１２０は、プロセッサ・ローカル・バス１３０に直接結び付けられる。プロセッサ・コア１１０は、データ・キャッシュ・ユニット１１４および命令キャッシュ・ユニット１１６もまた含む。データ・キャッシュ・ユニット１１４は、プロセッサ・ローカル・バス１３０と双方向に結合され、両者間の両方向の矢印によってこれが示されている。命令キャッシュ・ユニット１１６は、プロセッサ・ローカル・バス１３０に一方向に結合され、プロセッサ・ローカル・バス１３０から命令キャッシュ・ユニット１１６に達する一方向の矢印でこれが示されている。
【００１６】
外部周辺装置コントローラ１４０は、プロセッサ・ローカル・バス１３０と双方向に結合され、両者間の両方向の矢印によってこれが示されている。このコントローラ１４０は、ＳＲＡＭ／ＲＯＭ１４４、外部周辺装置１４６、および外部バス・マスタ１４８を含む。
【００１７】
メモリ・コントローラ１５０もまた、プロセッサ・ローカル・バス１３０に双方向に結合され、両者間にわたる両方向の矢印によってこれが示されている。メモリ・コントローラ１５０はＳＤＲＡＭコントローラ１５４を含む。メモリ・コントローラ１５０、外部周辺装置コントローラ１４０、ＰＬＢアービタ１２０、およびプロセッサ・コア１１０は、リング状デバイス制御レジスタ（ＤＣＲ）バス１７０によってもまた相互接続される。例えばＤＣＲバス１７０Ｃは、ＰＬＢアービタ１２０とプロセッサ・コア１１０の間にわたり、ＰＬＢアービタ１２０からプロセッサ・コア１１０に達する一方向の矢印によってこれが示されている。同様の方法で、ＯＣＲバス１７０Ａは、メモリ・コントローラ１５０から外部周辺装置コントローラ１４０に達し、１７０Ｂは、後者１４０からＰＬＢアービタ１２０に達する。ＤＣＲループはバス・セグメント１７０Ｄおよび１７０Ｅで完結する。
【００１８】
命令キャッシュ・ユニット１１６は、メモリからの読取りしか実行せず、その結果ユニット１１６は、一方向の矢印によって示されるように、読取り転送しか要求しない。データ・キャッシュ・ユニット１１４は、両方向の矢印によって示されるように、ＰＬＢ１３０上の読取りおよび書込みオペレーションを実行する。
【００１９】
マスタとスレーブの結合を、図２により詳細に示す。図２に示す構成２００は、アービタ２２０に結び付けられた３つのＰＬＢマスタ２３０、２３２、２３４を含む。代わってアービタ２２０は、共用バス２５０を介して３つのＰＬＢスレーブ２４０、２４２、２４４に結合される。スレーブの数およびマスタの数は、本発明の範囲および精神から逸脱することなく変動し得る。図面を単純化するために、１つのマスタ２３０および１つのＰＬＢスレーブ２４０だけを詳細に示す。しかしマスタ２３０およびＰＬＢスレーブ２４０の詳細が他のマスタおよびスレーブにそれぞれ等しく適用されることが、当業者には理解されよう。
【００２０】
アービタ２２０は、中央バス・アービタおよびＰＬＢマクロを含む。裁定信号（マスタによる要求）は、ＰＬＢマスタ２３０からアービタ２２０の中央バス・アービタに達する。同様に、アドレスおよび転送クオリファイヤ、書込みデータ・バス、ならびに制御論理回路は、ＰＬＢマスタ２３０からアービタ２２０のゲート論理回路内のバス制御に達する。アービタ２２０は、ＰＬＢマスタ２３０に対する読取りデータ・バスならびに状況および制御情報もまた提供する。ＰＬＢスレーブ２４０、２４２、２４４の読取りデータ・バスならびに状況および制御信号は、「ＯＲ」ゲート２６０および２６２を介し、共用バス２５０を経てアービタ１２０（２２０）のＰＬＢマクロに結合される。代わって、アービタ１２０（２２０）は、アドレスおよび転送クオリファイヤ、書込みデータ・バス、ならびにＰＬＢスレーブ２４０、２４２、２４４に対する制御信号を提供する。
【００２１】
図３は、図１および２のＰＬＢマスタを実施するために使用することができる単一マスタ３００を示すブロック図である。単一マスタ３００は、ＰＬＢ３１０に結合される。マスタ３００は、アドレス・フェーズ生成器３４０、内部アービタ３４２を含む。マスタ３００は、読取りデータ・ハンドラ３４４および書込みデータ・ハンドラ３４６もまた含む。さらにマスタ３００は、読取りリクエスタ（ｒｅｑｕｅｓｔｅｒ）３３０および書込みリクエスタ３３２を有する。アドレス・フェーズ生成器３４０、内部アービタ３４２、および読取りおよび書込みデータ・ハンドラ３４４、３４６は、破線によって示されるように、単一モジュール３２０として実施されることが好ましい。読取りデータ・ハンドラ３４４および書込みデータ・ハンドラ３４６は、内部アービタ３４２に双方向に結合され、内部アービタ３４２は、アドレス・フェーズ生成器３４０に結合される。代わって読取りデータ・ハンドラ３４４は、読取りリクエスタ３３０に双方向に結合される。同様に書込みデータ・ハンドラ３４６は、書込みリクエスタ３３２に双方向に結合される。
【００２２】
図３を参照すると、ＰＬＢ３１０に接続されたマクロまたはコアが読取りまたは書込みオペレーションを実行したい場合、マクロまたはコアは、読取りリクエスタ３３０または書込みリクエスタ３３２を介して要求を渡す。最終的にこれらの２つの要求は、内部アービタ３４２により裁定され、アドレス・フェーズ生成器３４０に向けて１つの要求として渡される。アドレス・フェーズ生成器３４０は１度に１つの要求しか処理できないので、読取りデータ・ハンドラ３４４および書込みデータ・ハンドラ３４６は、読取りおよび書込みデータを処理するためにデータ・フェーズが進行中のときに使用される。
【００２３】
図４は、図３のマスタ３００を用いてＰＬＢ１３０上の読取りおよび書込みオペレーションを処理する方法を示すタイミング図である。最初に、マスタおよびアービタのアドレス・フェーズ内の書込みアドレス・フェーズ（Ａ２）４１２の前に、読取りアドレス・フェーズ（Ａ１）４１０が始まる。この例に示すように、読取りデータ・フェーズ内の読取りデータ・バスは、最初ビジー４２０である。（Ａ１）４２２のための読取りデータ・フェーズは、読取りアドレス・フェーズ４１０が肯定応答され、読取りデータ・バスが利用可能になってから実行される。読取りデータ・バスがビジー４２０であるとき、書込みデータ・バスはアイドル４３０である。しかし、書込み（Ａ２）オペレーション４３２は、書込みデータ・バスがアイドル４３０であるという事実にもかかわらず、読取りアドレス・フェーズ４１０が完了する後まで書込みデータ・フェーズ内で実行することができない。
【００２４】
したがって図４は、マスタ３００がアドレスＡ１で読取りオペレーションを、アドレスＡ２で書込みオペレーションを実行したい場合を示す。読取りデータ・バスがビジー４２０であり、パイプライン処理できないので、マスタ３００はアドレス肯定応答を得ない。マスタ３００は、読取り４１０のためのアドレス・フェーズを完了する前に、書込み４１２のための新たなアドレス・フェーズを出すことができない。その結果、単一のＰＬＢマスタ３００は、読取りおよび書込みを同時には要求できない。ＰＬＢマスタ３００が読取りおよび書込み両方の転送を行いたい場合、ＰＬＢマスタ３００は、読取りを最初に要求する。読取りデータ・バスがビジーである場合、読取り要求は、直ちに肯定応答される可能性も、そうでない可能性もある。その場合、書込み転送は不必要に損害を受け、逆も同様である。
【００２５】
本発明の諸実施形態は、マスタを２つ、すなわち読取りオペレーションを実行する一部分および書込みオペレーションを実行する他の部分、に分割することを要する。これは、選ばれたＰＬＢコアの既存の一実施例が他のマスタをサポートできる場合に容易に行うことができる。この手法は、読取りおよび書込みを同時に実行したい単一マスタのためのアドレス・フェーズ（要求フェーズ）のボトルネックを取り除く。
【００２６】
したがって例えば図１を参照すると、ＯＨＣＩリンク・コントローラ１６０（または他のマスタ）がＰＬＢ１３０の読取りバスをビジーに保持する場合、読取り付与を待つ代わりに、本発明の諸実施形態によるデータ・キャッシュ・ユニット１１４は、二重マスタが実施されていれば書込みオペレーションを開始することができる。
【００２７】
さらに図２を参照すると、ＰＬＢコア２２０が４つのマスタをサポートできる場合、読取りおよび書込みオペレーションを同時に実行する必要のあるこれらの３つのマスタ２３０、２３２、２３４の１つは、２つのマスタに分割することができる。本発明の諸実施形態によれば、諸マスタの１つは、読取りオペレーションを実行することができ、他のマスタは書込みオペレーションを実行する。
【００２８】
図５は、本発明の第１の実施形態による二重マスタ５００のブロック図である。二重マスタ５００は、読取りリクエスタ・モジュール５３０、書込みリクエスタ・モジュール５３２、読取りデータ・ハンドラ・モジュール５４４、書込みデータ・ハンドラ・モジュール５４６、および図３のアドレス生成器３４０と同じ機能を有する２つのアドレス・フェーズ生成器５４０、５４２を含む。アドレス・フェーズ生成器５４０、５４２ならびに読取りおよび書込みデータ・ハンドラ５４４、５４６は、破線により示されるように、単一モジュール５２０に実施されることが好ましい。二重マスタ５００の構成は、アドレス・フェーズ生成器が今度は、書込みデータ・ハンドラ５４６および読取りデータ・ハンドラ５４４にそれぞれ結び付けられた２つのモジュール５４０、５４２として実施されることを除いて、図３の単一マスタ３００の構成と同様である。
【００２９】
本発明の諸実施形態は、（必要なときは）図３の単一マスタ・モードおよび図５の二重マスタ・モードを選択可能に実施できる総称的マスタ・インタフェースとして実施されることが好ましい。ＰＬＢ５１０に接続されたマクロまたはコアが読取りまたは書込みオペレーションを実行しようと努める場合、マクロは読取りリクエスタ５４４または書込みリクエスタ５４６を介して要求を渡すべきである。それぞれの要求は、アドレス・フェーズ生成器５４２および５４０に向けて別々に渡される。これらの２つのアドレス・フェーズ生成器は、それぞれアドレス・フェーズ生成器３４０と同じである。読取りおよび書込みデータ・ハンドラ５４４、５４６は、データ・フェーズが読取りおよび書込みデータを処理するために進行中であるときに使用される。
【００３０】
マスタ５００は、読取りオペレーションを実行するマスタと書込みオペレーションを実行する他のマスタに分割される。マスタ５００は、両方の要求をＰＬＢ５１０上に同時に出すことができる。読取りおよび書込みオペレーションの間の内部裁定を実行する代わりに、２つのマスタの実施により、ＰＬＢアービタ１２０（２２０）がＰＬＢアクティビティの完全な状況を有し、読取りまたは書込みオペレーションを開始できるので、ＰＬＢアービタ１２０（２２０）が裁定できるようになる。書込みデータ・バスがアイドルなので、ＰＬＢアービタ１２０（２２０）は、バスに書込みオペレーションを付与する。マスタ５００は、より速く転送を終了することができる。したがって第１の実施形態による二重マスタ５００は、システム性能を向上させる。
【００３１】
したがって図５の総称的マスタ・インタフェースは、そのインタフェースをＰＬＢ１３０上の二重マスタ、すなわち読取り要求だけを実行する１つのマスタ、およびデバイスから書込み要求だけを実行する他のマスタ、としてカスタマイズする柔軟性をユーザに提供する。図４の処理（および図３のマスタ３００）は、読取りおよび書込み要求が同時には来ないか、または読取りと書込み要求に何らかのデータ依存性があって順序付けられた転送が必要であるときに、使用することができる。しかし他の情況において二重マスタ５００は、図６のタイミング図にしたがって動作することができる。
【００３２】
図１のＰＬＢコア１３０がもう１つのマスタをサポートできる場合、本発明の諸実施形態にしたがって、データ・キャッシュ・ユニット１１４は、２つのマスタ、すなわち読取りオペレーションだけを実行するマスタ、と書込みオペレーションだけを実行する他のマスタ、として実施することができる。これらのオペレーションは、図１において破線の矢印により示される。読取りと書込み要求の間で内部的に裁定を行い、ＰＬＢバス１３０上に１つの要求を出す代わりに、プロセッサ・コア１１０は、データ依存性の問題がなければ、本発明の諸実施形態を用いて、この裁定をＰＬＢアービタ１２０に残す。
【００３３】
図６は、二重マスタ５００のオペレーションを示すタイミング図である。この実施形態では、第１および第２マスタ（読取りオペレーションのためのマスタＡおよび書込みオペレーションのためのマスタＢ）は、読取りおよび書込みアドレス要求を求めて、読取り要求（Ａ１）６１０および書込み要求（Ａ２）６１２をＰＬＢ１３０上に同時に置くことができる。アービタでのアドレス・フェーズ中に、書込みアドレス・フェーズ（Ａ２）６２２、次いで読取りアドレス・フェーズ（Ａ１）６２０が実行される。これは、書込みデータ・バスは最初アイドルであるが、読取りデータ・バスは最初、読取りデータ・フェーズ中はビジー６３０であるために起こり、その結果、書込みオペレーション（Ａ２）６４０は、読取りデータ・バスがビジーである間に実行することができる。書込みデータ・バスは次いでアイドル６４２になる。読取りオペレーション（Ａ１）６３２は、読取りデータ・バスがもうビジーでなくなった後に読取りデータ・フェーズにおいて実行することができる。この方法で、書込みオペレーションを実行する時間を節約することができる。
【００３４】
プロセッサ・ローカル・バス（ＰＬＢ）を管理する方法のコンポーネントは、モジュールとして実施することができる。モジュール、および特にその機能は、ハードウェアまたはソフトウェアのいずれかの中に実施することができる。ソフトウェアの意味においてモジュールは、通常、特定機能または関連機能を実行するプロセス、プログラムまたはその一部である。ハードウェアの意味においてモジュールは、他のコンポーネントまたはモジュールと共に使用するように設計された機能的ハードウェア・ユニットである。例えばモジュールは、別々の電子素子を用いて実施することができるか、または特定用途向けＩＣ（ＡＳＩＣ）などの全電子回路の一部を形成することができる。他の多数の可能性が存在する。システムをハードウェアおよびソフトウェア・モジュールの組合わせとして実施することもまたできることを、当業者は理解するであろう。
【００３５】
プロセッサ・ローカル・バス（ＰＬＢ）を管理する本方法の諸ステップは、処理コアによって実行されるソフトウェア内の命令により達成することができる。再び、ソフトウェアは、本方法の諸ステップを実施する１つまたは複数のモジュールとして実施することができる。
【００３６】
詳細には、ソフトウェアは記憶装置を含むコンピュータ可読媒体内に格納することができる。コンピュータ可読媒体は、記録されたそのようなソフトウェアまたはプログラム・コードを格納することができ、その結果ソフトウェアまたはプログラム・コードの諸命令を実行することができる。諸実施形態の処理は、コンピュータ可読媒体内に記録されたソフトウェアまたはコンピュータ可読プログラム・コードとして存在することができる。
【００３７】
前述の方法で、プロセッサ・ローカル・バス（ＰＬＢ）を管理する方法、装置およびコンピュータ・プログラム・プロダクトが開示される。少数の実施形態しか述べられていないが、当業者には、本発明の範囲および精神から逸脱することなく、多数の変更および／または修正が可能であることが、この開示を見て明らかであろう。
【００３８】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００３９】
（１）読取りおよび書込みデータ・バスを有するプロセッサ・ローカル・バス（ＰＬＢ）を管理する装置であって、
前記ＰＬＢに結び付けられた読取りデータのための第１アドレス・フェーズを生成する第１手段と、
前記ＰＬＢに結び付けられた書込みデータのための第２アドレス・フェーズを生成する第２手段とを含み、前記第２アドレス・フェーズ生成手段が、前記書込みデータ・バスがアイドルで前記読取りデータ・バスがビジーであるときに書込みオペレーションを実行するように構成され、逆も同様である装置。
（２）前記第１および第２アドレス・フェーズ生成手段が、読取りおよび書込み要求を同時に処理するように構成される、上記（１）に記載の装置。
（３）前記第１アドレス・フェーズ生成手段に結び付けられた読取りデータを処理する手段と、
前記第２アドレス・フェーズ生成手段に結び付けられた書込みデータを処理する手段とをさらに含む、上記（１）に記載の装置。
（４）前記読取りデータ処理手段に結び付けられた読取りデータを要求する手段と、
前記書込みデータ処理手段に結び付けられた書込みデータを要求する手段とをさらに含む、上記（３）に記載の装置。
（５）プロセッサ・ローカル・バス（ＰＬＢ）と、
前記ＰＬＢに結び付けられたアービタと、
前記ＰＬＢに結び付けられた少なくとも２つのマスタとを含み、前記少なくとも２つのマスタの第１マスタが、
前記ＰＬＢに結び付けられた読取りデータのための第１アドレス・フェーズを生成する第１手段と、
前記ＰＬＢに結び付けられた書込みデータのための第２アドレス・フェーズを生成する第２手段とを含み、前記第２アドレス・フェーズ生成手段が、前記書込みデータ・バスがアイドルで前記読取りデータ・バスがビジーであるときに書込みオペレーションを実行するように構成され、逆も同様であるシステム・オン・ア・チップ。
（６）前記第１および第２アドレス・フェーズ生成手段が読取りおよび書込み要求を同時に処理するように構成される、上記（５）に記載のシステム。
（７）前記第１アドレス・フェーズ生成手段に結び付けられた読取りデータを処理する手段と、
前記第２アドレス・フェーズ生成手段に結び付けられた書込みデータを処理する手段とをさらに含む、上記（６）に記載のシステム。
（８）前記読取りデータ処理手段に結び付けられた読取りデータを要求する手段と、
前記書込みデータ処理手段に結び付けられた書込みデータを要求する手段とをさらに含む、上記（７）に記載のシステム。
（９）読取りおよび書込みデータ・バスを有するプロセッサ・ローカル・バス（ＰＬＢ）を管理する方法であって、
前記ＰＬＢに結び付けられた読取りデータのための第１アドレス・フェーズを生成するステップと、
前記ＰＬＢに結び付けられた書込みデータのための第２アドレス・フェーズを生成するステップとを含み、前記第２アドレス・フェーズ生成ステップが、前記書込みデータ・バスがアイドルで前記読取りデータ・バスがビジーであるときに書込みオペレーションを実行し、逆も同様である方法。
（１０）前記第１および第２アドレス・フェーズ生成ステップが読取りおよび書込み要求を同時に処理する、上記（９）に記載の方法。
（１１）前記第１アドレス・フェーズ生成ステップに結び付けられた読取りデータを処理するステップと、
前記第２アドレス・フェーズ生成ステップのための書込みデータを処理するステップとをさらに含む、上記（９）に記載の方法。
（１２）前記読取りデータ処理ステップのための読取りデータを要求するステップと、前記書込みデータ処理ステップのための書込みデータを要求するステップとをさらに含む上記（１１）に記載の方法。
（１３）システム・オン・ア・チップを提供する方法であって、前記システムが、プロセッサ・ローカル・バス（ＰＬＢ）、前記ＰＬＢに結び付けられたアービタ、および前記ＰＬＢに結び付けられた少なくとも２つのマスタを有し、前記方法が、
前記ＰＬＢを介して提供される読取りデータのための第１アドレス・フェーズを生成するステップと、
前記ＰＬＢを介して提供される書込みデータのための第２アドレス・フェーズを生成するステップとを含み、前記第２アドレス・フェーズ生成ステップが、前記書込みデータ・バスがアイドルで前記読取りデータ・バスがビジーであるときに書込みオペレーションを実行し、逆も同様である方法。
（１４）前記第１および第２アドレス・フェーズ生成ステップが読取りおよび書込み要求を同時に処理する、上記（１３）に記載の方法。
（１５）前記第１アドレス・フェーズ生成ステップのための読取りデータを処理するステップと、
前記第２アドレス・フェーズ生成ステップのための書込みデータを処理するステップとをさらに含む、上記（１４）に記載の方法。
（１６）前記読取りデータ処理ステップのための読取りデータを要求すること、および
前記書込みデータ処理ステップのための書込みデータを要求することをさらに含む、上記（１５）に記載の方法。
（１７）読取りおよび書込みデータ・バスを有するプロセッサ・ローカル・バス（ＰＬＢ）を管理する記録されたコンピュータ・プログラムを中に有するコンピュータ可読媒体を有するコンピュータ・プログラム・プロダクトであって、
前記ＰＬＢを介して読取りデータのための第１アドレス・フェーズを生成するコンピュータ・プログラム・コード手段と、
前記ＰＬＢを介して書込みデータのための第２アドレス・フェーズを生成するコンピュータ・プログラム・コード手段とを含み、前記第２アドレス・フェーズ生成が、前記書込みデータ・バスがアイドルで前記読取りデータ・バスがビジーであるときに書込みオペレーションを実行することができ、逆も同様であるコンピュータ・プログラム・プロダクト。
（１８）前記第１および第２アドレス・フェーズを生成する前記コンピュータ・プログラム・コード手段が、読取りおよび書込み要求を同時に処理するように構成される上記（１７）に記載のコンピュータ・プログラム・プロダクト。
（１９）前記第１アドレス・フェーズを生成する前記コンピュータ・プログラム・コード手段のための読取りデータを処理するコンピュータ・プログラム・コード手段と、
前記第２アドレス・フェーズを生成する前記コンピュータ・プログラム・コード手段に結び付けられた書込みデータを処理するコンピュータ・プログラム・コード手段とをさらに含む、上記（１７）に記載のコンピュータ・プログラム・プロダクト。
（２０）読取りデータを要求するコンピュータ・プログラム・コード手段と、
書込みデータを要求するコンピュータ・プログラム・コード手段とをさらに含む、上記（１９）に記載のコンピュータ・プログラム・プロダクト。
（２１）システム・オン・ア・チップを提供するために、記録されたコンピュータ・プログラムを中に有するコンピュータ可読媒体を有するコンピュータ・プログラム・プロダクトであって、
プロセッサ・ローカル・バス（ＰＬＢ）を提供するためのコンピュータ・プログラム・コード手段と、
前記ＰＬＢに結び付けられたアービタを提供するためのコンピュータ・プログラム・コード手段と、
前記ＰＬＢに結び付けられた少なくとも２つのマスタを提供するためのコンピュータ・プログラム・コード手段とを含み、前記少なくとも２つのマスタの第１マスタが、
前記ＰＬＢに結び付けられた読取りデータのための第１アドレス・フェーズを生成する第１手段と、
前記ＰＬＢに結び付けられた書込みデータのための第２アドレス・フェーズを生成する第２手段とを含み、前記第２アドレス・フェーズ生成手段が、前記書込みデータ・バスがアイドルで前記読取りデータ・バスがビジーであるときに書込みオペレーションを実行するように構成され、逆も同様であるコンピュータ・プログラム・プロダクト。
（２２）前記第１および第２アドレス・フェーズ生成手段が、読取りおよび書込み要求を同時に処理するように構成される、上記（２１）に記載のコンピュータ・プログラム・プロダクト。
（２３）前記第１マスタが、
前記第１アドレス・フェーズ生成手段に結び付けられた読取りデータを処理する手段と、
前記第２アドレス・フェーズ生成手段に結び付けられた書込みデータを処理する手段とをさらに含む、上記（２２）に記載のコンピュータ・プログラム・プロダクト。
（２４）前記第１マスタが、
前記読取りデータ処理手段に結び付けられた読取りデータを要求する手段と、前記書込みデータ処理手段に結び付けられた書込みデータを要求する手段とをさらに含む、上記（２３）に記載のコンピュータ・プログラム・プロダクト。
【図面の簡単な説明】
【図１】本発明の諸実施形態を実施することができるプロセッサ・ローカル・バス（ＰＬＢ）アーキテクチャを有するシステム・オン・ア・チップ（ＳＯＣ）の一部のブロック図である。
【図２】図１のＰＬＢマスタとスレーブの間のＰＬＢマクロまたはコアを介したＰＬＢ相互接続の一例の詳細をさらに示すブロック図である。
【図３】図１および２のＰＬＢに結び付けられた単一マスタを示すブロック図である。
【図４】図３の単一マスタを用いてＰＬＢの読取りおよび書込みアドレス・フェーズを処理する第１の手法を示すタイミング図である。
【図５】本発明の第１の実施形態による図１および２のＰＬＢに結び付けられた二重マスタのブロック図である。
【図６】本発明の第１の実施形態によるＰＬＢの読取りおよび書込みアドレス・フェーズを処理する図５の二重マスタの手法を示すタイミング図である。
【符号の説明】
５００  二重マスタ
５１０  ＰＬＢバス
５３０  読取りリクエスタ
５３２  書込みリクエスタ
５４０  アドレス・フェーズ生成器
５４２  アドレス・フェーズ生成器
５４４  読取りデータ・ハンドラ
５４６  書込みデータ・ハンドラ
【図１】
0003562583.tif 000002
【図２】
0003562583.tif 000003
【図３】
0003562583.tif 000004
【図４】
0003562583.tif 000005
【図５】
0003562583.tif 000006
【図６】
0003562583.tif 000007