(57)【要約】【課題】高速な書き込み動作を安定して行うことができるメモリカードを提供する。【解決手段】外部から受信したデータに対するＣＲＣステータスを返信するＣＲＣステータス出力回路１３と、ＣＲＣステータスを返信する出力タイミングを示す値を記憶すると共に、外部から前記値が変更されるＣＲＣステータス出力制御レジスタ１６と、ＣＲＣステータス出力制御レジスタ１６に記憶された前記値に基づいて、ＣＲＣステータスの出力タイミングを制御する出力制御回路とを備える。【選択図】図２
2012203474.tif 000002
【特許請求の範囲】
【請求項１】
外部から受信したデータに対するＣＲＣ(cyclic redundancy check)ステータスを返信する出力回路と、
前記ＣＲＣステータスを返信する出力タイミングを示す値を記憶すると共に、外部から前記値が変更される出力制御レジスタと、
前記出力制御レジスタに記憶された前記値に基づいて、前記ＣＲＣステータスの出力タイミングを制御する出力制御回路と、
を具備することを特徴とするメモリカード。
【請求項２】
外部とのデータ転送を低速で行う低速モードと、前記低速モードより高速で外部とのデータ転送を行う高速モードとを備え、前記低速モードに設定された場合は、外部から前記出力制御レジスタの前記値が第１の値に書き換えられ、前記高速モードに設定された場合は、外部から前記出力制御レジスタの前記値が第２の値に書き換えられることを特徴とする請求項１に記載のメモリカード。
【請求項３】
前記出力制御レジスタは、外部とのデータ転送を低速で行う低速モードに対応する第１の値と、前記低速モードより高速で外部とのデータ転送を行う高速モードに対応する第２の値とを有し、
外部から設定された前記低速モードあるいは前記高速モードのいずれかに応じて、前記第１の値あるいは前記第２の値のいずれかが選択されることを特徴とする請求項１に記載のメモリカード。
【請求項４】
前記データが外部から入力されるバスと、前記ＣＲＣステータスが外部へ出力されるバスは共通であることを特徴とする請求項１乃至３のいずれかに記載のメモリカード。
【請求項５】
前記出力制御回路は、前記出力回路から出力された前記ＣＲＣステータスを外部に出力する出力バッファと、
前記出力制御レジスタに記憶された前記値に基づいて、前記出力タイミングをカウントするカウンタと、
前記カウンタからの信号に従って、前記出力バッファからの前記ＣＲＣステータスの前記出力タイミングを切り替える切替回路と、
を具備することを特徴とする請求項１乃至４のいずれかに記載のメモリカード。
【請求項６】
外部から受信した前記データを記憶するデータバッファと、
前記データバッファに記憶された前記データにＣＲＣ(cyclic redundancy check)を行うＣＲＣチェック回路とを具備し、
前記出力回路は、前記ＣＲＣチェック回路によるＣＲＣの結果を前記ＣＲＣステータスとして返信することを特徴とする請求項１乃至５のいずれかに記載のメモリカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、メモリカードに関し、例えばＳＤメモリカードにおける書き込みの制御に関するものである。
【背景技術】
【０００２】
ＳＤ(Secure Digital)メモリカードにおける書き込みでは、ホスト機器からデータ（以下、ライトデータ）がメモリカードに送信される。メモリカードは、ライトデータを受信した後、所定時間後、ライトＣＲＣ(cyclic redundancy check)ステータスを返信する。ホスト機器は、ライトＣＲＣステータスを受信し、ライトデータがメモリカードに正しく受信されたか否かを確認する。メモリカードは、受信したライトデータをメモリセルに書き込む。このようなメモリカードの書き込みにおいて、以下のような問題が生じる。
【０００３】
ホスト機器がライトＣＲＣステータスを検出するとき、“Ｌ”を検出してライトＣＲＣステータスのスタートを検出する。このとき、ホスト機器が出力するライトデータのエンドビットが“Ｌ”であるため、ライトデータを出力してからライトＣＲＣステータスを取り込むまでの間隔が短いと、ライトデータのエンドビットをライトＣＲＣステータスのスタートビットと誤認してしまう場合がある。このような誤認が生じると、ホスト機器はライトＣＲＣエラーが発生したと勘違いし、エラー処理を開始してしまう。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第７８３１７９４Ｂ２号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
高速な書き込み動作を安定して行うことができるメモリカードを提供する。
【課題を解決するための手段】
【０００６】
一実施態様のメモリカードは、外部から受信したデータに対するＣＲＣ(cyclic redundancy check)ステータスを返信する出力回路と、前記ＣＲＣステータスを返信する出力タイミングを示す値を記憶すると共に、外部から前記値が変更される出力制御レジスタと、前記出力制御レジスタに記憶された前記値に基づいて、前記ＣＲＣステータスの出力タイミングを制御する出力制御回路とを具備することを特徴とする。
【図面の簡単な説明】
【０００７】
【図１】実施形態のメモリカードとホスト機器の接続を示す図である。
【図２】実施形態のメモリカードとホストの詳細な構成を示すブロック図である。
【図３】実施形態のメモリカードとホスト間の書き込み動作時のタイムチャートである。
【発明を実施するための形態】
【０００８】
以下、図面を参照して実施形態のメモリカードについて説明する。ここでは、メモリカードとして、ＳＤメモリカードを例に取る。なお、以下の説明において、同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【０００９】
［１］メモリカードとホスト機器の構成
（１）メモリカードとホスト機器の接続
図１は、実施形態のメモリカードとホスト機器の接続を示す図である。
【００１０】
ＳＤメモリカード（以下、メモリカードと記す）１０とホスト機器（以下、ホストと記す）２０の間は、６本の信号線（バス）１〜６によりデータやコマンド等の制御情報がやり取りされる。信号線１は、ホスト２０からメモリカード１０へクロック信号SDCLKを送信する信号線である。信号線２は、ホスト２０とメモリカード１０との間(SDCMD間)で、コマンドと、コマンドに対するレスポンスを送受信する信号線である。信号線３〜６は、ホスト２０とメモリカード１０との間(SDDAT0間, SDDAT1間, SDDAT2間, SDDAT3間)でデータを送受信する信号線である。
【００１１】
（２）メモリカードとホスト機器の詳細な構成
図２は、実施形態のメモリカードとホストの詳細な構成を示すブロック図である。図２は、メモリカード１０とホスト２０間の書き込み動作のやり取りに関する回路を示している。
【００１２】
図示するように、メモリカード１０は、ライトデータバッファ１１、ＣＲＣ(cyclic redundancy check)チェック回路１２、ＣＲＣステータス出力回路１３、カウンタ１４、バス切替回路１５、ＣＲＣステータス出力制御レジスタ１６、入力バッファ１７、及び出力バッファ１８を備える。
【００１３】
ホスト機器２０は、ライトデータバッファ２１、カウンタ２２、バス切替回路２３、ＣＲＣステータスレジスタ２４、入力バッファ２５、及び出力バッファ２６を備える。
【００１４】
書き込み動作時に、ホスト２０はライトデータバッファ２１に蓄えたデータ（以下、ライトデータと記す）を、出力バッファ２６及びバス３を介してメモリカード１０に送信する。ホスト２０は、ライトデータの送信が終了したことをカウンタ２２で検出して、バス切替回路２３で出力バッファ２６のドライブを停止する。その後、ライトデータに対してメモリカード１０から返信されるライトＣＲＣステータスを、バス３及び入力バッファ２５を介してＣＲＣステータスレジスタ２４で取り込む。
【００１５】
メモリカード１０は、ホスト２０の出力バッファ２６から出力されたライトデータを、バス３及び入力バッファ１７を介してライトデータバッファ１１に取り込む。続いて、ライトデータバッファ１１に取り込んだライトデータに対し、ＣＲＣチェック回路１２でＣＲＣ(cyclic redundancy check)を行う。
【００１６】
次に、メモリカード１０は、ＣＲＣチェック回路１２によるＣＲＣの結果を、すなわちライトデータが正しく受信できたか否かを、ＣＲＣステータス出力回路１３にセットする。ここで、ライトデータを正しく受信できた場合、すなわちＣＲＣエラーが発生しなかった場合は、例えば“０１０”をＣＲＣステータス出力回路１３にセットする。一方、データを正しく受信できなかった場合、すなわちＣＲＣエラーが発生した場合は、“１０１”をセットする。
【００１７】
メモリカード１０は、ライトデータを受信した後、バス切替回路１５で出力バッファ１８をイネーブルにし、ライトデータを正しく受信できたか否かを示すライトＣＲＣステータスを、ＣＲＣステータス出力回路１３から出力バッファ１８を介して一定期間内にホスト２０に返信する。
【００１８】
ここで、メモリカード１０には、ライトＣＲＣステータスを返信する出力タイミングを示す値を記憶したＣＲＣステータス出力制御レジスタ１６が設けられている。メモリカード１０は、ホスト２０からライトデータの入力が完了したのをカウンタ１４で検出する。そして、ライトデータの入力完了をカウンタ１４で検出してから、出力制御レジスタ１６に記憶された値（サイクル数）だけ待機して、ホスト２０にＣＲＣステータスを返信する。ＣＲＣステータス出力制御レジスタ１６は入力バッファ１７を介してバス３に接続されており、出力制御レジスタ１６の値は、ホスト２０からバス３を介して書き換えが可能である。
【００１９】
なお、前述したカウンタ１４、バス切替回路１５、及び出力バッファ１８により出力制御回路が形成され、出力制御回路は出力制御レジスタ１６に記憶された値に基づいて、ライトＣＲＣステータスの出力タイミングを制御する。
【００２０】
ＳＤメモリカードでは、例えば、DS/HSモードの場合、データのエンドビットから２クロック（クロックの２サイクル）後に、ＣＲＣステータスを返さなければならない。また、高速なUHS-Iモードの場合は、データのエンドビットから２〜８クロック後に、ＣＲＣステータスを返さなければならない。
【００２１】
そこで、DS/HSモードの場合、データのエンドビットから２クロック後に、ＣＲＣステータスを返信するように、出力制御レジスタ１６に２クロックを示す値を記憶する。一方、UHS-Iモードの場合は、データのエンドビットから例えば５クロック後に、ＣＲＣステータスを返信するように、出力制御レジスタ１６に５クロックを示す値を記憶する。
【００２２】
［２］メモリカードとホスト機器の書き込み動作
次に、ホスト機器２０からメモリカード１０にデータを書き込む書き込み動作について説明する。
【００２３】
メモリカード１０は、複数の動作モードをサポートしている。ここでは、２つの動作モード、例えば、ホスト２０とのデータ転送を低速で行う低速モードと、低速モードより速い速度でホスト２０とのデータ転送を行う高速モードとをサポートしているものとする。
【００２４】
例えば、ホスト２０が、先に、低速モードでメモリカード１０を動作させ、次に、高速モードでメモリカード１０を動作させる例を述べる。
【００２５】
ホスト２０は、まず、低速モードでメモリカード２０を動作させる。このとき、ホスト２０は、メモリカード１０内の出力制御レジスタ１６の値を、低速モードに対応する値に設定する。次に、ホスト機器２０は、メモリカード１０の動作を低速モードから高速モードに切り換え、高速モードでメモリカード１０を動作させる。このとき、ホスト２０は、低速モードに対応する値に設定されていたレジスタ１６の値を、高速モードに対応する値に書き換える。
【００２６】
すなわち、ホスト２０は、低速モードにおいてはメモリカード１０内の出力制御レジスタ１６の値を低速モードに応じた値に設定し、高速モードにおいては出力制御レジスタ１６の値を高速モードに応じた値に設定する。
【００２７】
詳述すると、例えば、低速モードでは、メモリカード１０がライトデータのエンドビットを受け取ってから２クロック（クロックの２サイクル）後に、ライトＣＲＣステータスを返信するように、ホスト２０は出力制御レジスタ１６の値を設定する。高速モードでは、メモリカード１０がライトデータのエンドビットを受け取ってから５クロック後に、ＣＲＣステータスを返信するように、ホスト２０は出力制御レジスタ１６の値を設定する。高速モードでは、低速モード時と比べてＣＲＣステータスを返信するタイミングを３クロック分遅延させる。
【００２８】
すなわち、ホスト１０は、メモリカード１０を低速モードで動作させる場合は、ＣＲＣステータスを最短(例えば、２サイクル)で返すように、ＣＲＣステータス出力制御レジスタ１６に第１の値を設定する。一方、高速モードで動作させる場合には、ＣＲＣステータスが確実に取り込めるように、出力制御レジスタ１６に第１の値より大きい第２の値を設定し、ＣＲＣステータスを返信するまでの待機時間を低速モード時より長く設定する。
【００２９】
これにより、高速モード時に生じる、ライトデータのエンドビットをライトＣＲＣステータスのスタートビットと誤認してしまう不具合を防止することができる。
【００３０】
なお、ここでは、ホスト２０により出力制御レジスタ１６の値を書き換える例を述べたが、出力制御レジスタ１６に複数の値（前述の例では、低速モードに対応する第１の値と高速モードに対応する第２の値）を記憶しておき、ホスト２０により設定された動作モードに応じて、メモリカード１０が複数の値から自動的に選択するようにしてもよい。
【００３１】
次に、図３を参照して、書き込み動作を詳細に説明する。
【００３２】
図３は、実施形態のメモリカードとホスト間の書き込み動作時のタイムチャートである。図３は、ＣＲＣステータス出力制御レジスタに“０３ｈ”を設定した場合の波形を示す。メモリカード１０からの低速モード時のライトＣＲＣステータスの出力タイミング３１を、高速モード時に３クロック（クロックの３サイクル）遅らせた３２にずらす。これにより、ホスト２０はライトＣＲＣステータスの取り込みを開始するタイミングを３クロック遅らせることができ、高速モード時でもホスト２０はＣＲＣステータスを正しく取り込むことができる。なお、“０３ｈ”は、低速モード時と高速モード時の待機時間の差が３クロックであることを示す。
【００３３】
図３において、クロック信号SDCLKはホスト機器２０及びメモリカード１０が動作するための同期信号である。高速モードと低速モードとでクロックの周波数が異なるが、図３では、説明の便宜上、同一のクロック信号SDCLKを用いて説明する。よって、低速モードと高速モードとでは、図３で示されたクロックＳＤＣＬＫの周波数は、異なる。
【００３４】
図３（ａ）は、ホスト２０の出力バッファ２６の出力波形であり、出力バッファ２６から出力されるライトデータを示している。図３（ｂ）は、低速モード時におけるメモリカード１０の出力バッファ１８の出力波形であり、出力バッファ１８から返信されるライトＣＲＣステータスを示している。図３（ｃ）は、低速モード時における、バス３上のライトデータと、ライトデータのエンドビットから２サイクル後に返信されるＣＲＣステータスを示している。
【００３５】
図３（ｄ）は、高速モード時において、低速モード時の出力タイミング（メモリカード１０がライトデータのエンドビットを受け取ってから２クロック後）でＣＲＣステータスが出力された場合であり、バス３上のライトデータと、ライトデータのエンドビットから２サイクル後に返信されるＣＲＣステータスを示している。なお、高速モードの図３（ｄ）では、低速モードの図３（ｃ）よりも、エンドビットが遅くバス上に現れているように見えるが、図３では、エンドビットがホスト２０の出力バッファ２６から出力されてからバス３上に現れるまでの遅延時間が同一である場合を想定している。高速モードの方がクロックＳＤＣＬＫの周波数が高いため、クロックのサイクル数で数えると、高速モードの方が、エンドビットがホスト２０の出力バッファ２６から出力されてからバス３上に現れるまでのクロックのサイクル数が多くなっている。
【００３６】
図３（ｅ）は、図３（ｄ）に示すデータが、ホスト２０の入力バッファ２５に入力されるデータを示している。すなわち、メモリカード１０が最短でライトデータのエンドビットを受け取ってから２クロック後にＣＲＣステータスを返送するため、このメモリカード１０のＣＲＣステータスの出力タイミングに合わせて、ホスト２０は、ホストがエンドビットを出力してから最短で２クロック後にＣＲＣステータスを受け取れるように動作する。このため、この図３（ｅ）では、ホスト２０が出力したライトデータのエンドビットの“Ｌ”をＣＲＣステータスのスタートビットと誤判定してしまう。
【００３７】
そこで、図３（ｂ）に示すように、低速モード時にメモリカード１０から出力されるライトＣＲＣステータスの出力タイミング３１を、高速モード時には３クロック遅らせた３２にずらす。
【００３８】
図３（ｆ）〜図３（ｉ）は、本実施形態における高速モード時の波形を示す。
【００３９】
図３（ｆ）は、高速モード時における、バス３上のライトデータと、ライトデータのエンドビットから５サイクル後に返信されるＣＲＣステータスを示している。前述した誤判定を防止するために、ここでは、ＣＲＣステータスが低速モードにより３クロック遅れて出力されている。図３（ｇ）は、図３（ｆ）に示すデータが、ホスト２０の入力バッファ２５に入力されるときのデータを示している。図３（ｇ）に示すように、ホスト２０の入力バッファ２５には、図３（ｅ）に示した波形よりＣＲＣステータスが３クロック遅れて入力されている。図３（ｈ）は、出力制御レジスタ１６に設定された値“０３ｈ”を示す。出力制御レジスタ１６に設定された値“０３ｈ”に基づいて、メモリカード１０からＣＲＣステータスが３クロック遅れて出力されている。
【００４０】
以上により、ホスト２０は、図３（ｉ）に示すように、メモリカード１０から出力されたバス３上のＣＲＣステータスをＣＲＣステータスレジスタ２４に正確に取り込むことができる。すなわち、高速モード時に生じる、ライトデータのエンドビットをライトＣＲＣステータスのスタートビットと誤認してしまう不具合を防止することができる。
【００４１】
以上説明したように実施形態によれば、高速な書き込み動作を安定して行うことができるメモリカードを提供することができる。
【００４２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００４３】
１〜６…信号線（バス）、１０…ＳＤメモリカード、１１…ライトデータバッファ、１２…ＣＲＣ(cyclic redundancy check)チェック回路、１３…ＣＲＣステータス出力回路、１４…カウンタ、１５…バス切替回路、１６…ＣＲＣステータス出力制御レジスタ、１７…入力バッファ、１８…出力バッファ、２０…ホスト機器、２１…ライトデータバッファ、２２…カウンタ、２３…バス切替回路、２４…ＣＲＣステータスレジスタ、２５…入力バッファ、２６…出力バッファ。
【図１】
2012203474.tif 000003
【図２】
2012203474.tif 000004
【図３】
2012203474.tif 000005