JP5022110B2 - 半導体集積回路 - Google Patents

半導体集積回路 Download PDF

Info

Publication number
JP5022110B2
JP5022110B2 JP2007149126A JP2007149126A JP5022110B2 JP 5022110 B2 JP5022110 B2 JP 5022110B2 JP 2007149126 A JP2007149126 A JP 2007149126A JP 2007149126 A JP2007149126 A JP 2007149126A JP 5022110 B2 JP5022110 B2 JP 5022110B2
Authority
JP
Japan
Prior art keywords
bit
bit string
instruction
tap controller
register
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.)
Expired - Fee Related
Application number
JP2007149126A
Other languages
English (en)
Other versions
JP2008304986A (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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2007149126A priority Critical patent/JP5022110B2/ja
Priority to US12/155,310 priority patent/US7930606B2/en
Publication of JP2008304986A publication Critical patent/JP2008304986A/ja
Application granted granted Critical
Publication of JP5022110B2 publication Critical patent/JP5022110B2/ja
Expired - Fee Related 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/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • G06F11/2242Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors in multi-processor systems, e.g. one processor becoming the test master

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Tests Of Electronic Circuits (AREA)

Description

本発明は、複数のプロセッサをデバッグするマルチコアデバッグの半導体集積回路に関し、特にJTAGポートをパラレルに接続し、その接続先のコアを例えばスイッチ制御等で切り替える半導体集積回路に関する。
マルチコアのデバッグにおいて、各コア間のJTAGの接続方式として、(1)シリアル(デイジーチェイン、カスケード)接続と(2)パラレルスイッチ(スター型)接続がある。一般的に広く使われている(1)のシリアル接続に対し、(2)のパラレルスイッチ接続は、CPUコアごとの電源オフへの対応、JTAG通信経路が短い、及び動作周波数が低いコアがあってもボトルネックにならず最適化できる等の利点がある。
図7は、パラレルスイッチ接続において、対象となるコアの選択制御回路をLSIに内蔵する構成を有するマルチプロセッサシステムを示す図である(特許文献1参照)。チップ301は、複数のCPU307、307と、CPU307、307のデバッグを実行するデバッグ実行部308、308とを有する。さらに、チップ301は、デバッグ実行部308、308を制御するTAPコントローラ309、309と、CPU307、307の中から、デバッグを実行すべき少なくとも一つのCPUを選択する選択回路310と、端子302〜306を含む一組の端子群とを備えている。CPU307、307は、それぞれデバッグ実行部308、308に接続されており、デバッグ実行部308、308は、それぞれTAPコントローラ309、309に接続されている。選択回路310は、TAPコントローラ309、309と端子302〜306との間に接続されている。端子302〜306には、JTAG規格に準拠したICE等のデバッグ装置(図示しない)が接続される。
選択回路310は、第1のTAPコントローラ400、レジスタ401、AND回路402〜405、及びセレクタ406、407を備えている。AND回路402の一方の入力端子は端子304に、他方の入力端子はレジスタ401に、出力端子はTAPコントローラ309のTMS端子に、それぞれ接続されている。AND回路403の一方の入力端子は端子305に、他方の入力端子はレジスタ401に、出力端子はTAPコントローラ309のTDI端子に、それぞれ接続されている。AND回路404の一方の入力端子は端子304に、他方の入力端子はレジスタ401に、出力端子はTAPコントローラ309のTMS端子に、それぞれ接続されている。AND回路405の一方の入力端子は端子305に、他方の入力端子はレジスタ401に、出力端子はTAPコントローラ309のTDI端子に、それぞれ接続されている。セレクタ406の一方の入力端子はTAPコントローラ309のTDO端子に、他方の入力端子はTAPコントローラ309のTDO端子に、出力端子はセレクタ407を介して端子306に、それぞれ接続されている。
この構成においては、第1のTAPコントローラ400の制御に基づき、選択回路310がデバッグ対象となるCPU307、307を選択する。第1のTAPコントローラ400はJTAG端子信号に常に接続され動作する。各TAPコントローラ309、309は、第1のTAPコントローラ400で生成されたセレクト信号に基づいて許可されたTAPコントローラを動作させる。
この場合、第1のTAPコントローラ400は、IRレジスタ(命令レジスタ)によりマルチコア用拡張レジスタ401を指定する。そして、第1のTAPコントローラ400は、DRレジスタ経由で拡張レジスタ401にCPU307、307のいずれか又は両方をデバッグするための値をセットする。これにより、CPU307、若しくはCPU307を選択してデバッグを行なうか、又はCPU307、307を同時にデバッグすることができる。
特開2004−164367号公報
しかしながら、特許文献1に記載のチップ301においては、拡張レジスタ401を指定するために第1のTAPコントローラ400に入力するIRコードは、各TAPコントローラ309、309で未使用のコードを割り振らなければならない。以下、このIRコードを選択用IRコードという。選択用IRコードは、そのとき指定されているTAPコントローラ309、309にも入力されるため、TAPコントローラ309、309で未使用のIRコードでないと、TAPコントローラ309、309が誤動作するためである。
この場合、新規にチップ1を構成する場合には、TAPコントローラ309、309のIRコードとは別に、第1のTAPコントローラ400で使用する選択用IRコードを決定すればよいが、TAPコントローラを有する既存のプロセッサコア(CPU、デバッグ実行部及びTAPコントローラ)を新たに選択回路310接続する場合には問題が生じる。
以下、この問題点について説明する。IEEE1149.1ではJTAGのIRコード(命令コード)は、そのコードサイズ(ビット長)を含めバイナリコードを規定していない。しかし、ただ1つ規定しているのがバイパスレジスタアクセス(バイパス命令)のバイナリコードは、そのIRコードサイズによらず全ビット1({m{1'b1}}:mはIRコードサイズ)と規定されている。その他の命令コードを規定していないため、既存のプロセッサコアに含まれるTAPコントローラにおいて、IRコードにどのようなサイズ及びバイナリコードを適用しているかは各プロセッサコアにおいて異なる。LSIが大規模になり、そこに搭載されるプロセッサの数も種類も多くなっている中で、その各プロセッサ間で異なるIRコードにおいて、未使用のコードを見つけるのは非常に困難である。
さらに、IRコードサイズが異なるTAPコントローラに対して、定義されているIRコードサイズと違ったサイズのIRコードが入力されるときがあり、IRコードとして意図しないコードと認識されることによる誤動作を生じてしまう場合がある。
これを説明するために、図8にマルチコア用拡張IRコードを入力したときの、第1のTAPコントローラとプロセッサコアのTAPコントローラ(第2のTAPコントローラ)のIRシフトレジスタの状態の一例を示す。第2のTAPコントローラのIRコードのサイズは4ビットに対し、第1のTAPコントローラのIRコードは5ビットとする。ここで、LSIに搭載するプロセッサはAの他にもあり(図示せず)、その中でTAPコントローラのIRコード長の最大が5ビットであるため、第1のTAPコントローラのIRコードサイズも5ビットにしていると仮定する。
このIRコードの例において、第2TAPコントローラが選択されている状態から他のプロセッサコアBを選択するように切替えたい場合、図8(a)に示すように、第1のTAPコントローラのIRシフトレジスタに5ビットのMC_SEL(10001)のコードを入力する。IRコードのシフトレジスタは、IRバイナリコードの最下位ビットから、図の左より1ビットずつ入力され右にシフトするものとする。このとき第1のTAPコントローラの他に現在選択されている第2TAPコントローラのIRシフトレジスタにもIRコードが入力される。本例においては、プロセッサAのIRコードは4ビットであるので、5ビットのIRコードが入力されると、図8(b)に示すように、最下位の1ビットはシフトアウトし、プロセッサAでは、1000の命令として認識される。この1000のIRコードが第2TAPコントローラのIRコードとして使用されている場合、何かしらの命令と認識されることになり誤動作を引き起こす可能性がある。
一方、第2TAPコントローラにデバッガからIRコードを入力する場合、第1のTAPコントローラは常にデバッガに接続されているので第1のTAPコントローラにもIRコードが入力される。図8(c)に示すようにIRシフトレジスタは、シフトが始まる前の初期状態としてTAPステートがCaptureIRのときに、最下位2ビットが2'b01であってそれ以外の任意のビット列が入力されるようにIEEE1149.1で規定されている。当該任意のビットの値は特に規格上は規定されないので、ここでは仮に0とする。第2TAPコントローラのIRコードサイズは、図8(d)に示すように4ビットなので、第1のTAPコントローラは5ビット全て埋まらず、図8(c)に示すように最下位1ビットは0となる。このときのIRコードが第1のTAPコントローラで使用されているIRコードであると、上述と同様、何かしらの命令と認識されてしまうため、当該IRコードが第1のTAPコントローラで使用されていないことを保障しなければならない。
このように第1のTAPのIRコードを決める場合、対象となるプロセッサコアのTAPコントローラで誤認識されないことを保障しなければならない。また、対象となるプロセッサコアのTAPコントローラのIRコードが第1のTAPコントローラに入力された場合、そのコードが第1のTAPコントローラで誤認識されないようにIRコードを決めなければならない。
さらに、第1のTAPコントローラの流用性を考えると、将来接続されたプロセッサコアにおいてもこの条件を満たすように第1のTAPコントローラのIRコードを決定しておく必要がある。このように、各プロセッサコアのTAPコントローラで使用されるJTAGのIRコードにはバイパスレジスタアクセス以外規定がなく、IRコードとしては、各プロセッサ間で全く異なるサイズ、及びコードが使用されている。このため、第1のTAPコントローラ400でも、TAPコントローラ309、309でも誤動作が起きないようIRコードを適切に決定しなければならない。
本発明に係る半導体集積回路は、第1ビット長を有する少なくとも2以上のビット列からなる第1ビット列グループ内のビット列のうち、前記第1ビット列グループに含まれるビット列の総数より少ない数のビット列を制御対象に対して処理を行う命令として解釈するとともに、前記第1ビット長より短い第2ビット長を有する少なくとも2以上のビット列からなる第2ビット列グループ内の各々のビット列に一の所定のビット列を付加してなる前記第1ビット長を有する各ビット列を制御対象に対して処理を行わない命令として解釈する第1コントローラと、前記第2ビット列グループ内の各々のビット列を命令として解釈するとともに、前記第1ビット列グループ内のビット列のうち、前記第1コントローラが制御対象に対して処理を行う命令として解釈する各ビット列から、制御対象に対して処理を行わない命令を示す前記第2ビット長を有する一のビット列を抽出して解釈する第2コントローラと有する。
本発明においては、第1コントローラは、第2ビット列グループ内の各々のビット列に一の所定のビット列を付加してなる第1ビット長を有する各ビット列を制御対象に対して処理を行わない命令として解釈し、第2コントローラは、第2ビット列グループ内の各々のビット列を命令として解釈するとともに、第1ビット列グループ内のビット列のうち、第1コントローラが制御対象に対して処理を行う命令として解釈する各ビット列から、制御対象に対して処理を行わない命令を示す第2ビット長を有する一のビット列を抽出して解釈することにより、第1コントローラと第2コントローラとの命令が干渉することがない。
本発明によれば、2種類以上のTAPコントローラを使用したマルチコアシステムにおける誤動作を防止することができる半導体集積回路を提供することができる。
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。この実施の形態は、本発明を、各プロセッサコアのJTAGをパラレルに接続し、その選択信号の切替制御をそれとは別のJTAG TAPコントローラ(第1のTAPコントローラ)で行なう構成のマルチコアデバッグシステム(デバッグ回路)に適用したものである。
本実施の形態においては、第1のTAPコントローラのIRコードにバイパスレジスタアクセスコード:全ビット1{m(1'b1)}(mは対象となるプロセッサコアの最大IRコード長)を拡張したものを使用する。このため、各プロセッサコアのTAPコントローラは、第1のTAPコントローラ用のIRコードをバイパスレジスタアクセスのIRコードと認識する。このことにより、各回路での誤動作を防止し、汎用性、及び拡張性にすぐれた回路オーバーヘッドが少ないシンプルな回路構成のマルチコアデバッグシステムを実現することができる。
図1は、本発明の実施の形態にかかるマルチコアデバッグシステムを示す図である。チップ1は、ICEなどのデバッガ100に接続される端子2〜6と、第1のTAPコントローラ10、セレクタ7、8、プロセッサコア20、30、40を有する。セレクタ7により、第1のTAPコントローラ10又はセレクタ7からのTDOが選択され出力される。
第1のTAPコントローラ10は、常にデバッガ100と接続され、デバッガ100によって制御可能である。そして、例えば6ビットなどの第1ビット長を有する少なくとも2以上のビット列からなる第1ビット列グループ内のビット列のうち、第1ビット列グループに含まれるビット列の総数より少ない数のビット列を制御対象であるセレクタ8に対して処理を行う命令として解釈する。さらに、第1ビット長より短い例えば4ビットの第2ビット長を有する少なくとも2以上のビット列からなる第2ビット列グループ内の各々のビット列に一の所定のビット列、例えば"00"を付加してなる6ビットを有する各ビット列をセレクタ8に対して処理を行わない命令として解釈する。
セレクタ8は、第1のTAPコントローラ10からの制御信号により制御される制御対象回路であり、その制御信号に基づきデバッガ100とプロセッサコア20、30、40のうちのいずれか一とを接続する。
プロセッサコア20、30、40は、セレクタ8にパラレルに接続され、いずれも同様の構成を有する。例えばプロセッサコア20は、TAPコントローラ(以下、第2のTAPコントローラという。)21及びこの第2のTAPコントローラによりデバッグされるCPU22を有する。プロセッサコア30、40もそれぞれ第2のTAPコントローラ31、41及びCPU32、42を有する。
第2のTAPコントローラ31は、上述の第2ビット列グループ内の各々のビット列を命令として解釈する。さらに、第1ビット列グループ内のビット列のうち、第1のTAPコントローラ10がCPU32に対して処理を行う命令として解釈する各ビット列から、セレクタ7に対して処理を行わない命令を示す4ビットの一のビット列を抽出して解釈する。
このチップ1は、第1のTAPコントローラ10により、デバッグ対象となるコアを選択する。第1のTAPコントローラ10は、JTAG端子信号に常に接続されて許可された一のプロセッサコアの第2のTAPコントローラを動作させる。
次に、TAPコントローラのステートについて簡単に説明する。図2は、TAPコントローラの16のステートを示す図である。ステート間の遷移は、TCKの立ち上がりエッジでのみ発生する。TAPコントローラは、IRシフトレジスタとIRレジスタ(命令レジスタ)及びDRシフトレジスタとDRレジスタ(データレジスタ)を有しDRレジスタは、図2に示すDRで終わるステートで動作し、IRレジスタは図2に示すIRで終わるステートで動作する。各ステートの動作について説明する。
Test-Logic-Resetでは、全てのテストロジックがディスエーブルにされ、ICの通常動作がイネーブルにされる。TAPコントローラのステートマシンは、コントローラの初期ステートにかかわらず、TMSをHighにしてTCKを5回発生させることで Test-Logic-Resetステートになるように設計されている。このため、テストリセット(TRST)ピンはオプションである。なお、ステートマシンにおける状態遷移の方向を表す0又は1は、デバッガから出力されるJTAG信号のうちの、TMS信号である。TMS信号は、後述するTAP State Machineの中に、TCKの立ち上がりに応じて取り込まれ、その結果としてステートマシンの状態が遷移する。
Run-Test-Idleでは、特定の命令が存在するときのみIC内のテストロジックがアクティブになる。それ以外のときはIC内のテストロジックはアイドル状態になる。
Select-DR-Scanでは、データパスステート又はSelect-IR-Scanステートのどちらに進むかを制御する。
Select-IR-Scanでは、命令パスに進むか否かを制御する。進まない場合は、コントローラはTest-Logic-Resetステートに戻る。
Capture-IRでは、TCKの立ち上がりエッジで、IRレジスタに含まれるシフトレジスタにより固定値のパターンがパラレルに読み込まれる。このときの固定値は、最下位ビットが1でそれ以外のビットは0である。
Shift-IRでは、データがTCKの立ち上がり毎に、TDIからIRシフトレジスタ106へ取り込まれ、シフトされていく。
Exit1-IRでは、Pause-IRステート又はUpdate-IRステートのいずれに進むかを制御する。
Pause-IRでは、IRシフトレジスタでのシフトを一時的に停止することができる。
Exit2-DRでは、Shift-IRステート又はUpdate-IRステートのいずれに進むかを制御する。
Update-IRでは、IRシフトレジスタに含まれる命令がIRレジスタに格納される。この命令は格納されると、現在の命令になる。
Capture-DRでは、TCKの立ち上がりエッジで、DRシフトレジスタにより現在の命令で選択されたDRレジスタにパラレルに読み込まれる。
Shift-DR、Exit1-DR、Pause-DR、Exit2-DR、及びUpdate-DRは、命令パスのShift-IR、Exit1-IR、Pause-IR、Exit2-IR、及びUpdate-IR ステートと同様である。
次に、TAPコントローラについて説明する。図3は、TAPコントローラを示す図である。第1のTAPコントローラ及び第2のTAPコントローラも同様の構成を有する。なお、この構成は、一般的なTAPコントローラの構成である。ここでは、第1のTAPコントローラ10として説明する。
第1のTAPコントローラ10は、TAPコントローラ10a及びデバッグ実行部10bを有する。TAPコントローラ10aは、TAPステートマシン101、OR回路102、AND回路103、104、セレクタ105、IRシフトレジスタ106、IRレジスタ(Instruction Register)107を有する。デバック実行部10bは、OR回路111、AND回路109、112、113、セレクタ114、117、119、バイパスレジスタ110、DRシフトレジスタ115、DRレジスタ116、デコーダ108、118を有する。
TAPステートマシン101は、nTEST、TMS、TCK、TDI信号が入力され、TAPコントローラの上述の各ステートが制御され、ShiftIRステート、CaptureIRステート、UpdateIRステート、StateResetステート、ShiftDRステート、CaptureDRステート、UpdateDRステートに遷移する。ShiftIRステートでは、IRシフトレジスタ106がシフトしアップデートIRのタイミングでシフトレジスタ106のデータがIRレジスタ107に取り込まれる。
このIRレジスタ107に格納された命令がバイパスアクセスであれば、データは、バイパスレジスタ110を介して出力される。また、IRレジスタ107に格納された命令に基づきいずれかのDRレジスタ116が選択され、これがCaptureDRステートでDRシフトレジスタ115に取り込まれた後、ShiftDRステートでセレクタ117を介して1ビットずつTDOとして出力される。
ここで、本実施の形態においては、デバッガ100から第1のTAPコントローラ10に入力されるIRコードは、プロセッサコアにおける第2のTAPコントローラに対してデバッガ100から入力されるIRコードとは干渉せずそのIRコード長が長いものとなっている。
次に、この第1のTAPコントローラ10のIRコードについて説明する。第1のTAPコントローラ10は、上述したように、デバッガ100から入力されたIRコードに基づき制御信号をセレクタ8に出力し、セレクタ8は、制御信号に基づきデバッガ100と複数の第2のTAPコントローラのいずれか一とを接続する。このときの第1のTAPコントローラに入力されるIRコードを選択用IRコードということする。すなわち、第1のTAPコントローラはこの選択用IRコードを、制御対象であるセレクタ8を第2のTAPコントローラ20、30、40のうちの一と接続させるという処理を行う命令として解釈する。この選択用IRコードは、第2のTAPコントローラに対する特定のIRコードであるバイパスレジスタアクセスを拡張したものである。具体的には、第2のTAPコントローラのIRコードの最大長をm(m≧1の整数)ビットとしたとき、第1のTAPコントローラの選択用IRコードは、m+n(n≧2の整数)ビットからなり、上位mビットは第2のTAPコントローラのバイパスレジスタアクセス(バイパス命令)のIRコード(全ビット1)である。
すなわち、選択用IRコードを構成するビット列の内の上位mビットは、第2のTAPコントローラが制御対象である一のCPUに対して処理を行わない命令である。さらに、選択用IRコードの下位nビットは、所定のビット列ではないものとする。例えばm+nビットのビット列を命令として解釈する第1のTAPコントローラが、mビットのビット列を受信した後、当該mビットに対してnビットを付加してなるm+nビット長のビット列を命令として解釈する場合には当該付加したnビットを所定のビット列とする。例えば後述する本実施の形態の動作説明では、6ビットのビット列を命令として解釈する第1のTAPコントローラが4ビットのビット列を受信する。この場合において、Capture-IRステートで第1のTAPコントローラに入力されたビット列の内で最終的にIRシフトレジスタに残存する下位2ビット"00"が所定のビット列となる。さらに、本実施の形態の如くJTAG規格に従った命令をビット列に割り当てる場合、各ビットが全て"1"であるnビットのビット列も前記所定のビット列とする。なぜなら、上位mビットが全て1であって下位nビットも全て1である場合にはm+nビットの全てが1となり、各ビットの全てが1であるm+nビットのビット列はJTAGの規格上バイパス命令となるからである。このように、上位mビットは第2のTAPコントローラが制御対象に処理を行わない命令であり、下位nビットは前記所定のビット列ではないビット列を、第1のTAPコントローラの選択用IRコード、一般的には制御対象に処理を行わない命令とする。
ここで、上述の選択用IRコードが割り当てられたビット列以外のビット列は、第1のTAPコントローラが制御対象であるセレクタ8に処理を行わない命令とする。まず、上位mビットが全て1とならないm+n(n≧2の整数)ビット長のビット列は、第1のTAPコントローラが制御対象であるセレクタ8に対して処理を行わない命令とする。例えば本実施の形態のようにJTAG規格を採用する場合には、かかるビット列はバイパス命令とすることができる。さらに、上位mビットが全て1であっても、下位nビットが前記所定のビット列である場合、係るビット列は第1のTAPコントローラが制御対象であるセレクタ8に対して処理を行わない命令とする。JTAG規格においては、同様に、かかる命令はバイパス命令とすることができる。
図4の上段は第1のTAPコントローラが解釈する命令と、m+nビット長のビット列からなるビット列グループ内の各ビット列との対応関係を示している。図4の下段は第2のTAPコントローラが解釈する命令と、mビット長のビット列からなるビット列グループ内の各ビット列との対応関係を示している。図4の上段にあるように、上位mビットが第2のTAPコントローラが制御対象に処理を行わないバイパス命令を示すビット列であり、かつ下位nビットが所定のビット列ではない、m+nビットのビット列をTAP有効コードとする。例えば当該TAP有効コードは上述の選択用IRコードであるとすることができる。ここで、図4上段では、上述のように、"0"のみで構成されるnビットのビット列または"1"のみで構成されるnビットのビット列を所定のビット列としている。そして上位mビットが全て1ではないm+nビットのビット列及び上位mビットが全て1であっても下位nビットが係る所定のビット列であるm+nビットのビット列はバイパス命令であるとしている。
デバッガ100は、第1のTAPコントローラに対し、TAP有効コードであるm+nビットのビット列をIRコードとして送信する。またデバッガ100は、第2のTAPコントローラに対し、図4下段にあるmビットのビット列グループ内のビット列をIRコードとして送信する。以下、デバッガ100がm+nビットのIRコードまたはmビットのIRコードを送信した場合における第1のTAPコントローラと第2のTAPコントローラの動作を具体的に説明する。
図5は、本実施の形態において、第1TAPコントローラ10および第2TAPコントローラが受信して解釈するIRコードを具体例として示す図である。ここでは図4に示すmを4とし、nを2とする。例えば対象プロセッサコアにおける第2のTAPコントローラが解釈する最大のIRコード長、mは4ビットであるので、第1のTAPコントローラ10のプロセッサコア選択用IRコード(コアセレクト)を6'b111101とする。対象となるプロセッサコアをプロセッサコア20から、プロセッサコア30へ切り替える場合、デバッガ100は常時アクセス可能な第1のTAPコントローラ10に対し、図5(a)に示すように、選択用IRコード6'b111101を送信する。第1のTAPコントローラ10は受信した当該選択用IRコード6'b111101をUpdateIRステートでIRレジスタに書き込むとともに、制御対象であるセレクタ8に制御信号を送信する。セレクタ8はプロセッサコア30を選択する。これ以降、プロセッサコア20の第2TAPコントローラのステートマシンはIdleステートで止まっていることになる。
一方、上記の選択用IRコードは第1のTAPコントローラ10だけではなく、プロセッサコア20の第2TAPコントローラ21にも入力される。しかしプロセッサコア20の第2TAPコントローラ21の最大IRコード長は4ビットであるので、図5(b)に示すように、第2のTAPコントローラ21に入力された6ビットの選択用IRコードの内の下位2ビットはシフトアウトする。したがって、上記の選択用IRコードの内の上位4ビットである4'b1111が、UpdateIRステートにおいてIRレジスタに書き込まれる。この場合、第2のTAPコントローラ21はバイパス命令を実行する。
すなわち、4ビットのIRコードを解釈する第2TAPコントローラ21は、6ビットの選択用IRコードの中からバイパス命令を示す4ビットのビット列を抽出して解釈するという動作を行うことになる。具体的には第2TAPコントローラ21はバイパス命令を示す上位4ビットを抽出して解釈する。したがって、第1のTAPコントローラに6ビットの選択用IRコードが入力された際、当該第2TAPコントローラが制御対象であるCPU22に処理を行うことを防止できる。
JTAGのIEEE1149.1規定として、IRコードは、コードサイズによらず、全ビット1の場合はバイパスレジスタアクセスの命令とし実装することが規定されている。よって、プロセッサコア20は図3に示すバイパスレジスタ110にアクセスするバイパスレジスタアクセスを行なう。すなわち、他のJTAG命令を実行しないことが保証されている。
また、プロセッサコア20、30、40に含まれる第2TAPコントローラのいずれかに対して4ビットのIRコードが入力される場合、第1のTAPコントローラ10は常時デバッガに接続されているため、同様に当該第1のTAPコントローラ10にも当該4ビットのIRコードが入力される。この場合、各プロセッサコア20、30、40のIRコードサイズは4ビット以下なのに対し、第1のTAPコントローラ10のIRコードサイズは6ビットなので、IRシフトレジスタは全て埋まらない。このとき本実施の形態においては、第1のTAPコントローラ10のIRシフトレジスタにはJTAGのIEEE1149.1規定に従いIRシフト前のCaptureIRステートで、例えば6'b000001が入力される。よって、例えば図5(c)に示すように、プロセッサコア20、30、40に含まれる第2のTAPコントローラのいずれかに、IRコードとして、例えばバイパスアクセスコード4'b1111を入力した場合、図5(d)に示すように、第1のTAPコントローラ10のIRシフトレジスタが記憶するIRコードの内の下位2ビットは2'b0が保証される。したがって、第1のTAPコントローラ10が解釈する6ビットの命令のうち、下位2ビットが0であるIRコードには制御対象であるセレクタ8に処理を行う命令を割り当てず、例えばバイパスアクセスコードを割り当てる。各プロセッサコア20、30、40に含まれるいずれかの第2TAPコントローラが解釈する命令が第1のTAPコントローラ10に入力された場合には、第1のTAPコントローラは制御対象であるセレクタ8に対して処理を行わず、バイパスレジスタアクセス命令を認識することになる。また、プロセッサコア20、30、40に含まれる第2のTAPコントローラのいずれかにバイパスアクセスコード4'b1111以外のビット列が入力された場合にも第1のTAPコントローラはバイパスレジスタアクセス命令を認識する。なぜならば、第1のTAPコントローラは、図4に示した例からもわかるように、IRコードとして認識する6ビットのビット列のうち上位4ビットが全て1でないビット列をバイパスレジスタアクセス命令として認識するからである。
CaptureIRステートでIRレジスタに入力される値は、最下位2ビットが2'b01にすることがIEEE1149.1で規定されているが、それ以外のビット任意である。本実施の形態においては、第1のTAPコントローラ10においては、この最下位2ビット以外のビットは、全て0もしくは全て1としている。全て0の場合は、上記のように第1のTAPコントローラ10の最下位2ビットが0である場合は特定の命令を割り当てなければ良い。全て1の場合は、最下位2ビットは2'b11が保障されるので必ずバイパスレジスタアクセスと認識する。
ここで、新たなプロセッサコアを追加する場合でも、追加するプロセッサコアに含まれるTAPコントローラのIRコードサイズがmビットを超えない場合は、第1のTAPコントローラのIRコードはそのまま使用することができる。また、拡張性をも考えて、ある程度大きなIRコードサイズを想定して第1のTAPコントローラのIRコードを決めておくと流用性が高まる。
また、異なるIRコードにも対応できるため、一部のJTAG接続をシリアル接続にすることも可能である。
さらに、この上位階層において同様なシステムを構築することによって、階層的に拡張することも可能である。
図6は、本実施の形態にかかる変形例を示す図である。図6に示すように、デバッガ100に接続されたチップ201は、上述同様、第1のTAPコントローラ210、セレクタ207、208及びプロセッサコア220、230、240を有する。さらに、プロセッサコア240にはシリアルにプロセッサコア250が接続されている。そしてさらに、セレクタ208には、プロセッサコア220、230、240と同様パラレルに下位階層部260が接続されている。下位階層部260は、上位階層と同様に、第1のTAPコントローラ270、セレクタ277、278、及びプロセッサコア280、290を有する。
第1のTAPコントローラ270は、第1のTAPコントローラ210と同様、デバッガと接続されデバッガから選択用IRコードを受け取る。これによりDRレジスタを選択し、プロセッサコア選択のための制御信号を出力する。セレクタ278は、この制御信号に基づきセレクタ208を介してデバッガ100とプロセッサコア280又はプロセッサコア290のいずれかを接続する。選択されたプロセッサコアは、上位階層のプロセッサコア220、230、240と同様、デバッガ100の制御のもとCPU282、292のデバッグを行なう。
ここで、第2のTAPコントローラ221、231、241、251、281、291が解釈するIRコードのビット長を4ビットとする。第2のTAPコントローラ241、251は、シリアルに接続されているため、第2のTAPコントローラ241に入力されるIRコードのビット長は8ビットとなる。また、下位階層部260における第2のTAPコントローラ281、291はパラレルに接続されているため、第2のTAPコントローラ281および291のそれぞれに入力されるIRコードのビット長は4ビットとなる。この場合には、第1のTAPコントローラ270のIRコードのビット長を最小で4+2=6ビット、第1のTAPコントローラ210のIRコードのビット長を最小で8+2=10ビットとすることができる。
第1のTAPコントローラ210が解釈する10ビットのIRコードの内、上位8ビットが全て1であって下位2ビットが全て0又は全て1のIRコードを、第1のTAPコントローラ210におけるバイパス命令とする。また、第1のTAPコントローラ270が解釈する6ビットのIRコードの内、上位4ビットが全て1であって下位2ビットが全て0または全て1のIRコードを第1のTAPコントローラ270におけるバイパス命令に割り当てる。また、第1のTAPコントローラ210が解釈する10ビットのIRコードの内、上位8ビットが1であって下位2ビットが01のIRコードを第1TAPコントローラ210における選択用IRコードとする。この選択用IRコードによりプロセッサコア220が選択されると、その際、先に選択されていた例えばプロセッサコア230の第2のTAPコントローラ231にもこの10ビットの選択用IRコードが入力される。しかし、下位6ビットは係る第2のTAPコントローラ231内にあるIRシフトレジスタからシフトアウトし、一方で当該IRシフトレジスタに残存する上位4ビットは全て1であるため、当該第2のTAPコントローラ231はバイパス命令を実行する。
また、プロセッサコア240に上記10ビットの選択用IRコードが入力された場合、第2のTAPコントローラ241内のIRシフトレジスタから上記10ビットのIRコードの内の下位6ビットはシフトアウトし、第2のTAPコントローラ241内のIRシフトレジスタに残存する上位4ビットは全て1となる。ゆえに第2のTAPコントローラ241は、Update-IRステートでIRシフトレジスタからIRレジスタにIRコードを取り込んだ際、バイパス命令を認識する。また、第2のTAPコントローラ241内のIRシフトレジスタからシフトアウトした上記6ビットのビット列がプロセッサコア250に入力される。当該6ビットのビット列の内の下位2ビットは第2のTAPコントローラ251内のIRシフトレジスタからシフトアウトする。したがって、第2のTAPコントローラ251内のIRシフトレジスタに残存する4ビットのビット列は全て1となり、当該第2のTAPコントローラ251はバイパス命令を認識する。
また、下位階層部260に上記10ビットの選択用IRコードが入力された場合、第1のTAPコントローラ270が解釈するIRコードのビット長は6ビットであることから、当該6ビットの内の下位4ビットは第1のTAPコントローラ内のIRシフトレジスタからシフトアウトする。ここで、上記10ビットの選択用IRコードの内の上位6ビットは全て1であるため、係る第1のTAPコントローラ270は当該6ビットのビット列からなるIRコードをバイパス命令と認識する。
第1のTAPコントローラ210が10ビットの選択IRコードを実行し、セレクタ208が下位階層260を選択したとする。その後、デバッガ100が下位階層部260の
第1のTAPコントローラ270に6ビットの選択用IRコードを送信したとする。ここで第1のTAPコントローラ270に対する6ビット選択用IRコードは、上位4ビットが全て1であって下位2ビットが"00"または"11"以外であるとする。上記6ビットの選択用IRコードを受けて、第1のTAPコントローラは制御信号をセレクタ278に出力する。セレクタ278は当該制御信号に応じて例えばプロセッサコア290を選択する。この場合、セレクタ278が先に選択していたプロセッサコア280には上記6ビットの選択用IRコードが入力されるが、第2のTAPコントローラ281内のIRシフトレジスタから下位6ビットはシフトアウトし、上位4ビットが当該IRシフトレジスタ内に残存する。ここで第2のTAPコントローラ281内のIRシフトレジスタに残存した4ビットは全て1であるため、第2のTAPコントローラ281は、Update-IRステートでIRシフトレジスタからIRレジスタに当該4ビットを取り込みバイパス命令を認識する。
本実施の形態においては、第1のTAPコントローラのIRコードをJTAG規定のバイパスレジスタアクセスコード(全ビット1)の拡張として定義するため、第1のTAPコントローラに対するIRコードがプロセッサコアに対してバイパスレジスタアクセスとして認識される。このことにより、各プロセッサコアに対して意図しないJTAG命令が実行されないことを保証する。
また、プロセッサコアに対するIRコードが第1のTAPコントローラに対してバイパスアクセスと認識されることにより、第1のTAPコントローラに対して意図しないJTAG命令が実行されないことを保証する。これにより、第1のTAPコントローラに対応していないICEデバッガ等も第1のTAPコントローラを搭載していない場合と同様に使用することもができる。
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
本発明の実施の形態にかかるマルチコアデバッグシステムを示す図である。 TAPコントローラの16のステートを示す図である。 TAPコントローラを示す図である。 本発明の実施の形態におけるIRコードを示す図である。 本発明の実施の形態における第1のTAPコントローラのIRコードを示す図である。 本発明の実施の形態にかかる変形例を示す図である。 パラレルスイッチ接続において、対象となるコアの選択制御回路をLSIに内蔵する構成を有するマルチプロセッサシステムを示す図である 第1のTAPコントローラのマルチコア用拡張レジスタとIRコードのマッピングの一例を示す図である。
符号の説明
2〜6 端子
7、8.207、208、277、278 セレクタ
8 セレクタ
10,210、270 第1のTAPコントローラ
20、30、40、220、230、240、250、280、290 プロセッサコア
21、31、42、221、231、241、251、281、291 第2のTAPコントローラ
100 デバッガ
101 TAPステートマシン
102、111 OR回路
103、104、109、112、114 AND回路
105、114、117、119 セレクタ
106 IRシフトレジスタ
107 IRレジスタ
108、118 デコーダ
110 バイパスレジスタ
115 DRシフトレジスタ
116 DRレジスタ
260 下位階層部

Claims (9)

  1. 第1ビット長を有する少なくとも2以上のビット列からなる第1ビット列グループ内のビット列のうち、前記第1ビット列グループに含まれるビット列の総数より少ない数のビット列を制御対象に対して処理を行う命令として解釈するとともに、前記第1ビット長より短い第2ビット長を有する少なくとも2以上のビット列からなる第2ビット列グループ内の各々のビット列に一の所定のビット列を付加してなる前記第1ビット長を有する各ビット列を制御対象に対して処理を行わない命令として解釈する第1コントローラと、
    前記第2ビット列グループ内の各々のビット列を命令として解釈するとともに、前記第1ビット列グループ内のビット列のうち、前記第1コントローラが制御対象に対して処理を行う命令として解釈する各ビット列から、前記第2ビット長を有し制御対象に対して処理を行わない命令を示す一のビット列を抽出して解釈する第2コントローラと有する半導体集積回路。
  2. 前記第1コントローラが制御対象に処理を行う命令として解釈する各ビット列の最上位ビットから前記第2ビット長の範囲までに位置するビット列に対し、前記第2コントローラが制御対象に処理を行わない命令を示すビット列を割り当てる
    ことを特徴とする請求項1に記載の半導体集積回路。
  3. 前記第1コントローラが制御対象に処理を行う命令として解釈する各ビット列の最下位ビットから前記第1ビット長と前記第2ビット長の差分に相当するビット長の範囲までに位置するビット列は、前記所定のビット列以外のビット列を有する
    ことを特徴とする請求項2に記載の半導体集積回路。
  4. 前記第1コントローラは前記第1ビット長のビット列を記憶する第1シフトレジスタおよび第1レジスタを含み、前記第1コントローラは、制御対象に処理を行う命令として解釈する一のビット列を最下位ビットから最上位ビットまで前記第1シフトレジスタに記憶し、前記第1シフトレジスタに記憶した前記一のビット列を前記第1レジスタに記憶し、前記第1レジスタに記憶した前記一のビット列を命令として解釈する
    ことを特徴とする請求項3に記載の半導体集積回路。
  5. 前記第1コントローラは、前記所定のビット列を前記第1シフトレジスタに記憶した後、加えて前記第2ビット列グループ内の一のビット列を最下位ビットから最上位ビットまで前記第1シフトレジスタに記憶し、前記第1シフトレジスタに記憶したビット列を前記第1レジスタに記憶し、前記第1レジスタに記憶したビット列を命令として解釈する
    ことを特徴とする請求項4に記載の半導体集積回路。
  6. 前記第2コントローラは、第2ビット長のビット列を記憶する第2シフトレジスタおよび第2レジスタを含み、前記第2コントローラは、前記第2ビット列グループ内の一のビット列を最下位ビットから最上位ビットまで前記第2シフトレジスタに記憶し、前記第2シフトレジスタに記憶した前記一のビット列を前記第2レジスタに記憶し、前記第2レジスタに記憶した前記一のビット列を命令として解釈する
    ことを特徴とする請求項5に記載の半導体集積回路。
  7. 前記第2コントローラは、前記第1コントローラが制御対象に処理を行う命令として解釈する一のビット列を最下位ビットから最上位ビットまで順に前記第2シフトレジスタに入力し、前記第2シフトレジスタに記憶した前記第1コントローラが制御対象に処理を行う命令として解釈するビット列のうちの最上位ビットから前記第2ビット長までの範囲に位置するビット列を前記第2レジスタに記憶し、前記第2レジスタに記憶したビット列を命令として解釈する
    ことを特徴とする請求項6に記載の半導体集積回路。
  8. 前記第1および第2コントローラが各々の制御対象に処理を行わない命令は、前記第1および第2のコントローラのそれぞれに入力される各ビットの各々を前記第1および第2のそれぞれの制御対象に入力することなく出力するバイパス命令である
    ことを特徴とする請求項1乃至7のいずれか1項記載の半導体集積回路。
  9. 前記バイパス命令を示すビット列は全て1である
    ことを特徴とする請求項8に記載の半導体集積回路。
JP2007149126A 2007-06-05 2007-06-05 半導体集積回路 Expired - Fee Related JP5022110B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007149126A JP5022110B2 (ja) 2007-06-05 2007-06-05 半導体集積回路
US12/155,310 US7930606B2 (en) 2007-06-05 2008-06-02 Selectively debugging processor cores through instruction codes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007149126A JP5022110B2 (ja) 2007-06-05 2007-06-05 半導体集積回路

Publications (2)

Publication Number Publication Date
JP2008304986A JP2008304986A (ja) 2008-12-18
JP5022110B2 true JP5022110B2 (ja) 2012-09-12

Family

ID=40096945

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007149126A Expired - Fee Related JP5022110B2 (ja) 2007-06-05 2007-06-05 半導体集積回路

Country Status (2)

Country Link
US (1) US7930606B2 (ja)
JP (1) JP5022110B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI414936B (zh) * 2010-06-04 2013-11-11 Quanta Comp Inc 電腦系統之除錯方法
US8756467B2 (en) * 2011-11-30 2014-06-17 Freescale Semiconductor, Inc. Methods and apparatus for testing multiple-IC devices
US9810739B2 (en) 2015-10-27 2017-11-07 Andes Technology Corporation Electronic system, system diagnostic circuit and operation method thereof
CN108415842B (zh) * 2018-03-21 2021-01-29 杭州中天微***有限公司 多核处理器

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5526365A (en) * 1993-07-30 1996-06-11 Texas Instruments Incorporated Method and apparatus for streamlined testing of electrical circuits
JP3434106B2 (ja) * 1995-12-01 2003-08-04 シャープ株式会社 半導体記憶装置
JP4020462B2 (ja) * 1996-08-30 2007-12-12 テキサス インスツルメンツ インコーポレイテツド テストインタフェースを含む集積回路及びテストインタフェースを使用する方法
US6829730B2 (en) 2001-04-27 2004-12-07 Logicvision, Inc. Method of designing circuit having multiple test access ports, circuit produced thereby and method of using same
JP4401039B2 (ja) * 2001-06-13 2010-01-20 株式会社ルネサステクノロジ 半導体集積回路
JP2003076576A (ja) * 2001-09-04 2003-03-14 Matsushita Electric Ind Co Ltd 半導体装置
JP2004164367A (ja) * 2002-11-14 2004-06-10 Renesas Technology Corp マルチプロセッサシステム
US7426670B2 (en) * 2002-12-20 2008-09-16 Nxp B.V. Connecting multiple test access port controllers on a single test access port
US7284172B2 (en) 2004-04-30 2007-10-16 International Business Machines Corporation Access method for embedded JTAG TAP controller instruction registers
JP4450787B2 (ja) * 2005-11-28 2010-04-14 株式会社ルネサステクノロジ 半導体集積回路装置
US7665002B1 (en) * 2005-12-14 2010-02-16 Advanced Micro Devices, Inc. Multi-core integrated circuit with shared debug port
US20070255990A1 (en) * 2006-04-12 2007-11-01 Burke Kevin C Test access port switch

Also Published As

Publication number Publication date
US7930606B2 (en) 2011-04-19
JP2008304986A (ja) 2008-12-18
US20080307193A1 (en) 2008-12-11

Similar Documents

Publication Publication Date Title
US11199579B2 (en) Test access port with address and command capability
JPH10143390A (ja) テスト機構を有する処理システム
US20080028266A1 (en) Method to prevent firmware defects from disturbing logic clocks to improve system reliability
US7447962B2 (en) JTAG interface using existing I/O bus
US9810739B2 (en) Electronic system, system diagnostic circuit and operation method thereof
JP5022110B2 (ja) 半導体集積回路
JP4805134B2 (ja) 集積回路の内部ラッチをスキャンする方法及び装置並びに集積回路
EP2141597B1 (en) Semiconductor integrated circuit
US11984178B2 (en) Methods and devices for flexible RAM loading
US20240061041A1 (en) System and method for access control of a plurality of instruments embedded in a semiconductor device
JP2006146757A (ja) デバッグ用レジスタおよびデータ転送方法
JP2004127169A (ja) 半導体装置
JP2001194422A (ja) 集積回路
KR20070060855A (ko) 테스트를 위한 집적회로 장치
JP2000235508A (ja) 半導体集積回路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100512

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120522

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120523

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120525

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120615

R150 Certificate of patent or registration of utility model

Ref document number: 5022110

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150622

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees