(57)【特許請求の範囲】
【請求項１】
データを処理する装置であって、
（ｉ）第１のクロック信号により駆動され、第１の制御信号と要求信号を発生するように動作する第１の回路と、
（ｉｉ）第２のクロック信号により駆動され、第２の制御信号と承諾信号を発生するように動作する第２の回路であって、前記第２のクロック信号は前記第１のクロック信号に独立している第２の回路と、
（ｉｉｉ）前記第１の制御信号と前記第２の制御信号に制御されて動作する第３の回路を含み、前記要求信号は前記第２の回路に加えられて前記第２の回路をトリガし、前記第２の制御信号を使用して前記第３の回路の動作を開始し、かつ前記承諾信号が前記第１の回路に加えられて、前記第３の回路の動作が完了し、前記第１の回路は前記第１の制御信号を維持する必要がないことを示すようになっており、
（ｉｖ）前記第１の回路から前記要求信号を受信し、前記要求信号を前記第２の回路に転送する前に、前記要求信号を前記第２のクロック信号に同期させる第１の同期手段と、
（ｖ）前記第２の回路から前記承諾信号を受信し、前記承諾信号を前記第１の回路に転送する前に、前記承諾信号を前記第１のクロック信号に同期させる第２の同期手段と、
（ｖｉ）前記第２の回路に接続され、前記第３の回路の動作完了に先立って、前記第１のクロック信号に同期するため、前記第２の回路が前記第２の同期手段に前記承諾信号を転送する複数の使用可能な時間の１つを選択する役目をする先行制御コントローラと、
を含むことを特徴とする前記データ処理装置。
【請求項２】
請求項１記載の装置であって、前記第１の回路と前記第２の回路とは、１つの集積回路の部分として形成されることを特徴とする装置。
【請求項３】
請求項２記載の装置であって、前記集積回路は中央処理装置のコア回路を含むことを特徴とする装置。
【請求項４】
請求項１記載の装置であって、前記先行制御コントローラは、前記複数の使用可能な時刻のどれが選択されるかということを制御する１つまたはそれ以上の先行制御ビットを格納する先行制御レジスタを含むことを特徴とする装置。
【請求項５】
請求項４記載の装置であって、前記集積回路は中央処理装置のコア回路を含み、前記先行制御ビットは、前記中央処理装置のコア回路で実行するプログラム命令の制御のもとにセットされることを特徴とする装置。
【請求項６】
請求項１記載の装置であって、前記第３の回路は、前記第２のクロック信号によって駆動される入出力デバイスであることを特徴とする装置。
【請求項７】
請求項６記載の装置であって、前記第２の回路は入出力コントローラ回路であり、前記第２の制御信号はチップ選択信号であり、さらに前記第２のクロック信号は入出力クロックであることを特徴とする装置。
【請求項８】
請求項１記載の装置であって、前記第１の回路はバスコントローラ回路であり、前記第１の制御信号はアドレス信号であり、さらに前記第１のクロック信号はバスクロック信号であることを特徴とする装置。
【請求項９】
請求項１記載の装置であって、前記第１のクロック信号は前記第２のクロック信号より高い周波数であることを特徴とする装置。
【請求項１０】
請求項９記載の装置であって、前記第１のクロック信号により駆動される第４の回路を含み、前記第１の回路の制御のもとに動作することを特徴とする装置。
【請求項１１】
請求項１０記載の装置であって、前記第４の回路は、ランダムアクセスメモリ回路であることを特徴とする装置。
【請求項１２】
データを処理する方法であって、
（ｉ）第１のクロック信号により第１の回路を駆動し、第１の制御信号と要求信号を発生させるステップと、
（ｉｉ）第２のクロック信号により第２の回路を駆動し、第２の制御信号と承諾信号を発生させるステップであって、前記第２のクロック信号が前記第１のクロック信号に独立している前記ステップと、
（ｉｉｉ）前記第１の制御信号と前記第２の制御信号とによって第３の回路を制御するステップであって、前記要求信号は前記第２の回路に加えられて前記第２の回路をトリガし、前記第２の制御信号を使用して前記第３の回路の動作を開始し、前記承諾信号が前記第１の回路に加えられて、前記第３の回路の動作が完了し、前記第１の回路は前記第１の制御信号を維持する必要がないことを示すようになっている前記ステップと、
（ｉｖ）前記第１の回路から前記要求信号を受信して、前記要求信号を前記第２の回路に転送する前に、前記要求信号を前記第２のクロック信号に同期させるステップと、
（ｖ）前記第２の回路から前記承諾信号を受信して、前記承諾信号を前記第１の回路に転送する前に、前記承諾信号を前記第１のクロック信号に同期させるステップと、
（ｖｉ）前記第３の回路の動作完了に先立って、前記第１のクロック信号に同期するため、前記第２の回路に接続した先行制御コントローラにより前記第２の回路が前記第２の同期手段に前記承諾信号を転送する、複数の使用可能な時刻の１つを選択するステップと、
を含むことを特徴とする方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、データ処理の分野に関し、より詳細には、第１のクロック信号により駆動される第１の回路と、第２のクロック信号により駆動される第２の回路を備え、第１の回路と第２の回路が協働して第３の回路の動作を制御するようになっているデータ処理システムに関する。
【０００２】
【従来の技術および発明が解決しようとする課題】
１つまたはそれ以上のクロック信号（たとえば、メモリクロック信号と入出力クロック信号）を利用して、システム内の異なる回路を制御するデータ処理システムを提供することは公知である。かかるシステムにおいて生起する状況とは、第１のクロック信号により駆動される第１の回路と、第２のクロック信号により駆動される第２の回路が協働して第３の回路を制御することであろう。これの代表的な状況は、たとえばディスクコントローラのように、バスクロックスピードで動作するバスコントローラの動作や、入出力クロックスピードで動作する入出力コントローラの動作の組合わせによる入出力デバイスの制御であろう。この状況において、バスコントローラはアドレスバスにアドレスを立ち上げ、入出力コントローラに対する要求信号を発行して、入出力コントローラをトリガし適切な入出力デバイスを選択して必要な動作を実行させる。入出力コントローラは、自身の入出力クロック信号に要求信号を同期させると、入出力クロック信号に同期して、入出力デバイスに要求される制御信号を発行する。要求された動作が完了すると、承諾信号（ｇｒａｎｔ  ｓｉｇｎａｌ）がバスコントローラに送り返されるが、承諾信号が最初にバスクロック信号に再同期する。
【０００３】
データ処理システムにおいて常に目指していることは、それの動作速度を可能な限り速くすることである。したがって、動作速度を速くする方法（手段）は非常に有利になる。
【０００４】
【課題を解決する手段】
１つの側面から見ると、本発明はデータを処理する装置を提供しており、前記装置は、
（ｉ）第１のクロック信号により駆動されて動作し、第１の制御信号と要求信号を発生させる第１の回路と、
（ｉｉ）第２のクロック信号により駆動されて動作し、第２の制御信号と承諾信号を発生させる第２の回路であって、前記第２のクロック信号は前記第１のクロック信号に独立している第２の回路と、
（ｉｉｉ）前記第１のクロック信号と前記第２のクロック信号に制御されて動作する第３の回路であって、前記要求信号は前記第２の回路に加えられて前記第２の回路をトリガし、前記第２の制御信号を使用して前記第３の回路の動作を開始し、前記承諾信号が前記第１の回路に加えられて、前記第３の回路の動作が完了して、前記第１の回路は前記第１の制御信号を保持する必要がないことを示すようになっている前記第３の回路と、
（ｉｖ）前記第１の回路から前記要求信号を受信し、前記要求信号を前記第２の回路に転送する前に、前記要求信号を前記第２のクロック信号に同期させる第１の同期手段と、
（ｖ）前記第２の回路から前記承諾信号を受信し、前記承諾信号を前記第１の回路に転送する前に、前記承諾信号を前記第１のクロック信号に同期させる第２の同期手段と、
（ｖｉ）前記第２の回路に接続され、前記第３の回路の動作完了に先立って、前記第１のクロック信号に同期するため、前記第２の回路が前記第２の同期手段に前記承諾信号を転送する複数の使用可能な時間（ｔｉｍｅｓ  ）の１つを選択するように作用する先行制御コントローラと、
を含んでいる。
【０００５】
本発明は、以下のような問題、すなわち、第２の回路と第２の同期手段が承諾信号を発生させ、承諾信号を第１のクロック信号に同期させる間に第３の回路が動作を完了すると、好ましくないディレイすなわち遅延が発生するかもしれないという問題を認識している。この問題に対処するため、第３の回路が実際にその動作を完了する前に、第２の回路が制御された方法で承諾信号を発生させるので、同期プロセスが早い時点で始まり、さらに第３の回路が実際にその動作を完了した後、ディレイを短くして同期した承諾信号が使用可能となる先行制御コントローラが用意されている。先行制御コントローラは効果的に巧妙に動作して、承諾信号が関係する事象（すなわち、第３の回路の動作完了）が実際に発生してしまう前に承諾信号が発生し始めるようにする。
【０００６】
上述した先行制御コントローラの働きは、第１のクロック信号に同期するときのディレイを減少させる役目をする一方で、これ自体がシステムの動作における問題となりうるのである。本発明はこれらの問題を深く認識すると同時にこれを解決している。第１のクロック信号と第２のクロック信号は相互に独立であると想定しているのであるから、第１のクロック信号の周波数は第２のクロック信号の周波数よりも高くてもよい。この状況においては、第１のクロック信号に対する再同期は（第１のクロック信号の中で適切な位相を見つけることにより）十分迅速に発生するから、第３の回路が実際にその動作を完了する前に第１の回路に承諾信号を発行することが可能である。この状況では、第３の回路がその動作を完了したことを示す承諾信号を受信しているのであるから、第１の回路は第３の回路が要求している承諾信号を全期間維持することに失敗するかもしれない。この問題に対処するため、先行制御コントローラは、前記第３の回路の動作完了に先立って、複数の使用可能な時間から選択できる１つを使用して動作する。このように先行時刻を選択して、第２のクロック信号の周波数に関して第１のクロック信号の周波数を適合させることができる。
【０００７】
この特徴には、承諾信号を過度に早く発行するという問題を回避する一方、再同期による必要以上のディレイを回避するため、第１のクロック信号の周波数が変化しても、先行制御コントローラの中で必要な時間の選択を変えるだけで、システムを大幅に改造したり再設計しなくてよいという別の利点がある。
【０００８】
したがって、第１のクロック信号と第２のクロック信号がほぼ同じ周波数であると、必要以上のディレイを伴わずに再同期が行われ、さらにシステムは、過度に早く再同期させなくても、大きく異なるクロック周波数を使って対応することができる。
【０００９】
各回路要素を離散的回路成分として組入れる場合に、本発明が利用できることが理解できるであろう。しかし、本発明が特に適しているのは、前記第１の回路と前記第２の回路が１つの集積回路の一部として形成されるシステムで使用される場合である。
【００１０】
第１の回路と第２の回路が１つの集積回路の一部になっている場合、回路を再設計しなくても、多数の異なる第１のクロック周波数の範囲を持つ第１のクロック信号によって第１の回路を駆動できることが特に大きな利点である。たとえば、高速ＲＡＭシステム対低速ＲＡＭシステムのように、他のどの回路成分が第１の回路に接続されるかによって、多数の異なる第１のクロック周波数で動作する１つの集積回路をつくることができる。
【００１１】
１つまたはそれ以上のディップスイッチなど、対応する集積回路のピンに接続されたハードウエア形のスイッチにより先行制御コントローラの先行時刻を選択できるが、本発明の好適実施例においては、複数の使用可能な時間の特定の１つを選択するために、中央処理装置のコア回路を使用して先行制御コントローラの先行制御レジスタ内の１つまたはそれ以上の先行制御ビットをセットしている。
【００１２】
このように、先行制御ビットはソフトウエアの制御のもとでセットされるので、システムの構成にかなりの融通性を持たせることができる。
【００１３】
第３の回路は異なる多数の形を取ることができるが、どの形の回路も、（たとえば、相対位相あるいは相対周波数などを変えた）それぞれ独立のクロック信号で動作する第１の回路と第２の回路による制御が必要であることが理解できるであろう。しかし、特に好ましい実施例においては、前記第３の回路は前記第２のクロック信号によって駆動される入出力デバイスである。
【００１４】
独立なクロック信号を備えた入出力デバイスを制御するニーズが頻繁に発生するという状況では、第１の回路と第２の回路のクロック信号は、入出力デバイスのクロック信号に過度に制約を受けてはならず、さらに同期に対する必要以上ののディレイを回避しなければならないことが望ましい。
【００１５】
かかる状況では、前記第２の制御信号はチップ選択信号であり、前記第２のクロック信号は入出力クロックであるという場合が多い。
【００１６】
本発明が特に役に立つのは、前記第１の回路がバスコントローラ回路であり、前記第１の制御信号がアドレス信号であり、さらに前記第１のクロック信号がバスクロック信号であるときである。
【００１７】
重要なことは、アドレス信号は必要とする全時間の間アドレスバス上に立ち上がっていなければならないので、十分立ち上がっていないアドレス信号を再同期中に除去しないようにすることが特に役に立つということである。
【００１８】
前に述べたとおり、第１のクロック信号と第２のクロック信号は異なる周波数になっている。しかし、本発明は以下のような実施例、すなわち、第１のクロック信号の周波数は第２のクロック信号の周波数よりも高いから、第２のクロック信号を使用するデバイスによって制約を受ける第２のクロック信号を維持しながら装置のグレードアップ路（ｕｐｇｒａｄｅ  ｐａｔｈ）を可能にしている実施例に特に適している。
【００１９】
前述の通り、第１のクロック信号により駆動され、グレードアップが可能な第４の回路要素の能力を利用するため、第１のクロック信号を変更してもよい。これの例はランダムアクセスメモリ回路であろう。
【００２０】
別の態様から見ると、本発明はデータを処理する方法を提供しており、前記方法は、
（ｉ）第１のクロック信号により第１の回路を駆動し、第１の制御信号と要求信号を発生させるステップと、
（ｉｉ）第２のクロック信号により第２の回路を駆動し、第２の制御信号と承諾信号を発生させるステップであって、前記第２のクロック信号が前記第１のクロック信号に独立している前記ステップと、
（ｉｉｉ）前記第１の制御信号と前記第２の制御信号とによって第３の回路を制御するステップであって、前記要求信号は前記第２の回路に加えられて前記第２の回路をトリガし、前記第２の制御信号を使用して前記第３の回路の動作を開始し、前記承諾信号が前記第１の回路に加えられて、前記第３の回路の動作が完了したので、前記第１の回路は前記第１の制御信号を維持する必要がないことを示すようになっている前記ステップと、
（ｉｖ）前記第１の回路から前記要求信号を受信して、前記要求信号を前記第２の回路に転送する前に、前記要求信号を前記第２のクロック信号に同期させるステップと、
（ｖ）前記第２の回路から前記承諾信号を受信して、前記承諾信号を前記第１の回路に転送する前に、前記承諾信号を前記第１のクロック信号に同期させるステップと、
（ｖｉ）前記第３の回路の動作完了に先立って、前記第１のクロック信号に同期するため、前記第２の回路に接続した先行制御コントローラにより前記第２の回路が前記第２の同期手段に前記承諾信号を転送する、複数の使用可能な時間の１つを選択するステップと、
を含んでいる。
【００２１】
本発明に関する上記の目的とその他の目的、特徴および利点は、添付の図面と共に読むべき以下に述べる実施例の詳細な説明から明らかになるであろう。
【００２２】
【実施例】
図１は、ディスクドライブコントローラのような入出力デバイス４に接続された集積回路２を示している。入出力デバイス４は、制御入力としてアドレス信号およびＩ／Ｏチップ選択信号（Ｉ／Ｏ  ｃｈｉｐ  ｓｅｌｅｃｔ  ｓｉｇｎａｌ）を受信する。入出力デバイス４が実行可能状態信号（ｒｅａｄｙ  ｓｉｇｎａｌ）を発生させるが、この信号は集積回路２に供給され、入出力デバイス４が機能停止になっていてＩ／Ｏサイクルを延長するかどうかを示す役目をする。
【００２３】
集積回路２は、中央処理装置（ＣＰＵ  ）のコア回路、読出し専用メモリ（ＲＯＭ  ）回路６、バスコントローラ８およびＩ／Ｏコントローラ１０を含む複数の回路要素を組み込んでいる。メモリクロック信号は、バスコントローラ８（メモリクロックは周波数が半分にされてバスクロックを形成するが、このバスクロックはバスコントローラによって使用される）、読出し専用メモリ回路６およびＩ／Ｏコントローラ１０に供給される。Ｉ／Ｏクロック信号はＩ／Ｏコントローラ１０に供給され、ここで２つに分割されて内部機能を駆動すると共に入出力デバイス４にも供給されて入出力デバイス４を動作させる。
【００２４】
Ｉ／Ｏコントローラ１０には、
（１）バスコントローラ８からＩ／Ｏコントローラ１０に送られる要求信号を、Ｉ／Ｏクロック信号に同期させ、
（２）Ｉ／Ｏコントローラ１０からバスコントローラ８に送られる承諾信号を、Ｉ／Ｏクロック信号に同期させる、
役目をするそれぞれの部分を備えたシンクロナイザ１２が含まれている。
【００２５】
Ｉ／Ｏコントローラ１０の中にあり、シンクロナイザ１２に接続されている先行制御コントローラ１４は、入出力デバイス４の動作完了に先立って、所定の数の時間の１つを選択してシンクロナイザ１２が承諾信号をバスクロック信号に同期させるプロセスを開始するように働く。
【００２６】
先行制御コントローラ１４には、先行制御レジスタ１６とカウンタ１８が含まれている。先行制御レジスタ１６には、中央処理装置のコアから送られた１つまたはそれ以上の先行制御ビットが含まれており、これらのビットは、どの時限を選択すべきかを指定する。カウンタ１８は、Ｉ／Ｏサイクルの開始以来発生したＩ／Ｏクロック信号のクロックサイクルの数をカウントして、所定のカウントに到達すると、承諾信号を第１のクロック信号に同期させることになるＩ／Ｏ終了信号（Ｅｎｄ  Ｉ／Ｏ  ｓｉｇｎａｌ）の開始を起動する。この所定のカウントは先行制御レジスタ１６の中のビットに依存して選択されるので、このようにして入出力デバイス４の動作完了に先立って所定の時間が選択される。入出力デバイス４からの動作可能状態信号が入出力デバイス４が動作停止であることを示したとき、カウンタ１８の増分を禁止することにより、Ｉ／Ｏサイクルが適切に延長される。
【００２７】
図１に示すシステムは、以下のように動作すると考えてよい。出力（あるいは入力）動作は入出力デバイス４に対して実行されるので、バスコントローラ８によって、入出力デバイス４に対するアドレス信号が立ち上げられる。このアドレス信号は、出力するデータが関係するアドレス場所を指定する。つぎにバスコントローラ８は、Ｉ／Ｏ動作が要求されていることを示す要求信号をＩ／Ｏコントローラ１０に対して発行する。シンクロナイザ１２は、この要求信号をＩ／Ｏクロック信号に同期させてから、適切なＩ／Ｏデバイス（たとえば、入出力デバイス４）に対してＩ／Ｏチップ選択信号を発行する。アドレスバスは複数のＩ／Ｏデバイスに並列に接続されているが、図１の例には、そのうちの１つだけが示されていることは理解できるであろう。
【００２８】
入出力デバイス４がアドレス信号とＩ／Ｏチップ選択信号（第１の制御信号と第２の制御信号）を受信すると、入出力デバイス４は要求されたＩ／Ｏ動作の実行に移る。Ｉ／Ｏコントローラ１０は、Ｉ／Ｏ動作の開始以来のＩ／Ｏクロックサイクルの数をカウントし（動作可能状態信号を供給することは入出力デバイス４が動作停止になっていることを示していない）、所定の数のクロックサイクルが発生すると、Ｉ／Ｏコントローラ１０は、バスコントローラ８に返す承諾信号の発行を開始する。Ｉ／Ｏコントローラが待ち合わせるクロックサイクルの数は先行制御コントローラ１４によって決定される。
【００２９】
メモリクロック信号とＩ／Ｏクロック信号の相対周波数が非常に接近していると、先行制御コントローラ１４は、入出力デバイス４の動作の本当の終了に先立つ長い期間（数クロックサイクル）で、メモリクロック信号に返す承諾信号と再同期の発行を開始する余裕があり、さらに、メモリクロック信号周波数がＩ／Ｏクロック周波数よりも大幅に高かった時の場合より十分な時間の間アドレス信号を維持することができる。
【００３０】
図２は、信号タイミング図であって、メモリクロック信号とＩ／Ｏクロック信号が同じ周波数の時の、図１のシステムの動作を示している。メモリクロック信号はバスクロック信号を発生させるために使用される。バスクロック信号の周波数はメモリクロック信号の周波数の半分である。バスクロック信号はバスコントローラ８によって内部で使用される。Ｉ／Ｏ要求信号は、バスクロック信号に同期した処理動作の中でバスコントローラ８によって発生する。このＩ／Ｏ要求信号はＩ／Ｏコントローラ１０のシンクロナイザ１２に転送されるが、Ｉ／Ｏコントローラ１０は、この信号をＩ／Ｏクロック信号に同期させてＩ／Ｏ実行信号（Ｄｏ  Ｉ／Ｏ  ｓｉｇｎａｌ  ）を発生する役目をする。Ｉ／Ｏ実行信号はＩ／Ｏコントローラ１０の内部で使用され、入出力デバイス４に転送されるＩ／Ｏチップ選択信号になる。
【００３１】
先行制御コントローラ１４は、Ｉ／Ｏ実行信号が開始されてからのＩ／Ｏクロック信号パルスの数をカウントする役目をしており、先行制御レジスタ１６の中に格納されたビットによって選択されるとおり、Ｉ／Ｏクロック信号パルスの数が所定の数を過ぎると、Ｉ／Ｏクロック信号に同期してＩ／Ｏ終了信号が発行される。Ｉ／Ｏ終了信号は、シンクロナイザ１２によってバスクロック信号に同期するＩ／Ｏ承諾信号の発行をトリガする。実際にＩ／Ｏ終了信号は、Ｉ／Ｏ実行信号とＩ／Ｏチップ選択信号が終了する前に発行されるので、Ｉ／Ｏサイクルが終了する前に再同期が開始される。バスクロック信号に再同期したＩ／Ｏ承諾信号がバスコントローラ８に転送されると、このＩ／Ｏ承諾信号は、入出力デバイス４に対するＩ／Ｏアドレスバスラインにラッチされたアドレス信号をもはや維持する必要がないことをバスコントローラ８に示す役目をする。
【００３２】
図３は図２と同様な信号タイミング図であるが、この場合はメモリクロック信号の周波数がＩ／Ｏクロック信号の周波数よりも高くなっている。Ｉ／Ｏ承諾信号をバスクロック信号に再同期させることが過度に早く行われることを回避するため、この場合は、十分な数のＩ／Ｏクロック信号サイクルが使われて、Ｉ／Ｏ実行信号が終了するまで、Ｉ／Ｏ終了信号は発行されない。したがって、アドレス信号が必要なＩ／Ｏサイクルの全時間中、バスコントローラ８はアドレス信号をラッチしている。
【００３３】
添付の図面を参照しながら本発明の実施例を詳細に説明してきたが、本発明はここに説明した実施例に限定されるものではなく、さらに添付の請求の範囲により定義されているように、当業者ならば、本発明の精神と範囲から逸脱せずに、本発明における多数の変更、代替および修正を行うことができることを理解されたい。
【図面の簡単な説明】
【図１】複数のクロック信号を使用したデータ処理システムを示す図。
【図２】メモリクロック信号が入出力クロック信号とほぼ同じ周波数である場合の、図１のシステムの動作を示す信号図。
【図３】メモリクロック信号の周波数が入出力クロック信号の周波数よりも大幅に高い場合の、図１のシステムの動作を示す信号図。
【符号の説明】
２    集積回路
４    入出力デバイス
６    読出し専用メモリ回路
８    バスコントローラ
１０    Ｉ／Ｏコントローラ
１２    シンクロナイザ
１４    先行制御コントローラ
１６    先行制御レジスタ
１８    カウンタ
【図１】
0003625536.tif 000002
【図２】
0003625536.tif 000003
【図３】
0003625536.tif 000004