(57)【特許請求の範囲】
【請求項１】
複数の記憶素子にそれぞれ複数のデータを記憶するキャッシュメモリと、
前記キャッシュメモリからデータが読み出されたタイミングが閾値より遅いときにはエラーを検出するエラー検出回路と、
前記エラーが検出されないときには前記キャッシュメモリから読み出されたデータをラッチし、前記エラーが検出されたときには待機期間経過後に前記キャッシュメモリから読み出されたデータをラッチするラッチ回路と、
前記ラッチ回路によりラッチされたデータの処理を行う演算処理装置コアとを有し、
前記エラー検出回路は、前記キャッシュメモリ内の前記複数の記憶素子のうちの前記データを読み出す記憶素子から前記ラッチ回路までのパスに起因して、前記データの読み出しタイミングが閾値より遅いときにエラーを検出し、
前記ラッチ回路は、クロック信号に同期してラッチし、
前記クロック信号の周期は、前記複数のパスで前記エラーが検出されない歩留まりに応じて決定され、
変更後の前記クロック信号の周期Ｔｎのときのタイミング歩留まりをｘとし、前記エラー検出回路によりエラーが検出されたときに要するサイクル数をａとした場合に、変更前の前記クロック信号の周期Ｔｏから変更後の前記クロック信号の周期Ｔｎに変更したときの処理速度上昇率Ｅを、
Ｅ＝（Ｔｏ／Ｔｎ）×ｘ＋｛Ｔｏ／（ａ×Ｔｎ）｝×（１−ｘ）
で表し、
前記処理速度上昇率Ｅと電源電圧Ｖｄｄと定数ｂを基に性能上昇率Ｅ’を、
Ｅ’＝Ｅ＋ｂ／Ｖｄｄ
で表し、
複数のクロック信号の周期の候補の中で前記性能上昇率Ｅ’が最大になるように、前記クロック信号の周期Ｔｎが決定されることを特徴とする演算処理装置。
【請求項２】
さらに、前記エラーが検出されたときには一時停止後に再開するクロック信号を前記ラッチ回路に出力し、前記エラーが検出されないときには一時停止しないクロック信号を前記ラッチ回路に出力するクロック制御回路を有し、
前記ラッチ回路は、前記クロック制御回路により出力されるクロック信号に同期してラッチすることを特徴とする請求項１記載の演算処理装置。
【請求項３】
前記キャッシュメモリは、２次キャッシュメモリであり、
さらに、前記ラッチ回路及び前記演算処理装置コア間に接続される１次キャッシュメモリを有することを特徴とする請求項１又は２記載の演算処理装置。
【請求項４】
前記クロック信号の周期Ｔｎ及び前記キャッシュメモリの電源電圧Ｖｄｄは、複数のクロック信号の周期の候補及び複数の電源電圧の候補の中で前記性能上昇率Ｅ’が最大になるように決定されることを特徴とする請求項１〜３のいずれか１項に記載の演算処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算処理装置に関する。
【背景技術】
【０００２】
演算処理装置は、例えば、演算処理装置コア、１次キャッシュメモリ及び２次キャッシュメモリを有する。２次キャッシュメモリは、１次キャッシュメモリに対して、データ記憶容量が大きいため、読み出し時間が遅い。そのため、２次キャッシュメモリの読み出し時間に起因して、クロック信号の周波数を低周波数にせざるを得ない場合がある。クロック信号の周波数の高周波数化が望まれている。
【０００３】
また、メインの組合せ回路をそのクリティカルパス長よりも短いサイクルタイムで動作させるため、サイクルタイムに収まらないパスが活性化された時に備えて、訂正用信号を生成する組合せ回路とその周辺の回路を付加した論理回路が知られている（例えば、特許文献１参照）。
【０００４】
また、メモリをアクセスするサイクルのみシステムクロックの周期を引き伸ばす手段と、メモリのアドレスを指定するメモリポインタに対応したサイクル数を格納するレジスタとを設け、メモリアクセスの際にレジスタを参照し、使用されたメモリポインタに応じたサイクル数の間システムクロックの周期を引き伸ばすように構成したメモリウェイト制御回路が知られている（例えば、特許文献２参照）。
【０００５】
また、クリティカルパスを持つ組合せ回路を高電圧源を電圧源として駆動すると共に、クリティカルパスを持たない他の組合せ回路を低電圧源を電圧源として駆動し、クリティカルパスを持つ組合せ回路の前段に位置するレジスタに、低電圧の信号を高電圧の信号に変換するレベル変換回路を設ける技術が知られている（例えば、特許文献３参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平９−１１６４１３号公報
【特許文献２】特開２００１−１６６９８７号公報
【特許文献３】特開平１０−３１２４０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、キャッシュメモリから高速にデータを読み出すことができる演算処理装置を提供することである。
【課題を解決するための手段】
【０００８】
演算処理装置は、複数の記憶素子にそれぞれ複数のデータを記憶するキャッシュメモリと、前記キャッシュメモリからデータが読み出されたタイミングが閾値より遅いときにはエラーを検出するエラー検出回路と、前記エラーが検出されないときには前記キャッシュメモリから読み出されたデータをラッチし、前記エラーが検出されたときには待機期間経過後に前記キャッシュメモリから読み出されたデータをラッチするラッチ回路と、前記ラッチ回路によりラッチされたデータの処理を行う演算処理装置コアとを有し、前記エラー検出回路は、前記キャッシュメモリ内の前記複数の記憶素子のうちの前記データを読み出す記憶素子から前記ラッチ回路までのパスに起因して、前記データの読み出しタイミングが閾値より遅いときにエラーを検出し、前記ラッチ回路は、クロック信号に同期してラッチし、前記クロック信号の周期は、前記複数のパスで前記エラーが検出されない歩留まりに応じて決定され、変更後の前記クロック信号の周期Ｔｎのときのタイミング歩留まりをｘとし、前記エラー検出回路によりエラーが検出されたときに要するサイクル数をａとした場合に、変更前の前記クロック信号の周期Ｔｏから変更後の前記クロック信号の周期Ｔｎに変更したときの処理速度上昇率Ｅを、Ｅ＝（Ｔｏ／Ｔｎ）×ｘ＋｛Ｔｏ／（ａ×Ｔｎ）｝×（１−ｘ）で表し、前記処理速度上昇率Ｅと電源電圧Ｖｄｄと定数ｂを基に性能上昇率Ｅ’を、Ｅ’＝Ｅ＋ｂ／Ｖｄｄで表し、複数のクロック信号の周期の候補の中で前記性能上昇率Ｅ’が最大になるように、前記クロック信号の周期Ｔｎが決定される。
【発明の効果】
【０００９】
エラー検出に応じてデータをラッチすることにより、キャッシュメモリから高速にデータを読み出すことができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態による中央演算処理装置の構成例を示す図である。
【図２】図１の２次キャッシュメモリの構成例を示す図である。
【図３】２次キャッシュメモリ内の複数の記憶素子から読み出し回路までの複数の読み出しパスのタイミング歩留まりを示すグラフである。
【図４】実施形態のＣＡＤ装置によるクロック信号の周波数の決定処理例を示すフローチャートである。
【図５】図１の読み出し回路の構成例を示す回路図である。
【図６】図４の読み出し回路の動作例を説明するためのタイミングチャートである。
【図７】クロック信号の周期に対する歩留まりの例を示すグラフである。
【図８】図８（Ａ）〜（Ｃ）は２次キャッシュメモリの電源電圧毎のタイミング歩留まりを示すグラフである。
【図９】実施形態のＣＡＤ装置によるクロック信号の周期の決定処理例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
図１は、実施形態による中央演算処理装置（プロセッサ）の構成例を示す図である。中央演算処理装置（ＣＰＵ：Central Processing Unit）１００は、中央演算処理装置コア１０１、１次キャッシュメモリ１０２、２次キャッシュメモリ１０３及び読み出し回路１０４を有し、電源電圧Ｖｄｄにより動作する。１次キャッシュメモリ１０２及び２次キャッシュメモリ１０３は、それぞれ、例えばＳＲＡＭ（スタティックランダムアクセスメモリ：Static Random Access Memory）であり、複数の記憶素子にそれぞれ複数のデータを記憶する。２次キャッシュメモリ１０３は、１次キャッシュメモリ１０２に対して、データ記憶容量が大きい。中央演算処理装置コア１０１は、指定したアドレスのデータの読み出しを１次キャッシュメモリ１０２に対して指示する。１次キャッシュメモリ１０２が、指定されたアドレスのデータを記憶していれば、キャッシュヒットし、１次キャッシュメモリ１０２は指定されたアドレスのデータを中央演算処理装置コア１０１に出力する。１次キャッシュメモリ１０２が、指定されたアドレスのデータを記憶していなければ、キャッシュミスし、２次キャッシュメモリ１０３に対して、指定したアドレスのデータの読み出しが指示される。２次キャッシュメモリ１０３が、指定されたアドレスのデータを記憶していれば、キャッシュヒットし、２次キャッシュメモリ１０３内の指定されたアドレスのデータは、読み出し回路１０４を介して１次キャッシュメモリ１０２に書き込まれると共に、中央演算処理装置コア１０１に出力される。２次キャッシュメモリ１０３が、指定されたアドレスのデータを記憶していなければ、キャッシュミスし、メインメモリに対して、指定したアドレスのデータの読み出しが指示される。メインメモリ内の指定されたアドレスのデータは２次キャッシュメモリ１０３及び１次キャッシュメモリ１０２に書き込まれると共に、中央演算処理装置コア１０１に出力される。中央演算処理装置コア１０１は、１次キャッシュメモリ１０２、２次キャッシュメモリ１０３又はメインメモリのデータを入力し、その入力したデータの処理を行う。
【００１２】
２次キャッシュメモリ１０３は、電源電圧Ｖｄｄにより動作し、上記の指定されたアドレスのデータＤ１を読み出し回路１０４に出力する。読み出し回路１０４は、クロック信号に同期してデータＤ１をラッチし、そのラッチしたデータＱ３を１次キャッシュメモリ１０２に出力する。
【００１３】
図２は、図１の２次キャッシュメモリ１０３の構成例を示す図である。以下、２次キャッシュメモリ１０３の構成を例に説明するが、１次キャッシュメモリ１０２の構成も２次キャッシュメモリ１０３と同様である。２次キャッシュメモリ１０３は、ｎ個のウェイＷ１，Ｗ２等を有するｎウェイセットアソシアティブ連想メモリである。ウェイＷ１，Ｗ２等の各々は、複数のエントリを有する。各エントリは、有効ビット２０１、アドレス２０２、及びデータ２０３を有する。２次キャッシュメモリ１０３は、複数の記憶素子にそれぞれ複数のデータ２０３を記憶する。複数の記憶素子のデータ２０３は、それぞれ読み出し回路１０４までの読み出しパスの配線長が異なる。読み出しパスの配線長が短い記憶素子のデータ２０３は読み出し時間が短く、読み出しパスの配線長が長い記憶素子のデータ２０３は読み出し時間が長い。
【００１４】
２次キャッシュメモリ１０３は、１次キャッシュメモリ１０２に対して、データ記憶容量が大きく、各記憶素子の読み出しパスの配線長が長いため、データ２０３の読み出し時間が長い。読み出し回路１０４は、クロック信号に同期して、２次キャッシュメモリ１０３のデータＤ１をラッチする。２次キャッシュメモリ１０３の読み出し時間が長くなると、クロック信号の周波数を低くしなければならず、中央演算処理装置１００の処理速度が低下してしまう。
【００１５】
中央演算処理装置１００の設計において、２次キャッシュメモリ１０３からのデータの読み出し時間が、クロック信号の周波数決定のボトルネックとなることがある。例えば、２次キャッシュメモリ１０３からのデータの読み出し時間の設計値として、複数の記憶素子の読み出し時間の確率分布の６σの値を使う。その設計値は、過大なタイミングマージンを含み、十分な余裕を持ったクロック信号の周波数が使用される。
【００１６】
実際の中央演算処理装置１００においては、読み出し時間が確率分布の６σの値を持つパスができる確率は非常に少ない。例えば、２次キャッシュメモリ１０３が６Ｍバイトの記憶容量を有する場合、６σの値を持つパスは僅か数本である。たとえ６σのパスができたとしても、そのパスが毎回使われるわけではない。過大なタイミングマージンを持つクリティカルパスを中央演算処理装置１００のクロック信号の周波数のボトルネックにするのは勿体ない。そこで、本実施形態では、クロック信号の周波数を高くすることができる中央演算処理装置１００を提供する。
【００１７】
図３は、２次キャッシュメモリ１０３内の複数の記憶素子から読み出し回路１０４までの複数の読み出しパスのタイミング歩留まりを示すグラフである。横軸は、２次キャッシュメモリ１０３の読み出しタイミング（時間又は周波数）を示す。縦軸は、２次キャッシュメモリ１０３内の複数の記憶素子から読み出し回路１０４までの複数のパスの読み出しタイミングに間に合うタイミング歩留まりを示す。静的タイミング解析（ＳＴＡ：static timing analysis）又は統計的静的タイミング解析（ＳＳＴＡ：Statistical Static Timing Analysis）を用いて、図３の累積歩留まり分布図を得ることができる。例えば、読み出しタイミングが４００ｐｓ（クロック周波数が２５００ＭＨｚ）のとき、歩留まりが９０％になる。すなわち、２次キャッシュメモリ１０３内の複数の記憶素子から読み出し回路１０４までの全パスのうち、９０％のパスは読み出しタイミングが４００ｐｓ以内である。
【００１８】
本実施形態では、２次キャッシュメモリ１０３からのデータ読み出しにおいて過大なタイミングマージンを持つクリティカルパスに合わせずに、歩留まりに応じて、クロック信号の周波数を決める。例えば、歩留まりが９０％になるときのクロック信号の周波数として２５００ＭＨｚに決める。本実施形態では、読み出し回路１０４内にエラー検出回路を設け、２次キャッシュメモリ１０３からのデータ到着が遅い旨（フェイル）を検出したとき、エラーを検出し、１サイクル待ってからデータＤ１をラッチする。２次キャッシュメモリ１０３からのデータ到着のフェイル率を考慮して、性能を最大限に引き出すため、最適なクロック信号の周波数を決める。
【００１９】
図４は、本実施形態のＣＡＤ（コンピュータ支援設計：computer aided design）装置によるクロック信号の周波数の決定処理例を示すフローチャートである。ＣＡＤ装置は、ネットリスト４０１及びタイミングライブラリ４０２を記憶する。ネットリスト４０１は、回路構成を示す回路設計データである。タイミングライブラリ４０２は、回路のタイミング（遅延時間）情報である。
【００２０】
まず、ステップＳ４１１では、ＣＡＤ装置は、ネットリスト４０１及びタイミングライブラリ４０２を基に、静的タイミング解析又は統計的静的タイミング解析により、図３に示すように、２次キャッシュメモリ１０３内の複数の記憶素子から読み出し回路１０４へのパスのタイミング歩留まりを計算する。
【００２１】
また、ステップＳ４１３では、ＣＡＤ装置は、ネットリスト４０１及びタイミングライブラリ４０２を基に、中央演算処理装置コア１０１内のクリティカルパスを検出し、そのクリティカルパスを基にクロック信号の周波数の上限値を計算する。
【００２２】
次に、ステップＳ４１２では、ＣＡＤ装置は、ステップＳ４１３で計算されたクロック信号の周波数の上限値より低い周波数の範囲内において、ステップＳ４１１で計算されたタイミング歩留まりを基に、最適なクロック信号の周波数を計算する。
【００２３】
次に、ステップＳ４１４では、ＣＡＤ装置は、ステップＳ４１２で計算された周波数をクロック信号の周波数として決定する。例えば、図３の場合、歩留まりが９０％のときのクロック信号の周波数として２５００ＭＨｚに決定する。
【００２４】
図５は図１の読み出し回路１０４の構成例を示す回路図であり、図６は図４の読み出し回路１０４の動作例を説明するためのタイミングチャートである。読み出し回路１０４は、エラー検出回路５００、論理積（ＡＮＤ）回路５１６及びラッチ回路５１７を有し、データＤ１を２次キャッシュメモリ１０３から入力し、データＱ３を１次キャッシュメモリ１０２に出力する。エラー検出回路５００は、ラッチ回路５１１，５１２、遅延素子５１３、排他的論理和回路５１４及び論理否定（ＮＯＴ）回路５１５を有する。遅延素子５１３は、例えばバッファであり、クロック信号ＣＫを遅延時間Ｔ２遅延したクロック信号ＣＫ２を出力する。例えば、クロック信号ＣＫ１の周期Ｔ１は４００ｐｓであり、遅延時間Ｔ２は３０ｐｓである。図１の１次キャッシュメモリ１０２は、ラッチ回路５１７及び中央演算処理装置コア１０１間に接続される。
【００２５】
時刻ｔ１では、２次キャッシュメモリ１０３の読み出しにより、２次キャッシュメモリ１０３の読み出しデータＤ１が、ハイレベルからローレベルに遷移する例を示す。エラー検出回路５００は、ハイレベルからローレベルに遷移するデータＤ１の読み出しタイミングが閾値（時刻ｔ１）より早いのでエラーを検出しない。具体的には、時刻ｔ１では、ラッチ回路５１１は、クロック信号ＣＫ１の立ち上がりエッジに同期して、ローレベルのデータＤ１をラッチし、そのラッチしたローレベルのデータＱ１を出力する。ここで、クロック信号ＣＫ１は、クロック信号ＣＫと同じ信号である。その後、ラッチ回路５１２は、クロック信号ＣＫ２の立ち上がりエッジに同期して、ローレベルのデータＤ１をラッチし、そのラッチしたローレベルのデータＱ２を出力する。排他的論理和回路５１４は、データＱ１及びＱ２の論理レベルが同じときにはローレベルのエラー信号ＥＲを出力し、データＱ１及びＱ２の論理レベルが異なるときにはハイレベルのエラー信号ＥＲを出力する。論理否定回路５１５は、エラー信号ＥＲの論理反転信号をレディ信号ＲＥとして出力する。論理積回路５１６は、レディ信号ＲＥ及びクロック信号ＣＫの論理積信号をクロック信号ＣＫ３として出力する。レディ信号ＲＥのローレベル期間は、クロック信号ＣＫのハイレベル期間と重ならないため、クロック信号ＣＫ３はクロック信号ＣＫと同じ信号になる。ラッチ回路５１７は、クロック信号ＣＫ３の立ち上がりエッジに同期して、ローレベルのデータＱ１をラッチし、そのラッチしたローレベルのデータＱ３を出力する。
【００２６】
時刻ｔ２〜ｔ３では、２次キャッシュメモリ１０３の読み出しにより、２次キャッシュメモリ１０３の読み出しデータＤ１が、ローレベルからハイレベルに遷移する例を示す。エラー検出回路５００は、ローレベルからハイレベルに遷移するデータＤ１の読み出しタイミングが閾値（時刻ｔ２）より遅いのでエラーを検出する。具体的には、時刻ｔ２では、ラッチ回路５１１は、クロック信号ＣＫ１の立ち上がりエッジに同期して、ローレベルのデータＤ１をラッチし、そのラッチしたローレベルのデータＱ１を出力する。その後、ラッチ回路５１２は、クロック信号ＣＫ２の立ち上がりエッジに同期して、ハイレベルのデータＤ１をラッチし、そのラッチしたハイレベルのデータＱ２を出力する。排他的論理和回路５１４は、データＱ１及びＱ２の論理レベルが同じときにはローレベルのエラー信号ＥＲを出力し、データＱ１及びＱ２の論理レベルが異なるときにはハイレベルのエラー信号ＥＲを出力する。論理否定回路５１５は、エラー信号ＥＲの論理反転信号をレディ信号ＲＥとして出力する。論理積回路５１６は、レディ信号ＲＥ及びクロック信号ＣＫの論理積信号をクロック信号ＣＫ３として出力する。レディ信号ＲＥのローレベル期間は、クロック信号ＣＫのハイレベル期間と重なるため、クロック信号ＣＫ３はクロック信号ＣＫを時刻ｔ３〜ｔ４の１サイクル停止後に再開させた信号になる。ラッチ回路５１７は、クロック信号ＣＫ３の立ち上がりエッジに同期して、時刻ｔ３〜ｔ４の１サイクル待機後に、時刻ｔ４でハイレベルのデータＱ１をラッチし、そのラッチしたハイレベルのデータＱ３を出力する。
【００２７】
時刻ｔ１〜ｔ２は、例えば図３の歩留まりが９０％範囲内の読み出しタイミングが早い記憶素子のパスを介した読み出しである。この場合、エラー検出回路５００は、２次キャッシュメモリ１０３からデータが読み出されたタイミングが閾値より早いのでエラーを検出しない。論理積回路５１６は、クロック制御回路であり、エラー検出回路５００によりエラーが検出されないときには一時停止しないクロック信号ＣＫ３をラッチ回路５１７に出力する。ラッチ回路５１７は、エラー検出回路５００によりエラーが検出されないときには２次キャッシュメモリ１０３から読み出されたデータＱ１をラッチする。
【００２８】
これに対し、時刻ｔ２〜ｔ３は、例えば図３の歩留まりが９０％範囲外の読み出しタイミングが遅い記憶素子のパスを介した読み出しである。この場合、エラー検出回路５００は、２次キャッシュメモリ１０３からデータが読み出されたタイミングが閾値より遅いのでエラーを検出する。論理積回路５１６は、クロック制御回路であり、エラー検出回路５００によりエラーが検出されたときには一時停止後に再開するクロック信号ＣＫ３をラッチ回路５１７に出力する。ラッチ回路５１７は、エラー検出回路５００によりエラーが検出されたときには時刻ｔ３〜ｔ４の待機期間経過後に２次キャッシュメモリ１０３から読み出されたデータＱ１をラッチする。
【００２９】
以上のように、エラー検出回路５００は、２次キャッシュメモリ１０３内の複数の記憶素子のうちのデータを読み出す記憶素子からラッチ回路５１７までのパスに起因して、データの読み出しタイミングが閾値より遅いときにエラーを検出する。
【００３０】
なお、図５のエラー検出回路５００は、データＤ１のレベル変化を読み出しタイミングとして検出するものである。データ読み出しにより、データＤ１がローレベルからローレベルに遷移する場合及びハイレベルからハイレベルに遷移する場合には、エラー検出回路５００はエラーを検出することができない。しかし、その場合、読み出しタイミングが閾値より遅くなっても、データＤ１はレベル変化しないので、エラー検出回路５００がエラーを検出せず、クロック信号ＣＫ３を一時停止しなくても、ラッチ回路５１７は、正常な論理レベルのデータＱ１をラッチすることができる。
【００３１】
図７は、図３に対応し、クロック信号ＣＫの周期に対する歩留まりの例を示すグラフである。横軸は、クロック信号ＣＫの周期を示す。縦軸は、２次キャッシュメモリ１０３内の複数の記憶素子から読み出し回路１０４までの複数のパスの読み出しタイミングに間に合うタイミング歩留まりを示す。例えば、クロック信号ＣＫの周期が４８０ｐｓのときにタイミング歩留まりは９９％、クロック信号ＣＫの周期が４６０ｐｓのときにタイミング歩留まりは９７％、クロック信号ＣＫの周期が４４０ｐｓのときにタイミング歩留まりは８５％である。クロック信号ＣＫの周期４８０ｐｓ、４６０ｐｓ及び４４０ｐｓは、設定可能な周期の候補である。
【００３２】
処理速度上昇率Ｅは、元のクロック信号ＣＫの周期Ｔｏから新たなクロック信号ＣＫの周期Ｔｎに変更したときの処理速度の上昇率を示し、次式（１）で表される。
Ｅ＝（Ｔｏ／Ｔｎ）×ｘ＋｛Ｔｏ／（ａ×Ｔｎ）｝×（１−ｘ）  ・・・（１）
【００３３】
ここで、ｘはクロック信号ＣＫの周期Ｔｎのときのタイミング歩留まりであり、ａはエラー検出回路５００によりエラーが検出されたときに１命令を実行するために要するサイクル数である。
【００３４】
式（１）は、２次キャッシュメモリ１０３から読み出し回路１０４への全パスが均等な割合で活性化されるという仮定であり、第１項はエラーなしの場合の項、第２項はエラーありの場合の項を示す。
【００３５】
まず、クロック信号ＣＫの周期Ｔｎが４８０ｐｓのときの処理速度上昇率Ｅを式（１）を用いて求める。ここで、タイミング歩留まりｘは０．９９であり、元のクロック信号ＣＫの周期Ｔｏは５００ｐｓであり、サイクル数ａは２である。
Ｅ＝（５００／４８０）×０．９９＋｛５００／（２×４８０）｝×（１−０．９９）
≒１．０３６
【００３６】
次に、クロック信号ＣＫの周期Ｔｎが４６０ｐｓのときの処理速度上昇率Ｅを式（１）を用いて求める。ここで、タイミング歩留まりｘは０．９７であり、元のクロック信号ＣＫの周期Ｔｏは５００ｐｓであり、サイクル数ａは２である。
Ｅ＝（５００／４６０）×０．９７＋｛５００／（２×４６０）｝×（１−０．９７）
≒１．０７１
【００３７】
次に、クロック信号ＣＫの周期Ｔｎが４４０ｐｓのときの処理速度上昇率Ｅを式（１）を用いて求める。ここで、タイミング歩留まりｘは０．８５であり、元のクロック信号ＣＫの周期Ｔｏは５００ｐｓであり、サイクル数ａは２である。
Ｅ＝（５００／４４０）×０．８５＋｛５００／（２×４４０）｝×（１−０．８５）
≒１．０５１
【００３８】
したがって、クロック信号ＣＫの周期Ｔｎと処理速度上昇率Ｅとの関係は以下のようになる。
Ｔｎ＝４８０ｐｓ、ｘ＝０．９９のとき、Ｅ≒１．０３６
Ｔｎ＝４６０ｐｓ、ｘ＝０．９７のとき、Ｅ≒１．０７１
Ｔｎ＝４４０ｐｓ、ｘ＝０．８５のとき、Ｅ≒１．０５１
【００３９】
上記の中で、クロック信号ＣＫの周期Ｔｎが４６０ｐｓのときに、処理速度上昇率Ｅが１．０７１と最も大きくなり、７．１％の処理速度の向上が見込まれる。したがって、クロック信号ＣＫの周期Ｔｎを４６０ｐｓに決定することができる。クロック信号ＣＫの周波数は、周期Ｔｎの逆数により求められる。以上のように、クロック信号ＣＫの周期Ｔｎは、２次キャッシュメモリ１０３の複数の記憶素子から読み出し回路１０４までの複数のパスでエラーが検出されない歩留まりｘに応じて決定される。
【００４０】
図８（Ａ）〜（Ｃ）は、２次キャッシュメモリ１０３の電源電圧Ｖｄｄ毎のタイミング歩留まりを示すグラフである。図８（Ａ）は電源電圧Ｖｄｄが１．３Ｖの場合の図７のグラフであり、図８（Ｂ）は電源電圧Ｖｄｄが１．１Ｖの場合の図７のグラフであり、図８（Ｃ）は電源電圧Ｖｄｄが０．９Ｖの場合の図７のグラフである。
【００４１】
図８（Ａ）は電源電圧Ｖｄｄが１．３Ｖと高いので、２次キャッシュメモリ１０３の読み出し速度が速くなり、歩留まりｘの値が大きくなる。その結果、式（１）の処理速度上昇率Ｅが大きくなる利点がある。しかし、電源電圧Ｖｄｄが高いため、消費電力が大きくなる欠点がある。
【００４２】
これに対し、図８（Ｃ）は電源電圧Ｖｄｄが０．９Ｖと低いので、２次キャッシュメモリ１０３の読み出し速度が遅くなり、歩留まりｘの値が小さくなる。その結果、式（１）の処理速度上昇率Ｅが小さくなる欠点がある。しかし、電源電圧Ｖｄｄが低いため、消費電力が小さくなる利点がある。
【００４３】
本実施形態では、処理速度上昇率Ｅの他に、電源電圧Ｖｄｄを考慮して、次式（２）により性能上昇率Ｅ’を演算する。ここで、ｂは定数である。
Ｅ’＝Ｅ＋ｂ／Ｖｄｄ  ・・・（２）
【００４４】
性能上昇率Ｅ’は、式（２）の第１項の処理速度上昇率Ｅ及び第２項の消費電力指標ｂ／Ｖｄｄに基づく性能の上昇率である。消費電力指標ｂ／Ｖｄｄは、電源電圧Ｖｄｄが低くなるほど大きくなる指標である。性能上昇率Ｅ’が最も大きくなるように、電源電圧Ｖｄｄ及びクロック信号ＣＫの周期Ｔｎを決めれば、処理速度上昇率Ｅを大きくし、消費電力を小さくすることができる。なお、電源電圧Ｖｄｄ及びクロック信号ＣＫの周期Ｔｎは、それぞれ設定可能な候補の中から最適な値を設定することができる。また、電源電圧Ｖｄｄ、クロック信号ＣＫの周期Ｔｎ及びタイミング歩留まりｘの３次元パレート曲面を演算し、その３次元パレート曲面を基に、性能上昇率Ｅ’が最も大きくなるように、電源電圧Ｖｄｄ及びクロック信号ＣＫの周期Ｔｎを決めてもよい。以上のように、クロック信号ＣＫの周期Ｔｎ及び２次キャッシュメモリ１０３の電源電圧Ｖｄｄは、２次キャッシュメモリ１０３の複数の記憶素子から読み出し回路１０４までの複数のパスでエラーが検出されない歩留まりｘに応じて決定される。
【００４５】
図９は、本実施形態のＣＡＤ装置によるクロック信号ＣＫの周期Ｔｎの決定処理例を示すフローチャートであり、図４のフローチャートの具体的な処理を示す。
【００４６】
ステップＳ９０１では、ＣＡＤ装置は、図７に示すように、静的タイミング解析又は統計的静的タイミング解析により、２次キャッシュメモリ１０３内の複数の記憶素子から読み出し回路１０４までの複数のパスのタイミング歩留まりの累積分布図を求める。
【００４７】
また、ステップＳ９０２では、ＣＡＤ装置は、例えば４４０ｐｓ、４６０ｐｓ及び４８０ｐｓ等の設定可能なクロック信号ＣＫの周期Ｔｎを入力する。
【００４８】
また、ステップＳ９０３では、ＣＡＤ装置は、中央演算処理装置コア１０１内のクリティカルパスを検出する。次に、ステップＳ９０４では、ＣＡＤ装置は、そのクリティカルパスを基にクロック信号ＣＫの周期Ｔｎの下限値を計算する。
【００４９】
次に、ステップＳ９０５では、ＣＡＤ装置は、ステップＳ９０４で計算されたクロック信号ＣＫの周期Ｔｎの下限値より長い周期の範囲内において、ステップＳ９０１のタイミング歩留まり累積分布図を基に、ステップＳ９０２の設定可能なクロック信号ＣＫの周期Ｔｎの各々についての処理速度上昇率Ｅを式（１）により算出する。
【００５０】
次に、ステップＳ９０６では、ＣＡＤ装置は、処理速度上昇率Ｅが最大値（Ｅ＞１）となるクロック信号ＣＫの周期Ｔｎを求める。
【００５１】
次に、ステップＳ９０７では、ＣＡＤ装置は、ステップＳ９０６で求めたクロック信号ＣＫの周期Ｔｎを最適な周期Ｔｎとして決定し、ディスプレイへの表示等の出力処理を行う。
【００５２】
なお、図８（Ａ）〜（Ｃ）の性能上昇率Ｅ’を用いてクロック信号ＣＫの周期Ｔｎ及び電源電圧Ｖｄｄを決定する場合も、図９の処理と同様の処理を行えばよい。
【００５３】
上記では、２個のキャッシュメモリ１０２及び１０３を用いる場合を例に説明したが、キャッシュメモリ１０２を削除し、１個のキャッシュメモリ１０３のみを使用するようにしてもよい。
【００５４】
本実施形態は、２次キャッシュメモリ１０３から読み出し回路１０４へのデータパスのタイミングがクロック信号ＣＫの周波数の決定の上でボトルネックになるときに特に有効であり、 低確率で２次キャッシュメモリ１０３からのデータの読み出しタイミングが間に合わないことを許容するかわりに、エラー検出回路５００を用いる。エラー検出回路５００のエラー検出に応じてラッチ回路５１７がデータをラッチすることにより、２次キャッシュメモリ１０３から高速にデータを読み出すことができる。
【００５５】
図７のように、２次キャッシュメモリ１０３からのパスの歩留まりの分布を見積もり、それを用いて処理速度上昇率Ｅを算出することにより、中央演算処理装置１００の性能を最大限に引き出す最適なクロック信号ＣＫの周波数を求めることができる。また、図８（Ａ）〜（Ｃ）に示すように、処理速度上昇率Ｅ及び電源電圧Ｖｄｄを考慮した性能上昇率Ｅ’を基に、クロック信号ＣＫの周波数を求めることもできる。
【００５６】
本実施形態によれば、中央演算処理装置１００の性能を向上させることができる。例えば、上記のように、図７においてクロック信号ＣＫの周期Ｔｎを４６０ｐｓにすれば、約７％の処理速度向上を実現することができる。中央演算処理装置１００において、１０％弱の性能向上は大きな意味を持つ。
【００５７】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００５８】
１００  中央演算処理装置
１０１  中央演算処理装置コア
１０２  １次キャッシュメモリ
１０３  ２次キャッシュメモリ
１０４  読み出し回路
５００  エラー検出回路
５１７  ラッチ回路
【図１】
0005772492.tif 000002
【図２】
0005772492.tif 000003
【図３】
0005772492.tif 000004
【図４】
0005772492.tif 000005
【図５】
0005772492.tif 000006
【図６】
0005772492.tif 000007
【図７】
0005772492.tif 000008
【図８】
0005772492.tif 000009
【図９】
0005772492.tif 000010