JP5962359B2 - プロセッサおよびプロセッサの評価方法 - Google Patents

プロセッサおよびプロセッサの評価方法 Download PDF

Info

Publication number
JP5962359B2
JP5962359B2 JP2012198594A JP2012198594A JP5962359B2 JP 5962359 B2 JP5962359 B2 JP 5962359B2 JP 2012198594 A JP2012198594 A JP 2012198594A JP 2012198594 A JP2012198594 A JP 2012198594A JP 5962359 B2 JP5962359 B2 JP 5962359B2
Authority
JP
Japan
Prior art keywords
counter
processor
signal
event
core
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
JP2012198594A
Other languages
English (en)
Other versions
JP2014052962A (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 JP2012198594A priority Critical patent/JP5962359B2/ja
Publication of JP2014052962A publication Critical patent/JP2014052962A/ja
Application granted granted Critical
Publication of JP5962359B2 publication Critical patent/JP5962359B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、プロセッサおよびプロセッサの評価方法に関する。
プロセッサの性能評価は、例えば、監視対象のイベントの発生回数をカウントすることにより実行される。一般的なプロセッサは、プロセッサ内に搭載されたカウンタ(以下、イベントカウンタとも称する)を用いて、イベントの発生回数をカウントする。近年、複数のプロセッサコアを有するマルチコアプロセッサが普及している。マルチコアプロセッサにおいても、各プロセッサコアのイベントの発生回数を各プロセッサコア内に搭載されたイベントカウンタでカウントする方法が一般的である。なお、プロセッサシステム等の評価方法は種々提案されている(例えば、特許文献1参照。)。
特開平11−272626号公報
同時に監視するイベントの種類は、各プロセッサコア内に搭載されたイベントカウンタの数に依存する。すなわち、各プロセッサコア内に搭載されたイベントカウンタの数より多い種類のイベントを同時に監視することは、困難である。このため、プロセッサの性能を詳細に測定することが困難である。
1つの側面では、本発明の目的は、プロセッサの性能を詳細に測定可能にすることである。
本発明の一形態では、プロセッサは、演算を実行する複数のプロセッサコアと、イベントが発生したか否かを示す発生情報を、複数のプロセッサコア間で転送する転送制御部とを有し、各プロセッサコアは、イベントの発生回数を発生情報に基づいてカウントするカウンタと、イベントとイベントの発生回数をカウントするカウンタとの対応関係が設定されるレジスタとを有している。
プロセッサの性能を詳細に測定できる。
一実施形態におけるプロセッサの例を示している。 図1に示したカウント部の一例を示している。 図1に示したレジスタの設定の一例を示している。 図2に示した選択部の一例を示している。 図2に示したカウンタの一例を示している。 図1に示した転送制御部の一例を示している。 別の実施形態におけるプロセッサの一例を示している。 図7に示したカウント部の一例を示している。 図8に示したカウンタの一例を示している。 図8に示した使用通知生成部の一例を示している。 図7に示した転送制御部の一例を示している。 図11に示した転送信号生成部の一例を示している。 図11に示した制御信号生成部の一例を示している。
以下、実施形態を図面を用いて説明する。
図1は、一実施形態におけるプロセッサPSYSの例を示している。プロセッサPSYSは、例えば、演算を実行する複数のプロセッサコアCOREを有するマルチコアプロセッサである。なお、プロセッサPSYSは、複数のプロセッサを有するマルチプロセッサでもよい。このときには、マルチプロセッサに含まれる複数のプロセッサは、プロセッサコアCOREをそれぞれ有する。
プロセッサPSYSは、例えば、演算を実行する複数のプロセッサコアCORE(CORE1、CORE2、CORE3、CORE4)と、転送制御部CLTと、インターコネクトINTCとを有している。なお、プロセッサコアCOREの数は、4つに限定されない。
各プロセッサコアCOREは、カウント部CNTおよびレジスタREGを有している。カウント部CNTは、監視対象のイベントの発生回数をカウントする。例えば、カウント部CNTは、イベントの発生回数をカウントするカウンタCTRを有している。なお、イベントは、例えば、プロセッサコアCOREを動作させたときに、動作状況に応じて発生する。
レジスタREGには、例えば、カウント対象のイベントとイベントの発生回数をカウントするカウンタCTRとの対応関係が設定される。例えば、カウント部CNTは、レジスタREGに設定された対応関係を示す信号REGINF(以下、レジスタ情報REGINFとも称する)に基づいて、イベントの発生回数をカウントするカウンタCTRを選択する。
転送制御部CLTは、各プロセッサコアCOREから信号ESIGを受け、信号ESIGに基づく信号EXTを各プロセッサコアCOREに出力する。信号ESIG、EXTは、イベントが発生したか否かを示す発生情報である。すなわち、転送制御部CLTは、イベントが発生したか否かを示す発生情報を、複数のプロセッサコアCORE間で転送する。これにより、例えば、プロセッサコアCOREは、カウント対象のイベントが他のプロセッサコアCOREで発生したことを認識できる。以下、信号ESIG、EXTを発生情報ESIG、EXTとも称する。
インターコネクトINTCは、プロセッサコアCORE1−CORE4に接続されている。例えば、プロセッサコアCORE1−CORE4は、インターコネクトINTCを介してメモリ等にアクセスする。
図2は、図1に示したカウント部CNTの一例を示している。なお、図2は、プロセッサコアCORE1のカウント部CNTの一例を示している。プロセッサコアCORE1以外のプロセッサコアCOREのカウント部CNTの構成は、プロセッサコアCORE1のカウント部CNTと同様である。
カウント部CNTは、複数の選択部DSEL(DESL1・・・DESLn)、複数のカウンタCTR(CTR1・・・CTR6)および複数の論理和回路OR(OR21・・・OR26、OR31・・・OR36、OR41・・・OR46)を有している。図2の例では、n個のイベントにそれぞれ対応するn個の選択部DSELが設けられている。なお、選択部DSEL、信号EVT、REGINFの符号の末尾の数字および“n”は、イベントの種類に対応している。同様に、信号EINFの符号の末尾の1桁の数字および“n”は、イベントの種類に対応している。また、信号EINFの符号の末尾の3桁のうちの左側の2桁の数字は、左側から、信号EINFの転送先のプロセッサコアCOREおよびカウンタCTRをそれぞれ示している。
図2の例では、各プロセッサコアCOREに搭載されるカウンタCTRの数は6個である。なお、カウンタCTRの数は、6個に限定されない。論理和回路ORは、例えば、プロセッサコアCOREの数と各プロセッサコアCOREのカウンタCTRの数とに応じた数だけ設けられる。例えば、この実施形態では、プロセッサコアCORE1以外のプロセッサコアCOREの数が3個であり、各プロセッサコアCOREのカウンタCTRの数が6個であるため、論理和回路ORの数は、18個(18=3×6)である。なお、論理和回路ORの数は、18個に限定されない。
各選択部DSELは、信号EVT、REGINFを受け、信号EINFを出力する。信号EVTは、プロセッサコアCORE1のイベントが発生したか否かを示す発生情報である。例えば、信号EVT1に対応するイベントが発生している期間では、信号EVT1はアサートされる。そして、信号EVT1に対応するイベントが発生していない期間では、信号EVT1はネゲートされる。
信号REGINFは、イベントとカウンタCTRとの対応関係を示す信号であり、図1に示したレジスタREGから読み出される。例えば、レジスタ情報REGINF1は、信号EVT1に対応するイベントの発生回数をどのプロセッサコアCOREのどのカウンタCTRでカウントするかを示す情報を有している。
信号EINFは、信号EVTの情報がレジスタ情報REGINFに基づいて反映された信号である。例えば、選択部DSEL1は、信号EVT1がアサートされているとき、信号EVT1に対応する信号EINFのうち、レジスタ情報REGINFが示すカウンタCTRに転送される信号EINFをアサートする。また、選択部DSEL1は、信号EVT1がネゲートされているとき、信号EVT1に対応する信号EINFのうち、レジスタ情報REGINF1が示すカウンタCTRに転送される信号EINFをネゲートする。
なお、信号EVT1に対応する信号EINFのうち、レジスタ情報REGINF1が示すカウンタCTRに転送される信号EINF以外の信号EINFは、信号EVT1の状態に拘わらず、ネゲートされる。このように、信号EINFは、プロセッサコアCORE1のイベントが発生したか否かを示す発生情報である。以下、信号EVT、EINFを発生情報EVT、EINFとも称する。
発生情報EINFは、レジスタ情報REGINFにより指定されたプロセッサコアCOREのカウンタCTRに転送される。上述したように、信号EINFの符号の末尾の3桁のうちの左側の2桁の数字は、左側から、信号EINFの転送先のプロセッサコアCOREおよびカウンタCTRをそれぞれ示している。
例えば、信号EINF16nは、信号EVTnに対応する信号EINFであり、プロセッサコアCORE1のカウンタCTR6に転送される。また、例えば、信号EINF21nは、信号EVTnに対応する信号EINFである。そして、信号EINF21nは、論理和回路OR21および転送制御部CLTを介して、プロセッサコアCORE2のカウンタCTR1に転送される。また、例えば、信号EINF461は、信号EVT1に対応する信号EINFである。そして、信号EINF461は、論理和回路OR46および転送制御部CLTを介して、プロセッサコアCORE4のカウンタCTR6に転送される。
すなわち、選択部DSEL(DESL1・・・DESLn)は、レジスタREGに設定された対応関係(レジスタ情報REGINF)に基づいて選択されるカウント対象のイベントの発生情報を、対応関係により指定されるカウンタCTRに転送する。これにより、対応関係により指定されるカウンタCTRは、カウント対象のイベントの発生情報を受けることができる。
なお、選択部DSEL1以外の選択部DSELの動作は、選択部DSEL1と同様である。例えば、各選択部DSELの動作は、信号EVT、REGINF、EINFの符号の末尾の数字を、各選択部DSELの符号の末尾の数字に読み替えることで説明される。
各カウンタCTRは、n個の信号EVTにそれぞれ対応するn個の発生情報EINFをn個の選択部DSELからそれぞれ受ける。さらに、各カウンタCTRは、発生情報EXTを転送制御部CLTから受ける。そして、各カウンタCTRは、選択部DSELおよび転送制御部CLTから受けた発生情報EINF、EXTに基づいて、イベントの発生回数をカウントする。なお、発生情報EXT11は、例えば、プロセッサコアCORE1以外のプロセッサコアCOREのイベントのうち、プロセッサコアCORE1のカウンタCTR1でカウントされるイベントが発生したか否かを示す発生情報である。
例えば、各カウンタCTRは、選択部DSELおよび転送制御部CLTから受けた発生情報EINF、EXTの少なくとも1つがアサートされているとき、所定のクロック(例えば、プロセッサPSYSの動作クロック)に同期して、カウントアップする。これにより、イベントの発生回数がカウントされる。カウンタCTR(CTR1・・・CTR6)のカウント値を示す信号OUT(OUT11・・・OUT16)は、例えば、必要に応じて読み出される。以下、信号OUTをカウント値OUTとも称する。
ここで、カウント値OUTの符号の末尾の2桁の数字は、左側から、カウント値OUTを出力するプロセッサコアCOREおよびカウンタCTRをそれぞれ示している。また、信号EXTの符号の末尾の2桁の数字は、左側から、信号EXTを受けるプロセッサコアCOREおよびカウンタCTRをそれぞれ示している。
各論理和回路ORは、n個の信号EVTにそれぞれ対応するn個の発生情報EINFをn個の選択部DSELからそれぞれ受ける。そして、各論理和回路ORは、n個の選択部DSELから受けたn個の発生情報EINFの論理和結果を示す信号ESIGを、転送制御部CLTに出力する。
なお、論理和回路ORの符号の末尾の2桁の数字は、左側から、論理和回路ORの出力信号ESIGの転送先のプロセッサコアCOREおよびカウンタCTRをそれぞれ示している。また、信号ESIGの符号の末尾の3桁の数字は、左側から、信号ESIGの転送元のプロセッサコアCORE、信号ESIGの転送先のプロセッサコアCOREおよびカウンタCTRをそれぞれ示している。
例えば、論理和回路OR26は、発生情報EINF261・・・EINF26nの論理和結果を示す信号ESIG126を、プロセッサコアCORE2のカウンタCTR6に転送制御部CLTを介して転送する。すなわち、信号ESIG126は、プロセッサコアCORE1から転送制御部CLTを介してプロセッサコアCORE2のカウンタCTR6に転送される。
ここで、プロセッサコアCORE1以外のプロセッサコアCOREのカウント部CNTの構成は、各要素の符号の末尾のプロセッサコアCOREに対応する数字を、対象のプロセッサコアCOREに合わせて読み替えることで説明される。例えば、プロセッサコアCORE2では、図2の論理和回路OR、信号EINF、ESIG、EXT、OUTの符号の末尾の数字のうちのプロセッサコアCORE1、CORE2に対応する数字をプロセッサコアCORE2、CORE1に対応する数字にそれぞれ読み替える。
したがって、プロセッサコアCORE2では、例えば、カウンタCTRの動作は、信号EINFの符号の末尾の3桁のうちの左側の1桁の数字および信号EXT、OUTの符号の末尾の2桁のうちの左側の1桁の数字の“1”を“2”に読み替えることで説明される。また、例えば、プロセッサコアCORE2では、論理和回路OR21・・OR26は、論理和回路OR11・・OR16に読み替えられる。すなわち、プロセッサコアCORE2では、論理和回路OR21・・・OR26の代わりに論理和回路OR11・・・OR16が設けられる。例えば、論理和回路OR11は、信号EINF111・・・EINF11nの論理和結果を示す信号ESIG211をプロセッサコアCORE1のカウンタCTR1に転送制御部CLTを介して転送する。
なお、カウント部CNTの構成は、この例に限定されない。例えば、プロセッサコアCORE1のカウント部CNTのカウンタCTRは、信号EINFの情報が反映された信号EXT11・・・EXT16を転送制御部CLTから受けてもよい。このときには、例えば、信号EINF111・・・EINF11nの論理和結果を示す信号ESIG111を転送制御部CLTに出力する論理和回路OR11等(論理和回路OR11・・・OR16)が、図2に示したカウント部CNTに追加される。
図3は、図1に示したレジスタREGの設定の一例を示している。なお、図3は、レジスタREGのビット幅が32ビットのときの一例を示している。例えば、レジスタREG(i、j)の0ビット目から10ビット目までの範囲に、信号EVTiに対応するイベントの発生回数をカウントするカウンタCTR等を示すレジスタ情報REGINFiが設定される。そして、レジスタREG(i、j)の16ビット目から26ビット目までの範囲に、信号EVTjに対応するイベントの発生回数をカウントするカウンタCTR等を示すレジスタ情報REGINFjが設定される。なお、レジスタREGのビット幅は、32ビット以外でもよい。
レジスタ情報REGINFは、イネーブル情報ENS、コア指定情報CORINF、カウンタ指定情報CTRINFを有している。以下、イネーブル情報ENS、コア指定情報CORINF、カウンタ指定情報CTRINFを、情報ENS、CORINF、CTRINFとも称する。あるいは、情報ENS、CORINF、CTRINFを信号ENS、CORINF、CTRINFとも称する。
情報ENSiは、例えば、信号EVTiに対応するイベントの発生回数をカウントするか否かを示す情報であり、レジスタREG(i、j)の0ビット目に設定される。信号EVTiに対応するイベントの発生回数をカウントするときには、例えば、レジスタREG(i、j)の0ビット目(情報ENSi)は“1”に設定される。なお、信号EVTiに対応するイベントが発生回数のカウント対象でないときには、レジスタREG(i、j)の0ビット目(情報ENSi)は“0”に設定される。
情報CORINFiは、信号EVTiに対応するイベントの発生回数をカウントするカウンタCTRを有するプロセッサコアCOREを示す情報であり、レジスタREG(i、j)の1ビット目から4ビット目までの範囲に設定される。レジスタREG(i、j)の1ビット目から4ビット目までの範囲の各ビットは、下位ビットから順に、プロセッサコアCORE1、CORE2、CORE3、CORE4にそれぞれ対応している。例えば、プロセッサコアCORE1のカウンタCTRを指定するときには、レジスタREG(i、j)の1ビット目(情報CORINFiの最下位ビット)は“1”に設定される。また、例えば、プロセッサコアCORE4のカウンタCTRを指定するときには、レジスタREG(i、j)の4ビット目(情報CORINFiの最上位ビット)は“1”に設定される。
情報CTRINFiは、信号EVTiに対応するイベントの発生回数をカウントするカウンタCTRを示す情報であり、レジスタREG(i、j)の5ビット目から10ビット目までの範囲に設定される。レジスタREG(i、j)の5ビット目から10ビット目までの範囲の各ビットは、下位ビットから順に、カウンタCTR1・・・CTR6にそれぞれ対応している。例えば、カウンタCTR1を指定するときには、レジスタREG(i、j)の5ビット目(情報CTRINFiの最下位ビット)は“1”に設定される。また、例えば、カウンタCTR6を指定するときには、レジスタREG(i、j)の10ビット目(情報CTRINFiの最上位ビット)は“1”に設定される。
図3の例では、レジスタREG(i、j)の0ビット目が“1”であるため、信号EVTiに対応するイベントは、発生回数のカウント対象のイベントである。また、レジスタREG(i、j)の2ビット目、3ビット目、6ビット目が“1”である。このため、信号EVTiに対応するイベントの発生回数は、プロセッサコアCORE2のカウンタCTR2とプロセッサコアCORE3のカウンタCTR2の2つのカウンタCTRでカウントされる。
信号EVTjに対応するイベントに関しても、信号EVTiに対応するイベントと同様に、レジスタREG(i、j)の16ビット目から26ビット目までの範囲に設定される。例えば、情報ENSjは、信号EVTjに対応するイベントの発生回数をカウントするか否かを示す情報であり、レジスタREG(i、j)の16ビット目に設定される。
情報CORINFjは、信号EVTjに対応するイベントの発生回数をカウントするカウンタCTRを有するプロセッサコアCOREを示す情報であり、レジスタREG(i、j)の17ビット目から20ビット目までの範囲に設定される。レジスタREG(i、j)の17ビット目から20ビット目までの範囲の各ビットは、下位ビットから順に、プロセッサコアCORE1、CORE2、CORE3、CORE4にそれぞれ対応している。例えば、プロセッサコアCORE1のカウンタCTRを指定するときには、レジスタREG(i、j)の17ビット目(情報CORINFjの最下位ビット)は“1”に設定される。また、例えば、プロセッサコアCORE4のカウンタCTRを指定するときには、レジスタREG(i、j)の20ビット目(情報CORINFjの最上位ビット)は“1”に設定される。
情報CTRINFjは、信号EVTjに対応するイベントの発生回数をカウントするカウンタCTRを示す情報であり、レジスタREG(i、j)の21ビット目から26ビット目までの範囲に設定される。レジスタREG(i、j)の21ビット目から26ビット目までの範囲の各ビットは、下位ビットから順に、カウンタCTR1・・・CTR6にそれぞれ対応している。例えば、カウンタCTR1を指定するときには、レジスタREG(i、j)の21ビット目(情報CTRINFjの最下位ビット)は“1”に設定される。また、例えば、カウンタCTR6を指定するときには、レジスタREG(i、j)の26ビット目(情報CTRINFjの最上位ビット)は“1”に設定される。
図3の例では、レジスタREG(i、j)の16ビット目が“1”であるため、信号EVTjに対応するイベントは、発生回数のカウント対象のイベントである。また、レジスタREG(i、j)の17ビット目、21ビット目、26ビット目が“1”である。このため、信号EVTjに対応するイベントの発生回数は、プロセッサコアCORE1のカウンタCTR1とプロセッサコアCORE1のカウンタCTR6の2つのカウンタCTRでカウントされる。
なお、レジスタREGの設定は、この例に限定されない。例えば、情報ENSは省かれてもよい。この場合、例えば、信号EVTiに対応するイベントが発生回数のカウント対象でないときには、情報CORINFi、CTRINFiの全てのビットが“0”に設定される。情報ENSを省くことにより、レジスタ情報REGINFのビット数を低減できる。また、例えば、各信号EVTに対応するイベントの発生回数を複数のカウンタCTRでカウントしない条件では、情報CORINFは、プロセッサコアCOREを示す番号等が設定されればよい。同様に、情報CTRINFは、カウンタCTRを示す番号等が設定されればよい。このときには、レジスタ情報REGINFのビット数を低減できる。
あるいは、レジスタ情報REGINFのビット数を増やして、イベントの発生回数をカウントするカウンタCTRを詳細に指定できるようにしてもよい。例えば、各プロセッサコアCOREは、カウント対象のイベントを各プロセッサコアCOREの各カウンタCTRで独立して設定可能なレジスタREGを有してもよい。このときには、例えば、信号EVTiに対応するイベントの発生回数をカウントするカウンタCTRとして、プロセッサコアCORE2のカウンタCTR2とプロセッサコアCORE3のカウンタCTR6の2つのカウンタCTRを指定できる。
ここで、図3に示したレジスタREG(i、j)において、10ビット目が“1”に設定されたとき(0、2、3、6、10ビット目が“1”)、信号EVTiに対応するイベントの発生回数は、4つのカウンタCTRでカウントされる。例えば、信号EVTiに対応するイベントの発生回数は、プロセッサコアCORE2、CORE3のカウンタCTR2とプロセッサコアCORE2、CORE3のカウンタCTR6の4つのカウンタCTRでカウントされる。
図4は、図2に示した選択部DSELの一例を示している。なお、図4は、信号EVTiに対応するイベントの発生情報をレジスタ情報REGINFiに基づいて選択する選択部DSELiの一例を示している。例えば、信号EVTiに対応するレジスタ情報REGINFiは、レジスタREGから読み出される。レジスタREGからレジスタ情報REGINFを読み出す処理は、選択部DSELにより実行されてもよいし、プロセッサコアCOREの選択部DSEL以外のモジュール(例えば、プロセッサコアCORE全体の動作を制御するモジュール)により実行されてもよい。
選択部DSELiは、論理積回路ANDC、コア選択部CORSおよび複数のカウンタ選択部CTRS(CTRS1、CTRS2、CTRS3、CTRS4)を有している。カウンタ選択部CTRS1、CTRS2、CTRS3、CTRS4は、例えば、プロセッサコアCORE1、CORE2、CORE3、CORE4にそれぞれ対応している。なお、図4では、図を見やすくするために、カウンタ選択部CTRS3、CNT4の出力信号EINF(EINF31i−EINF36i、EINF41i−EINF46i)をカウンタ選択部CTRS毎に纏めて記載している。
論理積回路ANDCは、信号EVTi、ENSiを受け、信号EVTi、ENSiの論理積結果をコア選択部CORSに出力する。すなわち、信号EVTiに対応するイベントが発生回数のカウント対象のイベントである場合、イベントの発生情報EVTiがコア選択部CORSに転送される。なお、レジスタREGの設定項目にイネーブル情報ENSが含まれないプロセッサPSYSでは、論理積回路ANDCは、省かれてもよい。
コア選択部CORSは、信号EVTi、ENSiの論理積結果および信号CORINFiを受ける。そして、コア選択部CORSは、信号CORINFiにより指定されたプロセッサコアCOREに対応するカウンタ選択部CTRSに、信号EVTi、ENSiの論理積結果を転送する。
なお、コア選択部CORSは、信号CORINFiにより指定されたプロセッサコアCORE以外のプロセッサコアCOREに対応するカウンタ選択部CTRSに出力する信号を、信号EVTi、ENSiの論理積結果に拘わらず、ネゲートする。すなわち、信号CORINFiにより指定されたプロセッサコアCORE以外のプロセッサコアCOREに対応するカウンタ選択部CTRSには、信号EVTiに対応するイベントの発生情報(信号EVTi、ENSiの論理積結果)は転送されない。このように、コア選択部CORSは、コア指定情報CORINFiに基づいて、発生情報EVTiの転送先のプロセッサコアCOREを選択する。
カウンタ選択部CTRSは、信号CTRINFiおよびコア選択部CORSの出力信号を受ける。そして、カウンタ選択部CTRSは、信号CTRINFiにより指定されたカウンタCTRに対応する信号EINFに、コア選択部CORSの出力結果を反映する。なお、カウンタ選択部CTRSは、信号CTRINFiにより指定されたカウンタCTRに対応する信号EINF以外の信号EINFを、コア選択部CORSの出力結果に拘わらず、ネゲートする。
すなわち、信号CTRINFiにより指定されたカウンタCTR以外のカウンタCTRには、信号EVTiに対応するイベントの発生情報は転送されない。このように、カウンタ選択部CTRSは、カウンタ指定情報CTRINFiに基づいて、発生情報EVTiの転送先のカウンタCTRを選択する。
例えば、図3に示したようにレジスタREGが設定されているとき、コア選択部CORSは、信号EVTi、ENSiの論理積結果をカウンタ選択部CTRS2、CTRS3に転送する。そして、カウンタ選択部CTRS2、CTRS3は、コア選択部CORSの出力信号がアサートされているとき、信号EINF22i、EINF32iをそれぞれアサートする。また、カウンタ選択部CTRS2、CTRS3は、コア選択部CORSの出力信号がネゲートされているとき、信号EINF22i、EINF32iをそれぞれネゲートする。これにより、発生情報EVTiは、プロセッサコアCORE2のカウンタCTR2とプロセッサコアCORE3のカウンタCTR2とに転送される。
図5は、図2に示したカウンタCTR1の一例を示している。すなわち、図5は、プロセッサコアCORE1のカウンタCTR1の一例を示している。なお、カウンタCTR1以外のカウンタCTRの構成は、カウンタCTR1と同様である。カウンタCTR1は、例えば、論理和回路OR1、OR2、インクリメント回路INC、セレクタSEL1およびフリップフロップ回路FF1を有している。
論理和回路OR1は、信号EINF111・・・EINF11nを受け、信号EINF111・・・EINF11nの論理和結果を論理和回路OR2に出力する。論理和回路OR2は、信号EXT11および論理和回路OR1の出力信号を受け、信号EXT11と論理和回路OR1の出力信号との論理和結果をセレクタSEL1に出力する。すなわち、セレクタSEL1は、信号EINF111・・・EINF11n、EXT11の論理和結果を、制御信号として受ける。
インクリメント回路INCは、フリップフロップ回路FF1に保持されているカウント値OUT11に“1”を加算し、加算結果をセレクタSEL1に出力する。セレクタSEL1は、フリップフロップ回路FF1の出力信号OUT11(フリップフロップ回路FF1に保持されているカウント値OUT11)とインクリメント回路INCの出力信号とを受ける。そして、セレクタSEL1は、制御信号(論理和回路OR2の出力信号)に基づいて、フリップフロップ回路FF1の出力信号OUT11とインクリメント回路INCの出力信号とのいずれかをフリップフロップ回路FF1に出力する。
例えば、論理和回路OR2の出力信号が“1”のとき、セレクタSEL1は、インクリメント回路INCの出力信号をフリップフロップ回路FF1に出力する。すなわち、信号EINF111・・・EINF11n、EXT11の少なくとも1つがアサートされているとき、セレクタSEL1は、インクリメント回路INCの出力信号をフリップフロップ回路FF1に出力する。
また、例えば、論理和回路OR2の出力信号が“0”のとき、セレクタSEL1は、フリップフロップ回路FF1の出力信号OUT11をフリップフロップ回路FF1にフィードバックする。すなわち、信号EINF111・・・EINF11n、EXT11の全てがネゲートされているとき、セレクタSEL1は、フリップフロップ回路FF1の出力信号OUT11をフリップフロップ回路FF1にフィードバックする。
フリップフロップ回路FF1は、クロックCLK、リセット信号RESET、セレクタSEL1の出力信号を受け、信号OUT11を出力する。クロックCLKは、例えば、プロセッサPSYSの動作クロックである。また、リセット信号RESETは、フリップフロップ回路FF1に保持されているカウント値OUT11をリセットする信号である。リセット信号RESETは、例えば、プロセッサコアCORE1全体の動作を制御するモジュールで生成される。例えば、フリップフロップ回路FF1は、リセット信号RESETがネゲートされたとき、カウント値OUT11をリセットする。
フリップフロップ回路FF1は、例えば、クロックCLKに同期して、セレクタSEL1の出力信号を取り込み、保持する。すなわち、フリップフロップ回路FF1は、例えば、信号EINF111・・・EINF11n、EXT11の少なくとも1つがアサートされているとき、インクリメント回路INCの出力値を取り込み、保持する。これにより、カウント値OUT11は、カウントアップする。
また、例えば、フリップフロップ回路FF1は、信号EINF111・・・EINF11n、EXT11の全てがネゲートされているとき、フィードバックされた信号OUT11を取り込み、保持する。これにより、カウント値OUT11は、前の値に維持される。このように、カウンタCTR1は、信号EINF111・・・EINF11n、EXT11の少なくとも1つがアサートされているとき、クロックCLKに同期して、カウントアップする。すなわち、各プロセッサコアCOREのカウンタCTRは、プロセッサコアCORE1−CORE4の選択部DSEL(DESL1・・・DESLn)から転送される発生情報に基づいて、イベントの発生回数をカウントする。
ここで、例えば、プロセッサコアCORE1のカウンタCTR1以外の各カウンタCTRの動作は、信号EINF、OUTの符号の末尾の数字のうちのカウンタCTR1に対応する数字を各カウンタCTRに対応する数字にそれぞれ読み替えることで説明される。例えば、プロセッサコアCORE1のカウンタCTR6の動作は、信号EINF111・・・EINF11n、OUT11を信号EINF161・・・EINF16n、OUT16にそれぞれ読み替えることで説明される。
なお、カウンタCTRの構成は、この例に限定されない。例えば、カウンタCTRは、論理和回路OR1と論理和回路OR2とを区別せずに設計されてもよい。
図6は、図1に示した転送制御部CLTの一例を示している。転送制御部CLTは、複数の転送信号生成部SGENを有している。転送信号生成部SGENは、例えば、各プロセッサコアCOREの各カウンタCTRに対応して設けられている。転送信号生成部SGENの符号の末尾の2桁の数字は、左側から、信号EXTの転送先のプロセッサコアCOREおよびカウンタCTRをそれぞれ示している。
例えば、転送信号生成部SGEN11・・・SGEN16は、プロセッサコアCORE1のカウンタCTR1・・・CTR6にそれぞれ対応している。転送信号生成部SGEN11は、例えば、信号ESIG211、ESIG311、ESIG411を、プロセッサコアCORE2、CORE3、CORE4のカウント部CNTからそれぞれ受ける。そして、転送信号生成部SGEN11は、信号ESIG211、ESIG311、ESIG411の論理和結果を示す信号EXT11を、プロセッサコアCORE1のカウンタCTR1に出力する。
なお、図2で説明したように、信号ESIGの符号の末尾の3桁の数字は、左側から、信号ESIGの転送元のプロセッサコアCORE、信号ESIGの転送先のプロセッサコアCOREおよびカウンタCTRをそれぞれ示している。また、信号EXTの符号の末尾の2桁の数字は、左側から、信号EXTを受けるプロセッサコアCOREおよびカウンタCTRをそれぞれ示している。
例えば、信号ESIG211は、プロセッサコアCORE2のイベントのうち、プロセッサコアCORE1のカウンタCTR1でカウントされるイベントの発生情報である。また、例えば、信号ESIG311は、プロセッサコアCORE3のイベントのうち、プロセッサコアCORE1のカウンタCTR1でカウントされるイベントの発生情報である。そして、例えば、信号ESIG411は、プロセッサコアCORE4のイベントのうち、プロセッサコアCORE1のカウンタCTR1でカウントされるイベントの発生情報である。
したがって、信号EXT11は、プロセッサコアCORE1を除くプロセッサコアCORE(CORE2、CORE3、CORE4)のイベントのうち、プロセッサコアCORE1のカウンタCTR1でカウントされるイベントの発生情報である。このように、転送信号生成部SGEN11は、プロセッサコアCORE1のカウンタCTR1でカウントされるイベントの発生情報EXT11を、プロセッサコアCORE2、CORE3、CORE4から受けた発生情報ESIG211、ESIG311、ESIG411に基づいて生成する。
転送信号生成部SGEN11以外の転送信号生成部SGENの動作は、各要素の符号の末尾のプロセッサコアCOREおよびカウンタCTRに対応する数字を、対象のプロセッサコアCOREおよびカウンタCTRに合わせて読み替えることで説明される。例えば、転送信号生成部SGEN46は、信号ESIG146、ESIG246、ESIG346を、プロセッサコアCORE1、CORE2、CORE3のカウント部CNTからそれぞれ受ける。そして、転送信号生成部SGEN46は、信号ESIG146、ESIG246、ESIG346の論理和結果を示す信号EXT46を、プロセッサコアCORE4のカウンタCTR6に出力する。
これにより、プロセッサPSYSは、例えば、評価対象のプロセッサコアCOREのイベントの発生回数を、評価対象以外のプロセッサコアCOREのカウンタCTRでカウントできる。このように、この実施形態では、評価対象以外のプロセッサコアCOREのカウンタCTRを使用できるため、プロセッサPSYSの性能を詳細に測定できる。
例えば、評価対象以外のプロセッサコアCOREのカウンタCTRを使用できないプロセッサでは、評価対象のプロセッサコアCOREのカウンタCTRの数より多い種類のイベントの発生回数を共通の条件でカウントすることは困難である。このため、評価対象以外のプロセッサコアCOREのカウンタCTRを使用できないプロセッサでは、プロセッサの正確な性能評価を実施できないおそれがある。
これに対し、この実施形態では、プロセッサPSYSの性能評価の際に、評価対象のプロセッサコアCOREのカウンタCTRおよび評価対象以外のプロセッサコアCOREのカウンタCTRを使用できる。例えば、この実施形態では、レジスタ情報REGINFの設定により、評価対象以外のプロセッサコアCOREのカウンタCTRも、カウント対象のイベントの発生回数をカウントするカウンタCTRに指定できる。
このように、この実施形態では、評価対象以外のプロセッサコアCOREのカウンタCTRも使用できるため、評価対象のプロセッサコアCOREのカウンタCTRの数より多い種類のイベントの発生回数を共通の条件でカウントできる。この結果、この実施形態では、プロセッサPSYSの正確な性能評価を実施できる。
例えば、この実施形態では、プロセッサコアCORE1が評価対象のとき、評価対象のプロセッサコアCORE1で発生するイベントとイベントの発生回数をカウントするカウンタCTRとの対応関係(レジスタ情報REGINF)をレジスタREGに設定する。この際、評価対象以外のプロセッサコアCOREのカウンタCTRも、カウント対象のイベントの発生回数をカウントするカウンタCTRに指定できる。
そして、プロセッサコアCORE1の性能評価の際に、評価対象のプロセッサコアCORE1を動作させる。なお、評価対象以外のプロセッサコアCORE2、CORE3、CORE4では、演算動作は停止しているが、カウンタCTRは動作する。これにより、レジスタ情報REGINFにより指定されるカウンタCTRは、プロセッサコアCORE1のイベントの発生回数を発生情報に基づいてカウントする。
なお、2つ以上のプロセッサコアCOREを同時に動作させて、プロセッサPSYSの性能を評価してもよい。また、シングルコアのプロセッサの性能を評価するために、プロセッサPSYSが用いられてもよい。このときには、評価対象のシングルコアのプロセッサと同様のプロセッサコアCOREがプロセッサPSYSに搭載される。
以上、この実施形態では、プロセッサPSYSは、演算を実行する複数のプロセッサコアCOREと、イベントが発生したか否かを示す発生情報を、複数のプロセッサコアCORE間で転送する転送制御部CLTとを有している。また、各プロセッサコアCOREは、イベントの発生回数を発生情報に基づいてカウントするカウンタCTRと、イベントとイベントの発生回数をカウントするカウンタCTRとの対応関係が設定されるレジスタREGとを有している。
この実施形態では、評価対象以外のプロセッサコアCOREのカウンタCTRの使用をレジスタREGに設定することにより、評価対象以外のプロセッサコアCOREのカウンタCTRを、評価対象のプロセッサコアCOREの性能評価の際に使用できる。この結果、この実施形態では、プロセッサPSYSの性能を詳細に測定できる。
図7は、別の実施形態におけるプロセッサPSYSAの一例を示している。図1−図6で説明した要素と同様の要素については、同様の符号を付し、これ等については、詳細な説明を省略する。この実施形態のプロセッサPSYSAは、図1に示したプロセッサコアCOREおよび転送制御部CLTの代わりに、プロセッサコアCOREAおよび転送制御部CLTAを有している。プロセッサPSYSAのその他の構成は、図1に示したプロセッサPSYSと同様である。
プロセッサPSYSAは、例えば、演算を実行する複数のプロセッサコアCOREA(COREA1、COREA2、COREA3、COREA4)と、転送制御部CLTAと、インターコネクトINTCとを有している。なお、プロセッサコアCOREAの数は、4つに限定されない。
各プロセッサコアCOREAは、図1に示したカウント部CNTの代わりにカウント部CNTAを有している。プロセッサコアCOREAのその他の構成は、図1に示したプロセッサコアCOREと同様である。例えば、各プロセッサコアCOREAは、カウント部CNTAおよびレジスタREGを有している。カウント部CNTAは、例えば、監視対象のイベントの発生回数を、カウンタCTRAを用いてカウントする。
例えば、カウント部CNTAは、信号ESIG、USIGを転送制御部CLTAに出力し、信号EXT、TAENを転送制御部CLTAから受ける。信号USIGは、他のプロセッサコアCOREAのカウンタ部CNTAのカウンタCTRAを使用するか否かを示す情報である。以下、信号USIGを使用通知USIGとも称する。また、信号TAENは、イベントの発生回数をカウントするタイミングを調整するか否かを示す情報である。以下、信号TAENをタイミングイネーブル信号TAENとも称する。レジスタREGは、例えば、図1−図6で説明した実施形態と同様である。
転送制御部CLTAは、各プロセッサコアCOREAから受けた信号ESIGに基づいて、信号EXTを各プロセッサコアCOREAに出力する。また、転送制御部CLTAは、各プロセッサコアCOREAから受けた使用通知USIGに基づいて、タイミングイネーブル信号TAENを各プロセッサコアCOREAに出力する。
図8は、図7に示したカウント部CNTAの一例を示している。なお、図8は、プロセッサコアCOREA1のカウント部CNTAの一例を示している。プロセッサコアCOREA1以外のプロセッサコアCOREAのカウント部CNTAの構成は、プロセッサコアCOREA1のカウント部CNTAと同様である。図8の各要素の符号の末尾の数字の意味は、図1−図6で説明した実施形態と同様である。また、タイミングイネーブル信号TAENの符号の末尾の2桁の数字は、左側から、タイミングイネーブル信号TAENを受けるプロセッサコアCOREAおよびカウンタCTRAをそれぞれ示している。
カウント部CNTAでは、図2に示したカウント部CNTに使用通知生成部NGENが追加されている。そして、カウント部CNTAは、図2に示したカウンタCTRの代わりに、カウンタCTRAを有している。カウント部CNTAのその他の構成は、図2に示したカウント部CNTと同様である。
例えば、カウント部CNTAは、複数の選択部DSEL(DESL1・・・DESLn)、複数のカウンタCTRA(CTRA1・・・CTRA6)、複数の論理和回路OR(OR21・・・OR26、OR31・・・OR36、OR41・・・OR46)および使用通知生成部NGENを有している。選択部DSEL(DESL1・・・DESLn)および論理和回路OR(OR21・・・OR26、OR31・・・OR36、OR41・・・OR46)は、例えば、図1−図6で説明した実施形態と同じである。
各カウンタCTRAは、n個の信号EVTにそれぞれ対応するn個の発生情報EINFをn個の選択部DSELからそれぞれ受ける。さらに、各カウンタCTRAは、発生情報EXTおよびタイミングイネーブル信号TAENを転送制御部CLTAから受ける。そして、各カウンタCTRAは、選択部DSELおよび転送制御部CLTAから受けた発生情報EINF、EXTに基づいて、イベントの発生回数をカウントする。各カウンタCTRAのカウント値OUTは、例えば、必要に応じて読み出される。また、各カウンタCTRAは、例えば、タイミングイネーブル信号TAENがアサートされているとき、発生情報EINFの論理和結果を示す信号を発生情報EXTに同期させる。
使用通知生成部NGENは、レジスタ情報REGINF(REGINF1・・・REGINFn)内の情報のうち、コア指定情報CORINF(CORINF1・・・CORINFn)およびカウンタ指定情報CTRINF(CTRINF1・・・CTRINFn)を受ける。そして、使用通知生成部NGENは、コア指定情報CORINFおよびカウンタ指定情報CTRINFに基づいて生成した使用通知USIGを、転送制御部CLTAに出力する。
図9は、図8に示したカウンタCTRA1の一例を示している。すなわち、図8は、プロセッサコアCOREA1のカウンタCTRA1の一例を示している。なお、カウンタCTRA1以外のカウンタCTRAの構成は、カウンタCTRA1と同様である。カウンタCTRA1では、図5に示したカウンタCTR1にタイミング調整部TADJおよびセレクタSEL2が追加されている。カウンタCTRA1のその他の構成は、カウンタCTR1と同様である。
例えば、カウンタCTRA1は、論理和回路OR1、タイミング調整部TADJ、セレクタSEL2、論理和回路OR2、インクリメント回路INC、セレクタSEL1およびフリップフロップ回路FF1を有している。
論理和回路OR1は、信号EINF111・・・EINF11nの論理和結果を、タイミング調整部TADJおよびセレクタSEL2に出力する。タイミング調整部TADJは、例えば、論理和回路OR1の出力とセレクタSEL2の入力との間に、フリップフロップ回路FF2、FF3を有している。タイミング調整部TADJの入力から出力までの信号経路上のフリップフロップ回路FFの数は、例えば、転送制御部CLTAを介して転送される信号EXT11の論理和回路OR1の出力信号に対する遅延量に合わせて決定される。
図9の例では、タイミング調整部TADJの入力から出力までの信号経路上のフリップフロップ回路FFの数は、図12に示す転送信号生成部SGENAの入力から出力までの信号経路上のフリップフロップ回路FFの数と同じである。これにより、この実施形態では、タイミング調整部TADJの出力信号を発生情報EXTに同期させることができる。
例えば、フリップフロップ回路FF2は、クロックCLK、論理和回路OR1の出力信号を受ける。そして、フリップフロップ回路FF2は、論理和回路OR1から受けた信号をクロックCLKに同期してフリップフロップ回路FF3に出力する。クロックCLKは、例えば、プロセッサPSYSAの動作クロックである。また、フリップフロップ回路FF3は、クロックCLK、フリップフロップ回路FF2の出力信号を受ける。そして、フリップフロップ回路FF3は、フリップフロップ回路FF2から受けた信号をクロックCLKに同期してセレクタSEL2に出力する。
セレクタSEL2は、制御信号としてタイミングイネーブル信号TAEN11を受ける。また、セレクタSEL2は、論理和回路OR1の出力信号とタイミング調整部TADJの出力信号とを受ける。そして、セレクタSEL2は、タイミングイネーブル信号TAEN11に基づいて、論理和回路OR1の出力信号とタイミング調整部TADJの出力信号とのいずれかを論理和回路OR2に出力する。
例えば、プロセッサコアCOREA1のカウンタCTRA1が他のプロセッサコアCOREAのイベントをカウントする場合、タイミングイネーブル信号TAEN11は“1”に設定され、イベントの発生回数をカウントするタイミングが調整される。タイミングイネーブル信号TAEN11が“1”のとき、例えば、セレクタSEL2は、タイミング調整部TADJの出力信号を論理和回路OR2に出力する。すなわち、タイミングイネーブル信号TAEN11が“1”のとき、セレクタSEL2は、信号EINF111・・・EINF11nの論理和結果(論理和回路OR1の出力信号)を発生情報EXT11に同期させて論理和回路OR2に出力する。
このように、この実施形態では、カウンタCTRA1が発生情報EXT、EINFに基づいてイベントの発生回数をカウントする場合、信号EINF111・・・EINF11nの論理和結果と発生情報EXT11とを同期させることができる。これにより、この実施形態では、例えば、同じタイミングで発生したイベントの発生情報EXT、EINFを論理和回路OR2が異なるタイミングで受けることを防止できる。あるいは、この実施形態では、例えば、異なるタイミングで発生したイベントの発生情報EXT、EINFを論理和回路OR2が同じタイミングで受けることを防止できる。この結果、この実施形態では、イベントの発生回数を誤ってカウントすることを防止できる。
なお、例えば、プロセッサコアCOREA1のカウンタCTRA1が他のプロセッサコアCOREAのイベントをカウントしない場合、発生情報EXT11は常にネゲートされているため、発生情報EXT11のタイミングを考慮しなくても問題ない。このときには、タイミングイネーブル信号TAEN11は、例えば、“0”に設定される。タイミングイネーブル信号TAEN11が“0”のとき、例えば、セレクタSEL2は、論理和回路OR1の出力信号を論理和回路OR2に出力する。
論理和回路OR2は、信号EXT11およびセレクタSEL2の出力信号を受け、信号EXT11とセレクタSEL2の出力信号との論理和結果をセレクタSEL1に出力する。すなわち、セレクタSEL1は、信号EINF111・・・EINF11n、EXT11の論理和結果を、制御信号として受ける。
インクリメント回路INC、セレクタSEL1およびフリップフロップ回路FF1は、例えば、図5に示したインクリメント回路INC、セレクタSEL1およびフリップフロップ回路FF1と同じである。
なお、カウンタCTRAの構成は、この例に限定されない。例えば、セレクタSEL2は、省かれてもよい。この場合、例えば、論理和回路OR2は、プロセッサコアCOREA1のカウンタCTRA1が他のプロセッサコアCOREAのイベントをカウントするか否かに拘わらず、タイミング調整部TADJを介して論理和回路OR1の出力信号を受ける。すなわち、論理和回路OR2は、信号EXT11およびタイミング調整部TADJの出力信号を受ける。この場合、図8に示した使用通知生成部NGENおよび図11に示す制御信号生成部CGEN(転送制御部CLTAの一部)を省くことができる。この結果、プロセッサPSYSAの構成を簡易にできる。
図10は、図8に示した使用通知生成部NGENの一例を示している。すなわち、図10は、プロセッサコアCOREA1の使用通知生成部NGENの一例を示している。使用通知生成部NGENは、複数の通知信号生成部UGを有している。例えば、プロセッサコアCOREA1では、通知信号生成部UGは、プロセッサコアCOREA1以外の各プロセッサコアCOREAの各カウンタCTRAに対応して設けられている。各通知信号生成部UGは、例えば、n個のイベントにそれぞれ対応するn個の論理積回路AND(AND1・・・ANDn)と、各論理積回路AND(AND1・・・ANDn)の出力信号を受ける論理和回路OR3とを有している。
ここで、通知信号生成部UGの符号の末尾の3桁の数字は、左側から、通知信号USIGの転送元のプロセッサコアCOREA、通知信号USIGの転送先のプロセッサコアCOREAおよびカウンタCTRAをそれぞれ示している。同様に、通知信号USIGの符号の末尾の3桁の数字は、左側から、通知信号USIGの転送元のプロセッサコアCOREA、通知信号USIGの転送先のプロセッサコアCOREAおよびカウンタCTRAをそれぞれ示している。
また、コア指定情報CORINFの符号の末尾の括弧内の数字は、コア指定情報CORINF内の各ビットの位置を示している。例えば、コア指定情報CORINF1[2]は、信号EVT1に対応するコア指定情報CORINF1のプロセッサコアCOREA2に対応するビットの情報(設定値)である。また、例えば、コア指定情報CORINFn[4]は、信号EVTnに対応するコア指定情報CORINFnのプロセッサコアCOREA4に対応するビットの情報(設定値)である。
カウンタ指定情報CTRINFの符号の末尾の括弧内の数字は、カウンタ指定情報CTRINF内の各ビットの位置を示している。例えば、カウンタ指定情報CTRINF1[1]は、信号EVT1に対応するカウンタ指定情報CTRINF1のカウンタCTRA1に対応するビットの情報(設定値)である。また、例えば、カウンタ指定情報CTRINFn[6]は、信号EVTnに対応するカウンタ指定情報CTRINFnのカウンタCTRA6に対応するビットの情報(設定値)である。
例えば、通知信号生成部UG121は、コア指定情報CORINF1[2]・・・CORINFn[2]、カウンタ指定情報CTRINF1[1]・・・カウンタ指定情報CTRINFn[1]を受ける。そして、通知信号生成部UG121は、通知信号USIG121をプロセッサコアCOREA2のカウンタCTRA1に転送制御部CLTAを介して転送する。
通知信号生成部UG121では、各論理積回路AND(AND1・・・ANDn)は、対応するコア指定情報CORINFとカウンタ指定情報CTRINFとの論理積結果を論理和回路OR3に出力する。例えば、通知信号生成部UG121の論理積回路AND1は、コア指定情報CORINF1[2]とカウンタ指定情報CTRINF1[1]との論理積結果を通知信号生成部UG121の論理和回路OR3に出力する。また、通知信号生成部UG121の論理和回路OR3は、通知信号生成部UG121の各論理積回路AND(AND1・・・ANDn)から受けた信号の論理和結果を示す通知信号USIG121を転送制御部CLTAに出力する。
すなわち、通知信号生成部UG121は、プロセッサコアCOREA2のカウンタCTRA1でカウントするイベントがプロセッサコアCOREA1のレジスタREGに設定されているとき、通知信号USIG121をアサートする。なお、通知信号生成部UG121以外の通知信号生成部UGの動作は、通知信号生成部UG121と同様である。例えば、通知信号生成部UG146は、プロセッサコアCOREA4のカウンタCTRA6でカウントするイベントがプロセッサコアCOREA1のレジスタREGに設定されているとき、通知信号USIG146をアサートする。
このように、プロセッサコアCOREA1の各通知信号生成部UGは、対応するプロセッサコアCOREAのカウンタCTRAでカウントするイベントがプロセッサコアCOREA1のレジスタREGに設定されているとき、通知信号USIGをアサートする。プロセッサコアCOREA1以外のプロセッサコアCOREAの各通知信号生成部UGの動作は、プロセッサコアCOREA1の各通知信号生成部UGと同様である。
図11は、図7に示した転送制御部CLTAの一例を示している。転送制御部CLTAでは、図6に示した転送制御部CLTに制御信号生成部CGENが追加されている。そして、転送制御部CLTAは、図6に示した転送信号生成部SGENの代わりに転送信号生成部SGENAを有している。転送制御部CLTAのその他の構成は、図1に示した転送制御部CLTと同様である。
転送制御部CLTAは、複数の転送信号生成部SGENAと複数の制御信号生成部CGENとを有している。転送信号生成部SGENAは、例えば、各プロセッサコアCOREAの各カウンタCTRAに対応して設けられている。転送信号生成部SGENAの符号の末尾の2桁の数字は、左側から、信号EXTの転送先のプロセッサコアCOREAおよびカウンタCTRAをそれぞれ示している。
例えば、転送信号生成部SGENA11・・・SGENA16は、プロセッサコアCOREA1のカウンタCTRA1・・・CTRA6にそれぞれ対応している。転送信号生成部SGENA11は、例えば、信号ESIG211、ESIG311、ESIG411を、プロセッサコアCOREA2、COREA3、COREA4のカウント部CNTAからそれぞれ受ける。そして、転送信号生成部SGENA11は、信号ESIG211、ESIG311、ESIG411の論理和結果を示す信号EXT11を、プロセッサコアCOREA1のカウンタCTRA1に出力する。
また、制御信号生成部CGENは、例えば、各プロセッサコアCOREAの各カウンタCTRAに対応して設けられている。制御信号生成部CGENの符号の末尾の2桁の数字は、左側から、タイミングイネーブル信号TAENの転送先のプロセッサコアCOREAおよびカウンタCTRAをそれぞれ示している。
例えば、制御信号生成部CGEN11・・・CGENA16は、プロセッサコアCOREA1のカウンタCTRA1・・・CTRA6にそれぞれ対応している。制御信号生成部CGEN11は、例えば、通知信号USIG211、USIG311、USIG411を、プロセッサコアCOREA2、COREA3、COREA4のカウント部CNTAからそれぞれ受ける。そして、制御信号生成部CGEN11は、通知信号USIG211、USIG311、USIG411の論理和結果を示すタイミングイネーブル信号TAEN11を、プロセッサコアCOREA1のカウンタCTRA1に出力する。
なお、転送制御部CLTAの構成は、この例に限定されない。例えば、図9に示したセレクタSEL2が省かれたプロセッサPSYSAでは、制御信号生成部CGENは省かれてもよい。
図12は、図11に示した転送信号生成部SGENA11の一例を示している。転送信号生成部SGENA11以外の転送信号生成部SGENAは、転送信号生成部SGENA11と同様である。転送信号生成部SGENA11は、フリップフロップ回路FF4、FF5、FF6、FF7および論理和回路OR4を有している。
フリップフロップ回路FF4、FF5、FF6は、例えば、信号ESIG211、ESIG311、ESIG411をプロセッサコアCOREA2、COREA3、COREA4のカウント部CNTAからそれぞれ受けるとともに、クロックCLKを受ける。例えば、フリップフロップ回路FF4、FF5、FF6は、プロセッサコアCOREA2、COREA3、COREA4のカウント部CNTAからそれぞれ受けた信号ESIG211、ESIG311、ESIG411をクロックCLKに同期して論理和回路OR4にそれぞれ出力する。
論理和回路OR4は、フリップフロップ回路FF4、FF5、FF6から受けた信号の論理和結果をフリップフロップ回路FF7に出力する。フリップフロップ回路FF7は、例えば、クロックCLK、論理和回路OR4の出力信号を受け、信号EXT11を出力する。例えば、フリップフロップ回路FF7は、論理和回路OR4から受けた信号をクロックCLKに同期して出力する。
したがって、転送信号生成部SGENA11は、信号ESIGに対して2個のフリップフロップ回路FF分だけ遅延した信号EXT11を、プロセッサコアCOREA1のカウンタCTRA1に出力する。ここで、信号ESIGは、信号EINFに同期した信号である。したがって、プロセッサコアCOREA1のカウンタCTRA1は、信号EINFに対して2個のフリップフロップ回路FF分だけ遅延した信号EXT11を受ける。
ここで、図9に示した論理和回路OR2がタイミング調整部TADJを介して受ける信号は、信号EINFに対して2個のフリップフロップ回路FF分だけ遅延した信号である。したがって、この実施形態では、図9で説明したように、論理和回路OR1の出力信号をタイミング調整部TADJを介して論理和回路OR2に転送することにより、信号EINF111・・・EINF11nの論理和結果と発生情報EXT11とを同期させることができる。
なお、転送信号生成部SGENAの構成は、この例に限定されない。例えば、転送信号生成部SGENAの入力から出力までの信号経路上のフリップフロップ回路FFの数は、1つでもよいし、3つ以上でもよい。このときには、例えば、図9に示したタイミング調整部TADJの入力から出力までの信号経路上のフリップフロップ回路FFは、転送信号生成部SGENAの入力から出力までの信号経路上のフリップフロップ回路FFの数に合わせた数だけ設けられる。
図13は、図11に示した制御信号生成部CGEN11の一例を示している。制御信号生成部CGEN11以外の制御信号生成部CGENは、制御信号生成部CGEN11と同様である。制御信号生成部CGEN11は、フリップフロップ回路FF8、FF9、FF10、FF11および論理和回路OR5を有している。
フリップフロップ回路FF8、FF9、FF10は、例えば、通知信号USIG211、USI311、USI411をプロセッサコアCOREA2、COREA3、COREA4のカウント部CNTAからそれぞれ受けるとともに、クロックCLKを受ける。例えば、フリップフロップ回路FF8、FF9、FF10は、プロセッサコアCOREA2、COREA3、COREA4のカウント部CNTAからそれぞれ受けた通知信号USIG211、USI311、USI411をクロックCLKに同期して論理和回路OR5にそれぞれ出力する。
論理和回路OR5は、フリップフロップ回路FF8、FF9、FF10から受けた信号の論理和結果をフリップフロップ回路FF11に出力する。フリップフロップ回路FF11は、例えば、クロックCLK、論理和回路OR5の出力信号を受け、タイミングイネーブル信号TAEN11を出力する。例えば、フリップフロップ回路FF11は、論理和回路OR5から受けた信号をクロックCLKに同期して出力する。これにより、通知信号USIG211、USIG311、USIG411の論理和結果を示すタイミングイネーブル信号TAEN11が、プロセッサコアCOREA1のカウンタCTRA1に出力される。
例えば、プロセッサコアCOREA1のカウンタCTRA1が他のプロセッサコアCOREAのイベントの発生回数をカウントする設定では、通知信号USIG211、USIG311、USIG411の少なくとも1つがアサートされる。したがって、プロセッサコアCOREA1のカウンタCTRA1が他のプロセッサコアCOREAのイベントの発生回数をカウントする設定では、制御信号生成部CGEN11は、タイミングイネーブル信号TAEN11をアサートする。タイミングイネーブル信号TAEN11のアサートに応答して、図9に示したプロセッサコアCOREA1のカウンタCTRA1は、信号EINF111・・・EINF11nの論理和結果と発生情報EXT11とを同期させる。
なお、制御信号生成部CGENの構成は、この例に限定されない。例えば、制御信号生成部CGENの入力から出力までの信号経路上のフリップフロップ回路FFの数は、1つでもよいし、3つ以上でもよい。あるいは、フリップフロップ回路FF8、FF9、FF10、FF11は、省かれてもよい。
以上、この実施形態においても、図1−図6で説明した実施形態と同様の効果を得ることができる。例えば、プロセッサPSYSAは、評価対象のプロセッサコアCOREAのイベントの発生回数を、評価対象以外のプロセッサコアCOREAのカウンタCTRAでカウントできる。このため、この実施形態においても、プロセッサPSYSAの性能を詳細に測定できる。なお、この実施形態においても、2つ以上のプロセッサコアCOREAを同時に動作させて、プロセッサPSYSAの性能を評価してもよい。また、シングルコアのプロセッサの性能を評価するために、プロセッサPSYSAが用いられてもよい。このときには、評価対象のシングルコアのプロセッサと同様のプロセッサコアCOREAがプロセッサPSYSに搭載される。
さらに、この実施形態では、各プロセッサコアCOREAは、転送制御部CLTAを介さずにカウンタCTRAに転送される発生情報と、転送制御部CLTAを介してカウンタCTRAに転送される発生情報とを同期させるタイミング調整部TADJを有している。例えば、各プロセッサコアCOREAのタイミング調整部TADJは、選択部DSELからカウンタCTRAに転送制御部CLTAを介さずに転送される発生情報と、他のプロセッサコアCOREAの選択部DSELからカウンタCTRAに転送制御部CLTAを介して転送される発生情報とを同期させる。この結果、この実施形態では、評価対象のプロセッサコアCOREAのイベントの発生情報を評価対象以外のプロセッサコアCOREAのカウンタCTRAにフリップフロップ回路FF等を用いて転送するときにも、イベントの発生回数を誤ってカウントすることを防止できる。
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずであり、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
AND、ANDC‥論理積回路;CGEN‥制御信号生成部;CLT、CLTA‥転送制御部;CNT、CNTA‥カウント部;CORE、COREA‥プロセッサコア;CORS‥コア選択部;CTR、CTRA‥カウンタ;CTRS‥カウンタ選択部;DSEL‥選択部;FF1−FF11‥フリップフロップ回路;INC‥インクリメント回路;INTC‥インターコネクト;NGEN‥使用通知生成部;OR‥論理和回路;PSYS‥プロセッサ;PSYSA‥プロセッサ;REG‥レジスタ;SEL1、SEL2‥セレクタ;SGEN、SGENA‥転送信号生成部;TADJ‥タイミング調整部;UG‥通知信号生成部

Claims (7)

  1. 演算を実行する複数のプロセッサコアと、
    イベントが発生したか否かを示す発生情報を、前記複数のプロセッサコア間で転送する転送制御部とを備え、
    前記各プロセッサコアは、
    前記イベントの発生回数を前記発生情報に基づいてカウントするカウンタと、
    記イベントの発生回数を前記複数のプロセッサコアのどのプロセッサコアのどの前記カウンタを用いてカウントするかが前記イベント毎に設定されるレジスタとを備えていること
    を特徴とするプロセッサ。
  2. 前記各プロセッサコアは、前記レジスタに設定された情報に基づいて選択される前記イベントの前記発生情報を、前記レジスタにより指定される前記カウンタに転送する選択部を有し、
    前記各プロセッサコアの前記カウンタは、前記選択部から転送される前記発生情報に基づいて、前記イベントの発生回数をカウントすること
    を特徴とする請求項1記載のプロセッサ。
  3. 前記各プロセッサコアは、前記選択部から前記カウンタに前記転送制御部を介さずに転送される前記発生情報と、前記選択部から前記カウンタに前記転送制御部を介して転送される前記発生情報とを同期させるタイミング調整部を有していること
    を特徴とする請求項2記載のプロセッサ。
  4. 前記各プロセッサコアは、前記転送制御部を介さずに前記カウンタに転送される前記発生情報と、前記転送制御部を介して前記カウンタに転送される前記発生情報とを同期させるタイミング調整部を有していること
    を特徴とする請求項1記載のプロセッサ。
  5. 演算を実行する複数のプロセッサコアと、
    イベントが発生したか否かを示す発生情報を、前記複数のプロセッサコア間で転送する転送制御部とを備え、
    前記各プロセッサコアは、
    前記イベントの発生回数を前記発生情報に基づいてカウントするカウンタと、
    前記イベントと前記イベントの発生回数をカウントする前記カウンタとの対応関係が設定されるレジスタと、
    前記レジスタに設定された前記対応関係に基づいて選択される前記イベントの前記発生情報を、前記対応関係により指定される前記カウンタに転送する選択部とを備え、
    前記各プロセッサコアの前記カウンタは、前記選択部から転送される前記発生情報に基づいて、前記イベントの発生回数をカウントすること
    を特徴とするプロセッサ。
  6. 演算を実行する複数のプロセッサコアと、
    イベントが発生したか否かを示す発生情報を、前記複数のプロセッサコア間で転送する転送制御部とを備え、
    前記各プロセッサコアは、
    前記イベントの発生回数を前記発生情報に基づいてカウントするカウンタと、
    前記イベントと前記イベントの発生回数をカウントする前記カウンタとの対応関係が設定されるレジスタと、
    前記転送制御部を介さずに前記カウンタに転送される前記発生情報と、前記転送制御部を介して前記カウンタに転送される前記発生情報とを同期させるタイミング調整部とを備えていること
    を特徴とするプロセッサ。
  7. 演算を実行する複数のプロセッサコアと、イベントが発生したか否かを示す発生情報を前記複数のプロセッサコア間で転送する転送制御部とを備えたプロセッサによって実行され、前記複数のプロセッサコアの少なくとも1つを評価するプロセッサの評価方法であって、
    評価対象以外の前記プロセッサコアの演算動作を停止し、
    評価対象の前記プロセッサコアで発生する前記イベント毎に前記イベントの発生回数を前記複数のプロセッサコアのどのプロセッサコアのどのカウンタを用いてカウントするかをレジスタに設定し、
    前記評価対象の前記プロセッサコアを動作させ、前記イベントの発生回数を前記レジスタにより指定される前記カウンタで前記発生情報に基づいてカウントすること
    を特徴とするプロセッサの評価方法。
JP2012198594A 2012-09-10 2012-09-10 プロセッサおよびプロセッサの評価方法 Active JP5962359B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012198594A JP5962359B2 (ja) 2012-09-10 2012-09-10 プロセッサおよびプロセッサの評価方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012198594A JP5962359B2 (ja) 2012-09-10 2012-09-10 プロセッサおよびプロセッサの評価方法

Publications (2)

Publication Number Publication Date
JP2014052962A JP2014052962A (ja) 2014-03-20
JP5962359B2 true JP5962359B2 (ja) 2016-08-03

Family

ID=50611363

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012198594A Active JP5962359B2 (ja) 2012-09-10 2012-09-10 プロセッサおよびプロセッサの評価方法

Country Status (1)

Country Link
JP (1) JP5962359B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102440948B1 (ko) 2016-02-11 2022-09-05 삼성전자주식회사 반도체 장치 및 반도체 장치의 동작 방법
CN114258516B (zh) * 2019-09-12 2024-05-14 三垦电气株式会社 处理器和事件处理方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5970439A (en) * 1997-03-13 1999-10-19 International Business Machines Corporation Performance monitoring in a data processing system
TW200805047A (en) * 2005-12-23 2008-01-16 Koninkl Philips Electronics Nv Performance analysis based system level power management
US8607228B2 (en) * 2006-08-08 2013-12-10 Intel Corporation Virtualizing performance counters
JP2008234191A (ja) * 2007-03-19 2008-10-02 Toshiba Corp ハードウエアモニタ管理装置及びハードウエアモニタ機能の実行方法

Also Published As

Publication number Publication date
JP2014052962A (ja) 2014-03-20

Similar Documents

Publication Publication Date Title
US10713043B2 (en) Opcode counting for performance measurement
Hackenberg et al. HDEEM: high definition energy efficiency monitoring
US20160011996A1 (en) Multi-petascale highly efficient parallel supercomputer
EP0875833A1 (en) Module-configurable, full-chip power profiler
KR100971806B1 (ko) 변화를 탐지하는 클러스터 아키텍처
US7743199B2 (en) Method and apparatus for obtaining trace information of multiple processors on an SoC using a segmented trace ring bus to enable a flexible trace output configuration
US8370551B2 (en) Arbitration in crossbar interconnect for low latency
US5875320A (en) System and method for synchronizing plural processor clocks in a multiprocessor system
TW455768B (en) Method and apparatus for operating an adaptive, multiplexed address and data bus within a computer system
Coleman et al. The European logarithmic microprocesor
JP5962359B2 (ja) プロセッサおよびプロセッサの評価方法
CN109117410B (zh) 一种基于通用异步串行通信接口的高精度对时方法
US10613953B2 (en) Start test method, system, and recording medium
CN112115080A (zh) 用于生成输入/输出性能度量的技术
US8468275B2 (en) Hardware support for software controlled fast reconfiguration of performance counters
US20200210183A1 (en) Vectorization of loops based on vector masks and vector count distances
CN113407350A (zh) 指令处理装置、处理器、芯片、计算设备及相应的方法
JP2011170691A (ja) 周辺デバイス部のオンラインテスト機能を備えたcpuボード、及びそのオンラインテスト方法
Ratković et al. On the selection of adder unit in energy efficient vector processing
US11948018B2 (en) Methods and systems for dynamic reconfiguring of hardware performance monitoring unit (PMU) events
CN113032305B (zh) 一种接口中断测量方法及装置
CN109739713B (zh) 一种rmt测试数据处理方法、装置、终端及存储介质
CN109190181B (zh) 一种基于概率模型的全局结构易感因子快速计算方法
JPH09101906A (ja) 並列計算機の性能測定方法
US20200089549A1 (en) Counting events from multiple sources

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150512

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160229

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160308

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160405

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: 20160531

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160613

R150 Certificate of patent or registration of utility model

Ref document number: 5962359

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150