(57)【特許請求の範囲】
【請求項１】
集積回路であって、
１）第１デバイスと、
２）第２デバイスと、
３）前記第１デバイスと、前記第２デバイスとに接続された通信回路と、
４）データ値の繰り返しパターンの表示を含むデータ転送を構成するように、前記第１デバイスと、前記通信回路とに接続された転送構成回路と、
５）前記第２デバイスによって受信されるデータ値の前記繰り返しパターンを構成するように、前記第２デバイスに接続され、かつ、前記通信回路を使用して、前記第１デバイスから受信した前記データ転送内の前記表示に応答するパターン構成回路と
を具備し、
前記通信回路は、前記第１デバイスと前記第２デバイスとの間のデータ通信を可能にし、
前記表示は、前記データ転送に伴うサイドバンド信号であり、
前記データ転送は単一のデータ値を含み、かつ、
前記パターン構成回路は、前記サイドバンド信号に応答して、前記単一のデータ値から、前記繰り返しパターンを構成し、
前記通信回路に接続され、かつ、前記サイドバンド信号に応答しない更なるデバイスは、前記単一のデータ値だけのデータ転送として、前記データ転送を検出することを特徴とする集積回路。
【請求項２】
前記転送構成回路は、前記第１デバイスに接続され、かつ、前記通信回路を使用して、前記第１デバイスから前記第２デバイスに送信される複数のデータ値を含む前記データ転送に応答するパターン識別回路を備えて、前記データ転送内のデータ値の前記繰り返しパターンを識別しつつ、前記繰り返しパターンの前記表示を前記データ転送内の前記繰り返しパターンの代わりに置き換えることを特徴とする請求項１に記載の集積回路。
【請求項３】
前記転送構成回路は、前記第１デバイスによって実行されたパターン生成命令に応答して、前記データ転送の少なくとも一部として、データ値の繰り返しパターンの前記表示を生成することを特徴とする請求項１に記載の集積回路。
【請求項４】
前記第１デバイスはバスマスタであり、
前記第２デバイスはバススレーブであり、かつ、
前記データ転送は、前記バススレーブへの書き込み動作であることを特徴とする請求項１に記載の集積回路。
【請求項５】
前記第１デバイスはバススレーブであり、
前記第２デバイスはバスマスタであり、かつ、
前記データ転送は、前記バススレーブからの読み出し動作であることを特徴とする請求項１に記載の集積回路。
【請求項６】
データ値の前記繰り返しパターンは、繰り返し定数データ値であることを特徴とする請求項１に記載の集積回路。
【請求項７】
データ値の前記繰り返しパターンは、繰り返しゼロデータ値であることを特徴とする請求項６に記載の集積回路。
【請求項８】
前記第１デバイス及び前記第２デバイスのうちの少なくとも１つは、
プロセッサ、
メモリ、及び、
キャッシュメモリ
であることを特徴とする請求項１に記載に集積回路。
【請求項９】
前記第２デバイスは、前記第１デバイスから受信した書き込みデータ転送に応答して、
前記第２デバイスが、前記表示に応答して、データ値の前記繰り返しパターンを構成可能であることを示す、正の能力信号を返し、
前記第１デバイスは、前記正の能力信号に応答して、データ値の繰り返しパターンを含むデータ転送を、前記表示を使用して、前記第２デバイスに送信することを特徴とする請求項１に記載の集積回路。
【請求項１０】
前記第１デバイスは、前記第２デバイスから受信した読み出しデータ転送リクエストに応答して、
前記第１デバイスが前記表示をデータ値の前記繰り返しパターンの代わりに提供可能であることを示す、正の能力信号を返し、
前記第２デバイスは、前記正の能力信号に応答して、データ値の繰り返しパターンを含むデータ転送を、前記表示を使用して、前記第１デバイスから受信することを特徴とする請求項１に記載の集積回路。
【請求項１１】
前記通信回路に接続された第３デバイスを備えることを特徴とする請求項１に記載の集積回路。
【請求項１２】
前記第３デバイスは、前記第１デバイスから受信した書き込みデータ転送に応答して、データ値の前記繰り返しパターンを構成するように、前記第３デバイスが前記表示に応答することができないことを示す、負の能力信号を返し、
前記第１デバイスは、前記負の能力信号に応答して、データ値の繰り返しパターンを含むデータ転送を、前記表示を使用することなく、前記第３デバイスに送信することを特徴とする請求項１１に記載の集積回路。
【請求項１３】
前記第３デバイスは、前記第２デバイスから受信した読み出しデータ転送リクエストに応答して、
前記第３デバイスが前記表示をデータ値の前記繰り返しパターンの代わりに提供することができないことを示す、負の能力信号を返し、
前記第２デバイスは、前記負の能力信号に応答して、データ値の繰り返しパターンを含むデータ転送を、前記表示を使用することなく、前記第２デバイスから受信することを特徴とする請求項１１に記載の集積回路。
【請求項１４】
他のデバイスに送信した書き込みデータ転送のシーケンス内の第１データ転送は、前記表示を使用することなく、送信されることを特徴とする請求項９に記載の集積回路。
【請求項１５】
前記集積回路のメモリアドレス空間は、１つしかないデバイスがメモリマップである最小のメモリブロックサイズを有する複数の最小サイズのデバイスメモリブロックを備え、かつ、
最小サイズのデバイスメモリブロック間の境界を越えることに続く、第１書き込みデータ転送は、前記表示を使用することなく、送信されることを特徴とする請求項９に記載の集積回路。
【請求項１６】
前記通信回路は、デバイス間のポイントツーポイントデータ通信を可能にする相互接続回路であることを特徴とする請求項１に記載の集積回路。
【請求項１７】
前記通信回路は、デバイス間のブロードキャストデータ通信を可能にするバス回路であることを特徴とする請求項１に記載の集積回路。
【請求項１８】
前記表示は、前記データ転送に伴うサイドバンド信号であり、
前記サイドバンド信号は、前記パターン構成回路によって、使用されるデータ値を指定して、前記繰り返しパターンを構成することを特徴とする請求項１に記載の集積回路。
【請求項１９】
前記パターン構成回路は、データ値を、前記第２デバイスに接続されたバッファ内の複数の位置にコピーして、
前記第２デバイスによって、受信されるデータ値の前記繰り返しパターンを構成することを特徴とする請求項１に記載の集積回路。
【請求項２０】
前記パターン構成回路は、前記第２デバイスによって、複数回読み出されるデータ値を保持して、
前記第２デバイスによって、受信されるデータ値の前記繰り返しパターンを構成することを特徴とする請求項１に記載の集積回路。
【請求項２１】
前記パターン識別回路は、前記第２デバイスに送信され、かつ、前記第１デバイスに接続されたバッファ内に格納される複数のデータ値を比較するための比較回路を備えることを特徴とする請求項２に記載の集積回路。
【請求項２２】
集積回路であって、
１）第１デバイス手段と、
２）第２デバイス手段と、
３）前記第１デバイス手段と、前記第２デバイス手段とに接続された通信手段と、
４）データ値の繰り返しパターンの表示を含むデータ転送を構成するため、前記第１デバイス手段と、前記通信手段とに接続された転送構成手段と、
５）前記第２デバイス手段によって、受信されるデータ値の前記繰り返しパターンを構成するため、前記第２デバイス手段に接続され、かつ、前記通信手段を使用して、前記第１デバイス手段から受信した前記データ転送内の前記表示に応答するパターン構成手段と
を具備し、
前記通信手段は、前記第１デバイス手段と前記第２デバイス手段との間のデータ通信を可能にし、
前記表示は、前記データ転送に伴うサイドバンド信号であり、
前記データ転送は単一のデータ値を含み、かつ、
前記パターン構成手段は、前記サイドバンド信号に応答して、前記単一のデータ値から、前記繰り返しパターンを構成し、
前記通信手段に接続され、かつ、前記サイドバンド信号に応答しない更なるデバイスは、前記単一のデータ値だけのデータ転送として、前記データ転送を検出することを特徴とする集積回路。
【請求項２３】
第１デバイスと、第２デバイスと、前記第１デバイスと前記第２デバイスとに接続された通信回路とを備えた集積回路を動作させる方法であって、
前記通信回路は、前記第１デバイスと前記第２デバイスとの間の通信を可能にし、
前記方法は、
１）前記第１デバイスと、前記通信回路とに接続された転送構成回路を用いて、データ値の繰り返しパターンの表示を含むデータ転送を構成するステップと、
２）前記第２デバイスに接続され、かつ、前記通信回路を使用して前記第１デバイスから受信した前記データ転送内の前記表示に応答する、パターン構成回路を用いて、前記第２デバイスによって受信されるデータ値の前記繰り返しパターンを構成するステップと
を具備し、
前記表示は、前記データ転送に伴うサイドバンド信号であり、
前記データ転送は単一のデータ値を含み、かつ、
前記パターン構成回路は、前記サイドバンド信号に応答して、前記単一のデータ値から、前記繰り返しパターンを構成し、
前記通信回路に接続され、かつ、前記サイドバンド信号に応答しない更なるデバイスは、前記単一のデータ値だけのデータ転送として、前記データ転送を検出することを特徴とする方法。
【請求項２４】
データ転送を構成する前記ステップは、前記通信回路を使用して、前記第１デバイスから前記第２デバイスに送信される複数のデータ値を含む前記データ転送に応答して、
前記データ転送内のデータ値の前記繰り返しパターンを識別しつつ、前記繰り返しパターンの前記表示を、前記データ転送内の前記繰り返しパターンの代わりに置き換えることを特徴とする請求項２３に記載の方法。
【請求項２５】
構成する前記ステップは、前記第１デバイスによって実行されたパターン生成命令に応答して、前記データ転送の少なくとも一部として、データ値の繰り返しパターンの前記表示を生成することを特徴とする請求項２３に記載の方法。
【請求項２６】
前記第１デバイスはバスマスタであり、
前記第２デバイスはバススレーブであり、かつ、
前記データ転送は、前記バススレーブへの書き込み動作であることを特徴とする請求項２３に記載の方法。
【請求項２７】
前記第１デバイスはバススレーブであり、
前記第２デバイスはバスマスタであり、かつ、
前記データ転送は、前記バススレーブからの読み出し動作であることを特徴とする請求項２３に記載の方法。
【請求項２８】
データ値の前記繰り返しパターンは、繰り返し定数データ値であることを特徴とする請求項２３に記載の方法。
【請求項２９】
データ値の前記繰り返しパターンは、繰り返しゼロデータ値であることを特徴とする請求項２８に記載の方法。
【請求項３０】
前記第１デバイス及び前記第２デバイスのうちの少なくとも１つは、
プロセッサ、
メモリ、及び、
キャッシュメモリ
であることを特徴とする請求項２３に記載の方法。
【請求項３１】
前記第２デバイスは、前記第１デバイスから受信したデータ転送に応答して、
データ値の前記繰り返しパターンを構成するように、前記第２デバイスが前記表示に応答可能であることを示す、正の能力信号を返し、
前記第１デバイスは、前記正の能力信号に応答して、データ値の繰り返しパターンを含むデータ転送を、前記表示を使用して、前記第２デバイスに送信することを特徴とする請求項２３に記載の方法。
【請求項３２】
前記第１デバイスは、前記第２デバイスから受信した読み出しデータ転送リクエストに応答して、
前記第１デバイスがデータ値の前記繰り返しパターンの代わりに前記表示を提供可能であることを示す、正の能力信号を返し、
前記第２デバイスは、前記正の能力信号に応答して、データ値の繰り返しパターンを含むデータ転送を、前記表示を使用して、前記第１デバイスから受信することを特徴とする請求項２３に記載の方法。
【請求項３３】
第３デバイスは、前記通信回路に接続されていることを特徴とする請求項２３に記載の方法。
【請求項３４】
前記第３デバイスは、前記第１デバイスから受信したデータ転送に応答して、データ値の前記繰り返しパターンを構成するように、前記第３デバイスが前記表示に応答することができないことを示す、負の能力信号を返し、
前記第１デバイスは、前記負の能力信号に応答して、データ値の繰り返しパターンを含むデータ転送を、前記表示を使用することなく、前記第３デバイスに送信することを特徴とする請求項３３に記載の方法。
【請求項３５】
前記第３デバイスは、前記第２デバイスから受信した読み出しデータ転送リクエストに応答して、
前記第３デバイスがデータ値の前記繰り返しパターンの代わりに前記表示を提供することができないことを示す、負の能力信号を返し、
前記第２デバイスは、前記負の能力信号に応答して、データ値の繰り返しパターンを含むデータ転送を、前記表示を使用することなく、前記第２デバイスから受信することを特徴とする請求項３３に記載の方法。
【請求項３６】
他のデバイスに送信したデータ転送のシーケンス内の第１データ転送は、前記表示を使用することなく、送信されることを特徴とする請求項３１に記載の方法。
【請求項３７】
前記集積回路のメモリアドレス空間は、１つしかないデバイスがメモリマップである最小のメモリブロックサイズを有する複数の最小サイズのデバイスメモリブロックを備え、かつ、
最小サイズのデバイスメモリブロック間の境界を越えることに続く、第１データ転送は、前記表示を使用することなく、送信されることを特徴とする請求項３１に記載の方法。
【請求項３８】
前記通信回路は、デバイス間のポイントツーポイントデータ通信を可能にする相互接続回路であることを特徴とする請求項２３に記載の方法。
【請求項３９】
前記通信回路は、デバイス間のブロードキャストデータ通信を可能にするバス回路であることを特徴とする請求項２３に記載の方法。
【請求項４０】
前記表示は、前記データ転送に伴うサイドバンド信号であり、
前記サイドバンド信号は、前記パターン構成回路によって、使用されるデータ値を指定して、前記繰り返しパターンを構成することを特徴とする請求項２３に記載の方法。
【請求項４１】
繰り返しパターンを構成する前記ステップは、データ値を、前記第２デバイスに接続されたバッファ内の複数の位置にコピーして、
前記第２デバイスによって、受信されるデータ値の前記繰り返しパターンを構成することを特徴とする請求項２３に記載の方法。
【請求項４２】
前記繰り返しパターンを構成する前記ステップは、前記第２デバイスによって、複数回読み出されるデータ値を保持して、
前記第２デバイスによって、受信されるデータ値の前記繰り返しパターンを構成することを特徴とする請求項２３に記載の方法。
【請求項４３】
データ転送を構成する前記ステップは、前記第２デバイスに送信され、かつ、前記第１デバイスに接続されたバッファ内に格納される複数のデータ値を比較することを特徴とする請求項２４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路の分野に関する。特に、本発明は、集積回路内の異なるデバイス間のデータ値の転送に関する。
【背景技術】
【０００２】
多数のデバイス（その間でデータが転送されなければならない）を含む集積回路を形成することが知られている。例えば、集積回路はプロセッサ及びメモリ（その間でデータ値が転送されなければならない）を備えている。オンチップ通信回路（ブロードキャストバス及びポイントツーポイント相互接続など）は、このデバイス間通信を可能にすることが知られている。
【０００３】
異なる通信プロトコルは、オンチップを使用することができる。一部の通信プロトコルは、高帯域幅を提供することを目的としている。他の通信プロトコルは、低消費エネルギを提供することを目的としている。そのようなオンチップバスプロトコルの１例は、英国ケンブリッジのＡＲＭ株式会社によって設計されたＡＸＩ相互接続アーキテクチャ内に使用されたプロトコルである。
【０００４】
また、集積回路の分野には、単一の集積回路上に多数のデバイスを設ける増勢がある。これらの集積回路は、多くの場合、システムオンチップ（ＳｏＣ）集積回路と呼ばれ、かつ、多数のプロセッサ、多数のメモリ、多数の周辺デバイスなどを具備することができる。そのようなシステムオンチップ集積回路を用いて設けられた通信回路は、集積回路内の必要なデータ転送を、効果的に実行可能にすることに重要な役割を果たす。
【０００５】
ランレングス符号化などのデータ圧縮技術を使用することがデータ処理分野において知られている。ランレングス符号化は、画像データ（データの大部分が共通の値を共有する）などのデータを圧縮することに特に有用である。例えば、画像が共通のピクセル値を有する大きな領域を含み、それによって、その共通ピクセル値を有する一連のピクセル値として隣接するピクセル値を示すことが可能になる。
【発明の概要】
【課題を解決するための手段】
【０００６】
１態様から見て、本発明は、
１）第１デバイスと、
２）第２デバイスと、
３）前記第１デバイスと、前記第２デバイスとに接続された通信回路と、
４）データ値の繰り返しパターンの表示を含むデータ転送を構成するように、前記第１デバイスと、前記通信回路とに接続された転送構成回路(transfer forming circuitry)と、
５）前記第２デバイスによって受信されるデータ値の前記繰り返しパターンを構成するように、前記第２デバイスに接続され、かつ、前記通信回路を使用して、前記第１デバイスから受信した前記データ転送内の前記表示に応答するパターン構成回路(pattern forming circuitry)と
を具備し、
前記通信回路は、前記第１デバイスと前記第２デバイスとの間のデータ通信を可能にする集積回路を提供する。
【０００７】
本方法は、デバイス間のオンチップ通信が、多くの場合、繰り返しパターン（定数値など）を有するデータ値の長いシーケンスの転送を含んでいることを認識する。例えば、多くの実際のアプリケーションプログラムは、それらの動作の一部として、比較的広い領域のメモリが既知の値（ゼロなど）に初期化される必要がある。記憶場所内にゼロ値を書き込むことは、この初期化タスクの速度を制限し、かつ、速度（データ値がメモリに転送される）の増加は、通信及び書き込みが効果的にパイプライン処理されるので、初期化プロセスを完了するのにかかる時間を有効に削減しない。しかし、本方法は、多数の集積回路が、デバイス間でデータ値を転送することに通信回路を使用するため、動作の全体速度が集積回路上の多数のデバイス間の競合によって制限されるようになることを認識する。例えば、集積回路は、多数のプロセッサコアを含み、かつ、プロセッサコアのうちの１つがビジーである（そのメモリにゼロ値の長いシーケンスを書き込むことによって、広い領域のメモリを初期化する）場合、次いで、通信回路を使用して、データ転送（その処理活動を進行するために必要である）を実行することができないので、他のプロセッサコアは失速し、かつ、有用な処理動作の実行が妨げられる。
【０００８】
本方法は、上記した状態を認識し、かつ、デバイス間のデータ転送内のデータ値の繰り返しパターンに代えて、データ値の繰り返しパターンの表示を使用し、次いで、表示に応答して受信デバイスで繰り返しパターンを構成することによって、受信デバイス内にデータ値を書き込むのにかかる時間でさえ、通信回路上の帯域幅が他の使用に解放されることを可能にし、そうでなければ、全体の初期化プロセス自体が有効にスピードアップされないことを真に理解する。
【０００９】
当業者は、第１デバイス及び第２デバイスに設けられた転送構成回路及びパターン構成回路の提供が、集積回路内に追加的なオーバヘッドゲート（計算量及び電力消費の形態で、それ自体のコストを有する）を示すことが分かる。集積回路内の一般的な設計目的は、可能なときにゲート数及び電力消費を削減することである。集積回路内のデバイス間の通信回路にわたるデータ値の繰り返しパターンの転送が十分に共通であり（例えば、初期化プロセス）、転送構成回路、及び、パターン構成回路に関連したオーバヘッドが他の使用に対するパターン構成回路に関して得られた利点によって、この上なく補われることを本方法は認識する。例えば、繰り返し定数値の長い転送は、電力を消費するデータ線上の信号値のトグリングを必要としないが、それは、他の多数のレジスタ及び制御信号のトグリングを全く含まなくて、繰り返しパターンの各データ値の転送を制御する。したがって、計算量、及び、転送構成回路及びパターン構成回路によって消費された電力は、データ値の繰り返しパターン（実際のシステム内に意外に共通である）の転送において消費された電力の削減によって、この上なく補われる。
【００１０】
転送構成回路は、データ値の繰り返しパターンの表示を生成するようにさまざまな異なる方法で形成することができる。一部の態様では、転送構成回路はパターン識別回路（第１デバイスに接続され、かつ、複数のデータ値を含むデータ転送に応答して、データ転送内のデータ値の繰り返しパターンを識別しつつ、繰り返しパターンの代わりに繰り返しパターンの表示に置き換える）の形態をとっている。したがって、第１デバイスは繰り返しパターンを生成し、かつ、これが通信回路を経由して転送される以前に、パターン識別回路は、この繰り返しパターンを識別しつつ、繰り返しパターンの代わりの表示に置き換え、これによって、データ転送を短縮する。
【００１１】
他の態様では、第１デバイスはデータ値の繰り返しパターンを実際には生成せず、かつ、代わりに、転送構成回路は、第１デバイスによって直接実行されたパターン生成命令に応答して、データ値の繰り返しパターンを第１デバイスで実際に構成させることなく、繰り返しパターンの表示を生成する。これは、特別な命令の提供を必要とするが、第１デバイスにおいてデータ値の繰り返しパターンを不必要に生成することを回避する。
【００１２】
集積回路内のデバイスは、多くの場合、特定のデータ転送に関して、バスマスタ又はバススレーブとして分類されることが当業者には理解される。バスマスタはデータ転送を初期化し、かつ、バススレーブはその転送に応答する。初期化された転送は、バスマスタからバススレーブへの書き込み、又は、バスマスタによるバススレーブの読み取りである場合がある。本方法は、これらの環境の両方に使用することができる。例えば、データ値の繰り返しパターンの表示は、データ転送の一部（バスマスタからバススレーブへの書き込みである）として使用してもよく、かつ、また、データ転送の一部（バススレーブからデータ値を読み出している）として使用してもよい。したがって、転送構成回路及びパターン構成回路は、バスマスタとバススレーブとの間の通信パスの一方又は両方の端部に設けられている。
【００１３】
データ値の繰り返しパターンは、幅広く異なる形態をとり得ることが分かる。追加的な計算量に対して重みを付けて表示することができる繰り返しパターンのタイプの数の増加と、オーバヘッド（繰り返しパターンの拡張タイプに対するサポートを提供することに関連した）との間にはバランスが存在する。一部の態様では、表示される繰り返しパターンは、転送される定数値のパターンである。サポートされる繰り返し値のより具体的な形態は、繰り返しゼロ値転送である。回路オーバヘッド及び計算量オーバヘッド（ゼロ値の繰り返しパターンの代わりの表示の使用をサポートすることに関連した）は、ゼロ値のそのような繰り返しパターン（集積回路内のデバイス間で転送された）が実際の動作において驚くほど共通であるので、高いレベルの利益をもたらす。実際のオペレーティングシステムでは、驚くほど多くの場合、１つのアプリケーションからのコンテキストを、他のアプリケーションのコンテキストにコピーするステップは、膨大な量の繰り返しパターンデータ（大きなゼロの領域など）をコピーするステップを含んでいる。
【００１４】
第１デバイス及び第２デバイスは、幅広く異なる形態をとり得ることが分かる。例えば、デバイスは、プロセッサ、メモリ又はキャッシュメモリであってもよい。デバイスの他の形態も可能である。
【００１５】
集積回路内のデバイスは、データ値の繰り返しパターンの代わりの表示の使用をサポートするために、変更を必要とすることが分かる。そのようなサポートは、集積回路内の全てのデバイスには提供されない場合がある。例えば、集積回路内の種々のデバイスは、異なるエンティティによって設計してもよく、かつ、一部のデバイスは、レガシーデバイス（頻繁に使用されず、かつ、本方法をサポートするために、デバイスを改良するコストが正当化されない）であってもよい。また、集積回路内の一部のデバイスは、バースト（タイマ、割り込み制御装置、ウオッチドック、ＵＡＲＴなど）でアクセスされることを意図していない。本方法をサポートするゲート数オーバヘッドは、そのようなデバイスに対して正当化されていない。そのような集積回路（一部のデバイスは本方法をサポートし、かつ、一部のデバイスは本方法をサポートしていない）との関連の中で、能力信号(capability signal)（デバイス間で送信されて、表示の使用が可能であるか否かを示す）を使用することができる。
【００１６】
この能力信号を有する集積回路では、書き込みデータ転送のシーケンスにおける第１データ転送は、ターゲットデバイスから能力信号（応答において）を受信するために、たとえ可能であっても表示を使用することなく送信することができ、これにより、後のデータ転送に対する表示の使用が可能であるか否かを決定する。
【００１７】
集積回路内のデバイスは、送信元と送信先との間のデータ転送を目的として、メモリマップスキームを使用して、都合よく通信することが当業者には分かる。このスキームを用いて、異なるデバイスは、メモリアドレス空間の異なる領域に割り当てられ、かつ、それらの割り当てられたメモリアドレス空間内のメモリアドレスを含むデータ転送を供給する。この関連で本方法に基づきサポートされた繰り返しパターンを提供する都合のよい方法は、デバイスに設けられている最小メモリブロックサイズ間の境界を越えることに続く、少なくとも第１データ転送に対して、データ値の繰り返しパターンの表示が使用されないように調整することである。最小サイズのデバイスメモリブロック間の境界が移動されるので、ターゲットデバイスが変化する可能性があり、これにより、書き込みデータ転送の表示に応答するための能力も変化する場合がある。したがって、第１書き込みデータ転送（そのような境界を越えるステップに続く）を送信するステップは、新規の最小サイズのデバイスメモリブロック（入力されている）内の受信デバイスが、データ値の繰り返しパターンの代わりの表示を使用することがまだ可能である否かを見るための適切なチェックが可能であることを、表示を使用することなく確実にする。
【００１８】
通信回路はさまざまな異なる形態をとり得ることが分かる。例えば、上記したＡＸＩ相互接続メカニズムに基づく、デバイス間のポイントツーポイント通信を可能にする相互接続回路であってもよい。他の代替的な１態様として、通信回路は、デバイス間のブロードキャストデータ通信を可能にするバス回路の形態で提供し得る。
【００１９】
本方法に対するサポートは、サイドバンド信号（データ転送を伴い、かつ、パターン構成回路が応答して、繰り返しパターンを構成する）の使用によってもたらされる。
【００２０】
一部の態様のデータ転送は、単一のデータ値（データ値が繰り返される）を送信する。これは、そのようなデバイスがそのような転送を単一のデータ値だけの転送として見て、かつ、サイドバンド信号（当該レガシーデバイスではない受信デバイスを命令して、その単一のデータ値からデータ値の繰り返しパターンを構成する）にそれら自体が関係する必要がないので、集積回路がサイドバンド信号に応答しないレガシーデバイス（例えば、監視デバイス）を含む態様において有用である。
【００２１】
他の態様では、サイドバンド信号自体は、パターン構成回路によって使用されるデータ値を指定して、繰り返しパターンを構成する。この方法は、統計的に適当な繰り返しデータ値（全て「０」のバイナリ値又は全て「１」のバイナリ値など）を表示することに適している。
【００２２】
受信デバイスに設けられたパターン構成回路は、さまざまな異なる形態をとることができる。一部の態様では、バッファ（データ値の繰り返しパターンが第２デバイスによって受信することができる）内に、データ値の繰り返しパターンを構成するために、パターン構成回路は、データ値を、第２デバイスに接続されたバッファ内の複数の位置にコピーするように動作することができる。他の態様では、第２デバイスによって受信されたようなデータ値の繰り返しパターンを構成するために、パターン構成回路は、第２デバイスによって複数回読み出されるデータ値を保持する働きをすることができる。
【００２３】
パターン識別回路を含む態様との関連で、これは、第２デバイスに送信され、かつ、これらのデータ値が送信される前に、第１デバイスに接続されたバッファ内に格納される複数のデータ値を比較するための比較回路の形態で、比較的低いオーバヘッドで、設けることができる。バッファ内に送信されるデータ値の収集は、それらが通信回路上に転送される以前に、データバースト（データ値の条件が繰り返しパターンのタイプではなく、隣接する記憶場所への書き込みが単一のデータ転送の一部として実行される）の構成を促進するなどの他の理由のため、集積回路内の比較的共通な場所である。そのようなバッファが他の理由のため既に設けられている場合、本方法は、状態（データ値の繰り返しパターンの表示を、データ値自体の代わりに使用することができる）を識別するために、それらのパターン識別回路を備えたこれらのバッファを使用する。
【００２４】
他の態様から見て、本発明は、
１）第１デバイス手段と、
２）第２デバイス手段と、
３）前記第１デバイス手段と、前記第２デバイス手段とに接続された通信手段と、
４）データ値の繰り返しパターンの表示を含むデータ転送を構成するため、前記第１デバイス手段と、前記通信手段とに接続された転送構成手段と、
５）前記第２デバイス手段によって、受信されるデータ値の前記繰り返しパターンを構成するため、前記第２デバイス手段に接続され、かつ、前記通信手段を使用して、前記第１デバイス手段から受信した前記データ転送内の前記表示に応答するパターン構成手段と
を具備し、
前記通信手段は、前記第１デバイス手段と前記第２デバイス手段との間のデータ通信を可能にする集積回路を提供する。
【００２５】
さらなる態様から見て、本発明は、第１デバイスと、第２デバイスと、前記第１デバイスと前記第２デバイスとに接続された通信回路とを備えた集積回路を動作させる方法を提供し、
前記通信回路は、前記第１デバイスと前記第２デバイスとの間の通信を可能にし、
前記方法は、
１）前記第１デバイスと、前記通信回路とに接続された転送構成回路を用いて、データ値の繰り返しパターンの表示を含むデータ転送を構成するステップと、
２）前記第２デバイスに接続され、かつ、前記通信回路を使用して前記第１デバイスから受信した前記データ転送内の前記表示に応答する、パターン構成回路を用いて、前記第２デバイスによって受信されるデータ値の前記繰り返しパターンを構成するステップと
を具備している。
【００２６】
本発明の上記及び他の目的、特徴及び利点は、添付図面に関連して理解される代表的な実施例に関する以下の詳細な説明から明らかになる。
【図面の簡単な説明】
【００２７】
【図１】通信回路を介して通信する複数のデバイスを含む集積回路の概略図である。
【図２】データ転送の中で、これらのデータ値の代わりに、データ値の繰り返しパターンの表示を使用するためのメカニズムを備えた第１デバイスの概略図である。
【図３】データ転送の中で、これらのデータ値の代わりに、データ値の繰り返しパターンの表示を受信するためのメカニズムを有するデバイスの概略図である。
【図４】メモリアドレス空間のブロック（１つのメモリマップデバイスだけが提供される）への分割の概略図である。
【図５】データ転送を送信し、かつ、これらのデータ値の代わりに、データ値の繰り返しパターンの表示の使用をサポートするデバイスで実行された処理を概略的に示すフローチャートである。
【図６】データ転送の中で、繰り返しデータ値の代わりに、繰り返しデータ値の表示を含むデータ転送を受信する受信デバイスで実行された処理を概略的に示すフローチャートである。
【発明を実施するための形態】
【００２８】
図１は、ホイントツーポイント通信をサポートする相互接続１６の形態で、通信回路を介して通信する多数のデバイス４，６，８，１０，１２及び１４を含む集積回路２を概略的に示している。他の実施例では、相互接続１６は、バス（デバイス４，６，８，１０，１２及び１４間のブロードキャスト通信を可能にする）に置き換えることができることが理解される。
【００２９】
多様なデバイス４，６，８，１０，１２及び１４は、多数のマスタデバイス４，１２と、多数のスレーブデバイス６，８，１０及び１４とを含んでいる。デバイスは、例えば、プロセッサ、メモリ、キャッシュメモリの形態をとり得る。他の多数の異なる形態のデバイスを利用可能であることも当業者には理解される。個別のデバイスは、環境及びその構成によって、マスタデバイスとしても、及び／又は、スレーブデバイスとしても機能してもよい。
【００３０】
図１には相互接続モニタ８も示されている。このデバイスの機能によって、データ転送（相互接続１６を介して行われる）をモニタして、それらが予期されたデータ転送プロトコルに一致することを確実にする。欠陥のあるデータ転送が検出された場合、次いで、相互接続モニタ８は、このデータ転送を修復するか、又は、システムリセットをトリガするなどのエラーに応答する他の動作を行う働きをしてもよい。相互接続モニタ８は、レガシーデバイスであり、それにより、サイドバンド信号（データ値の繰り返しパターンの表示の使用を示す）に応答しない。この関連で、相互接続モニタ８は、単一のデータ値のレガシーデータ転送として、このデータ転送を解釈することができ、かつ、存在しないエラーを示さないので、そのようなサイドバンド信号を使用したデータ転送は、サイドバンド信号に加えて、単一のデータ値を含んでいる場合に有用である。
【００３１】
図２は、データ転送を送信することに使用される第１デバイスを示している。この第１デバイス１８は、プロセッサ２０（関連するキャッシュメモリ２２と、キャッシュコントローラ２４とを備えた）の形態をとってもよい。書き込みバッファ２６が設けられて、データ値（集積回路２上の他の場所でメモリシステムに戻って書き込まれる）が、相互接続１６を介して転送される前に、ターゲットデバイス（図１に示されたメモリ６，１４のうちの１つなど）にバッファされる。書き込みバッファ２６は、相互接続１６をより効果的に使用するために、相互接続１６を介したデータ転送として送信される前に、収集されるデータ値の潜在的なバーストを可能にする。マスタインターフェース２８は、書き込みバッファ２６と相互接続１６との間に設けられている。このマスタインターフェース２８は、書き込みアドレス（ＷＡ）及び制御信号、書き込みデータ信号（ＷＤ）、読み出しアドレス（ＲＡ）及び制御信号、読み出しデータ信号（ＲＤ）、及び、ターゲット応答信号と通信する。また、図２には、書き込みアドレス及び制御信号に関連付けられたサイドバンド信号（データ転送を用いて送信されて、データ転送がデータ値の繰り返しパターンの表示を含むことを示す）が示されている。１態様では、データ転送は、最大で８ワード長までを有してもよく、かつ、サイドバンド信号（繰り返しデータ値を示す）を使用して、定数データ値がこれらの各８ワードに対して使用されることを示してもよい。一部の実施例では、定数値は、１つのデータ値の転送長を有するそのデータ転送の一部として送信された単一のデータ値として、転送してもよい。他の実施例では、サイドバンド信号自体が、どのデータ値が繰り返されるかを示してもよい。特に、ゼロのデータ値が送信されて、それにより、サイドバンド信号が提供される（８個のゼロ値のデータ転送が行われ、かつ、ゼロデータ値自体が転送される必要がないことをそれ自体が示す）共通例がある。受信デバイスは、サイドバンド信号に応答して、受信デバイスで、８個のゼロ値（受信デバイス内に書き込まれる）を構成する。
【００３２】
また、図２には、パターン識別回路３０が示されている。このパターン識別回路３０は、比較器（書き込みバッファ２６内にデータ値をスヌープして、データ値の繰り返しパターンを識別する働きをする）を含んでいる。単純な例では、パターン識別回路３０を使用して、受信デバイスに書き込まれる８個の隣接するゼロ値のシーケンスを識別してもよい。データ値の繰り返しパターンが識別されたとき、パターン識別回路３０は、インターフェース２８にこれを信号で送る（次いで、データ値のその繰り返しパターンを受信デバイスに書き込むデータ転送を用いて、送信されるサイドバンド信号を生成する）。次いで、データ転送を単一のデータワード長だけに短縮することができ、かつ、繰り返しデータワードを示す単一のデータワードを転送することができるか、又は、サイドバンド信号自体が単一のデータ値を示す場合には、データワードが存在しない。
【００３３】
パターン識別回路３０の使用の代替（又は追加）として、プロセッサ２０による特定の格納−繰り返し命令の使用が破線の形態で示されている。プロセッサ２０は、そのアーキテクチャ内に、プロセッサ２０が状態（記憶場所に繰り返しデータ値を書き込むことを望む）を識別することができる命令を設けることができる。そのような命令の使用は、命令デコーダ回路３２によって検出することができ、かつ、使用されたこの命令デコーダ回路３２は、インターフェース２８に、サイドバンド信号が繰り返しデータ値を示すように生成されなければならない（かつ、ひとつが使用されている場合、必要な単一のデータ値を挿入する）ことを信号で送る。
【００３４】
図３は、繰り返しデータ値の表示の使用をサポートする受信デバイスの１実施例である。図３に示された実施例のこの受信デバイスは、関係するバッファ３６（メモリ３４に書き込まれる前に、メモリ線が収集される）を備えたメモリ３４である。スレーブインターフェース３８は、相互接続１６に接続し、かつ、同じ信号（図２のマスタインターフェース２８に設けられた）をそれに関連付ける。受信デバイスには、パターン構成回路４０（サイドバンド信号に応答して、バッファ３６内に繰り返しパターンデータ値を構成する）が設けられている。データ値の繰り返しパターンは、サイドバンド信号自体（バッファ３６内に、多数回、関係するデータ転送において受信した単一のデータ値をコピーすることによって構成される）によって示してもよい。
【００３５】
バッファ３６の設けられていない実施例では、代わりに、繰り返して使用されるデータ値は、メモリ３４への読み出し入力と、読み出すように制御されたメモリとで保持してもよく（各記憶場所内に多数回値を保持しない）、それによって、転送されるデータ値の繰り返しパターンを構成する。
【００３６】
図３（及び図２も）は、応答信号（受信デバイスによって送信デバイスに送信された）に関連付けられた能力信号である。この能力信号は、正の値（受信デバイスがデータ値の繰り返しパターンの表示の使用をサポート可能であることを示す）も、負の値（受信デバイスにこの能力がないことを示す）も有することができる。受信デバイスへの第１書き込みデータ転送によって、送信デバイスは、その受信デバイスから能力信号（そのような表示がサポートされているか否かを示す）をまだ受信しないので、これが可能である場合でさえも、繰り返しデータ値の表示を使用しないように構成することができる。受信デバイスとの第１通信及び能力信号のリターンに続いて、送信デバイスは、受信デバイスがこの機能をサポートするか否かによって、適切なときに、表示を使用することができ、又は、使用しないこともできる。
【００３７】
読み出しデータ転送リクエストの場合には、スレーブデバイスは、読み出しデータに伴う能力信号に応答することができる（表示を使用していることを示すために返っている）。スレーブデバイスは、サイドバンド信号（例えば、図示しないが、読み出しアドレス及び制御信号に関連付けられた）から、読み出しリクエストを送信するマスタデバイスが繰り返し値の表示の使用をサポート可能であることを決定することができる。
【００３８】
図４は、メモリアドレス空間（デバイスをマッピングされたメモリが、これらのデバイスをアドレス指定するためにマッピングすることができる）を図示している。最小サイズのデバイスメモリブロックがメモリアドレス空間に設けられることが当業者には知られている。最小サイズのデバイスメモリブロック内のデータ転送が同じデバイスに行われることを送信デバイスが仮定することができるように、設計者は、そのような最小サイズのデバイスメモリブロック内に、１つのデバイスをマッピングするように制限される。その最小サイズのデバイスメモリブロック間の境界が越えられるとき、この条件はもはや有効ではなく、再チェックされなければならない。したがって、現在の最小サイズのデバイスメモリブロック内の受信デバイスが表示に応答可能であることを示す正の能力信号の以前の受信によって、その動作中にゲート制御されることと同様に、図２のパターン識別回路３０は、表示を使用しないデータ転送がさらに行われつつ、他の能力信号が新規の最小サイズのデバイスメモリブロック（繰り返しデータ値の表示をサポート可能であることを示す）内のデバイスから受信されるまで、その境界を移動して、この能力をリセットする。
【００３９】
図５は、書き込みマスタデバイスによって実行された処理を概略的に図示するフローチャートである。ステップ４２では、転送されるデータ値のバーストが全て同じ値を有するデータワードを含むか否かに関して、決定が行われる。そうでない場合には、次いで、バーストは、ステップ４４で異なるデータワードを使用して送信され、かつ、処理はステップ４２に戻る。異なるデータ値を含むバーストはノルムであり、これにより、データ転送の大部分はステップ４４を使用して処理される。しかし、メモリの大きな領域の初期化の場合、又は、他の状態（定数データ値の大規模なブロックが書き込まれる）では、次いで、ステップ４２の決定は、バースト内の全てのデータワードが共通データ値を有することを識別する。次いで、処理はステップ４６に進む。ステップ４６は、ターゲットデバイスがその能力（それらの繰り返しデータ値の代わりに、繰り返しデータ値の表示をサポートする）を既に確認しているか否かを決定する。ターゲットデバイスがこの能力をまだ確認していない場合、次いで、処理はステップ４８（定数値であってさえ、全てのデータワードが別々に送信される）に進む。次いで、ステップ５０は、ターゲットデバイスからの応答を観察して、それが能力信号（ターゲットデバイスが繰り返されたデータワードの表示をサポート可能であることを示す）を含むか否かを見る。ターゲットデバイスがそのように可能である場合、次いで、この情報は、可能であれば、そのターゲットデバイスへの後の転送が繰り返しデータ値の代わりの表示を使用することができるように、現在のターゲットデバイスの能力としてラッチされる。
【００４０】
ステップ４６での決定が、ターゲットデバイスが繰り返しワード能力を確認することである場合、次いで、ステップ５２は、バーストが境界を越えてメモリ空間に入るか否か（最小サイズのデバイスメモリブロック境界を越えるなどのターゲットデバイス内の変化に一致し得る）を決定する。そのような境界が越えられる場合、次いで、処理はステップ５４（ターゲットデバイスが繰り返しワード能力を有することを示すフラッグがクリアされ、かつ、ステップ４８でこの能力条件なしに、処理が継続する）に進む。ステップ５２での決定がそのような境界を越えていないことである場合、次いで、処理はステップ５６（表示がデータ値の繰り返しパターンを送信する代わりに使用される）に進む。この実施例のデータ転送は、開始アドレスと、１つのワード（繰り返されたデータ値である）と、サイドバンド信号（１つのワードが使用されて、受信デバイスで完全なワードのバーストを構成する（例えば、８個のワードバーストシステムの場合には８ワード）ことを示す）とを含んでいる。
【００４１】
図６は、受信デバイスで実行される処理を図示するフローチャートである。ステップ５８では、システムは、受信される書き込みを待機する。ステップ６０では、サイドバンド信号（表示が繰り返しデータ値に使用されることを示す）がアサートされるか否かに関して、決定が行われる。このサイドバンド信号がアサートされていない場合、次いで、処理はステップ６２（データワードが受信され、かつ、記憶場所内に書き込まれる）に進む。ステップ６４はバーストが終了しているか否かを決定し、かつ、ステップ６６は、別々に受信されたデータワードの書き込み間に記憶場所を進める。
【００４２】
ステップ６０での決定が、サイドバンド信号がアサートされる（繰り返しパターンの表示が使用されていることを示す）ことである場合、次いで、処理はステップ６８（繰り返しパターンのために、テンプレートとして使用されている単一のデータワードが受信される）に進む。次いで、この単一のデータワードは多数の記憶場所にコピーされる。
【００４３】
ステップ６８以降、又は、ステップ６４での決定がバースト内にもはやワードが存在しないことであるとき、処理はステップ７０（応答を受信した書き込みが送信デバイスに受信デバイスによって出力される）に進む。この応答は、能力信号（受信デバイスが繰り返しデータワードの表示を使用することの能力を含んでいることを示す）を含む。これが送信デバイスにまだ通知されていない場合、この能力信号を使用して、送信デバイスによるそのような表示の使用をトリガすることができる。
【００４４】
図６の処理は、表示を使用することが可能な受信デバイスによって実行された処理を図示していることが理解される。受信デバイス（そのように可能ではない）は、ステップ５８，６２，６４及び６６を使用する。ステップ６０及び６８は除外される。ステップ７０は、応答を出力するが、繰り返しワード能力（メモリデバイスがデータワードの繰り返しパターンの表示の使用をサポート可能であることを示す）を含んでいない（即ち、負の能力信号を送信する）。
【００４５】
上記は書き込み転送との関連で方法を説明しているが、読み出し転送（両方のデバイスがその使用をサポートする場合、スレーブデバイスが表示を使用して、データ値を繰り返すために、読み出しデータに戻る）にも使用してもよい。
【００４６】
本発明の代表的な実施例が添付図面を参照して本明細書に詳細に説明されているが、本発明はこれらの正確な実施例に限定されることなく、かつ、添付の特許請求の範囲に定義された本発明の範囲及び真の主旨から逸脱することなく、当業者によって多様な変更及び変形がそこになされ得ることが理解されなければならない。
【符号の説明】
【００４７】
２  集積回路
４，１２  マスタデバイス
６，８，１０，１４  スレーブデバイス
１６  相互接続
１８  第１デバイス
２０  プロセッサ
２４  キャッシュコントローラ
２６  書き込みバッファ
２８  マスタインターフェース
３０  パターン識別回路
３２  命令デコーダ回路
３４  メモリ
３６  バッファ
３８  スレーブインターフェース
４０  パターン構成回路
【図１】
0005209461.tif 000002
【図２】
0005209461.tif 000003
【図３】
0005209461.tif 000004
【図４】
0005209461.tif 000005
【図５】
0005209461.tif 000006
【図６】
0005209461.tif 000007