(57)【特許請求の範囲】
【請求項１】
不揮発性半導体メモリを備え、該不揮発性半導体メモリへのアクセスが許可されるアンロック状態と、前記アクセスが禁止されるロック状態との２つの状態を備えるメモリカードに接続可能な半導体装置であって、
前記メモリカードに接続可能とされ、前記メモリカードと通信を行う第１インターフェイスと、
前記メモリカードへのアクセス命令を生成するホスト機器に接続可能とされ、前記ホスト機器と通信を行う第２インターフェイスと、
前記第１インターフェイスと第２インターフェイスに接続された制御部と、を具備し、
前記制御部は、前記第１インターフェイスに前記メモリカードが接続された際に、前記ホスト機器からの前記第２インターフェイスを経由したロック状態の前記メモリカードが受け付け可能な命令に従って、前記メモリカードの状態を読み出し可能な状態とする第１初期化処理を行い、前記第１初期化処理に成功した場合、前記メモリカードからステータスデータを読み出して前記メモリカードがロック状態であるかアンロック状態であるかを判断し、ロック状態であると判断された場合、前記ホスト機器から送信された命令によりパススルーモードに設定され、前記パススルーモードにおいて、前記ホスト機器から送信されたアンロック命令を前記メモリカードに通過させ、前記メモリカードのロック状態を解除することを特徴とする半導体装置。
【請求項２】
不揮発性半導体メモリを備え、該不揮発性半導体メモリへのアクセスが許可されるアンロック状態と、前記アクセスが禁止されるロック状態との２つの状態を備えるメモリカードに接続可能な半導体装置であって、
前記メモリカードに接続可能とされ、前記メモリカードと通信を行う第１インターフェイスと、
前記メモリカードへのアクセス命令を生成するホスト機器に接続可能とされ、前記ホスト機器と通信を行う第２インターフェイスと、
前記第１インターフェイスと第２インターフェイスに接続された制御部と、を具備し、
前記制御部は、前記第１インターフェイスに前記メモリカードが接続された際に、前記ロック状態の前記メモリカードが受け付け可能な命令を用いて前記メモリカードの状態を読み出し可能な状態とする第１初期化処理を行い、前記第１初期化処理に成功した場合、前記メモリカードからステータスデータを読み出して前記メモリカードが前記ロック状態であるか前記アンロック状態であるかを判断し、前記ロック状態であると判断された場合、前記メモリカードを正常に認識した旨の情報を前記第２インターフェイスから前記ホスト機器へ伝達することを特徴とする半導体装置。
【請求項３】
前記第１初期化処理に成功し且つ前記メモリカードがアンロック状態であった場合、前記制御部は、前記アンロック状態の前記メモリカードが認識可能であり且つ前記ロック状態のメモリカードが認識不可能な命令を用いて、前記メモリカードを書き込み、読み出し、消去可能とするため第２初期化処理を行う
ことを特徴とする請求項１又は２記載の半導体装置。
【請求項４】
前記第１初期化処理に成功し且つ前記メモリカードがロック状態であった場合、前記第２初期化処理を行うことなく、前記ホスト機器への前記伝達が行われる
ことを特徴とする請求項１乃至３のいずれかに記載の半導体装置。
【請求項５】
通常動作モードと前記パススルーモードとを備え、
前記通常動作モードにおいて、前記第２インターフェイスで前記ホスト機器から受信した第１命令が、命令フォーマットの異なる第２命令に変換されて前記第２インターフェイスから前記メモリカードへ出力され、
前記パススルーモードにおいて、前記第２インターフェイスで前記ホスト機器から受信した前記第１命令内に埋め込まれた前記第２命令が、前記第２インターフェイスから前記メモリカードへ出力される
ことを特徴とする請求項１記載の半導体装置。
【請求項６】
前記第１命令は、前記半導体装置及び前記ホスト機器において認識可能な命令フォーマットを有し、
前記第２命令は、前記メモリカードにおいて認識可能な命令フォーマットを有し、
前記制御部は、前記メモリカードを前記ロック状態から前記アンロック状態に移行させる旨の命令、及び前記アンロック状態から前記ロック状態へ移行させる旨の命令を、前記第１命令内に埋め込まれた前記第２命令信号として、前記ホスト機器から受信する
ことを特徴とする請求項５記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は半導体装置に関し、例えばメモリカードに接続される半導体装置に関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータ（ＰＣ）等に利用されるリムーバブルな記録媒体として、メモリカード（例えば特許文献１参照）、例えばＳＤTMカードが広く用いられている。ＳＤTMカードには、セキュリティの観点から、記録された機密情報を他者が読み出せないようにするためのロック／アンロック（Lock/Unlock）機能がある。ロック状態のＳＤTMカードは、一部の限定的なコマンドを受け付けるのみであり、データの読み出し、書き込み、消去等の正常なアクセスは出来なくなる。
【０００３】
ＳＤTMカードにアクセスするには、ＳＤTMカードのリーダ／ライタ（Reader/Writer）装置が必要となる。従来、リーダ／ライタにＳＤTMカードが挿入されると、リーダ／ライタはＳＤTMカードの初期化コマンドを発行する。しかし、ＳＤTMカードがロック状態にあると、初期化コマンドシーケンスが正常に終了しない場合がある。すると、リーダ／ライタは当該ＳＤTMカードを使用不可能と判断する。その結果、ＳＤTMカードに対しては、アンロックコマンドを含むコマンドアクセスが一切出来ないという問題があった。
【特許文献１】特開２００２−７４２７７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
この発明は、ロック状態のメモリカードを認識可能な半導体装置を提供する。
【課題を解決するための手段】
【０００５】
この発明の一態様に係る半導体装置は、不揮発性半導体メモリを備え、該不揮発性半導体メモリへのアクセスが許可されるアンロック状態と、前記アクセスが禁止されるロック状態との２つの状態を備えるメモリカードに接続可能な半導体装置であって、前記メモリカードに接続可能とされ、前記メモリカードと通信を行う第１インターフェイスと、前記メモリカードへのアクセス命令を生成するホスト機器に接続可能とされ、前記ホスト機器と通信を行う第２インターフェイスと、前記第１インターフェイスと第２インターフェイスに接続された制御部と、を具備し、前記制御部は、前記第１インターフェイスに前記メモリカードが接続された際に、前記ホスト機器からの前記第２インターフェイスを経由したロック状態の前記メモリカードが受け付け可能な命令に従って、前記メモリカードの状態を読み出し可能な状態とする第１初期化処理を行い、前記第１初期化処理に成功した場合、前記メモリカードからステータスデータを読み出して前記メモリカードがロック状態であるかアンロック状態であるかを判断し、ロック状態であると判断された場合、前記ホスト機器から送信された命令によりパススルーモードに設定され、前記パススルーモードにおいて、前記ホスト機器から送信されたアンロック命令を前記メモリカードに通過させ、前記メモリカードのロック状態を解除することを特徴とする。
【発明の効果】
【０００６】
この発明によれば、ロック状態のメモリカードを認識可能な半導体装置を提供できる。
【発明を実施するための最良の形態】
【０００７】
以下、この発明の実施形態のいくつかを、図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
【０００８】
［第１実施形態］  
この発明の第１の実施形態に係る半導体装置について、図１を用いて説明する。図１は、本実施形態に係るメモリシステムのブロック図である。
【０００９】
図示するようにメモリシステム１は、ホスト機器１０、ＵＳＢ（Universal Serial Bus）リーダ／ライタ２０、及びＳＤTMカード３０を備えている。
【００１０】
ホスト機器１０は、ＵＳＢリーダ／ライタ２０を介してＳＤTMカード３０へアクセスして、例えばデータの書き込み、読み出し、消去等を命令する。ホスト機器１０は、例えばパーソナルコンピュータ（ＰＣ）や、デジタルカメラ、携帯電話等であり、本実施形態ではＰＣである場合を例に説明する。
【００１１】
ＵＳＢリーダ／ライタ２０は、ＵＳＢインターフェイス２１、ＭＰＵ（Micro Processing Unit）２２、ＲＯＭ（Read Only Memory）２３、ＲＡＭ（Random Access Memory）２４、及びＳＤTMカードインターフェイス２５を備えている。これらは、同一の半導体基板２６上に形成されており、内部バス２７によって通信可能に接続されている。ＵＳＢインターフェイス２１は、ＵＳＢによってホスト機器１０と接続可能とされ、ホスト機器１０との間の通信を司る。またＵＳＢリーダ／ライタ２０は図示せぬカードスロットを備え、ＳＤTMカードインターフェイス２５は、カードスロットに挿入されたＳＤTMカード３０とＳＤTMカードバスによって接続される。そして、ＳＤTMカード３０との間の通信を司る。ＭＰＵ２２は、ホスト機器１０から受信した命令や、ＳＤTMカードから受信したデータを、ＲＯＭ２３及びＲＡＭ２４を用いて処理する。またＭＰＵ２２は、ＳＤTMカード３０がカードスロットに挿入された際に、ＳＤTMカード３０の初期化を行う。この初期化の際の処理については、後に詳述する。
【００１２】
次にＳＤTMカード３０の構成について説明する。ＳＤTMカード３０は、大まかにはＳＤTMカードコントローラ４０及びＮＡＮＤ型フラッシュメモリ５０を備えている。ＳＤTMカードコントローラ４０は、ＳＤTMカードインターフェイス４１、ＮＡＮＤインターフェイス４２、ＭＰＵ４３、ＲＯＭ４４、ＲＡＭ４５、及びＣＰＲＭ（Copy Protection for Prerecorded Media）回路４６を有する。これらは同一の半導体基板上に形成され、内部バス４７によって通信可能に接続されている。
【００１３】
ＳＤTMカードインターフェイス４１は、ＳＤTMカードバスによって、ＵＳＢリーダ／ライタ２０のＳＤTMカードインターフェイス２５と接続可能とされ、ＵＳＢリーダ／ライタ２０との間の通信を司る。ＮＡＮＤインターフェイス４２は、データバスによってＮＡＮＤ型フラッシュメモリ５０と接続されており、ＮＡＮＤ型フラッシュメモリ５０との間の通信を司る。
【００１４】
ＭＰＵ４３は、ＳＤTMカード３０全体の動作を制御する。ＭＰＵ４３は、例えばＳＤTMカード３０が電源供給を受けたときに、ＲＯＭ４４に格納されているファームウェア（制御プログラム）をＲＡＭ４５上に読み出して所定の処理を実行することにより、各種のテーブルをＲＡＭ４５上に作成する。またＭＰＵ４３は、ＵＳＢリーダ／ライタ２０から書き込みコマンド、読み出しコマンド、消去コマンドを受け取り、ＮＡＮＤ型フラッシュメモリ５０に対して所定の処理を実行したり、データ転送処理を制御したりする。
【００１５】
ＲＯＭ４４は、ＭＰＵ４３により制御される制御プログラムなどを格納する。ＲＡＭ４５は、ＭＰＵ４３の作業エリアとして使用され、制御プログラムや各種のテーブル（表）を記憶する。
【００１６】
ＣＰＲＭ回路４６は、ＳＤTMカード３０における著作権保護機能を司る。すなわち、ＮＡＮＤ型フラッシュメモリ５０内において秘匿されるべき情報に対してホスト機器１０からアクセスが為された場合に、当該アクセスを許可するか否かを決定する。
【００１７】
次に、ＮＡＮＤ型フラッシュメモリ５０の内部構成について簡単に説明する。図２はＮＡＮＤ型フラッシュメモリ５０の一部領域のブロック図である。図示するようにＮＡＮＤ型フラッシュメモリ５０は、メモリセルアレイ５１、ロウデコーダ５２、及びページバッファ５３を備えている。
【００１８】
メモリセルアレイ５１は、複数のＮＡＮＤセル５４を備えている。ＮＡＮＤセル５４の各々は、例えば３２個のメモリセルトランジスタＭＴ０〜ＭＴ３１と、選択トランジスタＳＴ１、ＳＴ２とを備えている。以下、メモリセルトランジスタＭＴ０〜ＭＴ３１をそれぞれ区別しない場合には、単純にメモリセルトランジスタＭＴと呼ぶ。メモリセルトランジスタＭＴ０〜ＭＴ３１は、選択トランジスタＳＴ２のドレインと選択トランジスタＳＴ１のソースとの間に、その電流経路が直列接続されている。メモリセルトランジスタＭＴの各々は、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層（例えばフローティングゲート）と、電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲートとを有する積層ゲートを備えている。
【００１９】
選択トランジスタＳＴ２のソースはソース線ＳＬに共通接続され、選択トランジスタＳＴ１のドレインは、ビット線ＢＬ０〜ＢＬｍ（ｍは自然数）のいずれかに接続されている。以下、ビット線ＢＬ０〜ＢＬｍを区別しない場合には、単純にビット線ＢＬと呼ぶ。また、同一メモリブロックＢＬＫ内のメモリセルトランジスタＭＴ０〜ＭＴ３１の制御ゲートは、それぞれワード線ＷＬ０〜ＷＬ３１に接続されている。また選択トランジスタＳＴ１、ＳＴ２のゲートは、それぞれセレクトゲート線ＳＧＤ、ＳＧＳに接続されている。  
上記構成において、いずれかのワード線ＷＬに接続された（ｍ＋１）個のメモリセルトランジスタＭＴには、一括してデータが書き込まれる。この一括してデータが書き込まれる単位を「ページ」と呼ぶ。また、メモリセルアレイ５１内の全メモリセルトランジスタＭＴは、一括してデータが消去される。
【００２０】
ロウデコーダ５２は、ＳＤTMカードコントローラ４０から与えられるロウアドレス信号に従って、メモリセルアレイ５１中におけるいずれかのワード線ＷＬを選択する。そして、書き込み時及び読み出し時には、選択したワード線ＷＬに対して電圧を印加する。
【００２１】
ページバッファ５３は、メモリセルアレイ５１へのデータ入出力を行い、データを一時的に保持する。ページバッファ５３とメモリセルアレイ５１との間のデータの入出力は、複数のデータ単位、すなわち前述の通りページ単位で行われる。
【００２２】
上記構成のＳＤTMカード３０は、ロック／アンロック機能を備えている。すなわちＳＤTMカードは、アンロック状態とロック状態との２つの状態を取り、ＭＰＵ４３は、アンロック状態においてＮＡＮＤ型フラッシュメモリ５０へのアクセスを許可し、ロック状態においてはＮＡＮＤ型フラッシュメモリ５０へのアクセスを禁止する。この状態は、ホスト機器１０からの命令によって遷移する。そして、ホスト機器１０からの命令に応じて、ＭＰＵ４３はロック状態を取るべきかまたはアンロック状態を取るべきかの情報を、例えばＲＡＭ４５内における特定のレジスタに保持する。
【００２３】
次に、ＵＳＢリーダ／ライタ２０にＳＤTMカード３０が挿入された際におけるＵＳＢリーダ／ライタ２０の動作について、図３を用いて説明する。図３は、ＵＳＢリーダ／ライタ２０の動作を示すフローチャートである。
【００２４】
図示するように、まずＵＳＢリーダ／ライタ２０のカードスロットにＳＤTMカード３０が挿入される。これにより、ＵＳＢリーダ／ライタ２０のＳＤTMカードインターフェイス２５と、ＳＤTMカード３０のＳＤTMカードインターフェイス４１とが、ＳＤTMカードバスによって接続される（ステップＳ１０）。その結果、ＵＳＢリーダ／ライタ２０とＳＤTMカード３０とは、相互に通信可能な状態となる。
【００２５】
次にＵＳＢリーダ／ライタ２０のＭＰＵ２２は、挿入されたＳＤTMカード３０に対して、第１の初期化を行う（ステップＳ１１）。第１の初期化とは、ロック状態のＳＤTMカード３０であっても受け付け可能なコマンドのみを使用した、ＳＤTMカード３０の初期化処理である。ロック状態のＳＤTMカード３０が受け付け可能なコマンドとは、例えばＣＭＤ０、ＣＭＤ２、ＣＭＤ３、ＣＭＤ７、ＣＭＤ９、ＣＭＤ１０、及びＡＣＭＤ４１等である。すなわちＭＰＵ２２は、例えばＲＯＭ２３から第１の初期化プログラムを読み出し、ＲＯＭ２３内に保持される上記コマンドを用いて第１の初期化を行う。
【００２６】
ステップＳ１１において初期化に失敗した場合（ステップＳ１２、ＮＯ）、ＵＳＢリーダ／ライタ２０はＳＤTMカード３０を認識せず、ＭＰＵ２２はカードエラーの旨を、ＵＳＢを介してＵＳＢインターフェイス２１からホスト機器１０に通知する（ステップＳ１３）。その結果、ホスト機器１０は当該ＳＤTMカード３０が使用不可能なカードであることを認識し、不正なカードがＵＳＢリーダ／ライタ２０に挿入されたと判断する。その後、当該カードに対するアクセスは不可能となる。
【００２７】
ステップＳ１１において初期化に成功した場合（ステップＳ１４、ＹＥＳ）、ＭＰＵ２２はＳＤTMカード３０からステータスデータを読み出し、当該ＳＤTMカード３０がロック状態であるか否かを判断する（ステップＳ１５）。すなわち、第１の初期化に成功することで、ＳＤTMカード３０は、当該ＳＤTMカード３０の状態（例えばロック状態かアンロック状態か等）がＵＳＢリーダ／ライタ２０によって読み出し可能な状態となる。
【００２８】
ステップＳ１４においてロック状態であると判断した場合（ステップＳ１５、ＹＥＳ）、ＭＰＵ２２はこの時点でＳＤTMカード３０の初期化処理を終了する。そしてＭＰＵ２２は、ＳＤTMカード３０を認識した旨の情報を、ＵＳＢを介してＵＳＢインターフェイス２１からホスト機器１０に通知する（ステップＳ１６）。以後、ホスト機器１０は当該ＳＤTMカード３０に対するアクセスが可能となる。但し、ＳＤTMカード３０はロック状態にあるので、データの書き込み、読み出し、消去等は禁止されており、これらのアクセスを行うにはＳＤTMカード３０をロック状態からアンロック状態に遷移させる必要がある。
【００２９】
ステップＳ１４においてアンロック状態であると判断した場合（ステップＳ１５、ＮＯ）、ＭＰＵ２２はＳＤTMカード３０に対して第２の初期化を行う（ステップＳ１７）。第２の初期化とは、ロック状態のＳＤTMカード３０は受け付け不可能であり、且つアンロック状態のＳＤTMカード３０のみが受け付け可能なコマンドも使用する初期化処理である。このコマンドの一例は、ＡＣＭＤ６等である。
【００３０】
第２の初期化に失敗した場合（ステップＳ１８、ＮＯ）、ＭＰＵ２２は当該ＳＤTMカード３０を不正とみなし、ステップＳ１３の処理へ進む。成功した場合（ステップＳ１８、ＹＥＳ）、第２の初期化の結果として、ＭＰＵ２２は、ＳＤTMカード３０に対して通常のメモリアクセスコマンドを発行可能な状態となる。つまり、ＳＤTMカード３０に対するデータの書き込み、読み出し、及び消去が可能となる。そしてＭＰＵ２２は、ステップＳ１６の処理に進む。
【００３１】
以上のように、本実施形態に係るＵＳＢリーダ／ライタ２０であると、ロック状態のメモリカードを認識出来る。本効果について、以下説明する。背景技術で説明したように、従来ＵＳＢリーダ／ライタは、ＳＤTMカード３０が挿入されるとそのカードに対して、データの書き込みや読み出しを可能にするために必要な一連の初期化コマンドを自動発行する。しかし、その初期化コマンドの一部には、ロック状態のＳＤTMカード３０が受け付けられないコマンドが含まれているため、初期化コマンドシーケンスが正常に終了しない場合がある。すると、従来のＵＳＢリーダ／ライタは、当該ＳＤTMカードは使用不可能と判断する。すなわち、例え正常なＳＤTMカードであったとしても、それがロック状態にあることのみを理由に不正なカードであると判断され、以降、アンロック命令を含むその後のアクセスが一切出来なくなるという問題があった。
【００３２】
しかし、本実施形態に係るＵＳＢリーダ／ライタ２０であると、まず、ロック状態のＳＤTMカード３０であっても受け付け可能なコマンドのみを使用して第１の初期化を行っている。第１の初期化によって、ＳＤTMカードはステータス読み出し可能状態となる。そこで、第１の初期化に成功した時点で、ＭＰＵ２２は当該ＳＤTMカード３０がロック状態であるか否かを把握する。そして、ＳＤTMカード３０がロック状態である場合には、その時点で当該ＳＤTMカード３０が正常なカードであることをホスト機器１０に通知すると共に、初期化処理を終了する。従って、ＵＳＢリーダ／ライタ２０に挿入されたＳＤTMカード３０がロック状態にあったとしても、そのことのみを理由としてカードエラーと判定することが無い。よって、ユーザにとってＳＤTMカード３０がより使いやすくなる。
【００３３】
なお上記実施形態においては、ＳＤTMカードで使用される具体的なコマンド（ＣＭＤ０、ＣＭＤ２、ＣＭＤ３、ＣＭＤ７、ＣＭＤ９、ＣＭＤ１０、ＡＣＭＤ６、及びＡＣＭＤ４１等）を例に挙げて説明した。しかし、第１の初期化は、ＳＤTMカードからそのステータス（ロック状態かアンロック状態か等）を読み出せる状態に出来れば良く、また第２の初期化は、ＳＤTMカードに対してメモリアクセスが可能に出来れば良く、上記コマンドを使用するものに限定されない。なお、上記コマンドを使用した場合の初期化の具体例については、後に説明する。
【００３４】
［第２の実施形態］  
次に、この発明の第２の実施形態に係る半導体装置について説明する。本実施形態は、上記第１の実施形態において、ロック状態のＳＤTMカードをアンロック状態にする方法に関するものである。
【００３５】
ＵＳＢ端子はＰＣ等の電子機器（ホスト機器）に設けられ、高速シリアル通信を利用して、さまざまな周辺機器（ターゲット（target）と呼ばれる）をホストに接続するために利用される端子である。現在は、このＵＳＢ端子を利用し、ターゲットとして、例えば、不揮発性半導体メモリ等のリムーバブルな記録媒体をホストに接続することが可能になっている。ＵＳＢ規格において、ターゲットとホストとの間で、ＵＳＢ端子を介してデータのリード及びライトが直接可能な記録媒体は、ＵＳＢマスストレージクラス（USB Mass Storage Class）と呼ばれる。
【００３６】
ＵＳＢマスストレージクラスの規格に対応した記録媒体は、例えば、ＳＣＳＩ（Small Computer System Interface）の標準フォーマットに従って記述されたコマンド及びデータを、ホストとの間でＵＳＢインターフェイスのバルク転送を用いて送受信することで、データのリード及びライトを実現する。以下、ＳＣＳＩの標準フォーマットに従って記述されたコマンドをＳＣＳＩコマンドと呼ぶことにする。
【００３７】
すなわち、例えばホスト機器１０から与えられ、ＵＳＢの通信プロトコルに対応した形式のＳＣＳＩコマンドがリーダ／ライタ２０に与えられると、ＵＳＢリーダ／ライタ２０はこのＳＣＳＩコマンドを、ＳＤTMカードの通信プロトコルに対応した形式であるＳＤTMカードコマンドに変換して、ＳＤTMカード３０へ出力する。ＳＣＳＩコマンドの一例としては、例えば、ＳＣＳＩブロックデバイスコマンド等があり、特に、ＡＴＡ（AT Attachment）ブロックリード／ライトコマンドが良く知られる。
【００３８】
しかし、従来のＳＣＳＩコマンドは、ホストから記録媒体の通常のユーザデータに対して直接にデータをライトしたり、リードしたりするアクセス手段を提供するだけである。つまり、従来のＳＣＳＩコマンドは、ＳＤTMカード３０のロック／アンロック機能へのアクセス手段は提供しない。
【００３９】
そこで本実施形態は、ＳＤTMカード３０のロック／アンロック機能へのアクセス手段を提供するために、専用の動作モードをＵＳＢマスストレージクラスの規格に対応した記録媒体、例えば、ＵＳＢマスストレージクラスの規格に対応したＵＳＢリーダ／ライタ２０に用意する。この専用の動作モードとは、ホストから送信されたコマンド及びデータがＵＳＢリーダライタ２０をパススルー（pass through）し、ＳＤTMカード３０のＳＤTMカードコントローラ４０に直接送られる動作モードである。この専用の動作モードを、以下“パススルーモード”と呼び、それ以外の動作モードを通常動作モードと呼ぶことにする。さらに、パススルーモードをイネーブルするために、本例では新規なコマンドを用意する。この新規なコマンドを、以下拡張されたＳＣＳＩコマンドと呼び、その詳細については後述する。
【００４０】
まず、パススルーモードを用いてＳＤTMカード３０をロック状態からアンロック状態に遷移させる際の動作について、図４を用いて説明する。図４は、ホスト機器１０、ＵＳＢリーダ／ライタ２０、及びＳＤTMカード３０における処理の流れを示すフローチャートである。
【００４１】
図示するように、まずロック状態にあるＳＤTMカード３０をアンロック状態に遷移させるにあたってホスト機器１０は、拡張されたＳＣＳＩコマンドを用いてＵＳＢリーダ／ライタ２０をパススルーモードに移行させる（ステップＳ２０）。
【００４２】
ＵＳＢリーダ／ライタ２０がパススルーモードに移行した後、ホスト機器１０は拡張されたＳＣＳＩコマンドを用いてアンロックコマンドをＵＳＢリーダ／ライタ２０へ出力する（ステップＳ２１）。アンロックコマンドとは、ＳＤTMカード３０をアンロック状態に遷移させるための命令である。この際、ＳＤTMカードコマンドの形式であるアンロックコマンドが、拡張されたＳＣＳＩコマンドに埋め込まれた状態で、ＵＳＢリーダ／ライタ２０へ出力される。
【００４３】
すると、ステップＳ２１で出力されたＳＣＳＩコマンドを受信したＵＳＢリーダ／ライタ２０は、このＳＣＳＩコマンドに埋め込まれたアンロックコマンドを、そのままの形式（ＳＤTMカードコマンド）でＳＤTMカード３０へ通過させる（ステップＳ２２）。すなわち、通常動作モードのように、受信したＳＣＳＩコマンドをＳＤTMカードコマンドに変換する処理は行わない。
【００４４】
すると、アンロックコマンドを受信したＳＤTMカードコントローラ４０は、ロック状態を解除してアンロック状態となる（ステップＳ２３）。これにより、以後、ＳＤTMカード３０への書き込み、読み出し、及び消去等の通常のアクセスが可能となる（ステップＳ２４）。
【００４５】
なお、図４ではロック状態からアンロック状態に遷移する場合について示しているが、アンロック状態からロック状態に遷移する場合も同様の方法によって可能である。すなわち、まずステップＳ２０によりＵＳＢリーダ／ライタ２０をパススルーモードに移行させた後、ホスト機器１０はロックコマンドを拡張されたＳＣＳＩコマンドに埋め込んで出力する。すると、ＵＳＢリーダ／ライタ２０はロックコマンドをパススルーしてＳＤTMカード３０へ出力する。これにより、ＳＤTMカードコントローラ４０はロック状態となる。
【００４６】
次に、上記パススルーモードを実現するための論理インターフェイスについて説明する。図５は、本実施形態に係るメモリシステム１の論理インターフェイス例を示す図である。図５に示す論理インターフェイスは、ホスト機器１０ではなく、ＵＳＢリーダ／ライタ２０に搭載された通信インターフェイスに定義される。
【００４７】
図５に示すように、本実施形態に係るＵＳＢリーダ／ライタ２０を、例えばホスト機器１０のＵＳＢ端子に接続すると、一般的なＵＳＢデバイスと同様に、通信インターフェイス内のマスストレージクラスインターフェイス（Mass Storage Class Interface）としてエンドポイント（ＥＰ）が認識される。本例では、マスストレージクラスインターフェイスに、３つのエンドポイントＥＰ０〜ＥＰ２が用意されている。なおエンドポイントとは、ＵＳＢリーダ／ライタ２０とホスト機器との間を接続する論理的な通信経路の最小単位のことであり、ＵＳＢ規格により定められている。
【００４８】
エンドポイントＥＰ０は、制御用エンドポイント（Control EP）である。すなわちエンドポイントＥＰ０は、ＵＳＢデバイスのコンフィグレーション等、ＵＳＢデバイスとしての制御を行う際に使用され、コントロール転送のみが可能である。
【００４９】
これに対してＳＣＳＩコマンド、データ、及びレスポンスの転送は、全てエンドポイントＥＰ１、ＥＰ２を用いて行われ、バルク転送が可能である。このうちエンドポイントＥＰ１は、ダウンストリーム用エンドポイント（Bulk In EP）である。エンドポイントＥＰ１には、例えば、ホスト機器１０からＵＳＢリーダ／ライタ２０へ転送されるデータやＳＣＳＩコマンド等が上記バルク転送で送信され、セットされる。またエンドポイントＥＰ２は、アップストリーム用エンドポイント（Bulk Out EP）であり、例えば、ＵＳＢリーダ／ライタ２０からホスト機器１０へ転送するデータがセットされる。
【００５０】
本例のＳＣＳＩコマンドとしては、ＵＳＢリーダ／ライタ２０に使用される通常のコマンド、例えば、上述のＡＴＡブロックリード／ライトコマンド（ATA Block Read/Write Command）に加えて、パススルーモード用の専用のコマンドが、ＳＣＳＩコマンドの拡張されたコマンドとして定義される。前述の通り、本例の拡張されたＳＣＳＩコマンドの一つは、ＳＣＳＩコマンドにＳＤTMカードコマンドを埋め込んだものである。そして埋め込まれたＳＤTMカードコマンドは、ロックコマンドやアンロックコマンド等である。また、ロックコマンドやアンロックコマンドの他に、従来のＳＣＳＩコマンドではカバーされていない著作権保護機能をイネーブルするためのコマンドや、ＮＡＮＤ型フラッシュメモリ５０において、機密情報を保持すべき秘匿領域へのアクセスコマンドが埋め込まれても良い。
【００５１】
図６は、エンドポイントＥＰ１にセットされる、拡張されたＳＣＳＩコマンドの一例を示す。本例では、ＵＳＢインターフェイス２１上の一つの通信パケットに、拡張されたＳＣＳＩコマンド（パススルーモード用専用コマンド）、及びこの通信パケットに埋め込まれたコマンド（ロックコマンド、アンロックコマンド、著作権保護用コマンド等）が書き込まれ、これらが書き込まれた通信パケットがエンドポイントＥＰ１にセットされる。通信パケットは、ＵＳＢの通信プロトコルに対応する。拡張されたＳＣＳＩコマンドは、ＳＣＳＩフォーマットに従って記述されており、ＵＳＢリーダ／ライタ２０のＭＰＵ２２において読み取り可能である。対して埋め込まれたコマンド（ＳＤTMカードコマンド）は、ＵＳＢの通信プロトコルとは異なる通信プロトコル、本例ではＳＤTMカード３０の通信プロトコルに対応する。埋め込まれたコマンドは、ＳＤTMカードコントローラ４０において読み取り可能である。
【００５２】
拡張されたＳＣＳＩコマンドのうち、パススルーモードをイネーブルにする旨のコマンドをＵＳＢリーダ／ライタ２０のＭＰＵ２２が読み取ると、ＵＳＢリーダ／ライタ２０はパススルーモードをイネーブルする。パススルーモードがイネーブルされると、以後、パススルーモードでのコマンド、データ、レスポンスの送受信が可能となり、パススルーモードの拡張コマンドに埋め込まれたＳＤTMコマンドはＵＳＢリーダ／ライタ２０をパススルーしてＳＤTMカードコントローラ４０に送られる。
【００５３】
パススルーされたＳＤTMカードコマンドのうち、ロックコマンドまたはアンロックコマンドをＳＤTMカードコントローラ４０のＭＰＵ４３が読み取ると、ＭＰＵ４３はロック／アンロック機能を作動させ、コマンドに応じてロック状態とアンロック状態とのいずれかの状態に遷移する。更に、パススルーされたＳＤTMカードコマンドが著作権保護用コマンドであると、ＭＰＵ４３は著作権保護機能を作動させ、ＣＰＲＭ回路４６がアクセスされる。パススルーモードにおいては、コマンドだけでなくデータもＵＳＢリーダ／ライタ２０をパススルーする。すなわち、ＮＡＮＤ型フラッシュメモリ５０の秘匿領域に書き込むべきデータや、秘匿領域から読み出されたデータは、ＵＳＢリーダ／ライタ２０をパススルーする。
【００５４】
以下、上記動作の、より詳細な一例を、図５を用いて説明する。図示するように、エンドポイントＥＰ１にセットされたＳＣＳＩコマンド及びデータ（ダウンストリームデータ）は、マスストレージクラスインターフェイスからＳＣＳＩコマンドインターフェイス（SCSI Command I/F）へ転送される。また、ＵＳＢリーダ／ライタ２０からのデータ（アップストリームデータ）、及びレスポンスは、ＳＤTMカード３０からＳＣＳＩコマンドインターフェイスを介して、エンドポイントＥＰ２にセットされる。
【００５５】
ここで、エンドポイントＥＰ１にセットされたＳＣＳＩコマンドが、通常のコマンド、例えば、ＡＴＡブロックリード／ライトコマンドであった場合には、ＳＣＳＩコマンドインターフェイスは、通常のマスストレージクラスのＳＣＳＩコマンド処理をする。すなわち、ＵＳＢリーダ／ライタ２０のＭＰＵ２２は、ＳＣＳＩの標準フォーマットに従って記述されたコマンド及びデータを、ＳＤTMカード３０のメモリ領域をアクセスするコマンド（ＳＤTMカードコマンド）及びデータに変換する。
【００５６】
このように、エンドポイントＥＰ１に通常のＳＣＳＩコマンドがセットされた場合には、ＵＳＢリーダ／ライタ２０は、一般的なＵＳＢデバイスと同じように通常のＳＣＳＩコマンドに従って動作する。
【００５７】
対して、エンドポイントＥＰ１にセットされたＳＣＳＩコマンドが、拡張されたコマンド、例えば、パススルーモード用の専用のコマンドであった場合には、ＳＣＳＩコマンドインターフェイスは、パススルーモード用のＳＣＳＩコマンド処理をする。すなわちＭＰＵ２２は、ＳＣＳＩコマンド内に埋め込まれたＳＤTMカードコマンドを取り出し、これをＳＤTMカードコントローラ４０へ転送する。これにより、ＳＤTMカードコントローラ４０はロック／アンロック機能を作動させることが出来る。また著作権保護機能など、従来のＵＳＢでは対応していないがＳＤTMカードコマンドで対応している機能へのアクセスが可能となる。
【００５８】
図７は、本実施形態に係るメモリシステム１の論理構成を示す概念図である。第１の実施形態において図３を用いて説明した処理により初期化が完了し、ＳＤTMカード３０が認識されると、ホスト機器１０からのＳＤTMカード３０へのアクセスが行われる。図中において、実線が通常動作モードにおけるアクセスの流れである。つまり、アンロック状態のＳＤTMカード３０へのアクセスの流れである。また、破線がパススルーモードにおけるロック／アンロック機能へのアクセスの流れである。つまり、ロック状態のＳＤTMカード３０へのアクセスの流れである。
【００５９】
図示するように、アンロック状態のＳＤTMカード３０に対しては、ホスト機器１０上のアプリケーションソフト１４からファイルシステムソフトウェア１３にファイルアクセスコマンドが発行される。このコマンドに応じて、ファイルシステムソフトウェア１３からマスストレージクラスの標準コマンド（ＳＣＳＩコマンド）によって、ドライバソフトウェア１２及びＵＳＢホストコントローラ１１を介してＵＳＢリーダ／ライタ２０にアクセスが為される。すなわち、ＮＡＮＤ型フラッシュメモリ５０の通常のメモリ領域に対するデータの書き込み、読み出し、消去が行われる。またパススルーモードを使用することによって、ホスト機器１０上のロック／アンロックアプリケーション１５がロックコマンドを発行して、ＳＤTMカード３０をロック状態にすることも出来る。また、パススルーモードを使用すれば、アプリケーションソフト１４からＮＡＮＤ型フラッシュメモリ５０の秘匿領域へアクセスすることも可能である。
【００６０】
ロック状態のＳＤTMカード３０に対しては、アンロック状態と同じようにアプリケーションソフト１４からファイルアクセスコマンドが発行されたとしても、ＳＤTMカード３０からエラーが返ってくるのみであり、実際のファイルアクセスは出来ない。しかしパススルーモードを使用することによって、ロック／アンロックアプリケーション１５がアンロックコマンドを発行して、ＳＤTMカード３０をアンロック状態にすることも出来る。
【００６１】
次に、パススルーモード用の専用コマンドとしての、拡張されたＳＣＳＩコマンドについて説明する。これらのコマンドは、例えばＳＣＳＩプロトコルによるベンダーユニークコマンド（Vender Unique Command）を定義することで得ることができる。ＵＳＢリーダ／ライタ２０は、ベンダーユニークコマンドをサポートすることでパススルー動作を可能とする。図８は、拡張されたＳＣＳＩコマンドに対応するオペレーションコードとの関係を示す表である。
【００６２】
図示するように、本実施形態に係るメモリシステム１における拡張されたＳＣＳＩコマンドでは、下記７つのコード（Command Code）が定義される。  
（１）パススルーモードセットコマンド（SDTM Card Passthrough Mode）
オペレーションコード“Ｄ０ｈ”
（２）データ無しＳＤTMカード実行コマンド（SDTM Execute (No Data)）
オペレーションコード“Ｄ１ｈ”
（３）読み出し付ＳＤTMカード実行コマンド（SDTM Execute (read from SDTM Card)）
オペレーションコード“Ｄ２ｈ”
（４）書き込み付ＳＤTMカード実行コマンド（SDTM Execute (write to SDTM Card)）
オペレーションコード“Ｄ３ｈ”
（５）レスポンス取得コマンド（Get Response）
オペレーションコード“Ｄ４ｈ”
（６）予備コマンド（Reserved）
オペレーションコード“Ｄ５ｈ”
（７）ハードウェアリセットコマンド(SDTM Hardware Reset)
オペレーションコード“Ｄ６ｈ”
なお、本実施形態において、数値の後ろに示した“ｈ”は、その数値が１６進数であることを表す。従って、例えば上記のオペレーションコード“Ｄ０ｈ”は、２進数で表記した場合には“１１０１＿００００”となる。
【００６３】
上記拡張されたＳＣＳＩコマンドのうち、パススルーモードセットコマンドは、ＵＳＢリーダ／ライタ２０を通常動作モードからパススルーモードに変更するためのコマンドである。そしてオペレーションコードとして“Ｄ０ｈ”が用いられ、この“Ｄ０ｈ”が、ホスト機器１０からＵＳＢリーダ／ライタ２０に与えられる。
【００６４】
また、データ無しＳＤTMカード実行コマンド、読み出し付ＳＤTMカード実行コマンド、及び書き込み付ＳＤTMカード実行コマンドは、データを付随せずに、または付随して、ＳＤTMカード３０に対してアクセスするためのコマンドである。そしてオペレーションコードとしてそれぞれ“Ｄ１ｈ”、“Ｄ２ｈ”、“Ｄ３ｈ”が用いられ、これらがホスト機器１０からＵＳＢリーダ／ライタ２０に与えられる。
【００６５】
予備コマンドとは、不正コマンド（Illegal Command）のコードに割り当てられる。更にハードウェアリセットコマンドは、ＳＤTMカード及びそのファームウェアの初期化を行うためのコマンドであり、オペレーションコードとして“Ｄ６ｈ”が用いられる。
【００６６】
次に、上記各コマンドのフォーマットの一例について、図９乃至図１３を用いて説明する。図９乃至図１３は、各コマンドのフォーマットを示す概念図であり、各図の各行が１バイトのデータを示し、横軸に示す数値は、１バイトの各データのビット位置を示している。
【００６７】
＜パススルーモードセットコマンド＞  
図９は、パススルーモードセットコマンドのフォーマットの一例を示す概念図である。ＵＳＢリーダ／ライタ２０の起動時は、パススルーモードがディセーブル（disable）である。すなわち、通常動作モードにある。この場合、ＵＳＢリーダ／ライタ２０は、拡張されたコマンドのうち、コマンドコード“Ｄ０ｈ”以外のコマンドコードに対しては“不正コマンドエラー”を返す。つまり、ＵＳＢリーダ／ライタ２０は“Ｄ０ｈ”以外の拡張コマンドは受け付けない。
【００６８】
図示するように、パススルーモードセットコマンドの先頭バイト（０バイト目）には、オペレーションコード（Operation Code）として、パススルーモードセットコマンドであることを示す“Ｄ０ｈ”が設定される。コマンドモード（Command Mode）には、パススルーモードをディセーブルするときは“００００（“０ｈ”）”が設定され、パススルーモードをイネーブルするときは“０００１（“１ｈ”）”が設定される。コマンドモードを“０００１”に設定してパススルーモードセットコマンド（コード“Ｄ０ｈ”）を実行するとＵＳＢリーダ／ライタ２０において、パススルーモードがディセーブルからイネーブルに変わる。これによりパススルーモードがイネーブルされ、ＵＳＢリーダ／ライタ２０はコード“Ｄ１ｈ”〜“Ｄ６ｈ”の実行が可能となる。なお図９において、“ＬＵＮ”は使用すべき論理ドライブを示し、“Control Byte”はコマンドフォーマットに与えられる所定の値である。
【００６９】
＜レスポンス＞  
図１０に、レスポンスのフォーマットの一例を示す。レスポンスとは、レスポンス取得コマンドに応答してＳＤTMカード３０から与えられる信号であり、コマンドに対するアクノリッジの意味を持つ。レスポンス取得コマンドとレスポンスとの関係については後述する。
【００７０】
レスポンスは、図１０に示すフォーマットに従って、ホスト機器１０とＵＳＢリーダ／ライタ２０との間で送受信される。図中において、“ＷＰ”はライトプロテクト（write protect）の有無を示しＷＰ＝“０”の場合には書き込みが許可され、ＷＰ＝“１”の場合には書き込みが禁止される。“Media Type”は、レスポンスを返すメディアの種類を示す。Media Type＝“０”の場合にはメディアが存在しないことを示し、Media Type＝“１”の場合にはＳＤTMカードであることを示し、Media Type＝“２”の場合にはＳＤTMカードとコンパーチブルなメディアであることを示し、Media Type＝“３”の場合にはＳＤTMカードに類似したメディア（Illegal Media）であることを示す。更に、６〜７バイト目には、ＲＣＡ（Relative card address）が保持される。ＲＣＡは、ＳＤTMカードの初期化等の際にＳＤTMカード自らが設定する値であり、一部のＳＤTMカードコマンドの入力パラメータとして使用される。また、“Max LUN Number”は論理ドライブの数を示す。
【００７１】
＜ＳＤTMカード実行コマンド＞  
図１１に、データ無しＳＤTMカード実行コマンド、読み出し付ＳＤTMカード実行コマンド、及び書き込み付ＳＤTMカード実行コマンドのフォーマットの一例を示す。なお、これらのコマンドを区別しない場合には、単にＳＤTMカード実行コマンドと呼ぶ。
【００７２】
ＳＤTMカード実行コマンドは、実際にＳＤTMカードに対してアクセスを行って、何らかの処理を行うためのコマンドである。前述の通り、パススルーモードにおいては、拡張されたＳＣＳＩコマンドにＳＤTMカードコマンドが埋め込まれて、それが直接ＳＤTMカードコントローラへ転送される。このＳＤTMカードコマンドが埋め込まれるＳＣＳＩコマンドが、ＳＤTMカード実行コマンドである。
【００７３】
図示するように、最初の０バイト目にはオペレーションコードが設定される。ＳＤTMカードコントローラ４０へのアクセスにデータを必要としない場合には、データ無しＳＤTMカード実行コマンドとして“Ｄ１ｈ”が設定される。また、ＳＤTMカードコントローラ４０へのデータの読み出しアクセスの場合には、読み出し付ＳＤTMカード実行コマンドとして“Ｄ２ｈ”が設定される。更にＳＤTMカードコントローラ４０へのデータの書き込みアクセスの場合には、書き込み付ＳＤTMカード実行コマンドとして“Ｄ３ｈ”が設定される。
【００７４】
次の１バイト目の下位４ビットには、それぞれ“ＢＬＫＨ”、“Send cmd12”、“Standby”、“ＡＣＭＤ”が設定される。これらは、当該コマンドに埋め込まれたＳＤTMカードコマンドを如何にしてＳＤTMカードコントローラ４０へ受け渡すかを示す情報である。
【００７５】
“ＢＬＫＨ”は、ＳＤTMカードコントローラとの間のデータの転送が、シングルセクタで行われるか（ＢＬＫＨ＝“０”）、または複数のセクタで行われるか（ＢＬＫＨ＝“１”）を示す情報である。すなわち、ＢＬＫＨ＝“１”の場合には、ＮＡＮＤ型フラッシュメモリ５内の複数のブロックに対応するデータが転送される。なおブロックとは、ＮＡＮＤ型フラッシュメモリ５０内においてデータを保持するメモリセルの集合のことであり、同一ブロック内のメモリセルに保持されるデータは一括して消去される。
【００７６】
また“Send cmd12”は、命令の実行が完了したＳＤTMカード３０において、ＳＤTMカード３０に実装される所定のコマンドcmd12を実行するか否かを示す情報である。コマンドcmd12は、ホスト機器がＳＤTMカードにマルチブロック転送（ＢＬＫＨ＝“１”：書き込み、及び読み出し）が終了したことを示すためコマンドである。
【００７７】
“Standby”は、スタンバイ状態のＳＤTMカードに対するリクエストコマンドを示す情報である。そして“ＡＣＭＤ”は、上記リクエストコマンドが特定用途のＡＣＭＤであるか否かを示す。特定用途のコマンドとは、例えばロック／アンロック機能や著作権保護機能にアクセスするためのコマンドである。そして、リクエストコマンドが特定用途のコマンドである場合にはＡＣＭＤ＝“１”とされ、通常のコマンドである場合にはＡＣＭＤ＝“０”とされる。
【００７８】
そして、２バイト目の下位６ビットと、３〜６バイト目に、ＳＤTMカードコマンドが埋め込まれる。ＳＤTMカードコマンドは、命令の内容（readやwriteなど）を示す“SDTM Command Index”と、その命令を実行するために必要な情報（アドレスなど）を示す“SDTM Command Argument”とを含んでいる。
【００７９】
また７〜９バイト目には、読み出しデータや書き込みデータ等、命令の実行に要するデータ（“Data Transfer Length”）が保持される。“Response Type”は、ＳＤTMカードに送られるレスポンスタイプを示す。レスポンスタイプには、“Ｒ１”、“Ｒ１ｂ”、“Ｒ２”〜“Ｒ６”が用意されている。これらの詳細については後述する。“Response Type”が“００００＿００１１”の場合にはレスポンスは送られず（“No Res”）、“００００＿０１００”の場合には“Ｒ１”、“Ｒ４”〜“Ｒ６”が選択され、“００００＿０１０１”の場合には“Ｒ１ｂ”が選択され、“００００＿０１１０”の場合には“Ｒ２”が選択され、“００００＿０１１１”の場合には“Ｒ３”が選択される。
【００８０】
従って、ホスト機器１０がロックコマンドまたはアンロックコマンドを発行する際には、図１１に示すフォーマットにおいて、オペレーションコードを“Ｄ１ｈ”とすると共に、“SDTM Command Index”と“SDTM Command Argument”にＳＤTMカードコマンド形式のロックコマンドまたはアンロックコマンドを埋め込めば良い。また、ＮＡＮＤ型フラッシュメモリ５０の秘匿領域にデータを書き込むような場合には、図１１に示すフォーマットにおいて、オペレーションコードを“Ｄ３ｈ”とすると共に、“SDTM Command Index”と“SDTM Command Argument”にＳＤTMカードコマンド形式の書き込みコマンドを埋め込み、更に“Data Transfer Length”に書き込むべきデータを埋め込めば良い。
【００８１】
＜ハードウェアリセットコマンド＞  
図１２に、ハードウェアリセットコマンドのフォーマットの一例を示す。
【００８２】
図示するように、最初の０バイト目にはオペレーションコードとして“Ｄ６ｈ”が設定される。
【００８３】
＜レスポンス取得コマンド＞  
図１３に、レスポンス取得コマンドのフォーマットの一例を示す。
【００８４】
図示するように、最初の０バイト目にはオペレーションコードとして“Ｄ４ｈ”が設定される。
【００８５】
以下、レスポンス取得コマンドとレスポンスとの関係について説明する。パススルーモード時においてＳＤTMカードコマンドは、ＵＳＢリーダ／ライタ２０をパススルーしてＳＤTMカードコントローラ４０に直接に送り込まれる。一方、パススルーモード時以外には、ＳＣＳＩコマンドが、ＵＳＢリーダ／ライタ２０においてＳＤTMカードコントローラ４０で読み取り可能なコマンドに変換された上でＳＤTMカードコントローラ４０に送り込まれる。
【００８６】
ＳＤTMカード３０のコマンドには、コマンドに対するレスポンスを要求するものと、要求しないものとがある。しかし、通常のＳＣＳＩコマンドでは、このような動作を想定していない。従って、もしＳＤTMカード３０に対してレスポンスを要求するコマンドが送り込まれたならば、ＳＤTMカードコントローラ４０から出力されたレスポンスは、例えば、ＳＤTMカードコントローラ４０とＵＳＢリーダ／ライタ２０との間に閉じ込められてしまう。レスポンスがＵＳＢリーダ／ライタ２０の内部に閉じ込められてしまうと、ＵＳＢリーダ／ライタ２０の動作が不安定になったり、あるいは誤動作したりする原因になりかねない。
【００８７】
このような事情を解消するために、本例では、拡張されたコマンドの一つに、レスポンス取得コード（Get Response）を定義する。そして、レスポンス取得コードを拡張されたコマンドの一つに定義し、定義したレスポンス取得コードをＵＳＢリーダ／ライタ２０に送り込む。これにより、ＳＤTMカードコントローラ４０から出力されたレスポンスはＵＳＢリーダ／ライタ２０内に閉じ込められることはなく、レスポンスはＳＤTMカードコントローラ４０からＵＳＢリーダ／ライタ２０を介してホスト機器１０へ送信することができる。これにより、ＵＳＢリーダ／ライタ２０の装置の動作が不安定になったり、誤動作したりする原因の一つを排除できる、という利点を得ることができる。
【００８８】
図１４（ａ）は、ＳＤTMカードに対してレスポンスを要求しないコマンドのときのコマンド処理例を示す図である。レスポンスを要求しないコマンドのタイプとしては、addressed(point-to-point) commands(ａｃ)、及びbroadcast commands(ｂｃ)がある。これらのコマンドのレスポンスタイプは“No Res”である。すなわち、図１１に示すフォーマットにおいて、“Response Type”は“００００＿００１１”である。
【００８９】
図示するように、ホスト機器から“No Res”のデータ無しＳＤTMカード実行コマンド（SDTM EXECUTE with no data：“Ｄ１ｈ”）をＵＳＢリーダ／ライタ２０に送信するときには、当該コマンドのみをＵＳＢリーダ／ライタ２０に送信するだけで良い。当該コマンドを受信したＵＳＢリーダ／ライタ２０のＭＰＵ２２は、受信したＳＣＳＩコマンドに埋め込まれたＳＤTMカードコマンド（Command）をＳＤTMカードコントローラ４０に転送する。これで処理は終了する。
【００９０】
一方、レスポンスを要求するコマンドのタイプとしては、broadcast commands with response(ｂｃｒ)がある。このコマンドのレスポンスタイプには、前述の“Ｒ１”、“Ｒ１ｂ”、“Ｒ２”〜“Ｒ６”等がある。これらのレスポンスタイプは概ね、“Ｒ１”はノーマルレスポンス、“Ｒ１ｂ”はオプションでビジー信号をデータ線に転送可能なノーマルレスポンス、“Ｒ２”はＳＤTMカードコントローラ４０内のＣＩＤ（Card IDentification number register）又はＣＳＤ（Card Specific Data register）から送られるレスポンス、“Ｒ３”はＳＤTMカードコントローラ４０内のＯＣＲ（Operation Conditions Register）から送られるレスポンス、“Ｒ４”及び“Ｒ５”はＳＤTMカード３０に類似したメディア（illegal media）のときに付加されるレスポンス、“Ｒ６”はＳＤTMカード３０内のＲＣＡ（Relative Card Address register）から送られるレスポンスである。なお、本明細書においては、レスポンスタイプ“Ｒ１”〜“Ｒ６”を総称して“With Res”と呼び、それらの詳細については省略する。
【００９１】
図１４（ｂ）は、ＳＤTMカード３０に対してレスポンスを要求するコマンドのときのコマンド処理例を示す図である。図１４（ｂ）は記録媒体としてＳＤTMカード３０を利用する例を示すため、図中にレスポンスタイプ“Ｒ４”及び“Ｒ５”は示されないが、レスポンスタイプ“Ｒ４”及び“Ｒ５”における処理例も、図１４（ｂ）と同様である。
【００９２】
図示するように、ホスト機器１０から“With Res”のデータ無しＳＤTMカード実行コマンド（SDTM EXECUTE with no data：“Ｄ１ｈ”）をＵＳＢリーダ／ライタ２０に送信するときには、当該コマンドを送信した後に、レスポンス取得コマンド（Get Response：“Ｄ４ｈ”）を送信する。以下処理例を説明する。
【００９３】
“With Res”のコマンド（“Ｄ１ｈ”）を受信したＵＳＢリーダ／ライタ２０は、受信したＳＣＳＩコマンドに埋め込まれたＳＤTMカードコマンド（Command）をＳＤTMカードコントローラ４０に転送する。ＳＤTMカードコントローラ４０のＭＰＵ４３は、受信したＳＤTMカードコマンドに従って処理を実行した後、レスポンス（Response）を返す。このレスポンスをＵＳＢリーダ／ライタ２０内から取り出すために、ホスト機器１０から、レスポンス取得コマンド（Get Response：“Ｄ４ｈ”）をＵＳＢリーダ／ライタ２０に送信する。レスポンス取得コマンドを受信したＵＳＢリーダ／ライタ２０は、ＳＤTMカードコントローラ４０から返されたレスポンスを、受信したコマンドに従って取り出し、取り出したレスポンス（Response Data）をホスト機器１０へと送信する。これで処理は終了する。
【００９４】
さらに、コマンドタイプには、addressed(point-to-point) data transfer commands（ａｄｔｃ）がある。ａｄｔｃの具体例は、読み出し付ＳＤTMカード実行コマンド、及び書き込み付ＳＤTMカード実行コマンドである。コマンドタイプがａｄｔｃの場合のときにも、レスポンスが要求される。
【００９５】
図１５（ａ）は読み出し付ＳＤTMカード実行コマンド（シングルブロックリード）のときのコマンド処理例を示す図である。図示するように、ホスト機器１０から読み出し付ＳＤTMカード実行コマンド（SDTM EXECUTE read from SDTM card：“Ｄ２ｈ”）をＵＳＢリーダ／ライタ２０に送信するときにも、当該コマンドを送信した後に、レスポンス取得コマンド（Get Response：“Ｄ４ｈ”）を送信する。
【００９６】
例えば、読み出し付ＳＤTMカード実行コマンドを受信したＵＳＢリーダ／ライタ２０は、受信したＳＣＳＩコマンドに埋め込まれたＳＤTMカードコマンド（Command）をＳＤTMカードコントローラ４０に転送する。ＳＤTMカードコントローラ４０のＭＰＵ４３は、受信したＳＤTMカードコマンドに従ってＮＡＮＤ型フラッシュメモリ５０からのデータ読み出しを実行する。その後ＳＤTMカードコントローラ４０のＭＰＵ４３は、レスポンス（Response）を返すとともに、ＮＡＮＤ型フラッシュメモリ５０から読み出したデータ（Data）をＵＳＢリーダ／ライタ２０に対して送信する。ＵＳＢリーダ／ライタ２０のＭＰＵ２２は、受信したデータ（Transfer Data(read from SDTM card)）をホスト機器１０へと送信する。受信したデータの送信が終わった後、ホスト機器１０から、レスポンス取得コマンド（Get Response：“Ｄ４ｈ”）がＵＳＢリーダ／ライタ２０に送信される。レスポンス取得コマンドを受信したＵＳＢリーダ／ライタ２０は、ＳＤTMカードコントローラ４０から返されたレスポンスを、受信したコマンドに従って取り出し、取り出したレスポンス（Response Data）をホスト機器１０へと送信する。これで処理は終了する。
【００９７】
図１５（ｂ）は書き込み付ＳＤTMカード実行コマンド（シングルブロックライト）のときのコマンド処理例を示す図である。図示するように、ホスト機器１０から書き込み付ＳＤTMカード実行コマンド（SDTM EXECUTE write to SDTM Card：“Ｄ３ｈ”）をＵＳＢリーダ／ライタ２０に送信するときには、当該コマンドに続くライトデータ（Transfer Data(Write to SDTM Card)）を送信した後に、レスポンス取得コマンド（Get Response：“Ｄ４ｈ”）を送信する。
【００９８】
例えば、書き込み付ＳＤTMカード実行コマンド、及びライトデータを受信したＵＳＢリーダ／ライタ２０のＭＰＵ２２は、受信したＳＣＳＩコマンドに埋め込まれたＳＤTMカードコマンド（Command）、及びライトデータ（Data）をＳＤTMカードコントローラ４０に転送する。ＳＤTMカードコントローラ４０のＭＰＵ４３は、レスポンス（Response）を返すとともに、受信したコマンドに従ってＮＡＮＤ型フラッシュメモリ５０へのライトデータの書き込みを実行する。書き込みが終わった後、ＵＳＢリーダ／ライタ２０は、レスポンス取得コマンド（Get Response：“Ｄ４ｈ”）をＳＤTMカードコントローラ４０に送信する、ＵＳＢリーダ／ライタ２０は、ＳＤTMカードコントローラ４０から返されたレスポンスを受信したコマンドに従って取り出し、取り出したレスポンス（Response Data）をホスト機器１０へと送信する。これで処理は終了する。
【００９９】
図１６（ａ）は読み出し付ＳＤTMカード実行コマンド（マルチプルブロックリード）のときのコマンド処理例を示す図である。  
図１６（ａ）に示す処理例が図１５（ａ）に示す処理例と異なるところは、図１５（ａ）に示す処理例がシングルブロックリードであるのに対して、図１６（ａ）に示す処理例はマルチプルブロックリードであるところである。シングルブロックリードは、リードデータのデータ長（data length）がＳＤTMカード３０のブロックサイズ以下であり、データリードは１ブロックで済む場合である。対してマルチプルブロックリードは、リードデータのデータ長（data length）がＳＤTMカード３０のブロックサイズを超えており、データリードが複数ブロックに及ぶ場合である。本例は、ＳＤTMカード３０のブロックサイズが５１２バイトの例を示す。マルチブロックリードは、リードデータを何回かに分けてＳＤTMカードコントローラ４０からＵＳＢリーダ／ライタ２０に転送することがシングルブロックリードと異なり、それ以外はシングルブロックリードと同じである。なおブロックとは、第１の実施形態において図２用いて説明したＮＡＮＤセル５４の集合であり、データの消去単位となるものである。つまり、同一のブロック内にあるメモリセルトランジスタＭＴの保持するデータは、一括して消去される。
【０１００】
図１６（ｂ）は書き込み付ＳＤTMカード実行コマンド（マルチプルブロックライト）のときのコマンド処理例を示す図である。  
図１６（ｂ）に示す処理例は、シングルブロックライトであった図１５（ｂ）に示す処理例を、マルチプルブロックライトとしたものである。本例は、データライトがマルチプルブロックライトであることが図１５（ｂ）に示す処理例と異なり、それ以外はシングルブロックライトと同じである。
【０１０１】
以上のように、本実施形態の論理インターフェイスによってパススルーモードが実現出来る。以下再度、通常動作モードとパススルーモードとの違いについて、図１７を用いて簡単に説明する。図１７は、ＵＳＢリーダ／ライタ２０の動作の流れを示すフローチャートである。
【０１０２】
図示するように、ＵＳＢリーダ／ライタ２０がパススルーモードセットコマンドを受信しない場合には（ステップＳ３０、ＮＯ）、ＵＳＢリーダ／ライタ２０は通常動作モードのままである（ステップＳ３１）。この動作モードは、従来のＵＳＢデバイスと同様である。すなわち、ＵＳＢリーダ／ライタ２０はホスト機器１０から通常の（従来の）ＳＣＳＩコマンドを受け取る（ステップＳ３２）。そしてＵＳＢリーダ／ライタ２０は、受け取ったＳＣＳＩコマンドをＳＤTMカードコマンドに変換して、ＳＤTMカードコントローラ４０へ出力する（ステップＳ３３）。すると、ＳＤTMカードコントローラ４０は、受け取ったＳＤTMカードコマンドに基づいて処理を行う（ステップＳ３４）。但し、従来のＳＣＳＩコマンドはロック／アンロック機能をカバーしていないため、ＵＳＢの通信プロトコルで対応しているコマンドのみが使用可能であり、ロック／アンロック機能へのアクセスは出来ない（ステップＳ３５）。
【０１０３】
ステップＳ３０において、パススルーモードセットコマンドを受信した場合（ステップＳ３０、ＹＥＳ）、ＵＳＢリーダ／ライタ２０はパススルーモードに移行する（ステップＳ４１）。この様子を図１８に示す。図１８は、メモリシステム１のブロック図である。図示するように、拡張されたＳＣＳＩコマンド（パススルーモードセットコマンド：“Ｄ０ｈ”）が、ＵＳＢの通信プロトコル形式により、ホスト機器１０からＵＳＢリーダ／ライタ２０に送られる。すると、これを受けてＵＳＢリーダ／ライタ２０はパススルーモードとなる。これ以降、ＵＳＢリーダ／ライタ２０は、その他の拡張ＳＣＳＩコマンド“Ｄ１ｈ”〜“Ｄ６ｈ”を受信可能となる。
【０１０４】
次にＵＳＢリーダ／ライタ２０は、ＳＤTMカードコマンドが埋め込まれたＳＣＳＩコマンド（拡張ＳＣＳＩコマンド）を受け取る（ステップＳ４２）。すると、ＵＳＢリーダ／ライタ２０は、拡張ＳＣＳＩコマンドのうち、その内部に埋め込まれたＳＤTMカードコマンドを通過させ、ＳＤTMカードコントローラ４０へ出力する（ステップＳ４４）。するとＳＤTMカードコントローラ４０は、ＵＳＢリーダ／ライタ２０を通過したＳＤTMカードコマンドに基づいて処理を行う（ステップＳ４４）。
【０１０５】
ステップＳ４２〜Ｓ４４の様子を図１９に示す。図１９はメモリシステム１のブロック図であり、ホスト機器１０がアンロックコマンドを発行した際の様子を示している。図示するように、拡張されたＳＣＳＩコマンド（実行コマンド：“Ｄ１ｈ”）が、ＵＳＢの通信プロトコル形式により、ホスト機器１０からＵＳＢリーダ／ライタ２０に送られる。このＳＣＳＩコマンド内には、ＳＤTMカードコマンド形式のアンロックコマンドが埋め込まれている（図１１参照）。すると、パススルーモードにあるＵＳＢリーダ／ライタ２０は、ＳＣＳＩコマンド内のアンロックコマンドを通過させ、ＳＤカードコントローラ４０へ出力する。その結果、ＳＤTMカードコントローラ４０はアンロック状態に遷移する。
【０１０６】
このように、ＵＳＢリーダ／ライタ２０がパススルーモードに移行することで、ＳＤTMカードの通信プロトコルにのみ対応するコマンドが使用可能となる（ステップＳ４５）。その結果、ロック／アンロック機能へのアクセスが可能となる。また、ＵＳＢでは対応していない著作権保護機能へのアクセスも可能となる。
【０１０７】
図２０にはロック／アンロック機能へのアクセスとは異なる場合の例として、例えばコンテンツを暗号化するための暗号鍵を、ＮＡＮＤ型フラッシュメモリ５０の秘匿領域に格納する場合について示している。図示するように、図示するように、拡張されたＳＣＳＩコマンド（実行コマンド：“Ｄ３ｈ”）が、ＵＳＢの通信プロトコル形式により、ホスト機器１０からＵＳＢリーダ／ライタ２０に送られる。このＳＣＳＩコマンド内には、暗号鍵とその書き込み命令とが、ＳＤTMカードコマンドの形式で埋め込まれている（図１１参照）。すると、パススルーモードにあるＵＳＢリーダ／ライタ２０は、ＳＣＳＩコマンド内のＳＤTMカードコマンドを通過させ、ＳＤカードコントローラ４０へ出力する。この結果、ＳＤTMカードコントローラ４０は暗号鍵の書き込み命令を受信し、その命令に従って暗号鍵をＮＡＮＤ型フラッシュメモリ５０の秘匿領域へ書き込む。
【０１０８】
以上のように、本実施形態に係るメモリシステム１であると、ＵＳＢリーダ／ライタ２０にパススルーモードを設けることにより、ＳＤTMカード３０のロック／アンロック機能にアクセスすることが可能となる。
【０１０９】
［第３の実施形態］  
次に、この発明の第３の実施形態に係る半導体装置について説明する。本実施形態は、上記第１、第２の実施形態において、ホスト機器１０がＳＤTMカードのカードスロットを有する場合に関するものである。図２１は、本実施形態に係るメモリシステム１のブロック図である。
【０１１０】
図示するようにメモリシステム１は、ホスト機器（例えばＰＣ）１０とＳＤTMカード３０とを備えている。ＳＤTMカード３０の構成は第１の実施形態で説明した通りであるので説明は省略する。
【０１１１】
ホスト機器１０は、ＳＤTMホストコントローラ６０、ＣＰＵ（Central Processing Unit）６１、ＲＡＭ（メインメモリ）６２、周辺デバイス６３、ＰＣＩ（Peripheral Component Interconnect）バス６４、メモリバス６５、及びカードスロット６６を備えている。
【０１１２】
カードスロット６６にはＳＤTMカード３０が挿入され、ＳＤカードバスによってＳＤTMホストコントローラ６０と、ＳＤTMカード３０のＳＤTMカードインターフェイス４１とが通信可能に接続される。
【０１１３】
ＳＤTMホストコントローラ６０は、上記第１、第２の実施形態で説明したＵＳＢリーダ／ライタ２０としての機能を有し、例えば図１を用いて説明したＵＳＢリーダ／ライタ２０と同様の構成を備えている。そして、ＣＰＵ６１によって発行されたコマンドを、ＳＤTMカードコマンドの形式にして、ＳＤカードバスを介してＳＤTMカード３０へ出力する。ＲＡＭ６２は、ＣＰＵ６１が処理を行う際のメインメモリとして機能する。周辺デバイス６３は、ホスト機器１０を構成するために必要なその他のデバイスである。そして、ＳＤTMホストコントローラ６０、ＣＰＵ６１、及び周辺デバイス６３は、ＰＣＩバス６４によって通信可能に接続される。またＣＰＵ６１とＲＡＭ６２とは、メモリバス６５によって通信可能に接続される。
【０１１４】
本構成において、ＳＤTMホストコントローラ６０は第１の実施形態で説明した図２の処理を行う。つまり、第１の実施形態におけるＵＳＢリーダ／ライタ２０の代わりに、ＳＤTMホストコントローラ６０が、第１の初期化及び第２の初期化を行う。そして、ＳＤTMカード３０を認識したこと、または認識出来なかったことを、ＣＰＵ６１へ通知する。
【０１１５】
これにより、ホスト機器１０のカードスロット６６に挿入されたＳＤTMカード３０がロック状態にあったとしても、ＣＰＵ６１がそのことのみを理由としてカードエラーと判定することが無い。よって、第１の実施形態と同様の効果が得られる。
【０１１６】
また図２１に示す構成において、ＳＤTMホストコントローラ６０はパススルーモードを有する。すなわち、ＣＰＵ６１から与えられるコマンドは、ＰＣＩバス６４の通信プロトコルに対応したフォーマットとされている。このフォーマットは、通常、ＳＤTMカード３０のロック／アンロック機能をカバーしていない。従ってＣＰＵ６１は、発行するコマンド内に、ＳＤTMカードコマンドを埋め込んでＳＤTMホストコントローラ６０へ出力する。そしてパススルーモードにあるＳＤTMホストコントローラ６０は、受け取ったコマンドからＳＤTMカードコマンドを取り出して、ＳＤTMカード３０へパススルーする。これにより、第２の実施形態と同様の効果が得られる。
【０１１７】
図２２は、本実施形態に係るメモリシステム１の論理構成を示す概念図である。第１の実施形態において図３を用いて説明した処理により初期化が完了し、ＳＤTMカード３０がＣＰＵ６１に認識されると、ＣＰＵ６１からのＳＤTMカード３０へのアクセスが行われる。図中において、実線が通常動作モードにおけるアクセスの流れである。つまり、アンロック状態のＳＤTMカード３０へのアクセスの流れである。また、破線がパススルーモードにおけるロック／アンロック機能へのアクセスの流れである。つまり、ロック状態のＳＤTMカード３０へのアクセスの流れである。
【０１１８】
図示するように、アンロック状態のＳＤTMカード３０に対しては、ホスト機器１０上のアプリケーションソフト１４からファイルシステムソフトウェア１３にファイルアクセスコマンドが発行される。このコマンドに応じて、ＳＤTMホストコントローラ６０がＳＤTMカードコマンドを発生して、ＮＡＮＤ型フラッシュメモリ５０の通常のメモリ領域に対するデータの書き込み、読み出し、消去が行われる。またパススルーモードを使用することによって、ホスト機器１０上のロック／アンロックアプリケーション１５がロックコマンドを発行して、ＳＤTMカード３０をロック状態にすることも出来る。また、パススルーモードを使用すれば、アプリケーションソフト１４からＮＡＮＤ型フラッシュメモリ５０の秘匿領域へアクセスすることも可能である。
【０１１９】
ロック状態のＳＤTMカード３０に対しては、アンロック状態と同じようにアプリケーションソフト１４からファイルアクセスコマンドが発行されたとしても、ＳＤTMカード３０からエラーが返ってくるのみであり、実際のファイルアクセスは出来ない。しかしパススルーモードを使用することによって、ロック／アンロックアプリケーション１５がアンロックコマンドを発行して、ＳＤTMカード３０をアンロック状態にすることも出来る。この際、ＳＤTMホストコントローラ６０は、ロック／アンロックアプリケーション１５から与えられるアンロックコマンドをパススルーして、直接ＳＤTMカード３０へ出力する。
【０１２０】
以上のように、この発明の第１乃至第３の実施形態に係るＵＳＢリーダ／ライタ２０及びＳＤTMホストコントローラ６０であると、次の構成を有している。すなわち、不揮発性半導体メモリ５０を備え、不揮発性半導体メモリ５０へのアクセスが許可されるアンロック状態と、アクセスが禁止されるロック状態との２つの状態を備えるメモリカード３０に接続可能な半導体装置２０、６０であって、メモリカード３０に接続可能とされ、メモリカード３０と通信を行う第１インターフェイス２５と、メモリカード３０へのアクセス命令を生成するホスト機器１０に接続可能とされ、ホスト機器１０と通信を行う第２インターフェイス２１と、第１インターフェイス２５にメモリカード３０が接続された際に、ロック状態のメモリカード３０が認識可能な命令を用いてメモリカード３０の第１初期化処理（ステップＳ１１）を行い、第１初期化処理に成功した場合（ステップＳ１２、ＹＥＳ）、メモリカード３０がアンロック状態とロック状態とのいずれの状態であるかを把握し（ステップＳ１４）、ロック状態であった場合（ステップＳ１５、ＹＥＳ）に、メモリカード３０を正常に認識した旨の情報を第２インターフェイス２１からホスト機器１０へ伝達するプロセッサ２２とを具備する。
【０１２１】
またプロセッサ２２は、第１初期化処理に成功し且つメモリカードがアンロック状態であった場合（ステップＳ１５、ＮＯ）、アンロック状態のメモリカード３０が認識可能であり且つロック状態のメモリカードが認識不可能な命令を用いて、メモリカード３０の第２初期化処理を行う（ステップＳ１７）。
【０１２２】
更にプロセッサ２２は、第１初期化処理に成功し且つメモリカードがロック状態であった場合（ステップＳ１５、ＹＥＳ）、第２初期化処理を行うことなく、ホスト機器への伝達を行う。  
以上の構成により、ロック状態のメモリカードの認識が可能となる。
【０１２３】
なお、上記第２の実施形態で説明した論理インターフェイスでは、パススルーモード用のインターフェイスクラスとして、マスストレージクラスと同様にＳＣＳＩコマンドを使ってパススルーモードを実現する例を示したが、ＳＣＳＩコマンドのフォーマットではなく、コマンドフォーマットを変形して別のコマンドフォーマットとすることも可能である。この例が第３の実施形態に対応する。
【０１２４】
更に、上記実施形態では記録媒体がＮＡＮＤ型フラッシュメモリを備える場合について説明したが、ＮＡＮＤ型フラッシュメモリに限らず、例えばＮＯＲ型フラッシュメモリやＡＮＤ型フラッシュメモリ等の他のフラッシュメモリや、ＭＲＡＭや強誘電体メモリ等の他の不揮発性半導体メモリに置換することも可能である。更に、記録媒体はＳＤTMカードに限らず、ロック／アンロック機能を有する種々のメモリカードに適用出来る。
【０１２５】
［ＳＤTMカードにおける初期化処理の例］  
ここで、ＳＤTMカードで使用される具体的なコマンド（ＣＭＤ０、ＣＭＤ２、ＣＭＤ３、ＣＭＤ７、ＣＭＤ９、ＣＭＤ１０、ＡＣＭＤ６、及びＡＣＭＤ４１等）を用いた第１、第２の初期化の一具体例について、図２３を用いて説明する。図２３は、第１、第２の初期化処理の詳細を示すフローチャートである。  まずＵＳＢリーダ／ライタ２０からＳＤTMカード３０へコマンドＣＭＤ０が与えられる（ステップＳ５０）。ＣＭＤ０はＳＤTMカード３０をリセットしてアイドル（idle）状態とする（ステップＳ５１）ための命令である。
【０１２６】
引き続きＳＤTMカード３０に対してコマンドＡＣＭＤ４１が与えられる。ＡＣＭＤ４１は、ホスト機器１０で規定される電源電圧ＶＤＤにマッチしないＳＤTMカードを識別するためのコマンドである。まず、argumentとして“０”がセットされたＡＣＭＤ４１が与えられる（ステップＳ５２）。これにより、ＳＤTMカード３０に対してコモン電圧レンジ（common voltage range）を確認する。引き続きＳＤTMカード３０には、argumentとしてホスト機器１０の電源電圧“ＶＤＤ”がセットされたコマンドＡＣＭＤ４１が与えられる（ステップＳ５３）。これによりＳＤTMカード３０は、コモン電圧レンジ内にあるＶＤＤにより動作する。
【０１２７】
その後、ＳＤTMカード３０がレディ（ready）状態となると（ステップＳ５４、ＮＯ）、ＳＤTMカード３０にはコマンドＣＭＤ２が与えられる（ステップＳ５５）。ＣＭＤ２に応答して、ＳＤTMカード３０のユニークなＩＤ情報が読み出される。ＩＤ情報とは、例えば当該ＳＤTMカード３０の製造者ＩＤや、製造日などである。
【０１２８】
引き続きＳＤTMカード３０にはコマンドＣＭＤ３が与えられる（ステップＳ５６）。ＣＭＤ３に応答して、ＳＤTMカード３０からＲＣＡが読み出される。このＲＣＡによって、ＵＳＢリーダ／ライタ２０は当該ＳＤTMカード３０を認識出来る。そして、必要に応じてコマンドＡＣＭＤ４２がＳＤTMカード３０に与えられる。（ステップＳ５８）。ＡＣＭＤ４２によって、ＳＤTMカード３０検出用のプルアップ抵抗が無効とされる。その後、再びＲＣＡ＝“００００”と共にコマンドＣＭＤ７が与えられる（ステップＳ５９）。これにより、当該ＳＤTMカード３０は非選択状態となる。
【０１２９】
次に、ＳＤTMカード３０に対してコマンドＣＭＤ９が与えられる（ステップＳ６０）。ＣＭＤ９により、当該ＳＤTMカード３０のステータスが読み出される。ステータスとは、例えばファイルフォーマット、最大書き込み／読み出し電流、最小書き込み／読み出し電流等の情報である。引き続きコマンドＣＭＤ１０によって、ＳＤTMカード３０のＩＤ情報が読み出される（ステップＳ６１）。その後、ＳＤTMカード３０に再びコマンドＣＭＤ７が与えられ、ＵＳＢリーダ／ライタ２０により当該ＳＤTMカード３０が選択される（ステップＳ６２）。
【０１３０】
以上のステップＳ５０〜Ｓ６２の動作が第１の初期化であり、ステップＳ６０またはＳ６２において、当該ＳＤTMカード３０がロック状態であるのか、またはアンロック状態であるのかが判別される。
【０１３１】
第２の初期化は、上記ステップＳ６２の後にコマンドＡＣＭＤ６をＳＤTMカード３０に対して発行することで行われる（ステップＳ６３）。ＡＣＭＤ６によって、データ転送に使用すべきデータバスサイズが決定される。ＡＣＭＤ６によってデータバスサイズが決定される結果、ＳＤTMカード３０はデータ転送可能なトランスファ（transfer）状態となり、第２の初期化が終了する。
【０１３２】
なお、本願発明は上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出されうる。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出されうる。
【図面の簡単な説明】
【０１３３】
【図１】この発明の第１の実施形態に係るメモリシステムのブロック図。
【図２】この発明の第１の実施形態に係るメモリカードの備えるＮＡＮＤ型フラッシュメモリのブロック図。
【図３】この発明の第１の実施形態に係るＵＳＢリーダ／ライタの処理の流れを示すフローチャート。
【図４】この発明の第２の実施形態に係るメモリシステムの処理の流れを示すフローチャート。
【図５】この発明の第２の実施形態に係るＵＳＢリーダ／ライタの論理インターフェイス例を示す図。
【図６】この発明の第２の実施形態に係るメモリシステムにおいて、ホスト機器から出力されるコマンドの構造を示す概念図。
【図７】この発明の第２の実施形態に係るメモリシステムの論理構成を示すブロック図。
【図８】この発明の第２の実施形態に係るメモリシステムにおいて、拡張されたＳＣＳＩコマンドとオペレーションコードとの関係を示すダイアグラム。
【図９】この発明の第２の実施形態に係るメモリシステムにおける、パススルーモードセットコマンドのフォーマットを示すダイアグラム。
【図１０】この発明の第２の実施形態に係るメモリシステムにおける、レスポンスのフォーマットを示すダイアグラム。
【図１１】この発明の第２の実施形態に係るメモリシステムにおける、カード実行コマンドのフォーマットを示すダイアグラム。
【図１２】この発明の第２の実施形態に係るメモリシステムにおける、レスポンス取得コマンドのフォーマットを示すダイアグラム。
【図１３】この発明の第２の実施形態に係るメモリシステムにおける、ハードウェアリセットコマンドのフォーマットを示すダイアグラム。
【図１４】この発明の第２の実施形態に係るメモリシステムにおける、ＳＣＳＩコマンドとＳＤカードコマンドのタイミングチャートであり、（ａ）図はレスポンスを要求しない場合の処理、（ｂ）図はレスポンスを要求する場合の処理を示す図。
【図１５】この発明の第２の実施形態に係るメモリシステムにおける、ＳＣＳＩコマンドとＳＤカードコマンドのタイミングチャートであり、（ａ）図はシングルブロックリードの場合の処理、（ｂ）図はシングルブロックライトの場合の処理を示す図。
【図１６】この発明の第２の実施形態に係るメモリシステムにおける、ＳＣＳＩコマンドとＳＤカードコマンドのタイミングチャートであり、（ａ）図はマルチプルブロックリードの場合の処理、（ｂ）図はマルチプルブロックライトの場合の処理を示す図。
【図１７】この発明の第２の実施形態に係るメモリシステムにおける動作の流れを示すフローチャート。
【図１８】この発明の第２の実施形態に係るメモリシステムのブロック図。
【図１９】この発明の第２の実施形態に係るメモリシステムのブロック図。
【図２０】この発明の第２の実施形態に係るメモリシステムのブロック図。
【図２１】この発明の第３の実施形態に係るメモリシステムのブロック図。
【図２２】この発明の第３の実施形態に係るメモリシステムの論理構成を示すブロック図。
【図２３】この発明の第１の実施形態に係るメモリシステムにおける、第１、第２の初期化処理の詳細を示すフローチャート。
【符号の説明】
【０１３４】
１…メモリシステム、１０…ホスト機器、１１…ＵＳＢホストコントローラ、１２…ドライバソフトウェア、１３…ファイルシステム、１４…ファイルアクセスアプリケーション、１５…ロック／アンロックアプリケーション、２０…ＵＳＢリーダ／ライタ、２１…ＵＳＢインターフェイス、２２、４３…ＭＰＵ、２３、４４…ＲＯＭ、２４、４５、６２…ＲＡＭ、２５、４１…ＳＤTMカードインターフェイス、２６…半導体基板、２７、４７…バス、３０…ＳＤTMカード、４０…ＳＤTMカードコントローラ、４２…ＮＡＮＤインターフェイス、４６…ＣＰＲＭ回路、５０・・ＮＡＮＤ型フラッシュメモリ、５１…メモリセルアレイ、５２…ロウデコーダ、５３…ページバッファ、５４…ＮＡＮＤセル、６０…ＳＤTMホストコントローラ、６１…ＣＰＵ、６３…周辺デバイス、６４…ＰＣＩバス、６５…メモリバス、６６…カードスロット
【図１】
0004538027.tif 000002
【図２】
0004538027.tif 000003
【図３】
0004538027.tif 000004
【図４】
0004538027.tif 000005
【図５】
0004538027.tif 000006
【図６】
0004538027.tif 000007
【図７】
0004538027.tif 000008
【図８】
0004538027.tif 000009
【図９】
0004538027.tif 000010
【図１０】
0004538027.tif 000011
【図１１】
0004538027.tif 000012
【図１２】
0004538027.tif 000013
【図１３】
0004538027.tif 000014
【図１４】
0004538027.tif 000015
【図１５】
0004538027.tif 000016
【図１６】
0004538027.tif 000017
【図１７】
0004538027.tif 000018
【図１８】
0004538027.tif 000019
【図１９】
0004538027.tif 000020
【図２０】
0004538027.tif 000021
【図２１】
0004538027.tif 000022
【図２２】
0004538027.tif 000023
【図２３】
0004538027.tif 000024