(57)【特許請求の範囲】
【請求項１】
認証コードの入力を受付ける入力部と、
前記入力された認証コードに基づいて、アクセスが正当か否かを判定し、正当な場合にイネーブル信号を活性化し、不正な場合はイネーブル信号を不活性化する制御部と、
複数個の正規第１メモリセルと、
所定アドレスを有する複数個の正規第２メモリセルと、
前記所定アドレスを有する複数個の冗長メモリセルと、
前記制御部によって指定されたアドレスをデコードし、デコード結果に基づいて、前記複数個の正規第１メモリセル又は前記複数個の正規第２メモリセルのいずれかを選択可能な正規デコーダと、
前記イネーブル信号が活性化された場合に、前記指定されたアドレスと所定のアドレスとが一致したときに、前記正規デコーダによる前記正規第２メモリセルの選択を禁止し、前記複数個の冗長メモリセルを選択し、前記イネーブル信号が不活性化された場合、前記指定されたアドレスと前記所定アドレスとが一致したときに、前記正規デコーダによって前記正規第２メモリセルを選択し、前記複数個の冗長メモリセルの選択を禁止する冗長デコーダとを備えた半導体装置。
【請求項２】
前記正規第２メモリセルは、不良メモリセルであり、
前記冗長メモリセルは、前記仮想不良メモリセルに本来格納されるべき、秘匿を要するデータを記憶する、請求項１記載の半導体装置。
【請求項３】
前記正規第２メモリセルは、ドントケア値が記憶された仮想不良メモリセルであり、
前記冗長メモリセルは、前記仮想不良メモリセルに本来格納されるべき、秘匿を要するデータを記憶する、請求項１記載の半導体装置。
【請求項４】
前記正規第２メモリセルは、不良メモリセル、およびドントケア値が記憶された仮想不良メモリセルであり
前記冗長メモリセルは、前記不良メモリセルまたは前記仮想不良メモリセルに本来格納されるべき、秘匿を要するデータを記憶する、請求項１記載の半導体装置。
【請求項５】
前記入力部は、前記仮想不良メモリセルの指定を受付け、
前記仮想不良メモリセルにドントケア値を書込むライト回路とを備えた、請求項３または４記載の半導体装置。
【請求項６】
前記冗長デコーダは、前記イネーブル信号が不活性化された場合、前記指定されたアドレスと前記所定のアドレスとが一致したときに、前記制御部にアラーム信号を出力する、請求項１記載の半導体装置。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関し、特に対タンパ性を有する半導体装置に関する。
【背景技術】
【０００２】
半導体装置には、暗号化鍵、個人情報などの対タンパ性が要求されるデータが記憶される場合がある。半導体装置の中には、対タンパ性が要求されるデータへの不正なアクセスに対する防御機能を有するものがある。
【０００３】
たとえば、特許文献１に記載されている半導体装置は、任意のメモリ空間を非活性化するセキュリティ機能の設定、および、該メモリ空間を活性化するセキュリティ機能の解除が可能とする。この半導体装置では、入力されるアドレス信号によって特定されるアドレスが、特定の状況において操作されないことが予め判明している鍵アドレス、または特定の状況において操作されることが予め判明している鍵アドレスと一致することによって、セキュリティ機能が設定される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−３０６４００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の半導体装置では、専用の複雑なセキュリティ回路を設けなければならず、装置の規模が大きくなる。
【０００６】
それゆえに、本発明の目的は、簡易な構成で、対タンパ性を有する半導体装置を提供することである。
【課題を解決するための手段】
【０００７】
本発明の一実施形態の半導体装置は、ユーザから認証コードの入力を受付ける入力部と、入力された認証コードに基づいて、ユーザのアクセスが正当か否かを判定し、正当な場合にイネーブル信号を活性化する制御部と、複数個の正規メモリセルと、複数個の冗長メモリセルと、制御部によって指定されたアドレスをデコードし、デコード結果に基づいて、いずれかの正規メモリセルを選択する正規デコーダと、イネーブル信号が活性化された場合に限り、指定されたアドレスと、所定の正規メモリセルのアドレスとが一致したときに、正規デコーダによる選択を禁止し、いずれかの冗長メモリセルを選択する冗長デコーダとを備える。
【発明の効果】
【０００８】
本発明の一実施形態の半導体装置によれば、簡易な構成で、対タンパ性を実現することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の第１の実施形態の半導体装置の構成を表わす図である。
【図２】本発明の第２の実施形態の半導体装置の構成を表わす図である。
【図３】本発明の第３の実施形態の半導体装置の構成を表わす図である。
【図４】本発明の第４の実施形態の半導体装置の構成を表わす図である。
【図５】本発明の第５の実施形態の半導体装置の構成を表わす図である。
【図６】本発明の第６の実施形態の半導体装置の構成を表わす図である。
【図７】本発明の第６の実施形態の半導体装置の構成を表わす図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について図面を参照して説明する。
［第１の実施形態］
図１は、本発明の第１の実施形態の半導体装置の構成を表わす図である。
【００１１】
図１を参照して、この半導体装置１は、内蔵ＳＲＡＭ２と、ＣＰＵ３（Central Processing Unit：制御部）と、ユーザ入力部１３とを備える。
【００１２】
この内蔵ＳＲＡＭ２は、メモリセルアレイ４と、行アドレスバッファ８と、列アドレスバッファ１０と、正規ロウデコーダ９と、カラムデコーダ１１と、冗長ロウデコーダ１４と、ライト／リード回路１５と、ＳＲＡＭ制御回路１２を備える。
【００１３】
ユーザ入力部１３は、ユーザから認証コードの入力を受付ける。認証コードとしては、たとえば、ユーザのパスワード、内蔵ＳＲＡＭ２のデバイスＩＤ、ユーザの指紋情報のいずれか、またはこれらを組合せたものが用いられる。
【００１４】
ＣＰＵ３は、ユーザ入力部１３から入力された認証コードと予め記憶している認証コードとを照合することによって、ユーザのアクセスが正当か否かを判定する。ＣＰＵ３は、アクセスが正当な場合にイネーブル信号ＥＢを「Ｈ」レベルにアサートし、アクセスが正当でない場合にイネーブル信号ＥＢを「Ｌ」レベルにネゲートする。
【００１５】
ＣＰＵ３は、さらに、行アドレス信号Ｘ、列アドレス信号Ｙ、チップ選択信号ＣＳ、読出要求信号／ＷＥ、および書込要求信号ＷＥを出力する。
【００１６】
ＣＰＵ３は、読出要求信号／ＷＥを出力してから、所定時間経過してもライト／リード回路１５からリードデータが送られてこない場合に、再度読出要求信号を出力する。ＣＰＵ３は、一定回数、読出要求信号／ＷＥを出力しても、リードデータＤＯが送られてこない場合には、読出要求を中止する。
【００１７】
ＳＲＡＭ制御回路１２は、ＣＰＵ３からクロックＣＬＫ、チップ選択信号ＣＳ、読出要求信号／ＷＥ、および書込要求信号ＷＥ読出要求信号／ＷＥを受けて、内蔵ＳＲＡＭ全体の制御を司る。ＳＲＡＭ制御回路１２は、チップ選択信号ＣＳが活性化された場合に、内蔵ＳＲＡＭへのアクセスを有効にする。ＳＲＡＭ制御回路１２は、読出要求信号／ＷＥ、および書込要求信号ＷＥをライト／リード回路１５へ出力する。
【００１８】
メモリセルアレイ４は、複数個のＳＲＡＭセルを含み、正規メモリセルアレイ６と、冗長メモリセル行５とからなる。
【００１９】
正規メモリセルアレイ６は、行列状に配置された複数個の正規メモリセルを含む。正規メモリセルアレイ６は、不良メモリセル行１６を含む。不良メモリセル行１６は、少なくとも１つのビット不良メモリを含む。出荷前のテスト時に、正規メモリセルアレイ６内の不良な行を発見して、その行が不良メモリセル行１６に設定される。
【００２０】
冗長メモリセル行５は、１行に配置され複数個の冗長メモリセルを含む。冗長メモリセル行５のメモリセルは、アドレスの順序に従えば不良メモリセル行１６のメモリセルに本来格納されるべき秘匿を要するデータを記憶する。
【００２１】
行アドレスバッファ８は、ＣＰＵ３から与えられる行アドレス信号Ｘを受ける。
列アドレスバッファ１０は、ＣＰＵ３から与えられる列アドレス信号Ｙを受ける。
【００２２】
ライト／リード回路１５は、書込要求信号ＷＥを受けたときには、ＣＰＵ３から与えられるライトデータＤＩをメモリセルアレイ４内のカラムデコーダ１１で指定された列に位置し、かつ正規ロウデコーダ９または冗長ロウデコーダ１４で指定された行に位置するメモリセルに書込む。
【００２３】
ライト／リード回路１５は、読出要求信号／ＷＥを受けたときには、メモリセルアレイ４内のカラムデコーダ１１で指定された列に位置し、かつ正規ロウデコーダ９または冗長ロウデコーダ１４で指定された行に位置するメモリセルからデータを読出す。ライト／リード回路１５は、読出しが成功したとき、すなわちセンスアンプによってビット線対の電位が増幅されることによって読出されたデータが確定したときには、その読み出されたデータをリードデータＤＯとしてＣＰＵ３に出力する。
【００２４】
正規ロウデコーダ９は、行アドレス信号Ｘをデコードして、デコード結果に基づいて、正規メモリセルアレイ６内のいずれかの行のワード線を駆動することによって、その行に配置された正規メモリセルを選択する。
【００２５】
カラムデコーダ１１は、列アドレス信号Ｙをデコードする。
冗長ロウデコーダ１４は、プログラム回路を含む。プログラム回路は、複数個のヒューズ素子を含む。複数個のヒューズ素子のうちのいくつかが、出荷前のテスト時に、テスタによって、ブローされることによって、不良メモリセル行１６のロウアドレスがプログラムされる。
【００２６】
冗長ロウデコーダ１４は、ＣＰＵ３から送られてくるイネーブル信号ＥＢが「Ｈ」レベルの場合（つまり、ユーザのアクセスが正当な場合）には、行アドレスバッファ８で与えられる行アドレス信号Ｘで与えられるロウアドレスと、プログラムされた不良メモリセル行１６のロウアドレスとが一致するときに、冗長メモリセル行５のワード線を駆動することによって、冗長メモリセル行５に配置された冗長メモリセルを選択するとともに、正規ロウデコーダ９によるワード線の駆動、すなわち正規メモリセルの選択を禁止させる。したがって、この場合には、冗長メモリセル行５に対してアクセスが行なわれることになる。リードアクセスの場合には、冗長メモリセル行５に記憶された秘匿を要するデータが読み出される。ライトアクセスの場合には、冗長メモリセル行５にデータが書込まれるので、秘匿を要するデータが変更される。
【００２７】
一方、冗長ロウデコーダ１４は、ＣＰＵ３からイネーブル信号ＥＢが「Ｌ」レベルの場合（つまり、ユーザのアクセスが正当でない場合）には、行アドレスバッファ８で与えられる行アドレス信号Ｘで与えられるロウアドレスと、プログラムされた不良メモリセル行１６のロウアドレスとが一致する場合に、冗長メモリセル行５のワード線を駆動しない。したがって、この場合には、不良メモリセル行１６に対してアクセスが行なわれることになる。リードアクセスの場合には、不良メモリセル行１６から読み出しエラーが発生するだけであって、秘匿を要するデータが読み出されない。ライトアクセスの場合には、不良メモリセル行１６へのデータの書込みを実行するだけであって、秘匿を要するデータが改竄されない。
【００２８】
冗長ロウデコーダ１４は、ＣＰＵ３から送られてくるイネーブル信号ＥＢが「Ｌ」レベルの場合に、行アドレスバッファ８で与えられる行アドレス信号Ｘで与えられるロウアドレスと、プログラムされた不良メモリセル行１６のロウアドレスとが一致する場合に、アラーム信号ＡＲをＣＰＵ３へ出力する。
【００２９】
以上のように、本発明の第１の実施形態の半導体装置によれば、冗長ロウデコーダをユーザの入力した認証コードの正当性を表わすイネーブル信号ＥＢによって制御するという簡易な構成によって、ユーザのアクセスが正当でない場合に、不良メモリセル行に対してアクセスを行なうようにすることができる。これによって、秘匿を要するデータが読出され、または改竄されるのを防止することができる。また、ユーザのアクセスが正当でなく、その結果不良メモリセル行に対してアクセスを行なった場合には、冗長ロウデコーダがアラーム信号をＣＰＵに出力する。これによって、ＣＰＵは、不正アクセスに対する防備として、自動的に電源を遮断、またはキーボードをロックするなどの処理を行なうことができる。
【００３０】
［第１の実施形態の変形例］
第１の実施形態では、不良メモリセル行と冗長メモリセル行がそれぞれ１行であることとしたが、これに限定されるものではない。不良メモリセル行と冗長メモリセル行がそれぞれ複数行であるとしてもよい。
【００３１】
［第２の実施形態］
図２は、本発明の第２の実施形態の半導体装置の構成を表わす図である。
【００３２】
図２の半導体装置５１が、図１の半導体装置１と相違する点は、以下である。
メモリセルアレイ５４は、複数個のＳＲＡＭセルを含み、正規メモリセルアレイ５５と、冗長メモリセル行５とからなる。
【００３３】
正規メモリセルアレイ５５は、行列状に配置された複数個の正規メモリセルを含む。正規メモリセルアレイ５５は、仮想不良メモリセル行５６を含む。出荷前のテスト時に、正規メモリセルアレイ５５内の１つの行をランダムに選択し、その選択された行が仮想不良メモリセル行５６に設定される。仮想不良メモリセル行５６のすべての仮想不良メモリには、テスタによって、ドントケア（don't care）値、つまりダミー値が書込まれる。あ
るいは、仮想不良メモリセル行５６の一部の仮想不良メモリのみ、テスタによって、ドントケア（don't care）値、つまりダミー値が書込まれるものとしてもよい。
【００３４】
冗長メモリセル行５は、１行に配置され複数個の冗長メモリセルを含む。冗長メモリセル行５のメモリセルは、アドレスの順序に従えば仮想不良メモリセル行５６のメモリセルに本来格納されるべき秘匿を要するデータを記憶する。
【００３５】
冗長ロウデコーダ５９は、プログラム回路を含む。プログラム回路は、複数個のヒューズ素子を含む。複数個のヒューズ素子のうちのいくつかが、出荷前のテスト時に、テスタによって、ブローされることによって、仮想不良メモリセル行５６のロウアドレスがプログラムされる。
【００３６】
冗長ロウデコーダ５９は、ＣＰＵ３から送られてくるイネーブル信号ＥＢが「Ｈ」レベルの場合（つまり、ユーザのアクセスが正当な場合）には、行アドレスバッファ８で与えられる行アドレス信号Ｘで与えられるロウアドレスと、プログラムされた仮想不良メモリセル行５６のロウアドレスとが一致するときに、冗長メモリセル行５のワード線を駆動することによって、冗長メモリセル行５に配置された冗長メモリセルを選択するとともに、正規ロウデコーダ９によるワード線の駆動、すなわち正規メモリセルの選択を禁止させる。したがって、この場合には、冗長メモリセル行５に対してアクセスが行なわれることになる。リードアクセスの場合には、冗長メモリセル行５に記憶された秘匿を要するデータが読み出される。ライトアクセスの場合には、冗長メモリセル行５にデータが書込まれるので、秘匿を要するデータが変更される。
【００３７】
一方、冗長ロウデコーダ５９は、ＣＰＵ３からイネーブル信号ＥＢが「Ｌ」レベルの場合（つまり、ユーザのアクセスが正当でない場合）には、行アドレスバッファ８で与えられる行アドレス信号Ｘで与えられるロウアドレスと、プログラムされた仮想不良メモリセル行５６のロウアドレスとが一致する場合に、冗長メモリセル行５のワード線を駆動しない。したがって、この場合には、仮想不良メモリセル行５６に対してアクセスが行なわれることになる。リードアクセスの場合には、仮想不良メモリセル行５６からドントケア値が読み出されるだけであって、秘匿を要するデータが読み出されない。ライトアクセスの場合には、仮想不良メモリセル行５６へデータが書込まれるだけであって、秘匿を要するデータが改竄されない。
【００３８】
冗長ロウデコーダ５９は、ＣＰＵ３から送られてくるイネーブル信号ＥＢが「Ｌ」レベルの場合に、行アドレスバッファ８で与えられる行アドレス信号Ｘで与えられるロウアドレスと、プログラムされた仮想不良メモリセル行５６のロウアドレスとが一致する場合に、アラーム信号ＡＲをＣＰＵ３へ出力する。
【００３９】
以上のように、本発明の第２の実施形態の半導体装置によれば、冗長ロウデコーダをユーザの入力した認証コードの正当性を表わすイネーブル信号ＥＢによって制御するという簡易な構成によって、ユーザのアクセスが正当でない場合に、ドントケア値が格納された仮想不良メモリセル行に対してアクセスを行なうようにすることができる。これによって、秘匿を要するデータが読出され、または改竄されるのを防止することができる。また、ユーザのアクセスが正当でなく、その結果仮想不良メモリセル行に対してアクセスを行なった場合には、冗長ロウデコーダがアラーム信号をＣＰＵに出力する。これによって、ＣＰＵは、不正アクセスに対する防備として、自動的に電源を遮断、またはキーボードをロックするなどの処理を行なうことができる。
【００４０】
［第２の実施形態の変形例］
第２の実施形態では、仮想不良メモリセル行と冗長メモリセル行がそれぞれ１行であることとしたが、これに限定されるものではない。仮想不良メモリセル行と冗長メモリセル行がそれぞれ複数行であるとしてもよい。
【００４１】
[第２の実施形態の変形例２]
第２の実施形態では、イネーブル信号ＥＢが「Ｌ」レベルの場合（ユーザのアクセスが正当ではない場合）において、行アドレスバッファ８で与えられる行アドレス信号Ｘで与えられるロウアドレスと、プログラムされた仮想不良メモリセル行５６のアドレスが一致する場合には、仮想不良メモリセル行５６からドントケア値が読み出されるとあるが、どのワード線も駆動しないようにすることにより、メモリへのライト時はデータの書き込みができず、メモリからのリード時は不定値が出力されるようにしても良い。
【００４２】
[第２の実施形態の変形例３]
第２の実施形態では、イネーブル信号ＥＢが「Ｌ」レベルの場合（ユーザのアクセスが正当ではない場合）において、行アドレスバッファ８で与えられる行アドレス信号Ｘで与えられるロウアドレスと、プログラムされた仮想不良メモリセル行５６のアドレスが一致する場合には、仮想不良メモリセル行５６からドントケア値が読み出されることとしたが、ライト時とリード時で異なる動作をするようにして不正アクセスを防止してもよい。例えば、イネーブル信号ＥＢが「Ｌ」レベルの場合、ライト時は冗長メモリセル行５のワード線を駆動し、リード時は仮想不良メモリセル行５６のワード線を駆動することにより、ライト時とリード時で異なるメモリセルにアクセスすることにより、秘匿を要するデータを不正に読み出されるのを防止できる。
【００４３】
［第３の実施形態］
図３は、本発明の第３の実施形態の半導体装置の構成を表わす図である。
【００４４】
図３の半導体装置６１が、図１の半導体装置１と相違する点は、以下である。
メモリセルアレイ６４は、複数個のＳＲＡＭセルを含み、正規メモリセルアレイ６６と、冗長メモリセルアレイ６５とからなる。
【００４５】
正規メモリセルアレイ６６は、行列状に配置された複数個の正規メモリセルを含む。正規メモリセルアレイ６６は、不良メモリセル行１６と、２つの仮想不良メモリセル行６８，６７を含む。出荷前のテスト時に、正規メモリセルアレイ６６内の不良な行を発見して、その行が不良メモリセル行１６に設定される。また、出荷前のテスト時に、正規メモリセルアレイ６６内の２つの行をランダムに選択し、その選択されたそれぞれの行が仮想不良メモリセル行６８，６７に設定される。仮想不良メモリセル行６８，６７には、それぞれテスタによって、ドントケア（don't care）値、つまりダミー値が書込まれる。
【００４６】
冗長メモリセルアレイ６５は、３個の冗長メモリセル行５，７１，７２を含む。
冗長メモリセル行５のメモリセルは、アドレスの順序に従えば不良メモリセル行１６に本来格納されるべき秘匿を要するデータを記憶する。冗長メモリセル行７１のメモリセルは、アドレスの順序に従えば仮想不良メモリセル行６８に本来格納されるべき秘匿を要するデータを記憶する。冗長メモリセル行７２のメモリセルは、アドレスの順序に従えば仮想不良メモリセル行６７に本来格納されるべき秘匿を要するデータを記憶する。
【００４７】
冗長ロウデコーダ６９は、プログラム回路を含む。プログラム回路は、複数個のヒューズ素子を含む。複数個のヒューズ素子のうちのいくつかが、出荷前のテスト時に、テスタによって、ブローされることによって、不良メモリセル行１６のロウアドレス、仮想不良メモリセル行６８のロウアドレス、仮想不良メモリセル行６７のロウアドレスがプログラムされる。
【００４８】
冗長ロウデコーダ６９は、ＣＰＵ３から送られてくるイネーブル信号ＥＢが「Ｈ」レベルの場合（つまり、ユーザのアクセスが正当な場合）には、行アドレスバッファ８で与えられる行アドレス信号Ｘで与えられるロウアドレスと、プログラムされた不良メモリセル行１６のロウアドレスとが一致するときに、冗長メモリセル行５のワード線を駆動することによって、冗長メモリセル行５に配置された冗長メモリセルを選択するとともに、正規ロウデコーダ９によるワード線の駆動、すなわち正規メモリセルの選択を禁止させる。したがって、この場合には、冗長メモリセル行５に対してアクセスが行なわれることになる。リードアクセスの場合には、冗長メモリセル行５に記憶された秘匿を要するデータが読み出される。ライトアクセスの場合には、冗長メモリセル行５にデータが書込まれるので、秘匿を要するデータが変更される。
【００４９】
冗長ロウデコーダ６９は、ＣＰＵ３から送られてくるイネーブル信号ＥＢが「Ｈ」レベルの場合（つまり、ユーザのアクセスが正当な場合）には、行アドレスバッファ８で与えられる行アドレス信号Ｘで与えられるロウアドレスと、プログラムされた仮想不良メモリセル行６８、６７のロウアドレスとが一致するときに、冗長メモリセル行７１，７２のワード線を駆動することによって、冗長メモリセル行７１，７２に配置された冗長メモリセルを選択するとともに、正規ロウデコーダ９によるワード線の駆動、すなわち正規メモリセルの選択を禁止させる。したがって、この場合には、冗長メモリセル行７１，７２に対してアクセスが行なわれることになる。リードアクセスの場合には、冗長メモリセル行７１，７２に記憶された秘匿を要するデータが読み出される。ライトアクセスの場合には、冗長メモリセル行７１，７２にデータが書込まれるので、秘匿を要するデータが変更される。
【００５０】
一方、冗長ロウデコーダ６９は、ＣＰＵ３からイネーブル信号ＥＢが「Ｌ」レベルの場合（つまり、ユーザのアクセスが正当でない場合）には、行アドレスバッファ８で与えられる行アドレス信号Ｘで与えられるロウアドレスと、プログラムされた不良メモリセル行１６のロウアドレスとが一致する場合に、冗長メモリセル行５のワード線を駆動しない。したがって、この場合には、不良メモリセル行１６に対してアクセスが行なわれることになる。リードアクセスの場合には、不良メモリセル行１６から読み出しエラーが発生するだけであって、秘匿を要するデータが読み出されない。ライトアクセスの場合には、不良メモリセル行１６へのデータの書込みを実行するだけであって、秘匿を要するデータが改竄されない。
【００５１】
冗長ロウデコーダ６９は、ＣＰＵ３からイネーブル信号ＥＢが「Ｌ」レベルの場合（つまり、ユーザのアクセスが正当でない場合）には、行アドレスバッファ８で与えられる行アドレス信号Ｘで与えられるロウアドレスと、プログラムされた仮想不良メモリセル行６８，６７のロウアドレスとが一致する場合に、冗長メモリセル行７１，７２のワード線を駆動しない。したがって、この場合には、仮想不良メモリセル行６８，６７に対してアクセスが行なわれることになる。リードアクセスの場合には、仮想不良メモリセル行６８，６７からドントケア値が読み出されるだけであって、秘匿を要するデータが読み出されない。ライトアクセスの場合には、仮想不良メモリセル行６８，６７へデータが書込まれるだけであって、秘匿を要するデータが改竄されない。
【００５２】
冗長ロウデコーダ６９は、ＣＰＵ３から送られてくるイネーブル信号ＥＢが「Ｌ」レベルの場合に、行アドレスバッファ８で与えられる行アドレス信号Ｘで与えられるロウアドレスと、プログラムされた不良メモリセル行１６、仮想不良メモリセル行６８、または仮想不良メモリセル行６７のロウアドレスとが一致する場合に、アラーム信号ＡＲをＣＰＵ３へ出力する。
【００５３】
以上のように、本発明の第３の実施形態の半導体装置によれば、冗長ロウデコーダをユーザの入力した認証コードの正当性を表わすイネーブル信号ＥＢによって制御するという簡易な構成によって、ユーザのアクセスが正当でない場合に、不良メモリセル行、またはドントケア値が格納された仮想不良メモリセル行に対してアクセスを行なうようにすることができる。これによって、秘匿を要するデータが読出され、または改竄されるのを防止することができる。また、ユーザのアクセスが正当でなく、その結果不良メモリセル行、または仮想不良メモリセル行に対してアクセスを行なった場合には、冗長ロウデコーダがアラーム信号をＣＰＵに出力する。これによって、ＣＰＵは、不正アクセスに対する防備として、自動的に電源を遮断、またはキーボードをロックするなどの処理を行なうことができる。
【００５４】
［第３の実施形態の変形例］
第３の実施形態では、不良メモリセル行と、それに置換される冗長メモリセル行がそれぞれ１行であることとしたが、これに限定されるものではない。不良メモリセル行と、それに置換される冗長メモリセル行がそれぞれ複数行としてもよい。また、第３の実施形態では、仮想不良メモリセル行と、それに置換される冗長メモリセル行がそれぞれ２行であることとしたが、これに限定されるものではない。仮想不良メモリセル行と、それに置換される冗長メモリセル行がそれぞれ３行以上としてもよい。
【００５５】
［第４の実施形態］
図４は、本発明の第４の実施形態の半導体装置の構成を表わす図である。
【００５６】
図４の半導体装置８１が、図１の半導体装置１と相違する点は、以下である。
メモリセルアレイ８４は、複数個のＳＲＡＭセルを含み、正規メモリセルアレイ８６と、冗長メモリセルアレイ８５とからなる。
【００５７】
正規メモリセルアレイ８６は、行列状に配置された複数個の正規メモリセルを含む。正規メモリセルアレイ８６は、不良メモリセル行１６と、２つの秘匿メモリセル行８７，８８を含む。
【００５８】
出荷前のテスト時に、正規メモリセルアレイ８６内の不良な行を発見して、その行が不良メモリセル行１６に設定される。また、出荷前のテスト時に、正規メモリセルアレイ８６内の２つの行をランダムに選択し、その選択されたそれぞれの行が秘匿メモリセル行８７，８８に設定される。秘匿メモリセル行８７，８８のすべての秘匿メモリセルは、秘匿を要するデータを記憶する。あるいは、秘匿メモリセル行８７，８８の一部の秘匿メモリセルのみ、秘匿を要するデータが記憶するものとしてもよい。
【００５９】
冗長メモリセルアレイ８５は、３個の冗長メモリセル行５，８３，８４を含む。
冗長メモリセル行５のメモリセルは、アドレスの順序に従えば不良メモリセル行１６に本来格納されるべき秘匿を要するデータを記憶する。冗長メモリセル行８３，８４には、出荷前のテスト時に、テスタによって、ドントケア（don't care）値、つまりダミー値
が書込まれる。
【００６０】
冗長ロウデコーダ８９は、プログラム回路を含む。プログラム回路は、複数個のヒューズ素子を含む。複数個のヒューズ素子のうちのいくつかが、出荷前のテスト時に、テスタによって、ブローされることによって、不良メモリセル行１６のロウアドレス、秘匿メモリセル行８７のロウアドレス、秘匿メモリセル行８８のロウアドレスがプログラムされる。
【００６１】
冗長ロウデコーダ８９は、ＣＰＵ３から送られてくるイネーブル信号ＥＢが「Ｈ」レベルの場合（つまり、ユーザのアクセスが正当な場合）には、行アドレスバッファ８で与えられる行アドレス信号Ｘで与えられるロウアドレスと、プログラムされた不良メモリセル行１６のロウアドレスとが一致するときに、冗長メモリセル行５のワード線を駆動することによって、冗長メモリセル行５に配置された冗長メモリセルを選択するとともに、正規ロウデコーダ９によるワード線の駆動、すなわち正規メモリセルの選択を禁止させる。したがって、この場合には、冗長メモリセル行５に対してアクセスが行なわれることになる。リードアクセスの場合には、冗長メモリセル行５に記憶された秘匿を要するデータが読み出される。ライトアクセスの場合には、冗長メモリセル行５にデータが書込まれるので、秘匿を要するデータが変更される。
【００６２】
冗長ロウデコーダ８９は、ＣＰＵ３から送られてくるイネーブル信号ＥＢが「Ｈ」レベルの場合（つまり、ユーザのアクセスが正当な場合）には、行アドレスバッファ８で与えられる行アドレス信号Ｘで与えられるロウアドレスと、プログラムされた秘匿メモリセル行８７，８８のロウアドレスとが一致するときに、冗長メモリセル行８３，８４のワード線を駆動しない。したがって、この場合には、秘匿メモリセル行８７，８８に対してアクセスが行なわれることになる。リードアクセスの場合には、秘匿メモリセル行８７，８８に記憶された秘匿を要するデータが読み出される。ライトアクセスの場合には、秘匿メモリセル行８７，８８にデータが書込まれるので、秘匿を要するデータが変更される。
【００６３】
一方、冗長ロウデコーダ８９は、ＣＰＵ３からイネーブル信号ＥＢが「Ｌ」レベルの場合（つまり、ユーザのアクセスが正当でない場合）には、行アドレスバッファ８で与えられる行アドレス信号Ｘで与えられるロウアドレスと、プログラムされた不良メモリセル行１６のロウアドレスとが一致する場合に、冗長メモリセル行５のワード線を駆動しない。したがって、この場合には、不良メモリセル行１６に対してアクセスが行なわれることになる。リードアクセスの場合には、不良メモリセル行１６から読み出しエラーが発生するだけであって、秘匿を要するデータが読み出されない。ライトアクセスの場合には、不良メモリセル行１６へのデータの書込みを実行するだけであって、秘匿を要するデータが改竄されない。
【００６４】
冗長ロウデコーダ８９は、ＣＰＵ３からイネーブル信号ＥＢが「Ｌ」レベルの場合（つまり、ユーザのアクセスが正当でない場合）には、行アドレスバッファ８で与えられる行アドレス信号Ｘで与えられるロウアドレスと、プログラムされた秘匿メモリセル行８７，８８のロウアドレスとが一致する場合に、冗長メモリセル行８３，８４のワード線を駆動することによって、冗長メモリセル行８３，８４に配置された冗長メモリセルを選択するとともに、正規ロウデコーダ９によるワード線の駆動、すなわち正規メモリセルの選択を禁止させる。したがって、この場合には、冗長メモリセル行８３，８４に対してアクセスが行なわれることになる。リードアクセスの場合には、冗長メモリセル行８３，８４からドントケア値が読み出されるだけであって、秘匿を要するデータが読み出されない。ライトアクセスの場合には、冗長メモリセル行８３，８４へデータが書込まれるだけであって、秘匿を要するデータが改竄されない。
【００６５】
冗長ロウデコーダ８９は、ＣＰＵ３から送られてくるイネーブル信号ＥＢが「Ｌ」レベルの場合に、行アドレスバッファ８で与えられる行アドレス信号Ｘで与えられるロウアドレスと、プログラムされた不良メモリセル行１６、秘匿メモリセル行８７、または秘匿メモリセル行８８のロウアドレスとが一致する場合に、アラーム信号ＡＲをＣＰＵ３へ出力する。
【００６６】
以上のように、本発明の第４の実施形態の半導体装置によれば、冗長ロウデコーダをユーザの入力した認証コードの正当性を表わすイネーブル信号ＥＢによって制御するという簡易な構成によって、ユーザのアクセスが正当でない場合に、不良メモリセル行、またはドントケア値が格納された冗長メモリセル行に対してアクセスを行なうようにすることができる。これによって、秘匿を要するデータが読出され、または改竄されるのを防止することができる。また、ユーザのアクセスが正当でなく、その結果不良メモリセル行、ドントケア値が格納された冗長メモリセル行に対してアクセスを行なった場合には、冗長ロウデコーダがアラーム信号をＣＰＵに出力する。これによって、ＣＰＵは、不正アクセスに対する防備として、自動的に電源を遮断、またはキーボードをロックするなどの処理を行なうことができる。
【００６７】
［第４の実施形態の変形例］
第４の実施形態では、不良メモリセル行と、それに置換される冗長メモリセル行がそれぞれ１行であることとしたが、これに限定されるものではない。不良メモリセル行と、それに置換される冗長メモリセル行がそれぞれ複数行としてもよい。また、第４の実施形態では、秘匿メモリセル行と、それに置換される冗長メモリセル行がそれぞれ２行であることとしたが、これに限定されるものではない。秘匿メモリセル行と、それに置換される冗長メモリセル行がそれぞれ３行以上としてもよい。
【００６８】
［第５の実施形態］
図５は、本発明の第５の実施形態の半導体装置の構成を表わす図である。
【００６９】
図５の半導体装置９１が、図１の半導体装置１と相違する点は、以下である。
メモリセルアレイ９４は、複数個のＳＲＡＭセルを含み、正規メモリセルアレイ９６と、冗長メモリセルアレイ６５とからなる。
【００７０】
ユーザ入力部１３は、ユーザから正規メモリセルアレイ９６のうちの仮想不良メモリセル行の指定を受付ける。
【００７１】
ＣＰＵ３は、ユーザから指定された仮想不良メモリセル行のロウアドレスをレジスタ９５へ記憶する。また、ＣＰＵ３は、ドントケア（don't care）値、つまりダミー値のラ
イトデータＤＩをライト／リード回路１５に与えて、レジスタ９５に記憶されたロウアドレスで示される仮想不良メモリセル行のすべての仮想不良メモリセルに、ドントケア（don't care）値を書込む。あるいは、ライト／リード回路１５は、レジスタ９５に記憶されたロウアドレスで示される仮想不良メモリセル行の一部の仮想不良メモリセルに、ドントケア（don't care）値を書込むものとしてもよい。
【００７２】
正規メモリセルアレイ９６は、行列状に配置された複数個の正規メモリセルを含む。正規メモリセルアレイ９６は、不良メモリセル行１６と、ユーザによって設定された仮想不良メモリセル行９７，９８を含む。ここでは、２つの行がユーザによって、仮想不良メモリセル行に設定されたものとして説明する。
【００７３】
出荷前のテスト時に、正規メモリセルアレイ９６内の不良な行を発見して、その行が不良メモリセル行１６に設定される。
【００７４】
冗長メモリセルアレイ６５は、３個の冗長メモリセル行５，７１，７２を含む。
冗長メモリセル行５のメモリセルは、アドレスの順序に従えば不良メモリセル行１６に本来格納されるべき秘匿を要するデータを記憶する。冗長メモリセル行７１のメモリセルは、アドレスの順序に従えば仮想不良メモリセル行９７に本来格納されるべき秘匿を要するデータを記憶する。冗長メモリセル行７２のメモリセルは、アドレスの順序に従えば仮想不良メモリセル行９８に本来格納されるべき秘匿を要するデータを記憶する。
【００７５】
冗長ロウデコーダ９９は、プログラム回路を含む。プログラム回路は、複数個のヒューズ素子を含む。複数個のヒューズ素子のうちのいくつかが、出荷前のテスト時に、テスタによって、ブローされることによって、不良メモリセル行１６のロウアドレスがプログラムされる。
【００７６】
冗長ロウデコーダ９９は、ＣＰＵ３から送られてくるイネーブル信号ＥＢが「Ｈ」レベルの場合（つまり、ユーザのアクセスが正当な場合）には、行アドレスバッファ８で与えられる行アドレス信号Ｘで与えられるロウアドレスと、プログラムされた不良メモリセル行１６のロウアドレスとが一致するときに、冗長メモリセル行５のワード線を駆動することによって、冗長メモリセル行５に配置された冗長メモリセルを選択するとともに、正規ロウデコーダ９によるワード線の駆動、すなわち正規メモリセルの選択を禁止させる。したがって、この場合には、冗長メモリセル行５に対してアクセスが行なわれることになる。リードアクセスの場合には、冗長メモリセル行５に記憶された秘匿を要するデータが読み出される。ライトアクセスの場合には、冗長メモリセル行５にデータが書込まれるので、秘匿を要するデータが変更される。
【００７７】
冗長ロウデコーダ９９は、ＣＰＵ３から送られてくるイネーブル信号ＥＢが「Ｈ」レベルの場合（つまり、ユーザのアクセスが正当な場合）には、行アドレスバッファ８で与えられる行アドレス信号Ｘで与えられるロウアドレスと、ユーザによってレジスタ９５に書込まれた仮想不良メモリセル行９７，９８のロウアドレスとが一致するときに、冗長メモリセル行７１，７２のワード線を駆動することによって、冗長メモリセル行７１，７２に配置された冗長メモリセルを選択するとともに、正規ロウデコーダ９によるワード線の駆動、すなわち正規メモリセルの選択を禁止させる。したがって、この場合には、冗長メモリセル行７１，７２に対してアクセスが行なわれることになる。リードアクセスの場合には、冗長メモリセル行７１，７２に記憶された秘匿を要するデータが読み出される。ライトアクセスの場合には、冗長メモリセル行７１，７２にデータが書込まれるので、秘匿を要するデータが変更される。
【００７８】
一方、冗長ロウデコーダ９９は、ＣＰＵ３からイネーブル信号ＥＢが「Ｌ」レベルの場合（つまり、ユーザのアクセスが正当でない場合）には、行アドレスバッファ８で与えられる行アドレス信号Ｘで与えられるロウアドレスと、プログラムされた不良メモリセル行１６のロウアドレスとが一致する場合に、冗長メモリセル行５のワード線を駆動しない。したがって、この場合には、不良メモリセル行１６に対してアクセスが行なわれることになる。リードアクセスの場合には、不良メモリセル行１６から読み出しエラーが発生するだけであって、秘匿を要するデータが読み出されない。ライトアクセスの場合には、不良メモリセル行１６へのデータの書込みを実行するだけであって、秘匿を要するデータが改竄されない。
【００７９】
冗長ロウデコーダ９９は、ＣＰＵ３からイネーブル信号ＥＢが「Ｌ」レベルの場合（つまり、ユーザのアクセスが正当でない場合）には、行アドレスバッファ８で与えられる行アドレス信号Ｘで与えられるロウアドレスと、ユーザによってレジスタ９５に書込まれた仮想不良メモリセル行９７，９８のロウアドレスとが一致する場合に、冗長メモリセル行７１，７２のワード線を駆動しない。したがって、この場合には、仮想不良メモリセル行９７，９８に対してアクセスが行なわれることになる。リードアクセスの場合には、仮想不良メモリセル行９７，９８からドントケア値が読み出されるだけであって、秘匿を要するデータが読み出されない。ライトアクセスの場合には、仮想不良メモリセル行９７，９８へデータが書込まれるだけであって、秘匿を要するデータが改竄されない。
【００８０】
冗長ロウデコーダ９９は、ＣＰＵ３から送られてくるイネーブル信号ＥＢが「Ｌ」レベルの場合に、行アドレスバッファ８で与えられる行アドレス信号Ｘで与えられるロウアドレスと、プログラムされた不良メモリセル行１６、ユーザによってレジスタ９５に書込まれた仮想不良メモリセル行９７，９８のロウアドレスとが一致する場合に、アラーム信号ＡＲをＣＰＵ３へ出力する。
【００８１】
以上のように、本発明の第５の実施形態の半導体装置によれば、冗長ロウデコーダをユーザの入力した認証コードの正当性を表わすイネーブル信号ＥＢによって制御するという簡易な構成によって、ユーザのアクセスが正当でない場合に、不良メモリセル行、またはドントケア値が格納されたユーザ指定の仮想不良メモリセル行に対してアクセスを行なうようにすることができる。これによって、秘匿を要するデータが読出され、または改竄されるのを防止することができる。また、ユーザのアクセスが正当でなく、その結果不良メモリセル行、ユーザ指定の仮想不良メモリセル行に対してアクセスを行なった場合には、冗長ロウデコーダがアラーム信号をＣＰＵに出力する。これによって、ＣＰＵは、不正アクセスに対する防備として、自動的に電源を遮断、またはキーボードをロックするなどの処理を行なうことができる。
【００８２】
［第５の実施形態の変形例］
第５の実施形態では、不良メモリセル行と、それに置換される冗長メモリセル行がそれぞれ１行であることとしたが、これに限定されるものではない。不良メモリセル行と、それに置換される冗長メモリセル行がそれぞれ複数行としてもよい。また、第５の実施形態では、ユーザ指定の仮想不良メモリセル行と、それに置換される冗長メモリセル行がそれぞれ２行であることとしたが、これに限定されるものではない。ユーザ指定の仮想不良メモリセル行と、それに置換される冗長メモリセル行がそれぞれ３行以上としてもよい。
【００８３】
また、第５の実施形態では、ユーザが仮想不良メモリセル行を設定することとしたが、これに限定するものではなく、第４の実施形態のような秘匿メモリセル行を設定することとしてもよい。
【００８４】
［第６の実施形態］
図１の半導体装置では、正規メモリセルアレイのある行のメモリセルを置換することとし、そのための冗長メモリセル行、および冗長ロウデコーダを備えた構成を前提とし、この冗長ロウデコーダをイネーブル信号によって制御した。これに代えて、第６の実施形態では、正規メモリセルアレイのある列のメモリセルを置換することとする。
【００８５】
図６および図７は、本発明の第６の実施形態の半導体装置の構成を表わす図である。
図６および図７の半導体装置１０１が、図１の半導体装置１と相違する点は、以下である。
【００８６】
メモリセルアレイ１０４は、複数個のＳＲＡＭセルを含み、正規メモリセルアレイ１０６と、冗長メモリセル列１０３とからなる。
【００８７】
正規メモリセルアレイ１０６は、行列状に配置された複数個の正規メモリセルを含む。正規メモリセルアレイ１０６は、不良メモリセル列１０５を含む。不良メモリセル列１０５は、少なくとも１つのビット不良メモリを含む。出荷前のテスト時に、正規メモリセルアレイ１０６内の不良な列を発見して、その列が不良メモリセル列１０５に設定される。
【００８８】
冗長メモリセル列１０３は、１列に配置され複数個の冗長メモリセルを含む。冗長メモリセル列１０３のメモリセルは、アドレスの順序に従えば不良メモリセル列１０５のメモリセルに本来格納されるべき秘匿を要するデータを記憶する。
【００８９】
冗長カラム制御回路１１４は、プログラム回路を含む。プログラム回路は、複数個のヒューズ素子を含む。複数個のヒューズ素子のうちのいくつかが、出荷前のテスト時に、テスタによって、ブローされることによって、不良メモリセル列１０５のカラムアドレスがプログラムされる。
【００９０】
冗長カラム制御回路１１４は、ＣＰＵ３から送られてくるイネーブル信号ＥＢが「Ｈ」レベルの場合（つまり、ユーザのアクセスが正当な場合）には、、列アドレスバッファ１０で与えられる列アドレス信号Ｙで与えられるカラムアドレスと、プログラムされた不良メモリセル列１０５のカラムアドレスとが一致するときに、図７に示すように、メモリセル列（すなわちセンスアンプ／ライトドライバ１１６）とＩ／Ｏの接続を、不良メモリを含む不良メモリセル列１０５を避けるようにシフトさせる。したがって、この場合には、冗長メモリセル列１０３に対してアクセスが行なわれることになる。リードアクセスの場合には、冗長メモリセル列１０３に記憶された秘匿を要するデータが読み出される。ライトアクセスの場合には、冗長メモリセル列１０３にデータが書込まれるので、秘匿を要するデータが変更される。
【００９１】
一方、冗長カラム制御回路１１４は、ＣＰＵ３からイネーブル信号ＥＢが「Ｌ」レベルの場合（つまり、ユーザのアクセスが正当でない場合）には、、列アドレスバッファ１０で与えられる列アドレス信号Ｙで与えられるカラムアドレスと、プログラムされた不良メモリセル列１０５のカラムアドレスとが一致する場合に、図６に示すように、メモリセル列とＩ／Ｏの接続のシフトは行われない。したがって、この場合には、不良メモリセル列１０５に対してアクセスが行なわれることになる。リードアクセスの場合には、不良メモリセル列１０５から読み出しエラーが発生するだけであって、秘匿を要するデータが読み出されない。ライトアクセスの場合には、不良メモリセル列１０５へのデータの書込みを実行するだけであって、秘匿を要するデータが改竄されない。
【００９２】
冗長カラム制御回路１１４は、ＣＰＵ３から送られてくるイネーブル信号ＥＢが「Ｌ」レベルの場合に、列アドレスバッファ１０で与えられる列アドレス信号Ｙで与えられるカラムアドレスと、プログラムされた不良メモリセル列１０５のカラムアドレスとが一致する場合に、アラーム信号ＡＲをＣＰＵ３へ出力する。
【００９３】
以上のように、本発明の第６の実施形態の半導体装置によれば、冗長カラム制御回路をユーザの入力した認証コードの正当性を表わすイネーブル信号ＥＢによって制御するという簡易な構成によって、ユーザのアクセスが正当でない場合に、不良メモリセル列に対してアクセスを行なうようにすることができる。これによって、秘匿を要するデータが読出され、または改竄されるのを防止することができる。また、ユーザのアクセスが正当でなく、その結果不良メモリセル行に対してアクセスを行なった場合には、冗長カラム制御回路がアラーム信号をＣＰＵに出力する。これによって、ＣＰＵは、不正アクセスに対する防備として、自動的に電源を遮断、またはキーボードをロックするなどの処理を行なうことができる。
【００９４】
（変形例）
本発明は、上記の実施形態に限定されるものではなく、たとえば、以下のような変形例も含まれる。
（１）  各種冗長回路への適用
メモリブロックのブロック置換による救済についてもロウ、カラム冗長と同様のイネーブル制御により、ユーザのアクセスを制御することが可能となる。
【００９５】
本発明は、メモリに適用される冗長回路、または一般の冗長回路を搭載したＬＳＩに適用可能であり、これら冗長（救済）回路を各種冗長回路の仕組みとイネーブル信号によって制御するとしてもよい。
【００９６】
本発明の半導体装置は、ユーザから認証コードの入力を受付ける入力部と、入力された認証コードに基づいて、ユーザのアクセスが正当か否かを判定し、正当な場合にイネーブル信号を活性化する制御部と、複数の冗長回路と、制御部によって指定された冗長回路を、イネーブル信号が活性化された場合に限り、指定された冗長回路と、所定の正規冗長回路とが一致したときに、正規冗長回路による動作を禁止し、いずれかの冗長回路を選択する冗長回路制御を備える。
【００９７】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００９８】
１，５１，６１，８１，９１，１０１  半導体装置、２，５２，６２，８２，９２，１０２  内蔵ＳＲＡＭ、３  ＣＰＵ、４，５４，６４，８４，９４，１０４  メモリセルアレイ、５，７１，７２，８３，８４  冗長メモリセル行、６，５５，６６，８６，９６，１０６  正規メモリセルアレイ、８  行アドレスバッファ、９  正規ロウデコーダ、１０  列アドレスバッファ、１１  カラムデコーダ、１２  ＳＲＡＭ制御回路、１３  ユーザ入力部、１４，５９，６９，８９  冗長ロウデコーダ、１５  ライト／リード回路、１６  不良メモリセル行、５６，６８，６７，９７，９８  仮想不良メモリセル行、８７，８８  秘匿メモリセル行、９５  レジスタ、１０３  冗長メモリセル列、１０５  不良メモリセル列、１１６  センスアンプ／ライトドライバ、１１４  冗長カラム制御回路。
【図１】
0005560463.tif 000002
【図２】
0005560463.tif 000003
【図３】
0005560463.tif 000004
【図４】
0005560463.tif 000005
【図５】
0005560463.tif 000006
【図６】
0005560463.tif 000007
【図７】
0005560463.tif 000008