JP4970078B2 - 不揮発性メモリシステム - Google Patents

不揮発性メモリシステム Download PDF

Info

Publication number
JP4970078B2
JP4970078B2 JP2007040408A JP2007040408A JP4970078B2 JP 4970078 B2 JP4970078 B2 JP 4970078B2 JP 2007040408 A JP2007040408 A JP 2007040408A JP 2007040408 A JP2007040408 A JP 2007040408A JP 4970078 B2 JP4970078 B2 JP 4970078B2
Authority
JP
Japan
Prior art keywords
sector
card
data
host
command
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
JP2007040408A
Other languages
English (en)
Other versions
JP2008204222A (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 JP2007040408A priority Critical patent/JP4970078B2/ja
Priority to US12/034,306 priority patent/US20080201553A1/en
Publication of JP2008204222A publication Critical patent/JP2008204222A/ja
Application granted granted Critical
Publication of JP4970078B2 publication Critical patent/JP4970078B2/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/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
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

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)
  • Memory System (AREA)

Description

この発明は、電気的書き換え可能な不揮発性メモリセルを用いて構成される不揮発性メモリシステムに係り、特にメモリカード用途に適したメモリシステムに関する。
電気的書き換え可能な不揮発性半導体メモリ(EEPROM)の一つとして、NAND型フラッシュメモリが知られている。NAND型フラッシュメモリは、単位セル面積がNOR型に比べて小さく、大容量化が容易である。また、セル単位での読み出し/書き込み速度はNOR型に比べると遅いが、セルアレイとページバッファとの間で同時に読み出し/書き込みが行われるセル範囲(物理的ページ長)を大きくすることで、実質的に高速の読み出し/書き込みが可能である。
この様な特長を活かして、NAND型フラッシュメモリは、例えばディジタルカメラ等に適用されるメモリカード等をはじめとする各種記録メディアとして使用されている。ディジタルカメラ用メモリカードは、2値データ記憶を行うメモリチップのみを搭載したMB単位の容量を持つ世代から、最近は多値データ記憶を行うメモリチップと共にメモリコントローラを搭載した、GB単位の容量を持つ世代へと進化している。
NAND型フラッシュメモリは、ワード線方向に並ぶ複数のNANDセルユニット(NANDストリング)の集合として定義されるブロックをデータ消去単位とする。従来のメモリカードでは、ホストが論理アドレス/物理アドレス変換テーブルを持って、物理アドレスベースでメモリの読み出し/書き込み/消去の制御を行っている(例えば、特許文献1参照)。
特開2006−195565号公報
この発明は、機能や構成をホストとの関係で柔軟に選択可能とした不揮発性メモリシステムを提供することを目的とする。
この発明の一態様による不揮発性メモリシステムは、不揮発性メモリと、この不揮発性メモリの読み出し及び書き込みを制御するメモリコントローラとを備えた不揮発性メモリシステムにおいて、前記不揮発性メモリシステムは、前記メモリコントローラ内に、ホストから供給される論理アドレスと前記不揮発性メモリの物理アドレスとの対応関係を示すアドレス変換テーブルを持って論理アドレスに従ってアクセス制御されるものである。前記メモリコントローラは、前記不揮発性メモリセルの電源投入後にセクタの数としての第1の初期値を設定し、前記第1の初期値が設定されている間は、前記ホストからの要求に従い前記不揮発性メモリから前記第1の初期値のセクタの数のデータを読み出す。また、前記メモリコントローラは、前記ホストからのコマンドに従い、前記第1の初期値から前記第1の初期値とは異なる第2の値への切り替えを行い、前記ホストからの新たなコマンドにより前記第2の値が変更されない限り、前記第2の値をセクタの数として維持する。前記第2の値への切り替えの後、前記メモリコントローラは、前記第2の値が維持されている限り、前記ホストからの要求に従い、前記不揮発性メモリから前記第2の値のセクタの数のデータを読み出す。
この発明によると、機能や構成をホストとの関係で柔軟に選択可能とした不揮発性メモリシステムを提供することができる。
以下、図面を参照して、この発明の実施の形態を説明する。
1.システム概要
図1は、実施の形態による不揮発性メモリシステムであるメモリカード20の構成を示す。このメモリカード20は、NAND型フラッシュメモリチップ21とその読み出し/書き込みを制御するメモリコントローラ22によりモジュールを構成する。
フラッシュメモリチップ21は、複数のメモリチップの場合もある。図1では二つのメモリチップchip1,chip2を示しているが、その場合も一つのメモリコントローラ22で制御される。
メモリコントローラ22は、メモリチップ21との間でデータ転送を行うためのNANDフラッシュインタフェース23、ホストデバイスとの間でデータ転送を行うためのホストインタフェース25、読み出し/書き込みデータ等を一時保持するバッファRAM26、データ転送制御の他メモリカード全体の動作制御を行うMPU24、NAND型フラッシュメモリ21内のファームウェア(FW)の読み出し/書き込みのシーケンス制御等に用いられるハードウェアシーケンサ27を有する1チップコントローラである。
メモリカードに電源が投入されると、フラッシュメモリ21内に格納されているファームウェア(制御プログラム)を自動的に読み出す初期化動作(パワーオン・イニシャルセットアップ動作)が行われ、これがデータレジスタ(バッファRAM)26に転送される。この読み出し制御は、ハードウェアシーケンサ27により行われる。
バッファRAM26上にロードされたファームウェアにより、MPU24は、各種テーブルをRAM26上に作成したり、ホストからのコマンドを受けて、フラッシュメモリ21をアクセスしたり、データ転送制御を行う。
なおメモリチップ21とコントローラチップ22とが別チップであることは、このメモリシステムにとって本質的ではない。図2は、図1のメモリカード20を、メモリチップ21とコントローラ22のロジックコントロールを渾然一体として見た機能ブロック構成を示している。また図3はそのメモリコア部のセルアレイ構成を示している。
メモリセルアレイ1は、図3に示すように、複数の電気的書き換え可能な複数の不揮発性メモリセル(図の例では32個のメモリセル)M0−M31が直列接続されたNANDセルユニット(NANDストリング)NUを配列して構成される。
NANDセルユニットNUの一端は、選択ゲートトランジスタS1を介してビット線BLo,BLeに、他端は選択ゲートトランジスタS2を介して共通ソース線CELSRCに接続される。メモリセルM0−M31の制御ゲートはそれぞれワード線WL0−WL31に接続され、選択ゲートトランジスタS1,S2のゲートは選択ゲート線SGD,SGSに接続される。
ワード線方向に配列されるNANDセルユニットの集合が、データ消去の最小単位となるブロック(消去ブロック)を構成し、図示のようにビット線の方向に複数のブロックBLK0−BLKn−1が配置される。
ビット線BLe,BLoの一端側に、セルデータの読み出し及び書き込みに供されるセンスアンプ回路3が配置され、ワード線の一端側にワード線及び選択ゲート線の選択駆動を行うロウデコーダ2が配置される。図では、隣接する偶数番ビット線BLeと奇数番ビット線BLoがビット線選択回路により選択的にセンスアンプ回路3の各センスアンプSAに接続される場合を示している。
コマンド、アドレス及びデータは、入力制御回路13を介して入力され、チップイネーブル信号/CE、書き込みイネーブル信号/WE、読み出しイネーブル信号/REその他の外部制御信号は、論理回路14に入力され、タイミング制御に用いられる。コマンドは、コマンドレジスタ8でデコードされる。
制御回路6は、データの転送制御及び書き込み/消去/読み出しのシーケンス制御を行う。ステータスレジスタ11は、Ready/Busy端子にメモリカード20のReady/Busy状態を出力する。これとは別に、メモリ20の状態(Pass/Fail,Ready/Busy等)をI/Oポートを介してホストに知らせるステータスレジスタ12が用意されている。
アドレスは、アドレスレジスタ5を介して、ロウデコーダ(プリロウデコーダ2aとメインロウデコーダ2b)2やカラムデコーダ4に転送される。書き込みデータは、I/O制御回路7を介し、コントロール回路6を介してセンスアンプ回路3(センスアンプ3aとデータレジスタ3b)にロードされ、読み出しデータはコントロール回路6及び/O制御回路7を介して、外部に出力される。
各動作モードに応じて必要とされる高電圧を発生するために、高電圧発生回路10が設けられている。高電圧発生回路10は、制御回路6から与えられる指令に基づいて所定の高電圧を発生する。
従来のxD-picture cardTM(以下、単にxDPTMカードという)では、512MBレベルの2値NANDフラッシュメモリを用いた場合(これを“G1カード”或いは“G1モード”という)、G1カードをエミュレートして、1乃至2GBレベルの多値NANDフラッシュメモリを用いた場合(これを“G2カード”或いは“G2モード”という)共に、ホストがフラッシュメモリの物理アドレスと論理アドレスの対応関係テーブル(物理/論理アドレス変換テーブル)を持って、カードのフラッシュメモリのアドレス管理を行う。これを物理ブロックアクセス(Phyisical Block Access:PBA)方式という。
なお、G1カードに使用されるNANDフラッシュメモリの消去ブロックのサイズは、例えば16kBであるのに対し、G2カードに用いられるNANDフラッシュメモリのそれは、例えば256kBである。この様に搭載されるNANDフラッシュメモリの消去ブロックサイズは、G1カードよりG2カードの方が大きい。G2カードは、内部にコントローラを搭載し、このコントローラが要求に応じてNANDフラッシュメモリを制御する。具体的には、G2カードのコントローラは、消去ブロックサイズが小さいことを前提としたアドレスを、消去ブロックが大きい実際にNANDフラッシュメモリのアドレスに変換する。このアドレス変換により、G2カードは、G1カードであることを想定してアクセスするホストに対してG1カードとの互換性を保っている。
これに対してこの実施の形態の場合、容量が2GB超の多値NANDフラッシュメモリを用いるが、この場合、形状やピン配置をG2カードと同じにして、G2カードまでのPBA方式ではなく、論理ブロックアクセス(Logical Block Access:LBA)方式を採用する。即ち、物理/論理アドレス変換テーブルは、カード側のメモリコントローラが持ち、ホストはフラッシュメモリの物理アドレス管理を行わず、論理アドレスベースでのみアクセスする。以下、このメモリカードを“G3カード”或いは“G3モード”という。
図4は、カード側での論理/物理アドレス変換テーブルを示しており、これを用いてLBA方式のアドレス管理法を具体的に説明する。図4の左側には、物理ブロックアドレス(PBA)A,B,C,Dにそれぞれ、論理ブロックアドレス(LBA)a,b,c,dのデータDATA1),2),3),4)が記憶されている状態の変換テーブルを模式的に示している。
この状態から、論理アドレスbに新たなデータDATA2)’を書き込む場合を考える。ホストは、論理アドレスbのデータがPBA=Bに書かれていることは関知せず、単に論理アドレスbとデータDATA2)’を送る。このときカード側では、自動的に空きブロックを探して、例えば物理アドレスPBA=EにこのデータDATA2)’を、論理アドレスLBA=bのデータとして書き込む。元のLBA=bのデータはその後消去すればよい。
この様にして、書き込み毎にカード側の物理/論理変換テーブルは書き換えられ、以後これに基づいて読み出し/書き込みのアクセス制御がなされることになる。
この実施の形態のメモリカード20のシステム上重要なことは、ホスト機器に対応して、機能や構成が柔軟に選択可能とされていることである。この実施の形態のG3カードのシステム概要をまとめると、次のようになる。
(1)ホストのタイプを知って、カードが自らの動作方法を決定することができ、またホストは、カードの構成や機能(カード容量、追加16Byteの使用/不使用、ECC機能の使用/不使用、機能サービス・セクタカウントその他)を選択的に設定することができる。
(2)インタフェース・プロトコルは、通常のxDPTMカードと同じである。
(3)搭載するメモリチップは、例えば56nmルールによる多値NANDフラッシュメモリである。
(4)アクセス方式は、前述したLBA方式である。カード容量は、ブロック数に応じて理論的に4GB〜2TBまで拡張できる。
(5)最小データ転送単位をセクタ(例えば512MB)として、読み出し/書き込みについて、機能選択の結果として、1コマンドシーケンスでセクタカウントと論理的セクタアドレス(初期値)を入力してデータ転送ユニットの大きさ(1回の連続アクセスの範囲)を指定することができる。
この様な機能選択を行わなければ、1コマンドシーケンスによるアクセス範囲が1セクタに限られるアクセスモードとなる。
(6)セクタマルチプレクスの採用により、データ転送ユニットのサイズは、512MB〜4096MBの範囲で可変できる。
2.インタフェース
図5は、このメモリカードに割り当てられたピンの番号、名称及び機能を示している。前述のようにこれは、現状のxDPTMカードのそれと同じである。
入力バッファはシュミット・トリガタイプである。ピン番号2のReady/Busyは、ホスト側で10k〜100kΩの抵抗でVccにプルアップされる。
3.メモリカード機能
メモリカード機能とその適用プロトコルを、図6に示す。
ここで、CMD(xxh)は、xxhのコマンド入力サイクルを示す。“h”は、16進数を示すものであり、実際には8ビットの信号が8ビットのI/Oピン(D0〜D7)にパラレルに与えられる。ADDn(xxh)は、xxhのアドレス入力サイクルを示し、“n”は、アドレス入力サイクル中のどのサイクルかを示している。Din*xxは、データ入力サイクルを示し、“xx”はデータ入力のサイクル数を示している。Dout*xxは、データ出力サイクルを示し、“xx”はデータ出力のサイクル数を示している。B2Rは、ビジー状態からレディ状態への待機を示している。
図6に示すように、種々のカード機能即ち、IDデータを読み出す機能である“ID read”コマンド、G3モードを有効に設定する機能である“G3 mode enable”コマンド、G3カードの具体的なデータ構成や容量を取得し、或いは設定する機能である“Card confiration”コマンド、その他が定められている。これら各機能についての詳細は後述する。
図7はコマンド入力サイクルを示している。コマンドラッチイネーブルCLEが“H”の期間に、コマンドCMD(xxh)を書き込みイネーブル/WEと同期して入力すると、これが/WEが“H”に遷移するタイミングでラッチされる。
図8はアドレス入力サイクルを示している。アドレスラッチイネーブルALEが“H”の期間にアドレスを書き込みイネーブル/WEと同期して入力すると、これが/WEが“H”に遷移するタイミングでラッチされる。
図9はデータ入力サイクルを示している。CLE,ALE“L”の期間に、書き込みイネーブル/WEに同期してデータDinを入力すると、これが/WEの“H”への遷移のタイミングでラッチされる。
図10はデータ出力サイクルを示している。読み出しイネーブル/REを入力すると、その“H”レベルへの遷移タイミングでフラッシュメモリ内に保持されている読み出しデータが出力される。
図11は、機能とコマンドを3つのコマンド階層に分けて示している。
G3モードの設定に必須のコマンドは、第1コマンド階層では、“G3 mode enable”、“ID read”、“Status read”である。第2コマンド階層においては、“Card configuration−Card density”、第3コマンド階層では、“Read sectors”及び“Write sectors”である。
4.パワーオン・シーケンス
図12Aは、G3カードのパワーオンシーケンスを示しており、図12Bはそのタイミング波形を示している。電源投入直後の初期化動作では、フラッシュメモリ21の読み出し/書き込み制御に必要なフラッシュメモリ21内に保持されたファームウェアが自動的にメモリコントローラ22のレジスタに読み出される。
G3カードの場合、図12Bに示すように、パワーオンの初期化動作の後、G3モードのレディ状態になる。このときID readコマンドを実行してG3カードであることを確認した後、G3 mode enableコマンドを入力し、一定のビジー期間(R/B=“L”)の後、確認用データDoutを読み出すことにより、G3モードがイネーブルになる。IDリードでG3カードでないことが分かれば、そのまま電源オフとする。
5.IDデータ読み出し
図13は、IDデータ読み出しのタイミング図である。CLE=“H”の期間に書き込みイネーブル/WEと同期してコマンドCMDを入力し、その後ALE=“H”の期間に書き込みイネーブル/WEと同期してアドレス00hを入力する。その後、読み出しイネーブル/REをトグルさせると、G2カードとG3カードの識別等を行うIDデータData0,Data1,…が出力される。
図14は、コマンドと共に3つのID読み出しモードID read(1)〜(3)を示している。コマンド<90h>のID read(1)では、デバイスコード(Data1)として常に、4Gbyteカード容量であることを出力するようになっている。即ち、IDデータでは、カード容量は特定しない。実際のカード容量は、後述する“Card configuration”において、512Byte/sectorのトータルセクタ数により決まる。
6.G3モードイネーブル
G3カードは、G2カードスロットにも接続可能に構成されている。そのため、ホストが誤ってG2カードプロトコルに基づくアクセスをすることを防止するために、“G3 mode enable”コマンドが用意されている。G3カードは、このコマンドが発行されるまでは、IDデータ読み出し、リセット、ステータス読み出しの場合を除き、ホストに応答しない。
“G3モードイネーブル”コマンドのシーケンスでは、コマンドを送信後ホストは、G3モードが設定されたか否かの確認読み出しを行う必要がある。16Byteのデータ読み出しを行い、その最後の2Byteが“AAh”,“55h”であることで、G3モードがイネーブルになったことが確認されるようになっている。
もしカードが、容量2GB未満でかつG2モードとG3モードをサポートしている場合、パワーオン直後は、G2モードにある。これも、G3モードに設定するには、“G3モードイネーブル”コマンドの実行を必要とする。
7.Card configuration
G3カードのアクセス開始に先立って、ホストはカードの構成(カード容量、追加16Byteの使用/不使用、ECC機能の使用/不使用、機能サービス・セクタカウント等)を設定するための“Card configuration”コマンドを実行する。これは、(1)有効機能を含むカード情報を取得する“Card configuration”取得の機能と、(2)取得情報に基づいてホストが使用する機能を設定する“Card configuration”セットアップの機能とを有する。
“Card configuration”取得コマンドシーケンスでは、16Byteの取得データDOUTにより、ホストは、512Byte/sectorのトータルセクタ数と共にカード容量を知ることができる。
“Card configuration”セットアップコマンドシーケンスでは、ホストは、16Byteのうち、Byte5をG3モードの転送データサイズ等を決定するものとして用いる。即ち、上述した“Card configuration”取得コマンドシーケンスで取得した16ByteデータDOUTを必要に応じて書き換えた16ByteデータDin、がセットアップデータとしてカードに送られる。これにより、G3カードはホストとの関係で構成や機能が選択的に設定されることになる。
図15は、“Card configuration”の16Byteの内容を示している。即ち“Card configuration”は、G3カードの転送データ構成、ECC機能やCRC16機能のオンオフ、“Function service&sector count”機能の設定等、カードの内部構成を定めている。
以下各バイトの内容を具体的に説明する。
Byte0−3は、アドレス可能な最大論理セクタアドレスであり、Byte0がセクタアドレスSA0−7,Byte1がセクタアドレスSA8−15,Byte2がセクタアドレスSA16−23,Byte3がセクタアドレスSA24−31である。
Byte4,6の最下位ビットb0はカードタイプを示す。b0=0がG2モード、b0=1がG3モードである。
Byte4,6のビットb1は、G3モードのみ有効であり、追加16ビットの使用の有無を示す。ECC機能を有効にするためには、このビットをオンにする必要がある。
Byte4,6のビットb2は、G3モードのみ有効であり、機能サービス&セクタカウントビットを示し、これにより種々の機能が有効になる。これがオフの場合、転送データサイズは512(528)Byteであり、セクタカウントは常に1である。また、ECC機能やホストのキュッシュ書き込みもディセーブルになる。
Byte4,6のビットb3は、G3モードのみ有効であり、先の追加16Byte領域を利用したECC機能を示す。書き込みの場合、ECC機能を利用して、転送データのエラーチェックを行い、ステータス読み出しを通して転送エラーの有無を知ることができる。次のCRC16が用いられる場合は、データ転送チェックはCRC16に基づく。
Byte4,6のビットb4は、G3モードのみ有効であり、先の追加16Byte領域を利用したCRC16の機能を示す。読み出し及び書き込みの場合、ホストはCRC16コードにより転送データチェックを行う。書き込み時、ステータス読み出しを通して転送エラーを知ることができ、必要ならデータを再送することができる。
Byte4,6のビットb5は、G3モードのみ有効であり、高パワーモード(Hi−power mode)を示す。例えば、セクタ書き込みで高速性能を実現するためには、大きな消費電力を必要とする。G3カードの最大消費電流は例えば120mAであり、通常の動作速度では例えば消費電流40mA以下の通常パワーモードを選択し、高速性能のためには大きな消費電流の高パワーモードを選択することが可能となっている。
Byte4,6のビットb6は、G3モードのみ有効であり、高速モード(Hi−speed mode)を示す。即ち、b6=“1”は、ホストが20nsサイクルでG3カードをアクセスできることを示し、b6=“0”は、30ns或いはそれ以上のアクセスサイクルを必要とすることを示す。
Byte5,7のビットb0は、特殊コマンドにより読み出される128ビットのユニークIDである。
Byte5,7のビットb1−b3は、G3モードでの転送データサイズを示す。即ち、b1=“1”が転送データサイズ512(528)Byte、b2=“1”が転送データサイズ2048(2112)Byte、b3=“1”が転送データサイズ4096(4224)Byteを示す。
この転送データサイズは、“Function service&sector count”コマンドの実行により変更可能である。
Byte5,7のビットb4は、G3モードで“アドレスシフト”の機能を有効にするものである。この機能を使うと、G3モードの中でセクタアドレスを自動的にシフトすることができる。その詳細は後の“セクタアドレス”の項で説明するが、この機能を使うと、カード容量は8GBに制限される。
Byte5,7のビットb5は、G3モードでの書き込みプロテクトの機能を有効にするものである。この機能を使うと、セクタ書き込みが禁止されて、ステータスは常にパスとなり、セクタ読み出しのみが可能になる。
Byte5,7のビットb6は、G3モードでの“ホストキャッシュ書き込み”の機能を有効にするものである。これは、“Function service&sector count”コマンドの実行と共に設定される。具体的に、このビットb6の設定により、転送データを、内部的オーバーヘッドを最小化するべく、内部キャッシュブロックに一時転送することが可能になる。
Byte5,7のビットb7は、G3モードでの自動セクタコピーの機能を有効にするものである。
Byte8は、読み出し時の内部論理ブロックサイズを示す。
Byte9−10は、ホストのタイプ(DSCやR/W)やアクセスパターンのタイプを知らせる機能を有し、カード側がこれに基づいて最適動作方法を決めることができる。G3カードはこの機能により、ホストとの柔軟な対応が可能、即ちカード側が最適の動作方法を決定できるようになっている。
8.Function service&sector count
“機能サービス・セクタカウント”コマンドを用いると、種々の機能サービスを有効にすることができる。図16に示すように、コマンドに続くアドレスの第2サイクル“ADD1”でモードや転送データサイズを決定する。例えば転送データサイズを、512(または528)Byte、2048(または2112)Byte、4096(または4224)Byte、と種々選択することができる。
このコマンドを用いない限り、転送データサイズは、512(または528)Byteに固定され、セクタカウントは1である。
最後の2サイクル“ADD2−3”をセクタカウントとし、図17に示すように、ADD2(8Byte),ADD3(8Byte)により、セクタカウントを設定することができる。セクタカウントとは、転送しようとするデータユニットに含まれるセクタ数である。パワーオン後のデフォルトはセクタカウント=1である。一旦設定されたセクタカウントは、次のいずれかに該当するまで保持される。
(a)別のセクタカウントが入力される、
(b)全てのセクタデータの読み出し/書き込みが終わる、
(c)リセットコマンド<FBh>が入力される、
(d)パワーオンリセットコマンド<FDh>が入力される。
9.セクタアドレス
セクタアドレスは、固定4サイクルの論理的アドレスである。セクタサイズは常に、512Byteであり、アドレス範囲は理論的に2TByteまで設定できる。
読み出し/書き込み時は、転送データサイズによらず、スタートセクタアドレスが規定される。しかし、より高速性能を実現するためには、後に示すように、スタートセクタアドレスに制限が加えられる。即ち、スタートセクタアドレスをフラッシュメモリの内部ページ境界に合わせるという制限が必要になる。
セクタアドレスは、セクタ読み出しコマンド<00h>またはセクタ書き込みコマンド<80h>に続いて入力される。
図18は、4サイクルのセクタアドレスタイミングを示している。
図19(a),(b)は、転送データサイズとの関係で、各サイクルのセクタアドレスビットのデータピン割り付けを示している。転送データサイズが512(528)Byteの場合、第1セクタアドレスサイクルの8ビットSA0−SA7がピンD0−D7に割り当てられる。転送データサイズが2048(2112)Byteの場合、第1セクタアドレスサイクルの6ビットSA2−SA7がピンD2−D7に割り当てられ、下位2ビットSA0及びSA1は例えば“0”固定とされる。転送データサイズが4096(4223)Byteの場合、第1セクタアドレスサイクルの5ビットSA3−SA7がピンD3−D7に割り当てられ、下位3ビットSA0−SA2は例えば“0”固定とされる。
Byte7のビットb4により“アドレスシフト”をイネーブルにすることができる。このアドレスシフトによると、セクタアドレスは、図20(a)〜(d)のようにシフトされる。即ち、第1サイクル(ホスト)は、図20(a)のようにホオール“0”となる。図20(b)のように、第2サイクル(ホスト)は、図19(a)と同様、カード側の第1サイクルとなる。更に、図20(c)のように、ホスト側の第3及び第4サイクルは、カード側でそれぞれ第2及び第3サイクルとなる。図20(d)に示すように、第4サイクル(カード)はオール“0”となる。
言い換えれば、ホスト側で4サイクルのセクタアドレスが実質的に、カード内部では3サイクルのセクタアドレスとなる。このアドレスシフトの機能により、カード容量が8GBに制限されるが、より高速性能が得られることになる。
10.セクタ読み出し
10.1 セクタ読み出し手順
G3モードでのセクタ読み出しは、論理的セクタアドレスに従って行われる。アドレス可能範囲は、トータルのアドレス可能なセクタ数を規定する“Card configuration”コマンドシーケンスにより決まる。
図21に示すように、セクタ読み出し開始前にホストは、“Card configuration”コマンドを実行する。そこで“Function service&sector count”の機能を使用するものとした場合、その“Function service&sector count”コマンドを実行して、セクタ読み出しのためのいくつかの機能が設定される。
コマンドに続いて4サイクルのセクタアドレスを入力した後、一定のビジー期間をおいて、セクタアドレスで規定されるデータ量の出力データを得ることができる。
“Function service&sector count”を使用しない場合は、セクタカウント=1で、転送データサイズ512Byte(または528Byte)固定の基本アクセスモードのみ有効である。
コマンドと共に、セクタアドレスを入力してセクタ読み出しが始まるが、マルチプルセクタカウントの場合及びストリーム方式読み出しの場合は、第2サイクル後のコマンド<00h>とセクタアドレスの入力は必要としない。
転送データエラーのチェックは、追加16Byte領域のECCコード或いはCRC16コードを用いて行われる。
10.2 セクタ読み出しのモード設定
図22(a)(b)は、セクタ読み出しにおいて、前述した“Card configuration”と“Function service&sector count”により規定される複数種のモードを示している。
“Function service&sector count”コマンドを使用しない場合は、転送データサイズは常に、512(528)Byteとなる。この場合セクタカウントは設定されないから、G3カードはセクタカウント=1で動作することになる。転送データサイズが512Byteか528Byteかは、“Card configuration”により追加16Byte領域を用いるか否かによる。追加16Byteは、ECCコード領域として用いられ、これを用いない場合は追加16Byte領域はオール“FF”とされる。
“Function service&sector count”によって、いつでも転送データサイズの変更設定が可能である。また、データ転送モードとして、通常のマルチプルセクタカウントによるモードとストリームモードの選択が可能である。両者の相違は、内部的プリローディングの活性化にある。即ち通常モードでは、セクタカウントに基づいてカード内でのプリロード(フラッシュメモリからの読み出し)が制御されるのに対し、ストリームモードでは内部プリロードがセクタカウントによらず、自動的、連続的に行われる。
セクタ読み出しにおいて、ホストはデータ脱落に気をつける必要がある。G3モードでは、追加16Byteの領域でECCコードを生成して、エラーチェック訂正を行う。即ちホストは、ECC計算を行い、これを転送されたECCコードと比較する。
訂正不可能なエラーを検出した場合は、そのセクタ読み出し動作を一旦終了し、改めてセクタカウント値とセクタアドレスを入力してセクタ読み出しを行う。或いは、同じ転送データを現在のセクタ読み出し機能を終了させることなく、再読み出しすることを選択することもできる。
データが訂正可能であれば、ホストが読み出しデータを訂正する。但し、ECC機能は制限的であり、3ビット或いはそれ以上のエラー検出訂正まではできない。この点を考慮して、CRC16が用意されている。即ち、CRC16機能を選択することにより、ホストは図23の表に従って、転送データのパス/フェイルを判定することができる。
10.3 セクタ読み出しにおけるデータフォーマット
ホストは転送データサイズを決めることができる。各転送データサイズには、以下に示すように、選択可能なセクタアドレスに制限がある。
図24は、転送データサイズが512(528)Byteの場合であり、図25は、シーケンシャルな4セクタによる転送データサイズ2048(2112)Byteの場合である。図26は、シーケンシャルな8セクタによる転送データサイズ4096(4224)Byteの場合である。
セクタ当たり512Byteに加えられる追加16バイトは、前述のように“Card configuration”により設定される。
10.4 追加16Byte領域のデータフォーマット
追加16Byteのデータフォーマットは、ECCの場合、図27に示すように、520−522Byte及び525−527Byteの6ByteがECCコード領域として用いられ、それ以外はオール“FFh”とされる。
CRC16の場合は、図28に示すように、526Byteと527ByteがCRC16領域として用いられ、それ以外はオール“FFh”とされる。
10.5 セクタ読み出しプロトコル
例えば、セクタカウント(SC)=4の場合について、セクタ読み出しは、コマンドと4サイクルのセクタアドレス、<50h−add*4>を入力して、SC=4の読み出しを設定し、更にコマンドと4サイクルのセクタアドレス<00h−add*4>を入力してセクタ読み出しを指示する。これにより、SC=4対応の読み出しデータDoutが得られる。
データ転送の度に、G3カードはダミービジーを示す。ホストが、セクタカウント数を越えて読み出しを続けた場合、セクタ読み出しの終了のビジーの後にデータ読み出しを行ったとしても、この読み出しデータは例えばオール“FFh”の無効データとなる。
ホストがマルチプルセクタモードを使用しない場合は、各セクタ読み出し毎にセクタアドレス入力を必要とする。これは、マルチプルセクタモードの場合に適用しても差し支えないが、マルチプルセクタモードの場合は好ましくは、2サイクル目からコマンド−セクタアドレス<00h−add*4>の入力を省いて、連続的にセクタデータ読み出しを行う。
10.6 セクタ読み出し終了
セクタ読み出しは、通常モードでもストリーミングモードでも、リセットコマンド<FBh>により強制終了させることができる。これにより、セクタカウントは1にクリアされる。
レディ期間或いはビジー期間にチップイネーブル/CEを“H”にしても、セクタ読み出しを強制終了させることはできない。これは従来のxDPTMカードと違う点である。
10.7 セクタ読み出しとステータス読み出しの関係
セクタ読み出し動作の間にホストは、ステータス読み出しコマンド<70h>を発行することができる。この場合図29に示すように、ホストはステータス読み出し後、読み出しイネーブル/REを出して読み出しデータ出力動作を開始する前に、コマンド<00h>を発行しなければならない。
10.8 セクタ読み出しとバッファR/Wの関係
セクタ読み出し動作の間にホストは、バッファリード/ライトコマンド<71h>を発行することができる(その詳細は後述する)。この場合も図30に示すように、読み出しイネーブル/REを出して読み出しデータ出力動作を開始する前に、コマンド<00h>を発行しなければならない。
図31は、セクタ読み出しのタイミング波形を示している。4サイクルのセクタアドレスのうち、第2サイクルSA8−15が実質のセクタアドレスであり、後半2サイクルSA16−23,SA24−31はセクタカウントである。
11.セクタ書き込み
11.1 セクタ書き込み手順
図32は、セクタ書き込みの手順を示している。セクタ書き込みは、論理セクタアドレスに基づいて行われる。アドレス可能範囲は、“G3 mode enable”に続いて行われる“Card configuration”コマンドの実行により、全アクセス可能なセクタとして定められる。“Card configuration”の中で、“Function service&sector count”を利用することを選択した場合には、セクタ書き込みの開始前にホストは、“Function service&sector count”コマンドを実行することが必要である。
“Function service&sector count”では複数の機能が設定可能である。但し、“Function service&sector count”を利用しない場合も、基本的なアクセスは可能で、セクタカウント=1で、転送データサイズ512(528)Byte固定の書き込みができる。
コマンド<80h>を入力し、セクタアドレスを入力し、書き込みデータを入力してセクタ書き込みが始まる。マルチプルセクタカウントの場合及びストリームモードの場合は、第2サイクル後のコマンド<80h>とセクタアドレスの入力は必要としない。
ホストは、転送後のステータス読み出し<70h>を通して、転送データエラーのチェックを行う。エラーが発生していると、ステータス読み出し値のビットb2が“1”になり、これがセクタ書き込みの間保持される。セクタ書き込みは、ステータス読み出しに拘わらず、続行することができる。
11.2 セクタ書き込みのモード設定
図33(a)(b)は、セクタ書き込みにおいて、前述した“Card configuration”と“Function service&sector count”により規定される複数種のモードを示している。
“Function service&sector count”コマンドを使用しない場合、転送データサイズは常に、512(528)Byteとなる。この場合セクタカウントは設定されないから、G3カードはセクタカウント=1で動作することになる。転送データサイズが512Byteか528Byteかは、“Card configuration”により追加16Byteを用いるか否かによる。追加16Byteは、ECCに用いられ、これを用いない場合は追加16Byte領域はオール“FF”とされる。
“Function service&sector count”において、転送データサイズが選択可能であり、かつこれがいつでも変更可能である。転送データモードは、通常モード(マルチプルセクタカウント)とストリーミングモードのいずれかを選択できる。
書き込みのデータ転送サイズを種々設定できることから、従来のような書き込みブロックサイズ固定のメモリカードのオーバーヘッドが解消する。即ち、従来のメモリカードでは、更新すべきデータ量がたとえ小さい場合でも、大容量のブロックを消去して、そこに書き込む、という操作が必要であった。
これに対してこの実施の形態のG3カードでは、転送データサイズを選択設定することができ、しかも書き込みに先立って対応ブロックを消去しなければならないという制約もない。従って、高速書き込み性能が得られる。
ECC機能については、ホストとG3カードの間でのデータ転送エラーが検出されるようになっている。即ち、ホストからの転送データは、G3カード側で自動的にECC機能により転送エラーがチェックされる。ホストは、ステータス読み出しを通じて、転送エラーがパス(訂正可能なエラーの場合を含む)であるか、フェイル(訂正不可能なエラー)であるかを、書き込み前に知ることができる。
セクタ書き込みにおいて、ホストは転送データの脱落に気をつける必要がある。ECC機能は、3ビット以上のエラーに対応できるようには構成されていない。そこで、エラー数に拘わらずパス/フェイルを検知することができるCRC16が用意されている。“Function service&sector count”でこの機能を有効にすれば、図34の表に従って、転送データのパス/フェイルを判定することができる。
11.3 セクタ書き込みにおけるデータフォーマット
ホストは転送データサイズを決めることができる。即ち必要なら、“Card configuration”において、追加16Byteを有効にして、各セクタユニット512Byteに16Byteを付加した528Byteのセクタデータサイズとすることができる。
図35は、追加16Byteを用いない場合と用いる場合の転送データサイズ512/528Byteを示している。
図36は、同様に追加16Byteを用いない場合と用いる場合について、シーケンシャルな4セクタ書き込みの場合の転送データサイズ2048/2112Byteを示している。
図37は、同様に追加16Byteを用いない場合と用いる場合について、シーケンシャルな8セクタ書き込みの場合の転送データサイズ4096/4224Byteを示している。
11.4 追加16Byte領域のデータフォーマット
追加16Byteのデータフォーマットは、ECCの場合、CRC16の場合についてそれぞれ図38及び図39のようになる。これらはセクタ読み出しの場合の図27及び図28と同じである。
11.5 セクタ書き込みプロトコル
セクタ書き込みについては、二つのプロトコルがある。一つは、マルチプルセクタの書き込みモードの場合の推奨モードであり、2サイクル目からコマンド−セクタアドレス<80h−add*4>のセクタアドレス入力が必要なく、連続的なセクタデータ書き込みができる。
もう一つは、セクタ書き込み毎にコマンド−セクタアドレス<80h−add*4>を入力する。これは、SC=1のアクセスを行う場合の必須モードである。マルチプルセクタの書き込みモードでこのコマンド方式を用いてもよいが、好ましくはセクタアドレスを省略したモードを用いる。
マルチプルセクタ方式による書き込みにおいては、ホストは、転送データサイズで規定された全データを送ることが必要である。例えば、転送データサイズが2048Byteであり、セクタカウントが3の場合、最初の3セクタが正確にカードに書き込まれ、残りの1セクタは書き込まれない。
セクタ書き込みについて、通常モード(マルチプルセクタカウント)とストリーミングモードの補足を行う。
通常モードでは、セクタカウントと転送データサイズが“Function service&sector count”において規定される。そしてホストは、コマンド<80h>により書き込みシーケンス開始を指示する。アドレス及び書き込みデータ入力後に発行されるコマンド<15h(11h)>を受信すると、G3カードはデータ書き込みを開始する。
転送データのエラーチェックが必要な場合は、ホストは開始指示コマンド<15h(11h)>を送る前に、ステータス読み出しを行う。セクタカウントが“1”になると、ホストはコマンド<15h>に代わって<10h>を発行して、セクタ書き込みを終了する。
“Function service&sector count”を利用しない場合は、セクタカウントは常に“1”である。
ストリーミングモードは、やはり“Function service&sector count”において設定される。このモードでは、ホストは、コマンド<80h>のプロトコルを用いて書き込みを開始する。G3カードは、コマンド<15h(11h)>を受信すると書き込みを開始する。
転送データのエラーチェックが必要な場合、ホストはコマンド<15h>を送る前に、ステータス読み出しを行う。ホストがストリームモードを終了するには、コマンド<15h>に代わって<10h>を発行する。
11.6 セクタ書き込みの中断
ホストは、セクタカウントがSC=1になる前、またはストリーミング書き込みが終了する前に、コマンドによる書き込みを中断することができる。具体的には、リセットコマンド<FBh>、パワーオンリセットコマンド<FDh>、パワーダウンコマンド<FEh>等による。
G3カードはこれらのコマンドを受信すると、内部書き込み動作を中止する。
11.7 セクタ書き込み中に行われ得る他の機能
後に説明するCIS読み出し及び、バッファ読み出し/書き込みについては、セクタ書き込みを中断することなく、実行することができる。但し、CIS読み出し及びバッファ読み出し/書き込み後、セクタ書き込みを再開するには、<80h>…<10h>のコマンドシーケンスが必要である。
図40は、セクタ書き込みのタイミング図である。コマンド<80h>と<10h/15h>に挟まれた状態で4サイクルのセクタアドレスと必要な書き込みデータを転送して、書き込みが行われる。4サイクルの書き込みセクタアドレスの構造は、セクタ読み出しの場合と同様である。書き込みの間、カードはビジーを出力する。
図41は、転送データチェック動作を含むセクタ書き込みのタイミング図である。書き込みデータ入力後、コマンド<70h>により転送データのエラーチェックができる。
12.ホストキャッシュ書き込み
G3カードは、ある種のデータのランダムアクセスによる性能低下を防止するために、いくつかのキャッシュシステムを持つ。一般に、論理セクタのオーバライトは、内部データスワッピングを起こし、これは性能低下をもたらすオーバーヘッドとなる。この様な事態は例えば、FAT、ディレクトリ、ある種の画像データや動画データの更新の際のランダムアクセス時に生じる。
G3カードが採用するキャッシュシステムは、特別な論理アドレス/物理アドレス変換テーブルを用意して、内部データスワッピングを最小化するように、データ書き込みを行う。
例えば、次のようなキャッシュシステムが用意される。
(a)FATキャッシュシステム
ホストがあるデータを特別の論理アドレスに書き込みを行う場合、そのデータがキャッシュシステムにより扱われるようにする。例えば、FAT領域の論理セクタアドレスがDOSフォーマットパラメータ(後述する)を通して得られるようにする。
(b)ディレクトリキャッシュシステム
ホストがディレクトリ領域にアクセスする場合に、セクタカウントが小さくなるようにする。従ってそれ以外の場合、G3カードは論理セクタアドレスをジャンプすることになる。
殆どのランダムアクセスは、上記のアルゴリズムでカバーできる。但し、より効果的な制御を考えると、どの論理アドレスがキャッシュ領域に書かれるべきかをホストが決めるようにすることが好ましい。キャッシュシステムのためのブロック数には制限があるから、ホストは、どの論理セクタがキャッシュブロックに書かれるべきかを注意深く決めることが必要である。キャッシュブロックが既にいっぱいの場合、古いキャッシュブロックを消去すればよい。
13.ステータス読み出し(70h)
ステータス読み出しは、カードのビジー/レディ状態を監視し、書き込みのパス/フェイルを確認する、といった目的で行われる。カード状態は、コマンド<70h>を入力後、読み出しイネーブル/REのトグルによりI/Oポートに出力される。
図42は、ステータス読み出しの結果を示している。D1のエラーチェック結果は、転送データサイズ2048(または4096)Byteのなかの1セクタでもエラーがあれば、“1”(Fail)となる。追加16ByteがECC機能に用いられ、ECC機能がオンの場合、これに基づくパス/フェイルの結果がこのビットD1に出力される。ECCがパスの場合及び、訂正可能なエラーの場合に、“Pass”となる。同様に追加16ByteがCRC16機能に用いられる場合、これによるパス/フェイルが出力される。D1ビットは、次のデータ転送によりクリアされる。
D1がフェイルの場合、D0は常にフェイルとなる。
D2は、一度転送データやセクタ書き込みにエラーが発生すると、新たなセクタ書き込みが行われるまで、“1”(Fail)を示す。
G3カードが“Card configuration”により書き込みプロテクトとされている場合、パワーダウンまでD4が“1”(protected)となる。
図43は、ECC機能のオンオフとの関係で、上述のステータス読み出しによるステータスビット(D1)の状態を示している。
図44は、ステータス読み出しのACタイミングを示している。
14.CIS読み出し
G3カードは、論理アドレスベースでアクセスするため、CIS(Card Information Structute)データの読み出し法を定めておく必要がある。
CIS読み出しの目的は、(a)xDPTM物理フォーマットによりフォーマットされたカードを特定する、(b)カード供給者を特定し、DSCの特殊機能を実現する、(c)ホストとカードの接続状態を確認する、等である。CISデータはフラッシュメモリの先頭ブロックに書かれている。
図45は、CISデータフォーマットを示している。
15.バッファ読み出し/書き込み
G3カードは、ホストとカードの接続状態を速やかにチェックするために、バッファ読み出し/書き込み機能を有する。ホストが特定のコマンドと共に1Byteのデータを書き込むと、その反転データが読み出し出力されるようになっている。
図46は、この機能を実現するタイミング図を示している。例えばセクタ読み出し動作の間に、この機能を利用することができる。ホストは、コマンド<71h>と1Byteのデータ例えば“AAh”を送る。100ns程度の待ち時間の後、読み出しイネーブル/REを入れると、接続状態が正常である場合には書き込んだデータの反転データ“55h”が出力されるようになっている。これにより、接続状態を確認できる。
16.リセット
G3カードは、2タイプのリセットコマンドを有する。その一つは、ハードウェアのリセットを行うパワーオンリセットコマンド<FDh>であり、もう一つはソフトウェアのリセットを行うコマンド<FBh>である。
図47は、これらのリセットコマンドのACタイミングを示している。ホストがパワーオンリセットコマンド<FDh>を発行した場合、G3カードは、“Card configuration”もリセットされて、パワーオン直後のデフォルト状態にクリアされる。
リセットコマンド<FBh>は、ホストがG3カードのセクタ読み出しやセクタ書き込みを強制終了させるコマンドである。セクタ書き込みのビジー期間に発行された場合には、書き込みデータの消失を防ぐために、セクタ書き込みが完了した後に終了となる。
リカバリタイム(B2R)は、内部条件に依存する。このリセットコマンドにより、“Function service&sector count”はクリアされるが、“Crad configuration”はクリアされずに残る。
17.パワーダウン
図48は、パワーダウンコマンド<FEh>のタイミング図である。G3カードのパワーダウンの前には、ホストがこのコマンドを出すことが必要とされている。G3カード内でキャッシュに保持されたデータが残っている場合に、電源オフによりこれが消失するのを防止するためである。
即ち、ホストがコマンド<FEh>を発行すると、G3カードはビジー状態(R/B=“L”)となり、キャッシュに残されているデータを全てフラッシュメモリに書き込む(Flush)動作を行う。R/B=“H”を受けてホストは電源をオフにする。これにより、無用なデータ消失が防止される。
18.オートDOSフォーマット
一般にxDPTMカードシステムでは、次の3つの目的を持ってDSC(DOS)フォーマットが定められている。
(a)DOSパラメータのクリア
(b)プレ消去としての全物理ブロックの消去
(c)ユーザーデータの完全消去(セキュリティのため)
LBA方式を用いるG3カードにおいても、(a)及び(c)は必要である。(a)については一般に、ホストがオリジナルDOSパラメータを書いて、全てのファイル情報をクリアすることができ、しかもそれほど時間はかからない。一方(c)については、G3カードではホストが物理的ブロック消去を行うという機能を持たないことを前提としているために、論理セクタアクセスに従ってユーザーデータを全て“00”に書き換える必要があり、非常に長い時間を要する。何故なら、ホストがある論理アドレスのデータを書き換える場合に、G3カード自身が自ら空きブロックを探して書き込み、元の論理アドレスが割り付けられた箇所のデータを消去する、という動作を行うためである。
この点を考慮してこの実施の形態では、オートDOSフォーマットコマンドを用意している。この機能によると、G3カードはDOSパラメータをクリアし、ユーザデータ領域にはオール“00”を上書きするという動作によって速やかにユーザデータを実質的に消去することになる。
DOSパラメータについては、32ビットFATが用いられ、G3カードが高パフォーマンスを示すように最適化される。
オートDOSフォーマットのコマンド実行後は、リセットコマンド<FBh>が必要である。
19.Low level format
内部データを完全にクリーンアップするために、物理ブロック消去を行う“Low level format”コマンドが用意されている。消去動作を行うという点を除き、“オートDOSフォーマット”のコマンド機能と同じである。
消去時間は、カード容量(即ち物理ブロック数)に依存し、ホストは知り得ない。従って、ホストが通常のビジー期間とこの消去動作の期間を区別するためには、例えばホストのステータス読み出し要求コマンド<73h>により、カードが処理カウンタの内部状態を出力するようにすることが好ましい。
この機能は、先の“Auto DOS format”でも採用することが好ましい。
“Low level format”コマンド実行後は、ホストはパワーオンリセットコマンド<FDh>を発行することが必要である。また、“Card configuration”の取得、設定が改めて必要となる。
20.特殊IDデータ読み出し
G3カードは、特殊なコマンドにより読み出すことが許される特殊なIDデータである“Unique ID”がある。“Unique ID”は、カード出荷前に書かれるもので、誰もこれを書き換えることはできない。
このID読み出しコマンド実行後は、リセットコマンド<FBh>の発行が必要である。
21.継承機能
G3カードには、G1或いはG2カード世代の機能である(a)自動ブロック消去の機能、及び(b)FFhリセットの機能が残されている。
(a)は、図49のタイミング図に従って、物理アドレスを入力してブロック消去を行う機能である。
(b)は、図50のタイミング図に従って、セクタアドレス及びセクタカウントをクリアする機能である。
G3カードはこれらの機能を、内部的には非動作(NOP)として扱うが、外部にはダミービジー(1.5〜2μs)を出力する。またホストのステータス読み出しに対しては“パス”として応答する。
23.パススルーモード
G3カードは、主としてフラッシュメモリ内部ディレクトリのテストのため、“Pass through mode”が設定可能である。このモードは、搭載コントローラがコマンドの意味を解釈するのではなく、ホストデバイスからLBA−NANDメモリ内のホストI/FへのアクセスをNANDフラッシュメモリに直接伝えるようにするモードへの切り換えを行うものである。図51に示すように、コマンド<A6h>−<59h>−<99h>が用いられる。
例えば、ファームフェア(FW)がない場合、FWがある場合、FWはあるがダメージを受けている(例えば、再ブートできない等)場合、いずれにおいても、このモードを適用できる。
このパススルーモードは、カード内のメモリコントローラにあるハードウェアシーケンサにより実現される。フラッシュメモリテストは、上述のコマンドに続き、<71h>−<CMD(**)>を入力することにより、フラッシュメモリチップに対応するチップイネーブル信号/CE0〜/CE3のいずれかが(或いは同時に)選択される。
フラッシュメモリテストの間、その消費電力削減のために、ホストのCPUはスリープ状態とする。このモードは、リセットコマンドを発行するか、パワーダウンまで続く。
[追加実施の形態]
図52及び図53は、セクタカウント設定を行う方式のセクタ読み出しプロトコルである。“Status”読み出しにより、内部的なReady/Busyとは別に、入出力パッドD5を利用して、最初のデータ読み出しからセクタ読み出しの最終データパケットがくるまで連続してビジー状態(D5=“0”)を表示する例を示している。“Status”読み出しは、次のようなコマンドシーケンスとなる。<70h>−[Status value]。この[Status value]を読み出した後、データ読み出しを引き続き行う場合は、<00h>を入れて、データ読み出しモードに復帰させる。書き込みの場合も同様である。
転送データ長は、転送プロトコルにより512Bytes×Nまたは(512+16Bytes)×Nのなかから選ばれる。データ長の+16Bytesは、CRC,ECC等による転送データチェック用ビットである。
最初のセクタアドレス入力後は、ダミーセクタアドレスを入力して、読み出しを継続する。
図53は,最初のセクタアドレス入力後、ダミーセクタアドレスの入力をスキップする例である。
図54及び図55は、同様にセクタカウント設定を行う方式のセクタ書き込みプロトコルであり、“Status”読み出しにより、入出力パッドD5を利用して、最初のデータ読み出しからセクタ読み出しの最終データパケットがくるまで連続してビジー状態(D5=“0”)を表示する例を示している。
セクタ書き込みの場合も最初のセクタアドレス入力後は、ダミーセクタアドレスを入力して、読み出しを継続する。
図55は,最初のセクタアドレス入力後、ダミーセクタアドレスの入力をスキップする例である。
ホストは、“Status”読み出しを利用して、メモリシステムがセクタ読み出し、セクタ書き込みの一連動作仕掛かり中であるのか、既にセクタ読み出し、セクタ書き込みの一連動作を完了して、新たな動作を受け付け可能な状態になっているかを検知することができる。これにより、マルチタスク動作を行うホストの場合、セクタ読み出しを伴うアプリケーションを実行中に優先度の高い新たなタスクが発生し、メモリシステムに対して新たなアクセスを実行しようとする際等に、“Status”のD5がビジーであれば、終了コマンドを発行して、継続していた一連の動作を完了させた上で、新たなタスクに対応したメモリシステムアクセスを開始することができる。
実施の形態によるフラッシュメモリシステム(メモリカード)を示す図である。 同メモリカードの機能ブロック構成を示す図である。 同メモリカードのメモリセルアレイ構成を示す図である。 同メモリカードのメモリコントローラ内のアドレス変換テーブルを示す図である。 同メモリカードのピン配置を示す図である。 同メモリカードの機能と適用プロトコルを示す図である。 同メモリカードのコマンド入力サイクルを示す図である。 同メモリカードのアドレス入力サイクルを示す図である。 同メモリカードのデータ入力サイクルを示す図である。 同メモリカードのデータ出力サイクルを示す図である。 同メモリカードの機能とコマンド階層を示す図である。 同メモリカードのパワーオンシーケンスを示す図である。 同メモリカードのパワーオンシーケンスのタイミング波形である。 同メモリカードのID読み出しタイミング波形である。 同じくIDデータを示す図である。 カード構成の内容を示す図である。 機能サービス設定の状態を示す図である。 セクタカウントのデータ状態を示す図である。 セクタアドレスのタイミング波形である。 アドレスサイクルの詳細を示す図である。 アドレスシフトの機能を示す図である。 同メモリカードのセクタ読み出し手順を示す図である。 同セクタ読み出しのモード設定を示す図である。 セクタ読み出しにおけるECC及びCRC16の機能を示す図である。 転送データサイズ512(528)Byteの場合のデータフォーマットを示す図である。 転送データサイズ2048(2112)Byteの場合のデータフォーマットを示す図である。 転送データサイズ4096(4224)Byteの場合のデータフォーマットを示す図である。 追加16Byte領域(ECCの場合)のデータフォーマットを示す図である。 追加16Byte領域(CRC16の場合)のデータフォーマットを示す図である。 セクタ読み出しとステータス読み出しの関係を説明するための図である。 セクタ読み出しとバッファR/Wの関係を説明するための図である。 セクタ読み出しのタイミング波形示す図である。 同メモリカードのセクタ書き込みの手順を示す図である。 同セクタ書き込みのモード設定を示す図である。 セクタ書き込みにおけるECC及びCRC16の機能を示す図である。 転送データサイズ512(528)Byteの場合のデータフォーマットを示す図である。 転送データサイズ2048(2112)Byteの場合のデータフォーマットを示す図である。 転送データサイズ4096(4224)Byteの場合のデータフォーマットを示す図である。 追加16Byte領域(ECCの場合)のデータフォーマットを示す図である。 追加16Byte領域(CRC16の場合)のデータフォーマットを示す図である。 セクタ書き込みのタイミング波形を示す図である。 セクタ書き込みの転送エラーチェックを伴う場合のタイミング波形を示す図である。 ステータス読み出しによるステータスデータ状態を示す図である。 ECC機能とステータスビットの関係を示す図である。 ステータス読み出しのタイミング波形を示す図である。 CISのデータフォーマットを示す図である。 バッファ読み出し/書き込みのタイミング波形を示す図である。 リセットコマンドのタイミング波形を示す図である。 パワーダウンのタイミング波形を示す図である。 オートブロック消去のタイミング波形を示す図である。 セクタアドレス及びセクタカウントをリセットするタイミング波形を示す図である。 パススルーモード設定のタイミング波形を示す図である。 ステータス情報読み出しを伴うセクタ読み出しのタイミング図である。 同セクタ読み出しのダミーセクタアドレス入力をスキップする例である。 ステータス情報読み出しを伴うセクタ書き込みのタイミング図である。 同セクタ書き込みのダミーセクタアドレス入力をスキップする例である。
符号の説明
1…メモリセルアレイ、2(2a,2b)…ロウデコーダ、3(3a,3b)…センスアンプ回路、4…カラムデコーダ、5…アドレスレジスタ、6…制御回路、8…コマンドレジスタ、10…高電圧発生回路、11,12…ステータスレジスタ、13…IOコントロール回路、14…ロジックコントロール回路、20…不揮発性メモリシステム(メモリカード)、21…フラッシュメモリ、22…メモリコントローラ、23…フラッシュI/F、24…MPU、25…ホストI/F、26…バッファRAM、27…ハードウェアシーケンサ。

Claims (4)

  1. 不揮発性メモリと、
    この不揮発性メモリの読み出し及び書き込みを制御するメモリコントローラとを備えた不揮発性メモリシステムにおいて、
    前記不揮発性メモリシステムは、前記メモリコントローラ内に、ホストから供給される論理アドレスと前記不揮発性メモリの物理アドレスとの対応関係を示すアドレス変換テーブルを持って論理アドレスに従ってアクセス制御されるものであり、
    前記メモリコントローラは、
    前記不揮発性メモリセルの電源投入後にセクタの数としての第1の初期値を設定し、
    前記第1の初期値が設定されている間は、前記ホストからの要求に従い前記不揮発性メモリから前記第1の初期値のセクタの数のデータを読み出し、
    前記ホストからのコマンドに従い、前記第1の初期値から前記第1の初期値とは異なる第2の値への切り替えを行い、前記ホストからの新たなコマンドにより前記第2の値が変更されない限り、前記第2の値をセクタの数として維持し、
    前記第2の値への切り替えの後、前記メモリコントローラは、前記第2の値が維持されている限り、前記ホストからの要求に従い、前記不揮発性メモリから前記第2の値のセクタの数のデータを読み出す
    ことを特徴とする不揮発性メモリシステム。
  2. 選択的にオンオフ可能なデータ転送エラーをチェックするためのECC機能またはCRC16機能を有する
    ことを特徴とする請求項1記載の不揮発性メモリシステム。
  3. 必要とする動作速度性能に応じて、通常パワーモードと高パワーモードとが切り換え可能に設定される
    ことを特徴とする請求項1記載の不揮発性メモリシステム。
  4. 前記不揮発性メモリシステムはメモリカードである
    請求項1乃至のいずれかに記載の不揮発性メモリシステム。
JP2007040408A 2007-02-21 2007-02-21 不揮発性メモリシステム Expired - Fee Related JP4970078B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007040408A JP4970078B2 (ja) 2007-02-21 2007-02-21 不揮発性メモリシステム
US12/034,306 US20080201553A1 (en) 2007-02-21 2008-02-20 Non-volatile memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007040408A JP4970078B2 (ja) 2007-02-21 2007-02-21 不揮発性メモリシステム

Publications (2)

Publication Number Publication Date
JP2008204222A JP2008204222A (ja) 2008-09-04
JP4970078B2 true JP4970078B2 (ja) 2012-07-04

Family

ID=39707655

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007040408A Expired - Fee Related JP4970078B2 (ja) 2007-02-21 2007-02-21 不揮発性メモリシステム

Country Status (2)

Country Link
US (1) US20080201553A1 (ja)
JP (1) JP4970078B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5412769B2 (ja) * 2008-09-03 2014-02-12 富士通株式会社 フラッシュメモリ制御装置、フラッシュメモリ制御方法及びフラッシュメモリ制御プログラム
KR101843918B1 (ko) 2011-04-25 2018-04-02 삼성전자주식회사 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 그 동작 방법
TWI479493B (zh) 2011-04-25 2015-04-01 Silicon Motion Inc 快閃記憶裝置及其斷電處理方法
KR101856506B1 (ko) * 2011-09-22 2018-05-11 삼성전자주식회사 데이터 저장 장치 및 그것의 데이터 쓰기 방법
TWI563507B (en) * 2015-07-01 2016-12-21 Phison Electronics Corp Memory management method, memory control circuit unit and memry storage apparatus
JP6274589B1 (ja) * 2016-09-28 2018-02-07 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置および連続読出し方法
JP6797727B2 (ja) * 2017-03-21 2020-12-09 キオクシア株式会社 半導体記憶装置
JP7458740B2 (ja) * 2019-10-21 2024-04-01 キオクシア株式会社 メモリシステム及び制御方法
CN112905219B (zh) * 2021-02-07 2024-06-18 北京云育科技有限公司 基于sd卡的软件更新方法、终端及计算机可读存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1185609A (ja) * 1997-09-09 1999-03-30 Mitsubishi Electric Corp 半導体記憶装置及びそのデータ管理方法
TW527604B (en) * 1998-10-05 2003-04-11 Toshiba Corp A memory systems
JP2000112824A (ja) * 1998-10-05 2000-04-21 Toshiba Corp メモリシステム
US6754765B1 (en) * 2001-05-14 2004-06-22 Integrated Memory Logic, Inc. Flash memory controller with updateable microcode
US20030023807A1 (en) * 2001-06-13 2003-01-30 Youichi Yamamoto Disk drive device and control device thereof
CN100422956C (zh) * 2003-08-06 2008-10-01 松下电器产业株式会社 半导体存储卡、存取装置和存取方法
KR100528482B1 (ko) * 2003-12-31 2005-11-15 삼성전자주식회사 데이타를 섹터 단위로 랜덤하게 입출력할 수 있는 플래시메모리 시스템
JP3892851B2 (ja) * 2004-02-04 2007-03-14 株式会社東芝 メモリカード及び半導体装置
US7427027B2 (en) * 2004-07-28 2008-09-23 Sandisk Corporation Optimized non-volatile storage systems
JP4406339B2 (ja) * 2004-09-21 2010-01-27 株式会社東芝 コントローラ、メモリカード及びその制御方法
JP4817836B2 (ja) * 2004-12-27 2011-11-16 株式会社東芝 カードおよびホスト機器

Also Published As

Publication number Publication date
JP2008204222A (ja) 2008-09-04
US20080201553A1 (en) 2008-08-21

Similar Documents

Publication Publication Date Title
JP4970078B2 (ja) 不揮発性メモリシステム
US11150808B2 (en) Flash memory system
JP4524309B2 (ja) フラッシュメモリ用のメモリコントローラ
US7711889B2 (en) Nonvolatile memory system, and data read/write method for nonvolatile memory system
KR101146059B1 (ko) 비휘발성 메모리 시스템 및 비휘발성 메모리 시스템을 위한데이터 판독/기입 방법
JP4129381B2 (ja) 不揮発性半導体記憶装置
US9437312B2 (en) Management of write-protected data in a semiconductor memory
JPWO2007000862A1 (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
JP5073402B2 (ja) メモリーコントローラ、及びこれを用いた不揮発性記憶装置並びに不揮発性記憶システム
JP4843222B2 (ja) 半導体記憶装置の制御方法、メモリカード、及びホスト機器
JP2009003569A (ja) 半導体記憶装置
US9501397B2 (en) Data writing method, memory controller, and memory storage apparatus
US8589620B2 (en) Data writing method, memory controller, and memory storage apparatus
JP4655034B2 (ja) メモリコントローラ及びフラッシュメモリシステム並びにフラッシュメモリの制御方法
JP2009003995A (ja) 半導体記憶装置
JP2009003994A (ja) 半導体記憶装置
JP2009003571A (ja) 半導体記憶装置
JP2009003570A (ja) 半導体記憶装置
JP2004265447A (ja) 不揮発性半導体メモリ装置のデータ書き込み方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090323

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111122

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120123

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

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

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

Free format text: PAYMENT UNTIL: 20150413

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20150413

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees