JP6447629B2 - 記憶制御装置、記憶装置、および、その記憶制御方法 - Google Patents

記憶制御装置、記憶装置、および、その記憶制御方法 Download PDF

Info

Publication number
JP6447629B2
JP6447629B2 JP2016517847A JP2016517847A JP6447629B2 JP 6447629 B2 JP6447629 B2 JP 6447629B2 JP 2016517847 A JP2016517847 A JP 2016517847A JP 2016517847 A JP2016517847 A JP 2016517847A JP 6447629 B2 JP6447629 B2 JP 6447629B2
Authority
JP
Japan
Prior art keywords
read
write
address
command
data
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
JP2016517847A
Other languages
English (en)
Other versions
JPWO2015170550A1 (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.)
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
Publication of JPWO2015170550A1 publication Critical patent/JPWO2015170550A1/ja
Application granted granted Critical
Publication of JP6447629B2 publication Critical patent/JP6447629B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/004Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0097Erasing, e.g. resetting, circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • G11C2013/0076Write operation performed depending on read result

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本技術は、記憶制御装置に関する。詳しくは、記憶領域に対するアクセスを効率化させる記憶制御装置、記憶装置、および、その記憶制御方法ならびに当該方法をコンピュータに実行させるプログラムに関する。
不揮発メモリの一種である抵抗変化メモリにおいては、電流パルスあるいは電圧パルスを印加することによってメモリセルの抵抗値を変化させて、情報を記録する。低抵抗状態にあるセルを高抵抗状態に変化させるパルスと、高抵抗状態にあるセルを低抵抗状態に変化させるパルスとでは、その電圧または電流の極性や大きさが異なる。既に低抵抗状態にあるセルへ、低抵抗状態に変化させるパルスを更に印加すると、セルの特性が劣化するおそれがある。高抵抗状態にあるセルにおいても同様である。したがって、このようなメモリセルに書込みを行う際には、書込みパルスを印加する前に現在のセルの状態を読み出して、現在のセルの状態と書き込もうとする値とが一致している場合には、そのセルにはパルス印加を行わないような制御を行うことが望ましい。このような制御を行うことにより、セルの寿命を延ばすことができ、また、不要なパルス印加による消費電力を削減することができる。例えば、抵抗変化を利用した相変化メモリを想定して、メモリセルへの書込みの際に、現在の値を読み出して、現在の値と書き込もうとする値とが異なるビットにのみ書込みパルスを印加する半導体記憶装置が提案されている(例えば、特許文献1参照。)。
特開2010−244607号公報
上述の従来技術では、メモリセルへの書込みの際に、一旦、現在の値を読み出すことにより、不要なパルス印加を回避している。しかしながら、データを読み出した直後に同じアドレスに新しいデータを書き込む状況を想定すると、同じデータを続けて2回読み出すことになり、無駄な動作を行っていることになる。このような状況は、ウェアレベリングやデータスワップなどにおいて生じるものであり、実用上、高速な処理が要求される。
本技術はこのような状況に鑑みて生み出されたものであり、同一アドレスに対する読出しおよび書込みが続く際に、記憶領域に対するアクセスを効率化させることを目的とする。
本技術は、上述の問題点を解消するためになされたものであり、その第1の側面は、メモリアレイの所定のアドレスに記憶されているデータを読出しデータとして上記メモリアレイから読み出して読出しデータ保持部に保持させるメモリ読出し部と、上記読出しデータ保持部に保持されている上記読出しデータを要求元に出力する読出しデータ出力部と、上記メモリアレイに対する書込みデータおよび上記読出しデータに基づいて上記メモリアレイの書込み対象アドレスに書込みを行うメモリ書込み部と、上記書込み対象アドレスと上記所定のアドレスとが一致する場合にのみ上記メモリ書込み部を動作させるよう制御する制御部とを具備する記憶装置およびその記憶制御方法である。これにより、書込みを行う際のプレリード処理を不要にするという作用をもたらす。
また、この第1の側面において、上記制御部は、上記メモリアレイからの読出しおよび書込みを同一アドレスに連続して行う旨のコマンドが発行された際に上記書込み対象アドレスと上記所定のアドレスとが一致すると判断するようにしてもよい。
また、この第1の側面において、上記制御部は、上記読出しデータ保持部に保持されている上記読出しデータを要求元に出力する旨のコマンドが発行された際に上記書込み対象アドレスと上記所定のアドレスとが一致すると判断するようにしてもよい。
また、この第1の側面において、上記制御部は、上記書込み対象アドレスについて上記読出しデータ保持部に新たなデータを保持させずに書込みを行う旨のコマンドが発行された際に上記書込み対象アドレスと上記所定のアドレスとが一致すると判断するようにしてもよい。
また、この第1の側面において、上記制御部は、上記書込み対象アドレスと上記所定のアドレスとの上記一致を検出するアドレス一致検出部を備えて、上記書込み対象アドレスと上記所定のアドレスとが一致するか否かを判断するようにしてもよい。
また、本技術の第2の側面は、記憶装置と、上記記憶装置に対するアクセス要求を制御するメモリコントローラと、上記記憶装置に対するアクセスコマンドを上記メモリコントローラに発行するホストコンピュータとを具備する情報処理システムであって、上記記憶装置は、メモリアレイの所定のアドレスに記憶されているデータを読出しデータとして上記メモリアレイから読み出して読出しデータ保持部に保持させるメモリ読出し部と、上記読出しデータ保持部に保持されている上記読出しデータを要求元に出力する読出しデータ出力部と、上記メモリアレイに対する書込みデータおよび上記読出しデータに基づいて上記メモリアレイの書込み対象アドレスに書込みを行うメモリ書込み部と、上記書込み対象アドレスと上記所定のアドレスとが一致する場合にのみ上記メモリ書込み部を動作させるよう制御する制御部とを備える情報処理システムである。これにより、ホストコンピュータからの要求に従って書込みを行う際のプレリード処理を不要にするという作用をもたらす。
本技術によれば、同一アドレスに対する読出しおよび書込みが続く際に、記憶領域に対するアクセスを効率化させることができるという優れた効果を奏し得る。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
本技術の実施の形態におけるメモリシステムの構成例を示す図である。 本技術の実施の形態におけるNVMアレイ311を構成する不揮発メモリの一例としての抵抗変化型メモリの抵抗状態を示す図である。 本技術の実施の形態における比較器314の真理値表の一例を示す図である。 本技術の実施の形態におけるNVMアレイ311のセンス動作の一例を示す流れ図である。 本技術の実施の形態におけるNVMアレイ311のプログラム動作の一例を示す流れ図である。 本技術の実施の形態における記憶装置300のアドレス空間の一例を示す図である。 本技術の実施の形態における記憶装置300のリードコマンドの処理手順例を示す流れ図である。 本技術の実施の形態における記憶装置300のリードコマンドの処理手順例を示すタイミング図である。 本技術の実施の形態における記憶装置300のライトコマンドの処理手順例を示す流れ図である。 本技術の実施の形態における記憶装置300のライトコマンドの処理手順例を示すタイミング図である。 本技術の第1の実施の形態における記憶装置300のRWコマンドの処理手順例を示す流れ図である。 本技術の第1の実施の形態における記憶装置300のRWコマンドの処理手順例を示すタイミング図である。 本技術の第1の実施の形態におけるメモリコントローラ200のコマンド受信処理手順例を示す流れ図である。 本技術の第1の実施の形態におけるメモリコントローラ200のコマンド送出手順例を示す流れ図である。 本技術の第2の実施の形態における記憶装置300のDATAOUTコマンドの処理手順例を示す流れ図である。 本技術の第2の実施の形態における記憶装置300のDATAOUTコマンドの処理手順例を示すタイミング図である。 本技術の第3の実施の形態における記憶装置300のBWコマンドの処理手順例を示す流れ図である。 本技術の第3の実施の形態における記憶装置300のBWコマンド単体の処理手順例を示すタイミング図である。 本技術の第3の実施の形態における記憶装置300のBWコマンドをリードコマンドの直後に実行する際の処理手順例を示すタイミング図である。 本技術の第4の実施の形態におけるリードアドレス検出レジスタ327の一構成例を示す図である。 本技術の第4の実施の形態における記憶装置300のIF320による処理手順例を示す流れ図である。 本技術の第4の実施の形態における高速ライトの処理手順例を示すタイミング図である。 本技術の第6の実施の形態におけるメモリコントローラ200による処理手順例を示す流れ図である。 本技術の第7の実施の形態におけるメモリコントローラ200による処理手順例を示す流れ図である。
以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.第1の実施の形態(RWコマンドを利用する例)
2.第2の実施の形態(DATAOUTコマンドを利用する例)
3.第3の実施の形態(BWコマンドを利用する例)
4.第4の実施の形態(メモリ装置による検出を契機とする例)
5.第5の実施の形態(ホストコンピュータによるコマンド発行の例)
6.第6の実施の形態(データスワップの適用例)
7.第7の実施の形態(リフレッシュの適用例)
<1.第1の実施の形態>
[メモリシステムの構成]
図1は、本技術の実施の形態におけるメモリシステムの構成例を示す図である。なお、この図および以降の図では各実施の形態の説明に必要な回路構成と信号線のみを記しているが、メモリシステムとして必要なその他の回路および信号線も備えるものとする。
このメモリシステムは、ホストコンピュータ100と、メモリコントローラ200と、1つ以上の記憶装置300とを備える。記憶装置300は、インターフェース(IF)320と、1つ以上のバンク310とから構成される。
ホストコンピュータ100は、記憶装置300に対するデータのリード処理やライト処理等を要求するコマンドを発行するものである。このホストコンピュータ100は、Host_CmdAddr信号線109により、メモリコントローラ200の動作を指示するコマンドと、コマンドの操作対象を示すアドレスとを連続して送信する。また、このホストコンピュータ100は、Host_Data信号線108により、メモリコントローラ200との間のデータの送受信を行う。
メモリコントローラ200は、ホストコンピュータ100と通信してコマンドを受信し、記憶装置300に対するアクセスを行うものである。このメモリコントローラ200は、Host_CmdAddr信号線109によって受信したコマンドおよびアドレスを一時的に保持するコマンドアドレスレジスタ210を備える。また、このメモリコントローラ200は、受信したデータを一時的に保持するデータバッファ220を備える。また、このメモリコントローラ200は、Memory_Status信号線207によって受信した記憶装置300内部の状態を保持するステータスレジスタ230を備える。また、このメモリコントローラ200は、データのエラー検出と訂正を行うECC回路240を備える。
このメモリコントローラ200は、IF_CmdAddr信号線209により、記憶装置300の様々な動作を指示するコマンドと、操作対象のアドレスとを記憶装置300内のIF320に送信する。そして、IF_Data信号線208を介してIF320との間でデータを送受信する。また、このメモリコントローラ200は、Memory_Status信号線207により、記憶装置300内部の状態をIF320から受信して、ステータスレジスタ230に保持する。
バンク310の各々は、NVM(Non-Volatile Memory:不揮発メモリ)アレイ311と、リードラッチ312と、ライトラッチ313と、比較器314とを備える。NVMアレイ311は、データを記憶する記憶領域である。このNVMアレイ311は、2次元または3次元格子上に並べられた多数の不揮発メモリセルと、それらメモリセルを制御する周辺回路とからなる構造を有する。リードラッチ312およびライトラッチ313は、NVMアレイ311へのアクセスに際してデータを一時的に保持するための回路である。これらリードラッチ312およびライトラッチ313は、ラッチ回路、フリップフロップ回路、または、SRAMなどによって実現してもよい。比較器314は、論理ゲートからなり、リードラッチ312およびライトラッチ313の内容を比較して、NVMアレイ311がパルス印加を行う際の参照信号(Data_Set信号線317およびData_Reset信号線318)を生成するための回路である。
なお、この実施の形態では、リードラッチ312、ライトラッチ313および比較器314が記憶装置300のバンク310に設けられることを想定したが、これらはメモリコントローラ200に設けるようにしてもよい。
また、IF320は、特許請求の範囲に記載の制御部の一例であることを想定して説明したが、制御部の機能をメモリコントローラ200に設けるようにしてもよい。
[NVMアレイの特性]
図2は、本技術の実施の形態におけるNVMアレイ311を構成する不揮発メモリの一例としての抵抗変化型メモリの抵抗状態を示す図である。
抵抗変化型メモリのメモリセルは、セット動作によりLRS(低抵抗状態)に遷移し、リセット動作によりHRS(高抵抗状態)に遷移する。低抵抗状態と高抵抗状態との間で抵抗状態を可逆的に変化させることにより、1つのメモリセルによって1ビットを記憶することが可能な不揮発メモリが実現される。この実施の形態では、一例として、HRSを「0」が記録された状態、LRSを「1」が記録された状態と定義する。
セット動作は、1つのメモリセルの両端にセットパルスと呼ばれる電圧(または電流)パルスを印加することによって実現される。リセット動作は、1つのメモリセルの両端にリセットパルスと呼ばれる電圧(または電流)パルスを印加することによって実現される。
[比較器]
図3は、本技術の実施の形態における比較器314の真理値表の一例を示す図である。比較器314は、書き込もうとする値(Compare_W)が、既存の値(Compare_R)と同じ場合には、Data_Set信号線317およびData_Reset信号線318のいずれにも「0」を出力する。一方、Compare_WがCompare_Rと異なっている場合、Compare_W=1ならData_Set信号線317のみを「1」とし、Compare_W=0ならData_Reset信号線318のみを「1」とする。
なお、同図では比較器314の入出力が1ビットである場合を想定したが、比較器314の入出力は多ビットとすることもできる。その場合、入出力の各ビットに対して並列に、上述の真理値表に基づいた演算を行う。
[NVMアレイの動作]
本技術の実施の形態におけるNVMアレイ311は、IF320からのArray_Control信号線322の値に応じて、Array_Address信号線321によって指定されるメモリセルの操作を行う。
NVMアレイ311は、メモリセルをセットまたはリセットするために必要なデータ入力バス(Data_Set信号線317およびData_Reset信号線318)を備える。また、NVMアレイ311は、メモリセルから読み出したデータを出力するバス(Read_Latch_In信号線319)を備える。また、NVMアレイ311は、Array_Status信号線326により、自身の状態をIF320に伝達する。
NVMアレイ311は、Array_Control信号線322の信号として「センス(Sense)」および「プログラム(Program)」を認識し、それ以外の信号が入力されても何もしない。
Array_Status信号線326が「レディ(Ready)」を示すとき、IF320はArray_Control信号線322の信号として「センス」または「プログラム」を出力する。これにより、NVMアレイ311に新たなセンス動作またはプログラム動作を開始させる。
Array_Status信号線326が「プログラム中(Programming)」または「センス中(Sensing)」を示すとき、IF320からArray_Control信号線322に「センス」または「プログラム」を出力することは禁止される。
なお、Read_Latch_In信号線319は、特許請求の範囲に記載のメモリ読出し部の一例である。
図4は、本技術の実施の形態におけるNVMアレイ311のセンス動作の一例を示す流れ図である。このセンス動作は、IF320からのArray_Control信号線322に「センス」が出力されることにより開始する。
まず、NVMアレイ311は、Array_Status信号線326を「センス中」にする(ステップS911)。次に、Array_Address信号線321に出力されるアドレス値(図の例では「0」)を参照し、当該アドレスのメモリセルの抵抗値を測定して、リード閾値との比較によって、その論理値を判定する(ステップS912)。このようにして読み出されたデータは、Read_Latch_In信号線319に出力される(ステップS913)。
NVMアレイ311がArray_Status信号線326を「レディ」にセットして、センス動作は完了する(ステップS914)。
図5は、本技術の実施の形態におけるNVMアレイ311のプログラム動作の一例を示す流れ図である。このプログラム動作は、IF320からのArray_Control信号として「プログラム」が出力されることにより開始する。例として、操作対象のアドレス(Array_Address)は「0」とし、アドレス#0に既に書き込まれている値は「0011」とする。また、Data_Set信号線317には「0100」が、Data_Reset信号線318には「0010」がそれぞれセットされているものとする。
まず、NVMアレイ311は、Array_Status信号線326を「プログラム中」にする(ステップS921)。次に、Data_Set信号線317を参照して、アドレス#0のビット列のうち、Data_Set信号線317の値によって示されたビットのみを選択して、セットパルスを印加する(ステップS922)。この例ではData_Set信号線317が「0100」であるため、上位から2つめのビットのみが選択され、アドレス#0は「0011」から「0111」に書き換えられる。続いて、パルス印加を行ったビットの抵抗測定を行い、「1」が読み出されることの確認が行われる。セットパルスによる抵抗変化が不完全であり、「1」が読み出されなかった場合には(ステップS923:No)、再度セットパルスの印加が行われる。
その後、同様に、Data_Reset信号線318を参照して、アドレス#0のビット列のうちData_Reset信号線318によって示されたビットのみを選択して、リセットパルスを印加される(ステップS924)。そして、正しく「0」が読み出されることの確認が行われる。「0」が読み出されなかった場合には(ステップS924:No)、再度リセットパルスの印加が行われる。この例ではData_Reset信号線318が「0010」であるため、上位から3つめのビットのみが選択され、アドレス#0は「0111」から「0101」に書換えられる。
NVMアレイ311がArray_Status信号線326を「レディ」にセットして、プログラム動作は完了する(ステップS926)。
[アドレス空間]
図6は、本技術の実施の形態における記憶装置300のアドレス空間の一例を示す図である。この実施の形態におけるIF_CmdAddr信号線209の示すアドレスは、バンク番号と、バンク内のNVMアレイ311を最小アクセス単位ごとに区切りその個々に対して一意に割当てられた番号とを含む。最小アクセス単位は、例えば1Kバイトである。
アドレスは全部19ビットであり、上位3ビットがバンク番号、下位16ビットがバンク内のアドレスを示す。1つの記憶装置300に8(2の3乗)個のバンクを有し、1つのバンクに65536(2の16乗)個のアドレスを有する。このとき、1つの記憶装置300あたりの記録容量は、8×65536×1Kバイト=512Mバイトとなる。
[コマンド]
メモリコントローラ200による記憶装置300へのアクセスは、リードコマンド、ライトコマンド、および、RWコマンドの3つのコマンドの組み合わせによって実現される。各々の動作を以下に示す。なお、RWコマンドは、特許請求の範囲に記載のメモリアレイからの読出しおよび書込みを同一アドレスに連続して行う旨のコマンドの一例である。
図7は、本技術の実施の形態における記憶装置300のリードコマンドの処理手順例を示す流れ図である。また、図8は、本技術の実施の形態における記憶装置300のリードコマンドの処理手順例を示すタイミング図である。ここでは例として、IF_CmdAddr信号線209に指定されるアドレスが、バンク#0内のアドレス#0を指している場合を想定する。
メモリコントローラ200が、リードコマンドおよびアドレス#0(図では「R_A0」と表す)をIF_CmdAddr信号線209に出力すると、リードコマンドの処理が開始する。まず、IF320は、バンク#0のArray_Status信号線326を参照し、その値が「レディ」になるまで待機する(ステップS931、S932)。「レディ」になると(ステップS931:Yes)、IF320は、バンク#0のArray_Address信号線321に「0」を、Array_Control信号線322に「センス」を出力する(図では「S」と表す)(ステップS933)。これにより、NVMアレイ311がセンス動作を開始するとともに、Array_Status信号線326は「センス中」に遷移する。
一定時間経過後に、NVMアレイ311から読み出されたデータがRead_Latch_In信号線319に出力され、リードラッチ312に蓄積される。Read_Latch_In信号線319へのデータ出力が完了すると、Array_Status信号線326は「レディ」に遷移する。
IF320は、Array_Status信号線326が「レディ」になるまで待機する(ステップS934、S935)。「レディ」になると(ステップS934:Yes)、Latch_Control信号線323に制御信号「R」を出力して、リードラッチ312に蓄積された読出しデータを、Read_Latch_Out信号線324を介して読み出す。そして、IF320は、この読み出したデータを、IF_Data信号線208を介してメモリコントローラ200に出力する(ステップS936)。
なお、Read_Latch_Out信号線324は、特許請求の範囲に記載の読出しデータ出力部の一例である。
図9は、本技術の実施の形態における記憶装置300のライトコマンドの処理手順例を示す流れ図である。また、図10は、本技術の実施の形態における記憶装置300のライトコマンドの処理手順例を示すタイミング図である。ここでは例として、IF_CmdAddr信号線209において指定されるアドレスが、バンク#0内のアドレス#0を指している場合を想定する。
メモリコントローラ200が、ライトコマンドとアドレス#0(図では「W_A0」と表す)をIF_CmdAddr信号線209に出力すると、ライトコマンドの処理が開始する。メモリコントローラ200は、ライトコマンドの発行とともに、書込みデータ(図では「W_Data」と表す)を、IF_Data信号線208に出力する。IF320は、受け取った書込みデータを、バンク#0のWrite_Latch_In信号線325に順次出力する(ステップS941)。
書込みデータの入力開始と同時に、IF320はバンク#0のArray_Status信号線326を参照し、その値が「レディ」となるのを待つ(ステップS942、S943)。「レディ」になると(ステップS942:Yes)、IF320は、バンク#0のArray_Address信号線321に「0」を、Array_Control信号線322に「センス」を出力する(ステップS944)。これにより、NVMアレイ311がセンス動作を開始するとともに、Array_Status信号線326は「センス中」に遷移する。
一定時間経過後に、Array_Status信号線326は「レディ」に遷移し、その時点で、NVMアレイ311から読み出したデータのリードラッチ312への入力が完了している。IF320は、Array_Status信号線326が「レディ」になるまで待機する(ステップS945、S946)。「レディ」になると(ステップS945:Yes)、IF320は、Latch_Control信号線323に制御信号「C」を送信することにより、リードラッチ312およびライトラッチ313に蓄積されたデータを、比較器314に出力するよう命令する。これにより、リードラッチ312からはCompare_R信号線315を介してセンス動作によって得た読出しデータが、ライトラッチ313からはCompare_W信号線316を介して書込みデータが、それぞれ出力される(ステップS947)。Compare_R信号線315とCompare_W信号線316は、比較器314による演算を経て、Data_Set信号線317およびData_Reset信号線318に変換されて、NVMアレイ311に入力される。
IF320は、続いて、バンク#0のArray_Control信号線322に「プログラム」を出力する(図では「P」と表す)(ステップS948)。これにより、NVMアレイ311がプログラム動作を開始するとともに、Array_Status信号線326は「プログラム中」に遷移し、プログラム動作の完了とともに「レディ」に戻る。IF320は、Array_Status信号線326が「レディ」になるまで待機する(ステップS951、S952)。「レディ」となったことをIF320が確認すると(ステップS951:Yes)、ライトコマンドは完了する。
図11は、本技術の第1の実施の形態における記憶装置300のRWコマンドの処理手順例を示す流れ図である。また、図12は、本技術の第1の実施の形態における記憶装置300のRWコマンドの処理手順例を示すタイミング図である。ここでは例として、IF_CmdAddr信号線209において指定されるアドレスが、バンク#0内のアドレス#0を指している場合を想定する。
メモリコントローラ200が、RWコマンドとアドレス#0(図では「W_A0」と表す)をIF_CmdAddr信号線209に出力すると、RWコマンドの処理が開始する。メモリコントローラ200は、RWコマンドの発行とともに、書込みデータ(図では「W_Data」と表す)を、IF_Data信号線208に出力する。IF320は、受け取った書込みデータを、バンク#0のWrite_Latch_In信号線325に順次出力する(ステップS961)。
書込みデータの入力開始と同時に、IF320はバンク#0のArray_Status信号線326を参照し、その値が「レディ」となるのを待つ(ステップS962、S963)。「レディ」になると(ステップS962:Yes)、IF320は、バンク#0のArray_Address信号線321に「0」を、Array_Control信号線322に「センス」を出力する(ステップS964)。これにより、NVMアレイ311がセンス動作を開始するとともに、Array_Status信号線326は「センス中」に遷移する。
一定時間経過後に、Array_Status信号線326は「レディ」に遷移し、その時点で、NVMアレイ311から読み出したデータのリードラッチ312への入力が完了している。IF320は、Array_Status信号線326が「レディ」になるまで待機する(ステップS965、S966)。「レディ」になると(ステップS965:Yes)、Latch_Control信号線323に制御信号「C+R」を送信する。これにより、リードラッチ312およびライトラッチ313に蓄積されたデータを、比較器314に出力させるとともに(ステップS968)、Read_Latch_Out信号線324にも出力させる。このRead_Latch_Out信号線324に出力されたデータは、IF320からIF_Data信号線208を介してメモリコントローラ200に出力される(ステップS967)。Compare_R信号線315と、Read_Latch_Out信号線324は独立しており、同時動作が可能である。
IF320は、続いて、バンク#0のArray_Control信号線322に「プログラム」を出力する(図では「P」と表す)(ステップS969)。これにより、NVMアレイ311がプログラム動作を開始するとともに、Array_Status信号線326は「プログラム中」に遷移し、プログラム動作の完了とともに「レディ」に戻る。IF320は、Array_Status信号線326が「レディ」になるまで待機する(ステップS971、S972)。「レディ」となったことをIF320が確認すると(ステップS971:Yes)、RWコマンドは完了する。
このように、RWコマンドの処理では、データをリードラッチ312に読み出すところまではライトコマンドと同じ動作であるが、リードラッチに蓄積したデータを比較器314に出力するだけでなくRead_Latch_Out信号線324にも出力する。これにより、RWコマンドは、ライトコマンドと同じ実行時間で、同一アドレスへの書込みおよび読出しを実現することができる。
なお、ステップS964は、特許請求の範囲に記載のメモリ読出し手順の一例である。また、ステップS967は、特許請求の範囲に記載の読出しデータ出力手順の一例である。また、ステップS969は、特許請求の範囲に記載のメモリ書込み手順の一例である。
[ホストコンピュータおよびメモリコントローラの動作]
メモリコントローラ200は、Host_CmdAddr信号線109を介して、ホストコンピュータ100からのコマンドおよびアドレスを受信する。ホストコンピュータ100は、記憶装置300へのデータ書込みを指示するHost_WRITEコマンド、記憶装置300からの読出しを指示するHost_READコマンドの少なくとも2種類のコマンドを送信する。その際、それらコマンドのアクセス対象となるアドレスを送信する。また、ホストコンピュータ100は、ライトコマンドの送信と同時に、Host_Data信号線108を介して書込みデータをメモリコントローラ200に出力する。
図13は、本技術の第1の実施の形態におけるメモリコントローラ200のコマンド受信処理手順例を示す流れ図である。メモリコントローラ200は、ホストコンピュータ100からのコマンドを受信するたびに、この流れ図の処理を開始する。
Host_WRITEコマンド以外を受信した場合には(ステップS981:No)、Host_CmdAddr信号線109からの信号はコマンドアドレスレジスタ210に格納される(ステップS985)。
Host_WRITEコマンドを受信した場合には(ステップS981:Yes)、メモリコントローラ200は、Host_Data信号線108から書込みデータを受信して、データバッファ220に格納する(ステップS982)。そして、受信したHost_WRITEコマンドと同じアドレスに対するリードコマンドが、コマンドアドレスレジスタ210に存在するか否かを調べる。コマンドアドレスレジスタ210に存在しない場合には(ステップS983:No)、ライトコマンドと受信したアドレスとをコマンドアドレスレジスタ210に追加する。コマンドアドレスレジスタ210に存在する場合には(ステップS983:Yes)、同じアドレスに対するリードコマンドのうち、最後に受信したものをRWコマンドに書き換える(ステップS984)。そして、Host_WRITEコマンドとともに受信してデータバッファ220に格納したデータを、このRWコマンドに対応する書込みデータとする。
図14は、本技術の第1の実施の形態におけるメモリコントローラ200のコマンド送出手順例を示す流れ図である。メモリコントローラ200は、コマンドアドレスレジスタ210に蓄積された命令を処理する。
メモリコントローラ200は、一定時間ごとに、コマンドアドレスレジスタ210から、最も古い(最初に追加された)コマンドアドレスを1つ取り出す(ステップS991)。そして、取り出したアドレスに対応するバンクが「レディ」であるかを、ステータスレジスタ230を参照して調べる。「レディ」でなければ(ステップS992:No)、そのまま処理を終了する。「レディ」であれば(ステップS992:Yes)、取り出したコマンドアドレスをIF_CmdAddr信号線209に送出する(ステップS993)。取り出したコマンドがライトコマンドまたはRWコマンドである場合には(ステップS994:Yes)、Host_WRITEコマンドとともにホストコンピュータ100から受信した書込みデータがデータバッファ220に格納されていることになる。そのため、これをIF_Data信号線208に送出する(ステップS995)。メモリコントローラ200は、最後に送出したコマンドアドレスをコマンドアドレスレジスタ210から削除して(ステップS996)、処理を終了する。
これら一連の処理により、メモリコントローラ200は、ホストコンピュータ100からのHost_READコマンドに対応するリードコマンドをIF320に送出する前に、同一アドレスに対するHost_WRITEコマンドを受信したか否かを判定する。そのようなHost_WRITEコマンドについては、メモリコントローラ200は、RWコマンドを使用することにより、リードコマンドとライトコマンドを各々実行するよりも短い時間で処理を行うことができる。
このように、本技術の第1の実施の形態によれば、同一アドレスに対するリードコマンドおよびライトコマンドをRWコマンドに差し替えることにより、処理を高速化することができる。
<2.第2の実施の形態>
第1の実施の形態において説明したように、IF_Data信号線208は、複数のバンクによって共有されるデータバスである。あるバンクにおいて書込みまたは読出しを行っている間に他のバンクに別のコマンドを発行するといった、並列動作をさせることも想定される。ただし、第1の実施の形態では、あるバンクにRWコマンドを発行した後に、続けて他のバンクにリードコマンドやライトコマンドを発行する場合には、データの衝突を避ける必要がある。すなわち、メモリコントローラ200は、RWコマンドに対する読出しデータの出力と、後続のコマンドに対するデータ入出力とが衝突しないように、コマンドの発行間隔を調節する必要がある。特に、センス動作にかかる時間が一定の値でない場合には、データ衝突の回避が難しくなる。そこで、第2の実施の形態では、リードラッチ312からIF320へのデータ出力のみを行う記憶装置300のDATAOUTコマンドを定義し、RWコマンドと同様の動作を、ライトコマンドとDATAOUTコマンドとの組合せによって実現する。なお、DATAOUTコマンドは、特許請求の範囲に記載の読出しデータ保持部に保持されている読出しデータを要求元に出力する旨のコマンドの一例である。
[DATAOUTコマンド]
図15は、本技術の第2の実施の形態における記憶装置300のDATAOUTコマンドの処理手順例を示す流れ図である。また、図16は、本技術の第2の実施の形態における記憶装置300のDATAOUTコマンドの処理手順例を示すタイミング図である。ここでは例として、ライトコマンドおよびDATAOUTコマンドともに、バンク#0のアドレス#0に発行した場合を想定する。
IF320は、DATAOUTコマンドを受信すると、リードラッチ312の内容をメモリコントローラ200に出力する(ステップS811)。メモリコントローラ200は、まずライトコマンドを発行し、NVMアレイ311の状態が「センス中」から「レディ」になったことをMemory_Status信号線207により検知した後、DATAOUTコマンドを発行する(図では「DO_A0」と表す)。これにより、ライトラッチ313からNVMアレイ311への書込みが行われている間(Array_Status信号線326が「プログラム中」である間)に、リードラッチ312からデータを出力することができる。すなわち、RWコマンドと同様に、ライトコマンドと同様な実行時間により、同一アドレスへの書込みと読出しとを処理することができる。
なお、上述の例においてはDATAOUTコマンドにも他のコマンドと同様にアドレス「0」を付して発行しているが、DATAOUTコマンドはNVMアレイ311にアクセスしないため、実行に必要なのはバンク番号のみである。したがって、アドレスのビット列のうちバンクを示す部分のみを出力するようにしてもよい。
第1の実施の形態においてはArray_Status信号線326が「レディ」になった直後にRead_Latch_Out信号線324からデータ出力が開始されるが、この第2の実施の形態では読出しデータの出力がやや遅れる。これは、第2の実施の形態ではIF320がDATAOUTコマンドを認識してからデータ出力を行うためである。また、この第2の実施の形態では2つのコマンドの組合せによってRWコマンド1つ分の機能を実現するため、第1の実施の形態よりもコマンドバスを多く占有することになる。
このように、本技術の第2の実施の形態によれば、同一アドレスに対するリードコマンドおよびライトコマンドを、ライトコマンドとDATAOUTコマンドの組合せに差し替えることにより、処理を高速化することができる。
<3.第3の実施の形態>
上述の第1の実施の形態では、ライトコマンドと同じ実行時間でデータ出力を同時に行える点で速度改善効果が大きい手法である。しかし、書込みデータを先に入力して読出したデータが後で出力されることになり、通常のリードコマンドとライトコマンドを順に行う場合と比べて、IF_Data信号線208におけるデータの順序が逆になってしまう。そのため、メモリシステムの構成によってはメモリコントローラ200からの制御が煩雑になるおそれがある。
そこで、この第3の実施の形態では、通常のリードコマンドとライトコマンドを順に行う場合と同じデータの入出力順をとりながら、高速化を行うための手法を示す。具体的には、通常のリードコマンドとライトコマンドに加えて、書込みの最初に行われるセンス動作を省略した、BW(BLIND WRITE)コマンドを導入する。
図17は、本技術の第3の実施の形態における記憶装置300のBWコマンドの処理手順例を示す流れ図である。なお、BWコマンドは、特許請求の範囲に記載の書込み対象アドレスについて読出しデータ保持部に新たなデータを保持させずに書込みを行う旨のコマンドの一例である。
このBWコマンドの処理は、通常のライトコマンドの処理手順において、Array_Control信号線322に「センス」を出力する処理と、その後のArray_Status信号線326の確認処理を省いたものに相当する。すなわち、図9に示した流れ図においてステップS944乃至S946を省いたものになる。したがって、ここでの説明は省略する。この第3の実施の形態では、センス動作が省略され、リードラッチ312に既に格納されている値がCompare_R信号線315に出力される。
図18は、本技術の第3の実施の形態における記憶装置300のBWコマンド単体の処理手順例を示すタイミング図である。また、図19は、本技術の第3の実施の形態における記憶装置300のBWコマンドをリードコマンドの直後に実行する際の処理手順例を示すタイミング図である。
先にリードコマンドを処理することにより、読出しデータはリードラッチ312に格納される。そして、BWコマンドの処理においては、改めてセンス動作を行うことなく、リードラッチ312に既に格納されている値を利用して比較器314における比較を行う。これにより、センス動作に要する処理時間を削減することができる。また、処理の順序は通常のリードコマンドとライトコマンドを順に行う場合と同様であるため、制御の煩雑化を避けることができる。
このように、本技術の第3の実施の形態によれば、同一アドレスに対するリードコマンドおよびライトコマンドを、リードコマンドとBWコマンドの組合せに差し替えることにより、処理を高速化することができる。
<4.第4の実施の形態>
上述の第1の実施の形態では、メモリコントローラ200がホストコンピュータ100からの命令を蓄積し、同一アドレスに対するリードコマンドとライトコマンドを他のコマンドに置き換えていた。これに対し、第4の実施の形態では、記憶装置300のIF320がその処理を行う。
図20は、本技術の第4の実施の形態におけるリードアドレス検出レジスタ327の一構成例を示す図である。このリードアドレス検出レジスタ327はIF320に設けられる。このリードアドレス検出レジスタ327は、バンク毎に1つのレジスタ番号が割当てられており、そのバンクにおいて直前に読出しが行われたアドレスを保持するレジスタである。第4の実施の形態では、このリードアドレス検出レジスタ327を利用して、ライト処理の内容を切り替える。
なお、リードアドレス検出レジスタ327は、特許請求の範囲に記載のアドレス一致検出部の一例である。
図21は、本技術の第4の実施の形態における記憶装置300のIF320による処理手順例を示す流れ図である。ここでは、アドレスXはバンクYに属することを想定している。
IF_CmdAddr信号線209にリードコマンドが出力されると(ステップS841:リード)、IF320は通常のリードコマンドと同様に処理を実行する(ステップS842)。その後、読出し対象となったアドレスを、リードアドレス検出レジスタ327に格納する。すなわち、アドレスXがバンクYに属しているとき、アドレスXに対する読出し処理を行った後、レジスタ番号YがXに上書きされる(ステップS843)。
IF_CmdAddr信号線209にライトコマンドが出力されると(ステップS841:ライト)、リードアドレス検出レジスタ327から書込み対象のバンクに対応する値が読み出され、書込み対象アドレスと比較される(ステップS844)。それらが一致している場合には(ステップS845:Yes)、IF320はBWコマンドと同様の処理を実行する(ステップS846)。一方、一致していない場合には(ステップS845:No)、通常のライトコマンドと同様の処理を実行する(ステップS847)。前回読み出されたアドレスと同じアドレスに書込みを行う場合、読出し処理の中でセンス動作が行われている。したがって、リードラッチ312にはNVMアレイ311から読み出されたデータが格納されているため、センス動作を行うことなくリードラッチ312の値をCompare_R信号として参照し、正しく書込みを行うことができる。
このようにして書込みを実行した後には、既にNVMアレイ311の値が更新されており、次に同じアドレスへライトコマンドが発行されたとしても、もはやリードラッチ312の値をCompare_R信号としては使用することはできない。そのため、IF320はリードアドレス検出レジスタ327の値を無効なアドレスで初期化する(ステップS848)。
IF320は、リードコマンドおよびライトコマンド以外のコマンドを扱う場合もある(ステップS841:その他)。例えば、メモリアクセスを休止して低消費電力状態に入るためのコマンドなどが考えられる。そのようなコマンドにおいて、リードラッチ312に変化を及ぼす可能性がある場合には(ステップS852:Yes)、リードアドレス検出レジスタ327を初期化する(ステップS853)。これにより、次にライトコマンドを受信したときに、誤ったリードラッチ312の値をCompare_R信号線315の値として参照しないようにする。
図22は、本技術の第4の実施の形態における高速ライトの処理手順例を示すタイミング図である。最初のリードコマンド(図では「R_A0」と表す)の受信時に、その対象アドレス「0」が保持される。その後、同じアドレスに対するライトコマンド(図では「W_A0」と表す)を受信後、センス動作を行うことなく書込みが実行される。
このように、本技術の第4の実施の形態によれば、IF320によって、同一アドレスに対するリードコマンドおよびライトコマンドを、リードコマンドとBWコマンドの組合せに差し替えることにより、処理を高速化することができる。
<5.第5の実施の形態>
上述の第1の実施の形態では、同じアドレスに対して、Host_READコマンドの後にHost_WRITEコマンドが発行されたことを、メモリコントローラ200が検出することにより、RWコマンドの発行を行っていた。これに対し、第5の実施の形態では、同一アドレスに対して読出しを行った直後に書込みを行うことをホストコンピュータ100が予め認識できる場合を想定して、ホストコンピュータ100が、メモリコントローラ200からRWコマンドを発行するよう指示する。
ホストコンピュータ100からメモリコントローラ200にHost_RWコマンドとアドレス、書込みデータが送信される。メモリコントローラ200は、Host_RWコマンドを受信すると、上述の図13と同様の処理を行う。すなわち、RWコマンドと受信したアドレスをコマンドアドレスレジスタ210に追加し、書込みデータをデータバッファに格納する。その後、上述の図14と同様の処理手順により、IF320にRWコマンドとデータを送出する。
なお、RWコマンドに代えて、第2および第3の実施の形態において説明したDATAOUTコマンドやBWコマンドをホストコンピュータ100が発行するようにしてもよい。
このように、本技術の第5の実施の形態によれば、同一アドレスに対して読出しを行った直後に書込みを行うことをホストコンピュータ100が認識して、メモリコントローラ200からRWコマンドなどを発行するように指示することができる。
<6.第6の実施の形態>
不揮発メモリには書換回数に制限があり、書換寿命を延ばすためにはセル間の書換回数のばらつきを抑制することが効果的である。そのため、不揮発メモリの書換寿命を管理するために、書換回数の多いセルと少ないセルとの間でデータの入れ替えを行うウェアレベリングと呼ばれる処理が知られている。また、メモリシステムにおいては、アドレス空間にスワップ領域と呼ばれる領域を設定し、メインメモリのデータをスワップ領域に一時的に退避する処理が一般的に行われる。ホストコンピュータは、スワップ領域に退避していたデータを読み出してメインメモリへ書き込むとともに、スワップ領域の同じアドレスに新しいデータを書込む、データスワップと呼ばれる処理をしばしば行う。この第6の実施の形態では、上述の第3の実施の形態において説明したBWコマンドを用いてデータスワップを高速化する手法について説明する。
図23は、本技術の第6の実施の形態におけるメモリコントローラ200による処理手順例を示す流れ図である。ホストコンピュータ100は、Host_CmdAddr信号線109を介して、SWAPコマンドと、入れ替えの対象となる2つのアドレスをメモリコントローラ200に送信する。ここで、2つのアドレスはそれぞれ、異なるバンクまたは異なるメモリ装置を指すものであることを前提とする。
メモリコントローラ200は、SWAPコマンドを受信すると(ステップS861)、2つのアドレスそれぞれに対するリードコマンドを、IF_CmdAddr信号線209を介して記憶装置300に発行する。このとき、2つのアドレスが示す記憶装置300が同じ場合には(ステップS862:Yes)、IF_CmdAddr信号線209やIF_Data信号線208において信号が衝突するおそれがある。そこで、両社が衝突しないように、必要な間隔を空けて2つのリードコマンドを発行する(ステップS863、S864)。一方、2つのアドレスが示す記憶装置300が異なっており、IF_CmdAddr信号線209やIF_Data信号線208が独立である場合には、衝突のおそれがないため、2つのリードコマンドを同時に発行する(ステップS865)。
一定時間経過後、メモリコントローラ200は、IF_Data信号線208から出力される読出しデータを受け取り、ECC回路240によりエラー検出および訂正を行った後、データバッファ220に蓄積する(ステップS866)。データバッファ220に2つのアドレスからの読出しデータが揃った後(ステップS867:Yes)、2つのアドレスにBWコマンドを発行し、高速書込みを行う(ステップS868)。
BWコマンド送信後、Memory_Status信号線207を参照し(ステップS869)、2つのアドレスがそれぞれ属するバンクが、2つとも「プログラム中」から「レディ」に遷移したことを確認して(ステップS871、S872)、処理を終了する。
このように、本技術の第6の実施の形態によれば、BWコマンドを用いてデータスワップを高速化することができる。
<7.第7の実施の形態>
不揮発メモリにおいては、記録された値が読出しのたびにわずかに変化し、一定回数の読出しを繰り返すと、読出し不良が発生する可能性がある。これをリードディスターブ不良と呼ぶ。このリードディスターブ不良を防ぐために、一定回数の読出しを行った後には、データの再書き込みが行われる。これをリフレッシュと呼ぶ。このリフレッシュは、データを読み出した後、エラーを検出および訂正し、再び同じアドレスに書込みを行うことによって実現される。この第7の実施の形態では、上述の第3の実施の形態において説明したBWコマンドを用いてリフレッシュを高速化する手法について説明する。
図24は、本技術の第7の実施の形態におけるメモリコントローラ200による処理手順例を示す流れ図である。メモリコントローラ200が、ホストコンピュータ100からHost_CmdAddr信号線109を介してリフレッシュコマンドおよびアドレスを受信すると、この処理手順が開始する。まず、IF_CmdAddr信号線209を介して、ホストコンピュータ100から受信したアドレスが指し示す記憶装置300のアドレスに、リードコマンドを送信する(ステップS881)。一定時間経過後、IF_Data信号線208から出力される読出しデータを受信して、ECC回路240によりエラー検出および訂正を行う(ステップS882)。また、ECC回路240は、エラー訂正が発生したか否かを示す信号を出力する。メモリコントローラ200はこれを受けて、エラー訂正が発生しなかった場合(リードディスターブ不良は発生しておらず、全ビットが正しく読み出せた場合)には(ステップS883:No)、何もせずにリフレッシュ処理は完了となる。一方、エラー訂正が発生した場合(リードディスターブ不良が発生し、誤った値が読み出された場合)には(ステップS883:Yes)、当該アドレスに対して、訂正後のデータとともにBWコマンドを送信する(ステップS884)。
BWコマンド送信後、Memory_Status信号線207を参照し(ステップS885)、当該バンクが「プログラム中」から「レディ」に遷移したことを確認して(ステップS886、S887)、処理を終了する。
これにより、リードラッチ312に保持された読出しデータとECCによるエラー訂正後のデータとが比較され、訂正の生じたビットにのみプログラム動作により書込み電圧が印加され、リードディスターブ不良が訂正される。
このように、本技術の第7の実施の形態によれば、BWコマンドを用いてリフレッシュを高速化することができる。
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disc)、メモリカード、ブルーレイディスク(Blu-ray(登録商標)Disc)等を用いることができる。
なお、本明細書に記載された効果はあくまで例示であって、限定されるものではなく、また、他の効果があってもよい。
なお、本技術は以下のような構成もとることができる。
(1)メモリアレイの所定のアドレスに記憶されているデータを読出しデータとして前記メモリアレイから読み出して読出しデータ保持部に保持させるメモリ読出し部と、
前記読出しデータ保持部に保持されている前記読出しデータを要求元に出力する読出しデータ出力部と、
前記メモリアレイに対する書込みデータおよび前記読出しデータに基づいて前記メモリアレイの書込み対象アドレスに書込みを行うメモリ書込み部と、
前記書込み対象アドレスと前記所定のアドレスとが一致する場合にのみ前記メモリ書込み部を動作させるよう制御する制御部と
を具備する記憶装置。
(2)前記制御部は、前記メモリアレイからの読出しおよび書込みを同一アドレスに連続して行う旨のコマンドが発行された際に前記書込み対象アドレスと前記所定のアドレスとが一致すると判断する
前記(1)に記載の記憶装置。
(3)前記制御部は、前記読出しデータ保持部に保持されている前記読出しデータを要求元に出力する旨のコマンドが発行された際に前記書込み対象アドレスと前記所定のアドレスとが一致すると判断する
前記(1)に記載の記憶装置。
(4)前記制御部は、前記書込み対象アドレスについて前記読出しデータ保持部に新たなデータを保持させずに書込みを行う旨のコマンドが発行された際に前記書込み対象アドレスと前記所定のアドレスとが一致すると判断する
前記(1)に記載の記憶装置。
(5)前記制御部は、前記書込み対象アドレスと前記所定のアドレスとの前記一致を検出するアドレス一致検出部を備えて、前記書込み対象アドレスと前記所定のアドレスとが一致するか否かを判断する
前記(1)に記載の記憶装置。
(6)記憶装置と、前記記憶装置に対するアクセス要求を制御するメモリコントローラと、前記記憶装置に対するアクセスコマンドを前記メモリコントローラに発行するホストコンピュータとを具備する情報処理システムであって、
前記記憶装置は、メモリアレイの所定のアドレスに記憶されているデータを読出しデータとして前記メモリアレイから読み出して読出しデータ保持部に保持させるメモリ読出し部と、前記読出しデータ保持部に保持されている前記読出しデータを要求元に出力する読出しデータ出力部と、前記メモリアレイに対する書込みデータおよび前記読出しデータに基づいて前記メモリアレイの書込み対象アドレスに書込みを行うメモリ書込み部と、前記書込み対象アドレスと前記所定のアドレスとが一致する場合にのみ前記メモリ書込み部を動作させるよう制御する制御部とを備える
情報処理システム。
(7)メモリアレイの所定のアドレスに記憶されているデータを読出しデータとして前記メモリアレイから読み出して読出しデータ保持部に保持させるメモリ読出し手順と、
前記読出しデータ保持部に保持されている前記読出しデータを要求元に出力する読出しデータ出力手順と、
前記メモリアレイの書込み対象アドレスと前記所定のアドレスとが一致する場合にのみ前記メモリアレイに対する書込みデータおよび前記読出しデータに基づいて前記メモリアレイの前記書込み対象アドレスに書込みを行うメモリ書込み手順と
を具備する記憶制御方法。
100 ホストコンピュータ
200 メモリコントローラ
210 コマンドアドレスレジスタ
220 データバッファ
230 ステータスレジスタ
240 ECC回路
300 記憶装置
310 バンク
311 NVMアレイ
312 リードラッチ
313 ライトラッチ
314 比較器
327 リードアドレス検出レジスタ

