JP4406339B2 - コントローラ、メモリカード及びその制御方法 - Google Patents

コントローラ、メモリカード及びその制御方法 Download PDF

Info

Publication number
JP4406339B2
JP4406339B2 JP2004273895A JP2004273895A JP4406339B2 JP 4406339 B2 JP4406339 B2 JP 4406339B2 JP 2004273895 A JP2004273895 A JP 2004273895A JP 2004273895 A JP2004273895 A JP 2004273895A JP 4406339 B2 JP4406339 B2 JP 4406339B2
Authority
JP
Japan
Prior art keywords
read
command
input
host device
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.)
Expired - Fee Related
Application number
JP2004273895A
Other languages
English (en)
Other versions
JP2006092019A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2004273895A priority Critical patent/JP4406339B2/ja
Priority to US11/097,337 priority patent/US7392343B2/en
Priority to TW094131309A priority patent/TWI289257B/zh
Priority to KR1020050086036A priority patent/KR100755111B1/ko
Priority to CN200510109973A priority patent/CN100585570C/zh
Publication of JP2006092019A publication Critical patent/JP2006092019A/ja
Application granted granted Critical
Publication of JP4406339B2 publication Critical patent/JP4406339B2/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/0614Improving the reliability of storage systems
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation

Landscapes

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

Description

この発明は、コントローラ、記憶素子を有するメモリカード及びその制御方法に関するものであり、例えば、ホスト機器からのアクセスによりデータの書き込み、読み出し、及び消去を行うメモリカード、メモリカードに搭載されたコントローラ、及びメモリカードの制御方法に関するものである。
近年、パーソナルコンピュータ、PDA、カメラ、携帯電話等の様々な携帯用電子機器においては、リムーバブル記憶デバイスの1つであるメモリカードが多く用いられている。メモリカードの中には、コントローラを搭載せずNAND型フラッシュメモリだけを搭載したものがある。この従来のNAND型フラッシュメモリでは、通常、消去時の消去ブロックサイズが小さく、例えば16kByteに定められている。
ところで、現在、メモリカードに搭載されるNAND型フラッシュメモリには、大容量で安価な、消去時の消去ブロックサイズが大きいNAND型フラッシュメモリが用いられつつある。このNAND型フラッシュメモリでは、例えば256kByteに消去ブロックサイズが定められている。このため、ホスト機器が、消去ブロックサイズが小さいNAND型フラッシュメモリであると想定してメモリカードにアクセスしてきた場合、消去ブロックサイズが大きいNAND型フラッシュメモリを搭載したメモリカードは正常に応答することができず、誤動作する原因となっている。
なお、特許文献1には、複数種のメモリチップとこれらメモリチップを制御するメモリコントローラを有するメモリシステムにおいて、1つのメモリコントローラで複数種のメモリチップをアクセスできるように構成した技術が記載されている。
特開2002−259322号公報
そこでこの発明は、前記事情に鑑みてなされたものであり、メモリカードに搭載された不揮発性半導体メモリの仕様に合わないシーケンスでコマンドを発行してくるホスト機器に対して、正常に応答することが可能なコントローラ、メモリカード及びその制御方法を提供することを目的とする。
の発明の第1態様のコントローラは、ホスト機器から出力された第1の不揮発性半導体メモリに対するコマンドシーケンスを受け取るホストインタフェース部と、前記ホスト機器から出力された前記第1の不揮発性半導体メモリに対する前記コマンドシーケンスを処理し前記コマンドシーケンスに応じて、第2の不揮発性半導体メモリに対するデータの書き込み、読み出し及び消去の動作を制御する処理回路とを具備し、前記処理回路は、前記コマンドシーケンスが含むコマンドが、書き込み、読み出し、消去、IDリード、ステータスリードのいずれであるか判定する処理と、前記コマンドが書き込み、読み出し、消去のいずれかであるとき、アドレスが所定数入力されたか否かを判定する処理と、前記アドレスが所定数入力されたとき、書き込み、読み出し、消去のいずれかを実行する処理と、前記アドレスが所定数入力されないとき、前記ホスト機器からコマンドが入力されたか否かを判定する処理と、前記コマンドがIDリード、ステータスリードのいずれかであるとき、IDリード、ステータスリードのいずれかを実行する処理とを実行すること特徴とする。
また、この発明の第2態様のメモリカードは、ホスト機器に装着され、前記ホスト機器から出力された第1の不揮発性半導体メモリに対するコマンドシーケンスを受け取るメモリカードであって、データの書き込み、読み出し及び消去が行われる第2の不揮発性半導体メモリと、前記ホスト機器から出力された前記第1の不揮発性半導体メモリに対する前記コマンドシーケンスを処理し前記コマンドシーケンスに応じて、前記第2の不揮発性半導体メモリに対するデータの書き込み、読み出し及び消去の動作を制御するコントローラとを具備し、前記コントローラは、前記ホスト機器から出力された前記コマンドシーケンスを処理する制御手段を有し、前記制御手段は、前記コマンドシーケンスが含むコマンドが、書き込み、読み出し、消去、IDリード、ステータスリードのいずれであるか判定するステップと、前記コマンドが書き込み、読み出し、消去のいずれかであるとき、アドレスが所定数入力されたか否かを判定するステップと、前記アドレスが所定数入力されたとき、書き込み、読み出し、消去のいずれかを実行するステップと、前記アドレスが所定数入力されないとき、前記ホスト機器からコマンドが入力されたか否かを判定するステップと、前記コマンドがIDリード、ステータスリードのいずれかであるとき、IDリード、ステータスリードのいずれかを実行するステップとを具備すること特徴とする。
また、この発明の第3態様のメモリカードの制御方法は、ホスト機器に装着され、前記ホスト機器からアクセスされるメモリカードの制御方法において、前記ホスト機器から出力された第1の不揮発性半導体メモリに対するコマンドシーケンスが含むコマンドが、書き込み、読み出し、消去、IDリード、ステータスリードのいずれであるか判定するステップと、前記コマンドが書き込み、読み出し、消去のいずれかであるとき、アドレスが所定数入力されたか否かを判定するステップと、前記アドレスが所定数入力されたとき、前記コマンドシーケンスに応じて、第2の不揮発性半導体メモリに対するデータの書き込み、読み出し、消去のいずれかを実行するステップと、前記アドレスが所定数入力されないとき、前記ホスト機器からコマンドが入力されたか否かを判定するステップと、前記コマンドがIDリード、ステータスリードのいずれかであるとき、IDリード、ステータスリードのいずれかを実行するステップとを具備することを特徴とする。
この発明によれば、メモリカードに搭載された不揮発性半導体メモリの仕様に合わないシーケンスでコマンドを発行してくるホスト機器に対して、正常に応答することが可能なメモリカード及びその制御方法を提供することができる。
以下、図面を参照してこの発明の実施形態について説明する。説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
図1は、この発明の実施形態のメモリカードの構成を示すブロック図である。
メモリカード1は、図1に示すように、NAND型フラッシュメモリ3及びコントローラ4を含む。コントローラ4には、CPU(Central Processing Unit)8やROM(Read-Only Memory)9などの機能ブロックが搭載されている。各デバイスの詳細については後で述べる。なお、NAND型フラッシュメモリ3は、1つのメモリセルに1ビットの情報を記憶する2値メモリであっても良いし、1つのメモリセルに1ビットより多い情報(例えば2ビット)を記憶する多値メモリであっても良い。またここでは、NAND型フラッシュメモリを用いた例を説明するが、これに限るわけではなく、NOR型メモリなど、その他の不揮発性半導体メモリにも適用できる。
また、図示しないが、NAND型フラッシュメモリ3及びコントローラ4は、PCB(Printed Circuit Board)基板上に配置されていても良いし、同一のLSI(Large-scale Integration)内に形成されていても良い。
以下の説明において使用する用語「論理ブロックアドレス」,「物理ブロックアドレス」は、それぞれ、ブロック自体の論理アドレス,物理アドレスを意味するものである。また、「論理アドレス」,「物理アドレス」は、主に、ブロック自体の論理アドレス,物理アドレスを意味するものではあるが、ブロック単位よりも細かい分解能の単位に相当するアドレスである場合もあり得ることを示すものである。
ホスト機器20は、接続されるメモリカード1に対してアクセスを行うためのハードウェア及びソフトウェア(システム)を備えている。このホスト機器20は、メモリカード内部の物理状態(何処の物理ブロックアドレスに、何番目の論理セクタアドレスデータが含まれているか、或いは、何処のブロックが消去状態であるか)を管理し、メモリカード1内のNAND型フラッシュメモリ3を直接制御するものとして構築されている。
また、ホスト機器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との間のインタフェース処理を行うものである。
図2は、本実施形態のメモリカードのピン配置を示す平面図であり、ピン形成面からみた図である。ホストインタフェース部6が有するピンは、図2に示すように配置されている。図3に、そのピンアサイン、すなわちピン番号とそのピンに割り当てられた信号を示す。ピン1、9は基準電圧、例えば接地電圧GNDに、ピン18は電源電圧Vccに割り当てられている。ピン2は、メモリカード1の内部動作状態をホスト機器20に知らせるためのレディ・ビジー信号R/−B(Ready/Busy)に割り当てられている。書き込み、読み出し、及び消去時など、内部で動作実行中はピン2からビジー信号が出力され、動作が完了するとレディ信号が出力される。ピン3はデータを出力させるリードイネーブル信号−RE(Read Enable)に、ピン4はメモリカード1を動作モードにするカードイネーブル信号−CE(Card Enable)に割り当てられている。ピン5はコマンドの取り込みをコントロールするためのコマンドラッチイネーブル信号CLE(Command Latch Enable)に、ピン6はアドレス、及び入力データの取り込みをコントロールするためのアドレスラッチイネーブル信号ALE(Address Latch Enable)に割り当てられている。ピン7はデータをメモリカード1に書き込むためのライトイネーブル信号−WE(Write Enable)に、ピン8は書き込み、及び消去を強制的に禁止させるためのライトプロテクト信号−WP(Write Protect)に割り当てられている。さらに、ピン10、11、…、17は、コマンド、アドレス、及びデータが入出力されるピンD0(Data0)、D1(Data0)、…、D7(Data7)に割り当てられている。このように、本実施形態のメモリカード1は、NAND型フラッシュメモリ3のピン構成に対応したピン構成を有しており、ホスト機器20がNAND型フラッシュメモリに対するコマンドシーケンスによりメモリカード1にアクセスを行うことが可能となっている。なお、コマンドシーケンスとは、コマンドとアドレスが入力される一連の順序(入力タイミング)のことをいう。なお、図3中において、“S”は電源電圧を示し、“I”はメモリカードへの入力であることを示し、“O”はメモリカードからの出力であることを示し、さらに“I/O”はメモリカードに対する入出力であることを示す。また、ピン名(信号名)の頭に付した“−”は、Low True信号であること、すなわち“L”のとき活性化を指示する信号であることを示す。
バッファ7は、ホスト機器20から送られてくるデータをNAND型フラッシュメモリ3へ書き込む際に、一定量のデータ(例えば1ページ分)を一時的に記憶したり、NAND型フラッシュメモリ3から読み出されたデータをホスト機器20へ送り出す際に、一定量のデータを一時的に記憶したりするものである。
CPU8は、メモリカード1全体の動作を司るものである。ROM9は、CPU8により使用される制御プログラムなどを格納するメモリである。RAM10は、CPU8の作業エリアとして使用され、制御プログラムや各種のテーブルを記憶する揮発性メモリである。CPU8は、例えば、メモリカード1が電源供給を受けた際に、ROM9の中に格納されているファームウェア(制御プログラム)をRAM10上にロードして所定の処理を実行することにより、各種のテーブルをRAM10上で作成したり、ホスト機器20から書き込みコマンド,読み出しコマンド,消去コマンドを受けてNAND型フラッシュメモリ3上の該当領域に対するアクセスを実行したり、バッファ7を通じたデータ転送処理を制御したりする。
図4は、前記ファームウェア(制御プログラム)によって実行される制御の一例であり、ホスト機器20から入力されたコマンドシーケンスを処理する制御手順を示すフローチャートである。
まず、CPU8は、ホスト機器20からコマンドが入力されたか否かを判定する(ステップS1)。続いて、コマンドが入力されたときは、そのコマンドが書き込みコマンドまたは読み出しコマンドであるか否かを判定する(ステップS2)。なお、ステップS1でコマンドが入力されていないと判定したときは、再びステップS1に戻る。
次に、入力されたコマンドが、書き込みコマンドあるいは読み出しコマンドであると判定したときは、アドレスが所定のバイト数、ここでは4バイト入力されたか否かを判定する(ステップS3)。アドレスが4バイト入力されたときは、書き込みあるいは読み出しの処理を行い(ステップS4)、ステップS1に戻る。一方、ステップS3で、アドレスが所定時間内に4バイト入力されないときは、再びコマンドが入力されたか否かを判定する(ステップS5)。ここで、コマンドが入力されたときは、ステップS2に戻り、ステップS2以降の処理を繰り返す。一方、コマンドが入力されないときは、ステップS3に戻り、ステップS3以降の処理を繰り返す。
また、ステップS2において、入力されたコマンドが書き込みコマンドあるいは読み出しコマンドでないと判定したときは、コマンドが消去コマンドであるか否かを判定する(ステップS6)。入力されたコマンドが、消去コマンドであると判定したときは、アドレスが所定のバイト数、ここでは3バイト入力されたか否かを判定する(ステップS7)。アドレスが3バイト入力されたときは、消去の処理を行い(ステップS8)、ステップS1に戻る。一方、ステップS7で、アドレスが所定時間内に3バイト入力されないときは、再びコマンドが入力されたか否かを判定する(ステップS9)。コマンドが入力されたときは、ステップS2に戻り、ステップS2以降の処理を繰り返す。一方、コマンドが入力されないときは、ステップS7に戻り、ステップS7以降の処理を繰り返す。
また、ステップS6において、入力されたコマンドが消去コマンドでないと判定したときは、コマンドがIDリードコマンドあるいはステータスリードコマンドであるか否かを判定する(ステップS10)。入力されたコマンドが、IDリードコマンドあるいはステータスリードコマンドであると判定したときは、IDリードあるいはステータスリードの処理を行い(ステップS11)、ステップS1に戻る。一方、入力されたコマンドがIDリードコマンドあるいはステータスリードコマンドでないと判定したときは、処理を行わず、そのままステップS1に戻る。
図5及び図6は、ホスト機器20からコントローラ4に入力されるIDリードコマンドを含むコマンドシーケンスのタイミングチャートである。図5に示すコマンドシーケンスがメモリカード1の仕様書で定義された、IDリードコマンドのコマンドシーケンスであるとき、図6に示すコマンドシーケンスによってIDリードを実行しようとするホスト機器があると仮定する。
図5に示すコマンドシーケンスでは、以下のようなタイミングでコマンド、アドレス、及びデータが入出力される。
コマンドラッチイネーブル信号CLEが“ハイレベル(以下、Hと記す)”で、カードイネーブル信号−CEが“ロウレベル(以下、Lと記す)”、及びアドレスラッチイネーブル信号ALEが“L”のとき、ライトイネーブル信号−WEの立ち上がりエッジにて、ピンD0〜D7からIDリードコマンドCOMがコントローラ4に取り込まれる。次に、コマンドラッチイネーブル信号CLEが“L”で、カードイネーブル信号−CEが“L”、及びアドレスラッチイネーブル信号ALEが“H”のとき、ライトイネーブル信号−WEの立ち上がりエッジにて、ピンD0〜D7からアドレス“00(16進数)”がコントローラ4に取り込まれる。さらに、コマンドラッチイネーブル信号CLEが“L”で、カードイネーブル信号−CEが“L”、及びアドレスラッチイネーブル信号ALEが“L”のとき、リードイネーブル信号−REの立ち上がりエッジにて、ピンD0〜D7からデータ0〜データ3がホスト機器20に取り込まれる。
また、図6に示すコマンドシーケンスでは、以下のようなタイミングでコマンド、アドレス、及びデータが入出力される。
コマンドラッチイネーブル信号CLEが“H”で、カードイネーブル信号−CEが“L”、及びアドレスラッチイネーブル信号ALEが“L”のとき、ライトイネーブル信号−WEの立ち上がりエッジにて、ピンD0〜D7からIDリードコマンドCOMがコントローラ4に取り込まれる。次に、コマンドラッチイネーブル信号CLEが“L”で、カードイネーブル信号−CEが“L”、及びアドレスラッチイネーブル信号ALEが“H”のとき、ライトイネーブル信号−WEの立ち上がりエッジにて、ピンD0〜D7からアドレスadr1〜adr3がコントローラ4に取り込まれる。さらに、コマンドラッチイネーブル信号CLEが“L”で、カードイネーブル信号−CEが“L”、及びアドレスラッチイネーブル信号ALEが“L”のとき、リードイネーブル信号−REの立ち上がりエッジにて、ピンD0〜D7からデータ0〜データ3がホスト機器20に取り込まれる。
図6に示すような、IDリードコマンドのコマンドシーケンスではアドレスadr1〜adr3の入力は無視すべきである。しかし、図4に示した制御手順を実行するための制御プログラムを持たない従来のメモリカードでは、書き込み時及び読み出し時と同様に4サイクルのアドレスがホスト機器20から発行されるため、本来、無視すべきアドレスadr1〜adr3の入力をコントローラ内のシーケンサが書き込み時や読み出し時のアドレス入力と解釈して誤動作する可能性がある。
そこで、本実施形態のメモリカード1では、図4に示した制御手順を用いて図6に示したコマンドシーケンスを処理する。これにより、ステップS1、S2、S6、S10、S11の順序で処理が移行し、IDリードの処理が実行される。すなわち、アドレスadr1〜adr3が入力されても、書き込み時や読み出し時であるとして誤動作することなく、正常にIDリードの処理を実行することできる。
なおここでは、IDリードコマンドの入力後に、アドレスが4サイクル入力される例を示したが、これに限るわけではなく、ホスト機器20から仕様書に従ったコマンドシーケンスが入力されないその他の場合でも、誤動作することなく本来の処理を実行することが可能である。また、図4に示した制御手順をファームウェア(制御プログラム)によって実行した例を示したが、コントローラ4内に形成したハードウェア(シーケンサ)によって実行するようにしてもよい。
図7は、ホスト機器20が想定しているフラッシュメモリと、実際に使用するフラッシュメモリ(メモリカード1内のNAND型フラッシュメモリ3)との、データ配置の違いを示している。
ホスト機器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ページ分の単位で実行する。
図7に示した例では、実際に使用するフラッシュメモリ3の消去ブロックサイズが、ホスト機器20が想定しているフラッシュメモリの消去ブロックサイズの16倍である場合を示したが、本発明はこれに限定されるものではなく、略整数倍であれば別の倍率となるように構成することも可能である。
大ブロックカードを実用上有効な製品とするためには、図7に示したフラッシュメモリ3の記憶容量は1Gビット以上であることが望ましい。フラッシュメモリ3の記憶容量が例えば1Gビットである場合、256kByteブロック(消去単位)の数は、512個となる。また、図7においては消去単位が256kByteブロックである場合を例示しているが、消去単位が例えば128kByteブロックとなるように構築することも実用上有効である。この場合、128kByteブロックの数は、1024個となる。
また、図7に示した例では、実際に使用するフラッシュメモリ3の消去ブロックサイズが、ホスト機器20が想定しているフラッシュメモリの消去ブロックサイズよりも大きい場合を示したが、本発明はこれに限定されるものではなく、実際に使用するフラッシュメモリ3の消去ブロックサイズが、ホスト機器20が想定しているフラッシュメモリの消去ブロックサイズよりも小さいものとして構成することも可能である。
図8は、ホスト機器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物理ブロックに格納されているかが分かるように管理する。
図9(a)、図9(b)は、ホスト機器20側から送られてくるコマンドのフォーマットを示す図である。
ホスト機器20側から送られてくるコマンドのパケットは、図9(a)に示すように、コマンド種別情報(ここでは「書き込み」),アドレス(物理ブロックアドレス),データ(コンテンツなどの実データ及び付随データ(512Byte+16Byte))といった各種情報を含んでいる。
このようなフォーマットのパケットにおいては、図9(b)に示すように、付随データ16Byte中の所定の位置に小ブロックカードの「論理ブロックアドレス」(アクセス対象となる16kByteブロックに対応する論理アドレス)が配置されている。大ブロックカードは、コマンド種別情報,物理ブロックアドレス,データを取得するほか、特に上記「論理ブロックアドレス」を取得する。なお、この「論理ブロックアドレス」は、読み出しコマンドの場合には付加されない。
図10は、ホスト機器20側が想定しているブロック書き込み操作と、メモリカード1(大ブロックカード)側が実際に行う書き込み処理とを対比して示す図である。
ホスト機器20側(同図の左側)では、小ブロックカードの論理アドレスに基づく16kByteブロック単位のシーケンシャルな書き込み操作の発生時に、小ブロックカードの物理ブロックアドレスによる16kByteブロック単位のランダムな書き込み操作を行う。
一方、大ブロックカード側(同図の右側)では、ホスト機器20側から書き込みコマンドを受けた場合、小ブロックカードの論理ブロックアドレスに基づく16kByteブロック単位のデータをフラッシュメモリ3内にシーケンシャルに書き込む。
前述のように、ホスト機器20は、小ブロックの物理アドレスによる16Byte単位のランダムな書き込み操作を行う。このようなランダムな書き込み操作では、一般に、大ブロック(256kByte)の一部のみを書き換えるための処理が多発する。NAND型フラッシュメモリではブロック単位でしか消去を行えないため、ブロックの一部のみを書き換える場合は、書き換える新データを消去済みの新ブロックに書き込み、新データに書き換えられる旧データを含む旧ブロックから、書き換えられない残りのデータを新ブロックにコピーする必要がある。このように、ブロックの一部のみを書き換える処理は、書き換えられないデータのコピー動作(巻き添えデータコピー)を伴うため、ブロックの一部のみを書き換える処理が多発すると、オーバーヘッドが非常に増大することになる。そこで、本実施形態では、ホスト機器20側から得られる論理アドレスの順序に従って、大ブロックカード側で物理アドレスを再度割り当てることにより、ブロックの一部のみの書き込みの発生を低減し、オーバーヘッドの増大を抑制している。
図11は、大ブロックカード内のNAND型フラッシュメモリ3のブロックフォーマット(消去単位である256kByte物理ブロック分)の一例を示す図である。
大ブロックカードでは、消去単位である256kByte物理ブロックの中に、ホスト機器20側が管理する単位である16kByteに相当するデータを書き込むためのブロック(以下、ホスト管理ブロックと称す)が16個分含まれている。データ書き込みの際には、小ブロックカードにおける論理ブロックアドレスの順に個々のデータが配置される。
各ホスト管理ブロックは、8個のページで構成される。各ページは、512Byteデータ領域を4個分含むと共に、各データ領域に対応する10ByteECC領域を含んでいる。また、ページ中の最後の512Byteデータ領域(4番目の512Byteデータ領域)の後には、24Byte管理データ領域も設けられる。このため、ページ中の最後の10ByteECC領域は、4番目の512Byteデータ領域と24Byte管理データ領域の両方に対応する構成となっている。
消去単位である256kByte物理ブロックに含まれる128個の24Byte管理データ領域のうち、例えば最後の24Byte管理データ領域には、ホスト機器20側から送られてくるコマンドから取得された物理ブロックアドレスに相当するアドレス情報、及び論理ブロックアドレスに相当するアドレス情報がまとめて格納されるようになっている。これらのアドレス情報は、図8で説明した小ブロックカード物理・小ブロックカード論理変換層12が有する第1のテーブルと、小ブロックカード論理・大ブロックカード物理変換層13が有する第2のテーブルとを作成する際に使用される。
図12は、大ブロックカード内のNAND型フラッシュメモリ3のブロックフォーマットの他の例を示す図である。
図12に示すフロックフォーマットは、図11に示したブロックフォーマットに比べると、各ページにおけるECC0、ECC1、ECC2の領域の配置位置が異なる。ただし、各ページにおけるユーザデータの記憶容量は、図11に示したブロックフォーマットと図12に示すブロックフォーマットとで同じである。すなわち、図11に示したブロックフォーマットでは、各ページに2048Byte(512Byte+512Byte+512Byte+512Byte)の記憶領域が設けられており、図12に示すブロックフォーマットでは、各ページに2048Byte(518Byte+518Byte+518Byte+494Byte)の記憶領域が設けられている。以下では、図12に示したブロックフォーマットを採用した場合を前提にして説明を行う。
図13は、本実施形態のメモリカード1に対してホスト機器20が書き込みを行う際に、メモリカード1のI/O(Input/Output)ピン(ピン10〜ピン17)とR/−B(Ready/Busy)ピン(ピン2)に入出力される信号例を示すタイミングチャートである。
ホスト機器20は、メモリカード1が16kByteの消去ブロックサイズを有する不揮発性メモリであると仮定してメモリカードを制御している。例えば、メモリカード1に対する書き込みの際には、ホスト機器20は、シリアルデータインプットコマンド“80H(Hは16進を示す)”をI/Oピン(ピン10〜ピン17)へ入力する。次に、ホスト機器20は、カラムアドレス“C/A”およびページアドレス“P/A”を、I/Oピンへ入力する。なお、ここでカラムアドレス“C/A”およびページアドレス“P/A”は、ホスト機器20がメモリカード1に対して想定している仮想物理アドレス空間におけるカラムアドレスおよびページアドレスである。
更に、ホスト機器20は、書き込みデータを、I/Oピン(ピン10〜ピン17)の個々に対し、528回入力する。具体的には、ホスト機器20はライトイネーブルピンへの入力信号を528回クロッキングしながら、それぞれのI/Oピンに対し528ビット(すべてのI/Oピン合計で528バイト)のデータを順次シフトインする。データのシフトインが完了すると、ホスト機器20は、プログラムコマンド“10H”をI/Oピンへ入力する。これに応答してメモリカード1は、そのR/−Bピンに“L”の信号を出力し、メモリカード1がビジー状態であることを示す。その後、所定期間後にR/−Bピンに“H”の信号を出力することでメモリカードがレディ状態になったことを示す。
しかしながら、図13におけるR/−Bピンの状態は、あくまでもホスト機器20に対してメモリカード1がどのような状態かを示すものである。つまり、図13において、プログラムコマンド“10H”の入力に応答して、R/−Bピンがビジー状態(つまり“L”を出力)を示したとしても、内部でNAND型フラッシュメモリ3に対する書き込み動作(つまり、ページバッファからメモリセルアレイへのデータ転送)が実際に行われているとは限らない。また、R/−Bピンがレディ状態に復帰したとしても、内部でNAND型フラッシュメモリ3に対する書き込み動作が実際に完了しているとは限らない。
図14は、本実施形態のメモリカード1内のNAND型フラッシュメモリ3に対して、メモリカード1内のコントローラ4が書き込みを行う際に、NAND型フラッシュメモリ3のI/Oピン1〜8とR/−B(Ready/Busy)ピンに入出力される信号例を示すタイミングチャートである。なお、NAND型フラッシュメモリ3、及びメモリインタフェース部5は、図3に示したホストインタフェース部6が有するピンと同様に、コマンド、アドレス、及びデータが入出力されるI/Oピン1〜8、レディ・ビジー信号を出力するR/−B(Ready/Busy)ピン、データを出力させるリードイネーブル信号が入力される−RE(Read Enable)ピンを有している。さらに、NAND型フラッシュメモリ3を動作モードにするチップイネーブル信号が入力される−CE(Card Enable)ピン、コマンドの取り込みをコントロールするためのコマンドラッチイネーブル信号が入力されるCLE(Command Latch Enable)ピン、アドレス、及び入力データの取り込みをコントロールするためのアドレスラッチイネーブル信号が入力されるALE(Address Latch Enable)ピンを有している。さらに、データをNAND型フラッシュメモリ3に書き込むためのライトイネーブル信号が入力される−WE(Write Enable)ピン、書き込み、及び消去を強制的に禁止させるためのライトプロテクト信号が入力される−WP(Write Protect)ピンを有している。
コントローラ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に対して想定している実物理アドレス空間におけるカラムアドレスおよびページアドレスである。したがって、図13におけるカラムアドレス“C/A”およびページアドレス“P/A”とは必ずしも一致していない。
更に、コントローラ4は、書き込みデータを、I/Oピン1〜8の個々に対し、2112回入力する。具体的には、コントローラ4は、ライトイネーブルピンへの入力信号を2112回クロッキングしながら、それぞれのI/Oピンに対し2112ビット(すべてのI/Oピン合計で2112バイト)のデータを順次シフトインする。データのシフトインが完了すると、コントローラ4は、プログラムコマンド“10H”をI/Oピン1〜8へ入力する。これに応答してメモリカード1は、そのR/−Bピンに“L”の信号を出力し、メモリカードがビジー状態であることを示す。その後、所定期間後にR/−Bピンに“H”の信号を出力することでメモリカードがレディ状態になったことを示す。図14におけるR/−Bピンの状態は、コントローラ4に対してNAND型フラッシュメモリ3が実際にどのような状態かを示すものである。
なお、前記図13および図14においては、カラムアドレス“C/A”およびページアドレス“P/A”の入力をそれぞれ1つのサイクルで示しているが、メモリカード1の容量またはNAND型フラッシュメモリ3の容量に応じて、適宜2サイクル以上になる場合もある。
この発明の実施形態のメモリカード及びその制御方法によれば、メモリカードが搭載したNAND型フラッシュメモリの仕様に明記されておらず、かつ禁止もされていないシーケンスでコマンドを発行してくるホスト機器に対して、正常に応答すること可能である。
なお、前述した実施形態は唯一の実施形態ではなく、前記構成の変更あるいは各種構成の追加によって、様々な実施形態を形成することが可能である。
この発明の実施形態のメモリカードの構成を示すブロック図である。 本実施形態のメモリカードの外形とピン配置を示す平面図である。 本実施形態のメモリカードのピンアサインを示す図表である。 本実施形態のメモリカードに入力されたコマンドシーケンスを処理する制御手順の一例を示すフローチャートである。 本実施形態のメモリカードに入力されるIDリードコマンドのコマンドシーケンスの一例を示すタイミングチャートである。 本実施形態のメモリカードに入力されるIDリードコマンドのコマンドシーケンスの他の例を示すタイミングチャートである。 ホスト機器が想定しているフラッシュメモリと、メモリカード内のNAND型フラッシュメモリのデータ配置を示す図である。 ホスト機器側システム及びメモリカードにおける各コミュニケーション階層を示す図である。 ホスト機器から送られてくるコマンドのフォーマットを示す図である。 ホスト機器が想定しているブロック書き込み操作と、メモリカードが実際に行う書き込み処理とを対比して示す図である。 メモリカード内のNAND型フラッシュメモリのブロックフォーマットの一例を示す図である。 メモリカード内のNAND型フラッシュメモリのブロックフォーマットの他の例を示す図である。 本実施形態のメモリカードに対してホスト機器が書き込みを行う際に、メモリカードのI/OピンとR/−Bピンに入出力される信号例を示すタイミングチャートである。 本実施形態のメモリカード内のNAND型フラッシュメモリに対してコントローラが書き込みを行う際に、NAND型フラッシュメモリのI/OピンとR/−Bピンに入出力される信号例を示すタイミングチャートである。
符号の説明
1…メモリカード、3…NAND型フラッシュメモリ、4…コントローラ、5…メモリインタフェース部、6…ホストインタフェース部、7…バッファ、8…CPU(Central Processing Unit)、9…ROM(Read-Only Memory)、10…RAM(Random Access Memory)、20…ホスト機器。

Claims (5)

  1. ホスト機器から出力された第1の不揮発性半導体メモリに対するコマンドシーケンスを受け取るホストインタフェース部と、
    前記ホスト機器から出力された前記第1の不揮発性半導体メモリに対する前記コマンドシーケンスを処理し前記コマンドシーケンスに応じて、第2の不揮発性半導体メモリに対するデータの書き込み、読み出し及び消去の動作を制御する処理回路と、
    を具備し、
    前記処理回路は、
    前記コマンドシーケンスが含むコマンドが、書き込み、読み出し、消去、IDリード、ステータスリードのいずれであるか判定する処理と、
    前記コマンドが書き込み、読み出し、消去のいずれかであるとき、アドレスが所定数入力されたか否かを判定する処理と、
    前記アドレスが所定数入力されたとき、書き込み、読み出し、消去のいずれかを実行する処理と、
    前記アドレスが所定数入力されないとき、前記ホスト機器からコマンドが入力されたか否かを判定する処理と、
    前記コマンドがIDリード、ステータスリードのいずれかであるとき、IDリード、ステータスリードのいずれかを実行する処理と、
    実行すること特徴とするコントローラ。
  2. ホスト機器に装着され、前記ホスト機器から出力された第1の不揮発性半導体メモリに対するコマンドシーケンスを受け取るメモリカードにおいて、
    データの書き込み、読み出し及び消去が行われる第2の不揮発性半導体メモリと、
    前記ホスト機器から出力された前記第1の不揮発性半導体メモリに対する前記コマンドシーケンスを処理し前記コマンドシーケンスに応じて、前記第2の不揮発性半導体メモリに対するデータの書き込み、読み出し及び消去の動作を制御するコントローラと、
    を具備し、
    前記コントローラは、前記ホスト機器から出力された前記コマンドシーケンスを処理する制御手段を有し、前記制御手段は、
    前記コマンドシーケンスが含むコマンドが、書き込み、読み出し、消去、IDリード、ステータスリードのいずれであるか判定するステップと、
    前記コマンドが書き込み、読み出し、消去のいずれかであるとき、アドレスが所定数入力されたか否かを判定するステップと、
    前記アドレスが所定数入力されたとき、書き込み、読み出し、消去のいずれかを実行するステップと、
    前記アドレスが所定数入力されないとき、前記ホスト機器からコマンドが入力されたか否かを判定するステップと、
    前記コマンドがIDリード、ステータスリードのいずれかであるとき、IDリード、ステータスリードのいずれかを実行するステップと、
    を具備すること特徴とするメモリカード。
  3. 前記第1の不揮発性半導体メモリが有する第1の消去ブロックサイズは、前記第2の不揮発性半導体メモリが有する第2の消去ブロックサイズとは異なることを特徴とする請求項2に記載のメモリカード。
  4. ホスト機器に装着され、前記ホスト機器からアクセスされるメモリカードの制御方法において、
    前記ホスト機器から出力された第1の不揮発性半導体メモリに対するコマンドシーケンスが含むコマンドが、書き込み、読み出し、消去、IDリード、ステータスリードのいずれであるか判定するステップと、
    前記コマンドが書き込み、読み出し、消去のいずれかであるとき、アドレスが所定数入力されたか否かを判定するステップと、
    前記アドレスが所定数入力されたとき、前記コマンドシーケンスに応じて、第2の不揮発性半導体メモリに対するデータの書き込み、読み出し、消去のいずれかを実行するステップと、
    前記アドレスが所定数入力されないとき、前記ホスト機器からコマンドが入力されたか否かを判定するステップと、
    前記コマンドがIDリード、ステータスリードのいずれかであるとき、IDリード、ステータスリードのいずれかを実行するステップと、
    を具備することを特徴とするメモリカードの制御方法。
  5. 前記第1の不揮発性半導体メモリが有する第1の消去ブロックサイズは、前記第2の不揮発性半導体メモリが有する第2の消去ブロックサイズとは異なることを特徴とする請求項4に記載のメモリカードの制御方法。
JP2004273895A 2004-09-21 2004-09-21 コントローラ、メモリカード及びその制御方法 Expired - Fee Related JP4406339B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2004273895A JP4406339B2 (ja) 2004-09-21 2004-09-21 コントローラ、メモリカード及びその制御方法
US11/097,337 US7392343B2 (en) 2004-09-21 2005-04-04 Memory card having a storage cell and method of controlling the same
TW094131309A TWI289257B (en) 2004-09-21 2005-09-12 Memory card having a storage cell and method of controlling the same
KR1020050086036A KR100755111B1 (ko) 2004-09-21 2005-09-15 컨트롤러, 메모리 카드 및 그 제어 방법
CN200510109973A CN100585570C (zh) 2004-09-21 2005-09-21 具有存储元件的存储卡及其控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004273895A JP4406339B2 (ja) 2004-09-21 2004-09-21 コントローラ、メモリカード及びその制御方法

Publications (2)

Publication Number Publication Date
JP2006092019A JP2006092019A (ja) 2006-04-06
JP4406339B2 true JP4406339B2 (ja) 2010-01-27

Family

ID=36075322

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004273895A Expired - Fee Related JP4406339B2 (ja) 2004-09-21 2004-09-21 コントローラ、メモリカード及びその制御方法

Country Status (5)

Country Link
US (1) US7392343B2 (ja)
JP (1) JP4406339B2 (ja)
KR (1) KR100755111B1 (ja)
CN (1) CN100585570C (ja)
TW (1) TWI289257B (ja)

Families Citing this family (111)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW561491B (en) * 2001-06-29 2003-11-11 Toshiba Corp Semiconductor memory device
JP3892851B2 (ja) * 2004-02-04 2007-03-14 株式会社東芝 メモリカード及び半導体装置
JP2006019932A (ja) * 2004-06-30 2006-01-19 Canon Inc 処理装置及び撮像装置
JP4406339B2 (ja) 2004-09-21 2010-01-27 株式会社東芝 コントローラ、メモリカード及びその制御方法
US8291295B2 (en) * 2005-09-26 2012-10-16 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US7631245B2 (en) * 2005-09-26 2009-12-08 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US20070165457A1 (en) * 2005-09-30 2007-07-19 Jin-Ki Kim Nonvolatile memory system
JP2007272635A (ja) 2006-03-31 2007-10-18 Toshiba Corp メモリシステム及びコントローラ
US7479798B1 (en) * 2006-05-16 2009-01-20 Altera Corporation Selectively disabled output
KR101146059B1 (ko) * 2006-07-31 2012-05-14 가부시끼가이샤 도시바 비휘발성 메모리 시스템 및 비휘발성 메모리 시스템을 위한데이터 판독/기입 방법
US20080046641A1 (en) * 2006-08-21 2008-02-21 Sandisk Il Ltd. NAND flash memory controller exporting a logical sector-based interface
US20080046630A1 (en) * 2006-08-21 2008-02-21 Sandisk Il Ltd. NAND flash memory controller exporting a logical sector-based interface
US20080082750A1 (en) * 2006-09-28 2008-04-03 Okin Kenneth A Methods of communicating to, memory modules in a memory channel
KR100794312B1 (ko) 2006-12-27 2008-01-11 삼성전자주식회사 명령어 자동 처리 유니트를 포함한 메모리 컨트롤러 및그를 포함한 메모리 시스템
JP4970078B2 (ja) * 2007-02-21 2012-07-04 株式会社東芝 不揮発性メモリシステム
JP2009026296A (ja) * 2007-06-21 2009-02-05 Toshiba Corp 電子デバイス、メモリデバイス、ホスト装置
US8650352B2 (en) * 2007-09-20 2014-02-11 Densbits Technologies Ltd. Systems and methods for determining logical values of coupled flash memory cells
US8365040B2 (en) * 2007-09-20 2013-01-29 Densbits Technologies Ltd. Systems and methods for handling immediate data errors in flash memory
US8694715B2 (en) 2007-10-22 2014-04-08 Densbits Technologies Ltd. Methods for adaptively programming flash memory devices and flash memory systems incorporating same
WO2009053961A2 (en) 2007-10-25 2009-04-30 Densbits Technologies Ltd. Systems and methods for multiple coding rates in flash devices
WO2009072101A2 (en) 2007-12-05 2009-06-11 Densbits Technologies Ltd. Apparatus and methods for generating row-specific reading thresholds in flash memory
WO2009072105A2 (en) * 2007-12-05 2009-06-11 Densbits Technologies Ltd. A low power chien-search based bch/rs decoding system for flash memory, mobile communications devices and other applications
US8335977B2 (en) 2007-12-05 2012-12-18 Densbits Technologies Ltd. Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated BCH codes and/or designation of “first below” cells
US8276051B2 (en) * 2007-12-12 2012-09-25 Densbits Technologies Ltd. Chien-search system employing a clock-gating scheme to save power for error correction decoder and other applications
WO2009074978A2 (en) 2007-12-12 2009-06-18 Densbits Technologies Ltd. Systems and methods for error correction and decoding on multi-level physical media
US9741027B2 (en) * 2007-12-14 2017-08-22 Tyfone, Inc. Memory card based contactless devices
US8327246B2 (en) 2007-12-18 2012-12-04 Densbits Technologies Ltd. Apparatus for coding at a plurality of rates in multi-level flash memory systems, and methods useful in conjunction therewith
WO2009118720A2 (en) * 2008-03-25 2009-10-01 Densbits Technologies Ltd. Apparatus and methods for hardware-efficient unbiased rounding
TWI473117B (zh) * 2008-06-04 2015-02-11 A Data Technology Co Ltd 具資料修正功能之快閃記憶體儲存裝置
TW201007734A (en) * 2008-08-06 2010-02-16 Genesys Logic Inc Flash memory control apparatus having signal-converting module
US8332725B2 (en) 2008-08-20 2012-12-11 Densbits Technologies Ltd. Reprogramming non volatile memory portions
JP2010140266A (ja) * 2008-12-11 2010-06-24 Toshiba Corp 電子デバイスシステムと電子デバイス
US8316201B2 (en) * 2008-12-18 2012-11-20 Sandisk Il Ltd. Methods for executing a command to write data from a source location to a destination location in a memory device
US8458574B2 (en) 2009-04-06 2013-06-04 Densbits Technologies Ltd. Compact chien-search based decoding apparatus and method
US8819385B2 (en) 2009-04-06 2014-08-26 Densbits Technologies Ltd. Device and method for managing a flash memory
US8566510B2 (en) 2009-05-12 2013-10-22 Densbits Technologies Ltd. Systems and method for flash memory management
JP5198379B2 (ja) * 2009-07-23 2013-05-15 株式会社東芝 半導体メモリカード
US20110040924A1 (en) * 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Detecting a Transmission Error Over a NAND Interface Using Error Detection Code
US20110041039A1 (en) * 2009-08-11 2011-02-17 Eliyahou Harari Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device
US8868821B2 (en) 2009-08-26 2014-10-21 Densbits Technologies Ltd. Systems and methods for pre-equalization and code design for a flash memory
US8995197B1 (en) 2009-08-26 2015-03-31 Densbits Technologies Ltd. System and methods for dynamic erase and program control for flash memory device memories
US9330767B1 (en) 2009-08-26 2016-05-03 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory module and method for programming a page of flash memory cells
US8305812B2 (en) * 2009-08-26 2012-11-06 Densbits Technologies Ltd. Flash memory module and method for programming a page of flash memory cells
US8730729B2 (en) 2009-10-15 2014-05-20 Densbits Technologies Ltd. Systems and methods for averaging error rates in non-volatile devices and storage systems
US8724387B2 (en) 2009-10-22 2014-05-13 Densbits Technologies Ltd. Method, system, and computer readable medium for reading and programming flash memory cells using multiple bias voltages
US8626988B2 (en) * 2009-11-19 2014-01-07 Densbits Technologies Ltd. System and method for uncoded bit error rate equalization via interleaving
US9037777B2 (en) * 2009-12-22 2015-05-19 Densbits Technologies Ltd. Device, system, and method for reducing program/read disturb in flash arrays
US8607124B2 (en) * 2009-12-24 2013-12-10 Densbits Technologies Ltd. System and method for setting a flash memory cell read threshold
US8443263B2 (en) 2009-12-30 2013-05-14 Sandisk Technologies Inc. Method and controller for performing a copy-back operation
US8595411B2 (en) * 2009-12-30 2013-11-26 Sandisk Technologies Inc. Method and controller for performing a sequence of commands
US8700970B2 (en) * 2010-02-28 2014-04-15 Densbits Technologies Ltd. System and method for multi-dimensional decoding
US8527840B2 (en) 2010-04-06 2013-09-03 Densbits Technologies Ltd. System and method for restoring damaged data programmed on a flash device
US8516274B2 (en) 2010-04-06 2013-08-20 Densbits Technologies Ltd. Method, system and medium for analog encryption in a flash memory
US8745317B2 (en) 2010-04-07 2014-06-03 Densbits Technologies Ltd. System and method for storing information in a multi-level cell memory
US9021177B2 (en) 2010-04-29 2015-04-28 Densbits Technologies Ltd. System and method for allocating and using spare blocks in a flash memory
US8468431B2 (en) 2010-07-01 2013-06-18 Densbits Technologies Ltd. System and method for multi-dimensional encoding and decoding
US8539311B2 (en) 2010-07-01 2013-09-17 Densbits Technologies Ltd. System and method for data recovery in multi-level cell memories
US8467249B2 (en) 2010-07-06 2013-06-18 Densbits Technologies Ltd. Systems and methods for storing, retrieving, and adjusting read thresholds in flash memory storage system
US8964464B2 (en) 2010-08-24 2015-02-24 Densbits Technologies Ltd. System and method for accelerated sampling
US8508995B2 (en) 2010-09-15 2013-08-13 Densbits Technologies Ltd. System and method for adjusting read voltage thresholds in memories
US9063878B2 (en) 2010-11-03 2015-06-23 Densbits Technologies Ltd. Method, system and computer readable medium for copy back
US8850100B2 (en) 2010-12-07 2014-09-30 Densbits Technologies Ltd. Interleaving codeword portions between multiple planes and/or dies of a flash memory device
US10079068B2 (en) 2011-02-23 2018-09-18 Avago Technologies General Ip (Singapore) Pte. Ltd. Devices and method for wear estimation based memory management
US8693258B2 (en) 2011-03-17 2014-04-08 Densbits Technologies Ltd. Obtaining soft information using a hard interface
US8990665B1 (en) 2011-04-06 2015-03-24 Densbits Technologies Ltd. System, method and computer program product for joint search of a read threshold and soft decoding
US9396106B2 (en) 2011-05-12 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US9195592B1 (en) 2011-05-12 2015-11-24 Densbits Technologies Ltd. Advanced management of a non-volatile memory
US9372792B1 (en) 2011-05-12 2016-06-21 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US9110785B1 (en) 2011-05-12 2015-08-18 Densbits Technologies Ltd. Ordered merge of data sectors that belong to memory space portions
US8996790B1 (en) 2011-05-12 2015-03-31 Densbits Technologies Ltd. System and method for flash memory management
US9501392B1 (en) 2011-05-12 2016-11-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of a non-volatile memory module
CA141195S (en) * 2011-05-17 2012-02-03 Sony Computer Entertainment Inc Digital memory card
US8667211B2 (en) 2011-06-01 2014-03-04 Densbits Technologies Ltd. System and method for managing a non-volatile memory
US8588003B1 (en) 2011-08-01 2013-11-19 Densbits Technologies Ltd. System, method and computer program product for programming and for recovering from a power failure
TW201310329A (zh) * 2011-08-18 2013-03-01 Chen jian long 外部記憶裝置及該外部記憶裝置的控制方法
US8553468B2 (en) 2011-09-21 2013-10-08 Densbits Technologies Ltd. System and method for managing erase operations in a non-volatile memory
WO2013094913A1 (ko) * 2011-12-23 2013-06-27 한양대학교 산학협력단 입출력 핀을 이용한 다중 웨이 낸드 플래시 제어 장치 및 방법
US8996788B2 (en) 2012-02-09 2015-03-31 Densbits Technologies Ltd. Configurable flash interface
US8947941B2 (en) 2012-02-09 2015-02-03 Densbits Technologies Ltd. State responsive operations relating to flash memory cells
US8747162B2 (en) 2012-03-29 2014-06-10 Sandisk Technologies Inc. Host device with memory card slot having a card gripping-extracting recess
US8996793B1 (en) 2012-04-24 2015-03-31 Densbits Technologies Ltd. System, method and computer readable medium for generating soft information
US8838937B1 (en) 2012-05-23 2014-09-16 Densbits Technologies Ltd. Methods, systems and computer readable medium for writing and reading data
US8879325B1 (en) 2012-05-30 2014-11-04 Densbits Technologies Ltd. System, method and computer program product for processing read threshold information and for reading a flash memory module
US9921954B1 (en) 2012-08-27 2018-03-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for split flash memory management between host and storage controller
US9368225B1 (en) 2012-11-21 2016-06-14 Avago Technologies General Ip (Singapore) Pte. Ltd. Determining read thresholds based upon read error direction statistics
US9069659B1 (en) 2013-01-03 2015-06-30 Densbits Technologies Ltd. Read threshold determination using reference read threshold
US9136876B1 (en) 2013-06-13 2015-09-15 Densbits Technologies Ltd. Size limited multi-dimensional decoding
US9413491B1 (en) 2013-10-08 2016-08-09 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for multiple dimension decoding and encoding a message
US9348694B1 (en) 2013-10-09 2016-05-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9397706B1 (en) 2013-10-09 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for irregular multiple dimension decoding and encoding
US9786388B1 (en) 2013-10-09 2017-10-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
TWI494944B (zh) * 2013-10-25 2015-08-01 Phison Electronics Corp 記憶體模組偵測方法、記憶體控制電路單元及儲存裝置
US9536612B1 (en) 2014-01-23 2017-01-03 Avago Technologies General Ip (Singapore) Pte. Ltd Digital signaling processing for three dimensional flash memory arrays
US10120792B1 (en) 2014-01-29 2018-11-06 Avago Technologies General Ip (Singapore) Pte. Ltd. Programming an embedded flash storage device
USD735725S1 (en) * 2014-05-02 2015-08-04 Samsung Electronics Co., Ltd. Memory card
USD736775S1 (en) * 2014-05-02 2015-08-18 Samsung Electronics Co., Ltd. Memory card
US9542262B1 (en) 2014-05-29 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Error correction
US9892033B1 (en) 2014-06-24 2018-02-13 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of memory units
US9584159B1 (en) 2014-07-03 2017-02-28 Avago Technologies General Ip (Singapore) Pte. Ltd. Interleaved encoding
US9972393B1 (en) 2014-07-03 2018-05-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Accelerating programming of a flash memory module
US9449702B1 (en) 2014-07-08 2016-09-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Power management
US9524211B1 (en) 2014-11-18 2016-12-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Codeword management
US10305515B1 (en) 2015-02-02 2019-05-28 Avago Technologies International Sales Pte. Limited System and method for encoding using multiple linear feedback shift registers
US10289480B2 (en) * 2015-03-12 2019-05-14 Toshiba Memory Corporation Memory system
US10628255B1 (en) 2015-06-11 2020-04-21 Avago Technologies International Sales Pte. Limited Multi-dimensional decoding
US9851921B1 (en) 2015-07-05 2017-12-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory chip processing
US9954558B1 (en) 2016-03-03 2018-04-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Fast decoding of data stored in a flash memory
USD836641S1 (en) * 2016-10-19 2018-12-25 Nintendo Co., Ltd. Memory card
US10515701B1 (en) * 2017-10-31 2019-12-24 Pure Storage, Inc. Overlapping raid groups
US10976947B2 (en) * 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
JP7425569B2 (ja) * 2019-09-20 2024-01-31 キヤノン株式会社 撮像装置、デバイス、制御方法及びプログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5799168A (en) * 1996-01-05 1998-08-25 M-Systems Flash Disk Pioneers Ltd. Standardized flash controller
JP3871813B2 (ja) * 1998-08-10 2007-01-24 株式会社ルネサステクノロジ マルチポートメモリ、データプロセッサ及びデータ処理システム
JP4722305B2 (ja) * 2001-02-27 2011-07-13 富士通セミコンダクター株式会社 メモリシステム
TWI240864B (en) * 2001-06-13 2005-10-01 Hitachi Ltd Memory device
JP4059472B2 (ja) 2001-08-09 2008-03-12 株式会社ルネサステクノロジ メモリカード及びメモリコントローラ
JP4294894B2 (ja) * 2001-09-13 2009-07-15 株式会社ルネサステクノロジ メモリカード
US6823417B2 (en) 2001-10-01 2004-11-23 Hewlett-Packard Development Company, L.P. Memory controller for memory card manages file allocation table
US20030225962A1 (en) 2002-05-31 2003-12-04 Hitachi, Ltd. Memory card and memory card system
JP4406339B2 (ja) 2004-09-21 2010-01-27 株式会社東芝 コントローラ、メモリカード及びその制御方法

Also Published As

Publication number Publication date
KR20060051314A (ko) 2006-05-19
US7392343B2 (en) 2008-06-24
JP2006092019A (ja) 2006-04-06
KR100755111B1 (ko) 2007-09-04
CN1766850A (zh) 2006-05-03
TW200622612A (en) 2006-07-01
US20060064537A1 (en) 2006-03-23
CN100585570C (zh) 2010-01-27
TWI289257B (en) 2007-11-01

Similar Documents

Publication Publication Date Title
JP4406339B2 (ja) コントローラ、メモリカード及びその制御方法
JP3892851B2 (ja) メモリカード及び半導体装置
US7814264B2 (en) Memory card, semiconductor device, and method of controlling semiconductor memory
US7793035B2 (en) Memory system and controller
US8055873B2 (en) Data writing method for flash memory, and controller and system using the same
US7773420B2 (en) Memory card system including NAND flash memory and SRAM/NOR flash memory, and data storage method thereof
JP4828816B2 (ja) メモリカード、半導体装置、及びメモリカードの制御方法
US10635350B2 (en) Task tail abort for queued storage tasks
JP4843222B2 (ja) 半導体記憶装置の制御方法、メモリカード、及びホスト機器
JP4460967B2 (ja) メモリカード、不揮発性半導体メモリ、及び半導体メモリの制御方法
JP2003067244A (ja) 不揮発性記憶装置及びその制御方法
JP2007034581A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
US7644247B2 (en) System controller for flash memory
JP2006011533A (ja) メモリカード、半導体装置、及び半導体メモリの制御方法
CN113126895A (zh) 存储装置及其操作方法
US6898680B2 (en) Minimization of overhead of non-volatile memory operation
TWI664569B (zh) 資料儲存裝置及系統資訊的編程方法
JP4498341B2 (ja) メモリシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060404

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090706

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090714

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090914

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

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

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

Free format text: PAYMENT UNTIL: 20121113

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121113

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees