(57)【特許請求の範囲】
【請求項１】
メモリシステムがバスタイムアウトを回避する方法であって、
メモリシステムがアプリケーションを実行するのに要求される期間がメモリシステムに対するバスタイムアウト時限を超過するかどうかを判断するステップと、
その期間がメモリシステムに対するバスタイムアウト時限を超過したと判断された場合には、
バスタイムアウトを出来させずにアプリケーションを実行するにあたって必要なダミーデータブロック数を判断するステップと、
判断された数についてメモリシステムバスを介してコンピュータシステムとやり取りするステップと、
メモリシステムでアプリケーションの実行期間を監視するステップと、
監視された期間がバスタイムアウト時限を超過する前に、メモリシステムがメモリシステムとコンピュータシステムとの間でダミーデータブロックをやり取りするためのレディ状態にあることをコンピュータシステムに指示するステップと、
を含む方法。
【請求項２】
請求項１記載の方法において、
判断されたダミーデータブロック数についてのクエリをコンピュータシステムから受信するステップをさらに含む方法。
【請求項３】
請求項１記載の方法において、
アプリケーションを実行するにあたって必要なダミーデータブロック数を判断するステップは、メモリシステムの書き込みバスタイムアウト時限を、メモリシステムでアプリケーションを実行するのにかかる最大時間に分けることを含む方法。
【請求項４】
請求項１記載の方法において、
アプリケーションを実行するにあたって必要なダミーデータブロック数を判断するステップは、メモリシステムの読み出しバスタイムアウト時限を、メモリシステムでアプリケーションを実行するのにかかる最大時間に分けることを含む方法。
【請求項５】
請求項１記載の方法において、
アプリケーションを実行するための期間を監視するステップと、
バスタイムアウト時限より前の時間にメモリシステムのコントローラに合図するステップをさらに含む方法。
【請求項６】
請求項１記載の方法において、
アプリケーションは、著作権で保護されたコンテンツの自由な配布を防ぐデジタルコンテンツ保護セキュリティプロセスを含む方法。
【請求項７】
請求項１記載の方法において、
バスタイムアウト時限は、パーソナルコンピュータメモリカード国際協会（ＰＣＭＣＩＡ）、コンパクトフラッシュ（ＣＦ）、マルチメディアカード（ＭＭＣ）、およびセキュアデジタル（ＳＤ）仕様のいずれか１つのバスタイムアウト時限を含む方法。
【請求項８】
請求項１記載の方法において、
ダミーデータブロックは、無視すべきブロックとしてダミーデータブロックを識別する署名を含む方法。
【請求項９】
コンピュータシステムとメモリシステムとの間でバスタイムアウトを回避する方法であって、
処理操作を完了するための期間がメモリシステムのバスタイムアウト時限を超過するかどうかを判断するステップと、
処理操作のタイミングをはかるステップと、
バスタイムアウト時限が満了する前で、かつ処理操作が完了する前に、メモリシステムバスがメモリシステムとコンピュータシステムとの間でダミーデータブロックをやり取りするためのレディ状態にあることをコンピュータシステムに指示するステップと、
を含む方法。
【請求項１０】
請求項９記載の方法において、
メモリシステムバスがメモリシステムとコンピュータシステムとの間でダミーデータブロックをやり取りするためのレディ状態にあることをコンピュータシステムに指示するステップは、バスタイムアウト時限を回避するためにコンピュータシステムとメモリシステムとの間でやり取りすべきものであるデータブロック数を指示するクエリをコンピュータシステムへ送信することを含む方法。
【請求項１１】
請求項１０記載の方法において、
ダミーデータブロック数は、期間に割り振られる方法。
【請求項１２】
請求項１０記載の方法において、
処理操作の実行を完了するための期間にバスタイムアウト時限を分けることによってダミーデータブロック数を判断する方法。
【請求項１３】
請求項９記載の方法において、
バスタイムアウト時限は、パーソナルコンピュータメモリカード国際協会（ＰＣＭＣＩＡ）、コンパクトフラッシュ（ＣＦ）、マルチメディアカード（ＭＭＣ）、およびセキュアデジタル（ＳＤ）仕様のいずれか１つのバス読み出しタイムアウト時限である方法。
【請求項１４】
メモリシステムであって、
メモリシステムバスと、
メモリメモリシステムバスとやり取りするコントローラであって、
メモリシステムがアプリケーションを実行するのに要求される期間がメモリシステムに対するバスタイムアウト時限を超過するかどうかを判断し、その期間がメモリシステムに対するバスタイムアウト時限を超過したとコントローラが判断した場合には、
バスタイムアウトを出来させずにアプリケーションを実行するにあたって必要なダミーデータブロック数を判断し、
判断された数についてメモリシステムバスを介してコンピュータシステムとやり取りし、
コントーラでアプリケーションの実行期間を監視し、かつ
監視された期間がバスタイムアウト時限を超過する前に、メモリシステムバスがメモリシステムとコンピュータシステムとの間でダミーデータブロックをやり取りするためのレディ状態にあることをコンピュータシステムに指示するコントローラと、
を備えるメモリシステム。
【請求項１５】
請求項１４記載のメモリシステムにおいて、
コントローラは、判断されたダミーデータブロック数についてのクエリをコンピュータシステムから受信するメモリシステム。
【請求項１６】
請求項１４記載のメモリシステムにおいて、
コントローラは、メモリシステムの書き込みバスタイムアウト時限を、コントローラでアプリケーションを実行するのにかかる最大時間に分けることによって必要なダミーデータブロック数を判断するメモリシステム。
【請求項１７】
請求項１４記載のメモリシステムにおいて、
アプリケーションの実行期間を監視し、バスタイムアウト時限より前の時間にコントローラに合図するタイマーをさらに備えるメモリシステム。
【請求項１８】
請求項１４記載のメモリシステムにおいて、
アプリケーションは、著作権で保護されたコンテンツの自由な配布を防ぐデジタルコンテンツ保護セキュリティプロセスを含むメモリシステム。
【請求項１９】
請求項１４記載のメモリシステムにおいて、
コントローラは、メモリシステム仕様の読み出しバスタイムアウト時限を、メモリシステムでアプリケーションを実行するのにかかる最大時間に分けることによって必要なダミーデータブロック数を判断するメモリシステム。
【請求項２０】
請求項１４記載のメモリシステムにおいて、
バスタイムアウト時限は、パーソナルコンピュータメモリカード国際協会（ＰＣＭＣＩＡ）、コンパクトフラッシュ（ＣＦ）、マルチメディアカード（ＭＭＣ）、およびセキュアデジタル（ＳＤ）仕様のいずれか１つのバスタイムアウト時限を含むメモリシステム。
【請求項２１】
請求項１４記載のメモリシステムにおいて、
ダミーデータブロックは、無視すべきブロックとしてダミーデータブロックを識別する署名を含むメモリシステム。
【請求項２２】
コンピュータシステムとメモリシステムとの間でバスタイムアウトを回避するシステムであって、
メモリシステムバスと、
メモリシステムバスとやり取りするコントローラであって、処理操作を完了するための期間がメモリシステムのバスタイムアウト時限を超過するかどうかを判断するコントローラと、
処理操作のタイミングをはかり、バスタイムアウト時限が満了する前で、かつ処理操作が完了するより前の時間にコントローラと信号のやり取りをするタイマーと、を備え、
コントローラは、信号を受信すると、処理操作が完了する前にメモリシステムバスがメモリシステムとコンピュータシステムとの間でダミーデータブロックをやり取りするためのレディ状態にあることをコンピュータシステムに指示するメモリシステム。
【請求項２３】
請求項２２記載のメモリシステムにおいて、
コントローラは、バスタイムアウト時限を回避するためにコンピュータシステムとメモリシステムとの間でやり取りすべきものであるデータブロック数を指示するクエリをコンピュータシステムへ送信するメモリシステム。
【請求項２４】
請求項２３記載のメモリシステムにおいて、
ダミーデータブロック数は、期間に割り振られるメモリシステム。
【請求項２５】
請求項２３記載のメモリシステムにおいて、
処理操作の実行を完了するための期間にバスタイムアウト時限を分けることによってダミーデータブロック数を判断するメモリシステム。
【請求項２６】
請求項２３記載のメモリシステムにおいて、
バスタイムアウト時限は、パーソナルコンピュータメモリカード国際協会（ＰＣＭＣＩＡ）、コンパクトフラッシュ（ＣＦ）、マルチメディアカード（ＭＭＣ）、およびセキュアデジタル（ＳＤ）仕様のいずれか１つのバス読み出しタイムアウト時限である方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、可搬型電子モジュールへのインターフェイスに関し、より具体的には、堅固に既定されたインターフェイスへ機能を追加するアーキテクチャに関する。
【背景技術】
【０００２】
相互参照
本願は２００６年１２月４日に出願された米国特許出願第１１／５６６，６８５号（特許文献１）からの優先権を主張する。
【０００３】
分離可能なメモリモジュールは１９９０年代以降極めて重要となり、それまでリムーバブルディスクや特殊なバックアップメディアで占められてきたロバストポータビリティ隙間市場の多くを占有するに至っている。そのようなモジュールは通常、一塊のメモリ（通常はフラッシュ）と、Ｉ／Ｏ機能と制御機能を操作するコントローラとを含んでいる。これらのメモリモジュールの普及にともない、当然ながらその容量は増加し、ビット当たりのコストは低下している。しかし、このほかにも重要な開発動向が少なくとも２つある。第一に、コンピュータ以外の多数の可搬型電子システムにもそのようなモジュールのためのインターフェイスが組み込まれている。（そのようなシステムの例として、カメラ、ビデオレコーダ、携帯電話機、個人用携帯情報端末（ＰＤＡ）、音楽・ビデオプレイヤ、これらの混成体等を挙げることができる。）第二に、単純な読み書きを超えた機能（例えば、データセキュリティや保護に関するもの）を提供するため、一部のメモリモジュールには高度な機能性が組み込まれている。
【０００４】
ＭＭＣ、ＳＤ（ならびにそのバリエーションと後継）、ＣＦ、メモリスティック、ＵＳＢ等、そのようなモジュールには数通りの物理層プロトコルが採用されている。分離可能なモジュールの着脱は予期せず行われることがあるため、そのようなプロトコルの多くは非常に堅牢な動作に対応している。厳密なタイムアウトルールは堅牢動作を保証する特色のひとつである。例えばＳＤカードの物理層仕様では、標準容量ＳＤカードの読み出しタイムアウトとして１００ｍｓ以内、書き込みタイムアウトとして２５０ｍｓ以内を明確に定めている。（これらの規定はカードのアクセス中にシステムの行き詰まり、すなわち「ハング」を防ぐのに役立っている。）ホストは所定のタイムアウトで応答を得ない場合にカードが応答していないと仮定し、リカバリを試みることになっている（例えば、カードのリセット、パワーサイクル（ハードリセット）、拒否等）。（「SD Specifications Part 1, Physical Layer Simplified Specification Version 2.00, at sections 4.6, 4.6.1, and 4.6.2 」を参照されたい。この仕様書は、その全体が本願明細書において参照により援用されている。）
【０００５】
しかし、モジュールに組み込まれる機能が豊富になるにつれ、堅牢動作に貢献するタイムアウトルールそのものが支障をきたすことがある。具体的には、読み出し・書き込みタイムアウト規定のため、所望の読み出し操作や書き込み操作が時間切れになるまでに、セキュリティ検証等の込み入ったデータ処理操作が完了しないおそれがある。
【０００６】
最大タイムアウト値は容易く変更できるとは限らない。例えば、インターフェイスプロトコルルールが結線によりホスト側のＦＰＧＡやＡＳＩＣに組み込まれている場合がある。これは、結線によりレガシーハードウェアに組み込まれた制約事項は回避できないため、先進モジュールの導入にあたって問題となる。
【０００７】
バスタイムアウトが生じると、ホストはパワーサイクルか、リカバリプロセスか、書き込み中止か、電源遮断に取りかかり、その結果、カードにおける操作は打ち切られる。しかし、問題は、有効な読み出し／書き込み操作が時間切れになるときに生じる。これはカードが、タイムアウト時限より時間がかかる操作を実行しているときに起こる。アーキテクチャのこの既存部分のため、より複雑な操作への前進が妨げられている。
【０００８】
デジタルコンテンツの保護はリムーバブルメモリの開発を圧迫する一因となっている。利用者による著作物の自由な配布を禁じつつ、著作権で保護されたコンテンツを簡便に販売、移動、使用できるようにするため、多大な努力が払われてきた。デジタル音楽のセキュリティ保護にかかわる情報技術、家電製品、セキュリティ技術、コンテンツ所有者、インターネットサービスプロバイダを代表する１８０余りの企業・団体からなる産業フォーラムによって立ち上げられたセキュアデジタルミュージックイニシアチブ（ＳＤＭＩ）は、この方向における１つの画期的出来事だった。コンテンツ保護セキュアマルチメディアカードやその他のメディアにコンテンツを送り、コンテンツのコピーを作成、再生、交換する簡便で合法的な手段を利用者に提供するＵＤＡＣ−ＭＢ（アクセス規制による普遍的配布−メディアベース）は、もうひとつの画期的出来事だった。これは、ライセンスキーと暗号化コンテンツの単独配布法に基づく技術である。ＵＤＡＣ−ＭＢはＫｅｉｔａｉｄｅ−Ｍｕｓｉｃ（ＫｄＭ）規格によって概ね引き継がれた。
【０００９】
コンテンツにおけるもうひとつの重要ステップは、サンディスク  コーポレイションによって２００５年に発表されたＴｒｕｓｔｅｄＦｌａｓｈ（登録商標）アーキテクチャである。ＴｒｕｓｔｅｄＦｌａｓｈにより消費者は上質の音楽、映画、ゲームをフラッシュメモリカードで購入し、携帯電話機、ラップトップ形コンピュータ、ＰＤＡ等の可搬型装置で区別なく利用できる。コンテンツ提供者が求める優れたセキュリティ／デジタル著作権管理ソリューションを提供するＴｒｕｓｔｅｄＦｌａｓｈ製品により、音楽制作者や映画スタジオは上質なコンテンツを発売できる。消費者は、自身の携帯電話機やＰＣを使ってオンラインデジタル音楽サービスから上質のコンテンツをダウンロードできる。
【００１０】
ＴｒｕｓｔｅｄＦｌａｓｈ技術ではカードそのものがデジタル著作権の管理機能を果たすため、消費者はカード（ならびにその内容）を他の対応装置に自由に移すことができ、そのコンテンツ保護システムが損なわれることはない。また、ＴｒｕｓｔｅｄＦｌａｓｈカードは安全が確保されないホスト装置の場合に通常のカードとして機能する。
【００１１】
従来のメモリカードや大部分の家庭用電子機器に見られるセキュリティを遥かに凌ぐ高度なセキュリティを提供するオンボードプロセッサと、高性能暗号エンジンと、不正操作防止技術とにより、ＴｒｕｓｔｅｄＦｌａｓｈカードは非常に安全である。ＴｒｕｓｔｅｄＦｌａｓｈプラットフォームに基づくカードは万全のデジタル著作権管理能力を提供し、対称・非対称アルゴリズム等の業界セキュリティ規格をサポートする。
ＴｒｕｓｔｅｄＦｌａｓｈは、クレジットカード支払、大量輸送アクセス、ワンタイムパスワード認証等、モバイルコマースへの応用や安全オンライン金融取引への拡張も見込まれている。
【００１２】
コンテンツ検証、ノード検証、および／またはファイルアクセス規制（例えば、秘密鍵ファイル）、および／または可搬型メディアに「チェックアウト」されたファイルを追跡するファイル管理オーバーヘッド手順のため、コンテンツ保護アーキテクチャには暗号アルゴリズムが必要になる場合が多い。これらはいずれも処理オーバーヘッドを増大させる。そのようなシステムにおける可搬型データモジュールとのデータ交換は、単純な読み出し／書き込み操作より遥かに込み入ったものになる。
【００１３】
先進コンテンツ保護機能を実現するには、洗練された高整合性データベースをデータモジュールで保持、保全できなければならない。そのようなデータベースアーキテクチャでは、場合によってはアクセスのたびに全面的な整合性チェックが必要になる。通常、整合性チェックにあたっては暗号計算が要求されるため、そのようなデータベースを動かすには甚大なオーバーヘッドがかかる。したがって、そのような先進メモリモジュールに対する読み書きは表面的に単純なだけであって、インターフェイスのカード側にはアクセスのたびに大量の計算が強いられる。タイムアウトが固定されていると、この増大したオーバーヘッドによって問題が生じることがある。
【００１４】
コンテンツ保護とモバイルデータインターフェイスについては、本願明細書において参照により援用されているウェブサイト（本願出願日におけるバージョンのもの）http://www.keitaide-music.org/, http://www.mmca.org/technology/, http://www.sdcard.org/, http://sdmi.org/ で詳しい情報を確認できる。
セキュリティアプリケーションに関する詳細は、本願明細書において参照により援用されている２００６年１１月６日に出願された米国特許出願第１１／５５７，０２８号（特許文献２）とこの出願で引用されている資料で確認できる。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】米国特許出願第１１／５６６，６８５号
【特許文献２】米国特許出願第１１／５５７，０２８号
【発明の概要】
【００１６】
ダミーブロックによってタイムアウトを阻止する可搬型モジュールインターフェイス
本願は、バスタイムアウト規定に準拠しながら、セキュリティ機能等、高度な機能性をデータ転送操作に加える新しいアプローチを開示するものである。それには、例えば読み出しおよび／または書き込み操作にダミー操作を盛り込み、バスタイムアウトが複雑な機能に求められる数値処理の妨げとならないようにする。ホストはカードインターフェイスに関係する保安操作を起動するときに、タイムアウトを回避するにあたって十分な数のダミー操作をプログラムできる。
【００１７】
開示される新規軸は種々の実施形態において少なくとも以下に記す利点の１つ以上を提供する。
・過剰なタイムアウトが回避される。
・既存のインターフェイスへより複雑な機能を加えることができる。
・インターフェイスソフトウェアが更新されるときには新しいダミーブロックシリーズパラメータも更新できるため、過剰なタイムアウトは回避される。
・最大タイムアウト値より時間のかかる手順では、いくつかのダミーブロックをプログラムしインターフェイス上で送信できるため、固定された最大タイムアウト値は回避される。
・可搬型モジュールインターフェイス定義に改良セキュリティ機能を加えることができる。
・レガシー機器から先進保安データベース機能を含む可搬型モジュールへアクセスできる。
【００１８】
本発明の重要サンプル実施形態を示し、参照により本願明細書に組み込まれる、添付の図面を参照しながら、開示された発明を説明する。
【図面の簡単な説明】
【００１９】
【図１Ａ】コンピュータシステムのサンプル実施形態のブロック図である。
【図１Ｂ】メモリシステムのサンプル実施形態のブロック図である。
【図２】サンプル実施形態に従い書き込み操作を例示する概括的フローチャートである。
【図３】サンプル実施形態に従い読み出し操作を例示する概括的フローチャートである。
【発明を実施するための形態】
【００２０】
現時点で好適な実施形態を具体的に参照しながら、（限定するためではなく例示のため）本願の数ある革新的教示を説明する。
【００２１】
本発明の種々の実施形態に従い、メモリシステム（例えば、メモリカード）で書き込みまたは読み出しバスタイムアウト仕様を超過するためのシステムおよび方法を説明する。  図１Ａは、本発明の実施形態を実践できるハードウェアおよび動作環境の図である。この環境はコンピュータシステム１０の形をとる汎用計算装置を含み、このコンピュータシステムは、プロセッサ１５と、メモリ２５と、メモリ２５を含む各種システムコンポーネントをプロセッサ１５へ実効的に結合するバス３０とを含む。ただ１つのプロセッサ１５が存在することもあれば、複数のプロセッサ１５が存在することもある。コンピュータシステム１０は通常のコンピュータであってもよく、分散コンピュータであってもよく、あるいは他の何らかのタイプのコンピュータであってもよく、本発明はこれらに限定されない。
【００２２】
バス３０はインターフェイス９０へ接続され、このインターフェイスは、メモリバスまたはメモリコントローラ、周辺バス、ローカルバス等、様々なバスアーキテクチャによる数種のバス構造のいずれであってもよい。インターフェイス９０はダイレクトメモリアクセス（ＤＭＡ）コントローラを含み、このコントローラは、メモリ２５と、Ｉ／Ｏ装置との間で、例えば図１Ｂに見られるメモリシステム１００との間で、データとコマンドを転送する。メモリ２５は、基本入出力システム（ＢＩＯＳ）４０を有する読み出し専用メモリ（ＲＯＭ）４０と、ランダムアクセスメモリ（ＲＡＭ）４５とを含む。ＲＡＭ４５はオペレーティングシステム５０と、アプリケーションプログラム７０と、プログラムデータ８５と、後ほど詳述するドライバを含むプログラムモジュール８０とを随時収容できる。
【００２３】
図１Ｂには、前述したメモリシステム１００が機能的に表示されている。不揮発性メモリシステム１００は通常、フラッシュメモリアレイ１４０とコントローラ１０５とを含む。メモリセルアレイ１４０はフラッシュであってもよく、さもなくば他の何らかのタイプの不揮発性メモリであってもよい。コントローラ１０５とメモリセルアレイ１４０との間ではユーザデータが転送される。
【００２４】
コントローラ１０５は、本発明の実施形態しだいでは、例えばプロセッサ１１０と、タイマー１１５と、読み出し専用メモリ（ＲＯＭ）１３５と、ランダムアクセスメモリ（ＲＡＭ）１２０とを含む。図１Ｂではタイマー１１５がハードウェアブロックとして示されているが、これをコードで実装してコントローラ１０５の中に蓄積することもできれば、ハードウェアとコードとの組み合わせとして実装することもできる。ＲＡＭ１２０には、メモリシステム１００の動作を制御するためのプロセッサ１１０によってアクセスされるファームウェアとソフトウェアとを蓄積できる。
【００２５】
コントローラ１０５はまた、ダイレクトメモリアクセス（ＤＭＡ）エンジンを含むフラッシュインターフェイス１２５と、同じくダイレクトメモリアクセス（ＤＭＡ）エンジンを含むホストインターフェイス１３０とを含む。フラッシュインターフェイス１２５とホストインターフェイス１３０の役割は、コントローラ１０５とメモリセルアレイ１４０との間で、およびコントローラ１０５とコンピュータシステム１０との間で、それぞれ通信および転送を管理することと制御することとを含む。
【００２６】
具体的に、フラッシュインターフェイス１２５のＤＭＡエンジンは、ＲＡＭ１２０とのデータ転送とメモリセルアレイ１４０とのデータ転送とを管理し、かつ制御するように構成される。ホストインターフェイス１３０のＤＭＡエンジンは、コンピュータシステム１０とのデータ転送とＲＡＭ１２０とのデータ転送とを管理し、かつ制御するように構成される。コントローラ１０５は、メモリシステム１００内での操作とそのバス上での操作とが非同期的に行われるように構成される。ホストインターフェイス１３０のＤＭＡエンジンは本発明の一実施形態において、例えばレディ信号等の状態信号をアサートまたはデアサートすることによってバスを制御するように構成される。メモリシステム１００がアクセス可能な状態になるとレディ信号がアサートされる。逆に、メモリシステム１００がコマンドの処理や操作の実行でビジー状態にあるときには、レディ信号がデアサートされる。本発明の原理はコンピュータシステム１０とメモリシステム１００で具現する。本発明の原理によると、メモリシステム１００は、例えばその仕様またはプロトコルのバスタイムアウト時限を超過する読み出し操作と書き込み操作を実行できる。本発明のこの実施形態で、メモリシステム１００はＳＤカード仕様に基づく。コンピュータシステム１０とメモリシステム１００はいずれもＳＤカード仕様に適合するように構成され、いずれもバスタイムアウト時限を認識する。しかし、これとは別の仕様を、例えばパーソナルコンピュータメモリカード国際協会（ＰＣＭＣＩＡ）、コンパクトフラッシュ（ＣＦ）、マルチメディアカード（ＭＭＣ）、セキュアデジタル（ＳＤ）カード等の仕様を本発明に従い実施できることを理解すべきである。
【００２７】
一般的に、本発明の一実施形態によると、ある特定の仕様のバスタイムアウトより長い期間にわたってメモリシステムでアプリケーションを実行したりデータを処理できるようにしたりするには、メモリシステムのコントローラがレディ信号をデアサートし、メモリシステムが時間切れになる寸前までコンピュータシステムへ至るバスを「ビジー」状態に保つ。書き込み操作のときには、書き込みバスタイムアウト時限が満了する前にコントローラがコンピュータシステムからダミーデータブロックを受信することで、バスタイムアウト時限はリセットされる。読み出し操作のときには、読み出しバスタイムアウト時限が満了する前にコントローラがコンピュータシステムへダミーデータブロックを送信することで、バスタイムアウト時限はリセットされる。
前述したように、コンピュータシステム１０のメモリ４５にはアプリケーションプログラム７０が蓄積される。この例のアプリケーションプログラム７０のうちの少なくとも１つのアプリケーションプログラムは、メモリシステム１００のＲＡＭ１２０に蓄積されたセキュリティアプリケーションをサポートするセキュリティアプリケーションである。
【００２８】
さらに、プログラムモジュール８０はドライバ（または結線ロジック）を含み、このドライバは、カードサービスの存在を検出し、カードファイルシステム（例えば、フラッシュファイルシステム）と連係し、メモリサービスに対するコールを処理し、バスタイムアウト時限を監視するように構成される。このドライバ（またはロジック）は、アプリケーションプログラム７０とメモリシステム１００との連係を図る。メモリシステム１００にアクセスするための方法は、メモリシステムに実装されるメモリシステム（すなわちメモリ技術）のタイプしだいで異なるが、この例のメモリシステムはフラッシュ仕様を実装する。ドライバ（またはロジック）は、メモリシステム１００へコマンドを提供し、メモリシステム１００との間でデータを送受し、物理プロトコルレベルでバスタイムアウト時限（例えば、書き込み／読み出し）を管理するように構成される。ドライバ（またはロジック）の一機能として、ドライバはメモリシステム１００からのレディ信号を監視し、特定の操作またはコマンドによるバスタイムアウト時限の超過を確認にする。前述したように、レディ信号はメモリシステム１００が次のトランザクションに向けて準備がととのっていることを意味する。デアサートされたレディ信号は、メモリシステム１００がコマンドや操作の実行でビジー状態にあり、次のトランザクションにかかれないことを意味する。
【００２９】
前述したように、システムの柔軟性を損なう真の問題は、これらの機能をドライバが引き受けるのではなく、少なくとも部分的にはハードウェアに組み込まれる場合に起こる。（ドライバは更新できるが、ハードウェアの変更はさほど容易くない。）これまで様々な製造業者がＳＤカードやその他インターフェイスのルールをＦＰＧＡまたはＡＳＩＣで実装し、これらのハードウェア実装を保持するレガシー機器には柔軟性がない。
【００３０】
先行技術のシステムの場合、メモリシステムで実行するアプリケーションや操作が長いプロセス、例えば書き込みまたは読み出しバスタイムアウト時限仕様を超過するプロセスなら、メモリシステムでバスタイムアウトが発生する。この場合はドライバのタイプにもよるが、通常ならばドライバがリセット信号やパワーサイクル等、メモリシステムのリカバリプロセスに着手する。いずれにせよドライバがバスタイムアウトを認識すると、コンピュータシステムはメモリシステムを正常に機能していないものとして扱い、メモリシステムで実行しているアプリケーションや操作は打ち切られる。
【００３１】
一般的に、典型的な書き込み操作ではコンピュータがメモリへ書き込みコマンドを送信し、メモリでデータ受信の準備がととのったことを伝える指示がメモリから届くのを待つ。この準備完了の指示は、例えば信号であったり、ステータスであったり、他の何らかのプロトコル機構であったりする。準備がととのったメモリはコンピュータへ指示を送信し、これを受けてコンピュータは一連のデータブロックをメモリへ送信する。メモリは準備がととのっているため、少なくとも１つのデータブロックは受信でき、データブロックの合間にはビジー信号をトリガーし、発行し、駆動できる。コンピュータはメモリからの信号を監視し、メモリの準備がととのうとメモリへデータブロックを送信する。
【００３２】
図２は、本発明の一実施形態に従い書き込み操作を例示する概括的フローチャートである。本発明のこの例示的実施形態では、コンピュータシステム１０に蓄積されたセキュリティアプリケーションとメモリシステム１００に蓄積されたセキュリティアプリケーションの脈絡の中で書き込み操作が実行される。開示するダミーブロックの使用は、時間がかかるアプリケーションでバスタイムアウトを阻止するのに適している。このコンセプトは、メモリシステムのバスタイムアウト仕様より長い処理時間を要するアプリケーションであればどのようなタイプのものにでも役立てることができる。前述したように、本発明はメモリシステム１００で実行されるアプリケーションのタイプに限定されず、例えばメモリシステム内でのファイル削除やデータ圧縮にも応用できる。
【００３３】
図２を参照し、本発明のこの実施形態においてコンピュータシステム１０のアプリケーション（例えば、セキュリティプロセス）は、ブロック２０５でクエリコマンドをメモリシステム１００へ送信する。具体的に、コンピュータシステム１０のアプリケーションは、書き込みバスタイムアウトを回避するためにメモリシステム１００へ送信するべきダミーデータブロックの数をメモリシステム１００に照会することをプロセッサ１５に命じる。
【００３４】
ダミーデータブロックはセクタとブロックを持つ通常のデータブロックであり、そのサイズはメモリシステム１００の仕様によって異なる。ダミーデータブロックの定義しだいでは、ダミーデータブロック内のデータに意味がなく、何でも含まれる。本発明のこの実施形態では、ダミーデータブロック内のデータに意味はない。有効データブロックからダミーデータブロックを区別するための識別子、例えば署名やパターンを、ダミーデータブロックに入れることもできる。
【００３５】
コントローラ１０５はＲＡＭ１２０に蓄積された命令を実行し、書き込みバスタイムアウトを阻止するにあたってコンピュータシステム１０のアプリケーションからメモリシステム１００へ送信する必要のあるダミーデータブロック数を判断する（ブロック２１０）。メモリシステム１００でアプリケーションの実行にかかる最大時間と書き込みバスタイムアウト時限仕様を知っているコントローラ１０５は、書き込みバスタイムアウトを回避するためにコンピュータシステム１０のアプリケーションが送信しなければならないダミーデータブロック数を判断する。コントローラ１０５は本発明のこの実施形態で、メモリシステム仕様の書き込みバスタイムアウト時限を、メモリシステムでアプリケーションの実行にかかる最大時間に分けることによってダミーデータブロック数を判断する。
【００３６】
例えばメモリシステム１００でアプリケーション（例えば、セキュリティプロセス）の完了に１０秒かかるなら、コントローラ１０５は、メモリシステム１００で書き込みバスタイムアウト時限を超過せずにアプリケーションを実行するにあたって受信しなければならないダミーデータブロック数を判断する。メモリシステム１００がＳＤカードなら、必然的に書き込みバスタイムアウトは２５０ｍｓである。これを知っているコントローラ１０５は、バスを１秒間ビジー状態に保つのに４個のダミーデータブロックがメモリシステム１００に必要と判断する。メモリシステム１００でアプリケーションが完了するのに１０秒かかるなら、書き込みバスタイムアウトを回避するため、メモリシステム１００は２５０ｍｓ毎に１ダミーデータブロック、全部で４０個のダミーデータブロックを、受信しなければならない。読み出し操作の場合でも、読み出しタイムアウト時限が書き込みタイムアウト時限と異なることが見込まれるだけであって、計算の仕方は同じであることに注意すべきである。
【００３７】
図２を参照し、ダミーデータブロック数が判明したコントローラ１０５は、ブロック２１５でそのダミーデータブロック数をコンピュータシステム１０のアプリケーションへ送信する。本発明のこの実施形態によると、これらの通信はアプリケーションレベルで始まる。アプリケーションレベルでの通信により、ドライバは出来合いのまま変える必要はない。
【００３８】
コンピュータシステム１０のアプリケーションはクエリの結果を読み出し、適切なダミーデータブロック数でダミー書き込みコマンドを開始する。コンピュータシステム１０のアプリケーションはダミー書き込みコマンドとダミーデータブロックをメモリシステム１００へ送信する。ブロック２２０ではメモリシステム１００がダミーデータブロックを受信し、ダミー書き込みコマンドの指示によりコントローラ１０５は処理中にダミー書き込み状態に入る。この状態のコントローラ１０５は、コンピュータシステム１０のアプリケーションから受信するダミーデータブロックを無視する。前述したように、ダミーデータブロックはコンピュータシステム１０のドライバによって監視され、ドライバには有効なデータブロックと何ら変わりなく映るため、ドライバはバスタイムアウトを発動しない。その後、メモリシステム１００によってダミー書き込みコマンドが受信される。これを受けてコントローラ１０５はホストインターフェイス１３０を通じてレディ信号をデアサートし（つまり、バスをビジーに設定し）、メモリシステム１００でアプリケーションを実行する。
【００３９】
コントローラ１０５はブロック２２５で、アプリケーションの実行に割り振られた期間を監視する。例えば、ダミー書き込みコマンドが受信されるとコントローラ１０５がタイマー１１５を起動し、書き込み操作のバスタイムアウト時限を監視できるようにする。この例のメモリシステム１００はＳＤ仕様に基づくもののため、書き込みバスタイムアウト時限は２５０ｍｓである。ブロック２３０では、書き込みバスタイムアウト時限を超過する前に、タイマー１１５によってタイムアウト満了割り込みが発生し、これによりプロセッサ１１０は中断し、ホストインターフェイス１３０はレディ信号をアサートする。レディ信号を認識するコンピュータシステム１０のドライバは、メモリシステム１００に向けて次のダミーデータブロックの転送を開始し、その結果、書き込みバスタイムアウトは阻止される。ブロック２３５ではメモリシステム１００がダミーデータブロックを受信し、無視する。
【００４０】
前述したように、ドライバはダミーデータブロックと有効データブロックとの違いに気づかない。ドライバはダミーデータブロックの転送を監視し、書き込みバスタイムアウト時限内に転送が行われたものと認識するため、書き込みバスタイムアウトを発動しない。このため、メモリシステム１００のアプリケーションはバスタイムアウトで中断されることなく実行し続けることができる。新たなダミーデータブロックが到着すると新規ダミーデータブロック割り込みによってタイマー１１５が起動し、これによりプロセッサ１１０は書き込みバスタイムアウト時限の満了に先立ち中断される。引き続きコントローラ１０５は、メモリシステム１００のリセットやリカバリプロセスをともなわずにアプリケーションを実行できる。
【００４１】
タイムアウト満了割り込みと新規ダミーデータブロック到着割り込みは、メモリシステム１００のプロセッサ１１０によるアプリケーションの実行と並行して起動される。２つの割り込みはアプリケーションの実行中に周期的に継続する。メモリシステム１００がその内部プロセスを完了すると、コンピュータシステム１０によって送信される残りのダミーデータブロックは、ダミーデータブロックの合間に遅延をはさまず、メモリシステム１００によって回収される。２ダミーデータブロック間の遅延時間はパラメータで制御でき、アプリケーションやメモリシステム仕様によって異なる。
【００４２】
一般的に、典型的な読み出し操作ではコンピュータシステムがメモリシステムへ読み出しコマンドを送信し、メモリシステムでデータ送信の準備がととのったことを伝える指示がメモリシステムから届くのを待つ。前述したように、この準備完了の指示は、例えば信号であったり、ステータスであったり、他の何らかのプロトコル機構であったりする。準備がととのったメモリシステムは一連のデータブロックをコンピュータシステムへ送信する。メモリシステムは準備がととのっているため、少なくとも１つのデータブロックを送信でき、データブロックの合間にはビジー信号をトリガーし、発行し、駆動できる。
【００４３】
図３は、本発明の一実施形態に従い読み出し操作を例示するフローチャートである。本発明のこの例示的実施形態では、メモリシステム１００に蓄積されたセキュリティアプリケーションとコンピュータシステム１０に蓄積されたセキュリティアプリケーションの脈絡の中で読み出し操作が実行される。書き込みの例と同様に、本発明は時間がかかるアプリケーションでバスタイムアウトを阻止するのに適している。したがって、読み出し操作中に処理時間がメモリシステム仕様を上回るメモリシステム１００のアプリケーションであればどのようなタイプのものでも当てはめることができる。前述したように、本発明はメモリシステム１００で実行されるアプリケーションのタイプに限定されず、例えばメモリシステム内でのファイル削除やデータ圧縮にも応用できる。
【００４４】
本発明のこの実施形態で、ＲＡＭ１２０に蓄積された命令を実行するコントローラ１０５は、読み出しバスタイムアウトを阻止するにあたってメモリシステム１００からコンピュータシステム１０へ送信する必要のあるダミーデータブロック数をブロック３０５で判断する。メモリシステム１００でアプリケーションの実行にかかる最大時間と読み出しバスタイムアウト時限仕様を知っているコントローラ１０５は、読み出しバスタイムアウトを回避するためにアプリケーションが送信しなければならないダミーデータブロック数を判断する。コントローラ１０５は本発明のこの実施形態で、メモリシステム仕様の読み出しバスタイムアウト時限を、メモリシステムでアプリケーションの実行にかかる最大時間に分けることによってダミーデータブロック数を判断する。
【００４５】
例えばメモリシステム１００でアプリケーション（例えば、セキュリティプロセス）の完了に１０秒かかるなら、コントローラ１０５は、読み出しバスタイムアウトを阻止するためにコンピュータシステム１０のアプリケーションへ送信する必要のあるダミーデータブロック数を判断する。メモリシステム１００がＳＤカードなら、必然的に読み出しバスタイムアウトは１００ｍｓである。これを知っているコントローラ１０５は、バスを１秒間ビジー状態に保つのに１０個のダミーデータブロックがメモリシステム１００に必要と判断する。メモリシステム１００でアプリケーションが完了するのに１０秒かかるなら、読み出しバスタイムアウトを回避するため、メモリシステム１００は１００ｍｓ毎に１ダミーデータブロック、全部で１００個のダミーデータブロックを送信しなければならない。
【００４６】
書き込みの例と同様に、このダミーデータブロック数は、コンピュータシステム１０のドライバがメモリシステム１００におけるアプリケーションの実行中に読み出しバスタイムアウトを発動しないようにするために監視するダミーデータブロックの数量に相当する。
ダミーデータブロック数が判明したメモリシステム１００のアプリケーション（例えば、セキュリティプロセス）は、ブロック３１０でコンピュータシステム１０へクエリコマンドを送信する。具体的に、メモリシステム１００のアプリケーションは、コンピュータシステム１０へクエリコマンドを送信することをコントローラ１０５に命じる。このクエリコマンドは、読み出しコマンドの実行中に読み出しバスタイムアウトを回避するためにメモリシステム１００から送信されるダミーデータブロック数をコンピュータシステム１０に報告する。前述したように、これらの通信はアプリケーションレベルで始まるから、ドライバは出来合いのまま変える必要はない。
【００４７】
コンピュータシステム１０のアプリケーションはメモリシステム１００からのクエリ結果を読み出し、ダミー読み出しコマンドを開始する。コンピュータシステム１０のアプリケーションはメモリシステム１００へダミー読み出しコマンドを送信する。ブロック３１５ではメモリシステム１００がダミー読み出しコマンドを受信し、処理中はダミー読み出し状態に入ることをコントローラ１０５に指示する。この状態のコントローラ１０５は、読み出しバスタイムアウト時限が満了する前にダミーデータブロックをコンピュータシステム１０へ送信する。前述したように、これらのダミーデータブロックはコンピュータシステム１０のドライバによって監視され、ドライバには有効なデータブロックと何ら変わりなく映る。メモリシステム１００でダミー読み出しコマンドが受信されると、コントローラ１０５はレディ信号をデアサートする（つまり、バスをビジーに設定する）。
【００４８】
コントローラ１０５はブロック３２０で、アプリケーションの実行に割り振られた期間を監視する。例えば、ダミー読み出しコマンドが受信されるとコントローラ１０５がタイマー１１５を起動し、メモリシステム１００で読み出し操作のバスタイムアウト時限を監視できるようにする。この例のメモリシステム１００はＳＤ仕様に基づくもののため、読み出しバスタイムアウト時限は１００ｍｓである。ブロック３２５では、読み出しバスタイムアウト時限を超過する前にタイマー１１５によってタイムアウト満了割り込みが発生し、これによりプロセッサ１１０は中断し、ホストインターフェイス１３０はレディ信号をアサートする。
【００４９】
その後ブロック３３０では、コントローラ１０５がコンピュータシステム１０のアプリケーションへダミーデータブロックと署名を送信する。コンピュータシステム１０のアプリケーションはこの署名をもとに、有効データブロックからダミーデータブロックを区別できる。署名を認識するコンピュータシステム１０のアプリケーションは、ダミーデータブロックを無視できる。
【００５０】
コンピュータシステム１０のドライバはダミーデータブロックの転送を監視し、読み出しバスタイムアウト時限内に転送が行われたものと認識するため、読み出しバスタイムアウトを発動しない。前述したように、ドライバはダミーデータブロックと有効データブロックとの違いに気づかない。コンピュータシステム１０のアプリケーションはダミーデータブロックを受信し、ダミーデータブロックの署名を認識し、ダミーデータブロックを無視する。
【００５１】
新たなダミーデータブロックが送信されると、新規データブロック送信割り込みによってタイマー１１５が起動し、これによりプロセッサ１１０は読み出しバスタイムアウト時限の満了に先立ち中断され、コントローラ１０５は、メモリシステム１００のリセットやリカバリプロセスをともなわずにアプリケーションを実行できる。
タイムアウト満了割り込みと新規ダミーデータブロック送信割り込みは、メモリシステム１００のプロセッサ１１０によるアプリケーションの実行と並行して起動される。２つの割り込みはアプリケーションの実行中に周期的に継続する。２ダミーデータブロック間の遅延時間はパラメータで制御でき、アプリケーションやメモリシステムのアーキテクチャによって異なる。
【００５２】
開示された種々の実施形態によると、ホストシステムと保安アクセスメモリを収容する分離可能な電子モジュールとを連係する方法が提供され、この方法は、ａ）コマンドによる書き込みで分離可能なモジュールにおける保安蓄積操作が要求される場合に、バスタイムアウトをともなうことなく分離可能なモジュールで保安蓄積操作を完了するにあたって十分に長い一連のダミー書き込みを実行するアクションと、ｂ）コマンドによる読み出しで所望データの組み立てにあたって暗号操作が要求される場合に、タイムアウトを回避するためのダミー読み出しサイクルを実行するアクションと、を含み、これにより、レガシーバスアーキテクチャに複雑な手順を上乗せすることができる。
【００５３】
開示された種々の実施形態によると、ホストシステムとデータモジュールとを連係する方法が提供され、この方法は、ａ）コマンドによる書き込みサイクルで複雑な計算の完了が要求される場合に、複雑な計算が終了するまで、タイムアウトを回避するためのダミーブロックを、このダミーブロック間に遅延をはさみながら書き込むアクションと、ｂ）コマンドによる読み出しサイクルで複雑な計算の完了が要求される場合に、複雑な計算が終了するまで、タイムアウトを回避するためのダミー読み出しを、このダミー読み出し間に遅延をはさみながら実行するアクションと、を含む。
【００５４】
開示された種々の実施形態によると、システムとメモリを収容する分離可能な電子モジュールとを連係する方法が提供され、この方法は、ａ）書き込みサイクル中に複雑な処理操作が要求される場合に、タイムアウトを回避するためのダミーブロックを書き込むアクションと、ｂ）読み出しサイクル中に複雑な処理操作が要求される場合に、タイムアウトを回避するためのダミー読み出しを実行するアクションと、を含み、これにより、レガシーバスアーキテクチャに複雑な手順を上乗せすることができる。
【００５５】
開示された種々の実施形態によると、コンピュータシステムとメモリシステムとの間でバスタイムアウトを回避する方法が提供され、この方法は、書き込みバスタイムアウト時限を出来させずにメモリシステムでアプリケーションを実行するにあたって必要なダミーデータブロック数を判断するステップと、ダミーデータブロック数をコンピュータシステムに報知するステップと、メモリシステムがダミーデータブロックを無視する状態にするダミー書き込みコマンドをコンピュータシステムから受信するステップと、メモリシステムがビジー状態にあることをコンピュータシステムに指示するステップと、メモリシステムでアプリケーションを実行するステップと、メモリシステムでアプリケーションの実行に割り振られた期間を監視するステップと、その期間が書き込みバスタイムアウト時限を超過する前にメモリシステムがレディ状態にあることを指示するステップと、コンピュータシステムからダミーデータブロックを受信するステップと、を含む。
【００５６】
開示された種々の実施形態によると、保安アクセスメモリを収容する分離可能な電子モジュールで実装される、ホストシステムと連係する方法が提供され、この方法は、コマンドによる読み出しで所望データの組み立てにあたって暗号操作が要求される場合に、有効データが組み立てられかつ読み出されるまで、タイムアウトを回避するためのダミー読み出しサイクルを実行するアクションを含み、これにより、レガシーバスアーキテクチャに複雑な手順を上乗せすることができる。
【００５７】
開示された種々の実施形態によると、保安データモジュールと連係する方法が提供され、コマンドによる書き込みサイクルで複雑な計算の完了が要求される場合に、複雑な計算が終了するまで、タイムアウトを回避するためのダミーブロックを、このダミーブロック間に遅延をはさみながら書き込むアクションと、少なくとも計算が終了しかつコマンドによる書き込みサイクルが完了するときまでに、ダミーブロックを破棄するアクションと、を備える。
【００５８】
開示された種々の実施形態によると、コンピュータシステムとメモリシステムとの間でバスタイムアウトを回避する方法が提供され、この方法は、読み出しバスタイムアウト時限を出来させずにメモリシステムでアプリケーションを実行するにあたって必要なダミーデータブロック数を判断するステップと、ダミーデータブロック数をコンピュータシステムに報知するステップと、メモリシステムがビジー状態にあることをコンピュータシステムに指示するステップと、メモリシステムでアプリケーションを実行するステップと、メモリシステムでアプリケーションの実行に割り振られた期間を監視するステップと、その期間が読み出しバスタイムアウト時限を超過する前にメモリシステムがレディ状態にあることを指示するステップと、コンピュータシステムへダミーデータブロックと識別子とを送信するステップと、を含む。
【００５９】
開示された種々の実施形態によると、コンピュータシステムとメモリシステムとの間でバスタイムアウトを回避するシステムが提供され、このメモリシステムは、メモリセルアレイと、メモリセルアレイへ接続されたコントローラと、を備え、このコントローラは、書き込みバスタイムアウト時限を出来させずにコントローラでアプリケーションを実行するにあたって必要なダミーデータブロック数を判断することと、ダミーデータブロック数をコンピュータシステムに報知することと、コントローラがダミーデータブロックを無視する状態にするダミー書き込みコマンドをコンピュータシステムから受信することと、メモリシステムがビジー状態にあることをコンピュータシステムに指示することと、コントローラでアプリケーションを実行することと、コントローラでアプリケーションの実行に割り振られた期間を監視することと、その期間が書き込みバスタイムアウト時限を超過する前にメモリシステムがレディ状態にあることを指示することと、コンピュータシステムからダミーデータブロックを受信することと、を実行するように構成される。
【００６０】
開示された種々の実施形態によると、コンピュータシステムとメモリシステムとの間でバスタイムアウトを回避するシステムが提供され、このメモリシステムは、メモリセルアレイと、メモリセルアレイへ接続されたコントローラと、を備え、このコントローラは、読み出しバスタイムアウト時限を出来させずにコントローラでアプリケーションを実行するにあたって必要なダミーデータブロック数を判断することと、ダミーデータブロック数をコンピュータシステムに報知することと、メモリシステムがビジー状態にあることをコンピュータシステムに指示することと、コントローラでアプリケーションを実行することと、コントローラでアプリケーションの実行に割り振られた期間を監視することと、その期間が読み出しバスタイムアウト時限を超過する前にメモリシステムがレディ状態にあることを指示することと、コンピュータシステムへダミーデータブロックと識別子とを送信することと、を実行するように構成される。
【００６１】
修正と変更
本願で説明した革新的コンセプトは幅広い用途にわたって修正、変更でき、提示された例示的な教示に特許されるべき主題の範囲が限定されないことは当業者によって理解されるべきである。これは、添付の特許請求の範囲の精神および広範囲内にあるそのような全ての代案、修正、変更を包含する。
前述した実施形態は革新的原理の２、３の実装例を例示するものにすぎない。本発明の原理を具現しその精神および範囲内にある数多くの別構成を当業者が考案できることは理解されるべきである。
【００６２】
例えば、コントローラを内蔵するフラッシュメモリに使われている既存のリムーバブルカード規格または仕様に本発明の原理を容易く適応できることは、この開示から明らかである。そのような規格のひとつにあたるＰＣカード規格には３種類のＰＣカードの仕様がある。ＰＣカード規格はパーソナルコンピュータメモリカード国際協会（ＰＣＭＣＩＡ）の産物である。コンパクトフラッシュカード（ＣＦカード）は機能的にはＰＣカードと互換性があるが、ＰＣカードよりはるかに小さい。マルチメディアカード（ＭＭＣ）はさらに小さい不揮発性メモリカードである。その後のセキュアデジタル（ＳＤ）カードはＭＭＣカードの改良版で、サイズはほぼ同じである。メモリカードとしての使用に適するこれらや他の電子カードには規格や仕様が存在する。これらの規格には一般に公開されているものと、カードの利用団体に公開されているものとがある。
【００６３】
フラッシュＥＥＰＲＯＭシステム、特にコンピュータシステムやホストシステムに取り外し可能な方式で接続される密閉カードにパッケージされたものは、数々の用途に応用されている。現在の商用メモリカード形式にはパーソナルコンピュータメモリカード国際協会（ＰＣＭＣＩＡ）、コンパクトフラッシュ（ＣＦ）、マルチメディアカード（ＭＭＣ）、セキュアデジタル（ＳＤ）等のカード形式がある。本願の出願人にあたるサンディスク  コーポレイションは、これらのカードの一供給業者である。そのようなカードとともに使用するコンピュータシステムまたはホストシステムには、パーソナルコンピュータ、ノートブック形コンピュータ、手持ち型計算装置、カメラ、音声再生装置等がある。フラッシュＥＥＰＲＯＭシステムは、ホストシステムに内蔵された大容量ストレージとして利用されることもある。
【００６４】
図１Ｂに見られるメモリシステムは、コンピュータシステムの一部として埋め込むことができるほか、前述のカード規格のいずれか１つに準拠するカード等、カードの中にパッケージすることもできる。カードの場合は、カード上の外部端子で終結するバスがコンピュータシステムまたはホストシステム内の相補ソケットと嵌合する。１枚のコントローラチップと多数のメモリチップの使用が一般的だが、トレンドは言うまでもなく、回路の組み合わせによってそのようなシステムに使用する単独チップ数を減らす方向にある。
【００６５】
もうひとつの例として、コンピュータシステム１０は、パーソナルコンピュータ、デジタルカメラ、個人用携帯情報端末（ＰＤＡ）、携帯電話機、デジタルオーディオプレイヤ等、そのような不揮発性メモリシステムに対するニーズを持つ他の電子システムであってもよい。メモリシステム１００は、コンピュータシステム１０に埋め込まれてコンピュータシステムの一部を形成することもあれば、電気的かつ機械的に取り外し可能な方式でコンピュータシステムに接続されるカードの形をとることもある。
【００６６】
さらに、システムは、様々な機能が個別の機能ブロックによって実行される形で開示されている。しかし、種々のメディアに蓄積されたソフトウェアプログラムを実行する適切にプログラムされた１つ以上の処理装置によっていずれか１つ以上のブロックの機能が実現される構成に、あるいは機能がファームウェアにプログラムされる構成に、いずれか１つ以上の機能を等しく具現することもできる。
【００６７】
メモリモジュールが接続するバスは本発明の別の実装例で、例えばＳＰＩバス、１ビットまたは４ビットのＳＤカードバス、ＭＭＣバス、その他のバスであってもよい。同様に、ホストと連係するモジュールはＳＤでなくてもよく、ＣＦ等、ＳＤ以外の各種形式のものであってもよい。
【００６８】
さらに、手持ち型装置、マルチプロセッサシステム、マイクロプロセッサ方式またはプログラム可能な家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ等、他のコンピュータシステム構成で本発明を実践できることが当業者によって理解される。
【００６９】
本願の説明は、特定の要素、ステップ、機能が特許請求の範囲に必ず含まれる必須の要素であると示唆するものと解釈してはならない。特許されるべき主題の範囲はもっぱら許容される特許請求の範囲によって定められる。さらに、用語「ｍｅａｎｓ  ｆｏｒ（の手段）」の後ろに分詞が続く場合を除き、これらの請求項は３５  ＵＳＣ、第１１２節、第６項を引き合いに出すものではない。
【００７０】
添付の特許請求の範囲は可能な限り包括的であることを意図するものであり、題材が意図的に放棄、献呈、または破棄されることはない。
【図１Ａ】
0004682263.tif 000002
【図１Ｂ】
0004682263.tif 000003
【図２】
0004682263.tif 000004
【図３】
0004682263.tif 000005