特許第6453610号(P6453610)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社メガチップスの特許一覧

特許6453610記憶装置、及び記憶装置の信頼性テスト方法
<>
  • 特許6453610-記憶装置、及び記憶装置の信頼性テスト方法 図000002
  • 特許6453610-記憶装置、及び記憶装置の信頼性テスト方法 図000003
  • 特許6453610-記憶装置、及び記憶装置の信頼性テスト方法 図000004
  • 特許6453610-記憶装置、及び記憶装置の信頼性テスト方法 図000005
  • 特許6453610-記憶装置、及び記憶装置の信頼性テスト方法 図000006
  • 特許6453610-記憶装置、及び記憶装置の信頼性テスト方法 図000007
  • 特許6453610-記憶装置、及び記憶装置の信頼性テスト方法 図000008
  • 特許6453610-記憶装置、及び記憶装置の信頼性テスト方法 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6453610
(24)【登録日】2018年12月21日
(45)【発行日】2019年1月16日
(54)【発明の名称】記憶装置、及び記憶装置の信頼性テスト方法
(51)【国際特許分類】
   G11C 29/56 20060101AFI20190107BHJP
【FI】
   G11C29/56 135
【請求項の数】11
【全頁数】20
(21)【出願番号】特願2014-217810(P2014-217810)
(22)【出願日】2014年10月24日
(65)【公開番号】特開2016-85774(P2016-85774A)
(43)【公開日】2016年5月19日
【審査請求日】2017年6月22日
(73)【特許権者】
【識別番号】591128453
【氏名又は名称】株式会社メガチップス
(74)【代理人】
【識別番号】100136353
【弁理士】
【氏名又は名称】高尾 建吾
(72)【発明者】
【氏名】菅原 崇彦
【審査官】 堀田 和義
(56)【参考文献】
【文献】 特開2006−147024(JP,A)
【文献】 特開2009−98973(JP,A)
【文献】 特開2006−139884(JP,A)
【文献】 特開2014−142891(JP,A)
【文献】 特開2014−224879(JP,A)
【文献】 特開2016−85337(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G11C 29/56
G09C 1/00
(57)【特許請求の範囲】
【請求項1】
コンテンツデータが格納されるメモリアレイと、
真性乱数を生成する乱数生成器と、
前記メモリアレイ及び前記乱数生成器に接続されたメモリコントローラと、
を備え、
前記メモリコントローラは、
外部装置から第1のテストコマンドを受信することにより、前記メモリアレイ及び前記乱数生成器のうち前記メモリアレイのみを対象とする信頼性テストを実行し、
外部装置から第2のテストコマンドを受信することにより、前記メモリアレイ及び前記乱数生成器のうち前記乱数生成器のみを対象とする信頼性テストを実行し、
前記メモリコントローラは、前記乱数生成器が生成する真性乱数に基づいて、ホスト装置との間で送受信する信号に対して暗号化及び復号化を行う暗号・復号処理部を有し、
前記メモリアレイの信頼性テストを実行する際には、前記メモリコントローラは、前記乱数生成器が生成する真性乱数に代えて所定の固定乱数値を前記暗号・復号処理部に入力し、前記暗号・復号処理部は、当該固定乱数値に基づいて、外部装置との間で送受信する信号に対して暗号化及び復号化を行う、記憶装置。
【請求項2】
前記メモリコントローラは、前記固定乱数値を格納するためのレジスタをさらに有し、
前記固定乱数値は、第1のテストコマンドに含まれており、
前記メモリコントローラは、外部装置から受信した第1のテストコマンドから前記固定乱数値を抽出し、当該固定乱数値を前記レジスタに格納する、請求項1に記載の記憶装置。
【請求項3】
前記メモリコントローラは、前記固定乱数値を格納するためのレジスタをさらに有し、
前記固定乱数値は、前記記憶装置内の所定の記憶部に格納されており、
前記メモリコントローラは、当該記憶部から前記固定乱数値を読み出し、当該固定乱数値を前記レジスタに格納する、請求項1に記載の記憶装置。
【請求項4】
前記メモリコントローラは、前記乱数生成器の信頼性テストを実行するセルフテスト処理部を有し、
前記セルフテスト処理部は、
所定の制御信号を前記乱数生成器に入力することにより前記乱数生成器に乱数値を生成させ、
前記乱数生成器が生成した乱数値を前記記憶装置内の所定の記憶部に格納し、
当該記憶部から読み出した乱数値に基づいて、前記乱数生成器が生成した乱数値の再現不可能性を検査する、請求項1〜3のいずれか一つに記載の記憶装置。
【請求項5】
前記乱数生成器に乱数値を生成させる回数を指定する回数情報は、第2のテストコマンドに含まれており、
前記セルフテスト処理部は、第2のテストコマンドから前記回数情報を抽出し、当該回数情報に基づいて前記乱数生成器に複数の乱数値を順に生成させる、請求項4に記載の記憶装置。
【請求項6】
前記乱数生成器に乱数値を生成させる回数を指定する回数情報は、前記記憶装置内の所定の記憶部に格納されており、
前記セルフテスト処理部は、当該記憶部から前記回数情報を読み出し、当該回数情報に基づいて前記乱数生成器に複数の乱数値を順に生成させる、請求項4に記載の記憶装置。
【請求項7】
前記セルフテスト処理部は、前記回数情報が入力されることによって乱数値の検査を開始し、検査が完了するとその検査結果を外部装置に送信する、請求項5又は6に記載の記憶装置。
【請求項8】
前記セルフテスト処理部は、乱数値の再現不可能性の検査として、前記乱数生成器によって同一の乱数値が連続して生成されたか否かを検査する、請求項4〜7のいずれか一つに記載の記憶装置。
【請求項9】
前記セルフテスト処理部は、乱数値の再現不可能性の検査として、前記乱数生成器によって生成された複数の乱数値の中に、同一の乱数値が含まれているか否かを検査する、請求項4〜8のいずれか一つに記載の記憶装置。
【請求項10】
前記セルフテスト処理部は、乱数値の再現不可能性の検査として、前記乱数生成器によって生成された乱数値における「0」又は「1」の出現割合が所定の許容範囲内であるか否かを検査する、請求項4〜9のいずれか一つに記載の記憶装置。
【請求項11】
コンテンツデータが格納されるメモリアレイと、真性乱数を生成する乱数生成器と、前記メモリアレイ及び前記乱数生成器に接続されたメモリコントローラと、を備える記憶装置の信頼性テスト方法であって、
(A)外部装置から第1のテストコマンドを受信することにより、前記メモリアレイ及び前記乱数生成器のうち前記メモリアレイのみを対象とする信頼性テストを実行するステップと、
(B)外部装置から第2のテストコマンドを受信することにより、前記メモリアレイ及び前記乱数生成器のうち前記乱数生成器のみを対象とする信頼性テストを実行するステップと、
を備え、
前記メモリコントローラは、前記乱数生成器が生成する真性乱数に基づいて、ホスト装置との間で送受信する信号に対して暗号化及び復号化を行う暗号・復号処理部を有し、
前記メモリアレイの信頼性テストを実行する際には、前記メモリコントローラは、前記乱数生成器が生成する真性乱数に代えて所定の固定乱数値を前記暗号・復号処理部に入力し、前記暗号・復号処理部は、当該固定乱数値に基づいて、外部装置との間で送受信する信号に対して暗号化及び復号化を行う、記憶装置の信頼性テスト方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体記憶装置等の記憶装置、及び記憶装置の信頼性テスト方法に関する。
【背景技術】
【0002】
一般的な半導体記憶装置を対象とする信頼性テストでは、テスター装置を使用してメモリアレイの全ての領域に対して既知のテストパターンでデータの書き込み及び読み出しを行い、テスター装置がメモリアレイに書き込んだデータ(期待値)と、テスター装置がメモリアレイから読み出したデータとを照合することによって、メモリアレイの信頼性が検査される。
【0003】
また、半導体記憶装置の出荷テストでは、テストコストを削減すべく、1台のテスター装置に複数台の半導体記憶装置を接続し、複数台の半導体記憶装置に対して共通のテストパターンでデータの書き込み及び読み出しを行うことにより、複数台の半導体記憶装置に対して同時に信頼性テストを行うことが一般的である。
【0004】
セキュリティ性の向上のために擬似乱数生成器が実装された半導体記憶装置に関しては、擬似乱数は乱数値の予測が可能であり、共通のアルゴリズムを用いることで複数の半導体記憶装置で同一の擬似乱数を生成できるため、一般的な半導体記憶装置と同様に1台のテスター装置を用いて複数台の半導体記憶装置に対して同時に出荷テストを行うことが可能である。
【0005】
なお、下記特許文献1,2には、乱数生成器によって生成された乱数に対して、「0」又は「1」の出現頻度が許容範囲内であるか否かを評価する技術が開示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特表2005−517998号公報
【特許文献2】国際公開第WO2005/124537号
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかし、セキュリティ性の向上のために真性乱数生成器が実装された半導体記憶装置に関しては、真性乱数は乱数値の予測が不可能であるため、複数の半導体記憶装置で同一の真性乱数を生成できない。従って、真性乱数の乱数値に依存して各半導体記憶装置の期待値が異なるため、1台のテスター装置を用いて複数台の半導体記憶装置に対して同時に出荷テストを行うことができず、その結果、出荷テストの生産性が低下する。
【0008】
本発明はかかる事情に鑑みて成されたものであり、真性乱数生成器が実装された記憶装置に関しても、複数台の記憶装置に対する同時の信頼性テストを実現することにより、出荷テストの生産性を向上することが可能な記憶装置、及びその信頼性テスト方法を得ることを目的とするものである。
【課題を解決するための手段】
【0009】
本発明の第1の態様に係る記憶装置は、コンテンツデータが格納されるメモリアレイと、真性乱数を生成する乱数生成器と、前記メモリアレイ及び前記乱数生成器に接続されたメモリコントローラと、を備え、前記メモリコントローラは、外部装置から第1のテストコマンドを受信することにより、前記メモリアレイ及び前記乱数生成器のうち前記メモリアレイのみを対象とする信頼性テストを実行し、外部装置から第2のテストコマンドを受信することにより、前記メモリアレイ及び前記乱数生成器のうち前記乱数生成器のみを対象とする信頼性テストを実行し、前記メモリコントローラは、前記乱数生成器が生成する真性乱数に基づいて、ホスト装置との間で送受信する信号に対して暗号化及び復号化を行う暗号・復号処理部を有し、前記メモリアレイの信頼性テストを実行する際には、前記メモリコントローラは、前記乱数生成器が生成する真性乱数に代えて所定の固定乱数値を前記暗号・復号処理部に入力し、前記暗号・復号処理部は、当該固定乱数値に基づいて、外部装置との間で送受信する信号に対して暗号化及び復号化を行うことを特徴とするものである。
【0010】
第1の態様に係る記憶装置によれば、メモリコントローラは、外部装置から第1のテストコマンドを受信することにより、メモリアレイ及び乱数生成器のうちメモリアレイのみを対象とする信頼性テストを実行し、外部装置から第2のテストコマンドを受信することにより、メモリアレイ及び乱数生成器のうち乱数生成器のみを対象とする信頼性テストを実行する。このように、真性乱数の乱数値に依存しないメモリアレイの信頼性テストと、真性乱数の乱数値に依存する乱数生成器の信頼性テストとを分離して実行することにより、1台の外部装置を用いて複数台の記憶装置に対する信頼性テストを同時に行うことが可能となる。その結果、真性乱数生成器が実装された記憶装置に関しても、複数台の記憶装置に対する同時の信頼性テストを実現できるため、出荷テストの生産性を向上することが可能となる。
【0012】
また、の態様に係る記憶装置によれば、メモリアレイの信頼性テストを実行する際には、メモリコントローラは、乱数生成器が生成する真性乱数に代えて所定の固定乱数値を暗号・復号処理部に入力し、暗号・復号処理部は、当該固定乱数値に基づいて、外部装置との間で送受信する信号に対して暗号化及び復号化を行う。このように、真性乱数に代えて所定の固定乱数値を用いることにより、メモリアレイの信頼性テストを実行する際に、暗号・復号処理部による暗号化及び復号化の処理は、乱数生成器が生成する真性乱数に依存しない。その結果、複数台の記憶装置に対して共通の固定乱数値を設定することによって共通の期待値を使用できるため、複数台の記憶装置に対するメモリアレイの信頼性テストを同時に実行することが可能となる。
【0013】
本発明の第の態様に係る記憶装置は、第の態様に係る記憶装置において特に、前記メモリコントローラは、前記固定乱数値を格納するためのレジスタをさらに有し、前記固定乱数値は、第1のテストコマンドに含まれており、前記メモリコントローラは、外部装置から受信した第1のテストコマンドから前記固定乱数値を抽出し、当該固定乱数値を前記レジスタに格納することを特徴とするものである。
【0014】
の態様に係る記憶装置によれば、メモリコントローラは、外部装置から受信した第1のテストコマンドから固定乱数値を抽出し、当該固定乱数値をレジスタに格納する。レジスタに格納された固定乱数値を使用することにより、暗号・復号処理部は、乱数生成器が生成する真性乱数に依存しない暗号化及び復号化の処理を実行することが可能となる。また、第1のテストコマンドに固定乱数値を含めることにより、外部装置によって固定乱数値を容易に変更することが可能となる。
【0015】
本発明の第の態様に係る記憶装置は、第の態様に係る記憶装置において特に、前記メモリコントローラは、前記固定乱数値を格納するためのレジスタをさらに有し、前記固定乱数値は、前記記憶装置内の所定の記憶部に格納されており、前記メモリコントローラは、当該記憶部から前記固定乱数値を読み出し、当該固定乱数値を前記レジスタに格納することを特徴とするものである。
【0016】
の態様に係る記憶装置によれば、記憶装置内の所定の記憶部に固定乱数値が格納されており、メモリコントローラは、記憶部から読み出した固定乱数値をレジスタに格納する。レジスタに格納された固定乱数値を使用することにより、暗号・復号処理部は、乱数生成器が生成する真性乱数に依存しない暗号化及び復号化の処理を実行することが可能となる。
【0017】
本発明の第の態様に係る記憶装置は、第1〜第のいずれか一つの態様に係る記憶装置において特に、前記メモリコントローラは、前記乱数生成器の信頼性テストを実行するセルフテスト処理部を有し、前記セルフテスト処理部は、所定の制御信号を前記乱数生成器に入力することにより前記乱数生成器に乱数値を生成させ、前記乱数生成器が生成した乱数値を前記記憶装置内の所定の記憶部に格納し、当該記憶部から読み出した乱数値に基づいて、前記乱数生成器が生成した乱数値の再現不可能性を検査することを特徴とするものである。
【0018】
の態様に係る記憶装置によれば、セルフテスト処理部は、所定の制御信号を乱数生成器に入力することにより乱数生成器に乱数値を生成させ、乱数生成器が生成した乱数値を記憶装置内の所定の記憶部に格納し、当該記憶部から読み出した乱数値に基づいて、乱数生成器が生成した乱数値の再現不可能性を検査する。このように、真性乱数の乱数値に依存する乱数生成器の信頼性テストに関しては、各記憶装置のセルフテスト処理部によって記憶装置毎にセルフテストを行うことにより、複数台の記憶装置に対する乱数生成器の信頼性テストを同時に実行することが可能となる。また、乱数生成器の信頼性テストを、乱数値の再現不可能性の検査に限定することにより、テストの容易化及びテストコストの削減を図ることが可能となる。乱数生成器とは別の処理ブロックで乱数の一様性が担保されている装置に対して本発明を適用することが、特に有効である。
【0019】
本発明の第の態様に係る記憶装置は、第の態様に係る記憶装置において特に、前記乱数生成器に乱数値を生成させる回数を指定する回数情報は、第2のテストコマンドに含まれており、前記セルフテスト処理部は、第2のテストコマンドから前記回数情報を抽出し、当該回数情報に基づいて前記乱数生成器に複数の乱数値を順に生成させることを特徴とするものである。
【0020】
の態様に係る記憶装置によれば、セルフテスト処理部は、第2のテストコマンドから回数情報を抽出し、当該回数情報に基づいて乱数生成器に複数の乱数値を順に生成させる。これにより、乱数生成器が順に生成した複数の乱数値を記憶部に格納することができ、セルフテスト処理部が記憶部から複数の乱数値を読み出すことによって、乱数値の再現不可能性を検査することが可能となる。また、第2のテストコマンドに回数情報を含めることにより、外部装置によって回数情報を容易に変更することが可能となる。
【0021】
本発明の第の態様に係る記憶装置は、第の態様に係る記憶装置において特に、前記乱数生成器に乱数値を生成させる回数を指定する回数情報は、前記記憶装置内の所定の記憶部に格納されており、前記セルフテスト処理部は、当該記憶部から前記回数情報を読み出し、当該回数情報に基づいて前記乱数生成器に複数の乱数値を順に生成させることを特徴とするものである。
【0022】
の態様に係る記憶装置によれば、記憶装置内の所定の記憶部に回数情報が格納されており、セルフテスト処理部は、記憶部から読み出した回数情報に基づいて、乱数生成器に複数の乱数値を順に生成させる。これにより、乱数生成器が順に生成した複数の乱数値を記憶部に格納することができ、セルフテスト処理部が記憶部から複数の乱数値を読み出すことによって、乱数値の再現不可能性を検査することが可能となる。
【0023】
本発明の第の態様に係る記憶装置は、第又は第の態様に係る記憶装置において特に、前記セルフテスト処理部は、前記回数情報が入力されることによって乱数値の検査を開始し、検査が完了するとその検査結果を外部装置に送信することを特徴とするものである。
【0024】
の態様に係る記憶装置によれば、セルフテスト処理部は、回数情報が入力されることによって乱数値の検査を開始し、検査が完了するとその検査結果を外部装置に送信する。従って、乱数生成器の信頼性テストに関しては、外部装置によるテストパターンの作成処理や期待値との照合処理は不要となるため、外部装置の処理負荷を軽減することが可能となる。
【0025】
本発明の第の態様に係る記憶装置は、第〜第のいずれか一つの態様に係る記憶装置において特に、前記セルフテスト処理部は、乱数値の再現不可能性の検査として、前記乱数生成器によって同一の乱数値が連続して生成されたか否かを検査することを特徴とするものである。
【0026】
の態様に係る記憶装置によれば、セルフテスト処理部は、乱数値の再現不可能性の検査として、乱数生成器によって同一の乱数値が連続して生成されたか否かを検査する。これにより、乱数の張り付きの有無を簡易にチェックすることが可能となる。
【0027】
本発明の第の態様に係る記憶装置は、第〜第のいずれか一つの態様に係る記憶装置において特に、前記セルフテスト処理部は、乱数値の再現不可能性の検査として、前記乱数生成器によって生成された複数の乱数値の中に、同一の乱数値が含まれているか否かを検査することを特徴とするものである。
【0028】
の態様に係る記憶装置によれば、セルフテスト処理部は、乱数値の再現不可能性の検査として、乱数生成器によって生成された複数の乱数値の中に、同一の乱数値が含まれているか否かを検査する。これにより、乱数の周期性の有無を簡易にチェックすることが可能となる。
【0029】
本発明の第10の態様に係る記憶装置は、第〜第のいずれか一つの態様に係る記憶装置において特に、前記セルフテスト処理部は、乱数値の再現不可能性の検査として、前記乱数生成器によって生成された乱数値における「0」又は「1」の出現割合が所定の許容範囲内であるか否かを検査することを特徴とするものである。
【0030】
10の態様に係る記憶装置によれば、セルフテスト処理部は、乱数値の再現不可能性の検査として、乱数生成器によって生成された乱数値における「0」又は「1」の出現割合が所定の許容範囲内であるか否かを検査する。これにより、乱数の各ビットの「0」又は「1」の偏りの有無を簡易にチェックすることが可能となる。
【0031】
本発明の第11の態様に係る記憶装置の信頼性テスト方法は、コンテンツデータが格納されるメモリアレイと、真性乱数を生成する乱数生成器と、前記メモリアレイ及び前記乱数生成器に接続されたメモリコントローラと、を備える記憶装置の信頼性テスト方法であって、(A)外部装置から第1のテストコマンドを受信することにより、前記メモリアレイ及び前記乱数生成器のうち前記メモリアレイのみを対象とする信頼性テストを実行するステップと、(B)外部装置から第2のテストコマンドを受信することにより、前記メモリアレイ及び前記乱数生成器のうち前記乱数生成器のみを対象とする信頼性テストを実行するステップと、を備え、前記メモリコントローラは、前記乱数生成器が生成する真性乱数に基づいて、ホスト装置との間で送受信する信号に対して暗号化及び復号化を行う暗号・復号処理部を有し、前記メモリアレイの信頼性テストを実行する際には、前記メモリコントローラは、前記乱数生成器が生成する真性乱数に代えて所定の固定乱数値を前記暗号・復号処理部に入力し、前記暗号・復号処理部は、当該固定乱数値に基づいて、外部装置との間で送受信する信号に対して暗号化及び復号化を行うことを特徴とするものである。
【0032】
11の態様に係る記憶装置の信頼性テスト方法によれば、ステップ(A)では、外部装置から第1のテストコマンドを受信することにより、メモリアレイ及び乱数生成器のうちメモリアレイのみを対象とする信頼性テストが実行され、ステップ(B)では、外部装置から第2のテストコマンドを受信することにより、メモリアレイ及び乱数生成器のうち乱数生成器のみを対象とする信頼性テストが実行される。このように、真性乱数の乱数値に依存しないメモリアレイの信頼性テストと、真性乱数の乱数値に依存する乱数生成器の信頼性テストとを分離して実行することにより、1台の外部装置を用いて複数台の記憶装置に対する信頼性テストを同時に行うことが可能となる。その結果、真性乱数生成器が実装された記憶装置に関しても、複数台の記憶装置に対する同時の信頼性テストを実現できるため、出荷テストの生産性を向上することが可能となる。
また、第11の態様に係る記憶装置の信頼性テスト方法によれば、メモリアレイの信頼性テストを実行する際には、メモリコントローラは、乱数生成器が生成する真性乱数に代えて所定の固定乱数値を暗号・復号処理部に入力し、暗号・復号処理部は、当該固定乱数値に基づいて、外部装置との間で送受信する信号に対して暗号化及び復号化を行う。このように、真性乱数に代えて所定の固定乱数値を用いることにより、メモリアレイの信頼性テストを実行する際に、暗号・復号処理部による暗号化及び復号化の処理は、乱数生成器が生成する真性乱数に依存しない。その結果、複数台の記憶装置に対して共通の固定乱数値を設定することによって共通の期待値を使用できるため、複数台の記憶装置に対するメモリアレイの信頼性テストを同時に実行することが可能となる。
【発明の効果】
【0033】
本発明によれば、真性乱数生成器が実装された記憶装置に関しても、複数台の記憶装置に対する同時の信頼性テストを実現できるため、出荷テストの生産性を向上することが可能となる。
【図面の簡単な説明】
【0034】
図1】本発明の実施の形態に係る半導体記憶装置を対象として出荷テストを実施している状況を示す図である。
図2】半導体記憶装置の構成を示す図である。
図3】メモリアレイのメモリ領域を示す図である。
図4】半導体記憶装置に対する信頼性テストの処理の流れを示すフローチャートである。
図5】メモリテストにおいてメモリコントローラが実行する処理の流れを示すフローチャートである。
図6】乱数テストにおいてメモリコントローラが実行する処理の流れを示すフローチャートである。
図7】乱数テストにおいてメモリコントローラが実行する処理の流れを示すフローチャートである。
図8】乱数テストにおいてメモリコントローラが実行する処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0035】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
【0036】
図1は、本発明の実施の形態に係る半導体記憶装置1を対象として出荷テストを実施している状況を示す図である。1台のテスター装置2に複数台の半導体記憶装置1が接続されることにより、複数台の半導体記憶装置1に対して同時に信頼性テストが実行される。半導体記憶装置1は、例えば、ホスト装置に着脱自在に接続可能なメモリカードである。あるいは、メモリカードに代えて、光ディスクや磁気ディスク等の任意の記憶装置を用いることもできる。なお、テスター装置2に代えて、簡易検査器、又はテスト機能を有するホスト装置等の任意の外部装置を用いて、半導体記憶装置1の信頼性テストを実行することもできる。
【0037】
図2は、半導体記憶装置1の構成を示す図である。半導体記憶装置1は、メモリコントローラ11と、不確定回路を用いて真性乱数を生成する乱数生成器12と、NAND型フラッシュメモリ等を用いたメモリアレイ13とを備えて構成されている。
【0038】
図2の接続関係で示すように、メモリコントローラ11は、暗号・復号処理部21、セルフテスト処理部22、レジスタ23、及びセレクタ24〜26を備えて構成されている。
【0039】
図3は、メモリアレイ13のメモリ領域を示す図である。メモリアレイ13は、コンテンツデータを格納するためのコンテンツデータ格納領域R1と、テストデータを格納するためのテストデータ格納領域R2とを有している。
【0040】
図4は、半導体記憶装置1に対する信頼性テストの処理の流れを示すフローチャートである。まず、ステップSP11においてテスター装置2は、メモリアレイ13の信頼性テスト(以下「メモリテスト」と称す)を実行する。メモリテストが完了すると、次にステップSP12においてテスター装置2は、乱数生成器12の信頼性テスト(以下「乱数テスト」と称す)を実行する。このように、半導体記憶装置1に対しては、メモリテストと乱数テストとが時系列的に分離して実行される。なお、メモリテスト及び乱数テストの実行順序は、図4に示した例と逆であっても良い。
【0041】
<メモリアレイの信頼性テスト>
図5は、メモリテストにおいてメモリコントローラ11が実行する処理の流れを示すフローチャートである。出荷テストにおいてメモリテストを実行する場合、まずテスター装置2は、メモリテストにおいて暗号・復号処理部21に使用させるための所定の固定乱数値を生成した後、テストパターン及びその期待値を生成する。次にテスター装置2は、メモリテストの実行を指示する専用のテストコマンド(以下「メモリテストコマンド」と称す)内に上記固定乱数値を格納した後、当該メモリテストコマンドを既知のテストモード用暗号アルゴリズムを用いて暗号化する。そして、暗号化メモリテストコマンドを、データD1として半導体記憶装置1に送信する。なお、メモリテストコマンドの暗号化は省略しても良い。
【0042】
図5を参照して、まずステップSP21においてメモリコントローラ11は、テスター装置2から送信された暗号化メモリテストコマンドを受信する。そして、受信した暗号化メモリテストコマンドを、暗号・復号処理部21によって上記テストモード用暗号アルゴリズムを用いて復号化する。暗号・復号処理部21は、復号化されたメモリテストコマンドをデータD2として出力する。
【0043】
次にステップSP22においてメモリコントローラ11は、テスター装置2からメモリテストコマンドを受信したことをコマンドIDによって認識することにより、セレクタ24〜26の入力端子を図2の「0」側に切り替える。
【0044】
次にステップSP23においてメモリコントローラ11は、ステップSP21で暗号・復号処理部21から出力されたメモリテストコマンドから、上記固定乱数値を抽出する。
【0045】
次にステップSP24においてメモリコントローラ11は、ステップSP23で抽出した上記固定乱数値を、データD3としてレジスタ23に入力する。これにより、レジスタ23に上記固定乱数値が格納される。
【0046】
次にステップSP25においてメモリコントローラ11は、レジスタ23に格納されている上記固定乱数値を、セレクタ24を介して暗号・復号処理部21に入力する。これにより、メモリコントローラ11は、上記固定乱数値によって暗号・復号処理部21を初期化する。
【0047】
次にステップSP26においてメモリコントローラ11は、暗号・復号処理部21の初期化が完了した旨を、メモリテストコマンドに対する戻り値としてテスター装置2に通知する。
【0048】
次にステップSP27においてメモリコントローラ11は、テスター装置2が生成したテストパターンを用いて、メモリアレイ13の信頼性テストを実行する。例えば、テスター装置2は、上記固定乱数値を用いて暗号化した暗号化テストパターンを、半導体記憶装置1に送信する。メモリコントローラ11は、テスター装置2から受信した暗号化テストパターンを、暗号・復号処理部21によって上記固定乱数値を用いて復号化する。次にメモリコントローラ11は、復号化されたテストパターンに含まれるアドレスを、データD4としてセレクタ26を介してメモリアレイ13に入力する。次にメモリコントローラ11は、メモリアレイ13から読み出されたデータD5を、セレクタ25を介して暗号・復号処理部21に入力する。次にメモリコントローラ11は、データD5を暗号・復号処理部21によって上記固定乱数値を用いて暗号化することにより、暗号化データをテスター装置2に送信する。
【0049】
テスター装置2は、半導体記憶装置1から受信した暗号化データを、上記固定乱数値を用いて復号化する。そして、当該復号化したデータの値と、上記で生成したテストパターンの期待値とを照合することにより、メモリアレイ13の信頼性を評価する。
【0050】
なお、以上の説明では、固定乱数値をメモリテストコマンド内に含めてテスター装置2から半導体記憶装置1に送信する例について述べたが、この例には限定されない。例えば、固定乱数値は、半導体記憶装置1内の任意の記憶部(メモリアレイ13、RAM、ROM、又はレジスタ等)に、予め格納されていても良い。この場合、メモリコントローラ11は、テスター装置2からメモリテストコマンドを受信することにより、当該記憶部から固定乱数値を読み出して、当該固定乱数値をレジスタ23に格納する。
【0051】
<乱数生成器の信頼性テスト(第1の例:乱数の張り付きの評価)>
図6は、乱数テストにおいてメモリコントローラ11が実行する処理の流れを示すフローチャートである。出荷テストにおいて乱数テストを実行する場合、まずテスター装置2は、乱数生成器12からの乱数値の取得回数を指定するための回数情報を生成する。次にテスター装置2は、乱数テストの実行を指示する専用のテストコマンド(以下「乱数テストコマンド」と称す)内に上記回数情報を格納した後、当該乱数テストコマンドを既知のテストモード用暗号アルゴリズムを用いて暗号化する。そして、暗号化乱数テストコマンドを、データD1として半導体記憶装置1に送信する。なお、乱数テストコマンドの暗号化は省略しても良い。
【0052】
図6を参照して、まずステップSP31においてメモリコントローラ11は、テスター装置2から送信された暗号化乱数テストコマンドを受信する。そして、受信した暗号化乱数テストコマンドを、暗号・復号処理部21によって上記テストモード用暗号アルゴリズムを用いて復号化する。暗号・復号処理部21は、復号化された乱数テストコマンドをデータD2として出力する。
【0053】
次にステップSP32においてメモリコントローラ11は、テスター装置2から乱数テストコマンドを受信したことをコマンドIDによって認識することにより、セレクタ24〜26の入力端子を図2の「1」側に切り替える。
【0054】
次にステップSP33においてメモリコントローラ11は、ステップSP31で暗号・復号処理部21から出力された乱数テストコマンドから、上記回数情報を抽出する。
【0055】
次にステップSP34においてメモリコントローラ11は、ステップSP33で抽出した上記回数情報を、データD6としてセルフテスト処理部22に入力する。これにより、乱数生成器12からの乱数値の取得回数がセルフテスト処理部22に指定される。
【0056】
次にステップSP35においてメモリコントローラ11は、乱数値の生成を乱数生成器12に指示するための制御信号D7を、セルフテスト処理部22から乱数生成器12に入力する。乱数生成器12は、制御信号D7が入力されたことにより乱数値D8を生成する。次にメモリコントローラ11は、乱数生成器12から出力された乱数値D8をセルフテスト処理部22に入力する。
【0057】
次にステップSP36においてメモリコントローラ11は、乱数値D8を格納するためのテストデータ格納領域R2内のアドレスD9を、セルフテスト処理部22からセレクタ26を介してメモリアレイ13に入力する。また、メモリコントローラ11は、ステップSP35で取得した乱数値D8を、セルフテスト処理部22からメモリアレイ13に入力する。これにより、ステップSP35で取得した乱数値D8が、テストデータ格納領域R2内の指定アドレスに格納される。
【0058】
次にステップSP37においてメモリコントローラ11は、一つ前に生成されてメモリアレイ13に格納した乱数値D8を、メモリアレイ13からセルフテスト処理部22に読み出す。次にメモリコントローラ11は、ステップSP35で取得した最新の乱数値D8(以下「新乱数値」と称す)と、メモリアレイ13から読み出した一つ前の乱数値D8(以下「旧乱数値」と称す)とを、セルフテスト処理部22によって比較する。
【0059】
ステップSP37における判定の結果、新乱数値D8と旧乱数値D8とが同一である場合には、次にステップSP39においてメモリコントローラ11は、乱数生成器12によって同一の乱数値が連続して生成されたことを示す検査結果(つまり、乱数の張り付きが生じていることを示す検査結果)を、データD10としてセルフテスト処理部22からセレクタ25を介して暗号・復号処理部21に入力する。次にメモリコントローラ11は、当該検査結果を、暗号・復号処理部21によって上記テストモード用暗号アルゴリズムを用いて暗号化した後、テスター装置2に送信する。テスター装置2は、半導体記憶装置1から受信した暗号化された検査結果を、上記テストモード用暗号アルゴリズムを用いて復号化することにより、乱数生成器12の信頼性(この場合は乱数の張り付きが生じたこと)を評価する。
【0060】
ステップSP37における判定の結果、新乱数値D8と旧乱数値D8とが同一でない場合には、次にステップSP39においてメモリコントローラ11は、上記回数情報で指定された回数分の乱数値D8を取得したか否かを、セルフテスト処理部22によって判定する。
【0061】
指定回数分の乱数値D8の取得が完了していない場合には、メモリコントローラ11は、ステップSP35以降の処理を繰り返し実行する。
【0062】
一方、指定回数分の乱数値D8の取得が完了した場合には、次にステップSP39においてメモリコントローラ11は、乱数の張り付きが生じていないことを示す検査結果を、データD10としてセルフテスト処理部22からセレクタ25を介して暗号・復号処理部21に入力する。次にメモリコントローラ11は、当該検査結果を、暗号・復号処理部21によって上記テストモード用暗号アルゴリズムを用いて暗号化した後、テスター装置2に送信する。テスター装置2は、半導体記憶装置1から受信した暗号化された検査結果を、上記テストモード用暗号アルゴリズムを用いて復号化することにより、乱数生成器12の信頼性(この場合は乱数の張り付きが生じていないこと)を評価する。
【0063】
なお、以上の説明では、回数情報を乱数テストコマンド内に含めてテスター装置2から半導体記憶装置1に送信する例について述べたが、この例には限定されない。例えば、回数情報は、半導体記憶装置1内の任意の記憶部(メモリアレイ13、RAM、ROM、又はレジスタ等)に、予め格納されていても良い。この場合、メモリコントローラ11は、テスター装置2から乱数テストコマンドを受信することにより、当該記憶部から回数情報を読み出してセルフテスト処理部22に入力する。後述する第2及び第3の例についても同様である。
【0064】
また、以上の説明では、旧乱数値D8をメモリアレイ13のテストデータ格納領域R2内に格納する例について述べたが、この例には限定されない。メモリコントローラ11の内部レジスタに旧乱数値D8を格納しても良い。
【0065】
<乱数生成器の信頼性テスト(第2の例:乱数の周期性の評価)>
図7は、乱数テストにおいてメモリコントローラ11が実行する処理の流れを示すフローチャートである。出荷テストにおいて乱数テストを実行する場合、まずテスター装置2は、乱数生成器12からの乱数値の取得回数を指定するための回数情報を生成する。次にテスター装置2は、乱数テストコマンド内に上記回数情報を格納した後、当該乱数テストコマンドを既知のテストモード用暗号アルゴリズムを用いて暗号化する。そして、暗号化乱数テストコマンドを、データD1として半導体記憶装置1に送信する。なお、乱数テストコマンドの暗号化は省略しても良い。
【0066】
図7を参照して、まずステップSP51においてメモリコントローラ11は、テスター装置2から送信された暗号化乱数テストコマンドを受信する。そして、受信した暗号化乱数テストコマンドを、暗号・復号処理部21によって上記テストモード用暗号アルゴリズムを用いて復号化する。暗号・復号処理部21は、復号化された乱数テストコマンドをデータD2として出力する。
【0067】
次にステップSP52においてメモリコントローラ11は、テスター装置2から乱数テストコマンドを受信したことをコマンドIDによって認識することにより、セレクタ24〜26の入力端子を図2の「1」側に切り替える。
【0068】
次にステップSP53においてメモリコントローラ11は、ステップSP51で暗号・復号処理部21から出力された乱数テストコマンドから、上記回数情報を抽出する。
【0069】
次にステップSP54においてメモリコントローラ11は、ステップSP53で抽出した上記回数情報を、データD6としてセルフテスト処理部22に入力する。これにより、乱数生成器12からの乱数値の取得回数がセルフテスト処理部22に指定される。
【0070】
次にステップSP55においてメモリコントローラ11は、乱数値の生成を乱数生成器12に指示するための制御信号D7を、セルフテスト処理部22から乱数生成器12に入力する。乱数生成器12は、制御信号D7が入力されたことにより乱数値D8を生成する。次にメモリコントローラ11は、乱数生成器12から出力された乱数値D8をセルフテスト処理部22に入力する。
【0071】
次にステップSP56においてメモリコントローラ11は、乱数値D8を格納するためのテストデータ格納領域R2内のアドレスD9を、セルフテスト処理部22からセレクタ26を介してメモリアレイ13に入力する。また、メモリコントローラ11は、ステップSP55で取得した乱数値D8を、セルフテスト処理部22からメモリアレイ13に入力する。これにより、ステップSP55で取得した乱数値D8が、テストデータ格納領域R2内の指定アドレスに格納される。
【0072】
次にステップSP57においてメモリコントローラ11は、その時点でメモリアレイ13に格納されている全ての乱数値D8を、メモリアレイ13からセルフテスト処理部22に読み出す。次にメモリコントローラ11は、ステップSP55で取得した最新の乱数値D8(以下「新乱数値」と称す)と、メモリアレイ13から読み出した既存の乱数値D8(以下「既存乱数値」と称す)とを、セルフテスト処理部22によって比較する。
【0073】
ステップSP57における判定の結果、新乱数値D8が既存乱数値D8のいずれかと同一である場合には、次にステップSP59においてメモリコントローラ11は、乱数生成器12によって同一の乱数値が重複して生成されたことを示す検査結果(つまり、乱数の周期性が生じていることを示す検査結果)を、データD10としてセルフテスト処理部22からセレクタ25を介して暗号・復号処理部21に入力する。次にメモリコントローラ11は、当該検査結果を、暗号・復号処理部21によって上記テストモード用暗号アルゴリズムを用いて暗号化した後、テスター装置2に送信する。テスター装置2は、半導体記憶装置1から受信した暗号化された検査結果を、上記テストモード用暗号アルゴリズムを用いて復号化することにより、乱数生成器12の信頼性(この場合は乱数の周期性が生じたこと)を評価する。
【0074】
ステップSP57における判定の結果、新乱数値D8が全ての既存乱数値D8と同一でない場合には、次にステップSP58においてメモリコントローラ11は、上記回数情報で指定された回数分の乱数値D8を取得したか否かを、セルフテスト処理部22によって判定する。
【0075】
指定回数分の乱数値D8の取得が完了していない場合には、メモリコントローラ11は、ステップSP55以降の処理を繰り返し実行する。
【0076】
一方、指定回数分の乱数値D8の取得が完了した場合には、次にステップSP59においてメモリコントローラ11は、乱数の周期性が生じていないことを示す検査結果を、データD10としてセルフテスト処理部22からセレクタ25を介して暗号・復号処理部21に入力する。次にメモリコントローラ11は、当該検査結果を、暗号・復号処理部21によって上記テストモード用暗号アルゴリズムを用いて暗号化した後、テスター装置2に送信する。テスター装置2は、半導体記憶装置1から受信した暗号化された検査結果を、上記テストモード用暗号アルゴリズムを用いて復号化することにより、乱数生成器12の信頼性(この場合は乱数の周期性が生じていないこと)を評価する。
【0077】
<乱数生成器の信頼性テスト(第3の例:乱数の偏りの評価)>
図8は、乱数テストにおいてメモリコントローラ11が実行する処理の流れを示すフローチャートである。出荷テストにおいて乱数テストを実行する場合、まずテスター装置2は、乱数生成器12からの乱数値の取得回数を指定するための回数情報を生成する。次にテスター装置2は、乱数テストコマンド内に上記回数情報を格納した後、当該乱数テストコマンドを既知のテストモード用暗号アルゴリズムを用いて暗号化する。そして、暗号化乱数テストコマンドを、データD1として半導体記憶装置1に送信する。なお、乱数テストコマンドの暗号化は省略しても良い。
【0078】
図8を参照して、まずステップSP71においてメモリコントローラ11は、テスター装置2から送信された暗号化乱数テストコマンドを受信する。そして、受信した暗号化乱数テストコマンドを、暗号・復号処理部21によって上記テストモード用暗号アルゴリズムを用いて復号化する。暗号・復号処理部21は、復号化された乱数テストコマンドをデータD2として出力する。
【0079】
次にステップSP72においてメモリコントローラ11は、テスター装置2から乱数テストコマンドを受信したことをコマンドIDによって認識することにより、セレクタ24〜26の入力端子を図2の「1」側に切り替える。
【0080】
次にステップSP73においてメモリコントローラ11は、ステップSP71で暗号・復号処理部21から出力された乱数テストコマンドから、上記回数情報を抽出する。
【0081】
次にステップSP74においてメモリコントローラ11は、ステップSP73で抽出した上記回数情報を、データD6としてセルフテスト処理部22に入力する。これにより、乱数生成器12からの乱数値の取得回数がセルフテスト処理部22に指定される。
【0082】
次にステップSP75においてメモリコントローラ11は、乱数値の生成を乱数生成器12に指示するための制御信号D7を、セルフテスト処理部22から乱数生成器12に入力する。乱数生成器12は、制御信号D7が入力されたことにより乱数値D8を生成する。次にメモリコントローラ11は、乱数生成器12から出力された乱数値D8をセルフテスト処理部22に入力する。
【0083】
次にステップSP76においてメモリコントローラ11は、乱数値D8を格納するためのテストデータ格納領域R2内のアドレスD9を、セルフテスト処理部22からセレクタ26を介してメモリアレイ13に入力する。また、メモリコントローラ11は、ステップSP75で取得した乱数値D8を、セルフテスト処理部22からメモリアレイ13に入力する。これにより、ステップSP75で取得した乱数値D8が、テストデータ格納領域R2内の指定アドレスに格納される。
【0084】
次にステップSP77においてメモリコントローラ11は、上記回数情報で指定された回数分の乱数値D8を取得したか否かを、セルフテスト処理部22によって判定する。
【0085】
指定回数分の乱数値D8の取得が完了していない場合には、メモリコントローラ11は、ステップSP75以降の処理を繰り返し実行する。
【0086】
一方、指定回数分の乱数値D8の取得が完了した場合には、次にステップSP78においてメモリコントローラ11は、メモリアレイ13に格納されている全ての乱数値D8を、メモリアレイ13からセルフテスト処理部22に読み出す。次にメモリコントローラ11は、乱数値D8の各ビットに「0」又は「1」の偏りが生じているか否かを、セルフテスト処理部22によって検査する。セルフテスト処理部22は、例えば、各乱数値D8のビット長が128ビットであり、上記指定回数が64回である場合において、合計128×64ビットのうち、「0」又は「1」の個数が、「50×64」個以上かつ「70×64」個以内の許容範囲内であれば偏りは生じていないと判定し、上記許容範囲外であれば偏りが生じていると判定する。
【0087】
次にステップSP79においてメモリコントローラ11は、乱数の偏りが生じているか否かを示す検査結果を、データD10としてセルフテスト処理部22からセレクタ25を介して暗号・復号処理部21に入力する。次にメモリコントローラ11は、当該検査結果を、暗号・復号処理部21によって上記テストモード用暗号アルゴリズムを用いて暗号化した後、テスター装置2に送信する。テスター装置2は、半導体記憶装置1から受信した暗号化された検査結果を、上記テストモード用暗号アルゴリズムを用いて復号化することにより、乱数生成器12の信頼性(この場合は乱数の偏りが生じているか否か)を評価する。
【0088】
なお、以上の説明では、指定回数分の乱数値D8をメモリアレイ13のテストデータ格納領域R2内に格納する例について述べたが、この例には限定されない。メモリコントローラ11の内部レジスタに乱数値D8を格納した状態で「0」又は「1」のビット数をカウントし、新たな乱数値D8が生成される毎にカウント値を累積することにより、メモリアレイ13への乱数値D8の格納を省略しても良い。
【0089】
また、乱数生成器12の信頼性テストに関する上記第1〜第3の例は、任意に組み合わせて適用することが可能である。
【0090】
<まとめ>
本実施の形態に係る半導体記憶装置1によれば、メモリコントローラ11は、テスター装置2からメモリテストコマンドを受信することにより、メモリアレイ13及び乱数生成器12のうちメモリアレイ13のみを対象とする信頼性テスト(メモリテスト)を実行し、テスター装置2から乱数テストコマンドを受信することにより、メモリアレイ13及び乱数生成器12のうち乱数生成器12のみを対象とする信頼性テスト(乱数テスト)を実行する。このように、真性乱数の乱数値に依存しないメモリアレイ13の信頼性テストと、真性乱数の乱数値に依存する乱数生成器12の信頼性テストとを分離して実行することにより、1台のテスター装置2を用いて複数台の半導体記憶装置1に対する信頼性テストを同時に行うことが可能となる。その結果、真性乱数を生成する乱数生成器12が実装された半導体記憶装置1に関しても、複数台の半導体記憶装置1に対する同時の信頼性テストを実現できるため、出荷テストの生産性を向上することが可能となる。
【0091】
また、本実施の形態に係る半導体記憶装置1によれば、メモリアレイ13の信頼性テストを実行する際には、メモリコントローラ11は、乱数生成器12が生成する真性乱数に代えて所定の固定乱数値を暗号・復号処理部21に入力し、暗号・復号処理部21は、当該固定乱数値に基づいて、テスター装置2との間で送受信する信号(コマンド及びデータ)に対して暗号化及び復号化を行う。このように、真性乱数に代えて所定の固定乱数値を用いることにより、メモリアレイ13の信頼性テストを実行する際に、暗号・復号処理部21による暗号化及び復号化の処理は、乱数生成器12が生成する真性乱数に依存しない。その結果、複数台の半導体記憶装置1に対して共通の固定乱数値を設定することによって共通の期待値を使用できるため、複数台の半導体記憶装置1に対するメモリアレイ13の信頼性テストを同時に実行することが可能となる。
【0092】
また、本実施の形態に係る半導体記憶装置1によれば、メモリコントローラ11は、テスター装置2から受信したメモリテストコマンド(第1テストコマンド)から固定乱数値を抽出し、当該固定乱数値をレジスタ23に格納する。レジスタ23に格納された固定乱数値を使用することにより、暗号・復号処理部21は、乱数生成器12が生成する真性乱数に依存しない暗号化及び復号化の処理を実行することが可能となる。また、メモリテストコマンドに固定乱数値を含めることにより、テスター装置2によって固定乱数値を容易に変更することが可能となる。
【0093】
また、本実施の形態に係る半導体記憶装置1によれば、半導体記憶装置1内の所定の記憶部に固定乱数値が格納されており、メモリコントローラ11は、当該記憶部から読み出した固定乱数値をレジスタ23に格納する。レジスタ23に格納された固定乱数値を使用することにより、暗号・復号処理部21は、乱数生成器12が生成する真性乱数に依存しない暗号化及び復号化の処理を実行することが可能となる。
【0094】
また、本実施の形態に係る半導体記憶装置1によれば、セルフテスト処理部22は、所定の制御信号D7を乱数生成器12に入力することにより乱数生成器12に乱数値D8を生成させ、乱数生成器12が生成した乱数値D8を半導体記憶装置1内の所定の記憶部(メモリアレイ13、RAM、ROM、又はレジスタ等)に格納し、当該記憶部から読み出した乱数値D8に基づいて、乱数生成器12が生成した乱数値D8の再現不可能性を検査する。このように、真性乱数の乱数値に依存する乱数生成器12の信頼性テストに関しては、各半導体記憶装置1のセルフテスト処理部22によって半導体記憶装置1毎にセルフテストを行うことにより、複数台の半導体記憶装置1に対する乱数生成器の信頼性テストを同時に実行することが可能となる。また、乱数生成器12の信頼性テストを、乱数値の再現不可能性の検査に限定することにより、テストの容易化及びテストコストの削減を図ることが可能となる。
【0095】
一般的な乱数テストでは、生成した乱数が再現不可能性及び一様性の双方を満たしているか否かを検査する必要があり、出荷テスト時にこのような複雑な乱数テストを行ったのではテストコストが増大する。本実施の形態に係る半導体記憶装置1では、乱数生成器12の信頼性テストを、乱数値の再現不可能性の検査に限定することにより、テストの容易化及びテストコストの削減を図ることが可能となる。一方、乱数生成器12の信頼性テストでは一様性の検査は行われないため、乱数生成器とは別の処理ブロックで乱数の一様性が担保されている装置に対して本発明を適用することが、特に有効である。本実施の形態に係る半導体記憶装置1では、暗号・復号処理部21における暗号アルゴリズムによって乱数の一様性を担保することにより、乱数生成器12の信頼性テストでは乱数の再現不可能性の検査に限定することができる。
【0096】
また、本実施の形態に係る半導体記憶装置1によれば、セルフテスト処理部22は、乱数テストコマンド(第2テストコマンド)から回数情報を抽出し、当該回数情報に基づいて乱数生成器12に複数の乱数値D8を順に生成させる。これにより、乱数生成器12が順に生成した複数の乱数値D8を記憶部に格納することができ、セルフテスト処理部22が当該記憶部から複数の乱数値D8を読み出すことによって、乱数値の再現不可能性を検査することが可能となる。また、乱数テストコマンドに回数情報を含めることにより、テスター装置2によって回数情報を容易に変更することが可能となる。
【0097】
また、本実施の形態に係る半導体記憶装置1によれば、半導体記憶装置1内の所定の記憶部(メモリアレイ13、RAM、ROM、又はレジスタ等)に回数情報が格納されており、セルフテスト処理部22は、当該記憶部から読み出した回数情報に基づいて、乱数生成器12に複数の乱数値D8を順に生成させる。これにより、乱数生成器12が順に生成した複数の乱数値D8を当該記憶部に格納することができ、セルフテスト処理部22が当該記憶部から複数の乱数値D8を読み出すことによって、乱数値の再現不可能性を検査することが可能となる。
【0098】
また、本実施の形態に係る半導体記憶装置1によれば、セルフテスト処理部22は、回数情報が入力されることによって乱数値D8の検査を開始し、検査が完了するとその検査結果(データD10)をテスター装置2に送信する。従って、乱数生成器12の信頼性テストに関しては、テスター装置2によるテストパターンの作成処理や期待値との照合処理は不要となるため、テスター装置2の処理負荷を軽減することが可能となる。
【0099】
また、本実施の形態に係る半導体記憶装置1によれば、セルフテスト処理部22は、乱数値の再現不可能性の検査として、乱数生成器12によって同一の乱数値が連続して生成されたか否かを検査する。これにより、乱数の張り付きの有無を簡易にチェックすることが可能となる。
【0100】
また、本実施の形態に係る半導体記憶装置1によれば、セルフテスト処理部22は、乱数値の再現不可能性の検査として、乱数生成器12によって生成された複数の乱数値の中に、同一の乱数値が含まれているか否かを検査する。これにより、乱数の周期性の有無を簡易にチェックすることが可能となる。
【0101】
また、本実施の形態に係る半導体記憶装置1によれば、セルフテスト処理部22は、乱数値の再現不可能性の検査として、乱数生成器12によって生成された乱数値における「0」又は「1」の出現割合が所定の許容範囲内であるか否かを検査する。これにより、乱数の各ビットの「0」又は「1」の偏りの有無を簡易にチェックすることが可能となる。
【符号の説明】
【0102】
1 半導体記憶装置
2 テスター装置
11 メモリコントローラ
12 乱数生成器
13 メモリアレイ
21 暗号・復号処理部
22 セルフテスト処理部
23 レジスタ
24〜26 セレクタ
図1
図2
図3
図4
図5
図6
図7
図8