(57)【要約】【課題】  監視を必要とするアクセスに柔軟に対応してアクセスログを取得できるようにし、不要な動作による処理負担やリソースの無駄使いを無くす。【解決手段】  半導体デバイスの各モジュール１０４に対しＣＰＵＩ／Ｆ１０２を介して行うＣＰＵアクセスを受けるアドレスデコーダ２００が、本来有するＣＳ生成部２０１以外に、アクセスログの取得等のログに係る動作を行うメモリ制御部２０２を有する。メモリ制御部２０２は、ＣＰＵアクセスのADDRESSデータ、WR信号及びCS信号を監視し、当該アクセスの種類が、定義されたＣＰＵアクセスの種類のどれかを検出し、検出したアクセスがアクセスログの取得を要するアクセスの種類、例えばモジュールの特定のレジスタに対する書込みアクセス、として設定されていれば、このＣＰＵアクセスのみアクセスログを取得する。【選択図】      図２
2008287319.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵによってアクセスされるモジュールと、前記モジュールに対するＣＰＵアクセスをデコードするアドレスデコーダと、前記モジュールに対するアクセスにより生じるアクセスログを記憶するメモリと、前記ＣＰＵアクセスの入力を受け、該ＣＰＵアクセスのアクセスログを取得するとともに、取得したアクセスログの前記メモリに対するアクセスを制御するメモリ制御部を有する半導体デバイスであって、
前記メモリ制御部は、入力されたＣＰＵアクセスの種類を検出し、検出結果によりアクセスログの要／不要を判断し、判断に従って前記アクセスログの取得、前記メモリに対するアクセスの各動作を制御することを特徴とする半導体デバイス。
【請求項２】
請求項１に記載された半導体デバイスにおいて、
前記メモリ制御部は、アクセスログの要／不要を、入力されたＣＰＵアクセスにおける所定のアドレス及びリード／ライト種別の少なくとも一方の検出にもとづいて判断することを特徴とする半導体デバイス。
【請求項３】
前記モジュールの動作状態を示す内部信号を前記メモリ制御部に入力するようにした請求項１又は２に記載された半導体デバイスにおいて、
前記メモリ制御部は、前記モジュールから入力される内部信号の変化を検出し、変化が検出された内部信号を当該モジュールのログとして取得することを特徴とする半導体デバイス。
【請求項４】
前記メモリ制御部から前記モジュールの内部レジスタのデータを取得可能とした請求項１乃至３のいずれかに記載された半導体デバイスにおいて、
前記メモリ制御部は、所定のタイミングで取得した前記モジュールの内部レジスタのデータを当該モジュールのログとして取得することを特徴とする半導体デバイス。
【請求項５】
請求項１乃至４のいずれかに記載された半導体デバイスにおいて、
前記メモリ制御部は、入力されたＣＰＵアクセスにおける特定のレジスタに対するアクセスを検出し、検出結果により前記アクセスログ、前記内部信号のログ、前記内部レジスタのログの少なくとも１ログの取得の開始又は停止を判断し、判断に従って、ログの取得を開始又は停止させることを特徴とする半導体デバイス。
【請求項６】
請求項３に記載された半導体デバイスにおいて、
前記メモリ制御部は、入力された特定の内部信号の変化を検出し、検出結果により前記アクセスログ、前記内部信号のログ、前記内部レジスタのログの少なくとも１ログの取得の開始又は停止を判断し、判断に従って、ログの取得を開始又は停止させることを特徴とする半導体デバイス。
【請求項７】
請求項４に記載された半導体デバイスにおいて、
前記メモリ制御部は、取得した特定の内部レジスタにおけるデータの変化を検出し、検出結果により前記アクセスログ、前記内部信号のログ、前記内部レジスタのログの少なくとも１ログの取得の開始又は停止を判断し、判断に従って、ログの取得を開始又は停止させることを特徴とする半導体デバイス。
【請求項８】
請求項１乃至７のいずれかに記載された半導体デバイスと、前記半導体デバイスの有する前記モジュールに対しＣＰＵアクセスを行うＣＰＵを備えた電子装置。
【請求項９】
半導体デバイスが有するモジュールに対するアクセスのアクセスログを取得するアクセスログ取得方法であって、
前記半導体デバイスに入力された前記モジュールに対するＣＰＵアクセスの種類を検出する工程と、
検出されたＣＰＵアクセスの種類によりアクセスログの要／不要を判断する工程と、
アクセスログの要／不要の判断に従って、アクセスログの取得動作を制御する工程を有することを特徴とするアクセスログ取得方法。
【請求項１０】
請求項９に記載されたアクセスログ取得方法において、
前記アクセスログの要／不要を判断する工程は、入力されたＣＰＵアクセスにおける所定のアドレス及びリード／ライト種別の少なくとも一方の検出にもとづいて、アクセスログの要／不要を判断することを特徴とするアクセスログ取得方法。
【請求項１１】
請求項９又は１０に記載されたアクセスログ取得方法において、
前記モジュールの動作状態を示す内部信号を入力する工程と、
モジュールから入力される内部信号の変化を検出する工程と、
変化が検出された内部信号を当該モジュールのログとして取得する工程を有することを特徴とするアクセスログ取得方法。
【請求項１２】
請求項９乃至１１のいずれかに記載されたアクセスログ取得方法において、
前記モジュールの内部レジスタのデータを所定のタイミングで取得する工程と、
取得した前記モジュールの内部レジスタのデータを当該モジュールのログとして取得する工程を有することを特徴とするアクセスログ取得方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵ（Central Processing Unit）アクセスが可能なモジュールを持つ半導体デバイスに関し、より詳細には、ＣＰＵ内蔵の半導体デバイスであっても、モジュールに対するアクセスのログが取得でき、しかもアクセスログの取得を必要なログのみに行えるようにし、不要な動作やリソースの無駄使いを無くすことができる半導体デバイス、当該半導体デバイスを備えた電子装置及びアクセスログ取得方法に関する。
【背景技術】
【０００２】
近年、ＣＰＵＩ／Ｆ（インターフェース）を持つ半導体デバイスが様々な電子装置に用いられている。
こうした電子装置に障害が発生したときに、従来行われている一般的な方法は、ＣＰＵのアクセス内容をトレースし、その内容を解析することにより、障害の発生原因を究明する方法である。ＣＰＵのアクセス内容のトレースは、例えば、障害発生時に、ＣＰＵＩ／Ｆに計測器を接続し、ＣＰＵＩ／Ｆを計測器で観測する方法が従来から知られている。
ただ、上記の方法は、観測するまでに、計測器を持ち込み、接続する、といった準備に手間が掛かる上に、得られた観測結果には、全てのＣＰＵからのアクセスが存在するため、障害の発生原因となる箇所を見つける作業は、困難になる。また、ＣＰＵを内蔵するデバイスの場合、ＣＰＵＩ／Ｆに計測器が接続できないので、計測器で観測する方法を採ることは、不可能である。
【０００３】
このような問題の解決を図ることが可能な方法として、ＣＰＵアクセスをアクセスログとして記録しておく方法がある。ＣＰＵからのアクセスの場合、ソフトウェアでデバイス内のメモリにＣＰＵアクセスログとして、ログ情報を書き込む方法を採ることができる。
しかしながら、この方法によると、ログ取得処理自体がＣＰＵを使ったメモリ書き込みであるため、本来のシステム動作を遅延させるという問題を生じる。システム動作を遅延させることは、生産性の低下を招くばかりではなく、ログを作成しない場合に発生する障害が発生しなくなったり、逆にログを作成したことで別の障害が発生したり、といった副作用による弊害も起こす。
【０００４】
そこで、このような副作用を起こすことなく、アクセスログを作成する方法が、提案された。下記特許文献１は、この従来技術の１例を示すものである。
特許文献１記載のデバイスは、デバイスが用いるデータ保存場所へのＣＰＵアクセスに対する処理と並行して、当該ＣＰＵアクセスの入力を受けてログを作成する処理を行い、前記データ保存場所をアクセスログの保存にも用いるように構成した回路とし、この構成により、ＣＰＵを内蔵するデバイスで、ＣＰＵＩ／Ｆに計測器が接続できなくても、ＣＰＵのアクセス内容のトレースができるようにしている。
【０００５】
また、特許文献１記載のデバイスでは、ログを作成する処理を行うために設けたアクセス分析回路は、ログの作成機能のほか、保存の対象とするログを選択する機能を持っている。後者の機能は、作成されたログの全てを保存せず、アクセスのあったアドレスのうち、設定されたアドレスだけを保存の対象として選択する機能であり、アドレスの設定を変更できるようになっている。さらに、ソフトウェアによりレジスタの設定を変更可能とすることで、アクセス分析回路を含めたログの処理に用いる回路の動作を停止／可動させるようにしている。
【特許文献１】特開２００６−１１９６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記した従来例における、保存対象のログを選択する機能は、作成されたログから保存対象のログを選択するので、ログの保存に用いるリソースの利用効率の向上を図ることが可能になるが、ログを作成する処理の負担は、減らない。また、保存対象のログの選択条件も、アドレスのみであるから、有効性が限られてしまう。
また、上記した従来例では、アクセス分析回路を含めたログの処理に用いる回路の動作を停止／可動させることが、ソフトウェアによるレジスタの設定で変更できるが、不適合となって、設定の変更が必要になっても、ソフトウェアを書き換えるまで、そのまま動作させなければならならず、不要な動作による処理負担やリソースの無駄使い、という問題を生じる場合がある。
本発明は、メモリ、レジスタ等のモジュールに対するアクセスログを作成する回路部を有する半導体デバイスにおける上記した従来例の問題に鑑みてなされもので、解決しようとする課題は、監視を必要とするアクセスに柔軟に対応してアクセスログを取得できるようにし、不要な動作による処理負担やリソースの無駄使いを無くすことにある。
【課題を解決するための手段】
【０００７】
請求項１の発明は、ＣＰＵによってアクセスされるモジュールと、前記モジュールに対するＣＰＵアクセスをデコードするアドレスデコーダと、前記モジュールに対するアクセスにより生じるアクセスログを記憶するメモリと、前記ＣＰＵアクセスの入力を受け、該ＣＰＵアクセスのアクセスログを取得するとともに、取得したアクセスログの前記メモリに対するアクセスを制御するメモリ制御部を有する半導体デバイスであって、前記メモリ制御部は、入力されたＣＰＵアクセスの種類を検出し、検出結果によりアクセスログの要／不要を判断し、判断に従って前記アクセスログの取得、前記メモリに対するアクセスの各動作を制御することを特徴とする。
請求項２の発明は、請求項１に記載された半導体デバイスにおいて、前記メモリ制御部は、アクセスログの要／不要を、入力されたＣＰＵアクセスにおける所定のアドレス及びリード／ライト種別の少なくとも一方の検出にもとづいて判断することを特徴とする。
請求項３の発明は、前記モジュールの動作状態を示す内部信号を前記メモリ制御部に入力するようにした請求項１又は２に記載された半導体デバイスにおいて、前記メモリ制御部は、前記モジュールから入力される内部信号の変化を検出し、変化が検出された内部信号を当該モジュールのログとして取得することを特徴とする。
請求項４の発明は、前記メモリ制御部から前記モジュールの内部レジスタのデータを取得可能とした請求項１乃至３のいずれかに記載された半導体デバイスにおいて、前記メモリ制御部は、所定のタイミングで取得した前記モジュールの内部レジスタのデータを当該モジュールのログとして取得することを特徴とする。
請求項５の発明は、請求項１乃至４のいずれかに記載された半導体デバイスにおいて、前記メモリ制御部は、入力されたＣＰＵアクセスにおける特定のレジスタに対するアクセスを検出し、検出結果により前記アクセスログ、前記内部信号のログ、前記内部レジスタのログの少なくとも１ログの取得の開始又は停止を判断し、判断に従って、ログの取得を開始又は停止させることを特徴とする。
請求項６の発明は、請求項３に記載された半導体デバイスにおいて、前記メモリ制御部は、入力された特定の内部信号の変化を検出し、検出結果により前記アクセスログ、前記内部信号のログ、前記内部レジスタのログの少なくとも１ログの取得の開始又は停止を判断し、判断に従って、ログの取得を開始又は停止させることを特徴とする。
請求項７の発明は、請求項４に記載された半導体デバイスにおいて、前記メモリ制御部は、取得した特定の内部レジスタにおけるデータの変化を検出し、検出結果により前記アクセスログ、前記内部信号のログ、前記内部レジスタのログの少なくとも１ログの取得の開始又は停止を判断し、判断に従って、ログの取得を開始又は停止させることを特徴とする。
請求項８の発明は、請求項１乃至７のいずれかに記載された半導体デバイスと、前記半導体デバイスの有する前記モジュールに対しＣＰＵアクセスを行うＣＰＵを備えた電子装置である。
請求項９の発明は、半導体デバイスが有するモジュールに対するアクセスログを取得するアクセスログ取得方法であって、前記半導体デバイスに入力された前記モジュールに対するＣＰＵアクセスの種類を検出する工程と、検出されたＣＰＵアクセスの種類によりアクセスログの要／不要を判断する工程と、アクセスログの要／不要の判断に従って、アクセスログの取得動作を制御する工程を有することを特徴とする。
請求項１０の発明は、請求項９に記載されたアクセスログ取得方法において、前記アクセスログの要／不要を判断する工程は、入力されたＣＰＵアクセスにおける所定のアドレス及びリード／ライト種別の少なくとも一方の検出にもとづいて、アクセスログの要／不要を判断することを特徴とする。
請求項１１の発明は、請求項９又は１０に記載されたアクセスログ取得方法において、前記モジュールの動作状態を示す内部信号を入力する工程と、モジュールから入力される内部信号の変化を検出する工程と、変化が検出された内部信号を当該モジュールのログとして取得する工程を有することを特徴とする。
請求項１２の発明は、請求項９乃至１１のいずれかに記載されたアクセスログ取得方法において、前記モジュールの内部レジスタのデータを所定のタイミングで取得する工程と、取得した前記モジュールの内部レジスタのデータを当該モジュールのログとして取得する工程を有することを特徴とする。
【発明の効果】
【０００８】
本発明により、ＣＰＵアクセスのアドレスデコードと並行に、ＣＰＵアクセスの入力を受け、ＣＰＵアクセスの種類によりアクセスログの要／不要を判断し、この判断に従って、アクセスログを取得し、保存することによって、ＣＰＵ内蔵のデバイスであっても、通常動作時にシステム動作に影響を与えずに、また、不要なアクセスログの取得による処理負担やリソースの無駄使いをすることなく、アクセスログが取得でき、このようにして取得したアクセスログによりログ解析を行うことで、解析効率を向上することが可能になり、さらに、従来行っていた、計測器を接続してアクセスログを解析する方法により起きる問題（［背景技術］の［０００２］、参照）が解消できる。
また、ＣＰＵアクセスログ以外に、変化が検出された内部信号及びモジュールの内部レジスタのデータをログとして保存することで、より詳細なログ解析ができる。
また、アクセスログ、内部信号のログ、内部レジスタのログの取得の開始又は停止を、特定のレジスタに対するアクセス、特定の内部信号の変化及び特定の内部レジスタにおけるデータの変化の検出によって、制御することで、必要なタイミングを逸することなく、不要な動作による処理負担やリソースの無駄使いをなくすことを可能にする動作を行わせ、パフォーマンスの向上を図ることができる。
【発明を実施するための最良の形態】
【０００９】
以下に、本発明に係る半導体デバイス、電子装置及びアクセスログ取得方法の実施形態を説明する。
本実施形態の半導体デバイスは、半導体デバイスの有する各モジュールに対するＣＰＵアクセスに対応するデバイス本来の動作に特徴が無く、この本来の動作に並行し、ＣＰＵアクセスの入力を受けて行うアクセスログの取得等のアクセスログに係る動作を特徴とする。従って、以下の実施形態において、アクセスログに係る構成及び動作を中心に説明をする。
【００１０】
先ず、ＣＰＵのアクセスを受ける本実施形態の半導体デバイスの概要について、図１を参照して説明する。
図１に示すターゲット基板１１２は、図示しない電子装置の回路部を構成する部品として用いられた１基板である。
ターゲット基板１１２には、ＣＰＵ１０１と、ＣＰＵアクセスを受ける半導体デバイス１００及びその他のデバイス（不図示）が搭載されている。
図１に示す構成例では、ＣＰＵ１０１が、半導体デバイス１００に対し、外付けになっており、半導体デバイス１００内で取得されるアクセスログを記憶する記憶装置（メモリ）がデバイス内蔵になっているが、いずれの要素も、外付け、内蔵のどちらでもよい。
【００１１】
半導体デバイス１００は、このデバイスを搭載する電子装置が、例えば、画像形成装置であれば、プリンタ制御用ＡＳＩＣ（Application Specific Integrated Circuit）といった、ＣＰＵＩ／Ｆを有するデバイスである。
半導体デバイス１００は、図１に示すように、ＣＰＵＩ／Ｆ１０２、アドレスデコーダ１０３、モジュールＡ〜Ｅ１０４〜１０８、内蔵メモリ１０９、シリアルコントローラ１１０を内部に有する。
【００１２】
ＣＰＵＩ／Ｆ１０２は、ＣＰＵ１０１にＣＰＵバスを介して接続され、ＣＰＵバスを半導体デバイス１００の内部バスに変換する。
アドレスデコーダ１０３は、ＣＰＵＩ／Ｆ１０２を介して入力されたＣＰＵアクセスをデコードし、モジュールＡ〜Ｅ１０４〜１０８へのＣＳ（チップセレクト）を生成する。また、アドレスデコーダ１０３は、本実施形態の特徴構成であるアクセスログに係る動作を行う要素部（後記で詳述）を持つ。
モジュールＡ〜Ｅ１０４〜１０８は、デバイス内蔵モジュールで、それぞれＣＰＵアクセス可能なレジスタを有し、アドレスデコーダ１０３で生成するＣＳで指示されるモジュールのレジスタに対し、内部バス経由でＣＰＵアクセスが行われる。ここでは、モジュールＡ〜Ｅ１０４〜１０８の５モジュールを有する例を示すが、モジュール数は、いくつでも構わない。
【００１３】
内蔵メモリ１０９は、アクセスログを格納するために用いる記憶装置である。内蔵メモリ１０９に格納されたアクセスログは、ＣＰＵ１０１及び後述するターミナルＰＣ１１１から直接アクセスができる。
シリアルコントローラ１１０は、ターミナルＰＣ１１１からアドレスデコーダ１０３経由で内蔵メモリ１０９をアクセスするためのシリアルＩ／Ｆとして機能する。
ターミナルＰＣ（Personal Computer）１１１は、シリアル操作・表示用のＰＣであり、シリアルコントローラ１１０を介して内蔵メモリ１０９にアクセスし、格納されたアクセスログのデータを取得することが可能な管理端末機である。
【００１４】
ここで、アクセスログに係る動作を行うアドレスデコーダ１０３をより詳しく説明する。
アドレスデコーダ１０３は、ＣＰＵアクセスをデコードし、モジュールＡ〜Ｅ１０４〜１０８へのＣＳを生成することで、ＣＰＵ１０１からモジュールＡ〜Ｅ１０４〜１０８へのアクセスを中継する基本動作のほかに、アクセスログに係る動作として、アクセスログの取得、アクセスログを格納する内蔵メモリ１０９に対するアクセス等の動作を行う。なお、内蔵メモリ１０９に対するアクセスは、取得したアクセスログの書き込みと、格納されたアクセスログの読み出しである。
【００１５】
図２は、アクセスログに係る動作を行うアドレスデコーダの１実施形態を示す図である。
この実施形態では、ＣＰＵアクセスの入力を受けて、アクセスログを取得する基本動作を行う実施形態（以下、「実施形態１」という）を示す。
図２に示す構成例では、アドレスデコーダ２００は、アドレスデコーダが本来有するＣＳ生成部２０１以外に、アクセスログに係る動作を行うメモリ制御部２０２を有する。なお、アドレスデコーダ２００は、図１の構成では、アドレスデコーダ１０３に当たる。
ＣＳ生成部２０１は、ＣＰＵＩ／Ｆ１０２を介して入力されたＣＰＵアクセスのADDRESSデータ、WR（ライト リード）信号及びCS信号をもとに、デコードし、内部モジュールへのCS信号等を生成する。
【００１６】
メモリ制御部２０２は、アクセスログに係る１の動作として、ＣＰＵアクセスの入力を受け、アクセスログを所定のフォーマットで取得する動作を行う。また、アクセスログに係る他の動作として、内蔵メモリ１０９に対するアクセス制御を行う。即ち、取得したアクセスログ等を内蔵メモリ１０９に記憶させるライト（書込み）アクセスと、内蔵メモリ１０９に記憶したアクセスログをシリアルコントローラ１１０を介してターミナルＰＣ１１１が行うリード（読出し）アクセスを行う。なお、この実施形態では、内蔵メモリ１０９のアクセスログのデータは、シリアルコントローラ１１０を介してシリアルからのみ読出せる構成であるが、ＣＰＵＩ／Ｆ１０２を介しても読出せる構成であってもよい。
【００１７】
本実施形態においては、入力されたＣＰＵアクセスのうち、必要なアクセスのみアクセスログを取得する。
アクセスログの取得の要／不要を定めるＣＰＵアクセスのカテゴリは、ここでは、ルールで定めたＣＰＵアクセスの種類とする。なお、ＣＰＵアクセスの種類を定めるルールについては、後述する。また、ルールで定めたＣＰＵアクセスの種類に対応して、アクセスログの要／不要が設定できるようにする。
上記した原則に従い、必要なＣＰＵアクセスのみアクセスログを取得するため、メモリ制御部２０２は、ＣＰＵＩ／Ｆ１０２を介して入力されるＣＰＵアクセスのADDRESSデータ、WR（ライト リード）信号及びCS信号を監視し、当該アクセスの種類が、定義されたＣＰＵアクセスの種類のどれであるかを検出する。また、この検出結果から、アクセスログの取得を要するアクセスの種類であるか、否かを判断し、必要と判断されたＣＰＵアクセスのみアクセスログを取得する。
【００１８】
アクセスログの取得が必要と判断されたＣＰＵアクセスは、データ或いは信号としてメモリ制御部２０２に取り込まれ、アクセスログを取得するために用いられる。つまり、ＣＰＵアクセスは、メモリ制御部２０２内で一定のフォーマットに変換され、内蔵メモリ１０９にアクセスログとして記憶される。
図３は、フォーマット化されたアクセスログの１例を示す図である。この例では、１アクセス単位のアクセスログは、９byte（バイト）＝７２bit（ビット）のログデータで表される。
【００１９】
図３に示すフォーマットのアクセスログの内容は、下記の＜データフォーマット＞に示す情報量（bit）を持つ属性データ「ログ種別」「R／W種別」「H／L種別」「ADDRESS」「DATA」よりなる。なお、このフォーマットは、後述する実施形態２において、内部信号ログ及び内部レジスタログを付加した場合に適用するもので、ＣＰＵアクセスログに係る実施形態１では、下記＜データフォーマット＞の※にコメントするように、「H／L種別」は、無効である。
＜データフォーマット＞
ログ種別（２bit）
00：CPUアクセスログ
01：内部信号ログ
10：内部レジスタログ
11：Reserve
R／W種別（１bit）
0：リード
1：ライト
※ＣＰＵアクセスログ時のみ有効
H／L種別（１bit）
0：Lに変化
1：Hに変化
※内部信号ログ時のみ有効
ADDRESS（３２bit）
ＣＰＵアクセスログ時：アクセスアドレスを格納
内部信号ログ時：内部信号ナンバーを格納    ※予め内部信号に割り当てた番号
内部レジスタログ時：内部レジスタのアドレスを格納
DATA（３２bit）
ＣＰＵアクセスログ時：転送データを格納
内部信号ログ時：無効
内部レジスタログ時：内部レジスタのデータを格納
【００２０】
また、図２のメモリ制御部２０２は、シリアルコントローラ１１０を通して行われる内蔵メモリ１０９に対するアクセスを中継する。
メモリ制御部２０２には、ＣＰＵアクセスログを内蔵メモリ１０９に書込むためのパスと、シリアルコントローラ１１０を通して行われるアクセスログを読出すためのパスとを切替えるセレクタを内蔵する。
内蔵メモリ１０９が、１ポートＲＡＭ（Random Access Memory）の構成では、アクセスログの取得中にシリアルコントローラ１１０からのアクセスがあると、内蔵メモリ１０９のアクセス競合が起きて、アクセスログの取得を滞りなく行うことができないので、シリアルコントローラ１１０からのアクセスは、システム動作終了後に実施する必要がある。
他方、内蔵メモリ１０９が２ポートＲＡＭの構成（不図示）では、アクセスログの取得中にシリアルコントローラ１１０からのリードアクセスがあっても、内蔵メモリ１０９の競合が起きないので、アクセスログの取得中にシリアルコントローラ１１０からのアクセスを許容できる。何れの構成でも良いが、アクセスログを取りこぼさないようなシステムであることが必要条件である。
【００２１】
ここで、アクセスログの取得の要／不要を設定することで、必要なアクセスログのみを取得するＣＰＵアクセスの種類を定めるルールについて説明する。
本実施形態では、入力されるＣＰＵアクセスのADDRESSデータ、WR（ライト リード）信号及びCS信号によって判断するアクセスの種類であり、下記の例１〜３に示すルールを採用できる。この例では、アクセスログの取得を必要とするアクセスをルールにより定め、その他のアクセスは、アクセスログの取得を不要とする。
例１：「上限ログ取得アドレス」と「下限ログ取得アドレス」の領域内であること。
例２：WR信号のR（リードアクセス）又はW（ライトアクセス）のいずれか一方を定めること。
例３：「アドレスバリッドレジスタ」で1をセットされているビットと対応する「アドレス設定レジスタ」の設定アドレスを持つこと。
なお、上記の例３を解説すると、例えば、
「アドレスバリッドレジスタ」=0x11110000
「アドレス設定レジスタ」    =0x10101100
とレジスタが設定されている場合、入力されたＣＰＵアクセスが0x1010xxxx（なお、xは、Don't Careである）であれば、アクセスログの取得を必要とする。つまり、0x10100011は、アクセスログの取得を必要とするが、0x10111100はアクセスログの取得を必要としない、という判断になる。
【００２２】
上記の例１〜３の定義に従うデータをＣＳ生成部２０１のレジスタに用意し、いずれかに該当すること、或いは、同時に幾つかに該当することを条件に、アクセスログの取得を必要とするアクセスであると判断し、それぞれの取得動作を行わせる。
従って、内蔵メモリ１０９には、アクセスログの取得を必要とするアクセスのみのログデータが記憶される。
このようにして、アクセスログの取得を行うことで、記憶装置の容量を低減し、デバイス（システム）のコストを低減する。また、必要なログのみ取得できるので、ログ解析の効率が向上する。
【００２３】
上記した例２のルールで、ＣＰＵライトアクセスをアクセスログの取得を必要とするアクセスとした場合、このＣＰＵアクセスを受けるメモリ制御部２０２の動作は、次のようになる。
図４は、ＣＰＵライトアクセスのアクセスログ取得動作におけるタイミングチャートを示す。
メモリ制御部２０２は、クロックCLKの所定のタイミングで、図４の＜ＣＰＵＩ／Ｆからの入力＞に示すCS信号：CS=Low、かつWR信号：WR=Lowを条件に、ライトアクセスを検出し、そのタイミングで「ADDRESS」、「DATA_I」、「W／R種別」の各データをラッチする。
次のクロック CLK で、図４中に矢印で示すように、＜内蔵メモリへの出力＞に移行し、内蔵メモリ１０９に、「ADDRESS」、「DATA_I」、「W／R種別」の各データをバースト転送でライトする。
【００２４】
内蔵メモリ１０９にライトするデータは、図３に示したデータフォーマットに従うとすると、１アクセス単位のアクセスログは、９byteのデータであるから、例えば、内蔵メモリ１０９のデータバス幅が、４byteの場合は、３回のバースト転送で、メモリへのライトを済ませることができる。
内蔵メモリ１０９にライトした後は、メモリ制御部２０２のアドレスカウンタを９byte分加算し、次のアクセスに備える。
メモリ制御部２０２のアドレスカウンタの初期値は“０”とするのが一般的であり、アドレスカウンタがメモリ容量を超えた場合の処理については、
・先頭アドレスに戻って上書き
・ログ取得を中止
の２様の動作が考えられるが、ここでは、特に規定しない。
【００２５】
ＣＰＵリードアクセスを受けるメモリ制御部２０２は、このアクセスのアクセスログ取得動作におけるタイミングチャートを示す図５に示す動作を行う。
ＣＰＵリードアクセス時に、メモリ制御部２０２は、クロックCLKの所定のタイミングで検出するWR信号：WR=Lowが２クロックの期間、続いて検出されないことを条件に、リードアクセスを検出し、そのタイミングで「ADDRESS」、「DATA_I」、「W／R種別」の各データをラッチする。
ラッチしたデータをアクセスログとして内蔵メモリ１０９へライトする動作は、上記したＣＰＵライトアクセスのアクセスログ取得動作（図４）におけるライト動作と同じである。
【００２６】
次に、アクセスログに係る動作を行うアドレスデコーダの他の実施形態を示す。
上記した実施形態１によって、ＣＰＵアクセスのうち、必要なアクセスのログのみを取得することができる動作を行う実施形態を示した。ただ、より詳細なログ解析を行うためには、ＣＰＵアクセスだけではなく、ハードウェアの動作との関連の解析を可能とする内部信号として、モジュールＡ〜Ｅ１０４〜１０８の動作状態を示す信号をログとして、保存しておくことが必要である。
そこで、この実施形態では、モジュールＡ〜Ｅ１０４〜１０８の動作状態を示す内部信号の入力を受けて、ログを取得する動作を行う実施形態（以下、「実施形態２」という）を示す。
【００２７】
図６は、モジュールの動作状態を示す内部信号のログに係る動作を行うアドレスデコーダの１実施形態を示す図である。
ここでは、メモリ制御部７０２は、モジュールＡ〜Ｅ１０４〜１０８の動作状態を示す内部信号の変化を検出し、変化が検出された内部信号を当該モジュールのログとして、先の実施形態１でアクセスログに適用するデータフォーマットとして示したログ（図３）の一部に加えて保存する。
この動作を行うため、図６に示すように、メモリ制御部７０２には、モジュールＡ〜Ｅ１０４〜１０８からの内部信号が入力されている。
【００２８】
なお、図６に示すアドレスデコーダ７００は、実施形態１に示したＣＰＵアクセスのアクセスログに係る動作を行うアドレスデコーダ２００をベースにしているので、実施形態１のアドレスデコーダ２００の機能を持つ。
また、図６のアドレスデコーダ７００において、メモリ制御部７０２とＣＳ生成部７０１の間にデータや信号を送受するラインが示されているが、これは、後述する実施形態に関係する構成である。
【００２９】
メモリ制御部７０２は、モジュールＡ〜Ｅ１０４〜１０８の動作状態を示す内部信号の変化を内部信号ごとに検出し、信号が変化したとき、ログ情報に検出された内部信号を内部信号ナンバーにより特定するとともに、信号が L：Low 又は H：high のどちらに変化したかを示し、内蔵メモリ１０９にログとして書込む。
このログを取得する際に、信号毎にログ取得の有効／無効の設定ができるようにすると、効率化を図ることができる。例えば、ＣＳ生成部７０１に設けた内部レジスタで信号の有効ビットをセットするか否かを設定する方法が考えられる。有効ビットをセットすることにより、無駄なログの取得を避け、パフォーマンスを高めることができる。
【００３０】
メモリ制御部７０２は、ログ取得有効と設定された内部信号の状態が変化した際に、先の実施形態１で示したデータフォーマット（図３）に従って、内蔵メモリ１０９にログ情報を書込む。
図３の＜データフォーマット＞において、モジュールの動作状態を示す内部信号のログは、下記の属性データのアンダーラインで示すデータが該当する。
＜データフォーマット＞
ログ種別（２bit）
00：CPUアクセスログ
01：内部信号ログ
10：内部レジスタログ
11：Reserve
R／W種別（１bit）
0：リード
1：ライト
※ＣＰＵアクセスログ時のみ有効
H／L種別（１bit）
0：Lに変化
1：Hに変化
※内部信号ログ時のみ有効
ADDRESS（３２bit）
ＣＰＵアクセスログ時：アクセスアドレスを格納
内部信号ログ時：内部信号ナンバーを格納    ※予め内部信号に割り当てた番号
内部レジスタログ時：内部レジスタのアドレスを格納
DATA（３２bit）
ＣＰＵアクセスログ時：転送データを格納
内部信号ログ時：無効
内部レジスタログ時：内部レジスタのデータを格納
【００３１】
ところで、実施形態２の動作は、実施形態１の動作に重なり、内部信号のログの書込みと、ＣＰＵアクセスログの取得時の内蔵メモリ１０９のアクセスとで競合が起きることが考えられるので、競合が起きないように、実装上の工夫が必要である。例えば、ＣＰＵアクセスは、数マイクロ秒以上の間隔であると分かっているので、ＣＰＵアクセスが発生した直後に、内部信号の情報を内蔵メモリにライトする等により、競合を回避することができる。
上記のように、内部信号の状態変化を示すログとＣＰＵアクセスログとを時系列で蓄積することで、ソフトウェアとハードウェアの関連を解析することができるので、より詳細なログ解析ができる。
【００３２】
次に、アクセスログに係る動作を行うアドレスデコーダのさらに他の実施形態を示す。
より詳細なログ解析を行うためには、上記実施形態１のＣＰＵアクセスのログ及び実施形態２の内部信号の状態変化を示すログだけではなく、デバイスの内部状態との関連の解析を可能とするデータとして、ＣＳ生成部内のレジスタの状態等のデバイスの内部状態を示すレジスタのデータをログとして（以下、このログを「内部レジスタログ」という）、保存しておくことが必要である。
そこで、この実施形態では、内部レジスタログを取得する動作を行う実施形態（以下、「実施形態３」という）を示す。
【００３３】
内部レジスタログを取得する動作を行う本実施形態のアドレスデコーダの１実施形態について、再び図６を参照して説明する。
図６に示すアドレスデコーダ７００のメモリ制御部７０２には、ＣＳ生成部７０１との間で制御信号、アドレス、データの送受信ができるように、通信ラインで接続されており、この通信手段を用いて、ＣＳ生成部７０１内に設けたレジスタを自動的にポーリングし、レジスタに格納されているデータを取込むことで、レジスタの状態を示すデータをログとして取得し、内蔵メモリ１０９に記録する。
【００３４】
ＣＳ生成部７０１内のレジスタのポーリングは、メモリ制御部７０２に、例えば、ポーリングすべきレジスタアドレスとポーリング周期を設定する方法を採ることで、ログの取得動作を変更することができる。
メモリ制御部７０２は、ポーリングすべきレジスタアドレスとポーリング周期に従ってレジスタをポーリングし、レジスタの状態を示すデータを取得する。取得したレジスタのデータ及びレジスタのアドレスを当該レジスタのログとして、先の実施形態１でアクセスログに適用するデータフォーマットとして示したログ（図３）の一部に加えて内蔵メモリ１９に保存する。
【００３５】
図３の＜データフォーマット＞において、ＣＳ生成部内のレジスタの状態を示すレジスタのデータのログは、下記の属性データのアンダーラインで示すデータが該当する。
＜データフォーマット＞
ログ種別（２bit）
00：CPUアクセスログ
01：内部信号ログ
10：内部レジスタログ
11：Reserve
R／W種別（１bit）
0：リード
1：ライト
※ＣＰＵアクセスログ時のみ有効
H／L種別（１bit）
0：Lに変化
1：Hに変化
※内部信号ログ時のみ有効
ADDRESS（３２bit）
ＣＰＵアクセスログ時：アクセスアドレスを格納
内部信号ログ時：内部信号ナンバーを格納    ※予め内部信号に割り当てた番号
内部レジスタログ時：内部レジスタのアドレスを格納
DATA（３２bit）
ＣＰＵアクセスログ時：転送データを格納
内部信号ログ時：無効
内部レジスタログ時：内部レジスタのデータを格納
【００３６】
ところで、実施形態３の動作は、実施形態１の動作に重なり、内部レジスタログの書込みと、ＣＰＵアクセスログの取得時の内蔵メモリ１０９のアクセスとで競合が起きることが考えられるので、競合が起きないように、実装上の工夫が必要である。例えば、ＣＰＵアクセスは、数マイクロ秒以上の間隔であると分かっているので、ＣＰＵアクセスが発生した直後に、内部レジスタをポーリングすることで、競合を回避することができる。
上記のように、内部レジスタログとＣＰＵアクセスログとを時系列で蓄積することで、ソフトウェアとハードウェアの関連を解析することができるので、より詳細なログ解析ができる。
【００３７】
次に、ログの取得動作の開始又は停止制御に関する実施形態を説明する。
ＣＰＵアクセスのログ処理回路において、回路動作の停止／可動制御は、従来、ソフトウェアによるレジスタの設定で行っていたため、動作に不適合を感じても、ソフトウェアを書換えるまで、動作を変更できないので、不要な動作による処理負担やリソースの無駄使い、といった点で問題が生じる。
【００３８】
そこで、必要なタイミングを逸することなく、不要な動作による処理負担やリソースの無駄使いをなくすための制御方法を導入し、上記の問題の解消を図るようにする。
以下には、上記実施形態１〜３に示した、ＣＰＵアクセスのログ、内部信号のログ、内部レジスタログの各取得動作に適応した開始／停止制御をそれぞれ、「開始／停止制御（１）」〜「開始／停止制御（３）」として、説明する。
【００３９】
「開始／停止制御（１）」
本実施形態のログの取得動作の開始／停止制御は、ＣＰＵアクセスのログの取得動作に適応した形態で、デバイス内の特定のレジスタに対するアクセスの発生をトリガーとして、開始／停止制御を行う方法を採る。
メモリ制御部２０２，７０２は、トリガーとする特定のＣＰＵアクセスを検出する手段を持ち、検出結果に従い、アクセスログの取得動作を開始／停止する。
【００４０】
トリガーとする特定のＣＰＵアクセスは、例えば、ＣＳ生成部２０１，７０１のレジスタに、特定のＣＰＵアクセスのアドレス、及び開始／停止制御の動作種別等の設定データを書込むことにより、設定する。
レジスタの設定は、ＣＰＵアクセスの入力時に、入力アクセスが、設定された特定のＣＰＵアクセスに該当するか、否かを判断するために参照される。また、レジスタの設定データを書換えることで、ログの取得動作の開始／停止動作を変更することができる。
【００４１】
また、図６の構成のように、ＣＰＵアクセスログ、内部信号のログ、及び内部レジスタのログを取得できる場合には、予めどのログ取得動作に開始／停止制御を適用するかを設定しておくことで、動作を最適化できる。この設定は、ＣＰＵアクセスログ、内部信号のログ、及び内部レジスタのログのいずれか、又はこれらのログのうちの複数のログに適用してもよい。
なお、トリガーとなったＣＰＵアクセスは、このアクセスによりログ取得動作の開始／停止制御が行われるが、いずれの場合にも、ログとして取得しておくことが望ましい。
上記の制御によって、必要なタイミングを逸することなく、ログ取得動作の開始／停止を行うことができ、また、不要な動作による処理負担やリソースの無駄使いをなくすことで、パフォーマンスの向上を図ることができる。
【００４２】
「開始／停止制御（２）」
本実施形態のログの取得動作の開始／停止制御は、内部信号のログの取得動作に適応した形態で、デバイス内の特定の内部信号の変化をトリガーとして、開始／停止制御を行う方法を採る。この方法は、図６に示したデバイスのように、メモリ制御部７０２に、モジュールＡ〜Ｅ１０４〜１０８からの内部信号が入力されている構成に採用できる方法である。
メモリ制御部７０２は、トリガーとする特定の内部信号の変化を検出する手段を持ち、検出結果に従い、アクセスログの取得動作を開始／停止する。なお、メモリ制御部７０２は、上記実施形態２に示したように、内部信号の変化を検出する手段を持っているので、ここでは、特定の内部信号であるか、否かを判断する手段を付加して持つ。
【００４３】
トリガーとする特定の内部信号の変化は、例えば、ＣＳ生成部７０１のレジスタに、特定の内部信号、及び開始／停止制御の動作種別等の設定データを書込むことにより、設定する。
レジスタの設定は、モジュールＡ〜Ｅ１０４〜１０８からの内部信号の入力時に、変化が検出された入力内部信号が、設定された特定の内部信号に該当するか、否かを判断するために参照される。また、レジスタの設定データを書換えることで、ログの取得動作の開始／停止動作を変更することができる。
【００４４】
また、図６の構成のように、ＣＰＵアクセスログ、内部信号のログ、及び内部レジスタのログを取得できる場合には、予めどのログ取得動作に開始／停止制御を適用するかを設定しておくことで、動作を最適化できる。この設定は、ＣＰＵアクセスログ、内部信号のログ、及び内部レジスタのログのいずれか、又はこれらのログのうちの複数のログに適用してもよい。
なお、トリガーとなった特定の内部信号の変化は、この変化によりログ取得動作の開始／停止制御が行われるが、いずれの場合にも、ログとして取得しておくことが望ましい。
上記の制御によって、必要なタイミングを逸することなく、ログ取得動作の開始／停止を行うことができ、また、不要な動作による処理負担やリソースの無駄使いをなくすことで、パフォーマンスの向上を図ることができる。
【００４５】
「開始／停止制御（３）」
本実施形態のログの取得動作の開始／停止制御は、内部レジスタログの取得動作に適応した形態で、デバイス内の特定の内部レジスタにおけるデータの変化をトリガーとして、開始／停止制御を行う方法を採る。この方法は、図６に示したデバイスのように、通信手段を用いて、ＣＳ生成部７０１内に設けたレジスタを自動的にポーリングし、レジスタに格納されているデータをメモリ制御部７０２に取込むことができる構成に採用できる方法である。
メモリ制御部７０２は、トリガーとする特定の内部レジスタにおけるデータの変化を検出する手段を持ち、検出結果に従い、アクセスログの取得動作を開始／停止する。なお、メモリ制御部７０２は、上記実施形態３に示したように、内部レジスタにおけるデータの変化を検出する手段を持っているので、ここでは、特定の内部レジスタであるか、否かを判断する手段を付加して持つ。
【００４６】
トリガーとする特定の内部レジスタにおけるデータの変化は、例えば、ＣＳ生成部７０１のレジスタに、特定の内部レジスタのアドレス、及び開始／停止制御の動作種別等の設定データを書込むことにより、設定する。
レジスタの設定は、ＣＳ生成部７０１のレジスタのデータをポーリングする時に、変化が検出されたレジスタが、設定された特定の内部レジスタに該当するか、否かを判断するために参照される。また、レジスタの上記設定データを書換えることで、ログの取得動作の開始／停止動作を変更することができる。
【００４７】
また、図６の構成のように、ＣＰＵアクセスログ、内部信号のログ、及び内部レジスタのログを取得できる場合には、予めどのログ取得動作に開始／停止制御を適用するかを設定しておくことで、動作を最適化できる。この設定は、ＣＰＵアクセスログ、内部信号のログ、及び内部レジスタのログのいずれか、又はこれらのログのうちの複数のログに適用してもよい。
なお、トリガーとなった特定の内部レジスタにおけるデータの変化は、この変化によりログ取得動作の開始／停止制御が行われるが、いずれの場合にも、ログとして取得しておくことが望ましい。
上記の制御によって、必要なタイミングを逸することなく、ログ取得動作の開始／停止を行うことができ、また、不要な動作による処理負担やリソースの無駄使いをなくすことで、パフォーマンスの向上を図ることができる。
【図面の簡単な説明】
【００４８】
【図１】本発明の実施形態に係る半導体デバイスの概略構成を示す図である。
【図２】アクセスログに係る動作を行う半導体デバイス（図１、参照）内のアドレスデコーダの１実施形態を示す図である。
【図３】フォーマット化されたログデータの１例を示す図である。
【図４】ＣＰＵライトアクセスのアクセスログ取得動作におけるタイミングチャートを示す図である。
【図５】ＣＰＵリードアクセスのアクセスログ取得動作におけるタイミングチャートを示す図である。
【図６】アクセスログに係る動作を行う半導体デバイス（図１、参照）内のアドレスデコーダの他の実施形態を示す図である。
【符号の説明】
【００４９】
１００・・半導体デバイス、１０１・・ＣＰＵ（Central Processing Unit）、１０２・・ＣＰＵＩ／Ｆ（インターフェース）、１０３，２００，７００・・アドレスデコーダ、１０４〜１０８・・モジュールＡ〜Ｅ、１０９・・内蔵メモリ、１１０・・シリアルコントローラ、１１１・・ターミナルＰＣ、２０１，７０１・・ＣＳ生成部、２０２，７０２・・メモリ制御部。
【図１】
2008287319.tif 000003
【図２】
2008287319.tif 000004
【図３】
2008287319.tif 000005
【図４】
2008287319.tif 000006
【図５】
2008287319.tif 000007
【図６】
2008287319.tif 000008