JP2006039772A - メモリカード、不揮発性半導体メモリ、及び半導体メモリの制御方法 - Google Patents
メモリカード、不揮発性半導体メモリ、及び半導体メモリの制御方法 Download PDFInfo
- Publication number
- JP2006039772A JP2006039772A JP2004216361A JP2004216361A JP2006039772A JP 2006039772 A JP2006039772 A JP 2006039772A JP 2004216361 A JP2004216361 A JP 2004216361A JP 2004216361 A JP2004216361 A JP 2004216361A JP 2006039772 A JP2006039772 A JP 2006039772A
- Authority
- JP
- Japan
- Prior art keywords
- block
- area
- specific page
- data
- card
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
Abstract
【課題】メモリに記憶される管理ブロックを短時間で検索できるようにする。
【解決手段】フラッシュメモリ3の記憶領域は、複数のエリアArea0, Area1, Area2, …に区切られる。各エリアは、当該エリア内に前述の集中管理ブロックが存在するか否かを示す情報を記憶する特定ページpage0を含むマーキングブロックを有する。例えば、特定ページpage0を構成する全てのカラムの値が0である場合には当該特定ページが属しているエリアには集中管理ブロックは存在せず、カラムの値が1となっているものが一つでもある場合には当該特定ページが属しているエリアには集中管理ブロックが存在することを表すように定義されている。上記特定ページは、該当するエリアの最上位ブロックがBadブロックでなければ当該最上位ブロックの中に設けられ、一方、BadブロックであればそのBadブロックに続くブロック(Badブロックでない正常なブロック)の中に設けられる。
【選択図】 図15
【解決手段】フラッシュメモリ3の記憶領域は、複数のエリアArea0, Area1, Area2, …に区切られる。各エリアは、当該エリア内に前述の集中管理ブロックが存在するか否かを示す情報を記憶する特定ページpage0を含むマーキングブロックを有する。例えば、特定ページpage0を構成する全てのカラムの値が0である場合には当該特定ページが属しているエリアには集中管理ブロックは存在せず、カラムの値が1となっているものが一つでもある場合には当該特定ページが属しているエリアには集中管理ブロックが存在することを表すように定義されている。上記特定ページは、該当するエリアの最上位ブロックがBadブロックでなければ当該最上位ブロックの中に設けられ、一方、BadブロックであればそのBadブロックに続くブロック(Badブロックでない正常なブロック)の中に設けられる。
【選択図】 図15
Description
本発明は、不揮発性半導体メモリを搭載したメモリカードに関し、特に所定の消去ブロックサイズを有する不揮発性半導体メモリを搭載したメモリカード、及び半導体メモリの制御方法に関する。
種々あるメモリカードの中には、NAND型フラッシュメモリなどの不揮発性メモリの所定領域に、当該メモリカードに関する各種の情報(ホストへ通知すべき情報、アドレス変換テーブルの作成に必要な情報、欠陥ブロックの情報など)を管理する管理ブロックを備えたものがある。
このようなメモリカードの電源投入時には、上記管理ブロックが検索され、当該管理ブロックから必要な情報が読み出されて使用される。
例えば、特許文献1には、メモリカードに関するカード管理情報を格納する管理ブロックを有するフラッシュメモリが開示されている。
特開平9−198884号公報(図1等)
ところで、NAND型フラッシュメモリなどの不揮発性メモリの記憶領域を構成するブロックの数が少ない場合には、上記管理ブロックを比較的短時間で検索することができる。しかし、不揮発性メモリの記憶容量が増え、ブロック数が増えてくると、管理ブロックを検索するのに時間がかかり、ホストに対する応答などが遅れてしまい、メモリカードの仕様に定められる時間的な制約を満たさなくなるおそれがある。
本発明は上記課題を解決するためになされたものであり、メモリに記憶される管理ブロックを短時間で検索することができるメモリカード、及び半導体メモリの制御方法を提供することを目的とする。
本発明に係る不揮発性半導体メモリは、複数のデータブロックと記憶媒体に関する情報を一括して管理するための情報を記憶する管理ブロックとで構成される記憶領域を具備し、前記記憶領域は複数のエリアに区切られ、各エリアは当該エリア内に前記管理ブロックが存在するか否かを示す情報を記憶する特定ページを含むデータブロックを有することを特徴とする。
また、本発明に係るメモリカードは、複数のデータブロックとメモリカードに関する情報を一括して管理するための情報を記憶する管理ブロックとで構成される記憶領域を有する不揮発性半導体メモリと、前記記憶領域の中の前記管理ブロックを検索するコントローラとを具備し、前記不揮発性半導体メモリにおける前記記憶領域は複数のエリアに区切られ、各エリアは当該エリア内に前記管理ブロックが存在するか否かを示す情報を記憶する特定ページを含むデータブロックを有し、前記コントローラは、各エリアに含まれる前記特定ページを参照することによって前記管理ブロックを検索することを特徴とする。
また、本発明に係る半導体メモリの制御方法は、複数のデータブロックと記憶媒体に関する情報を一括して管理するための情報を記憶する管理ブロックとで構成される記憶領域を有する半導体メモリの制御方法において、前記記憶領域を構成する個々のエリアに対して順に検索を行い、検索対象としているエリアの中の不良でないブロックの中の特定ページを参照し、前記参照した特定ページに示される情報に基づき、当該特定ページが属しているエリアに前記管理ブロックが存在するか否かを判定することを特徴とする。
メモリに記憶される管理ブロックを短時間で検索することができる。
以下、図面を参照して、本発明の一実施形態について説明する。
図1は、本発明の一実施形態に係るメモリカードに搭載されるデバイス類の概略構成を示す斜視図である。
本実施形態に係るメモリカード1は、図示のように、PCB(Printed Circuit Board)基板2上にNAND型フラッシュメモリ3及びコントローラ4が配置されたものとなっている。上記コントローラ4には、CPU(Central Processing Unit)8やROM(Read-Only Memory)9などの機能ブロックが搭載されている。各デバイスの詳細については後で述べる。なお、NAND型フラッシュメモリ3は、1つのメモリセルに1ビットの情報を記憶する2値メモリであっても良いし、1つのメモリセルに1ビットより多い情報(例えば2ビット)を記憶する多値メモリであっても良い。また、図1では、PCB(Printed Circuit Board)基板2上にNAND型フラッシュメモリ3及びコントローラ4が配置された場合を示したが、NAND型フラッシュメモリ3及びコントローラ4は、同一のLSI(Large-scale Integration)基板上に配置されても良い。
図1は、本発明の一実施形態に係るメモリカードに搭載されるデバイス類の概略構成を示す斜視図である。
本実施形態に係るメモリカード1は、図示のように、PCB(Printed Circuit Board)基板2上にNAND型フラッシュメモリ3及びコントローラ4が配置されたものとなっている。上記コントローラ4には、CPU(Central Processing Unit)8やROM(Read-Only Memory)9などの機能ブロックが搭載されている。各デバイスの詳細については後で述べる。なお、NAND型フラッシュメモリ3は、1つのメモリセルに1ビットの情報を記憶する2値メモリであっても良いし、1つのメモリセルに1ビットより多い情報(例えば2ビット)を記憶する多値メモリであっても良い。また、図1では、PCB(Printed Circuit Board)基板2上にNAND型フラッシュメモリ3及びコントローラ4が配置された場合を示したが、NAND型フラッシュメモリ3及びコントローラ4は、同一のLSI(Large-scale Integration)基板上に配置されても良い。
以下の説明において使用する用語「論理ブロックアドレス」,「物理ブロックアドレス」は、それぞれ、ブロック自体の論理アドレス,物理アドレスを意味するものである。また、「論理アドレス」,「物理アドレス」は、主に、ブロック自体の論理アドレス,物理アドレスを意味するものではあるが、ブロック単位よりも細かい分解能の単位に相当するアドレスである場合もあり得ることを示すものである。
図2は、ホストと上記メモリカードとを含む構成を示すブロック図である。なお、図1と共通する要素には同一の符号を付している。
ホスト機器(以下、ホストと称す)20は、接続されるメモリカードに対してアクセスを行うためのハードウェア及びソフトウェア(システム)を備えている。このホスト20は、メモリカード内部の物理状態(何処の物理ブロックアドレスに、何番目の論理セクタアドレスデータが含まれているか、或いは、何処のブロックが消去状態であるか)を管理し、メモリカード内のフラッシュメモリを直接制御するものとして構築されている。
また、ホスト20は、消去時の消去ブロックサイズが16kByteに定められているNAND型フラッシュメモリを使用することを前提として、16kByte単位で論理・物理アドレスの割当を行い、多くの場合、論理アドレス16kByte分に関してシーケンシャルにライトアクセスもしくはリードアクセスを行う(該当するコマンドを発行する)。
メモリカード1は、ホスト20に接続されたときに電源供給を受けて動作し、ホスト20からのアクセスに応じた処理を行う。このメモリカード1は、前述したようにNAND型フラッシュメモリ3及びコントローラ4を有する。
NAND型フラッシュメモリ3は、消去時の消去ブロックサイズ(消去単位のブロックサイズ)が256kByteに定められている不揮発性メモリであり、例えば16kByte単位でデータの書込・読出を行うようになっている。このNAND型フラッシュメモリ3は、例えば0.09μmプロセス技術を用いて製作される。即ち、NAND型フラッシュメモリ3のデザインルールは、0.1μm未満となっている。
コントローラ4は、前述したCPU8及びROM9のほかに、メモリインタフェース部5、ホストインタフェース部6、バッファ7、及びRAM(Random Access Memory)10を搭載している。
メモリインタフェース部5は、コントローラ4とNAND型フラッシュメモリ3との間のインタフェース処理を行うものである。ホストインタフェース部6は、コントローラ4とホスト20との間のインタフェース処理を行うものである。
バッファ7は、ホスト20から送られてくるデータをNAND型フラッシュメモリ3へ書き込む際に、一定量のデータ(例えば1ページ分)を一時的に記憶したり、NAND型フラッシュメモリ3から読み出されるデータをホスト20へ送り出す際に、一定量のデータを一時的に記憶したりするものである。
CPU8は、メモリカード1全体の動作を司るものである。このCPU8は、例えば、メモリカード1が電源供給を受けた際に、ROM9の中に格納されているファームウェア(制御プログラム)をRAM10上にロードして所定の処理を実行することにより、各種のテーブルをRAM10上で作成したり、ホスト20から書込コマンド,読出コマンド,消去コマンドを受けてNAND型フラッシュメモリ3上の該当領域に対するアクセスを実行したり、バッファ7を通じたデータ転送処理を制御したりする。
ROM9は、CPU8により使用される制御プログラムなどを格納するメモリである。RAM10は、CPU8の作業エリアとして使用され、制御プログラムや各種のテーブルを記憶する揮発性メモリである。
図3は、ホスト20が想定しているフラッシュメモリと、実際に使用するフラッシュメモリ(即ち、メモリカード1内のNAND型フラッシュメモリ3)との、データ配置の違いを示している。
ホスト20が想定しているフラッシュメモリでは、各ページは528Byte(512Byte分のデータ記憶部+16Byte分の冗長部)を有しており、32ページ分が1つの消去単位(即ち、16kByte+0.5kByte(ここで、kは1024))となる。以下では、このようなフラッシュメモリを搭載したカードを、「小ブロックカード」と称す場合がある。
ホスト20が想定しているフラッシュメモリでは、各ページは528Byte(512Byte分のデータ記憶部+16Byte分の冗長部)を有しており、32ページ分が1つの消去単位(即ち、16kByte+0.5kByte(ここで、kは1024))となる。以下では、このようなフラッシュメモリを搭載したカードを、「小ブロックカード」と称す場合がある。
一方、実際に使用するフラッシュメモリ3では、各ページは2112Byte(例えば512Byte分のデータ記憶部×4+10Byte分の冗長部×4+24Byte分の管理データ記憶部)を有しており、128ページ分が1つの消去単位(即ち、256kByte+8kByte)となる。以下では、このようなフラッシュメモリ3を搭載したカードを、「大ブロックカード」と称す場合がある。なお、以下の説明においては、便宜上、小ブロックカードの消去単位を16kByteと呼び、大ブロックカードの消去単位を256kByteと呼ぶ。
また、ホスト20が想定しているフラッシュメモリと、実際に使用するフラッシュメモリ3とは、それぞれ、フラッシュメモリへのデータ入出力を行うためのページバッファを備えている。ホスト20が想定しているフラッシュメモリに備えられるページバッファの記憶容量は、528Byte(512Byte+16Byte)である。一方、実際に使用するフラッシュメモリ3に備えられるページバッファの記憶容量は、2112Byte(2048Byte+64Byte)である。データ書込などの際には、各ページバッファは、フラッシュメモリに対するデータ入出力処理を、自身の記憶容量に相当する1ページ分の単位で実行する。
図3の例では、実際に使用するフラッシュメモリ3の消去ブロックサイズが、ホスト20が想定しているフラッシュメモリの消去ブロックサイズの16倍である場合を示したが、本発明はこれに限定されるものではなく、略整数倍であれば別の倍率となるように構成することも可能である。
大ブロックカードを実用上有効な製品とするためには、図3に示したフラッシュメモリ3の記憶容量は1Gビット以上であることが望ましい。フラッシュメモリ3の記憶容量が例えば1Gビットである場合、256kByteブロック(消去単位)の数は、512個となる。
また、図3においては消去単位が256kByteブロックである場合を例示しているが、消去単位が例えば128kByteブロックとなるように構築することも実用上有効である。この場合、128kByteブロックの数は、1024個となる。
また、図3の例では、実際に使用するフラッシュメモリ3の消去ブロックサイズが、ホスト20が想定しているフラッシュメモリの消去ブロックサイズよりも大きい場合を示したが、本発明はこれに限定されるものではなく、実際に使用するフラッシュメモリ3の消去ブロックサイズが、ホスト20が想定しているフラッシュメモリの消去ブロックサイズよりも小さいものとして構成することも可能である。
図4は、ホスト20側システム及びメモリカード1(大ブロックカード)の各コミュニケーション階層を示す図である。
ホスト20側のシステムは、アプリケーションソフト21、ファイルシステム22、ドライバソフト23、及び小ブロックカード物理アクセス層24を有する。一方、メモリカード1(大ブロックカード)は、小ブロックカード物理アクセス層11、小ブロックカード物理・小ブロックカード論理変換層12、小ブロックカード論理・大ブロックカード物理変換層13、及び大ブロックカード物理アクセス層14を有する。
例えば、ホスト20側のアプリケーションソフト21がファイルの書込をファイルシステム22に要求すると、ファイルシステム22は、小ブロックカードの論理ブロックアドレスに基づきシーケンシャルなセクタ書込をドライバソフト23に指示する。これを受けて、ドライバソフト23は、小ブロックカードの論理ブロックアドレスに基づく16kByteブロック毎のシーケンシャルな書込を実現するにあたり、論理・物理ブロック変換を行い、小ブロックカード物理アクセス層24を通じて、小ブロックカードの物理ブロックアドレスによるランダムな書込コマンドを大ブロックカードに対して発行し、データ転送を行う。
なお、ライトアクセスにおいては、小ブロックカードの場合も大ブロックカードの場合も、プロトコル上、(1)コマンド、(2)ページアドレス(ロウアドレス)、(3)カラムアドレス、(4)データ、(5)プログラム確認コマンド、といった順序で情報の送受が行われることが前提となっている。
大ブロックカード側における小ブロックカード物理アクセス層11は、ホスト20から小ブロックカードの物理ブロックアドレスによる書込コマンドを受けると、物理ブロックアドレスやデータのほか、これに付随する付随データに含まれている論理ブロックアドレスを取得する。
小ブロックカード物理・小ブロックカード論理変換層12は、データ読出などの際に小ブロックカードの物理ブロックアドレス(16kByteブロック分に対応)から小ブロックカードの論理ブロックアドレス(16kByteブロック分に対応)への変換処理を行うための第1のテーブルを有している。変換層12は、小ブロックカード物理アクセス層11が書込コマンドを受けて小ブロックカードの論理ブロックアドレスを取得したときにはこれを上記第1のテーブルに反映させる。物理ブロックアドレスに関しても、上記第1のテーブルに反映させる。
小ブロックカード論理・大ブロックカード物理変換層13は、データ読出などの際に小ブロックカードの論理ブロックアドレス(シーケンシャルな16kByteブロック×16個分に対応)から大ブロックカードの物理ブロックアドレス(256kByte物理ブロック分に対応)への変換処理を行うための第2のテーブルを有している。変換層12は、小ブロックカード物理アクセス層11が書込コマンドを受けて小ブロックカードの論理ブロックアドレスを取得したときにはこれを上記第2のテーブルに反映させる。
大ブロックカード物理アクセス層14は、小ブロックカード物理アクセス層11が書込コマンドを受けて取得した小ブロックカードの論理ブロックアドレスに基づき、フラッシュメモリ3内部のデータ配置を決定し、256kByte物理ブロック内において2kByte(1ページ)単位でシーケンシャルに16kByte分のデータを書き込む。また、大ブロックカード物理アクセス層14は、取得した小ブロックカードの論理ブロックアドレスや物理ブロックアドレスをフラッシュメモリ3内部における管理データ領域内の所定の領域に格納する。
このようにホスト20は小ブロックカードの物理ブロックアドレスに基づくコマンドを発行するので、大ブロックカード側では、小ブロックカードの物理ブロックアドレスに対応するデータがどの256kByte物理ブロックの中に存在するのかが分かるように管理する。具体的には、16kByteブロック毎に小ブロックカードの論理・物理ブロックアドレスの対応関係を管理すると共に、小ブロックカードの連続した256kByteブロック分の論理ブロックアドレスに対応するデータが大ブロックカード内のどの256kByte物理ブロックに格納されているかが分かるように管理する。
図5は、ホスト20側から送られてくるコマンドのフォーマットを示す図である。
ホスト20側から送られてくるコマンドのパケットは、図5(a)に示されるように、コマンド種別情報(ここでは「書込」),アドレス(物理ブロックアドレス),データ(コンテンツなどの実データ及び付随データ(512Byte+16Byte))といった各種情報を含んでいる。
このようなフォーマットのパケットにおいては、図5(b)に示されるように、付随データ16Byte中の所定の位置に小ブロックカードの「論理ブロックアドレス」(アクセス対象となる16kByteブロックに対応する論理アドレス)が配置されている。大ブロックカードは、コマンド種別情報,物理ブロックアドレス,データを取得するほか、特に上記「論理ブロックアドレス」を取得する。なお、この「論理ブロックアドレス」は、読出コマンドの場合には付加されない。
ホスト20側から送られてくるコマンドのパケットは、図5(a)に示されるように、コマンド種別情報(ここでは「書込」),アドレス(物理ブロックアドレス),データ(コンテンツなどの実データ及び付随データ(512Byte+16Byte))といった各種情報を含んでいる。
このようなフォーマットのパケットにおいては、図5(b)に示されるように、付随データ16Byte中の所定の位置に小ブロックカードの「論理ブロックアドレス」(アクセス対象となる16kByteブロックに対応する論理アドレス)が配置されている。大ブロックカードは、コマンド種別情報,物理ブロックアドレス,データを取得するほか、特に上記「論理ブロックアドレス」を取得する。なお、この「論理ブロックアドレス」は、読出コマンドの場合には付加されない。
図6は、ホスト20側が想定しているブロック書込操作と、メモリカード1(大ブロックカード)側が実際に行う書込処理とを、対比して示す図である。
ホスト20側(同図の左側)では、小ブロックカードの論理アドレスに基づく16kByteブロック単位のシーケンシャルな書込操作の発生時に、小ブロックカードの物理ブロックアドレスによる16kByteブロック単位のランダムな書込操作を行う。
ホスト20側(同図の左側)では、小ブロックカードの論理アドレスに基づく16kByteブロック単位のシーケンシャルな書込操作の発生時に、小ブロックカードの物理ブロックアドレスによる16kByteブロック単位のランダムな書込操作を行う。
一方、大ブロックカード側(同図の右側)では、ホスト20側から書込コマンドを受けた場合、小ブロックカードの論理ブロックアドレスに基づく16kByteブロック単位のデータをフラッシュメモリ3内にシーケンシャルに書き込む。
前述のように、ホスト20は、小ブロックの物理アドレスによる16Byte単位のランダムな書込操作を行う。このようなランダムな書込操作では、一般に、大ブロック(256kByte)の一部のみを書き換えるための処理が多発する。NAND型フラッシュメモリではブロック単位でしか消去を行えないため、ブロックの一部のみを書き換える場合は、書き換える新データを消去済みの新ブロックに書き込み、新データに書き換えられる旧データを含む旧ブロックから、書き換えられない残りのデータを新ブロックにコピーする必要がある。このように、ブロックの一部のみを書き換える処理は、書き換えられないデータのコピー動作(以下、「巻き添えデータコピー」と称す)を伴うため、ブロックの一部のみを書き換える処理が多発すると、オーバーヘッドが非常に増大することになる。そこで、本実施形態では、ホスト20側から得られる論理アドレスの順序に従って、大ブロックカード側で物理アドレスを再度割り当てることにより、ブロックの一部のみの書込の発生を低減し、オーバーヘッドの増大を抑制している。
図7は、大ブロックカード内のNAND型フラッシュメモリ3のブロックフォーマット(消去単位である256kByte物理ブロック分)の一例を示す図である。
大ブロックカードでは、消去単位である256kByte物理ブロックの中に、ホスト20側が管理する単位である16kByteに相当するデータを書き込むためのブロック(以下、ホスト管理ブロックと称す)が16個分含まれている。データ書込の際には、小ブロックカードの論理ブロックアドレスの順に個々のデータが配置される。
大ブロックカードでは、消去単位である256kByte物理ブロックの中に、ホスト20側が管理する単位である16kByteに相当するデータを書き込むためのブロック(以下、ホスト管理ブロックと称す)が16個分含まれている。データ書込の際には、小ブロックカードの論理ブロックアドレスの順に個々のデータが配置される。
各ホスト管理ブロックは、8個のページで構成される。各ページは、512Byteデータ領域を4個分含むとともに、各データ領域に対応する10ByteECC領域を含んでいる。また、ページ中の最後の512Byteデータ領域(4番目の512Byteデータ領域)の後には、24Byte管理データ領域も設けられる。このため、ページ中の最後の10ByteECC領域は、4番目の512Byteデータ領域と24Byte管理データ領域の両方に対応する構成となっている。
消去単位である256kByte物理ブロックに含まれる128個の24Byte管理データ領域のうち、例えば最後の24Byte管理データ領域には、ホスト20側から送られてくるコマンドから取得された物理ブロックアドレスに相当するアドレス情報、及び論理ブロックアドレスに相当するアドレス情報がまとめて格納されるようになっている。これらのアドレス情報は、図4で説明した小ブロックカード物理・小ブロックカード論理変換層12が有する第1のテーブルと、小ブロックカード論理・大ブロックカード物理変換層13が有する第2のテーブルとを作成する際に使用される。
図8は、図7とは異なるブロックフォーマットの例を示す図である。
図8のブロックフォーマットは、図7のブロックフォーマットに比べると、各ページにおけるECC0,ECC1,ECC2の領域の配置位置が異なる。ただし、各ページにおけるユーザデータの記憶容量は、図7のブロックフォーマットと図8のブロックフォーマットとでは同じである。即ち、図7のブロックフォーマットでは、各ページに2048Byte(512Byte+512Byte+512Byte+512Byte)の記憶領域が設けられており、図8のブロックフォーマットでは、各ページに2048Byte(518Byte+518Byte+518Byte+494Byte)の記憶領域が設けられている。以下では、図8のブロックフォーマットを採用した場合を前提にして説明を行う。
図8のブロックフォーマットは、図7のブロックフォーマットに比べると、各ページにおけるECC0,ECC1,ECC2の領域の配置位置が異なる。ただし、各ページにおけるユーザデータの記憶容量は、図7のブロックフォーマットと図8のブロックフォーマットとでは同じである。即ち、図7のブロックフォーマットでは、各ページに2048Byte(512Byte+512Byte+512Byte+512Byte)の記憶領域が設けられており、図8のブロックフォーマットでは、各ページに2048Byte(518Byte+518Byte+518Byte+494Byte)の記憶領域が設けられている。以下では、図8のブロックフォーマットを採用した場合を前提にして説明を行う。
図9は、本実施形態のメモリカード1に対してホスト20が書込を行う際の、当該メモリカード1のI/OピンとR/Bピンとの信号の例を示すタイミングチャートである。
ホスト20は、メモリカードは16kByteの消去ブロックサイズを有する不揮発性メモリであると仮定してメモリカードを制御している。例えば、メモリカードに対する書込の際には、ホスト20は、シリアルデータインプットコマンド80H(Hは16進を示す)をI/Oピン1〜8へ入力する。次に、ホスト20は、カラムアドレスC/AおよびページアドレスP/Aを、I/Oピン1〜8へ入力する。なお、ここでカラムアドレスC/AおよびページアドレスP/Aは、ホスト20がメモリカード1に対して想定している仮想物理アドレス空間におけるカラムアドレスおよびページアドレスである。
更に、ホスト20は、書込データを、I/Oピン1〜8の個々に対し、528回入力する。具体的には、ホスト20はライトイネーブルピンへの入力信号を528回クロッキングしながら、それぞれのI/Oピンに対し528ビット(すべてのI/Oピン合計で528バイト)のデータを順次シフトインする。データのシフトインが完了すると、ホスト20は、プログラムコマンド10HをI/Oピン1〜8へ入力する。これに応答してメモリカードは、そのR/Bピンにロウレベルの信号を出力し、メモリカードがビジー状態であることを示す。その後、所定期間後にR/Bピンにハイレベルの信号を出力することでメモリカードがレディ状態になったことを示す。
しかしながら、図9におけるR/Bピンの状態は、あくまでもホスト20に対してメモリカード1がどのような状態かを示すものである。つまり、図9において、プログラムコマンド10Hの入力に応答して、R/Bピンがビジー状態(つまりロウレベルを出力)を示したとしても、内部でNAND型フラッシュメモリ3に対する書込動作(つまり、ページバッファからメモリセルアレイへのデータ転送)が実際に行われているとは限らない。また、R/Bピンがレディ状態に復帰したとしても、内部でNAND型フラッシュメモリ3に対する書込動作が実際に完了しているとは限らない。
図10は、本実施形態のメモリカード1内のNAND型フラッシュメモリ3に対して、当該メモリカード1内のコントローラ4が書込を行う際の、NAND型フラッシュメモリ3のI/OピンとR/Bピンとの信号の例を示すタイミングチャートである。
コントローラ4は、NAND型フラッシュメモリ3は256kByteの消去ブロックサイズを有する不揮発性メモリであると認識している。例えば、NAND型フラッシュメモリ3に対する書込の際には、コントローラ4は、シリアルデータインプットコマンド80H(Hは16進を示す)をI/Oピン1〜8へ入力する。次に、コントローラ4は、カラムアドレスC/AおよびページアドレスP/Aを、I/Oピン1〜8へ入力する。なお、ここでカラムアドレスC/AおよびページアドレスP/Aは、コントローラ4がNAND型フラッシュメモリ3に対して想定している実物理アドレス空間におけるカラムアドレスおよびページアドレスである。したがって、図9におけるカラムアドレスC/AおよびページアドレスP/Aとは必ずしも一致していない。
更に、コントローラ4は、書込データを、I/Oピン1〜8の個々に対し、2112回入力する。具体的には、コントローラ4は、ライトイネーブルピンへの入力信号を2112回クロッキングしながら、それぞれのI/Oピンに対し2112ビット(すべてのI/Oピン合計で2112バイト)のデータを順次シフトインする。データのシフトインが完了すると、コントローラ4は、プログラムコマンド10HをI/Oピン1〜8へ入力する。これに応答してメモリカードは、そのR/Bピンにロウレベルの信号を出力し、メモリカードがビジー状態であることを示す。その後、所定期間後にR/Bピンにハイレベルの信号を出力することでメモリカードがレディ状態になったことを示す。図10におけるR/Bピンの状態は、コントローラ4に対してNAND型フラッシュメモリ3が実際にどのような状態かを示すものである。
なお、上記図9および図10においては、カラムアドレスC/AおよびページアドレスP/Aの入力をそれぞれ1つのサイクルで示しているが、メモリカード1の容量またはNAND型フラッシュメモリ3の容量に応じて、適宜2サイクル以上になる場合もある。
上記図9および図10からわかるように、メモリカードがビジー状態でいられる時間には制約があるため、その間にデータ書込を行い、所定期間後には当該メモリカードがレディ状態になったことをホスト側に示さなければならない。
以下の説明では、ホスト20が想定しているフラッシュメモリにおける物理ブロックアドレス,論理ブロックアドレスをそれぞれ「xPBA」,「xLBA」と略称し、フラッシュメモリ3における物理ブロックアドレスを「PBA」と略称するものとする。
本実施形態では、ホスト20が想定しているフラッシュメモリのデータ記憶領域を複数のゾーンに分け、各ゾーンに番号を付与して管理する。具体的には、物理ブロックアドレスxPBA1〜1023に対応する1024個のブロック群をZone0、物理ブロックアドレスxPBA1024〜2047に対応する1024個のブロック群をZone1、物理ブロックアドレスxPBA2048〜3071に対応する1024個のブロック群をZone2、…のように定義し、各ゾーンに1000個のxLBAを対応付ける。なお、物理ブロックアドレスxPBA0には、当該メモリカード1に関するCIS(Card Information Structure)(後述)を記憶するブロックを対応させる。
図11は、フラッシュメモリ3上のデータブロック及び集中管理ブロックの概略構成をそれぞれ対比して示す図である。
データブロック(1物理ブロック分)は、前述の図8においても示したように128個のデータページで構成される。このようなデータブロックは、フラッシュメモリ3上に複数個存在し、ユーザデータ(ユーザが読み書きすることが可能な文書、静止画、動画などのデータ)を記憶するために使用される。なお、個々のデータブロックにおける例えば最終データページ中の所定領域には、当該データブロックのPBAに対応するxPBA及びxLBAの情報が記憶されており、アドレス変換テーブルを作成する際に利用される。
データブロック(1物理ブロック分)は、前述の図8においても示したように128個のデータページで構成される。このようなデータブロックは、フラッシュメモリ3上に複数個存在し、ユーザデータ(ユーザが読み書きすることが可能な文書、静止画、動画などのデータ)を記憶するために使用される。なお、個々のデータブロックにおける例えば最終データページ中の所定領域には、当該データブロックのPBAに対応するxPBA及びxLBAの情報が記憶されており、アドレス変換テーブルを作成する際に利用される。
一方、集中管理ブロック(1物理ブロック分)は、1つのCIS(Card Information Structure)ページ及び複数の管理ページ0,1,2,3,…で構成される。この集中管理ブロックは、当該フラッシュメモリ3上に1個のみ存在し、フラッシュメモリ3に関する種々な管理情報(基本的にはユーザが自由に読み書きすることができず、フラッシュメモリ3の起動時などにホストやコントローラが使用する情報)を一括して記憶する特別なブロックであり、全物理領域の中でもロバスト性(robustness)が最も高い領域に設けられる。即ち、集中管理ブロックは、全物理領域の中でも最もECCエラー数の少ない領域に設けられる。
集中管理ブロック中のCISページは、例えばフラッシュメモリ3が所定のメモリカードの物理フォーマット仕様に沿ってフォーマッティングされているか否かを見分けるために使用されるページである。管理ページ0,1,2,3,…は、個々のデータブロックがそれぞれ属しているゾーンの番号(Zone No.)や個々のデータブロックのエラーに関するステータス(status)を記憶するページである。この管理ページは、テーブル作成対象ゾーンとして予め指定されているゾーンに該当するデータブロック群のPBAを知得するために使用され、アドレス変換テーブルを作成する際に利用される。
図12は、図11中に示される集中管理ブロックのフォーマットの一例を示す図である。図13は、図12中に示される主要な情報に関する説明を表にしてまとめたものである。また、図14は、図12中に示される管理ページ0における各カラムのフォーマットの一例を示す図である。以下、図12〜図14を参照して、CISページ及び管理ページ0,1,2,3,…の詳細を説明する。
図12中のCISページには、「CIS」、「CIS-PBA」、「識別番号」、「ID」、「空きBLK」、「ECC」、「Mode」、「Max PBA」、「Max PPA」、「1034B」、「4B」等で表された種々な領域がある。領域「CIS」は、ホスト20に読ませるべきカード情報構造データ(CISデータ)を記憶する領域である。領域「CIS-PBA」は、ホスト20側から見た、CISデータの格納位置を示す物理アドレス(xPBA)を記憶する領域である(ホスト20がCISデータの書き換えを行った場合に対応できるようにするため、当該物理アドレスが記憶される)。領域「識別番号」は、メモリカード1の識別番号を記憶する領域である。領域「ID」は、当該ページに書かれているデータの種類及びBadブロック属性を記憶する領域である。領域「空きBLK」は、データが消去済みである空きブロックのPBAを記憶する領域である。領域「ECC」は、カラムアドレス0-517の情報に対応するECC、カラムアドレス528-1045の情報に対応するECC、及びカラムアドレス1056-2101の情報に対応するECCを記憶する領域である。領域「Mode」、「Max PBA」、「Max PPA」、「1034B」、「4B」は、デバック時に使用される各種の情報を記憶する領域である(ここでは詳細な説明を省略する)。
一方、図12中の管理ページ0,1,2,3,…には、「Assign & Status」、「ID」、「ECC」、「19B」、「4B」等で表された複数の領域がある。領域「Assign & Status」は、データブロック毎に、当該データブロックにアサインされているゾーンの番号(Zone No.)及び当該データブロックにECCエラーが何個存在するかを示すステータス(Status)を記憶する領域である。領域「ID」は、当該ページに書かれているデータの種類及びBadブロック属性を記憶する領域である。領域「ECC」は、カラムアドレス0-517の情報に対応するECC、カラムアドレス528-1045の情報に対応するECC、カラムアドレス1056-1573の情報に対応するECC、及びカラムアドレス1584-2101の情報に対応するECCを記憶する領域である。領域「19B」及び「4B」は、空き領域(未使用領域)である。
例えば全管理ページ0,1,2,3,…のうちの管理ページ0に着目すると、図14に示されるように、管理ページ0を構成する個々のカラムCol.0, Col.1, Col.2, …には、個々のデータブロックを識別するPBA0, PBA1, PBA2, …に対応する領域が設けられ、各領域(1Byte分)には上述したZone No.(7bitのうちの上記6bit)及びStatus(2bit)の組合せが記憶されている。
図15は、集中管理ブロックを短時間で検索できるようにするフォーマットの一例を説明するための図である。
フラッシュメモリ3の記憶領域は、製品出荷前に、複数のエリアArea0, Area1, Area2, …に区切られる(プリフォーマットされる)。図示の例では、エリアArea0には1024個のブロック(block0〜block1023)が含まれ、エリアArea1には1024個のブロック(block1024〜block2047)が含まれ、…といったように区切られている。
フラッシュメモリ3の記憶領域は、製品出荷前に、複数のエリアArea0, Area1, Area2, …に区切られる(プリフォーマットされる)。図示の例では、エリアArea0には1024個のブロック(block0〜block1023)が含まれ、エリアArea1には1024個のブロック(block1024〜block2047)が含まれ、…といったように区切られている。
各エリアは、当該エリア内に前述の集中管理ブロックが存在するか否かを示す情報を記憶する特定ページpage0を含むデータブロック(以下、「マーキングブロック」と称す)を有する。即ち、各エリアには、1つのマーキングブロックが設けられる。図示の例では、Area0におけるマーキングブロックは、block0である。
例えば、特定ページpage0を構成する全てのカラムの値が0である場合には当該特定ページが属しているエリアには集中管理ブロックは存在せず、カラムの値が1となっているものが一つでもある場合には当該特定ページが属しているエリアには集中管理ブロックが存在することを表すように定義されている。
また、各ブロックにおけるpage127上の所定のカラム(例えば、col.2097)には、当該ブロックがBadブロック(データの記憶に使用されないブロック)であるかを示すビットが設けられる。
上記特定ページは、該当するエリアの最上位ブロックがBadブロックでなければ当該最上位ブロックの中に設けられ、一方、BadブロックであればそのBadブロックに続くブロック(Badブロックでない正常なブロック)の中に設けられる。
前述のコントローラ4(図1,図2を参照)は、集中管理ブロックの検索を行う際には、各エリアに含まれるマーキングブロックを探し、そのマーキングブロック中に含まれる特定ページを参照することによって、集中管理ブロックを短時間で検索することができるものとなっている。
具体的には、コントローラ4は、最上位エリアから最下位エリアに向けて順に検索を行い、検索対象としているエリアの最上位ブロック中のpage127を参照することにより当該ブロックがBadブロックであるか否かを判定する。Badブロックでなければ当該最上位ブロックがマーキングブロックであるものと見なし、そのマーキングブロックの中の特定ページであるpage0を参照する。一方、検索対象としているエリアの最上位ブロックがBadブロックであればそのBadブロックに続くブロックがBadブロックであるか否かを当該ブロックのpage127を参照することにより判定する。このように、検索対象としているエリアのブロックがBadブロックであるか否かを最上位ブロックから最下位ブロックに向けて順に判定し、Badブロックでない正常な最上位ブロックを探し出す。Badブロックでない最上位ブロックが探し出せた場合は、そのブロックをマーキングブロックであるものと見なし、当該マーキングブロックの中の特定ページであるpage0を参照する。参照した特定ページが集中管理データの存在を表している場合には、当該特定ページが属しているエリアの中の全ブロックに対して検索を行い、集中管理ブロックを探し出し、これを読み出す。
このようなコントローラ4による検索処理は、ROM9からRAM10上にロードされた制御プログラムを実行するCPU8やメモリインタフェース部5を通じて制御される。
ここで、図16を参照して、コントローラ4があるエリアに設けられる集中管理ブロックを検出するに至るまでの一具体例を説明する。ここでは、集中管理ブロックはblock1500に存在し、Badブロックはblock3071だけであるものとする。
コントローラ4は、Area3における最上位のブロックであるblock4095がBadブロックであるか否かを判定する。block4095はBadブロックでないため、page0における全てのカラムデータの値が0であるか否かを判定する(ステップS1)。page0における全てのカラムデータの値が0であるため、管理ブロックはArea3には無いものと見なし、次のエリアを検索対象とする。
次に、コントローラ4は、Area2における最上位のブロックであるblock3071がBadブロックであるか否かを判定する(ステップS2)。block3071はBadブロックであるため、次のblock3070がBadブロックであるか否かを判定する。block3070はBadブロックでないため、page0における全てのカラムデータの値が0であるか否かを判定する(ステップS3)。page0における全てのカラムデータの値が0であるため、管理ブロックはArea2には無いものと見なし、次のエリアを検索対象とする。
次に、コントローラ4は、Area1における最上位のブロックであるblock2047がBadブロックであるか否かを判定する。block4047はBadブロックでないため、page0における全てのカラムデータの値が0であるか否かを判定する(ステップS4)。page0における全てのカラムデータの値が0というわけではなく、値が1のカラムデータもあるため、管理ブロックはArea1の中にあるものと見なし、Area1内の最上位ブロックから順に集中管理ブロックを検索する(ステップS5)。コントローラ4は、block1500の集中管理ブロックを検出すると、これを読み出す(ステップS6)。
次に、図17を参照して、コントローラ4による集中管理ブロックの検索動作を説明する。
コントローラ4は、例えばメモリカード1の電源が投入された際には、メモリカードがビジー状態であることを示した後、以下のような検索処理を開始する。
コントローラ4は、例えばメモリカード1の電源が投入された際には、メモリカードがビジー状態であることを示した後、以下のような検索処理を開始する。
コントローラ4は、まず、最上位エリアを検索対象エリアとし(ステップS11)、その検索対象エリアの中の最上位ブロックを検索対象ブロックとする(ステップS12)。
コントローラ4は、検索対象ブロックがBadブロックであるか否かを判定する(ステップS13)。Badブロックであれば(ステップS13のYes)、そのブロックより一つ下位のブロックを検索対象ブロックとし(ステップS14)、ステップS13の処理を繰り返す。一方、Badブロックでなければ(ステップS13のNo)、検索対象ブロックの中のpage0を読み出す(ステップS15)。
コントローラ4は、読み出したpage0における各カラムデータの値が0であるか否かを判定する(ステップS16)。全てのカラムデータの値が0であれば(ステップS16のYes)、検索対象エリアには集中管理ブロックは無いものと見なし、そのエリアより一つ下位のエリアを検索対象とし(ステップS17)、ステップS12からの処理を繰り返す。一方、一つでも値が1のカラムデータがあれば(ステップS16のNo)、検索対象エリアには集中管理ブロックがあるものと見なし、当該エリアの最上位ブロックから順に集中管理ブロックを探す。
コントローラ4は、検索対象ブロックが集中管理ブロックであるか否かを判定する(ステップS18)。集中管理ブロックでなければ(ステップS18のNo)、検索対象ブロックより一つ下位のブロックを検索対象とし(ステップS19)、検索対象ブロックの中のpage0を読み出し(ステップS20)、ステップS18からの処理を繰り返す。一方、集中管理ブロックであれば(ステップS18のYes)、当該集中管理ブロックを読み出して、ホスト側へ必要な情報の転送を行う。
コントローラ4は、上記処理が完了すると、メモリカードがレディ状態であることを示し、一連の処理を終了する。
このように本実施形態によれば、フラッシュメモリ3上の記憶領域を複数のエリアに区切るとともに、各エリアには、当該エリア内に集中管理ブロックが存在するか否かを示す情報を記憶する特定ページを含むデータブロック(即ち、マーキングブロック)を設けているので、各エリアに集中管理ブロックが存在するか否かを即座に判断することができ、集中管理ブロックの検索時間を短縮することができる。
また、本実施形態によれば、メモリカードに関する管理情報を分散するのではなく、単一の集中管理ブロックにより一括して管理する形態としているので、全物理領域の中でもロバスト性が最も高い領域に管理情報をまとめて配置することができ、重要な情報が不意に破壊されてしまうことを防止することができる。
上記実施形態の説明では、ホスト20が想定している半導体メモリにおけるアドレスと実際に使用する半導体メモリのアドレスとの対応付けの管理や制御(集中管理ブロックの検索処理など)をコントローラ4が行う場合を例に挙げたが、代りに、当該制御をホスト20側のドライバソフト23等が行うものとして構築してもよい。
また、上記実施形態の説明では、実際に使用するフラッシュメモリ3の消去ブロックサイズが、ホスト20が想定しているフラッシュメモリの消去ブロックサイズよりも大きい場合を示したが、勿論、実際に使用するフラッシュメモリ3の消去ブロックサイズが、ホスト20が想定しているフラッシュメモリの消去ブロックサイズと同じであってもよい。
また、上記実施形態の説明では、不揮発性メモリとしてNAND型フラッシュメモリを例に挙げて説明したが、不揮発性メモリはNAND型フラッシュメモリに限られず、他の種類のメモリを適用してもよい。
本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
1…メモリカード(大ブロックカード)、2…PCB基板、3…NAND型フラッシュメモリ、4…コントローラ、5…メモリインタフェース部、6…ホストインタフェース部、7…バッファ、8…CPU、9…ROM、10…RAM、11…小ブロックカード物理アクセス層、12…小ブロックカード物理・小ブロックカード論理変換層、13…小ブロックカード論理・大ブロックカード物理変換層、14…大ブロックカード物理アクセス層、20…ホスト機器、21…アプリケーションソフト、22…ファイルシステム、23…ドライバソフト、24…小ブロックカード物理アクセス層。
Claims (6)
- 複数のデータブロックと記憶媒体に関する情報を一括して管理するための情報を記憶する管理ブロックとで構成される記憶領域を具備し、前記記憶領域は複数のエリアに区切られ、各エリアは当該エリア内に前記管理ブロックが存在するか否かを示す情報を記憶する特定ページを含むデータブロックを有することを特徴とする不揮発性半導体メモリ。
- 複数のデータブロックとメモリカードに関する情報を一括して管理するための情報を記憶する管理ブロックとで構成される記憶領域を有する不揮発性半導体メモリと、
前記記憶領域の中の前記管理ブロックを検索するコントローラとを具備し、
前記不揮発性半導体メモリにおける前記記憶領域は複数のエリアに区切られ、各エリアは当該エリア内に前記管理ブロックが存在するか否かを示す情報を記憶する特定ページを含むデータブロックを有し、
前記コントローラは、各エリアに含まれる前記特定ページを参照することによって前記管理ブロックを検索することを特徴とするメモリカード。 - 前記コントローラは、個々のエリアに対して順に検索を行い、検索対象としているエリアの最上位ブロックが不良ブロックでなければ当該最上位ブロックの中の特定ページを参照し、一方、不良ブロックであればその不良ブロックに続く不良でないブロックの中の特定ページを参照することを特徴とする請求項2に記載のメモリカード。
- 前記特定ページを構成する全てのカラムの値が0である場合には当該特定ページが属しているエリアには前記管理ブロックは存在せず、カラムの値が1となっているものがある場合には当該特定ページが属しているエリアには前記管理ブロックが存在することを特徴とする請求項2に記載のメモリカード。
- 複数のデータブロックと記憶媒体に関する情報を一括して管理するための情報を記憶する管理ブロックとで構成される記憶領域を有する半導体メモリの制御方法において、
前記記憶領域を構成する個々のエリアに対して順に検索を行い、
検索対象としているエリアの中の不良でないブロックの中の特定ページを参照し、
前記参照した特定ページに示される情報に基づき、当該特定ページが属しているエリアに前記管理ブロックが存在するか否かを判定することを特徴とする半導体メモリの制御方法。 - 複数のデータブロックと記憶媒体に関する情報を一括して管理するための情報を記憶する管理ブロックとで構成される記憶領域を有する半導体メモリの制御方法において、
前記記憶領域を構成する個々のエリアに対して順に検索を行い、
検索対象としているエリアの最上位ブロックが不良ブロックでなければ当該最上位ブロックの中の特定ページを参照し、一方、不良ブロックであればその不良ブロックに続く不良でないブロックの中の特定ページを参照し、
前記参照した特定ページに示される情報に基づき、当該特定ページが属しているエリアに前記管理ブロックが存在するか否かを判定することを特徴とする半導体メモリの制御方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004216361A JP4460967B2 (ja) | 2004-07-23 | 2004-07-23 | メモリカード、不揮発性半導体メモリ、及び半導体メモリの制御方法 |
PCT/JP2005/013894 WO2006009322A2 (en) | 2004-07-23 | 2005-07-22 | Memory card, nonvolatile semiconductor memory, and method of controlling semiconductor memory |
US11/497,248 US7404031B2 (en) | 2004-07-23 | 2006-08-02 | Memory card, nonvolatile semiconductor memory, and method of controlling semiconductor memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004216361A JP4460967B2 (ja) | 2004-07-23 | 2004-07-23 | メモリカード、不揮発性半導体メモリ、及び半導体メモリの制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006039772A true JP2006039772A (ja) | 2006-02-09 |
JP4460967B2 JP4460967B2 (ja) | 2010-05-12 |
Family
ID=35462197
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004216361A Expired - Fee Related JP4460967B2 (ja) | 2004-07-23 | 2004-07-23 | メモリカード、不揮発性半導体メモリ、及び半導体メモリの制御方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7404031B2 (ja) |
JP (1) | JP4460967B2 (ja) |
WO (1) | WO2006009322A2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101507912B1 (ko) | 2013-11-25 | 2015-04-07 | 에스케이텔레콤 주식회사 | 메모리장치 및 메모리장치의 동작 방법 |
JP2016501417A (ja) * | 2012-12-19 | 2016-01-18 | クアルコム,インコーポレイテッド | リードライトメモリデバイスのデータ画像中の仮想境界コード |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4460967B2 (ja) | 2004-07-23 | 2010-05-12 | 株式会社東芝 | メモリカード、不揮発性半導体メモリ、及び半導体メモリの制御方法 |
JP2007011872A (ja) | 2005-07-01 | 2007-01-18 | Toshiba Corp | メモリカードとその制御方法 |
JP2007272635A (ja) | 2006-03-31 | 2007-10-18 | Toshiba Corp | メモリシステム及びコントローラ |
KR100845137B1 (ko) | 2006-10-02 | 2008-07-09 | 삼성전자주식회사 | 메모리 장치의 배드 블록 주소를 번역하는 방법, 메모리장치의 배드 블록 주소를 번역하는 장치 및 이를 포함하는메모리 장치 컨트롤러 |
FR2997208B1 (fr) * | 2012-10-19 | 2016-01-15 | Continental Automotive France | Procede de gestion d'une memoire flash |
US9652376B2 (en) | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
US10642505B1 (en) | 2013-01-28 | 2020-05-05 | Radian Memory Systems, Inc. | Techniques for data migration based on per-data metrics and memory degradation |
US9229854B1 (en) | 2013-01-28 | 2016-01-05 | Radian Memory Systems, LLC | Multi-array operation support and related devices, systems and software |
US10445229B1 (en) | 2013-01-28 | 2019-10-15 | Radian Memory Systems, Inc. | Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies |
US11249652B1 (en) | 2013-01-28 | 2022-02-15 | Radian Memory Systems, Inc. | Maintenance of nonvolatile memory on host selected namespaces by a common memory controller |
US9542118B1 (en) | 2014-09-09 | 2017-01-10 | Radian Memory Systems, Inc. | Expositive flash memory control |
US10552085B1 (en) | 2014-09-09 | 2020-02-04 | Radian Memory Systems, Inc. | Techniques for directed data migration |
US10552058B1 (en) | 2015-07-17 | 2020-02-04 | Radian Memory Systems, Inc. | Techniques for delegating data processing to a cooperative memory controller |
CN108563401B (zh) * | 2018-03-27 | 2021-05-28 | 深圳忆联信息系统有限公司 | 一种ssd性能加速方法 |
US11175984B1 (en) | 2019-12-09 | 2021-11-16 | Radian Memory Systems, Inc. | Erasure coding techniques for flash memory |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06105440B2 (ja) * | 1990-03-08 | 1994-12-21 | 株式会社日立製作所 | 主メモリ管理方法 |
JP3472008B2 (ja) | 1996-01-16 | 2003-12-02 | 株式会社東芝 | フラッシュメモリ管理方法 |
US6247105B1 (en) * | 1996-06-20 | 2001-06-12 | Sun Microsystems, Inc. | Externally identifiable descriptor for standard memory allocation interface |
US6407949B1 (en) * | 1999-12-17 | 2002-06-18 | Qualcomm, Incorporated | Mobile communication device having integrated embedded flash and SRAM memory |
TW539950B (en) * | 2000-12-28 | 2003-07-01 | Sony Corp | Data recording device and data write method for flash memory |
TW539946B (en) * | 2001-08-07 | 2003-07-01 | Solid State System Company Ltd | Window-based flash memory storage system, and the management method and the access method thereof |
US6707749B2 (en) * | 2002-08-14 | 2004-03-16 | Intel Corporation | Enabling an interim density for top boot flash memories |
JP4460967B2 (ja) | 2004-07-23 | 2010-05-12 | 株式会社東芝 | メモリカード、不揮発性半導体メモリ、及び半導体メモリの制御方法 |
JP2007011872A (ja) | 2005-07-01 | 2007-01-18 | Toshiba Corp | メモリカードとその制御方法 |
-
2004
- 2004-07-23 JP JP2004216361A patent/JP4460967B2/ja not_active Expired - Fee Related
-
2005
- 2005-07-22 WO PCT/JP2005/013894 patent/WO2006009322A2/en active Application Filing
-
2006
- 2006-08-02 US US11/497,248 patent/US7404031B2/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016501417A (ja) * | 2012-12-19 | 2016-01-18 | クアルコム,インコーポレイテッド | リードライトメモリデバイスのデータ画像中の仮想境界コード |
KR101507912B1 (ko) | 2013-11-25 | 2015-04-07 | 에스케이텔레콤 주식회사 | 메모리장치 및 메모리장치의 동작 방법 |
Also Published As
Publication number | Publication date |
---|---|
US7404031B2 (en) | 2008-07-22 |
JP4460967B2 (ja) | 2010-05-12 |
US20060271729A1 (en) | 2006-11-30 |
WO2006009322A2 (en) | 2006-01-26 |
WO2006009322A3 (en) | 2006-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4828816B2 (ja) | メモリカード、半導体装置、及びメモリカードの制御方法 | |
JP3892851B2 (ja) | メモリカード及び半導体装置 | |
US7404031B2 (en) | Memory card, nonvolatile semiconductor memory, and method of controlling semiconductor memory | |
JP2006092019A (ja) | コントローラ、メモリカード及びその制御方法 | |
JP4253272B2 (ja) | メモリカード、半導体装置、及び半導体メモリの制御方法 | |
TWI498899B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
US8074128B2 (en) | Block management and replacement method, flash memory storage system and controller using the same | |
KR100757128B1 (ko) | 플래시 메모리를 이용한 메모리 카드 및 그 제어 방법 | |
JPWO2005083573A1 (ja) | 半導体メモリ装置 | |
JP4751037B2 (ja) | メモリカード | |
JP4256307B2 (ja) | メモリカード | |
US7657697B2 (en) | Method of controlling a semiconductor memory device applied to a memory card | |
JP2005115562A (ja) | フラッシュrom制御装置 | |
TWI669610B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
JP4498341B2 (ja) | メモリシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061109 |
|
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: 20100119 |
|
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: 20100215 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130219 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |