JP2015215774A - メモリコントローラ、メモリシステム及びメモリ制御方法 - Google Patents

メモリコントローラ、メモリシステム及びメモリ制御方法 Download PDF

Info

Publication number
JP2015215774A
JP2015215774A JP2014098407A JP2014098407A JP2015215774A JP 2015215774 A JP2015215774 A JP 2015215774A JP 2014098407 A JP2014098407 A JP 2014098407A JP 2014098407 A JP2014098407 A JP 2014098407A JP 2015215774 A JP2015215774 A JP 2015215774A
Authority
JP
Japan
Prior art keywords
read
data
reading
buffer
memory
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.)
Pending
Application number
JP2014098407A
Other languages
English (en)
Inventor
尊 近藤
Takashi Kondo
尊 近藤
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.)
TDK Corp
Original Assignee
TDK 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 TDK Corp filed Critical TDK Corp
Priority to JP2014098407A priority Critical patent/JP2015215774A/ja
Publication of JP2015215774A publication Critical patent/JP2015215774A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

【課題】不揮発メモリからのデータの読出しのパフォーマンスを向上する。
【解決手段】メモリコントローラは、複数の読出し部と、複数のバッファ領域と、読出し制御部とを有する。複数の読出し部は、複数の部分メモリ群にそれぞれ対応しており、読出し対象データを構成する複数のデータ要素を複数の部分メモリ群から読み出す。読出し部により読み出されたデータ要素は、訂正可能なデータ要素であれば、その読出し部に関連付けられているバッファ領域に書き込まれ、アンコレクタブルエラーがあれば、その読出し部によりリードリトライが行われる。各読出し部は、他の読出し部によりリードリトライが行われているか否かに関わらず、データ要素の読出しを行う。読出し制御部は、ホストシステムへ読出し対象データが送信されるよう複数のバッファ領域からの複数のデータ要素の読出しの順序を制御する。
【選択図】図2

Description

本発明は、概して、不揮発メモリからのデータの読出しの制御に関する。
不揮発メモリとして、一般に、NAND型フラッシュメモリが知られている。NAND型フラッシュメモリは、複数の物理ブロックにより構成され、各物理ブロックは、複数の物理ページにより構成される。NAND型フラッシュメモリでは、ページ(物理ページ)単位でデータが入出力され、ブロック(物理ブロック)単位でデータが消去される。
NAND型フラッシュメモリから読み出されたデータは、読出し元の物理ブロックの状態によっては、訂正不可能なデータであることがある。この場合、フラッシュメモリコントローラは、フラッシュメモリのベンダーが用意しているコマンドを用いて読出し閾値(例えば読出し時の電圧)を変更し、リードリトライ(再読出し)を行うことで、訂正可能なデータを取得する(例えば特許文献1及び2)。
特開2012−079403号公報 特開2013−073669号公報
フラッシュメモリコントローラは、訂正可能なデータ取得後、読出し閾値を初期値に戻して読出しを再開する。しかし、読出し閾値の変更及びリードリトライにより、読出しパフォーマンスが低下する。
この種の問題は、NAND型フラッシュメモリ以外の不揮発メモリについても有り得る。
従って、本発明の目的は、不揮発メモリからのデータの読出しのパフォーマンスを向上することにある。
メモリコントローラは、1以上の不揮発メモリであり複数の部分メモリ群を有する不揮発メモリ群に接続され、ホストシステムから与えられる読出しコマンドに基づいて、不揮発メモリ群からのデータの読出しを制御する。メモリコントローラは、複数の読出し部と、複数のバッファ領域と、読出し制御部とを有する。複数の読出し部は、複数の部分メモリ群にそれぞれ対応しており、読出しコマンドに従う読出し対象データを構成する複数のデータ要素を複数の部分メモリ群から読み出す。複数の読出し部の各々により読み出されたデータ要素は、訂正可能なデータ要素であれば、その読出し部に関連付けられているバッファ領域に書き込まれ、アンコレクタブルエラーがあれば、その読出し部によりリードリトライが行われる。複数の読出し部の各々は、他の読出し部によりリードリトライが行われているか否かに関わらず、データ要素の読出し又はリードリトライを行い、それにより読み出されたデータ要素が訂正可能なデータ要素であれば、そのデータ要素が、その読出し部に関連付けられているバッファ領域に書き込まれる。読出し制御部は、ホストシステムへ読出し対象データが送信されるよう複数のバッファ領域からの複数のデータ要素の読出しの順序を制御する。
各読出し部は他の読出し部がリードリトライを行っていてもデータ要素の読出しを行える。それにより、読出しのパフォーマンスが向上する。
本発明の第1の実施形態に係るフラッシュメモリシステムの構成を示す。 本発明の第1の実施形態に係る読出しの概要を示す。 比較例及び第1の実施形態のそれぞれに係るデータ読出しの流れを示す。 比較例及び第1の実施形態のそれぞれにおけるバッファに対するデータ入力を示す。 本発明の第2の実施形態に係る読出しの概要を示す。 比較例に係る読出しの概要を示す。 比較例及び第1の実施形態の前提の説明図である。
以下、不揮発メモリとしてNAND型フラッシュメモリ(以下、フラッシュメモリ)を例に取り、本発明の幾つかの実施形態を説明する。なお、本発明は以下の実施形態に限定されるものではない。また以下に記載した構成要素には、当業者が容易に想定できるもの、実質的に同一のものが含まれる。また、以下の説明では、同種の要素を区別しないで説明する場合には参照符号を使用し(例えばフラッシュメモリ2)、同種の要素を区別して説明する場合には要素に割り振った識別符号を使用することがある(例えばフラッシュメモリA)。
<第1の実施形態>
図1は、本発明の第1の実施形態に係るフラッシュメモリシステムの構成を示す。
フラッシュメモリシステム1は、不揮発メモリ群の一例であるフラッシュメモリ群と、それを制御するフラッシュメモリコントローラ3とで構成されている。フラッシュメモリ群は、N個のフラッシュメモリ(フラッシュメモリチップ)2で構成されている(Nは2以上の整数)。フラッシュメモリ2が、部分メモリ群の一例である。フラッシュメモリコントローラ3は、N個のフラッシュメモリ2に並行にアクセス可能である。本実施形態では、N=2である。
フラッシュメモリシステム1は、外部バス13を介してホストシステム4と接続されている。ホストシステム4は、ホストシステム4の全体の動作を制御するためのCPU(Central Processing Unit)、フラッシュメモリシステム1との情報の授受を担うコンパニオンチップ等から構成されている。ホストシステム4は、例えば、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置であってもよい。
フラッシュメモリコントローラ3は、マイクロプロセッサ6と、ホストインタフェースブロック7と、ワークエリア8と、バッファ9と、フラッシュメモリインタフェースブロック10と、ECC(Error Correcting Code)ブロック11と、ROM(Read Only Memory)12とから構成される。フラッシュメモリコントローラ3は、内部バス14を介してフラッシュメモリ2と接続されている。これら機能ブロックによって構成されるフラッシュメモリコントローラ3は、一つの半導体チップ上に集積される。以下、各機能ブロックについて説明する。
ホストインタフェースブロック7は、ホストシステム4との間でデータ、アドレス情報、ステータス情報、外部コマンド等の授受を行なう。外部コマンドとは、ホストシステム4がフラッシュメモリシステム1に対して処理の実行を指示するためのコマンドである。ホストシステム4よりフラッシュメモリシステム1に供給されるデータ等は、ホストインタフェースブロック7を入口としてフラッシュメモリシステム1の内部(例えば、バッファ9)に取り込まれる。また、フラッシュメモリシステム1からホストシステム4に供給されるデータ等は、ホストインタフェースブロック7を出口としてホストシステム4に供給される。
ホストインタフェースブロック7は、コマンドレジスタR1、セクタ数レジスタR2及びLBAレジスタR3を備えている。コマンドレジスタR1、セクタ数レジスタR2及びLBAレジスタR3には、ホストシステム4から与えられる情報が書き込まれる。コマンドレジスタR1には、書込みコマンド、読出しコマンド等の外部コマンドが書き込まれる。セクタ数レジスタR2には、アクセス対象領域のセクタ数が書き込まれる。LBAレジスタR3には、アクセス対象領域の先頭のLBA(Logical Block Address)が書き込まれる。
ワークエリア8は、フラッシュメモリ2の制御に必要なデータを一時的に格納する作業領域であり、例えば複数のSRAM(Static Random Access Memory)セルによって構成されている。ワークエリア8には、例えば、論理ブロックと物理ブロックとの対応関係を示したアドレス変換テーブル等が記憶される。アドレス変換テーブルを用いて、論理アドレスを物理アドレスに変換することができる(アクセス先の論理ブロックにマッピングされている物理ブロックを特定することができる)。
バッファ9は、フラッシュメモリ2から読み出したデータを、ホストシステム4が受け取り可能な状態となるまで保持する。また、バッファ9は、フラッシュメモリ2に書き込むデータを、フラッシュメモリ2が書込み可能な状態となるまで保持する。
フラッシュメモリインタフェースブロック10は、内部バス14を介して、フラッシュメモリ2との間でデータ、アドレス情報、ステータス情報、内部コマンド等の授受を行う。ここで、内部コマンドとは、フラッシュメモリコントローラ3がフラッシュメモリ2に処理の実行を指示するためのコマンドであり、フラッシュメモリ2は、フラッシュメモリコントローラ3から与えられる内部コマンドに従って動作する。
ECCブロック11は、フラッシュメモリ2に書き込むデータに付加される誤り訂正符号(ECC:Error Correcting Code)を生成するとともに、読出したデータに付加されている誤り訂正符号に基づいて、読出したデータに含まれる誤りを検出・訂正する。
ROM12は、マイクロプロセッサ6による処理の手順を定義するプログラムを格納する不揮発性の記憶素子である。例えば、アドレス変換テーブルの作成等の処理手順を定義するプログラムが格納されている。
マイクロプロセッサ6は、ROM12に記憶されているプログラムに従って、フラッシュメモリコントローラ3の全体の動作を制御する。例えば、マイクロプロセッサ6は、ROM12から読出した各種処理を定義したコマンドセットに基づいてフラッシュメモリインタフェースブロック10に処理を実行させる。
N個のフラッシュメモリ2の各々は、NAND型フラッシュメモリからなる。NAND型フラッシュメモリは、レジスタと、複数のメモリセルが2次元的に配列されたメモリセルアレイを備えている。メモリセルアレイは、複数のメモリセル群と、ワード線とを備える。ここで、メモリセル群は、複数のメモリセルが直列に接続されたものである。各ワード線は、メモリセル群の特定のメモリセルを選択するためのものである。このワード線を介して選択されたメモリセルとレジスタとの間で、レジスタから選択されたメモリセルへのデータの書込み又は選択されたメモリセルからレジスタへのデータの読出しが行われる。NAND型フラッシュメモリでは、データ読出し動作及びデータ書込み動作はページ(物理ページ)単位で行われ、データ消去動作はブロック(物理ブロック)単位で行われる。物理ブロックは、複数の物理ページで構成される。並行にアクセス可能なN個のフラッシュメモリ2がそれぞれ有するN個の物理ブロックを1つに纏めた仮想ブロックが、論理ブロックにマッピングされるようになっており、また、N個のフラッシュメモリ2がそれぞれ有するN個の物理ページである仮想ページの単位で、データ読出し動作及びデータ書込み動作が行われてもよい。論理ブロックに属する論理アドレス毎に、その論理アドレスについての最新のデータが「有効データ」であり、最新のデータより旧いデータは「無効データ」である。ガベージコレクション処理により、物理ブロック(仮想ブロック)内のデータを全て無効データとすることができる。無効データのみが記憶されている物理ブロック(仮想ブロック)に対しては、データ消去動作を行うことができ、データ消去動作が行われた物理ブロック(仮想ブロック)は、空き状態となるので、再びデータの書込み先として使用可能となる。
本実施形態の書込み処理では、ホストシステム4によって、コマンドレジスタR1に、書込みコマンドを示すコマンドコードが書き込まれ、セクタ数レジスタR2に、書き込むデータのセクタ数が書き込まれ、LBAレジスタR3には、書き込みを開始する先頭データに対応するLBAが書き込まれる。セクタ数レジスタR2及びLBAレジスタR3に書き込まれた情報に基づいて、アクセス対象の領域である論理アクセス領域が判別され、その論理アクセス領域が含まれる論理ブロックに対応する物理ブロック(仮想ブロック)にホストシステム4から与えられるデータが書き込まれる。ホストシステム4側のアドレス空間は、セクタ(512バイト)単位で分割した領域(以下、論理セクタ領域と言う)に付けた通番であるLBAで管理されている。また、複数個の論理セクタ領域で構成された論理ブロックが形成され、この論理ブロックに対して、物理ブロック(仮想ブロック)が割り当てられる。論理ブロックと物理ブロック(仮想ブロック)の対応関係(仮想ブロックと物理ブロックの対応関係)等は、管理情報を用いて管理される。管理情報は、例えばワークエリア8に記憶される。
図2は、本発明の第1の実施形態に係る読出しの概要を示す。
バッファ9は、例えばRAM上の領域である。バッファ9には、所定の方式、例えばFIFO(First In,First Out)でデータが入出力される。
2個のフラッシュメモリ2(A及びB)の各々につき、フラッシュメモリコントローラ3の例えば、フラッシュメモリインタフェースブロック10に、シーケンサ22が設けられている。シーケンサ22が、読出し部の一例である。シーケンサAはフラッシュメモリAに対応し、シーケンサBはフラッシュメモリBに対応している。シーケンサ22は、対応するフラッシュメモリ2からのデータの読出しを実行する。シーケンサA及びBは、並行に、フラッシュメモリA及びBからデータを読み出すことができる。各シーケンサ22の動作は、マイクロプロセッサ6により制御される。マイクロプロセッサ6が、読出し制御部の少なくとも一部の一例である。
シーケンサ22は、対応するフラッシュメモリ2から読み出したデータが一時的に記憶されるバッファ領域23を有する。バッファ領域23は、例えばRAM(Random Access Memory)である。バッファ領域23の容量は、フラッシュメモリ2の1つの物理ページの容量以上である。物理ページは、サブ物理領域の一例である。バッファ領域23の容量は、物理ページの容量の倍数でよい。バッファ領域23には、所定の方式、例えばFIFO(First In,First Out)でデータが入出力される。具体的には、シーケンサ22が読み出したデータは、シーケンサ22内のバッファ領域23に格納される。そのデータに付随するECCを用いてECCブロック11(図1参照)により訂正可能かどうかチェックされ、訂正可能であればシーケンサ22によってバッファ領域23に格納されたデータを訂正する。また、訂正不可能であれば、アンコレクタブルエラーとしてリードリトライが行われ、エラー無し、または訂正可能であれば、シーケンサ22内のバッファ領域23に再度データ(リードリトライにより読み出されたデータ)が格納される。シーケンサ22は、内部バスを介して、対応するフラッシュメモリ2との間でデータ、アドレス情報、ステータス情報及び内部コマンド等の授受を行うことができる。シーケンサ22は、マイクロプロセッサ6の命令を受け、この命令に従って、そのシーケンサ22が有するバッファ領域23にデータを格納する。
以下、本発明の第1の実施形態を、図6に示す比較例と比較する。比較例によれば、フラッシュメモリコントローラ73のフラッシュメモリインタフェースブロック70に、2個のフラッシュメモリ2(A及びB)にそれぞれ対応した2個のシーケンサ72(F及びG)があるが、各シーケンサ72は、1物理ページの容量以上の容量のバッファ領域を有していない。
図3は、比較例及び本実施形態のそれぞれに係るデータ読出しの流れを示す。図4は、比較例及び本実施形態のそれぞれにおけるバッファ9に対するデータ入力を示す。なお、図3及び図4の説明では、比較例でも本実施形態でも、下記を前提とする(図7参照)。
・論理ページには、仮想ページが割り当てられる。
・仮想ページは、2個のフラッシュメモリA及びBがそれぞれ有する2個の物理ページの集合である。
・論理ページ(仮想ページ)に書き込まれるデータは、8個のデータ要素(例えば512byte)の集合であり、8個のデータ要素のうちそれぞれ2個のデータ要素が並行に2個の物理ページに書き込まれる。従って、1個の物理ページには4個のデータ要素が書き込まれる。なお、正確には、データ要素とECCの組が物理ページに書き込まれるが、説明の簡略のために、以下の説明では、ECCの説明は省略する。
・以下、フラッシュメモリコントローラ3(73)がホストシステム4から受信した読出しコマンドで指定されているアドレスが属する論理ページである読出し元論理ページを、「論理ページT」と言う。
・以下、論理ページTに割り当てられている仮想ページを「仮想ページT」と言う。
・以下、仮想ページTを構成する2個の物理ページのうち、フラッシュメモリAが有する物理ページを「物理ページTA」と言い、フラッシュメモリBが有する物理ページを「物理ページTB」と言う。
・以下、論理ページT(仮想ページT)内のデータを構成する8個のデータ要素を、データ要素R01、R11、R02、R12、R03、R13、R04及びR14と言う。データにおけるデータ要素の並び順は、R01、R11、R02、R12、R03、R13、R04及びR14である。
・データ要素R01及びR11が、並行に物理ページTA及びTBに書き込まれており、データ要素R02及びR12が、並行に物理ページTA及びTBに書き込まれており、データ要素R03及びR13が、並行に物理ページTA及びTBに書き込まれており、データ要素R04及びR14が、並行に物理ページTA及びTBに書き込まれている。この結果、物理ページTAには、4個のデータ要素が、R01、R02、R03及びR04の順に並んでおり、物理ページTBには、4個のデータ要素が、R11、R12、R13及びR14の順に並んでいる。
・図3では、データ要素R01の読出しを、「R01」と表記し、データ要素R01にアンコレクタブルエラーが発生しており訂正可能なデータ要素R01を読み出すためのリードリトライを、「RR(01)」と表記する。この表記ルールによれば、例えば、「RR(03)」は、訂正可能なデータ要素R03を読み出すためのリードリトライであることがわかる。リードリトライでは、アンコレクタブルエラーの発生した読出しと同一の物理ページからデータ要素が読み出される。
図3の上半分に示すように、比較例によれば、複数の物理ページTA及びTBから並行にデータ要素(R01、R11)を読み出す場合、物理ページTAから読み出したデータ要素R01にアンコレクタブルエラーがあると、そのデータ要素について、読出し閾値の変更、及び、リードリトライRR(01)が行われる。その間、他の物理ページTBについては、データ要素R11の読出しに成功しても、データ要素R01の読出しに成功するまで、次のデータ要素R12の読出しが中断される。その理由は、下記の通りである。
・読出し対象のデータ(論理ページT内のデータ)をホストシステム4に返すためには、バッファ9に、読出し対象のデータを構成する8個のデータ要素が、R01、R11、R02、R12、R03、R13、R04及びR14の順でバッファ9から読み出されるよう並ぶ必要がある(図4の上半分参照)。
・この順番でデータ要素がバッファ9から読み出されるためには、その順番通りにデータ要素がバッファ9に入力されなければならない。なぜなら、バッファ9は、FIFOでデータ要素が入出力されるバッファだからである。
・故に、シーケンサFによりデータ要素R01のリードリトライが行われると、シーケンサGはデータ要素R11をバッファ9へ書き込めない。
このように、比較例によれば、1つのシーケンサ72によりリードリトライが行われると、他の全てのシーケンサ72の待ち(読出し中断)となる。リードリトライの回数が多いほど、待ち時間がより長くなる。このように、比較例では、読出しのパフォーマンスが低下する。
一方、図3の下半分に示すように、本実施形態によれば、シーケンサAによりリードリトライRR(01)が行われても、他のシーケンサBは、リードリトライRR(01)と並行して(リードリトライRR(01)の終了を待つことなく)、物理ページTBからのデータ要素の読出し(又はリードリトライ)を行うことができる。このようなことが可能になっている原因は、各シーケンサ22が、バッファ9とは独立し1物理ページの容量以上の容量のバッファ領域23を有していることにある。これにより、図4の下半分に示すように、各シーケンサ22は、他のシーケンサ22の読出しの状況に関係無く、対応する物理ページから順次データ要素を読み出して、読み出したデータ要素を、自分のバッファ領域23に蓄積しておくことができる。本実施形態では、バッファ領域A及びBから、並行に読出し可能な2個のデータ要素が、所定の順番で、バッファ9へと出力される。バッファ領域A及びBからバッファ9へのデータ要素の出力は、1仮想ページ分のデータ(8個のデータ要素)がバッファ領域A及びBに格納されたときに仮想ページ単位で行われてもよいし、並行に読出し可能な2個のデータ要素がバッファ領域A及びBに格納される都度にその2個のデータ要素の単位で行われてもよい。シーケンサA及びBの各々の動作(物理ページからのデータ要素の読出し、及び、バッファ領域23からのバッファ9へのデータ要素の出力)は、マイクロプロセッサ6によって制御される。また、各バッファ領域23の容量は、物理ページを読み出すビジー時間とECCを用いた訂正の時間を考慮し、2個の物理ページ分の容量以上であることが好ましい。
本発明の第1の実施形態によれば、並行してアクセス可能な複数の物理ページのうちの1つの物理ページについてリードリトライが行われていても、そのリードリトライと並行して、複数の物理ページのうちの別の物理ページからデータ要素の読出し又はリードリトライが可能である。これにより、読出しのパフォーマンスが向上する。
<第2の実施形態>
以下、本発明の第2の実施形態を説明する。その際、第1の実施形態との相違点を主に説明し、第1の実施形態との共通点については説明を省略又は簡略する。
図5は、本発明の第2の実施形態に係る読出しの概要を示す。
バッファ59は、例えば1個のRAMであり、1つまたは複数の入出力端子、及び、複数のバッファ領域54を有し、フラッシュ側制御論理55にバッファ59のアクセス調停論理を有する。本実施形態では、バッファ領域54の数は、シーケンサ52の数より多いが、バッファ領域54の数は、シーケンサ52の数と同じでもよい。また、本実施形態において、4個のバッファ領域A〜Dの各々は、予めシーケンサA及びBと固定的に対応付けられてはおらず、4個のバッファ領域A〜Dの各々とシーケンサA及びBの各々との対応関係は後述のフラッシュ側制御論理55(アクセス調停論理)により動的に決められる。なお、バッファ59が有する入出力端子の数が、複数のバッファ領域54につき1つの場合は、フラッシュ側制御論理55のアクセス調停論理により、2以上のシーケンサ52による2以上のバッファ領域54に対するアクセスを調停する。
1つのバッファ領域54につき、少なくとも1つの入力端子と、少なくとも1つの出力端子が関連付けられる。これにより、4個のバッファ領域A〜Dに並行してデータを入力する(書き込む)ことも、4個のバッファ領域A〜Dから並行してデータを出力する(読み出す)ことも可能である。各バッファ領域54は、1物理ページの容量以上の容量、好ましくは、複数個の物理ページ分の容量以上の容量を有する。各バッファ領域54には、所定の方式、例えばFIFOでデータが入出力される。なお、上述したように、バッファ59が有する入出力端子の数が、複数のバッファ領域54につき1つでもよく、その場合は、フラッシュ側制御論理55のアクセス調停論理により、2以上のシーケンサ52による2以上のバッファ領域54に対するアクセスを調停する。
フラッシュメモリインタフェースブロック50における各シーケンサ52は、1物理ページの容量以上の容量のバッファ領域を有しない。各シーケンサ52は、図6に示した比較例のシーケンサ72と同じでよい。
フラッシュメモリコントローラ53は、フラッシュ側制御論理55とホスト側制御論理56を有する。フラッシュ側制御論理55は、バッファ59よりもフラッシュメモリ2側、例えばフラッシュメモリインタフェースブロック50に設けられる。ホスト側制御論理56は、バッファ59よりもホストシステム4側、例えばホストインタフェースブロック57に設けられる。制御論理55及び56は、それぞれ、ハードウェア回路(論理回路)である。
フラッシュ側制御論理55は、第1の論理部の一例であり、シーケンサ52からバッファ59への転送先のアドレス(シーケンサ52により読み出されたデータ要素の転送先のアドレス)をデコードする。例えば、フラッシュ側制御論理55は、ホストシステム4からの第1の読出しコマンドの処理においてシーケンサAにより読み出されたデータ要素の転送先として、バッファ領域A〜Dのうち少なくとも1つのバッファ領域(ここではB及びD)を選択し、同様に、第1の読出しコマンドの処理においてシーケンサBにより読み出されたデータ要素の転送先として、残りのバッファ領域のうち少なくとも1つのバッファ領域(ここではC及びA)を選択する。これにより、第1の読出しコマンドの処理について、シーケンサAがバッファ領域B及びDに対応付けられ、シーケンサBがバッファ領域C及びAに対応付けられる。どのシーケンサにどのバッファ領域が対応付けられるかは、例えばランダムに選択されても良いし、バッファ領域の空き容量に応じて対応付けられても良い。また、複数のバッファ領域が複数のシーケンサに按分されても良いし、1つのシーケンサに対応付けられるバッファ領域の数が、バッファ領域の空き容量等に応じて決められてもよい。どのシーケンサにどのバッファ領域が対応付けられるかは、フラッシュメモリコントローラ53の仕様に応じて、適宜きめることができる。第1の読出しコマンドの処理では、フラッシュ側制御論理55は、シーケンサAにより読み出された複数のデータ要素を順次バッファ領域Bに転送し(書き込み)、同様に、シーケンサBにより読み出された複数のデータ要素を順次バッファ領域Cに転送する(書き込む)。転送先は、対応するバッファ領域54における空き領域の先頭領域である。つまり、シーケンサ52により指定されたアドレスは、そのシーケンサ52に対応するバッファ領域54における空き領域の先頭アドレスにデコードされる。いずれかのシーケンサ52により読み出されたデータ要素にアンコレクタブルエラーが発生していてリードリトライが行われたとしても、そのリードリトライと並行して別のシーケンサはデータ要素の読出し又はリードリトライを行うことができる。故に、データ要素の読出しとリードリトライの関係は、第1の実施形態と同様となる(例えば図3の下半分が示す通りとなる)。なお、シーケンサ52が読み出したデータ要素は、そのデータ要素に付随するECCを用いてECCブロック11(図1参照)により訂正可能かどうかチェックされ、訂正不可能であればアンコレクタブルエラーとしてリードリトライが行われ、訂正可能であればバッファ領域54内で訂正される。
ホスト側制御論理56は、第2の論理部の一例であり、バッファ59からの読出しの順序とバッファ59の読出し元アドレスとを制御することで、読出しコマンドに従う読出し対象のデータ(読出し対象のデータを構成する順番通りに並んだデータ要素)をホストシステム4に送信する。具体的には、例えば、上述の第1の読出しコマンドの処理を例にとれば、シーケンサAにより読み出されたデータ要素はバッファ領域B及びDに書き込まれており、シーケンサBにより読み出されたデータ要素はバッファ領域C及びAに書き込まれている。この場合、ホスト側制御論理56は、第1の読出しコマンドに従う読出し対象のデータをホストシステム4に転送するために(具体的には、図7の論理ページTにおけるデータ要素R01、R11、R12、…の順番でデータ要素をホストシステム4に転送するために)、バッファ領域B及びDからのデータ要素の読出しと、バッファ領域C及びAからのデータ要素の読出しを、交互に行う。より具体的には、例えば、ホスト側制御論理56は、バッファ領域B→C→D→A→B→C…のように、読出し元のバッファ領域と読出し元のアドレスを順次切り替える。
以上、本発明の幾つかの実施形態を説明したが、これらは、本発明の説明のための例示であって、本発明の範囲をこれらの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施する事が可能である。例えば、本発明は、論理ページに対して仮想ページを割り当てるフラッシュメモリシステムに限らず、読出し対象のデータが複数の部分メモリ群に分散して書きこまれている他の不揮発メモリシステムにも適用可能である。
1:フラッシュメモリシステム

Claims (6)

  1. ホストシステムから与えられる読出しコマンドに基づいて、1以上の不揮発メモリであり複数の部分メモリ群を有する不揮発メモリ群からのデータの読出しを制御するメモリコントローラであって、
    前記複数の部分メモリ群にそれぞれ対応しており、前記読出しコマンドに従う読出し対象データを構成する複数のデータ要素を前記複数の部分メモリ群から読み出す複数の読出し部と、
    前記複数の読出し部により読み出された前記複数のデータ要素が一時的に書き込まれる複数のバッファ領域と、
    前記ホストシステムへ前記読出し対象データが送信されるよう前記複数のバッファ領域からの前記複数のデータ要素の読出しの順序を制御する読出し制御部と
    を有し、
    前記複数の読出し部の各々により読み出されたデータ要素は、訂正可能なデータ要素であれば、その読出し部に関連付けられているバッファ領域に書き込まれ、アンコレクタブルエラーがあれば、その読出し部によりリードリトライが行われ、
    前記複数の読出し部の各々は、他の読出し部によりリードリトライが行われているか否かに関わらず、データ要素の読出し又はリードリトライを行い、それにより読み出されたデータ要素が訂正可能なデータ要素であれば、そのデータ要素が、その読出し部に関連付けられているバッファ領域に書き込まれる、
    メモリコントローラ。
  2. 前記ホストシステムに送信される読出し対象データが一時記憶されるバッファを更に有し、
    前記複数の読出し部が、前記複数のバッファ領域をそれぞれ有し、
    前記読出し制御部が、前記複数のバッファ領域から前記バッファへの前記複数のデータ要素の読出しの順序を制御する、
    請求項1記載のメモリコントローラ。
  3. 前記複数の読出し部の各々を動的に前記複数のバッファ領域のうちのいずれかに関連付け、前記複数の読出し部の各々から読み出されたデータ要素を、関連付けたバッファ領域へ転送する第1の論理部と、
    前記ホストシステムへ前記読出し対象データを送信するために前記複数のバッファ領域からの前記複数のデータ要素の読出しの順序を制御する第2の論理部と
    を有し、
    前記第2の論理部が、前記読出し制御部であり、
    前記複数のバッファ領域の各々に、少なくとも1つの入力端子と少なくとも1つの出力端子が関連付けられており、前記第1及び前記第2の論理部の各々が並行して前記複数のバッファ領域へアクセス可能である、
    請求項1記載のメモリコントローラ。
  4. 前記一以上の不揮発メモリの各々は、複数の物理領域を有し、
    前記複数の物理領域の各々は、複数のサブ物理領域を有し、
    前記一以上の不揮発メモリの各々は、サブ物理領域単位でデータが入出力され物理領域単位でデータが消去されるメモリであり、
    前記複数のバッファ領域の各々の容量は、2つのサブ物理領域の容量以上である、
    請求項1乃至3のうちのいずれか1項に記載のメモリコントローラ。
  5. 請求項1乃至4のうちのいずれか1項に記載のメモリコントローラと、
    前記メモリコントローラに接続された1以上の不揮発メモリである不揮発メモリ群と
    を有するメモリシステム。
  6. ホストシステムから与えられる読出しコマンドに基づいて、1以上の不揮発メモリであり複数の部分メモリ群を有する不揮発メモリ群からのデータの読出しを制御するメモリ制御方法であって、
    前記複数の部分メモリ群にそれぞれ対応した複数の読出し部の各々により、前記読出しコマンドに従う読出し対象データを構成する1以上のデータ要素を、前記複数の部分メモリ群のうちの対応する部分メモリ群から、他の読出し部がリードリトライを行っているか否かに関わらず読み出し、読み出されたデータ要素が訂正可能なデータ要素であれば、複数のバッファ領域のうちの、そのデータ要素を読み出した読出し部に関連付けられているバッファ領域に、読み出されたデータ要素を書き込み、読み出されたデータ要素にアンコレクタブルエラーがあれば、その読出し部によりリードリトライを行い、
    前記ホストシステムへ前記読出し対象データが送信されるよう前記複数のバッファ領域からの前記複数のデータ要素の読出しの順序を制御する、
    メモリ制御方法。
JP2014098407A 2014-05-12 2014-05-12 メモリコントローラ、メモリシステム及びメモリ制御方法 Pending JP2015215774A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014098407A JP2015215774A (ja) 2014-05-12 2014-05-12 メモリコントローラ、メモリシステム及びメモリ制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014098407A JP2015215774A (ja) 2014-05-12 2014-05-12 メモリコントローラ、メモリシステム及びメモリ制御方法

Publications (1)

Publication Number Publication Date
JP2015215774A true JP2015215774A (ja) 2015-12-03

Family

ID=54752598

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014098407A Pending JP2015215774A (ja) 2014-05-12 2014-05-12 メモリコントローラ、メモリシステム及びメモリ制御方法

Country Status (1)

Country Link
JP (1) JP2015215774A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020018831A1 (en) * 2018-07-19 2020-01-23 Micron Technology, Inc. Write buffer management

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57176465A (en) * 1981-04-24 1982-10-29 Hitachi Ltd Main storage control system
JP2006195990A (ja) * 2005-01-11 2006-07-27 Samsung Electronics Co Ltd 半導体ディスク制御装置
JP2012502332A (ja) * 2008-09-03 2012-01-26 マーベル ワールド トレード リミテッド マルチプレーン型フラッシュメモリへのデータのプログラミング
JP2012079403A (ja) * 2010-10-04 2012-04-19 Samsung Electronics Co Ltd 不揮発性メモリ装置の読み出し方法及びメモリコントローラの動作方法並びにメモリシステムの動作方法
JP2012523612A (ja) * 2009-04-09 2012-10-04 マイクロン テクノロジー, インク. いくつかのコマンドを処理するためのメモリコントローラ、メモリシステム、ソリッドステートドライブ、および方法
JP2013073669A (ja) * 2011-09-28 2013-04-22 Samsung Electronics Co Ltd 不揮発性メモリ装置のデータリード方法、及びそれを行う装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57176465A (en) * 1981-04-24 1982-10-29 Hitachi Ltd Main storage control system
JP2006195990A (ja) * 2005-01-11 2006-07-27 Samsung Electronics Co Ltd 半導体ディスク制御装置
JP2012502332A (ja) * 2008-09-03 2012-01-26 マーベル ワールド トレード リミテッド マルチプレーン型フラッシュメモリへのデータのプログラミング
JP2012523612A (ja) * 2009-04-09 2012-10-04 マイクロン テクノロジー, インク. いくつかのコマンドを処理するためのメモリコントローラ、メモリシステム、ソリッドステートドライブ、および方法
JP2012079403A (ja) * 2010-10-04 2012-04-19 Samsung Electronics Co Ltd 不揮発性メモリ装置の読み出し方法及びメモリコントローラの動作方法並びにメモリシステムの動作方法
JP2013073669A (ja) * 2011-09-28 2013-04-22 Samsung Electronics Co Ltd 不揮発性メモリ装置のデータリード方法、及びそれを行う装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020018831A1 (en) * 2018-07-19 2020-01-23 Micron Technology, Inc. Write buffer management
US10877835B2 (en) 2018-07-19 2020-12-29 Micron Technology, Inc. Write buffer management
US11526395B2 (en) 2018-07-19 2022-12-13 Micron Technology, Inc. Write buffer management

