説明

メモリカード

【課題】高速な書き込み動作を安定して行うことができるメモリカードを提供する。
【解決手段】外部から受信したデータに対するCRCステータスを返信するCRCステータス出力回路13と、CRCステータスを返信する出力タイミングを示す値を記憶すると共に、外部から前記値が変更されるCRCステータス出力制御レジスタ16と、CRCステータス出力制御レジスタ16に記憶された前記値に基づいて、CRCステータスの出力タイミングを制御する出力制御回路とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、メモリカードに関し、例えばSDメモリカードにおける書き込みの制御に関するものである。
【背景技術】
【0002】
SD(Secure Digital)メモリカードにおける書き込みでは、ホスト機器からデータ(以下、ライトデータ)がメモリカードに送信される。メモリカードは、ライトデータを受信した後、所定時間後、ライトCRC(cyclic redundancy check)ステータスを返信する。ホスト機器は、ライトCRCステータスを受信し、ライトデータがメモリカードに正しく受信されたか否かを確認する。メモリカードは、受信したライトデータをメモリセルに書き込む。このようなメモリカードの書き込みにおいて、以下のような問題が生じる。
【0003】
ホスト機器がライトCRCステータスを検出するとき、“L”を検出してライトCRCステータスのスタートを検出する。このとき、ホスト機器が出力するライトデータのエンドビットが“L”であるため、ライトデータを出力してからライトCRCステータスを取り込むまでの間隔が短いと、ライトデータのエンドビットをライトCRCステータスのスタートビットと誤認してしまう場合がある。このような誤認が生じると、ホスト機器はライトCRCエラーが発生したと勘違いし、エラー処理を開始してしまう。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】米国特許第7831794B2号明細書
【発明の概要】
【発明が解決しようとする課題】
【0005】
高速な書き込み動作を安定して行うことができるメモリカードを提供する。
【課題を解決するための手段】
【0006】
一実施態様のメモリカードは、外部から受信したデータに対するCRC(cyclic redundancy check)ステータスを返信する出力回路と、前記CRCステータスを返信する出力タイミングを示す値を記憶すると共に、外部から前記値が変更される出力制御レジスタと、前記出力制御レジスタに記憶された前記値に基づいて、前記CRCステータスの出力タイミングを制御する出力制御回路とを具備することを特徴とする。
【図面の簡単な説明】
【0007】
【図1】実施形態のメモリカードとホスト機器の接続を示す図である。
【図2】実施形態のメモリカードとホストの詳細な構成を示すブロック図である。
【図3】実施形態のメモリカードとホスト間の書き込み動作時のタイムチャートである。
【発明を実施するための形態】
【0008】
以下、図面を参照して実施形態のメモリカードについて説明する。ここでは、メモリカードとして、SDメモリカードを例に取る。なお、以下の説明において、同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【0009】
[1]メモリカードとホスト機器の構成
(1)メモリカードとホスト機器の接続
図1は、実施形態のメモリカードとホスト機器の接続を示す図である。
【0010】
SDメモリカード(以下、メモリカードと記す)10とホスト機器(以下、ホストと記す)20の間は、6本の信号線(バス)1〜6によりデータやコマンド等の制御情報がやり取りされる。信号線1は、ホスト20からメモリカード10へクロック信号SDCLKを送信する信号線である。信号線2は、ホスト20とメモリカード10との間(SDCMD間)で、コマンドと、コマンドに対するレスポンスを送受信する信号線である。信号線3〜6は、ホスト20とメモリカード10との間(SDDAT0間, SDDAT1間, SDDAT2間, SDDAT3間)でデータを送受信する信号線である。
【0011】
(2)メモリカードとホスト機器の詳細な構成
図2は、実施形態のメモリカードとホストの詳細な構成を示すブロック図である。図2は、メモリカード10とホスト20間の書き込み動作のやり取りに関する回路を示している。
【0012】
図示するように、メモリカード10は、ライトデータバッファ11、CRC(cyclic redundancy check)チェック回路12、CRCステータス出力回路13、カウンタ14、バス切替回路15、CRCステータス出力制御レジスタ16、入力バッファ17、及び出力バッファ18を備える。
【0013】
ホスト機器20は、ライトデータバッファ21、カウンタ22、バス切替回路23、CRCステータスレジスタ24、入力バッファ25、及び出力バッファ26を備える。
【0014】
書き込み動作時に、ホスト20はライトデータバッファ21に蓄えたデータ(以下、ライトデータと記す)を、出力バッファ26及びバス3を介してメモリカード10に送信する。ホスト20は、ライトデータの送信が終了したことをカウンタ22で検出して、バス切替回路23で出力バッファ26のドライブを停止する。その後、ライトデータに対してメモリカード10から返信されるライトCRCステータスを、バス3及び入力バッファ25を介してCRCステータスレジスタ24で取り込む。
【0015】
メモリカード10は、ホスト20の出力バッファ26から出力されたライトデータを、バス3及び入力バッファ17を介してライトデータバッファ11に取り込む。続いて、ライトデータバッファ11に取り込んだライトデータに対し、CRCチェック回路12でCRC(cyclic redundancy check)を行う。
【0016】
次に、メモリカード10は、CRCチェック回路12によるCRCの結果を、すなわちライトデータが正しく受信できたか否かを、CRCステータス出力回路13にセットする。ここで、ライトデータを正しく受信できた場合、すなわちCRCエラーが発生しなかった場合は、例えば“010”をCRCステータス出力回路13にセットする。一方、データを正しく受信できなかった場合、すなわちCRCエラーが発生した場合は、“101”をセットする。
【0017】
メモリカード10は、ライトデータを受信した後、バス切替回路15で出力バッファ18をイネーブルにし、ライトデータを正しく受信できたか否かを示すライトCRCステータスを、CRCステータス出力回路13から出力バッファ18を介して一定期間内にホスト20に返信する。
【0018】
ここで、メモリカード10には、ライトCRCステータスを返信する出力タイミングを示す値を記憶したCRCステータス出力制御レジスタ16が設けられている。メモリカード10は、ホスト20からライトデータの入力が完了したのをカウンタ14で検出する。そして、ライトデータの入力完了をカウンタ14で検出してから、出力制御レジスタ16に記憶された値(サイクル数)だけ待機して、ホスト20にCRCステータスを返信する。CRCステータス出力制御レジスタ16は入力バッファ17を介してバス3に接続されており、出力制御レジスタ16の値は、ホスト20からバス3を介して書き換えが可能である。
【0019】
なお、前述したカウンタ14、バス切替回路15、及び出力バッファ18により出力制御回路が形成され、出力制御回路は出力制御レジスタ16に記憶された値に基づいて、ライトCRCステータスの出力タイミングを制御する。
【0020】
SDメモリカードでは、例えば、DS/HSモードの場合、データのエンドビットから2クロック(クロックの2サイクル)後に、CRCステータスを返さなければならない。また、高速なUHS-Iモードの場合は、データのエンドビットから2〜8クロック後に、CRCステータスを返さなければならない。
【0021】
そこで、DS/HSモードの場合、データのエンドビットから2クロック後に、CRCステータスを返信するように、出力制御レジスタ16に2クロックを示す値を記憶する。一方、UHS-Iモードの場合は、データのエンドビットから例えば5クロック後に、CRCステータスを返信するように、出力制御レジスタ16に5クロックを示す値を記憶する。
【0022】
[2]メモリカードとホスト機器の書き込み動作
次に、ホスト機器20からメモリカード10にデータを書き込む書き込み動作について説明する。
【0023】
メモリカード10は、複数の動作モードをサポートしている。ここでは、2つの動作モード、例えば、ホスト20とのデータ転送を低速で行う低速モードと、低速モードより速い速度でホスト20とのデータ転送を行う高速モードとをサポートしているものとする。
【0024】
例えば、ホスト20が、先に、低速モードでメモリカード10を動作させ、次に、高速モードでメモリカード10を動作させる例を述べる。
【0025】
ホスト20は、まず、低速モードでメモリカード20を動作させる。このとき、ホスト20は、メモリカード10内の出力制御レジスタ16の値を、低速モードに対応する値に設定する。次に、ホスト機器20は、メモリカード10の動作を低速モードから高速モードに切り換え、高速モードでメモリカード10を動作させる。このとき、ホスト20は、低速モードに対応する値に設定されていたレジスタ16の値を、高速モードに対応する値に書き換える。
【0026】
すなわち、ホスト20は、低速モードにおいてはメモリカード10内の出力制御レジスタ16の値を低速モードに応じた値に設定し、高速モードにおいては出力制御レジスタ16の値を高速モードに応じた値に設定する。
【0027】
詳述すると、例えば、低速モードでは、メモリカード10がライトデータのエンドビットを受け取ってから2クロック(クロックの2サイクル)後に、ライトCRCステータスを返信するように、ホスト20は出力制御レジスタ16の値を設定する。高速モードでは、メモリカード10がライトデータのエンドビットを受け取ってから5クロック後に、CRCステータスを返信するように、ホスト20は出力制御レジスタ16の値を設定する。高速モードでは、低速モード時と比べてCRCステータスを返信するタイミングを3クロック分遅延させる。
【0028】
すなわち、ホスト10は、メモリカード10を低速モードで動作させる場合は、CRCステータスを最短(例えば、2サイクル)で返すように、CRCステータス出力制御レジスタ16に第1の値を設定する。一方、高速モードで動作させる場合には、CRCステータスが確実に取り込めるように、出力制御レジスタ16に第1の値より大きい第2の値を設定し、CRCステータスを返信するまでの待機時間を低速モード時より長く設定する。
【0029】
これにより、高速モード時に生じる、ライトデータのエンドビットをライトCRCステータスのスタートビットと誤認してしまう不具合を防止することができる。
【0030】
なお、ここでは、ホスト20により出力制御レジスタ16の値を書き換える例を述べたが、出力制御レジスタ16に複数の値(前述の例では、低速モードに対応する第1の値と高速モードに対応する第2の値)を記憶しておき、ホスト20により設定された動作モードに応じて、メモリカード10が複数の値から自動的に選択するようにしてもよい。
【0031】
次に、図3を参照して、書き込み動作を詳細に説明する。
【0032】
図3は、実施形態のメモリカードとホスト間の書き込み動作時のタイムチャートである。図3は、CRCステータス出力制御レジスタに“03h”を設定した場合の波形を示す。メモリカード10からの低速モード時のライトCRCステータスの出力タイミング31を、高速モード時に3クロック(クロックの3サイクル)遅らせた32にずらす。これにより、ホスト20はライトCRCステータスの取り込みを開始するタイミングを3クロック遅らせることができ、高速モード時でもホスト20はCRCステータスを正しく取り込むことができる。なお、“03h”は、低速モード時と高速モード時の待機時間の差が3クロックであることを示す。
【0033】
図3において、クロック信号SDCLKはホスト機器20及びメモリカード10が動作するための同期信号である。高速モードと低速モードとでクロックの周波数が異なるが、図3では、説明の便宜上、同一のクロック信号SDCLKを用いて説明する。よって、低速モードと高速モードとでは、図3で示されたクロックSDCLKの周波数は、異なる。
【0034】
図3(a)は、ホスト20の出力バッファ26の出力波形であり、出力バッファ26から出力されるライトデータを示している。図3(b)は、低速モード時におけるメモリカード10の出力バッファ18の出力波形であり、出力バッファ18から返信されるライトCRCステータスを示している。図3(c)は、低速モード時における、バス3上のライトデータと、ライトデータのエンドビットから2サイクル後に返信されるCRCステータスを示している。
【0035】
図3(d)は、高速モード時において、低速モード時の出力タイミング(メモリカード10がライトデータのエンドビットを受け取ってから2クロック後)でCRCステータスが出力された場合であり、バス3上のライトデータと、ライトデータのエンドビットから2サイクル後に返信されるCRCステータスを示している。なお、高速モードの図3(d)では、低速モードの図3(c)よりも、エンドビットが遅くバス上に現れているように見えるが、図3では、エンドビットがホスト20の出力バッファ26から出力されてからバス3上に現れるまでの遅延時間が同一である場合を想定している。高速モードの方がクロックSDCLKの周波数が高いため、クロックのサイクル数で数えると、高速モードの方が、エンドビットがホスト20の出力バッファ26から出力されてからバス3上に現れるまでのクロックのサイクル数が多くなっている。
【0036】
図3(e)は、図3(d)に示すデータが、ホスト20の入力バッファ25に入力されるデータを示している。すなわち、メモリカード10が最短でライトデータのエンドビットを受け取ってから2クロック後にCRCステータスを返送するため、このメモリカード10のCRCステータスの出力タイミングに合わせて、ホスト20は、ホストがエンドビットを出力してから最短で2クロック後にCRCステータスを受け取れるように動作する。このため、この図3(e)では、ホスト20が出力したライトデータのエンドビットの“L”をCRCステータスのスタートビットと誤判定してしまう。
【0037】
そこで、図3(b)に示すように、低速モード時にメモリカード10から出力されるライトCRCステータスの出力タイミング31を、高速モード時には3クロック遅らせた32にずらす。
【0038】
図3(f)〜図3(i)は、本実施形態における高速モード時の波形を示す。
【0039】
図3(f)は、高速モード時における、バス3上のライトデータと、ライトデータのエンドビットから5サイクル後に返信されるCRCステータスを示している。前述した誤判定を防止するために、ここでは、CRCステータスが低速モードにより3クロック遅れて出力されている。図3(g)は、図3(f)に示すデータが、ホスト20の入力バッファ25に入力されるときのデータを示している。図3(g)に示すように、ホスト20の入力バッファ25には、図3(e)に示した波形よりCRCステータスが3クロック遅れて入力されている。図3(h)は、出力制御レジスタ16に設定された値“03h”を示す。出力制御レジスタ16に設定された値“03h”に基づいて、メモリカード10からCRCステータスが3クロック遅れて出力されている。
【0040】
以上により、ホスト20は、図3(i)に示すように、メモリカード10から出力されたバス3上のCRCステータスをCRCステータスレジスタ24に正確に取り込むことができる。すなわち、高速モード時に生じる、ライトデータのエンドビットをライトCRCステータスのスタートビットと誤認してしまう不具合を防止することができる。
【0041】
以上説明したように実施形態によれば、高速な書き込み動作を安定して行うことができるメモリカードを提供することができる。
【0042】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0043】
1〜6…信号線(バス)、10…SDメモリカード、11…ライトデータバッファ、12…CRC(cyclic redundancy check)チェック回路、13…CRCステータス出力回路、14…カウンタ、15…バス切替回路、16…CRCステータス出力制御レジスタ、17…入力バッファ、18…出力バッファ、20…ホスト機器、21…ライトデータバッファ、22…カウンタ、23…バス切替回路、24…CRCステータスレジスタ、25…入力バッファ、26…出力バッファ。

【特許請求の範囲】
【請求項1】
外部から受信したデータに対するCRC(cyclic redundancy check)ステータスを返信する出力回路と、
前記CRCステータスを返信する出力タイミングを示す値を記憶すると共に、外部から前記値が変更される出力制御レジスタと、
前記出力制御レジスタに記憶された前記値に基づいて、前記CRCステータスの出力タイミングを制御する出力制御回路と、
を具備することを特徴とするメモリカード。
【請求項2】
外部とのデータ転送を低速で行う低速モードと、前記低速モードより高速で外部とのデータ転送を行う高速モードとを備え、前記低速モードに設定された場合は、外部から前記出力制御レジスタの前記値が第1の値に書き換えられ、前記高速モードに設定された場合は、外部から前記出力制御レジスタの前記値が第2の値に書き換えられることを特徴とする請求項1に記載のメモリカード。
【請求項3】
前記出力制御レジスタは、外部とのデータ転送を低速で行う低速モードに対応する第1の値と、前記低速モードより高速で外部とのデータ転送を行う高速モードに対応する第2の値とを有し、
外部から設定された前記低速モードあるいは前記高速モードのいずれかに応じて、前記第1の値あるいは前記第2の値のいずれかが選択されることを特徴とする請求項1に記載のメモリカード。
【請求項4】
前記データが外部から入力されるバスと、前記CRCステータスが外部へ出力されるバスは共通であることを特徴とする請求項1乃至3のいずれかに記載のメモリカード。
【請求項5】
前記出力制御回路は、前記出力回路から出力された前記CRCステータスを外部に出力する出力バッファと、
前記出力制御レジスタに記憶された前記値に基づいて、前記出力タイミングをカウントするカウンタと、
前記カウンタからの信号に従って、前記出力バッファからの前記CRCステータスの前記出力タイミングを切り替える切替回路と、
を具備することを特徴とする請求項1乃至4のいずれかに記載のメモリカード。
【請求項6】
外部から受信した前記データを記憶するデータバッファと、
前記データバッファに記憶された前記データにCRC(cyclic redundancy check)を行うCRCチェック回路とを具備し、
前記出力回路は、前記CRCチェック回路によるCRCの結果を前記CRCステータスとして返信することを特徴とする請求項1乃至5のいずれかに記載のメモリカード。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate