説明

記憶デバイスコントローラ、情報処理装置、電子機器及び記憶デバイスのアクセス方法

【課題】ビジー状態の通知があるレスポンスを伴うライト転送でアクセスする場合に、確実にビジー状態を検出し、且つ的確なライト動作を実現する記憶デバイスコントローラ、情報処理装置、電子機器及び記憶デバイスのアクセス方法を提供する。
【解決手段】記憶デバイスにアクセスするための記憶デバイスコントローラは、前記記憶デバイスに対してライトコマンドを発行して該記憶デバイスにライトデータを出力する書き込み制御部と、前記記憶デバイスのビジー状態を検出するビジー検出部とを含み、前記ライトコマンドに対応して前記記憶デバイスからのレスポンスを受信したことを条件に、前記ビジー検出部が、前記ビジー状態の検出を開始し、前記ビジー検出部により前記記憶デバイスの非ビジー状態が検出されたときに、前記書き込み制御部が、前記ライトデータの出力を開始する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、記憶デバイスコントローラ、情報処理装置、電子機器及び記憶デバイスのアクセス方法等に関する。
【背景技術】
【0002】
近年、パーソナルコンピュータやその周辺機器(例えばプリンタ装置、スキャナ装置又は複合機)に限らず、携帯電話機、携帯情報端末(Personal Digital Assistant:PDA)やオーディオプレーヤ等の携帯型の情報機器、ロボット装置、デジタルカメラ、ビデオカメラ、全地球測位システム(Global Positioning System:GPS)装置、テレビ受信装置、プロジェクタ等の電子機器に、データストレージ用途にフラッシュメモリカードが使用される機会が多くなっている。
【0003】
フラッシュメモリカードには、その用途に応じて、種々の規格、バージョンが規定されている。例えば動画データ、静止画データ又は音楽データを携帯するために可搬性に優れ、大容量のフラッシュメモリとして、MMC(MultiMediaCard)規格等に準拠したフラッシュメモリカードがある。また、例えば携帯機器や家庭用電化製品の小型化により小型のコネクタ形状や高速なデータ転送が可能なHDD装置として、CE−ATA(Consumer Electronics-AT Attachment)規格に準拠した記憶装置がある。
【0004】
ところで、このようなフラッシュメモリカード等にアクセスするためには、転送クロックをフラッシュメモリカードに供給してその規格で規定されたコマンド(制御コマンド)を発行する必要がある。そして、該フラッシュメモリに対し該転送クロックに同期してライトデータを入力させたりリードデータを出力させたりする。このとき、フラッシュメモリカードは、ビジー状態であることを通知することで、コマンドに対応したライトデータの出力停止を要求できる。このように、市場に広く流通するフラッシュメモリカードにアクセスする場合は、その規格で規定された仕様に合わせてアクセスする必要がある。
【0005】
ところが、例えばCE−ATA規格では、ビジー状態の通知があるレスポンスを伴うライト転送について、そのビジー状態の検出タイミングが明記されていない。そのため、CE−ATA規格に準拠した記憶装置に対して、上述のビジー状態の通知があるレスポンスを伴うライト転送でアクセスする場合、ビジーの検出タイミングやエラーの判定タイミングが種々雑多となる。そのため、記憶装置から通知されるビジー状態の検出と、該記憶装置からのレスポンスのエラー判定と、ライト転送の開始タイミングの制御が複雑になるという問題がある。このような問題は、CE−ATA規格の記憶装置に限らず、MMC規格等のフラッシュメモリカードにアクセスする場合も同様である。
【0006】
従って、上記の規格に準拠した記憶装置やフラッシュメモリカード等に対して、上述のビジー状態の通知があるレスポンスを伴うライト転送でアクセスする場合、如何に確実にビジー状態を検出し、且つ的確にライト動作を行うかが重要となっていた。
【0007】
例えば特許文献1には、エラーが検出されたとき、フラッシュメモリカードにアクセスするカードコントローラが、フラッシュメモリとの間のデータの送受信を行わない期間にホスト機器へ割り込み信号を出力することで、エラーの発生を確認するためにコマンドを発行する手間を省く技術が開示されている。
【特許文献1】特開2006−139556号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかしながら、特許文献1に開示された技術においても、ビジー状態の通知があるレスポンスを伴うライト転送でアクセスする場合、ビジー状態を確実に検出できるという確証はなく、記憶装置から通知されるビジー状態の検出と、該記憶装置からのレスポンスのエラー判定と、ライト転送の開始タイミングの制御が複雑になるという事態を回避できない。
【0009】
本発明の幾つかの態様によれば、状態の通知があるレスポンスを伴うライト転送でアクセスする場合に、確実にビジー状態を検出し、且つ的確なライト動作を実現する記憶デバイスコントローラ、情報処理装置、電子機器及び記憶デバイスのアクセス方法を提供できる。
【課題を解決するための手段】
【0010】
本発明は、記憶デバイスにアクセスするための記憶デバイスコントローラであって、
前記記憶デバイスに対してライトコマンドを発行して該記憶デバイスにライトデータを出力する書き込み制御部と、
前記記憶デバイスのビジー状態を検出するビジー検出部と、
を含み、
前記ライトコマンドに対応して前記記憶デバイスからのレスポンスを受信したことを条件に、前記ビジー検出部が、前記ビジー状態の検出を開始し、
前記ビジー検出部により前記記憶デバイスの非ビジー状態が検出されたときに、前記書き込み制御部が、前記ライトデータの出力を開始する記憶デバイスコントローラに関係する。
【0011】
本発明によれば、記憶デバイスがビジー状態を通知してくるタイミングが不明であっても、レスポンスの途中でビジー状態が解除されるケースに対応した制御や予期しないエラーの発生に対応したエラー処理により制御が複雑になるケースを回避できる。従って、ビジー状態の通知があるレスポンスを伴うライト転送でアクセスする場合に、確実にビジー状態を検出し、且つ的確なライト動作を実現できるようになる。
【0012】
また本発明に係る記憶デバイスコントローラでは、
前記ビジー検出部が、
前記レスポンスのエンドビットの受信タイミングを基準に予め決められたコマンド発行間隔期間が経過したときに前記ビジー状態の検出を開始することができる。
【0013】
本発明によれば、MMC規格等で決められているコマンド発行間隔を考慮することなく、記憶デバイスの非ビジー状態を検出後に次のコマンドを発行する制御を行うことができる。従って、複雑な制御シーケンスを考慮することなく、記憶デバイスコントローラの制御を簡素化できる。
【0014】
また本発明に係る記憶デバイスコントローラでは、
前記ライトコマンドに対応する前記記憶デバイスからのレスポンスのエラーを判定するエラー判定処理部と、
前記ライトコマンドの完了を通知するためのコマンド完了処理部と、
を含み、
前記エラー判定処理部によりレスポンスのエラーが検出されないときに、前記コマンド完了処理部が前記ライトコマンドの完了通知を行った後、前記ビジー検出部が、前記記憶デバイスのビジー状態の検出を開始し、
前記ビジー検出部により前記記憶デバイスの非ビジー状態が検出されたときに、前記書き込み制御部が、前記ライトデータの出力を開始して、前記ライトコマンドによるライト転送が完了したことを条件にデータ転送を終了することができる。
【0015】
本発明によれば、レスポンスのエラーの有無を判定した後にビジー状態の検出が開始されるので、レスポンスのエラーの有無を判別する場合に、確実にビジー状態を検出し、且つ確実なライト動作の開始及び完了を実現させることができる。
【0016】
また本発明に係る記憶デバイスコントローラでは、
前記ライトコマンドに対応する前記記憶デバイスからのレスポンスのエラーを判定するエラー判定処理部と、
前記ライトコマンドによるライト転送のエラーを通知するためのエラー処理部と、
を含み、
前記エラー判定処理部によりレスポンスのエラーが検出されたときに、前記エラー処理部が、前記ライト転送のエラーを通知した後、前記ビジー検出部が、前記記憶デバイスのビジー状態の検出を開始し、
前記ビジー検出部により前記記憶デバイスの非ビジー状態が検出されたときに、前記ライト転送を行うことなく、前記ライトコマンドによるデータ転送を終了することができる。
【0017】
本発明によれば、レスポンスのエラーの有無を判定した後にビジー状態の検出が開始されるので、レスポンスのエラーの有無を判別する場合に、エラーがあることが検出されたときであっても、確実にビジー状態を検出し、且つ確実にライト動作を終了させることができる。
【0018】
また本発明に係る記憶デバイスコントローラでは、
前記ライトコマンドが、
CE−ATA(Consumer Electronics-AT Attachment)規格のR1bレスポンスを伴うコマンドであってもよい。
【0019】
本発明によれば、市場に広く流通するCE−ATA規格に準拠したインタフェースを有する記憶デバイスに、簡素な制御でアクセスする記憶デバイスコントローラを提供できる。
【0020】
また本発明に係る記憶デバイスコントローラでは、
前記コマンド発行間隔期間が、
前記ライトコマンドの同期クロックの8クロック分に相当する期間であってもよい。
【0021】
また本発明は、
上記のいずれか記載の記憶デバイスコントローラと、
前記記憶デバイスコントローラに対して前記ライトコマンドの発行を制御する制御マスタと、
を含む情報処理装置に関係する。
【0022】
本発明によれば、ビジー状態の通知があるレスポンスを伴うライト転送でアクセスする場合に、確実にビジー状態を検出し、且つ的確なライト動作を実現する記憶デバイスコントローラが適用された情報処理装置を提供できる。
【0023】
また本発明は、
前記記憶デバイスが挿抜される記憶デバイス装着部と、
上記記載の情報処理装置と、
を含む電子機器に関係する。
【0024】
本発明によれば、ビジー状態の通知があるレスポンスを伴うライト転送でアクセスする場合に、確実にビジー状態を検出し、且つ的確なライト動作を実現する記憶デバイスコントローラが適用された電子機器を提供できる。
【0025】
また本発明は、
ビジー状態を出力することでライトコマンドに対応したライトデータの送出停止を要求可能な記憶デバイスのアクセス方法であって、
前記ライトコマンドに対応して前記記憶デバイスからのレスポンスを受信するステップと、
前記レスポンスの受信を条件に前記ビジー状態の検出を開始するステップと、
前記ビジー状態の検出後、前記記憶デバイスの非ビジー状態が検出されたときに、前記ライトデータの出力を開始するステップと、
を含む記憶デバイスのアクセス方法に関係する。
【0026】
また本発明に係る記憶デバイスのアクセス方法では、
前記レスポンスのエンドビットの受信タイミングを基準に予め決められたコマンド発行間隔期間が経過したときに前記ビジー状態の検出を開始することができる。
【0027】
また本発明に係る記憶デバイスのアクセス方法では、
前記ライトコマンドに対応する前記記憶デバイスからのレスポンスのエラーが検出されないときに、前記ライトコマンドの完了通知を行うステップと、
前記完了通知後に、前記記憶デバイスのビジー状態を検出するステップと、
前記記憶デバイスの非ビジー状態が検出されたときに、前記ライトデータの出力を開始して、前記ライトコマンドによるライト転送が完了したことを条件にデータ転送を終了するステップと、
を含むことができる。
【0028】
また本発明に係る記憶デバイスのアクセス方法では、
前記ライトコマンドに対応する前記記憶デバイスからのレスポンスのエラーが検出されたときに、前記ライト転送のエラーを通知するステップと、
前記エラーの通知後、前記記憶デバイスのビジー状態を検出するステップと、
前記記憶デバイスの非ビジー状態が検出されたときに、前記ライト転送を行うことなく、前記ライトコマンドによるデータ転送を終了するステップと、
を含むことができる。
【0029】
また本発明に係る記憶デバイスのアクセス方法では、
前記ライトコマンドが、
CE−ATA(Consumer Electronics-AT Attachment)規格のR1bレスポンスを伴うコマンドであってもよい。
【0030】
本発明によれば、ビジー状態の通知があるレスポンスを伴うライト転送でアクセスする場合に、確実にビジー状態を検出し、且つ的確なライト動作を実現する記憶デバイスのアクセス方法を提供できる。
【発明を実施するための最良の形態】
【0031】
以下、本発明の実施の形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成のすべてが本発明の必須構成要件であるとは限らない。
【0032】
1. 情報処理装置
以下の実施形態では、記憶デバイスとしての小型HDD装置にアクセスするための小型HDD(Hard Disk Drive)コントローラ(広義には記憶デバイスコントローラ)が情報処理装置としてのホストシステムに適用されているものとする。
【0033】
図1に、本実施形態における情報処理装置が適用された電子機器の構成例のブロック図を示す。
【0034】
図1の構成を有する電子機器としては、例えばパーソナルコンピュータ、その周辺機器(例えばプリンタ装置、スキャナ装置又は複合機)、携帯電話機、携帯情報端末、オーディオプレーヤ、ロボット装置、デジタルカメラ、ビデオカメラ、GPS装置、テレビ受信装置、プロジェクタ等がある。
【0035】
電子機器10は、情報処理装置としてのホストシステム100と、小型HDD装置(広義には記憶デバイス)200とを含み、ホストシステム100と小型HDD装置200とがバス20を介して接続されている。電子機器10では、小型HDD装置200に対する制御コマンドを発行することにより、小型HDD装置200にデータを書き込んだり、小型HDD装置200からデータを読み出したりすることができる。小型HDD装置200は、例えばフラッシュメモリカードやI/Oデバイスであってもよい。
【0036】
ホストシステム100は、制御マスタ126と、小型HDDコントローラ(記憶デバイスコントローラ、メモリコントローラ)130とを含む。制御マスタ126は、中央演算処理装置(Central Processing Unit:CPU)110、メモリ120を含む。CPU110、メモリ120及び小型HDDコントローラ130は、システムバス122を介して接続されている。従って、CPU110は、システムバス122を介してメモリ120又は小型HDDコントローラ130にアクセスできる。そして、CPU110が、メモリ120に格納されたプログラムを読み込んで該プログラムに対応した処理を実行する。
【0037】
小型HDDコントローラ130と小型HDD装置200とは、バス20を介して接続され、CPU110が、小型HDDコントローラ130から小型HDD装置200に対して発行する制御コマンドを生成する制御を行う。小型HDD装置200を「デバイス」と定義すると、小型HDDコントローラ130はホスト側を制御する「ホストコントローラ」と定義することができる。
【0038】
バス20は、転送クロックCLKが伝送されるクロックライン、制御コマンドCMD及びレスポンスが伝送されるコマンドライン、例えば8ビット(又は4ビット)の転送データDAT0−DAT7が伝送されるデータラインを有する。小型HDDコントローラ130が、転送クロックCLKに同期してコマンドCMDを発行する。そして、転送クロックCLKに同期して例えば8ビットの転送データDAT0−DAT7が送受信される。また、コマンドCMDの種類によっては、小型HDD装置200が制御コマンドCMDに対するレスポンスとして、例えばコマンドラインを用いてレスポンスを返すことができる。
【0039】
ここで、本実施形態の小型HDDコントローラ130は、例えばCE−ATA規格に準拠したHDD装置等に適用できる。
【0040】
以下では、小型HDD装置200がCE−ATA規格に準拠したHDD装置であり、バス20にはCE−ATA規格に準拠したシーケンスで制御コマンドやレスポンス、転送データの送受信が行われる場合を例に説明する。
【0041】
このとき、バス20のクロックライン、コマンドライン及びデータラインのうち双方向の信号ラインはプルアップされてもよい。例えば、コマンドライン及びデータラインが双方向の信号ラインである場合には、コマンドライン及びデータラインの各ラインはプルアップされてもよい。具体的には、コマンドラインは、所与の高電位側電源線との間にプルアップ抵抗を介してプルアップ接続されてもよく、同様に、データラインの各ラインは、所与の高電位側電源線との間にそれぞれプルアップ抵抗を介してプルアップ接続されてもよい。なお、クロックラインは、小型HDDコントローラ130側の図示しないクロックドライバによりプッシュプル動作で駆動される。このクロックラインも、他のラインと同様にプルアップ接続されてもよい。
【0042】
CE−ATA規格の小型HDD装置200にアクセスする場合、データ転送が不要な期間に転送クロックCLKを停止させることで消費電力を削減できる。その一方、転送クロックCLKを停止させることで、小型HDDコントローラ130からのコマンドの送出、小型HDD装置200からのレスポンスの受信、データラインを介してデータの送受信ができなくなる。
【0043】
図2に、図1の小型HDD装置200の構成例のブロック図を示す。
【0044】
小型HDD装置200は、CPUI/F回路210、PLL回路212、HDDI/F制御回路220、HDD制御レジスタ部230、HDDI/F回路240、HDD装置250を含む。
【0045】
CPUI/F回路210は、バス20を伝送される信号のインタフェース処理を行う。HDDI/F制御回路220は、CPUI/F回路210を制御してバス20に信号を出力する制御を行ったり、バス20からの信号を入力する制御を行ったりする。CPUI/F回路210は、転送クロックCLKに同期して入力された転送データやコマンドデータを図示しないバッファにバッファリングしたり、該バッファにバッファリングされた転送データやレスポンスデータを転送クロックCLKに同期して出力したりする。
【0046】
PLL回路212は、図示しない発振器からの発振出力を逓倍して、転送クロックCLKとは異なる内部クロックを生成する。PLL回路212によって生成された内部クロックは、小型HDD装置200の各部に供給され、小型HDD装置200は内部クロックに同期して動作する。より具体的には、CPUI/F回路210にバッファリングされたデータは、内部クロックに同期して読み出されて小型HDD装置200の内部に取り込まれる。また、小型HDD装置200の内部から出力されるデータは、内部クロックに同期してCPUI/F回路210でバッファリングされ、転送クロックCLKに同期して外部に出力される。従って、小型HDD装置200は、転送クロックCLKの供給が停止されたとしても、小型HDD装置200の内部で、内部クロックに同期してメモリにアクセスできるようになっている。即ち、小型HDD装置200は、転送クロックに同期して入力されたコマンドに対しデータのアクセスをその内部クロックに同期して行うことができる。
【0047】
HDD制御レジスタ部230は、複数の制御レジスタを有する。
【0048】
HDDI/F制御回路220は、HDD制御レジスタ部230の設定データに基づいて小型HDD装置200の各部を制御すると共に、その制御結果をHDD制御レジスタ部230に格納する制御を行う。
【0049】
HDDI/F回路240は、HDDI/F制御回路220の制御により、HDD装置250のセクタにデータを書き込んだり、HDD装置250のセクタからデータを読み出したりする制御を行う。
【0050】
HDD装置250は、複数のセクタを有する。HDDI/F回路240は、予め割り当てられたアドレスに対応したセクタからデータを読み出したり、該アドレスに対応したセクタにデータを書き込んだりすることができる。
【0051】
2. 小型HDDコントローラ(記憶デバイスコントローラ)
図3に、本実施形態における小型HDDコントローラ130の構成例のブロック図を示す。図3において、図1と同一部分には同一符号を付し、適宜説明を省略する。
【0052】
小型HDDコントローラ130は、クロック制御部300と、コマンド制御部310と、データ制御部320と、ビジー検出部330とを含む。更に、小型HDDコントローラ130は、コマンド完了通知部(コマンド完了処理部)340と、エラー通知部350と、エラー判定部360とを含む。
【0053】
クロック制御部300は、バス20のクロックラインの出力制御を行う。コマンド制御部310は、バス20のコマンドラインの入出力制御を行う。データ制御部320は、バス20のデータラインの入出力制御を行う。
【0054】
クロック制御部300は、コマンドや転送データが同期して送受信するための同期クロックである転送クロックCLKを供給したり、供給を停止したりする。クロック制御部300が転送クロックCLKの供給を停止することで、データの転送を中断させることできるが、コマンドがレスポンスの送受信も停止する。
【0055】
コマンド制御部310は、コマンドラインを介して小型HDD装置200にコマンドを発行することができる。より具体的には、コマンド制御部310は、ライトコマンドの発行と、該ライトコマンドに対応するレスポンスの受信制御を行う。
【0056】
図4(A)に、コマンド制御部310により送信されるコマンドの説明図を示す。また、図4(B)に、コマンド制御部310により受信されるレスポンスの説明図を示す。
【0057】
コマンドは、スタートビット「S」が「0」、エンドビット「E」が「1」で挟まれた所定ビットのコマンドデータである。図4(A)に示すようなコマンドが、コマンドラインを介して送信される。
【0058】
レスポンスは、スタートビット「S」が「0」、エンドビット「E」が「1」で挟まれた所定ビットのレスポンスデータである。図4(B)に示すようなレスポンスが、コマンドラインを介して受信される。
【0059】
図3において、データ制御部320は、データラインを介して転送データを送信又は受信する制御を行う。なお、データラインのうち転送データDAT0が送受信されるデータラインが、小型HDD装置200により「L」レベルに駆動されることで、小型HDDコントローラ130は、小型HDD装置200がビジー状態であることを通知される。ビジー検出部330は、所定のビジー状態検出タイミングで、データラインのうち転送データDAT0が送受信されるデータラインのレベルを検出することで、小型HDD装置200がビジー状態であるか否かを検出できる。
【0060】
コマンド完了通知部340は、コマンド制御部310により発行されたコマンドが完了したときに、該小型HDDコントローラ130を制御する制御マスタ126(CPU110)に対して割り込み信号によりコマンド完了通知割り込みを発生させたり、図示しないステータスレジスタ(制御レジスタ)にコマンド完了通知フラグをセットしたり、コマンド完了を制御マスタ126に通知できる。
【0061】
このようなコマンド完了通知割り込みを受けた制御マスタ126は、その割り込み要因を解析して、次のコマンドを発行する制御等を行うことができる。また、小型HDDコントローラ130に対してポーリングを実行する制御マスタ126が、コマンド完了通知フラグがセットされていることを検出すると、次のコマンドを発行する制御等を行うことができる。
【0062】
エラー判定部360は、コマンド制御部310により発行されたコマンド(ライトコマンド)に対応する小型HDD装置200からのレスポンスのエラーを判定する。より具体的には、エラー判定部360は、小型HDD装置200からのレスポンスに含まれるCRCデータの計算結果に基づいてCRCエラーか否かを判定できる。また、エラー判定部360は、該レスポンスのエンドビットが「0」であるときにエンドビットエラーとして判定できる。更にエラー判定部360は、小型HDD装置200に対して送信したコマンドのインデックス番号と、該コマンドに対応して小型HDD装置200から受信したレスポンスに含まれるインデックス番号とを比較して、インデックスエラーとして判定できる。更にまた、エラー判定部360は、コマンドの送信完了後、所定期間内にレスポンスのスタートビットが検出されなかったときにタイムアウトエラーとして判定できる。
【0063】
エラー通知部350は、エラー判定部360によりエラーが検出されたとき、制御マスタ126(CPU110)に対して割り込み信号によりエラー通知割り込みを発生させたり、図示しないステータスレジスタ(制御レジスタ)にエラー通知フラグをセットしたり、エラーの発生を制御マスタ126に通知できる。
【0064】
図3において、コマンド制御部310及びデータ制御部320は、書き込み制御部として機能する。即ち、この書き込み制御部は、小型HDD装置200に対してライトコマンドを発行し、転送クロックに同期してライトデータを出力して小型HDD装置200に該ライトデータの書き込み制御を行う。
【0065】
小型HDDコントローラ130が小型HDD装置200に対してライトデータを書き込む場合、小型HDDコントローラ130では、コマンド制御部310が、小型HDD装置200に対し、コマンドラインを介してCE−ATA(Consumer Electronics-AT Attachment)規格(MMC(MultiMediaCard)規格等でもよい)のR1bレスポンスを伴うライトコマンド(CMD60、CMD61)を発行する。
【0066】
このライトコマンドの発行と共に、データ制御部320がデータラインを介してライトデータを送出すると、小型HDD装置200がビジー状態を通知してくる場合がある。ところが、小型HDD装置200がビジー状態を通知してくるタイミングが不明であり、レスポンスのエラー自体の発生の可能性がある。そのため、ライトデータの送出後に直ぐにビジー状態を検出してしまうと、レスポンスの途中でビジー状態が解除されるケースに対応した制御が必要になったり、予期しないエラーの発生に対応したエラー処理により制御が複雑になったりする。この場合、エラーを検出してからビジー状態の検出を開始した方が制御を簡素化できる上に、レスポンスの途中でビジー状態が解除されるケースに対応した制御を不要にできることが望ましい。
【0067】
そこで、本実施形態では、小型HDDコントローラ130のコマンド制御部310がR1bレスポンスを伴うライトコマンドを発行すると、小型HDD装置200からのレスポンス(より具体的にはレスポンスの正常なエンドビット)の受信を待つ。
【0068】
ライトコマンドを受信した小型HDD装置200は、ライトデータを内部バッファに取得し、該バッファに空きがあればデータ取得を継続し、空きが無くなるとHDD装置250にデータの書き込みを行う。このHDD装置250への書き込みの際、小型HDD装置200は、転送データDAT0が伝送されるデータラインをLレベルに駆動し、カードコントローラに対してビジー状態であることを通知して、データ転送の中断を要求できる。
【0069】
このとき、コマンド制御部310が、コマンドラインを介して、上記のライトコマンドに対応して小型HDD装置200からのレスポンスを受信したことを条件に、ビジー検出部330が、小型HDD装置200のビジー状態の検出を開始する。そして、ビジー検出部330により小型HDD装置200の非ビジー状態が検出されたときに、書き込み制御部が、ライトデータの出力を開始する。こうすることで、例えばレスポンスのエラーを検出してからビジー状態の検出を開始できるため制御を簡素化できる上に、レスポンスの途中でビジー状態が解除されるケースに対応した制御を不要にできる。
【0070】
また、小型HDDコントローラ130では、エラー判定部360によりコマンド制御部310が発行したライトコマンドに対応するレスポンスのエラーが検出されないとき、コマンド完了通知部340がライトコマンドの完了通知を行った後、ビジー検出部330が、小型HDD装置200のビジー状態の検出を開始する。そして、ビジー検出部330により小型HDD装置200の非ビジー状態が検出されたときに、データ制御部320が、ライトデータの出力を開始して、ライトコマンドによるライト転送が完了したことを条件にデータ転送を終了する。こうすることで、レスポンスのエラーを判定する場合にレスポンスが正常であったときに、確実にビジー状態を検出し、且つ確実なライト動作の開始及び完了を実現させることができる。
【0071】
更に、小型HDDコントローラ130では、エラー判定部360によりコマンド制御部310が発行したライトコマンドに対応するレスポンスのエラーが検出されたとき、エラー通知部350が、該ライトコマンドによるライト転送のエラーを通知した後、ビジー検出部330が、小型HDD装置200のビジー状態の検出を開始する。そして、ビジー検出部330により小型HDD装置200の非ビジー状態が検出されたときに、該ライトコマンドによるライト転送を行うことなく、データ転送を終了する。こうすることで、レスポンスのエラーを判定する場合にレスポンスのエラーが検出された場合であっても、確実にビジー状態を検出し、且つ確実にライト動作を終了させることができる。
【0072】
図5に、本実施形態における小型HDDコントローラ130のうち図3のコマンド制御部310、コマンド完了通知部340、エラー通知部350及びエラー判定部360の処理例を示す。
【0073】
図5では、小型HDDコントローラ130が、小型HDD装置200に対し、コマンドラインを介してCE−ATA規格(MMC規格等)のR1bレスポンスを伴うライトコマンドを発行する場合の制御シーケンスを表している。
【0074】
まず、コマンド制御部310が、R1bレスポンスを伴うライトコマンドを発行する(ステップS10)。コマンドの送信が完了すると、小型HDDコントローラ130は、ライトデータの送出を行うことなく、コマンド制御部310は、コマンドラインを介して小型HDD装置200からのレスポンスのスタートビット(Sビット)の受信を待つ(ステップS11)。このとき、タイムアウト期間を計時するための図示しないカウンタのカウント動作を開始させる。
【0075】
コマンド制御部310が、小型HDD装置200からのレスポンスのスタートビットをタイムアウト期間内に検出したとき(ステップS12:Y)、コマンド制御部310は、小型HDD装置200からのレスポンスのエンドビットまでの受信を完了させる(ステップS13)。
【0076】
その後、エラー判定部360がステップS13において受信されたレスポンスのエラーの有無を判定する(ステップS14)。ステップS14においてレスポンスのエラーが検出されなかったとき(ステップS14:N)、コマンド完了通知部340は、ステップS10で発行したライトコマンドの完了通知を行い(ステップS15)、一連の処理を終了させる(エンド)。
【0077】
ステップS14において、レスポンスのエラーが検出されたとき(ステップS14:Y)、エラー通知部350が、ステップS10で発行されたライトコマンドによるライト動作のエラーを通知し(ステップS16)、一連の処理を終了させる(エンド)。
【0078】
一方、ステップS12において、小型HDD装置200からのレスポンスのスタートビットが検出されず(ステップS12:N)、且つタイムアウト期間が経過していないとき(ステップS17:N)、ステップS12に戻ってレスポンスのスタートビットの監視を継続させる。
【0079】
ステップS12において、小型HDD装置200からのレスポンスのスタートビットが検出されず(ステップS12:N)、且つタイムアウト期間が経過したとき(ステップS17:Y)、エラー通知部350が、ステップS10で発行されたライトコマンドによるライト動作のエラーを通知し(ステップS18)、一連の処理を終了させる(エンド)。
【0080】
図6に、本実施形態における小型HDDコントローラ130のうち図3のデータ制御部320及びビジー検出部330の処理例を示す。
【0081】
データ制御部320は、コマンド制御部310からのコマンド完了通知又は図5のステップS16、ステップS18のエラー通知を監視している(ステップS20)。データ制御部320が該コマンド完了通知又は該エラー通知を検出したとき(ステップS20:Y)、ビジー検出部330が、小型HDD装置200のビジー状態の検出を開始する(ステップS21)。
【0082】
ビジー検出部330が、小型HDD装置200のビジー状態を検出したとき(ステップS22:Y)、ステップS21に戻って小型HDD装置200のビジー状態の検出を継続する。ステップS22においてビジー検出部330が小型HDD装置200の非ビジー状態を検出したとき(ステップS22:N)、データ制御部320がコマンド制御部310において受信されたレスポンスのエラーがないとき(ステップS23:N)、ライトデータの出力を開始し(ステップS24)、ライトデータの転送が完了したことを条件に、データ転送完了通知を行い(ステップS25)、一連の処理を終了する(エンド)。データ転送完了通知は、制御マスタ126に割り込みを通知したり、図示しないステータスレジスタにデータ転送完了フラグをセットすることで、制御マスタ126にデータ転送完了を通知できる。
【0083】
ステップS23において、データ制御部320がコマンド制御部310において受信されたレスポンスのエラーがあるとき(ステップS23:Y)、そのまま一連の処理を終了する(エンド)。
【0084】
以上のように、コマンド制御部310が、コマンドラインを介して、ライトコマンドに対応して小型HDD装置200からのレスポンスを受信したことを条件に、ビジー検出部330が、小型HDD装置200のビジー状態の検出を開始する。そして、ビジー検出部330により小型HDD装置200の非ビジー状態が検出されたときに、書き込み制御部としてのデータ制御部320が、ライトデータの出力を開始する。
【0085】
また、レスポンスのエラーが検出されないときは、コマンド完了を通知後、小型HDD装置200のビジー状態の検出を開始し、レスポンスのエラーが検出されたときは、エラー通知後に、一旦小型HDD装置200のビジー状態の検出を行って、ライト転送を行うことなくライトコマンドによるデータ転送を終了させる。
【0086】
ところで、小型HDDコントローラ130の制御シーケンスは、図5に示すものに限定されるものではない。
【0087】
図7に、本実施形態における小型HDDコントローラ130の他の処理例のフロー図を示す。
【0088】
図7においても、図5と同様に、小型HDDコントローラ130が、小型HDD装置200に対し、コマンドラインを介してCE−ATA規格(MMC規格等)のR1bレスポンスを伴うライトコマンドを発行する場合の制御シーケンスを表している。図7において図5と同一部分には同一符号を付し、適宜説明を省略する。
【0089】
図7の処理例が図5の処理例と異なる点は、図7においてステップS30がステップS13とステップS14との間に設けられている点である。即ち、ステップS13において、コマンド制御部310が小型HDD装置200からのレスポンスのエンドビットまでの受信が完了すると(ステップS13)、コマンド制御部310が、所与のコマンド発行間隔期間の経過を待ち(ステップS30)、コマンド発行間隔期間の経過を条件に、レスポンスのエラー判定を行う(ステップS14)。従って、コマンド発行間隔期間の経過を条件に、コマンド完了通知、小型HDD装置200のビジー状態の検出が開始されることになる。
【0090】
図7の処理に対して、図3のデータ制御部320及びビジー検出部330の処理は図6と同様であるため説明を省略する。
【0091】
こうすることで、コマンド制御部310は、CE−ATA規格等で決められているコマンド発行間隔(例えば転送クロックCLKの8クロックに相当する期間)を考慮することなく、メモリカードの200の非ビジー状態を検出後に次のコマンドを発行する制御を行うことができる。従って、複雑な制御シーケンスを考慮することなく、小型HDDコントローラ130の制御を簡素化できる。
【0092】
2.1 ハードウェア構成例
次に、上述の実施形態を実現する図1の小型HDDコントローラ130の具体的な構成例について説明する。
【0093】
図8に、本実施形態における小型HDDコントローラ130のハードウェア構成例を示す。
【0094】
小型HDDコントローラ130は、制御インタフェース(InterFace:I/F)回路132、FIFO(First-In First-Out)I/F回路134、コントローラ制御レジスタ部136、クロック制御部138、コマンド制御部140、データ制御部146、ドライバ部150を含む。コマンド制御部140は、コマンドシーケンサ142、レスポンスエラー判定部143を含む。データ制御部146は、データシーケンサ148、ビジー検出部149を含む。
【0095】
制御I/F回路132は、システムバス122を介してCPU110やメモリ120との間で送受信される制御信号や制御データのインタフェース処理を行う。CPU110は、制御I/F回路132を介してコントローラ制御レジスタ部136の各制御レジスタに制御データを設定できる。
【0096】
FIFOI/F回路134は、システムバス122を介してCPU110やメモリ120との間で送受信される制御信号や制御データのインタフェース処理を行う。システムバス122を介してメモリ120から読み出されたデータ(ライトデータ)は、FIFOI/F回路134の図示しないFIFO(バッファ)においてバッファリングされた後、データ制御部146に供給される。また、小型HDD装置200から読み出されたデータ(リードデータ)は、FIFOI/F回路134の図示しないFIFO(バッファ)においてバッファリングされた後に、システムバス122を介してCPU110又はメモリ120に出力される。
【0097】
コントローラ制御レジスタ部136は、1又は複数の制御レジスタを有し、各制御レジスタには小型HDDコントローラ130を制御するための制御データが設定される。コントローラ制御レジスタ部136の各制御レジスタに設定された制御データに対応した制御信号に基づいて、小型HDDコントローラ130の各部が制御される。
【0098】
また、制御I/F回路132又はコントローラ制御レジスタ部136は、CPU110(制御マスタ126)に対して割り込み信号を発生する図示しない割り込み発生部を有する。このような制御I/F回路132は、図3のコマンド完了通知部340及びエラー通知部350の機能を有する。図8では、データ制御部146で検出されたデータ転送完了通知が、コントローラ制御レジスタ部136に入力され、制御マスタ126に対して割り込み通知されるようになっている。
【0099】
クロック制御部138は、小型HDDコントローラ130の各部にクロックを供給すると共に、バス20を構成するクロックラインに転送クロックCLKを出力する制御を行う。クロック制御部138は、図3のクロック制御部300の機能を有する。
【0100】
コマンド制御部140は、図3のコマンド制御部310の機能を有する。コマンドシーケンサ142は、コントローラ制御レジスタ部136の制御レジスタの制御データ(コマンドデータ)に基づいて、バス20を構成するコマンドラインを介して小型HDD装置200に対してコマンドを発行する制御を行う。コマンドシーケンサ142は、コマンドの発行が完了すると、コマンド完了通知をコントローラ制御レジスタ部136及びデータ制御部146に出力する。コントローラ制御レジスタ部136に入力されたコマンド完了通知に基づき、制御マスタ126に対してコマンド完了通知割り込みを発行する。
【0101】
また、コマンドシーケンサ142は、該コマンドに対応する小型HDD装置200からのレスポンスを受信する制御を行う。コマンドシーケンサ142において受信されたレスポンスは、レスポンスデータとしてコントローラ制御レジスタ部136に出力される。
【0102】
レスポンスエラー判定部143は、コマンド制御部140を介して受信されたレスポンスのエラーの判定を行う。レスポンスエラー判定部143は、図3のエラー判定部360の機能を有する。レスポンスエラー判定部143によりレスポンスのエラーが検出される
と、レスポンスエラー通知としてコントローラ制御レジスタ部136及びデータ制御部146に入力される。コントローラ制御レジスタ部136に入力されたレスポンスエラー知に基づき、制御マスタ126に対してレスポンスエラー通知割り込みを発行する。なお、レスポンスエラー判定部143は、受信したレスポンスのエラーが検出されたとき、レスポンスエラーフラグをセットしてデータ制御部146に通知できる。
【0103】
データ制御部146は、図3のデータ制御部320の機能を有する。データシーケンサ148は、コントローラ制御レジスタ部136の制御レジスタの制御データに基づいて、バス20を構成するデータラインを介して小型HDD装置200との間でデータを送受信する制御を行う。データ制御部146においてデータ転送完了が検出されると、コントローラ制御レジスタ部136に対してデータ転送完了通知を出力する。コントローラ制御レジスタ部136に入力されたデータ転送完了通知に基づき、制御マスタ126に対してデータ転送完了通知割り込みを発行する。
【0104】
ビジー検出部149は、小型HDD装置200のビジー状態を検出する。ビジー検出部149の機能は、図3のビジー検出部330の機能を有する。より具体的には、ビジー検出部149は、転送データDAT0が伝送されるデータラインの信号と、コマンドシーケンサ142の制御結果と、データシーケンサ148の制御結果とが入力され、バスを介して接続される小型HDD装置200のライトコマンド発行後のビジー状態を検出できる。
【0105】
ドライバ部150は、コマンドシーケンサ142の制御結果に基づいてコマンドラインの信号の入出力制御を行う。また、データシーケンサ148の制御結果に基づいてデータラインの信号の入出力制御を行う。
【0106】
図9に、図8のドライバ部150の構成の概要を示す。
【0107】
ドライバ部150は、クロックラインを駆動して転送クロックCLKを出力するクロック出力ドライバと、コマンドラインに接続される第1の入出力ドライバと、データラインに接続される第2の入出力ドライバとを含む。
【0108】
第1の入出力ドライバは、コマンドシーケンサ142によって制御されコマンドラインを駆動して制御コマンドを出力する出力ドライバと、コマンドラインを介して入力されるレスポンスを受信するための入力ドライバとを含む。出力ドライバは、コマンドシーケンサ142からの出力制御信号CMD_Oeがクロック出力ドライバの入力信号CLK_Outで同期化された信号に基づいて、コマンドシーケンサ142からの出力信号CMD_Outが入力信号CLK_Outで同期化された信号の出力制御を行う。これにより、コントローラ制御レジスタ部136の制御レジスタの内容に基づいてコマンドシーケンサ142によって生成された制御コマンドが、第1の入出力ドライバの出力ドライバによりコマンドラインに出力される。そして、該制御コマンドに対応して小型HDD装置200から出力されたレスポンスが、第1の入出力ドライバの入力ドライバで受信される。入力ドライバの出力は、転送クロックCLKで同期化されてコマンドシーケンサ142に入力信号CMD_Inとして入力される。
【0109】
第2の入出力ドライバは、データシーケンサ148によって制御されデータラインを駆動して転送データを出力する出力ドライバと、データラインを介して入力される転送データを受信するための入力ドライバとを含む。出力ドライバは、データシーケンサ148からの出力制御信号DAT_Oeがクロック出力ドライバの入力信号CLK_Outで同期化された信号に基づいて、データシーケンサ148からの出力信号DAT_Outが入力信号CLK_Outで同期化された信号の出力制御を行う。これにより、コントローラ制御レジスタ部136の制御レジスタの内容に基づいて、FIFOI/F回路134からのデータが、データシーケンサ148の制御により、転送データとして第2の入出力ドライバの出力ドライバを介してデータラインに出力される。そして、小型HDD装置200から出力されたレスポンスが、第1の入出力ドライバの入力ドライバで受信される。入力ドライバの出力は、転送クロックCLKで同期化されてデータシーケンサ148に入力信号DAT_Inとして入力される。なお、図9では、転送データが8ビットデータである。
【0110】
図10に、図8のコマンドシーケンサ142の動作説明図を示す。
【0111】
コマンドシーケンサ142は、複数のステートを有し、各ステートに応じた制御を行う。各ステートには、予め遷移条件が決められており、該遷移条件を満足することで次のステートに遷移する。
【0112】
電源投入(SQ1)後の初期状態では、コマンドシーケンサ142は、IDLEステートST1に遷移する。そして、制御マスタ126が、小型HDDコントローラ130の制御レジスタに制御コマンドを発行するためのコマンド指定情報やそのパラメータ情報を設定し、その後、制御コマンド発行指示レジスタにアクセスすることで制御コマンドの発行指示を行う。コマンドシーケンサ142は、制御コマンドの発行指示(SQ2)があると、SEND_CMDステートST2に遷移する。
【0113】
SEND_CMDステートST2では、コマンド制御部140が、コマンド指定情報やそのパラメータ情報に基づいて、小型HDD装置200に対してコマンドを発行する。コマンド制御部140が、小型HDD装置200に対して、コマンドのエンドビットを送信すると(SQ3)、コマンドシーケンサ142は、WAIT_RESPステートST3に遷移する。
【0114】
WAIT_RESPステートST3では、所定のタイムアウト期間だけ、上記のコマンドに対応したレスポンスのスタートビットを待つ。WAIT_RESPステートST3において、所定のタイムアウト期間内にレスポンスのスタートビットを検出すると、コマンドシーケンサ142は、RCV_RESPステートST4に遷移する(SQ4)。WAIT_RESPステートST3において、所定のタイムアウト期間が経過すると、コマンドシーケンサ142は、ERR_PROステートST6に遷移する(SQ100)。
【0115】
RCV_RESPステートST4では、コマンドシーケンサ142が、コマンドラインを介して小型HDD装置200からのレスポンスデータを受信する。そして、レスポンスのエンドビットの受信が完了する(SQ5)と、コマンドシーケンサ142は、END8CLKステートST5に遷移する。
【0116】
END8CLKステートST5では、コマンド発行間隔期間である転送クロックCLKの8クロック分だけ待機する。そして、RCV_RESPステートST4において受信されたレスポンスのエラーが検出されているとき、コマンドシーケンサ142は、ERR_PROステートST6に遷移する(SQ6)。ERR_PROステートST6では、制御I/F回路132又はコントローラ制御レジスタ部136が、検出されたエラーに応じて制御マスタ126にエラーが発生した旨の割り込みを発生させる。その後、コマンドシーケンサ142は、ERR_PROステートST6からIDLEステートST1に遷移する(SQ7)。
【0117】
RCV_RESPステートST4において受信されたレスポンスが正常のとき、コマンドシーケンサ142は、Cmd_CmpステートST7に遷移する(SQ8)。Cmd_CmpステートST7では、制御I/F回路132又はコントローラ制御レジスタ部136が、制御マスタ126にコマンド完了通知割り込みを発生させる。その後、コマンドシーケンサ142は、Cmd_CmpステートST7からIDLEステートST1に遷移する(SQ9)。
【0118】
図11に、図8のデータシーケンサ148の動作説明図を示す。
【0119】
データシーケンサ148は、複数のステートを有し、各ステートに応じた制御を行う。各ステートには、予め遷移条件が決められており、該遷移条件を満足することで次のステートに遷移する。
【0120】
電源投入(SQ10)後の初期状態では、データシーケンサ148は、IDLEステートST10に遷移する。制御マスタ126で実行される上位アプリケーションから小型HDD装置200に対して制御コマンドの発行指示があると、その制御コマンドの種類によって遷移先のステートが変わる。
【0121】
IDLEステートST10において、上位アプリケーションから発行指示された制御コマンドがライトコマンドのとき(SQ11)、データシーケンサ148は、CHK_BUSYステートST11に遷移する。
【0122】
CHK_BUSYステートST11では、小型HDD装置200がビジー状態か否かが検出される。CHK_BUSYステートST11において、小型HDD装置200の非ビジー状態が検出されたとき(SQ12)、データシーケンサ148は、WR_DATステートST12に遷移する。CHK_BUSYステートST11において、小型HDD装置200のビジー状態が検出されたとき(SQ13)、データシーケンサ148は、CHK_BUSYステートST11を繰り返す。
【0123】
WR_DATステートST12において、データシーケンサ148は、小型HDD装置200に対してライトデータを送出する制御を行う。1ブロック分のライトデータを送出すると(SQ14)、データシーケンサ148は、CRCSTステートST13に遷移する。
【0124】
CRCSTステートST13では、データシーケンサ148は、ライトデータのCRCステータスをチェックし、CRCステータスが正常で次のブロックの転送が必要なとき(SQ15)、データシーケンサ148は、WR_DATステートST12に遷移する。CRCSTステートST13において、CRCステータスが正常で次のブロックの転送が不要なとき(SQ16)、データシーケンサ148は、END8CLKステートST20に遷移する。
【0125】
END8CLKステートST20では、コマンド発行間隔期間である転送クロックCLKの8クロック分だけ待機する。そして、転送クロックCLKの8クロック分の期間が経過する(SQ20)と、データシーケンサ148は、CHK_BUSYステートST21に遷移する。
【0126】
CHK_BUSYステートST21では、小型HDD装置200がビジー状態か否かが検出される。CHK_BUSYステートST21において、小型HDD装置200の非ビジー状態が検出されたとき(SQ22)、データシーケンサ148は、Tran_CmpステートST22に遷移する。CHK_BUSYステートST21において、小型HDD装置200のビジー状態が検出されたとき(SQ21)、データシーケンサ148は、CHK_BUSYステートST21を繰り返す。
【0127】
Tran_CmpステートST22では、データシーケンサ148が、制御マスタ126に対して転送終了割り込みを発生させる制御が行われる。転送終了割り込みを発生した後(SQ23)、データシーケンサ148は、IDLEステートST10に遷移する。
【0128】
IDLEステートST10において、上位アプリケーションから発行指示された制御コマンドがリードコマンドのとき(SQ31)、データシーケンサ148は、RD_DATステートST31に遷移する。
【0129】
RD_DATステートST31では、データシーケンサ148は、小型HDD装置200から1ブロック分のリードデータを読み出す制御を行う。次のブロックのリードデータを読み出す必要があるとき(SQ32)、データシーケンサ148は、RD_DATステートST31を繰り返す。RD_DATステートST31において、次のブロックのリードデータを読み出す必要がないとき(SQ33)、データシーケンサ148は、END8CLKステートST32に遷移する。
【0130】
END8CLKステートST32では、コマンド発行間隔期間である転送クロックCLKの8クロック分だけ待機する。そして、転送クロックCLKの8クロック分の期間が経過する(SQ34)と、データシーケンサ148は、Tran_CmpステートST22に遷移する。
【0131】
IDLEステートST10において、上位アプリケーションから発行指示された制御コマンドが、R1bレスポンスを有するライトコマンドのとき(SQ41)、データシーケンサ148は、MASK_R1b_WR_BUSYステートST41に遷移する。より具体的には、データシーケンサ148は、該ライトコマンドのレスポンスのエンドビットを受信したことを条件に、MASK_R1b_WR_BUSYステートST41に遷移する。
【0132】
MASK_R1b_WR_BUSYステートST41では、データシーケンサ148は、小型HDD装置200からのレスポンスを受信し、小型HDD装置200の種類(規格、バージョン)によって変化するビジー状態の検出タイミングをマスク制御して特定する。MASK_R1b_WR_BUSYステートST41において、小型HDD装置200からの正常なレスポンスのエンドビットが受信され、エラーがないことが検出されると、データシーケンサ148は、CHK_BUSYステートST11に遷移する(SQ42)。
【0133】
MASK_R1b_WR_BUSYステートST41において、小型HDD装置200から受信したレスポンスでエラーが検出されると、データシーケンサ148は、CHK_R1b_BUSYステートST42に遷移する(SQ43)。
【0134】
一方、IDLEステートST10において、上位アプリケーションから発行指示された制御コマンドが、R1bレスポンスを有するコマンド(ライトコマンドを除くコマンド)のとき(SQ44)、データシーケンサ148は、MASK_R1b_BUSYステートST43に遷移する。
【0135】
MASK_R1b_BUSYステートST43では、データシーケンサ148は、小型HDD装置200からのレスポンスを受信し、小型HDD装置200の種類(規格、バージョン)によって変化するビジー状態の検出タイミングをマスク制御して特定する。次に、MASK_R1b_BUSYステートST43において、ビジー状態の検出タイミングになると、データシーケンサ148は、CHK_R1b_BUSYステートST42に遷移する(SQ45)。
【0136】
CHK_R1b_BUSYステートST42では、小型HDD装置200がビジー状態か否かが検出される。CHK_R1b_BUSYステートST42において小型HDD装置200のビジー状態が検出されたとき(SQ46)、データシーケンサ148は、R1b_BUSYステートST44に遷移する。CHK_R1b_BUSYステートST42において小型HDD装置200の非ビジー状態が検出されたとき(SQ47)、データシーケンサ148は、R1bCOMPステートST45に遷移する。
【0137】
R1b_BUSYステートST44において、小型HDD装置200の非ビジー状態が検出されたとき(SQ48)、データシーケンサ148は、R1bCOMPステートST45に遷移する。
【0138】
R1bCOMPステートST45に遷移すると、データシーケンサ148は、IDLEステートST10に遷移する(SQ49)。
【0139】
図12に、本実施形態における小型HDDコントローラ130の動作例のタイミング図を示す。
【0140】
図12では、コマンドシーケンサ142のステートやデータシーケンサ148のステートも示し、図12では図10又は図11の各ステートを分割した詳細なステートを示している。
【0141】
コマンドシーケンサ142は、R1bレスポンスを伴うライトコマンドの発行指示がある(TG1)と、SEND_CMDステートに遷移し、コマンドラインを介してコマンドが送出される(TG2)。
【0142】
コマンドのエンドビットを送信すると、データシーケンサ148は、MASK_R1b_WR_BUSYステートに遷移する(TG3)。
【0143】
コマンドシーケンサ142は、コマンドのエンドビットを送信するとWAIT_RESPステートに遷移する(TG4)。その後、レスポンスのスタートビットを受信するとRCV_RESPステートに遷移する。そして、レスポンスのエンドビットを受信すると、END8CLKステートに遷移後、Cmd_Cmpステートに遷移する。
【0144】
データシーケンサ148は、コマンドシーケンサ142がEND8CLKステートに遷移後、CHK_BUSYステートに遷移(TG5)し、ライトデータの出力を開始する(TG6)。
【0145】
このように、図12では、小型HDDコントローラ130が、R1bレスポンスを伴うライトコマンドを発行し、レスポンスのエンドビットを受信後に、コマンド完了間隔期間経過後にビジー状態の検出し、小型HDD装置200が非ビジー状態になったときにライトデータの出力を開始している。
【0146】
図13に、本実施形態における小型HDDコントローラ130の他の動作例のタイミング図を示す。
【0147】
図13では、コマンドシーケンサ142のステートやデータシーケンサ148のステートも示し、図13では図10又は図11の各ステートを分割した詳細なステートを示している。
【0148】
コマンドシーケンサ142は、R1bレスポンスを伴うライトコマンドの発行指示がある(TG10)と、SEND_CMDステートに遷移し、コマンドラインを介してコマンドが送出される(TG11)。
【0149】
コマンドのエンドビットを送信すると、データシーケンサ148は、MASK_R1b_WR_BUSYステートに遷移する(TG12)。
【0150】
コマンドシーケンサ142は、コマンドのエンドビットを送信するとWAIT_RESPステートに遷移する(TG13)。その後、レスポンスのスタートビットを受信するとRCV_RESPステートに遷移し、レスポンスのエンドビットを受信する。ここで、レスポンスのエンドビットが例えば「0」であり、レスポンスエラーが検出されると、コマンドシーケンサ142は、END8CLKステートに遷移後、ERR_PROステートに遷移する(TG14)。
【0151】
データシーケンサ148は、コマンドシーケンサ142がEND8CLKステートに遷移後、CHK_R1b_BUSYステートに遷移(TG15)し、ビジー状態をチェック後、R1b_BUSYステートを経てR1bCOMPステートで転送終了完了割り込みを発生して、IDLEステートに戻る。ここで、転送終了完了割り込みは、コマンド完了割り込みと同様に、小型HDDコントローラ130から制御マスタ126に通知される、転送終了を意味する割り込み信号である。
【0152】
このように、図13では、小型HDDコントローラ130が、R1bレスポンスを伴うライトコマンドを発行し、レスポンスのエラーが検出されたときに、コマンド完了間隔期間経過後にビジー状態の検出し、小型HDD装置200が非ビジー状態になったときに転送終了割り込みを発生させている。
【0153】
3. 電子機器
次に、本実施形態におけるカードコントローラが適用されるホストシステムを含む電子機器の構成例を示す。
【0154】
図14に、本実施形態における電子機器としてのデジタルスチルカメラの構成例のブロック図を示す。
【0155】
図14において、図1と同一部分には同一符号を付し、適宜説明を省略する。
【0156】
電子機器10は、電荷結合素子(Charge Coupled Device:以下、CCD)イメージセンサ800、AD変換器810、メモリ820、クロック生成回路830、ホストシステム100、ソケット(スロット、メモリ装着部、カード装着部、メモリカード装着部、記憶デバイス装着部)840を含む。
【0157】
CCDイメージセンサ800は、複数の受光素子を有し、各受光素子に光が入射することにより発生した電荷を読み出して、画像を電気信号に変換する。CCDイメージセンサ800によって電気信号に変換された画像データは、AD変換器810によりデジタル信号に変換された後、メモリ820にバッファリングされる。
【0158】
クロック生成回路830は、電子機器10の基本クロックやホストシステム100の基本クロックを生成する。
【0159】
図14のプログラムメモリ120は、図1のメモリ120として機能する。
【0160】
ソケット840には、小型HDD装置200が挿抜される。小型HDD装置200がソケット840に挿入された状態で、バス20を介して小型HDDコントローラ130と小型HDD装置200との間でCE−ATA規格に従ったアクセスが行われる。
【0161】
ホストシステム100の制御により、メモリ820に蓄えられた画像データを小型HDD装置200に書き込んだり、小型HDD装置200から画像データを読み出してメモリ820に蓄積させたりできる。
【0162】
図14のような電子機器10によれば、ホストシステム100の制御及び構成が簡素化され、低消費電力化及び低コスト化が実現される。
【0163】
なお、本発明は上述した実施の形態に限定されるものではなく、本発明の要旨の範囲内で種々の変形実施が可能である。本実施形態における小型HDD装置は、HDD装置200の装置に限定されるものではない。本実施形態における小型HDD装置に代えて、メモリカード、フラッシュメモリカード、I/Oデバイス、HDD装置、DVD装置、又は光ディスク装置であってもよい。
【0164】
更に、本発明を適用できるコマンドは、上述の実施形態において説明したものに限定されるものではなく、例えばMMC規格と同様の思想に基づく規格やMMC規格を発展させた規格のライト動作、例えばCE−ATA規格と同様の思想に基づく規格やCE−ATA規格を発展させた規格のライト動作にも当然本発明を適用できる。
【0165】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の1の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【図面の簡単な説明】
【0166】
【図1】本実施形態における情報処理装置が適用された電子機器の構成例のブロック図。
【図2】図1の小型HDD装置の構成例のブロック図。
【図3】本実施形態における小型HDD装置コントローラの構成例のブロック図。
【図4】図4(A)はコマンド制御部により送信されるコマンドの説明図。図4(B)はコマンド制御部により受信されるレスポンスの説明図。
【図5】図3のコマンド制御部、コマンド完了通知部、エラー通知部及びエラー判定部の処理例のフロー図。
【図6】図3のデータ制御部及びビジー検出部の処理例のフロー図。
【図7】本実施形態における小型HDDコントローラの他の処理例のフロー図。
【図8】本実施形態における小型HDDコントローラのハードウェア構成例を示す図。
【図9】図8のドライバ部の構成の概要を示す図。
【図10】図8のコマンドシーケンサの動作説明図。
【図11】図8のデータシーケンサの動作説明図。
【図12】本実施形態における小型HDDコントローラの動作例のタイミング図。
【図13】本実施形態における小型HDDコントローラの他の動作例のタイミング図。
【図14】本実施形態における電子機器の構成例のブロック図。
【符号の説明】
【0167】
10 電子機器、 20 バス、 100 ホストシステム、 110 CPU、
120 メモリ、 126 制御マスタ、 130 小型HDDコントローラ、
132 制御I/F回路、 134 FIFOI/F回路、
136 コントローラ制御レジスタ部、 138、300 クロック制御部、
140、310 コマンド制御部、 142 コマンドシーケンサ、
143 レスポンスエラー判定部、 146、320 データ制御部、
148 データシーケンサ、 149、330 ビジー検出部、 150 ドライバ部、200 小型HDD装置、 210 CPUI/F回路、 212 PLL回路、
220 HDDI/F制御回路、 230 HDD制御レジスタ部、
240 HDD装置I/F回路、 250 HDD装置、
340 コマンド完了通知部、 350 エラー通知部、 360 エラー判定部

【特許請求の範囲】
【請求項1】
記憶デバイスにアクセスするための記憶デバイスコントローラであって、
前記記憶デバイスに対してライトコマンドを発行して該記憶デバイスにライトデータを出力する書き込み制御部と、
前記記憶デバイスのビジー状態を検出するビジー検出部と、
を含み、
前記ライトコマンドに対応して前記記憶デバイスからのレスポンスを受信したことを条件に、前記ビジー検出部が、前記ビジー状態の検出を開始し、
前記ビジー検出部により前記記憶デバイスの非ビジー状態が検出されたときに、前記書き込み制御部が、前記ライトデータの出力を開始することを特徴とする記憶デバイスコントローラ。
【請求項2】
請求項1において、
前記ビジー検出部が、
前記レスポンスのエンドビットの受信タイミングを基準に予め決められたコマンド発行間隔期間が経過したときに前記ビジー状態の検出を開始することを特徴とする記憶デバイスコントローラ。
【請求項3】
請求項1又は2において、
前記ライトコマンドに対応する前記記憶デバイスからのレスポンスのエラーを判定するエラー判定部と、
前記ライトコマンドの完了を通知するためのコマンド完了処理部と、
を含み、
前記エラー判定部によりレスポンスのエラーが検出されないときに、前記コマンド完了処理部が前記ライトコマンドの完了通知を行った後、前記ビジー検出部が、前記記憶デバイスのビジー状態の検出を開始し、
前記ビジー検出部により前記記憶デバイスの非ビジー状態が検出されたときに、前記書き込み制御部が、前記ライトデータの出力を開始して、前記ライトコマンドによるライト転送が完了したことを条件にデータ転送を終了することを特徴とする記憶デバイスコントローラ。
【請求項4】
請求項1又は2において、
前記ライトコマンドに対応する前記記憶デバイスからのレスポンスのエラーを判定するエラー判定部と、
前記ライトコマンドによるライト転送のエラーを通知するためのエラー通知部と、
を含み、
前記エラー判定部によりレスポンスのエラーが検出されたときに、前記エラー通知部が、前記ライト転送のエラーを通知した後、前記ビジー検出部が、前記記憶デバイスのビジー状態の検出を開始し、
前記ビジー検出部により前記記憶デバイスの非ビジー状態が検出されたときに、前記ライト転送を行うことなく、前記ライトコマンドによるデータ転送を終了することを特徴とする記憶デバイスコントローラ。
【請求項5】
請求項1乃至4のいずれかにおいて、
前記ライトコマンドが、
CE−ATA(Consumer Electronics-AT Attachment)規格のR1bレスポンスを伴うコマンドであることを特徴とする記憶デバイスコントローラ。
【請求項6】
請求項1乃至5のいずれかにおいて、
前記コマンド発行間隔期間が、
前記ライトコマンドの同期クロックの8クロック分に相当する期間であることを特徴とする記憶デバイスコントローラ。
【請求項7】
請求項1乃至6のいずれか記載の記憶デバイスコントローラと、
前記記憶デバイスコントローラに対して前記ライトコマンドの発行を制御する制御マスタと、
を含むことを特徴とする情報処理装置。
【請求項8】
前記記憶デバイスが挿抜される記憶デバイス装着部と、
請求項7記載の情報処理装置と、
を含むことを特徴とする電子機器。
【請求項9】
ビジー状態を出力することでライトコマンドに対応したライトデータの送出停止を要求可能な記憶デバイスのアクセス方法であって、
前記ライトコマンドに対応して前記記憶デバイスからのレスポンスを受信するステップと、
前記レスポンスの受信を条件に前記ビジー状態の検出を開始するステップと、
前記ビジー状態の検出後、前記記憶デバイスの非ビジー状態が検出されたときに、前記ライトデータの出力を開始するステップと、
を含むことを特徴とする記憶デバイスのアクセス方法。
【請求項10】
請求項9において、
前記レスポンスのエンドビットの受信タイミングを基準に予め決められたコマンド発行間隔期間が経過したときに前記ビジー状態の検出を開始することを特徴とする記憶デバイスのアクセス方法。
【請求項11】
請求項9又は10において、
前記ライトコマンドに対応する前記記憶デバイスからのレスポンスのエラーが検出されないときに、前記ライトコマンドの完了通知を行うステップと、
前記完了通知後に、前記記憶デバイスのビジー状態を検出するステップと、
前記記憶デバイスの非ビジー状態が検出されたときに、前記ライトデータの出力を開始して、前記ライトコマンドによるライト転送が完了したことを条件にデータ転送を終了するステップと、
を含むことを特徴とする記憶デバイスのアクセス方法。
【請求項12】
請求項9又は10において、
前記ライトコマンドに対応する前記記憶デバイスからのレスポンスのエラーが検出されたときに、前記ライト転送のエラーを通知するステップと、
前記エラーの通知後、前記記憶デバイスのビジー状態を検出するステップと、
前記記憶デバイスの非ビジー状態が検出されたときに、前記ライト転送を行うことなく、前記ライトコマンドによるデータ転送を終了するステップと、
を含むことを特徴とする記憶デバイスのアクセス方法。
【請求項13】
請求項9乃至12のいずれかにおいて、
前記ライトコマンドが、
CE−ATA(Consumer Electronics-AT Attachment)規格のR1bレスポンスを伴うコマンドであることを特徴とする記憶デバイスのアクセス方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2010−15427(P2010−15427A)
【公開日】平成22年1月21日(2010.1.21)
【国際特許分類】
【出願番号】特願2008−175647(P2008−175647)
【出願日】平成20年7月4日(2008.7.4)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】