(57)【特許請求の範囲】
【請求項１】
ａ．各処理構成要素が前記処理構成要素のうちの少なくとも１つの他の処理構成要素に接続され、及び、データの入力および出力が行われる複数のピンを各々有する複数の処理構成要素と、
ｂ．各クロック供給源がクロック信号を供給する複数のクロック供給源と、
ｃ．各前記処理構成要素に関連づけられた複数のコントローラであって、各コントローラは前記複数のピンのうちの選択されたピンのデータの前記入力および出力を制御する、コントローラと、
ｄ．各クロック選択レジスタがクロック選択信号を供給する複数のクロック選択レジスタと、
ｅ．各マルチプレクサが前記複数のクロック供給源と、前記複数のコントローラのうちの２つ以上のコントローラと、前記クロック選択レジスタのうちの１つのクロック選択レジスタとに接続され、各マルチプレクサが、前記１つのクロック選択レジスタによって供給されるクロック選択信号に応答し、前記複数のコントローラのうちの前記２つ以上のコントローラへの出力として前記クロック信号のうちの１つのクロック信号を供給する複数のマルチプレクサとを含む、データ処理システム。
【請求項２】
複数の伝達線をさらに含み、前記複数のマルチプレクサの各マルチプレクサが前記複数伝達線のうちの１つを介して前記複数のコントローラのうちの前記２つ以上のコントローラに接続された、請求項１に記載のシステム。
【請求項３】
前記複数の伝達線の各伝達線が、前記複数のコントローラのうちの前記２つ以上のコントローラに固有に接続された、請求項２に記載のシステム。
【請求項４】
前記クロック信号のうちの少なくとも１つのクロック信号が前記クロック信号のうちの他のクロック信号から時間がずれている、請求項１に記載のシステム。
【請求項５】
前記クロック信号のうちの少なくとも１つのクロック信号が前記クロック信号のうちの他のクロック信号とは異なる周波数を有する、請求項１に記載のシステム。
【請求項６】
前記システムが通信シーケンス・プロトコルを有し、前記複数のコントローラのそれぞれに接続され、前記複数の処理構成要素が前記通信シーケンス・プロトコルに従わなければならないか否かを示すarchcompレジスタをさらに含む、請求項１に記載のシステム。
【請求項７】
前記複数のコントローラの各コントローラがarchcompレジスタを含む、請求項６に記載のシステム。
【請求項８】
前記archcompレジスタが、第１のバス・サイクル中にARCHCOMP命令に応答して、互換性が望まれる場合には第１の値を書き込まれ、互換性が望まれない場合には第２の値が書き込まれるように設計され、第２のバス・サイクル中に前記ARCHCOMP命令に応答して、前記archcompレジスタ内にある前記第１の値および前記第２の値のうちの一方の値が、前記archcompレジスタに接続された前記コントローラに伝播するように設計され、前記ARCHCOMP命令が前記複数の処理構成要素上で実行される、請求項６に記載のシステム。
【請求項９】
前記複数のクロック選択レジスタの前記各クロック選択レジスタが、第１のバス・サイクル中にＷＲＣＬＫ命令に応答し、前記各クロック選択レジスタが接続された前記複数のマルチプレクサのうちの１つのマルチプレクサからの出力として供給されるクロック信号を有する前記複数のクロック供給源のうちの１つのクロック供給源を示す値が固有に書き込まれるように設計され、前記クロック選択レジスタが、第２のバス・サイクル中に前記ＷＲＣＬＫ命令に応答し、前記各クロック選択レジスタが接続された前記マルチプレクサに前記値が伝播するように設計され、前記ＷＲＣＬＫ命令が前記複数の処理要素上で実行される、請求項１に記載のシステム。
【請求項１０】
前記クロック選択レジスタが、前記クロック選択レジスタの内容がＲＤＣＬＫ命令を介して読み取ることができるように設計されている、請求項１に記載のシステム。
【請求項１１】
前記システムが、前記複数のコントローラに接続され及び前記複数のピンのうちの選択されたピンを前記複数のコントローラのうちの関連づけられたコントローラに割り当てる手段を含む、請求項１に記載のシステム。
【請求項１２】
前記複数の処理構成要素のうちの１つの処理構成要素に関連づけられた前記複数のコントローラに接続されたクロスバー・スイッチと、前記クロスバー・スイッチに接続され、前記クロスバー・スイッチの動作を定義する命令を供給するＩ／Ｏ選択レジスタとをさらに含む、請求項１に記載のシステム。
【請求項１３】
前記システムがＩＯＳＥＬＥＣＴ命令を供給するように設計され、前記Ｉ／Ｏ選択レジスタ内の前記命令が前記ＩＯＳＥＬＥＣＴ命令によって決定される、請求項１２に記載のシステム。
【請求項１４】
データの入力および出力が行われる複数のピンを各々有する複数の処理構成要素と、各処理構成要素に夫々関連づけられた複数のコントローラであって、各コントローラは前記複数のピンのうちの選択されたピンのデータの前記入力および出力を制御する、コントローラと、を有するデータ処理システムにおいてクロック信号を供給する方法であって、
ａ．複数の異なるクロック信号を供給するステップと、
ｂ．前記複数のコントローラの各コントローラのために前記複数のクロック信号のうちの１つのクロック信号を選択するステップと、
ｃ．前記複数のコントローラに前記複数のクロック信号のうちの前記選択されたクロック信号を並列して供給するステップとを含む方法。
【請求項１５】
前記複数の処理構成要素がそれぞれ複数のピンを有し、前記複数の処理構成要素が前記ピンを介したデータの入力および出力を制御し、前記ステップｃが、前記複数のピンのうちの選択されたピンを前記複数の処理構成要素のうちの関連づけられた処理構成要素に割り当てるステップを含む、請求項１４に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ処理システムに関し、より詳細には、信号インタフェースを各グループが別々のクロックによって制御される複数のグループに区分化する装置および方法に関する。
【０００２】
【従来の技術】
周知のデータ処理システムは一般に、他の構成要素との情報伝達を容易にするように定義された信号インタフェースとプロトコルとを有する１つまたは複数の処理構成要素を含む。ほとんどの場合、このインタフェースは単一の固定した同期クロックによって制御される。単一のクロックにより、設計は単純に保たれるが、タイミング障害の切り離し、エラーからの回復、電力管理、および特定のインタフェースを他のインタフェースとは異なる周波数で動作させる能力が制限される。
【０００３】
【発明が解決しようとする課題】
データ処理システムにおける複数のクロックの使用が知られている。たとえば、米国特許第５７９０６０９号では、単一のマルチプレクサに送られる複数のクロック入力を特徴とするデータ処理システムが開示されている。たとえば電力の節約のために、データ処理システムをより低速で動作させることが望ましい場合、命令を生成して、マルチプレクサにそのクロック出力をより高速のクロック入力からより低速のクロック入力に切り換えさせる。しかし残念ながら、異なる選択可能周波数で単一のクロック出力のみを供給しても、データ処理システム内で特定の入力／出力信号を１つの周波数またはスキューで供給し、他の入力／出力信号を異なる周波数またはスキューで供給するという必要には対処していない。
【０００４】
【課題を解決するための手段】
本発明の一態様は、各処理構成要素が少なくとも１つの他の処理構成要素に接続された、複数の処理構成要素を含むデータ処理システムである。このシステムは、各クロック供給源がクロック信号を供給する複数のクロック供給源と、各処理構成要素に関連づけられた複数のコントローラも含む。さらに、このシステムは、各クロック選択レジスタがクロック選択信号を供給する複数のクロック選択レジスタと、各マルチプレクサが複数のクロック供給源と、複数のコントローラのうちの２つ以上のコントローラと、クロック選択レジスタの１つとに接続された複数のマルチプレクサを含む。各マルチプレクサは、１つのクロック選択レジスタから供給されるクロック選択信号に応答して、複数のコントローラのうちの２つ以上のコントローラへの出力として、クロック信号のうちの１つのクロック信号を供給する。
【０００５】
本発明の他の態様は、複数の処理構成要素と、それらの処理構成要素に関連づけられた複数のコントローラとを有するデータ処理システムにおいて、クロック信号を供給する方法である。この方法の最初のステップとして、複数の異なるクロック信号を供給する。次に、複数のコントローラのそれぞれのためにこの複数のクロック信号のうちの１つを選択する。最後に、複数のクロック信号のうちの選択されたクロック信号を複数のコントローラに並列して供給する。
【０００６】
【発明の実施の形態】
図１を参照すると、本発明は同期インタフェースを有するデータ処理システム２０である。システム２０は、マザーボードなどの上位アセンブリの形態をとることもでき、複数の論理デバイスを含む単一の半導体チップとすることもできる。
【０００７】
システム２０は、システムの同期インタフェースによって制御されるメモリ、論理回路、周辺装置およびその他の装置など、複数の処理構成要素２２を含む。システム２０が上位アセンブリの場合、処理構成要素２２は一般に、マイクロプロセッサ・チップやメモリ・チップなど、別々の半導体チップを構成する。
【０００８】
たとえば入力信号、出力信号、ＢＩＤＩ信号など、各処理構成要素２２へのインタフェース信号は、各グループが１ないしｎビットを含む複数のグループに分けられる。ただし、ｎはインタフェース信号中の合計ビット数である。構成要素２２は、各インタフェース信号グループについて複数の論理コントローラ２４を含む。たとえば、処理構成要素２２ａのグループ０にはコントローラ２４ａ、処理構成要素２２ｂのグループ０にはコントローラ２４ｂ、処理構成要素２２ａのグループ１にはコントローラ２４ｃ、処理構成要素２２ｂのグループ１にはコントローラ２４ｄが備えられている。
【０００９】
一般にはコントローラ２４は構成要素２２の一部であるが、構成要素に接続された別個のデバイスとすることもできる。コントローラ２４は、関連づけられた構成要素２２のデータ入出力を制御するのに必要な論理回路を含む。所与の構成要素２２の各コントローラ２４は、データ・バス２５を介して他の構成要素２２のコントローラにデータを供給する。たとえば、コントローラ２４ａは、データ・バス２５を介してコントローラ２４ｂにデータを供給する。構成要素２２はデータ・バス２５を介して相互に接続されている。
【００１０】
インタフェース信号を適切なグループに分ける手法、したがって、コントローラ２４の数、およびコントローラが接続されているマルチプレクサ３６の数を決定する手法は、いくつかある。各インタフェース・グループは、たとえば、マイクロプロセッサ、メモリ・チップ、またはその他のデバイスのピンとすることができる。このようなピンは、関連付けられたコントローラ２４にハード結線することができる。代替方法として、第１のコントローラ２４に、このようなピン、またはシステム・インタフェース信号中の選択された任意のバイト、たとえばバイト０および１を割り当て、第２のコントローラに他のバイト、たとえば２〜７を割り当て、以下同様に割り当てることができる。一般には、各バイトによって８ビット、すなわち８個のピンを識別する。この割当ては、所与のコントローラ２４を関連づけられたピンにハード結線するか、または、所与の構成要素２２のコントローラ２４に接続された任意選択のクロスバー・スイッチ２６を使用して実現される。クロスバー・スイッチ２６については後で詳述する。
【００１１】
システム２０は、複数のクロック供給源３０も含み、各クロック供給源は、他のクロック供給源から供給されるクロック信号とは異なるクロック信号ＣＬＫを供給する。クロック信号ＣＬＫには、周波数またはスキュー、すなわち時間遅延の相違を持たせることができる。たとえば、クロック供給源３０ａは、クロック供給源３０ｂが供給するクロック信号ＣＬＫ１の周波数の半分の周波数のクロック信号ＣＬＫ０を供給することができる。あるいは、クロック供給源３０ａは、クロック供給源３０ｂからのクロック信号ＣＬＫ１と同じ周波数であるが、クロック信号ＣＬＫ１を基準にしてたとえば１００ピコ秒だけ遅延させたクロック信号ＣＬＫ０を供給することができる。
【００１２】
また、システム２０は、各マルチプレクサがすべてのクロック供給源３０に接続された複数のマルチプレクサ３６も含む。したがって、すべてのクロック供給源３０からのクロック信号ＣＬＫが、マルチプレクサ３６への入力となる。各マルチプレクサ３６の出力は、伝達線３８を介して２つ以上のコントローラ２４に接続されている。たとえば、マルチプレクサ３６ａの出力は伝達線３８ａを介してコントローラ２４ａおよび２４ｂに供給される。場合によっては、所与のマルチプレクサ３６の出力を３つ以上のコントローラ２４に接続することが望ましいことがある。所与のマルチプレクサ３６に接続されたコントローラ２４の数に関係なく、各コントローラは１つのマルチプレクサにのみ接続される。
【００１３】
各マルチプレクサ３６の動作は、別々のクロック選択レジスタ４０によって制御される。システム２０は、クロック選択レジスタ４０を各コントローラ２４の内部（各コントローラ内に１つ）またはコントローラ２４の外部（各Ｉ／Ｏグループに１つ）含むことができる。いずれの場合も、所与のマルチプレクサ３６によって使用されるクロック供給源３０のうちの１つがクロック選択レジスタ４０によって選定される。たとえば、クロック選択レジスタ４０ａは、マルチプレクサ３６ａの出力としてクロック供給源３０ａからクロック信号ＣＬＫ０を選択し、クロック選択レジスタ４０ｂはマルチプレクサ３６ｂの出力としてクロック信号ＣＬＫ１を選択することができる。
【００１４】
クロック選択レジスタ４０は、命令ＷＲＣＬＫを使用してプログラムされる。この命令ＷＲＣＬＫは、クロック選択レジスタが接続されているマルチプレクサ３６に接続されたコントローラ２４に接続された処理構成要素２２のアーキテクチャの拡張機能である。ＷＲＣＬＫ命令には２つのオペランドがあり、第１のオペランドによってどのグループを選択するかが識別され、第２のオペランドによってそのグループのクロックが選択される。ＷＲＣＬＫ命令が実行されると、ＷＲＣＬＫ命令は、第１のバス・サイクルで、マルチプレクサ３６に入力されるクロック供給源３０のうちのどの１つのクロック供給源をそのマルチプレクサからの出力として供給すべきかを識別する二進値をクロック選択レジスタ４０に書き込む。第２のバス・サイクルで、クロック選択レジスタ４０内のこの新しい値がマルチプレクサ３６に伝播し、それによって、クロック供給源３０のうちのどの１つのクロック供給源を選択するかを決定する。別の命令ＲＤＣＬＫによって、処理構成要素２２が特定のクロック選択レジスタ４０の内容を読み取ることができる。ＲＤＣＬＫ命令も、それぞれの処理構成要素２２のアーキテクチャの拡張機能である。
【００１５】
命令ＷＲＣＬＫおよびＲＤＣＬＫを任意の時点で実行して、所与のコントローラ２４、すなわち所与の信号インタフェース・グループに供給されるクロック信号ＣＬＫを変更することができる。したがって、後で詳述するように、１ビットという狭いインタフェースや、信号インタフェース全体という広いインタフェースも制御することができる。
【００１６】
各クロック選択レジスタ４０の内容は、線４２を介して、クロック選択レジスタが接続されているマルチプレクサ３６に接続されたコントローラ２４にも供給される。たとえば、クロック選択レジスタ４０ａの出力は、線４２ａを介して、マルチプレクサ３６ａに接続されたコントローラ２４ａおよび２４ｂに供給される。クロック選択レジスタ４０は、その出力を、クロック選択レジスタが接続されているマルチプレクサに接続されたコントローラ２４に供給し、さらに、マルチプレクサ自体にも供給し、コントローラがそれぞれの内部動作を、コントローラが受け取っている特定のクロック信号に照らしてシステム・インタフェース・プロトコルに従うように調整することができるようにする。
【００１７】
システム２０はarchcompレジスタ５０も含むことが好ましい。このレジスタは、ARCHCOMP命令を使用してプログラムされ、一般には１ビットで表される。ARCHCOMP命令は、異なる周波数またはスキューのクロック信号ＣＬＫがコントローラ２４に供給されたときに、コントローラ２４、したがってコントローラが関連づけられているインタフェース・グループに対して、システム２０のアーキテクテッド・インタフェース・プロトコルを維持する必要があるか否かを指示する。たとえば、システム２０が製造構成要素試験のために動作している場合、アーキテクテッド・インタフェース・プロトコルに従う必要がないか、望ましくない。一方、システム２０が、マザーボード上に集積されたプロセッサ・チップなど、そのアーキテクチャ仕様に依存する上位の集積回路で使用される場合、プロトコルを維持する必要がある。クロック選択レジスタ４０のように、archcompレジスタ５０は、各Ｉ／Ｏコントローラ２４の内部またはそれらのコントローラの外部に実装することができる。各コントローラ２４についてarchcompレジスタ５０を設けるように実施した場合、ARCHCOMP命令はarchcompレジスタが接続されているコントローラ２４に接続された処理構成要素２２の命令セットに付加される。
【００１８】
ARCHCOMP命令は、ＷＲＣＬＫ命令と同様にして実行される。命令デコード後、処理構成要素２２は、未終了バス・サイクルが完了するのを待ってから、ARCHCOMPを２バス・サイクルで実行する。この２サイクルは、archcompレジスタ５０に新しい値が書き込まれるARCHCOMP BUS CYCLE 1と、その新しい値がＩ／Ｏコントローラ２４内の論理回路に伝播し、その動作を変更させるARCHCOMP BUS CYCLE 2である。Ｉ／Ｏコントローラ２４の動作は、ARCHCOMP BUS CYCLE 2が完了するまで変化しない。
【００１９】
図１および図２を参照しながら、システム２０を使用してデータを構成要素２２ａから構成要素２２ｂに転送する方式の一例を以下に示す。この例では、システム２０の区分化クロック信号を使用することにより、単一のクロック信号を使用した場合よりもデータが高速で送られる。クロック供給源３０ｂが、図２の波形１００で識別されたクロック信号ＣＬＫ１を供給し、このクロック信号ＣＬＫ０はクロック供給源３０ａによって供給される、波形１０２で識別されたクロック信号ＣＬＫ０の２倍の周波数を有するものとする。また、クロック信号ＣＬＫ１は、システム２０のデータ・バスおよびＢＲＤＹ信号（データを受領したことを肯定応答する）のためのコントローラ２４に接続されたマルチプレクサ３６からの出力であるものとする。さらに、クロック信号ＣＬＫ０は、システム２０のアドレス・バス、ＡＤＳ＃信号（新しいバス・サイクルを開始する）、および制御バスのためのコントローラ２４に接続された異なるマルチプレクサ３６からの出力であるものとする。
【００２０】
データ転送は以下のように行われる。波形１０２の立ち上がり１０４で、構成要素２２ａが最初のバス・サイクルを開始し、構成要素２２ｂに送られる構成要素２２ａ内のデータのアドレスおよび制御バス情報が供給される。このデータの要求の受領後、波形１００の立ち上がり１０６で、要求されたデータが構成要素２２ａによって供給される。データ・バスに送られるクロック信号ＣＬＫ１は、アドレス・バスおよび制御バスに送られるクロック信号ＣＬＫ０の周波数の２倍の周波数で動作するため、構成要素２２ｂはこのデータを波形１０２の次のサイクルの立ち上がり１０８までに受け取ることができ、それによって最初のバス・サイクルを完了する。データ・バスがアドレス・バスの２倍の周波数でクロックされていなかったとすれば、構成要素２２ｂは波形１０２の３番目のサイクルの立ち上がり１１０までデータを受け取らないことになる。したがってこれによりパフォーマンスが大幅に向上する。
【００２１】
半導体チップの歩留まりの変動の結果として、特定のチップが低速分類カテゴリに降格されることが多い。多くの場合、チップの他の部分よりも低速で動作するのは１つまたは２つのクリティカル・パスだけである。本発明を使用すれば、このようなチップをより高速の分類カテゴリに昇格させることができ、したがって、インタフェースをいくつかのグループに分け、それによってクリティカル信号を他の信号よりも低速で、または同じ速度だが後のスキュー付きで動作させるメカニズムを備えることによってその価値を高めることができる。これは、クリティカル信号を別個のグループに入れ、ＷＲＣＬＫ命令を使用して、当該チップ上の他のＩ／Ｏ信号に使用されるものとは異なるクロック供給源３０を選択することによって実現される。この考え方は、マザーボード上のデバッグ・タイミング問題にも適用可能であり、その場合、すべて周波数は同じだが異なるスキューを持つクロック供給源３０のうちから異なるクロック供給源を選択することによって、構成要素のピンへのクロック信号の到着時間が調整される。
【００２２】
次に、図１および図３を参照しながら、ＷＲＣＬＫクロック信号とＲＤＣＬＫクロック信号の実行によって、クロック選択レジスタ４０に送られる命令が決定し、したがってクロック供給源３０からマルチプレクサ３６に入力されたどのクロック信号ＣＬＫをマルチプレクサからの出力として出力するかの選択が決定する方式について説明する。
【００２３】
ＷＲＣＬＫ命令は、命令デコード時に処理構成要素２２によって検出される。したがって、バス・サイクル２００で、構成要素２２はＷＲＣＬＫ命令をデコードする。次に、サイクル２０２で、構成要素２２はすべての未終了バス・サイクルが完了するのを待つ。図３に示す単一のバス・サイクルは、複数のクロック・サイクルに相当することがある。次に、サイクル２０４で、構成要素２２はＷＲＣＬＫ命令を実行し、所望のクロック信号ＣＬＫの値表現が適切なクロック選択レジスタ４０に書き込まれるようにする。サイクル２０６で、クロック選択レジスタに書き込まれたこの新しい値はクロック選択マルチプレクサ３６に伝播することができ、したがって、新しいクロック供給源３０が選択されてＩ／Ｏコントローラ２４を制御する。ＷＲＣＬＫ命令が、データ・バスのためのコントローラ２４に接続されたマルチプレクサ３６に接続されたクロック選択レジスタ４０に供給され、データが６６ＭＨｚのクロック速度で供給されると仮定すると、サイクル２０８でのクロック選択レジスタ４０の新しい値の伝播によって、データが新しいクロック速度（この例では１００ＭＨｚ）で供給される。他のコントローラ２４は、継続して６６ＭＨｚのクロック信号を受け取る。
【００２４】
図３に示す例を続けて参照し、システム２０内のすべてのグループ、したがってそれらに関連づけられたコントローラ２４に、１００ＭＨｚのクロック信号を供給したいと仮定すると、サイクル２２０で、ＷＲＣＬＫ命令がサイクル２００で行われたようにデコードされる。次に、サイクル２２２で、ＷＲＣＬＫ命令がサイクル２０２で行われたようにデコードされる。次に、サイクル２２４および２２６で、サイクル２０４および２０６と同様にＷＲＣＬＫ命令がそれぞれ実行される。最後に、バス・サイクル２２８〜２３４に示すように、他のすべてのグループが１００ＭＨｚのクロック信号を受け取る。
【００２５】
システム２０の他の応用分野は、インタフェース信号の異なるバイトまたはビットに異なるクロック信号を与えることである。システム２０のこの機能は、特に試験、デバッグ、および回復操作に適用できる。再び図１に戻って、システム２０の機能を実現するには、システム２０は、前述のように任意選択によりクロスバー・スイッチ２６と、クロスバー・スイッチに接続されたＩ／Ｏ選択レジスタ３０２とを含む。Ｉ／Ｏ選択レジスタ３０２は、複数の入力のうちのそれぞれ１つの入力を、複数の出力のうちの選択された１つまたは複数の出力に接続し、それ自体、クロスバー・スイッチとは異なる構造を構成することができる。たとえば、マルチプレクサまたはその他の装置あるいはそれらの両方の様々な配置をクロスバー・スイッチ２６として使用することができる。
【００２６】
いずれにしても、所与の構成要素２２の各コントローラ２４は線３０４を介してクロスバー・スイッチ２６に接続される。図１では、図を簡単にするために１つのクロスバー・スイッチ２６しか図示していない。しかし、２つの構成要素、すなわち構成要素２２ａおよび２２ｂが示されているため、一般には２つのクロスバー・スイッチ２６が使用されることになり、一方は構成要素２２ａのコントローラ２４に、他方は構成要素２２ｂのコントローラ２４に接続される。クロスバー・スイッチ２６は典型的には構成要素２２の一部であるが、別個の装置として実装することもできる。
【００２７】
クロスバー・スイッチ２６は、所与のコントローラ２４がデータ・バス２５を介したデータの入力と出力を制御する１つまたは複数のピンを割り当てる。最大限の柔軟性をもたせるために、構成要素２２上の各ピンに１つのコントローラ２４を設ける。しかし、多くの応用分野では、構成要素２２上のピンの数よりも少ないコントローラ２４が使用される。すなわち、各コントローラが複数のピンを介してデータの入出力を制御することができる。なお、線３０４は一般に、構成要素２２上の各ピンに１本ずつ、複数の線を含む。
【００２８】
Ｉ／Ｏ選択レジスタ３０２は、クロスバー・スイッチ２６に伝播すると、コントローラ２４上のどのピンがデータを供給するかを決定する命令を含む。ＩＯＳＥＬＥＣＴと呼ぶ構成要素２２のための命令セットの拡張機能が、このような命令を備える。
【００２９】
次に、図１および図４を参照しながら、クロスバー・スイッチ２６とＩ／Ｏ選択レジスタ３０２が備えるこの追加機能について、構成要素２２ａから２２ｂへのデータ転送の事例で説明する。以下の説明では、各クロック信号が関連づけられたバイトで表され、構成要素２２ａ上の８個のピンに供給されるクロック信号が、本発明により選択されるものと仮定する。また、Ｉ／Ｏ選択レジスタ３０２は、クロスバー・スイッチ２６が、クロック供給源３０ａからクロック信号ＣＬＫ０を受け取るコントローラ２４ａにバイト０によって示されたピンを割り当て、クロック供給源３０ｂからのクロック信号ＣＬＫ１を受け取るコントローラ２４ｃにバイト７−１を割り当てるようにする命令を含むものとする。さらにクロック供給源３０ａからのクロック信号ＣＬＫ０の周波数は、クロック供給源３０ｂからのクロック信号ＣＬＫ１の周波数の半分であるものとする。後述するように、バイト７−１はより高速でクロックされるため、構成要素２２ａは、これらのバイトで示されたピン上のデータをバイト０で示されたピン上のデータよりも早く送る。この手法は、たとえばシステム・デバッグ中にタイミング問題をバイト０ピンに切り離すために使用することができる。
【００３０】
波形３１２の立ち上がり３１０で、構成要素２２ａのためのバス・サイクルが開始する。波形３１２の立ち上がり３１４で、バイト７−１で表されたピン上のデータが構成要素２２ａによって送られる。構成要素２２ｂは、このデータを波形３１２の立ち上がり３１６で受け取る。次に、波形３２０の立ち上がり３１８で、バイト０で識別されたピン上のデータが構成要素２２ａによって送られる。最後に、波形３２０の立ち上がり３２２で、構成要素２２ｂがこのデータを受け取る。これで第１のバス・サイクルが完了する。このプロセスは、図４に示すように第２のバス・サイクルで繰り返され、所望により反復することができる。
【００３１】
構成要素２２ａのバイト０で識別されたピンから供給されるデータは、クロック信号ＣＬＫ１の半分の周波数のクロック信号ＣＬＫ０で送られるため、バイト０のデータを調べるより多くの時間がある。選択されたピンのためのデータの配信を遅らせることができるこの機能は、たとえばこのようなピン上で供給されるデータに対して存在する可能性のあるタイミング問題を切り離すのに有用である。
【００３２】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００３３】
（１）ａ．各処理構成要素が前記処理構成要素のうちの少なくとも１つの他の処理構成要素に接続された複数の処理構成要素と、
ｂ．各クロック供給源がクロック信号を供給する複数のクロック供給源と、
ｃ．各前記処理構成要素に関連づけられた複数のコントローラと、
ｄ．各クロック選択レジスタがクロック選択信号を供給する複数のクロック選択レジスタと、
ｅ．各マルチプレクサが前記複数のクロック供給源と、前記複数のコントローラのうちの２つ以上のコントローラと、前記クロック選択レジスタのうちの１つのクロック選択レジスタとに接続され、各マルチプレクサが、前記１つのクロック選択レジスタによって供給されるクロック選択信号に応答し、前記複数のコントローラのうちの前記２つ以上のコントローラへの出力として前記クロック信号のうちの１つのクロック信号を供給する複数のマルチプレクサとを含む、データ処理システム。
（２）複数の伝達線をさらに含み、前記複数のマルチプレクサの各マルチプレクサが前記複数伝達線のうちの１つを介して前記複数のコントローラのうちの前記２つ以上のコントローラに接続された、上記（１）に記載のシステム。
（３）前記複数の伝達線の各伝達線が、前記複数のコントローラのうちの前記２つ以上のコントローラに固有に接続された、上記（２）に記載のシステム。
（４）前記クロック信号のうちの少なくとも１つのクロック信号が前記クロック信号のうちの他のクロック信号から時間がずれている、上記（１）に記載のシステム。
（５）前記クロック信号のうちの少なくとも１つのクロック信号が前記クロック信号のうちの他のクロック信号とは異なる周波数を有する、上記（１）に記載のシステム。
（６）前記システムが通信シーケンス・プロトコルを有し、前記複数のコントローラのそれぞれに接続され、前記複数の処理構成要素が前記通信シーケンス・プロトコルに従わなければならないか否かを示すarchcompレジスタをさらに含む、上記（１）に記載のシステム。
（７）前記複数のコントローラの各コントローラがarchcompレジスタを含む、上記（６）に記載のシステム。
（８）前記archcompレジスタが、第１のバス・サイクル中にARCHCOMP命令に応答して、互換性が望まれる場合には第１の値を書き込まれ、互換性が望まれない場合には第２の値が書き込まれるように設計され、第２のバス・サイクル中に前記ARCHCOMP命令に応答して、前記archcompレジスタ内にある前記第１の値および前記第２の値のうちの一方の値が、前記archcompレジスタに接続された前記コントローラに伝播するように設計され、前記ARCHCOMP命令が前記複数の処理構成要素上で実行される、上記（６）に記載のシステム。
（９）前記複数のクロック選択レジスタの前記各クロック選択レジスタが、第１のバス・サイクル中にＷＲＣＬＫ命令に応答し、前記各クロック選択レジスタが接続された前記複数のマルチプレクサのうちの１つのマルチプレクサからの出力として供給されるクロック信号を有する前記複数のクロック供給源のうちの１つのクロック供給源を示す値が固有に書き込まれるように設計され、前記クロック選択レジスタが、第２のバス・サイクル注に前記ＷＲＣＬＫ命令に応答し、前記各クロック選択レジスタが接続された前記マルチプレクサに前記値が伝播するように設計され、前記ＷＲＣＬＫ命令が前記複数の処理要素上で実行される、上記（１）に記載のシステム。
（１０）前記クロック選択レジスタが、前記クロック選択レジスタの内容がＲＤＣＬＫ命令を介して読み取ることができるように設計されている、上記（１）に記載のシステム。
（１１）前記複数の処理構成要素の各処理構成要素がそれを介してデータの入力および出力が行われる複数のピンを有し、前記複数のコントローラの各コントローラが、前記複数のピンのうちの選択されたピンのデータの前記入力および出力を制御し、前記システムが前記複数のコントローラに接続され、前記複数のピンのうちの選択されたピンを前記複数のコントローラのうちの関連づけられたコントローラに割り当てる手段を含む、上記（１）に記載のシステム。
（１２）前記複数の処理構成要素のうちの１つの処理構成要素じ関連づけられた前記複数のコントローラに接続されたクロスバー・スイッチと、前記クロスバー・スイッチに接続され、前記クロスバー・スイッチの動作を定義する命令を供給するＩ／Ｏ選択レジスタとをさらに含む、上記（１）に記載のシステム。
（１３）前記システムがＩＯＳＥＬＥＣＴ命令を供給するように設計され、前記Ｉ／Ｏ選択レジスタ内の前記命令が前記ＩＯＳＥＬＥＣＴ命令によって決定される、上記（１２）に記載のシステム。
（１４）複数の処理構成要素と前記処理構成要素に関連づけられた複数のコントローラとを有するデータ処理システムにおいてクロック信号を供給する方法であって、
ａ．複数の異なるクロック信号を供給するステップと、
ｂ．前記複数のコントローラの各コントローラのために前記複数のクロック信号のうちの１つのクロック信号を選択するステップと、
ｃ．前記複数のコントローラに前記複数のクロック信号のうちの前記選択されたクロック信号を並列して供給するステップとを含む方法。
（１５）前記複数の処理構成要素がそれぞれ複数のピンを有し、前記複数の処理構成要素が前記ピンを介したデータの入力および出力を制御し、前記ステップｃが、前記複数のピンのうちの選択されたピンを前記複数の処理構成要素のうちの関連づけられた処理構成要素に割り当てるステップを含む、上記（１４）に記載の方法。
【図面の簡単な説明】
【図１】本発明のデータ処理システムを示すブロック図である。
【図２】アドレス・バスおよび制御バスの周波数の２倍の周波数でクロック同期されたデータ・バスによってデータが書き込まれる、図１のシステムの動作を示すタイミング図である。
【図３】ＷＲＣＬＫ命令に応答した様々な構成要素のクロック周波数の経時的変化を示すタイミング図である。
【図４】他のインタフェース信号の周波数の半分の周波数で動作するデータ・バス・バイト０によってデータが書き込まれる、図１のシステムの動作を示すタイミング図である。
【符号の説明】
２０  データ処理システム
２２  処理構成要素
２４  Ｉ／Ｏコントローラ
２５  データ・バス
２６  クロスバー・スイッチ
３０  クロック供給源
３６  マルチプレクサ
３８  伝達線
４０  クロック選択レジスタ
３０２  Ｉ／Ｏ選択レジスタ
【図１】
0003651588.tif 000002
【図２】
0003651588.tif 000003
【図３】
0003651588.tif 000004
【図４】
0003651588.tif 000005