JP4751037B2 - メモリカード - Google Patents

メモリカード Download PDF

Info

Publication number
JP4751037B2
JP4751037B2 JP2004183769A JP2004183769A JP4751037B2 JP 4751037 B2 JP4751037 B2 JP 4751037B2 JP 2004183769 A JP2004183769 A JP 2004183769A JP 2004183769 A JP2004183769 A JP 2004183769A JP 4751037 B2 JP4751037 B2 JP 4751037B2
Authority
JP
Japan
Prior art keywords
address
memory
block
card
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004183769A
Other languages
English (en)
Other versions
JP2006011533A (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 JP2004183769A priority Critical patent/JP4751037B2/ja
Priority to US11/156,585 priority patent/US7245539B2/en
Priority to TW094120870A priority patent/TWI277980B/zh
Publication of JP2006011533A publication Critical patent/JP2006011533A/ja
Application granted granted Critical
Publication of JP4751037B2 publication Critical patent/JP4751037B2/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
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory

Description

本発明は、不揮発性半導体メモリを搭載したメモリカードに関し、特に所定の消去ブロックサイズを有する不揮発性半導体メモリを搭載したメモリカードに関する。
メモリカードには、ホスト機器が使用するアドレスと実際のメモリ上のアドレスとのアドレス変換を行うコントローラが備えられているものがある。この種のメモリカードにおいては、コントローラは、例えばNAND型フラッシュメモリなどの不揮発性メモリの所定領域に格納されている管理情報に基づき、RAMなどの揮発性メモリ上にアドレス変換テーブルを作成する。ホスト機器からのアクセス要求に応じて不揮発性メモリに対するアクセスを実行する際には、コントローラは、上記アドレス変換テーブルを用いてアドレス変換処理を行う。
なお、特許文献1には、メモリデバイス上のメモリ空間が所定サイズの複数のゾーンに分割され、分割されたゾーン毎にアサインブロックと未アサインブロックとが識別された検出テーブルと、この検出テーブルが参照されて所定のゾーンが選択され、選択されたゾーンの中における個々のブロックの物理アドレスと論理アドレスとが対応付けられて生成される管理テーブルとを具備するメモリ管理装置が開示されている。
特開2000−284996号公報
ところで、ホスト機器が想定しているメモリと異なる仕様のメモリを搭載したメモリカードをホスト機器に適用できるように構築する場合、相互のアドレス変換処理が複雑となり、それに応じてアドレス変換テーブルの情報量も増える。このような場合、アドレス変換テーブルを記憶するためのRAMなどに関しても、容量の大きいものにしなければならなくなる。
しかし、大きなRAMをメモリカード内に実装した場合、実装面積やコストの増大を招くことになる。また、不揮発性メモリ上の管理情報に基づいて情報量の多いアドレス変換テーブルをRAM上に展開するのにかなりの時間がかかってしまい、メモリカードの仕様に定められる時間的な制約を満たさなくなるおそれもある。
また、上記文献の技術によれば、アドレス変換用の管理テーブルを作成するために別のテーブル(検出テーブル)が必要とされるため、結果的にRAMなどの揮発性メモリを容量の大きいものとしなければならないという問題がある。
本発明は上記課題を解決するためになされたものであり、RAMなどの揮発性メモリに記憶される情報の量を低減しつつ処理の効率化を実現するメモリカードを提供することを目的とする。
本発明に係るメモリカードは、第1の消去ブロックサイズを有する仮想的な第1の半導体メモリにおけるアドレスと前記第1の消去ブロックサイズとは異なる第2の消去ブロックサイズを有する実在の第2の半導体メモリにおけるアドレスとの全ての対応付けのうち、一部の対応付けを示すアドレス変換情報を揮発性メモリに記憶させるコントローラと、前記第2の消去ブロックサイズを有する不揮発性メモリとを具備し、前記コントローラは、ホストから前記第1の半導体メモリにおけるアドレスを受けて前記不揮発性メモリに対するアクセスを実行する際に、前記揮発性メモリに記憶された前記アドレス変換情報を用いてアドレス変換処理を行い、前記第2の半導体メモリ上の物理アドレスを導き出すことを特徴とする。
RAMなどの揮発性メモリに記憶される情報の量を低減しつつ処理の効率化を実現することができる。
以下、図面を参照して、本発明の一実施形態について説明する。
図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))となる。以下では、このようなフラッシュメモリを搭載したカードを、「小ブロックカード」と称す場合がある。
一方、実際に使用するフラッシュメモリ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ブロックに対応する論理アドレス)が配置されている。大ブロックカードは、コマンド種別情報,物理ブロックアドレス,データを取得するほか、特に上記「論理ブロックアドレス」を取得する。なお、この「論理ブロックアドレス」は、読出コマンドの場合には付加されない。
図6は、ホスト20側が想定しているブロック書込操作と、メモリカード1(大ブロックカード)側が実際に行う書込処理とを、対比して示す図である。
ホスト20側(同図の左側)では、小ブロックカードの論理アドレスに基づく16kByteブロック単位のシーケンシャルな書込操作の発生時に、小ブロックカードの物理ブロックアドレスによる16kByteブロック単位のランダムな書込操作を行う。
一方、大ブロックカード側(同図の右側)では、ホスト20側から書込コマンドを受けた場合、小ブロックカードの論理ブロックアドレスに基づく16kByteブロック単位のデータをフラッシュメモリ3内にシーケンシャルに書き込む。
前述のように、ホスト20は、小ブロックの物理アドレスによる16Byte単位のランダムな書込操作を行う。このようなランダムな書込操作では、一般に、大ブロック(256kByte)の一部のみを書き換えるための処理が多発する。NAND型フラッシュメモリではブロック単位でしか消去を行えないため、ブロックの一部のみを書き換える場合は、書き換える新データを消去済みの新ブロックに書き込み、新データに書き換えられる旧データを含む旧ブロックから、書き換えられない残りのデータを新ブロックにコピーする必要がある。このように、ブロックの一部のみを書き換える処理は、書き換えられないデータのコピー動作(以下、「巻き添えデータコピー」と称す)を伴うため、ブロックの一部のみを書き換える処理が多発すると、オーバーヘッドが非常に増大することになる。そこで、本実施形態では、ホスト20側から得られる論理アドレスの順序に従って、大ブロックカード側で物理アドレスを再度割り当てることにより、ブロックの一部のみの書込の発生を低減し、オーバーヘッドの増大を抑制している。
図7は、大ブロックカード内のNAND型フラッシュメモリ3のブロックフォーマット(消去単位である256kByte物理ブロック分)の一例を示す図である。
大ブロックカードでは、消去単位である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のブロックフォーマットを採用した場合を前提にして説明を行う。
図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からわかるように、メモリカードがビジー状態でいられる時間には制約があるため、その間にデータ書込を行い、所定期間後には当該メモリカードがレディ状態になったことをホスト側に示さなければならない。
図11は、図4中に示される小ブロックカード物理・小ブロックカード論理変換層12及び小ブロックカード論理・大ブロックカード物理変換層13にそれぞれ備えられる第1のテーブル及び第2のテーブルの一例を示す図である。
第1のテーブル31及び第2のテーブル32は、ホスト20が想定しているフラッシュメモリにおけるアドレスと実際に使用するフラッシュメモリ(即ち、フラッシュメモリ3)におけるアドレスとの全ての対応付けのうち、一部の対応付けを示すアドレス変換情報である。これら第1のテーブル31及び第2のテーブル32を参照することにより、ホスト20が想定しているフラッシュメモリにおける所定のアドレス範囲に含まれる個々の物理ブロックアドレスもしくは論理ブロックアドレスが、フラッシュメモリ3上のどの物理アドレスに対応するのかを導き出すことができるようになっている。
第1のテーブル31は、ホスト20が想定しているフラッシュメモリにおける全物理ブロックアドレスの一部と当該フラッシュメモリにおける全論理ブロックアドレスの一部との対応関係を示している。一方、第2のテーブル32は、ホスト20が想定しているフラッシュメモリにおける上記全論理ブロックアドレスの一部とフラッシュメモリ3における全物理ブロックアドレスの一部との対応関係を示している。
なお、第1のテーブル31及び第2のテーブル32の作成・参照・変更・格納やアドレス変換処理などは、コントローラ4(図1,図2を参照)によって制御され、具体的にはROM9からRAM10上にロードされた制御プログラムを実行するCPU8やメモリインタフェース部5を通じて制御される。
以下の説明では、ホスト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に示される第1のテーブル31及び第2のテーブル32の例では、全てのゾーンのうち、予めテーブル作成対象ゾーンとして指定されている2つのゾーン(ZoneN, ZoneN+1)に関するアドレス情報のみが記述されている。即ち、2ゾーン分について、「xPBAからxLBA(10bit)への変換」および「xLBAからPBA(13bit)への変換」を行えるようになっている。なお、図中では、個々のアドレスの対応付けを理解し易くするため、各ゾーンにおける連続する1024個のxPBAに対して共通の番号0〜1023を付し、同様に、各ゾーンにおける連続する1000個のxLBAに対して共通の番号0〜999を付している。また、図11中のZoneNは偶数番号のゾーンであることを表しており、ZoneN+1は奇数番号のゾーンであることを表している。
コントローラ4は、このような第1のテーブル31と第2のテーブル32とを組み合わせたアドレス変換テーブルを例えば2セット分作成し、RAM10上に常駐させる。2セット分のアドレス変換テーブルを作成する場合には、1つは例えばホスト20が現在アクセスを行っているゾーンに関するアドレス変換テーブルにし、もう1つは例えばFAT(File Allocation Table)領域のように頻繁にホスト20がアクセスしてくることが予想されるゾーンに関するアドレス変換テーブルにすることが望ましい。
コントローラ4は、ホスト20から書込コマンドを受けた場合には、この書込コマンドから得られるxPBA及びxLBAの対応関係を第1のテーブル31に反映させる(即ち、第1のテーブル31を修正する)。また、コントローラ4は、データ書込先のPBAを決定した後、このPBA及び上記xLBAの対応関係を第2のテーブル32に反映させる(即ち、第2のテーブル32を修正する)。
一方、コントローラ4は、ホスト20から読出コマンドを受けた場合には、第1のテーブル31を参照し、読出コマンドから得られるxPBAに対応するxLBAを検索する。また、コントローラ4は、第2のテーブル32を参照し、上記検索したxLBAに対応するPBAを検索し、この検索されたPBAのブロックからのデータ読出を行う。
このように、本実施形態では、全てのアドレス範囲に関するアドレス変換テーブルをRAM10上に記憶させるのではなく、一部のアドレス範囲だけに関するアドレス変換テーブルをRAM10上に記憶させるようにしているので、記憶に必要な情報量を低減でき、より小さなRAM10を実装することが可能となる。その際に、「xPBAからxLBA(10bit)への変換」および「xLBAからPBA(13bit)への変換」を行うための2種類のテーブルを採用することにより、更なる情報量の低減を実現している。また、頻繁にアクセスされることが予想されるゾーンに関するテーブルをRAM10上に記憶させることにより、テーブル再作成の時間を低減し、高速なアクセスを実現できる。
図12は、フラッシュメモリ3上のデータブロック及び集中管理ブロックの概略構成をそれぞれ対比して示す図である。
データブロック(1物理ブロック分)は、前述の図8においても示したように128個のデータページで構成される。このようなデータブロックは、フラッシュメモリ3上に複数個存在し、ユーザデータ(ユーザが読み書きすることが可能な文書、静止画、動画などのデータ)を記憶するために使用される。なお、個々のデータブロックにおける例えば最終データページ中の所定領域には、当該データブロックのPBAに対応するxPBA及びxLBAの情報が記憶される。その詳細については、後で述べる。
一方、集中管理ブロック(1物理ブロック分)は、1つのCIS(Card Information Structure)ページ及び複数の管理ページ0,1,2,3,…で構成される。この集中管理ブロックは、当該フラッシュメモリ3上に1個のみ存在し、フラッシュメモリ3に関する種々な管理情報(基本的にはユーザが自由に読み書きすることができず、フラッシュメモリ3の起動時などにホストやコントローラが使用する情報)を一括して記憶する特別なブロックであり、全物理領域の中でもロバスト性(robustness)が最も高い領域に設けられる。
集中管理ブロック中のCISページは、例えばフラッシュメモリ3が所定のメモリカードの物理フォーマット仕様に沿ってフォーマッティングされているか否かを見分けるために使用されるページである。管理ページ0,1,2,3,…は、個々のデータブロックがそれぞれ属しているゾーンの番号(Zone No.)や個々のデータブロックのエラーに関するステータス(status)を記憶するページである。この管理ページは、特に、前述の第1のテーブル31及び第2のテーブル32を作成する際に、テーブル作成対象ゾーンとして予め指定されているゾーンに該当するデータブロック群のPBAを知得するために使用される。管理ページの詳細については、後で述べる。
図13は、図12中に示される集中管理ブロックのフォーマットの一例を示す図である。図14は、図13中に示される主要な情報に関する説明を表にしてまとめたものである。また、図15は、図13中に示される管理ページ0における各カラムのフォーマットの一例を示す図である。以下、図13〜図15を参照して、CISページ及び管理ページ0,1,2,3,…の詳細を説明する。
図13中の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」は、デバック時に使用される各種の情報を記憶する領域である(ここでは詳細な説明を省略する)。
一方、図13中の管理ページ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に着目すると、図15に示されるように、管理ページ0を構成する個々のカラムCol.0, Col.1, Col.2, …には、個々のデータブロックを識別するPBA0, PBA1, PBA2, …に対応する領域が設けられ、各領域(1Byte分)には上述したZone No.(7bitのうちの上記6bit)及びStatus(2bit)の組合せが記憶されている。
図16は、図12中に示されるデータブロックにおける最終データページのフォーマットの一例を示す図である。図17は、図16中に示されるデータページの中の管理データ領域(24Byte)のフォーマットの詳細を示す図である。また、図18は、図16中に示される主要な情報に関する説明を表にしてまとめたものである。以下、図16〜図18を参照して、個々のデータブロックにおけるデータページの詳細を説明する。
図16中のデータページには、「Data」、「ECC」、「管理データ」で表された複数の領域がある。領域「Data」は、ユーザデータを記憶する領域である。領域「ECC」は、カラムアドレス0-517の情報に対応するECC、カラムアドレス528-1045の情報に対応するECC、カラムアドレス1056-1573の情報に対応するECC、及びカラムアドレス1584-2101の情報に対応するECCを記憶する領域である。領域「管理データ」は、当該ページもしくはブロックに関する管理情報(24Byte)を記憶する領域である。
上記「管理データ」には、「Zone」、「xLBA」、「xPBA」、「Pair」、「ID」で表された複数の領域がある。領域「Zone」は、当該ページが属しているZone No.(7bit)を記憶する領域である。領域「xLBA」は、当該ページを含むホスト管理ブロック(8ページ分)に書かれたデータに対応付けられているxLBA(10bit)を記憶する領域である。領域「xPBA」は、当該ページを含む1物理ブロック(128ページ分)の中の先頭のホスト管理ブロック(8ページ分)から当該ページを含むホスト管理ブロック(8ページ分)までにそれぞれ書かれたデータに対応付けられているxPBA(20Byte)を下位アドレス順に配置して記憶する領域である。当該ページが最終ページである場合、16個のxPBAの全てが記憶されることになる。領域「Pair」は、ECCエラー等の対処のために当該ページを含む物理ブロックと対をなす別の物理ブロックの位置情報(7bit)を記憶する領域である。領域「ID」は、当該ページに書かれているデータの種類及びBadブロック属性(1Byte)を記憶する領域である。
次に、図19〜図21のフローチャートを参照して、本実施形態によるアドレス変換テーブルを用いた動作を説明する。なお、RAM10には、図11に示した第1のテーブル31(xPBA→xLBA変換テーブル)と第2のテーブル32(xLBA→PBA変換テーブル)とを組み合わせたアドレス変換テーブルが常駐しており、CPU8は、当該アドレス変換テーブルを用いて、ホスト20からのアクセス要求を処理するものとする。
まず、図19を参照して、アドレス変換テーブルを用いたデータ書込の動作を説明する。
CPU8は、ホスト20から送られてくるライトコマンド及びライトアドレスxPBAを取得する(ステップA1,A2)、当該ライトアドレスが現在のアドレス変換テーブルが対応できるゾーンに属するものであるか否かを、第1のテーブル31を参照して判定する(ステップA3)。
ライトアドレスが、現在のアドレス変換テーブルが対応できるゾーンに属さない場合は、新たなアドレス変換テーブルを作成(例えば、現在のアドレス変換テーブルを更新)する(ステップA3)。一方、現在のアドレス変換テーブルが対応できるゾーンに属する場合は、新たなアドレス変換テーブルを作成する必要はない。なお、アドレス変換テーブルの作成方法については、後で述べる。
CPU8は、ホスト20から送られてくるライトデータを受け取ると(ステップA5)、ビジー信号をアサートし(ステップA6)、ライト要求が物理ブロック中のPage0への書込を示しているか否かを判定する(ステップA7)。Page0への書込である場合には、ライトデータに含まれている付随データの中からxLBAを抽出し(ステップA8)、このxLBAと上記取得したxPBAとの組合せに基づき、第1のテーブル31を更新する(ステップA9)。なお、Page0への書込でなければ、第1のテーブル31の更新は行わない。
次いで、CPU8は、書き込むべきライトデータが小ブロックカードにおける4ページ分(即ち、大ブロックカードにおける1ページ分)に達したか否かを判定する(ステップA10)。達していなければ、ステップA1〜A9の処理を繰り返す。
一方、書き込むべきライトデータが小ブロックカードにおける4ページ分に達していれば、第2のテーブル32を参照することにより上記xLBAからPBAを導出し、このPBAに該当するフラッシュメモリ3上の物理ブロックに当該データを書き込む(ステップA11)。なお、CPU8は、データの書込を行った後、ビジー信号をデアサートする。
また、CPU8は、上記データの書込がPage0への書込であったか否かを判定する(ステップA12)。Page0への書込であった場合には、xLBAとPBAとの組合せに基づき、第2のテーブル32を更新し(ステップA13)、処理を終了する。Page0への書込でなかった場合には、第2のテーブル32の更新は行わない。なお、CPU8は、第1のテーブル31及び第2のテーブル32を更新した場合には、その更新内容をフラッシュメモリ3上の該当する管理データ領域に適時に反映させる。
次に、図20を参照して、アドレス変換テーブルを用いたデータ読出の動作を説明する。
CPU8は、ホスト20から送られてくるリードコマンド及びリードアドレスxPBAを取得する(ステップB1,B2)、ビジー信号をアサートし(ステップB3)、当該リードアドレスが現在のアドレス変換テーブルが対応できるゾーンに属するものであるか否かを、第1のテーブル31を参照して判定する(ステップB4)。
リードアドレスが、現在のアドレス変換テーブルが対応できるゾーンに属さない場合は、新たなアドレス変換テーブルを作成(例えば、現在のアドレス変換テーブルを更新)する(ステップB5)。一方、現在のアドレス変換テーブルが対応できるゾーンに属する場合は、新たなアドレス変換テーブルを作成する必要はない。なお、アドレス変換テーブルの作成方法については、後で述べる。
次いで、CPU8は、リード要求が奇数番号のゾーンに該当するものであるか否かを判定する(ステップB6)。ここで、奇数番号のゾーン(例えば図11中のZoneN+1)に該当する場合には、上記取得したxPBAの値に1024を加算する(ステップB7)。なお、偶数番号のゾーン(例えば図11中のZoneN)に該当する場合には、1024の加算は行わない。
そして、CPU8は、第1のテーブル31を参照することにより上記取得したxPBAからxLBAを導出し(ステップB8)、更に、第2のテーブル32を参照することにより当該xLBAからPBAを導出し、このPBAに該当するフラッシュメモリ3上の物理ブロックからデータを読み出す(ステップB9)。また、CPU8は、データの読出を行った後、ビジー信号をデアサートし(ステップB10)、リードデータをホスト20へ送る(ステップB11)。
次に、図21を参照して、アドレス変換テーブルの作成の動作を説明する。
CPU8は、フラッシュメモリ3上の集中管理ブロックに含まれる個々の管理ページ1,2,3,…に対し、順番に、以下に説明する共通のルーチンを実行する(Page loopを実行する)(ステップC11)。このPage loopの中では、CPU8は、集中管理ブロックから個々の管理ページを順に読み出し(ステップC12)、各管理ページに含まれる個々のカラム0,1,2,…,2047に対し、順番に、以下に説明する共通のルーチンを実行する(Column loopを実行する)(ステップC13)。
上記Column loopの中では、CPU8は、図15に示したようにカラムの領域に記憶されているZone No.を参照し(ステップC14)、そのZone No.がテーブル作成対象ゾーンに該当するか否かを判定する(ステップC15)。即ち、チェック対象のカラムに対応付けられているPBAに該当するデータブロック(に書かれているデータ)がテーブル作成対象ゾーンに該当するか否かを判定する。
テーブル作成対象ゾーンに該当する場合には、CPU8は、上記データブロックの中における最終ページの情報を読み出し(ステップC16)、読み出した情報の中の管理データからxLBA及びxPBAを取得し、取得したxLBA及びxPBAならびに上記データブロックのPBAに基づき、第1のテーブル31及び第2のテーブル32を更新もしくは作成する(ステップC17)。なお、テーブル作成対象ゾーンに該当しない場合には、ステップC16及びC17の処理は行わない。
最終の管理ページに含まれる最終のカラムに対する処理が完了すると、CPU8は、Column loopを終了し(ステップC18)、Page loopを終了する(ステップC19)。
このように、本実施形態では、フラッシュメモリ3上に集中管理ブロックを設けているので、どのPBAのデータブロックから情報を読み出せばアドレス変換テーブルを作成できるかがすぐにわかり、アドレス変換テーブルの作成時間を縮減することができる。また、集中管理ブロック中の管理ページには必要最小限の情報(ゾーン番号等)を記憶させているので、管理ブロックの書換え回数を低減することができる。
上記実施形態の説明では、ホスト20が想定している半導体メモリにおけるアドレスと実際に使用する半導体メモリのアドレスとの対応付けの管理や制御(アドレス変換テーブルの作成・参照・変更・格納やアドレス変換処理など)をコントローラ4が行う場合を例に挙げたが、代りに、当該制御をホスト20側のドライバソフト23等が行うものとして構築してもよい。
また、上記実施形態の説明では、実際に使用するフラッシュメモリ3の消去ブロックサイズが、ホスト20が想定しているフラッシュメモリの消去ブロックサイズよりも大きい場合を示したが、勿論、実際に使用するフラッシュメモリ3の消去ブロックサイズが、ホスト20が想定しているフラッシュメモリの消去ブロックサイズと同じであってもよい。
また、上記実施形態の説明では、不揮発性メモリとしてNAND型フラッシュメモリを例に挙げて説明したが、不揮発性メモリはNAND型フラッシュメモリに限られず、他の種類のメモリを適用してもよい。
本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
本発明の一実施形態に係るメモリカードに搭載されるデバイス類の概略構成を示す斜視図。 ホストと上記メモリカードとを含む構成を示すブロック図。 ホストが想定しているフラッシュメモリと、実際に使用するフラッシュメモリとのデータ配置の違いを示す図。 ホスト側システム及びメモリカード(大ブロックカード)の各コミュニケーション階層を示す図。 ホスト側から送られてくるコマンドのフォーマットを示す図。 ホスト側が想定しているブロック書込操作とメモリカード(大ブロックカード)側が実際に行う書込処理とを対比して示す図。 大ブロックカード内のフラッシュメモリのブロックフォーマット(消去単位である256kByte物理ブロック分)の一例を示す図。 図7とは異なるブロックフォーマットの例を示す図。 本実施形態のメモリカードに対してホストが書込を行う際の、当該メモリカードのI/OピンとR/Bピンとの信号の例を示すタイミングチャート。 本実施形態のメモリカード内の不揮発性メモリに対して、当該メモリカード内のコントローラが書込を行う際の、メモリカード内の不揮発性メモリのI/OピンとR/Bピンとの信号の例を示すタイミングチャート。 図4中に示される小ブロックカード物理・小ブロックカード論理変換層及び小ブロックカード論理・大ブロックカード物理変換層にそれぞれ備えられる第1のテーブル及び第2のテーブルの一例を示す図。 フラッシュメモリ上のデータブロック及び集中管理ブロックの概略構成をそれぞれ対比して示す図。 図12中に示される集中管理ブロックのフォーマットの一例を示す図。 図13中に示される主要な情報に関する説明を表にしてまとめた図。 図13中に示される管理ページ0における各カラムのフォーマットの一例を示す図。 図12中に示されるデータブロックにおける最終データページのフォーマットの一例を示す図。 図16中に示されるデータページの中の管理データ領域(24Byte)のフォーマットの詳細を示す図。 図16中に示される主要な情報に関する説明を表にしてまとめた図。 アドレス変換テーブルを用いたデータ書込の動作を示すフローチャート。 アドレス変換テーブルを用いたデータ読出の動作を示すフローチャート。 アドレス変換テーブルの作成の動作を示すフローチャート。
符号の説明
1…メモリカード(大ブロックカード)、2…PCB基板、3…NAND型フラッシュメモリ、4…コントローラ、5…メモリインタフェース部、6…ホストインタフェース部、7…バッファ、8…CPU、9…ROM、10…RAM、11…小ブロックカード物理アクセス層、12…小ブロックカード物理・小ブロックカード論理変換層、13…小ブロックカード論理・大ブロックカード物理変換層、14…大ブロックカード物理アクセス層、20…ホスト機器、21…アプリケーションソフト、22…ファイルシステム、23…ドライバソフト、24…小ブロックカード物理アクセス層、31…第1のテーブル、32…第2のテーブル。

Claims (8)

  1. 第1の消去ブロックサイズを有する仮想的な第1の半導体メモリにおけるアドレスと前記第1の消去ブロックサイズとは異なる第2の消去ブロックサイズを有する実在の第2の半導体メモリにおけるアドレスとの全ての対応付けのうち、一部の対応付けを示すアドレス変換情報を揮発性メモリに記憶させるコントローラと、
    前記第2の消去ブロックサイズを有する不揮発性メモリとを具備し、
    前記コントローラは、ホストから前記第1の半導体メモリにおけるアドレスを受けて前記不揮発性メモリに対するアクセスを実行する際に、前記揮発性メモリに記憶された前記アドレス変換情報を用いてアドレス変換処理を行い、前記第2の半導体メモリ上の物理アドレスを導き出すことを特徴とするメモリカード。
  2. 前記アドレス変換情報は、前記第1の半導体メモリにおける所定のアドレス範囲に含まれる個々の物理アドレスもしくは論理アドレスが、前記第2の半導体メモリ上のどの物理アドレスに対応するのかを導き出すことが可能な情報であることを特徴とする請求項に記載のメモリカード。
  3. 前記アドレス変換情報は、
    前記第1の半導体メモリにおける全物理アドレスの一部と当該第1の半導体メモリにおける全論理アドレスの一部との対応関係を示す第1のテーブルと、
    前記第1の半導体メモリにおける前記全論理アドレスの一部と前記第2の半導体メモリにおける全物理アドレスの一部との対応関係を示す第2のテーブルと、
    を含むことを特徴とする請求項に記載のメモリカード。
  4. 前記コントローラは、
    前記第1のテーブルを用いて、ホストから受けた前記第1の半導体メモリにおける前記第1の消去ブロックサイズの物理アドレスを、当該第1の半導体メモリにおける前記第1の消去ブロックサイズの論理アドレスに変換し、
    前記第2のテーブルを用いて、前記第1の半導体メモリにおける前記第1の消去ブロックサイズの論理アドレスを、前記第2の半導体メモリにおける前記第2の消去ブロックサイズの物理アドレスに変換することを特徴とする請求項3に記載のメモリカード。
  5. 前記コントローラは、ホストから前記第1の半導体メモリにおける物理アドレス及び当該物理アドレスに対応付けられた論理アドレスを受けて、前記第1のテーブルを作成することを特徴とする請求項3に記載のメモリカード。
  6. 前記コントローラは、前記第1の半導体メモリにおける前記第1の消去ブロックサイズの論理アドレスに対応付けられたデータを、前記第2の半導体メモリにおける前記第2の消去ブロックサイズの物理アドレスで指定される領域において連続するように配置することを特徴とする請求項3に記載のメモリカード。
  7. 前記不揮発性メモリは、
    当該不揮発性メモリ上における個々の物理アドレスがそれぞれ所定のアドレス範囲に該当するか否かを示す第1の管理情報を、当該不揮発性メモリ上の特定の管理情報記憶領域に一括して記憶しており、
    当該不揮発性メモリにおける個々の物理アドレスがそれぞれ前記第1の半導体メモリ上のどの物理アドレス及び論理アドレスに対応するのかを示す第2の管理情報を、当該不揮発性メモリにおける個々の物理アドレスにそれぞれ対応する個々のデータ記憶領域に記憶していることを特徴とする請求項1に記載のメモリカード。
  8. 前記コントローラは、前記不揮発性メモリに記憶されている前記第1の管理情報及び前記第2の管理情報を参照することによって揮発性メモリ上にアドレス変換情報を作成することを特徴とする請求項に記載のメモリカード。
JP2004183769A 2004-06-22 2004-06-22 メモリカード Expired - Fee Related JP4751037B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2004183769A JP4751037B2 (ja) 2004-06-22 2004-06-22 メモリカード
US11/156,585 US7245539B2 (en) 2004-06-22 2005-06-21 Memory card, semiconductor device, and method of controlling semiconductor memory
TW094120870A TWI277980B (en) 2004-06-22 2005-06-22 Memory card, semiconductor device, and method of controlling semiconductor memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004183769A JP4751037B2 (ja) 2004-06-22 2004-06-22 メモリカード

Publications (2)

Publication Number Publication Date
JP2006011533A JP2006011533A (ja) 2006-01-12
JP4751037B2 true JP4751037B2 (ja) 2011-08-17

Family

ID=35480405

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004183769A Expired - Fee Related JP4751037B2 (ja) 2004-06-22 2004-06-22 メモリカード

Country Status (3)

Country Link
US (1) US7245539B2 (ja)
JP (1) JP4751037B2 (ja)
TW (1) TWI277980B (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3892851B2 (ja) * 2004-02-04 2007-03-14 株式会社東芝 メモリカード及び半導体装置
JP2007272635A (ja) 2006-03-31 2007-10-18 Toshiba Corp メモリシステム及びコントローラ
JP2008009527A (ja) * 2006-06-27 2008-01-17 Toshiba Corp メモリシステム
US20080005449A1 (en) * 2006-07-03 2008-01-03 Phison Electronics Corp. Generalized flash memory and method thereof
US9885739B2 (en) 2006-12-29 2018-02-06 Electro Industries/Gauge Tech Intelligent electronic device capable of operating as a USB master device and a USB slave device
US9063181B2 (en) * 2006-12-29 2015-06-23 Electro Industries/Gauge Tech Memory management for an intelligent electronic device
USD712289S1 (en) 2009-12-01 2014-09-02 Electro Industries/Gauge Tech Electronic meter
JP2012203863A (ja) * 2011-03-28 2012-10-22 Toshiba Corp メモリシステム
US9927470B2 (en) 2014-05-22 2018-03-27 Electro Industries/Gauge Tech Intelligent electronic device having a memory structure for preventing data loss upon power loss
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US10545687B1 (en) * 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
USD939988S1 (en) 2019-09-26 2022-01-04 Electro Industries/Gauge Tech Electronic power meter

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63137341A (ja) * 1986-11-28 1988-06-09 Fujitsu Ltd メモリデ−タ転送装置
JP3105092B2 (ja) * 1992-10-06 2000-10-30 株式会社東芝 半導体メモリ装置
JP3706167B2 (ja) * 1995-02-16 2005-10-12 株式会社ルネサステクノロジ 半導体ディスク装置
JP3604466B2 (ja) * 1995-09-13 2004-12-22 株式会社ルネサステクノロジ フラッシュディスクカード
US6076137A (en) 1997-12-11 2000-06-13 Lexar Media, Inc. Method and apparatus for storing location identification information within non-volatile memory devices
JP2000067574A (ja) * 1998-08-21 2000-03-03 Mitsubishi Electric Corp 半導体記憶装置
JP2000122935A (ja) * 1998-10-20 2000-04-28 Sanyo Electric Co Ltd 不揮発性メモリのアドレス変換装置
JP4250250B2 (ja) 1999-03-31 2009-04-08 株式会社東芝 メモリ管理装置
JP2001142774A (ja) * 1999-11-11 2001-05-25 Toshiba Corp メモリカード及び同カードに適用されるアドレス変換方法
US6377500B1 (en) 1999-11-11 2002-04-23 Kabushiki Kaisha Toshiba Memory system with a non-volatile memory, having address translating function
JP2004038237A (ja) * 2002-06-28 2004-02-05 Seiko Epson Corp 情報処理装置およびプログラム
JP3892851B2 (ja) 2004-02-04 2007-03-14 株式会社東芝 メモリカード及び半導体装置

Also Published As

Publication number Publication date
US20050281105A1 (en) 2005-12-22
TWI277980B (en) 2007-04-01
US7245539B2 (en) 2007-07-17
TW200617972A (en) 2006-06-01
JP2006011533A (ja) 2006-01-12

Similar Documents

Publication Publication Date Title
JP3892851B2 (ja) メモリカード及び半導体装置
JP4828816B2 (ja) メモリカード、半導体装置、及びメモリカードの制御方法
KR100687151B1 (ko) 메모리 카드, 반도체 장치, 및 반도체 메모리의 제어 방법
JP4406339B2 (ja) コントローラ、メモリカード及びその制御方法
JP3708047B2 (ja) フラッシュメモリの管理方法
TWI454906B (zh) 資料讀取方法、快閃記憶體控制器與儲存系統
US7404031B2 (en) Memory card, nonvolatile semiconductor memory, and method of controlling semiconductor memory
US8386699B2 (en) Method for giving program commands to flash memory for writing data according to a sequence, and controller and storage system using the same
US7245539B2 (en) Memory card, semiconductor device, and method of controlling semiconductor memory
JP5364807B2 (ja) メモリコントローラ及び不揮発性記憶装置
JPWO2005083573A1 (ja) 半導体メモリ装置
JP4843222B2 (ja) 半導体記憶装置の制御方法、メモリカード、及びホスト機器
KR100757128B1 (ko) 플래시 메모리를 이용한 메모리 카드 및 그 제어 방법
JP4256307B2 (ja) メモリカード
KR101369408B1 (ko) 스토리지 시스템 및 이의 데이터 전송 방법
JP2007233838A (ja) メモリシステムの制御方法
JP4498341B2 (ja) メモリシステム
JP2009099112A (ja) メモリシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061002

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100412

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101005

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101206

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110426

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110520

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

Free format text: PAYMENT UNTIL: 20140527

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees