(57)【特許請求の範囲】
【請求項１】
クロック周波数を有するクロック信号を受取るよう構成されるクロック入力と、
前記クロック入力に接続され、かつクロック選択信号に応答して前記クロック入力へ与えられる前記クロック周波数の選択された倍数の内部クロックを与える出力を有する倍数クロック回路と、
前記倍数クロック回路に接続され、前記選択された倍数が選択されたときに前記内部クロックの前記クロック周波数の逆数に対応する第２の期間よりも長い第１の期間で機能を行ないかつ結果を出力するように構成される内部回路と、
前記クロック選択信号と前記内部回路とに接続され、クロックサイクルの予め定められた数を計数するように構成される計数回路とを含み、前記計数回路は、クロックサイクルの前記予め定められた数が計数されたときに、内部回路からの出力が有効であることを示す信号を出力する、マイクロプロセッサ。
【請求項２】
クロック選択信号に従って複数のクロック周波数から選択される内部クロック周波数で内部で動作するマイクロプロセッサであって、
マイクロプロセッサ内部の、同一機能を行なうように各々が設計された複数の回路を含み、複数の回路の各々は、複数のクロック周波数の１つに対応して、対応するクロック周波数の最小数のクロックで同一機能を行ない、さらに
複数の回路の各々から出力を受取るように接続され、かつ内部クロック周波数に対応する前記複数の回路の１つからの出力を選択するためのセレクタを含む、マイクロプロセッサ。
【請求項３】
クロックサイクルの前記予め定められた数は時間において前記第１の期間のｎ倍に対応し、ｎは整数であり、
前記第２の期間の（ｎ−１）倍は前記第１の期間よりも小さく、前記第２の期間のｎ倍は前記第１の期間に等しいかまたはそれよりも大きい、請求項１に記載のマイクロプロセッサ。
【請求項４】
関連するクロック周波数を有するクロック信号を受取るよう構成されるクロック入力と、
前記クロック入力に接続され、かつクロック選択信号に応答して前記クロック入力へ与えられる前記クロック周波数の選択された倍数の内部クロックを与える出力を有する倍数クロック回路とを含み、前記クロック周波数の前記選択された倍数の各々は、前記クロッ
ク周波数の前記対応する選択された倍数の逆数として定められる関連する内部クロック期間を有し、さらに
前記倍数クロック回路および前記クロック選択信号から前記内部クロック信号を受取るよう構成される内部回路を含み、前記内部回路は、前記選択された倍数の少なくとも１つが選択されたときに前記内部クロックの前記クロック周波数の前記選択された倍数の１つに対応する前記関連する内部クロック期間よりも長い期間で機能を行なうよう構成され、
前記内部回路は、前記クロック選択信号に応答し、前記選択された倍数の前記１つに対応する複数の状態を経て動作し、
前記倍数クロック回路は、
前記クロック信号を受取って前記クロック信号を出力するよう構成される第１の部分と、
前記クロック信号を受取り、前記クロック信号に第１の整数値を乗じ、その結果として関連する第１の乗算されたクロック周波数を有する第１の乗算されたクロック信号を出力するよう構成される第２の部分と、
前記クロック信号を受取り、前記クロック信号に前記第１の整数値とは異なる第２の整数値を乗じ、その結果として関連する第２の乗算されたクロック周波数を有する第２の乗算されたクロック信号を出力するよう構成される第３の部分と、
制御入力における前記クロック選択信号を受取るよう構成され、かつ第１の入力ポートにおける前記第１の部分からの前記クロック信号と、第２の入力ポートにおける前記第１の乗算されたクロック信号と、第３の入力ポートにおける前記第２の乗算されたクロック信号とを受取るように構成されるマルチプレクサとを含み、前記マルチプレクサは前記クロック選択信号の状態に従って前記クロック信号、第１の乗算されたクロック信号および第２の乗算されたクロック信号のうちの１つを出力し、
前記内部回路は、前記クロック周波数における第１の複数のクロック期間において前記機能を行なうよう構成される第１の部分と、前記第１の乗算されたクロック周波数における第２の複数のクロック期間において前記機能を行なうよう構成される第２の部分と、前記第２の乗算されたクロック周波数における第３の複数のクロック期間において前記機能を行なうよう構成される第３の部分とを有し、前記クロック選択信号の前記状態に基づいて前記機能を行なうために前記内部回路の前記第１の部分、第２の部分および第３の部分の１つが選択され、
第１の複数は前記第２の複数よりも小さく、前記第２の複数は前記第３の複数よりも小さい、マイクロプロセッサ。
【請求項５】
前記内部回路はキャッシュメモリであり、前記キャッシュメモリによって行なわれる前記機能はスヌープ機能と、照合機能と、アイドル機能とを含み、
前記キャッシュメモリは第１の状態、第２の状態および第３の状態の１つで動作可能であることにより、前記第１の状態においては、前記キャッシュメモリは前記スヌープ機能、前記照合機能および前記アイドル機能のすべてを前記クロック周波数の逆数として定められる第１のクロック期間内に行ない、前記第２の状態においては、前記キャッシュメモリは前記第１の乗算されたクロック周波数の逆数として定められる第２のクロック期間内に前記スヌープ機能および照合機能を行なうが前記アイドル機能は行なわず、前記アイドル機能を続く第２のクロック期間に行ない、第３の状態においては、前記キャッシュメモリは前記スヌープ機能のみを前記第２の乗算されたクロック周波数の逆数として定められる第３のクロック期間に行なって、前記照合機能を続く第３のクロック期間に行ない、前記アイドル機能を次に続く第３のクロック期間に行ない、
前記クロック選択信号の前記状態は、前記キャッシュメモリの前記第１、第２および第３の状態のいずれが選ばれるかを定める、請求項４に記載のマイクロプロセッサ。
【発明の詳細な説明】
【０００１】
【発明の分野】
この発明は、倍数クロック周波数オプションを有するマイクロプロセッサにおいて使用するための自己構成スピードパスに関する。より特定的にはこの発明は、倍数クロックマイクロプロセッサにおいてクロック選択信号に応答し、スピードパスの通常の動作能力よりも高い周波数を有するクロック信号で使用するためのスピードパスを構成する、再構成可能なスピードパスに関する。
【０００２】
倍数クロックオプションを有するマイクロプロセッサにおいては、マイクロプロセッサ内で、外部クロックの倍数で複数のクロック周波数を出力する回路へ、たとえば、２５ＭＨｚの第１の周波数の外部クロックが与えられる。こうして、このようなマイクロプロセッサへ与えられるクロックは、外部から与えられたクロック周波数の複数の倍数のうちの１つで内部クロックを出力する回路を有する。たとえば２５ＭＨｚのクロックであれば、ユーザは２５ＭＨｚ、５０ＭＨｚまたは７５ＭＨｚの内部クロックを選択できるだろう。内部クロックは、マイクロプロセッサの個々の機能回路により用いられる。システム全体の性能を最良にするクロック倍数を選択することが一般に望ましい。
【０００３】
そのような従来の装置と関連して問題が生じるのは、クロック周波数が高い倍数のうちの１つで選択されるときである。なぜなら特定の機能回路が、その機能を行なうのに１をこえるクロックサイクルを要求することがあるからである。この結果スピードパスをもたらす。ここで用いられるスピードパスとは、プロセッサ内の他のパスよりも解決に時間がかかるパスである。そのようなスピードパスは、プロセッサの内部クロック周波数に上限を課す。この問題を克服するために速いスピードパスを設計するのにかなりの努力がされてきた。なぜなら最悪のスピードパスのタイミングが、結局、マイクロプロセッサの最高動作周波数を制限するからである。
【０００４】
【発明の概要】
したがって、この発明の目的は、自己構成スピードパスを用いることにより、従来の倍数クロックマイクロプロセッサに関連した上述の欠点を克服することである。
【０００５】
この発明の別の目的は、倍数クロックオプションのあるマイクロプロセッサにおいてクロック構成を用いてスピードパスを再構成し、倍数クロックオプションを有する従来のマイクロプロセッサで経験した動作周波数におけるスピードパスの限度を避けることである。
【０００６】
これらおよび他の目的を達成するために、外部クロックを受取るためのクロック入力と、クロック選択信号に応答して外部クロックの周波数の選択された倍数で内部クロックを与える倍数クロック回路と、可能な内部クロック倍数のいずれかに対応する期間よりも長い期間をかけて機能を行なう内部回路とを有するマイクロプロセッサが提供される。内部回路は、クロック選択信号に応答して選択された倍数に対応する複数の状態を経るように動作する。
【０００７】
この発明の別の実施例に従えば、外部クロックおよびクロック選択信号を受取るように接続され、クロック選択信号に従って複数のクロック周波数の１つで内部クロックを作り出す内部信号生成回路と、クロック選択信号の第１の値に従って第１の数のラッチステージで、クロック選択信号の第２の値に従って第２の数のラッチステージで機能を行なう状態機械として構成される内部回路とを含むマイクロプロセッサが提供される。
【０００８】
別の実施例に従えば、クロック入力と、クロック選択信号に応答して、クロック入力に与えられる周波数の選択された倍数で内部クロックを与える出力を有する倍数クロック回路と、選択された倍数の１つが選択されるとき、内部クロックに対応する第２の期間よりも長い第１の期間で機能を行ないかつ結果を出力する内部回路と、クロック選択信号と内部回路とに接続され、クロックサイクルの予め定められた数を計数するように構成された計数回路とを含み、クロックサイクルの予め定められた数が計数されると、計数回路が内部回路からの結果が有効であることを示す信号を出力するマイクロプロセッサが提供される。
【０００９】
この発明の特徴は、以下に明らかにされた好ましい実施例の詳細な説明および添付図面から理解されるであろう。
【００１０】
【好ましい実施例の詳細な説明】
図１は、この発明の実施例による倍数クロック周波数オプションを有するマイクロプロセッサを示す。図１では、外部クロックＣＬＫがマイクロプロセッサ１に与えられる。逓倍周波数内部クロック生成回路３がマイクロプロセッサ１内に設けられ、これは外部クロックＣＬＫの周波数の倍数の出力を与える。図１で示された例では、外部クロックＣＬＫは２５ＭＨｚのクロック周波数で与えられる。内部クロック周波数生成回路は、信号線５に沿ってクロック選択信号とともに外部クロックＣＬＫを受取る。内部クロック周波数は、マイクロプロセッサ１の所望される用途に従って選択されるだろう。このように、倍数クロックオプションを有するマイクロプロセッサの究極の用途に従って、内部クロック生成回路３の部分の１つ、３ａ、３ｂまたは３ｃが選択される。内部クロック生成回路は、それぞれ２５ＭＨｚ、５０ＭＨｚまたは７５ＭＨｚを出力する。クロック選択線５に沿ってクロック選択信号を受取るマルチプレクサ７により、この選択がなされるだろう。
【００１１】
内部プロセッサクロックは、信号線９へのマルチプレクサの出力である。信号線９上の内部クロックは、次いで個々の機能回路１１、１３および１５に与えられる。既に述べたように、外部クロック周波数は２５ＭＨｚであるが、信号線９上のこの内部クロック周波数は、２５ＭＨｚ、５０ＭＨｚまたは７５ＭＨｚのいずれでもあり得る。図１は、クロック周波数の３倍までの倍数を示すが、クロック周波数倍数のいずれの数でも用いることができることに注目すべきである。上で述べたように、機能回路１１、１３および１５が対応できる限りもっとも高い周波数を選択し、マイクロプロセッサの性能を向上させることが望ましい。しかしながらこの場合、クロック周波数が高い倍数の１つであるとき、機能回路１１、１３、１５のうち１つまたは２つ以上がその機能を果たすのに１をこえるクロックサイクルを要するかもしれない。
【００１２】
高い内部クロックスピードに対応するために、この発明の最初の実施例において、スピードパス回路はクロック倍数の数が状態の数であるような状態機械として構成することができる。たとえば、回路１１が５０ＭＨｚの速度で１クロックサイクルにおいて成し遂げられる機能を行なうと仮定しよう。したがって、もしマルチプレクサ７により出力される信号線９上の内部クロックが、２５ＭＨｚの３ａまたは５０ＭＨｚの３ｂのいずれかとして選択されるならば、回路１１は正しく動作するだろう。５０ＭＨｚで動作し、かつ１クロックサイクル内で機能を完了する回路１７ａを用いることで、これは成し遂げられる。
【００１３】
一方、もしユーザが、信号線９上の内部クロックとして７５ＭＨｚの３ｃを選択するような信号をクロック選択線５上に送信すると、ブロック１７ａ内の５０ＭＨｚ回路は、１クロックサイクル内ではその処理を完了しないだろう。それゆえ、２つのサイクルを用いる必要があるだろう。７５ＭＨｚで２つのクロックサイクルで同じ機能を行なう回路１７ｂを用いることで、これは成し遂げられる。回路１７ａまたは１７ｂのいずれを用いるべきかは、信号線５に供給されるクロック選択信号に基づいて決定される。こうして、マイクロプロセッサ内の他の回路は高い周波数（たとえば７５ＭＨｚ）で動作し続け、一方で機能ブロック１１の回路は２つのクロックパルスをとるように再構成され、実質的に３７．５ＭＨｚで動作する。
【００１４】
図２から図５は、図１と関連して、複数状態機械の状況でのこの発明による第２の実施例を示す。第２の実施例では、機能回路１３は、メモリ１９に対するスヌープ機能を行なうキャッシュである。スヌープ機能とは、キャッシュメモリ１３がメモリ１９を照合し、キャッシュ内の情報が最新のものかどうかを決定するときに用いられる。スヌーピング機能の詳細はこの発明の一部ではなく、一般に周知である。したがって、スヌーピングのさらなる詳細な説明はここでは提供されない。
【００１５】
図２は、状態機械のさまざまな構成を示す目的のために倍数周波数クロック（すなわち２５ＭＨｚ、５０ＭＨｚおよび７５ＭＨｚ）を示している。図３は、２５ＭＨｚでの状況を示すが、この場合キャッシュ１３がメモリ１９をスヌープし、キャッシュの内容に対して情報を比較または照合し、かつさらにアイドル時間を有するのに十分な時間がある。したがってこのキャッシュは、２５ＭＨｚ、すなわち外部クロックの１倍の単一状態機械である。
【００１６】
図４は、たとえば５０ＭＨｚで存在し得る第２の状況を示す。この例では、第１のクロックサイクルの間に、スヌーピングおよび照合動作が完了し、第２のクロックサイクルの間は、スヌープ作業はアイドルである。この例において、このキャッシュマシンは、外部クロックの周波数の２倍に対応する２状態機械として構成された。
【００１７】
図５は、たとえば、７５ＭＨｚで存在する第３の状況を示す。この例では、スヌープを完了するのに１クロックサイクルが要求され、第２のクロックサイクルで照合を完了し、その状態機械は第３のクロックサイクルの間アイドルである。このように外部クロックの３倍では、状態機械は３状態を有する。アイドル周期の間、他の活動が可能であることに注目すべきである。このように、図４および図５において、アイドル周期の間、状態機械を他の何らかのタスクのために用いることが可能である。さらに、もし図５において、スヌーピングおよび照合が１クロック周期で行なわれるとすれば、２つのアイドル状態が他の用途のために利用できるだろう。
【００１８】
図６および図７は、この発明の第３の実施例を示す。図６は、入力Ｉ１  およびＩ２  を有する従来の乗算回路３０ａを示す。乗算回路３０ａは、Ｉ１  およびＩ２  を受取る乗算器３１と乗算器３１からの出力を受取る加算器３２とを含む。乗算器３１および加算器３２の機能は組合されて、乗算回路３０の出力３３を作り出す。２５ＭＨｚでは、１クロックサイクルで完全な乗算を完了することが可能で、結果として単一状態機械をもたらすであろう。しかしながら、５０ＭＨｚでは、１サイクルで乗算器３１における乗算および加算器３２における加算の両方を完了させることはできないだろう。したがって、この従来の回路は、内部動作周波数を２５ＭＨｚまでに制限するスピードパスになり得る。
【００１９】
図７は、この発明の実施例に従った乗算回路３０ｂを示す。従来の回路は、５０ＭＨｚでの動作を完了させることはできないだろうが、第１サイクルで乗算、かつ第２サイクルで加算を実行することが可能であるかもしれない。図７で示されるように、乗算器３１からの出力は、第１クロック周期の間ラッチ３４に与えられる。クロック選択信号５の状態によって加算器３２および３６が次いで用いられ、マルチプレクサ３８は、加算器３２（２５ＭＨｚ状態で）または加算器３６（５０ＭＨｚ状態で）からの出力のいずれかを選択する。こうして、乗算回路３０ｂは、クロック選択信号５に応答して正しく自己構成し、内部クロックの周波数によって１クロックサイクルまたは２クロックサイクルのいずれかで乗算を実行する。
【００２０】
図８は、実行保持を用いるこの発明のさらに別の実施例を示す。図８の実施例において、図１の双対回路１７ａおよび１７ｂは、正しい周波数のために自己構成する単一回路に置換えられる。図８では、内部クロックの第１位相φ１  でラッチ４６へラッチされ、次のクロックの第２位相φ２  でトリガされる出力ラッチ４５へラッチされる入力を回路は受取る。
【００２１】
図８で示される実施例で、スピードパスが用いられるとき、クロック構成は計数器４０へロードされ、この計数器は、スピードパスの解決に必要な内部クロックサイクルの数を計数する。これはクロック選択信号５に応答している。計数器４０が、正しいクロックの数を計数しスピードパスを解決するまで、信号線４２の状態はＡＮＤゲート４３の出力が低いままとなるようになっている。クロック周期の必要な数が満了したことを計数器が決定すると、線４２上の信号はハイになり、位相φ２  クロックがラッチ４５に届くようになる。要求されるクロック周期の数は、ラッチ４６からの入力を受取る機能ブロック４４により行なわれる機能により決定される。その結果、「ｎ」個のサイクルが完了し、かつ機能の実行が達成さるまで機能回路４４からの出力はラッチされない。
【００２２】
図９は、この発明のさらに別の実施例を示す。図９は、図６、図７で示される具体例のより一般的な応用である。この実施例では、さまざまな内部クロック周波数のためにさまざまな回路が設けられるような多重回路が設計される。図９において、入力５１が機能回路５０全体に対して設けられる。機能回路５０は、３つの別個の動作バス５２、５３および５４からなり、各々は同じ機能動作を実行するように設計されている。回路５２、５３および５４の各々は特定の内部周波数と関連していて、スピードパスを作るのに必要な最少数のクロックサイクルを用いて機能を実行するように設計されている。たとえば、回路５２、５３および５４は、それぞれ２５ＭＨｚ、５０ＭＨｚおよび７５ＭＨｚの選択された倍数で動作するように設計され得る。回路５２、５３および５４の出力は、マルチプレクサ５７へ与えられる。マルチプレクサ５７は、クロック選択信号に基づいて出力の１つを選択する。こうして、出力は、選択された内部周波数に対して最少の数のクロックサイクルで所望される機能を実行する特定の回路のものが選択される。
【００２３】
複数命令が動作パスのさまざまな機能部分で操作され得るので、図９の実施例はパイプライン環境に特に適応している。たとえば、動作パス５２は、それぞれクロックφ１  およびφ２  に従って動作するラッチ５２１および５２３を含み得る。機能回路５２２は機能ＦＡＢを実行する。このパスは、２５ＭＨｚの内部周波数で用いられるので、機能ＦＡＢ全体を実行するのに十分な時間がある。代わりに、動作パス５３は、ラッチ５３１および５３３ならびに動作回路ＦＡ  およびＦＢ  を含む。動作パス５３は５０ＭＨｚで動作するので、１サイクルで機能ＦＡＢ全体を完了させることはできない。したがって、機能は２つのステップＦＡ  およびＦＢ  に分割され、これらは組合されると全体の機能ＦＡＢとなる。こうしてφ１  の第１クロックサイクルでＦＡ  が処理され、φ１  の第２クロックサイクルでＦＢ  が処理されるだろう。回路がパイプラインで動作するとき、機能ＦＢ  が現在の命令に対して実行されている間に次の命令に対して機能ＦＡ  を実行することが可能である。言い換えると、機能ＦＡＢ全体の部分は、同時に複数命令に対して実行されることが可能である。このように図９の実施例は図８よりも広いスペースを使用するが、１つ以上の命令が動作パスにより同時に操作可能であるので、性能を向上させることができる。
【００２４】
上記の実施例がこの発明の特徴を示すが、この発明は開示される特定の実施例に限定されない。この発明の特徴に関する多くの変形がこの開示を参照にして当業者に明らかになるであろう。したがって、この発明は前掲の請求項によって限定されるだけである。
【図面の簡単な説明】
【図１】この発明の実施例に従ったマイクロプロセッサを示す図である。
【図２】この発明の第２の実施例の動作を示す図である。
【図３】この発明の第２の実施例の動作を示す図である。
【図４】この発明の第２の実施例の動作を示す図である。
【図５】この発明の第２の実施例の動作を示す図である。
【図６】この発明の実施例に従った乗算回路を示す図である。
【図７】この発明の実施例に従った乗算回路を示す図である。
【図８】この発明の別の実施例を示す図である。
【図９】この発明のさらに別の実施例を示す図である。
【符号の説明】
１  マイクロプロセッサ
３  クロック生成回路
３ａ  倍数クロック回路の一部
３ｂ  倍数クロック回路の一部
３ｃ  倍数クロック回路の一部
１１  機能回路
１３  機能回路（キャッシュ）
１５  機能回路
４０  計数器
【図１】
0003609513.tif 000002
【図２】
0003609513.tif 000003
【図３】
0003609513.tif 000004
【図４】
0003609513.tif 000005
【図５】
0003609513.tif 000006
【図６】
0003609513.tif 000007
【図７】
0003609513.tif 000008
【図８】
0003609513.tif 000009
【図９】
0003609513.tif 000010