JP6103958B2 - 半導体記憶装置 - Google Patents

半導体記憶装置 Download PDF

Info

Publication number
JP6103958B2
JP6103958B2 JP2013012357A JP2013012357A JP6103958B2 JP 6103958 B2 JP6103958 B2 JP 6103958B2 JP 2013012357 A JP2013012357 A JP 2013012357A JP 2013012357 A JP2013012357 A JP 2013012357A JP 6103958 B2 JP6103958 B2 JP 6103958B2
Authority
JP
Japan
Prior art keywords
random number
data
memory array
semiconductor memory
memory device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2013012357A
Other languages
English (en)
Other versions
JP2014142891A (ja
Inventor
崇彦 菅原
崇彦 菅原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MegaChips Corp
Original Assignee
MegaChips Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by MegaChips Corp filed Critical MegaChips Corp
Priority to JP2013012357A priority Critical patent/JP6103958B2/ja
Publication of JP2014142891A publication Critical patent/JP2014142891A/ja
Application granted granted Critical
Publication of JP6103958B2 publication Critical patent/JP6103958B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Description

本発明は、半導体記憶装置に関する。
乱数は、暗号アルゴリズムにおける鍵の生成等に用いられる。真性乱数に近い乱数を得るための手法の一つとして、抵抗又はダイオードにおいて発生する雑音を利用して乱数を生成する方式が実用化されている。しかしながら、この方式では、低レベルの雑音をアナログ増幅回路によって増幅する必要があるため、アナログ増幅回路の回路規模が大きくなり、結果として乱数生成回路の回路規模が全体として増大する。また、アナログ回路を用いて乱数生成回路を構成する場合には、回路設計の難易度が高くなる。従って、回路規模の増大及び回路設計の複雑化を回避するためには、計算によって生成可能なディジタル乱数の使用が望まれる。
ディジタル乱数としては、擬似乱数が広く用いられている。擬似乱数は、乱数生成回路において、シード(初期値及びデータ)を用いた所定のアルゴリズムによって生成される。
なお、下記特許文献1には、不確定論理回路と、不確定論理回路から出力されるディジタル値における「0」及び「1」の出現頻度を均等にするための一様化回路とを備える乱数生成回路が開示されている。
特許第3604674号公報
擬似乱数は計算によって生成されるため、初期値及びアルゴリズムが同一であれば、生成される擬似乱数の値も同一となる。従って、擬似乱数をセキュリティ用途で使用する場合には、攻撃者に初期値及びアルゴリズムを見破られることにより、セキュリティを破られる可能性がある。そのため、相互認証等の認証コードとして擬似乱数を使用することは、セキュリティの堅牢性の低下を招く。
本発明はかかる事情に鑑みて成されたものであり、再現不可能性を有する乱数を簡易に生成することが可能な半導体記憶装置を得ることを目的とする。
本発明の第1の態様に係る半導体記憶装置は、メモリアレイと、前記メモリアレイの不安定要素に基づいて乱数を生成する乱数生成部と、前記メモリアレイから読み出した第1のデータに発生している不安定要素としての誤りの、発生数、発生位置、及び発生態様の少なくとも一つを含む、誤りの発生状況を検出する誤り検出部と、を備え、前記乱数生成部は、前記誤り検出部から入力された、前記第1のデータにおける誤りの発生状況を示す情報に基づいて、乱数を生成することを特徴とするものである。
第1の態様に係る半導体記憶装置によれば、乱数生成部は、メモリアレイの不安定要素に基づいて乱数を生成する。メモリアレイには、読み出したデータに含まれる誤りの発生状況、後天性不良ブロックの発生状況、及び先天性不良ブロックの発生状況等の様々な不安定要素が存在する。これらの不安定要素は、メモリアレイの個体毎に異なり、また、同一の個体であっても長期的及び短期的な時間の経過等に伴って変動する。従って、このようなメモリアレイの不安定要素に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
また、第1の態様に係る半導体記憶装置によれば、誤り検出部は、メモリアレイから読み出した第1のデータに発生している誤りの発生状況を検出する。そして、乱数生成部は、誤り検出部から入力された、第1のデータにおける誤りの発生状況を示す情報に基づいて、乱数を生成する。メモリアレイから読み出した第1のデータに発生している誤りの発生状況(発生数、発生位置、及び発生態様等)は、同一の個体であっても完全に一致することはなく、また、時間の経過に伴う変動も顕著である。従って、メモリアレイから読み出した第1のデータに発生している誤りの発生状況に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
本発明の第の態様に係る半導体記憶装置は、第の態様に係る半導体記憶装置において特に、乱数生成用に予め準備された第2のデータを前記メモリアレイに書き込む制御部をさらに備え、前記誤り検出部は、前記制御部によって書き込まれた前記第2データを、前記第1のデータとして前記メモリアレイから読み出すことを特徴とするものである。
の態様に係る半導体記憶装置によれば、制御部は、乱数生成用に予め準備された第2のデータをメモリアレイに書き込む。そして、誤り検出部は、制御部によって書き込まれた第2データを、第1のデータとしてメモリアレイから読み出すことにより、第1のデータに発生している誤りを検出する。従って、誤りを発生させやすい適切なデータを第2のデータとして準備することができ、その結果、生成する乱数の真性度を高めることが可能となる。
本発明の第の態様に係る半導体記憶装置は、第の態様に係る半導体記憶装置において特に、パターンが異なる複数の前記第2のデータが予め準備されており、前記制御部は、複数の前記第2のデータの中から乱数生成の処理毎に異なる前記第2のデータを選択して前記メモリアレイに書き込むことを特徴とするものである。
の態様に係る半導体記憶装置によれば、パターンが異なる複数の第2のデータが予め準備されており、制御部は、複数の第2のデータの中から乱数生成の処理毎に異なる第2のデータを選択してメモリアレイに書き込む。第2のデータを異ならせることによって、第1のデータにおける誤りの発生状況を異ならせることができるため、生成する乱数の真性度を高めることが可能となる。
本発明の第の態様に係る半導体記憶装置は、第2又は第3の態様に係る半導体記憶装置において特に、前記メモリアレイは、前記第2のデータを書き込むための複数のブロックを有し、前記制御部は、前記複数のブロックの中から乱数生成の処理毎に異なるブロックを選択して前記第2のデータを書き込むことを特徴とするものである。
の態様に係る半導体記憶装置によれば、制御部が第2のデータを書き込むための複数のブロックが割り当てられており、制御部は、複数のブロックの中から乱数生成の処理毎に異なるブロックを選択して第2のデータを書き込む。第2のデータを書き込むブロックを異ならせることによって、第1のデータにおける誤りの発生状況を異ならせることができるため、生成する乱数の真性度を高めることが可能となる。
本発明の第の態様に係る半導体記憶装置は、第〜第のいずれか一つの態様に係る半導体記憶装置において特に、前記乱数生成部はさらに、前記制御部が前記第2のデータを前記メモリアレイに書き込む際の、不安定要素としての書き込み所要時間に基づいて、乱数を生成することを特徴とするものである。
の態様に係る半導体記憶装置によれば、乱数生成部は、制御部が第2のデータをメモリアレイに書き込む際の、不安定要素としての書き込み所要時間に基づいて、乱数を生成する。第2のデータをメモリアレイに書き込む際の所要時間は、同一の個体であっても、第2のデータの内容や、書き込み対象ブロックの劣化度合い等に応じて変動する。従って、誤りの発生状況のみならず書き込み所要時間をも加味して乱数を生成することにより、生成する乱数の真性度を高めることが可能となる。
本発明の第の態様に係る半導体記憶装置は、第〜第のいずれか一つの態様に係る半導体記憶装置において特に、前記乱数生成部はさらに、前記第2のデータを前記メモリアレイから消去する際の、不安定要素としての消去所要時間に基づいて、乱数を生成することを特徴とするものである。
の態様に係る半導体記憶装置によれば、乱数生成部は、第2のデータをメモリアレイから消去する際の、不安定要素としての消去所要時間に基づいて、乱数を生成する。第2のデータをメモリアレイから消去する際の所要時間は、同一の個体であっても、第2のデータの内容や、消去対象ブロックの劣化度合い等に応じて変動する。従って、誤りの発生状況のみならず消去所要時間をも加味して乱数を生成することにより、生成する乱数の真性度を高めることが可能となる。
本発明の第の態様に係る半導体記憶装置は、第1〜第のいずれか一つの態様に係る半導体記憶装置において特に、前記メモリアレイは複数のブロックを有し、前記複数のブロックに含まれる後天性不良ブロックに関する情報を記憶する記憶部をさらに備え、前記乱数生成部は、前記記憶部から入力された、不安定要素としての後天性不良ブロックに関する情報に基づいて、乱数を生成することを特徴とするものである。
の態様に係る半導体記憶装置によれば、乱数生成部は、不安定要素としての後天性不良ブロックに関する情報に基づいて、乱数を生成する。後天性不良ブロックの発生状況(発生数、発生位置等)は、メモリアレイの個体毎に異なり、また、同一の個体であっても時間の経過に伴って変動する。従って、後天性不良ブロックの発生状況に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
本発明の第の態様に係る半導体記憶装置は、第1〜第のいずれか一つの態様に係る半導体記憶装置において特に、前記メモリアレイは複数のブロックを有し、前記複数のブロックに含まれる先天性不良ブロックに関する情報を記憶する記憶部をさらに備え、前記乱数生成部は、前記記憶部から入力された、不安定要素としての先天性不良ブロックに関する情報に基づいて、乱数を生成することを特徴とするものである。
の態様に係る半導体記憶装置によれば、乱数生成部は、不安定要素としての先天性不良ブロックに関する情報に基づいて、乱数を生成する。先天性不良ブロックの発生状況(発生数、発生位置等)は、メモリアレイの個体毎に異なる。従って、先天性不良ブロックの発生状況に基づいて乱数を生成することにより、メモリアレイの個体毎に異なる乱数を簡易に生成することが可能となる。
本発明の第の態様に係る半導体記憶装置は、第1〜第のいずれか一つの態様に係る半導体記憶装置において特に、前記乱数生成部は、前記メモリアレイの一以上の不安定要素をシードとして用いて、所定のアルゴリズムによって乱数を生成することを特徴とするものである。
の態様に係る半導体記憶装置によれば、乱数生成部は、メモリアレイの一以上の不安定要素をシードとして用いて、所定のアルゴリズムによって乱数を生成する。従って、生成する乱数の真性度を高めることができるとともに、ビット長等に関して所望の態様の乱数を生成することが可能となる。
本発明の第10の態様に係る半導体記憶装置は、複数のブロックを有するメモリアレイと、前記メモリアレイから読み出したデータに発生している誤りを検出する誤り検出部と、前記複数のブロックに含まれる不良ブロックに関する情報を記憶する記憶部と、乱数生成部と、を備え、前記乱数生成部は、前記記憶部から入力された、不良ブロックに関する情報を第1パラメータとして用い、前記誤り検出部から入力された、前記データに関する誤りの検出結果を示す情報を第2パラメータとして用いて、所定のアルゴリズムによって乱数を生成することを特徴とするものである。
10の態様に係る半導体記憶装置によれば、乱数生成部は、記憶部から入力された、不良ブロックに関する情報を第1パラメータとして用い、誤り検出部から入力された、メモリアレイから読み出したデータに関する誤りの検出結果を示す情報を第2パラメータとして用いて、所定のアルゴリズムによって乱数を生成する。後天性不良ブロックの発生状況(発生数、発生位置等)は、メモリアレイの個体毎に異なり、また、同一の個体であっても時間の経過に伴って変動する。また、先天性不良ブロックの発生状況は、メモリアレイの個体毎に異なる。また、メモリアレイから読み出したデータに発生している誤りの発生状況(発生数、発生位置、及び発生態様等)は、同一の個体であっても完全に一致することはなく、また、時間の経過に伴う変動も顕著である。従って、不良ブロックに関する情報を第1パラメータとして用い、メモリアレイから読み出したデータに関する誤りの検出結果を示す情報を第2パラメータとして用いて、乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。しかも、乱数生成部は、第1パラメータ及び第2パラメータをシードとして用いて、所定のアルゴリズムによって乱数を生成する。従って、生成する乱数の真性度を高めることができるとともに、ビット長等に関して所望の態様の乱数を生成することが可能となる。
本発明によれば、再現不可能性を有する乱数を簡易に生成することが可能な半導体記憶装置を得ることができる。
本発明の実施の形態に係るコンピュータシステムの構成を概略的に示す図である。 本発明の実施の形態に係る半導体記憶装置の構成を簡略化して示す図である。 メモリアレイの構成を示す図である。 第1の変形例に係る半導体記憶装置の構成を簡略化して示す図である。 第3の変形例に係る半導体記憶装置の構成を簡略化して示す図である。
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
図1は、本発明の実施の形態に係るコンピュータシステムの構成を概略的に示す図である。コンピュータシステムは、ホスト装置1と半導体記憶装置2とを備えて構成されている。半導体記憶装置2は、例えば、ホスト装置1に着脱自在に接続可能なメモリカードである。
半導体記憶装置2がホスト装置1に接続されて半導体記憶装置2の電源がオンされると、ホスト装置1及び半導体記憶装置2は相互認証を行う。
ホスト装置1は、認証用の乱数を生成した後に、その乱数を暗号化する。そして、暗号化後の乱数を半導体記憶装置2に向けて送信する。半導体記憶装置2は、ホスト装置1から受信した乱数を復号した後に、その乱数を再び暗号化する。そして、暗号化後の乱数をホスト装置1に向けて送信する。ホスト装置1は、半導体記憶装置2から受信した乱数を復号する。そして、自身が生成して半導体記憶装置2に送信した乱数と、半導体記憶装置2から受信した乱数とを比較する。ホスト装置1は、両者が一致する場合には半導体記憶装置2は正規品であると判定し、両者が一致しない場合には半導体記憶装置2は正規品ではないと判定する。
同様に、半導体記憶装置2は、認証用の乱数を生成した後に、その乱数を暗号化する。そして、暗号化後の乱数をホスト装置1に向けて送信する。ホスト装置1は、半導体記憶装置2から受信した乱数を復号した後に、その乱数を再び暗号化する。そして、暗号化後の乱数を半導体記憶装置2に向けて送信する。半導体記憶装置2は、ホスト装置1から受信した乱数を復号する。そして、自身が生成してホスト装置1に送信した乱数と、ホスト装置1から受信した乱数とを比較する。半導体記憶装置2は、両者が一致する場合にはホスト装置1は正規品であると判定し、両者が一致しない場合にはホスト装置1は正規品ではないと判定する。
図2は、本発明の実施の形態に係る半導体記憶装置2の構成を簡略化して示す図である。図2の接続関係で示すように、半導体記憶装置2は、ホストインタフェース11、メモリコントローラ12、RAM等の記憶部13、誤り検出訂正回路14、乱数生成部15、メモリインタフェース16、及びメモリアレイ17を備えて構成されている。メモリアレイ17は、例えば、MLC(Multiple Level Cell)方式のNAND型フラッシュメモリを用いて構成されている。但し、この例に限定されるものではなく、メモリアレイ17は、SLC(Single Level Cell)方式のNAND型フラッシュメモリや、NOR型フラッシュメモリ等を用いて構成されていても良い。
図3は、メモリアレイ17の構成を示す図である。メモリアレイ17は、複数のブロックB1〜BNに分割されており(「N」は例えば4096)、各ブロックには複数のページが含まれている。NAND型フラッシュメモリにおいて、ブロックはデータの消去の最小単位であり、ページはデータの書き込み及び読み出しの最小単位である。
以下、半導体記憶装置2が認証用の乱数を生成してホスト装置1に送信する処理について、図2,3を用いて詳細に説明する。
ホスト装置1は、所定の書き込みコマンドをデータD1として半導体記憶装置2に向けて送信する。書き込みコマンドには、書き込み対象ブロックの論理アドレスと、書き込み対象データとが含まれる。
書き込み対象ブロックとしては、メモリアレイ17が有する全ブロックB1〜BNのうちの複数のブロックが、書き込み対象ブロックの候補として割り当てられている。例えば、読み出しデータに誤りが発生しやすいブロック(但し不良ブロックを除く)が製造時又は実動作において特定され、そのようなブロックが書き込み対象の候補ブロックとして割り当てられる。ホスト装置1は、複数の候補ブロックの中から一のブロックを選択することにより、書き込み対象ブロックを設定する。また、ホスト装置1は、複数の候補ブロックの中から、乱数生成の処理毎に(つまり半導体記憶装置2の電源がオンされて認証が必要になる度に)異なるブロックを選択する。なお、候補ブロックは1個のみ割り当てられていても良い。また、書き込み対象ブロックを候補ブロックに限定するのではなく、ホスト装置1が実動作で使用する任意のブロックを書き込み対象ブロックとして選択しても良い。また、ブロックの選択は、ホスト装置1ではなくメモリコントローラ12が行っても良い。
書き込み対象データとしては、パターンが異なる複数のサンプルデータが予め準備されている。例えば、インクリメントパターンのデータ(012・・・DEF)、デクリメントパターンのデータ(FED・・・210)、千鳥パターンのデータ(5A5A・・・、又はA5A5・・・等)が、サンプルデータとして準備されている。ホスト装置1は、複数のサンプルデータの中から一のデータを選択することにより、書き込み対象データとして設定する。また、ホスト装置1は、複数のサンプルデータの中から、乱数生成の処理毎に異なるデータを選択する。なお、サンプルデータは1個のみ準備されていても良い。また、書き込み対象データをサンプルデータに限定するのではなく、ホスト装置1が実動作で使用する任意のデータを書き込み対象データとして選択しても良い。また、書き込み対象データの選択は、ホスト装置1ではなくメモリコントローラ12が行っても良い。
次にホストインタフェース11は、受信した書き込みコマンドをデータD2としてメモリコントローラ12に入力する。
次にメモリコントローラ12は、書き込みコマンドを解析することにより、書き込み対象ブロックの論理アドレスをデータD3として記憶部13に入力するとともに、書き込み対象データをデータD6として誤り検出訂正回路14に入力する。
記憶部13には、論理アドレスを物理アドレスに変換するためのアドレス変換テーブル(論物変換テーブル)が格納されており、記憶部13は、入力された論理アドレスを、対応する物理アドレスに変換して、データD4としてメモリインタフェース16に入力する。
誤り検出訂正回路14は、入力されたデータD6に基づいて書き込み対象データのシンドロームを算出し、書き込み対象データ及びシンドロームをデータD7としてメモリインタフェース16に入力する。
次にメモリインタフェース16は、書き込み対象ブロックの物理アドレスをデータD5としてメモリアレイ17に入力するとともに、書き込み対象データ及びシンドロームをデータD8としてメモリアレイ17に入力する。これにより、書き込み対象データ及びシンドロームが、メモリアレイ17の書き込み対象ブロックに書き込まれる。
次にホスト装置1は、所定の誤り情報取得コマンドをデータD1として半導体記憶装置2に向けて送信する。誤り情報取得コマンドには、上述した書き込み対象ブロックに等しい読み出し対象ブロックの論理アドレスが含まれる。
次にホストインタフェース11は、受信した誤り情報取得コマンドをデータD2としてメモリコントローラ12に入力する。
次にメモリコントローラ12は、誤り情報取得コマンドを解析することにより、読み出し対象ブロックの論理アドレスをデータD3として記憶部13に入力する。
次に記憶部13は、入力された論理アドレスを、対応する物理アドレスに変換して、データD4としてメモリインタフェース16に入力する。
次にメモリインタフェース16は、読み出し対象ブロックの物理アドレスをデータD5としてメモリアレイ17に入力する。これにより、メモリアレイ17の読み出し対象ブロックに格納されているデータが読み出され、読み出しデータ及びシンドロームがデータD9としてメモリインタフェース16に入力される。
次にメモリインタフェース16は、読み出しデータ及びシンドロームをデータD10として誤り検出訂正回路14に入力する。
次に誤り検出訂正回路14は、シンドロームに基づいて、読み出しデータにおける誤りの発生状況を検出する。具体的に、誤り検出訂正回路14は、読み出しデータにおける符号誤りの発生数(ビット数)をカウントする。また、読み出しデータにおける符号誤りの発生位置(符号誤りが発生しているページアドレス、及び、ページの先頭アドレスから符号誤りが発生しているビットまでのオフセット値等)を特定する。また、読み出しデータにおける誤りの発生態様(符号「0」から符号「1」へのビット化けか、符号「1」から符号「0」へのビット化けか等)を検出する。そして、誤り検出訂正回路14は、これらの読み出しデータに関する誤りの検出結果を示す情報を、データD13として乱数生成部15に入力する。また、誤り検出訂正回路14は、誤りを訂正した後の読み出しデータを、データD11としてメモリコントローラ12に入力する。
次にホスト装置1は、所定の乱数生成コマンドをデータD1として半導体記憶装置2に向けて送信する。
次にホストインタフェース11は、受信した乱数生成コマンドをデータD2としてメモリコントローラ12に入力する。
次にメモリコントローラ12は、乱数を生成させるための所定の制御信号をデータD12として乱数生成部15に入力する。
次に乱数生成部15は、誤り検出訂正回路14から入力されたデータD13に基づいて、乱数を生成する。例えば、データD13に含まれる各種の誤り情報を先頭から順に配列することによって、乱数を生成する。
ここで、読み出しデータにおける誤りの発生数が少ない等の理由により、一つのデータD13に含まれる誤り情報を配列するだけでは必要なビット長(例えば128ビット)に足りない場合には、乱数生成部15は、不足部分に任意のデータ(例えばオール「0」)をパディングすることによって、必要ビット長の乱数を生成する。あるいは、書き込み対象ブロック及び/又は書き込み対象データを更新して上記と同様の処理を繰り返すことによって新たなデータD13を取得し、複数のデータD13に含まれる誤り情報を配列することによって必要ビット長の乱数を生成しても良い。
また、一つのデータD13に含まれる誤り情報が膨大であり、乱数の必要ビット長を超える場合には、乱数生成部15は、超過分を削除することによって必要ビット長の乱数を生成する。あるいは、必要ビット長の相当分の誤り情報と、超過分の誤り情報とを、排他的論理和等によって合成することにより、必要ビット長の乱数を生成しても良い。
乱数生成部15は、生成した乱数をデータD14としてメモリコントローラ12に入力する。
次にメモリコントローラ12は、データD14で示される乱数を暗号化した後、データD15としてホストインタフェース11に入力する。
次にホストインタフェース11は、データD15で示される暗号化された乱数をデータD16としてホスト装置1に向けて送信する。
このように本実施の形態に係る半導体記憶装置2によれば、乱数生成部15は、メモリアレイ17の不安定要素の一つである読み出しデータの誤り発生状況に基づいて、乱数を生成する。メモリアレイ17には、読み出しデータに含まれる誤りの発生状況、後天性不良ブロックの発生状況、先天性不良ブロックの発生状況、データを書き込む際の書き込み所要時間、及びデータを消去する際の消去所要時間等の、様々な不安定要素が存在する。これらの不安定要素は、メモリアレイ17(又は半導体記憶装置2)の個体毎に異なり、また、同一の個体であっても長期的及び短期的な時間の経過等に伴って変動する。本実施の形態に係る半導体記憶装置2によれば、メモリアレイ17の不安定要素の一つである読み出しデータの誤り発生状況に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
また、本実施の形態に係る半導体記憶装置2によれば、誤り検出訂正回路14(誤り検出部)は、メモリアレイ17から読み出した読み出しデータ(第1のデータ)に発生している誤りを検出する。そして、乱数生成部15は、誤り検出訂正回路14から入力された、読み出しデータに関する誤りの検出結果を示す情報(データD13)に基づいて、乱数を生成する。メモリアレイ17から読み出した読み出しデータに発生している誤りの発生状況(発生数、発生位置、及び発生態様等)は、同一の個体であっても完全に一致することはなく、また、時間の経過に伴う変動も顕著である。従って、メモリアレイ17から読み出した読み出しデータに発生している誤りの発生状況に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
また、本実施の形態に係る半導体記憶装置2によれば、メモリコントローラ12(制御部)は、乱数生成用に予め準備された書き込み対象データ(第2のデータ)をメモリアレイ17に書き込む。そして、誤り検出訂正回路14は、メモリコントローラ12によって書き込まれた書き込み対象データを、読み出しデータとしてメモリアレイ17から読み出すことにより、読み出しデータに発生している誤りを検出する。従って、誤りを発生させやすい適切なデータを書き込み対象データとして準備することができ、その結果、生成する乱数の真性度を高めることが可能となる。
また、本実施の形態に係る半導体記憶装置2によれば、パターンが異なる複数の書き込み対象データがサンプルデータとして予め準備されており、メモリコントローラ12は、複数の書き込み対象データの中から乱数生成の処理毎に異なるデータを選択してメモリアレイ17に書き込む。書き込み対象データを異ならせることによって、読み出しデータにおける誤りの発生状況を異ならせることができるため、生成する乱数の真性度を高めることが可能となる。
また、本実施の形態に係る半導体記憶装置2によれば、メモリコントローラ12が書き込み対象データを書き込むための複数の候補ブロックが予め割り当てられており、メモリコントローラ12は、複数の候補ブロックの中から乱数生成の処理毎に異なるブロックを選択して書き込み対象データを書き込む。書き込み対象データを書き込むブロックを異ならせることによって、読み出しデータにおける誤りの発生状況を異ならせることができるため、生成する乱数の真性度を高めることが可能となる。
以下、本発明に係る半導体記憶装置2の様々な変形例について、上記実施の形態との相違点を中心に説明する。後述する変形例は、任意に組み合わせて適用することが可能である。
<第1の変形例>
第1の変形例では、読み出しデータにおける誤りの発生状況に加えて(あるいはそれに代えて)、メモリアレイ17の不安定要素の一つである不良ブロックの発生状況に基づいて乱数を生成する半導体記憶装置2について説明する。また、一以上の不安定要素をシードとして用いて、任意のアルゴリズムによって乱数を生成する半導体記憶装置2について説明する。
図4は、第1の変形例に係る半導体記憶装置2の構成を簡略化して示す図である。記憶部13には、不良ブロックを管理するための不良ブロック管理テーブルが格納されている。不良ブロック管理テーブルには、メモリアレイ17が有するブロックB1〜BNのうちの先天性不良ブロック(製造過程において発生した不良ブロック)の物理アドレスが記述されている。また、不良ブロック管理テーブルには、ブロックB1〜BNのうちの後天性不良ブロック(実動作において発生した不良ブロック)の物理アドレスが記述されている。
各ブロックB1〜BNの所定ページには、そのブロックが先天性不良ブロックであるか否かを示す所定のフラグ情報が記述されている。従って、全ブロックB1〜BNの上記所定ページを順にサーチすることにより、先天性不良ブロックを特定するための情報を含む不良ブロック管理テーブルを作成して記憶部13に格納することができる。以下、具体的に説明する。
ホスト装置1は、先天性不良ブロックの情報取得コマンドをデータD1として半導体記憶装置2に向けて送信する。
次にホストインタフェース11は、受信した情報取得コマンドをデータD2としてメモリコントローラ12に入力する。
次にメモリコントローラ12は、情報取得コマンドを解析することにより、サーチ対象ブロックの論理アドレスをデータD3として記憶部13に入力する。
記憶部13は、入力された論理アドレスを物理アドレスとして、データD4としてメモリインタフェース16に入力する。
次にメモリインタフェース16は、サーチ対象ブロックの物理アドレスをデータD5としてメモリアレイ17に入力する。
次にメモリアレイ17は、サーチ対象ブロック内の上記フラグ情報を確認することにより、サーチ対象ブロックが先天性不良ブロックであるか否かを示す情報をデータD9としてメモリインタフェース16に入力する。
かかる情報は、メモリインタフェース16から、誤り検出訂正回路14、メモリコントローラ12、及びホストインタフェース11をこの順に経由して、ホスト装置1に向けて送信される。ホスト装置1は、全ブロックB1〜BNに関する先天性不良ブロック情報を取得するまで、上記と同様の処理を繰り返し実行する。
次にホスト装置1は、所定の管理テーブル更新コマンドをデータD1として半導体記憶装置2に向けて送信する。管理テーブル更新コマンドには、全ての先天性不良ブロックの物理アドレスが含まれる。
次にホストインタフェース11は、受信した管理テーブル更新コマンドをデータD2としてメモリコントローラ12に入力する。
次にメモリコントローラ12は、管理テーブル更新コマンドを解析することにより、全ての先天性不良ブロックの物理アドレスが記述された不良ブロック管理テーブルを作成する。そして、作成した不良ブロック管理テーブルを記憶部13に格納する。
また、実動作において後天性不良ブロックが発生した場合には、メモリコントローラ12は、その後天性不良ブロックの物理アドレスを追加するように、記憶部13に格納されている不良ブロック管理テーブルを更新する。
メモリアレイ17における不良ブロック(先天性不良ブロック及び後天性不良ブロック)の発生状況を示す不良ブロック情報は、データD20として記憶部13から乱数生成部15に入力される。不良ブロック情報には、不良ブロック数及び不良ブロックの物理アドレスが含まれる。
乱数生成部15は、誤り検出訂正回路14から入力されたデータD13と、記憶部13から入力されたデータD20とに基づいて、乱数を生成する。具体的に乱数生成部15は、データD13及びデータD20をシードとして用いて、擬似乱数生成アルゴリズム、ハッシュ関数、又は共通鍵方式の暗号化アルゴリズム等の任意の乱数生成アルゴリズムによって、ディジタル乱数を生成する。ディジタル乱数を生成するにあたり、乱数生成部15は、データD20を第1パラメータ(初期値)として使用し、データD13を第2パラメータ(データ)として使用する。初期値を使用せずデータのみを使用するアルゴリズムを採用する場合には、乱数生成部15は、データD13,D20の一方をデータとして使用しても良いし、データD13,D20の双方をデータとして使用しても良い。
また、乱数生成部15は、データD13,D20のビット長に制限されることなく、乱数の必要ビット長に応じてビット長を拡張又は圧縮することによって、所望のビット長の乱数を生成することができる。
なお、上記実施の形態と同様に、乱数生成部15は、データD13に含まれる各種の誤り情報と、データD20に含まれる不良ブロック情報とを順に配列することによって、乱数を生成しても良い。
このように第1の変形例に係る半導体記憶装置2によれば、乱数生成部15は、メモリアレイ17の不安定要素の一つである先天性不良ブロックに関する情報に基づいて、乱数を生成する。先天性不良ブロックの発生状況(発生数、発生位置等)は、メモリアレイ17の個体毎に異なる。つまり、先天性不良ブロックに関する不良ブロック情報は、メモリアレイ17の個体差を反映したユニークIDとして使用することができる。従って、先天性不良ブロックの発生状況に基づいて乱数を生成することにより、メモリアレイ17の個体毎に異なる乱数を簡易に生成することが可能となる。
また、第1の変形例に係る半導体記憶装置2によれば、乱数生成部15は、メモリアレイ17の不安定要素の一つである後天性不良ブロックに関する情報に基づいて、乱数を生成する。後天性不良ブロックの発生状況は、メモリアレイ17の個体毎に異なり、また、同一の個体であっても時間の経過に伴って変動する。従って、後天性不良ブロックの発生状況に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
また、第1の変形例に係る半導体記憶装置2によれば、乱数生成部15は、メモリアレイ17の一以上の不安定要素をシードとして用いて、所定のアルゴリズムによって乱数を生成する。従って、生成する乱数の真性度を高めることができるとともに、ビット長等に関して所望の態様の乱数を生成することが可能となる。
<第2の変形例>
第2の変形例では、読み出しデータにおける誤りの発生状況に加えて(あるいはそれに代えて)、メモリアレイ17の不安定要素の一つである書き込み所要時間及び消去所要時間に基づいて乱数を生成する半導体記憶装置2について説明する。
上記実施の形態においてメモリコントローラ12は、書き込み対象ブロックに書き込み対象データを書き込む。その際、書き込み対象ブロックに以前の書き込み対象データ(以下「旧データ」と称す)が書き込まれている場合には、メモリコントローラ12は、その旧データを消去した後に、新たな書き込み対象データを書き込む。ここで、メモリコントローラ12は、書き込み対象ブロックから旧データを消去するために要した時間を計測し、消去所要時間を示すデータD12として乱数生成部15に入力する。また、メモリコントローラ12は、旧データの消去後、書き込み対象ブロックに新たな書き込み対象データを書き込むために要した時間を計測し、書き込み所要時間を示すデータD12として乱数生成部15に入力する。
乱数生成部15は、誤り検出訂正回路14から入力されたデータD13と、メモリコントローラ12から入力されたデータD12とに基づいて、乱数を生成する。例えば、データD13に含まれる各種の誤り情報と、データD12に含まれる消去所要時間及び書き込み所要時間とを順に配列することによって、乱数を生成する。
このように第2の変形例に係る半導体記憶装置2によれば、乱数生成部15は、旧データをメモリアレイ17から消去する際の、不安定要素としての消去所要時間に基づいて、乱数を生成する。旧データをメモリアレイ17から消去する際の所要時間は、同一の個体であっても、データの内容や消去対象ブロックの劣化度合い等に応じて変動する。従って、誤りの発生状況のみならず消去所要時間をも加味して乱数を生成することにより、生成する乱数の真性度を高めることが可能となる。
また、第2の変形例に係る半導体記憶装置2によれば、乱数生成部15は、メモリコントローラ12が書き込み対象データをメモリアレイ17に書き込む際の、不安定要素としての書き込み所要時間に基づいて、乱数を生成する。書き込み対象データをメモリアレイ17に書き込む際の所要時間は、同一の個体であっても、データの内容や書き込み対象ブロックの劣化度合い等に応じて変動する。従って、誤りの発生状況のみならず書き込み所要時間をも加味して乱数を生成することにより、生成する乱数の真性度を高めることが可能となる。
<第3の変形例>
上記実施の形態では、乱数生成部15は、誤り検出訂正回路14から入力された誤りの検出結果を示す情報(データD13)に基づいて乱数を生成した。これに代えて乱数生成部15は、メモリアレイ17から読み出された読み出しデータそのものに基づいて、乱数を生成しても良い。
図5は、第3の変形例に係る半導体記憶装置2の構成を簡略化して示す図である。メモリインタフェース16は、読み出し対象ブロックの物理アドレスをデータD5としてメモリアレイ17に入力する。これにより、メモリアレイ17の読み出し対象ブロックに格納されているデータが読み出され、読み出しデータ及びシンドロームがデータD9としてメモリインタフェース16に入力される。
次にメモリインタフェース16は、読み出しデータをデータD10として乱数生成部15に入力する。乱数生成部15は、メモリインタフェース16から入力されたデータD10に基づいて、乱数を生成する。
このように第3の変形例に係る半導体記憶装置2によれば、乱数生成部15は、メモリアレイ17から読み出した読み出しデータ(データD10)に基づいて乱数を生成する。メモリアレイから読み出した読み出しデータに発生している誤りの発生状況(発生数、発生位置、及び発生態様等)は、同一の個体であっても完全に一致することはなく、また、時間の経過に伴う変動も顕著である。従って、メモリアレイ17から読み出した、誤りが発生している読み出しデータに基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
2 半導体記憶装置
12 メモリコントローラ
13 記憶部
14 誤り検出訂正回路
15 乱数生成部
17 メモリアレイ

Claims (10)

  1. メモリアレイと、
    前記メモリアレイの不安定要素に基づいて乱数を生成する乱数生成部と、
    前記メモリアレイから読み出した第1のデータに発生している不安定要素としての誤りの、発生数、発生位置、及び発生態様の少なくとも一つを含む、誤りの発生状況を検出する誤り検出部と、
    を備え、
    前記乱数生成部は、前記誤り検出部から入力された、前記第1のデータにおける誤りの発生状況を示す情報に基づいて、乱数を生成する、半導体記憶装置。
  2. 乱数生成用に予め準備された第2のデータを前記メモリアレイに書き込む制御部をさらに備え、
    前記誤り検出部は、前記制御部によって書き込まれた前記第2データを、前記第1のデータとして前記メモリアレイから読み出す、請求項1に記載の半導体記憶装置。
  3. パターンが異なる複数の前記第2のデータが予め準備されており、
    前記制御部は、複数の前記第2のデータの中から乱数生成の処理毎に異なる前記第2のデータを選択して前記メモリアレイに書き込む、請求項2に記載の半導体記憶装置。
  4. 前記メモリアレイは、前記第2のデータを書き込むための複数のブロックを有し、
    前記制御部は、前記複数のブロックの中から乱数生成の処理毎に異なるブロックを選択して前記第2のデータを書き込む、請求項2又は3に記載の半導体記憶装置。
  5. 前記乱数生成部はさらに、前記制御部が前記第2のデータを前記メモリアレイに書き込む際の、不安定要素としての書き込み所要時間に基づいて、乱数を生成する、請求項2〜4のいずれか一つに記載の半導体記憶装置。
  6. 前記乱数生成部はさらに、前記第2のデータを前記メモリアレイから消去する際の、不安定要素としての消去所要時間に基づいて、乱数を生成する、請求項2〜5のいずれか一つに記載の半導体記憶装置。
  7. 前記メモリアレイは複数のブロックを有し、
    前記複数のブロックに含まれる後天性不良ブロックに関する情報を記憶する記憶部をさらに備え、
    前記乱数生成部は、前記記憶部から入力された、不安定要素としての後天性不良ブロックに関する情報に基づいて、乱数を生成する、請求項1〜6のいずれか一つに記載の半導体記憶装置。
  8. 前記メモリアレイは複数のブロックを有し、
    前記複数のブロックに含まれる先天性不良ブロックに関する情報を記憶する記憶部をさらに備え、
    前記乱数生成部は、前記記憶部から入力された、不安定要素としての先天性不良ブロックに関する情報に基づいて、乱数を生成する、請求項1〜7のいずれか一つに記載の半導体記憶装置。
  9. 前記乱数生成部は、前記メモリアレイの一以上の不安定要素をシードとして用いて、所定のアルゴリズムによって乱数を生成する、請求項1〜8のいずれか一つに記載の半導体記憶装置。
  10. 複数のブロックを有するメモリアレイと、
    前記メモリアレイから読み出したデータに発生している誤りを検出する誤り検出部と、
    前記複数のブロックに含まれる不良ブロックに関する情報を記憶する記憶部と、
    乱数生成部と、
    を備え、
    前記乱数生成部は、前記記憶部から入力された、不良ブロックに関する情報を第1パラメータとして用い、前記誤り検出部から入力された、前記データに関する誤りの検出結果を示す情報を第2パラメータとして用いて、所定のアルゴリズムによって乱数を生成する、半導体記憶装置。
JP2013012357A 2013-01-25 2013-01-25 半導体記憶装置 Expired - Fee Related JP6103958B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013012357A JP6103958B2 (ja) 2013-01-25 2013-01-25 半導体記憶装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013012357A JP6103958B2 (ja) 2013-01-25 2013-01-25 半導体記憶装置

Publications (2)

Publication Number Publication Date
JP2014142891A JP2014142891A (ja) 2014-08-07
JP6103958B2 true JP6103958B2 (ja) 2017-03-29

Family

ID=51424102

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013012357A Expired - Fee Related JP6103958B2 (ja) 2013-01-25 2013-01-25 半導体記憶装置

Country Status (1)

Country Link
JP (1) JP6103958B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11080020B2 (en) 2019-04-26 2021-08-03 Megachips Corporation Information processing device and random number generating method

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016085337A (ja) * 2014-10-24 2016-05-19 株式会社メガチップス 半導体装置、半導体記憶装置、及び半導体装置の信頼性テスト方法
JP6453610B2 (ja) * 2014-10-24 2019-01-16 株式会社メガチップス 記憶装置、及び記憶装置の信頼性テスト方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004011170B4 (de) * 2004-03-08 2006-03-23 Siemens Ag Manipulationssichere Erzeugung von echten Zufallszahlen
KR101374427B1 (ko) * 2008-05-23 2014-03-17 에이저 시스템즈 엘엘시 보안 난수 생성기
KR101614950B1 (ko) * 2010-04-12 2016-04-25 삼성전자주식회사 저장 장치에 물리적 식별자를 생성하는 방법 및 기계로 읽을 수 있는 저장 매체
JP5813380B2 (ja) * 2011-06-03 2015-11-17 株式会社東芝 半導体記憶装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11080020B2 (en) 2019-04-26 2021-08-03 Megachips Corporation Information processing device and random number generating method

Also Published As

Publication number Publication date
JP2014142891A (ja) 2014-08-07

Similar Documents

Publication Publication Date Title
US9646178B2 (en) Secure data storage based on physically unclonable functions
US11416417B2 (en) Method and apparatus to generate zero content over garbage data when encryption parameters are changed
US9136010B2 (en) Method for generating physical identifier in storage device and machine-readable storage medium
US9933958B2 (en) Data storage device and data maintenance method thereof
CN104573572B (zh) 加密读写芯片标识符的方法
US20130080787A1 (en) Memory storage apparatus, memory controller and password verification method
TW201633314A (zh) 記憶體控制電路單元、記憶體儲存裝置及資料存取方法
JP6103958B2 (ja) 半導体記憶装置
CN102971984B (zh) 认证存储设备的方法和主机设备
US20190377693A1 (en) Method to generate pattern data over garbage data when encryption parameters are changed
JP2015061201A (ja) 個体識別装置、記憶装置、個体識別システム、その方法、およびプログラム
CN103338107B (zh) 密钥生成方法及密钥生成装置
CA2570401A1 (en) System and method for testing a data storage device without revealing memory content
CN104573754B (zh) 芯片标识符读写方法
US7663920B2 (en) Memory system and data reading and generating method
JP6453610B2 (ja) 記憶装置、及び記憶装置の信頼性テスト方法
JP2016085337A (ja) 半導体装置、半導体記憶装置、及び半導体装置の信頼性テスト方法
JP2020052181A (ja) マイクロコンピュータ
JP2010140155A (ja) フラッシュディスク装置
JP2019215945A (ja) メモリ制御装置、情報処理装置、及びメモリ制御方法
US20070033452A1 (en) Method and circuit arrangement for detecting errors in a data record

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151228

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161129

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170209

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170228

R150 Certificate of patent or registration of utility model

Ref document number: 6103958

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees