(57)【特許請求の範囲】
【請求項１】
所定のクロック信号に同期して動作し、１又は複数のデータを書換え可能に記憶するデータ記憶手段と、
前記所定のクロック信号に同期して動作し、書き込まれたパスワードデータを記憶するパスワードデータ記憶手段と、
前記データ記憶手段と前記パスワード記憶手段とに共通接続され、前記パスワードデータを前記パスワードデータ記憶手段に供給した後に、前記データ記憶手段に記憶すべき前記１又は複数のデータを該データ記憶手段に供給するためのデータバス手段と、
比較基準となるパスワードデータを発生するパスワードデータ発生手段と、
前記パスワードデータ記憶手段に記憶されたデータと、前記パスワードデータ発生手段によって発生されたデータとを比較する比較手段と、
前記比較手段による比較結果が不一致である場合に前記データ記憶手段へのデータの書き込みを禁止する書き込み禁止手段と、
前記所定のクロック信号に同期して動作し、前記パスワードデータ記憶手段にパスワードを記憶させるサイクルの後のサイクルであって前記データ記憶手段にデータを書き込むサイクルと同一サイクルにおいて、前記比較手段による比較結果が一致である場合に、前記データ記憶手段へのアクセスを示す信号と前記データ記憶手段へのデータ書き込みを指示する信号とから生成される前記データ記憶手段へのデータの書き込みを制御する信号に基づいて、前記パスワードデータ記憶手段の記憶内容を初期化するパスワードデータ初期化手段とを備えることを特徴とする半導体集積回路。
【請求項２】
前記データ記憶手段が、前記半導体集積回路を含む回路システムのリセット、クロック、又は割り込みの１又は複数の動作を制御する１又は複数のレジスタであることを特徴とする請求項１記載の半導体集積回路。
【請求項３】
前記パスワードデータ初期化手段が、前記比較手段による比較結果が一致である場合に、前記データ記憶手段へのアクセスを示す信号と前記データ記憶手段へデータ書き込みを指示する信号とが発生されたときに、前記所定のクロック信号に同期して前記パスワードデータ記憶手段の記憶内容を初期化することを特徴とする請求項１または２のいずれか１項に記載の半導体集積回路。
【請求項４】
前記パスワードデータ初期化手段が、前記比較手段の出力と前記データ記憶手段へのアクセスを示す信号と前記データ記憶手段への書き込みを指示する信号とを入力信号とする論理回路と、その論理回路の出力に基づいて前記パスワードデータ記憶手段に対して初期化データを選択的に供給する選択回路とを有して構成されていることを特徴とする請求項１〜３のいずれか１項に記載の半導体集積回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、大規模集積回路等の半導体装置における所定の記憶回路に対するデータ書き込み等の制御を行うための制御回路に係り、特に記憶回路に対するデータ書き込み時の誤作動を防止するのに用いて好適な半導体集積回路に関する。
【０００２】
【従来の技術】
半導体装置内の記憶回路に対するデータ書き込み時に発生する誤作動には、記憶回路にアクセスするＣＰＵ（中央処理装置）等の制御回路によるバグ等に起因する誤った手順によるアクセスによるものや、プログラムの暴走によるものがある。また他の例としては、人為的不正なアクセスによって引き起こされるものや、静電気等による電気的雑音によって発生するものがある。従来、このような記憶回路に対するデータ書き込み時の誤作動を防止する回路としては、書き込み時にパスワードの照合を行うようにしたものが提案されている。
【０００３】
例えば、特開平７−２５３９３１号公報「プログラムデータ格納領域の破壊防止方式」には、ＲＯＭ（リードオンリメモリ）に格納されたファームウェアプログラムが使用する特定の書換え可能な記憶領域のデータが、他のソフトウェアプログラムのバグ等によって破壊されることを防止するための制御回路が記載されている。この制御回路では、初期設定時にファームウェアプログラムによってロックレジスタにパスワードを書き込んでおき、ファームウェアプログラムが特定の記憶領域にデータを書き込む際には、まずキーレジスタにパスワードを書き込み、ロックレジスタとキーレジスタの内容が一致したときのみ書き込みアクセスが有効となるような制御が行われている。データを書き込んだ後はファームウェアプログラムがキーレジスタをクリアすることで、ソフトウェアプログラムによる書き込みが禁止される。
【０００４】
また、特許２９５１９５９号公報「制御回路のデータ保護方法」には、キーワードが不一致の場合においてデータの書き込みアクセスが発生したときには、それをエラーとして報知するための手段を設けることが記載されている。また、この公報に記載されている制御回路は、さらに、エラーが発生したときには、機器の電源を落としてシステム全体の作動を停止させるように構成される。
また、特開２００１−２２６４２号公報「メモリの機密保持回路」には、人為的な不正なデータ書換えを防止するために、複数の入力データの演算結果を入力パスワードとして用いる技術が記載されている。この公報に記載されている制御回路では、複数の入力データの入力期間を電源投入後の所定期間に限定したり、照合先の正解パスワードを電源投入の回数によって選択的に変更できるようにする構成が開示されている。
【０００５】
上述したような従来の技術によれば、パスワードやキーワードを用いて書き込み保護された記憶回路に対するアクセスが、特定のファームウェアプログラム、あるいはパスワードを知る特定の操作者の操作に基づいて動作する特定のプログラムによって行われるようになっている。従って、所定のレジスタへのパスワード等の書き込みと、そのレジスタに記憶されたパスワードのクリアとが、予め決められた特定のプログラムによって制御される。
【０００６】
【発明が解決しようとする課題】
ところで、１チップマイクロプロセッサやＤＳＰ（デジタルシグナルプロセッサ）等の大規模集積回路は、内部にプロセッサ、メモリ、クロック回路、タイマ回路、制御レジスタ、等々の複数の回路を有している。この種の集積回路では、一般に、クロックの設定や変更、各内部回路の起動や停止、プログラムの割り込み動作の設定等が、書換え可能な制御レジスタに記憶したデータによって制御されるようになっている。この制御レジスタ内の各データの値は、システム全体の動作に大きな影響をおよぼすものであり、このようなデータが例えば内部のプロセッサのプログラムの暴走やノイズの発生等によって誤って書き換えられると、このプロセッサを搭載するシステム全体の動作が不安定となったり、システム全体を初期化しなければならない事態も起こり得るという問題がある。
【０００７】
このような制御レジスタの誤書き換えに対する対策の一つとして、前述した従来技術のように、パスワードを用いて保護する手法が考えられる。しかしながら、上述したような従来の技術によれば、パスワードを記憶するレジスタの制御が所定のプログラムによってなされるため、プログラムが暴走した場合には制御レジスタの書き換えが不能になる。また、パスワードの一回の書き込みによるデータの書き込み回数について制限がなされていなかったため、例えば外部のプロセッサがパスワードを書き込んでからそれをクリアするまでの間に、内部のプロセッサの誤作動によって誤ったデータの書き込みが複数回行われてしまう。このような場合には、例えば、ハードウェアによるリセットをかけなければ、システム全体の制御を回復できなくなる。
【０００８】
本発明は、上記事情に鑑みてなされたもので、プログラムなどによらずに制御レジスタなどの所定の記憶回路に対する誤書き込みを防止することができる半導体集積回路を提供することを目的とする。
【０００９】
【課題を解決するための手段】
上記課題を解決するため、本発明は以下の構成を有する。即ち、請求項１記載の発明に係る半導体集積回路は、所定のクロック信号に同期して動作し、１又は複数のデータを書換え可能に記憶するデータ記憶手段（後述するコントロールレジスタ群２０１に相当する構成要素）と、前記所定のクロック信号に同期して動作し、書き込まれたパスワードデータを記憶するパスワードデータ記憶手段と、前記データ記憶手段と前記パスワード記憶手段とに共通接続され、前記パスワードデータを前記パスワードデータ記憶手段に供給した後に、前記データ記憶手段に記憶すべき前記１又は複数のデータを該データ記憶手段に供給するためのデータバス手段と、比較基準となるパスワードデータを発生するパスワードデータ発生手段（後述するパスワードレジスタ２０２に相当する構成要素）と、前記パスワードデータ記憶手段に記憶されたデータと、前記パスワードデータ発生手段によって発生されたデータとを比較する比較手段（後述するコンパレータ２０３の機能の一部に相当する構成要素）と、前記比較手段による比較結果が不一致である場合に前記データ記憶手段へのデータの書き込みを禁止する書き込み禁止手段（後述するコンパレータ２０３の機能の一部に相当する構成要素）と、前記所定のクロック信号に同期して動作し、前記パスワードデータ記憶手段にパスワードを記憶させるサイクルの後のサイクルであって前記データ記憶手段にデータを書き込むサイクルと同一サイクルにおいて、前記比較手段による比較結果が一致である場合に、前記データ記憶手段へのアクセスを示す信号と前記データ記憶手段へのデータ書き込みを指示する信号とから生成される前記データ記憶手段へのデータの書き込みを制御する信号に基づいて、前記パスワードデータ記憶手段の記憶内容を初期化するパスワードデータ初期化手段（後述するコンパレータ２０３の機能の一部に相当する構成要素）とを備えることを特徴とする。
【００１０】
この構成によれば、比較手段による比較結果が不一致である場合、禁止手段がデータ記憶手段へのデータの書き込みを禁止するので、それまでデータ記憶手段に記憶されていた内容が保護される。また、データ記憶手段にデータの書き込みが行われた場合や書き込みの指示があった場合には、パスワードデータ初期化手段がパスワードデータ記憶手段の記憶内容を初期化するので、データ記憶手段にデータを記憶させる度に、パスワードの設定が必要となる。従って、以前に設定したパスワードが無効となり、データ記憶手段に記憶されたデータを有効に保護することが可能となる。従って、この構成によれば、プログラムなどによらずに、制御レジスタなどの所定の記憶回路に対する誤書き込みを防止することが可能になる。
【００１１】
また、請求項２記載の発明は、前記データ記憶手段が、前記半導体集積回路を含む回路システムのリセット、クロック、又は割り込みの１又は複数の動作を制御する１又は複数のレジスタであることを特徴とする。
【００１２】
さらに、請求項３記載の発明は、前記パスワードデータ初期化手段が、前記比較手段による比較結果が一致である場合に、前記データ記憶手段へのアクセスを示す信号と前記データ記憶手段へデータ書き込みを指示する信号とが発生されたときに、前記所定のクロック信号に同期して前記パスワードデータ記憶手段の記憶内容を初期化することを特徴とする。請求項４記載の発明は、前記パスワードデータ初期化手段が、前記比較手段の出力と前記データ記憶手段の選択を示す信号と前記データ記憶手段への書き込みを指示する信号とを入力信号とする論理回路と、その論理回路の出力に基づいて前記パスワードデータ記憶手段に対して初期化データを選択的に供給する選択回路とを有して構成されていることを特徴とする。
【００１３】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態について説明する。図１は、本発明の半導体集積回路（コントロールレジスタ部１０８）を含むＤＳＰ装置１の構成を示すブロック図である。ＤＳＰ装置１は、主要回路ブロック１００と、外部回路との入出力回路となるマイクロコンピュータインターフェース１１０、シリアルデータインターフェース１１１、及び外部メモリインターフェース１１２と、クロック信号を発生したり、電源投入時やシステムの暴走時にリセット信号を発生するクロックリセット発生器１１３とから構成されている。主要回路ブロック１００は、ＣＰＵ１０１と、ＤＳＰ１０２と、ＤＳＰ命令メモリ１０３と、内部メモリインターフェース１０４と、ＭＭＵ（メモリマネージメントユニット）１０５と、メモリバンク１０６と、レジスタバンク１０７と、コントロールレジスタ部１０８とから構成されている。
【００１４】
ＣＰＵ１０１は、内部の各回路を制御すると共に外部機器との間のデータの入出力を制御するものであって、内部メモリインターフェース１０４を介してＤＳＰ命令メモリ１０３、メモリバンク１０６、及びレジスタバンク１０７の各メモリまたは、コントロールレジスタ部１０８内の各制御レジスタにアクセスするとともに、シリアルデータインターフェース１１１と外部メモリインターフェース１１２を介して外部機器及び外部メモリとデータ交換を行うことができるようになっている。ＤＳＰ１０２は、ＤＳＰ命令メモリ１０３に格納されたプログラムに従い、ＣＰＵ１０２、外部のマイクロコンピュータ等による指示に応じて、メモリバンク１０６やレジスタバンク１０７を用いて所定の信号処理を行う。この場合、ＤＳＰ１０２は、２系統のアドレス及びデータバス（図１のＸ，Ｙ）を有していて、それらを切り替えながら使用できるようになっている。
【００１５】
内部メモリインターフェース１０４は、ＣＰＵ１０１、ＤＳＰ１０２、及びマイクロコンピュータインターフェース１１０を介して接続された図示していない外部のマイクロコンピュータと、ＭＭＵ１０５との間を１又は２系統のアドレスバス及びデータバスによって選択的に接続する回路である。また、マイクロコンピュータインターフェース１１０に接続されたアドレス及びデータバスは、内部メモリインターフェース１０４を介して、コントロールレジスタ部１０８に接続されていて、マイクロコンピュータインターフェース１１０に接続された外部のマイクロコンピュータ等の制御回路が、コントロールレジスタ部１０８内の各制御レジスタにアクセスできるようになっている。
【００１６】
また、ＣＰＵ１０１は、内部メモリインターフェース１０４を介して、コントロールレジスタ部１０８及びＤＳＰ命令メモリ１０３にアドレスバスＡＤ及びデータバスＤＩを接続し、各制御レジスタ及びメモリに対してアクセスできるようになっている。
ＭＭＵ１０５は、メモリバンク１０６及びレジスタ１０７を、ページ、セグメント等の所定のブロック単位で分割して管理するものであって、メモリバンク１０６及びレジスタ１０７の物理アドレスと、内部インターフェース１０４の出力アドレスバス上のアドレスの値とのマッピング等の管理を行う。
【００１７】
コントロールレジスタ部１０８は、ＤＳＰ装置１の動作を制御するために用いる各種データを設定したり、あるいは各回路の動作状態等を表示するための出力データを格納する制御レジスタと、各制御レジスタにデータを書き込む場合に、パスワードによる保護を行うために用いるパスワードレジスタ（パスワードレジスタも制御レジスタの１つであるとする）から構成されている。
以上の構成によって、ＤＳＰ装置１は、外部メモリやシリアルデータインターフェース１１１、あるいは外部のマイクロコンピュータから供給されるデジタルデータに対して、ＤＳＰ１０２等によって種々の信号処理を行い、それらの外部機器に対して処理結果を出力する。
【００１８】
次に、図２ないし図４を参照して、コントロールレジスタ部１０８の構成について説明する。図２は、コントロールレジスタ部１０８内の各制御レジスタのアドレス割当てを示す図表である。図２に示すように、本実施の形態では、コントロールレジスタ部１０８の制御レジスタは、各４ワード（１ワードあたり３２ビット）のメモリ領域を有するシステムレジスタ、プロセッサレジスタ、割り込みレジスタ、タイマレジスタ、及び汎用レジスタ、並びに１ワード（３２ビット）のメモリ領域を有するパスワードレジスタから構成され、また予備のアドレス領域を割り当てられている。
【００１９】
図２に示す図表は、例えば、アドレス５０００００ｈ（「ｈ」は１６進数を表す。），５００００４ｈ，５００００８ｈ，５００００Ｃｈを各ワードの先頭アドレスとして、３２ビット４ワード分のメモリがシステムレジスタに割り当てられていることを示しており、１アドレスあたり８ビット（１バイト）分のメモリが割り当てられている。この実施形態では、システムレジスタに、各回路ブロックに供給されるクロックの作動と停止を設定するための領域や、ＣＰＵ１０１、ＤＳＰ１０２、ＭＭＵ１０５、レジスタバンク１０７等の各回路をリセットしたりするための領域がビット単位で設けられている。
【００２０】
図３は、システムレジスタ内のアドレス５０００００４ｈ〜５０００００７ｈに割り当てられたクロックに関する制御を行うための３２ビットのデータの設定内容を示す図であり、図４に、図３に示す各ビットに割り当てられた機能を一覧にして示す。図３に示すように、この例では、ビット０１にＤＣＣというラベルが付けられた制御ビットが割り当てられていて、ＤＣＣビットは、図４に示すように、“０”（初期値）が書き込まれたときにＣＰＵ１０１へ供給されるクロックを作動させ、“１”が書き込まれたときにクロックを停止するように設定するものである。ＤＣＣビットのデータは、例えば、図１のクロックリセット発生器１１３からＣＰＵ１０１へ供給される図示していないシステムクロックＣＬＫの信号線に挿入されたゲート回路の入力データとなり、“０”でシステムクロックＣＬＫをそのまま通過させ、“１”でＣＰＵ１０１へ入力されるシステムクロックＣＬＫの値を“０”または“１”に固定するための入力データとして用いられる。
【００２１】
図３に示すビット０３、ビット０４、及びビット１６には、それぞれＤＣＭＢ、ＤＣＤ、及びＤＣＲＢのラベルが付けられている。各ビットに割り当てられた機能は、図４に示すように、ＤＳＰ１０２及びＤＳＰ命令メモリ１０３のクロックの作動又は停止、メモリバンク１０６のクロックの作動又は停止、及びレジスタバンク１０７のクロックの作動又は停止である。そして、図３に示すビット２０〜ビット３１の１２ビットには、ラベルＤＣＰが付けられていて、その機能は図４に示すように各周辺回路（図１に示していない各内部回路）のクロックの作動又は停止を設定するものである。
【００２２】
図２に示すシステムレジスタの他のアドレス５００００８ｈ〜５００００Ｂｈの記憶領域には、ＣＰＵ１０１、ＤＳＰ１０２及びＤＳＰ命令メモリ１０３、レジスタバンク１０７、ＭＭＵ１０５、及び各周辺回路のリセットの設定／リセットの解除を行うための複数のビットが設定されている。
また、図２に示すシステムレジスタ以外の他の制御レジスタには、それぞれ次のような機能が割り当てられている。アドレス５０００１０ｈ，５０００１４ｈ，５０００１８ｈ，５０００１Ｃｈを先頭アドレスとするメモリ領域はプロセッサレジスタであって、システム、ＣＰＵ１０１、及びＤＳＰ１０２の動作又は停止状態を表示するビット（リード専用）、ＣＰＵ１０１、ＤＳＰ１０２の動作の開始又は停止を要求するための書き込み可能なビット、ＣＰＵ１０１、ＤＳＰ１０２に割り込み要求を発行するためのビット等が設けられている。
【００２３】
アドレス５０００２０ｈ，５０００２４ｈ，５０００２８ｈ，５０００２Ｃｈを先頭アドレスとするメモリ領域は割り込みレジスタであって、ＣＰＵ１０１と外部マイクロプロセッサ相互の、またはＣＰＵ１０１又は外部マイクロプロセッサに対する各内部回路からの各割り込み信号に関するビットが設けられている。各割り込み信号に関するビットは、例えば、外部マイクロコンピュータインターフェース１１０を介して接続されたマイクロコンピュータ又はＣＰＵ１０１によって、ＤＳＰ１０２、メモリバンク１０６等の各内部回路が発した割り込み要求やバス競合の各種通知を処理するために用いられる。
【００２４】
アドレス５０００３０ｈ，５０００３４ｈ，５０００３８ｈ，５０００３Ｃｈを先頭アドレスとするメモリ領域はタイマレジスタである。タイマレジスタは、システムクロックＣＬＫの周期で変化する２つの３２ビットアップカウンタの値を保持する２つのレジスタと、カウンタアップ動作の開始指示と初期値の設定とを行うための３２ビットの２つのレジスタとから構成されている。この場合、初期値設定用の各レジスタに“０ｈ”以外の値を書き込むと各カウンタが動作を開始するようになっている。アドレス５０００４０ｈ，５０００４４ｈ，５０００４８ｈ，５０００４Ｃｈを先頭アドレスとして指定される３２ビット４ワード分のメモリ領域は汎用レジスタであり、任意のデータが読み書きできるようになっている。なお、アドレス５０００５０ｈ〜５０００７８ｈは予備として、使用されていない。
【００２５】
アドレス５０００７Ｃｈを先頭アドレスとする３２ビット１ワード分のメモリ領域は、パスワードレジスタであり、ＣＰＵ１０１もしくは外部のマイクロコンピュータによって所定の３２ビットのパスワードデータが書き込まれるようになっている。本実施形態では、ＣＰＵ１０１が、このパスワードレジスタに正当なパスワードデータを設定しないと、コントロールレジスタ部１０８内のパスワードレジスタ以外の各制御レジスタへの書き込み動作を行うことができないようになっている。また、パスワードレジスタに所定のパスワードデータを書き込んだ後、他の制御レジスタに一度でも書き込みを行うと、パスワードレジスタの値が自動的に００００００００ｈにリセットされるようになっている。そのため、制御レジスタへの書き込みは、一回の書き込みを行うたびに、それに先だってパスワードレジスタへパスワードデータの書き込みを行う必要がある。
【００２６】
なお、本実施形態では、マイクロコンピュータインターフェース１１０を介して接続された外部のマイクロコンピュータが、コントロールレジスタ部１０８のパスワードレジスタ以外の制御レジスタにデータを書き込むときは、パスワードレジスタへのパスワードデータの書き込みが不要であるとしている。ただし、この構成に代えて、ＣＰＵ１０１または外部のマイクロコンピュータの両方、あるいは外部のマイクロコンピュータのみについて、パスワードレジスタへのパスワードデータの書き込みがない場合に他の制御レジスタへの書き込みが行えないような構成にしてもよい。各制御レジスタへのデータのリード（読み出し）については、パスワードに関係なく行うことができるようになっている。
【００２７】
次に、図５を参照して、図１に示すコントロールレジスタ部１０８の構成について説明する。図５に示すように、コントロールレジスタ部１０８は、コントロールレジスタ群２０１と、パスワードレジスタ２０２と、３入力の負論理入力型ＮＡＮＤ２０５とから構成される。このうち、コントロールレジスタ群２０１は、図２に示すアドレス５０００００ｈ〜５０００７８ｈを先頭アドレスとする各制御レジスタに対応する複数の記憶回路から構成され、コントロールレジスタチップセレクト信号ＣＳＮ＿ＣＲ（負論理）がアクティブ（“ＬＯＷ”レベル）で、かつコントロールレジスタライトイネーブル信号ＷＥＮ（負論理）がアクティブ（“ＬＯＷ”レベル）であり、且つパスワード一致出力「Ａ＝Ｂ（負論理）」がアクティブ（“ＬＯＷ”レベル）である場合にのみ、コントロールレジスタ用アドレスバス信号ＡＤ＿ＣＲのアドレス値に対応する記憶回路がアクティブとなり、データバスＤＩ上のデータがその記憶回路に書き込まれるようになっている。また、コントロールレジスタライトイネーブル信号ＷＥＮ（負論理）が非アクティブ（“ＨＩＧＨ”レベル）の場合には、コントロールレジスタ群２０１内の制御レジスタに対するデータの書き込みが禁止される。
【００２８】
ここで、コントロールレジスタチップセレクト信号ＣＳＮ＿ＣＲ（負論理）は、図１の内部メモリインターフェース１０４から出力される信号であって、ＣＰＵ１０１等がコントロールレジスタ部１０８の各制御レジスタにアクセスする際に“ＬＯＷ”レベルに設定される。このコントロールレジスタチップセレクト信号ＣＳＮ＿ＣＲは、アドレスバスＡＤ上のアドレス値がコントロールレジスタ群２０１内の各制御レジスタ（制御レジスタのパスワードレジスタ２０２以外の各制御レジスタ）に対応し、内部信号ＣＳＮがアクティブの場合にアクティブに設定される。
【００２９】
また、同様な信号として後述するパスワードレジスタチップセレクト信号ＣＳＮ＿ＰＲ（負論理）は、アドレスバスＡＤ上のアドレス値がパスワードレジスタ２０２のアドレスに対応し、上述の内部信号ＣＳＮがアクティブの場合にアクティブに設定される。
ライトイネーブル信号ＷＥＮ（負論理）は、ＣＰＵ１０１等がコントロールレジスタ部１０８の各制御レジスタや、他のメモリやレジスタにデータ書き込みを行う際に“ＬＯＷ”レベルに設定される。
【００３０】
負論理入力型ＮＡＮＤ２０５は、コントロールレジスタチップセレクト信号ＣＳＮ＿ＣＲと、ライトイネーブル信号ＷＥＮと、コンパレータ２０３の一致出力「Ａ＝Ｂ」（ＡとＢが一致のときアクティブロウ）とを入力し、その出力をコントロールレジスタライトイネーブル信号ＷＥＮ＿ＣＲ又はリセット信号ＲＳＮ（共に負論理）とする論理回路である。負論理入力型ＮＡＮＤ２０５は、コンパレータ２０３が一致状態の比較結果（“ＬＯＷ”レベルつまりＡ＝Ｂ）を出力し、またコントロールレジスタチップセレクト信号ＣＳＮ＿ＣＲがアクティブ（“ＬＯＷ”）となっている場合に、ライトイネーブル信号ＷＥＮがアクティブ（“ＬＯＷ”）となったことを、アクティブ（“ＬＯＷ”）として伝送する。この場合に、コントロールレジスタ群２０１内の各制御レジスタに対するデータの書き込みが可能な状態となる。
なお、コントロールレジスタ用アドレスバス信号ＡＤ＿ＣＲは、図１の内部メモリインターフェース１０４から出力されるアドレスバスＡＤの信号のうち、コントロールレジスタ部１０８の各レジスタに対応するアドレスのみを含むようにデコードされたアドレス信号である。
【００３１】
パスワードレジスタ２０２は、図２のパスワードレジスタ（先頭アドレス５０００７Ｃｈ）に対応するものであって複数の記憶回路から構成され、パスワードレジスタチップセレクト信号ＣＳＮ＿ＰＲ（負論理）が“ＬＯＷ”レベルで、かつライトイネーブル信号ＷＥＮが“ＬＯＷ”レベルの場合、データバスＤＩ上のデータを格納するようになっている。出力Ｏ＿ＰＲは、パスワードレジスタ２０２の出力データバスである。リセット入力ＲＳＮ（負論理）は、パスワードレジスタ２０２の記憶内容をリセットするための信号であり、負論理入力型ＮＡＮＤ２０５から出力されるコントロールレジスタライトイネーブル信号ＷＥＮ＿ＣＲ（負論理）と同一の信号が入力される。
【００３２】
パスワードレジスタチップセレクト信号ＣＳＮ＿ＰＲは、図示しないデコード回路で生成されるもので、上述したように、コントロールレジスタチップセレクト信号ＣＳＮ＿ＣＲがアクティブ（“ＬＯＷ”レベル）で、かつ、図１の内部メモリインターフェース１０４から出力されるアドレスバス信号ＡＤが示すアドレスがパスワードレジスタの先頭アドレス（５０００７Ｃｈ）に一致する場合に、アクティブ（“ＬＯＷ”レベル）となる信号である。
【００３３】
コンパレータ２０３は、パスワードレジスタ２０２の出力Ｏ＿ＰＲ上の３２ビットのデータと、パスワード発生部２０４で発生される３２ビットのパスワードデータとを比較するものであって、これらデータが一致しなかったときに出力Ａ≠Ｂとして“ＨＩＧＨ”レベルを出力し、一致したときに出力Ａ＝Ｂとして“ＬＯＷ”レベルを出力する。パスワード発生部２０４は、例えば、ＬＳＩ内の配線によって電源（“ＨＩＧＨ”レベル）またはグランド（“ＬＯＷ”レベル）に選択的に接続された３２ビットのマスクＲＯＭから構成されるものであって、比較基準となるパスワードデータの値を出力するものである。
【００３４】
次に、図６を参照して、図５に示すパスワードレジスタ２０２の構成について説明する。図６に示すパスワードレジスタ２０２は、データバスＤＩを構成する３２ビットのデータ線ＤＩ［３１］〜ＤＩ［００］をそれぞれ“１”入力に接続する３２個のセレクタ３０１、３０２、…、３０３と、セレクタ３０１、３０２、…、３０３の各出力Ｏをそれぞれ入力Ｉとする３２個のフリップフロップ３０４、３０５、…、３０６と、２個のゲート回路３０７及び３０８から構成されている。
【００３５】
セレクタ３０１、３０２、…、３０３の各“０”入力は、“ＬＯＷ”レベルに設定されていて、出力Ｏから出力される入力（“１”入力又は“０”入力）を選択する選択入力Ｓには、ゲート回路３０７の出力が接続されている。セレクタ３０１、３０２、…、３０３は、選択入力Ｓが“ＨＩＧＨ”の場合“１”入力の信号を出力し、選択入力Ｓが“ＬＯＷ”の場合“０”入力の信号を出力する。したがって、この場合、負論理２入力ＡＮＤとして構成されたゲート回路３０７の２つの入力、ライトイネーブル信号ＷＥＮがアクティブ（“ＬＯＷ”レベル）で、かつ、パスワードレジスタチップセレクト信号ＣＳＮ＿ＰＲがアクティブ（“ＬＯＷ”レベル）のとき、ゲート回路３０７の出力が“ＨＩＧＨ”レベルとなるので、セレクタ３０１、３０２、…、３０３の各出力Ｏからは、データバスＤＩの各ビット信号線上のデータＤＩ［３１］、ＤＩ［３０］、…、ＤＩ［００］が出力される。それ以外のときは初期化データとして用いられる“ＬＯＷ”レベルが出力される。
【００３６】
フリップフロップ３０４、３０５、…、３０６は、それぞれ、ロード入力ＬＤが“１”レベルのとき、クロック入力ＣＫに入力されるクロック信号の立ち上がりに同期して入力Ｉに入力されているデータを内部の記憶回路に記憶するとともに、各出力Ｏ＿ＰＲ［３１］、出力Ｏ＿ＰＲ［３０］、…、出力Ｏ＿ＰＲ［００］からそれぞれ出力する。ここで、出力Ｏ＿ＰＲ［３１］、出力Ｏ＿ＰＲ［３０］、…、出力Ｏ＿ＰＲ［００］は、出力データバスＯ＿ＰＲの各データビットをなすものである。一方、ロード入力ＬＤが非アクティブのときは、クロック入力ＣＫの入力変化にかかわらず、記憶回路に記憶された各データがそれぞれ保持されて出力される。フリップフロップ３０４、３０５、…、３０６の各ロード入力ＬＤには、ゲート回路３０８の出力が共通に入力される。フリップフロップ３０４、３０５、…、３０６の各クロックＣＫには、システムクロック信号ＣＬＫが共通に入力される。
【００３７】
ゲート回路３０８は、１負論理入力／１正論理入力型の２入力ＯＲである。その負論理入力部には、図５に示すリセット入力信号ＲＳＮとして、負論理入力型ＮＡＮＤ２０５の出力（コントロールレジスタライトイネーブル信号ＷＥＮ＿ＣＲ）が入力され、正論理入力部にはゲート回路３０７の出力が入力される。なお、リセット信号ＲＳＮ（すなわちコントロールレジスタチップセレクト信号ＣＳＮ＿ＣＲ）と、パスワードレジスタチップセレクト信号ＣＳＮ＿ＰＲは、両方が同時にアクティブ（“ＬＯＷ”レベル）となることはない。
【００３８】
図５に示す構成において、例えば、ＣＰＵ１０１等がパスワードレジスタ２０２にパスワードデータを書き込む場合（サイクル１とする）、パスワードレジスタチップセレクト信号ＣＳＮ＿ＰＲとライトイネーブル信号ＷＥＮを共にアクティブ（“ＬＯＷ”レベル）に設定する。ただし、コントロールレジスタチップセレクト信号ＣＳＮ＿ＣＲは非アクティブ（“ＨＩＧＨ”レベル）とする。この場合、ゲート回路３０７の出力とゲート回路３０８の出力は共にアクティブとなる。従って、セレクタ３０１、３０２、…、３０３の各選択入力Ｓは“１”となり、セレクタ３０１、３０２、…、３０３の各出力Ｏからは各“１”入力部に入力されたデータＤＩ［３１］、ＤＩ［３０］、…、ＤＩ［００］がそれぞれ出力される。  一方、フリップフロップ３０４、３０５、…、３０６の各ロード入力ＬＤも“１”になるので、フリップフロップ３０４、３０５、…、３０６はシステムクロックＣＬＫの立ち上がり時にデータＤＩ［３１］、ＤＩ［３０］、…、ＤＩ［００］のレベルをそれぞれ保持（パスワード書き込み状態）するとともに、これらを出力Ｏ＿ＰＲ［３１］、Ｏ＿ＰＲ［３０］、…、Ｏ＿ＰＲ［００］として出力する。
【００３９】
また、次にＣＰＵ１０１等がコントロールレジスタ群２０１のいずれかの制御レジスタにデータを書き込む場合（サイクル２とする）、コントロールレジスタチップセレクト信号ＣＳＮ＿ＣＲとライトイネーブル信号ＷＥＮが共にアクティブ（“ＬＯＷ”レベル）に設定され、パスワードレジスタチップセレクト信号ＣＳＮ＿ＰＲが非アクティブ（“ＨＩＧＨ”レベル）とされる。ただし、サイクル１で書き込んだパスワードは一致しているものとする。この場合、ゲート回路３０７の出力は“０”となり、リセット入力信号ＲＳＮがアクティブ（“ＬＯＷ”レベル）であるので、ゲート回路３０８の出力は“１”となる。従って、セレクタ３０１、３０２、…、３０３の各選択入力Ｓは“０”となり、セレクタ３０１、３０２、…、３０３の各出力Ｏからは各“０”入力部に入力された“ＬＯＷ”レベルの信号が出力される。一方、フリップフロップ３０４、３０５、…、３０６の各ロード入力ＬＤは“１”になるので、フリップフロップ３０４、３０５、…、３０６はシステムクロックＣＬＫの立ち上がり時にセレクタ３０１、３０２、…、３０３の各出力Ｏから出力された“０”の信号を取り込んで保持するとともに、出力Ｏ＿ＰＲ［３１］、Ｏ＿ＰＲ［３０］、…、Ｏ＿ＰＲ［００］からそれらを出力する。即ち、コントロールレジスタ群２０１にデータが書き込まれた場合にはパスワードレジスタ２０２が初期化される。
【００４０】
次に、図７に示すタイミングチャートを参照して、図５に示すコントロールレジスタ部１０８の動作について具体例を用いて説明する。図７は、サイクル１でＣＰＵ１０１がパスワードレジスタ２０２に正当なパスワードデータ“ＰＳＷＤ”を書き込み、サイクル２でコントロールレジスタ群２０１内の１つの制御レジスタにデータ“ＦＦＦＦＦＦＦＦｈ”を書き込み、サイクル３で同一制御レジスタにデータ“００００００００ｈ”を書き込もうとした場合の動作例における各部の波形を示している。ここで、パスワードレジスタ２０２のアドレスの値をＡＤ＿ＰＲ、アクセスしている制御レジスタのアドレスの値をＡＤ＿ＣＲ１で表している。
【００４１】
サイクル１でＣＰＵ１０１は、ライトイネーブル信号ＷＥＮをアクティブ（“ＬＯＷ”レベル）に設定し、データバスＤＩにパスワードデータ“ＰＳＷＤ”を出力し、かつ、アドレスバスＡＤにパスワードレジスタのアドレスＡＤ＿ＰＲを出力し、また、上述したコントロールレジスタチップセレクト信号ＣＳＮ＿ＣＲを非アクティブ（“ＨＩＧＨ”レベルとする）にする。パスワードレジスタチップセレクト信号ＣＳＮ＿ＰＲをアクティブ（“ＬＯＷ”レベル）にする。なお、サイクル１において、パスワードレジスタ２０２の出力Ｏ＿ＰＲは“００００００００ｈ”であるとする。
【００４２】
サイクル１では、パスワードレジスタチップセレクト信号ＣＳＮ＿ＰＲがアクティブ（“ＬＯＷ”レベル）であり、ライトイネーブル信号ＷＥＮがアクティブ（“ＬＯＷ”レベル）になるとともに、パスワードレジスタ２０２の入力にパスワードデータ“ＰＳＷＤ”が入力される。従って、サイクル２のシステムクロックＣＬＫの立ち上がりでは、パスワードレジスタ２０２の入力にパスワードデータ“ＰＳＷＤ”が格納され、出力Ｏ＿ＰＲからパスワードデータ“ＰＳＷＤ”が出力される。そして、コンパレータ２０３の出力「Ａ＝Ｂ」は、その比較結果が一致となるので、アクティブ（“ＬＯＷ”レベル）となる。
【００４３】
一方、サイクル２では、ＣＰＵ１０１がアドレスバスＡＤにコントロールレジスタ群２０１内のアクセス対象の制御レジスタのアドレスＡＤ＿ＣＲ１を出力するとともに、データバスＤＩにその制御レジスタに書き込むデータ“ＦＦＦＦＦＦＦＦｈ”を出力する。ここでは、ＣＰＵ１０１の出力によるライトイネーブル信号ＷＥＮとコントロールレジスタチップセレクト信号ＣＳＮ＿ＣＲはアクティブ（“ＬＯＷ”レベル）とする。このとき、コントロールレジスタチップセレクト信号ＣＳＮ＿ＣＲとライトイネーブル信号ＷＥＮがアクティブ（“ＬＯＷ”レベル）であり、また、コンパレータ２０３の出力「Ａ＝Ｂ」がアクティブ（“ＬＯＷ”レベル）となるので、コントロールレジスタライトイネーブル信号ＷＥＮ＿ＣＲがアクティブ（“ＬＯＷ”レベル）になり、次のサイクル３のシステムクロックＣＬＫの立ち上がりでその制御レジスタにデータ“ＦＦＦＦＦＦＦＦｈ”が書き込まれ、出力Ｏ＿ＣＲからデータ“ＦＦＦＦＦＦＦＦｈ”が出力される。
【００４４】
サイクル３でＣＰＵ１０１は、同一の制御レジスタにデータ“００００００００ｈ”を書き込もうとして、データバスＤＩにデータ“００００００００ｈ”を出力する。この場合、サイクル２でリセット入力ＲＳＮ（即ちコントロールレジスタライトイネーブル信号ＷＥＮ＿ＣＲ）がアクティブ（“ＬＯＷ”レベル）になっているので、サイクル３のシステムクロックＣＬＫの立ち上がりでパスワードレジスタ２０２の出力Ｏ＿ＰＲは“００００００００ｈ”にリセットされている。そのため、コンパレータ２０３の出力「Ａ＝Ｂ」が非アクティブ（“ＨＩＧＨ”レベル）となり、コントロールレジスタライトイネーブル信号ＷＥＮ＿ＣＲが非アクティブ（“ＨＩＧＨ”レベル）になる。したがって、データバスＤＩ上に出力されたデータ“００００００００ｈ”は制御レジスタに書き込まれず、サイクル３の次のシステムクロックＣＬＫの立ち上がりにおいても、出力Ｏ＿ＣＲはデータ“ＦＦＦＦＦＦＦＦｈ”のまま変化しない。
【００４５】
なお、図７に示す例では、パスワードデータの書き込み（サイクル１）と制御レジスタへのデータの書き込み（サイクル２）を連続した２つのクロックに同期させて実行しているが、パスワードを書き込んだ後は、制御レジスタへのデータの書き込みが行われるまで、そのパスワードレジスタ２０２の記憶内容は保持されるので、複数サイクルを隔てて、コントロールレジスタ群２０１内の制御レジスタへの書き込みを行ってもよい。ただし、一度、コントロールレジスタ群２０１内の制御レジスタへの書き込みを行うと、リセット信号ＲＳＮがアクティブ（“ＬＯＷ”レベル）となって、パスワードレジスタ２０２の記憶内容はクリアされるので、書き込みを行った次のサイクル以降は書き込みは禁止されることに変わりはない。即ち、コントロールレジスタ群２０１内の制御レジスタへのデータの書き込みを行うには、パスワードレジスタ２０２にパスワードデータを先に格納しなければならない。
【００４６】
次に、図８〜図１０を参照して、図１のＤＳＰ装置１のシステム全体としての動作例について説明する。ここでは、ＣＰＵ１０１が、ＤＳＰ１０２に対してＤＳＰ処理の実行を要求する場合の処理の一例について説明する。
ＤＳＰ処理を行う場合、ＣＰＵ１０１は、最初にＤＳＰ１０２のリセットを解除する処理を行う（図８のステップ４０１）。ＤＳＰ１０２のリセット解除は、図２に示す各制御レジスタのうち、プロセッサレジスタ内の所定のビットに“１”を書き込むことで行う。制御レジスタへのデータの書き込みは、ステップ４０１から呼び出される制御レジスタライト処理ルーチン５０１で行う。
【００４７】
図９に示すように、制御レジスタライト処理ルーチン５０１ではまず、パスワードレジスタ２０２への書き込み（ライト）要求が行われ（ステップ５０２）、ライトイネーブル信号ＷＥＮ、パスワードレジスタチップセレクト信号ＣＳＮ＿ＰＲ等の所定の信号の状態がアクティブに設定されるとともに、アドレスバスＡＤ及びデータバスＤＩにパスワードレジスタアドレス及びパスワードデータが出力される。次に、ハードウェア処理によってパスワードレジスタ２０２の書き込みが実行される（ステップ５０３）。なお、図９及び図１０では、ハードウェアによって実行される処理を太線のブロックで示している。
【００４８】
次に、ＣＰＵ１０１は、制御レジスタ（この場合、プロセッサレジスタ）に対する書き込み要求を行い（ステップ５０４）、ＤＳＰ１０２のリセットを解除するために用いられるシステムレジスタ内の所定のビットの状態をアクティブに設定するように、アドレスバスＡＤ及びデータバスＤＩにシステムレジスタのアドレス及び所定の書き込みデータが設定される。なお、この例では、ＤＳＰ１０２が、制御レジスタ（この場合システムレジスタ）のＤＳＰリセット解除用のビットがアクティブに設定されると、リセット状態が解除され、処理開始要求を待機する状態である停止状態に移行するように動作するものとする。
【００４９】
次に、ハードウェアによって、ステップ５０３で書き込まれたパスワードデータが正しいか否かが判定され（ステップ５０５）、正しい場合には制御レジスタへの書き込みが行われ（ステップ５０６）、パスワードレジスタ２０２の初期化（すなわちパスワードの解除）が行われる（ステップ５０７）。なお、ステップ５０３でパスワードが正しくないと判定された場合には、ステップ５０６及びステップ５０７がスキップされ、一連の処理が終了する。
【００５０】
図８のステップ４０１では、制御レジスタライト処理ルーチン５０１が終了すると、必要に応じて他の所定の処理を行った後、ＤＳＰ１０２が停止状態になったかどうかを監視する（ステップ４０２）。ステップ４０２では、コントロールレジスタ群２０１のプロセッサレジスタ内の所定のデータ（停止中又は動作中を示すビットのデータ）を読み出すことでＤＳＰ１０２が停止中か、動作中かが判定される。このときステップ４０２では、制御レジスタリード処理ルーチン６０１を呼び出すことで、プロセッサレジスタの読み出し処理が行われる。
【００５１】
制御レジスタリード処理ルーチン６０１では、図１０に示すように、まず、制御レジスタに対しての読み出し（リード）要求が行われ（ステップ６０２）、図示しないリードイネーブル信号等の所定の信号の状態がアクティブに設定されるとともに、アドレスバスＡＤに読み出し先の制御レジスタのアドレス値が設定される。次に、ハードウェア処理によって制御レジスタからのデータの読み出しが実行される（ステップ６０３）。ここで制御レジスタリード処理ルーチン６０１の処理が終了する。
【００５２】
ステップ４０２では、繰り返し、制御レジスタリード処理ルーチン６０１によってコントロールレジスタ群２０１内のプロセッサレジスタのＤＳＰ１０２の状態（停止又は動作）を表示するデータが読み出され、所定のビットの値を調べることで、ＤＳＰ１０２が停止中か、動作中かが判定され、そして、ＤＳＰ１０２が停止状態であると判定された場合に次のステップ４０３の処理が実行される。ステップ４０３では、ＤＳＰ１０２の各処理状態を設定するためのＤＳＰレジスタの設定が行われる。次に、ＣＰＵ１０１は、ＤＳＰ１０２に処理の開始要求を発行する（ステップ４０４）。
【００５３】
ステップ４０４では、図９に示す制御レジスタライト処理ルーチン５０１が呼び出されて、ステップ４０１の場合と同様にして、パスワードレジスタ２０２へのパスワードデータの書き込み処理と、制御レジスタへの書き込み処理が実行される。この場合、制御レジスタにおける書き込み対象はプロセッサレジスタ内でＤＳＰ１０２に動作の開始要求を発行するためのビットであり、そのビットに例えば“１”を書き込むことで開始要求の発行処理が行われる。制御レジスタライト処理ルーチン５０１が終了すると、ＣＰＵ１０１内のレジスタの設定等の必要な処理を行った後、ステップ４０５でＤＳＰ１０２による処理の終了を待機する処理が実行される。
ステップ４０５では、ステップ４０２と同様に、繰り返し、制御レジスタリード処理ルーチン６０１によって読み出されたコントロールレジスタ群２０１内のプロセッサレジスタのＤＳＰ１０２の状態を表示するビットを調べることで、ＤＳＰ１０２が停止中か、動作中かを判定し、ＤＳＰ１０２が停止状態であると判定した場合に、ＤＳＰの処理が終了したと判定し、図８に示す一連の処理を終了する。
【００５４】
以上のように、本発明の実施形態によれば、パスワードデータの初期化が自動的に行われるので、プログラム等によって行う場合に比べ、パスワードレジスタの初期化動作を安定して確保することができる。また、書き込み保護を行う制御レジスタへの書き込みを、１回行うたびにパスワードレジスタの初期化するようにしているので、制御レジスタのデータが誤作動によって複数回連続して書き換えられてしまうというような状態を回避することができる。
【００５５】
なお、本発明は、上記実施の形態の構成に限定されることなく、例えば、図１のＤＳＰ装置を構成する各回路ブロックを複数の集積回路に分割して設けるようにしたり、複数の制御レジスタに対するアクセス制限をアドレス毎にあるいはビット毎に行えるようしたり、パスワード発生部２０４を書換え可能なメモリ等によって構成するようにしたり、あるいは、制御レジスタへの書き込みが許可される期間をパスワードを書き込んだ次の１又は複数の所定回のサイクルに限定したりするようにする変更を適宜行うことができる。
以上、この発明の実施形態について図面を参照して詳述してきたが、本発明はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【００５６】
【発明の効果】
以上説明したように、本発明によれば、制御レジスタ等からなるデータ記憶手段へのデータの書き込み動作又はその指示に連動して、パスワードレジスタ等からなるパスワードデータ記憶手段の記憶内容を初期化するようにしたので、パスワードのクリアが安定して行えるようになり、また、パスワードデータがデータ記憶手段へのデータの書き込みに連動して初期化されるので、誤ったデータの書き込みが複数回連続して発生してしまうという従来の課題を解決することができる。従って、プログラムなどによらずに制御レジスタに対するデータ書き込み時の誤作動を防止することが可能となる。
【図面の簡単な説明】
【図１】  本発明の実施の形態に係るＤＳＰ装置の構成を示すブロック図でである。
【図２】  本発明の実施の形態に係る制御レジスタの構成を説明するための図である。
【図３】  本発明の実施の形態に係る制御レジスタを構成するシステムレジスタの設定例を示す図である。
【図４】  本発明の実施の形態に係るシステムレジスタに設定された各ビットの機能を一覧にして示す図である。
【図５】  本発明の実施の形態に係るコントロールレジスタ部の構成例を示すブロック図である。
【図６】  本発明の実施の形態に係るパスワードレジスタの構成例を示す回路図である。
【図７】  本発明の実施の形態に係るコントロールレジスタ部の動作を説明するためのタイミングチャートである。
【図８】  本発明の実施の形態に係るＤＳＰ装置の動作例を示すフローチャートである。
【図９】  本発明の実施の形態に係る制御レジスタのライト処理の流れを示すフローチャートである。
【図１０】  本発明の実施の形態に係る制御レジスタのリード処理の流れを示すフローチャートである。
【符号の説明】
１…ＤＳＰ装置、１０１…ＣＰＵ、１０２…ＤＳＰ、１０３…ＤＳＰ命令メモリ、１０４…内部メモリインターフェース、１０８…コントロールレジスタ部、１１０…マイクロコンピュータインターフェース、２０１…コントロールレジスタ群、２０２…パスワードレジスタ、２０３…コンパレータ、２０４…パスワード発生部、２０５…負論理入力型ＮＡＮＤ、３０１〜３０３…セレクタ、３０４〜３０６…フリップフロップ、３０７〜３０８…ゲート回路。
【図１】
0004114004.tif 000002
【図２】
0004114004.tif 000003
【図３】
0004114004.tif 000004
【図４】
0004114004.tif 000005
【図５】
0004114004.tif 000006
【図６】
0004114004.tif 000007
【図７】
0004114004.tif 000008
【図８】
0004114004.tif 000009
【図９】
0004114004.tif 000010
【図１０】
0004114004.tif 000011