Claims (6)

  1. メモリアレイの読出し対象アドレスに記憶されているデータを読出しデータとして前記メモリアレイから読み出して読出しデータ保持部に保持させるメモリ読出し部と、
    前記読出しデータ保持部に保持されている前記読出しデータを要求元に出力する読出しデータ出力部と、
    前記メモリアレイに対する書込みデータおよび前記読出しデータに基づいて前記メモリアレイの書込み対象アドレスに書込みを行うメモリ書込み部と、
    前記メモリアレイからの読出しおよび書込みを同一アドレスに連続して行う旨のリードライトコマンドが発行された際には、前記リードライトコマンドの指定アドレスを前記読出し対象アドレスとして前記メモリ読出し部および前記読出しデータ出力部を動作させるよう制御し、前記リードライトコマンドの指定アドレスを前記書込み対象アドレスとして前記メモリ書込み部を動作させるよう制御する制御部と
    を具備する記憶装置。
  2. メモリアレイの読出し対象アドレスに記憶されているデータを読出しデータとして前記メモリアレイから読み出して読出しデータ保持部に保持させるメモリ読出し部と、
    前記読出しデータ保持部に保持されている前記読出しデータを要求元に出力する読出しデータ出力部と、
    前記メモリアレイに対する書込みデータおよび前記読出しデータに基づいて前記メモリアレイの書込み対象アドレスに書込みを行うメモリ書込み部と、
    前記メモリアレイへのライトコマンドと前記メモリアレイにアクセスすることなく前記読出しデータ保持部に保持されている前記読出しデータを要求元に出力する旨のデータ出力コマンドとの組合せが発行された際には、前記ライトコマンドの指定アドレスを前記読出し対象アドレスとして前記メモリ読出し部を動作させるよう制御し、前記ライトコマンドの指定アドレスを前記書込み対象アドレスとして前記メモリ書込み部を動作させるよう制御し、前記データ出力コマンドに従って前記読出しデータ出力部を動作させるよう制御する制御部と
    を具備する記憶装置。
  3. メモリアレイの読出し対象アドレスに記憶されているデータを読出しデータとして前記メモリアレイから読み出して読出しデータ保持部に保持させるメモリ読出し部と、
    前記読出しデータ保持部に保持されている前記読出しデータを要求元に出力する読出しデータ出力部と、
    前記メモリアレイに対する書込みデータおよび前記読出しデータに基づいて前記メモリアレイの書込み対象アドレスに書込みを行うメモリ書込み部と、
    前記メモリアレイからのリードコマンドと前記読出しデータ保持部に新たなデータを保持させずに書込みを行う旨のブラインドライトコマンドとの組合せが発行された際には、前記リードコマンドの指定アドレスを前記読出し対象アドレスとして前記メモリ読出し部および前記読出しデータ出力部を動作させるよう制御し、前記ブラインドライトコマンドの指定アドレスを前記書込み対象アドレスとして前記メモリ書込み部を動作させるよう制御する制御部と
    を具備する記憶装置。
  4. 前記メモリアレイのバンク毎に直前に読み出したアドレスを保持して、前記書込み対象アドレスのバンクに対応して保持されるアドレスと前記書込み対象アドレスとを比較することにより、前記書込み対象アドレスと前記読出し対象アドレスとの一致を検出するアドレス一致検出部をさらに具備し、
    前記制御部は、前記書込み対象アドレスと前記読出し対象アドレスとが一致する場合にのみ前記メモリ書込み部を動作させるよう制御する
    請求項3記載の記憶装置。
  5. 記憶装置と、前記記憶装置に対するアクセス要求を制御するメモリコントローラと、前記記憶装置に対するアクセスコマンドを前記メモリコントローラに発行するホストコンピュータとを具備する情報処理システムであって、
    前記記憶装置は、メモリアレイの読出し対象アドレスに記憶されているデータを読出しデータとして前記メモリアレイから読み出して読出しデータ保持部に保持させるメモリ読出し部と、前記読出しデータ保持部に保持されている前記読出しデータを要求元に出力する読出しデータ出力部と、前記メモリアレイに対する書込みデータおよび前記読出しデータに基づいて前記メモリアレイの書込み対象アドレスに書込みを行うメモリ書込み部と、前記メモリアレイからの読出しおよび書込みを同一アドレスに連続して行う旨のリードライトコマンドが発行された際には、前記リードライトコマンドの指定アドレスを前記読出し対象アドレスとして前記メモリ読出し部および前記読出しデータ出力部を動作させるよう制御し、前記リードライトコマンドの指定アドレスを前記書込み対象アドレスとして前記メモリ書込み部を動作させるよう制御する制御部とを備える
    情報処理システム。
  6. メモリアレイからの読出しおよび書込みを同一アドレスに連続して行う旨のリードライトコマンドが発行された際に、
    前記リードライトコマンドの指定アドレスを読出し対象アドレスとしてメモリアレイの前記読出し対象アドレスに記憶されているデータを読出しデータとして前記メモリアレイから読み出して読出しデータ保持部に保持させるメモリ読出し手順と、
    前記読出しデータ保持部に保持されている前記読出しデータを要求元に出力する読出しデータ出力手順と、
    前記リードライトコマンドの指定アドレスを書込み対象アドレスとして前記メモリアレイに対する書込みデータおよび前記読出しデータに基づいて前記メモリアレイの前記書込み対象アドレスに書込みを行うメモリ書込み手順と
    を具備する記憶制御方法。
JP2016517847A 2014-05-09 2015-04-10 記憶制御装置、記憶装置、および、その記憶制御方法 Expired - Fee Related JP6447629B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2014097257 2014-05-09
JP2014097257 2014-05-09
PCT/JP2015/061235 WO2015170550A1 (ja) 2014-05-09 2015-04-10 記憶制御装置、記憶装置、および、その記憶制御方法

Publications (2)

Publication Number Publication Date
JPWO2015170550A1 JPWO2015170550A1 (ja) 2017-04-20
JP6447629B2 true JP6447629B2 (ja) 2019-01-09

Family

ID=54392403

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016517847A Expired - Fee Related JP6447629B2 (ja) 2014-05-09 2015-04-10 記憶制御装置、記憶装置、および、その記憶制御方法

Country Status (4)

Country Link
US (1) US20170052739A1 (ja)
JP (1) JP6447629B2 (ja)
CN (1) CN106255961B (ja)
WO (1) WO2015170550A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10885991B2 (en) * 2017-04-04 2021-01-05 Sandisk Technologies Llc Data rewrite during refresh window
US11456033B2 (en) 2018-09-12 2022-09-27 Micron Technology, Inc. Dedicated commands for memory operations
US10622065B2 (en) * 2018-09-12 2020-04-14 Micron Technology, Inc. Dedicated commands for memory operations
CN110908825B (zh) * 2018-09-17 2024-03-01 兆易创新科技集团股份有限公司 一种数据读取方法、装置、存储设备及存储介质
US11113213B2 (en) 2019-12-30 2021-09-07 Micron Technology, Inc. Determining write commands for deletion in a host interface
US11481152B2 (en) * 2019-12-30 2022-10-25 Micron Technology, Inc. Execution of commands addressed to a logical block
CN113257307B (zh) * 2020-02-13 2024-04-26 华邦电子股份有限公司 存储器装置及数据写入方法
CN111813345A (zh) * 2020-07-17 2020-10-23 济南浪潮数据技术有限公司 一种数据传输方法、装置、服务器及可读存储介质
CN112527401A (zh) * 2021-02-08 2021-03-19 北京紫光青藤微系统有限公司 存储器的启动方法、装置、电子设备及存储介质
US11545231B2 (en) * 2021-02-09 2023-01-03 Micron Technology, Inc. Reset read disturb mitigation

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4685082A (en) * 1985-02-22 1987-08-04 Wang Laboratories, Inc. Simplified cache with automatic update
US7107415B2 (en) * 2003-06-20 2006-09-12 Micron Technology, Inc. Posted write buffers and methods of posting write requests in memory modules
KR100564577B1 (ko) * 2003-09-25 2006-03-28 삼성전자주식회사 리셋 상태에서 균일한 저항 범위를 가지는 상 변화 메모리장치 및 방법
JP4273087B2 (ja) * 2005-02-08 2009-06-03 エルピーダメモリ株式会社 半導体記憶装置およびその書込み方法
JP4309421B2 (ja) * 2006-12-25 2009-08-05 エルピーダメモリ株式会社 半導体記憶装置とその書き込み制御方法
JP2010244607A (ja) * 2009-04-03 2010-10-28 Elpida Memory Inc 半導体記憶装置
JP2011008721A (ja) * 2009-06-29 2011-01-13 Kyocera Mita Corp メモリ制御回路および画像形成装置
JP2011150684A (ja) * 2009-12-21 2011-08-04 Sony Corp キャッシュメモリおよびキャッシュメモリ制御装置
JP5929790B2 (ja) * 2012-06-19 2016-06-08 ソニー株式会社 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法

Also Published As

Publication number Publication date
JPWO2015170550A1 (ja) 2017-04-20
CN106255961B (zh) 2020-03-31
WO2015170550A1 (ja) 2015-11-12
CN106255961A (zh) 2016-12-21
US20170052739A1 (en) 2017-02-23

Similar Documents

Publication Publication Date Title
JP6447629B2 (ja) 記憶制御装置、記憶装置、および、その記憶制御方法
JP5929790B2 (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
CN103995756B (zh) 存储控制器、存储设备、信息处理系统和存储控制方法
JP5839048B2 (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
KR101371516B1 (ko) 플래시 메모리 장치의 동작 방법 및 그것을 포함하는 메모리 시스템
US20140082267A1 (en) EMBEDDED MULTIMEDIA CARD (eMMC), HOST CONTROLLING eMMC, AND METHOD OPERATING eMMC SYSTEM
KR20110058028A (ko) 멀티 칩 메모리 시스템 및 그것의 데이터 전송 방법
KR102561346B1 (ko) 반도체장치
JP5929456B2 (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
JP5853973B2 (ja) 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法
TW202046326A (zh) 記憶體定址方法及相關聯的控制器
CN113076057B (zh) 用于减少读取-修改-写入操作的延迟的系统和方法
JP2015011421A (ja) 記憶制御装置、記憶装置、および、その記憶制御方法
CN113467704A (zh) 通过智能阈值检测的命令优化
JP6493062B2 (ja) メモリコントローラ、メモリシステムおよび情報処理システム
JP6107625B2 (ja) 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法
JP2013205872A (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
JP2014022004A (ja) 記憶制御装置、記憶装置、および、それらにおける処理方法
US8423819B2 (en) Data storage device, controller, and data access method for a downgrade memory
JP5853843B2 (ja) 記憶制御装置、記憶装置、および、それらにおける処理方法
CN103530238A (zh) 存储控制设备、存储设备、信息处理系统及其处理方法
WO2017168905A1 (ja) メモリ制御装置、記憶装置および情報処理システム
WO2017073127A1 (ja) メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法
WO2017010147A1 (ja) 不揮発メモリ、メモリコントローラ、記憶装置、情報処理システムおよび不揮発メモリの制御方法
WO2019244417A1 (ja) 記憶制御装置、記憶装置および記憶制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180911

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181025

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181119

R151 Written notification of patent or utility model registration

Ref document number: 6447629

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees