(57)【要約】      （修正有）【課題】専用のロック解除コマンドを使用することなく、ロックを解除できるメモリシステムを提供する。【解決手段】メモリコントローラ５は、コマンド判定部４１、メモリアクセス部４２、変換処理部４３、ロック／解除部４４を備える。コマンド判定部４1は、ホスト機器から所定の複数の第１アドレスに対して所定の順番でコマンドを受信したかどうかを判定する。メモリアクセス部４２は、所定の順番でコマンドを受信したと判定された後、ホスト機器から所定の複数の第２アドレスに対してコマンドを受信し、複数の第２アドレスをメモリ領域に記憶させる。変換処理部４３は、メモリ領域に記憶された複数の第２アドレスをパスワードに変換する。ロック／解除部４４は、メモリシステム２の起動後に、変換されたパスワードが所定のパスワードと一致した場合、メモリにおける前記ホスト機器からのコマンドの実行制限を解除する。【選択図】図４
2020149265.tif 000002
【特許請求の範囲】
【請求項１】
メモリ領域を有するメモリと、前記メモリを制御するメモリコントローラとを備えたメモリシステムであって、
前記メモリコントローラは、
ホスト機器から所定の複数の第１アドレスに対して所定の順番でコマンドを受信したかどうかを判定するコマンド判定部と、
前記コマンド判定部にて前記複数の第１アドレスに対して所定の順番でコマンドを受信したと判定された後、前記ホスト機器から所定の複数の第２アドレスに対してコマンドを受信したときに、前記複数の第２アドレスを前記メモリ領域に記憶させるメモリアクセス部と、
前記メモリ領域に記憶された前記複数の第２アドレスをパスワードに変換する変換処理部と、
メモリシステムの起動後に前記メモリにおける前記ホスト機器からのコマンドの実行を制限し、前記変換処理部で変換されたパスワードが所定のパスワードと一致したとき場合、前記メモリにおける前記ホスト機器からのコマンドの実行制限を解除するロック／解除部とを備えるメモリシステム。
【請求項２】
前記ロック／解除部は、前記メモリから読み出したデータの前記ホスト機器への送信を制限し、前記変換処理部で変換されたパスワードが所定のパスワードと一致したとき前記メモリから読み出したデータの前記ホスト機器への送信制限を解除する請求項１記載のメモリシステム。
【請求項３】
前記ロック／解除部は、前記ホスト機器から入力されたデータの前記メモリへの書き込みを制限し、前記変換処理部で変換されたパスワードが所定のパスワードと一致したとき前記ホスト機器から入力されたデータの前記メモリへの書き込み制限を解除する請求項１記載のメモリシステム。
【請求項４】
メモリ領域を有するメモリと、前記メモリを制御するメモリコントローラとを備えたメモリシステムであって、
前記メモリコントローラは、
ホスト機器から所定の複数の第１アドレスに対して所定の順番でコマンドを受信したかどうかを判定するコマンド判定部と、
前記コマンド判定部にて前記複数の第１アドレスに対して所定の順番でコマンドを受信したと判定された後、前記ホスト機器から所定の複数の第２アドレスに対してコマンドを受信したときに、前記複数の第２アドレスを前記メモリ領域に記憶させるメモリアクセス部と、
前記メモリ領域に記憶された前記複数の第２アドレスをパスワードに変換する変換処理部と、
前記変換処理部で変換されたパスワードが所定のパスワードと一致したとき前記メモリにおける前記ホスト機器からのコマンドの実行を制限するコマンド制限部とを備えるメモリシステム。
【請求項５】
前記コマンド制限部は、前記メモリから読み出したデータの前記ホスト機器への送信を可能とし、前記変換処理部で変換されたパスワードが所定のパスワードと一致したとき前記メモリから読み出したデータの前記ホスト機器への送信を制限する請求項４記載のメモリシステム。
【請求項６】
前記コマンド制限部は、前記ホスト機器から入力されたデータの前記メモリへの書き込みを可能とし、前記変換処理部で変換されたパスワードが所定のパスワードと一致したとき前記ホスト機器から入力されたデータの前記メモリへの書き込みを制限する請求項４記載のメモリシステム。
【請求項７】
メモリ領域を有するメモリと、前記メモリを制御するメモリコントローラとを備えたメモリシステムであって、
前記コントローラは、
ホスト機器から所定の複数の第１アドレスに対して所定の順番で読み出しコマンドを受信したかどうかを判定するコマンド判定部と、
乱数情報を生成し、生成された乱数情報に基づき所定の第１の計算により第１データを算出する乱数生成処理部と、
前記コマンド判定部にて前記ホスト機器から前記複数の第１アドレスに対して所定の順番で前記読み出しコマンドを受信したと判定された後、最後の読み出しコマンドに対する応答として、前記乱数生成処理部で生成された前記乱数情報を前記ホスト機器に送信する送信処理部と、
前記コマンド判定部にて前記ホスト機器から前記複数の第１アドレスに対して所定の順番で前記読み出しコマンドを実行したと判定された後、前記ホスト機器から複数の第２アドレスに対して読み出しコマンドを受信した場合に前記複数の第２アドレスに基づき所定の第２の計算により第２データを算出するデータ算出部と、
前記データ算出部で算出された前記第２データが前記乱数生成処理部で生成された第１データと一致したとき前記メモリにおける前記ホスト機器からのコマンドの実行制限を解除するロック／解除部とを備えるメモリシステム。
【請求項８】
前記複数の第２アドレスは、前記ホスト機器において、前記乱数情報に基づき前記所定の第１の計算によりデータを生成し、生成された前記データから算出されたアドレスからなる請求項７記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、メモリとメモリを制御するメモリコントローラとを備えたメモリシステムに関する。
【背景技術】
【０００２】
ホスト機器とメモリカード等のメモリシステムとは、通信によりコマンド及びデータの送受信を行う。ホスト機器からのコマンドに対してメモリシステムのメモリからのデータの読み出し又はメモリへのデータの書き込みを不可とするロック状態と、ホスト機器からのコマンドに応じて書き込みが不可であったメモリを書き込み可とする又は読み出しが不可であったメモリを読み出し可とするロック解除状態と、を切り替える機能を有するメモリシステムが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許出願公開第２０１４／０２８１２２６号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、メモリのロック状態を解除することができるメモリシステムを提供する。
【課題を解決するための手段】
【０００５】
実施形態に係るメモリシステムは、メモリ領域を備えたメモリと、メモリを制御するコントローラとを備え、コントローラは、コマンド判定部、メモリアクセス部、変換処理部、ロック／解除部を備える。コマンド判定部は、ホスト機器が所定の複数の第１アドレスに対して所定の順番でコマンドを実行したかどうかを判定する。メモリアクセス部は、ホスト機器が複数の第１アドレスに所定の順番でコマンドを実行したと判定された後、所定の複数の第２アドレスにコマンドを実行したときに、メモリをアクセスして複数の第２アドレスをメモリ領域に記憶させる。変換処理部は、メモリ領域に記憶された複数の第２アドレスをパスワードに変換する。ロック／解除部は、起動後にメモリに対するコマンドを制限し、変換処理部で変換されたパスワードが所定のパスワードと一致したときメモリに対するコマンドの制限を解除する。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１実施形態のメモリシステムとホスト機器との構成を示すブロック図である。
【図２】図２は、第１実施形態のメモリのメモリ空間の構成を示す図である。
【図３】図３は、第１実施形態のメモリシステムの起動シーケンスを示す図である。
【図４】図４は、第１実施形態のメモリシステムの構成を示すブロック図である。
【図５】図５は、第１実施形態のメモリシステムのロック解除開始シーケンスとパスワード送信シーケンスを示す図である。
【図６】図６は、第１実施形態のメモリシステムの追加のアドレスからパスワードへの変換処理を示すフローチャートである。
【図７】図７は、第１実施形態のメモリシステムのパスワード変更のシーケンスを示す図である。
【図８】図８は、第１実施形態の変形例のメモリシステムとホスト機器との構成を示すブロック図である。
【図９】図９は、第２実施形態のメモリシステムの構成を示すブロック図である。
【図１０】図１０は、第２実施形態のメモリシステムにホスト機器から読み出しコマンドが送信された場合のシーケンスを示す図である。
【発明を実施するための形態】
【０００７】
以下、実施形態のメモリシステムについて、図面を参照しながら詳細に説明する。
【０００８】
参照される図面は模式的なものである。以下の説明において、同一の機能及び構成を有する要素については、共通する参照符号を付す。
【０００９】
（第１実施形態）
（メモリシステムの構成）
図１は第１実施形態のメモリシステムとホスト機器との構成を示すブロック図である。ホスト機器１は、メモリシステム２に接続されている。ホスト機器１とメモリシステム２とは、通信によりコマンド及びデータの送受信を行う。
【００１０】
図１に示すように、ホスト機器１は、制御部３、コマンド発行部４、インターフェイス４ａを備え、インターフェイス４ａを介してメモリシステム２に接続される。コマンド発行部４は、メモリシステム２に対するコマンドを発行する。制御部３は、コマンド発行部４の制御を行う。また、ホスト機器１は、メモリシステム２にアクセスするためのハードウェア及びソフトウェアを含む。ユーザは、ソフトウェアに対してメモリシステム２へのデータの書き込み及びメモリシステム２からのデータの読み出しの操作を指示する。
【００１１】
メモリシステム２は、電源オン状態のホスト機器１に接続されたとき、および電源オフ状態のホスト機器１に挿入された状態でホスト機器１の電源がオンにされたとき、ホスト機器１からの電源供給を受けて初期化動作を行った後、ホスト機器１からのアクセスに応じた処理をする。メモリシステム２は、メモリコントローラ５、メモリ６を備える。メモリシステム２は、例えばＳＤＴＭカードのようなメモリカード、ＳＳＤ（Solid state device）等である。
【００１２】
（メモリの構成）
メモリ６は、データを不揮発に記憶するＮＡＮＤ型フラッシュメモリである。
【００１３】
メモリ６の記憶領域は、保持するデータの種類に応じて複数の領域に分割されている。複数の領域は、図１に示すように、システム領域２１、セキュア領域２２、レジスタ領域２３、ユーザ領域２４を含む。
【００１４】
システム領域２１は、メモリコントローラ５の動作に必要なデータを記憶するために設けられた領域であり、主にメモリシステム２に関する管理情報、セキュリティ情報やメディアＩＤなどの情報等を格納する。セキュア領域２２は、重要データとセキュアデータとを格納する。
【００１５】
レジスタ領域２３は、ＳＤメモリカードの仕様に応じて指定されたレジスタである。レジスタ領域２３は、メモリシステム２の製造情報及びメモリシステム２を動作させるための動作情報を格納する。
【００１６】
ユーザ領域２４は、ホスト機器１から自由にアクセスして使用することができ、ユーザデータ、画像データを格納する。以下の説明では、メモリ６がユーザ領域２４を使用するものとする。
【００１７】
図２は、第１実施形態のメモリ６のメモリ空間の構成を示す図である。メモリ６は、メモリ領域３１とページバッファ３２とを含む。図１に示すメモリ６のユーザ領域２４は、メモリ領域３１とページバッファ３２とを含む。
【００１８】
メモリ領域３１は、複数のブロックＢＬＫを含む。各ブロックＢＬＫは、複数のページＰＧにより構成されている。各ページＰＧは、直列に接続された複数のセルトランジスタを含む。
【００１９】
各セルトランジスタは、積層ゲート構造のＭＯＳＦＥＴ（金属酸化膜半導体電界効果トランジスタ）で構成されている。積層ゲート構造のＭＯＳＦＥＴは、トンネル絶縁膜、浮遊ゲート電極、電極間絶縁膜、制御ゲート電極及びソース／ドレイン拡散層を有する。各セルトランジスタの閾値電圧は、浮遊ゲート電極に蓄積された電子の数に応じて変動し、セルトランジスタは、閾値電圧の差に応じた情報を記憶する。
【００２０】
同一行に属するセルトランジスタの制御ゲート電極は、同一のワード線に接続されている。同一列に属するセルトランジスタの両端に選択ゲートトランジスタが直列に接続されている。一方の選択ゲートトランジスタはビット線に接続されている。ワード線を共有するセルトランジスタの組は、１ページＰＧとして取り扱われ、ページ毎にデータの書き込み及び読み出しが行われる。メモリ６へのデータの書き込み、及びメモリ６からのデータの読み出し等は、メモリコントローラ５によって制御される。
【００２１】
（コントローラの構成）
再び図１を参照する。メモリコントローラ５は、ホストインターフェイス１１、全体制御部１２、ＲＯＭ（read only memory）１３、ＲＡＭ（random access memory）１４、メモリインターフェイス１５を備える。
【００２２】
メモリコントローラ５は、例えば、ハードウェアとしてＣＰＵ（central processing unit ）等のプロセッサを含み、ＲＯＭ１３に記憶され且つＲＡＭ１４上にロードされたファームウェア（プログラム）がプロセッサによって実行されることによって、ホストインターフェイス１１、全体制御部１２、ＲＡＭ１４、メモリインターフェイス１５の各々の機能の一部または全部を実行する。ホストインターフェイス１１、全体制御部１２、メモリインターフェイス１５は、バスにより相互に接続されている。
【００２３】
ホストインターフェイス１１は、ホストバスＨＢを介してホスト機器１と接続され、ホスト機器１との通信を司る。例えば、ホストインターフェイス１１は、ホスト機器１から受信した命令及びデータをそれぞれ、全体制御部１２及びＲＡＭ１４に転送する。
【００２４】
ＲＡＭ１４は、メモリ６及びホスト機器１から受信したデータを一時的に記憶するバッファとしての機能を有する。ＲＯＭ１３は、全体制御部１２によって制御される制御プログラム等を記憶している。なお、本発明で、メモリ６に記録する、との記載の行為は、メモリ６のかわりにＲＡＭ１４に記憶してもよい。例えば、パスワード変換処理に送られる読み出しコマンドアドレスは、メモリ６に記憶され、パスワード照合処理に送られる読み出しコマンドアドレスは、メモリ６のかわりにＲＡＭ１４に記憶されてもよい。
【００２５】
メモリインターフェイス１５は、メモリ６と接続され、メモリ６との通信を司る。メモリインターフェイス１５は、ＮＡＮＤインターフェイスに従った信号の送受信を行う。ＮＡＮＤインターフェイスに従った信号は、例えば種々の制御信号及び入出力信号を含む。入出力信号は、コマンド、書き込みデータ及び読み出しデータ、アドレス信号、各種の管理データを含む。
【００２６】
全体制御部１２は、メモリシステム２全体の制御を司る。全体制御部１２は、例えば、プロセッサ及びＲＡＭ１４の機能の一部により実現される。全体制御部１２は、書き込み及び読み出しの際に、ＲＡＭ１４及びメモリインターフェイス１５を制御しつつ、メモリ６の記憶状態を管理する。
【００２７】
メモリコントローラ５は、ホスト機器１からのコマンドを受けてコマンドに対する応答をホスト機器１に返す。メモリコントローラ５は、ホスト機器１からのコマンドに応答して、メモリ６に対するデータの読み出し、書き込み、及び消去等をコマンドする。メモリコントローラ５は、ホスト機器１から書き込みを指示されたデータをメモリ６に書き込み、ホスト機器１から読み出しを指示されたデータをメモリ６から読み出してホスト機器１に送信する。
【００２８】
また、メモリコントローラ５は、メモリ６によるデータの記憶状態を管理する。記憶状態の管理とは、どの物理アドレスのページ（または物理ブロック）が、どの論理アドレスのデータを保持しているかの関係、およびどの物理アドレスのページ（または物理ブロック）が消去状態（何も書き込まれていない、または無効なデータを保持している状態）であるかを管理することをいう。メモリコントローラ５は、論理アドレスと物理アドレスとの対応関係を格納するアドレス変換テーブルを用いて、記憶状態を管理する。
【００２９】
メモリコントローラ５は、ある論理アドレスと関連付けられた物理アドレスを知得し、知得された物理アドレスの記憶領域からデータを読み出す。メモリ６の記憶状態の管理は、メモリ６の記憶領域の管理、ウェアレべリング、ガベージコレクション、及びリフリッシュを含む。
【００３０】
（メモリシステムの起動シーケンス）
次に、図３の起動シーケンスを参照して、第１実施形態のホスト機器１からメモリシステム２を起動させて、データを読み出し及び書き込みする手順を説明する。
【００３１】
まず、メモリシステム２を起動させるための初期化処理が行われる。初期化処理が終了すると、ホスト機器１は、読み出しアドレスを含む読み出しコマンドを発行する。メモリシステム２は、ホスト機器１から読み出しコマンドを受け取ると、メモリコントローラ５がメモリ６の読み出しアドレスからデータを読み出して、読み出したデータをホスト機器１に返す。
【００３２】
次に、ホスト機器１は、書き込みアドレスと書き込むデータとを含む書き込みコマンドを発行する。メモリシステム２は、ホスト機器１から書き込みコマンドを受け取ると、メモリコントローラ５は、メモリ６の書き込みアドレスにデータを書き込む。
【００３３】
（ロック／解除モード）
メモリシステム２は、ロックモード又はロック解除モードで動作する。ここで、ロック（アクセス制限）とは、ホスト機器１へメモリ６から読み出したデータの送信を不可とすることを意味する。ロック解除とは、ホスト機器１へメモリ６から読み出したデータの送信を可にすることを意味する。ここでは、メモリシステム２の起動時に、メモリシステム２の動作モードがロックモードとなっている場合について説明する。なお、ホスト機器１から受信したロックコマンドに従って、ロックモードとなる場合もある。本実施形態では、ロック解除のためだけに用いる専用のロック解除コマンドを用いずに、ロック状態を解除する。
【００３４】
（ロック解除処理）
次に、第１実施形態のメモリシステムのロック解除処理について説明する。図４は、第１実施形態のメモリシステムの構成を示すブロック図である。全体制御部１２は、コマンド判定部４１、メモリアクセス部４２、変換処理部４３、ロック／解除部４４を備えている。コマンド判定部４１、メモリアクセス部４２、変換処理部４３、ロック／解除部４４は、全体制御部１２がＲＯＭ１３に記憶されたコマンド解除処理プログラムを実行することで実現される機能である。
【００３５】
コマンド判定部４１は、所定の複数のアドレスＡ１〜Ａｎに対して、ホスト機器１から例えば、読み出しコマンドを受信したかどうかを判定する。
【００３６】
メモリアクセス部４２は、コマンド判定部４１により、ホスト機器１から複数のアドレスＡ１〜Ａｎ（第１アドレス）に対して読み出しコマンドを受信したと判定された後、所定の複数のアドレスＢ１〜Ｂｍ（第２アドレス）に対して読み出しコマンドを受信したときに、メモリ６にアクセスして複数のアドレスＢ１〜Ｂｍをメモリ６のメモリ領域に記憶させる。メモリ６には、複数のアドレスＢ１〜Ｂｍがパスワード受付アドレスとして記憶される。また、メモリ６には、所定のパスワードＰＷが記憶されている。
【００３７】
変換処理部４３は、メモリ領域に記憶された複数の第２アドレスをパスワードに変換する。ロック／解除部４４は、メモリ起動後にメモリ６に対するアクセスを制限する。ロック／解除部４４は、変換処理部４３で変換されたパスワードと所定のパスワードとを照合し、変換されたパスワードが所定のパスワードと一致したときに、メモリ６に対するアクセス制限を解除する。
【００３８】
次にこのように構成された第１実施形態のメモリシステムのロック解除処理を、図５を参照しながら詳細に説明する。ロック解除処理は、全体制御部１２がＲＯＭ１３に記憶されたロック解除処理プログラムを実行することで実現される。
【００３９】
まず、ロック解除処理において、ロック解除開始シーケンスと、パスワード送信シーケンスとが実行される。ロック解除開始シーケンスでは、ホスト機器１がアドレスＡ１を含む読み出しコマンドをメモリシステム２に送ると、メモリシステム２のメモリコントローラ５は、アドレスＡ１を含む読み出しコマンドを受け取る。
【００４０】
コマンド判定部４１は、受信した読み出しコマンドとアドレスＡ１が予め設定されたコマンドと想定したアドレスＡ１〜Ａｎの始まりのＡ１であるかどうかを判定する。アドレスＡ１は、想定したアドレスに一致するため、次のＡ２を想定するアドレスとする。この判定にかかわらず、ロック状態であるため、受信した読み出しコマンドに従ったアドレスＡ１からのデータの読み出し処理としては、エラーをホスト機器１に返送する。
【００４１】
さらに、コマンド判定部４１は、受信した読み出しコマンドとアドレスＡ２が予め設定されたコマンドと想定したアドレスＡ１〜ＡｎのＡ２であるかどうかを判定する。アドレスＡ２は、想定したアドレスに一致するため、次のＡ３を想定するアドレスとする。この判定にかかわらず、ロック状態であるため、受信した読み出しコマンドに従ったアドレスＡ２からのデータの読み出し処理としては、エラーをホスト機器１に返送する。
【００４２】
同様にして、コマンド判定部４１は、受信した読み出しコマンドとアドレスＡが予め設定されたコマンドと想定したアドレスＡ3〜Ａｎを正しい順番で読み出されたかどうかの判定処理を繰り返し行い、最後に、受信した読み出しコマンドに従ったアドレスＡｎからのデータの読み出し処理としては、エラーをホスト機器１に返送する。
【００４３】
そして、コマンド判定部４１は、アドレスＡ１の読み出しからアドレスＡｎの読み出しまで完了したので、ホスト機器１から複数のアドレスＡ１〜Ａｎに対して所定の順番で読み出しコマンドを受信したと判定する。このように、ロック解除開始シーケンスは、所定の複数のアドレスＡ１〜Ａｎを順番に読み出した場合に完了する。ロック解除開始シーケンスが完了すると、パスワード送信シーケンスを受け付ける状態になる。
【００４４】
次に、パスワード送信シーケンスでは、ホスト機器１がアドレスＢ１を含む読み出しコマンドをメモリシステム２に送ると、メモリシステム２のメモリコントローラ５は、アドレスＢ１を含む読み出しコマンドを受け取る。
【００４５】
コマンド判定部４１は、受信した読み出しコマンドのアドレスＢ１をメモリ６に記録する。受信した読み出しコマンドに従ったアドレスＢ１からのデータの読み出し処理としては、エラーをホスト機器１に返送する。
【００４６】
さらに、コマンド判定部４１は、以降に受信した読み出しコマンドのアドレスＢ２をメモリ６に記録する。受信した読み出しコマンドに従ったアドレスＢ２からのデータの読み出し処理としては、エラーをホスト機器１に返送する。
【００４７】
同様にして、コマンド判定部４１は、受信した読み出しコマンドのアドレスをメモリ６に記録する処理を繰り返し行い、最後に、アドレスＢｍの読み出し処理を完了する（ステップＳ２ｍ）。最後の処理ではそれまで同様エラーを返信してもよいが、以降のパスワード照合処理の結果、パスワードが正しい場合はロック解除を示すメッセージを返信してもよい。
【００４８】
次に、パスワード照合処理が行われる（ステップＳ３０）。このパスワード照合処理については、図６を参照しながら、詳細に説明する。なお、図６における読み出しコマンドアドレスは、図５におけるアドレスＢ１〜Ｂｍの一例である。
【００４９】
まず、全体制御部１２によって、読み出しコマンドアドレス「０１２３４５６７」が読み出され（ステップＳ２１ａ）、このアドレスがメモリ６に記憶される（ステップＳ３１）。次に、全体制御部１２によって、読み出しコマンドアドレス「８９ＡＢＣＤＥＦ」が読み出され（ステップＳ２２ａ）、このアドレスがメモリ６に記憶される（ステップＳ３２）。
【００５０】
次に、全体制御部１２によって、読み出しコマンドアドレス「ＦＥＤＣＢＡ９８」が読み出され（ステップＳ２３ａ）、このアドレスがメモリ６に記憶される（ステップＳ３３）。次に、全体制御部１２によって、読み出しコマンドアドレス「７６５４３２１０」が読み出され（ステップＳ２４ａ）、このアドレスがメモリ６に記憶される（ステップＳ３４）。
【００５１】
次に、変換処理部４３によりパスワード変換処理が行われる（ステップＳ３５）。変換処理部４３は、アドレス「０１２３４５６７」とアドレス「８９ＡＢＣＤＥＦ」とアドレス「ＦＥＤＣＢＡ９８」とアドレス「７６５４３２１０」とをパスワードに変換する（ステップＳ３５）。
【００５２】
即ち、アドレス０１２３４５６７と、アドレス８９ＡＢＣＤＥＦと、アドレスＦＥＤＣＢＡ９８と、アドレス７６５４３２１０とを連結したものをパスワードとする。ここで、各々のアドレスは、３２ビットアドレスであり、パスワードは、例えば、１２８ビットデータである。
【００５３】
次に、ロック／解除部４４は、変換処理部４３で変換されたパスワードと所定のパスワードとが一致したかどうかを判定する（ステップＳ３６）。所定のパスワードは、予め作成されたパスワードである。
【００５４】
ロック／解除部４４は、変換処理部４３で変換されたパスワードと所定のパスワードとが一致したときに、ロックを解除する（ステップＳ３７）。従って、ロック解除コマンドのような特別なコマンドを使用することなく、他の用途もあるコマンドを用いるのみで、メモリのロックを解除することができる。
【００５５】
（パスワード変更シーケンス）
次に、図７を参照しながら、第１実施形態のメモリシステムのパスワード変更シーケンスを説明する。
【００５６】
まず、パスワードを変更するためには、パスワード変更開始シーケンスと、旧パスワード送信シーケンスと、新パスワード送信シーケンスとが実行される。パスワード変更開始シーケンスでは、ホスト機器１がアドレスＣ１を含む読み出しコマンドをメモリシステム２に送ると、メモリシステム２のメモリコントローラ５は、アドレスＣ１を含む読み出しコマンドを受け取る。
【００５７】
コマンド判定部４１は、受信した読み出しコマンドとアドレスＣ１が予め設定されたコマンドと想定したアドレスＣ１〜Ｃｎの始まりのＣ１であるかどうかを判定する。アドレスＣ１は、想定したアドレスに一致するため、次のＣ２を想定するアドレスとする。この判定にかかわらず、ロック状態であるため、アドレスＣ１の読み出し処理としては、エラーをホスト機器１に返送する。
【００５８】
同様にして、コマンド判定部４１は、受信した読み出しコマンドとアドレスが予め設定されたコマンドと想定したアドレスＣ１〜Ｃｎを正しい順番で読み出されたかどうかの判定処理を繰り返し行い、最後に、アドレスＣｎの読み出し処理を完了する（ステップＳ４ｎ）。
【００５９】
次に、旧パスワード送信シーケンスでは、ホスト機器１がアドレスＯ１を含む読み出しコマンドをメモリシステム２に送ると、メモリシステム２のメモリコントローラ５は、アドレスＯ１を含む読み出しコマンドを受け取る。
【００６０】
コマンド判定部４１は、受信した読み出しコマンドのアドレスＯ１をメモリ６に記憶する。アドレスＯ１の読み出し処理としては、エラーをホスト機器１に返送する。
【００６１】
同様にして、コマンド判定部４１は、以降の受信した読み出しコマンドのアドレスをメモリ６に記憶する。最後のアドレスＯｍの読み出し処理としてはエラーをホスト機器１に返送する。これらの処理でアドレスＯ１〜Ｏｍは、アドレス読み出し時にメモリ６に記憶される。
【００６２】
次に、変換処理部４３によりパスワード変換処理が行われる（ステップＳ６１）。変換処理部４３は、アドレスＯ１〜Ｏｍをパスワードに変換する。
【００６３】
次に、ロック／解除部４４は、変換処理部４３で変換されたパスワードと所定のパスワードとが一致したかどうかを判定する（ステップＳ６２）。ロック／解除部４４は、変換処理部４３で変換されたパスワードと所定のパスワードとが一致しないとき、パスワードを更新しない（ステップＳ６３）。
【００６４】
変換処理部４３で変換されたパスワードと所定のパスワードとが一致したとき、新パスワード送信シーケンスを実行する。新パスワード送信シーケンスでは、ホスト機器１がアドレスＮ１を含む読み出しコマンドをメモリシステム２に送ると、メモリシステム２のメモリコントローラ５は、アドレスＮ１を含む読み出しコマンドを受け取る。
【００６５】
コマンド判定部４１は、受信した読み出しコマンドとアドレスＮ１が予め設定されたコマンドと想定したアドレスＮ１〜Ｎｍの始まりのＮ１であるかどうかを判定する。アドレスＯ１は、想定したアドレスに一致するため、次のＮ２を想定するアドレスとする。この判定にかかわらず、ロック状態であるため、アドレスＮ１の読み出し処理としては、エラーをホスト機器１に返送する。
【００６６】
同様にして、コマンド判定部４１は、受信した読み出しコマンドとアドレスが予め設定されたコマンドと想定したアドレスＮ１〜Ｎｍを正しい順番で読み出されたかどうかの判定処理を繰り返し行い、最後に、アドレスＮｍの読み出し処理を完了する（ステップＳ７ｍ）。なお、アドレスＮ１〜Ｎｍは、アドレス読み出し時にメモリ６に記憶される。
【００６７】
次に、変換処理部４３によりパスワード変換処理が行われる（ステップＳ８１）。変換処理部４３は、アドレスＮ１〜Ｎｍを新パスワードに変換する。そして、新パスワードをメモリ６に記憶する（ステップＳ８２）。さらに、メモリシステム２は、ホスト機器１にパスワード変更成功メッセージを返送する。
【００６８】
なお、パスワードは、ロック状態では、設定変更することはできず、ロックを解除した状態でのみ設定変更できる。製品出荷時には所定のパスワードが事前に設定されている。
【００６９】
また、第１実施形態のロック状態では、どのアドレスでもデータの読み書きができない場合を記載したが、一部のアドレスについて読み書きを許可する場合、読み出しのみは許可する、書き込みのみは許可する、或いは、これらの組み合わせ等もロック状態としてもよい。
【００７０】
また、パスワードにより、ロック、ロック解除等ができる例として以下の６つの場合があり、それぞれの組み合わせでもよい。第１の例では、ロック／解除部４４が起動後にロック状態として一部または全ての領域で読み出し禁止とし、変換処理部４３で変換されたパスワードが所定のパスワードと一致したときロックが解除されて、読み出し可能となる。
【００７１】
第２の例では、ロック／解除部４４が起動後にロック状態として一部または全ての領域で書き込み禁止とし、変換処理部４３で変換されたパスワードが所定のパスワードと一致したときロックが解除されて、書き込みが可能となる。
【００７２】
第３の例では、ロック／解除部４４が起動後に全ての領域で読み出し可能とし、変換処理部４３で変換されたパスワードが所定のパスワードと一致したときロック状態とし、一部または全ての領域で読み出し禁止となる。第４の例では、ロック／解除部４４が起動後に全ての領域で書き込み可能とし、変換処理部４３で変換されたパスワードが所定のパスワードと一致したときロック状態とし、一部または全ての領域で書き込み禁止となる。
【００７３】
第５の例では、変換処理部４３で変換されたパスワードが所定のパスワードと一致したときメモリの利用状況（メモリ書換回数、総合書き込み量等）の情報が読み出せる。第６の例では、変換処理部４３で変換されたパスワードが所定のパスワードと一致したときＦＷ（ファームウェア）切り替え等の内部の機能が実行される。
【００７４】
このように第１実施形態のメモリシステムによれば、コマンド判定部４１は、ホスト機器１から所定の複数の第１アドレスＡ１〜Ａｎに対して所定の順番でコマンドを受信したかどうかを判定する。メモリアクセス部４２は、ホスト機器１から複数の第１アドレスＡ１〜Ａｎに所定の順番でコマンドを受信したと判定された後、所定の複数の第２アドレスＢ１〜Ｂｎにコマンドを受信したときに、メモリをアクセスして複数の第２アドレスＢ１〜Ｂｎをメモリ領域に記憶させる。
【００７５】
変換処理部４３は、メモリ領域に記憶された複数の第２アドレスＢ１〜Ｂｎをパスワードに変換する。ロック／解除部４４は、起動後にロック状態とし、変換処理部４３で変換されたパスワードと所定のパスワードとを照合し、変換されたパスワードが所定のパスワードと一致したときに、ロック状態を解除する。
【００７６】
従って、ロック解除コマンドのような専用のコマンドを使用することなく、ロック状態を解除することができる。
【００７７】
なお、変換処理部４３の変換処理は、前述した例に限定されることなく、例えば、以下の式（１）の関数でアドレスをパスワードに変換することもできる。
【００７８】
パスワード＝ＡＥＳ（ｋ，Ａ｜｜Ｂ｜｜Ｃ｜｜Ｄ）ｘｏｒＡ｜｜Ｂ｜｜Ｃ｜｜Ｄ…（１）。
【００７９】
ＡＥＳ（ｋ，ｄ）は、ＡＥＳ（Advanced Encryption Standard）暗号であり、ｋは鍵であり、ｄは平文データである。ここで、Ａ、Ｂ、Ｃ、Ｄは、各アドレスである。ｘｏｒは、排他的論理和を表し、ＡＥＳ（ｋ，Ａ｜｜Ｂ｜｜Ｃ｜｜Ｄ）とＡ｜｜Ｂ｜｜Ｃ｜｜Ｄとの排他的論理和をとることである。
【００８０】
（第１実施形態の変形例）
図８は、第１実施形態の変形例のメモリシステムとホスト機器との構成ブロック図である。第１実施形態の変形例では、ホスト機器１とメモリシステム２との間にメモリリーダ７が設けられている。
【００８１】
メモリリーダ７は、ホスト機器１とメモリシステム２とが互いに異なるプロトコルを使用する場合に用いられる。メモリリーダ７は、コマンド変換部８を備えている。コマンド変換部８は、ホスト機器１から受け取った第１プロトコルに従った読み出しコマンド及び書き込みコマンドを、第２プロトコルに従った読み出しコマンド及び書き込みコマンドに変換して、変換された読み出しコマンド及び書き込みコマンドをメモリシステム２に発行する。
【００８２】
また、コマンド変換部８は、読み出しコマンド及び書き込みコマンドに対する結果をメモリシステム２から受け取り、第２プロトコルの結果を第１プロトコルの結果に変換してホスト機器１に返送する。
【００８３】
第１実施形態のメモリシステムによれば、コマンド判定部４１は、ホスト機器１から所定の複数の第１アドレスに対して所定の順番で読み出しコマンドを受信したかどうかを判定する。コマンド判定部４１にてホスト機器１から複数の第１アドレスに対して所定の順番で読み出しコマンドを受信したと判定された場合、メモリアクセス部４２は、所定の複数の第２アドレスに対してコマンドを受信したときに、複数の第２アドレスをメモリ６のメモリ領域に記憶させる。
【００８４】
変換処理部４３は、メモリ領域に記憶された複数の第２アドレスをパスワードに変換する。ロック／解除部４４は、起動後にロック状態とし、変換処理部４３で変換されたパスワードと所定のパスワードとを照合し、変換されたパスワードが所定のパスワードと一致したときに、ロック状態を解除する。
【００８５】
従って、ロック解除コマンドのような専用のコマンドを使用することなく、ロックを解除することができる。
【００８６】
（第２実施形態）
図９は、第２実施形態のメモリシステムの構成を示すブロック図である。メモリシステム２ａは、メモリコントローラ５ａとメモリ６ａとからなる。メモリコントローラ５ａは、コマンド判定部４１、メモリアクセス部４２ａ、乱数生成処理部４５、送信処理部４６、データ算出部４７、ロック／解除部４８を備える。コマンド判定部４１、メモリアクセス部４２ａ、乱数生成処理部４５、送信処理部４６、データ算出部４７、ロック／解除部４８は、全体制御部１２がＲＯＭ１３に記憶されたコマンド解除処理プログラムを実行することで実現される機能である。
【００８７】
コマンド判定部４１は、ホスト機器１から所定の複数の第１アドレスに対して所定の順番で読み出しコマンドを受信したかどうかを判定する。乱数生成処理部４５は、コマンド判定部４１において、ホスト機器１から複数の第１アドレスに対する読み出しコマンドを所定の順番で受信したと判定された場合、最後の読み出しコマンドに対するデータとして乱数情報を生成し、生成された乱数情報に基づき所定の第１の計算により第１データを算出する。乱数生成処理部４５は、乱数の生成の度に更新される乱数シードデータやリングモジュレータ等の呼び出しの度に都度異なる情報を基に、演算して乱数情報を生成する。
【００８８】
送信処理部４６は、ホスト機器１から複数の第１アドレスに所定の順番で読み出しコマンドを受信したと判定された後、最後の読み出しコマンドに対するデータとして、乱数生成処理部４５で生成された乱数情報をホスト機器１に送信する。
【００８９】
ホスト機器１は、送信処理部４６からの乱数情報に基づき所定の第１の計算によりデータを生成し、生成されたデータから複数の第２アドレスを算出する。ホスト機器１は、算出された複数の第２アドレスに対する読み出しコマンドをシステムメモリ２に順番に送信する。
【００９０】
データ算出部４７は、コマンド判定部４１aにてホスト機器１から複数の第１アドレスに対する読み出しコマンドを所定の順番で受信したと判定された後、複数の第２アドレスに対する読み出しコマンドを受信した場合に、複数の第２アドレスに基づき所定の第２の計算により第２データを算出する。
【００９１】
ロック／解除部４８は、データ算出部４７で算出された第２データが乱数生成処理部４５で生成された第１データと一致したときにロックを解除する。
【００９２】
次にこのように構成された第２実施形態のメモリシステムのロック解除処理を、図１０を参照しながら詳細に説明する。ロック解除処理は、全体制御部１２がＲＯＭ１３に記憶されたコマンド解除処理プログラムを実行することで実現される。
【００９３】
まず、ホスト機器１がアドレスＡ１を含む読み出しコマンドをメモリシステム２に送ると、メモリシステム２のメモリコントローラ５ａは、アドレスＡ１を含む読み出しコマンドを受け取る。
【００９４】
コマンド判定部４１は、受信した読み出しコマンドとアドレスＡ１が予め設定されたコマンドと想定したアドレスＡ１〜Ａｎの始まりのＡ１であるかどうかを判定する。アドレスＯ１は、想定したアドレスに一致するため、次のＡ２を想定するアドレスとする。この判定にかかわらず、ロック状態であるため、アドレスＡ１の読み出し処理としては、エラーをホスト機器１に返送する。
【００９５】
同様にして、コマンド判定部４１は、受信した読み出しコマンドとアドレスＡが予め設定されたコマンドと想定したアドレスＡ１〜Ａｎを正しい順番で読み出されたかどうかの判定処理を繰り返し行い、最後に、アドレスＡｎの読み出し処理を完了する（ステップＳ９ｎ）。
【００９６】
そして、コマンド判定部４１は、アドレスＡ１の読み出しからアドレスＡｎの読み出しまで完了したので、ホスト機器１から複数のアドレスＡ１〜Ａｎに対して所定の順番で読み出しコマンドを受信したと判定する。
【００９７】
次に、乱数生成処理部４５は、乱数情報を生成し、生成された乱数情報に基づき所定の第１の計算によりデータＤ１を算出する（ステップＳ１０１）。具体的には、所定の第１の計算として、以下の式（２）の関数を用いてデータＤ１を算出する。
【００９８】
データＤ１＝ＡＥＳ（ｋ，乱数）ｘｏｒ乱数      …（２）。
【００９９】
ここで、ｘｏｒは、排他的論理和を表し、ＡＥＳ（ｋ，，乱数）と乱数との排他的論理和をとることである。データＤ１が例えば「0123456789ABCDEFFEDCBA9876543210」である。
【０１００】
さらに、送信処理部４６は、アドレスＡｎを含む最後の読み出しコマンドに対するデータとして、乱数生成処理部４５で生成された乱数情報をホスト機器１に送信する。
【０１０１】
ホスト機器１は、送信処理部４６から乱数情報を受け取り、上記所定の第１の計算、即ち式（２）を用いてデータＤ２を生成する（ステップＳ１０２）。さらに、ホスト機器１は、生成されたデータＤ２から複数の第２アドレスＢ１…Ｂｍを算出する（ステップＳ１０３）。
【０１０２】
データＤ２からアドレスを算出する方法の一例を説明する。複数のアドレスを４つのアドレスＢ１…Ｂ４とし、データＤ２が１２８ビットとした場合、１２８ビットを３２ビットずつ４つに分割し、それぞれをアドレスとする。
【０１０３】
データＤ２が例えば「0123456789ABCDEFFEDCBA9876543210」である場合に、Ｂ１＝01234567、Ｂ２＝89ABCDEF、Ｂ３＝FEDCBA98、Ｂ４＝76543210に分割する。
【０１０４】
次に、ホスト機器１がアドレスＢ１を含む読み出しコマンドをメモリシステム２に送ると、メモリシステム２のメモリコントローラ５ａは、アドレスＢ１を含む読み出しコマンドを受け取る。
【０１０５】
コマンド判定部４１は、受信した読み出しコマンドとアドレスＢ１が予め設定されたコマンドと想定したアドレスＢ１〜Ｂｎの始まりのＢ１であるかどうかを判定する。アドレスＢ１は、想定したアドレスに一致するため、次のＢ２を想定するアドレスとする。この判定にかかわらず、ロック状態であるため、アドレスＢ１の読み出し処理としては（ステップＳ２０１）、エラーをホスト機器１に返送する。
【０１０６】
同様にして、コマンド判定部４１は、受信した読み出しコマンドとアドレスが予め設定されたコマンドと想定したアドレスＢ１〜Ｂｎを正しい順番で読み出されたかどうかの判定処理を繰り返し行い、最後に、アドレスＢｍの読み出し処理を完了する（ステップＳ２０ｍ）。なお、アドレスＢ１〜Ｂｍは、アドレス読み出し時にメモリ６ａに記憶される。
【０１０７】
次に、データ算出部４７は、メモリアクセス部４２ａによりメモリ６ａから読み出されたアドレスＢ１〜Ｂｍに基づいてデータＤ２を算出する（ステップＳ３０１）。上述した例では、複数のアドレスを４つのアドレスＢ１…Ｂ４とし、Ｂ１＝01234567、Ｂ２＝89ABCDEF、Ｂ３＝FEDCBA98、Ｂ４＝76543210である。
【０１０８】
この場合、４つのアドレスＢ１…Ｂ４を連結し、0123456789ABCDEFFEDCBA9876543210からなるデータＤ２を得る。
【０１０９】
ロック／解除部４８は、データ算出部４７で算出された第２データＤ２が乱数生成処理部４５で生成された第１データＤ１と一致したかどうかを判定する（ステップＳ３０２）。
【０１１０】
ロック／解除部４８は、データ算出部４７で算出されたデータＤ２が乱数生成処理部４５で生成されたデータＤ１と一致した場合には、ロックを解除する（ステップＳ３０３）。
【０１１１】
上記の例では、データＤ１とデータＤ２とは、0123456789ABCDEFFEDCBA9876543210からなるデータであるので、一致する。
【０１１２】
このように第２実施形態のメモリシステムによれば、乱数生成処理部４５は、乱数情報を用いて第１データを生成し、データ算出部４７は、乱数情報に基づく複数の第２アドレスを用いて第２データを算出する。ロック／解除部４８は、第２データが第１データと一致したときにロックを解除する。
【０１１３】
従って、ロック解除コマンドのような専用のコマンドを使用することなく、ロックを解除することができる。
【０１１４】
また、認証処理に乱数情報を用いているので、毎回異なるアドレスでロック解除することができる。また、同じ関数を持つ特定のホスト機器以外では、ロック解除できなくなるという効果もある。
【０１１５】
以上のように、いくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１１６】
１…ホスト機器、２，２ａ…メモリシステム、３…制御部、４…コマンド発行部、５，５ａ…コントローラ、６，６ａ…メモリ、７…メモリリーダ、８…コマンド変換部、１１…ホストインターフェイス、１２…全体制御部、１３…ＲＯＭ、１４…ＲＡＭ、１５…メモリインターフェイス、２１…システム領域、２２…セキュア領域、２３…レジスタ領域、２４…ユーザ領域、３１…メモリ領域、３２…ページバッファ、４１…コマンド判定部、４２，４２ａ…メモリアクセス部、４３…変換処理部、４４，４８…ロック／解除部、４５…乱数生成処理部、４６…送信処理部、４７…データ算出部。
【図１】
2020149265.tif 000003
【図２】
2020149265.tif 000004
【図３】
2020149265.tif 000005
【図４】
2020149265.tif 000006
【図５】
2020149265.tif 000007
【図６】
2020149265.tif 000008
【図７】
2020149265.tif 000009
【図８】
2020149265.tif 000010
【図９】
2020149265.tif 000011
【図１０】
2020149265.tif 000012