"複数の記憶素子にそれぞれ複数のデータを記憶するキャッシュメモリと、前記キャッシュメモリからデータが読み出されたタイミングが閾値より遅いときにはエラーを検出するエラー検出回路と、前記エラーが検出されないときには前記キャッシュメモリから読み出されたデータをラッチし、前記エラーが検出されたときには待機期間経過後に前記キャッシュメモリから読み出されたデータをラッチするラッチ回路と、前記ラッチ回路によりラッチされたデータの処理を行う演算処理装置コアとを有することを特徴とする演算処理装置。さらに、前記エラーが検出されたときには一時停止後に再開するクロック信号を前記ラッチ回路に出力し、前記エラーが検出されないときには一時停止しないクロック信号を前記ラッチ回路に出力するクロック制御回路を有し、前記ラッチ回路は、前記クロック制御回路により出力されるクロック信号に同期してラッチすることを特徴とする請求項1記載の演算処理装置。前記キャッシュメモリは、2次キャッシュメモリであり、さらに、前記ラッチ回路及び前記演算処理装置コア間に接続される1次キャッシュメモリを有することを特徴とする請求項1又は2記載の演算処理装置。前記エラー検出回路は、前記キャッシュメモリ内の前記複数の記憶素子のうちの前記データを読み出す記憶素子から前記ラッチ回路までのパスに起因して、前記データの読み出しタイミングが閾値より遅いときにエラーを検出することを特徴とする請求項1~3のいずれか1項に記載の演算処理装置。前記ラッチ回路は、クロック信号に同期してラッチし、前記クロック信号の周期は、前記複数のパスで前記エラーが検出されない歩留まりに応じて決定されることを特徴とする請求項4記載の演算処理装置。前記クロック信号の周期及び前記キャッシュメモリの電源電圧は、前記複数のパスで前記エラーが検出されない歩留まりに応じて決定されることを特徴とする請求項5記載の演算処理装置。本発明の目的は、キャッシュメモリから高速にデータを読み出すことができる演算処理装置を提供することである。演算処理装置は、複数の記憶素子にそれぞれ複数のデータを記憶するキャッシュメモリと、前記キャッシュメモリからデータが読み出されたタイミングが閾値より遅いときにはエラーを検出するエラー検出回路と、前記エラーが検出されないときには前記キャッシュメモリから読み出されたデータをラッチし、前記エラーが検出されたときには待機期間経過後に前記キャッシュメモリから読み出されたデータをラッチするラッチ回路と、前記ラッチ回路によりラッチされたデータの処理を行う演算処理装置コアとを有する。エラー検出に応じてデータをラッチすることにより、キャッシュメモリから高速にデータを読み出すことができる。図1は、実施形態による中央演算処理装置プロセッサの構成例を示す図である。中央演算処理装置CPU:CentralProcessingUnit100は、中央演算処理装置コア101、1次キャッシュメモリ102、2次キャッシュメモリ103及び読み出し回路104を有し、電源電圧Vddにより動作する。1次キャッシュメモリ102及び2次キャッシュメモリ103は、それぞれ、例えばSRAMスタティックランダムアクセスメモリ:StaticRandomAccessMemoryであり、複数の記憶素子にそれぞれ複数のデータを記憶する。2次キャッシュメモリ103は、1次キャッシュメモリ102に対して、データ記憶容量が大きい。中央演算処理装置コア101は、指定したアドレスのデータの読み出しを1次キャッシュメモリ102に対して指示する。1次キャッシュメモリ102が、指定されたアドレスのデータを記憶していれば、キャッシュヒットし、1次キャッシュメモリ102は指定されたアドレスのデータを中央演算処理装置コア101に出力する。1次キャッシュメモリ102が、指定されたアドレスのデータを記憶していなければ、キャッシュミスし、2次キャッシュメモリ103に対して、指定したアドレスのデータの読み出しが指示される。2次キャッシュメモリ103が、指定されたアドレスのデータを記憶していれば、キャッシュヒットし、2次キャッシュメモリ103内の指定されたアドレスのデータは、読み出し回路104を介して1次キャッシュメモリ102に書き込まれると共に、中央演算処理装置コア101に出力される。2次キャッシュメモリ103が、指定されたアドレスのデータを記憶していなければ、キャッシュミスし、メインメモリに対して、指定したアドレスのデータの読み出しが指示される。メインメモリ内の指定されたアドレスのデータは2次キャッシュメモリ103及び1次キャッシュメモリ102に書き込まれると共に、中央演算処理装置コア101に出力される。中央演算処理装置コア101は、1次キャッシュメモリ102、2次キャッシュメモリ103又はメインメモリのデータを入力し、その入力したデータの処理を行う。2次キャッシュメモリ103は、電源電圧Vddにより動作し、上記の指定されたアドレスのデータD1を読み出し回路104に出力する。読み出し回路104は、クロック信号に同期してデータD1をラッチし、そのラッチしたデータQ3を1次キャッシュメモリ102に出力する。図2は、図1の2次キャッシュメモリ103の構成例を示す図である。以下、2次キャッシュメモリ103の構成を例に説明するが、1次キャッシュメモリ102の構成も2次キャッシュメモリ103と同様である。2次キャッシュメモリ103は、n個のウェイW1,W2等を有するnウェイセットアソシアティブ連想メモリである。ウェイW1,W2等の各々は、複数のエントリを有する。各エントリは、有効ビット201、アドレス202、及びデータ203を有する。2次キャッシュメモリ103は、複数の記憶素子にそれぞれ複数のデータ203を記憶する。複数の記憶素子のデータ203は、それぞれ読み出し回路104までの読み出しパスの配線長が異なる。読み出しパスの配線長が短い記憶素子のデータ203は読み出し時間が短く、読み出しパスの配線長が長い記憶素子のデータ203は読み出し時間が長い。2次キャッシュメモリ103は、1次キャッシュメモリ102に対して、データ記憶容量が大きく、各記憶素子の読み出しパスの配線長が長いため、データ203の読み出し時間が長い。読み出し回路104は、クロック信号に同期して、2次キャッシュメモリ103のデータD1をラッチする。2次キャッシュメモリ103の読み出し時間が長くなると、クロック信号の周波数を低くしなければならず、中央演算処理装置100の処理速度が低下してしまう。中央演算処理装置100の設計において、2次キャッシュメモリ103からのデータの読み出し時間が、クロック信号の周波数決定のボトルネックとなることがある。例えば、2次キャッシュメモリ103からのデータの読み出し時間の設計値として、複数の記憶素子の読み出し時間の確率分布の6σの値を使う。その設計値は、過大なタイミングマージンを含み、十分な余裕を持ったクロック信号の周波数が使用される。実際の中央演算処理装置100においては、読み出し時間が確率分布の6σの値を持つパスができる確率は非常に少ない。例えば、2次キャッシュメモリ103が6Mバイトの記憶容量を有する場合、6σの値を持つパスは僅か数本である。たとえ6σのパスができたとしても、そのパスが毎回使われるわけではない。過大なタイミングマージンを持つクリティカルパスを中央演算処理装置100のクロック信号の周波数のボトルネックにするのは勿体ない。そこで、本実施形態では、クロック信号の周波数を高くすることができる中央演算処理装置100を提供する。図3は、2次キャッシュメモリ103内の複数の記憶素子から読み出し回路104までの複数の読み出しパスのタイミング歩留まりを示すグラフである。横軸は、2次キャッシュメモリ103の読み出しタイミング時間又は周波数を示す。縦軸は、2次キャッシュメモリ103内の複数の記憶素子から読み出し回路104までの複数のパスの読み出しタイミングに間に合うタイミング歩留まりを示す。静的タイミング解析STA:statictiminganalysis又は統計的静的タイミング解析SSTA:StatisticalStaticTimingAnalysisを用いて、図3の累積歩留まり分布図を得ることができる。例えば、読み出しタイミングが400psクロック周波数が2500MHzのとき、歩留まりが90になる。すなわち、2次キャッシュメモリ103内の複数の記憶素子から読み出し回路104までの全パスのうち、90のパスは読み出しタイミングが400ps以内である。本実施形態では、2次キャッシュメモリ103からのデータ読み出しにおいて過大なタイミングマージンを持つクリティカルパスに合わせずに、歩留まりに応じて、クロック信号の周波数を決める。例えば、歩留まりが90になるときのクロック信号の周波数として2500MHzに決める。本実施形態では、読み出し回路104内にエラー検出回路を設け、2次キャッシュメモリ103からのデータ到着が遅い旨フェイルを検出したとき、エラーを検出し、1サイクル待ってからデータD1をラッチする。2次キャッシュメモリ103からのデータ到着のフェイル率を考慮して、性能を最大限に引き出すため、最適なクロック信号の周波数を決める。図4は、本実施形態のCADコンピュータ支援設計:computeraideddesign装置によるクロック信号の周波数の決定処理例を示すフローチャートである。CAD装置は、ネットリスト401及びタイミングライブラリ402を記憶する。ネットリスト401は、回路構成を示す回路設計データである。タイミングライブラリ402は、回路のタイミング遅延時間情報である。まず、ステップS411では、CAD装置は、ネットリスト401及びタイミングライブラリ402を基に、静的タイミング解析又は統計的静的タイミング解析により、図3に示すように、2次キャッシュメモリ103内の複数の記憶素子から読み出し回路104へのパスのタイミング歩留まりを計算する。また、ステップS413では、CAD装置は、ネットリスト401及びタイミングライブラリ402を基に、中央演算処理装置コア101内のクリティカルパスを検出し、そのクリティカルパスを基にクロック信号の周波数の上限値を計算する。次に、ステップS412では、CAD装置は、ステップS413で計算されたクロック信号の周波数の上限値より低い周波数の範囲内において、ステップS411で計算されたタイミング歩留まりを基に、最適なクロック信号の周波数を計算する。次に、ステップS414では、CAD装置は、ステップS412で計算された周波数をクロック信号の周波数として決定する。例えば、図3の場合、歩留まりが90のときのクロック信号の周波数として2500MHzに決定する。図5は図1の読み出し回路104の構成例を示す回路図であり、図6は図4の読み出し回路104の動作例を説明するためのタイミングチャートである。読み出し回路104は、エラー検出回路500、論理積AND回路516及びラッチ回路517を有し、データD1を2次キャッシュメモリ103から入力し、データQ3を1次キャッシュメモリ102に出力する。エラー検出回路500は、ラッチ回路511,512、遅延素子513、排他的論理和回路514及び論理否定NOT回路515を有する。遅延素子513は、例えばバッファであり、クロック信号CKを遅延時間T2遅延したクロック信号CK2を出力する。例えば、クロック信号CK1の周期T1は400psであり、遅延時間T2は30psである。図1の1次キャッシュメモリ102は、ラッチ回路517及び中央演算処理装置コア101間に接続される。時刻t1では、2次キャッシュメモリ103の読み出しにより、2次キャッシュメモリ103の読み出しデータD1が、ハイレベルからローレベルに遷移する例を示す。エラー検出回路500は、ハイレベルからローレベルに遷移するデータD1の読み出しタイミングが閾値時刻t1より早いのでエラーを検出しない。具体的には、時刻t1では、ラッチ回路511は、クロック信号CK1の立ち上がりエッジに同期して、ローレベルのデータD1をラッチし、そのラッチしたローレベルのデータQ1を出力する。ここで、クロック信号CK1は、クロック信号CKと同じ信号である。その後、ラッチ回路512は、クロック信号CK2の立ち上がりエッジに同期して、ローレベルのデータD1をラッチし、そのラッチしたローレベルのデータQ2を出力する。排他的論理和回路514は、データQ1及びQ2の論理レベルが同じときにはローレベルのエラー信号ERを出力し、データQ1及びQ2の論理レベルが異なるときにはハイレベルのエラー信号ERを出力する。論理否定回路515は、エラー信号ERの論理反転信号をレディ信号REとして出力する。論理積回路516は、レディ信号RE及びクロック信号CKの論理積信号をクロック信号CK3として出力する。レディ信号REのローレベル期間は、クロック信号CKのハイレベル期間と重ならないため、クロック信号CK3はクロック信号CKと同じ信号になる。ラッチ回路517は、クロック信号CK3の立ち上がりエッジに同期して、ローレベルのデータQ1をラッチし、そのラッチしたローレベルのデータQ3を出力する。時刻t2~t3では、2次キャッシュメモリ103の読み出しにより、2次キャッシュメモリ103の読み出しデータD1が、ローレベルからハイレベルに遷移する例を示す。エラー検出回路500は、ローレベルからハイレベルに遷移するデータD1の読み出しタイミングが閾値時刻t2より遅いのでエラーを検出する。具体的には、時刻t2では、ラッチ回路511は、クロック信号CK1の立ち上がりエッジに同期して、ローレベルのデータD1をラッチし、そのラッチしたローレベルのデータQ1を出力する。その後、ラッチ回路512は、クロック信号CK2の立ち上がりエッジに同期して、ハイレベルのデータD1をラッチし、そのラッチしたハイレベルのデータQ2を出力する。排他的論理和回路514は、データQ1及びQ2の論理レベルが同じときにはローレベルのエラー信号ERを出力し、データQ1及びQ2の論理レベルが異なるときにはハイレベルのエラー信号ERを出力する。論理否定回路515は、エラー信号ERの論理反転信号をレディ信号REとして出力する。論理積回路516は、レディ信号RE及びクロック信号CKの論理積信号をクロック信号CK3として出力する。レディ信号REのローレベル期間は、クロック信号CKのハイレベル期間と重なるため、クロック信号CK3はクロック信号CKを時刻t3~t4の1サイクル停止後に再開させた信号になる。ラッチ回路517は、クロック信号CK3の立ち上がりエッジに同期して、時刻t3~t4の1サイクル待機後に、時刻t4でハイレベルのデータQ1をラッチし、そのラッチしたハイレベルのデータQ3を出力する。時刻t1~t2は、例えば図3の歩留まりが90範囲内の読み出しタイミングが早い記憶素子のパスを介した読み出しである。この場合、エラー検出回路500は、2次キャッシュメモリ103からデータが読み出されたタイミングが閾値より早いのでエラーを検出しない。論理積回路516は、クロック制御回路であり、エラー検出回路500によりエラーが検出されないときには一時停止しないクロック信号CK3をラッチ回路517に出力する。ラッチ回路517は、エラー検出回路500によりエラーが検出されないときには2次キャッシュメモリ103から読み出されたデータQ1をラッチする。これに対し、時刻t2~t3は、例えば図3の歩留まりが90範囲外の読み出しタイミングが遅い記憶素子のパスを介した読み出しである。この場合、エラー検出回路500は、2次キャッシュメモリ103からデータが読み出されたタイミングが閾値より遅いのでエラーを検出する。論理積回路516は、クロック制御回路であり、エラー検出回路500によりエラーが検出されたときには一時停止後に再開するクロック信号CK3をラッチ回路517に出力する。ラッチ回路517は、エラー検出回路500によりエラーが検出されたときには時刻t3~t4の待機期間経過後に2次キャッシュメモリ103から読み出されたデータQ1をラッチする。以上のように、エラー検出回路500は、2次キャッシュメモリ103内の複数の記憶素子のうちのデータを読み出す記憶素子からラッチ回路517までのパスに起因して、データの読み出しタイミングが閾値より遅いときにエラーを検出する。なお、図5のエラー検出回路500は、データD1のレベル変化を読み出しタイミングとして検出するものである。データ読み出しにより、データD1がローレベルからローレベルに遷移する場合及びハイレベルからハイレベルに遷移する場合には、エラー検出回路500はエラーを検出することができない。しかし、その場合、読み出しタイミングが閾値より遅くなっても、データD1はレベル変化しないので、エラー検出回路500がエラーを検出せず、クロック信号CK3を一時停止しなくても、ラッチ回路517は、正常な論理レベルのデータQ1をラッチすることができる。図7は、図3に対応し、クロック信号CKの周期に対する歩留まりの例を示すグラフである。横軸は、クロック信号CKの周期を示す。縦軸は、2次キャッシュメモリ103内の複数の記憶素子から読み出し回路104までの複数のパスの読み出しタイミングに間に合うタイミング歩留まりを示す。例えば、クロック信号CKの周期が480psのときにタイミング歩留まりは99、クロック信号CKの周期が460psのときにタイミング歩留まりは97、クロック信号CKの周期が440psのときにタイミング歩留まりは85である。クロック信号CKの周期480ps、460ps及び440psは、設定可能な周期の候補である。処理速度上昇率Eは、元のクロック信号CKの周期Toから新たなクロック信号CKの周期Tnに変更したときの処理速度の上昇率を示し、次式1で表される。E=To/Tn×x{To/a×Tn}×1-x1ここで、xはクロック信号CKの周期Tnのときのタイミング歩留まりであり、aはエラー検出回路500によりエラーが検出されたときに1命令を実行するために要するサイクル数である。式1は、2次キャッシュメモリ103から読み出し回路104への全パスが均等な割合で活性化されるという仮定であり、第1項はエラーなしの場合の項、第2項はエラーありの場合の項を示す。まず、クロック信号CKの周期Tnが480psのときの処理速度上昇率Eを式1を用いて求める。ここで、タイミング歩留まりxは0.99であり、元のクロック信号CKの周期Toは500psであり、サイクル数aは2である。E=500/480×0.99{500/2×480}×1-0.99≒1.036次に、クロック信号CKの周期Tnが460psのときの処理速度上昇率Eを式1を用いて求める。ここで、タイミング歩留まりxは0.97であり、元のクロック信号CKの周期Toは500psであり、サイクル数aは2である。E=500/460×0.97{500/2×460}×1-0.97≒1.071次に、クロック信号CKの周期Tnが440psのときの処理速度上昇率Eを式1を用いて求める。ここで、タイミング歩留まりxは0.85であり、元のクロック信号CKの周期Toは500psであり、サイクル数aは2である。E=500/440×0.85{500/2×440}×1-0.85≒1.051したがって、クロック信号CKの周期Tnと処理速度上昇率Eとの関係は以下のようになる。Tn=480ps、x=0.99のとき、E≒1.036Tn=460ps、x=0.97のとき、E≒1.071Tn=440ps、x=0.85のとき、E≒1.051上記の中で、クロック信号CKの周期Tnが460psのときに、処理速度上昇率Eが1.071と最も大きくなり、7.1の処理速度の向上が見込まれる。したがって、クロック信号CKの周期Tnを460psに決定することができる。クロック信号CKの周波数は、周期Tnの逆数により求められる。以上のように、クロック信号CKの周期Tnは、2次キャッシュメモリ103の複数の記憶素子から読み出し回路104までの複数のパスでエラーが検出されない歩留まりxに応じて決定される。図8A~Cは、2次キャッシュメモリ103の電源電圧Vdd毎のタイミング歩留まりを示すグラフである。図8Aは電源電圧Vddが1.3Vの場合の図7のグラフであり、図8Bは電源電圧Vddが1.1Vの場合の図7のグラフであり、図8Cは電源電圧Vddが0.9Vの場合の図7のグラフである。図8Aは電源電圧Vddが1.3Vと高いので、2次キャッシュメモリ103の読み出し速度が速くなり、歩留まりxの値が大きくなる。その結果、式1の処理速度上昇率Eが大きくなる利点がある。しかし、電源電圧Vddが高いため、消費電力が大きくなる欠点がある。これに対し、図8Cは電源電圧Vddが0.9Vと低いので、2次キャッシュメモリ103の読み出し速度が遅くなり、歩留まりxの値が小さくなる。その結果、式1の処理速度上昇率Eが小さくなる欠点がある。しかし、電源電圧Vddが低いため、消費電力が小さくなる利点がある。本実施形態では、処理速度上昇率Eの他に、電源電圧Vddを考慮して、次式2により性能上昇率E’を演算する。ここで、bは定数である。E’=Eb/Vdd2性能上昇率E’は、式2の第1項の処理速度上昇率E及び第2項の消費電力指標b/Vddに基づく性能の上昇率である。消費電力指標b/Vddは、電源電圧Vddが低くなるほど大きくなる指標である。性能上昇率E’が最も大きくなるように、電源電圧Vdd及びクロック信号CKの周期Tnを決めれば、処理速度上昇率Eを大きくし、消費電力を小さくすることができる。なお、電源電圧Vdd及びクロック信号CKの周期Tnは、それぞれ設定可能な候補の中から最適な値を設定することができる。また、電源電圧Vdd、クロック信号CKの周期Tn及びタイミング歩留まりxの3次元パレート曲面を演算し、その3次元パレート曲面を基に、性能上昇率E’が最も大きくなるように、電源電圧Vdd及びクロック信号CKの周期Tnを決めてもよい。以上のように、クロック信号CKの周期Tn及び2次キャッシュメモリ103の電源電圧Vddは、2次キャッシュメモリ103の複数の記憶素子から読み出し回路104までの複数のパスでエラーが検出されない歩留まりxに応じて決定される。図9は、本実施形態のCAD装置によるクロック信号CKの周期Tnの決定処理例を示すフローチャートであり、図4のフローチャートの具体的な処理を示す。ステップS901では、CAD装置は、図7に示すように、静的タイミング解析又は統計的静的タイミング解析により、2次キャッシュメモリ103内の複数の記憶素子から読み出し回路104までの複数のパスのタイミング歩留まりの累積分布図を求める。また、ステップS902では、CAD装置は、例えば440ps、460ps及び480ps等の設定可能なクロック信号CKの周期Tnを入力する。また、ステップS903では、CAD装置は、中央演算処理装置コア101内のクリティカルパスを検出する。次に、ステップS904では、CAD装置は、そのクリティカルパスを基にクロック信号CKの周期Tnの下限値を計算する。次に、ステップS905では、CAD装置は、ステップS904で計算されたクロック信号CKの周期Tnの下限値より長い周期の範囲内において、ステップS901のタイミング歩留まり累積分布図を基に、ステップS902の設定可能なクロック信号CKの周期Tnの各々についての処理速度上昇率Eを式1により算出する。次に、ステップS906では、CAD装置は、処理速度上昇率Eが最大値E>1となるクロック信号CKの周期Tnを求める。次に、ステップS907では、CAD装置は、ステップS906で求めたクロック信号CKの周期Tnを最適な周期Tnとして決定し、ディスプレイへの表示等の出力処理を行う。なお、図8A~Cの性能上昇率E’を用いてクロック信号CKの周期Tn及び電源電圧Vddを決定する場合も、図9の処理と同様の処理を行えばよい。上記では、2個のキャッシュメモリ102及び103を用いる場合を例に説明したが、キャッシュメモリ102を削除し、1個のキャッシュメモリ103のみを使用するようにしてもよい。本実施形態は、2次キャッシュメモリ103から読み出し回路104へのデータパスのタイミングがクロック信号CKの周波数の決定の上でボトルネックになるときに特に有効であり、低確率で2次キャッシュメモリ103からのデータの読み出しタイミングが間に合わないことを許容するかわりに、エラー検出回路500を用いる。エラー検出回路500のエラー検出に応じてラッチ回路517がデータをラッチすることにより、2次キャッシュメモリ103から高速にデータを読み出すことができる。図7のように、2次キャッシュメモリ103からのパスの歩留まりの分布を見積もり、それを用いて処理速度上昇率Eを算出することにより、中央演算処理装置100の性能を最大限に引き出す最適なクロック信号CKの周波数を求めることができる。また、図8A~Cに示すように、処理速度上昇率E及び電源電圧Vddを考慮した性能上昇率E’を基に、クロック信号CKの周波数を求めることもできる。本実施形態によれば、中央演算処理装置100の性能を向上させることができる。例えば、上記のように、図7においてクロック信号CKの周期Tnを460psにすれば、約7の処理速度向上を実現することができる。中央演算処理装置100において、10弱の性能向上は大きな意味を持つ。なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。"