(57)【要約】【課題】処理効率を低下させることなく、かつ、設計者が意識することなく、メモリーの異常を検知する。【解決手段】メモリーインタフェースからメモリーに送られる命令を監視する命令監視部と、命令監視部がメモリーの特定のアドレスへの書き込みを指示する命令を検知したときに、該特定のアドレスに書き込むために前記メモリーに送られるデータを保持する書込データ保持部と、命令監視部がメモリーの前記特定のアドレスからの読み出しを指示する命令を検知したときに、該特定のアドレスから読み出されて前記メモリーインタフェースに送られるデータを保持する読出データ保持部と、書込データ保持部が保持したデータと読出データ保持部が保持したデータとを比較し、不一致を検出するデータ比較部とからなるメモリー監視回路を備える。【選択図】図１
2009031974.tif 000002
【特許請求の範囲】
【請求項１】
メモリーインタフェースからメモリーに送られる命令を監視する命令監視部と、
前記命令監視部が、前記メモリーの特定のアドレスへの書き込みを指示する命令を検知したときに、該特定のアドレスに書き込むために前記メモリーインタフェースから前記メモリーに送られるデータを保持するとともに、フラグをセットする書込データ保持部と、
前記のフラグがセットされ、かつ、前記命令監視部が、前記メモリーの前記特定のアドレスからの読み出しを指示する命令を検知したときに、該特定のアドレスから読み出されて前記メモリーインタフェースに送られるデータを保持する読出データ保持部と、
前記読出データ保持部がデータを保持したときに、前記書込データ保持部が保持したデータと前記読出データ保持部が保持したデータとを比較し、不一致を検出するデータ比較部とからなるメモリー監視回路を備えたことを特徴とする半導体集積回路。
【請求項２】
前記データ比較部が、前記不一致を検出したときに、前記メモリーインタフェースに対して、前記メモリーの初期化を要求する状態通知信号を出力することを特徴とする請求項１記載の半導体集積回路。
【請求項３】
前記データ比較部が、所定回数だけ連続して不一致を検出したときに、前記状態通知信号を出力することを特徴とする請求項２記載の半導体集積回路。
【請求項４】
ユーザーロジック部とメモリーインタフェースとを備え、該ユーザーロジック部に含まれる回路がメモリーインタフェースを介して外部に接続されるメモリーへのデータ書き込み、および、該メモリーからのデータの読み出しを行う半導体集積回路において、
前記メモリーインタフェースから前記メモリーに送られる命令を監視する命令監視部と、
前記命令監視部が、前記メモリーの特定のアドレスへの書き込みを指示する命令を検知したときに、該所定のアドレスに書き込むために前記メモリーインタフェースから前記メモリーに送られるデータを保持するとともに、フラグをセットする書込データ保持部と、
前記のフラグがセットされ、かつ、前記命令監視部が、前記メモリーの前記特定のアドレスからの読み出しを指示する命令を検知したときに、該所定のアドレスから読み出されて前記メモリーインタフェースに送られるデータを保持する読出データ保持部と、
前記読出データ保持部がデータを保持したときに、前記書込データ保持部が保持したデータと前記読出データ保持部が保持したデータとを比較し、不一致を検出するデータ比較部とからなるメモリー監視回路を備えたことを特徴とする半導体集積回路。
【請求項５】
前記ユーザーロジック部に含まれる回路が顧客が設計した回路であり、かつ、前記メモリーインタフェースおよびメモリー監視回路がＡＳＩＣ製造者がマクロセルとして用意したものであることを特徴とする請求項４記載の半導体集積回路。
【請求項６】
前記データ比較部が、前記不一致を検出したときに、前記メモリーインタフェースに対して、前記メモリーの初期化を要求する状態通知信号を出力することを特徴とする請求項４または５記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリーインタフェースを介してメモリーを利用する半導体集積回路に関し、特に、メモリーが異常状態になったことを検出し、もしくはさらに、異常状態になったメモリーを初期化するメモリー監視回路を備えた半導体集積回路に関する。
【背景技術】
【０００２】
さまざまな目的のためにデータ処理を行う半導体集積回路において、処理すべきデータを一時的に記憶するために、メモリーが必要になる場合が多い。特に、画像データ等の大量のデータを処理するためには、大きな記憶量を有するメモリーが必要である。メモリーは、メモリーを利用してデータ処理を行う回路と同一の半導体集積回路チップ上に設けることが好ましい場合もある。しかし、大容量のメモリーが必要な場合には、別チップのメモリーと組み合わせて、データ処理回路を構成する方が好ましい場合も多い。そこで、顧客のニーズに応じたＡＳＩＣ（特定用途向け半導体集積回路）を提供するＡＳＩＣベンダーでは、メモリーチップを制御するメモリーコントローラを、設計資産として提供することが一般的である。
【０００３】
メモリーを利用してデータ処理を行う半導体集積回路の場合、メモリーを同一チップ上に設ける場合でも、別チップのメモリーを利用する場合でも、メモリーの動作に異常があると正常な処理ができなくなる。そこで、メモリーの異常を検知するために、メモリーの特定のアドレスに書き込んだデータと、同一のアドレスから読み出したデータとを比較する方法が従来から知られている。
【０００４】
例えば、特許文献１には、ブランキング期間は画像記録用のメモリーの書き込み／読み出しが中断されていることを利用し、その期間に、診断対象領域に記憶されたデータを退避した上で、メモリーにテストデータを書き込み、読み出して元のテストデータと比較することで、正常／異常判断を行うことが提案されている。
【０００５】
特許文献２には、メモリーに書き込まれるデータを保持するデータラッチ回路と、メモリーへの書き込みが終了した時点でリード制御信号を生成するリードパルス生成回路とを設け、リード制御信号の生成によってメモリーから格納されているデータを出力させ、比較回路でデータラッチ回路からのデータと比較し、一致しないときはエラー信号を出力することが提案されている。
【特許文献１】特開平７−６７１４６号公報
【特許文献２】特開平７−１６０５８６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１の技術では、ブランキング期間であることを検出するととともに、さまざまな操作を制御する回路、もしくは、ソフトウエアが必要である。特許文献１の実施例では、ブランキング期間検出回路およびその他の回路と、メモリー診断プログラムがロードされたＣＰＵとが、メモリー診断の制御を行う。しかし、データ処理用の半導体集積回路の設計を行う設計者に対して、本来のデータ処理ではないメモリーの異常検知を行うための回路やソフトウエアの設計を要求することは困難である。特に、顧客に設計を依頼するＡＳＩＣの場合にはきわめて困難である。従って、設計者が意識すること無く、メモリーの異常検知を行い、さらに好ましくは、対策を行うことが望まれる。特許文献１の技術ではこのような課題には対応できない。
【０００７】
特許文献２の技術では、データラッチ回路、リードパルス発生回路等によって、ＣＰＵ等による制御を必要とすることなく、メモリーの異常を検知することができる。しかしながら、メモリーへの書き込みが行われるたびにエラー検知のための読み出しが行われる。このため、本来のデータ処理の目的以外でメモリーが利用される期間が長くなり、データ処理の効率が低下するという問題がある。
【０００８】
本発明は、処理効率を低下させることなく、かつ、設計者が意識することなく、メモリーの異常を検知する、もしくはさらに、異常に対する対策を行うことが可能な技術を提供することを課題とする。
【課題を解決するための手段】
【０００９】
上記の課題を解決するため、本発明の第１の半導体集積回路は、メモリーインタフェースからメモリーに送られる命令を監視する命令監視部と、
前記命令監視部が、前記メモリーの特定のアドレスへの書き込みを指示する命令を検知したときに、該特定のアドレスに書き込むために前記メモリーインタフェースから前記メモリーに送られるデータを保持するとともに、フラグをセットする書込データ保持部と、
前記のフラグがセットされ、かつ、前記命令監視部が、前記メモリーの前記特定のアドレスからの読み出しを指示する命令を検知したときに、該特定のアドレスから読み出されて前記メモリーインタフェースに送られるデータを保持する読出データ保持部と、
前記読出データ保持部がデータを保持したときに、前記書込データ保持部が保持したデータと前記読出データ保持部が保持したデータとを比較し、不一致を検出するデータ比較部とからなるメモリー監視回路を備えたことを特徴とする。
【００１０】
ここで、前記データ比較部が、前記不一致を検出したときに、前記メモリーインタフェースに対して、前記メモリーの初期化を要求する状態通知信号を出力することが好ましい。
【００１１】
さらに、前記データ比較部が、所定回数だけ連続して不一致を検出したときに、前記状態通知信号を出力することがより好ましい。
【００１２】
上記の課題を解決するため、本発明の第２の半導体集積回路は、ユーザーロジック部とメモリーインタフェースとを備え、該ユーザーロジック部に含まれる回路がメモリーインタフェースを介して外部に接続されるメモリーへのデータ書き込み、および、該メモリーからのデータの読み出しを行う半導体集積回路において、
前記メモリーインタフェースから前記メモリーに送られる命令を監視する命令監視部と、
前記命令監視部が、前記メモリーの特定のアドレスへの書き込みを指示する命令を検知したときに、該所定のアドレスに書き込むために前記メモリーインタフェースから前記メモリーに送られるデータを保持するとともに、フラグをセットする書込データ保持部と、
前記のフラグがセットされ、かつ、前記命令監視部が、前記メモリーの前記特定のアドレスからの読み出しを指示する命令を検知したときに、該所定のアドレスから読み出されて前記メモリーインタフェースに送られるデータを保持する読出データ保持部と、
前記読出データ保持部がデータを保持したときに、前記書込データ保持部が保持したデータと前記読出データ保持部が保持したデータとを比較し、不一致を検出するデータ比較部とからなるメモリー監視回路を備えたことを特徴とする。
【００１３】
ここで、前記ユーザーロジック部に含まれる回路が顧客が設計した回路であり、かつ、前記メモリーインタフェースおよびメモリー監視回路がＡＳＩＣ製造者がマクロセルとして用意したものであることが好ましい。
【発明の効果】
【００１４】
本発明の半導体集積回路では、メモリー監視回路が、メモリーインタフェースからメモリーに送られる命令を監視することにより、他の回路やソフトウエアによる制御を必要とすることなくメモリーの状態を監視することができる。従って、設計者が意識することなくメモリーの状態を監視し、異常状態になった場合に検知することが可能になる。また、メモリー監視回路が、特定のアドレスへの書き込みと、その後の同一アドレスからの読み出しを検知して、書込データおよび読出データを保持し、その間の比較を行うので、メモリーが、データ処理のために本来必要な書き込み、読み出し動作を行うことのみによって、状態の監視を行うことができる。従って、処理効率が低下することはない。
【発明を実施するための最良の形態】
【００１５】
図１は、本発明の半導体集積回路の第１の実施形態の一例を示す回路図である。
【００１６】
図１の半導体集積回路１０は、別チップとして設けたメモリー（ＳＤＲＡＭ）５０を利用して論理演算処理を行う各種の回路が設けられたユーザーロジック部２０と、メモリー５０の制御を行うとともにユーザーロジック部２０とメモリー５０との間のデータのやりとりを制御するメモリーインタフェース３０とを含む。
【００１７】
メモリーインタフェース３０とメモリー５０との間は、データ配線３２と命令配線３４とによって接続されている。データ配線３２は、ユーザーロジック部２０の回路が、メモリー５０に書き込むべきデータ（書込データＷ＿ＤＡＴＡ）を、メモリーインタフェース３０を介してメモリー５０に送信するとともに、メモリー５０から読み出したデータ（読出データＲ＿ＤＡＴＡ）を、メモリーインタフェース３０を介して受信するための配線である。データ配線３２は、半導体集積回路１０内では、書込データ配線３２Ｂと読出データ配線３２Ｃとに分かれている。これらの半導体集積回路１０内のデータ配線は、それぞれ出力バッファおよび入力バッファを介して、半導体集積回路１０とメモリー５０との間の共通のデータ配線３２Ａと接続されている。
【００１８】
命令配線３４は、ユーザーロジック部２０の回路が、メモリーを制御するための各種の命令ＣＯＭを、メモリーインタフェース３０を介してメモリー５０に送るための配線である。例えば、書き込みや読み出し等の命令や、メモリー５０の初期化のために必要な各種の命令が、命令配線３４を通じてメモリー５０に送られる。また、データを書き込む、もしくは、データを読み出すアドレスを指定するアドレス信号ＡＤＤＲも、命令配線を通じてメモリー５０に送られる。データ配線３４は、半導体集積回路１０内のデータ配線３４Ｂと、半導体集積回路１０とメモリー５０とのデータ配線３２Ａとに別れ、これらは出力バッファを介して接続されている。
【００１９】
なお、これらのデータ配線３２、命令配線３４、およびそれ以外の、二重線で示された配線は、それぞれのデータ、アドレス、および命令を送るために必要なビット幅を有するものである。
【００２０】
半導体装置集積回路１０とメモリー５０との間には、また、クロック信号ＣＬＫをメモリー５０に供給するクロック配線２２が設けられている。クロック配線２２は、半導体集積回路１０内のクロック配線２２Ｂと、半導体集積回路１０とメモリー５０とのクロック配線２２Ａとに別れ、これらは出力バッファを介して接続されている。クロック信号ＣＬＫは、メモリーインタフェース３０にも供給される。
【００２１】
半導体集積回路１０のユーザーロジック部２０に設けた各種の回路は、別チップとして設けたメモリー５０に、メモリーインタフェース３０を介して各種の命令およびアドレス信号を送り、データの送受信を行う。これによって、メモリー５０を利用した各種のデータ処理を行うことができる。しかし、図１に示した構成では、例えば、半導体集積回路１０とメモリー５０との間のクロック配線２２Ａ（通常は、配線基板上に設けられる）の長さや形状の影響によって、メモリー５０が受け取るクロック信号ＣＬＫのタイミングを厳密に制御することが困難である。このため、特に、クロック信号ＣＬＫに同期してデータの書き込みおよび読み出しを行う同期型メモリーをメモリー５０として利用した場合、データの書き込みもしくは読み出しを行おうとした時に動作異常が発生し、その後のデータ書き込み、読み出しが行えない異常状態（スタック状態）になることがある。
【００２２】
また、突発的なノイズによって異常状態になることもある。
【００２３】
そこで、メモリー５０の状態を監視し、このような異常状態になったことを検出するために、半導体集積回路１０は、さらに、命令監視部４２、書込データ保持部４４、読出データ保持部４６、データ比較部４８からなるメモリー監視回路４０を含む。これらメモリー監視回路４０の各部は、それぞれ、クロック信号ＣＬＫの供給を受け、クロック信号ＣＬＫに同期して動作する。
【００２４】
命令監視部４２は、命令配線３４Bに接続されており、メモリーインタフェース３０からメモリー５０に送られる命令ＣＯＭおよびアドレス信号ＡＤＤＲを監視する。そして、メモリー５０に送られる命令が書き込み命令であり、かつ、対象アドレスが特定のアドレスであることを検知すると、書込データ保持部４４に書込データ保持命令Ｗ＿ＣＯＭを送る。命令監視部４２は、また、メモリー５０に送られる命令が読出命令であり、かつ、対象アドレスが特定のアドレスであることを検知すると、読出データ保持部４６に読出データ保持命令Ｒ＿ＣＯＭを送る。
【００２５】
書込データ保持部４４は、書込データ配線３２Ｂに接続されており、命令監視部４２からの命令Ｗ＿ＣＯＭを受けたときに、メモリー５０に送られる書込データを保持する。ここで、アドレス信号と書込データとは、メモリー５０の仕様によって決まる特定のタイミング関係を持って、メモリー５０に送られる。命令監視部４２は、この特定のタイミング関係を考慮することにより、特定のアドレスに書き込まれるためにメモリー５０に送られるデータを保持することができるタイミングで、書込データ保持部４４に保持命令Ｗ＿ＣＯＭを送る。
【００２６】
また、書込データ保持部４４は、図示しない書込データ保持フラグを有しており、書込データの保持が行われたときに書込フラグを設定する。書込フラグの値ＦＬＧは、読出データ保持部４６から読み出し可能である。
【００２７】
読出データ保持部４６は、読出データ配線３２Ｃに接続されている。そして、書込データ保持部４４の保持フラグが設定された状態で、命令監視部４２からの保持命令Ｒ＿ＣＯＭを受けたときに、メモリー５０から読み出されてメモリーインタフェース３０に送られる読出データを保持する。この時にも、命令監視部４２は、特定のアドレスから読み出されたデータを保持することができるタイミングで、読出データ保持部４６に保持命令Ｒ＿ＣＯＭを送る。読出データ保持部４６は、読出データの保持が行われたときには、書込データ保持部４４およびデータ比較部４８に、読出データ保持通知信号Ｒ＿ＲＥＧを出力する。保持通知信号Ｒ＿ＲＥＧが入力されると、書込データ保持部４４は、データ保持フラグを初期化する。
【００２８】
データ比較部４８は、保持通知信号Ｒ＿ＲＥＧが入力されると、書込データ保持部４４に保持された書込データと、読出データ保持部４６に保持された読出データとを読み出し、両者を比較する。そして、比較結果に応じて、メモリー状態通知信号ＳＴＡを出力する。ここで、読出データ保持部４６に保持された読出データは、書込データ保持部４４に保持された書込データが書き込まれた特定のアドレスから読み出されたデータである。従って、メモリー５０が正常な状態である場合には両者が一致する。逆に、両者が異なっていた場合には、メモリー５０の状態が異常であると判断できる。
【００２９】
図１に示す半導体集積回路１０に設けられたメモリー監視回路４０では、ユーザーロジック部２０に設けられた各種の回路がメモリー５０を利用するときに命令配線３４を通じて送られる命令ＣＯＭおよびアドレス信号ＡＤＤＲを命令監視部４２が監視する。そして、命令監視部４２が特定の命令およびアドレスを検出したときに、書込データ保持部４４および読出データ保持部４６に保持命令Ｗ＿ＣＯＭ、Ｒ＿ＣＯＭを送る。そして、命令監視部４２からの命令を受けた書込データ保持部４４および読出データ保持部４６が、ユーザーロジック部２０に設けられた各種の回路がメモリー５０を利用するときに書込データ配線３２Ｂを通じて送る書込データＷ＿ＤＡＴＡおよび読出データ配線３２Ｃを通じて受け取る読出データＲ＿ＤＡＴＡを保持する。そして、書込データ保持部４４および読出データ保持部４６に保持されたデータをデータ比較部４８が比較することによって、メモリー５０の動作異常を検知する。
【００３０】
このように、メモリー監視回路４０は、ユーザーロジック部２０からの指示を必要とすることなくメモリー５０の状態を監視することができる。従って、ユーザーロジック部２０の設計を行う設計者が意識することなくメモリー５０の監視を行うことができる。また、メモリー監視回路４０は、ユーザーロジック部２０の回路がメモリー５０を利用するために送られる命令、アドレス、およびデータを、監視もしくは保持するのみであり、メモリー５０を監視するためにメモリー５０を利用することはない。従って、ユーザーロジック部２０の回路がメモリー５０を利用して行うデータ処理の効率が低下することもない。
【００３１】
データ比較部４８では、書込データと読出データとの不一致が検出されたときに、直ちに、メモリーの異常を示す状態通知信号ＳＴＡを出力することも可能である。もしくは、データ比較部４８内に図示しないカウンタを設け、累積の不一致検出回数が所定回数に達したときに状態通知信号ＳＴＡを出力することも可能である。出力された状態通知信号ＳＴＡは、ＡＮＤゲート３６を介してメモリーインタフェース３０のリセット端子に供給される。そして、メモリーインタフェース３０から、メモリー５０を初期化するための命令がメモリー５０に供給され、メモリー５０が初期化される。これによって、メモリー５０の異常状態（スタック状態）が解消され、再び、データの書き込み、読み出しを行うことが可能になる。
【００３２】
この時、半導体集積回路１０のユーザーロジック部２０の初期化を行うことなく、メモリー５０のみの初期化が行われる。従って、半導体集積回路１０のユーザーロジック部２０に設けられた各種の回路による、メモリー５０を利用したデータ処理を、メモリー５０初期化の終了後、直ちに再開することができる。また、メモリー５０の初期化を行う以前にユーザーロジック部２０の回路で行われていた中間処理結果が失われることもない。
【００３３】
例えば、メモリーインタフェース３０をＡＳＩＣ製造者がマクロセルとして用意し、顧客が、このメモリーインタフェース３０を介してメモリー５０を利用するユーザーロジック部２０の回路を設計した、ＡＳＩＣ製品として半導体集積回路１０を構成することが可能である。そして、ＡＳＩＣ製造者は、メモリーインタフェース３０と組み合わせて利用するメモリー監視回路４０を、マクロ（ソフトマクロ）セルとして用意しておき、ユーザーロジック部２０の設計データを顧客から受け取った段階で、メモリーインタフェース３０およびメモリー監視回路４０を組み合わせて半導体集積回路１０を構成することができる。この場合、顧客は、メモリー監視回路４０の存在さえ、意識する必要がない。
【００３４】
図２は、図１に示す半導体集積回路１０の動作の概要を示すフロー図である。
【００３５】
まず、ステップＳ１１０において電源投入が行われる。そして、ステップＳ１１２においてユーザーロジック部２０、メモリーインタフェース３０、およびメモリー監視回路４０の初期化が行わる。具体的には、メモリー監視回路４０においては、書込データ保持部４４の図示しないデータ保持フラグの値を“０”に、データ比較部４８の図示しないカウンタのカウント値Ｃｏｕｎｔを“０”にする。さらに、ステップＳ１１４において、メモリー５０の初期化が行われる。すなわち、ユーザーロジック部２０がメモリーインタフェース３０にリセット信号ＲＳＴを送り、メモリーインタフェース３０がメモリー５０に、メモリー５０の初期化のために必要な命令を送る。
【００３６】
初期化の終了後、半導体集積回路１０のユーザーロジック部２０に設けられたさまざまな回路は、通常の動作を行う。この動作において、メモリー５０へのデータ書き込みが必要になったときには、メモリーインタフェース３０および命令配線３４を通じて、メモリー５０に、書込命令、および、書込対象のアドレスを示すアドレス信号を送る。また、メモリーインタフェース３０およびデータ配線３２Ｂ、３２Ａを通じて、メモリー５０に、書き込むべきデータを送る。同様に、メモリー５０に書き込んだデータの読み出しが必要になった場合には、メモリーインタフェース３０および命令配線３４を通じて、メモリー５０に、読出命令、および、読出対象のアドレスを示すアドレス信号を送る。そして、メモリーから読み出されたデータを、データ配線３２Ａ、３２Ｃ、および、メモリーインタフェース３０を介して受け取る。
【００３７】
このような動作をユーザーロジック部２０の回路が行っている期間に、メモリー監視回路４０が、メモリー５０の状態の監視を行う。すなわち、ステップＳ１２０において、命令監視部４２が、メモリー５０に送られる命令およびアドレス信号の監視を行う。そして、ステップＳ１２２で、特定のアドレスへのデータ書き込み命令が検出されると、書込データ保持部４４にデータ保持命令が送られる。これにより、ステップＳ１２４で、特定のアドレスへの書き込みのためにメモリー５０に送られるデータが、書込データ保持部４４に保持される。また、書込データ保持部４４内の図示しない保持フラグが“１”にセットされる。その後、ステップＳ１２０に戻って、命令およびアドレス信号の監視が継続される。
【００３８】
一方、ステップＳ１３０で、特定のアドレスからのデータ読み出し命令が検出されると、読出データ保持部４６に、読出データ保持命令が送られる。この場合には、ステップ１３２において、書込データ保持部４４の保持フラグの値ＦＬＧの確認が行われる。保持フラグがセットされていない（ＦＬＧ＝０）場合は、ステップＳ１２０に戻り、監視が継続される。一方、保持フラグがセットされている（ＦＬＧ＝１）場合には、ステップＳ１３４で、メモリー５０の特定のアドレスから読み出されてメモリーインタフェース３０に送られるデータが、読出データ保持部４６に保持される。また、読出データ保持部４６から書込データ保持部４４に、保持通知信号が送られ、保持フラグが“０”に初期化される。
【００３９】
保持通知信号は、また、読出データ保持部４６からデータ比較部４８にも送られる。そして、ステップＳ１４０で、データ比較部４８において、書込データ保持部４４に保持された書込データと読出データ保持部４６に保持された読出データとの比較が行われる。比較によって両データの一致が検出された場合には、ステップＳ１４２で、データ比較部４８のカウンタのカウント値Ｃｏｕｎｔが“０”に初期化され、ステップＳ１２０に戻って、命令監視部４２による監視が継続される。データの不一致が検出された場合には、ステップＳ１４４でカウント値Ｃｏｕｎｔに１を追加し、ステップＳ１４６で、カウント値Ｃｏｕｎｔの確認が行われる。カウント値Ｃｏｕｎｔが所定の値（Ｎ）に達していない場合には、ステップＳ１２０に戻り、メモリー５０の監視が継続される。一方、カウント値が所定の値に達したことが検出された場合には、ステップＳ１４８でカウント値Ｃｏｕｎｔが“０”に初期化され、データ比較部４８から異常状態を示す状態通知信号ＳＴＡが出力される。
【００４０】
状態通知信号ＳＴＡが、ＡＮＤゲート３６を介してメモリーインタフェース３０に入力されると、ステップＳ１１４で、メモリー５０の初期化が行われる。その後、ユーザーロジック部２０によるメモリー５０を利用したデータ処理が再開されると、再び、メモリー監視回路４０によるメモリー５０の状態の監視が継続される。
【００４１】
図３には、メモリーインタフェース３０およびメモリー監視回路４０を含む半導体集積回路１０Ａを含む機器１００の実施形態の一例を示す。
【００４２】
図３に示す機器１００は、半導体集積回路１０Ａに入力される動画像データＭＰ＿ＤＡＴＡに基づいて、表示装置７０への表示を行う表示装置である。半導体集積回路１０Ａは、入力された動画像データＭＰ＿ＤＡＴＡに、所定の処理を行って生成した表示データＤＳＰ＿ＤＡＴＡを表示装置７０に出力する。半導体集積回路１０Ａのユーザーロジック部２０Ａには、動画像データに対して所定の処理を行うデータ処理回路が形成されている。処理回路は、動画像データの１フレーム分の画像データを、メモリーインタフェース３０を介して接続されたメモリー５０に記憶する。そして、この記憶された１フレーム分のデータを再び読み出しながら、例えば、輝度調整やオーバードライブ等の処理を行い、表示データＤＳＰ＿ＤＡＴＡを生成する。
【００４３】
図３に示す機器１００において、メモリー５０は、１フレーム分の画像データを記憶するためのフレームメモリーとして利用される。この場合、それぞれのフレーム期間毎に、所定の範囲内のアドレスへのデータの書き込みと読み出しが行われる。従って、メモリー監視回路４０によって監視する特定のアドレスを、この所定の範囲内に設定しておけば、それぞれのフレーム期間毎に、書込データと読出データとの比較を行うことができる。これ以外の用途でメモリー５０を利用する場合であっても、頻繁に書き込み、読み出しが行われるアドレスを、監視対象の特定アドレスとして設定することが好ましい。
【００４４】
本発明の半導体集積回路１０の開発中に、監視対象の特定アドレスを決定することが可能である場合には、開発時に設定を行う。例えば、ＡＳＩＣ製品として半導体集積回路１０を構成する場合には、ＡＳＩＣ製造者が、顧客が設計したユーザーロジック部２０に、メモリーインタフェース３０およびメモリー監視回路４０を組み合わせるときに、メモリー監視回路４０の設定を行う。このためには、監視対象の特定アドレスの設定が可能なマクロとして、メモリー監視回路４０を用意する。一方、開発段階において特定のアドレスを決定することが困難な場合には、命令監視部４２（図１参照）内に図示しないアドレス設定保持部を用意しておき、半導体対集積回路１０の製造後に設定を行うことも可能である。
【００４５】
メモリー５０に書き込む（読み出す）個々のアドレスをアドレス信号で指定するのではなく、先頭アドレスのみを指定して、先頭アドレスおよびそれに続くバースト長の範囲のアドレスに書き込む（読み出す）、バースト書き込み（読み出し）が行われる場合もある。この場合、命令監視部４２は、書込命令もしくは読出命令とともに、バースト長を考慮して、特定アドレスへの書き込み（読み出し）が行われる先頭アドレスを示すアドレス信号を検知したときに、保持命令を出力する。この時、例えば命令監視部４２内にクロック信号ＣＬＫをカウントする図示しないカウンタを設け、特定のアドレスに書き込む（読み出した）データが送られるタイミングで、書込データ保持部４４もしくは読出データ保持部４６に保持命令を送る。
【００４６】
書込データ保持部４４および読出データ保持部４６は、例えば、同時に書き込み、読み出しが行われる１ワード分のビット数のデータを保持するものである。図２のステップＳ１４０において、例えば、書込データ保持部４４と読出データ保持部４６に保持された複数ビットのデータとの間に、１ビット以上の不一致があれば、「不一致」と判断することができる。もしくは、１ビットの不一致だけで「不一致」と判断せず、２ビットもしくはそれ以上の所定のビット数以上の不一致があったときに「不一致」と判断することも可能である。
【００４７】
以上、本発明の実施形態について詳細に説明した。本発明が上記の具体例には限定されず、さまざまな変形、改良が可能であることは言うまでもない。
【００４８】
前述のように、メモリー５０を半導体集積回路１０と別チップとして設け、その間をチップ間の配線で接続した場合に、メモリー５０が異常状態になる場合が多く、本発明の有用性が高い。特に、それぞれの別のパッケージに格納した半導体集積回路１０とメモリー５０とを、配線基板に実装し、その間を配線基板の配線で接続した場合には、メモリー５０が異常状態になる可能性が高く、本発明の有用性が高い。しかし、半導体集積回路１０とメモリー５０とを、同一のパッケージ内に格納した場合であってもメモリー５０が異常状態になることはあり、本発明は有用である。さらに、半導体集積回路１０を、メモリー５０を含むチップとして構成した場合であっても、特に、メモリー５０の容量およびチップ寸法が大きくなり、メモリーインタフェース３０とメモリー５０との間を接続する配線の長さが増大した場合には、動作中に、メモリー５０が異常状態になる可能性はある。このような場合にも、本発明は有用である。
【図面の簡単な説明】
【００４９】
【図１】本発明の半導体集積回路の第１の実施形態の一例の構成を示すブロック図である。
【図２】本発明の半導体集積回路におけるメモリー監視の実施形態の一例を示すフロー図である。
【図３】本発明の半導体集積回路を利用した機器の一例の構成を示すブロック図である。
【符号の説明】
【００５０】
１０  半導体集積回路
２０  ユーザーロジック部
３０  メモリーインタフェース
４０  メモリー監視回路
５０  メモリー
７０  表示装置
【図１】
2009031974.tif 000003
【図２】
2009031974.tif 000004
【図３】
2009031974.tif 000005