(57)【要約】【課題】  複数のメモリカードを並行して動作させ高速に読み出し及び書き込みを実行するメモリカードドライブにおいて、メモリカードドライブへ電力を供給する機器がメモリカードドライブへ供給できる電流値には、各機器の性能によってばらつきがあり、当該メモリカードドライブを使用できる機器が限定されている。【解決手段】  １以上の半導体メモリを搭載した記録装置において、当該記録装置を装着されるアクセス装置の供給可能な電流に応じて、並行して動作させる半導体メモリの数を制限する。
2005057475.tif 000002
【特許請求の範囲】
【請求項１】
記録装置であって、
１以上の半導体メモリと、
アクセス装置から当該記録装置へ供給される電流の上限値を取得する取得手段と、
前記アクセス装置から、半導体メモリへのアクセスを指示するコマンドを取得するコマンド取得手段と、
前記アクセス装置から電流の供給を受け、制御信号に従って、前記半導体メモリにアクセスするアクセス手段と、
取得した前記上限値から、前記半導体メモリ及びアクセス手段以外の各部により消費される電流値を差し引いたアクセス上限値を算出し、算出したアクセス上限値を用いて前記アクセス手段及び前記半導体メモリの動作条件を設定し、前記コマンド取得手段の取得したコマンドと設定した動作条件とに基づいて、前記制御信号を生成し、生成した制御信号を出力する制御手段と
を備えることを特徴とする記録装置。
【請求項２】
前記制御手段は、予め、前記アクセス手段及び前記半導体メモリの消費する消費電流値を前記コマンドと対応付けて記憶しており、前記アクセス上限値と前記消費電流値とを用いて、前記コマンドと対応する動作条件を設定する
ことを特徴とする請求項１に記載の記録装置。
【請求項３】
前記制御手段は、当該記録装置の備えている半導体メモリの総数以下の並列個数の前記半導体メモリが、並行して動作するような前記動作条件を設定し、
前記コマンドと前記動作条件とに基づいて、前記並列個数の前記半導体メモリへのアクセスを指示する制御信号を、前記アクセス手段へ出力し、
前記アクセス手段は、前記並列個数の前記半導体メモリへアクセスする
ことを特徴とする請求項２に記載の記録装置。
【請求項４】
前記消費電流値は、１個の前記半導体メモリを動作させる際に、前記アクセス手段及び前記半導体メモリの消費する電流値であり、
前記制御手段は、前記アクセス上限値を前記消費電流値で除算した商を前記並列個数として算出する
ことを特徴とする請求項３に記載の記録装置。
【請求項５】
前記制御信号は、前記半導体メモリのうち何れか１つを指定するメモリ情報を含んでおり、
前記制御手段は、それぞれの半導体メモリを指定するメモリ情報を含む前記制御信号を順番に出力し、
前記アクセス手段は、前記制御信号を受け取り、受け取った制御信号に含まれるメモリ情報の示す前記半導体メモリへアクセスする
ことを特徴とする請求項４に記載の記録装置。
【請求項６】
前記制御手段は、前記半導体メモリの最大動作周波数以下のメモリ周波数で前記半導体メモリが動作するような前記動作条件を設定し、
前記コマンドと前記動作条件に基づいて、前記メモリ周波数と同一の周波数のクロック信号を生成し、生成したクロック信号を含む前記制御信号を、前記アクセス手段へ出力し、
前記アクセス手段は、前記制御手段から受け取ったクロック信号を、前記半導体メモリへ出力し、前記半導体メモリへアクセスする
ことを特徴とする請求項２に記載の記録装置。
【請求項７】
前記制御手段は、前記半導体メモリが前記最大周波数で動作した場合の、前記アクセス手段及び前記半導体メモリの消費する最大電流値を前記消費電流値として記憶しており、前記最大周波数と前記最大電流値の比率と前記アクセス上限値とを用いて、前記メモリ周波数を算出する
ことを特徴とする請求項６に記載の記録装置。
【請求項８】
前記制御手段は、前記最大電流値に加えて前記最大動作周波数を予め記憶している
ことを特徴とする請求項７に記載の記録装置。
【請求項９】
前記制御手段は、読み出しを指示する前記コマンドに対応する前記消費電流値を記憶しており、読み出しを指示する前記コマンドに対応して、前記メモリ周波数で前記半導体メモリが動作するような前記動作条件を設定する
ことを特徴とする請求項６に記載の記録装置。
【請求項１０】
前記制御手段は、分周器を備え、分周器を用いて、前記動作周波数と同一のクロック周波数のクロック信号を生成し、生成したクロック信号を含む制御信号を出力する
ことを特徴とする請求項６に記載の記録装置。
【請求項１１】
前記制御手段は、ＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋ  Ｌｏｏｐ）を備えており、前記ＰＬＬを用いて、前記動作周波数と同一のクロック周波数のクロック信号を生成し、生成したクロック信号を含む制御信号を出力する
ことを特徴とする請求項６に記載の記録装置。
【請求項１２】
前記制御手段は、当該記録装置の備えている半導体メモリの総数以下の並列個数の前記半導体メモリが、並行して動作するような第１の動作条件及び前記半導体メモリの最大動作周波数以下の動作周波数で前記半導体メモリが動作するような第２の動作条件を前記動作条件として設定し、
前記コマンド取得手段により取得されるコマンドに基づいて、前記第１及び第２の動作条件のうち少なくとも一方を採用し、採用した前記動作条件に基づく前記制御信号を生成する
ことを特徴とする請求項２に記載の記録装置。
【請求項１３】
前記半導体メモリは、フラッシュメモリである
ことを特徴とする請求項２に記載の記録装置。
【請求項１４】
前記半導体メモリは、不揮発性磁気メモリである
ことを特徴とする請求項２に記載の記録装置。
【請求項１５】
前記取得手段は、前記上限値をＡＴＡ（ＡＴ  Ａｔｔａｃｈｉｍｅｎｔ）規格に準拠するＳｅｔ  Ｆｅａｔｕｒｅｓコマンドにより取得する
ことを特徴とする請求項１に記載の記録装置。
【請求項１６】
半導体メモリは可搬型であり、当該記録装置に着脱可能であり、
前記取得手段と前記読書手段と前記制御手段とは、前記記録媒体に情報の読出及び書き込みを行うメモリカードドライブデバイスを構成する
ことを特徴とする請求項１に記載の記録装置。
【請求項１７】
前記制御手段は、クロック信号を含む制御信号を出力し、
前記アクセス手段は、アクセスする半導体メモリにのみ前記クロック信号を供給し、アクセスをしていない半導体メモリへの前記クロック信号の供給を停止する
ことを特徴とする請求項１５に記載の記録装置。
【請求項１８】
１以上の半導体メモリを備える記録装置において用いられるアクセス方法であって、
アクセス装置から当該記録装置へ供給される電流の上限値を取得する取得ステップと、
前記アクセス装置から、半導体メモリへのアクセスを指示するコマンドを取得するコマンド取得ステップと
前記アクセス装置から電流の供給を受け、制御信号に従って、前記半導体メモリにアクセスするアクセスステップと、
取得した前記上限値から、前記半導体メモリ及びアクセス手段以外の各部により消費される電流値を差し引いたアクセス上限値を算出し、算出したアクセス上限値を用いて前記アクセス手段及び前記半導体メモリの動作条件を設定し、前記コマンド取得手段の取得したコマンドと設定した動作条件とに基づいて、前記制御信号を生成し、生成した制御信号を出力する制御ステップと
を備えることを特徴とするアクセス方法。
【請求項１９】
１以上の半導体メモリを備える記録装置において用いられるアクセスプログラムであって、
アクセス装置から当該記録装置へ供給される電流の上限値を取得する取得ステップと、
前記アクセス装置から、半導体メモリへのアクセスを指示するコマンドを取得するコマンド取得ステップと
前記アクセス装置から電流の供給を受け、制御信号に従って、前記半導体メモリにアクセスするアクセスステップと、
取得した前記上限値から、前記半導体メモリ及びアクセス手段以外の各部により消費される電流値を差し引いたアクセス上限値を算出し、算出したアクセス上限値を用いて前記アクセス手段及び前記半導体メモリの動作条件を設定し、前記コマンド取得手段の取得したコマンドと設定した動作条件とに基づいて、前記制御信号を生成し、生成した制御信号を出力する制御ステップと
を備えることを特徴とするアクセスプログラム。
【請求項２０】
前記アクセスプログラムは、
コンピュータ読み取り可能な記録媒体に記録されている
ことを特徴とする請求項１９に記載のアクセスプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、アクセス装置の指示により、半導体メモリへアクセスする技術に関し、特に、アクセス装置の供給可能な電流量を加味してアクセスする技術に関する。
【背景技術】
【０００２】  ＳＤカードを初めとして、フラッシュメモリを搭載したメモリカードは、小型、軽量、薄型であり、その取り扱いも容易であるため、デジタルスチルカメラなどのデジタル機器に広く利用されている。一般に市販されているメモリカードの記憶容量は、１６ＭＢ〜５１２ＭＢであり、記録レートは最大で１０ＭＢ／ｓ程度である。
しかし、ＤＶフォーマットの動画像及び音声のデータのように、大きな記録容量を必要とするデータを記録する場合には、記憶容量も記録レートも不充分である。例えば、４ＭＢ／ｓの再生レートのデータであれば、２分相当のデータしか記録できないし、書き込みには約１分を要することになる。【０００３】  これらの問題を解決するために、特許文献１及び２では、複数のメモリカードを装着可能なメモリカードドライブについて開示されている。これらの技術によると、メモリカードドライブに複数のメモリカードを用いることで、大きな記録容量を確保している。また、ＲＡＩＤ方式の１つとして知られているストライピング方式を利用して複数のメモリカードに並行して書き込みを行うことで、記録レートの向上を計っている。【０００４】  このようなメモリカードドライブをパーソナルコンピュータ（以下ＰＣ）をはじめとする電気機器に接続して使用する場合、電気機器からメモリカードドライブへ供給可能な電流値は、機器によって異なる。ＰＣを例にすると、メモリカードドライブへ供給可能な電流値は、ＰＣカード規格で１Ａとされているが、放熱性の問題などにより、実際には、ＰＣの種類によってばらつきがある。【０００５】  メモリカードドライブを用いて複数のメモリカードを並行して動作させる場合、メモリカードドライブの消費電流は、動作させるメモリカードの枚数に比例して増加する。例えば、消費電流を２００ｍＡのメモリカードを４個動作させる場合、消費電流は８００ｍＡ必要となる。従って、このメモリカードドライブを使用可能なＰＣは、メモリカードドライブへ８００ｍＡ以上の電流を供給できるものに限定されることになる。
【特許文献１】特開２００２−１８９９９２号公報
【特許文献２】特開２０００−２０７１３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】  しかしながら、供給できる電流量によって、接続可能な電気機器が限定されることは利用者にとって不便であり、接続される電気機器の供給可能な電流量に関わらず、使用可能なメモリカードドライブの要求がある。
そこで本発明は、かかる問題点に鑑みてなされたものであり、接続される電気機器の供給可能な電流量に応じて、動作条件を変更し、消費電流を前記電気機器の供給可能な電流量以下に抑制することができる記録装置、メモリカードドライブデバイスを提供することを目的とする。
【課題を解決するための手段】
【０００７】  上記目的を達成するために本発明は、１以上の半導体メモリと、アクセス装置から当該記録装置へ供給される電流の上限値を取得する取得手段と、前記アクセス装置から、半導体メモリへのアクセスを指示するコマンドを取得するコマンド取得手段と、前記アクセス装置から電流の供給を受け、制御信号に従って、前記半導体メモリにアクセスするアクセス手段と、取得した前記上限値から、前記半導体メモリ及びアクセス手段以外の各部により消費される電流値を差し引いたアクセス上限値を算出し、算出したアクセス上限値を用いて前記アクセス手段及び前記半導体メモリの動作条件を設定し、前記コマンド取得手段の取得したコマンドと設定した動作条件とに基づいて、前記制御信号を生成し、生成した制御信号を出力する制御手段とを備えることを特徴とする記録装置である。【０００８】  ここで、後述する実施の形態において、制御手段とは、並列制御部、制御情報記憶部及びクロック制御部に相当する。また、制御信号とは、書き込み指示、読み出し指示及びクロック信号に相当する。
【発明の効果】
【０００９】  この構成によって、本発明の記録装置は、前記アクセス装置から取得する上限値から算出したアクセス上限値に基づいて動作条件を設定する。従って、適切な動作条件を設定することによって、前記アクセス装置から供給可能な電流の範囲内で、半導体メモリにアクセスを行うことができる。
前記記録装置において、前記制御手段は、予め、前記アクセス手段及び前記半導体メモリの消費する消費電流値を前記コマンドと対応付けて記憶しており、前記アクセス上限値と前記消費電流値とを用いて、前記コマンドと対応する動作条件を設定することを特徴とする。【００１０】  この構成によると、前記制御手段は、コマンドと対応する動作条件を設定する。つまり、前記制御手段は、前記アクセス装置から出力されるコマンドによって、半導体メモリ及びアクセス手段の消費する電力が異なる場合、コマンド毎に最適な動作条件を設定することができる。従って、前記アクセス手段は、コマンド毎に最適の動作条件で、前記半導体メモリへアクセスすることができる。【００１１】  前記記録装置において、前記制御手段は、当該記録装置の備えている半導体メモリの総数以下の並列個数の前記半導体メモリが、並行して動作するような前記動作条件を設定し、前記コマンドと前記動作条件とに基づいて、前記並列個数の前記半導体メモリへのアクセスを指示する制御信号を、前記アクセス手段へ出力し、前記アクセス手段は、前記並列個数の前記半導体メモリへアクセスすることを特徴とする。【００１２】  この構成によると、前記制御手段は、当該記録装置の備えている半導体メモリの総数以下の並列個数の前記半導体メモリが、並行して動作するような前記動作条件を設定する。つまり、並行して動作する前記半導体メモリの個数を制限する。前記記録装置の消費する電流値は、並行して動作する半導体メモリの個数に対応している。従って、並行して動作する半導体メモリの個数を制限することにより、前記記録装置の消費する電流値を、確実に制限することができる。【００１３】  前記消費電流値は、１個の前記半導体メモリを動作させる際に、前記アクセス手段及び前記半導体メモリの消費する電流値であり、前記記録装置を構成する前記制御手段は、前記アクセス上限値を前記消費電流値で除算した商を前記並列個数として算出することを特徴とする。
この構成によると、前記制御手段は、前記アクセス上限値を前記消費電流値で除算した商を算出することで、簡単に前記並列個数を算出することができる。【００１４】  前記記録装置において、前記制御信号は、前記半導体メモリのうち何れか１つを指定するメモリ情報を含んでおり、前記制御手段は、それぞれの半導体メモリを指定するメモリ情報を含む前記制御信号を順番に出力し、前記アクセス手段は、前記制御信号を受け取り、受け取った制御信号に含まれるメモリ情報の示す前記半導体メモリへアクセスすることを特徴とする。【００１５】  この構成によると、前記制御手段は、それぞれの半導体メモリを指定するメモリ情報を含む前記制御信号を順番に出力し、前記アクセス手段は、前記制御信号を受け取り、受け取った制御信号に含まれるメモリ情報の示す前記半導体メモリへアクセスする。上記のように、当該記録装置の備える半導体メモリに順番にデータを書き込んでいくことで、並行動作できる半導体メモリの個数が減少することを防ぐことができる。従って、当該記録装置のアクセス速度の低下を防ぐことができる。【００１６】  また、本発明の記録装置において、前記制御手段は、前記半導体メモリの最大動作周波数以下のメモリ周波数で前記半導体メモリが動作するような前記動作条件を設定し、前記コマンドと前記動作条件に基づいて、前記メモリ周波数と同一の周波数のクロック信号を生成し、生成したクロック信号を含む前記制御信号を、前記アクセス手段へ出力し、前記アクセス手段は、前記制御手段から受け取ったクロック信号を、前記半導体メモリへ出力し、前記半導体メモリへアクセスすることを特徴とする。【００１７】  この構成によると、前記アクセス手段は、前記半導体メモリの最大動作周波数以下のメモリ周波数と同一の周波数のクロック信号を、前記半導体メモリへ出力し、前記半導体メモリへアクセスする。前記半導体メモリは、前記アクセス手段から受け取ったクロック信号に合わせて動作するため、クロック信号の周波数を小さくすると、前記半導体メモリの動作周波数も小さくすることができる。前記半導体メモリの動作周波数と、前記半導体メモリ及び前記アクセス手段の消費電流値は比例する。従って、前記アクセス上限値に基づいて前記メモリ周波数を設定し、前記半導体メモリの動作周波数を前記メモリ周波数に変更することで、前記記録装置の消費電流を前記上限値以下に抑制することができる。【００１８】  本発明において、前記制御手段は、前記半導体メモリが前記最大周波数で動作した場合の、前記アクセス手段及び前記半導体メモリの消費する最大電流値を前記消費電流値として記憶しており、前記最大周波数と前記最大電流値の比率と前記アクセス上限値とを用いて、前記メモリ周波数を算出することを特徴とする。
この構成によると、前記制御手段は、前記最大周波数と前記最大電流値の比率と前記アクセス上限値とを用いて、容易に前記動作周波数を算出することができる。【００１９】  前記記録装置を構成する前記制御手段は、前記最大電流値に加えて前記最大動作周波数を予め記憶していることを特徴とする。
この構成によると、前記制御手段は、前記最大電流値に加えて前記最大動作周波数を予め記憶しているため、迅速に前記動作周波数を算出することができる。
また、前記制御手段は、読み出しを指示する前記コマンドに対応する前記消費電流値を記憶しており、読み出しを指示する前記コマンドに対応して、前記メモリ周波数で前記半導体メモリが動作するような前記動作条件を設定する。【００２０】  この構成では、前記制御手段は、読み出しを指示する前記コマンドに対応して、前記メモリ周波数で前記半導体メモリが動作するような前記動作条件を設定し、前記半導体メモリは、前記メモリ周波数と同一の動作周波数で読み出しの動作を行う。半導体メモリにデータを書き込む際には、一定量の電子注入が必要であり、周波数と消費電流値に相関関係はないため、動作周波数を変更しても、消費電流値の削減にはつながらない。従って、前記アクセス装置から、読み出しを指示するコマンドを受け取った場合に、前記メモリ周波数で、読み出し動作を行うことで、当該記憶装置の消費電流値を減少させることができる。【００２１】  前記記録装置の前記制御手段は、分周器を備え、分周器を用いて、前記動作周波数と同一のクロック周波数のクロック信号を生成し、生成したクロック信号を含む制御信号を出力することを特徴とする。
この構成では、前記制御手段は、分周器を用いて、容易にクロック信号の周波数を変更することができる。【００２２】  また、前記制御手段は、ＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋ  Ｌｏｏｐ）を備えており、前記ＰＬＬを用いて、前記動作周波数と同一のクロック周波数のクロック信号を生成し、生成したクロック信号を含む制御信号を出力することを特徴とする構成であってもよい。
この構成によると、前記制御手段は、ＰＬＬを用いて、クロック信号の周波数を、連続的に変更することができる。従って、前記アクセス上限値と前記コマンド取得手段が取得したコマンドに応じた最適な周波数のクロック信号を生成し、出力することができる。【００２３】  本発明の記録装置において、前記制御手段は、当該記録装置の備えている半導体メモリの総数以下の並列個数の前記半導体メモリが、並行して動作するような第１の動作条件及び前記半導体メモリの最大動作周波数以下の動作周波数で前記半導体メモリが動作するような第２の動作条件を前記動作条件として設定し、前記コマンド取得手段により取得されるコマンドに基づいて、前記第１及び第２の動作条件のうち少なくとも一方を採用し、採用した前記動作条件に基づく前記制御信号を生成することを特徴とする。【００２４】  この構成によると、前記第１及び第２の動作条件のうち少なくとも一方を採用し、採用した前記動作条件に基づく制御信号を出力する。これにより、前記制御手段は、前記並行動作数、半導体メモリの動作周波数のうち、何れか一方、又は両方を変更することで、前記アクセス上限値以下の電流の範囲内で最適の動作条件を設定することができる。従って、前記アクセス手段は、前記アクセス上限値以下の電流を最大限に活用し、高速に前記半導体メモリにアクセスすることができる。【００２５】  本発明の記録装置を構成する前記半導体メモリは、フラッシュメモリであることを特徴とする。
フラッシュメモリは、現在、広く普及しており、既に数多くの生産実績がある。従って、この構成の前記記録装置は、容易に生産可能である。
本発明の記録装置を構成する前記半導体メモリは、不揮発性磁気メモリであってもよい。【００２６】  不揮発性磁気メモリは、高速にデータを入出力することができる。また、電荷ではなく、電子スピンによってデータを保持するため、半永久的な記録保持時間を実現できる。従って、この構成によると、前記記録装置は、記録保持性能に優れ、より高速にデータにアクセスを行うことができる。
本発明において、前記取得手段は、前記上限値をＡＴＡ（ＡＴ  Ａｔｔａｃｈｉｍｅｎｔ）規格に準拠するＳｅｔ  Ｆｅａｔｕｒｅｓコマンドにより取得することを特徴とする。【００２７】  この構成によると、本発明の記録装置は、ＡＴＡ規格に準拠した各種の電気機器において、使用することができる。
本発明の記録装置を構成する半導体メモリは可搬型であり、当該記録装置に着脱可能であり、前記取得手段と前記読書手段と前記制御手段とは、前記記録媒体に情報の読出及び書き込みを行うメモリカードドライブデバイスを構成することを特徴とする。【００２８】  この構成によると、前記記録装置は、可搬型半導体メモリとメモリカードドライブデバイスからなる。従って、既に市販のメモリカードを前記可半型半導体メモリとして利用することにより、前記メモリカードドライブデバイスは、既存のメモリカードを利用して高速にデータの入出力を行うことが可能になる。
前記制御手段は、クロック信号を含む制御信号を出力し、前記アクセス手段は、アクセスする半導体メモリにのみ前記クロック信号を供給し、アクセスをしていない半導体メモリへの前記クロック信号の供給を停止することを特徴とする記録装置である。【００２９】  この構成によると、前記アクセス手段は、アクセスをしていない半導体メモリへの前記クロック信号の供給を停止する。前記可搬型の半導体メモリとして、既存のメモリカードを使用する場合、これらのメモリカードは、一般に、制御部、記憶部を含んで構成される。メモリカードの制御部は、データへのアクセス要求を受けない場合であっても、クロック信号を受け取ると、所定の動作を行い電力を消費する。従って、前記アクセス手段が、アクセスしていないメモリカードへクロック信号の供給を停止することにより、これらのメモリカードの制御部により消費される電力を抑制することができる。
【図面の簡単な説明】
【００３０】
【図１】メモリカード３００の使用例を示す。
【図２】ビデオカメラ２００の構成を示すブロック図である。
【図３】ＰＣ１００の構成を示すブロック図である。
【図４】ＰＣ１００とメモリカード３００との間で授受されるＡＴＡコマンドの構成の一例を示す。
【図５】メモリカード３００の構成を示すブロック図である。
【図６】並列制御部３０４の構成を示すブロック図である。
【図７】メモリカード３００装着時の、メモリカード３００及びＰＣ１００の動作を示すフローチャートである。
【図８】メモリカード３００及びＰＣ１００のデータの書き込み動作を示すフローチャートである。
【図９】メモリカード３００及びＰＣ１００のデータの書き込み動作を示すフローチャートである。図８から続く。
【図１０】メモリカード３００へデータを書き込む際の各フラッシュメモリの動作を示すタイムチャートである。
【図１１】実施の形態２のメモリカード６００の構成を示すブロック図である。
【図１２】並列制御部６０４の構成を示すブロック図である。
【図１３】メモリカード６００装着時の、メモリカード６００及びＰＣ１００の動作を示すフローチャートである。
【図１４】メモリカード６００及びＰＣ１００のデータの読み出し動作を示すフローチャートである。
【図１５】メモリカード６００及びＰＣ１００のデータの読み出し動作を示すタイムチャートである。
【図１６】メモリカードドライブ７００の使用例を示す。
【図１７】メモリカードドライブ７００の構成を示すブロック図である。
【図１８】並列制御部７０４の構成を示すブロック図である。
【符号の説明】
【００３１】  １００  ＰＣ
２００  ビデオカメラ
３００  メモリカード
３０１  外部ＩＦ部
３０２  制御部
３０３  コマンド解析部
３０４  並列制御部
３０５  クロック制御部
３０８  制御情報記憶部
３０９  バッファメモリ
３１０〜３１３  フラッシュメモリ
３２１  コマンド実行部
６００  メモリカード
７００  メモリカードドライブ
【発明を実施するための最良の形態】
【００３２】  以下、本発明の実施の形態について図面を用いて詳細に説明する。
１．実施の形態１
実施の形態１のメモリカード３００は、図１に示すようにＰＣ１００及びビデオカメラ２００に装着されて使用される。
ビデオカメラ２００は、音声及び画像データを生成し、生成した音声及び画像データをメモリカード３００に記録する。【００３３】  ＰＣ１００は、ディスプレイ１４０及びキーボード１５０と接続されている。利用者の操作により、メモリカード３００に記憶されているデータを再生又は編集する。
メモリカード３００は、４個のフラッシュメモリを搭載している。外部機器、具体的には、ＰＣ１００又はビデオカメラ２００が、メモリカード３００へ供給することができる最大の電流値（以下、許容電流値）を取得し、取得した許容電流値を基に、並行して動作可能なフラッシュメモリの個数を算出する。ＰＣからのコマンドに対して、算出した個数のフラッシュメモリを並行して動作させる。
１．１  ビデオカメラ２００
ビデオカメラ２００は、図２に示すように、入出力部２０１、電源部２０２、画像変換部２０３、撮像部２０４、制御部２０７、入力部２１２及び再生部２１３から構成される。【００３４】  ビデオカメラ２００は、具体的には、マイクロプロセッサ、ＲＡＭ、ＲＯＭを含んで構成され、前記ＲＡＭ及びＲＯＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、ビデオカメラ２００は、その機能を達成する。
（１）電源部２０２
電源部２０２は、ビデオカメラ２００を構成する各回路へ、電池又は外部電源からの電力を供給する。また、入出力部２０１を介してメモリカード３００へも電力を供給する。
（２）許容電流値記憶部２１０
許容電流値記憶部２１０は、ＲＯＭから構成され、許容電流値を記憶している。許容電流値は、ビデオカメラ２００がメモリカード３００へ供給することのできる電流の上限を示す値である。
（３）入出力部２０１
入出力部２０１は、メモリカード３００と接続され、制御部２０７とメモリカード３００との間で各種の情報の入出力を行う。【００３５】  また、電源部２０２から出力される電力を、メモリカード３００へ供給する。
（４）撮像部２０４及び画像変換部２０３
撮像部２０４は、光学レンズ、カラーフィルタ、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）などから構成され、入射光を電荷に変換して画像データを生成する。
画像変換部２０３は、撮像部２０４により生成された画像データに直行変換の１つであるＤＣＴ処理、量子化処理、動き補償処理及び可変長符号化処理などを施して圧縮する。
（５）制御部２０７
制御部２０７は、ビデオカメラ２００を構成する各部の動作を制御する。【００３６】  また、入出力部２０１を介して、メモリカード３００がビデオカメラ２００に装着されたことを検出する。メモリカード３００を検出すると、ドライブの割当、メモリ空間の割当などを含むコンフィグ処理を行う。
コンフィグ処理が終了すると、許容電流値記憶部２１０の記憶している許容電流値を用いて、パワーマネジメントに関する情報の授受を行う。このような、メモリカード３００とメモリカード３００を装着された装置との間の初期設定の処理については、後に詳細に説明する。
（６）入力部２１２
入力部２１２は、各種のボタンなどを備え、利用者による操作を検出し、検出した操作を示す捜査指示情報を制御部２０７へ出力する。
（７）再生部２１３
再生部２１３は、デコーダー、液晶ディスプレイを含んで構成され、圧縮された画像データを伸長し、画面を生成し、生成した画面を液晶ディスプレイに表示する。
１．２  ＰＣ１００
ＰＣ１００は、図３に示すように、外部ＩＦ部１０１、許容電流値記憶部１１０、情報記憶部１１１、入力制御部１１２及び表示制御部１１３から構成される。【００３７】ＰＣ１００は、具体的には、マイクロプロセッサ、ＲＡＭ、ＲＯＭを含むコンピュータシステムであって、ＲＡＭ、ＲＯＭ及び情報記憶部１１１にはコンピュータプログラムが記憶されている。前記マイクロプロセッサが前記コンピュータプログラムに従って動作することにより、ＰＣ１００は、その機能を達成する。
（１）電力供給部１０５
電力供給部１０５は、ＰＣ１００を構成する各回路へ、電力を供給する。また、外部ＩＦ部１０１を介してメモリカード３００へも電力を供給する。
（２）許容電流値記憶部１１０及び情報記憶部１１１
許容電流値記憶部１１０は、ＲＯＭから構成され、許容電流値Ｉｏｋを記憶している。許容電流値Ｉｏｋは、ＰＣ１００がメモリカード３００へ供給することのできる電流の上限を示す値である。【００３８】  情報記憶部１１１は、ハードディスクユニットから構成され、各種のデータ、コンピュータプログラムなどを記憶している。
（３）外部ＩＦ部１０１
外部ＩＦ部１０１は、メモリカード３００と接続され、制御部１０７とメモリカード３００との間で各種の情報の入出力を行う。【００３９】  また、電力供給部１０５から出力される電力を、メモリカード３００へ供給する。
（４）制御部１０７
制御部１０７は、ＰＣ１００を構成する各部の動作を制御する。
制御部１０７は、外部ＩＦ部１０１を介してメモリカード３００を検出する。
また、入力制御部１１２から、利用者のキー操作に対応した操作指示情報を受け取る。【００４０】  （４−１）初期設定
メモリカード３００を検出すると、制御部１０７は、ドライブの割り当て、メモリ空間の割り当てなどを含むコンフィグ処理を行う。
コンフィグ処理が終了すると、メモリカード３００へメモリカード３００の消費する電流の最大値である最大消費電流値Ｉｍａｘを要求する。外部ＩＦ部１０１を介して、メモリカード３００から最大消費電流値Ｉｍａｘを受け取る。最大消費電流値Ｉｍａｘを受け取ると、許容電流値記憶部１１０から、許容電流値Ｉｏｋを読み出し、読み出した許容電流値Ｉｏｋを外部ＩＦ部１０１を介して、メモリカード３００へ出力する。次に、メモリカード３００から、Ａｃｋ（Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）信号を受け取り、初期設定を終了する。【００４１】  （４−２）書き込み処理
制御部１０７は、入力制御部１１２から、メモリカード３００への書き込みを示す操作指示情報を受け取ると、メモリカード３００へデータの書き込みを指示するライトコマンドを生成する。ライトコマンドは、書き込みを開始するセクタの論理アドレスであるセクタ番号（以下先頭セクタ番号）と出力するデータを記録するために必要なセクタ数とを含んでいる。セクタとは、メモリカード３００上の読み出し及び書き込みの単位となる５１２バイトの記憶領域である。【００４２】  次に、生成したライトコマンドを外部ＩＦ部１０１を介してメモリカード３００へ出力する。
次に、メモリカード３００から、データの書き込みが可能であることを示すレスポンスを受け取る。レスポンスを受け取ると、メモリカード３００へ書きこむデータのうち、先頭から順に、１セクタの容量に相当する５１２バイト分を出力する。以下の説明において、５１２バイトのデータをデータブロックと呼ぶ。メモリカード３００から、１データブロックの書き込み可能であることを示すレスポンスを受け取り、次の、データブロックを出力する。同様にして、全てのデータブロックの出力を終えるまで、レスポンスの受け取りとデータブロックの出力とを繰り返す。【００４３】  （４−３）読み出し処理
制御部１０７は、入力制御部１１２から、読み出しを示す操作指示情報を受け取ると、メモリカード３００へデータの読み出しを指示するリードコマンドを出力する。リードコマンドには、読み出しを開始するセクタの論理アドレスであるセクタ番号（以下先頭セクタ番号）と読み出しをするセクタ数を含んでいる。【００４４】  次に、メモリカード３００から、データブロックの出力が可能であることを示すレスポンスを受け取る。続いて、メモリカード３００から、１セクタ分の容量に相当する５１２バイトのデータブロックを受け取る。同様にして、リードコマンドに含んで出力したセクタ数に相当する数のデータブロックを受け取るまで、レスポンスの受け取りとデータブロックの受け取りとを繰り返す。【００４５】  なお、ＰＣ１００とメモリカード３００との間において、最大消費電流値、許容電流値といった制御情報及び各種コマンドは、ＡＴＡ（ＡＴ  Ａｔｔａｃｈｉｍｅｎｔ）コマンドにより授受される。
図４は、ＰＣ１００が、最大消費電流値Ｉｏｋをメモリカード３００へ出力する場合、ＰＣ１００が出力するＡＴＡコマンドのフレーム構成を示している。図４は、フレームを構成する各フィールドの名称を縦に配置し、横にビット数を示す番号０〜７を記載している。Ｆｅａｔｕｒｅｓ３４１は、Ｓｕｂｃｏｍｍａｎｄなどのコマンドの拡張内容が含まれるフィールドである。ＳｅｃｔｏｒＣｏｕｎｔ３４２は、許容電流値、セクタ数などを格納するフィールドである。ここでは、ＰＣ１００の許容電流値をＡｄｖａｎｃｅｄ  ｐｏｗｅｒ  ｍａｎａｇｅｍｅｎｔ  ｌｅｖｅｌを用いて示している。ＳｅｃｔｏｒＮｕｍｂｅｒ３４３は、リードコマンド及びライトコマンドを出力する際に、セクタ数を格納するフィールドであるが、最大消費電流値Ｉｏｋの出力の場合には、使用されない。図中の「ｎａ」は、そのフィールドが使用されないことを示している。【００４６】  Ｃｙｌｉｎｄｅｒ  Ｌｏｗ３４４、ｃｙｌｉｎｄｅｒ  Ｈｉｇｈ３４５、Ｄｅｖｉｃｅ／Ｈｅａｄ３４６は、ライトコマンド及びリードコマンドの際に読み出し及び書き込み先となるセクタを示す情報が格納されるフィールドであるが、ここでは使用されない。
Ｃｏｍｍａｎｄ３４７は、各種のコマンドを格納するフィールドである。ここでは、許容電流値Ｉｏｋの通知を示す「ＦＥｈ」が格納されている。【００４７】  ＡＴＡコマンドの構成については、公知であるので、ここでは詳細な説明を省略する。
（５）入力制御部１１２及び表示制御部１１３
入力制御部１１２は、キーボード１５０と接続されており、利用者による、キー操作を検出し、検出したキー操作を示す操作指示情報を制御部１０７へ出力する。
表示制御部１１３は、制御部１０７の指示によりディスプレイ１４０に表示する画面を生成する。生成した画面を垂直同期信号及び水平同期信号に合わせてディスプレイ１４０へ出力する。
１．３  メモリカード３００
メモリカード３００は、図５に示すように、外部ＩＦ部３０１、制御部３０２、フラッシュメモリ３１０、３１１、３１２及び３１３から構成される。制御部３０２は、コマンド解析部３０３、並列制御部３０４、クロック制御部３０５、メモリ制御部３３０、３３１、３３２、３３３、制御情報記憶部３０８及びバッファメモリ３０９を含んで構成される。【００４８】  制御部３０２は、具体的にはマイクロプロセッサ、ＲＡＭ、ＲＯＭから構成され、ＲＡＭ及びＲＯＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが前記コンピュータプログラムに従って動作することにより、制御部３０２は、その機能を達成する。
（１）フラッシュメモリ３１０、３１１、３１２及び３１３
フラッシュメモリ３１０、３１１、３１２及び３１３は、５１２バイトの容量のセクタを複数備えており、各セクタには、メモリアドレスが割り当てられている。図５に示す様に、各フラッシュメモリは、それぞれ、バッファメモリ３０９と接続されている。また、メモリ制御部３３０、３３１、３３２及び３３３とそれぞれ接続されている。【００４９】  フラッシュメモリ３１０、３１１、３１２及び３１３は、メモリ制御部３３０、３３１、３３２及び３３３を介して、クロック制御部３０５から、クロック信号を受け取る。メモリ制御部３３０、３３１、３３２及び３３３の制御により、セクタごとに、各種データの記憶及び記憶しているデータの出力を行う。
（２）外部ＩＦ部３０１
外部ＩＦ部３０１は、外部機器と制御部３０２との間で各種の情報の送受信を行う。また、外部機器から供給される電力を受け取り、受け取った電力をメモリカード３００を構成する各回路へ出力する。ここで、外部機器とは、ＰＣ１００又はビデオカメラ２００である。【００５０】  なお、外部ＩＦ部３０１と外部機器との間のデータの入出力速度は、バッファメモリ３０９とフラッシュメモリとの間のデータの入出力速度に比べて十分高速である。
（３）制御情報記憶部３０８及びバッファメモリ３０９
制御情報記憶部３０８は、ＲＯＭから構成され、書込消費電流値Ｉｗ、読出消費電流値Ｉｒ、メモリ数Ｎ及び制御電流値ａを記憶している。【００５１】  書込消費電流値Ｉｗは、メモリカード３００を構成する１個のフラッシュメモリへ、データを書き込む際に一組のメモリ制御部とフラッシュメモリが消費する電流の値である。読出消費電流値Ｉｒは、１個のフラッシュメモリからデータを出力する際に、一組のメモリ制御部とフラッシュメモリが消費する電流の値である。ここで、メモリ制御部３３０〜３３３及びフラッシュメモリ３１０〜３１３の消費する電流の合計値は、動作するフラッシュメモリの個数に比例する。【００５２】  メモリ数Ｎは、メモリカード３００に搭載されているフラッシュメモリの個数であり、本実施の形態ではＮ＝４である。制御電流値ａは、フラッシュメモリ及びメモリ制御部以外の各回路で消費される電流の合計値である。
バッファメモリ３０９は、ＲＡＭから構成され、５１２バイトのデータを記憶する領域を４個備えており、４個の記憶領域は、それぞれ、フラッシュメモリ３１０〜３１３と対応している。フラッシュメモリ３１０と外部機器との間で入出力される各種データを一時的に記憶する。【００５３】  具体的には、外部ＩＦ部３０１を介して、外部機器から、５１２バイトのデータブロックを受け取り、受け取ったデータブロックを記憶する。１データブロック受け取る度に、並列制御部３０４へ、正常に受け取ったことを示すＯＫ信号を出力する。メモリ制御部３３０〜３３３の制御により、記憶しているデータブロックを、フラッシュメモリ３１０、３１１、３１２又は３１３へ出力する。【００５４】  また、フラッシュメモリ３１０、３１１、３１２及び３１３から、データブロックを受け取り、受け取ったデータブロックを一時的に記憶する。次に、並列制御部３０４の指示により、記憶しているデータブロックを、外部ＩＦ部３０１を介して、外部機器へ出力し、１データブロックの出力が終了すると、正常に出力が終了したことを示すＯＫ信号を並列制御部３０４へ出力する。
（４）クロック制御部３０５
クロック制御部３０５は、一定の時間間隔でクロック信号を生成し、生成したクロック信号をメモリカード３００を構成する各部へ出力する。
（５）コマンド解析部３０３
コマンド解析部３０３は、外部ＩＦ部３０１と接続された外部機器から各種コマンドを受け取り、受け取ったコマンドを解析し、解析結果を並列制御部３０４へ出力する。
（６）メモリ制御部３３０、３３１、３３２及び３３３
メモリ制御部３３０は、クロック制御部３０５からクロック信号を受け取り、受け取ったクロック信号をフラッシュメモリ３１０へ出力する。【００５５】  メモリ制御部３３０は、並列制御部３０４から、データの書き込みを示すライト指示と、書き込みを行うフラッシュメモリ３１０上において、データブロックを書き込むセクタを示すメモリアドレスとを受け取る。また、並列制御部３０４からデータの読み出しを示すリード指示と、読み出しを行うフラッシュメモリ３１０上の書き込みを行うセクタを示すメモリアドレスとを受け取る。【００５６】  ライト指示とメモリアドレスとを受け取ると、メモリ制御部３３０は、フラッシュメモリ３１０内の、受け取ったメモリアドレスと対応するセクタに、バッファメモリ３０９に記憶されている１データブロックを書き込む。
フラッシュメモリ３１０への書き込みが終了すると、並列制御部３０４へ、１データブロックの書き込みが終了したことを示す終了信号を出力する。【００５７】  並列制御部３０４からリード指示とメモリアドレスとを受け取ると、メモリ制御部３３０は、フラッシュメモリ３１０上において、受け取ったメモリアドレスと対応するセクタに記憶されているデータブロックを、バッファメモリ３０９へ出力する。１データブロックの出力が終了すると、並列制御部３０４へ、１データブロックの読み出しが終了したことを示す終了信号を出力する。【００５８】  メモリ制御部３３１、３３２及び３３３は、それぞれ、フラッシュメモリ３１１、３１２及び３１３について、メモリ制御部３３０と同様の制御を行う。
（７）並列制御部３０４
並列制御部３０４は、図６に示すように、コマンド実行部３２１、並列演算部３２２、メモリ番号演算部３２３から構成される。【００５９】  （７−１）並列演算部３２２
並列演算部３２２は、コマンド実行部３２１から、メモリカード３００の消費する電流の最大値である最大消費電流値Ｉｍａｘの算出を指示される。また、コマンド実行部３２１から許容電流値Ｉｏｋを受け取り、並行書込数Ｎｗと並行読出数Ｎｒの算出を指示される。並行書込数Ｎｗは、許容電流値の範囲内で、並行して書き込みの動作を行うことができるフラッシュメモリの個数であり、並行読出数Ｎｒは、許容電流値の範囲内で並行して読み出しの動作を行うことができるフラッシュメモリの数である。【００６０】  最大消費電流値Ｉｍａｘの算出を指示されると、制御情報記憶部３０８から書込消費電流値Ｉｗ、読出消費電流値Ｉｒ、メモリ数Ｎ及び制御電流値ａを読み出す。読み出した書込消費電流値Ｉｗ、読出消費電流値Ｉｒ、メモリ数Ｎ及び制御電流値ａを基に、
Ｉｍａｘ＝Ｍａｘ（Ｎ×Ｉｗ，Ｎ×Ｉｒ）＋ａ  −（式１）
を算出する。ここで、Ｍａｘ（Ａ，Ｂ）は、Ａ及びＢのうち値の大きい一方を示す。算出した最大消費電流値Ｉｍａｘをコマンド実行部３２１へ出力する。【００６１】  並行書込数Ｎｗと並行読出数Ｎｒの算出を指示されると、受け取った許容電流値Ｉｏｋと算出した最大電流値Ｉｍａｘとを比較し、Ｉｏｋ＜Ｉｍａｘであれば、
Ｎｗ＝ＩＮＴ｛（Ｉｏｋ−ａ）／Ｉｗ｝  −（式２）
Ｎｒ＝ＩＮＴ｛（Ｉｏｋ−ａ）／Ｉｒ｝  −（式３）
を算出する。ここで、ＩＮＴ（Ａ）は、Ａ以下で最大の整数を示す。このとき、Ｎｗ＞Ｎであれば、Ｎｗ＝Ｎとし、Ｎｒ＞ＮであればＮｒ＝Ｎとする。【００６２】  Ｉｏｋ≧Ｉｍａｘであれば、Ｎｗ＝Ｎｒ＝Ｎとする。
次に、算出した並行書込数Ｎｗと並行読出数Ｎｒとを記憶し、コマンド実行部３２１へ正常に演算が終了したことを示す演算終了信号を出力する。
（７−２）メモリ番号演算部３２３
メモリ番号演算部３２３は、予めメモリカード３００が備えているフラッシュメモリの数Ｎ＝４を記憶している。また、フラッシュメモリ３１０〜３１３上のセクタの実アドレスであるメモリアドレスと外部機器によって、出力されるセクタ番号との対応を管理している。【００６３】  メモリ番号演算部３２３は、コマンド実行部３２１から先頭セクタ番号とセクタ数とを受け取り、書き込み先メモリ番号又は読み出し先メモリ番号の算出を指示される。
書き込み先メモリ番号又は読み出し先メモリ番号の算出を指示されると、メモリ番号演算部３２３は、図６に示すメモリテーブル３２４を生成し、生成したメモリテーブル３２４を一時的に記憶する。【００６４】  メモリテーブル３２４は、１以上のメモリ情報３２６、３２７・・・から構成される。各メモリ情報は、セクタ番号、メモリ番号及びメモリアドレスから構成される。セクタ番号は、外部機器により指定される、書き込み又は読み出しを行うセクタの論理アドレスである。メモリ番号は、書き込み又は読み出しを行うフラッシュメモリと対応しており、メモリ番号「０」、「１」、「２」、「３」は、それぞれフラッシュメモリ３１０、３１１、３１２、３１３を示している。メモリアドレスは、各フラッシュメモリ上のセクタの物理アドレスである。【００６５】  具体的には、以下のような演算によりメモリテーブル３２４を生成する。
書込み先メモリ番号の算出を指示されると、受け取った先頭セクタ番号とセクタ数とを基にして、以下の（式４）及び（式５）によりセクタ番号とメモリ番号とを算出する。
セクタ番号＝先頭セクタ番号＋ｔ  −（式４）
メモリ番号＝（セクタ番号）％Ｎ  −（式５）
ここで、変数ｔは０以上の整数であり、初期値は０である。【００６６】  次に、書き込み又は読み出しを行うセクタのメモリアドレスを指定し、１メモリ情報を生成する。次に、変数ｔに１加算する。以下同様にして、セクタ番号の算出、メモリ番号の算出、メモリアドレスの指定、変数ｔのインクリメントを、変数ｔが受け取ったセクタ数と等しくなるまで繰り返し、受け取ったセクタ数と同数のメモリ情報を生成する。
図６に示すメモリテーブル３２４は、一例として、先頭セクタ番号「３」、セクタ数「４」を受け取った場合に、メモリ番号演算部３２３が生成するメモリテーブルを示している。メモリ情報３２６は、セクタ番号「３」と示されるセクタを、メモリ番号「３」と対応するフラッシュメモリ３１３のメモリアドレス「ＡＡＡＡ」のセクタに対応させることを示している。【００６７】  次に、コマンド実行部３２１へ、メモリ番号の演算が終了したことを示す演算終了信号を出力する。
（７−３）コマンド実行部３２１
コマンド実行部３２１は、図６に示すように並列制御部３０４を構成する各回路及びメモリ制御部３３０〜３３３と接続されており、これらの各回路の動作を制御する。【００６８】  コマンド実行部３２１は、コマンド解析部３０３により解析されたコマンドを受け取る。受け取ったコマンドに従って、以下に説明する初期設定、書き込み処理及び読み出し処理を行う。
＜初期設定＞
コマンド解析部３０３を介して、最大消費電流値Ｉｍａｘの要求を受け取ると、コマンド実行部３２１は、並列演算部３２２へ最大消費電流値Ｉｍａｘの算出を指示する。並列演算部３２２から最大消費電流値Ｉｍａｘを受け取り、受け取った最大消費電流値Ｉｍａｘを、外部ＩＦ部３０１を解して外部機器へ出力する。ここで外部機器とは、ＰＣ１００又はビデオカメラ２００である。【００６９】  次に、外部ＩＦ部３０１及びコマンド解析部３０３を介して、外部機器から許容電流値Ｉｏｋを受け取る。許容電流値Ｉｏｋを受け取ると、受け取った許容電流値Ｉｏｋを並列演算部３２２へ出力し、並行書込数Ｎｗと並行読出数Ｎｒの算出を指示する。次に、並列演算部３２２から、正常に演算が終了したことを示す演算終了信号を受け取り、外部ＩＦ部３０１を介して、外部機器へＡｃｋ信号を出力する。【００７０】  ＜書き込み処理＞
コマンド解析部３０３を介して、ライトコマンドを受け取ると、コマンド実行部３２１は、バッファメモリ３０９の４個の記憶領域のうち１個以上が空いているか否かを確認し、データブロックを書き込み可能であるか否かを判断する。１個以上の記憶領域が空であれば、書き込み可能であると判断し、１データブロックの書き込み可能であることを示すレスポンスを、外部ＩＦ部３０１を介して、外部機器に出力する。書き込みが可能でないと判断すると、いずれかの記憶領域が空になるまで待機する。【００７１】  レスポンスを出力すると、以下に説明する（ａ）データブロックの受け取りの制御と（ｂ）書き込み制御とを実行する。
（ａ）データブロックの受け取りの制御
外部機器からバッファメモリ３０９への、一個のデータブロックの書き込みが終了すると、コマンド実行部３２１は、バッファメモリ３０９から１データブロックの書き込みが終了したことを示すＯＫ信号を受け取る。【００７２】  ＯＫ信号を受け取ると、コマンド実行部３２１は、再度バッファメモリ３０９の空き容量を確認し、データブロックを書き込み可能であるか否かを判断する。書き込み可能でなければ、書き込み可能な状態になるまで待機し、書き込み可能な状態になれば、１データブロックの書き込みが可能であることを示すレスポンスを外部ＩＦ部３０１を介して、外部機器へ出力する。【００７３】  （ｂ）書き込み制御
コマンド実行部３２１は、並列演算部３２２の記憶している並行書込数Ｎｗを読み出す。次に、ライトコマンドに含まれる先頭セクタ番号とセクタ数とをメモリ番号演算部３２３へ出力し、書き込みメモリ番号の算出を指示する。
メモリ番号演算部３２３から、演算終了信号を受け取る。次に、メモリ番号演算部３２３の記憶しているメモリテーブル３２４内の先頭からＮｗ個のメモリ情報を選択し、選択したメモリ情報から、メモリ番号とメモリアドレスとを抽出し、抽出したメモリ番号と対応するメモリ制御部へ、抽出したメモリアドレスと書き込みを示すライト指示とを出力する。【００７４】  具体的に、先頭セクタ番号「３」、セクタ数「４」、並行書込数Ｎｗ＝２の場合、メモリ情報３２６及び３２７から、それぞれのメモリ番号とメモリアドレスとを抽出する。メモリ番号「３」のフラッシュメモリ３１３を制御するメモリ制御部３３３へ、ライト指示とメモリアドレス「ＡＡＡＡ」とを出力し、メモリ番号「０」と対応するフラッシュメモリ３１０を制御するメモリ制御部３３０へ、それぞれ、メモリアドレス「ＢＢＢＢ」ライト指示とを出力する。【００７５】  次に、いずれかのメモリ制御部から、１データブロックの書き込みが終了したことを示す終了信号を受け取る。この時点で、コマンド実行部３２１は、メモリ制御部３３３及びメモリ制御部３３０へ、データブロックの書き込みを指示しており、合計２個のデータブロックの書き込みを指示し終えている。ライトコマンドと共に受け取ったセクタ数「４」に相当する４個のデータブロックの書き込みを指示し終えていないので、メモリテーブル３２４の次のメモリ情報３２８から、メモリ番号「１」とメモリアドレス「ＣＣＣＣ」とを抽出し、抽出したメモリ番号「１」と対応するメモリ制御部３３１へライト指示とメモリアドレス「ＣＣＣＣ」とを出力する。【００７６】  同様にして、メモリ番号「２」と対応するメモリ制御部３３２へ、ライト指示とメモリアドレス「ＤＤＤＤ」とを出力する。
受け取ったセクタ数「４」に相当する４個のデータブロックの書き込みを指示し終えると、フラッシュメモリへの書き込み制御を終了する。
＜読み出し処理＞
コマンド解析部３０３を介して、データの読み出しを指示するリードコマンドを受け取ると、以下に説明する（ａ）読み出し制御と（ｂ）データブロックの出力制御とを実行する。【００７７】  （ａ）読み出し制御
コマンド実行部３２１は、リードコマンドに含まれる先頭セクタ番号とセクタ数とをメモリ番号演算部３２３へ出力し、読み出しメモリ番号の算出を指示する。
次に、メモリ番号演算部３２３から、演算終了信号を受け取り、並列演算部３２２の記憶している並行読出数Ｎｒを読み出す。【００７８】  書き込み処理において、説明した（ａ）書き込み制御と同様の手順により、読み出しを行うフラッシュメモリを示すメモリ番号をメモリ制御部へ出力する。なお、読み出し制御の場合は、並列書込数Ｎｗに変わって、並列読出数Ｎｒを用い、ライト指示の代わりに、読出を示すリード指示を出力する。
次に、いずれかのメモリ制御部から１データブロックの読み出しが終了したことを示す終了信号を受け取る。このとき、リードコマンドと共に受け取ったセクタ数に相当するデータブロックの、読み出しの指示を出力し終えていれば、読み出し制御を終了する。【００７９】  セクタ数に相当するデータブロックの読み出しの指示を出力し終えていなければ、次のメモリ情報に含まれるメモリ番号と対応するメモリ制御部へリード指示を出力する。
（ｂ）データブロックの出力制御
リードコマンドを受け取ると、コマンド実行部３２１は、バッファメモリ３０９に記憶されているデータを確認し、１データブロックの出力が可能であるか否かを判断する。つまり、フラッシュメモリからバッファメモリ３０９へ１データブロック以上のデータが転送済みか否かを確認する。【００８０】  出力が可能でないと判断すると、いずれかのフラッシュメモリからバッファメモリ３０９へ、１データブロックの転送が終了するまで待機する。
出力可能であると判断すると、データブロックの出力が可能であることを示すレスポンスを、外部ＩＦ部３０１を介して、外部機器へ出力する。
続いて、バッファメモリ３０９へ１データブロックの出力を指示する。次に、バッファメモリ３０９から、１データブロックの出力が正常に終了したことを示すＯＫ信号を受け取る。ＯＫ信号を受け取ると、再度バッファメモリ３０９に記憶されているデータを確認し、１データブロックの出力が可能であるかを判断する。【００８１】  以下、同様にして、リードコマンドと共に受け取ったセクタ数に相当するデータブロックを出力し終えるまで、データブロックの出力の可否の判断、レスポンスの出力、１データブロックの出力を繰り返す。
１．４  メモリカード３００及びＰＣ１００の動作
メモリカード３００は、ＰＣ１００及びビデオカメラ２００に装着されるが、ここではＰＣ１００に装着された場合について説明する。【００８２】  （１）メモリカード３００装着時の動作
ＰＣ１００にメモリカード３００が装着された直後の、ＰＣ１００及びメモリカード３００の動作について、図７のフローチャートを用いて説明する。
ＰＣ１００は、外部ＩＦ部１０１を介して、メモリカード３００の装着を検出する（ステップＳ１０１）。次に、外部ＩＦ部１０１を介して、メモリカード３００へ、最大消費電流値Ｉｍａｘを要求する（ステップＳ１０２）。【００８３】  メモリカード３００は、外部ＩＦ部３０１を介して、ＰＣ１００から最大消費電流値Ｉｍａｘの要求を受け取る。最大消費電流値Ｉｍａｘの要求を受け取ると、制御情報記憶部３０８から、書込消費電流値Ｉｗ、読出消費電流値Ｉｒ、メモリ数Ｎ、制御電流値ａを読み出す（ステップＳ１０４）。次に、読み出した書込消費電流値Ｉｗ、読出消費電流値Ｉｒ、メモリ数Ｎ、制御電流値ａを基に、最大消費電流値Ｉｍａｘを算出し（ステップＳ１０６）、算出した最大消費電流値ＩｍａｘをＰＣ１００へ出力する（ステップＳ１０７）。【００８４】  ＰＣ１００は、メモリカード３００から最大消費電流値Ｉｍａｘを受け取る。最大許容電流値Ｉｍａｘを受け取ると、許容電流値記憶部１１０から許容電流値Ｉｏｋを読み出し（ステップＳ１０８）、読み出した許容電流値Ｉｏｋをメモリカード３００へ出力する（ステップＳ１０９）。
メモリカード３００は、外部ＩＦ部３０１を介して、ＰＣ１００から許容電流値Ｉｏｋを受け取り、受け取った許容電流値Ｉｏｋと算出した最大消費電流値Ｉｍａｘとを比較する（ステップＳ１１１）。Ｉｏｋ≧Ｉｍａｘであれば（ステップＳ１１１のＹＥＳ）、並行書込数Ｎｗ＝並行読出数Ｎｒ＝メモリ数Ｎとする（ステップＳ１１２）。【００８５】  Ｉｏｋ＜Ｉｍａｘであれば（ステップＳ１１１のＮＯ）、Ｎｗ＝ＩＮＴ｛（Ｉｏｋ−ａ）／Ｉｗ｝を算出し（ステップＳ１１３）、Ｎｒ＝ＩＮＴ｛（Ｉｏｋ−ａ）／Ｉｒ｝を算出し（ステップＳ１１４）、算出した並行書込数Ｎｗと並行読出数とを記憶する。次に、ＰＣ１００へ、Ａｃｋ信号を出力する（ステップＳ１１６）。
（２）メモリカード３００への書き込み動作
メモリカード３００への書き込み動作について、図８に示すフローチャートを用いて説明する。ここでは、具体的に、並行書込数Ｎｗ＝２、先頭セクタ番号「３」、セクタ数「４」の場合について説明する。【００８６】  ＰＣ１００は、利用者によるキー操作を受け付け（ステップＳ１２１）、メモリカード３００への書き込みを指示するキー操作を受け付けると、先頭セクタ番号「３」、セクタ数「４」を含むライトコマンドを生成し（ステップＳ１２３）、生成したライトコマンドをメモリカード３００へ出力する（ステップＳ１２４）。
メモリカード３００は、ＰＣ１００からライトコマンドを受け取り、バッファメモリ３０９の空き容量を確認し、データブロックを書き込み可能か否かを判断する（ステップＳ１２６）。書き込み可能でないと判断すると（ステップＳ１２６のＮＯ）、バッファメモリ３０９の空き容量が１データブロックを書き込み可能な状態になるまで待機する。【００８７】  書き込み可能であると判断すると（ステップＳ１２６のＹＥＳ）、データの書き込み可能であることを示すレスポンスをＰＣ１００生成し（ステップＳ１２８）、生成したレスポンスをＰＣ１００へ出力する（ステップＳ１２９）。
ＰＣ１００は、メモリカード３００からレスポンスを受け取る（ステップＳ１２９）。レスポンスを受け取ると、出力するデータのうち１データブロックを読み出し（ステップＳ１３１）、読み出したデータブロックをメモリカード３００へ出力する（ステップＳ１３２）。【００８８】  メモリカード３００は、ＰＣ１００からデータブロックを受け取り、受け取ったデータブロックをバッファメモリ３０９へ書き込む（ステップＳ１３３）。バッファメモリ３０９への書き込みが終了すると、再度、バッファメモリ３０９の空き容量を確認し、１データブロックを書き込み可能であるか否かを判断する（ステップＳ１３４）。書き込み可能でないと判断すると、バッファメモリ３０９にデータブロックを書き込み可能な状態になるまで、待機する（ステップＳ１３４のＮＯ）。【００８９】  書き込み可能であると判断すると（ステップＳ１３４のＹＥＳ）、メモリカード３００は、データブロックを書き込み可能であることを示すレスポンスを、ＰＣ１００へ出力する。同様にして、ＰＣ１００からデータブロックを受け取る度に、ステップＳ１３３〜ステップＳ１３６を繰り返す。
ＰＣ１００は、メモリカード３００から、レスポンスを受け取る（ステップＳ１３６）。このとき、メモリカード３００に書き込むデータを構成するデータブロック全てを出力し終えていなければ（ステップＳ１３４のＮＯ）、ステップＳ１２９へ戻り、次のデータブロックを出力する。【００９０】  また、メモリカード３００は、ステップＳ１３３〜１３６の動作と並行して、ステップＳ１４１〜ステップＳ１４７に示す、バッファメモリ３０９から各フラッシュメモリへのデータの転送の処理を行う。
まず、ライトコマンドに含んで受け取った先頭セクタ数「３」とセクタ数「４」とを基に、データブロックを書き込むフラッシュメモリを示すメモリ番号「３」、「０」、「１」、「２」を算出し、メモリテーブル３２４を生成する（ステップＳ１４１）。Ｎｗ＝２であるので、メモリ番号「３」、「０」と対応するメモリ制御部３３３及び３３０へライト指示を出力し、バッファメモリ３０９からフラッシュメモリ３１３及びフラッシュメモリ３１０へのデータブロックの転送を開始する（ステップＳ１４２）。【００９１】  いずれかのフラッシュメモリへのデータブロックの転送が終了する（ステップＳ１４３）。このとき、受け取ったセクタ数「４」に相当する４個のデータブロックの転送を各メモリ制御部へ、指示し終えていので（ステップＳ１４４のＮＯ）、メモリテーブル３２４から次のメモリ番号とメモリアドレス、具体的にはメモリ番号「１」とメモリアドレス「ＣＣＣＣ」を読み出し、読み出したメモリ番号「１」と対応するメモリ制御部３３１へメモリアドレス「ＣＣＣＣ」とライト指示を出力し、メモリ制御部３３１は、フラッシュメモリ３１１へのデータブロックの転送を開始する（ステップＳ１４６）。【００９２】  ステップＳ１４３〜１４６を繰り返し、メモリ番号「２」の示すフラッシュメモリ３１２へのデータブロックの転送を開始する。
次に、ステップＳ１４４において、４個のデータブロックのフラッシュメモリへの転送をメモリ制御部へ、指示し終えていると判断する（ステップＳ１４４のＹＥＳ）。全てのフラッシュメモリにおいて、データブロックの転送が完了すると（ステップＳ１４７）、書き込み動作を終了する。【００９３】  （３）書き込み時のタイムチャート
メモリカード３００へデータを書き込む際のメモリカード３００とＰＣ１００の間のコマンド及びデータの授受のタイミング及びメモリカード３００内のフラッシュメモリ３１０〜３１３の動作タイミングについて、図１０に示すタイムチャートを用いて説明する。ここで、並行書込数Ｎｗ＝２であり、ライトコマンドを受け取った時点で、バッファメモリ３０９の４個記憶領域は、すべて空であると想定する。【００９４】  図１０は、メモリカード３００がＰＣ１００から受け取るコマンド及びデータブロックとメモリカード３００がＰＣ１００へ出力するレスポンスとを時間の経過に沿って並べたものであり、横軸は時間の経過を示している。さらに、各時刻における、フラッシュメモリ３１０〜３１３の動作の状況を示している。
メモリカード３００は、ＰＣ１００から、ライトコマンドＡ０を受け取る。ライトコマンドＡ０には、先頭セクタ番号「３」とセクタ数「４」とが含まれる。【００９５】  メモリカード３００は、バッファメモリ３０９の空き容量を確認し、５１２バイトのデータブロックを書き込み可能であることを示すレスポンス１３１をＰＣ１００へ出力する。
レスポンス１３１を受け取ると、ＰＣ１００は、メモリカード３００へ、データブロックＡ１を出力する。【００９６】  これと同時に、メモリカード３００は、バッファメモリ３０９からフラッシュメモリ３１３へのデータブロックＡ１の転送を開始する。ＰＣ１００からメモリカード３００へのデータブロックＡ１の出力が終了すると、メモリカード３００は、再度、バッファメモリ３０９の空き容量を確認し、データブロックの書き込みが可能であることを示すレスポンス１３２をＰＣ１００へ出力する。【００９７】  レスポンス１３２を受け取ると、ＰＣ１００は、メモリカード３００へ、データブロックＡ２を出力する。
これと同時に、メモリカード３００は、バッファメモリ３０９からフラッシュメモリ３１０へのデータブロックＡ２の転送を開始する。
ＰＣ１００からメモリカード３００へのデータブロックＡ２の出力が終了すると、メモリカード３００は、再度、バッファメモリ３０９の空き容量を確認し、データブロックの書き込みが可能であることを示すレスポンス１３３をＰＣ１００へ出力する。【００９８】  同様にして、ＰＣ１００は、レスポンス１３３を受け取ると、データブロックＡ３をメモリカード３００へ出力する。ここで、並行書込数Ｎｗ＝２であり、フラッシュメモリ３１３及び３１０が動作中であるので、フラッシュメモリ３１３又は３１０のいずれかで転送が終了するまで、その他のフラッシュメモリは動作しない。
ＰＣ１００からメモリカード３００へのデータブロックＡ３の出力が終了する。メモリカード３００は、再度、バッファメモリ３０９の空き容量を確認し、データブロックの書き込みが可能であることを示すレスポンス１３４をＰＣ１００へ出力する。【００９９】  ＰＣ１００は、レスポンス１３４を受け取ると、データブロックＡ４をメモリカード３００へ出力する。
ここで、バッファメモリ３０９には、データブロックＡ１〜Ａ４が記憶されており、新たなデータブロックを書き込むことはできない。最初に、転送を開始したフラッシュメモリ３１３において、データブロックＡ１の書き込みが終了した時点で、バッファメモリ３０９へ新たなデータブロックの書き込みが可能になり、メモリカード３００は、書き込み可能であることを示すレスポンス１３５をＰＣ１００へ出力する。【０１００】  同時に、バッファメモリ３０９からフラッシュメモリ３１１へデータブロックＡ３の転送を開始する。次に、フラッシュメモリ３１０へのデータブロックＡ２の転送が終了すると、バッファメモリ３０９からフラッシュメモリ３１２へのデータブロックＡ４の転送を開始する。
１．５  まとめ及び効果
以上、説明してきたように、メモリカード３００は、外部機器に接続されると、外部機器の許容電流値を取得し、メモリカード３００の消費電流値が取得した許容電流値以下になるように、並行書込数Ｎｗと並行読出数Ｎｒとを算出する。【０１０１】  外部機器からライトコマンドを受け取ると、Ｎｗ個のフラッシュメモリを、並行して動作させ書き込みを行う。リードコマンドを受け取ると、Ｎｒ個のフラッシュメモリを並行して動作させて、読み出しを実行する。
本発明の効果について、具体的な数値を用いて説明する。
書込消費電流値Ｉｗ＝１００ｍＡ、読出消費電流値Ｉｒ＝５０ｍＡ、メモリ数Ｎ＝４及び制御電流値ａ＝１００ｍＡであり、フラッシュメモリ３１０〜３１３の書き込み及び読み出し速度は、１個当たり４ＭＢ／ｓであると想定する。【０１０２】  ＰＣ１００から許容電流値Ｉｏｋ＝３５０ｍＡを受け取ると、メモリカード３００は、式２及び式３を用いて
Ｎｗ＝ＩＮＴ｛（３５０−１００）／１００｝＝２
Ｎｒ＝ＩＮＴ｛（３５０−１００）／５０｝＝５
を算出する。ここで、Ｎｒ＞Ｎであるので、Ｎｒ＝Ｎ＝４とする。【０１０３】  このように想定した場合、メモリカード３００の書き込み時の消費電流値は、３００ｍＡであり、読み出し時の消費電流値は３５０ｍＡであり、いずれも許容電流値の３５０ｍＡ以下である。
また、このときのメモリカード３００の書き込み速度は、２個のフラッシュメモリを並行して動作させることが可能であるため、８ＭＢ／ｓであり、並行して動作しない場合と比較して２倍の書き込み速度を実現できる。読み出し速度は、４個のフラッシュメモリを並行して動作させることが可能であるため、１６ＭＢ／ｓであり、並行して動作しない場合と比較して４倍の読み出し速度を実現できる。【０１０４】  このようにして、ＰＣ１００の電力供給能力の範囲内で、効率よく、読み出し及び書き込みを高速化することができる。
２．実施の形態２
本発明の実施の形態２のメモリカード６００について、以下に説明する。
メモリカード６００は、実施の形態１のメモリカード３００と同様にＰＣ１００及びビデオカメラ２００に装着される。ＰＣ１００及びビデオカメラ２００は、の構成及び動作は実施の形態１と同様であるので、ここでは説明を省略する。【０１０５】  メモリカード６００は、４個のフラッシュメモリを搭載しており、外部機器、具体的には、ＰＣ１００又はビデオカメラ２００から、許容電流値を受け取り、メモリカード６００の消費電流値が受け取った許容電流値以下になるように、フラッシュメモリの動作周波数を算出する。外部機器から、コマンドを受け取ると、算出した動作周波数で、フラッシュメモリを動作させる。
２．１  メモリカード６００
メモリカード６００は、図１１に示すように、外部ＩＦ部６０１、制御部６０２、フラッシュメモリ６１０、６１１、６１２及び６１３から構成される。【０１０６】  制御部６０２は、コマンド解析部６０３、並列制御部６０４、クロック制御部６０５、メモリ制御部６３０、６３１、６３２、６３３、制御情報記憶部６０８及びバッファメモリ６０９を含む。
制御部６０２は、具体的にはマイクロプロセッサ、ＲＡＭ、ＲＯＭから構成され、ＲＡＭ及びＲＯＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが前記コンピュータプログラムに従って動作することにより、制御部３０２は、その機能を達成する。【０１０７】  外部ＩＦ部６０１、コマンド解析部６０３、メモリ制御部６３０、６３１、６３２、６３３、バッファメモリ６０９、フラッシュメモリ６１０、６１１、６１２及び６１３の構成及び動作は、実施の形態１の外部ＩＦ部３０１、コマンド解析部３０３、メモリ制御部３３０、３３１、３３２、３３３、バッファメモリ３０９、フラッシュメモリ３１０、３１１、３１２及び３１３と同様であるので説明を省略し、本実施の形態の特徴部分である、並列制御部６０４、クロック制御部６０５及び制御情報記憶部６０８についてのみ説明する。【０１０８】  （１）制御情報記憶部６０８
制御情報記憶部６０８は、ＲＯＭから構成され、図１１に示すように、書込消費電流値Ｉｗ、最大読出消費電流値Ｉｒｍａｘ、メモリ数Ｎ、最大周波数ｆｍａｘ及び制御電流値ａを記憶している。
書込消費電流値Ｉｗ、メモリ数Ｎ及び制御電流値ａは実施の形態１と同様である。【０１０９】  最大周波数ｆｍａｘは、メモリカード６００に搭載されているフラッシュメモリが最大の読み出し速度で読み出しの動作をする場合の動作周波数である。
最大読出消費電流値Ｉｒｍａｘは、１個のフラッシュメモリが、最大の読み出し速度で読み出しの動作をする場合、つまり、最大周波数ｆｍａｘで読み出しを実行する場合に、そのフラッシュメモリ及び対応するメモリ制御部が消費する電流値である。【０１１０】  （２）クロック制御部６０５
クロック制御部６０５は、ＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋ  Ｌｏｏｐ）を備えている。所定の時間間隔でクロック信号を生成し、生成したクロック信号をメモリカード６００を構成する各部へ出力する。通常、クロック制御部６０５が、メモリ制御部６３０〜６３３を介して、フラッシュメモリ６１０〜６１３へ供給するクロック信号のクロック周波数は、最大周波数ｆｍａｘである。このとき、メモリ制御部６３０〜６３３及びフラッシュメモリ６１０〜６１３の動作周波数もｆｍａｘである。【０１１１】  クロック制御部６０５は、並列制御部６０４から、周波数変更指示と読出周波数ｆｒとを受け取る。読出周波数ｆｒは、フラッシュメモリ６１０〜６１３が並行して読み出しの動作を行う際に、メモリカード６００が消費する電流値が許容電流値Ｉｏｋ以下になるフラッシュメモリ６１０〜６１３の動作周波数の上限値である。
周波数変更指示を受け取ると、ＰＬＬを用いて、メモリ制御部６３０〜６３３へ供給するクロック信号のクロック周波数を受け取った読出周波数ｆｒに変更する。【０１１２】  また、並列制御部６０４から変更終了指示を受け取り、フラッシュメモリ６１０〜６１３へ供給するクロック信号のクロック周波数を読出周波数ｆｒから通常の最大周波数ｆｍａｘへ戻す。
（３）並列制御部６０４
並列制御部６０４は、図１２に示すように、コマンド実行部６２１、並列演算部６２２及びメモリ番号演算部６２３から構成される。【０１１３】  メモリ番号演算部６２３は、実施の形態１と同様であるので、ここでは本実施の形態の特徴であるコマンド実行部６２１及び並列演算部６２２についてのみ説明する。
（３−１）並列演算部６２２
並列演算部６２２は、コマンド実行部６２１から最大消費電流値Ｉｍａｘの算出を指示される。また、コマンド実行部６２１から許容電流値Ｉｏｋを受け取り、並行書込数Ｎｗと読出周波数ｆｒの算出を指示される。【０１１４】  最大消費電流値Ｉｍａｘの算出を指示されると、制御情報記憶部６０８から書込消費電流値Ｉｗ、最大読出消費電流値Ｉｒｍａｘ、メモリ数Ｎ及び制御電流値ａを読み出す。読み出した書込消費電流値Ｉｗ、読出消費電流値Ｉｒ、メモリ数Ｎ及び制御電流値ａを基に、
Ｉｍａｘ＝Ｍａｘ（Ｎ×Ｉｗ，Ｎ×Ｉｒｍａｘ）＋ａ  −（式６）
を算出する。算出した最大消費電流値Ｉｍａｘをコマンド実行部６２１へ出力する。【０１１５】  並行書込数Ｎｗと読出周波数ｆｒの算出を指示されると、制御情報記憶部６０８から最大周波数ｆｍａｘを読み出す。次に、受け取った許容電流値Ｉｏｋと算出した最大電流値Ｉｍａｘとを比較し、Ｉｏｋ＜Ｉｍａｘであれば、
Ｎｗ＝ＩＮＴ｛（Ｉｏｋ−ａ）／Ｉｗ｝  −（式２）
ｆｒ＝ｆｍａｘ×（Ｉｏｋ−ａ）／Ｎ／Ｉｒｍａｘ  −（式７）
を算出する。このとき、Ｎｗ＞Ｎであれば、Ｎｗ＝Ｎとし、ｆｒ＞ｆｍａｘであればｆｒ＝ｆｍａｘとする。【０１１６】  Ｉｏｋ≧Ｉｍａｘであれば、Ｎｗ＝Ｎ、ｆｒ＝ｆｍａｘとする。
次に、算出した並行書込数Ｎｗと読出周波数ｆｒとを記憶し、コマンド実行部６２１へ正常に演算が終了したことを示す演算終了信号を出力する。
（３−２）コマンド実行部６２１
コマンド実行部６２１は、メモリカード６００が備えているフラッシュメモリの個数Ｎ＝４を予め記憶している。【０１１７】  コマンド実行部６２１は、コマンド解析部６０３により解析されたコマンドを受け取る。受け取ったコマンドにより、以下に説明する初期設定、書込動作及び読出動作を実行する。書込動作は実施の形態１と同様であるので、ここでは説明を省略する。
（初期設定）
コマンド解析部６０３を介して、最大消費電流値Ｉｍａｘを要求されると、コマンド実行部６２１は、並列演算部６２２へ最大消費電流値Ｉｍａｘの算出を指示する。並列演算部６２２から最大消費電流値Ｉｍａｘを受け取り、受け取った最大消費電流値Ｉｍａｘを外部ＩＦ部６０１を解して外部機器へ出力する。ここで外部機器とは、ＰＣ１００又はビデオカメラ２００である。【０１１８】  次に、外部ＩＦ部６０１及びコマンド解析部６０３を介して、外部機器から許容電流値Ｉｏｋを受け取る。許容電流値Ｉｏｋを受け取ると、受け取った許容電流値Ｉｏｋを並列演算部６２２へ出力し、並行書込数Ｎｗと読出周波数ｆｒの算出を指示する。
並列演算部６２２から正常に演算が終了したことを示す演算終了信号を受け取る。次に、外部ＩＦ部６０１を介して、外部機器へＡｃｋ信号を出力する。【０１１９】  （読み出し動作）
コマンド解析部６０３を介して、データの読み出しを指示するリードコマンドを受け取る。リードコマンドには、読み出しを開始するセクタの論理アドレスである先頭セクタ番号と読み出しを行うセクタ数とを含んでいる。リードコマンドを受け取ると、以下に説明する（ａ）読み出し制御と（ｂ）データブロックの出力制御とを実行する。【０１２０】  （ａ）読み出し制御
コマンド実行部６２１は、リードコマンドに含まれる先頭セクタ番号「５」とセクタ数「４」とをメモリ番号演算部６２３へ出力し、メモリ番号の算出を指示する。次に、並列演算部６２２から読出周波数ｆｒを読み出し、クロック制御部６０５へ、読み出した読出周波数ｆｒと周波数変更指示とを出力する。【０１２１】  次に、メモリ番号演算部６２３の記憶しているメモリテーブルのＮ個のメモリ情報からメモリ番号とメモリアドレスとを抽出し、抽出したメモリ番号の示すフラッシュメモリを制御するメモリ制御部へ、それぞれ、抽出したメモリアドレスと読み出しを示すリード指示とを出力する。
次に、いずれかのメモリ制御部から、読み出しが終了したことを示す終了信号を受け取る。このとき、リードコマンドに含んで受け取ったセクタ数に相当する個数のデータブロックの読み出しの指示を、メモリ制御部６３０〜６３３へ出力し終えていなければ、メモリテーブルから次のメモリ番号と、メモリアドレスを抽出し、抽出したメモリ番号と対応するメモリ制御部へリード指示を出力する。セクタ数に相当する個数のデータブロックのリード指示を、出力し終えるまで、メモリ番号とメモリアドレスの抽出、メモリ制御部へのリード指示の出力を繰り返す。【０１２２】  次に、リード指示を出力した全てのメモリ制御部から終了信号を受け取り、各フラッシュメモリからのデータの読み出しが終了したと判断する。フラッシュメモリからのデータの読み出しが終了したと判断すると、クロック制御部６０５へ変更終了指示を出力する。
（ｂ）データブロックの出力制御
リードコマンドを受け取ると、コマンド実行部６２１は、バッファメモリ６０９に記憶されているデータを確認し、１データブロックの出力が可能であるか否かを判断する。つまり、フラッシュメモリからバッファメモリ６０９へ１データブロック以上のデータが転送済みか否かを確認する。【０１２３】  出力が可能でないと判断すると、いずれかのフラッシュメモリからバッファメモリ６０９へ、１データブロックの転送が終了するまで待機する。
出力可能であると判断すると、データブロックの出力が可能であることを示すレスポンスを、外部ＩＦ部６０１を介して、外部機器へ出力する。
続いて、バッファメモリ６０９へ１データブロックの出力を指示する。【０１２４】  リードコマンドと共に受け取ったセクタ数に相当するデータブロックを外部機器へ出力し終えるまで、同様にして、データブロックの出力の可否の判断、レスポンスの出力、データブロックの出力を繰り返す。
２．２  メモリカード６００及びＰＣ１００の動作
メモリカード６００は、ＰＣ１００及びビデオカメラ２００に装着されるが、ここでは、ＰＣ１００に装着された場合について説明する。【０１２５】  （１）メモリカード６００の装着時の動作
メモリカード６００がＰＣ１００に装着されたときの初期設定の動作について、図１３に示すフローチャートを用いて説明する。
ＰＣ１００は、外部ＩＦ部１０１を介してメモリカード６００の装着を検出し、コンフィグ処理を行う（ステップＳ２０１）。次に、メモリカード６００へ最大消費電流値Ｉｍａｘを要求する（ステップＳ２０２）。【０１２６】  メモリカード６００は、ＰＣ１００から最大消費電流値Ｉｍａｘの要求を受け取る。最大消費電流値Ｉｍａｘの要求を受け取ると、制御情報記憶部６０８から、書込消費電流値Ｉｗ、最大読出消費電流値Ｉｒｍａｘ、メモリ数Ｎ及び制御電流値ａを読み出す（ステップＳ２０３）。次に、読み出した書込消費電流値Ｉｗ、最大読出消費電流値Ｉｒｍａｘ、メモリ数Ｎ及び制御電流値ａを用いて、最大消費電流値Ｉｍａｘを算出し（ステップＳ２０４）、算出した最大消費電流値ＩｍａｘをＰＣ１００へ出力する（ステップＳ２０７）。【０１２７】  ＰＣ１００は、メモリカード６００から最大消費電流値Ｉｍａｘを受け取り、許容電流値Ｉｏｋを読み出す（ステップＳ２０９）。読み出した許容電流値Ｉｏｋを外部ＩＦ部１０１を介してメモリカード６００へ出力する（ステップＳ２１１）。
メモリカード６００は、ＰＣ１００から、許容電流値Ｉｏｋを受け取り、最大読出周波数ｆｍａｘを読み出す（ステップＳ２１２）。【０１２８】  次に、受け取ったＩｏｋと算出した最大消費電流値Ｉｍａｘとを比較する（ステップＳ２１３）。Ｉｏｋ≧Ｉｍａｘであれば（ステップＳ２１３のＹＥＳ）、並行書込数Ｎｗをメモリ数Ｎとし、読出周波数ｆｒを最大読出周波数ｆｍａｘとする（ステップＳ２１４）。
Ｉｏｋ＜Ｉｍａｘであれば（ステップＳ２１３のＮＯ）、式２により並行書込数Ｎｗを算出する（ステップＳ２１７）。このとき、Ｎｗ＞Ｎとなる場合は、Ｎｗ＝Ｎとする。次に、式７により読出周波数ｆｒを算出する（ステップＳ２１８）。このとき、ｆｒ＞ｆｍａｘとなる場合、ｆｒ＝ｆｍａｘとする。【０１２９】  次に、初期設定が正常に終了したことを示すＡｃｋ信号をＰＣ１００へ出力する（ステップＳ２１９）。
（２）メモリカード６００からの読み出し動作
メモリカード６００からデータを読み出す際の、メモリカード６００及びＰＣ１００の動作について、図１４に示すフローチャートを用いて説明する。【０１３０】  ここでは、具体的に、先頭セクタ番号「５」とセクタ数「４」の場合について説明する。
ＰＣ１００は、利用者によるキー操作を受け付け（ステップＳ２４１）、メモリカード６００からの読み出しを示すキー操作を受け付けると、先頭セクタ番号「５」及びセクタ数「４」を含むリードコマンドを生成し（ステップＳ２４３）、外部ＩＦ部１０１を介して生成したリードコマンドをメモリカード６００へ出力する（ステップＳ２４４）。【０１３１】  受け付けたキー操作が、読み出し以外の処理を示していれば、その他の処理を行う（ステップＳ２４２）。
メモリカード６００は、ＰＣ１００からリードコマンドを受け取り、受け取ったリードコマンドに含まれる先頭セクタ番号「５」とセクタ数「３」とを基に、読み出しを行うフラッシュメモリを示すメモリ番号「１」、「２」、「３」、「０」を算出し、メモリテーブルを生成する（ステップＳ２４９）。【０１３２】  次に、メモリ制御部６３０〜６３３へ出力するクロック周波数を読出周波数ｆｒに変更する（ステップＳ２５１）。
メモリテーブル上のＮ（＝４）個のメモリ情報からメモリ番号とメモリアドレスを抽出し、抽出したメモリ番号「１」、「２」、「３」及び「０」に対応するフラッシュメモリからバッファメモリ６０９へのデータブロックの転送を開始する（ステップＳ２５２）。【０１３３】  いずれかのフラッシュメモリにおいて、データブロックの転送が終了したとき、（ステップＳ２５３）、受け取ったセクタ数「４」に相当する４個のデータブロックの出力をメモリ制御部へ指示し終えていなければ（ステップＳ２５４のＮＯ）、メモリテーブルを基に、次のデータブロックの読み出しをメモリ制御部へ指示する（ステップＳ２５６）。
合計して４個のデータブロックの出力をメモリ制御部へ指示し終えていれば（ステップＳ２５４のＹＥＳ）、全てのフラッシュメモリにおける読み出しの動作が終了した後（ステップＳ２５７）、クロック周波数を元に戻す（ステップＳ２５８）。【０１３４】  ステップＳ２５２〜ステップＳ２５８と並行して、ステップＳ２６１〜ステップＳ２６４の処理を行い、バッファメモリ６０９から外部機器へデータブロックを出力する。
まず、バッファメモリ６０９に１個以上のデータブロックが存在するか否かを判断する（ステップＳ２６１）。存在しなければ（ステップＳ２６１のＮＯ）、いずれかのフラッシュメモリからバッファメモリ６０９へ１個のデータブロックの転送が終了するまで待機する。【０１３５】  １個以上のデータブロックが存在する場合（ステップＳ２６１のＹＥＳ）、データブロックを出力可能であることを示すレスポンスをＰＣ１００へ出力する（ステップＳ２６２）。続いて、１個のデータブロックをバッファメモリ６０９からＰＣ１００へ出力する（ステップＳ２６３）。出力し終えると、リードコマンドに含んで受け取ったセクタ数「４」に相当する４個のデータブロックを、ＰＣ１００へ出力し終えるまで（ステップＳ２６４のＹＥＳ）、ステップＳ２６１〜２６４を繰り返す。【０１３６】  ＰＣ１００は、メモリカード６００からレスポンスを受け取り（ステップＳ２６２）、続いて、データブロックを受け取る（ステップＳ２６３）。４個のデータブロックを受け取り終えるまで（ステップＳ２６６のＹＥＳ）、レスポンス及びデータブロックの受け取りを繰り返す。
（３）読み出し時のタイムチャート
メモリカード６００からデータを読み出す際のメモリカード６００とＰＣ１００の間のコマンド及びデータの授受のタイミング及びメモリカード６００内のフラッシュメモリ６１０〜６１３の読み出し動作のタイミングについて、図１５に示すタイムチャートを用いて説明する。【０１３７】  図１５は、メモリカード６００がＰＣ１００から受け取るコマンド及びメモリカード６００からＰＣ１００へ出力されるデータブロックとを時間の経過に沿って並べたものであり、横軸は時間の経過を示している。また、各時刻におけるフラッシュメモリ６１０〜６１３の動作状態を示している。
メモリカード６００は、ＰＣ１００から、リードコマンドＢ０を受け取る。リードコマンドＢ０には、先頭セクタ番号「５」とセクタ数「４」とが含まれる。【０１３８】  メモリカード６００は、先頭セクタ番号「５」とセクタ数「４」を基にして、メモリ番号「１」、「２」、「３」、「０」を算出する。算出したメモリ番号と対応するフラッシュメモリ６１１からデータブロックＢ１を、フラッシュメモリ６１２からデータブロックＢ２を、フラッシュメモリ６１３からデータブロックＢ３を、フラッシュメモリ６１０からデータブロックＢ４を読み出し、読み出した各データブロックをバッファメモリ６０９へ転送する。フラッシュメモリ６１１においてデータブロックの転送が終了すると、メモリカード６００は、データブロックの出力が可能であることを示すレスポンス１４１をＰＣ１００へ出力する。続いて、バッファメモリ６０９からＰＣ１００へデータブロックＢ１を出力する。【０１３９】  ４個のフラッシュメモリの読み出し速度はほぼ同一であるので、各フラッシュメモリからバッファメモリ６０９へのデータブロックの転送はほぼ同時に終了する。
データブロックＢ１の出力を終えた時点で、バッファメモリ６０９には、データブロックＢ２〜Ｂ４が存在する。従って、メモリカード６００は、データブロックを出力可能であることを示すレスポンス１４２を出力し、データブロックＢ２を出力する。データブロックＢ２の出力が終了すると、同様にして、レスポンス１４３及びデータブロックＢ３の出力、レスポンス１４４及びデータブロックＢ４の出力を行う。
２．３  まとめ及び効果
以上、説明してきたように、本実施の形態２のメモリカード６００は、外部機器から許容電流値Ｉｏｋを取得し、メモリカード６００の消費電流値が、取得した許容電流値Ｉｏｋ以下になる様に、並行書込数Ｎｗと読出周波数ｆｒとを算出する。【０１４０】  外部機器からライトコマンドを受け取ると、算出した並行書込数Ｎｗ個のフラッシュメモリを並行に動作させデータの書き込みを実行する。
リードコマンドを受け取ると、フラッシュメモリ６１０〜６１３へ供給するクロック信号のクロック周波数を算出した読出周波数ｆｒに変更し、４個のフラッシュメモリ３１０〜３１３を並行して動作させデータの読み出しを実行する。【０１４１】  本実施の形態の効果について、具体的な数値を用いて説明する。なお、書き込みの処理における効果は、実施の形態１と同様であるので、ここでは、読み出しの処理における効果について、説明する。
書込消費電流値Ｉｗ＝１２０ｍＡ、最大読出消費電流値Ｉｒｍａｘ＝１００ｍＡ、最大周波数１００ＭＨｚ、メモリ数Ｎ＝４及び制御電流値ａ＝１００ｍＡであり、フラッシュメモリ６１０〜６１３の読み出し速度は、１個当たり最大１０ＭＢ／ｓであると想定する。【０１４２】  このとき、最大消費電流値は、式６より
Ｉｍａｘ＝Ｍａｘ（４×１２０，４×１００）＋１００＝５８０ｍＡ
である。ＰＣ１００の許容電流値Ｉｏｋ＝４００ｍＡであるとすると、Ｉｏｋ＜Ｉｍａｘであるので、メモリカード６００は、式７により読出周波数
ｆｒ＝１００×（４００−１００）／４／１００＝７５ＭＨｚ
を算出する。【０１４３】  読み出し動作におけるフラッシュメモリの消費電流値は、動作周波数に比例する。従って、動作周波数７５ＭＨｚで４個のフラッシュメモリにより読み出しの動作をする場合、メモリカード６００の消費する電流値は、
Ｉｒｍａｘ×（ｆｒ／ｆｍａｘ）×Ｎ＋ａ
＝１００×（７５／１００）×４＋１００
＝４００ｍＡ
と算出することができる。従って、４個のフラッシュメモリ６１０〜６１３を動作周波数７５ＭＨｚで、並行して動作させる場合の消費電流値を、ＰＣ１００の許容電流値４００ｍＡ以下に抑制することができた。【０１４４】  また、フラッシュメモリの読み出し速度は、動作周波数に比例するため、動作周波数７５ＭＨｚの場合、メモリカード６００の読み出し速度は
１０×（７５／１００）×４＝３０ＭＢ／ｓ
と算出することができる。従って、フラッシュメモリの動作周波数を７５ＭＨｚに下げて、４個のフラッシュメモリ６１０〜６１３を平行して動作させることにより、並行動作をせずに、最大周波数で動作させる場合と比較して３倍の読み出し速度を実現することができる。【０１４５】  このようにして、ＰＣ１００の電力供給能力の範囲内で、可能な限り読み出し高速化することができる。
なお、フラッシュメモリは、高電圧を印加し、電荷を蓄積させることによりデータを記録する。そのため、書き込み時の消費電流は、電圧の印加時間に比例し、周波数の更によって省電効果は期待できない。従って、本実施の形態において、読み出し時のみ周波数を変更する構成にしている。
３．実施の形態３
実施の形態１及び２において、本発明は、複数のフラッシュメモリを搭載したメモリカードであるとして説明してきたが、図１６に示すようなメモリカードドライブ７００でもある。【０１４６】  メモリカードドライブ７００は、４個のメモリカードスロットを備えており、４枚のメモリカード８１０、８１１、８１２及び８１３を装着して使用される。メモリカードドライブ７００は、ＰＣ１００及びビデオカメラ２００と接続される。
メモリカードドライブ７００は、実施の形態１のメモリカード３００と同様に、ＰＣ１００又はビデオカメラ２００の供給可能な電力の範囲内で、並行して動作させることができるメモリカードの個数を算出し、算出した個数のメモリカードを並行して動作させる。【０１４７】  ＰＣ１００及びビデオカメラ２００は実施の形態１と同様であるので、説明を省略する。
３．１  メモリカード８１０、８１１、８１２及び８１３
メモリカード８１０、８１１、８１２及び８１３は、制御部、ＲＡＭ、不揮発メモリを含んで構成される。メモリカードドライブ７００による制御に従い、各種の情報を記憶し、また、記憶している情報を出力する。
３．２  メモリカードドライブ７００
メモリカードドライブ７００は、図１７に示すように、外部ＩＦ部７０１、制御部７０２及びカードＩＦ部７１０、７１１、７１２及び７１３から構成される。【０１４８】  制御部７０２は、コマンド解析部７０３、並列制御部７０４、メモリ制御部７３０、７３１、７３２、７３３、クロック制御部７０５、制御情報記憶部７０８及びバッファメモリ７０９から構成される。
制御部７０２は、具体的には、マイクロプロセッサ、ＲＡＭ、ＲＯＭを含んで構成され、前記ＲＡＭ及びＲＯＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが前記コンピュータプログラムに従って動作することにより制御部７０２は、その機能を達成する。【０１４９】  以下に、メモリカードドライブ７００を構成する各部について、説明する。なお、制御部７０２に含まれるコマンド解析部７０３、クロック制御部７０５及びバッファメモリ７０９の構成及び動作は実施の形態１のコマンド解析部３０３及びバッファメモリ３０９と同様であるので、ここでは、改めて説明はしない。
（１）外部ＩＦ部７０１、カードＩＦ部７１０、７１１、７１２及び７１３
外部ＩＦ部７０１は、実施の形態１のメモリカード３００の外部ＩＦ部３０１と同様に外部機器と制御部７０２との間で各種の情報の送受信を行う。また、外部機器から供給される電力を受け取り、受け取った電力をメモリカードドライブ７００を構成する各回路へ出力する。【０１５０】  カードＩＦ部７１０、７１１、７１２及び７１３は、メモリカード８１０、８１１、８１２及び８１３と接続され、メモリカード８１０、８１１、８１２及び８１３とメモリ制御部７３０、７３１、７３２及び７３３との間で各種の情報の入出力を行う。また、メモリ制御部７３０、７３１、７３２及び７３３を介して、クロック制御部７０５からクロック信号を受け取り、受け取ったクロック信号をメモリカード８１０、８１１、８１２及び８１３へ供給する。【０１５１】  なお、外部ＩＦ部７０１と外部機器との間のデータの入出力速度は、カードＩＦ部７１０、７１１、７１２及び７１３とメモリカード８１０、８１１、８１２及び８１３の間の入出力速度に比べて十分高速である。
（２）制御情報記憶部７０８
制御情報記憶部７０８は、図１７に示すように、書込消費電流値Ｉｗ、読出消費電流値Ｉｒ、最大カード数Ｎｍａｘ、制御電流値ａを記憶している。【０１５２】  書込消費電流値Ｉｗは、メモリカードドライブ７００に装着されるメモリカード１枚当たりの書き込みの動作のために、一組のメモリカード、カードＩＦ部及びメモリ制御部が消費する電流値である。読出消費電流値Ｉｒは、メモリカード１枚当たりの読み出しの動作のために、一組のメモリカード、カードＩＦ部、メモリ制御部が消費する電流値である。【０１５３】  最大カード数Ｎｍａｘは、メモリカードドライブ７００に装着可能なメモリカードの枚数、すなわちメモリカードスロットの数であり、本実施の形態では、Ｎｍａｘ＝４である。
制御電流値ａは、メモリカード、カードＩＦ部及びメモリ制御部以外の各回路が動作するために消費する電流の合計値である。【０１５４】  （３）メモリ制御部７３０、７３１、７３２及び７３３
メモリ制御部７３０は、クロック制御部７０５から、クロック信号を受け取り、受け取ったクロック信号をカードＩＦ部７１０を介してメモリカード８１０へ供給する。
メモリ制御部７３０は、カードＩＦ部７１０を介してメモリカード８１０の着脱を検出する。【０１５５】  メモリ制御部７３０は、並列制御部７０４から、ライト指示と書き込みを行うセクタを示すメモリアドレスとを受け取る。また、並列制御部７０４から、リード指示とメモリアドレスとを受け取る。
ライト指示とメモリアドレスを受け取ると、カードＩＦ部７１０を介して、メモリカード８１０内の、受け取ったメモリアドレスと対応するセクタへ、バッファメモリ７０９から１個のデータブロックを転送する。転送が終了すると、１データブロックの書き込みが終了したことを示す終了信号を並列制御部７０４へ出力する。【０１５６】  リード指示とメモリアドレスとを受け取ると、カードＩＦ部７１０を介して、受け取ったメモリアドレスと対応するセクタに記憶されているデータブロックを、メモリカード８１０からバッファメモリ７０９へ転送する。転送が終了すると、１データブロックの読み出しが終了したことを示す終了信号を並列制御部７０４へ出力する。
メモリ制御部７３０と同様にして、メモリ制御部７３１〜７３３は、カードＩＦ部７１１〜７１３を介してメモリカード８１１〜８１３へのデータの入出力を制御する。【０１５７】  （４）並列制御部７０４
並列制御部７０４は、図１８に示すように、コマンド実行部７２１、並列演算部７２２及びメモリ番号演算部７２３を含む。
並列制御部７０４の構成及び動作は、実施の形態１の並列制御部３０４の構成及び動作と類似している。従って、以下の、並列制御部７０４に関する説明において、並列制御部３０４と共通する部分については、説明を割愛し、異なる部分についてのみ、詳細に説明する。【０１５８】  （４−１）並列演算部７２２
並列演算部の７２２は、メモリ数Ｎに代わって最大カード数Ｎｍａｘを用いて、実施の形態１の並列演算部３２２と同様の演算を行う。詳細な動作は並列演算部３２２と同様であるので説明を省略する。
（４−２）メモリ番号演算部７２３
メモリ番号演算部７２３の詳細な動作は、メモリ番号演算部３２３と同様であるので、ここでは、簡易に説明する。なお、本実施の形態において、メモリ番号「０」〜「４」は、それぞれ、メモリカード８１０〜８１３と対応している。【０１５９】  メモリ番号演算部７２３は、コマンド実行部７２１から、先頭セクタ番号とセクタ数とを受け取りメモリ番号の算出を指示される。
メモリ番号の算出を指示されると、メモリ番号演算部７２３は、メモリ数Ｎに変わって最大メモリ数Ｎｍａｘを用いて、式４及び式５の演算を行い、メモリ番号とセクタ番号とを算出する。算出したセクタ番号とメモリ番号と、メモリ番号と対応するメモリカード上のアドレスであるメモリアドレスとを含むメモリテーブルを生成する。【０１６０】  メモリテーブルを生成すると、コマンド実行部７２１へ、メモリ番号の演算が終了したことを示す演算終了信号を出力する。
（４−３）コマンド実行部７２１
コマンド実行部７２１は、外部機器から出力されコマンド解析部７０３により解析された各種のコマンドを受け取る。【０１６１】  受け取ったコマンドが許容電流値を要求するものであれば、実施の形態１のコマンド実行部３２１の行う初期設定と同様の処理を行い、並列演算部７２２から並行書込数Ｎｗと並行読出数Ｎｒとの演算が正常に終了したことを示す演算終了信号を受け取る。
受け取ったコマンドがデータの書き込みを指示するライトコマンドであれば、実施の形態１のコマンド実行部３２１による＜書き込み処理＞と同様の手順で、外部機器からデータブロックを受け取り、各メモリ制御部へ書き込みを指示することにより、並行書込数Ｎｗ個のメモリカードに並行して書き込みを行う。【０１６２】  受け取ったコマンドがデータの読み出しを指示するリードコマンドであれば、実施の携帯実施の形態１のコマンド実行部３２１による＜読み出し処理＞と同様の手順で、各メモリ制御部へデータの読み出しを指示することにより、並行読出数のメモリカードから並行して、データを読み出す。
３．３  まとめ及び効果
以上説明してきたように、本実施の形態のメモリカードドライブ７００は、接続される外部機器の許容電流値を取得し、取得した許容電流値の範囲内で並行して動作させることができるメモリカードの数を、読み出し時及び書き込み時についてそれぞれ算出する。【０１６３】  外部機器から、ライトコマンドを受け取ると、算出した並行書込数Ｎｗ個以下のメモリカードを並行して動作させる。また、リードコマンドを受け取ると、算出した並行読出数Ｎｒ個以下のメモリカードを並行して動作させる。
このようにすることで、実施の形態１のメモリカード３００と同様に、接続される外部機器により供給可能な電流の範囲内で、可能な限り高速に読み出し及び書き込みを実行することができる。
３．４  実施の形態３の変形例
（１）実施の形態３のメモリカードドライブ７００は、実施の形態１において説明したメモリカード３００と同様に、外部機器の許容電流値Ｉｏｋの範囲内で並行して動作可能なメモリカード数Ｎｗ及びＮｒを算出し、並行して動作させるメモリカードの数をＮｗ又はＮｒ以下に制限することで、メモリカードドライブの消費電流値が、許容電流値Ｉｏｋ以下になる様に制御している。【０１６４】  しかし、実施の形態２において説明した様に、読み出し時の動作周波数を変更することによって、消費電流値を許容電流値以下に抑えるようにしても良い。
（２）実施の形態３において、動作していないメモリカードへのクロック信号の供給を停止するとしても良い。
この場合、メモリ制御部７３０は、通常、クロック制御部７０５から受け取ったクロック信号を、メモリカード８１０へ供給していない。【０１６５】  コマンド実行部７２１から、ライト指示とメモリ番号とを受け取ると、メモリカード８１０へクロック信号の供給を開始する。次に、バッファメモリ７０９から、メモリカード８１０へ、データブロックの転送を開始する。１データブロックの転送が終了すると、並列制御部７０４内のコマンド実行部７２１へ終了信号を出力し、メモリカード８１０へのクロック信号の供給を停止する。【０１６６】  コマンド実行部７２１から、リード指示を受け取った場合も、同様に、データブロックの転送中のみ、メモリカード８１０へクロック信号を供給する。
メモリ制御部７３１〜７３３についても、メモリカード８１１〜８１２に対して同様の制御を行う。
このようにして、メモリカードドライブ７００は、動作中のメモリカードにのみクロック信号を供給し、動作していないメモリカードには、クロック信号の供給を停止する。【０１６７】  メモリカード８１０〜８１３の制御部は、読み出し及び書き込みの動作を行っていない場合でも、クロック信号を受け取ると、所定の動作を行い電力を消費する。従って、書き込み及び読み出しを行わないメモリカードへのクロック信号の供給を停止することで、これらのメモリカードによる電力消費を削減することができる。
（３）上記の実施の形態において、メモリカードドライブ７００には、４枚のメモリカードが装着されて使用されるとして説明したが、４枚未満でもよい。【０１６８】  この場合、コマンド実行部７２１は、メモリ制御部及びカードＩＦ部を介して、メモリカードの着脱を検出し、現在装着されているメモリカードの枚数ｎを記憶する。また、装着されているメモリカードとカード番号とを対応付ける。
例えば、メモリカード８１１が装着されていない場合には、メモリカード８１０とカード番号「０」、メモリカード８１２とカード番号「１」、メモリカード８１３とカード番号「３」とを対応付ける。【０１６９】  リードコマンド又はライトコマンドを受け取ると、メモリ番号演算部７２３へ先頭セクタ番号とセクタ数と共に、装着されているメモリカードの枚数ｎを出力する。
メモリ番号演算部７２３は、Ｎｍａｘに代わって、ｎを用いてメモリテーブルを生成する。
このようにすることで、装着されるメモリカードの枚数に応じて、データの入出力の高速化を図ることができる。利用者においては、装着するメモリカードの枚数を自由に選択することができ、利便性が向上する。
４．その他の変形例
以上、本発明の実施の形態１〜３について説明してきたが、本発明はこれらに限定されるものではなく、以下に説明する変形例も含む。【０１７０】  （１）上記の実施の形態１及び２において、メモリカード３００及び６００は４個のフラッシュメモリを搭載しているが、フラッシュメモリに限定するものではなく、他の記録素子でもよい。一例として、ＭＲＡＭ（Ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  Ｒａｎｄａｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、強誘電体メモリなどである。
（２）実施の形態３及び変形例において、メモリカードドライブ７００に装着されるメモリカードは、一例として、ＳＤメモリカード、ＡＴＡフラッシュカードなどである。【０１７１】  （３）実施の形態３及び変形例において、メモリカードドライブ７００は、予め、装着されるメモリカードの書込消費電流値Ｉｗと読出消費電流値Ｉｒとを１個ずつ記憶しているが、種類の異なるメモリカードについて、書込消費電流値Ｉｗと読出消費電流値Ｉｒとを記憶しているとしても良い。
例えば、ＳＤメモリカードの書込消費電流値Ｉｗｓと読出消費電流値Ｉｒｓ及びＡＴＡフラッシュカードの書込消費電流値Ｉｗａと読出消費電流値Ｉｒａとを記憶しており、装着されたメモリカードの種類を判別し、書込消費電流値Ｉｗｓと読出消費電流値Ｉｒｓ、又は、書込消費電流値Ｉｗａと読出消費電流値Ｉｒａのうち何れか一方を選択して用いるとしても良い。【０１７２】  （４）実施の形態３において、メモリカードドライブ７００は、外部機器に外付けされているが、外部機器に内蔵されているとしても良い。
（５）上記の実施の形態２において、クロック制御部６０５はＰＬＬを用いて、周波数を変更しているが、ＰＬＬに代わって周波数分周器を用いても良い。
（６）上記の実施の形態１及び２では、それぞれ、並行動作するフラッシュメモリの個数、フラッシュメモリの動作周波数を変更することで、メモリカード３００又は６００の消費電流を調整しているが、これらを組み合わせて、並行動作するフラッシュメモリの個数及びフラッシュメモリの動作周波数の両方を変更するとしてもよい。【０１７３】  （７）本発明は、上記の実施の形態１〜３及び変形例を実行する方法であってもよい。
（８）また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。【０１７４】  また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。【０１７５】  また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記プログラム又は前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
（９）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【産業上の利用可能性】
【０１７６】  本発明は、各種のデジタルデータを記録媒体に書き込み及び読み出しをする入出力装置及び記録媒体を生産する産業、前記入出力装置を解して記録媒体にアクセスする電気機器を製造する産業、前記電気機器、記録装置、記録媒体を利用して、各種のデジタルデータを生成し、加工し、記録し、販売する産業において、経営的に、また継続的及び反復的に使用することができる。
【図１】
2005057475.tif 000003
【図２】
2005057475.tif 000004
【図３】
2005057475.tif 000005
【図４】
2005057475.tif 000006
【図５】
2005057475.tif 000007
【図６】
2005057475.tif 000008
【図７】
2005057475.tif 000009
【図８】
2005057475.tif 000010
【図９】
2005057475.tif 000011
【図１０】
2005057475.tif 000012
【図１１】
2005057475.tif 000013
【図１２】
2005057475.tif 000014
【図１３】
2005057475.tif 000015
【図１４】
2005057475.tif 000016
【図１５】
2005057475.tif 000017
【図１６】
2005057475.tif 000018
【図１７】
2005057475.tif 000019
【図１８】
2005057475.tif 000020
【手続補正書】
【提出日】平成17年8月4日(2005.8.4)
【手続補正００１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１
【補正方法】変更
【補正の内容】
【請求項１】記録装置であって、
１以上の半導体メモリと、
アクセス装置から当該記録装置へ供給される電流の上限値を取得する取得手段と、
前記アクセス装置から、前記半導体メモリへの書き込みを指示するライトコマンド及び前記半導体メモリからの読み出しを指示するリードコマンドを含むコマンドのうちの少なくとも何れかを取得するコマンド取得手段と、
前記アクセス装置から電流の供給を受け、制御信号に従って、前記半導体メモリにアクセスするアクセス手段と、
取得した前記上限値から、前記半導体メモリ及びアクセス手段以外の各部により消費される電流値を差し引いたアクセス上限値を算出し、算出したアクセス上限値を用いて、取得された前記コマンドの種類に応じて、前記アクセス手段及び前記半導体メモリの動作条件を設定し、
取得された前記コマンドと設定された前記動作条件とに基づいて、前記制御信号を生成し、生成した制御信号を出力する制御手段と
を備えることを特徴とする記録装置。
【手続補正００２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項２
【補正方法】変更
【補正の内容】
【請求項２】前記制御手段は、予め、前記アクセス手段及び各半導体メモリの消費する消費電流値を、前記コマンドの種類ごとに記憶しており、前記アクセス上限値と前記消費電流値とを用いて、前記コマンドの種類と対応する動作条件を設定する
ことを特徴とする請求項１に記載の記録装置。
【手続補正００３】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項３
【補正方法】変更
【補正の内容】
【請求項３】前記制御手段は、当該記録装置の備えている半導体メモリの総数以下の並列個数の前記半導体メモリを、並行して動作させる前記動作条件を設定し、
前記コマンドと前記動作条件とに基づいて、前記並列個数の前記半導体メモリへのアクセスを指示する制御信号を、前記アクセス手段へ出力し、
前記アクセス手段は、前記並列個数の前記半導体メモリへアクセスする
ことを特徴とする請求項２に記載の記録装置。
【手続補正００４】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項４
【補正方法】変更
【補正の内容】
【請求項４】前記消費電流値は、１個の前記半導体メモリを動作させる際に、前記アクセス手段及び前記半導体メモリの消費する電流値であり、
前記制御手段は、前記アクセス上限値を前記消費電流値で除算して得られた商を前記並
列個数として算出する
ことを特徴とする請求項３に記載の記録装置。
【手続補正００５】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項５
【補正方法】変更
【補正の内容】
【請求項５】前記アクセス手段は、前記半導体メモリと同数のアクセス部を含んで構成され、各アクセス部は、各半導体メモリと対応しており、
前記制御手段は、前記並列個数と同数のアクセス信号を含んで構成される前記制御信号を生成し、
各アクセス信号は、それぞれ異なるアクセス部と、対応する半導体メモリへのアクセスを指示するものであり、
前記請求項手段は、生成した各アクセス信号を、対応するアクセス部へ出力し、
前記アクセス信号を受け取ったアクセス部は、受け取ったアクセス信号に従って、対応する半導体メモリへアクセスする
ことを特徴とする請求項４に記載の記録装置。
【手続補正００６】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項６
【補正方法】変更
【補正の内容】
【請求項６】前記制御手段は、前記半導体メモリの最大動作周波数以下のメモリ周波数で前記半導体メモリを動作させる前記動作条件を設定し、
前記コマンドと前記動作条件に基づいて、前記メモリ周波数と同一の周波数のクロック信号を生成し、生成したクロック信号を含む前記制御信号を、前記アクセス手段へ出力し、
前記アクセス手段は、前記制御手段から受け取ったクロック信号を、前記半導体メモリへ出力し、前記半導体メモリへアクセスする
ことを特徴とする請求項２に記載の記録装置。
【手続補正００７】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項７
【補正方法】変更
【補正の内容】
【請求項７】前記制御手段は、各半導体メモリが前記最大周波数で動作した場合の、前記アクセス手段及び当該半導体メモリの消費する最大電流値を前記消費電流値として記憶しており、前記最大周波数と前記最大電流値の比率と前記アクセス上限値とを用いて、前記メモリ周波数を算出する
ことを特徴とする請求項６に記載の記録装置。
【手続補正００８】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項９
【補正方法】変更
【補正の内容】
【請求項９】前記制御手段は、読み出しを指示する前記リードコマンドに対応する前記消費電流値を記憶しており、読み出しを指示する前記リードコマンドに対応して、前記メモリ周波数で前記半導体メモリを動作させる前記動作条件を設定する
ことを特徴とする請求項６に記載の記録装置。
【手続補正００９】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１０
【補正方法】変更
【補正の内容】
【請求項１０】前記制御手段は、分周器を備え、分周器を用いて、前記メモリ周波数と同一の周波数のクロック信号を生成し、生成したクロック信号を含む制御信号を出力する
ことを特徴とする請求項６に記載の記録装置。
【手続補正０１０】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１１
【補正方法】変更
【補正の内容】
【請求項１１】前記制御手段は、ＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋ  Ｌｏｏｐ）を備えており、前記ＰＬＬを用いて、前記メモリ周波数と同一の周波数のクロック信号を生成し、生成したクロック信号を含む制御信号を出力する
ことを特徴とする請求項６に記載の記録装置。
【手続補正０１１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１２
【補正方法】変更
【補正の内容】
【請求項１２】前記制御手段は、当該記録装置の備えている半導体メモリの総数以下の並列個数の前記半導体メモリを、並行して動作させる第１の動作条件及び前記半導体メモリの最大動作周波数以下の動作周波数で前記半導体メモリを動作させる第２の動作条件を前記動作条件として設定し、
前記コマンド取得手段により取得されるコマンドの種類に基づいて、前記第１及び第２の動作条件のうち少なくとも一方を採用し、採用した前記動作条件に基づく前記制御信号を生成する
ことを特徴とする請求項２に記載の記録装置。
【手続補正０１２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１６
【補正方法】変更
【補正の内容】
【請求項１６】前記半導体メモリは可搬型であり、当該記録装置に着脱可能であり、
前記取得手段と前記読書手段と前記制御手段とは、前記記録媒体に情報の読出及び書き込みを行うメモリカードドライブデバイスを構成する
ことを特徴とする請求項１に記載の記録装置。
【手続補正０１３】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１７
【補正方法】変更
【補正の内容】
【請求項１７】前記制御手段は、クロック信号を含む前記制御信号を出力し、
前記アクセス手段は、アクセスする半導体メモリにのみ前記クロック信号を供給し、アクセスをしていない半導体メモリへの前記クロック信号の供給を停止する
ことを特徴とする請求項１５に記載の記録装置。
【手続補正０１４】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１８
【補正方法】変更
【補正の内容】
【請求項１８】１以上の半導体メモリを備える記録装置において用いられるアクセス方法であって、
アクセス装置から当該記録装置へ供給される電流の上限値を取得する取得ステップと、
前記アクセス装置から、前記半導体メモリへの書き込みを指示するライトコマンド及び前記半導体メモリからの読み出しを指示するリードコマンドを含むコマンドのうちの少なくとも何れかを取得するコマンド取得ステップと、
前記アクセス装置から電流の供給を受け、制御信号に従って、前記半導体メモリにアクセスするアクセスステップと、
取得した前記上限値から、前記半導体メモリ及びアクセス手段以外の各部により消費される電流値を差し引いたアクセス上限値を算出し、算出したアクセス上限値を用いて、取得された前記コマンドの種類に応じて、前記アクセス手段及び前記半導体メモリの動作条件を設定し、
取得された前記コマンドと設定された前記動作条件とに基づいて、前記制御信号を生成し、生成した制御信号を出力する制御ステップと
を備えることを特徴とするアクセス方法。
【手続補正０１５】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１９
【補正方法】変更
【補正の内容】
【請求項１９】１以上の半導体メモリを備える記録装置において用いられるアクセスプログラムであって、
アクセス装置から当該記録装置へ供給される電流の上限値を取得する取得ステップと、
前記アクセス装置から、前記半導体メモリへの書き込みを指示するライトコマンド及び前記半導体メモリからの読み出しを指示するリードコマンドを含むコマンドのうちの少なくとも何れかを取得するコマンド取得ステップと、
前記アクセス装置から電流の供給を受け、制御信号に従って、前記半導体メモリにアクセスするアクセスステップと、
取得した前記上限値から、前記半導体メモリ及びアクセス手段以外の各部により消費される電流値を差し引いたアクセス上限値を算出し、算出したアクセス上限値を用いて、取得された前記コマンドの種類に応じて、前記アクセス手段及び前記半導体メモリの動作条件を設定し、
取得された前記コマンドと設定された前記動作条件とに基づいて、前記制御信号を生成
し、生成した制御信号を出力する制御ステップと
を備えることを特徴とするアクセスプログラム。
【手続補正０１６】
【補正対象書類名】明細書
【補正対象項目名】０００２
【補正方法】変更
【補正の内容】
【０００２】
必要となる。従って、このメモリカードドライブを使用可能なＰＣは、メモリカードドライブヘ８００ｍＡ以上の電流を供給できるものに限定されることになる。
【特許文献１】特開２００２−１８９９９２号公報
【特許文献２】特開２０００−２０７１３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】しかしながら、供給できる電流量によって、接続可能な電気機器が限定されることは利用者にとって不便であり、接続される電気機器の供給可能な電流量に関わらず、使用可能なメモリカードドライブの要求がある。そこで本発明は、かかる問題点に鑑みてなされたものであり、接続される電気機器の供給可能な電流量に応じて、動作条件を変更し、消費電流を前記電気機器の供給可能な電流量以下に抑制することができる記録装置、メモリカードドライブデバイスを提供することを目的とする。
【課題を解決するための手段】
【０００７】上記目的を達成するために本発明は、１以上の半導体メモリと、アクセス装置から当該記録装置へ供給される電流の上限値を取得する取得手段と、前記アクセス装置から、前記半導体メモリへの書き込みを指示するライトコマンド及び前記半導体メモリからの読み出しを指示するリードコマンドを含むコマンドのうちの少なくとも何れかを取得するコマンド取得手段と、前記アクセス装置から電流の供給を受け、制御信号に従って、前記半導体メモリにアクセスするアクセス手段と、取得した前記上限値から、前記半導体メモリ及びアクセス手段以外の各部により消費される電流値を差し引いたアクセス上限値を算出し、算出したアクセス上限値を用いて、取得された前記コマンドの種類に応じて、前記アクセス手段及び前記半導体メモリの動作条件を設定し、取得された前記コマンドと設定された前記動作条件とに基づいて、前記制御信号を生成し、生成した制御信号を出力する制御手段とを備えることを特徴とする記録装置である。
【０００８】ここで、後述する実施の形態において、制御手段とは、並列制御部、制御情報記憶部及びクロック制御部に相当する。また、制御信号とは、書き込み指示、読み出し指示及びクロック信号に相当する。
２
【手続補正０１７】
【補正対象書類名】明細書
【補正対象項目名】０００３
【補正方法】変更
【補正の内容】
【０００３】
【発明の効果】
【０００９】この構成によって、本発明の記録装置は、前記アクセス装置から取得する上限値から算出したアクセス上限値に基づいて動作条件を設定する。従って、適切な動作条件を設定することによって、前記アクセス装置から供給可能な電流の範囲内で、半導体メモリにアクセスを行うことができる。
前記記録装置において、前記制御手段は、予め、前記アクセス手段及び各半導体メモリの消費する消費電流値を前記コマンドの種類ごとに記憶しており、前記アクセス上限値と前記消費電流値とを用いて、前記コマンドの種類と対応する動作条件を設定することを特徴とする。
【００１０】この構成によると、前記制御手段は、コマンドと対応する動作条件を設定する。つまり、前記制御手段は、前記アクセス装置から出力されるコマンドによって、半導体メモリ及びアクセス手段の消費する電力が異なる場合、コマンド毎に最適な動作条件を設定することができる。従って、前記アクセス手段は、コマンド毎に最適の動作条件で、前記半導体メモリへアクセスすることができる。
【００１１】前記記録装置において、前記制御手段は、当該記録装置の備えている半導体メモリの総数以下の並列個数の前記半導体メモリを、並行して動作させる前記動作条件を設定し、前記コマンドと前記動作条件とに基づいて、前記並列個数の前記半導体メモリへのアクセスを指示する制御信号を、前記アクセス手段へ出力し、前記アクセス手段は、前記並列個数の前記半導体メモリへアクセスすることを特徴とする。
【００１２】この構成によると、前記制御手段は、当該記録装置の備えている半導体メモリの総数以下の並列個数の前記半導体メモリが、並行して動作するような前記動作条件を設定する。つまり、並行して動作する前記半導体メモリの個数を制限する。前記記録装置の消費する電流値は、並行して動作する半導体メモリの個数に対応している。従って、並行して動作する半導体メモリの個数を制限することにより、前記記録装置の消費する電流値を、確実に制限することができる。
【００１３】前記消費電流値は、１個の前記半導体メモリを動作させる際に、前記アクセス手段及び前記半導体メモリの消費する電流値であり、前記記録装置を構成する前記制御手段は、前記アクセス上限値を前記消費電流値で除算して得られた商を前記並列個
３
【手続補正０１８】
【補正対象書類名】明細書
【補正対象項目名】０００４
【補正方法】変更
【補正の内容】
【０００４】
数として算出することを特徴とする。
この構成によると、前記制御手段は、前記アクセス上限値を前記消費電流値で除算することで、簡単に前記並列個数を算出することができる。
【００１４】前記記録装置において、前記アクセス手段は、前記半導体メモリと同数のアクセス部を含んで構成され、各アクセス部は、各半導体メモリと対応しており、前記制御手段は、前記並列個数と同数のアクセス信号を含んで構成される前記制御信号を生成し、各アクセス信号は、それぞれ異なるアクセス部に、対応する半導体メモリへのアクセスを指示するものであり、前記請求項手段は、生成した各アクセス信号を、対応するアクセス部へ出力し、前記アクセス信号を受け取ったアクセス部は、受け取ったアクセス信号に従って、対応する半導体メモリへアクセスすることを特徴とする。
【００１５】この構成によると、前記制御手段は、各アクセス信号を、それぞれ異なるアクセス部へ出力し、アクセス信号を受け取ったアクセス部は、対応する半導体メモリへアクセスするため、各アクセス手段へ順番にアクセス指示を出力することにより、当該記録装置の備える半導体メモリに順番にデータを書き込み、各半導体メモリ記憶しているデータの量をある程度均一にすることができる。このようにすることで、並行動作できる半導体メモリの個数が減少することを防ぐことができる。従って、当該記録装置のアクセス速度の低下を防ぐことができる。
【００１６】また、本発明の記録装置において、前記制御手段は、前記半導体メモリの最大動作周波数以下のメモリ周波数で前記半導体メモリを動作させる前記動作条件を設定し、前記動作条件を設定し、前記コマンドと前記動作条件に基づいて、前記メモリ周波数と同一の周波数のクロック信号を生成し、生成したクロック信号を含む前記制御信号を、前記アクセス手段へ出力し、前記アクセス手段は、前記制御手段から受け取ったクロック信号を、前記半導体メモリへ出力し、前記半導体メモリへアクセスすることを特徴とする。
【００１７】この構成によると、前記アクセス手段は、前記半導体メモリの最大動作周波数以下のメモリ周波数と同一の周波数のクロック信号を、前記半導体メモリへ出力し、前記半導体メモリへアクセスする。前記半導体メモリは、前記アクセス手段から受け取ったクロック信号に合わせて動作するため、クロック信号の周波数を小さくすると、前記半導
４
【手続補正０１９】
【補正対象書類名】明細書
【補正対象項目名】０００５
【補正方法】変更
【補正の内容】
【０００５】
下に抑制することができる。
【００１８】本発明において、前記制御手段は、各半導体メモリが前記最大周波数で動作した場合の、前記アクセス手段及び当該半導体メモリの消費する最大電流値を前記消費電流値として記憶しており、前記最大周波数と前記最大電流値の比率と前記アクセス上限値とを用いて、前記メモリ周波数を算出することを特徴とする。
この構成によると、前記制御手段は、前記最大周波数と前記最大電流値の比率と前記アクセス上限値とを用いて、容易に前記動作周波数を算出することができる。
【００１９】前記記録装置を構成する前記制御手段は、前記最大電流値に加えて前記最大動作周波数を予め記憶していることを特徴とする。
この構成によると、前記制御手段は、前記最大電流値に加えて前記最大動作周波数を予め記憶しているため、迅速に前記動作周波数を算出することができる。
また、前記制御手段は、読み出しを指示する前記リードコマンドに対応する前記消費電流値を記憶しており、読み出しを指示する前記リードコマンドに対応して、前記メモリ周波数で前記半導体メモリを動作させる前記動作条件を設定する。
【００２０】この構成では、前記制御手段は、読み出しを指示する前記コマンドに対応して、前記メモリ周波数で前記半導体メモリが動作するような前記動作条件を設定し、前記半導体メモリは、前記メモリ周波数と同一の動作周波数で読み出しの動作を行う。半導体メモリにデータを書き込む際には、一定量の電子注入が必要であり、周波数と消費電流値に相関関係はないため、動作周波数を変更しても、消費電流値の削減にはつながらない。従って、前記アクセス装置から、読み出しを指示するコマンドを受け取った場合に、前記メモリ周波数で、読み出し動作を行うことで、当該記憶装置の消費電流値を減少させることができる。
【００２１】前記記録装置の前記制御手段は、分周器を備え、分周器を用いて、前記メモリ周波数と同一の周波数のクロック信号を生成し、生成したクロック信号を含む制御信号を出力することを特徴とする。
この構成では、前記制御手段は、分周器を用いて、容易にクロック信号の周波数を変更することができる。
【００２２】また、前記制御手段は、ＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋ  Ｌｏｏｐ）を備えており、前記ＰＬＬを用
５
【手続補正０２０】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
いて、前記メモリ周波数と同一の周波数のクロック信号を生成し、生成したクロック信号を含む制御信号を出力することを特徴とする構成であってもよい。
この構成によると、前記制御手段は、ＰＬＬを用いて、クロック信号の周波数を、連続的に変更することができる。従って、前記アクセス上限値と前記コマンド取得手段が取得したコマンドに応じた最適な周波数のクロック信号を生成し、出力することができる。
【００２３】本発明の記録装置において、前記制御手段は、当該記録装置の備えている半導体メモリの総数以下の並列個数の前記半導体メモリを、並行して動作させる第１の動作条件及び前記半導体メモリの最大動作周波数以下の動作周波数で前記半導体メモリを動作させる第２の動作条件を前記動作条件として設定し、前記コマンド取得手段により取得されるコマンドの種類に基づいて、前記第１及び第２の動作条件のうち少なくとも一方を採用し、採用した前記動作条件に基づく前記制御信号を生成することを特徴とする。
【００２４】この構成によると、前記第１及び第２の動作条件のうち少なくとも一方を採用し、採用した前記動作条件に基づく制御信号を出力する。これにより、前記制御手段は、前記並行動作数、半導体メモリの動作周波数のうち、何れか一方、又は両方を変更することで、前記アクセス上限値以下の電流の範囲内で最適の動作条件を設定することができる。従って、前記アクセス手段は、前記アクセス上限値以下の電流を最大限に活用し、高速に前記半導体メモリにアクセスすることができる。
【００２５】本発明の記録装置を構成する前記半導体メモリは、フラッシュメモリであることを特徴とする。フラッシュメモリは、現在、広く普及しており、既に数多くの生産実績がある。従って、この構成の前記記録装置は、容易に生産可能である。本発明の記録装置を構成する前記半導体メモリは、不揮発性磁気メモリであってもよい。
【００２６】不揮発性磁気メモリは、高速にデータを入出力することができる。また、電荷ではなく、電子スピンによってデータを保持するため、半永久的な記録保持時間を実現できる。従って、この構成によると、前記記録装置は、記録保持性能に優れ、より高速に
６
【手続補正０２１】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
データにアクセスを行うことができる。
本発明において、前記取得手段は、前記上限値をＡＴＡ（ＡＴ  Ａｔｔａｃｈｉｍｅｎｔ）規格に準拠するＳｅｔ  Ｆｅａｔｕｒｅｓコマンドにより取得することを特徴とする。
【００２７】  この構成によると、本発明の記録装置は、ＡＴＡ規格に準拠した各種の電気機器において、使用することができる。
本発明の記録装置を構成する半導体メモリは可搬型であり、当該記録装置に着脱可能であり、前記取得手段と前記読書手段と前記制御手段とは、前記記録媒体に情報の読出及び書き込みを行うメモリカードドライブデバイスを構成することを特徴とする。
【００２８】この構成によると、前記記録装置は、可搬型半導体メモリとメモリカードドライブデバイスからなる。従って、既に市販のメモリカードを前記可半型半導体メモリとして利用することにより、前記メモリカードドライブデバイスは、既存のメモリカードを利用して高速にデータの入出力を行うことが可能になる。
前記制御手段は、クロック信号を含む前記制御信号を出力し、前記アクセス手段は、アクセスする半導体メモリにのみ前記クロック信号を供給し、アクセスをしていない半導体メモリへの前記クロック信号の供給を停止することを特徴とする記録装置である。
【００２９】この構成によると、前記アクセス手段は、アクセスをしていない半導体メモリへの前記クロック信号の供給を停止する。前記可搬型の半導体メモリとして、既存のメモリカードを使用する場合、これらのメモリカードは、一般に、制御部、記憶部を含んで構成される。メモリカードの制御部は、データへのアクセス要求を受けない場合であっても、クロック信号を受け取ると、所定の動作を行い電力を消費する。従って、前記アクセス手段が、アクセスしていないメモリカードへクロック信号の供給を停止することにより、これらのメモリカードの制御部により消費される電力を抑制することができる。
【図面の簡単な説明】
【００３０】［図１］メモリカード３００の使用例を示す。
［図２］ビデオカメラ２００の構成を示すブロック図である。
［図３］ＰＣ１００の構成を示すブロック図である。
［図４］ＰＣ１００とメモリカード３００との間で授受されるＡＴＡコマンドの構成の一例を示
７／１
【手続補正書】
【提出日】平成18年2月10日(2006.2.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
記録装置であって、
１以上の半導体メモリと、
アクセス装置から当該記録装置へ供給される電流の上限値を取得する取得手段と、
前記アクセス装置から、前記半導体メモリへの書き込みを指示するライトコマンド及び前記半導体メモリからの読み出しを指示するリードコマンドを含むコマンドのうちの少なくとも何れかを取得するコマンド取得手段と、
前記アクセス装置から電流の供給を受け、制御信号に従って、前記半導体メモリにアクセスするアクセス手段と、
取得した前記上限値から、前記半導体メモリ及びアクセス手段以外の各部により消費される電流値を差し引いたアクセス上限値を算出し、算出したアクセス上限値を用いて、取得された前記コマンドの種類に応じて、前記アクセス手段及び前記半導体メモリの動作条件を設定し、
取得された前記コマンドと設定された前記動作条件とに基づいて、前記制御信号を生成し、生成した制御信号を出力する制御手段と
を備えることを特徴とする記録装置。  
【請求項２】
前記制御手段は、予め、前記アクセス手段及び各半導体メモリの消費する消費電流値を、前記コマンドの種類ごとに記憶しており、前記アクセス上限値と前記消費電流値とを用いて、前記コマンドの種類と対応する動作条件を設定する
ことを特徴とする請求項１に記載の記録装置。
【請求項３】
前記制御手段は、当該記録装置の備えている半導体メモリの総数以下の並列個数の前記半導体メモリを、並行して動作させる前記動作条件を設定し、
前記コマンドと前記動作条件とに基づいて、前記並列個数の前記半導体メモリへのアクセスを指示する制御信号を、前記アクセス手段へ出力し、
前記アクセス手段は、前記並列個数の前記半導体メモリへアクセスする
ことを特徴とする請求項２に記載の記録装置。
【請求項４】
前記消費電流値は、１個の前記半導体メモリを動作させる際に、前記アクセス手段及び前記半導体メモリの消費する電流値であり、
前記制御手段は、前記アクセス上限値を前記消費電流値で除算して得られた商を前記並列個数として算出する
ことを特徴とする請求項３に記載の記録装置。
【請求項５】
前記アクセス手段は、前記半導体メモリと同数のアクセス部を含んで構成され、各アクセス部は、各半導体メモリと対応しており、
前記制御手段は、前記並列個数と同数のアクセス信号を含んで構成される前記制御信号を生成し、
各アクセス信号は、それぞれ異なるアクセス部と、対応する半導体メモリへのアクセスを指示するものであり、
前記請求項手段は、生成した各アクセス信号を、対応するアクセス部へ出力し、
前記アクセス信号を受け取ったアクセス部は、受け取ったアクセス信号に従って、対応する半導体メモリへアクセスする
ことを特徴とする請求項４に記載の記録装置。
【請求項６】
前記制御手段は、前記半導体メモリの最大動作周波数以下のメモリ周波数で前記半導体メモリを動作させる前記動作条件を設定し、
前記コマンドと前記動作条件に基づいて、前記メモリ周波数と同一の周波数のクロック信号を生成し、生成したクロック信号を含む前記制御信号を、前記アクセス手段へ出力し、
前記アクセス手段は、前記制御手段から受け取ったクロック信号を、前記半導体メモリへ出力し、前記半導体メモリへアクセスする
ことを特徴とする請求項２に記載の記録装置。
【請求項７】
前記制御手段は、各半導体メモリが前記最大周波数で動作した場合の、前記アクセス手段及び当該半導体メモリの消費する最大電流値を前記消費電流値として記憶しており、前記最大周波数と前記最大電流値の比率と前記アクセス上限値とを用いて、前記メモリ周波数を算出する
ことを特徴とする請求項６に記載の記録装置。
【請求項８】
前記制御手段は、前記最大電流値に加えて前記最大動作周波数を予め記憶している
ことを特徴とする請求項７に記載の記録装置。
【請求項９】
前記制御手段は、読み出しを指示する前記リードコマンドに対応する前記消費電流値を記憶しており、読み出しを指示する前記リードコマンドに対応して、前記メモリ周波数で前記半導体メモリを動作させる前記動作条件を設定する
ことを特徴とする請求項６に記載の記録装置。
【請求項１０】
前記制御手段は、分周器を備え、分周器を用いて、前記メモリ周波数と同一の周波数のクロック信号を生成し、生成したクロック信号を含む制御信号を出力する
ことを特徴とする請求項６に記載の記録装置。
【請求項１１】
前記制御手段は、ＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋ  Ｌｏｏｐ）を備えており、前記ＰＬＬを用いて、前記メモリ周波数と同一の周波数のクロック信号を生成し、生成したクロック信号を含む制御信号を出力する
ことを特徴とする請求項６に記載の記録装置。
【請求項１２】
前記制御手段は、当該記録装置の備えている半導体メモリの総数以下の並列個数の前記半導体メモリを、並行して動作させる第1の動作条件及び前記半導体メモリの最大動作周波数以下の動作周波数で前記半導体メモリを動作させる第２の動作条件を前記動作条件として設定し、
前記コマンド取得手段により取得されるコマンドの種類に基づいて、前記第１及び第２の動作条件のうち少なくとも一方を採用し、採用した前記動作条件に基づく前記制御信号を生成する
ことを特徴とする請求項２に記載の記録装置。
【請求項１３】
前記半導体メモリは、フラッシュメモリである
ことを特徴とする請求項２に記載の記録装置。
【請求項１４】
前記半導体メモリは、不揮発性磁気メモリである
ことを特徴とする請求項２に記載の記録装置。
【請求項１５】
前記取得手段は、前記上限値をＡＴＡ（ＡＴ  Ａｔｔａｃｈｉｍｅｎｔ）規格に準拠するＳｅｔ  Ｆｅａｔｕｒｅｓコマンドにより取得する
ことを特徴とする請求項１に記載の記録装置。
【請求項１６】
前記半導体メモリは可搬型であり、当該記録装置に着脱可能であり、
前記取得手段と前記読書手段と前記制御手段とは、前記記録媒体に情報の読出及び書き込みを行うメモリカードドライブデバイスを構成する
ことを特徴とする請求項１に記載の記録装置。
【請求項１７】
前記制御手段は、クロック信号を含む前記制御信号を出力し、
前記アクセス手段は、アクセスする半導体メモリにのみ前記クロック信号を供給し、アクセスをしていない半導体メモリへの前記クロック信号の供給を停止する
ことを特徴とする請求項１５に記載の記録装置。
【請求項１８】
１以上の半導体メモリを備える記録装置において用いられるアクセス方法であって、
アクセス装置から当該記録装置へ供給される電流の上限値を取得する取得ステップと、
前記アクセス装置から、前記半導体メモリへの書き込みを指示するライトコマンド及び前記半導体メモリからの読み出しを指示するリードコマンドを含むコマンドのうちの少なくとも何れかを取得するコマンド取得ステップと、
前記アクセス装置から電流の供給を受け、制御信号に従って、前記半導体メモリにアクセスするアクセスステップと、
取得した前記上限値から、前記半導体メモリ及びアクセス手段以外の各部により消費される電流値を差し引いたアクセス上限値を算出し、算出したアクセス上限値を用いて、取得された前記コマンドの種類に応じて、前記アクセス手段及び前記半導体メモリの動作条件を設定し、
取得された前記コマンドと設定された前記動作条件とに基づいて、前記制御信号を生成し、生成した制御信号を出力する制御ステップと
を備えることを特徴とするアクセス方法。
【請求項１９】
１以上の半導体メモリを備える記録装置において用いられるアクセスプログラムであって、
アクセス装置から当該記録装置へ供給される電流の上限値を取得する取得ステップと、
前記アクセス装置から、前記半導体メモリへの書き込みを指示するライトコマンド及び前記半導体メモリからの読み出しを指示するリードコマンドを含むコマンドのうちの少なくとも何れかを取得するコマンド取得ステップと、
前記アクセス装置から電流の供給を受け、制御信号に従って、前記半導体メモリにアクセスするアクセスステップと、
取得した前記上限値から、前記半導体メモリ及びアクセス手段以外の各部により消費される電流値を差し引いたアクセス上限値を算出し、算出したアクセス上限値を用いて、取得された前記コマンドの種類に応じて、前記アクセス手段及び前記半導体メモリの動作条件を設定し、
取得された前記コマンドと設定された前記動作条件とに基づいて、前記制御信号を生成し、生成した制御信号を出力する制御ステップと
を備えることを特徴とするアクセスプログラム。
【請求項２０】
前記アクセスプログラムは、
コンピュータ読み取り可能な記録媒体に記録されている
ことを特徴とする請求項１９に記載のアクセスプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アクセス装置の指示により、半導体メモリへアクセスする技術に関し、特に、アクセス装置の供給可能な電流量を加味してアクセスする技術に関する。
【背景技術】
【０００２】
ＳＤカードを初めとして、フラッシュメモリを搭載したメモリカードは、小型、軽量、薄型であり、その取り扱いも容易であるため、デジタルスチルカメラなどのデジタル機器に広く利用されている。一般に市販されているメモリカードの記憶容量は、１６ＭＢ〜５１２ＭＢであり、記録レートは最大で１０ＭＢ／ｓ程度である。
しかし、ＤＶフォーマットの動画像及び音声のデータのように、大きな記録容量を必要とするデータを記録する場合には、記憶容量も記録レートも不充分である。例えば、４ＭＢ／ｓの再生レートのデータであれば、２分相当のデータしか記録できないし、書き込みには約１分を要することになる。
【０００３】
これらの問題を解決するために、特許文献１及び２では、複数のメモリカードを装着可能なメモリカードドライブについて開示されている。これらの技術によると、メモリカードドライブに複数のメモリカードを用いることで、大きな記録容量を確保している。また、ＲＡＩＤ方式の１つとして知られているストライピング方式を利用して複数のメモリカードに並行して書き込みを行うことで、記録レートの向上を計っている。
【０００４】
このようなメモリカードドライブをパーソナルコンピュータ（以下ＰＣ）をはじめとする電気機器に接続して使用する場合、電気機器からメモリカードドライブへ供給可能な電流値は、機器によって異なる。ＰＣを例にすると、メモリカードドライブへ供給可能な電流値は、ＰＣカード規格で１Ａとされているが、放熱性の問題などにより、実際には、ＰＣの種類によってばらつきがある。
【０００５】
メモリカードドライブを用いて複数のメモリカードを並行して動作させる場合、メモリカードドライブの消費電流は、動作させるメモリカードの枚数に比例して増加する。例えば、消費電流を２００ｍＡのメモリカードを４個動作させる場合、消費電流は８００ｍＡ必要となる。従って、このメモリカードドライブを使用可能なＰＣは、メモリカードドライブへ８００ｍＡ以上の電流を供給できるものに限定されることになる。
【０００６】
【特許文献１】特開2002-189992号公報
【特許文献２】特開2000-207137号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、供給できる電流量によって、接続可能な電気機器が限定されることは利用者にとって不便であり、接続される電気機器の供給可能な電流量に関わらず、使用可能なメモリカードドライブの要求があった。
そこで本発明は、かかる問題点に鑑みてなされたものであり、接続される電気機器の供給可能な電流量に応じて、動作条件を変更し、消費電流を前記電気機器の供給可能な電流量以下に抑制することができる記録装置、メモリカードドライブデバイスを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために本発明は、１以上の半導体メモリと、アクセス装置から当該記録装置へ供給される電流の上限値を取得する取得手段と、前記アクセス装置から、前記半導体メモリへの書き込みを指示するライトコマンド及び前記半導体メモリからの読み出しを指示するリードコマンドを含むコマンドのうちの少なくとも何れかを取得するコマンド取得手段と、前記アクセス装置から電流の供給を受け、制御信号に従って、前記半導体メモリにアクセスするアクセス手段と、取得した前記上限値から、前記半導体メモリ及びアクセス手段以外の各部により消費される電流値を差し引いたアクセス上限値を算出し、算出したアクセス上限値を用いて、取得された前記コマンドの種類に応じて、前記アクセス手段及び前記半導体メモリの動作条件を設定し、取得された前記コマンドと設定された前記動作条件とに基づいて、前記制御信号を生成し、生成した制御信号を出力する制御手段とを備えることを特徴とする記録装置である。
【０００９】
ここで、後述する実施の形態において、制御手段とは、並列制御部、制御情報記憶部及びクロック制御部に相当する。また、制御信号とは、書き込み指示、読み出し指示及びクロック信号に相当する。
【発明の効果】
【００１０】
この構成によって、本発明の記録装置は、前記アクセス装置から取得する上限値から算出したアクセス上限値に基づいて動作条件を設定する。従って、適切な動作条件を設定することによって、前記アクセス装置から供給可能な電流の範囲内で、半導体メモリにアクセスを行うことができる。
前記記録装置において、前記制御手段は、予め、前記アクセス手段及び各半導体メモリの消費する消費電流値を前記コマンドの種類ごとに記憶しており、前記アクセス上限値と前記消費電流値とを用いて、前記コマンドの種類と対応する動作条件を設定することを特徴とする。
【００１１】
この構成によると、前記制御手段は、コマンドと対応する動作条件を設定する。つまり、前記制御手段は、前記アクセス装置から出力されるコマンドによって、半導体メモリ及びアクセス手段の消費する電力が異なる場合、コマンド毎に最適な動作条件を設定することができる。従って、前記アクセス手段は、コマンド毎に最適の動作条件で、前記半導体メモリへアクセスすることができる。
【００１２】
前記記録装置において、前記制御手段は、当該記録装置の備えている半導体メモリの総数以下の並列個数の前記半導体メモリを、並行して動作させる前記動作条件を設定し、前記コマンドと前記動作条件とに基づいて、前記並列個数の前記半導体メモリへのアクセスを指示する制御信号を、前記アクセス手段へ出力し、前記アクセス手段は、前記並列個数の前記半導体メモリへアクセスすることを特徴とする。
【００１３】
この構成によると、前記制御手段は、当該記録装置の備えている半導体メモリの総数以下の並列個数の前記半導体メモリが、並行して動作するような前記動作条件を設定する。つまり、並行して動作する前記半導体メモリの個数を制限する。前記記録装置の消費する電流値は、並行して動作する半導体メモリの個数に対応している。従って、並行して動作する半導体メモリの個数を制限することにより、前記記録装置の消費する電流値を、確実に制限することができる。
【００１４】
前記消費電流値は、１個の前記半導体メモリを動作させる際に、前記アクセス手段及び前記半導体メモリの消費する電流値であり、前記記録装置を構成する前記制御手段は、前記アクセス上限値を前記消費電流値で除算して得られた商を前記並列個数として算出することを特徴とする。
この構成によると、前記制御手段は、前記アクセス上限値を前記消費電流値で除算することで、簡単に前記並列個数を算出することができる。
【００１５】
前記記録装置において、前記アクセス手段は、前記半導体メモリと同数のアクセス部を含んで構成され、各アクセス部は、各半導体メモリと対応しており、前記制御手段は、前記並列個数と同数のアクセス信号を含んで構成される前記制御信号を生成し、各アクセス信号は、それぞれ異なるアクセス部に、対応する半導体メモリへのアクセスを指示するものであり、前記請求項手段は、生成した各アクセス信号を、対応するアクセス部へ出力し、前記アクセス信号を受け取ったアクセス部は、受け取ったアクセス信号に従って、対応する半導体メモリへアクセスすることを特徴とする。
【００１６】
この構成によると、前記制御手段は、各アクセス信号を、それぞれ異なるアクセス部へ出力し、アクセス信号を受け取ったアクセス部は、対応する半導体メモリへアクセスするため、各アクセス手段へ順番にアクセス指示を出力することにより、当該記録装置の備える半導体メモリに順番にデータを書き込み、各半導体メモリ記憶しているデータの量をある程度均一にすることができる。このようにすることで、並行動作できる半導体メモリの個数が減少することを防ぐことができる。従って、当該記録装置のアクセス速度の低下を防ぐことができる。
【００１７】
また、本発明の記録装置において、前記制御手段は、前記半導体メモリの最大動作周波数以下のメモリ周波数で前記半導体メモリを動作させる前記動作条件を設定し、前記動作条件を設定し、前記コマンドと前記動作条件に基づいて、前記メモリ周波数と同一の周波数のクロック信号を生成し、生成したクロック信号を含む前記制御信号を、前記アクセス手段へ出力し、前記アクセス手段は、前記制御手段から受け取ったクロック信号を、前記半導体メモリへ出力し、前記半導体メモリへアクセスすることを特徴とする。
【００１８】
この構成によると、前記アクセス手段は、前記半導体メモリの最大動作周波数以下のメモリ周波数と同一の周波数のクロック信号を、前記半導体メモリへ出力し、前記半導体メモリへアクセスする。前記半導体メモリは、前記アクセス手段から受け取ったクロック信号に合わせて動作するため、クロック信号の周波数を小さくすると、前記半導体メモリの動作周波数も小さくすることができる。前記半導体メモリの動作周波数と、前記半導体メモリ及び前記アクセス手段の消費電流値は比例する。従って、前記アクセス上限値に基づいて前記メモリ周波数を設定し、前記半導体メモリの動作周波数を前記メモリ周波数に変更することで、前記記録装置の消費電流を前記上限値以下に抑制することができる。
【００１９】
本発明において、前記制御手段は、各半導体メモリが前記最大周波数で動作した場合の、前記アクセス手段及び当該半導体メモリの消費する最大電流値を前記消費電流値として記憶しており、前記最大周波数と前記最大電流値の比率と前記アクセス上限値とを用いて、前記メモリ周波数を算出することを特徴とする。
この構成によると、前記制御手段は、前記最大周波数と前記最大電流値の比率と前記アクセス上限値とを用いて、容易に前記動作周波数を算出することができる。
【００２０】
前記記録装置を構成する前記制御手段は、前記最大電流値に加えて前記最大動作周波数を予め記憶していることを特徴とする。
この構成によると、前記制御手段は、前記最大電流値に加えて前記最大動作周波数を予め記憶しているため、迅速に前記動作周波数を算出することができる。
また、前記制御手段は、読み出しを指示する前記リードコマンドに対応する前記消費電流値を記憶しており、読み出しを指示する前記リードコマンドに対応して、前記メモリ周波数で前記半導体メモリを動作させる前記動作条件を設定する。
【００２１】
この構成では、前記制御手段は、読み出しを指示する前記コマンドに対応して、前記メモリ周波数で前記半導体メモリが動作するような前記動作条件を設定し、前記半導体メモリは、前記メモリ周波数と同一の動作周波数で読み出しの動作を行う。半導体メモリにデータを書き込む際には、一定量の電子注入が必要であり、周波数と消費電流値に相関関係はないため、動作周波数を変更しても、消費電流値の削減にはつながらない。従って、前記アクセス装置から、読み出しを指示するコマンドを受け取った場合に、前記メモリ周波数で、読み出し動作を行うことで、当該記憶装置の消費電流値を減少させることができる。
【００２２】
前記記録装置の前記制御手段は、分周器を備え、分周器を用いて、前記メモリ周波数と同一の周波数のクロック信号を生成し、生成したクロック信号を含む制御信号を出力することを特徴とする。
この構成では、前記制御手段は、分周器を用いて、容易にクロック信号の周波数を変更することができる。
【００２３】
また、前記制御手段は、ＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋ  Ｌｏｏｐ）を備えており、前記ＰＬＬを用いて、前記メモリ周波数と同一の周波数のクロック信号を生成し、生成したクロック信号を含む制御信号を出力することを特徴とする構成であってもよい。
この構成によると、前記制御手段は、ＰＬＬを用いて、クロック信号の周波数を、連続的に変更することができる。従って、前記アクセス上限値と前記コマンド取得手段が取得したコマンドに応じた最適な周波数のクロック信号を生成し、出力することができる。
【００２４】
本発明の記録装置において、前記制御手段は、当該記録装置の備えている半導体メモリの総数以下の並列個数の前記半導体メモリを、並行して動作させる第１の動作条件及び前記半導体メモリの最大動作周波数以下の動作周波数で前記半導体メモリを動作させる第２の動作条件を前記動作条件として設定し、前記コマンド取得手段により取得されるコマンドの種類に基づいて、前記第１及び第２の動作条件のうち少なくとも一方を採用し、採用した前記動作条件に基づく前記制御信号を生成することを特徴とする。
【００２５】
この構成によると、前記第１及び第２の動作条件のうち少なくとも一方を採用し、採用した前記動作条件に基づく制御信号を出力する。これにより、前記制御手段は、前記並行動作数、半導体メモリの動作周波数のうち、何れか一方、又は両方を変更することで、前記アクセス上限値以下の電流の範囲内で最適の動作条件を設定することができる。従って、前記アクセス手段は、前記アクセス上限値以下の電流を最大限に活用し、高速に前記半導体メモリにアクセスすることができる。
【００２６】
本発明の記録装置を構成する前記半導体メモリは、フラッシュメモリであることを特徴とする。
フラッシュメモリは、現在、広く普及しており、既に数多くの生産実績がある。従って、この構成の前記記録装置は、容易に生産可能である。
本発明の記録装置を構成する前記半導体メモリは、不揮発性磁気メモリであってもよい。
【００２７】
不揮発性磁気メモリは、高速にデータを入出力することができる。また、電荷ではなく、電子スピンによってデータを保持するため、半永久的な記録保持時間を実現できる。従って、この構成によると、前記記録装置は、記録保持性能に優れ、より高速にデータにアクセスを行うことができる。
本発明において、前記取得手段は、前記上限値をＡＴＡ（ＡＴ  Ａｔｔａｃｈｉｍｅｎｔ）規格に準拠するＳｅｔ  Ｆｅａｔｕｒｅｓコマンドにより取得することを特徴とする。
【００２８】
この構成によると、本発明の記録装置は、ＡＴＡ規格に準拠した各種の電気機器において、使用することができる。
本発明の記録装置を構成する半導体メモリは可搬型であり、当該記録装置に着脱可能であり、前記取得手段と前記読書手段と前記制御手段とは、前記記録媒体に情報の読出及び書き込みを行うメモリカードドライブデバイスを構成することを特徴とする。
【００２９】
この構成によると、前記記録装置は、可搬型半導体メモリとメモリカードドライブデバイスからなる。従って、既に市販のメモリカードを前記可半型半導体メモリとして利用することにより、前記メモリカードドライブデバイスは、既存のメモリカードを利用して高速にデータの入出力を行うことが可能になる。
前記制御手段は、クロック信号を含む前記制御信号を出力し、前記アクセス手段は、アクセスする半導体メモリにのみ前記クロック信号を供給し、アクセスをしていない半導体メモリへの前記クロック信号の供給を停止することを特徴とする記録装置である。
【００３０】
この構成によると、前記アクセス手段は、アクセスをしていない半導体メモリへの前記クロック信号の供給を停止する。前記可搬型の半導体メモリとして、既存のメモリカードを使用する場合、これらのメモリカードは、一般に、制御部、記憶部を含んで構成される。メモリカードの制御部は、データへのアクセス要求を受けない場合であっても、クロック信号を受け取ると、所定の動作を行い電力を消費する。従って、前記アクセス手段が、アクセスしていないメモリカードへクロック信号の供給を停止することにより、これらのメモリカードの制御部により消費される電力を抑制することができる。
【発明を実施するための最良の形態】
【００３１】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
１．実施の形態１
実施の形態１のメモリカード３００は、図１に示すようにＰＣ１００及びビデオカメラ２００に装着されて使用される。
ビデオカメラ２００は、音声及び画像データを生成し、生成した音声及び画像データをメモリカード３００に記録する。
【００３２】
ＰＣ１００は、ディスプレイ１４０及びキーボード１５０と接続されている。利用者の操作により、メモリカード３００に記憶されているデータを再生又は編集する。
メモリカード３００は、４個のフラッシュメモリを搭載している。外部機器、具体的には、ＰＣ１００又はビデオカメラ２００が、メモリカード３００へ供給することができる最大の電流値（以下、許容電流値）を取得し、取得した許容電流値を基に、並行して動作可能なフラッシュメモリの個数を算出する。ＰＣからのコマンドに対して、算出した個数のフラッシュメモリを並行して動作させる。
１．１  ビデオカメラ２００
ビデオカメラ２００は、図２に示すように、入出力部２０１、電源部２０２、画像変換部２０３、撮像部２０４、制御部２０７、入力部２１２及び再生部２１３から構成される。
【００３３】
ビデオカメラ２００は、具体的には、マイクロプロセッサ、ＲＡＭ、ＲＯＭを含んで構成され、前記ＲＡＭ及びＲＯＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、ビデオカメラ２００は、その機能を達成する。
（１）電源部２０２
電源部２０２は、ビデオカメラ２００を構成する各回路へ、電池又は外部電源からの電力を供給する。また、入出力部２０１を介してメモリカード３００へも電力を供給する。
（２）許容電流値記憶部２１０
許容電流値記憶部２１０は、ＲＯＭから構成され、許容電流値を記憶している。許容電流値は、ビデオカメラ２００がメモリカード３００へ供給することのできる電流の上限を示す値である。
（３）入出力部２０１
入出力部２０１は、メモリカード３００と接続され、制御部２０７とメモリカード３００との間で各種の情報の入出力を行う。
【００３４】
また、電源部２０２から出力される電力を、メモリカード３００へ供給する。
（４）撮像部２０４及び画像変換部２０３
撮像部２０４は、光学レンズ、カラーフィルタ、ＣＣＤ（Charge CoupledDevice）などから構成され、入射光を電荷に変換して画像データを生成する。
画像変換部２０３は、撮像部２０４により生成された画像データに直行変換の１つであるＤＣＴ処理、量子化処理、動き補償処理及び可変長符号化処理などを施して圧縮する。
（５）制御部２０７
制御部２０７は、ビデオカメラ２００を構成する各部の動作を制御する。
【００３５】
また、入出力部２０１を介して、メモリカード３００がビデオカメラ２００に装着されたことを検出する。メモリカード３００を検出すると、ドライブの割当、メモリ空間の割当などを含むコンフィグ処理を行う。
コンフィグ処理が終了すると、許容電流値記憶部２１０の記憶している許容電流値を用いて、パワーマネジメントに関する情報の授受を行う。このような、メモリカード３００とメモリカード３００を装着された装置との間の初期設定の処理については、後に詳細に説明する。
（６）入力部２１２
入力部２１２は、各種のボタンなどを備え、利用者による操作を検出し、検出した操作を示す捜査指示情報を制御部２０７へ出力する。
（７）再生部２１３
再生部２１３は、デコーダー、液晶ディスプレイを含んで構成され、圧縮された画像データを伸長し、画面を生成し、生成した画面を液晶ディスプレイに表示する。
１．２  ＰＣ１００
ＰＣ１００は、図３に示すように、外部ＩＦ部１０１、許容電流値記憶部１１０、情報記憶部１１１、入力制御部１１２及び表示制御部１１３から構成される。
【００３６】
ＰＣ１００は、具体的には、マイクロプロセッサ、ＲＡＭ、ＲＯＭを含むコンピュータシステムであって、ＲＡＭ、ＲＯＭ及び情報記憶部１１１にはコンピュータプログラムが記憶されている。前記マイクロプロセッサが前記コンピュータプログラムに従って動作することにより、ＰＣ１００は、その機能を達成する。
（１）電力供給部１０５
電力供給部１０５は、ＰＣ１００を構成する各回路へ、電力を供給する。また、外部ＩＦ部１０１を介してメモリカード３００へも電力を供給する。
（２）許容電流値記憶部１１０及び情報記憶部１１１
許容電流値記憶部１１０は、ＲＯＭから構成され、許容電流値Ｉｏｋを記憶している。許容電流値Ｉｏｋは、ＰＣ１００がメモリカード３００へ供給することのできる電流の上限を示す値である。
【００３７】
情報記憶部１１１は、ハードディスクユニットから構成され、各種のデータ、コンピュータプログラムなどを記憶している。
（３）外部ＩＦ部１０１
外部ＩＦ部１０１は、メモリカード３００と接続され、制御部１０７とメモリカード３００との間で各種の情報の入出力を行う。
【００３８】
また、電力供給部１０５から出力される電力を、メモリカード３００へ供給する。
（４）制御部１０７
制御部１０７は、ＰＣ１００を構成する各部の動作を制御する。
制御部１０７は、外部ＩＦ部１０１を介してメモリカード３００を検出する。
また、入力制御部１１２から、利用者のキー操作に対応した操作指示情報を受け取る。
【００３９】
（４−１）初期設定
メモリカード３００を検出すると、制御部１０７は、ドライブの割り当て、メモリ空間の割り当てなどを含むコンフィグ処理を行う。
コンフィグ処理が終了すると、メモリカード３００へメモリカード３００の消費する電流の最大値である最大消費電流値Ｉｍａｘを要求する。外部ＩＦ部１０１を介して、メモリカード３００から最大消費電流値Ｉｍａｘを受け取る。最大消費電流値Ｉｍａｘを受け取ると、許容電流値記憶部１１０から、許容電流値Ｉｏｋを読み出し、読み出した許容電流値Ｉｏｋを外部ＩＦ部１０１を介して、メモリカード３００へ出力する。次に、メモリカード３００から、Ａｃｋ（Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）信号を受け取り、初期設定を終了する。
【００４０】
（４−２）書き込み処理
制御部１０７は、入力制御部１１２から、メモリカード３００への書き込みを示す操作指示情報を受け取ると、メモリカード３００へデータの書き込みを指示するライトコマンドを生成する。ライトコマンドは、書き込みを開始するセクタの論理アドレスであるセクタ番号（以下先頭セクタ番号）と出力するデータを記録するために必要なセクタ数とを含んでいる。セクタとは、メモリカード３００上の読み出し及び書き込みの単位となる５１２バイトの記憶領域である。
【００４１】
次に、生成したライトコマンドを外部ＩＦ部１０１を介してメモリカード３００へ出力する。
次に、メモリカード３００から、データの書き込みが可能であることを示すレスポンスを受け取る。レスポンスを受け取ると、メモリカード３００へ書きこむデータのうち、先頭から順に、１セクタの容量に相当する５１２バイト分を出力する。以下の説明において、５１２バイトのデータをデータブロックと呼ぶ。メモリカード３００から、１データブロックの書き込み可能であることを示すレスポンスを受け取り、次の、データブロックを出力する。同様にして、全てのデータブロックの出力を終えるまで、レスポンスの受け取りとデータブロックの出力とを繰り返す。
【００４２】
（４−３）読み出し処理
制御部１０７は、入力制御部１１２から、読み出しを示す操作指示情報を受け取ると、メモリカード３００へデータの読み出しを指示するリードコマンドを出力する。リードコマンドには、読み出しを開始するセクタの論理アドレスであるセクタ番号（以下先頭セクタ番号）と読み出しをするセクタ数を含んでいる。
【００４３】
次に、メモリカード３００から、データブロックの出力が可能であることを示すレスポンスを受け取る。続いて、メモリカード３００から、１セクタ分の容量に相当する５１２バイトのデータブロックを受け取る。同様にして、リードコマンドに含んで出力したセクタ数に相当する数のデータブロックを受け取るまで、レスポンスの受け取りとデータブロックの受け取りとを繰り返す。
【００４４】
なお、ＰＣ１００とメモリカード３００との間において、最大消費電流値、許容電流値といった制御情報及び各種コマンドは、ＡＴＡ（ＡＴ  Ａｔｔａｃｈｉｍｅｎｔ）コマンドにより授受される。
図４は、ＰＣ１００が、最大消費電流値Ｉｏｋをメモリカード３００へ出力する場合、ＰＣ１００が出力するＡＴＡコマンドのフレーム構成を示している。図４は、フレームを構成する各フィールドの名称を縦に配置し、横にビット数を示す番号０〜７を記載している。Ｆｅａｔｕｒｅｓ３４１は、Ｓｕｂｃｏｍｍａｎｄなどのコマンドの拡張内容が含まれるフィールドである。ＳｅｃｔｏｒＣｏｕｎｔ３４２は、許容電流値、セクタ数などを格納するフィールドである。ここでは、ＰＣ１００の許容電流値をＡｄｖａｎｃｅｄ  ｐｏｗｅｒ  ｍａｎａｇｅｍｅｎｔ  ｌｅｖｅｌを用いて示している。ＳｅｃｔｏｒＮｕｍｂｅｒ３４３は、リードコマンド及びライトコマンドを出力する際に、セクタ数を格納するフィールドであるが、最大消費電流値Ｉｏｋの出力の場合には、使用されない。図中の「ｎａ」は、そのフィールドが使用されないことを示している。
【００４５】
Ｃｙｌｉｎｄｅｒ  Ｌｏｗ３４４、ｃｙｌｉｎｄｅｒ  Ｈｉｇｈ３４５、Ｄｅｖｉｃｅ／Ｈｅａｄ３４６は、ライトコマンド及びリードコマンドの際に読み出し及び書き込み先となるセクタを示す情報が格納されるフィールドであるが、ここでは使用されない。
Ｃｏｍｍａｎｄ３４７は、各種のコマンドを格納するフィールドである。ここでは、許容電流値Ｉｏｋの通知を示す「ＦＥｈ」が格納されている。
【００４６】
ＡＴＡコマンドの構成については、公知であるので、ここでは詳細な説明を省略する。
（５）入力制御部１１２及び表示制御部１１３
入力制御部１１２は、キーボード１５０と接続されており、利用者による、キー操作を検出し、検出したキー操作を示す操作指示情報を制御部１０７へ出力する。
表示制御部１１３は、制御部１０７の指示によりディスプレイ１４０に表示する画面を生成する。生成した画面を垂直同期信号及び水平同期信号に合わせてディスプレイ１４０へ出力する。
１．３  メモリカード３００
メモリカード３００は、図５に示すように、外部ＩＦ部３０１、制御部３０２、フラッシュメモリ３１０、３１１、３１２及び３１３から構成される。制御部３０２は、コマンド解析部３０３、並列制御部３０４、クロック制御部３０５、メモリ制御部３３０、３３１、３３２、３３３、制御情報記憶部３０８及びバッファメモリ３０９を含んで構成される。
【００４７】
制御部３０２は、具体的にはマイクロプロセッサ、ＲＡＭ、ＲＯＭから構成され、ＲＡＭ及びＲＯＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが前記コンピュータプログラムに従って動作することにより、制御部３０２は、その機能を達成する。
（１）フラッシュメモリ３１０、３１１、３１２及び３１３
フラッシュメモリ３１０、３１１、３１２及び３１３は、５１２バイトの容量のセクタを複数備えており、各セクタには、メモリアドレスが割り当てられている。図５に示す様に、各フラッシュメモリは、それぞれ、バッファメモリ３０９と接続されている。また、メモリ制御部３３０、３３１、３３２及び３３３とそれぞれ接続されている。
【００４８】
フラッシュメモリ３１０、３１１、３１２及び３１３は、メモリ制御部３３０、３３１、３３２及び３３３を介して、クロック制御部３０５から、クロック信号を受け取る。メモリ制御部３３０、３３１、３３２及び３３３の制御により、セクタごとに、各種データの記憶及び記憶しているデータの出力を行う。
（２）外部ＩＦ部３０１
外部ＩＦ部３０１は、外部機器と制御部３０２との間で各種の情報の送受信を行う。また、外部機器から供給される電力を受け取り、受け取った電力をメモリカード３００を構成する各回路へ出力する。ここで、外部機器とは、ＰＣ１００又はビデオカメラ２００である。
【００４９】
なお、外部ＩＦ部３０１と外部機器との間のデータの入出力速度は、バッファメモリ３０９とフラッシュメモリとの間のデータの入出力速度に比べて十分高速である。
（３）制御情報記憶部３０８及びバッファメモリ３０９
制御情報記憶部３０８は、ＲＯＭから構成され、書込消費電流値Ｉｗ、読出消費電流値Ｉｒ、メモリ数Ｎ及び制御電流値ａを記憶している。
【００５０】
書込消費電流値Ｉｗは、メモリカード３００を構成する１個のフラッシュメモリへ、データを書き込む際に一組のメモリ制御部とフラッシュメモリが消費する電流の値である。読出消費電流値Ｉｒは、１個のフラッシュメモリからデータを出力する際に、一組のメモリ制御部とフラッシュメモリが消費する電流の値である。ここで、メモリ制御部３３０〜３３３及びフラッシュメモリ３１０〜３１３の消費する電流の合計値は、動作するフラッシュメモリの個数に比例する。
【００５１】
メモリ数Ｎは、メモリカード３００に搭載されているフラッシュメモリの個数であり、本実施の形態ではＮ＝４である。制御電流値ａは、フラッシュメモリ及びメモリ制御部以外の各回路で消費される電流の合計値である。
バッファメモリ３０９は、ＲＡＭから構成され、５１２バイトのデータを記憶する領域を４個備えており、４個の記憶領域は、それぞれ、フラッシュメモリ３１０〜３１３と対応している。フラッシュメモリ３１０と外部機器との間で入出力される各種データを一時的に記憶する。
【００５２】
具体的には、外部ＩＦ部３０１を介して、外部機器から、５１２バイトのデータブロックを受け取り、受け取ったデータブロックを記憶する。１データブロック受け取る度に、並列制御部３０４へ、正常に受け取ったことを示すＯＫ信号を出力する。メモリ制御部３３０〜３３３の制御により、記憶しているデータブロックを、フラッシュメモリ３１０、３１１、３１２又は３１３へ出力する。
【００５３】
また、フラッシュメモリ３１０、３１１、３１２及び３１３から、データブロックを受け取り、受け取ったデータブロックを一時的に記憶する。次に、並列制御部３０４の指示により、記憶しているデータブロックを、外部ＩＦ部３０１を介して、外部機器へ出力し、１データブロックの出力が終了すると、正常に出力が終了したことを示すＯＫ信号を並列制御部３０４へ出力する。
（４）クロック制御部３０５
クロック制御部３０５は、一定の時間間隔でクロック信号を生成し、生成したクロック信号をメモリカード３００を構成する各部へ出力する。
（５）コマンド解析部３０３
コマンド解析部３０３は、外部ＩＦ部３０１と接続された外部機器から各種コマンドを受け取り、受け取ったコマンドを解析し、解析結果を並列制御部３０４へ出力する。
（６）メモリ制御部３３０、３３１、３３２及び３３３
メモリ制御部３３０は、クロック制御部３０５からクロック信号を受け取り、受け取ったクロック信号をフラッシュメモリ３１０へ出力する。
【００５４】
メモリ制御部３３０は、並列制御部３０４から、データの書き込みを示すライト指示と、書き込みを行うフラッシュメモリ３１０上において、データブロックを書き込むセクタを示すメモリアドレスとを受け取る。また、並列制御部３０４からデータの読み出しを示すリード指示と、読み出しを行うフラッシュメモリ３１０上の書き込みを行うセクタを示すメモリアドレスとを受け取る。
【００５５】
ライト指示とメモリアドレスとを受け取ると、メモリ制御部３３０は、フラッシュメモリ３１０内の、受け取ったメモリアドレスと対応するセクタに、バッファメモリ３０９に記憶されている１データブロックを書き込む。
フラッシュメモリ３１０への書き込みが終了すると、並列制御部３０４へ、１データブロックの書き込みが終了したことを示す終了信号を出力する。
【００５６】
並列制御部３０４からリード指示とメモリアドレスとを受け取ると、メモリ制御部３３０は、フラッシュメモリ３１０上において、受け取ったメモリアドレスと対応するセクタに記憶されているデータブロックを、バッファメモリ３０９へ出力する。１データブロックの出力が終了すると、並列制御部３０４へ、１データブロックの読み出しが終了したことを示す終了信号を出力する。
【００５７】
メモリ制御部３３１、３３２及び３３３は、それぞれ、フラッシュメモリ３１１、３１２及び３１３について、メモリ制御部３３０と同様の制御を行う。
（７）並列制御部３０４
並列制御部３０４は、図６に示すように、コマンド実行部３２１、並列演算部３２２、メモリ番号演算部３２３から構成される。
【００５８】
（７−１）並列演算部３２２
並列演算部３２２は、コマンド実行部３２１から、メモリカード３００の消費する電流の最大値である最大消費電流値Ｉｍａｘの算出を指示される。また、コマンド実行部３２１から許容電流値Ｉｏｋを受け取り、並行書込数Ｎｗと並行読出数Ｎｒの算出を指示される。並行書込数Ｎｗは、許容電流値の範囲内で、並行して書き込みの動作を行うことができるフラッシュメモリの個数であり、並行読出数Ｎｒは、許容電流値の範囲内で並行して読み出しの動作を行うことができるフラッシュメモリの数である。
【００５９】
最大消費電流値Ｉｍａｘの算出を指示されると、制御情報記憶部３０８から書込消費電流値Ｉｗ、読出消費電流値Ｉｒ、メモリ数Ｎ及び制御電流値ａを読み出す。読み出した書込消費電流値Ｉｗ、読出消費電流値Ｉｒ、メモリ数Ｎ及び制御電流値ａを基に、
Ｉｍａｘ＝Ｍａｘ（Ｎ×Ｉｗ，Ｎ×Ｉｒ）＋ａ  −（式１）
を算出する。ここで、Ｍａｘ（Ａ，Ｂ）は、Ａ及びＢのうち値の大きい一方を示す。算出した最大消費電流値Ｉｍａｘをコマンド実行部３２１へ出力する。
【００６０】
並行書込数Ｎｗと並行読出数Ｎｒの算出を指示されると、受け取った許容電流値Ｉｏｋと算出した最大電流値Ｉｍａｘとを比較し、Ｉｏｋ＜Ｉｍａｘであれば、
Ｎｗ＝ＩＮＴ｛（Ｉｏｋ−ａ）／Ｉｗ｝  −（式２）
Ｎｒ＝ＩＮＴ｛（Ｉｏｋ−ａ）／Ｉｒ｝  −（式３）
を算出する。ここで、ＩＮＴ（Ａ）は、Ａ以下で最大の整数を示す。このとき、Ｎｗ＞Ｎであれば、Ｎｗ＝Ｎとし、Ｎｒ＞ＮであればＮｒ＝Ｎとする。
【００６１】
Ｉｏｋ≧Ｉｍａｘであれば、Ｎｗ＝Ｎｒ＝Ｎとする。
次に、算出した並行書込数Ｎｗと並行読出数Ｎｒとを記憶し、コマンド実行部３２１へ正常に演算が終了したことを示す演算終了信号を出力する。
（７−２）メモリ番号演算部３２３
メモリ番号演算部３２３は、予めメモリカード３００が備えているフラッシュメモリの数Ｎ＝４を記憶している。また、フラッシュメモリ３１０〜３１３上のセクタの実アドレスであるメモリアドレスと外部機器によって、出力されるセクタ番号との対応を管理している。
【００６２】
メモリ番号演算部３２３は、コマンド実行部３２１から先頭セクタ番号とセクタ数とを受け取り、書き込み先メモリ番号又は読み出し先メモリ番号の算出を指示される。
書き込み先メモリ番号又は読み出し先メモリ番号の算出を指示されると、メモリ番号演算部３２３は、図６に示すメモリテーブル３２４を生成し、生成したメモリテーブル３２４を一時的に記憶する。
【００６３】
メモリテーブル３２４は、１以上のメモリ情報３２６、３２７・・・から構成される。各メモリ情報は、セクタ番号、メモリ番号及びメモリアドレスから構成される。セクタ番号は、外部機器により指定される、書き込み又は読み出しを行うセクタの論理アドレスである。メモリ番号は、書き込み又は読み出しを行うフラッシュメモリと対応しており、メモリ番号「０」、「１」、「２」、「３」は、それぞれフラッシュメモリ３１０、３１１、３１２、３１３を示している。メモリアドレスは、各フラッシュメモリ上のセクタの物理アドレスである。
【００６４】
具体的には、以下のような演算によりメモリテーブル３２４を生成する。
書込み先メモリ番号の算出を指示されると、受け取った先頭セクタ番号とセクタ数とを基にして、以下の（式４）及び（式５）によりセクタ番号とメモリ番号とを算出する。
セクタ番号＝先頭セクタ番号＋ｔ  −（式４）
メモリ番号＝（セクタ番号）％Ｎ    −（式５）
ここで、変数ｔは０以上の整数であり、初期値は０である。
【００６５】
次に、書き込み又は読み出しを行うセクタのメモリアドレスを指定し、１メモリ情報を生成する。次に、変数ｔに１加算する。以下同様にして、セクタ番号の算出、メモリ番号の算出、メモリアドレスの指定、変数ｔのインクリメントを、変数ｔが受け取ったセクタ数と等しくなるまで繰り返し、受け取ったセクタ数と同数のメモリ情報を生成する。
図６に示すメモリテーブル３２４は、一例として、先頭セクタ番号「３」、セクタ数「４」を受け取った場合に、メモリ番号演算部３２３が生成するメモリテーブルを示している。メモリ情報３２６は、セクタ番号「３」と示されるセクタを、メモリ番号「３」と対応するフラッシュメモリ３１３のメモリアドレス「ＡＡＡＡ」のセクタに対応させることを示している。
【００６６】
次に、コマンド実行部３２１へ、メモリ番号の演算が終了したことを示す演算終了信号を出力する。
（７−３）コマンド実行部３２１
コマンド実行部３２１は、図６に示すように並列制御部３０４を構成する各回路及びメモリ制御部３３０〜３３３と接続されており、これらの各回路の動作を制御する。
【００６７】
コマンド実行部３２１は、コマンド解析部３０３により解析されたコマンドを受け取る。受け取ったコマンドに従って、以下に説明する初期設定、書き込み処理及び読み出し処理を行う。
＜初期設定＞
コマンド解析部３０３を介して、最大消費電流値Ｉｍａｘの要求を受け取ると、コマンド実行部３２１は、並列演算部３２２へ最大消費電流値Ｉｍａｘの算出を指示する。並列演算部３２２から最大消費電流値Ｉｍａｘを受け取り、受け取った最大消費電流値Ｉｍａｘを、外部ＩＦ部３０１を解して外部機器へ出力する。ここで外部機器とは、ＰＣ１００又はビデオカメラ２００である。
【００６８】
次に、外部ＩＦ部３０１及びコマンド解析部３０３を介して、外部機器から許容電流値Ｉｏｋを受け取る。許容電流値Ｉｏｋを受け取ると、受け取った許容電流値Ｉｏｋを並列演算部３２２へ出力し、並行書込数Ｎｗと並行読出数Ｎｒの算出を指示する。次に、並列演算部３２２から、正常に演算が終了したことを示す演算終了信号を受け取り、外部ＩＦ部３０１を介して、外部機器へＡｃｋ信号を出力する。
【００６９】
＜書き込み処理＞
コマンド解析部３０３を介して、ライトコマンドを受け取ると、コマンド実行部３２１は、バッファメモリ３０９の４個の記憶領域のうち１個以上が空いているか否かを確認し、データブロックを書き込み可能であるか否かを判断する。１個以上の記憶領域が空であれば、書き込み可能であると判断し、１データブロックの書き込み可能であることを示すレスポンスを、外部ＩＦ部３０１を介して、外部機器に出力する。書き込みが可能でないと判断すると、いずれかの記憶領域が空になるまで待機する。
【００７０】
レスポンスを出力すると、以下に説明する（ａ）データブロックの受け取りの制御と（ｂ）書き込み制御とを実行する。
（ａ）データブロックの受け取りの制御
外部機器からバッファメモリ３０９への、一個のデータブロックの書き込みが終了すると、コマンド実行部３２１は、バッファメモリ３０９から１データブロックの書き込みが終了したことを示すＯＫ信号を受け取る。
【００７１】
ＯＫ信号を受け取ると、コマンド実行部３２１は、再度バッファメモリ３０９の空き容量を確認し、データブロックを書き込み可能であるか否かを判断する。書き込み可能でなければ、書き込み可能な状態になるまで待機し、書き込み可能な状態になれば、１データブロックの書き込みが可能であることを示すレスポンスを外部ＩＦ部３０１を介して、外部機器へ出力する。
【００７２】
（ｂ）書き込み制御
コマンド実行部３２１は、並列演算部３２２の記憶している並行書込数Ｎｗを読み出す。次に、ライトコマンドに含まれる先頭セクタ番号とセクタ数とをメモリ番号演算部３２３へ出力し、書き込みメモリ番号の算出を指示する。
メモリ番号演算部３２３から、演算終了信号を受け取る。次に、メモリ番号演算部３２３の記憶しているメモリテーブル３２４内の先頭からＮｗ個のメモリ情報を選択し、選択したメモリ情報から、メモリ番号とメモリアドレスとを抽出し、抽出したメモリ番号と対応するメモリ制御部へ、抽出したメモリアドレスと書き込みを示すライト指示とを出力する。
【００７３】
具体的に、先頭セクタ番号「３」、セクタ数「４」、並行書込数Ｎｗ＝２の場合、メモリ情報３２６及び３２７から、それぞれのメモリ番号とメモリアドレスとを抽出する。メモリ番号「３」のフラッシュメモリ３１３を制御するメモリ制御部３３３へ、ライト指示とメモリアドレス「ＡＡＡＡ」とを出力し、メモリ番号「０」と対応するフラッシュメモリ３１０を制御するメモリ制御部３３０へ、それぞれ、メモリアドレス「ＢＢＢＢ」ライト指示とを出力する。
【００７４】
次に、いずれかのメモリ制御部から、１データブロックの書き込みが終了したことを示す終了信号を受け取る。この時点で、コマンド実行部３２１は、メモリ制御部３３３及びメモリ制御部３３０へ、データブロックの書き込みを指示しており、合計２個のデータブロックの書き込みを指示し終えている。ライトコマンドと共に受け取ったセクタ数「４」に相当する４個のデータブロックの書き込みを指示し終えていないので、メモリテーブル３２４の次のメモリ情報３２８から、メモリ番号「１」とメモリアドレス「ＣＣＣＣ」とを抽出し、抽出したメモリ番号「１」と対応するメモリ制御部３３１へライト指示とメモリアドレス「ＣＣＣＣ」とを出力する。
【００７５】
同様にして、メモリ番号「２」と対応するメモリ制御部３３２へ、ライト指示とメモリアドレス「ＤＤＤＤ」とを出力する。
受け取ったセクタ数「４」に相当する４個のデータブロックの書き込みを指示し終えると、フラッシュメモリへの書き込み制御を終了する。
＜読み出し処理＞
コマンド解析部３０３を介して、データの読み出しを指示するリードコマンドを受け取ると、以下に説明する（ａ）読み出し制御と（ｂ）データブロックの出力制御とを実行する。
【００７６】
（ａ）読み出し制御
コマンド実行部３２１は、リードコマンドに含まれる先頭セクタ番号とセクタ数とをメモリ番号演算部３２３へ出力し、読み出しメモリ番号の算出を指示する。
次に、メモリ番号演算部３２３から、演算終了信号を受け取り、並列演算部３２２の記憶している並行読出数Ｎｒを読み出す。
【００７７】
書き込み処理において、説明した（ａ）書き込み制御  と同様の手順により、読み出しを行うフラッシュメモリを示すメモリ番号をメモリ制御部へ出力する。なお、読み出し制御の場合は、並列書込数Ｎｗに変わって、並列読出数Ｎｒを用い、ライト指示の代わりに、読出を示すリード指示を出力する。
次に、いずれかのメモリ制御部から１データブロックの読み出しが終了したことを示す終了信号を受け取る。このとき、リードコマンドと共に受け取ったセクタ数に相当するデータブロックの、読み出しの指示を出力し終えていれば、読み出し制御を終了する。
【００７８】
セクタ数に相当するデータブロックの読み出しの指示を出力し終えていなければ、次のメモリ情報に含まれるメモリ番号と対応するメモリ制御部へリード指示を出力する。
（ｂ）データブロックの出力制御
リードコマンドを受け取ると、コマンド実行部３２１は、バッファメモリ３０９に記憶されているデータを確認し、１データブロックの出力が可能であるか否かを判断する。つまり、フラッシュメモリからバッファメモリ３０９へ１データブロック以上のデータが転送済みか否かを確認する。
【００７９】
出力が可能でないと判断すると、いずれかのフラッシュメモリからバッファメモリ３０９へ、１データブロックの転送が終了するまで待機する。
出力可能であると判断すると、データブロックの出力が可能であることを示すレスポンスを、外部ＩＦ部３０１を介して、外部機器へ出力する。
続いて、バッファメモリ３０９へ1データブロックの出力を指示する。次に、バッファメモリ３０９から、１データブロックの出力が正常に終了したことを示すＯＫ信号を受け取る。ＯＫ信号を受け取ると、再度バッファメモリ３０９に記憶されているデータを確認し、１データブロックの出力が可能であるかを判断する。
【００８０】
以下、同様にして、リードコマンドと共に受け取ったセクタ数に相当するデータブロックを出力し終えるまで、データブロックの出力の可否の判断、レスポンスの出力、１データブロックの出力を繰り返す。
１．４  メモリカード３００及びＰＣ１００の動作
メモリカード３００は、ＰＣ１００及びビデオカメラ２００に装着されるが、ここではＰＣ１００に装着された場合について説明する。
【００８１】
（１）メモリカード３００装着時の動作
ＰＣ１００にメモリカード３００が装着された直後の、ＰＣ１００及びメモリカード３００の動作について、図７のフローチャートを用いて説明する。
ＰＣ１００は、外部ＩＦ部１０１を介して、メモリカード３００の装着を検出する（ステップＳ１０１）。次に、外部ＩＦ部１０１を介して、メモリカード３００へ、最大消費電流値Ｉｍａｘを要求する（ステップＳ１０２）。
【００８２】
メモリカード３００は、外部ＩＦ部３０１を介して、ＰＣ１００から最大消費電流値Ｉｍａｘの要求を受け取る。最大消費電流値Ｉｍａｘの要求を受け取ると、制御情報記憶部３０８から、書込消費電流値Ｉｗ、読出消費電流値Ｉｒ、メモリ数Ｎ、制御電流値ａを読み出す（ステップＳ１０４）。次に、読み出した書込消費電流値Ｉｗ、読出消費電流値Ｉｒ、メモリ数Ｎ、制御電流値ａを基に、最大消費電流値Ｉｍａｘを算出し（ステップＳ１０６）、算出した最大消費電流値ＩｍａｘをＰＣ１００へ出力する（ステップＳ１０７）。
【００８３】
ＰＣ１００は、メモリカード３００から最大消費電流値Ｉｍａｘを受け取る。最大許容電流値Ｉｍａｘを受け取ると、許容電流値記憶部１１０から許容電流値Ｉｏｋを読み出し（ステップＳ１０８）、読み出した許容電流値Ｉｏｋをメモリカード３００へ出力する（ステップＳ１０９）。
メモリカード３００は、外部ＩＦ部３０１を介して、ＰＣ１００から許容電流値Ｉｏｋを受け取り、受け取った許容電流値Ｉｏｋと算出した最大消費電流値Ｉｍａｘとを比較する（ステップＳ１１１）。Ｉｏｋ≧Ｉｍａｘであれば（ステップＳ１１１のＹＥＳ）、並行書込数Ｎｗ＝並行読出数Ｎｒ＝メモリ数Ｎとする（ステップＳ１１２）。
【００８４】
Ｉｏｋ＜Ｉｍａｘであれば（ステップＳ１１１のＮＯ）、Ｎｗ＝ＩＮＴ｛（Ｉｏｋ−ａ）／Ｉｗ｝を算出し（ステップＳ１１３）、Ｎｒ＝ＩＮＴ｛（Ｉｏｋ−ａ）／Ｉｒ｝を算出し（ステップＳ１１４）、算出した並行書込数Ｎｗと並行読出数とを記憶する。次に、ＰＣ１００へ、Ａｃｋ信号を出力する（ステップＳ１１６）。
（２）メモリカード３００への書き込み動作
メモリカード３００への書き込み動作について、図８に示すフローチャートを用いて説明する。ここでは、具体的に、並行書込数Ｎｗ＝２、先頭セクタ番号「３」、セクタ数「４」の場合について説明する。
【００８５】
ＰＣ１００は、利用者によるキー操作を受け付け（ステップＳ１２１）、メモリカード３００への書き込みを指示するキー操作を受け付けると、先頭セクタ番号「３」、セクタ数「４」を含むライトコマンドを生成し（ステップＳ１２３）、生成したライトコマンドをメモリカード３００へ出力する（ステップＳ１２４）。
メモリカード３００は、ＰＣ１００からライトコマンドを受け取り、バッファメモリ３０９の空き容量を確認し、データブロックを書き込み可能か否かを判断する（ステップＳ１２６）。書き込み可能でないと判断すると（ステップＳ１２６のＮＯ）、バッファメモリ３０９の空き容量が１データブロックを書き込み可能な状態になるまで待機する。
【００８６】
書き込み可能であると判断すると（ステップＳ１２６のＹＥＳ）、データの書き込み可能であることを示すレスポンスをＰＣ１００生成し（ステップＳ１２８）、生成したレスポンスをＰＣ１００へ出力する（ステップＳ１２９）。
ＰＣ１００は、メモリカード３００からレスポンスを受け取る（ステップＳ１２９）。レスポンスを受け取ると、出力するデータのうち１データブロックを読み出し（ステップＳ１３１）、読み出したデータブロックをメモリカード３００へ出力する（ステップＳ１３２）。
【００８７】
メモリカード３００は、ＰＣ１００からデータブロックを受け取り、受け取ったデータブロックをバッファメモリ３０９へ書き込む（ステップＳ１３３）。バッファメモリ３０９への書き込みが終了すると、再度、バッファメモリ３０９の空き容量を確認し、１データブロックを書き込み可能であるか否かを判断する（ステップＳ１３４）。書き込み可能でないと判断すると、バッファメモリ３０９にデータブロックを書き込み可能な状態になるまで、待機する（ステップＳ１３４のＮＯ）。
【００８８】
書き込み可能であると判断すると（ステップＳ１３４のＹＥＳ）、メモリカード３００は、データブロックを書き込み可能であることを示すレスポンスを、ＰＣ１００へ出力する。同様にして、ＰＣ１００からデータブロックを受け取る度に、ステップＳ１３３〜ステップＳ１３６を繰り返す。
ＰＣ１００は、メモリカード３００から、レスポンスを受け取る（ステップＳ１３６）。このとき、メモリカード３００に書き込むデータを構成するデータブロック全てを出力し終えていなければ（ステップＳ１３４のＮＯ）、ステップＳ１２９へ戻り、次のデータブロックを出力する。
【００８９】
また、メモリカード３００は、ステップＳ１３３〜１３６の動作と並行して、ステップＳ１４１〜ステップＳ１４７に示す、バッファメモリ３０９から各フラッシュメモリへのデータの転送の処理を行う。
まず、ライトコマンドに含んで受け取った先頭セクタ数「３」とセクタ数「４」とを基に、データブロックを書き込むフラッシュメモリを示すメモリ番号「３」、「０」、「１」、「２」を算出し、メモリテーブル３２４を生成する（ステップＳ１４１）。Ｎｗ＝２であるので、メモリ番号「３」、「０」と対応するメモリ制御部３３３及び３３０へライト指示を出力し、バッファメモリ３０９からフラッシュメモリ３１３及びフラッシュメモリ３１０へのデータブロックの転送を開始する（ステップＳ１４２）。
【００９０】
いずれかのフラッシュメモリへのデータブロックの転送が終了する（ステップＳ１４３）。このとき、受け取ったセクタ数「４」に相当する４個のデータブロックの転送を各メモリ制御部へ、指示し終えていので（ステップＳ１４４のＮＯ）、メモリテーブル３２４から次のメモリ番号とメモリアドレス、具体的にはメモリ番号「１」とメモリアドレス「ＣＣＣＣ」を読み出し、読み出したメモリ番号「１」と対応するメモリ制御部３３１へメモリアドレス「ＣＣＣＣ」とライト指示を出力し、メモリ制御部３３１は、フラッシュメモリ３１１へのデータブロックの転送を開始する（ステップＳ１４６）。
【００９１】
ステップＳ１４３〜１４６を繰り返し、メモリ番号「２」の示すフラッシュメモリ３１２へのデータブロックの転送を開始する。
次に、ステップＳ１４４において、４個のデータブロックのフラッシュメモリへの転送をメモリ制御部へ、指示し終えていると判断する（ステップＳ１４４のＹＥＳ）。全てのフラッシュメモリにおいて、データブロックの転送が完了すると（ステップＳ１４７）、書き込み動作を終了する。
【００９２】
（３）書き込み時のタイムチャート
メモリカード３００へデータを書き込む際のメモリカード３００とＰＣ１００の間のコマンド及びデータの授受のタイミング及びメモリカード３００内のフラッシュメモリ３１０〜３１３の動作タイミングについて、図１０に示すタイムチャートを用いて説明する。ここで、並行書込数Ｎｗ＝２であり、ライトコマンドを受け取った時点で、バッファメモリ３０９の４個記憶領域は、すべて空であると想定する。
【００９３】
図１０は、メモリカード３００がＰＣ１００から受け取るコマンド及びデータブロックとメモリカード３００がＰＣ１００へ出力するレスポンスとを時間の経過に沿って並べたものであり、横軸は時間の経過を示している。さらに、各時刻における、フラッシュメモリ３１０〜３１３の動作の状況を示している。
メモリカード３００は、ＰＣ１００から、ライトコマンドＡ０を受け取る。ライトコマンドＡ０には、先頭セクタ番号「３」とセクタ数「４」とが含まれる。
【００９４】
メモリカード３００は、バッファメモリ３０９の空き容量を確認し、５１２バイトのデータブロックを書き込み可能であることを示すレスポンス１３１をＰＣ１００へ出力する。
レスポンス１３１を受け取ると、ＰＣ１００は、メモリカード３００へ、データブロックＡ１を出力する。
【００９５】
これと同時に、メモリカード３００は、バッファメモリ３０９からフラッシュメモリ３１３へのデータブロックＡ１の転送を開始する。ＰＣ１００からメモリカード３００へのデータブロックＡ１の出力が終了すると、メモリカード３００は、再度、バッファメモリ３０９の空き容量を確認し、データブロックの書き込みが可能であることを示すレスポンス１３２をＰＣ１００へ出力する。
【００９６】
レスポンス１３２を受け取ると、ＰＣ１００は、メモリカード３００へ、データブロックＡ２を出力する。
これと同時に、メモリカード３００は、バッファメモリ３０９からフラッシュメモリ３１０へのデータブロックＡ２の転送を開始する。
ＰＣ１００からメモリカード３００へのデータブロックＡ２の出力が終了すると、メモリカード３００は、再度、バッファメモリ３０９の空き容量を確認し、データブロックの書き込みが可能であることを示すレスポンス１３３をＰＣ１００へ出力する。
【００９７】
同様にして、ＰＣ１００は、レスポンス１３３を受け取ると、データブロックＡ３をメモリカード３００へ出力する。ここで、並行書込数Ｎｗ＝２であり、フラッシュメモリ３１３及び３１０が動作中であるので、フラッシュメモリ３１３又は３１０のいずれかで転送が終了するまで、その他のフラッシュメモリは動作しない。
ＰＣ１００からメモリカード３００へのデータブロックＡ３の出力が終了する。メモリカード３００は、再度、バッファメモリ３０９の空き容量を確認し、データブロックの書き込みが可能であることを示すレスポンス１３４をＰＣ１００へ出力する。
【００９８】
ＰＣ１００は、レスポンス１３４を受け取ると、データブロックＡ４をメモリカード３００へ出力する。
ここで、バッファメモリ３０９には、データブロックＡ１〜Ａ４が記憶されており、新たなデータブロックを書き込むことはできない。最初に、転送を開始したフラッシュメモリ３１３において、データブロックＡ１の書き込みが終了した時点で、バッファメモリ３０９へ新たなデータブロックの書き込みが可能になり、メモリカード３００は、書き込み可能であることを示すレスポンス１３５をＰＣ１００へ出力する。
【００９９】
同時に、バッファメモリ３０９からフラッシュメモリ３１１へデータブロックＡ３の転送を開始する。次に、フラッシュメモリ３１０へのデータブロックＡ２の転送が終了すると、バッファメモリ３０９からフラッシュメモリ３１２へのデータブロックＡ４の転送を開始する。
１．５  まとめ及び効果
以上、説明してきたように、メモリカード３００は、外部機器に接続されると、外部機器の許容電流値を取得し、メモリカード３００の消費電流値が取得した許容電流値以下になるように、並行書込数Ｎｗと並行読出数Ｎｒとを算出する。
【０１００】
外部機器からライトコマンドを受け取ると、Ｎｗ個のフラッシュメモリを、並行して動作させ書き込みを行う。リードコマンドを受け取ると、Ｎｒ個のフラッシュメモリを並行して動作させて、読み出しを実行する。
本発明の効果について、具体的な数値を用いて説明する。
書込消費電流値Ｉｗ＝１００ｍＡ、読出消費電流値Ｉｒ＝５０ｍＡ、メモリ数Ｎ＝４及び制御電流値ａ＝１００ｍＡであり、フラッシュメモリ３１０〜３１３の書き込み及び読み出し速度は、１個当たり４ＭＢ／ｓであると想定する。
【０１０１】
ＰＣ１００から許容電流値Ｉｏｋ＝３５０ｍＡを受け取ると、メモリカード３００は、式２及び式３を用いて
Ｎｗ＝ＩＮＴ｛（３５０−１００）／１００｝＝２
Ｎｒ＝ＩＮＴ｛（３５０−１００）／５０｝＝５
を算出する。ここで、Ｎｒ＞Ｎであるので、Ｎｒ＝Ｎ＝４とする。
【０１０２】
このように想定した場合、メモリカード３００の書き込み時の消費電流値は、３００ｍＡであり、読み出し時の消費電流値は３５０ｍＡであり、いずれも許容電流値の３５０ｍＡ以下である。
また、このときのメモリカード３００の書き込み速度は、２個のフラッシュメモリを並行して動作させることが可能であるため、８ＭＢ／ｓであり、並行して動作しない場合と比較して２倍の書き込み速度を実現できる。読み出し速度は、４個のフラッシュメモリを並行して動作させることが可能であるため、１６ＭＢ／ｓであり、並行して動作しない場合と比較して４倍の読み出し速度を実現できる。
【０１０３】
このようにして、ＰＣ１００の電力供給能力の範囲内で、効率よく、読み出し及び書き込みを高速化することができる。
２．実施の形態２
本発明の実施の形態２のメモリカード６００について、以下に説明する。
メモリカード６００は、実施の形態１のメモリカード３００と同様にＰＣ１００及びビデオカメラ２００に装着される。ＰＣ１００及びビデオカメラ２００は、の構成及び動作は実施の形態１と同様であるので、ここでは説明を省略する。
【０１０４】
メモリカード６００は、４個のフラッシュメモリを搭載しており、外部機器、具体的には、ＰＣ１００又はビデオカメラ２００から、許容電流値を受け取り、メモリカード６００の消費電流値が受け取った許容電流値以下になるように、フラッシュメモリの動作周波数を算出する。外部機器から、コマンドを受け取ると、算出した動作周波数で、フラッシュメモリを動作させる。
２．１  メモリカード６００
メモリカード６００は、図１１に示すように、外部ＩＦ部６０１、制御部６０２、フラッシュメモリ６１０、６１１、６１２及び６１３から構成される。
【０１０５】
制御部６０２は、コマンド解析部６０３、並列制御部６０４、クロック制御部６０５、メモリ制御部６３０、６３１、６３２、６３３、制御情報記憶部６０８及びバッファメモリ６０９を含む。
制御部６０２は、具体的にはマイクロプロセッサ、ＲＡＭ、ＲＯＭから構成され、ＲＡＭ及びＲＯＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが前記コンピュータプログラムに従って動作することにより、制御部３０２は、その機能を達成する。
【０１０６】
外部ＩＦ部６０１、コマンド解析部６０３、メモリ制御部６３０、６３１、６３２、６３３、バッファメモリ６０９、フラッシュメモリ６１０、６１１、６１２及び６１３の構成及び動作は、実施の形態１の外部ＩＦ部３０１、コマンド解析部３０３、メモリ制御部３３０、３３１、３３２、３３３、バッファメモリ３０９、フラッシュメモリ３１０、３１１、３１２及び３１３と同様であるので説明を省略し、本実施の形態の特徴部分である、並列制御部６０４、クロック制御部６０５及び制御情報記憶部６０８についてのみ説明する。
【０１０７】
（１）制御情報記憶部６０８
制御情報記憶部６０８は、ＲＯＭから構成され、図１１に示すように、書込消費電流値Ｉｗ、最大読出消費電流値Ｉｒｍａｘ、メモリ数Ｎ、最大周波数ｆｍａｘ及び制御電流値ａを記憶している。
書込消費電流値Ｉｗ、メモリ数Ｎ及び制御電流値ａは実施の形態１と同様である。
【０１０８】
最大周波数ｆｍａｘは、メモリカード６００に搭載されているフラッシュメモリが最大の読み出し速度で読み出しの動作をする場合の動作周波数である。
最大読出消費電流値Ｉｒｍａｘは、１個のフラッシュメモリが、最大の読み出し速度で読み出しの動作をする場合、つまり、最大周波数ｆｍａｘで読み出しを実行する場合に、そのフラッシュメモリ及び対応するメモリ制御部が消費する電流値である。
【０１０９】
（２）クロック制御部６０５
クロック制御部６０５は、ＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋ  Ｌｏｏｐ）を備えている。所定の時間間隔でクロック信号を生成し、生成したクロック信号をメモリカード６００を構成する各部へ出力する。通常、クロック制御部６０５が、メモリ制御部６３０〜６３３を介して、フラッシュメモリ６１０〜６１３へ供給するクロック信号のクロック周波数は、最大周波数ｆｍａｘである。このとき、メモリ制御部６３０〜６３３及びフラッシュメモリ６１０〜６１３の動作周波数もｆｍａｘである。
【０１１０】
クロック制御部６０５は、並列制御部６０４から、周波数変更指示と読出周波数ｆｒとを受け取る。読出周波数ｆｒは、フラッシュメモリ６１０〜６１３が並行して読み出しの動作を行う際に、メモリカード６００が消費する電流値が許容電流値Ｉｏｋ以下になるフラッシュメモリ６１０〜６１３の動作周波数の上限値である。
周波数変更指示を受け取ると、ＰＬＬを用いて、メモリ制御部６３０〜６３３へ供給するクロック信号のクロック周波数を受け取った読出周波数ｆｒに変更する。
【０１１１】
また、並列制御部６０４から変更終了指示を受け取り、フラッシュメモリ６１０〜６１３へ供給するクロック信号のクロック周波数を読出周波数ｆｒから通常の最大周波数ｆｍａｘへ戻す。
（３）並列制御部６０４
並列制御部６０４は、図１２に示すように、コマンド実行部６２１、並列演算部６２２及びメモリ番号演算部６２３から構成される。
【０１１２】
メモリ番号演算部６２３は、実施の形態１と同様であるので、ここでは本実施の形態の特徴であるコマンド実行部６２１及び並列演算部６２２についてのみ説明する。
（３−１）並列演算部６２２
並列演算部６２２は、コマンド実行部６２１から最大消費電流値Ｉｍａｘの算出を指示される。また、コマンド実行部６２１から許容電流値Ｉｏｋを受け取り、並行書込数Ｎｗと読出周波数ｆｒの算出を指示される。
【０１１３】
最大消費電流値Ｉｍａｘの算出を指示されると、制御情報記憶部６０８から書込消費電流値Ｉｗ、最大読出消費電流値Ｉｒｍａｘ、メモリ数Ｎ及び制御電流値ａを読み出す。読み出した書込消費電流値Ｉｗ、読出消費電流値Ｉｒ、メモリ数Ｎ及び制御電流値ａを基に、
Ｉｍａｘ＝Ｍａｘ（Ｎ×Ｉｗ，Ｎ×Ｉｒｍａｘ）＋ａ  −（式６）
を算出する。算出した最大消費電流値Ｉｍａｘをコマンド実行部６２１へ出力する。
【０１１４】
並行書込数Ｎｗと読出周波数ｆｒの算出を指示されると、制御情報記憶部６０８から最大周波数ｆｍａｘを読み出す。次に、受け取った許容電流値Ｉｏｋと算出した最大電流値Ｉｍａｘとを比較し、Ｉｏｋ＜Ｉｍａｘであれば、
Ｎｗ＝ＩＮＴ｛（Ｉｏｋ−ａ）／Ｉｗ｝  −（式２）
ｆｒ＝ｆｍａｘ×（Ｉｏｋ−ａ）／Ｎ／Ｉｒｍａｘ  −（式７）
を算出する。このとき、Ｎｗ＞Ｎであれば、Ｎｗ＝Ｎとし、ｆｒ＞ｆｍａｘであればｆｒ＝ｆｍａｘとする。
【０１１５】
Ｉｏｋ≧Ｉｍａｘであれば、Ｎｗ＝Ｎ、ｆｒ＝ｆｍａｘとする。
次に、算出した並行書込数Ｎｗと読出周波数ｆｒとを記憶し、コマンド実行部６２１へ正常に演算が終了したことを示す演算終了信号を出力する。
（３−２）コマンド実行部６２１
コマンド実行部６２１は、メモリカード６００が備えているフラッシュメモリの個数Ｎ＝４を予め記憶している。
【０１１６】
コマンド実行部６２１は、コマンド解析部６０３により解析されたコマンドを受け取る。受け取ったコマンドにより、以下に説明する初期設定、書込動作及び読出動作を実行する。書込動作は実施の形態１と同様であるので、ここでは説明を省略する。
（初期設定）
コマンド解析部６０３を介して、最大消費電流値Ｉｍａｘを要求されると、コマンド実行部６２１は、並列演算部６２２へ最大消費電流値Ｉｍａｘの算出を指示する。並列演算部６２２から最大消費電流値Ｉｍａｘを受け取り、受け取った最大消費電流値Ｉｍａｘを外部ＩＦ部６０１を解して外部機器へ出力する。ここで外部機器とは、ＰＣ１００又はビデオカメラ２００である。
【０１１７】
次に、外部ＩＦ部６０１及びコマンド解析部６０３を介して、外部機器から許容電流値Ｉｏｋを受け取る。許容電流値Ｉｏｋを受け取ると、受け取った許容電流値Ｉｏｋを並列演算部６２２へ出力し、並行書込数Ｎｗと読出周波数ｆｒの算出を指示する。
並列演算部６２２から正常に演算が終了したことを示す演算終了信号を受け取る。次に、外部ＩＦ部６０１を介して、外部機器へＡｃｋ信号を出力する。
【０１１８】
（読み出し動作）
コマンド解析部６０３を介して、データの読み出しを指示するリードコマンドを受け取る。リードコマンドには、読み出しを開始するセクタの論理アドレスである先頭セクタ番号と読み出しを行うセクタ数とを含んでいる。リードコマンドを受け取ると、以下に説明する（ａ）読み出し制御と（ｂ）データブロックの出力制御とを実行する。
【０１１９】
（ａ）読み出し制御
コマンド実行部６２１は、リードコマンドに含まれる先頭セクタ番号「５」とセクタ数「４」とをメモリ番号演算部６２３へ出力し、メモリ番号の算出を指示する。次に、並列演算部６２２から読出周波数ｆｒを読み出し、クロック制御部６０５へ、読み出した読出周波数ｆｒと周波数変更指示とを出力する。
【０１２０】
次に、メモリ番号演算部６２３の記憶しているメモリテーブルのＮ個のメモリ情報からメモリ番号とメモリアドレスとを抽出し、抽出したメモリ番号の示すフラッシュメモリを制御するメモリ制御部へ、それぞれ、抽出したメモリアドレスと読み出しを示すリード指示とを出力する。
次に、いずれかのメモリ制御部から、読み出しが終了したことを示す終了信号を受け取る。このとき、リードコマンドに含んで受け取ったセクタ数に相当する個数のデータブロックの読み出しの指示を、メモリ制御部６３０〜６３３へ出力し終えていなければ、メモリテーブルから次のメモリ番号と、メモリアドレスを抽出し、抽出したメモリ番号と対応するメモリ制御部へリード指示を出力する。セクタ数に相当する個数のデータブロックのリード指示を、出力し終えるまで、メモリ番号とメモリアドレスの抽出、メモリ制御部へのリード指示の出力を繰り返す。
次に、リード指示を出力した全てのメモリ制御部から終了信号を受け取り、各フラッシュメモリからのデータの読み出しが終了したと判断する。フラッシュメモリからのデータの読み出しが終了したと判断すると、クロック制御部６０５へ変更終了指示を出力する。
【０１２１】
（ｂ）データブロックの出力制御
リードコマンドを受け取ると、コマンド実行部６２１は、バッファメモリ６０９に記憶されているデータを確認し、１データブロックの出力が可能であるか否かを判断する。つまり、フラッシュメモリからバッファメモリ６０９へ１データブロック以上のデータが転送済みか否かを確認する。
【０１２２】
出力が可能でないと判断すると、いずれかのフラッシュメモリからバッファメモリ６０９へ、１データブロックの転送が終了するまで待機する。
出力可能であると判断すると、データブロックの出力が可能であることを示すレスポンスを、外部ＩＦ部６０１を介して、外部機器へ出力する。
続いて、バッファメモリ６０９へ1データブロックの出力を指示する。
【０１２３】
リードコマンドと共に受け取ったセクタ数に相当するデータブロックを外部機器へ出力し終えるまで、同様にして、データブロックの出力の可否の判断、レスポンスの出力、データブロックの出力を繰り返す。  
２．２  メモリカード６００及びＰＣ１００の動作
メモリカード６００は、ＰＣ１００及びビデオカメラ２００に装着されるが、ここでは、ＰＣ１００に装着された場合について説明する。
【０１２４】
（１）メモリカード６００の装着時の動作
メモリカード６００がＰＣ１００に装着されたときの初期設定の動作について、図１３に示すフローチャートを用いて説明する。
ＰＣ１００は、外部ＩＦ部１０１を介してメモリカード６００の装着を検出し、コンフィグ処理を行う（ステップＳ２０１）。次に、メモリカード６００へ最大消費電流値Ｉｍａｘを要求する（ステップＳ２０２）。
【０１２５】
メモリカード６００は、ＰＣ１００から最大消費電流値Ｉｍａｘの要求を受け取る。最大消費電流値Ｉｍａｘの要求を受け取ると、制御情報記憶部６０８から、書込消費電流値Ｉｗ、最大読出消費電流値Ｉｒｍａｘ、メモリ数Ｎ及び制御電流値ａを読み出す（ステップＳ２０３）。次に、読み出した書込消費電流値Ｉｗ、最大読出消費電流値Ｉｒｍａｘ、メモリ数Ｎ及び制御電流値ａを用いて、最大消費電流値Ｉｍａｘを算出し（ステップＳ２０４）、算出した最大消費電流値ＩｍａｘをＰＣ１００へ出力する（ステップＳ２０７）。
【０１２６】
ＰＣ１００は、メモリカード６００から最大消費電流値Ｉｍａｘを受け取り、許容電流値Ｉｏｋを読み出す（ステップＳ２０９）。読み出した許容電流値Ｉｏｋを外部ＩＦ部１０１を介してメモリカード６００へ出力する（ステップＳ２１１）。
メモリカード６００は、ＰＣ１００から、許容電流値Ｉｏｋを受け取り、最大読出周波数ｆｍａｘを読み出す（ステップＳ２１２）。
【０１２７】
次に、受け取ったＩｏｋと算出した最大消費電流値Ｉｍａｘとを比較する（ステップＳ２１３）。Ｉｏｋ≧Ｉｍａｘであれば（ステップＳ２１３のＹＥＳ）、並行書込数Ｎｗをメモリ数Ｎとし、読出周波数ｆｒを最大読出周波数ｆｍａｘとする（ステップＳ２１４）。
Ｉｏｋ＜Ｉｍａｘであれば（ステップＳ２１３のＮＯ）、式２により並行書込数Ｎｗを算出する（ステップＳ２１７）。このとき、Ｎｗ＞Ｎとなる場合は、Ｎｗ＝Ｎとする。次に、式７により読出周波数ｆｒを算出する（ステップＳ２１８）。このとき、ｆｒ＞ｆｍａｘとなる場合、ｆｒ＝ｆｍａｘとする。
【０１２８】
次に、初期設定が正常に終了したことを示すＡｃｋ信号をＰＣ１００へ出力する（ステップＳ２１９）。
（２）メモリカード６００からの読み出し動作
メモリカード６００からデータを読み出す際の、メモリカード６００及びＰＣ１００の動作について、図１４に示すフローチャートを用いて説明する。
【０１２９】
ここでは、具体的に、先頭セクタ番号「５」とセクタ数「４」の場合について説明する。
ＰＣ１００は、利用者によるキー操作を受け付け（ステップＳ２４１）、メモリカード６００からの読み出しを示すキー操作を受け付けると、先頭セクタ番号「５」及びセクタ数「４」を含むリードコマンドを生成し（ステップＳ２４３）、外部ＩＦ部１０１を介して生成したリードコマンドをメモリカード６００へ出力する（ステップＳ２４４）。
【０１３０】
受け付けたキー操作が、読み出し以外の処理を示していれば、その他の処理を行う（ステップＳ２４２）。
メモリカード６００は、ＰＣ１００からリードコマンドを受け取り、受け取ったリードコマンドに含まれる先頭セクタ番号「５」とセクタ数「３」とを基に、読み出しを行うフラッシュメモリを示すメモリ番号「１」、「２」、「３」、「０」を算出し、メモリテーブルを生成する（ステップＳ２４９）。
【０１３１】
次に、メモリ制御部６３０〜６３３へ出力するクロック周波数を読出周波数ｆｒに変更する（ステップＳ２５１）。
メモリテーブル上のＮ（＝４）個のメモリ情報からメモリ番号とメモリアドレスを抽出し、抽出したメモリ番号「１」、「２」、「３」及び「０」に対応するフラッシュメモリからバッファメモリ６０９へのデータブロックの転送を開始する（ステップＳ２５２）。
【０１３２】
いずれかのフラッシュメモリにおいて、データブロックの転送が終了したとき、（ステップＳ２５３）、受け取ったセクタ数「４」に相当する４個のデータブロックの出力をメモリ制御部へ指示し終えていなければ（ステップＳ２５４のＮＯ）、メモリテーブルを基に、次のデータブロックの読み出しをメモリ制御部へ指示する（ステップＳ２５６）。
合計して４個のデータブロックの出力をメモリ制御部へ指示し終えていれば（ステップＳ２５４のＹＥＳ）、全てのフラッシュメモリにおける読み出しの動作が終了した後（ステップＳ２５７）、クロック周波数を元に戻す（ステップＳ２５８）。
【０１３３】
ステップＳ２５２〜ステップＳ２５８と並行して、ステップＳ２６１〜ステップＳ２６４の処理を行い、バッファメモリ６０９から外部機器へデータブロックを出力する。
まず、バッファメモリ６０９に１個以上のデータブロックが存在するか否かを判断する（ステップＳ２６１）。存在しなければ（ステップＳ２６１のＮＯ）、いずれかのフラッシュメモリからバッファメモリ６０９へ１個のデータブロックの転送が終了するまで待機する。
【０１３４】
１個以上のデータブロックが存在する場合（ステップＳ２６１のＹＥＳ）、データブロックを出力可能であることを示すレスポンスをＰＣ１００へ出力する（ステップＳ２６２）。続いて、１個のデータブロックをバッファメモリ６０９からＰＣ１００へ出力する（ステップＳ２６３）。出力し終えると、リードコマンドに含んで受け取ったセクタ数「４」に相当する４個のデータブロックを、ＰＣ１００へ出力し終えるまで（ステップＳ２６４のＹＥＳ）、ステップＳ２６１〜２６４を繰り返す。
【０１３５】
ＰＣ１００は、メモリカード６００からレスポンスを受け取り（ステップＳ２６２）、続いて、データブロックを受け取る（ステップＳ２６３）。４個のデータブロックを受け取り終えるまで（ステップＳ２６６のＹＥＳ）、レスポンス及びデータブロックの受け取りを繰り返す。
（３）読み出し時のタイムチャート
メモリカード６００からデータを読み出す際のメモリカード６００とＰＣ１００の間のコマンド及びデータの授受のタイミング及びメモリカード６００内のフラッシュメモリ６１０〜６１３の読み出し動作のタイミングについて、図１５に示すタイムチャートを用いて説明する。
【０１３６】
図１５は、メモリカード６００がＰＣ１００から受け取るコマンド及びメモリカード６００からＰＣ１００へ出力されるデータブロックとを時間の経過に沿って並べたものであり、横軸は時間の経過を示している。また、各時刻におけるフラッシュメモリ６１０〜６１３の動作状態を示している。
メモリカード６００は、ＰＣ１００から、リードコマンドＢ０を受け取る。リードコマンドＢ０には、先頭セクタ番号「５」とセクタ数「４」とが含まれる。
【０１３７】
メモリカード６００は、先頭セクタ番号「５」とセクタ数「４」を基にして、メモリ番号「１」、「２」、「３」、「０」を算出する。算出したメモリ番号と対応するフラッシュメモリ６１１からデータブロックＢ１を、フラッシュメモリ６１２からデータブロックＢ２を、フラッシュメモリ６１３からデータブロックＢ３を、フラッシュメモリ６１０からデータブロックＢ４を読み出し、読み出した各データブロックをバッファメモリ６０９へ転送する。フラッシュメモリ６１１においてデータブロックの転送が終了すると、メモリカード６００は、データブロックの出力が可能であることを示すレスポンス１４１をＰＣ１００へ出力する。続いて、バッファメモリ６０９からＰＣ１００へデータブロックＢ１を出力する。
【０１３８】
４個のフラッシュメモリの読み出し速度はほぼ同一であるので、各フラッシュメモリからバッファメモリ６０９へのデータブロックの転送はほぼ同時に終了する。
データブロックＢ１の出力を終えた時点で、バッファメモリ６０９には、データブロックＢ２〜Ｂ４が存在する。従って、メモリカード６００は、データブロックを出力可能であることを示すレスポンス１４２を出力し、データブロックＢ２を出力する。データブロックＢ２の出力が終了すると、同様にして、レスポンス１４３及びデータブロックＢ３の出力、レスポンス１４４及びデータブロックＢ４の出力を行う。
２．３  まとめ及び効果
以上、説明してきたように、本実施の形態２のメモリカード６００は、外部機器から許容電流値Ｉｏｋを取得し、メモリカード６００の消費電流値が、取得した許容電流値Ｉｏｋ以下になる様に、並行書込数Ｎｗと読出周波数ｆｒとを算出する。
【０１３９】
外部機器からライトコマンドを受け取ると、算出した並行書込数Ｎｗ個のフラッシュメモリを並行に動作させデータの書き込みを実行する。
リードコマンドを受け取ると、フラッシュメモリ６１０〜６１３へ供給するクロック信号のクロック周波数を算出した読出周波数ｆｒに変更し、４個のフラッシュメモリ３１０〜３１３を並行して動作させデータの読み出しを実行する。
【０１４０】
本実施の形態の効果について、具体的な数値を用いて説明する。なお、書き込みの処理における効果は、実施の形態１と同様であるので、ここでは、読み出しの処理における効果について、説明する。
書込消費電流値Ｉｗ＝１２０ｍＡ、最大読出消費電流値Ｉｒｍａｘ＝１００ｍＡ、最大周波数１００ＭＨｚ、メモリ数Ｎ＝４及び制御電流値ａ＝１００ｍＡであり、フラッシュメモリ６１０〜６１３の読み出し速度は、１個当たり最大１０ＭＢ／ｓであると想定する。
【０１４１】
このとき、最大消費電流値は、式６より
Ｉｍａｘ＝Ｍａｘ（４×１２０，４×１００）＋１００＝５８０ｍＡ
である。ＰＣ１００の許容電流値Ｉｏｋ＝４００ｍＡであるとすると、Ｉｏｋ＜Ｉｍａｘであるので、メモリカード６００は、式７により読出周波数
ｆｒ＝１００×（４００−１００）／４／１００＝７５  ＭＨｚ  
を算出する。
【０１４２】
読み出し動作におけるフラッシュメモリの消費電流値は、動作周波数に比例する。従って、動作周波数７５ＭＨｚで４個のフラッシュメモリにより読み出しの動作をする場合、メモリカード６００の消費する電流値は、
Ｉｒｍａｘ×（ｆｒ／ｆｍａｘ）×Ｎ＋ａ
＝１００×（７５／１００）×４＋１００
＝４００ｍＡ
と算出することができる。従って、４個のフラッシュメモリ６１０〜６１３を動作周波数７５ＭＨｚで、並行して動作させる場合の消費電流値を、ＰＣ１００の許容電流値４００ｍＡ以下に抑制することができた。
【０１４３】
また、フラッシュメモリの読み出し速度は、動作周波数に比例するため、動作周波数７５ＭＨｚの場合、メモリカード６００の読み出し速度は
１０×（７５／１００）×４＝３０ＭＢ／ｓ
と算出することができる。従って、フラッシュメモリの動作周波数を７５ＭＨｚに下げて、４個のフラッシュメモリ６１０〜６１３を平行して動作させることにより、並行動作をせずに、最大周波数で動作させる場合と比較して３倍の読み出し速度を実現することができる。
【０１４４】
このようにして、ＰＣ１００の電力供給能力の範囲内で、可能な限り読み出し高速化することができる。
なお、フラッシュメモリは、高電圧を印加し、電荷を蓄積させることによりデータを記録する。そのため、書き込み時の消費電流は、電圧の印加時間に比例し、周波数の変更によって省電効果は期待できない。従って、本実施の形態において、読み出し時のみ周波数を変更する構成にしている。
３．実施の形態３
実施の形態１及び２において、本発明は、複数のフラッシュメモリを搭載したメモリカードであるとして説明してきたが、図１６に示すようなメモリカードドライブ７００でもある。
【０１４５】
メモリカードドライブ７００は、４個のメモリカードスロットを備えており、４枚のメモリカード８１０、８１１、８１２及び８１３を装着して使用される。メモリカードドライブ７００は、ＰＣ１００及びビデオカメラ２００と接続される。
メモリカードドライブ７００は、実施の形態１のメモリカード３００と同様に、ＰＣ１００又はビデオカメラ２００の供給可能な電力の範囲内で、並行して動作させることができるメモリカードの個数を算出し、算出した個数のメモリカードを並行して動作させる。
【０１４６】
ＰＣ１００及びビデオカメラ２００は実施の形態１と同様であるので、説明を省略する。
３．１  メモリカード８１０、８１１、８１２及び８１３
メモリカード８１０、８１１、８１２及び８１３は、制御部、ＲＡＭ、不揮発メモリを含んで構成される。メモリカードドライブ７００による制御に従い、各種の情報を記憶し、また、記憶している情報を出力する。
３．２  メモリカードドライブ７００
メモリカードドライブ７００は、図１７に示すように、外部ＩＦ部７０１、制御部７０２及びカードＩＦ部７１０、７１１、７１２及び７１３から構成される。
【０１４７】
制御部７０２は、コマンド解析部７０３、並列制御部７０４、メモリ制御部７３０、７３１、７３２、７３３、クロック制御部７０５、制御情報記憶部７０８及びバッファメモリ７０９から構成される。
制御部７０２は、具体的には、マイクロプロセッサ、ＲＡＭ、ＲＯＭを含んで構成され、前記ＲＡＭ及びＲＯＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが前記コンピュータプログラムに従って動作することにより制御部７０２は、その機能を達成する。
【０１４８】
以下に、メモリカードドライブ７００を構成する各部について、説明する。なお、制御部７０２に含まれるコマンド解析部７０３、クロック制御部７０５及びバッファメモリ７０９の構成及び動作は実施の形態１のコマンド解析部３０３及びバッファメモリ３０９と同様であるので、ここでは、改めて説明はしない。
（１）外部ＩＦ部７０１、カードＩＦ部７１０、７１１、７１２及び７１３
外部ＩＦ部７０１は、実施の形態１のメモリカード３００の外部ＩＦ部３０１と同様に外部機器と制御部７０２との間で各種の情報の送受信を行う。また、外部機器から供給される電力を受け取り、受け取った電力をメモリカードドライブ７００を構成する各回路へ出力する。
【０１４９】
カードＩＦ部７１０、７１１、７１２及び７１３は、メモリカード８１０、８１１、８１２及び８１３と接続され、メモリカード８１０、８１１、８１２及び８１３とメモリ制御部７３０、7３１、７３２及び７３３との間で各種の情報の入出力を行う。また、メモリ制御部７３０、7３１、７３２及び７３３を介して、クロック制御部７０５からクロック信号を受け取り、受け取ったクロック信号をメモリカード８１０、８１１、８１２及び８１３へ供給する。
【０１５０】
なお、外部ＩＦ部７０１と外部機器との間のデータの入出力速度は、カードＩＦ部７１０、７１１、７１２及び７１３とメモリカード８１０、８１１、８１２及び８１３の間の入出力速度に比べて十分高速である。
（２）制御情報記憶部７０８
制御情報記憶部７０８は、図１７に示すように、書込消費電流値Ｉｗ、読出消費電流値Ｉｒ、最大カード数Ｎｍａｘ、制御電流値ａを記憶している。
【０１５１】
書込消費電流値Ｉｗは、メモリカードドライブ７００に装着されるメモリカード１枚当たりの書き込みの動作のために、一組のメモリカード、カードＩＦ部及びメモリ制御部が消費する電流値である。読出消費電流値Ｉｒは、メモリカード１枚当たりの読み出しの動作のために、一組のメモリカード、カードＩＦ部、メモリ制御部が消費する電流値である。
【０１５２】
最大カード数Ｎｍａｘは、メモリカードドライブ７００に装着可能なメモリカードの枚数、すなわちメモリカードスロットの数であり、本実施の形態では、Ｎｍａｘ＝４である。
制御電流値ａは、メモリカード、カードＩＦ部及びメモリ制御部以外の各回路が動作するために消費する電流の合計値である。
【０１５３】
（３）メモリ制御部７３０、７３１、７３２及び７３３
メモリ制御部７３０は、クロック制御部７０５から、クロック信号を受け取り、受け取ったクロック信号をカードＩＦ部７１０を介してメモリカード８１０へ供給する。
メモリ制御部７３０は、カードＩＦ部７１０を介してメモリカード８１０の着脱を検出する。
【０１５４】
メモリ制御部７３０は、並列制御部７０４から、ライト指示と書き込みを行うセクタを示すメモリアドレスとを受け取る。また、並列制御部７０４から、リード指示とメモリアドレスとを受け取る。
ライト指示とメモリアドレスを受け取ると、カードＩＦ部７１０を介して、メモリカード８１０内の、受け取ったメモリアドレスと対応するセクタへ、バッファメモリ７０９から１個のデータブロックを転送する。転送が終了すると、１データブロックの書き込みが終了したことを示す終了信号を並列制御部７０４へ出力する。
【０１５５】
リード指示とメモリアドレスとを受け取ると、カードＩＦ部７１０を介して、受け取ったメモリアドレスと対応するセクタに記憶されているデータブロックを、メモリカード８１０からバッファメモリ７０９へ転送する。転送が終了すると、１データブロックの読み出しが終了したことを示す終了信号を並列制御部７０４へ出力する。
メモリ制御部７３０と同様にして、メモリ制御部７３１〜７３３は、カードＩＦ部７１１〜７１３を介してメモリカード８１１〜８１３へのデータの入出力を制御する。
【０１５６】
（４）並列制御部７０４
並列制御部７０４は、図１８に示すように、コマンド実行部７２１、並列演算部７２２及びメモリ番号演算部７２３を含む。
並列制御部７０４の構成及び動作は、実施の形態１の並列制御部３０４の構成及び動作と類似している。従って、以下の、並列制御部７０４に関する説明において、並列制御部３０４と共通する部分については、説明を割愛し、異なる部分についてのみ、詳細に説明する。
【０１５７】
（４−１）並列演算部７２２
並列演算部の７２２は、メモリ数Ｎに代わって最大カード数Ｎｍａｘを用いて、実施の形態１の並列演算部３２２と同様の演算を行う。詳細な動作は並列演算部３２２と同様であるので説明を省略する。
（４−２）メモリ番号演算部７２３
メモリ番号演算部７２３の詳細な動作は、メモリ番号演算部３２３と同様であるので、ここでは、簡易に説明する。なお、本実施の形態において、メモリ番号「０」〜「４」は、それぞれ、メモリカード８１０〜８１３と対応している。
【０１５８】
メモリ番号演算部７２３は、コマンド実行部７２１から、先頭セクタ番号とセクタ数とを受け取りメモリ番号の算出を指示される。
メモリ番号の算出を指示されると、メモリ番号演算部７２３は、メモリ数Ｎに変わって最大メモリ数Ｎｍａｘを用いて、式４及び式５の演算を行い、メモリ番号とセクタ番号とを算出する。算出したセクタ番号とメモリ番号と、メモリ番号と対応するメモリカード上のアドレスであるメモリアドレスとを含むメモリテーブルを生成する。
【０１５９】
メモリテーブルを生成すると、コマンド実行部７２１へ、メモリ番号の演算が終了したことを示す演算終了信号を出力する。
（４−３）コマンド実行部７２１
コマンド実行部７２１は、外部機器から出力されコマンド解析部７０３により解析された各種のコマンドを受け取る。
【０１６０】
受け取ったコマンドが許容電流値を要求するものであれば、実施の形態１のコマンド実行部３２１の行う初期設定と同様の処理を行い、並列演算部７２２から並行書込数Ｎｗと並行読出数Ｎｒとの演算が正常に終了したことを示す演算終了信号を受け取る。
受け取ったコマンドがデータの書き込みを指示するライトコマンドであれば、実施の形態１のコマンド実行部３２１による＜書き込み処理＞と同様の手順で、外部機器からデータブロックを受け取り、各メモリ制御部へ書き込みを指示することにより、並行書込数Ｎｗ個のメモリカードに並行して書き込みを行う。
【０１６１】
受け取ったコマンドがデータの読み出しを指示するリードコマンドであれば、実施の携帯実施の形態１のコマンド実行部３２１による＜読み出し処理＞と同様の手順で、各メモリ制御部へデータの読み出しを指示することにより、並行読出数のメモリカードから並行して、データを読み出す。
３．３  まとめ及び効果
以上説明してきたように、本実施の形態のメモリカードドライブ７００は、接続される外部機器の許容電流値を取得し、取得した許容電流値の範囲内で並行して動作させることができるメモリカードの数を、読み出し時及び書き込み時についてそれぞれ算出する。
【０１６２】
外部機器から、ライトコマンドを受け取ると、算出した並行書込数Ｎｗ個以下のメモリカードを並行して動作させる。また、リードコマンドを受け取ると、算出した並行読出数Ｎｒ個以下のメモリカードを並行して動作させる。
このようにすることで、実施の形態１のメモリカード３００と同様に、接続される外部機器により供給可能な電流の範囲内で、可能な限り高速に読み出し及び書き込みを実行することができる。
３．４  実施の形態３の変形例
（１）実施の形態３のメモリカードドライブ７００は、実施の形態１において説明したメモリカード３００と同様に、外部機器の許容電流値Ｉｏｋの範囲内で並行して動作可能なメモリカード数Ｎｗ及びＮｒを算出し、並行して動作させるメモリカードの数をＮｗ又はＮｒ以下に制限することで、メモリカードドライブの消費電流値が、許容電流値Ｉｏｋ以下になる様に制御している。
【０１６３】
しかし、実施の形態２において説明した様に、読み出し時の動作周波数を変更することによって、消費電流値を許容電流値以下に抑えるようにしても良い。
（２）実施の形態３において、動作していないメモリカードへのクロック信号の供給を停止するとしても良い。
この場合、メモリ制御部７３０は、通常、クロック制御部７０５から受け取ったクロック信号を、メモリカード８１０へ供給していない。
【０１６４】
コマンド実行部７２１から、ライト指示とメモリ番号とを受け取ると、メモリカード８１０へクロック信号の供給を開始する。次に、バッファメモリ７０９から、メモリカード８１０へ、データブロックの転送を開始する。１データブロックの転送が終了すると、並列制御部７０４内のコマンド実行部７２１へ終了信号を出力し、メモリカード８１０へのクロック信号の供給を停止する。
【０１６５】
コマンド実行部７２１から、リード指示を受け取った場合も、同様に、データブロックの転送中のみ、メモリカード８１０へクロック信号を供給する。
メモリ制御部７３１〜７３３についても、メモリカード８１１〜８１２に対して同様の制御を行う。
このようにして、メモリカードドライブ７００は、動作中のメモリカードにのみクロック信号を供給し、動作していないメモリカードには、クロック信号の供給を停止する。
【０１６６】
メモリカード８１０〜８１３の制御部は、読み出し及び書き込みの動作を行っていない場合でも、クロック信号を受け取ると、所定の動作を行い電力を消費する。従って、書き込み及び読み出しを行わないメモリカードへのクロック信号の供給を停止することで、これらのメモリカードによる電力消費を削減することができる。
（３）上記の実施の形態において、メモリカードドライブ７００には、４枚のメモリカードが装着されて使用されるとして説明したが、４枚未満でもよい。
【０１６７】
この場合、コマンド実行部７２１は、メモリ制御部及びカードＩＦ部を介して、メモリカードの着脱を検出し、現在装着されているメモリカードの枚数ｎを記憶する。また、装着されているメモリカードとカード番号とを対応付ける。
例えば、メモリカード８１１が装着されていない場合には、メモリカード８１０とカード番号「０」、メモリカード８１２とカード番号「１」、メモリカード８１３とカード番号「３」とを対応付ける。
【０１６８】
リードコマンド又はライトコマンドを受け取ると、メモリ番号演算部７２３へ先頭セクタ番号とセクタ数と共に、装着されているメモリカードの枚数ｎを出力する。
メモリ番号演算部７２３は、Ｎｍａｘに代わって、ｎを用いてメモリテーブルを生成する。
このようにすることで、装着されるメモリカードの枚数に応じて、データの入出力の高速化を図ることができる。利用者においては、装着するメモリカードの枚数を自由に選択することができ、利便性が向上する。
４．その他の変形例
以上、本発明の実施の形態１〜３について説明してきたが、本発明はこれらに限定されるものではなく、以下に説明する変形例も含む。
【０１６９】
（１）上記の実施の形態１及び２において、メモリカード３００及び６００は４個のフラッシュメモリを搭載しているが、フラッシュメモリに限定するものではなく、他の記録素子でもよい。一例として、ＭＲＡＭ（Ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  Ｒａｎｄａｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、強誘電体メモリなどである。
（２）実施の形態３及び変形例において、メモリカードドライブ７００に装着されるメモリカードは、一例として、ＳＤメモリカード、ＡＴＡフラッシュカードなどである。
【０１７０】
（３）実施の形態３及び変形例において、メモリカードドライブ７００は、予め、装着されるメモリカードの書込消費電流値Ｉｗと読出消費電流値Ｉｒとを１個ずつ記憶しているが、種類の異なるメモリカードについて、書込消費電流値Ｉｗと読出消費電流値Ｉｒとを記憶しているとしても良い。
例えば、ＳＤメモリカードの書込消費電流値Ｉｗｓと読出消費電流値Ｉｒｓ及びＡＴＡフラッシュカードの書込消費電流値Ｉｗａと読出消費電流値Ｉｒａとを記憶しており、装着されたメモリカードの種類を判別し、書込消費電流値Ｉｗｓと読出消費電流値Ｉｒｓ、又は、書込消費電流値Ｉｗａと読出消費電流値Ｉｒａのうち何れか一方を選択して用いるとしても良い。
【０１７１】
（４）実施の形態３において、メモリカードドライブ７００は、外部機器に外付けされているが、外部機器に内蔵されているとしても良い。
（５）上記の実施の形態２において、クロック制御部６０５はＰＬＬを用いて、周波数を変更しているが、ＰＬＬに代わって周波数分周器を用いても良い。
（６）上記の実施の形態１及び２では、それぞれ、並行動作するフラッシュメモリの個数、フラッシュメモリの動作周波数を変更することで、メモリカード３００又は６００の消費電流を調整しているが、これらを組み合わせて、並行動作するフラッシュメモリの個数及びフラッシュメモリの動作周波数の両方を変更するとしてもよい。
【０１７２】
（７）本発明は、上記の実施の形態１〜３及び変形例を実行する方法であってもよい。
（８）また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ―ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
【０１７３】
また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。
【０１７４】
また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記プログラム又は前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
（９）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【産業上の利用可能性】
【０１７５】
本発明は、各種のデジタルデータを記録媒体に書き込み及び読み出しをする入出力装置及び記録媒体を生産する産業、前記入出力装置を解して記録媒体にアクセスする電気機器を製造する産業、前記電気機器、記録装置、記録媒体を利用して、各種のデジタルデータを生成し、加工し、記録し、販売する産業において、経営的に、また継続的及び反復的に使用することができる。
【図面の簡単な説明】
【０１７６】
【図１】メモリカード３００の使用例を示す。
【図２】ビデオカメラ２００の構成を示すブロック図である。
【図３】ＰＣ１００の構成を示すブロック図である。
【図４】ＰＣ１００とメモリカード３００との間で授受されるＡＴＡコマンドの構成の一例を示す。
【図５】メモリカード３００の構成を示すブロック図である。
【図６】並列制御部３０４の構成を示すブロック図である。
【図７】メモリカード３００装着時の、メモリカード３００及びＰＣ１００の動作を示すフローチャートである。
【図８】メモリカード３００及びＰＣ１００のデータの書き込み動作を示すフローチャートである。
【図９】メモリカード３００及びＰＣ１００のデータの書き込み動作を示すフローチャートである。図８から続く。
【図１０】メモリカード３００へデータを書き込む際の各フラッシュメモリの動作を示すタイムチャートである。
【図１１】実施の形態２のメモリカード６００の構成を示すブロック図である。
【図１２】並列制御部６０４の構成を示すブロック図である。
【図１３】メモリカード６００装着時の、メモリカード６００及びＰＣ１００の動作を示すフローチャートである。
【図１４】メモリカード６００及びＰＣ１００のデータの読み出し動作を示すフローチャートである。
【図１５】メモリカード６００及びＰＣ１００のデータの読み出し動作を示すタイムチャートである。
【図１６】メモリカードドライブ７００の使用例を示す。
【図１７】メモリカードドライブ７００の構成を示すブロック図である。
【図１８】並列制御部７０４の構成を示すブロック図である。
【符号の説明】
【０１７７】
１００    ＰＣ
２００    ビデオカメラ
３００    メモリカード
３０１    外部ＩＦ部
３０２    制御部
３０３    コマンド解析部
３０４    並列制御部
３０５    クロック制御部
３０８    制御情報記憶部
３０９    バッファメモリ
３１０〜３１３    フラッシュメモリ
３２１    コマンド実行部
６００    メモリカード
７００    メモリカードドライブ
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2005057475.tif 000021
【図２】
2005057475.tif 000022
【図３】
2005057475.tif 000023
【図４】
2005057475.tif 000024
【図５】
2005057475.tif 000025
【図６】
2005057475.tif 000026
【図７】
2005057475.tif 000027
【図８】
2005057475.tif 000028
【図９】
2005057475.tif 000029
【図１０】
2005057475.tif 000030
【図１１】
2005057475.tif 000031
【図１２】
2005057475.tif 000032
【図１３】
2005057475.tif 000033
【図１４】
2005057475.tif 000034
【図１５】
2005057475.tif 000035
【図１６】
2005057475.tif 000036
【図１７】
2005057475.tif 000037
【図１８】
2005057475.tif 000038
【国際調査報告】
2005057475.tif 000039
2005057475.tif 000040