説明

半導体デバイス、電子装置及びアクセスログ取得方法

【課題】 監視を必要とするアクセスに柔軟に対応してアクセスログを取得できるようにし、不要な動作による処理負担やリソースの無駄使いを無くす。
【解決手段】 半導体デバイスの各モジュール104に対しCPUI/F102を介して行うCPUアクセスを受けるアドレスデコーダ200が、本来有するCS生成部201以外に、アクセスログの取得等のログに係る動作を行うメモリ制御部202を有する。メモリ制御部202は、CPUアクセスのADDRESSデータ、WR信号及びCS信号を監視し、当該アクセスの種類が、定義されたCPUアクセスの種類のどれかを検出し、検出したアクセスがアクセスログの取得を要するアクセスの種類、例えばモジュールの特定のレジスタに対する書込みアクセス、として設定されていれば、このCPUアクセスのみアクセスログを取得する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、CPU(Central Processing Unit)アクセスが可能なモジュールを持つ半導体デバイスに関し、より詳細には、CPU内蔵の半導体デバイスであっても、モジュールに対するアクセスのログが取得でき、しかもアクセスログの取得を必要なログのみに行えるようにし、不要な動作やリソースの無駄使いを無くすことができる半導体デバイス、当該半導体デバイスを備えた電子装置及びアクセスログ取得方法に関する。
【背景技術】
【0002】
近年、CPUI/F(インターフェース)を持つ半導体デバイスが様々な電子装置に用いられている。
こうした電子装置に障害が発生したときに、従来行われている一般的な方法は、CPUのアクセス内容をトレースし、その内容を解析することにより、障害の発生原因を究明する方法である。CPUのアクセス内容のトレースは、例えば、障害発生時に、CPUI/Fに計測器を接続し、CPUI/Fを計測器で観測する方法が従来から知られている。
ただ、上記の方法は、観測するまでに、計測器を持ち込み、接続する、といった準備に手間が掛かる上に、得られた観測結果には、全てのCPUからのアクセスが存在するため、障害の発生原因となる箇所を見つける作業は、困難になる。また、CPUを内蔵するデバイスの場合、CPUI/Fに計測器が接続できないので、計測器で観測する方法を採ることは、不可能である。
【0003】
このような問題の解決を図ることが可能な方法として、CPUアクセスをアクセスログとして記録しておく方法がある。CPUからのアクセスの場合、ソフトウェアでデバイス内のメモリにCPUアクセスログとして、ログ情報を書き込む方法を採ることができる。
しかしながら、この方法によると、ログ取得処理自体がCPUを使ったメモリ書き込みであるため、本来のシステム動作を遅延させるという問題を生じる。システム動作を遅延させることは、生産性の低下を招くばかりではなく、ログを作成しない場合に発生する障害が発生しなくなったり、逆にログを作成したことで別の障害が発生したり、といった副作用による弊害も起こす。
【0004】
そこで、このような副作用を起こすことなく、アクセスログを作成する方法が、提案された。下記特許文献1は、この従来技術の1例を示すものである。
特許文献1記載のデバイスは、デバイスが用いるデータ保存場所へのCPUアクセスに対する処理と並行して、当該CPUアクセスの入力を受けてログを作成する処理を行い、前記データ保存場所をアクセスログの保存にも用いるように構成した回路とし、この構成により、CPUを内蔵するデバイスで、CPUI/Fに計測器が接続できなくても、CPUのアクセス内容のトレースができるようにしている。
【0005】
また、特許文献1記載のデバイスでは、ログを作成する処理を行うために設けたアクセス分析回路は、ログの作成機能のほか、保存の対象とするログを選択する機能を持っている。後者の機能は、作成されたログの全てを保存せず、アクセスのあったアドレスのうち、設定されたアドレスだけを保存の対象として選択する機能であり、アドレスの設定を変更できるようになっている。さらに、ソフトウェアによりレジスタの設定を変更可能とすることで、アクセス分析回路を含めたログの処理に用いる回路の動作を停止/可動させるようにしている。
【特許文献1】特開2006−11969号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、上記した従来例における、保存対象のログを選択する機能は、作成されたログから保存対象のログを選択するので、ログの保存に用いるリソースの利用効率の向上を図ることが可能になるが、ログを作成する処理の負担は、減らない。また、保存対象のログの選択条件も、アドレスのみであるから、有効性が限られてしまう。
また、上記した従来例では、アクセス分析回路を含めたログの処理に用いる回路の動作を停止/可動させることが、ソフトウェアによるレジスタの設定で変更できるが、不適合となって、設定の変更が必要になっても、ソフトウェアを書き換えるまで、そのまま動作させなければならならず、不要な動作による処理負担やリソースの無駄使い、という問題を生じる場合がある。
本発明は、メモリ、レジスタ等のモジュールに対するアクセスログを作成する回路部を有する半導体デバイスにおける上記した従来例の問題に鑑みてなされもので、解決しようとする課題は、監視を必要とするアクセスに柔軟に対応してアクセスログを取得できるようにし、不要な動作による処理負担やリソースの無駄使いを無くすことにある。
【課題を解決するための手段】
【0007】
請求項1の発明は、CPUによってアクセスされるモジュールと、前記モジュールに対するCPUアクセスをデコードするアドレスデコーダと、前記モジュールに対するアクセスにより生じるアクセスログを記憶するメモリと、前記CPUアクセスの入力を受け、該CPUアクセスのアクセスログを取得するとともに、取得したアクセスログの前記メモリに対するアクセスを制御するメモリ制御部を有する半導体デバイスであって、前記メモリ制御部は、入力されたCPUアクセスの種類を検出し、検出結果によりアクセスログの要/不要を判断し、判断に従って前記アクセスログの取得、前記メモリに対するアクセスの各動作を制御することを特徴とする。
請求項2の発明は、請求項1に記載された半導体デバイスにおいて、前記メモリ制御部は、アクセスログの要/不要を、入力されたCPUアクセスにおける所定のアドレス及びリード/ライト種別の少なくとも一方の検出にもとづいて判断することを特徴とする。
請求項3の発明は、前記モジュールの動作状態を示す内部信号を前記メモリ制御部に入力するようにした請求項1又は2に記載された半導体デバイスにおいて、前記メモリ制御部は、前記モジュールから入力される内部信号の変化を検出し、変化が検出された内部信号を当該モジュールのログとして取得することを特徴とする。
請求項4の発明は、前記メモリ制御部から前記モジュールの内部レジスタのデータを取得可能とした請求項1乃至3のいずれかに記載された半導体デバイスにおいて、前記メモリ制御部は、所定のタイミングで取得した前記モジュールの内部レジスタのデータを当該モジュールのログとして取得することを特徴とする。
請求項5の発明は、請求項1乃至4のいずれかに記載された半導体デバイスにおいて、前記メモリ制御部は、入力されたCPUアクセスにおける特定のレジスタに対するアクセスを検出し、検出結果により前記アクセスログ、前記内部信号のログ、前記内部レジスタのログの少なくとも1ログの取得の開始又は停止を判断し、判断に従って、ログの取得を開始又は停止させることを特徴とする。
請求項6の発明は、請求項3に記載された半導体デバイスにおいて、前記メモリ制御部は、入力された特定の内部信号の変化を検出し、検出結果により前記アクセスログ、前記内部信号のログ、前記内部レジスタのログの少なくとも1ログの取得の開始又は停止を判断し、判断に従って、ログの取得を開始又は停止させることを特徴とする。
請求項7の発明は、請求項4に記載された半導体デバイスにおいて、前記メモリ制御部は、取得した特定の内部レジスタにおけるデータの変化を検出し、検出結果により前記アクセスログ、前記内部信号のログ、前記内部レジスタのログの少なくとも1ログの取得の開始又は停止を判断し、判断に従って、ログの取得を開始又は停止させることを特徴とする。
請求項8の発明は、請求項1乃至7のいずれかに記載された半導体デバイスと、前記半導体デバイスの有する前記モジュールに対しCPUアクセスを行うCPUを備えた電子装置である。
請求項9の発明は、半導体デバイスが有するモジュールに対するアクセスログを取得するアクセスログ取得方法であって、前記半導体デバイスに入力された前記モジュールに対するCPUアクセスの種類を検出する工程と、検出されたCPUアクセスの種類によりアクセスログの要/不要を判断する工程と、アクセスログの要/不要の判断に従って、アクセスログの取得動作を制御する工程を有することを特徴とする。
請求項10の発明は、請求項9に記載されたアクセスログ取得方法において、前記アクセスログの要/不要を判断する工程は、入力されたCPUアクセスにおける所定のアドレス及びリード/ライト種別の少なくとも一方の検出にもとづいて、アクセスログの要/不要を判断することを特徴とする。
請求項11の発明は、請求項9又は10に記載されたアクセスログ取得方法において、前記モジュールの動作状態を示す内部信号を入力する工程と、モジュールから入力される内部信号の変化を検出する工程と、変化が検出された内部信号を当該モジュールのログとして取得する工程を有することを特徴とする。
請求項12の発明は、請求項9乃至11のいずれかに記載されたアクセスログ取得方法において、前記モジュールの内部レジスタのデータを所定のタイミングで取得する工程と、取得した前記モジュールの内部レジスタのデータを当該モジュールのログとして取得する工程を有することを特徴とする。
【発明の効果】
【0008】
本発明により、CPUアクセスのアドレスデコードと並行に、CPUアクセスの入力を受け、CPUアクセスの種類によりアクセスログの要/不要を判断し、この判断に従って、アクセスログを取得し、保存することによって、CPU内蔵のデバイスであっても、通常動作時にシステム動作に影響を与えずに、また、不要なアクセスログの取得による処理負担やリソースの無駄使いをすることなく、アクセスログが取得でき、このようにして取得したアクセスログによりログ解析を行うことで、解析効率を向上することが可能になり、さらに、従来行っていた、計測器を接続してアクセスログを解析する方法により起きる問題([背景技術]の[0002]、参照)が解消できる。
また、CPUアクセスログ以外に、変化が検出された内部信号及びモジュールの内部レジスタのデータをログとして保存することで、より詳細なログ解析ができる。
また、アクセスログ、内部信号のログ、内部レジスタのログの取得の開始又は停止を、特定のレジスタに対するアクセス、特定の内部信号の変化及び特定の内部レジスタにおけるデータの変化の検出によって、制御することで、必要なタイミングを逸することなく、不要な動作による処理負担やリソースの無駄使いをなくすことを可能にする動作を行わせ、パフォーマンスの向上を図ることができる。
【発明を実施するための最良の形態】
【0009】
以下に、本発明に係る半導体デバイス、電子装置及びアクセスログ取得方法の実施形態を説明する。
本実施形態の半導体デバイスは、半導体デバイスの有する各モジュールに対するCPUアクセスに対応するデバイス本来の動作に特徴が無く、この本来の動作に並行し、CPUアクセスの入力を受けて行うアクセスログの取得等のアクセスログに係る動作を特徴とする。従って、以下の実施形態において、アクセスログに係る構成及び動作を中心に説明をする。
【0010】
先ず、CPUのアクセスを受ける本実施形態の半導体デバイスの概要について、図1を参照して説明する。
図1に示すターゲット基板112は、図示しない電子装置の回路部を構成する部品として用いられた1基板である。
ターゲット基板112には、CPU101と、CPUアクセスを受ける半導体デバイス100及びその他のデバイス(不図示)が搭載されている。
図1に示す構成例では、CPU101が、半導体デバイス100に対し、外付けになっており、半導体デバイス100内で取得されるアクセスログを記憶する記憶装置(メモリ)がデバイス内蔵になっているが、いずれの要素も、外付け、内蔵のどちらでもよい。
【0011】
半導体デバイス100は、このデバイスを搭載する電子装置が、例えば、画像形成装置であれば、プリンタ制御用ASIC(Application Specific Integrated Circuit)といった、CPUI/Fを有するデバイスである。
半導体デバイス100は、図1に示すように、CPUI/F102、アドレスデコーダ103、モジュールA〜E104〜108、内蔵メモリ109、シリアルコントローラ110を内部に有する。
【0012】
CPUI/F102は、CPU101にCPUバスを介して接続され、CPUバスを半導体デバイス100の内部バスに変換する。
アドレスデコーダ103は、CPUI/F102を介して入力されたCPUアクセスをデコードし、モジュールA〜E104〜108へのCS(チップセレクト)を生成する。また、アドレスデコーダ103は、本実施形態の特徴構成であるアクセスログに係る動作を行う要素部(後記で詳述)を持つ。
モジュールA〜E104〜108は、デバイス内蔵モジュールで、それぞれCPUアクセス可能なレジスタを有し、アドレスデコーダ103で生成するCSで指示されるモジュールのレジスタに対し、内部バス経由でCPUアクセスが行われる。ここでは、モジュールA〜E104〜108の5モジュールを有する例を示すが、モジュール数は、いくつでも構わない。
【0013】
内蔵メモリ109は、アクセスログを格納するために用いる記憶装置である。内蔵メモリ109に格納されたアクセスログは、CPU101及び後述するターミナルPC111から直接アクセスができる。
シリアルコントローラ110は、ターミナルPC111からアドレスデコーダ103経由で内蔵メモリ109をアクセスするためのシリアルI/Fとして機能する。
ターミナルPC(Personal Computer)111は、シリアル操作・表示用のPCであり、シリアルコントローラ110を介して内蔵メモリ109にアクセスし、格納されたアクセスログのデータを取得することが可能な管理端末機である。
【0014】
ここで、アクセスログに係る動作を行うアドレスデコーダ103をより詳しく説明する。
アドレスデコーダ103は、CPUアクセスをデコードし、モジュールA〜E104〜108へのCSを生成することで、CPU101からモジュールA〜E104〜108へのアクセスを中継する基本動作のほかに、アクセスログに係る動作として、アクセスログの取得、アクセスログを格納する内蔵メモリ109に対するアクセス等の動作を行う。なお、内蔵メモリ109に対するアクセスは、取得したアクセスログの書き込みと、格納されたアクセスログの読み出しである。
【0015】
図2は、アクセスログに係る動作を行うアドレスデコーダの1実施形態を示す図である。
この実施形態では、CPUアクセスの入力を受けて、アクセスログを取得する基本動作を行う実施形態(以下、「実施形態1」という)を示す。
図2に示す構成例では、アドレスデコーダ200は、アドレスデコーダが本来有するCS生成部201以外に、アクセスログに係る動作を行うメモリ制御部202を有する。なお、アドレスデコーダ200は、図1の構成では、アドレスデコーダ103に当たる。
CS生成部201は、CPUI/F102を介して入力されたCPUアクセスのADDRESSデータ、WR(ライト リード)信号及びCS信号をもとに、デコードし、内部モジュールへのCS信号等を生成する。
【0016】
メモリ制御部202は、アクセスログに係る1の動作として、CPUアクセスの入力を受け、アクセスログを所定のフォーマットで取得する動作を行う。また、アクセスログに係る他の動作として、内蔵メモリ109に対するアクセス制御を行う。即ち、取得したアクセスログ等を内蔵メモリ109に記憶させるライト(書込み)アクセスと、内蔵メモリ109に記憶したアクセスログをシリアルコントローラ110を介してターミナルPC111が行うリード(読出し)アクセスを行う。なお、この実施形態では、内蔵メモリ109のアクセスログのデータは、シリアルコントローラ110を介してシリアルからのみ読出せる構成であるが、CPUI/F102を介しても読出せる構成であってもよい。
【0017】
本実施形態においては、入力されたCPUアクセスのうち、必要なアクセスのみアクセスログを取得する。
アクセスログの取得の要/不要を定めるCPUアクセスのカテゴリは、ここでは、ルールで定めたCPUアクセスの種類とする。なお、CPUアクセスの種類を定めるルールについては、後述する。また、ルールで定めたCPUアクセスの種類に対応して、アクセスログの要/不要が設定できるようにする。
上記した原則に従い、必要なCPUアクセスのみアクセスログを取得するため、メモリ制御部202は、CPUI/F102を介して入力されるCPUアクセスのADDRESSデータ、WR(ライト リード)信号及びCS信号を監視し、当該アクセスの種類が、定義されたCPUアクセスの種類のどれであるかを検出する。また、この検出結果から、アクセスログの取得を要するアクセスの種類であるか、否かを判断し、必要と判断されたCPUアクセスのみアクセスログを取得する。
【0018】
アクセスログの取得が必要と判断されたCPUアクセスは、データ或いは信号としてメモリ制御部202に取り込まれ、アクセスログを取得するために用いられる。つまり、CPUアクセスは、メモリ制御部202内で一定のフォーマットに変換され、内蔵メモリ109にアクセスログとして記憶される。
図3は、フォーマット化されたアクセスログの1例を示す図である。この例では、1アクセス単位のアクセスログは、9byte(バイト)=72bit(ビット)のログデータで表される。
【0019】
図3に示すフォーマットのアクセスログの内容は、下記の<データフォーマット>に示す情報量(bit)を持つ属性データ「ログ種別」「R/W種別」「H/L種別」「ADDRESS」「DATA」よりなる。なお、このフォーマットは、後述する実施形態2において、内部信号ログ及び内部レジスタログを付加した場合に適用するもので、CPUアクセスログに係る実施形態1では、下記<データフォーマット>の※にコメントするように、「H/L種別」は、無効である。
<データフォーマット>
ログ種別(2bit)
00:CPUアクセスログ
01:内部信号ログ
10:内部レジスタログ
11:Reserve
R/W種別(1bit)
0:リード
1:ライト
※CPUアクセスログ時のみ有効
H/L種別(1bit)
0:Lに変化
1:Hに変化
※内部信号ログ時のみ有効
ADDRESS(32bit)
CPUアクセスログ時:アクセスアドレスを格納
内部信号ログ時:内部信号ナンバーを格納 ※予め内部信号に割り当てた番号
内部レジスタログ時:内部レジスタのアドレスを格納
DATA(32bit)
CPUアクセスログ時:転送データを格納
内部信号ログ時:無効
内部レジスタログ時:内部レジスタのデータを格納
【0020】
また、図2のメモリ制御部202は、シリアルコントローラ110を通して行われる内蔵メモリ109に対するアクセスを中継する。
メモリ制御部202には、CPUアクセスログを内蔵メモリ109に書込むためのパスと、シリアルコントローラ110を通して行われるアクセスログを読出すためのパスとを切替えるセレクタを内蔵する。
内蔵メモリ109が、1ポートRAM(Random Access Memory)の構成では、アクセスログの取得中にシリアルコントローラ110からのアクセスがあると、内蔵メモリ109のアクセス競合が起きて、アクセスログの取得を滞りなく行うことができないので、シリアルコントローラ110からのアクセスは、システム動作終了後に実施する必要がある。
他方、内蔵メモリ109が2ポートRAMの構成(不図示)では、アクセスログの取得中にシリアルコントローラ110からのリードアクセスがあっても、内蔵メモリ109の競合が起きないので、アクセスログの取得中にシリアルコントローラ110からのアクセスを許容できる。何れの構成でも良いが、アクセスログを取りこぼさないようなシステムであることが必要条件である。
【0021】
ここで、アクセスログの取得の要/不要を設定することで、必要なアクセスログのみを取得するCPUアクセスの種類を定めるルールについて説明する。
本実施形態では、入力されるCPUアクセスのADDRESSデータ、WR(ライト リード)信号及びCS信号によって判断するアクセスの種類であり、下記の例1〜3に示すルールを採用できる。この例では、アクセスログの取得を必要とするアクセスをルールにより定め、その他のアクセスは、アクセスログの取得を不要とする。
例1:「上限ログ取得アドレス」と「下限ログ取得アドレス」の領域内であること。
例2:WR信号のR(リードアクセス)又はW(ライトアクセス)のいずれか一方を定めること。
例3:「アドレスバリッドレジスタ」で1をセットされているビットと対応する「アドレス設定レジスタ」の設定アドレスを持つこと。
なお、上記の例3を解説すると、例えば、
「アドレスバリッドレジスタ」=0x11110000
「アドレス設定レジスタ」 =0x10101100
とレジスタが設定されている場合、入力されたCPUアクセスが0x1010xxxx(なお、xは、Don't Careである)であれば、アクセスログの取得を必要とする。つまり、0x10100011は、アクセスログの取得を必要とするが、0x10111100はアクセスログの取得を必要としない、という判断になる。
【0022】
上記の例1〜3の定義に従うデータをCS生成部201のレジスタに用意し、いずれかに該当すること、或いは、同時に幾つかに該当することを条件に、アクセスログの取得を必要とするアクセスであると判断し、それぞれの取得動作を行わせる。
従って、内蔵メモリ109には、アクセスログの取得を必要とするアクセスのみのログデータが記憶される。
このようにして、アクセスログの取得を行うことで、記憶装置の容量を低減し、デバイス(システム)のコストを低減する。また、必要なログのみ取得できるので、ログ解析の効率が向上する。
【0023】
上記した例2のルールで、CPUライトアクセスをアクセスログの取得を必要とするアクセスとした場合、このCPUアクセスを受けるメモリ制御部202の動作は、次のようになる。
図4は、CPUライトアクセスのアクセスログ取得動作におけるタイミングチャートを示す。
メモリ制御部202は、クロックCLKの所定のタイミングで、図4の<CPUI/Fからの入力>に示すCS信号:CS=Low、かつWR信号:WR=Lowを条件に、ライトアクセスを検出し、そのタイミングで「ADDRESS」、「DATA_I」、「W/R種別」の各データをラッチする。
次のクロック CLK で、図4中に矢印で示すように、<内蔵メモリへの出力>に移行し、内蔵メモリ109に、「ADDRESS」、「DATA_I」、「W/R種別」の各データをバースト転送でライトする。
【0024】
内蔵メモリ109にライトするデータは、図3に示したデータフォーマットに従うとすると、1アクセス単位のアクセスログは、9byteのデータであるから、例えば、内蔵メモリ109のデータバス幅が、4byteの場合は、3回のバースト転送で、メモリへのライトを済ませることができる。
内蔵メモリ109にライトした後は、メモリ制御部202のアドレスカウンタを9byte分加算し、次のアクセスに備える。
メモリ制御部202のアドレスカウンタの初期値は“0”とするのが一般的であり、アドレスカウンタがメモリ容量を超えた場合の処理については、
・先頭アドレスに戻って上書き
・ログ取得を中止
の2様の動作が考えられるが、ここでは、特に規定しない。
【0025】
CPUリードアクセスを受けるメモリ制御部202は、このアクセスのアクセスログ取得動作におけるタイミングチャートを示す図5に示す動作を行う。
CPUリードアクセス時に、メモリ制御部202は、クロックCLKの所定のタイミングで検出するWR信号:WR=Lowが2クロックの期間、続いて検出されないことを条件に、リードアクセスを検出し、そのタイミングで「ADDRESS」、「DATA_I」、「W/R種別」の各データをラッチする。
ラッチしたデータをアクセスログとして内蔵メモリ109へライトする動作は、上記したCPUライトアクセスのアクセスログ取得動作(図4)におけるライト動作と同じである。
【0026】
次に、アクセスログに係る動作を行うアドレスデコーダの他の実施形態を示す。
上記した実施形態1によって、CPUアクセスのうち、必要なアクセスのログのみを取得することができる動作を行う実施形態を示した。ただ、より詳細なログ解析を行うためには、CPUアクセスだけではなく、ハードウェアの動作との関連の解析を可能とする内部信号として、モジュールA〜E104〜108の動作状態を示す信号をログとして、保存しておくことが必要である。
そこで、この実施形態では、モジュールA〜E104〜108の動作状態を示す内部信号の入力を受けて、ログを取得する動作を行う実施形態(以下、「実施形態2」という)を示す。
【0027】
図6は、モジュールの動作状態を示す内部信号のログに係る動作を行うアドレスデコーダの1実施形態を示す図である。
ここでは、メモリ制御部702は、モジュールA〜E104〜108の動作状態を示す内部信号の変化を検出し、変化が検出された内部信号を当該モジュールのログとして、先の実施形態1でアクセスログに適用するデータフォーマットとして示したログ(図3)の一部に加えて保存する。
この動作を行うため、図6に示すように、メモリ制御部702には、モジュールA〜E104〜108からの内部信号が入力されている。
【0028】
なお、図6に示すアドレスデコーダ700は、実施形態1に示したCPUアクセスのアクセスログに係る動作を行うアドレスデコーダ200をベースにしているので、実施形態1のアドレスデコーダ200の機能を持つ。
また、図6のアドレスデコーダ700において、メモリ制御部702とCS生成部701の間にデータや信号を送受するラインが示されているが、これは、後述する実施形態に関係する構成である。
【0029】
メモリ制御部702は、モジュールA〜E104〜108の動作状態を示す内部信号の変化を内部信号ごとに検出し、信号が変化したとき、ログ情報に検出された内部信号を内部信号ナンバーにより特定するとともに、信号が L:Low 又は H:high のどちらに変化したかを示し、内蔵メモリ109にログとして書込む。
このログを取得する際に、信号毎にログ取得の有効/無効の設定ができるようにすると、効率化を図ることができる。例えば、CS生成部701に設けた内部レジスタで信号の有効ビットをセットするか否かを設定する方法が考えられる。有効ビットをセットすることにより、無駄なログの取得を避け、パフォーマンスを高めることができる。
【0030】
メモリ制御部702は、ログ取得有効と設定された内部信号の状態が変化した際に、先の実施形態1で示したデータフォーマット(図3)に従って、内蔵メモリ109にログ情報を書込む。
図3の<データフォーマット>において、モジュールの動作状態を示す内部信号のログは、下記の属性データのアンダーラインで示すデータが該当する。
<データフォーマット>
ログ種別(2bit)
00:CPUアクセスログ
01:内部信号ログ
10:内部レジスタログ
11:Reserve
R/W種別(1bit)
0:リード
1:ライト
※CPUアクセスログ時のみ有効
H/L種別(1bit)
0:Lに変化
1:Hに変化
※内部信号ログ時のみ有効
ADDRESS(32bit)
CPUアクセスログ時:アクセスアドレスを格納
内部信号ログ時:内部信号ナンバーを格納 ※予め内部信号に割り当てた番号
内部レジスタログ時:内部レジスタのアドレスを格納
DATA(32bit)
CPUアクセスログ時:転送データを格納
内部信号ログ時:無効
内部レジスタログ時:内部レジスタのデータを格納
【0031】
ところで、実施形態2の動作は、実施形態1の動作に重なり、内部信号のログの書込みと、CPUアクセスログの取得時の内蔵メモリ109のアクセスとで競合が起きることが考えられるので、競合が起きないように、実装上の工夫が必要である。例えば、CPUアクセスは、数マイクロ秒以上の間隔であると分かっているので、CPUアクセスが発生した直後に、内部信号の情報を内蔵メモリにライトする等により、競合を回避することができる。
上記のように、内部信号の状態変化を示すログとCPUアクセスログとを時系列で蓄積することで、ソフトウェアとハードウェアの関連を解析することができるので、より詳細なログ解析ができる。
【0032】
次に、アクセスログに係る動作を行うアドレスデコーダのさらに他の実施形態を示す。
より詳細なログ解析を行うためには、上記実施形態1のCPUアクセスのログ及び実施形態2の内部信号の状態変化を示すログだけではなく、デバイスの内部状態との関連の解析を可能とするデータとして、CS生成部内のレジスタの状態等のデバイスの内部状態を示すレジスタのデータをログとして(以下、このログを「内部レジスタログ」という)、保存しておくことが必要である。
そこで、この実施形態では、内部レジスタログを取得する動作を行う実施形態(以下、「実施形態3」という)を示す。
【0033】
内部レジスタログを取得する動作を行う本実施形態のアドレスデコーダの1実施形態について、再び図6を参照して説明する。
図6に示すアドレスデコーダ700のメモリ制御部702には、CS生成部701との間で制御信号、アドレス、データの送受信ができるように、通信ラインで接続されており、この通信手段を用いて、CS生成部701内に設けたレジスタを自動的にポーリングし、レジスタに格納されているデータを取込むことで、レジスタの状態を示すデータをログとして取得し、内蔵メモリ109に記録する。
【0034】
CS生成部701内のレジスタのポーリングは、メモリ制御部702に、例えば、ポーリングすべきレジスタアドレスとポーリング周期を設定する方法を採ることで、ログの取得動作を変更することができる。
メモリ制御部702は、ポーリングすべきレジスタアドレスとポーリング周期に従ってレジスタをポーリングし、レジスタの状態を示すデータを取得する。取得したレジスタのデータ及びレジスタのアドレスを当該レジスタのログとして、先の実施形態1でアクセスログに適用するデータフォーマットとして示したログ(図3)の一部に加えて内蔵メモリ19に保存する。
【0035】
図3の<データフォーマット>において、CS生成部内のレジスタの状態を示すレジスタのデータのログは、下記の属性データのアンダーラインで示すデータが該当する。
<データフォーマット>
ログ種別(2bit)
00:CPUアクセスログ
01:内部信号ログ
10:内部レジスタログ
11:Reserve
R/W種別(1bit)
0:リード
1:ライト
※CPUアクセスログ時のみ有効
H/L種別(1bit)
0:Lに変化
1:Hに変化
※内部信号ログ時のみ有効
ADDRESS(32bit)
CPUアクセスログ時:アクセスアドレスを格納
内部信号ログ時:内部信号ナンバーを格納 ※予め内部信号に割り当てた番号
内部レジスタログ時:内部レジスタのアドレスを格納
DATA(32bit)
CPUアクセスログ時:転送データを格納
内部信号ログ時:無効
内部レジスタログ時:内部レジスタのデータを格納
【0036】
ところで、実施形態3の動作は、実施形態1の動作に重なり、内部レジスタログの書込みと、CPUアクセスログの取得時の内蔵メモリ109のアクセスとで競合が起きることが考えられるので、競合が起きないように、実装上の工夫が必要である。例えば、CPUアクセスは、数マイクロ秒以上の間隔であると分かっているので、CPUアクセスが発生した直後に、内部レジスタをポーリングすることで、競合を回避することができる。
上記のように、内部レジスタログとCPUアクセスログとを時系列で蓄積することで、ソフトウェアとハードウェアの関連を解析することができるので、より詳細なログ解析ができる。
【0037】
次に、ログの取得動作の開始又は停止制御に関する実施形態を説明する。
CPUアクセスのログ処理回路において、回路動作の停止/可動制御は、従来、ソフトウェアによるレジスタの設定で行っていたため、動作に不適合を感じても、ソフトウェアを書換えるまで、動作を変更できないので、不要な動作による処理負担やリソースの無駄使い、といった点で問題が生じる。
【0038】
そこで、必要なタイミングを逸することなく、不要な動作による処理負担やリソースの無駄使いをなくすための制御方法を導入し、上記の問題の解消を図るようにする。
以下には、上記実施形態1〜3に示した、CPUアクセスのログ、内部信号のログ、内部レジスタログの各取得動作に適応した開始/停止制御をそれぞれ、「開始/停止制御(1)」〜「開始/停止制御(3)」として、説明する。
【0039】
「開始/停止制御(1)」
本実施形態のログの取得動作の開始/停止制御は、CPUアクセスのログの取得動作に適応した形態で、デバイス内の特定のレジスタに対するアクセスの発生をトリガーとして、開始/停止制御を行う方法を採る。
メモリ制御部202,702は、トリガーとする特定のCPUアクセスを検出する手段を持ち、検出結果に従い、アクセスログの取得動作を開始/停止する。
【0040】
トリガーとする特定のCPUアクセスは、例えば、CS生成部201,701のレジスタに、特定のCPUアクセスのアドレス、及び開始/停止制御の動作種別等の設定データを書込むことにより、設定する。
レジスタの設定は、CPUアクセスの入力時に、入力アクセスが、設定された特定のCPUアクセスに該当するか、否かを判断するために参照される。また、レジスタの設定データを書換えることで、ログの取得動作の開始/停止動作を変更することができる。
【0041】
また、図6の構成のように、CPUアクセスログ、内部信号のログ、及び内部レジスタのログを取得できる場合には、予めどのログ取得動作に開始/停止制御を適用するかを設定しておくことで、動作を最適化できる。この設定は、CPUアクセスログ、内部信号のログ、及び内部レジスタのログのいずれか、又はこれらのログのうちの複数のログに適用してもよい。
なお、トリガーとなったCPUアクセスは、このアクセスによりログ取得動作の開始/停止制御が行われるが、いずれの場合にも、ログとして取得しておくことが望ましい。
上記の制御によって、必要なタイミングを逸することなく、ログ取得動作の開始/停止を行うことができ、また、不要な動作による処理負担やリソースの無駄使いをなくすことで、パフォーマンスの向上を図ることができる。
【0042】
「開始/停止制御(2)」
本実施形態のログの取得動作の開始/停止制御は、内部信号のログの取得動作に適応した形態で、デバイス内の特定の内部信号の変化をトリガーとして、開始/停止制御を行う方法を採る。この方法は、図6に示したデバイスのように、メモリ制御部702に、モジュールA〜E104〜108からの内部信号が入力されている構成に採用できる方法である。
メモリ制御部702は、トリガーとする特定の内部信号の変化を検出する手段を持ち、検出結果に従い、アクセスログの取得動作を開始/停止する。なお、メモリ制御部702は、上記実施形態2に示したように、内部信号の変化を検出する手段を持っているので、ここでは、特定の内部信号であるか、否かを判断する手段を付加して持つ。
【0043】
トリガーとする特定の内部信号の変化は、例えば、CS生成部701のレジスタに、特定の内部信号、及び開始/停止制御の動作種別等の設定データを書込むことにより、設定する。
レジスタの設定は、モジュールA〜E104〜108からの内部信号の入力時に、変化が検出された入力内部信号が、設定された特定の内部信号に該当するか、否かを判断するために参照される。また、レジスタの設定データを書換えることで、ログの取得動作の開始/停止動作を変更することができる。
【0044】
また、図6の構成のように、CPUアクセスログ、内部信号のログ、及び内部レジスタのログを取得できる場合には、予めどのログ取得動作に開始/停止制御を適用するかを設定しておくことで、動作を最適化できる。この設定は、CPUアクセスログ、内部信号のログ、及び内部レジスタのログのいずれか、又はこれらのログのうちの複数のログに適用してもよい。
なお、トリガーとなった特定の内部信号の変化は、この変化によりログ取得動作の開始/停止制御が行われるが、いずれの場合にも、ログとして取得しておくことが望ましい。
上記の制御によって、必要なタイミングを逸することなく、ログ取得動作の開始/停止を行うことができ、また、不要な動作による処理負担やリソースの無駄使いをなくすことで、パフォーマンスの向上を図ることができる。
【0045】
「開始/停止制御(3)」
本実施形態のログの取得動作の開始/停止制御は、内部レジスタログの取得動作に適応した形態で、デバイス内の特定の内部レジスタにおけるデータの変化をトリガーとして、開始/停止制御を行う方法を採る。この方法は、図6に示したデバイスのように、通信手段を用いて、CS生成部701内に設けたレジスタを自動的にポーリングし、レジスタに格納されているデータをメモリ制御部702に取込むことができる構成に採用できる方法である。
メモリ制御部702は、トリガーとする特定の内部レジスタにおけるデータの変化を検出する手段を持ち、検出結果に従い、アクセスログの取得動作を開始/停止する。なお、メモリ制御部702は、上記実施形態3に示したように、内部レジスタにおけるデータの変化を検出する手段を持っているので、ここでは、特定の内部レジスタであるか、否かを判断する手段を付加して持つ。
【0046】
トリガーとする特定の内部レジスタにおけるデータの変化は、例えば、CS生成部701のレジスタに、特定の内部レジスタのアドレス、及び開始/停止制御の動作種別等の設定データを書込むことにより、設定する。
レジスタの設定は、CS生成部701のレジスタのデータをポーリングする時に、変化が検出されたレジスタが、設定された特定の内部レジスタに該当するか、否かを判断するために参照される。また、レジスタの上記設定データを書換えることで、ログの取得動作の開始/停止動作を変更することができる。
【0047】
また、図6の構成のように、CPUアクセスログ、内部信号のログ、及び内部レジスタのログを取得できる場合には、予めどのログ取得動作に開始/停止制御を適用するかを設定しておくことで、動作を最適化できる。この設定は、CPUアクセスログ、内部信号のログ、及び内部レジスタのログのいずれか、又はこれらのログのうちの複数のログに適用してもよい。
なお、トリガーとなった特定の内部レジスタにおけるデータの変化は、この変化によりログ取得動作の開始/停止制御が行われるが、いずれの場合にも、ログとして取得しておくことが望ましい。
上記の制御によって、必要なタイミングを逸することなく、ログ取得動作の開始/停止を行うことができ、また、不要な動作による処理負担やリソースの無駄使いをなくすことで、パフォーマンスの向上を図ることができる。
【図面の簡単な説明】
【0048】
【図1】本発明の実施形態に係る半導体デバイスの概略構成を示す図である。
【図2】アクセスログに係る動作を行う半導体デバイス(図1、参照)内のアドレスデコーダの1実施形態を示す図である。
【図3】フォーマット化されたログデータの1例を示す図である。
【図4】CPUライトアクセスのアクセスログ取得動作におけるタイミングチャートを示す図である。
【図5】CPUリードアクセスのアクセスログ取得動作におけるタイミングチャートを示す図である。
【図6】アクセスログに係る動作を行う半導体デバイス(図1、参照)内のアドレスデコーダの他の実施形態を示す図である。
【符号の説明】
【0049】
100・・半導体デバイス、101・・CPU(Central Processing Unit)、102・・CPUI/F(インターフェース)、103,200,700・・アドレスデコーダ、104〜108・・モジュールA〜E、109・・内蔵メモリ、110・・シリアルコントローラ、111・・ターミナルPC、201,701・・CS生成部、202,702・・メモリ制御部。

【特許請求の範囲】
【請求項1】
CPUによってアクセスされるモジュールと、前記モジュールに対するCPUアクセスをデコードするアドレスデコーダと、前記モジュールに対するアクセスにより生じるアクセスログを記憶するメモリと、前記CPUアクセスの入力を受け、該CPUアクセスのアクセスログを取得するとともに、取得したアクセスログの前記メモリに対するアクセスを制御するメモリ制御部を有する半導体デバイスであって、
前記メモリ制御部は、入力されたCPUアクセスの種類を検出し、検出結果によりアクセスログの要/不要を判断し、判断に従って前記アクセスログの取得、前記メモリに対するアクセスの各動作を制御することを特徴とする半導体デバイス。
【請求項2】
請求項1に記載された半導体デバイスにおいて、
前記メモリ制御部は、アクセスログの要/不要を、入力されたCPUアクセスにおける所定のアドレス及びリード/ライト種別の少なくとも一方の検出にもとづいて判断することを特徴とする半導体デバイス。
【請求項3】
前記モジュールの動作状態を示す内部信号を前記メモリ制御部に入力するようにした請求項1又は2に記載された半導体デバイスにおいて、
前記メモリ制御部は、前記モジュールから入力される内部信号の変化を検出し、変化が検出された内部信号を当該モジュールのログとして取得することを特徴とする半導体デバイス。
【請求項4】
前記メモリ制御部から前記モジュールの内部レジスタのデータを取得可能とした請求項1乃至3のいずれかに記載された半導体デバイスにおいて、
前記メモリ制御部は、所定のタイミングで取得した前記モジュールの内部レジスタのデータを当該モジュールのログとして取得することを特徴とする半導体デバイス。
【請求項5】
請求項1乃至4のいずれかに記載された半導体デバイスにおいて、
前記メモリ制御部は、入力されたCPUアクセスにおける特定のレジスタに対するアクセスを検出し、検出結果により前記アクセスログ、前記内部信号のログ、前記内部レジスタのログの少なくとも1ログの取得の開始又は停止を判断し、判断に従って、ログの取得を開始又は停止させることを特徴とする半導体デバイス。
【請求項6】
請求項3に記載された半導体デバイスにおいて、
前記メモリ制御部は、入力された特定の内部信号の変化を検出し、検出結果により前記アクセスログ、前記内部信号のログ、前記内部レジスタのログの少なくとも1ログの取得の開始又は停止を判断し、判断に従って、ログの取得を開始又は停止させることを特徴とする半導体デバイス。
【請求項7】
請求項4に記載された半導体デバイスにおいて、
前記メモリ制御部は、取得した特定の内部レジスタにおけるデータの変化を検出し、検出結果により前記アクセスログ、前記内部信号のログ、前記内部レジスタのログの少なくとも1ログの取得の開始又は停止を判断し、判断に従って、ログの取得を開始又は停止させることを特徴とする半導体デバイス。
【請求項8】
請求項1乃至7のいずれかに記載された半導体デバイスと、前記半導体デバイスの有する前記モジュールに対しCPUアクセスを行うCPUを備えた電子装置。
【請求項9】
半導体デバイスが有するモジュールに対するアクセスのアクセスログを取得するアクセスログ取得方法であって、
前記半導体デバイスに入力された前記モジュールに対するCPUアクセスの種類を検出する工程と、
検出されたCPUアクセスの種類によりアクセスログの要/不要を判断する工程と、
アクセスログの要/不要の判断に従って、アクセスログの取得動作を制御する工程を有することを特徴とするアクセスログ取得方法。
【請求項10】
請求項9に記載されたアクセスログ取得方法において、
前記アクセスログの要/不要を判断する工程は、入力されたCPUアクセスにおける所定のアドレス及びリード/ライト種別の少なくとも一方の検出にもとづいて、アクセスログの要/不要を判断することを特徴とするアクセスログ取得方法。
【請求項11】
請求項9又は10に記載されたアクセスログ取得方法において、
前記モジュールの動作状態を示す内部信号を入力する工程と、
モジュールから入力される内部信号の変化を検出する工程と、
変化が検出された内部信号を当該モジュールのログとして取得する工程を有することを特徴とするアクセスログ取得方法。
【請求項12】
請求項9乃至11のいずれかに記載されたアクセスログ取得方法において、
前記モジュールの内部レジスタのデータを所定のタイミングで取得する工程と、
取得した前記モジュールの内部レジスタのデータを当該モジュールのログとして取得する工程を有することを特徴とするアクセスログ取得方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate