JP4538027B2 - 半導体装置 - Google Patents

半導体装置 Download PDF

Info

Publication number
JP4538027B2
JP4538027B2 JP2007215984A JP2007215984A JP4538027B2 JP 4538027 B2 JP4538027 B2 JP 4538027B2 JP 2007215984 A JP2007215984 A JP 2007215984A JP 2007215984 A JP2007215984 A JP 2007215984A JP 4538027 B2 JP4538027 B2 JP 4538027B2
Authority
JP
Japan
Prior art keywords
card
command
memory card
interface
host device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007215984A
Other languages
English (en)
Other versions
JP2009048543A (ja
Inventor
隆文 伊藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2007215984A priority Critical patent/JP4538027B2/ja
Priority to US12/191,569 priority patent/US8108591B2/en
Publication of JP2009048543A publication Critical patent/JP2009048543A/ja
Application granted granted Critical
Publication of JP4538027B2 publication Critical patent/JP4538027B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/08Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers from or to individual record carriers, e.g. punched card, memory card, integrated circuit [IC] card or smart card

Description

この発明は半導体装置に関し、例えばメモリカードに接続される半導体装置に関する。
近年、パーソナルコンピュータ(PC)等に利用されるリムーバブルな記録媒体として、メモリカード(例えば特許文献1参照)、例えばSDTMカードが広く用いられている。SDTMカードには、セキュリティの観点から、記録された機密情報を他者が読み出せないようにするためのロック/アンロック(Lock/Unlock)機能がある。ロック状態のSDTMカードは、一部の限定的なコマンドを受け付けるのみであり、データの読み出し、書き込み、消去等の正常なアクセスは出来なくなる。
SDTMカードにアクセスするには、SDTMカードのリーダ/ライタ(Reader/Writer)装置が必要となる。従来、リーダ/ライタにSDTMカードが挿入されると、リーダ/ライタはSDTMカードの初期化コマンドを発行する。しかし、SDTMカードがロック状態にあると、初期化コマンドシーケンスが正常に終了しない場合がある。すると、リーダ/ライタは当該SDTMカードを使用不可能と判断する。その結果、SDTMカードに対しては、アンロックコマンドを含むコマンドアクセスが一切出来ないという問題があった。
特開2002−74277号公報
この発明は、ロック状態のメモリカードを認識可能な半導体装置を提供する。
この発明の一態様に係る半導体装置は、不揮発性半導体メモリを備え、該不揮発性半導体メモリへのアクセスが許可されるアンロック状態と、前記アクセスが禁止されるロック状態との2つの状態を備えるメモリカードに接続可能な半導体装置であって、前記メモリカードに接続可能とされ、前記メモリカードと通信を行う第1インターフェイスと、前記メモリカードへのアクセス命令を生成するホスト機器に接続可能とされ、前記ホスト機器と通信を行う第2インターフェイスと、前記第1インターフェイスと第2インターフェイスに接続された制御部と、を具備し、前記制御部は、前記第1インターフェイスに前記メモリカードが接続された際に、前記ホスト機器からの前記第2インターフェイスを経由したロック状態の前記メモリカードが受け付け可能な命令に従って、前記メモリカードの状態を読み出し可能な状態とする第1初期化処理を行い、前記第1初期化処理に成功した場合、前記メモリカードからステータスデータを読み出して前記メモリカードがロック状態であるかアンロック状態であるかを判断し、ロック状態であると判断された場合、前記ホスト機器から送信された命令によりパススルーモードに設定され、前記パススルーモードにおいて、前記ホスト機器から送信されたアンロック命令を前記メモリカードに通過させ、前記メモリカードのロック状態を解除することを特徴とする。
この発明によれば、ロック状態のメモリカードを認識可能な半導体装置を提供できる。
以下、この発明の実施形態のいくつかを、図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
[第1実施形態]
この発明の第1の実施形態に係る半導体装置について、図1を用いて説明する。図1は、本実施形態に係るメモリシステムのブロック図である。
図示するようにメモリシステム1は、ホスト機器10、USB(Universal Serial Bus)リーダ/ライタ20、及びSDTMカード30を備えている。
ホスト機器10は、USBリーダ/ライタ20を介してSDTMカード30へアクセスして、例えばデータの書き込み、読み出し、消去等を命令する。ホスト機器10は、例えばパーソナルコンピュータ(PC)や、デジタルカメラ、携帯電話等であり、本実施形態ではPCである場合を例に説明する。
USBリーダ/ライタ20は、USBインターフェイス21、MPU(Micro Processing Unit)22、ROM(Read Only Memory)23、RAM(Random Access Memory)24、及びSDTMカードインターフェイス25を備えている。これらは、同一の半導体基板26上に形成されており、内部バス27によって通信可能に接続されている。USBインターフェイス21は、USBによってホスト機器10と接続可能とされ、ホスト機器10との間の通信を司る。またUSBリーダ/ライタ20は図示せぬカードスロットを備え、SDTMカードインターフェイス25は、カードスロットに挿入されたSDTMカード30とSDTMカードバスによって接続される。そして、SDTMカード30との間の通信を司る。MPU22は、ホスト機器10から受信した命令や、SDTMカードから受信したデータを、ROM23及びRAM24を用いて処理する。またMPU22は、SDTMカード30がカードスロットに挿入された際に、SDTMカード30の初期化を行う。この初期化の際の処理については、後に詳述する。
次にSDTMカード30の構成について説明する。SDTMカード30は、大まかにはSDTMカードコントローラ40及びNAND型フラッシュメモリ50を備えている。SDTMカードコントローラ40は、SDTMカードインターフェイス41、NANDインターフェイス42、MPU43、ROM44、RAM45、及びCPRM(Copy Protection for Prerecorded Media)回路46を有する。これらは同一の半導体基板上に形成され、内部バス47によって通信可能に接続されている。
SDTMカードインターフェイス41は、SDTMカードバスによって、USBリーダ/ライタ20のSDTMカードインターフェイス25と接続可能とされ、USBリーダ/ライタ20との間の通信を司る。NANDインターフェイス42は、データバスによってNAND型フラッシュメモリ50と接続されており、NAND型フラッシュメモリ50との間の通信を司る。
MPU43は、SDTMカード30全体の動作を制御する。MPU43は、例えばSDTMカード30が電源供給を受けたときに、ROM44に格納されているファームウェア(制御プログラム)をRAM45上に読み出して所定の処理を実行することにより、各種のテーブルをRAM45上に作成する。またMPU43は、USBリーダ/ライタ20から書き込みコマンド、読み出しコマンド、消去コマンドを受け取り、NAND型フラッシュメモリ50に対して所定の処理を実行したり、データ転送処理を制御したりする。
ROM44は、MPU43により制御される制御プログラムなどを格納する。RAM45は、MPU43の作業エリアとして使用され、制御プログラムや各種のテーブル(表)を記憶する。
CPRM回路46は、SDTMカード30における著作権保護機能を司る。すなわち、NAND型フラッシュメモリ50内において秘匿されるべき情報に対してホスト機器10からアクセスが為された場合に、当該アクセスを許可するか否かを決定する。
次に、NAND型フラッシュメモリ50の内部構成について簡単に説明する。図2はNAND型フラッシュメモリ50の一部領域のブロック図である。図示するようにNAND型フラッシュメモリ50は、メモリセルアレイ51、ロウデコーダ52、及びページバッファ53を備えている。
メモリセルアレイ51は、複数のNANDセル54を備えている。NANDセル54の各々は、例えば32個のメモリセルトランジスタMT0〜MT31と、選択トランジスタST1、ST2とを備えている。以下、メモリセルトランジスタMT0〜MT31をそれぞれ区別しない場合には、単純にメモリセルトランジスタMTと呼ぶ。メモリセルトランジスタMT0〜MT31は、選択トランジスタST2のドレインと選択トランジスタST1のソースとの間に、その電流経路が直列接続されている。メモリセルトランジスタMTの各々は、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層(例えばフローティングゲート)と、電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲートとを有する積層ゲートを備えている。
選択トランジスタST2のソースはソース線SLに共通接続され、選択トランジスタST1のドレインは、ビット線BL0〜BLm(mは自然数)のいずれかに接続されている。以下、ビット線BL0〜BLmを区別しない場合には、単純にビット線BLと呼ぶ。また、同一メモリブロックBLK内のメモリセルトランジスタMT0〜MT31の制御ゲートは、それぞれワード線WL0〜WL31に接続されている。また選択トランジスタST1、ST2のゲートは、それぞれセレクトゲート線SGD、SGSに接続されている。
上記構成において、いずれかのワード線WLに接続された(m+1)個のメモリセルトランジスタMTには、一括してデータが書き込まれる。この一括してデータが書き込まれる単位を「ページ」と呼ぶ。また、メモリセルアレイ51内の全メモリセルトランジスタMTは、一括してデータが消去される。
ロウデコーダ52は、SDTMカードコントローラ40から与えられるロウアドレス信号に従って、メモリセルアレイ51中におけるいずれかのワード線WLを選択する。そして、書き込み時及び読み出し時には、選択したワード線WLに対して電圧を印加する。
ページバッファ53は、メモリセルアレイ51へのデータ入出力を行い、データを一時的に保持する。ページバッファ53とメモリセルアレイ51との間のデータの入出力は、複数のデータ単位、すなわち前述の通りページ単位で行われる。
上記構成のSDTMカード30は、ロック/アンロック機能を備えている。すなわちSDTMカードは、アンロック状態とロック状態との2つの状態を取り、MPU43は、アンロック状態においてNAND型フラッシュメモリ50へのアクセスを許可し、ロック状態においてはNAND型フラッシュメモリ50へのアクセスを禁止する。この状態は、ホスト機器10からの命令によって遷移する。そして、ホスト機器10からの命令に応じて、MPU43はロック状態を取るべきかまたはアンロック状態を取るべきかの情報を、例えばRAM45内における特定のレジスタに保持する。
次に、USBリーダ/ライタ20にSDTMカード30が挿入された際におけるUSBリーダ/ライタ20の動作について、図3を用いて説明する。図3は、USBリーダ/ライタ20の動作を示すフローチャートである。
図示するように、まずUSBリーダ/ライタ20のカードスロットにSDTMカード30が挿入される。これにより、USBリーダ/ライタ20のSDTMカードインターフェイス25と、SDTMカード30のSDTMカードインターフェイス41とが、SDTMカードバスによって接続される(ステップS10)。その結果、USBリーダ/ライタ20とSDTMカード30とは、相互に通信可能な状態となる。
次にUSBリーダ/ライタ20のMPU22は、挿入されたSDTMカード30に対して、第1の初期化を行う(ステップS11)。第1の初期化とは、ロック状態のSDTMカード30であっても受け付け可能なコマンドのみを使用した、SDTMカード30の初期化処理である。ロック状態のSDTMカード30が受け付け可能なコマンドとは、例えばCMD0、CMD2、CMD3、CMD7、CMD9、CMD10、及びACMD41等である。すなわちMPU22は、例えばROM23から第1の初期化プログラムを読み出し、ROM23内に保持される上記コマンドを用いて第1の初期化を行う。
ステップS11において初期化に失敗した場合(ステップS12、NO)、USBリーダ/ライタ20はSDTMカード30を認識せず、MPU22はカードエラーの旨を、USBを介してUSBインターフェイス21からホスト機器10に通知する(ステップS13)。その結果、ホスト機器10は当該SDTMカード30が使用不可能なカードであることを認識し、不正なカードがUSBリーダ/ライタ20に挿入されたと判断する。その後、当該カードに対するアクセスは不可能となる。
ステップS11において初期化に成功した場合(ステップS14、YES)、MPU22はSDTMカード30からステータスデータを読み出し、当該SDTMカード30がロック状態であるか否かを判断する(ステップS15)。すなわち、第1の初期化に成功することで、SDTMカード30は、当該SDTMカード30の状態(例えばロック状態かアンロック状態か等)がUSBリーダ/ライタ20によって読み出し可能な状態となる。
ステップS14においてロック状態であると判断した場合(ステップS15、YES)、MPU22はこの時点でSDTMカード30の初期化処理を終了する。そしてMPU22は、SDTMカード30を認識した旨の情報を、USBを介してUSBインターフェイス21からホスト機器10に通知する(ステップS16)。以後、ホスト機器10は当該SDTMカード30に対するアクセスが可能となる。但し、SDTMカード30はロック状態にあるので、データの書き込み、読み出し、消去等は禁止されており、これらのアクセスを行うにはSDTMカード30をロック状態からアンロック状態に遷移させる必要がある。
ステップS14においてアンロック状態であると判断した場合(ステップS15、NO)、MPU22はSDTMカード30に対して第2の初期化を行う(ステップS17)。第2の初期化とは、ロック状態のSDTMカード30は受け付け不可能であり、且つアンロック状態のSDTMカード30のみが受け付け可能なコマンドも使用する初期化処理である。このコマンドの一例は、ACMD6等である。
第2の初期化に失敗した場合(ステップS18、NO)、MPU22は当該SDTMカード30を不正とみなし、ステップS13の処理へ進む。成功した場合(ステップS18、YES)、第2の初期化の結果として、MPU22は、SDTMカード30に対して通常のメモリアクセスコマンドを発行可能な状態となる。つまり、SDTMカード30に対するデータの書き込み、読み出し、及び消去が可能となる。そしてMPU22は、ステップS16の処理に進む。
以上のように、本実施形態に係るUSBリーダ/ライタ20であると、ロック状態のメモリカードを認識出来る。本効果について、以下説明する。背景技術で説明したように、従来USBリーダ/ライタは、SDTMカード30が挿入されるとそのカードに対して、データの書き込みや読み出しを可能にするために必要な一連の初期化コマンドを自動発行する。しかし、その初期化コマンドの一部には、ロック状態のSDTMカード30が受け付けられないコマンドが含まれているため、初期化コマンドシーケンスが正常に終了しない場合がある。すると、従来のUSBリーダ/ライタは、当該SDTMカードは使用不可能と判断する。すなわち、例え正常なSDTMカードであったとしても、それがロック状態にあることのみを理由に不正なカードであると判断され、以降、アンロック命令を含むその後のアクセスが一切出来なくなるという問題があった。
しかし、本実施形態に係るUSBリーダ/ライタ20であると、まず、ロック状態のSDTMカード30であっても受け付け可能なコマンドのみを使用して第1の初期化を行っている。第1の初期化によって、SDTMカードはステータス読み出し可能状態となる。そこで、第1の初期化に成功した時点で、MPU22は当該SDTMカード30がロック状態であるか否かを把握する。そして、SDTMカード30がロック状態である場合には、その時点で当該SDTMカード30が正常なカードであることをホスト機器10に通知すると共に、初期化処理を終了する。従って、USBリーダ/ライタ20に挿入されたSDTMカード30がロック状態にあったとしても、そのことのみを理由としてカードエラーと判定することが無い。よって、ユーザにとってSDTMカード30がより使いやすくなる。
なお上記実施形態においては、SDTMカードで使用される具体的なコマンド(CMD0、CMD2、CMD3、CMD7、CMD9、CMD10、ACMD6、及びACMD41等)を例に挙げて説明した。しかし、第1の初期化は、SDTMカードからそのステータス(ロック状態かアンロック状態か等)を読み出せる状態に出来れば良く、また第2の初期化は、SDTMカードに対してメモリアクセスが可能に出来れば良く、上記コマンドを使用するものに限定されない。なお、上記コマンドを使用した場合の初期化の具体例については、後に説明する。
[第2の実施形態]
次に、この発明の第2の実施形態に係る半導体装置について説明する。本実施形態は、上記第1の実施形態において、ロック状態のSDTMカードをアンロック状態にする方法に関するものである。
USB端子はPC等の電子機器(ホスト機器)に設けられ、高速シリアル通信を利用して、さまざまな周辺機器(ターゲット(target)と呼ばれる)をホストに接続するために利用される端子である。現在は、このUSB端子を利用し、ターゲットとして、例えば、不揮発性半導体メモリ等のリムーバブルな記録媒体をホストに接続することが可能になっている。USB規格において、ターゲットとホストとの間で、USB端子を介してデータのリード及びライトが直接可能な記録媒体は、USBマスストレージクラス(USB Mass Storage Class)と呼ばれる。
USBマスストレージクラスの規格に対応した記録媒体は、例えば、SCSI(Small Computer System Interface)の標準フォーマットに従って記述されたコマンド及びデータを、ホストとの間でUSBインターフェイスのバルク転送を用いて送受信することで、データのリード及びライトを実現する。以下、SCSIの標準フォーマットに従って記述されたコマンドをSCSIコマンドと呼ぶことにする。
すなわち、例えばホスト機器10から与えられ、USBの通信プロトコルに対応した形式のSCSIコマンドがリーダ/ライタ20に与えられると、USBリーダ/ライタ20はこのSCSIコマンドを、SDTMカードの通信プロトコルに対応した形式であるSDTMカードコマンドに変換して、SDTMカード30へ出力する。SCSIコマンドの一例としては、例えば、SCSIブロックデバイスコマンド等があり、特に、ATA(AT Attachment)ブロックリード/ライトコマンドが良く知られる。
しかし、従来のSCSIコマンドは、ホストから記録媒体の通常のユーザデータに対して直接にデータをライトしたり、リードしたりするアクセス手段を提供するだけである。つまり、従来のSCSIコマンドは、SDTMカード30のロック/アンロック機能へのアクセス手段は提供しない。
そこで本実施形態は、SDTMカード30のロック/アンロック機能へのアクセス手段を提供するために、専用の動作モードをUSBマスストレージクラスの規格に対応した記録媒体、例えば、USBマスストレージクラスの規格に対応したUSBリーダ/ライタ20に用意する。この専用の動作モードとは、ホストから送信されたコマンド及びデータがUSBリーダライタ20をパススルー(pass through)し、SDTMカード30のSDTMカードコントローラ40に直接送られる動作モードである。この専用の動作モードを、以下“パススルーモード”と呼び、それ以外の動作モードを通常動作モードと呼ぶことにする。さらに、パススルーモードをイネーブルするために、本例では新規なコマンドを用意する。この新規なコマンドを、以下拡張されたSCSIコマンドと呼び、その詳細については後述する。
まず、パススルーモードを用いてSDTMカード30をロック状態からアンロック状態に遷移させる際の動作について、図4を用いて説明する。図4は、ホスト機器10、USBリーダ/ライタ20、及びSDTMカード30における処理の流れを示すフローチャートである。
図示するように、まずロック状態にあるSDTMカード30をアンロック状態に遷移させるにあたってホスト機器10は、拡張されたSCSIコマンドを用いてUSBリーダ/ライタ20をパススルーモードに移行させる(ステップS20)。
USBリーダ/ライタ20がパススルーモードに移行した後、ホスト機器10は拡張されたSCSIコマンドを用いてアンロックコマンドをUSBリーダ/ライタ20へ出力する(ステップS21)。アンロックコマンドとは、SDTMカード30をアンロック状態に遷移させるための命令である。この際、SDTMカードコマンドの形式であるアンロックコマンドが、拡張されたSCSIコマンドに埋め込まれた状態で、USBリーダ/ライタ20へ出力される。
すると、ステップS21で出力されたSCSIコマンドを受信したUSBリーダ/ライタ20は、このSCSIコマンドに埋め込まれたアンロックコマンドを、そのままの形式(SDTMカードコマンド)でSDTMカード30へ通過させる(ステップS22)。すなわち、通常動作モードのように、受信したSCSIコマンドをSDTMカードコマンドに変換する処理は行わない。
すると、アンロックコマンドを受信したSDTMカードコントローラ40は、ロック状態を解除してアンロック状態となる(ステップS23)。これにより、以後、SDTMカード30への書き込み、読み出し、及び消去等の通常のアクセスが可能となる(ステップS24)。
なお、図4ではロック状態からアンロック状態に遷移する場合について示しているが、アンロック状態からロック状態に遷移する場合も同様の方法によって可能である。すなわち、まずステップS20によりUSBリーダ/ライタ20をパススルーモードに移行させた後、ホスト機器10はロックコマンドを拡張されたSCSIコマンドに埋め込んで出力する。すると、USBリーダ/ライタ20はロックコマンドをパススルーしてSDTMカード30へ出力する。これにより、SDTMカードコントローラ40はロック状態となる。
次に、上記パススルーモードを実現するための論理インターフェイスについて説明する。図5は、本実施形態に係るメモリシステム1の論理インターフェイス例を示す図である。図5に示す論理インターフェイスは、ホスト機器10ではなく、USBリーダ/ライタ20に搭載された通信インターフェイスに定義される。
図5に示すように、本実施形態に係るUSBリーダ/ライタ20を、例えばホスト機器10のUSB端子に接続すると、一般的なUSBデバイスと同様に、通信インターフェイス内のマスストレージクラスインターフェイス(Mass Storage Class Interface)としてエンドポイント(EP)が認識される。本例では、マスストレージクラスインターフェイスに、3つのエンドポイントEP0〜EP2が用意されている。なおエンドポイントとは、USBリーダ/ライタ20とホスト機器との間を接続する論理的な通信経路の最小単位のことであり、USB規格により定められている。
エンドポイントEP0は、制御用エンドポイント(Control EP)である。すなわちエンドポイントEP0は、USBデバイスのコンフィグレーション等、USBデバイスとしての制御を行う際に使用され、コントロール転送のみが可能である。
これに対してSCSIコマンド、データ、及びレスポンスの転送は、全てエンドポイントEP1、EP2を用いて行われ、バルク転送が可能である。このうちエンドポイントEP1は、ダウンストリーム用エンドポイント(Bulk In EP)である。エンドポイントEP1には、例えば、ホスト機器10からUSBリーダ/ライタ20へ転送されるデータやSCSIコマンド等が上記バルク転送で送信され、セットされる。またエンドポイントEP2は、アップストリーム用エンドポイント(Bulk Out EP)であり、例えば、USBリーダ/ライタ20からホスト機器10へ転送するデータがセットされる。
本例のSCSIコマンドとしては、USBリーダ/ライタ20に使用される通常のコマンド、例えば、上述のATAブロックリード/ライトコマンド(ATA Block Read/Write Command)に加えて、パススルーモード用の専用のコマンドが、SCSIコマンドの拡張されたコマンドとして定義される。前述の通り、本例の拡張されたSCSIコマンドの一つは、SCSIコマンドにSDTMカードコマンドを埋め込んだものである。そして埋め込まれたSDTMカードコマンドは、ロックコマンドやアンロックコマンド等である。また、ロックコマンドやアンロックコマンドの他に、従来のSCSIコマンドではカバーされていない著作権保護機能をイネーブルするためのコマンドや、NAND型フラッシュメモリ50において、機密情報を保持すべき秘匿領域へのアクセスコマンドが埋め込まれても良い。
図6は、エンドポイントEP1にセットされる、拡張されたSCSIコマンドの一例を示す。本例では、USBインターフェイス21上の一つの通信パケットに、拡張されたSCSIコマンド(パススルーモード用専用コマンド)、及びこの通信パケットに埋め込まれたコマンド(ロックコマンド、アンロックコマンド、著作権保護用コマンド等)が書き込まれ、これらが書き込まれた通信パケットがエンドポイントEP1にセットされる。通信パケットは、USBの通信プロトコルに対応する。拡張されたSCSIコマンドは、SCSIフォーマットに従って記述されており、USBリーダ/ライタ20のMPU22において読み取り可能である。対して埋め込まれたコマンド(SDTMカードコマンド)は、USBの通信プロトコルとは異なる通信プロトコル、本例ではSDTMカード30の通信プロトコルに対応する。埋め込まれたコマンドは、SDTMカードコントローラ40において読み取り可能である。
拡張されたSCSIコマンドのうち、パススルーモードをイネーブルにする旨のコマンドをUSBリーダ/ライタ20のMPU22が読み取ると、USBリーダ/ライタ20はパススルーモードをイネーブルする。パススルーモードがイネーブルされると、以後、パススルーモードでのコマンド、データ、レスポンスの送受信が可能となり、パススルーモードの拡張コマンドに埋め込まれたSDTMコマンドはUSBリーダ/ライタ20をパススルーしてSDTMカードコントローラ40に送られる。
パススルーされたSDTMカードコマンドのうち、ロックコマンドまたはアンロックコマンドをSDTMカードコントローラ40のMPU43が読み取ると、MPU43はロック/アンロック機能を作動させ、コマンドに応じてロック状態とアンロック状態とのいずれかの状態に遷移する。更に、パススルーされたSDTMカードコマンドが著作権保護用コマンドであると、MPU43は著作権保護機能を作動させ、CPRM回路46がアクセスされる。パススルーモードにおいては、コマンドだけでなくデータもUSBリーダ/ライタ20をパススルーする。すなわち、NAND型フラッシュメモリ50の秘匿領域に書き込むべきデータや、秘匿領域から読み出されたデータは、USBリーダ/ライタ20をパススルーする。
以下、上記動作の、より詳細な一例を、図5を用いて説明する。図示するように、エンドポイントEP1にセットされたSCSIコマンド及びデータ(ダウンストリームデータ)は、マスストレージクラスインターフェイスからSCSIコマンドインターフェイス(SCSI Command I/F)へ転送される。また、USBリーダ/ライタ20からのデータ(アップストリームデータ)、及びレスポンスは、SDTMカード30からSCSIコマンドインターフェイスを介して、エンドポイントEP2にセットされる。
ここで、エンドポイントEP1にセットされたSCSIコマンドが、通常のコマンド、例えば、ATAブロックリード/ライトコマンドであった場合には、SCSIコマンドインターフェイスは、通常のマスストレージクラスのSCSIコマンド処理をする。すなわち、USBリーダ/ライタ20のMPU22は、SCSIの標準フォーマットに従って記述されたコマンド及びデータを、SDTMカード30のメモリ領域をアクセスするコマンド(SDTMカードコマンド)及びデータに変換する。
このように、エンドポイントEP1に通常のSCSIコマンドがセットされた場合には、USBリーダ/ライタ20は、一般的なUSBデバイスと同じように通常のSCSIコマンドに従って動作する。
対して、エンドポイントEP1にセットされたSCSIコマンドが、拡張されたコマンド、例えば、パススルーモード用の専用のコマンドであった場合には、SCSIコマンドインターフェイスは、パススルーモード用のSCSIコマンド処理をする。すなわちMPU22は、SCSIコマンド内に埋め込まれたSDTMカードコマンドを取り出し、これをSDTMカードコントローラ40へ転送する。これにより、SDTMカードコントローラ40はロック/アンロック機能を作動させることが出来る。また著作権保護機能など、従来のUSBでは対応していないがSDTMカードコマンドで対応している機能へのアクセスが可能となる。
図7は、本実施形態に係るメモリシステム1の論理構成を示す概念図である。第1の実施形態において図3を用いて説明した処理により初期化が完了し、SDTMカード30が認識されると、ホスト機器10からのSDTMカード30へのアクセスが行われる。図中において、実線が通常動作モードにおけるアクセスの流れである。つまり、アンロック状態のSDTMカード30へのアクセスの流れである。また、破線がパススルーモードにおけるロック/アンロック機能へのアクセスの流れである。つまり、ロック状態のSDTMカード30へのアクセスの流れである。
図示するように、アンロック状態のSDTMカード30に対しては、ホスト機器10上のアプリケーションソフト14からファイルシステムソフトウェア13にファイルアクセスコマンドが発行される。このコマンドに応じて、ファイルシステムソフトウェア13からマスストレージクラスの標準コマンド(SCSIコマンド)によって、ドライバソフトウェア12及びUSBホストコントローラ11を介してUSBリーダ/ライタ20にアクセスが為される。すなわち、NAND型フラッシュメモリ50の通常のメモリ領域に対するデータの書き込み、読み出し、消去が行われる。またパススルーモードを使用することによって、ホスト機器10上のロック/アンロックアプリケーション15がロックコマンドを発行して、SDTMカード30をロック状態にすることも出来る。また、パススルーモードを使用すれば、アプリケーションソフト14からNAND型フラッシュメモリ50の秘匿領域へアクセスすることも可能である。
ロック状態のSDTMカード30に対しては、アンロック状態と同じようにアプリケーションソフト14からファイルアクセスコマンドが発行されたとしても、SDTMカード30からエラーが返ってくるのみであり、実際のファイルアクセスは出来ない。しかしパススルーモードを使用することによって、ロック/アンロックアプリケーション15がアンロックコマンドを発行して、SDTMカード30をアンロック状態にすることも出来る。
次に、パススルーモード用の専用コマンドとしての、拡張されたSCSIコマンドについて説明する。これらのコマンドは、例えばSCSIプロトコルによるベンダーユニークコマンド(Vender Unique Command)を定義することで得ることができる。USBリーダ/ライタ20は、ベンダーユニークコマンドをサポートすることでパススルー動作を可能とする。図8は、拡張されたSCSIコマンドに対応するオペレーションコードとの関係を示す表である。
図示するように、本実施形態に係るメモリシステム1における拡張されたSCSIコマンドでは、下記7つのコード(Command Code)が定義される。
(1)パススルーモードセットコマンド(SDTM Card Passthrough Mode)
オペレーションコード“D0h”
(2)データ無しSDTMカード実行コマンド(SDTM Execute (No Data))
オペレーションコード“D1h”
(3)読み出し付SDTMカード実行コマンド(SDTM Execute (read from SDTM Card))
オペレーションコード“D2h”
(4)書き込み付SDTMカード実行コマンド(SDTM Execute (write to SDTM Card))
オペレーションコード“D3h”
(5)レスポンス取得コマンド(Get Response)
オペレーションコード“D4h”
(6)予備コマンド(Reserved)
オペレーションコード“D5h”
(7)ハードウェアリセットコマンド(SDTM Hardware Reset)
オペレーションコード“D6h”
なお、本実施形態において、数値の後ろに示した“h”は、その数値が16進数であることを表す。従って、例えば上記のオペレーションコード“D0h”は、2進数で表記した場合には“1101_0000”となる。
上記拡張されたSCSIコマンドのうち、パススルーモードセットコマンドは、USBリーダ/ライタ20を通常動作モードからパススルーモードに変更するためのコマンドである。そしてオペレーションコードとして“D0h”が用いられ、この“D0h”が、ホスト機器10からUSBリーダ/ライタ20に与えられる。
また、データ無しSDTMカード実行コマンド、読み出し付SDTMカード実行コマンド、及び書き込み付SDTMカード実行コマンドは、データを付随せずに、または付随して、SDTMカード30に対してアクセスするためのコマンドである。そしてオペレーションコードとしてそれぞれ“D1h”、“D2h”、“D3h”が用いられ、これらがホスト機器10からUSBリーダ/ライタ20に与えられる。
予備コマンドとは、不正コマンド(Illegal Command)のコードに割り当てられる。更にハードウェアリセットコマンドは、SDTMカード及びそのファームウェアの初期化を行うためのコマンドであり、オペレーションコードとして“D6h”が用いられる。
次に、上記各コマンドのフォーマットの一例について、図9乃至図13を用いて説明する。図9乃至図13は、各コマンドのフォーマットを示す概念図であり、各図の各行が1バイトのデータを示し、横軸に示す数値は、1バイトの各データのビット位置を示している。
<パススルーモードセットコマンド>
図9は、パススルーモードセットコマンドのフォーマットの一例を示す概念図である。USBリーダ/ライタ20の起動時は、パススルーモードがディセーブル(disable)である。すなわち、通常動作モードにある。この場合、USBリーダ/ライタ20は、拡張されたコマンドのうち、コマンドコード“D0h”以外のコマンドコードに対しては“不正コマンドエラー”を返す。つまり、USBリーダ/ライタ20は“D0h”以外の拡張コマンドは受け付けない。
図示するように、パススルーモードセットコマンドの先頭バイト(0バイト目)には、オペレーションコード(Operation Code)として、パススルーモードセットコマンドであることを示す“D0h”が設定される。コマンドモード(Command Mode)には、パススルーモードをディセーブルするときは“0000(“0h”)”が設定され、パススルーモードをイネーブルするときは“0001(“1h”)”が設定される。コマンドモードを“0001”に設定してパススルーモードセットコマンド(コード“D0h”)を実行するとUSBリーダ/ライタ20において、パススルーモードがディセーブルからイネーブルに変わる。これによりパススルーモードがイネーブルされ、USBリーダ/ライタ20はコード“D1h”〜“D6h”の実行が可能となる。なお図9において、“LUN”は使用すべき論理ドライブを示し、“Control Byte”はコマンドフォーマットに与えられる所定の値である。
<レスポンス>
図10に、レスポンスのフォーマットの一例を示す。レスポンスとは、レスポンス取得コマンドに応答してSDTMカード30から与えられる信号であり、コマンドに対するアクノリッジの意味を持つ。レスポンス取得コマンドとレスポンスとの関係については後述する。
レスポンスは、図10に示すフォーマットに従って、ホスト機器10とUSBリーダ/ライタ20との間で送受信される。図中において、“WP”はライトプロテクト(write protect)の有無を示しWP=“0”の場合には書き込みが許可され、WP=“1”の場合には書き込みが禁止される。“Media Type”は、レスポンスを返すメディアの種類を示す。Media Type=“0”の場合にはメディアが存在しないことを示し、Media Type=“1”の場合にはSDTMカードであることを示し、Media Type=“2”の場合にはSDTMカードとコンパーチブルなメディアであることを示し、Media Type=“3”の場合にはSDTMカードに類似したメディア(Illegal Media)であることを示す。更に、6〜7バイト目には、RCA(Relative card address)が保持される。RCAは、SDTMカードの初期化等の際にSDTMカード自らが設定する値であり、一部のSDTMカードコマンドの入力パラメータとして使用される。また、“Max LUN Number”は論理ドライブの数を示す。
<SDTMカード実行コマンド>
図11に、データ無しSDTMカード実行コマンド、読み出し付SDTMカード実行コマンド、及び書き込み付SDTMカード実行コマンドのフォーマットの一例を示す。なお、これらのコマンドを区別しない場合には、単にSDTMカード実行コマンドと呼ぶ。
SDTMカード実行コマンドは、実際にSDTMカードに対してアクセスを行って、何らかの処理を行うためのコマンドである。前述の通り、パススルーモードにおいては、拡張されたSCSIコマンドにSDTMカードコマンドが埋め込まれて、それが直接SDTMカードコントローラへ転送される。このSDTMカードコマンドが埋め込まれるSCSIコマンドが、SDTMカード実行コマンドである。
図示するように、最初の0バイト目にはオペレーションコードが設定される。SDTMカードコントローラ40へのアクセスにデータを必要としない場合には、データ無しSDTMカード実行コマンドとして“D1h”が設定される。また、SDTMカードコントローラ40へのデータの読み出しアクセスの場合には、読み出し付SDTMカード実行コマンドとして“D2h”が設定される。更にSDTMカードコントローラ40へのデータの書き込みアクセスの場合には、書き込み付SDTMカード実行コマンドとして“D3h”が設定される。
次の1バイト目の下位4ビットには、それぞれ“BLKH”、“Send cmd12”、“Standby”、“ACMD”が設定される。これらは、当該コマンドに埋め込まれたSDTMカードコマンドを如何にしてSDTMカードコントローラ40へ受け渡すかを示す情報である。
“BLKH”は、SDTMカードコントローラとの間のデータの転送が、シングルセクタで行われるか(BLKH=“0”)、または複数のセクタで行われるか(BLKH=“1”)を示す情報である。すなわち、BLKH=“1”の場合には、NAND型フラッシュメモリ5内の複数のブロックに対応するデータが転送される。なおブロックとは、NAND型フラッシュメモリ50内においてデータを保持するメモリセルの集合のことであり、同一ブロック内のメモリセルに保持されるデータは一括して消去される。
また“Send cmd12”は、命令の実行が完了したSDTMカード30において、SDTMカード30に実装される所定のコマンドcmd12を実行するか否かを示す情報である。コマンドcmd12は、ホスト機器がSDTMカードにマルチブロック転送(BLKH=“1”:書き込み、及び読み出し)が終了したことを示すためコマンドである。
“Standby”は、スタンバイ状態のSDTMカードに対するリクエストコマンドを示す情報である。そして“ACMD”は、上記リクエストコマンドが特定用途のACMDであるか否かを示す。特定用途のコマンドとは、例えばロック/アンロック機能や著作権保護機能にアクセスするためのコマンドである。そして、リクエストコマンドが特定用途のコマンドである場合にはACMD=“1”とされ、通常のコマンドである場合にはACMD=“0”とされる。
そして、2バイト目の下位6ビットと、3〜6バイト目に、SDTMカードコマンドが埋め込まれる。SDTMカードコマンドは、命令の内容(readやwriteなど)を示す“SDTM Command Index”と、その命令を実行するために必要な情報(アドレスなど)を示す“SDTM Command Argument”とを含んでいる。
また7〜9バイト目には、読み出しデータや書き込みデータ等、命令の実行に要するデータ(“Data Transfer Length”)が保持される。“Response Type”は、SDTMカードに送られるレスポンスタイプを示す。レスポンスタイプには、“R1”、“R1b”、“R2”〜“R6”が用意されている。これらの詳細については後述する。“Response Type”が“0000_0011”の場合にはレスポンスは送られず(“No Res”)、“0000_0100”の場合には“R1”、“R4”〜“R6”が選択され、“0000_0101”の場合には“R1b”が選択され、“0000_0110”の場合には“R2”が選択され、“0000_0111”の場合には“R3”が選択される。
従って、ホスト機器10がロックコマンドまたはアンロックコマンドを発行する際には、図11に示すフォーマットにおいて、オペレーションコードを“D1h”とすると共に、“SDTM Command Index”と“SDTM Command Argument”にSDTMカードコマンド形式のロックコマンドまたはアンロックコマンドを埋め込めば良い。また、NAND型フラッシュメモリ50の秘匿領域にデータを書き込むような場合には、図11に示すフォーマットにおいて、オペレーションコードを“D3h”とすると共に、“SDTM Command Index”と“SDTM Command Argument”にSDTMカードコマンド形式の書き込みコマンドを埋め込み、更に“Data Transfer Length”に書き込むべきデータを埋め込めば良い。
<ハードウェアリセットコマンド>
図12に、ハードウェアリセットコマンドのフォーマットの一例を示す。
図示するように、最初の0バイト目にはオペレーションコードとして“D6h”が設定される。
<レスポンス取得コマンド>
図13に、レスポンス取得コマンドのフォーマットの一例を示す。
図示するように、最初の0バイト目にはオペレーションコードとして“D4h”が設定される。
以下、レスポンス取得コマンドとレスポンスとの関係について説明する。パススルーモード時においてSDTMカードコマンドは、USBリーダ/ライタ20をパススルーしてSDTMカードコントローラ40に直接に送り込まれる。一方、パススルーモード時以外には、SCSIコマンドが、USBリーダ/ライタ20においてSDTMカードコントローラ40で読み取り可能なコマンドに変換された上でSDTMカードコントローラ40に送り込まれる。
SDTMカード30のコマンドには、コマンドに対するレスポンスを要求するものと、要求しないものとがある。しかし、通常のSCSIコマンドでは、このような動作を想定していない。従って、もしSDTMカード30に対してレスポンスを要求するコマンドが送り込まれたならば、SDTMカードコントローラ40から出力されたレスポンスは、例えば、SDTMカードコントローラ40とUSBリーダ/ライタ20との間に閉じ込められてしまう。レスポンスがUSBリーダ/ライタ20の内部に閉じ込められてしまうと、USBリーダ/ライタ20の動作が不安定になったり、あるいは誤動作したりする原因になりかねない。
このような事情を解消するために、本例では、拡張されたコマンドの一つに、レスポンス取得コード(Get Response)を定義する。そして、レスポンス取得コードを拡張されたコマンドの一つに定義し、定義したレスポンス取得コードをUSBリーダ/ライタ20に送り込む。これにより、SDTMカードコントローラ40から出力されたレスポンスはUSBリーダ/ライタ20内に閉じ込められることはなく、レスポンスはSDTMカードコントローラ40からUSBリーダ/ライタ20を介してホスト機器10へ送信することができる。これにより、USBリーダ/ライタ20の装置の動作が不安定になったり、誤動作したりする原因の一つを排除できる、という利点を得ることができる。
図14(a)は、SDTMカードに対してレスポンスを要求しないコマンドのときのコマンド処理例を示す図である。レスポンスを要求しないコマンドのタイプとしては、addressed(point-to-point) commands(ac)、及びbroadcast commands(bc)がある。これらのコマンドのレスポンスタイプは“No Res”である。すなわち、図11に示すフォーマットにおいて、“Response Type”は“0000_0011”である。
図示するように、ホスト機器から“No Res”のデータ無しSDTMカード実行コマンド(SDTM EXECUTE with no data:“D1h”)をUSBリーダ/ライタ20に送信するときには、当該コマンドのみをUSBリーダ/ライタ20に送信するだけで良い。当該コマンドを受信したUSBリーダ/ライタ20のMPU22は、受信したSCSIコマンドに埋め込まれたSDTMカードコマンド(Command)をSDTMカードコントローラ40に転送する。これで処理は終了する。
一方、レスポンスを要求するコマンドのタイプとしては、broadcast commands with response(bcr)がある。このコマンドのレスポンスタイプには、前述の“R1”、“R1b”、“R2”〜“R6”等がある。これらのレスポンスタイプは概ね、“R1”はノーマルレスポンス、“R1b”はオプションでビジー信号をデータ線に転送可能なノーマルレスポンス、“R2”はSDTMカードコントローラ40内のCID(Card IDentification number register)又はCSD(Card Specific Data register)から送られるレスポンス、“R3”はSDTMカードコントローラ40内のOCR(Operation Conditions Register)から送られるレスポンス、“R4”及び“R5”はSDTMカード30に類似したメディア(illegal media)のときに付加されるレスポンス、“R6”はSDTMカード30内のRCA(Relative Card Address register)から送られるレスポンスである。なお、本明細書においては、レスポンスタイプ“R1”〜“R6”を総称して“With Res”と呼び、それらの詳細については省略する。
図14(b)は、SDTMカード30に対してレスポンスを要求するコマンドのときのコマンド処理例を示す図である。図14(b)は記録媒体としてSDTMカード30を利用する例を示すため、図中にレスポンスタイプ“R4”及び“R5”は示されないが、レスポンスタイプ“R4”及び“R5”における処理例も、図14(b)と同様である。
図示するように、ホスト機器10から“With Res”のデータ無しSDTMカード実行コマンド(SDTM EXECUTE with no data:“D1h”)をUSBリーダ/ライタ20に送信するときには、当該コマンドを送信した後に、レスポンス取得コマンド(Get Response:“D4h”)を送信する。以下処理例を説明する。
“With Res”のコマンド(“D1h”)を受信したUSBリーダ/ライタ20は、受信したSCSIコマンドに埋め込まれたSDTMカードコマンド(Command)をSDTMカードコントローラ40に転送する。SDTMカードコントローラ40のMPU43は、受信したSDTMカードコマンドに従って処理を実行した後、レスポンス(Response)を返す。このレスポンスをUSBリーダ/ライタ20内から取り出すために、ホスト機器10から、レスポンス取得コマンド(Get Response:“D4h”)をUSBリーダ/ライタ20に送信する。レスポンス取得コマンドを受信したUSBリーダ/ライタ20は、SDTMカードコントローラ40から返されたレスポンスを、受信したコマンドに従って取り出し、取り出したレスポンス(Response Data)をホスト機器10へと送信する。これで処理は終了する。
さらに、コマンドタイプには、addressed(point-to-point) data transfer commands(adtc)がある。adtcの具体例は、読み出し付SDTMカード実行コマンド、及び書き込み付SDTMカード実行コマンドである。コマンドタイプがadtcの場合のときにも、レスポンスが要求される。
図15(a)は読み出し付SDTMカード実行コマンド(シングルブロックリード)のときのコマンド処理例を示す図である。図示するように、ホスト機器10から読み出し付SDTMカード実行コマンド(SDTM EXECUTE read from SDTM card:“D2h”)をUSBリーダ/ライタ20に送信するときにも、当該コマンドを送信した後に、レスポンス取得コマンド(Get Response:“D4h”)を送信する。
例えば、読み出し付SDTMカード実行コマンドを受信したUSBリーダ/ライタ20は、受信したSCSIコマンドに埋め込まれたSDTMカードコマンド(Command)をSDTMカードコントローラ40に転送する。SDTMカードコントローラ40のMPU43は、受信したSDTMカードコマンドに従ってNAND型フラッシュメモリ50からのデータ読み出しを実行する。その後SDTMカードコントローラ40のMPU43は、レスポンス(Response)を返すとともに、NAND型フラッシュメモリ50から読み出したデータ(Data)をUSBリーダ/ライタ20に対して送信する。USBリーダ/ライタ20のMPU22は、受信したデータ(Transfer Data(read from SDTM card))をホスト機器10へと送信する。受信したデータの送信が終わった後、ホスト機器10から、レスポンス取得コマンド(Get Response:“D4h”)がUSBリーダ/ライタ20に送信される。レスポンス取得コマンドを受信したUSBリーダ/ライタ20は、SDTMカードコントローラ40から返されたレスポンスを、受信したコマンドに従って取り出し、取り出したレスポンス(Response Data)をホスト機器10へと送信する。これで処理は終了する。
図15(b)は書き込み付SDTMカード実行コマンド(シングルブロックライト)のときのコマンド処理例を示す図である。図示するように、ホスト機器10から書き込み付SDTMカード実行コマンド(SDTM EXECUTE write to SDTM Card:“D3h”)をUSBリーダ/ライタ20に送信するときには、当該コマンドに続くライトデータ(Transfer Data(Write to SDTM Card))を送信した後に、レスポンス取得コマンド(Get Response:“D4h”)を送信する。
例えば、書き込み付SDTMカード実行コマンド、及びライトデータを受信したUSBリーダ/ライタ20のMPU22は、受信したSCSIコマンドに埋め込まれたSDTMカードコマンド(Command)、及びライトデータ(Data)をSDTMカードコントローラ40に転送する。SDTMカードコントローラ40のMPU43は、レスポンス(Response)を返すとともに、受信したコマンドに従ってNAND型フラッシュメモリ50へのライトデータの書き込みを実行する。書き込みが終わった後、USBリーダ/ライタ20は、レスポンス取得コマンド(Get Response:“D4h”)をSDTMカードコントローラ40に送信する、USBリーダ/ライタ20は、SDTMカードコントローラ40から返されたレスポンスを受信したコマンドに従って取り出し、取り出したレスポンス(Response Data)をホスト機器10へと送信する。これで処理は終了する。
図16(a)は読み出し付SDTMカード実行コマンド(マルチプルブロックリード)のときのコマンド処理例を示す図である。
図16(a)に示す処理例が図15(a)に示す処理例と異なるところは、図15(a)に示す処理例がシングルブロックリードであるのに対して、図16(a)に示す処理例はマルチプルブロックリードであるところである。シングルブロックリードは、リードデータのデータ長(data length)がSDTMカード30のブロックサイズ以下であり、データリードは1ブロックで済む場合である。対してマルチプルブロックリードは、リードデータのデータ長(data length)がSDTMカード30のブロックサイズを超えており、データリードが複数ブロックに及ぶ場合である。本例は、SDTMカード30のブロックサイズが512バイトの例を示す。マルチブロックリードは、リードデータを何回かに分けてSDTMカードコントローラ40からUSBリーダ/ライタ20に転送することがシングルブロックリードと異なり、それ以外はシングルブロックリードと同じである。なおブロックとは、第1の実施形態において図2用いて説明したNANDセル54の集合であり、データの消去単位となるものである。つまり、同一のブロック内にあるメモリセルトランジスタMTの保持するデータは、一括して消去される。
図16(b)は書き込み付SDTMカード実行コマンド(マルチプルブロックライト)のときのコマンド処理例を示す図である。
図16(b)に示す処理例は、シングルブロックライトであった図15(b)に示す処理例を、マルチプルブロックライトとしたものである。本例は、データライトがマルチプルブロックライトであることが図15(b)に示す処理例と異なり、それ以外はシングルブロックライトと同じである。
以上のように、本実施形態の論理インターフェイスによってパススルーモードが実現出来る。以下再度、通常動作モードとパススルーモードとの違いについて、図17を用いて簡単に説明する。図17は、USBリーダ/ライタ20の動作の流れを示すフローチャートである。
図示するように、USBリーダ/ライタ20がパススルーモードセットコマンドを受信しない場合には(ステップS30、NO)、USBリーダ/ライタ20は通常動作モードのままである(ステップS31)。この動作モードは、従来のUSBデバイスと同様である。すなわち、USBリーダ/ライタ20はホスト機器10から通常の(従来の)SCSIコマンドを受け取る(ステップS32)。そしてUSBリーダ/ライタ20は、受け取ったSCSIコマンドをSDTMカードコマンドに変換して、SDTMカードコントローラ40へ出力する(ステップS33)。すると、SDTMカードコントローラ40は、受け取ったSDTMカードコマンドに基づいて処理を行う(ステップS34)。但し、従来のSCSIコマンドはロック/アンロック機能をカバーしていないため、USBの通信プロトコルで対応しているコマンドのみが使用可能であり、ロック/アンロック機能へのアクセスは出来ない(ステップS35)。
ステップS30において、パススルーモードセットコマンドを受信した場合(ステップS30、YES)、USBリーダ/ライタ20はパススルーモードに移行する(ステップS41)。この様子を図18に示す。図18は、メモリシステム1のブロック図である。図示するように、拡張されたSCSIコマンド(パススルーモードセットコマンド:“D0h”)が、USBの通信プロトコル形式により、ホスト機器10からUSBリーダ/ライタ20に送られる。すると、これを受けてUSBリーダ/ライタ20はパススルーモードとなる。これ以降、USBリーダ/ライタ20は、その他の拡張SCSIコマンド“D1h”〜“D6h”を受信可能となる。
次にUSBリーダ/ライタ20は、SDTMカードコマンドが埋め込まれたSCSIコマンド(拡張SCSIコマンド)を受け取る(ステップS42)。すると、USBリーダ/ライタ20は、拡張SCSIコマンドのうち、その内部に埋め込まれたSDTMカードコマンドを通過させ、SDTMカードコントローラ40へ出力する(ステップS44)。するとSDTMカードコントローラ40は、USBリーダ/ライタ20を通過したSDTMカードコマンドに基づいて処理を行う(ステップS44)。
ステップS42〜S44の様子を図19に示す。図19はメモリシステム1のブロック図であり、ホスト機器10がアンロックコマンドを発行した際の様子を示している。図示するように、拡張されたSCSIコマンド(実行コマンド:“D1h”)が、USBの通信プロトコル形式により、ホスト機器10からUSBリーダ/ライタ20に送られる。このSCSIコマンド内には、SDTMカードコマンド形式のアンロックコマンドが埋め込まれている(図11参照)。すると、パススルーモードにあるUSBリーダ/ライタ20は、SCSIコマンド内のアンロックコマンドを通過させ、SDカードコントローラ40へ出力する。その結果、SDTMカードコントローラ40はアンロック状態に遷移する。
このように、USBリーダ/ライタ20がパススルーモードに移行することで、SDTMカードの通信プロトコルにのみ対応するコマンドが使用可能となる(ステップS45)。その結果、ロック/アンロック機能へのアクセスが可能となる。また、USBでは対応していない著作権保護機能へのアクセスも可能となる。
図20にはロック/アンロック機能へのアクセスとは異なる場合の例として、例えばコンテンツを暗号化するための暗号鍵を、NAND型フラッシュメモリ50の秘匿領域に格納する場合について示している。図示するように、図示するように、拡張されたSCSIコマンド(実行コマンド:“D3h”)が、USBの通信プロトコル形式により、ホスト機器10からUSBリーダ/ライタ20に送られる。このSCSIコマンド内には、暗号鍵とその書き込み命令とが、SDTMカードコマンドの形式で埋め込まれている(図11参照)。すると、パススルーモードにあるUSBリーダ/ライタ20は、SCSIコマンド内のSDTMカードコマンドを通過させ、SDカードコントローラ40へ出力する。この結果、SDTMカードコントローラ40は暗号鍵の書き込み命令を受信し、その命令に従って暗号鍵をNAND型フラッシュメモリ50の秘匿領域へ書き込む。
以上のように、本実施形態に係るメモリシステム1であると、USBリーダ/ライタ20にパススルーモードを設けることにより、SDTMカード30のロック/アンロック機能にアクセスすることが可能となる。
[第3の実施形態]
次に、この発明の第3の実施形態に係る半導体装置について説明する。本実施形態は、上記第1、第2の実施形態において、ホスト機器10がSDTMカードのカードスロットを有する場合に関するものである。図21は、本実施形態に係るメモリシステム1のブロック図である。
図示するようにメモリシステム1は、ホスト機器(例えばPC)10とSDTMカード30とを備えている。SDTMカード30の構成は第1の実施形態で説明した通りであるので説明は省略する。
ホスト機器10は、SDTMホストコントローラ60、CPU(Central Processing Unit)61、RAM(メインメモリ)62、周辺デバイス63、PCI(Peripheral Component Interconnect)バス64、メモリバス65、及びカードスロット66を備えている。
カードスロット66にはSDTMカード30が挿入され、SDカードバスによってSDTMホストコントローラ60と、SDTMカード30のSDTMカードインターフェイス41とが通信可能に接続される。
SDTMホストコントローラ60は、上記第1、第2の実施形態で説明したUSBリーダ/ライタ20としての機能を有し、例えば図1を用いて説明したUSBリーダ/ライタ20と同様の構成を備えている。そして、CPU61によって発行されたコマンドを、SDTMカードコマンドの形式にして、SDカードバスを介してSDTMカード30へ出力する。RAM62は、CPU61が処理を行う際のメインメモリとして機能する。周辺デバイス63は、ホスト機器10を構成するために必要なその他のデバイスである。そして、SDTMホストコントローラ60、CPU61、及び周辺デバイス63は、PCIバス64によって通信可能に接続される。またCPU61とRAM62とは、メモリバス65によって通信可能に接続される。
本構成において、SDTMホストコントローラ60は第1の実施形態で説明した図2の処理を行う。つまり、第1の実施形態におけるUSBリーダ/ライタ20の代わりに、SDTMホストコントローラ60が、第1の初期化及び第2の初期化を行う。そして、SDTMカード30を認識したこと、または認識出来なかったことを、CPU61へ通知する。
これにより、ホスト機器10のカードスロット66に挿入されたSDTMカード30がロック状態にあったとしても、CPU61がそのことのみを理由としてカードエラーと判定することが無い。よって、第1の実施形態と同様の効果が得られる。
また図21に示す構成において、SDTMホストコントローラ60はパススルーモードを有する。すなわち、CPU61から与えられるコマンドは、PCIバス64の通信プロトコルに対応したフォーマットとされている。このフォーマットは、通常、SDTMカード30のロック/アンロック機能をカバーしていない。従ってCPU61は、発行するコマンド内に、SDTMカードコマンドを埋め込んでSDTMホストコントローラ60へ出力する。そしてパススルーモードにあるSDTMホストコントローラ60は、受け取ったコマンドからSDTMカードコマンドを取り出して、SDTMカード30へパススルーする。これにより、第2の実施形態と同様の効果が得られる。
図22は、本実施形態に係るメモリシステム1の論理構成を示す概念図である。第1の実施形態において図3を用いて説明した処理により初期化が完了し、SDTMカード30がCPU61に認識されると、CPU61からのSDTMカード30へのアクセスが行われる。図中において、実線が通常動作モードにおけるアクセスの流れである。つまり、アンロック状態のSDTMカード30へのアクセスの流れである。また、破線がパススルーモードにおけるロック/アンロック機能へのアクセスの流れである。つまり、ロック状態のSDTMカード30へのアクセスの流れである。
図示するように、アンロック状態のSDTMカード30に対しては、ホスト機器10上のアプリケーションソフト14からファイルシステムソフトウェア13にファイルアクセスコマンドが発行される。このコマンドに応じて、SDTMホストコントローラ60がSDTMカードコマンドを発生して、NAND型フラッシュメモリ50の通常のメモリ領域に対するデータの書き込み、読み出し、消去が行われる。またパススルーモードを使用することによって、ホスト機器10上のロック/アンロックアプリケーション15がロックコマンドを発行して、SDTMカード30をロック状態にすることも出来る。また、パススルーモードを使用すれば、アプリケーションソフト14からNAND型フラッシュメモリ50の秘匿領域へアクセスすることも可能である。
ロック状態のSDTMカード30に対しては、アンロック状態と同じようにアプリケーションソフト14からファイルアクセスコマンドが発行されたとしても、SDTMカード30からエラーが返ってくるのみであり、実際のファイルアクセスは出来ない。しかしパススルーモードを使用することによって、ロック/アンロックアプリケーション15がアンロックコマンドを発行して、SDTMカード30をアンロック状態にすることも出来る。この際、SDTMホストコントローラ60は、ロック/アンロックアプリケーション15から与えられるアンロックコマンドをパススルーして、直接SDTMカード30へ出力する。
以上のように、この発明の第1乃至第3の実施形態に係るUSBリーダ/ライタ20及びSDTMホストコントローラ60であると、次の構成を有している。すなわち、不揮発性半導体メモリ50を備え、不揮発性半導体メモリ50へのアクセスが許可されるアンロック状態と、アクセスが禁止されるロック状態との2つの状態を備えるメモリカード30に接続可能な半導体装置20、60であって、メモリカード30に接続可能とされ、メモリカード30と通信を行う第1インターフェイス25と、メモリカード30へのアクセス命令を生成するホスト機器10に接続可能とされ、ホスト機器10と通信を行う第2インターフェイス21と、第1インターフェイス25にメモリカード30が接続された際に、ロック状態のメモリカード30が認識可能な命令を用いてメモリカード30の第1初期化処理(ステップS11)を行い、第1初期化処理に成功した場合(ステップS12、YES)、メモリカード30がアンロック状態とロック状態とのいずれの状態であるかを把握し(ステップS14)、ロック状態であった場合(ステップS15、YES)に、メモリカード30を正常に認識した旨の情報を第2インターフェイス21からホスト機器10へ伝達するプロセッサ22とを具備する。
またプロセッサ22は、第1初期化処理に成功し且つメモリカードがアンロック状態であった場合(ステップS15、NO)、アンロック状態のメモリカード30が認識可能であり且つロック状態のメモリカードが認識不可能な命令を用いて、メモリカード30の第2初期化処理を行う(ステップS17)。
更にプロセッサ22は、第1初期化処理に成功し且つメモリカードがロック状態であった場合(ステップS15、YES)、第2初期化処理を行うことなく、ホスト機器への伝達を行う。
以上の構成により、ロック状態のメモリカードの認識が可能となる。
なお、上記第2の実施形態で説明した論理インターフェイスでは、パススルーモード用のインターフェイスクラスとして、マスストレージクラスと同様にSCSIコマンドを使ってパススルーモードを実現する例を示したが、SCSIコマンドのフォーマットではなく、コマンドフォーマットを変形して別のコマンドフォーマットとすることも可能である。この例が第3の実施形態に対応する。
更に、上記実施形態では記録媒体がNAND型フラッシュメモリを備える場合について説明したが、NAND型フラッシュメモリに限らず、例えばNOR型フラッシュメモリやAND型フラッシュメモリ等の他のフラッシュメモリや、MRAMや強誘電体メモリ等の他の不揮発性半導体メモリに置換することも可能である。更に、記録媒体はSDTMカードに限らず、ロック/アンロック機能を有する種々のメモリカードに適用出来る。
[SDTMカードにおける初期化処理の例]
ここで、SDTMカードで使用される具体的なコマンド(CMD0、CMD2、CMD3、CMD7、CMD9、CMD10、ACMD6、及びACMD41等)を用いた第1、第2の初期化の一具体例について、図23を用いて説明する。図23は、第1、第2の初期化処理の詳細を示すフローチャートである。 まずUSBリーダ/ライタ20からSDTMカード30へコマンドCMD0が与えられる(ステップS50)。CMD0はSDTMカード30をリセットしてアイドル(idle)状態とする(ステップS51)ための命令である。
引き続きSDTMカード30に対してコマンドACMD41が与えられる。ACMD41は、ホスト機器10で規定される電源電圧VDDにマッチしないSDTMカードを識別するためのコマンドである。まず、argumentとして“0”がセットされたACMD41が与えられる(ステップS52)。これにより、SDTMカード30に対してコモン電圧レンジ(common voltage range)を確認する。引き続きSDTMカード30には、argumentとしてホスト機器10の電源電圧“VDD”がセットされたコマンドACMD41が与えられる(ステップS53)。これによりSDTMカード30は、コモン電圧レンジ内にあるVDDにより動作する。
その後、SDTMカード30がレディ(ready)状態となると(ステップS54、NO)、SDTMカード30にはコマンドCMD2が与えられる(ステップS55)。CMD2に応答して、SDTMカード30のユニークなID情報が読み出される。ID情報とは、例えば当該SDTMカード30の製造者IDや、製造日などである。
引き続きSDTMカード30にはコマンドCMD3が与えられる(ステップS56)。CMD3に応答して、SDTMカード30からRCAが読み出される。このRCAによって、USBリーダ/ライタ20は当該SDTMカード30を認識出来る。そして、必要に応じてコマンドACMD42がSDTMカード30に与えられる。(ステップS58)。ACMD42によって、SDTMカード30検出用のプルアップ抵抗が無効とされる。その後、再びRCA=“0000”と共にコマンドCMD7が与えられる(ステップS59)。これにより、当該SDTMカード30は非選択状態となる。
次に、SDTMカード30に対してコマンドCMD9が与えられる(ステップS60)。CMD9により、当該SDTMカード30のステータスが読み出される。ステータスとは、例えばファイルフォーマット、最大書き込み/読み出し電流、最小書き込み/読み出し電流等の情報である。引き続きコマンドCMD10によって、SDTMカード30のID情報が読み出される(ステップS61)。その後、SDTMカード30に再びコマンドCMD7が与えられ、USBリーダ/ライタ20により当該SDTMカード30が選択される(ステップS62)。
以上のステップS50〜S62の動作が第1の初期化であり、ステップS60またはS62において、当該SDTMカード30がロック状態であるのか、またはアンロック状態であるのかが判別される。
第2の初期化は、上記ステップS62の後にコマンドACMD6をSDTMカード30に対して発行することで行われる(ステップS63)。ACMD6によって、データ転送に使用すべきデータバスサイズが決定される。ACMD6によってデータバスサイズが決定される結果、SDTMカード30はデータ転送可能なトランスファ(transfer)状態となり、第2の初期化が終了する。
なお、本願発明は上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出されうる。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出されうる。
この発明の第1の実施形態に係るメモリシステムのブロック図。 この発明の第1の実施形態に係るメモリカードの備えるNAND型フラッシュメモリのブロック図。 この発明の第1の実施形態に係るUSBリーダ/ライタの処理の流れを示すフローチャート。 この発明の第2の実施形態に係るメモリシステムの処理の流れを示すフローチャート。 この発明の第2の実施形態に係るUSBリーダ/ライタの論理インターフェイス例を示す図。 この発明の第2の実施形態に係るメモリシステムにおいて、ホスト機器から出力されるコマンドの構造を示す概念図。 この発明の第2の実施形態に係るメモリシステムの論理構成を示すブロック図。 この発明の第2の実施形態に係るメモリシステムにおいて、拡張されたSCSIコマンドとオペレーションコードとの関係を示すダイアグラム。 この発明の第2の実施形態に係るメモリシステムにおける、パススルーモードセットコマンドのフォーマットを示すダイアグラム。 この発明の第2の実施形態に係るメモリシステムにおける、レスポンスのフォーマットを示すダイアグラム。 この発明の第2の実施形態に係るメモリシステムにおける、カード実行コマンドのフォーマットを示すダイアグラム。 この発明の第2の実施形態に係るメモリシステムにおける、レスポンス取得コマンドのフォーマットを示すダイアグラム。 この発明の第2の実施形態に係るメモリシステムにおける、ハードウェアリセットコマンドのフォーマットを示すダイアグラム。 この発明の第2の実施形態に係るメモリシステムにおける、SCSIコマンドとSDカードコマンドのタイミングチャートであり、(a)図はレスポンスを要求しない場合の処理、(b)図はレスポンスを要求する場合の処理を示す図。 この発明の第2の実施形態に係るメモリシステムにおける、SCSIコマンドとSDカードコマンドのタイミングチャートであり、(a)図はシングルブロックリードの場合の処理、(b)図はシングルブロックライトの場合の処理を示す図。 この発明の第2の実施形態に係るメモリシステムにおける、SCSIコマンドとSDカードコマンドのタイミングチャートであり、(a)図はマルチプルブロックリードの場合の処理、(b)図はマルチプルブロックライトの場合の処理を示す図。 この発明の第2の実施形態に係るメモリシステムにおける動作の流れを示すフローチャート。 この発明の第2の実施形態に係るメモリシステムのブロック図。 この発明の第2の実施形態に係るメモリシステムのブロック図。 この発明の第2の実施形態に係るメモリシステムのブロック図。 この発明の第3の実施形態に係るメモリシステムのブロック図。 この発明の第3の実施形態に係るメモリシステムの論理構成を示すブロック図。 この発明の第1の実施形態に係るメモリシステムにおける、第1、第2の初期化処理の詳細を示すフローチャート。
符号の説明
1…メモリシステム、10…ホスト機器、11…USBホストコントローラ、12…ドライバソフトウェア、13…ファイルシステム、14…ファイルアクセスアプリケーション、15…ロック/アンロックアプリケーション、20…USBリーダ/ライタ、21…USBインターフェイス、22、43…MPU、23、44…ROM、24、45、62…RAM、25、41…SDTMカードインターフェイス、26…半導体基板、27、47…バス、30…SDTMカード、40…SDTMカードコントローラ、42…NANDインターフェイス、46…CPRM回路、50・・NAND型フラッシュメモリ、51…メモリセルアレイ、52…ロウデコーダ、53…ページバッファ、54…NANDセル、60…SDTMホストコントローラ、61…CPU、63…周辺デバイス、64…PCIバス、65…メモリバス、66…カードスロット

Claims (6)

  1. 不揮発性半導体メモリを備え、該不揮発性半導体メモリへのアクセスが許可されるアンロック状態と、前記アクセスが禁止されるロック状態との2つの状態を備えるメモリカードに接続可能な半導体装置であって、
    前記メモリカードに接続可能とされ、前記メモリカードと通信を行う第1インターフェイスと、
    前記メモリカードへのアクセス命令を生成するホスト機器に接続可能とされ、前記ホスト機器と通信を行う第2インターフェイスと、
    前記第1インターフェイスと第2インターフェイスに接続された制御部と、を具備し、
    前記制御部は、前記第1インターフェイスに前記メモリカードが接続された際に、前記ホスト機器からの前記第2インターフェイスを経由したロック状態の前記メモリカードが受け付け可能な命令に従って、前記メモリカードの状態を読み出し可能な状態とする第1初期化処理を行い、前記第1初期化処理に成功した場合、前記メモリカードからステータスデータを読み出して前記メモリカードがロック状態であるかアンロック状態であるかを判断し、ロック状態であると判断された場合、前記ホスト機器から送信された命令によりパススルーモードに設定され、前記パススルーモードにおいて、前記ホスト機器から送信されたアンロック命令を前記メモリカードに通過させ、前記メモリカードのロック状態を解除することを特徴とする半導体装置。
  2. 不揮発性半導体メモリを備え、該不揮発性半導体メモリへのアクセスが許可されるアンロック状態と、前記アクセスが禁止されるロック状態との2つの状態を備えるメモリカードに接続可能な半導体装置であって、
    前記メモリカードに接続可能とされ、前記メモリカードと通信を行う第1インターフェイスと、
    前記メモリカードへのアクセス命令を生成するホスト機器に接続可能とされ、前記ホスト機器と通信を行う第2インターフェイスと、
    前記第1インターフェイスと第2インターフェイスに接続された制御部と、を具備し、
    前記制御部は、前記第1インターフェイスに前記メモリカードが接続された際に、前記ロック状態の前記メモリカードが受け付け可能な命令を用いて前記メモリカードの状態を読み出し可能な状態とする第1初期化処理を行い、前記第1初期化処理に成功した場合、前記メモリカードからステータスデータを読み出して前記メモリカードが前記ロック状態であるか前記アンロック状態であるかを判断し、前記ロック状態であると判断された場合、前記メモリカードを正常に認識した旨の情報を前記第2インターフェイスから前記ホスト機器へ伝達することを特徴とする半導体装置。
  3. 前記第1初期化処理に成功し且つ前記メモリカードがアンロック状態であった場合、前記制御部は、前記アンロック状態の前記メモリカードが認識可能であり且つ前記ロック状態のメモリカードが認識不可能な命令を用いて、前記メモリカードを書き込み、読み出し、消去可能とするため第2初期化処理を行う
    ことを特徴とする請求項1又は2記載の半導体装置。
  4. 前記第1初期化処理に成功し且つ前記メモリカードがロック状態であった場合、前記第2初期化処理を行うことなく、前記ホスト機器への前記伝達が行われる
    ことを特徴とする請求項1乃至3のいずれかに記載の半導体装置。
  5. 通常動作モードと前記パススルーモードとを備え、
    前記通常動作モードにおいて、前記第2インターフェイスで前記ホスト機器から受信した第1命令が、命令フォーマットの異なる第2命令に変換されて前記第2インターフェイスから前記メモリカードへ出力され、
    前記パススルーモードにおいて、前記第2インターフェイスで前記ホスト機器から受信した前記第1命令内に埋め込まれた前記第2命令が、前記第2インターフェイスから前記メモリカードへ出力される
    ことを特徴とする請求項記載の半導体装置。
  6. 前記第1命令は、前記半導体装置及び前記ホスト機器において認識可能な命令フォーマットを有し、
    前記第2命令は、前記メモリカードにおいて認識可能な命令フォーマットを有し、
    前記制御部は、前記メモリカードを前記ロック状態から前記アンロック状態に移行させる旨の命令、及び前記アンロック状態から前記ロック状態へ移行させる旨の命令を、前記第1命令内に埋め込まれた前記第2命令信号として、前記ホスト機器から受信する
    ことを特徴とする請求項5記載の半導体装置。
JP2007215984A 2007-08-22 2007-08-22 半導体装置 Expired - Fee Related JP4538027B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007215984A JP4538027B2 (ja) 2007-08-22 2007-08-22 半導体装置
US12/191,569 US8108591B2 (en) 2007-08-22 2008-08-14 Semiconductor device with a first interface to connect to a memory card having a lock and unlock state and a second interface to connect to a host device and memory card intialization method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007215984A JP4538027B2 (ja) 2007-08-22 2007-08-22 半導体装置

Publications (2)

Publication Number Publication Date
JP2009048543A JP2009048543A (ja) 2009-03-05
JP4538027B2 true JP4538027B2 (ja) 2010-09-08

Family

ID=40383215

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007215984A Expired - Fee Related JP4538027B2 (ja) 2007-08-22 2007-08-22 半導体装置

Country Status (2)

Country Link
US (1) US8108591B2 (ja)
JP (1) JP4538027B2 (ja)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8959307B1 (en) 2007-11-16 2015-02-17 Bitmicro Networks, Inc. Reduced latency memory read transactions in storage devices
US9734356B2 (en) * 2009-06-29 2017-08-15 Clevx, Llc Encrypting portable media system and method of operation thereof
US8665601B1 (en) 2009-09-04 2014-03-04 Bitmicro Networks, Inc. Solid state drive with improved enclosure assembly
US8447908B2 (en) 2009-09-07 2013-05-21 Bitmicro Networks, Inc. Multilevel memory bus system for solid-state mass storage
US8560804B2 (en) 2009-09-14 2013-10-15 Bitmicro Networks, Inc. Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device
KR101547328B1 (ko) * 2009-09-25 2015-08-25 삼성전자주식회사 강유전체 메모리 소자 및 그 동작 방법
JP2013008100A (ja) * 2011-06-22 2013-01-10 Akita Univ 接続装置及び接続方法
US9372755B1 (en) 2011-10-05 2016-06-21 Bitmicro Networks, Inc. Adaptive power cycle sequences for data recovery
US9043669B1 (en) 2012-05-18 2015-05-26 Bitmicro Networks, Inc. Distributed ECC engine for storage media
KR101946368B1 (ko) 2012-11-29 2019-02-11 엘지전자 주식회사 모바일 디바이스 및 그 제어 방법
US9423457B2 (en) 2013-03-14 2016-08-23 Bitmicro Networks, Inc. Self-test solution for delay locked loops
US9875205B1 (en) 2013-03-15 2018-01-23 Bitmicro Networks, Inc. Network of memory systems
US9734067B1 (en) 2013-03-15 2017-08-15 Bitmicro Networks, Inc. Write buffering
US9672178B1 (en) 2013-03-15 2017-06-06 Bitmicro Networks, Inc. Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system
US9720603B1 (en) 2013-03-15 2017-08-01 Bitmicro Networks, Inc. IOC to IOC distributed caching architecture
US9971524B1 (en) 2013-03-15 2018-05-15 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9400617B2 (en) 2013-03-15 2016-07-26 Bitmicro Networks, Inc. Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained
US9934045B1 (en) 2013-03-15 2018-04-03 Bitmicro Networks, Inc. Embedded system boot from a storage device
US9501436B1 (en) 2013-03-15 2016-11-22 Bitmicro Networks, Inc. Multi-level message passing descriptor
US9798688B1 (en) 2013-03-15 2017-10-24 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US10120694B2 (en) 2013-03-15 2018-11-06 Bitmicro Networks, Inc. Embedded system boot from a storage device
US9842024B1 (en) 2013-03-15 2017-12-12 Bitmicro Networks, Inc. Flash electronic disk with RAID controller
US10489318B1 (en) 2013-03-15 2019-11-26 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9430386B2 (en) 2013-03-15 2016-08-30 Bitmicro Networks, Inc. Multi-leveled cache management in a hybrid storage system
US9916213B1 (en) 2013-03-15 2018-03-13 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US10025736B1 (en) 2014-04-17 2018-07-17 Bitmicro Networks, Inc. Exchange message protocol message transmission between two devices
US10055150B1 (en) 2014-04-17 2018-08-21 Bitmicro Networks, Inc. Writing volatile scattered memory metadata to flash device
US10078604B1 (en) 2014-04-17 2018-09-18 Bitmicro Networks, Inc. Interrupt coalescing
US10042792B1 (en) 2014-04-17 2018-08-07 Bitmicro Networks, Inc. Method for transferring and receiving frames across PCI express bus for SSD device
US9952991B1 (en) 2014-04-17 2018-04-24 Bitmicro Networks, Inc. Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation
US9811461B1 (en) 2014-04-17 2017-11-07 Bitmicro Networks, Inc. Data storage system
JPWO2016031414A1 (ja) 2014-08-25 2017-06-08 株式会社リコー 電子機器と接続方法
WO2016031456A1 (ja) * 2014-08-28 2016-03-03 ソニー株式会社 リーダライタ装置、情報処理装置、およびデータ転送制御方法、並びにプログラム
JP6405837B2 (ja) * 2014-09-26 2018-10-17 株式会社デンソー 車両用装置
US10719273B2 (en) * 2017-01-24 2020-07-21 Wyse Technology L.L.C. Enabling SCSI commands that are not supported by a client terminal
US10552050B1 (en) 2017-04-07 2020-02-04 Bitmicro Llc Multi-dimensional computer storage system
US20190042781A1 (en) * 2017-08-04 2019-02-07 Bitdefender IPR Management Ltd. Secure Storage Device
CN108255750B (zh) * 2018-02-01 2021-04-13 超越科技股份有限公司 一种基于国产嵌入式平台的密码模块接口的实现方法
KR20210143387A (ko) * 2020-05-20 2021-11-29 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003132305A (ja) * 2001-10-22 2003-05-09 Toshiba Corp メモリカードを制御するための装置および方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4650651B2 (ja) 2000-08-31 2011-03-16 ソニー株式会社 情報処理装置および方法、メモリカード、並びにプログラム格納媒体
US7305535B2 (en) * 2003-04-17 2007-12-04 Sandisk Corporation Memory cards including a standard security function
JP2004326425A (ja) * 2003-04-24 2004-11-18 Toshiba Corp 情報処理装置およびメモリカード
SG137706A1 (en) * 2006-05-11 2007-12-28 Chng Weng Wah Theft-deterrent mechanism and method and retail packaging employed the same

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003132305A (ja) * 2001-10-22 2003-05-09 Toshiba Corp メモリカードを制御するための装置および方法

Also Published As

Publication number Publication date
US8108591B2 (en) 2012-01-31
JP2009048543A (ja) 2009-03-05
US20090055573A1 (en) 2009-02-26

Similar Documents

Publication Publication Date Title
JP4538027B2 (ja) 半導体装置
US8386723B2 (en) System and method of host request mapping
TWI437494B (zh) 記憶卡、包含該記憶卡的記憶體系統以及其操作方法
CN108573730B (zh) 数据传输训练方法及执行该方法的数据存储装置
TWI516936B (zh) 運作模式切換方法、記憶體控制器與記憶體儲存裝置
KR101949987B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US8812756B2 (en) Method of dispatching and transmitting data streams, memory controller and storage apparatus
US9575885B2 (en) Data storage apparatus for scrambled data and management method thereof
KR102501695B1 (ko) 메모리 시스템 및 그것의 동작 방법
KR20190087072A (ko) 데이터 저장 장치, 그것의 동작 방법 및 비휘발성 메모리 장치
US10403376B2 (en) Data storage device and operating method thereof
KR102421103B1 (ko) 컨트롤러, 이를 포함하는 메모리 시스템 및 그것들의 동작 방법
US11263126B2 (en) Data storage device and operating method thereof
US20030225962A1 (en) Memory card and memory card system
JP2008027326A (ja) システムコントローラ、該システムコントローラを有するフラッシュメモリシステム、フラッシュメモリモジュールの制御方法
KR102475688B1 (ko) 불휘발성 메모리 장치, 이를 포함하는 데이터 저장 장치 및 그것의 동작 방법
KR20170109344A (ko) 데이터 저장 장치 및 그것의 동작 방법
US11237954B2 (en) Controller and data storage system having the same
KR20190093364A (ko) 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법
EP2730993B1 (en) Reset method and network device
US20160266823A1 (en) Data storage device and operating method thereof
KR102423278B1 (ko) 메모리 시스템 및 그것의 동작 방법
EP3961451B1 (en) Storage device
KR20190037659A (ko) 불휘발성 메모리 장치, 불휘발성 메모리 장치의 동작 방법 및 불휘발성 메모리 장치를 포함하는 데이터 저장 장치
EP3839776A1 (en) Storage device and a storage system including the same

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090806

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091023

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100107

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100409

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100525

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100618

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

Free format text: PAYMENT UNTIL: 20130625

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees