説明

情報処理システム

【課題】 メモリカードにおける再データ取得時の通信エラーの発生確率を大幅に低減する。
【解決手段】 情報処理システム1において、ホスト2がメモリカード3にデータを送信中、またはホスト2がメモリカード3からのデータ受信中にクロックノイズが原因でエラーが発生すると、ホスト2は、データ幅を4ビットから1ビットに変更し2回目のリトライ動作をする。データ線のバス幅を1ビットに変更することによって、クロックノイズが低減し、2回目に通信エラーが発生する確率を大幅に低減することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システムのデータ転送技術に関し、特に、再データ取得時における通信エラーの発生確率の低減に有効な技術に関する。
【背景技術】
【0002】
パーソナルコンピュータや多機能端末機などの外部記憶メディアとして、たとえば、CF(Compact Flash)カード(登録商標)、SDカード(登録商標)、メモリスティック(登録商標)やマルチメディアカード(登録商標)などのメモリカードが広く知られている。
【0003】
たとえば、SDカードなどの内部にコントローラを備えるメモリカードとそのホストは、1本のクロック線、1本のコマンド線、および複数のデータ線などからなるバスを使用してデータ転送を行う。
【0004】
クロック線は、ホストが生成したクロック信号をメモリカードに転送する。クロック信号は、ホストとメモリカードがコマンド、コマンドに対するレスポンス、およびデータを抽出するのに用いられる。
【0005】
コマンド線は、ホストが生成したコマンドが該ホストからメモリカードに転送され、コマンドに対するレスポンスがメモリカードからホストに転送される。データ線は、オーディオコンテンツなどの実データがホストからメモリカード、またはメモリカードからホストに転送される。
【0006】
以下に、ホストがメモリカードに対してデータを読み出す際の一例について説明する。なお、データ線の本数は、たとえば、1本、4本、または8本のカードがあるが、ここでは、4本のデータ線を有した構成とする。
【0007】
まず、ホストは、データの同期や抽出に使用するクロック信号を生成してカードに送信する。続いて、メモリカードは、ホストから転送されたクロック信号を抽出し、メモリから読み出したデータを4ビットに変換(4ビット変換)する。
【0008】
その後、メモリカードは、メモリから読み出したデータをクロック信号に同期させてバス(4本のデータ線)に出力する。メモリカードから、データがクロック信号とともにバスを介してホストに転送される。
【0009】
ホストは、データを受信するとクロック信号を使用してデータを抽出し、そのデータをメモリカードがビットに変換したのとは逆の処理(以下、4ビット逆変換)をしてアプリケーションなどに渡す。
【発明の開示】
【発明が解決しようとする課題】
【0010】
ところが、上記のようなメモリカードにおけるデータ転送技術では、次のような問題点があることが本発明者により見い出された。
【0011】
すなわち、読み出しデータなどをデータ転送する場合、データとともにクロック信号がバス上を転送されるため、そのクロックノイズに起因する通信エラーが頻繁に発生する恐れがある。
【0012】
通信エラーが発生した場合、ホストは再度データの取得を試みるが、データ線のバス幅やクロック信号の周波数などが同じ条件で転送されるため、再度通信エラーが発生する確率が高くなってしまうという問題がある。
【0013】
本発明の目的は、メモリカードにおけるデータ再取得時の通信エラーの発生確率を大幅に低減し、データ転送における信頼性を向上させることのできる技術を提供することにある。
【0014】
本発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【0015】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【0016】
本発明は、情報記憶装置と、該情報記憶装置を管理する情報処理装置とよりなり、2本以上のデータ線を介してデータ転送が行われる情報処理システムであって、該情報処理装置は、情報記憶装置とのデータ転送において通信エラーが発生した際に、データ転送に用いるデータ線の本数を少なくして再データ取得を行うデータ転送制御部を備えたものである。
【0017】
また、本願のその他の発明の概要を簡単に示す。
【0018】
本発明は、前記データ転送制御部が、通信エラーが発生した際に、データ転送に用いるデータ線を1本にして再データ取得の通信を行うものである。
【0019】
また、本発明は、前記情報処理装置が、情報記憶装置に供給する第1のクロック信号を生成するクロック生成部を備え、データ転送制御部は、再データ取得を行う際に、第1のクロック信号よりも低い周波数の第2のクロック信号を生成するようにクロック生成部の制御を行い、情報記憶装置に第2のクロック信号を供給するものである。
【0020】
さらに、本発明は、データ転送において複数の転送モードを有した情報記憶装置と、該情報記憶装置を管理する情報処理装置とよりなり、2本以上のデータ線を介してデータ転送が行われる情報処理システムであって、該情報処理装置は、情報記憶装置とのデータ転送において通信エラーが発生した際に、データ転送のモードをより低速な転送モードに切り換えて再データ取得を行うデータ転送制御部を備えたものである。
【0021】
また、本発明は、前記情報処理装置が、情報記憶装置に供給する第1のクロック信号を生成するクロック生成部を備え、データ転送制御部は、再データ取得を行う際に、第1のクロック信号よりも低い周波数の第2のクロック信号を生成するようにクロック生成部の制御を行い、情報記憶装置に第2のクロック信号を供給するものである。
【発明の効果】
【0022】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【0023】
(1)通信エラーが発生した際の再データ取得において、通信エラーが再度発生する確率を大幅に低減することができる。
【0024】
(2)上記(1)により、情報処理システムにおけるデータ転送の信頼性を大幅に向上させることができる。
【発明を実施するための最良の形態】
【0025】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【0026】
図1は、本発明の一実施の形態1による情報処理システムのブロック図、図2は、情報処理システムに設けられたホストコントローラの一例を示すブロック図、図3は、情報処理システムに設けられたカードコントローラの一例を示すブロック図、図4は、図1の情報処理システムにおけるリトライ動作の一例を示す説明図、図5は、図1の情報処理システムにおけるリトライ動作の処理例を示すフローチャートである。
【0027】
本実施の形態において、情報処理システム1は、図1に示すように、ホスト(情報処理装置)2、およびメモリカード(情報記憶装置)3から構成されている。ホスト2は、パーソナルコンピュータや多機能端末機などの情報処理装置からなり、メモリカード3は、たとえば、ホスト2の外部記憶メディアとして用いられる。
【0028】
ホスト2とメモリカード3とは、バスBを介して接続されている。バスBは、1本のクロック線CLK、1本のコマンド線CMD、および4本のデータ線DATA0〜DATA3から構成されている。
【0029】
クロック線CLKは、ホスト2が生成したクロック信号をメモリカード3に転送する。クロック信号は、ホスト2とメモリカード3がコマンド、コマンドに対するレスポンス、およびデータを抽出するのに用いられる。
【0030】
コマンド線CMDは、ホスト2が生成したコマンドが該ホスト2からメモリカード3に転送され、コマンドに対するレスポンスがメモリカード3からホスト2に転送される。データ線DATA0〜DATA3は、オーディオコンテンツなどの実データがホスト2からメモリカード3、またはメモリカード3からホスト2に転送される。
【0031】
ホスト2には、クロック生成部4、およびホストコントローラ5が備えられている。クロック生成部4は、コマンド、レスポンス、ならびにデータなどの各情報の同期や抽出に使用されるクロック信号を生成する。
【0032】
クロック生成部4は、ホストコントローラ5の制御に基づいて、クロック信号を生成する。ホストコントローラ5は、コマンド送信、レスポンス受信、およびデータ送受信などの制御を行う。
【0033】
メモリカード3は、クロック抽出部6、カードコントローラ7、および半導体メモリ8から構成されている。クロック抽出部6は、ホスト2から供給されたクロックを抽出し、そのクロックをカードコントローラ7に供給する。
【0034】
カードコントローラ7は、メモリカード3における制御を司る。半導体メモリ8は、たとえば、フラッシュメモリなどの不揮発性半導体メモリからなる。この半導体メモリ8は、1個、またはそれ以上の複数個であってもよい。
【0035】
図2は、ホストコントローラ5の一例を示すブロック図である。
【0036】
ホストコントローラ5は、制御部(データ転送制御部)9、FIFO部10、ビット変換部11、ならびにトランシーバ部12などから構成されている。制御部9は、コマンドの作成、受信したレスポンスの解析、データの送受信制御、およびクロックのカードへの供給や停止などのクロック制御をする。
【0037】
特に、データの送受信制御においては、メモリカードにデータを送信中、あるいはメモリカードからのデータを受信中にエラーが発生した際に、データ線のバス幅を4ビットから1ビットにして再度データの取得を試みるリトライ動作を行う。
【0038】
FIFO部10は、いわゆる先入れ先出し方式(First In First Out)のバッファからなり、送受信データを一時的に格納する。ビット変換部11は、送信データの4ビット変換、および受信したデータの4ビット逆変換を行う。トランシーバ部12は、アナログ/デジタル(A/D)変換を行う。
【0039】
図3は、カードコントローラ7の一例を示すブロック図である。
【0040】
カードコントローラ7は、制御部13、FIFO部14、ビット変換部15、ならびにトランシーバ部16などから構成されている。制御部13は、レスポンスの作成、受信したコマンドの解析、およびデータの送受信制御を行う。
【0041】
FIFO部14は、FIFO部10と同様に先入れ先出し方式のバッファからなり、送受信データを一時的に格納する。ビット変換部15は、送信データの4ビット変換、および受信したデータの4ビット逆変換を行う。トランシーバ部16は、アナログ/デジタル変換を行う。
【0042】
次に、本実施の形態における情報処理システム1による作用について説明する。
【0043】
ここでは、情報処理システム1において、ホスト2がメモリカード3にデータを送信中、またはホスト2がメモリカード3からのデータ受信中にクロックノイズが原因でエラーが発生した際にホスト2が再度データの取得を試みるリトライ動作の一例について図4を用いて説明する。
【0044】
まず、4ビットでのデータ転送時に、通信エラーが発生すると、ホスト2の制御部9は、データ幅を4ビットから1ビットに変更し2回目のリトライ動作をする。データ線のバス幅を1ビットに変更することによって、クロックノイズが低減し、エラー発生確率はQ(<<P)となり、2回目でも通信エラーが発生する確率はP*Qとなる。
【0045】
以降、通信エラーがなくなるか、リトライ動作を通信エラーの状態で終了するまで、データ線のバス幅が1ビットでリトライ動作を繰り返す。データ線のバス幅は1ビットなのでリトライ動作一回あたりのエラー発生確率はQである。たとえば、N回目(N≧2)まで通信エラーが発生し続ける確率はP*Q(N-1) となる。
【0046】
たとえば、ホストがデータ線のバス幅(4ビット)を変えない場合、1回目の通信エラーの発生確率はPであり、2回目でも通信エラーが発生する確率はP2 となる。よって、2回目以降、N回目まで通信エラーが発生し続ける確率はPN となる。
【0047】
よって、リトライ動作において、2回目以降の通信でデータ線のバス幅を1ビットとしてリトライ動作を繰り返すことにより通信エラーを低減することができるので、リトライ動作の成功確率を大きくすることができる。
【0048】
次に、情報処理システム1におけるリトライ動作の処理について、図5のフローチャートを用いて説明する。
【0049】
まず、ホスト2が起動した後、メモリカード3をホスト2に挿入する(ステップS101)。続いて、ホスト2のホストコントローラ5は、コマンドをメモリカード3に発行することにより初期化し(ステップS102)、該メモリカード3をリード/ライトなどのアクセスが可能になる状態に遷移させる。そして、ホスト2の制御部9は、メモリカード3との高速通信を可能にするため、データ線のバス幅を4ビットに設定する(ステップS103)。
【0050】
ホスト2は、アプリケーションからライト要求があるかを判定する(ステップS104)。特に、リトライ回数のカウンタとして変数RETRY CONTを、リトライ回数の上限値として定数MAX CONTを定義する。ここで、ライト要求を受信した場合、変数RETRY CONTを0に設定した後、ライト動作を開始する。
【0051】
ホスト2において、制御部9は、メモリカード3にライトコマンドを発行する(ステップS105)。続いて、制御部9は、メモリカード3にライトデータを送信し(ステップS106)、通信エラーがあったかを判定する(ステップS107)。
【0052】
ステップS107の処理において、通信エラーがあった場合、制御部9は、リトライ回数を判定し(ステップS108)、リトライ回数が上限値以下か否かを判定する。この判定は、変数RETRY CONTを定数MAX CONTと比較することで行う。予め設定されているリトライ回数の上限に達してない場合、変数RETRY CONTを+1とする。
【0053】
ステップS108の処理において、リトライ回数が上限に達している場合、制御部9はアプリケーションにエラー通知し(ステップS109)、ライト動作を終了する。
【0054】
また、ステップS108の処理において、リトライ回数が上限以下の場合、制御部9は、次のリトライが1回目のリトライか否かを判定する(ステップS110)。このステップS110の判定は変数RETRY CONTを1と比較することで行う。
【0055】
ステップS110の処理において、リトライが1回目の場合には、制御部9は、次のリトライでのクロックノイズを小さくするため、バス幅を1ビットに設定する(ステップS111)。
【0056】
また、ステップS107の処理おいて、通信エラーがなかった場合、制御部9は、ライト動作においてリトライしたかを判定する(ステップS112)。この判定は、RETRY CONTが0でないかを判定することで行う。
【0057】
ステップS112の処理おいて、リトライをしている場合、制御部9は、高速通信を可能にするため、データ線のバス幅を4ビットに設定する(ステップS113)。
【0058】
次に、ステップS104の処理おいて、アプリケーションからライト要求がない場合、制御部9は、アプリケーションからリード要求があるかを判定する(ステップS114)。リード要求を受信した場合、RETRY CONTを0に設定した後、リード動作を開始するために、制御部9は、メモリカードカード3にリードコマンドを発行する(ステップS115)。
【0059】
そして、制御部9は、通信エラーがあったかを判定する(ステップS116)。この判定で通信エラーがあった場合、制御部9は、リトライ回数が上限値以下かを判定する(ステップS117)。この判定はRETRY CONTをMAX CONTと比較することで行う。
【0060】
ステップS117の処理でリトライ回数の上限に達してない場合、RETRY CONTを+1にする。
【0061】
続いて、制御部9は、次のリトライが1回目のリトライかを判定する(ステップS118)。この判定はRETRY CONTを1と比較することで行う。ステップS118で1回目のリトライであれば、制御部9は、次のリトライでのクロックノイズを小さくするため、バス幅を1ビットに設定する(ステップS119)。
【0062】
また、ステップS117の処理おいて、リトライ回数が上限に達している場合、制御部9は、アプリケーションにエラーを通知し、リード動作を終了する(ステップS120)。
【0063】
一方、ステップS116の処理おいて通信エラーがなかった場合、制御部9は、リードデータを受信する(ステップS121)。その後、制御部9は、リード動作において、リトライしたかを判定する(ステップS122)。この判定はRETRY CONTが0でないかを判定することで行う。ステップS122の処理でリトライをした場合、制御部9は高速通信を可能にするため、バス幅を4ビットに設定する(ステップS123)。
【0064】
続いて、ステップS122の処理においてリトライをしていない場合、またはステップS123の処理後、制御部9は、メモリカード3が削除(ホスト3からメモリカード3が取り外されたか)されたかを判定する(ステップS124)。
【0065】
削除されたら処理を終了し(ステップS125)、削除されていなければ、ステップS104の処理に戻り、アプリケーションからのライト要求またはリード要求を待つ。
【0066】
それにより、本実施の形態によれば、クロック信号のノイズに起因するリトライ動作の通信エラーを大幅に低減することができ、情報処理システム1におけるデータ転送の信頼性を向上させることができる。
【0067】
また、本実施の形態では、リトライ動作時においてデータ線のビット幅を4ビットから1ビットに変更する場合について記載したが、たとえば、制御部9が、データ線のビット幅を4ビットから1ビットに変更することに加え、クロック生成部4が生成するクロック信号の周波数を低くしてリトライ動作を行うようにしてもよい。
【0068】
この場合のリトライ動作について、図6を用いて説明する。
【0069】
4ビットでのデータ転送時、通信エラーが発生したとする。このときのクロック信号の周波数をCLKα(第1のクロック信号)とし、通信エラーの発生確率をPとする。通信エラーの発生後、制御部9は、データ線のバス幅を4ビットから1ビットに変更するとともに、クロック生成部4を制御することによってクロック信号の周波数をCLKαよりも低い周波数からなるCLKβ(第2のクロック信号)とする。
【0070】
データ線のバス幅が4ビットから1ビットになり、さらにクロック信号の周波数が低くなることによって、クロックノイズが低減しエラー発生確率はR(<<Q<<P)となり、2回目の通信エラーが発生する確率はP*Rとなる。
【0071】
以降、通信エラーがなくなるか、リトライ動作を通信エラーの状態で終了するまで、データ線のバス幅を1ビット、クロック周波数をCLKβでリトライ動作を繰り返す。そこで、リトライ動作一回あたりのエラー発生確率はRとなる。たとえば、N回目(N≧2)まで通信エラーが発生し続ける確率はP*R(N-1) となる。
【0072】
それにより、リトライ動作の成功確率をより高めることが可能となり、情報処理システム1におけるデータ転送の信頼性を大幅に向上させることができる。
【0073】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【0074】
たとえば、メモリカードの規格の1つであるMMC規格では、クロック信号の周波数が、最大52MHzで動作する高速モードが定義されている。この高速モードが適用されているホストとメモリカードとに本発明を適用することができる。
【0075】
高速モードにおいてホストとメモリカードとの間でデータ転送が行われる際に、クロックノイズが原因で通信エラーが発生した場合、ホストは、高速モードで動作しているメモリカードを通常モードに遷移させ、さらに、クロック信号の周波数を低く設定した後に、リトライ動作を行う。
【0076】
これにより、高速モードを有するメモリカードであっても、リトライ動作時の通信エラーの発生確率を低減することができる。
【0077】
この本発明の応用例は、特に、より高速なメモリカード、およびSD、MMCと上位互換となるメモリカードにも適用できるという利点がある。
【産業上の利用可能性】
【0078】
本発明は、メモリカードを用いて構成される情報処理システムにおけるデータ転送の信頼性の向上化技術に適している。
【図面の簡単な説明】
【0079】
【図1】本発明の一実施の形態1による情報処理システムのブロック図である。
【図2】情報処理システムに設けられたホストコントローラの一例を示すブロック図である。
【図3】情報処理システムに設けられたカードコントローラの一例を示すブロック図である。
【図4】図1の情報処理システムにおけるリトライ動作の一例を示す説明図である。
【図5】図1の情報処理システムにおけるリトライ動作の処理例を示すフローチャートである。
【図6】本発明の他の実施の形態による情報処理システムにおけるリトライ動作の一例を示す説明図である。
【符号の説明】
【0080】
1 情報処理システム
2 ホスト(情報処理装置)
3 メモリカード(情報記憶装置)
4 クロック生成部
5 ホストコントローラ5
6 クロック抽出部
7 カードコントローラ
8 半導体メモリ
9 制御部(データ転送制御部)
10 FIFO部
11 ビット変換部
12 トランシーバ部
13 制御部
14 FIFO部
15 ビット変換部
16 トランシーバ部
B バス
CLK クロック線
CMD コマンド線
DATA0〜DATA3 データ線

【特許請求の範囲】
【請求項1】
情報記憶装置と、前記情報記憶装置を管理する情報処理装置とよりなり、2本以上のデータ線を介してデータ転送が行われる情報処理システムであって、
前記情報処理装置は、
前記情報記憶装置とのデータ転送において通信エラーが発生した際に、データ転送に用いるデータ線の本数を少なくして再データ取得を行うデータ転送制御部を備えたことを特徴とする情報処理システム。
【請求項2】
請求項1記載の情報処理システムにおいて、
前記データ転送制御部は、
通信エラーが発生した際に、データ転送に用いる前記データ線を1本にすることを特徴とする情報処理システム。
【請求項3】
請求項1または2記載の情報処理システムにおいて、
前記情報処理装置は、
前記情報記憶装置に供給する第1のクロック信号を生成するクロック生成部を備え、
前記データ転送制御部は、
再データ取得を行う際に、前記第1のクロック信号よりも低い周波数の第2のクロック信号を生成するように前記クロック生成部の制御を行い、前記情報記憶装置に前記第2のクロック信号を供給することを特徴とする情報処理システム。
【請求項4】
データ転送において複数の転送モードを有した情報記憶装置と、前記情報記憶装置を管理する情報処理装置とよりなり、2本以上のデータ線を介してデータ転送が行われる情報処理システムであって、
前記情報処理装置は、
前記情報記憶装置とのデータ転送において通信エラーが発生した際に、データ転送のモードをより低速な転送モードに切り換えて再データ取得を行うデータ転送制御部を備えたことを特徴とする情報処理システム。
【請求項5】
請求項4記載の情報処理システムにおいて、
前記情報処理装置は、
前記情報記憶装置に供給する第1のクロック信号を生成するクロック生成部を備え、
前記データ転送制御部は、
再データ取得を行う際に、前記第1のクロック信号よりも低い周波数の第2のクロック信号を生成するように前記クロック生成部の制御を行い、前記情報記憶装置に前記第2のクロック信号を供給することを特徴とする情報処理システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2007−34540(P2007−34540A)
【公開日】平成19年2月8日(2007.2.8)
【国際特許分類】
【出願番号】特願2005−215177(P2005−215177)
【出願日】平成17年7月26日(2005.7.26)
【出願人】(503121103)株式会社ルネサステクノロジ (4,790)
【Fターム(参考)】