(57)【特許請求の範囲】
【請求項１】
複数のフラッシュメモリデバイスと、
前記複数のフラッシュメモリデバイスを制御するメモリコントローラを備え、
前記メモリコントローラは、前記複数のフラッシュメモリデバイスのそれぞれを制御するためにインターフェースを有し、
前記インターフェースは、データバスに接続される複数のデータ端子を含み、
前記データバスは、前記メモリコントローラと前記複数のフラッシュメモリデバイスとの間でデータを通信し、
前記メモリコントローラは、前記複数のデータ端子から、（１）フラッシュデバイス識別情報、および、（２）コマンドを、前記複数のフラッシュメモリデバイスに送信し、
前記フラッシュデバイス識別情報は、前記複数のフラッシュメモリデバイスのうち、前記コマンドが関連するフラッシュメモリデバイスを指定し、
前記メモリコントローラは、
前記インターフェースのチップイネーブル信号を使用する代わりに前記データバスから送信された前記フラッシュデバイス識別情報を使用して、前記複数のフラッシュメモリデバイスの第１のフラッシュメモリデバイスを選択し、
前記複数のデータ端子を介して、１以上の前記複数のフラッシュメモリデバイスのセル毎のビット数を設定し、
前記複数のフラッシュメモリデバイスは、１以上のチップイネーブル信号を受信し使用するための１以上のピンを含まない集積回路。
【請求項２】
前記メモリコントローラは、前記複数のデータ端子から、前記コマンドの送信に先行して、前記フラッシュデバイス識別情報を送信する請求項１に記載の集積回路。
【請求項３】
前記メモリコントローラは、
前記コマンドに後続する１以上のパラメータバイトと、
前記１以上のパラメータバイトに後続する１以上のデータバイトと
を前記複数のデータ端子から送信し、
前記パラメータバイトの総数が前記コマンドに応じ、前記データバイトの総数が前記コマンドによって決定される請求項２に記載の集積回路。
【請求項４】
前記メモリコントローラが、前記複数のデータ端子を介して、１以上の製品コードと１以上の前記複数のフラッシュメモリデバイスの修正レベルとを読み取る請求項１から３のいずれか一項に記載の集積回路。
【請求項５】
前記インターフェースは、
前記複数のフラッシュメモリデバイスを設定するために、１以上の設定コマンドを送信する設定端子と、
前記複数のフラッシュメモリデバイスにコマンドタイミング信号を送信するコマンド制御端子と、
前記複数のフラッシュメモリデバイスにクロック信号を送信するクロック端子と、
前記複数のフラッシュメモリデバイスから読出コマンドを受信する読出コマンド端子と
を備え、 
前記複数のフラッシュメモリデバイスが設定されるとすぐに、前記コマンド制御端子、前記クロック端子および前記読出コマンド端子のそれぞれからの信号が、前記複数のフラッシュメモリデバイスを制御するために、同期、汎用タイミングおよび読出タイミングを供給する請求項１から４のいずれか一項に記載の集積回路。
【請求項６】
前記メモリコントローラは、
前記コマンドタイミング信号をアサート状態に移行させ、
（１）前記複数のフラッシュメモリデバイスのうちの１つの前記フラッシュデバイス識別情報、および、（２）前記設定コマンドを送信し、
前記フラッシュデバイス識別情報と前記コマンドが供給された後に、１サイクルにわたって、前記設定端子から設定信号が送信されると、認証データを供給することによってデバイス設定操作を実行する請求項５に記載の集積回路。
【請求項７】
前記メモリコントローラは、最後の認証データの一部が供給されるよりも１サイクル前に、前記コマンドタイミング信号を移行させる請求項６に記載の集積回路。
【請求項８】
前記クロック信号の最大１６サイクルまで、前記メモリコントローラが前記認証データを供給する請求項６に記載の集積回路。
【請求項９】
（ｉ）前記複数のフラッシュメモリデバイスのうちの前記１つが既に設定済みの場合、
（ｉｉ）ライトプロテクト信号が前記メモリコントローラによってアサートされていない場合、
（ｉｉｉ）前記設定信号がアサートされていない場合、
（ｉｖ）前記設定信号が、前記クロック信号の２サイクル以上にわたってアサートされている、若しくは、別々に２回アサートされている場合
のうち１つ以上に該当する場合は、前記複数のフラッシュメモリデバイスのうちの前記１つは前記設定コマンドを無視する請求項６に記載の集積回路。
【請求項１０】
前記メモリコントローラが、
ライトプロテクト信号をアサートし、
前記コマンドタイミング信号をアサートし、
読出コマンドを供給し、
前記複数のフラッシュメモリデバイスのうちの前記１つからデータを受信することによって、前記複数のフラッシュメモリデバイスのうちの１つの前記フラッシュデバイス識別情報を読み取り、
前記データが、前記複数のフラッシュメモリデバイスのうちの前記１つから供給される前記読出タイミングによって同期される請求項５に記載の集積回路。
【請求項１１】
ライトプロテクト信号をアサートし、
前記コマンドタイミング信号をアサート状態に移行させ、
（ｉ）前記複数のフラッシュメモリデバイスのうちの１つの前記フラッシュデバイス識別情報、および、（ｉｉ）プログラミングコマンド、を送信し、
前記コマンドの後に、パラメータデータを前記複数のフラッシュメモリデバイスのうちの前記１つに供給し、
前記複数のフラッシュメモリデバイスのうちの前記１つにプログラミングのためのデータを供給することにより、前記複数のフラッシュメモリデバイスのうちの前記１つのフラッシュデバイスをプログラミングする請求項５に記載の集積回路。
【請求項１２】
前記メモリコントローラは、前記コマンドタイミング信号をデアサートすることにより、前記複数のフラッシュメモリデバイスのうちの前記１つのプログラミングを終了する請求項１１に記載の集積回路。
【請求項１３】
前記複数のフラッシュメモリデバイスのうちの前記１つは、前記プログラミングコマンドの終了を前記メモリコントローラに知らせるために、割り込み信号を所定の状態に移行させる請求項１１に記載の集積回路。
【請求項１４】
前記集積回路はバッファをさらに備え、
前記メモリコントローラは、
ライトプロテクト信号をアサートし、
前記コマンドタイミング信号をアサート状態に移行させ、
（ｉ）前記複数のフラッシュメモリデバイスのうちの１つの前記フラッシュデバイス識別情報、および、（ｉｉ）プログラミングコマンドを送信し、
前記コマンドの後に、パラメータデータを前記複数のフラッシュメモリデバイスのうちの前記１つに供給し、
前記複数のフラッシュメモリデバイスのうちの前記１つにプログラミングのためのプログラミングデータを供給し、
前記コマンドタイミング信号の前記送信から、前記クロック信号の所定のクロックサイクル以内に、前記ライトプロテクト信号が移行しなかった場合に前記バッファに前記プログラミングデータを書き込むことによって、前記バッファに前記プログラミングデータを書き込む請求項５に記載の集積回路。
【請求項１５】
前記メモリコントローラは、前記コマンドタイミング信号をデアサートすることにより、前記プログラミングデータの前記バッファへの書き込みを終了させる、請求項１４に記載の集積回路。
【発明の詳細な説明】
【関連出願】
【０００１】
本願は、米国仮特許出願第６０／８２８，１４４号（代理人整理番号：ＭＰ１３１３ＰＲ、出願日：２００６年１０月４日）による恩恵を主張し、当該仮出願の内容はすべて参照により本願に組み込まれる。
【技術分野】
【０００２】
本発明は概して、フラッシュメモリデバイス、フラッシュメモリインターフェース、およびフラッシュメモリアーキテクチャに関する。特に、本発明の実施形態は、フラッシュメモリデバイスを制御するためのインターフェース、装置および方法に関連する。
【背景技術】
【０００３】
フラッシュＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）のようなメモリデバイスが広く利用されるようになっている。例えば、「ジャンプ」ドライブ（例えば、ユニバーサル・シリアル・バス（ＵＳＢ）接続用）、メモリカード等の不揮発性メモリアプリケーションが、カメラ、ビデオゲーム、コンピュータ等の電子デバイスにおいて一般的に用いられている。図１は、従来のメモリアレイ編成１００を示すブロック図である。例えば、当該メモリアレイは、ビット（例えば、８ビット深さ１０８）、バイト（例えば、２ｋＢ部分１０４および６４Ｂ部分１０６）、ページ（例えば、５１２Ｋのページ１０２、８１９２個のブロックに対応）、およびブロック（例えば、ブロック１１０、６４個のページに等しい）を単位として編成することができ、本例では８Ｍｂデバイスを形成している。また、１ページ１１２は、部分１１４（例えば、２ｋＢ＋６４Ｂ＝２１１２Ｂ＝８４０ｈ）、および、８ビットの幅を持つデータ入出力（Ｉ／Ｏ）経路（例えば、Ｉ／Ｏ  ０からＩ／Ｏ  ７）に対応する部分１１６として編成され得る。
【０００４】
この種のフラッシュメモリは、「ＮＡＮＤ」型と呼ばれることもあり、通常は「ＮＯＲ」型フラッシュメモリに比べて、消去時間および書込時間が短くてすみ、密度が高く、１ビット当たりのコストが低く、耐久性が高い。しかし、ＮＡＮＤ型フラッシュＩ／Ｏインターフェースでは通常、データに対してシーケンシャルアクセスしか実現できない。図２Ａは、従来の読出動作を示すタイミングチャート２００である。以下で表１に示すように、ＮＡＮＤフラッシュインターフェースでは、さまざまなピン機能を指定ピンに対応させることができる。
【表１】
0005879651.tif 000002
【０００５】
図２Ａから分かるように、ＷＥ＿がパルス状で与えられることによって（例えば、２５ｎｓ周期）、デバイスでは行アドレス（例えば、ＲＡ１、ＲＡ２、およびＲＡ３）情報および列アドレス（例えば、ＣＡ１およびＣＡ２）情報をラッチしている。図示されているコマンド「００ｈ」は読出アドレス入力を示し、コマンド「３０ｈ」は読出開始を示すとしてもよい。パルス状で与えられているＲＥ＿にしたがって、データであるＤｏｕｔ  Ｎ、Ｄｏｕｔ  Ｎ＋１、Ｄｏｕｔ  Ｎ＋２、・・・、およびＤｏｕｔ  Ｍを当該デバイスから読み出すことができる。また例えば、信号Ｒ／Ｂ＿は、論理値ＬＯＷの状態では出力がビジー状態であることを示し、ＷＥ＿の最後の立ち上がりエッジの後で所定の時間が経過すると論理値ＨＩＧＨになるとしてもよい。データ入出力ピン（例えば、Ｉ／Ｏ［７：０］）における行アドレスおよび列アドレスの多重化は、以下の表２に示すとおりであるとしてもよい。
【表２】
0005879651.tif 000003
【０００６】
例えば、より高位のアドレスビットを使用するほど、アドレス指定対象のメモリ装置を大きくすることができる（例えば、Ａ３０は２Ｇｂ用、Ａ３１は４Ｇｂ用、Ａ３２は８Ｇｂ用、Ａ３３は１６Ｇｂ用、Ａ３４は３２Ｇｂ用、およびＡ３５は６４Ｇｂ用である）。
【０００７】
図２Ｂは、従来のページプログラミング動作を示すタイミングチャート２２０である。ここで、コマンド「８０ｈ」は、シリアルデータ（例えば、Ｄｉｎ  Ｎ・・・Ｄｉｎ  Ｍ）の入力を示すとしてもよい。コマンド「１０ｈ」は、ステータス読出（コマンド「７０ｈ」）が後に続く、オートプログラミングを示すとしてもよい。Ｉ／Ｏ［０］＝「０」は、エラーが無い状態を示し、Ｉ／Ｏ［０］＝「１」はオートプログラミングでのエラー発生を示すとしてもよい。また、信号Ｒ／Ｂ＿は、ＬＯＷの場合にビジー状態を示すとしてもよく、ビジー状態は通常、数百μｓのオーダーの時間継続する。また、ＲＥ＿の立ち上がりエッジは、所定の時間（一例では６０ｎｓ）の間隔を空けて、ＷＥ＿の立ち上がりエッジに続くとしてもよい。
【０００８】
図２Ｃは、従来のブロック消去動作を示すタイミングチャート２４０である。コマンド「６０ｈ」はブロック消去動作を示すとしてもよく、シーケンシャルな行アドレス（例えば、ＲＡ１、ＲＡ２、およびＲＡ３）が与えられる。コマンド「Ｄ０ｈ」は、２サイクル目のブロック消去動作を示すとしてもよい。ブロック消去動作は、ステータス読出（コマンド「７０ｈ」）によってチェックすることができる。ここで、Ｉ／Ｏ［０］＝「０」は、エラーが無い状態を示し、Ｉ／Ｏ［０］＝「１」はブロック消去動作でのエラー発生を示すとしてもよい。信号タイミングの例を挙げると、信号Ｒ／Ｂ＿は通常約１ミリ秒のオーダーの期間中ＬＯＷであり（所定の最大値あり）、ＲＥ＿の立ち上がりエッジはＷＥ＿の立ち上がりエッジの後に発生し、コマンド「Ｄ０ｈ」に対応するＷＥ＿の立ち上がりエッジからＲ／Ｂ＿の立ち下がりエッジの間は約１００ｎｓであってもよい。
【０００９】
共通パッケージ内に複数のチップまたはデバイスを含む従来のフラッシュメモリ装置（例えば、ハイブリッドドライブ）では、さまざまなフラッシュメモリチップにアクセスするためには複数のチップイネーブル（ＣＥ＿）ピンが必要となり得る。特にメモリ構造が大きくなると、このように複数のイネーブルピンを設けると、制御ロジックがかなり複雑になると共に、占有するチップ面積がかなり大きくなってしまう場合がある。このため、ピンカウントを大きくすることなく、複数のフラッシュメモリチップまたはデバイスに対するアクセス（例えば、プログラミングおよび読出）を制御できるようになることが望まれている。
【発明の概要】
【課題を解決するための手段】
【００１０】
本発明の実施形態は、フラッシュメモリデバイスを制御するためのインターフェース、装置および方法に関連する。
【００１１】
一側面によると、メモリコントローラは、ホストと通信する第１のインターフェースと、複数のフラッシュメモリデバイスと通信する第２のインターフェースとを備えるとしてもよい。第２のインターフェースは、複数のフラッシュメモリデバイスに命令を送信し、デバイス識別情報を受信する設定端子と、複数のフラッシュメモリデバイスにコマンドタイミング信号を送信するコマンド制御端子と、複数のフラッシュメモリデバイスにクロック信号を送信するクロック端子と、複数のフラッシュメモリデバイスから読出コマンドを受信する読出コマンド端子と、複数のフラッシュメモリデバイスとの間でデータの送受信を行う第１の複数のデータ入出力（Ｉ／Ｏ）端子とを有するとしてもよい。
【００１２】
当該メモリコントローラはさらに、設定端子から命令を送信した後所定の時間内に、第１の複数のデータＩ／Ｏ端子から複数のフラッシュメモリデバイスに対してデバイス識別情報を送信するとしてもよい。このような構成に加え、または、このような構成に代えて、当該メモリコントローラはさらに、第１の複数のデータＩ／Ｏ端子を高インピーダンス状態にする少なくとも１サイクル前に、コマンドタイミング信号を発するコマンドタイミングロジックを備えるとしてもよく、および／または、アクティブな読出コマンドに応じて複数のフラッシュメモリデバイスのうち１つからデータを読み出す読出動作を行う読出ロジックを備えるとしてもよい。
【００１３】
当該メモリコントローラでは、読出コマンドは読出クロックを含むとしてもよい。当該メモリコントローラはさらに、第１の複数のデータＩ／Ｏ端子から複数のフラッシュメモリデバイスへ動作コマンドを送信するコマンドロジックを備えるとしてもよい。当該メモリコントローラはさらに、複数のフラッシュメモリデバイスにライトプロテクト信号を送信するライトプロテクト端子を備えるとしてもよい。当該メモリコントローラはさらに、複数のフラッシュメモリデバイスから割り込み信号を受信する割り込み端子を備える。
【００１４】
当該メモリコントローラの第１のインターフェースは、（ｉ）ホストとの間でデータの送受信を行う第２の複数のデータＩ／Ｏ端子と、（ｉｉ）コマンドタイミング信号をホストへ送信するコマンドイネーブル端子と、（ｉｉｉ）クロック信号をホストへ送信するアドレスイネーブル端子と、（ｉｖ）ホストから読出コマンドを受信する読出イネーブル端子と、（ｖ）記ホストへ命令を送信する書込イネーブル端子とを有するとしてもよい。
【００１５】
当該第１のインターフェースはさらに、複数のフラッシュメモリデバイスのうち１つを特定する複数のデバイスイネーブル端子を有するとしてもよい。第１の複数のデータＩ／Ｏ端子は第１の数のＩ／Ｏ端子から成り、第２の複数のデータＩ／Ｏ端子は第２の数のＩ／Ｏ端子から成り、第１の数は第２の数の整数倍である。当該メモリコントローラの第１のインターフェースはさらに、ライトプロテクト信号をホストに送信するライトプロテクト端子と、ホストから割り込み信号を受信するステータス端子とを有するとしてもよい。
【００１６】
別の側面によると、複数のフラッシュメモリデバイスのうち１つのフラッシュメモリデバイスをプログラミングする方法は、プログラミング動作を開始する段階と、プログラミング動作のステータスを決定する段階と、プログラミング動作のステータスがプログラミング動作が完了していることを示している場合に、または、割り込みインジケータがアサートされている場合に、コマンドステータスを決定する段階と、プログラミング動作のステータスまたはコマンドステータスがエラーを指し示している場合に、エラー情報を決定する段階とを備える。一般的に、プログラミング動作は、複数のフラッシュメモリデバイスのうち１つのフラッシュメモリデバイス、または、対応するバッファにデータを書込むことを含み、プログラミング動作を開始する段階はさらに、プログラミング動作用のフラッシュメモリデバイスを特定する段階を有する。一部の実施形態によると、当該方法はさらに、プログラミング動作が完了するまで、例えば、オペレーション・イン・プログレス（ＯＩＰ）インジケータがプログラミング動作が完了したことを示すまで、プログラミング動作のステータスを決定する段階を繰り返す段階を備える。このような構成に代えて、または、このような構成に加えて、当該方法はさらに、プログラミング動作を開始する段階の前に、バッファフラグをクリアする段階、および／または、バッファにデータを書込む段階を備えるとしてもよい。
【００１７】
別の側面によると、複数のフラッシュメモリデバイスのうち１つのフラッシュメモリデバイスに対して読出を行う方法は、複数のフラッシュメモリデバイスのうち１つのフラッシュメモリデバイスを特定する段階と、複数のフラッシュメモリデバイスのうち１つのフラッシュメモリデバイスからデータを読出す読出動作を開始する段階と、読出動作が完了するまで割り込みインジケータをアサートする段階と、複数のフラッシュメモリデバイスに接続されているメモリコントローラにデータを供給する段階とを備えるとしてもよい。一般的に、当該方法はさらに、読出動作が完了すると、割り込みインジケータをデアサートする段階をさらに備える。
【００１８】
さまざまな実施形態によると、読出動作を開始する段階は、読出動作の開始アドレスを決定する段階と、および／または、データを、１つのフラッシュメモリデバイスからメモリコントローラまたはメモリコントローラに接続されているバッファに転送する段階とを有する。当該方法がバッファからの読み出しを含む場合、割り込みインジケータは、バッファのデータが準備されると指示（ｉｎｄｉｃａｔｉｎｇ）をイネーブルし、当該方法はさらに、バッファからメモリコントローラにデータを提供するための幅を選択する段階を備えるとしてもよい。
【００１９】
本発明によれば、ピンカウントを増やすことなく、マルチデバイスシステムが備える複数のフラッシュメモリデバイスを制御するインターフェース、装置および方法を実現するという効果が得られる。こういった本発明の効果は、それ以外の利点と共に、以下の実施形態の詳細な説明から容易に明らかとなる。
【図面の簡単な説明】
【００２０】
【図１】従来のメモリアレイ編成を示すブロック図である。
【００２１】
【図２Ａ】従来の読出動作を示すタイミングチャートである。
【００２２】
【図２Ｂ】従来のページプログラミング動作を示すタイミングチャートである。
【００２３】
【図２Ｃ】従来のブロック消去動作を示すタイミングチャートである。
【００２４】
【図３】本発明の実施形態に係る利用に適しているハイブリッドドライブ装置の一例を示すブロック図である。
【００２５】
【図４】本発明の実施形態に係る信号接続装置の一例を示すブロック図である。
【００２６】
【図５Ａ】本発明の実施形態に係るデバイス設定の一例を示すタイミングチャートである。
【００２７】
【図５Ｂ】本発明の実施形態に係る識別情報読出動作の一例を示すタイミングチャートである。
【００２８】
【図６】本発明の実施形態に係るプログラミング実行動作の一例を示すタイミングチャートである。
【００２９】
【図７】本発明の実施形態に係る、プログラミングデータをバッファに書込む動作の一例を示すタイミングチャートである。
【００３０】
【図８Ａ】本発明の実施形態に係るプログラミング実行動作の第１の例を示すタイミングチャートである。
【００３１】
【図８Ｂ】本発明の実施形態に係るプログラミング実行動作の第２の例を示すタイミングチャートである。
【００３２】
【図８Ｃ】本発明の実施形態に係る、セルデータを読出して、データをホストにバッファリングする動作の一例を示すタイミングチャートである。
【００３３】
【図８Ｄ】本発明の実施形態に係る、読出情報設定動作の一例を示すタイミングチャートである。
【００３４】
【図９Ａ】本発明の実施形態に係る、プログラミング方法の第１の例を示すフローチャートである。
【００３５】
【図９Ｂ】本発明の実施形態に係る、プログラミング方法の第２の例を示すフローチャートである。
【００３６】
【図９Ｃ】本発明の実施形態に係る、読出方法の第１の例を示すフローチャートである。
【００３７】
【図９Ｄ】本発明の実施形態に係る、読出方法の第２の例を示すフローチャートである。
【００３８】
【図１０Ａ】本発明を利用し得るシステムの例を示す図である。
【図１０Ｂ】本発明を利用し得るシステムの例を示す図である。
【図１０Ｃ】本発明を利用し得るシステムの例を示す図である。
【図１０Ｄ】本発明を利用し得るシステムの例を示す図である。
【図１０Ｅ】本発明を利用し得るシステムの例を示す図である。
【図１０Ｆ】本発明を利用し得るシステムの例を示す図である。
【図１０Ｇ】本発明を利用し得るシステムの例を示す図である。
【発明を実施するための形態】
【００３９】
以下に本発明の実施形態を詳細に記載する。実施形態の例を添付図面に図示する。本発明は実施形態に基づいて説明するが、本発明がそれらの実施形態に限定されるわけではないと理解されたい。本発明は、特許請求の範囲が定義する発明の目的および範囲に含まれ得る変更、変形および均等物を含むものとする。さらに、以下の本発明の詳細な説明には、本発明を詳細に記載するべく具体的且つ詳細な内容が数多く含まれる。しかし、本発明がそれらの具体的且つ詳細な内容以外に基づいても実施され得ることは当業者には明らかである。また、本発明の側面を不必要にあいまいにしてしまうのを避けるべく、公知の方法、手順、構成要素、および回路については詳細には説明しない。
【００４０】
以下の詳細な説明は一部、コンピュータ、プロセッサ、コントローラおよび／またはメモリにおけるデータビット、データストリームまたは波形に関する演算を象徴的に表現したもの、例えば、プロセス、手順、ロジックブロック、機能ブロックおよび処理について記載している。このような説明および表現は一般的に、データ処理分野の当業者が作業の内容を他の当業者に効率よく伝えるべく利用しているものである。プロセス、手順、ロジックブロック、機能、演算などは、本明細書において、および一般的に、所望および／または期待される結果を導き出す一貫した一連のステップまたは命令であると考えられる。ステップとは通常、物理量の物理的操作を含む。多くの場合、必ずしもそうではないが、こういった物理量は、コンピュータ、データ処理システムまたはロジック回路において格納、伝送、合成、比較および操作され得る電気信号、磁気信号、光学信号または量子信号として表される。主に一般的な用法のために、こういった信号をビット、波、波形、ストリーム、値、要素、シンボル、文字、用語、数などと呼ぶことは時に便利である。
【００４１】
しかし、上記および同様の用語はすべて適切な物理量と対応付けられており対応する物理量に関する簡便な名称として利用されるのみということを心に留めておかなければならない。具体的に明記していなければ、および／または、以下の説明から明らかであるように、本願において、「処理」「演算」「算出」「計算」「決定」「操作」「変換」などの用語を用いた記載は、物理量（例えば電子量）として表現されるデータを操作および変換する、コンピュータ、データ処理システム、ロジック回路または同様の処理デバイス（例えば、電気的、光学的または量子的に算出または処理を行うデバイス）の動作および処理を指すものと推定される。上記の用語は、あるシステムまたはアーキテクチャの構成要素内（例えば、レジスタ、メモリ、情報を格納、伝送または表示するその他のデバイス）での物理量を操作または変換して、同一または別のシステムまたはアーキテクチャの別の構成要素内での物理量として同様に表現される別のデータを得る処理デバイスの動作、演算および／またはプロセスを指すものである。
【００４２】
また、説明を簡単にする便宜上、「信号」および「波形」という用語は互いに同じ意味で使用され得る。しかし、これらの用語はまた、それぞれの技術分野で特別な意味を持つ。「ノード」「入力」「出力」および「ポート」といった用語は、互いに同じ意味で使用され得る。これは「に接続されている」「と接合されている」「に接合されている」「と通信を行う」（これらの用語は、使用されている前後の文脈からそうでないと明確に分かる以外には、接続、接合および／または通信し合う要素間の直接的関係および／または間接的関係を指す）といった用語についても同様である。一般的に、使用されている前後の文脈からそうでないと明確に分かる以外には、一方の形式を利用することは他方の形式を利用することを含む。しかし、これらの用語もまた、それぞれの技術分野で特有の意味を持つ。
【００４３】
本発明は、さまざまな側面について、実施形態例を参照しつつ、以下でさらに詳細に説明される。
【００４４】
図３は、本発明の実施形態に係る利用に適しているハイブリッドドライブ装置３００の一例を示す図である。ホスト３０２は、ハイブリッドドライブ３０４内のフラッシュデバイス３０８とインターフェースで接続されている。フラッシュデバイス３０８は通常、コントローラ／フラッシュメモリモジュール４０４を有する（図４および以下の記載を参照のこと）。図３に戻って、さまざまな例によると、ホスト３０２とフラッシュ３０８との間のインターフェースには、ＳＡＴＡ（シリアル・アドバンスド・テクノロジー・アタッチメント）インターフェースまたはＰＡＴＡ（パラレルＡＴＡ）インターフェースなどがあるとしてもよい。ハイブリッドドライブ３０４はさらに、中央演算処理装置（ＣＰＵ）３１０、読出チャネル３１２、およびバッファメモリ（例えば、ＤＲＡＭ（ダイナミックランダムアクセスメモリ））３０６を有するとしてもよい。例えば、ＣＰＵ３１０は、従来のマイクロプロセッサ、（デジタル）シグナルプロセッサ（例えばＤＳＰ）、またはマイクロコントローラを有するとしてもよい。読出チャネル３１２は、従来の読出チャネルデータ転送処理ブロック（例えば、１以上のポート、信号検出器、符号器、復号器、インターリーバ、デインターリーバ、エラー検出訂正（ＥＣＣ）算出器、および／または比較器等）を有するとしてもよい。ＤＲＡＭ３０６は、約２Ｍｂから約８Ｍｂのメモリを有するとしてもよい。具体的な実施形態におけるこのようなフラッシュメモリ／コントローラモジュールは、ハイブリッドドライブ３０４で利用するとしてもよいし、または任意の適切なソリッド・ステート・ドライブ（ＳＳＤ）で利用するとしてもよい。ハードディスクを用いる場合に比べて、ハードドライブでフラッシュメモリを利用すると、（ｉ）ブート時間およびレジューム時間が短くなり、（ｉｉ）バッテリー寿命が長くなり（例えば、ワイヤレスアプリケーションにおいて）、（ｉｉｉ）データ信頼性が高くなるという利点がある。
【００４５】
図４は、本発明の実施形態に係る信号接続装置４００の一例を示す図である。ホスト４０２は、メモリコントローラ／フラッシュモジュール４０４とインターフェースで接続されるとしてもよい。ホスト４０２とメモリコントローラ４０６との間のインターフェースは、従来通りであってよい（例えば、図２Ａから図２Ｃおよび／または表１で示す信号用のピンおよび／または端子、または、当該ピンおよび／または端子のサブセットを含む）。このように、一部の実施形態によると、メモリコントローラは、ホストにコマンドタイミング信号を送信するコマンドイネーブル端子（例えば、ＣＬＥ）と、ホストにクロック信号を送信するアドレスイネーブル端子（例えば、ＡＬＥ）と、ホストから読出コマンドを受信する読出イネーブル端子（例えば、ＲＥ＿）と、ホストに命令を送信する書込イネーブル端子（例えば、ＷＥ＿）とを有するとしてもよい。
【００４６】
メモリコントローラ４０６は、各信号ピンまたは端子を介して、図示するように、複数のフラッシュメモリデバイス（例えば、フラッシュメモリチップ４０８−Ａおよびフラッシュメモリチップ４０８−Ｂ）に接続されるとしてもよい。一部の実施形態によると、メモリコントローラ４０６は、特定用途向け集積回路（ＡＳＩＣ）またはシステムオンチップ（ＳＯＣ）として実装されるとしてもよい。また、信号ＣＮＦＧは、フラッシュデバイス４０８−Ａおよび４０８−Ｂ上の回路を通り、シリアル接続されるとしてもよい。表３は、従来のＮＡＮＤフラッシュインターフェースに対比させて、本発明の実施形態に係る、コントローラ４０６とフラッシュメモリデバイス４０８−Ａおよび４０８−Ｂとの間のインターフェースにおける信号用のピンまたは端末の説明を示す（例えば、「メモリコントローラ」と示される列を参照されたい）。このように、表３の端子の説明例から分かるように、上記のメモリコントローラは、フラッシュメモリデバイスに１以上の設定コマンドを送信する設定端子（例えば、ＣＮＦＧ）と、フラッシュメモリデバイスにコマンドタイミング信号を送信するコマンド制御端子（例えば、ＳＹＮＣ＿Ｎ）と、フラッシュメモリデバイスにクロック信号を送信するクロック端子（例えば、ＲＥＦ＿ＣＬＫ）と、フラッシュメモリデバイスから読出コマンドを受信する読出コマンド端子（例えば、ＲＤ＿ＣＬＫ）とを含むインターフェースを有するとしてもよい。「入／出」は、信号が、コントローラ４０６において、入力信号であるか、出力信号であるか、または両方であるかを指し示す。
【表３】
0005879651.tif 000004
【００４７】
一実施形態によると、ＳＹＮＣ＿Ｎは、コマンド列を開始させるタイミング信号を表すとしてもよい。適切に初期設定されると、３つの信号が、フラッシュデバイスの制御において特に有用となり得る。つまり、同期信号、汎用タイミング信号および読出タイミング信号である（例えば、ＳＹＮＣ＿Ｎ、ＲＥＦ＿ＣＬＫ、およびＲＤ＿ＣＬＫ）。ＤＡＴＡ［７：０］ピンでは、図５Ａから図８Ｄにおいて示すように、「Ｉ」がフラッシュ識別番号（ＩＤ）を示し、「Ｃ」がコマンドバイトを示し、「Ｐ」がパラメータを示し、「Ｄ」がメモリコントローラからのデータバイトを示し、「Ｆ」はフラッシュデータバイトまたはフラッシュデバイスからのアナログ読出データを示すとしてもよい。ＩＤバイトは通常、コマンドバイトの前に配置され、特定のコマンドが関連するフラッシュメモリデバイスを指定するとしてもよい。メモリコントローラ４０６に接続されている各フラッシュデバイス（例えば、図４のデバイス４０８−Ａおよび４０８−Ｂ）にブロードキャストすることは、指定されたＩＤバイトを介して、供給され得る。コマンドバイトの例を表４に示す。表４では、各「ｘ」が別個に特定のコマンドに割り当てられる１６進数の値を表す。
【表４】
0005879651.tif 000005
【００４８】
パラメータバイトは、コマンドバイトの後に配置され、その総数は特定の対応付けられたコマンドに応じて決まるとしてもよい。続いて、データバイトは、パラメータバイトの後に配置され、および／または、その総数も特定の対応付けられたコマンドによって定義されるとしてもよい。さらに、データバイトは、プログラミングコマンドまたはバッファ書込みコマンドに対するデータを提供し得る。フラッシュデータバイト（つまり、フラッシュメモリデバイスから出力されるデータバイト）は、その後方にコマンドバイトまたはパラメータバイトが配置されており、その総数は特定の対応付けられているコマンドによって定義されるとしてもよい。例えば、フラッシュデータバイトは、バッファ読出コマンド、データ読出コマンド、ステータス読出コマンド、ＩＤ読出コマンド、および／または読出データ送信コマンドに対するデータであってよい。
【００４９】
リセットコマンドは、コマンドをアボートするように、および／または、対応付けられている（または特定されている）フラッシュメモリデバイスをリセットするように、コントローラ／フラッシュメモリモジュール４０４に命令し得る。フラッシュＩＤを設定するためのコマンドまたは命令（例えば、デバイス設定コマンド）のコマンド記述例を表５に示す。
【表５】
0005879651.tif 000006
【００５０】
ＩＤ読出コマンドは、例えば、認証バイト、製品コード、およびフラッシュメモリデバイスまたはチップの修正を検証し得る。検証コマンドまたは命令（例えば、ＩＤ読出）の記述例を表６に示す。
【表６】
0005879651.tif 000007
【００５１】
設定コマンドは、割り込みをイネーブルおよび／またはディセーブルして、セルごとのビット数を設定し得る。割り込みイネーブルまたはセル設定のコマンドまたは命令（例えば、設定）の記述例を図７に示す。
【表７】
0005879651.tif 000008
【００５２】
図５Ａは、本発明の実施形態に係る、デバイス設定動作の一例を示すタイミングチャート５００である。ライトプロテクト信号および／または同期信号がアサート状態に移行すると、フラッシュデバイス識別バイト（例えば、フラッシュＩＤまたは「Ｉ」バイト）およびコマンドバイト（例えば、「Ｃ」バイト）がコントローラからフラッシュメモリデバイスに送信される。図４に示す実施形態によるとデバイス識別情報はデータ端子（例えば、ＤＡＴＡ［０：７］）を介して送信されるが、別の実施形態によると、十分な数の端子が利用可能であれば、デバイス識別情報は専用デバイスＩＤ端子を介して送信され得る。このように、本実施形態に係るメモリコントローラはさらに、フラッシュメモリデバイスのうち１つを特定するデバイスイネーブル端子を含むとしてもよい。図５Ａに戻って、フラッシュＩＤバイトおよびコマンドバイトが供給された後に、１サイクルにわたって、ＣＮＦＧが移行する（例えば、バイナリロジックの「ＨＩＧＨ」状態になる）と、認証データ「Ｐ」が供給され得る。また、同期信号（または、コマンドタイミング信号）ＳＹＮＣ＿Ｎは、認証データの最後の部分が供給されるよりも１サイクル前に移行し得る（例えば、バイナリロジックの「ＨＩＧＨ」状態になり得る）。一部の実施形態によると、認証データのそのような最後の部分が供給され得る期間は、最高でＲＥＦ＿ＣＬＫの１６サイクルまでである。また、デバイス設定コマンドは、（ｉ）特定フラッシュメモリデバイスが既に設定済みの場合、（ｉｉ）ライトプロテクト信号がアサートされていない場合（例えば、ＷＰ＿Ｎ＝「０」）、（ｉｉｉ）設定信号（例えば、ＣＮＦＧ）がアサートされていない場合、および／または、（ｉｖ）設定信号が２クロック期間以上にわたってアサートされている場合または設定信号が別々に２回アサートされている場合には、特定フラッシュメモリデバイスによって無視されるとしてもよい。
【００５３】
図５Ｂは、本発明の実施形態に係る、複数のフラッシュメモリデバイスのうち１つの識別情報を読み出す動作の一例を示すタイミングチャート５５０である。ＩＤ読出動作を実行する際には、当該動作期間の最初から最後までに渡ってライトプロテクト信号（例えば、ＷＰ＿Ｎ）をアサートするとしてもよいが、同期信号（例えば、ＳＹＮＣ＿Ｎ）はタイミング信号の限られた数のサイクル（例えば、ＲＥＦ＿ＣＬＫの１サイクル）にわたってアサートされるとしてもよい。識別番号読出コマンド（例えば、９０ｈ）が供給され、その後で数サイクルが経過してから、フラッシュデータバイトＦ１、Ｆ２およびＦ３が供給される。これらのデータバイトを同期させるべく、読出タイミング信号（例えば、ＲＤ＿ＣＬＫ）が、コマンドバイト「Ｃ」に先立って供給されるフラッシュ識別バイト「Ｉ」によって示される特定フラッシュデバイスから供給され得る。このように、図４に示される実施形態によると、デバイス識別情報はデータ端子（例えば、ＤＡＴＡ［０：７］）を介して受信されるが、これに代えて、専用デバイスＩＤ端子を介して受信されるとしてもよい。
【００５４】
図６は、本発明の実施形態に係る、複数のフラッシュメモリデバイスのうち１つをプログラミングする動作の一例を示すタイミングチャート６００である。プログラミング動作を実行する際には、ライトプロテクト信号（例えば、ＷＰ＿Ｎ）が動作期間中にわたって（または動作期間よりも長く）アサートされ得るが、同期信号（例えば、ＳＹＮＣ＿Ｎ）がデアサートされるとすぐに、プログラミング動作は終了する。パラメータデータＰ１−Ｐ７は、コマンドバイト（例えば１０ｈ）の後の識別バイト（例えば、参照符号「Ｉ」で指し示すもの）で識別されるフラッシュメモリデバイスにメモリコントローラから与えられ得る。例えばＤＡＴＡ［７：０］またはＤＡＴＡ［１５：０］上のＤ１−Ｄｎといった、プログラミング用のデータは、メモリコントローラによって供給され得る。また、割り込み信号（例えば、ＩＮＴ＿Ｎ）は、パッキングイネーブル信号がアサートされて（例えば、ＩＥＮ＿Ｐ＝「１」）プログラミング動作が完了したことが示されると、フラッシュメモリデバイスによって所定の状態（例えば、バイナリ論理の「ＬＯＷ」状態）へと変更され得る。
【００５５】
図７は、本発明の実施形態に係る、プログラミングデータをバッファ（例えば、図３のバッファ３０６）に書き込む動作の一例を示すタイミングチャート７００である。この「バッファ書込」動作を実行する際には、プログラミング動作の場合と同様に、ライトプロテクト信号（例えば、ＷＰ＿Ｎ）が動作期間中にわたって（または動作期間よりも長く）アサートされ得るが、同期信号（例えば、ＳＹＮＣ＿Ｎ）がデアサートされるとすぐに、「バッファ書込」動作は終了する。パラメータデータＰ１−Ｐ７は、コマンドバイト（例えば１２ｈ）の後の識別バイト（例えば、参照符号「Ｉ」で指し示すもの）で識別されるフラッシュメモリデバイスにメモリコントローラから与えられ得る。例えばＤＡＴＡ［７：０］またはＤＡＴＡ［１５：０］上のＤ１−Ｄｎといった、バッファに書き込まれるデータは、メモリコントローラによって供給され得る。しかし、同期信号が移行してから基準クロックの所定数のサイクル（例えば、ＲＥＦ＿ＣＬＫの３サイクル）が経過する前にライトプロテクト信号および／または割り込み信号が移行しない場合には、メモリコントローラは、識別されているフラッシュメモリデバイスに当該データをプログラミングするのではなく、データをバッファに書き込む。
【００５６】
図８Ａは、本発明の実施形態に係る、プログラミング実行動作の第１の例を示すタイミングチャート７５０である。ライトプロテクト信号（例えば、ＷＰ＿Ｎ）が動作期間中にわたって（または、タイミング信号ＲＥＦ＿ＣＬＫの所定の最低サイクル数の期間中）アサートされ得るが、同期信号（例えば、ＳＹＮＣ＿Ｎ）がデアサートされるとすぐに、プログラミング実行動作は終了する。パラメータデータＰ１−Ｐ７は、コマンドバイト（例えば１３ｈ）の後の識別バイト（例えば、参照符号「Ｉ」で指し示すもの）で識別されるフラッシュメモリデバイスにメモリコントローラから与えられ得る。割り込み信号（例えば、ＩＮＴ＿Ｎ）もまた、割り込みイネーブル信号がアサートされて（例えば、ＥＮ＿Ｐ＝「１」）プログラミング実行動作の完了が示されていれば、フラッシュメモリデバイスによって所定の状態（例えば、バイナリ論理の「ＬＯＷ」状態）に移行され得る。
【００５７】
図８Ｂは、本発明の実施形態に係る、プログラミング実行動作の第２の例を示すタイミングチャート７６０である。本実施形態は、図８Ａに示した実施形態と同様であるが、タイミング信号（例えば、ＲＥＦ＿ＣＬＫ）の１サイクルが経過した後同期信号がデアサートされ、パラメータ情報が識別されたフラッシュメモリデバイスに供給されない場合もある点において相違する。
【００５８】
図８Ｃは、本発明の実施形態に係る、セルデータを読み出して、および／または、データをバッファリングする（例えば、データをホストに転送する）動作の一例を示すタイミングチャート７７０である。この動作（例えば、コマンド３０ｈ）では、セルデータを読み出して、バッファデータをホストへ送るとしてもよい。通常、ライトプロテクト信号、同期信号、および／または割り込み信号は、図６から図８Ａに示したのと同様に、アサートおよびデアサートされる。フラッシュメモリデバイス（Ｆ１−Ｆｎ）から読み出されるデータは、アナログ出力ＲＤＰ０／ＲＤＮ０−ＲＤＰ３／ＲＤＮ３（例えば、８ビットデジタルバスまたは４ビット差動バス）、または、ＲＤＰ０／ＲＤＮ０−ＲＤＰ７／ＲＤＮ７（例えば、１６ビットデジタルバスまたは８ビット差動バス）から供給され得る。フラッシュメモリから取得されるこのデータの場合、読み出しタイミング信号（例えば、ＲＤＣＫ＿ＩＮＴ）をフラッシュメモリデバイスからコントローラへ与えて、同期を取る。しかし、割り込み信号（例えば、ＩＮＴ＿Ｎ）は、割り込みイネーブル信号がアサートされて（ＩＥＮ＿Ｒ＝「１」）読み出しデータが準備されたことが指し示されると、フラッシュメモリデバイスから送信され得る。
【００５９】
図８Ｄは、本発明の実施形態に係る、読出パラメータ情報を設定する動作の一例を示すタイミングチャート７９０である。この動作（例えば、コマンド３１ｈ）では、ライトプロテクト信号、同期信号、および／または割り込み信号は、図６から図８Ｃに示したのと同様に、アサートおよびデアサートされる。パラメータバイトＰ１−Ｐ７は、識別（「Ｉ」）バイトおよびコマンド（「Ｃ」）バイトの後に、識別されているフラッシュデバイスに与えられる。また、図８Ｃに示したように、割り込み信号（例えば、ＩＮＴ＿Ｎ）は、割り込みイネーブル信号がアサートされて（ＩＥＮ＿Ｒ＝「１」）読み出しデータが準備されたことが指し示されると、フラッシュメモリデバイスから送信され得る。
【００６０】
図９Ａは、本発明の実施形態に係るプログラミング方法の第１の例を示すフローチャート８００Ａである。当該方法のフローは、８０２Ａで開始され、プログラミングコマンドがコントローラによって、またはコントローラから発行され得る（８０４Ａ）。例えば、プログラミングコマンドは、バッファフラグをクリアして、セルアドレスを設定して、プログラミングデータを取得して、および／またはデータプログラミング動作を実行するとしてもよい。続いて、ステータス読出コマンドが、コントローラによってまたはコントローラから発行され（８０６Ａ）、「オペレーション・イン・プログレス（ＯＩＰ）」インジケータがデアサートされる（例えば、ＯＩＰ＝「０」、８０８Ａ）まで継続するとしてもよい。ステータス読出コマンドは通常、消去コマンド、プログラミングコマンドまたは読出コマンドといった（先行する）コマンドのステータスを決定する。このようなコマンドのステータスには、ステータス読出情報を提供するために利用可能なビット数に応じて、エラー無し、コマンド実行中、および／または１以上のエラー有りまたはエラー種類等があるとしてもよい。ＯＩＰインジケータがデアサートされて（８０８Ａ）、および／または、割り込みが発生すると（８１２Ａ）、第２のステータス読出コマンドが発行されるとしてもよい（８１０Ａ）。動作が完了してエラーが発生しなかった場合には、「エラー無し」ステータスが指し示される。これに代えて、第２のステータス読出コマンド（８１０Ａ）は、動作（例えば、コマンド実行）中にエラーが発生したかどうかに応じて、割り込みをクリアまたはアサートするとしてもよい。（例えば、ステップ８１４Ａにおいてエラーインジケータまたはエラーフラグがアサートされていることによって）エラーが見つかった場合、エラー情報読出コマンドが発行され（８１６Ａ）、エラー情報を取得して、当該フローは終了し得る（８１８Ａ）。エラーが見つからない（８１４ＡにおいてＥＲＲ＝「０」）場合、当該フローは終了し得る（８１８Ａ）。
【００６１】
図９Ｂは、本発明の実施形態に係るプログラミング方法の第２の例を示すフローチャート８００Ｂである。当該方法のフローは、８０２Ｂで開始され、バッファフラグクリアコマンドがコントローラによって、またはコントローラから発行され得る（８０４Ｂ）。バッファフラグクリアコマンドは通常、内部データバッファ（例えば、図３に示すバッファ３０６）のステータスを示すフラグまたはインジケータをクリアする。続いて、図９Ｂを再び参照すると、バッファ書込コマンドが発行され得る（８２０Ｂ）。例えば、バッファ書込コマンドは、プログラミング動作用のセルアドレス（例えば、開始フラッシュメモリアドレス）を設定または決定し、および／またはプログラミングデータを（例えば、図４のコントローラ４０６またはホスト４０２から）取得するとしてもよい。続いて、図９Ｂを再度参照すると、プログラミング実行コマンドが発行され得る（８２２Ｂ）。プログラミング実行コマンドは通常、プログラミング動作の実行を開始させる。フロー８００Ｂの残りのステップは、図９Ａに示したフロー例８００Ａと同様である。例えば、続いて、ステータス読出コマンドが発行され（８０６Ｂ）、ＯＩＰインジケータがデアサートされるまで継続するとしてもよい（８０８Ｂ）。ＯＩＰインジケータがデアサートされると（８０８Ｂ）、および／または、割り込みが発生すると（８１２Ｂ）、第２のステータス読出コマンドが発行され（８１０Ｂ）、その結果、割り込みがクリアされ、フローが終了するとしてもよいし（ＯＩＰがデアサートされエラー無しが指し示される（８１４Ｂ））、またはエラーが指し示されるとしてもよい。エラーが見つかると（８１４Ｂ）、エラー情報読出コマンドが発行されて（８１６Ｂ）エラー情報を取得し、フローが完了し得る（８１８Ｂ）。
【００６２】
図９Ｃは、本発明の実施形態に係る読出方法の第１の例を示すフローチャート８００Ｃである。当該方法のフローは８０２Ｃで開始され、読出コマンドがコントローラによってまたはコントローラから発行され得る（８０４Ｃ）。例えば、読出コマンドは、読出動作用のセルアドレス（例えば、開始フラッシュメモリアドレス）を設定または決定して、および／または読出動作（例えば、（図４に示す）複数のフラッシュメモリデバイス４０８−Ａおよび４０８−Ｂのうち特定されるある１つのフラッシュメモリデバイスからバッファ３０６（図３）へのデータの移行）を実行し得る。割り込みイネーブル信号（例えば、ＩＥＮ＿Ｒ）がアサートされている限り、割り込みインジケータまたは割り込みフラグもまたアサートされており、読出動作は継続する（通常、割り込みインジケータがアサートされている間は新規のコマンドは実行され得ない）。しかし、割り込みが終わり、対応するインジケータがアサート状態（例えば、８０６Ｃにおいてバイナリ論理の「１」）に対して相補的な所定の状態である場合、割り込みクリアコマンドおよび／またはバッファデータ送信コマンドが発行され（８０８Ｃ）、当該フローは完了し得る（８１０Ｃ）。例えば、バッファデータ送信コマンドは、フラッシュメモリデバイスの１以上のセルアドレスを読み出すことと、フラッシュメモリデバイスからセルカウント（例えば、そこからデータが読み出される複数の連続したアドレスまたはセルの数）を読み出すことと、および／または、特定されているフラッシュメモリデバイスまたはバッファからホストへとデータを転送することとを含むとしてもよい。これに代えて、割り込みクリアコマンドおよび／またはバッファデータ送信コマンド（８０８Ｃ）は、読出コマンドが発行された（８０４Ｃ）直後に発生するとしてもよい。
【００６３】
図９Ｄは、本発明の実施形態に係る読出方法の第２の例を示すフローチャート８００Ｄである。当該方法のフローは、８０２Ｄで開始され、読出情報設定コマンドはコントローラによって、またはコントローラから発行され得る（８０４Ｄ）。例えば、読出情報設定コマンドは、読出動作用のセルアドレス（例えば、開始フラッシュメモリアドレス）を設定または決定して、読出動作を実行して、および／または、割り込みインジケータまたは割り込みフラグをアサートし得る。図９Ｃに示したように、ステータス読出コマンドが発行され（８０６Ｄ）、ＯＩＰインジケータがアサートされるまで継続するとしてもよい（８０８Ｄ）。図９Ｄを再度参照すると、ＯＩＰインジケータがアサートされて（８０８Ｄ）および／または割り込みインジケータがデアサートされると（８１２Ｄ）、バッファ読出コマンドが発行され得る（８１０Ｄ）。例えば、バッファ読出コマンドは、フラッシュメモリデバイスの１以上のセルアドレスを読み出すことと、フラッシュメモリデバイスからセルカウント（例えば、そこからデータが読み出される連続したアドレスまたはセルの数）を読み出すことと、および／または、バッファからホストへのデータの読出または転送を含むとしてもよい。続いて、図９Ｃに示したフロー８００Ｃと同様に、割り込みクリアコマンドおよび／またはバッファデータ送信コマンドがコントローラから発行され（８１２Ｄ）、フローが完了し得る（８１４Ｄ）。
【００６４】
＜本発明に係る回路を用いるシステムの例＞
本発明の別の側面に係るシステムは、フラッシュメモリデバイスを制御するべく、本発明に係る装置または回路を備えるとしてもよい。本発明のさまざまな実施例を図１０Ａから図１０Ｇに示す。
【００６５】
図１０Ａを参照すると、本発明はハードディスクドライブ（ＨＤＤ）９００において実現され得る。本発明は、図１０Ａにおいて９０２として一般的に識別される、信号処理回路および／または制御回路のどちらか一方または両方を実施するとしてもよい。実施形態によっては、ＨＤＤ９００の信号処理回路および／または制御回路９０２および／またはその他の回路（不図示）は、データを処理し、符号化および／または暗号化を行って、演算を実施し、および／または、磁気格納媒体９０６に対して出力される、および／または、磁気格納媒体９０６から受信されたデータをフォーマットするとしてもよい。
【００６６】
ＨＤＤ９００は、コンピュータ、携帯情報端末（ＰＤＡ）などの携帯用コンピュータデバイス、携帯電話、メディアプレーヤまたはＭＰ３プレーヤなどのホストデバイス（例えば、図３の３０２または図４の４０２）および／またはそれ以外のデバイスと、１以上の有線通信リンクまたは無線通信リンク９０８を介して通信し得る。ＨＤＤ９００は、ランダムアクセスメモリ（ＲＡＭ）、フラッシュメモリなどの低レイテンシ不揮発性メモリ、リードオンリーメモリ（ＲＯＭ）および／またはそれ以外の適切な電子データストレージなどであるメモリ９０９に接続され得る。
【００６７】
図１０Ｂを参照すると、本発明はＤＶＤドライブ９１０において実現され得る。本発明は、図１０Ｂにおいて９１２として一般的に識別される、信号処理回路および／または制御回路のどちらか一方または両方、および／または、ＤＶＤドライブ９１０の大容量データストレージ９１８を実施するとしてもよい。ＤＶＤドライブ９１０の信号処理回路および／または制御回路９１２および／またはその他の回路（不図示）は、データを処理し、符号化および／または暗号化を行って、演算を実施し、および／または、光学格納媒体９１６から読み出された、および／または、光学格納媒体９１６に書き込まれるデータをフォーマットするとしてもよい。実施形態によっては、ＤＶＤドライブ９１０の信号処理回路および／または制御回路９１２および／またはその他の回路（不図示）はさらに、符号化および／または復号化および／またはＤＶＤドライブに関連するそれ以外の信号処理機能といった機能を実行し得る。
【００６８】
ＤＶＤドライブ９１０は、コンピュータ、テレビまたはそれ以外のデバイスなどの出力デバイス（不図示）と、１以上の有線通信リンクまたは無線通信リンク９１７を介して通信し得る。ＤＶＤドライブ９１０は、不揮発にデータを格納する大容量データストレージ９１８と通信し得る。大容量データストレージ９１８は、ハードディスクドライブ（ＨＤＤ）を含み得る。ＨＤＤは、図１０Ａに示すような構成を持つとしてもよい。ＨＤＤは、約１．８"未満の直径を持つプラッタを１以上有するミニＨＤＤであってよい。ＤＶＤドライブ９１０は、ＲＡＭ、ＲＯＭ、フラッシュメモリなどの低レイテンシ不揮発性メモリおよび／またはそれ以外の適切な電子データストレージなどであるメモリ９１９に接続され得る。
【００６９】
図１０Ｃを参照すると、本発明は高精細テレビ（ＨＤＴＶ）９２０において実現され得る。本発明は、図１０Ｃにおいて９２２として一般的に識別される、信号処理回路および／または制御回路のどちらか一方または両方、ＨＤＴＶ９２０のＷＬＡＮインターフェースおよび／または大容量データストレージを実現するとしてもよい。ＨＤＴＶ９２０は、有線または無線でＨＤＴＶ入力信号を受信し、ディスプレイ９２６用のＨＤＴＶ出力信号を生成する。実施形態によっては、ＨＤＴＶ９２０の信号処理回路および／または制御回路９２２および／またはその他の回路（不図示）は、データを処理し、符号化および／または暗号化を行って、演算を実施し、データをフォーマットし、および／または、必要に応じてその他のＨＤＴＶ関連処理を行うとしてもよい。
【００７０】
ＨＤＴＶ９２０は、光学および／または磁気ストレージデバイスのように不揮発にデータを格納する大容量データストレージ９２７と通信し得る。少なくとも１つのＨＤＤは図１０Ａに示す構成を有し、および／または、少なくとも１つのＤＶＤドライブは図１０Ｂに示す構成を有し得る。ＨＤＤは、約１．８"未満の直径を持つプラッタを１以上有するミニＨＤＤであってよい。ＨＤＴＶ９２０は、ＲＡＭ、ＲＯＭ、フラッシュメモリなどの低レイテンシ不揮発性メモリおよび／またはそれ以外の適切な電子データストレージなどであるメモリ９２８に接続され得る。ＨＤＴＶ９２０はまた、ＷＬＡＮネットワークインターフェース９２９を介したＷＬＡＮとの接続をサポートし得る。
【００７１】
図１０Ｄを参照すると、本発明は、車両９３０の制御システム、車両制御システムのＷＬＡＮインターフェースおよび／または大容量データストレージにおいて実現されるとしてもよい。実施形態によっては、本発明は、１以上のセンサから入力を受信するパワートレイン制御システム９３２を実施する。センサの例を挙げると、温度センサ、圧力センサ、回転センサ、気流センサ、および／または、エンジン操作パラメータ、トランスミッション操作パラメータ、および／またはそれ以外の制御信号といった出力制御信号を１以上生成するそれ以外の適切なセンサなどがある。
【００７２】
本発明は、車両９３０の別の制御システム９４０においても実現され得る。制御システム９４０も同様に、入力センサ９４２から信号を受信し、および／または、１以上の出力デバイス９４４に制御信号を出力するとしてもよい。実施形態によっては、制御システム９４０は、アンチロックブレーキングシステム（ＡＢＳ）、ナビゲーションシステム、テレマティックスシステム、車両テレマティックスシステム、車線逸脱システム、車間距離制御システム、およびステレオ、ＤＶＤ、コンパクトディスク等の車両内エンターテインメントシステムの一部であってよい。これ以外にも実施例は検討されている。
【００７３】
パワートレイン制御システム９３２は、不揮発にデータを格納する大容量データストレージ９４６と通信し得る。大容量データストレージ９４６は、光学および／または磁気ストレージデバイス（例えば、ハードディスクドライブ（ＨＤＤ）および／またはＤＶＤドライブ）を含み得る。少なくとも１つのＨＤＤは図１０Ａに示す構成を有し、および／または、少なくとも１つのＤＶＤドライブは図１０Ｂに示す構成を有し得る。ＨＤＤは、約１．８"未満の直径を持つプラッタを１以上有するミニＨＤＤであってよい。パワートレイン制御システム９３２は、ＲＡＭ、ＲＯＭ、フラッシュメモリなどの低レイテンシ不揮発性メモリおよび／またはそれ以外の適切な電子データストレージなどであるメモリ９４７に接続され得る。パワートレイン制御システム９３２はまた、ＷＬＡＮネットワークインターフェース９４８を介したＷＬＡＮとの接続をサポートし得る。制御システム９４０はまた、大容量データストレージ、メモリおよび／またはＷＬＡＮインターフェース（全て不図示）を含み得る。
【００７４】
図１０Ｅを参照すると、本発明は携帯電話用アンテナ９５１を含み得る携帯電話９５０において実現され得る。本発明は、図１０Ｅにおいて９５２として一般的に識別される、信号処理回路および／または制御回路のどちらか一方または両方、携帯電話９５０のＷＬＡＮインターフェースおよび／または大容量データストレージを実現するとしてもよい。実施形態によっては、携帯電話９５０は、マイクロフォン９５６、スピーカおよび／または音声出力ジャックなどの音声出力９５８、ディスプレイ９６０、および／または、キーパッド、ポインティングデバイス、音声起動デバイスおよび／またはそれ以外の入力デバイスである入力デバイス９６２を備える。携帯電話９５０の信号処理回路および／または制御回路９５２および／またはその他の回路（不図示）は、データを処理し、符号化および／または暗号化を行って、演算を実施し、データをフォーマットし、および／または、その他の携帯電話機能を実施するとしてもよい。
【００７５】
携帯電話９５０は、光学および／または磁気ストレージデバイス（例えばハードディスクドライブ（ＨＤＤ）および／またはＤＶＤドライブ）のように不揮発にデータを格納する大容量データストレージ９６４と通信し得る。少なくとも１つのＨＤＤは図１０Ａに示す構成を有し、および／または、少なくとも１つのＤＶＤドライブは図１０Ｂに示す構成を有し得る。ＨＤＤは、約１．８"未満の直径を持つプラッタを１以上有するミニＨＤＤであってよい。携帯電話９５０は、ＲＡＭ、ＲＯＭ、フラッシュメモリなどの低レイテンシ不揮発性メモリおよび／またはそれ以外の適切な電子データストレージなどであるメモリ９６６に接続され得る。携帯電話９５０はまた、ＷＬＡＮネットワークインターフェース９６８を介したＷＬＡＮとの接続をサポートし得る。
【００７６】
図１０Ｆを参照すると、本発明はセットトップボックス９８０において実施され得る。本発明は、図１０Ｆにおいて９８４として一般的に識別される、信号処理回路および／または制御回路のどちらか一方または両方、セットトップボックス９８０のＷＬＡＮインターフェースおよび／または大容量データストレージを実現するとしてもよい。セットトップボックス９８０は、ブロードバンドソースなどのソースから信号を受信し、テレビおよび／またはモニタおよび／またはその他のビデオおよび／またはオーディオ出力デバイスのようなディスプレイ９８８に適切な標準および／または高精細オーディオ／ビデオ信号を出力する。セットトップボックス９８０の信号処理回路および／または制御回路９８４および／またはその他の回路（不図示）は、データを処理し、符号化および／または暗号化を行って、演算を実施し、データをフォーマットし、および／または、その他のセットトップボックス機能を実施するとしてもよい。
【００７７】
セットトップボックス９８０は、不揮発にデータを格納する大容量データストレージ９９０と通信し得る。大容量データストレージ９９０は、光学および／または磁気ストレージデバイス（例えば、ハードディスクドライブ（ＨＤＤ）および／またはＤＶＤドライブ）を含み得る。少なくとも１つのＨＤＤは図１０Ａに示す構成を有し、および／または、少なくとも１つのＤＶＤドライブは図１０Ｂに示す構成を有し得る。ＨＤＤは、約１．８"未満の直径を持つプラッタを１以上有するミニＨＤＤであってよい。セットトップボックス９８０は、ＲＡＭ、ＲＯＭ、フラッシュメモリなどの低レイテンシ不揮発性メモリおよび／またはそれ以外の適切な電子データストレージなどであるメモリ９９４に接続され得る。セットトップボックス９８０はまた、ＷＬＡＮネットワークインターフェース９９６を介したＷＬＡＮとの接続をサポートし得る。
【００７８】
図１０Ｇを参照すると、本発明はメディアプレーヤ１０００において実現され得る。本発明は、図１０Ｇにおいて１００４として一般的に識別される、信号処理回路および／または制御回路のどちらか一方または両方、メディアプレーヤ１０００のＷＬＡＮインターフェースおよび／または大容量データストレージを実現するとしてもよい。実施形態によっては、メディアプレーヤ１０００は、ディスプレイ１００７および／またはキーパッド、タッチパッド等のユーザ入力１００８を有する。実施形態によっては、メディアプレーヤ１０００は、ディスプレイ１００７および／またはユーザ入力１００８を介して、メニュー、ドロップダウンメニュー、アイコンおよび／またはポイントアンドクリックインターフェースを通常使用するグラフィカルユーザインターフェース（ＧＵＩ）を利用し得る。メディアプレーヤ１０００はさらに、スピーカおよび／または音声出力ジャックなどの音声出力１００９を有する。メディアプレーヤ１０００の信号処理回路および／または制御回路１００４および／またはその他の回路（不図示）は、データを処理し、符号化および／または暗号化を行って、演算を実施し、データをフォーマットし、および／または、その他のメディアプレーヤ機能を実施するとしてもよい。
【００７９】
メディアプレーヤ１０００は、圧縮オーディオおよび／またはビデオコンテンツなどのデータを不揮発に格納する大容量データストレージ１０１０と通信し得る。実施例によっては、圧縮オーディオファイルは、ＭＰ３フォーマットまたはそれ以外の適切な圧縮オーディオおよび／またはビデオフォーマットに準拠したファイルを含む。大容量データストレージは、光学および／または磁気ストレージデバイス（例えば、ハードディスクドライブ（ＨＤＤ）および／またはＤＶＤドライブ）を含み得る。少なくとも１つのＨＤＤは図１０Ａに示す構成を有し、および／または、少なくとも１つのＤＶＤドライブは図１０Ｂに示す構成を有し得る。ＨＤＤは、約１．８"未満の直径を持つプラッタを１以上有するミニＨＤＤであってよい。メディアプレーヤ１０００は、ＲＡＭ、ＲＯＭ、フラッシュメモリなどの低レイテンシ不揮発性メモリおよび／またはそれ以外の適切な電子データストレージなどであるメモリ１０１４に接続され得る。メディアプレーヤ１０００はまた、ＷＬＡＮネットワークインターフェース１０１６を介したＷＬＡＮとの接続をサポートし得る。上述した実施形態に加えて、他の実施形態も検討されている。
【００８０】
＜結論＞
このように、本発明は、ピンカウントを増やすことなくマルチデバイスシステムにおけるフラッシュメモリデバイスを制御するインターフェース、装置および方法を提供する。特に、本発明の実施形態は、メモリコントローラを提供すると共に、複数のフラッシュメモリデバイスに対してプログラミングおよび読み出しを実行する方法を提供する。
【００８１】
本発明の具体的な実施形態を上記で説明したが、上記の記載は説明を目的としたものであり、本発明の全内容を網羅したものではなく、本発明を開示された具体的な形態に限定するものでもない。上記の教示内容に基づき多くの変形および変更を実現することができるのは明らかである。上述した実施形態は、本発明の原理および本発明を実際に適用する場合を最も良く説明するものとして選択されている。このため当業者は、上記の実施形態に基づき、それぞれの利用に適するように様々に変形することによって本発明および様々な実施形態を最大限利用することができる。本発明の範囲は、本願の特許請求の範囲およびその均等物によって定義されるべきものである。
【図１】
0005879651.tif 000009
【図２Ａ】
0005879651.tif 000010
【図２Ｂ】
0005879651.tif 000011
【図２Ｃ】
0005879651.tif 000012
【図３】
0005879651.tif 000013
【図４】
0005879651.tif 000014
【図５Ａ】
0005879651.tif 000015
【図５Ｂ】
0005879651.tif 000016
【図６】
0005879651.tif 000017
【図７】
0005879651.tif 000018
【図８Ａ】
0005879651.tif 000019
【図８Ｂ】
0005879651.tif 000020
【図８Ｃ】
0005879651.tif 000021
【図８Ｄ】
0005879651.tif 000022
【図９Ａ】
0005879651.tif 000023
【図９Ｂ】
0005879651.tif 000024
【図９Ｃ】
0005879651.tif 000025
【図９Ｄ】
0005879651.tif 000026
【図１０Ａ】
0005879651.tif 000027
【図１０Ｂ】
0005879651.tif 000028
【図１０Ｃ】
0005879651.tif 000029
【図１０Ｄ】
0005879651.tif 000030
【図１０Ｅ】
0005879651.tif 000031
【図１０Ｆ】
0005879651.tif 000032
【図１０Ｇ】
0005879651.tif 000033