(57)【要約】【課題】モード情報に応じてヒストリ情報を書き込む領域を広くすることができる演算処理装置及び演算処理装置の制御方法を提供することを課題とする。【解決手段】演算処理装置は、演算処理に関するヒストリ情報（Ａ１，Ａ２）及び占有モード情報（ＤＡ４）を出力する第１のコアユニット（１０１）と、第１の記憶領域（１４１）及び第２の記憶領域（１４２）を有するメモリと、前記第１のコアユニットが出力する前記占有モード情報が無効を示すときには、前記第１のコアユニットが出力する前記ヒストリ情報を前記メモリの前記第１の記憶領域に書き込み、前記第１のコアユニットが出力する前記占有モード情報が有効を示すときには、前記第１のコアユニットが出力する前記ヒストリ情報を前記メモリの前記第１の記憶領域及び前記第２の記憶領域に書き込む制御回路（１３０）とを有する。【選択図】図２
2014035694.tif 000002
【特許請求の範囲】
【請求項１】
演算処理に関するヒストリ情報及び占有モード情報を出力する第１のコアユニットと、
第１の記憶領域及び第２の記憶領域を有するメモリと、
前記第１のコアユニットが出力する前記占有モード情報が無効を示すときには、前記第１のコアユニットが出力する前記ヒストリ情報を前記メモリの前記第１の記憶領域に書き込み、前記第１のコアユニットが出力する前記占有モード情報が有効を示すときには、前記第１のコアユニットが出力する前記ヒストリ情報を前記メモリの前記第１の記憶領域及び前記第２の記憶領域に書き込む制御回路と
を有することを特徴とする演算処理装置。
【請求項２】
さらに、演算処理に関するヒストリ情報及び占有モード情報を出力する第２のコアユニットを有し、
前記制御回路は、前記第１のコアユニットが出力する前記占有モード情報及び前記第２のコアユニットが出力する前記占有モード情報が共に無効を示すときには、前記第１のコアユニットが出力する前記ヒストリ情報を前記メモリの前記第１の記憶領域に書き込み、前記第２のコアユニットが出力する前記ヒストリ情報を前記メモリの前記第２の記憶領域に書き込むことを特徴とする請求項１記載の演算処理装置。
【請求項３】
前記制御回路は、
前記第１のコアユニットが出力する前記占有モード情報が有効を示し、かつ前記第２のコアユニットが出力する前記占有モード情報が無効を示すときには、前記第１のコアユニットが出力する前記ヒストリ情報を前記メモリの前記第１の記憶領域及び前記第２の記憶領域に書き込み、
前記第１のコアユニットが出力する前記占有モード情報が無効を示し、かつ前記第２のコアユニットが出力する前記占有モード情報が有効を示すときには、前記第２のコアユニットが出力する前記ヒストリ情報を前記メモリの前記第１の記憶領域及び前記第２の記憶領域に書き込むことを特徴とする請求項２記載の演算処理装置。
【請求項４】
前記制御回路は、
前記第１のコアユニットは、共有モード情報を出力し、第１のヒストリ情報及び第２のヒストリ情報を含む前記ヒストリ情報を出力し、
前記制御回路は、
前記第１のコアユニットが出力する前記占有モード情報が有効を示し、かつ前記第１のコアユニットが出力する前記共有モード情報が無効であるときには、前記第１のコアユニットが出力する前記第１のヒストリ情報を前記メモリの前記第１の記憶領域に書き込み、前記第１のコアユニットが出力する前記第２のヒストリ情報を前記メモリの前記第２の記憶領域に書き込み、
前記第１のコアユニットが出力する前記占有モード情報が有効を示し、かつ前記第１のコアユニットが出力する前記共有モード情報が有効であるときには、前記メモリの前記第１の記憶領域及び前記第２の記憶領域の両方を１個のアドレス空間として、前記メモリの前記第１の記憶領域及び前記第２の記憶領域に、前記第１のコアユニットが出力する前記第１のヒストリ情報及び前記第２のヒストリ情報を書き込むことを特徴とする請求項１〜３のいずれか１項に記載の演算処理装置。
【請求項５】
演算処理に関するヒストリ情報及び占有モード情報を出力する第１のコアユニットと、
第１の記憶領域及び第２の記憶領域を有するメモリとを有する演算処理装置の制御方法であって、
前記第１のコアユニットが出力する前記占有モード情報が無効を示すときには、前記第１のコアユニットが出力する前記ヒストリ情報を前記メモリの前記第１の記憶領域に書き込み、
前記第１のコアユニットが出力する前記占有モード情報が有効を示すときには、前記第１のコアユニットが出力する前記ヒストリ情報を前記メモリの前記第１の記憶領域及び前記第２の記憶領域に書き込むことを特徴とする演算処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算処理装置及び演算処理装置の制御方法に関する。
【背景技術】
【０００２】
共通バスを介しメインプロセッサを含む複数のプロセッサが相互に結合されたマルチプロセッサが知られている（例えば、特許文献１参照）。マルチプロセッサは、各プロセッサによって記憶された障害解析、デバッグ等のためのトレース情報を監視する。
【０００３】
また、コンピユータ内部の動作に関する履歴情報（ヒストリ）を記録するヒストリ記録装置が知られている（例えば、特許文献２参照）。ヒストリ記録装置は、コンピユータの内部情報と、外部からの入力情報との時間関係を明確にしながら、内部情報と、有効な外部情報とを記録する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開昭６３−１４７２４３号公報
【特許文献２】特開平５−４０６７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
１つの側面では、本発明の目的は、モード情報に応じてヒストリ情報を書き込む領域を広くすることができる演算処理装置及び演算処理装置の制御方法を提供することである。
【課題を解決するための手段】
【０００６】
演算処理装置は、演算処理に関するヒストリ情報及び占有モード情報を出力する第１のコアユニットと、第１の記憶領域及び第２の記憶領域を有するメモリと、前記第１のコアユニットが出力する前記占有モード情報が無効を示すときには、前記第１のコアユニットが出力する前記ヒストリ情報を前記メモリの前記第１の記憶領域に書き込み、前記第１のコアユニットが出力する前記占有モード情報が有効を示すときには、前記第１のコアユニットが出力する前記ヒストリ情報を前記メモリの前記第１の記憶領域及び前記第２の記憶領域に書き込む制御回路とを有する。
【発明の効果】
【０００７】
占有モード情報が無効を示すときにはヒストリ情報を書き込む領域を狭くし、占有モード情報が有効を示すときにはヒストリ情報を書き込む領域を広くすることができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施形態による演算処理装置の構成例を示す図である。
【図２】図２は、第１のコアユニット、第２のコアユニット、ヒストリ選択回路及びヒストリユニットの構成例を示す図である。
【図３】図３は、図２のヒストリユニットの構成例を示す図である。
【図４】図４は、図３の第１のアドレス回路及び第２のアドレス回路の動作例を説明するための図である。
【図５】図５は、図３の選択回路の構成例を示す図である。
【発明を実施するための形態】
【０００９】
図１は、実施形態による演算処理装置１００の構成例を示す図である。演算処理装置１００は、例えばプロセッサであり、第１のコアユニット１０１、第２のコアユニット１０２、第３のコアユニット１０３、第４のコアユニット１０４、共通ユニット１１０、ヒストリ選択回路１３０及びヒストリユニット１４０を有する。４個のコアユニット１０１〜１０４の各々は、命令制御部１２１、演算部１２２、１次（レベル１）キャッシュ制御部１２３及びヒストリ制御レジスタ１２４を有する。共通ユニット１１０は、システム制御ユニット１１１、２次（レベル２）キャッシュ制御部１１２及びメモリ制御ユニット１１３を有し、４個のコアユニット１０１〜１０４に対して共通の制御を行う。システム制御ユニット１１１は、外部に接続されたサービスプロセッサからのアクセス又はプログラムを分析して、各コアユニット１０１〜１０４内のヒストリ制御レジスタ１２４にアクセスする。
【００１０】
ヒストリユニット１４０は、第１のヒストリＲＡＭ（ランダムアクセスメモリ）１４１、第２のヒストリＲＡＭ１４２、第３のヒストリＲＡＭ１４３及び第４のヒストリＲＡＭ１４４を含むメモリを有する。第１のヒストリＲＡＭ１４１は第１の記憶領域、第２のヒストリＲＡＭ１４２は第２の記憶領域、第３のヒストリＲＡＭ１４３は第３の記憶領域、第４のヒストリＲＡＭ１４４は第４の記憶領域である。
【００１１】
４個のコアユニット１０１〜１０４の各々は、プログラムの実行による演算処理に関するヒストリ（履歴）情報及び占有モード情報をヒストリ選択回路１３０に出力する。ヒストリ情報は、サイクル毎又はイベント毎のコアユニット１０１〜１０４の演算処理に関するヒストリ情報であり、例えば、現在のプログラムの実行アドレスを示すプログラムカウンタ値、実行した命令の順序、パイプライン処理の内容、及び／又はアドレス変換の値などを含む。
【００１２】
ヒストリ選択回路１３０は、４個のコアユニット１０１〜１０４が出力する占有モード情報がすべて無効を示すときには、第１のコアユニット１０１から入力したヒストリ情報を第１のヒストリＲＡＭ１４１に書き込み、第２のコアユニット１０２から入力したヒストリ情報を第２のヒストリＲＡＭ１４２に書き込み、第３のコアユニット１０３から入力したヒストリ情報を第３のヒストリＲＡＭ１４３に書き込み、第４のコアユニット１０４から入力したヒストリ情報を第４のヒストリＲＡＭ１４４に書き込む。
【００１３】
ヒストリＲＡＭ１４１〜１４４に書き込まれたヒストリ情報は、演算処理装置１００の演算処理のエラー解析などに役立つ情報である。エラー解析を行う場合、エラーを検出したプログラムカウンタ値からエラーの原因のプログラムカウンタ値までさかのぼって、その間の演算処理装置１００の動作状況を調べて、問題を分析する必要がある。
【００１４】
近年、演算処理装置１００に実行させるプログラムが複雑になってきているため、エラーの解析が難しくなってきており、大容量のヒストリＲＡＭ１４１〜１４４が必要となってきている。
【００１５】
演算処理装置１００は、高い周波数で動作する複数のコアユニット１０１〜１０４を有するマルチコアプロセッサである。演算処理装置１００内に複数のコアユニット１０１〜１０４を実装するために、演算処理装置１００の半導体チップサイズを大幅に大きくすることは、生産性を上げるためにも難しいことである。複数のコアユニット１０１〜１０４の面積をできるだけ小さくする必要がある中で、ヒストリＲＡＭ１４１〜１４４の容量を増加させることは困難である。コアユニット１０１〜１０４の面積を大きくせず、かつ大容量のヒストリＲＡＭ１４１〜１４４を確保する必要がある。
【００１６】
本実施形態では、コアユニット１０１〜１０４の外にヒストリＲＡＭ１４１〜１４４を設け、コアユニット１０１〜１０４が出力する占有モード情報に応じて、コアユニット１０１〜１０４のうちの１個が使用できるヒストリＲＡＭ１４１〜１４４の領域を変更し、大容量ヒストリＲＡＭを実現する。占有モード情報は、ヒストリＲＡＭ１４１〜１４４を占有するための情報であり、あるコアユニットのエラー解析やプログラム解析において長期間の動作ヒストリ又は詳細な動作ヒストリが必要となった時に有効にする。
【００１７】
ヒストリ情報を使用したエラー解析が必要になった場合、外部のサービスプロセッサ又はプログラムは、エラー解析が必要なコアユニットを選択する。システム制御ユニット１１１は、その選択されたコアユニット内のヒストリ制御レジスタ１２４の占有モード情報を有効にする。これにより、選択されたコアユニットは、有効の占有モード情報を出力する。
【００１８】
例えば、第１のコアユニット１０１が有効の占有モード情報を出力し、第２〜第４のコアユニット１０２〜１０４が無効の占有モード情報を出力するときには、第１のコアユニット１０１が出力するヒストリ情報がヒストリＲＡＭ１４１〜１４４に書き込まれる。
【００１９】
また、第２のコアユニット１０２が有効の占有モード情報を出力し、第１、第３及び第４のコアユニット１０１，１０３及び１０４が無効の占有モード情報を出力するときには、第２のコアユニット１０２が出力するヒストリ情報がヒストリＲＡＭ１４１〜１４４に書き込まれる。
【００２０】
また、第３のコアユニット１０２が有効の占有モード情報を出力し、第１、第２及び第４のコアユニット１０１，１０２及び１０４が無効の占有モード情報を出力するときには、第３のコアユニット１０３が出力するヒストリ情報がヒストリＲＡＭ１４１〜１４４に書き込まれる。
【００２１】
また、第４のコアユニット１０４が有効の占有モード情報を出力し、第１〜第３のコアユニット１０１〜１０３が無効の占有モード情報を出力するときには、第４のコアユニット１０４が出力するヒストリ情報がヒストリＲＡＭ１４１〜１４４に書き込まれる。
【００２２】
また、ヒストリＲＡＭ１４１及び１４２の領域とヒストリＲＡＭ１４３及び１４４の領域とに分割するようにしてもよい。例えば、第１のコアユニット１０１が有効の占有モード情報を出力し、第２のコアユニット１０２が無効の占有モード情報を出力するときには、第１のコアユニット１０１が出力するヒストリ情報がヒストリＲＡＭ１４１及び１４２に書き込まれる。また、第３のコアユニット１０１が有効の占有モード情報を出力し、第４のコアユニット１０２が無効の占有モード情報を出力するときには、第３のコアユニット１０３が出力するヒストリ情報がヒストリＲＡＭ１４３及び１４４に書き込まれる。
【００２３】
以上のように、コアユニット１０１〜１０４は、それぞれ、占有モード情報を有効にすることにより、ヒストリ情報を書き込む領域を広くすることができるので、長期間の動作ヒストリ又は詳細な動作ヒストリを書き込むことができ、複雑なエラー解析及びプログラム解析が可能になる。
【００２４】
図２は、第１のコアユニット１０１、第２のコアユニット１０２、ヒストリ選択回路１３０及びヒストリユニット１４０の構成例を示す図である。以下、演算処理装置１０１が２個のコアユニット１０１及び１０２を有する場合を例に説明するが、３個以上のコアユニットを有する場合も同様である。ヒストリユニット１４０は、第１のヒストリＲＡＭ１４１及び第２のヒストリＲＡＭ１４２を有する。
【００２５】
第１のコアユニット１０１のヒストリ制御レジスタ１２４は、情報ＤＡ１〜ＤＡ４を有する。有効情報ＤＡ１は、ヒストリ機能の有効又は無効の情報である。制御情報ＤＡ２は、ヒストリ情報を取得するタイミングがクロック毎又はイベント毎のいずれかであるのかを示す情報である。イベント情報ＤＡ３は、ヒストリ情報の内容として、プログラムカウンタ値、パイプラインの内容、特定の処理ブロックの内容などを指定するための情報である。占有モード情報ＤＡ４は、上記のように、有効（値「１」）にするとヒストリ情報を書き込む領域が広くなり、無効（値「０」）にするとヒストリ情報を書き込む領域が狭くなる。
【００２６】
第１のコアユニット１０１は、ヒストリ制御レジスタ１２４内の情報ＤＡ１〜ＤＡ４に応じて、ヒストリ情報を取得する。第１のコアユニット１０１は、占有モード情報ＤＡ４が無効であるときには、イベント情報ＤＡ３に応じて、第１のヒストリ情報Ａ１及び有効の第１のライトイネーブル信号ＷＥ＿Ａ１を出力する。また、第１のコアユニット１０１は、占有モード情報ＤＡ４が有効であるときには、イベント情報ＤＡ３に応じて、第１のヒストリ情報Ａ１及び有効の第１のライトイネーブル信号ＷＥ＿Ａ１、並びに第２のヒストリ情報Ａ２及び有効の第２のライトイネーブル信号ＷＥ＿Ａ２を出力する。
【００２７】
また、第１のコアユニット１０１は、占有モード情報ＤＡ４が有効かつイベント情報ＤＡ３がプログラムカウンタ値を示すときには共有モード情報ＰＣＭＤを有効（値「１」）にし、それ以外のときには共有モード情報ＰＣＭＤを無効（値「０」）にする。
【００２８】
第２のコアユニット１０２のヒストリ制御レジスタ１２４は、情報ＤＢ１〜ＤＢ４を有する。情報ＤＢ１〜ＤＢ４は、第１のコアユニット１０１の情報ＤＡ１〜ＤＡ４と同様である。
【００２９】
第２のコアユニット１０２は、ヒストリ制御レジスタ１２４内の情報ＤＢ１〜ＤＢ４に応じて、ヒストリ情報を取得する。第２のコアユニット１０２は、占有モード情報ＤＢ４が無効であるときには、イベント情報ＤＢ３に応じて、第１のヒストリ情報Ｂ１及び有効の第１のライトイネーブル信号ＷＥ＿Ｂ１を出力する。また、第２のコアユニット１０２は、占有モード情報ＤＢ４が有効であるときには、イベント情報ＤＢ３に応じて、第１のヒストリ情報Ｂ１及び有効の第１のライトイネーブル信号ＷＥ＿Ｂ１、並びに第２のヒストリ情報Ｂ２及び有効の第２のライトイネーブル信号ＷＥ＿Ｂ２を出力する。
【００３０】
また、第２のコアユニット１０２は、占有モード情報ＤＢ４が有効かつイベント情報ＤＢ３がプログラムカウンタ値を示すときには共有モード情報ＰＣＭＤを有効（値「１」）にし、それ以外のときには共有モード情報ＰＣＭＤを無効（値「０」）にする。
【００３１】
ヒストリ選択回路１３０は、論理積（ＡＮＤ）回路２０１〜２０４及び論理和（ＯＲ）回路２０５，２０６を有する。論理積回路２０１は、占有モード情報ＤＡ４が有効（値「１」）であるときには第１のヒストリ情報Ａ１及び第１のライトイネーブル信号ＷＥ＿Ａ１を出力し、占有モード情報ＤＡ４が無効（値「０」）であるときには「０」を出力する。論理積回路２０２は、占有モード情報ＤＢ４が有効（値「１」）であるときには第１のヒストリ情報Ｂ１及び第１のライトイネーブル信号ＷＥ＿Ｂ１を出力し、占有モード情報ＤＢ４が無効（値「０」）であるときには「０」を出力する。論理積回路２０３は、占有モード情報ＤＡ４が有効（値「１」）であるときには第２のヒストリ情報Ａ２及び第２のライトイネーブル信号ＷＥ＿Ａ２を出力し、占有モード情報ＤＡ４が無効（値「０」）であるときには「０」を出力する。論理積回路２０４は、占有モード情報ＤＢ４が有効（値「１」）であるときには第２のヒストリ情報Ｂ２及び第２のライトイネーブル信号ＷＥ＿Ｂ２を出力し、占有モード情報ＤＢ４が無効（値「０」）であるときには「０」を出力する。論理和回路２０５は、論理積回路２０１及び２０２の論理和信号を、第１のヒストリ情報Ｃ１及び第１のライトイネーブル信号ＷＥ＿Ｃ１としてヒストリユニット１４０に出力する。論理和回路２０６は、論理積回路２０３及び２０４の論理和信号を、第２のヒストリ情報Ｃ２及び第２のライトイネーブル信号ＷＥ＿Ｃ２としてヒストリユニット１４０に出力する。
【００３２】
以上のように、占有モード情報ＤＡ４が有効（値「１」）であり、占有モード情報ＤＢ４が無効（値「０」）のときには、第１のヒストリ情報Ｃ１は第１のヒストリ情報Ａ１になり、第１のライトイネーブル信号ＷＥ＿Ｃ１は第１のライトイネーブル信号ＷＥ＿Ａ１になり、第２のヒストリ情報Ｃ２は第２のヒストリ情報Ａ２になり、第２のライトイネーブル信号ＷＥ＿Ｃ２は第２のライトイネーブル信号ＷＥ＿Ａ２になる。
【００３３】
また、占有モード情報ＤＡ４が無効（値「０」）であり、占有モード情報ＤＢ４が有効（値「１」）のときには、第１のヒストリ情報Ｃ１は第１のヒストリ情報Ｂ１になり、第１のライトイネーブル信号ＷＥ＿Ｃ１は第１のライトイネーブル信号ＷＥ＿Ｂ１になり、第２のヒストリ情報Ｃ２は第２のヒストリ情報Ｂ２になり、第２のライトイネーブル信号ＷＥ＿Ｃ２は第２のライトイネーブル信号ＷＥ＿Ｂ２になる。
【００３４】
次に、占有モード情報ＤＡ４が無効（値「０」）であり、占有モード情報ＤＢ４が無効（値「０」）の場合のヒストリ選択回路１３０の動作を説明する。その場合、第１のヒストリ情報Ｃ１は第１のヒストリ情報Ａ１になり、第１のライトイネーブル信号ＷＥ＿Ｃ１は第１のライトイネーブル信号ＷＥ＿Ａ１になり、第２のヒストリ情報Ｃ２は第１のヒストリ情報Ｂ１になり、第２のライトイネーブル信号ＷＥ＿Ｃ２は第１のライトイネーブル信号ＷＥ＿Ｂ１になる。
【００３５】
図３は、図２のヒストリユニット１４０の構成例を示す図である。ヒストリユニット１４０は、第１のヒストリＲＡＭ１４１、第２のヒストリＲＡＭ１４２、選択回路３０３、第１のアドレス回路３０１及び第２のアドレス回路３０２を有する。第１のアドレス回路３０１は、第１のアドレスＡＤ１及びオーバーフロービットＯＦを選択回路３０３に出力する。第２のアドレス回路３０２は、第２のアドレスＡＤ２を選択回路３０３に出力する。選択回路３０３は、第１のアドレスＡＤ１、オーバーフロービットＯＦ、第２のアドレスＡＤ２、第１のライトイネーブル信号ＷＥ＿Ｃ１及び第２のライトイネーブル信号ＷＥ＿Ｃ２を入力し、第１のアドレスＡＤＤ１及び第１のライトイネーブル信号ＷＥ＿Ｄ１を第１のヒストリＲＡＭ１４１に出力し、第２のアドレスＡＤＤ２及び第２のライトイネーブル信号ＷＥ＿Ｄ２を第２のヒストリＲＡＭ１４２に出力する。
【００３６】
図４は、図３の第１のアドレス回路３０１及び第２のアドレス回路３０２の動作例を説明するための図である。第１のアドレス回路３０１は、第１のライトイネーブル信号ＷＥ＿Ｃ１が有効であるときには、初期値が「０」の第１のアドレスＡＤ１（例えば１０ビット）をインクリメントする。また、第１のアドレス回路３０１は、第１のアドレスＡＤ１がオーバーフローすると、オーバーフロービットＯＦを「１」にする。第１のアドレスＡＤ１がオーバーフローしていないときには、オーバーフロービットＯＦは「０」である。
【００３７】
反転回路４０１は、共有モード情報ＰＣＭＤを論理反転し、論理積回路４０２に出力する。論理積回路４０２は、共有モード情報ＰＣＭＤが無効（値「０」）であるときには第２のライトイネーブル信号ＷＥ＿Ｃ２を第２のアドレス回路３０２に出力し、それ以外のときには無効のライトイネーブル信号を第２のアドレス回路３０２に出力する。第２のアドレス回路３０２は、論理積回路４０２が出力するライトイネーブル信号が有効のときには、第２のアドレスＡＤ２をインクリメントする。
【００３８】
図５は、図３の選択回路３０３の構成例を示す図である。選択回路３０３は、反転回路５０１〜５０４、論理積回路５０５〜５１０及び論理和回路５１１〜５１３を有する。反転回路５０１は、共有モード情報ＰＣＭＤを論理反転し、論理積回路５０５に出力する。反転回路５０２は、オーバーフロービットＯＦを論理反転し、論理積回路５０６に出力する。反転回路５０３は、共有モード情報ＰＣＭＤを論理反転し、論理積回路５０７に出力する。反転回路５０４は、共有モード情報ＰＣＭＤを論理反転し、論理積回路５１０に出力する。
【００３９】
論理積回路５０５は、共有モード情報ＰＣＭＤが無効（値「０」）であるときには第１のライトイネーブル信号ＷＥ＿Ｃ１を出力し、共有モード情報ＰＣＭＤが有効（値「１」）であるときには「０」を出力する。論理積回路５０６は、オーバーフロービットＯＦが「０」かつ共有モード情報ＰＣＭＤが有効（値「１」）であるときには第１のライトイネーブル信号ＷＥ＿Ｃ１を出力し、それ以外のときには「０」を出力する。論理和回路５１１は、論理積回路５０５及び５０６の出力信号の論理和信号を、第１のライトイネーブル信号ＷＥ＿Ｄ１として第１のヒストリＲＡＭ１４１に出力する。第１のヒストリＲＡＭ１４１は、第１のライトイネーブル信号ＷＥ＿Ｄ１の他、第１のアドレスＡＤ１を第１のアドレスＡＤＤ１として入力する。第１のヒストリＲＡＭ１４１は、第１のライトイネーブル信号ＷＥ＿Ｄ１が有効であるときには、第１のアドレスＡＤＤ１に第１のヒストリ情報Ｃ１を書き込む。
【００４０】
以上のように、共有モード情報ＰＣＭＤが無効（値「１」）のときには、第１のライトイネーブル信号ＷＥ＿Ｃ１が第１のライトイネーブル信号ＷＥ＿Ｄ１として出力される。また、オーバーフロービットＯＦが「０」かつ共有モード情報ＰＣＭＤが有効（値「１」）のときにも、第１のライトイネーブル信号ＷＥ＿Ｃ１が第１のライトイネーブル信号ＷＥ＿Ｄ１として出力される。
【００４１】
論理積回路５０７は、共有モード情報ＰＣＭＤが無効（値「０」）であるときには第２のライトイネーブル信号ＷＥ＿Ｃ２を出力し、共有モード情報ＰＣＭＤが有効（値「１」）であるときには「０」を出力する。論理積回路５０８は、オーバーフロービットＯＦが「１」かつ共有モード情報ＰＣＭＤが有効（値「１」）であるときには第２のライトイネーブル信号ＷＥ＿Ｃ２を出力し、それ以外のときには「０」を出力する。論理和回路５１２は、論理積回路５０７及び５０８の出力信号の論理和信号を、第２のライトイネーブル信号ＷＥ＿Ｄ２として第２のヒストリＲＡＭ１４２に出力する。
【００４２】
以上のように、共有モード情報ＰＣＭＤが無効（値「０」）であるときには、第２のライトイネーブル信号ＷＥ＿Ｃ２が第２のライトイネーブル信号ＷＥ＿Ｄ２として出力される。また、オーバーフロービットＯＦが「１」かつ共有モード情報ＰＣＭＤが有効（値「１」）であるときにも、第２のライトイネーブル信号ＷＥ＿Ｃ２が第２のライトイネーブル信号ＷＥ＿Ｄ２として出力される。
【００４３】
論理積回路５０９は、共有モード情報ＰＣＭＤが有効（値「１」）かつオーバーフロービットＯＦが「１」であるときには第１のアドレスＡＤ１を出力し、それ以外のときには「０」を出力する。論理積回路５１０は、共有モード情報ＰＣＭＤが無効（値「０」）のときには第２のアドレスＡＤ２を出力し、共有モード情報ＰＣＭＤが有効（値「１」）のときには「０」を出力する。論理和回路５１３は、論理積回路５０９及び５１０の出力信号の論理和信号を、第２のアドレスＡＤＤ２として第２のヒストリＲＡＭ１４２に出力する。
【００４４】
以上のように、共有モード情報ＰＣＭＤが有効（値「１」）かつオーバーフロービットＯＦが「１」であるときには、第１のアドレスＡＤ１が第２のアドレスＡＤＤ２として出力される。また、共有モード情報ＰＣＭＤが無効（値「０」）のときには、第２のアドレスＡＤ２が第２のアドレスＡＤＤ２として出力される。
【００４５】
第２のヒストリＲＡＭ１４２は、第２のライトイネーブル信号ＷＥ＿Ｄ２が有効であるときには、第２のアドレスＡＤＤ２に第２のヒストリ情報Ｃ２を書き込む。
【００４６】
まず、第１のコアユニット１０１が出力する占有モード情報ＤＡ４が無効を示し、第２のコアユニット１０２が出力する占有モード情報ＤＢ４が無効を示すときの動作を説明する。その場合、第１のコアユニット１０１が出力する第１のヒストリ情報Ａ１が第１のヒストリ情報Ｃ１になり、第１のコアユニット１０１が出力する第１のライトイネーブル信号ＷＥ＿Ａ１が第１のライトイネーブル信号ＷＥ＿Ｄ１になり、第１のアドレス回路３０１が生成する第１のアドレスＡＤ１が第１のアドレスＡＤＤ１になる。また、第２のコアユニット１０２が出力する第１のヒストリ情報Ｂ１が第２のヒストリ情報Ｃ２になり、第２のコアユニット１０２が出力する第１のライトイネーブル信号ＷＥ＿Ｂ１が第２のライトイネーブル信号ＷＥ＿Ｄ２になり、第２のアドレス回路３０２が生成する第２のアドレスＡＤ２が第２のアドレスＡＤＤ２になる。その結果、第１のコアユニット１０１の第１のヒストリ情報Ａ１は、第１のヒストリＲＡＭ１４１に書き込まれ、第２のコアユニット１０２の第１のヒストリ情報Ｂ１は、第２のヒストリＲＡＭ１４２に書き込まれる。
【００４７】
また、第１のコアユニット１０１が出力する占有モード情報ＤＡ４が有効を示し、第１のコアユニット１０１が出力する共有モード情報ＰＣＭＤが無効を示し、第２のコアユニット１０２が出力する占有モード情報ＤＢ４が無効を示すときの動作を説明する。その場合、第１のコアユニット１０１が出力する第１のヒストリ情報Ａ１が第１のヒストリ情報Ｃ１になり、第１のコアユニット１０１が出力する第１のライトイネーブル信号ＷＥ＿Ａ１が第１のライトイネーブル信号ＷＥ＿Ｄ１になり、第１のアドレス回路３０１が生成する第１のアドレスＡＤ１が第１のアドレスＡＤＤ１になる。また、第１のコアユニット１０１が出力する第２のヒストリ情報Ａ２が第２のヒストリ情報Ｃ２になり、第１のコアユニット１０１が出力する第２のライトイネーブル信号ＷＥ＿Ａ２が第２のライトイネーブル信号ＷＥ＿Ｄ２になり、第２のアドレス回路３０２が生成する第２のアドレスＡＤ２が第２のアドレスＡＤＤ２になる。その結果、第１のコアユニット１０１の第１のヒストリ情報Ａ１は、第１のヒストリＲＡＭ１４１に書き込まれ、第１のコアユニット１０１の第２のヒストリ情報Ａ２は、第２のヒストリＲＡＭ１４２に書き込まれる。
【００４８】
また、第２のコアユニット１０２が出力する占有モード情報ＤＢ４が有効を示し、第２のコアユニット１０２が出力する共有モード情報ＰＣＭＤが無効を示し、第１のコアユニット１０１が出力する占有モード情報ＤＡ４が無効を示すときの動作を説明する。その場合、第２のコアユニット１０２が出力する第１のヒストリ情報Ｂ１が第１のヒストリ情報Ｃ１になり、第２のコアユニット１０２が出力する第１のライトイネーブル信号ＷＥ＿Ｂ１が第１のライトイネーブル信号ＷＥ＿Ｄ１になり、第１のアドレス回路３０１が生成する第１のアドレスＡＤ１が第１のアドレスＡＤＤ１になる。また、第２のコアユニット１０２が出力する第２のヒストリ情報Ｂ２が第２のヒストリ情報Ｃ２になり、第２のコアユニット１０２が出力する第２のライトイネーブル信号ＷＥ＿Ｂ２が第２のライトイネーブル信号ＷＥ＿Ｄ２になり、第２のアドレス回路３０２が生成する第２のアドレスＡＤ２が第２のアドレスＡＤＤ２になる。その結果、第２のコアユニット１０２の第１のヒストリ情報Ｂ１は、第１のヒストリＲＡＭ１４１に書き込まれ、第２のコアユニット１０２の第２のヒストリ情報Ｂ２は、第２のヒストリＲＡＭ１４２に書き込まれる。
【００４９】
また、第１のコアユニット１０１が出力する占有モード情報ＤＡ４が有効を示し、第１のコアユニット１０１が出力する共有モード情報ＰＣＭＤが有効を示し、第２のコアユニット１０２が出力する占有モード情報ＤＢ４が無効を示すときの動作を説明する。その場合、第１のコアユニット１０１が出力する第１のヒストリ情報Ａ１が第１のヒストリ情報Ｃ１になり、第１のコアユニット１０１が出力する第２のヒストリ情報Ａ２が第２のヒストリ情報Ｃ２になる。そして、第１のヒストリＲＡＭ１４１及び第２のヒストリＲＡＭ１４２の両方を１個のアドレス空間として、第１のヒストリＲＡＭ１４１及び第２のヒストリＲＡＭ１４２に、第１のコアユニット１０１が出力する第１のヒストリ情報Ａ１及び第２のヒストリ情報Ａ２が書き込まれる。最初、オーバーフロービットＯＦが「０」であるので、第１のアドレスＡＤ１が第１のアドレスＡＤＤ１として第１のヒストリＲＡＭ１４１に入力される。第１のヒストリ情報Ａ１及び第２のヒストリ情報Ａ２は、第１のヒストリＲＡＭ１４１の第１のアドレスＡＤＤ１に書き込まれる。第１のアドレスＡＤＤ１のインクリメントにより、第１のヒストリ情報Ａ１及び第２のヒストリ情報Ａ２は、第１のヒストリＲＡＭ１４１の「０」のアドレスＡＤＤ１から順に書き込まれる。やがて、第１のアドレスＡＤＤ１が第１のヒストリＲＡＭ１４１の最後のアドレスを超えると、オーバーフロービットＯＦが「１」になり、「０」の第１のアドレスＡＤ１が第２のアドレスＡＤＤ２として第２のヒストリＲＡＭ１４２に入力される。第１のヒストリ情報Ａ１及び第２のヒストリ情報Ａ２は、第２のヒストリＲＡＭ１４２の第２のアドレスＡＤＤ２に書き込まれる。第２のアドレスＡＤＤ２のインクリメントにより、第１のヒストリ情報Ａ１及び第２のヒストリ情報Ａ２は、第２のヒストリＲＡＭ１４２の「０」のアドレスＡＤＤ２から順に書き込まれる。以上のように、第１のヒストリ情報Ａ１及び第２のヒストリ情報Ａ２は、最初、第１のヒストリＲＡＭ１４１に書き込まれ、第１のヒストリＲＡＭ１４１が一杯になると、続いて、第２のヒストリＲＡＭ１４２に書き込まれる。すなわち、第１のヒストリＲＡＭ１４１及び第２のヒストリＲＡＭ１４２は、１個のアドレス空間として、第１のヒストリ情報Ａ１及び第２のヒストリ情報Ａ２が書き込まれる。
【００５０】
次に、第２のコアユニット１０２が出力する占有モード情報ＤＢ４が有効を示し、第２のコアユニット１０２が出力する共有モード情報ＰＣＭＤが有効を示し、第１のコアユニット１０１が出力する占有モード情報ＤＡ４が無効を示すときの動作を説明する。その場合、第２のコアユニット１０２が出力する第１のヒストリ情報Ｂ１が第１のヒストリ情報Ｃ１になり、第２のコアユニット１０２が出力する第２のヒストリ情報Ｂ２が第２のヒストリ情報Ｃ２になる。そして、第１のヒストリＲＡＭ１４１及び第２のヒストリＲＡＭ１４２の両方を１個のアドレス空間として、第１のヒストリＲＡＭ１４１及び第２のヒストリＲＡＭ１４２に、第２のコアユニット１０２が出力する第１のヒストリ情報Ｂ１及び第２のヒストリ情報Ｂ２が書き込まれる。最初、オーバーフロービットＯＦが「０」であるので、第１のアドレスＡＤ１が第１のアドレスＡＤＤ１として第１のヒストリＲＡＭ１４１に入力される。第１のヒストリ情報Ｂ１及び第２のヒストリ情報Ｂ２は、第１のヒストリＲＡＭ１４１の第１のアドレスＡＤＤ１に書き込まれる。第１のアドレスＡＤＤ１のインクリメントにより、第１のヒストリ情報Ｂ１及び第２のヒストリ情報Ｂ２は、第１のヒストリＲＡＭ１４１の「０」のアドレスＡＤＤ１から順に書き込まれる。やがて、第１のアドレスＡＤＤ１が第１のヒストリＲＡＭ１４１の最後のアドレスを超えると、オーバーフロービットＯＦが「１」になり、「０」の第１のアドレスＡＤ１が第２のアドレスＡＤＤ２として第２のヒストリＲＡＭ１４２に入力される。第１のヒストリ情報Ｂ１及び第２のヒストリ情報Ｂ２は、第２のヒストリＲＡＭ１４２の第２のアドレスＡＤＤ２に書き込まれる。第２のアドレスＡＤＤ２のインクリメントにより、第１のヒストリ情報Ｂ１及び第２のヒストリ情報Ｂ２は、第２のヒストリＲＡＭ１４２の「０」のアドレスＡＤＤ２から順に書き込まれる。以上のように、第１のヒストリ情報Ｂ１及び第２のヒストリ情報Ｂ２は、最初、第１のヒストリＲＡＭ１４１に書き込まれ、第１のヒストリＲＡＭ１４１が一杯になると、続いて、第２のヒストリＲＡＭ１４２に書き込まれる。すなわち、第１のヒストリＲＡＭ１４１及び第２のヒストリＲＡＭ１４２は、１個のアドレス空間として、第１のヒストリ情報Ｂ１及び第２のヒストリ情報Ｂ２が書き込まれる。
【００５１】
以上のように、図１の共通ユニット１１０、ヒスト選択回路１３０、図３の第１のアドレス回路３０１、第２のアドレス回路３０２、選択回路３０３、図４の反転回路４０１及び論理積回路４０２は、ヒストリＲＡＭ１４１〜１４４にヒストリ情報を書き込む制御回路である。以下、制御回路の制御方法を説明する。
【００５２】
第１のコアユニット１０１が出力する占有モード情報ＤＡ４が無効を示すときには、第１のコアユニット１０１が出力するヒストリ情報Ａ１を第１のヒストリＲＡＭ１４１に書き込み、第１のコアユニット１０１が出力する占有モード情報ＤＡ４が有効を示すときには、第１のコアユニット１０１が出力する第１のヒストリ情報Ａ１及び第２のヒストリ情報Ａ２を第１のヒストリＲＡＭ１４１及び第２のヒストリＲＡＭ１４２に書き込む。
【００５３】
また、第１のコアユニット１０１が出力する占有モード情報ＤＡ４及び第２のコアユニット１０２が出力する占有モード情報ＤＢ４が共に無効を示すときには、第１のコアユニット１０１が出力する第１のヒストリ情報Ａ１を第１のヒストリＲＡＭ１４１に書き込み、第２のコアユニット１０２が出力する第１のヒストリ情報Ｂ１を第２のヒストリＲＡＭ１４２に書き込む。
【００５４】
また、第１のコアユニット１０１が出力する占有モード情報ＤＡ４が有効を示し、かつ第２のコアユニット１０２が出力する占有モード情報ＤＢ４が無効を示すときには、第１のコアユニット１０１が出力する第１のヒストリ情報Ａ１及び第２のヒストリ情報Ａ２を第１のヒストリＲＡＭ１４１及び第２のヒストリＲＡＭ１４２に書き込む。
【００５５】
また、第１のコアユニット１０１が出力する占有モード情報ＤＡ４が無効を示し、かつ第２のコアユニット１０２が出力する占有モード情報ＤＢ４が有効を示すときには、第２のコアユニット１０２が出力する第１のヒストリ情報Ｂ１及び第２のヒストリ情報Ｂ２を第１のヒストリＲＡＭ１４１及び第２のヒストリＲＡＭ１４２に書き込む。
【００５６】
また、第１のコアユニット１０１が出力する占有モード情報ＤＡ４が有効を示し、かつ第１のコアユニット１０１が出力する共有モード情報ＰＣＭＤが無効であるときには、第１のコアユニット１０１が出力する第１のヒストリ情報Ａ１を第１のヒストリＲＡＭ１４１に書き込み、第１のコアユニット１０１が出力する第２のヒストリ情報Ａ２を第２のヒストリＲＡＭ１４２に書き込む。
【００５７】
また、第１のコアユニット１０１が出力する占有モード情報ＤＡ４が有効を示し、かつ第１のコアユニット１０１が出力する共有モード情報ＰＣＭＤが有効であるときには、第１のヒストリＲＡＭ１４１及び第２のヒストリＲＡＭ１４２の両方を１個のアドレス空間として、第１のヒストリＲＡＭ１４１及び第２のヒストリＲＡＭ１４２に、第１のコアユニット１０１が出力する第１のヒストリ情報Ａ１及び第２のヒストリ情報Ａ２を書き込む。
【００５８】
また、第２のコアユニット１０２が出力する占有モード情報ＤＢ４が有効を示し、かつ第２のコアユニット１０２が出力する共有モード情報ＰＣＭＤが無効であるときには、第２のコアユニット１０２が出力する第１のヒストリ情報Ｂ１を第１のヒストリＲＡＭ１４１に書き込み、第２のコアユニット１０２が出力する第２のヒストリ情報Ｂ２を第２のヒストリＲＡＭ１４２に書き込む。
【００５９】
また、第２のコアユニット１０２が出力する占有モード情報ＤＢ４が有効を示し、かつ第２のコアユニット１０２が出力する共有モード情報ＰＣＭＤが有効であるときには、第１のヒストリＲＡＭ１４１及び第２のヒストリＲＡＭ１４２の両方を１個のアドレス空間として、第１のヒストリＲＡＭ１４１及び第２のヒストリＲＡＭ１４２に、第２のコアユニット１０２が出力する第１のヒストリ情報Ｂ１及び第２のヒストリ情報Ｂ２を書き込む。
【００６０】
以上のように、第１のコアユニット１０１の占有モード情報ＤＡ４が無効であり、第２のコアユニット１０２の占有モード情報ＤＢ４が無効であるときには、第１のコアユニット１０１の第１のヒストリ情報Ａ１は、比較的小容量の第１のヒストリＲＡＭ１４１に書き込まれ、第２のコアユニット１０２の第１のヒストリ情報Ｂ１は、比較的小容量の第２のヒストリＲＡＭ１４２に書き込まれる。
【００６１】
これに対し、第１のコアユニット１０１の占有モード情報ＤＡ４を有効にすることにより、第１のコアユニット１０１の第１のヒストリ情報Ａ１及び第２のヒストリ情報Ａ２は、比較的大容量の第１のヒストリＲＡＭ１４１及び第２のヒストリＲＡＭ１４２に書き込まれる。これにより、第１のコアユニット１０１のプログラム解析及びエラー解析を詳細に行うことが可能になる。
【００６２】
同様に、第２のコアユニット１０２の占有モード情報ＤＢ４を有効にすることにより、第２のコアユニット１０２の第１のヒストリ情報Ｂ１及び第２のヒストリ情報Ｂ２は、比較的大容量の第１のヒストリＲＡＭ１４１及び第２のヒストリＲＡＭ１４２に書き込まれる。これにより、第２のコアユニット１０２のプログラム解析及びエラー解析を詳細に行うことが可能になる。
【００６３】
占有モード情報により、使用するヒストリＲＡＭの領域を変更することができるので、ヒストリＲＡＭを大容量化する必要がない。
【００６４】
また、第１のヒストリＲＡＭ１４１には、第１のヒストリ情報Ｃ１のデータバスが接続され、第２のヒストリＲＡＭ１４２には、第２のヒストリ情報Ｃ２のデータバスが接続されている。第１のヒストリＲＡＭ１４１及び第２のヒストリＲＡＭ１４２を１個のコアユニット１０１又は１０２が占有した場合には、第１のヒストリＲＡＭ１４１の第１のヒストリ情報Ｃ１のデータバス及び第２のヒストリＲＡＭ１４２の第２のヒストリ情報Ｃ２のデータバスを１個のコアユニット１０１又は１０２が使用できるようになるので、必要以上のデータバスをコアユニット１０１，１０２からヒストリユニット１４０まで配線することなく、ヒストリＲＡＭ１４１及び１４２にヒストリ情報を記録することができる。
【００６５】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００６６】
１００  演算処理装置
１０１  第１のコアユニット
１０２  第２のコアユニット
１０３  第３のコアユニット
１０４  第４のコアユニット
１１０  共通ユニット
１１１  システム制御ユニット
１１２  ２次（レベル２）キャッシュ制御部
１１３  メモリ制御ユニット
１２１  命令制御部
１２２  演算部
１２３  １次（レベル１）キャッシュ制御部
１２４  ヒストリ制御レジスタ
１３０  ヒストリ選択回路
１４０  ヒストリユニット
１４１  第１のヒストリＲＡＭ
１４２  第２のヒストリＲＡＭ
１４３  第３のヒストリＲＡＭ
１４４  第４のヒストリＲＡＭ
【図１】
2014035694.tif 000003
【図２】
2014035694.tif 000004
【図３】
2014035694.tif 000005
【図４】
2014035694.tif 000006
【図５】
2014035694.tif 000007