JP3739431B2 - 集積回路およびデータ処理装置 - Google Patents
集積回路およびデータ処理装置 Download PDFInfo
- Publication number
- JP3739431B2 JP3739431B2 JP33422594A JP33422594A JP3739431B2 JP 3739431 B2 JP3739431 B2 JP 3739431B2 JP 33422594 A JP33422594 A JP 33422594A JP 33422594 A JP33422594 A JP 33422594A JP 3739431 B2 JP3739431 B2 JP 3739431B2
- Authority
- JP
- Japan
- Prior art keywords
- clock
- signal
- bus
- active
- receiving
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4208—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
- G06F13/4217—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with synchronous protocol
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Description
【産業上の利用分野】
本発明は一般的には半導体回路に関し、かつより特定的には、バス制御およびバスクロック信号に関する。
【0002】
【従来の技術】
マイクロプロセッサユニット(MPU)にとってプロセッサ(MPU)の周波数より低速のバス周波数をサポートすることは重要である。この特徴は低いコストおよび電力を維持するための低周波数のバスおよび高い性能のための高周波数のプロセッサの双方を備えた、2つのクロック機能が必要とされる、システムの設計を可能にする。
【0003】
この特徴を提供するためには、プロセッサのクロック、バスクロックを発生しかつ該プロセッサと外部バスクロックの関係を設定する方法が必要である。この方法はできるだけ広い範囲の周波数にわたり作動することが望ましい。今日のMPUにとっては、このことはプロセッサの周波数を100MHz以上からほぼ0Hzの動作をサポートできることを意味する。この動作の外部制御は付加的な柔軟性を提供することができる。
【0004】
上に述べた機能性を提供するためにいくつかの方法がある。1つは異なる周波数の2つの関係のないクロック発生器を使用することであり、低速のものはバスクロックのためのものでありかつ高速のものはプロセッサのクロックのためのものである。プロセッサとバスとの間の通信は該プロセッサと該バスとの間の必要な信号を同期させることによって行なうことができる。この方法はプロセッサをバスクロックの関係に固定しないという利点を有する。しかしながら、同期は通常ドライブ周波数領域からの信号を受信周波数領域の周波数でクロッキングされるレジスタに数回(少なくとも2回)直列的に登録することによって達成される。性能のペナルティはこの付加的な潜伏(latency)から生じる。また、もし同期処理がMPUにおいて行なわれれば、両方のクロックがMPUに存在しなければならない。
【0005】
上に述べた機能性を提供するための第2の方法は固定した周波数および固定した位相関係の双方を有する2つのクロックを発生することである。これは通常位相同期ループ(PLL)回路によって達成される。より高い周波数のクロックがプロセッサのクロックのために使用され、かつより低い周波数のクロックが外部バスとインタフェースするバス制御論理において使用される。
【0006】
【発明が解決しようとする課題】
この方法に関連していくつかの設計上の決定およびコストの考慮が必要である。第1に、2つのクロックの間の位相関係は厳密に制御されなければならない。これはPLLの複雑さおよびコストを増大させる。第2に、PLLは大きな周波数範囲にわたり動作することができない。これはこの技術のこの周波数範囲への適用を制限する。また、PLLは入力基準への位相/周波数ロックを達成するのに時間を必要とする。このことは低電力モードのためにクロックを停止することを希望するシステムにとっては、PLLに定常状態の動作を達成できるようにするためクロックをリスタートさせるのに時間的なペナルティがあることを意味する。
【0007】
もしPLLの設計がシステム設計者に残されていれば、その部分はバスおよびプロセッサのクロックの双方を入力しなければならない。MPU内部のクロック分配ネットワークがこれらのクロックの間の過剰なずれ(skew)を生じないように細心の注意を払うことが必要である。もしPLLがMPUに置かれれば、MPUの設計者はPLLの設計と立ち向かうことになる。PLLは通常のデジタル回路と異なる回路設計技術および考慮を必要とし、かつ該PLLとデジタルMPUロジックの双方の正しい動作のためにチップ上で他の回路から注意深く分離されなければならない。
【0008】
上に述べた全ての解決方法はコスト、複雑さおよび/または動作の上での制約を有する。本発明はより低いコストおよび複雑さをもってかつ動作周波数の制約なしに所望の機能および動作を可能にする。
【0009】
【課題を解決するための手段および作用】
前述の不都合は本発明によって克服されかつ他の利点も達成される。1つの形態では、本発明はデータプロセッサ内でプロセッサを第1の周波数で制御しかつバス動作を第2の周波数で制御するために単一のクロック信号を使用する方法を備えている。該方法はデータプロセッサの外部から前記単一のクロック信号を受信することによって開始される。前記クロック信号は前記第1の周波数で動作しかつアクティブエッジ(active edges)を有する。データプロセッサの外部から制御信号が受信される。該制御信号は前記単一のクロック信号のどのアクティブエッジがバス動作を行なうために使用されるかを指示するために使用される。バス動作を行なうために使用される前記クロック信号のアクティブエッジは第2の周波数を生じる結果となり、この場合該第2の周波数は前記第1の周波数より低いかまたは等しい。
【0010】
他の形態では、本発明はバスにアクセスするための少なくとも1つの端子を有する集積回路を備えている。該集積回路はクロック信号を受けるための端子およびクロッククオリファイア(clock qualifier)信号を受けるための端子を有する。前記クロック信号は複数のアクティブなクロックエッジを有する。前記クロッククオリファイア信号は前記複数のアクティブなクロックエッジにおける少なくとも1つのアクティブなクロックエッジを指示するために肯定され(asserted)、この場合前記複数のアクティブなクロックエッジにおける前記少なくとも1つのアクティブなクロックエッジは前記集積回路が前記集積回路の外部のバス動作をいつ行なうべきかを指示するために使用される。
【0011】
本発明は添付の図面と共に以下の詳細な説明を参照することによりさらに明瞭に理解されるであろう。
【0012】
【実施例】
以下、図面を参照して本発明の実施例につき説明する。なお、説明の簡略化および明瞭化のために、図面に示された各要素は必ずしも一定の比率で描かれていないことに注目すべきである。例えば、前記要素のいくつかの寸法は明瞭化のため他の要素に対し誇張されている。さらに、適切と考えられる場合には、参照数字は各図面の間で対応するまたは同様の要素を示すために反復されている。図5〜図7のタイミング図においてはハイ、ロー、またはトライステートのレベルのいずれかで描かれていない信号はこれらの時間の間未知であることを示している。
【0013】
知られたマイクロプロセッサユニット(MPU)はプロセッサクロックに対するバスクロックの可変比率をサポートするために数多くの異なる方法を使用している。以下に説明する方法および装置は現存の方法より優れており、それは以下の方法がより広い範囲の比率を可能にし、より柔軟性あるクロック制御を有し、かつ位相同期ループ(PLL)または電圧制御発振器(VCO)を使用しないからである。
【0014】
集積回路産業においては、MPUがプロセッサ周波数より低いバス周波数をサポートすることが重要である。この特徴はシステムが高い性能のために高い周波数のプロセッサを使用する間に低いコストを維持するために低い周波数のバスを備えたシステムの設計を可能にする。
【0015】
この特徴を提供するため、外部バスクロックに対するプロセッサクロックの関係を設定する方法が必要である。この方法はできるだけ広い範囲のプロセッサ周波数にわたり動作すべきである。今日のMPUについては、このことは100MHzまたはそれ以上からほぼ0Hz(DC)動作までのプロセッサ周波数をサポートすることを意味する。この動作の外部的な制御は付加的な柔軟性を提供できる。
【0016】
ここに説明する方法および装置はデータプロセッサがプロセッサクロック周期の任意の整数倍とすることができるバスクロック周期をサポートできるようにする。言い換えれば、バスクロック周波数はデータプロセッサのクロック周波数の任意の約数とすることができる。例えば、もしプロセッサのクロック周波数が50MHzであれば、バス動作は50MHz,25MHz,12.5MHz,6.25MHz、その他で行なうことができる。他の形式では、データプロセッサのクロックエッジに対応するランダムな、擬似ランダムな、または任意のパターンのクロックエッジをバス動作のためのアクティブなクロックエッジとして使用できる。例えばデータプロセッサが階級順に(rank order)1から20まで番号付けられた立上りエッジを有するクロック信号を有するものと仮定する。この場合、バスは、2,4,6,8などのような、単に周期的に番号付けられたエッジではなくクロック2,6,7,13,18および19をバス動作を行なうために使用できる。上に述べた動作は0Hzから最大仕様のプロセッサ周波数までの全てのプロセッサ周波数に対してサポートされ、かつこの動作はここではCLKEN*と名付けられた外部ピンによって制御される。
【0017】
要するに、(図1〜図4を参照)、この発明はデータプロセッサのクロックより低いバス周波数の動作をサポートするためにデータプロセッサのバス制御ユニットにおける新しい入力信号および制御論理からなる。新しい入力信号、CLKEN*、はデータプロセッサのクロック周波数より低いかまたは等しい外部バスクロック周波数での正しいバス動作を提供するためにデータプロセッサのバス制御ユニットによって使用される。データプロセッサにおけるプロセッサクロックピン(CLK)、および(データプロセッサのCLKより低いかまたは等しい周波数で動作する)外部バスクロックは同期されなければならない。特に、外部バスクロックは前記プロセッサクロックの周期の任意の整数倍または非周期的なクロック信号(上に述べたように)とすることができる。バス制御ユニットを含む、データプロセッサの全ての機能ユニットは全てのレジスタのために前記プロセッサクロックを使用し、一方バス動作(およびCPUとバスロジックとの間の、外部読出しおよび書込みのような、動作)はCPUクロックのアクティブエッジによって前記外部バスクロックと符合するよう時間が合わせられる。
【0018】
上に述べたクロッキング機能は次のように動作する(フル、ハーフおよび4分の1のバス−プロセッサ速度が示された図5〜図7を参照)。前記CLKEN*信号は外部バスクロックの立上りエッジと一致するプロセッサクロックの立上りエッジの前に肯定される。前記CLKEN*信号は外部バスクロックの立上りエッジと一致しないプロセッサクロックの全ての立上りエッジの前に否定される。前記プロセッサ周波数に等しいバス周波数の場合については、CLKEN*ピンは連続的に肯定され、それによって全てのプロセッサクロックエッジをバスクロックエッジに対し1対1の比率で選択しなければならない。プロセッサクロックに対するバスの比率はここに示された2分の1または4分の1のような2のべき乗である必要はなく、プロセッサクロック、外部クロック、およびCLKEN*信号の関係はバスクロック周期がプロセッサクロック周期の3または5倍の場合も可能である。バスクロック周波数に対するプロセッサクロック周波数の比率はバスクロックが周期的である場合は整数でなければならない(すなわち、24/6は4分の1の速度であり、24/8は3分の1の速度であり、24/12は半分の速度であり、24/24は最大速度であり、24/2.4は10分の1の速度である、などである)。
【0019】
全てのMPUの外部信号、全てのバス制御信号、アドレス信号、データ信号、その他に対し、前記CLKEN*信号は、データプロセッサのクロックの特定のエッジをイネーブルすることによりこれらの信号をバスクロック周波数で出力しかつ受信するために使用される。言い換えれば、CLKEN*信号によってイネーブルされるCLKクロックエッジは外部バスクロック信号に対応するエッジであり、かつバスは主として前記CLKEN*信号によってイネーブルされたプロセッサクロックのエッジに応じて動作を行なうことができる。その場合出力信号はプロセッサクロックの立上りエッジがCLKEN*信号によってイネーブルされた場合にのみ状態を変える。これは外部バスクロックの立上りエッジと一致するから、プロセッサの出力信号は外部バスクロックの立上りエッジと同期される。
【0020】
MPUへの全ての外部的に入力される信号に対し、CLKEN*信号はCLKのためのクオリファイア(qualifier)として使用される。入力信号はCLKEN*信号と論理的AND演算されかつ次にプロセッサクロックの立上りエッジでサンプルされる。したがって、入力はプロセッサにおいてCLKEN*信号が肯定されている場合にのみ有効なものと見られることになる。このことは外部クロックの立上りエッジと一致するから、入力信号は外部クロックの立上りエッジにおいてのみ有効である。入力信号は外部クロックと一致しないプロセッサクロックの全ての立上りエッジにおいて否定される。ここではアクティブエッジが言及されており、かつアクティブエッジは、ここでは立上りエッジが好ましく/説明されているが、立上りエッジ、立下りエッジ、または立上りエッジおよび立下りエッジの双方の組合せのいずれでも良い。
【0021】
したがって、図1において、バスインタフェースユニット(BIU)またはバスコントローラ14は第1のクロック周波数(CLK)で動作するプロセッサ(または中央処理ユニット[CPU]12)の動作を前記第1のクロック周波数(CLK)と同じかまたはそれより低速の周波数で動作する外部バス動作と結合する。プロセッサの出力信号は外部クロックの立上りエッジにおいてのみ状態を変えかつこれらのエッジの間では安定である。外部バス論理はプロセッサのバスインタフェースがその周波数で動作しかつそのクロックに同期していることを見て、外部バスが正しく動作できるようにする。内部プロセッサ論理はバス入力が外部バスクロックの立上りエッジと一致する前記CLKEN*信号によってイネーブルされたプロセッサクロックの立上りエッジにおいて状態を変えかつ次にCLKEN*が肯定されていなければプロセッサクロックの次の立上りエッジで否定するのを見る。プロセッサ(CPU12)はプロセッサクロックの立上りエッジがCLKEN*によってイネーブルされていない場合はバスインタフェースがアイドルバスサイクルと共にその周波数で動作するのを見る。
【0022】
全体的に見て、上に述べた装置および方法はプロセッサクロックおよびプロセッサバスクロック構造がプロセッサおよびバスクロックの動作および関係を制御し、それによってプロセッサ周波数がバス周波数の任意の整数倍となるようにすることができる。上で述べた設計はこの制御をプロセッサクロック(CLK)のための1つのピンおよびバスインタフェースクロックイネーブル(CLKEN*)のための1つのピンを使用して提供する。ここで述べた設計は広範囲の周波数関係をVCOまたはPLLなしにかつバスインタフェースクロックイネーブルのピンの比較的緩やかなタイミング制約によって可能にする。この設計は、概略的に、次のようになる。
【0023】
1)バス周期はプロセッサ周期の任意の整数倍またはランダムな/擬似ランダムなパターンとすることができる。
2)本設計はバスインタフェースクロックイネーブルのために1つのピン、CLKEN*、を使用する。
3)本設計は任意のプロセッサ周波数において正確な動作を提供する。
4)本設計はVCOまたはPLLなしに広範囲の周波数関係を提供する。
5)本設計はバスインタフェースクロックのイネーブルピンに比較的緩やかなタイミング制約を与える。
【0024】
本発明は図1〜図7を参照することによりさらに容易に理解できるであろう。図1は、データプロセッサ10内のバスコントローラ14に結合されたCPU12を示している。CPU12またはデータプロセッサ10はメモリ装置(SRAM装置、DRAM装置、EEPROM装置、EPROM装置、フラッシュ装置、その他のような)、インタフェース装置、任意の周辺装置、DMA装置、通信装置、タイマ、アナログ回路、マイクロプロセッサ、パイプライン化された実行装置、応用特定集積回路(ASIC)装置、プログラム可能ロジックアレイ(PLA)、ハードワイヤード論理、マイクロコードおよび/またはナノコードによって少なくとも部分的にソフトウェアドライブされる実行ユニット、複数の実行装置、デジタル信号プロセッサ(DSP)、コンピュータ、任意のデータプロセッサ、任意の中央処理ユニット(CPU)、集積回路、および/またはその他とすることができる。
【0025】
図1におけるCLK信号は外部からプロセッサ10へ入力され、あるいはプロセッサ10内で発生されてプロセッサ10内の動作を制御しかつ同期する。CLKEN*信号(クロックイネーブル信号、“*”はアクティブローを意味する)は前記CLK信号を外部バスクロック(図1には示されていない)に同期させるために使用される。CLKEN*が肯定されたとき、CLK信号の1つまたはそれ以上のアクティブエッジが識別される。CLK信号のこの識別されたアクティブエッジ(立下りまたは立上りエッジのいずれでも良いが、好ましくは立上りエッジ)は外部バスクロックのアクティブエッジと一致するかまたは同期したエッジであり、かつしたがって前記識別されたCLKエッジはバス動作のために使用できる。CLKEN*信号は周期的なものでも良くあるいは非周期的なものでもよい。(図示された)バスコントローラへのまたは該バスコントローラからのアドレス/データおよび制御は前記識別されたCLKエッジに応答して転送される。
【0026】
図2は、CLKEN*信号がどのようにして図2において総称的に「データ(DATA)」と名付けられた入りおよび出制御/データ/アドレス情報に同期するかを示す。図2は、Dフリップフロップ16およびDフリップフロップ18を示している。Dフリップフロップ18は出力として使用されかつDフリップフロップ16は入力として使用される。フリップフロップ16および18が与えられれば、図2の回路は単一の入力/出力I/Oピンを形成するために選択的に多重化またはトライステート化できることが明らかである。さらに、技術的に他のフリップフロップおよび記憶要素が知られておりかつフリップフロップ16および18の代わりに使用できる。
【0027】
CLK信号はフリップフロップ16および18とCPU12とに入力される。フリップフロップ16および18内のデータはCLKEN*に結合された肯定されたCE(クロックイネーブル)と共にクロック(CLK)エッジが現れない限り変更されない。外部バスクロックのアクティブエッジの付近でのCLKEN*の肯定によってプロセッサが、CLK速度で内部データを処理しかつ内部プロセッサ動作を行なう一方で、「データ」を外部バス周波数で受信しかつ送信できるようにする。
【0028】
図3は、いったんプロセッサが外部START*信号を受信すると前記CLKEN*信号が該プロセッサによって内部的に発生できることを示している。図3はCPU12、バスコントローラ14およびカウンタ/制御回路20を示している。カウンタ/制御回路20は入力として前記CLKおよび前記START*の外部信号を受信する。カウンタ/制御回路20はCLK−外部バスクロック比を知るようにプログラムされるかあるいはCLK−外部バスクロック比を識別する情報を提供される。カウンタ/制御回路20は外部バスクロックの1つのアクティブエッジを識別する外部START*信号の1つの肯定(assertion)を受信する。カウンタ/制御回路20は次に前記比率情報を使用して外部START*をさらに必要とすることなくバス動作のために使用できるアクティブエッジを識別するために内部CLKEN*信号を連続的に発生する。
【0029】
例えば、前記クロック(CLK)が20MHzで動作しておりかつ前記外部バスクロックが5MHzで動作しているものと仮定する。20MHz/5MHzの比率は4であり、かつしたがってバスは4分の1の動作モードで動作している。カウンタ/制御回路20は外部バスクロックの各々のクロックサイクルに対しCLKの4つのクロックサイクルが生じていることの情報を(「周波数データ(FREQUENCY DATA)」によって)与えられている。周波数データは外部からデータプロセッサ10へと前記アドレス/データ/制御バスを介して提供することができる。外部START*信号は前記第1の外部バスクロックのアクティブエッジを識別しかつカウンタ/制御回路20はレジスタに例えば3の数をロードする。4つのクロックが経験され、この場合3が2に減分され、次に1に、次にゼロに減分される。いったんゼロに到達すると、4つのクロックサイクルが発生しておりかつカウンタ/制御回路20は内部CLKEN*を肯定する。再び3がカウンタ/制御回路20にロードされかつ内部CLKEN*の次の肯定を発生するためゼロへのカウントダウンの処理が再び開始される。減分または増分のいずれを使用することもできる。カウンタの代わりに、リングカウンタ、状態マシン(state machine)、または同様の記憶要素を使用して内部CLKEN*信号を発生することができる。また、カウンタまたはリングカウンタは内部CLKEN*の周期的なまたは非周期的な肯定を行なうためにプログラムすることができる。
【0030】
図4は、データ処理システム内でフル、ハーフまたは4分の1のモードのバス動作を行なうための回路を示す。総称的に、図4は内部または外部CLKEN*信号を発生するために使用できる回路の一例を示す。最大速度(full speed)の動作(CLKEN*が絶えず肯定されている)については、HALFおよびQUARTER信号は共に絶えず否定されることになり、これは排他的NORゲート110の出力が絶えず論理“1”に肯定されるようにする。この排他的NORゲート110の出力からの連続的な論理“1”の出力はNORゲート116の出力が絶えず論理“0”に肯定されるようにするのに充分であり、前記論理“0”はDフリップフロップ118を通ると(staged)CLKEN*が絶えず論理“0”に肯定されるようにする。したがって、クロックCLKのそれぞれのアクティブなクロックエッジ(この場合は、立上りエッジ)が使用されてバス動作を行ないかつバスとプロセッサとが等しい速度で動作する。
【0031】
CLK周期1つおきに(ハーフスピード動作)、またはCLK周期4つごとに(4分の1速度動作)CLKEN*の肯定を行なうために、前記START*入力の否定ポイントはハーフスピードまたはクオータスピードのシステムクロックの立上りエッジと一致する適切なCLKエッジのすぐ前におけるCLKEN*の肯定およびすぐ後におけるCLKEN*の否定を適切に同期させるために重要である。言い換えれば、START*はCLKEN*の肯定を整列するために使用され、それによってCLKEN*信号がCLK信号のアクティブエッジ(この場合は、立上りエッジ)と一致するある時間の間肯定されるようにする。
【0032】
この正しい動作およびCLKEN*の同期を行なうために、Dフリップフロップ100、101および102がSYNC*パルスを発生するために使用される。START*はDフリップフロップ100を通って1つのCLK周期だけ遅らされ(staged)または遅延され、次にDフリップフロップ101を通って遅らされまたは遅延され、そして最後にDフリップフロップ102を通って遅らされまたは遅延される。Dフリップフロップ100のQ出力は次にDフリップフロップ102の反転された出力とAND演算されてSYNC*パルスを発生し、該パルスは初めにSTART*が否定された後にCLKの1周期だけ肯定され、CLKの2周期の間保持され、かつ次に否定される。
【0033】
否定入力ORゲート106およびDフリップフロップ108および109は巡回型のフィードバック発振器を形成するが、それは否定入力ORゲート106は反転要素として作用しかつDフリップフロップ108および109は遅延要素を形成するからである。Dフリップフロップ108および109による2つのレベルの遅延により、Dフリップフロップ108および109の出力はCLK周波数の4分の1の周波数を有する。さらに、Dフリップフロップ108のQ1出力はDフリップフロップ109のD入力に接続されているから、Dフリップフロップ109の出力はDフリップフロップ108の出力と位相がずれており、Dフリップフロップ109の出力はDフリップフロップ108の出力に90度、すなわち、CLKの1周期だけ遅れている。
【0034】
前記SYNC*信号は否定入力ORゲート106の他の入力に接続されておりDフリップフロップ108および109の出力とシステムクロックの立上りエッジと整列するCLKの立上りエッジとの間の時間的な配置または関係を制御する。SYNC*は2つのCLK周期の間肯定された状態に留まりかつ否定入力ORゲート106の出力を論理“1”にする。これによる“1”のDフリップフロップ108、および引続きDフリップフロップ109への入力はDフリップフロップ108および109の出力の発振シーケンスを前記SYNC*パルスが肯定された時間に同期させる。半分または4分の1の速度の動作については、排他的ORゲート110は論理“0”を出力することになるが、それは前記HALFまたはQUARTER信号のいずれかが肯定されるが両方ではないためである。したがって、排他的ORゲート110の出力はCLKEN*がこれらのクロック速度に対して肯定される時間に対して何らの影響ももたない。4分の1の速度の動作においては、HALFは否定されかつANDゲート114の出力は否定され、そしてANDゲート114の出力もまたCLKEN*が肯定される時間に対して影響を与えない。4分の1および2分の1の速度の動作モードにおいては、ANDゲート112はDフリップフロップ109の反転されたQ出力、Q2*、をDフリップフロップ108の非反転Q出力、Q1、と組合せる。
【0035】
CLKEN*をCLKの適切な立上りエッジおよびシステムクロックについて適切に同期させるために、START*はシステムクロックの立上りエッジと一致するCLKの立上りエッジの直後に否定されなければならない。START*が否定された時、SYNC*はCLKの1周期後に肯定され、Q1はSYNC*の肯定のCLK1周期後に肯定され、かつQ2はQ1の肯定よりCLK1周期後に肯定される。Q1およびQ2は50%のデューティサイクルを有する周期的なものであり、かつCLKの周波数の4分の1に等しい周波数で肯定および否定される。ANDゲート112の出力はQ1が肯定されかつQ2が否定されるたびごとに肯定される。これはSTART*が否定された後の3番目のCLK周期で発生しかつCLKの周波数の4分の1の周波数で周期的に発生する。ANDゲート112の出力はCLKの1周期の間のみ肯定状態となるが、それはQ2がQ1にCLKの1周期だけ遅れる、すなわち、ANDゲート112の出力は25%のデューティサイクルを有しかつCLKの周波数の4分の1の周期を有するからである。ANDゲート114の出力はHALFの状態に依存し、もしHALFが否定されていればこの出力は否定されることになる。ANDゲート114はDフリップフロップ108の反転出力、Q1、をDフリップフロップ109の非反転出力、Q2、と組合せる。ANDゲート114の出力は、HALFの肯定により、2分の1の速度のモードがイネーブルされた時およびQ1が否定されかつQ2が肯定された時にのみ肯定される。これは始めにSTART*が否定された後の第5のCLK周期に発生しかつCLKの周波数の4分の1の周波数で周期的に発生する。ANDゲート114の出力はCLKの1周期のみの間肯定状態に留まり、それはQ2はQ1に対しCLKの単一周期だけ遅れており、すなわち、ANDゲート114の出力は25%のデューティサイクルおよびCLKの周波数の4分の1の周期を有するからである。ANDゲート114の出力の肯定はANDゲート112の出力に対しCLK2周期分遅れることに注意を要する。
【0036】
4分の1の速度のモードにおいては、ANDゲート112のみがアクティブになる。NORゲート116はANDゲート112の出力を反転しかつそれをDフリップフロップ118を通して遅らせる。ANDゲート112の出力はSTART*が否定された時からCLKの3周期後にスタートして肯定され、かつしたがってCLKおよびシステムクロックのエッジが一致した時からCLK3周期後に肯定されるから、CLKとシステムクロックのエッジの次の整列よりもCLK1つ分前に肯定される。Dフリップフロップ118は次にNORゲート116の出力をCLKの1周期だけ遅らせまたは遅延させてCLKEN*を生成し、これはCLKとシステムクロックのエッジが整列するCLK周期のすぐ前のCLK1周期の間肯定される。
【0037】
2分の1の速度のモードにおいては、ANDゲート112および114は共にアクティブである。NORゲート116はANDゲート112および114の出力をOR演算しかつ反転してCLKの周波数の半分の周波数を有する信号を生成しかつ次にこの信号をDフリップフロップ118を通して遅らせる。ANDゲート112の出力はSTART*が否定された時からCLK3周期分後に、かつしたがってCLKおよびシステムクロックのエッジが一致した時からCLK3周期後にスタートして肯定されるから、それはCLKおよびシステムクロックのエッジの2番目の整列の時よりCLK1つ分前に肯定される。Dフリップフロップ118は次にNORゲート116の出力をCLK1周期分だけ遅らせまたは遅延させてCLKおよびシステムクロックのエッジが整列するCLK周期の直前のCLK1周期の間肯定されるCLKEN*を生成する。ANDゲート114の出力はSTART*が否定された後CLK5周期肯定されるから、NORゲート116の出力は2分の1の速度のモードでCLKとシステムクロックのエッジが次に整列する時よりCLK1つ分前に肯定される。Dフリップフロップ118は再びNORゲート116の出力をCLK1周期分だけ遅らせまたは遅延させてCLKとシステムクロックのエッジが整列するCLK周期の直前のCLK1周期の間肯定されるCLKEN*を生成する。ANDゲート112および114の出力は周期的ではあるが位相がずれているため、NORゲート116によるこれらの出力の組合せはCLKEN*が2分の1の速度のモードにおいてCLK周期1つおきに肯定されるようにする。信号START*はリセットの機能とすることができ、ユーザが呼び出すことができ、その他とすることができることに注目することが重要である。
【0038】
図5は、図4の回路のタイミング図を示す。CLKは内部プロセッサクロックでありかつ図5における外部バスクロックである。START*,SYNC*,HALF,QUARTER,Q1,Q2,CLKおよびCLKEN*は図4において示されかつ説明された。図5においては、バスはCLK内部クロックの速度に等しい周波数で動作している(すなわち、最大速度の動作)。この場合、内部CLKEN*信号は肯定されたアクティブローの値に保持され、それによってCLK信号のそれぞれのアクティブな立上りエッジがバス動作に使用される。前記内部CLKEN*信号は排他的NORゲート110によって肯定状態に保持されるが、それはHALFおよびQUARTER信号が共に最大速度のモードにおいてはロー(論理“0”)であるためである。
【0039】
図6は、図4の回路に対する他のタイミング図を示す。SYS_CLKはシステムの外部バスクロックであり、一方CLKは内部プロセッサクロックである。START*,SYNC*,HALF,QUARTER,Q1,Q2,CLKおよびCLKEN*は図4において示されかつ説明された。図6においては、バスはCLK内部クロックの半分の周波数である周波数で動作している(すなわち、2分の1の速度の動作)。この場合、内部CLKEN*信号はCLK信号の1つおきの立上りのアクティブエッジがバスの使用のために選択されるようにトグルされる。内部CLKEN*信号はゲート110,112,114および116を介してトグル肯定されるが、それは前記HALF信号が論理“1”でありかつ前記QUARTER信号が論理“0”であるためにである。CLKEN*はQ1およびQ2が共に肯定されている場合にのみ肯定される。
【0040】
図7は、図4の回路に対するさらに他のタイミング図を示す。SYS_CLKはシステムの外部バスクロックであり、一方CLKは内部プロセッサクロックである。START*,SYNC*,HALF,QUARTER,Q1,Q2,CLKおよびCLKEN*は図4において示されかつ説明された。図7においては、バスはCLK内部クロックの周波数の4分の1の周波数で動作している(すなわち、4分の1速度の動作)。この場合、内部CLKEN*信号はCLK信号の4つごとの立上りのアクティブエッジがバスの使用のために選択されるようにトグルされる。内部CLKEN*信号はゲート110,112,114および116を介してトグル肯定されるが、それは前記HALF信号は論理“0”でありかつ前記QUARTER信号は論理“1”であるためである。CLKEN*はQ1およびQ2の双方が共に肯定されている場合にのみ肯定される。
【0041】
バスクロックとプロセッサクロックとの間の関係は動的に変化し得ることに注目することが重要である。例えば、システムはある時間の間2分の1の速度で動作しかつ他の時間の間最大速度で動作できるなどである。他の回路はCLKEN*信号が外部バスクロック(SYS_CLK)の立上りエッジと一致するプロセッサクロックの立上りエッジの前に肯定され、かつ外部バスクロックの立上りエッジと一致しないプロセッサクロックの全ての立上りエッジの前に否定されるように構成することができ、これもまた依然として本発明の精神および範囲内にある。
【0042】
本発明が特定の実施例に関して図示されかつ説明されたが、当業者にはさらに他の修正および改善をなすことができる。例えば、バスのサイズおよび速度は大幅に変えることもできる。カウンタ/制御回路20は同じ機能を維持するが、設計の上で変えることもできる。図4の回路は他の動作上のバス速度をサポートするために変更することができ、かつCLKEN*の肯定において周期的、非周期的、ランダム、または擬似ランダムなものとすることができる。ここに教示されたデータプロセッサの出力はそれらがいくつかの場合においてCLKEN*クロックエッジに同期しない時間インターバルで状態を変えるように設計できることに注目することが重要である。したがって、この発明は示された特定の形式に限定されるものではなく、かつ添付の特許請求の範囲においてこの発明の精神および範囲から離れることのない全ての修正をカバーすることを意図していることを理解すべきである。
【0043】
【発明の効果】
以上のように、本発明によれば、簡単な回路構成および低コストでかつ回路および処理の複雑さを増大することなく、しかも動作周波数の制約なしに、マイクロプロセッサユニット(MPU)がプロセッサ(MPU)の周波数より低いバス周波数をサポートできるようにすることができる。
【図面の簡単な説明】
【図1】本発明に係わるデータ処理システムを示すブロック図である。
【図2】本発明に係わる他のデータ処理システムを示すブロック図である。
【図3】本発明に係わるさらに他のデータ処理システムを示すブロック図である。
【図4】本発明にしたがってデータプロセッサのクロックの4分の1および2分の1の速度でバスを動作させるための制御回路を示すブロック図である。
【図5】図4の回路によって最大のマイクロプロセッサのクロック速度でのバス動作を示すタイミング図である。
【図6】図4に示された回路において2分の1のマイクロプロセッサのクロック速度でのバス動作を示すタイミング図である。
【図7】図4に示された回路において4分の1のマイクロプロセッサのクロック速度でのバス動作を示すタイミング図である。
【符号の説明】
10 データプロセッサ
12 CPU
14 バスコントローラ
16,18 Dフリップフロップ
20 カウンタ/制御回路
100,101,102,108,109,118 Dフリップフロップ
104 NANDゲート
106 否定入力ORゲート
110 排他的ORゲート
112,114 ANDゲート
116 NORゲート
Claims (6)
- バスに結合された少なくとも1つの端子を有する集積回路(10)であって、
クロック信号(CLK)を受けるための端子であって、前記クロック信号は複数のアクティブなクロックエッジを有するもの、そして
クロッククオリファイア信号(CLKEN)を受けるための端子であって、前記クロッククオリファイア信号は前記複数のアクティブなクロックエッジにおいて少なくとも1つのアクティブなクロックエッジを指示するために肯定され、前記複数のアクティブなクロックエッジにおける前記少なくとも1つのアクティブなクロックエッジは前記集積回路がいつ前記集積回路の外部の少なくとも1つのバス動作を行なうべきかを指示するために使用されるもの、
を具備し、前記集積回路はバス動作を行なうために前記クロッククオリファイア信号によって適格とされる幾つかの端子および前記クロッククオリファイア信号と独立に機能する他の端子を有することを特徴とするバスに結合された少なくとも1つの端子を有する集積回路(10)。 - データ処理装置であって、
前記データ処理装置内のデータを操作するための中央処理ユニット(CPU)であって、該CPUは複数のアクティブエッジを有するクロック信号を受信するもの、
前記CPUに結合され前記クロック信号を受信しかつ制御信号を受信するための回路、そして
前記制御信号を受信するための端子であって、前記制御信号は前記複数のアクティブエッジ内のどのアクティブエッジが前記バスと前記データ処理装置との間の動作のために使用できるかを指示するために肯定されるもの、
を具備することを特徴とするデータ処理装置。 - データ処理装置であって、
複数のアクティブエッジを有するクロック信号を受信したことに応じて前記データ処理装置内でデータを操作するための中央処理ユニット(CPU)、
前記CPUに結合され前記クロック信号を受信しかつ制御信号を受信するためのバス制御回路、そして
前記制御信号を受信するための端子であって、前記クロック信号は前記中央処理ユニット(CPU)の動作を制御するために使用され、かつ前記クロック信号ならびに前記制御信号は前記バス制御回路および前記データ処理装置がいつ通信すべきかを決定するために一緒に使用されるもの、
を具備することを特徴とするデータ処理装置。 - データ処理装置であって、
前記データ処理装置内でデータを操作するための中央処理ユニット(CPU)、
前記CPUに結合され複数のアクティブエッジを有するクロック信号を受信しかつ制御信号を受信するためのバス制御回路、
前記クロック信号を受信するための第1の端子であって、前記クロック信号は前記バス制御回路に通信されるもの、そして
前記制御信号を受信するための第2の端子であって、前記クロック信号は前記中央処理ユニット(CPU)の動作を制御するために使用される特定の時間フレーム内にNのアクティブなクロックエッジを有し、そして前記クロック信号ならびに前記制御信号は前記特定の時間フレーム内にMのアクティブなクロックエッジを規定し、この場合Mのアクティブなクロック信号はバス動作を開始するために使用され、NおよびMはゼロより大きな有限の整数であり、N≧Mであるもの、
を具備することを特徴とするデータ処理装置。 - データ処理装置内で第1の周波数で処理装置を制御しかつ第2の周波数でバス動作を制御するために単一のクロック信号を使用する方法であって、
前記単一のクロック信号をデータプロセッサの外部から受信する段階であって、前記クロック信号は前記第1の周波数で動作しておりかつアクティブなエッジを有するもの、そして
前記データ処理装置の外部から制御信号を受信する段階であって、前記制御信号は前記単一のクロック信号のどのアクティブエッジがバス動作を行なうために使用されるかを指示するために使用され、バス動作を行なうために使用される前記クロック信号のアクティブエッジは第2の周波数を生じ、この場合該第2の周波数は前記第1の周波数より低いかまたは等しいもの、
を具備することを特徴とするデータ処理装置内で第1の周波数で処理装置を制御しかつ第2の周波数でバス動作を制御するために単一のクロック信号を使用する方法。 - バスに結合された少なくとも1つの端子を有する集積回路(10)であって、
クロック信号(CLK)を受けるための端子であって、前記クロック信号は複数のアクティブなクロックエッジを有するもの、そして
クロッククオリファイア信号(CLKEN)を受けるための端子であって、前記クロッククオリファイア信号は前記複数のアクティブなクロックエッジにおいて少なくとも1つのアクティブなクロックエッジを指示するために肯定され、前記複数のアクティブなクロックエッジにおける前記少なくとも1つのアクティブなクロックエッジは前記集積回路がいつ前記集積回路の外部の少なくとも1つのバス動作を行なうべきかを指示するために使用されるもの、
を具備し、前記クロッククオリファイア信号は1回肯定され、前記クロッククオリファイア信号の1つの肯定は前記集積回路の内部のカウント回路をスタートさせ、前記カウント回路は肯定された時に前記複数のアクティブなクロックエッジにおけるアクティブなクロックエッジを示す周期的な制御信号または非周期的な制御信号を発生し、前記複数のアクティブなクロックエッジにおける前記アクティブなバスクロックのエッジは前記集積回路がいつ前記集積回路の外部のバス動作を行なうべきかを指示するために使用されることを特徴とするバスに結合された少なくとも1つの端子を有する集積回路。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/172,985 US5485602A (en) | 1993-12-27 | 1993-12-27 | Integrated circuit having a control signal for identifying coinciding active edges of two clock signals |
US08/172,985 | 1993-12-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07210267A JPH07210267A (ja) | 1995-08-11 |
JP3739431B2 true JP3739431B2 (ja) | 2006-01-25 |
Family
ID=22630015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP33422594A Expired - Fee Related JP3739431B2 (ja) | 1993-12-27 | 1994-12-16 | 集積回路およびデータ処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5485602A (ja) |
JP (1) | JP3739431B2 (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3490131B2 (ja) * | 1994-01-21 | 2004-01-26 | 株式会社ルネサステクノロジ | データ転送制御方法、データプロセッサ及びデータ処理システム |
US5643273A (en) * | 1995-02-17 | 1997-07-01 | Clark; Ron | ACL bone tunnel projection drill guide and method for its use |
US5758132A (en) * | 1995-03-29 | 1998-05-26 | Telefonaktiebolaget Lm Ericsson | Clock control system and method using circuitry operating at lower clock frequency for selecting and synchronizing the switching of higher frequency clock signals |
US5590316A (en) * | 1995-05-19 | 1996-12-31 | Hausauer; Brian S. | Clock doubler and smooth transfer circuit |
US5754867A (en) * | 1996-03-20 | 1998-05-19 | Vlsi Technology, Inc. | Method for optimizing performance versus power consumption using external/internal clock frequency ratios |
EP0840237B1 (en) * | 1996-10-29 | 2007-01-03 | Matsushita Electric Industrial Co., Ltd. | Synchronization of data processor with external bus |
US6047382A (en) * | 1997-09-26 | 2000-04-04 | Advanced Micro Devices, Inc. | Processor with short set-up and hold times for bus signals |
JP3610854B2 (ja) | 1999-12-27 | 2005-01-19 | 株式会社日立製作所 | 情報処理装置および情報処理システム |
AT501536B1 (de) * | 2003-04-08 | 2007-02-15 | Tttech Computertechnik Ag | Zeitgesteuertes betriebssystem für echtzeitkritische anwendungen |
US7158536B2 (en) * | 2004-01-28 | 2007-01-02 | Rambus Inc. | Adaptive-allocation of I/O bandwidth using a configurable interconnect topology |
US7400670B2 (en) | 2004-01-28 | 2008-07-15 | Rambus, Inc. | Periodic calibration for communication channels by drift tracking |
US7272736B2 (en) * | 2004-03-03 | 2007-09-18 | Intel Corporation | Method and system for fast frequency switch for a power throttle in an integrated device |
US6961862B2 (en) | 2004-03-17 | 2005-11-01 | Rambus, Inc. | Drift tracking feedback for communication channels |
KR100551475B1 (ko) * | 2004-08-31 | 2006-02-14 | 삼성전자주식회사 | 비주기 클록옵션을 가지는 메모리 모듈과 모듈용 메모리칩 및 허브 칩 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5086427A (en) * | 1990-04-09 | 1992-02-04 | Unisys Corporation | Clocked logic circuitry preventing double driving on shared data bus |
US5261081A (en) * | 1990-07-26 | 1993-11-09 | Ncr Corporation | Sequence control apparatus for producing output signals in synchronous with a consistent delay from rising or falling edge of clock input signal |
-
1993
- 1993-12-27 US US08/172,985 patent/US5485602A/en not_active Expired - Lifetime
-
1994
- 1994-12-16 JP JP33422594A patent/JP3739431B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US5485602A (en) | 1996-01-16 |
JPH07210267A (ja) | 1995-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3739431B2 (ja) | 集積回路およびデータ処理装置 | |
EP1451666B1 (en) | Glitch free clock selection switch | |
US5834956A (en) | Core clock correction in a 2/N mode clocking scheme | |
US5796995A (en) | Circuit and method for translating signals between clock domains in a microprocessor | |
JP4384819B2 (ja) | 弾性インターフェース装置およびそのための方法 | |
US5450458A (en) | Method and apparatus for phase-aligned multiple frequency synthesizer with synchronization window decoder | |
JP3587162B2 (ja) | データ転送制御装置及び電子機器 | |
US8375239B2 (en) | Clock control signal generation circuit, clock selector, and data processing device | |
US6563349B2 (en) | Multiplexor generating a glitch free output when selecting from multiple clock signals | |
KR100385155B1 (ko) | 외부핀신호를다중화하는장치를포함하는집적프로세서 | |
US6065126A (en) | Method and apparatus for executing plurality of operations per clock cycle in a single processing unit with a self-timed and self-enabled distributed clock | |
US5802132A (en) | Apparatus for generating bus clock signals with a 1/N characteristic in a 2/N mode clocking scheme | |
WO1998050844A1 (en) | Processor with sleep and deep sleep modes | |
JPH10154022A (ja) | データ処理システム内の種々のクロック源間を切り替える装置およびその方法 | |
US5422914A (en) | System and method for synchronizing data communications between two devices operating at different clock frequencies | |
JPH10161767A (ja) | 小電力状態に出入するときにデータ処理システム内のクロックを自動的に順序付ける装置およびその方法 | |
US5862373A (en) | Pad cells for a 2/N mode clocking scheme | |
JPH06502264A (ja) | 動的に切替え自在な多周波数クロック発生器 | |
JPH08298503A (ja) | 非整数倍クロック変換器およびその方法 | |
US6550013B1 (en) | Memory clock generator and method therefor | |
US6675249B2 (en) | Information processing equipment and information processing system | |
JP3616468B2 (ja) | データ同期システム | |
US6636980B1 (en) | System for launching data on a bus by using first clock for alternately selecting data from two data streams and using second clock for launching data thereafter | |
EP1335268A2 (en) | Glitchless clock selection circuit | |
US5821784A (en) | Method and apparatus for generating 2/N mode bus clock signals |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20050126 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20041217 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050308 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20050608 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20050613 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050907 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20051018 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051102 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081111 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091111 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101111 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101111 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111111 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121111 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121111 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131111 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |