半導体記憶装置
【課題】 転送速度が速く、かつ、ユーザの利便性のよいメモリカード100を提供する。
【解決手段】 ホストデバイス200に接続可能なメモリカード100であって、フラッシュメモリ11と、ホストデバイス200とメモリカード100との間のデータ転送を行うホストインタフェース部15と、ホストデバイス200からのコマンドに基づき、データ転送の転送モードを変更する転送モード制御部18Bとを有し、転送モード制御部18Bは、メモリカードが対応していない転送モードへ変更するコマンドがホストデバイス200から入力された場合に、エラーコードのステータスデータをホストデバイス200に出力する。
【解決手段】 ホストデバイス200に接続可能なメモリカード100であって、フラッシュメモリ11と、ホストデバイス200とメモリカード100との間のデータ転送を行うホストインタフェース部15と、ホストデバイス200からのコマンドに基づき、データ転送の転送モードを変更する転送モード制御部18Bとを有し、転送モード制御部18Bは、メモリカードが対応していない転送モードへ変更するコマンドがホストデバイス200から入力された場合に、エラーコードのステータスデータをホストデバイス200に出力する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体メモリ部を備えた半導体記憶装置に関し、特にホストデバイスとの間のデータ転送の転送モードを変更する転送モード制御部を有する半導体記憶装置に関する。
【背景技術】
【0002】
近年、半導体記憶装置、例えば、不揮発性の半導体記憶媒体であるフラッシュメモリカードの開発が行われ、ホストデバイスであるデジタルカメラ等の情報機器の外部記憶装置として普及している。ホストデバイスが扱うデータが大容量化したことに伴い、フラッシュメモリの大容量化および高密度化が進んでいる。
【0003】
NAND型フラッシュメモリは、大容量であることを特徴とし、近年特に多く用いられるフラッシュメモリの一種である。
NAND型フラッシュメモリは、電荷蓄積層にチャネルから絶縁膜を介してトンネル電流によって注入した電荷をデジタルビットの情報格納部として用い、その電荷量に応じた電界効果トランジスタのコンダクタンス変化を測定し、情報を読み出す。NAND型フラッシュメモリは、DRAMと異なりデータ破壊を伴わずに複数回読み出すことが可能である。
【0004】
半導体記憶装置においては、書き込みおよび読み出し速度の高速化が要求されており、転送バスのバス転送速度の高速化も求められている。このため、例えば、メモリカードバスの転送クロック周波数を、ノーマルモードの25MHzから、50MHzと上げたハイスピードモードの仕様が規定され、より高速なデータ転送が可能となっている。
【0005】
さらに、特開2007−11788号公報には、より高速なデータ転送のために、ホストデバイスから供給されるクロック信号の立ち上がりエッジと立ち下がりエッジとに同期して、データを送受信することで、ハイスピードモードと同じクロック周波数で2倍のデータ転送速度を得ることができるウルトラハイスピードモードを提供するメモリカードが、開示されている。
【0006】
ここで、メモリカードは、ホストデバイスとデータ転送を行うために、予め規定された様々な転送モードに対応するように設計される。例えばSDメモリカード(登録商標)においては、SDモードとSPIモードとがある。さらに、SDモードのデータ転送バス幅には1ビットモードと、4ビットモードとの2つがある。これに加えて、前記それぞれのモードに対して、転送速度の異なるノーマルモードと、ハイスピードモードと、ウルトラハイスピードモードがある。
【0007】
多くの転送モードに対応するメモリカードはユーザの利便性が高い。しかし、それらの転送モードのすべてに適合した制御を行うためには複雑な制御が必要であり、また、メモリカードの複雑化および大型化を招いてしまう可能性があった。一方、予め規定された転送モードに対応していないメモリカードは、ホストデバイスが対応していない転送モードでデータ転送を開始しようとするとフリーズ等のエラーを起こしてしまうために、ユーザの利便性が良くはなかった。
【0008】
なお、データ転送の高速化を図るために、メモリカードの転送クロック周波数を、上げる方法もある。しかし、転送クロック周波数を、上げると、不要輻射電磁波をシールドすること、すなわち、EMI(Electro Magnetic Susceptibility)のための対策が問題となることがあった。また、転送クロック周波数を上げると、メモリカードの消費電力が増加してしまうという問題もあった。
【特許文献1】特開2007−11788号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
本発明は、転送速度が速く、かつ、ユーザの利便性のよい半導体記憶装置を提供することを目的とする。
【課題を解決するための手段】
【0010】
本願発明の一態様によれば、ホストデバイスに接続可能な半導体記憶装置であって、半導体メモリ部と、前記ホストデバイスと前記半導体記憶装置との間のデータ転送を行い、複数の転送バス幅モードおよび複数の転送クロックモードに対応したホストインタフェース部と、前記ホストデバイスからのコマンドに基づき、前記データ転送の前記転送バス幅モードおよび/または前記転送クロックモードを変更する転送モード制御部とを有し、前記転送モード制御部は、特定の前記転送バス幅モードにあるときに、その転送バス幅モードにおいては前記半導体記憶装置が対応していない特定の前記転送クロックモードへ変更する前記コマンドが前記ホストデバイスから入力された場合に、エラーコードを前記ホストデバイスに出力することを特徴とする半導体記憶装置が提供される。
【発明の効果】
【0011】
本発明は転送速度が速く、かつ、ユーザの利便性のよい半導体記憶装置を提供するものである。
【発明を実施するための最良の形態】
【0012】
<第1の実施の形態>
以下、本発明の第1の実施の形態の半導体記憶装置であるメモリカード100について図面を参照して説明する。
図1は、メモリカード100とホストデバイス200との構成を示す概略図であり、図2はメモリカード100のコネクタの機能を示す表であり、図3はメモリカード100の構成を示すブロック図である。
【0013】
図1に示すように、メモリカード100は、ホストデバイス200に装着されて使用され、ホストデバイス200の外部記憶装置として用いられるSDメモリカード(登録商標)である。ホストデバイス200としては、画像データまたは音楽データなどの各種データを処理するパーソナルコンピュータやデジタルカメラ等を含む情報処理装置が挙げられる。
【0014】
メモリカード100は、ホストデバイス200との間でデータの送受信を行う。メモリカード100は、半導体メモリ部であるフラッシュメモリ11と、フラッシュメモリ11等を制御するメモリコントローラ12と、コネクタ13(ピン1乃至ピン9を含む)とを備えている。
【0015】
コネクタ13は、メモリカード100がホストデバイス200に装着されると、ホストデバイス200と電気的に接続される。コネクタ13に含まれるピン1乃至ピン9に対する信号の割り当ては、例えば、図2に示すようになっている。なお、図2において、SDモード(1ビット、4ビット)およびSPIモードとは、後述するように、SDメモリカード(登録商標)の規格で規定されているデータ転送の動作モードである。
【0016】
データDAT0、DAT1、DAT2、DAT3はそれぞれ、ピン7、ピン8、ピン9、ピン1に割り当てられている。また、ピン1は、カード検出信号CDにも割り当てられている。コマンドCMDと、このコマンドCMDに対するメモリカード100の応答信号であるレスポンスRESは、ピン2に割り当てられている。クロック信号CLKは、ピン5に割り当てられている。電源電圧VDDはピン4に、接地電圧VSS1はピン3に、接地電圧VSS2はピン6に割り当てられている。
【0017】
次に、図3に示すように、フラッシュメモリ11は、不揮発性の半導体メモリであり、複数のNAND型のフラッシュメモリにより構成されている。ホストデバイス200から送信されたデータなどは、このフラッシュメモリ11に記憶される。
【0018】
また、コネクタ13は、バス14を介してメモリコントローラ12に接続されている。バス14は、CLKライン、CMD/RESライン、DAT0ライン、DAT1ライン、DAT2ライン、CD/DAT3ライン、VDDライン、VSS1ライン、およびVSS2ラインを含む。メモリコントローラ12は、例えば8ビットバス幅のバスを介してフラッシュメモリ11と接続されている。
【0019】
前述のように、SDメモリカード(登録商標)であるメモリカード100のデータ転送時の動作モード(以下、「転送モード」ともいう。))としては、SDモードとSPIモードとが規定されている。さらに、SDモードの転送モードには、データDAT0のみを用いる1ビットモードと、データDAT0〜DAT3を用いる4ビットモードとの2つが規定されている。なお、メモリカード100の転送モードは、転送クロック周波数等により、通常の転送速度のノーマルスピードモード(以下、「NSM」ともいう。)と、NSMの2倍のハイスピードモード(以下、「HSP」ともいう。)に加えて、HSPのさらに2倍のウルトラハイスピードモード(以下、「UHSM」ともいう。)もあるが、これについては後述する。
【0020】
4ビットバス幅単位でデータ転送を行うSDモード(SD4ビットモード)では、データ用の4つのピン1、ピン7、ピン8、ピン9がすべてデータ転送に使用される。一方、1ビットバス幅単位でデータ転送を行うSDモード(SD1ビットモード)では、ピン7のみがデータ転送に使用され、データ用のピン8、ピン9は使用されない。また、ピン1は、例えばメモリカード100からホストデバイス200への非同期割り込み等のために使用される規定となっている。
【0021】
SPIモードは、1ビットバス幅の転送モードであり、ピン7がメモリカード100からホストデバイス200へのデータ信号線(DATAOUT)に用いられる。ピン2は、ホストデバイス200からメモリカード100へのデータ信号線(DATAIN)に用いられる。ピン8、ピン9は、使用されない。また、SPIモードでは、ピン1がホストデバイス200からメモリカード100へのチップセレクト信号CSの送信に用いられる規定となっている。
【0022】
なお、SDモードを使用するか、SPIモードを使用するかは、メモリカード100の初期化時に決定される。また、SDモードの1ビットモードと4ビットモードとは、ホストからのコマンド(SET BUS WIDTH)によって選択される。
【0023】
メモリコントローラ12は、ホストインタフェース部15と、コマンド制御部16と、データ制御部17と、MPU(Micro Processing Unit)18と、ROM(Read Only Memory)19と、RAM(Random Access Memory)20と、メモリインタフェース部21とを備えている。
【0024】
ホストインタフェース部15は、コネクタ13を介してホストデバイス200と接続されており、MPU18および転送モード制御部18Bの制御のもと、所定のプロトコルに従ってコマンドあるいは各種データ等の送受信を行う機能ブロックである。
【0025】
コマンド制御部16は、ホストデバイス200から送信されるコマンドCMDを受け取り、このコマンドCMDを解釈する。また、コマンド制御部16は、コマンドCMDに対する応答信号であるレスポンスRESを生成し、このレスポンスRESをホストデバイス200に送信する。コマンド制御部16の具体的な動作は後述する。
【0026】
データ制御部17は、ホストデバイス200から送信されるコマンドCMDに基づいて、データの送受信を行う。また、データ制御部17は、メモリカード100の動作状態などを示すステータスデータ(STATUS)を生成し、このステータスデータをホストデバイス200に送信する。データ制御部17の具体的な動作は後述する。
【0027】
MPU18は、メモリカード100全体の動作を制御するものであり、後述する転送モード制御部18Bは、MPU18の一部であってもよい。MPU18は、例えばメモリカード100が電源供給を受けたときに、ROM19に格納されているファームウェア(制御プログラム)をRAM20に読み出して所定の処理を実行することにより、各種のテーブルをRAM20に作成する。また、MPU18は、ホストデバイス200から書き込みコマンド、読み出しコマンド、あるいは消去コマンド等を受け取り、フラッシュメモリ11に対して所定の処理を実行したり、データ転送処理を制御したりする。
【0028】
ROM19は、MPU18により使用される制御プログラムなどを格納するメモリである。RAM20は、MPU18の作業エリアとして使用され、制御プログラムや各種のテーブルを記憶するメモリである。メモリインタフェース部21は、メモリコントローラ12とフラッシュメモリ11との間のインタフェーイス処理を行う機能ブロックである。
【0029】
次に、図4および図5を用いて、メモリカード100の動作を説明する。初めに、メモリカード100のデータ書き込み動作について説明する。図4は、データ書き込み動作を示すタイミングチャートである。また、図4には、バス14上のコマンドおよびデータ等を示している説明図である。
【0030】
データ転送は、1つのデータブロック(例えば、512バイト)単位で行われる。また、1つのデータブロックには、例えば、10バイトの冗長部(RA)が付加されて送信される。この冗長部(RA)には、エラー検出を行うためのCRC(Cyclic Redundancy Check)コード等が含まれる。このCRCコードは、メモリコントローラ12が備えるCRC部(図示せず)により生成される。また、CRC部は、CRCコードに基づいて、エラー検出を行う。
【0031】
また、データ転送には、1つのブロック単位でデータ転送を行う1データブロック転送と、複数のブロック単位でデータ転送を行う4データブロック転送とがある。本実施形態では、マルチブロックリード動作(multiple block read operation)、およびマルチブロックライト動作(multiple block write operation)を例に説明するが、1ブロックデータ転送に適用することも可能である。
【0032】
先ず、ホストデバイス200は、データ書き込みを開始するために、ライトコマンド(W−CMD)をメモリカード100に送信する。メモリカード100は、このライトコマンド(W−CMD)を受け取る。そして、コマンド制御部16は、ライトコマンド(W−CMD)を解釈し、このライトコマンド(W−CMD)に対するレスポンス(RES)を生成する。このレスポンス(RES)は、ホストデバイス200に送信される。
【0033】
次に、ホストデバイス200は、ブロックデータをメモリカード100に送信する。コマンド制御部16は、ブロックデータを受け取った旨を示すレスポンス(RES)を生成する。さらに、データ制御部17は、ホストデバイス200から送信されたブロックデータをフラッシュメモリ11に書き込む。また、データ制御部17は、フラッシュメモリ11にデータを書き込んでいる間、ローレベルのビシー信号(busy)を生成する。このビシー信号(busy)は、DAT0ラインを介してホストデバイス200に送信される。
【0034】
同様に、ホストデバイス200から送信された複数のデータブロックのマルチブロックライト動作(multiple block write operation)が行われる。
【0035】
次に、ホストデバイス200は、データ書き込みを停止するために、ストップコマンド(S−CMD)をメモリカード100に送信する。メモリカード100は、このストップコマンド(S−CMD)を受け取る。そして、コマンド制御部16は、ストップコマンド(S−CMD)を解釈し、このストップコマンド(S−CMD)に対するレスポンス(RES)を生成する。このレスポンス(RES)は、ホストデバイス200に送信される。このようにして、メモリカード100は、データストップ動作(data stop operation)を実行する。その後、メモリカード100は、データ転送を終了する。
【0036】
次に、メモリカード100のデータ読み出し動作について説明する。図5は、データ読み出し動作を示すタイミングチャートである。図5は、バス14上のコマンドおよびデータ等を示している。
【0037】
先ず、ホストデバイス200は、データ読み出しを開始するために、リードコマンド(R−CMD)を発効し、このリードコマンド(R−CMD)をメモリカード100に送信する。メモリカード100は、このリードコマンド(R−CMD)を受け取る。そして、コマンド制御部16は、このリードコマンド(R−CMD)を解釈し、このリードコマンド(R−CMD)に対するレスポンス(RES)を生成する。このレスポンス(RES)は、コマンド制御部16により、ホストデバイス200に送信される。
【0038】
次に、データ制御部17は、フラッシュメモリ11からデータブロック(data block)を読み出す。このデータブロックは、ホストデバイス200に送信される。同様に、複数のデータブロックがホストデバイス200に送信される。
【0039】
次に、ホストデバイス200は、データ読み出し動作を停止するために、ストップコマンド(S−CMD)をメモリカード100に送信する。メモリカード100は、このストップコマンド(S−CMD)を受け取る。そして、コマンド制御部16は、ストップコマンド(S−CMD)を解釈し、このストップコマンド(S−CMD)に対するレスポンス(RES)を生成する。このレスポンス(RES)は、ホストデバイス200に送信される。このようにして、メモリカード100は、データストップ動作(data stop operation)を実行する。その後、メモリカード100は、データ転送を終了する。
【0040】
なお、図6および図7は、以上で説明した、メモリカード100の転送プロトコルの基本動作を示した図である。図6は、メモリカード100からのマルチブロックデータの読み出し動作を、図7はメモリカード100へのマルチブロックデータの書き込み動作を示している。図6および図7は、データ書き込み動作を示すタイミングチャートである。また図6および図7には、バス14上のコマンドおよびデータ等を示している。
【0041】
次に、メモリカード100のHSMおよびUHSMにおいて使用可能な、ダブルエッジモードについて、図8および図9を用いて説明する。図8は、ダブルエッジモードにおけるデータ転送およびコマンド/レスポンス転送のタイミングチャートであり、図9は、シングルエッジモードからダブルエッジモードへの切り替え動作を説明するためのタイミングチャートである。なお、図8および図9は、バス14上のコマンドおよびデータ等を示している。なお、図8において、“tCYC”は、クロックサイクルタイムを示している。
【0042】
メモリカード100では、データ転送は、クロック信号CLKの立ち上がりと立ち下がりとの両エッジを使用したダブルエッジ転送モードを行うことができる。一方、コマンド/レスポンス転送は、クロック信号CLKの立ち上がり(あるいは、立ち下がり)エッジを使用したシングルエッジ転送により行われる。
【0043】
先ず、ホストデバイス200からメモリカード100にデータが入力される書き込み動作(DAT0〜3(入力))について説明する。ホストデバイス200は、クロック信号CLKの立ち上がりと立ち下がりとの両エッジを用いてデータを送信する。この際、ホストデバイス200は、所定のプロトコルに従ったセットアップタイムtDVSとホールドタイムtDVHとを満足するように、データ転送を行う。データ制御部17は、ホストデバイス200からダブルエッジ転送により送信されたデータを、クロック信号CLKの立ち上がりと立ち下がりとの両エッジで取り込む。そして、この取り込んだデータをフラッシュメモリ11に書き込む。
【0044】
次に、メモリカード100からホストデバイス200にデータが出力される読み出し動作(DAT0〜3(出力))について説明する。データ制御部17は、クロック信号CLKの立ち上がりと立ち下がりとの両エッジを用いてデータを送信する。この際、データ制御部17は、所定のプロトコルに従ったセットアップタイムtDSとホールドタイムtDHとを満足するように、データ転送を行う。ホストデバイス200は、メモリカード100からダブルエッジ転送により送信されたデータを、クロック信号CLKの立ち上がりと立ち下がりとの両エッジで取り込む。
【0045】
次に、ホストデバイス200からメモリカード100へのコマンドCMD転送動作(CMD(入力))について説明する。ホストデバイス200は、コマンドCMDを発行する。そして、ホストデバイス200は、クロック信号CLKの立ち上がりエッジのみを用いてコマンドCMDをメモリカード100に送信する。この際、ホストデバイス200は、所定のプロトコルに従ったセットアップタイムtCVSとホールドタイムtCVHとを満足するように、コマンドCMDの転送を行う。コマンド制御部16は、ホストデバイス200からシングルエッジ転送により送信されたコマンドCMDを、クロック信号CLKの立ち上がりエッジのみを用いて取り込む。
【0046】
次に、メモリカード100からホストデバイス200へのレスポンスRES転送動作(RES(出力))について説明する。コマンド制御部16は、ホストデバイス200から送信されたコマンドCMDに対するレスポンスRESを生成する。そして、コマンド制御部16は、クロック信号CLKの立ち上がりエッジのみを用いてレスポンスRESをホストデバイス200に送信する。この際、コマンド制御部16は、所定のプロトコルに従ったセットアップタイムtCSとホールドタイムtCHとを満足するように、レスポンスRES転送を行う。ホストデバイス200は、メモリカード100からシングルエッジ転送により送信されたレスポンスRESを、クロック信号CLKの立ち上がりエッジのみを用いて取り込む。
【0047】
このように、本実施形態では、コマンド/レスポンスをクロック信号CLKの立ち上がりエッジのみを用いて転送する。一方、データをクロック信号CLKの立ち上がりと立ち下がりとの両エッジを用いて転送する。
【0048】
このようにしてデータ転送およびコマンド/レスポンス転送を行うことにより、複雑な処理が要求され、かつタイミング条件の厳しいCMDラインの信号は、従来と同様の部を使用することができ、また、メモリカードの設定および実装が容易となる。これに対して、マルチブロックデータ転送などで、実用上のデータ転送速度を決めるDAT0〜3ラインに対しては、クロック信号CLKの2倍の速度での転送が可能になり、実用上のデータ転送速度が大きく向上する。なお、マルチブロック転送の場合、CMDラインは、プロトコルの最初のコマンドおよびレスポンスの転送に用いられるだけなので、シングルエッジモードであっても、実用上のデータ転送速度には大きな影響はない。
【0049】
なお、シングルエッジモードとダブルエッジモードとの切り替え動作は、図9に示すように、ホストデバイス200が発行するスイッチコマンド(SW−CMD)によって行われる。スイッチコマンド(SW−CMD)は、例えばチェックファンクションとセットファンクションとの2つのモードで使用することができる。例えばモード0は、チェックファンクションとして使用され、モード1はセットファンクションとして使用される。モードは、コマンド中の図示せぬモードビットにデータ“0”または“1”を設定することにより切り替えられる。
【0050】
ホストデバイス200がメモリカード100をアクセスする場合、ホストデバイス200は、当該ホストデバイス200に接続されているメモリカード100がどのような仕様であるかを認識する必要がある。このため、ホストデバイス200は、メモリカード100の仕様を認識するため、スイッチコマンド(SW−CMD)をモード0のチェックファンクションに設定してメモリカード100に供給し、メモリカード100から返送されたステータスデータ(STATUS)によりメモリカード100の仕様を認識する。
【0051】
そして、メモリカード100がダブルエッジモードをサポートしている場合、ホストデバイス200は、スイッチコマンド(SW−CMD)をモード1のセットファンクションに設定してメモリカード100に供給し、メモリカード100の機能(本実施形態では、ダブルエッジモード)を設定する。以後、ホストデバイス200は、メモリカード100に対してダブルエッジモードでのデータ転送を実行する。
【0052】
次に、図10を用いて、メモリカード100の転送モードについて説明する。図10は、メモリカード100の転送モードについて説明するための表である。
【0053】
図10はメモリカードにおいて、ホストデバイス200から、転送モードを変更するコマンドが発行された場合の、転送モードの移行を示している。すなわち、移行元とは現在あるいは初期化時のメモリカードの転送モードであり、移行先とは転送モード変更後の転送モードである。
【0054】
前述のように、メモリカード100は、転送モードとして、ノーマルスピードモード(NSM)、ハイスピードモード(HSP)および、ウルトラハイスピードモード(UHSM)に対応している。NSMの転送クロック周波数は25MHzであるが、HSM、およびUHSMでは50MHzである。そして、UHSMでは50MHzの転送クロック周波数においてダブルエッジモードでの動作を行う。
【0055】
しかし、すでに規定されている転送モードに、UHSMの転送モードが加わると、転送モードの種類は非常に多くなる。すなわち、図8に示すように、転送モードの種類は、NSM―SD(1ビット)、NSM―SD(4ビット)、NSM−SPI、HSM―SD(1ビット)、HSM―SD(4ビット)、HSM−SPI、UHSM―SD(1ビット)、UHSM―SD(4ビット)、そして、UHSM―SPI、の9モードある。しかし、メモリカード100は、UHSMにおいては、転送モードとして、4ビットバス幅転送モード(SD44ビットモード)のみに対応し、1ビットバス幅転送モード(SPIモードおよびSD1ビットモード)には対応しない。UHSMは非常に高速な転送を目的としたものであり、転送バス幅の狭いSPIモードおよびSD1ビットモードではその意味がなく、それをサポートする場合はメモリカードのコントローラの開発において不要な開発コストや検証コストが必要となり、メモリカードの複雑化を招いてしまうためである。
【0056】
NSM、HSM、およびUHSMの間で、転送モードを変更するには、メモリカード100にスイッチコマンド(SW−CMD)を発行する。メモリカード100のコマンド制御部16は、スイッチコマンド(SW−CMD)を解釈すると、コマンド制御部16は、クロック信号CLKの立ち上がりエッジに同期して、レスポンスRESをホストデバイス200に送信する。
【0057】
さらに、コマンド制御部16は、スイッチコマンド(SW−CMD)に基づいて、メモリカード100をNSM、HSM、またはUHSMのいずれかの転送モードに設定する。また、データ制御部17は、転送モードへの切り替えを受け付けた旨のステータスデータ(STATUS)をホストデバイス200にDATラインを使用して送信する。
【0058】
そして、メモリカード100においては、SPIモードまたはSD1ビットモードにあるときに、ホストデバイス200から、UHSMモード(SPIモードまたはSD1ビットモード)へ転送モードを変更するスイッチコマンドが発行された(図10:不可)場合には、転送モード制御部18Bが、転送モードを移行しなかったというエラーコードのステータスデータを、1ビットバス幅のバス(SD1ビットモードまたはSPIモード)を用いて、ホストデバイス200に出力する。
【0059】
ホストデバイス200は、エラーコードのステータスデータを受信することにより、メモリカード100が指定した転送モードに対応していないことを認識することができる。このため、ホストデバイス200は、転送モードを別のモードに変更する等の対応を取ることができるため、フリーズ等のエラーを起こすことがない。このため、メモリカード100は、転送速度が速く、かつ、ユーザの利便性が良い。さらに、メモリカード100は、制御が簡単であり、メモリカードの複雑化および大型化を招くことがない。
【0060】
<第2の実施の形態>
以下、本発明の第2の実施の形態のメモリカード100Bについて説明する。なお、メモリカード100Bの構成等は、第1の実施の形態のメモリカード100と類似しているため、同じ構成要素には同じ符号を付し説明は省略する。
【0061】
SD1ビットモードにあるときに、UHSMの転送モードへ変更するコマンドがホストデバイス200から入力された場合に、メモリカード100においては、転送モード制御部18Bは、転送モードを移行しなかったというエラーコードのステータスデータをホストデバイス200に出力する。これに対して、メモリカード100Bにおいては、SD1ビットモードにあるときに、UHSMの転送モードへ変更するコマンドがホストデバイス200から入力された場合に、転送モード制御部18Bは、UHSM-4ビットバス幅の転送モードに変更する。
【0062】
図11は、メモリカード100Bにおける転送モード制御部18Bの動作の流れを説明するためのフローチャートである。以下、図11に従い、メモリカード100BにおけるUHSMへの移行の際の転送モード制御部18Bのバス幅モード制御動作の流れを説明する。
【0063】
<ステップS10>
ホストデバイス200から、UHSMモード(SD−4bit)への移行のためのスイッチコマンドが発行された場合における転送モード制御部18Bのバス幅モード制御動作の流れを説明する。
【0064】
<ステップS11、S12>
現在のモードが、SPIモードであった場合、転送モード制御部18Bは、、ステップS12において、SPIモードには移行しなかったというエラーコードのステータスデータをSPIモードでホストデバイス200に送信する。
【0065】
<ステップS13、S14、S15>
現在のモードが、SD1ビットモードであった場合、転送モード制御部18Bは、ステップS14において、UHSMに移行したというレスポンス(ステータス)をSD1ビットモードでホストデバイス200に送信する。レスポンスの送出が完了した後、、転送モード制御部18Bは、ステップS15において、UHSMに移行する。
【0066】
上記の場合、バス幅の変更と、転送速度の変更とが、ホストデバイス200からのひとつのコマンドにより制御されている。また、スイッチコマンドのレスポンス(ステータス)を1ビットモードで返し、次のコマンドから4ビットモードに移行することにより、コマンド単位でのバス幅の変更タイミングが明確となり、ホストデバイス200のバス幅変更制御が容易となる。
【0067】
<ステップS16、S17、S18>
現在のモードが、SD4ビットモードであった場合、転送モード制御部18Bは、ステップS17において、UHSMに移行し、ステップS8において、UHSMに移行し、UHSMに移行したというレスポンスをSD4ビットモードでホストデバイス200に送信する。
【0068】
<ステップS19>
スイッチコマンドが上記のいずれでも無い場合は、転送モード制御部18Bは、エラーコードのステータスデータを現在のモードでホストデバイス200に送信する。
【0069】
本実施の形態のメモリカード100Bにおいては、対応していない1ビットバス幅の転送モードへ変更するコマンドがホストデバイス200から入力された場合であっても、転送モード制御部18Bが、対応可能な4ビットバス幅の転送モードに変更するため、処理速度が速く、かつ、ホストデバイス側の制御も容易で利便性が良い。
【0070】
また、スイッチコマンドのステータスを1ビットモードで返し、次のコマンドから4ビットモードに移行することにより、ホストにとってはコマンド単位でのバス幅の変更タイミングが明確になり、ホストコントローラ側のバス幅変更制御がやりやすくなる。
【0071】
なお、メモリカード100Bにおいて、UHSMからNSMまたはHSMへの移行も、ホストデバイス200からのスイッチコマンドにより実行される。この場合、NSMまたはHSMへの移行後も、バス幅は4bitのままである。
【0072】
<第3の実施の形態>
以下、本発明の第3の実施の形態のメモリカード100Cについて図12および図13を参照して説明する。図12は、本実施の形態のメモリカード100Cの構成を示すブロック図であり、図13は、転送モード制御部18B等の構成を示すブロック図である。なお、メモリカード100Cの構成等は、第1の実施の形態のメモリカード100と類似しているため、同じ構成要素には同じ符号を付し説明は省略する。
【0073】
メモリカード100Cにおいては、UHSMにおいても、ダブルエッジモードではなく、シングルエッジモードである。しかし、転送クロック周波数を例えばHSMの50MHzに対して、100MHzと高くすることで、メモリカード100Cは、UHSMに対応している。
【0074】
コマンド制御部16は、クロック信号CLKのエッジに同期して、データ転送を行うため、転送クロック周波数を2倍にすれば転送速度を2倍に、転送クロック周波数を4倍にすれば転送速度を4倍にすることができる。しかしながら、前述のように、転送クロック周波数を上げると、EMIのための対策が問題となることがあり、かつ、メモリカードの消費電力が増加してしまうという問題もある。
【0075】
このため、図12に示すように、メモリカード100Cにおいては、転送信号の電圧を調整するためのレギュレータ22を有している。そして、レギュレータ22は、転送クロック周波数の異なる転送モードに応じて、異なる駆動電圧をホストインタフェース部15に供給する。
【0076】
次に、図13を用いて、メモリカード100Cの転送モード部18Bの構成をより詳細に説明する。図13に示すように、転送モード部18Bは、バスモード制御部18B1と、バス電圧制御部18B2と、バスモード変更制御部18B3とを有し、コマンド制御回路16は、スイッチコマンドステータスレジスタ16Aを有している。また、ホストインターフェイス部15には、NSMおよびHSM対応インタフェイス制御部15AとUHSM対応インタフェイス制御部15Bとを有している。
【0077】
転送モード制御部18Bのバスモード変更制御部18B3は、ホストデバイス200からバスを介してスイッチコマンドの入力を受けると、、バスモード制御部18B1、バス電圧制御部18B2、NSMおよびHSM対応インタフェイス制御部15A、UHSM対応インタフェイス制御部15B等の設定を制御する。そして、バス電圧制御部18B2はレギュレータ22により駆動電圧を制御し、バスモード変更制御部18B3は、スイッチコマンドステータスレジスタ16Aに、スイッチコマンドの結果のプラグを設定してホストインターフェイス部15にレスポンスする。
【0078】
図14に、スイッチコマンド発行の際の、コマンドプロトコルを示す。
図14(A)に示すように、スイッチコマンドのパラメータとして24bitのコマンドパラメータが発行される。このパラメータで、バススピードモード ( Bus Accesses Mode )とバス電圧モード ( Bus Voltage Mode )とが、それぞれのパラメータフィールドで独立に指定される。メモリカード100Cは、このコマンドとコマンドパラメータを受けて動作モードを移行する。
【0079】
メモリカード100Cは、スイッチコマンドに対する受入れ状況を512bitのステータスデータとしてホストデバイス200に出力する。
【0080】
次に、図14(B)に、スイッチコマンド発行時のステータスデータを示す。このステータスデータ中に、次のコマンド受付におけるバススピードモード( Bus Accesses Mode )とバス電圧モード ( Bus Voltage Mode )とが、それぞれのフィールドでホストデバイス200に示される。
【0081】
例えば、UHM移行がホストデバイス200から指示された場合、メモリカード100CがUHMに移行可能な場合には移行後の状態がステータスデータで示される。メモリカード100CがUHMに移行不可能な場合には移行不可能を示すステータスデータが、メモリカード100Cからホストデバイス200に送信される。
【0082】
なお、図15に示すように、スイッチコマンド発行の際の、コマンドプロトコルにおいては、バススピードモードとバス電圧モードを、ひとつのフィールドで定義する方式を用いることもできる。
【0083】
メモリカード100Cにおいては、多くのホストデバイスが対応している標準の3.3V/IOモードに加えて、より低電圧である1.8V/IOモードによるデータ転送が可能である。バス電圧制御部18B2は、転送クロック周波数がより高い転送モードにおいては、より低電圧の駆動電圧をホストインタフェース部15に供給するようにレギュレータ22を制御する。
【0084】
以下、メモリカード100Cにおける転送モードおよびレギュレータ22が供給する駆動電圧の変更処理について説明する。
【0085】
(1) メモリカード100Cの初期化後の初期状態では、NSMの3.3V/IOモードとなっている。
【0086】
(2) 3.3V/IOモードで、かつNSMまたはHSMにあるメモリカード100Cに対して、NSMまたはHSMへの移行と、3.3V/IOモードから、1.8V/IOモードへの変更指示が、ホストデバイス200からスイッチコマンドにより発行されると、メモリカード100Cは、1.8V/IOモードへの移行が正常に終了したステータスを3.3V/IOモードでホストデバイス200に返す。そして、レギュレータ22は、駆動電圧を1.8Vに変更して、メモリカード100Cは、以後のデータ送受信を1.8V/IOモードで実行する。
【0087】
(3) 1.8V/IOモードで、かつNSMまたはHSMにあるメモリカード100Cに対して、NSMまたはHSMへの移行と、1.8V/IOモードから、3.3V/IOモードへの変更指示が、ホストデバイス200からスイッチコマンドにより発行されると、メモリカード100Cは、3.3V/IOモードへの移行が正常に終了したステータスを1.8V/IOモードでホストデバイス200に返す。そして、レギュレータ22は、駆動電圧を3.3Vに変更して、メモリカード100Cは、以後のデータ送受信を3.3V/IOモードで実行する。
【0088】
(4) 3.3V/IOモードで、かつNSMまたはHSMにあるメモリカード100Cに対して、UHSMへの変更指示と、3.3V/IOモードから1.8V/IOモードへの変更指示が、ホストデバイス200からスイッチコマンドにより発行されると、メモリカード100Cは、すでに説明したように、転送モード制御部18Bが転送モードを変更し、さらに上述のように、レギュレータ22は1.8V/IOモードに移行する。すなわち、メモリカード100Cは、スイッチコマンドに対して移行完了のステータスを移行前のモードで送信した後に、UHSM:1.8V/IOモードに移行し、以後のデータ送受信を、UHSM:1.8V/IOモードで実行する。
【0089】
(5) 3.3C/IOモードで、かつ、NSMまたはHSMにあるメモリカード100Cに対して、UHSMへの変更指示と、3.3V/IOモードへの変更指示が、ホストデバイス200からスイッチコマンドにより発行されると、、メモリカード100Cは、移行不可能のステータスを返し、モード変更をしない。
【0090】
(6) 1.8V/IOモードで、かつNSMまたはHSMにあるメモリカード100Cに対して、UHSMへの変更指示が、ホストデバイス200からスイッチコマンドにより発行されると、メモリカード100Cは、すでに説明したように、転送モード制御部18Bが転送モードを変更し、UHSMに移行し、以後のデータ送受信を、UHSM:1.8V/IOモードで実行する。
【0091】
(7) UHSM:1.8V/IOモードのメモリカード100Cに対して、ホストデバイス200から3.3V/IOモードへの移行のための変更指示が、スイッチコマンドにより発行されると、メモリカード100Cは、移行不可能のステータスデータを返し、モード変更は行わない。メモリカード100CはUHSMにおいては、低電圧である1.8V/IOモードのみに対応しているためである。しかし、ホストデバイス200は、ステータスデータを受信することにより、転送モードを変更する等の対応を取ることができるため、フリーズ等のエラーを起こすことがない。
【0092】
(8) UHSM:1.8V/IOモードのメモリカード100Cに対して、ホストデバイス200からNSMまたはHSMへの移行と、3.3V/IOモードまたは1.8V/IOモードへの移行のためのスイッチコマンドにより発行されると、メモリカード100Cは、すでに説明したように、転送モード制御部18Bが転送モードを変更を行うとともに、指定された3.3V/IOモードまたは1.8V/IOモードに移行する。メモリカード100Cは、NSMまたはHSMへの移行が正常に終了したステータスを移行前のモードでホストデバイス200に返す。そして、メモリカード100Cは、以後のデータ送受信を新しいモードで実行する。
【0093】
メモリカード100Cは、レギュレータ22が、転送クロック周波数のより高い転送モードに応じて、より低い駆動電圧をホストインタフェース部15に供給する。このため、メモリカード100Cは、第1の実施の形態のメモリカード100が有する効果に加えて、高い転送クロック周波数の転送モードにおいても、ノイズ発生が少なく、かつメモリカード100Cの消費電力が少ない。
【0094】
なお、メモリカード100Cにおいては、UHSMを100MHz、かつ、ダブルエッジモードで、1.8V/IOモードとして、さらに高速なデータ転送モードとしてもよい。
【0095】
<第3の実施の形態の変形例>
次に、本発明の第3の実施の形態の変形例のメモリカード100Dについて説明する。なお、メモリカード100Dの構成等は、第3の実施の形態のメモリカード100Cと類似しているため、同じ構成要素には同じ符号を付し説明は省略する。
【0096】
メモリカード100Dにおいては、メモリカードの構成等をより簡単にするため、UHSMにおいては、低電圧である1.8V/IOモードのみに対応する仕様し、かつ、NSMおよびHSMにおいては、標準の3.3V/IOモードのみに対応する仕様としている。
【0097】
以下、メモリカード100Dにおける転送モードおよびレギュレータ22が供給する駆動電圧の変更処理について説明する。
【0098】
(1) メモリカード100Dの初期化後の初期状態では、NSMの3.3V/IOモードとなっている。
【0099】
(2) 3.3V/IOモードで、かつNSMまたはHSMにあるメモリカード100Dに対して、UHSMへの変更指示が、ホストデバイス200からスイッチコマンドにより発行されると、メモリカード100Dは、すでに説明したように、転送モード制御部18Bが転送モードを変更すると共に、レギュレータ22は、駆動電圧を1.8Vに変更して、UHSMに移行する。
【0100】
メモリカード100Dは、スイッチコマンドに対して、移行完了のステータスを移行前のモードで送信した後に、UHSM:1.8V/IOモードに移行し、メモリカード100Cは、以後のデータ送受信をUHSM:1.8V/IOモードで実行する。
【0101】
(3) UHSM:1.8V/IOモードのメモリカード100Cに対して、ホストデバイス200からNSMまたはHSMへの移行のための変更指示が、スイッチコマンドにより発行されると、メモリカード100Cは、すでに説明したように、転送モード制御部18Bが転送モードを変更すると共に、レギュレータ22は、駆動電圧を3.3Vに変更して、NSMまたはHSMに移行する。
【0102】
メモリカード100Dは、スイッチコマンドに対して、移行完了のステータスを移行前のモードで送信した後に、3.3V/IOモードで、かつNSMまたはHSMに移行し、メモリカード100Dは、以後のデータ送受信を3.3V/IOモードで、かつNSMまたはHSMで実行する。
【0103】
(4) NSM、HSM、またはUHSMのいずれにおいても、メモリカード100Dは、レギュレータ22の、駆動電圧のみを変更するスイッチコマンドに対しては、移行不可能のエラーコードのステータスデータを返し、モード変更は行わない。
【0104】
なお、メモリカード100Dは、NSMまたはHSMは、3.3V/IOモードのみをサポートしているため、スイッチコマンドのパラメータには、前述したバス電圧モード( Bus Voltage Mode )の指定フィールドは不要である。
【0105】
本実施の形態のメモリカード100Dは、第3の実施の形態のメモリカード100Cが有する効果に加えて、制御が簡単であり、メモリカードの複雑化および大型化を招くことがない。
【0106】
なお、本実施形態ではSDメモリカード(登録商標)を一例として説明したが、同様のバス構造を持つ半導体記憶装置であれば、他のメモリカード、メモリデバイスまたは内部メモリ等にも適用可能であり、メモリカード100等と同様の作用効果を奏することができる。
【0107】
また、本発明は、上述した実施の形態および変形例に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【図面の簡単な説明】
【0108】
【図1】第1の実施の形態にかかるメモリカードとホストデバイスとの構成を示す概略図である。
【図2】第1の実施の形態にかかるメモリカードのコネクタの機能を示す表である。
【図3】第1の実施の形態にかかるメモリカードの構成を示すブロック図である。
【図4】第1の実施の形態にかかるメモリカードのデータ書き込み動作を示すタイミングチャートである。
【図5】第1の実施の形態にかかるメモリカードのバス上のコマンドおよびデータ等を示している説明図である。
【図6】第1の実施の形態にかかるメモリカードのマルチブロックデータの読み出し動作の転送プロトコルの基本動作を示した図である。
【図7】第1の実施の形態にかかるメモリカードのマルチブロックデータの書き込み動作の転送プロトコルの基本動作を示した図である。
【図8】第1の実施の形態にかかるメモリカードのダブルエッジモードにおけるデータ転送およびコマンド/レスポンス転送のタイミングチャートである。
【図9】第1の実施の形態にかかるメモリカードのシングルエッジモードからダブルエッジモードへの切り替え動作を説明するためのタイミングチャートである。
【図10】第1の実施の形態にかかるメモリカードの転送モードについて説明するための表である。
【図11】第2の実施の形態にかかるメモリカードの転送モード制御部の動作の流れを説明するためのフローチャートである。
【図12】第3の実施の形態にかかるメモリカードの構成を示すブロック図である。
【図13】第3の実施の形態にかかるメモリカードの転送モード制御部18B等の構成を示すブロック図である。
【図14】スイッチコマンド発行の際の、コマンドプロトコルを示す説明図である。
【図15】スイッチコマンド発行の際の、コマンドプロトコルを示す説明図である。
【符号の説明】
【0109】
11…フラッシュメモリ、12…メモリコントローラ、13…コネクタ、14…バス、15…ホストインタフェース部、15A…NSMおよびHSM対応インタフェイス制御部、15B…UHSM対応インタフェイス制御部、16…コマンド制御部、16A…スイッチコマンドステータスレジスタ、17…データ制御部、18B…転送モード制御部、18B1…バスモード制御部、18B2…バス電圧制御部、18B3…バスモード変更制御部、21…メモリインタフェース部、22…レギュレータ、100…メモリカード、100B…メモリカード、100C…メモリカード、100D…メモリカード、200…ホストデバイス
【技術分野】
【0001】
本発明は、半導体メモリ部を備えた半導体記憶装置に関し、特にホストデバイスとの間のデータ転送の転送モードを変更する転送モード制御部を有する半導体記憶装置に関する。
【背景技術】
【0002】
近年、半導体記憶装置、例えば、不揮発性の半導体記憶媒体であるフラッシュメモリカードの開発が行われ、ホストデバイスであるデジタルカメラ等の情報機器の外部記憶装置として普及している。ホストデバイスが扱うデータが大容量化したことに伴い、フラッシュメモリの大容量化および高密度化が進んでいる。
【0003】
NAND型フラッシュメモリは、大容量であることを特徴とし、近年特に多く用いられるフラッシュメモリの一種である。
NAND型フラッシュメモリは、電荷蓄積層にチャネルから絶縁膜を介してトンネル電流によって注入した電荷をデジタルビットの情報格納部として用い、その電荷量に応じた電界効果トランジスタのコンダクタンス変化を測定し、情報を読み出す。NAND型フラッシュメモリは、DRAMと異なりデータ破壊を伴わずに複数回読み出すことが可能である。
【0004】
半導体記憶装置においては、書き込みおよび読み出し速度の高速化が要求されており、転送バスのバス転送速度の高速化も求められている。このため、例えば、メモリカードバスの転送クロック周波数を、ノーマルモードの25MHzから、50MHzと上げたハイスピードモードの仕様が規定され、より高速なデータ転送が可能となっている。
【0005】
さらに、特開2007−11788号公報には、より高速なデータ転送のために、ホストデバイスから供給されるクロック信号の立ち上がりエッジと立ち下がりエッジとに同期して、データを送受信することで、ハイスピードモードと同じクロック周波数で2倍のデータ転送速度を得ることができるウルトラハイスピードモードを提供するメモリカードが、開示されている。
【0006】
ここで、メモリカードは、ホストデバイスとデータ転送を行うために、予め規定された様々な転送モードに対応するように設計される。例えばSDメモリカード(登録商標)においては、SDモードとSPIモードとがある。さらに、SDモードのデータ転送バス幅には1ビットモードと、4ビットモードとの2つがある。これに加えて、前記それぞれのモードに対して、転送速度の異なるノーマルモードと、ハイスピードモードと、ウルトラハイスピードモードがある。
【0007】
多くの転送モードに対応するメモリカードはユーザの利便性が高い。しかし、それらの転送モードのすべてに適合した制御を行うためには複雑な制御が必要であり、また、メモリカードの複雑化および大型化を招いてしまう可能性があった。一方、予め規定された転送モードに対応していないメモリカードは、ホストデバイスが対応していない転送モードでデータ転送を開始しようとするとフリーズ等のエラーを起こしてしまうために、ユーザの利便性が良くはなかった。
【0008】
なお、データ転送の高速化を図るために、メモリカードの転送クロック周波数を、上げる方法もある。しかし、転送クロック周波数を、上げると、不要輻射電磁波をシールドすること、すなわち、EMI(Electro Magnetic Susceptibility)のための対策が問題となることがあった。また、転送クロック周波数を上げると、メモリカードの消費電力が増加してしまうという問題もあった。
【特許文献1】特開2007−11788号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
本発明は、転送速度が速く、かつ、ユーザの利便性のよい半導体記憶装置を提供することを目的とする。
【課題を解決するための手段】
【0010】
本願発明の一態様によれば、ホストデバイスに接続可能な半導体記憶装置であって、半導体メモリ部と、前記ホストデバイスと前記半導体記憶装置との間のデータ転送を行い、複数の転送バス幅モードおよび複数の転送クロックモードに対応したホストインタフェース部と、前記ホストデバイスからのコマンドに基づき、前記データ転送の前記転送バス幅モードおよび/または前記転送クロックモードを変更する転送モード制御部とを有し、前記転送モード制御部は、特定の前記転送バス幅モードにあるときに、その転送バス幅モードにおいては前記半導体記憶装置が対応していない特定の前記転送クロックモードへ変更する前記コマンドが前記ホストデバイスから入力された場合に、エラーコードを前記ホストデバイスに出力することを特徴とする半導体記憶装置が提供される。
【発明の効果】
【0011】
本発明は転送速度が速く、かつ、ユーザの利便性のよい半導体記憶装置を提供するものである。
【発明を実施するための最良の形態】
【0012】
<第1の実施の形態>
以下、本発明の第1の実施の形態の半導体記憶装置であるメモリカード100について図面を参照して説明する。
図1は、メモリカード100とホストデバイス200との構成を示す概略図であり、図2はメモリカード100のコネクタの機能を示す表であり、図3はメモリカード100の構成を示すブロック図である。
【0013】
図1に示すように、メモリカード100は、ホストデバイス200に装着されて使用され、ホストデバイス200の外部記憶装置として用いられるSDメモリカード(登録商標)である。ホストデバイス200としては、画像データまたは音楽データなどの各種データを処理するパーソナルコンピュータやデジタルカメラ等を含む情報処理装置が挙げられる。
【0014】
メモリカード100は、ホストデバイス200との間でデータの送受信を行う。メモリカード100は、半導体メモリ部であるフラッシュメモリ11と、フラッシュメモリ11等を制御するメモリコントローラ12と、コネクタ13(ピン1乃至ピン9を含む)とを備えている。
【0015】
コネクタ13は、メモリカード100がホストデバイス200に装着されると、ホストデバイス200と電気的に接続される。コネクタ13に含まれるピン1乃至ピン9に対する信号の割り当ては、例えば、図2に示すようになっている。なお、図2において、SDモード(1ビット、4ビット)およびSPIモードとは、後述するように、SDメモリカード(登録商標)の規格で規定されているデータ転送の動作モードである。
【0016】
データDAT0、DAT1、DAT2、DAT3はそれぞれ、ピン7、ピン8、ピン9、ピン1に割り当てられている。また、ピン1は、カード検出信号CDにも割り当てられている。コマンドCMDと、このコマンドCMDに対するメモリカード100の応答信号であるレスポンスRESは、ピン2に割り当てられている。クロック信号CLKは、ピン5に割り当てられている。電源電圧VDDはピン4に、接地電圧VSS1はピン3に、接地電圧VSS2はピン6に割り当てられている。
【0017】
次に、図3に示すように、フラッシュメモリ11は、不揮発性の半導体メモリであり、複数のNAND型のフラッシュメモリにより構成されている。ホストデバイス200から送信されたデータなどは、このフラッシュメモリ11に記憶される。
【0018】
また、コネクタ13は、バス14を介してメモリコントローラ12に接続されている。バス14は、CLKライン、CMD/RESライン、DAT0ライン、DAT1ライン、DAT2ライン、CD/DAT3ライン、VDDライン、VSS1ライン、およびVSS2ラインを含む。メモリコントローラ12は、例えば8ビットバス幅のバスを介してフラッシュメモリ11と接続されている。
【0019】
前述のように、SDメモリカード(登録商標)であるメモリカード100のデータ転送時の動作モード(以下、「転送モード」ともいう。))としては、SDモードとSPIモードとが規定されている。さらに、SDモードの転送モードには、データDAT0のみを用いる1ビットモードと、データDAT0〜DAT3を用いる4ビットモードとの2つが規定されている。なお、メモリカード100の転送モードは、転送クロック周波数等により、通常の転送速度のノーマルスピードモード(以下、「NSM」ともいう。)と、NSMの2倍のハイスピードモード(以下、「HSP」ともいう。)に加えて、HSPのさらに2倍のウルトラハイスピードモード(以下、「UHSM」ともいう。)もあるが、これについては後述する。
【0020】
4ビットバス幅単位でデータ転送を行うSDモード(SD4ビットモード)では、データ用の4つのピン1、ピン7、ピン8、ピン9がすべてデータ転送に使用される。一方、1ビットバス幅単位でデータ転送を行うSDモード(SD1ビットモード)では、ピン7のみがデータ転送に使用され、データ用のピン8、ピン9は使用されない。また、ピン1は、例えばメモリカード100からホストデバイス200への非同期割り込み等のために使用される規定となっている。
【0021】
SPIモードは、1ビットバス幅の転送モードであり、ピン7がメモリカード100からホストデバイス200へのデータ信号線(DATAOUT)に用いられる。ピン2は、ホストデバイス200からメモリカード100へのデータ信号線(DATAIN)に用いられる。ピン8、ピン9は、使用されない。また、SPIモードでは、ピン1がホストデバイス200からメモリカード100へのチップセレクト信号CSの送信に用いられる規定となっている。
【0022】
なお、SDモードを使用するか、SPIモードを使用するかは、メモリカード100の初期化時に決定される。また、SDモードの1ビットモードと4ビットモードとは、ホストからのコマンド(SET BUS WIDTH)によって選択される。
【0023】
メモリコントローラ12は、ホストインタフェース部15と、コマンド制御部16と、データ制御部17と、MPU(Micro Processing Unit)18と、ROM(Read Only Memory)19と、RAM(Random Access Memory)20と、メモリインタフェース部21とを備えている。
【0024】
ホストインタフェース部15は、コネクタ13を介してホストデバイス200と接続されており、MPU18および転送モード制御部18Bの制御のもと、所定のプロトコルに従ってコマンドあるいは各種データ等の送受信を行う機能ブロックである。
【0025】
コマンド制御部16は、ホストデバイス200から送信されるコマンドCMDを受け取り、このコマンドCMDを解釈する。また、コマンド制御部16は、コマンドCMDに対する応答信号であるレスポンスRESを生成し、このレスポンスRESをホストデバイス200に送信する。コマンド制御部16の具体的な動作は後述する。
【0026】
データ制御部17は、ホストデバイス200から送信されるコマンドCMDに基づいて、データの送受信を行う。また、データ制御部17は、メモリカード100の動作状態などを示すステータスデータ(STATUS)を生成し、このステータスデータをホストデバイス200に送信する。データ制御部17の具体的な動作は後述する。
【0027】
MPU18は、メモリカード100全体の動作を制御するものであり、後述する転送モード制御部18Bは、MPU18の一部であってもよい。MPU18は、例えばメモリカード100が電源供給を受けたときに、ROM19に格納されているファームウェア(制御プログラム)をRAM20に読み出して所定の処理を実行することにより、各種のテーブルをRAM20に作成する。また、MPU18は、ホストデバイス200から書き込みコマンド、読み出しコマンド、あるいは消去コマンド等を受け取り、フラッシュメモリ11に対して所定の処理を実行したり、データ転送処理を制御したりする。
【0028】
ROM19は、MPU18により使用される制御プログラムなどを格納するメモリである。RAM20は、MPU18の作業エリアとして使用され、制御プログラムや各種のテーブルを記憶するメモリである。メモリインタフェース部21は、メモリコントローラ12とフラッシュメモリ11との間のインタフェーイス処理を行う機能ブロックである。
【0029】
次に、図4および図5を用いて、メモリカード100の動作を説明する。初めに、メモリカード100のデータ書き込み動作について説明する。図4は、データ書き込み動作を示すタイミングチャートである。また、図4には、バス14上のコマンドおよびデータ等を示している説明図である。
【0030】
データ転送は、1つのデータブロック(例えば、512バイト)単位で行われる。また、1つのデータブロックには、例えば、10バイトの冗長部(RA)が付加されて送信される。この冗長部(RA)には、エラー検出を行うためのCRC(Cyclic Redundancy Check)コード等が含まれる。このCRCコードは、メモリコントローラ12が備えるCRC部(図示せず)により生成される。また、CRC部は、CRCコードに基づいて、エラー検出を行う。
【0031】
また、データ転送には、1つのブロック単位でデータ転送を行う1データブロック転送と、複数のブロック単位でデータ転送を行う4データブロック転送とがある。本実施形態では、マルチブロックリード動作(multiple block read operation)、およびマルチブロックライト動作(multiple block write operation)を例に説明するが、1ブロックデータ転送に適用することも可能である。
【0032】
先ず、ホストデバイス200は、データ書き込みを開始するために、ライトコマンド(W−CMD)をメモリカード100に送信する。メモリカード100は、このライトコマンド(W−CMD)を受け取る。そして、コマンド制御部16は、ライトコマンド(W−CMD)を解釈し、このライトコマンド(W−CMD)に対するレスポンス(RES)を生成する。このレスポンス(RES)は、ホストデバイス200に送信される。
【0033】
次に、ホストデバイス200は、ブロックデータをメモリカード100に送信する。コマンド制御部16は、ブロックデータを受け取った旨を示すレスポンス(RES)を生成する。さらに、データ制御部17は、ホストデバイス200から送信されたブロックデータをフラッシュメモリ11に書き込む。また、データ制御部17は、フラッシュメモリ11にデータを書き込んでいる間、ローレベルのビシー信号(busy)を生成する。このビシー信号(busy)は、DAT0ラインを介してホストデバイス200に送信される。
【0034】
同様に、ホストデバイス200から送信された複数のデータブロックのマルチブロックライト動作(multiple block write operation)が行われる。
【0035】
次に、ホストデバイス200は、データ書き込みを停止するために、ストップコマンド(S−CMD)をメモリカード100に送信する。メモリカード100は、このストップコマンド(S−CMD)を受け取る。そして、コマンド制御部16は、ストップコマンド(S−CMD)を解釈し、このストップコマンド(S−CMD)に対するレスポンス(RES)を生成する。このレスポンス(RES)は、ホストデバイス200に送信される。このようにして、メモリカード100は、データストップ動作(data stop operation)を実行する。その後、メモリカード100は、データ転送を終了する。
【0036】
次に、メモリカード100のデータ読み出し動作について説明する。図5は、データ読み出し動作を示すタイミングチャートである。図5は、バス14上のコマンドおよびデータ等を示している。
【0037】
先ず、ホストデバイス200は、データ読み出しを開始するために、リードコマンド(R−CMD)を発効し、このリードコマンド(R−CMD)をメモリカード100に送信する。メモリカード100は、このリードコマンド(R−CMD)を受け取る。そして、コマンド制御部16は、このリードコマンド(R−CMD)を解釈し、このリードコマンド(R−CMD)に対するレスポンス(RES)を生成する。このレスポンス(RES)は、コマンド制御部16により、ホストデバイス200に送信される。
【0038】
次に、データ制御部17は、フラッシュメモリ11からデータブロック(data block)を読み出す。このデータブロックは、ホストデバイス200に送信される。同様に、複数のデータブロックがホストデバイス200に送信される。
【0039】
次に、ホストデバイス200は、データ読み出し動作を停止するために、ストップコマンド(S−CMD)をメモリカード100に送信する。メモリカード100は、このストップコマンド(S−CMD)を受け取る。そして、コマンド制御部16は、ストップコマンド(S−CMD)を解釈し、このストップコマンド(S−CMD)に対するレスポンス(RES)を生成する。このレスポンス(RES)は、ホストデバイス200に送信される。このようにして、メモリカード100は、データストップ動作(data stop operation)を実行する。その後、メモリカード100は、データ転送を終了する。
【0040】
なお、図6および図7は、以上で説明した、メモリカード100の転送プロトコルの基本動作を示した図である。図6は、メモリカード100からのマルチブロックデータの読み出し動作を、図7はメモリカード100へのマルチブロックデータの書き込み動作を示している。図6および図7は、データ書き込み動作を示すタイミングチャートである。また図6および図7には、バス14上のコマンドおよびデータ等を示している。
【0041】
次に、メモリカード100のHSMおよびUHSMにおいて使用可能な、ダブルエッジモードについて、図8および図9を用いて説明する。図8は、ダブルエッジモードにおけるデータ転送およびコマンド/レスポンス転送のタイミングチャートであり、図9は、シングルエッジモードからダブルエッジモードへの切り替え動作を説明するためのタイミングチャートである。なお、図8および図9は、バス14上のコマンドおよびデータ等を示している。なお、図8において、“tCYC”は、クロックサイクルタイムを示している。
【0042】
メモリカード100では、データ転送は、クロック信号CLKの立ち上がりと立ち下がりとの両エッジを使用したダブルエッジ転送モードを行うことができる。一方、コマンド/レスポンス転送は、クロック信号CLKの立ち上がり(あるいは、立ち下がり)エッジを使用したシングルエッジ転送により行われる。
【0043】
先ず、ホストデバイス200からメモリカード100にデータが入力される書き込み動作(DAT0〜3(入力))について説明する。ホストデバイス200は、クロック信号CLKの立ち上がりと立ち下がりとの両エッジを用いてデータを送信する。この際、ホストデバイス200は、所定のプロトコルに従ったセットアップタイムtDVSとホールドタイムtDVHとを満足するように、データ転送を行う。データ制御部17は、ホストデバイス200からダブルエッジ転送により送信されたデータを、クロック信号CLKの立ち上がりと立ち下がりとの両エッジで取り込む。そして、この取り込んだデータをフラッシュメモリ11に書き込む。
【0044】
次に、メモリカード100からホストデバイス200にデータが出力される読み出し動作(DAT0〜3(出力))について説明する。データ制御部17は、クロック信号CLKの立ち上がりと立ち下がりとの両エッジを用いてデータを送信する。この際、データ制御部17は、所定のプロトコルに従ったセットアップタイムtDSとホールドタイムtDHとを満足するように、データ転送を行う。ホストデバイス200は、メモリカード100からダブルエッジ転送により送信されたデータを、クロック信号CLKの立ち上がりと立ち下がりとの両エッジで取り込む。
【0045】
次に、ホストデバイス200からメモリカード100へのコマンドCMD転送動作(CMD(入力))について説明する。ホストデバイス200は、コマンドCMDを発行する。そして、ホストデバイス200は、クロック信号CLKの立ち上がりエッジのみを用いてコマンドCMDをメモリカード100に送信する。この際、ホストデバイス200は、所定のプロトコルに従ったセットアップタイムtCVSとホールドタイムtCVHとを満足するように、コマンドCMDの転送を行う。コマンド制御部16は、ホストデバイス200からシングルエッジ転送により送信されたコマンドCMDを、クロック信号CLKの立ち上がりエッジのみを用いて取り込む。
【0046】
次に、メモリカード100からホストデバイス200へのレスポンスRES転送動作(RES(出力))について説明する。コマンド制御部16は、ホストデバイス200から送信されたコマンドCMDに対するレスポンスRESを生成する。そして、コマンド制御部16は、クロック信号CLKの立ち上がりエッジのみを用いてレスポンスRESをホストデバイス200に送信する。この際、コマンド制御部16は、所定のプロトコルに従ったセットアップタイムtCSとホールドタイムtCHとを満足するように、レスポンスRES転送を行う。ホストデバイス200は、メモリカード100からシングルエッジ転送により送信されたレスポンスRESを、クロック信号CLKの立ち上がりエッジのみを用いて取り込む。
【0047】
このように、本実施形態では、コマンド/レスポンスをクロック信号CLKの立ち上がりエッジのみを用いて転送する。一方、データをクロック信号CLKの立ち上がりと立ち下がりとの両エッジを用いて転送する。
【0048】
このようにしてデータ転送およびコマンド/レスポンス転送を行うことにより、複雑な処理が要求され、かつタイミング条件の厳しいCMDラインの信号は、従来と同様の部を使用することができ、また、メモリカードの設定および実装が容易となる。これに対して、マルチブロックデータ転送などで、実用上のデータ転送速度を決めるDAT0〜3ラインに対しては、クロック信号CLKの2倍の速度での転送が可能になり、実用上のデータ転送速度が大きく向上する。なお、マルチブロック転送の場合、CMDラインは、プロトコルの最初のコマンドおよびレスポンスの転送に用いられるだけなので、シングルエッジモードであっても、実用上のデータ転送速度には大きな影響はない。
【0049】
なお、シングルエッジモードとダブルエッジモードとの切り替え動作は、図9に示すように、ホストデバイス200が発行するスイッチコマンド(SW−CMD)によって行われる。スイッチコマンド(SW−CMD)は、例えばチェックファンクションとセットファンクションとの2つのモードで使用することができる。例えばモード0は、チェックファンクションとして使用され、モード1はセットファンクションとして使用される。モードは、コマンド中の図示せぬモードビットにデータ“0”または“1”を設定することにより切り替えられる。
【0050】
ホストデバイス200がメモリカード100をアクセスする場合、ホストデバイス200は、当該ホストデバイス200に接続されているメモリカード100がどのような仕様であるかを認識する必要がある。このため、ホストデバイス200は、メモリカード100の仕様を認識するため、スイッチコマンド(SW−CMD)をモード0のチェックファンクションに設定してメモリカード100に供給し、メモリカード100から返送されたステータスデータ(STATUS)によりメモリカード100の仕様を認識する。
【0051】
そして、メモリカード100がダブルエッジモードをサポートしている場合、ホストデバイス200は、スイッチコマンド(SW−CMD)をモード1のセットファンクションに設定してメモリカード100に供給し、メモリカード100の機能(本実施形態では、ダブルエッジモード)を設定する。以後、ホストデバイス200は、メモリカード100に対してダブルエッジモードでのデータ転送を実行する。
【0052】
次に、図10を用いて、メモリカード100の転送モードについて説明する。図10は、メモリカード100の転送モードについて説明するための表である。
【0053】
図10はメモリカードにおいて、ホストデバイス200から、転送モードを変更するコマンドが発行された場合の、転送モードの移行を示している。すなわち、移行元とは現在あるいは初期化時のメモリカードの転送モードであり、移行先とは転送モード変更後の転送モードである。
【0054】
前述のように、メモリカード100は、転送モードとして、ノーマルスピードモード(NSM)、ハイスピードモード(HSP)および、ウルトラハイスピードモード(UHSM)に対応している。NSMの転送クロック周波数は25MHzであるが、HSM、およびUHSMでは50MHzである。そして、UHSMでは50MHzの転送クロック周波数においてダブルエッジモードでの動作を行う。
【0055】
しかし、すでに規定されている転送モードに、UHSMの転送モードが加わると、転送モードの種類は非常に多くなる。すなわち、図8に示すように、転送モードの種類は、NSM―SD(1ビット)、NSM―SD(4ビット)、NSM−SPI、HSM―SD(1ビット)、HSM―SD(4ビット)、HSM−SPI、UHSM―SD(1ビット)、UHSM―SD(4ビット)、そして、UHSM―SPI、の9モードある。しかし、メモリカード100は、UHSMにおいては、転送モードとして、4ビットバス幅転送モード(SD44ビットモード)のみに対応し、1ビットバス幅転送モード(SPIモードおよびSD1ビットモード)には対応しない。UHSMは非常に高速な転送を目的としたものであり、転送バス幅の狭いSPIモードおよびSD1ビットモードではその意味がなく、それをサポートする場合はメモリカードのコントローラの開発において不要な開発コストや検証コストが必要となり、メモリカードの複雑化を招いてしまうためである。
【0056】
NSM、HSM、およびUHSMの間で、転送モードを変更するには、メモリカード100にスイッチコマンド(SW−CMD)を発行する。メモリカード100のコマンド制御部16は、スイッチコマンド(SW−CMD)を解釈すると、コマンド制御部16は、クロック信号CLKの立ち上がりエッジに同期して、レスポンスRESをホストデバイス200に送信する。
【0057】
さらに、コマンド制御部16は、スイッチコマンド(SW−CMD)に基づいて、メモリカード100をNSM、HSM、またはUHSMのいずれかの転送モードに設定する。また、データ制御部17は、転送モードへの切り替えを受け付けた旨のステータスデータ(STATUS)をホストデバイス200にDATラインを使用して送信する。
【0058】
そして、メモリカード100においては、SPIモードまたはSD1ビットモードにあるときに、ホストデバイス200から、UHSMモード(SPIモードまたはSD1ビットモード)へ転送モードを変更するスイッチコマンドが発行された(図10:不可)場合には、転送モード制御部18Bが、転送モードを移行しなかったというエラーコードのステータスデータを、1ビットバス幅のバス(SD1ビットモードまたはSPIモード)を用いて、ホストデバイス200に出力する。
【0059】
ホストデバイス200は、エラーコードのステータスデータを受信することにより、メモリカード100が指定した転送モードに対応していないことを認識することができる。このため、ホストデバイス200は、転送モードを別のモードに変更する等の対応を取ることができるため、フリーズ等のエラーを起こすことがない。このため、メモリカード100は、転送速度が速く、かつ、ユーザの利便性が良い。さらに、メモリカード100は、制御が簡単であり、メモリカードの複雑化および大型化を招くことがない。
【0060】
<第2の実施の形態>
以下、本発明の第2の実施の形態のメモリカード100Bについて説明する。なお、メモリカード100Bの構成等は、第1の実施の形態のメモリカード100と類似しているため、同じ構成要素には同じ符号を付し説明は省略する。
【0061】
SD1ビットモードにあるときに、UHSMの転送モードへ変更するコマンドがホストデバイス200から入力された場合に、メモリカード100においては、転送モード制御部18Bは、転送モードを移行しなかったというエラーコードのステータスデータをホストデバイス200に出力する。これに対して、メモリカード100Bにおいては、SD1ビットモードにあるときに、UHSMの転送モードへ変更するコマンドがホストデバイス200から入力された場合に、転送モード制御部18Bは、UHSM-4ビットバス幅の転送モードに変更する。
【0062】
図11は、メモリカード100Bにおける転送モード制御部18Bの動作の流れを説明するためのフローチャートである。以下、図11に従い、メモリカード100BにおけるUHSMへの移行の際の転送モード制御部18Bのバス幅モード制御動作の流れを説明する。
【0063】
<ステップS10>
ホストデバイス200から、UHSMモード(SD−4bit)への移行のためのスイッチコマンドが発行された場合における転送モード制御部18Bのバス幅モード制御動作の流れを説明する。
【0064】
<ステップS11、S12>
現在のモードが、SPIモードであった場合、転送モード制御部18Bは、、ステップS12において、SPIモードには移行しなかったというエラーコードのステータスデータをSPIモードでホストデバイス200に送信する。
【0065】
<ステップS13、S14、S15>
現在のモードが、SD1ビットモードであった場合、転送モード制御部18Bは、ステップS14において、UHSMに移行したというレスポンス(ステータス)をSD1ビットモードでホストデバイス200に送信する。レスポンスの送出が完了した後、、転送モード制御部18Bは、ステップS15において、UHSMに移行する。
【0066】
上記の場合、バス幅の変更と、転送速度の変更とが、ホストデバイス200からのひとつのコマンドにより制御されている。また、スイッチコマンドのレスポンス(ステータス)を1ビットモードで返し、次のコマンドから4ビットモードに移行することにより、コマンド単位でのバス幅の変更タイミングが明確となり、ホストデバイス200のバス幅変更制御が容易となる。
【0067】
<ステップS16、S17、S18>
現在のモードが、SD4ビットモードであった場合、転送モード制御部18Bは、ステップS17において、UHSMに移行し、ステップS8において、UHSMに移行し、UHSMに移行したというレスポンスをSD4ビットモードでホストデバイス200に送信する。
【0068】
<ステップS19>
スイッチコマンドが上記のいずれでも無い場合は、転送モード制御部18Bは、エラーコードのステータスデータを現在のモードでホストデバイス200に送信する。
【0069】
本実施の形態のメモリカード100Bにおいては、対応していない1ビットバス幅の転送モードへ変更するコマンドがホストデバイス200から入力された場合であっても、転送モード制御部18Bが、対応可能な4ビットバス幅の転送モードに変更するため、処理速度が速く、かつ、ホストデバイス側の制御も容易で利便性が良い。
【0070】
また、スイッチコマンドのステータスを1ビットモードで返し、次のコマンドから4ビットモードに移行することにより、ホストにとってはコマンド単位でのバス幅の変更タイミングが明確になり、ホストコントローラ側のバス幅変更制御がやりやすくなる。
【0071】
なお、メモリカード100Bにおいて、UHSMからNSMまたはHSMへの移行も、ホストデバイス200からのスイッチコマンドにより実行される。この場合、NSMまたはHSMへの移行後も、バス幅は4bitのままである。
【0072】
<第3の実施の形態>
以下、本発明の第3の実施の形態のメモリカード100Cについて図12および図13を参照して説明する。図12は、本実施の形態のメモリカード100Cの構成を示すブロック図であり、図13は、転送モード制御部18B等の構成を示すブロック図である。なお、メモリカード100Cの構成等は、第1の実施の形態のメモリカード100と類似しているため、同じ構成要素には同じ符号を付し説明は省略する。
【0073】
メモリカード100Cにおいては、UHSMにおいても、ダブルエッジモードではなく、シングルエッジモードである。しかし、転送クロック周波数を例えばHSMの50MHzに対して、100MHzと高くすることで、メモリカード100Cは、UHSMに対応している。
【0074】
コマンド制御部16は、クロック信号CLKのエッジに同期して、データ転送を行うため、転送クロック周波数を2倍にすれば転送速度を2倍に、転送クロック周波数を4倍にすれば転送速度を4倍にすることができる。しかしながら、前述のように、転送クロック周波数を上げると、EMIのための対策が問題となることがあり、かつ、メモリカードの消費電力が増加してしまうという問題もある。
【0075】
このため、図12に示すように、メモリカード100Cにおいては、転送信号の電圧を調整するためのレギュレータ22を有している。そして、レギュレータ22は、転送クロック周波数の異なる転送モードに応じて、異なる駆動電圧をホストインタフェース部15に供給する。
【0076】
次に、図13を用いて、メモリカード100Cの転送モード部18Bの構成をより詳細に説明する。図13に示すように、転送モード部18Bは、バスモード制御部18B1と、バス電圧制御部18B2と、バスモード変更制御部18B3とを有し、コマンド制御回路16は、スイッチコマンドステータスレジスタ16Aを有している。また、ホストインターフェイス部15には、NSMおよびHSM対応インタフェイス制御部15AとUHSM対応インタフェイス制御部15Bとを有している。
【0077】
転送モード制御部18Bのバスモード変更制御部18B3は、ホストデバイス200からバスを介してスイッチコマンドの入力を受けると、、バスモード制御部18B1、バス電圧制御部18B2、NSMおよびHSM対応インタフェイス制御部15A、UHSM対応インタフェイス制御部15B等の設定を制御する。そして、バス電圧制御部18B2はレギュレータ22により駆動電圧を制御し、バスモード変更制御部18B3は、スイッチコマンドステータスレジスタ16Aに、スイッチコマンドの結果のプラグを設定してホストインターフェイス部15にレスポンスする。
【0078】
図14に、スイッチコマンド発行の際の、コマンドプロトコルを示す。
図14(A)に示すように、スイッチコマンドのパラメータとして24bitのコマンドパラメータが発行される。このパラメータで、バススピードモード ( Bus Accesses Mode )とバス電圧モード ( Bus Voltage Mode )とが、それぞれのパラメータフィールドで独立に指定される。メモリカード100Cは、このコマンドとコマンドパラメータを受けて動作モードを移行する。
【0079】
メモリカード100Cは、スイッチコマンドに対する受入れ状況を512bitのステータスデータとしてホストデバイス200に出力する。
【0080】
次に、図14(B)に、スイッチコマンド発行時のステータスデータを示す。このステータスデータ中に、次のコマンド受付におけるバススピードモード( Bus Accesses Mode )とバス電圧モード ( Bus Voltage Mode )とが、それぞれのフィールドでホストデバイス200に示される。
【0081】
例えば、UHM移行がホストデバイス200から指示された場合、メモリカード100CがUHMに移行可能な場合には移行後の状態がステータスデータで示される。メモリカード100CがUHMに移行不可能な場合には移行不可能を示すステータスデータが、メモリカード100Cからホストデバイス200に送信される。
【0082】
なお、図15に示すように、スイッチコマンド発行の際の、コマンドプロトコルにおいては、バススピードモードとバス電圧モードを、ひとつのフィールドで定義する方式を用いることもできる。
【0083】
メモリカード100Cにおいては、多くのホストデバイスが対応している標準の3.3V/IOモードに加えて、より低電圧である1.8V/IOモードによるデータ転送が可能である。バス電圧制御部18B2は、転送クロック周波数がより高い転送モードにおいては、より低電圧の駆動電圧をホストインタフェース部15に供給するようにレギュレータ22を制御する。
【0084】
以下、メモリカード100Cにおける転送モードおよびレギュレータ22が供給する駆動電圧の変更処理について説明する。
【0085】
(1) メモリカード100Cの初期化後の初期状態では、NSMの3.3V/IOモードとなっている。
【0086】
(2) 3.3V/IOモードで、かつNSMまたはHSMにあるメモリカード100Cに対して、NSMまたはHSMへの移行と、3.3V/IOモードから、1.8V/IOモードへの変更指示が、ホストデバイス200からスイッチコマンドにより発行されると、メモリカード100Cは、1.8V/IOモードへの移行が正常に終了したステータスを3.3V/IOモードでホストデバイス200に返す。そして、レギュレータ22は、駆動電圧を1.8Vに変更して、メモリカード100Cは、以後のデータ送受信を1.8V/IOモードで実行する。
【0087】
(3) 1.8V/IOモードで、かつNSMまたはHSMにあるメモリカード100Cに対して、NSMまたはHSMへの移行と、1.8V/IOモードから、3.3V/IOモードへの変更指示が、ホストデバイス200からスイッチコマンドにより発行されると、メモリカード100Cは、3.3V/IOモードへの移行が正常に終了したステータスを1.8V/IOモードでホストデバイス200に返す。そして、レギュレータ22は、駆動電圧を3.3Vに変更して、メモリカード100Cは、以後のデータ送受信を3.3V/IOモードで実行する。
【0088】
(4) 3.3V/IOモードで、かつNSMまたはHSMにあるメモリカード100Cに対して、UHSMへの変更指示と、3.3V/IOモードから1.8V/IOモードへの変更指示が、ホストデバイス200からスイッチコマンドにより発行されると、メモリカード100Cは、すでに説明したように、転送モード制御部18Bが転送モードを変更し、さらに上述のように、レギュレータ22は1.8V/IOモードに移行する。すなわち、メモリカード100Cは、スイッチコマンドに対して移行完了のステータスを移行前のモードで送信した後に、UHSM:1.8V/IOモードに移行し、以後のデータ送受信を、UHSM:1.8V/IOモードで実行する。
【0089】
(5) 3.3C/IOモードで、かつ、NSMまたはHSMにあるメモリカード100Cに対して、UHSMへの変更指示と、3.3V/IOモードへの変更指示が、ホストデバイス200からスイッチコマンドにより発行されると、、メモリカード100Cは、移行不可能のステータスを返し、モード変更をしない。
【0090】
(6) 1.8V/IOモードで、かつNSMまたはHSMにあるメモリカード100Cに対して、UHSMへの変更指示が、ホストデバイス200からスイッチコマンドにより発行されると、メモリカード100Cは、すでに説明したように、転送モード制御部18Bが転送モードを変更し、UHSMに移行し、以後のデータ送受信を、UHSM:1.8V/IOモードで実行する。
【0091】
(7) UHSM:1.8V/IOモードのメモリカード100Cに対して、ホストデバイス200から3.3V/IOモードへの移行のための変更指示が、スイッチコマンドにより発行されると、メモリカード100Cは、移行不可能のステータスデータを返し、モード変更は行わない。メモリカード100CはUHSMにおいては、低電圧である1.8V/IOモードのみに対応しているためである。しかし、ホストデバイス200は、ステータスデータを受信することにより、転送モードを変更する等の対応を取ることができるため、フリーズ等のエラーを起こすことがない。
【0092】
(8) UHSM:1.8V/IOモードのメモリカード100Cに対して、ホストデバイス200からNSMまたはHSMへの移行と、3.3V/IOモードまたは1.8V/IOモードへの移行のためのスイッチコマンドにより発行されると、メモリカード100Cは、すでに説明したように、転送モード制御部18Bが転送モードを変更を行うとともに、指定された3.3V/IOモードまたは1.8V/IOモードに移行する。メモリカード100Cは、NSMまたはHSMへの移行が正常に終了したステータスを移行前のモードでホストデバイス200に返す。そして、メモリカード100Cは、以後のデータ送受信を新しいモードで実行する。
【0093】
メモリカード100Cは、レギュレータ22が、転送クロック周波数のより高い転送モードに応じて、より低い駆動電圧をホストインタフェース部15に供給する。このため、メモリカード100Cは、第1の実施の形態のメモリカード100が有する効果に加えて、高い転送クロック周波数の転送モードにおいても、ノイズ発生が少なく、かつメモリカード100Cの消費電力が少ない。
【0094】
なお、メモリカード100Cにおいては、UHSMを100MHz、かつ、ダブルエッジモードで、1.8V/IOモードとして、さらに高速なデータ転送モードとしてもよい。
【0095】
<第3の実施の形態の変形例>
次に、本発明の第3の実施の形態の変形例のメモリカード100Dについて説明する。なお、メモリカード100Dの構成等は、第3の実施の形態のメモリカード100Cと類似しているため、同じ構成要素には同じ符号を付し説明は省略する。
【0096】
メモリカード100Dにおいては、メモリカードの構成等をより簡単にするため、UHSMにおいては、低電圧である1.8V/IOモードのみに対応する仕様し、かつ、NSMおよびHSMにおいては、標準の3.3V/IOモードのみに対応する仕様としている。
【0097】
以下、メモリカード100Dにおける転送モードおよびレギュレータ22が供給する駆動電圧の変更処理について説明する。
【0098】
(1) メモリカード100Dの初期化後の初期状態では、NSMの3.3V/IOモードとなっている。
【0099】
(2) 3.3V/IOモードで、かつNSMまたはHSMにあるメモリカード100Dに対して、UHSMへの変更指示が、ホストデバイス200からスイッチコマンドにより発行されると、メモリカード100Dは、すでに説明したように、転送モード制御部18Bが転送モードを変更すると共に、レギュレータ22は、駆動電圧を1.8Vに変更して、UHSMに移行する。
【0100】
メモリカード100Dは、スイッチコマンドに対して、移行完了のステータスを移行前のモードで送信した後に、UHSM:1.8V/IOモードに移行し、メモリカード100Cは、以後のデータ送受信をUHSM:1.8V/IOモードで実行する。
【0101】
(3) UHSM:1.8V/IOモードのメモリカード100Cに対して、ホストデバイス200からNSMまたはHSMへの移行のための変更指示が、スイッチコマンドにより発行されると、メモリカード100Cは、すでに説明したように、転送モード制御部18Bが転送モードを変更すると共に、レギュレータ22は、駆動電圧を3.3Vに変更して、NSMまたはHSMに移行する。
【0102】
メモリカード100Dは、スイッチコマンドに対して、移行完了のステータスを移行前のモードで送信した後に、3.3V/IOモードで、かつNSMまたはHSMに移行し、メモリカード100Dは、以後のデータ送受信を3.3V/IOモードで、かつNSMまたはHSMで実行する。
【0103】
(4) NSM、HSM、またはUHSMのいずれにおいても、メモリカード100Dは、レギュレータ22の、駆動電圧のみを変更するスイッチコマンドに対しては、移行不可能のエラーコードのステータスデータを返し、モード変更は行わない。
【0104】
なお、メモリカード100Dは、NSMまたはHSMは、3.3V/IOモードのみをサポートしているため、スイッチコマンドのパラメータには、前述したバス電圧モード( Bus Voltage Mode )の指定フィールドは不要である。
【0105】
本実施の形態のメモリカード100Dは、第3の実施の形態のメモリカード100Cが有する効果に加えて、制御が簡単であり、メモリカードの複雑化および大型化を招くことがない。
【0106】
なお、本実施形態ではSDメモリカード(登録商標)を一例として説明したが、同様のバス構造を持つ半導体記憶装置であれば、他のメモリカード、メモリデバイスまたは内部メモリ等にも適用可能であり、メモリカード100等と同様の作用効果を奏することができる。
【0107】
また、本発明は、上述した実施の形態および変形例に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【図面の簡単な説明】
【0108】
【図1】第1の実施の形態にかかるメモリカードとホストデバイスとの構成を示す概略図である。
【図2】第1の実施の形態にかかるメモリカードのコネクタの機能を示す表である。
【図3】第1の実施の形態にかかるメモリカードの構成を示すブロック図である。
【図4】第1の実施の形態にかかるメモリカードのデータ書き込み動作を示すタイミングチャートである。
【図5】第1の実施の形態にかかるメモリカードのバス上のコマンドおよびデータ等を示している説明図である。
【図6】第1の実施の形態にかかるメモリカードのマルチブロックデータの読み出し動作の転送プロトコルの基本動作を示した図である。
【図7】第1の実施の形態にかかるメモリカードのマルチブロックデータの書き込み動作の転送プロトコルの基本動作を示した図である。
【図8】第1の実施の形態にかかるメモリカードのダブルエッジモードにおけるデータ転送およびコマンド/レスポンス転送のタイミングチャートである。
【図9】第1の実施の形態にかかるメモリカードのシングルエッジモードからダブルエッジモードへの切り替え動作を説明するためのタイミングチャートである。
【図10】第1の実施の形態にかかるメモリカードの転送モードについて説明するための表である。
【図11】第2の実施の形態にかかるメモリカードの転送モード制御部の動作の流れを説明するためのフローチャートである。
【図12】第3の実施の形態にかかるメモリカードの構成を示すブロック図である。
【図13】第3の実施の形態にかかるメモリカードの転送モード制御部18B等の構成を示すブロック図である。
【図14】スイッチコマンド発行の際の、コマンドプロトコルを示す説明図である。
【図15】スイッチコマンド発行の際の、コマンドプロトコルを示す説明図である。
【符号の説明】
【0109】
11…フラッシュメモリ、12…メモリコントローラ、13…コネクタ、14…バス、15…ホストインタフェース部、15A…NSMおよびHSM対応インタフェイス制御部、15B…UHSM対応インタフェイス制御部、16…コマンド制御部、16A…スイッチコマンドステータスレジスタ、17…データ制御部、18B…転送モード制御部、18B1…バスモード制御部、18B2…バス電圧制御部、18B3…バスモード変更制御部、21…メモリインタフェース部、22…レギュレータ、100…メモリカード、100B…メモリカード、100C…メモリカード、100D…メモリカード、200…ホストデバイス
【特許請求の範囲】
【請求項1】
ホストデバイスに接続可能な半導体記憶装置であって、
半導体メモリ部と、
前記ホストデバイスと前記半導体記憶装置との間のデータ転送を行い、複数の転送バス幅モードおよび複数の転送クロックモードに対応したホストインタフェース部と、
前記ホストデバイスからのコマンドに基づき、前記データ転送の前記転送バス幅モードおよび/または前記転送クロックモードを変更する転送モード制御部とを有し、
前記転送モード制御部は、特定の前記転送バス幅モードにあるときに、その転送バス幅モードにおいては前記半導体記憶装置が対応していない特定の前記転送クロックモードへ変更する前記コマンドが前記ホストデバイスから入力された場合に、エラーコードを前記ホストデバイスに出力することを特徴とする半導体記憶装置。
【請求項2】
ホストデバイスに接続可能な半導体記憶装置であって、
半導体メモリ部と、
前記ホストデバイスと前記半導体記憶装置との間のデータ転送をデータバスを使用して行い、複数の転送バス幅モードおよび複数の転送クロックモードに対応したホストインタフェース部と、
前記ホストデバイスからのコマンドに基づき、前記データ転送の前記転送バス幅モードおよび/または転送クロックモードを変更する転送モード制御部とを有し、
前記転送モード制御部は、特定の前記転送バス幅モードにあるときに、その転送バス幅モードにおいては前記半導体記憶装置が対応していない前記転送クロックモードへ変更する前記コマンドが前記ホストデバイスから入力された場合に、別の前記転送バス幅モードの指定された転送クロックモードに変更することを特徴とする半導体記憶装置。
【請求項3】
前記転送モード制御部は、特定の前記転送バス幅モードにあるときに、その転送バス幅モードにおいては前記半導体記憶装置が対応していない前記転送クロックモードへ変更する前記コマンドが前記ホストデバイスから入力された場合に、
変更前の前記転送バス幅モードで転送クロックモードの移行終了を示すステータスコードをデータバスを使用してホストに出力するとともに、以後のコマンドについて、別の前記転送バス幅モードの指定された前記転送クロックモードに変更することを特徴とする請求項2の半導体記憶装置。
【請求項4】
ホストデバイスに接続可能な半導体記憶装置であって、
半導体メモリ部と、
前記ホストデバイスと前記半導体記憶装置との間のデータ転送を行うデータバスを有するホストインタフェース部と、
前記ホストデバイスからのコマンドに基づき、転送モードを変更する転送モード制御部とを有し、
前記ホストデバイスからの前記転送モードの変更コマンドに応じて、異なる駆動電圧を前記ホストインタフェース部に供給することを特徴とする前記半導体記憶装置。
【請求項5】
前記転送モード制御部は、
前記データバスの駆動電圧の変更を伴う転送モード変更コマンドを受けた場合、変更前の前記データバスの前記駆動電圧で前記転送モードの移行終了を示すステータスコードを前記ホストデバイスに出力するとともに、以後のコマンドについて、別の前記駆動電圧の前記転送モードに変更することを特徴とする請求項4に記載の半導体記憶装置。
【請求項6】
ホストデバイスと接続可能な半導体記憶装置であって、
半導体メモリ部と、
前記ホストデバイスと前記半導体記憶装置との間のデータ転送を行い、複数のバス電圧モードおよび複数の転送クロックモードに対応したホストインタフェース部と、
前記ホストデバイスからのコマンドに基づき、前記バス電圧モードおよび/または前記転送クロックモードを変更する転送モード制御部とを有し、
前記転送モード制御部は、特定の前記バス電圧モードおよび前記転送クロックモードの組合せに対して、そのモードの組合せに変更するコマンドが前記ホストデバイスから入力された場合に、エラーコードを、前記ホストデバイスに出力することを特徴とする半導体記憶装置。
【請求項1】
ホストデバイスに接続可能な半導体記憶装置であって、
半導体メモリ部と、
前記ホストデバイスと前記半導体記憶装置との間のデータ転送を行い、複数の転送バス幅モードおよび複数の転送クロックモードに対応したホストインタフェース部と、
前記ホストデバイスからのコマンドに基づき、前記データ転送の前記転送バス幅モードおよび/または前記転送クロックモードを変更する転送モード制御部とを有し、
前記転送モード制御部は、特定の前記転送バス幅モードにあるときに、その転送バス幅モードにおいては前記半導体記憶装置が対応していない特定の前記転送クロックモードへ変更する前記コマンドが前記ホストデバイスから入力された場合に、エラーコードを前記ホストデバイスに出力することを特徴とする半導体記憶装置。
【請求項2】
ホストデバイスに接続可能な半導体記憶装置であって、
半導体メモリ部と、
前記ホストデバイスと前記半導体記憶装置との間のデータ転送をデータバスを使用して行い、複数の転送バス幅モードおよび複数の転送クロックモードに対応したホストインタフェース部と、
前記ホストデバイスからのコマンドに基づき、前記データ転送の前記転送バス幅モードおよび/または転送クロックモードを変更する転送モード制御部とを有し、
前記転送モード制御部は、特定の前記転送バス幅モードにあるときに、その転送バス幅モードにおいては前記半導体記憶装置が対応していない前記転送クロックモードへ変更する前記コマンドが前記ホストデバイスから入力された場合に、別の前記転送バス幅モードの指定された転送クロックモードに変更することを特徴とする半導体記憶装置。
【請求項3】
前記転送モード制御部は、特定の前記転送バス幅モードにあるときに、その転送バス幅モードにおいては前記半導体記憶装置が対応していない前記転送クロックモードへ変更する前記コマンドが前記ホストデバイスから入力された場合に、
変更前の前記転送バス幅モードで転送クロックモードの移行終了を示すステータスコードをデータバスを使用してホストに出力するとともに、以後のコマンドについて、別の前記転送バス幅モードの指定された前記転送クロックモードに変更することを特徴とする請求項2の半導体記憶装置。
【請求項4】
ホストデバイスに接続可能な半導体記憶装置であって、
半導体メモリ部と、
前記ホストデバイスと前記半導体記憶装置との間のデータ転送を行うデータバスを有するホストインタフェース部と、
前記ホストデバイスからのコマンドに基づき、転送モードを変更する転送モード制御部とを有し、
前記ホストデバイスからの前記転送モードの変更コマンドに応じて、異なる駆動電圧を前記ホストインタフェース部に供給することを特徴とする前記半導体記憶装置。
【請求項5】
前記転送モード制御部は、
前記データバスの駆動電圧の変更を伴う転送モード変更コマンドを受けた場合、変更前の前記データバスの前記駆動電圧で前記転送モードの移行終了を示すステータスコードを前記ホストデバイスに出力するとともに、以後のコマンドについて、別の前記駆動電圧の前記転送モードに変更することを特徴とする請求項4に記載の半導体記憶装置。
【請求項6】
ホストデバイスと接続可能な半導体記憶装置であって、
半導体メモリ部と、
前記ホストデバイスと前記半導体記憶装置との間のデータ転送を行い、複数のバス電圧モードおよび複数の転送クロックモードに対応したホストインタフェース部と、
前記ホストデバイスからのコマンドに基づき、前記バス電圧モードおよび/または前記転送クロックモードを変更する転送モード制御部とを有し、
前記転送モード制御部は、特定の前記バス電圧モードおよび前記転送クロックモードの組合せに対して、そのモードの組合せに変更するコマンドが前記ホストデバイスから入力された場合に、エラーコードを、前記ホストデバイスに出力することを特徴とする半導体記憶装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2009−176136(P2009−176136A)
【公開日】平成21年8月6日(2009.8.6)
【国際特許分類】
【出願番号】特願2008−15253(P2008−15253)
【出願日】平成20年1月25日(2008.1.25)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
【公開日】平成21年8月6日(2009.8.6)
【国際特許分類】
【出願日】平成20年1月25日(2008.1.25)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
[ Back to top ]