(57)【特許請求の範囲】
【請求項１】
クロックを発振する発振手段と、当該発振手段におけるクロックの発振を停止させる停止指示手段と、外部装置からのデータを記憶する記憶手段と、前記外部装置から前記記憶手段へのデータの読み出し要求と書き込み要求とを受け付ける受け付け手段と、前記外部装置からのデータを一時的に保持する保持手段と、前記保持手段のデータの読み出しと書き込みとを制御する制御手段と、前記発振手段からクロックを受けているときに前記記憶装置のデータの読み出しと書き込みを制御するプロセッサとを有する記憶装置において、
前記受け付け手段は、前記発振手段のクロックが停止しているときにも、前記外部装置の前記記憶手段のデータの書き込み要求を受け付け、書き込み要求にしたがってクロックを生成し、
前記制御手段は、前記発振手段のクロックが停止しているときにも、前記受け付け手段が生成したクロックを利用して、前記保持手段に前記外部装置からの前記書き込み要求に伴うデータを保持させ、
前記発振手段は、前記書き込み要求を受け付けたときに、前記クロックの発振を開始し、
前記プロセッサは、前記発振手段が前記クロックの発振を開始してからあらかじめ定めた時間経過後に、前記保持手段に保持された前記外部装置からの前記書き込み要求に伴うデータを前記記憶手段に転送する
ことを特徴とする記憶装置。
【請求項２】
外部装置に接続されるインタフェース部と、データを格納するためのメモリと、外部装置が書き込むデータまたは読み出すデータを一時格納するバッファと、前記バッファへのアクセスを制御するバッファ制御部と、あらかじめ定めた周波数のクロック信号を発振するための発振装置と、前記発振装置にクロック発振の停止を指示するクロック発振制御部と、前記クロック発振制御部からクロックを受けているときに前記メモリのデータの読み出しと書き込みを制御するプロセッサとを有する記憶装置において、
前記インタフェース部は、前記外部装置のコマンドを解析するコマンドデコード部と、前記外部装置と前記記憶装置間のデータの転送を制御するデータ転送制御部とを有し、
前記コマンドデコード部は、前記発振装置のクロック発振が停止しているときにも、前記外部装置がデータの書き込みを要求するコマンドを解析し、
前記データ転送制御部は、前記発振装置のクロック発振が停止しているときにも、前記外部装置のライト信号にしたがってクロックを生成し、前記外部装置からの前記書き込み要求に伴うデータを前記バッファ制御部に転送し、
前記バッファ制御部は、前記発振装置のクロック発振が停止しているときにも、前記データ転送制御部から転送されたデータを、前記ライト信号にしたがって生成されたクロックを利用して、前記バッファに書き込み、
前記クロック発振手段は、前記書き込み要求するコマンドが解析されたときに、前記クロックの発振を開始し、
前記プロセッサは、前記クロック発振手段が前記クロックの発振を開始してからあらかじめ定めた時間経過後に、前記バッファに書き込まれた前記外部装置部からの書き込み要求に伴うデータを前記メモリに転送する
ことを特徴とする記憶装置。
【請求項３】
請求項２に記載の記憶装置において、
前記インタフェース部は、前記外部装置に対し当該記憶装置が転送の受け付けが可能であるかないかの状態を示すステータスレジスタをさらに有することを特徴とする記憶装置。
【請求項４】
請求項２に記載の記憶装置において、
前記インタフェース部は、前記外部装置が書き込むコマンドとアクセスするデータ量と当該アクセスするデータのアドレスとを記憶するコマンドブロックレジスタ群とをさらに有することを特徴とする記憶装置。
【請求項５】
請求項２に記載の記憶装置において、前記バッファ制御部は、前記データ転送制御部からのライト信号と、前記プロセッサからのライト信号とを選択する選択回路を備えることを特徴とする記憶装置。
【請求項６】
クロック発振手段のクロックの発振を開始する機能と、クロックの発振を停止させる機能と、データを記憶する記憶手段と、クロックを受けているときに前記記憶手段にデータの読み出しと書き込みを行う機能を有する記憶装置におけるクロック発振停止時のデータ受け付け制御方法であって、
前記クロック発振手段のクロックが停止しているときにも、外部装置からのデータの書き込み要求を受け付け、書き込み要求に従いクロックを生成し、
前記書き込み要求を受け付けたときに、生成したクロックを利用して、前記外部装置から転送されたデータを一時的に保持し、
前記データの書き込み要求を受け付けたときに、前記クロック発振手段のクロックの発振を開始し、
前記クロック発振手段のクロックの発振の安定後、前記保持するデータを前記記憶手段に書き込むよう制御を行うことを特徴とするクロック発振停止時のデータ受け付け制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、電気的に書き換え可能な不揮発性半導体メモリなどの記憶媒体を備える外部記憶装置に係わり、特に、任意のバイト数からなるセクタデータをセクタ単位に書き込むことができる外部記憶装置に関する。
【０００２】
【従来の技術】
携帯型情報処理端末などの小型コンピュータの普及に伴って、コンピュータシステムの小型軽量化、低消費電力化に対する要求が高まってきている。不揮発性半導体メモリを用いた外部記憶装置は、磁気ディスクなどのような駆動系を必要としないために低消費電力を実現でき、さらに、メモリモジュールで構成されるので、薄型の小型記憶装置を実現できる。
【０００３】
このような不揮発性半導体メモリを用いた外部記憶装置の一つとして、フラッシュメモリを用いた外部記憶装置がある。フラッシュメモリは書き換え回数の限界があるため、外部記憶装置では、フラッシュメモリの書き換え回数をチェックし、フラッシュメモリ全体の書き換え回数を平均化する処理を行っている。
【０００４】
このようなフラッシュメモリを用いた外部記憶装置では、特開平５−２７９２４号公報に示されるように、フラッシュメモリの書き換え回数の制御を行うために、マイクロプロセッサなどのインテリジェントな処理装置が組み込まれている。このマイクロプロセッサを動作させるためには、水晶発振器などのクロックを発生させる装置が必要となる。
【０００５】
【発明が解決しようとする課題】
クロック発振を行う場合の消費電流は大きくなるので、外部記憶装置が動作していないときには、水晶発振器のクロック発振を止めてしまうことが、低消費電力を実現する上での重要なポイントとなる。
【０００６】
しかし、水晶発振器のクロック発振が止まっている状態からクロック発振を開始し、クロック発振が安定するまでには、数百マイクロ秒から数ミリ秒の時間が必要となる。例えば、外部記憶装置が動作していないときには、水晶発振器のクロック発振を止めてしまうような外部記憶装置の場合、ホストコンピュータがセクタデータを書き込むためのコマンド（以下、セクタ・ライトコマンドという）を外部記憶装置に書き込むと、外部記憶装置内部では、外部記憶装置内部のクロック発振が停止している場合には、ホストコンピュータからのコマンドの書き込みによってクロック発振を開始させるが、マイクロプロセッサはクロック発振が安定するまでは動作することができない。このため、マイクロプロセッサは、クロック発振が安定した後に、ホストコンピュータが発行したコマンドの解析やフラッシュメモリへの書き込み回数を確認の処理を開始することができる。
【０００７】
したがって、ホストコンピュータがセクタ・ライトコマンドを書き込んだときに、従来の外部記憶装置は、クロック発振が安定するまで、ホストコンピュータが書き込むセクタデータを受け付けることができない。つまり、従来の外部記憶装置は、クロック発振が安定するまでの間、ホストコンピュータを待たせることになり、セクタデータの書き込みのときには高速なデータ転送が実現できない。
【０００８】
本発明の目的は、外部記憶装置が動作していないときには、水晶発振器のクロック発振を止めてしまうような外部記憶装置において、ホストコンピュータからのセクタ・ライトコマンドに対して、ホストコンピュータを待たせることなく、瞬時にホストコンピュータが書き込むセクタデータを受け付けることができる外部記憶装置を提供することである。
【０００９】
本発明の他の目的は、外部記憶装置の内部でクロック発振が停止している間でも、ホストコンピュータからのセクタ・ライトコマンドに対して、クロック発振の安定を待たずに、瞬時にホストコンピュータが書き込むセクタデータを受け付けることができる外部記憶装置を提供することである。
【００１０】
【課題を解決するための手段】
上記目的を達成するために、本発明は、クロックを発振する発振手段と、当該発振手段におけるクロックの発振を停止させる停止指示手段と、外部装置からのデータを記憶する記憶手段と、前記外部装置の前記記憶手段のデータの読み出し要求と書き込み要求とを受け付ける受け付け手段と、前記外部装置からのデータを一時的に保持する保持手段と、前記保持手段の読み出しと書き込みとを制御する制御手段と、前記外部装置からのデータの転送を前記クロックに従って制御するプロセッサとを有する記憶装置において、前記受け付け手段は、前記発振手段のクロックが停止しているときにも、前記外部装置の前記記憶手段のデータの書き込み要求を受け付け、前記制御手段は、前記受け付け手段が、前記書き込み要求を受け付けたときにも、前記保持手段に前記外部装置からのデータを保持させる。これにより、発振手段がクロック発振を停止しているときにも、外部装置からの書き込み要求を受け付けて、保持手段に外部装置から出力されたデータを保持させることができる。また、クロック発振が安定した後（例えば、クロックの発振の開始を指示してからあらかじめ定めた時間経過後）は、プロセッサが、保持手段から記憶手段に転送を指示することができる。
【００１１】
また、本発明の別の態様によれば、外部装置に接続されるインタフェース部と、データを格納するためのメモリと、外部装置が書き込むデータまたは読み出すデータを一時格納するバッファと、前記バッファへのアクセスを制御するバッファ制御部と、あらかじめ定めた周波数のクロック信号を発振するための発振装置と、前記発振装置にクロック発振の停止を指示するクロック発振制御部と、前記外部装置とのデータ転送を制御するプロセッサとを有する記憶装置において、 前記インタフェース部は、前記外部装置のコマンドを解析するコマンドデコード部と、前記外部装置と前記記憶装置間のデータの転送を制御するデータ転送制御部とを有し、 前記コマンドデコード部は、前記発振装置のクロック発振が停止しているときにも、前記外部装置がデータの書き込みを要求するコマンドを解析し、 前記データ転送制御部は、前記発振装置のクロック発振が停止しているときにも、前記外部装置のライト信号にしたがって、前記外部装置から出力されたデータを前記バッファ制御部に転送し、前記バッファ制御部は、前記発振装置のクロック発振が停止しているときにも、前記データ転送制御部から転送されたデータを、前記ライト信号にしたがって、前記バッファに書き込む。この場合、コマンドデコード部は、前記発振装置のクロック発振が停止しているときにも、外部装置が書き込んだコマンドが書き込みを要求するコマンド（セクタ・ライトコマンド）であることを解析する。これにより、外部装置が書き込むデータは、データ転送制御部において、バッファ制御部に転送され、バッファ制御部によりバッファにデータが書き込まれる。さらに、外部装置がコマンドを書き込むときのライト信号をクロック信号として使用することで、外部記憶装置内のクロック発振が停止している間でも、コンピュータが書き込むデータを受け付けることが可能となる。
【００１２】
また、 前記インタフェース部は、前記コンピュータに対し当該記憶装置が転送の受け付けが可能であるかないかの状態を示すステータスレジスタをさらに有するようにしてもよい。
【００１３】
この場合、外部装置がコマンドを書き込んだ場合、外部記憶装置は、コンピュータが書き込んだコマンドの解析中であることやコマンドが指定した処理を外部装置に対して転送の受け付けが可能でないこと（ビジー状態）を、ステータスレジスタに設定することで、外部装置に知らせることができる。
【００１４】
さらに、前記バッファ制御部は、前記データ転送制御部からのライト信号と、前記プロセッサからのライト信号とを選択する選択回路を備えるようにしてもよい。
【００１５】
【発明の実施の形態】
以下、本発明の不揮発性半導体メモリを用いた外部記憶装置の実施の形態を図面を参照して説明する。
【００１６】
図１に、本発明の実施の形態における外部記憶装置のシステム構成のブロック図を示す。
【００１７】
図１において、外部記憶装置１は、不揮発性半導体メモリであるフラッシュメモリを記憶媒体として用いている。また、外部記憶装置１は、ＰＣカードとして、一つのカード内に内蔵することが可能である。
【００１８】
外部記憶装置１は、セクタデータを格納するための不揮発性半導体メモリであるフラッシュメモリ群１９と、ホストコンピュータ２とフラッシュメモリ間のセクタデータ転送を総合的に制御し、フラッシュメモリ内のセクタデータの書き換え回数などの管理を行うマイクロプロセッサ１２と、ホストコンピュータ２とのインタフェースを司るホストインタフェース部１１と、ホストコンピュータ２が書き込むセクタデータおよびホストコンピュータが読み出すセクタデータを一時格納するために使用するセクタバッファＡ１４およびＢ１５と、セクタバッファＡ１４およびＢ１５への書き込みおよび読み出しを指示するセクタバッファ制御部１３と、クロック発振を行う発振装置１８と、発振装置１８に対しクロック発振の開始および停止を指示するクロック発振制御部１７と、マイクロプロセッサ１２の指示に従ってフラッシュメモリに対し消去や書き込み、読み出しなどのコマンド発行し、フラッシュメモリとセクタバッファ間のセクタデータ転送をセクタ単位で制御するフラッシュメモリ制御部１６とを有する。本実施の形態においては、フラッシュメモリ群１９にホストコンピュータ２が書き込もうとするデータは、セクタバッファ制御部１３により、使用していないセクタバッファＡ１４もしくはＢ１５に一時的に格納され、さらに、フラッシュメモリ制御部１６を介して、フラッシュメモリ群１９に転送されて書き込まれる。また、フラッシュメモリ群１９からホストコンピュータ２が読み出そうとするデータは、フラッシュメモリ制御部１６を介して、フラッシュメモリ群１９から読み出され、セクタバッファ制御部１３により、使用していないセクタバッファＡ１４もしくはＢ１５に一時的に格納され、ホストインタフェース部１１を介してホストコンピュータ２に転送される。また、ホストコンピュータ２が外部記憶装置１にアクセスしていないときには発振装置１８の動作を停止させている。ホストコンピュータ２が外部記憶装置１にデータの書き込みを行う場合には、発振装置１８の動作が安定する前においては、発振装置１８によるクロック信号の代わりに、ホストコンピュータ２から指示されるホストライト信号２０１ｄを用いて、セクタバッファへの書き込みを行う。
【００１９】
図１において、外部記憶装置１に接続されるホストコンピュータ２は、ホストアドレスを伝送するホストアドレスバス２０１ａ、データを伝送するホストデータバス２０１ｂ、読み出しコマンドを伝送するホストリード信号２０１ｃ、および、書き込みコマンドを伝送するホストライト信号２０１ｄを用いて、外部記憶装置１に対しセクタデータの書き込みおよび読み出しを要求するコマンドを設定し、外部記憶装置１との間でセクタデータの書き込みおよび読み出しを行う。
【００２０】
ホストインタフェース部１１は、ホストコンピュータ２からのコマンドの書き込みを受け付けて保持し、ホストコンピュータ２と外部記憶装置１の間のセクタデータ転送を行う。また、ホストインタフェース部１１は、ホストコンピュータ２から指示されるホストライト信号２０１ｄの信号に基づいて、後述するセクタバッファ制御部１３における書き込みのクロック信号を生成し、ホスト間転送ライト信号１０２ｃに生成したクロック信号を出力する。
【００２１】
マイクロプロセッサ１２は、ホストコンピュータ２が書き込んだコマンドを解析し、ホストコンピュータ２と外部記憶装置１の間のセクタデータ転送における制御を行う。また、マイクロプロセッサ１２は、ホストが書き込んだセクタデータをフラッシュメモリに書き込む際に、フラッシュメモリの書き換え回数をフラッシュメモリ全体で平均化処理を行うなどのフラッシュメモリの管理制御を行う。
【００２２】
セクタバッファ制御部１３は、ホストインタフェース部１１、マイクロプロセッサ１２およびフラッシュメモリ制御部１６からのリードアクセスまたはライトアクセスに対して、セクタバッファＡ１４またはセクタバッファＢ１５にデータのリードまたはライトを行う。セクタバッファ制御部１３は、書き込みの時には、ホスト間転送ライト信号１０２ｃの信号に基づいて、書き込みを行うことができる。
【００２３】
セクタバッファＡ１４およびセクタバッファＢ１５は、セクタデータを一時格納するためのセクタバッファであり、それぞれには、５１２バイトを単位とする１セクタデータと、それぞれのセクタデータに付加される書き換え回数などの管理情報とを格納するすることができる。管理情報は、内部のマイクロプロセッサ１２によって使用され、ホストコンピュータ２からは通常のセクタデータのリードやライトアクセスによりアクセスされない。
【００２４】
フラッシュメモリ制御部１６は、マイクロプロセッサ１２の指示に従い、フラッシュメモリ１９に対しリードや消去そして書き込みなどのコマンドを発行する。フラッシュメモリ制御部１６は、リードのときには指定されたアドレスに対応する、フラッシュメモリ１９から読み出したデータをセクタバッファ制御部１３に出力し、書き込みのときにはセクタバッファ制御部１３から転送されたデータをフラッシュメモリ群１９の指定されたアドレスに書き込む。また、フラッシュメモリ制御部１６は、フラッシュメモリ群１９に対する一つのセクタデータのリードまたは書き込みが終了すると、転送が終了したことを示す割り込み要求信号１００３をアサートして転送終了をマイクロプロセッサ１２に通知する。
【００２５】
クロック発振制御部１７は、マイクロプロセッサ１２の指示でクロック発振の停止および開始の制御を行い、発振装置１８からのクロック信号１００６をマイクロプロセッサ１２およびフラッシュメモリ制御部１６にクロック信号１００４として供給する。クロック発振制御部１７は、クロック発振停止信号１００５を使用して、発振装置１８のクロック発振を停止させる。また、クロック発振制御部１７は、ホストインタフェース割り込み信号１００２がアサートされたときに、マイクロプロセッサ１２へホスト割り込み要求信号１００１を通知する。ホストインタフェース割り込み信号１００２は、ホストコンピュータ２によるコマンドの書き込みがあったときと、ホストコンピュータ２と外部記憶装置１間で一つのセクタデータの転送が終了したときとにホストインタフェース部１１によりアサートされる。フラッシュメモリ群１９は、一つ以上の複数個のフラッシュメモリから構成され、ホストコンピュータ２が書き込んだセクタデータを格納する。
【００２６】
本実施の形態では、ホストデータバス２０１ｂ、プロセッサデータバス１０１ｂ、ホスト間転送データバス１０２ｂ、フラッシュ間転送データバス１０３b、セクタバッファＡデータバス１０４ｂ、セクタバッファＢデータバス１０５、および、フラッシュデータバス１０６ｂの各々のデータバス幅を１バイト（８ビット）として説明する。
【００２７】
つぎに、ホストインタフェース部１１の内部構成を図２を参照して説明する。図２に、ホストインタフェース部１１のブロック図を示す。
【００２８】
図２において、ホストインタフェース部１１は、外部記憶装置が使用中であるか否かの状態（ビジー状態／レディ状態）を示すステータスレジスタ１１１と、コマンドおよびコマンドに対応するセクタ数、セクタ番号、シリンダ数などを保持するコマンドブロックレジスタ群１１２と、ホストコンピュータ２により指示されたコマンドをデコードするホストコマンドデコード部１１３と、ホストコンピュータ２から指示されたコマンドに基づいて、データ転送を制御し、また、ホストライト信号２０１ｄの信号に基づいて、書き込みのクロック信号を生成し、ホスト間転送ライト信号１０２ｃに生成したクロック信号を出力するホストデータ制御部１１４とを備える。
【００２９】
本実施の形態におけるホストインタフェース部１１では、ホストコンピュータ２によりコマンドを書き込まれた場合、ホストコンピュータ２が書き込んだコマンドの解析中である場合と、コマンドに対応する処理をホストコンピュータに対して提供できる準備が整っていない場合とに、ステータスレジスタ１１１をビジー状態に設定することで、ホストコンピュータ２に使用中であることを知らせる。
【００３０】
また、ホストコマンドデコード部１１３は、ホストコンピュータ２がコマンドを書き込むと同時に、ホストコンピュータ２が書き込んだコマンドの種類を判定する。ホストコンピュータが書き込んだコマンドがセクタ・ライトコマンドであると判定した場合には、ホストコマンドデコード部１１３は、ライトコマンド書き込み信号１１０１によりステータスレジスタ１１１をデータ転送要求を示すレディ状態に設定し、外部記憶装置１がホストコンピュータからのセクタデータの書き込みに対し準備が整っていることを知らせる。
【００３１】
また、ホストコマンドデコード部１１３は、ホストデータ転送制御部１１４に対しても、ホストコンピュータ２からセクタデータの書き込みが発生したことをライト信号１１０２により通知する。これにより、ホストコンピュータ２が書き込むセクタデータは、ホストデータ転送制御部１１４において、セクタバッファに書き込むことが可能となる。
【００３２】
さらに、ホストコンピュータ２がコマンドを書き込むときのホストライト信号２０１ｄをクロック信号として使用することで、ホストコマンドデコード部１１３は、外部記憶装置内のクロック発振が停止している間でも、ホストコンピュータ２が書き込むコマンドを判定することが可能となる。また、ホストデータ転送制御部１１４においても、ホストライト信号２０１ｄをクロック信号としてセクタバッファ制御部１３に指示することにより、ホストコンピュータ２がコマンドを書き込んでから外部記憶装置内のクロック発振を開始しても、クロック発振の安定を待たずに、外部記憶装置１は、ホストコンピュータが書き込むセクタデータを受け付けることが可能となる。
【００３３】
つぎに、図２に示す各ブロックの機能をより具体的に説明する。
【００３４】
ステータスレジスタ１１１は、ホストコンピュータ２に外部記憶装置１のセクタバッファの使用状態を知らせるために、外部記憶装置１のビジー状態／レディ状態を示すレジスタであり、マイクプロセッサ１２からのプロセッサアドレスバス１０１ａ、プロセッサデータバス１０１ｂおよびプロセッサライト信号１０１ｄによって、外部記憶装置１の状態（レディまたはビジー）が設定される。ステータスレジスタ１１１は、コマンドブロックレジスタ群１１２からのホストコンピュータ２によるコマンドの書き込みを示すコマンド書き込み信号１１０４がアサートされた場合（ホストコンピュータ２がコマンドを書き込んだとき）と、ホストデータ転送制御部１１４とホストコンピュータ２との間で一つのセクタデータ転送が終了したことを示す転送終了信号１１０３がホストデータ転送制御部１１４によりアサートされた場合とに、ビジー状態に設定される。また、ステータスレジスタ１１１は、ホストコマンドデコード部１１３からのホストコンピュータ２がセクタデータのライトコマンドを書き込んだことを示すライトコマンド書き込み信号１１０１がアサートされた場合（ホストコマンドデコーダ１１３でコマンドのデコードが終わり、コマンドが出力されたとき）に、データ転送要求を示すレディ状態に設定される。
【００３５】
コマンドブロックレジスタ群１１２は、ホストコンピュータ２が書き込むコマンドを記憶するためのコマンドレジスタと、セクタデータの論理アドレス、ホストコンピュータ２がアクセスするセクタ数などを格納するための複数のデータレジスタとを有し、ホストコンピュータ２によりコマンドが書き込まれたときに、コマンド書き込みコマンド書き込み信号１１０４をアサートすることによりステータスレジスタ１１１にコマンドが書き込まれたことを通知する。  コマンドブロックレジスタ群１１２は、各レジスタ毎に、あらかじめレジスタアドレスが規定され、ホストコンピュータ２によりホストアドレスバス２０１ａを介してレジスタアドレスが指示され、指示されたレジスタアドレスに対応するレジスタに、ホストデータバス１０２ｂを介して指示されたデータが格納される。ホストデータバス１０２ｂを介して転送されるデータとしては、コマンド、セクタ数、セクタバッファＡもしくはＢに書き込まれるデータなどがある。マイクロプロセッサ１２は、ファラッシュメモリへのアクセスの際に、このコマンドブロックレジスタ群１１２を参照し、コマンドに対応する制御を行う。
【００３６】
ホストコマンドデコード部１１３は、ホストコンピュータ２が書き込んだコマンドの種類を判定する。ホストコマンドデコード部１１３は、ホストコンピュータ２がセクタデータのライトコマンドを書き込んだと判定したときに、ライトコマンド書き込み信号１１０１およびライト信号１１０２をアサートする。また、ライトコマンド書き込み信号１１０１は、ホストコンピュータ２からのリードアクセスまたはライトアクセスでネゲートされ、ライト信号１１０２は、ホストデータ転送制御部１１４からの一つのセクタデータ転送が終了したことを示す転送終了信号１１０３の立ち下がりでネゲートされる。
【００３７】
ホストデータ転送制御部１１４は、ホストコンピュータ２とセクタバッファＡ１４およびセクタバッファＢ１５との間のセクタデータの転送を行う。ホストデータ転送制御部１１４は、マイクロプロセッサ１２の指示に従って、ホストコンピュータ２がデータのライトまたはリードアクセスにより行われるセクタデータの転送に応じて、セクタバッファ制御部１３に対し、セクタバッファＡ１４またはセクタバッファＢ１５へのライトまたはリードアクセスを要求する。また、ホストデータ転送制御部１１４は、ホストコマンドデコード部１１３によってライト信号１１０２がアサートされている間、マイクロプロセッサ１２の指示がなくても、ホストコンピュータ２からのセクタデータのライトアクセスに対して、セクタバッファ制御部１３にセクタバッファＡ１４へのライトアクセスを要求する。また、ホストデータ転送制御部１１４は、ホストコンピュータ２から指示されるホストライト信号２０１ｄの信号に基づいて、セクタバッファ制御部１３における書き込みのクロック信号を生成し、ホスト間転送ライト信号１０２ｃに生成したクロック信号を出力する。ホストライト信号２０１ｄは、ホストコンピュータ２が、コマンドを書き込むとき、もしくは、データを１バイト毎に書き込むときに指示する信号であり、周期的な信号ではないが、オン／オフする信号であるため、ホストデータ転送制御部１１４は、このホストライト信号２０１ｄの立ち上がりもしくは立ち下がりをトリガとして、セクタバッファ制御部１３における書き込みのクロック信号を生成することができる。
【００３８】
ホストコンピュータ２は、ホストアドレスバス２０１ａ、ホストデータバス２０１ｂおよびホストリード信号２０１ｃを用いてステータスレジスタを読み出すことができる。
【００３９】
転送終了信号１１０３およびコマンド書き込み信号１１０４は、ＯＲ回路１１５に入力され、ＯＲ回路１１５は、転送が終了したとき、もしくは、コマンドが書き込まれたときに、ホストインタフェース割り込み信号１００２をクロック発振制御部１７に出力する。ホストインタフェース割り込み信号１００２により、クロック発振制御部１７は、クロック発振を開始させる。
【００４０】
つぎに、図２に示すホストインタフェース部１１の動作を図３および図４を参照して説明する。
【００４１】
図３に、ホストコンピュータ２がセクタデータのライトコマンドを設定したときのホストインタフェース部１１におけるタイミングチャートを示す。また、図４は、図３に示す時間ｔ３５以降のホストコンピュータ２がセクタデータのライトを行うときのホストインタフェース部１１におけるタイミングチャートを示している。つまり、図３は、ホストコンピュータ２が１番目のセクタデータをライトするときのタイミングチャートであり、図４は、ホストコンピュータ２が２番目のセクタデータをライトするときのタイミングチャートを示している。
【００４２】
図３において、時間ｔ３１と時間ｔ３２の間で、ホストコンピュータ２が、ホストアドレスバス２０１ａに、コマンドコマンドブロックレジスタ群１１２は、ホストライト信号２０１ｄの立ち下がりエッジでコマンドレジスタにホストデータバス２０１ｂのデータを書き込む。コマンドブロックレジスタ群１１２は、ホストライト信号２０１ｄの立ち下がりエッジにより、コマンドが書き込まれたことを示すために、コマンド書き込み信号１１０４をアサートする。コマンド書き込み信号１１０４がアサートされたことにより、ステータスレジスタ１１１がビジー状態に設定される。
【００４３】
次いで、時間ｔ３２において、ホストコマンドデコード部１１３は、コマンドレジスタに対するコマンドデータの書き込みがセクタデータのライトコマンドであることを検出し、ホストライト信号２０１ｄの立ち上がりエッジにより、ライトコマンド書き込み信号１１０１をアサートする。ライトコマンド書き込み信号１１０１がアサートされることにより、ステータスレジスタ１１１はデータ転送要求を示すレディ状態に設定される。
【００４４】
時間ｔ３２と時間ｔ３３の間において、ホストコンピュータ２は、ステータスレジスタ１１１をリードする。ホストコンピュータ２は、ステータスレジスタ１１１がデータ転送要求を示すレディ状態であることを確認すると、ブロックレジスタ群１１２におけるデータレジスタのアドレスを出力し、また、ホストデータバス２０１ｂにセクタデータのライトコマンドを出力する。時間ｔ３３以降、セクタデータを１バイト単位で書き込む処理を開始する。また、時間ｔ３３において、ホストライト信号２１０ｄが立ち下がったことにより、ライトアクセスが行われたとして、ホストコマンドデコード部１１３は、ライトコマンド書き込み信号１１０１をネゲートする。
【００４５】
時間ｔ３３から時間ｔ３５の間、ホストコンピュータ２は、ホストアドレスバス２０１ａにデータレジスタのアドレスを出力し、ホストデータバス２０１ｂにデータＤ０−０からデータＤ０−５１１の５１２バイトからなる一つのセクタデータを１バイト単位に、ホストライト信号２０１ｄとともに出力する。
【００４６】
さらに、ホストデータ転送制御部１１４は、１セクタ数分（５１２バイト）のデータが書き込まれたことを監視するために、５１１までカウントするカウンタを内部に備える。ホストデータ転送制御部１１４は、１バイト単位にデータの出力に対応して出力されるホストライト信号２０１ｄの立ち下がりエッジでカウンタのカウントアップを行い、そのカウンタの値を、セクタバッファＡを示す、セクタバッファＡの指定アドレスとともにホスト間転送アドレスバス１０２ａに出力する。ホストコンピュータ２が出力したデータＤ０−０〜データＤ０−５１１は、ホストデータ転送制御部１１４によって、ホスト間転送データバス１０２ｂに出力される。
時間ｔ３４において、ホストデータ転送制御部１１４は、カウンタにより一つのセクタデータの最後の１バイトのデータの転送であることを検出すると、１セクタ分の転送が終了したことを知らせるするために、転送終了信号１１０３をアサートする。転送終了信号１１０３は、一つのセクタデータにおける最後の１バイトのアクセスの際に出力されるホストライト信号２０１ｄと同じタイミングのパルス信号である。
【００４７】
転送終了信号１１０３がアサートされることにより、ステータスレジスタ１１１はビジー状態となり、外部記憶装置１がビジーであることをホストコンピュータ２に知らせる。転送終了後、つぎのセクタデータを受け付けるために、ホストデータ転送制御部１１４における転送条件が設定されるまで、ビジー状態が保持される。
【００４８】
また、時間ｔ３５において、転送終了信号１１０３が立ち下がると、ホストコマンドデコード部１１３は、転送が終了したとして、ライト信号１１０２をネゲートし、ホストデータ転送制御部１１４に一つのセクタデータ転送終了を確認したことを知らせる。
【００４９】
つぎに、図４の時間ｔ４１と時間ｔ４２の間において、マイクロプロセッサ１２は、マイクロプロセッサアドレスバス１０１ａ、マイクロプロセッサデータバス１０１ｂおよびマイクロプロセッサライト信号１０１ｄを使用して、ホストデータ転送制御部１１４にホストコンピュータ２と外部記憶装置間１のデータ転送に関する転送条件を設定する。図４に示す例では、ホストコンピュータ２から転送される５１２バイトのセクタデータをセクタバッファＢ１５に書き込むことを設定している。マイクロプロセッサ１２は、コマンドブロックレジスタ群１１２を参照することにより、転送条件を決定し、ホストデータ転送制御部１１４に転送条件を設定することができる。なお、１番目のセクタの転送においては、マイクロプロセッサ１２は、クロックが停止しているため、この転送条件の設定を行わないが、ホストデータ転送制御部１１４において、クロック停止後の最初のセクタのデータ転送においては、あらかじめ定めたセクタバッファに転送を行うように転送条件を規定しておく。
【００５０】
次いで、マイクロプロセッサ１２は、マイクロプロセッサアドレスバス１０１ａ、マイクロプロセッサデータバス１０１ｂおよびマイクロプロセッサライト信号１０１ｄを使用して、ステータスレジスタ１１１にデータ転送要求を示すレディ状態を書き込む。時間ｔ４３と時間ｔ４４の間において、ホストコンピュータ２は、ステータスレジスタ１１１がデータ転送要求を示すレディ状態であることを確認すると、２番目のセクタデータの書き込みを開始する。
【００５１】
時間ｔ４４から時間ｔ４６の間では、図３における時間ｔ３３から時間ｔ３５に示す動作と同様に、ホストデータ転送制御部１１４が、ホスト間転送アドレスバス１０２ａ、ホスト間転送データバス１０２ｂおよびホスト間転送ライト信号１０２ｃを使用して、アドレス、データおよびライト信号をセクタバッファ制御部１３に対して指示することによりセクタバッファＢ１５にホストコンピュータ２が出力したデータＤ１−０〜データＤ１−５１１のデータを書き込みを行わせる。
【００５２】
つぎに、時間ｔ４５において、ホストデータ転送制御部１１４は、カウンタにより、一つのセクタデータに対する最後の１バイトのライトであることを検出すると、転送終了信号１１０３をアサートする。転送終了信号１１０３がアサートされると、ステータスレジスタ１１１はビジー状態となり、外部記憶装置１がビジーであることをホストコンピュータ２に知らせる。
【００５３】
図４における時間ｔ４６以降、ホストコンピュータ２が外部記憶装置１に書き込むセクタデータがなくなるまで、ホストコンピュータ２および外部記憶装置１は、図４に示す処理と同一の処理を行う。
【００５４】
つぎに、図８を参照してセクタバッファ制御部１３の構成を説明する。図８に、セクタバッファ制御部１３のブロック図を示す。
【００５５】
図８において、セクタバッファ制御部１３は、マイクロプロセッサ１２とフラッシュメモリ制御部１６と、ホストインタフェイス部１１とからそれぞれ指示されるアドレス、データおよびライト信号をうけてセクタバッファＡまたはＢのいずれかを選択してのアクセスを制御する。セクタバッファ制御部１３は、アドレスを選択するためのアドレス選択回路１３１と、ライト信号を選択するためのライト信号選択回路１３２と、ライトデータを選択するためのライトデータ選択回路１３３と、リードデータを選択するためのリードデータ選択回路１３４とを備える。
【００５６】
図８において、アドレス選択回路１３１は、マイクロプロセッサアドレスバス１０１ａ、ホスト間転送アドレスバス０２ａ、および、フラッシュ間転送アドレスバス１０３ａのいずれかのバスからアドレスを入力し、そのアドレスを解析し、セクタバッファＡまたはＢのいずれかを選択し、選択したセクタバッファに対応するセクタバッファＡアドレスバス１０４ａまたはセクタバッファＢアドレスバス１０５ａへ転送されたアドレスを出力する。また、アドレス選択回路１３１は、ライト信号選択回路１３２と、ライトデータ選択回路１３３と、リードデータ選択回路１３４とに対して、マイクロプロセッサ１２とフラッシュメモリ制御部１６と、ホストインタフェイス部１１とから出力される信号のうちいずれを選択し、また、セクタバッファＡまたはＢのいずれかを選択するかを示す選択信号１３１１〜１３１６を出力する。例えば、マイクロプロセッサ１２からマイクロプロセッサアドレスバス１０１ａを介してセクタバッファＡのアドレスが指示されている場合には、他の選択回路に対して、マイクロプロセッサ１２から指示されている信号線を選択するとともに、セクタバッファＡを選択するように、選択信号１３１１をアサートすることにより指示する。また、マイクロプロセッサ１２からマイクロプロセッサアドレスバス１０１ａを介してセクタバッファＢのアドレスが指示されている場合には、他の選択回路に対して、マイクロプロセッサ１２から指示されている信号線を選択するとともに、セクタバッファＢを選択するように、選択信号１３１２をアサートすることにより指示する。また、アドレス選択回路１３１は、ホスト間転送アドレスバス１０２ａが、セクタバッファＡを選択しているときには選択信号１３１３をアサートし、セクタバッファＢを選択しているときには１３１４をアサートする。さらに、アドレス選択回路１３１は、フラッシュ間転送アドレスバス１０３ａが、セクタバッファＡを選択しているときには選択信号１３１５をアサートし、セクタバッファＢを選択しているときには１３１６をアサートする。
【００５７】
ライト信号選択回路１３２は、選択信号１３１１〜選択信号１３１６に従って、マイクロプロセッサライト信号１０１ｄ、ホスト間転送ライト信号１０２ｃまたはフラッシュ間転送ライト信号１０３ｃからの信号を選択し、セクタバッファＡライト信号１０４ｃとセクタバッファＢライト信号１０５ｃとのいずれかに切り替えて出力する。選択信号１３１１がアサートされているときにはマイクロプロセッサライト信号１０１ｄがセクタバッファＡライト信号１０４ｃに出力され、選択信号１３１２がアサートされているときにはマイクロプロセッサライト信号１０１ｄがセクタバッファＢライト信号１０５ｃに出力され、選択信号１３１３がアサートされているときにはホスト間転送ライト信号１０２ｃがセクタバッファＡライト信号１０４ｃに出力され、選択信号１３１４がアサートされているときにはホスト間転送ライト信号１０２ｃがセクタバッファＢライト信号１０５ｃに出力され、選択信号１３１５がアサートされているときにはフラッシュ間転送ライト信号１０３ｃがセクタバッファＡライト信号１０４ｃに出力され、選択信号１３１６がアサートされているときにはフラッシュ間転送ライト信号１０３ｃがセクタバッファＢライト信号１０５ｃに出力される。
【００５８】
ライトデータ選択回路１３３は、選択信号１３１１〜選択信号１３１６に従って、マイクロプロセッサデータバス１０１ｂ、ホスト間転送データバス１０２ｂまたはフラッシュ間転送データバス１０３ｂからの信号を選択し、セクタバッファＡデータバス１０４ｂまたはセクタバッファＢデータバス１０５ｂのいずれかに切り替えて出力する。選択信号１３１１がアサートされているときにはマイクロプロセッサデータバス１０１ｂがセクタバッファＡデータバス１０４ｂに出力され、選択信号１３１２がアサートされているときにはマイクロプロセッサデータバス１０１ｂがセクタバッファＢデータバス１０５ｂに出力され、選択信号１３１３がアサートされているときにはホスト間転送データバス１０２ｂがセクタバッファＡデータバス１０４ｂに出力され、選択信号１３１４がアサートされているときにはホスト間転送データバス１０２ｂがセクタバッファＢデータバス１０５ｂに出力され、選択信号１３１５がアサートされているときにはフラッシュ間転送データバス１０３ｂがセクタバッファＡデータバス１０４ｂに出力され、選択信号１３１６がアサートされているときにはフラッシュ間転送データバス１０３ｂがセクタバッファＢデータバス１０５ｂに出力される。
【００５９】
リードデータ選択回路１３４は、選択信号１３１１〜選択信号１３１６に従って、セクタバッファＡデータバス１０４ｂまたはセクタバッファＢデータバス１０５ｂから、マイクロプロセッサデータバス１０１ｂ、ホスト間転送データバス１０２ｂ、または、フラッシュ間転送データバス１０３ｂのいずれかに切り替えて出力するリードデータ選択回路である。選択信号１３１１がアサートされているときにはセクタバッファＡデータバス１０４ｂがデータバス１３４１に出力され、選択信号１３１２がアサートされているときにはセクタバッファＢデータバス１０５ｂがデータバス１３４１に出力され、選択信号１３１３がアサートされているときにはセクタバッファＡデータバス１０４ｂがホスト間転送データバス１０２ｂに出力され、選択信号１３１４がアサートされているときにはセクタバッファＢデータバス１０５ｂがホスト間転送データバス１０２ｂに出力され、選択信号１３１５がアサートされているときにはセクタバッファＡデータバス１０４ｂがフラッシュ間転送データバス１０３ｂに出力され、選択信号１３１６がアサートされているときにはセクタバッファＢデータバス１０５ｂがフラッシュ間転送データバス１０３ｂに出力される。
【００６０】
スリーステートバッファ１３５は、データバス１３４１からのデータをマイクロプロセッサデータバス１０１ｂに出力する。マイクロプロセッサリード信号１０１ｃがアサートされているときに、データバス１３４１からのデータがマイクロプロセッサデータバス１０１ｂに出力される。
【００６１】
つぎに、セクタバッファ制御部１３のセクタバッファへの書き込み時の動作を図５を参照して説明する。
【００６２】
図５に、ホストコンピュータ２がセクタデータのライトコマンドを設定したときのセクタバッファ制御部１３におけるタイミングチャートを示す。ここで、図５における時間ｔ３３および時間ｔ３５は、図３における時間と同一であり、また、図５における時間ｔ４４および時間ｔ４６は、図３における時間と同一である。
【００６３】
図５において、セクタバッファ制御部１３は、図３における時間ｔ３３と時間ｔ３５との間において、ホスト間転送アドレスバス１０２ａで指定されたアドレスがセクタバッファＡであることをアドレス選択回路１３１において検出し、セクタバッファＡを選択するように選択信号１３１３を出力するとともに、指定されたアドレスをセクタバッファＡアドレスバス１０４ａに出力する。また、ライトデータ選択回路１３３において、ホスト間転送データバス１０２ｂのデータＤ０−０からＤ０−５１１をセクタバッファＡデータバス１０４ｂに出力し、ライト信号選択回路１３２において、ホスト間転送ライト信号１０２ｃをセクタバッファＡライト信号１０４ｃに出力することにより、セクタバッファＡ１４にホストコンピュータ２が書き込んだセクタデータを書き込む。
【００６４】
セクタバッファ制御部１３は、図４における時間ｔ４４と時間ｔ４６との間において、ホスト間転送アドレスバス１０２ａで指定されたアドレスがセクタバッファＢであることをアドレス選択回路１３１において検出し、セクタバッファＢを選択するように選択信号１３１４を出力するとともに、指定されたアドレスをセクタバッファＢアドレスバス１０５ａに出力する。また、ライトデータ選択回路１３３において、ホスト間転送データバス１０２ｂのデータＤ１−０からＤ１−５１１をセクタバッファＢデータバス１０５ｂに出力し、ライト信号選択回路１３２において、ホスト間転送ライト信号１０２ｃをセクタバッファＢライト信号１０５ｃに出力することにより、セクタバッファＢ１５にホストコンピュータ２が書き込んだセクタデータを書き込む。
【００６５】
以上、説明したように動作することにより、ホストコンピュータから転送されたデータは、セクタバッファに格納される。その後、マイクロプロセッサ１２の指示により、セクタバッファのデータは、フラッシュメモリの指定されたアドレスに対応する領域に転送されて保持される。
【００６６】
つぎに、外部記憶装置１内のクロック発振の停止および開始の動作について図６を参照して説明する。図６は、外部記憶装置１内のクロック発振の停止および開始を示すタイミングチャートを示している。
【００６７】
図６に示すステップ６１において、マイクロプロセッサ１２は、ホストコンピュータ２が、あらかじめ定めた時間、外部記憶装置１に対してアクセスを行わないと、プロセッサアドレスバス１０１ａ、マイクロプロセッサデータバス１０１ｂおよびマイクロプロセッサライト信号１０１ｄを使用して、クロック発振制御部１７にクロック発振の停止を設定する。クロック発振制御部１７は、クロック発振停止の指示を受けると、あらかじめ定められた時間であるステップ６２の時間が経過した後に、クロック発振を停止させるために、クロック発振停止信号１００５をアサートする。クロック発振停止信号１００５がアサートされると、発振装置１８は、クロック信号１００６をローレベルに固定することでクロック発振を停止する。
【００６８】
その後、時間ｔ６１において、ホストコンピュータ２からコマンドの書き込みがあると、ホストインターフェイス部１１のコマンドブロックレジスタ群１１２で、コマンドの書き込みを検出し、ＯＲ回路１１５を介してホストインタフェース割り込み信号１００２がアサートされると、クロック発振制御部１７は、クロック発振停止信号１００５をネゲートする。クロック発振停止信号１００５がネゲートされると、発振装置１８は、クロック発振を開始する。ここで、図６に示す時間ｔ６１におけるホストインタフェース部１１からの割り込み信号１００２は、図３に示す時間ｔ３１におけるホストコンピュータ２がセクタデータのライトコマンドを設定してきたときに生成されるコマンド書き込み信号１１０４がＯＲ回路１１５を介してか出力される信号である。
【００６９】
ステップ６３において、クロック発振制御部１７は、クロック発振制御部１７内部に持つカウンタを用いて、クロック信号１００６によるカウントアップを行い、クロック発振が安定するまでの時間を計測する（例えば、あらかじめ定めた数のカウントを行ったときに、クロックが安定したとすることができる。クロック発振が安定した後に、クロック発振制御部１７は、クロック信号１００４の出力を開始し、これと同時に、ホスト割り込み要求信号１００１をアサートする。このホスト割り込み要求信号１００１のアサートは、安定したクロックの発振が開始したことを、マイクロプロセッサ１２に通知するための信号であり、時間ｔ６１においてアサートされたホストインタフェース割り込み信号１００２により発振を開始した後に、クロック発振の安定を待ってマイクロプロセッサ１２に出力される。また、ホスト割り込み要求信号１００１は、時間ｔ６２において、マイクロプロセッサ１２によりネゲートするように指示されるとネゲートする。
【００７０】
ここで、図６に示すホスト割り込み要求信号１００１は、クロック信号１００４の開始と同時にアサートされているが、マイクロプロセッサ１２の割り込み要求信号の仕様により、ホスト割り込み要求信号１００１をクロック信号１００４の開始よりも前または後でアサートすることも可能である。
【００７１】
つぎに、時間ｔ６３では、ホストインタフェース部１１において、１セクタ分の転送が終了したときに出力される転送終了信号がＯＲ回路１１５を介してホストインタフェース割り込み信号１００２としてアサートされる。この場合、時間ｔ６３は、図３に示す時間ｔ３４の後に、転送終了信号が立ち上がった時間に相当する。クロック発振制御部１７は、ホストインタフェース割り込み信号１００２がアサートされると、時間ｔ６３では、クロック発振停止信号１００５をアサートしていない（クロックが発振している状態である）ので、ホスト割り込み要求信号１００１をアサートすることにより、１セクタ分の転送終了をマイクロプロセッサ１２に通知する。マイクロプロセッサ１２では、時間ｔ６２の前においてホスト割り込み要求信号１００１を受けた後に、クロックの停止を指示していないので、時間ｔ６３において再度、ホスト割り込み要求信号１００１を受けると、１セクタ分の転送が終了したとして、以後、マイクロプロセッサ１２がホストコンピュータ２のアクセスの制御を行う。
【００７２】
前述したように、本実施の形態によれば、図３に示す時間ｔ３３から時間ｔ３５の間では、発振装置１８によるクロック発振の安定とは無関係に、ホストインタフェース部１１は、ホストコンピュータ２からのセクタデータのライトアクセスに対して、セクタデータをセクタバッファＡ１４に格納させることができる。一方、発振装置１８は、図３に示す時間ｔ３１（図６に示す時間ｔ６１）から、クロック発振を開始し、発振が安定したあとに、マイクロプロセッサ１２にその旨を通知することにより、マイクロプロセッサ１２は、その後、ホストコンピュータ２のアクセスの制御を行うことができる。
【００７３】
つぎに、第２の実施の形態を、図７を参照して説明する。第２の実施の形態では、ホストコンピュータ２が２つのセクタ分のセクタデータを書き込む場合に、ホストインタフェース部１１が書き込みを制御する際の動作について説明する。図７は、図３と同様に、ホストコンピュータ２が二つのセクタデータのライトコマンドを書き込んだときのホストインタフェース部１１におけるタイミングチャートを示している。図７に示すタイミングチャートでは、ホストコンピュータ２が書き込む二つのセクタデータを、連続して、セクタバッファＡ１４とセクタバッファＢ１５との二つのセクタバッファに書き込んでいる。この場合、ホストインタフェース部１１は、２つのセクタデータを書き込んだ後に、セクタデータの転送終了を転送終了信号１１０３により通知するが、それ以外の構成及び動作は、第１の実施の形態と同様である。
【００７４】
図７に示す時間ｔ７１と時間ｔ７２との間において、ホストコンピュータ２が、ホストアドレスバス２０１ａに、コマンドブロックレジスタ群１１２におけるコマンドレジスタのアドレスを出力し、また、ホストデータバス２０１ｂにセクタデータのライトコマンドを出力する。セクタデータのライトコマンドが書き込まれると、コマンドブロックレジスタ群１１２はコマンド書き込み信号１１０４をアサートする。時間ｔ７１において、コマンド書き込み信号１１０４がアサートされたことにより、ステータスレジスタ１１１がビジー状態に設定される。
【００７５】
次いで、時間ｔ７２において、ホストコマンドデコード部１１３は、ホストコンピュータ２が書き込んだコマンドがセクタデータのライトコマンドであることを検出し、ホストライト信号２０１ｄの立ち上がりエッジにより、ライトコマンド書き込み信号１１０１をアサートする。ライトコマンド書き込み信号１１０１がアサートされることにより、ステータスレジスタ１１１はデータ転送要求を示すレディ状態に設定される。
【００７６】
時間ｔ７２と時間ｔ７３の間において、ホストコンピュータ２は、ステータスレジスタ１１１をリードする。ホストコンピュータ２は、ステータスレジスタ１１１がデータ転送要求を示すレディ状態であることを確認すると、時間ｔ７３と時間ｔ７４の間で、セクタデータの１バイト単位での書き込みを開始する。また、時間ｔ７３において、ホストコンピュータ２がライトアクセスを行ったので、ホストコマンドデコード部１１３はライトコマンド書き込み信号１１０１をネゲートする。
【００７７】
時間ｔ７３から時間ｔ７４の間、ホストコンピュータ２は、データＤ０−０からデータＤ０−５１１の５１２バイトからなる一つのセクタデータを１バイト単位にホストライト信号２０１ｄとともに出力する。
【００７８】
ホストデータ転送制御部１１４は、ホストコンピュータ２のホストライト信号２０１ｄを受けてその反転信号を書き込みクロックとしてホスト間転送ライト信号１０２ｃを出力する。また、ホストコンピュータ２が書き込むデータＤ０−０からデータＤ０−５１１は、ホストデータ転送制御部１１４によって、セクタバッファ制御部１３へ出力される。このとき、ホストデータ転送制御部１１４は、セクタバッファ制御部１３に対し、セクタバッファＡ１４に対するライトであることをホスト間転送アドレスバス１０２ａを使用して指示する。
【００７９】
ホストコンピュータ２のデータＤ０−５１１の書き込みが終了したときに、ホストデータ転送制御部１１４は、第１の実施の形態における動作と異なり、一つのセクタデータの転送が終了したことを示す転送終了信号１１０３をアサートしない。本実施の形態においては、ホストデータ転送制御部１１４は、２セクタ数分（１０２４バイト）のデータが書き込まれたことを監視するために、１０２３までカウントするカウンタを内部に備える。
【００８０】
時間ｔ７４と時間ｔ７５の間で、ステータスレジスタ１１１はデータ転送要求を示すレディ状態を示しているので、ホストコンピュータ２は、時間ｔ７５から２番目のセクタデータＤ１−０からＤ１−５１１のライトを開始する。
【００８１】
時間ｔ７６において、ホストデータ転送制御部１１４は、かうんたにより、２番目のセクタデータの最後のデータＤ１−５１１のライトであることを検出すると、２セクタ分の転送が終了した事を知らせるために、転送終了信号１１０３をアサートする。転送終了信号１１０３がアサートされたことにより、ステータスレジスタ１１１はビジー状態に設定される。また、時間ｔ７７において、ホストコマンドデコード部１１３は、転送終了信号１１０３の立ち下がりで、転送が終了したとして、ライト信号１１０２をネゲートする。その後の動作は、図４に示す動作と同様にすることができる。
【００８２】
第２の実施の形態によれば、マイクロプロセッサ１２が動作していなくても２セクタ分のセクタデータの転送を受け付ける事ができる。
【００８３】
また、第２の実施の形態では、ホストコンピュータ２がライトする二つのセクタデータを、連続で、外部記憶装置１に内蔵される二つのセクタバッファに書き込む場合を説明したが、外部記憶装置１内に三つ以上のセクタバッファを設けることにより、ホストデータ転送制御部１１４において、ホストコンピュータ２がライトする三つ以上の複数のセクタデータを、連続で書き込むことも実現できる。
【００８４】
また、第１及び第２の実施の形態においては、データバス幅を１バイトとして説明しているが ２バイトもしくはそれ以上のバイト幅にしてもよい。例えば、ホストバス２０１のデータバス幅が２バイトの場合には、ホスト間転送バス１０２、セクタバッファバスＡ１０４およびセクタバッファバスＢ１０５のデータバス幅を２バイトとすることにより、ホストコンピュータ２のセクタデータの転送に対応できる。同様に、フラッシュバス１０６のデータバス幅が２バイトの場合でも、本発明の実施の形態における外部記憶装置１は対応可能である。
【００８５】
次に、第１及び第２の実施の形態において、外部記憶装置１からセクタデータのリードを行うときの動作を図９および図１０を参照して説明する。  図９は、ホストコンピュータ２が外部記憶装置１からセクタデータのリードを行うときのタイミングチャートを示している。また、図１０は、図９に示す時間ｔ９８以降のホストコンピュータ２によるセクタデータのリードに関するタイミングチャートを示している。
【００８６】
図９に示す時間ｔ９１と時間ｔ９２とにおいて、ホストコンピュータ２がセクタデータのリードコマンドを書き込むと、コマンド書き込み信号１１０４がアサートされ、マイクロプロセッサ１２に割り込み要求を発生する。時間ｔ９２と時間ｔ９３の間では、マイクロプロセッサ１２により、ホストコンピュータ２が書き込んだコマンドなどの解析が行われる。時間ｔ９３と時間ｔ９４では、マイクロプロセッサ１２がフラッシュメモリ群１９にフラッシュメモリに対するコマンドやフラッシュメモリに格納されているデータのアドレスを設定している。マイクロプロセッサ１２によるフラッシュメモリの設定後、時間ｔ９５と時間ｔ９６との間においてマイクロプロセッサ１２はフラッシュメモリ制御部１６に対しフラッシュメモリから５１２バイトのデータをリードすることを設定する。時間ｔ９６と時間ｔ９７の間では、フラッシュメモリ制御部１６が、フラッシュメモリに対し、フラッシュリード信号１０６ｃをアサートし、フラッシュタイミング信号１０６ｅのタイミングでデータＤ０からデータＤ５１１をリードし、フラッシュメモリからリードしたデータをフラッシュ間転送アドレスバス１０３ａ、フラッシュ間転送データバス１０３ｂそしてフラッシュ間転送ライト信号１０３ｃを使用して、セクタバッファ制御部１３に対し、セクタバッファＡに書き込むことを示している。フラッシュメモリ群１９から５１２バイトのデータリードが終了すると、フラッシュメモリ制御部１６はマイクロプロセッサ１２に対し転送が終了したことを示す割り込み要求信号１００３をアサートする（時間ｔ９７と時間ｔ９８との間）。
【００８７】
図１０に示す時間ｔ１０１と時間ｔ１０２との間において、マイクロプロセッサ１２は、ホストデータ転送制御部１１４にセクタバッファＡ１４から５１２バイトのセクタデータリードを設定する。その後、マイクロプロセッサ１２は、ステータスレジスタ１１１にレディを書き込む（時間ｔ１０２と時間ｔ１０３の間）。ホストコンピュータ２は、時間ｔ１０３と時間ｔ１０４との間において、外部記憶装置１がレディ状態であることを確認すると、時間ｔ１０４と時間ｔ１０６との間において、データレジスタに対するリードをアクセスを５１２回行い、セクタデータのリードを行う。時間ｔ１０３と時間ｔ１０４との間において、ホストデータ転送制御部１１４は、ホストコンピュータ２のデータレジスタのリードアクセスに対応して、セクタバッファ制御部１３にセクタバッファＡ１４からのリードを行い、セクタバッファ制御部１３からのホスト間転送データバス１０２ｂのデータをホストデータバス２０１ｂに出力する。
【００８８】
時間ｔ１０５において、ホストデータ転送制御部１１４は、一つのセクタデータに対する最後の１バイトのリードであることを検出すると、転送終了信号１１０３をアサートする。転送終了信号１１０３は、一つのセクタデータにおける最後の１バイトのアクセスと同じタイミングのパルス信号である。転送終了信号１１０３がアサートされることにより、ステータスレジスタ１１１はビジー状態となり、外部記憶装置１がビジーであることをホストコンピュータ２に知らせる。
【００８９】
図１０に示す時間ｔ１０６以降、ホストコンピュータ２が外部記憶装置１から読み出すセクタデータがなくなるまで、ホストコンピュータ２と外部記憶装置とは、図９および図１０と同一の処理を行う。
【００９０】
以上説明したように、第１および第２の実施の形態によれば、フラッシュメモリなどの不揮発性半導体メモリを用いた外部記憶装置において、ホストコンピュータがコマンドを書き込むと同時に、ホストコンピュータが書き込んだコマンドを判定するホストコマンドデコード部を設けることで、ホストコンピュータが書き込んだコマンドがセクタ・ライトコマンドである場合には、ホストコマンドデコード部がステータスレジスタをデータ転送要求を示すレディ状態に設定することで、外部記憶装置はホストコンピュータからのセクタデータの書き込みに対し即座に応答することが可能になり、ホストコンピュータが書き込むセクタデータを、ホストコンピュータからの書き込み信号をクロックにすることにより、外部記憶装置に内蔵のセクタバッファに書き込むことが可能となる。
【００９１】
また、外部記憶装置内のクロック発振が停止している間でも、ホストコンピュータからのコマンドを判定し、書き込み信号をクロックとすることで、外部記憶装置内部のクロック発振の安定を待たずに、ホストコンピュータが書き込むセクタデータを受け付けることが可能となる。これにより、クロック発振を停止することで低消費電力を実現している外部記憶装置において、ホストコンピュータからのセクタデータの書き込みに対する高速化を実現できる。
【００９２】
【発明の効果】
以上説明したように、本発明によれば、外部記憶装置において、ホストコンピュータがセクタデータのライトコマンドを書き込んだときの高速な応答を、クロック発振が停止している間でも可能とすることができる。また、セクタデータのライトアクセスに対する高速化を低消費電力とともに実現することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態における外部記憶装置のブロック図。
【図２】本発明の第１の実施の形態におけるホストインタフェース部のブロック図。
【図３】本発明の第１の実施の形態において、ホストコンピュータがセクタデータのライトコマンドを書き込んだときのホストインタフェース部におけるタイミングチャート。
【図４】本発明の第１の実施の形態において、ホストコンピュータがセクタデータを書き込むときのホストインタフェース部におけるタイミングチャート。
【図５】本発明の第１の実施の形態におけるセクタバッファ制御部のタイミングチャート。
【図６】本発明の第１の実施の形態のクロック発振制御部におけるクロック発振の停止および開始のタイミングチャート。
【図７】本発明の第２の実施の形態において、ホストコンピュータがセクタデータのライトコマンドを書き込んだときのホストインタフェース部におけるタイミングチャート。
【図８】本発明の第１の実施の形態におけるセクタバッファ制御部のブロック図。
【図９】本発明の第１および第２のの実施の形態におけるデータ読みだし時におけるタイミングチャート。
【図１０】本発明の第１および第２のの実施の形態におけるデータ読みだし時におけるタイミングチャート。
【符号の説明】
１…外部記憶装置、１１…ホストインタフェース部、１２…マイクロプロセッサ、１３…セクタバッファ制御部、１４…セクタバッファＡ、１５…セクタバッファＢ、１６…フラッシュメモリ制御部、１７…クロック発振制御部、１８…発振装置、１９…不揮発性半導体メモリであるフラッシュメモリ群、１１１…ステータスレジスタ、１１２…コマンドブロックレジスタ群、１１３…ホストコマンドデコード部、１１４…ホストデータ転送部。
【図１】
0003729591.tif 000002
【図２】
0003729591.tif 000003
【図３】
0003729591.tif 000004
【図４】
0003729591.tif 000005
【図５】
0003729591.tif 000006
【図６】
0003729591.tif 000007
【図７】
0003729591.tif 000008
【図８】
0003729591.tif 000009
【図９】
0003729591.tif 000010
【図１０】
0003729591.tif 000011