(57)【要約】【課題】リードが許可されているデータを高速にリード可能とするメモリシステムを提供する。【解決手段】本実施形態に係るメモリシステムは、不揮発性メモリとコントローラとを含む。コントローラは、コントローラに対する電力供給が開始された場合に、不揮発性メモリに記憶されているファイルの配置位置を示すファイル配置データを不揮発性メモリからリードし、コントローラが不揮発性メモリに記憶されているシステムファイルをリード可能であることを示す情報を生成し、コントローラが電力供給前に不揮発性メモリにライト済みであった第１のユーザファイルをリード不可であることを示す情報を生成し、コントローラが電力供給の開始後に不揮発性メモリにライトされた第２のユーザファイルをリード可能であることを示す情報を生成する。【選択図】  図１
2020067753.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリと、
前記不揮発性メモリに対するアクセスを制御するコントローラと、
を具備し、
前記コントローラは、
前記コントローラに対する電力供給が開始された場合に、前記不揮発性メモリに記憶されているファイルの配置位置を示すファイル配置データを前記不揮発性メモリからリードし、前記コントローラが前記不揮発性メモリに記憶されているシステムファイルをリード可能であることを示す情報を生成し、前記コントローラが前記電力供給前に前記不揮発性メモリにライト済みであった第１のユーザファイルをリード不可であることを示す情報を生成し、
前記コントローラが前記電力供給の開始後に前記不揮発性メモリにライトされた第２のユーザファイルをリード可能であることを示す情報を生成する、
メモリシステム。
【請求項２】
前記コントローラは、前記不揮発性メモリの所定サイズのデータごとにリードを許可するか否かを示すリード許可情報を含む管理データを管理する、
請求項１のメモリシステム。
【請求項３】
前記コントローラは、ライトコマンドを受信した場合に、前記ライトコマンドに含まれているアドレスとデータサイズとに基づいて、前記第２のユーザファイルに対応する前記リード許可情報を設定する、
請求項２のメモリシステム。
【請求項４】
前記コントローラは、外部装置からリードコマンドを受信し、リード対象のアドレスで示される領域に対応する前記リード許可情報を取得し、取得された前記リード許可情報のうちリード許可を示す情報の数であるデータ転送数をカウントし、前記不揮発性メモリからリードした前記リード許可情報に対応する前記データ転送数分のデータを、前記外部装置へ送信する、
請求項２又は請求項３のメモリシステム。
【請求項５】
前記コントローラは、カウントされた前記データ転送数が所定の転送制限数未満の場合に、前記リード許可情報の取得を行い、前記データ転送数が前記所定の転送制限数以上の場合に、前記不揮発性メモリに対して前記データ転送数分の前記リード許可情報に対応する前記データを前記外部装置へ送信する、
請求項４のメモリシステム。
【請求項６】
前記コントローラは、前記データ転送数分の前記リード許可情報に対応する前記データのリード処理と、次のリード許可情報の取得処理及び次のデータ転送数のカウント処理とを、並列に実行する、請求項５のメモリシステム。
【請求項７】
第１の外部装置と電気的に接続可能な接続部と、
無線アンテナと、
前記無線アンテナより供給される電力に基づいて動作可能なメモリと、
前記無線アンテナより供給される電力に基づいて動作可能であり、第２の外部装置と前記無線アンテナを用いた通信を行う通信コントローラと、
をさらに具備し、
前記不揮発性メモリ及び前記コントローラは、前記第１の外部装置から前記接続部経由で供給される電力に基づいて動作する、
請求項１乃至請求項３のうちのいずれか１項のメモリシステム。
【請求項８】
前記通信コントローラと前記第２の外部装置との間の前記通信は、ＮＦＣ（Near Field Communication）に準拠した無線通信である、
請求項７のメモリシステム。
【請求項９】
不揮発性メモリと、前記不揮発性メモリを制御するコントローラとを具備するメモリシステムの制御方法であって、
前記コントローラにより、前記コントローラに対する電力供給が開始された場合に、前記不揮発性メモリに記憶されているファイルの配置位置を示すファイル配置データを前記不揮発性メモリからリードし、前記コントローラが前記不揮発性メモリに記憶されているシステムファイルをリード可能であることを示す情報を生成し、前記コントローラが前記電力供給前に前記不揮発性メモリにライト済みであった第１のユーザファイルをリード不可であることを示す情報を生成することと、
前記コントローラが前記電力供給の開始後前記不揮発性メモリにライトされた第２のユーザファイルをリード可能であることを示す情報を生成することと、
を具備する、制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、メモリシステム及びその制御方法に関する。
【背景技術】
【０００２】
電子機器に着脱可能であり不揮発性メモリを備えるメモリシステムが広く用いられている。電子機器にこのようなメモリシステムが装着された場合、電子機器は、メモリシステムにデータをライト可能となり、メモリシステムからデータをリード可能となる。電子機器に着脱可能なメモリシステムの一例として、メモリカードがある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−１４３３９３号公報
【特許文献２】特開２０１７−０６８８２３号公報
【特許文献３】特開２０１７−０７２８８７号公報
【特許文献４】特開２０１５−１９５４８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本実施形態は、不揮発性メモリを備え、データのセキュリティを確保するメモリシステム及びその制御方法を提供する。
【課題を解決するための手段】
【０００５】
本実施形態に係るメモリシステムは、不揮発性メモリとコントローラとを含む。コントローラは、不揮発性メモリに対するアクセスを制御する。コントローラは、コントローラに対する電力供給が開始された場合に、不揮発性メモリに記憶されているファイルの配置位置を示すファイル配置データを不揮発性メモリからリードし、コントローラが不揮発性メモリに記憶されているシステムファイルをリード可能であることを示す情報を生成し、コントローラが電力供給前に不揮発性メモリにライト済みであった第１のユーザファイルをリード不可であることを示す情報を生成し、コントローラが電力供給の開始後に不揮発性メモリにライトされた第２のユーザファイルをリード可能であることを示す情報を生成する。
【図面の簡単な説明】
【０００６】
【図１】本実施形態に係るメモリシステムの構成の一例を示すブロック図。
【図２】本実施形態に係る管理テーブルと不揮発性メモリとの関係の一例を示す図。
【図３】本実施形態に係るリードロックモード時のデータリード処理の一例を示すフローチャート。
【図４】本実施形態に係る管理テーブル検索及びデータ転送数取得処理の一例を示すフローチャート。
【図５】本実施形態に係るメモリシステムで実行されるリードロックモード時の処理の一例を示すフローチャート。
【図６】本実施形態に係るメモリシステムのリード許可フラグの設定処理の一例を示すフローチャートである。
【発明を実施するための形態】
【０００７】
以下に、本実施形態について図面を参照して説明する。なお、以下の説明において、同一又は実質的に同一の機能を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。本実施形態は、技術的思想を具体化するための装置及び方法を例示するものであって、本実施形態の技術的思想は、構成部品の材質、形状、構造、配置等を下記のものに特定するものでない。本実施形態の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。
【０００８】
本実施形態は、不揮発性メモリに対するデータリードをロック又はロック解除するメモリシステムに関する。
【０００９】
本実施形態において、アクセスは、記憶装置に対するデータのライトとリードの一方又は双方を表すとする。
【００１０】
本実施形態において、フラグをオンするとは、フラグが有効であることを示す状態（例えば「１」）に書き換えること意味し、フラグをオフするとは、フラグが無効であることを示す状態（例えば「０」）に書き換えることを意味する。
【００１１】
図１は、本実施形態に係るメモリシステム１の構成の一例を示すブロック図である。
【００１２】
メモリシステム１は、第１の装置２と電気的に接続され、第２の装置３と無線通信可能である。
【００１３】
情報処理システム４は、例えば、メモリシステム１と、第１の装置２と、第２の装置３とを含む。
【００１４】
第１の装置２は、メモリシステム１の第１のホスト装置でもよい。第１の装置２は、メモリシステム１を着脱可能とするための装着部２１を備える。第１の装置２は、装着部２１にメモリシステム１を装着した状態で、メモリシステム１とコマンド、アドレス、データ、情報、指示、信号などを送受信可能である。第１の装置２は、例えば、デジタルカメラ、玩具、スマートウォッチ、ゲーム機器、携帯電話機、情報処理装置、コンピュータ、ウェアラブル端末、制御装置、電子機器などでもよい。
【００１５】
第２の装置３は、メモリシステム１の第２のホスト装置でもよい。第２の装置３は、例えば、携帯電話機（スマートフォンを含む）、コンピュータ、ゲーム機器、ウェアラブル端末、ポータブルデバイス、制御装置、電子機器などでもよい。第２の装置３は、無線通信により、メモリシステム１とコマンド、アドレス、データ、情報、指示、信号などを送受信可能である。
【００１６】
メモリシステム１は、例えば、第２の装置３などのような外部装置と無線通信可能である。ユーザは、メモリシステム１を第２の装置３へ、接近、接触、又は、密着させる。これにより、メモリシステム１と第２の装置３との間で無線通信が実行される。
【００１７】
メモリシステム１は、第２の装置３と無線通信を行う際に、第２の装置３に対する認証を行う。メモリシステム１は、認証が成功した場合に、第２の装置３からの無線通信を用いたデータのリード及びライトを許可する。逆に、メモリシステム１は、認証が失敗した場合に、第２の装置３からの無線通信を用いたデータのリード及びライトを拒否する。
【００１８】
メモリシステム１は、例えば、メモリカード（ＳＤメモリカード又はマルチメディアカードなど）、ＵＳＢ（Universal Serial Bus）メモリ、ＨＤＤ（Hard Disk Drive）又はＳＳＤ（Solid State Disk）など、様々な記憶装置でもよい。本実施形態では、メモリシステム１がメモリカードの場合を例として説明する。
【００１９】
本実施形態では、メモリシステム１は、例えば１３．５６ＭＨｚなどの周波数で近距離無線通信規格であるＮＦＣ（Near Field Communication）に準拠した無線通信インタフェースを用いる。しかしながら、メモリシステム１によって用いられる無線通信インタフェースは、例えば無線ＬＡＮ（Local Area Network）などのような無線通信インタフェースなどでもよい。ＮＦＣは、一般的な無線ＬＡＮより低電力で通信可能である。
【００２０】
第１の装置２がメモリシステム１を装着すると、メモリシステム１は、第１の装置２と電気的に接続され、第１の装置２から電力の供給を受ける。本実施形態では、この第１の装置２からメモリシステム１へ電力が供給される状態を、メモリシステム１の電源オン状態とする。メモリシステム１は、第１の装置２へデータを送信可能であり、第１の装置２からデータを受信可能である。
【００２１】
本実施形態において、メモリシステム１は、例えばＳＤインタフェースなどの有線インタフェースにしたがって第１の装置２とデータを送受信する。しかしながら、メモリシステム１は、他のインタフェースを用いて第１の装置２とデータを送受信してもよい。
【００２２】
メモリシステム１は、第１の装置２から電力の供給を受けていなくても、無線アンテナ１１の電磁誘導によって発生（誘起）される電力により第２の装置３などの外部装置とデータを通信する機能を備える。すなわち、メモリシステム１は、例えば、無線通信を行い、第２の装置３へデータを送信可能であり、第２の装置３からデータを受信可能である。メモリシステム１は、第１の装置２から電力の供給を受けなくても、第２の装置３からの電波に基づいて電磁誘導によって発生された電力に基づいて少なくとも一部の構成要素で動作可能である。
【００２３】
メモリシステム１は、無線アンテナ１１と、不揮発性メモリ１２と、コントローラ１３と、通信コントローラ１４と、メモリコントローラ１５と、接続部１６とを備える。コントローラ１３は、ミラーリング部１３１とメモリＲを含む。メモリＲは、管理テーブルＴを記憶する。ミラーリング部１３１とメモリＲとのうちの少なくとも一方は、コントローラ１３の外部に備えられてもよい。通信コントローラ１４は、無線通信メモリ１７と電圧検波器１８とを備える。無線通信メモリ１７は、リードロックフラグＦ１とロック状態情報Ｆ２とを記憶する。
【００２４】
通信コントローラ１４と無線通信メモリ１７とは分離した構成としてもよい。コントローラ１３と、通信コントローラ１４と、メモリコントローラ１５とは、自由に組み合わせ、又は、分離することができる。例えば、メモリコントローラ１５はコントローラ１３に含まれるとしてもよい。メモリコントローラ１５とコントローラ１３とは、１チップ化されていてもよい。
【００２５】
本実施形態において、コントローラ１３、通信コントローラ１４、及びメモリコントローラ１５は、電子回路によって構成されてもよい。より具体的には、コントローラ１３、通信コントローラ１４、及びメモリコントローラ１５は、例えば、ＡＳＩＣ(Application Specific Integrated Circuit)でもよい。コントローラ１３、通信コントローラ１４、及びメモリコントローラ１５は、例えばプロセッサであり、プログラムを実行することにより、後述の各種制御を実現するとしてもよい。
【００２６】
コントローラ１３、メモリコントローラ１５、不揮発性メモリ１２は、メモリシステム１が第１の装置２から電力の供給を受けている場合に動作する。メモリシステム１が無線アンテナ１１を介してのみ電力の供給を受けており、第１の装置２から電力を受けていない場合には、コントローラ１３、メモリコントローラ１５、不揮発性メモリ１２は、必ずしも動作しなくともよい。他方、通信コントローラ１４は、メモリシステム１が無線アンテナ１１を介して電力の供給を受けており、第１の装置２から電力の供給を受けていない場合であっても動作可能である。つまり、無線アンテナ１１がＮＦＣに対応する所定の周波数の無線電波を受信すると、通信コントローラ１４は動作可能となり、メモリシステム１はＮＦＣによる通信を実行可能となる。
【００２７】
コントローラ１３は、第１の装置２から、接続部１６経由で、コマンド、アドレス、データ、情報、指示、信号などを受信する。また、コントローラ１３は、第２の装置３から、無線アンテナ１１、通信コントローラ１４経由で、コマンド、アドレス、データ、情報、指示、信号などを受信する。コントローラ１３は、第１の装置２とメモリコントローラ１５との間、及び、第２の装置３とメモリコントローラ１５との間のデータの送受信を制御するブリッジコントローラである。
【００２８】
さらに、コントローラ１３は、メモリコントローラ１５から通信コントローラ１４へのデータの転送、及び、通信コントローラ１４からメモリコントローラ１５へのデータの転送を制御する。
【００２９】
コントローラ１３は、受信したコマンドに基づき、メモリコントローラ１５へ、通信コントローラ１４へ、又は、接続部１６経由で第１の装置２へ、コマンド、アドレス、データ、情報、指示、信号などを送信する。
【００３０】
コントローラ１３は、不揮発性メモリ１２に対するアクセス及びミラーリングの制御を行う。
【００３１】
管理テーブルＴは、不揮発性メモリ１２に記憶されているデータに対して、所定サイズのデータ単位ごとに、リード可能か否かを示す情報を含む。コントローラ１３は、このリード可能か否かを示す情報を生成する。そして、コントローラ１３は、メモリＲに記憶されている管理テーブルＴを用いて、不揮発性メモリ１２に記憶されているデータに対して、所定のデータ単位ごとに、リードを許可するか否か判断する。管理テーブルＴは、図２を用いて後で説明する。
【００３２】
コントローラ１３のミラーリング部１３１は、不揮発性メモリ１２に記憶されているデータと無線通信メモリ１７に記憶されているデータとの間でミラーリング（同期）を行う。ここで、ミラーリングとは、２つ以上のメモリの間でデータの内容を同じにすることをいう。ミラーリング部１３１は、例えば、メモリシステム１が第１の装置２から電力の供給を受けた場合にミラーリングを実行してもよく、不揮発性メモリ１２又は無線通信メモリ１７のうちの少なくとも一方のデータに対するライト又は更新が発生した場合にミラーリングを実行してもよい。
【００３３】
ミラーリング部１３１は、ミラーリングの実行タイミングにおいて、無線通信メモリ１７から通信コントローラ１４経由でリードロックフラグＦ１とロック状態情報Ｆ２をリードする。
【００３４】
ミラーリング部１３１は、ロック／解除モードであり、ロック状態情報Ｆ２がリード不可を示す場合、不揮発性メモリ１２からのデータのリードを行わない。
【００３５】
ミラーリング部１３１は、ロック状態情報Ｆ２がライト不可を示す場合、無線通信メモリ１７に記憶されているデータを、不揮発性メモリ１２にライトしない。
【００３６】
ミラーリング部１３１は、ロック状態情報Ｆ２がライト許可を示す場合、無線通信メモリ１７に記憶されているデータを、不揮発性メモリ１２にライト可能である。
【００３７】
ミラーリング部１３１は、リードロックフラグＦ１に基づいてリードロックモードがオンか否かを判断する。リードロックモードがオンの場合、ミラーリング部１３１は、管理テーブルＴを参照し、リードコマンドの対象となるデータのリードが許可されているか否かを判断する。当該データのリードが許可されている場合、ミラーリング部１３１は、不揮発性メモリ１２からメモリコントローラ１５経由で当該データをリードし、リードしたデータを通信コントローラ１４経由で無線通信メモリ１７に記憶する。当該データのリードが許可されていない場合、ミラーリング部１３１は、コントローラ１３が生成したダミーデータ、コントローラ１３が不揮発性メモリ１２からメモリコントローラ１５経由でリードしたダミーデータ、又は、当該データがリード不可である旨の応答を、通信コントローラ１４経由で無線通信メモリ１７に記憶する。
【００３８】
メモリコントローラ１５は、不揮発性メモリ１２を制御する。メモリコントローラ１５は、例えば、コントローラ１３から入力されたコマンドなどに基づいて、不揮発性メモリ１２へデータをライトする。また、メモリコントローラ１５は、例えば、コントローラ１３から入力されたコマンドなどに基づいて、不揮発性メモリ１２からデータをリードし、コントローラ１３へデータを送信する。
【００３９】
本実施形態において、コントローラ１３又はメモリコントローラ１５は、通信コントローラ１４経由で、又は、通信コントローラ１４を経由することなく、無線通信メモリ１７をアクセス可能でもよい。
【００４０】
不揮発性メモリ１２は、例えば、不揮発性の半導体メモリとしてもよい。不揮発性メモリ１２は、例えばＮＡＮＤ型フラッシュメモリとするが、ＮＯＲ型フラッシュメモリ、ＭＲＡＭ（Magnetoresistive Random Access Memory：磁気抵抗メモリ）、ＰＲＡＭ（Phasechange Random Access Memory：相変化メモリ）、ＲｅＲＡＭ（Resistive Random Access Memory：抵抗変化型メモリ）、ＦｅＲＡＭ（Ferroelectric Random Access Memory）など他の不揮発性の半導体メモリでもよい。例えば、不揮発性メモリ１２は、磁気メモリなどでもよい。不揮発性メモリ１２は、例えば、３次元構造のメモリでもよい。
【００４１】
無線アンテナ１１は、例えば、ＰＣＢパターンアンテナである。無線アンテナ１１の動作可能な周波数帯は、ＮＦＣに対応する所定の周波数帯としてもよい。
【００４２】
無線アンテナ１１は、例えば、第２の装置３からの電波に基づき、電磁誘導による電力を発生できる。無線アンテナ１１は、発生した電力を通信コントローラ１４に供給する。
無線アンテナ１１は、第２の装置３からコマンド、アドレス、データ、情報、指示、信号などを受信する。無線アンテナ１１は、受信したコマンドなどを、通信コントローラ１４に送信する。
【００４３】
通信コントローラ１４は、無線アンテナ１１を介して第２の装置３などと通信を行う。通信コントローラ１４は、コントローラ１３、又は、無線アンテナ１１から、コマンド、アドレス、データ、情報、指示、信号などを受信する。通信コントローラ１４は、受信したコマンドなどに基づいて、例えば、コントローラ１３、無線アンテナ１１へデータなどを送信する。また、通信コントローラ１４は、受信したコマンド、アドレスなどに基づいて、無線通信メモリ１７からデータをリードし、リードしたデータを、コントローラ１３、又は、無線アンテナ１１へ送信する。さらに、通信コントローラ１４は、受信したコマンド、アドレス、データなどに基づいて、無線通信メモリ１７へデータを記憶する。
【００４４】
通信コントローラ１４は、コントローラ１３又は無線アンテナ１１からコマンドとデータを受信した場合、データを無線通信メモリ１７にライトする。しかしながら、通信コントローラ１４は、無線通信メモリ１７へのデータのライトを必ずしも行わなくともよい。
【００４５】
本実施形態において、第１の装置２、コントローラ１３、メモリコントローラ１５、通信コントローラ１４、無線アンテナ１１などの間で通信されるコマンド、アドレス、データ、情報、指示、信号などは、必ずしもその形式が一致する必要はない。すなわち、コマンド、アドレス、データ、情報、指示、信号などは、少なくとも通信する両者の間で認識可能な形式であればよく、通信する両者ではない他の部分でも認識可能な形式である必要はない。
【００４６】
無線通信メモリ１７は、例えば不揮発性のメモリである。無線通信メモリ１７は、通信コントローラ１４による制御にしたがってデータを記憶する。なお、無線通信メモリ１７は揮発性でもよく、無線通信メモリ１７におけるデータの記憶は一時的でもよい。無線通信メモリ１７としては、例えば、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）が用いられるが、上記不揮発性メモリ１２と同様に各種のメモリを用いることができる。
【００４７】
なお、無線アンテナ１１から供給される電力で動作可能とするため、無線通信メモリ１７は、単位容量当たりの消費電力が不揮発性メモリ１２よりも低消費電力であることが望ましい。具体的には、無線通信メモリ１７としてＮＯＲ型のメモリを用いてもよい。
【００４８】
電圧検波器１８は、無線アンテナ１１と電気的に接続されている。電圧検波器１８は、無線アンテナ１１から通信コントローラ１４に供給される電圧を検知する。そして、電圧検波器１８は、通信コントローラ１４が動作可能な所定の電圧に達するまで、ＮＦＣによる通信のリセットコマンドを出す。通信コントローラ１４は、このリセットコマンドを受信している間は、ＮＦＣによる通信を行わない。このリセットコマンドにより、ＮＦＣによる通信の異常起動・動作を防止することができる。電圧検波器１８は所定の電圧に達している場合に、動作可能コマンドを通信コントローラ１４に送信するとしてもよい。通信コントローラ１４は、動作可能コマンドを受信している場合のみ、ＮＦＣに関する通信制御を行う。
【００４９】
接続部１６は、例えば規格化された接続端子であり、メモリシステム１を第１の装置２と電気的に接続可能とする。
【００５０】
本実施形態に係るメモリシステム１は、ロック／解除モード又はリードロックモードのいずれかで動作する。より具体的には、コントローラ１３は、無線通信メモリ１７に記憶されているリードロックフラグＦ１及びロック状態情報Ｆ２を通信コントローラ１４経由でリードし、リードロックフラグＦ１及びロック状態情報Ｆ２の内容にそった制御を実行する。
【００５１】
本実施形態において、ロック（換言すればアクセス制限）とは、メモリシステム１の不揮発性メモリ１２からのデータのリード又は不揮発性メモリ１２へのデータのライトを不可とすることを意味し、ロック解除（換言すればアクセス許可）とは、不揮発性メモリ１２へのライトが不可であった状態をライト可能な状態とすること、又は、不揮発性メモリ１２からのリードが不可であった状態をリード可能な状態とすることを意味する。
【００５２】
ロック／解除モードとは、ユーザが不揮発性メモリ１２に対するアクセスをロックしたい時又はロック解除したい時に、第２の装置３から通信コントローラ１４への無線通信を用いて、メモリコントローラ１５が不揮発性メモリ１２へアクセスすることをロック又はロック解除するモードである。ロック／解除モードがロック状態を示す場合、メモリシステム１は、例えば、第１の装置２及び第２の装置３からのリードコマンド及びライトコマンドを全て無視する。本実施形態のロック／解除モードにおいて、ロック又はロック解除とは、例えば、コントローラ１３が、メモリコントローラ１５へロック／ロック解除コマンドを送信し、メモリコントローラ１５が、このロック／ロック解除コマンドにしたがって不揮発性メモリ１２に対するアクセスをロック又はロック解除することを意味する。
【００５３】
リードロックモードとは、第１の装置２からメモリシステム１へ継続的に電力が供給されている間に不揮発性メモリ１２へライトされたデータをリード可能とし、一旦電力供給が停止し、再度電力供給が開始された場合に、電力供給の停止前に不揮発性メモリ１２へライトされたデータをリード不可とするモードである。
【００５４】
リードロックフラグモードに基づくコントローラ１３の制御について説明する。
【００５５】
本実施形態に係るコントローラ１３は、第１の装置２からメモリシステム１へ電力の供給が開始された場合（例えばパワーアップ状態の場合）に、管理テーブルＴを生成し、無線通信メモリ１７から通信コントローラ１４経由でリードロックフラグＦ１及びロック状態情報Ｆ２をリードし、リードしたリードロックフラグＦ１及びロック状態情報Ｆ２をメモリＲに記憶する。管理テーブルＴは、例えば、不揮発性メモリ１２の所定サイズ（例えば第１のサイズ）のデータごとにリードを許可するか否かを示すリード許可フラグを含む。
【００５６】
コントローラ１３は、第１の装置２から接続部１６を経由してリードコマンドを受信した場合、メモリＲのリードロックフラグＦ１をリードする。コントローラ１３は、リードロックフラグＦ１に基づいてリードロックモードがオンか否かを判断する。リードロックモードがオンの場合、コントローラ１３は、管理テーブルＴを参照し、リード対象となるデータに関し、リードが許可されているか否かを判断する。
【００５７】
リード対象のデータのリードが許可されている場合、コントローラ１３は、例えば、リードを許可するか否かを管理する所定サイズよりも小さいリードサイズ（例えば第２のサイズ）のデータを、不揮発性メモリ１２からメモリコントローラ１５経由で順次リードし、リードしたリードサイズのデータを接続部１６経由で第１の装置２へ順次送信する。
【００５８】
さらに、本実施形態では、コントローラ１３は、例えば、リードコマンドに対応するリード許可フラグの検索を繰り返してもよい。この場合、コントローラ１３は、繰り返し検索により得られたリード許可フラグによりリードが許可されており、かつ、検索されたリード許可フラグに対応するリードサイズの合計がしきい値以上となったか否か判断する。そして、コントローラ１３は、リードサイズの合計がしきい値以上となった場合に、リードが許可されているリードサイズのデータを不揮発性メモリ１２から順次リードし、リードされたリードサイズのデータを接続部１６経由で第１の装置２へ順次送信する。コントローラ１３は、リードサイズの合計がしきい値以上未満の場合に、リードコマンドに対応するリード許可フラグの検索を繰り返す。
【００５９】
リード対象のデータのリードが許可されていない場合、コントローラ１３は、コントローラ１３が生成したダミーデータ、コントローラ１３が不揮発性メモリ１２からメモリコントローラ１５経由でリードしたダミーデータ、又は、当該データがリード不可である旨の応答を接続部１６経由で第１の装置２へ送信する。コントローラ１３は、例えば、ダミーデータとしてランダムなデータを生成してもよく、秘密状態とする必要のないデータを自動で生成してもよい。
【００６０】
リードロックモードでは、例えば、電力供給の停止前に不揮発性メモリ１２へライトされたデータのリードがロックされている場合であっても、コントローラ１３は、ライトコマンドに対応するデータをメモリコントローラ１５経由で不揮発性メモリ１２にライト可能としてもよい。
【００６１】
リードロックモードが解除された場合、コントローラ１３は、電力供給の停止前に不揮発性メモリ１２にライトされたデータを、メモリコントローラ１５経由でリードを許可してもよい。
【００６２】
コントローラ１３は、第１の装置２から接続部１６経由でライトコマンドを受信した場合に、ライトコマンドに含まれているアドレスとデータサイズとに基づいて、ライト対象のユーザファイルに対応するリード許可フラグを管理テーブルＴに設定する。
【００６３】
リードロックフラグＦ１は、メモリシステム１がリードロックモードであるか否かを示すフラグである。メモリシステム１がリードロックモードである場合、リードロックフラグＦ１はオン状態となり、メモリシステム１がリードロックモードでない場合、リードロックフラグＦ１はオフ状態となる。
【００６４】
ロック状態情報Ｆ２は、不揮発性メモリ１２に対するデータのライト又はリードを拒否するか否かを管理する。コントローラ１３は、第１の装置２から接続部１６経由でデータのライトコマンド又はリードコマンドを受信した場合に、メモリＲのロック状態情報Ｆ２、又は、通信コントローラ１４経由で無線通信メモリ１７のロック状態情報Ｆ２をリードし、ロック状態情報Ｆ２に基づいて、データのライト又はリードを許可するか又は拒否するかを判断する。
【００６５】
ロック状態情報Ｆ２は、例えば、不揮発性メモリ１２に対して、リードの許可又は不可、ライトの許可又は不可、リード及びライトの双方の許可又は不可、を示すデータを含む。ロック状態情報Ｆ２は、例えば、複数のビットを含み、各ビットのオン又はオフを切り替えることで、不揮発性メモリ１２を、リードライト可能、リードのみ可能、ライトのみ可能、リードライト不可の４種類のロック状態を実現することができる。なお、ロック状態情報Ｆ２の態様は上述に限定されるものではない。
【００６６】
通信コントローラ１４は、メモリシステム１と第２の装置３との無線通信により、第２の装置３からの指示を受信し、この指示にしたがってリードロックフラグＦ１及びロック状態情報Ｆ２を変更可能である。また、通信コントローラ１４は、メモリシステム１が第１の装置２の装着部２１に装着されている場合に、第１の装置２からの指示を、接続部１６及びコントローラ１３で受信し、この指示にしたがってリードロックフラグＦ１及びロック状態情報Ｆ２を変更可能である。
【００６７】
なお、本実施形態において、リードロックフラグＦ１及びロック状態情報Ｆ２は、無線通信メモリ１７の秘匿領域に記憶されていることが望ましい。しかしながら、リードロックフラグＦ１及びロック状態情報Ｆ２は、無線通信メモリ１７の公開領域に記憶されていてもよい。
【００６８】
図２は、本実施形態に係る管理テーブルＴと不揮発性メモリ１２との関係の一例を示す図である。
【００６９】
管理テーブルＴは、不揮発性メモリ１２の所定の単位（サイズ）のデータごとに、当該データに対して不揮発性メモリ１２からのリードを許可するか否かを示すリード許可フラグＦ３を含む。不揮発性メモリ１２に記憶されているデータに対応するリード許可フラグＦ３がオンの場合、コントローラ１３は当該データをメモリコントローラ１５経由でリード可能である。また、当該データに対応するリード許可フラグＦ３がオフの場合、コントローラ１３は当該データをメモリコントローラ１５経由でリード不可である。
【００７０】
以下では、所定の単位は、例えば１２８キロバイトであるとして説明する。この場合、図２に示すように、例えば不揮発性メモリ１２が３２ギガバイトのサイズである場合、管理テーブルＴのサイズは３２キロバイトとなる。なお、この所定の単位は、不揮発性メモリ１２の種類又は不揮発性メモリ１２に記憶されるデータの種類、性質、サイズなどに応じて任意に変更可能である。
【００７１】
上記のように、各リード許可フラグＦ３は、不揮発性メモリ１２に記憶されている所定のサイズのデータに関連付けられている。リード許可フラグＦ３の初期値は、当該リード許可フラグＦ３に関連付けられている所定のサイズのデータの種類などに応じて、例えばコントローラ１３があらかじめ決定するとしてもよい。この場合、コントローラ１３は、不揮発性メモリ１２に記憶されている所定のサイズのデータに対して、そのデータの種類を判断し、当該データの識別情報と当該データの種類に対応する初期値とを関連付けて管理テーブルＴを生成し、メモリＲに記憶する。
【００７２】
不揮発性メモリ１２は、ファイル配置データＤ１を含む。ファイル配置データＤ１は、不揮発性メモリ１２に記憶されているファイル（又はデータ）のファイルＩＤと位置とを関連付けた情報を含む。コントローラ１３は、例えば、電力供給開始時に、メモリコントローラ１５経由でファイル配置データＤ１を参照することにより、不揮発性メモリ１２のどの位置にどのファイルが配置されているか認識可能である。
【００７３】
ファイル配置データＤ１は、例えば、不揮発性メモリ１２のＦＡＴ（File Allocation Table）領域に配置されてもよい。ファイル配置データＤ１は、例えば、不揮発性メモリ１２の先頭に記憶されてもよい。
【００７４】
不揮発性メモリ１２のファイル配置データＤ１は、第１の装置２、より具体的には第１の装置２のファイルシステムにより設定・管理・制御される。
【００７５】
本実施形態において、ファイル配置データＤ１の配置されるアドレス範囲は、一括してリード許可に設定されており、コントローラ１３はメモリコントローラ１５経由でファイル配置データＤ１をリード可能であるとする。このため、本実施形態においては、管理テーブルＴでファイル配置データＤ１に関するリード許可フラグＦ３を管理する必要はない。コントローラ１３は、ファイル配置データＤ１に対応するアドレス範囲をアクセス可と認識する。
【００７６】
不揮発性メモリ１２は、例えば、ユーザ領域に、ディレクトリエントリファイルＤ２、管理ファイルＤ３、ユーザファイルＤ４を記憶する。
【００７７】
ディレクトリエントリファイルＤ２は、不揮発性メモリ１２の物理アドレスから管理テーブルＴのエントリを決定するために用いられるデータを含む。換言すれば、ディレクトリエントリファイルＤ２は、不揮発性メモリ１２の物理アドレスと管理テーブルＴのエントリ（例えばリード許可フラグＦ３）とを関連付けている。
【００７８】
管理ファイルＤ３は、例えば、第１の装置２がメモリシステム１を管理する際に用いるシステムファイルなどである。例えば、メモリシステム１が複数の装置に対して装着可能であり、複数の装置のそれぞれに対して個別の管理ファイルＤ３が必要とされる場合には、この複数の装置のそれぞれに対応する複数の管理ファイルＤ３が不揮発性メモリ１２に記憶されてもよい。この場合、コントローラ１３は、どの装置に対してどの管理ファイルＤ３が対応付けられているかを、それぞれの管理ファイルＤ３に付される拡張子により判断可能としてもよい。
【００７９】
コントローラ１３は、例えば、第１の装置２がメモリシステム１に対してデータのリード又はライトを行う前に、管理ファイルＤ３に対応するリード許可フラグＦ３の初期値をオンに設定してもよい。これにより、管理ファイルＤ３に対するリードが初期的に許可される。
【００８０】
ユーザファイルＤ４，Ｄ５は、例えば、第１の装置２又は第２の装置３からの指令によりライトされたドキュメント、動画、画像などのファイル（例えばユーザデータ）である。
【００８１】
本実施形態において、ユーザファイルＤ４は、第１の装置１からコントローラ１３への電力供給が継続されている間に不揮発性メモリ１２にライトされたデータとする。
【００８２】
これに対して、ユーザファイルＤ５は、第１の装置１からコントローラ１３への電力供給が開始される前から不揮発性メモリ１２にライト済みであったデータとする。
【００８３】
リードロックモードにおいて、例えば、第１の装置２から電力が供給されているコントローラ１３がメモリコントローラ１５経由で不揮発性メモリ１２にユーザファイルＤ４を書き込んだ場合、コントローラ１３は、第１の装置２からの当該電力供給が継続されている間は、ユーザファイルＤ４に対応するリード許可フラグＦ３をオンに設定し、ユーザファイルＤ４をリード可としてもよい。これにより、第１の装置２は、メモリシステム１へユーザファイルＤ４をライトしてから第１の装置２からメモリシステム１への電力供給が停止されるまでの間、ライトしたユーザファイルＤ４をメモリシステム１から読み出して例えば表示などすることができる。したがって、ユーザは、第１の装置２を用いて、ライトしたデータがメモリシステム１に正常に記憶されたか否かを確認可能である。一旦、第１の装置２からメモリシステム１への電力供給が停止され、再度第１の装置２からメモリシステム１へ電力供給が開始されると、コントローラ１３は、ユーザファイルＤ５に対応するリード許可フラグＦ３をオフに設定し、リードロックモードが解除されるまでユーザファイルＤ５をリード不可とする。
【００８４】
なお、リードロックモードでは、第１の装置２からメモリシステム１への電力供給の停止と再開によりリード許可からリード不可へ切り替えることに代えて、他の条件によりリード許可とリード不可とを切り替えてもよい。
【００８５】
例えば、コントローラ１３は、不揮発性メモリ１２にユーザファイルＤ４が書き込まれてから所定の期間、ユーザファイルＤ４のリードを許可し、所定の期間を経過するとユーザファイルＤ４のリードを不可とするように管理テーブルＴを更新してもよい。この場合、ユーザは、ユーザファイルＤ４をライトした後の所定期間については容易にユーザファイルＤ４の内容を確認することができる。これにより、ライトされたデータのセキュリティを確保しつつ、ユーザの利便性を向上させることができる。
【００８６】
例えば、リードロックモードにおいて、コントローラ１３は、第１の装置１からコントローラ１３への電力供給開始前から既に不揮発性メモリ１２にライトされているユーザファイルＤ５のリード許可フラグＦ３の初期値をオフとする。この場合、コントローラ１３は、ユーザファイルＤ５をリード不可となる。これにより、ユーザファイルＤ５のセキュリティを確保することができる。
【００８７】
なお、コントローラ１３は、第１の装置２の種類を識別し、第１の装置２の種類に応じてリードを許可するデータの種類を決めるとしてもよい。この場合、コントローラ１３は、リードを許可すると判断したデータに対応するリード許可フラグＦ３をオンに設定する。
【００８８】
ここで、管理テーブルＴの生成及び利用についてより具体的に説明する。
コントローラ１３は、例えば、第１の装置２からメモリシステム１へ電力が供給されるなどにより、メモリシステム１の電源が入ると、無線通信メモリ１７から通信コントローラ１４経由でリードロックフラグＦ１を読み出し、リードロックフラグＦ１をメモリＲへ記憶する。また、コントローラ１３は、読み出したリードロックフラグＦ１がリードロックモードをオンすることを示す場合、管理テーブルＴを生成し、生成した管理テーブルＴをメモリＲへ記憶する。
【００８９】
ファイル配置データＤ１が記憶される領域は、例えば、第１の装置２などのような外部の装置が使用するファイルシステムによって決定される。そこで、本実施形態に係るコントローラ１３は、ファイル配置データＤ１が配置される所定のアドレス範囲に関しては、管理テーブルＴを参照することなく一括でリード可能と判断する。
【００９０】
ディレクトリエントリファイルＤ２と管理ファイルＤ３に関しては、例えば、第１の装置１からコントローラ１３への電力供給が開始されると、コントローラ１３は、メモリコントローラ１５経由で不揮発性メモリ１２を検索し、ディレクトリエントリファイルＤ２に対応するリード許可フラグＦ３をオン状態で管理テーブルＴに設定するとともに、管理ファイルＤ３に対応するリード許可フラグＦ３をオン状態で管理テーブルＴに設定する。
【００９１】
ユーザファイルＤ５に関しては、例えば、第１の装置１からコントローラ１３への電力供給が開始されると、コントローラ１３は、メモリコントローラ１５経由で不揮発性メモリ１２を検索し、ユーザファイルＤ５に対応するリード許可フラグＦ３をオフ状態で管理テーブルＴに設定する。
【００９２】
ここまでの処理が終了してから、コントローラ１３は、接続部１６経由で第１の装置２へアクセス許可（例えばレディ応答）を返す。これにより、第１の装置２は、メモリシステム１がリードロックモードの場合に、ディレクトリエントリファイルＤ２及び管理ファイルＤ３をリード可能であるが、ユーザファイルＤ５をリードすることはできない。
【００９３】
コントローラ１３は、第１の装置２から接続部１６経由で、アドレスとデータサイズとを含むライトコマンド、ユーザファイルＤ４を受信する。コントローラ１３は、ライトコマンドのアドレス及びデータサイズと、ユーザファイルＤ４とに基づいて、メモリコントローラ１５経由で不揮発性メモリ１２へユーザファイルＤ４をライトし、アドレスとデータサイズとに基づいてユーザファイルＤ４に対応するオン状態を示すリード許可フラグＦ３を管理テーブルＴに登録する。このように、本実施形態においては、不揮発性メモリ１２にライトされるデータに関するリード許可フラグＦ３は、第１の装置２から受信したライトコマンドのアドレスとデータサイズとに基づいて管理テーブルＴに設定される。
【００９４】
本実施形態に係るコントローラ１３は、第１の装置２から接続部１６経由でリードコマンドを受信すると、管理テーブルＴに対して、リードコマンドのアドレスに関するリード許可フラグＦ３を検索する。
【００９５】
コントローラ１３は、検索されたリード許可フラグＦ３のうちオン状態のリード許可フラグＦ３の数をデータ転送数としてカウントする。コントローラ１３は、不揮発性メモリ１２からメモリコントローラ１５経由で、データ転送数分のリード許可フラグＦ３に対応するデータを読み出し、接続部１６経由で読み出したデータを第１の装置２へ送信する。
【００９６】
リード許可フラグＦ３のサイズは、例えば、コントローラ１３がライトコマンドを受信した際に、不揮発性メモリ１２のメモリ容量、メモリシステム１で採用される規格に基づいて設定されてもよく、ユーザ又は製造者により予めメモリシステム１に対して設定されていてもよい。
【００９７】
また、本実施形態において、コントローラ１３は、データ転送数、換言すればリードコマンドに対応するオン状態のリード許可フラグ数のカウント値が、所定の転送制限数未満の間、リード許可フラグＦ３の検索を繰り返す。
【００９８】
コントローラ１３は、データ転送数が転送制限数以上となると、データ転送数分のリード許可フラグに対応するデータをリードし、リードしたデータを接続部１６経由で第１の装置２へ送信する。
【００９９】
このように本実施形態では、リード許可フラグＦ３と不揮発性メモリ１２の実際のメモリ領域とが１対１に対応付けられる。コントローラ１３は、リード対象のアドレスを、１つのリード許可フラグＦ３に対して割り当てられるメモリ領域のサイズで割り算することにより、リード対象のアドレスで示される領域（すなわち位置）に対応するリード許可フラグＦ３を容易に取得することができる。このリード対象のアドレスに対応するリード許可フラグＦ３を取得する処理を、本実施形態ではリード許可フラグＦ３の検索という。コントローラ１３は、検索されたリード許可フラグＦ３がオンか否か容易に判断可能である。本実施形態では、リード許可フラグＦ３の検索を容易化することにより、不揮発性メモリ１２からのデータのリード時間を短縮している。本実施形態では、１つのリード許可フラグＦ３に対して、リード許可フラグＦ３のサイズより大きなサイズのメモリ領域を割り当てているので、不揮発性メモリ１２のサイズより小さいのサイズの管理テーブルＴで不揮発性メモリ１２全体を管理することができる。
【０１００】
図３は、本実施形態に係るリードロックモード時のデータリード処理の一例を示すフローチャートである。
【０１０１】
コントローラ１３は、第１の装置２から接続部１６経由でアドレスを含むリードコマンドを受信すると、ステップＳ３０１において、メモリＲの管理テーブルＴに対してアドレスに対応するリード許可フラグＦ３を検索し、データ転送数を取得する。このステップＳ３０１による管理テーブルＴの検索及びデータ転送数取得の処理に関する詳細は、図４を用いて後で説明する。
【０１０２】
ステップＳ３０２において、コントローラ１３はデータ転送数がゼロより大きいか否かを判断する。
【０１０３】
ステップＳ３０１によって取得されたデータ転送数がゼロであった場合、検索されたリード許可フラグＦ３がオフと判断し、処理はステップＳ３０９へ移動する。
【０１０４】
ステップＳ３０９において、コントローラ１３は、不揮発性メモリ１２に対するアクセスを実行せず、ダミーデータを準備する。
【０１０５】
ステップＳ３１０において、コントローラ１３は、接続部１６経由で第１の装置２へダミーデータを返す。
【０１０６】
ステップＳ３１１において、コントローラ１３は、第１の装置２から接続部１６経由で終了コマンドを受信したか否か判断する。
【０１０７】
終了コマンドを受信していない場合、処理は上記のステップＳ３０９へ戻る。
終了コマンドを受信した場合、処理は終了する。
【０１０８】
上記ステップＳ３０２においてデータ転送数が１以上の場合、コントローラ１３は、検索されたリード許可フラグＦ３がオンと判断する。そして、ステップＳ３０３において、コントローラ１３は、不揮発性メモリ１２に対してメモリコントローラ１５経由でデータ転送数分のリード許可フラグＦ３に対応するデータのリードを行うリードコマンドを発行する。
【０１０９】
ステップＳ３０３においてデータ転送数分のリード許可フラグＦ３に対応するデータのリードコマンドが発行されると、メモリコントローラ１５は、ステップＳ３０４において、データ転送数分のリード許可フラグＦ３に対応するデータをコントローラ１３に送信し、コントローラ１３は、第１の装置２に対して接続部１６経由でデータ転送数分のリード許可フラグＦ３に対応するデータを転送する。
【０１１０】
ステップＳ３０５において、メモリコントローラ１５は、リードコマンドで指定されたデータ（すなわち、データ転送数分のリード許可フラグＦ３に対応するデータ）のリードが終了すると、転送終了をコントローラ１３へ通知し、コントローラ１３は、例えば、メモリＲへ転送終了フラグを設定し、転送を終了する。
【０１１１】
コントローラ１３は、メモリコントローラ１５がリード動作を行っている間に、ステップＳ３０６において２回目以降の管理テーブルＴの検索及びデータ転送数取得を行う。
【０１１２】
ステップＳ３０６で管理テーブルＴの検索及びデータ転送数取得が終了すると、コントローラ１３は、ステップＳ３０７において、第１の装置２から終了コマンドを受信したか否かを判断する。終了コマンドが受信されていた場合は、コントローラ１３は、転送を終了する。
【０１１３】
ステップＳ３０７において終了コマンドを受信していないと判断された場合、ステップＳ３０８において、コントローラ１３は、例えばメモリＲの転送終了フラグを参照し、メモリコントローラ１５の転送が終了したか否かを判断する。
【０１１４】
ステップＳ３０８においてメモリＲに転送終了フラグが設定されている場合、処理はステップＳ３０２へ戻り、コントローラ１３は、上記のステップＳ３０６で取得されたデータ転送数が１以上か否かをチェックし、１以上であれば、処理はステップＳ３０３へ進み、データ転送数分のリード許可フラグＦ３に対応するリードコマンドの発行を行う。ステップＳ３０２において上記のステップＳ３０６で取得されたデータ転送数がゼロと判断された場合、処理はステップＳ３０９に進み、コントローラ１３は、ダミーデータを準備する。
【０１１５】
上記のステップＳ３０８においてメモリＲに転送終了フラグが設定されていない場合、処理はステップＳ３０７に戻り、終了コマンドが受信されるか、または、転送終了フラグが設定されるまで、同様の処理が繰り返される。
【０１１６】
図４は、本実施形態に係る管理テーブル検索及びデータ転送数取得処理の一例を示すフローチャートである。この図４は、例えば、上記図３のステップＳ３０１，Ｓ３０６に相当する。
【０１１７】
ステップＳ４０１において、コントローラ１３は、リードアドレスの示す領域のサイズに対して１つのリード許可フラグＦ３に割り当てられる領域のサイズで割り算を行い、その商と余りにより、管理テーブルＴからリードアドレスに該当するリード許可フラグＦ３を検索する。このような方法を用いることで、管理テーブルＴからリード許可フラグＦ３を容易に検索することができる。
【０１１８】
ステップＳ４０２において、コントローラ１３は、検索されたリード許可フラグＦ３がオン(例えば１)かオフ（例えば０)か判断し、第１の装置２が読み出したいデータに対してリードが許可されているか否か判断する。このような方法を用いることにより、第１の装置２が読み出したいたデータに関して、リードが許可されているか否かを容易に判断することができる。
【０１１９】
ステップＳ４０２においてリード許可フラグＦ３がオンと判断された場合、ステップＳ４０４において、コントローラ１３は、オンと判断されたリード許可フラグＦ３の数をカウントする。
【０１２０】
ステップＳ４０４において、コントローラ１３は、例えばメモリコントローラ１５に転送制限数があった場合、この転送制限数とカウントされたリード許可フラグ数とを比較する。なお、メモリコントローラ１５に転送制限数がない場合には、このステップＳ４０４は省略してもよい。
【０１２１】
ステップＳ４０４においてリード許可フラグ数がメモリコントローラ１５の転送制限数未満だった場合、処理はステップＳ４０１に戻り、コントローラ１３は、管理テーブルＴからのリード許可フラグＦ３の検索を行う。
【０１２２】
ステップＳ４０４においてリード許可フラグ数がメモリコントローラ１５の転送制限数以上だった場合、処理はステップＳ４０５に進み、コントローラ１３は、リード許可フラグ数をデータ転送数に変換し、処理を終了する。
【０１２３】
上記のステップＳ４０２においてリード許可フラグＦ３がオフと判断された場合、処理はステップＳ４０５に進み、コントローラ１４は、リード許可フラグ数をデータ転送数に変換し、処理を終了する。
【０１２４】
図５は、本実施形態に係るメモリシステム１で実行されるリードロックモード時の処理の一例を示すフローチャートである。この図５は、リードロックモード時の管理テーブルＴの生成から受信したコマンドに対応する処理の実行までを示している。
【０１２５】
リードロックモードの場合、コントローラ１３は、第１の装置２から電力の供給を受けると、ステップＳ５０１において、メモリコントローラ１５経由で不揮発性メモリ１２よりファイル配置データＤ１をリードし、このファイル配置データＤ１に基づいて、リードロックモードにおいてデータのリードを許可するか否かを示す管理テーブルＴを生成する。例えば、コントローラ１３は、第１の装置２がリードする管理ファイルＤ３に関してリードを許可するリード許可フラグＦ３を管理テーブルＴに登録し、リード許可フラグＦ３とアドレスとの関係を示すディレクトリエントリファイルＤ２に関してリードを許可するリード許可フラグＦ３を管理テーブルＴに登録する。コントローラ１３は、ユーザデータＤ５に関してリードを不可とするリード許可フラグＦ３を管理テーブルＴに登録する。コントローラ１３は、生成した管理テーブルＴをメモリＲに記憶する。
【０１２６】
ステップＳ５０２において、コントローラ１３は、第１の装置２から接続部１６経由でコマンドを受信したか否か判断する。コマンドを受信しな場合、処理は、ステップＳ５０２を繰り返し、コマンドの受信待ちとなる。
【０１２７】
コマンドを受信した場合、ステップＳ５０３において、コントローラ１３は、受信したコマンドの種類を判断する。
【０１２８】
受信したコマンドがリードコマンドの場合、ステップＳ５０４において、コントローラ１３は、データリード処理を実行し、処理を終了する。このステップＳ５０４では、例えば、上記図３で説明したデータリード処理を実行する。
【０１２９】
受信したコマンドがライトコマンドの場合、ステップ５０５において、コントローラ１３は、ライトデータのサイズを、１つのリード許可フラグＦ３に対応する領域のサイズで割ったライト転送数を決定する。
【０１３０】
ステップＳ５０６において、コントローラ１３は、メモリコントローラ１５に、ライト転送数分のリード許可フラグＦ３に対応するデータのライトコマンドを送信する。メモリコントローラ１５は、ライト転送数分のリード許可フラグＦ３に対応するデータを不揮発性メモリ３２へライトする。
【０１３１】
ステップＳ５０７において、コントローラ１３は、ライト転送数分のリード許可フラグＦ３に対応するデータのライトが終了すると、管理テーブルＴに、不揮発性メモリ１２に対してライト転送数分のリード許可フラグＦ３を設定する。これにより、ライトコマンドのアドレスとデータサイズとに基づいて、データのライトが終了するごとに、当該データに対応するリード許可フラグＦ３を管理テーブルＴに設定することができ、管理テーブルＴを高速に更新することができる。
【０１３２】
ステップＳ５０８において、コントローラ１３は、第１の装置２から接続部１６経由で終了コマンドを受信したか否か判断する。終了コマンドを受信していない場合、処理はステップＳ５０５へ戻る。終了コマンドを受信した場合、処理は終了する。
【０１３３】
図６は、本実施形態に係るメモリシステム１のリード許可フラグＦ３の設定処理の一例を示すフローチャートである。
【０１３４】
この図６では、第１の装置２からコントローラ１３への電力供給停止前に不揮発性メモリ１２に格納されたユーザファイルＤ５に対応するリード許可フラグＦ３が、電力供給開始後に、オフへ設定される場合を例として説明する。しかしながら、例えば、ライトされたユーザファイルＤ５に対応するリード許可フラグＦ３は、電源供給停止時にオンからオフへ切り替えられ、このユーザファイルＤ５に対応するオフ状態のリード許可フラグＦ３が不揮発性のメモリＲ又は不揮発性メモリ１２に確保されてもよい。
【０１３５】
ステップＳ６０１において、コントローラ１３は、第１の装置２からの電力供給を受ける。電力供給状態において、下記のステップＳ６０２〜Ｓ６０３が実行される。
【０１３６】
ステップＳ６０２において、コントローラ１３は、ファイル配置データＤ１を、不揮発性メモリ１２からメモリコントローラ１５経由でリードするとともに、管理テーブルＴに対してディレクトリエントリファイルＤ２及び管理ファイルＤ３に対応するリード許可フラグＦ３をオンに設定する。さらに、コントローラ１３は、管理テーブルＴに対して、電源供給開始前に不揮発性メモリ１２にライト済みのユーザファイルＤ５に対応するリード許可フラグＦ３をオフに設定する。
【０１３７】
ステップＳ６０３において、コントローラ１３は、電力供給の継続中に不揮発性メモリ１２にライトされたユーザファイルＤ４に対応するリード許可フラグＦ３をオンに設定する。
【０１３８】
ステップＳ６０４において、コントローラ１３は、電力が供給されている間、上記のステップＳ６０３を繰り返す。なお、コントローラ１３は、電力が供給されている場合に、ステップＳ６０４から上記のステップＳ６０２へ戻るとしてもよい。
【０１３９】
ステップＳ６０４において第１の装置２からコントローラ１３への電力供給が停止された場合、コントローラ１３のメモリＲに格納されていた管理テーブルＴはハードウェア的に消去され、処理は終了する。管理テーブルＴの消去は、コントローラ１３が電力供給の停止時に管理テーブルＴを消去する処理を実行してもよく、メモリＲが揮発性メモリであり、電力供給停止とともにメモリＲのデータがメモリＲから失われるとしてもよい。
【０１４０】
以上説明した本実施形態においては、リードロックモードを採用することにより、第１の装置２は、メモリシステム１へ電力を供給している間にメモリシステム１へライトしたデータをリード可能であるが、電力供給開始前にメモリシステム１に既にライトされていたデータはリード不可となる。
【０１４１】
これにより、メモリシステム１に記憶されるデータのセキュリティを確保することができる。
【０１４２】
本実施形態においては、不揮発性メモリ１２のファイル配置データＤ１が記憶されているアドレスの範囲に対して、リード許可フラグＦ３に関係なく一括でリードが許可されている。コントローラ１３は、第１の装置２からメモリシステム１への電力供給が開始された場合に、ファイル配置データＤ１をリードし、不揮発性メモリ１２のディレクトリエントリファイルＤ２及び管理ファイルＤ３に相当するリード許可フラグＦ３をオンに設定し、電力供給前にライト済みのユーザファイルＤ５に相当するリード許可フラグＦ３をオフに設定し、管理テーブルＴを生成する。その後コントローラ１３から接続部１６経由で第１の装置２へレディ応答が返される。
【０１４３】
この本実施形態においては、ファイル配置データＤ１に相当するリード許可フラグＦ３を管理テーブルＴに設定する必要がない。コントローラ１３は、リードコマンドのアドレスと、第１の装置２が使用するファイル配置データＤ１の位置を示すアドレス（例えば境界アドレス）とを比較し、ファイル配置データＤ１に関しては一括でリードを許可する。したがって、ファイル配置データＤ１に関するリードコマンドに対してリードを許可するか否かを高速に判断することができ、ファイル配置データＤ１を高速にリードすることができる。
【０１４４】
本実施形態においては、第１の装置２からメモリシステム１へ電力の供給が開始されてから、メモリシステム１から第１の装置２へレディ応答が返されるまでの間に、コントローラ１３は、管理テーブルＴを準備することができる。コントローラ１３は、第１の装置２からリードされる管理ファイルＤ３のリード許可フラグＦ３をオン状態に設定し、管理ファイルＤ３を正常にリード可能とすることができる。
【０１４５】
本実施形態において、コントローラ１３は、第１の装置２から接続部１６経由でライトコマンドを受信した場合に、ライト転送数を取得する。そして、コントローラ１３は、メモリコントローラ１５経由で不揮発性メモリ１２に対してライトをした後、ライトコマンドのアドレスとデータサイズとに基づいて管理テーブルＴのリード許可フラグＦ３を更新する。このような本実施形態においては、ライト動作の終了と同時に管理テーブルＴが更新され、ライトデータは、ライトデータが書き込まれてから電源が入っている期間、リード可能であることが保証される。
【０１４６】
本実施形態において、コントローラ１３は、リードコマンドを受信すると、まず、管理テーブルＴからリード許可フラグＦ３を検索する。コントローラ１３は、検索されたリード許可フラグＦ３がオンの場合に、オンの数に応じたデータ転送数分のリード許可フラグＦ３に対応するデータのリードをメモリコントローラ１５経由で不揮発性メモリ１２に対して実行し、データ転送数分のリード許可フラグＦ３に対応するデータをメモリコントローラ１５から受信し、受信したデータを直ちに接続部１６経由で第１の装置２へ返す。コントローラ１３は、メモリコントローラ１５に転送制限数がある場合、リード動作に基づくデータ転送と並行して管理テーブルＴを再検索する。コントローラ１３は、上記のリード許可フラグＦ３の検索及び再検索において、データ転送数が転送制限数未満か判断する。コントローラ１３は、データ転送数が転送制限数未満の場合、管理テーブルＴの検索を行う。コントローラ１３は、データ転送数が転送制限数以上ならば、第１の装置２から接続部１６経由で終了コマンドを受信したか判断し、終了コマンドを受信していない場合には、不揮発性メモリ１２に対するリードを行う。このような動作を行うメモリシステム１においては、データ転送数が転送制限数以上となるたびに、リードが許可されているデータに対してリードが実行され、順次リードされたデータが第１の装置２へ返される。管理テーブルＴの再検索は、リードデータをコントローラ１３から第１の装置２へ返す処理と並行して行われるため、メモリシステム１でリードデータが送信待ちとなる時間を短縮することができ、メモリシステム１の応答を高速化することができる。また、データがメモリＲに確保される時間を短縮化することができ、メモリＲのメモリ容量を小さくすることができる。
【０１４７】
メモリコントローラ１５に転送制限がない場合は、管理テーブルＴでオフが見つかるまで検索をつづけるので、管理テーブルＴの検索は１回でよい。
【０１４８】
本実施形態では、第１の装置２からメモリシステム１へ電力が供給された場合に、無線通信メモリ１７に記憶されているリードロックフラグＦ１がメモリＲに記憶される。無線通信メモリ１７に記憶されているリードロックフラグＦ１は、第１の装置２からメモリシステム１へ電力が供給されていない状況においても、第２の装置３とメモリシステム１との無線通信により更新可能である。このため、ユーザは、第１の装置２からメモリシステム１へ電力が供給されていない場合であってもリードロックフラグＦ１を更新することができ、ユーザの利便性を向上させることができる。
【０１４９】
なお、リードロックフラグＦ１は、無線通信メモリ３７に記憶されておらず、コントローラ１３のメモリＲに記憶されているとしてもよい。この場合は、第１の装置２からメモリシステム１へ電力が供給されている場合にのみリードロックフラグＦ１の変更が可能となり、メモリシステム１が第１の装置２に装着されていない状態でリードロックフラグＦ１が変更されることを防止することができる。これにより、メモリシステム１のセキュリティを確保することができる。
【０１５０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１５１】
１…メモリシステム、２…第１の装置、３…第２の装置、４…情報処理システム、１１…無線アンテナ、１２…不揮発性メモリ、１３…コントローラ、１４…通信コントローラ、１５…メモリコントローラ、１６…接続部、１７…無線通信メモリ、１８…電圧検波器、Ｒ…メモリ、Ｔ…管理テーブル、Ｆ１…リードロックフラグ、Ｆ２…ロック状態情報、Ｆ３…リード許可フラグ、Ｄ１…ファイル配置データ、Ｄ２…ディレクトリエントリファイル、Ｄ３…管理ファイル、Ｄ４，Ｄ５…ユーザファイル。
【図１】
2020067753.tif 000003
【図２】
2020067753.tif 000004
【図３】
2020067753.tif 000005
【図４】
2020067753.tif 000006
【図５】
2020067753.tif 000007
【図６】
2020067753.tif 000008