JP2019079219A - 半導体装置及びデバッグシステム - Google Patents

半導体装置及びデバッグシステム Download PDF

Info

Publication number
JP2019079219A
JP2019079219A JP2017204934A JP2017204934A JP2019079219A JP 2019079219 A JP2019079219 A JP 2019079219A JP 2017204934 A JP2017204934 A JP 2017204934A JP 2017204934 A JP2017204934 A JP 2017204934A JP 2019079219 A JP2019079219 A JP 2019079219A
Authority
JP
Japan
Prior art keywords
access
debug
value
identifier
access request
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.)
Pending
Application number
JP2017204934A
Other languages
English (en)
Inventor
恭子 長谷川
Kyoko Hasegawa
恭子 長谷川
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 JP2017204934A priority Critical patent/JP2019079219A/ja
Publication of JP2019079219A publication Critical patent/JP2019079219A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Microcomputers (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】半導体装置の所望の動作を実現するためのデバッグを容易に行う。【解決手段】半導体装置2は、デバッグフラグ設定レジスタ8と識別子設定レジスタ9とを備え、デバッグのためのメモリ領域5へのアクセスについて制御するデバッグマスタ7と、ガード回路6とを有する。デバッグマスタ7は、デバッグフラグ設定レジスタ8に設定された値が第1の値である場合、有効なフラグ値を含むアクセス要求をバス4に出力し、設定された値が第2の値である場合、無効なフラグ値と、識別子設定レジスタ9に設定された識別子とを含むアクセス要求をバス4に出力する。ガード回路6は、アクセス要求に含まれるフラグ値が有効である場合、メモリ領域5へのアクセスを許可し、アクセス要求に含まれるフラグ値が無効である場合、アクセス要求に含まれる識別子に応じて、メモリ領域5へのアクセスを許可する。【選択図】図3

Description

本発明は、半導体装置及びデバッグシステムに関し、例えば、メモリ領域へのアクセスを識別子に基づいて許可するガード回路を有する半導体装置及びデバッグシステムに関する。
半導体装置で実行されるプログラムの開発段階において、デバッグは重要な作業である。このため、半導体装置におけるデバッグに関する様々な技術が提案されている。例えば、特許文献1では、デバッガインタフェースを備えた情報処理半導体装置にデバッガを接続して、プログラムのデバッグを行うことについて開示している。
特開2002−341956号公報
半導体装置においてプログラムが実行される際、メモリへのアクセスが発生しうる。メモリへのアクセスをセキュアに実現するための技術が半導体装置に設けられている場合、プログラムにバグが含まれているときのみならず、当該技術が正しく動作していないときにも、半導体装置の所望の動作を実現できない。
このため、メモリへのアクセスをセキュアに実現するための技術が半導体装置に設けられている場合、所望の動作が実現できない原因を特定することが難しいという問題があった。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
一実施の形態によれば、半導体装置は、デバッグフラグ設定レジスタと識別子設定レジスタとを備え、デバッグのためのメモリ領域へのアクセスについて制御するデバッグマスタと、ガード回路とを有する。前記デバッグマスタは、前記デバッグフラグ設定レジスタに設定された値が第1の値である場合、有効なフラグ値を含むアクセス要求をバスに出力し、設定された値が第2の値である場合、無効なフラグ値と、前記識別子設定レジスタに設定された識別子とを含むアクセス要求をバスに出力する。前記ガード回路は、前記アクセス要求に含まれる前記フラグ値が有効である場合、前記メモリ領域へのアクセスを許可し、前記アクセス要求に含まれる前記フラグ値が無効である場合、前記アクセス要求に含まれる前記識別子に応じて、前記メモリ領域へのアクセスを許可する。
前記一実施の形態によれば、半導体装置の所望の動作を実現するためのデバッグを容易に行うことができる。
比較例にかかるマイクロコンピュータの構成の一例を示す模式図である。 マイクロコンピュータにおけるプログラムの階層モデルを示す模式図である。 実施の形態の概要にかかるデバッグシステムの構成の一例を示す模式図である。 実施の形態1にかかるデバッグシステムの構成の一例を示す模式図である。 アクセス可否についてまとめた表の一例を示す図である。 エミュレーション装置において、デバッガが表示部に表示するGUIの表示の一例を示す模式図である。 アクセスが成功したか否かについての一覧表示の一例を示す図である。 実施の形態3にかかるデバッグシステムの構成の一例を示すブロック図である。
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
<比較例>
実施の形態について説明する前に、実施の形態に対する比較例について説明する。図1は、比較例にかかるマイクロコンピュータ50の構成の一例を示す模式図である。マイクロコンピュータ50は、メモリ領域へのアクセスをセキュアに実現するための技術が設けられている。以下、マイクロコンピュータ50について説明する。
図1に示したマイクロコンピュータ50は、バスマスタとして、演算実行部110_1、110_2、DMA(Direct Memory Access)コントローラ120に加え、デバッグマスタ51を有する。これらのバスマスタは、データバス130を介して、メモリ領域140_1〜140_nにアクセスする。デバッグマスタ51は、エミュレーション装置と接続可能であり、エミュレーション装置から指示されたアクセスについて制御する。エミュレーション装置は、デバッグマスタ51を介して各種資源(メモリ空間)に対しリード処理及びライト処理を行う装置である。
また、マイクロコンピュータ50は、ガード回路150_1〜150_nと、プロテクション設定レジスタ151_1〜_151nと、エラーステータスレジスタ152_1〜152_nを有する。具体的には、メモリ領域140_iに対して、ガード回路150_iが設けられており、ガード回路150_iに対して、プロテクション設定レジスタ151_i及びエラーステータスレジスタ152_iが設けられている。なお、nは、1以上の整数であり、iは1以上n以下の整数である。
バスマスタからのアクセス要求が、データバス130に出力され、メモリ領域140_1〜140_nへのアクセスが実現される。ここで、データバス130に出力されるアクセス要求は、アクセスアドレス(ADDR)、アクセスデータ(DATA)、アクセス属性(R/W)、システム保護識別子(SPID)、デバッグマスタアクセスフラグ(DBG)を含みうる。
アクセスアドレスは、アクセス先を特定するアドレス情報である。アクセスデータは、アクセス要求により書き込まれるデータ又は読み出されるデータである。アクセス属性は、アクセスの種別(リード又はライト)を示す情報である。システム保護識別子は、バスマスタからのアクセス要求がアクセス先へのアクセス権を有するものであるか否かをガード回路150_iが判定するために用いられる識別子であり、アクセスの主体を識別する識別子である。言い換えると、システム保護識別子は、アクセスの要求元を識別する識別子である。なお、以下の説明では、システム保護識別子をSPIDと称す。デバッグマスタアクセスフラグは、デバッグマスタ51によるアクセス要求であることを示すためのフラグ情報である。
マイクロコンピュータ50において、デバッグマスタ51以外のバスマスタは、予め割り当てられたSPIDを含むアクセス要求をデータバス130に出力してアクセスを実行する。なお、デバッグマスタ51以外のバスマスタが出力するアクセス要求では、デバッグマスタアクセスフラグの値は無効値である。また、マイクロコンピュータ50において、デバッグマスタ51は、デバッグマスタアクセスフラグの値が有効値であるアクセス要求を出力する。ここで、デバッグマスタ51が出力するアクセス要求は、SPIDを含まない。
ガード回路150_iは、バスマスタからデータバス130に出力されたアクセス要求のうちメモリ領域140_iへのアクセスを要求するアクセス要求に対し、当該アクセス要求に含まれる識別子が、プロテクション設定レジスタ151_iに予め設定された許可値と一致するか否かを判定する。プロテクション設定レジスタ151_iには、メモリ領域140_iに対するアクセスを許可する識別子が許可値として予め設定されている。
ガード回路150_iは、アクセスが許可されていないSPIDを伴うアクセス要求については、アクセスを許可せず、エラーの発生を示す状態値をエラーステータスレジスタ152_iに格納する。このように、エラーステータスレジスタ152_iは、ガード回路150_iのアクセス許否の判定結果が設定されるレジスタである。
プロテクション設定レジスタ151_1〜151_nへの許可値の設定は、アクセス権の設定を司るプログラムであるハイパーバイザーを演算実行部110_1又は演算実行部110_2が実行することにより行われる。
図2は、マイクロコンピュータ50におけるプログラムの階層モデルを示す模式図である。ハイパーバイザーは、プロテクション設定レジスタ151_1〜151_nの設定に加え、図2に示すように、アクセスの実行主体であるスーパーバイザー(OS(Operating System))及びユーザプログラムにSPIDを割り当てる。デバッグマスタ51以外の各バスマスタは、実行中のプログラムに割り当てられたSPIDをバスアクセス情報としてアクセス要求に含め、データバス130に出力する。
なお、ハイパーバイザーは、デバッグマスタ51以外の各バスマスタにSPIDを固定的に割り当ててもよい。この場合、デバッグマスタ51以外の各バスマスタは、メモリアクセスが発生すると、バスマスタに割り当てられたSPIDを含むアクセス要求をデータバス130に出力することとなる。
図2に示されるプログラム(ハイパーバイザー、スーパーバイザー、ユーザプログラム)は、例えば演算実行部110_1(又は演算実行部110_2)のメモリ111_1(メモリ111_2)に記憶されており、演算実行部110_1(又は演算実行部110_2)のCPU(Central Processing Unit)112_1(CPU112_2)により実行される。
このような構成により、マイクロコンピュータ50では、メモリ領域140_1〜140_n毎に、プロテクト設定をすることができる。以上説明した通り、マイクロコンピュータ50は、メモリ空間に対するアクセス権を判定することでセキュアなアクセスを実現するバスシステムを備えている。
ところで、エミュレーション装置は、デバッグ作業のために用いられる。デバッグ作業では、任意のメモリ空間の値について参照および書き換えを行いたいというユーザのニーズがあるため、エミュレーション装置は、全メモリ空間について、記憶されている値の参照、及び記憶されている値の書き換えができる必要がある。このため、ハイパーバイザーによるアクセス権についての設定にかかわらず、デバッグマスタ51からのアクセスは成功する必要がある。このため、デバッグマスタ51は、上述の通り、デバッグマスタアクセスフラグを有効値にセットしてアクセス要求を出力する。そして、ガード回路150_1〜150_nは、デバッグマスタアクセスフラグが有効値であるアクセス要求については、アクセス権限の判定対象とせず、アクセスを許可する。このような構成により、エミュレーション装置は、全メモリ空間について、参照及び書き換えを自由に行うことができる。
比較例では、次のような課題がある。上述の通り、エミュレーション装置からは、全メモリ空間を参照可能である。すなわち、デバッグマスタ51は、全メモリ空間にアクセスできる。ここで、ハイパーバイザーによるアクセス権についての設定(すなわち、プロテクション設定レジスタ151_1〜151_nの設定又はSPIDの割り当ての設定)に誤りがある場合、ユーザプログラムは適切にメモリ領域140_1〜140_nにアクセスできない。例えば、ユーザプログラムの実行では、ある領域へのアクセスに失敗するものの、エミュレーション装置の表示を用いたユーザの解析では、当該領域を参照することができてしまうため、アクセスの失敗に対する効果的なデバッグが困難である。このように、比較例においては、メモリへのアクセスをセキュアに実現するための技術がマイクロコンピュータに設けられているため、所望の動作が実現できない原因を特定することが難しいという問題がある。
<実施の形態の概要>
次に、実施の形態の概要について説明する。図3は、実施の形態の概要にかかるデバッグシステム1の構成の一例を示す模式図である。デバッグシステム1は、マイクロコンピュータなどの半導体装置2と、半導体装置2に接続されるエミュレーション装置3とを備える。
半導体装置2は、バス4と、メモリ領域5と、ガード回路6と、デバッグマスタ7とを有する。メモリ領域5は、バス4を介して、デバッグマスタ7を含むバスマスタによりアクセスされる領域である。ガード回路6は、バス4に出力されたアクセス要求に含まれる識別子が予め定められた許可値と一致する場合に、メモリ領域5へのアクセスを許可する回路である。デバッグマスタ7は、デバッグのためのメモリ領域5へのアクセスについて制御するバスマスタである。デバッグマスタ7は、デバッグフラグ設定レジスタ8と識別子設定レジスタ9とを備えている。また、デバッグマスタ7は、エミュレーション装置3と接続可能である。
エミュレーション装置3は、半導体装置2で実行されるプログラムのデバッグのために用いられる装置であり、デバッグマスタ7と接続される。また、エミュレーション装置3は、デバッグマスタ7のデバッグフラグ設定レジスタ8の値、及び識別子設定レジスタ9の値を設定することができる。エミュレーション装置3は、デバッグフラグ設定レジスタ8に第1の値又は第1の値とは異なる第2の値のいずれかの値を設定する。また、エミュレーション装置3は、識別子設定レジスタ9に識別子(上述のシステム保護識別子(SPID))を設定する。
デバッグマスタ7は、デバッグフラグ設定レジスタ8に設定された値が第1の値である場合、有効なフラグ値を含むアクセス要求をバス4に出力する。また、デバッグマスタ7は、デバッグフラグ設定レジスタ8に設定された値が第2の値である場合、無効なフラグ値と、識別子設定レジスタ9に設定された識別子とを含むアクセス要求をバス4に出力する。
ガード回路6は、アクセス要求に含まれるフラグ値が有効である場合、識別子(SPID)に関わらず、メモリ領域5へのアクセスを許可する。これに対し、ガード回路6は、アクセス要求に含まれるフラグ値が無効である場合、アクセス要求に含まれる識別子(SPID)に応じて、メモリ領域5へのアクセスを許可する。すなわち、この場合、ガード回路6は、アクセス要求に含まれる識別子が、予め定められた許可値と一致する場合にメモリ領域5へのアクセスを許可する。言い換えると、ガード回路6は、アクセス要求に含まれる識別子が、予め定められた許可値と異なる場合には、メモリ領域5へのアクセスを許可しない。
デバッグシステム1では、デバッグフラグ設定レジスタ8に第1の値が設定されている場合、上記比較例と同様、デバッグマスタ7は全メモリ空間にアクセスできるが、デバッグフラグ設定レジスタ8に第2の値が設定されている場合、識別子設定レジスタ9に設定された識別子に応じてアクセスの許否が判定される。すなわち、デバッグフラグ設定レジスタ8の値が第2の値である場合のデバッグマスタ7のアクセスの成否の結果に基づいて、ガード回路6によるメモリ領域5の保護機能の動作を確認することができる。このため、比較例よりも容易にバグの原因を解析することが可能となる。つまり、デバッグシステム1によれば、半導体装置2の所望の動作を実現するためのデバッグを容易に行うことができる。
<実施の形態1>
次に、実施の形態1について説明する。図4は、実施の形態1にかかるデバッグシステム10の構成の一例を示す模式図である。デバッグシステム10は、マイクロコンピュータ100と、マイクロコンピュータ100に接続されるエミュレーション装置200とを備える。マイクロコンピュータ100は、上述の半導体装置2のより詳細な構成例であり、エミュレーション装置200は、上述のエミュレーション装置3のより詳細な構成例である。
まず、エミュレーション装置200について説明する。エミュレーション装置200は、図3のエミュレーション装置3に相当し、マイクロコンピュータ100で実行されるプログラムのデバッグのために用いられる。ここで、マイクロコンピュータ100で実行されるプログラムのデバッグとは、ユーザプログラムのデバッグに限らず、ハイパーバイザー及びスーパーバイザーのデバッグを含んでもよい。
エミュレーション装置200は、マイクロコンピュータ100の接続端子160を介してデバッグマスタ170と電気的に接続され、デバッグマスタ170を介してメモリ領域140_1〜140_nに対しリード処理及びライト処理を行う。なお、メモリ領域140_1〜140_nは、図3のメモリ領域5に相当する。
以下の説明において、メモリ領域140_1〜140_nについて、これらを区別せずに言及する場合、メモリ領域140と称すことがある。同様に、ガード回路150_1〜150_nについて、ガード回路150と称し、プロテクション設定レジスタ151_1〜151_nについて、プロテクション設定レジスタ151と称し、エラーステータスレジスタ152_1〜152_nについて、エラーステータスレジスタ152と称すことがある。
エミュレーション装置200は、例えば、図4に示すように、CPU201、メモリ202、入力部203、表示部204、インタフェース部205を有し、コンピュータとしての機能を有する。CPU201は、例えばメモリ202に格納されたデバッガを実行する。エミュレーション装置200の動作は、デバッガがCPU201により実行されることで行われる。
入力部203は、ユーザからの入力操作を受け付ける装置であり、例えば、キーボード、マウスなどである。表示部204は、情報を表示するための装置であり、例えば、フラットパネルディスプレイである。インタフェース部205は、エミュレーション装置200とマイクロコンピュータ100とで通信するためのインタフェースであり、例えば、JTAG(Joint Test Action Group)などの所定の規格に準拠したインタフェースである。
エミュレーション装置200の入力部203は、例えば、アクセスアドレス、アクセス属性、アクセスデータなどの入力を受け付ける。特に、本実施の形態では、エミュレーション装置200は、マイクロコンピュータ100のデバッグマスタ170のデバッグフラグ設定レジスタ171に設定する値、及び識別子設定レジスタ172に設定する値を受け付ける。デバッガは、デバッグフラグ設定レジスタ171に設定する値が入力されると、入力された値をデバッグフラグ設定レジスタ171に設定する。同様に、デバッガは、識別子設定レジスタ172に設定する値が入力されると、入力された値を識別子設定レジスタ172に設定する。
例えば、ユーザは、全メモリ空間について参照可能としたい場合、デバッグフラグ設定レジスタ171に第1の値を設定するよう入力する。また、ユーザは、特定のSPIDを伴うアクセス要求についてのガード回路150による保護機能の動作を知りたい場合、デバッグフラグ設定レジスタ171に第2の値を設定するよう入力する。なお、この場合、ユーザは、この特定のSPIDを指定する入力も行う。この入力されたSPIDは、識別子設定レジスタ172に設定されることとなる。なお、デバッグフラグ設定レジスタ171及び識別子設定レジスタ172の設定において、必ずしもユーザからの入力を必要としなくてもよい。すなわち、デバッガは、予め定められた値をレジスタに設定してもよい。
また、デバッガは、入力部203が受け付けた情報に基づいて、マイクロコンピュータ100のデバッグマスタ170にメモリ領域140へのアクセスを指示する。デバッグマスタ170は、エミュレーション装置200から指示されたアクセスを実行するためのアクセス要求をデータバス130に出力する。
次に、マイクロコンピュータ100について説明する。マイクロコンピュータ100は、演算実行部110_1、110_2と、DMAコントローラ120と、デバッグマスタ170と、データバス130と、メモリ領域140_1〜140_nと、ガード回路150_1〜150_nと、プロテクション設定レジスタ151_1〜151_nと、エラーステータスレジスタ152_1〜152_nとを有する。なお、図4に示した例では、マイクロコンピュータ100は2つの演算実行部110_1、110_2を有するが、マイクロコンピュータ100は3つ以上の演算実行部を有してもよいし、1つの演算実行部を有してもよい。マイクロコンピュータ100においても、ガード回路150により、メモリ領域140へのアクセスがセキュアに実現される。
なお、以下の説明において、演算実行部110_1、110_2について、これらを区別せずに言及する場合、演算実行部110と称すことがある。また、演算実行部110が有するCPU112_1、112_2について、これらを区別せずに言及する場合、CPU112と称すことがある。同様に、メモリ111_1、111_2について、これらを区別せずに言及する場合、メモリ111と称すことがある。
マイクロコンピュータ100は、デバッグマスタ51がデバッグマスタ170に置き換えられた点で、比較例にかかるマイクロコンピュータ50と異なる。すなわち、マイクロコンピュータ100は、バスマスタとして、演算実行部110、DMAコントローラ120、デバッグマスタ170を有し、これらのバスマスタは、図3のバス4に相当するデータバス130を介して、メモリ領域140にアクセスする。なお、バスマスタからのアクセス要求は、比較例と同様、アクセスアドレス(ADDR)、アクセスデータ(DATA)、アクセス属性(R/W)、システム保護識別子(SPID)、デバッグマスタアクセスフラグ(DBG)を含みうる。
デバッグマスタ170は、図3のデバッグマスタ7に相当し、マイクロコンピュータ100の接続端子160を介してエミュレーション装置200と接続可能であり、エミュレーション装置200から指示されたアクセスについて制御する制御回路である。ただし、デバッグマスタ170は、デバッグフラグ設定レジスタ171と識別子設定レジスタ172とを備えている点で、比較例にかかるデバッグマスタ51と異なる。デバッグマスタ170は、これらのレジスタに設定された値に基づいて、デバッグのためのメモリ領域140へのアクセスについて制御する。
マイクロコンピュータ100において、デバッグマスタ170以外のバスマスタは、アクセスが必要な場合、比較例と同様に、アクセス要求をデータバス130に出力する。比較例にかかるデバッグマスタ51が出力するアクセス要求におけるデバッグマスタアクセスフラグの値は、常に有効値であるが、本実施の形態では、デバッグフラグ設定レジスタ171の値に依存する。
デバッグマスタ170は、デバッグフラグ設定レジスタ171に設定されたデバッグフラグ値が第1の値である場合、有効なデバッグマスタアクセスフラグを含むアクセス要求をデータバス130に出力する。この場合、デバッグマスタ170は、エミュレーション装置200から指定されたアクセスアドレスに対し、エミュレーション装置200から指定されたアクセスを実行するためのアクセス要求を出力する。言い換えると、デバッグマスタ170は、エミュレーション装置200から指定されたアクセス内容を実現するよう、アクセスアドレス、アクセスデータ、アクセス属性といった情報をデバッグマスタアクセスフラグとともに含むアクセス要求を出力する。
デバッグフラグ設定レジスタ171に設定された値が第1の値である場合、SPIDに関わらず、ガード回路150はアクセスを許可する。このため、デバッグフラグ設定レジスタ171に設定された値が第1の値である場合、デバッグマスタ170が出力するアクセス要求はSPIDを含む必要がないが、設定された値が第1の値の場合もアクセス要求がSPIDを含むよう、デバッグマスタ170が構成されてもよい。このように本実施の形態では、デバッグマスタアクセスフラグは、ガード回路150による保護機能を用いるか否かを示すフラグ情報である。
また、デバッグマスタ170は、デバッグフラグ設定レジスタ171に設定された値が第2の値である場合、無効なデバッグマスタアクセスフラグと、識別子設定レジスタ172に設定された識別子(すなわち、SPID)とを含むアクセス要求をデータバス130に出力する。この場合も、デバッグマスタ170は、エミュレーション装置200から指定されたアクセスアドレスに対し、エミュレーション装置200から指定されたアクセスを実行するためのアクセス要求を出力する。言い換えると、デバッグマスタ170は、エミュレーション装置200から指定されたアクセス内容を実現するよう、アクセスアドレス、アクセスデータ、アクセス属性といった情報をデバッグマスタアクセスフラグ及びSPIDとともに含むアクセス要求を出力する。
また、デバッグマスタ170は、デバッグフラグ設定レジスタ171に設定された値が第2の値である場合、ガード回路150によるアクセス許否の判定結果を取得し、エミュレーション装置200に判定結果を出力する。すなわち、デバッグマスタ170は、エミュレーション装置200によりデバッグフラグ設定レジスタ171に設定された値に基づく無効なフラグ値(無効なデバッグマスタアクセスフラグ)と、エミュレーション装置200により識別子設定レジスタ172に設定された識別子とを含むアクセス要求をデータバス130に出力し、このアクセス要求に対するガード回路150によるアクセス許否の判定結果を取得し、エミュレーション装置200に判定結果を出力する。なお、本実施の形態では、デバッグマスタ170は、例えば、エラーステータスレジスタ152を参照することにより、判定結果を取得する。具体的には、例えば、デバッグマスタ170は、エラーステータスレジスタ152_1〜152_nのそれぞれのアドレスをテーブルにより予め管理しておき、アクセス要求を出力後、当該アクセス要求で指定したアクセス先に対応するエラーステータスレジスタ152を特定し、特定したエラーステータスレジスタ152の値を読み出すことにより、判定結果を取得する。
ガード回路150は、図3のガード回路6に相当する。したがって、ガード回路150は、アクセス要求に含まれるフラグ値(デバッグマスタアクセスフラグ)が有効である場合、SPIDの確認をせず、メモリ領域140へのアクセスを許可する。これに対し、ガード回路150_iは、アクセス要求に含まれるフラグ値(デバッグマスタアクセスフラグ)が無効である場合、アクセス要求に含まれる識別子(SPID)が、プロテクション設定レジスタ151_iに予め設定された許可値(すなわち、アクセスが許可されるSPID)と一致する場合にメモリ領域140_iへのアクセスを許可する。言い換えると、ガード回路150_iは、アクセス要求に含まれるフラグ値が無効である場合、アクセス要求に含まれる識別子(SPID)が、プロテクション設定レジスタ151_iに予め設定された許可値と一致しない場合にメモリ領域140_iへのアクセスを許可しない。この場合、ガード回路150は、エラーの発生を示す状態値をエラーステータスレジスタ152_iに格納する。
上述の通り、デバッグマスタ170は、ガード回路150によるアクセス許否の判定結果を取得し、エミュレーション装置200に判定結果を出力する。エミュレーション装置200は、デバッグマスタ170から判定結果を取得すると、判定結果を表示出力する。すなわち、エミュレーション装置200の表示部204が判定結果を表示する。このように、デバッグシステム10では、デバッグフラグ設定レジスタ171に設定された値が第2の値である場合、特定の識別子(SPID)を伴うアクセス要求についてのガード回路150によるアクセス許否の判定結果がエミュレーション装置200に出力される。このため、ユーザは、エミュレーション装置200による表示により、特定のSPIDのガード回路150によるアクセス許否の判定結果を確認することができる。
以上説明した通り、デバッグシステム10においては、デバッグフラグ設定レジスタ171に第1の値を設定することで、比較例と同様のデバッグ作業を行うことができる。すなわち、この場合、デバッグマスタアクセスフラグが有効なバスアクセスが発生し、各ガード回路150はメモリ領域140へのアクセスを許可する。これに対し、デバッグフラグ設定レジスタ171に第2の値を設定することで、特定のSPIDを伴うバスアクセスをエミュレートすることができる。すなわち、この場合、デバッグマスタアクセスフラグが無効なバスアクセスが発生し、識別子設定レジスタ172に設定されたSPIDを伴うバスアクセスをエミュレートすることができる。
ここで、デバッグシステム10における具体的な設定例について説明する。ここでは、一例として、演算実行部110_1のCPU112_1が演算実行部110_1のメモリ111_1に記憶されたハイパーバイザーを実行するものとする。また、演算実行部110_1のCPU112_1が演算実行部110_1のメモリ111_1に記憶されたユーザプログラムAを実行し、演算実行部110_2のCPU112_2が演算実行部110_2のメモリ111_2に記憶されたユーザプログラムBを実行するものとする。
ここで、ハイパーバイザーによって、アクセスが許可されるSPIDの値として、「001」がプロテクション設定レジスタ151_1に設定され、「002」がプロテクション設定レジスタ151_2に設定されたとする。すなわち、ガード回路150_1は、SPIDとして「001」を含むアクセス要求についてアクセスを許可し、ガード回路150_2は、SPIDとして「002」を含むアクセス要求についてアクセスを許可する。また、ハイパーバイザーによって、ユーザプログラムAに対し、SPIDの値として「001」を割り当て、ユーザプログラムBに対し、「002」を割り当てたとする。
図5は、このような設定が行われた際のアクセス可否についてまとめた表である。なお、図5においては、ユーザプログラムAのアクセス要求に対するアクセス結果、ユーザプログラムBのアクセス要求に対するアクセス結果、比較例にかかるデバッグマスタ51によるアクセス要求に対するアクセス結果、及び本実施の形態にかかるデバッグマスタ170によるアクセス要求に対するアクセス結果を示している。なお、デバッグマスタ170によるアクセス要求に対するアクセス結果としては、デバッグフラグ設定レジスタ171に第2の値(すなわち、デバッグマスタアクセスフラグを無効にするための値)が設定され、かつ、識別子設定レジスタ172に「001」が設定された場合のアクセス要求に対するアクセス結果と、デバッグフラグ設定レジスタ171に第2の値が設定され、かつ、識別子設定レジスタ172に「002」が設定された場合のアクセス要求に対するアクセス結果とが示されている。
比較例にかかるデバッグマスタ51では、デバッグマスタアクセスフラグは常に有効であるため、図5の表に示すように、メモリ領域140_1、140_2の両方にアクセスすることができる。すなわち、デバッガによる表示画面では、メモリ領域140_1、140_2が記憶している値がそれぞれ表示されることとなる。つまり、ガード回路150によるアクセスの許否を確認することができない。したがって、比較例では、メモリ領域140に対するアクセスに関する処理が適切に行えていないことに起因する意図しないプログラム動作について、その原因を、ユーザがデバッガを用いて解析することが難しい。これに対し、本実施の形態にかかるデバッグマスタ170では、SPIDに応じたアクセスの許否結果を得ることができる。このため、ガード回路150によるアクセス許否の動作を確認することができる。例えば、ユーザプログラムBにおいてメモリ領域140_1からデータを読み出す処理を実現したい場合に、ユーザプログラムBがメモリ領域140_1のアクセスに失敗するとき、ユーザは、デバッグマスタ170にユーザプログラムBのSPIDを設定することにより、当該SPIDを用いたアクセスに対するガード回路150による動作を確認することができる。
図6は、エミュレーション装置200において、デバッガが表示部204に表示するGUIの表示の一例を示す模式図である。ユーザプログラムのメモリ領域140へのアクセスが適切ではない場合、ユーザは、例えば、図6に示すGUIを用いて、ハイパーバイザーによるアクセス権についての設定(すなわち、プロテクション設定レジスタ151の設定又はSPIDの割り当て設定)にバグがあるのか、ユーザプログラムにバグがあるのかを確認することができる。
図6に示すGUIの表示は、アドレス入力テキストボックス601と、SPID入力テキストボックス602と、書き込み値入力テキストボックス603と、書き込みボタン604と、読み出しボタン605と、読み出し値表示領域606と、アクセス結果表示領域607とを有する。
アドレス入力テキストボックス601は、アクセスアドレスを指定するためのテキストボックスである。SPID入力テキストボックス602は、SPIDを指定するためのテキストボックスである。書き込み値入力テキストボックス603は、メモリ領域140に書き込む値を指定するためのテキストボックスである。書き込みボタン604は、書き込み値入力テキストボックス603に入力された値のメモリ領域140への書き込みの実行を指示するためのボタンである。読み出しボタン605は、メモリ領域140に記憶された値の読み出しの実行を指示するためのボタンである。読み出し値表示領域606は、読み出された値を表示するための領域である。アクセス結果表示領域607は、アクセスが成功したか否かを表示するための領域である。
エミュレーション装置200において、入力部203が書き込みボタン604の押下操作を受け付けると、デバッガは、アドレス入力テキストボックス601に入力されたアドレスのメモリ領域に、書き込み値入力テキストボックス603に入力された値を書き込むようデバッグマスタ170に通知する。このとき、デバッガは、SPID入力テキストボックス602に入力されたSPIDも通知する。つまり、デバッガは、識別子設定レジスタ172にSPIDを設定する。これに対し、デバッグマスタ170は、デバッガが通知したこれらの情報と、無効なデバッグマスタアクセスフラグとを含むアクセス要求をデータバス130に出力する。その後、デバッグマスタ170は、当該アクセス要求に対するガード回路150によるアクセス許否の判定結果を取得し、デバッガに通知する。そして、デバッガは、アクセス結果表示領域607にアクセスが成功したか否かを表示する。
また、エミュレーション装置200において、入力部203が読み出しボタン605の押下操作を受け付けると、デバッガは、アドレス入力テキストボックス601に入力されたアドレスのメモリ領域から値を読み出すようデバッグマスタ170に通知する。このとき、デバッガは、SPID入力テキストボックス602に入力されたSPIDも通知する。つまり、デバッガは、識別子設定レジスタ172にSPIDを設定する。これに対し、デバッグマスタ170は、デバッガが通知したこれらの情報と、無効なデバッグマスタアクセスフラグとを含むアクセス要求をデータバス130に出力する。その後、デバッグマスタ170は、当該アクセス要求に対するガード回路150によるアクセス許否の判定結果を取得し、デバッガに通知する。アクセスに成功した場合は、デバッグマスタ170がデータバス130から取得した読み出し値についても、デバッガに通知する。そして、デバッガは、アクセス結果表示領域607にアクセスが成功したか否かを表示する。また、アクセスに成功した場合は、デバッガは、読み出し値表示領域606に読み出し値を表示する。
このように、エミュレーション装置200は、受け付けた入力操作により指定された識別子(SPID)を識別子設定レジスタ172に設定する。そして、デバッグマスタ170は、識別子設定レジスタ172に設定された識別子を用いてアクセスを要求する。このため、ユーザは、ユーザプログラムについてのデバッグ作業の際、図6に示したようなデバッガによるGUIを用いて、任意のSPIDによるアクセスをエミュレートできる。このため、当該ユーザプログラムに割り当てられたSPIDによる各メモリ領域140へのアクセスの可否を容易に確認できる。また、任意のSPIDによるアクセスを疑似的に起こすことも可能であることから、ユーザプログラムの単体テストを実施するにあたって、他のプログラムからではないと設定できないメモリ領域の値を任意の値に設定したテストを、ユーザプログラムの開発者は実施できる。
以上説明した通り、本実施の形態にかかるデバッグシステム10によれば、比較例よりも容易にバグの原因を解析することが可能である。つまり、デバッグシステム10によれば、マイクロコンピュータ100の所望の動作を実現するためのデバッグを容易に行うことができる。
<実施の形態2>
次に、実施の形態2について説明する。マイクロコンピュータ100が所望の動作を実現するためには、ハイパーバイザーによるアクセス権についての設定に誤りがないことは非常に重要である。ハイパーバイザーよりも下位の階層に属するユーザプログラムの開発者は、各メモリ領域140に対する保護機能の仕様の詳細は意識せず、当該ユーザプログラムに割り当てられることになっているSPIDと、アクセスが許可されることになっているメモリ領域140についての情報とに基づいて当該ユーザプログラムの開発を行う。
また、ユーザプログラムによるアクセスがガード回路150により拒否された場合、このアクセスの失敗についてのエラーを処理するのはハイパーバイザーである。このようなことから、保護機能の仕様の詳細やエラー処理を行うプログラムの詳細については不明であるユーザプログラム開発者からすると、ハイパーバイザープログラムにミスがありためにアクセス権についての設定に誤りがある場合、ユーザプログラムが期待どおりに動かないことは、ユーザプログラムの開発に際し大きな問題である。
よって、ハイパーバイザーによるアクセス権についての設定に誤りがないことを確認するためのテストが求められる。そこで、実施の形態2にかかるデバッグシステム10は、ハイパーバイザーによるアクセス権についての設定をテストするための処理を行う。実施の形態2にかかるデバッグシステム10の構成は、実施の形態1と同様であるが、実施の形態2では、デバッグシステム10は以下のような処理を行う。
識別子設定レジスタ172には、エミュレーション装置200により、予め定められた範囲の各値が順に識別子(SPID)として設定される。エミュレーション装置200は、ハイパーバイザープログラムによるアクセス権についての設定処理が実行された後、例えば、ハイパーバイザーによって割り当てられ得るSPIDの値の範囲に属する各値を、順に識別子設定レジスタ172に設定する。これにより、例えば、識別子設定レジスタ172には、「001」、「002」、「003」、「004」といった値が順に設定される。
デバッグマスタ170は、順に設定されるSPID毎のアクセス要求をデータバス130に出力する。より詳細は、デバッグマスタ170は、順に設定されるSPID毎に、無効なバッグマスタアクセスフラグ値とSPIDとを含むアクセス要求を出力する。そして、デバッグマスタ170は、ガード回路150によるSPID毎のアクセス許否の判定結果を取得し、エミュレーション装置200に判定結果を出力する。
すなわち、上記の例を用いて説明すると、デバッグマスタ170は、SPIDが「001」であるアクセス要求、SPIDが「002」であるアクセス要求、SPIDが「003」であるアクセス要求、SPIDが「004」であるアクセス要求を順に発行し、それぞれのアクセスが成功したか否かについての判定結果を取得して、エミュレーション装置200に通知する。なお、デバッグマスタ170は、識別子設定レジスタ172に設定されたSPIDを用いて、例えば、全てのメモリ領域140に対し、順に、アクセスを行う。
デバッグマスタ170は、アクセス要求を発行するたびに、アクセス先のメモリ領域140に対応するエラーステータスレジスタ152を読み出す。エラーステータスレジスタ152の値がエラーの発生を示す状態値でない場合、デバッグマスタ170は、エミュレーション装置200に「アクセス可」を通知する。これに対し、エラーステータスレジスタ152の値がエラーの発生を示す状態値である場合、デバッグマスタ170は、エミュレーション装置200に「アクセス不可」を通知し、エラーステータスレジスタ152の値をクリアする。
エミュレーション装置200は、デバッグマスタ170から通知されたSPID毎のアクセス許否の判定結果を一覧表示する。すなわち、エミュレーション装置200の表示部204が判定結果を一覧表示する。より詳細には、図7に示すように、表示部204は、SPID及びメモリ領域毎に、アクセスが成功したか否かを一覧表示する。例えば、仕様書に規定された設定ではメモリ領域140_1へのアクセスが許可されるSPIDが「001」及び「002」であるとし、図7に示される一覧表示が行われた場合、ユーザは、SPID「002」によるメモリ領域140_1へのアクセスに失敗していることを認識することができる。すなわち、ユーザは、ハイパーバイザーによるアクセス権についての設定に誤りがあることを認識することができる。
以上説明した通り、本実施の形態にかかるデバッグシステム10では、デバッグマスタ170により各SPIDを伴うアクセスを実施することで、ハイパーバイザーにより設定された保護機能をテストし、それらアクセスの実行結果を表示することができる。このため、ハイパーバイザープログラムによるアクセス権の設定について容易にテストすることができる。また、各SPID及び各メモリ領域140についてアクセス結果を確認することができるため、ハイパーバイザープログラムにより設定された保護機能について網羅的にテストできる。このため、ハイパーバイザープログラムの品質を上げることが可能であり、その結果、ユーザプログラムのデバッグ効率の向上にも寄与する。
<実施の形態3>
次に、実施の形態3について説明する。本実施の形態は、ガード回路からデバッグマスタに対して、データバスを介してアクセスエラーの発生を通知する点で、上述の実施の形態と異なる。また、実施の形態2では、エミュレーション装置の制御のもと、アクセス権の設定についてのテストが行われたが、本実施の形態では、演算実行部の制御のもとテストが行われる。
図8は、実施の形態3にかかるデバッグシステム10の構成の一例を示すブロック図である。実施の形態3にかかるデバッグシステム10は、デバッグマスタ170がデバッグマスタ180に置き換わった点で上述の実施の形態にかかるデバッグシステム10と異なる。ここで、デバッグマスタ180は、さらにエラーフラグレジスタ181を備える点で、デバッグマスタ170と異なる。なお、以下の説明では、デバッグシステム10の構成及び動作について、上述の実施の形態と異なる点を中心に説明し、同様の点については、説明を適宜省略する。
上述の通り、本実施の形態では、ガード回路150は、アクセス許否の判定結果を、データバス130を介してデバッグマスタ180に通知する。そして、デバッグマスタ180は、通知された判定結果をエラーフラグレジスタ181に格納する。なお、本実施の形態では、判定結果の格納及び通知は、具体的には、アクセスの失敗を示す情報(エラー情報)の格納及び通知であるが、アクセスの成功を示す情報の格納及び通知であってもよい。
このような構成によれば、デバッグマスタ180は、エラーステータスレジスタ152の値を取得せずとも、デバッグマスタ180内のエラーフラグレジスタ181の値を取得することにより、アクセス可否の結果を容易に取得することができる。
ところで、例えば、アクセス要求で指定したアクセス先に対応するエラーステータスレジスタ152を特定できるようにするために、エラーステータスレジスタ152のそれぞれのアドレスをテーブルによりデバッグマスタ170が予め管理しておくことで、エラーステータスレジスタ152の値を取得することができる。しかしながら、この場合、デバッグマスタ180はそのようなテーブルを有している必要がある。
これに対し、本実施の形態では、アクセス先のメモリ領域140に対応するガード回路150から判定結果がデバッグマスタ180に通知されるため、そのようなテーブルを有さずとも、デバッグマスタ180は判定結果を取得することができる。
ここで、ガード回路150は、マイクロコンピュータ100の状態が非デバッグモードである場合、アクセス許否の判定結果をエラーステータスレジスタ152に格納し、マイクロコンピュータ100の状態がデバッグモードである場合、アクセス許否の判定結果を、エラーステータスレジスタ152への格納に代えて、データバス130を介してデバッグマスタ180に通知してもよい。すなわち、非デバッグモード時には、デバッグマスタ180へのデータバス130を介した通知は行わなくてもよい。また、デバッグモード時には、エラーステータスレジスタ152への判定結果の格納を行わなくてもよい。このようにすることで、非デバッグモード時に不要な通知が行われることを防ぐことができる。また、デバッグモード時に、アクセスエラーの発生を示す状態値がエラーステータスレジスタ152に格納されることを防ぐことができる。エラーステータスレジスタ152にアクセスエラーの発生を示す状態値が記憶されている場合、エラー処理が開始されてしまい、ユーザプログラムの所望の処理についての実行結果の経過を確認できなくなってしまう。これを回避するためには、エラーステータスレジスタ152の値をクリアする必要がある。上述のように、エラーステータスレジスタ152への値の設定に代えて、デバッグマスタ180への通知が行われることで、そのような問題を解決することができる。すなわち、エラーステータスレジスタ152にアクセスエラーの発生を示す状態値が設定されることによるエミュレーション動作への影響を、エラーステータスレジスタ152の値のクリアをせずとも、回避することが実現できる。
なお、デバッグモードとは、エミュレーション装置200(デバッガ)による処理が許可されるモードである。ガード回路150は、任意の手法により、マイクロコンピュータ100の状態がデバッグモードであるか非デバッグモードであるかを判定すればよい。例えば、マイクロコンピュータ100がデバッグモードである場合に所定の値が設定されるレジスタを参照することによりモードが判定されてもよい。
また、本実施の形態では、演算実行部110の制御のもと、アクセス権の設定についてテストするための処理を行う。なお、演算実行部110は、例えばデバッグモード時に、アクセス権の設定についてテストするための下記の処理を行う。以下、本実施の形態にかかるデバッグシステム10における、アクセス権の設定についてテストするための処理について説明する。
実施の形態2では、エミュレーション装置200の制御にしたがって、識別子設定レジスタ172には予め定められた範囲の各値が順にSPIDとして設定されたが、本実施の形態では、演算実行部110の制御にしたがって、予め定められた範囲の各値が順にSPIDとして識別子設定レジスタ172に設定される。例えば、この制御は、ハイパーバイザーの処理として実現される。すなわち、例えばCPU112がメモリ111に記憶されたハイパーバイザーを実行することにより実現される。例えば、ハイパーバイザーは、アクセス権についての設定処理の後、アクセス権の設定についてテストするための処理を行う。
デバッグマスタ180は、実施の形態2にかかるデバッグマスタ170と同様、順に設定されるSPID毎に、無効なバッグマスタアクセスフラグ値とSPIDとを含むアクセス要求を出力する。そして、演算実行部110は、デバッグマスタ180内のエラーフラグレジスタ181を参照し、ガード回路150によるSPID毎のアクセス許否の判定結果を取得する。
演算実行部110は、取得した判定結果が予め定められた合格条件を満たすか否かを検査する。この合格条件は、メモリ領域140に対する保護機能の所定の仕様に沿ってアクセス権の設定が行われた場合に満たす条件であり、例えば、アクセス不可となるアクセス数についての条件である。例えば、SPIDが「001」であるアクセスについて全てのメモリ領域140に対しアクセスを許可するよう使用が定めている場合、SPIDが「001」であるアクセスについてアクセス不可となるアクセス数としては0が期待される。すなわち、演算実行部110が取得した判定結果から算出されるSPID「001」についてのアクセス不可の件数が1以上である場合、合格条件を満たさないこととなる。なお、この合格条件は、ユーザにより入力され、例えば演算実行部110のメモリ111に予め記憶されている。本実施の形態では、合格条件に基づく検査は、ハイパーバイザーにおける処理として行われる。テストのために設定された合格条件と、これとは別にコーディングされたハイパーバイザーによる実際の設定に基づくアクセス結果とが比較されるため、アクセス権の設定の誤りを検出すること期待される。ただし、仮に、ユーザが誤った合格条件を入力した場合には、ハイパーバイザーによるアクセス権についての設定が仕様を正確に反映したものであるか否かを完全に判定することはできない。なお、演算実行部110による検査結果は、エミュレーション装置200の表示部204に表示されてもよい。
以上、実施の形態3について説明した。本実施の形態では、演算実行部110の制御のもと、テストが行われる。すなわち、マイクロコンピュータ100内の演算実行部110とデバッグマスタ180との間で、アクセス結果についての情報などの通信が行われる。このため、エミュレーション装置200との通信によるテストに比べ、より高速にデータの伝送を行うことができる。このため、エミュレーション装置200の制御のもとテストを行う場合に比べて、高速にテストを実行することができる。なお、演算実行部110とデバッグマスタ180との通信は、データバス130を介して行われてもよいし、演算実行部110とデバッグマスタ180の間で直接行われてもよい。
各実施の形態において、エミュレーション装置200による上述した処理は、例えば、メモリ202に格納されたデバッガなどのプログラムをCPU201が実行することにより実現される。また、マイクロコンピュータ100の演算実行部110による上述した処理は、例えば、メモリ111に格納されたハイパーバイザーなどのプログラムをCPU112が実行することにより実現される。なお、エミュレーション装置200における上述した処理の一部若しくは全部、又は、マイクロコンピュータ100における上述した処理の一部若しくは全部が、ハードウェア回路により実現されてもよい。
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
1、10 デバッグシステム
2 半導体装置
3、200 エミュレーション装置
4 バス
5、140 メモリ領域
6、150 ガード回路
7、51、170、180 デバッグマスタ
8、171 デバッグフラグ設定レジスタ
9、172 識別子設定レジスタ
50、100 マイクロコンピュータ
110 演算実行部
111 メモリ
112、201 CPU
120 DMAコントローラ
130 データバス
151 プロテクション設定レジスタ
152 エラーステータスレジスタ
160 接続端子
181 エラーフラグレジスタ
202 メモリ
203 入力部
204 表示部
205 インタフェース部

Claims (10)

  1. バスと、
    前記バスを介してアクセスされるメモリ領域と、
    前記バスに出力されたアクセス要求に含まれる識別子が、予め定められた許可値と一致する場合に前記メモリ領域へのアクセスを許可するガード回路と、
    デバッグフラグ設定レジスタと識別子設定レジスタとを備え、エミュレーション装置と接続可能であり、デバッグのための前記メモリ領域へのアクセスについて制御するデバッグマスタと
    を有し、
    前記デバッグマスタは、
    前記デバッグフラグ設定レジスタに設定された値が第1の値である場合、有効なフラグ値を含む前記アクセス要求を前記バスに出力し、
    前記デバッグフラグ設定レジスタに設定された値が第2の値である場合、無効なフラグ値と、前記識別子設定レジスタに設定された識別子とを含む前記アクセス要求を前記バスに出力し、
    前記ガード回路は、
    前記アクセス要求に含まれる前記フラグ値が有効である場合、前記識別子に関わらず、前記メモリ領域へのアクセスを許可し、
    前記アクセス要求に含まれる前記フラグ値が無効である場合、前記アクセス要求に含まれる前記識別子に応じて、前記メモリ領域へのアクセスを許可する
    半導体装置。
  2. 前記デバッグマスタは、
    前記エミュレーション装置により前記デバッグフラグ設定レジスタに設定された値に基づく無効な前記フラグ値と、前記エミュレーション装置により前記識別子設定レジスタに設定された前記識別子とを含む前記アクセス要求を前記バスに出力し、
    前記ガード回路によるアクセス許否の判定結果を取得し、前記エミュレーション装置に該判定結果を出力する
    請求項1に記載の半導体装置。
  3. 前記エミュレーション装置により前記識別子設定レジスタには予め定められた範囲の各値が順に前記識別子として設定され、
    前記デバッグマスタは、
    順に設定される前記識別子毎の前記アクセス要求を前記バスに出力し、
    前記ガード回路による前記識別子毎のアクセス許否の判定結果を取得し、前記エミュレーション装置に該判定結果を出力する
    請求項2に記載の半導体装置。
  4. 前記デバッグマスタは、さらに、エラーフラグレジスタを備え、
    前記ガード回路は、アクセス許否の判定結果を、前記バスを介して前記デバッグマスタに通知し、
    前記デバッグマスタは、通知された判定結果を前記エラーフラグレジスタに格納する
    請求項1に記載の半導体装置。
  5. 前記ガード回路のアクセス許否の判定結果が設定されるエラーステータスレジスタをさらに有し、
    前記ガード回路は、前記半導体装置の状態が非デバッグモードである場合、アクセス許否の判定結果を前記エラーステータスレジスタに格納し、前記半導体装置の状態がデバッグモードである場合、アクセス許否の判定結果を、前記エラーステータスレジスタへの格納に代えて、前記バスを介して前記デバッグマスタに通知する
    請求項4に記載の半導体装置。
  6. 演算実行部をさらに有し、
    前記演算実行部の制御にしたがって、前記デバッグフラグ設定レジスタには予め定められた範囲の各値が順に前記識別子として設定され、
    前記デバッグマスタは、順に設定される前記識別子毎に、無効な前記フラグ値と前記識別子とを含む前記アクセス要求を前記バスに出力し、
    前記演算実行部は、前記ガード回路による前記識別子毎のアクセス許否の判定結果を取得し、該判定結果が予め定められた合格条件を満たすか否かを検査する
    請求項1に記載の半導体装置。
  7. 半導体装置と、
    エミュレーション装置と、を備え、
    前記半導体装置は、
    バスと、
    前記バスを介してアクセスされるメモリ領域と、
    前記バスに出力されたアクセス要求に含まれる識別子が、予め定められた許可値と一致する場合に前記メモリ領域へのアクセスを許可するガード回路と、
    デバッグフラグ設定レジスタと識別子設定レジスタとを備え、前記エミュレーション装置と接続可能であり、デバッグのための前記メモリ領域へのアクセスについて制御するデバッグマスタと
    を有し、
    前記エミュレーション装置は、前記デバッグフラグ設定レジスタの値及び前記識別子設定レジスタの値を設定し、
    前記デバッグマスタは、
    前記デバッグフラグ設定レジスタに設定された値が第1の値である場合、有効なフラグ値を含む前記アクセス要求を前記バスに出力し、
    前記デバッグフラグ設定レジスタに設定された値が第2の値である場合、無効なフラグ値と、前記識別子設定レジスタに設定された識別子とを含む前記アクセス要求を前記バスに出力し、
    前記ガード回路は、
    前記アクセス要求に含まれる前記フラグ値が有効である場合、前記識別子に関わらず、前記メモリ領域へのアクセスを許可し、
    前記アクセス要求に含まれる前記フラグ値が無効である場合、前記アクセス要求に含まれる前記識別子に応じて、前記メモリ領域へのアクセスを許可する
    デバッグシステム。
  8. 前記デバッグマスタは、
    前記エミュレーション装置により前記デバッグフラグ設定レジスタに設定された値に基づく無効な前記フラグ値と、前記エミュレーション装置により前記識別子設定レジスタに設定された前記識別子とを含む前記アクセス要求を前記バスに出力し、
    前記ガード回路によるアクセス許否の判定結果を取得し、
    前記エミュレーション装置に該判定結果を出力し、
    前記エミュレーション装置は、該判定結果を表示出力する
    請求項7に記載のデバッグシステム。
  9. 前記エミュレーション装置は、受け付けた入力操作により指定された前記識別子を前記識別子設定レジスタに設定する
    請求項8に記載のデバッグシステム。
  10. 前記エミュレーション装置は、予め定められた範囲の各値を順に前記識別子として設定し、
    前記デバッグマスタは、
    順に設定される前記識別子毎に、無効な前記フラグ値と前記識別子とを含む前記アクセス要求を前記バスに出力し、
    前記デバッグマスタは、前記ガード回路による前記識別子毎のアクセス許否の判定結果を取得し、前記エミュレーション装置に該判定結果を出力し、
    前記エミュレーション装置は、前記識別子毎のアクセス許否の判定結果を一覧表示する
    請求項8に記載のデバッグシステム。
JP2017204934A 2017-10-24 2017-10-24 半導体装置及びデバッグシステム Pending JP2019079219A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017204934A JP2019079219A (ja) 2017-10-24 2017-10-24 半導体装置及びデバッグシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017204934A JP2019079219A (ja) 2017-10-24 2017-10-24 半導体装置及びデバッグシステム

Publications (1)

Publication Number Publication Date
JP2019079219A true JP2019079219A (ja) 2019-05-23

Family

ID=66626599

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017204934A Pending JP2019079219A (ja) 2017-10-24 2017-10-24 半導体装置及びデバッグシステム

Country Status (1)

Country Link
JP (1) JP2019079219A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112182548A (zh) * 2020-09-23 2021-01-05 博流智能科技(南京)有限公司 一种芯片系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112182548A (zh) * 2020-09-23 2021-01-05 博流智能科技(南京)有限公司 一种芯片系统
CN112182548B (zh) * 2020-09-23 2024-04-16 博流智能科技(南京)有限公司 一种芯片系统

Similar Documents

Publication Publication Date Title
US9910941B2 (en) Test case generation
US9262299B1 (en) Simulation observability and control of all hardware and software components of a virtual platform model of an electronics system
US11302412B2 (en) Systems and methods for simulated device testing using a memory-based communication protocol
US9262305B1 (en) Simulation observability and control of all hardware and software components of a virtual platform model of an electronics system
CN110058920B (zh) 虚拟机性能检测方法及装置、电子设备、存储介质
US9626267B2 (en) Test generation using expected mode of the target hardware device
CN106557878B (zh) 开发项目管理方法及装置
CN107272441B (zh) 用于监控错误的方法和用于监控错误的数据处理装置
US11061821B2 (en) Method, system, and apparatus for stress testing memory translation tables
US20150121127A1 (en) Watchpoint support system for functional simulator
CN108628734B (zh) 一种功能程序调试方法和终端
CN107273249B (zh) 主板测试方法、处理器和主板测试系统
US11099975B2 (en) Test space analysis across multiple combinatoric models
US20120054560A1 (en) Verifying correctness of processor transactions
JP2019079219A (ja) 半導体装置及びデバッグシステム
US20130231886A1 (en) Test apparatus and test module
US10007568B2 (en) Testing a non-core MMU
JP2011227700A (ja) 周辺機器障害模擬システム、周辺機器障害模擬方法および周辺機器障害模擬プログラム
RU2729210C1 (ru) Комплекс тестирования программного обеспечения электронных устройств
WO2012008319A1 (ja) エミュレータ検証システム、エミュレータ検証方法
JP6366811B2 (ja) 検査装置、検査方法、及び、プログラム
US10503854B1 (en) Method and system for generating validation tests
JP2012113502A (ja) 半導体集積回路の検証装置
JP2018067057A (ja) 制御プログラムの検証装置及びプログラム
US8930759B2 (en) Stream generation