JP2011134125A - コントローラ及びデータストレージシステム - Google Patents
コントローラ及びデータストレージシステム Download PDFInfo
- Publication number
- JP2011134125A JP2011134125A JP2009293270A JP2009293270A JP2011134125A JP 2011134125 A JP2011134125 A JP 2011134125A JP 2009293270 A JP2009293270 A JP 2009293270A JP 2009293270 A JP2009293270 A JP 2009293270A JP 2011134125 A JP2011134125 A JP 2011134125A
- Authority
- JP
- Japan
- Prior art keywords
- data
- controller
- scramble
- random number
- circuit
- 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.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/73—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2129—Authenticate client device independently of the user
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/34—Encoding or coding, e.g. Huffman coding or error correction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Read Only Memory (AREA)
Abstract
【課題】情報の漏洩を防止可能なコントローラ及びデータストレージシステムを提供すること。
【解決手段】データを保持可能な記憶装置10、60を制御するコントローラ20、50であって、前記コントローラ20、50の有する識別情報に基づいて擬似乱数を生成する擬似乱数発生回路31と、前記擬似乱数を用いて、記憶装置10、60への書き込みデータをスクランブルするスクランブル回路32とを具備する。
【選択図】図8
【解決手段】データを保持可能な記憶装置10、60を制御するコントローラ20、50であって、前記コントローラ20、50の有する識別情報に基づいて擬似乱数を生成する擬似乱数発生回路31と、前記擬似乱数を用いて、記憶装置10、60への書き込みデータをスクランブルするスクランブル回路32とを具備する。
【選択図】図8
Description
本発明は、コントローラ及びデータストレージシステムに関する。
近年、携帯電話やパーソナルコンピュータでは、データを暗号化して記憶媒体に書き込むことにより、情報の流出を防止する手法が取られている。また暗号化の一例としては、擬似乱数を用いる方法がある。疑似乱数は、ある初期値(以下、シード値と呼ぶ)を元にして生成される。そして、このシード値に基づいて生成された擬似乱数を用いて、データが暗号化される(特許文献1参照)。
しかし上記従来の方法においては、シード値は、記憶媒体を制御するコントローラ毎、またはファームウェアのバージョン毎に共通化していることがある。この場合、第三者がある製品についてシード値を一旦把握すると、同一型番の製品の全てについての暗号化データを解読出来き、情報の流出につながるというおそれがあった。
本発明は、情報の漏洩を防止可能なコントローラ及びデータストレージシステムを提供する。
この発明の一態様に係るコントローラは、ホスト機器に接続可能とされ、データを保持可能な記憶装置を制御するコントローラであって、前記コントローラの有する識別情報に基づいて擬似乱数を生成する擬似乱数発生回路と、前記ホスト機器から受信したデータを、前記擬似乱数を用いてスクランブルするスクランブル回路とを具備する。
また、この発明の一態様に係るデータストレージシステムは、データを保持可能な記憶装置と、前記記憶装置を制御可能なコントローラとを備え、前記コントローラは、前記コントローラの有する識別情報に基づいて擬似乱数を生成する擬似乱数発生回路と、前記擬似乱数を用いて、記憶装置への書き込みデータをスクランブルするスクランブル回路とを具備する。
本発明によれば、情報の漏洩を防止可能なコントローラ及びデータストレージシステムを提供できる。
以下、この発明の実施形態につき図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
[第1の実施形態]
<メモリシステムの全体構成について>
この発明の第1の実施形態に係るコントローラ及びデータストレージシステムについて、図1を用いて説明する。図1は、本実施形態に係るコントローラ及びデータストレージシステムのブロック図であり、SDTMメモリカード(以下、単にメモリカード2と呼ぶ)をデータストレージシステムを一例として用いた構成について示している。メモリカード2は、その内部にNAND型フラッシュメモリ10及びこのNAND型フラッシュメモリを制御するコントローラ20を備える。メモリカード2は、ホスト機器1と接続可能で、ホスト機器1からNAND型フラッシュメモリへのデータ書き込み及び消去や、NAND型フラッシュメモリからホスト機器1へのデータの読み出しを行えるようになっている。
<メモリシステムの全体構成について>
この発明の第1の実施形態に係るコントローラ及びデータストレージシステムについて、図1を用いて説明する。図1は、本実施形態に係るコントローラ及びデータストレージシステムのブロック図であり、SDTMメモリカード(以下、単にメモリカード2と呼ぶ)をデータストレージシステムを一例として用いた構成について示している。メモリカード2は、その内部にNAND型フラッシュメモリ10及びこのNAND型フラッシュメモリを制御するコントローラ20を備える。メモリカード2は、ホスト機器1と接続可能で、ホスト機器1からNAND型フラッシュメモリへのデータ書き込み及び消去や、NAND型フラッシュメモリからホスト機器1へのデータの読み出しを行えるようになっている。
ホスト機器1は、ホストバスインタフェース(以下、単にホストバスと呼ぶことがある)5を介して接続されるメモリカード2に対しアクセスを行うためのハードウェアおよびソフトウェアを備えている。
メモリカード2は、NAND型フラッシュメモリと、それを制御するコントローラを含む。またホスト機器1に接続された時に電源供給を受けて動作し、ホスト機器1からのアクセスに応じた処理を行う。メモリカード2は、例えばNAND型フラッシュメモリを備え、ホスト機器1の要求に従ってデータを保存し、また保存したデータを読み出してホスト機器1に出力する。以下、メモリカード2の構成の詳細について説明する。
<メモリカード2の構成について>
図1に示すようにメモリカード2は、ホスト機器1とホストバスインタフェース5を介して情報の授受を行う。メモリカード2は、NAND型フラッシュメモリチップ(単にNAND型フラッシュメモリ、またはフラッシュメモリと呼ぶことがある)10、フラッシュメモリチップ10を制御するコントローラ20、および複数の信号ピン(第1ピン乃至第9ピン)を備えている。
図1に示すようにメモリカード2は、ホスト機器1とホストバスインタフェース5を介して情報の授受を行う。メモリカード2は、NAND型フラッシュメモリチップ(単にNAND型フラッシュメモリ、またはフラッシュメモリと呼ぶことがある)10、フラッシュメモリチップ10を制御するコントローラ20、および複数の信号ピン(第1ピン乃至第9ピン)を備えている。
複数の信号ピンは、コントローラ20と電気的に接続されている。第1ピン乃至第9ピンに対する信号の割り当ては、例えば図2に示すようになっている。図2は、第1ピン乃至第9ピンと、それらに割り当てられた信号とを示す表である。
データ0乃至データ3は、第7ピン、第8ピン、第9ピン、および第1ピンにそれぞれ割り当てられている。第1ピンは、また、カード検出信号に対しても割り当てられている。さらに、第2ピンはコマンドに割り当てられ、第3ピンおよび第6ピンは接地電位Vssに、第4ピンは電源電位Vddに、第5ピンはクロック信号に割り当てられている。
また、メモリカード2は、ホスト機器1に設けられたスロットに対して挿抜可能なように形成されている。ホスト機器1に設けられたホストコントローラ(図示せず)は、これら第1ピン乃至第9ピンを介してメモリカード2内のコントローラ20と各種信号およびデータを通信する。例えば、メモリカード2にデータが書き込まれる際には、ホストコントローラは、書き込みコマンドを、第2ピンを介してコントローラ20にシリアルな信号として送出する。このとき、コントローラ20は、第5ピンに供給されているクロック信号に応答して、第2ピンに与えられる書き込みコマンドを取り込む。
ここで、前述したように、書き込みコマンドは、第2ピンのみを利用してコントローラ20にシリアルに入力される。コマンドの入力に割り当てられている第2ピンは、図2に示すように、データ3用の第1ピンと接地電位Vss用の第3ピンとの間に配置されている。複数の信号ピンとそれに対するホストバスインタフェース5は、ホスト機器1内のホストコントローラとメモリカード2とが通信するのに使用される。
これに対し、フラッシュメモリ10とコントローラ20との間の通信は、後述するNAND型フラッシュメモリ用のNANDバスインタフェース(以下、単にNANDバスと呼ぶことがある)21によって行われる。したがって、ここでは図示しないが、フラッシュメモリ10とコントローラ20とは例えば8ビットの入出力(I/O)線により接続されている。
例えば、コントローラ20がフラッシュメモリ10にデータを書き込む際には、コントローラ20は、これらI/O線を介してデータ入力コマンド80H、カラムアドレス、ページアドレス、データ、およびプログラムコマンド10H(或いはキャッシュプログラムコマンド15H)をフラッシュメモリ10に順次入力する。ここで、コマンド80Hの“H”は16進数を示すものであり、実際には“10000000”という8ビットの信号が、8ビットのI/O線にパラレルに与えられる。つまり、このNANDバスインタフェース21では、複数ビットのコマンドがパラレルに与えられる。
また、NANDバスインタフェース21では、フラッシュメモリ10に対するコマンドとデータが同じI/O線を共用して通信されている。このように、ホスト機器1内のホストコントローラとメモリカード2とが通信するインタフェース(ホストバス5)と、フラッシュメモリ10とコントローラ20とが通信するインタフェース(NANDバス21)とは異なる。
次に、メモリカード2に含まれるNAND型フラッシュメモリ10及びコントローラ20の構成の詳細について説明する。
<NANDフラッシュメモリ10の構成について>
まずNAND型フラッシュメモリ10について、図3を用いて説明する。図3は、NAND型フラッシュメモリ10のブロック図である。
まずNAND型フラッシュメモリ10について、図3を用いて説明する。図3は、NAND型フラッシュメモリ10のブロック図である。
図示するようにNAND型フラッシュメモリ10は、メモリセルアレイ11、ロウデコーダ12、ページバッファ13、電圧発生回路14、I/Oバッファ15、及び制御部16を備える。これらは、同一の半導体基板上に集積形成されている。
メモリセルアレイ11は、複数のメモリセルトランジスタを備え、データを記憶する。メモリセルアレイ11の構成について、図4を用いて説明する。図4はメモリセルアレイ11の回路図である。
図示するようにメモリセルアレイ11は、複数のブロックBLK(BLK0〜BLKm(mは1以上の自然数))を備え、該ブロックBLK0〜BLKmの各々は、複数のNANDストリング6を備えている。NANDストリング6の各々は、例えば64個のメモリセルトランジスタMTと、選択トランジスタST1、ST2とを含んでいる。メモリセルトランジスタMTは、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層(例えば浮遊ゲート)と、電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲートとを有する積層ゲートを備えた、nチャネルMOSトランジスタである。なお、メモリセルトランジスタMTは、電荷蓄積層が絶縁物で形成されたMONOS構造を備えていても良い。またNANDストリング6内のメモリセルトランジスタMTの個数は64個に限られず、8個、16個、32個、128個、または256個等であってもよく、その数は限定されるものではない。NANDストリング6内においてメモリセルトランジスタMTは、隣接するもの同士でソース、ドレインを共有している。そして、選択トランジスタST1、ST2間に、その電流経路が直列接続されるようにして配置されている。直列接続されたメモリセルトランジスタMTの一端側のドレイン領域は選択トランジスタST1のソース領域に接続され、他端側のソース領域は選択トランジスタST2のドレイン領域に接続されている。
同一行にあるメモリセルトランジスタMTの制御ゲートは、ワード線WL(WL0〜WL63)のいずれかに共通接続され、同一行にあるメモリセルトランジスタMTの選択トランジスタST1、ST2のゲート電極は、それぞれセレクトゲート線SGD、SGSに共通接続されている。また、メモリセルアレイ11において同一列にある選択トランジスタST1のドレインは、いずれかのビット線BL(BL0〜BLn(nは2以上の自然数))に共通接続される。選択トランジスタST2のソースはソース線SLに共通接続される。
同一のワード線WLに接続された複数のメモリセルトランジスタMTには一括してデータが書き込まれ、この単位をページと呼ぶ。更に、データの消去はブロックBLK単位で行われる。
上記メモリセルトランジスタMTは、電荷蓄積層に注入された電荷量に応じて、例えば4種類の閾値電圧を有し、これによって4種類のデータを記憶可能とされている。図5は、メモリセルトランジスタMTの閾値分布を示すグラフである。
図示するようにメモリセルトランジスタMTは、閾値電圧の低い順に、“0”、“1”、“2”、“3”データを保持可能である。例えば“0”データを保持するメモリセルトランジスタMTの閾値電圧Vth0は、Vth0<V01である。“1”データを保持するメモリセルトランジスタMTの閾値電圧Vth1は、V01<Vth1<V12である。“2”データを保持するメモリセルトランジスタMTの閾値電圧Vth2は、V12<Vth2<V23である。“3”データを保持するメモリセルトランジスタMTの閾値電圧Vth3は、V23<Vth3である。そして、例えばV01=0Vである。
図3に戻って説明を続ける。ロウデコーダ12は、データの書き込み動作時、読み出し動作時、及び消去時において、I/Oバッファ15を介してコントローラ20から与えられたロウアドレスに基づいて、メモリセルアレイ11のロウ方向を選択する。より具体的には、ロウデコーダ12はワード線WL及びセレクトゲート線SGD、SGSを選択する。そしてロウデコーダ11は、選択ワード線WL、非選択ワード線WL、及びセレクトゲート線SGD、SGSに、適切な電圧を転送する。
ページバッファ13は、データの書き込み時には、書き込みデータをビット線BLに転送する。これにより、選択ワード線WLに接続されたメモリセルトランジスタMTに対してデータを書き込む。またデータの読み出し時には、ビット線BLに読み出されたデータをセンス・増幅し、その結果をI/Oバッファ15に出力する。
電圧発生回路14は、制御部16の制御に従って、データの書き込み動作、消去動作、及び読み出し動作に必要な電圧を発生し、ロウデコーダ12に供給する。ロウデコーダ12は、電圧発生回路14から与えられた電圧を、選択ワード線WL、非選択ワード線WL、セレクトゲート線SGD、SGS、及びメモリセルアレイ11が形成されたウェル領域に印加する。
I/Oバッファ15は、データの書き込み時には、コントローラ20から供給された書き込みデータ、アドレス、及び書き込みコマンドを、一時的に保持する。そして、アドレスをロウデコーダ12へ転送し、アドレス及び書き込みコマンドを制御部16に転送し、書き込みデータをページバッファ13へ転送する。またデータの読み出し時には、書き込み時と同様にアドレス及び読み出しコマンドを受信する。そしてアドレス及び読み出しコマンドを制御部16に転送し、またアドレスをロウデコーダ12に転送する。そして、ページバッファ13から受け取った読み出しデータをコントローラ20へ出力する。
次に制御部16について説明する。制御部16は、NAND型フラッシュメモリ10全体の動作を制御する。すなわち、コントローラ20から与えられた上記アドレス及びコマンドに基づいて、データの書き込み動作、読み出し動作、及び消去動作必要なシーケンスを実行する。
<コントローラ20の構成について>
次にコントローラ20について、図3を参照して説明する。コントローラ20は、ホスト機器1の命令に従って、NAND型フラッシュメモリ10の動作を制御する。より具体的には、NAND型フラッシュメモリ10に対するデータの書き込み、読み出し、消去動作を制御し、また読み出しデータについてのエラー訂正や、書き込みデータについてのパリティの生成等も行う。そのためコントローラ20は、例えば上記NANDフラッシュメモリ10の物理状態(例えば、何処の物理ブロックアドレスに、何番目の論理セクタアドレスデータが含まれているか、あるいは、何処のブロックが消去状態であるか)を管理する。
次にコントローラ20について、図3を参照して説明する。コントローラ20は、ホスト機器1の命令に従って、NAND型フラッシュメモリ10の動作を制御する。より具体的には、NAND型フラッシュメモリ10に対するデータの書き込み、読み出し、消去動作を制御し、また読み出しデータについてのエラー訂正や、書き込みデータについてのパリティの生成等も行う。そのためコントローラ20は、例えば上記NANDフラッシュメモリ10の物理状態(例えば、何処の物理ブロックアドレスに、何番目の論理セクタアドレスデータが含まれているか、あるいは、何処のブロックが消去状態であるか)を管理する。
図3に示すようにコントローラ20は、SDインタフェース21、MPU(micro processing unit)22、ROM(read only memory)23、RAM(random access memory)24、NANDインタフェース25、ECC回路26、レジスタ27、エンコーダ28、及びヒューズブロック29を含んでいる。これらは、同一の半導体基板上に集積形成される。NAND型フラッシュメモリ10とコントローラ20は、同一の半導体基板上に形成されても良いし、別々の半導体基板上に形成されても良い。本実施形態は、両者がそれぞれ別の半導体基板上に形成される場合を例に説明する。
SDインタフェース21は、コントローラ20とホスト機器1との間のインタフェース処理を行う。SDインタフェース21は、ホスト機器1から、例えばSDコマンド、アドレス、及び書き込みデータ等を受信する。そしてSDインタフェース21は、受信したSDコマンドをMPU22に転送し、またアドレス及び書き込みデータを例えばRAM24に格納する。更に、ホスト機器1に対して出力すべきデータを、MPU22の命令に従って出力する。
MPU22は、メモリカード2全体の動作を制御する。MPU22は、例えばメモリカード2が電源供給を受けたときに、ROM23に格納されているファームウェア(制御プログラム)をRAM24上に読み出して所定の処理を実行することにより、各種のテーブルをRAM24上に作成する。また、MPU22は、ホスト機器1から書き込みコマンド、読み出しコマンド、消去コマンドを受け取り、NAND型フラッシュメモリ10に対して所定の処理を実行する。さらに、MPU22は、エンコーダ28を制御して、書き込みデータのスクランブルを行う。書き込みデータのスクランブルについては、後に詳述する。
ROM23は、MPU22により制御される制御プログラム等を格納する。
RAM24は、MPU22の作業エリアとして使用され、制御プログラムや各種のテーブル(表)を記憶する。
NANDインタフェース25は、メモリントローラ20とNAND型フラッシュメモリ10との間のインタフェース処理を行う。すなわちNANDインタフェース25はMPU22の命令に従って、MPU22によって発行された命令(書き込み命令、読み出し命令、消去命令等)、アドレス、書き込みデータ等をNAND型フラッシュメモリ10へ出力する。またNAND型フラッシュメモリ10から供給される読み出しデータを受信し、RAM24に格納する。
ECC回路26は、データのエラー訂正を行う。より具体的にはECC回路26は、読み出したページデータにつき、エラーの検出を行い、エラーが検出された場合にはエラー訂正を行う。またデータの書き込み時には、エラー訂正に必要なパリティを生成する。
レジスタ27は、CSR、CID、RCA、DSR、CSD、SCR、OCR等各種レジスタを有する。レジスタ27の具体的な構成について図6を用いて説明する。図示するように、CSR(card status register)は、通常動作において使用され、例えばエラー情報が記憶される。CID、RCA、DSR、CSD、SCR、OCRは、主にメモリカード2の初期化時に使用される。CID(card identification number)には、メモリカード2の個体番号が記憶される。RCA(relative card address)には、相対カードアドレスが記憶される。DSR(driver stage register)には、メモリカード2のバス駆動力等が記憶される。CSD(card specific data)には、メモリカード2の特性パラメータ値が記憶される。SCR(SD configuration data register)には、メモリカード2のデータ配置が記憶される。OCR(operation condition resister)には、メモリカード2の動作範囲電圧に制限のある場合、動作電圧が記憶される。
ヒューズブロック29は、複数のヒューズ素子を備えており、複数ビット(例えば8ビット)のデータを保持可能とされる。ヒューズブロック29のヒューズ素子は、コントローラ20固有の情報を保持する。言い換えれば、当該コントローラ20を搭載されたSDメモリカード2に固有の値、つまりメモリカード製品固有の値を保持する。
より具体的には、ヒューズブロック29のヒューズ素子内に保持される値は、コントローラ20が形成される半導体基板の、半導体ウェハ中における位置情報であっても良い。または、当該メモリカード2についての製品コード、ロット番号、またはウェハ番号であっても良いし、またこれらの組み合わせであっても良い。
半導体基板の半導体ウェハ中における位置情報について、図7を用いて説明する。図7は、コントローラ20の製造過程における半導体ウェハの外観図であり、半導体ウェハのXY座標を図示したものである。
図示するように、コントローラ20は、半導体ウェハの状態において、半導体基板上に形成され、その後、ダイシング工程によって半導体ウェハから切り出され、個々のチップとなる。上記位置情報とは、この切り出されたチップが、半導体ウェハ中において、どの位置にあったものであるか、ということを示す情報である。
例えば図7に示すように、あるコントローラ20が形成されたチップは、ウェハ状態では、斜線で示した領域にあったと仮定する。すると、当該チップの半導体ウェハ内における位置は、X=“5”、Y=“1”である。従ってヒューズブロック29内のヒューズ素子には、X=“00000101”、Y=“00000001”なる情報が書き込まれる(2進数表示)。
勿論、XY座標だけでなく、先述した製品コード、ロット番号、ウェハ番号が書き込まれても良いし、またはこれらの情報に基づいて生成した新たな情報が書き込まれても良い。これらの、コントローラ20固有の情報を、以下ではチップ識別情報と呼ぶことがある。
次に、エンコーダ28について説明する。エンコーダ28は、データの書き込み時において、書き込みデータをスクランブルする。そしてエンコーダ28でスクランブルされたデータが、NAND型フラッシュメモリ10に書き込まれる。図8はエンコーダ28のブロック図である。
図示するようにエンコーダ28は、レジスタ30、疑似乱数発生回路31、及びスクランブル回路32を備えている。レジスタ30は、ヒューズブロック29から読み出された情報を保持する。この情報は、例えば8ビットである。
疑似乱数発生回路31は、レジスタ30に保持される値をシード(seed)値として、疑似乱数を発生する。疑似乱数発生回路31の構成は特に限定されるものでは無いが、例えばリニアフィードバックシフトレジスタを用いることが出来る。疑似乱数発生回路31は、例えばMPU22の命令に従って疑似乱数の発生を行う。なお、シード値が例えば“00000000”であった場合、疑似乱数発生回路31は擬似乱数を発生させることが出来ない場合がある。この場合には、擬似乱数発生回路31は入力されたシード値を、例えば“11111111”に変換した後、この変換した値をシード値に用いて擬似乱数を発生させてもよい。
スクランブル回路32は、データの書き込み時において、RAM24から読み出した書き込みデータを、疑似乱数発生回路31で発生された疑似乱数に基づいてスクランブルする。より具体的には、例えば8ビットの書き込みデータと、8ビットの疑似乱数との排他的論理和(XOR)演算を行う。そして演算結果をスクランブルデータとして、RAM24に格納する。
スクランブル回路32によって、データは図9に示すようにスクランブルされる(スクランブルされたデータをスクランブルデータと呼ぶ)。図9は、疑似乱数によって取り得る書き込みデータのスクランブルパターンを示す表である。
図示するように、パターン0が選択された際には、書き込みデータの上位ビット及び下位ビットは正転される。つまり、スクランブルデータは、スクランブル回路32に入力された書き込みデータと同じである。パターン1が選択された際には、上位ビットのみが反転される。つまり書き込みデータが“00”であれば、スクランブルデータは“10”となる。パターン2が選択された際には、下位ビットのみが反転される。つまり書き込みデータが“00”であれば、スクランブルデータは“01”となる。パターン3が選択された際には、上位ビット及び下位ビットの両方が反転される。つまり書き込みデータが“00”であれば、スクランブルデータは“11”となる。いずれのパターンが選択されるかは、疑似乱数発生回路31で生成された疑似乱数、つまりレジスタ30に保持されるシード値によって決定される。
<データの書き込み動作について>
次に、ホスト機器1からの書き込みデータをNAND型フラッシュメモリ10に書き込む際のコントローラ20の動作について説明する。
次に、ホスト機器1からの書き込みデータをNAND型フラッシュメモリ10に書き込む際のコントローラ20の動作について説明する。
まずホスト機器1から、書き込みコマンド、書き込みデータ、及びアドレスが、SDインタフェース21で受信される。SDインタフェース21は、書き込みコマンドをMPU22に供給すると共に、書き込みデータとアドレスをRAM24に格納する。
書き込みコマンドを受信したMPU22は、RAM24から書き込みデータを読み出してエンコーダ28に供給すると共に、エンコーダ28に対して疑似乱数の発生と書き込みデータのスクランブルを命令する。するとエンコーダ28は、レジスタ30に保持されるシード値に基づいて疑似乱数を発生する。またスクランブル回路32は、疑似乱数発生回路31によって発生された疑似乱数を用いて書き込みデータをスクランブルする。そしてスクランブルデータをRAM24に格納する。
引き続きMPU22は、NAND型フラッシュメモリ10に対する書き込みコマンドを発行し、この書き込みコマンドと、RAM24内のスクランブルデータと、アドレスとを、NANDインタフェース25を介してNAND型フラッシュメモリ10に出力する。
<本実施形態に係る効果>
疑似乱数発生回路で用いられるシード値は、製品毎やファームウェア毎に共通の値である場合第三者がある1つの製品について何らかの方法でシード値を知得が出来れば、同じ型番の他の製品についてもデータの解読が可能となる可能性がある。
疑似乱数発生回路で用いられるシード値は、製品毎やファームウェア毎に共通の値である場合第三者がある1つの製品について何らかの方法でシード値を知得が出来れば、同じ型番の他の製品についてもデータの解読が可能となる可能性がある。
しかし、本実施形態に係る構成であると、シード値は、各コントローラ20に固有の値例えば、コントローラチップの製造時の半導体ウェハ中の位置情報等が用いられる。つまり、シード値はコントローラ20毎のレジスタが個々に有する情報を用いるので、型番が同じであっても個々製品毎にスクランブルパターンは異なるこのことから、型番が同じ製品であっても、データスクランブル時に用いる疑似乱数が異なり、ある1つの製品についてのシード値が知得されたとしても、同じ型番の他の製品について解読されることを防止出来る。
このようなデータスクランブルによる暗号化処理は、データを記憶するメモリ領域を分散する効果もあるので、NAND型などのフラッシュメモリが微細化とともに生じる隣接メモリセルからの影響によりプログラムディスターブ等の影響を低減する、という側面も有する。
[第2の実施形態]
次に、この発明の第2の実施形態に係るコントローラ及びデータストレージシステムについて説明する。本実施形態は、例えばパーソナルコンピュータなどに搭載されたハードディスク(HDD)へデータの書き込みを行う際、そのデータに暗号化処理を実行するコントローラ及びデータストレージシステムに関する。そして、暗号化処理に用いる疑似乱数を、第1の実施形態と同様にコントローラ固有の値をシードに用いて生成するものである。
次に、この発明の第2の実施形態に係るコントローラ及びデータストレージシステムについて説明する。本実施形態は、例えばパーソナルコンピュータなどに搭載されたハードディスク(HDD)へデータの書き込みを行う際、そのデータに暗号化処理を実行するコントローラ及びデータストレージシステムに関する。そして、暗号化処理に用いる疑似乱数を、第1の実施形態と同様にコントローラ固有の値をシードに用いて生成するものである。
<HDD装置40の全体構成について>
図10は、本実施形態に係るHDD装置40のブロック図である。図示するようにHDD装置40は、コントローラ50及び磁気ディスク60を備えている。
図10は、本実施形態に係るHDD装置40のブロック図である。図示するようにHDD装置40は、コントローラ50及び磁気ディスク60を備えている。
<磁気ディスク60の構成について>
磁気ディスク60は、データを記録する。磁気ディスク60において、例えば表面が、データの磁気記録される記録面となる。そして、磁気ディスク60の記録面に対応して磁気ヘッド(図示せず)が配置されている。この磁気ヘッドは、磁気ディスク60へのデータ書き込み及び磁気ディスクからのデータ読み出しに用いられる。なお、磁気ディスク60の裏面も記録面として機能し、その記録面に対応して上記磁気ヘッドと同様の磁気ヘッドが配置されていても良い。またハードディスク40は、単一の磁気ディスク60を備えた構成であってもよいし、磁気ディスク60が複数枚積層配置された構成であっても構わない。
磁気ディスク60は、データを記録する。磁気ディスク60において、例えば表面が、データの磁気記録される記録面となる。そして、磁気ディスク60の記録面に対応して磁気ヘッド(図示せず)が配置されている。この磁気ヘッドは、磁気ディスク60へのデータ書き込み及び磁気ディスクからのデータ読み出しに用いられる。なお、磁気ディスク60の裏面も記録面として機能し、その記録面に対応して上記磁気ヘッドと同様の磁気ヘッドが配置されていても良い。またハードディスク40は、単一の磁気ディスク60を備えた構成であってもよいし、磁気ディスク60が複数枚積層配置された構成であっても構わない。
<コントローラ50の構成について>
図10に示すようにコントローラ50は、インタフェース51、52、MPU53、RAM54、ROM55、エンコーダ56、及びヒューズブロック57を備えている。これらは同一の基板上に集積形成されている。
図10に示すようにコントローラ50は、インタフェース51、52、MPU53、RAM54、ROM55、エンコーダ56、及びヒューズブロック57を備えている。これらは同一の基板上に集積形成されている。
インタフェース51は、例えばATA(IDE)バスであり、図示せぬホスト機器(例えばパーソナルコンピュータ等)との間のインタフェース処理を行う。インタフェース51は、ホスト機器から、例えばコマンド及び書き込みデータ等を受信する。そしてインタフェース51は、受信したコマンドをMPU53に転送し、また書き込みデータを例えばRAM54に格納する。更に、ホスト機器に対して出力すべきデータを、MPU53の命令に従って出力する。
インタフェース52は、磁気ディスク60とコントローラ50との間のインタフェース処理を行う。インタフェース52は、書き込みデータ等を磁気ディスク60に出力し、また磁気ディスク60からの読み出しデータを受信する。
MPU53は、HDD装置40全体の動作を制御する。MPU53は、ホスト機器より転送された書き込みコマンド、読み出しコマンド、消去コマンドを受け取り、磁気ディスク60に対して所定の処理を実行する。具体的には、磁気ディスクのトラック位置に応じた書き込み電圧の制御・読み書きする際の変調、及びデータの入出力の制御などを行う。またMPU53は、例えばHDD装置40が電源供給を受けたときに、ROM55に格納されているファームウェア(制御プログラム)をRAM54上に読み出して所定の処理を実行することにより、各種のテーブルをRAM54上に作成する。更にMPU53は、エンコーダ56を制御して、書き込みデータの暗号化を行う。書き込みデータの暗号化処理については、後に詳述する。
ヒューズブロック57は、上記第1の実施形態で説明したヒューズブロック29とほぼ同様であるので詳細な説明は省略する。ヒューズブロック57は複数のヒューズ素子を備えており、複数ビット(例えば8ビット)のデータを保持可能とされる。ヒューズブロック57のヒューズ素子は、コントローラ50固有の情報、この第2の実施形態ではHDD装置の製品固有の値を保持する。
ROM55は、MPU53により制御される制御プログラム等を格納する。また、例えばベンダー番号などを含むファームウェア情報を保持する。
エンコーダ56は、ホスト機器から与えられた磁気ディスク60への書き込みデータを暗号化する。エンコーダ55の構成は、基本的には第1の実施形態と同様であるが、図8の構成において、スクランブル回路を暗号化回路に置き換えた点が異なる。エンコーダ56は、レジスタ30、疑似乱数発生回路31、及び暗号化回路(以下では便宜上、暗号化回路32と呼ぶ)を備えている。レジスタ30及び疑似乱数発生回路31は、第1の実施形態と同様であるので、詳細な説明は省略する。暗号化回路32は、磁気ディスク60への書き込みデータを、疑似乱数発生回路31で発生された疑似乱数を用いて暗号化する。そして暗号化された書き込みデータをRAM54に格納され、その後MPU53によって磁気ディスク60に書き込まれる。
<本実施形態に係る効果>
本実施形態に係る構成であると、情報漏洩を防止するために、HDD装置にデータを暗号化して記録することが出来る。そしてこの暗号化は、本実施形態では、コントローラ50にユニークな値(コントローラチップの位置情報等)が、疑似乱数発生回路のシード値として用いられる。従って、第1の実施形態と同様に、暗号化データの解読を効果的に防止出来る。
本実施形態に係る構成であると、情報漏洩を防止するために、HDD装置にデータを暗号化して記録することが出来る。そしてこの暗号化は、本実施形態では、コントローラ50にユニークな値(コントローラチップの位置情報等)が、疑似乱数発生回路のシード値として用いられる。従って、第1の実施形態と同様に、暗号化データの解読を効果的に防止出来る。
また上記第1、第2の実施形態では、エンコーダ28、56がそれぞれデータのスクランブル及び暗号化を行う場合を例に説明した。しかし、これらの処理をMPU22、53が行っても良い。またコントローラ20、50内部では無くホスト機器1で行われても良い。この場合、ホスト機器1はコントローラ20、50のチップ識別情報を受け取り、これに基づいてホスト機器1がスクランブルまたは暗号化を行う。またエンコーダ28、56がホスト機器1内に設けられていても良い。
また第2の実施形態で説明したHDD装置は、ホスト機器1の筐体内に配置される内蔵型でもよいし、筐体外に配置される外付け型のいずれでもよい。
また上記第1、第2の実施形態において、エンコーダ28、56によるスクランブルや暗号化処理のオン・オフを、ユーザ側で設定できる構成としても良い。例えば第1の実施形態では、メモリカード2を、書き込み命令と共にスクランブル命令も共に受信可能としても良い。そしてスクランブル命令を受信した場合には、MPU22は疑似乱数発生回路31に対して疑似乱数の発生を命令すると共に、スクランブル回路32に対してスクランブルを命令する。他方、スクランブル命令を受信しない場合には、MPU22は疑似乱数の発生及びスクランブルを命令しない。従って後者の場合には、データはスクランブルされることなくNAND型フラッシュメモリ10に書き込まれる。第2の実施形態における暗号化処理も同様である。
そして、これらのスクランブルや暗号化処理のオン・オフは、ホスト機器からの信号によって命令されてもよいし、メモリカード2やHDD装置40に配置された切り替えスイッチ等によって命令されてもよい。
また、第1、第2の実施形態において、スクランブル回路32は擬似乱数以外のデータと書き込みデータとをスクランブルさせてもよい。つまり、例えば擬似乱数発生回路31から擬似乱数を発生させず、シード値を書き込みデータとスクランブルしてもよい。この場合シード値が、例えば“00000000”であった場合、スクランブル回路32がこのシード値を基にスクランブルできない場合がある。この場合には、スクランブル回路32は入力されたシード値を、例えば“11111111”に変換した後、この変換した値をシード値に用いて書き込みデータとスクランブルさせてもよい。
また上記第2の実施形態においては、疑似乱数を生成する際のシード値として、ヒューズブロック57内のチップ識別情報を用いる場合を例に説明した。しかし、暗号化という観点からは、より複雑な(例えばビット数の多い)値をシードに用いることが好ましい。このため、例えばヒューズブロック57から読み出したチップ識別情報と、例えばROM55内に格納したベンダー番号等の情報とを組み合わせたデータを、シードとして用いても良い。これにより、より解読され難い暗号化が可能となる。このことは、第1の実施形態にも適用可能なことは言うまでも無い。
さらにシード値のために用いるチップ識別情報は、コントローラ20内のヒューズブロック29、57から取得しなくてもよい。
つまり、第1の実施形態では、NAND型フラッシュメモリ10にヒューズブロック29を更に搭載させ、そのヒューズブロック29が格納するチップ識別情報を取得し、そのチップ識別情報に基づきデータのスクランブル化を行ってもよい。つまり、この場合のチップ識別情報は、NAND型フラッシュメモリ10が製造される際の、シリコン基板上の位置に応じた値である。この場合には、コントローラ20とNAND型フラッシュメモリ10とは異なるシリコンチップ上に形成されていることから、当然ながら両者のチップ識別情報の値は異なることになる。
また、第2の実施形態では、出荷前に磁気ディスク60のシステム領域に、磁気ディスク60毎に異なるシリアル番号を識別情報として書き込んでおく。そして、コントローラ50がこの磁気ディスク60に格納された識別情報を取得し、データの暗号化を行うようにしてもよい。この場合においても、磁気ディスク60が有する識別情報と、ヒューズブロック57に格納されたチップ識別情報とは異なる値とされる。
このことから、上記第1の実施形態においてコントローラ20とNAND型フラッシュメモリ10とにそれぞれ搭載されたヒューズブロック29に格納されたチップ識別情報とをそれぞれ取得し、これらを組み合わせて新たなシード値としてもよい。同様に、第2の実施形態においても、コントローラ50のヒューズブロック57が格納する識別情報と磁気ディスク60が格納する識別情報とをそれぞれ取得し、これらを組み合わせて新たなシード値としてもよい。
なお、上記第1、第2の実施形態ではチップ識別情報の具体例として、半導体ウェハ中におけるXY座標、製品コード、ロット番号、及びウェハ番号を例に説明したが、これらの情報に限らず、コントローラに固有の情報であれば限定されるものでは無い。
また、上記第1の実施形態において、メモリセルアレイ11のワード線WL(ページ)毎にスクランブルのパターンを変えてもよい。例えば、チップ識別情報に、データの書き込み対象となるページアドレス情報を加えてシード値を生成しても良い。これにより、例えばあるページにデータを書き込む場合には、図9のパターン1が選択され、また別のページにデータを書き込む場合にはパターン2が選択される、ということも可能である。
また、上記第1、第2の実施形態では、データの書き込み時におけるスクランブル及び暗号化処理についてのみ説明したが、データの読み出し時は、書き込み時と逆の処理を行うことで、データの解読が可能である。つまり、第1の実施形態であれば、図示せぬデコーダが、疑似乱数発生回路31で発生された疑似乱数(スクランブル時に用いた疑似乱数)を用いて読み出しデータを復号化する。第2の実施形態においても同様である。
また、第1の実施形態において、書き込みデータの暗号化を更に行っても良い。つまり、ホスト機器1からデータの書き込み命令があると、例えばMPU22またはエンコーダ28(または図示せぬ暗号化回路)が、書き込みデータに対し暗号化処理を実行する。その後、暗号化された書き込みデータに対して、上述のようにスクランブル(乱数化)を実行してもよい。この際、書き込みデータは、ヒューズブロック29が保持するチップ識別情報に基づいて生成された疑似乱数によって暗号化されてもよい。
また、第1の実施形態においてNAND型フラッシュメモリ10とコントローラ20とがワンチップで形成されていても良い。この場合、ヒューズブロック29は記憶媒体(例えば、この場合はNAND型フラッシュメモリ10)側に搭載されてもよい。そしてコントローラ20はその記憶媒体側に搭載されたヒューズブロック29からチップ識別情報を読み出し、そのチップ識別情報に基づきスクランブル処理のシード値に加え、データの加工を行なってもよい。
また、上記実施形態においては、データのスクランブル方式(XOR演算や他の演算方法)、または暗号化方式が、ヒューズブロック29、57内のチップ識別情報に基づいて選択されても良い。疑似乱数及びデータの加工方法をチップ識別情報によって変化させることで、より情報漏洩を防止出来る。
また、上記第1の実施形態では、SDメモリカードを一例に挙げて説明したが、これに限らない。つまり、データを保持可能であれば、MMCカード、USBフラッシュメモリ、及びフラッシュSSD(Solid State Disk)等にも適用可能である。また記憶媒体が有する記憶装置はNAND型フラッシュメモリに限らず、NOR型フラッシュメモリ等、他のフラッシュメモリであっても良いし、または強誘電体メモリ等の他の不揮発性半導体メモリであってもよい。また、第2の実施形態ではHDD装置を例に挙げて説明したが、暗号化処理を行う記憶装置であれば、HDD装置に限定されない。
なお、本願発明は上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出されうる。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出されうる。
1…ホスト機器、2…メモリカード、5…ホストバスインタフェース、6…NANDストリング、10…NAND型フラッシュメモリ、11…メモリセルアレイ、12…ロウデコーダ、13…ページバッファ、14…電圧発生回路、15…I/Oバッファ、16…制御部、20、50…コントローラ、21、25、46、52…インタフェース、22、53…MPU、23、55…ROM、24、54…RAM、26…ECC回路、27…レジスタ、28、56…エンコーダ、29、57…ヒューズブロック、31…擬似乱数発生回路、32…スクランブル回路、40…ハードディスク装置、51…ATA、60…磁気ディスク
Claims (5)
- ホスト機器に接続可能とされ、データを保持可能な記憶装置を制御するコントローラであって、
前記コントローラの有する識別情報に基づいて擬似乱数を生成する擬似乱数発生回路と、
前記ホスト機器から受信したデータを、前記擬似乱数を用いてスクランブルするスクランブル回路と
を具備するコントローラ。 - 前記チップ識別情報は、前記コントローラの有するチップ位置情報を少なくとも含む
ことを特徴とする請求項1記載のコントローラ。 - 前記疑似乱数発生回路及び前記スクランブル回路を制御する制御回路を更に備え、
前記制御回路は、前記ホスト機器からスクランブル命令を受信した際には、前記スクランブル回路に対して前記データのスクランブルを命令して、スクランブルされた前記データの書き込みを前記記憶装置へ命令し、
前記スクランブル命令を受信しない際には、前記スクランブル回路に対して前記書き込みデータのスクランブルを命令することなく、非暗号化の前記データの書き込みを前記記憶装置へ命令する
ことを特徴とする請求項1記載のコントローラ。 - 前記スクランブル回路は、複数のスクランブル方法を用いてデータのスクランブルが可能であり、
前記制御回路は、前記チップ識別情報に基づいて、前記複数のスクランブル方法から特定のスクランブル方法を選択する
ことを特徴とする請求項1記載のコントローラ。 - データを保持可能な記憶装置と、
前記記憶装置を制御可能なコントローラとを備え、
前記コントローラは、
前記コントローラの有する識別情報に基づいて擬似乱数を生成する擬似乱数発生回路と、
前記擬似乱数を用いて、記憶装置への書き込みデータをスクランブルするスクランブル回路と
を具備するデータストレージシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009293270A JP2011134125A (ja) | 2009-12-24 | 2009-12-24 | コントローラ及びデータストレージシステム |
US12/844,308 US20110161678A1 (en) | 2009-12-24 | 2010-07-27 | Controller for controlling nand flash memory and data storage system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009293270A JP2011134125A (ja) | 2009-12-24 | 2009-12-24 | コントローラ及びデータストレージシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011134125A true JP2011134125A (ja) | 2011-07-07 |
Family
ID=44188917
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009293270A Abandoned JP2011134125A (ja) | 2009-12-24 | 2009-12-24 | コントローラ及びデータストレージシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20110161678A1 (ja) |
JP (1) | JP2011134125A (ja) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8588228B1 (en) | 2010-08-16 | 2013-11-19 | Pmc-Sierra Us, Inc. | Nonvolatile memory controller with host controller interface for retrieving and dispatching nonvolatile memory commands in a distributed manner |
KR101818445B1 (ko) * | 2011-07-08 | 2018-01-16 | 삼성전자주식회사 | 메모리 컨트롤러, 이의 동작 방법, 및 상기 메모리 컨트롤러를 포함하는 전자 장치들 |
US9418247B2 (en) * | 2012-02-07 | 2016-08-16 | MCube Inc. | Security system and methods for integrated devices |
US10078112B2 (en) * | 2012-02-07 | 2018-09-18 | Mcube, Inc. | Security system and methods for integrated devices |
US9092353B1 (en) | 2013-01-29 | 2015-07-28 | Pmc-Sierra Us, Inc. | Apparatus and method based on LDPC codes for adjusting a correctable raw bit error rate limit in a memory system |
US10230396B1 (en) | 2013-03-05 | 2019-03-12 | Microsemi Solutions (Us), Inc. | Method and apparatus for layer-specific LDPC decoding |
US9813080B1 (en) | 2013-03-05 | 2017-11-07 | Microsemi Solutions (U.S.), Inc. | Layer specific LDPC decoder |
US9450610B1 (en) | 2013-03-15 | 2016-09-20 | Microsemi Storage Solutions (Us), Inc. | High quality log likelihood ratios determined using two-index look-up table |
KR102112115B1 (ko) | 2013-04-17 | 2020-05-18 | 삼성전자주식회사 | 반도체 메모리 장치 및 그것의 데이터 프로그램 방법 |
US9417804B2 (en) | 2014-07-07 | 2016-08-16 | Microsemi Storage Solutions (Us), Inc. | System and method for memory block pool wear leveling |
JP5940704B1 (ja) * | 2015-03-26 | 2016-06-29 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
US10332613B1 (en) | 2015-05-18 | 2019-06-25 | Microsemi Solutions (Us), Inc. | Nonvolatile memory system with retention monitor |
US9799405B1 (en) | 2015-07-29 | 2017-10-24 | Ip Gem Group, Llc | Nonvolatile memory system with read circuit for performing reads using threshold voltage shift read instruction |
US9886214B2 (en) | 2015-12-11 | 2018-02-06 | Ip Gem Group, Llc | Nonvolatile memory system with erase suspend circuit and method for erase suspend management |
US9892794B2 (en) | 2016-01-04 | 2018-02-13 | Ip Gem Group, Llc | Method and apparatus with program suspend using test mode |
US9899092B2 (en) | 2016-01-27 | 2018-02-20 | Ip Gem Group, Llc | Nonvolatile memory system with program step manager and method for program step management |
US10283215B2 (en) | 2016-07-28 | 2019-05-07 | Ip Gem Group, Llc | Nonvolatile memory system with background reference positioning and local reference positioning |
US10291263B2 (en) | 2016-07-28 | 2019-05-14 | Ip Gem Group, Llc | Auto-learning log likelihood ratio |
US10236915B2 (en) | 2016-07-29 | 2019-03-19 | Microsemi Solutions (U.S.), Inc. | Variable T BCH encoding |
JP6991084B2 (ja) * | 2018-03-22 | 2022-01-12 | キオクシア株式会社 | 不揮発性メモリデバイス及び制御方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6641050B2 (en) * | 2001-11-06 | 2003-11-04 | International Business Machines Corporation | Secure credit card |
JP2004104539A (ja) * | 2002-09-11 | 2004-04-02 | Renesas Technology Corp | メモリカード |
DE10357782B3 (de) * | 2003-12-10 | 2005-05-04 | Infineon Technologies Ag | Vorrichtung und Verfahren zum Erzeugen von Zufallszahlen mit einem Pseudozufallsgenerator |
KR100849956B1 (ko) * | 2007-01-29 | 2008-08-01 | 삼성전자주식회사 | 반도체 장치 및 그것의 스크램블된 데이터 전송 방법 |
JP5019611B2 (ja) * | 2007-12-27 | 2012-09-05 | 株式会社東芝 | メモリシステム |
-
2009
- 2009-12-24 JP JP2009293270A patent/JP2011134125A/ja not_active Abandoned
-
2010
- 2010-07-27 US US12/844,308 patent/US20110161678A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20110161678A1 (en) | 2011-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2011134125A (ja) | コントローラ及びデータストレージシステム | |
JP6193629B2 (ja) | 不揮発性メモリセルの物理的特性を利用して乱数を生成する方法 | |
JP5019611B2 (ja) | メモリシステム | |
KR101832934B1 (ko) | 비휘발성 메모리 장치, 그것을 포함하는 메모리 시스템, 그것의 블록 관리 방법, 프로그램 방법 및 소거 방법 | |
TWI381381B (zh) | Memory controller and semiconductor device | |
JP4498370B2 (ja) | データ書き込み方法 | |
US8984373B2 (en) | Method for accessing flash memory and associated flash memory controller | |
TWI463309B (zh) | 記憶體系統、操作非揮發性記憶體系統的方法以及非揮發性記憶體 | |
US9847122B2 (en) | Multi-bit memory device and on-chip buffered program method thereof | |
US20080151618A1 (en) | Flash memory device and system with randomizing for suppressing errors | |
KR101731408B1 (ko) | 플래시 메모리에 데이터를 기록하는 방법 및 관련 메모리 장치 및 플래시 메모리 | |
US9607699B2 (en) | Memory system including semiconductor memory device and operating method thereof | |
US9355732B2 (en) | Latch initialization for a data storage device | |
JP2008108418A (ja) | マルチページプログラムの方法、及びこれを行うためのフラッシュメモリ装置 | |
KR20140020057A (ko) | 키 제어 로직을 포함하는 플래시 메모리 장치 및 그것의 암호화 키 저장 방법 | |
KR20100124087A (ko) | 메모리 컨트롤러, 그것을 포함하는 메모리 시스템 그리고 그것의 동작 방법 | |
WO2010030701A1 (en) | Built in on-chip data scrambler for non-volatile memory | |
JP5940705B1 (ja) | 半導体記憶装置 | |
JPWO2015022741A1 (ja) | 半導体装置 | |
JP2009157836A (ja) | メモリシステム | |
US10102071B2 (en) | Storage device that restores data lost during a subsequent data write | |
JP5940704B1 (ja) | 半導体記憶装置 | |
KR20180051984A (ko) | 반도체 메모리 장치 및 그것의 동작 방법 | |
US20180267903A1 (en) | Memory system and operating method thereof | |
US11322208B2 (en) | Non-volatile memory device, storage device and program method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120814 |
|
A762 | Written abandonment of application |
Free format text: JAPANESE INTERMEDIATE CODE: A762 Effective date: 20121011 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121024 |