説明

メモリシステム

【課題】無線通信により得たファイルに時間情報を付加することが可能なメモリシステムを提供する。
【解決手段】メモリシステムは、不揮発性半導体記憶装置18と、制御部13と、メモリ14と、拡張レジスタと、タイマを含んでいる。制御部13は、不揮発性半導体記憶装置18を制御する。メモリ14は、制御部13に接続された作業エリアである。拡張レジスタは、メモリに設けられ、時間情報が設定される。タイマは、時間情報を更新する。制御部13は、不揮発性半導体記憶装置18にファイルを記録するとき、タイマにより更新された時間情報をファイルに付加する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、無線通信機能を有するメモリシステムに関する。
【背景技術】
【0002】
無線通信機能や、無線LAN機能を備えたSDカードが開発されている。このSDカードは、ホスト機器を介さずに無線通信によりデータを受信し、SDカード内のメモリにファイルとして保存することが可能とされている。この場合、メモリに保存されたファイルは、時間情報を持っていない。このため、ファイルシステムにおいて、このファイルを扱う場合、時間情報が不定となるという問題を有している。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2001−133294号公報
【特許文献2】特開2007−294187号公報
【非特許文献】
【0004】
【非特許文献1】Part 1 Physical Layer Simplified Specification Ver3.01 May 18, 2010(URL:http://www.sdcard.org/home/)
【非特許文献2】Part E1 SDIO Simplified Specification Ver2.00 Feb. 8, 2007(URL:http://www.sdcard.org/home/)
【発明の概要】
【発明が解決しようとする課題】
【0005】
本実施形態は、無線通信により得たファイルに時間情報を付加することが可能なメモリシステムを提供しようとするものである。
【課題を解決するための手段】
【0006】
本実施形態によれば、メモリシステムは、不揮発性半導体記憶装置と、制御部と、メモリと、拡張レジスタと、タイマを含んでいる。制御部は、不揮発性半導体記憶装置を制御する。メモリは、制御部に接続された作業エリアである。拡張レジスタは、メモリに設けられ、時間情報が設定される。タイマは、時間情報を更新する。制御部は、不揮発性半導体記憶装置にファイルを記録するとき、タイマにより更新された時間情報をファイルに付加する。
【図面の簡単な説明】
【0007】
【図1】実施形態に適用されるメモリシステムを概略的に示す構成図。
【図2】図1に示すメモリシステムのファームウェの一例を示す構成図。
【図3】拡張レジスタのリードコマンドの一例を示す構成図。
【図4】リードコマンドによる拡張レジスタのリード動作を示すタイミング図。
【図5】リードコマンドによるデータポートのリード動作を示すタイミング図。
【図6】拡張レジスタのライトコマンドの一例を示す構成図。
【図7】図7(a)(b)(c)はマスクレジスタの動作を示す図。
【図8】ライトコマンドによる拡張レジスタのライト動作を示すタイミング図。
【図9】ライトコマンドによるデータポートのライト動作を示すタイミング図。
【図10】拡張レジスタの先頭ページに設定される情報フィールドの一例を示す図。
【図11】無線LAN(Local Area Network)を有したSDカードの使用例を示す構成図。
【図12】メモリデバイスが有するインターフェース機能を示す図。
【図13】Wi−Fi SDカードとホストデバイスの構成例を示す図。
【図14】SDカードとホストデバイスの別の構成例を示す。
【図15】リードコマンド(CMD48)とライトコマンド(CMD49)でアクセスする拡張レジスタの例を示す図。
【図16】拡張レジスタをWi−Fi SDカードに用いた場合の例を示す図。
【図17】ホストデバイスの起動時の動作を示すフローチャート。
【図18】無線LANの設定動作を示す図。
【図19】本実施形態を示すものであり、時間情報の付加動作を示す図。
【発明を実施するための形態】
【0008】
近年、各種電子機器(特に携帯型ディジタル機器)間で、無線通信によるデータ通信が可能とされている。各種電子機器としては、パーソナルコンピュータや、例えばPDA(Personal Digital Assistant)と呼ばれる携帯情報端末、携帯電話、携帯型オーディオ機器、あるいはデジタルカメラなどが含まれる。
【0009】
これら電子機器間で、無線通信によりデータ通信が可能であれば、ケーブルによる接続が不要となるため利便性を向上できる。特に、無線LAN(Local Area Network)システムの普及に伴い、パーソナルコンピュータや、組み込み機器応用のみならず、デジタルカメラなどでメモリとして使用されるSDカードにおいても無線LANシステムが導入されるようになってきている。
【0010】
SDカードにおいて、このような機能を実現するため、SDメモリカードは、フラッシュメモリの他、ホストと物理的に接続するためのインターフェース、アンテナ、高周波処理部(無線信号の送受信を行う処理部)、ベースバンド処理部(ベースバンド信号を処理する処理部)等の構成要素を実装する必要がある。
【0011】
このような無線LAN機能を備えたSDカードにおいて、無線LAN機能を制御するための手順は、SDカードメーカーの実装に依存しているため、一意に定まっていない。さらに、制御手順をどのように実装するかが課題となっている。
【0012】
また、通信機能を備えたSDカードは、無線LAN以外の方式の通信機能が備えられることも考えられる。この場合、ホストは、SDカードにどのような機能が備えられているかを知る手段がなければ、SDカードの機能を用いることが出来ない。
【0013】
そこで、本実施形態は、例えばデジタルカメラなどにおいて広くメモリとして用いられているSDカードに関して、本来のメモリ以外の拡張機能を把握するための手段を提示する。さらに、本来のメモリ以外の機能に対する制御手順を提示する。特に、SDメモリのコマンド体系において、無線LANなどを制御することを可能とする。これによって、デジタルカメラなどのホストとしてのデジタル機器と、親和性の高い無線機能などを搭載したSDカードを提供する。
【0014】
このため、本実施形態は、SDカード内に、複数ページにより構成される拡張レジスタ(Extension Register)を設け、この拡張レジスタをSDメモリのコマンド仕様の1つであるコマンドCMD48、CMD49を用いて、リード又はライト可能とする。CMD48は、対象とするレジスタからデータをブロック単位で読み出すためのコマンドであり、CMD49は、対象とするレジスタにデータをブロック単位で書き込むコマンドである。拡張レジスタは、例えばSDカードが有する機能を示すためのページと、SDカードが有する通信機能を制御するためのページと、通信対象のデータの受け渡しに用いるページとを有している。
【0015】
さらに、本実施形態は、ホストから時間情報を取得する機能を持つことにより、カードとして現在時間を知ることが可能となる。このため、ホストを介さずに無線通信により、ネットワークからデータを受信し、このデータをファイルとして、カード内のファイルシステムに保存する場合、ファイルの作成時間とファイルの更新時間を設定することを可能とする。
【0016】
(実施形態)
以下、実施の形態について、図面を参照して説明する。
【0017】
図1は、本実施形態に係るメモリシステムを概略的に示している。
【0018】
メモリシステムは、例えばSDカードのようなメモリデバイス11と、ホスト20により構成される。メモリデバイス11はSDカードとも言う。また、ホスト20はホストデバイスとも言う。
【0019】
メモリデバイス11は、ホスト20に接続されたときに電源供給を受けて動作し、ホスト20からのアクセスに応じた処理を行う。このメモリデバイス11は、カードコントローラ11aを有している。
【0020】
カードコントローラ11aは、例えばホストインターフェース(I/F)12、CPU13、ROM(Read only Memory)14、RAM(Random Access Memory)15、バッファ16、無線インターフェース(I/F)17a、メモリインターフェース(I/F)17bにより構成されている。これらは、バスにより接続されている。メモリインターフェース17bには、例えばNAND型フラッシュメモリ18が接続されている。無線通信インターフェース17aには、拡張機能部としての無線LAN信号処理部19aが接続されている。この無線LAN信号処理部19aには、高周波信号を送受信するアンテナATaが接続されている。
【0021】
尚、拡張機能部は、無線LAN信号処理部19aに限らず、その他の無線通信信号処理部19b、及びこの無線通信信号処理部19bに接続されたアンテナATbなどを増設し、マルチファンクションのSDカードを構成することが可能である。例えば、無線LAN信号処理部19aは、例えばWi−Fi(登録商標)による無線通信機能を制御し、無線通信信号処理部19bは、例えばTransferJet(登録商標)による近接無線通信機能を制御する。
【0022】
ホストインターフェース12は、カードコントローラ11aとホスト20との間のインターフェース処理を行う。
【0023】
一方、無線通信インターフェース17aは、無線LAN信号処理部19aや無線通信信号処理部19bとの間のインターフェース処理を行う。メモリインターフェース17bは、カードコントローラ11aとNAND型フラッシュメモリ18との間のインターフェース処理を行う。
【0024】
CPU13は、メモリデバイス11全体の動作を司るものである。このCPU13を制御するプログラムは、ROM14の中に格納されているファームウェア(制御プログラム等)を用いるかあるいは、RAM115上にロードして所定の処理を実行する。すなわち、CPU13は、各種のテーブルや後述する拡張レジスタをRAM18上に作成したり、ホスト20からライト(書き込み)コマンド、リード(読み出し)コマンド、イレース(消去)コマンドを受けてNAND型フラッシュメモリ18上の領域をアクセスしたり、バッファ16を介してデータ転送処理を制御したりする。
【0025】
ROM14は、CPU13により使用される制御プログラムなどのファームウェアを格納する。RAM15は、CPU13の作業エリアとして使用され、制御プログラムや各種のテーブルや後述する拡張レジスタを記憶する。
【0026】
バッファ16は、ホスト20から送られてくるデータを、例えばNAND型フラッシュメモリ18へ書き込む際、一定量のデータ(例えば1ページ分)を一時的に記憶したり、NAND型フラッシュメモリ18から読み出されたデータをホスト20へ送り出す際、一定量のデータを一時的に記憶したりする。またバッファ16を介することにより、SDバスインターフェースとバックエンドを非同期に制御することができる。
【0027】
NAND型フラッシュメモリ18は、例えば積層ゲート構造のメモリセル、又はMONOS構造のメモリセルにより構成されている。
【0028】
無線LAN信号処理部19では、無線LANの信号処理が行われる。無線通信I/F17aを介して制御される。
【0029】
ホスト20は、例えばデジタルカメラや携帯電話、パーソナルコンピュータなどが適用可能である。ホスト20は、ホストコントローラ21、CPU22、ROM23、RAM24、例えばハードディスク25(SSDを含む)により構成されている。これらはバスにより接続されている。
【0030】
CPU22は、ホスト全体を制御する。ROM23は、CPU22の動作に必要なファームウェアを記憶している。RAM24は、例えばCPU22の作業領域として使用されるが、CPU22が実行可能なプログラムもここにロードされ実行される。ハードディスク25は、各種データを保持する。ホストコントローラ21は、メモリデバイス11が接続された状態において、メモリデバイス11とのインターフェース処理を行う。さらに、CPU22の指示に従って、後述する各種コマンドを発行する。
【0031】
(ファームウェアの構成)
図2は、メモリデバイス11のROM14に記憶されたファームウェアの機能構成の一例を示している。これらの機能はコントローラ11aを構成するCPU13等の各ハードウェアとの組み合わせにより実現されるものである。ファームウェアは、例えばコマンド処理部14a、フラッシュメモリ制御部14b、拡張レジスタ処理部14c、機能処理プログラム14dにより構成されている。拡張レジスタ処理部14cは、メモリデバイス11が起動された際、RAM15内に拡張レジスタ31を生成する。この拡張レジスタ31は、仮想レジスタであり、拡張機能を定義可能とされている。
【0032】
(拡張レジスタの構成)
図2に示すように、拡張レジスタ31は、例えば8ページにより構成されている、1ページは、512バイトにより構成されている。512バイトの拡張レジスタをバイト単位にアクセスするため、最低9ビットのアドレスが必要となり、8ページアクセスするために、最低3ビットのアドレスが必要となる。合計12ビットのアドレスにより、拡張レジスタの全空間がアクセス可能となる。
【0033】
512バイト単位とする理由は、多数のメモリカードホストコントローラが、1ブロック=512バイトを単位としてリード/ライト転送を行う構成になっているためである。無線LAN対応のホストコントローラであれば、1バイト単位のリード/ライトが可能であるが、全てのホストコントローラがこれをサポートしているわけではない。大多数のホストコントローラで拡張機能を制御できるようにするためには、512バイト単位のアクセスが行えると都合が良い。
【0034】
8ページ(ページ0〜ページ7)の内、ページ0は、拡張機能のプラグ・アンド・プレイを行うために情報フィールドを記録しておくための領域である。ページ1〜ページ7は、拡張機能の情報が記録される。すなわち、例えばページ1には、通信機能を制御するための情報が記録され、ページ2には、通信対象のデータの受け渡しのための情報が記録される。ホスト20は、メモリデバイス11が有する機能を示すためのページ0に記載された情報から、メモリデバイス11が有する通信機能を制御するためのページ、通信対象のデータの受け渡しに用いるページ、がどのページであるのかを把握することができる。情報フィールドの詳細については後述する。
【0035】
拡張レジスタのリード/ライトは、以下に定義される専用のリード/ライトコマンドが用いられる。これらのコマンドは、拡張レジスタをリード/ライトする第1の動作モードと、データポートを構成する第2の動作モードを有している。
【0036】
(拡張レジスタのリードコマンド(CMD48))
図3は、拡張レジスタのリードコマンド(CMD48)のフィールド構成の一例を示している。“S”は、コマンドのスタートビットを示し、“T”は転送方向を示すビットであり、“index”は、コマンド番号を示している。“RS”(レジスタ・セレクト)は拡張レジスタ31内のページを示し、“OFS”は選択されたページ内におけるデータの位置(ページの先頭からのオフセット)を示している。3ビットの“RS”と、9ビットの“OFS”で、512バイトの拡張レジスタ8ページ分の空間をバイト単位に指定することができる。具体的には、選択された拡張レジスタ内のリード開始位置が“RS”と“OFS”により指定される。
【0037】
“LEN”はデータ長を示している。9ビットのLENフィールドにより、512バイトの拡張レジスタ内の読み出しに必要な有効なデータ長が指定される。
【0038】
“CRC7”は、巡回冗長検査(cyclic redundancy check)コードを示し、“E”は、コマンドのエンドビットを示している。“rsv”は、予備のビットを示している。
【0039】
(拡張レジスタのリードコマンド、第1の動作モード)
図4は、第1の動作モードによる拡張レジスタのリード動作の例を示している。
【0040】
図4に示すように、メモリデバイス11は、ホスト20からコマンド(CMD48)を受け取ると、レスポンス(R1)をホスト20に返し、その後、拡張レジスタ31から512バイトのデータブロックを読み出す。
【0041】
具他的には、コマンド(CMD48)の引数で、拡張レジスタのページと、ページ内の読み出すべきデータの位置が、“RS”と“OFS”で指定され、データ長が“LEN”で指定される。このようにして指定された拡張レジスタ内のデータが、512バイトのデータブロックの先頭にセットされ、読み出される。512バイトのデータブロックのうち、“LEN”で指定されたデータ長を超えるデータは、無効データとなる。データブロックの最後にはCRCコードが付加され、正しくデータが受け取れたかをチェックすることが可能とされている(無効データを含めてチェックを行う)。有効データが先頭から配置されているため、ホスト20は、有効データを探すために、データシフトなどの操作を行う必要がない。
【0042】
(拡張レジスタのリードコマンド、第2の動作モード)
図5は、第2の動作モードによるデータポートリードの動作の例を示している。
【0043】
メモリデバイス11は、このコマンド(CMD48)を受け取ると、レスポンス(R1)を返し、その後に512バイトのデータブロックを返す。
【0044】
コマンドの引数“RS”,“OFS”により、拡張レジスタの選択されたページ内の位置が指定される。データポートは、複数バイト割り当てることは可能であるが、1バイトで十分であるので、図5ではデータポートへアクセスする例が示されている。すなわち、データポートは、拡張レジスタマップ上において、1バイトのアドレスを占有するだけで良い。このデータポートに割り当てられたデバイスから1ブロック(512バイト単位)のデータをリードすることができる。すなわち、1回当たり、1ブロック(512バイト単位)のデータをリードすることができる。この読み出されたデータは、例えばバッファ16に保持され、20のホストによって読み出される。
【0045】
続いて同じデータポートをリードすると、続きの512バイトのデータを読み出すことができる。データポートから読み出すデータを何処から取ってくるかは、拡張機能の仕様によって自由に定義ができる。データポート制御は、例えば、拡張レジスタ上に制御レジスタを定義して制御することができる。512バイトのデータブロックの最後にCRCコードが付加され、正しくデータが受け取れたか否かがチェック可能とされている。
【0046】
(拡張レジスタのライトコマンド(CMD49))
図6は、拡張レジスタのライトコマンドの一例を示している。ライトコマンド(CMD49)において、リードコマンド(CMD48)と同一部分には同一符号を付している。ライトコマンドとリードコマンドは、“index”により区別される。3ビットの“RS”と、9ビットの“OFS”により、拡張レジスタのページと選択されたページ内のデータの位置が指定される。9ビットの“LEN”フィールドにより、512バイトの拡張レジスタに書き込むデータ長が指定される。したがって、512バイト内の任意のデータ長(バイト単位)のデータを拡張レジスタの任意のページと場所に書き込むことが可能である。
【0047】
ライトコマンド(CMD49)は、コマンドの引数の中にマスクレジスタが設けられている。すなわち、“Mask”は、8ビット長のマスクレジスタを示している。このマスクレジスタにより、1バイトのデータのライトにおいて、ビット単位のオペレーションが可能となり、特定のビットにのみデータを書き込むことが可能となる。このため、1バイト内のビットオペレーションであれば、リード・モディファイ・ライトを行う必要がない。マスクレジスタは、データ長が1バイトのとき、すなわち、“LEN=0”(レングス1)のとき有効となる。マスクレジスタ“Mask”のデータが“1”のビットは、データが書き込まれ、マスクレジスタ“Mask”のデータが“0”のビットは、既にセットされた値が保存される。
【0048】
すなわち、図7(a)に示すようなデータを保持している拡張レジスタを仮定した場合において、マスクレジスタのデータが、図7(b)に示すようである場合、ライトコマンドが実行されることにより、図7(c)に示すように、マスクレジスタのデータが“1”のビットはデータが書き込まれ、データが“0”のビットは、元のデータが保持される。このため、リード・モディファイ・ライトを行うことなく、所要のビットのみデータを書き換えることが可能となる。“x”で示す部分が、新しいデータが書き込まれたビットを示す。
【0049】
また、より長いマスクデータが別な手段によって供給できれば、LEN>1でもマスクライトが可能であるが、図6の例では、コマンド引数にマスクデータを割り当てているため、8ビットとしている。
【0050】
(拡張レジスタのライトコマンド、第1の動作モード)
図8は、第1の動作モードによる拡張レジスタのライト動作の例を示している。
【0051】
メモリデバイス11は、このコマンド(CMD49)を受け取ると、レスポンス(R1)を返し、その後、512バイトのデータブロックを受け取る。
【0052】
メモリデバイス11は、データブロックが正しく受け取れたかどうかを示すCRCコードをホスト20に返す。その後、このコマンドの処理が終了するまでビジーを返し、ホスト20が次のコマンドを発行できるタイミングを知らせる。データブロックは、バッファ16に保持されている。
【0053】
コマンド処理において、コマンドの引数“RS”、“OFS”により、拡張レジスタ内のページと位置が指定され、“LEN”によりデータ長が指定される。バッファ16に保持されたデータブロックのうち、先頭から“LEN”で指定して長さのデータが拡張レジスタに書き込まれる。“LEN”で指定されたデータ長を超えるデータブロック中のデータは無効データとして破棄される。
【0054】
有効データをデータブロックの先頭から配置することにより、ホストシステムは有効データをデータブロックの途中に配置する操作が不要となる。
【0055】
(拡張レジスタのライトコマンド、第2の動作モード)
図9は、第2の動作モードによるライトデータポートの動作の例を示している。
【0056】
メモリデバイス11は、このコマンド(CMD49)を受け取ると、レスポンス(R1)を返し、その後、512バイトのデータブロックを受け取る。
【0057】
メモリデバイス11は、データブロックが正しく受け取れたかどうかを示すCRCコードをホストに返す。その後、このコマンド処理が終わるまでビジーを返し、ホスト20が次のコマンドを発行できるタイミングを知らせる。データブロックは、バッファ16に保持されている。
【0058】
コマンド処理において、コマンドの引数“RS”、“OFS”により、拡張レジスタ内のページと位置が指定される。データポートは、複数バイト割り当てることは可能であるが、アドレス空間として1バイトで十分であるので、図9では“LEN=0”(レングス1)の場合のデータポート例が示されている。データポートは、拡張レジスタマップ上において、1バイトのアドレスを占有するだけでよい。このデータポートに、バッファ16に保持された1ブロック(512バイト単位)のデータをある割り当てたデバイスにライトすることができる。すなわち、1回当たり、1ブロックのデータをライトすることができる。
【0059】
続いて同じデータポートをライトすると、続く512バイトのデータを割り当てたデバイスに書き込むことができる。データポートのデータを何処に渡すかは、拡張機能の仕様によって自由に定義ができる。データポート制御は、例えば、拡張レジスタ上に制御レジスタを定義して制御することができる。
【0060】
(ページ0の情報フィールドの使用例)
図10は、拡張レジスタ31のページ0に示された情報フィールドの例を示している。この情報フィールドにより、ホスト20が拡張機能を制御するドライバを特定できるようにすることにより、拡張機能を追加した場合において、ホストシステムが容易に拡張機能を使えることができ、プラグ・アンド・プレイを実現することができる。
【0061】
図10を参照して、標準のホストドライバが処理すべきシーケンス例を説明する。
【0062】
(ストラクチャレビジョン)
ストラクチャレビジョンは、拡張レジスタ31のページ0のフォーマットを定義するレビジョンである。デバイス情報フィールドに新しい情報を追加した場合、ストラクチャレビジョンを更新することにより、どのバージョンの情報フィールドを保持しているかを示す。以前のバージョンのホストドライバは、新しいフィールドを無視する。
【0063】
(データ長)
データ長は、ページ0に記録されている有効データ長を示している。
【0064】
(拡張機能数(=N))
拡張機能数は、デバイスが何個の拡張機能をサポートしているかを示している。ホストドライバは、起動時に、サポートしている機能数だけ繰り返し、各拡張機能用のドライバがインストールされているかどうかを調べる。
【0065】
(デバイスの情報領域)
デバイスの情報領域には、N個のデバイス(デバイス1〜デバイスN)の情報を記録することができる。各デバイスの情報を次に示す。
【0066】
(デバイス1機能識別コード)
デバイス1機能識別コードにおいて、このコードが設定してある場合、標準ドライバ用を用いることができることを示す。OSが標準ドライバをサポートしている場合、専用ドイバをインストールすることなく、このデバイスが使用できる。専用ドライバがインストールされている場合は、そちらの使用を優先する。非標準の機能は“0”を設定する。この場合は、専用ドライバによってのみこの機能は制御される。
【0067】
(デバイス1製造者識別情報、デバイス1機能識別情報)
デバイス1製造者識別情報、デバイス1機能識別情報は、専用ドライバを特定するための情報である。ホストドライバは、これらの情報をもとにデバイス1の専用ドライバがインストールされているかどうかを探す。識別し易いように、例えばASCII文字列で記載される。機能識別情報は、デバイスの型番、レビジョンなどが記載される。
【0068】
(次デバイスの先頭アドレス)
次デバイスの先頭アドレスは、次のデバイス情報が記載されているページ0内のアドレスを示している。ホストシステムがこのデバイスをサポートしていない場合、このデバイスは使用できないため、次のデバイスがチェックされる。これ以降のフィールドは可変長のため、この位置に定義している。
【0069】
(デバイス1アドレスポインタ1〜X、レングスフィールド1〜X)
デバイス1アドレスポインタ1〜X、レングスフィールド1〜Xは、ひとつの機能に複数の拡張レジスタ領域を定義できることを示している。それぞれのアドレスとレングスを下記に列挙する。
【0070】
(デバイス1アドレスポインタ1(開始アドレス)、レングス1)
デバイス1が使用する拡張レジスタの第1領域。拡張レジスタのページ1〜7の空間内の先頭アドレスと、使用する拡張レジスタ領域の大きさを示している。
【0071】
すなわち、1つのデバイスに、1つ又は複数の拡張レジスタ領域を割り付けることができ、アドレスポインタは、ページ0以外の任意の拡張領域の場所(開始アドレス)を示している。レングスは、ポインタを先頭アドレスとした拡張レジスタを占有する大きさを示している。
【0072】
(デバイス1アドレスポインタ2(開始アドレス)、レングス2)
デバイス1に割り当てられた拡張レジスタ内の第2領域の位置と領域の大きさを示している。これにより、例えば標準ドライバは、第1領域のみで制御するが、専用ドライバは、第1領域と第2領域を用いて効率良く制御することを可能にするなどの応用が可能となる。
【0073】
(デバイス1アドレスポインタX(開始アドレス)、レングスX)
デバイス1に割り当てられた第X領域の位置と領域の大きさを示している。
【0074】
このように、拡張レジスタ内に複数の領域を定義できる。各領域はオーバーラップしないように配置される。レングス情報によりオーバーラップがあるかどうかをチェックすることができる。
【0075】
追加フィールドが必要になった場合、これ以降に追加定義していく。新しいフィールドが認識できないホストは、認識可能なフィールドまで読み出し、追加フィールドは無視する。上記の(次デバイスの先頭アドレス)フィールドによりスキップすることができる。
【0076】
(無線LAN対応SDカード)
図11は、無線通信機能を有したメモリデバイス(SDカード)11の使用例を示している。メモリデバイス11は、ホストとしての例えばデジタルカメラ51、52や、サーバー53、パーソナルコンピュータ54、携帯電話55に装着される。
【0077】
無線通信機能を有したメモリデバイス11は、デジタルカメラ51とともに使用することにより、写真データを無線通信ネットワーク上で他のカメラ52に送信したり、他のカメラ52から受信したりすることが可能である。また、無線通信ネットワークを介して例えば外部のサーバー53に接続し、写真データをデジタルカメラ51からサーバー53に転送することも可能である。さらに、無線通信ネットワークを介して例えばパーソナルコンピュータ54や携帯電話55などの機器に接続し、写真データをデジタルカメラ51からこれらパーソナルコンピュータ54や携帯電話55に転送することができる。
【0078】
図12は、メモリデバイス11が有するインターフェース機能を示している。
【0079】
無線通信機能を有したメモリデバイス11は、メモリデバイス11を制御するホストデバイスとしての例えばデジタルカメラ51とのインターフェースとなるインターフェース機能と、デジタルカメラ51と他の電子機器、例えばカメラ52や、サーバー53、パーソナルコンピュータ54、テレビ56、プリンタ57などと無線LAN接続を行うネットワークインターフェースの機能を有している。
【0080】
前述したホストインターフェース(カードインターフェース)12は、SDA(SD Association)で規格化された“SD Specifications Part 1”と“SD Specifications Part 2”に従って、カード内のデータにFAT32経由でアクセス(読み書き)する機能を有するとともに、無線通信機能を有するカード特有のレジスタ(例えばWi−FiSDレジスタ)にアクセスする機能を有している。ここでWi−Fi SDレジスタのアクセスには、リードコマンド(CMD48)とライトコマンド(CMD49)が用いられる。リードコマンド(CMD48)は、前述したように、対象となるレジスタに対してデータをブロック単位で読み込むコマンドであり、ライトコマンド(CMD49)は対象となるレジスタからデータをブロック単位で書き込むコマンドである。
【0081】
本実施形態において、例えばホスト20がメモリデバイス11に対して、Wi−Fi SDカード特有のコマンドを発行する。又は、Wi−Fi SDカード特有のデータを書き込むためにライトコマンド(CMD49)を用いて、ホスト20がメモリデバイス11から、Wi−Fi SDカード特有のステータスやレスポンスを受け取る。またはWi−Fi SDカード特有のデータを読み込むためにリードコマンド(CMD48)を用いることを特徴とする。
【0082】
無線通信インターフェース17aは、物理層にIEEE802.11b/g/nを、ネットワーク層にIPv4やIPv6を、トランスポート層にTCPを、プレゼンテーション層にSSL/TLSを、アプリケーション層にHTTPやFTPをサポートすることを想定している。さらに、家庭内機器との通信のためDLNA(Digital Living Network Alliance)の機能を有する場合もある。
【0083】
メモリデバイス11が2つのインターフェースを持つことにより、デジタルカメラで作成した写真データ(JPEGやRAWフォーマット)や動画データ(MPEG−2 TSやMP4フォーマット)を、HTTPプロトコルをサポートするサーバーや機器に対して送信、又は受信することが可能になる。さらに、DLNAをサポートするサーバーや機器により、写真や動画の再生が可能となるとともに、印刷を行うことも可能となる。また、写真データや動画データだけでなく、ホストデバイスが作成するデータ(XMLデータやテキストデータ)を追加して送ることにより、ホストデバイスはサーバーや周辺機器と認証作業を行ったり、メタデータの送受信を行ったりすることが可能となる。
【0084】
図13は、Wi−Fi SDカードとホストデバイスの構成例を示している。
【0085】
前述したように、ホストデバイス20は、SDカード11を制御するためのホストコントローラ21を有し、前記カードインターフェースに従って、SDAで規格化された“SD Specifications Part 1”のコマンドと、Wi−Fi SDカード特有の制御を行うためのCMD48とCMD49のコマンドを発行することが可能である。
【0086】
SDカード11は、カードコントローラ11a、NANDメモリモジュール(NANDフラッシュメモリ)18、Wi−Fiネットワークモジュール(無線通信信号処理部19b)を有し、ホストコントローラ21から発行されたコマンドに従い動作する。一般的なSDカードにおいて、カードコントローラ11aは、NANDメモリモジュール18にアクセスし、データの読み出し、書き込みを行うことが可能である。本実施形態におけるWi−Fi SDカードは、NANDメモリモジュール18へのアクセス(読み書き)と、Wi−Fiネットワークモジュール19cへのアクセス、さらに、NANDメモリモジュール18に記録されたデータをWi−Fiネットワークモジュール19cへ内部転送を行う。もしくはWi−Fiネットワークモジュール19cのデータをNANDメモリモジュール18に内部転送を行うことが可能である。これにより、例えばNANDメモリモジュール18に記録された写真データをホストデバイス20の介在なしにWi−Fiネットワークモジュール19cが外部に送信することができる。つまり、ホストデバイス20はWi−Fiネットワークモジュール19cの複雑な制御を行う必要がない。
【0087】
さらに、写真データがカードインターフェースを経由せず内部転送されるため、転送速度を上げることができる。例えば、写真データの内部転送をカードコントローラ内部のDMA(Direct Memory Access)レジスタで制御すれば、ホストデバイス20とSDカード11とは独立して動作することが可能である。
【0088】
また、Wi−Fiネットワークモジュール19cのステータス情報や、外部ネットワークのサーバーからダウンロードしたデータなどを、ホストデバイス20が逐次管理することなく、自動的にNANDメモリモジュール18に直接記録することが可能である。
【0089】
図14は、SDカード11とホストデバイス20の別の構成例を示す。
【0090】
図14は、図13と異なり、SDカード11はWi−Fi機能を有さず、カードコントローラ11bとNANDメモリモジュール18で構成されている。また、ホストデバイス20は、Wi−Fi機能を有している。すなわち、ホストデバイス20は、ホストコントローラ21と、Wi−Fiネットワークモジュール19cと、リードコマンド(CMD48)とライトコマンド(CMD49)を分離するためのカードコントローラ25とを有している。
【0091】
この構成は、デジタルカメラがWi−Fi機能を有する場合において、図13と同じ制御方法でWi−Fiネットワークモジュール19cの制御が可能である。
【0092】
図15は、リードコマンド(CMD48)とライトコマンド(CMD49)でアクセスする拡張レジスタの例を示している。前述したように、拡張レジスタのページ0は、ページ1以降のページのインデックスとなっており、ホストデバイス20は、ページ0を読むことにより、カードがどのような機能を有しているか、そのサポートされている機能の規格のバージョン情報やプロファイル情報(オプショナル機能のうちどの機能がサポートされているか)、その機能を制御するためのドライバ情報(どのメーカーから提供されているドライバか、ドライバのバージョンが何であるか)などを知ることができる。例えば、あるカードがWi−Fi機能とともに、Bluetooth(登録商標)機能を有しているのであれば、Wi−Fi機能にアクセスするためのレジスタをページ1に割り当て、Bluetooth機能にアクセスするためのレジスタを例えばページ2に割り当てる。ホストデバイス20は必要に応じてページ1、2にアクセスし、それぞれの機能を同時に用いることが可能である。これにより、Wi−Fi機能を用いて外部のサーバーからデータをダウンロードしてカードに一旦記録し、Bluetooth機能を用いて周辺機器に転送して再生や表示するといった動作を実現することができる。
【0093】
図16は拡張レジスタをWi−Fi SDカードに用いた場合の例を示す。
【0094】
Wi−Fi SDカードは、その用途に応じて5種類の拡張レジスタで構成されている。Wi−Fi SDカード・コマンド・ライト・レジスタは、書き込み専用のレジスタでありホストデバイスからカードに対してコマンドを発行するときにアクセスされる。Wi−Fi SDカード・ステータス・レジスタは、読み込み専用のレジスタであり、ホストデバイスがカードのステータス情報を取得するときにアクセスされる。Wi−Fi SDカード・レスポンス・データ・レジスタは、読み込み専用のレジスタであり、ホストデバイスが外部サーバーからカードにダウンロードしたデータ(HTTPレスポンス・データ)を取得するときにアクセスされる。Wi−Fi SD カードID・リスト・レジスタは、読み込み専用のレジスタであり、そのカードに接続している(若しくは接続をリクエストしている)他のデバイスのIDのリストをホストデバイスが取得するときにアクセスされる。Wi−Fi SDカードSSID・ヒストリ・レジスタは、読み込み専用のレジスタであり、カードが過去に接続したSSID(若しくは接続しなかったが接続するようにリクエストされたSSID)のリストをホストデバイスが取得するときにアクセスされる。
【0095】
本実施形態は、これらのWi−Fi SDレジスタを拡張レジスタのページにそれぞれ割り当てるケースを説明する。先ず、ホストデバイス20は、リードコマンド(CMD48)を用いて拡張レジスタのページ0を読み、Wi−Fi SD機能がカードに実装されているか、それぞれの機能を用いるために何ページをアクセスすればよいかを確認する。ここでは、ページ番号(i、j、k、l、m)とWi−Fi SDレジスタの略称(WIFISDCR、WIFISDSR、WIFISDRD、WIFISDIL、WIFISDSH)のペアがページ0に記録されている。
【0096】
ホストデバイス20がカードに対してコマンドを発行する場合、コマンド発行用のレジスタであるWi−Fi SDカード・コマンド・ライト・レジスタに対してライトコマンド(CMD49)にて書き込みを行う。このとき、ページ0の情報から当該レジスタはページiにあることが分かっているため、CMD49の引数としてページiが指定される。同様にホストデバイス20がカードからステータス情報等を取得する場合、データ取得のためのレジスタであるWi−Fi SDカード・ステータス・レジスタ、Wi−Fi SDカード・レスポンス・データ・レジスタ、Wi−Fi SD カードID・リスト・レジスタ、Wi−Fi SDカードSSID・ヒストリ・レジスタのいずれかより、リードコマンド(CMD48)にてデータを読み出す。このとき、CMD48の引数としては、それぞれのレジスタに対応するページ番号であるj、k、l、mが指定される。
【0097】
ここで、本実施形態において、書き込み用レジスタと読み込み用レジスタを別のページに割り当てているが、それぞれのレジスタは書き込み専用と読み込み専用となっているため、同じページに割り当てることも可能である。
【0098】
図17は、ホストデバイス20の起動時の動作を示している。
【0099】
ホストデバイス20は、起動されると、リードコマンド(CMD48)を発行し、拡張レジスタ31のページ0のデータを読み込み、SDカード11が有する拡張機能としての無線通信機能を確認する(ST11、ST12)。すなわち、SDカード11がWi−Fiや、Bluetooth など、どのような無線通信機能を実装しているかが確認される。次に、ホストデバイス20がSDカード11の拡張機能に対応しているかどうかが判別される(ST13)。この結果、拡張機能に対応している場合、その拡張機能を有効とさせるため、拡張レジスタ31のページi(iは0以外)のデータが読み込まれ(ST14)、SDカード11が対応する例えば規格名、バージョン、プロファイル、デバイス情報などが確認される(ST15)。これに基づき、ホストデバイス20は、ホストデバイス20が所有する最適なドライバを有効とする(ST16)。これにより、SDカード11の拡張機能にアクセスすることが可能となる。
【0100】
次に、拡張レジスタ31の全てのページの機能を確認したかどうかが判別される(ST17)。この結果、残りのページがある場合、次のページにおけるカードの機能が確認され(ST18、ST16)、全てのページが確認されている場合は、機能設定が終了される。
【0101】
(無線LAN設定)
図18は、無線LANの設定動作を示している。
【0102】
図18において、ホスト20は、先ず、SDカード11に対して、Wi−Fiのネットワークを検索するため、コマンド(CMD49)を発行する(S1)。このコマンド(CMD49)のデータに、Wi−Fiのネットワークを検索するため「ScanWiFi」コマンドが含まれている。この「ScanWiFi」コマンドは、拡張レジスタ31の例えばページiに書き込まれる。SDカード11のCPU13は、「ScanWiFi」コマンドに応じて、無線通信インターフェース17aを介して無線LAN信号処理部19aを起動し、無線LAN信号処理部19aは、ネットワークのアクセスポイントをスキャンする(S1−1)。このスキャン結果は、無線通信インターフェース17a、バッファ16、メモリインターフェース17bを介してNANDフラッシュメモリ18に「SSIDLIST」ファイルとして保存される(S1−2)。この「SSIDLIST」ファイルは、アクセス可能なアクセスポイントの名前(SSID)を含んでいる。NANDフラッシュメモリ18の「SSIDLIST」が更新されると、拡張レジスタ31のページjに設けられたWi−Fi SDカード・ステータス・レジスタのステータスが更新される。
【0103】
この間、ホスト20は、ポーリングにより、NANDフラッシュメモリ18のステータスが更新されているか判別する(S2)。具体的には、ホスト20は、コマンド(CMD48)によってWi−Fi SDカード・ステータス・レジスタのステータスを読み込み、SDカード11によるSSIDの走査が成功したかどうかを確認する。
【0104】
SSIDの走査が成功した場合、ホスト20は、通常のリードコマンドにより、NANDフラッシュメモリ18に保存された「SSIDLIST」ファイルを読み取る(S3)。
【0105】
この後、ホスト20は、「SSIDLIST」ファイル中のSSIDのうちの1つを選択し、コマンド(CMD49)を発行する。すなわち、このコマンド(CMD49)により、拡張レジスタ31のページiに「SetSSID」コマンドを書き込む。これによりホスト20は、SSIDをセットすることをSDカード11に要求する(S4)。
【0106】
次いで、ホスト20は、コマンド(CMD49)によって、拡張レジスタ31のページiに「StartApplication」コマンドを書き込む。これにより、ホスト20は、SDカード11に無線LANアプリケーションの動作開始を要求する(S5)。
【0107】
SDカード11は、「StartApplication」コマンドに応じて無線LAN信号処理部19aを介して、ネットワークとの通信を可能とするため、アクセスポイントにアソシエーションを要求する(S5−1)。アクセスポイントからのアソシエーション応答を受信した場合、SDカード11は、DHCP(Dynamic Host Configuration Protocol)により、アクセスポイントからIPアドレスを取得し、通信の準備を行う(S5−2)。通信の準備が完了すると、拡張レジスタ31のページjに設けられたWi−Fi SDカード・ステータス・レジスタのステータスが更新される。
【0108】
この間、ホスト20は、ポーリングにより、ステータスが更新されたかどうかを判断する(S6)。具体的には、ホスト20は、コマンド(CMD48)によってWi−Fi SDカード・ステータス・レジスタのステータスを読み込み、ステータスが更新されたかどうかを判断する。ステータスが更新された場合、SDカード11とアクセスポイントとの通信が開始され、例えばホスト20を介在せず、ネットワークよりSDカード11にデータを取得することができる。
【0109】
(時間情報の付加)
図19は、Wi−Fi SDレジスタが拡張レジスタ31を用いたファイルに対する時間情報の付加動作を示すものであり、図18に示すスタートアプリケーション動作の一例を示している。
【0110】
図19に示すように、先ず、ホストデバイス20によりコマンド(CMD49)が発行される。このコマンド(CMD49)の例えばデータとして時間情報が設定される。カードコントローラ11aのCPU13は、コマンド(CMD49)に応じて、拡張レジスタ31のページi(Wi−Fi SDカード・コマンド・ライト・レジスタ)に時間情報を書き込む(S21)。この後、拡張レジスタ31のページiに書き込まれたデータは、CPU13により読み出され、タイマ41に設定される(S22)。このタイマ41は、例えばファームウェア又はハードウェアにより構成される。タイマ41に設定された時間情報は、タイマ41により更新される。
【0111】
この状態において、例えば無線LAN信号処理部19aにより、ネットワークを経由してデータが得られた場合、このデータは、無線通信インターフェース17aを介してカードコントローラ11aのバッファ16に保存される(S23)。CPU13は、タイマ41から時間情報を参照する(S24)。この時間情報はバッファ16に保存されたデータに付加され、NANDフラッシュメモリ18に書き込まれる(S25)。
【0112】
このようにして、ホスト20を介さず、ネットワークから取得されたデータに時間情報が付加され、NANDフラッシュメモリ18に書き込まれる。
【0113】
上記実施形態によれば、コマンドCMD49を用いてホスト20から時間情報をSDカード11内の拡張レジスタ31に送ることにより、SDカード11は、時間情報を取得することができる。このため、SDカード11において、ホスト20を介さず無線通信により、ネットワークから取得したデータをファイルとして、カード内のNANDフラッシュメモリ18に保存する場合、ファイルに時間情報を付加することができる。したがって、ユーザーは、保存されたファイルがどのタイミングで受信したファイルであるかを知ることが可能となり、ファイルの作成時間とファイルの更新時間を知ることが可能となる。
【0114】
さらに、ホスト20がSDカード11のファイルを読み出し表示する場合において、時間情報に基づき、時間順に並べることが可能となる。また、ホスト20が、SDカード11からある特定の日時のファイルのみを読み出し表示することも可能となる。
【0115】
尚、上記実施形態は、無線LANを用いて取得したデータに時間情報を付加することについて説明したが、本実施形態は、これに限定されるものではない。元来、SDカード11は、SDカード11内に時間情報を有していなかったため、時間情報を使用することができなかった。しかし、本実施形態のように、コマンドCMD49を用いてホスト20からSDカード11内に時間情報を設定し、タイマ41によりこの時間情報を更新することにより、この時間情報を用いて、各種の動作が可能となる。例えばNANDフラッシュメモリ18内のデータを、時間情報を用いて定期的に再書き込みすることにより、データをリフレッシュすることが可能となる。
【0116】
その他、本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【0117】
11…メモリデバイス、13…CPU、14…ROM、15…RAM、16…バッファ、18…NAND型フラッシュメモリ、19a…無線LAN信号処理部、19…Wi−Fiネットワークモジュール、20…ホスト、21…ホストコントローラ、22…CPU、31…拡張レジスタ、41…タイマ。

【特許請求の範囲】
【請求項1】
不揮発性半導体記憶装置と、
前記不揮発性半導体記憶装置を制御する制御部と、
前記制御部に接続された作業エリアとしてのメモリと、
前記メモリに設けられ、時間情報が設定される拡張レジスタと、
前記時間情報を更新するタイマと、を具備し、
前記制御部は、前記不揮発性半導体記憶装置にファイルを記録するとき、前記タイマにより更新された時間情報をファイルに付加することを特徴とするメモリシステム。
【請求項2】
前記制御部に接続された無線通信機能部をさらに具備し、
前記制御部は、前記無線通信機能部によりネットワークから取得したデータに前記タイマにより更新された時間情報を付加し、前記不揮発性半導体記憶装置にファイルを記録することを特徴とする請求項1記載のメモリシステム。
【請求項3】
前記時間情報は、ホストから発行されるコマンドに付加されていることを特徴とする請求項2記載のメモリシステム。
【請求項4】
前記時間情報は、前記コマンドにより、前記拡張レジスタの特定のページに記録されることを特徴とする請求項3記載のメモリシステム。
【請求項5】
前記制御部は、前記不揮発性半導体記憶装置に記憶されたファイルに付加された時間情報に基づき、前記ファイルを前記不揮発性半導体記憶装置に再書き込みすることを特徴とする請求項4記載のメモリシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate


【公開番号】特開2012−168865(P2012−168865A)
【公開日】平成24年9月6日(2012.9.6)
【国際特許分類】
【出願番号】特願2011−30848(P2011−30848)
【出願日】平成23年2月16日(2011.2.16)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】