(57)【要約】  ＵＳＢ仕様に適合性がある、フラッシュアレイ（５８）及びユニバーサル・シリアル・バス（ＵＳＢ）制御器（５６）から構成されたデータ記憶装置。このユニット（４６）は、ホスト（４４）から、書き込みコマンド及び読み取りコマンドを受けることが可能な、フラッシュモジュール（５８）と呼ばれる消去可能な不揮発性メモリモジュール（５８）を含む。ＵＳＢフラッシュ制御器（５６）は、フラッシュモジュール（５８）をプログラムする、読み取る、そして消去する等の、通常のフラッシュ操作に対するＵＳＢ機能及び適合性を提供するように構成されている。【特許請求の範囲】
【請求項１】
ＵＳＢ定義のバスへ接続するためのＵＳＢフラッシュメモリ装置であって、
単一の外部コネクタを備えた単一の一体式ユニットとして提供されるフラッシュメモリ装置であり、
（ａ）少なくとも一つのフラッシュメモリ・モジュールと、
（ｂ）ただ一つの外部コネクタであって、ＵＳＢ定義のバスへ接続するために適合されたＵＳＢコネクタであるコネクタと、
（ｃ）ブロック・デバイス・インタフェースを付与することにより前記ＵＳＢコネクタを介してホストと接続し、前記少なくとも一つのフラッシュメモリ・モジュールに対する読み取り及び書き込みの少なくともいずれかを行うＵＳＢ制御器と、を備えて構成され、
前記ＵＳＢ制御器は、前記ＵＳＢコネクタを介してアプリケーション・パケットとして受け取った読み取り及び書き込みブロックコマンドを、前記少なくとも一つのフラッシュメモリ・モジュールに対して逐次実行させるコマンド・インタープリタを有することを特徴とするＵＳＢフラッシュメモリ装置。
【請求項２】
前記ホストに対して動的に取り付け／取り外し可能な不揮発性記憶装置として機能する請求項１に記載のＵＳＢフラッシュメモリ装置。
【請求項３】
前記コネクタが、結合された物理／論理インタフェースにより前記制御器に直接装着される請求項１に記載のＵＳＢフラッシュメモリ装置。
【請求項４】
前記少なくとも一つのフラッシュメモリ・モジュールが、複数のフラッシュメモリ・モジュール体から構成される請求項１〜３のいずれかに記載のＵＳＢフラッシュメモリ装置。
【請求項５】
ＵＳＢ定義のバスへ接続するためのＵＳＢフラッシュメモリ装置であって、単一の外部コネクタを備えた単一の一体式ユニットとして提供されるフラッシュメモリ装置であり、
（ａ）少なくとも一つのフラッシュメモリ・モジュールと、
（ｂ）ＵＳＢ定義のバスへ接続するために適合されるとともに、ＵＳＢ定義のバスを介してパケットを送り出し及び受け取るために適合されたＵＳＢコネクタと、
（ｃ）前記少なくとも一つのフラッシュメモリ・モジュールを制御するとともに、前記ＵＳＢコネクタ上で通信を行うためのＵＳＢコントローラと、を備えて構成され、
前記ＵＳＢ制御器は、
（ｉ）パケットを受け取るために適合された機能インタフェースであって、前記パケットがＵＳＢ機能パケットである場合に、前記パケットに従って作動する機能インタフェースと、
（ｉｉ）前記機能インタフェースの後に直列接続されてアプリケーション・パケットを受け取るために適合されたアプリケーション・パケット抽出器であって、前記パケットから少なくとも一つのコマンドを抽出するアプリケーション・パケット抽出器と、
（ｉｉｉ）データをフラッシュメモリ・モジュールに対して書き込み、そして、読み取るような前記コマンドを受け取り、実行するために適合されたアプリケーション・コマンド・インタープリタと、を備え、
前記ＵＳＢ定義のバスに対して動的に取り付け／取り外しが可能なことを特徴とするＵＳＢフラッシュメモリ装置。
【請求項６】
前記ＵＳＢ制御器が、前記少なくとも一つのフラッシュメモリ・モジュールに対して読み取り及び書き込みの両方共に行う請求項１〜５のいずれかに記載のＵＳＢフラッシュメモリ装置。
【請求項７】
前記ＵＳＢ制御器が、前記少なくとも一つのフラッシュメモリ・モジュールにアクセスするための前記ホストに対する標準のブロック・デバイス・インタフェースを提供する請求項１〜６のいずれかに記載のＵＳＢフラッシュメモリ装置。
【請求項８】
前記ＵＳＢ制御器が、前記少なくとも一つのフラッシュメモリ・モジュールにアクセスするための前記ホストに対するハードディスク・インタフェースを提供する請求項１〜７のいずれかに記載のＵＳＢフラッシュメモリ装置。
【請求項９】
前記ＵＳＢ制御器が、
（ｉ）ＵＳＢプロトコルをサポートするＵＳＢインタフェースと、
（ｉｉ）前記少なくとも一つのフラッシュメモリ・モジュールに対する読み取り及び書き込みの少なくともいずれかを行う機能的に分離されたフラッシュメモリ・インタフェースと、を備える請求項１〜８のいずれかに記載のＵＳＢフラッシュメモリ装置。
【請求項１０】
前記ＵＳＢ制御器が、前記フラッシュメモリから分離した単一の集積回路として実装されており、前記コネクタを介してホストと通信するために作用し、そして、前記少なくとも一つのフラッシュメモリ・モジュールにアクセスするための前記ホストに対するインタフェースを提供する請求項１〜９のいずれかに記載のＵＳＢフラッシュメモリ装置。
【請求項１１】
前記単一の集積回路が、ＡＳＩＣ（特定用途向け集積回路）で構成される請求項１０に記載のＵＳＢフラッシュメモリ装置。
【請求項１２】
前記ＵＳＢ制御器が、
（ｉ）ＵＳＢ定義の電気インタフェースと、
（ｉｉ）ＵＳＢ定義の論理インタフェースと、
（ｉｉｉ）書き込みデータ・パケットから演算コードを抽出するために適合されたパケット抽出器と、
（ｉｖ）書き込みパケットから論理アドレスを一つ以上の前記少なくとも一つのフラッシュメモリ・モジュールにおける物理アドレスに変換するために適合されたアドレス・リゾルバと、を備える請求項１〜１１のいずれかに記載のＵＳＢフラッシュメモリ装置。
【請求項１３】
前記ＵＳＢ制御器が、前記パケットから書き込まれるべきデータを抽出した後に、書き込みコマンドを逐次実行する請求項１〜１２のいずれかに記載のＵＳＢフラッシュメモリ装置。
【請求項１４】
前記ＵＳＢ制御器と前記少なくとも一つのフラッシュメモリ・モジュールとを相互接続するアドレス／データバスを備える請求項１〜１３のいずれかに記載のＵＳＢフラッシュメモリ装置。
【請求項１５】
前記ＵＳＢ制御器が、前記少なくとも一つのフラッシュメモリ・モジュールと交渉して前記モジュールのサイズと製造タイプを決定し、前記決定されたサイズとタイプの少なくとも一つを使用して少なくとも一つの変換テーブルとアドレス空間とを生成する請求項１〜１４のいずれかに記載のＵＳＢフラッシュメモリ装置。
【請求項１６】
前記ＵＳＢ制御器が、サイズを決定するために交渉する請求項１５に記載のＵＳＢフラッシュメモリ装置。
【請求項１７】
前記ＵＳＢ制御器が、製造タイプを決定するために交渉する請求項１５に記載のＵＳＢフラッシュメモリ装置。
【請求項１８】
前記ＵＳＢ制御器が、複数のフラッシュメモリ・モジュールに取り付けるための複数のチップ・イネイブル信号ラインを含む請求項１〜１７のいずれかに記載のＵＳＢフラッシュメモリ装置。
【請求項１９】
前記ＵＳＢ制御器が、複数の異なるタイプのフラッシュメモリ・モジュールと動作するように適合された請求項１〜１８のいずれかに記載のＵＳＢフラッシュメモリ装置。
【請求項２０】
前記ＵＳＢ制御器が、ホストシステムと通信するために少なくとも２つのＵＳＢエンドポイントを使用する請求項１〜１９のいずれかに記載のＵＳＢフラッシュメモリ装置。
【請求項２１】
前記ＵＳＢ制御器が、前記少なくとも一つのフラッシュメモリ・モジュールと交渉して、前記フラッシュメモリ・モジュールの幾何形態の少なくとも一つの特徴を決定する請求項１〜２０のいずれかに記載のＵＳＢフラッシュメモリ装置。
【請求項２２】
前記少なくとも一つの特徴がサイズである請求項２１に記載のＵＳＢフラッシュメモリ装置。
【請求項２３】
前記少なくとも一つの特徴がバス幅である請求項２１に記載のＵＳＢフラッシュメモリ装置。
【請求項２４】
前記少なくとも一つの特徴がインターリービングである請求項２１に記載のＵＳＢフラッシュメモリ装置。
【請求項２５】
単一の前記アプリケーション・パケットが、全ての読み取りコマンドとそのパラメータを含む請求項１〜２４のいずれかに記載のＵＳＢフラッシュメモリ装置。
【請求項２６】
単一の前記アプリケーション・パケットが、書き込みコマンドとそのパラメータを含む請求項１〜２５のいずれかに記載のＵＳＢフラッシュメモリ装置。
【請求項２７】
前記単一のアプリケーション・パケットが、前記書き込みコマンドに対して書き込まれるべきデータを含む請求項２６に記載のＵＳＢフラッシュメモリ装置。
【請求項２８】
前記ブロック・デバイス・インタフェースが、コマンドに対するパラメータを送り出す前に前記コマンドを送り出す請求項２６に記載のＵＳＢフラッシュメモリ装置。
【請求項２９】
ＵＳＢ定義のバスへ接続するＵＳＢフラッシュメモリ装置であって、単一の外部コネクタを備えた単一の一体式ユニットとして提供されるフラッシュメモリ装置であり、
（ａ）データを蓄積するためのフラッシュメモリ手段と、
（ｂ）ＵＳＢ定義のバスへ接続するための手段と、
（ｃ）前記接続するのための手段に対するＵＳＢインタフェースの機能性を提供する手段と、
（ｄ）前記接続のための手段を介して受け取られたパケットからフラッシュメモリ・コマンドを抽出するための手段と、
（ｅ）前記コマンドを逐次実行する手段と、そして、
（ｆ）前記コマンドに対応して前記フラッシュメモリ手段を制御するための手段と、を備えて構成されることを特徴とするＵＳＢフラッシュメモリ装置。
【請求項３０】
前記ホストのオペレーティング・システムがどのような標準システムであるとも、前記装置をインストールするためにユーザがドライバを用意する必要がない、前記ホストとの通信をサポートするために作用する請求項１〜２９のいずれかに記載のＵＳＢフラッシュメモリ装置。
【請求項３１】
本質的に要素（ａ）〜（ｃ）から構成される請求項１、５、及び、３０のいずれかに記載のＵＳＢフラッシュメモリ装置。
【請求項３２】
（ｄ）前記単一の外部ＵＳＢコネクタがマウントされ、前記少なくとも一つのフラッシュメモリ・モジュール及び前記ＵＳＢ制御器を囲むハウジング、を更に備える請求項１〜３１のいずれかに記載のＵＳＢフラッシュメモリ装置。
【請求項３３】
前記ホストとプラグアンドプレイ接続をサポートするために作用する請求項１〜３２のいずれかに記載のＵＳＢフラッシュメモリ装置。
【請求項３４】
前記ホストと前記少なくとも一つのフラッシュメモリ・モジュールとの間の論理／物理アドレス変換を提供する請求項１〜３３のいずれかに記載のＵＳＢフラッシュメモリ装置。
【請求項３５】
前記ＵＳＢバスがホストに接続され、そして、前記ホストが固有のプロトコルを使用することで前記ＵＳＢ制御器にコマンドを提供する請求項１〜３４のいずれかに記載のＵＳＢフラッシュメモリ装置。
【請求項３６】
前記ＵＳＢバスがホストに接続され、そして、前記ホストが標準のプロトコルを使用することで前記ＵＳＢ制御器にコマンドを提供する請求項１〜３４のいずれかに記載のＵＳＢフラッシュメモリ装置。
【請求項３７】
前記フラッシュメモリ・モジュールが、少なくとも６４メガビットを有する請求項１〜３６のいずれかに記載のＵＳＢフラッシュメモリ装置。
【請求項３８】
前記フラッシュメモリ・モジュールが、複数のブロックとして組織化され、前記ブロックの各々が複数の個別にアドレス可能なセクタで構成され、前記セクタの各々がファイルシステムセクタと対応付けられており、
前記メモリが、前記ブロック単位でのみ消去が可能な請求項１〜３７のいずれかに記載のＵＳＢフラッシュメモリ装置。
【請求項３９】
前記フラッシュメモリをフラッシュディスクとして管理するためにソフトウェア管理システムを使用する請求項１〜３８のいずれかに記載のＵＳＢフラッシュメモリ装置。
【請求項４０】
前記フラッシュメモリ装置が、ＵＳＢフラッシュディスクを構成する請求項１〜３８のいずれかに記載のＵＳＢフラッシュメモリ装置。
【請求項４１】
前記フラッシュメモリ・モジュールが、前記装置に含まれる請求項１〜４０に記載のＵＳＢフラッシュメモリ装置。
【請求項４２】
ＵＳＢ定義のバスへ接続するＵＳＢフラッシュメモリ装置であって、単一の外部コネクタを備えた単一の一体式ユニットとして提供されるフラッシュメモリ装置であり、
（ａ）データを蓄積するためのフラッシュメモリ手段と、
（ｂ）ＵＳＢ定義のバスへ接続するための手段と、
（ｃ）前記接続するのための手段に対するＵＳＢインタフェースの機能性を提供する手段と、
（ｄ）前記接続するための手段を介して受け取られたパケットからフラッシュメモリ・コマンドを抽出するために作用するコマンド抽出器と、
（ｅ）前記コマンドを逐次実行するために作用するコマンド・インタープリタと、そして、
（ｆ）前記コマンドに対応して前記フラッシュメモリ手段を制御するために作用するメモリ・テクノロジ・ドライバと、を備えて構成されることを特徴とするＵＳＢフラッシュメモリ装置。
【請求項４３】
前記パケットで受け取られたアドレスを前記フラッシュメモリ手段のアドレスへアドレス変換をするための手段をさらに備えることを特徴とする請求項４２に記載のＵＳＢフラッシュメモリ装置。
【請求項４４】
フラッシュメモリ装置を使用するための方法であって、
ただ一つの外部コンピュータ・データ・コネクタを有し、前記コネクタがＵＳＢコネクタである単一のフラッシュメモリ装置を提供し、
前記装置をプラグアンドプレイ装置としてホストシステムのＵＳＢポートに装着し、
前記ＵＳＢポートを介して前記ホストから前記フラッシュメモリをハードディスクとしてアクセスする方法を備え、
前記装置が、前記ホストのオペレーティング・システムがどのような標準システムであるとも、前記装置をインストールするためにユーザがドライバを用意する必要がない、前記ホストとの通信をサポートするために作用する方法。
【請求項４５】
前記外部コネクタが、一体式コネクタで構成される請求項４４に記載の方法。
【請求項４６】
前記装置が、ただ一つの外部コネクタを備える請求項４４に記載の方法。
【請求項４７】
前記装置が、実質的に、前記コネクタ、前記制御器、及び、前記フラッシュメモリからなる請求項４４に記載の方法。
【請求項４８】
前記装置が、ＵＳＢの機能性とフラッシュメモリの機能性の両方を提供する単一の制御器を備える請求項４４に記載の方法。
【請求項４９】
前記装置が、６４メガビットフラッシュメモリ記憶容量の少なくとも２倍を備える請求項４４に記載の方法。
【請求項５０】
前記装置におけるハードディスク・アドレス空間からフラッシュメモリ・アドレス空間へのアドレス変換の実行を備える請求項４４に記載の方法。
【請求項５１】
ＵＳＢ定義のバスへ接続するＵＳＢフラッシュメモリ装置であって、単一の一体式着脱可能ユニットとして提供されるフラッシュメモリ装置であり、
（ａ）少なくとも一つのフラッシュメモリ・モジュールと、
（ｂ）ＵＳＢ定義のバスへ接続するために適合されたＵＳＢコネクタである単一の外部コネクタと、
（ｃ）ホストに対するインタフェースを付与することにより前記ＵＳＢコネクタを介して前記ホストと接続するＵＳＢ制御器と、を備えて構成され、
前記制御器が、前記少なくとも一つのフラッシュメモリ・モジュールに対して読み取り及び書き込みを行い、前記ＵＳＢコネクタを介してアプリケーション・パケットとして受け取った読み取り及び書き込みブロックコマンドを、前記少なくとも一つのフラッシュメモリ・モジュールに対して逐次実行させるコマンド・インタープリタを有し、
前記ホストに対する前記インタフェースが、フラッシュディスクとして動作し、前記ホストによりハードディスクとして扱われる前記フラッシュメモリを含む装置のような標準のブロック・デバイス・インタフェースをサポートするオペレーティング・システムを有するホストに対して適した前記標準のブロック・デバイス・インタフェースであり、そして、
前記ホストに対して動的に取り付け／取り外し可能に構成されたＵＳＢフラッシュメモリ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体メモリ装置に関し、特に、ＵＳＢＰＣバスを用いるホスト・プラットホームに接続された不揮発性メモリ・モジュールを消去可能な、そしてプログラム可能な半導体メモリ装置に関する。
【背景技術】
【０００２】
消去可能な、そしてプログラム可能な非揮発性記憶装置モジュール（以下フラッシュメモリあるいはフラッシュ装置と呼ぶ）は、情報保存技術において既知である。フラッシュ装置は、フラッシュタイプ、フローティングゲートのトランジスタから形成された電気的に消去可能な、そしてプログラム可能なリードオンリーメモリ（ＥＥＰＲＯＭ）を含み、ＥＥＰＲＯＭメモリに機能及び性能において類似する不揮発性のメモリであるが、メモリのページを消去する、回路内でのプログラム操作を許容する追加の機能を持つ。このようなフラッシュ装置の実施例の一例に、米国特許第５,７９９,１６８号がある（参照によって本文に完全に記載したものとする）。
【０００３】
フラッシュ装置は、伝統的な保存用磁気ディスクに比べ、比較的に安価で消費電力が少ないという利点がある。しかしながら、フラッシュ装置では、先だって領域のページを消去することなく、メモリ内の書き込み領域を書き直すことは実用上困難である。この制限があるため、以前の書き込みデータがあるフラッシュ装置内のメモリ領域を最初に消去しないと、その領域にデータを書き込むことができないので、フラッシュ装置は、典型的な既存オペレーティング・システムのプログラムとは相容れないものとなっている。例えば、１９９３年３月５日に出願された米国特許第５,４０４,４８５号に開示されたようなソフトウェア・マネージメント・システム（本文に完全に記載したものとする）は、フラッシュメモリ装置の、このような機能をうまく処理しなければならない。
【０００４】
現在、フラッシュメモリ装置には、ホスト・プラットホームに固定して取り付けられるか、あるいはＰＣＭＣＩＡ（パソコン・メモリカードの国際提携）インタフェースを用いて着脱可能でなければならないという第二の制限がある。どちらのやり方も、使用が困難でありコストが高いという欠点がある。
【０００５】
したがって、より有用な実施例としては、ＵＳＢ規格バージョン１.１（本文に完全に記載したものとする）に表されたＵＳＢ規格を用いることになる。ＵＳＢ規格は、製造コストを低くすると共にフォームファクタを小さくし、エンドユーザにとって、より使い易いものとするものである。この規格は、コンパック・コンピュータ、マイクロソフト、ＩＢＭ、インテル等の会社が奨励する工業規格であり、コンピュータ・テレフォニー集積化（ＣＴＩ）、消費者、そして生産性向上の用途に的を絞ったＰＣアーキテクチャへの拡張として役立つものである。
【０００６】
ＵＳＢ規格のアーキテクチャを定義する基準には、ＰＣ（パソコン）周辺機器の拡張の容易さ、低コスト、１２Ｍｂ／秒までの転送速度のサポート、そして音声及び圧縮ビデオのリアルタイム・データに対するフルサポートがある。また、この規格は、混合モード等時性データ転送及び非同期性メッセージのためのプロトコルの柔軟性、汎用装置技術の統合、そして任意のホスト製品への迅速統合のための標準インタフェースを提供する。さらに、ＵＳＢ規格は、ケーブル及びコネクタ取り付けのための単一モデルであり、バス端子を含む電気的な機能のすべての詳細を、エンドユーザから隔離するものである。この規格を介して、周辺装置は、自己識別が可能であり、そしてドライバへの機能部の自動マッピングをサポートする。さらに、この規格によって、すべての周辺装置は、脱着及び再構成が可能である。
【０００７】
ＵＳＢ規格により構成されたシステムには、ＵＳＢ相互接続、ＵＳＢ装置及びＵＳＢホスト・プラットホームという三つの被定義領域がある。ＵＳＢ相互接続とは、ホスト・プラットホームにＵＳＢ装置が接続され、そして交信するやり方である。関連する機能及び要素には、ＵＳＢ装置とホスト・プラットホームとの間の接続モデルとしてのバス・トポロジーが含まれる。
【０００８】
ＵＳＢの物理的な相互接続は、段階的なスター・トポロジーであり、ハブが各スターの中心にある。各ワイヤ部分は、ホスト・プラットホームとハブまたは機能部との、あるいはもう一つのハブまたは機能部に接続されたハブとの間の二地点間接続である。
【０００９】
ケイパビリティ・スタックに関しては、システム内の各層において行われるＵＳＢタスクとして、データ・フロー・モデルとスケジュールとがある。データ・フロー・モデルとは、システム内において、データ発生部とデータ消費部との間のＵＳＢ上を、データが移動する方法であり、スケジュールとは、共有する相互接続へのアクセスを決定するものである。このようなスケジューリングによって、等時性データ転送のサポートが可能になり、アービトレーション・オーバヘッドがなくなる。
【００１０】
ＵＳＢそのものはポール・バスである。ホスト・プラットホーム上のホスト制御器が、すべてのデータ転送を開始する。すべてのバス・トランザクションは、最高３パケットの送信を要し、各トランザクションは、ホスト制御器が、スケジュールに基づき、トランザクションのタイプ及び方向、ＵＳＢ装置のアドレス、そしてエンドポイント数を表すＵＳＢパケットを送ったときに始まる。このパケットは「トークン・パケット」と呼ばれる。パケットの宛先のＵＳＢ装置は、適切なアドレス・フィールドを解読することによって、自らを選択する。任意のトランザクションでは、データは、ホスト・プラットホームから装置へ、あるいは装置からホスト・プラットホームへ転送される。データ転送の方向はトークン・パケット内に規定されている。トランザクション源は、それからデータ・パケットを送る、あるいはトランザクション源が転送すべきデータを持たないことを示す。一般的に、宛先は、転送が成功したかどうかを示すハンドシェイク・パケットで返答する。
【００１１】
ホスト・プラットホーム上の源及び宛先と一つの装置上のエンドポイントとの間のＵＳＢデータ転送モデルは、「パイプ」と呼ばれる。ストリームとメッセージという二つのタイプのパイプがある。ストリーム・データは、ＵＳＢ定義構造を持たないが、メッセージ・データはそれを持つ。さらに、パイプは、データ帯域幅、転送サービス・タイプ、そして方向性及びバッファ・サイズのようなエンドポイント特性に関連する。たいていのパイプは、ＵＳＢ装置を構成したときに発生する。装置に電力が供給されると、一つのメッセージ・パイプ、デフォルト制御パイプ、が常に存在し、この装置に関する構成、状態及び制御情報へのアクセスを提供する。
【００１２】
ＵＳＢ規格のためのトランザクション・スケジュールは、いくつかのストリーム・パイプに対するフロー・コントロールを可能にするもので、ハードウェア・レベルにおいて、データ転送速度を抑えるＮＡＫハンドシェイクを用いることによって、バッファがアンダランあるいはオーバランを起こすのを防ぐ。ＮＡＫハンドシェイクでは、バス時間が利用可能なときにトランザクションを再び行う。フロー・コントロール・メカニズムは、ストリーム・パイプの不均一な混合並行サービスに適応する柔軟なスケジュールの構築が可能である。したがって、多数のストリーム・パイプを、異なるサイズのパケットで、異なる間隔で用いることができる。
【００１３】
ＵＳＢ規格は、先に説明したが、トークン・パケット、データ・パケット及びハンドシェイク・パケットを含む三つの主なパケット・タイプを持つ。各タイプのパケットの例を、背景技術を表す図１から図３に示す。図４は、背景技術の模範的なＵＳＢ装置を概略的に示す。
【００１４】
背景技術図１に示すトークン・パケット１０は、イン、アウトあるいはセットアップの３パケット・タイプの一つを指定するＰＩＤ（パケット識別）フィールド１２を持つ。ＰＩＤフィールド１２にイン・パケット・タイプを指定すると、データ・トランザクションは機能部からホスト・プラットホームへ定義され、ＰＩＤフィールド１２にアウトあるいはセットアップのパケット・タイプを指定すると、データ・トランザクションは、ホスト・プラットホームから機能部へ定義される。
【００１５】
ＡＤＤＲフィールド１４は、アドレスを指定し、ＥＮＤＰフィールド１６は、トークン・パケット１０のためのエンドポイントを指定する。ＰＩＤフィールド１２に、トークン・パケット１０がアウト・パケット・タイプあるいはセットアップ
・ パケット・タイプであると指定されたアウト及びセットアップ・トランザクションに対しては、ＡＤＤＲフィールド１４及びＥＮＤＰフィールド１６が、トークン・パケット１０の後に続く図２に示す次のデータ・パケットを受け取るためのエンドポイントを識別する。ＰＩＤフィールド１２に、トークン・パケット１０がイン・パケット・タイプであると指定されたイン・トランザクションに対しては、ＡＤＤＲフィールド１４とＥＮＤＰフィールド１６が、どのエンドポイントがデータ・パケットを送信するのかについて明らかにする。ＣＲＣ５フィールド１８は、トークン・パケット１０が、原形を損なわずに受け取られたことを決定するためのチェックサムを含む。ホスト・プラットホームだけがトークン・パケット１０を発行することができるため、トークン・パケット１０は、次に続くデータ・パケットに関して送信制御を提供する。
【００１６】
背景技術の図２に示すように、従来のＵＳＢデータ・パケット２０も、データ・パケットのタイプを識別するためのＰＩＤ（パケット識別）フィールド２２を持つ。データ・パケット２０も、オプションとしてデータを含むためのデータ・フィールド２４と、上述のチェックサムを含むためのＣＲＣフィールド２６とを持つ。
【００１７】
背景技術の図３は、ＰＩＤ（パケット識別）フィールド３０だけを持つ従来の技術によるＵＳＢハンドシェイク・パケット２８を示す。ハンドシェイク・パケット２８は、データ・トランザクションの状態を報告するために用いられるもので、データ受信の成功、コマンドの受諾あるいは拒否、フロー・コントロール及び停止状態を示す値を返すことができる。単にフロー・コントロールをサポートするトランザクション・タイプが、ハンドシェイク・パケット２８を返すことができる。ハンドシェイク・パケット２８は、常にトランザクションのハンドシェイク段階で返されるもので、トランザクションのデータ段階で、データ・パケット２０の代わりに返されてもよい。
【００１８】
これら三つの、異なるタイプのパケットは、ＵＳＢ装置を含むトランザクションの種々の段階で交換される。典型的なＵＳＢ装置３２の機能ブロックの概略的なブロック図を、背景技術の概略的なＵＳＢ装置として図４に示す。ＵＳＢ装置３２は、典型的に、上記のＵＳＢ仕様に適合する電気信号を送受信するための物理的なインタフェースである、ケーブル及びコネクタからなるＵＳＢ電気インタフェース３４を含む。信号は、一つ以上のバッファ、信号の発信源装置のアドレスを解読するデバイス・アドレス・デコーダ、そして信号を同期させるＳＹＮＣフィールド・シンクロナイザを含む論理インタフェース３６を通過する。ＵＳＢ装置としての概略的なＵＳＢ装置３２の管理のために必要な情報及び構造は、ＵＳＢクラス制御及び列挙エンジン３８内に保存される。機能及び装置エンジン４０は、「アプリケーション」とも呼ばれ、概略的なＵＳＢ装置３２の特定な機能及び特性を制御し、そして管理する。さらに、機能及び装置エンジン４０は、ＵＳＢバス上のデータの大部分を消費し、そして生成する。
【００１９】
しかしながら、概略的なＵＳＢ装置３２内の異なるエンティティー間の関係は、ＵＳＢ仕様によって定義されるものではない。むしろ、ＵＳＢ仕様は、単に、パケットに対する、そして、概略的なＵＳＢ装置３２とバスとの間の電気的な、そして物理的な連結に対する必要条件を表すものである。したがって、背景技術の、図４に示す連結及び関係は、単に、ＵＳＢ仕様の必要条件を満たす実施例の一つにすぎない。したがって、ＵＳＢ仕様を満たす特定な装置は、特別に定義され、そして表現されたアーキテクチャを持たなくてはならない。
【００２０】
残念ながら、フラッシュメモリ装置を、ＵＳＢ仕様によって定義したバスに接続することによって、ホスト・プラットホーム上にＵＳＢシステムの一部を形成することが可能な、このようなアーキテクチャは、一つ以上のフラッシュメモリ・モジュールを含むフラッシュメモリ装置に関しては存在しない。例えば、米国特許第５,７９９,１６８号は、フラッシュ装置に対する、このような実施例を示唆していない。先に述べたように、このようなアーキテクチャは、低コスト、使い易さ、エンドユーザにとって分かり易い等の多数の理由により、特に有用である。
【００２１】
したがって、ＵＳＢシステムとの適合性があり、ＵＳＢ仕様に沿うフラッシュメモリ装置を定義表現するアーキテクチャの必要性がある。そのようなアーキテクチャによれば、フラッシュメモリ装置は、ＵＳＢ定義のバス上にあって、このバスを介してホスト・プラットホームと交信することが可能であるため、非常に有用である。
【発明の開示】
【発明が解決しようとする課題】
【００２２】
本発明は、フラッシュメモリがＡＳＩＣのアドレス空間にマッピングされた一つ以上のフラッシュモジュール、あるいはＵＳＢ定義の電気インタフェースとＵＳＢ定義の論理インタフェースとを持つ制御器を含むフラッシュメモリ装置に関する。この制御器あるいはＡＳＩＣ（以下「制御器」と呼ぶ）は、ＵＳＢ規格に応じたＵＳＢ機能をサポートするため、ＵＳＢバス上への列挙が可能で、また、ＵＳＢエンドポイントに対してＵＳＢパイプを介してデータの送受信ができる。また、この制御器は、フラッシュメモリ装置の機能及び制御、そしてホスト制御器からのコマンド及びデータ・パケットの処理をサポートする。ホスト制御器は、ＵＳＢフラッシュ制御器へ実行すべき次のコマンドを知らせるために、標準的な、あるいは専有の複数の可能なプロトコルの一つを用いる。したがって、装置全体が、ホスト・プラットホームに対して動的に着脱可能な不揮発性記憶装置として作用する。
【００２３】
本発明によれば、ＵＳＢ定義のバスへ接続するＵＳＢフラッシュメモリ装置が提供される。このフラッシュメモリ装置は、（ａ）データを保存するための少なくとも一つのフラッシュメモリ・モジュールと、（ｂ）ＵＳＢ定義のバスに接続してＵＳＢ定義のバスへパケットを送る、そしてＵＳＢ定義のバスからパケットを受け取るためのＵＳＢコネクタと、そして（ｃ）少なくとも一つのフラッシュメモリ・モジュールを制御すると共に、ＵＳＢ定義のバスから受け取った少なくとも一つのパケットに応じてＵＳＢコネクタを制御するＵＳＢ制御器とからなり、少なくとも一つのフラッシュメモリ・モジュールに対してデータの書き込み及び読み取りが実行される。
【００２４】
以下、用語「コンピュータ」は、限定せずに次のものを示す。ＤＯＳ、ウインドウズ（ＴＭ）、ＯＳ／２（ＴＭ）あるいはリナックス等のオペレーティング・システムを持つパソコン（ＰＣ）、マッキントッシュ（ＴＭ）・コンピュータ、オペレーティング・システムとしてジャバ（ＴＭ）ＯＳを持つコンピュータ、サン・マイクロシステムズ（ＴＭ）及びシリコン・グラフィックス（ＴＭ）のコンピュータ等のグラフィックのワークステーション、サン・マイクロシステムズ（ＴＭ）のＡＩＸ（ＴＭ）あるいはソラリス（ＴＭ）等のＵＮＩＸ（登録商標）オペレーティング・システムのいくつかのバージョンを持つ他のコンピュータ、または埋め込まれたシステムとして、ウインドウズＣＥ（ＴＭ）等のオペレーティング・システムを含む他の既知である利用可能なオペレーティング・システムを持つ携帯電話、手に収まる計算装置、パームトップの計算装置、そして、ネットワークに接続が可能な他の計算装置。以下、用語「ウインドウズ（ＴＭ）」は、限定せずに、ウインドウズ９５（ＴＭ）
、ウインドウズ３．ｘ（ＴＭ）（ｘは「１」等の整数）、ウインドウズＮＴ（ＴＭ）、ウインドウズ９８（ＴＭ） 、ウインドウズＣＥ（ＴＭ）、そしてマイクロソフト社（米国ワシントン州シアトル）によるこれらのオペレーティング・システムのアップグレード版を示す。
【発明を実施するための最良の形態】
【００２５】
本発明は、フラッシュメモリが、ＡＳＩＣ、あるいはＵＳＢ定義の電気インタフェースとＵＳＢ定義の論理インタフェースとを持つ制御器のアドレス空間へマッピングされる一つ以上のフラッシュモジュールを含むフラッシュメモリ装置に関する。この制御器あるいはＡＳＩＣ（以下「制御器」と呼ぶ）は、ＵＳＢ規格によるＵＳＢ機能をサポートする。このため、ＵＳＢバスへの列挙と、ＵＳＢエンドポイントへ、そして、そこからのＵＳＢパイプ上のデータの受信及び送信とをサポートする。また、この制御器は、フラッシュメモリ装置の機能及び制御、そしてホスト・コントローラからのコマンド及びデータ・パケットの処理をサポートする。ホスト制御器は、ＵＳＢフラッシュ制御器へ、次に行うべきコマンドを送信するために、標準的な、あるいは専有の、いくつかの可能なプロトコルの一つを用いる。したがって、装置全体は、ホスト・プラットホームのための、着脱可能な不揮発性記憶装置として作動する。
【００２６】
本発明は、種々の変更が可能であり、多くの代替的な形態を用いて具現することができるが、図面に実施例を示し、下記に詳細に説明する。本技術における通常の技能を有する者には、本発明を種々の他の方法で具現することができることは明らかである。意図するところは、本発明の範囲に含まれるすべての変更及び代案を扱うことである。
【００２７】
本発明によるＵＳＢフラッシュ装置及びシステムの原理及び作用は、図面及び説明文から理解できるが、これらの図面は、単に説明の目的のために示したもので、限定することを意図してはいない。
【００２８】
さて、図面を参照する。図５は、本発明によるフラッシュメモリ装置及びシステムの主構成要素の概略的なブロック図である。図に示すように、フラッシュメモリ・システム４２はホスト・プラットホーム４４を含む。ホスト・プラットホーム４４は、ＵＳＢフラッシュ装置４６を不揮発性の保存スペースとして操作する。
【００２９】
ホスト・プラットホーム４４は、ＵＳＢケーブル４８を介して、本発明によるＵＳＢフラッシュ装置４６へ接続されている。ＵＳＢケーブル４８に、ホスト・プラットホーム４４はＵＳＢホスト・コネクタ５０を介して接続するが、ＵＳＢフラッシュ装置４６はＵＳＢフラッシュ装置コネクタ５２を介して接続する。ホスト・プラットホーム４４は、ＵＳＢバス上のすべてＵＳＢ転送を制御して処理するためのＵＳＢホスト制御器５４を含む。
【００３０】
ＵＳＢフラッシュ装置４６は、ＵＳＢフラッシュ装置４６の他の要素を制御するための、そしてＵＳＢフラッシュ装置４６のＵＳＢバスへのインタフェースを提供するためのＵＳＢフラッシュ装置制御器５６と、ＵＳＢフラッシュ装置コネクタ５２と、少なくとも一つのフラッシュメモリ・モジュール５８とを含む。フラッシュメモリ・モジュール５８は、データが保存される複数のフラッシュメモリ・モジュール５８の配列であることが好ましい。
【００３１】
ＵＳＢフラッシュ装置４６がホスト・プラットホーム４４に接続されると、標準ＵＳＢ列挙処理が始まる。この処理において、ホスト・プラットホーム４４は、ＵＳＢフラッシュ装置４６を認知してＵＳＢフラッシュ装置４６との通信モードを形成する。ＵＳＢフラッシュ装置４６を構成する多くの異なる方法があるが、説明を明快にする目的で、限定することを意図せず、ホスト・プラットホーム４４がエンドポイントを介してＵＳＢフラッシュ装置４６へコマンド及び要求を出す方法に関して、本発明を次に詳細に説明する。ホスト・プラットホーム４４は、他のエンドポイントを介してＵＳＢフラッシュ装置４６に状態の変化に関して問い合わせ、関連する受け取るべきパケットがあれば、それを受け取る。
【００３２】
ホスト・プラットホーム４４は、ＵＳＢホスト制御器５４へ要求パケットを送ることによって、ＵＳＢフラッシュ装置４６からのサービスを求める。ＵＳＢホスト制御器５４は、ＵＳＢケーブル４８上にパケットを送信する。ＵＳＢフラッシュ装置４６がこの要求のエンドポイント上の装置であれば、これらの要求はＵＳＢフラッシュ装置制御器５６によって受け取られる。次に、ＵＳＢフラッシュ装置制御器５６は、フラッシュメモリ・モジュール５８から、あるいはフラッシュメモリ・モジュール５８へ、データを読む、書く、あるいは消する等の種々の操作を行う、あるいは装置列挙及び構成等の基本的なＵＳＢ機能をサポートする。ＵＳＢフラッシュ装置制御器５６は、フラッシュメモリ・モジュール５８の出力を制御する制御ライン６０を用いることによって、また、例えば、チップ・イネイブル等の種々の他の信号や読み取り書き込み信号を介して、フラッシュメモリ・モジュール５８を制御する。また、フラッシュメモリ・モジュール５８は、アドレス／データ・バス６２によってもＵＳＢフラッシュ装置制御器５６に接続されている。アドレス／データ・バス６２は、フラッシュメモリ・モジュール５８に対する、読み取り、書き込みあるいは消去のコマンドと、フラッシュメモリ・モジュール５８の製造業者が定義したこれらのコマンドに対するアドレス及びデータを転送する。
【００３３】
ホスト・プラットホーム４４が要求した種々の操作に対する結果及び状態に関してホスト・プラットホーム４４へ知らせるために、ＵＳＢフラッシュ装置４６は、「状態エンドポイント」を用いて状態パケットを送信する。この処理では、ホスト・プラットホーム４４は、状態パケットがないかをチェックし（ポーリング）、ＵＳＢフラッシュ装置４６は、新しい状態メッセージのパケットが存在しない場合に空パケットを、あるいは択一的に状態パケットそのものを返す。
【００３４】
ＵＳＢフラッシュ装置４６の機能要素のより詳細な構造を図６に示す。このＵＳＢフラッシュ装置４６は、ＵＳＢ規格で定義され、ここにＵＳＢフラッシュ装置コネクタ５２及びコネクタ・インタフェース６４として示された物理的な、そして電気的なインタフェースを含む。ＵＳＢフラッシュ装置コネクタ５２は、ホスト制御器（図示せず）からの電気信号を搬送するＵＳＢケーブル４８から電気信号を受け取る。これらの信号は、次にコネクタ・インタフェース６４を通過する。ミリ秒毎に、ＵＳＢフレームがＵＳＢ定義のバス上を搬送されるため、パケットをＵＳＢフラッシュ装置４６へ送ることが可能である。
【００３５】
これらのパケットは、物理的で論理的なインタフェース６６である第一のインタフェース構成要素を介してコネクタ・インタフェース６４に受け取られる。機能インタフェース６８は、図１に関して先に説明したところの、ＵＳＢ仕様に定義したトークン・パケットを受け取れるように特別にデザインされている。これらのトークン・パケットは、ＵＳＢ規格が要求するところの、ＵＳＢフラッシュ装置４６の特定な機能にのみ関係し、本発明によるフラッシュディスクとしてのＵＳＢフラッシュ装置４６の特定な用途に対しては全く関係がないものである。これらのトークン・パケットと、対応する返されたデータ・パケットは、ＵＳＢホスト制御器５４（図示せず）及びホスト・プラットホーム４４（図示せず）が、ＵＳＢバス上にＵＳＢフラッシュ装置４６を識別し、そしてＵＳＢフラッシュ装置４６に対してリソースを割り当てることができるようにする。したがって、機能インタフェース６８は、単に、ＵＳＢバス上にＵＳＢフラッシュ装置４６を識別及び登録するために必要なＵＳＢ機能のみをサポートする。
【００３６】
また、ＵＳＢフラッシュ装置４６は、ＵＳＢアプリケーション・パケットからアプリケーション・データとコマンドとを抽出するアプリケーション・パケット抽出器７０を含む。したがって、アプリケーション・パケット抽出器７０は、アプリケーションに関するパケットのみをサポートする。次に、ホスト・プラットホーム４４（図示せず）によるＵＳＢフラッシュ装置４６への、読み取り、書き込み、識別及び消去コマンドの形式での要求が、アプリケーション・コマンド・インタープリタ７２によって解釈される。読み取り、書き込み及び消去コマンド等のデータあるいはアドレスに関わるコマンドに対しては、アドレス・リゾルバ・モジュール７４が、論理アドレス空間から物理アドレス空間へアドレスを解釈する。ホスト・プラットホーム４４（図示せず）は論理アドレスの線形アドレス空間に関わるが、ＵＳＢフラッシュ装置４６は、少なくとも一つの、そして好ましくは複数の、各々が物理アドレス空間を持つフラッシュモジュール５８からなる。したがって、ホスト・プラットホーム４４の論理アドレス空間（図示せず）とＵＳＢフラッシュ装置４６の物理アドレス空間との間で置き換えが行われなくてはならない。このような置き換えを具現するための、本発明に適する多くの方法がある。アドレス置き換え方法の適当な実施例の一つの例が、上記に参照として本文に記載した米国特許第５,４０４,４８５号に説明されており、そこには、本発明の作動に適した、フラッシュディスクとしてのフラッシュメモリを管理するための方法が示されている。
【００３７】
データ・ハンドラ７６は、受け取ったコマンドのデータに関係する部分を処理し、機能インタフェース６８を介してフラッシュモジュール５８へ、そしてフラッシュモジュール５８からデータを転送する。オプションとして、データ・ハンドラ７６が誤差補正及び検出を行うことが好ましい。アプリケーション・コマンド・インタープリタ７２、データ・ハンドラ７６及びアドレス・リゾルバ・モジュール７４のすべては、基礎をなすメモリ・テクノロジ・ドライバ（ＭＴＤ）７８と共に作動して、特定のフラッシュモジュール５８とそのフラッシュモジュール５８上の所望のアドレスとへ書き込む、読み取る、あるいは消去する。
【００３８】
ホスト・プラットホーム４４は、ＵＳＢフラッシュ装置４６の状態変化を調べて、新しい状態パケットが利用可能である場合、ＵＳＢフラッシュ装置４６から状態パケットを読み取る。これらの状態パケットを用いて、ＵＳＢフラッシュ装置４６は、要求（図示せず）としてホスト・プラットホーム４４が出した種々のコマンドの結果をホスト・プラットホーム４４へ伝達することができる。例えば、読み取りコマンド状態パケットは、「成功」、「エラー」あるいは「無効なアドレス」等の利用可能な状態ワードの一つを含み、ホスト・プラットホーム４４は、読み取りコマンド（図示せず）の結果を判定することが可能である。同様に、消去状態パケットは、消去処理の完了を示す状態ワードを含む。書き込み状態パケットは、ＵＳＢフラッシュ装置４６が、ホスト・プラットホーム４４へ書き込みコマンドの結果について知らせるために用いるもので、例えば、コマンドが、成功した、あるいは誤っている、また、ＵＳＢフラッシュ装置４６が、ホスト・プラットホーム４４からの追加の書き込み要求に対して準備ができているかどうかを知らせる。
【００３９】
メモリ・テクノロジ・ドライバすなわちＭＴＤ７８は、典型的に、ＭＴＤ７８を操作する制御器に制御されるフラッシュメモリ装置を読み取る、書き込む、そして消去するためのルーチンを含む。さらに、ＭＴＤ７８は、オプションとして、ＭＴＤ７８がデザインされた正しいタイプのフラッシュメモリ装置を認識するための識別ルーチンを含む。このようにすれば、制御器は、特定のフラッシュメモリ装置アレイと相互作用するときに、どのＭＴＤを起動すべきか判定することができる。さらに、識別ルーチンは、アレイ内のフラッシュメモリ装置の数を含むフラッシュメモリ装置のアレイのサイズ、そしてインターリービング及びバス幅等のフラッシュアレイのパターンの種々の特徴を検出することが可能である。この情報は、後にホスト・プラットホーム４４が、記憶媒体のアドレス空間とサイズとを判定するのに用いられる。先に参照として述べた米国特許第５,７９９,１６８号には、フラッシュ素子のためのそのようなＭＴＤの一例が開示されている。
【００４０】
上記プロトコル及びアーキテクチャを用いることによって、ホスト・プラットホーム４４は、オプションとして、メモリあるいはＩ／Ｏ
が規則的にマッピングされたフラッシュメモリ装置に具現可能なアプリケーションを実行することができる。例えば、先に述べた米国特許第５,４０４,４８５に開示されているように、ホスト・プラットホーム４４は、磁性記憶媒体、「ハードディスク」ドライブ等の各アプリケーションに標準ブロック・デバイス・インタフェースを提供することができる。
【００４１】
本発明の好適実施例として、本発明によるＵＳＢフラッシュ装置に接続されたホストシステムの作動を、フラッシュ装置を識別し、プログラムし、読み取り、そして消去するプロセスに関して説明する。説明の目的で、限定することを意図せずに、各々のサイズが６４メガビットの二つのフラッシュメモリ・モジュールのアレイを持つ模範的なＵＳＢフラッシュ装置を示す。フラッシュ装置がアドレス変換テーブルを含むため、ホスト・プラットホームは論理アドレスで作動する。フラッシュ装置とホスト・プラットホームとの間のすべてのコマンド及びリターン・コードは、ＵＳＢデータ・パケットに載せられ、ＵＳＢデータ・パイプを介して転送される。パケットの正確な構造、パイプ及びタイミングについてはＵＳＢ仕様に説明がある。
【００４２】
本発明による模範的な装置及びシステムの作動は、次の通りである。まず、ＵＳＢフラッシュ装置がホスト・プラットホームに接続されると、ＵＳＢホスト制御器は、ＵＳＢバス上のＵＳＢフラッシュ装置にアドレスを割り当てる。また、ＵＳＢ仕様に説明があるリソースを割り当てる。実際は、ＵＳＢフラッシュ装置がホスト・プラットホームへ、これらのリソースを割り当てるように頼むが、このとき、どれだけのリソースが必要なのかをホスト・プラットホームへ知らせなくてはならない。したがって、ＵＳＢホスト・プラットホームが既に他の装置に対してリソースを割り当てている場合は、ＵＳＢフラッシュディスクは、オプションとして、より遅いデバイス・スピードをサポートすることが可能である。
【００４３】
また、ＵＳＢ制御器は、フラッシュモジュールと交渉して、これらモジュールのサイズ及び製造タイプを判定する。それから、制御器は、この情報を保持する識別構造、そして変換テーブル及び論理アドレス空間を作る。
【００４４】
ＵＳＢホスト制御器がＵＳＢフラッシュ装置を識別した後、ホスト・プラットホームは、通常、ＵＳＢクライアント・ドライバをアップロードする。ドライバは、ＵＳＢホスト制御器へ識別要求コマンドを出し、制御器に、図７に示す識別データ・パケット８０を送信させる。背景技術の図２に対して先に説明したように、識別パケット８０は、ＰＩＤフィールド２２及びチェックサム・フィールド２６を含む。また、識別パケット８０は、演算コード・フィールド８２内に「識別」演算コードを含む。ＵＳＢフラッシュ装置のパケット抽出器は、識別データ・パケット８０を受け取り、アプリケーション・コマンド・インタープリタへ「識別」コマンドの演算コードを転送する。
【００４５】
「識別」コマンドに応えて、フラッシュ装置は、図８に示す識別データ・パケット８４を送る。図７に示すフィールドに加えて、識別データ・パケット８４は、フラッシュ装置サイズ・フィールド８６内にフラッシュ装置のサイズに関する情報、そして消去単位サイズ・フィールド８８内にフラッシュメモリを消すための最少消去単位のサイズに関する情報を含む。
【００４６】
この例で説明するすべてのパケットは、ＵＳＢバス上で送信されるデータ・パケットのみである。各データ・パケットが送られる前に、ＵＳＢトークン・パケットが送信され、データ・パケットが宛てられる装置エンドポイントのＩＤをＵＳＢ制御器に知らせる。パケットの受信に成功すると、ＵＳＢ制御器は、ＵＳＢ仕様に説明があるＵＳＢＡＣＫパケットを出す。
【００４７】
ホスト・プラットホームのデバイス・ドライバが、この状態パケットを受け取ると、ドライバは、アプリケーション・コマンドを用いてＵＳＢフラッシュ装置へ読み取り書き込みコマンドを出すことが可能になる。書き込み要求が送られると、「書き込み」コマンドのための演算コードを持つＵＳＢデータ・パケットと、データを含むバッファとが、ＵＳＢフラッシュ装置へ転送される。書き込みデータ・パケット９０を図９に示す。これも先に図８に示したフィールドを含むが、次の相違点がある。書き込みデータ・パケット９０には、「書き込み」演算コードを持つ書き込みフィールド９２、論理アドレスを書き込むＡＤＤＲフィールド９４、書き込み長さを持つＬＥＮフィールド９６、そして書き込む実際のデータを含むデータ・フィールド９８がある。パケット抽出器は、書き込みデータ・パケット９０から演算コードを抽出して、このコードをアプリケーション・コマンド・インタープリタへ転送する。論理アドレスは、一つのフラッシュモジュール上で、この論理アドレスを物理アドレスに変換するアドレス・リゾルバ・モジュールへ転送される。ＵＳＢフラッシュ装置が必要なら、データ・ハンドラは、オプションとして、誤差補正及び検出メカニズムを計算する。全フラッシュメモリ・モジュールの準備ができたら、物理アドレスを含む単数のフラッシュモジュールあるいは複数のモジュールへ「書き込み」コマンドが送られる。物理アドレスは、オプションとして、一つ以上のフラッシュモジュールを横切ってＭＴＤブロックへ延びてもよい。次に、ＭＴＤブロックは、フラッシュモジュールをＵＳＢ装置制御器へ接続するデータ／アドレス・バス上に「書き込み」コマンドを出す。操作が完了して状態パケットがＭＴＤへ返されると、操作の結果がホスト制御器へ送信され、ホスト・プラットホーム内のデバイス・ドライバへ渡される。
【００４８】
フラッシュ制御器が書き込み処理を終えると、制御器は、ホスト・プラットホームへ、図１０に示す「書き込み状態」パケット１００を送ることによって、ＵＳＢフラッシュメモリ装置の状態が変わったことを知らせる。書き込み状態パケット１００は、データ・フィールド９８の代わりに、状態フィールド１０２を含む。ホスト・プラットホームは、フラッシュメモリ装置からの、書き込み状態パケット１００から状態パケットを読み、状態フィールド１０２を読み取ることによって、書き込みコマンドの完了状態に関する情報を取り出す。この例では、フラッシュメモリ装置は、ホスト・プラットホームが状態パケット１００に関する特定のコマンドを参照できるように、ＡＤＤＲフィールド９４及びＬＥＮフィールド９６を繰り返す。
【００４９】
図１１に示すように、「読み取り要求」パケット１０４は、読み取りフィールド１０６内の「読み取り」コマンドのための演算コードと、フラッシュ制御器がＡＤＤＲフィールド１０８内で読むべき所望の位置の論理アドレスとを含む。このコマンドを受け取ると、アドレス・リゾルバ・モジュールが、ＡＤＤＲフィールド１０８内に含まれるアドレスを一つのフラッシュ構成要素内の特定な物理アドレスへ変換した後、フラッシュ制御器は、ＭＴＤブロックへ読み取りコマンドを出す。
【００５０】
フラッシュ制御器は、読み取りコマンドが出された後、あるいは、エラーが起こった場合は、フラッシュ制御器が、新しい状態パケットを読む必要があることを示す信号をホスト・プラットホームへ送った後、フラッシュ装置からデータを受け取る。ホスト・プラットホームは、読み取り要求を出して、図１２に示す「読み取り状態」パケット１１０を受け取る。読み取り状態パケット１１０は、ＡＤＤＲフィールド１０８内に読み取りデータのアドレスを、ＬＥＮフィールド１１２内に読み取りデータの長さを、そしてデータ・フィールド１１４内にデータそのものを含む。また、読み取り状態パケット１１０は、状態フィールド１１６内に状態ワードを含み、これに応じて操作が完了する。読み取り操作は、成功、失敗、エラーの検出、無効なアドレス、無効な長さ等の多くの異なる状態で完了する。
【００５１】
ホスト・プラットホームがフラッシュ装置内の一つの消去単位を消す必要がある場合、ホスト・プラットホームは、図１３に示す「消去要求」パケット１１８を出す。このパケットは、消去フィールド１２０内に「消去」演算コードと、ＡＤＤＲフィールド１２２内にその消去単位の論理アドレスとを含む。このような要求を受け取ると、フラッシュ制御器は、論理アドレスを、フラッシュモジュールの物理アドレス空間の一つに位置する、消去単位の物理アドレスへ変換し、ＭＴＤブロックへ消去コマンドを出す。
【００５２】
消去処理は、概して、読み取りあるいは書き込み処理よりも多くの時間必要とする。したがって、この消去処理が終了したときに、制御器は、ホスト・プラットホームへ、新しい状態パケットの送信準備ができているということを知らせる。それから、制御器は、図１４に示す「消去状態」パケット１２４を送信する。消去状態パケット１２４は、ＡＤＤＲフィールド１２２内に消去単位のアドレスを含むが、これは、ホスト・プラットホームへ消去要求への参照となる情報を提供するものである。操作が完了した状態は、状態フィールド１２６内に提供される。
【００５３】
上記の説明は、単に例として意図したものであり、多くの他の実施例が本発明
の範囲内において可能であることは明らかである。
【図面の簡単な説明】
【００５４】
【図１】背景技術によるＵＳＢトークン・パケット構造の概略的なブロック図である。
【図２】背景技術によるＵＳＢデータ・パケット構造の概略的なブロック図である。
【図３】背景技術によるＵＳＢハンドシェイク・データ・パケット構造の概略的なブロック図である。
【図４】模範的な背景技術によるＵＳＢ装置の概略的なブロック図である。
【図５】本発明によるフラッシュＵＳＢ装置の機能を持つシステムの概略的なブロック図である。
【図６】ＵＳＢフラッシュディスクの概略的なブロック図である。
【図７】フラッシュ識別要求パケットの概略的なブロック図である。
【図８】フラッシュ識別状態パケットの概略的なブロック図である。
【図９】フラッシュ書き込み要求パケットの概略的なブロック図である。
【図１０】フラッシュ書き込み状態パケットの概略的なブロック図である。
【図１１】フラッシュ読み取り要求パケットの概略的なブロック図である。
【図１２】フラッシュ読み取り状態パケットの概略的なブロック図である。
【図１３】フラッシュ消去要求パケットの概略的なブロック図である。
【図１４】フラッシュ消去状態パケットの概略的なブロック図である。
【図１】
2006031733.tif 000002
【図２】
2006031733.tif 000003
【図３】
2006031733.tif 000004
【図４】
2006031733.tif 000005
【図５】
2006031733.tif 000006
【図６】
2006031733.tif 000007
【図７】
2006031733.tif 000008
【図８】
2006031733.tif 000009
【図９】
2006031733.tif 000010
【図１０】
2006031733.tif 000011
【図１１】
2006031733.tif 000012
【図１２】
2006031733.tif 000013
【図１３】
2006031733.tif 000014
【図１４】
2006031733.tif 000015