| 【発明の名称】 |
半導体集積回路 |
| 【発明者】 |
【氏名】安藤 智明 【住所又は居所】静岡県浜松市中沢町10番1号 ヤマハ株式会社内
|
| 【要約】 |
【課題】制御レジスタに対するデータ書き込み時の誤作動を防止することができる半導体集積回路を提供すること。
【解決手段】コントロールレジスタ群201には、制御データを記憶する。また、パスワードレジスタ202には、書き込まれたパスワードデータを記憶する。コンパレータ203は、パスワードレジスタ202に記憶されたデータとパスワードデータ発生部204で発生されたデータとを比較する。この比較結果が不一致の場合、負論理入力型NAND205はコントロールレジスタ群201内の制御レジスタへの書き込み指示信号WEN_CRを非アクティブに設定する。これにより、コントロールレジスタ群201に記憶された制御データを保護する。また、コントロールレジスタ群201内の制御レジスタへのデータの書き込み動作に連動してパスワードレジスタ202内のパスワードデータの内容が初期化される。 |
【特許請求の範囲】
【請求項1】 1又は複数のデータを書換え可能に記憶するデータ記憶手段と、書き込まれたパスワードデータを記憶するパスワードデータ記憶手段と、比較基準となるパスワードデータを発生するパスワードデータ発生手段と、前記パスワードデータ記憶手段に記憶されたデータと、前記パスワードデータ発生手段によって発生されたデータとを比較する比較手段と、前記比較手段による比較結果が不一致である場合に前記データ記憶手段へのデータの書き込みを禁止する書き込み禁止手段と、前記データ記憶手段へのデータの書き込み動作又はその指示に連動して、前記パスワードデータ記憶手段の記憶内容を初期化するパスワードデータ初期化手段とを備えることを特徴とする半導体集積回路。 【請求項2】 前記データ記憶手段が、前記半導体集積回路を含む回路システムのリセット、クロック、又は割り込みの1又は複数の動作を制御する1又は複数のレジスタであることを特徴とする請求項1記載の半導体集積回路。 【請求項3】 少なくとも前記データ記憶手段と、前記パスワードデータ記憶手段と、前記パスワードデータ初期化手段とが、同一のクロックに同期して動作するものであることと特徴とする請求項1又は2記載の半導体集積回路。 【請求項4】 前記パスワードデータ初期化手段が、前記比較手段による比較結果が一致である場合に、前記データ記憶手段へのアクセスを示す信号と前記データ記憶手段へデータ書き込みを指示する信号とが発生されたときに、前記クロックに同期して前記パスワードデータ記憶手段の記憶内容を初期化することを特徴とする請求項1〜3のいずれか1項に記載の半導体集積回路。 【請求項5】 前記パスワードデータ初期化手段が、前記比較手段の出力と前記データ記憶手段へのアクセスを示す信号と前記データ記憶手段への書き込みを指示する信号とを入力信号とする論理回路と、その論理回路の出力に基づいて前記パスワードデータ記憶手段に対して初期化データを選択的に供給する選択回路とを有して構成されていることを特徴とする請求項1〜4のいずれか1項に記載の半導体集積回路。
|
【発明の詳細な説明】【0001】 【発明の属する技術分野】本発明は、大規模集積回路等の半導体装置における所定の記憶回路に対するデータ書き込み等の制御を行うための制御回路に係り、特に記憶回路に対するデータ書き込み時の誤作動を防止するのに用いて好適な半導体集積回路に関する。 【0002】 【従来の技術】半導体装置内の記憶回路に対するデータ書き込み時に発生する誤作動には、記憶回路にアクセスするCPU(中央処理装置)等の制御回路によるバグ等に起因する誤った手順によるアクセスによるものや、プログラムの暴走によるものがある。また他の例としては、人為的不正なアクセスによって引き起こされるものや、静電気等による電気的雑音によって発生するものがある。従来、このような記憶回路に対するデータ書き込み時の誤作動を防止する回路としては、書き込み時にパスワードの照合を行うようにしたものが提案されている。 【0003】例えば、特開平7−253931号公報「プログラムデータ格納領域の破壊防止方式」には、ROM(リードオンリメモリ)に格納されたファームウェアプログラムが使用する特定の書換え可能な記憶領域のデータが、他のソフトウェアプログラムのバグ等によって破壊されることを防止するための制御回路が記載されている。この制御回路では、初期設定時にファームウェアプログラムによってロックレジスタにパスワードを書き込んでおき、ファームウェアプログラムが特定の記憶領域にデータを書き込む際には、まずキーレジスタにパスワードを書き込み、ロックレジスタとキーレジスタの内容が一致したときのみ書き込みアクセスが有効となるような制御が行われている。データを書き込んだ後はファームウェアプログラムがキーレジスタをクリアすることで、ソフトウェアプログラムによる書き込みが禁止される。 【0004】また、特許2951959号公報「制御回路のデータ保護方法」には、キーワードが不一致の場合においてデータの書き込みアクセスが発生したときには、それをエラーとして報知するための手段を設けることが記載されている。また、この公報に記載されている制御回路は、さらに、エラーが発生したときには、機器の電源を落としてシステム全体の作動を停止させるように構成される。また、特開2001−22642号公報「メモリの機密保持回路」には、人為的な不正なデータ書換えを防止するために、複数の入力データの演算結果を入力パスワードとして用いる技術が記載されている。この公報に記載されている制御回路では、複数の入力データの入力期間を電源投入後の所定期間に限定したり、照合先の正解パスワードを電源投入の回数によって選択的に変更できるようにする構成が開示されている。 【0005】上述したような従来の技術によれば、パスワードやキーワードを用いて書き込み保護された記憶回路に対するアクセスが、特定のファームウェアプログラム、あるいはパスワードを知る特定の操作者の操作に基づいて動作する特定のプログラムによって行われるようになっている。従って、所定のレジスタへのパスワード等の書き込みと、そのレジスタに記憶されたパスワードのクリアとが、予め決められた特定のプログラムによって制御される。 【0006】 【発明が解決しようとする課題】ところで、1チップマイクロプロセッサやDSP(デジタルシグナルプロセッサ)等の大規模集積回路は、内部にプロセッサ、メモリ、クロック回路、タイマ回路、制御レジスタ、等々の複数の回路を有している。この種の集積回路では、一般に、クロックの設定や変更、各内部回路の起動や停止、プログラムの割り込み動作の設定等が、書換え可能な制御レジスタに記憶したデータによって制御されるようになっている。この制御レジスタ内の各データの値は、システム全体の動作に大きな影響をおよぼすものであり、このようなデータが例えば内部のプロセッサのプログラムの暴走やノイズの発生等によって誤って書き換えられると、このプロセッサを搭載するシステム全体の動作が不安定となったり、システム全体を初期化しなければならない事態も起こり得るという問題がある。 【0007】このような制御レジスタの誤書き換えに対する対策の一つとして、前述した従来技術のように、パスワードを用いて保護する手法が考えられる。しかしながら、上述したような従来の技術によれば、パスワードを記憶するレジスタの制御が所定のプログラムによってなされるため、プログラムが暴走した場合には制御レジスタの書き換えが不能になる。また、パスワードの一回の書き込みによるデータの書き込み回数について制限がなされていなかったため、例えば外部のプロセッサがパスワードを書き込んでからそれをクリアするまでの間に、内部のプロセッサの誤作動によって誤ったデータの書き込みが複数回行われてしまう。このような場合には、例えば、ハードウェアによるリセットをかけなければ、システム全体の制御を回復できなくなる。 【0008】本発明は、上記事情に鑑みてなされたもので、プログラムなどによらずに制御レジスタなどの所定の記憶回路に対する誤書き込みを防止することができる半導体集積回路を提供することを目的とする。 【0009】 【課題を解決するための手段】上記課題を解決するため、本発明は以下の構成を有する。即ち、請求項1記載の発明は、1又は複数のデータを書換え可能に記憶するデータ記憶手段(後述するコントロールレジスタ群201に相当する構成要素)と、書き込まれたパスワードデータを記憶するパスワードデータ記憶手段と、比較基準となるパスワードデータを発生するパスワードデータ発生手段(後述するパスワードレジスタ202に相当する構成要素)と、前記パスワードデータ記憶手段に記憶されたデータと、前記パスワードデータ発生手段によって発生されたデータとを比較する比較手段(後述するコンパレータ203の機能の一部に相当する構成要素)と、前記比較手段による比較結果が不一致である場合に前記データ記憶手段へのデータの書き込みを禁止する書き込み禁止手段(後述するコンパレータ203の機能の一部に相当する構成要素)と、前記データ記憶手段へのデータの書き込み動作又はその指示に連動して、前記パスワードデータ記憶手段の記憶内容を初期化するパスワードデータ初期化手段(後述するコンパレータ203の機能の一部に相当する構成要素)とを備えることを特徴とする。 【0010】この構成によれば、比較手段による比較結果が不一致である場合、禁止手段がデータ記憶手段へのデータの書き込みを禁止するので、それまでデータ記憶手段に記憶されていた内容が保護される。また、データ記憶手段にデータの書き込みが行われた場合や書き込みの指示があった場合には、パスワードデータ初期化手段がパスワードデータ記憶手段の記憶内容を初期化するので、データ記憶手段にデータを記憶させる度に、パスワードの設定が必要となる。従って、以前に設定したパスワードが無効となり、データ記憶手段に記憶されたデータを有効に保護することが可能となる。従って、この構成によれば、プログラムなどによらずに、制御レジスタなどの所定の記憶回路に対する誤書き込みを防止することが可能になる。 【0011】また、請求項2記載の発明は、前記データ記憶手段が、前記半導体集積回路を含む回路システムのリセット、クロック、又は割り込みの1又は複数の動作を制御する1又は複数のレジスタであることを特徴とする。また、請求項3記載の発明は、少なくとも前記データ記憶手段と、前記パスワードデータ記憶手段と、前記パスワードデータ初期化手段とが、同一のクロックに同期して動作するものであることと特徴とする。 【0012】さらに、請求項4記載の発明は、前記パスワードデータ初期化手段が、前記比較手段による比較結果が一致である場合に、前記データ記憶手段へのアクセスを示す信号と前記データ記憶手段へデータ書き込みを指示する信号とが発生されたときに、前記クロックに同期して前記パスワードデータ記憶手段の記憶内容を初期化することを特徴とする。請求項5記載の発明は、前記パスワードデータ初期化手段が、前記比較手段の出力と前記データ記憶手段の選択を示す信号と前記データ記憶手段への書き込みを指示する信号とを入力信号とする論理回路と、その論理回路の出力に基づいて前記パスワードデータ記憶手段に対して初期化データを選択的に供給する選択回路とを有して構成されていることを特徴とする。 【0013】 【発明の実施の形態】以下、図面を参照して本発明の実施の形態について説明する。図1は、本発明の半導体集積回路(コントロールレジスタ部108)を含むDSP装置1の構成を示すブロック図である。DSP装置1は、主要回路ブロック100と、外部回路との入出力回路となるマイクロコンピュータインターフェース110、シリアルデータインターフェース111、及び外部メモリインターフェース112と、クロック信号を発生したり、電源投入時やシステムの暴走時にリセット信号を発生するクロックリセット発生器113とから構成されている。主要回路ブロック100は、CPU101と、DSP102と、DSP命令メモリ103と、内部メモリインターフェース104と、MMU(メモリマネージメントユニット)105と、メモリバンク106と、レジスタバンク107と、コントロールレジスタ部108とから構成されている。 【0014】CPU101は、内部の各回路を制御すると共に外部機器との間のデータの入出力を制御するものであって、内部メモリインターフェース104を介してDSP命令メモリ103、メモリバンク106、及びレジスタバンク107の各メモリまたは、コントロールレジスタ部108内の各制御レジスタにアクセスするとともに、シリアルデータインターフェース111と外部メモリインターフェース112を介して外部機器及び外部メモリとデータ交換を行うことができるようになっている。DSP102は、DSP命令メモリ103に格納されたプログラムに従い、CPU102、外部のマイクロコンピュータ等による指示に応じて、メモリバンク106やレジスタバンク107を用いて所定の信号処理を行う。この場合、DSP102は、2系統のアドレス及びデータバス(図1のX,Y)を有していて、それらを切り替えながら使用できるようになっている。 【0015】内部メモリインターフェース104は、CPU101、DSP102、及びマイクロコンピュータインターフェース110を介して接続された図示していない外部のマイクロコンピュータと、MMU105との間を1又は2系統のアドレスバス及びデータバスによって選択的に接続する回路である。また、マイクロコンピュータインターフェース110に接続されたアドレス及びデータバスは、内部メモリインターフェース104を介して、コントロールレジスタ部108に接続されていて、マイクロコンピュータインターフェース110に接続された外部のマイクロコンピュータ等の制御回路が、コントロールレジスタ部108内の各制御レジスタにアクセスできるようになっている。 【0016】また、CPU101は、内部メモリインターフェース104を介して、コントロールレジスタ部108及びDSP命令メモリ103にアドレスバスAD及びデータバスDIを接続し、各制御レジスタ及びメモリに対してアクセスできるようになっている。MMU105は、メモリバンク106及びレジスタ107を、ページ、セグメント等の所定のブロック単位で分割して管理するものであって、メモリバンク106及びレジスタ107の物理アドレスと、内部インターフェース104の出力アドレスバス上のアドレスの値とのマッピング等の管理を行う。 【0017】コントロールレジスタ部108は、DSP装置1の動作を制御するために用いる各種データを設定したり、あるいは各回路の動作状態等を表示するための出力データを格納する制御レジスタと、各制御レジスタにデータを書き込む場合に、パスワードによる保護を行うために用いるパスワードレジスタ(パスワードレジスタも制御レジスタの1つであるとする)から構成されている。以上の構成によって、DSP装置1は、外部メモリやシリアルデータインターフェース111、あるいは外部のマイクロコンピュータから供給されるデジタルデータに対して、DSP102等によって種々の信号処理を行い、それらの外部機器に対して処理結果を出力する。 【0018】次に、図2ないし図4を参照して、コントロールレジスタ部108の構成について説明する。図2は、コントロールレジスタ部108内の各制御レジスタのアドレス割当てを示す図表である。図2に示すように、本実施の形態では、コントロールレジスタ部108の制御レジスタは、各4ワード(1ワードあたり32ビット)のメモリ領域を有するシステムレジスタ、プロセッサレジスタ、割り込みレジスタ、タイマレジスタ、及び汎用レジスタ、並びに1ワード(32ビット)のメモリ領域を有するパスワードレジスタから構成され、また予備のアドレス領域を割り当てられている。 【0019】図2に示す図表は、例えば、アドレス500000h(「h」は16進数を表す。),500004h,500008h,50000Chを各ワードの先頭アドレスとして、32ビット4ワード分のメモリがシステムレジスタに割り当てられていることを示しており、1アドレスあたり8ビット(1バイト)分のメモリが割り当てられている。この実施形態では、システムレジスタに、各回路ブロックに供給されるクロックの作動と停止を設定するための領域や、CPU101、DSP102、MMUレジスタ105、レジスタバンク107等の各回路をリセットしたりするための領域がビット単位で設けられている。 【0020】図3は、システムレジスタ内のアドレス5000004h〜5000007hに割り当てられたクロックに関する制御を行うための32ビットのデータの設定内容を示す図であり、図4に、図3に示す各ビットに割り当てられた機能を一覧にして示す。図3に示すように、この例では、ビット01にDCCというラベルが付けられた制御ビットが割り当てられていて、DCCビットは、図4に示すように、“0”(初期値)が書き込まれたときにCPU101へ供給されるクロックを作動させ、“1”が書き込まれたときにクロックを停止するように設定するものである。DCCビットのデータは、例えば、図1のクロックリセット発生器113からCPU101へ供給される図示していないシステムクロックCLKの信号線に挿入されたゲート回路の入力データとなり、“0”でシステムクロックCLKをそのまま通過させ、“1”でCPU101へ入力されるシステムクロックCLKの値を“0”または“1”に固定するための入力データとして用いられる。 【0021】図3に示すビット03、ビット04、及びビット16には、それぞれDCMB、DCD、及びDCRBのラベルが付けられている。各ビットに割り当てられた機能は、図4に示すように、DSP102及びDSP命令メモリ103のクロックの作動又は停止、メモリバンク106のクロックの作動又は停止、及びレジスタバンク107のクロックの作動又は停止である。そして、図3に示すビット20〜ビット31の12ビットには、ラベルDCPが付けられていて、その機能は図4に示すように各周辺回路(図1に示していない各内部回路)のクロックの作動又は停止を設定するものである。 【0022】図2に示すシステムレジスタの他のアドレス500008h〜50000Bhの記憶領域には、CPU101、DSP102及びDSP命令メモリ103、レジスタバンク107、MMU105、及び各周辺回路のリセットの設定/リセットの解除を行うための複数のビットが設定されている。また、図2に示すシステムレジスタ以外の他の制御レジスタには、それぞれ次のような機能が割り当てられている。アドレス500010h,500014h,500018h,50001Chを先頭アドレスとするメモリ領域はプロセッサレジスタであって、システム、CPU101、及びDSP102の動作又は停止状態を表示するビット(リード専用)、CPU101、DSP102の動作の開始又は停止を要求するための書き込み可能なビット、CPU101、DSP102に割り込み要求を発行するためのビット等が設けられている。 【0023】アドレス500020h,500024h,500028h,50002Chを先頭アドレスとするメモリ領域は割り込みレジスタであって、CPU101と外部マイクロプロセッサ相互の、またはCPU101又は外部マイクロプロセッサに対する各内部回路からの各割り込み信号に関するビットが設けられている。各割り込み信号に関するビットは、例えば、外部マイクロコンピュータインターフェース110を介して接続されたマイクロコンピュータ又はCPU101によって、DSP102、メモリバンク106等の各内部回路が発した割り込み要求やバス競合の各種通知を処理するために用いられる。 【0024】アドレス500030h,500034h,500038h,50003Chを先頭アドレスとするメモリ領域はタイマレジスタである。タイマレジスタは、システムクロックCLKの周期で変化する2つの32ビットアップカウンタの値を保持する2つのレジスタと、カウンタアップ動作の開始指示と初期値の設定とを行うための32ビットの2つのレジスタとから構成されている。この場合、初期値設定用の各レジスタに“0h”以外の値を書き込むと各カウンタが動作を開始するようになっている。アドレス500040h,500044h,500048h,50004Chを先頭アドレスとして指定される32ビット4ワード分のメモリ領域は汎用レジスタであり、任意のデータが読み書きできるようになっている。なお、アドレス500050h〜500078hは予備として、使用されていない。 【0025】アドレス50007Chを先頭アドレスとする32ビット1ワード分のメモリ領域は、パスワードレジスタであり、CPU101もしくは外部のマイクロコンピュータによって所定の32ビットのパスワードデータが書き込まれるようになっている。本実施形態では、CPU101が、このパスワードレジスタに正当なパスワードデータを設定しないと、コントロールレジスタ部108内のパスワードレジスタ以外の各制御レジスタへの書き込み動作を行うことができないようになっている。また、パスワードレジスタに所定のパスワードデータを書き込んだ後、他の制御レジスタに一度でも書き込みを行うと、パスワードレジスタの値が自動的に00000000hにリセットされるようになっている。そのため、制御レジスタへの書き込みは、一回の書き込みを行うたびに、それに先だってパスワードレジスタへパスワードデータの書き込みを行う必要がある。 【0026】なお、本実施形態では、マイクロコンピュータインターフェース110を介して接続された外部のマイクロコンピュータが、コントロールレジスタ部108のパスワードレジスタ以外の制御レジスタにデータを書き込むときは、パスワードレジスタへのパスワードデータの書き込みが不要であるとしている。ただし、この構成に代えて、CPU101または外部のマイクロコンピュータの両方、あるいは外部のマイクロコンピュータのみについて、パスワードレジスタへのパスワードデータの書き込みがない場合に他の制御レジスタへの書き込みが行えないような構成にしてもよい。各制御レジスタへのデータのリード(読み出し)については、パスワードに関係なく行うことができるようになっている。 【0027】次に、図5を参照して、図1に示すコントロールレジスタ部108の構成について説明する。図5に示すように、コントロールレジスタ部108は、コントロールレジスタ群201と、パスワードレジスタ202と、3入力の負論理入力型NAND205とから構成される。このうち、コントロールレジスタ群201は、図2に示すアドレス500000h〜500078hを先頭アドレスとする各制御レジスタに対応する複数の記憶回路から構成され、コントロールレジスタチップセレクト信号CSN_CR(負論理)がアクティブ(“LOW”レベル)で、かつコントロールレジスタライトイネーブル信号WEN(負論理)がアクティブ(“LOW”レベル)であり、且つパスワード一致出力「A=B(負論理)」がアクティブ(“LOW”レベル)である場合にのみ、コントロールレジスタ用アドレスバス信号AD_CRのアドレス値に対応する記憶回路がアクティブとなり、データバスDI上のデータがその記憶回路に書き込まれるようになっている。また、コントロールレジスタライトイネーブル信号WEN(負論理)が非アクティブ(“HIGH”レベル)の場合には、コントロールレジスタ群201内の制御レジスタに対するデータの書き込みが禁止される。 【0028】ここで、コントロールレジスタチップセレクト信号CSN_CR(負論理)は、図1の内部メモリインターフェース104から出力される信号であって、CPU101等がコントロールレジスタ部108の各制御レジスタにアクセスする際に“LOW”レベルに設定される。このコントロールレジスタチップセレクト信号CSN_CRは、アドレスバスAD上のアドレス値がコントロールレジスタ群201内の各制御レジスタ(制御レジスタのパスワードレジスタ202以外の各制御レジスタ)に対応し、内部信号CSNがアクティブの場合にアクティブに設定される。 【0029】また、同様な信号として後述するパスワードレジスタチップセレクト信号CSN_PR(負論理)は、アドレスバスAD上のアドレス値がパスワードレジスタ202のアドレスに対応し、上述の内部信号CSNがアクティブの場合にアクティブに設定される。ライトイネーブル信号WEN(負論理)は、CPU101等がコントロールレジスタ部108の各制御レジスタや、他のメモリやレジスタにデータ書き込みを行う際に“LOW”レベルに設定される。 【0030】負論理入力型NAND205は、コントロールレジスタチップセレクト信号CSN_CRと、ライトイネーブル信号WENと、コンパレータ203の一致出力「A=B」(AとBが一致のときアクティブロウ)とを入力し、その出力をコントロールレジスタライトイネーブル信号WEN_CR又はリセット信号RSN(共に負論理)とする論理回路である。負論理入力型NAND205は、コンパレータ203が一致状態の比較結果(“LOW”レベルつまりA=B)を出力し、またコントロールレジスタチップセレクト信号CSN_CRがアクティブ(“LOW”)となっている場合に、ライトイネーブル信号WENがアクティブ(“LOW”)となったことを、アクティブ(“LOW”)として伝送する。この場合に、コントロールレジスタ群201内の各制御レジスタに対するデータの書き込みが可能な状態となる。なお、コントロールレジスタ用アドレスバス信号AD_CRは、図1の内部メモリインターフェース104から出力されるアドレスバスADの信号のうち、コントロールレジスタ部108の各レジスタに対応するアドレスのみを含むようにデコードされたアドレス信号である。 【0031】パスワードレジスタ202は、図2のパスワードレジスタ(先頭アドレス50007Ch)に対応するものであって複数の記憶回路から構成され、パスワードレジスタチップセレクト信号CSN_PR(負論理)が“LOW”レベルで、かつライトイネーブル信号WENが“LOW”レベルの場合、データバスDI上のデータを格納するようになっている。出力O_PRは、パスワードレジスタ202の出力データバスである。リセット入力RSN(負論理)は、パスワードレジスタ202の記憶内容をリセットするための信号であり、負論理入力型NAND205から出力されるコントロールレジスタライトイネーブル信号WEN_CR(負論理)と同一の信号が入力される。 【0032】パスワードレジスタチップセレクト信号CSN_PRは、図示しないデコード回路で生成されるもので、上述したように、コントロールレジスタチップセレクト信号CSN_CRがアクティブ(“LOW”レベル)で、かつ、図1の内部メモリインターフェース104から出力されるアドレスバス信号ADが示すアドレスがパスワードレジスタの先頭アドレス(50007Ch)に一致する場合に、アクティブ(“LOW”レベル)となる信号である。 【0033】コンパレータ203は、パスワードレジスタ202の出力O_PR上の32ビットのデータと、パスワード発生部204で発生される32ビットのパスワードデータとを比較するものであって、これらデータが一致しなかったときに出力A≠Bとして“HIGH”レベルを出力し、一致したときに出力A=Bとして“LOW”レベルを出力する。パスワード発生部204は、例えば、LSI内の配線によって電源(“HIGH”レベル)またはグランド(“LOW”レベル)に選択的に接続された32ビットのマスクROMから構成されるものであって、比較基準となるパスワードデータの値を出力するものである。 【0034】次に、図6を参照して、図5に示すパスワードレジスタ202の構成について説明する。図6に示すパスワードレジスタ202は、データバスDIを構成する32ビットのデータ線DI[31]〜DI[00]をそれぞれ“1”入力に接続する32個のセレクタ301、302、…、303と、セレクタ301、302、…、303の各出力Oをそれぞれ入力Iとする32個のフリップフロップ304、305、…、306と、2個のゲート回路307及び308から構成されている。 【0035】セレクタ301、302、…、303の各“0”入力は、“LOW”レベルに設定されていて、出力Oから出力される入力(“1”入力又は“0”入力)を選択する選択入力Sには、ゲート回路307の出力が接続されている。セレクタ301、302、…、303は、選択入力Sが“HIGH”の場合“1”入力の信号を出力し、選択入力Sが“LOW”の場合“0”入力の信号を出力する。したがって、この場合、負論理2入力ANDとして構成されたゲート回路307の2つの入力、ライトイネーブル信号WENがアクティブ(“LOW”レベル)で、かつ、パスワードレジスタチップセレクト信号CSN_PRがアクティブ(“LOW”レベル)のとき、ゲート回路307の出力が“HIGH”レベルとなるので、セレクタ301、302、…、303の各出力Oからは、データバスDIの各ビット信号線上のデータDI[31]、DI[30]、…、DI[00]が出力される。それ以外のときは初期化データとして用いられる“LOW”レベルが出力される。 【0036】フリップフロップ304、305、…、306は、それぞれ、ロード入力LDが“1”レベルのとき、クロック入力CKに入力されるクロック信号の立ち上がりに同期して入力Iに入力されているデータを内部の記憶回路に記憶するとともに、各出力O_PR[31]、出力O_PR[30]、…、出力O_PR[00]からそれぞれ出力する。ここで、出力O_PR[31]、出力O_PR[30]、…、出力O_PR[00]は、出力データバスO_PRの各データビットをなすものである。一方、ロード入力LDが非アクティブのときは、クロック入力CKの入力変化にかかわらず、記憶回路に記憶された各データがそれぞれ保持されて出力される。フリップフロップ304、305、…、306の各ロード入力LDには、ゲート回路308の出力が共通に入力される。フリップフロップ304、305、…、306の各クロックCKには、システムクロック信号CLKが共通に入力される。 【0037】ゲート回路308は、1負論理入力/1正論理入力型の2入力ORである。その負論理入力部には、図5に示すリセット入力信号RSNとして、負論理入力型NAND205の出力(コントロールレジスタライトイネーブル信号WEN_CR)が入力され、正論理入力部にはゲート回路307の出力が入力される。なお、リセット信号RSN(すなわちコントロールレジスタチップセレクト信号CSN_CR)と、パスワードレジスタチップセレクト信号CSN_PRは、両方が同時にアクティブ(“LOW”レベル)となることはない。 【0038】図5に示す構成において、例えば、CPU101等がパスワードレジスタ202にパスワードデータを書き込む場合(サイクル1とする)、パスワードレジスタチップセレクト信号CSN_PRとライトイネーブル信号WENを共にアクティブ(“LOW”レベル)に設定する。ただし、コントロールレジスタチップセレクト信号CSN_CRは非アクティブ(“HIGH”レベル)とする。この場合、ゲート回路307の出力とゲート回路308の出力は共にアクティブとなる。従って、セレクタ301、302、…、303の各選択入力Sは“1”となり、セレクタ301、302、…、303の各出力Oからは各“1”入力部に入力されたデータDI[31]、DI[30]、…、DI[00]がそれぞれ出力される。 一方、フリップフロップ304、305、…、306の各ロード入力LDも“1”になるので、フリップフロップ304、305、…、306はシステムクロックCLKの立ち上がり時にデータDI[31]、DI[30]、…、DI[00]のレベルをそれぞれ保持(パスワード書き込み状態)するとともに、これらを出力O_PR[31]、O_PR[30]、…、O_PR[00]として出力する。 【0039】また、次にCPU101等がコントロールレジスタ群201のいずれかの制御レジスタにデータを書き込む場合(サイクル2とする)、コントロールレジスタチップセレクト信号CSN_CRとライトイネーブル信号WENが共にアクティブ(“LOW”レベル)に設定され、パスワードレジスタチップセレクト信号CSN_PRが非アクティブ(“HIGH”レベル)とされる。ただし、サイクル1で書き込んだパスワードは一致しているものとする。この場合、ゲート回路307の出力は“0”となり、リセット入力信号RSNがアクティブ(“LOW”レベル)であるので、ゲート回路308の出力は“1”となる。従って、セレクタ301、302、…、303の各選択入力Sは“0”となり、セレクタ301、302、…、303の各出力Oからは各“0”入力部に入力された“LOW”レベルの信号が出力される。一方、フリップフロップ304、305、…、306の各ロード入力LDは“1”になるので、フリップフロップ304、305、…、306はシステムクロックCLKの立ち上がり時にセレクタ301、302、…、303の各出力Oから出力された“0”の信号を取り込んで保持するとともに、出力O_PR[31]、O_PR[30]、…、O_PR[00]からそれらを出力する。即ち、コントロールレジスタ群201にデータが書き込まれた場合にはパスワードレジスタ202が初期化される。 【0040】次に、図7に示すタイミングチャートを参照して、図5に示すコントロールレジスタ部108の動作について具体例を用いて説明する。図7は、サイクル1でCPU101がパスワードレジスタ202に正当なパスワードデータ“PSWD”を書き込み、サイクル2でコントロールレジスタ群201内の1つの制御レジスタにデータ“FFFFFFFFh”を書き込み、サイクル3で同一制御レジスタにデータ“00000000h”を書き込もうとした場合の動作例における各部の波形を示している。ここで、パスワードレジスタ201のアドレスの値をAD_PR、アクセスしている制御レジスタのアドレスの値をAD_CR1で表している。 【0041】サイクル1でCPU101は、ライトイネーブル信号WENをアクティブ(“LOW”レベル)に設定し、データバスDIにパスワードデータ“PSWD”を出力し、かつ、アドレスバスADにパスワードレジスタのアドレスAD_PRを出力し、また、上述したコントロールレジスタチップセレクト信号CSN_CRを非アクティブ(“HIGH”レベルとする)にする。パスワードレジスタチップセレクト信号CSN_PRをアクティブ(“LOW”レベル)にする。なお、サイクル1において、パスワードレジスタ202の出力O_PRは“00000000h”であるとする。 【0042】サイクル1では、パスワードレジスタチップセレクト信号CSN_PRがアクティブ(“LOW”レベル)であり、ライトイネーブル信号WENがアクティブ(“LOW”レベル)になるとともに、パスワードレジスタ202の入力にパスワードデータ“PSWD”が入力される。従って、サイクル2のシステムクロックCLKの立ち上がりでは、パスワードレジスタ202の入力にパスワードデータ“PSWD”が格納され、出力O_PRからパスワードデータ“PSWD”が出力される。そして、コンパレータ203の出力「A=B」は、その比較結果が一致となるので、アクティブ(“LOW”レベル)となる。 【0043】一方、サイクル2では、CPU101がアドレスバスADにコントロールレジスタ群201内のアクセス対象の制御レジスタのアドレスAD_CR1を出力するとともに、データバスDIにその制御レジスタに書き込むデータ“FFFFFFFFh”を出力する。ここでは、CPU101の出力によるライトイネーブル信号WENとコントロールレジスタチップセレクト信号CSN_CRはアクティブ(“LOW”レベル)とする。このとき、コントロールレジスタチップセレクト信号CSN_CRとライトイネーブル信号WENがアクティブ(“LOW”レベル)であり、また、コンパレータ203の出力「A=B」がアクティブ(“LOW”レベル)となるので、コントロールレジスタライトイネーブル信号WEN_CRがアクティブ(“LOW”レベル)になり、次のサイクル3のシステムクロックCLKの立ち上がりでその制御レジスタにデータ“FFFFFFFFh”が書き込まれ、出力O_CRからデータ“FFFFFFFFh”が出力される。 【0044】サイクル3でCPU101は、同一の制御レジスタにデータ“00000000h”を書き込もうとして、データバスDIにデータ“00000000h”を出力する。この場合、サイクル2でリセット入力RSN(即ちコントロールレジスタライトイネーブル信号WEN_CR)がアクティブ(“LOW”レベル)になっているので、サイクル3のシステムクロックCLKの立ち上がりでパスワードレジスタ202の出力O_PRは“00000000h”にリセットされている。そのため、コンパレータ203の出力「A=B」が非アクティブ(“HIGH”レベル)となり、コントロールレジスタライトイネーブル信号WEN_CRが非アクティブ(“HIGH”レベル)になる。したがって、データバスDI上に出力されたデータ“00000000h”は制御レジスタに書き込まれず、サイクル3の次のシステムクロックCLKの立ち上がりにおいても、出力O_CRはデータ“FFFFFFFFh”のまま変化しない。 【0045】なお、図7に示す例では、パスワードデータの書き込み(サイクル1)と制御レジスタへのデータの書き込み(サイクル2)を連続した2つのクロックに同期させて実行しているが、パスワードを書き込んだ後は、制御レジスタへのデータの書き込みが行われるまで、そのパスワードレジスタ202の記憶内容は保持されるので、複数サイクルを隔てて、コントロールレジスタ群201内の制御レジスタへの書き込みを行ってもよい。ただし、一度、コントロールレジスタ群201内の制御レジスタへの書き込みを行うと、リセット信号RSNがアクティブ(“LOW”レベル)となって、パスワードレジスタ202の記憶内容はクリアされるので、書き込みを行った次のサイクル以降は書き込みは禁止されることに変わりはない。即ち、コントロールレジスタ群201内の制御レジスタへのデータの書き込みを行うには、パスワードレジスタ202にパスワードデータを先に格納しなければならない。 【0046】次に、図8〜図10を参照して、図1のDSP装置1のシステム全体としての動作例について説明する。ここでは、CPU101が、DSP102に対してDSP処理の実行を要求する場合の処理の一例について説明する。DSP処理を行う場合、CPU101は、最初にDSP102のリセットを解除する処理を行う(図8のステップ401)。DSP102のリセット解除は、図2に示す各制御レジスタのうち、プロセッサレジスタ内の所定のビットに“1”を書き込むことで行う。制御レジスタへのデータの書き込みは、ステップ401から呼び出される制御レジスタライト処理ルーチン501で行う。 【0047】図9に示すように、制御レジスタライト処理ルーチン501ではまず、パスワードレジスタ202への書き込み(ライト)要求が行われ(ステップ502)、ライトイネーブル信号WEN、パスワードレジスタチップセレクト信号CSN_PR等の所定の信号の状態がアクティブに設定されるとともに、アドレスバスAD及びデータバスDIにパスワードレジスタアドレス及びパスワードデータが出力される。次に、ハードウェア処理によってパスワードレジスタ202の書き込みが実行される(ステップ503)。なお、図9及び図10では、ハードウェアによって実行される処理を太線のブロックで示している。 【0048】次に、CPU101は、制御レジスタ(この場合、プロセッサレジスタ)に対する書き込み要求を行い(ステップ504)、DSP102のリセットを解除するために用いられるシステムレジスタ内の所定のビットの状態をアクティブに設定するように、アドレスバスAD及びデータバスDIにシステムレジスタのアドレス及び所定の書き込みデータが設定される。なお、この例では、DSP102が、制御レジスタ(この場合システムレジスタ)のDSPリセット解除用のビットがアクティブに設定されると、リセット状態が解除され、処理開始要求を待機する状態である停止状態に移行するように動作するものとする。 【0049】次に、ハードウェアによって、ステップ503で書き込まれたパスワードデータが正しいか否かが判定され(ステップ505)、正しい場合には制御レジスタへの書き込みが行われ(ステップ506)、パスワードレジスタ202の初期化(すなわちパスワードの解除)が行われる(ステップ507)。なお、ステップ503でパスワードが正しくないと判定された場合には、ステップ506及びステップ507がスキップされ、一連の処理が終了する。 【0050】図8のステップ401では、制御レジスタライト処理ルーチン501が終了すると、必要に応じて他の所定の処理を行った後、DSP102が停止状態になったかどうかを監視する(ステップ402)。ステップ402では、コントロールレジスタ群201のプロセッサレジスタ内の所定のデータ(停止中又は動作中を示すビットのデータ)を読み出すことでDSP102が停止中か、動作中かが判定される。このときステップ402では、制御レジスタリード処理ルーチン601を呼び出すことで、プロセッサレジスタの読み出し処理が行われる。 【0051】制御レジスタリード処理ルーチン601では、図10に示すように、まず、制御レジスタに対しての読み出し(リード)要求が行われ(ステップ602)、図示しないリードイネーブル信号等の所定の信号の状態がアクティブに設定されるとともに、アドレスバスADに読み出し先の制御レジスタのアドレス値が設定される。次に、ハードウェア処理によって制御レジスタからのデータの読み出しが実行される(ステップ603)。ここで制御レジスタリード処理ルーチン601の処理が終了する。 【0052】ステップ402では、繰り返し、制御レジスタリード処理ルーチン601によってコントロールレジスタ群201内のプロセッサレジスタのDSP102の状態(停止又は動作)を表示するデータが読み出され、所定のビットの値を調べることで、DSP102が停止中か、動作中かが判定され、そして、DSP102が停止状態であると判定された場合に次のステップ403の処理が実行される。ステップ403では、DSP102の各処理状態を設定するためのDSPレジスタの設定が行われる。次に、CPU101は、DSP102に処理の開始要求を発行する(ステップ404)。 【0053】ステップ404では、図9に示す制御レジスタライト処理ルーチン501が呼び出されて、ステップ401の場合と同様にして、パスワードレジスタ202へのパスワードデータの書き込み処理と、制御レジスタへの書き込み処理が実行される。この場合、制御レジスタにおける書き込み対象はプロセッサレジスタ内でDSP102に動作の開始要求を発行するためのビットであり、そのビットに例えば“1”を書き込むことで開始要求の発行処理が行われる。制御レジスタライト処理ルーチン501が終了すると、CPU101内のレジスタの設定等の必要な処理を行った後、ステップ405でDSP102による処理の終了を待機する処理が実行される。ステップ405では、ステップ402と同様に、繰り返し、制御レジスタリード処理ルーチン601によって読み出されたコントロールレジスタ群201内のプロセッサレジスタのDSP102の状態を表示するビットを調べることで、DSP102が停止中か、動作中かを判定し、DSP102が停止状態であると判定した場合に、DSPの処理が終了したと判定し、図8に示す一連の処理を終了する。 【0054】以上のように、本発明の実施形態によれば、パスワードデータの初期化が自動的に行われるので、プログラム等によって行う場合に比べ、パスワードレジスタの初期化動作を安定して確保することができる。また、書き込み保護を行う制御レジスタへの書き込みを、1回行うたびにパスワードレジスタの初期化するようにしているので、制御レジスタのデータが誤作動によって複数回連続して書き換えられてしまうというような状態を回避することができる。 【0055】なお、本発明は、上記実施の形態の構成に限定されることなく、例えば、図1のDSP装置を構成する各回路ブロックを複数の集積回路に分割して設けるようにしたり、複数の制御レジスタに対するアクセス制限をアドレス毎にあるいはビット毎に行えるようしたり、パスワード発生部204を書換え可能なメモリ等によって構成するようにしたり、あるいは、制御レジスタへの書き込みが許可される期間をパスワードを書き込んだ次の1又は複数の所定回のサイクルに限定したりするようにする変更を適宜行うことができる。以上、この発明の実施形態について図面を参照して詳述してきたが、本発明はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。 【0056】 【発明の効果】以上説明したように、本発明によれば、制御レジスタ等からなるデータ記憶手段へのデータの書き込み動作又はその指示に連動して、パスワードレジスタ等からなるパスワードデータ記憶手段の記憶内容を初期化するようにしたので、パスワードのクリアが安定して行えるようになり、また、パスワードデータがデータ記憶手段へのデータの書き込みに連動して初期化されるので、誤ったデータの書き込みが複数回連続して発生してしまうという従来の課題を解決することができる。従って、プログラムなどによらずに制御レジスタに対するデータ書き込み時の誤作動を防止することが可能となる。
|
| 【出願人】 |
【識別番号】000004075 【氏名又は名称】ヤマハ株式会社 【住所又は居所】静岡県浜松市中沢町10番1号
|
| 【出願日】 |
平成14年5月15日(2002.5.15) |
| 【代理人】 |
【識別番号】100064908 【弁理士】 【氏名又は名称】志賀 正武 (外1名)
|
| 【公開番号】 |
特開2003−330800(P2003−330800A) |
| 【公開日】 |
平成15年11月21日(2003.11.21) |
| 【出願番号】 |
特願2002−140732(P2002−140732) |
|