Similar Documents

Publication Publication Date Title
KR101821845B1 (ko) 백그라운드 동작을 수행하기 위한 제어기 및 방법
JP4357304B2 (ja) 外部記憶装置
US8144515B2 (en) Interleaved flash storage system and method
KR20070085561A (ko) 섹터 버퍼를 포함하는 메모리 시스템
JP2000067574A (ja) 半導体記憶装置
US20210303214A1 (en) Memory system and information processing system
JP5093294B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2013137713A (ja) メモリコントローラ、メモリシステムおよびメモリ書込み方法
US7657697B2 (en) Method of controlling a semiconductor memory device applied to a memory card
JP2009282923A (ja) 半導体記憶装置及び不揮発性メモリ
US20140040534A1 (en) Data storing method and memory controller and memory storage device using the same
US8533549B2 (en) Memory system and computer system
JP2022125787A (ja) メモリシステムおよび制御方法
US11880592B2 (en) Memory system adjusting packet size and method
JP2015215774A (ja) メモリコントローラ、メモリシステム及びメモリ制御方法
JP4710918B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4655034B2 (ja) メモリコントローラ及びフラッシュメモリシステム並びにフラッシュメモリの制御方法
JP4697146B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US9652378B2 (en) Writing method, memory controller and memory storage device
JP4636046B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4273106B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
US20150254011A1 (en) Memory system, memory controller and control method of non-volatile memory
JP2012068764A (ja) メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法
JP2008102693A (ja) メモリコントローラ及びフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP6260395B2 (ja) メモリコントローラ、メモリシステム及びメモリ制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161214

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170804

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170926

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171031

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20180327