(57)【特許請求の範囲】
【請求項１】
バスに結合された少なくとも１つの端子を有する集積回路（１０）であって、
クロック信号（ＣＬＫ）を受けるための端子であって、前記クロック信号は複数のアクティブなクロックエッジを有するもの、そして
クロッククオリファイア信号（ＣＬＫＥＮ）を受けるための端子であって、前記クロッククオリファイア信号は前記複数のアクティブなクロックエッジにおいて少なくとも１つのアクティブなクロックエッジを指示するために肯定され、前記複数のアクティブなクロックエッジにおける前記少なくとも１つのアクティブなクロックエッジは前記集積回路がいつ前記集積回路の外部の少なくとも１つのバス動作を行なうべきかを指示するために使用されるもの、
を具備し、前記集積回路はバス動作を行なうために前記クロッククオリファイア信号によって適格とされる幾つかの端子および前記クロッククオリファイア信号と独立に機能する他の端子を有することを特徴とするバスに結合された少なくとも１つの端子を有する集積回路（１０）。
【請求項２】
データ処理装置であって、
前記データ処理装置内のデータを操作するための中央処理ユニット（ＣＰＵ）であって、該ＣＰＵは複数のアクティブエッジを有するクロック信号を受信するもの、
前記ＣＰＵに結合され前記クロック信号を受信しかつ制御信号を受信するための回路、そして
前記制御信号を受信するための端子であって、前記制御信号は前記複数のアクティブエッジ内のどのアクティブエッジが前記バスと前記データ処理装置との間の動作のために使用できるかを指示するために肯定されるもの、
を具備することを特徴とするデータ処理装置。
【請求項３】
データ処理装置であって、
複数のアクティブエッジを有するクロック信号を受信したことに応じて前記データ処理装置内でデータを操作するための中央処理ユニット（ＣＰＵ）、
前記ＣＰＵに結合され前記クロック信号を受信しかつ制御信号を受信するためのバス制御回路、そして
前記制御信号を受信するための端子であって、前記クロック信号は前記中央処理ユニット（ＣＰＵ）の動作を制御するために使用され、かつ前記クロック信号ならびに前記制御信号は前記バス制御回路および前記データ処理装置がいつ通信すべきかを決定するために一緒に使用されるもの、
を具備することを特徴とするデータ処理装置。
【請求項４】
データ処理装置であって、
前記データ処理装置内でデータを操作するための中央処理ユニット（ＣＰＵ）、
前記ＣＰＵに結合され複数のアクティブエッジを有するクロック信号を受信しかつ制御信号を受信するためのバス制御回路、
前記クロック信号を受信するための第１の端子であって、前記クロック信号は前記バス制御回路に通信されるもの、そして
前記制御信号を受信するための第２の端子であって、前記クロック信号は前記中央処理ユニット（ＣＰＵ）の動作を制御するために使用される特定の時間フレーム内にＮのアクティブなクロックエッジを有し、そして前記クロック信号ならびに前記制御信号は前記特定の時間フレーム内にＭのアクティブなクロックエッジを規定し、この場合Ｍのアクティブなクロック信号はバス動作を開始するために使用され、ＮおよびＭはゼロより大きな有限の整数であり、Ｎ≧Ｍであるもの、
を具備することを特徴とするデータ処理装置。
【請求項５】
データ処理装置内で第１の周波数で処理装置を制御しかつ第２の周波数でバス動作を制御するために単一のクロック信号を使用する方法であって、
前記単一のクロック信号をデータプロセッサの外部から受信する段階であって、前記クロック信号は前記第１の周波数で動作しておりかつアクティブなエッジを有するもの、そして
前記データ処理装置の外部から制御信号を受信する段階であって、前記制御信号は前記単一のクロック信号のどのアクティブエッジがバス動作を行なうために使用されるかを指示するために使用され、バス動作を行なうために使用される前記クロック信号のアクティブエッジは第２の周波数を生じ、この場合該第２の周波数は前記第１の周波数より低いかまたは等しいもの、
を具備することを特徴とするデータ処理装置内で第１の周波数で処理装置を制御しかつ第２の周波数でバス動作を制御するために単一のクロック信号を使用する方法。
【請求項６】
バスに結合された少なくとも１つの端子を有する集積回路（１０）であって、
クロック信号（ＣＬＫ）を受けるための端子であって、前記クロック信号は複数のアクティブなクロックエッジを有するもの、そして
クロッククオリファイア信号（ＣＬＫＥＮ）を受けるための端子であって、前記クロッククオリファイア信号は前記複数のアクティブなクロックエッジにおいて少なくとも１つのアクティブなクロックエッジを指示するために肯定され、前記複数のアクティブなクロックエッジにおける前記少なくとも１つのアクティブなクロックエッジは前記集積回路がいつ前記集積回路の外部の少なくとも１つのバス動作を行なうべきかを指示するために使用されるもの、
を具備し、前記クロッククオリファイア信号は１回肯定され、前記クロッククオリファイア信号の１つの肯定は前記集積回路の内部のカウント回路をスタートさせ、前記カウント回路は肯定された時に前記複数のアクティブなクロックエッジにおけるアクティブなクロックエッジを示す周期的な制御信号または非周期的な制御信号を発生し、前記複数のアクティブなクロックエッジにおける前記アクティブなバスクロックのエッジは前記集積回路がいつ前記集積回路の外部のバス動作を行なうべきかを指示するために使用されることを特徴とするバスに結合された少なくとも１つの端子を有する集積回路。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は一般的には半導体回路に関し、かつより特定的には、バス制御およびバスクロック信号に関する。
【０００２】
【従来の技術】
マイクロプロセッサユニット（ＭＰＵ）にとってプロセッサ（ＭＰＵ）の周波数より低速のバス周波数をサポートすることは重要である。この特徴は低いコストおよび電力を維持するための低周波数のバスおよび高い性能のための高周波数のプロセッサの双方を備えた、２つのクロック機能が必要とされる、システムの設計を可能にする。
【０００３】
この特徴を提供するためには、プロセッサのクロック、バスクロックを発生しかつ該プロセッサと外部バスクロックの関係を設定する方法が必要である。この方法はできるだけ広い範囲の周波数にわたり作動することが望ましい。今日のＭＰＵにとっては、このことはプロセッサの周波数を１００ＭＨｚ以上からほぼ０Ｈｚの動作をサポートできることを意味する。この動作の外部制御は付加的な柔軟性を提供することができる。
【０００４】
上に述べた機能性を提供するためにいくつかの方法がある。１つは異なる周波数の２つの関係のないクロック発生器を使用することであり、低速のものはバスクロックのためのものでありかつ高速のものはプロセッサのクロックのためのものである。プロセッサとバスとの間の通信は該プロセッサと該バスとの間の必要な信号を同期させることによって行なうことができる。この方法はプロセッサをバスクロックの関係に固定しないという利点を有する。しかしながら、同期は通常ドライブ周波数領域からの信号を受信周波数領域の周波数でクロッキングされるレジスタに数回（少なくとも２回）直列的に登録することによって達成される。性能のペナルティはこの付加的な潜伏（ｌａｔｅｎｃｙ）から生じる。また、もし同期処理がＭＰＵにおいて行なわれれば、両方のクロックがＭＰＵに存在しなければならない。
【０００５】
上に述べた機能性を提供するための第２の方法は固定した周波数および固定した位相関係の双方を有する２つのクロックを発生することである。これは通常位相同期ループ（ＰＬＬ）回路によって達成される。より高い周波数のクロックがプロセッサのクロックのために使用され、かつより低い周波数のクロックが外部バスとインタフェースするバス制御論理において使用される。
【０００６】
【発明が解決しようとする課題】
この方法に関連していくつかの設計上の決定およびコストの考慮が必要である。第１に、２つのクロックの間の位相関係は厳密に制御されなければならない。これはＰＬＬの複雑さおよびコストを増大させる。第２に、ＰＬＬは大きな周波数範囲にわたり動作することができない。これはこの技術のこの周波数範囲への適用を制限する。また、ＰＬＬは入力基準への位相／周波数ロックを達成するのに時間を必要とする。このことは低電力モードのためにクロックを停止することを希望するシステムにとっては、ＰＬＬに定常状態の動作を達成できるようにするためクロックをリスタートさせるのに時間的なペナルティがあることを意味する。
【０００７】
もしＰＬＬの設計がシステム設計者に残されていれば、その部分はバスおよびプロセッサのクロックの双方を入力しなければならない。ＭＰＵ内部のクロック分配ネットワークがこれらのクロックの間の過剰なずれ（ｓｋｅｗ）を生じないように細心の注意を払うことが必要である。もしＰＬＬがＭＰＵに置かれれば、ＭＰＵの設計者はＰＬＬの設計と立ち向かうことになる。ＰＬＬは通常のデジタル回路と異なる回路設計技術および考慮を必要とし、かつ該ＰＬＬとデジタルＭＰＵロジックの双方の正しい動作のためにチップ上で他の回路から注意深く分離されなければならない。
【０００８】
上に述べた全ての解決方法はコスト、複雑さおよび／または動作の上での制約を有する。本発明はより低いコストおよび複雑さをもってかつ動作周波数の制約なしに所望の機能および動作を可能にする。
【０００９】
【課題を解決するための手段および作用】
前述の不都合は本発明によって克服されかつ他の利点も達成される。１つの形態では、本発明はデータプロセッサ内でプロセッサを第１の周波数で制御しかつバス動作を第２の周波数で制御するために単一のクロック信号を使用する方法を備えている。該方法はデータプロセッサの外部から前記単一のクロック信号を受信することによって開始される。前記クロック信号は前記第１の周波数で動作しかつアクティブエッジ（ａｃｔｉｖｅ  ｅｄｇｅｓ）を有する。データプロセッサの外部から制御信号が受信される。該制御信号は前記単一のクロック信号のどのアクティブエッジがバス動作を行なうために使用されるかを指示するために使用される。バス動作を行なうために使用される前記クロック信号のアクティブエッジは第２の周波数を生じる結果となり、この場合該第２の周波数は前記第１の周波数より低いかまたは等しい。
【００１０】
他の形態では、本発明はバスにアクセスするための少なくとも１つの端子を有する集積回路を備えている。該集積回路はクロック信号を受けるための端子およびクロッククオリファイア（ｃｌｏｃｋ  ｑｕａｌｉｆｉｅｒ）信号を受けるための端子を有する。前記クロック信号は複数のアクティブなクロックエッジを有する。前記クロッククオリファイア信号は前記複数のアクティブなクロックエッジにおける少なくとも１つのアクティブなクロックエッジを指示するために肯定され（ａｓｓｅｒｔｅｄ）、この場合前記複数のアクティブなクロックエッジにおける前記少なくとも１つのアクティブなクロックエッジは前記集積回路が前記集積回路の外部のバス動作をいつ行なうべきかを指示するために使用される。
【００１１】
本発明は添付の図面と共に以下の詳細な説明を参照することによりさらに明瞭に理解されるであろう。
【００１２】
【実施例】
以下、図面を参照して本発明の実施例につき説明する。なお、説明の簡略化および明瞭化のために、図面に示された各要素は必ずしも一定の比率で描かれていないことに注目すべきである。例えば、前記要素のいくつかの寸法は明瞭化のため他の要素に対し誇張されている。さらに、適切と考えられる場合には、参照数字は各図面の間で対応するまたは同様の要素を示すために反復されている。図５〜図７のタイミング図においてはハイ、ロー、またはトライステートのレベルのいずれかで描かれていない信号はこれらの時間の間未知であることを示している。
【００１３】
知られたマイクロプロセッサユニット（ＭＰＵ）はプロセッサクロックに対するバスクロックの可変比率をサポートするために数多くの異なる方法を使用している。以下に説明する方法および装置は現存の方法より優れており、それは以下の方法がより広い範囲の比率を可能にし、より柔軟性あるクロック制御を有し、かつ位相同期ループ（ＰＬＬ）または電圧制御発振器（ＶＣＯ）を使用しないからである。
【００１４】
集積回路産業においては、ＭＰＵがプロセッサ周波数より低いバス周波数をサポートすることが重要である。この特徴はシステムが高い性能のために高い周波数のプロセッサを使用する間に低いコストを維持するために低い周波数のバスを備えたシステムの設計を可能にする。
【００１５】
この特徴を提供するため、外部バスクロックに対するプロセッサクロックの関係を設定する方法が必要である。この方法はできるだけ広い範囲のプロセッサ周波数にわたり動作すべきである。今日のＭＰＵについては、このことは１００ＭＨｚまたはそれ以上からほぼ０Ｈｚ（ＤＣ）動作までのプロセッサ周波数をサポートすることを意味する。この動作の外部的な制御は付加的な柔軟性を提供できる。
【００１６】
ここに説明する方法および装置はデータプロセッサがプロセッサクロック周期の任意の整数倍とすることができるバスクロック周期をサポートできるようにする。言い換えれば、バスクロック周波数はデータプロセッサのクロック周波数の任意の約数とすることができる。例えば、もしプロセッサのクロック周波数が５０ＭＨｚであれば、バス動作は５０ＭＨｚ，２５ＭＨｚ，１２．５ＭＨｚ，６．２５ＭＨｚ、その他で行なうことができる。他の形式では、データプロセッサのクロックエッジに対応するランダムな、擬似ランダムな、または任意のパターンのクロックエッジをバス動作のためのアクティブなクロックエッジとして使用できる。例えばデータプロセッサが階級順に（ｒａｎｋ  ｏｒｄｅｒ）１から２０まで番号付けられた立上りエッジを有するクロック信号を有するものと仮定する。この場合、バスは、２，４，６，８などのような、単に周期的に番号付けられたエッジではなくクロック２，６，７，１３，１８および１９をバス動作を行なうために使用できる。上に述べた動作は０Ｈｚから最大仕様のプロセッサ周波数までの全てのプロセッサ周波数に対してサポートされ、かつこの動作はここではＣＬＫＥＮ＊と名付けられた外部ピンによって制御される。
【００１７】
要するに、（図１〜図４を参照）、この発明はデータプロセッサのクロックより低いバス周波数の動作をサポートするためにデータプロセッサのバス制御ユニットにおける新しい入力信号および制御論理からなる。新しい入力信号、ＣＬＫＥＮ＊、はデータプロセッサのクロック周波数より低いかまたは等しい外部バスクロック周波数での正しいバス動作を提供するためにデータプロセッサのバス制御ユニットによって使用される。データプロセッサにおけるプロセッサクロックピン（ＣＬＫ）、および（データプロセッサのＣＬＫより低いかまたは等しい周波数で動作する）外部バスクロックは同期されなければならない。特に、外部バスクロックは前記プロセッサクロックの周期の任意の整数倍または非周期的なクロック信号（上に述べたように）とすることができる。バス制御ユニットを含む、データプロセッサの全ての機能ユニットは全てのレジスタのために前記プロセッサクロックを使用し、一方バス動作（およびＣＰＵとバスロジックとの間の、外部読出しおよび書込みのような、動作）はＣＰＵクロックのアクティブエッジによって前記外部バスクロックと符合するよう時間が合わせられる。
【００１８】
上に述べたクロッキング機能は次のように動作する（フル、ハーフおよび４分の１のバス−プロセッサ速度が示された図５〜図７を参照）。前記ＣＬＫＥＮ＊信号は外部バスクロックの立上りエッジと一致するプロセッサクロックの立上りエッジの前に肯定される。前記ＣＬＫＥＮ＊信号は外部バスクロックの立上りエッジと一致しないプロセッサクロックの全ての立上りエッジの前に否定される。前記プロセッサ周波数に等しいバス周波数の場合については、ＣＬＫＥＮ＊ピンは連続的に肯定され、それによって全てのプロセッサクロックエッジをバスクロックエッジに対し１対１の比率で選択しなければならない。プロセッサクロックに対するバスの比率はここに示された２分の１または４分の１のような２のべき乗である必要はなく、プロセッサクロック、外部クロック、およびＣＬＫＥＮ＊信号の関係はバスクロック周期がプロセッサクロック周期の３または５倍の場合も可能である。バスクロック周波数に対するプロセッサクロック周波数の比率はバスクロックが周期的である場合は整数でなければならない（すなわち、２４／６は４分の１の速度であり、２４／８は３分の１の速度であり、２４／１２は半分の速度であり、２４／２４は最大速度であり、２４／２．４は１０分の１の速度である、などである）。
【００１９】
全てのＭＰＵの外部信号、全てのバス制御信号、アドレス信号、データ信号、その他に対し、前記ＣＬＫＥＮ＊信号は、データプロセッサのクロックの特定のエッジをイネーブルすることによりこれらの信号をバスクロック周波数で出力しかつ受信するために使用される。言い換えれば、ＣＬＫＥＮ＊信号によってイネーブルされるＣＬＫクロックエッジは外部バスクロック信号に対応するエッジであり、かつバスは主として前記ＣＬＫＥＮ＊信号によってイネーブルされたプロセッサクロックのエッジに応じて動作を行なうことができる。その場合出力信号はプロセッサクロックの立上りエッジがＣＬＫＥＮ＊信号によってイネーブルされた場合にのみ状態を変える。これは外部バスクロックの立上りエッジと一致するから、プロセッサの出力信号は外部バスクロックの立上りエッジと同期される。
【００２０】
ＭＰＵへの全ての外部的に入力される信号に対し、ＣＬＫＥＮ＊信号はＣＬＫのためのクオリファイア（ｑｕａｌｉｆｉｅｒ）として使用される。入力信号はＣＬＫＥＮ＊信号と論理的ＡＮＤ演算されかつ次にプロセッサクロックの立上りエッジでサンプルされる。したがって、入力はプロセッサにおいてＣＬＫＥＮ＊信号が肯定されている場合にのみ有効なものと見られることになる。このことは外部クロックの立上りエッジと一致するから、入力信号は外部クロックの立上りエッジにおいてのみ有効である。入力信号は外部クロックと一致しないプロセッサクロックの全ての立上りエッジにおいて否定される。ここではアクティブエッジが言及されており、かつアクティブエッジは、ここでは立上りエッジが好ましく／説明されているが、立上りエッジ、立下りエッジ、または立上りエッジおよび立下りエッジの双方の組合せのいずれでも良い。
【００２１】
したがって、図１において、バスインタフェースユニット（ＢＩＵ）またはバスコントローラ１４は第１のクロック周波数（ＣＬＫ）で動作するプロセッサ（または中央処理ユニット［ＣＰＵ］１２）の動作を前記第１のクロック周波数（ＣＬＫ）と同じかまたはそれより低速の周波数で動作する外部バス動作と結合する。プロセッサの出力信号は外部クロックの立上りエッジにおいてのみ状態を変えかつこれらのエッジの間では安定である。外部バス論理はプロセッサのバスインタフェースがその周波数で動作しかつそのクロックに同期していることを見て、外部バスが正しく動作できるようにする。内部プロセッサ論理はバス入力が外部バスクロックの立上りエッジと一致する前記ＣＬＫＥＮ＊信号によってイネーブルされたプロセッサクロックの立上りエッジにおいて状態を変えかつ次にＣＬＫＥＮ＊が肯定されていなければプロセッサクロックの次の立上りエッジで否定するのを見る。プロセッサ（ＣＰＵ１２）はプロセッサクロックの立上りエッジがＣＬＫＥＮ＊によってイネーブルされていない場合はバスインタフェースがアイドルバスサイクルと共にその周波数で動作するのを見る。
【００２２】
全体的に見て、上に述べた装置および方法はプロセッサクロックおよびプロセッサバスクロック構造がプロセッサおよびバスクロックの動作および関係を制御し、それによってプロセッサ周波数がバス周波数の任意の整数倍となるようにすることができる。上で述べた設計はこの制御をプロセッサクロック（ＣＬＫ）のための１つのピンおよびバスインタフェースクロックイネーブル（ＣＬＫＥＮ＊）のための１つのピンを使用して提供する。ここで述べた設計は広範囲の周波数関係をＶＣＯまたはＰＬＬなしにかつバスインタフェースクロックイネーブルのピンの比較的緩やかなタイミング制約によって可能にする。この設計は、概略的に、次のようになる。
【００２３】
１）バス周期はプロセッサ周期の任意の整数倍またはランダムな／擬似ランダムなパターンとすることができる。
２）本設計はバスインタフェースクロックイネーブルのために１つのピン、ＣＬＫＥＮ＊、を使用する。
３）本設計は任意のプロセッサ周波数において正確な動作を提供する。
４）本設計はＶＣＯまたはＰＬＬなしに広範囲の周波数関係を提供する。
５）本設計はバスインタフェースクロックのイネーブルピンに比較的緩やかなタイミング制約を与える。
【００２４】
本発明は図１〜図７を参照することによりさらに容易に理解できるであろう。図１は、データプロセッサ１０内のバスコントローラ１４に結合されたＣＰＵ１２を示している。ＣＰＵ１２またはデータプロセッサ１０はメモリ装置（ＳＲＡＭ装置、ＤＲＡＭ装置、ＥＥＰＲＯＭ装置、ＥＰＲＯＭ装置、フラッシュ装置、その他のような）、インタフェース装置、任意の周辺装置、ＤＭＡ装置、通信装置、タイマ、アナログ回路、マイクロプロセッサ、パイプライン化された実行装置、応用特定集積回路（ＡＳＩＣ）装置、プログラム可能ロジックアレイ（ＰＬＡ）、ハードワイヤード論理、マイクロコードおよび／またはナノコードによって少なくとも部分的にソフトウェアドライブされる実行ユニット、複数の実行装置、デジタル信号プロセッサ（ＤＳＰ）、コンピュータ、任意のデータプロセッサ、任意の中央処理ユニット（ＣＰＵ）、集積回路、および／またはその他とすることができる。
【００２５】
図１におけるＣＬＫ信号は外部からプロセッサ１０へ入力され、あるいはプロセッサ１０内で発生されてプロセッサ１０内の動作を制御しかつ同期する。ＣＬＫＥＮ＊信号（クロックイネーブル信号、“＊”はアクティブローを意味する）は前記ＣＬＫ信号を外部バスクロック（図１には示されていない）に同期させるために使用される。ＣＬＫＥＮ＊が肯定されたとき、ＣＬＫ信号の１つまたはそれ以上のアクティブエッジが識別される。ＣＬＫ信号のこの識別されたアクティブエッジ（立下りまたは立上りエッジのいずれでも良いが、好ましくは立上りエッジ）は外部バスクロックのアクティブエッジと一致するかまたは同期したエッジであり、かつしたがって前記識別されたＣＬＫエッジはバス動作のために使用できる。ＣＬＫＥＮ＊信号は周期的なものでも良くあるいは非周期的なものでもよい。（図示された）バスコントローラへのまたは該バスコントローラからのアドレス／データおよび制御は前記識別されたＣＬＫエッジに応答して転送される。
【００２６】
図２は、ＣＬＫＥＮ＊信号がどのようにして図２において総称的に「データ（ＤＡＴＡ）」と名付けられた入りおよび出制御／データ／アドレス情報に同期するかを示す。図２は、Ｄフリップフロップ１６およびＤフリップフロップ１８を示している。Ｄフリップフロップ１８は出力として使用されかつＤフリップフロップ１６は入力として使用される。フリップフロップ１６および１８が与えられれば、図２の回路は単一の入力／出力Ｉ／Ｏピンを形成するために選択的に多重化またはトライステート化できることが明らかである。さらに、技術的に他のフリップフロップおよび記憶要素が知られておりかつフリップフロップ１６および１８の代わりに使用できる。
【００２７】
ＣＬＫ信号はフリップフロップ１６および１８とＣＰＵ１２とに入力される。フリップフロップ１６および１８内のデータはＣＬＫＥＮ＊に結合された肯定されたＣＥ（クロックイネーブル）と共にクロック（ＣＬＫ）エッジが現れない限り変更されない。外部バスクロックのアクティブエッジの付近でのＣＬＫＥＮ＊の肯定によってプロセッサが、ＣＬＫ速度で内部データを処理しかつ内部プロセッサ動作を行なう一方で、「データ」を外部バス周波数で受信しかつ送信できるようにする。
【００２８】
図３は、いったんプロセッサが外部ＳＴＡＲＴ＊信号を受信すると前記ＣＬＫＥＮ＊信号が該プロセッサによって内部的に発生できることを示している。図３はＣＰＵ１２、バスコントローラ１４およびカウンタ／制御回路２０を示している。カウンタ／制御回路２０は入力として前記ＣＬＫおよび前記ＳＴＡＲＴ＊の外部信号を受信する。カウンタ／制御回路２０はＣＬＫ−外部バスクロック比を知るようにプログラムされるかあるいはＣＬＫ−外部バスクロック比を識別する情報を提供される。カウンタ／制御回路２０は外部バスクロックの１つのアクティブエッジを識別する外部ＳＴＡＲＴ＊信号の１つの肯定（ａｓｓｅｒｔｉｏｎ）を受信する。カウンタ／制御回路２０は次に前記比率情報を使用して外部ＳＴＡＲＴ＊をさらに必要とすることなくバス動作のために使用できるアクティブエッジを識別するために内部ＣＬＫＥＮ＊信号を連続的に発生する。
【００２９】
例えば、前記クロック（ＣＬＫ）が２０ＭＨｚで動作しておりかつ前記外部バスクロックが５ＭＨｚで動作しているものと仮定する。２０ＭＨｚ／５ＭＨｚの比率は４であり、かつしたがってバスは４分の１の動作モードで動作している。カウンタ／制御回路２０は外部バスクロックの各々のクロックサイクルに対しＣＬＫの４つのクロックサイクルが生じていることの情報を（「周波数データ（ＦＲＥＱＵＥＮＣＹ  ＤＡＴＡ）」によって）与えられている。周波数データは外部からデータプロセッサ１０へと前記アドレス／データ／制御バスを介して提供することができる。外部ＳＴＡＲＴ＊信号は前記第１の外部バスクロックのアクティブエッジを識別しかつカウンタ／制御回路２０はレジスタに例えば３の数をロードする。４つのクロックが経験され、この場合３が２に減分され、次に１に、次にゼロに減分される。いったんゼロに到達すると、４つのクロックサイクルが発生しておりかつカウンタ／制御回路２０は内部ＣＬＫＥＮ＊を肯定する。再び３がカウンタ／制御回路２０にロードされかつ内部ＣＬＫＥＮ＊の次の肯定を発生するためゼロへのカウントダウンの処理が再び開始される。減分または増分のいずれを使用することもできる。カウンタの代わりに、リングカウンタ、状態マシン（ｓｔａｔｅ  ｍａｃｈｉｎｅ）、または同様の記憶要素を使用して内部ＣＬＫＥＮ＊信号を発生することができる。また、カウンタまたはリングカウンタは内部ＣＬＫＥＮ＊の周期的なまたは非周期的な肯定を行なうためにプログラムすることができる。
【００３０】
図４は、データ処理システム内でフル、ハーフまたは４分の１のモードのバス動作を行なうための回路を示す。総称的に、図４は内部または外部ＣＬＫＥＮ＊信号を発生するために使用できる回路の一例を示す。最大速度（ｆｕｌｌ  ｓｐｅｅｄ）の動作（ＣＬＫＥＮ＊が絶えず肯定されている）については、ＨＡＬＦおよびＱＵＡＲＴＥＲ信号は共に絶えず否定されることになり、これは排他的ＮＯＲゲート１１０の出力が絶えず論理“１”に肯定されるようにする。この排他的ＮＯＲゲート１１０の出力からの連続的な論理“１”の出力はＮＯＲゲート１１６の出力が絶えず論理“０”に肯定されるようにするのに充分であり、前記論理“０”はＤフリップフロップ１１８を通ると（ｓｔａｇｅｄ）ＣＬＫＥＮ＊が絶えず論理“０”に肯定されるようにする。したがって、クロックＣＬＫのそれぞれのアクティブなクロックエッジ（この場合は、立上りエッジ）が使用されてバス動作を行ないかつバスとプロセッサとが等しい速度で動作する。
【００３１】
ＣＬＫ周期１つおきに（ハーフスピード動作）、またはＣＬＫ周期４つごとに（４分の１速度動作）ＣＬＫＥＮ＊の肯定を行なうために、前記ＳＴＡＲＴ＊入力の否定ポイントはハーフスピードまたはクオータスピードのシステムクロックの立上りエッジと一致する適切なＣＬＫエッジのすぐ前におけるＣＬＫＥＮ＊の肯定およびすぐ後におけるＣＬＫＥＮ＊の否定を適切に同期させるために重要である。言い換えれば、ＳＴＡＲＴ＊はＣＬＫＥＮ＊の肯定を整列するために使用され、それによってＣＬＫＥＮ＊信号がＣＬＫ信号のアクティブエッジ（この場合は、立上りエッジ）と一致するある時間の間肯定されるようにする。
【００３２】
この正しい動作およびＣＬＫＥＮ＊の同期を行なうために、Ｄフリップフロップ１００、１０１および１０２がＳＹＮＣ＊パルスを発生するために使用される。ＳＴＡＲＴ＊はＤフリップフロップ１００を通って１つのＣＬＫ周期だけ遅らされ（ｓｔａｇｅｄ）または遅延され、次にＤフリップフロップ１０１を通って遅らされまたは遅延され、そして最後にＤフリップフロップ１０２を通って遅らされまたは遅延される。Ｄフリップフロップ１００のＱ出力は次にＤフリップフロップ１０２の反転された出力とＡＮＤ演算されてＳＹＮＣ＊パルスを発生し、該パルスは初めにＳＴＡＲＴ＊が否定された後にＣＬＫの１周期だけ肯定され、ＣＬＫの２周期の間保持され、かつ次に否定される。
【００３３】
否定入力ＯＲゲート１０６およびＤフリップフロップ１０８および１０９は巡回型のフィードバック発振器を形成するが、それは否定入力ＯＲゲート１０６は反転要素として作用しかつＤフリップフロップ１０８および１０９は遅延要素を形成するからである。Ｄフリップフロップ１０８および１０９による２つのレベルの遅延により、Ｄフリップフロップ１０８および１０９の出力はＣＬＫ周波数の４分の１の周波数を有する。さらに、Ｄフリップフロップ１０８のＱ１出力はＤフリップフロップ１０９のＤ入力に接続されているから、Ｄフリップフロップ１０９の出力はＤフリップフロップ１０８の出力と位相がずれており、Ｄフリップフロップ１０９の出力はＤフリップフロップ１０８の出力に９０度、すなわち、ＣＬＫの１周期だけ遅れている。
【００３４】
前記ＳＹＮＣ＊信号は否定入力ＯＲゲート１０６の他の入力に接続されておりＤフリップフロップ１０８および１０９の出力とシステムクロックの立上りエッジと整列するＣＬＫの立上りエッジとの間の時間的な配置または関係を制御する。ＳＹＮＣ＊は２つのＣＬＫ周期の間肯定された状態に留まりかつ否定入力ＯＲゲート１０６の出力を論理“１”にする。これによる“１”のＤフリップフロップ１０８、および引続きＤフリップフロップ１０９への入力はＤフリップフロップ１０８および１０９の出力の発振シーケンスを前記ＳＹＮＣ＊パルスが肯定された時間に同期させる。半分または４分の１の速度の動作については、排他的ＯＲゲート１１０は論理“０”を出力することになるが、それは前記ＨＡＬＦまたはＱＵＡＲＴＥＲ信号のいずれかが肯定されるが両方ではないためである。したがって、排他的ＯＲゲート１１０の出力はＣＬＫＥＮ＊がこれらのクロック速度に対して肯定される時間に対して何らの影響ももたない。４分の１の速度の動作においては、ＨＡＬＦは否定されかつＡＮＤゲート１１４の出力は否定され、そしてＡＮＤゲート１１４の出力もまたＣＬＫＥＮ＊が肯定される時間に対して影響を与えない。４分の１および２分の１の速度の動作モードにおいては、ＡＮＤゲート１１２はＤフリップフロップ１０９の反転されたＱ出力、Ｑ２＊、をＤフリップフロップ１０８の非反転Ｑ出力、Ｑ１、と組合せる。
【００３５】
ＣＬＫＥＮ＊をＣＬＫの適切な立上りエッジおよびシステムクロックについて適切に同期させるために、ＳＴＡＲＴ＊はシステムクロックの立上りエッジと一致するＣＬＫの立上りエッジの直後に否定されなければならない。ＳＴＡＲＴ＊が否定された時、ＳＹＮＣ＊はＣＬＫの１周期後に肯定され、Ｑ１はＳＹＮＣ＊の肯定のＣＬＫ１周期後に肯定され、かつＱ２はＱ１の肯定よりＣＬＫ１周期後に肯定される。Ｑ１およびＱ２は５０％のデューティサイクルを有する周期的なものであり、かつＣＬＫの周波数の４分の１に等しい周波数で肯定および否定される。ＡＮＤゲート１１２の出力はＱ１が肯定されかつＱ２が否定されるたびごとに肯定される。これはＳＴＡＲＴ＊が否定された後の３番目のＣＬＫ周期で発生しかつＣＬＫの周波数の４分の１の周波数で周期的に発生する。ＡＮＤゲート１１２の出力はＣＬＫの１周期の間のみ肯定状態となるが、それはＱ２がＱ１にＣＬＫの１周期だけ遅れる、すなわち、ＡＮＤゲート１１２の出力は２５％のデューティサイクルを有しかつＣＬＫの周波数の４分の１の周期を有するからである。ＡＮＤゲート１１４の出力はＨＡＬＦの状態に依存し、もしＨＡＬＦが否定されていればこの出力は否定されることになる。ＡＮＤゲート１１４はＤフリップフロップ１０８の反転出力、Ｑ１、をＤフリップフロップ１０９の非反転出力、Ｑ２、と組合せる。ＡＮＤゲート１１４の出力は、ＨＡＬＦの肯定により、２分の１の速度のモードがイネーブルされた時およびＱ１が否定されかつＱ２が肯定された時にのみ肯定される。これは始めにＳＴＡＲＴ＊が否定された後の第５のＣＬＫ周期に発生しかつＣＬＫの周波数の４分の１の周波数で周期的に発生する。ＡＮＤゲート１１４の出力はＣＬＫの１周期のみの間肯定状態に留まり、それはＱ２はＱ１に対しＣＬＫの単一周期だけ遅れており、すなわち、ＡＮＤゲート１１４の出力は２５％のデューティサイクルおよびＣＬＫの周波数の４分の１の周期を有するからである。ＡＮＤゲート１１４の出力の肯定はＡＮＤゲート１１２の出力に対しＣＬＫ２周期分遅れることに注意を要する。
【００３６】
４分の１の速度のモードにおいては、ＡＮＤゲート１１２のみがアクティブになる。ＮＯＲゲート１１６はＡＮＤゲート１１２の出力を反転しかつそれをＤフリップフロップ１１８を通して遅らせる。ＡＮＤゲート１１２の出力はＳＴＡＲＴ＊が否定された時からＣＬＫの３周期後にスタートして肯定され、かつしたがってＣＬＫおよびシステムクロックのエッジが一致した時からＣＬＫ３周期後に肯定されるから、ＣＬＫとシステムクロックのエッジの次の整列よりもＣＬＫ１つ分前に肯定される。Ｄフリップフロップ１１８は次にＮＯＲゲート１１６の出力をＣＬＫの１周期だけ遅らせまたは遅延させてＣＬＫＥＮ＊を生成し、これはＣＬＫとシステムクロックのエッジが整列するＣＬＫ周期のすぐ前のＣＬＫ１周期の間肯定される。
【００３７】
２分の１の速度のモードにおいては、ＡＮＤゲート１１２および１１４は共にアクティブである。ＮＯＲゲート１１６はＡＮＤゲート１１２および１１４の出力をＯＲ演算しかつ反転してＣＬＫの周波数の半分の周波数を有する信号を生成しかつ次にこの信号をＤフリップフロップ１１８を通して遅らせる。ＡＮＤゲート１１２の出力はＳＴＡＲＴ＊が否定された時からＣＬＫ３周期分後に、かつしたがってＣＬＫおよびシステムクロックのエッジが一致した時からＣＬＫ３周期後にスタートして肯定されるから、それはＣＬＫおよびシステムクロックのエッジの２番目の整列の時よりＣＬＫ１つ分前に肯定される。Ｄフリップフロップ１１８は次にＮＯＲゲート１１６の出力をＣＬＫ１周期分だけ遅らせまたは遅延させてＣＬＫおよびシステムクロックのエッジが整列するＣＬＫ周期の直前のＣＬＫ１周期の間肯定されるＣＬＫＥＮ＊を生成する。ＡＮＤゲート１１４の出力はＳＴＡＲＴ＊が否定された後ＣＬＫ５周期肯定されるから、ＮＯＲゲート１１６の出力は２分の１の速度のモードでＣＬＫとシステムクロックのエッジが次に整列する時よりＣＬＫ１つ分前に肯定される。Ｄフリップフロップ１１８は再びＮＯＲゲート１１６の出力をＣＬＫ１周期分だけ遅らせまたは遅延させてＣＬＫとシステムクロックのエッジが整列するＣＬＫ周期の直前のＣＬＫ１周期の間肯定されるＣＬＫＥＮ＊を生成する。ＡＮＤゲート１１２および１１４の出力は周期的ではあるが位相がずれているため、ＮＯＲゲート１１６によるこれらの出力の組合せはＣＬＫＥＮ＊が２分の１の速度のモードにおいてＣＬＫ周期１つおきに肯定されるようにする。信号ＳＴＡＲＴ＊はリセットの機能とすることができ、ユーザが呼び出すことができ、その他とすることができることに注目することが重要である。
【００３８】
図５は、図４の回路のタイミング図を示す。ＣＬＫは内部プロセッサクロックでありかつ図５における外部バスクロックである。ＳＴＡＲＴ＊，ＳＹＮＣ＊，ＨＡＬＦ，ＱＵＡＲＴＥＲ，Ｑ１，Ｑ２，ＣＬＫおよびＣＬＫＥＮ＊は図４において示されかつ説明された。図５においては、バスはＣＬＫ内部クロックの速度に等しい周波数で動作している（すなわち、最大速度の動作）。この場合、内部ＣＬＫＥＮ＊信号は肯定されたアクティブローの値に保持され、それによってＣＬＫ信号のそれぞれのアクティブな立上りエッジがバス動作に使用される。前記内部ＣＬＫＥＮ＊信号は排他的ＮＯＲゲート１１０によって肯定状態に保持されるが、それはＨＡＬＦおよびＱＵＡＲＴＥＲ信号が共に最大速度のモードにおいてはロー（論理“０”）であるためである。
【００３９】
図６は、図４の回路に対する他のタイミング図を示す。ＳＹＳ＿ＣＬＫはシステムの外部バスクロックであり、一方ＣＬＫは内部プロセッサクロックである。ＳＴＡＲＴ＊，ＳＹＮＣ＊，ＨＡＬＦ，ＱＵＡＲＴＥＲ，Ｑ１，Ｑ２，ＣＬＫおよびＣＬＫＥＮ＊は図４において示されかつ説明された。図６においては、バスはＣＬＫ内部クロックの半分の周波数である周波数で動作している（すなわち、２分の１の速度の動作）。この場合、内部ＣＬＫＥＮ＊信号はＣＬＫ信号の１つおきの立上りのアクティブエッジがバスの使用のために選択されるようにトグルされる。内部ＣＬＫＥＮ＊信号はゲート１１０，１１２，１１４および１１６を介してトグル肯定されるが、それは前記ＨＡＬＦ信号が論理“１”でありかつ前記ＱＵＡＲＴＥＲ信号が論理“０”であるためにである。ＣＬＫＥＮ＊はＱ１およびＱ２が共に肯定されている場合にのみ肯定される。
【００４０】
図７は、図４の回路に対するさらに他のタイミング図を示す。ＳＹＳ＿ＣＬＫはシステムの外部バスクロックであり、一方ＣＬＫは内部プロセッサクロックである。ＳＴＡＲＴ＊，ＳＹＮＣ＊，ＨＡＬＦ，ＱＵＡＲＴＥＲ，Ｑ１，Ｑ２，ＣＬＫおよびＣＬＫＥＮ＊は図４において示されかつ説明された。図７においては、バスはＣＬＫ内部クロックの周波数の４分の１の周波数で動作している（すなわち、４分の１速度の動作）。この場合、内部ＣＬＫＥＮ＊信号はＣＬＫ信号の４つごとの立上りのアクティブエッジがバスの使用のために選択されるようにトグルされる。内部ＣＬＫＥＮ＊信号はゲート１１０，１１２，１１４および１１６を介してトグル肯定されるが、それは前記ＨＡＬＦ信号は論理“０”でありかつ前記ＱＵＡＲＴＥＲ信号は論理“１”であるためである。ＣＬＫＥＮ＊はＱ１およびＱ２の双方が共に肯定されている場合にのみ肯定される。
【００４１】
バスクロックとプロセッサクロックとの間の関係は動的に変化し得ることに注目することが重要である。例えば、システムはある時間の間２分の１の速度で動作しかつ他の時間の間最大速度で動作できるなどである。他の回路はＣＬＫＥＮ＊信号が外部バスクロック（ＳＹＳ＿ＣＬＫ）の立上りエッジと一致するプロセッサクロックの立上りエッジの前に肯定され、かつ外部バスクロックの立上りエッジと一致しないプロセッサクロックの全ての立上りエッジの前に否定されるように構成することができ、これもまた依然として本発明の精神および範囲内にある。
【００４２】
本発明が特定の実施例に関して図示されかつ説明されたが、当業者にはさらに他の修正および改善をなすことができる。例えば、バスのサイズおよび速度は大幅に変えることもできる。カウンタ／制御回路２０は同じ機能を維持するが、設計の上で変えることもできる。図４の回路は他の動作上のバス速度をサポートするために変更することができ、かつＣＬＫＥＮ＊の肯定において周期的、非周期的、ランダム、または擬似ランダムなものとすることができる。ここに教示されたデータプロセッサの出力はそれらがいくつかの場合においてＣＬＫＥＮ＊クロックエッジに同期しない時間インターバルで状態を変えるように設計できることに注目することが重要である。したがって、この発明は示された特定の形式に限定されるものではなく、かつ添付の特許請求の範囲においてこの発明の精神および範囲から離れることのない全ての修正をカバーすることを意図していることを理解すべきである。
【００４３】
【発明の効果】
以上のように、本発明によれば、簡単な回路構成および低コストでかつ回路および処理の複雑さを増大することなく、しかも動作周波数の制約なしに、マイクロプロセッサユニット（ＭＰＵ）がプロセッサ（ＭＰＵ）の周波数より低いバス周波数をサポートできるようにすることができる。
【図面の簡単な説明】
【図１】本発明に係わるデータ処理システムを示すブロック図である。
【図２】本発明に係わる他のデータ処理システムを示すブロック図である。
【図３】本発明に係わるさらに他のデータ処理システムを示すブロック図である。
【図４】本発明にしたがってデータプロセッサのクロックの４分の１および２分の１の速度でバスを動作させるための制御回路を示すブロック図である。
【図５】図４の回路によって最大のマイクロプロセッサのクロック速度でのバス動作を示すタイミング図である。
【図６】図４に示された回路において２分の１のマイクロプロセッサのクロック速度でのバス動作を示すタイミング図である。
【図７】図４に示された回路において４分の１のマイクロプロセッサのクロック速度でのバス動作を示すタイミング図である。
【符号の説明】
１０  データプロセッサ
１２  ＣＰＵ
１４  バスコントローラ
１６，１８  Ｄフリップフロップ
２０  カウンタ／制御回路
１００，１０１，１０２，１０８，１０９，１１８  Ｄフリップフロップ
１０４  ＮＡＮＤゲート
１０６  否定入力ＯＲゲート
１１０  排他的ＯＲゲート
１１２，１１４  ＡＮＤゲート
１１６  ＮＯＲゲート
【図１】
0003739431.tif 000002
【図２】
0003739431.tif 000003
【図３】
0003739431.tif 000004
【図４】
0003739431.tif 000005
【図５】
0003739431.tif 000006
【図６】
0003739431.tif 000007
【図７】
0003739431.tif 000008