(57)【特許請求の範囲】
【請求項１】
外部から供給される外部データを内部データに変換する書き込みデータ変換部と、
前記内部データを記憶するメモリセルを有するメモリセルアレイと、
前記メモリセルアレイから読み出される前記内部データを元の外部データに変換する読み出しデータ変換部と、
前記各書き込みデータ変換部または読み出しデータ変換部の機能を、前記メモリセルアレイにデータを入力または出力するコントローラ毎に有効／無効に設定する変換制御部とを備えていることを特徴とする半導体メモリ。
【請求項２】
請求項１記載の半導体メモリにおいて、
変換キーが格納されるキーレジスタを備え、
前記書き込みデータ変換部または前記読み出しデータ変換部は、前記キーレジスタに格納されている前記変換キーを用いて変換動作を実行することを特徴とする半導体メモリ。
【請求項３】
請求項１記載の半導体メモリにおいて、
複数種の変換情報のいずれかが格納される変換レジスタを備え、
前記書き込みデータ変換部および読み出しデータ変換部は、前記変換レジスタに格納されている変換情報に対応する変換方法を用いて変換動作を実行することを特著とする半導体メモリ。
【請求項４】
請求項１記載の半導体メモリにおいて、
前記内部データを記憶するために前記メモリセルアレイに割り当てられる記憶領域の大きさを変更するための領域レジスタを備えていることを特徴とする半導体メモリ。
【請求項５】
請求項１記載の半導体メモリにおいて、
前記コントローラにそれぞれ対応して形成され、前記書き込みデータ変換部および前記読み出しデータ変換部の有効／無効を示す有効情報をそれぞれ記憶するイネーブルレジスタを備え、
前記変換制御部は、前記書き込みデータ変換部または読み出しデータ変換部を、前記イネーブルレジスタに保持されている前記有効情報に応じてそれぞれ有効／無効に設定することを特徴とする半導体メモリ。
【請求項６】
請求項１記載の半導体メモリにおいて、
前記内部データのエラーを訂正するためのエラー訂正コードを生成するコード生成部と、
前記エラー訂正コードを用いて前記内部データのエラーを検出し、エラー訂正可能なエラーを訂正するエラー訂正部とを備え、
前記メモリセルアレイは、エラー訂正コードを記憶するエラーコード領域を備えていることを特徴とする半導体メモリ。
【請求項７】
請求項１記載の半導体メモリにおいて、
前記書き込みデータ変換部は、外部データを暗号化することで前記内部データに変換し、
前記読み出しデータ変換部は、前記内部データを復号化することで元の外部データに変換することを特徴とする半導体メモリ。
【請求項８】
請求項１記載の半導体メモリにおいて、
前記書き込みデータ変換部は、外部データを圧縮することで前記内部データに変換し、
前記読み出しデータ変換部は、前記内部データを解凍することで元の外部データに変換
することを特徴とする半導体メモリ。
【請求項９】
請求項１記載の半導体メモリにおいて、
前記書き込みデータ変換部は、外部から供給され、外部データの格納先を示すアドレスをスクランブルアドレスに変換し、
前記読み出しデータ変換部は、前記外部データを読み出すための前記アドレスを前記スクランブルアドレスに変換し、
前記外部データは、前記スクランブルアドレスにより示されるメモリセルに書き込まれることで、前記内部データに変換され、
前記内部データは、前記スクランブルアドレスにより示されるメモリセルから読み出されることで、元の外部データに変換されることを特徴とする半導体メモリ。
【請求項１０】
請求項１記載の半導体メモリにおいて、
論理をプログラム可能なフィールドプログラマブル部と、
前記フィールドプログラマブル部の論理を構成するためのプログラムが格納される不揮発性のプログラム領域とを備え、
前記書き込みデータ変換部および前記読み出しデータ変換部は、前記フィールドプログラマブル部に形成されることを特徴とする半導体メモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部から供給されるデータを別のデータに変換する機能を有する半導体メモリに関する。
【背景技術】
【０００２】
暗号化等により元のデータを別のデータに変換することは、データの不正なアクセスを防止するために重要である。データの暗号化が必要なセキュリティシステムでは、暗号化され半導体メモリに格納されたデータは、復号することにより読み出される。一般に、暗号化および復号化は、半導体メモリをアクセスするコントローラにより実行される。具体的には、暗号化および復号化は、ソフトウエアあるいはコントローラに形成されたハードウエアにより実行される（例えば、特許文献１参照）。
【特許文献１】特開２００５−７８４５９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来のセキュリティシステムでは、暗号化および復号化は、ＣＰＵ等のコントローラにより実行される。コントローラは、データを暗号化し、暗号化したデータを半導体メモリに書き込む。また、コントローラは、暗号化されたデータを半導体メモリから読み出し、読み出したデータを元のデータに復号する。あるいは、コントローラは、半導体メモリに格納されている暗号化されたデータを、復号することなくハードディスク装置等に転送する。このように、半導体メモリには、暗号化されたデータのみが入出力される。
【０００４】
一般に、コントローラが持つ機能を外部デバイスに移行することにより、コントローラの負荷は軽減され、システムのパフォーマンスは向上する。しかしながら、暗号機能および復号機能を持つ半導体メモリは提案されていない。
【０００５】
暗号機能および復号機能を半導体メモリ内で実現する場合、半導体メモリは、暗号化されていないデータと暗号化されたデータの両方を入出力する必要がある。具体的には、コントローラから半導体メモリに供給されるデータは、暗号化されていない。一方、半導体メモリ内の暗号化されたデータがハードディスク装置等に転送される場合、半導体メモリから出力されるデータは、暗号化されている。しかしながら、暗号化されたデータと暗号化されていないデータとが入出力される場合の半導体メモリＭＥＭの動作手法および回路技術は、検討されていない。さらに、半導体メモリは、システム内の複数のコントローラによりアクセスされる可能性がある。このため、暗号機能および復号機能を有する半導体メモリでは、アクセス権の制御手法を新たに検討する必要がある。
【０００６】
本発明の目的は、データの変換機能を持つ半導体メモリを提供することにより、システムのパフォーマンスを向上することにある。特に、変換機能を有効または無効に設定可能な半導体メモリを提供することにより、半導体メモリに書き込まれたデータのセキュリティを守ることにある。
【課題を解決するための手段】
【０００７】
本発明の一形態では、変換制御部は、書き込みデータ変換部または読み出しデータ変換部の変換機能を、メモリセルアレイにデータを入力または出力するコントローラ毎に有効または無効に設定する。書き込みデータ変換部は、有効に設定されているときに、外部から供給される外部データを内部データに変換する。内部データは、メモリセルアレイに記憶される。読み出しデータ変換部は、有効に設定されているときに、メモリセルアレイか
ら読み出される内部データを元の外部データに変換する。例えば、書き込みデータ変換部または読み出しデータ変換部は、キーレジスタに格納されている変換キーを用いて変換動作を実行する。
【０００８】
書き込みデータ変換部および読み出しデータ変換部の変換機能を無効にできるため、外部から供給される既に内部データに変換されたデータをメモリセルアレイに書き込むことができる。また、メモリセルアレイに書き込まれた内部データを外部に直接出力できる。したがって、元の外部データが必要なコントローラに対しては外部データを入出力でき、内部データが必要なコントローラに対しては内部データを入出力できる。すなわち、コントローラ毎に必要なデータを入出力できる。したがって、従来のコントローラが持っていたデータ変換機能を半導体メモリ内で実現できるため、コントローラの負荷を軽減できる。この結果、システムのパフォーマンスを向上できる。
【０００９】
また、例えば、半導体メモリに対するアクセス権のない無効なコントローラは、正しいデータ（変換前の元のデータ）を読み出すことができない。したがって、半導体メモリに書き込まれたデータのセキュリティを守ることができる。
【００１０】
本発明の一形態における好ましい例では、書き込みデータ変換部および読み出しデータ変換部は、変換レジスタに格納されている変換情報に対応する変換方法を用いて変換動作を実行する。複数の変換方法を選択的に使用できるため、半導体メモリに書き込まれたデータのセキュリティを向上できる。また、半導体メモリが搭載されるシステムに応じて変換方法を最適に設定できる。
【００１１】
本発明の一形態における好ましい例では、内部データを記憶するためにメモリセルアレイに割り当てられる記憶領域の大きさは、領域レジスタの設定値に応じて変更される。このため、システムの仕様に応じた最適な容量の記憶領域を有する半導体メモリを、１つのチップで実現できる。
【００１２】
本発明の一形態における好ましい例では、イネーブルレジスタは、書き込みデータ変換部および読み出しデータ変換部の有効／無効を示す有効情報を、コントローラにそれぞれ対応して記憶する。変換制御部は、書き込みデータ変換部または読み出しデータ変換部を、イネーブルレジスタに保持されている有効情報に応じてそれぞれ有効または無効に設定する。これにより、アクセス権のないコントローラによる半導体メモリのアクセス時に、変換動作を禁止できる。したがって、半導体メモリに保持されたデータのセキュリティを守ることができる。
【００１３】
本発明の一形態における好ましい例では、コード生成部は、内部データのエラーを訂正するためのエラー訂正コードを生成する。エラー訂正部は、エラー訂正コードを用いて内部データのエラーを検出し、エラー訂正可能なエラーを訂正する。メモリセルアレイは、エラーコード領域にエラー訂正コードを記憶する。エラー訂正機能を付加することにより、データの信頼性を向上できる。
【００１４】
本発明の一形態における好ましい例では、書き込みデータ変換部および読み出しデータ変換部は、論理をプログラム可能なフィールドプログラマブル部に形成される。不揮発性のプログラム領域は、フィールドプログラマブル部の論理を構成するためのプログラムが格納される。これにより、データの変換機能をシステムの仕様に合わせてシステム上で変更できる。
【発明の効果】
【００１５】
従来のコントローラが持っていたデータ変換機能を半導体メモリ内で実現できるため、
コントローラの負荷を軽減できる。この結果、システムのパフォーマンスを向上できる。また、半導体メモリに書き込まれたデータのセキュリティを守ることができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施形態を図面を用いて説明する。図中の二重丸は、外部信号を受ける外部端子を示している。太線で示した信号線は、複数本で構成されている。また、太線が接続されているブロックの一部は、複数の回路で構成されている。信号が伝達される信号線には、信号名と同じ符号を使用する。
【００１７】
図１は、本発明の第１の実施形態を示している。半導体メモリＭＥＭは、例えば、ＤＲＡＭのメモリセル（ダイナミックメモリセル）を有し、ＳＲＡＭのインタフェースを有するＦＣＲＡＭ（Fast Cycle RAM）チップとして形成されている。ＦＣＲＡＭは、擬似ＳＲＡＭの一種であり、外部からリフレッシュコマンドを受けることなく、チップ内部で定期的にリフレッシュ動作を実行し、メモリセルに書き込まれたデータを保持する。半導体メモリＭＥＭは、システム基板上で、システムバスＳＢＵＳを介してマイクロコントローラＣＰＵ）、ＤＭＡＣ（Direct Memory Access Controller）およびハードディスクドライブ装置ＨＤＤに接続されている。メモリＭＥＭ、ＣＰＵ、ＤＭＡＣおよびＨＤＤによりシステムＳＹＳが構成されている。なお、システムＳＹＳをＳＩＰ（System In Package）技術を用いて構成してもよい。
【００１８】
ＣＰＵは、システムＳＹＳ全体の動作を制御し、メモリＭＥＭにデータを読み書きする。ＤＭＡＣは、ＣＰＵからの転送要求に応答して、メモリＭＥＭとＨＤＤとの間でデータを転送する。システムバスＳＢＵＳは、アドレス線ＡＤ、データ線ＤＴおよび制御線ＣＮＴで構成されている。制御信号ＣＮＴは、例えば、チップセレクト信号およびライトイネーブル信号であり、ＣＰＵおよびＤＭＡＣからメモリＭＥＭおよびＨＤＤに出力される。
【００１９】
この実施形態では、メモリＭＥＭおよびＨＤＤには、暗号化された内部データが書き込まれる。ＣＰＵとメモリＭＥＭ間で入出力されるデータは、暗号化されていない外部データである。ＤＭＡＣの動作によりメモリＭＥＭとＨＤＤ間で入出力されるデータは、暗号化された内部データである。すなわち、暗号化されたデータと暗号化されていないデータの両方が、データ線ＤＴ上に伝達される。したがって、メモリＭＥＭは、受けたデータが暗号化されているか否かを、アクセスされるコントローラ（この例ではＣＰＵまたはＤＭＡＣ）に応じて識別する必要がある。また、メモリＭＥＭは、暗号化されたデータを出力するか、復号されたデータを出力するかを、データを転送するコントローラ（この例ではＣＰＵまたはＨＤＤ）に応じて判断する必要がある。
【００２０】
メモリＭＥＭは、エンコーダＥＮＣ（書き込みデータ変換部）、デコーダＤＥＣ（読み出しデータ変換部）、イネーブルレジスタＥＮＲを含む変換制御部ＣＮＶＣ、キーレジスタＫＥＹＲ、動作制御回路ＯＰＣ、メモリセルアレイＡＲＹおよびアドレスデコーダＡＤＥＣを有している。
【００２１】
エンコーダＥＮＣは、エンコードイネーブル信号ＥＮＣＥＮが高レベルに活性化されているときに、外部データ端子ＤＴで受けたデータを暗号化し、暗号化したデータをメモリセルアレイＡＲＹに出力する。エンコーダＥＮＣは、エンコードイネーブル信号ＥＮＣＥＮが低レベルに非活性化されているときに、暗号機能を無効にする。このため、外部データ端子ＤＴで受けたデータは、エンコーダＥＮＣを通ってメモリセルアレイＡＲＹに出力される。
【００２２】
デコーダＤＥＣは、デコードイネーブル信号ＤＥＣＥＮが高レベルに活性化されているときに、メモリセルアレイＡＲＹから読み出された暗号化されたデータを復号し、復号し
たデータを外部データ端子ＤＴに出力する。デコーダＤＥＣは、デコードイネーブル信号ＤＥＣＥＮが低レベルに非活性化されているときに、復号機能を無効にする。このため、メモリセルアレイＡＲＹから読み出された暗号化されたデータは、復号されることなくデコーダＤＥＣを通って外部データ端子ＤＴに出力される。
【００２３】
イネーブルレジスタＥＮＲは、エンコーダＥＮＣの有効／無効を示す有効情報を記憶する書き込みフラグＷＦと、デコーダＤＥＣの有効／無効を示す有効情報を記憶する読み出しフラグＲＦとを有している。イネーブルレジスタＥＮＲは、メモリＭＥＭの外部から書き替え可能である。例えば、イネーブルレジスタＥＮＲは、ＣＰＵのＩ／Ｏ空間に割り当てられている。
【００２４】
変換制御部ＣＮＶＣは、書き込みフラグＷＦが有効に設定されているときにエンコードイネーブル信号ＥＮＣＥＮを高レベルに活性化し、書き込みフラグＷＦが無効に設定されているときにエンコードイネーブル信号ＥＮＣＥＮを低レベルに非活性化する。また、変換制御部ＣＮＶＣは、読み出しフラグＲＦが有効に設定されているときにデコードイネーブル信号ＤＥＣＥＮを高レベルに活性化し、読み出しフラグＲＦが無効に設定されているときにデコードイネーブル信号ＤＥＣＥＮを低レベルに非活性化する。
【００２５】
イネーブルレジスタＥＮＲの設定状態に応じて、暗号化されていないデータのメモリＭＥＭへの入出力と、暗号化されたデータのメモリＭＥＭへの入出力とを容易に切り替えることができる。これにより、暗号機能および復号機能をメモリＭＥＭ内で実現でき、ＣＰＵの負荷を軽くできる。この結果、システムＳＹＳのパフォーマンスを向上できる。
【００２６】
キーレジスタＫＥＹＲは、圧縮および復号に使用する変換キーを記憶している。変換キーのキーレジスタＫＥＹＲへの書き込みは、メモリＭＥＭの製造工程で実施される。例えば、変換キーの情報は、配線層を形成するためのフォトマスクのパターンとして形成されている。なお、キーレジスタＫＥＹＲを、読み書き可能にするためにＲＡＭまたはラッチを用いて形成してもよい。また、圧縮／復号方式によっては、キーレジスタＫＥＹＲに、圧縮用の変換キーと復号用の変換キーをそれぞれ格納してもよい。
【００２７】
動作制御回路ＯＰＣは、外部制御端子ＣＮＴを介して供給されるコマンド信号に応じて、メモリセルアレイＡＲＹをアクセスするためのアクセス制御信号を出力する。また、動作制御回路ＯＰＣは、エンコーダＥＮＣおよびデコーダＤＥＣの動作タイミングを制御する。アドレスデコーダＡＤＥＣは、外部アドレス端子ＡＤを介して供給されるアドレス信号ＡＤをデコードし、アクセスされるメモリセルを選択するデコード信号を出力する。メモリセルアレイＡＲＹは、マトリックス状に配置されたメモリセルを有している。
【００２８】
この実施形態では、ＣＰＵは、システムＳＹＳの外部から受けたデータあるいはシステムＳＹＳ内で生成されたデータをメモリＭＥＭに書き込む。ＣＰＵは、データをメモリＭＥＭに書き込む前に、イネーブルレジスタＥＮＲをアクセスし、書き込みフラグＷＦを有効に設定する。これにより、エンコーダＥＮＣの暗号機能が有効になる。ＣＰＵから転送されるデータは、デコーダＤＥＣにより暗号化された後にメモリセルアレイＡＲＹに書き込まれる。
【００２９】
また、ＣＰＵは、メモリＭＥＭに保持されているデータを読み出す前に、イネーブルレジスタＥＮＲをアクセスし、読み出しフラグＲＦを有効に設定する。これにより、デコーダＤＥＣの復号機能が有効になる。デコーダＤＥＣは、元のデータを復元するために、メモリセルアレイＡＲＹから読み出されたデータを復号し、復号したデータを外部データ端子ＤＴに出力する。
【００３０】
一方、ＣＰＵは、メモリＭＥＭに保持されているデータをＨＤＤに転送する場合、ＤＭＡＣにシステムバスＳＢＵＳの使用権を渡す前にイネーブルレジスタＥＮＲをアクセスし、読み出しフラグＲＦを無効に設定する。これにより、デコーダＤＥＣの復号機能が無効になる。この後、ＣＰＵがＤＭＡＣに転送開始要求を発行することにより、ＤＭＡＣの動作が開始される。例えば、ＤＭＡＣは、メモリＭＥＭへの読み出しアクセスとＨＤＤへの書き込みアクセスを交互に実行する。デコーダＤＥＣは、メモリセルアレイＡＲＹから読み出されたデータを復号することなく、外部データ端子ＤＴにそのまま出力する。すなわち、暗号化されたデータがＨＤＤに書き込まれる。
【００３１】
また、ＣＰＵは、ＨＤＤに保持されているデータをメモリＭＥＭに転送する場合、ＤＭＡＣにシステムバスＳＢＵＳの使用権を渡す前にイネーブルレジスタＥＮＲをアクセスし、書き込みフラグＷＦを無効に設定する。これにより、エンコーダＥＮＣの暗号機能が無効になる。この後、ＣＰＵがＤＭＡＣに転送開始要求を発行することにより、暗号化されたデータはＨＤＤからメモリＭＥＭに転送される。エンコーダＥＮＣは、ＨＤＤから供給されたデータを暗号化することなく、メモリセルアレイＡＲＹにそのまま書き込む。すなわち、暗号化されたデータがＨＤＤからメモリＭＥＭに転送される。このように、メモリＭＥＭに書き込まれたデータ（暗号データ）は、ＣＰＵによる読み出しアクセスによってのみ復号される。このため、メモリＭＥＭに書き込まれたデータのセキュリティを守ることができる。
【００３２】
なお、ＣＰＵは、メモリセルアレイＡＲＹの動作をテストするテストモード中に、書き込みフラグＷＦおよび読み出しフラグＲＦを無効にしてもよい。この場合、ＣＰＵは、データを暗号化することなくメモリセルに書き込むことができ、データを復号することなくメモリセルから読み出すことができる。この結果、メモリセルアレイＡＲＹの動作を容易に試験できる。
【００３３】
以上、第１の実施形態では、暗号機能および復号機能をメモリＭＥＭ内で実現できるため、ＣＰＵの負荷を軽くでき、システムＳＹＳのパフォーマンスを向上できる。ＣＰＵ以外のコントローラ（ＤＭＡＣ）がメモリＭＥＭをアクセスするときに、暗号機能および復号機能が無効なるため、メモリＭＥＭに書き込まれたデータのセキュリティを守ることができる。
【００３４】
図２は、本発明の第２の実施形態を示している。第１の実施形態で説明した要素と同種の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態では、メモリセルアレイＡＲＹおよびハードディスクドライブ装置ＨＤＤは、暗号データではなく、圧縮データを保持する。このため、半導体メモリＭＥＭは、第１の実施形態のエンコーダＥＮＣおよびデコーダＤＥＣの代わりに、圧縮器ＣＭＰ（書き込みデータ変換部）および解凍器ＤＥＣＭＰ（読み出しデータ変換部）を有する。圧縮器ＣＭＰは、データの圧縮機能を有する。解凍器ＤＥＣＭＰは、データの解凍機能を有する。
【００３５】
また、半導体メモリＭＥＭは、第１の実施形態のキーレジスタＫＥＹＲの代わりに変換レジスタＣＮＶＲを有している。また、半導体メモリＭＥＭは、アドレス端子ＡＤで受けるアドレスＡＤを、圧縮、解凍のアルゴリズムに応じて変換するためのアドレス変換部ＡＤＣを有している。その他の構成は、第１の実施形態とほぼ同じである。すなわち、半導体メモリＭＥＭは、ＦＣＲＡＭとして形成されている。圧縮されていないデータは、ＣＰＵとメモリＭＥＭ間で転送される。圧縮されたデータは、ＤＭＡＣを用いてメモリＭＥＭとＨＤＤ間で転送される。
【００３６】
変換レジスタＣＮＶＲは、データを圧縮または解凍するためのアルゴリズム（変換方法）を示す変換情報を記憶する。変換レジスタＣＮＶＲは、データ線ＤＴに接続されており
、メモリＭＥＭの外部から書き替え可能である。例えば、変換レジスタＣＮＶＲは、ＣＰＵのＩ／Ｏ空間に割り当てられている。
【００３７】
圧縮器ＣＭＰは、圧縮イネーブル信号ＣＭＰＥＮが活性化されているときに、変換レジスタＣＮＶＲに格納されている情報に基づいて、複数種のアルゴリズムの１つを選択する。圧縮器ＣＭＰは、選択したアルゴリズムを用いて外部データ端子ＤＴで受けたデータを圧縮し、圧縮したデータをメモリセルアレイＡＲＹに書き込む。メモリセルアレイＡＲＹに書き込まれるデータ量は、圧縮により減少する。このため、アドレス変換部ＡＤＣは、アドレスデコーダＡＤＥＣに供給されるアドレスＡＤを、圧縮量（アルゴリズム）に応じて変換する。また、動作制御回路ＯＰＣも、メモリセルアレイＡＲＹに出力するアクセス制御信号の出力回数等を、データの圧縮量に応じて変更する。圧縮器ＣＭＰは、圧縮イネーブル信号ＣＭＰＥＮが非活性化されているときに、外部データ端子ＤＴで受けたデータを圧縮せずにメモリセルアレイＡＲＹに書き込む。
【００３８】
解凍器ＤＥＣＭＰは、解凍イネーブル信号ＤＥＣＭＰＥＮが活性化されているときに、変換レジスタＣＮＶＲに格納されている情報に基づいて、複数種のアルゴリズムの１つを選択する。解凍器ＤＥＣＭＰは、選択したアルゴリズムを用いてメモリセルアレイＡＲＹから読み出されたデータを解凍し、解凍したデータを外部データ端子ＤＴに出力する。データを解凍する場合にも、アドレス変換部ＡＤＣは、アドレスデコーダＡＤＥＣに供給されるアドレスＡＤを変換し、動作制御回路ＯＰＣは、アクセス制御信号の出力回数等を変更する。解凍器ＤＥＣＭＰは、解凍イネーブル信号ＤＥＣＭＰＥＮが非活性化されているときに、メモリセルアレイＡＲＹから読み出されたデータを解凍せずに外部データ端子ＤＴに出力する。
【００３９】
この実施形態では、第１の実施形態と同様に、ＣＰＵによるメモリＭＥＭの書き込み動作時に、ＣＰＵから出力されたデータは、圧縮された後にメモリセルアレイＡＲＹに書き込まれる。ＣＰＵによるメモリＭＥＭの読み出し動作時に、メモリセルアレイＡＲＹから読み出された圧縮データは、解凍された後にメモリＭＥＭからＣＰＵ出力される。ＤＭＡＣによるＨＤＤからメモリＭＥＭへのデータ転送時に、ＨＤＤから出力された圧縮データは、メモリセルアレイＡＲＹにそのまま書き込まれる。ＤＭＡＣによるメモリＭＥＭからＨＤＤへのデータ転送時に、メモリセルアレイＡＲＹから読み出された圧縮データは、解凍されることなくＨＤＤにそのまま出力される。
【００４０】
ＣＰＵは、メモリＭＥＭの書き込み動作および読み出し動作を実行するときに、書き込みフラグＷＦおよび読み出しフラグＲＦをそれぞれ有効に設定する。ＣＰＵは、ＤＭＡＣによりメモリＭＥＭとＨＤＤ間でデータを転送するときに、書き込みフラグＷＦおよび読み出しフラグＲＦをそれぞれ無効に設定する。このように、イネーブルレジスタＥＮＲの設定方法および変換制御部ＣＮＶＣの動作は、第１の実施形態と同じである。
【００４１】
以上、第２の実施形態においても第１の実施形態と同様の効果を得ることができる。すなわち、圧縮機能および解凍機能をメモリＭＥＭ内で実現できるため、ＣＰＵの負荷を軽くでき、システムＳＹＳのパフォーマンスを向上できる。ＣＰＵ以外のコントローラがメモリＭＥＭをアクセスするときに、圧縮機能および解凍機能が無効なるため、メモリＭＥＭに書き込まれたデータのセキュリティを守ることができる。
【００４２】
図３は、本発明の第３の実施形態を示している。第１および第２の実施形態で説明した要素と同種の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態では、半導体メモリＭＥＭは、変換レジスタＣＮＶＲおよびキーレジスタＫＥＹＲを有している。キーレジスタＫＥＹＲは、３種類の変換キーＫＥＹ１−ＫＥＹ３を記憶するキー領域を有している。キー領域は、例えばＲＯＭで構成されている。そ
の他の構成は、第１の実施形態と同じである。すなわち、半導体メモリＭＥＭは、ＦＣＲＡＭである。暗号化されていないデータは、ＣＰＵとメモリＭＥＭ間で転送される。暗号化されたデータは、ＤＭＡＣを用いてメモリＭＥＭとＨＤＤ間で転送される。
【００４３】
この実施形態では、エンコーダＥＮＣは、変換レジスタＣＮＶＲに格納されている変換情報に対応する変換キーＫＥＹ（ＫＥＹ１−３のいずれか）を用いてデータを暗号化する。同様に、デコーダＤＥＣは、変換レジスタＣＮＶＲに格納されている変換情報に対応する変換キーＫＥＹ（ＫＥＹ１−３のいずれか）を用いてデータを復号する。
【００４４】
以上、第３の実施形態においても第１の実施形態と同様の効果を得ることができる。さらに、暗号化および復号化に使用する変換キーＫＥＹを選択できる。このため、半導体メモリＭＥＭが搭載されるシステムＳＹＳに応じて暗号化および復号化の規則を最適に設定できる。
【００４５】
図４は、本発明のメモリシステムの第４の実施形態を示している。第１の実施形態で説明した要素と同種の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態では、メモリセルアレイＡＲＹは、暗号化されたデータを記憶する暗号領域ＣＯＤＥの大きさを変更可能である。このために、領域レジスタＡＲＲが新たに形成されている。その他の構成は、エンコーダＥＮＣおよびデコーダＤＥＣにマスク信号ＭＳＫが供給されることを除き、第１の実施形態と同じである。すなわち、半導体メモリＭＥＭは、ＦＣＲＡＭである。暗号化されていないデータは、ＣＰＵとメモリＭＥＭ間で転送される。暗号化されたデータは、ＤＭＡＣを用いてメモリＭＥＭとＨＤＤ間で転送される。
【００４６】
領域レジスタＡＲＲは、ＣＰＵにより書き替え可能であり、暗号化されたデータが格納される暗号領域ＣＯＤＥの開始アドレスと終了アドレスを記憶している。例えば、領域レジスタＡＲＲは、ＣＰＵのＩ／Ｏ空間に割り当てられている。領域レジスタＡＲＲは、暗号領域ＣＯＤＥを示すアドレスＡＤが供給されたときにマスク信号ＭＳＫを低レベルに非活性化する。領域レジスタＡＲＲは、暗号化されない通常のデータ領域ＤＡＴＡ（暗号領域ＣＯＤＥを除く領域）を示すアドレスＡＤが供給されたときにマスク信号ＭＳＫを高レベルに非活性化する。
【００４７】
エンコーダＥＮＣは、非活性化されたマスク信号ＭＳＫを受けたとき、フラグＷＦの値に応じて暗号機能を有効／無効にする。具体的には、暗号機能は、ＣＰＵによる書き込み動作時に有効になり、ＤＭＡＣによる書き込み動作時のみ無効になる。すなわち、ＣＰＵは、暗号領域ＣＯＤＥに対するアクセス権を持ち、ＤＭＡＣは、暗号領域ＣＯＤＥに対するアクセス権を持たない。エンコーダＥＮＣは、活性化されたマスク信号ＭＳＫを受けたとき、フラグＷＦの値にかかわらず暗号機能を無効にする。
【００４８】
同様に、デコーダＤＥＣは、非活性化されたマスク信号ＭＳＫを受けたとき、フラグＲＦの値に応じて復号機能を有効／無効にする。具体的には、復号機能は、ＣＰＵによる読み出し動作時に有効になり、ＤＭＡＣによる読み出し動作時のみ無効になる。すなわち、ＣＰＵは、暗号領域ＣＯＤＥに対するアクセス権を持ち、ＤＭＡＣは、暗号領域ＣＯＤＥに対するアクセス権を持たない。このように、イネーブルレジスタＥＮＲは、メモリセルアレイＡＲＹに対するアクセス権をコントローラ（ＣＰＵ、ＤＭＡＣ）毎に設定可能なアクセスレジスタとして機能する。デコーダＤＥＣは、活性化されたマスク信号ＭＳＫを受けたとき、フラグＲＦの値にかかわらず復号機能を無効にする。これにより、暗号領域ＣＯＤＥには、暗号化されたデータのみが入出力され、通常データ領域ＤＡＴＡには、暗号化されない通常のデータのみが入出力される。
【００４９】
以上、第４の実施形態においても第１の実施形態と同様の効果を得ることができる。さらに、メモリセルアレイＡＲＹが暗号領域ＣＯＤＥと通常データ領域ＤＡＴＡとに区分されている場合にも、暗号化されたデータのみを暗号領域ＣＯＤＥに入出力できる。また、暗号領域ＣＯＤＥの大きさを変更できるため、システムＳＹＳの仕様（暗号化されるデータ量）に応じた最適な半導体メモリを、１つのチップで実現できる。
【００５０】
図５は、本発明の第５の実施形態を示している。第１の実施形態で説明した要素と同種の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態では、第１の実施形態の半導体メモリＭＥＭに、暗号化されたデータのエラーを訂正するためのエラー訂正コードを生成するコード生成部ＷＥＣＣと、エラー訂正コードを用いてデータのエラーを訂正するエラー訂正部ＲＥＣＣとを加えて構成されている。メモリセルアレイＡＲＹは、暗号化されたデータを記憶するデータ領域ＤＡＴＡと、エラー訂正コードを記憶するエラーコード領域ＥＣＣとを有している。その他の構成は、第１の実施形態と同じである。すなわち、半導体メモリＭＥＭは、ＦＣＲＡＭである。暗号化されていないデータは、ＣＰＵとメモリＭＥＭ間で転送される。暗号化されたデータは、ＤＭＡＣを用いてメモリＭＥＭとＨＤＤ間で転送される。
【００５１】
コード生成部ＷＥＣＣは、エンコーダＥＮＣから出力される暗号化されたデータのエラー訂正コードを生成し、暗号化されたデータとともにエラー訂正コードをメモリセルアレイＡＲＹに書き込む。エラー訂正コード、デコードイネーブル信号ＤＥＣＥＮの論理にかかわらず、常に生成される。エラー訂正部ＲＥＣＣは、メモリセルアレイＡＲＹから読み出される暗号化されたデータのエラーをエラー訂正コードを用いて検出し、訂正可能なエラーを訂正する。エラーは、エンコードイネーブル信号ＥＮＣＥＮの論理にかかわらず、常に訂正される。
【００５２】
以上、第５の実施形態においても第１の実施形態と同様の効果を得ることができる。さらに、エラー訂正機能を付加することにより、データの信頼性を向上できる。
【００５３】
図６は、本発明の第６の実施形態を示している。第１の実施形態で説明した要素と同種の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態では、半導体メモリＭＥＭは、フラッシュメモリ等の不揮発性メモリである。エンコーダＥＮＣ、デコーダＤＥＣおよびキーレジスタＫＥＹＲは、論理をプログラム可能なフィールドプログラマブル部ＦＰに形成されている。メモリセルアレイＡＲＹは、暗号化されたデータを記憶するデータ領域ＤＡＴＡと、フィールドプログラマブル部ＦＰの論理をプログラムするためのプログラムを格納するプログラム領域ＰＲＧとを有している。その他の構成は、第１の実施形態と同じである。すなわち、暗号化されていないデータは、ＣＰＵとメモリＭＥＭ間で転送される。暗号化されたデータは、ＤＭＡＣを用いてメモリＭＥＭとＨＤＤ間で転送される。
【００５４】
フィールドプログラマブル部ＦＰは、例えば、多数の論理素子と、論理素子間を接続するための多数のスイッチング素子とで構成されている。スイッチング素子は、揮発性のメモリセル（例えば、ＳＲＡＭのメモリセル）を用いて形成されている。この実施形態では、プログラムを書き替えることにより、エンコーダＥＮＣおよびデコーダＤＥＣの機能と、変換キーＫＥＹが変更可能である。プログラム領域ＰＲＧがメモリセルアレイＡＲＹ内に形成されるため、プログラムは、ＣＰＵによりメモリＭＥＭを書き込みアクセスすることにより書き替えられる。データ端子ＤＴは、プログラムをプログラム領域に格納するためのプログラム入力端子として機能する。
【００５５】
以上、第６の実施形態においても第１の実施形態と同様の効果を得ることができる。さらに、エンコーダＥＮＣ、デコーダＤＥＣおよびキーレジスタＫＥＹＲの論理をプログラ
ムできるため、暗号化、復号化のアルゴリズムをシステムＳＹＳの仕様に合わせてシステムＳＹＳ上で変更できる。換言すれば、１つの半導体メモリＭＥＭを開発することにより、複数の暗号化、復号化のアルゴリズムに対応することができる。
【００５６】
図７は、本発明の第７の実施形態を示している。第１の実施形態で説明した要素と同種の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態は、システムバスＳＢＵＳを介してＣＰＵ等の複数のコントローラＣＮＴ１−２に接続される半導体メモリＭＥＭに適用される。但し、例えば、コントローラＣＮＴ１は、半導体メモリＭＥＭのアクセス権を有する。コントローラＣＮＴ２は、半導体メモリＭＥＭのアクセス権を有さない。半導体メモリＭＥＭのイネーブルレジスタＥＮＲは、コントローラＣＮＴ１−２にそれぞれ対応して、書き込みフラグＷＦ１、ＷＦ２および読み出しフラグＲＦ１、ＲＦ２を有している。半導体メモリＭＥＭのその他の構成は、第１の実施形態とほぼ同じである。なお、半導体メモリＭＥＭのアクセス権を有するコントローラが２つ以上ある場合、これ等コントローラのアクセス権を調停するアービタが必要である。
【００５７】
イネーブルレジスタＥＮＲのフラグＷＦ１−２、ＲＦ１−２の値は、システムＳＹＳのパワーオン時にコントローラＣＮＴ１により設定される。このため、イネーブルレジスタＥＮＲは、コントローラＣＮＴ１のＩ／Ｏ空間に割り当てられている。なお、フラグＷＦ１−２、ＲＦ１−２を、ヒューズ回路等のＲＯＭにより形成し、フラグＷＦ１−２、ＲＦ１−２の値をメモリＭＥＭの製造工程で設定してもよい。
【００５８】
制御信号ＣＮＴは、コントローラＣＮＴ１−２から出力されるチップセレクト信号ＣＳ１、ＣＳ２を含む。例えば、コントローラＣＮＴ１がメモリＭＥＭをアクセスするためにチップセレクト信号ＣＳ１を活性化するとき、変換制御部ＣＮＶＣは、チップセレクト信号ＣＳ１の活性化に応答して、フラグＷＦ１、ＲＦ１の値を示すエンコードイネーブル信号ＥＮＣＥＮおよびデコードイネーブル信号ＤＥＣＥＮを出力する。
【００５９】
同様に、コントローラＣＮＴ２がメモリＭＥＭを不正にアクセスするためにチップセレクト信号ＣＳ２を活性化するとき、変換制御部ＣＮＶＣは、チップセレクト信号ＣＳ２の活性化に応答して、フラグＷＦ２、ＲＦ２の値を示すエンコードイネーブル信号ＥＮＣＥＮおよびデコードイネーブル信号ＤＥＣＥＮを出力する。エンコーダＥＮＣおよびデコーダＤＥＣの動作は、第１の実施形態と同じである。
【００６０】
この実施形態では、アクセス権を有するコントローラＣＮＴ１がメモリＭＥＭをアクセスする場合、メモリＭＥＭは、第１の実施形態のＣＰＵによるアクセス時と同様に動作する。アクセス権を有さないコントローラＣＮＴ２がメモリＭＥＭを書き込みアクセスする場合、変換制御部ＣＮＶＣは、書き込みアクセスが無効であることを示すエンコードイネーブル信号ＥＮＣＥＮを出力する。このため、エンコーダＥＮＣによる暗号機能は無効になる。また、動作制御回路ＯＰＣは、書き込み動作を禁止するために、メモリセルアレイＡＲＹを動作させる書き込み制御信号を出力しない。
【００６１】
アクセス権を有さないコントローラＣＮＴ２がメモリＭＥＭを読み出しアクセスする場合、変換制御部ＣＮＶＣは、読み出しアクセスが無効であることを示すデコードイネーブル信号ＤＥＣＥＮを出力する。デコーダＤＥＣの復号機能は無効になり、メモリセルアレイＡＲＹから読み出された暗号化されたデータは、データ端子ＤＴに直接出力される。なお、デコーダＤＥＣは、復号機能を無効にしたときに、値が固定されたデータ（オール０データあるいはオール１データ等）をデータ端子ＤＴに出力してもよい。あるいは、アクセス権を有さないコントローラＣＮＴ２がメモリＭＥＭを読み出しアクセスする場合、動作制御回路ＯＰＣは、メモリセルアレイＡＲＹを動作させる読み出し制御信号の出力を禁
止してもよい。この場合、メモリセルアレイＡＲＹから無効なデータが読み出される。
【００６２】
以上、第７の実施形態においても第１の実施形態と同様の効果を得ることができる。さらに、メモリＭＥＭは、アクセス権のないコントローラＣＮＴ２からのアクセス要求を受けたときに、書き込み動作を禁止でき、あるいは正常な読み出し動作を禁止できる。したがって、メモリＭＥＭに保持されたデータのセキュリティを守ることができる。
【００６３】
図８は、本発明の第８の実施形態を示している。第１、第５、第７の実施形態で説明した要素と同種の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態は、システムバスＳＢＵＳを介してＣＰＵ等の複数のコントローラＣＮＴ１−２に接続される半導体メモリＭＥＭに適用される。但し、例えば、コントローラＣＮＴ１は、半導体メモリＭＥＭのアクセス権を有する。コントローラＣＮＴ２は、半導体メモリＭＥＭのアクセス権を有さない。半導体メモリＭＥＭのイネーブルレジスタＥＮＲは、第７の実施形態と同じである。半導体メモリＭＥＭのその他の構成は、第５の実施形態（図５）とほぼ同じである。すなわち、半導体メモリＭＥＭは、データのエラー訂正機能を有している。
【００６４】
この実施形態では、アクセス権を有するコントローラＣＮＴ１がメモリＭＥＭをアクセスする場合、メモリＭＥＭは、第５の実施形態のＣＰＵによるアクセス時と同じ動作をする。アクセス権を有さないコントローラＣＮＴ２がメモリＭＥＭを書き込みアクセスする場合、メモリＭＥＭは、第７の実施形態と同じ動作をする。すなわち、書き込み動作は実行されない。
【００６５】
アクセス権を有さないコントローラＣＮＴ２がメモリＭＥＭを読み出しアクセスする場合、変換制御部ＣＮＶＣは、読み出しアクセスが無効であることを示すデコードイネーブル信号ＤＥＣＥＮをデコーダＤＥＣおよびエラー訂正部ＲＥＣＣに出力する。エラー訂正部ＲＥＣＣは、エラー訂正機能を無効にし、エラーを訂正していないデータをデコーダＤＥＣに出力する。デコーダＤＥＣは、復号機能を無効にし、メモリセルアレイＡＲＹから読み出された暗号化されたデータをデータ端子ＤＴに出力する。すなわち、メモリＭＥＭから無効な読み出しデータが出力される。以上、第８の実施形態においても第１、第５および第７の実施形態と同様の効果を得ることができる。
【００６６】
図９は、本発明の第９の実施形態を示している。第１、第５、第７、第８の実施形態で説明した要素と同種の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態の半導体メモリＭＥＭは、第８の実施形態に、訂正レジスタＣＲＲを追加して形成されている。例えば、コントローラＣＮＴ１は、半導体メモリＭＥＭのアクセス権を有する。コントローラＣＮＴ２は、半導体メモリＭＥＭのアクセス権を有さない。半導体メモリＭＥＭのその他の構成は、第８の実施形態（図８）とほぼ同じである。訂正レジスタＣＲＲは、コントローラＣＮＴ１のＩ／Ｏ空間に割り当てられており、コントローラＣＮＴ１により書き替え可能である。
【００６７】
アクセス権を有さないコントローラＣＮＴ２がメモリＭＥＭを読み出しアクセスする場合、変換制御部ＣＮＶＣは、読み出しアクセスが無効であることを示すデコードイネーブル信号ＤＥＣＥＮをデコーダＤＥＣおよびエラー訂正部ＲＥＣＣに出力する。エラー訂正部ＲＥＣＣは、訂正フラグＣＲＲの値が無効を示すときに、エラー訂正機能を無効にし、エラーを訂正しないデータをデコーダＤＥＣに出力する。また、エラー訂正部ＲＥＣＣは、訂正フラグＣＲＲの値が有効を示すときに、エラー訂正機能を有効にし、エラーを訂正したデータをデコーダＤＥＣに出力する。デコーダＤＥＣは、復号機能を無効にし、メモリセルアレイＡＲＹから読み出された暗号化されたデータ（エラー訂正されている場合と、エラー訂正されていない場合がある）をデータ端子ＤＴに出力する。すなわち、訂正レ
ジスタＣＲＲの値に応じて、メモリＭＥＭから読み出される無効なデータの値は相違する。
【００６８】
以上、第９の実施形態においても第１、第５および第７の実施形態と同様の効果を得ることができる。さらに、訂正レジスタＣＲＲの値に応じて無効なデータの値を相違できる。したがって、メモリＭＥＭに保持されたデータのセキュリティを確実に守ることができる。
【００６９】
図１０は、本発明の第１０の実施形態を示している。第１の実施形態で説明した要素と同種の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態の半導体メモリＭＥＭは、変換制御部ＣＮＶＣ、イネーブルレジスタＥＮＲ、動作制御回路ＯＰＣ、メモリセルアレイＡＲＹ、アドレススクランブル部ＡＤＳおよびアドレスデコーダＡＤＥＣを有している。
【００７０】
変換制御部ＣＮＶＣは、イネーブルレジスタＥＮＲがセットされているときにスクランブルイネーブル信号ＳＥＮを高レベルに活性化し、イネーブルレジスタＥＮＲがリセットされているときにスクランブルイネーブル信号ＳＥＮを低レベルに非活性化する。イネーブルレジスタＥＮＲは、アドレススクランブル部ＡＤＳの有効／無効を示す有効情報を記憶する。イネーブルレジスタＥＮＲは、メモリＭＥＭの外部から書き替え可能である。例えば、イネーブルレジスタＥＮＲは、ＣＰＵのＩ／Ｏ空間に割り当てられている。
【００７１】
アドレススクランブル部ＡＤＳは、スクランブルイネーブル信号ＳＥＮが活性化されているときに、外部アドレス端子ＡＤで受けたアドレスＡＤのビットを所定の規則にしたがって入れ替え（アドレスのスクランブル）、入れ替えたアドレスＡＤをアドレスデコーダＡＤＥＣに出力する。アドレススクランブル部ＡＤＳは、スクランブルイネーブル信号ＳＥＮが非活性化されているときに、外部アドレス端子ＡＤで受けたアドレスＡＤをそのままアドレスデコーダＡＤＥＣに出力する。
【００７２】
例えば、アドレスＡＤのスクランブルは、アドレスＡＤの各ビットと、予め決められた値とのＥＯＲ演算により実行される。ここで、予め決められた値は、アドレスＡＤと同じビット数を有している。
【００７３】
この実施形態では、ＣＰＵは、メモリＭＥＭを書き込みアクセスおよび読み出しアクセスするときに、アドレススクランブル機能を有効にするために、イネーブルレジスタＥＮＲをセットする。ＣＰＵは、ＤＭＡＣを用いてメモリＭＥＭとＨＤＤ間でデータを転送するときに、アドレススクランブル機能を無効にするために、イネーブルレジスタＥＮＲをリセットする。これにより、ＨＤＤには、アドレスＡＤがスクランブルされたデータが転送される。換言すれば、アドレスＡＤがスクランブルされていないデータは、ＣＰＵのみによって読み出し可能である。このため、メモリＭＥＭに書き込まれたデータのセキュリティを守ることができる。以上、第９の実施形態においても第１の実施形態と同様の効果を得ることができる。
【００７４】
アドレススクランブル部ＡＤＳは、外部から供給される書き込みデータの格納先を示すアドレスＡＤをスクランブルアドレスに変換する書き込みデータ変換部として機能する。また、アドレススクランブル部ＡＤＳは、メモリＭＥＭからデータを読み出すために外部から供給されるアドレスＡＤをスクランブルアドレスに変換する読み出しデータ変換部として機能する。外部から供給される書き込みデータ（外部データ）は、スクランブルアドレスにより示されるメモリセルに書き込まれる。このため、ＣＰＵ以外のコントローラが元のアドレスをメモリＭＥＭに供給しても、外部データを読み出すことができない。すなわち、外部データは、アドレススクランブル部ＡＤＳにより内部データに変換される。同
様に、メモリセルアレイＡＲＹに格納されたデータ（内部データ）は、スクランブルアドレスにより示されるメモリセルから読み出されたときのみ、元のデータ（外部データ）として読み出される。
【００７５】
図１１は、本発明の第１１の実施形態を示している。第１および第１０の実施形態で説明した要素と同種の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態は、システムバスＳＢＵＳを介してＣＰＵ等の複数のコントローラＣＮＴ１−２に接続される半導体メモリＭＥＭに適用される。例えば、コントローラＣＮＴ１は、半導体メモリＭＥＭのアクセス権を有する。コントローラＣＮＴ２は、半導体メモリＭＥＭのアクセス権を有さない。半導体メモリＭＥＭは、イネーブルレジスタＥＮＲを除き、第１０の実施形態と同じである。
【００７６】
イネーブルレジスタＥＮＲは、コントローラＣＮＴ１−２にそれぞれ対応するスクランブルフラグＳＦ１、ＳＦ２を有している。スクランブルフラグＳＦ１、ＳＦ２の値は、システムＳＹＳのパワーオン時にコントローラＣＮＴ１により設定される。このため、イネーブルレジスタＥＮＲは、コントローラＣＮＴ１のＩ／Ｏ空間に割り当てられている。この例では、スクランブルフラグＳＦ１−２は、それぞれセットおよびリセットされている。このように、コントローラ（ＣＮＴ１またはＣＮＴ２）にアクセス権がある場合に、スクランブルフラグ（ＳＦ１またはＳＦ２）はセットされる。コントローラ（ＣＮＴ１またはＣＮＴ２）にアクセス権がなる場合に、スクランブルフラグ（ＳＦ１またはＳＦ２）はリセットされる。
【００７７】
制御信号ＣＮＴは、コントローラＣＮＴ１−２から出力されるチップセレクト信号ＣＳ１、ＣＳ２を含む。例えば、コントローラＣＮＴ１がメモリＭＥＭをアクセスするためにチップセレクト信号ＣＳ１を活性化するとき、変換制御部ＣＮＶＣは、チップセレクト信号ＣＳ１の活性化に応答して、スクランブルフラグＳＦ１の値を示すスクランブルイネーブル信号ＳＥＮを出力する。変換制御部ＣＮＶＣは、チップセレクト信号ＣＳ２の活性化に応答して、スクランブルフラグＳＦ２の値を示すスクランブルイネーブル信号ＳＥＮを出力する。
【００７８】
この実施形態では、アクセス権のあるコントローラＣＮＴ１がメモリＭＥＭをアクセスする場合、アドレススクランブル機能は有効になる。このため、コントローラＣＮＴ１は、メモリＭＥＭを正常にアクセスできる。一方、アクセス権のないコントローラＣＮＴ２がメモリＭＥＭを不正にアクセスする場合、アドレススクランブル機能は無効になる。同時に、書き込み書き込みアクセスの場合、動作制御回路ＯＰＣは、スクランブルイネーブル信号ＳＥＮの非活性化に応答して、書き込み制御信号の出力を禁止する。このため、コントローラＣＮＴ２は、書き込みアクセスでは、メモリＭＥＭにデータを書き込むことができず、読み出しアクセスでは、メモリＭＥＭから正常なデータを読み出すことができない。以上、第１１の実施形態においても第１および第１０の実施形態と同様の効果を得ることができる。
【００７９】
なお、上述した第１−７の実施形態では、ＨＤＤをシステムバスＳＢＵＳに接続する例を述べた。しかし、ＨＤＤは、システムバスＳＢＵＳとは別の独立バスに接続してもよい。この場合、メモリＭＥＭとＨＤＤ間でデータを転送するＤＭＡＣが、独立バスに接続される。
【００８０】
上述した第１−５、７の実施形態では、イネーブルレジスタＥＮＲに設定される値に応じて、イネーブル信号ＤＥＣＥＮ、ＥＮＣＥＮの論理を変更する例を述べた。しかし、イネーブルレジスタＥＮＲを形成せず、メモリＭＥＭの外部から変換制御部ＣＮＶＣのラッチ情報等を直接書き替えることにより、イネーブル信号ＤＥＣＥＮ、ＥＮＣＥＮの論理を
変更してもよい。
【００８１】
上述した第８の実施形態では、アクセス権を有さないコントローラＣＮＴ２が読み出しアクセスを要求する場合、エラー訂正部ＲＥＣＣによるエラー訂正を行わない例を述べた。しかし、この場合、デコーダＤＥＣの機能が無効にされるため、エラー訂正部ＲＥＣＣによるエラー訂正を行ってもよい。
【００８２】
上述した第３−第９の実施形態は、第２の実施形態のデータの圧縮機能、解凍機能を有する半導体メモリＭＥＭに適用可能である。
【００８３】
第１０−第１１の実施形態（アドレススクランブル機能）に、第５、第８、第９の実施形態のエラー訂正機能を付加してもよい。あるいは、第１０−第１１の実施形態のアドレススクランブル部ＡＤＳを、第６の実施形態のフィールドプログラマブル部ＦＰ上に形成してもよい。
【００８４】
第１０−第１１の実施形態において、プログラム領域ＰＲＧにプログラムを書き込むための専用のプログラム入力端子を形成してもよい。
【００８５】
本発明が適用される半導体メモリは、ＦＣＲＡＭやフラッシュメモリに限らず、ＤＲＡＭ、ＳＤＲＡＭ、擬似ＳＲＡＭ、ＳＲＡＭ、ＥＥＰＲＯＭでもよい。また、本発明を、３つ以上のコントローラに接続される半導体メモリに適用してもよい。
【００８６】
以上の実施形態において説明した発明を整理して、付記として開示する。
（付記１）
外部から供給される外部データを内部データに変換する書き込みデータ変換部と、
前記内部データを記憶するメモリセルを有するメモリセルアレイと、
前記メモリセルアレイから読み出される前記内部データを元の外部データに変換する読み出しデータ変換部と、
前記各書き込みデータ変換部または読み出しデータ変換部の機能を、前記メモリセルアレイにデータを入力または出力するコントローラ毎に有効／無効に設定する変換制御部とを備えていることを特徴とする半導体メモリ。
（付記２）
付記１記載の半導体メモリにおいて、
変換キーが格納されるキーレジスタを備え、
前記書き込みデータ変換部または前記読み出しデータ変換部は、前記キーレジスタに格納されている前記変換キーを用いて変換動作を実行することを特徴とする半導体メモリ。（付記３）
付記１記載の半導体メモリにおいて、
複数種の変換情報のいずれかが格納される変換レジスタを備え、
前記書き込みデータ変換部および読み出しデータ変換部は、前記変換レジスタに格納されている変換情報に対応する変換方法を用いて変換動作を実行することを特著とする半導体メモリ。
（付記４）
付記３記載の半導体メモリにおいて、
複数種の変換キーが格納されるキーレジスタを備え、
前記書き込みデータ変換部および読み出しデータ変換部は、前記変換レジスタに格納されている変換情報に対応する変換キーを前記キーレジスタから選択し、選択した変換キーを用いて変換動作を実行することを特著とする半導体メモリ。
（付記５）
付記１記載の半導体メモリにおいて、
前記内部データを記憶するために前記メモリセルアレイに割り当てられる記憶領域の大きさを変更するための領域レジスタを備えていることを特徴とする半導体メモリ。
（付記６）
付記５記載の半導体メモリにおいて、
前記メモリセルアレイに対するアクセス権を前記コントローラ毎に設定可能なアクセスレジスタを備えていることを特徴とする半導体メモリ。
（付記７）
付記１記載の半導体メモリにおいて、
前記コントローラにそれぞれ対応して形成され、前記書き込みデータ変換部および前記読み出しデータ変換部の有効／無効を示す有効情報をそれぞれ記憶するイネーブルレジスタを備え、
前記変換制御部は、前記書き込みデータ変換部または読み出しデータ変換部を、前記イネーブルレジスタに保持されている前記有効情報に応じてそれぞれ有効／無効に設定することを特徴とする半導体メモリ。
（付記８）
付記１記載の半導体メモリにおいて、
前記内部データのエラーを訂正するためのエラー訂正コードを生成するコード生成部と、
前記エラー訂正コードを用いて前記内部データのエラーを検出し、エラー訂正可能なエラーを訂正するエラー訂正部とを備え、
前記メモリセルアレイは、エラー訂正コードを記憶するエラーコード領域を備えていることを特徴とする半導体メモリ。
（付記９）
付記８記載の半導体メモリにおいて、
前記エラー訂正部は、前記メモリセルアレイから読み出された前記内部データに訂正可能なエラーがあることを検出した場合、前記読み出しデータ変換部が有効に設定されているときのみ前記内部データのエラーを訂正することを特徴とする半導体メモリ。
（付記１０）
付記９記載の半導体メモリにおいて、
前記エラー訂正部は、前記メモリセルアレイから読み出された前記内部データに訂正可能なエラーがあることを検出した場合、前記読み出しデータ変換部が無効に設定されているときに前記内部データのエラーを訂正しないことを特徴とする半導体メモリ。
（付記１１）
付記９記載の半導体メモリにおいて、
前記エラー訂正部は、前記メモリセルアレイから読み出された前記内部データに訂正可能なエラーがあることを検出した場合、前記読み出しデータ変換部が無効に設定されているときに前記内部データのエラーを訂正することを特徴とする半導体メモリ。
（付記１２）
付記９記載の半導体メモリにおいて、
訂正フラグが格納される訂正レジスタを備え、
前記エラー訂正部は、前記読み出しデータ変換部が無効に設定されている場合、前記メモリセルアレイから読み出された前記内部データに訂正可能なエラーがあることを検出したときに、訂正フラグの値に応じて前記内部データのエラーを訂正するか否かを決定することを特徴とする半導体メモリ。
（付記１３）
付記１記載の半導体メモリにおいて、
前記書き込みデータ変換部は、外部データを暗号化することで前記内部データに変換し、
前記読み出しデータ変換部は、前記内部データを復号化することで元の外部データに変換することを特徴とする半導体メモリ。
（付記１４）
付記１記載の半導体メモリにおいて、
前記書き込みデータ変換部は、外部データを圧縮することで前記内部データに変換し、
前記読み出しデータ変換部は、前記内部データを解凍することで元の外部データに変換することを特徴とする半導体メモリ。
（付記１５）
付記１記載の半導体メモリにおいて、
前記書き込みデータ変換部は、外部から供給され、外部データの格納先を示すアドレスをスクランブルアドレスに変換し、
前記読み出しデータ変換部は、前記外部データを読み出すための前記アドレスを前記スクランブルアドレスに変換し、
前記外部データは、前記スクランブルアドレスにより示されるメモリセルに書き込まれることで、前記内部データに変換され、
前記内部データは、前記スクランブルアドレスにより示されるメモリセルから読み出されることで、元の外部データに変換されることを特徴とする半導体メモリ。
（付記１６）
付記１記載の半導体メモリにおいて、
論理をプログラム可能なフィールドプログラマブル部と、
前記フィールドプログラマブル部の論理を構成するためのプログラムが格納される不揮発性のプログラム領域とを備え、
前記書き込みデータ変換部および前記読み出しデータ変換部は、前記フィールドプログラマブル部に形成されることを特徴とする半導体メモリ。
（付記１７）
付記１６記載の半導体メモリにおいて、
前記メモリセルアレイは、不揮発性の前記メモリセルで構成され、
前記プログラム領域は、前記メモリセルアレイの一部を使用して形成されていることを特徴とする半導体メモリ。
（付記１８）
付記１６記載の半導体メモリにおいて、
前記プログラム領域にプログラムを格納するためのプログラム入力端子を備えていることを特徴とする半導体メモリ。
【００８７】
以上、本発明について詳細に説明してきたが、上記の実施形態およびその変形例は発明の一例に過ぎず、本発明はこれに限定されるものではない。本発明を逸脱しない範囲で変形可能であることは明らかである。
【産業上の利用可能性】
【００８８】
本発明は、システムバスを介して複数のコントローラに接続される半導体メモリに適用できる。
【図面の簡単な説明】
【００８９】
【図１】本発明の第１の実施形態を示すブロック図である。
【図２】本発明の第２の実施形態を示すブロック図である。
【図３】本発明の第３の実施形態を示すブロック図である。
【図４】本発明の第４の実施形態を示すブロック図である。
【図５】本発明の第５の実施形態を示すブロック図である。
【図６】本発明の第６の実施形態を示すブロック図である。
【図７】本発明の第７の実施形態を示すブロック図である。
【図８】本発明の第８の実施形態を示すブロック図である。
【図９】本発明の第９の実施形態を示すブロック図である。
【図１０】本発明の第１０の実施形態を示すブロック図である。
【図１１】本発明の第１１の実施形態を示すブロック図である。
【符号の説明】
【００９０】
ＡＤ‥アドレス線；ＡＤＣ‥アドレス変換部；ＡＤＥＣ‥アドレスデコーダ；ＡＤＳ‥アドレススクランブル部；ＡＲＲ‥領域レジスタ；ＡＲＹ‥メモリセルアレイ；ＣＭＰ‥圧縮器；ＣＭＰＥＮ‥圧縮イネーブル信号；ＣＮＴ‥制御線；ＣＮＶＣ‥変換制御部；ＣＮＶＲ‥変換レジスタ；ＤＥＣ‥デコーダ；ＤＥＣＥＮ‥デコードイネーブル信号；ＤＥＣＭＰ‥解凍器；ＤＥＣＭＰＥＮ‥解凍イネーブル信号；ＤＴ‥データ線；ＥＮＣ‥エンコーダ；ＥＮＣＥＮ‥エンコードイネーブル信号；ＥＮＲ‥イネーブルレジスタ；ＫＥＹＲ‥キーレジスタ；ＯＰＣ‥動作制御回路；ＲＥＣＣ‥エラー訂正部；ＲＦ‥読み出しフラグ；ＳＥＮ‥スクランブルイネーブル信号；ＷＥＣＣ‥コード生成部；ＷＦ‥書き込みフラグ
【図１】
0004762752.tif 000002
【図２】
0004762752.tif 000003
【図３】
0004762752.tif 000004
【図４】
0004762752.tif 000005
【図５】
0004762752.tif 000006
【図６】
0004762752.tif 000007
【図７】
0004762752.tif 000008
【図８】
0004762752.tif 000009
【図９】
0004762752.tif 000010
【図１０】
0004762752.tif 000011
【図１１】
0004762752.tif 000012