説明

半導体装置

【課題】簡易な構成で、対タンパ性を有する半導体装置を提供する。
【解決手段】ユーザ入力部13は、ユーザから認証コードの入力を受付ける。CPU3は、入力された認証コードに基づいて、ユーザのアクセスが正当か否かを判定し、正当な場合にイネーブル信号を活性化する。正規ロウデコーダ9は、CPU3によって指定されたロウアドレスをデコードし、デコード結果に基づいて、いずれかの正規メモリセルの行を選択する。冗長ロウデコーダ14は、イネーブル信号が活性化された場合には限り、指定されたロウアドレスと、所定の正規メモリセルのロウアドレスとが一致したときに、正規ロウデコーダ9による選択を禁止し、いずれかの冗長メモリセル行を選択する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体装置に関し、特に対タンパ性を有する半導体装置に関する。
【背景技術】
【0002】
半導体装置には、暗号化鍵、個人情報などの対タンパ性が要求されるデータが記憶される場合がある。半導体装置の中には、対タンパ性が要求されるデータへの不正なアクセスに対する防御機能を有するものがある。
【0003】
たとえば、特許文献1に記載されている半導体装置は、任意のメモリ空間を非活性化するセキュリティ機能の設定、および、該メモリ空間を活性化するセキュリティ機能の解除が可能とする。この半導体装置では、入力されるアドレス信号によって特定されるアドレスが、特定の状況において操作されないことが予め判明している鍵アドレス、または特定の状況において操作されることが予め判明している鍵アドレスと一致することによって、セキュリティ機能が設定される。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2001−306400号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1の半導体装置では、専用の複雑なセキュリティ回路を設けなければならず、装置の規模が大きくなる。
【0006】
それゆえに、本発明の目的は、簡易な構成で、対タンパ性を有する半導体装置を提供することである。
【課題を解決するための手段】
【0007】
本発明の一実施形態の半導体装置は、ユーザから認証コードの入力を受付ける入力部と、入力された認証コードに基づいて、ユーザのアクセスが正当か否かを判定し、正当な場合にイネーブル信号を活性化する制御部と、複数個の正規メモリセルと、複数個の冗長メモリセルと、制御部によって指定されたアドレスをデコードし、デコード結果に基づいて、いずれかの正規メモリセルを選択する正規デコーダと、イネーブル信号が活性化された場合に限り、指定されたアドレスと、所定の正規メモリセルのアドレスとが一致したときに、正規デコーダによる選択を禁止し、いずれかの冗長メモリセルを選択する冗長デコーダとを備える。
【発明の効果】
【0008】
本発明の一実施形態の半導体装置によれば、簡易な構成で、対タンパ性を実現することができる。
【図面の簡単な説明】
【0009】
【図1】本発明の第1の実施形態の半導体装置の構成を表わす図である。
【図2】本発明の第2の実施形態の半導体装置の構成を表わす図である。
【図3】本発明の第3の実施形態の半導体装置の構成を表わす図である。
【図4】本発明の第4の実施形態の半導体装置の構成を表わす図である。
【図5】本発明の第5の実施形態の半導体装置の構成を表わす図である。
【図6】本発明の第6の実施形態の半導体装置の構成を表わす図である。
【図7】本発明の第6の実施形態の半導体装置の構成を表わす図である。
【発明を実施するための形態】
【0010】
以下、本発明の実施形態について図面を参照して説明する。
[第1の実施形態]
図1は、本発明の第1の実施形態の半導体装置の構成を表わす図である。
【0011】
図1を参照して、この半導体装置1は、内蔵SRAM2と、CPU3(Central Processing Unit:制御部)と、ユーザ入力部13とを備える。
【0012】
この内蔵SRAM2は、メモリセルアレイ4と、行アドレスバッファ8と、列アドレスバッファ10と、正規ロウデコーダ9と、カラムデコーダ11と、冗長ロウデコーダ14と、ライト/リード回路15と、SRAM制御回路12を備える。
【0013】
ユーザ入力部13は、ユーザから認証コードの入力を受付ける。認証コードとしては、たとえば、ユーザのパスワード、内蔵SRAM2のデバイスID、ユーザの指紋情報のいずれか、またはこれらを組合せたものが用いられる。
【0014】
CPU3は、ユーザ入力部13から入力された認証コードと予め記憶している認証コードとを照合することによって、ユーザのアクセスが正当か否かを判定する。CPU3は、アクセスが正当な場合にイネーブル信号EBを「H」レベルにアサートし、アクセスが正当でない場合にイネーブル信号EBを「L」レベルにネゲートする。
【0015】
CPU3は、さらに、行アドレス信号X、列アドレス信号Y、チップ選択信号CS、読出要求信号/WE、および書込要求信号WEを出力する。
【0016】
CPU3は、読出要求信号/WEを出力してから、所定時間経過してもライト/リード回路15からリードデータが送られてこない場合に、再度読出要求信号を出力する。CPU3は、一定回数、読出要求信号/WEを出力しても、リードデータDOが送られてこない場合には、読出要求を中止する。
【0017】
SRAM制御回路12は、CPU3からクロックCLK、チップ選択信号CS、読出要求信号/WE、および書込要求信号WE読出要求信号/WEを受けて、内蔵SRAM全体の制御を司る。SRAM制御回路12は、チップ選択信号CSが活性化された場合に、内蔵SRAMへのアクセスを有効にする。SRAM制御回路12は、読出要求信号/WE、および書込要求信号WEをライト/リード回路15へ出力する。
【0018】
メモリセルアレイ4は、複数個のSRAMセルを含み、正規メモリセルアレイ6と、冗長メモリセル行5とからなる。
【0019】
正規メモリセルアレイ6は、行列状に配置された複数個の正規メモリセルを含む。正規メモリセルアレイ6は、不良メモリセル行16を含む。不良メモリセル行16は、少なくとも1つのビット不良メモリを含む。出荷前のテスト時に、正規メモリセルアレイ6内の不良な行を発見して、その行が不良メモリセル行16に設定される。
【0020】
冗長メモリセル行5は、1行に配置され複数個の冗長メモリセルを含む。冗長メモリセル行5のメモリセルは、アドレスの順序に従えば不良メモリセル行16のメモリセルに本来格納されるべき秘匿を要するデータを記憶する。
【0021】
行アドレスバッファ8は、CPU3から与えられる行アドレス信号Xを受ける。
列アドレスバッファ10は、CPU3から与えられる列アドレス信号Yを受ける。
【0022】
ライト/リード回路15は、書込要求信号WEを受けたときには、CPU3から与えられるライトデータDIをメモリセルアレイ4内のカラムデコーダ11で指定された列に位置し、かつ正規ロウデコーダ9または冗長ロウデコーダ14で指定された行に位置するメモリセルに書込む。
【0023】
ライト/リード回路15は、読出要求信号/WEを受けたときには、メモリセルアレイ4内のカラムデコーダ11で指定された列に位置し、かつ正規ロウデコーダ9または冗長ロウデコーダ14で指定された行に位置するメモリセルからデータを読出す。ライト/リード回路15は、読出しが成功したとき、すなわちセンスアンプによってビット線対の電位が増幅されることによって読出されたデータが確定したときには、その読み出されたデータをリードデータDOとしてCPU3に出力する。
【0024】
正規ロウデコーダ9は、行アドレス信号Xをデコードして、デコード結果に基づいて、正規メモリセルアレイ6内のいずれかの行のワード線を駆動することによって、その行に配置された正規メモリセルを選択する。
【0025】
カラムデコーダ11は、列アドレス信号Yをデコードする。
冗長ロウデコーダ14は、プログラム回路を含む。プログラム回路は、複数個のヒューズ素子を含む。複数個のヒューズ素子のうちのいくつかが、出荷前のテスト時に、テスタによって、ブローされることによって、不良メモリセル行16のロウアドレスがプログラムされる。
【0026】
冗長ロウデコーダ14は、CPU3から送られてくるイネーブル信号EBが「H」レベルの場合(つまり、ユーザのアクセスが正当な場合)には、行アドレスバッファ8で与えられる行アドレス信号Xで与えられるロウアドレスと、プログラムされた不良メモリセル行16のロウアドレスとが一致するときに、冗長メモリセル行5のワード線を駆動することによって、冗長メモリセル行5に配置された冗長メモリセルを選択するとともに、正規ロウデコーダ9によるワード線の駆動、すなわち正規メモリセルの選択を禁止させる。したがって、この場合には、冗長メモリセル行5に対してアクセスが行なわれることになる。リードアクセスの場合には、冗長メモリセル行5に記憶された秘匿を要するデータが読み出される。ライトアクセスの場合には、冗長メモリセル行5にデータが書込まれるので、秘匿を要するデータが変更される。
【0027】
一方、冗長ロウデコーダ14は、CPU3からイネーブル信号EBが「L」レベルの場合(つまり、ユーザのアクセスが正当でない場合)には、行アドレスバッファ8で与えられる行アドレス信号Xで与えられるロウアドレスと、プログラムされた不良メモリセル行16のロウアドレスとが一致する場合に、冗長メモリセル行5のワード線を駆動しない。したがって、この場合には、不良メモリセル行16に対してアクセスが行なわれることになる。リードアクセスの場合には、不良メモリセル行16から読み出しエラーが発生するだけであって、秘匿を要するデータが読み出されない。ライトアクセスの場合には、不良メモリセル行16へのデータの書込みを実行するだけであって、秘匿を要するデータが改竄されない。
【0028】
冗長ロウデコーダ14は、CPU3から送られてくるイネーブル信号EBが「L」レベルの場合に、行アドレスバッファ8で与えられる行アドレス信号Xで与えられるロウアドレスと、プログラムされた不良メモリセル行16のロウアドレスとが一致する場合に、アラーム信号ARをCPU3へ出力する。
【0029】
以上のように、本発明の第1の実施形態の半導体装置によれば、冗長ロウデコーダをユーザの入力した認証コードの正当性を表わすイネーブル信号EBによって制御するという簡易な構成によって、ユーザのアクセスが正当でない場合に、不良メモリセル行に対してアクセスを行なうようにすることができる。これによって、秘匿を要するデータが読出され、または改竄されるのを防止することができる。また、ユーザのアクセスが正当でなく、その結果不良メモリセル行に対してアクセスを行なった場合には、冗長ロウデコーダがアラーム信号をCPUに出力する。これによって、CPUは、不正アクセスに対する防備として、自動的に電源を遮断、またはキーボードをロックするなどの処理を行なうことができる。
【0030】
[第1の実施形態の変形例]
第1の実施形態では、不良メモリセル行と冗長メモリセル行がそれぞれ1行であることとしたが、これに限定されるものではない。不良メモリセル行と冗長メモリセル行がそれぞれ複数行であるとしてもよい。
【0031】
[第2の実施形態]
図2は、本発明の第2の実施形態の半導体装置の構成を表わす図である。
【0032】
図2の半導体装置51が、図1の半導体装置1と相違する点は、以下である。
メモリセルアレイ54は、複数個のSRAMセルを含み、正規メモリセルアレイ55と、冗長メモリセル行5とからなる。
【0033】
正規メモリセルアレイ55は、行列状に配置された複数個の正規メモリセルを含む。正規メモリセルアレイ55は、仮想不良メモリセル行56を含む。出荷前のテスト時に、正規メモリセルアレイ55内の1つの行をランダムに選択し、その選択された行が仮想不良メモリセル行56に設定される。仮想不良メモリセル行56のすべての仮想不良メモリには、テスタによって、ドントケア(dont't care)値、つまりダミー値が書込まれる。あるいは、仮想不良メモリセル行56の一部の仮想不良メモリのみ、テスタによって、ドントケア(dont't care)値、つまりダミー値が書込まれるものとしてもよい。
【0034】
冗長メモリセル行5は、1行に配置され複数個の冗長メモリセルを含む。冗長メモリセル行5のメモリセルは、アドレスの順序に従えば仮想不良メモリセル行56のメモリセルに本来格納されるべき秘匿を要するデータを記憶する。
【0035】
冗長ロウデコーダ59は、プログラム回路を含む。プログラム回路は、複数個のヒューズ素子を含む。複数個のヒューズ素子のうちのいくつかが、出荷前のテスト時に、テスタによって、ブローされることによって、仮想不良メモリセル行56のロウアドレスがプログラムされる。
【0036】
冗長ロウデコーダ59は、CPU3から送られてくるイネーブル信号EBが「H」レベルの場合(つまり、ユーザのアクセスが正当な場合)には、行アドレスバッファ8で与えられる行アドレス信号Xで与えられるロウアドレスと、プログラムされた仮想不良メモリセル行56のロウアドレスとが一致するときに、冗長メモリセル行5のワード線を駆動することによって、冗長メモリセル行5に配置された冗長メモリセルを選択するとともに、正規ロウデコーダ9によるワード線の駆動、すなわち正規メモリセルの選択を禁止させる。したがって、この場合には、冗長メモリセル行5に対してアクセスが行なわれることになる。リードアクセスの場合には、冗長メモリセル行5に記憶された秘匿を要するデータが読み出される。ライトアクセスの場合には、冗長メモリセル行5にデータが書込まれるので、秘匿を要するデータが変更される。
【0037】
一方、冗長ロウデコーダ59は、CPU3からイネーブル信号EBが「L」レベルの場合(つまり、ユーザのアクセスが正当でない場合)には、行アドレスバッファ8で与えられる行アドレス信号Xで与えられるロウアドレスと、プログラムされた仮想不良メモリセル行56のロウアドレスとが一致する場合に、冗長メモリセル行5のワード線を駆動しない。したがって、この場合には、仮想不良メモリセル行56に対してアクセスが行なわれることになる。リードアクセスの場合には、仮想不良メモリセル行56からドントケア値が読み出されるだけであって、秘匿を要するデータが読み出されない。ライトアクセスの場合には、仮想不良メモリセル行56へデータが書込まれるだけであって、秘匿を要するデータが改竄されない。
【0038】
冗長ロウデコーダ59は、CPU3から送られてくるイネーブル信号EBが「L」レベルの場合に、行アドレスバッファ8で与えられる行アドレス信号Xで与えられるロウアドレスと、プログラムされた仮想不良メモリセル行56のロウアドレスとが一致する場合に、アラーム信号ARをCPU3へ出力する。
【0039】
以上のように、本発明の第2の実施形態の半導体装置によれば、冗長ロウデコーダをユーザの入力した認証コードの正当性を表わすイネーブル信号EBによって制御するという簡易な構成によって、ユーザのアクセスが正当でない場合に、ドントケア値が格納された仮想不良メモリセル行に対してアクセスを行なうようにすることができる。これによって、秘匿を要するデータが読出され、または改竄されるのを防止することができる。また、ユーザのアクセスが正当でなく、その結果仮想不良メモリセル行に対してアクセスを行なった場合には、冗長ロウデコーダがアラーム信号をCPUに出力する。これによって、CPUは、不正アクセスに対する防備として、自動的に電源を遮断、またはキーボードをロックするなどの処理を行なうことができる。
【0040】
[第2の実施形態の変形例]
第2の実施形態では、仮想不良メモリセル行と冗長メモリセル行がそれぞれ1行であることとしたが、これに限定されるものではない。仮想不良メモリセル行と冗長メモリセル行がそれぞれ複数行であるとしてもよい。
【0041】
[第2の実施形態の変形例2]
第2の実施形態では、イネーブル信号EBが「L」レベルの場合(ユーザのアクセスが正当ではない場合)において、行アドレスバッファ8で与えられる行アドレス信号Xで与えられるロウアドレスと、プログラムされた仮想不良メモリセル行56のアドレスが一致する場合には、仮想不良メモリセル行56からドントケア値が読み出されるとあるが、どのワード線も駆動しないようにすることにより、メモリへのライト時はデータの書き込みができず、メモリからのリード時は不定値が出力されるようにしても良い。
【0042】
[第2の実施形態の変形例3]
第2の実施形態では、イネーブル信号EBが「L」レベルの場合(ユーザのアクセスが正当ではない場合)において、行アドレスバッファ8で与えられる行アドレス信号Xで与えられるロウアドレスと、プログラムされた仮想不良メモリセル行56のアドレスが一致する場合には、仮想不良メモリセル行56からドントケア値が読み出されることとしたが、ライト時とリード時で異なる動作をするようにして不正アクセスを防止してもよい。例えば、イネーブル信号EBが「L」レベルの場合、ライト時は冗長メモリセル行5のワード線を駆動し、リード時は仮想不良メモリセル行56のワード線を駆動することにより、ライト時とリード時で異なるメモリセルにアクセスすることにより、秘匿を要するデータを不正に読み出されるのを防止できる。
【0043】
[第3の実施形態]
図3は、本発明の第3の実施形態の半導体装置の構成を表わす図である。
【0044】
図3の半導体装置61が、図1の半導体装置1と相違する点は、以下である。
メモリセルアレイ64は、複数個のSRAMセルを含み、正規メモリセルアレイ66と、冗長メモリセルアレイ65とからなる。
【0045】
正規メモリセルアレイ66は、行列状に配置された複数個の正規メモリセルを含む。正規メモリセルアレイ66は、不良メモリセル行16と、2つの仮想不良メモリセル行68,67を含む。出荷前のテスト時に、正規メモリセルアレイ66内の不良な行を発見して、その行が不良メモリセル行16に設定される。また、出荷前のテスト時に、正規メモリセルアレイ66内の2つの行をランダムに選択し、その選択されたそれぞれの行が仮想不良メモリセル行68,67に設定される。仮想不良メモリセル行68,67には、それぞれテスタによって、ドントケア(dont't care)値、つまりダミー値が書込まれる。
【0046】
冗長メモリセルアレイ65は、3個の冗長メモリセル行5,71,72を含む。
冗長メモリセル行5のメモリセルは、アドレスの順序に従えば不良メモリセル行16に本来格納されるべき秘匿を要するデータを記憶する。冗長メモリセル行71のメモリセルは、アドレスの順序に従えば仮想不良メモリセル行68に本来格納されるべき秘匿を要するデータを記憶する。冗長メモリセル行72のメモリセルは、アドレスの順序に従えば仮想不良メモリセル行67に本来格納されるべき秘匿を要するデータを記憶する。
【0047】
冗長ロウデコーダ69は、プログラム回路を含む。プログラム回路は、複数個のヒューズ素子を含む。複数個のヒューズ素子のうちのいくつかが、出荷前のテスト時に、テスタによって、ブローされることによって、不良メモリセル行16のロウアドレス、仮想不良メモリセル行68のロウアドレス、仮想不良メモリセル行67のロウアドレスがプログラムされる。
【0048】
冗長ロウデコーダ69は、CPU3から送られてくるイネーブル信号EBが「H」レベルの場合(つまり、ユーザのアクセスが正当な場合)には、行アドレスバッファ8で与えられる行アドレス信号Xで与えられるロウアドレスと、プログラムされた不良メモリセル行16のロウアドレスとが一致するときに、冗長メモリセル行5のワード線を駆動することによって、冗長メモリセル行5に配置された冗長メモリセルを選択するとともに、正規ロウデコーダ9によるワード線の駆動、すなわち正規メモリセルの選択を禁止させる。したがって、この場合には、冗長メモリセル行5に対してアクセスが行なわれることになる。リードアクセスの場合には、冗長メモリセル行5に記憶された秘匿を要するデータが読み出される。ライトアクセスの場合には、冗長メモリセル行5にデータが書込まれるので、秘匿を要するデータが変更される。
【0049】
冗長ロウデコーダ69は、CPU3から送られてくるイネーブル信号EBが「H」レベルの場合(つまり、ユーザのアクセスが正当な場合)には、行アドレスバッファ8で与えられる行アドレス信号Xで与えられるロウアドレスと、プログラムされた仮想不良メモリセル行68、67のロウアドレスとが一致するときに、冗長メモリセル行71,72のワード線を駆動することによって、冗長メモリセル行71,72に配置された冗長メモリセルを選択するとともに、正規ロウデコーダ9によるワード線の駆動、すなわち正規メモリセルの選択を禁止させる。したがって、この場合には、冗長メモリセル行71,72に対してアクセスが行なわれることになる。リードアクセスの場合には、冗長メモリセル行71,72に記憶された秘匿を要するデータが読み出される。ライトアクセスの場合には、冗長メモリセル行71,72にデータが書込まれるので、秘匿を要するデータが変更される。
【0050】
一方、冗長ロウデコーダ69は、CPU3からイネーブル信号EBが「L」レベルの場合(つまり、ユーザのアクセスが正当でない場合)には、行アドレスバッファ8で与えられる行アドレス信号Xで与えられるロウアドレスと、プログラムされた不良メモリセル行16のロウアドレスとが一致する場合に、冗長メモリセル行5のワード線を駆動しない。したがって、この場合には、不良メモリセル行16に対してアクセスが行なわれることになる。リードアクセスの場合には、不良メモリセル行16から読み出しエラーが発生するだけであって、秘匿を要するデータが読み出されない。ライトアクセスの場合には、不良メモリセル行16へのデータの書込みを実行するだけであって、秘匿を要するデータが改竄されない。
【0051】
冗長ロウデコーダ69は、CPU3からイネーブル信号EBが「L」レベルの場合(つまり、ユーザのアクセスが正当でない場合)には、行アドレスバッファ8で与えられる行アドレス信号Xで与えられるロウアドレスと、プログラムされた仮想不良メモリセル行68,67のロウアドレスとが一致する場合に、冗長メモリセル行71,72のワード線を駆動しない。したがって、この場合には、仮想不良メモリセル行68,67に対してアクセスが行なわれることになる。リードアクセスの場合には、仮想不良メモリセル行68,67からドントケア値が読み出されるだけであって、秘匿を要するデータが読み出されない。ライトアクセスの場合には、仮想不良メモリセル行68,67へデータが書込まれるだけであって、秘匿を要するデータが改竄されない。
【0052】
冗長ロウデコーダ69は、CPU3から送られてくるイネーブル信号EBが「L」レベルの場合に、行アドレスバッファ8で与えられる行アドレス信号Xで与えられるロウアドレスと、プログラムされた不良メモリセル行16、仮想不良メモリセル行68、または仮想不良メモリセル行67のロウアドレスとが一致する場合に、アラーム信号ARをCPU3へ出力する。
【0053】
以上のように、本発明の第3の実施形態の半導体装置によれば、冗長ロウデコーダをユーザの入力した認証コードの正当性を表わすイネーブル信号EBによって制御するという簡易な構成によって、ユーザのアクセスが正当でない場合に、不良メモリセル行、またはドントケア値が格納された仮想不良メモリセル行に対してアクセスを行なうようにすることができる。これによって、秘匿を要するデータが読出され、または改竄されるのを防止することができる。また、ユーザのアクセスが正当でなく、その結果不良メモリセル行、または仮想不良メモリセル行に対してアクセスを行なった場合には、冗長ロウデコーダがアラーム信号をCPUに出力する。これによって、CPUは、不正アクセスに対する防備として、自動的に電源を遮断、またはキーボードをロックするなどの処理を行なうことができる。
【0054】
[第3の実施形態の変形例]
第3の実施形態では、不良メモリセル行と、それに置換される冗長メモリセル行がそれぞれ1行であることとしたが、これに限定されるものではない。不良メモリセル行と、それに置換される冗長メモリセル行がそれぞれ複数行としてもよい。また、第3の実施形態では、仮想不良メモリセル行と、それに置換される冗長メモリセル行がそれぞれ2行であることとしたが、これに限定されるものではない。仮想不良メモリセル行と、それに置換される冗長メモリセル行がそれぞれ3行以上としてもよい。
【0055】
[第4の実施形態]
図4は、本発明の第4の実施形態の半導体装置の構成を表わす図である。
【0056】
図4の半導体装置81が、図1の半導体装置1と相違する点は、以下である。
メモリセルアレイ84は、複数個のSRAMセルを含み、正規メモリセルアレイ86と、冗長メモリセルアレイ85とからなる。
【0057】
正規メモリセルアレイ86は、行列状に配置された複数個の正規メモリセルを含む。正規メモリセルアレイ86は、不良メモリセル行16と、2つの秘匿メモリセル行87,88を含む。
【0058】
出荷前のテスト時に、正規メモリセルアレイ86内の不良な行を発見して、その行が不良メモリセル行16に設定される。また、出荷前のテスト時に、正規メモリセルアレイ86内の2つの行をランダムに選択し、その選択されたそれぞれの行が秘匿メモリセル行87,88に設定される。秘匿メモリセル行87,88のすべての秘匿メモリセルは、秘匿を要するデータを記憶する。あるいは、秘匿メモリセル行87,88の一部の秘匿メモリセルのみ、秘匿を要するデータが記憶するものとしてもよい。
【0059】
冗長メモリセルアレイ85は、3個の冗長メモリセル行5,83,84を含む。
冗長メモリセル行5のメモリセルは、アドレスの順序に従えば不良メモリセル行16に本来格納されるべき秘匿を要するデータを記憶する。冗長メモリセル行83,84には、出荷前のテスト時に、テスタによって、ドントケア(dont't care)値、つまりダミー値が書込まれる。
【0060】
冗長ロウデコーダ89は、プログラム回路を含む。プログラム回路は、複数個のヒューズ素子を含む。複数個のヒューズ素子のうちのいくつかが、出荷前のテスト時に、テスタによって、ブローされることによって、不良メモリセル行16のロウアドレス、秘匿メモリセル行87のロウアドレス、秘匿メモリセル行88のロウアドレスがプログラムされる。
【0061】
冗長ロウデコーダ89は、CPU3から送られてくるイネーブル信号EBが「H」レベルの場合(つまり、ユーザのアクセスが正当な場合)には、行アドレスバッファ8で与えられる行アドレス信号Xで与えられるロウアドレスと、プログラムされた不良メモリセル行16のロウアドレスとが一致するときに、冗長メモリセル行5のワード線を駆動することによって、冗長メモリセル行5に配置された冗長メモリセルを選択するとともに、正規ロウデコーダ9によるワード線の駆動、すなわち正規メモリセルの選択を禁止させる。したがって、この場合には、冗長メモリセル行5に対してアクセスが行なわれることになる。リードアクセスの場合には、冗長メモリセル行5に記憶された秘匿を要するデータが読み出される。ライトアクセスの場合には、冗長メモリセル行5にデータが書込まれるので、秘匿を要するデータが変更される。
【0062】
冗長ロウデコーダ89は、CPU3から送られてくるイネーブル信号EBが「H」レベルの場合(つまり、ユーザのアクセスが正当な場合)には、行アドレスバッファ8で与えられる行アドレス信号Xで与えられるロウアドレスと、プログラムされた秘匿メモリセル行87,88のロウアドレスとが一致するときに、冗長メモリセル行83,84のワード線を駆動しない。したがって、この場合には、秘匿メモリセル行87,88に対してアクセスが行なわれることになる。リードアクセスの場合には、秘匿メモリセル行87,88に記憶された秘匿を要するデータが読み出される。ライトアクセスの場合には、秘匿メモリセル行87,88にデータが書込まれるので、秘匿を要するデータが変更される。
【0063】
一方、冗長ロウデコーダ89は、CPU3からイネーブル信号EBが「L」レベルの場合(つまり、ユーザのアクセスが正当でない場合)には、行アドレスバッファ8で与えられる行アドレス信号Xで与えられるロウアドレスと、プログラムされた不良メモリセル行16のロウアドレスとが一致する場合に、冗長メモリセル行5のワード線を駆動しない。したがって、この場合には、不良メモリセル行16に対してアクセスが行なわれることになる。リードアクセスの場合には、不良メモリセル行16から読み出しエラーが発生するだけであって、秘匿を要するデータが読み出されない。ライトアクセスの場合には、不良メモリセル行16へのデータの書込みを実行するだけであって、秘匿を要するデータが改竄されない。
【0064】
冗長ロウデコーダ89は、CPU3からイネーブル信号EBが「L」レベルの場合(つまり、ユーザのアクセスが正当でない場合)には、行アドレスバッファ8で与えられる行アドレス信号Xで与えられるロウアドレスと、プログラムされた秘匿メモリセル行87,88のロウアドレスとが一致する場合に、冗長メモリセル行83,84のワード線を駆動することによって、冗長メモリセル行83,84に配置された冗長メモリセルを選択するとともに、正規ロウデコーダ9によるワード線の駆動、すなわち正規メモリセルの選択を禁止させる。したがって、この場合には、冗長メモリセル行83,84に対してアクセスが行なわれることになる。リードアクセスの場合には、冗長メモリセル行83,84からドントケア値が読み出されるだけであって、秘匿を要するデータが読み出されない。ライトアクセスの場合には、冗長メモリセル行83,84へデータが書込まれるだけであって、秘匿を要するデータが改竄されない。
【0065】
冗長ロウデコーダ89は、CPU3から送られてくるイネーブル信号EBが「L」レベルの場合に、行アドレスバッファ8で与えられる行アドレス信号Xで与えられるロウアドレスと、プログラムされた不良メモリセル行16、秘匿メモリセル行87、または秘匿メモリセル行88のロウアドレスとが一致する場合に、アラーム信号ARをCPU3へ出力する。
【0066】
以上のように、本発明の第4の実施形態の半導体装置によれば、冗長ロウデコーダをユーザの入力した認証コードの正当性を表わすイネーブル信号EBによって制御するという簡易な構成によって、ユーザのアクセスが正当でない場合に、不良メモリセル行、またはドントケア値が格納された冗長メモリセル行に対してアクセスを行なうようにすることができる。これによって、秘匿を要するデータが読出され、または改竄されるのを防止することができる。また、ユーザのアクセスが正当でなく、その結果不良メモリセル行、ドントケア値が格納された冗長メモリセル行に対してアクセスを行なった場合には、冗長ロウデコーダがアラーム信号をCPUに出力する。これによって、CPUは、不正アクセスに対する防備として、自動的に電源を遮断、またはキーボードをロックするなどの処理を行なうことができる。
【0067】
[第4の実施形態の変形例]
第4の実施形態では、不良メモリセル行と、それに置換される冗長メモリセル行がそれぞれ1行であることとしたが、これに限定されるものではない。不良メモリセル行と、それに置換される冗長メモリセル行がそれぞれ複数行としてもよい。また、第4の実施形態では、秘匿メモリセル行と、それに置換される冗長メモリセル行がそれぞれ2行であることとしたが、これに限定されるものではない。秘匿メモリセル行と、それに置換される冗長メモリセル行がそれぞれ3行以上としてもよい。
【0068】
[第5の実施形態]
図5は、本発明の第5の実施形態の半導体装置の構成を表わす図である。
【0069】
図5の半導体装置91が、図1の半導体装置1と相違する点は、以下である。
メモリセルアレイ94は、複数個のSRAMセルを含み、正規メモリセルアレイ96と、冗長メモリセルアレイ65とからなる。
【0070】
ユーザ入力部13は、ユーザから正規メモリセルアレイ96のうちの仮想不良メモリセル行の指定を受付ける。
【0071】
CPU3は、ユーザから指定された仮想不良メモリセル行のロウアドレスをレジスタ95へ記憶する。また、CPU3は、ドントケア(dont't care)値、つまりダミー値のライトデータDIをライト/リード回路15に与えて、レジスタ95に記憶されたロウアドレスで示される仮想不良メモリセル行のすべての仮想不良メモリセルに、ドントケア(dont't care)値を書込む。あるいは、ライト/リード回路15は、レジスタ95に記憶されたロウアドレスで示される仮想不良メモリセル行の一部の仮想不良メモリセルに、ドントケア(dont't care)値を書込むものとしてもよい。
【0072】
正規メモリセルアレイ96は、行列状に配置された複数個の正規メモリセルを含む。正規メモリセルアレイ96は、不良メモリセル行16と、ユーザによって設定された仮想不良メモリセル行97,98を含む。ここでは、2つの行がユーザによって、仮想不良メモリセル行に設定されたものとして説明する。
【0073】
出荷前のテスト時に、正規メモリセルアレイ96内の不良な行を発見して、その行が不良メモリセル行16に設定される。
【0074】
冗長メモリセルアレイ65は、3個の冗長メモリセル行5,71,72を含む。
冗長メモリセル行5のメモリセルは、アドレスの順序に従えば不良メモリセル行16に本来格納されるべき秘匿を要するデータを記憶する。冗長メモリセル行71のメモリセルは、アドレスの順序に従えば仮想不良メモリセル行97に本来格納されるべき秘匿を要するデータを記憶する。冗長メモリセル行72のメモリセルは、アドレスの順序に従えば仮想不良メモリセル行98に本来格納されるべき秘匿を要するデータを記憶する。
【0075】
冗長ロウデコーダ99は、プログラム回路を含む。プログラム回路は、複数個のヒューズ素子を含む。複数個のヒューズ素子のうちのいくつかが、出荷前のテスト時に、テスタによって、ブローされることによって、不良メモリセル行16のロウアドレスがプログラムされる。
【0076】
冗長ロウデコーダ99は、CPU3から送られてくるイネーブル信号EBが「H」レベルの場合(つまり、ユーザのアクセスが正当な場合)には、行アドレスバッファ8で与えられる行アドレス信号Xで与えられるロウアドレスと、プログラムされた不良メモリセル行16のロウアドレスとが一致するときに、冗長メモリセル行5のワード線を駆動することによって、冗長メモリセル行5に配置された冗長メモリセルを選択するとともに、正規ロウデコーダ9によるワード線の駆動、すなわち正規メモリセルの選択を禁止させる。したがって、この場合には、冗長メモリセル行5に対してアクセスが行なわれることになる。リードアクセスの場合には、冗長メモリセル行5に記憶された秘匿を要するデータが読み出される。ライトアクセスの場合には、冗長メモリセル行5にデータが書込まれるので、秘匿を要するデータが変更される。
【0077】
冗長ロウデコーダ99は、CPU3から送られてくるイネーブル信号EBが「H」レベルの場合(つまり、ユーザのアクセスが正当な場合)には、行アドレスバッファ8で与えられる行アドレス信号Xで与えられるロウアドレスと、ユーザによってレジスタ95に書込まれた仮想不良メモリセル行97,98のロウアドレスとが一致するときに、冗長メモリセル行71,72のワード線を駆動することによって、冗長メモリセル行71,72に配置された冗長メモリセルを選択するとともに、正規ロウデコーダ9によるワード線の駆動、すなわち正規メモリセルの選択を禁止させる。したがって、この場合には、冗長メモリセル行71,72に対してアクセスが行なわれることになる。リードアクセスの場合には、冗長メモリセル行71,72に記憶された秘匿を要するデータが読み出される。ライトアクセスの場合には、冗長メモリセル行71,72にデータが書込まれるので、秘匿を要するデータが変更される。
【0078】
一方、冗長ロウデコーダ99は、CPU3からイネーブル信号EBが「L」レベルの場合(つまり、ユーザのアクセスが正当でない場合)には、行アドレスバッファ8で与えられる行アドレス信号Xで与えられるロウアドレスと、プログラムされた不良メモリセル行16のロウアドレスとが一致する場合に、冗長メモリセル行5のワード線を駆動しない。したがって、この場合には、不良メモリセル行16に対してアクセスが行なわれることになる。リードアクセスの場合には、不良メモリセル行16から読み出しエラーが発生するだけであって、秘匿を要するデータが読み出されない。ライトアクセスの場合には、不良メモリセル行16へのデータの書込みを実行するだけであって、秘匿を要するデータが改竄されない。
【0079】
冗長ロウデコーダ99は、CPU3からイネーブル信号EBが「L」レベルの場合(つまり、ユーザのアクセスが正当でない場合)には、行アドレスバッファ8で与えられる行アドレス信号Xで与えられるロウアドレスと、ユーザによってレジスタ95に書込まれた仮想不良メモリセル行97,98のロウアドレスとが一致する場合に、冗長メモリセル行71,72のワード線を駆動しない。したがって、この場合には、仮想不良メモリセル行97,98に対してアクセスが行なわれることになる。リードアクセスの場合には、仮想不良メモリセル行97,98からドントケア値が読み出されるだけであって、秘匿を要するデータが読み出されない。ライトアクセスの場合には、仮想不良メモリセル行97,98へデータが書込まれるだけであって、秘匿を要するデータが改竄されない。
【0080】
冗長ロウデコーダ99は、CPU3から送られてくるイネーブル信号EBが「L」レベルの場合に、行アドレスバッファ8で与えられる行アドレス信号Xで与えられるロウアドレスと、プログラムされた不良メモリセル行16、ユーザによってレジスタ95に書込まれた仮想不良メモリセル行97,98のロウアドレスとが一致する場合に、アラーム信号ARをCPU3へ出力する。
【0081】
以上のように、本発明の第5の実施形態の半導体装置によれば、冗長ロウデコーダをユーザの入力した認証コードの正当性を表わすイネーブル信号EBによって制御するという簡易な構成によって、ユーザのアクセスが正当でない場合に、不良メモリセル行、またはドントケア値が格納されたユーザ指定の仮想不良メモリセル行に対してアクセスを行なうようにすることができる。これによって、秘匿を要するデータが読出され、または改竄されるのを防止することができる。また、ユーザのアクセスが正当でなく、その結果不良メモリセル行、ユーザ指定の仮想不良メモリセル行に対してアクセスを行なった場合には、冗長ロウデコーダがアラーム信号をCPUに出力する。これによって、CPUは、不正アクセスに対する防備として、自動的に電源を遮断、またはキーボードをロックするなどの処理を行なうことができる。
【0082】
[第5の実施形態の変形例]
第5の実施形態では、不良メモリセル行と、それに置換される冗長メモリセル行がそれぞれ1行であることとしたが、これに限定されるものではない。不良メモリセル行と、それに置換される冗長メモリセル行がそれぞれ複数行としてもよい。また、第5の実施形態では、ユーザ指定の仮想不良メモリセル行と、それに置換される冗長メモリセル行がそれぞれ2行であることとしたが、これに限定されるものではない。ユーザ指定の仮想不良メモリセル行と、それに置換される冗長メモリセル行がそれぞれ3行以上としてもよい。
【0083】
また、第5の実施形態では、ユーザが仮想不良メモリセル行を設定することとしたが、これに限定するものではなく、第4の実施形態のような秘匿メモリセル行を設定することとしてもよい。
【0084】
[第6の実施形態]
図1の半導体装置では、正規メモリセルアレイのある行のメモリセルを置換することとし、そのための冗長メモリセル行、および冗長ロウデコーダを備えた構成を前提とし、この冗長ロウデコーダをイネーブル信号によって制御した。これに代えて、第6の実施形態では、正規メモリセルアレイのある列のメモリセルを置換することとする。
【0085】
図6および図7は、本発明の第6の実施形態の半導体装置の構成を表わす図である。
図6および図7の半導体装置101が、図1の半導体装置1と相違する点は、以下である。
【0086】
メモリセルアレイ104は、複数個のSRAMセルを含み、正規メモリセルアレイ106と、冗長メモリセル列103とからなる。
【0087】
正規メモリセルアレイ106は、行列状に配置された複数個の正規メモリセルを含む。正規メモリセルアレイ106は、不良メモリセル列105を含む。不良メモリセル列105は、少なくとも1つのビット不良メモリを含む。出荷前のテスト時に、正規メモリセルアレイ106内の不良な列を発見して、その列が不良メモリセル列105に設定される。
【0088】
冗長メモリセル列103は、1列に配置され複数個の冗長メモリセルを含む。冗長メモリセル列103のメモリセルは、アドレスの順序に従えば不良メモリセル列105のメモリセルに本来格納されるべき秘匿を要するデータを記憶する。
【0089】
冗長カラム制御回路114は、プログラム回路を含む。プログラム回路は、複数個のヒューズ素子を含む。複数個のヒューズ素子のうちのいくつかが、出荷前のテスト時に、テスタによって、ブローされることによって、不良メモリセル列105のカラムアドレスがプログラムされる。
【0090】
冗長カラム制御回路114は、CPU3から送られてくるイネーブル信号EBが「H」レベルの場合(つまり、ユーザのアクセスが正当な場合)には、、列アドレスバッファ10で与えられる列アドレス信号Yで与えられるカラムアドレスと、プログラムされた不良メモリセル列105のカラムアドレスとが一致するときに、図7に示すように、メモリセル列(すなわちセンスアンプ/ライトドライバ116)とI/Oの接続を、不良メモリを含む不良メモリセル列105を避けるようにシフトさせる。したがって、この場合には、冗長メモリセル列103に対してアクセスが行なわれることになる。リードアクセスの場合には、冗長メモリセル列103に記憶された秘匿を要するデータが読み出される。ライトアクセスの場合には、冗長メモリセル列103にデータが書込まれるので、秘匿を要するデータが変更される。
【0091】
一方、冗長カラム制御回路114は、CPU3からイネーブル信号EBが「L」レベルの場合(つまり、ユーザのアクセスが正当でない場合)には、、列アドレスバッファ10で与えられる列アドレス信号Yで与えられるカラムアドレスと、プログラムされた不良メモリセル列105のカラムアドレスとが一致する場合に、図6に示すように、メモリセル列とI/Oの接続のシフトは行われない。したがって、この場合には、不良メモリセル列105に対してアクセスが行なわれることになる。リードアクセスの場合には、不良メモリセル列105から読み出しエラーが発生するだけであって、秘匿を要するデータが読み出されない。ライトアクセスの場合には、不良メモリセル列105へのデータの書込みを実行するだけであって、秘匿を要するデータが改竄されない。
【0092】
冗長カラム制御回路114は、CPU3から送られてくるイネーブル信号EBが「L」レベルの場合に、列アドレスバッファ10で与えられる列アドレス信号Yで与えられるカラムアドレスと、プログラムされた不良メモリセル列105のカラムアドレスとが一致する場合に、アラーム信号ARをCPU3へ出力する。
【0093】
以上のように、本発明の第6の実施形態の半導体装置によれば、冗長カラム制御回路をユーザの入力した認証コードの正当性を表わすイネーブル信号EBによって制御するという簡易な構成によって、ユーザのアクセスが正当でない場合に、不良メモリセル列に対してアクセスを行なうようにすることができる。これによって、秘匿を要するデータが読出され、または改竄されるのを防止することができる。また、ユーザのアクセスが正当でなく、その結果不良メモリセル行に対してアクセスを行なった場合には、冗長カラム制御回路がアラーム信号をCPUに出力する。これによって、CPUは、不正アクセスに対する防備として、自動的に電源を遮断、またはキーボードをロックするなどの処理を行なうことができる。
【0094】
(変形例)
本発明は、上記の実施形態に限定されるものではなく、たとえば、以下のような変形例も含まれる。
(1) 各種冗長回路への適用
メモリブロックのブロック置換による救済についてもロウ、カラム冗長と同様のイネーブル制御により、ユーザのアクセスを制御することが可能となる。
【0095】
本発明は、メモリに適用される冗長回路、または一般の冗長回路を搭載したLSIに適用可能であり、これら冗長(救済)回路を各種冗長回路の仕組みとイネーブル信号によって制御するとしてもよい。
【0096】
本発明の半導体装置は、ユーザから認証コードの入力を受付ける入力部と、入力された認証コードに基づいて、ユーザのアクセスが正当か否かを判定し、正当な場合にイネーブル信号を活性化する制御部と、複数の冗長回路と、制御部によって指定された冗長回路を、イネーブル信号が活性化された場合に限り、指定された冗長回路と、所定の正規冗長回路とが一致したときに、正規冗長回路による動作を禁止し、いずれかの冗長回路を選択する冗長回路制御を備える。
【0097】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0098】
1,51,61,81,91,101 半導体装置、2,52,62,82,92,102 内蔵SRAM、3 CPU、4,54,64,84,94,104 メモリセルアレイ、5,71,72,83,84 冗長メモリセル行、6,55,66,86,96,106 正規メモリセルアレイ、8 行アドレスバッファ、9 正規ロウデコーダ、10 列アドレスバッファ、11 カラムデコーダ、12 SRAM制御回路、13 ユーザ入力部、14,59,69,89 冗長ロウデコーダ、15 ライト/リード回路、16 不良メモリセル行、56,68,67,97,98 仮想不良メモリセル行、87,88 秘匿メモリセル行、95 レジスタ、103 冗長メモリセル列、105 不良メモリセル列、116 センスアンプ/ライトドライバ、114 冗長カラム制御回路。

【特許請求の範囲】
【請求項1】
ユーザから認証コードの入力を受付ける入力部と、
前記入力された認証コードに基づいて、ユーザのアクセスが正当か否かを判定し、正当な場合にイネーブル信号を活性化する制御部と、
複数個の正規メモリセルと、
複数個の冗長メモリセルと、
前記制御部によって指定されたアドレスをデコードし、デコード結果に基づいて、いずれかの正規メモリセルを選択する正規デコーダと、
前記イネーブル信号が活性化された場合に限り、前記指定されたアドレスと、所定の正規メモリセルのアドレスとが一致したときに、前記正規デコーダによる選択を禁止し、いずれかの冗長メモリセルを選択する冗長デコーダとを備えた半導体装置。
【請求項2】
前記所定の正規メモリセルは、不良メモリセルであり、
前記冗長メモリセルは、前記仮想不良メモリセルに本来格納されるべき、秘匿を要するデータを記憶する、請求項1記載の半導体装置。
【請求項3】
前記所定の正規メモリセルは、ドントケア値が記憶された仮想不良メモリセルであり、
前記冗長メモリセルは、前記仮想不良メモリセルに本来格納されるべき、秘匿を要するデータを記憶する、請求項1記載の半導体装置。
【請求項4】
前記所定の正規メモリセルは、不良メモリセル、およびドントケア値が記憶された仮想不良メモリセルであり
前記冗長メモリセルは、前記不良メモリセルまたは前記仮想不良メモリセルに本来格納されるべき、秘匿を要するデータを記憶する、請求項1記載の半導体装置。
【請求項5】
前記入力部は、ユーザから前記仮想不良メモリセルの指定を受付け、
前記仮想不良メモリセルにドントケア値を書込むライト回路とを備えた、請求項3または4記載の半導体装置。
【請求項6】
ユーザから認証コードの入力を受付ける入力部と、
前記入力された認証コードに基づいて、ユーザのアクセスが正当か否かを判定し、正当な場合にイネーブル信号を活性化する制御部と、
複数個の正規メモリセルとを備え、所定の正規メモリセルには秘匿を要するデータが記憶され、さらに、
複数個の冗長メモリセルとを備え、前記冗長メモリセルには、ドントケア値が記憶され、さらに、
前記制御部によって指定されたアドレスをデコードし、デコード結果に基づいて、いずれかの正規メモリセルを選択する正規デコーダと、
前記イネーブル信号が活性化されない場合には、前記指定されたアドレスと、所定の正規メモリセルのアドレスとが一致したときに、前記正規デコーダによる選択を禁止し、いずれかの冗長メモリセルを選択する冗長デコーダとを備えた半導体装置。
【請求項7】
前記冗長回路は、前記イネーブル信号が活性化されない場合、前記指定されたアドレスと、所定の正規メモリセルのアドレスとが一致したときに、前記制御部にアラーム信号を出力する、請求項1または6記載の半導体装置。
【請求項8】
ユーザから認証コードの入力を受付ける入力部と、
前記入力された認証コードに基づいて、ユーザのアクセスが正当か否かを判定し、正当な場合にイネーブル信号を活性化する制御部と、
行列状に配置された複数個の正規メモリセルと、
行列状または1行に配置された複数個の冗長メモリセルと、
前記制御部によって指定されたロウアドレスをデコードし、デコード結果に基づいて、いずれかの行の正規メモリセルを選択する正規ロウデコーダと、
前記イネーブル信号が活性化された場合に限り、前記指定されたロウアドレスと、所定の正規メモリセルのロウアドレスとが一致したときに、前記正規ロウデコーダによる選択を禁止し、いずれかの行の冗長メモリセルを選択する冗長ロウデコーダとを備えた半導体装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate