(57)【特許請求の範囲】
【請求項１】
ホストからのコマンドを識別して前記コマンドの識別情報をコマンド識別信号として出力するためのコマンド識別部、を含み、前記ホストとの間で前記コマンドとデータとを通信するためのホストインタフェース；
前記データを記憶するための記憶素子；
前記コマンドに応じて前記データを、前記記憶素子へ書き込み、及び、前記記憶素子から読み出す、ためのデータ入出力処理を行う記憶素子制御部；
設定周波数のクロック信号を前記記憶素子制御部へ与えるためのクロック生成部；及び、
前記コマンド識別信号に応じて前記設定周波数を決定し、前記記憶素子制御部が前記記憶素子に対してデータ入出力処理するときの前記設定周波数を、前記記憶素子制御部が前記記憶素子に対してデータ入出力処理しないときの前記設定周波数より高く設定するためのクロック周波数決定部；を有する記憶装置。
【請求項２】
ホストからの転送クロックの周波数を検出するための転送クロック検出部、を含み、前記ホストとの間でコマンドとデータとを通信するためのホストインタフェース；
前記データを記憶するための記憶素子；
前記コマンドに応じて前記データを、前記記憶素子へ書き込み、及び、前記記憶素子から読み出す、ための記憶素子制御部；
設定周波数のクロック信号を前記記憶素子制御部へ与えるためのクロック生成部；及び、
前記転送クロックの周波数に応じて前記設定周波数を決定するためのクロック周波数決定部；を有する記憶装置。
【請求項３】
ホストのアクセスが可能となってから、ホストからコマンドが入力されるまでの時間間隔を検出し、検出された時間間隔をコマンド時間間隔情報として出力するコマンド間隔検出部、を含み、前記ホストとの間で前記コマンドとデータとを通信するためのホストインタフェース；
前記データを記憶するための記憶素子；
前記コマンドに応じて前記データを、前記記憶素子へ書き込み、及び、前記記憶素子から読み出す、ための記憶素子制御部；
設定周波数のクロック信号を前記記憶素子制御部へ与えるためのクロック生成部；及び、
前記コマンド間隔検出部からの前記時間間隔が小さくなるよう、前記コマンドの入力の時間間隔に応じて前記設定周波数を決定するためのクロック周波数決定部；を有する記憶装置。
【請求項４】
前記記憶素子がフラッシュメモリであり、前記記憶素子制御部が前記記憶素子に記憶されたデータの消去を制御する、請求項１から３までのいずれか一項に記載の記憶装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は半導体記憶素子を含む記憶装置に関し、特にその入出力処理のクロック制御に関する。
【０００２】
【従来の技術】
ノートパソコン、携帯情報端末(ＰＤＡ)及びディジタルカメラ等の携帯型情報処理機器はディジタルデータを記録媒体に記録する。その記録媒体としては、画像データ等の多量のデータを単体で長時間安定に保持できるものが望ましい。
更に、携帯型情報処理機器は長時間、電池等の内部電源だけで使用される。従って、上記の記録媒体として、データの入出力及び保持に必要な電力を小さく抑えるものが望ましい。
その上、携帯型情報処理機器で扱われるデータは、他の様々な情報処理機器間で交換される。例えば、ディジタルカメラで撮影された画像データはプリンタで印刷され、パソコンでディジタル処理され、携帯電話で伝送され、又は、テレビ画面に映し出される。従って、上記の記録媒体として、様々な情報処理機器間で共用できるものが望ましい。
【０００３】
上記の要求に応える記録媒体として、従来のフレキシブルディスク、ハードディスク及び光ディスク等と共に、半導体記憶素子が多用されている。特に、ＰＣカードのようにフラッシュメモリ内蔵のカード型記録媒体(以下、フラッシュメモリカードという)が代表的である。
フラッシュメモリカードは、情報処理機器に設けられた専用のスロットに差し込まれ、その情報処理機器とデータを交換する。共通の規格によるスロットを持つ情報処理機器同士は、同一のフラッシュメモリカードでデータを共用できる。
【０００４】
図8は、従来のフラッシュメモリカード100と情報処理機器(以下、ホストという)Hとによるデータ交換の一例を示すブロック図である。
フラッシュメモリカード100はホストHと、例えば、データラインDAT、クロックラインCLK、電源ラインVDD、グラウンドラインVSS及びコマンドラインCMDの5種類のラインで接続される。
【０００５】
ホストインタフェース101はコマンドラインCMDを通じてホストHからのコマンドを受信し、解読する。例えば、そのコマンドがデータの読み出し命令である時、ホストインタフェース101はフラッシュメモリ3からデータを読み出す。その時、フラッシュメモリ制御部2はデータをフラッシュメモリ3からバッファ1bへ、クロック信号CLK2に同期して転送する。更に、ホストインタフェース101はバッファ1b内のデータをホストHへ、クロックラインCLKからの転送クロックに同期してデータラインDATを通じて転送する。
【０００６】
ホストHからのコマンドがデータの書き込み命令である時、ホストインタフェース101はデータラインDATからデータを読み出す。その時、データはクロックラインCLKからの転送クロックに同期して、バッファ1bへ蓄積される。更に、ホストインタフェース101はバッファ1b内のデータをフラッシュメモリ3へ書き込む。その時、フラッシュメモリ制御部2はデータをバッファ1bからフラッシュメモリ3へ、クロック信号CLK2に同期して転送する。
【０００７】
フラッシュメモリ制御部2は、ホストインタフェース101とフラッシュメモリ3との間で、データの入出力処理を制御する。その入出力処理はクロック信号CLK2に同期して行われる。
クロック生成部4は、クロック制御部50からの起動信号STRにより起動し、停止信号STPにより停止する。つまり、クロック制御部50による起動信号STRの出力から停止信号STPの出力までの間、クロック生成部4は一定周波数のクロック信号CLK2を生成する。更に、そのクロック信号CLK2に同期してフラッシュメモリ制御部2は動作する。
【０００８】
クロック制御部50はホストインタフェース101内のコマンド検出部101aから、ホストインタフェース101によるコマンドの受信ごとにコマンド検出信号CDTを入力する。クロック制御部50はコマンド検出信号CDTの入力ごとに起動信号STRを出力する。それと同時に、内部のカウンタ(図示せず)により一定のスタンバイ移行時間をカウントする。そのカウント中に新たなコマンド検出信号CDTを入力した時、クロック制御部50はカウント値をリセットし、スタンバイ移行時間をカウントし直す。新たなコマンド検出信号CDTの入力前にスタンバイ移行時間をカウントし終えた時、クロック制御部50は停止信号STPを出力する。
【０００９】
従来のフラッシュメモリカード100ではクロック制御部50の上記の動作により、新たなコマンドを一定のスタンバイ移行時間入力しない時、クロック生成部4が停止する。それにより、クロック信号CLK2の生成による消費電力が低減する。
【００１０】
【発明が解決しようとする課題】
携帯型情報処理機器は、更に小型でかつ軽量であることを望まれている。従って、内蔵電池の容量が制限されるので消費電力を更に削減しなければならない。
その反面、携帯型情報処理機器は、更に多量のデータの処理を望まれている。従って、データ処理の効率、例えば処理速度を向上しなければならない。
【００１１】
上記のフラッシュメモリカード100での消費電力の削減には例えば、フラッシュメモリ制御部2によるデータ処理の終了時、速やかにクロック信号CLK2の生成を停止し、すなわちスタンバイ状態に移行することが望ましい。つまり、スタンバイ移行時間の短縮が望ましい。それにより、フラッシュメモリ制御部2がデータ処理を行っていない時にクロック信号CLK2が生成されている状態(アイドル状態)の時間(アイドル時間)を削減できる。その結果、クロック信号CLK2の生成による消費電力が低減する。
【００１２】
しかし、クロック生成部4及びフラッシュメモリ制御部2の起動はそれぞれ所定の時間を要する。従って、コマンドに対するフラッシュメモリカード100の応答速度は、アイドル状態に比べてスタンバイ状態で遅い。一方、スタンバイ移行時間が短かいほど、フラッシュメモリカード100はコマンドの入力時、スタンバイ状態でありやすい。それ故、スタンバイ移行時間が短いほど、フラッシュメモリカード100へのデータの記録速度及び再生速度が減少する。つまり、従来のフラッシュメモリカード100では、スタンバイ移行時間の短縮とデータ処理速度の減少とが、いわゆるトレードオフの関係にあった。従って、スタンバイ移行時間の短縮によるアイドル時間の削減では、消費電力の十分な削減と、一定値以上のデータ処理速度の維持と、の両立が困難であった。
【００１３】
本発明は、クロック信号の生成による消費電力を削減し、かつ、データ処理速度を向上した記憶装置、の提供を目的とする。
【００１４】
【課題を解決するための手段】
本発明の一つの観点による記憶装置は、(A) ホストからのコマンドを識別して前記コマンドの識別情報をコマンド識別信号として出力するためのコマンド識別部、を含み、前記ホストとの間で前記コマンドとデータとを通信するためのホストインタフェース；(B) 前記データを記憶するための記憶素子；(C) 前記コマンドに応じて前記データを、前記記憶素子へ書き込み、及び、前記記憶素子から読み出す、ためのデータ入出力処理を行う記憶素子制御部；(D) 設定周波数のクロック信号を前記記憶素子制御部へ与えるためのクロック生成部；及び、(E) 前記コマンド識別信号に応じて前記設定周波数を決定し、前記記憶素子制御部が前記記憶素子に対してデータ入出力処理するときの前記設定周波数を、前記記憶素子制御部が前記記憶素子に対してデータ入出力処理しないときの前記設定周波数より高く設定するためのクロック周波数決定部；を有する。
【００１５】
上記の記憶装置では、ホストからのコマンドが識別され、そのコマンド識別情報に応じてクロック信号の設定周波数が決定される。それにより、記憶素子制御部のデータ処理速度をコマンドごとに変化できる。
【００１６】
例えば、ホストが上記の記憶装置でのクロック信号の設定周波数を、特定のコマンドにより指定しても良い。その特定のコマンドは例えば、ホストの種類等のホストについての情報、又は、データ転送速度等のホストとの間の通信についての情報、を示すものであっても良い。特定のコマンドはそのパラメータの中に、クロック信号の設定周波数の最適値を含んでも良い。
【００１７】
上記の記憶装置ではクロック信号の設定周波数がホストからのコマンドを通じて、例えばホストの種類に応じて次のように決定される：  例えば、ディジタルビデオカメラ等、高速なデータ処理を必要とするホストに対してはクロック信号の設定周波数が高く決定される。一方、ディジタルスチルカメラ等、データの処理速度より消費電力の低減を重視するホストに対してはクロック信号の設定周波数が低く決定される。こうして、上記の記憶装置では、クロック信号の設定周波数がホストの種類に応じて最適値に決定される。その結果、ホストの種類に応じて、記憶素子制御部によるデータ処理速度と、クロック信号の生成による消費電力と、を最適に調節できる。
【００１８】
更に、ホストが、例えば上記の記憶装置との通信でデータ転送速度を設定する時、上記の記憶装置に対してクロック信号の設定周波数を、データ転送速度に合わせて最適値に指定できる。こうして、上記の記憶装置では、クロック信号の設定周波数がホストとのデータ転送速度に応じて最適値に決定される。その結果、上記の記憶装置では、ホストとの間でのデータ転送速度に応じて、記憶素子制御部によるデータ処理速度と、クロック信号の生成による消費電力と、を最適に調節できる。
【００１９】
ホストからの特定のコマンドの他に、上記の記憶装置は通常のコマンドに応じて、クロック信号の設定周波数を決定しても良い。
例えば、ホストからの書き込み命令及び読み出し命令に対してクロック信号の設定周波数を高く決定しても良い。その時、記憶素子制御部のデータ処理速度は大きい。その結果、データの記録速度及び再生速度が大きい。
一方、ホストによる記憶装置の認識に必要なデータ(例えば記憶装置の動作条件又は属性等)の出力命令又はアドレスの指定命令に対してクロック信号の設定周波数を低く決定しても良い。その時、記憶素子制御部のデータ処理速度は小さい。しかし、上記のコマンドに対する応答処理は、記憶素子制御部によるデータ処理を実質的には必要としない。従って、上記のコマンドに対する応答処理の速度は実質的には変わらない。更に、クロック信号の周波数が低いので、クロック信号の生成による消費電力が低減する。
こうして、上記の記憶装置は通常のコマンドに対する応答処理に応じて、記憶素子制御部によるデータ処理速度と、クロック信号の生成による消費電力と、を最適に調節できる。
【００２０】
本発明の別な観点による記憶装置は、
(A)  ホストからの転送クロックの周波数を検出するための転送クロック検出部、を含み、前記ホストとの間でコマンドとデータとを通信するためのホストインタフェース；
(B)  前記データを記憶するための記憶素子；
(C)  前記コマンドに応じて前記データを、前記記憶素子へ書き込み、及び、前記記憶素子から読み出す、ための記憶素子制御部；
(D)  設定周波数のクロック信号を前記記憶素子制御部へ与えるためのクロック生成部；及び、
(E)  前記転送クロックの周波数に応じて前記設定周波数を決定するためのクロック周波数決定部；
を有する。
【００２１】
ホストと上記の記憶装置との間でのデータ転送時、ホストからの転送クロックの周波数は高い。一方、それ以外の時、転送クロックの周波数は低い。上記の記憶装置はそのような転送クロックの周波数の変化に合わせて、クロック信号の設定周波数を変化させる。それにより、転送クロックの周波数が高い時、クロック信号の設定周波数が高い。従って、記憶素子制御部のデータ処理速度が大きい。逆に、転送クロックの周波数が低い時、クロック信号の設定周波数が低い。従って、クロック信号の生成による消費電力が小さい。こうして、上記の記憶装置はホストからの転送クロックの周波数に基づいて、記憶素子制御部によるデータ処理速度と、クロック信号の生成による消費電力と、を最適に調節できる。
【００２２】
本発明の更に別な観点による記憶装置は、(A) ホストのアクセスが可能となってから、ホストからコマンドが入力されるまでの時間間隔を検出し、検出された時間間隔をコマンド時間間隔情報として出力するコマンド間隔検出部、を含み、前記ホストとの間で前記コマンドとデータとを通信するためのホストインタフェース；(B) 前記データを記憶するための記憶素子；(C) 前記コマンドに応じて前記データを、前記記憶素子へ書き込み、及び、前記記憶素子から読み出す、ための記憶素子制御部；(D) 設定周波数のクロック信号を前記記憶素子制御部へ与えるためのクロック生成部；及び、(E) 前記コマンド間隔検出部からの前記時間間隔が小さくなるよう、前記コマンドの入力の時間間隔に応じて前記設定周波数を決定するためのクロック周波数決定部；を有する。
【００２３】
上記の記憶装置はホストからのコマンド入力(アクセス)の時間間隔を計測し、その時間間隔に応じてクロック信号の設定周波数を、次のように決定する：  コマンド入力の時間間隔が長い時、クロック信号の設定周波数を低く設定する。それにより、記憶素子制御部のデータ処理速度が減少するので、データ処理終了時から次のコマンド入力までの時間(アイドル時間)が短縮する。従って、アイドル時間でのクロック信号の生成による消費電力が削減される。
逆に、コマンド入力の時間間隔が短い時、クロック信号の設定周波数を高く設定する。それにより、記憶素子制御部のデータ処理速度が増加するので、コマンドに対する記憶装置の応答速度が増加する。こうして、上記の記憶装置は、ホストからのコマンド入力の時間間隔に基づいて、記憶素子制御部によるデータ処理速度と、クロック信号の生成による消費電力と、を最適に調節できる。
【００２４】
上記の記憶装置では、前記記憶素子がフラッシュメモリであり、前記記憶素子制御部が前記記憶素子に記憶されたデータの消去を制御しても良い。フラッシュメモリはデータを、実質的な電力消費なしで長時間安定に保持できる。従って、特に携帯型情報処理機器用の記憶素子として好ましい。
更に、記憶素子制御部はフラッシュメモリ内のデータをブロックごとに一括消去し、新たなデータを書き込み得る。従って、上記の記憶装置は記憶素子のデータを書き換え得る。
【００２５】
【発明の実施の形態】
以下、本発明の最適な実施の形態について、その好ましい実施例を挙げて、図面を参照しつつ説明する。以下に述べる実施例はいずれもフラッシュメモリカードについて本発明を実施した例である。
【００２６】
フラッシュメモリカードは内部にフラッシュＥＥＰＲＯＭ(一括消去型電気的消去及び書き込み可能な不揮発性メモリ：以下、フラッシュメモリという)を含み、それらにデータを書き換え可能に記録できる。フラッシュメモリカードは通常数十mm×数十mm×数mm程度のサイズの小型カードであり、主に、携帯電話、携帯型オーディオプレーヤ、ディジタルカメラ及びディジタルビデオカメラ等の携帯型情報処理機器で記録媒体として用いられる。
【００２７】
《実施例１》
図1は、本発明の実施例１によるフラッシュメモリカード10とホストHとによるデータ交換を示すブロック図である。
フラッシュメモリカード10はホストHと次の5種類のラインで接続される。それらのラインは、複数本のデータラインDAT、クロックラインCLK、電源ラインVDD、グラウンドラインVSS、及び、コマンドラインCMD、を含む。
【００２８】
ホストインタフェース1は上記の複数種のラインを通してホストHと直接通信を行うための回路である。ホストインタフェース1は、コマンドラインCMDを通じてホストHからのコマンドを受信し、解読する。その後、コマンドに応じて以下の応答処理を行う。
【００２９】
ホストHからのコマンドには、次のようなホストHによるフラッシュメモリカード10の認識に関するものがある。それらは例えば、(a)  フラッシュメモリカード10の動作電圧等の動作条件を出力させ、又は指定するためのもの、(b)  フラッシュメモリカード10の属性を出力させるためのもの、及び、(c)  フラッシュメモリカード10のアドレスを指定するためのもの、を含む。これらのコマンドに対する応答はフラッシュメモリ3へのデータの入出力を要さないので、ホストインタフェース1だけで処理される。その処理動作は、クロックラインCLKからの転送クロックに同期して行われる。
【００３０】
ホストHからのコマンドがフラッシュメモリ3からのデータの読み出し命令である時、ホストインタフェース1はフラッシュメモリ制御部2へ、フラッシュメモリ3からデータを読み出すよう指示する。フラッシュメモリ制御部2はその指示に従って、フラッシュメモリ3からホストインタフェース1内のバッファ1bへデータを転送する。その転送は、クロック生成部4からのクロック信号CLK2に同期して行われる。ここで、バッファ1bはデータを一時記憶するための半導体メモリであり、好ましくはＳＲＡＭである。
ホストインタフェース1はバッファ1b内のデータをシリアル信号に変換し、データラインDATを通してホストHへ転送する。その転送は、クロックラインCLKからの転送クロックに同期して行われる。
【００３１】
ホストHからのコマンドがフラッシュメモリ3へのデータの書き込み命令である時、ホストインタフェース1はデータラインDATからシリアル信号を1バイトずつ読み出してパラレル信号に変換する。更に、そのパラレル信号をバッファ1bへ一時記憶する。それらの動作は、クロックラインCLKからの転送クロックに同期して行われる。更に、ホストインタフェース1はフラッシュメモリ制御部2へ、バッファ1b内のデータをフラッシュメモリ3へ書き込むよう指示する。フラッシュメモリ制御部2はその指示に従ってバッファ1bのデータをフラッシュメモリ3へ転送する。その転送は、クロック生成部4からのクロック信号CLK2に同期して行われる。
【００３２】
ホストHからのコマンドがフラッシュメモリ3内のデータの消去命令である時、ホストインタフェース1はフラッシュメモリ制御部2へ、フラッシュメモリ3の所定のブロックについて消去を行うよう指示する。
【００３３】
ホストインタフェース1はコマンド識別部1aを含む。コマンド識別部1aはコマンドラインCMDに接続され、ホストHからのコマンドを検出する。それにより、フラッシュメモリカード10の認識に関するコマンド、書き込み命令、読み出し命令及び消去命令等のコマンドの種類を識別し、コマンド識別情報を作成する。コマンド識別情報は例えば、コマンドの種類ごとに対応づけられた所定のデータ列である。コマンド識別部1aはコマンド識別情報を、コマンド識別信号IDによりクロック制御部5へ出力する。コマンド識別部1aによる上記の動作は、クロックラインCLKからの転送クロックに同期して行われる。
【００３４】
フラッシュメモリ制御部2はホストインタフェース1とフラッシュメモリ3との間でのデータの入出力処理を制御する。その入出力処理はクロック生成部4からのクロック信号CLK2に同期して行われる。フラッシュメモリ制御部2は特に、ホストインタフェース1からの指示に従って所定のデータを、バッファ1bからフラッシュメモリ3へ書き込み、及び、フラッシュメモリ3からバッファ1bへ読み出す。更に、フラッシュメモリ3内のデータをブロックごとに一括消去する。
【００３５】
フラッシュメモリ3は上記の通りフラッシュＥＥＰＲＯＭであり、記憶したデータを実質的な消費電力なしで長時間安定に保持する。フラッシュメモリ3に対するデータの書き込み／読み出しは1バイトずつ実行される。一方、データの消去はブロックごとに一括して実行される。
【００３６】
クロック生成部4はクロック信号CLK2を生成する。本発明の実施例１では従来のメモリカードとは異なり、クロック生成部4がクロック信号CLK2の周波数を変化できる。クロック信号CLK2の周波数は設定周波数fに設定される。設定周波数fの値はクロック周波数決定部5により指示される。クロック生成部4はクロック信号CLK2を、転送クロックCLKとは独立に生成する。それにより、転送クロックCLKの誤差に関係なく、クロック信号CLK2は実質上一定周波数に安定に維持される。
【００３７】
クロック生成部4はクロック信号CLK2を主にフラッシュメモリ制御部2へ供給する。フラッシュメモリ制御部2はフラッシュメモリ3に対するデータの書き込み、読み出し及び消去をクロック信号CLK2に同期して実行する。クロック信号CLK2は転送クロックCLKとは独立であるので、フラッシュメモリ制御部2による上記の動作は、ホストインタフェース1による通信と並列に行われる。
【００３８】
クロック周波数決定部5はホストインタフェース1内のコマンド識別部1aからコマンド識別信号IDを入力し、そのコマンド識別信号IDからコマンド識別情報を解読する。更に、クロック周波数決定部5はコマンド識別情報に応じてクロック信号CLK2の設定周波数fを、例えば次のように決定する：  まず、コマンドとその応答処理時の最適なクロック周波数との対応表を、クロック周波数決定部5に予め記憶させておく。次に、クロック周波数決定部5はその対応表を参照し、コマンド識別情報により示されるコマンドに対応したクロック周波数を選択する。その時、選択されたクロック周波数が設定周波数fとして決定され、所定の信号によりクロック生成部4へ伝達される。
【００３９】
上記のコマンドとクロック周波数との対応表では、書き込み命令及び読み出し命令等フラッシュメモリ制御部2の動作を必要とするコマンドについて、クロック周波数は最高値に設定され、例えば数十MHz程度である。その最高値は転送クロックの周波数に等しい。その他のコマンドについてクロック周波数は0から最高値までの範囲で最適に設定される。その最適値は、コマンドに対する応答処理時の消費電力、フラッシュメモリ3のデータ書き込み速度／読み出し速度、及び、クロック生成部4によるクロック周波数の上昇に要する時間に依存して決定される。
【００４０】
実施例１では特に、ホストHがコマンドの種類により設定周波数fを、次のように決定しても良い：  例えば、書き込み命令についてコマンドを複数種類用意する。更に、上記のコマンドとクロック周波数との対応表に、書き込み命令のそれぞれの種類ごとに別のクロック周波数を対応させた項目を追加しておく。ホストHは書き込み命令を出力する時、決定すべきクロック周波数に対応した種類のコマンドを選択する。クロック周波数決定部5は上記の対応表を参照し、書き込み命令を示すコマンドの種類に応じて設定周波数fを決定する。こうして、ホストHがクロック信号CLK2の設定周波数fを決定できる。
【００４１】
その他に、ホストHがコマンドのパラメータにより設定周波数fの値を直接指定しても良い。その時、コマンド識別部1aはそのコマンドのパラメータをコマンド識別情報IDとしてクロック周波数決定部5へ出力する。クロック周波数決定部5はコマンド識別情報IDから設定周波数fの値を解読して、クロック生成部4へ出力する。こうしても、ホストHがクロック信号CLK2の設定周波数fを決定できる。
【００４２】
図2はホストHからのコマンドC1〜C5、コマンド識別信号ID及びクロック信号CLK2のタイミングチャートである。図2では、ホストHから5つのコマンドC1〜C5が順に入力される場合を示す。コマンドC1〜C5の内、最初の二つ第一のコマンドC1と第二のコマンドC2、及び最後の第五のコマンドC5はフラッシュメモリ3に対する書き込み命令である。残りの二つ、第三のコマンドC3及び第四のコマンドC4は、ホストHによるフラッシュメモリカード10の認識に関する命令である。
【００４３】
ホストインタフェース1への第一のコマンドC1の入力時、コマンド識別部1aは第一のコマンドC1についてコマンド識別信号IDを出力する。それにより、クロック周波数決定部5は、第一のコマンドC1に対応する第一のクロック周波数f1を設定周波数fとして決定する。その時、第一のクロック周波数f1は設定周波数fの最高値である。クロック生成部4は第一のクロック周波数f1のクロック信号CLK2を生成する。フラッシュメモリ制御部2はそのクロック信号CLK2に同期して実質的に最大のデータ処理速度で動作し、ホストインタフェース1内のバッファ1bからフラッシュメモリ3へデータを転送する。
【００４４】
続いて、第二のコマンドC2がホストインタフェース1へ入力される。コマンド識別部1aは第一のコマンドC1の時と同様に、コマンド識別信号IDを出力する。それにより、クロック周波数決定部5は第一のコマンドC1と同じく、第二のコマンドC2に対応する第一のクロック周波数f1を設定周波数fとして決定する。従って、クロック生成部4はクロック信号CLK2を第一のクロック周波数f1で生成し続ける。フラッシュメモリ制御部2は実質的に最大のデータ処理速度で、ホストインタフェース1内のバッファ1bからフラッシュメモリ3へのデータ転送を継続する。
【００４５】
更に、第三のコマンドC3がホストインタフェース1へ入力される。コマンド識別部1aは第三のコマンドC3についてコマンド識別信号IDを出力する。それにより、クロック周波数決定部5は、第三のコマンドC3に対応する第二のクロック周波数f2を設定周波数fとして決定する。クロック生成部4は第二のクロック周波数f2のクロック信号CLK2を生成する。ここで、第二のクロック周波数f2は第一のクロック周波数f1に比べて十分に低い。
【００４６】
第三のコマンドC3に対する応答ではフラッシュメモリ3に対するデータの入出力処理は必要ないので、フラッシュメモリ制御部2は実質的に動作しない。従って、クロック信号CLK2の周波数が第一のクロック周波数f1から第二のクロック周波数f2へ変化しても、コマンドに対する応答速度は実質的には変化しない。一方、クロック生成部4による消費電力は、クロック信号CLK2を第二のクロック周波数f2で生成する時、第一のクロック周波数f1で生成する時より小さい。従って、第三のコマンドC3に対する応答では、その応答速度を維持しつつ、クロック信号CLK2の生成による消費電力を低減できる。
【００４７】
ホストインタフェース1へ第四のコマンドC4が入力される。コマンド識別部1aは第四のコマンドC4についてコマンド識別信号IDを出力する。それにより、クロック周波数決定部5は第三のコマンドC3の時と同様に、第二のクロック周波数f2を設定周波数fとして決定する。従って、クロック生成部4はクロック信号CLK2を第二のクロック周波数f2で生成し続ける。
【００４８】
第四のコマンドC4に続いて第五のコマンドC5がホストインタフェース1へ入力される。コマンド識別部1aは第五のコマンドC5についてコマンド識別信号IDを出力する。それにより、クロック周波数決定部5は、第五のコマンドC5に対応する第一のクロック周波数f1を設定周波数fとして決定する。クロック生成部4は第一のクロック周波数f1のクロック信号CLK2を生成する。フラッシュメモリ制御部2はそのクロック信号CLK2に同期して実質的に最大のデータ処理速度で動作し、ホストインタフェース1内のバッファ1bからフラッシュメモリ3へデータを転送する。
【００４９】
上記の通り、実施例１によるフラッシュメモリカード10では、応答にフラッシュメモリ制御部2の動作を要するコマンドの入力時、クロック信号CLK2の周波数が最高の第一のクロック周波数f1である。従って、その時、コマンドに対する応答速度は最大である。一方、応答にフラッシュメモリ制御部2の動作を要しないコマンドの入力時、クロック信号CLK2の周波数が第二のクロック周波数f2のように、第一のクロック周波数f1より低い値である。その時、コマンドに対する応答処理は主にホストインタフェース1だけにより行われるので、その応答速度は実質的には変化しない。一方、その応答時、クロック信号CLK2の周波数が第一のクロック周波数f1より低い。それ故、クロック信号CLK2の生成による消費電力が小さい。
【００５０】
以上の説明から明らかなように、実施例１によるフラッシュメモリカードでは従来のものとは異なり、クロック生成部4により生成されるクロック信号CLK2の周波数をコマンドに応じて変化できる。その結果、コマンドに応じてデータ処理速度及び消費電力をそれぞれ最適値に調節できるので、データ処理速度を高速に維持しつつ、消費電力を削減できる。
【００５１】
《実施例２》
図3は、本発明の実施例２によるフラッシュメモリカード10AとホストHとによるデータ交換を示すブロック図である。実施例２によるフラッシュメモリカード10Aは実施例１のもの10と比べ、ホストインタフェース1A及びクロック周波数決定部5Aについて異なる。それ以外の構成は実施例１と同様であるので、図3では同じ符号を付している。更に、それらの同様な構成についての説明は、実施例１のものを援用する。
【００５２】
ホストインタフェース1Aの転送クロック検出部1cはクロックラインCLKに接続され、ホストHからの転送クロックの周波数ftを検出する。更に、転送クロック検出部1cは検出した転送クロックの周波数ftについての情報をクロック周波数決定部5Aへ出力する。
【００５３】
クロック周波数決定部5Aは転送クロック検出部1cから転送クロックの周波数ftについての情報を入力する。それにより、転送クロックの周波数ftに応じてクロック信号CLK2に対する設定周波数fを決定する。
図4は、ホストHからのコマンドC1〜C5、コマンド識別信号ID、クロックラインCLKからの転送クロック及びクロック信号CLK2のタイミングチャートである。実施例２では、設定周波数fが転送クロックの周波数ftと実質的に等しい。
【００５４】
ホストHとフラッシュメモリカード10Aとの間でフラッシュメモリ3に対する書き込み／読み出し用のデータが転送される時、転送クロックの周波数ftは一般に最高値(数十MHz程度)である。それ以外の時、転送クロックの周波数ftは最高値より低く、最低値0まで下がり得る。従って、上記のように設定周波数fを転送クロックの周波数ftと等しく設定する。それにより、ホストHとフラッシュメモリカード10Aとの間でフラッシュメモリ3に対する書き込み／読み出し用のデータが転送される時、フラッシュメモリ制御部2のデータ処理速度が最大である。一方、それ以外の時、クロック信号CLK2の生成による消費電力が低減する。こうして、実施例２によるフラッシュメモリカード10Aは、転送クロックの周波数ftに合わせてクロック信号CLK2の周波数を決定する。その結果、フラッシュメモリ制御部2のデータ処理速度を高速に維持しつつ、クロック信号CLK2の生成による消費電力を削減できる。
【００５５】
実施例２ではクロック信号CLK2の設定周波数fを転送クロックの周波数ftと実質的に等しく決定した。その他に、設定周波数fを転送クロックの周波数ftに比例するように決定しても良い。
【００５６】
《実施例３》
図5は、本発明の実施例３によるフラッシュメモリカード10BとホストHとによるデータ交換を示すブロック図である。実施例３によるフラッシュメモリカード10Bは実施例１のもの10と比べ、ホストインタフェース1B及びクロック周波数決定部5Bについて異なる。それ以外の構成は実施例１と同様であるので、図5では同じ符号を付している。更に、それらの同様な構成についての説明は、実施例１のものを援用する。
【００５７】
フラッシュメモリ制御部2による一連の動作(一連のデータの書き込み／読み出し)の実行時、ホストインタフェース1BはコマンドラインCMDを通じて、所定のアクセス許可信号BSYをホストHへ出力する。アクセス許可信号BSYは高電位(Ｈレベル)と低電位(Ｌレベル)との二値を取り得る。アクセス許可信号BSYがＨレベルである時、ホストHはフラッシュメモリカード10Bへアクセスできない。逆に、アクセス許可信号BSYがＬレベルである時、ホストHはフラッシュメモリカード10Bへアクセスできる。
【００５８】
ホストインタフェース1Bのコマンド間隔検出部1dはコマンドラインCMDに接続され、ホストHからのコマンド入力のタイミングを検出する。それにより、コマンド間隔検出部1dは、アクセス許可信号BSYのＨレベルからＬレベルへの切り替わり時から次のコマンド入力までの時間間隔ΔTを計測する。その計測については後述する。コマンド間隔検出部1dは、上記の時間間隔ΔTをコマンド時間間隔情報Gとして、クロック周波数決定部5Bへ出力する。
【００５９】
クロック周波数決定部5Bはコマンド時間間隔情報Gを解読し、時間間隔ΔTに基づいてクロック信号CLK2の設定周波数fを決定する。特に、時間間隔ΔTが0となるように、設定周波数fを以下のように調整する。
【００６０】
図6はホストHからのコマンドC1〜C4、アクセス許可信号BSY及びクロック信号CLK2のタイミングチャートである。図6では、ホストHから第一のコマンドC1、第二のコマンドC2、第三のコマンドC3及び第四のコマンドC4が順に、一定の時間間隔で入力される。更に、第一のコマンドC1から第四のコマンドC4までのそれぞれに対する応答処理時、アクセス許可信号BSYが一定のクロック数に相当する時間だけＨレベルである。
【００６１】
図6では、第一のコマンドC1の入力時、クロック信号CLK2の設定周波数fは第一の周波数f1に決定されている。第一のコマンドC1の入力後、アクセス許可信号BSYは一旦、Ｈレベルに切り替わる。一定のクロック数に相当する時間の経過後、アクセス許可信号BSYは再びＬレベルに戻る。アクセス許可信号BSYがＬレベルに戻ってから第一の時間間隔ΔT1の経過時、第二のコマンドC2が入力される。
【００６２】
第一の時間間隔ΔT1の期間では、フラッシュメモリ制御部2は実質的な動作をしない。一方、クロック生成部4はクロック信号CLK2を第一の周波数f1で生成し続ける。つまり、第一の時間間隔ΔT1はフラッシュメモリ制御部2のアイドル時間に相当する。
図6の例では、第二のコマンドC2以降のそれぞれのコマンドについてのアイドル時間が、次のように短縮される。それにより、クロック信号CLK2の周波数を必要以上に下げることなく、クロック信号CLK2の生成による消費電力が削減される。
【００６３】
コマンド間隔検出部1dは第二のコマンドC2の入力時、第一の時間間隔ΔT1を計測する。図6では第一の時間間隔ΔT1が0より大きい。それ故、コマンド間隔検出部1dは設定周波数fを第二の周波数f2に設定し直す。実施例３では、第二の周波数f2は第一の周波数f1に比べて一定の割合だけ低い。
【００６４】
第二のコマンドC2の入力後、アクセス許可信号BSYは一旦、Ｈレベルに切り替わる。一定のクロック数に相当する時間の経過後、アクセス許可信号BSYは再びＬレベルに戻る。アクセス許可信号BSYがＬレベルに戻ってから第二の時間間隔ΔT2の経過時、第三のコマンドC3が入力される。つまり、第二の時間間隔ΔT2が第二のコマンドC2についてのアイドル時間に相当する。
【００６５】
第二の周波数f2は第一の周波数f1に比べて低いので、フラッシュメモリ制御部2による第二のコマンドC2に対する応答処理は、第一のコマンドC1に対する応答処理に比べて遅い。従って、第二のコマンドC2についてのアクセス許可信号BSYのＨレベルの時間は、第一のコマンドC1についてのものより長い。その結果、第二の時間間隔ΔT2は第一の時間間隔ΔT1より短い。こうして、第二のコマンドC2についてのアイドル時間は第一のコマンドC1についてのものより短縮される。
【００６６】
コマンド間隔検出部1dは第三のコマンドC3の入力時、第二の時間間隔ΔT2を計測する。図6では第二の時間間隔ΔT2も0より大きい。それ故、コマンド間隔検出部1dは設定周波数fを更に第三の周波数f3に設定し直す。実施例３では、第三の周波数f3は第二の周波数f2に比べて、第一の周波数f1に対する第二の周波数f2の比と実質的に同じ割合だけ低い。
【００６７】
第三のコマンドC3の入力後、アクセス許可信号BSYは一旦、Ｈレベルに切り替わる。一定のクロック数に相当する時間の経過後、アクセス許可信号BSYは再びＬレベルに戻る。第三の周波数f3は第二の周波数f2に比べて低いので、フラッシュメモリ制御部2による第三のコマンドC3に対する応答処理は、第二のコマンドC2に対する応答処理に比べて遅い。従って、第三のコマンドC3についてのアクセス許可信号BSYのＨレベルの時間は、第二のコマンドC2についてのものより長い。その結果、図6では、アクセス許可信号BSYがＬレベルに戻った時、第四のコマンドC4が入力される。つまり、第四のコマンドC4については実質的なアイドル時間が発生しない。
【００６８】
以上のように、実施例３ではコマンド入力の時間間隔の検出により、コマンドに対する応答処理終了後のアイドル時間を検出する。更に、アイドル時間が発生した時、クロック信号CLK2の設定周波数fを一定の割合ずつ低く設定し直す。それにより、アイドル時間がちょうど0になるように、クロック信号CLK2の周波数を低く調整できる。その結果、アイドル時間でのクロック信号CLK2の生成による消費電力を削減される。
【００６９】
アクセス許可信号BSYのＨレベルの期間、ホストHはコマンドを出力できない。従って、アクセス許可信号BSYのＨレベルの時間が長い時、ホストHがフラッシュメモリカード10Bへのアクセスを待たされる。その結果、フラッシュメモリカード10Bのコマンドに対する応答速度が低下する。実施例３ではコマンド入力の時間間隔の検出を通して、次のようにクロック信号CLK2の設定周波数fを調節する。それにより、フラッシュメモリカード10BへのアクセスについてのホストHの待ち時間を短縮する。
【００７０】
図7はホストHからのコマンドC5〜C8、アクセス許可信号BSY及びクロック信号CLK2のタイミングチャートである。図7では、ホストHから第五のコマンドC5、第六のコマンドC6、第七のコマンドC7及び第八のコマンドC8が順に入力される。更に図6の例と同様に、第五のコマンドC5から第八のコマンドC8までのそれぞれに対する応答処理時、アクセス許可信号BSYが一定のクロック数に相当する時間だけＨレベルである。
【００７１】
図7の例では次の場合を想定する：  ホストHは第五のコマンドC5から第八のコマンドC8までの出力を一定の時間間隔で試みる。しかし、第五のコマンドC5から第七のコマンドC7までについて、アクセス許可信号BSYのＨレベルの時間がその一定の時間間隔に比べ長い。それ故、第六のコマンドC6及び第七のコマンドC7の出力について、ホストH側に待ち時間が発生している。
【００７２】
図7では、第五のコマンドC5の入力時、クロック信号CLK2の設定周波数fは第四の周波数f4に決定されている。第五のコマンドC5の入力後、アクセス許可信号BSYは一旦、Ｈレベルに切り替わる。一定のクロック数に相当する時間の経過後、アクセス許可信号BSYは再びＬレベルに戻る。アクセス許可信号BSYがＬレベルに戻った時、第六のコマンドC6が入力される。つまり、第六のコマンドC6については実質的なアイドル時間が発生しない。
【００７３】
図7の例では、第六のコマンドC6以降のそれぞれのコマンドの入力ごとに、クロック信号CLK2の周波数が次のように上昇する。それにより、アイドル時間の発生を抑えつつ、ホストH側の待ち時間を短縮し、フラッシュメモリカード10Bの応答速度を増大できる。
【００７４】
コマンド間隔検出部1dは第五のコマンドC5の入力後、アクセス許可信号BSYのＨレベルからＬレベルへの移行時と第六のコマンドC6の入力時との時間間隔を計測する。図7ではその時間間隔が実質的に0である。それ故、コマンド間隔検出部1dは設定周波数fを第五の周波数f5に設定し直す。実施例３では、第五の周波数f5は第四の周波数f4に比べて一定の割合だけ高い。
【００７５】
第六のコマンドC6の入力後、アクセス許可信号BSYは一旦、Ｈレベルに切り替わる。一定のクロック数に相当する時間の経過後、アクセス許可信号BSYは再びＬレベルに戻る。アクセス許可信号BSYがＬレベルに戻った時、第七のコマンドC7が入力される。つまり、第六のコマンドC6について実質的なアイドル時間が発生しない。
【００７６】
第五の周波数f5は第四の周波数f4に比べて高いので、フラッシュメモリ制御部2による第六のコマンドC6に対する応答処理は、第五のコマンドC5に対する応答処理に比べて速い。従って、第六のコマンドC6についてのアクセス許可信号BSYのＨレベルの時間は、第五のコマンドC5についてのものより短い。しかし、第六のコマンドC6についてアイドル時間が発生していない。従って、ホストHは第七のコマンドC7の出力を待たされていたこと、がわかる。但し、その待ち時間は第六のコマンドC6の出力についての待ち時間より短い。こうして、第七のコマンドC7についてのホストH側の待ち時間は結果的に、第六のコマンドC6についてのものより短縮される。
【００７７】
コマンド間隔検出部1dは第六のコマンドC6の入力後、アクセス許可信号BSYのＨレベルからＬレベルへの移行時と第七のコマンドC7の入力時との時間間隔を計測する。図7ではその時間間隔も実質的に0である。それ故、コマンド間隔検出部1dは設定周波数fを更に第六の周波数f6に設定し直す。実施例３では、第六の周波数f6は第五の周波数f5に比べて、第四の周波数f4に対する第五の周波数f5の比と実質的に同じ割合だけ高い。
【００７８】
第七のコマンドC7の入力後、アクセス許可信号BSYは一旦、Ｈレベルに切り替わる。一定のクロック数に相当する時間の経過後、アクセス許可信号BSYは再びＬレベルに戻る。第六の周波数f6は第五の周波数f5に比べて高いので、フラッシュメモリ制御部2による第七のコマンドC7に対する応答処理は、第六のコマンドC6に対する応答処理に比べて更に速い。従って、第七のコマンドC7についてのアクセス許可信号BSYのＨレベルの時間は、第六のコマンドC6についてのものより短い。その結果、図7では、アクセス許可信号BSYがＬレベルに戻った時から第八のコマンドC8の入力までの間にアイドル時間ΔT3が発生する。コマンド間隔検出部1dは第七のコマンドC7の入力後、第七のコマンドC7に対する応答処理終了後のアイドル時間ΔT3を計測し、アイドル時間ΔT3が0より大きいことを検出する。それ故、コマンド間隔検出部1dは設定周波数fを第五の周波数f5に設定し直す。
【００７９】
以上のように、実施例３では、コマンドに対する応答処理終了後のアイドル時間が発生していない時、クロック信号CLK2の設定周波数fを一定の割合ずつ高く設定し直す。それにより、アイドル時間が新たに発生する直前の周波数にクロック信号CLK2の周波数を調整する。その結果、クロック信号CLK2の周波数がコマンド入力の時間間隔に最適であるので、コマンドに対するフラッシュメモリカード10Bの応答速度が最速である。更に、アイドル時間でのクロック信号CLK2の生成による消費電力が削減される。
【００８０】
【発明の効果】
以上の説明のように、本発明による記憶装置はホストからのコマンドを識別して、そのコマンド識別情報に応じてクロック信号の設定周波数を決定する。それにより、記憶素子制御部のデータ処理速度をコマンドごとに変化できる。その結果、本発明による記憶装置は、ホストの種類、データ転送速度又はコマンドに対する応答処理に合わせて、記憶素子制御部によるデータ処理速度と、クロック信号の生成による消費電力と、を最適に調節できる。
【００８１】
更に、本発明による記憶装置は、転送クロックの周波数の変化に合わせて、クロック信号の設定周波数を変化させる。それにより、転送クロックの周波数が高い時、クロック信号の設定周波数が高い。従って、記憶素子制御部のデータ処理速度が大きい。逆に、転送クロックの周波数が低い時、クロック信号の設定周波数が低い。従って、クロック信号の生成による消費電力が小さい。こうして、上記の記憶装置はホストからの転送クロックの周波数に基づいて、記憶素子制御部によるデータ処理速度と、クロック信号の生成による消費電力と、を最適に調節できる。
【００８２】
その上、本発明による記憶装置は、ホストからのコマンド入力(アクセス)の時間間隔を計測し、その時間間隔に応じてクロック信号の設定周波数を決定する。それにより、ホストからのコマンド入力の時間間隔に基づいて、記憶素子制御部によるデータ処理速度と、クロック信号の生成による消費電力と、を最適に調節できる。
【図面の簡単な説明】
【図１】本発明の実施例１によるフラッシュメモリカード10とホストHとによるデータ交換を示すブロック図である。
【図２】本発明の実施例１によるフラッシュメモリカード10での、ホストHからのコマンドC1〜C5、コマンド識別信号ID及びクロック信号CLK2のタイミングチャートである。
【図３】本発明の実施例２によるフラッシュメモリカード10AとホストHとによるデータ交換を示すブロック図である。
【図４】本発明の実施例２によるフラッシュメモリカード10Aでの、ホストHからのコマンドC1〜C5、コマンド識別信号ID、クロックラインCLKからの転送クロック及びクロック信号CLK2のタイミングチャートである。
【図５】本発明の実施例３によるフラッシュメモリカード10BとホストHとによるデータ交換を示すブロック図である。
【図６】本発明の実施例３によるフラッシュメモリカード10Bでの、ホストHからのコマンドC1〜C4、アクセス許可信号BSY及びクロック信号CLK2のタイミングチャートである。
【図７】本発明の実施例３によるフラッシュメモリカード10Bでの、ホストHからのコマンドC5〜C8、アクセス許可信号BSY及びクロック信号CLK2のタイミングチャートである。
【図８】従来のフラッシュメモリカード100とホストHとによるデータ交換の一例を示すブロック図である。
【符号の説明】
10        フラッシュメモリカード
1        ホストインタフェース
ID        コマンド識別信号
DAT       データライン
CLK       クロックライン
VDD       電源ライン
VSS       グランドライン
CMD       コマンドライン
CLK2      クロック信号
f        クロック信号CLK2の設定周波数
【図１】
0004841069.tif 000002
【図２】
0004841069.tif 000003
【図３】
0004841069.tif 000004
【図４】
0004841069.tif 000005
【図５】
0004841069.tif 000006
【図６】
0004841069.tif 000007
【図７】
0004841069.tif 000008
【図８】
0004841069.tif 000009