(57)【要約】      （修正有）【課題】フラッシュメモリデバイスは、ホストプラットホームに静的に装着するか、ＰＣＭＣＩＡインターフェイスを使って動的に着脱しなければならない。双方の実行には、使用の困難性とコスト高等の欠点がある。【解決手段】フラッシュアレイとＳＡＴＡ（シリアルＡＴＡ）コントローラで構成された記憶装置が、ＳＡＴＡ仕様と互換性を持って導入される。この装置は、書込みコマンドと「読取り」コマンドを受け取ることが出来てかつ消去可能で不揮発性であるメモリモジュールを含む。ＳＡＴＡ／フラッシュコントローラは、上述のコンポーネントの読取りと消去のプログラミングなどの共通のフラッシュオペレーションとともに、ＳＡＴＡ機能と互換性とを提供するように構成されている。【選択図】      図１
2004246853.tif 000002
【特許請求の範囲】
【請求項１】
ＳＡＴＡ定義バスに接続するためのＳＡＴＡフラッシュメモリデバイスであって、
（ａ）データ格納のための少なくとも１つのフラッシュメモリモジュールと、
（ｂ）ＳＡＴＡ定義バスに接続し、ＳＡＴＡ定義バスとのパケット送受信を行うためのＳＡＴＡコネクタと、
（ｃ）前記少なくとも１つのフラッシュメモリモジュールを制御し、かつ、ＳＡＴＡ定義バスから受信した少なくとも１つのパケットにしたがって、データが前記少なくとも１つのフラッシュメモリモジュールに対し書込み、読取りを行うよう、前記ＳＡＴＡコネクタを制御するためのＳＡＴＡコントローラと、
（ｄ）前記ＳＡＴＡコネクタに接続し、前記パケットを複数の電気信号として前記ＳＡＴＡコネクタから受信するための電気インターフェースと、
（ｅ）前記電気インターフェースに接続し、前記複数の電気信号を、前記少なくとも１つのフラッシュメモリモジュールに渡される論理信号に変換する論理インターフェースと、
（ｆ）前記論理信号がＳＡＴＡ機能パケットを表す場合に前記論理信号を受信する機能インターフェースであって、前記ＳＡＴＡ機能パケットにしたがってＳＡＴＡコマンドをＳＡＴＡコントローラに送る機能インターフェースと、
（ｇ）前記論理インターフェースに接続し、前記論理信号を受信する、アプリケーションパケットエキストラクタであって、前記論理信号から少なくとも１つのパケットを抽出するアプリケーションパケットエキストラクタと、
（ｈ）前記少なくとも１つのパケットを受信し、前記少なくとも１つのパケットにしたがって、前記ＳＡＴＡコントローラに渡されるコマンドを決定するアプリケーションコマンドインタープリタと、を含むフラッシュメモリデバイス。
【請求項２】
前記コマンドが、データを前記少なくとも１つのフラッシュメモリモジュールに書込むための書込みコマンドであり、前記アドレスが前記データを書込むための論理アドレスであって、前記アドレスリゾルバモジュールが前記論理アドレスを前記少なくとも１つのフラッシュメモリモジュールの物理アドレスにリゾルブさせる、請求項１に記載のフラッシュメモリデバイス。
【請求項３】
前記コマンドが、データを前記少なくとも１つのフラッシュメモリモジュールから読取る読取りコマンドであり、前記アドレスが前記データを読取るための論理アドレスであって、前記アドレスリゾルバモジュールが前記論理アドレスを解釈して、前記少なくとも１つのフラッシュメモリモジュールの物理アドレスにする、請求項１に記載のフラッシュメモリデバイス。
【請求項４】
（ｉ）前記少なくとも１つのフラッシュメモリモジュールのため、エラー検出と修正のルーチンを実行するためのデータハンドラ、
をさらに含む、請求項１に記載のフラッシュメモリデバイス。
【請求項５】
（ｊ）前記フラッシュメモリにアクセスした後、コマンド結果にしたがって、前記フラッシュメモリモジュールの少なくとも１つの状態パケットを、前記ホストプラットホームに送るＳＡＴＡコントローラ、
をさらに含む、請求項４に記載のフラッシュメモリデバイス。
【請求項６】
（ｋ）前記少なくとも１つのフラッシュメモリモジュールの書込みコマンドと物理アドレスとを受信し、前記物理アドレスに対し書込みコマンドを実行するＭＴＤ（メモリテクノロジドライバ）、をさらに含む、請求項５に記載のフラッシュメモリデバイス。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
本発明は、半導体メモリ装置、特に、ＳＡＴＡ（シリアル先端技術アタッチメント、シリアルＡＴＡ）ＰＣバスを用いてホストプラットホームに接続される消去可能な、プログラマブル不揮発性メモリモジュールに関わる。
【０００２】
【従来の技術】
消去可能な、プログラマブル不揮発性メモリモジュール（以下フラッシュメモリ又はフラッシュデバイスと云う）は、情報記憶装置の技術において知られている。フラッシュデバイスには、フラッシュ型の浮動ゲートトランジスタで作成されたフラッシュメモリ、及び、機能と性能の点でフラッシュメモリに類似した不揮発性メモリであって、インサーキットでメモリ内のページを消去できるプログラマブルなオペレーションの付加機能があるもの、が含まれる。このようなフラッシュデバイスの一例は、本明細書中に参照によって組み込まれた米国特許第５，７９９，１６８号明細書に示されている（特許文献１参照）。
【０００３】
フラッシュデバイスには、従来の磁気記憶ディスクに較べ、比較的廉価で必要電力が比較的少ないとの利点がある。しかし、フラッシュデバイスにおいては、前に書き込んだメモリ領域を、前回の領域のページを消去することなく書き換えるのは実用的でない。フラッシュデバイスのこの限界により、現存の典型的オペレーティングシステムプログラムとの互換性がなくなっている。フラッシュデバイス内の以前にデータが書込まれた領域には、先ずその領域を消去しない限り、データを書込むことが出来ないからである。本明細書に参照によって組み込まれた１９９３年３月５日出願の米国特許第５，４０４，４８５号明細書に開示されたようなソフトウエア管理システムでは、フラッシュメモリデバイスのこれら機能を管理できることが必要とされている（特許文献２参照）。
【０００４】
現在のところ、これらフラッシュメモリデバイスには第２の限界がある。それは、ホストプラットホームに静的に装着するか、又はＰＣＭＣＩＡ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ  Ｍｅｍｏｒｙ  Ｃａｒｄ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ａｓｓｏｃｉａｔｉｏｎ  パーソナルコンピュータメモリカード国際協会）インターフェースを用いて動的に着脱しなければならないことである。双方の実行には、使用の困難性とコスト高をはじめとする欠点がある。
【０００５】
【特許文献１】
米国特許第５，７９９，１６８号明細書
【特許文献２】
米国特許第５，４０４，４８５号明細書
【０００６】
【発明が解決しようとする課題】
以下は、ＡＴＡ（アドヴァンスト  テクノロジ  アタッチメント）、ＳＣＳＩ（スモールコンピュータシステムインターフェース）、ＵＳＢ、Ｐ１３９４、及びＳＡＴＡの間のＩＯインターフェースの比較である。
【０００７】
Ｉ／Ｏ（入出力）インターフェースについて考えると、ハードウエアとインターフェースプロトコルの２つの側面を考慮しなければならない。インターフェースハードウエアは、電子又は光を搬送するためのもので、銅線又は光ファイバが通常使用される。また、プロトコルは接続を定義するため使用される。記憶装置用Ｉ／Ｏインターフェースのプロトコルは、主としてＡＴＡ、ＳＣＳＩ、ＳＡＴＡ、及びＰ１３９４である。
【０００８】
（１）ＡＴＡプロトコル：
ＡＴＡプロトコルは、ハードディスク製造業者数社が１９８０年代末に設立したＳＦＦＣによって定義されたものである。ＡＴＡには幾多の飛躍的発展があり、初期のＡＴＡ−１、ＡＴＡ−２（ＥＩＤＥ）、ＡＴＡ−３、ＡＴＡ−４（ＵｌｔｒａＡｔａ３３）、ＡＴＡ−５（ＵｌｔｒａＡＴＡ６６）から最新のＡＴＡ−６（ＵｌｔｒａＡＴＡ１００／１３３）まで発展した。多くの人がＡＴＡとＩＤＥ（Ｉｎｔｅｇｒａｔｅｄ  Ｄｒｉｖｉｎｇ  Ｅｌｅｃｔｒｏｎ）とを混同している。実は、ＩＤＥはハードドライブコントローラをハードドライブボックスに結び付ける考え方に過ぎず、ＡＴＡはインターフェースプロトコルである。しかし、幾つかの製造者はこれらを同じだと考えている。ＡＴＡプロトコルの最良のものは価格効率が良い。しかし、ＡＴＡのハードドライブ管理は、未だに多くをＣＰＵに依存しているので、ＣＰＵに負担がかかる。
【０００９】
（２）ＳＣＳＩプロトコル
バスコントローラは、ＣＰＵの作業負荷を分担するために多くの仕事を実行する。したがって、ＳＣＳＩハードドライブは、マルチタスクサーバー及びＲＡＩＤレゾリューションプロジェクト用に好まれている。ＡＴＡハードドライブは、単一ユーザ環境に適している。
【００１０】
ＳＣＳＩは、取り囲む接続数、データ転送速度、安定性などの点でＩＤＥより良好である。初期のＳＣＳＩ−１の５ＭＢ／ｓからＦａｓｔ  ＳＣＳＩの１０ＭＢ／ｓ、Ｕｌｔｒａ  ＳＣＳＩの２０ＭＢ／ｓ、Ｕｌｔｒａ  Ｗｉｄｅ  ＳＣＳＩの４０ＭＢ／ｓ、Ｕｌｔｒａ２  ＳＣＳＩの８０ＭＢ／ｓ、から現在のＵｌｔｒａ１６０の１６０ＭＢ／ｓまで、ＳＣＳＩの接続数とデータ転送速度は、ある期間毎に倍増して来た。現在、ＩＤＥのＡＴＡ−１３３がリリースされているが、ＳＣＳＩと競合するには未だ十分ではない。しかし、不利な点は減少傾向にある。加えて、ＳＣＳＩはハイエンドサーバとワークステーション用にはより安定しているが、一般用途にはコストがかかる。ＩＤＥは、文書の編集とインターネット利用に十分な能力を有しているだけである。
【００１１】
（３）ＵＳＢ及びＰ１３９４
これらはＰＣインターフェース用に拡張するのが容易でありコストも低い。速度は、ＵＳＢ  ｖ１．１で１２ＭＢ／ｓ、ＵＳＢ  ｖ２．０で４８０ＭＢ／ｓで、Ｐ１３９４は４００ＭＢ／ｓである。
【００１２】
（４）ＳＡＴＡ
ＡＴＡ、ＳＣＳＩ、ＰＣＩ  ＢＵＳ、及びシリアルＢＵＳの考え方を組み合わせて、データ転送速度は、バージョン１．０では１．５ＧＢ／ｓ、バージョン２．０では３．０ＧＢ／ｓ、バージョン３．０では６．０ＧＢ／ｓである。これは、低価格及び高速であることから、フラッシュメモリデバイス用に極めて良い記憶装置である。
【００１３】
ＳＡＴＡが定義する仕様は、確実にＰＡＴＡ（パラレルＡＴＡ）の機能を代替することが出来る。これは、ソフトウエアの完全な互換性の他に、以下の利点を有する。
●  ボックス内プライマリ・ストレージ接続（ボックス外でない）。
●  ＡＴＡに対して完全にＳＷ（ソフトウエア）トランスペアレント（移行が容易）。
●  ホストとデバイス双方のピン数が少ない（２対）。
●  好適な（低い）電圧。
●  より低価格のデバイス構成をサポート。
●  同等のＡＴＡより性能が良く（データ速度、キューイング、オーバーラップ）、拡張性が高い。
●  配線／コネクタが遙かに良い（細く、柔軟性がある）。
●  効率のよい配電を含む。
●  ソフトウエア依存性がなく、移行が比較的容易。
●  携帯用途に適した電力管理と電力消費。
●  ロードマップスパンニング〜１０年。
●  ケーブル長がＡＴＡに匹敵（＜１ｍ）。
●  転送速度が最速のＡＴＡを超え（〜１５０ＭＢ／ｓ）、より高い拡張性を持つ。
●  プロトコルが簡単で、全体の性能に影響することが稀れ。
●  ピアツーピア転送サポートがない（対ホスト及びホストからのみ）。
●  導入時、同等のパラレルＡＴＡソリューションに匹敵するコスト競争力がある（ホスト＋デバイス＋ケーブル）。
●  記憶装置が中心（カメラ／スキャナ／プリンタ  無し）。
●  インストール／構成が容易（プラグ／プレイ、ジャンパー無し、外部ターミネータ無し）。
●  単一ホスト（マルチイニシエータ、又はホスト／ホストのネットワーク無し）。
【００１４】
したがって、ＳＡＴＡインターフェースフラッシュメモリデバイスは、従来のＰＡＴＡ（元々のＡＴＡであるパラレルＡＴＡ）と置き換わる。ＳＡＴＡ規格にしたがって確立されたシステムには、個別に定義された３つの領域、即ち相互接続ＳＡＴＡと、ＳＡＴＡデバイスと、ＳＡＴＡホストプラットホームと、がある。相互接続ＳＡＴＡは、ＳＡＴＡデバイスの接続対象であり、ＳＡＴＡプラットホームと連絡する。関連要素には、ＳＡＴＡデバイスとホストプラットホームとの間の接続モデルのバス技術が含まれる。
【００１５】
【課題を解決するための手段】
本発明は、１つ以上のフラッシュモジュールを含むフラッシュメモリデバイスを提供する。このフラッシュモジュールでは、ＳＡＴＡ定義電気インターフェースとＳＡＴＡ定義論理インターフェースを有するＡＳＩＣ又はコントローラのアドレス空間にフラッシュメモリがマップされる。このコントローラ／ＡＳＩＣ（以下「コントローラ」と呼ぶ）は、ＳＡＴＡ規格にしたがってＳＡＴＡの機能をサポートしており、それによりＳＡＴＡパイプを通したＳＡＴＡ端点とのデータの送受信と同時に、ＳＡＴＡバス上へのエニュメレーション（エミュレーション）をサポートする。このコントローラはまた、ホストコントローラからのコマンド及びデータのパケットの処理と同時に、フラッシュメモリデバイスの機能と制御をもサポートする。ホストコントローラは、標準または専用の幾つかの可能なプロトコルのうち１つを使用し、実行すべき次のコマンドをＳＡＴＡフラッシュコントローラに対して信号で知らせる。こうして、全装置が、動的に着脱可能なホストプラットホーム用不揮発性記憶装置として働く。
【００１６】
ＳＡＴＡフラッシュメモリデバイスは、ＳＡＴＡ定義バスに対する接続を作る。ＳＡＴＡ定義バスは、次を含む：
データ格納のための少なくとも１つのフラッシュメモリモジュール、
ＳＡＴＡ定義バスに接続し、ＳＡＴＡ定義バスとのパケット送受信を行うためのＳＡＴＡコネクタ、
前記少なくとも１つのフラッシュメモリモジュールを制御し、かつ、ＳＡＴＡ定義バスから受信した少なくとも１つのパケットにしたがって、データが前記少なくとも１つのフラッシュメモリモジュールに対し書込み、読取りを行うよう、前記ＳＡＴＡコネクタを制御するためのＳＡＴＡコントローラ、
前記ＳＡＴＡコネクタに接続し、前記パケットを複数の電気信号として前記ＳＡＴＡコネクタから受信するための電子式インターフェース、
前記電子式インターフェースに接続し、前記複数の電気信号を、前記少なくとも１つのフラッシュメモリモジュールに渡される論理信号に変換する論理インターフェース、
前記論理信号がＳＡＴＡ機能パケットを表す場合に前記論理信号を受信する機能インターフェースであって、前記ＳＡＴＡ機能パケットにしたがってＳＡＴＡコマンドをＳＡＴＡコントローラに送る機能インターフェース、
前記論理インターフェースに対し接続し、前記論理信号を受信する、アプリケーションパケットエキストラクタであって、前記論理信号から少なくとも１つのパケットを抽出するアプリケーションパケットエキストラクタ、及び
前記少なくとも１つのパケットを受信し、前記少なくとも１つのパケットにしたがって、前記ＳＡＴＡコントローラに渡されるコマンドを決定するアプリケーションコマンドインタープリタ。
【００１７】
また、本発明は以下のものも提供する。
【００１８】
ＳＡＴＡ定義バスに接続するためのＳＡＴＡフラッシュメモリデバイスであって、データ格納のための少なくとも１つのフラッシュメモリモジュールと、ＳＡＴＡ定義バスに接続し、ＳＡＴＡ定義バスとのパケット送受信を行うためのＳＡＴＡコネクタと、前記少なくとも１つのフラッシュメモリモジュールを制御し、かつ、ＳＡＴＡ定義バスから受信した少なくとも１つのパケットにしたがって、データが前記少なくとも１つのフラッシュメモリモジュールに対し書込み、読取りを行うよう、前記ＳＡＴＡコネクタを制御するためのＳＡＴＡコントローラと、前記ＳＡＴＡコネクタに接続し、前記パケットを複数の電気信号として前記ＳＡＴＡコネクタから受信するための電気インターフェースと、前記電気インターフェースに接続し、前記複数の電気信号を、前記少なくとも１つのフラッシュメモリモジュールに渡される論理信号に変換する論理インターフェースと、前記論理信号がＳＡＴＡ機能パケットを表す場合に前記論理信号を受信する機能インターフェースであって、前記ＳＡＴＡ機能パケットにしたがってＳＡＴＡコマンドをＳＡＴＡコントローラに送る機能インターフェースと、前記論理インターフェースに接続し、前記論理信号を受信する、アプリケーションパケットエキストラクタであって、前記論理信号から少なくとも１つのパケットを抽出するアプリケーションパケットエキストラクタと、前記少なくとも１つのパケットを受信し、前記少なくとも１つのパケットにしたがって、前記ＳＡＴＡコントローラに渡されるコマンドを決定するアプリケーションコマンドインタープリタと、を含むフラッシュメモリデバイス。
【００１９】
フラッシュメモリデバイスはさらにアドレスリゾルバモジュールを含み、前記コマンドが、データを前記少なくとも１つのフラッシュメモリモジュールに書込むための書込みコマンドであり、前記アドレスが前記データを書込むための論理アドレスであって、前記アドレスリゾルバモジュールが前記論理アドレスを前記少なくとも１つのフラッシュメモリモジュールの物理アドレスにリゾルブさせる、上記のフラッシュメモリデバイス。
【００２０】
前記コマンドが、データを前記少なくとも１つのフラッシュメモリモジュールから読取る読取りコマンドであり、前記アドレスが前記データを読取るための論理アドレスであって、前記アドレスリゾルバモジュールが前記論理アドレスを解釈して、前記少なくとも１つのフラッシュメモリモジュールの物理アドレスにする、上記のフラッシュメモリデバイス。
【００２１】
前記少なくとも１つのフラッシュメモリモジュールのため、エラー検出と修正のルーチンを実行するためのデータハンドラ、をさらに含む、上記のフラッシュメモリデバイス。
【００２２】
前記フラッシュメモリにアクセスした後、コマンド結果にしたがって、前記フラッシュメモリモジュールの少なくとも１つの状態パケットを、前記ホストプラットホームに送るＳＡＴＡコントローラ、をさらに含む、上記のフラッシュメモリデバイス。
【００２３】
前記少なくとも１つのフラッシュメモリモジュールの書込みコマンドと物理アドレスとを受信し、前記物理アドレスに対し書込みコマンドを実行するＭＴＤ（メモリテクノロジドライバ）、をさらに含む、上記のフラッシュメモリデバイス。
【００２４】
以下、用語「コンピュータ」には、これらに限定されるものではないが、ＤＯＳ、Ｗｉｎｄｏｗｓ（登録商標）、ＯＳ／２（登録商標）、又はＬｉｎｕｘ（登録商標）などのオペレーティングシステムを有するパソコン（ＰＣ）、Ｍａｃｈｉｎｔｏｓｈ（登録商標）コンピュータ、ＪＡＶＡ（登録商標）−ＯＳをオペレーティングシステムとして有するコンピュータ、及びＳｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ（登録商標）やＳｉｌｉｃｏｎ  Ｇｒａｐｈｉｃｓ（登録商標）のコンピュータやＳｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ（登録商標）のＡＩＸ（登録商標）、又はＳＯＬＡＲＩＳ（登録商標）などＵＮＩＸ（登録商標）オペレーティングシステムの変形を有する他のコンピュータなどのグラフィックワークステーション、もしくは携帯電話、小型の携帯用端末及び小型コンピュータ装置のための組み込みシステム用のＷｉｎｄｏｗｓ（登録商標）ＣＥのようなオペレーティングシステムなど、任意の他の既知又は利用可能なオペレーティングシステムを有するその他のコンピュータ、及びネットワークに接続することの出来る任意の他のコンピュータ装置が含まれる。以下、用語「Ｗｉｎｄｏｗｓ（登録商標）」には、限定的でなく、Ｗｉｎｄｏｗｓ（登録商標）９５、Ｗｉｎｄｏｗｓ（登録商標）３．Ｘ（Ｘは「１」などの整数）、Ｗｉｎｄｏｗｓ（登録商標）ＮＴ、Ｗｉｎｄｏｗｓ（登録商標）９８、Ｗｉｎｄｏｗｓ（登録商標）２０００、Ｗｉｎｄｏｗｓ（登録商標）ＸＰ、Ｗｉｎｄｏｗｓ（登録商標）ＭＥ、Ｗｉｎｄｏｗｓ（登録商標）ＣＥ、及びＭｉｃｒｏｓｏｆｔ  Ｉｎｃ．（米国ワシントン州シアトル）によるこれらオペレーティングシステムのアップグレード版が含まれる。
【００２５】
【発明の実施の形態】
本発明は、１つ以上のフラッシュモジュールを含むフラッシュメモリデバイスを提供する。このフラッシュモジュールでは、ＳＡＴＡ定義電気インターフェースとＳＡＴＡ定義論理インターフェースを有するＡＳＩＣ又はコントローラのアドレス空間にフラッシュメモリがマップされる。このコントローラ／ＡＳＩＣ（以下「コントローラ」と呼ぶ）は、ＳＡＴＡ規格にしたがってＳＡＴＡの機能をサポートしており、それによりＳＡＴＡパイプを通したＳＡＴＡ端点とのデータの送受信と同時に、ＳＡＴＡバス上へのエニュメレーション（エミュレーション）をサポートする。このコントローラはまた、ホストコントローラからのコマンド及びデータパケットの処理と同時に、フラッシュメモリデバイスの機能と制御をもサポートする。ホストコントローラは、標準または専用の幾つかの可能なプロトコルのうち１つを使用し、実行すべき次のコマンドをＳＡＴＡフラッシュコントローラに対して信号で知らせる。こうして、全装置が、動的に着脱可能なホストプラットホーム用不揮発性記憶装置として働く。
【００２６】
上記の記述は、単なる例として役立つように意図されたものであり、本発明の思想と範囲の中で他の多くの実施例が可能である。
【００２７】
ここで、図面を参照する。図１は、ＳＡＴＡフラッシュメモリディスク２３０の内部機能の詳細を示す。ＳＡＴＡフラッシュメモリディスク２３０の機能要素の構造をさらに詳細に記述すると、ＳＡＴＡフラッシュメモリディスク２３０は、ＳＡＴＡ論理インターフェース１１２とフラッシュメモリ論理インターフェース１２０を含み、ＳＡＴＡフラッシュデバイスコネクタ２３２が電気信号をＳＡＴＡケーブル２２０から受信する。ＳＡＴＡケーブルは電気信号を主コントローラから伝送する。これらの電気信号は、後でコネクタ２１４に送られる。ＳＡＴＡ定義バスは、パケットがＳＡＴＡフラッシュメモリディスク２３０に送られるよう、ＳＡＴＡフレームを伝送する。
【００２８】
新しい状態パケットが利用可能となったとき、ホストプラットホーム２１０は、ＳＡＴＡフラッシュメモリディスク２３０の状態の変化を確認して、ＳＡＴＡフラッシュメモリディスク２３０から状態パケットを読取る。ＳＡＴＡフラッシュメモリディスク２３０は、ホストプラットホーム２１０からデバイス２３０に発行される各種コマンドの結果を送るこれら状態パケットを使うことが出来る。例えば、「読取り」コマンドの状態パケットは、利用可能な状態ワード（「成功」、「エラー」、「無効アドレス」など）のうち１つを含み、ホストプラットホーム２１０が「読取り」コマンドの結果を判定出来るようにする。同様に、「消去」コマンドの状態パケットは、消去処理が完了したか否かを識別するための状態を含む。ＳＡＴＡフラッシュメモリディスク２３０は、ホストプラットホーム２１０に書込みコマンドの結果について知らせるために、書込み状態パケットを用いる。書き込みコマンドは、例えば、コマンドが成功したかエラーを生じたか否か、及びＳＡＴＡフラッシュメモリディスク２３０がホストプラットホーム２１０からの更なる書込みコマンドの要求に対して準備を整えたか否かなどである。
【００２９】
図２は、本発明にかかるフラッシュメモリディスクとシステムの主なエレメントのブロック図である。図に示すように、フラッシュメモリシステムは、ＳＡＴＡフラッシュメモリディスク２３０に対して不揮発性記憶オペレーションとなるホストプラットホーム２１０を含む。
【００３０】
本発明によれば、ホストプラットホーム２１０は、ＳＡＴＡケーブル２２０を用いてＳＡＴＡフラッシュメモリディスク２３０に接続されており、このホストプラットホーム２１０は、ＳＡＴＡメインコネクタ２１４を用いてＳＡＴＡケーブル２２０に接続されている。ＳＡＴＡフラッシュメモリディスク２３０がＳＡＴＡフラッシュデバイスコネクタ２３２を用いてＳＡＴＡケーブル２２０に接続される際、ホストプラットホーム２１０の１つの特徴は、ＳＡＴＡバス上のＳＡＴＡ転送のすべてを制御し管理するため使用されるＳＡＴＡメインコントローラ２１２である。
【００３１】
ＳＡＴＡフラッシュメモリディスク２３０の１つの特徴は、ＳＡＴＡフラッシュデバイスコントローラ２３４であって、これは、ＳＡＴＡフラッシュメモリディスク２３０のその他のエレメントを制御するのに用いられ、ＳＡＴＡフラッシュメモリディスク２３０とＳＡＴＡバスとの間のインターフェースを提供する。
【００３２】
ＳＡＴＡフラッシュメモリディスク２３０がホストプラットホーム２１０に接続されときはいつでも、標準ＳＡＴＡ計数処理が開始される。この計数処理においては、ＳＡＴＡフラッシュメモリディスク２３０の通信モード及びＳＡＴＡフラッシュメモリディスク２３０は、ホストプラットホーム２１０によって設定される。ＳＡＴＡフラッシュメモリディスク２３０の設定方法は多数あるが、本発明は、限定する目的ではなく、明確にする目的で、詳細を説明するのに以下の方法を用いる。この方法におけるホストプラットホーム２１０は、一端を用いてコマンドとリクエストをＳＡＴＡフラッシュメモリディスク２３０に送る。ホストプラットホーム２１０は、他端を用いて、状態変化に関しＳＡＴＡフラッシュメモリディスク２３０に問い合わせを行い、関連するパケットが受信待ちであれば、これらのパケットを受信する。
【００３３】
ホストプラットホーム２１０は、ＳＡＴＡメインコントローラ２１２にリクエストパケットを送って、ＳＡＴＡフラッシュメモリディスク２３０にサービスを要求する。ＳＡＴＡメインコントローラ２１２は、パケットをＳＡＴＡケーブル上に移送する。ＳＡＴＡフラッシュメモリディスク２３０がリクエストを出した側のデバイスであるときは、これらのリクエストはＳＡＴＡフラッシュデバイスコントローラ２３４に受信され、次いでＳＡＴＡフラッシュデバイスコントローラ２３４は、フラッシュメモリコンポーネント２３６に対し「読取り」「書込み」「消去」などの各種オペレーションを実行するか、又はデバイス計数処理及び設定などの基本的ＳＡＴＡ機能をサポートする。ＳＡＴＡフラッシュデバイスコントローラ２３４は、コントロールライン２４２ａを用いて、またチップ・イネーブル、「リード」、「ライト」信号など制御のための他の各種信号を用いて、フラッシュメモリコンポーネント２３６の電力を制御する。フラッシュメモリコンポーネント２３６はまた、「読取り」「書込み」「消去」コマンドをフラッシュメモリコンポーネント２３６上で実行するコマンドを渡すアドレス／データバス２４２ｂを用いて、ＳＡＴＡフラッシュデバイスコントローラ２３４に接続される。フラッシュメモリコンポーネント２３６の製造者によって定義されるアドレスとデータもまた同様である。
【００３４】
ＳＡＴＡコントローラ２３４は、さらに２つのブロック、即ちＳＡＴＡインターフェースロジック１１２及びフラッシュインターフェースロジック１２０、に分割することが出来る。図１を参照されたい。ここで、ＳＡＴＡインターフェースロジック１１２は完全にＳＡＴＡ規格にしたがっており、シリアル高速インターフェースとなっている。第１世代の速度は１．５Ｇｂ／ｓである。第２世代の規格は２００３年に発表され、その速度は３．０Ｇｂ／ｓまで向上する。ＳＡＴＡインターフェースロジック１１２の構造体は、入力信号に関してパラレル／シリアル化を実行し、アナログシリアル電気信号を送信／受信する機能を有する電気インターフェースとなる物理レイヤ１１４と、主機能がエンコード／デコード、ＣＲＣ計算、信号フレームの送受信であるリンクレイヤと、リンクレイヤからコマンドを受信してＦＩＳ（フレーム情報構造体：Ｆｒａｍｅ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｔｒｕｃｔｕｒｅ）を生成し、リンクレイヤ１１６とともに移送するトランスポートレイヤ１１８と、を含む。
【００３５】
フラッシュインターフェースロジック１２０は、主として、ブロック領域の読取りや書込みなど、ホストプラットホームからのコマンドを解釈し、アドレスをフラッシュメモリコンポーネント１３０に応じたアドレスに変換する（つまりアドレストランスレータ１２８によるリゾルブ）ため用いられ、読取り／書込みコマンドはパラメータに変換されて状態コントロール１２６のブロックに送信される。続いて、ＤＭＡエンジン１２４が起動されて、データが転送され始め、終わりまで転送される。これは上層レイヤからコマンドを説明するものであり、アドレスの変換は回路設計の構成に応じて内蔵マイクロプロセッサや、別のマイクロプロセッサにより、または、回路設計構造に依存するハードウエアデコーディングにより行うことが出来る。
【００３６】
実際のメモリユニットは、フラッシュメモリコンポーネント１３０である。高転送速度のＳＡＴＡに適合させるため、複数のフラッシュメモリコンポーネント１３０を構成して多重バイトセットデータを得、転送速度を増加することが出来る。時には、通常のハードウエアドライブの転送速度にさえも匹敵することが出来る。
【００３７】
ここで図３を参照されたい。ＳＡＴＡはソフトウエアでパラレルＡＴＡ（ＰＡＴＡ）と完全に互換性があるので、ＳＡＴＡのレジスタ構造は、ＰＡＴＡのレジスタ構造と一致し、コマンドと関連パラメータを含む。これらコマンドと関連パラメータは、ＳＡＴＡフラッシュメモリディスクに入力された後、図１のＡＴＡコマンドインタープリタ１２２により処理される。コマンドが完了すると、ＳＡＴＡフラッシュメモリディスクは、状態バイトセットを発行し、コマンドと関連パラメータがホストプラットホーム２１０に戻される。
【００３８】
図４は、パワーアップ状態の下で、ＳＡＴＡフラッシュメモリディスク２３０がプラットホーム２１０に送り戻すパラメータを示す。これは、図６に示すＡＴＡＰＩデバイスのパラメータとは異なる。ＳＡＴＡフラッシュメモリディスク２３０は、ＡＴＡＰデータ型ではなく、ＡＴＡバイト型として定義されているからである。
【００３９】
図５は、ＳＡＴＡフラッシュメモリディスクが再度パワーアップされ、そしてホストプラットホームに戻し損ねた（失敗した）ときの値を記述する。
【００４０】
図６は、ＳＡＴＡデータ転送の基本単位の構造体を説明する。実際のデータは、可変長のフレーム情報構造体の中に格納される。各フレームには１組のＣＲＣエラー検出コードがあって、転送の両端におけるデータを比較して、データ修正を確実にする。
【００４１】
図７から１１は、データを転送してコマンドを完了するため、ホストプラットホームのコマンドがどのように数個のＳＡＴＡフレームに分割されるかについての詳細を記述する。以下に好適実施例を示す。
【００４２】
（１）ホストプラットホーム２１０が、ＳＡＴＡフラッシュメモリディスク２３０へのデータ書込みを要求するために、ＰＩＯ「読取り」コマンドを取り込む。（１−ａ）ホストプラットホーム２１０は、図７に示すレジスタＦＩＳ＜ホストプラットホーム−デバイス＞を送り出し、レジスタのデータをＳＡＴＡフラッシュメモリディスク２３０に送る。
（１−ｂ）ＳＡＴＡフラッシュメモリディスク２３０のデータ受け入れ準備が整うと、ＳＡＴＡフラッシュメモリディスク２３０は図９に示すＰＩＯセットアップＦＩＳ＜デバイス−ホストプラットホーム２１０＞を送り出す。
（１−ｃ）ホストプラットホーム２１０は、図１０に示すデータＦＩＳを送り出し、データをフラッシュメモリディスク２３０に送る。
（１−ｄ）最後に、ＳＡＴＡフラッシュメモリディスク２３０は書込み作業を完了し、図８に示すようにレジスタＦＩＳ＜デバイス−ホストプラットホーム２１０＞を送って、リクエストの完了を知らせる。
【００４３】
（２）ＤＭＡ読取りが、ＳＡＴＡフラッシュメモリディスク２３０への情報書込みを要求するために、ＰＩＯ「読取り」コマンドを送り出す。
（２−ａ）ＤＭＡ読取りは、図７に示すＦＩＳを送り出し、レジスタをＳＡＴＡフラッシュメモリディスク２３０に送る。
（２−ｂ）ＳＡＴＡデバイスのデータ受け入れ準備が整ったとき、ＳＡＴＡデバイスは、図１１に示すＤＭＡ起動ＦＩＳを送り出して、ＤＭＡに読取ることを知らせる。
（２−ｃ）ＤＭＡ読取りは、図１０に示すデータＦＩＳを送り出し、データをＳＡＴＡフラッシュメモリディスク２３０に送る。
（２−ｄ）最後に、ＳＡＴＡフラッシュメモリディスク２３０が書込み作業を完了し、図８に示すレジスタＦＩＳ＜デバイス−ホストプラットホーム２１０＞を送って、リクエストの完了をＤＭＡに知らせる。
【００４４】
上述されたプロトコルとアーキテクチャを使って、ホストプラットホーム２１０は、レギュラメモリマップ済み又はＩ／Ｏマップ済みの任意のフラッシュメモリデバイスを用いて実行可能なアプリケーションは何でも、任意選択で実行することが出来る。例えば、ホストプラットホーム２１０は、各アプリケーションに対し、先述の米国特許５，４０４，４８５号に開示されたような磁気記憶媒体「ハードディスク」ドライブのような、標準ブロックデバイスのインターフェースを提供することが出来る。
【００４５】
本発明にしたがう一般的なデバイスとシステムのオペレーションは、次のようである。ＳＡＴＡが初めてホストシステムに接続されたとき、ＳＡＴＡメインコントローラがＳＡＴＡバス上でＳＡＴＡフラッシュデバイスにアドレスを割り当て、ＳＡＴＡ仕様に記述されたようにリソースを割り当てる。ＳＡＴＡフラッシュデバイスは、実質的にホストプラットホームにこれらリソースの割り当てを要求し、ホストプラットホームに、どれだけのリソースが必要かを知らせなければならない。したがって、ＳＡＴＡプラットホームによってリソースが別のデバイスに設定されているときは、ＳＡＴＡフラッシュメモリディスクは、任意選択で速度の遅い任意のデバイスをサポートすることが出来る。
【図面の簡単な説明】
【図１】ＳＡＴＡフラッシュメモリデバイスの詳細な機能ブロック図である。
【図２】ＳＡＴＡフラッシュメモリデバイスの付いたコンピュータホストシステムを示す図である。
【図３】シャドウレジスタブロックのレジスタを示す図である。
【図４】デバイス初期化成功のときのパワーアップシャドウレジスタブロックを示す図である。
【図５】デバイス初期化失敗のときのパワーアップシャドウレジスタブロックを示す図である。
【図６】フレーム構造体を示す図である。
【図７】レジスタＦＩＳ（フレーム情報構造体）＜ホスト−デバイス＞を示す図である。
【図８】レジスタＦＩＳ＜デバイス−ホスト＞を示す図である。
【図９】ＰＩＯ設定ＦＩＳ＜デバイス−ホスト＞を示す図である。
【図１０】データＦＩＳ＜ホスト−デバイス＞又は＜デバイス−ホスト＞を示す図である。
【図１１】ＤＭＡ起動ＦＩＳ＜デバイス−ホスト＞を示す図である。
【図１】
2004246853.tif 000003
【図２】
2004246853.tif 000004
【図３】
2004246853.tif 000005
【図４】
2004246853.tif 000006
【図５】
2004246853.tif 000007
【図６】
2004246853.tif 000008
【図７】
2004246853.tif 000009
【図８】
2004246853.tif 000010
【図９】
2004246853.tif 000011
【図１０】
2004246853.tif 000012
【図１１】
2004246853.tif 000013