(57)【要約】  処理システムと、処理システム内で通信する方法とが開示されている。処理システムは、送信チャネルをもつバスと、受信構成要素と、送出構成要素とを含み、送出構成要素は、送信チャネル上でペイロードを受信構成要素へ同報通信し、ペイロードの同報通信を中断して、送信チャネル上で新しいバスの動作を受信構成要素へ知らせ、送信チャネル上でのペイロードの同報通信を再開するように構成されている。処理システムは、小さいペイロードが、新しいバスの動作を開始するために中断されるのを防ぐアルゴリズムを含み得る。アルゴリズムは、新しいバスの動作を開始するために、１つの書き込み動作が中断され得る最大回数を制限するのにも使用され得る。【選択図】    図３
2008513886.tif 000002
【特許請求の範囲】
【請求項１】
送信チャネルをもつバスと、
受信構成要素と、
送出構成要素とを含み、送出構成要素が、送信チャネル上でペイロードを受信構成要素へ同報通信し、ペイロードの同報通信を中断して、送信チャネル上で新しいバスの動作を受信構成要素へ知らせ、送信チャネル上でのペイロードの同報通信を再開するように構成されている処理システム。
【請求項２】
新しいバスの動作が、読み出し動作を含む請求項１記載の処理システム。
【請求項３】
バスが、受信チャネルをさらに含み、受信構成要素が、読み出し動作のための受信構成要素への信号に応答して、受信チャネル上でペイロードを送出構成要素へ同報通信するように構成されている請求項２記載の処理システム。
【請求項４】
受信構成要素が、送出構成要素によって送信チャネル上で同報通信されるペイロードの少なくとも一部分の同報通信と同時に、受信チャネル上でペイロードの少なくとも一部分を同報通信するように構成されている請求項３記載の処理システム。
【請求項５】
読み出し動作のための信号が、アドレス位置および転送クォリファイアを含む請求項３記載の処理システム。
【請求項６】
送出構成要素が、ペイロードを同報通信する前に、送信チャネル上で書き込み動作を受信構成要素へ知らせるようにさらに構成されている請求項１記載の処理システム。
【請求項７】
書き込み動作のための信号が、アドレス位置および転送クォリファイアを含む請求項６記載の処理システム。
【請求項８】
送信チャネルをもつバスと、
受信構成要素と、
送出構成要素とを含み、送出構成要素が、送信チャネル上でペイロードを受信構成要素へ同報通信し、ペイロードの同報通信中に開始された各新しいバスの動作のために、ペイロードの同報通信を、中断の最大数まで、中断し、各中断の間に、送信チャネル上で新しいバスの動作の異なる１つを受信構成要素へ知らせ、各中断の後で、送信チャネル上でのペイロードの同報通信を再開するように構成されている処理システム。
【請求項９】
新しいバスの動作の少なくとも１つが、読み出し動作を含む請求項８記載の処理システム。
【請求項１０】
中断の最大数が、プログラム可能である請求項８記載の処理システム。
【請求項１１】
送出構成要素が、ペイロードの同報通信が最大回数まで中断された後で行われたペイロードの同報通信中に開始された新しいバスの動作の各々を、受信構成要素へ知らせるのを遅らせるようにさらに構成されている請求項８記載の処理システム。
【請求項１２】
送出構成要素が、カウンタをさらに含み、送出構成要素が、中断の最大数に等しい値をカウンタにロードし、ペイロードの同報通信が中断されるたびに、値をディクリメントし、値が０に達すると、中断することなく、ペイロードの同報通信を完了するようにさらに構成されている請求項８記載の処理システム。
【請求項１３】
送信チャネルをもつバスと、
受信構成要素と、
送出構成要素とを含み、送出構成要素は、送信チャネル上でペイロードを受信構成要素へ同報通信し、ペイロードの同報通信の開始に続くある時間期間中に、新しいバスの動作を開始し、ペイロードが、その時間期間中に中断されることなく、同報通信されることを可能にし、ペイロードの同報通信がその時間期間を超えて延びると、その時間期間の後で、ペイロードの同報通信を中断して、送信チャネル上で新しいバスの動作を受信構成要素へ知らせ、中断されたときは、ペイロードの同報通信を再開するように構成されている処理システム。
【請求項１４】
新しいバスの動作が、読み出し動作を含む請求項１３記載の処理システム。
【請求項１５】
送出構成要素が、ペイロードの同報通信の開始後の特定数のクロックサイクルの後でのみ、ペイロードの同報通信を中断して、新しいバスの動作を受信構成要素へ知らせるようにさらに構成されている請求項１３記載の処理システム。
【請求項１６】
クロックサイクルの特定数が、プログラム可能である請求項１５記載の処理システム。
【請求項１７】
送出構成要素が、カウンタをさらに含み、送出構成要素が、クロックサイクルの特定数に等しい値をカウンタにロードし、ペイロードの同報通信の開始後の各クロックサイクルの後で、値をディクリメントし、値が０に達した後でのみ、ペイロードの同報通信を中断して、新しいバスの動作を受信構成要素へ知らせるようにさらに構成されている請求項１５記載の処理システム。
【請求項１８】
送出構成要素が、特定数のペイロードのデータビートが同報通信された後でのみ、ペイロードの同報通信を中断して、新しいバスの動作を受信構成要素へ知らせるようにさらに構成されている請求項１３記載の処理システム。
【請求項１９】
ペイロードのデータビートの特定数が、プログラム可能である請求項１８記載の処理システム。
【請求項２０】
送出構成要素が、カウンタをさらに含み、送出構成要素が、ペイロードのデータビートの特定数に等しい値をカウンタにロードし、値が０に達した後でのみ、ペイロードの同報通信を中断して、新しいバスの動作を受信構成要素へ知らせるようにさらに構成されている請求項１８記載の処理システム。
【請求項２１】
送信チャネルをもつバスと、
受信構成要素と、
送出構成要素とを含み、送出構成要素が、送信チャネル上でペイロードを受信構成要素へ同報通信する手段と、ペイロードの同報通信を中断し、送信チャネル上で新しいバスの動作を受信構成要素へ知らせる手段と、ペイロードの同報通信を再開する手段とをもつ処理システム。
【請求項２２】
送信チャネルをもつバス上で、送出構成要素と受信構成要素との間で通信する方法であって、
送信チャネル上で送出構成要素から受信構成要素へペイロードを同報通信することと、
ペイロードの同報通信を中断して、送信チャネル上で新しいバスの動作を受信構成要素へ知らせることと、
送信チャネル上での送出構成要素から受信構成要素へのペイロードの同報通信を再開することとを含む方法。
【請求項２３】
新しいバスの動作が、読み出し動作を含む請求項２２記載の方法。
【請求項２４】
バスが、受信チャネルをさらに含み、方法が、読み出し動作のための受信構成要素への信号に応答して、受信チャネル上で受信構成要素から送出構成要素へペイロードを同報通信することをさらに含む請求項２３記載の方法。
【請求項２５】
受信チャネル上での受信構成要素から送出構成要素へのペイロードの少なくとも一部分の同報通信が、送信チャネル上で送出構成要素から受信構成要素へ同報通信されるペイロードの少なくとも一部分の同報通信と同時に行われる請求項２４記載の方法。
【請求項２６】
読み出し動作のための信号が、アドレス位置および転送クォリファイアを含む請求項２４記載の方法。
【請求項２７】
ペイロードを同報通信する前に、送出構成要素によって、送信チャネル上で書き込み動作を受信構成要素へ知らせることをさらに含む請求項２２記載の方法。
【請求項２８】
書き込み動作のためのシグナリングが、アドレス位置および転送クォリファイアを含む請求項２７記載の方法。
【請求項２９】
送信チャネルをもつバス上で、送出構成要素と受信構成要素との間で通信する方法であって、
送信チャネル上で送出構成要素から受信構成要素へペイロードを同報通信することと、
ペイロードの同報通信中に送出構成要素によって開始された各新しいバスの動作のために、ペイロードの同報通信を、中断の最大数に達するまで、中断することと、
各中断の間に、送出構成要素によって、送信チャネル上で新しいバスの動作の異なる１つを受信構成要素へ知らせることと、
各中断の後で、送信チャネル上での送出構成要素による受信構成要素へのペイロードの同報通信を再開することとを含む方法。
【請求項３０】
新しいバスの動作の少なくとも１つが、読み出し動作を含む請求項２９記載の方法。
【請求項３１】
中断の最大数が、プログラム可能である請求項２９記載の方法。
【請求項３２】
ペイロードの同報通信が最大回数まで中断された後で行われたペイロードの同報通信中に開始された新しいバスの動作の各々を、送出構成要素によって、受信構成要素へ知らせるのを遅らせることをさらに含む請求項２９記載の方法。
【請求項３３】
送出構成要素が、カウンタをさらに含み、方法が、中断の最大数に等しい値をカウンタにロードすることと、ペイロードの同報通信が中断されるたびに、値をディクリメントすることと、値が０に達すると、中断することなく、ペイロードの同報通信を完了することとをさらに含む請求項２９記載の方法。
【請求項３４】
送信チャネルをもつバス上で、送出構成要素と受信構成要素との間で通信する方法であって、
第１および第２の時間期間中に、送信チャネル上で送出構成要素から受信構成要素へペイロードを同報通信することと、
ペイロードの同報通信の開始に続く第１の時間期間中に、新しいバスの動作を開始することと、
第１の時間期間に続く第２の時間期間中に、ペイロードの同報通信を中断し、送出構成要素によって送信チャネル上で新しいバスの動作を受信構成要素へ知らせることと、
ペイロードの同報通信を再開することとを含む方法。
【請求項３５】
新しいバスの動作が、読み出し動作を含む請求項３４記載の方法。
【請求項３６】
ペイロードの開始に続く特定数のクロックサイクルの後でのみ、新しいバスの動作の開始に応答して、ペイロードの同報通信が中断される請求項３４記載の方法。
【請求項３７】
クロックサイクルの特定数が、プログラム可能である請求項３６記載の方法。
【請求項３８】
送出構成要素が、カウンタをさらに含み、方法が、クロックサイクルの特定数に等しい値をカウンタにロードすることと、ペイロードの同報通信の開始後の各クロックサイクルの後で、値をディクリメントすることと、値が０に達した後でのみ、新しいバスの動作の開始に応答して、ペイロードの同報通信を中断することとをさらに含む請求項３６記載の方法。
【請求項３９】
特定数のペイロードのデータビートが同報通信された後でのみ、新しいバスの動作の開始に応答して、ペイロードの同報通信が中断される請求項３４記載の方法。
【請求項４０】
クロックサイクルの特定数が、プログラム可能である請求項３９記載の方法。
【請求項４１】
送出構成要素が、カウンタをさらに含み、方法が、特定数のペイロードのデータビートに等しい値をカウンタにロードすることと、各ペイロードのデータビートが同報通信された後で、値をディクリメントすることと、値が０に達した後でのみ、新しいバスの動作の開始に応答して、ペイロードの同報通信を中断することとをさらに含む請求項３９記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概ね、バスアーキテクチャを用いる処理システム、より具体的には、バスの送信チャネル上の帯域幅を割り振る方法および装置に関する。
【背景技術】
【０００２】
コンピュータは、非常に複雑な処理タスクが、キーパッドをほんの数回打つことで、行なわれるのを可能にすることによって、エレクトロニクス産業に大きな変革をもたらした。これらの非常に複雑なタスクは、信じられないほど多くの複雑な構成要素に関係し、これらの構成要素は、バスを使用して、高速で、効率的に、相互に通信する。バスとは、コンピュータ内の構成要素間のチャネルまたはパスである。
【０００３】
一般的なコンピュータは、システムメモリを備えたマイクロプロセッサを含む。システムのバス（system bus）は、二者間の通信を支援するのに使用され得る。さらに加えて、データを種々の周辺装置へ転送するのに使用される他の周辺装置のバス（peripheral bus）もあり得る。幾つかの場合において、種々の資源をプログラムする目的で使用される構成バス(configuration bus)もあり得る。ブリッジは、より大きいまたはより小さい帯域幅のバス間でデータを効率的に転送するのに、および必要なプロトコル変換を行うのに使用され得る。
【０００４】
コンピュータ内に存在する多くのバスは、従来から、共有バス（shared bus）として実施されてきた。共有バスは、任意の数の構成要素が共通の経路またはチャネルによって通信するための手段を与える。近年、共有バスの技術は、大部分は、二地点間交換接続（point-to-point switching connections）に代わった。二地点間交換接続は、バス上の２つの構成要素が相互に通信している間、それらの間に直接的な接続を与える。多数の直接リンクを使用して、幾つかの構成要素が同時に通信するのを可能にし得る。
【０００５】
従来のバス設計は、独立した別々の読み出しチャネル、書き込みチャネル、および１本以上のアドレスチャネルを含む。マイクロプロセッサは、例えば、アドレスチャネル上にアドレス位置を置き、適切な読み出し／書き込み制御信号を送ることによって、システムメモリを読み出すか、またはそこへ書き込むことができる。マイクロプロセッサは、システムメモリにデータを書き込むときは、書き込みチャネル上でデータを送る。マイクロプロセッサは、システムメモリからデータを読み出すときは、読み出しチャネル上でデータを受信する。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
この特定のバス構造は、コンピュータの構成要素間で通信するための適正に標準化されたやり方を与えるが、多数の専用チャネルを必要とする。これらのチャネルは、ドライバ、受信機、および緩衝回路を必要とし、これらは全て、電力を消費する。集積回路の応用において、これらのチャネルは、大切なチップ領域を占める。したがって、単純化されたバス構造が、当技術において必要とされている。
【課題を解決するための手段】
【０００７】
本発明の１つの態様において、処理システムは、送信チャネルをもつバスと、受信構成要素（receiving component）と、送出構成要素(sending component)とを含み、送出構成要素は、送信チャネル上でペイロードを受信構成要素へ同報通信し、ペイロードの同報通信を中断して、送信チャネル上で新しいバスの動作を受信構成要素へ知らせ、送信チャネル上でのペイロードの同報通信を再開するように構成されている。
【０００８】
本発明の別の態様において、処理システムは、送信チャネルをもつバスと、受信構成要素と、送出構成要素とを含み、送出構成要素は、送信チャネル上でペイロードを受信構成要素へ同報通信し、ペイロードの同報通信中に開始された各新しいバスの動作のために、ペイロードの同報通信を、中断の最大数に達するまで、中断し、各中断の間に、送信チャネル上で新しいバスの動作の異なる１つを受信構成要素へ知らせ、各中断の後で、送信チャネル上でのペイロードの同報通信を再開するように構成されている。
【０００９】
本発明のまた別の態様において、処理システムは、送信チャネルをもつバスと、受信構成要素と、送出構成要素とを含み、送出構成要素は、送信チャネル上でペイロードを受信構成要素へ同報通信し、ペイロードの同報通信の開始に続くある時間期間中に、新しいバスの動作を開始し、ペイロードが、その時間期間中に、中断されることなく、同報通信されることを可能にし、ペイロードの同報通信がその時間期間を超えて延びるときは、その時間期間の後で、ペイロードの同報通信を中断し、送信チャネル上で新しいバスの動作を受信構成要素へ知らせ、中断されたときは、ペイロードの同報通信を再開するように構成されている。
【００１０】
本発明のさらに別の実施形態において、処理システムは、送信チャネルをもつバスと、受信構成要素と、送出構成要素とを含み、送出構成要素は、送信チャネル上でペイロードを受信構成要素へ同報通信する手段と、ペイロードの同報通信を中断し、送信チャネル上で新しいバスの動作を受信構成要素へ知らせる手段と、ペイロードの同報通信を再開する手段とをもつ。
【００１１】
本発明の他の態様において、送信チャネルをもつバス上で、送出構成要素と受信構成要素との間で通信する方法であって、方法は、送信チャネル上で送出構成要素から受信構成要素へペイロードを同報通信することと、ペイロードの同報通信を中断して、送信チャネル上で新しいバスの動作を受信構成要素へ知らせることと、送信チャネル上での送出構成要素から受信構成要素へのペイロードの同報通信を再開することとを含む。
【００１２】
本発明のまた他の態様において、送信チャネルをもつバス上で、送出構成要素と受信構成要素との間で通信する方法であって、方法は、送信チャネル上で送出構成要素から受信構成要素へペイロードを同報通信することと、ペイロードの同報通信中に送出構成要素によって開始された各新しいバスの動作のために、ペイロードの同報通信を、中断の最大数に達するまで、中断することと、各中断の間に、送信チャネル上で新しいバスの動作の異なる１つを受信構成要素へ知らせることと、各中断の後で、送信チャネル上での送出構成要素による受信構成要素へのペイロードの同報通信を再開することとを含む。
【００１３】
本発明のさらに他の態様において、送信チャネルをもつバス上で、送出構成要素と受信構成要素との間で通信する方法であって、方法は、第１および第２の時間期間中に、送信チャネル上で送出構成要素から受信構成要素へペイロードを同報通信することと、ペイロードの同報通信の開始に続く第１の時間期間中に、新しいバスの動作を開始することと、第１の時間期間に続く第２の時間期間中に、ペイロードの同報通信を中断し、送出構成要素によって送信チャネル上で新しいバスの動作を受信構成要素へ知らせることと、ペイロードの同報通信を再開することとを含む。
【００１４】
本発明の種々の実施形態が例示的に示され、記載されている次の詳細な説明から、本発明の他の実施形態が、当業者には容易に明らかになるであろうと理解される。理解されることになるように、本発明は、他の、および異なる実施形態が可能であり、その幾つかの細部は、その全てが本発明の意図および範囲から逸脱することなく、種々の他の点において、変更することができる。したがって、図面および詳細な記述は、本質的に例示的であって、限定的ではないと考えられる。
【発明を実施するための最良の形態】
【００１５】
本発明の態様は、添付の図面において、限定によってではなく、例示によって示されている。
【００１６】
添付の図面に関連して次に記載される詳細な記述は、本発明の種々の実施形態の記述として意図しており、本発明が実行され得る唯一の実施形態を表わすことを意図しているわけではない。詳細な記述は、本発明を完全に理解させるために、具体的な詳細を含んでいる。しかしながら、当業者には、本発明が、これらの具体的な詳細がなくても実行され得ることが明らかであるだろう。いくつかの例において、本発明の概念を不明瞭にするのを避けるために、周知の構造および構成要素がブロック図の形で示されている。
【００１７】
図１は、処理システム内の２つの構成要素間における、バス上での二地点間接続の例を示す概念ブロック図である。処理システム100は、１つ以上の処理機能を行うために協力する構成要素の集まりであり得る。一般に、処理システムは、コンピュータであるか、またはコンピュータ内に存在し、情報を処理し、検索し、記憶することができる。
【００１８】
処理システム100は、バス106上で受信構成要素104と通信する送出構成要素102と共に示されている。処理システム100の１つの実施形態において、バス106は、送出構成要素102と受信構成要素104との間の専用バスである。処理システム100の別の実施形態において、送出構成要素102は、バスの相互接続（図示されていない）によって、バス106上で二地点間接続で受信構成要素104と通信する。本発明が、専用バスまたは二地点間交換接続に制限されるのではなく、例えば、共有バスを含む、任意のタイプのバス技術に応用され得るという認識のもとで、本発明の全体的な理解を容易にするために、バスのこれらの実施形態が与えられている。
【００１９】
送出構成要素102は、任意のタイプのバスの主構成要素（mastering component）であり、例えば、マイクロプロセッサ、ディジタル信号プロセッサ(digital signal processor, DSP)、直接メモリアクセス制御装置、ブリッジ、プログラム可能な論理構成要素、ディスクリートなゲートまたはトランジスタ論理、あるいは任意の他の情報処理構成要素を含む。
【００２０】
受信構成要素104は、任意の記憶構成要素であり、例えば、レジスタ、メモリ、ブリッジ、相互接続、または情報を受信し、検索することができる任意の他の構成要素を含む。受信構成要素の各アドレス位置における記憶容量は、個々の応用および全体的な設計の制約に依存して、変わり得る。説明のために、アドレス位置当たりに１バイトの記憶容量をもつ受信構成要素が記載される。
【００２１】
バス106の複雑さは、従来のバス構造で使用されているアドレスチャネルを無くすことによって軽減され得る。アドレスチャネルを無くすことは、書き込みチャネルを“送信チャネル”108として再定義することによって達成され得る。送信チャネル108は、時分割多重化方式で、送出構成要素102と受信構成要素104との間で情報を同報通信するための一般的な媒体として使用され得る。この情報は、読み出しおよび書き込みアドレス情報、転送クォリファイア（transfer qualifier）、バイト書き込み許可(write byte enable)、受信構成要素へ書き込まれるデータ（“書き込みデータ”）、または何か他のバスに関係する情報を含み得る。受信チャネル110は、受信構成要素104から読み出されたデータ(“読み出しデータ”)を、送出構成要素102へ同報通信するのに使用され得る。
【００２２】
“転送クォリファイア”という用語は、読み出し動作、書き込み動作、または何か他のバスに関係する動作の属性を記述しているパラメータを指す。転送クォリファイアの例は、読み出しまたは書き込み動作のためのペイロードのサイズを示す信号である。“ペイロード”という用語は、１つの読み出しまたは書き込み動作と関係付けられたデータを指す。ペイロードが複数のバイトであるとき、受信構成要素104は、その動作に関連する送信チャネル108上で同報通信されたアドレス位置から始まる、連続するアドレス位置のブロックへ書き込むか、または読み出し得る。
【００２３】
“バイト書き込み許可”は、送信チャネル108上の何れのバイトのレーンが、書き込み動作のためのペイロードを同報通信するのに使用されることになるかを示すのに使用され得る。例えば、３２ビットの送信チャネル108上の２バイトのペイロードの同報通信は、４バイトのレーンの中の２バイトを使用し得る。バイト書き込み許可は、送信チャネル108上の２バイトのレーンの何れが、書き込み動作のためのペイロードを同報通信するのに使用されることになるかを、受信構成要素102に示すのに使用され得る。
【００２４】
送出構成要素102は、アドレス位置、転送クォリファイア、バイト書き込み許可、およびペイロードを送信チャネル108上で同報通信することによって、受信構成要素104に書き込み得る。ペイロードのサイズ、すなわち、送信チャネル108上でペイロードを同報通信するのに必要なクロック数は、送出構成要素102によって判断され、実施によって固定されるか、またはプログラム可能かであり得る。大抵の場合に、送信チャネル108全体で、大きいペイロードを同報通信して、バースティングプロトコルを使用することが望ましい。これは、多くの場合に、使用可能な帯域幅の全体的な効率をより高くする。しかしながら、大きいペイロードは、送信チャネル108上の読み出し動作のための次のアドレス位置を、送信チャネル上で受信構成要素104へ提示するのを遅らせるという欠点をもつ。これは、次に高い優先順位の読み出し動作の待ち時間を増加させ得る。待ち時間の間、送出構成要素102は、待ち状態であり得る。
【００２５】
送出構成要素102は、送信チャネル108上でアドレス情報およびペイロードの帯域幅を割り振り、この待ち時間を低減し、処理システム100の性能を高めるのを助けるように構成され得る。より具体的には、送出構成要素102は、送信チャネル108上の大きいペイロードの同報通信を中断し、ペイロード内の読み出し動作のためのアドレス位置および転送クォリファイアをインターリーブすることによって、高い優先順位の読み出し動作を開始するように構成され得る。次に、高い優先順位の読み出し動作のためのペイロードは、送信チャネル108上で同報通信されている書き込み動作のためのペイロードの残りの部分と並行して、受信チャネル110上で同報通信され得る。
【００２６】
送出構成要素102は、送信チャネル108上の大きいペイロードの同報通信を中断し、送信チャネル108全体における次の書き込み動作のパイプライン化を容易にするようにも構成され得る。受信構成要素104が、オフチップ（off-chip）メモリにアクセスするように構成されたメモリ制御器である場合に、アドレス位置がオフチップメモリに与えられるときから、ペイロードがメモリに書き込まれることができるまで、数クロックサイクルの遅れがあり得る。したがって、現在のペイロードの同報通信が完了する前に、書き込み動作のためのアドレス位置、転送クォリファイア、およびバイト書き込み許可が送信チャネル108全体で同報通信されることを可能にすることによって、受信構成要素104は、書き込み動作をより効率的にパイプライン化することができ得る。
【００２７】
これまでに記載された種々の概念は、任意の数のプロトコルを使用して、実施され得る。次の詳細な記述では、バスプロトコルの例が提示される。処理システムについての本発明の態様が任意の適切なプロトコルと共に使用され得るという認識のもとで、このバスプロトコルは、本発明の態様を説明するために提示されている。送信チャネルのための基本的なシグナリングプロトコルは、次のテーブル１に示されている。当業者には、本明細書に記載されているバス構造を実際に実施するとき、信号をこのプロトコルに容易に変更し、または追加し、あるいはこの両者を行うことができるであろう。
【表１】
2008513886.tif 000003
【００２８】
次のテーブル２に示されているように、同じシグナリングプロトコルが、受信チャネルのために使用され得る。
【表２】
2008513886.tif 000004
【００２９】
このシグナリングプロトコルにおいて使用されるタイプフィールドの定義は、テーブル３に示されている。
【表３】
2008513886.tif 000005
【００３０】
図２は、どのように書き込み動作が中断され、読み出し動作を開始し得るかを示すタイミング図である。この例において、送信チャネルは、６４ビットの幅であり、書き込み動作のためのペイロードは、６４バイトである。したがって、送信チャネル上でペイロードを同報通信するのに、８クロックサイクルが必要である。通常は、書き込み動作のためのペイロードの同報通信が完了するまで、読み出し動作を開始することはできない。しかしながら、上述の送信チャネル上の帯域幅の割り振り方法を使用すると、読み出し動作が送出構成要素によって開始されると直ぐに、読み出し動作のためのアドレス位置が、書き込み動作のためのペイロードとインターリーブされ、それによって、読み出し待ち時間を低減し、送信および受信チャネルの利用度を向上し得る。
【００３１】
図２を参照すると、クロック（Clock）222は、送出構成要素と受信構成要素との間の通信を同期させるのに使用され得る。書き込み動作は、１番目のクロックサイクル201中に、送出構成要素によって開始され得る。これは、送信有効(Transmit Valid)信号224をアサートし、送信タイプ(Transmit Type)フィールド226を、書き込み動作のためのアドレス位置の書き込み有効（valid write address location）の同報通信を知らせるように設定することによって、達成され得る。同時に、アドレス位置が、送信チャネル(Transmit Channel)228上で受信構成要素へ同報通信され得る。受信構成要素は、送信有効信号224のアサーションを検出し、送信タイプフィールド226から、送信チャネル228上で同報通信されたアドレス位置が、書き込み動作のための有効なアドレスであると判断する。応答して、受信構成要素は、アドレス位置をアドレス待ち行列に記憶する。さらに加えて、受信構成要素は、送信の転送Ａｃｋ(Transmit Transfer Ack)信号をアサートし、自分が同報通信を受信したことを示し得る。
【００３２】
アドレス位置の同報通信に続いて、２番目のクロックサイクル202において、書き込み動作のための転送クォリファイア（transfer qualifiers for the write operation）の同報通信が行われ得る。送出構成要素は、送信有効信号224をアサートし続け、タイプフィールド226を適切に変更することによって、この同報通信について、受信構成要素へ知らせ得る。転送クォリファイアは、書き込み動作のためのペイロードが６４バイトであることを示すシグナリングを含み得る。この場合に、転送クォリファイアは、全バイトレーンがペイロードを同報通信するのに使用されることになることを示すバイト書き込み許可を含み得る。その代わりに、バイト書き込み許可は、側波帯信号を使用して同報通信されることもある。受信構成要素は、送信有効信号224のアサーションを検出し、送信タイプフィールド226から、書き込み動作のための、送信チャネル228上で同報通信された転送クォリファイアが有効であると判断する。受信構成要素は、転送クォリファイアから、数ある中でも、ペイロードが８クロックサイクルの間に同報通信され、アドレス待ち行列に記憶されているアドレス位置で始まる、６４個の連続するアドレス位置のブロックに書き込まれることになることを判断し得る。
【００３３】
より高い優先順位の読み出しおよび書き込み動作が他にないと仮定して、クロックサイクル203において、ペイロードの同報通信が、送信チャネル228の全バイトレーンを使用して、８バイトのペイロードのデータビートで始まり得る。それに応じて、送出構成要素は、送信有効信号224をアサートし続けて、送信タイプフィールド226を変更することによって、ペイロードの同報通信について、受信構成要素に知らせ得る。受信構成要素は、送信有効信号224のアサーションを検出し、送信タイプフィールド226から、データの書き込み有効（valid write data）が送信チャネル228上で同報通信されていると判断する。応答して、８バイトが受信構成要素に書き込まれ得る。
【００３４】
この例において、送出構成要素は、次の３クロックサイクルの間に、ペイロードの８バイトを一度に同報通信し続ける。７番目のクロックサイクル207中に、書き込み動作のためのペイロードは、高い優先順位の読み出し動作のために中断される。送信有効信号224は、アサートされ、送信タイプフィールド226は、読み出し動作のためのアドレス位置の読み出し有効（valid read address location）の同報通信を知らせるように設定される。同時に、アドレス位置は、送信チャネル228上で、受信構成要素へ同報通信され得る。受信構成要素は、送信有効信号224のアサーションを検出し、送信タイプフィールド226から、読み出し動作のためのアドレス位置を優先して、書き込み動作のためのペイロードの同報通信が一時停止されたと判断する。応答して、受信構成要素は、アドレス待ち行列内にアドレス位置を記憶する。受信構成要素は、自分が同報通信を受信したことを示す送信の転送Ａｃｋ信号230をアサートし得る。
【００３５】
アドレス位置の同報通信に続いて、８番目のクロックサイクル208において、読み出し動作のための転送クォリファイア（transfer qualifiers for the read operation）の同報通信が行われ得る。送出構成要素は、送信有効信号224をアサートし続けて、送信タイプフィールド226を適切に変更することによって、この同報通信について、受信構成要素に知らせ得る。転送クォリファイアは、読み出し動作のペイロードも６４バイトであることを示すシグナリングを含み得る。受信構成要素は、送信有効信号224のアサーションを検出し、送信タイプフィールド226から、送信チャネル228上で同報通信された転送クォリファイアが、読み出し動作に対する有効であると判断する。受信チャネル240が８バイトの幅であると仮定すると、受信構成要素は、転送クォリファイアから、数ある中でも、ペイロードが８クロックサイクルの間に同報通信され、アドレス待ち行列に記憶されているアドレス位置から始まる、６４個の連続するアドレス位置のブロックから読み出されることになると判断し得る。
【００３６】
９番目のクロックサイクル209の始めにおいて、送出構成要素は、送信チャネル228上で書き込み動作のためのペイロードの同報通信を再開し、１２番目のクロックサイクル212の最後に同報通信を完了し得る。これらの４クロックサイクルの各々の間、送出構成要素は、送信有効信号224をアサートし続けて、送信タイプフィールド226を、データの書き込み有効を知らせるように設定することによって、ペイロードの同報通信について、受信構成要素に知らせる。受信構成要素は、各クロックサイクルにおいて、送信有効信号224のアサーションを検出し、送信タイプフィールド226から、データの書き込み有効が送信チャネル228上で同報通信されていると判断する。１２番目のクロックサイクル212の最後に、ペイロードの同報通信の全てが完了するまで、各クロックサイクルの最後に、送信チャネル228上の８バイトのペイロードが受信構成要素に書き込まれる。
【００３７】
９番目のクロックサイクル209中に、送出構成要素が、書き込み動作のためのペイロードの同報通信を再開するのと同時に、受信構成要素は、読み出し動作のためのペイロードにアクセスし始める。受信構成要素の読み出し待ち時間のために、ペイロードが使用可能になる前に、１クロックサイクルの遅延が経験され得る。１０番目のクロックサイクル210の始めに、ペイロード(または、少なくともペイロードの最初の８バイト)が使用可能になると、受信構成要素は、受信有効(Receive Valid)信号234をアサートし、受信タイプ(Receive Type)フィールド236を、受信チャネル(Receive Channel)238上でデータの読み出し有効（valid read data）の信号を送るように設定する。次に、受信構成要素は、受信チャネル238上で読み出し動作のためのペイロードを送出構成要素へ同報通信し始め得る。受信有効信号234および受信タイプフィールド236の設定は、読み出し動作のためのペイロードの全同報通信にわたって、維持されることになる。この場合に、読み出し動作は、１０番目のクロックサイクル210から始まり、１７番目のクロックサイクル217の最後に完了する全８クロックサイクルにわたることになる。送出構成要素において、受信の転送Ａｃｋ(Receive Transfer Ack)信号240がアサートされ続けるならば、読み出し動作のためのペイロードの同報通信は、この時間フレームにおいて完了され得る。
【００３８】
読み出し動作が、書き込み動作のためのペイロードの同報通信中に、開始されなかったときは、読み出し動作のためのペイロードのリターン（return）は、１４番目のクロックサイクル214まで開始されないであろう。したがって、従来の技術と比較して、上述の例における読み出し動作のための待ち時間は、４クロックサイクル分、低減される。
【００３９】
読み出し待ち時間を低減する恩恵は、幾つかの条件下における書き込み動作のためのペイロードの同報通信の遅延の増加によって相殺され得る。バス全体における性能を最適化するために、送出構成要素は、送出構成要素によって開始された新しい読み出し動作が、小さいペイロードの同報通信を中断するのを防ぎ、それによって、処理システムに見られる最大読み出し待ち時間を制御するアルゴリズムを採用し得る。アルゴリズムは、新しい読み出し動作を開始するために、送信チャネル上で同報通信される１つのペイロードが、中断され得る回数を制限し、それによって、書き込み動作のためのペイロードを同報通信するのにかかる最大時間を制御するのにも使用され得る。
【００４０】
アルゴリズムは、送出構成要素の一部として、ハードウェア、ソフトウェア、ファームウェア、またはその任意の組合せで実施され得る。例示的に、送出構成要素は、読み出しおよび書き込み動作を開始することができるマイクロプロセッサ、およびハードウェアで実施され、アルゴリズムを組み込んだバスインターフェースを含み得る。その代わりに、アルゴリズムは、マイクロプロセッサ上で実行されるように構成されたソフトウェアであってもよい。別の実施形態において、送出構成要素は、ＤＳＰを含み、アルゴリズムは、埋め込まれたソフトウェア層であり得る。処理システムの幾つかの実施形態において、アルゴリズムは、送出構成要素から分かれている別個のスタンドアロン エンティティであり得る。この開示の目的において、“送出構成要素”という用語は、処理システム内のアルゴリズムの物理的な位置に関係なく、アルゴリズムを含むことを意図されている。
【００４１】
図３は、アルゴリズムを実施する送出構成要素の例を示す高いレベルのブロック図である。送出構成要素102は、マイクロプロセッサ302と、ハードウェアで実施されるバスインターフェース304とを含み得る。バスインターフェース304は、マイクロプロセッサ302とバス106との間のインターフェース306を含み得る。アルゴリズムは、状態機械308をもつバスインターフェース304において実施され、送出構成要素が小さいペイロードの同報通信を中断して、新しいバスの動作を開始するのを妨げ得る。レジスタ312内のプログラム可能な値は、ペイロードが中断され、新しいバスの動作を受信構成要素へ知らせることができる前に、ペイロードがバス106上で同報通信されなければならない最少数のクロックサイクルを表わす。書き込み動作が開始されるとき、値が、状態機械308によってカウンタ310にロードされ、ペイロードの同報通信の各クロックサイクルでカウントダウンされ得る。カウンタがゼロ以外の値を含んでいる間は、ペイロードの同報通信を中断して、新しいバスの動作を知らせることはできない。バスインターフェース304は、カウンタが０に達するか、またはペイロードの同報通信が完了するまで、全ての新しいバスの動作を知らせるのを遅らせる。
【００４２】
アルゴリズムは、第２のレジスタ316も採用し、これは、新しいバスの動作を受信構成要素へ知らせるために、ペイロードの同報通信を中断することができる回数を制限するのに使用され得る。１つのペイロードの同報通信の間における中断の最大数を示す値が、第２のレジスタ316内へプログラムされ得る。書き込み動作が開始されるとき、値は、状態機械308によって第２のカウンタ314へロードされ、ペイロードの同報通信が中断されるたびに、カウントダウンされ得る。第２のカウンタ314がゼロ以外の値を含んでいる間は、ペイロードの同報通信は中断され、新しいバスの動作を知らせることができる。カウンタが０に達すると、現在のペイロードの同報通信が完了するまで、バスインターフェース304は、全ての新しいバスの動作を知らせるのを遅らせることになる。
【００４３】
図４は、アルゴリズムの機能性を示すフローチャートである。ステップ402において、送出構成要素は、アドレス位置および転送クォリファイアを送信チャネル上で受信構成要素へ同報通信することによって、書き込み動作を開始する。同時に、またはその直ぐ後で、ステップ404において、送出構成要素は、２つのカウンタにロードする。第１のカウンタは、“カウンタＡ”と呼ばれ、ペイロードの同報通信の開始後に、送出構成要素が新しいバスの動作を知らせるために、同報通信を中断する前に、行わなければならない最少数のクロックサイクルまたは最少数のペイロードのデータビートに等しい値をロードされ得る。第２のカウンタは、“カウンタＢ”と呼ばれ、送出構成要素が新しいバスの動作を知らせるために、１つのペイロードの同報通信を中断する最大回数に等しい値をロードされ得る。受信構成要素が、書き込み動作のためのアドレス位置および転送クォリファイアの同報通信を確認応答すると、送出構成要素は、ペイロードを受信構成要素へ同報通信し始め得る。これは、ステップ406において、ペイロードのデータビートを送信チャネル上で同報通信することによって達成され得る。上述の処理システムの実施形態において、ペイロードのデータビートは、送信チャネルの全バイトレーンを使用した８バイトの同報通信を含む。
【００４４】
送出構成要素は、ステップ408において、ペイロードの同報通信が完了したかどうかを判断し、完了したときは、ステップ410において、書き込み動作を終了する。反対に、ペイロードの同報通信が完了していないときは、ステップ412において、送出構成要素は、次のクロックサイクルを待つ。これが行われると、ステップ414において、送出構成要素は、新しいバスの動作が要求されているかどうかを判断する。送出構成要素は、新しいバスの動作が要求されていないと判断すると、ステップ416において、カウンタＡの値をディクリメントし、ステップ406において、別のペイロードのデータビートを同報通信する。他方で、ステップ414において、送出構成要素が新しいバスの動作が要求されていると判断すると、ステップ418において、カウンタＡの値が、０に達したかどうかを確かめるために検査される。カウンタＡの値がゼロ以外の値であるときは、送信チャネル上でのペイロードの同報通信は、新しいバスの動作を受信構成要素へ知らせるために、中断されない。その場合に、新しいバスの動作は、遅らされることになる。ステップ416において、カウンタＡの値がディクリメントされると、ステップ406において、別のペイロードのデータビートが同報通信されることになる。カウンタＡの値が０であるとき、ペイロードの同報通信が、送出構成要素によって許された最大回数まで、まだ中断されていないならば、送出構成要素は、ペイロードの同報通信を中断し、新しいバスの動作を受信構成要素へ知らせ得る。
【００４５】
ステップ420において、送出構成要素は、カウンタＢの値が０に達したかどうかを確かめる検査をする。カウンタＢの値が０であるときは、ペイロードの同報通信は、送出構成要素によって許された最大回数まで、中断されている。その場合は、ステップ406における別のペイロードのデータビートを優先して、新しいバスの動作は遅らされることになる。他方で、カウンタＢの値がゼロ以外の値であるときは、ステップ422において、ペイロードの同報通信は中断され、新しいバスの動作を受信構成要素へ知らせる。送出構成要素は、ステップ424において、カウンタＢの値をディクリメントし、ステップ426において、カウンタＡをリロードし、ステップ406において、別のペイロードのデータビートを同報通信する。カウンタＡは、レジスタ内の同じ値をリロードされ、したがって、中断間で同じ遅れを要求し得る。その代わりに、カウンタＡは、何か他の値をロードされてもよい。少なくとも１つの実施形態において、カウンタＡは、０をロードされ、これは、ペイロードの同報通信が、初期遅延の後で、ペイロードの同報通信の始めから、送出構成要素によって設定された最大量まで、連続するクロックサイクルを中断され得ることを示す。
【００４６】
図４のフローチャートは、各ペイロードのデータビート後に、カウンタＡが０に達するまで、カウンタＡをディクリメントするアルゴリズムを記載している。このアプローチは、最少量のデータが同報通信されるまで、ペイロードが中断されないことを保証する。その代わりに、ペイロードの同報通信の開始後に、バスの動作が遅らされる最大時間を制限することが望ましいことがある。これは、ペイロードのデータビートごとではなく、クロックサイクルごとに、カウンタＡをディクリメントするアルゴリズムで達成され得る。このアプローチを用いると、送信チャネル上で同報通信されるペイロードの始めの方の部分の任意の時間長の間、送信の転送Ａｃｋが受信構成要素によってデアサートされるならば、バスの動作は過度に遅らされないであろう。
【００４７】
この開示に記載された種々の例示的な実施形態は、書き込み動作のためのペイロードのアドレス情報および転送クォリファイアのインターリービングに関する。しかしながら、これらの概念は、送信チャネル上での他のタイプのバスの動作に適用され得る。例えば、ＴＬＢ無効コマンドが、ペイロードとインターリーブされ得る。個々のプログラム可能なレジスタは、同報通信の各タイプに使用され得る。個々のプログラム可能なレジスタは、各タイプの同報通信に対して、異なる数の中断を許し得る。さらに加えて、レジスタを０の値でプログラムすることによって、中断機能は、その特定のタイプの同報通信に対して、ディスエーブルされることができる。
【００４８】
本明細書において開示された実施形態に関連して記載された種々の例示的な論理ブロック、モジュール、回路、素子、および／または構成要素は、汎用プロセッサ、ディジタル信号プロセッサ（digital signal processor, DSP）、特定用途向け集積回路（application specific integrated circuit, ASIC）、フィールドプログラマブルゲートアレイ（field programmable gate array, FPGA）または他のプログラマブル論理構成要素、ディスクリートなゲートまたはトランジスタ論理、ディスクリートなハードウェア構成要素、あるいは本明細書に記載されている機能を実行するように設計された任意の組合せで実施または実行され得る。汎用プロセッサは、マイクロプロセッサであってもよいが、その代わりに、プロセッサは、従来のプロセッサ、制御装置、マイクロ制御装置、または状態機械であってもよい。プロセッサは、計算構成要素の組合せ、例えば、ＤＳＰとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、ＤＳＰのコアと関連した１つ以上のマイクロプロセッサ、または他のこのような構成としても実施され得る。
【００４９】
本明細書に開示されている実施形態に関連して記載された方法またはアルゴリズムは、ハードウェアにおいて、プロセッサによって実行されるソフトウェアモジュールにおいて、または２つの組合せにおいて直接的に具体化され得る。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、取り外し可能ディスク、ＣＤ−ＲＯＭ、または当技術において知られている記憶媒体の何か他の形態の中に存在し得る。記憶媒体はプロセッサに連結され、プロセッサが記憶媒体から情報を読み出し、そこへ情報を書き込むことができるようにする。その代りに、記憶媒体は、プロセッサと一体構成であってもよい。
【００５０】
開示された実施形態のこれまでの記述は、当業者が本発明を作成または使用できるようにするために与えられている。これらの実施形態に対する種々の変更は、当業者には容易に明らかになり、本明細書に定められている一般的な原理は、本発明の意図および範囲から逸脱することなく、他の実施形態に適用され得る。したがって、本発明は、本明細書に示されている実施形態に制限されることを意図されるのではなく、特許請求項に一致した全範囲にしたがう。単数形での要素の記載は、“１つ、および１つのみ”であると具体的に記載されていないならば、そのような意味をもつのではなく、むしろ“１つ以上”であるという意味をもつことを意図されている。当技術において普通の技能をもつ者に知られている、または将来知られることになる、本開示の全体を通して記載されている種々の実施形態の要素に対して構造的および機能的に同等のもの全ては、参照によって本明細書に明示的に取り入れられ、特許請求項に含まれることを意図される。さらに加えて、本明細書に開示されているものは、そのような開示が特許請求項に明示的に記載されているかどうかに関わらず、公に供されることを意図されていない。特許請求項の要素は、その要素が“〜のための手段（means for）”という語句を使用して、または方法の特許請求項の場合は、その要素が“〜のためのステップ（step for）”という語句を使用して明示的に記載されていないならば、米国特許法第１１２条第６項の条項のもとで解釈されない。
【図面の簡単な説明】
【００５１】
【図１】処理システム内の２つの構成要素間における、バス上での二地点間接続の例を示す概念ブロック図。
【図２】処理システム内の２つの構成要素間における、バス上での書き込み動作が中断され、読み出し動作を開始することを示すタイミング図。
【図３】処理システム内の２つの構成要素間における、バス上での書き込み動作の中断機能を制御するアルゴリズムの実施を示す概念ブロック図。
【図４】処理システム内の２つの構成要素間における、バス上での書き込み動作の中断機能を制御するアルゴリズムの機能を示すフローチャート。
【符号の説明】
【００５２】
106・・・バス。
【図１】
2008513886.tif 000006
【図２】
2008513886.tif 000007
【図３】
2008513886.tif 000008
【図４】
2008513886.tif 000009
【国際調査報告】
2008513886.tif 000010
2008513886.tif 000011
2008513886.tif 000012