(57)【特許請求の範囲】
【請求項１】
バスクロック周波数で動作するバスと、チップクロック周波数で動作する回路ブロックとの間でデータ通信するデータ通信システムであって、
前記バス上のデータ転送の同期をとるのに使用される前記バスクロック周波数でバスクロック信号を生成し、前記回路ブロックに提供される前記チップクロック周波数でチップクロック信号を生成するクロック発生器と、
前記クロック発生器に接続され、前記チップクロック信号のＮサイクルごとに１つの書き込み禁止サイクル信号を生成し、前記チップクロック信号のＮサイクルごとに１つの読み出し禁止サイクル信号を生成する同期回路と、
前記バス、前記回路ブロック、前記バスクロック信号、前記チップクロック信号、前記書き込み禁止サイクル信号および前記読み出し禁止サイクル信号に接続されたインターフェース回路と、を備え、
前記バスクロック周波数および前記チップクロック周波数は、（Ｎ−１）：Ｎの比率を有しており、Ｎは１より大きい整数であり、前記チップクロック信号および前記バスクロック信号が、前記チップクロックのＮサイクルごとに１回、予め決められた位相関係に同期され、
前記インターフェース回路は、前記回路ブロックに提供される前記チップクロック信号のいかなるサイクルをもスキップすることなく、前記書き込み禁止サイクル信号によって特定されるサイクルを除き、前記チップクロックの任意のサイクルにおいて、前記回路ブロックから該インターフェース回路を介して前記バスにデータを転送することができ、さらに、前記読み出し禁止サイクル信号によって特定されるサイクルを除き、前記チップクロックの任意のサイクルにおいて、前記バスから該インターフェース回路を介して前記回路ブロックにデータを転送することができるよう構成されており、
前記書き込みサイクル禁止信号により特定されるサイクルは、前記バスが受け取るべきデータが、前記インターフェース回路内で、次のサイクルで前記回路ブロックから送出される他のデータに置き換えられるために、前記回路ブロックが該データを送出することができないサイクルであり、
前記読み出しサイクル禁止信号により特定されるサイクルは、前記回路ブロックが受け取るべきデータが前記インターフェース回路に存在しないために、該回路ブロックが該データを受け取ることができないサイクルであり、
前記バスクロック周波数と前記チップクロック周波数が（Ｎ−１）：Ｎである時、前記書き込み禁止サイクル信号および読み出し禁止サイクル信号によって特定される前記サイクルは、前記予め決められた位相関係に同期される時点に対し、前記Ｎの値とは無関係に決まる、データ通信システム。
【請求項２】
前記書き込み禁止サイクル信号によって特定されるサイクルが、前記チップクロック信号および前記バスクロック信号が前記予め決められた位相関係に同期される時点より２チップクロック・サイクル前であり、前記読み出し禁止サイクル信号によって特定されるサイクルは、前記チップクロック信号および前記バスクロック信号が前記予め決められた位相関係に同期される時点より２チップクロック・サイクル後である、請求項１に記載のデータ通信システム。
【請求項３】
バスクロック周波数で動作するバスから、チップクロック周波数で動作する回路ブロックにデータを伝達するデータ通信システムであって、
前記バス上のデータ転送の同期をとるのに使用される前記バスクロック周波数でバスクロック信号を生成し、前記回路ブロックに提供される前記チップクロック周波数でチップクロック信号を生成するクロック発生器と、
前記クロック発生器に接続され、前記チップクロック信号のＮサイクルごとに１つの読み出し禁止サイクル信号を生成する同期回路と、
前記バス、前記回路ブロック、前記バスクロック信号、前記チップクロック信号および前記読み出し禁止サイクル信号に接続されたインターフェース回路と、を備え、
前記バスクロック周波数および前記チップクロック周波数は、互いに対して（Ｎ−１）：Ｎの比率を有しており、Ｎは１より大きい整数であり、前記チップクロック信号および前記バスクロック信号が、前記チップクロックのＮサイクルごとに１回、予め決められた位相関係に同期され、
前記インターフェース回路は、前記回路ブロックに提供される前記チップクロック信号のいかなるサイクルをもスキップすることなく、前記読み出し禁止サイクル信号によって特定されるサイクルを除き、前記チップクロックの任意のサイクルの間に、前記バスから該インターフェース回路を介して前記回路ブロックにデータを転送することができ、
前記読み出しサイクル禁止信号により特定されるサイクルは、前記回路ブロックが受け取るべきデータが前記インターフェース回路に存在しないために、該回路ブロックが該データを受け取ることができないサイクルであり、
前記バスクロック周波数と前記チップクロック周波数が（Ｎ−１）：Ｎである時、前記読み出し禁止サイクル信号によって特定される前記サイクルは、前記予め決められた位相関係に同期される時点に対し、前記Ｎの値とは無関係に決まる、データ通信システム。
【請求項４】
前記読み出し禁止サイクル信号によって特定されるサイクルは、前記チップクロック信号および前記バスクロック信号が前記予め決められた位相関係に同期される時点より２チップクロック・サイクル後である、請求項３に記載のデータ通信システム。
【請求項５】
チップクロック周波数で動作する回路ブロックから、バスクロック周波数で動作するバスにデータを伝達するデータ通信システムであって、
前記バス上のデータ転送の同期をとるのに使用される前記バスクロック周波数でバスクロック信号を生成し、前記回路ブロックに提供される前記チップクロック周波数でチップクロック信号を生成するクロック発生器と、
前記クロック発生器に接続され、前記チップクロック信号のＮサイクルごとに１つの書き込み禁止サイクル信号生成する同期回路と、
前記バス、前記回路ブロック、前記バスクロック信号、前記チップクロック信号および前記書き込み禁止サイクル信号に接続されたインターフェース回路と、を備え、
前記バスクロック周波数および前記チップクロック周波数は、互いに対して（Ｎ−１）：Ｎの比率を有しており、Ｎは１より大きい整数であり、前記チップクロック信号および前記バスクロック信号が、前記チップクロックのＮサイクルごとに１回、予め決められた位相関係に同期され、
前記インターフェース回路は、前記回路ブロックに提供される前記チップクロック信号のいかなるサイクルをもスキップすることなく、前記書き込み禁止サイクル信号によって特定されるサイクルを除き、前記チップクロックの任意のサイクルの間に、前記回路ブロックから該インターフェース回路を介して前記バスにデータを転送することができ、
前記書き込みサイクル禁止信号により特定されるサイクルは、前記バスが受け取るべきデータが、前記インターフェース回路内で、次のサイクルで前記回路ブロックから送出される他のデータに置き換えられるために、前記回路ブロックが該データを送出することができないサイクルであり、
前記バスクロック周波数と前記チップクロック周波数が（Ｎ−１）：Ｎである時、前記書き込み禁止サイクル信号によって特定される前記サイクルは、前記予め決められた位相関係に同期される時点に対し、前記Ｎの値とは無関係に決まる、
データ通信システム。
【請求項６】
前記書き込み禁止サイクル信号によって特定されるサイクルが、前記チップクロック信号および前記バスクロック信号が前記予め決められた位相関係に同期される時点より２チップクロック・サイクル前である、請求項５に記載のデータ通信システム。
【請求項７】
バスクロック信号によりバス周波数でクロックされるバスと、チップクロック信号によりチップ周波数でクロックされる回路ブロックとの間でデータ通信する方法であって、
前記バス周波数の前記チップ周波数に対する比率は（Ｎ−１）：Ｎであり、Ｎは１より大きい整数であり、前記チップクロック信号および前記バスクロック信号は、該チップクロックのＮサイクルごとに１回、予め決められた位相関係に同期され、
入力転送ラッチ回路は、前記バスおよび前記回路ブロックの間に接続され、前記バスから前記回路ブロックへのデータを転送し、
出力転送ラッチ回路は、前記バスおよび前記回路ブロックの間に接続され、前記回路ブロックから前記バスへのデータを転送し、
前記チップクロック信号のＮサイクルごとに該チップクロック信号の書き込み禁止サイクルを識別するステップと、
前記チップクロック信号のＮサイクルごとに該チップクロック信号の読み出し禁止サイクルを識別するステップと、
前記回路ブロックに提供されるチップクロックのいずれのサイクルをもスキップすることなく、前記書き込み禁止サイクルを除き、前記チップクロック信号の任意のサイクルの間に、前記回路ブロックから前記出力転送ラッチ回路にデータを転送するステップと、
前記バスクロックの任意のサイクルの間に、前記出力転送ラッチ回路から前記バスにデータを転送するステップと、
前記バスクロックの任意のサイクルの間に、前記バスから前記入力転送ラッチ回路にデータを転送するステップと、
前記回路ブロックに提供されるチップクロックのいずれのサイクルをもスキップすることなく、前記読み出し禁止サイクルを除き、前記チップクロック信号の任意のサイクルの間に、前記入力転送ラッチ回路からデータを転送するステップと、を含み、
前記書き込みサイクル禁止信号により特定されるサイクルは、前記バスが受け取るべきデータが、前記出力転送ラッチ回路内で、次のサイクルで前記回路ブロックから送出される他のデータに置き換えられるために、前記回路ブロックが該データを送出することができないサイクルであり、
前記読み出しサイクル禁止信号により特定されるサイクルは、前記回路ブロックが受け取るべきデータが前記入力転送ラッチ回路に存在しないために、該回路ブロックが該データを受け取ることができないサイクルであり、
前記バス周波数と前記チップ周波数が（Ｎ−１）：Ｎである時、前記書き込み禁止サイクル信号および読み出し禁止サイクル信号によって特定される前記サイクルは、前記予め決められた位相関係に同期される時点に対し、前記Ｎの値とは無関係に決まる、
データ通信する方法。
【請求項８】
バスクロック信号によってバス周波数でクロックされるバスから、チップクロック信号によってチップ周波数でクロックされる回路ブロックに、インターフェース回路を介してデータ通信する方法であって、
前記バス周波数の前記チップ周波数に対する比率は（Ｎ−１）：Ｎであり、Ｎは１より大きい整数であり、
前記チップクロック信号および前記バスクロック信号は、該チップクロックのＮサイクルごとに１回予め決められた位相関係に同期され、
前記チップクロック信号のＮサイクルごとに該チップクロック信号の読み出し禁止サイクルを識別するステップと、
前記回路ブロックに提供される前記チップクロックのいずれのサイクルをもスキップすることなく、前記読み出し禁止サイクルを除いて、前記チップクロック信号の任意のサイクルの間に、前記バスから前記回路ブロックにデータを転送するステップと、を含み、
前記読み出しサイクル禁止信号により特定されるサイクルは、前記回路ブロックが受け取るべきデータが前記インターフェース回路に存在しないために、該回路ブロックが該データを受け取ることができないサイクルであり、
前記バスクロック周波数と前記チップクロック周波数が（Ｎ−１）：Ｎである時、前記読み出し禁止サイクル信号によって特定される前記サイクルは、前記予め決められた位相関係に同期される時点に対し、前記Ｎの値とは無関係に決まる、
データ通信する方法。
【請求項９】
チップクロック信号によってチップ周波数でクロックされる回路ブロックから、バスクロック信号によってバス周波数でクロックされるバスに、インターフェース回路を介してデータ通信する方法であって、
前記バス周波数の前記チップ周波数に対する比率は（Ｎ−１）：Ｎであり、Ｎは１より大きい整数であり、
前記チップクロック信号および前記バスクロック信号は、該チップクロックのＮサイクルごとに１回予め決められた位相関係に同期され、
前記チップクロック信号のＮサイクルごとに該チップクロック信号の書き込み禁止サイクルを識別するステップと、
前記回路ブロックに提供される前記チップクロックのいずれのサイクルをもスキップすることなく、前記書き込み禁止サイクルを除いて、前記チップクロック信号の任意のサイクルの間に、前記回路ブロックから前記バスにデータを転送するステップと、を含み、
前記書き込みサイクル禁止信号により特定されるサイクルは、前記バスが受け取るべきデータが、前記インターフェース回路内で、次のサイクルで前記回路ブロックから送出される他のデータに置き換えられるために、前記回路ブロックが該データを送出することができないサイクルであり、
前記バスクロック周波数と前記チップクロック周波数が（Ｎ−１）：Ｎである時、前記書き込み禁止サイクル信号によって特定される前記サイクルは、前記予め決められた位相関係に同期される時点に対し、前記Ｎの値とは無関係に決まる、データ通信する方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、バスに接続された複数のチップまたは回路ブロックから構成された電子回路に関し、より詳細には、チップをバスのクロックに同期させる改良したデータ通信装置に関する。
【０００２】
【従来の技術】
コンピュータ等の電子装置の多くは、同期バスとインターフェースで接続された複数のチップから構成されている。様々なチップとバスの間のデータの転送はバスのクロックに同期しており、バスのクロックの最高速度はバスの電気的特性によって決まる。
【０００３】
多くの場合、チップは、バスが耐えられる速度よりもかなり高速のクロック速度で動作することができる。チップの内部速度はチップ内の導線の長さとチップ内の様々な寄生キャパシタンスによって制限される。チップ内の信号伝搬距離はバス上の信号伝搬距離よりもはるかに小さいため、チップはしばしばバスよりもはるかに高速で動作することができる。それぞれのバスのサイクルにおいてチップがデータをバスへまたはバスから転送する必要がなければ、チップをバスのクロック速度を超えるクロック速度で動作させることによって、速度面でかなりの利点を得ることができる。
【０００４】
マイクロプロセッサのチップが内部でバスの速度の倍数の速度で動作するコンピュータ装置が、従来技術に知られている。たとえば、バスの速度の２倍のクロック速度でマイクロプロセッサが動作する装置が商業的に入手可能である。マイクロプロセッサにおいては命令を実行するのにいくつか内部クロック・サイクルが必要となるかもしれないので、マイクロプロセッサをバスのクロックよりも高速で動作することができれば、結果としてこのような命令の実行に要する時間をかなり減少することができる。
【０００５】
【発明が解決しようとする課題】
あいにく、このようなマイクロプロセッサの装置はバスのクロックの一定の整数倍の速度でしか動作することができない。チップのクロックとバスのクロックの最適の比率は装置のパラメータによって決まる。非常に高速のバスを有する装置においては、より低速のバスを有する装置においてよりも最適の比率が小さくなる。上に説明したマイクロプロセッサ等の従来技術の同期システムにおいては、チップ速度とバス速度のいくつかの一定比率を実施するためには、異なるチップ、または少なくともバス論理回路をつけ加えることが必要である。多数の異なるチップを備えようとするとコストが高すぎて無理である。それゆえ、最適の比率が達成されることはめったにない。
【０００６】
内部でバスとチップの間でデータが非同期で転送される装置では、チップの内部クロックはバスの速度に関していかなる速度でも自由に動作するため、このような問題は回避される。しかしあいにく、こういった装置においてははるかに複雑なバスのインターフェースのハードウェアが必要である。さらに、非同期の装置においては、装置の動作のタイミングはいつも予測することはできない。このようにタイミングが不明であることによって、命令実行順序が予測可能であることを頼みにしている多重プロセッサの装置において問題が起こる可能性がある。
【０００７】
大まかに言えば、本発明の目的は、チップをバスに同期させて改良したデータ通信装置を提供することである。
【０００８】
本発明の他の目的は、いかなる与えられたバスの速度に対しても複数の異なるクロック速度でチップが動作することのできる同期バスのインターフェースを適用したデータ通信装置を提供することである。
【０００９】
本発明のこれらの及び他の目的は、以下の本発明の詳細な説明と添付の図面より、当業者に明らかになるであろう。
【００１０】
【課題を解決するための手段】
本発明は、第１のクロック周波数で動作しているバスと第２のクロック周波数でバスに同期して動作している回路ブロックの間でデータの通信を行うデータ通信装置である。データ通信装置は、第１のクロック周波数でバスのクロック信号を、第２のクロック周波数でチップのクロック信号を発生し、第１および第２のクロック周波数が（Ｎ−１）：Ｎの比率であるクロック発生器を含む。ここで、Ｎは１より大きい整数である。バスとチップのクロック信号はチップのクロック信号のＮサイクルごとに１回同期する。クロック発生器はまた、バスとチップのクロック信号が同期しているときのチップのクロック信号のサイクルを示す同期信号を発生する。回路ブロックはバス上のデータを受け取り転送するインターフェース回路を含む。装置はまた、それぞれの回路ブロックに接続されて、Ｎ個のチップのクロックサイクルの連続したブロックのそれぞれにそれぞれのタイプが１つ存在する、回路ブロックがデータをバス上に転送することができないチップのクロック信号のサイクルと回路ブロックがデータをバスから受け取ることができないチップのクロック信号のサイクル、を識別する回路を含む。さらに、本発明によれば、複雑さを増大したり性能を低下させることなくバス対チップのクロックの比率を１：１にすることができる。
【００１１】
【実施例】
本発明は図１を参照するとより容易に理解できるであろう。図１は、クロック周波数に同期するバス１１に接続された回路ブロックを構成するチップ１５のブロック図である。チップ１５はチップのクロックがセットする周波数で動作する。バス１１はバスのクロック信号がセットする周波数で動作する。バスのクロック周波数は、一般的にチップのクロック周波数と等しいかそれよりも低い。チップとバスのクロック信号はともにクロック発生器１２内の単一のクロック水晶から取り出される。本発明において、チップのクロック周波数はバスのクロック周波数に等しいかバスのクロック周波数とＮ：（Ｎ−１）の比率の関係にある。ただしＮは１より大きい整数である。つまり、チップのクロック周波数とバスのクロック周波数との比率としては、２：１、３：２、４：３、等があり得る。以下により詳細に説明するとおり、チップとバスのクロック信号が同じ周波数である場合もまた、本発明に適応することができる。
【００１２】
チップとバスのクロック信号が４：３の比率である場合を考える。チップ処理回路１３はチップのクロック速度で動作する。しかし、チップ１５はバスのクロック信号をベースにしてデータを受け取り転送する。図１に示すチップ１５の実施例において、データは、データをバス領域とチップ領域の間で移動するインターフェース回路１４を通して、バスとチップの間を転送される。このインターフェース回路が動作する方法については、以下により詳細に説明する。
【００１３】
チップの４クロックサイクルごとに、バスのクロックサイクルが３つだけある。それゆえ、チップ１５がバスから新しいデータを受け取ることができないチップのクロックサイクルが少なくとも４つに１つあるはずであり、チップ１５がバス上に新しいデータを転送することができないチップのクロックサイクルが少なくとも４つに１つあるはずである、というのも、対応するバスの３クロックサイクルにおいて、データラインにつき多くとも３つのデータビットしか転送されず、または受け取ることができないからである。
【００１４】
本発明は、クロック周波数の比率がＮ：（Ｎ−１）のときにはデータがチップとバスの間で読み出したり書き込んだりすることができないチップのサイクルはＮの値と無関係である、という観察の結果をベースにしている。次に図２を参照する。図２は、チップとバスのクロック周波数が４：３の比率である場合の各チップとバスのクロック信号の関係を示す。クロックパルスは、バスの３クロックパルスごとにチップの４クロックパルスが対応する、反復するグループになって生じる。破線で示すとおり、チップの４クロックパルスごとに１回、２つのクロックの立ち上がりエッジが一致する。以下の説明において、データはそれぞれのクロックパルスの立ち上がりエッジで計時されてインターフェース１４内のラッチやレジスタに保持されると仮定する。また、データはラッチの使用可能入力が高レベルのときに該ラッチを通り抜け、使用可能信号の立ち下がりエッジでラッチ内に保留されると仮定する。チップ１５がチップのクロック信号が決定した時間２０においてデータを送り出すと、時間２１においてデータはバスに接続されたラッチによって受け取られる。時間２２においてチップ処理回路１３を離れていく出発データはチップのクロック信号が低レベルのときにインターフェース１４を通り抜け時間２３においてバス上に送り出され、時間２５においてデータは他のチップによってバス上に受け取られる。しかし、３番目のチップのクロックパルスの後半、すなわち時間２４においてデータが計時されてラッチ１４に保持されると、データはデータが時間２５においてバス上に送り出される前に時間２６において計時が開始されたデータと交換される。それゆえ、データは時間２４においてチップのクロックパルス上に送り出すことはできない。
【００１５】
次に、データがチップ１５に読み込まれる場合を考える。時間２５において他のチップによりバス上に置かれたデータは時間２７まで読み込むことができない。しかし、これは時間２８において示すチップのクロック・パルスが開始した後である。それゆえ、このデータは時間２９までチップ１５によって読み込むことはできない。時間２３においてバス上に置かれたデータは時間３１において読み込むことができる。それゆえ、時間２８においてはいかなるデータもバスから読み込むことができない。なお、データが送り出されたり受け取られることができないチップのタイム・スロット（ｔｈｅ  ｔｉｍｅ  ｃｈｉｐ  ｔｉｍｅ  ｓｌｏｔｓ）は、それぞれ、２つのクロックの同期点からチップの２クロック・サイクル前と、２つのクロックの同期点からチップの２クロックサイクル後である。これはＮの値と真に無関係であるということを示すことができる。それゆえ、チップ１５が同期点が生じるところを決定することができれば、他のいかなる情報もなしで問題の２つのサイクルを常に識別することができる。
【００１６】
本発明の好適な実施例において、チップ１５はクロック発生器１２が発生する同期信号を受け取る。同期信号は同期処理回路１６に同期がとれるチップのサイクルを知らせる。たとえば、同期信号は、同期が起こる前にチップの所定のクロック・サイクル数を送り出される。同期処理回路１６は、好ましくは、チップ上の他の回路、すなわち、チップ処理回路１３が受け取りおよび転送禁止タイムスロットの間データを受け取ったり転送しようとすることを防ぐ、送り出しおよび受け取り禁止信号を発生する。
【００１７】
次に、インターフェース１４の動作についてより詳細に説明する。
インターフェース１４の回路の複雑さは、Ｎの最大値によって決まる。Ｎが４以下である場合が最も簡単であるので、この場合をまず説明する。本発明によるインターフェース回路３０のブロック図である図３を参照する。インターフェース回路３０は２つの領域に分けることができる。１つは、その信号をＣＣＫで示すチップのクロックと同期して動作するチップの領域であり、もう１つは、その信号をＵＣＫで示すバスのクロックに制御されるバスの領域である。チップ上のパッド３６が用いられてバスと物理的に接続される。
【００１８】
出発データがラッチ３１内に置かれる。データはラッチ３１から、好ましくはバスのクロック信号によって制御されるフリップ・フロップでエッジがトリガされたレジスタ３３のＤ入力に読み込まれる。バッファ３５が用いられてレジスタ３３の出力からバスのラインを離す。同様に、バスからの到着データが、好ましくはバスのクロックが制御するエッジでトリガしたフリップ・フロップであるレジスタ３４のＤ入力に読み込まれる。データはチップのクロックからはずれて動作するラッチ３２を通してチップの領域に転送される。
【００１９】
Ｎ＝４について最悪の場合のタイミングが生じる（すなわち、時間２２に始まる）とき、ラッチとレジスタの対の間にデータが移った後で、新しいデータが、該ラッチとレジスタの対の入力段階に移る。たとえば、ラッチ３１に前に読み込まれていて現在ラッチ３１のＱ出力上にある出発データは、時間２１におけるＵＣＫの立ち上がりエッジ区間においてレジスタ３３のＱ出力に転送される。その後、時間２２後のＣＣＫの次の立ち下がりエッジにおいて、新しいデータがラッチ３１への入力に到達する。
【００２０】
あいにく、Ｎ＞４のときには、図３に示す簡単なラッチ／フリップ・フロップの配置は信頼性がない、というのも、ＵＣＫとＣＣＫの間に重なりがあるからである。Ｎ＝５での最悪の場合を考えると、丁度ラッチ３１が開いてその出力をその入力のところの新しいデータに変えるときにＵＣＫがデータを計時してレジスタ３３内に保持するデータのサイクルがある。このような事態になると、ＵＣＫの立ち上がりとＣＣＫの立ち下がりの間に競合が生じる。それゆえ、レジスタ３３が正確なデータを受け取るという保証がない。この事態は、Ｎが大きくなるほど悪化する。
【００２１】
この競合の問題を避けるために、Ｎ＞４である装置は好ましくは図４において４０で示すインターフェース回路を利用する。バスに接続された２つのチップ間のデータ転送を考える。データが生じるチップの領域はセンダと呼び、データが転送されるチップの領域はレシーバと呼ぶこととする。同期が行われる基本的なしくみには、センダのクロックを特定の場所で発生する同期信号でゲートしてレシーバのラッチが更新しているときはいつでもセンダのラッチの出力は定常のままであるようにすることが含まれる。センダのラッチは、レシーバのラッチが更新していないときのみに更新する。しかし、センダとレシーバのクロックが同期しているときは、これは立ち上がりエッジが同時である場合だが、センダのラッチもレシーバのラッチもともに同時に更新することができる。このことにより、レシーバのデータは確実に、常に安定してセンダが転送しようとするデータと調和する。
【００２２】
インターフェース回路４０において、図３に示すレジスタ３４は１対のラッチ５１、５２に分けられる。制御回路５５は、ラッチ５１のデータがラッチ５２からの新しいデータが受け取られるまでにラッチ４２により捕捉されると仮定する。制御回路５５は、ＮＲＳＹＮＣと称する信号がハイ（ＨＩＧＨ）であるときに、そしてそのときだけセンダのクロックの立ち下がりエッジにおいてロー（ＬＯＷ）にセットされる、制御回路のフリップ・フロップを含む。制御回路のフリップ・フロップは、レシーバのクロックの立ち下がりエッジにおいて無条件にハイにクリアされる。制御回路のフリップ・フロップはまた、ＮＲＳＹＮＣがローの時にもハイにクリアされる。以下により詳細に説明するとおり、２つの周波数領域からのクロックのエッジが同時であるときにはＮＲＳＹＮＣはローであるので、制御回路のフリップ・フロップにより、クロックのエッジが同時になるときにセンダとレシーバの領域のラッチを同時に更新することができる。エッジが同時に来ないときには、制御回路のフリップ・フロップが、センダの領域のラッチがその内容を更新する前にレシーバの領域のラッチが更新を完了する（すなわち、そのクロックのエッジが立ち下がる）ことを保証する。
【００２３】
回路の性能を最高にするために、到着パスに沿った転送ラッチ、すなわちラッチ４２の物理的実施はチップ１５内の宛先において行われる。これにより、レシーバのクロック領域におけるデータのラッチが重複することがなくなる。同様に、制御回路５６は、レジスタ４３が確実に、ラッチ４１から新しいデータを読み込む前にデータの計時を終了することを確実にする。
【００２４】
制御回路は、ＣＣＫとＵＣＫの立ち上がりエッジが同時であるときをチップに知らせる単一のＵＳＹＮＣから発生する、ＮＤＳＹＮＣとＮＲＳＹＮＣの信号を利用する。ＮＤＳＹＮＣは、ＣＣＫとＵＣＫのエッジが同時に来る１サイクル前からＣＣＫとＵＣＫのエッジが同時に来てから１サイクル後のＣＣＫの立ち下がりエッジまで、ＣＣＫの立ち上がりエッジからローになる。ＮＲＳＹＮＣは、ＣＣＫとＵＣＫのエッジが同時に来る１／２サイクル前からＣＣＫとＵＣＫのエッジが同時に来てから２回目のＣＣＫの立ち下がりエッジまで、ＣＣＫの立ち下がりエッジからローになる。
【００２５】
上記のように、バスとチップのクロックが同じ周波数で動作する環境において本発明にしたがいチップを動作することもできるということは有利である。この動作モードは、以下の説明では無比率（non-ratioed）モードと呼ぶことにする。図４に示すインターフェース回路は、制御回路５５と５６の出力が常にハイであるときにはこの動作を行うことができる。これは、この動作モードにおいてＮＤＳＹＮＣとＮＲＳＹＮＣをローにすることによって達成することができる。本発明の好適な実施例において、それぞれのチップは同期入力を用いて無比率動作、すなわちチップとバスのクロックが同じであることを検出する。ＮＤＳＹＮＣ／ＮＲＳＹＮＣの信号を発生するチップ上の回路がこの入力が周期的でないことを決定してこれらの信号を適切な値にして無比率動作を行うようにする。この場合において、制御回路５６により、無比率モードで動作しているときセンダのクロックのエッジにおいてレシーバのクロック領域にデータを転送するのを待つ必要がなくなる。それゆえ、無比率の動作において、回路の性能はその最高レベルに維持される。
【００２６】
無比率の動作において、図１に示す送り出しおよび受け取り禁止信号もまた使用禁止にされねばならない。これは、本発明の同期信号入力を接地することによって達成される。同期信号が全く受け取られなければ、送り出しおよび受け取り禁止信号は発生しない。その結果、チップはそれぞれのクロック・サイクルにおいてデータを送り出し受け取る。
【００２７】
本発明の好適な実施例は外部同期信号を利用して２つのクロックが同期する点を規定しているが、当業者には他の方法も用いることができることが明白である。たとえば、それぞれのチップは、チップとチップが受け取るバスのクロック信号とを比較することによって同期点を検出することもできる。しかし、この方法であれば、それぞれのチップにおいてこの回路が重複することが必要である。回路をつけ加えることによってコストが上がると、この方法の魅力が薄れる。さらに、１：１の周波数を有するクロック比率の動作を行う何か別の方法も必要である。
【００２８】
当業者であれば、前記の説明と添付の図面より本発明の様々の修正が明白になるであろう。したがって、本発明は特許請求の範囲によってのみ限定されるものである。
【００２９】
以上、本発明の各実施例について詳述したが、ここで各実施例の理解を容易にするために各実施例ごとに要約して、以下に列挙する。
【００３０】
１．  第１のクロック周波数で動くバス［１１］と前記バス［１１］と同期して第２のクロック周波数で動作する回路ブロック［１５］の間でデータの通信を行うデータ通信装置であって、
前記第１のクロック周波数のバスのクロック信号と前記第２のクロック周波数のチップのクロック信号を発生し、前記第１および第２のクロック周波数が（Ｎ−１）：Ｎ、ただしＮは１より大きい整数の比率であり、前記バスとチップのクロック信号が前記チップのクロック信号のＮサイクルごとに１回同期する、クロック発生手段［１２］、
前記バスとチップのクロック信号が同期する前記チップのクロック信号のサイクルを示す同期信号を発生する手段［１２］、
前記回路ブロック［１５］に接続され、前記バス［１１］からのデータを受け取る手段［１４］、
前記回路ブロック［１５］に接続され、前記バス［１１］上にデータを転送する手段［１４］、
前記回路ブロック［１５］に接続され、データが前記回路ブロック［１５］により前記バス［１１］上に転送されることができない、Ｎ個の前記チップのクロックサイクルの連続したブロックのそれぞれに１つ存在するチップのクロック信号のサイクルを識別する手段［１６］、
前記回路ブロック［１５］に接続され、新しいデータを前記バス［１１］から全く受け取ることができない、Ｎ個の前記チップのクロックサイクルの連続したブロックのそれぞれに１つ存在するチップのクロック信号のサイクルを識別する手段、
を含むデータ通信装置である。
【００３１】
２．  前記受け取る手段が、
前記バス［１１］からデータを受け取るよう接続され前記バスのクロック信号に同期する第１のレジスタ［３４］、
前記チップのクロック信号に同期するラッチ［３２］
を含む上記１に記載のデータ通信装置である。
【００３２】
３．  前記第１のレジスタが、
前記バスのクロック信号に応答して前記バス［１１］からデータを読み出す第１のラッチ［５２］、
前記第１のラッチと直列であり、転送信号に応答して前記第１のラッチ［５２］からデータを受け取り、前記第１のラッチ［５２］が変化している間更新を妨げられるようになっている第２のラッチ［５１］
を含む上記２に記載のデータ通信装置である。
【００３３】
４．  前記転送する手段が、
前記チップのクロック信号に同期し、前記回路ブロック［１５］からデータを受け取るよう接続されたラッチ［３１、４１］、
前記バス［１１］上にデータを転送するよう接続され、前記バスのクロック信号に同期し前記ラッチ［３１、４１］の出力に接続された第１のレジスタ［３３、４３］、
を含む上記１に記載のデータ通信装置である。
【００３４】
５．  前記ラッチ［３１、４１］に接続され、前記レジスタ［４３］が変化する状態のときに前記ラッチの更新を妨げる手段［５６］をさらに含む上記４に記載のデータ通信装置である。
【００３５】
【発明の効果】
以上のように、本発明によれば、クロック発生手段で第１のクロック周波数でバスのクロック信号を発生して第２のクロック周波数でチップのクロック信号を発生し、第１と第２のクロック周波数が（Ｎ−１）：Ｎ（Ｎは１より大きい整数）の比率となし、バスとチップのクロック信号はチップのクロック信号のＮサイクルごとに１回同期させるとともに、同期している時のチップのクロック信号のサイクルを示す同期信号を発生し、回路ブロック内の手段により、バスにデータを転送したり、バスからデータを受信し、チップのＮ個のクロック・サイクルの連続したブロックのそれぞれに１つづつ存在する回路ブロックからデータをバス上に転送することができないチップのクロック信号のサイクルと、回路ブロックがバスからデータを受け取ることができないチップのクロック信号のサイクルとを識別するようにしたので、チップをバスに同期させることができ、どのようなバスの速度に対しても複数の異なるクロック速度でチップを動作させることができる。
【図面の簡単な説明】
【図１】本発明を利用し同期バスに接続されたチップのブロック図である。
【図２】チップとバスのクロック周波数が４：３の比率である場合のチップとバス間のクロックの関係を示すタイミング図である。
【図３】本発明による、図１に示すバス上にデータを転送し、かつバスからデータを受け取る第１のインターフェース回路のブロック図である。
【図４】本発明による、図１に示すバス上にデータを転送し、かつバスからデータを受け取る第２のインターフェース回路のブロック図である。
【符号の説明】
１１    バス
１２    クロック発生器
１３    チップ処理回路
１４    インターフェース
１５    チップ
１６    同期処理回路
３０，４０    インターフェース回路
３１，３２，４１，４２，５１，５２    ラッチ
３３，３４，４３    レジスタ
３６，４６    パッド
３５，４５    バッファ
５５，５６    制御回路
【図１】
0003565600.tif 000002
【図２】
0003565600.tif 000003
【図３】
0003565600.tif 000004
【図４】
0003565600.tif 000005