(57)【要約】【課題】  分岐予測装置の可用性を損なうことなく、分岐予測装置の過渡的あるいは固定的な読み出しエラーに起因する情報処理装置の性能低下を防止する。【解決手段】  分岐予測装置３０は、分岐履歴記憶装置３１を備え、分岐予測のための分岐履歴記憶装置３１のアクセス時にエラーが検出されると検索インデックス保持部３３にエラー発生ラインのインデックスを保持し、このインデックスを記憶装置書き込みインデックス生成部３６にセットして、書き込み許可信号３２ｂを書き込み指示信号生成部３９に入力して当該エラーラインにゼロデータを書き込むことによる消去動作を行うことで、以降のアクセス時のエラー（偶数パリティ）を回避する。ライン単位の消去か、全ラインの消去、消去を全く行わないかは、消去方法設定レジスタ４０の設定内容によって外部から選択的に制御できる。【選択図】図１
2006048132.tif 000002
【特許請求の範囲】
【請求項１】
分岐の成立／不成立を予測するための分岐履歴情報が格納される分岐履歴記憶装置と、
前記分岐履歴情報の読み出しエラーを検出する故障検出機構と、
前記読み出しエラーが検出された前記分岐履歴情報の記憶領域を消去する消去機構と、
を含むことを特徴とする分岐予測装置。
【請求項２】
請求項１記載の分岐予測装置において、前記分岐履歴記憶装置の前記分岐履歴情報の読み出しを行う前記記憶領域を指定する読み出し位置指定情報を保持する位置情報保持手段をさらに備え、
前記位置情報保持手段に保持された読み出し位置情報に基づいて前記分岐履歴情報を読み出した時に前記読み出しエラーが検出された場合、前記消去機構は前記位置情報保持手段に保持された読み出し位置情報を用いて、当該読み出しエラーが検出された前記分岐履歴情報または当該分岐履歴情報を含む前記記憶領域の消去を行うことを特徴とする分岐予測装置。
【請求項３】
請求項１記載の分岐予測装置において、前記消去機構は、前記読み出しエラーが検出された前記分岐履歴記憶装置の全記憶領域を消去することを特徴とする分岐予測装置。
【請求項４】
請求項１記載の分岐予測装置において、前記消去機構は、前記読み出しエラーが検出された前記分岐履歴情報の格納領域にゼロデータを書き込むことで当該分岐履歴情報の消去を行うことを特徴とする分岐予測装置。
【請求項５】
請求項１記載の分岐予測装置において、前記分岐履歴記憶装置には、個々の前記分岐履歴情報の有効または無効を区別するための識別情報が設定され、前記消去機構は、前記識別情報を無効化することで前記分岐履歴情報の消去を行うことを特徴とする分岐予測装置。
【請求項６】
請求項１記載の分岐予測装置において、前記読み出しエラーが検出された前記分岐履歴情報の格納領域の選択的な消去を行う第１の操作、または前記読み出しエラーが検出された前記分岐履歴記憶装置の全記憶領域を消去を行う第２の操作、または読み出しエラーとなった前記分岐履歴情報の消去を抑止する第３の操作、のいずれかの操作を外部から選択的に前記消去機構に指定するための消去動作制御機構をさらに備えたことを特徴とする分岐予測装置。
【請求項７】
分岐の成立／不成立を予測するための分岐履歴情報が格納される分岐履歴記憶装置と、前記分岐履歴情報の読み出しエラーを検出する故障検出機構とを含む分岐予測装置の制御方法であって、前記読み出しエラーが検出された前記分岐履歴情報を消去することを特徴とする分岐予測装置の制御方法。
【請求項８】
命令を実行する演算ユニットと、前記演算ユニットに入力される前記命令の先読みを行う命令フェッチ制御ユニットと、前記命令フェッチ制御ユニットにて先読みされた前記命令が分岐命令の場合に、前記分岐命令の分岐先アドレスを予測するための分岐予測装置とを含む情報処理装置であって、
前記分岐予測装置は、
分岐の成立／不成立を予測するための分岐履歴情報が格納される分岐履歴記憶装置と、
前記分岐履歴情報の読み出しエラーを検出する故障検出機構と、
前記読み出しエラーが検出された前記分岐履歴情報の記憶領域を消去する消去機構と、
を含むことを特徴とする情報処理装置。
【請求項９】
請求項８記載の情報処理装置において、前記分岐予測装置は、前記分岐履歴記憶装置の前記分岐履歴情報の読み出しを行う前記記憶領域を指定する読み出し位置指定情報を保持する位置情報保持手段をさらに備え、
前記位置情報保持手段に保持された読み出し位置情報に基づいて前記分岐履歴情報を読み出した時に前記読み出しエラーが検出された場合、前記消去機構は前記位置情報保持手段に保持された読み出し位置情報を用いて、当該読み出しエラーが検出された前記分岐履歴情報または当該分岐履歴情報を含む前記記憶領域の消去を行うことを特徴とする情報処理装置。
【請求項１０】
請求項８記載の情報処理装置において、前記分岐予測装置には、さらに、前記読み出しエラーが検出された前記分岐履歴情報の格納領域の選択的な消去を行う第１の操作、または前記読み出しエラーが検出された前記分岐履歴記憶装置の全記憶領域を消去を行う第２の操作、または読み出しエラーとなった前記分岐履歴情報の消去を抑止する第３の操作、のいずれかの操作を外部から選択的に前記消去機構に指定するための消去動作制御機構を備えたことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分岐予測技術および情報処理技術に関し、特に、情報処理装置内に設けられた分岐予測機構等におけるエラー処理技術等に適用して有効な技術に関する。
【背景技術】
【０００２】
たとえば、演算ユニット内でパイプライン処理を行なうマイクロプロセッサ等の情報処理装置では、いくつもの命令を流れ作業的に同時に実行するため、分岐命令でメモリ内の別の部分にジャンプしてしまうと、分岐しないものとして先読みしていた後続の命令をすべて破棄しなくてはならず、処理効率が低下する。これを防ぐため、分岐命令の分岐先を予測し、分岐先の命令列をパイプラインに先読みするための分岐予測技術が知られている。たとえば、分岐命令のアドレスと、当該分岐命令による過去の分岐先アドレスとをペアで分岐履歴情報として記憶しておき、分岐命令に遭遇したとき、分岐履歴情報に基づいて分岐予測を行い、予測された分岐アドレス以降の命令列を先読みすることで、分岐命令に起因するパイプライン処理の乱れを防止して性能低下を回避するものである。
【０００３】
これまでは、分岐履歴情報を記憶する記憶装置に宇宙線によるビット反転（ソフトエラー）等のエラーが起きた際、特別にこれを消去する手段を持たなかったため、別の有効なデータで上書きされるのを待つ他なく、いったんエラーが起きれば、そのエラー箇所へのアクセスが起きるごとにエラーの報告を行っていた。エラーの報告があれば、通常、エラー要因を調べるべく必要なデータの回収を行うため、一部ないし全部の回路を停止し、スキャンを行う。つまり、エラー箇所へのアクセスの度に、既に回収したデータを無駄に再回収する、という事態を招いていた。
【０００４】
回路の全停止が多大な損害を生むことはもちろんのこと、一部の停止でも、その間、他のエラー検出を阻害したり、余計な回路の動作によって性能低下を引き起こしたりなど、影響は計り知れない。
【０００５】
特許文献１には、分岐ヒストリテーブルにてエラーが検出された場合、エントリアドレスにより指定されるエントリを無効化するとともに使用不可状態にする無効化手段を備えた障害処理方式が開示されている。
【０００６】
特許文献２には、複数レベルに設けられた分岐ヒストリテーブルにおける各エントリが複数レベルに対応して当該エントリの障害状況を示すビットを含むように構成し、前記ビットにて前記エントリの使用の可否を判別する技術が開示されている。
【０００７】
特許文献３には、分岐ヒストリテーブルの各エントリに対応してエラーによる内容の有効／無効を示す情報を持つ技術が開示されている。
特許文献４には、分岐ヒストリテーブルからの分岐命令アドレスの読み出し経路に当該分岐命令アドレスのエラーの有無をチェックするチェック回路を設け、エラーが検出された場合に、分岐ヒストリテーブルからの以降の分岐命令アドレスの供給を抑止して、当該エラーの処理後の命令再開の可能性を向上させる技術が開示されている。
【０００８】
しかしながら、これらの特許文献１〜３の技術では、ソフトエラー等の過渡的なエラーでも当該エントリが恒久的に使用不能となり、分岐ヒストリテーブルの可用性が低下するという技術的課題がある。
【０００９】
また、特許文献４の技術は、分岐ヒストリテーブルにおけるエラー発生後の事後対策であり、分岐ヒストリテーブルにおける過渡的なエラーの発生に起因する上述の回路の全停止等の技術的課題は解決できない。
【特許文献１】特開平３−４８３３５号公報
【特許文献２】特開平３−２５７５２６号公報
【特許文献３】特開平４−２７３５２８号公報
【特許文献４】特開平５−２３３２８２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明の目的は、情報処理装置に備えられた分岐予測装置の可用性を損なうことなく、分岐予測装置の過渡的あるいは固定的な読み出しエラーに起因する情報処理装置の性能低下を防止することにある。
【００１１】
本発明の他の目的は、分岐予測装置が実装される情報処理装置の状況に応じて、分岐予測装置における過渡的あるいは固定的な読み出しエラーの多様な対策を実現することにある。
【課題を解決するための手段】
【００１２】
本発明の第１の観点は、分岐の成立／不成立を予測するための分岐履歴情報が格納される分岐履歴記憶装置と、
前記分岐履歴情報の読み出しエラーを検出する故障検出機構と、
前記読み出しエラーが検出された前記分岐履歴情報の記憶領域を消去する消去機構と、
を含む分岐予測装置を提供する。
【００１３】
本発明の第２の観点は、分岐の成立／不成立を予測するための分岐履歴情報が格納される分岐履歴記憶装置と、前記分岐履歴情報の読み出しエラーを検出する故障検出機構とを含む分岐予測装置の制御方法であって、前記読み出しエラーが検出された前記分岐履歴情報を消去する分岐予測装置の制御方法を提供する。
【００１４】
本発明の第３の観点は、命令を実行する演算ユニットと、前記演算ユニットに入力される前記命令の先読みを行う命令フェッチ制御ユニットと、前記命令フェッチ制御ユニットにて先読みされた前記命令が分岐命令の場合に、前記分岐命令の分岐先アドレスを予測するための分岐予測装置とを含む情報処理装置であって、
前記分岐予測装置は、
分岐の成立／不成立を予測するための分岐履歴情報が格納される分岐履歴記憶装置と、
前記分岐履歴情報の読み出しエラーを検出する故障検出機構と、
前記読み出しエラーが検出された前記分岐履歴情報の記憶領域を消去する消去機構と、
を含む情報処理装置を提供する。
【００１５】
上述のように、本発明では、エラーを検出して一度エラー報告を行ったものについては、再度のエラー報告の発生を防止するため、ＥＣＣ（Error Correction Code）などで故障データを復元できる場合を除いて、無害なデータを生成することは簡単ではないため、エラーデータを消去する。消去は、全ゼロデータを書き込むことで行う。単なる一時的なエラー、つまりソフトエラーであれば、エラーデータを消去しさえすれば、また通常使用が可能であるものなので、エラーデータの消去は多重エラー報告の防止以上に大変意味のあることである。
【００１６】
さらに、固定故障であれば、何度エラーを消したところでまたエラーを検出するので、消去を繰り返してもエラーが頻発するようであれば、固定故障であることが考えられるので、エラー回数をカウントするなどすれば、ソフトエラーかどうかを判別することも可能である。そして固定故障であると判断出来れば、故障の記憶装置を早期に見つけて交換することも可能となる。
【００１７】
たとえば、分岐履歴記憶装置のエラー検出のためのパリティは、同一データグループ内でデータ種別や特定ビット数毎にもつ。パリティエラーが起きた場合にどれだけの範囲を消去するのが最小単位となるかは分岐履歴記憶装置の実装形態に依存する。一度の記憶装置の読み出しで、同一データグループ内で全てのデータが必要とされる装置ならば、同一データグループ内で、あるデータだけがパリティエラーとなっていたとしても、そのデータだけを消去しても無意味である。そのような場合は、そのデータグループ全てを消去する、もしくは、そのデータグループに属するバリッド情報があるならば、バリッド情報を無効化する。
【００１８】
さらに、格納データの論理単位と物理単位は必ずしも一致しない。論理単位毎にデータの消去が行えるならばそれで行えばよいが、それが出来ないならば、物理単位毎に消去を行う必要がある。物理単位毎に消去を行う場合は、本来消去したい範囲を越えた消去を行う必要も出てくる。その場合は、消去にともなう不利益がともなうことも考えられるので、実装方法については熟考されねばならない。
【００１９】
エラーデータの消去は、たえば、特定のレジスタを設け、このレジスタの設定に基づいていくつかの方法を選択的に実行することが出来るようにする。たとえば、以下の方法が考えられる。
【００２０】
すなわち、（１）エラーを検出した箇所を含む、論理最小データ単位のみの消去または論理最小データ単位を含む消去可能な物理データ単位を消去する。（２）エラーを検出した記憶装置単体の消去を行う。（３）エラーを検出した箇所の消去を行わない。
【００２１】
一番無駄無く消去の効果をあげる方法は、もちろん（１）のエラーした箇所を含む最小データ単位のみの消去である。記憶装置の形態によっては、エラーしたデータのバリッド情報を落とすだけでもよい。
【００２２】
上述の（２）の装置単体の消去を行うならば、その消去期間の全てにおいて、分岐記憶装置の使用を抑止する手段を講じなければならない。
上述の（３）の消去を行わないという選択肢の効用は以下の通りである。すなわち、消去を行うことは性能低下を防ぐ手段ではあるが、消去動作を行っている間はもちろん、記憶装置を使用することが出来ないため、場合によっては、消去動作そのものが、記憶装置の使用頻度を下げることになり、逆に性能低下を引き起こす可能性も否めない。
【００２３】
エラー箇所への度重なるアクセスがないのであれば、わざわざ消去動作を行う必要性がないからである。また、消去を行わない、という選択肢を残すことによって、消去を行った場合との性能比較を行うことが出来、将来の分岐予測装置の改良のための情報を収集する手段となる。
【発明の効果】
【００２４】
本発明によれば、情報処理装置に備えられた分岐予測装置の可用性を損なうことなく、分岐予測装置の過渡的あるいは固定的な読み出しエラーに起因する情報処理装置の性能低下を防止することができる。
【００２５】
また、分岐予測装置が実装される情報処理装置の状況に応じて、分岐予測装置における過渡的あるいは固定的な読み出しエラーの多様な対策を講ずることが可能になる。
【発明を実施するための最良の形態】
【００２６】
以下、図面を参照しながら、本発明の実施の形態について詳細に説明する。
図１は、本発明の一実施の形態である分岐予測装置の構成の一例を示す図であり、図２は、本実施の形態の分岐予測装置を含む情報処理装置において、分岐予測に関係する部分を取り出して例示した概念図、図３は、本実施の形態の分岐予測装置に備えられた分岐履歴記憶装置における格納データの構成の一例を示す概念図、図４は、本実施の形態の分岐予測装置を含む情報処理装置の構成の一例を示すブロック図である。
【００２７】
まず、図４に例示されるように、本実施の形態の情報処理装置１０は、外部の主記憶（メモリ２０）から命令を先読みするための命令キャッシュ１１ａを備えたキャッシュ制御ユニット１１と、命令の読み出しアドレスを生成するプログラムカウンタ１８と、このプログラムカウンタ１８の値に基づいて、キャッシュ制御ユニット１１に主記憶からの命令の先読みを制御する命令フェッチ制御ユニット１７と、主記憶との間でデータの読み出しや書き込みを行うオペランドキャッシュユニット１２ａを備えたキャッシュ制御ユニット１２を備えている。
【００２８】
キャッシュ制御ユニット１１の後段には、命令キャッシュ１１ａから読み出した命令を一時的に保持する命令バッファ１３と、この命令バッファ１３から読み出した命令をデコードするデコーダ１４と、デコードされた命令のうち、分岐命名が保持される分岐リザベーションステーション１５と、分岐命令以外の命令が保持されるその他リザベーションステーション１５−１と、複数の系列の演算ユニット１６を備えている。
【００２９】
また、分岐命令およびそれ以外の命令のすべての命令の完了状態を管理するための命令完了管理ユニット１９と、分岐リザベーションステーション１５からの完了情報を利用して後述のように分岐予測を行う分岐予測装置３０が設けられている。
【００３０】
そして、命令フェッチ制御ユニット１７は、命令フェッチ要求17aを命令キャッシュ１１ａに送出する。キャッシュ制御ユニット１１は主記憶から命令キャッシュ１１ａに命令を先読みさせ、命令キャッシュ１１ａの命令は、命令バッファ１３を経由してデコーダ１４にて解釈され、当該命令が分岐命令の場合は分岐リザベーションステーション１５に保持されるとともに、命令完了管理ユニット１９に登録される。
【００３１】
また、当該命令が分岐命令以外の命令（たとえばレジスタ演算命令、アドレス演算命令等）の場合には、その他リザベーションステーション１５−１に保持され、演算ユニット１６に対する固定小数点演算、浮動小数点演算、論理演算等の各種演算要求の発行を行い、あるいは、主記憶から演算ユニット１６内のレジスタにデータを読み出すためのロード要求や、レジスタから主記憶へデータを書き込むためのストア要求の発行を行う。
【００３２】
図１に例示されるように、本実施の形態の分岐予測装置３０は、分岐リザベーションステーション１５からの分岐命令の完了報告１５ａの情報に基づいて図３に例示されるような形式で分岐履歴情報を記憶する分岐履歴記憶装置３１と、分岐履歴記憶装置３１のアクセス時のエラーの有無をパリティチェック等の方法で検出する故障検出部３２と、を備えている。
【００３３】
分岐履歴記憶装置３１は、たとえばＲＡＭ（Random Access Memory）等の記憶媒体を用いて構成されたセットアソシアティブ方式の連想記憶機構を構成している。
さらに、分岐予測装置３０は、分岐履歴記憶装置３１をアクセスするためのインデックスを生成する記憶装置検索インデックス生成部３７と、エラー発生時のインデックス値を保持する検索インデックス保持部３３と、分岐リザベーションステーション１５からの分岐命令の完了情報またはエラー発生時の無効化のデータを書き込むためのインデックスなどから書き込みインデックスを生成する記憶装置書き込みインデックス生成部３６と、エラー発生時に分岐履歴記憶装置３１の全域を消去するためのインデックスを生成する記憶装置全インデックスカウンタ３４と、検索インデックス保持部３３と記憶装置全インデックスカウンタ３４の出力を選択するセレクタ３５と、記憶装置書き込みインデックス生成部３６と記憶装置検索インデックス生成部３７の出力を選択して分岐履歴記憶装置３１をアクセスするセレクタ３８と、エラー発生時の消去動作の種別を外部から指定するための消去方法設定レジスタ４０と、この消去方法設定レジスタ４０の設定状態に基づいて、セレクタ３５を切り替えるための部分消去選択信号４１ａまたは全体消去選択信号４１ｂを出力する選択信号生成部４１と、分岐履歴記憶装置３１に対するデータ書き込みにおけるデータ書き込み信号を生成する書き込み指示信号生成部３９と、を備えている。
【００３４】
本実施の形態の場合、消去方法設定レジスタ４０には、エラーが発生したエントリ（ライン）単位の消去を行う処理と、分岐履歴記憶装置３１の全ラインの消去を行う処理と、なにもしないことを指定することが可能になっている。また、この消去方法設定レジスタ４０には、消去方法としてゼロデータを書き込む方法、または、後述のバリッドフラグ３１ｃを操作する方法のいずれかを選択的に指定するための情報を設定することもできる。
【００３５】
故障検出部３２は、エラー検出時に、エラー発生信号３２ａを検索インデックス保持部３３、記憶装置全インデックスカウンタ３４に出力するとともに、書き込み許可信号３２ｂを書き込み指示信号生成部３９に出力する。選択信号生成部４１は、エラー発生時の消去時に書き込み許可信号４１ｃを書き込み指示信号生成部３９に出力する。
【００３６】
故障検出部３２には、分岐履歴記憶装置３１で発生したエラー情報を記録するエラー情報保持部５０と、エラー情報収集部６０が接続されている。エラー情報保持部５０には、エラー種別毎に対応して設けられたハードウェア回路からなる複数のスキャンチェーン５１が設けられ、エラー種別毎に対応してエラー情報保持部５０における保持情報を回収して外部に出力する動作が可能になっている。
【００３７】
エラー情報保持部５０に格納されるエラーに関する情報には、エラーしたＲＡＭ媒体のラインアドレス（ＲＡＭのアクセスアドレスを保持しておく）、エラーしたデータ、エラーしたＲＡＭ媒体の番号などがある。
【００３８】
エラー情報収集部６０には、エラー回収スキャン制御部６１、頻度カウンタ６２、回路停止制御部６３が接続されている。そして、エラー情報収集部６０は、エラー回収スキャン制御部６１によりスキャンチェーン５１を起動して、エラー情報保持部５０からのエラー情報収集を行う。また、回路停止制御部６３は、故障検出部３２から報告され、頻度カウンタ６２に記録されたエラー発生頻度が所定の閾値を超えた場合に回路停止制御部６３により全体回路の動作を停止させる動作を行う。
【００３９】
上述のように、分岐履歴記憶装置３１は、たとえばＲＡＭ等の記憶媒体を用いて構成されたセットアソシアティブ方式の連想記憶機構を構成している。そして、図３に例示されているように、命令完了管理ユニット１９に格納され、分岐リザベーションステーション１５からの完了報告がなされた分岐命令のアドレス値の上位側の一部ビットからなるタグ部３１ａと、当該分岐命令にて実際に分岐した分岐先のアドレスを示す分岐先アドレス３１ｂとが対応付けて格納されている。また、このタグ部３１ａと分岐先アドレス３１ｂのペアの各々には、当該ペアの情報の有効／無効を示すバリッドフラグ３１ｃと、図示しないパリティビット（本実施の形態の場合、偶数パリティ）などが設けられている。
【００４０】
なお、図３の例では、簡単のため、１アドレス（命令）単位に格納する例を示しているが、複数命令単位に分岐履歴記憶装置３１に格納してもよい。
また、図３に例示した分岐履歴記憶装置３１の各エントリは、分岐履歴記憶装置３１を構成する物理的に同一のＲＡＭ媒体に格納されることに限らず、複数の異なるＲＡＭ媒体に分散して格納されるようにしてもよい。
【００４１】
セットアソシアティブ方式の分岐履歴記憶装置３１で利用可能なエントリ数をｎ、ウェイ数をｗとすると、記憶装置書き込みインデックス生成部３６、記憶装置検索インデックス生成部３７では、インデックスのビット数＝ｌｏｇ2（ｎ／ｗ）を、分岐命令のアドレス値から切り出してインデックス値として用いて分岐履歴記憶装置３１の各ラインのアクセスを行う。
【００４２】
そして、命令フェッチ制御ユニット１７からの命令フェッチ要求１７ａに際して、各エントリは、分岐命令のアドレス値の一部ビットからなるインデックスをキーとしてアクセスされ、タグ部３１ａが一致したエントリがヒットした場合に、当該エントリの分岐先アドレス３１ｂを分岐予測値として出力し、命令フェッチ制御ユニット１７は、この分岐先アドレス３１ｂで命令キャッシュ１１ａからフェッチする動作を行うことで分岐予測動作が実現される。
【００４３】
以下、図５、図６および図７のフローチャート等を参照して、本実施の形態における情報処理装置１０および分岐予測装置３０の作用の一例について説明する。
まず、情報処理装置１０の動作の過程で命令完了管理ユニット１９に登録され、分岐リザベーションステーション１５からの完了報告１５ａが行われた場合、この完了報告１５ａに含まれる分岐命令アドレスと、当該分岐命令にて実際に分岐した分岐先アドレスの情報が、分岐予測装置３０の記憶装置書き込みインデックス生成部３６および書き込み指示信号生成部３９に入力され、図３の形式で登録される。
【００４４】
次に、情報処理装置１０の実行過程で、プログラムカウンタ１８の値に基づいて命令フェッチ制御ユニット１７からキャッシュ制御ユニット１１に命令フェッチ要求１７ａが発行されると、キャッシュ制御ユニット１１では、要求された命令のフェッチアドレスで分岐予測装置３０の検索を行い（ステップ１０１）、ヒットの有無を判定する（ステップ１０２）。そして、ヒットした場合、すなわち、当該命令が分岐命令で、過去の分岐履歴のエントリが分岐履歴記憶装置３１に存在する場合、ヒットしたエントリの分岐先アドレス３１ｂを予測値として命令フェッチ制御ユニット１７に出力し（ステップ１０３）、この命令フェッチ制御ユニット１７では、分岐先アドレス３１ｂ以降を先読みするようにキャッシュ制御ユニット１１に指示する。
【００４５】
また、ステップ１０２でヒットしない場合には、命令フェッチアドレスに、所定の増分値Ｎ（たとえばＮ＝３２バイト）を加算したアドレス値を新たな命令フェッチアドレスとする（ステップ１０４）。
【００４６】
そして、分岐リザベーションステーション１５からの再命令フェッチ要求の有無を判定し（ステップ１０５）、再命令フェッチ要求があった場合（分岐予測結果である分岐先アドレス３１ｂの先読みが無効だった場合）には、再命令フェッチアドレスを命令フェッチアドレスとして（ステップ１０６）、次の命令フェッチを実行する。
【００４７】
上述のステップ１０１の検索処理を行う分岐予測装置３０においては、記憶装置検索インデックス生成部３７で、命令フェッチ要求１７ａのアドレス値から上述のようにしたインデックス値を生成して、セレクタ３８を経由してこのインデックス値を分岐履歴記憶装置３１に与えることで分岐履歴記憶装置３１内を検索する過程で（ステップ１１１）、必要に応じてエラー判定処理を実行し（ステップ１１２）、ヒットした場合には読み出しデータとして分岐先アドレス３１ｂを出力する（ステップ１１３）。
【００４８】
このステップ１１２のエラー判定処理は、図７のフローチャートに示されるように実行される。すなわち、分岐履歴記憶装置３１からの読み出しデータのパリティエラーの有無を判定し（ステップ１２１）、エラーの場合には、故障検出部３２から出力されるエラー発生信号３２ａの出力を契機に当該エラー検出ラインのアドレス（インデックス）を検索インデックス保持部３３に保持し（ステップ１２２）、エラー情報をエラー情報保持部５０に格納するとともに（ステップ１２３）、エラー情報収集部６０に対してエラー報告を行う（ステップ１２４）。
【００４９】
そして、消去方法設定レジスタ４０の設定内容を調べ（ステップ１２５）、エラーが発生したライン単位の消去が指定されている場合には、検索インデックス保持部３３に保持されているインデックス値をセレクタ３５で選択して記憶装置書き込みインデックス生成部３６にセットするとともに、故障検出部３２から出力される書き込み許可信号３２ｂに基づいて書き込み指示信号生成部３９にて書き込み（消去）指示を行うことで、読み出し時にパリティエラーが発生した領域にすべてゼロデータを書き込むことで消去を行う（ステップ１２６）。これにより、偶数パリティによるエラー判定の場合には、消去はエラーと判定されない。なお、この消去では、バリッドフラグ３１ｃを無効な値に設定することで当該ラインの消去を行ってもよい。
【００５０】
ステップ１２５でライン単位の消去指定ではないと判定された場合には、さらに消去方法設定レジスタ４０に全ライン消去が指定されているか否かを判定し（ステップ１２７）、全ライン消去が指定されていた場合には、記憶装置全インデックスカウンタ３４にて、全ラインのインデックスを逐次発生して記憶装置書き込みインデックス生成部３６にセットするとともに、選択信号生成部４１から書き込み許可信号４１ｃを書き込み指示信号生成部３９に入力することで、分岐履歴記憶装置３１の全ラインの消去（ゼロデータの書き込みまたはバリッドフラグ３１ｃによるライン無効化設定）を行う（ステップ１２８）。
【００５１】
さらに、ステップ１２７で全ライン消去ではない判定された場合には、消去動作は行わずにエラー処理を終了する。
また、エラー情報収集部６０では、エラー回収スキャン制御部６１にてスキャンチェーン５１を起動してエラー情報保持部５０に保持されているエラー情報を回収して外部に出力する動作を行う。また、頻度カウンタ６２に保持されているエラー発生頻度の値が所定の閾値を超えた場合には、回路停止制御部６３にて分岐履歴記憶装置３１の周辺回路の動作を停止させる。
【００５２】
分岐履歴記憶装置３１の読み出しアクセスにおけるパリティエラーは、分岐予測の成功率に影響を及ぼす、つまりは情報処理装置１０の性能に影響を及ぼすのみであり、通常使用を続けることが出来なくなる致命的なエラーとはならないが、エラー検出時には、エラー検出報告を行い、また回路の一部を停止してそのエラーに関する情報をスキャンによって回収する
致命的なエラーや、通常使用に影響しないエラーなど、エラー種別毎にスキャンチェーンを構成し、ある種のエラーが起きた際には、そのエラー種別のスキャンチェーンだけ通常のクロックを停止して、スキャン回収を行う。
【００５３】
このように、分岐履歴記憶装置３１のエラーは、致命的ではないにしても性能に影響を及ぼすが、本実施の形態の場合には、パリティエラーが検出されたラインをゼロデータの書き込み（０−ｗｒｉｔｅ）等で消去するので、たとえばソフトエラー等でパリティエラーとなったラインにアクセスがあるたびにエラーとなることが回避される。
【００５４】
分岐履歴記憶装置３１のエラーは、通常使用には影響がなく、性能低下にのみ関わる。エラーが起きたことが一度報告できれば、エラー個所を積極的に消去してやればよく、これを行うことによって、情報処理装置１０の全体を巻き込んだ大規模なエラー回収などを引き起こすことがなくなる。
【００５５】
この結果、エラーの発生毎に行われるエラー回収動作に起因する性能低下や、頻度カウンタ６２に記録されたエラー頻度が所定の閾値を超過したことに起因して回路停止制御部６３が動作し、情報処理装置１０の全体が動作停止に陥ることが回避される。
【００５６】
また、エラーの発生したラインに対してはゼロデータの書き込みによる消去または、バリッドフラグ３１ｃの書き込みによる無効化によって領域解放を行うので、エラー発生領域が使用不能になることが回避され、分岐履歴記憶装置３１の可用性が低下することもない。
【００５７】
すなわち、分岐履歴記憶装置３１の可用性を損なうことなく、分岐履歴記憶装置３１のエラー発生に起因する情報処理装置１０の性能低下を防止することが可能になる。
また、消去方法設定レジスタ４０を設け、この消去方法設定レジスタ４０における設定内容によって、エラー発生における分岐履歴記憶装置３１での消去方法をライン単位の消去、全ラインの消去、ＲＡＭ媒体全体の消去、消去を全く行わない、等に多様に設定できるので、分岐予測装置３０が実装される情報処理装置１０の使用状況に応じて、分岐予測装置３０における過渡的あるいは固定的な読み出しエラーの多様な対策を実現することが可能になる。
【００５８】
すなわち、エラーの起きる原因というのは完全に解明されているわけではないので、固定故障の切り分けも含め、消去方法として複数の手段を用意して選択できるようにすることで、より効率の良い手段を、場合によって選ぶことが出来、信頼性強化に非常に効果的である。
【００５９】
なお、本発明は、上述の実施の形態に例示した構成に限らず、その趣旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
（付記１）
分岐の成立／不成立を予測するための分岐履歴情報が格納される分岐履歴記憶装置と、
前記分岐履歴情報の読み出しエラーを検出する故障検出機構と、
前記読み出しエラーが検出された前記分岐履歴情報の記憶領域を消去する消去機構と、
を含むことを特徴とする分岐予測装置。
【００６０】
（付記２）
付記１記載の分岐予測装置において、前記分岐履歴記憶装置の前記分岐履歴情報の読み出しを行う前記記憶領域を指定する読み出し位置指定情報を保持する位置情報保持手段をさらに備え、
前記位置情報保持手段に保持された読み出し位置情報に基づいて前記分岐履歴情報を読み出した時に前記読み出しエラーが検出された場合、前記消去機構は前記位置情報保持手段に保持された読み出し位置情報を用いて、当該読み出しエラーが検出された前記分岐履歴情報または当該分岐履歴情報を含む前記記憶領域の消去を行うことを特徴とする分岐予測装置。
【００６１】
（付記３）
付記１記載の分岐予測装置において、前記消去機構は、前記読み出しエラーが検出された前記分岐履歴記憶装置の全記憶領域を消去することを特徴とする分岐予測装置。
【００６２】
（付記４）
付記１記載の分岐予測装置において、前記消去機構は、前記読み出しエラーが検出された前記分岐履歴情報の格納領域にゼロデータを書き込むことで当該分岐履歴情報の消去を行うことを特徴とする分岐予測装置。
【００６３】
（付記５）
付記１記載の分岐予測装置において、前記分岐履歴記憶装置には、個々の前記分岐履歴情報の有効または無効を区別するための識別情報が設定され、前記消去機構は、前記識別情報を無効化することで前記分岐履歴情報の消去を行うことを特徴とする分岐予測装置。
【００６４】
（付記６）
付記１記載の分岐予測装置において、前記読み出しエラーが検出された前記分岐履歴情報の格納領域の選択的な消去を行う第１の操作、または前記読み出しエラーが検出された前記分岐履歴記憶装置の全記憶領域を消去を行う第２の操作、または読み出しエラーとなった前記分岐履歴情報の消去を抑止する第３の操作、のいずれかの操作を外部から選択的に前記消去機構に指定するための消去動作制御機構をさらに備えたことを特徴とする分岐予測装置。
【００６５】
（付記７）
付記１記載の分岐予測装置において、前記読み出しエラーが検出された前記分岐履歴情報の格納領域の消去を行う方法として、ゼロデータを書き込むことで前記分岐履歴情報の消去を行う第１の方法、または個々の前記分岐履歴情報の有効または無効を区別するための識別情報を無効化することで前記分岐履歴情報の消去を行う第２の方法、のいずれかの操作を外部から選択的に前記消去機構に指定するための消去動作制御機構をさらに備えたことを特徴とする分岐予測装置。
【００６６】
（付記８）
分岐の成立／不成立を予測するための分岐履歴情報が格納される分岐履歴記憶装置と、前記分岐履歴情報の読み出しエラーを検出する故障検出機構とを含む分岐予測装置の制御方法であって、前記読み出しエラーが検出された前記分岐履歴情報を消去することを特徴とする分岐予測装置の制御方法。
【００６７】
（付記９）
付記８記載の分岐予測装置の制御方法において、前記分岐履歴情報の読み出しエラーが発生した時の読み出し位置情報を用いて、当該読み出しエラーが検出された前記分岐履歴情報または当該分岐履歴情報を含む前記記憶領域の消去を行うことを特徴とする分岐予測装置の制御方法。
【００６８】
（付記１０）
付記８記載の分岐予測装置の制御方法において、前記読み出しエラーが検出された前記分岐履歴記憶装置の全記憶領域を消去することを特徴とする分岐予測装置の制御方法。
【００６９】
（付記１１）
付記８記載の分岐予測装置の制御方法において、前記消去機構は、前記読み出しエラーが検出された前記分岐履歴情報の格納領域にゼロデータを書き込むことで当該分岐履歴情報の消去を行うことを特徴とする分岐予測装置の制御方法。
【００７０】
（付記１２）
付記８記載の分岐予測装置の制御方法において、前記分岐履歴記憶装置には個々の前記分岐履歴情報の有効または無効を区別するための識別情報を設け、前記識別情報を無効化することで前記分岐履歴情報の消去を行うことを特徴とする分岐予測装置の制御方法。
【００７１】
（付記１３）
付記８記載の分岐予測装置の制御方法において、前記読み出しエラーが検出された前記分岐履歴情報の選択的な消去を行う第１の操作、または前記読み出しエラーが検出された前記分岐履歴記憶装置の全記憶領域を消去を行う第２の操作、または読み出しエラーとなった前記分岐履歴情報の消去を抑止する第３の操作、のいずれかの操作を外部から選択的に指定するためのレジスタを設け、前記レジスタの設定情報を書き換えることで、第１、第２および第３の操作のいずれかを選択的に実行させることを特徴とする分岐予測装置の制御方法。
【００７２】
（付記１４）
付記８記載の分岐予測装置の制御方法において、前記読み出しエラーが検出された前記分岐履歴情報の消去を行う方法として、ゼロデータを書き込むことで前記分岐履歴情報の消去を行う第１の方法、または個々の前記分岐履歴情報の有効または無効を区別するための識別情報を無効化することで前記分岐履歴情報の消去を行う第２の方法、のいずれかの操作を外部から選択的に指定するためのレジスタを設け、前記レジスタの設定情報を書き換えることで、第１の方法または第２の方法のいずれかを選択的に実行させることを特徴とする分岐予測装置の制御方法。
【００７３】
（付記１５）
命令を実行する演算ユニットと、前記演算ユニットに入力される前記命令の先読みを行う命令フェッチ制御ユニットと、前記命令フェッチ制御ユニットにて先読みされた前記命令が分岐命令の場合に、前記分岐命令の分岐先アドレスを予測するための分岐予測装置とを含む情報処理装置であって、
前記分岐予測装置は、
分岐の成立／不成立を予測するための分岐履歴情報が格納される分岐履歴記憶装置と、
前記分岐履歴情報の読み出しエラーを検出する故障検出機構と、
前記読み出しエラーが検出された前記分岐履歴情報の記憶領域を消去する消去機構と、
を含むことを特徴とする情報処理装置。
【００７４】
（付記１６）
付記１５記載の情報処理装置において、前記分岐予測装置は、前記分岐履歴記憶装置の前記分岐履歴情報の読み出しを行う前記記憶領域を指定する読み出し位置指定情報を保持する位置情報保持手段をさらに備え、
前記位置情報保持手段に保持された読み出し位置情報に基づいて前記分岐履歴情報を読み出した時に前記読み出しエラーが検出された場合、前記消去機構は前記位置情報保持手段に保持された読み出し位置情報を用いて、当該読み出しエラーが検出された前記分岐履歴情報または当該分岐履歴情報を含む前記記憶領域の消去を行うことを特徴とする情報処理装置。
【００７５】
（付記１７）
付記１５記載の情報処理装置において、前記分岐予測装置の前記消去機構は、前記読み出しエラーが検出された前記分岐履歴記憶装置の全記憶領域を消去することを特徴とする情報処理装置。
【００７６】
（付記１８）
付記１５記載の情報処理装置において、前記分岐予測装置の前記消去機構は、前記読み出しエラーが検出された前記分岐履歴情報の格納領域にゼロデータを書き込むことで当該分岐履歴情報の消去を行うことを特徴とする情報処理装置。
【００７７】
（付記１９）
付記１５記載の情報処理装置において、前記分岐予測装置の前記分岐履歴記憶装置には、個々の前記分岐履歴情報の有効または無効を区別するための識別情報が設定され、前記消去機構は、前記識別情報を無効化することで前記分岐履歴情報の消去を行うことを特徴とする情報処理装置。
【００７８】
（付記２０）
付記１５記載の情報処理装置において、前記分岐予測装置には、さらに、前記読み出しエラーが検出された前記分岐履歴情報の格納領域にゼロデータを書き込むことで当該分岐履歴情報の消去を行う第１の操作、または個々の前記分岐履歴情報の有効または無効を区別するための識別情報を無効化することで前記分岐履歴情報の消去を行う第２の操作、または読み出しエラーとなった前記分岐履歴情報の消去を抑止する第３の操作、のいずれかの操作を外部から選択的に前記消去機構に指定するための消去動作制御機構を備えたことを特徴とする情報処理装置。
【図面の簡単な説明】
【００７９】
【図１】本発明の一実施の形態である分岐予測装置の構成の一例を示す図である。
【図２】本発明の一実施の形態である分岐予測装置を含む情報処理装置において、分岐予測に関係する部分を取り出して例示した概念図である。
【図３】本発明の一実施の形態である分岐予測装置に備えられた分岐履歴記憶装置における格納データの構成の一例を示す概念図である。
【図４】本発明の一実施の形態である分岐予測装置を含む情報処理装置の構成の一例を示すブロック図である。
【図５】本発明の一実施の形態である情報処理装置および分岐予測装置の作用の一例を示すフローチャートである。
【図６】本発明の一実施の形態である情報処理装置および分岐予測装置の作用の一例を示すフローチャートである。
【図７】本発明の一実施の形態である情報処理装置および分岐予測装置の作用の一例を示すフローチャートである。
【符号の説明】
【００８０】
１０  情報処理装置
１１  キャッシュ制御ユニット
１１ａ  命令キャッシュ
１２  キャッシュ制御ユニット
１２ａ  オペランドキャッシュユニット
１３  命令バッファ
１４  デコーダ
１５  分岐リザベーションステーション
１５−１  その他リザベーションステーション
１５ａ  完了報告
１６  演算ユニット
１７  命令フェッチ制御ユニット
１７ａ  命令フェッチ要求
１８  プログラムカウンタ
１９  命令完了管理ユニット
２０  メモリ
３０  分岐予測装置
３１  分岐履歴記憶装置
３１ａ  タグ部
３１ｂ  分岐先アドレス
３１ｃ  バリッドフラグ
３２  故障検出部
３２ａ  エラー発生信号
３２ｂ  書き込み許可信号
３３  検索インデックス保持部
３４  記憶装置全インデックスカウンタ
３５  セレクタ
３６  記憶装置書き込みインデックス生成部
３７  記憶装置検索インデックス生成部
３８  セレクタ
３９  書き込み指示信号生成部
４０  消去方法設定レジスタ
４１  選択信号生成部
４１ａ  部分消去選択信号
４１ｂ  全体消去選択信号
４１ｃ  書き込み許可信号
５０  エラー情報保持部
５１  スキャンチェーン
６０  エラー情報収集部
６１  エラー回収スキャン制御部
６２  頻度カウンタ
６３  回路停止制御部
【図１】
2006048132.tif 000003
【図２】
2006048132.tif 000004
【図３】
2006048132.tif 000005
【図４】
2006048132.tif 000006
【図５】
2006048132.tif 000007
【図６】
2006048132.tif 000008
【図７】
2006048132.tif 000009