(57)【要約】【課題】任意の状態で動作を停止させることが可能なメモリ装置を提供すること。【解決手段】コマンドデコーダ１１は、外部から受けたコマンドをデコードする。ＣＰＵ１２は、コマンドデコーダ１１によるデコード結果に応じて、フラッシュメモリ２０の動作を制御する。そして、ＣＰＵ１２は、プログラムカウント値とモードレジスタ１６に格納されたＢＲＥＡＫアドレスとが一致するときに動作を停止する。したがって、任意の状態でメモリ装置１の動作を停止させることが可能となる。【選択図】図２
2007213415.tif 000002
【特許請求の範囲】
【請求項１】
メモリと、
外部から受けたコマンドをデコードするコマンドデコード手段と、
前記コマンドデコード手段によるデコード結果に応じて、前記メモリの動作を制御するプロセッサと、
ブレークアドレスを格納する第１の格納手段とを含み、
前記プロセッサは、プログラムカウント値と前記格納手段に格納されたブレークアドレスとが一致するときに動作を停止する、メモリ装置。
【請求項２】
前記第１の格納手段は、外部からブレークアドレス受けて格納する、請求項２記載のメモリ装置。
【請求項３】
前記メモリ装置はさらに、外部から受けた命令コードを格納する第２の格納手段を含み、
前記コマンドデコード手段は、前記プロセッサが動作を停止中に外部から所定コマンドを受けると、前記第２の格納手段に格納された命令コードを前記プロセッサに与えて実行させる、請求項１記載のメモリ装置。
【請求項４】
前記第２の格納手段は、外部から受けた命令コードを複数格納し、
前記コマンドデコード手段は、前記プロセッサが動作を停止中に外部から所定コマンドを受けると、前記第２の格納手段に格納された複数の命令コードを順次前記プロセッサに与えて実行させる、請求項３記載のメモリ装置。
【請求項５】
前記プロセッサは、前記第２の格納手段に格納された命令コードを実行した後に、再度動作を停止する、請求項３記載のメモリ装置。
【請求項６】
前記メモリ装置はさらに、前記プロセッサが動作を停止するときに前記プロセッサへのクロックの供給を停止し、前記第２の格納手段に格納された命令コードを前記プロセッサに実行させるときに前記プロセッサへのクロックの供給を再開するクロック制御手段を含む、請求項３〜５のいずれかに記載のメモリ装置。
【請求項７】
前記メモリ装置はさらに、前記プロセッサによって実行されるプログラムを格納するプログラム格納手段を含み、
前記コマンドデコード手段は、前記プロセッサが動作を停止中に外部から所定コマンドを受けると、前記プロセッサに前記プログラム格納手段から命令コードを読出させて外部に出力させる、請求項１記載のメモリ装置。
【請求項８】
前記プロセッサは、プログラムカウント値をインクリメントしながら前記プログラム格納手段から命令コードを順次読出して外部に出力する、請求項７記載のメモリ装置。
【請求項９】
前記コマンドデコード手段は、通常処理時において外部から受けたコマンドのデコード結果を前記プロセッサに与えて前記プロセッサをイネーブルとし、前記プロセッサによる前記コマンドの処理が終了したときに前記プロセッサから処理終了の通知を受け、
前記コマンドデコード手段は、ブレークモード時において前記プロセッサからブレーク中である通知を受け、前記プロセッサをブレークモードから復帰させるときに、前記プロセッサにブレークモードからの復帰を通知すると共に前記プロセッサに実行させる命令コードを与える、請求項１記載のメモリ装置。
【請求項１０】
前記メモリ装置はさらに、前記コマンドデコード手段および前記第１の格納手段に接続されるパッドを含み、
前記プロセッサは、前記パッドには接続されずに、前記コマンドデコード手段および前記第１の格納手段に接続される、請求項２記載のメモリ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵ（Central Processing Unit）を内蔵したメモリ装置に関し、特に、ＣＰＵのブレーク機能を有するメモリ装置に関する。
【背景技術】
【０００２】
近年、高機能のメモリ装置が種々開発されており、ＣＰＵを搭載したものが多くなってきている。このようなメモリ装置において、メモリ装置の内部状態をモニタする機能があればテスト、評価、解析などが容易に行なえるようになる。
【０００３】
従来のメモリ装置においては、ＣＰＵがＲＯＭ（Read Only Memory）などに格納されたプログラムを実行し、メモリ装置内の周辺回路に対して制御信号を出力することによりメモリ装置の制御を行なう。
【０００４】
メモリ装置の内部状態をモニタするために、動作中のＣＰＵを停止させるブレーク機能が搭載されていることが多い。たとえば、プログラムを格納するＲＯＭ内に停止命令（ＢＲＥＡＫ命令）を埋め込んでおき、ＣＰＵがその停止命令を実行することによりプログラムの実行を停止する。ＣＰＵの動作が停止している状態で、内部状態を外部に出力することによりメモリ装置の内部状態をモニタすることが可能である。
【０００５】
これに関連する技術として、特許文献１に開示された発明がある。この特許文献１に開示されたデバッグ支援装置においては、モジュール番号比較器がモジュール番号フィールドとモジュール番号レジスタに保持されたモジュール番号とを比較し、アドレス比較器がアドレスフィールドに保持された停止アドレスと命令ＲＡＭ（Random Access Memory）のフェッチアドレスとを比較し、共に一致したときにブレーク信号を出力するものである。
【特許文献１】特開２００３−２２３３４０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述した従来のメモリ装置においては、ＲＯＭ内に停止命令を埋め込んでおくことにより任意のポイントでＣＰＵを停止させることができるが、ＣＰＵを停止させるポイントに予め停止命令を格納しておく必要がある。プログラムを格納するメモリがＲＯＭの場合、ブレークポイントを書き換えることができない。したがって、ブレークポイントを最適な位置に格納しておかなければならず、ブレークポイントを変更するためにはマスクの修正が必要となって、開発コストが大きくなったり、開発期間が長くなったりするという問題点があった。また、新たなテストを行ないたい場合には、同様の問題が発生する。
【０００７】
また、特許文献１に開示されたデバッグ支援装置においては、アドレスフィールドに保持される停止アドレスを書き換えることにより任意のアドレスでプログラムを停止させることができる。しかしながら、特許文献１に開示されたデバッグ支援装置は、一般的なマイクロコンピュータのデバッグを対象としており、特許文献１に開示された発明をメモリ装置のテスト、評価、解析などに適用することはできない。
【０００８】
本発明は、上記問題点を解決するためになされたものであり、その目的は、任意の状態で動作を停止させることが可能なメモリ装置を提供することである。
【課題を解決するための手段】
【０００９】
本発明のある局面に従えば、メモリ装置は、メモリと、外部から受けたコマンドをデコードするコマンドデコード手段と、コマンドデコード手段によるデコード結果に応じて、メモリの動作を制御するプロセッサと、ブレークアドレスを格納する第１の格納手段とを含み、プロセッサは、プログラムカウント値と格納手段に格納されたブレークアドレスとが一致するときに動作を停止する。
【発明の効果】
【００１０】
本発明のある局面によれば、プロセッサが、プログラムカウント値と格納手段に格納されたブレークアドレスとが一致するときに動作を停止するので、任意の状態でメモリ装置の動作を停止させることが可能となる。
【発明を実施するための最良の形態】
【００１１】
図１は、ＣＰＵを搭載したメモリ装置の構成例を示すブロック図である。このメモリ装置は、外部からのコマンドを解析するコマンドデコーダ（ＣＯＭＤＥＣ）１１０と、コマンドデコーダ１１０による解析結果に応じてメモリ装置の全体的な制御を行なうＣＰＵ１２０と、ＣＰＵ１２０が実行するプログラムが格納されるＲＯＭ２１と、外部クロック生成回路２２と、内部クロック生成回路２３とを含む。
【００１２】
また、ＣＰＵ１２０は、ＲＯＭ２１からの命令および外部ＣＰＵ命令のいずれかを選択して出力する組合せ回路４１と、組合せ回路４１からの命令を保持する命令レジスタ（ＩＲ）４２と、ＢＲＥＡＫモード制御部４３と、外部クロック生成回路２２および内部クロック生成回路２３からのクロックを選択的に出力するセレクタ４９とを含む。
【００１３】
コマンドデコーダ１１０は、アドレス制御信号がハイレベル（以下、Ｈレベルと呼ぶ。）、コマンド制御信号がロウレベル（以下、Ｌレベルと呼ぶ。）のときに、ライトイネーブル信号の立ち上がりでＩ／Ｏ［７：０］の値をアドレスとして取込み、図示しないアドレスバッファに書込む。また、コマンドデコーダ１１０は、アドレス制御信号がＬレベル、コマンド制御信号がＨレベルのときに、ライトイネーブル信号の立ち上がりでＩ／Ｏ［７：０］の値をコマンドとして取込む。
【００１４】
コマンドデコーダ１１０は、取込んだコマンドが正常なコマンドであれば、ＣＰＵ１２０を起動する。このとき、ｂｕｓｙ制御部３１は、内部状態をｂｕｓｙ状態にして以降のコマンドを受付けないように制御を行なう。ＣＰＵ１２０の起動時には、内部クロック生成回路２３からの内部クロックがＩＲ４２に与えられる。ＣＰＵ１２０による内部動作が完了したときに、ｂｕｓｙ制御部３１は、内部状態をｒｅａｄｙ状態にして次のコマンドを受付けるよう制御を行なう。
【００１５】
ＣＰＵ１２０内部の図示しない命令デコーダがＢＲＥＡＫ命令をデコードすると、ＢＲＥＡＫモード制御部４３は、組合せ回路４１が外部ＣＰＵ命令を選択し、セレクタ４９が外部クロック生成回路２２からの外部クロックを選択するよう制御を行なう。
【００１６】
外部クロック生成回路２２は、ライトイネーブル信号に同期して外部クロックを生成してＣＰＵ１２０に与える。ＣＰＵ１２０がＢＲＥＡＫモードになったときに、外部クロック生成回路２２からの外部クロックに同期してＣＰＵ１２０に外部ＣＰＵ命令が与えられ、ＣＰＵ１２０がその外部ＣＰＵ命令を実行することにより、メモリ装置のテスト、評価、解析などが行なわれる。
【００１７】
しかしながら、図１に示すメモリ装置においては、ＢＲＥＡＫ命令がＲＯＭ２１内に埋め込まれているため、任意のＢＲＥＡＫポイントでＣＰＵ１２０を停止させることが困難である。
【００１８】
また、外部クロック生成回路２２と内部クロック生成回路２３とが別個に設けられているため、異クロックの切替え処理が必要になる。マイクロコンピュータなどのように常にクロックが入力されているシステムでは異なるクロックの同期を取ることは比較的容易であるが、メモリ装置のようにクロックが不定期に入力されるシステムでは異なるクロックの同期を取ることが難しい。
【００１９】
したがって、テストモードを追加することにより、ノーマルモード機能に悪影響を与えることがある。このような理由から、テストモードの場合であっても異クロックを使用することなく、ＣＰＵ用クロックのみで動作させることが望ましい。
【００２０】
（第１の実施の形態）
図２は、本発明の第１の実施の形態におけるメモリ装置の概略構成を示すブロック図である。このメモリ装置１は、コマンドデコーダ１１と、ＣＰＵ１２と、ＰＡＤ１３と、データレジスタ１４と、アドレス制御回路１５と、モードレジスタ１６と、ステータスレジスタ１７と、センス／ラッチ部１８と、パワー制御部１９と、フラッシュメモリ２０とを含む。
【００２１】
コマンドデコーダ１１は、ＰＡＤ１３を介して入力したアドレス制御信号がＨレベル、コマンド制御信号がＬレベルのときに、ライトイネーブル信号の立ち上がりでＩ／Ｏ［７：０］の値をアドレスとして取込み、内部のアドレスバッファに書込む。また、コマンドデコーダ１１は、アドレス制御信号がＬレベル、コマンド制御信号がＨレベルのときに、ライトイネーブル信号の立ち上がりでＩ／Ｏ［７：０］の値をコマンドとして取込む。
【００２２】
コマンドデコーダ１１はコマンドを取込むと、そのコマンドをデコードする。取込んだコマンドが通常処理時のＣＰＵコマンドであれば、コマンドデコーダ１１はＣＰＵイネーブル信号を出力してＣＰＵ１２を起動すると共に、ＣＰＵコマンドをＣＰＵ１２に発行する。ＣＰＵ１２は、コマンドデコーダ１１から受けたＣＰＵコマンドの処理を終了すると、コマンドデコーダ１１にＣＰＵ処理終了信号を出力する。
【００２３】
また、コマンドデコーダ１１は、ＢＲＥＡＫモード中にＢＲＥＡＫモードからの復帰コマンドをデコードすると、ＢＲＥＡＫ復帰選択信号をＣＰＵ１２に出力すると共に、ＢＲＥＡＫ復帰時のＣＰＵ命令コードをＣＰＵ１２に発行する。なお、コマンドデコーダ１１は、ＣＰＵ１２からのＢＲＥＡＫモード信号によってＣＰＵ１２がＢＲＥＡＫモードであるか否かを判定する。
【００２４】
データレジスタ１４は、フラッシュメモリ２０への書込みデータおよびフラッシュメモリ２０からの読出しデータを一時的に保持するレジスタであり、ライトイネーブル信号がＨレベルのときにＩ／Ｏ［７：０］の値をデータとして取込み、リードイネーブル信号がＨレベルのときに保持しているデータをＩ／Ｏ［７：０］に出力する。
【００２５】
アドレス制御回路１５は、コマンドデコーダ１１内部のアドレスバッファに保持されるアドレスをデコードし、フラッシュメモリ２０のロウアドレス、カラムアドレスや、モードレジスタ１６などのレジスタを指定するためのセレクト信号を生成する。
【００２６】
モードレジスタ１６は、後述するＢＲＥＡＫモードの設定、ＢＲＥＡＫ許可、フラッシュメモリ制御用電源の電圧値の変更、シーケンスの変更などの情報を保持する。このモードレジスタ１６の内容を参照することにより、メモリ装置１は設定変更などを行なう。ＣＰＵ１２は、モードレジスタ１６の内容を書換えることも可能である。
【００２７】
ステータスレジスタ１７は、フラッシュメモリ２０の状態を保持するレジスタであり、フラッシュメモリ２０の状態をＩ／Ｏ［７：０］を介して外部に出力する。
【００２８】
センス／ラッチ部１８は、フラッシュメモリ２０からのデータ読出し時のセンス制御およびデータラッチと、フラッシュメモリ２０へのデータ書込み時のデータラッチおよびメモリアレイに印加する電圧の制御とを行なう。
【００２９】
パワー制御部１９は、ＣＰＵ１２からの指示に応じてモードレジスタ１６の内容を参照し、電圧設定、印加回数などのフラッシュメモリ２０の電源制御を行なう。また、パワー制御部１９は、フラッシュメモリ２０の電源制御の状態をＣＰＵ１２に出力する。
【００３０】
図３は、コマンドデコーダ１１とＣＰＵ１２との間の信号を動作モードで分けて示す図である。通常処理（通常動作モード）時においては、コマンドデコーダ１１がコマンドをデコードすると、ＣＰＵ１２にＣＰＵイネーブル信号を出力すると共に、ＣＰＵコマンドを発行する。ＣＰＵ１２がそのＣＰＵコマンドの処理を終了すると、コマンドデコーダ１１にＣＰＵ処理終了信号を出力する。
【００３１】
また、ＢＲＥＡＫモード時においては、コマンドデコーダ１１はＣＰＵ１２からＢＲＥＡＫモード信号を受け、ＢＲＥＡＫモード中であることを認識する。そして、ＢＲＥＡＫモード中にＢＲＥＡＫモードからの復帰コマンドをデコードすると、ＢＲＥＡＫ復帰選択信号をＣＰＵ１２に出力すると共に、ＢＲＥＡＫ復帰時のＣＰＵ命令コードをＣＰＵ１２に発行する。ＣＰＵ１２は、コマンドデコーダ１１からＣＰＵ命令コードを受けると、その命令コードを実行する。
【００３２】
図４は、本発明の第１の実施の形態におけるコマンドデコーダ１１の詳細な構成を示すブロック図である。コマンドデコーダ１１は、外部Ｉ／Ｆ（Interface）制御部３２と、コマンド制御部３３と、ＢＲＥＡＫ制御部３４と、クロック生成部３５とを含む。また、ＢＲＥＡＫ制御部３４は、ＢＲＥＡＫ解除コマンドデコード部３６と、ステート制御部３７と、データバッファ３８とを含む。
【００３３】
外部Ｉ／Ｆ制御部３２は、ＰＡＤ１３を介して入力したアドレス制御信号がＨレベル、コマンド制御信号がＬレベルのときに、ライトイネーブル信号の立ち上がりでＩ／Ｏ［７：０］の値をアドレスとして取込み、図示しないアドレスバッファに書込む。また、コマンドデコーダ１１は、アドレス制御信号がＬレベル、コマンド制御信号がＨレベルのときに、ライトイネーブル信号の立ち上がりでＩ／Ｏ［７：０］の値をコマンドとして取込み、コマンド制御部３３およびＢＲＥＡＫ解除コマンドデコード部３６に出力する。
【００３４】
コマンド制御部３３は、外部Ｉ／Ｆ制御部３２からコマンドを受けてデコードし、そのコマンドが通常処理時のＣＰＵコマンドであれば、ＣＰＵイネーブル信号を出力してＣＰＵ１２を起動すると共に、ＣＰＵコマンドをＣＰＵ１２に発行する。このとき、コマンド制御部３３は、Ｒｅａｄｙ／Ｂｕｓｙ信号によって外部にＢＵＳＹ状態であることを通知する。また、コマンド制御部３３は、ＣＰＵ１２からＣＰＵ処理終了信号を受けると、Ｒｅａｄｙ／Ｂｕｓｙ信号によって外部にＲｅａｄｙ状態であることを通知する。
【００３５】
ＢＲＥＡＫ解除コマンドデコード部３６は、ＣＰＵ１２からＢＲＥＡＫモード信号を受けているときに、外部Ｉ／Ｆ制御部３２からコマンドを受けると、そのコマンドがＢＲＥＡＫ解除コマンドであるか否かを判定する。ＢＲＥＡＫ解除コマンドであれば、ＢＲＥＡＫ解除コマンドデコード部３６はＢＲＥＡＫ復帰選択信号をＣＰＵ１２に出力し、ステート制御部３７に復帰方法を指示すると共に、続いて入力されるＣＰＵ命令コードをデータバッファ３８に書込む。
【００３６】
ＢＲＥＡＫ解除コマンドには、複数の種類がある。たとえば、ＢＲＥＡＫ解除コマンドデコード部３６がＢＲＥＡＫ解除コマンド“Ｃ０”をデコードした場合、ＢＲＥＡＫ復帰選択信号によってＣＰＵ１２にその旨を通知する。ＣＰＵ１２は、ＢＲＥＡＫ復帰選択信号によってＢＲＥＡＫ解除コマンド“Ｃ０”が発行された通知を受けると、ＢＲＥＡＫモードを直ちに解除してＣＰＵ１２に内部クロックを供給し、ＲＯＭ２１の次のアドレスからの命令コードのフェッチを再開する。
【００３７】
また、ＢＲＥＡＫ解除コマンドデコード部３６がＢＲＥＡＫ解除コマンド“Ｃ１”をデコードした場合、ＢＲＥＡＫ復帰選択信号によってＣＰＵ１２にその旨を通知する。このとき、ステート制御部３７は、ライトイネーブル信号の３サイクルでＩ／Ｏ［７：０］を介してＣＰＵ命令コードを入力する制御を行ない、そのＣＰＵ命令コードをデータバッファ３８に格納する。たとえば、ＣＰＵ命令コードが１７ビットであれば、ライトイネーブル信号の最初の立ち上がりでＣＰＵ命令コード［１５：８］を入力し、２番目の立ち上がりでＣＰＵ命令コード［７：０］を入力し、３番目の立ち上がりでＣＰＵ命令コード［１６］を入力するよう制御を行なう。
【００３８】
ＢＲＥＡＫ解除コマンド“Ｃ１”の場合には、ＢＲＥＡＫモードが解除されず、ＣＰＵ１２がＣＰＵ命令コードを実行した後、ＢＲＥＡＫモードの状態を維持する。ＢＲＥＡＫモードを解除する場合には、上述したＢＲＥＡＫ解除コマンド“Ｃ０”を外部から入力する必要がある。
【００３９】
クロック制御部３５は、ＰＡＤ１３を介してライトイネーブル信号を受け、コマンドデコーダ１１内部の各ブロックに与えるクロック信号を生成する。
【００４０】
図５は、本発明の第１の実施の形態におけるＣＰＵ１２の詳細な構成を示すブロック図である。このＣＰＵ１２は、命令制御部４１と、命令レジスタ４２と、ＢＲＥＡＫモード制御部４３と、プログラムカウンタ４４と、プログラムカウンタ４４の値をインクリメントするインクリメンタ４５と、ＣＰＵ命令をデコードするデコーダ４６と、アキュムレータ４７と、汎用レジスタ４８−１〜４８−ｎとを含む。
【００４１】
命令制御部４１は、通常動作モード時にはＲＯＭ２１からＣＰＵ命令をフェッチし、命令レジスタ４２に格納する。また、命令制御部４１は、ＢＲＥＡＫモード時にはコマンドデコーダ１１から外部ＣＰＵ命令（ＢＲＥＡＫ復帰ＣＰＵ命令コード）を受け、命令レジスタ４２に格納する。
【００４２】
ＢＲＥＡＫモード制御部４３は、モードレジスタ１６からＢＲＥＡＫ許可信号およびＢＲＥＡＫアドレスを受け、プログラムカウンタ４４から現在のプログラムカウント値を受ける。ＢＲＥＡＫモード制御部４３は、モードレジスタ１６にＢＲＥＡＫ許可が設定されている場合、モードレジスタ１６に設定されたＢＲＥＡＫアドレスとプログラムカウント値とを比較し、一致するとＢＲＥＡＫモード信号を出力してＢＲＥＡＫモードになったことをコマンドデコーダ１１および命令制御部４１に通知すると共に、内部クロックを停止させる。
【００４３】
プログラムカウンタ４４は、通常動作時にはインクリメンタ４５によってプログラムカウント値を１ずつインクリメントし、ＲＯＭアドレスとしてＲＯＭ２１に与える。また、デコーダ４６によって分岐命令がデコードされた場合は、プログラムカウンタ４４に分岐先アドレスが設定される。
【００４４】
また、プログラムカウンタ４４は、ＢＲＥＡＫモード時にはプログラムカウント値のインクリメントを停止する。そして、プログラムカウンタ４４は、ＢＲＥＡＫモードから復帰するときにプログラムカウント値のインクリメントを再開する。
【００４５】
デコーダ４６は、命令レジスタ４２に格納された命令をデコードし、ＣＰＵ１２内の各ブロックの制御信号を生成する。
【００４６】
ＣＰＵ１２は、コマンドデコーダ１１からのＢＲＥＡＫ復帰選択信号を受け、ＢＲＥＡＫモードからの復帰方法を決定する。コマンドデコーダ１１がＢＲＥＡＫ解除コマンド“Ｃ０”をデコードした場合、ＣＰＵ１２は内部クロックの供給を再開し、ＢＲＥＡＫアドレスの次の命令からプログラムの実行を開始する。
【００４７】
また、コマンドデコーダ１１がＢＲＥＡＫ復帰解除コマンド“Ｃ１”をデコードした場合、ＣＰＵ１２は内部クロックの供給を再開して外部ＣＰＵ命令を取込み、この外部ＣＰＵ命令を実行した後、再度内部クロックを停止してＢＲＥＡＫモードに入る。このとき、プログラムカウンタ４４の値はそのまま保持される。このＢＲＥＡＫ復帰解除コマンド“Ｃ１”を外部から与えることによって、ＣＰＵ１２をＢＲＥＡＫ状態にしたまま任意の処理が行なえるようになる。
【００４８】
このようなＢＲＥＡＫモードの使用方法として、たとえば外部からモードレジスタ１６にＢＲＥＡＫアドレスを設定し、そのアドレスでＣＰＵ１２をＢＲＥＡＫモードに遷移させる。このとき、メモリセルには高電圧が印加された状態であり、メモリ装置１の内部において各電源ポンプにどれだけの電圧が印加されているかを計測し、その情報をステータスレジスタ１７に格納する。そして、外部からステータスレジスタ１７の内容を読出すことにより、メモリ装置１の内部状態をモニタすることができる。内部状態のモニタが終了すると、ＢＲＥＡＫ復帰によってＢＲＥＡＫアドレスの次の命令の実行を再開する。
【００４９】
また、ＣＰＵ１２をＢＲＥＡＫモードに遷移させて内部状態をモニタする。そして、ＣＰＵ１２がＢＲＥＡＫモードのときに、モードレジスタ１６に次のＢＲＥＡＫアドレスを設定する。ＢＲＥＡＫ復帰によってＣＰＵ１２が通常動作モードとなった後、次のＢＲＥＡＫアドレスでＣＰＵ１２を再度停止させることができる。この操作を繰り返すことによって、連続的に任意の状態で内部状態をモニタすることが可能となる。
【００５０】
また、ＣＰＵ１２をＢＲＥＡＫモードに遷移させて内部状態をモニタする。そして、ＣＰＵ１２に外部ＣＰＵ命令を与えることによって状態を変化させ、内部状態をモニタすることが可能となる。
【００５１】
以上説明したように、本実施の形態におけるメモリ装置によれば、モードレジスタ１６に設定されたＢＲＥＡＫアドレスとプログラムカウンタ４４のアドレスとが一致するときにＣＰＵ１２がＢＲＥＡＫモードに遷移するようにしたので、任意のアドレスでＣＰＵ１２を停止させることが可能となった。したがって、従来のようにＲＯＭ内にＢＲＥＡＫ命令を埋め込む必要がなくなり、ＢＲＥＡＫポイントを変更するためのマスクの修正などが不要となるので、開発コストの削減、開発期間の短縮などが可能となった。
【００５２】
また、ＢＲＥＡＫモード中にモードレジスタ１６のＢＲＥＡＫアドレスを変更することによって、ステップバイステップでメモリ装置のテスト、評価、解析などを行なうことが可能となった。
【００５３】
また、ＣＰＵ１２に供給するクロックを１つとし、そのクロックの供給の停止／再開によってＢＲＥＡＫモードを実現しているので、異クロックを使用する場合のクロック切替えに伴う不良を削減することが可能となった。
【００５４】
また、ＣＰＵ１２がＢＲＥＡＫモードから復帰する（再度、ＢＲＥＡＫモードに入る）ときに、ＣＰＵ１２が外部ＣＰＵ命令を取込んで実行するようにしたので、ＣＰＵ１２に任意の処理を行なわせることができ、メモリ装置のテスト、評価、解析などが容易に行なえるようになった。
【００５５】
（第２の実施の形態）
図６は、本発明の第２の実施の形態におけるメモリ装置の概略構成を示すブロック図である。このメモリ装置は、コマンドデコーダ１１’と、ＣＰＵ１２’と、ＲＯＭ２１と、外部クロック生成回路５１と、内部クロック生成回路５２とを含む。なお、第１の実施の形態におけるメモリ装置と同じ構成および機能を有する部分には同一の参照番号を付しており、その詳細な説明は繰返さない。
【００５６】
コマンドデコーダ１１’は、ｂｕｓｙ制御部３１と、コマンドバッファ３９と、クロック制御部４０とを含む。
【００５７】
コマンドバッファ３９は、ＣＰＵ１２’がＢＲＥＡＫモードのときに外部ＣＰＵ命令としてＣＰＵ１２’に与える命令群を格納する。外部からの制御によって、アドレスバッファにアドレスを書込むことにより、コマンドバッファ３９を指定する。そして、ライトイネーブル信号の立ち上がりで、Ｉ／Ｏ［７：０］を介して外部ＣＰＵ命令をコマンドバッファ３９に順次格納する。コマンドバッファ３９への外部ＣＰＵ命令の書込みタイミング信号は、外部クロック生成回路５１によって生成される。
【００５８】
クロック制御部４０は、ＣＰＵ１２’に与える内部クロックを制御する。ＣＰＵ１２’の通常動作時において、クロック制御部４０は、ＣＰＵ１２’に対して内部クロックを供給するよう内部クロック生成回路５２を制御する。また、ＣＰＵ１２’のＢＲＥＡＫモード時において、クロック制御部４０は、ＣＰＵ１２’への内部クロックの供給を停止するよう内部クロック生成回路５２を制御する。そして、ＣＰＵ１２’に外部ＣＰＵ命令を与えるときに、内部クロック生成回路５２を制御して内部クロックの供給を再開し、内部クロックに同期してコマンドバッファ３９に格納された外部ＣＰＵ命令を順次ＣＰＵ１２’に与える。
【００５９】
以上説明したように、本実施の形態におけるメモリ装置によれば、ＣＰＵ１２’に供給するクロックを１つとし、そのクロックの供給の停止／再開によってＢＲＥＡＫモードを実現しているので、異クロックを使用する場合のクロック切替えに伴う不良を削減することが可能となった。
【００６０】
また、ＣＰＵ１２’がＢＲＥＡＫモード中にコマンドバッファ３９に格納された外部ＣＰＵ命令を順次ＣＰＵ１２’に与えることができるので、メモリ装置のテスト、評価、解析などをさらに容易に行なうことが可能となった。
【００６１】
（第３の実施の形態）
本発明の第３の実施の形態におけるメモリ装置の概略構成は、図２に示す第１の実施の形態におけるメモリ装置の概略構成と同様である。また、本発明の第３の実施の形態におけるコマンドデコーダ１１およびＣＰＵ１２の構成は、図４および図５に示す第１の実施の形態におけるコマンドデコーダ１１およびＣＰＵ１２の構成と同様である。したがって、重複する構成および機能の詳細な説明は繰返さない。
【００６２】
図５に示すＣＰＵ１２において、ＢＲＥＡＫモード制御部４３は、モードレジスタ１６に設定されたチェックサムテスト信号を受ける。ＢＲＥＡＫモード制御部４３は、チェックサムテスト信号が有効となっているときにＢＲＥＡＫモードに入ると、命令レジスタ４２の内容にかかわらず常にプログラムカウンタの値を１ずつインクリメントするよう制御を行なう。したがって、分岐命令は無視される。
【００６３】
たとえば、コマンドデコーダ１１がＢＲＥＡＫ復帰解除コマンドをデコードした場合、ＣＰＵ１２は内部クロックの供給を再開してＲＯＭ２１からＣＰＵ命令をフェッチし、そのＣＰＵ命令をステータスレジスタ１７に格納する。そして、外部システムがステータスレジスタ１７に格納される値を読出す。このとき、ＣＰＵ１２は再度ＢＲＥＡＫモードに入る。外部システムは、ＢＲＥＡＫ復帰解除コマンドを発行した後ステータスレジスタ１７に格納される値を読出して順次加算することによってチェックサム値を算出することができる。また、ＲＯＭ２１内に予めチェックサムの期待値を格納しておき、算出したチェックサム値と期待値とを比較することによってチェックサムテストが容易に行なえるようになる。
【００６４】
以上説明したように、本実施の形態におけるメモリ装置によれば、ＣＰＵ１２がＢＲＥＡＫモードとなったときに、ＲＯＭ２１の内容を読出してステータスレジスタ１７に格納することにより、外部システムがＲＯＭ２１の内容を読出せるようにしたので、チェックサムテストを容易に行なうことが可能となった。
【００６５】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【００６６】
【図１】ＣＰＵを搭載したメモリ装置の構成例を示すブロック図である。
【図２】本発明の第１の実施の形態におけるメモリ装置の概略構成を示すブロック図である。
【図３】コマンドデコーダ１１とＣＰＵ１２との間の信号を動作モードで分けて示す図である。
【図４】本発明の第１の実施の形態におけるコマンドデコーダ１１の詳細な構成を示すブロック図である。
【図５】本発明の第１の実施の形態におけるＣＰＵ１２の詳細な構成を示すブロック図である。
【図６】本発明の第２の実施の形態におけるメモリ装置の概略構成を示すブロック図である。
【符号の説明】
【００６７】
１  メモリ装置、１１，１１’，１１０  コマンドデコーダ、１２，１２’，１２０  ＣＰＵ、１３  ＰＡＤ、１４  データレジスタ、１５  アドレス制御回路、１６  モードレジスタ、１７  ステータスレジスタ、１８  センス／ラッチ部、１９  パワー制御部、２０  フラッシュメモリ、２２，５１  外部クロック生成回路、２３，５２  内部クロック生成回路、３１  ｂｕｓｙ制御部、３２  外部Ｉ／Ｆ制御部、３３  コマンド制御部、３４  ＢＲＥＡＫ制御部、３５  クロック生成部、３６  ＢＲＥＡＫ解除コマンドデコード部、３７  ステート制御部、３８  データバッファ、３９  コマンドバッファ、４０  クロック制御部、４１  命令制御部、４２  命令レジスタ、４３  ＢＲＥＡＫモード制御部、４４  プログラムカウンタ、４５  インクリメンタ、４６  デコーダ、４７  アキュムレータ、４８−１〜４８−ｎ  汎用レジスタ。
【図１】
2007213415.tif 000003
【図２】
2007213415.tif 000004
【図３】
2007213415.tif 000005
【図４】
2007213415.tif 000006
【図５】
2007213415.tif 000007
【図６】
2007213415.tif 000008