(57)【特許請求の範囲】
【請求項１】
内部クロック周波数および外部クロック周波数の一方で選択的に動作しうるデータ処理装置であって、該内部クロック周波数が該外部クロック周波数と非同期であり、該装置が、
（ｉ）ライトリクエスト信号の発生手段であって、該ライトリクエスト信号が、前記内部クロック周波数の内部クロックライトリクエスト信号および前記外部クロック周波数の外部クロックライトリクエスト信号を含む、前記ライトリクエスト信号の発生手段と、
（ii）前記外部クロック周波数で内部クロックライトリクエスト信号バッファから書込まれるべき、１つまたはそれ以上の内部クロックライトリクエスト信号をバッファリングする、該内部クロックライトリクエスト信号バッファと、
（iii）内部クロックライトリクエスト信号の発生に続いて動作しうることにより、前記内部クロックライトリクエスト信号バッファによる該内部クロックライトリクエスト信号の受信と、前記外部クロック周波数での該内部クロックライトリクエスト信号バッファからの該内部クロックライトリクエスト信号の書込みと、の間に最小のディレイを課するシンクロナイザと、
（iv）前記外部クロックライトリクエスト信号を、前記発生手段から前記外部周波数で動作する外部レシーバへ送り、かつ、前記シンクロナイザが前記最小ディレイを課した後に、前記内部クロックライトリクエスト信号を、前記内部クロックライトリクエスト信号バッファから前記外部クロック周波数で動作する前記外部レシーバへ送る、信号バスと、
（ｖ）前記内部クロックライトリクエスト信号バッファが任意の内部クロックライトリクエスト信号をバッファリングしつつある間、前記信号バスを経てのいかなる外部クロックライトリクエスト信号の通過をも禁止する手段と、
（vi） 前記禁止手段がいかなる外部クロックライトリクエスト信号の通過をも禁止している間、外部クロックライトリクエスト信号をバッファリングする、外部クロックライトリクエスト信号バッファ、
を含み、
前記外部クロックライトリクエスト信号バッファが、
ライトリクエスト信号を入力して出力するＯＲゲートと、
前記外部クロック周波数において、外部クロック信号の第１の状態に応答して、前記ＯＲゲートの出力を入力してラッチする、第１のラッチと、
前記第１のラッチにラッチされた値を入力し、新しいバスサイクルが開始した事を示すバススタート信号を反転入力する、リセットＡＮＤゲートと、
前記外部クロック周波数において、外部クロック信号の第２の状態に応答して、前記リセットＡＮＤゲートの出力を入力してラッチする、第２のラッチであって、前記リセットＡＮＤゲートの前記バススタート信号の入力によってリセットされる、前記第２のラッチ、
を含み、
前記ＯＲゲートは前記第２のラッチの出力を入力し、
前記禁止する手段が、前記第１のラッチにラッチされた値と、前記内部クロックライトリクエスト信号バッファが内部クロックライトリクエスト信号をバッファリングしていることを示す停止信号を入力するＡＮＤゲートを含む、
データ処理装置。
【請求項２】
前記禁止手段が前記発生手段を制御することにより、前記内部クロックライトリクエスト信号バッファが任意の内部クロックライトリクエスト信号をバッファリングしつつある間、１つより多くの外部クロックライトリクエスト信号の発生を停止せしめることを特徴とする、請求項１記載の装置。
【請求項３】
前記最初のライトリクエストバッファが先入れ先出しメモリを含むことを特徴とする、請求項１記載の装置。
【請求項４】
前記禁止手段がラッチを含み、該ラッチが、前記内部クロックライトリクエスト信号バッファ内への内部クロックライトリクエスト信号のローディングによりセットされ、前記内部クロックライトリクエスト信号バッファからの最後の内部クロックライトリクエスト信号の読取りによりリセットされることを特徴とする、請求項１記載の装置。
【請求項５】
前記外部クロックライトリクエスト信号が、前記外部レシーバにおいて発生せしめられるべき外部的に発生せしめられる短い信号をトリガしうるライトリクエスト信号を含むことを特徴とする、請求項１記載の装置。
【請求項６】
前記内部クロック周波数が前記外部クロック周波数より高いことを特徴とする、請求項１記載の装置。
【請求項７】
前記発生手段が中央処理装置コアを含むことを特徴とする、請求項１記載の装置。
【請求項８】
前記データ処理装置が集積回路を含むことを特徴とする、請求項１記載の装置。
【請求項９】
内部クロック周波数および外部クロック周波数の一方で選択的に用いられうるデータ処理の方法であって、該内部クロック周波数が該外部クロック周波数と非同期であり、該方法が、
（ｉ）ライトリクエスト信号の発生ステップであって、該ライトリクエスト信号が、前記内部クロック周波数の内部クロックライトリクエスト信号および前記外部クロック周波数の外部クロックライトリクエスト信号を含む、前記ライトリクエスト信号の発生ステップと、
（ii）前記外部クロック周波数で内部クロックライトリクエスト信号バッファから書込まれるべき、１つまたはそれ以上の内部クロックライトリクエスト信号をバッファリングするステップと、
（iii）内部クロックライトリクエスト信号の発生に続いて、前記内部クロックライトリクエスト信号バッファによる該内部クロックライトリクエスト信号の受信と、前記外部クロック周波数での該内部クロックライトリクエスト信号バッファからの該内部クロックライトリクエスト信号の書込みと、の間に最小のディレイを課するステップと、
（iv）前記外部クロックライトリクエスト信号を、前記外部周波数で動作する外部レシーバへ直接送るステップと、
（ｖ）前記変化の後、バッファリングされた内部クロックライトリクエスト信号を前記外部クロック周波数で動作する前記外部レシーバへ送るステップと、
（vi）任意の内部クロックライトリクエスト信号がバッファリングされている間、いかなる外部クロックライトリクエスト信号の通過をも禁止するステップと、
（vii） 外部クロックライトリクエスト信号の通過をも禁止している間、外部クロックライトリクエスト信号をバッファリングするステップ、
を含み、
前記外部クロックライトリクエスト信号は、前記外部クロックライトリクエスト信号バッファにバッファリングされ、前記外部クロックライトリクエスト信号バッファは、
ＯＲゲートによって、ライトリクエスト信号を入力して出力し、
第１のラッチによって、前記外部クロック周波数における外部クロック信号の第１の状態に応答して、前記ＯＲゲートの出力を入力してラッチし、
リセットＡＮＤゲートによって、前記第１のラッチにラッチされた値と新しいバスサイクルが開始した事を示すバススタート信号を反転入力し、
第２のラッチによって、前記外部クロック周波数における外部クロック信号の第２の状態に応答して、前記リセットＡＮＤゲートの出力を入力してラッチし、前記リセットＡＮＤゲートの前記バススタート信号の入力によって前記第２のラッチをリセットし、
前記ＯＲゲートによって、前記第２のラッチの出力を入力し、
前記禁止するステップは、禁止手段によって行われ、前記禁止手段のＡＮＤゲートが、前記第１のラッチにラッチされた値と、内部クロックライトリクエスト信号をバッファリングされていることを示す停止信号を入力する、
データ処理方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、データ処理の分野に関する。特に、本発明は、非同期の内部および外部クロックを有するデータ処理装置に関する。
【０００２】
【従来の技術】
オンチップ動作用の高い周波数の内部クロックと、オフチップ動作用の低い周波数の外部クロックを用いるマイクロプロセッサは知られている。このようにして、算術演算およびキャッシュアクセスのようなオンチップ動作は、比較的大きい外部バスの使用が外部クロック速度に対して限界要因を与えているオフチップ動作よりも、高速度で実行される。
【０００３】
このような装置のデータ処理性能を向上する１つの機構として、ライトバッファがある。ライトバッファは、内部クロック周波数の高速動作を保持しつつ、保留オフチップライトリクエスト（例えば、ライトアドレスおよびライトデータの双方を含むライトアクセス）を記憶するために用いられる。ライトバッファ内のデータはその後、プロセッサコアとは無関係に、低いメモリクロック速度でメインメモリへ書出される。プロセッサコアとライトバッファとは、並列に効果的に動作する。
【０００４】
内部クロック周波数と外部クロック周波数の変化を同期させ、たとえば、リクエストが外部クロックの遷移の丁度その時発生する場合に発生し得る準安定状態のような、問題を避けることを考慮するのは重要である。同期機構より、このような準安定状態が、外部クロックでライトリクエストが発生される前に解消される。
【０００５】
このようなデータ処理装置の完全性を保持するためには、ライトリクエストが、バッファリングされているか、バッファリングされていないかによらず、それらの発行されたのと同じ順序で与えられることが重要である。
【０００６】
このような装置に影響を与えるもう１つのファクターは、クロック周波数が増大に向かう傾向にあることである。集積回路マイクロプロセッサの設計および製造技術の進歩は、達成可能なクロック周波数を絶えず増大させてきた。このことにより、より多くの処理操作が一定の時間内に行われうるようになるが、これはまた別の問題を生ずる傾向があり、クロック速度においてそれほど速やかに進歩しなかった外部ペリフェラル（例えばメモリ）へのアクセス時間のようなものがある。
【０００７】
【発明が解決しようとする課題】
本発明の目的は、上述の諸問題を解決することである。
【０００８】
【課題を解決するための手段】
本発明の一特徴は、内部クロック周波数および外部クロック周波数の一方で選択的に動作しうるデータ処理装置であって、該内部クロック周波数が該外部クロック周波数と非同期であり、該装置が、
（ｉ）ライトリクエスト信号の発生手段であって、該ライトリクエスト信号が、前記内部クロック周波数の内部クロックライトリクエスト信号および前記外部クロック周波数の外部クロックライトリクエスト信号を含む、前記ライトリクエスト信号の発生手段と、
（ｉｉ）前記外部クロック周波数で内部クロックライトリクエスト信号バッファから書込まれるべき、１つまたはそれ以上の内部クロックライトリクエスト信号をバッファリングする、該内部クロックライトリクエスト信号バッファと、
（ｉｉｉ  ）内部クロックライトリクエスト信号の発生に続いて動作しうることにより、前記内部クロックライトリクエスト信号バッファによる該内部クロックライトリクエスト信号の受信と、前記外部クロック周波数での該内部クロックライトリクエスト信号バッファからの該内部クロックライトリクエスト信号の書込みと、の間に最小のディレイを課するシンクロナイザと、
（ｉｖ）前記外部クロックライトリクエスト信号を、前記発生手段から前記外部周波数で動作する外部レシーバへ送り、かつ、前記シンクロナイザが前記最小ディレイを課した後に、前記内部クロックライトリクエスト信号を、前記内部クロックライトリクエスト信号バッファから前記外部クロック周波数で動作する前記外部レシーバへ送る、信号バスと、
（ｖ）前記内部クロックライトリクエスト信号バッファが任意の内部クロックライトリクエスト信号をバッファリングしつつある間、前記信号バスを経てのいかなる外部クロックライトリクエスト信号の通過をも禁止する手段と、
を含む、前記データ処理装置を提供することにある。
【０００９】
本発明は、外部クロックから発生したライトリクエストが、それ以前に内部クロックから発生したライトリクエストが同期を保留してバッファリングされている間、信号バスに直接供給され、内部クロックから外部クロックへの切換が影響され完了したと検知される問題の解決が本発明により図られる。ある段階において、この問題により、同時にバスに対してアクセスしようして双方とも失敗する２つのライトリクエストが生ずる。もっと深刻な可能性として、バッファリングされないライトリクエストが、バッファリングされたライトリクエストに対するシーケンスから外れて動作し、装置の完全性に故障が生ずる状況が起り得る。
【００１０】
本発明は、この問題を認識し、まだ外部クロックに同期せしめられていない内部クロックライトリクエスト信号バッファ内に、何らかの内部クロックライトリクエストが保留されている間は、外部クロックライトリクエストが外部レシーバへ送られることを禁止する機構を組込むことにより、解決を与える。
【００１１】
該禁止手段がシステムパフォーマンスに与える影響を少なくするため、該禁止手段が任意の外部クロックライトリクエスト信号の通過を禁止している間、外部クロックライトリクエスト信号をバッファリングする外部クロックライトリクエスト信号バッファを備えることが好ましい。
これは、装置の性能に過度の影響を及ぼすことなく、いかなる外部クロックライトリクエスト信号の損失を防止する。
【００１２】
そのような外部クロックライトリクエスト信号バッファは、前記発生手段が、バッファリングされた保留内部クロックライトリクエスト信号のシーケンスに続く外部クロックライトリクエスト信号の発生まで、その動作を自由に続け、かつ該発生を伴うこと、を可能にすることができる。
【００１３】
外部クロックライトリクエスト信号バッファを備えることに加え、前記内部クロックライトリクエスト信号バッファが任意の内部クロックライトリクエスト信号をバッファリングしつつある間、前記禁止手段は前記発生手段を制御することにより、１つより多くの外部クロックライトリクエスト信号の発生を停止させる。
最初のライトリクエストバッファは、先入れ先出しメモリとして具体化するのが特に効率的で便利である。
【００１４】
前記禁止手段は、多くの形式をとりうる。特に簡単で効率的な形式は、該禁止手段がラッチを含むものであり、該ラッチは、前記内部クロックライトリクエスト信号バッファ内への内部クロックライトリクエスト信号のロードによりセットされ、前記内部クロックライトリクエスト信号バッファからの内部クロックライトリクエスト信号の読取りによりリセットされる。
【００１５】
前述のように、内部クロックライトリクエスト信号はバッファリングされるが、外部クロックライトリクエスト信号は実質的にバッファリングされない。そのような特徴を要求する、また本発明が特に有利である、特定の状況は、前記外部クロックライトリクエスト信号が、前記外部レシーバにおいて発生される外部発生アボート信号をトリガできるライトリクエスト信号を含むような状況である。
【００１６】
本発明は、内部クロック周波数が外部クロック周波数と非同期であるような広範囲の状況に適用することが可能であることを認識されたい。しかし、本発明は、前記内部クロック周波数が前記外部クロック周波数より高い状況に特に適している。
【００１７】
本発明は、多くの形式（例えば、ＡＳＩＣ、デイスクリート部品から構成される回路）で具体化されうるが、本発明は、前記発生手段がＣＰＵコアを含み、かつ装置が集積回路として具体化される実施例に特に適している。
【００１８】
もう１つの特徴から見ると、本発明は、データ処理の方法を提供し、該処理は、内部クロック周波数および外部クロック周波数の一方で選択的に用いうるものであり、該内部クロック周波数は該外部クロック周波数と非同期であり、該方法は、
（ｉ）ライトリクエスト信号の発生ステップであって、該ライトリクエスト信号が、前記内部クロック周波数の内部クロックライトリクエスト信号および前記外部クロック周波数の外部クロックライトリクエスト信号を含む、前記ライトリクエスト信号の発生ステップと、
（ｉｉ）前記外部クロック周波数で内部クロックライトリクエスト信号バッファから書込まれるべき、１つまたはそれ以上の内部クロックライトリクエスト信号をバッファリングするステップと、
（ｉｉｉ  ）内部クロックライトリクエスト信号の発生に続いて、前記内部クロックライトリクエスト信号バッファによる該内部クロックライトリクエスト信号の受信と、前記外部クロック周波数での該内部クロックライトリクエスト信号バッファからの該内部クロックライトリクエスト信号の書込みと、の間に最小のディレイを課するステップと、
（ｉｖ）前記外部クロックライトリクエスト信号を、前記外部周波数で動作する外部レシーバへ直接送るステップと、
（ｖ）前記変化の後、バッファリングされた内部クロックライトリクエスト信号を前記外部クロック周波数で動作する前記外部レシーバへ送るステップと、
（ｖｉ）任意の内部クロックライトリクエスト信号がバッファリングされている間、いかなる外部クロックライトリクエスト信号の通過をも禁止するステップと、
を含む。
【００１９】
本発明の上述の、およびその他の、諸目的および諸利点は、添付図面と共に参照されるべき、実施例に関する以下の詳細な説明において明らかにされる。
【００２０】
【実施例】
図１は、中央処理装置（ＣＰＵ）コア４を有する、集積回路２を概略的に示す。ＣＰＵコア４は、経路８を経て直接的に、またはライトバッファ１０を経て間接的に、信号バス６へ送られる、ライトリクエスト信号を発生する。
【００２１】
いくつかの異なる外部レシーバが、ライトリクエスト信号を受けるために信号バス６に結合されている。これらの外部レシーバは、ランダムアクセスメモリ（ＲＡＭ）１２と、ハードディスクファイル１４と、キーボード１６と、プリンタ１８と、を含む。
【００２２】
集積回路２のＣＰＵコア４は、内部クロック周波数ｆｃｌｋまたは外部クロック周波数ｍｃｌｋのいずれによっても駆動される。内部クロック周波数ｆｃｌｋは、外部クロック周波数ｍｃｌｋより高い周波数を有する。内部クロック周波数ｆｃｌｋはオンチップ動作用に用いられ、一方外部クロック周波数ｍｃｌｋは、オフチップ通信が要求された時に、また全ての外部動作用に、用いられる。
【００２３】
使用中においては、同期的に行われる必要のない（すなわち、外部的に発生せしめられるアボートを起こすことができない）内部クロックライトリクエスト信号が、ＣＰＵコア４により内部クロック周波数ｆｃｌｋで発生されて、ライトバッファ１０へ送られる。可能な限りの速さで、外部クロック周波数のｍｃｌｋ領域への変更が行われ、ライトバッファ１０においてバッファリングされた内部クロックライトリクエスト信号が、信号バス６を経てＲＡＭ１２のような外部レシーバへ読出される。ＲＡＭ１２は、外部クロックｍｃｌｋを基準とする信号によって駆動される。
【００２４】
上述とは対照的に、ライトリクエスト信号が同期的に行われなくてはならない（例えば、ライトリクエスト信号が外部的に発生せしめられるアボートを起こすことが可能）場合においては、最も重要なのは、集積回路２が最初に外部クロック周波数ｍｃｌｋへ変化することである。外部クロックライトリクエスト信号は、その後経路８を直接経て信号バス６へ出され、プリンタ１８のような同期装置へ送られうる。
【００２５】
図２は、内部クロックライトリクエスト信号および外部クロックライトリクエスト信号の逐次的動作を調整する回路を示す。内部クロックライトリクエスト信号は、ロード信号の制御のもとに、ライトバッファ１０（先入れ先出しメモリ）に書込まれる。ロード信号は、ラッチ２４のセットをも行う複合クロック信号ｇｃｌｋの立下がり端において有効となる。内部クロックライトリクエスト信号は、３２ビットのデータ「ｄａｔａ〔３１：０〕」および関連する制御ビットを含む。
【００２６】
これに関連し、書込み動作のアドレスを記憶するＦＩＦＯ（不図示）が存在する。これは単一の書込み動作で、多項目のデータを、連続する位置に書込むことが可能なためデータＦＩＦＯ１０よりも少ないエントリを含む。
【００２７】
シンクロナイザ２０は、ライトバッファ１０内に保留されているバッファリングされた内部クロックライトリクエスト信号が存在すると、ライトバッファ１０内へ到着するリクエストが用いている内部クロックｆｃｌｋから、ライトバッファ１０からの信号の読取りに用いられなくてはならない外部クロックｍｃｌｋへの変化を同期せしめる。シンクロナイザ２０は、該変化に最小のディレイをおくことにより、外部クロックｍｃｌｋが、ライトバッファ１０からデータが読取られうる点にあるちょうどその時に、リクエストが到着することから起こる準安定状態に起因する問題を回避する。この最小ディレイが経過して、外部クロックに適切なクロックエッジが生じた時、バッファリングされた保留内部クロックライトリクエスト信号は、外部クロックｍｃｌｋの作用のもと、ライトバッファ１０から読取られ、シンクロナイザ２０からＯＲゲート２２を経て出されるバススタート信号がバス転送を開始する。ライトバッファ（ＦＩＦＯ）１０を経て出される全てのリクエストは、シンクロナイザ２０を通過する。シンクロナイザ２０の機能は、２つのタイミング領域間での変化を信頼性をもって行うことである。これを実現する為の回路は多く存在する。
【００２８】
ロード信号はまた、ラッチ２４をセットするためにも用いられる。ラッチ２４は、現在選択されている内部クロック信号ｆｃｌｋまたは外部クロック信号ｍｃｌｋのいずれか一方から形成された複合クロック信号ｇｃｌｋによりクロッキングされる。ラッチ２４の反転出力は、ＣＰＵコア４へ帰還される停止信号を生じ、該停止信号はＣＰＵコア４において、ＣＰＵが停止して、操作を続ける前にサービスを受けるべき外部クロックライトリクエストを待つことを保証する。この停止信号はまた、ＡＮＤゲート２６へも送られ、そこでそれは、外部クロックライトリクエスト信号がＯＲゲート２２を経てバスへ通過するのを阻止する働きをする。
【００２９】
外部クロックライトリクエスト信号（ｓｙｎｂｕｓｒｅｑ）はＯＲゲート２８へ入力され、ラッチ３０内に記憶される。ラッチ３０の出力は、ＡＮＤゲート２６を経てＯＲゲート２０へ送られる。ラッチ３０内に記憶された信号は、ＡＮＤゲート３２、もう１つのラッチ３４、およびＯＲゲート２８を経て、ラッチ３０へ帰るように再循環せしめられる。ラッチ３０およびラッチ３４は、外部クロックライトリクエスト信号バッファを効果的に形成する。
【００３０】
動作中において、前記停止信号が低レベルである時は、ＡＮＤゲート２６は、外部クロックライトリクエスト信号が信号バス６に達するのを阻止し、一方ラッチ３０および３４は、該停止信号が除去されるまで、外部クロックライトリクエスト信号を再循環させるように働く。
【００３１】
停止信号は、ラッチ２４のリセットにより解除される。ラッチ２４は、新しいバスサイクル毎にリセットされる。内部クロックリクエストがすでに出されているが、まだ外部クロックに対して同期されていない場合が、本発明が対象とする危険な場合である。一度、この同期が行われれば、他の場所の制御論理装置は、書込みが正しい順序で処理されたと確認することができる。
【００３２】
ラッチ２４は、新しいバスサイクルが開始されたことを示すバススタート信号によりリセットされる。ラッチ３４は、ちょうど開始されたアクセスがバッファリングされていないことを示す信号によりゲートされた同じ信号によって（即ち、ラッチ３０、３４内に保持されているリクエストに応答して）リセットされる。
【００３３】
ここでは、本発明の説明のための実施例を、添付図面を参照しつつ詳述したが、本発明は記載通りのそれらの実施例に制限されるものではないこと、および添付の特許請求の範囲によって定められる本発明の範囲および精神から逸脱することなく、それに対するさまざまな変更および改変が、本技術分野に習熟した者によりなされうることを理解すべきである。
【図面の簡単な説明】
【図１】信号バスにより様々な外部装置に接続された、マイクロプロセッサを概略的に示す。
【図２】信号バスへの異なる経路を通るライト信号間のインタロックを制御する回路を示す。
【符号の説明】
４  ＣＰＵコア
６  信号バス
１０  ライトバッファ
１２  ＲＡＭ
１４  ハードディスクファイル
１６  キーボード
１８  プリンタ
２０  シンクロナイザ
２４  ラッチ
３０  ラッチ
３４  ラッチ
ｆｃｌｋ  内部クロック周波数
ｍｃｌｋ  外部クロック周波数
【図１】
0003611625.tif 000002
【図２】
0003611625.tif 000003