JP2006155335A - メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 - Google Patents

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

Info

Publication number
JP2006155335A
JP2006155335A JP2004346576A JP2004346576A JP2006155335A JP 2006155335 A JP2006155335 A JP 2006155335A JP 2004346576 A JP2004346576 A JP 2004346576A JP 2004346576 A JP2004346576 A JP 2004346576A JP 2006155335 A JP2006155335 A JP 2006155335A
Authority
JP
Japan
Prior art keywords
page
flash memory
block
physical
information
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
JP2004346576A
Other languages
English (en)
Other versions
JP4661191B2 (ja
Inventor
Yukio Terasaki
幸夫 寺崎
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 JP2004346576A priority Critical patent/JP4661191B2/ja
Publication of JP2006155335A publication Critical patent/JP2006155335A/ja
Application granted granted Critical
Publication of JP4661191B2 publication Critical patent/JP4661191B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System (AREA)

Abstract

【課題】フラッシュメモリにアクセスするときの処理効率を向上させる。
【解決手段】 ホストシステムから読出しコマンドと共に供給される論理アドレスとセクタ数で指定される複数セクタの領域を、ステップ1で論理ブロック毎のグループに区分し、ステップ2で最初のグループ内の先頭セクタに対応する物理アドレスを求め、ステップ4で、最初のグループを対象として読出しを開始する。そして、ステップ5において、ステップ4で開始した読出しシーケンス処理の終了を待たずに、次のグループ内の先頭セクタに対応する物理アドレスを求め、ステップ7で、次のグループを対象として読出しを開始する。
【選択図】図7

Description

本発明は、メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、及びフラッシュメモリの制御方法に関する。
近年、メモリーカードやシリコンディスクといったメモリシステムにて使用される半導体メモリに、フラッシュメモリが広く採用されている。フラッシュメモリは、不揮発性メモリの一種である。フラッシュメモリに格納されたデータは、電力が供給されていないときでも保持されていることが要求される。
NAND型フラッシュメモリは、上記のメモリシステムで特に多く用いられるフラッシュメモリの一種である。NAND型フラッシュメモリに含まれている複数のメモリセルのそれぞれは、他のメモリセルとは独立して、論理値“1”を示すデータが格納されている消去状態から、論理値“0”を示すデータが格納されている書込み状態へと変化することができる。これとは対照的に、書込状態から消去状態へと変化するときには、各メモリセルは他のメモリセルと独立して変化することができない。このときには、ブロックと称される予め定められた数のメモリセルが、全て同時に消去状態になる。この一括消去動作は、一般的に、“ブロック消去"と称されている。NAND型フラッシュメモリに対する書込み処理若しくは読出し処理は、ページと称される予め定められた数のメモリセル単位で処理が実行されている。消去処理の単位であるブロックは、複数のページで構成されている。
上述のような構成を有するNAND型フラッシュメモリでは、データの重ね書きを行うことができないため、データの書替えを行う場合には、ブロック消去されている消去済ブロックに新たなデータ(書替え後のデータ)を書込み、古いデータ(書替え前のデータ)が書込まれていたブロックを消去するという処理を行わなければならない。
このようなデータの書替えを行った場合、書替え後のデータは、書替え前のデータと異なるブロックに書込まれる。従って、ホストシステム側から与えられる論理ブロックアドレスと、フラッシュメモリ内の物理ブロックアドレスとの対応関係は、データを書替える毎に動的に変化する。このため、フラッシュメモリにアクセスする場合には、論理ブロックアドレスと物理ブロックアドレスの対応関係を示したアドレス変換テーブルが必要となる。
このアドレス変換テーブルを作成するときの時間的な負担等を軽減するため、特許文献1では、フラッシュメモリ内を複数のゾーンに分割し、各ゾーンに割当てられたブロックを対象にしてアドレス変換テーブルを作成している。
特開2000−284996号公報
上述のように各ゾーンに割当てられたブロックを対象にしてアドレス変換テーブルを作成するようにすれば、アドレス変換テーブルを作成するときの負担は軽減される。しかしながら、フラッシュメモリにアクセスするときは、従来と同様に、その都度、作成したアドレス変換テーブルを用いて、論理ブロックアドレスから物理ブロックアドレスへの変換を行わなければならない。
従って、ホストシステムからの要求に基づいて、複数セクタ分のデータを読出す場合に、それらのデータが、複数の物理ブロックに記憶されているときは、複数回、アドレスの変換処理を行わなければならない。又、このアドレスの変換処理は、フラッシュメモリに対してコマンドやアドレス等を供給する前に行わなければならない。
そこで、本発明は、フラッシュメモリにアクセスするときの処理効率を向上させることができるメモリコントローラ、フラッシュメモリシステム、及び、フラッシュメモリの制御方法を提供することを目的とする。
上記目的を達成するために、本発明の第1の観点に係るメモリコントローラは、
ホストシステムから読出しコマンドと共に供給される論理アドレスと読出すデータ量を示す情報のセクタ数とに基づいて、フラッシュメモリに対するアクセスを制御するメモリコントローラであって、
前記論理アドレス及びセクタ数に応じて、前記ホストシステムに対して送出する複数セクタ分のデータを、前記ホストシステムの記憶空間上の論理ブロック毎のグループに区分する第1の手段と、
前記論理ブロックと前記フラッシュメモリの記憶空間上の物理ブロックとの対応関係を管理する第2の手段と、
前記論理ブロックと前記物理ブロックとの対応関係に基づいて、前記グループ内の先頭セクタに対応する前記フラッシュメモリの記憶空間上のページの物理アドレス情報を求める第3の手段と、
前記物理アドレス情報と前記グループに属するセクタ数に応じて決まるページ数情報とを保持する第4の手段と、
前記物理アドレス情報と前記ページ数情報とに基づいて、同一物理ブロック内の連続するページに対して順次読出し処理を実行する第5の手段とを備え、
前記第5の手段が処理を実行しているときに、前記第3の手段が処理を実行することができるように構成されていることを特徴とする。
なお、各ページに対する読出し処理が終了する毎に、前記第4の手段に保持されている前記物理アドレス情報と前記ページ数情報とを、更新してもよい。
この場合、各ページに対する読出し処理が終了する毎に、前記第4の手段に保持されている前記物理アドレス情報を、次にアクセスするページに対応する情報に更新してもよい。
また、各ページに対する読出し処理が終了する毎に、前記第4の手段に保持されている前記ページ数情報を、同一グループ内の未アクセスのページ数に対応する情報に更新してもよい。
上記目的を達成するために、本発明の第2の観点に係るメモリコントローラは、
ホストシステムから書込みコマンドと共に供給される論理アドレスと書込むデータ量を示す情報のセクタ数とに基づいて、フラッシュメモリに対するアクセスを制御するメモリコントローラであって、
前記論理アドレス及びセクタ数に応じて、前記ホストシステムから供給される複数セクタ分のデータを、前記ホストシステムの記憶空間上の論理ブロック毎のグループに区分する第6の手段と、
前記フラッシュメモリの記憶空間上の物理ブロックから消去状態の物理ブロックを検索し、該消去状態の物理ブロックの物理アドレス情報を求める第7の手段と、
前記物理アドレス情報と前記グループに属するセクタ数に応じて決まる前記フラッシュメモリの記憶空間上のページ数情報とを保持する第8の手段と、
前記物理アドレス情報と前記ページ数情報とに基づいて、消去状態の同一の物理ブロック内の連続するページに対して順次書込み処理を実行する第9の手段とを備え、
前記第9の手段が処理を実行しているときに、前記第7の手段が処理を実行することができるように構成されていることを特徴とする。
なお、各ページに対する書込み処理が終了する毎に、前記第8の手段に保持されている前記物理アドレス情報と前記ページ数情報とを、更新してもよい。
この場合、各ページに対する書込み処理が終了する毎に、前記第8の手段に保持されている前記物理アドレス情報を、次にアクセスするページに対応する情報に更新してもよい。
また、各ページに対する書込み処理が終了する毎に、前記第8の手段に保持されている前記ページ数情報を、同一グループ内の未アクセスのページ数に対応する情報に更新してもよい。
上記目的を達成するために、本発明の第3の観点に係るメモリコントローラは、
ホストシステムから読出しコマンド若しくは書込みコマンドと共に供給される論理アドレスとアクセスするデータ量を示すセクタ数とに基づいて、フラッシュメモリに対するアクセスを制御するメモリコントローラであって、
前記論理アドレス及びセクタ数に応じて、前記ホストシステムに対して送出する複数セクタ分のデータ若しくは該ホストシステムから供給される複数セクタ分のデータを、該ホストシステムの記憶空間上の論理ブロック毎のグループに区分する第10の手段と、
前記論理ブロックと前記フラッシュメモリの記憶空間上の物理ブロックとの対応関係を管理する第11の手段と、
前記論理ブロックと前記物理ブロックとの対応関係に基づいて、前記グループ内の先頭セクタに対応する前記フラッシュメモリ記憶空間上のページの物理アドレス情報を求める第12の手段と、
消去状態の物理ブロックを検索し、該消去状態の物理ブロックの物理アドレス情報を求める第13の手段と、
前記第12の手段若しくは前記第13の手段によって求めた物理アドレス情報と前記グループに属するセクタ数に応じて決まるページ数情報とを保持する第14の手段と、
前記物理アドレス情報と前記ページ数情報とに基づいて、同一物理ブロック内の連続するページに対して順次読出し処理若しくは書込み処理を実行する第15の手段とを備え、
前記第15の手段が処理を実行しているときに、前記第12の手段若しくは前記第13の手段が処理を実行することができるように構成されていることを特徴とする。
なお、各ページに対する読出し処理若しくは書込み処理が終了する毎に、前記第14の手段に保持されている前記物理アドレス情報と前記ページ数情報とを、更新してもよい。
この場合、各ページに対する読出し処理若しくは書込み処理が終了する毎に、前記第14の手段に保持されている前記物理アドレス情報を、次にアクセスするページに対応する情報に更新してもよい。
また、各ページに対する読出し処理若しくは書込み処理が終了する毎に、前記第14の手段に保持されている前記ページ数情報を、同一グループ内の未アクセスのページ数に対応する情報に更新してもよい。
上記目的を達成するために、本発明の第4の観点に係るフラッシュメモリシステムは、本発明の第1〜第3の観点に係るメモリコントローラとフラッシュメモリとを備えることを特徴とする。
上記目的を達成するために、本発明の第5の観点に係るフラッシュメモリの制御方法は、
ホストシステムから読出しコマンドと共に供給される論理アドレスと読出すデータ量を示す情報のセクタ数とに基づいて、フラッシュメモリに対するアクセスを制御するフラッシュメモリの制御方法であって、
前記論理アドレス及びセクタ数に応じて、前記ホストシステムに対して送出する複数セクタ分のデータを、前記ホストシステムの記憶空間上の論理ブロック毎のグループに区分する第1の処理と、
前記論理ブロックと前記フラッシュメモリの記憶空間上の物理ブロックとの対応関係を示すテーブルを作成する第2の処理と、
前記テーブルを用いて、前記グループ内の先頭セクタに対応する前記フラッシュメモリの記憶空間上のページの物理アドレス情報を求める第3の処理と、
前記物理アドレス情報と、前記グループに属するセクタ数に応じて決まるページ数情報を設定する第4の処理と、
前記物理アドレス情報と前記ページ数情報とに基づいて、同一物理ブロック内の連続するページに対して順次読出しを行う第5の処理とを含み、
前記第5の処理が実行中であっても、前記第3の処理が開始されるように処理の工程が設定されていることを特徴とする。
なお、各ページに対する読出し処理が終了する毎に、前記第4の処理で設定された前記物理アドレス情報と前記ページ数情報とを、更新してもよい。
この場合、各ページに対する読出し処理が終了する毎に、前記第4の処理で設定された前記物理アドレス情報を、次にアクセスするページに対応する情報に更新してもよい。
また、各ページに対する読出し処理が終了する毎に、前記第3の処理で設定された前記ページ数情報を、同一グループ内の未アクセスのページ数に対応する情報に更新してもよい。
上記目的を達成するために、本発明の第6の観点に係るフラッシュメモリの制御方法は、
ホストシステムから書込みコマンドと共に供給される論理アドレスと書込むデータ量を示す情報のセクタ数とに基づいて、フラッシュメモリに対するアクセスを制御するフラッシュメモリの制御方法であって、
前記論理アドレス及びセクタ数に応じて、前記ホストシステムから供給される複数セクタ分のデータを、前記ホストシステムの記憶空間上の論理ブロック毎のグループに区分する第6の処理と、
前記フラッシュメモリの記憶空間上の物理ブロックから消去状態の物理ブロックを検索し、該消去状態の物理ブロックの物理アドレス情報を求める第7の処理と、
前記物理アドレス情報と前記グループに属するセクタ数に応じて決まる前記フラッシュメモリの記憶空間上のページ数情報とを設定する第8の処理と、
前記物理アドレス情報と前記ページ数情報とに基づいて、同一物理ブロック内の連続するページに対して順次書込みを行う第9の処理とを含み、
前記第9の処理が実行中であっても、前記第7の処理が開始されるように処理の工程が設定されていることを特徴とする。
なお、各ページに対する書込み処理が終了する毎に、前記第8の処理で設定された前記物理アドレス情報と前記ページ数情報とを、更新してもよい。
この場合、各ページに対する書込み処理が終了する毎に、前記第7の処理で設定された前記物理アドレス情報を、次にアクセスするページに対応する情報に更新してもよい。
また、各ページに対する書込み処理が終了する毎に、前記第7の処理で設定された前記ページ数情報を、同一グループ内の未アクセスのページ数に対応する情報に更新してもよい。
本発明によれば、フラッシュメモリに対する読出し若しくは書込みの処理と、アクセス先の物理アドレスを求めるアドレスの変換処理や消去済み物理ブロックの検索処理を並行して実行しているので、フラッシュメモリにアクセスするときの処理効率を向上させることができる。
図1は、本発明の実施形態に係るフラッシュメモリシステム1を、概略的に示すブロック図である。
図1に示したように、フラッシュメモリシステム1は、フラッシュメモリ2と、それを制御するメモリコントローラ3で構成されている。又、フラッシュメモリシステム1は、通常、ホストシステム4に着脱可能に装着され、ホストシステム4に対して、一種の外部記憶装置として用いられる。
尚、ホストシステム4としては、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータや、デジタルスチルカメラをはじめとする各種情報処理装置が挙げられる。
以下に、フラッシュメモリ2及びメモリコントローラ3の詳細を説明する。
[フラッシュメモリ2の説明]
このフラッシュメモリシステム1において、データが記憶されるフラッシュメモリ2は、NAND型フラッシュメモリで構成されている。NAND型フラッシュメモリは、ストレージデバイスへの用途として(ハードディスクの代わりになるものとして)開発された不揮発性メモリである。このNAND型フラッシュメモリは、ランダムアクセスを行なうことができず、書込みと読出しはページ単位で、消去はブロック単位で行なわれる。又、データの上書きができないので、データを書込むときは、消去されている領域にデータの書込みが行なわれる。
NAND型フラッシュメモリは、このような特徴を有するため、通常、データの書替を行なう場合には、ブロック消去されている消去済ブロックに新たなデータ(書替え後のデータ)を書込み、古いデータ(書替え前のデータ)が書込まれていたブロックを消去するという処理を行なっている。
このようなデータの書替えを行なった場合、書替え後のデータは、書替え前と異なるブロックに書込まれるため、ホストシステム4側から与えられる論理アドレスと、フラッシュメモリ2内での物理アドレスとの対応関係は、データを書替える毎に動的に変化する。従って、フラッシュメモリ2にアクセスするときには、通常、論理アドレスと物理アドレスとの対応関係を示したアドレス変換テーブルが作成され、このアドレス変換テーブルを用いて、フラッシュメモリ2に対するアクセスが行なわれる。
図2は、ブロックとページの関係を示す説明図である。
上記ブロックとページの構成は、フラッシュメモリの仕様によって異なるが、本実施形態のフラッシュメモリ2では、図2(a)に示したように、1ブロックが32ページ(P0〜P31)で構成され、各ページが512バイトのユーザー領域と16バイトの冗長領域で構成されている。又、記憶容量の増加に伴い、図2(b)に示したように、1ブロックが64ページ(P0〜P63)で構成され、各ページが2048バイトのユーザー領域と64バイトの冗長領域で構成されているものも提供されている。
ここで、ユーザー領域は、主に、ホストシステム4から供給されるデ―タが記憶される領域であり、冗長領域は、誤り訂正符号、対応論理アドレス情報及びブロックステータス等の付加データが記憶される領域である。誤り訂正符号は、ユーザー領域に記憶されているデータに含まれる誤りを検出、訂正するための付加データであり、後述するECCブロックによって生成される。
対応論理アドレス情報は、物理ブロックにデータが記憶されている場合に書込まれ、その物理ブロックに記憶されているデータの論理アドレスに関する情報を示している。尚、物理ブロックにデータが記憶されていない場合は、対応論理アドレス情報が書込まれないので、対応論理アドレス情報が書込まれているか否かで、そのブロックが消去済ブロックであるか否かを判断することができる。つまり、対応論理ブロックアドレスが書込まれていない場合は、消去済ブロックであると判断される。
ブロックステータスは、その物理ブロックが不良ブロック(正常にデータの書込み等を行なうことができない物理ブロック)であるか否かを示すフラグであり、その物理ブロックが不良ブロックであると判断された場合には、不良ブロックであることを示すフラグが設定される。
次に、フラッシュメモリ2の、回路構成について説明する。一般的なNAND型フラッシュメモリは、書込みデータ若しくは読出しデータを保持するためのレジスタと、データを記憶するメモリセルアレイによって構成されている。メモリセルアレイは、複数のメモリセルが直列に接続されたメモリセル群を複数備えており、ワード線によって、メモリセル群の特定のメモリセルが選択される。このワード線によって選択されたメモリセルとレジスタの間で、データの複写(レジスタからメモリセルへの複写、若しくはメモリセルからレジスタへの複写)が行なわれる。
メモリセルアレイを構成するメモリセルは、2つのゲートを備えたMOSトランジスタで構成されている。ここで、上側のゲートはコントロールゲートと、下側のゲートはフローティングゲートと呼ばれており、フローティングゲートに電荷(電子)を注入したり、フローティングゲートから電荷(電子)を排出したりすることによって、データの書込みや消去を行っている。
フローティングゲートは、周囲を絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となる高電圧を印加して電子を注入し、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となる高電圧を印加して電子を排出する。フローティングゲートに電子が注入されている状態(書込み状態)が、論理値“0”のデータに対応し、フローティングゲートから電子が排出されている状態(消去状態)が、論理値“1”のデータに対応する。
[メモリコントローラ3の説明]
メモリコントローラ3は、ホストインターフェース制御ブロック5と、マイクロプロセッサ6と、ホストインターフェースブロック7と、ワークエリア8と、バッファ9と、フラッシュメモリインターフェースブロック10と、ECC(エラー・コレクション・コード)ブロック11と、フラッシュメモリシーケンサブロック12とから構成される。これら機能ブロックによって構成されるメモリコントローラ3は、1つの半導体チップ上に集積されている。以下に、各機能ブロックの機能を説明する。
マイクロプロセッサ6は、メモリコントローラ3を構成する各機能ブロック全体の、動作を制御する機能ブロックである。
ホストインターフェース制御ブロック5は、ホストインターフェースブロック7の動作を制御する機能ブロックである。ここで、ホストインターフェース制御ブロック5は、ホストインターフェースブロック7の動作を設定する動作設定レジスタ(図示せず)を備えており、この動作設定レジスタに基づいて、ホストインターフェースブロック7は動作する。
ホストインターフェースブロック7は、ホストシステム4とデータ、アドレス情報、ステータス情報及び外部コマンド情報の授受を行なう機能ブロックである。すなわち、フラッシュメモリシステム1がホストシステム4に装着されると、フラッシュメモリシステム1とホストシステム4は、外部バス13を介して相互に接続される。かかる状態において、ホストシステム4よりフラッシュメモリシステム1に供給されるデータ等は、ホストインターフェースブロック7を入口として、メモリコントローラ3の内部に取り込まれる。フラッシュメモリシステム1からホストシステム4に供給されるデータ等は、ホストインターフェースブロック7を出口として、ホストシステム4に供給される。
さらに、ホストインターフェースブロック7は、ホストシステム4より供給される論理アドレス、セクタ数及び外部コマンドを保持するレジスタや、エラーが発生した場合にセットされるエラーレジスタ(図示せず)等を有している。
ワークエリア8は、フラッシュメモリ2の制御に必要なデータが一時的に格納される作業領域であり、複数のSRAM(Static Random Access Memory)セルによって構成されている。
バッファ9は、フラッシュメモリ2から読出したデータ及びフラッシュメモリ2に書込むデータを、一時的に保持する機能ブロックである。すなわち、フラッシュメモリ2から読出したデータは、ホストシステム4の受取準備ができるまで、バッファ9に保持され、フラッシュメモリ2に書込むデータは、フラッシュメモリ2の書込準備ができるまで、バッファ9に保持される。
フラッシュメモリシーケンサブロック12は、内部コマンドに基づいて、フラッシュメモリ2の動作を制御する機能ブロックである。フラッシュメモリシーケンサブロック12は、複数のレジスタ(図示せず)を備え、この複数のレジスタに、内部コマンドを実行する際に必要な情報が設定される。複数のレジスタに、内部コマンドを実行する際に必要な情報が設定されると、フラッシュメモリシーケンサブロック12は、その情報に基づいて処理を実行する。
ここで、「内部コマンド」とは、メモリコントローラ3からフラッシュメモリ2に与えられるコマンドであり、ホストシステム4からフラッシュメモリシステム1に与えられるコマンドである「外部コマンド」と区別される。
フラッシュメモリインターフェースブロック10は、内部バス14を介して、フラッシュメモリ2とデータ、アドレス情報、ステータス情報、内部コマンド情報及びデバイスID情報等の授受を行う機能ブロックである。
ECCブロック11は、フラッシュメモリ2に書込むデ―タに付加されるエラーコレクションコードを生成するとともに、読出しデータに付加されているエラーコレクションコードに基づいて、読出したデータに含まれる誤りを検出・訂正する機能ブロックである。
[フラッシュメモリに対するアクセスの説明]
本実施例に係るフラッシュメモリシステム1では、複数の物理ブロックでゾーンを形成し、各ゾーンに対して、予め設定された論理アドレスの領域を割当てている。
図3は、ゾーンを説明するための説明図である。
図3に示した例では、1024個の物理ブロックでゾーンが形成されている。又、このゾーンに対して、1000ブロック分(物理ブロック1000個分)の論理ブロック空間が割当てられている。
図3では、論理アドレス空間を、セクタ単位で付けた連番であるLBA(Logical Block Address)で示している。
ここで、1セクタの容量がフラッシュメモリ2の1ページの容量と等しく、各物理ブロックが32個のページで構成されている場合、ゾーン内の各物理ブロックは、論理アドレス空間の32セクタ分の領域に割当てられる。従って、論理アドレス空間の32セクタ分の領域を1個の論理ブロックとすれば、1個の物理ブロックに対して1個の論理ブロックが割当てられる。
又、1つのゾーンに割当てられる3200セクタ分の領域(LBA0〜LBA3199)を、32セクタ毎に区切った論理ブロックには、連番(LB0〜LB999)がそれぞれ付けられている(以下、この論理ブロックに付けた連番を論理ブロック連番という)。一方、ゾーンを構成する1024個の各物理ブロックにも連番(#0〜#1023)が付けられている(以下、物理ブロックに付けた連番を物理ブロック連番という)。
例えば、LBA0〜LBA31に対応する論理ブロック連番LB0の論理ブロックが、物理ブロック連番#3の物理ブロックに割当てられ、LBA32〜LBA63に対応する論理ブロック連番LB1の論理ブロックが、物理ブロック連番#1の物理ブロックに割当てられている。LBA0〜LBA31に対応する論理ブロック連番LB0の論理ブロックが、物理ブロック連番#3の物理ブロックに割当てられ、LBA64〜LBA95に対応する論理ブロック連番LB2の論理ブロックが、物理ブロック連番#5の物理ブロックに割当てられ、LBA96〜LBA127に対応する論理ブロック連番LB3の論理ブロックが、物理ブロック連番#7の物理ブロックに割当てられている。
フラッシュメモリ2にアクセスするときは、論理ブロックと物理ブロックの対応関係を示した変換テーブルを作成し、この変換テーブルを用いて、アクセスするページのアドレスを求めている。変換テーブルは、各物理ブロックの冗長領域に書込まれている論理ブロックに関する情報(その物理ブロックに書込まれているユーザーデータに対応する論理ブロックを示す情報)に基づいて作成される。
例えば、物理ブロックにユーザーデータを書込んだときに、そのユーザーデータに対応する論理ブロックの論理ブロック連番を、その物理ブロックの冗長領域に書込めば、この論理ブロック連番を順次読出すことにより、変換テーブルを作成することができる。
図4は、論理ブロック連番と物理ブロック連番との対応関係を示す変換テーブルの説明図である。
この変換テーブルは、1つのゾーンに対して作成されたものであり、ゾーンに割当てられている論理アドレス空間の論理ブロック連番LB0〜LB999と、これ対応する物理ブロックの物理ブロック連番#0〜#1023の対応関係を示している。図4に示した例では、論理ブロック連番LB0は、物理ブロック連番#3に対応し、論理ブロック連番LB1は、物理ブロック連番#1に対応し、論理ブロック連番LB2は、物理ブロック連番#5に対応する。このように、各論理ブロック連番に対応する物理ブロック連番が示されているので、ホストシステム4からコマンドと共にアドレス情報としてLBAが供給された場合は、そのLBAが属する論理ブロックの論理ブロック連番を変換テーブル上で検索することにより、それに対応する物理ブロックの物理ブロック連番を求めることができる。
ホストシステム4からは、読出し若しくは書込みコマンドと共に、アクセスの対象となる論理アドレスの領域に関する情報が供給される。このアクセスの対象は、論理アドレス(例えば、LBA)とセクタ数で指定される。ここで、ホストシステム4から供給される論理アドレスは、アクセスの対象の先頭アドレスを示し、ホストシステム4から供給されるセクタ数は、先頭アドレスから何セクタ分の領域がアクセスの対象であるかを示している。
図5は、論理ブロックと物理ブロックの対応関係を示す説明図である。
図6は、グループ分割の例を示す説明図である。
例えば、ホストシステム4から論理アドレスとしてLBA16が供給され、セクタ数として31が供給された場合、図5に示したように、LBA16から31セクタ分の領域、つまり、LBA16からLBA46までの領域が、アクセスの対象として指定される。
このアクセスの対象が、複数の論理ブロックに跨っている場合は、論理ブロック毎に論理ブロックから物理ブロックへの変換処理を行わなければならない。以下、論理ブロックから物理ブロックへの変換処理、つまり、各論理ブロックに対応する物理ブロックのアドレスを求める処理を論物変換処理という。
図5に示した例では、LBA16〜LBA31が論理ブロック連番LB0の論理ブロックに属し、LBA32〜LBA46が論理ブロック連番LB1の論理ブロックに属している。従って、論理ブロック連番LB0の論理ブロックに対応する物理ブロックの物理ブロック連番を求める論物変換処理と、論理ブロック連番LB1の論理ブロックに対応する物理ブロックの物理ブロック連番を求める論物変換処理を実行しなければならない。
アクセスの対象が、複数の論理ブロックに跨っている場合の論物変換処理について、図6を参照して説明する。
アクセスの対象の先頭アドレスがLBA16で、セクタ数が31の場合、LBA16からLBA46までがアクセスの対象となる。これを論理ブロック毎のグループに分割すると、LBA16〜LBA31のグループと、LBA32〜LBA46のグループに分割される。これを2進数で表示して説明すれば、000 0000 0001 0000B(2進数)から000 0000 0010 1110(2進数)までのアクセスの対象が、000 0000 0001 0000B(2進数)から000 0000 0001 1111(2進数)までのグループと、000 0000 0010 0000B(2進数)から000 0000 0010 1110(2進数)までのグループに分割される。
ここで、32個のセクタを1個の論理ブロックとするので、0から3199までのLBAを2進数で表現したときの、下位の5ビットが、各論理ブロック内でのセクタ番号を示し、下位の5ビットを除いた上位の10ビットが0から999までの論理ブロック連番に対応する。又、下位の5ビットのセクタ番号は、フラッシュメモリ2内の0から31までのページ番号に対応し、下位の5ビットを除いた上位の10ビットは、物理ブロックのアドレスに置き換えられる。
000 0000 0001 0000B(2進数)から000 0000 0001 1111(2進数)までのグループでは、下位の5ビットを除いた上位の10ビットがLBA0に対応するので、変換テーブルを用いてLBA0に対応する物理ブロックの物理ブロック連番を検索する。その結果、LBA0に対応する物理ブロック連番が#3であれば、物理ブロック連番#3の物理ブロックのアドレスに1 0000B(2進数)から1 1111(2進数)までのページ番号を付加した物理アドレスにアクセスが行われるように、フラッシュメモリシーケンサブロック12のレジスタに物理アドレスとセクタ数が設定される。
000 0000 0010 0000B(2進数)から000 0000 0010 1110(2進数)までのグループは、下位の5ビットを除いた上位の10ビットがLBA1に対応するので、変換テーブルを用いてLBA1に対応する物理ブロックの物理ブロック連番を検索する。その結果、LBA1に対応する物理ブロック連番が#1であれば、物理ブロック連番#1の物理ブロックのアドレスに0 0000B(2進数)から0 1110(2進数)までのページ番号を付加した物理アドレスにアクセスが行われるように、フラッシュメモリシーケンサブロック12のレジスタに物理アドレスとセクタ数が設定される。
次に、ホストシステム4から複数の論理ブロックに跨る読出し処理の要求を受けた場合の処理について、図7を参照して説明する。
図7は、読出し処理の要求を受けた場合の処理を示すフローチャートである。
まず、ホストシステム4から読出しコマンドと共に供給される論理アドレスとセクタ数で指定される複数セクタの領域を、論理ブロック毎のグループに区分する(ステップ1)。
続いて、最初のグループの論物変換処理を実行し、グループ内の先頭セクタに対応する物理アドレスを求める(ステップ2)。フラッシュメモリシーケンサブロック12が処理を実行しているか否かをチェックし(ステップ3)、処理が終了した後に(ステップ3:NO)、ステップ4を実行する。
ステップ4では、フラッシュメモリシーケンサブロック12内のレジスタに、フラッシュメモリ2に与えられる読出しコマンドと、ステップ2で求めたグループ内の先頭セクタに対応する物理アドレスと、グループに含まれるセクタのセクタ数を設定した後、フラッシュメモリ2に対する読出しシーケンス処理を開始する。この読出しシーケンス処理では、グループ内の各セクタに対応するフラッシュメモリ2内のページからユーザーデータを順次読み出す。この際、グループ内の各セクタに対応するフラッシュメモリ2内のページからユーザーデータが読み出される毎に、フラッシュメモリシーケンサブロック12内のレジスタに設定した物理アドレスが1ずつ加算されると共に、フラッシュメモリシーケンサブロック12内のレジスタに設定したセクタ数が1ずつ減算される。
又、フラッシュメモリシーケンサブロック12内のレジスタに設定した物理アドレスが加算される毎に、加算された物理アドレスに対する読出し処理を実行し、セクタ数が“0”になると読出しシーケンス処理を終了する。尚、各物理ブロック内のページには、LBAの順番(論理アドレスの順番)で、ユーザーデータが書込まれているので、フラッシュメモリシーケンサブロック12内のレジスタに設定した物理アドレスを、初期値(グループ内の先頭セクタに対応する物理アドレス)に1ずつ加算していくことにより、グループ内の各セクタに対応するフラッシュメモリ2内のページから順次ユーザーデータを読み出すことができる。又、読み出されるページのページ数は、フラッシュメモリシーケンサブロック12内のレジスタに設定されたセクタ数と一致する。
ステップ4で、フラッシュメモリシーケンサブロック12内のレジスタに、読出しコマンド、物理アドレス及びセクタ数を設定して、フラッシュメモリ2に対する読出しシーケンス処理を開始した後、読出しシーケンス処理の終了を待たずに、次のグループに対する論物変換処理を開始する。この論物変換処理では、次のグループ内の先頭セクタに対応する物理アドレスを求める(ステップ5)。
ステップ4の読出しシーケンス処理が終了しているか否かをチェックし(ステップ6)、処理が終了した後に(ステップ6:NO)、ステップ7を実行する。
ステップ7では、フラッシュメモリシーケンサブロック12内のレジスタに、フラッシュメモリ2に与えられる読出しコマンドと、ステップ5で求めたグループ内の先頭セクタに対応する物理アドレスと、グループに含まれるセクタのセクタ数を設定した後、ステップ4と同様にフラッシュメモリ2に対する読出しシーケンス処理を開始する。
この読出しシーケンス処理では、前回の読出しシーケンス処理で処理対象となったグループの次のグループが処理対象となる。
ステップ7で、開始した読出しシーケンス処理の処理対象が最後のグループであれば(ステップ8:YES)、ホストシステム4から与えられた読出しコマンドに基づいた処理を終了する。ステップ7で、開始した読出しシーケンス処理の処理対象が最後のグループでない場合は(ステップ8:NO)、読出しシーケンス処理の終了を待たずに、次のグループに対する論物変換処理が開始される(ステップ5)。この後、最後のグループに対する読出しシーケンス処理が実行されるまで、ステップ5からステップ8までの処理を繰り返す。
次に、複数の論理ブロックに跨る書込み処理について説明する。
図8は、書込み処理における論理ブロックと物理ブロックの対応関係を示す説明図であり、LBA0からLBA95までの3個の論理ブロックを処理対象として書込み処理を実行した場合の論理ブロックと物理ブロックの対応関係を示している。
書込み処理では、各論理ブロックに対して、消去済みの物理ブロックが1個ずつ割当てられる。図8に示した例では、論理ブロック連番LB0の論理ブロックに対して、物理ブロック連番#1の物理ブロックが割当てられ、論理ブロック連番LB1の論理ブロックに対して、物理ブロック連番#4の物理ブロックが割当てられ、論理ブロック連番LB2の論理ブロックに対して、物理ブロック連番#6の物理ブロックが割当てられている。
各物理ブロック内のページには、セクタ順(論理アドレスの順番)にデータが書込まれる。つまり、物理ブロック連番#1の物理ブロックのページ0には、LBA0に対応するユーザーデータが書込まれ、ページ1には、LBA1に対応するユーザーデータが書込まれ、以下同様にして、ページ31には、LBA31に対応するユーザーデータが書込まれる。
尚、論理ブロック連番LB0〜LB2の論理ブロックに対応する古いデータがある場合には、変換テーブルを用いて古いデータが書込まれている物理ブロックを検索して、その物理ブロックに対して消去処理を実行する。又、消去済みの物理ブロックを検索する場合は、例えば、ゾーンを構成する各物理ブロックを各ビットに割当てた検索テーブルを作成して検索することができる。この検索テーブルでは、各ビットの論理値が"0"であるか、又は"1"であるかで、ユーザーデータが書込まれているか否かを示している。従って、各ビットの論理値を走査していくことにより、消去済みの物理ブロックを検索することができる。
次に、ホストシステム4から複数の論理ブロックに跨る読出し処理の要求を受けた場合の処理について、図9を参照して説明する。
図9は、書込み処理の要求を受けた場合の処理を示すフローチャートである。
尚、説明を簡略化するため、物理ブロック内の全てのページに、ホストシステム4側から供給されるユーザーデータが書込まれる場合について説明する。従って、古いデータが書込まれていた物理ブロックからの転送処理は行われない。
まず、ホストシステム4から書込みコマンドと共に供給される、論理アドレスとセクタ数で指定される複数セクタの領域を、論理ブロック毎のグループに区分する(ステップ11)。尚、上記のように物理ブロック内の全てのページに、ホストシステム4側から供給されるユーザーデータが書込まれる場合、つまり、全てのグループが32セクタで構成されるについて説明するので、グループと論理ブロック(グループを構成するセクタと論理ブロックを構成するセクタ)は一致する。
続いて、最初のグループの論理ブロックの論物変換処理を実行し、最初のグループの論理ブロックに対応するユーザーデータ(旧データ)が書込まれている物理ブロックの物理アドレスを求める。更に、最初のグループの論理ブロックに割当てられる消去済みの物理ブロックを検索テーブルを用いて検索し、最初のグループの論理ブロックに対応するユーザーデータ(新データ)が新たに書込まれる物理ブロックの物理アドレスを求める(ステップ12)。フラッシュメモリシーケンサブロック12が処理を実行しているか否かをチェックし(ステップ13)、処理が終了した後に(ステップ13:NO)、ステップ14を実行する。
ステップ14では、フラッシュメモリシーケンサブロック12内のレジスタに、フラッシュメモリ2に与えられる書込みコマンドと、ステップ12で求めた消去済みの物理ブロックの物理アドレス(先頭ページの物理アドレス)と、グループの論理ブロックに含まれるセクタのセクタ数“32”を設定した後、フラッシュメモリ2に対する書込みシーケンス処理を開始する。
この書込みシーケンス処理では、グループの論理ブロック内の各セクタに対応するユーザーデータが、書込み先の物理ブロック内の各ページに順次書込まれていく。
この際、物理ブロック内の各ページにユーザーデータが書込まれる毎に、フラッシュメモリシーケンサブロック12内のレジスタに設定した物理アドレスが1ずつ加算されると共に、フラッシュメモリシーケンサブロック12内のレジスタに設定したセクタ数が1ずつ減算される。又、フラッシュメモリシーケンサブロック12内のレジスタに設定した物理アドレスが加算される毎に、加算された物理アドレスに対する書込み処理を実行し、セクタ数が“0”になると書込みシーケンス処理を終了する。尚、各物理ブロック内のページには、LBAの順番(論理アドレスの順番)で、ユーザーデータが書込まれる。
ステップ14で、フラッシュメモリシーケンサブロック12内のレジスタに、書込みコマンド、物理アドレス及びセクタ数を設定して、フラッシュメモリ2に対する書込みシーケンス処理を開始した後、書込みシーケンス処理の終了を待たずに、次のグループに対する論物変換処理と消去済み物理ブロックの検索処理を開始する。この論物変換処理では、次のグループの論理ブロックに対応するユーザーデータ(旧データ)が書込まれている物理ブロックの物理アドレスを求め、消去済み物理ブロックの検索処理では、次のグループ(論理ブロック)に対応するユーザーデータ(新データ)を新たに書込む物理ブロックの物理アドレスを求める(ステップ15)。
ステップ14の書込みシーケンス処理が終了しているか否かをチェックし(ステップ16)、処理が終了した後に(ステップ16:NO)、ステップ17を実行する。
ステップ17では、フラッシュメモリシーケンサブロック12内のレジスタに、フラッシュメモリ2に与えられる書込みコマンドと、ステップ15で求めた消去済みの物理ブロックの物理アドレス(先頭ページの物理アドレス)と、グループの論理ブロックに含まれるセクタのセクタ数“32”を設定した後、ステップ14と同様にフラッシュメモリ2に対する書込みシーケンス処理を開始する。
この書込みシーケンス処理では、前回の書込みシーケンス処理で処理対象となったグループの論理ブロックの次のグループの論理ブロックが処理対象となる。
ステップ17で、開始した書込みシーケンス処理の処理対象が最後のグループであれば(ステップ18:YES)、ホストシステム4から与えられた読出しコマンドに基づいた処理を終了する。ステップ17で、開始した読出しシーケンス処理の処理対象が最後のグループでない場合は(ステップ18:NO)、読出しシーケンス処理の終了を待たずに、次のグループに対する論物変換処理と消去済み物理ブロックの検索処理が開始される(ステップ15)。この後、最後のグループに対する書込みシーケンス処理が実行されるまで、ステップ15からステップ18までの処理を繰り返す。
尚、上記ステップ12とステップ15で、論物変換処理により旧データが書込まれている物理ブロックの物理アドレスを求めたのは、その物理ブロックに対して消去処理を実行するためである。この消去処理は、書換えを行う毎に実行してもよいが、旧データが書込まれている物理ブロックの冗長領域に、その物理ブロックに書込まれているユーザーデータが無効であることを示す情報を設定しておき、消去処理を後で行うようにしてもよい。
本発明の実施形態に係るフラッシュメモリシステムのブロック図である。 ブロックとページの関係を示す説明図である。 ゾーンを説明するための説明図である。 論理ブロック連番と物理ブロック連番との対応関係を示す変換テーブルの説明図である。 論理ブロックと物理ブロックの対応関係を示す説明図である。 グループ分割の例を示す説明図である。 読出し処理の要求を受けた場合の処理を示すフローチャートである。 書込み処理における論理ブロックと物理ブロックの対応関係を示す説明図である。 書込み要求に対応する処理のフローチャートである。
符号の説明
1 フラッシュメモリシステム
2 フラッシュメモリ
3 メモリコントローラ
4 ホストシステム
5 ホストインターフェース制御ブロック
6 マイクロプロセッサ
7 ホストインターフェースブロック
8 ワークエリア
9 バッファ
10 フラッシュメモリインターフェースブロック
11 ECCブロック
12 フラッシュメモリシーケンサブロック
13 外部バス
14 内部バス

Claims (21)

  1. ホストシステムから読出しコマンドと共に供給される論理アドレスと読出すデータ量を示す情報のセクタ数とに基づいて、フラッシュメモリに対するアクセスを制御するメモリコントローラであって、
    前記論理アドレス及びセクタ数に応じて、前記ホストシステムに対して送出する複数セクタ分のデータを、前記ホストシステムの記憶空間上の論理ブロック毎のグループに区分する第1の手段と、
    前記論理ブロックと前記フラッシュメモリの記憶空間上の物理ブロックとの対応関係を管理する第2の手段と、
    前記論理ブロックと前記物理ブロックとの対応関係に基づいて、前記グループ内の先頭セクタに対応する前記フラッシュメモリの記憶空間上のページの物理アドレス情報を求める第3の手段と、
    前記物理アドレス情報と前記グループに属するセクタ数に応じて決まるページ数情報とを保持する第4の手段と、
    前記物理アドレス情報と前記ページ数情報とに基づいて、同一物理ブロック内の連続するページに対して順次読出し処理を実行する第5の手段とを備え、
    前記第5の手段が処理を実行しているときに、前記第3の手段が処理を実行することができるように構成されていることを特徴とするメモリコントローラ。
  2. 各ページに対する読出し処理が終了する毎に、前記第4の手段に保持されている前記物理アドレス情報と前記ページ数情報とを、更新することを特徴とする請求項1に記載のメモリコントローラ。
  3. 各ページに対する読出し処理が終了する毎に、前記第4の手段に保持されている前記物理アドレス情報を、次にアクセスするページに対応する情報に更新することを特徴とする請求項2に記載のメモリコントローラ。
  4. 各ページに対する読出し処理が終了する毎に、前記第4の手段に保持されている前記ページ数情報を、同一グループ内の未アクセスのページ数に対応する情報に更新することを特徴とする請求項2又3に記載のメモリコントローラ。
  5. ホストシステムから書込みコマンドと共に供給される論理アドレスと書込むデータ量を示す情報のセクタ数とに基づいて、フラッシュメモリに対するアクセスを制御するメモリコントローラであって、
    前記論理アドレス及びセクタ数に応じて、前記ホストシステムから供給される複数セクタ分のデータを、前記ホストシステムの記憶空間上の論理ブロック毎のグループに区分する第6の手段と、
    前記フラッシュメモリの記憶空間上の物理ブロックから消去状態の物理ブロックを検索し、該消去状態の物理ブロックの物理アドレス情報を求める第7の手段と、
    前記物理アドレス情報と前記グループに属するセクタ数に応じて決まる前記フラッシュメモリの記憶空間上のページ数情報とを保持する第8の手段と、
    前記物理アドレス情報と前記ページ数情報とに基づいて、消去状態の同一の物理ブロック内の連続するページに対して順次書込み処理を実行する第9の手段とを備え、
    前記第9の手段が処理を実行しているときに、前記第7の手段が処理を実行することができるように構成されていることを特徴とするメモリコントローラ。
  6. 各ページに対する書込み処理が終了する毎に、前記第8の手段に保持されている前記物理アドレス情報と前記ページ数情報とを、更新することを特徴とする請求項5に記載のメモリコントローラ。
  7. 各ページに対する書込み処理が終了する毎に、前記第8の手段に保持されている前記物理アドレス情報を、次にアクセスするページに対応する情報に更新することを特徴とする請求項6に記載のメモリコントローラ。
  8. 各ページに対する書込み処理が終了する毎に、前記第8の手段に保持されている前記ページ数情報を、同一グループ内の未アクセスのページ数に対応する情報に更新することを特徴とする請求項6又は7に記載のメモリコントローラ。
  9. ホストシステムから読出しコマンド若しくは書込みコマンドと共に供給される論理アドレスとアクセスするデータ量を示すセクタ数とに基づいて、フラッシュメモリに対するアクセスを制御するメモリコントローラであって、
    前記論理アドレス及びセクタ数に応じて、前記ホストシステムに対して送出する複数セクタ分のデータ若しくは該ホストシステムから供給される複数セクタ分のデータを、該ホストシステムの記憶空間上の論理ブロック毎のグループに区分する第10の手段と、
    前記論理ブロックと前記フラッシュメモリの記憶空間上の物理ブロックとの対応関係を管理する第11の手段と、
    前記論理ブロックと前記物理ブロックとの対応関係に基づいて、前記グループ内の先頭セクタに対応する前記フラッシュメモリ記憶空間上のページの物理アドレス情報を求める第12の手段と、
    消去状態の物理ブロックを検索し、該消去状態の物理ブロックの物理アドレス情報を求める第13の手段と、
    前記第12の手段若しくは前記第13の手段によって求めた物理アドレス情報と前記グループに属するセクタ数に応じて決まるページ数情報とを保持する第14の手段と、
    前記物理アドレス情報と前記ページ数情報とに基づいて、同一物理ブロック内の連続するページに対して順次読出し処理若しくは書込み処理を実行する第15の手段とを備え、
    前記第15の手段が処理を実行しているときに、前記第12の手段若しくは前記第13の手段が処理を実行することができるように構成されていることを特徴とするメモリコントローラ。
  10. 各ページに対する読出し処理若しくは書込み処理が終了する毎に、前記第14の手段に保持されている前記物理アドレス情報と前記ページ数情報とを、更新することを特徴とする請求項9に記載のメモリコントローラ。
  11. 各ページに対する読出し処理若しくは書込み処理が終了する毎に、前記第14の手段に保持されている前記物理アドレス情報を、次にアクセスするページに対応する情報に更新することを特徴とする請求項10に記載のメモリコントローラ。
  12. 各ページに対する読出し処理若しくは書込み処理が終了する毎に、前記第14の手段に保持されている前記ページ数情報を、同一グループ内の未アクセスのページ数に対応する情報に更新することを特徴とする請求項10又は11に記載のメモリコントローラ。
  13. 請求項1乃至12のいずれか1項に記載のメモリコントローラとフラッシュメモリを備えることを特徴とするフラッシュメモリシステム。
  14. ホストシステムから読出しコマンドと共に供給される論理アドレスと読出すデータ量を示す情報のセクタ数とに基づいて、フラッシュメモリに対するアクセスを制御するフラッシュメモリの制御方法であって、
    前記論理アドレス及びセクタ数に応じて、前記ホストシステムに対して送出する複数セクタ分のデータを、前記ホストシステムの記憶空間上の論理ブロック毎のグループに区分する第1の処理と、
    前記論理ブロックと前記フラッシュメモリの記憶空間上の物理ブロックとの対応関係を示すテーブルを作成する第2の処理と、
    前記テーブルを用いて、前記グループ内の先頭セクタに対応する前記フラッシュメモリの記憶空間上のページの物理アドレス情報を求める第3の処理と、
    前記物理アドレス情報と、前記グループに属するセクタ数に応じて決まるページ数情報を設定する第4の処理と、
    前記物理アドレス情報と前記ページ数情報とに基づいて、同一物理ブロック内の連続するページに対して順次読出しを行う第5の処理とを含み、
    前記第5の処理が実行中であっても、前記第3の処理が開始されるように処理の工程が設定されていることを特徴とするフラッシュメモリの制御方法。
  15. 各ページに対する読出し処理が終了する毎に、前記第4の処理で設定された前記物理アドレス情報と前記ページ数情報とを、更新することを特徴とする請求項14に記載のフラッシュメモリの制御方法。
  16. 各ページに対する読出し処理が終了する毎に、前記第4の処理で設定された前記物理アドレス情報を、次にアクセスするページに対応する情報に更新することを特徴とする請求項15に記載のフラッシュメモリの制御方法。
  17. 各ページに対する読出し処理が終了する毎に、前記第3の処理で設定された前記ページ数情報を、同一グループ内の未アクセスのページ数に対応する情報に更新することを特徴とする請求項15又16に記載のフラッシュメモリの制御方法。
  18. ホストシステムから書込みコマンドと共に供給される論理アドレスと書込むデータ量を示す情報のセクタ数とに基づいて、フラッシュメモリに対するアクセスを制御するフラッシュメモリの制御方法であって、
    前記論理アドレス及びセクタ数に応じて、前記ホストシステムから供給される複数セクタ分のデータを、前記ホストシステムの記憶空間上の論理ブロック毎のグループに区分する第6の処理と、
    前記フラッシュメモリの記憶空間上の物理ブロックから消去状態の物理ブロックを検索し、該消去状態の物理ブロックの物理アドレス情報を求める第7の処理と、
    前記物理アドレス情報と前記グループに属するセクタ数に応じて決まる前記フラッシュメモリの記憶空間上のページ数情報とを設定する第8の処理と、
    前記物理アドレス情報と前記ページ数情報とに基づいて、同一物理ブロック内の連続するページに対して順次書込みを行う第9の処理とを含み、
    前記第9の処理が実行中であっても、前記第7の処理が開始されるように処理の工程が設定されていることを特徴とするフラッシュメモリの制御方法。
  19. 各ページに対する書込み処理が終了する毎に、前記第8の処理で設定された前記物理アドレス情報と前記ページ数情報とを、更新することを特徴とする請求項18に記載のフラッシュメモリの制御方法。
  20. 各ページに対する書込み処理が終了する毎に、前記第7の処理で設定された前記物理アドレス情報を、次にアクセスするページに対応する情報に更新することを特徴とする請求項19に記載のフラッシュメモリの制御方法。
  21. 各ページに対する書込み処理が終了する毎に、前記第7の処理で設定された前記ページ数情報を、同一グループ内の未アクセスのページ数に対応する情報に更新することを特徴とする請求項19又は20に記載のフラッシュメモリの制御方法。
JP2004346576A 2004-11-30 2004-11-30 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 Active JP4661191B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004346576A JP4661191B2 (ja) 2004-11-30 2004-11-30 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004346576A JP4661191B2 (ja) 2004-11-30 2004-11-30 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

Publications (2)

Publication Number Publication Date
JP2006155335A true JP2006155335A (ja) 2006-06-15
JP4661191B2 JP4661191B2 (ja) 2011-03-30

Family

ID=36633550

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004346576A Active JP4661191B2 (ja) 2004-11-30 2004-11-30 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

Country Status (1)

Country Link
JP (1) JP4661191B2 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008077468A (ja) * 2006-09-22 2008-04-03 Tdk Corp メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US7711889B2 (en) 2006-07-31 2010-05-04 Kabushiki Kaisha Toshiba Nonvolatile memory system, and data read/write method for nonvolatile memory system
EP2428896A1 (en) 2006-07-31 2012-03-14 Kabushiki Kaisha Toshiba Nonvolatile memory system, and data read/write method for nonvolatile memory system
JP2012221338A (ja) * 2011-04-12 2012-11-12 Hitachi Ltd 半導体装置、不揮発性メモリ装置の制御方法
JP5400875B2 (ja) * 2009-05-21 2014-01-29 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム、データ書き込み方法、および、プログラム
US8832333B2 (en) 2010-12-15 2014-09-09 Kabushiki Kaisha Toshiba Memory system and data transfer method
US8984219B2 (en) 2011-09-22 2015-03-17 Samsung Electronics Co., Ltd. Data storage device and method of writing data in the same
WO2020129612A1 (ja) * 2018-12-19 2020-06-25 ソニー株式会社 情報処理装置、情報処理方法および情報処理プログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000284996A (ja) * 1999-03-31 2000-10-13 Toshiba Corp メモリ管理装置及びメモリ管理方法
JP2004070691A (ja) * 2002-08-07 2004-03-04 Tdk Corp メモリコントローラ及びこれを備えるメモリシステム並びにフラッシュメモリの制御方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000284996A (ja) * 1999-03-31 2000-10-13 Toshiba Corp メモリ管理装置及びメモリ管理方法
JP2004070691A (ja) * 2002-08-07 2004-03-04 Tdk Corp メモリコントローラ及びこれを備えるメモリシステム並びにフラッシュメモリの制御方法

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8327067B2 (en) 2006-07-31 2012-12-04 Kabushiki Kaisha Toshiba Nonvolatile memory system, and data read/write method for nonvolatile memory system
US7711889B2 (en) 2006-07-31 2010-05-04 Kabushiki Kaisha Toshiba Nonvolatile memory system, and data read/write method for nonvolatile memory system
US7840747B2 (en) 2006-07-31 2010-11-23 Kabushiki Kaisha Toshiba Nonvolatile memory system, and data read/write method for nonvolatile memory system
EP2428896A1 (en) 2006-07-31 2012-03-14 Kabushiki Kaisha Toshiba Nonvolatile memory system, and data read/write method for nonvolatile memory system
US8161230B2 (en) 2006-07-31 2012-04-17 Kabushiki Kaisha Toshiba Nonvolatile memory system, and data read/write method for nonvolatile memory system
EP2428962A2 (en) 2006-07-31 2012-03-14 Kabushiki Kaisha Toshiba Nonvolatile memory system, and data read/write method for nonvolatile memory system
JP2008077468A (ja) * 2006-09-22 2008-04-03 Tdk Corp メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4661748B2 (ja) * 2006-09-22 2011-03-30 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP5400875B2 (ja) * 2009-05-21 2014-01-29 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム、データ書き込み方法、および、プログラム
US8688896B2 (en) 2009-05-21 2014-04-01 Panasonic Corporation High speed writing mode in memory controller, nonvolatile storage device, accessing device, nonvolatile storage system, and method and program for writing data
US8832333B2 (en) 2010-12-15 2014-09-09 Kabushiki Kaisha Toshiba Memory system and data transfer method
JP2012221338A (ja) * 2011-04-12 2012-11-12 Hitachi Ltd 半導体装置、不揮発性メモリ装置の制御方法
US8984219B2 (en) 2011-09-22 2015-03-17 Samsung Electronics Co., Ltd. Data storage device and method of writing data in the same
WO2020129612A1 (ja) * 2018-12-19 2020-06-25 ソニー株式会社 情報処理装置、情報処理方法および情報処理プログラム
CN113196258A (zh) * 2018-12-19 2021-07-30 索尼集团公司 信息处理装置、信息处理方法和信息处理程序
JP7435470B2 (ja) 2018-12-19 2024-02-21 ソニーグループ株式会社 情報処理装置、情報処理方法および情報処理プログラム

Also Published As

Publication number Publication date
JP4661191B2 (ja) 2011-03-30

Similar Documents

Publication Publication Date Title
JP4171749B2 (ja) メモリコントローラおよびフラッシュメモリシステム
JP4373943B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4661191B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4661497B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4153535B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP2007179479A (ja) メモリコントローラおよびフラッシュメモリシステム
JP4609406B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4434171B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4241741B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4177292B2 (ja) メモリンコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4661748B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4000124B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4697146B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2005292925A (ja) メモリコントローラ、フラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4177301B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4235595B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP4194518B2 (ja) メモリコントローラ、フラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4254930B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4497124B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4213166B2 (ja) メモリコントローラおよびフラッシュメモリシステム
JP4569554B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4304167B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4332108B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4539621B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4366283B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070312

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100524

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100526

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100622

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100820

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101220

R150 Certificate of patent or registration of utility model

Ref document number: 4661191

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140114

Year of fee payment: 3