(57)【要約】【課題】ＤＭＡ転送を中断している期間に発生したＤＭＡ転送要求の存在を通知する機構を提供する。【解決手段】マイクロコンピュータ１００は、ＲＡＭ１と、ＲＡＭのテストを実行するテスト期間を通知し、ＲＡＭ１のテストを実行するＣＰＵ２と、ＤＭＡ（Direct Access Memory）転送要求が、テスト期間に発生した場合にＯＮ状態に設定される未処理フラグ４１を有する転送要求管理部４と、テスト期間の通知と、ＤＭＡ転送要求とを受け付け、テスト期間以外ではＤＭＡ転送要求を実行し、テスト期間では未処理フラグ４１をＯＮ状態に設定する転送制御部３と、を備える。【選択図】図１
2014119944.tif 000002
【特許請求の範囲】
【請求項１】
ＲＡＭ（Random Access Memory）と、
前記ＲＡＭのテストを実行するテスト期間を通知し、前記ＲＡＭのテストを実行するプロセッサと、
ＤＭＡ（Direct Access Memory）転送要求が、前記テスト期間に発生した場合にＯＮ状態に設定される未処理フラグを有する転送要求管理部と、
前記テスト期間の通知と、前記ＤＭＡ転送要求とを受け付け、前記テスト期間以外では前記ＤＭＡ転送要求を実行し、前記テスト期間では前記未処理フラグをＯＮ状態に設定する転送制御部と、を備えるマイクロコンピュータ。
【請求項２】
前記転送制御部は、前記テスト期間に第１の値が設定され、前記テスト期間以外で第２の値が設定されるモードフラグを有する請求項１記載のマイクロコンピュータ。
【請求項３】
前記プロセッサは、前記テスト期間が終了すると、前記未処理フラグを読み出す請求項１記載のマイクロコンピュータ。
【請求項４】
前記転送要求管理部は、前記未処理フラグが前記ＯＮ状態に切り替えられると、前記ＯＮ状態への切り替えを前記プロセッサに通知する請求項１記載のマイクロコンピュータ。
【請求項５】
前記転送制御部は、複数のチャネルを有し、前記複数のチャネル毎に前記ＤＭＡ転送要求を受け付け、
前記未処理フラグは、前記複数のチャネルそれぞれに対応する複数のレジスタから構成される請求項１記載のマイクロコンピュータ。
【請求項６】
前記転送要求管理部は、前記複数のレジスタのいずれかが前記ＯＮ状態に切り替わると、前記未処理フラグが前記ＯＮ状態であることを前記プロセッサに通知する請求項５記載のマイクロコンピュータ。
【請求項７】
前記転送要求管理部は、前記テスト期間に受け付けた前記ＤＭＡ転送要求の数を計数するカウンタをさらに備える請求項１記載のマイクロコンピュータ。
【請求項８】
前記転送要求管理部は、前記テスト期間に受け付けた前記ＤＭＡ転送要求の数を、チャネル毎に計数するカウンタをさらに備える請求項５記載のマイクロコンピュータ。
【請求項９】
前記転送要求管理部は、前記未処理フラグが前記ＯＮ状態に切り替わると、前記ＯＮ状態に切り替わったチャネルが識別できるように前記プロセッサに通知する請求項５記載のマイクロコンピュータ。
【請求項１０】
前記プロセッサは、前記未処理フラグが前記ＯＮ状態であることを通知されると、前記複数のチャネルの優先度に応じた処理を実行するように構成される請求項９記載のマイクロコンピュータ。
【請求項１１】
前記プロセッサは、前記複数のチャネルが使用するＲＡＭの領域毎にテストを実行し、
前記転送制御部は、前記複数のチャネルそれぞれに対応する複数のモードフラグを有し、
前記複数のモードフラグはチャネル毎に、前記テスト期間に第１の値に設定され、前記テスト期間以外に第２の値が設定され、
前記転送制御部は、前記ＤＭＡ転送要求を受けたチャネルに対応するモードフラグが前記第２の値の場合には前記ＤＭＡ転送要求を実行し、前記第１の値の場合には、前記ＤＭＡ転送要求を受けたチャネルに対応する前記未処理フラグのレジスタをＯＮ状態に設定する請求項５記載のマイクロコンピュータ。
【請求項１２】
前記転送制御部は、
前記テスト期間に第１の値が設定され、前記テスト期間以外で第２の値が設定されるモードフラグと、
前記テスト期間以外では前記ＤＭＡ転送要求を実行し、前記テスト期間では前記ＤＭＡ転送要求の実行を中止するように構成されたＤＭＡコントローラと、
前記ＤＭＡ転送要求を受け付け、前記ＤＭＡコントローラへ通知するとともに、前記モードフラグが前記第１の値を保持する場合には、前記未処理フラグを前記ＯＮ状態に設定するアクセス制御部と、を備える請求項１記載のマイクロコンピュータ。
【請求項１３】
前記ＤＭＡコントローラは、複数のチャネルを有し、前記複数のチャネル毎に前記ＤＭＡ転送要求を実行するように構成され、
前記未処理フラグは、前記複数のチャネルそれぞれに対応する複数のレジスタから構成され、
前記アクセス制御部は、
前記複数のチャネル毎に前記ＤＭＡ転送要求を受け付け、前記受け付けた前記ＤＭＡ転送要求を、前記複数のチャネルに振り分けて通知するセレクタがと、
前記ＤＭＡ転送要求に対応するチャネルのモードフラグが前記第１の値を保持する場合には、前記ＤＭＡ転送要求を受けたチャネルに対応する前記未処理フラグのレジスタをＯＮ状態に設定するフラグ設定部と、を備える請求項１２記載のマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータにおいて、アプリケーション実行中に行うＲＡＭ（Random Access Memory）テストに関する。
【背景技術】
【０００２】
従来から、マイクロコンピュータでは、ＣＰＵ（Central Processing Unit）がＲＡＭ等のテストを実施している。ＲＡＭテストは、任意のタイミングでＲＡＭの書き換えを防止して実施される。例えば、マイクロコンピュータにダイレクトメモリアクセスコントローラ（ＤＭＡＣ：Direct Memory Access Controller）が搭載されている場合には、通常、ＤＭＡＣとＣＰＵとでは、ＤＭＡＣのプライオリティが高く設定されている。このため、ＣＰＵは、ＤＭＡＣによってＲＡＭが書き換えられないようにしてＲＡＭテストを実施する必要がある。
【０００３】
例えば、特許文献１には、ＤＭＡコントローラによりアクセスされる可能性のあるＲＡＭの領域もＲＡＭテストできるようにする技術が開示されている。特許文献２では、バス獲得要求ゲートを設け、ＤＭＡコントローラを制御し、マイクロコンピュータ装置がＲＡＭをテストしているときはＤＭＡコントローラのＤＭＡ要求を受け付けないようにする。
また、特許文献２には、ＣＰＵの構成上、ＡＬＵ（算術論理ユニット）以外のハードウェアが直接ＲＡＭにアクセスする機能を持つ場合に、これによる誤診断を防止する技術が開示されている。特許文献１では、所定の診断タイミング毎に、割込みを禁止し、ＤＭＡＣの起動が許可されているか否かを判定し、許可されていない場合は、リード・ライト方式で、予め定めた診断単位バイト数ずつの診断対象ＲＡＭ毎に診断を行う。一方、ＤＭＡＣの起動が許可されている場合は、当該診断対象ＲＡＭの診断を禁止する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０６−０２８３０２号公報
【特許文献２】特開２０００−０６６９６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一般に、アプリケーションでは、ＤＭＡＣによってデータを転送するＤＭＡ転送は、アプリケーション実行中は、中断しないという前提でシステムが構築されている。加えて、上述したように、ＤＭＡＣとＣＰＵとでは、通常プライオリティはＤＭＡＣのほうが高い。そのため、ＣＰＵによってＤＭＡ転送が禁止されている期間中にＤＭＡ転送が要求される場合に、ＤＭＡ転送要求が実行されないということに関して検出機構がない。
上述したように、特許文献１は、ＲＡＭテスト中にはＤＭＡ転送の要求を受け付けないように制御する。そのため、特許文献１では、ＲＡＭテスト中にＤＭＡ転送の要求が受け付けられることを考慮する必要がない。また、特許文献２は、誤診断を防止するために、ＲＡＭテストをＤＭＡＣの起動が許可されていない期間に制限する技術が開示されているに過ぎない。
【０００６】
しかしながら、マイクロコンピュータの機能安全を実現するため、ユーザがアプリケーション実行中に、一定の時間間隔で一定の時間内に、ＣＰＵによるＲＡＭテストを行いたい、という要求が生じている。一方、ＲＡＭテスト中にＤＭＡＣがＲＡＭにアクセスしないようにＤＭＡ転送を中断すると、アプリケーション実行に必要なＤＭＡ転送を実行できないという障害が起こる可能性がある。その障害回復のために、ＤＭＡ転送を中断している期間に発生したＤＭＡ転送要求の存在を検出することができる機構が要請されている。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
一実施形態によれば、マイクロコンピュータは、ＲＡＭのテストを実行するテスト期間を通知し、ＲＡＭのテストを実行するプロセッサと、ＤＭＡ転送要求が、テスト期間に発生したか否かを示す情報を保持する転送要求管理部と、テスト期間の通知と、ＤＭＡ転送要求とを受け付け、テスト期間以外ではＤＭＡ転送要求を実行し、テスト期間では転送要求管理部にテスト中にＤＭＡ転送要求が発生したことを通知する転送制御部と、を備える。
【発明の効果】
【０００８】
一実施形態によれば、ＲＡＭテスト期間にＤＭＡ転送要求が発生した場合に、未処理のＤＭＡ転送要求の存在を検出する機構を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】一実施形態のマイクロコンピュータの構成例を示すブロック図である。
【図２】実施形態１のマイクロコンピュータの構成例を示すブロック図である。
【図３Ａ】実施形態１のＤＭＡ転送の動作例を示すフローチャートである。
【図３Ｂ】実施形態１のＲＡＭテストの動作例を示すフローチャートである。
【図４】実施形態２のマイクロコンピュータの構成例を示すブロック図である。
【図５】実施形態３のマイクロコンピュータの構成例を示すブロック図である。
【図６】実施形態４のマイクロコンピュータの構成例を示すブロック図である。
【図７】実施形態５のマイクロコンピュータの構成例を示すブロック図である。
【発明を実施するための形態】
【００１０】
以下、実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。各図面において同一の構成または機能を有する構成要素および相当部分には、同一の符号を付し、その説明は省略する。
【００１１】
図１は、一実施形態のマイクロコンピュータの構成例を示すブロック図である。マイクロコンピュータ１００は、ＲＡＭ１、ＣＰＵ２、転送制御部３、及び転送要求管理部４を有する。
ＲＡＭ１は、データを読み出し、書き込むことが可能な記憶領域（メインメモリ）である。
ＣＰＵ２は、ＲＡＭ１のテストを実行するテスト期間（例えば、テスト開始及びテスト終了）を転送制御部３へ通知し、ＲＡＭ１のテストを実行する。
転送要求管理部４は、ＲＡＭ１のテスト期間中に発生したＤＭＡ転送要求を管理する手段であり、一実施形態では、未処理フラグ４１を有する場合を示す。未処理フラグ４１は、例えばレジスタによって構成され、ＤＭＡ転送要求が、テスト期間に発生した場合にＯＮ状態（例えば、ハイレベル）に設定される。未処理フラグ４１は、テスト期間が終了すると、次のテストするまでにＯＦＦ状態（例えば、ロウレベル）にリセットされる。例えば、ＣＰＵ２は、ＲＡＭのテスト開始を転送制御部３へ通知するタイミングで未処理フラグ４１をリセットしてもよい。未処理フラグ４１は、テスト開始時にリセットされていればよい。未処理フラグ４１は、マイクロコンピュータ１００を利用するアプリケーション側のプログラムで設定することが可能であり、ＣＰＵ２は、アプリケーション側のプログラムに応じて未処理フラグ４１をリセットする処理を実行する。
【００１２】
転送制御部３は、ＲＡＭ１のテスト期間の通知をＣＰＵ２から受け、ＤＭＡ転送要求を周辺機器や外部から受ける。転送制御部３は、テスト期間以外ではＤＭＡ転送要求を実行する。一方、テスト期間では未処理フラグ４１をＯＮ状態に設定する。
一例として、図１では、転送制御部３は、ＤＭＡコントローラ３１、モードフラグ３２、及びアクセス制御部３３を有する構成を示す。
ＤＭＡコントローラ３１は、ＤＭＡ転送要求を受け、テスト期間以外ではＤＭＡ転送要求を実行し、テスト期間ではＤＭＡ転送要求の実行を中止するように構成される。例えば、ＤＭＡコントローラ３１は、テスト期間ではＤＭＡ転送を禁止し、テスト期間以外ではＤＭＡ転送を実行するように、ＣＰＵ２が制御可能に構成される。
モードフラグ３２は、テスト期間に第１の値（例えば、ハイレベル）が設定され、テスト期間以外で第２の値（例えば、ロウレベル）が設定される。モードフラグ３２は、少なくとも一つのレジスタから構成され、第１の値または第２の値がＣＰＵ２によって書き込まれる。
アクセス制御部３３は、ＤＭＡ転送要求を受け付け、ＤＭＡコントローラへ通知する。加えて、アクセス制御部３３は、モードフラグ３２が第１の値を保持する場合（テスト期間である場合）には、未処理フラグをＯＮ状態に設定する。
【００１３】
なお、図１では、モードフラグ３２を転送制御部３内に配置する構成例を示しているが、これに限られるわけではない。モードフラグ３２は、ＣＰＵ２が書き込み可能であり、アクセス制御部３３が参照可能である場所に配置されていればよい。転送制御部３の外側に独立させて配置する場合であってもよく、他の構成要素内に配置する場合であってもよい。
【００１４】
図１の構成では、ＣＰＵ２は、ＲＡＭテスト期間が終了すると、未処理フラグ４１Ａを読み出すことにより、ＲＡＭテスト中にＤＭＡ転送要求が発生し未処理であることを検出することができる。ＲＡＭテストは、一定の時間間隔で、一定の時間内に実施するというのはシステムでわかっている。そのため、ＲＡＭテスト実行中であることを示す信号を使って、アクティブな期間にＤＭＡコントローラ３１に入力されたＤＭＡ転送要求（転送要求信号）を記憶する。
これにより、一実施形態のマイクロコンピュータは、ＲＡＭテスト実行中に、ＤＭＡ転送要求の受け付けを中止することなく、ＲＡＭ１のテストを実行し、ＲＡＭテスト期間中に発生したＤＭＡ転送要求の存在を検出することができる機構を提供する。
一例として、ＤＭＡコントローラ３１が処理中フラグを有し、ＤＭＡ転送開始時に処理中フラグをＯＮ状態に設定し、ＤＭＡ転送終了後に処理中フラグをＯＦＦ状態にリセットするように構成されている場合を検討する。例えば、処理中フラグがＯＮ状態の時であって、ＤＭＡ転送実行中にＲＡＭテスト中になったときには、処理中フラグはリセットされずにＯＮ状態に設定されたまま残る。このようなときに次のＤＭＡ転送要求のリクエストが届くと、ＤＭＡコントローラ３１は、処理中フラグは機能せず、ＤＭＡ転送要求の存在も検出できない。しかし、テスト中に要求されたＤＭＡ転送要求の存在を示す未処理フラグ４１があれば、ＲＡＭテスト開始前の状態がどのようなものであっても、マイクロコンピュータ１００は、ＤＭＡ転送要求がテスト期間中に存在したことを検出することができる。
以下、具体的な回路構成を参照して、実施形態を説明する。
【００１５】
実施形態１．
＊  実施形態１の構成
図２は、実施形態１のマイクロコンピュータの構成例を示すブロック図である。マイクロコンピュータ１０１は、ＲＡＭ１、ＣＰＵ２、転送制御部３Ａ、転送要求管理部４Ａ、及び周辺ＩＯ５を備える。マイクロコンピュータ１０１を構成する各構成要素は、システムバス６を介して相互に接続される。
ＲＡＭ１及びＣＰＵ２は、図１と同様であるため説明を省略する。
【００１６】
転送制御部３Ａは、ＤＭＡＣ（ＤＭＡコントローラ）３１Ａ、モードフラグ３２Ａ、及びアクセス制御部３３Ａを有する。
ＤＭＡＣ３１Ａは、ＤＭＡ転送要求を受け、テスト期間以外ではＤＭＡ転送要求を実行し、テスト期間ではＤＭＡ転送要求の実行を中止するように制御される。図２では、ＤＭＡＣ３１Ａは、複数のチャネル（ｃｈ０〜ｃｈ２の３つ）を有する構成例を示す。ＤＭＡＣ３１は、複数のチャネルが相互に独立してＤＭＡ転送要求を実行する。
モードフラグ３２Ａは、ハイレベルまたはロウレベルの値を保持するレジスタから構成されるフラグを有する。図２では、フラグの存在を明確にするため、枠で囲んだ"Ｆ"で示している。以降、モードフラグ３２Ａは、テスト期間にハイレベルが設定され、テスト期間以外でロウレベルが設定されることを前提として説明する。
【００１７】
アクセス制御部３３Ａは、図１のアクセス制御部３３と同様に、ＤＭＡ転送要求を受け付け、ＤＭＡＣ３１Ａへ通知するとともに、モードフラグ３２Ａがハイレベルを保持する場合には、未処理フラグ４１ＡをＯＮ状態に設定する。図２では、アクセス制御部３３Ａは、セレクタ（セレクタ回路）３３１とフラグ設定部３３２とを有する構成例を示す。
セレクタ３３１は、複数のチャネルのＤＭＡ転送要求をチャネル毎に受け付け、受け付けたＤＭＡ転送要求を、複数のチャネルに振り分けてＤＭＡＣ３１Ａへ通知する。セレクタ３３１は、周辺ＩＯ５の各装置に加え、他の周辺ＩＯや外部装置からＤＭＡ転送要求を受ける。
フラグ設定部３３２は、ＤＭＡ転送要求に対応するチャネルのモードフラグがハイレベルを保持する場合には、ＤＭＡ転送要求を受けたチャネルに対応する未処理フラグ４１ＡのレジスタをＯＮ状態に設定する。具体的には、フラグ設定部３３２は、３つのチャネルｃｈ０〜ｃｈ２それぞれに対応する３つの論理積回路によって構成される。フラグ設定部３３２は、セレクタ３３１からＤＭＡ転送要求の受信を通知されると、モードフラグ３２Ａが保持する値との論理積を未処理フラグ４１Ａの対応するレジスタに設定するように構成されている。
【００１８】
転送要求管理部４Ａは、エラーマネージメントモジュール（ＥＭＭ）４２に未処理フラグ４１Ａが配置されている構成例を示す。
ＥＭＭ４２は、マイクロコンピュータ１０１内で発生したエラーを管理する。
未処理フラグ４１Ａは、複数のチャネルそれぞれに対応する複数のレジスタから構成される。図２では、未処理フラグ４１Ａは、枠で囲んだ３つの"Ｆ"で示すフラグであり、それぞれが３つのチャネルｃｈ０〜ｃｈ２に対応する。未処理フラグ４１Ａは、フラグ設定部３３２によって、テスト中にＤＭＡ転送要求が発生したチャネルに対応するフラグがハイレベルに設定される。
【００１９】
周辺ＩＯ５は、図２では、タイマ５１、シリアル転送部（ＳＥＲＩＡＬ）５２、及びアナログデジタルコンバータ（ＡＤＣ）を具体的に示しているが、その他の装置がＤＭＡ転送要求をセレクタ３３１へ通知する場合であってもよい。
【００２０】
上述したように、図２に示すマイクロコンピュータ１０１は、各周辺ＩＯ５、また外部から要求されるＤＭＡ転送要求のトリガがセレクタ３１１を介してＤＭＡＣ３１Ａの各チャネルへ通知されるように接続されている。ＲＡＭ１のテスト期間中では、モードフラグ３２ＡにはＲＡＭテスト中であることを示すハイレベルが設定されている。その結果、モードフラグ３２Ａから出力されるＲＡＭテスト中にアクティブになる信号と、上述の各ＤＭＡ転送要求信号と論理和をとった信号がＥＭＭ４２の未処理フラグ４１Ａに接続されている。
【００２１】
＊  実施形態１の動作
実施形態１のマイクロコンピュータ１０１の動作を説明する。図３Ａは、実施形態１のＤＭＡ転送の動作例を示すフローチャートである。図３Ｂは、実施形態１のＲＡＭテストの動作例を示すフローチャートである。
各周辺ＩＯ５、または外部からＤＭＡ転送を要求するトリガが発生すると（Ｓ１１）、セレクタ３１１は、発生したトリガを各チャネルへ振り分け、ＤＭＡＣ３１Ａは、セレクタ３１１が選択したトリガを各チャネルに対するＤＭＡ転送要求として受け付ける（Ｓ１２）。
ＲＡＭテスト期間以外では（Ｓ１３でＮＯ）、ＤＭＡＣ３１Ａの各チャネルは、事前に設定されたソース（各周辺ＩＯ５など）からデータを読み込み、読み込んだデータをＲＡＭ書き込む（Ｓ１４）。一方、ＲＡＭテスト期間中にＤＭＡ転送を要求するトリガが発生すると（Ｓ１３でＹＥＳ）、フラグ設定部３３２は、セレクタ３３１が選択した各チャネルの未処理フラグ４１ＡをＯＮ状態に設定する（Ｓ１５）。具体的には、フラグ設定部３３２は、ＤＭＡ転送中断中に、ＤＭＡ転送要求が来ると、ＲＡＭテスト中を示すフラグの出力とＤＭＡ転送要求信号の論理和をとった信号によってＥＭＭ４２の未処理フラグ４１ＡをＯＮ状態に設定する。
次のＤＭＡ転送を要求するトリガが発生すると（Ｓ１１）ステップＳ１２以降の処理を繰り返す。
【００２２】
ＣＰＵ２は、所定のタイミングでＲＡＭ１のテストを実施する（Ｓ２１）。ＲＡＭテストを開始するタイミングは、予め設定され、ＣＰＵ２に通知されるように構成される。例えば、アプリケーション側のプログラムによって所定のタイミングで割り込み信号が発生するように構成される。
ＲＡＭテストを開始する場合には（Ｓ２１でＹＥＳ）、ＣＰＵ２は、ＲＡＭテスト中であることを示すモードフラグ３２Ａをハイレベルにセットするとともに、ＤＭＡＣ３１Ａに対し、転送を中断するように命令する（Ｓ２２）。ＤＭＡＣ３１Ａが命令に従ってＤＭＡ転送を中断すると、ＣＰＵ２はＲＡＭ１に対して所定のテストを行う（Ｓ２３）。テスト終了後、ＣＰＵ２は、モードフラグ３２ＡをロウレベルにクリアするとともにＤＭＡＣ３１Ａに対し転送再開を許可する（Ｓ２４）。ＤＭＡＣ３１Ａは、ＣＰＵ２からの制御に従い、ＤＭＡ転送を許可し、ＤＭＡ転送要求にしたがいＤＭＡ転送を再開する。
ＤＭＡ転送中断中に、ＤＭＡ転送要求が発生した場合には、図３ＡのステップＳ１５の処理により、フラグ設定部３３２がＥＭＭ４２の未処理フラグ４１ＡをＯＮ状態に設定している。そのため、ＣＰＵ２は、テスト終了後、未処理フラグ４１Ａの状態を確認し、ＯＮ状態である場合には、処理されなかったＤＭＡ転送に対する処理を実施する（Ｓ１８）。ＣＰＵ２が未処理のＤＭＡ転送要求に対応する処理については、各アプリケーションによって対応が異なる。
上述した通り、ＲＡＭテスト中（ＤＭＡ転送中断中）に、ＤＭＡ転送要求が来ると、ＲＡＭテスト中を示すフラグの出力とＤＭＡ転送要求信号の論理和をとった信号でＥＭＭモジュール内のフラグをセットする。
【００２３】
＊  実施形態１のメカニズムおよび効果
未処理フラグ４１Ａは、ＲＡＭ１をテスト中にＤＭＡ転送要求が届いたことを示すＯＮ状態を有する。ＣＰＵ２はＲＡＭテスト終了後、ＥＭＭ４２内の未処理フラグ４１Ａを確認することで、ＲＡＭテスト中に本来行われるべきＤＭＡ転送が未処理であったことを検出できる。そのため、ＣＰＵ２は未処理のＤＭＡ転送要求に対して所定の処置を行うことができる。これにより、ＤＭＡ転送要求の受付を中止したりすることなく、ＣＰＵ２は任意のタイミングでＲＡＭ１をテストすることが可能になる。また、ＤＭＡＣ４１Ａのチャネル毎に未処理フラグ４１Ａを備えることにより、各チャネルに対応する処理をＣＰＵ２に実行させることも可能である。加えて、ＲＡＭテスト中に発生する未処理のＤＭＡ転送要求の存在を検出することができる。例えば、アプリケーション側のプログラムに影響しないＤＭＡ転送要求が未処理となることがわかっている場合には有効である。未処理のＤＭＡ転送要求の存在を検出できる機構を備えることにより、ＤＭＡ転送が完了していなくても、転送完了を待つことなく、ＣＰＵ２がＲＡＭテストを進められるようにプログラムを構成することが可能になる。
【００２４】
実施形態２．
＊  実施形態２の構成
図４は、実施形態２のマイクロコンピュータの構成例を示すブロック図である。マイクロコンピュータ１０２は、ＲＡＭ１、ＣＰＵ２、転送制御部３Ａ、転送要求管理部４Ｂ、及び周辺ＩＯ５を備える。マイクロコンピュータ１０１を構成する各構成要素は、システムバス６を介して相互に接続される。マイクロコンピュータ１０２は、図２のマイクロコンピュータ１０１の転送要求管理部４Ａを転送要求管理部４Ｂに変更した構成例であり、他の構成要素は同様であるため説明を省略する。
転送要求管理部４Ｂは、割り込みコントローラ（ＩＮＴＣ）４３に未処理フラグ４１Ｂが配置されている構成例を示す。
ＩＮＴＣ４３は、マイクロコンピュータ１０１内で発生した割り込みを制御し、ＣＰＵ２へ割り込み信号を通知する。
未処理フラグ４１Ｂは、複数のチャネルそれぞれに対応する複数のレジスタから構成される。図４では、未処理フラグ４１Ｂは、枠で囲んだ３つの"Ｆ"で示すフラグであり、それぞれが３つのチャネルｃｈ０〜ｃｈ２に対応する。未処理フラグ４１Ｂは、フラグ設定部３３２によって、テスト中にＤＭＡ転送要求が発生したチャネルに対応するフラグがＯＮ状態（例えば、ハイレベル）に設定される。
【００２５】
各周辺ＩＯ５、また外部から要求されるＤＭＡ転送要求のトリガがセレクタ３１１を介してＤＭＡＣ３１Ａの各チャネルへ通知されるように接続されている。ＲＡＭ１のテスト期間中では、モードフラグ３２ＡにはＲＡＭテスト中であることを示すハイレベルが設定されている。その結果、モードフラグ３２Ａから出力されるＲＡＭテスト中にアクティブになる信号と、上述の各ＤＭＡ転送要求信号と論理和をとった信号がＩＮＴＣ４３の未処理フラグ４１Ｂに接続されている。加えて、ＩＮＴＣ４３からＣＰＵ２に対して割り込み信号が接続されている。
【００２６】
＊  実施形態２の動作
実施形態２のマイクロコンピュータ１０２の動作は、基本的に実施形態１と同様である。図３ＡのステップＳ１５において、フラグ設定部３３２により未処理フラグ４１Ｂが設定されると、ＩＮＴＣ４３がＣＰＵ２へ割り込み信号を出力する処理が追加される。
また、図３ＢのステップＳ２５において、実施形態１では、ＣＰＵ２はＥＭＭ４２の未処理フラグ４１Ａの状態を参照する処理が必要とする。実施形態２では、未処理のＤＭＡ転送要求が存在する場合にはＩＮＴＣ４３から割り込み信号がＣＰＵ２へ通知されている。このため、ＣＰＵ２は、ＲＡＭテスト終了後、割り込み信号が通知されていると直ちに未処理のＤＭＡ転送要求に対する処理を開始することができる。割り込み通知に対応する処理については、各アプリケーションによって対応が異なる。
【００２７】
＊  実施形態２のメカニズムおよび効果
ＩＮＴＣ４３は事前にＤＭＡ転送要求が未処理である場合にＣＰＵ２に通知する割り込み信号が設定される。ＩＮＴＣ４３は、事前の設定に従い、未処理フラグ４１ＢがＯＮ状態に設定されると、ＣＰＵ２に対して未処理のＤＭＡ転送要求の存在を知らせる割り込み信号を出力する。ＣＰＵは通知された割り込み信号に従い所定の処置を行うことができる。これにより、ＤＭＡ転送要求の受付を中止したりすることなく、ＣＰＵ２は任意のタイミングでＲＡＭ１をテストすることが可能になる。割り込み信号によりＣＰＵ２へ未処理のＤＭＡ転送要求の存在が通知されることを除いて、本実施形態でも実施形態１と同様の効果を奏することができる。
【００２８】
実施形態３．
＊  実施形態３の構成
図５は、実施形態３のマイクロコンピュータの構成例を示すブロック図である。マイクロコンピュータ１０３は、図２のマイクロコンピュータ１０１の転送要求管理部４Ａを転送要求管理部４Ｃに変更した構成例であり、他の構成要素は同様であるため説明を省略する。
転送要求管理部４Ｃは、ＥＭＭ４２Ｃに未処理フラグ４１Ｃに加え、カウンタ４４が配置されている構成例を示す。
カウンタ４４は、未処理フラグ４１ＣにＯＮ状態が通知された回数を計数する。本実施形態では、カウンタ４４は、未処理フラグ４１Ｃの３つのレジスタそれぞれについて、通知された回数を計数する。しかしながら、カウンタ４４は、未処理フラグ４１Ｃの３つのレジスタそれぞれについて、通知された回数を計数するように構成されていてもよいし、未処理フラグ４１Ｃの３つのレジスタへ通知された回数を合計した値を係数するように構成されていてもよい。
ＣＰＵ２は、カウンタ４４が保持する回数を参照することにより、テスト期間中に通知された未処理のＤＭＡ転送要求の数をチャネル毎に取得することが可能になる。
マイクロコンピュータ１０３の動作は実施形態１と同様である。図３Ｂのステップ２５において、マイクロコンピュータ１０３を利用するアプリケーション側のプログラムがＣＰＵ２に実施させる処理を、カウンタ４４の値に基づいて変更することが可能になる。
【００２９】
＊  実施形態３のメカニズムおよび効果
カウンタ４４において未処理のＤＭＡ転送要求の数を計数することにより、カウンタ４４の値に応じて実行する処理を変更することができる。また、カウンタ４４を備えることにより、カウンタ４４の値が所定の閾値を超える場合に次にＣＰＵ２がＲＡＭテストを実施するタイミングを調整することも可能になる。例えば、カウンタ４４は、マイクロコンピュータ１０３を利用するアプリケーション側で参照できるように構成されている場合には、アプリケーション側のプログラムは、カウンタの値を参照し、所定の閾値を超える場合には特別な処理を実行するようにプログラムを作成することが可能になる。また、アプリケーション側のプログラムがカウンタ４４の値に基づいて、未処理のＤＭＡ転送要求の数に応じて、次の実行する処理を決定することも可能になり、ＲＡＭテスト中に要求されたＤＭＡ転送要求に対して柔軟に対応することを可能にする。また、ＤＭＡＣ４１Ａのチャネル毎にカウンタを設けることにより、チャネルに特有の処理を実行させることも可能である。
なお、図５では、図２のマイクロコンピュータ１０１の構成へカウンタ４４を追加した構成例を示したが、図４のマイクロコンピュータ１０２の構成へカウンタ４４を追加した構成であってもよい。また、上記各実施形態に限らず、以降に説明するマイクロコンピュータの構成にカウンタ４４を追加することも可能である。
【００３０】
実施形態４．
＊  実施形態４の構成
図６は、実施形態４のマイクロコンピュータの構成例を示すブロック図である。マイクロコンピュータ１０４は、図２のマイクロコンピュータ１０１の転送要求管理部４Ａを転送要求管理部４Ｄに変更した構成例であり、他の構成要素は同様であるため説明を省略する。
転送要求管理部４Ｄは、ＩＮＴＣ４３Ｄに未処理フラグ４１Ｄが配置されている構成例を示す。実施形態２では、ＩＮＴＣ４３は、複数のチャネルのいずれかでＲＡＭテスト中にＤＭＡ転送要求が発生すると、ＣＰＵ２へ割り込み信号を通知していた。本実施形態では、ＩＮＴＣ４３Ｄは、複数のチャネルのうちのどのチャネルへの転送要求であるかを特定できる割り込み信号をＣＰＵ２へ通知する。ＩＮＴＣ４３Ｄは、予め、複数のチャネルそれぞれについて未処理フラグ４１ＤがＯＮ状態に変更されたときに、各チャネルについて未処理のＤＭＡ転送要求の存在を示す割り込み通知信号をＣＰＵ２へ通知するように設定される。
ＣＰＵ２は、割り込み信号によってどのチャネルにＤＭＡ転送要求が届いたかを検出することが可能になる。そのため、ＣＰＵ２は、未処理のＤＭＡ転送要求に対する処理をチャネル毎に柔軟に変更して処理することが可能になる。例えば、ＣＰＵ２は、複数のチャネルに関する割り込み信号が通知された場合には、各チャネルの優先度に応じて（例えば、優先度の高い順に）未処理のＤＭＡ転送要求に対する処理を実行するように制御することが可能となる。
例えば、アプリケーション側のプログラムがＣＰＵ２へ異常処理を直ちに実行することを通知する割り込み信号や、未処理のＤＭＡ転送要求が存在することを通知する割り込み信号などの複数の割り込み信号を取り扱うように構成されている場合がある。このような場合には、ＩＮＴＣ４３Ｄは、チャネルの優先度に応じて複数の割り込み信号を使い分けてＣＰＵ２へ通知しもよい。チャネル毎、あるいは優先度に応じたレベル毎などの複数の割り込み信号を用いることにより、未処理のＤＭＡ転送要求の存在に対して回復処理を適切な順番に実行することが可能になる。
【００３１】
実施形態５．
上記各実施形態において、ＣＰＵ２は、ＲＡＭテストを、複数のチャネルが使用するＲＡＭ１の領域毎に時間を変えてテストを実行してもよい。チャネル毎に利用するＲＡＭ１の領域が特定されているような場合には、ＣＰＵ２は、ＲＡＭテストをチャネルが利用する領域毎にＲＡＭ１をテストするように構成することができる。本実施形態では、ＲＡＭ１のテストをチャネルが利用する領域毎に実施する場合の一態様を説明する。
【００３２】
図７は、実施形態５のマイクロコンピュータの構成例を示すブロック図である。マイクロコンピュータ１０５は、図２のマイクロコンピュータ１０１の転送制御部３Ａを転送制御部３Ｅに変更した構成例である。具体的には、マイクロコンピュータ１０５は、図２のマイクロコンピュータ１０１のＤＭＡＣ３１Ａ及びモードフラグ３２Ａを、ＤＭＡＣ３１Ｅ及びモードフラグ３２Ｅに変更した構成例であり、他の構成要素は同様であるため説明を省略する。
モードフラグ３２Ｅは、複数のチャネルそれぞれに対応する、ハイレベルまたはロウレベルの値を保持するレジスタから構成される複数のフラグを有する。モードフラグ３２Ｅは、テスト期間にハイレベルに設定され、テスト期間以外でロウレベルがチャネル毎に設定される。
ＤＭＡＣ３１Ｅは、ＣＰＵ２の制御により、ＲＡＭ１がテスト中である場合には、当該チャネルのみＤＭＡ転送を中止するように制御される。具体的には、ＤＭＡＣ３１Ｅは、ＤＭＡ転送要求を受けたチャネルがＲＡＭテスト期間以外の場合、言い換えると、ＤＭＡ転送要求を受けたチャネルに対応するモードフラグ３２Ｅがロウレベルの場合にはＤＭＡ転送要求を実行する。一方、ＤＭＡＣ３１Ｅは、ＤＭＡ転送要求を受けたチャネルがＲＡＭテスト期間中である場合、言い換えると、ＤＭＡ転送要求を受けたチャネルに対応するチャネルに対応するモードフラグ３２Ｅがハイレベルの場合には、ＤＭＡ転送要求を受けたチャネルに対応する未処理フラグ４１ＡのレジスタをＯＮ状態に設定する。
【００３３】
ＲＡＭ１のテストをチャネルが使用する領域毎に実施し、かつ、モードフラグ３２Ｅをチャネル毎に設定できるように構成し、ＤＭＡＣ３１Ｅをチャネル毎にＤＭＡ転送を中止できるように構成することにより、実施形態１の効果に加え、ＲＡＭテスト期間を短縮し、各チャネルがＤＭＡ転送を実施できる期間を長くすることが可能になる。
なお、図７では、図２のマイクロコンピュータ１０１のＤＭＡＣ３１Ａ及びモードフラグ３２Ａを、ＤＭＡＣ３１Ｅ及びモードフラグ３２Ｅに変更した構成例を示したが、図４から６のマイクロコンピュータ１０２〜１０４のＤＭＡＣ４１ＡをＤＭＡＣ４１Ｅへ、モードフラグ３２Ａをモードフラグ３２Ｅへ変更する構成であってもよい。
【００３４】
上記各実施形態で説明したように、一実施形態のマイクロコンピュータは、ＲＡＭテスト中であることを示すステータスフラグ（モードフラグ）とＤＭＡ転送要求信号との論理積をとる機構を備え、論理積によってＣＰＵが未処理のＤＭＡ転送の存在を検出できる機構を備える。
これにより、ＤＭＡ転送要求の受け付けを中止することなく、ＲＡＭテストを実行することができるとともに、ＲＡＭテスト期間中に処理されなかったＤＭＡ転送要求の存在を検出することができる。そのため、ＤＭＡ転送要求が処理されたなったことによって生じる障害を回復させることができる。
【００３５】
以上、本発明者によってなされた発明を実施形態に基づき具体的に説明したが、本発明は前記実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【００３６】
１００〜１０５  マイクロコンピュータ
１  ＲＡＭ
２  ＣＰＵ
３、３Ａ、３Ｄ  転送制御部
４、４Ａ  転送要求管理部
５  周辺ＩＯ５
３１、３１Ａ、３１Ｄ  ＤＭＡコントローラ
３２、３２Ａ、３２Ｄ  モードフラグ
３３、３３Ａ  アクセス制御部
３３、３３Ａ  
４２、４２Ｃ  エラーマネージメントモジュール（ＥＭＭ）
４１Ａ、４１Ｂ、４１Ｃ、４１Ｄ  未処理フラグ
４３、４３Ｄ  割り込みコントローラ（ＩＮＴＣ）
４４  カウンタ
５１  タイマ
５２  シリアル転送部（ＳＥＲＩＡＬ）
５３  アナログデジタルコンバータ（ＡＤＣ）
３３１  セレクタ
３３２  フラグ設定部
【図１】
2014119944.tif 000003
【図２】
2014119944.tif 000004
【図３Ａ】
2014119944.tif 000005
【図３Ｂ】
2014119944.tif 000006
【図４】
2014119944.tif 000007
【図５】
2014119944.tif 000008
【図６】
2014119944.tif 000009
【図７】
2014119944.tif 000010