JP5888177B2 - 演算処理装置及び演算処理装置の制御方法 - Google Patents

演算処理装置及び演算処理装置の制御方法 Download PDF

Info

Publication number
JP5888177B2
JP5888177B2 JP2012177366A JP2012177366A JP5888177B2 JP 5888177 B2 JP5888177 B2 JP 5888177B2 JP 2012177366 A JP2012177366 A JP 2012177366A JP 2012177366 A JP2012177366 A JP 2012177366A JP 5888177 B2 JP5888177 B2 JP 5888177B2
Authority
JP
Japan
Prior art keywords
history
core unit
information
mode information
history information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012177366A
Other languages
English (en)
Other versions
JP2014035694A (ja
Inventor
正典 土居
正典 土居
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012177366A priority Critical patent/JP5888177B2/ja
Priority to US13/911,080 priority patent/US20140047194A1/en
Publication of JP2014035694A publication Critical patent/JP2014035694A/ja
Application granted granted Critical
Publication of JP5888177B2 publication Critical patent/JP5888177B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/348Circuit details, i.e. tracer hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3471Address tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、演算処理装置及び演算処理装置の制御方法に関する。
共通バスを介しメインプロセッサを含む複数のプロセッサが相互に結合されたマルチプロセッサが知られている(例えば、特許文献1参照)。マルチプロセッサは、各プロセッサによって記憶された障害解析、デバッグ等のためのトレース情報を監視する。
また、コンピユータ内部の動作に関する履歴情報(ヒストリ)を記録するヒストリ記録装置が知られている(例えば、特許文献2参照)。ヒストリ記録装置は、コンピユータの内部情報と、外部からの入力情報との時間関係を明確にしながら、内部情報と、有効な外部情報とを記録する。
特開昭63−147243号公報 特開平5−40671号公報
1つの側面では、本発明の目的は、モード情報に応じてヒストリ情報を書き込む領域を広くすることができる演算処理装置及び演算処理装置の制御方法を提供することである。
演算処理装置は、演算処理に関するヒストリ情報及び占有モード情報を出力する第1のコアユニットと、第1の記憶領域及び第2の記憶領域を有するメモリと、前記第1のコアユニットが出力する前記占有モード情報が無効を示すときには、前記第1のコアユニットが出力する前記ヒストリ情報を前記メモリの前記第1の記憶領域に書き込み、前記第1のコアユニットが出力する前記占有モード情報が有効を示すときには、前記第1のコアユニットが出力する前記ヒストリ情報を前記メモリの前記第1の記憶領域及び前記第2の記憶領域に書き込む制御回路とを有する。
占有モード情報が無効を示すときにはヒストリ情報を書き込む領域を狭くし、占有モード情報が有効を示すときにはヒストリ情報を書き込む領域を広くすることができる。
図1は、実施形態による演算処理装置の構成例を示す図である。 図2は、第1のコアユニット、第2のコアユニット、ヒストリ選択回路及びヒストリユニットの構成例を示す図である。 図3は、図2のヒストリユニットの構成例を示す図である。 図4は、図3の第1のアドレス回路及び第2のアドレス回路の動作例を説明するための図である。 図5は、図3の選択回路の構成例を示す図である。
図1は、実施形態による演算処理装置100の構成例を示す図である。演算処理装置100は、例えばプロセッサであり、第1のコアユニット101、第2のコアユニット102、第3のコアユニット103、第4のコアユニット104、共通ユニット110、ヒストリ選択回路130及びヒストリユニット140を有する。4個のコアユニット101〜104の各々は、命令制御部121、演算部122、1次(レベル1)キャッシュ制御部123及びヒストリ制御レジスタ124を有する。共通ユニット110は、システム制御ユニット111、2次(レベル2)キャッシュ制御部112及びメモリ制御ユニット113を有し、4個のコアユニット101〜104に対して共通の制御を行う。システム制御ユニット111は、外部に接続されたサービスプロセッサからのアクセス又はプログラムを分析して、各コアユニット101〜104内のヒストリ制御レジスタ124にアクセスする。
ヒストリユニット140は、第1のヒストリRAM(ランダムアクセスメモリ)141、第2のヒストリRAM142、第3のヒストリRAM143及び第4のヒストリRAM144を含むメモリを有する。第1のヒストリRAM141は第1の記憶領域、第2のヒストリRAM142は第2の記憶領域、第3のヒストリRAM143は第3の記憶領域、第4のヒストリRAM144は第4の記憶領域である。
4個のコアユニット101〜104の各々は、プログラムの実行による演算処理に関するヒストリ(履歴)情報及び占有モード情報をヒストリ選択回路130に出力する。ヒストリ情報は、サイクル毎又はイベント毎のコアユニット101〜104の演算処理に関するヒストリ情報であり、例えば、現在のプログラムの実行アドレスを示すプログラムカウンタ値、実行した命令の順序、パイプライン処理の内容、及び/又はアドレス変換の値などを含む。
ヒストリ選択回路130は、4個のコアユニット101〜104が出力する占有モード情報がすべて無効を示すときには、第1のコアユニット101から入力したヒストリ情報を第1のヒストリRAM141に書き込み、第2のコアユニット102から入力したヒストリ情報を第2のヒストリRAM142に書き込み、第3のコアユニット103から入力したヒストリ情報を第3のヒストリRAM143に書き込み、第4のコアユニット104から入力したヒストリ情報を第4のヒストリRAM144に書き込む。
ヒストリRAM141〜144に書き込まれたヒストリ情報は、演算処理装置100の演算処理のエラー解析などに役立つ情報である。エラー解析を行う場合、エラーを検出したプログラムカウンタ値からエラーの原因のプログラムカウンタ値までさかのぼって、その間の演算処理装置100の動作状況を調べて、問題を分析する必要がある。
近年、演算処理装置100に実行させるプログラムが複雑になってきているため、エラーの解析が難しくなってきており、大容量のヒストリRAM141〜144が必要となってきている。
演算処理装置100は、高い周波数で動作する複数のコアユニット101〜104を有するマルチコアプロセッサである。演算処理装置100内に複数のコアユニット101〜104を実装するために、演算処理装置100の半導体チップサイズを大幅に大きくすることは、生産性を上げるためにも難しいことである。複数のコアユニット101〜104の面積をできるだけ小さくする必要がある中で、ヒストリRAM141〜144の容量を増加させることは困難である。コアユニット101〜104の面積を大きくせず、かつ大容量のヒストリRAM141〜144を確保する必要がある。
本実施形態では、コアユニット101〜104の外にヒストリRAM141〜144を設け、コアユニット101〜104が出力する占有モード情報に応じて、コアユニット101〜104のうちの1個が使用できるヒストリRAM141〜144の領域を変更し、大容量ヒストリRAMを実現する。占有モード情報は、ヒストリRAM141〜144を占有するための情報であり、あるコアユニットのエラー解析やプログラム解析において長期間の動作ヒストリ又は詳細な動作ヒストリが必要となった時に有効にする。
ヒストリ情報を使用したエラー解析が必要になった場合、外部のサービスプロセッサ又はプログラムは、エラー解析が必要なコアユニットを選択する。システム制御ユニット111は、その選択されたコアユニット内のヒストリ制御レジスタ124の占有モード情報を有効にする。これにより、選択されたコアユニットは、有効の占有モード情報を出力する。
例えば、第1のコアユニット101が有効の占有モード情報を出力し、第2〜第4のコアユニット102〜104が無効の占有モード情報を出力するときには、第1のコアユニット101が出力するヒストリ情報がヒストリRAM141〜144に書き込まれる。
また、第2のコアユニット102が有効の占有モード情報を出力し、第1、第3及び第4のコアユニット101,103及び104が無効の占有モード情報を出力するときには、第2のコアユニット102が出力するヒストリ情報がヒストリRAM141〜144に書き込まれる。
また、第3のコアユニット102が有効の占有モード情報を出力し、第1、第2及び第4のコアユニット101,102及び104が無効の占有モード情報を出力するときには、第3のコアユニット103が出力するヒストリ情報がヒストリRAM141〜144に書き込まれる。
また、第4のコアユニット104が有効の占有モード情報を出力し、第1〜第3のコアユニット101〜103が無効の占有モード情報を出力するときには、第4のコアユニット104が出力するヒストリ情報がヒストリRAM141〜144に書き込まれる。
また、ヒストリRAM141及び142の領域とヒストリRAM143及び144の領域とに分割するようにしてもよい。例えば、第1のコアユニット101が有効の占有モード情報を出力し、第2のコアユニット102が無効の占有モード情報を出力するときには、第1のコアユニット101が出力するヒストリ情報がヒストリRAM141及び142に書き込まれる。また、第3のコアユニット101が有効の占有モード情報を出力し、第4のコアユニット102が無効の占有モード情報を出力するときには、第3のコアユニット103が出力するヒストリ情報がヒストリRAM143及び144に書き込まれる。
以上のように、コアユニット101〜104は、それぞれ、占有モード情報を有効にすることにより、ヒストリ情報を書き込む領域を広くすることができるので、長期間の動作ヒストリ又は詳細な動作ヒストリを書き込むことができ、複雑なエラー解析及びプログラム解析が可能になる。
図2は、第1のコアユニット101、第2のコアユニット102、ヒストリ選択回路130及びヒストリユニット140の構成例を示す図である。以下、演算処理装置101が2個のコアユニット101及び102を有する場合を例に説明するが、3個以上のコアユニットを有する場合も同様である。ヒストリユニット140は、第1のヒストリRAM141及び第2のヒストリRAM142を有する。
第1のコアユニット101のヒストリ制御レジスタ124は、情報DA1〜DA4を有する。有効情報DA1は、ヒストリ機能の有効又は無効の情報である。制御情報DA2は、ヒストリ情報を取得するタイミングがクロック毎又はイベント毎のいずれかであるのかを示す情報である。イベント情報DA3は、ヒストリ情報の内容として、プログラムカウンタ値、パイプラインの内容、特定の処理ブロックの内容などを指定するための情報である。占有モード情報DA4は、上記のように、有効(値「1」)にするとヒストリ情報を書き込む領域が広くなり、無効(値「0」)にするとヒストリ情報を書き込む領域が狭くなる。
第1のコアユニット101は、ヒストリ制御レジスタ124内の情報DA1〜DA4に応じて、ヒストリ情報を取得する。第1のコアユニット101は、占有モード情報DA4が無効であるときには、イベント情報DA3に応じて、第1のヒストリ情報A1及び有効の第1のライトイネーブル信号WE_A1を出力する。また、第1のコアユニット101は、占有モード情報DA4が有効であるときには、イベント情報DA3に応じて、第1のヒストリ情報A1及び有効の第1のライトイネーブル信号WE_A1、並びに第2のヒストリ情報A2及び有効の第2のライトイネーブル信号WE_A2を出力する。
また、第1のコアユニット101は、占有モード情報DA4が有効かつイベント情報DA3がプログラムカウンタ値を示すときには共有モード情報PCMDを有効(値「1」)にし、それ以外のときには共有モード情報PCMDを無効(値「0」)にする。
第2のコアユニット102のヒストリ制御レジスタ124は、情報DB1〜DB4を有する。情報DB1〜DB4は、第1のコアユニット101の情報DA1〜DA4と同様である。
第2のコアユニット102は、ヒストリ制御レジスタ124内の情報DB1〜DB4に応じて、ヒストリ情報を取得する。第2のコアユニット102は、占有モード情報DB4が無効であるときには、イベント情報DB3に応じて、第1のヒストリ情報B1及び有効の第1のライトイネーブル信号WE_B1を出力する。また、第2のコアユニット102は、占有モード情報DB4が有効であるときには、イベント情報DB3に応じて、第1のヒストリ情報B1及び有効の第1のライトイネーブル信号WE_B1、並びに第2のヒストリ情報B2及び有効の第2のライトイネーブル信号WE_B2を出力する。
また、第2のコアユニット102は、占有モード情報DB4が有効かつイベント情報DB3がプログラムカウンタ値を示すときには共有モード情報PCMDを有効(値「1」)にし、それ以外のときには共有モード情報PCMDを無効(値「0」)にする。
ヒストリ選択回路130は、論理積(AND)回路201〜204及び論理和(OR)回路205,206を有する。論理積回路201は、占有モード情報DA4が有効(値「1」)であるときには第1のヒストリ情報A1及び第1のライトイネーブル信号WE_A1を出力し、占有モード情報DA4が無効(値「0」)であるときには「0」を出力する。論理積回路202は、占有モード情報DB4が有効(値「1」)であるときには第1のヒストリ情報B1及び第1のライトイネーブル信号WE_B1を出力し、占有モード情報DB4が無効(値「0」)であるときには「0」を出力する。論理積回路203は、占有モード情報DA4が有効(値「1」)であるときには第2のヒストリ情報A2及び第2のライトイネーブル信号WE_A2を出力し、占有モード情報DA4が無効(値「0」)であるときには「0」を出力する。論理積回路204は、占有モード情報DB4が有効(値「1」)であるときには第2のヒストリ情報B2及び第2のライトイネーブル信号WE_B2を出力し、占有モード情報DB4が無効(値「0」)であるときには「0」を出力する。論理和回路205は、論理積回路201及び202の論理和信号を、第1のヒストリ情報C1及び第1のライトイネーブル信号WE_C1としてヒストリユニット140に出力する。論理和回路206は、論理積回路203及び204の論理和信号を、第2のヒストリ情報C2及び第2のライトイネーブル信号WE_C2としてヒストリユニット140に出力する。
以上のように、占有モード情報DA4が有効(値「1」)であり、占有モード情報DB4が無効(値「0」)のときには、第1のヒストリ情報C1は第1のヒストリ情報A1になり、第1のライトイネーブル信号WE_C1は第1のライトイネーブル信号WE_A1になり、第2のヒストリ情報C2は第2のヒストリ情報A2になり、第2のライトイネーブル信号WE_C2は第2のライトイネーブル信号WE_A2になる。
また、占有モード情報DA4が無効(値「0」)であり、占有モード情報DB4が有効(値「1」)のときには、第1のヒストリ情報C1は第1のヒストリ情報B1になり、第1のライトイネーブル信号WE_C1は第1のライトイネーブル信号WE_B1になり、第2のヒストリ情報C2は第2のヒストリ情報B2になり、第2のライトイネーブル信号WE_C2は第2のライトイネーブル信号WE_B2になる。
次に、占有モード情報DA4が無効(値「0」)であり、占有モード情報DB4が無効(値「0」)の場合のヒストリ選択回路130の動作を説明する。その場合、第1のヒストリ情報C1は第1のヒストリ情報A1になり、第1のライトイネーブル信号WE_C1は第1のライトイネーブル信号WE_A1になり、第2のヒストリ情報C2は第1のヒストリ情報B1になり、第2のライトイネーブル信号WE_C2は第1のライトイネーブル信号WE_B1になる。
図3は、図2のヒストリユニット140の構成例を示す図である。ヒストリユニット140は、第1のヒストリRAM141、第2のヒストリRAM142、選択回路303、第1のアドレス回路301及び第2のアドレス回路302を有する。第1のアドレス回路301は、第1のアドレスAD1及びオーバーフロービットOFを選択回路303に出力する。第2のアドレス回路302は、第2のアドレスAD2を選択回路303に出力する。選択回路303は、第1のアドレスAD1、オーバーフロービットOF、第2のアドレスAD2、第1のライトイネーブル信号WE_C1及び第2のライトイネーブル信号WE_C2を入力し、第1のアドレスADD1及び第1のライトイネーブル信号WE_D1を第1のヒストリRAM141に出力し、第2のアドレスADD2及び第2のライトイネーブル信号WE_D2を第2のヒストリRAM142に出力する。
図4は、図3の第1のアドレス回路301及び第2のアドレス回路302の動作例を説明するための図である。第1のアドレス回路301は、第1のライトイネーブル信号WE_C1が有効であるときには、初期値が「0」の第1のアドレスAD1(例えば10ビット)をインクリメントする。また、第1のアドレス回路301は、第1のアドレスAD1がオーバーフローすると、オーバーフロービットOFを「1」にする。第1のアドレスAD1がオーバーフローしていないときには、オーバーフロービットOFは「0」である。
反転回路401は、共有モード情報PCMDを論理反転し、論理積回路402に出力する。論理積回路402は、共有モード情報PCMDが無効(値「0」)であるときには第2のライトイネーブル信号WE_C2を第2のアドレス回路302に出力し、それ以外のときには無効のライトイネーブル信号を第2のアドレス回路302に出力する。第2のアドレス回路302は、論理積回路402が出力するライトイネーブル信号が有効のときには、第2のアドレスAD2をインクリメントする。
図5は、図3の選択回路303の構成例を示す図である。選択回路303は、反転回路501〜504、論理積回路505〜510及び論理和回路511〜513を有する。反転回路501は、共有モード情報PCMDを論理反転し、論理積回路505に出力する。反転回路502は、オーバーフロービットOFを論理反転し、論理積回路506に出力する。反転回路503は、共有モード情報PCMDを論理反転し、論理積回路507に出力する。反転回路504は、共有モード情報PCMDを論理反転し、論理積回路510に出力する。
論理積回路505は、共有モード情報PCMDが無効(値「0」)であるときには第1のライトイネーブル信号WE_C1を出力し、共有モード情報PCMDが有効(値「1」)であるときには「0」を出力する。論理積回路506は、オーバーフロービットOFが「0」かつ共有モード情報PCMDが有効(値「1」)であるときには第1のライトイネーブル信号WE_C1を出力し、それ以外のときには「0」を出力する。論理和回路511は、論理積回路505及び506の出力信号の論理和信号を、第1のライトイネーブル信号WE_D1として第1のヒストリRAM141に出力する。第1のヒストリRAM141は、第1のライトイネーブル信号WE_D1の他、第1のアドレスAD1を第1のアドレスADD1として入力する。第1のヒストリRAM141は、第1のライトイネーブル信号WE_D1が有効であるときには、第1のアドレスADD1に第1のヒストリ情報C1を書き込む。
以上のように、共有モード情報PCMDが無効(値「1」)のときには、第1のライトイネーブル信号WE_C1が第1のライトイネーブル信号WE_D1として出力される。また、オーバーフロービットOFが「0」かつ共有モード情報PCMDが有効(値「1」)のときにも、第1のライトイネーブル信号WE_C1が第1のライトイネーブル信号WE_D1として出力される。
論理積回路507は、共有モード情報PCMDが無効(値「0」)であるときには第2のライトイネーブル信号WE_C2を出力し、共有モード情報PCMDが有効(値「1」)であるときには「0」を出力する。論理積回路508は、オーバーフロービットOFが「1」かつ共有モード情報PCMDが有効(値「1」)であるときには第2のライトイネーブル信号WE_C2を出力し、それ以外のときには「0」を出力する。論理和回路512は、論理積回路507及び508の出力信号の論理和信号を、第2のライトイネーブル信号WE_D2として第2のヒストリRAM142に出力する。
以上のように、共有モード情報PCMDが無効(値「0」)であるときには、第2のライトイネーブル信号WE_C2が第2のライトイネーブル信号WE_D2として出力される。また、オーバーフロービットOFが「1」かつ共有モード情報PCMDが有効(値「1」)であるときにも、第2のライトイネーブル信号WE_C2が第2のライトイネーブル信号WE_D2として出力される。
論理積回路509は、共有モード情報PCMDが有効(値「1」)かつオーバーフロービットOFが「1」であるときには第1のアドレスAD1を出力し、それ以外のときには「0」を出力する。論理積回路510は、共有モード情報PCMDが無効(値「0」)のときには第2のアドレスAD2を出力し、共有モード情報PCMDが有効(値「1」)のときには「0」を出力する。論理和回路513は、論理積回路509及び510の出力信号の論理和信号を、第2のアドレスADD2として第2のヒストリRAM142に出力する。
以上のように、共有モード情報PCMDが有効(値「1」)かつオーバーフロービットOFが「1」であるときには、第1のアドレスAD1が第2のアドレスADD2として出力される。また、共有モード情報PCMDが無効(値「0」)のときには、第2のアドレスAD2が第2のアドレスADD2として出力される。
第2のヒストリRAM142は、第2のライトイネーブル信号WE_D2が有効であるときには、第2のアドレスADD2に第2のヒストリ情報C2を書き込む。
まず、第1のコアユニット101が出力する占有モード情報DA4が無効を示し、第2のコアユニット102が出力する占有モード情報DB4が無効を示すときの動作を説明する。その場合、第1のコアユニット101が出力する第1のヒストリ情報A1が第1のヒストリ情報C1になり、第1のコアユニット101が出力する第1のライトイネーブル信号WE_A1が第1のライトイネーブル信号WE_D1になり、第1のアドレス回路301が生成する第1のアドレスAD1が第1のアドレスADD1になる。また、第2のコアユニット102が出力する第1のヒストリ情報B1が第2のヒストリ情報C2になり、第2のコアユニット102が出力する第1のライトイネーブル信号WE_B1が第2のライトイネーブル信号WE_D2になり、第2のアドレス回路302が生成する第2のアドレスAD2が第2のアドレスADD2になる。その結果、第1のコアユニット101の第1のヒストリ情報A1は、第1のヒストリRAM141に書き込まれ、第2のコアユニット102の第1のヒストリ情報B1は、第2のヒストリRAM142に書き込まれる。
また、第1のコアユニット101が出力する占有モード情報DA4が有効を示し、第1のコアユニット101が出力する共有モード情報PCMDが無効を示し、第2のコアユニット102が出力する占有モード情報DB4が無効を示すときの動作を説明する。その場合、第1のコアユニット101が出力する第1のヒストリ情報A1が第1のヒストリ情報C1になり、第1のコアユニット101が出力する第1のライトイネーブル信号WE_A1が第1のライトイネーブル信号WE_D1になり、第1のアドレス回路301が生成する第1のアドレスAD1が第1のアドレスADD1になる。また、第1のコアユニット101が出力する第2のヒストリ情報A2が第2のヒストリ情報C2になり、第1のコアユニット101が出力する第2のライトイネーブル信号WE_A2が第2のライトイネーブル信号WE_D2になり、第2のアドレス回路302が生成する第2のアドレスAD2が第2のアドレスADD2になる。その結果、第1のコアユニット101の第1のヒストリ情報A1は、第1のヒストリRAM141に書き込まれ、第1のコアユニット101の第2のヒストリ情報A2は、第2のヒストリRAM142に書き込まれる。
また、第2のコアユニット102が出力する占有モード情報DB4が有効を示し、第2のコアユニット102が出力する共有モード情報PCMDが無効を示し、第1のコアユニット101が出力する占有モード情報DA4が無効を示すときの動作を説明する。その場合、第2のコアユニット102が出力する第1のヒストリ情報B1が第1のヒストリ情報C1になり、第2のコアユニット102が出力する第1のライトイネーブル信号WE_B1が第1のライトイネーブル信号WE_D1になり、第1のアドレス回路301が生成する第1のアドレスAD1が第1のアドレスADD1になる。また、第2のコアユニット102が出力する第2のヒストリ情報B2が第2のヒストリ情報C2になり、第2のコアユニット102が出力する第2のライトイネーブル信号WE_B2が第2のライトイネーブル信号WE_D2になり、第2のアドレス回路302が生成する第2のアドレスAD2が第2のアドレスADD2になる。その結果、第2のコアユニット102の第1のヒストリ情報B1は、第1のヒストリRAM141に書き込まれ、第2のコアユニット102の第2のヒストリ情報B2は、第2のヒストリRAM142に書き込まれる。
また、第1のコアユニット101が出力する占有モード情報DA4が有効を示し、第1のコアユニット101が出力する共有モード情報PCMDが有効を示し、第2のコアユニット102が出力する占有モード情報DB4が無効を示すときの動作を説明する。その場合、第1のコアユニット101が出力する第1のヒストリ情報A1が第1のヒストリ情報C1になり、第1のコアユニット101が出力する第2のヒストリ情報A2が第2のヒストリ情報C2になる。そして、第1のヒストリRAM141及び第2のヒストリRAM142の両方を1個のアドレス空間として、第1のヒストリRAM141及び第2のヒストリRAM142に、第1のコアユニット101が出力する第1のヒストリ情報A1及び第2のヒストリ情報A2が書き込まれる。最初、オーバーフロービットOFが「0」であるので、第1のアドレスAD1が第1のアドレスADD1として第1のヒストリRAM141に入力される。第1のヒストリ情報A1及び第2のヒストリ情報A2は、第1のヒストリRAM141の第1のアドレスADD1に書き込まれる。第1のアドレスADD1のインクリメントにより、第1のヒストリ情報A1及び第2のヒストリ情報A2は、第1のヒストリRAM141の「0」のアドレスADD1から順に書き込まれる。やがて、第1のアドレスADD1が第1のヒストリRAM141の最後のアドレスを超えると、オーバーフロービットOFが「1」になり、「0」の第1のアドレスAD1が第2のアドレスADD2として第2のヒストリRAM142に入力される。第1のヒストリ情報A1及び第2のヒストリ情報A2は、第2のヒストリRAM142の第2のアドレスADD2に書き込まれる。第2のアドレスADD2のインクリメントにより、第1のヒストリ情報A1及び第2のヒストリ情報A2は、第2のヒストリRAM142の「0」のアドレスADD2から順に書き込まれる。以上のように、第1のヒストリ情報A1及び第2のヒストリ情報A2は、最初、第1のヒストリRAM141に書き込まれ、第1のヒストリRAM141が一杯になると、続いて、第2のヒストリRAM142に書き込まれる。すなわち、第1のヒストリRAM141及び第2のヒストリRAM142は、1個のアドレス空間として、第1のヒストリ情報A1及び第2のヒストリ情報A2が書き込まれる。
次に、第2のコアユニット102が出力する占有モード情報DB4が有効を示し、第2のコアユニット102が出力する共有モード情報PCMDが有効を示し、第1のコアユニット101が出力する占有モード情報DA4が無効を示すときの動作を説明する。その場合、第2のコアユニット102が出力する第1のヒストリ情報B1が第1のヒストリ情報C1になり、第2のコアユニット102が出力する第2のヒストリ情報B2が第2のヒストリ情報C2になる。そして、第1のヒストリRAM141及び第2のヒストリRAM142の両方を1個のアドレス空間として、第1のヒストリRAM141及び第2のヒストリRAM142に、第2のコアユニット102が出力する第1のヒストリ情報B1及び第2のヒストリ情報B2が書き込まれる。最初、オーバーフロービットOFが「0」であるので、第1のアドレスAD1が第1のアドレスADD1として第1のヒストリRAM141に入力される。第1のヒストリ情報B1及び第2のヒストリ情報B2は、第1のヒストリRAM141の第1のアドレスADD1に書き込まれる。第1のアドレスADD1のインクリメントにより、第1のヒストリ情報B1及び第2のヒストリ情報B2は、第1のヒストリRAM141の「0」のアドレスADD1から順に書き込まれる。やがて、第1のアドレスADD1が第1のヒストリRAM141の最後のアドレスを超えると、オーバーフロービットOFが「1」になり、「0」の第1のアドレスAD1が第2のアドレスADD2として第2のヒストリRAM142に入力される。第1のヒストリ情報B1及び第2のヒストリ情報B2は、第2のヒストリRAM142の第2のアドレスADD2に書き込まれる。第2のアドレスADD2のインクリメントにより、第1のヒストリ情報B1及び第2のヒストリ情報B2は、第2のヒストリRAM142の「0」のアドレスADD2から順に書き込まれる。以上のように、第1のヒストリ情報B1及び第2のヒストリ情報B2は、最初、第1のヒストリRAM141に書き込まれ、第1のヒストリRAM141が一杯になると、続いて、第2のヒストリRAM142に書き込まれる。すなわち、第1のヒストリRAM141及び第2のヒストリRAM142は、1個のアドレス空間として、第1のヒストリ情報B1及び第2のヒストリ情報B2が書き込まれる。
以上のように、図1の共通ユニット110、ヒスト選択回路130、図3の第1のアドレス回路301、第2のアドレス回路302、選択回路303、図4の反転回路401及び論理積回路402は、ヒストリRAM141〜144にヒストリ情報を書き込む制御回路である。以下、制御回路の制御方法を説明する。
第1のコアユニット101が出力する占有モード情報DA4が無効を示すときには、第1のコアユニット101が出力するヒストリ情報A1を第1のヒストリRAM141に書き込み、第1のコアユニット101が出力する占有モード情報DA4が有効を示すときには、第1のコアユニット101が出力する第1のヒストリ情報A1及び第2のヒストリ情報A2を第1のヒストリRAM141及び第2のヒストリRAM142に書き込む。
また、第1のコアユニット101が出力する占有モード情報DA4及び第2のコアユニット102が出力する占有モード情報DB4が共に無効を示すときには、第1のコアユニット101が出力する第1のヒストリ情報A1を第1のヒストリRAM141に書き込み、第2のコアユニット102が出力する第1のヒストリ情報B1を第2のヒストリRAM142に書き込む。
また、第1のコアユニット101が出力する占有モード情報DA4が有効を示し、かつ第2のコアユニット102が出力する占有モード情報DB4が無効を示すときには、第1のコアユニット101が出力する第1のヒストリ情報A1及び第2のヒストリ情報A2を第1のヒストリRAM141及び第2のヒストリRAM142に書き込む。
また、第1のコアユニット101が出力する占有モード情報DA4が無効を示し、かつ第2のコアユニット102が出力する占有モード情報DB4が有効を示すときには、第2のコアユニット102が出力する第1のヒストリ情報B1及び第2のヒストリ情報B2を第1のヒストリRAM141及び第2のヒストリRAM142に書き込む。
また、第1のコアユニット101が出力する占有モード情報DA4が有効を示し、かつ第1のコアユニット101が出力する共有モード情報PCMDが無効であるときには、第1のコアユニット101が出力する第1のヒストリ情報A1を第1のヒストリRAM141に書き込み、第1のコアユニット101が出力する第2のヒストリ情報A2を第2のヒストリRAM142に書き込む。
また、第1のコアユニット101が出力する占有モード情報DA4が有効を示し、かつ第1のコアユニット101が出力する共有モード情報PCMDが有効であるときには、第1のヒストリRAM141及び第2のヒストリRAM142の両方を1個のアドレス空間として、第1のヒストリRAM141及び第2のヒストリRAM142に、第1のコアユニット101が出力する第1のヒストリ情報A1及び第2のヒストリ情報A2を書き込む。
また、第2のコアユニット102が出力する占有モード情報DB4が有効を示し、かつ第2のコアユニット102が出力する共有モード情報PCMDが無効であるときには、第2のコアユニット102が出力する第1のヒストリ情報B1を第1のヒストリRAM141に書き込み、第2のコアユニット102が出力する第2のヒストリ情報B2を第2のヒストリRAM142に書き込む。
また、第2のコアユニット102が出力する占有モード情報DB4が有効を示し、かつ第2のコアユニット102が出力する共有モード情報PCMDが有効であるときには、第1のヒストリRAM141及び第2のヒストリRAM142の両方を1個のアドレス空間として、第1のヒストリRAM141及び第2のヒストリRAM142に、第2のコアユニット102が出力する第1のヒストリ情報B1及び第2のヒストリ情報B2を書き込む。
以上のように、第1のコアユニット101の占有モード情報DA4が無効であり、第2のコアユニット102の占有モード情報DB4が無効であるときには、第1のコアユニット101の第1のヒストリ情報A1は、比較的小容量の第1のヒストリRAM141に書き込まれ、第2のコアユニット102の第1のヒストリ情報B1は、比較的小容量の第2のヒストリRAM142に書き込まれる。
これに対し、第1のコアユニット101の占有モード情報DA4を有効にすることにより、第1のコアユニット101の第1のヒストリ情報A1及び第2のヒストリ情報A2は、比較的大容量の第1のヒストリRAM141及び第2のヒストリRAM142に書き込まれる。これにより、第1のコアユニット101のプログラム解析及びエラー解析を詳細に行うことが可能になる。
同様に、第2のコアユニット102の占有モード情報DB4を有効にすることにより、第2のコアユニット102の第1のヒストリ情報B1及び第2のヒストリ情報B2は、比較的大容量の第1のヒストリRAM141及び第2のヒストリRAM142に書き込まれる。これにより、第2のコアユニット102のプログラム解析及びエラー解析を詳細に行うことが可能になる。
占有モード情報により、使用するヒストリRAMの領域を変更することができるので、ヒストリRAMを大容量化する必要がない。
また、第1のヒストリRAM141には、第1のヒストリ情報C1のデータバスが接続され、第2のヒストリRAM142には、第2のヒストリ情報C2のデータバスが接続されている。第1のヒストリRAM141及び第2のヒストリRAM142を1個のコアユニット101又は102が占有した場合には、第1のヒストリRAM141の第1のヒストリ情報C1のデータバス及び第2のヒストリRAM142の第2のヒストリ情報C2のデータバスを1個のコアユニット101又は102が使用できるようになるので、必要以上のデータバスをコアユニット101,102からヒストリユニット140まで配線することなく、ヒストリRAM141及び142にヒストリ情報を記録することができる。
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
100 演算処理装置
101 第1のコアユニット
102 第2のコアユニット
103 第3のコアユニット
104 第4のコアユニット
110 共通ユニット
111 システム制御ユニット
112 2次(レベル2)キャッシュ制御部
113 メモリ制御ユニット
121 命令制御部
122 演算部
123 1次(レベル1)キャッシュ制御部
124 ヒストリ制御レジスタ
130 ヒストリ選択回路
140 ヒストリユニット
141 第1のヒストリRAM
142 第2のヒストリRAM
143 第3のヒストリRAM
144 第4のヒストリRAM

Claims (5)

  1. 演算処理に関するヒストリ情報及び占有モード情報を出力する第1のコアユニットと、
    第1の記憶領域及び第2の記憶領域を有するメモリと、
    前記第1のコアユニットが出力する前記占有モード情報が無効を示すときには、前記第1のコアユニットが出力する前記ヒストリ情報を前記メモリの前記第1の記憶領域に書き込み、前記第1のコアユニットが出力する前記占有モード情報が有効を示すときには、前記第1のコアユニットが出力する前記ヒストリ情報を前記メモリの前記第1の記憶領域及び前記第2の記憶領域に書き込む制御回路と
    を有することを特徴とする演算処理装置。
  2. さらに、演算処理に関するヒストリ情報及び占有モード情報を出力する第2のコアユニットを有し、
    前記制御回路は、前記第1のコアユニットが出力する前記占有モード情報及び前記第2のコアユニットが出力する前記占有モード情報が共に無効を示すときには、前記第1のコアユニットが出力する前記ヒストリ情報を前記メモリの前記第1の記憶領域に書き込み、前記第2のコアユニットが出力する前記ヒストリ情報を前記メモリの前記第2の記憶領域に書き込むことを特徴とする請求項1記載の演算処理装置。
  3. 前記制御回路は、
    前記第1のコアユニットが出力する前記占有モード情報が有効を示し、かつ前記第2のコアユニットが出力する前記占有モード情報が無効を示すときには、前記第1のコアユニットが出力する前記ヒストリ情報を前記メモリの前記第1の記憶領域及び前記第2の記憶領域に書き込み、
    前記第1のコアユニットが出力する前記占有モード情報が無効を示し、かつ前記第2のコアユニットが出力する前記占有モード情報が有効を示すときには、前記第2のコアユニットが出力する前記ヒストリ情報を前記メモリの前記第1の記憶領域及び前記第2の記憶領域に書き込むことを特徴とする請求項2記載の演算処理装置。
  4. 前記制御回路は、
    前記第1のコアユニットは、共有モード情報を出力し、第1のヒストリ情報及び第2のヒストリ情報を含む前記ヒストリ情報を出力し、
    前記制御回路は、
    前記第1のコアユニットが出力する前記占有モード情報が有効を示し、かつ前記第1のコアユニットが出力する前記共有モード情報が無効であるときには、前記第1のコアユニットが出力する前記第1のヒストリ情報を前記メモリの前記第1の記憶領域に書き込み、前記第1のコアユニットが出力する前記第2のヒストリ情報を前記メモリの前記第2の記憶領域に書き込み、
    前記第1のコアユニットが出力する前記占有モード情報が有効を示し、かつ前記第1のコアユニットが出力する前記共有モード情報が有効であるときには、前記メモリの前記第1の記憶領域及び前記第2の記憶領域の両方を1個のアドレス空間として、前記メモリの前記第1の記憶領域及び前記第2の記憶領域に、前記第1のコアユニットが出力する前記第1のヒストリ情報及び前記第2のヒストリ情報を書き込むことを特徴とする請求項1〜3のいずれか1項に記載の演算処理装置。
  5. 演算処理に関するヒストリ情報及び占有モード情報を出力する第1のコアユニットと、
    第1の記憶領域及び第2の記憶領域を有するメモリとを有する演算処理装置の制御方法であって、
    前記第1のコアユニットが出力する前記占有モード情報が無効を示すときには、前記第1のコアユニットが出力する前記ヒストリ情報を前記メモリの前記第1の記憶領域に書き込み、
    前記第1のコアユニットが出力する前記占有モード情報が有効を示すときには、前記第1のコアユニットが出力する前記ヒストリ情報を前記メモリの前記第1の記憶領域及び前記第2の記憶領域に書き込むことを特徴とする演算処理装置の制御方法。
JP2012177366A 2012-08-09 2012-08-09 演算処理装置及び演算処理装置の制御方法 Active JP5888177B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012177366A JP5888177B2 (ja) 2012-08-09 2012-08-09 演算処理装置及び演算処理装置の制御方法
US13/911,080 US20140047194A1 (en) 2012-08-09 2013-06-06 Processor and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012177366A JP5888177B2 (ja) 2012-08-09 2012-08-09 演算処理装置及び演算処理装置の制御方法

Publications (2)

Publication Number Publication Date
JP2014035694A JP2014035694A (ja) 2014-02-24
JP5888177B2 true JP5888177B2 (ja) 2016-03-16

Family

ID=50067093

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012177366A Active JP5888177B2 (ja) 2012-08-09 2012-08-09 演算処理装置及び演算処理装置の制御方法

Country Status (2)

Country Link
US (1) US20140047194A1 (ja)
JP (1) JP5888177B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8875219B2 (en) * 2009-07-30 2014-10-28 Blackberry Limited Apparatus and method for controlled sharing of personal information

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5998366A (ja) * 1982-11-29 1984-06-06 Nec Corp アドレス指定回路
JPS6273339A (ja) * 1985-09-26 1987-04-04 Nec Corp マイクロプロセツサ開発支援装置
JPH04326134A (ja) * 1991-04-25 1992-11-16 Mitsubishi Electric Corp トレース装置
US6539500B1 (en) * 1999-10-28 2003-03-25 International Business Machines Corporation System and method for tracing
WO2005124556A2 (en) * 2004-06-14 2005-12-29 Koninklijke Philips Electronics N.V. Interface device for debugging and/or tracing a computer system comprising one or multiple masters and one or multiple slaves working together.
JP2006164185A (ja) * 2004-12-10 2006-06-22 Matsushita Electric Ind Co Ltd デバッグ装置
US7984336B2 (en) * 2006-05-24 2011-07-19 Freescale Semiconductor, Inc. Method and system for storing data from a plurality of processors
US20090187747A1 (en) * 2008-01-18 2009-07-23 Infineon Technologies Ag System and method for tracing instruction pointers and data access
US9612934B2 (en) * 2011-10-28 2017-04-04 Cavium, Inc. Network processor with distributed trace buffers
US8935574B2 (en) * 2011-12-16 2015-01-13 Advanced Micro Devices, Inc. Correlating traces in a computing system

Also Published As

Publication number Publication date
JP2014035694A (ja) 2014-02-24
US20140047194A1 (en) 2014-02-13

Similar Documents

Publication Publication Date Title
US20140047197A1 (en) Multiport memory emulation using single-port memory devices
US9830093B2 (en) Method and apparatus for improving immunity to defects in a non-volatile memory
US9317421B2 (en) Memory management
JP2010244238A (ja) リコンフィギュラブル回路及びリコンフィギュラブル回路システム
CN109712665B (zh) 存储器及存储器的功能测试方法
JP2016520937A (ja) 組み込みeccアドレスマッピング
JP5888177B2 (ja) 演算処理装置及び演算処理装置の制御方法
TWI609265B (zh) 用於揮發性記憶體之以極性爲基的資料移轉功能
WO2016063667A1 (ja) 再構成可能デバイス
JP5505192B2 (ja) 競合試験装置
US9116799B2 (en) Method for detecting bank collision at a memory and device therefor
JP6862951B2 (ja) メモリ制御装置、情報処理装置およびメモリ制御方法
CN112486904A (zh) 可重构处理单元阵列的寄存器堆设计方法及装置
US8601040B2 (en) Reduced-level shift overflow detection
JP2006293538A (ja) 演算システム
US11055240B2 (en) Data processing method and device for performing a convolution operation
US20200341879A1 (en) Information processing apparatus and information processing method
US20090177813A1 (en) Scalable Interface for a Memory Array
JP2013186559A (ja) レジスタアドレス制御装置およびレジスタアドレスアクセス方法
US8914548B2 (en) Fast masked summing comparator
JP2002091795A (ja) キャッシュ制御装置
JP5393626B2 (ja) 情報処理装置
JP4557179B2 (ja) マイクロコンピュータ装置
KR20140021419A (ko) 메모리 모듈 및 이를 포함하는 메모리 시스템
JP2013073283A (ja) 情報処理装置及び記憶部検査方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150406

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151228

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160119

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160201

R150 Certificate of patent or registration of utility model

Ref document number: 5888177

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150