(57)【要約】【課題】  メモリカードにおける再データ取得時の通信エラーの発生確率を大幅に低減する。【解決手段】  情報処理システム１において、ホスト２がメモリカード３にデータを送信中、またはホスト２がメモリカード３からのデータ受信中にクロックノイズが原因でエラーが発生すると、ホスト２は、データ幅を４ビットから１ビットに変更し２回目のリトライ動作をする。データ線のバス幅を１ビットに変更することによって、クロックノイズが低減し、２回目に通信エラーが発生する確率を大幅に低減することができる。【選択図】  図１
2007034540.tif 000002
【特許請求の範囲】
【請求項１】
情報記憶装置と、前記情報記憶装置を管理する情報処理装置とよりなり、２本以上のデータ線を介してデータ転送が行われる情報処理システムであって、
前記情報処理装置は、
前記情報記憶装置とのデータ転送において通信エラーが発生した際に、データ転送に用いるデータ線の本数を少なくして再データ取得を行うデータ転送制御部を備えたことを特徴とする情報処理システム。
【請求項２】
請求項１記載の情報処理システムにおいて、
前記データ転送制御部は、
通信エラーが発生した際に、データ転送に用いる前記データ線を１本にすることを特徴とする情報処理システム。
【請求項３】
請求項１または２記載の情報処理システムにおいて、
前記情報処理装置は、
前記情報記憶装置に供給する第１のクロック信号を生成するクロック生成部を備え、
前記データ転送制御部は、
再データ取得を行う際に、前記第１のクロック信号よりも低い周波数の第２のクロック信号を生成するように前記クロック生成部の制御を行い、前記情報記憶装置に前記第２のクロック信号を供給することを特徴とする情報処理システム。
【請求項４】
データ転送において複数の転送モードを有した情報記憶装置と、前記情報記憶装置を管理する情報処理装置とよりなり、２本以上のデータ線を介してデータ転送が行われる情報処理システムであって、
前記情報処理装置は、
前記情報記憶装置とのデータ転送において通信エラーが発生した際に、データ転送のモードをより低速な転送モードに切り換えて再データ取得を行うデータ転送制御部を備えたことを特徴とする情報処理システム。
【請求項５】
請求項４記載の情報処理システムにおいて、
前記情報処理装置は、
前記情報記憶装置に供給する第１のクロック信号を生成するクロック生成部を備え、
前記データ転送制御部は、
再データ取得を行う際に、前記第１のクロック信号よりも低い周波数の第２のクロック信号を生成するように前記クロック生成部の制御を行い、前記情報記憶装置に前記第２のクロック信号を供給することを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システムのデータ転送技術に関し、特に、再データ取得時における通信エラーの発生確率の低減に有効な技術に関する。
【背景技術】
【０００２】
パーソナルコンピュータや多機能端末機などの外部記憶メディアとして、たとえば、ＣＦ（Ｃｏｍｐａｃｔ  Ｆｌａｓｈ）カード（登録商標）、ＳＤカード（登録商標）、メモリスティック（登録商標）やマルチメディアカード（登録商標）などのメモリカードが広く知られている。
【０００３】
たとえば、ＳＤカードなどの内部にコントローラを備えるメモリカードとそのホストは、１本のクロック線、１本のコマンド線、および複数のデータ線などからなるバスを使用してデータ転送を行う。
【０００４】
クロック線は、ホストが生成したクロック信号をメモリカードに転送する。クロック信号は、ホストとメモリカードがコマンド、コマンドに対するレスポンス、およびデータを抽出するのに用いられる。
【０００５】
コマンド線は、ホストが生成したコマンドが該ホストからメモリカードに転送され、コマンドに対するレスポンスがメモリカードからホストに転送される。データ線は、オーディオコンテンツなどの実データがホストからメモリカード、またはメモリカードからホストに転送される。
【０００６】
以下に、ホストがメモリカードに対してデータを読み出す際の一例について説明する。なお、データ線の本数は、たとえば、１本、４本、または８本のカードがあるが、ここでは、４本のデータ線を有した構成とする。
【０００７】
まず、ホストは、データの同期や抽出に使用するクロック信号を生成してカードに送信する。続いて、メモリカードは、ホストから転送されたクロック信号を抽出し、メモリから読み出したデータを４ビットに変換（４ビット変換）する。
【０００８】
その後、メモリカードは、メモリから読み出したデータをクロック信号に同期させてバス（４本のデータ線）に出力する。メモリカードから、データがクロック信号とともにバスを介してホストに転送される。
【０００９】
ホストは、データを受信するとクロック信号を使用してデータを抽出し、そのデータをメモリカードがビットに変換したのとは逆の処理（以下、４ビット逆変換）をしてアプリケーションなどに渡す。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ところが、上記のようなメモリカードにおけるデータ転送技術では、次のような問題点があることが本発明者により見い出された。
【００１１】
すなわち、読み出しデータなどをデータ転送する場合、データとともにクロック信号がバス上を転送されるため、そのクロックノイズに起因する通信エラーが頻繁に発生する恐れがある。
【００１２】
通信エラーが発生した場合、ホストは再度データの取得を試みるが、データ線のバス幅やクロック信号の周波数などが同じ条件で転送されるため、再度通信エラーが発生する確率が高くなってしまうという問題がある。
【００１３】
本発明の目的は、メモリカードにおけるデータ再取得時の通信エラーの発生確率を大幅に低減し、データ転送における信頼性を向上させることのできる技術を提供することにある。
【００１４】
本発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１５】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１６】
本発明は、情報記憶装置と、該情報記憶装置を管理する情報処理装置とよりなり、２本以上のデータ線を介してデータ転送が行われる情報処理システムであって、該情報処理装置は、情報記憶装置とのデータ転送において通信エラーが発生した際に、データ転送に用いるデータ線の本数を少なくして再データ取得を行うデータ転送制御部を備えたものである。
【００１７】
また、本願のその他の発明の概要を簡単に示す。
【００１８】
本発明は、前記データ転送制御部が、通信エラーが発生した際に、データ転送に用いるデータ線を１本にして再データ取得の通信を行うものである。
【００１９】
また、本発明は、前記情報処理装置が、情報記憶装置に供給する第１のクロック信号を生成するクロック生成部を備え、データ転送制御部は、再データ取得を行う際に、第１のクロック信号よりも低い周波数の第２のクロック信号を生成するようにクロック生成部の制御を行い、情報記憶装置に第２のクロック信号を供給するものである。
【００２０】
さらに、本発明は、データ転送において複数の転送モードを有した情報記憶装置と、該情報記憶装置を管理する情報処理装置とよりなり、２本以上のデータ線を介してデータ転送が行われる情報処理システムであって、該情報処理装置は、情報記憶装置とのデータ転送において通信エラーが発生した際に、データ転送のモードをより低速な転送モードに切り換えて再データ取得を行うデータ転送制御部を備えたものである。
【００２１】
また、本発明は、前記情報処理装置が、情報記憶装置に供給する第１のクロック信号を生成するクロック生成部を備え、データ転送制御部は、再データ取得を行う際に、第１のクロック信号よりも低い周波数の第２のクロック信号を生成するようにクロック生成部の制御を行い、情報記憶装置に第２のクロック信号を供給するものである。
【発明の効果】
【００２２】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００２３】
（１）通信エラーが発生した際の再データ取得において、通信エラーが再度発生する確率を大幅に低減することができる。
【００２４】
（２）上記（１）により、情報処理システムにおけるデータ転送の信頼性を大幅に向上させることができる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００２６】
図１は、本発明の一実施の形態１による情報処理システムのブロック図、図２は、情報処理システムに設けられたホストコントローラの一例を示すブロック図、図３は、情報処理システムに設けられたカードコントローラの一例を示すブロック図、図４は、図１の情報処理システムにおけるリトライ動作の一例を示す説明図、図５は、図１の情報処理システムにおけるリトライ動作の処理例を示すフローチャートである。
【００２７】
本実施の形態において、情報処理システム１は、図１に示すように、ホスト（情報処理装置）２、およびメモリカード（情報記憶装置）３から構成されている。ホスト２は、パーソナルコンピュータや多機能端末機などの情報処理装置からなり、メモリカード３は、たとえば、ホスト２の外部記憶メディアとして用いられる。
【００２８】
ホスト２とメモリカード３とは、バスＢを介して接続されている。バスＢは、１本のクロック線ＣＬＫ、１本のコマンド線ＣＭＤ、および４本のデータ線ＤＡＴＡ０〜ＤＡＴＡ３から構成されている。
【００２９】
クロック線ＣＬＫは、ホスト２が生成したクロック信号をメモリカード３に転送する。クロック信号は、ホスト２とメモリカード３がコマンド、コマンドに対するレスポンス、およびデータを抽出するのに用いられる。
【００３０】
コマンド線ＣＭＤは、ホスト２が生成したコマンドが該ホスト２からメモリカード３に転送され、コマンドに対するレスポンスがメモリカード３からホスト２に転送される。データ線ＤＡＴＡ０〜ＤＡＴＡ３は、オーディオコンテンツなどの実データがホスト２からメモリカード３、またはメモリカード３からホスト２に転送される。
【００３１】
ホスト２には、クロック生成部４、およびホストコントローラ５が備えられている。クロック生成部４は、コマンド、レスポンス、ならびにデータなどの各情報の同期や抽出に使用されるクロック信号を生成する。
【００３２】
クロック生成部４は、ホストコントローラ５の制御に基づいて、クロック信号を生成する。ホストコントローラ５は、コマンド送信、レスポンス受信、およびデータ送受信などの制御を行う。
【００３３】
メモリカード３は、クロック抽出部６、カードコントローラ７、および半導体メモリ８から構成されている。クロック抽出部６は、ホスト２から供給されたクロックを抽出し、そのクロックをカードコントローラ７に供給する。
【００３４】
カードコントローラ７は、メモリカード３における制御を司る。半導体メモリ８は、たとえば、フラッシュメモリなどの不揮発性半導体メモリからなる。この半導体メモリ８は、１個、またはそれ以上の複数個であってもよい。
【００３５】
図２は、ホストコントローラ５の一例を示すブロック図である。
【００３６】
ホストコントローラ５は、制御部（データ転送制御部）９、ＦＩＦＯ部１０、ビット変換部１１、ならびにトランシーバ部１２などから構成されている。制御部９は、コマンドの作成、受信したレスポンスの解析、データの送受信制御、およびクロックのカードへの供給や停止などのクロック制御をする。
【００３７】
特に、データの送受信制御においては、メモリカードにデータを送信中、あるいはメモリカードからのデータを受信中にエラーが発生した際に、データ線のバス幅を４ビットから１ビットにして再度データの取得を試みるリトライ動作を行う。
【００３８】
ＦＩＦＯ部１０は、いわゆる先入れ先出し方式（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）のバッファからなり、送受信データを一時的に格納する。ビット変換部１１は、送信データの４ビット変換、および受信したデータの４ビット逆変換を行う。トランシーバ部１２は、アナログ／デジタル（Ａ／Ｄ）変換を行う。
【００３９】
図３は、カードコントローラ７の一例を示すブロック図である。
【００４０】
カードコントローラ７は、制御部１３、ＦＩＦＯ部１４、ビット変換部１５、ならびにトランシーバ部１６などから構成されている。制御部１３は、レスポンスの作成、受信したコマンドの解析、およびデータの送受信制御を行う。
【００４１】
ＦＩＦＯ部１４は、ＦＩＦＯ部１０と同様に先入れ先出し方式のバッファからなり、送受信データを一時的に格納する。ビット変換部１５は、送信データの４ビット変換、および受信したデータの４ビット逆変換を行う。トランシーバ部１６は、アナログ／デジタル変換を行う。
【００４２】
次に、本実施の形態における情報処理システム１による作用について説明する。
【００４３】
ここでは、情報処理システム１において、ホスト２がメモリカード３にデータを送信中、またはホスト２がメモリカード３からのデータ受信中にクロックノイズが原因でエラーが発生した際にホスト２が再度データの取得を試みるリトライ動作の一例について図４を用いて説明する。
【００４４】
まず、４ビットでのデータ転送時に、通信エラーが発生すると、ホスト２の制御部９は、データ幅を４ビットから１ビットに変更し２回目のリトライ動作をする。データ線のバス幅を１ビットに変更することによって、クロックノイズが低減し、エラー発生確率はＱ（＜＜Ｐ）となり、２回目でも通信エラーが発生する確率はＰ＊Ｑとなる。
【００４５】
以降、通信エラーがなくなるか、リトライ動作を通信エラーの状態で終了するまで、データ線のバス幅が１ビットでリトライ動作を繰り返す。データ線のバス幅は１ビットなのでリトライ動作一回あたりのエラー発生確率はＱである。たとえば、Ｎ回目（Ｎ≧２）まで通信エラーが発生し続ける確率はＰ＊Ｑ(N-1) となる。
【００４６】
たとえば、ホストがデータ線のバス幅（４ビット）を変えない場合、１回目の通信エラーの発生確率はＰであり、２回目でも通信エラーが発生する確率はＰ2 となる。よって、２回目以降、Ｎ回目まで通信エラーが発生し続ける確率はＰN となる。
【００４７】
よって、リトライ動作において、２回目以降の通信でデータ線のバス幅を１ビットとしてリトライ動作を繰り返すことにより通信エラーを低減することができるので、リトライ動作の成功確率を大きくすることができる。
【００４８】
次に、情報処理システム１におけるリトライ動作の処理について、図５のフローチャートを用いて説明する。
【００４９】
まず、ホスト２が起動した後、メモリカード３をホスト２に挿入する（ステップＳ１０１）。続いて、ホスト２のホストコントローラ５は、コマンドをメモリカード３に発行することにより初期化し（ステップＳ１０２）、該メモリカード３をリード／ライトなどのアクセスが可能になる状態に遷移させる。そして、ホスト２の制御部９は、メモリカード３との高速通信を可能にするため、データ線のバス幅を４ビットに設定する（ステップＳ１０３）。
【００５０】
ホスト２は、アプリケーションからライト要求があるかを判定する（ステップＳ１０４）。特に、リトライ回数のカウンタとして変数ＲＥＴＲＹ  ＣＯＮＴを、リトライ回数の上限値として定数ＭＡＸ  ＣＯＮＴを定義する。ここで、ライト要求を受信した場合、変数ＲＥＴＲＹ  ＣＯＮＴを０に設定した後、ライト動作を開始する。
【００５１】
ホスト２において、制御部９は、メモリカード３にライトコマンドを発行する（ステップＳ１０５）。続いて、制御部９は、メモリカード３にライトデータを送信し（ステップＳ１０６）、通信エラーがあったかを判定する（ステップＳ１０７）。
【００５２】
ステップＳ１０７の処理において、通信エラーがあった場合、制御部９は、リトライ回数を判定し（ステップＳ１０８）、リトライ回数が上限値以下か否かを判定する。この判定は、変数ＲＥＴＲＹ  ＣＯＮＴを定数ＭＡＸ  ＣＯＮＴと比較することで行う。予め設定されているリトライ回数の上限に達してない場合、変数ＲＥＴＲＹ  ＣＯＮＴを＋１とする。
【００５３】
ステップＳ１０８の処理において、リトライ回数が上限に達している場合、制御部９はアプリケーションにエラー通知し（ステップＳ１０９）、ライト動作を終了する。
【００５４】
また、ステップＳ１０８の処理において、リトライ回数が上限以下の場合、制御部９は、次のリトライが１回目のリトライか否かを判定する（ステップＳ１１０）。このステップＳ１１０の判定は変数ＲＥＴＲＹ  ＣＯＮＴを１と比較することで行う。
【００５５】
ステップＳ１１０の処理において、リトライが１回目の場合には、制御部９は、次のリトライでのクロックノイズを小さくするため、バス幅を１ビットに設定する（ステップＳ１１１）。
【００５６】
また、ステップＳ１０７の処理おいて、通信エラーがなかった場合、制御部９は、ライト動作においてリトライしたかを判定する（ステップＳ１１２）。この判定は、ＲＥＴＲＹ  ＣＯＮＴが０でないかを判定することで行う。
【００５７】
ステップＳ１１２の処理おいて、リトライをしている場合、制御部９は、高速通信を可能にするため、データ線のバス幅を４ビットに設定する（ステップＳ１１３）。
【００５８】
次に、ステップＳ１０４の処理おいて、アプリケーションからライト要求がない場合、制御部９は、アプリケーションからリード要求があるかを判定する（ステップＳ１１４）。リード要求を受信した場合、ＲＥＴＲＹ  ＣＯＮＴを０に設定した後、リード動作を開始するために、制御部９は、メモリカードカード３にリードコマンドを発行する（ステップＳ１１５）。
【００５９】
そして、制御部９は、通信エラーがあったかを判定する（ステップＳ１１６）。この判定で通信エラーがあった場合、制御部９は、リトライ回数が上限値以下かを判定する（ステップＳ１１７）。この判定はＲＥＴＲＹ  ＣＯＮＴをＭＡＸ  ＣＯＮＴと比較することで行う。
【００６０】
ステップＳ１１７の処理でリトライ回数の上限に達してない場合、ＲＥＴＲＹ  ＣＯＮＴを＋１にする。
【００６１】
続いて、制御部９は、次のリトライが１回目のリトライかを判定する（ステップＳ１１８）。この判定はＲＥＴＲＹ  ＣＯＮＴを１と比較することで行う。ステップＳ１１８で１回目のリトライであれば、制御部９は、次のリトライでのクロックノイズを小さくするため、バス幅を１ビットに設定する（ステップＳ１１９）。
【００６２】
また、ステップＳ１１７の処理おいて、リトライ回数が上限に達している場合、制御部９は、アプリケーションにエラーを通知し、リード動作を終了する（ステップＳ１２０）。
【００６３】
一方、ステップＳ１１６の処理おいて通信エラーがなかった場合、制御部９は、リードデータを受信する（ステップＳ１２１）。その後、制御部９は、リード動作において、リトライしたかを判定する（ステップＳ１２２）。この判定はＲＥＴＲＹ  ＣＯＮＴが０でないかを判定することで行う。ステップＳ１２２の処理でリトライをした場合、制御部９は高速通信を可能にするため、バス幅を４ビットに設定する（ステップＳ１２３）。
【００６４】
続いて、ステップＳ１２２の処理においてリトライをしていない場合、またはステップＳ１２３の処理後、制御部９は、メモリカード３が削除（ホスト３からメモリカード３が取り外されたか）されたかを判定する（ステップＳ１２４）。
【００６５】
削除されたら処理を終了し（ステップＳ１２５）、削除されていなければ、ステップＳ１０４の処理に戻り、アプリケーションからのライト要求またはリード要求を待つ。
【００６６】
それにより、本実施の形態によれば、クロック信号のノイズに起因するリトライ動作の通信エラーを大幅に低減することができ、情報処理システム１におけるデータ転送の信頼性を向上させることができる。
【００６７】
また、本実施の形態では、リトライ動作時においてデータ線のビット幅を４ビットから１ビットに変更する場合について記載したが、たとえば、制御部９が、データ線のビット幅を４ビットから１ビットに変更することに加え、クロック生成部４が生成するクロック信号の周波数を低くしてリトライ動作を行うようにしてもよい。
【００６８】
この場合のリトライ動作について、図６を用いて説明する。
【００６９】
４ビットでのデータ転送時、通信エラーが発生したとする。このときのクロック信号の周波数をＣＬＫα（第１のクロック信号）とし、通信エラーの発生確率をＰとする。通信エラーの発生後、制御部９は、データ線のバス幅を４ビットから１ビットに変更するとともに、クロック生成部４を制御することによってクロック信号の周波数をＣＬＫαよりも低い周波数からなるＣＬＫβ（第２のクロック信号）とする。
【００７０】
データ線のバス幅が４ビットから１ビットになり、さらにクロック信号の周波数が低くなることによって、クロックノイズが低減しエラー発生確率はＲ（＜＜Ｑ＜＜Ｐ）となり、２回目の通信エラーが発生する確率はＰ＊Ｒとなる。
【００７１】
以降、通信エラーがなくなるか、リトライ動作を通信エラーの状態で終了するまで、データ線のバス幅を１ビット、クロック周波数をＣＬＫβでリトライ動作を繰り返す。そこで、リトライ動作一回あたりのエラー発生確率はＲとなる。たとえば、Ｎ回目（Ｎ≧２)まで通信エラーが発生し続ける確率はＰ＊Ｒ(N-1) となる。
【００７２】
それにより、リトライ動作の成功確率をより高めることが可能となり、情報処理システム１におけるデータ転送の信頼性を大幅に向上させることができる。
【００７３】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００７４】
たとえば、メモリカードの規格の１つであるＭＭＣ規格では、クロック信号の周波数が、最大５２ＭＨｚで動作する高速モードが定義されている。この高速モードが適用されているホストとメモリカードとに本発明を適用することができる。
【００７５】
高速モードにおいてホストとメモリカードとの間でデータ転送が行われる際に、クロックノイズが原因で通信エラーが発生した場合、ホストは、高速モードで動作しているメモリカードを通常モードに遷移させ、さらに、クロック信号の周波数を低く設定した後に、リトライ動作を行う。
【００７６】
これにより、高速モードを有するメモリカードであっても、リトライ動作時の通信エラーの発生確率を低減することができる。
【００７７】
この本発明の応用例は、特に、より高速なメモリカード、およびＳＤ、ＭＭＣと上位互換となるメモリカードにも適用できるという利点がある。
【産業上の利用可能性】
【００７８】
本発明は、メモリカードを用いて構成される情報処理システムにおけるデータ転送の信頼性の向上化技術に適している。
【図面の簡単な説明】
【００７９】
【図１】本発明の一実施の形態１による情報処理システムのブロック図である。
【図２】情報処理システムに設けられたホストコントローラの一例を示すブロック図である。
【図３】情報処理システムに設けられたカードコントローラの一例を示すブロック図である。
【図４】図１の情報処理システムにおけるリトライ動作の一例を示す説明図である。
【図５】図１の情報処理システムにおけるリトライ動作の処理例を示すフローチャートである。
【図６】本発明の他の実施の形態による情報処理システムにおけるリトライ動作の一例を示す説明図である。
【符号の説明】
【００８０】
１  情報処理システム
２  ホスト（情報処理装置）
３  メモリカード（情報記憶装置）
４  クロック生成部
５  ホストコントローラ５
６  クロック抽出部
７  カードコントローラ
８  半導体メモリ
９  制御部（データ転送制御部）
１０  ＦＩＦＯ部
１１  ビット変換部
１２  トランシーバ部
１３  制御部
１４  ＦＩＦＯ部
１５  ビット変換部
１６  トランシーバ部
Ｂ  バス
ＣＬＫ  クロック線
ＣＭＤ  コマンド線
ＤＡＴＡ０〜ＤＡＴＡ３  データ線
【図１】
2007034540.tif 000003
【図２】
2007034540.tif 000004
【図３】
2007034540.tif 000005
【図４】
2007034540.tif 000006
【図５】
2007034540.tif 000007
【図６】
2007034540.tif 000008