JP2011039585A - 不揮発性ランダムアクセスメモリおよび不揮発性メモリシステム - Google Patents

不揮発性ランダムアクセスメモリおよび不揮発性メモリシステム Download PDF

Info

Publication number
JP2011039585A
JP2011039585A JP2009183517A JP2009183517A JP2011039585A JP 2011039585 A JP2011039585 A JP 2011039585A JP 2009183517 A JP2009183517 A JP 2009183517A JP 2009183517 A JP2009183517 A JP 2009183517A JP 2011039585 A JP2011039585 A JP 2011039585A
Authority
JP
Japan
Prior art keywords
area
ecc
data
data area
unit
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.)
Granted
Application number
JP2009183517A
Other languages
English (en)
Other versions
JP5668279B2 (ja
Inventor
Kenichi Nakanishi
健一 中西
Keiichi Tsutsui
敬一 筒井
Junichi Koshiyama
潤一 越山
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2009183517A priority Critical patent/JP5668279B2/ja
Priority to US12/816,685 priority patent/US8429494B2/en
Publication of JP2011039585A publication Critical patent/JP2011039585A/ja
Application granted granted Critical
Publication of JP5668279B2 publication Critical patent/JP5668279B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient implementations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)

Abstract

【課題】ランダムアクセス可能でありながら電源を切った後もデータ保持可能で、アプリケーションに応じたECCの付加が可能な不揮発性ランダムアクセスメモリおよび不揮発性メモリシステムを提供する。
【解決手段】NVRAM21は、ランダムアクセス可能で、データ領域と、エラー訂正(ECC)コードを保存するためのECC領域の2つの領域を含む不揮発性記憶領域211と、データ領域にアクセスする際に使用するデータサイズをデータ領域単位サイズとして外部から設定するための不揮発性記憶領域設定機能を実現する不揮発性記憶領域制御部212と、を有し、不揮発性記憶領域制御部212は、設定されたデータ領域単位サイズに従ってデータ領域とECC領域を管理し、データ領域単位サイズごとに、上記不揮発性記憶領域制御部が設定したECC領域単位サイズのECC領域を割り当てる機能を含む。
【選択図】図6

Description

本発明は、ランダムアクセス可能な不揮発性ランダムアクセスメモリおよび不揮発性メモリシステムに関するものである。
近年、揮発性ランダムアクセスメモリ(RAM)であるSRAMやDRAMのようにランダムアクセス可能でありながら、電源を切った後もデータ保持可能な不揮発性メモリ(NVRAM)としてFeRAM、PCRAMやReRAMの開発、製品化が進んでいる。
これらのNVRAMは将来のRAMの置き換えとして期待されており、さらに不揮発であるという特徴から新しいアプリケーションも模索されている。
フラッシュで代表される不揮発性メモリ(NVM)では、メモリセルの書換え・消去回数の増加に従ってデータの保持特性が低下する特徴を持つため、書き込むデータに対してエラー訂正コード(ECC)を付加することで信頼性を改善することができる。
NVRAMに対してもECCを付加することで同様の効果が期待されている。
図1は、NANDフラッシュとストレージ空間のマッピング例を示す図である。
図2は、NANDフラッシュのページサイズとセクタデータの配置例を示す図である。
図3は、NANDフラッシュのセクタ更新時の処理フローを示す図である。
NANDフラッシュは、図1に示すように、ページPG単位でアクセスするため、セクタSCT単位(512Byte)でアクセスするストレージ用途に適している。
ページPG上のデータは、図2および図3に示すように、ECCを付加することで、データエラーを修正でき、ストレージとしてのデータ書き換え回数を改善することができる。
近年、NANDフラッシュにおいて、書き込み単位としてのページサイズの増大はストレージとしてのセクタ単位のランダムアクセス性能を劣化させている。
ページのデータを更新するには、図3に示すように、少なくともそこに含まれるすべてのセクタSCTのデータをECCとともに書き換える必要があるからである。
図3の例では、ページPG1のセクタSCT2の部分だけを書き換える場合、ページPG1は書込み単位であると同時にECCを計算する単位であることから、セクタSCT2の部分の新しいデータに更新したページPG1のECCを再計算する必要がある。さらにNANDフラッシュは消去が必要であるため、ブロックBLKAとは異なるブロックBLKBに更新後のデータを再計算後のECCと共に書き込む必要がある。
そのためSSDやフラッシュカードなどNANDフラッシュを応用してストレージを実現する装置では、ECCと書込み単位、さらに消去単位の違いを吸収し、セクタ単位でのランダムアクセス性能を改善するための工夫が必要となってきた。
また書き換え回数を維持するためにECCの訂正能力に対する要求が高くなってきており、ECCコードを保存するためのサイズも拡張されてきている。
一方、上記のような新しいNVRAMでECCによって書き換え回数を改善しようとした場合、RAMとしてアクセスされることが前提となる。このため、NANDフラッシュとは異なり、ストレージのセクタに代表されるような共通の基準となるアクセス単位サイズが存在しない。
したがって、メモリ側の仕様として単位となるデータサイズを規定することは、そのNVRAMを使用するアプリケーションからのアクセスの自由度を著しく下げることになってしまうという不利益がある。
本発明は、ランダムアクセス可能でありながら電源を切った後もデータ保持可能で、アプリケーションに応じたECCの付加が可能な不揮発性ランダムアクセスメモリおよび不揮発性メモリシステムを提供することにある。
本発明の第1の観点の不揮発性ランダムアクセスメモリは、ランダムアクセス可能で、データを保存するデータ領域と、エラー訂正(ECC)コードを保存するためのECC領域の2つの領域を含む不揮発性記憶領域と、上記データ領域にアクセスする際に使用するデータサイズをデータ領域単位サイズとして外部から設定するための不揮発性記憶領域設定機能を実現する不揮発性記憶領域制御部と、を有し、上記不揮発性記憶領域制御部は、上記設定されたデータ領域単位サイズに従って上記データ領域とECC領域を管理し、上記データ領域のデータ領域単位サイズごとに、上記不揮発性記憶領域制御部が設定したECC領域単位サイズのECC領域を割り当てる機能を含む。
本発明の第2の観点の不揮発性メモリシステムは、ランダムアクセス可能な不揮発性ランダムアクセスメモリと、上記不揮発性ランダムアクセスメモリへのアクセスを制御するメモリコントローラと、を有し、上記不揮発性ランダムアクセスメモリは、データを保存するデータ領域と、エラー訂正(ECC)コードを保存するためのECC領域の2つの領域を含む不揮発性記憶領域と、上記データ領域にアクセスする際に使用するデータサイズをデータ領域単位サイズとして外部から設定するための不揮発性記憶領域設定機能を実現する不揮発性記憶領域制御部と、を有し、上記不揮発性記憶領域制御部は、上記設定されたデータ領域単位サイズに従って上記データ領域とECC領域を管理し、上記データ領域のデータ領域単位サイズごとに、上記不揮発性記憶領域制御部が設定したECC領域単位サイズでECC領域を割り当てる機能を含む。
本発明によれば、揮発性ランダムアクセスメモリ(RAM)であるSRAMやDRAMのようにランダムアクセス可能でありながら、電源を切った後もデータ保持可能な不揮発性ランダムアクセスメモリ(NVRAM)を実現できる。
そして、このNVRAMに対してアプリケーションがランダムアクセスしやすい方法でECCを付加することができる手段を提供し、データの信頼性の向上を図ることができる。
NANDフラッシュとストレージ空間のマッピング例を示す図である。 NANDフラッシュのページサイズとセクタデータの配置例を示す図である。 NANDフラッシュのセクタ更新時の処理フローを示す図である。 本発明の第1の実施形態に係る不揮発性ランダムアクセスメモリ(NVRAM)を搭載した不揮発性メモリシステムの構成を示す図である。 データ領域とECC領域との関係を示す図である。 本第1の実施形態に係るNVRAMの不揮発性記憶領域制御部の具体的な構成例を示す図である。 本実施形態に係るレジスタ領域の一例を示す図である。 不揮発性記憶領域のECC領域が8バイトの場合のメモリコントローラのレジスタとの関係の一例を示す図である。 メモリコントローラからみたデータ領域、レジスタ領域、ECC領域の関係の一例を示す図である。 本実施形態に係る不揮発性記憶領域設定機能の処理フローおよびレジスタ領域を示す図である。 読み出し(Read)時のデータ領域およびECC領域へのアクセス処理について説明するためのフローチャートである。 書き込み(Write)時のデータ領域およびECC領域へのアクセス処理について説明するためのフローチャートである。 データ領域単位サイズのデータ領域と、ECC領域単位サイズのECC領域に1つのコマンドで連続してアクセスする処理を説明するための図である。 データ領域のデータ領域単位サイズとECC領域のECC領域単位サイズを設定する場合に、その設定を有効とするデータ領域のアドレス範囲を指定する情報を含んだ場合の実現例のレジスタ領域を示す図である。 起動時の処理として、NVRAM内の設定保存機能の有無に応じた設定情報の処理を説明するためのフローチャートである。 本発明の第2の実施形態に係るNVRAMの構成例を示す図である。 アクセス単位によるオーバーヘッドの例を示す図である。 アドレス境界によるオーバーヘッドの例を示す図である。
以下、本発明の実施形態を図面に関連付けて説明する。
なお、説明は以下の順序で行う。
1.第1の実施形態
2.第2の実施形態
<1.第1の実施形態>
図4は、本発明の第1の実施形態に係る不揮発性ランダムアクセスメモリ(NVRAM)を搭載した不揮発性メモリシステムの構成を示す図である。
本第1の実施形態に係るメモリシステム10は、NVRAMを含む不揮発性メモリシステム20、および不揮発性メモリシステム20のNVRAMにアクセス可能なホスト装置30を有する。
不揮発性メモリシステム20は、NVRAM21、およびメモリコントローラ22を有する。
本第1の実施形態のNVRAM21は、不揮発性記憶領域211、および不揮発性記憶領域制御部212を有する。
不揮発性記憶領域211は、データ領域ARDTと、エラー訂正コード(ECC)を保存するための領域(ECC領域AREC)の2つの領域を含む。
図5は、データ領域ARDTとECC領域ARECとの関係を示す図である。
図5の例では、4バイトのデータ領域ARDTと1バイトのECC領域ARECが1対1対応の関係を持つ。
データ領域ARDTは、メモリコントローラから直接アドレス指定することで、4バイト(Byte)を1ワードとしてアクセス可能である。ECC領域ARECは、データ領域ARDTのようにメモリコントローラから直接アドレスを指定してアクセスできなくてもよい。本実施形態では図7にあるようなレジスタ領域ARRGのECC_CODE_REGを介してアクセスすることができる。

たとえば、データ領域ARDTのアドレスDATA[4]への書込み時は、4バイトのデータに対して計算されたECCコードは、図7のECC_CODE_0_REGに設定され、ECC領域ARECのECC1の1バイトに保存される。
また、データ領域ARDTのアドレスDATA[4]の読み出し時は、ECC領域ARECのECC1を読み出し、メモリコントローラは図7にECC_CODE0_REGを介してその値を取得し、データの誤り検出や訂正を行うことができる。
本第1の実施形態に係るNVRAM21は、データ領域ARDTとECC領域ARECは一つの不揮発性記憶領域211に形成される。
NVRAM21の不揮発性記憶領域制御部212は、データ領域とECC領域を設定された各単位サイズで管理し、データ領域ARDTの各アクセス単位ごとにECC領域ARECのECC領域単位サイズをマッピングする機能を有する。
本実施形態では、NVRAM21の不揮発性記憶領域制御部212に対して、ホスト装置30がメモリコントローラ22を介してデータ領域ARDTにアクセスする単位として、複数バイトからなるデータ領域単位サイズを設定するための機能を有する。この機能を不揮発性記憶領域設定機能と呼ぶ。
図7の実施例では、DATA_UNIT_SIZE_REGにデータ領域単位サイズを設定する。不揮発性記憶領域制御部212は、設定されたデータ領域単位サイズに従ってデータ領域ARDTとECC領域ARECを管理し、データ領域ARDTの各アクセス単位ごとにECC領域ARECのECC領域単位サイズをマッピングする機能を有する。
図7の実施例では同様に、ECC_UNIT_SIZE_REGを使用してデータ領域ARDTの各アクセス単位にマッピングするECC領域ARECのECC領域単位サイズを外部から直接設定することができる。たとえば図5の状態のNVRAMに対して、DATA_UNIT_SIZE_REGに4、ECC_UNIT_SIZE_REGに1を設定した状態である。
データ領域ARDTに対して、どのようなサイズのアクセス単位を使用するかは、実際にはホスト装置30のオペレーティングシステム(OS)やアプリケーションによって決まる。
たとえば、プログラムコードであればCPUの命令キャッシュに入力する数バイト単位のアクセスであり、仮想メモリやユーザデータの場合は、512バイト、4096バイトといった単位でアクセスされることが一般的である。
また、DMAコントローラの転送サイズなど、そのシステムのハードウェア(HW)仕様によって制約される場合もある。
図6は、本第1の実施形態に係るNVRAMの不揮発性記憶領域制御部の具体的な構成例を示す図である。
図6の不揮発性記憶領域制御部212は、データ領域ARDTとECC領域ARECが一つの不揮発性記憶領域211上に割り当てられた場合の例を示している。
不揮発性記憶領域制御部212は、データ領域アドレス変換部2121、ECC領域アクセス制御部2122、レジスタ(レジスタ領域ARRG)2123、および内部不揮発性メモリとしてのレジスタ設定保存部2124を有する。
また、図6において、ABはアドレスバスを、CBは制御信号バスを、DBはデータバスを示している。
データ領域アドレス変換部2121は、メモリコントローラ22からのデータ領域ARDTへのアクセスに対して、アドレス変換を行う機能を有する。
レジスタ2123は、レジスタ領域ARRGとしてメモリコントローラ22からアクセスされる。
データ領域アドレス変換部2121は、レジスタ2123に設定された各単位サイズの値に従ってNVRAM21に入力されたアドレスを内部アドレスに変換する方法を切換える機能を有している。
ECC領域アクセス制御部2122は、メモリコントローラ22がデータ領域ARDTへアクセスした場合にそのデータ領域に割り当てられたECC領域ARECへアクセスする機能を有する。
ECC領域アクセス制御部2122は、外部からデータ領域ARDTを指定するために入力されたデータアドレスから変換することでECC領域ARECへのアクセスアドレスを生成する。
メモリコントローラ22はレジスタ領域ARRGの各レジスタ2123にアクセスすることで、不揮発性記憶領域制御部212に設定を行う。
ECC領域アクセス制御部2122は、不揮発性記憶領域制御部212内にあるレジスタ2123に設定されたECC領域のECC領域単位サイズの値に従って、「ECC_CODE_REG」とECC領域の間で転送を行う機能を有している。
これによって、データ領域ARDTにアクセスした場合にはそのデータ領域に割り当てられたECC領域ARECの値がレジスタ2123と不揮発性記憶領域211の間でマルチプレクサ213を介して入出力される。
メモリコントローラ22は、ECC_CODE_REGを経由して、ECC領域ARECのデータにアクセスする。
図7は、本実施形態に係るレジスタ領域の一例を示す図である。
図7の例では、4バイトのレジスタ領域ARRGが形成される。
アドレスREG[0]は、データ領域単位サイズレジスタ「DATA_UNIT_SIZE_REG」であり、データ領域ARDTのアクセス単位のサイズを設定するために使用される。
データ領域単位サイズレジスタ「DATA_UNIT_SIZE_REG」は、読み出し(Read)時には、データ領域単位サイズが取得される。
データ領域単位サイズレジスタ「DATA_UNIT_SIZE_REG」は、書き込み(Write)時には、データ領域単位サイズ値が設定される。
アドレスREG[4]は、ECC領域単位サイズレジスタ「ECC_UNIT_SIZE_REG」であり、上記データ領域ARDTのアクセス単位に割り当てられるECC領域ARECのサイズを設定するために使用される。
ECC領域単位サイズレジスタ「ECC_UNIT_SIZE_REG」は、読み出し(Read)には、ECC領域単位サイズが取得される。
ECC領域単位サイズレジスタ「ECC_UNIT_SIZE_REG」は、書き込み(Write)時には、ECC領域単位サイズが設定される。
本レジスタが存在しない場合には、不揮発性記憶領域制御部212が不揮発性領域設定機能として、ECC領域ARECをマッピングするデータ領域ARDTのアクセス単位数に対してECC領域を分配できるよう、ECC領域単位サイズを決定する。
アドレスREG[8]、REG[12]・・・は、ECCコードレジスタ「ECC_CODE_X_REG」であり、ECC領域とECCコードを入出力するために使用される。
使用する最終レジスタの番号(X)はECC領域単位サイズレジスタ「ECC_UNIT_SIZE_REG」に設定した値によって決まる。
ECCコードレジスタ「ECC_CODE_X_REG」は、データ領域ARDTへ読み出しアクセス直後の読み出し(Read)によって、そのデータ領域に関連するECC領域ARECの値が取得される。
ECCコードレジスタ「ECC_CODE_X_REG」の書き込み(Write)によって、それに続くデータ領域ARDTへの書込みアクセス時に、そのデータ領域に関連するECC領域ARECに値が設定される。
図8は、不揮発性記憶領域のECC領域ARECが8バイトの場合のメモリコントローラのレジスタとの関係の一例を示す図である。ECC_UNIT_SIZE_REGにはECC領域単位サイズとして8バイトを示す0x08の値が設定される。
図8の実施例では、メモリコントローラ22のレジスタ2123上の各領域は4バイトで形成される。
したがってアドレスREG[8]、REG[12]の8バイト分の2つのECCコードレジスタ「ECC_CODE_(0,1)_REG」がECC領域ARECのアドレスECC「2」に割り当てられている。
以上のように、本実施形態においては、ECC領域ARECはレジスタ領域経由でアクセスされ、データ領域ARDTのように直接アクセスできない例をあげたが、データ領域と同様に直接ECC領域のアドレスを指定しアクセスできた場合にも、本発明の効果は変わらない。
メモリコントローラ22は、NVRAM21の不揮発性記憶領域制御部212を制御し、データ領域ARDTを使用するデータ領域単位サイズを設定する機能を有する。
またこれに加えて、メモリコントローラ22は、NVRAM21がECC領域単位サイズレジスタのような、ECC領域ARECのECC領域単位サイズを設定する機能を持つ場合には、ECC領域単位サイズを設定する機能も有する。
メモリコントローラ22は、NVRAM制御部221、データバッファ222、ホスト側のRAMインタフェース223、およびNVRAM側のNVRAMインタフェース224を有する。
NVRAM制御部221は、ECCレジスタ2212を有する。
NVRAM制御部221は、ホスト装置30からのデータ書き込み時には、NVRAM21の不揮発性記憶領域211のデータ領域ARDTのデータ領域単位サイズのアクセスごとにECCコードを計算し、その結果をECC領域ARECに記録する。
NVRAM制御部221は、データ読出し時には、不揮発性記憶領域211のデータ領域ARDTからデータを、ECC領域ARECから図7に示したレジスタ経由でECCコードを読み出す。
NVRAM制御部221は、読み出したECCコードを利用してデータ領域ARDTから読みだしたデータの確認・訂正を行う。
NVRAM制御部221は、これにより、データ信頼性を向上させることができる。
図9は、メモリコントローラからみたデータ領域、レジスタ領域、ECC領域の関係の一例を示す図である。
図9の例では、各データ領域、レジスタ領域は4バイト、ECC領域は1バイトにより形成される。DATA_UNIT_SIZE_REGに設定されたデータ領域ARDTのアクセス単位は4バイト、ECC_UNIT_SIZE_REGに設定されたECC領域ARECのアクセス単位は1バイトである。ECC領域はレジスタ経由のアクセスであり、外部からは直接的に見えない。
図9の例では、アドレスDATA[8]のデータ領域ARDTのWord2にマッピングしたECC領域ARECがアドレスECC[2]のECC2であった場合のアクセス例が示されている。
この場合、アドレスDATA[8]のデータ領域のWord2への読み出しアクセス時には、アドレスECC[2]のECC2の値がECC_CODE_0_REGを経由して読み出される。
アドレスDATA[8]のデータ領域のWord2への書き込みアクセス時には、同じくECC_CODE_0_REGに設定した値がアドレスECC[2]のECC2に書込まれる。
ECC領域ARECは、図9の実施例では、レジスタを介してメモリコントローラ22から4Byte単位でアクセスされる。なお、ECC領域のECC領域単位サイズに合わせて、ワード(Word)単位、バイト(Byte)単位の他、ビット(Bit)単位でアクセス可能であってもよい。
どのようなECCコードを使用するかは、ホスト装置30側のアプリケーションによって決まる。煩雑に書き換えが発生するデータであるほど訂正能力の高いECCコードが必要とされる。
以下に具体例を示す。
[第1の具体例]
この例は、CPUのコード用として、データ領域ARDTが1ワード(Word)=4バイト(Byte)単位、読み出し専用(リードオンリ:Read Only)の場合で、ECCが不要である場合である。
図7に示すようなレジスタ領域ARRGに対し、「DATA_UNIT_SIZE_REG」=0x04、「ECC_UNIT_SIZE」=0x00が設定される。
プログラムコードのようにリードオンリであるデータについては、書換え回数が増大しないためECCコードを不要と判断し、ECC領域ARECを0に設定にする。
これにより、ECC領域ARECは未使用となり、ECCを持たない通常のROMのように使用することができる。
[第2の具体例]
この例は、CPUのデータ領域として、データ領域ARDTが128バイト単位で、読み出し(Read)/書き込み(Write)アクセスする場合で、4バイトのECCが必要である場合である。
図7に示すようなレジスタ領域ARRGに対し、「DATA_UNIT_SIZE_REG」=0x80、「ECC_UNIT_SIZE_REG」=0x04を設定する。
図10は、本実施形態に係る不揮発性記憶領域設定機能の処理フローおよびレジスタ領域ARRGを示す図である。
本実施形態では、不揮発性記憶領域制御部212に対して、ホスト装置30がメモリコントローラ22を介して主にアクセスする単位として使用する複数バイトからなるデータ領域単位サイズを設定する。
不揮発性記憶領域設定機能は、データ領域単位サイズをデータ領域単位サイズレジスタ「DATA_UNIT_SIZE_REG」に書き込み(ST1)、ECC領域単位サイズをECC領域単位サイズレジスタ「ECC_UNIT_SIZE_REG」に書き込む(ST2)。
次に、読み出し(Read)および書き込み(Write)時のデータ領域ARDTおよびECC領域ARECへのアクセス処理について、図11および図12に関連付けて説明する。
図11は、読み出し(Read)時のデータ領域およびECC領域へのアクセス処理について説明するためのフローチャートである。
図12は、書き込み(Write)時のデータ領域およびECC領域へのアクセス処理について説明するためのフローチャートである。
なお、ここでは、NVRAM21のデータバス幅が32ビット(4バイト)であり、データ領域もECC領域もこのバス幅でアクセスされる場合を例に説明する。したがって、ホスト側も4バイトの倍数をアクセス単位のサイズとして選択する。
まず、読み出し(Read)時のデータ領域ARDTおよびECC領域ARECへのアクセス処理について、図11に関連付けて説明する。
データ領域ARDTのデータが0バイトから4バイトごとに読み出される(ST11〜ST13)。
この読み出しは、バイトカウント値がレジスタ領域ARRGのデータ領域単位サイズレジスタ「DATA_UNIT_SIZE_REG」に設定されているデータ領域単位サイズまで行われる(ST14)。
ステップST14において、バイトカウント値がデータ領域単位サイズレジスタ「DATA_UNIT_SIZE_REG」に設定されているデータ領域単位サイズを越えていると判定されると、データの読み出しに続いてECC領域ARECのECCコードが読み出される。
ECCデータ領域ARECのデータが0バイトから4バイトごとに読み出される(ST15〜ST17)。
この読み出しは、バイトカウント値がレジスタ領域ARRGのECC領域単位サイズレジスタ「ECC_UNIT_SIZE_REG」に設定されているECC領域単位サイズまで行われる(ST18)。
ステップST18において、バイトカウント値がECC領域単位サイズレジスタ「ECC_UNIT_SIZE_REG」に設定されているECC領域単位サイズを越えていると判定されると、データおよびECCコードの読み出しが終了される。
次に、書き込み(Write)時のデータ領域ARDTおよびECC領域ARECへのアクセス処理について、図12に関連付けて説明する。
データ領域ARDTに0バイトから4バイトごとにデータが書き込まれる(ST21〜ST23)。
この書き込みは、バイトカウント値がレジスタ領域ARRGのデータ領域単位サイズレジスタ「DATA_UNIT_SIZE_REG」に設定されているデータ領域単位サイズまで行われる(ST24)。
ステップST14において、バイトカウント値がデータ領域単位サイズレジスタ「DATA_UNIT_SIZE_REG」に設定されているデータ領域単位サイズを越えていると判定されると、データの書き込みに続いてECC領域ARECのECCコードが書き込まれる。
ECCデータ領域ARECに0バイトから4バイトごとにECCコードが書き込まれる(ST25〜ST27)。
この書き込みは、バイトカウント値がレジスタ領域ARRGのECC領域単位サイズレジスタ「ECC_UNIT_SIZE_REG」に設定されているECC領域単位サイズまで行われる(ST28)。
ステップST28において、バイトカウント値がECC領域単位サイズレジスタ「ECC_UNIT_SIZE_REG」に設定されているECC領域単位サイズを超えていると判定されると、データおよびECCコードの書き込みが終了される。
次に、データ領域単位サイズ分のデータ領域ARDTと、ECC領域単位サイズ分のECC領域ARECに連続してアクセスする処理について、図13(A)および(B)に関連付けて説明する。
図13(A)および(B)は、データ領域単位サイズ分のデータ領域と、ECC領域単位サイズ分のECC領域に連続してアクセスする処理を説明するための図である。
図13(A)は、データ領域単位サイズ分のデータ領域と、ECC領域単位サイズ分のECC領域に連続してアクセスする処理を説明するためのフローチャートである。
図13(B)は、データ領域単位サイズ分のデータ領域と、ECC領域単位サイズ分のECC領域に連続してアクセスする処理で用いられるレジスタ領域の一例を示している。
この連続アクセス処理においては、レジスタ領域ARRGに、図7等のレジスタに加えてコマンドとデータ転送とその引数を設定するためのレジスタが追加されている。
すなわち、コマンド設定レジスタ「CMD_REG」とデータ転送レジスタ「DATA_REG」とデータアドレスレジスタ「DATA_ADR_REG」の3つのレジスタが追加されている。
コマンド設定レジスタ「CMD_REG」に対する書き込みは、レジスタにコマンドを設定し、実行することを意味する。
一例として、データ領域単位サイズ分のデータ領域ARDTとECC領域単位サイズ分のECC領域ARECを連続して読み出す「READ_UNITコマンド(0x01)」と、データ領域単位サイズ分のデータ領域とECC領域単位サイズ分のECC領域を連続して書き込む「WRITE_UNITコマンド(0x02)」について説明する。
データアドレスレジスタ「DATA_ADR_REG」に対する書き込みは、コマンドの引数となるデータ領域のアドレスを設定することを意味する。
REG[0]はCMD_REGにコマンド設定後は、DATA_REGに切り替わって使用する。つまり設定したコマンドに従って、READ_UNITコマンドの場合は、DATA_REGを繰り返し読み出すことによってデータの連続転送を行い、WRITE_UNITコマンドの場合は、DATA_REGに繰り返し書き込むことによってデータの連続転送を行う。
また、データ領域、ECC領域それぞれの単位サイズは、連続アクセス処理開始以前に設定済みであるとする。
この連続アクセス処理においては、図13(A)に示すように、データアドレスレジスタ「DATA_ADR_REG」にコマンドの引数となるデータ領域ARDTのアドレスが設定される(ST31)。
次に、コマンド設定レジスタ「CMD_REG」にコマンドが設定され、実行される(ST32)。
設定されるコマンドが、「READ_UNITコマンド(0x01)」である場合には、次の処理が行われる。
第1のステップで、DATA_ADR_REGに読み出しを行うデータ領域ARDTのアドレスを設定し、第2のステップで、CMD_REGにREAD_UNITコマンドであることを示す0x01を設定し、連続アクセス処理を開始する。
第3のステップでは、指定したデータ領域ARDTのアドレスからデータ領域単位サイズのデータがDATA_REGに出力され、第4のステップではそのデータ領域ARDTに割り当てられたECC領域ARECのECC領域単位サイズのデータがDATA_REGに連続して出力される(ST33、ST34)。
設定されるコマンドが、「WRITE_UNITコマンド(0x02)」である場合、次の処理が行われる。
第1のステップで、DATA_ADR_REGに読み出しを行うデータ領域ARDTのアドレスを設定し、第2のステップで、CMD_REGにWRITE_UNITコマンドであることを示す0x02を設定し、連続アクセス処理を開始する。
第3のステップでは、指定したデータ領域ARDTのアドレスに書き込むデータ領域単位サイズのデータをDATA_REGに入力し、第4のステップではそのデータ領域に割り当てられたECC領域ARECのECC領域単位サイズのデータをDATA_REGに連続して入力し、各領域に書き込まれる(ST33、ST34)。
次に、データ領域ARDTおよびECC領域ARECの各単位サイズの設定を有効とするデータ領域ARDTのアドレス範囲を指定することが可能である場合の実現例について、図14に関連付けて説明する。
図14は、データ領域ARDTのデータ領域単位サイズを設定する場合に、その設定を有効とするデータ領域のアドレス範囲を指定するための拡張を行った場合のレジスタ領域ARRGの一例を示す図である。
本実施例の場合、上記NVRAM21は同時に異なる単位サイズを持った複数のデータ領域ARDT、ECC領域ARECを持つことができる。
この場合、図14に示すように、レジスタ領域ARRGに、図7等のレジスタに加えてデータ領域開始アドレス設定レジスタ「DATA_START_ADR_REG」とデータ領域サイズレジスタ「DATA_SIZE_REG」の2つのレジスタが追加されている。
データ領域開始アドレス設定レジスタ「DATA_START_ADR_REG」は、
データ領域ARDT、ECC領域ARECの各単位サイズを設定するデータ領域上の先頭アドレスが設定される。
「DATA_START_ADR_REG」にアドレス値を設定することによって、データ領域サイズレジスタ「DATA_SIZE_REG」は、読み出し(Read)時には、次の処理を行う。すなわち、データ領域サイズレジスタ「DATA_SIZE_REG」は、読み出し(Read)時には、「DATA_START_ADR_REG」で指定されたアドレスを先頭とする領域のサイズを返す。
この状態で、「DATA_SIZE_REG」に書き込みを行うことによって、DATA_UNIT_SIZE_REG、ECC_UNIT_SIZE_REGに設定した各単位サイズが有効であるデータ領域ARDT上のアドレス領域のサイズの設定が可能である。
「DATA_START_ADR_REG」にアドレス値を設定することによって、データ領域単位サイズレジスタ「DATA_UNIT_SIZE_REG」は、読み出し(Read)時には、次の処理を行う。すなわち、データ領域単位サイズレジスタ「DATA_UNIT_SIZE_REG」は、読み出し(Read)時には、「DATA_START_ADR_REG」で指定されたアドレスの、データ領域単位サイズを返す。
これによってメモリコントローラ22は、そのデータ領域に設定したデータ領域単位サイズを確認することが可能である。
この状態で、「DATA_UNIT_SIZE_REG」に書き込みを行うことによってデータ領域単位サイズの変更が可能である。
「DATA_START_ADR_REG」にアドレス値を設定することによって、ECC領域単位サイズレジスタ「ECC_UNIT_SIZE_REG」は、読み出し(Read)時には、「DATA_START_ADR_REG」で指定されたアドレスの、ECC領域単位サイズを返す。
これによってメモリコントローラ22は、そのデータ領域に設定したECC領域単位サイズを確認することが可能である。
この状態で、「ECC_UNIT_SIZE_REG」に書き込みを行うことによってECC領域単位サイズの変更が可能である。
ECCコードレジスタ「ECC_CODE_0_REG」〜「ECC_CODE_X_REG」は、読み出し(Read)時には、データ領域ARDTへアクセスした際、そのデータ領域に割り当てられたECC領域ARECの値が取得される。
書き込み(Write)時には、データ領域ARDTへアクセスした際、そのデータ領域に割り当てられたECC領域ARECの値を設定する。
Xの値は、ECC_UNIT_SIZE_REGの設定として有効な最大値によって決まり、アクセス時に使用するECC_CORE_0_REG〜ECC_CODE_X_REGの範囲はそのアドレスに割り当てられたECC領域のサイズによって決まる。
なお、レジスタ領域ARRGに設定した状態はNVRAM21の内部に配置される設定保存機能部としての不揮発性メモリに保持することが望ましい。
保存する機能を持たない場合は、たとえば上記NVRAMを制御、管理するメモリコントローラ22がNVRAM21の初期化処理の一部としてレジスタに毎回設定する。
図15(A)および(B)は、NVRAM内の設定保存機能の有無に応じた設定情報の処理を説明するためのフローチャートである。
図15(A)は、設定保存機能を有する場合の処理フローを示している。
この場合、NVRAM21への初期化後、たとえばリセット解除後、設定保存部から自動的に設定がロードされる(ST41)。
図15(B)は、設定保存機能を有していない場合の処理フローを示している。
この場合、NVRAM21にアクセスを開始する前にメモリコントローラ22がレジスタ設定を行う(ST42)。設定後、初期化し、NVRAM21にアクセスが開始される(ST43)。
<2.第2の実施形態>
図16は、本発明の第2の実施形態に係るNVRAMの構成例を示す図である。
本第2の実施形態に係るNVRAM21Aが第1の実施形態のNVRAM21と異なる点は、不揮発性記憶領域制御部212Aはデータ領域とECC領域が独立した不揮発性記憶領域211A−2に割り当てられていることにある。
この場合も第1の実施形態と同様に、データ領域211A−1はメモリコントローラ22から与えられたアドレスでアクセスされ、ECC領域211A−2は不揮発性記憶領域制御部212によって生成されたアドレスでアクセスされる。
本発明の実施形態の対象となるNVRAMはアドレス空間としてデータ領域とECC領域が区別可能であることが必要であり、実際に物理的なメモリセルとして分割されていることを条件としない。図6および図16はそれぞれの場合の例を示している。
上述した実施形態では、書き換え可能なNVRAMについて説明してきたが、書き換え前に消去が必要となるNVRAMについても適用可能である。
本実施形態では、ECC領域へのアクセスをレジスタ経由としたが、制御ピンや、コマンドによって実現する手法も適用することが可能である。
以上説明したように、本実施形態によれば、以下の効果を得ることができる。
バイトの単位でランダムアクセス可能なNVRAMにおいて、アプリケーションに適した仕様に従ってホスト装置側が設定できる。
ホスト装置が設定したサイズでランダムアクセスされることを前提にNVRAM内の構成を変更することができる。
ECC領域に保存されるECCコードはホスト側で計算され、読み出し時にデータエラーからの復帰を可能にすることで、結果としてNVRAMの書換え回数を改善することができる。
つまり、リードオンリ(Read Only)なデータの場合には、ECC性能は最小限あるいは不要の設定が可能であり、煩雑に書込みを行うデータの場合には、ECC性能を最大限に設定しデータの信頼性を上げるといったことが可能である。
ホスト装置は上記のような設定をメモリコントローラ内のNVM制御部を通して、NVRAMに対して設定することが可能である。
メモリコントローラは、NVRAMに対してECCコードを保存するためのデータ領域とECC領域の各単位サイズを設定することができる。
ECCコードのサイズは、対象とするデータサイズと必要とされるECCの訂正・検出能力によって決まる。
つまり本実施形態によって、その不揮発性メモリを使用するホストはその上で動作するアプリケーションに最適なアクセス単位サイズ、ECC性能によってNVRAMへのアクセス方法を決定することができる。
上記設定においてホスト装置がランダムアクセス性能を重視する場合には、そのアクセス単位に合わせてデータ領域のデータ単位を設定可能である。
このアクセス単位は、もしホスト装置とメモリコントローラ間のデータ転送としてDMA転送などで高速アクセスを行う場合には、DMA転送可能なサイズに合わせて決定することも可能である。
ホスト装置とその上で動作するアプリケーションが、本発明の実施形態に係るNVRAMに対してランダムアクセスとして期待するアクセス単位を、データ領域単位サイズとして設定することできる。
そして、ECCコードを付加することによるデータ変更時のオーバーヘッドを小さくすることができる。
図17は、アクセス単位によるオーバーヘッドの例を示す図である。
ハッチングで示す部分が実際のアクセスが発生するデータである(Half Word、16Bit)。
アクセスするサイズとデータ領域単位サイズが不一致のため、ECCを計算するために必ずWord(32Bit)で読み出す必要が発生する。
ここでは32Bitを例としたがこのデータ領域単位サイズが大きいほど、ECCを計算するために読み出すデータ量は増加し、オーバーヘッドが増大することでパフォーマンスを低下させる。
本実施形態によれば、データ領域単位サイズをアクセスサイズに合わせることでECC計算のために余分なデータの読出しが不要となる。
また、ユーザーがランダムアクセスで期待するアドレス境界に合わせてECCコードを付加する領域を提供することで、ランダムアクセスに対するECCによるオーバーヘッドを小さくすることができる。
図18は、アドレス境界によるオーバーヘッドの例を示す図である。
ハッチングで示す部分が実際のアクセスが発生するデータである(Word、32Bit)。
アクセスするサイズとデータ領域単位サイズは一致するが、データ境界が不一致のため、ECCを計算するために必ず2Word読み出す必要が発生する。
本実施形態によれば、データ領域単位サイズの境界を合わせることでECC計算を1回にすることができる。
10・・・メモリシステム、20・・・NVRAMを含む不揮発性メモリシステム、21,21A・・・NVRAM、211・・・不揮発性記憶領域、211A−1・・・データ領域(不揮発性記憶領域)、211A−2・・・ECC領域(不揮発性記憶領域)、212,212A・・・不揮発性記憶領域制御部、2121・・・データ領域アドレス変換部、2122・・・ECC領域アクセス制御部、2123・・・レジスタ(領域)、2124・・・レジスタ設定保存部、22・・・メモリコントローラ、30・・・ホスト装置30、ARDT・・・データ領域、AREC・・・ECC領域。

Claims (13)

  1. ランダムアクセス可能で、データを保存するデータ領域と、エラー訂正コード(ECC)を保存するためのECC領域の2つの領域を含む不揮発性記憶領域と、
    上記データ領域にアクセスする際に使用するデータサイズをデータ領域単位サイズとして外部から設定するための不揮発性記憶領域設定機能を実現する不揮発性記憶領域制御部と、を有し、
    上記不揮発性記憶領域制御部は、
    上記設定されたデータ領域単位サイズに従って上記データ領域とECC領域を管理し、上記データ領域のデータ領域単位サイズごとに、上記不揮発性記憶領域制御部が設定したECC領域単位サイズのECC領域を割り当てる機能を含む
    不揮発性ランダムアクセスメモリ。
  2. 上記不揮発性記憶領域制御部は、
    上記データ領域とデータ領域単位サイズの設定と同様に、上記ECC領域のECC領域単位サイズを設定できる機能を含む
    請求項1記載の不揮発性ランダムアクセスメモリ。
  3. 上記不揮発性記憶領域制御部は、
    設定したデータ領域単位サイズに従ってECC領域単位サイズを設定し、上記データ領域のデータ領域単位サイズごとにECC領域を割り当てる
    請求項2記載の不揮発性ランダムアクセスメモリ。
  4. 上記設定されたデータ領域単位サイズの上記データ領域にアクセスする機能を有する
    請求項1から3のいずれか一に記載の不揮発性ランダムアクセスメモリ。
  5. 上記設定されたECC領域単位サイズの上記ECC領域にアクセスする機能を有する
    請求項1から4のいずれか一に記載の不揮発性ランダムアクセスメモリ。
  6. 上記設定された各単位サイズの上記データ領域と、当該データ領域に割り当てられた上記ECC領域に連続してアクセスする機能を有する
    請求項1から3のいずれか一に記載の不揮発性ランダムアクセスメモリ。
  7. 上記単位サイズの設定を有効とするデータ領域のアドレス範囲を指定する機能を有する
    請求項1から6のいずれか一に記載の不揮発性ランダムアクセスメモリ。
  8. 上記単位サイズの設定を有効とするデータ領域のアドレス範囲を複数指定する機能を有することによって、異なる単位サイズを持った複数のデータ領域とECC領域の組合せを複数含む
    請求項7記載の不揮発性ランダムアクセスメモリ。
  9. 上記不揮発性記憶領域制御部で設定した情報を内部不揮発性記憶部に保持する機能を有する
    請求項1から8のいずれか一に記載の不揮発性ランダムアクセスメモリ。
  10. 上記内部不揮発性記憶部に保持された設定情報を初期化処理の一部として外部からのアクセスを開始する前に、不揮発性記憶領域制御部へ読み込む機能を有する
    請求項1から8のいずれか一に記載の不揮発性ランダムアクセスメモリ。
  11. 初期化処理終了後、アプリケーションの必要に応じて再設定は可能である
    請求項10記載の不揮発性ランダムアクセスメモリ。
  12. ランダムアクセス可能な不揮発性ランダムアクセスメモリと、
    上記不揮発性ランダムアクセスメモリへのアクセスを制御するメモリコントローラと、を有し、
    上記不揮発性ランダムアクセスメモリは、
    ランダムアクセス可能で、データ領域と、エラー訂正コード(ECC)を保存するためのECC領域の2つの領域を含む不揮発性記憶領域と、
    上記データ領域にアクセスする際に使用するデータサイズをデータ領域単位サイズとして外部から設定するための不揮発性記憶領域設定機能を実現する不揮発性記憶領域制御部と、を有し、
    上記不揮発性記憶領域制御部は、
    上記設定されたデータ領域単位サイズに従って上記データ領域とECC領域を管理し、上記データ領域単位サイズごとに、上記不揮発性記憶領域制御部が設定したECC領域単位サイズのECC領域を割り当てる機能を含む
    不揮発性メモリシステム。
  13. 上記メモリコントローラは、
    上記不揮発性記憶領域制御部を制御し、上記データ領域単位サイズを設定する機能と、上記ECC領域単位サイズを設定する機能を含む
    請求項12記載の不揮発性メモリシステム。
JP2009183517A 2009-08-06 2009-08-06 不揮発性ランダムアクセスメモリおよび不揮発性メモリシステム Expired - Fee Related JP5668279B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009183517A JP5668279B2 (ja) 2009-08-06 2009-08-06 不揮発性ランダムアクセスメモリおよび不揮発性メモリシステム
US12/816,685 US8429494B2 (en) 2009-08-06 2010-06-16 Nonvolatile random access memory and nonvolatile memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009183517A JP5668279B2 (ja) 2009-08-06 2009-08-06 不揮発性ランダムアクセスメモリおよび不揮発性メモリシステム

Publications (2)

Publication Number Publication Date
JP2011039585A true JP2011039585A (ja) 2011-02-24
JP5668279B2 JP5668279B2 (ja) 2015-02-12

Family

ID=43535710

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009183517A Expired - Fee Related JP5668279B2 (ja) 2009-08-06 2009-08-06 不揮発性ランダムアクセスメモリおよび不揮発性メモリシステム

Country Status (2)

Country Link
US (1) US8429494B2 (ja)
JP (1) JP5668279B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012174088A (ja) * 2011-02-23 2012-09-10 Hitachi Ltd メモリ制御装置
JP2013242694A (ja) * 2012-05-21 2013-12-05 Renesas Mobile Corp 半導体装置、電子装置、電子システム及び電子装置の制御方法
US8898541B2 (en) 2011-11-30 2014-11-25 Sony Corporation Storage controller, storage device, information processing system, and storage controlling method
WO2022064302A1 (ja) * 2020-09-22 2022-03-31 株式会社半導体エネルギー研究所 記憶装置

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8732538B2 (en) * 2011-03-10 2014-05-20 Icform, Inc. Programmable data storage management
TW201337936A (zh) * 2012-03-06 2013-09-16 Innodisk Corp 可提升資料校正能力之快閃記憶體裝置
US9819365B2 (en) * 2014-07-20 2017-11-14 HGST, Inc. Incremental error detection and correction for memories
DE102016123247B4 (de) 2015-12-01 2024-03-21 Nvidia Corporation Systeme und verfahren zur speicherverwaltung
KR20170098538A (ko) * 2016-02-22 2017-08-30 에스케이하이닉스 주식회사 반도체 장치 및 그 구동 방법
US10467020B2 (en) * 2016-02-26 2019-11-05 Toshiba Memory Corporation Memory device, and information-processing device

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002091831A (ja) * 2000-09-12 2002-03-29 Hitachi Ltd データ処理システム及びデータ処理方法
JP2003131954A (ja) * 2001-08-16 2003-05-09 Hewlett Packard Co <Hp> 動的可変長誤り訂正符号
JP2005044386A (ja) * 2003-07-22 2005-02-17 Renesas Technology Corp 半導体記憶装置及びマイクロコンピュータ
JP2007207376A (ja) * 2006-02-03 2007-08-16 Matsushita Electric Ind Co Ltd 不揮発性記憶装置およびメモリコントローラ
JP2009510585A (ja) * 2005-09-27 2009-03-12 エヌエックスピー ビー ヴィ 誤り検出/訂正回路及び方法
JP2009259113A (ja) * 2008-04-18 2009-11-05 Toshiba Corp 不揮発性メモリ管理装置
JP2011514595A (ja) * 2008-02-29 2011-05-06 サムスン エレクトロニクス カンパニー リミテッド メモリセルに格納されるデータのビット数を決定する装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08137763A (ja) 1994-11-04 1996-05-31 Fujitsu Ltd フラッシュメモリ制御装置
JP3778540B2 (ja) * 1999-05-17 2006-05-24 東芝デジタルメディアエンジニアリング株式会社 信号処理回路及び情報記録装置
JP4074029B2 (ja) 1999-06-28 2008-04-09 株式会社東芝 フラッシュメモリ
JP3802411B2 (ja) * 2001-12-20 2006-07-26 株式会社東芝 不揮発性半導体記憶装置のデータコピー方法
US7664987B2 (en) * 2003-05-25 2010-02-16 Sandisk Il Ltd. Flash memory device with fast reading rate
KR100546348B1 (ko) * 2003-07-23 2006-01-26 삼성전자주식회사 플래시 메모리 시스템 및 그 데이터 저장 방법
JP2006018373A (ja) 2004-06-30 2006-01-19 Tdk Corp メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2006127441A (ja) 2004-09-30 2006-05-18 Tdk Corp メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2006221334A (ja) 2005-02-09 2006-08-24 Tdk Corp メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
US7810017B2 (en) * 2006-03-20 2010-10-05 Micron Technology, Inc. Variable sector-count ECC
US7900118B2 (en) * 2007-02-12 2011-03-01 Phison Electronics Corp. Flash memory system and method for controlling the same
JP4160625B1 (ja) 2007-04-04 2008-10-01 シャープ株式会社 誤り検出制御システム
JP4672742B2 (ja) * 2008-02-27 2011-04-20 株式会社東芝 メモリコントローラおよびメモリシステム
JP2010015197A (ja) * 2008-06-30 2010-01-21 Toshiba Corp ストレージ制御装置、データ復元装置およびストレージシステム
JP2010267164A (ja) * 2009-05-15 2010-11-25 Toshiba Storage Device Corp 記憶装置、データ転送制御装置、データ転送方法およびデータ転送プログラム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002091831A (ja) * 2000-09-12 2002-03-29 Hitachi Ltd データ処理システム及びデータ処理方法
JP2003131954A (ja) * 2001-08-16 2003-05-09 Hewlett Packard Co <Hp> 動的可変長誤り訂正符号
JP2005044386A (ja) * 2003-07-22 2005-02-17 Renesas Technology Corp 半導体記憶装置及びマイクロコンピュータ
JP2009510585A (ja) * 2005-09-27 2009-03-12 エヌエックスピー ビー ヴィ 誤り検出/訂正回路及び方法
JP2007207376A (ja) * 2006-02-03 2007-08-16 Matsushita Electric Ind Co Ltd 不揮発性記憶装置およびメモリコントローラ
JP2011514595A (ja) * 2008-02-29 2011-05-06 サムスン エレクトロニクス カンパニー リミテッド メモリセルに格納されるデータのビット数を決定する装置
JP2009259113A (ja) * 2008-04-18 2009-11-05 Toshiba Corp 不揮発性メモリ管理装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012174088A (ja) * 2011-02-23 2012-09-10 Hitachi Ltd メモリ制御装置
US8898541B2 (en) 2011-11-30 2014-11-25 Sony Corporation Storage controller, storage device, information processing system, and storage controlling method
JP2013242694A (ja) * 2012-05-21 2013-12-05 Renesas Mobile Corp 半導体装置、電子装置、電子システム及び電子装置の制御方法
WO2022064302A1 (ja) * 2020-09-22 2022-03-31 株式会社半導体エネルギー研究所 記憶装置

Also Published As

Publication number Publication date
US20110035646A1 (en) 2011-02-10
JP5668279B2 (ja) 2015-02-12
US8429494B2 (en) 2013-04-23

Similar Documents

Publication Publication Date Title
JP5668279B2 (ja) 不揮発性ランダムアクセスメモリおよび不揮発性メモリシステム
US10657047B2 (en) Data storage device and method of performing partial garbage collection
US5787493A (en) Control method and apparatus for direct execution of a program on an external apparatus using a randomly accessible and rewritable memory
EP2306321B1 (en) Increasing memory performance in flash memory devices by performing simultaneous write operation to multiple devices
JP4524309B2 (ja) フラッシュメモリ用のメモリコントローラ
US8606987B2 (en) Data writing method for flash memory and controller using the same
US8316176B1 (en) Non-volatile semiconductor memory segregating sequential data during garbage collection to reduce write amplification
US8180953B2 (en) Data accessing method for flash memory, and storage system and controller system thereof
JP4837731B2 (ja) プログラム可能な耐久度を有するフラッシュメモリ
KR100780861B1 (ko) 버퍼 메모리를 내장한 플래시 메모리 장치 및 플래시메모리 시스템
US20050172068A1 (en) Memory card and semiconductor device
US20090198875A1 (en) Data writing method for flash memory, and controller and system using the same
US20100082878A1 (en) Memory controller, nonvolatile storage device, nonvolatile storage system, and data writing method
TWI679534B (zh) 資料儲存裝置以及資料儲存方法
JP5143601B2 (ja) 情報処理装置と情報処理方法およびストレージシステム
JPWO2007105688A1 (ja) メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
US20080126671A1 (en) Nonvolatile memory system and a method of controlling nonvolatile memories
JP2003076605A (ja) ブロック消去型不揮発メモリを搭載した半導体記憶装置とそのデータの書込み・読出し方法
JP2009015364A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2005115562A (ja) フラッシュrom制御装置
US6898680B2 (en) Minimization of overhead of non-volatile memory operation
US20240094914A1 (en) Memory system and non-volatile memory
WO2023100212A1 (ja) メモリコントローラおよびフラッシュメモリシステム
TWI664569B (zh) 資料儲存裝置及系統資訊的編程方法
JP2007317078A (ja) 不揮発性メモリ、メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120712

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130829

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130924

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140422

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140612

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: 20141118

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141201

R151 Written notification of patent or utility model registration

Ref document number: 5668279

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees