JP3729591B2 - 記憶装置およびクロック発振停止時のデータ受け付け制御方法 - Google Patents
記憶装置およびクロック発振停止時のデータ受け付け制御方法 Download PDFInfo
- Publication number
- JP3729591B2 JP3729591B2 JP09093897A JP9093897A JP3729591B2 JP 3729591 B2 JP3729591 B2 JP 3729591B2 JP 09093897 A JP09093897 A JP 09093897A JP 9093897 A JP9093897 A JP 9093897A JP 3729591 B2 JP3729591 B2 JP 3729591B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- clock
- oscillation
- host
- sector
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Description
【発明の属する技術分野】
本発明は、電気的に書き換え可能な不揮発性半導体メモリなどの記憶媒体を備える外部記憶装置に係わり、特に、任意のバイト数からなるセクタデータをセクタ単位に書き込むことができる外部記憶装置に関する。
【0002】
【従来の技術】
携帯型情報処理端末などの小型コンピュータの普及に伴って、コンピュータシステムの小型軽量化、低消費電力化に対する要求が高まってきている。不揮発性半導体メモリを用いた外部記憶装置は、磁気ディスクなどのような駆動系を必要としないために低消費電力を実現でき、さらに、メモリモジュールで構成されるので、薄型の小型記憶装置を実現できる。
【0003】
このような不揮発性半導体メモリを用いた外部記憶装置の一つとして、フラッシュメモリを用いた外部記憶装置がある。フラッシュメモリは書き換え回数の限界があるため、外部記憶装置では、フラッシュメモリの書き換え回数をチェックし、フラッシュメモリ全体の書き換え回数を平均化する処理を行っている。
【0004】
このようなフラッシュメモリを用いた外部記憶装置では、特開平5−27924号公報に示されるように、フラッシュメモリの書き換え回数の制御を行うために、マイクロプロセッサなどのインテリジェントな処理装置が組み込まれている。このマイクロプロセッサを動作させるためには、水晶発振器などのクロックを発生させる装置が必要となる。
【0005】
【発明が解決しようとする課題】
クロック発振を行う場合の消費電流は大きくなるので、外部記憶装置が動作していないときには、水晶発振器のクロック発振を止めてしまうことが、低消費電力を実現する上での重要なポイントとなる。
【0006】
しかし、水晶発振器のクロック発振が止まっている状態からクロック発振を開始し、クロック発振が安定するまでには、数百マイクロ秒から数ミリ秒の時間が必要となる。例えば、外部記憶装置が動作していないときには、水晶発振器のクロック発振を止めてしまうような外部記憶装置の場合、ホストコンピュータがセクタデータを書き込むためのコマンド(以下、セクタ・ライトコマンドという)を外部記憶装置に書き込むと、外部記憶装置内部では、外部記憶装置内部のクロック発振が停止している場合には、ホストコンピュータからのコマンドの書き込みによってクロック発振を開始させるが、マイクロプロセッサはクロック発振が安定するまでは動作することができない。このため、マイクロプロセッサは、クロック発振が安定した後に、ホストコンピュータが発行したコマンドの解析やフラッシュメモリへの書き込み回数を確認の処理を開始することができる。
【0007】
したがって、ホストコンピュータがセクタ・ライトコマンドを書き込んだときに、従来の外部記憶装置は、クロック発振が安定するまで、ホストコンピュータが書き込むセクタデータを受け付けることができない。つまり、従来の外部記憶装置は、クロック発振が安定するまでの間、ホストコンピュータを待たせることになり、セクタデータの書き込みのときには高速なデータ転送が実現できない。
【0008】
本発明の目的は、外部記憶装置が動作していないときには、水晶発振器のクロック発振を止めてしまうような外部記憶装置において、ホストコンピュータからのセクタ・ライトコマンドに対して、ホストコンピュータを待たせることなく、瞬時にホストコンピュータが書き込むセクタデータを受け付けることができる外部記憶装置を提供することである。
【0009】
本発明の他の目的は、外部記憶装置の内部でクロック発振が停止している間でも、ホストコンピュータからのセクタ・ライトコマンドに対して、クロック発振の安定を待たずに、瞬時にホストコンピュータが書き込むセクタデータを受け付けることができる外部記憶装置を提供することである。
【0010】
【課題を解決するための手段】
上記目的を達成するために、本発明は、クロックを発振する発振手段と、当該発振手段におけるクロックの発振を停止させる停止指示手段と、外部装置からのデータを記憶する記憶手段と、前記外部装置の前記記憶手段のデータの読み出し要求と書き込み要求とを受け付ける受け付け手段と、前記外部装置からのデータを一時的に保持する保持手段と、前記保持手段の読み出しと書き込みとを制御する制御手段と、前記外部装置からのデータの転送を前記クロックに従って制御するプロセッサとを有する記憶装置において、前記受け付け手段は、前記発振手段のクロックが停止しているときにも、前記外部装置の前記記憶手段のデータの書き込み要求を受け付け、前記制御手段は、前記受け付け手段が、前記書き込み要求を受け付けたときにも、前記保持手段に前記外部装置からのデータを保持させる。これにより、発振手段がクロック発振を停止しているときにも、外部装置からの書き込み要求を受け付けて、保持手段に外部装置から出力されたデータを保持させることができる。また、クロック発振が安定した後(例えば、クロックの発振の開始を指示してからあらかじめ定めた時間経過後)は、プロセッサが、保持手段から記憶手段に転送を指示することができる。
【0011】
また、本発明の別の態様によれば、外部装置に接続されるインタフェース部と、データを格納するためのメモリと、外部装置が書き込むデータまたは読み出すデータを一時格納するバッファと、前記バッファへのアクセスを制御するバッファ制御部と、あらかじめ定めた周波数のクロック信号を発振するための発振装置と、前記発振装置にクロック発振の停止を指示するクロック発振制御部と、前記外部装置とのデータ転送を制御するプロセッサとを有する記憶装置において、 前記インタフェース部は、前記外部装置のコマンドを解析するコマンドデコード部と、前記外部装置と前記記憶装置間のデータの転送を制御するデータ転送制御部とを有し、 前記コマンドデコード部は、前記発振装置のクロック発振が停止しているときにも、前記外部装置がデータの書き込みを要求するコマンドを解析し、 前記データ転送制御部は、前記発振装置のクロック発振が停止しているときにも、前記外部装置のライト信号にしたがって、前記外部装置から出力されたデータを前記バッファ制御部に転送し、前記バッファ制御部は、前記発振装置のクロック発振が停止しているときにも、前記データ転送制御部から転送されたデータを、前記ライト信号にしたがって、前記バッファに書き込む。この場合、コマンドデコード部は、前記発振装置のクロック発振が停止しているときにも、外部装置が書き込んだコマンドが書き込みを要求するコマンド(セクタ・ライトコマンド)であることを解析する。これにより、外部装置が書き込むデータは、データ転送制御部において、バッファ制御部に転送され、バッファ制御部によりバッファにデータが書き込まれる。さらに、外部装置がコマンドを書き込むときのライト信号をクロック信号として使用することで、外部記憶装置内のクロック発振が停止している間でも、コンピュータが書き込むデータを受け付けることが可能となる。
【0012】
また、 前記インタフェース部は、前記コンピュータに対し当該記憶装置が転送の受け付けが可能であるかないかの状態を示すステータスレジスタをさらに有するようにしてもよい。
【0013】
この場合、外部装置がコマンドを書き込んだ場合、外部記憶装置は、コンピュータが書き込んだコマンドの解析中であることやコマンドが指定した処理を外部装置に対して転送の受け付けが可能でないこと(ビジー状態)を、ステータスレジスタに設定することで、外部装置に知らせることができる。
【0014】
さらに、前記バッファ制御部は、前記データ転送制御部からのライト信号と、前記プロセッサからのライト信号とを選択する選択回路を備えるようにしてもよい。
【0015】
【発明の実施の形態】
以下、本発明の不揮発性半導体メモリを用いた外部記憶装置の実施の形態を図面を参照して説明する。
【0016】
図1に、本発明の実施の形態における外部記憶装置のシステム構成のブロック図を示す。
【0017】
図1において、外部記憶装置1は、不揮発性半導体メモリであるフラッシュメモリを記憶媒体として用いている。また、外部記憶装置1は、PCカードとして、一つのカード内に内蔵することが可能である。
【0018】
外部記憶装置1は、セクタデータを格納するための不揮発性半導体メモリであるフラッシュメモリ群19と、ホストコンピュータ2とフラッシュメモリ間のセクタデータ転送を総合的に制御し、フラッシュメモリ内のセクタデータの書き換え回数などの管理を行うマイクロプロセッサ12と、ホストコンピュータ2とのインタフェースを司るホストインタフェース部11と、ホストコンピュータ2が書き込むセクタデータおよびホストコンピュータが読み出すセクタデータを一時格納するために使用するセクタバッファA14およびB15と、セクタバッファA14およびB15への書き込みおよび読み出しを指示するセクタバッファ制御部13と、クロック発振を行う発振装置18と、発振装置18に対しクロック発振の開始および停止を指示するクロック発振制御部17と、マイクロプロセッサ12の指示に従ってフラッシュメモリに対し消去や書き込み、読み出しなどのコマンド発行し、フラッシュメモリとセクタバッファ間のセクタデータ転送をセクタ単位で制御するフラッシュメモリ制御部16とを有する。本実施の形態においては、フラッシュメモリ群19にホストコンピュータ2が書き込もうとするデータは、セクタバッファ制御部13により、使用していないセクタバッファA14もしくはB15に一時的に格納され、さらに、フラッシュメモリ制御部16を介して、フラッシュメモリ群19に転送されて書き込まれる。また、フラッシュメモリ群19からホストコンピュータ2が読み出そうとするデータは、フラッシュメモリ制御部16を介して、フラッシュメモリ群19から読み出され、セクタバッファ制御部13により、使用していないセクタバッファA14もしくはB15に一時的に格納され、ホストインタフェース部11を介してホストコンピュータ2に転送される。また、ホストコンピュータ2が外部記憶装置1にアクセスしていないときには発振装置18の動作を停止させている。ホストコンピュータ2が外部記憶装置1にデータの書き込みを行う場合には、発振装置18の動作が安定する前においては、発振装置18によるクロック信号の代わりに、ホストコンピュータ2から指示されるホストライト信号201dを用いて、セクタバッファへの書き込みを行う。
【0019】
図1において、外部記憶装置1に接続されるホストコンピュータ2は、ホストアドレスを伝送するホストアドレスバス201a、データを伝送するホストデータバス201b、読み出しコマンドを伝送するホストリード信号201c、および、書き込みコマンドを伝送するホストライト信号201dを用いて、外部記憶装置1に対しセクタデータの書き込みおよび読み出しを要求するコマンドを設定し、外部記憶装置1との間でセクタデータの書き込みおよび読み出しを行う。
【0020】
ホストインタフェース部11は、ホストコンピュータ2からのコマンドの書き込みを受け付けて保持し、ホストコンピュータ2と外部記憶装置1の間のセクタデータ転送を行う。また、ホストインタフェース部11は、ホストコンピュータ2から指示されるホストライト信号201dの信号に基づいて、後述するセクタバッファ制御部13における書き込みのクロック信号を生成し、ホスト間転送ライト信号102cに生成したクロック信号を出力する。
【0021】
マイクロプロセッサ12は、ホストコンピュータ2が書き込んだコマンドを解析し、ホストコンピュータ2と外部記憶装置1の間のセクタデータ転送における制御を行う。また、マイクロプロセッサ12は、ホストが書き込んだセクタデータをフラッシュメモリに書き込む際に、フラッシュメモリの書き換え回数をフラッシュメモリ全体で平均化処理を行うなどのフラッシュメモリの管理制御を行う。
【0022】
セクタバッファ制御部13は、ホストインタフェース部11、マイクロプロセッサ12およびフラッシュメモリ制御部16からのリードアクセスまたはライトアクセスに対して、セクタバッファA14またはセクタバッファB15にデータのリードまたはライトを行う。セクタバッファ制御部13は、書き込みの時には、ホスト間転送ライト信号102cの信号に基づいて、書き込みを行うことができる。
【0023】
セクタバッファA14およびセクタバッファB15は、セクタデータを一時格納するためのセクタバッファであり、それぞれには、512バイトを単位とする1セクタデータと、それぞれのセクタデータに付加される書き換え回数などの管理情報とを格納するすることができる。管理情報は、内部のマイクロプロセッサ12によって使用され、ホストコンピュータ2からは通常のセクタデータのリードやライトアクセスによりアクセスされない。
【0024】
フラッシュメモリ制御部16は、マイクロプロセッサ12の指示に従い、フラッシュメモリ19に対しリードや消去そして書き込みなどのコマンドを発行する。フラッシュメモリ制御部16は、リードのときには指定されたアドレスに対応する、フラッシュメモリ19から読み出したデータをセクタバッファ制御部13に出力し、書き込みのときにはセクタバッファ制御部13から転送されたデータをフラッシュメモリ群19の指定されたアドレスに書き込む。また、フラッシュメモリ制御部16は、フラッシュメモリ群19に対する一つのセクタデータのリードまたは書き込みが終了すると、転送が終了したことを示す割り込み要求信号1003をアサートして転送終了をマイクロプロセッサ12に通知する。
【0025】
クロック発振制御部17は、マイクロプロセッサ12の指示でクロック発振の停止および開始の制御を行い、発振装置18からのクロック信号1006をマイクロプロセッサ12およびフラッシュメモリ制御部16にクロック信号1004として供給する。クロック発振制御部17は、クロック発振停止信号1005を使用して、発振装置18のクロック発振を停止させる。また、クロック発振制御部17は、ホストインタフェース割り込み信号1002がアサートされたときに、マイクロプロセッサ12へホスト割り込み要求信号1001を通知する。ホストインタフェース割り込み信号1002は、ホストコンピュータ2によるコマンドの書き込みがあったときと、ホストコンピュータ2と外部記憶装置1間で一つのセクタデータの転送が終了したときとにホストインタフェース部11によりアサートされる。フラッシュメモリ群19は、一つ以上の複数個のフラッシュメモリから構成され、ホストコンピュータ2が書き込んだセクタデータを格納する。
【0026】
本実施の形態では、ホストデータバス201b、プロセッサデータバス101b、ホスト間転送データバス102b、フラッシュ間転送データバス103b、セクタバッファAデータバス104b、セクタバッファBデータバス105、および、フラッシュデータバス106bの各々のデータバス幅を1バイト(8ビット)として説明する。
【0027】
つぎに、ホストインタフェース部11の内部構成を図2を参照して説明する。図2に、ホストインタフェース部11のブロック図を示す。
【0028】
図2において、ホストインタフェース部11は、外部記憶装置が使用中であるか否かの状態(ビジー状態/レディ状態)を示すステータスレジスタ111と、コマンドおよびコマンドに対応するセクタ数、セクタ番号、シリンダ数などを保持するコマンドブロックレジスタ群112と、ホストコンピュータ2により指示されたコマンドをデコードするホストコマンドデコード部113と、ホストコンピュータ2から指示されたコマンドに基づいて、データ転送を制御し、また、ホストライト信号201dの信号に基づいて、書き込みのクロック信号を生成し、ホスト間転送ライト信号102cに生成したクロック信号を出力するホストデータ制御部114とを備える。
【0029】
本実施の形態におけるホストインタフェース部11では、ホストコンピュータ2によりコマンドを書き込まれた場合、ホストコンピュータ2が書き込んだコマンドの解析中である場合と、コマンドに対応する処理をホストコンピュータに対して提供できる準備が整っていない場合とに、ステータスレジスタ111をビジー状態に設定することで、ホストコンピュータ2に使用中であることを知らせる。
【0030】
また、ホストコマンドデコード部113は、ホストコンピュータ2がコマンドを書き込むと同時に、ホストコンピュータ2が書き込んだコマンドの種類を判定する。ホストコンピュータが書き込んだコマンドがセクタ・ライトコマンドであると判定した場合には、ホストコマンドデコード部113は、ライトコマンド書き込み信号1101によりステータスレジスタ111をデータ転送要求を示すレディ状態に設定し、外部記憶装置1がホストコンピュータからのセクタデータの書き込みに対し準備が整っていることを知らせる。
【0031】
また、ホストコマンドデコード部113は、ホストデータ転送制御部114に対しても、ホストコンピュータ2からセクタデータの書き込みが発生したことをライト信号1102により通知する。これにより、ホストコンピュータ2が書き込むセクタデータは、ホストデータ転送制御部114において、セクタバッファに書き込むことが可能となる。
【0032】
さらに、ホストコンピュータ2がコマンドを書き込むときのホストライト信号201dをクロック信号として使用することで、ホストコマンドデコード部113は、外部記憶装置内のクロック発振が停止している間でも、ホストコンピュータ2が書き込むコマンドを判定することが可能となる。また、ホストデータ転送制御部114においても、ホストライト信号201dをクロック信号としてセクタバッファ制御部13に指示することにより、ホストコンピュータ2がコマンドを書き込んでから外部記憶装置内のクロック発振を開始しても、クロック発振の安定を待たずに、外部記憶装置1は、ホストコンピュータが書き込むセクタデータを受け付けることが可能となる。
【0033】
つぎに、図2に示す各ブロックの機能をより具体的に説明する。
【0034】
ステータスレジスタ111は、ホストコンピュータ2に外部記憶装置1のセクタバッファの使用状態を知らせるために、外部記憶装置1のビジー状態/レディ状態を示すレジスタであり、マイクプロセッサ12からのプロセッサアドレスバス101a、プロセッサデータバス101bおよびプロセッサライト信号101dによって、外部記憶装置1の状態(レディまたはビジー)が設定される。ステータスレジスタ111は、コマンドブロックレジスタ群112からのホストコンピュータ2によるコマンドの書き込みを示すコマンド書き込み信号1104がアサートされた場合(ホストコンピュータ2がコマンドを書き込んだとき)と、ホストデータ転送制御部114とホストコンピュータ2との間で一つのセクタデータ転送が終了したことを示す転送終了信号1103がホストデータ転送制御部114によりアサートされた場合とに、ビジー状態に設定される。また、ステータスレジスタ111は、ホストコマンドデコード部113からのホストコンピュータ2がセクタデータのライトコマンドを書き込んだことを示すライトコマンド書き込み信号1101がアサートされた場合(ホストコマンドデコーダ113でコマンドのデコードが終わり、コマンドが出力されたとき)に、データ転送要求を示すレディ状態に設定される。
【0035】
コマンドブロックレジスタ群112は、ホストコンピュータ2が書き込むコマンドを記憶するためのコマンドレジスタと、セクタデータの論理アドレス、ホストコンピュータ2がアクセスするセクタ数などを格納するための複数のデータレジスタとを有し、ホストコンピュータ2によりコマンドが書き込まれたときに、コマンド書き込みコマンド書き込み信号1104をアサートすることによりステータスレジスタ111にコマンドが書き込まれたことを通知する。 コマンドブロックレジスタ群112は、各レジスタ毎に、あらかじめレジスタアドレスが規定され、ホストコンピュータ2によりホストアドレスバス201aを介してレジスタアドレスが指示され、指示されたレジスタアドレスに対応するレジスタに、ホストデータバス102bを介して指示されたデータが格納される。ホストデータバス102bを介して転送されるデータとしては、コマンド、セクタ数、セクタバッファAもしくはBに書き込まれるデータなどがある。マイクロプロセッサ12は、ファラッシュメモリへのアクセスの際に、このコマンドブロックレジスタ群112を参照し、コマンドに対応する制御を行う。
【0036】
ホストコマンドデコード部113は、ホストコンピュータ2が書き込んだコマンドの種類を判定する。ホストコマンドデコード部113は、ホストコンピュータ2がセクタデータのライトコマンドを書き込んだと判定したときに、ライトコマンド書き込み信号1101およびライト信号1102をアサートする。また、ライトコマンド書き込み信号1101は、ホストコンピュータ2からのリードアクセスまたはライトアクセスでネゲートされ、ライト信号1102は、ホストデータ転送制御部114からの一つのセクタデータ転送が終了したことを示す転送終了信号1103の立ち下がりでネゲートされる。
【0037】
ホストデータ転送制御部114は、ホストコンピュータ2とセクタバッファA14およびセクタバッファB15との間のセクタデータの転送を行う。ホストデータ転送制御部114は、マイクロプロセッサ12の指示に従って、ホストコンピュータ2がデータのライトまたはリードアクセスにより行われるセクタデータの転送に応じて、セクタバッファ制御部13に対し、セクタバッファA14またはセクタバッファB15へのライトまたはリードアクセスを要求する。また、ホストデータ転送制御部114は、ホストコマンドデコード部113によってライト信号1102がアサートされている間、マイクロプロセッサ12の指示がなくても、ホストコンピュータ2からのセクタデータのライトアクセスに対して、セクタバッファ制御部13にセクタバッファA14へのライトアクセスを要求する。また、ホストデータ転送制御部114は、ホストコンピュータ2から指示されるホストライト信号201dの信号に基づいて、セクタバッファ制御部13における書き込みのクロック信号を生成し、ホスト間転送ライト信号102cに生成したクロック信号を出力する。ホストライト信号201dは、ホストコンピュータ2が、コマンドを書き込むとき、もしくは、データを1バイト毎に書き込むときに指示する信号であり、周期的な信号ではないが、オン/オフする信号であるため、ホストデータ転送制御部114は、このホストライト信号201dの立ち上がりもしくは立ち下がりをトリガとして、セクタバッファ制御部13における書き込みのクロック信号を生成することができる。
【0038】
ホストコンピュータ2は、ホストアドレスバス201a、ホストデータバス201bおよびホストリード信号201cを用いてステータスレジスタを読み出すことができる。
【0039】
転送終了信号1103およびコマンド書き込み信号1104は、OR回路115に入力され、OR回路115は、転送が終了したとき、もしくは、コマンドが書き込まれたときに、ホストインタフェース割り込み信号1002をクロック発振制御部17に出力する。ホストインタフェース割り込み信号1002により、クロック発振制御部17は、クロック発振を開始させる。
【0040】
つぎに、図2に示すホストインタフェース部11の動作を図3および図4を参照して説明する。
【0041】
図3に、ホストコンピュータ2がセクタデータのライトコマンドを設定したときのホストインタフェース部11におけるタイミングチャートを示す。また、図4は、図3に示す時間t35以降のホストコンピュータ2がセクタデータのライトを行うときのホストインタフェース部11におけるタイミングチャートを示している。つまり、図3は、ホストコンピュータ2が1番目のセクタデータをライトするときのタイミングチャートであり、図4は、ホストコンピュータ2が2番目のセクタデータをライトするときのタイミングチャートを示している。
【0042】
図3において、時間t31と時間t32の間で、ホストコンピュータ2が、ホストアドレスバス201aに、コマンドコマンドブロックレジスタ群112は、ホストライト信号201dの立ち下がりエッジでコマンドレジスタにホストデータバス201bのデータを書き込む。コマンドブロックレジスタ群112は、ホストライト信号201dの立ち下がりエッジにより、コマンドが書き込まれたことを示すために、コマンド書き込み信号1104をアサートする。コマンド書き込み信号1104がアサートされたことにより、ステータスレジスタ111がビジー状態に設定される。
【0043】
次いで、時間t32において、ホストコマンドデコード部113は、コマンドレジスタに対するコマンドデータの書き込みがセクタデータのライトコマンドであることを検出し、ホストライト信号201dの立ち上がりエッジにより、ライトコマンド書き込み信号1101をアサートする。ライトコマンド書き込み信号1101がアサートされることにより、ステータスレジスタ111はデータ転送要求を示すレディ状態に設定される。
【0044】
時間t32と時間t33の間において、ホストコンピュータ2は、ステータスレジスタ111をリードする。ホストコンピュータ2は、ステータスレジスタ111がデータ転送要求を示すレディ状態であることを確認すると、ブロックレジスタ群112におけるデータレジスタのアドレスを出力し、また、ホストデータバス201bにセクタデータのライトコマンドを出力する。時間t33以降、セクタデータを1バイト単位で書き込む処理を開始する。また、時間t33において、ホストライト信号210dが立ち下がったことにより、ライトアクセスが行われたとして、ホストコマンドデコード部113は、ライトコマンド書き込み信号1101をネゲートする。
【0045】
時間t33から時間t35の間、ホストコンピュータ2は、ホストアドレスバス201aにデータレジスタのアドレスを出力し、ホストデータバス201bにデータD0−0からデータD0−511の512バイトからなる一つのセクタデータを1バイト単位に、ホストライト信号201dとともに出力する。
【0046】
さらに、ホストデータ転送制御部114は、1セクタ数分(512バイト)のデータが書き込まれたことを監視するために、511までカウントするカウンタを内部に備える。ホストデータ転送制御部114は、1バイト単位にデータの出力に対応して出力されるホストライト信号201dの立ち下がりエッジでカウンタのカウントアップを行い、そのカウンタの値を、セクタバッファAを示す、セクタバッファAの指定アドレスとともにホスト間転送アドレスバス102aに出力する。ホストコンピュータ2が出力したデータD0−0〜データD0−511は、ホストデータ転送制御部114によって、ホスト間転送データバス102bに出力される。
時間t34において、ホストデータ転送制御部114は、カウンタにより一つのセクタデータの最後の1バイトのデータの転送であることを検出すると、1セクタ分の転送が終了したことを知らせるするために、転送終了信号1103をアサートする。転送終了信号1103は、一つのセクタデータにおける最後の1バイトのアクセスの際に出力されるホストライト信号201dと同じタイミングのパルス信号である。
【0047】
転送終了信号1103がアサートされることにより、ステータスレジスタ111はビジー状態となり、外部記憶装置1がビジーであることをホストコンピュータ2に知らせる。転送終了後、つぎのセクタデータを受け付けるために、ホストデータ転送制御部114における転送条件が設定されるまで、ビジー状態が保持される。
【0048】
また、時間t35において、転送終了信号1103が立ち下がると、ホストコマンドデコード部113は、転送が終了したとして、ライト信号1102をネゲートし、ホストデータ転送制御部114に一つのセクタデータ転送終了を確認したことを知らせる。
【0049】
つぎに、図4の時間t41と時間t42の間において、マイクロプロセッサ12は、マイクロプロセッサアドレスバス101a、マイクロプロセッサデータバス101bおよびマイクロプロセッサライト信号101dを使用して、ホストデータ転送制御部114にホストコンピュータ2と外部記憶装置間1のデータ転送に関する転送条件を設定する。図4に示す例では、ホストコンピュータ2から転送される512バイトのセクタデータをセクタバッファB15に書き込むことを設定している。マイクロプロセッサ12は、コマンドブロックレジスタ群112を参照することにより、転送条件を決定し、ホストデータ転送制御部114に転送条件を設定することができる。なお、1番目のセクタの転送においては、マイクロプロセッサ12は、クロックが停止しているため、この転送条件の設定を行わないが、ホストデータ転送制御部114において、クロック停止後の最初のセクタのデータ転送においては、あらかじめ定めたセクタバッファに転送を行うように転送条件を規定しておく。
【0050】
次いで、マイクロプロセッサ12は、マイクロプロセッサアドレスバス101a、マイクロプロセッサデータバス101bおよびマイクロプロセッサライト信号101dを使用して、ステータスレジスタ111にデータ転送要求を示すレディ状態を書き込む。時間t43と時間t44の間において、ホストコンピュータ2は、ステータスレジスタ111がデータ転送要求を示すレディ状態であることを確認すると、2番目のセクタデータの書き込みを開始する。
【0051】
時間t44から時間t46の間では、図3における時間t33から時間t35に示す動作と同様に、ホストデータ転送制御部114が、ホスト間転送アドレスバス102a、ホスト間転送データバス102bおよびホスト間転送ライト信号102cを使用して、アドレス、データおよびライト信号をセクタバッファ制御部13に対して指示することによりセクタバッファB15にホストコンピュータ2が出力したデータD1−0〜データD1−511のデータを書き込みを行わせる。
【0052】
つぎに、時間t45において、ホストデータ転送制御部114は、カウンタにより、一つのセクタデータに対する最後の1バイトのライトであることを検出すると、転送終了信号1103をアサートする。転送終了信号1103がアサートされると、ステータスレジスタ111はビジー状態となり、外部記憶装置1がビジーであることをホストコンピュータ2に知らせる。
【0053】
図4における時間t46以降、ホストコンピュータ2が外部記憶装置1に書き込むセクタデータがなくなるまで、ホストコンピュータ2および外部記憶装置1は、図4に示す処理と同一の処理を行う。
【0054】
つぎに、図8を参照してセクタバッファ制御部13の構成を説明する。図8に、セクタバッファ制御部13のブロック図を示す。
【0055】
図8において、セクタバッファ制御部13は、マイクロプロセッサ12とフラッシュメモリ制御部16と、ホストインタフェイス部11とからそれぞれ指示されるアドレス、データおよびライト信号をうけてセクタバッファAまたはBのいずれかを選択してのアクセスを制御する。セクタバッファ制御部13は、アドレスを選択するためのアドレス選択回路131と、ライト信号を選択するためのライト信号選択回路132と、ライトデータを選択するためのライトデータ選択回路133と、リードデータを選択するためのリードデータ選択回路134とを備える。
【0056】
図8において、アドレス選択回路131は、マイクロプロセッサアドレスバス101a、ホスト間転送アドレスバス02a、および、フラッシュ間転送アドレスバス103aのいずれかのバスからアドレスを入力し、そのアドレスを解析し、セクタバッファAまたはBのいずれかを選択し、選択したセクタバッファに対応するセクタバッファAアドレスバス104aまたはセクタバッファBアドレスバス105aへ転送されたアドレスを出力する。また、アドレス選択回路131は、ライト信号選択回路132と、ライトデータ選択回路133と、リードデータ選択回路134とに対して、マイクロプロセッサ12とフラッシュメモリ制御部16と、ホストインタフェイス部11とから出力される信号のうちいずれを選択し、また、セクタバッファAまたはBのいずれかを選択するかを示す選択信号1311〜1316を出力する。例えば、マイクロプロセッサ12からマイクロプロセッサアドレスバス101aを介してセクタバッファAのアドレスが指示されている場合には、他の選択回路に対して、マイクロプロセッサ12から指示されている信号線を選択するとともに、セクタバッファAを選択するように、選択信号1311をアサートすることにより指示する。また、マイクロプロセッサ12からマイクロプロセッサアドレスバス101aを介してセクタバッファBのアドレスが指示されている場合には、他の選択回路に対して、マイクロプロセッサ12から指示されている信号線を選択するとともに、セクタバッファBを選択するように、選択信号1312をアサートすることにより指示する。また、アドレス選択回路131は、ホスト間転送アドレスバス102aが、セクタバッファAを選択しているときには選択信号1313をアサートし、セクタバッファBを選択しているときには1314をアサートする。さらに、アドレス選択回路131は、フラッシュ間転送アドレスバス103aが、セクタバッファAを選択しているときには選択信号1315をアサートし、セクタバッファBを選択しているときには1316をアサートする。
【0057】
ライト信号選択回路132は、選択信号1311〜選択信号1316に従って、マイクロプロセッサライト信号101d、ホスト間転送ライト信号102cまたはフラッシュ間転送ライト信号103cからの信号を選択し、セクタバッファAライト信号104cとセクタバッファBライト信号105cとのいずれかに切り替えて出力する。選択信号1311がアサートされているときにはマイクロプロセッサライト信号101dがセクタバッファAライト信号104cに出力され、選択信号1312がアサートされているときにはマイクロプロセッサライト信号101dがセクタバッファBライト信号105cに出力され、選択信号1313がアサートされているときにはホスト間転送ライト信号102cがセクタバッファAライト信号104cに出力され、選択信号1314がアサートされているときにはホスト間転送ライト信号102cがセクタバッファBライト信号105cに出力され、選択信号1315がアサートされているときにはフラッシュ間転送ライト信号103cがセクタバッファAライト信号104cに出力され、選択信号1316がアサートされているときにはフラッシュ間転送ライト信号103cがセクタバッファBライト信号105cに出力される。
【0058】
ライトデータ選択回路133は、選択信号1311〜選択信号1316に従って、マイクロプロセッサデータバス101b、ホスト間転送データバス102bまたはフラッシュ間転送データバス103bからの信号を選択し、セクタバッファAデータバス104bまたはセクタバッファBデータバス105bのいずれかに切り替えて出力する。選択信号1311がアサートされているときにはマイクロプロセッサデータバス101bがセクタバッファAデータバス104bに出力され、選択信号1312がアサートされているときにはマイクロプロセッサデータバス101bがセクタバッファBデータバス105bに出力され、選択信号1313がアサートされているときにはホスト間転送データバス102bがセクタバッファAデータバス104bに出力され、選択信号1314がアサートされているときにはホスト間転送データバス102bがセクタバッファBデータバス105bに出力され、選択信号1315がアサートされているときにはフラッシュ間転送データバス103bがセクタバッファAデータバス104bに出力され、選択信号1316がアサートされているときにはフラッシュ間転送データバス103bがセクタバッファBデータバス105bに出力される。
【0059】
リードデータ選択回路134は、選択信号1311〜選択信号1316に従って、セクタバッファAデータバス104bまたはセクタバッファBデータバス105bから、マイクロプロセッサデータバス101b、ホスト間転送データバス102b、または、フラッシュ間転送データバス103bのいずれかに切り替えて出力するリードデータ選択回路である。選択信号1311がアサートされているときにはセクタバッファAデータバス104bがデータバス1341に出力され、選択信号1312がアサートされているときにはセクタバッファBデータバス105bがデータバス1341に出力され、選択信号1313がアサートされているときにはセクタバッファAデータバス104bがホスト間転送データバス102bに出力され、選択信号1314がアサートされているときにはセクタバッファBデータバス105bがホスト間転送データバス102bに出力され、選択信号1315がアサートされているときにはセクタバッファAデータバス104bがフラッシュ間転送データバス103bに出力され、選択信号1316がアサートされているときにはセクタバッファBデータバス105bがフラッシュ間転送データバス103bに出力される。
【0060】
スリーステートバッファ135は、データバス1341からのデータをマイクロプロセッサデータバス101bに出力する。マイクロプロセッサリード信号101cがアサートされているときに、データバス1341からのデータがマイクロプロセッサデータバス101bに出力される。
【0061】
つぎに、セクタバッファ制御部13のセクタバッファへの書き込み時の動作を図5を参照して説明する。
【0062】
図5に、ホストコンピュータ2がセクタデータのライトコマンドを設定したときのセクタバッファ制御部13におけるタイミングチャートを示す。ここで、図5における時間t33および時間t35は、図3における時間と同一であり、また、図5における時間t44および時間t46は、図3における時間と同一である。
【0063】
図5において、セクタバッファ制御部13は、図3における時間t33と時間t35との間において、ホスト間転送アドレスバス102aで指定されたアドレスがセクタバッファAであることをアドレス選択回路131において検出し、セクタバッファAを選択するように選択信号1313を出力するとともに、指定されたアドレスをセクタバッファAアドレスバス104aに出力する。また、ライトデータ選択回路133において、ホスト間転送データバス102bのデータD0−0からD0−511をセクタバッファAデータバス104bに出力し、ライト信号選択回路132において、ホスト間転送ライト信号102cをセクタバッファAライト信号104cに出力することにより、セクタバッファA14にホストコンピュータ2が書き込んだセクタデータを書き込む。
【0064】
セクタバッファ制御部13は、図4における時間t44と時間t46との間において、ホスト間転送アドレスバス102aで指定されたアドレスがセクタバッファBであることをアドレス選択回路131において検出し、セクタバッファBを選択するように選択信号1314を出力するとともに、指定されたアドレスをセクタバッファBアドレスバス105aに出力する。また、ライトデータ選択回路133において、ホスト間転送データバス102bのデータD1−0からD1−511をセクタバッファBデータバス105bに出力し、ライト信号選択回路132において、ホスト間転送ライト信号102cをセクタバッファBライト信号105cに出力することにより、セクタバッファB15にホストコンピュータ2が書き込んだセクタデータを書き込む。
【0065】
以上、説明したように動作することにより、ホストコンピュータから転送されたデータは、セクタバッファに格納される。その後、マイクロプロセッサ12の指示により、セクタバッファのデータは、フラッシュメモリの指定されたアドレスに対応する領域に転送されて保持される。
【0066】
つぎに、外部記憶装置1内のクロック発振の停止および開始の動作について図6を参照して説明する。図6は、外部記憶装置1内のクロック発振の停止および開始を示すタイミングチャートを示している。
【0067】
図6に示すステップ61において、マイクロプロセッサ12は、ホストコンピュータ2が、あらかじめ定めた時間、外部記憶装置1に対してアクセスを行わないと、プロセッサアドレスバス101a、マイクロプロセッサデータバス101bおよびマイクロプロセッサライト信号101dを使用して、クロック発振制御部17にクロック発振の停止を設定する。クロック発振制御部17は、クロック発振停止の指示を受けると、あらかじめ定められた時間であるステップ62の時間が経過した後に、クロック発振を停止させるために、クロック発振停止信号1005をアサートする。クロック発振停止信号1005がアサートされると、発振装置18は、クロック信号1006をローレベルに固定することでクロック発振を停止する。
【0068】
その後、時間t61において、ホストコンピュータ2からコマンドの書き込みがあると、ホストインターフェイス部11のコマンドブロックレジスタ群112で、コマンドの書き込みを検出し、OR回路115を介してホストインタフェース割り込み信号1002がアサートされると、クロック発振制御部17は、クロック発振停止信号1005をネゲートする。クロック発振停止信号1005がネゲートされると、発振装置18は、クロック発振を開始する。ここで、図6に示す時間t61におけるホストインタフェース部11からの割り込み信号1002は、図3に示す時間t31におけるホストコンピュータ2がセクタデータのライトコマンドを設定してきたときに生成されるコマンド書き込み信号1104がOR回路115を介してか出力される信号である。
【0069】
ステップ63において、クロック発振制御部17は、クロック発振制御部17内部に持つカウンタを用いて、クロック信号1006によるカウントアップを行い、クロック発振が安定するまでの時間を計測する(例えば、あらかじめ定めた数のカウントを行ったときに、クロックが安定したとすることができる。クロック発振が安定した後に、クロック発振制御部17は、クロック信号1004の出力を開始し、これと同時に、ホスト割り込み要求信号1001をアサートする。このホスト割り込み要求信号1001のアサートは、安定したクロックの発振が開始したことを、マイクロプロセッサ12に通知するための信号であり、時間t61においてアサートされたホストインタフェース割り込み信号1002により発振を開始した後に、クロック発振の安定を待ってマイクロプロセッサ12に出力される。また、ホスト割り込み要求信号1001は、時間t62において、マイクロプロセッサ12によりネゲートするように指示されるとネゲートする。
【0070】
ここで、図6に示すホスト割り込み要求信号1001は、クロック信号1004の開始と同時にアサートされているが、マイクロプロセッサ12の割り込み要求信号の仕様により、ホスト割り込み要求信号1001をクロック信号1004の開始よりも前または後でアサートすることも可能である。
【0071】
つぎに、時間t63では、ホストインタフェース部11において、1セクタ分の転送が終了したときに出力される転送終了信号がOR回路115を介してホストインタフェース割り込み信号1002としてアサートされる。この場合、時間t63は、図3に示す時間t34の後に、転送終了信号が立ち上がった時間に相当する。クロック発振制御部17は、ホストインタフェース割り込み信号1002がアサートされると、時間t63では、クロック発振停止信号1005をアサートしていない(クロックが発振している状態である)ので、ホスト割り込み要求信号1001をアサートすることにより、1セクタ分の転送終了をマイクロプロセッサ12に通知する。マイクロプロセッサ12では、時間t62の前においてホスト割り込み要求信号1001を受けた後に、クロックの停止を指示していないので、時間t63において再度、ホスト割り込み要求信号1001を受けると、1セクタ分の転送が終了したとして、以後、マイクロプロセッサ12がホストコンピュータ2のアクセスの制御を行う。
【0072】
前述したように、本実施の形態によれば、図3に示す時間t33から時間t35の間では、発振装置18によるクロック発振の安定とは無関係に、ホストインタフェース部11は、ホストコンピュータ2からのセクタデータのライトアクセスに対して、セクタデータをセクタバッファA14に格納させることができる。一方、発振装置18は、図3に示す時間t31(図6に示す時間t61)から、クロック発振を開始し、発振が安定したあとに、マイクロプロセッサ12にその旨を通知することにより、マイクロプロセッサ12は、その後、ホストコンピュータ2のアクセスの制御を行うことができる。
【0073】
つぎに、第2の実施の形態を、図7を参照して説明する。第2の実施の形態では、ホストコンピュータ2が2つのセクタ分のセクタデータを書き込む場合に、ホストインタフェース部11が書き込みを制御する際の動作について説明する。図7は、図3と同様に、ホストコンピュータ2が二つのセクタデータのライトコマンドを書き込んだときのホストインタフェース部11におけるタイミングチャートを示している。図7に示すタイミングチャートでは、ホストコンピュータ2が書き込む二つのセクタデータを、連続して、セクタバッファA14とセクタバッファB15との二つのセクタバッファに書き込んでいる。この場合、ホストインタフェース部11は、2つのセクタデータを書き込んだ後に、セクタデータの転送終了を転送終了信号1103により通知するが、それ以外の構成及び動作は、第1の実施の形態と同様である。
【0074】
図7に示す時間t71と時間t72との間において、ホストコンピュータ2が、ホストアドレスバス201aに、コマンドブロックレジスタ群112におけるコマンドレジスタのアドレスを出力し、また、ホストデータバス201bにセクタデータのライトコマンドを出力する。セクタデータのライトコマンドが書き込まれると、コマンドブロックレジスタ群112はコマンド書き込み信号1104をアサートする。時間t71において、コマンド書き込み信号1104がアサートされたことにより、ステータスレジスタ111がビジー状態に設定される。
【0075】
次いで、時間t72において、ホストコマンドデコード部113は、ホストコンピュータ2が書き込んだコマンドがセクタデータのライトコマンドであることを検出し、ホストライト信号201dの立ち上がりエッジにより、ライトコマンド書き込み信号1101をアサートする。ライトコマンド書き込み信号1101がアサートされることにより、ステータスレジスタ111はデータ転送要求を示すレディ状態に設定される。
【0076】
時間t72と時間t73の間において、ホストコンピュータ2は、ステータスレジスタ111をリードする。ホストコンピュータ2は、ステータスレジスタ111がデータ転送要求を示すレディ状態であることを確認すると、時間t73と時間t74の間で、セクタデータの1バイト単位での書き込みを開始する。また、時間t73において、ホストコンピュータ2がライトアクセスを行ったので、ホストコマンドデコード部113はライトコマンド書き込み信号1101をネゲートする。
【0077】
時間t73から時間t74の間、ホストコンピュータ2は、データD0−0からデータD0−511の512バイトからなる一つのセクタデータを1バイト単位にホストライト信号201dとともに出力する。
【0078】
ホストデータ転送制御部114は、ホストコンピュータ2のホストライト信号201dを受けてその反転信号を書き込みクロックとしてホスト間転送ライト信号102cを出力する。また、ホストコンピュータ2が書き込むデータD0−0からデータD0−511は、ホストデータ転送制御部114によって、セクタバッファ制御部13へ出力される。このとき、ホストデータ転送制御部114は、セクタバッファ制御部13に対し、セクタバッファA14に対するライトであることをホスト間転送アドレスバス102aを使用して指示する。
【0079】
ホストコンピュータ2のデータD0−511の書き込みが終了したときに、ホストデータ転送制御部114は、第1の実施の形態における動作と異なり、一つのセクタデータの転送が終了したことを示す転送終了信号1103をアサートしない。本実施の形態においては、ホストデータ転送制御部114は、2セクタ数分(1024バイト)のデータが書き込まれたことを監視するために、1023までカウントするカウンタを内部に備える。
【0080】
時間t74と時間t75の間で、ステータスレジスタ111はデータ転送要求を示すレディ状態を示しているので、ホストコンピュータ2は、時間t75から2番目のセクタデータD1−0からD1−511のライトを開始する。
【0081】
時間t76において、ホストデータ転送制御部114は、かうんたにより、2番目のセクタデータの最後のデータD1−511のライトであることを検出すると、2セクタ分の転送が終了した事を知らせるために、転送終了信号1103をアサートする。転送終了信号1103がアサートされたことにより、ステータスレジスタ111はビジー状態に設定される。また、時間t77において、ホストコマンドデコード部113は、転送終了信号1103の立ち下がりで、転送が終了したとして、ライト信号1102をネゲートする。その後の動作は、図4に示す動作と同様にすることができる。
【0082】
第2の実施の形態によれば、マイクロプロセッサ12が動作していなくても2セクタ分のセクタデータの転送を受け付ける事ができる。
【0083】
また、第2の実施の形態では、ホストコンピュータ2がライトする二つのセクタデータを、連続で、外部記憶装置1に内蔵される二つのセクタバッファに書き込む場合を説明したが、外部記憶装置1内に三つ以上のセクタバッファを設けることにより、ホストデータ転送制御部114において、ホストコンピュータ2がライトする三つ以上の複数のセクタデータを、連続で書き込むことも実現できる。
【0084】
また、第1及び第2の実施の形態においては、データバス幅を1バイトとして説明しているが 2バイトもしくはそれ以上のバイト幅にしてもよい。例えば、ホストバス201のデータバス幅が2バイトの場合には、ホスト間転送バス102、セクタバッファバスA104およびセクタバッファバスB105のデータバス幅を2バイトとすることにより、ホストコンピュータ2のセクタデータの転送に対応できる。同様に、フラッシュバス106のデータバス幅が2バイトの場合でも、本発明の実施の形態における外部記憶装置1は対応可能である。
【0085】
次に、第1及び第2の実施の形態において、外部記憶装置1からセクタデータのリードを行うときの動作を図9および図10を参照して説明する。 図9は、ホストコンピュータ2が外部記憶装置1からセクタデータのリードを行うときのタイミングチャートを示している。また、図10は、図9に示す時間t98以降のホストコンピュータ2によるセクタデータのリードに関するタイミングチャートを示している。
【0086】
図9に示す時間t91と時間t92とにおいて、ホストコンピュータ2がセクタデータのリードコマンドを書き込むと、コマンド書き込み信号1104がアサートされ、マイクロプロセッサ12に割り込み要求を発生する。時間t92と時間t93の間では、マイクロプロセッサ12により、ホストコンピュータ2が書き込んだコマンドなどの解析が行われる。時間t93と時間t94では、マイクロプロセッサ12がフラッシュメモリ群19にフラッシュメモリに対するコマンドやフラッシュメモリに格納されているデータのアドレスを設定している。マイクロプロセッサ12によるフラッシュメモリの設定後、時間t95と時間t96との間においてマイクロプロセッサ12はフラッシュメモリ制御部16に対しフラッシュメモリから512バイトのデータをリードすることを設定する。時間t96と時間t97の間では、フラッシュメモリ制御部16が、フラッシュメモリに対し、フラッシュリード信号106cをアサートし、フラッシュタイミング信号106eのタイミングでデータD0からデータD511をリードし、フラッシュメモリからリードしたデータをフラッシュ間転送アドレスバス103a、フラッシュ間転送データバス103bそしてフラッシュ間転送ライト信号103cを使用して、セクタバッファ制御部13に対し、セクタバッファAに書き込むことを示している。フラッシュメモリ群19から512バイトのデータリードが終了すると、フラッシュメモリ制御部16はマイクロプロセッサ12に対し転送が終了したことを示す割り込み要求信号1003をアサートする(時間t97と時間t98との間)。
【0087】
図10に示す時間t101と時間t102との間において、マイクロプロセッサ12は、ホストデータ転送制御部114にセクタバッファA14から512バイトのセクタデータリードを設定する。その後、マイクロプロセッサ12は、ステータスレジスタ111にレディを書き込む(時間t102と時間t103の間)。ホストコンピュータ2は、時間t103と時間t104との間において、外部記憶装置1がレディ状態であることを確認すると、時間t104と時間t106との間において、データレジスタに対するリードをアクセスを512回行い、セクタデータのリードを行う。時間t103と時間t104との間において、ホストデータ転送制御部114は、ホストコンピュータ2のデータレジスタのリードアクセスに対応して、セクタバッファ制御部13にセクタバッファA14からのリードを行い、セクタバッファ制御部13からのホスト間転送データバス102bのデータをホストデータバス201bに出力する。
【0088】
時間t105において、ホストデータ転送制御部114は、一つのセクタデータに対する最後の1バイトのリードであることを検出すると、転送終了信号1103をアサートする。転送終了信号1103は、一つのセクタデータにおける最後の1バイトのアクセスと同じタイミングのパルス信号である。転送終了信号1103がアサートされることにより、ステータスレジスタ111はビジー状態となり、外部記憶装置1がビジーであることをホストコンピュータ2に知らせる。
【0089】
図10に示す時間t106以降、ホストコンピュータ2が外部記憶装置1から読み出すセクタデータがなくなるまで、ホストコンピュータ2と外部記憶装置とは、図9および図10と同一の処理を行う。
【0090】
以上説明したように、第1および第2の実施の形態によれば、フラッシュメモリなどの不揮発性半導体メモリを用いた外部記憶装置において、ホストコンピュータがコマンドを書き込むと同時に、ホストコンピュータが書き込んだコマンドを判定するホストコマンドデコード部を設けることで、ホストコンピュータが書き込んだコマンドがセクタ・ライトコマンドである場合には、ホストコマンドデコード部がステータスレジスタをデータ転送要求を示すレディ状態に設定することで、外部記憶装置はホストコンピュータからのセクタデータの書き込みに対し即座に応答することが可能になり、ホストコンピュータが書き込むセクタデータを、ホストコンピュータからの書き込み信号をクロックにすることにより、外部記憶装置に内蔵のセクタバッファに書き込むことが可能となる。
【0091】
また、外部記憶装置内のクロック発振が停止している間でも、ホストコンピュータからのコマンドを判定し、書き込み信号をクロックとすることで、外部記憶装置内部のクロック発振の安定を待たずに、ホストコンピュータが書き込むセクタデータを受け付けることが可能となる。これにより、クロック発振を停止することで低消費電力を実現している外部記憶装置において、ホストコンピュータからのセクタデータの書き込みに対する高速化を実現できる。
【0092】
【発明の効果】
以上説明したように、本発明によれば、外部記憶装置において、ホストコンピュータがセクタデータのライトコマンドを書き込んだときの高速な応答を、クロック発振が停止している間でも可能とすることができる。また、セクタデータのライトアクセスに対する高速化を低消費電力とともに実現することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態における外部記憶装置のブロック図。
【図2】本発明の第1の実施の形態におけるホストインタフェース部のブロック図。
【図3】本発明の第1の実施の形態において、ホストコンピュータがセクタデータのライトコマンドを書き込んだときのホストインタフェース部におけるタイミングチャート。
【図4】本発明の第1の実施の形態において、ホストコンピュータがセクタデータを書き込むときのホストインタフェース部におけるタイミングチャート。
【図5】本発明の第1の実施の形態におけるセクタバッファ制御部のタイミングチャート。
【図6】本発明の第1の実施の形態のクロック発振制御部におけるクロック発振の停止および開始のタイミングチャート。
【図7】本発明の第2の実施の形態において、ホストコンピュータがセクタデータのライトコマンドを書き込んだときのホストインタフェース部におけるタイミングチャート。
【図8】本発明の第1の実施の形態におけるセクタバッファ制御部のブロック図。
【図9】本発明の第1および第2のの実施の形態におけるデータ読みだし時におけるタイミングチャート。
【図10】本発明の第1および第2のの実施の形態におけるデータ読みだし時におけるタイミングチャート。
【符号の説明】
1…外部記憶装置、11…ホストインタフェース部、12…マイクロプロセッサ、13…セクタバッファ制御部、14…セクタバッファA、15…セクタバッファB、16…フラッシュメモリ制御部、17…クロック発振制御部、18…発振装置、19…不揮発性半導体メモリであるフラッシュメモリ群、111…ステータスレジスタ、112…コマンドブロックレジスタ群、113…ホストコマンドデコード部、114…ホストデータ転送部。
Claims (6)
- クロックを発振する発振手段と、当該発振手段におけるクロックの発振を停止させる停止指示手段と、外部装置からのデータを記憶する記憶手段と、前記外部装置から前記記憶手段へのデータの読み出し要求と書き込み要求とを受け付ける受け付け手段と、前記外部装置からのデータを一時的に保持する保持手段と、前記保持手段のデータの読み出しと書き込みとを制御する制御手段と、前記発振手段からクロックを受けているときに前記記憶装置のデータの読み出しと書き込みを制御するプロセッサとを有する記憶装置において、
前記受け付け手段は、前記発振手段のクロックが停止しているときにも、前記外部装置の前記記憶手段のデータの書き込み要求を受け付け、書き込み要求にしたがってクロックを生成し、
前記制御手段は、前記発振手段のクロックが停止しているときにも、前記受け付け手段が生成したクロックを利用して、前記保持手段に前記外部装置からの前記書き込み要求に伴うデータを保持させ、
前記発振手段は、前記書き込み要求を受け付けたときに、前記クロックの発振を開始し、
前記プロセッサは、前記発振手段が前記クロックの発振を開始してからあらかじめ定めた時間経過後に、前記保持手段に保持された前記外部装置からの前記書き込み要求に伴うデータを前記記憶手段に転送する
ことを特徴とする記憶装置。 - 外部装置に接続されるインタフェース部と、データを格納するためのメモリと、外部装置が書き込むデータまたは読み出すデータを一時格納するバッファと、前記バッファへのアクセスを制御するバッファ制御部と、あらかじめ定めた周波数のクロック信号を発振するための発振装置と、前記発振装置にクロック発振の停止を指示するクロック発振制御部と、前記クロック発振制御部からクロックを受けているときに前記メモリのデータの読み出しと書き込みを制御するプロセッサとを有する記憶装置において、
前記インタフェース部は、前記外部装置のコマンドを解析するコマンドデコード部と、前記外部装置と前記記憶装置間のデータの転送を制御するデータ転送制御部とを有し、
前記コマンドデコード部は、前記発振装置のクロック発振が停止しているときにも、前記外部装置がデータの書き込みを要求するコマンドを解析し、
前記データ転送制御部は、前記発振装置のクロック発振が停止しているときにも、前記外部装置のライト信号にしたがってクロックを生成し、前記外部装置からの前記書き込み要求に伴うデータを前記バッファ制御部に転送し、
前記バッファ制御部は、前記発振装置のクロック発振が停止しているときにも、前記データ転送制御部から転送されたデータを、前記ライト信号にしたがって生成されたクロックを利用して、前記バッファに書き込み、
前記クロック発振手段は、前記書き込み要求するコマンドが解析されたときに、前記クロックの発振を開始し、
前記プロセッサは、前記クロック発振手段が前記クロックの発振を開始してからあらかじめ定めた時間経過後に、前記バッファに書き込まれた前記外部装置部からの書き込み要求に伴うデータを前記メモリに転送する
ことを特徴とする記憶装置。 - 請求項2に記載の記憶装置において、
前記インタフェース部は、前記外部装置に対し当該記憶装置が転送の受け付けが可能であるかないかの状態を示すステータスレジスタをさらに有することを特徴とする記憶装置。 - 請求項2に記載の記憶装置において、
前記インタフェース部は、前記外部装置が書き込むコマンドとアクセスするデータ量と当該アクセスするデータのアドレスとを記憶するコマンドブロックレジスタ群とをさらに有することを特徴とする記憶装置。 - 請求項2に記載の記憶装置において、前記バッファ制御部は、前記データ転送制御部からのライト信号と、前記プロセッサからのライト信号とを選択する選択回路を備えることを特徴とする記憶装置。
- クロック発振手段のクロックの発振を開始する機能と、クロックの発振を停止させる機能と、データを記憶する記憶手段と、クロックを受けているときに前記記憶手段にデータの読み出しと書き込みを行う機能を有する記憶装置におけるクロック発振停止時のデータ受け付け制御方法であって、
前記クロック発振手段のクロックが停止しているときにも、外部装置からのデータの書き込み要求を受け付け、書き込み要求に従いクロックを生成し、
前記書き込み要求を受け付けたときに、生成したクロックを利用して、前記外部装置から転送されたデータを一時的に保持し、
前記データの書き込み要求を受け付けたときに、前記クロック発振手段のクロックの発振を開始し、
前記クロック発振手段のクロックの発振の安定後、前記保持するデータを前記記憶手段に書き込むよう制御を行うことを特徴とするクロック発振停止時のデータ受け付け制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP09093897A JP3729591B2 (ja) | 1997-04-09 | 1997-04-09 | 記憶装置およびクロック発振停止時のデータ受け付け制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP09093897A JP3729591B2 (ja) | 1997-04-09 | 1997-04-09 | 記憶装置およびクロック発振停止時のデータ受け付け制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10283768A JPH10283768A (ja) | 1998-10-23 |
JP3729591B2 true JP3729591B2 (ja) | 2005-12-21 |
Family
ID=14012402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP09093897A Expired - Fee Related JP3729591B2 (ja) | 1997-04-09 | 1997-04-09 | 記憶装置およびクロック発振停止時のデータ受け付け制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3729591B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3871184B2 (ja) | 2000-06-12 | 2007-01-24 | シャープ株式会社 | 半導体記憶装置 |
JP3923715B2 (ja) | 2000-09-29 | 2007-06-06 | 株式会社東芝 | メモリカード |
JP3900863B2 (ja) | 2001-06-28 | 2007-04-04 | シャープ株式会社 | データ転送制御装置、半導体記憶装置および情報機器 |
KR100878527B1 (ko) * | 2002-07-08 | 2009-01-13 | 삼성전자주식회사 | Nand 형 플래쉬 메모리 제어기와 제어기에서 사용되는클럭제어방법 |
JP4607838B2 (ja) * | 2006-09-21 | 2011-01-05 | シャープ株式会社 | 画像形成装置 |
JP4939234B2 (ja) | 2007-01-11 | 2012-05-23 | 株式会社日立製作所 | フラッシュメモリモジュール、そのフラッシュメモリモジュールを記録媒体として用いたストレージ装置及びそのフラッシュメモリモジュールのアドレス変換テーブル検証方法 |
KR102140592B1 (ko) * | 2013-10-18 | 2020-08-03 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2822624B2 (ja) * | 1990-07-03 | 1998-11-11 | 三菱電機株式会社 | 非接触icカード |
JPH07306808A (ja) * | 1994-05-13 | 1995-11-21 | Mitsubishi Electric Corp | メモリ読出書込装置 |
JPH08137634A (ja) * | 1994-11-09 | 1996-05-31 | Mitsubishi Electric Corp | フラッシュディスクカード |
-
1997
- 1997-04-09 JP JP09093897A patent/JP3729591B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH10283768A (ja) | 1998-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8310880B2 (en) | Virtual channel support in a nonvolatile memory controller | |
US5465343A (en) | Shared memory array for data block and control program storage in disk drive | |
EP2417528B1 (en) | Command and interrupt grouping for a data storage device | |
US8266369B2 (en) | Flash memory interface | |
TWI472923B (zh) | 控制外部介面之裝置及命令處理之方法 | |
US20150100744A1 (en) | Methods and apparatuses for requesting ready status information from a memory | |
EP2293188A2 (en) | System boot using NAND flash memory and method thereof | |
US11074011B2 (en) | Solid state drive latency estimation interface for host performance tuning | |
US5920884A (en) | Nonvolatile memory interface protocol which selects a memory device, transmits an address, deselects the device, subsequently reselects the device and accesses data | |
JPH10320512A (ja) | 不揮発性半導体ディスク装置 | |
EP1343082A2 (en) | System boot using nand flash memory and method thereof | |
JPH06266596A (ja) | フラッシュメモリファイル記憶装置および情報処理装置 | |
US7725621B2 (en) | Semiconductor device and data transfer method | |
JP2011154556A (ja) | 半導体記憶装置 | |
JP3729591B2 (ja) | 記憶装置およびクロック発振停止時のデータ受け付け制御方法 | |
US7155562B2 (en) | Method for reading while writing to a single partition flash memory | |
US20070038795A1 (en) | Asynchronous bus interface and processing method thereof | |
US7669028B2 (en) | Optimizing data bandwidth across a variable asynchronous clock domain | |
US20190391938A1 (en) | Semiconductor device and semiconductor system | |
US6618790B1 (en) | Burst suspend and resume with computer memory | |
JP3804832B2 (ja) | メモリ装置及びコンピュータシステム | |
WO2000025205A1 (en) | Controlling access to a primary memory | |
US20180336147A1 (en) | Application processor including command controller and integrated circuit including the same | |
EP0359232A2 (en) | Computer system and method for setting recovery time | |
US20070234098A1 (en) | Self-timed clock-controlled wait states |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040803 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040929 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050705 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050830 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050927 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051004 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081014 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091014 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091014 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101014 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111014 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111014 Year of fee payment: 6 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111014 Year of fee payment: 6 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111014 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121014 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121014 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131014 Year of fee payment: 8 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |