説明

ダミーブロックによってタイムアウトを阻止する可搬型モジュールインターフェイス

分離可能なモジュールで物理インターフェイス規格のタイムアウト制限を回避する方法およびシステムを提供する。ダミーデータブロックの使用によってバスをアクティブに保つことにより、バスタイムアウト規定(両方向)を欺くことができ、タイムアウト時限内に確実におさまらない可能性のある複雑な処理操作の実行を可能にする。このため、メモリシステムは、特定仕様のバスタイムアウトより長い期間にわたってアプリケーションを実行したり、データを処理したりすることができる。メモリシステムのコントローラはレディ信号をデアサートし、メモリシステムが時間切れになる寸前までコンピュータシステム接続バスを「ビジー」状態に保つ。書き込み操作のときには、書き込みバスタイムアウト時限が満了する前にコントローラがコンピュータシステムからダミーデータブロックを受信することで、バスタイムアウト時限はリセットされる。読み出し操作のときには、読み出しバスタイムアウト時限が満了する前にコントローラがコンピュータシステムへダミーデータブロックを送信することで、バスタイムアウト時限はリセットされる。

【発明の詳細な説明】
【技術分野】
【0001】
本願は、可搬型電子モジュールへのインターフェイスに関し、より具体的には、堅固に既定されたインターフェイスへ機能を追加するアーキテクチャに関する。
【背景技術】
【0002】
相互参照
本願は2006年12月4日に出願された米国特許出願第11/566,685号(特許文献1)からの優先権を主張する。
【0003】
分離可能なメモリモジュールは1990年代以降極めて重要となり、それまでリムーバブルディスクや特殊なバックアップメディアで占められてきたロバストポータビリティ隙間市場の多くを占有するに至っている。そのようなモジュールは通常、一塊のメモリ(通常はフラッシュ)と、I/O機能と制御機能を操作するコントローラとを含んでいる。これらのメモリモジュールの普及にともない、当然ながらその容量は増加し、ビット当たりのコストは低下している。しかし、このほかにも重要な開発動向が少なくとも2つある。第一に、コンピュータ以外の多数の可搬型電子システムにもそのようなモジュールのためのインターフェイスが組み込まれている。(そのようなシステムの例として、カメラ、ビデオレコーダ、携帯電話機、個人用携帯情報端末(PDA)、音楽・ビデオプレイヤ、これらの混成体等を挙げることができる。)第二に、単純な読み書きを超えた機能(例えば、データセキュリティや保護に関するもの)を提供するため、一部のメモリモジュールには高度な機能性が組み込まれている。
【0004】
MMC、SD(ならびにそのバリエーションと後継)、CF、メモリスティック、USB等、そのようなモジュールには数通りの物理層プロトコルが採用されている。分離可能なモジュールの着脱は予期せず行われることがあるため、そのようなプロトコルの多くは非常に堅牢な動作に対応している。厳密なタイムアウトルールは堅牢動作を保証する特色のひとつである。例えばSDカードの物理層仕様では、標準容量SDカードの読み出しタイムアウトとして100ms以内、書き込みタイムアウトとして250ms以内を明確に定めている。(これらの規定はカードのアクセス中にシステムの行き詰まり、すなわち「ハング」を防ぐのに役立っている。)ホストは所定のタイムアウトで応答を得ない場合にカードが応答していないと仮定し、リカバリを試みることになっている(例えば、カードのリセット、パワーサイクル(ハードリセット)、拒否等)。(「SD Specifications Part 1, Physical Layer Simplified Specification Version 2.00, at sections 4.6, 4.6.1, and 4.6.2 」を参照されたい。この仕様書は、その全体が本願明細書において参照により援用されている。)
【0005】
しかし、モジュールに組み込まれる機能が豊富になるにつれ、堅牢動作に貢献するタイムアウトルールそのものが支障をきたすことがある。具体的には、読み出し・書き込みタイムアウト規定のため、所望の読み出し操作や書き込み操作が時間切れになるまでに、セキュリティ検証等の込み入ったデータ処理操作が完了しないおそれがある。
【0006】
最大タイムアウト値は容易く変更できるとは限らない。例えば、インターフェイスプロトコルルールが結線によりホスト側のFPGAやASICに組み込まれている場合がある。これは、結線によりレガシーハードウェアに組み込まれた制約事項は回避できないため、先進モジュールの導入にあたって問題となる。
【0007】
バスタイムアウトが生じると、ホストはパワーサイクルか、リカバリプロセスか、書き込み中止か、電源遮断に取りかかり、その結果、カードにおける操作は打ち切られる。しかし、問題は、有効な読み出し/書き込み操作が時間切れになるときに生じる。これはカードが、タイムアウト時限より時間がかかる操作を実行しているときに起こる。アーキテクチャのこの既存部分のため、より複雑な操作への前進が妨げられている。
【0008】
デジタルコンテンツの保護はリムーバブルメモリの開発を圧迫する一因となっている。利用者による著作物の自由な配布を禁じつつ、著作権で保護されたコンテンツを簡便に販売、移動、使用できるようにするため、多大な努力が払われてきた。デジタル音楽のセキュリティ保護にかかわる情報技術、家電製品、セキュリティ技術、コンテンツ所有者、インターネットサービスプロバイダを代表する180余りの企業・団体からなる産業フォーラムによって立ち上げられたセキュアデジタルミュージックイニシアチブ(SDMI)は、この方向における1つの画期的出来事だった。コンテンツ保護セキュアマルチメディアカードやその他のメディアにコンテンツを送り、コンテンツのコピーを作成、再生、交換する簡便で合法的な手段を利用者に提供するUDAC−MB(アクセス規制による普遍的配布−メディアベース)は、もうひとつの画期的出来事だった。これは、ライセンスキーと暗号化コンテンツの単独配布法に基づく技術である。UDAC−MBはKeitaide−Music(KdM)規格によって概ね引き継がれた。
【0009】
コンテンツにおけるもうひとつの重要ステップは、サンディスク コーポレイションによって2005年に発表されたTrustedFlash(登録商標)アーキテクチャである。TrustedFlashにより消費者は上質の音楽、映画、ゲームをフラッシュメモリカードで購入し、携帯電話機、ラップトップ形コンピュータ、PDA等の可搬型装置で区別なく利用できる。コンテンツ提供者が求める優れたセキュリティ/デジタル著作権管理ソリューションを提供するTrustedFlash製品により、音楽制作者や映画スタジオは上質なコンテンツを発売できる。消費者は、自身の携帯電話機やPCを使ってオンラインデジタル音楽サービスから上質のコンテンツをダウンロードできる。
【0010】
TrustedFlash技術ではカードそのものがデジタル著作権の管理機能を果たすため、消費者はカード(ならびにその内容)を他の対応装置に自由に移すことができ、そのコンテンツ保護システムが損なわれることはない。また、TrustedFlashカードは安全が確保されないホスト装置の場合に通常のカードとして機能する。
【0011】
従来のメモリカードや大部分の家庭用電子機器に見られるセキュリティを遥かに凌ぐ高度なセキュリティを提供するオンボードプロセッサと、高性能暗号エンジンと、不正操作防止技術とにより、TrustedFlashカードは非常に安全である。TrustedFlashプラットフォームに基づくカードは万全のデジタル著作権管理能力を提供し、対称・非対称アルゴリズム等の業界セキュリティ規格をサポートする。
TrustedFlashは、クレジットカード支払、大量輸送アクセス、ワンタイムパスワード認証等、モバイルコマースへの応用や安全オンライン金融取引への拡張も見込まれている。
【0012】
コンテンツ検証、ノード検証、および/またはファイルアクセス規制(例えば、秘密鍵ファイル)、および/または可搬型メディアに「チェックアウト」されたファイルを追跡するファイル管理オーバーヘッド手順のため、コンテンツ保護アーキテクチャには暗号アルゴリズムが必要になる場合が多い。これらはいずれも処理オーバーヘッドを増大させる。そのようなシステムにおける可搬型データモジュールとのデータ交換は、単純な読み出し/書き込み操作より遥かに込み入ったものになる。
【0013】
先進コンテンツ保護機能を実現するには、洗練された高整合性データベースをデータモジュールで保持、保全できなければならない。そのようなデータベースアーキテクチャでは、場合によってはアクセスのたびに全面的な整合性チェックが必要になる。通常、整合性チェックにあたっては暗号計算が要求されるため、そのようなデータベースを動かすには甚大なオーバーヘッドがかかる。したがって、そのような先進メモリモジュールに対する読み書きは表面的に単純なだけであって、インターフェイスのカード側にはアクセスのたびに大量の計算が強いられる。タイムアウトが固定されていると、この増大したオーバーヘッドによって問題が生じることがある。
【0014】
コンテンツ保護とモバイルデータインターフェイスについては、本願明細書において参照により援用されているウェブサイト(本願出願日におけるバージョンのもの)http://www.keitaide-music.org/, http://www.mmca.org/technology/, http://www.sdcard.org/, http://sdmi.org/ で詳しい情報を確認できる。
セキュリティアプリケーションに関する詳細は、本願明細書において参照により援用されている2006年11月6日に出願された米国特許出願第11/557,028号(特許文献2)とこの出願で引用されている資料で確認できる。
【先行技術文献】
【特許文献】
【0015】
【特許文献1】米国特許出願第11/566,685号
【特許文献2】米国特許出願第11/557,028号
【発明の概要】
【0016】
ダミーブロックによってタイムアウトを阻止する可搬型モジュールインターフェイス
本願は、バスタイムアウト規定に準拠しながら、セキュリティ機能等、高度な機能性をデータ転送操作に加える新しいアプローチを開示するものである。それには、例えば読み出しおよび/または書き込み操作にダミー操作を盛り込み、バスタイムアウトが複雑な機能に求められる数値処理の妨げとならないようにする。ホストはカードインターフェイスに関係する保安操作を起動するときに、タイムアウトを回避するにあたって十分な数のダミー操作をプログラムできる。
【0017】
開示される新規軸は種々の実施形態において少なくとも以下に記す利点の1つ以上を提供する。
・過剰なタイムアウトが回避される。
・既存のインターフェイスへより複雑な機能を加えることができる。
・インターフェイスソフトウェアが更新されるときには新しいダミーブロックシリーズパラメータも更新できるため、過剰なタイムアウトは回避される。
・最大タイムアウト値より時間のかかる手順では、いくつかのダミーブロックをプログラムしインターフェイス上で送信できるため、固定された最大タイムアウト値は回避される。
・可搬型モジュールインターフェイス定義に改良セキュリティ機能を加えることができる。
・レガシー機器から先進保安データベース機能を含む可搬型モジュールへアクセスできる。
【0018】
本発明の重要サンプル実施形態を示し、参照により本願明細書に組み込まれる、添付の図面を参照しながら、開示された発明を説明する。
【図面の簡単な説明】
【0019】
【図1A】コンピュータシステムのサンプル実施形態のブロック図である。
【図1B】メモリシステムのサンプル実施形態のブロック図である。
【図2】サンプル実施形態に従い書き込み操作を例示する概括的フローチャートである。
【図3】サンプル実施形態に従い読み出し操作を例示する概括的フローチャートである。
【発明を実施するための形態】
【0020】
現時点で好適な実施形態を具体的に参照しながら、(限定するためではなく例示のため)本願の数ある革新的教示を説明する。
【0021】
本発明の種々の実施形態に従い、メモリシステム(例えば、メモリカード)で書き込みまたは読み出しバスタイムアウト仕様を超過するためのシステムおよび方法を説明する。 図1Aは、本発明の実施形態を実践できるハードウェアおよび動作環境の図である。この環境はコンピュータシステム10の形をとる汎用計算装置を含み、このコンピュータシステムは、プロセッサ15と、メモリ25と、メモリ25を含む各種システムコンポーネントをプロセッサ15へ実効的に結合するバス30とを含む。ただ1つのプロセッサ15が存在することもあれば、複数のプロセッサ15が存在することもある。コンピュータシステム10は通常のコンピュータであってもよく、分散コンピュータであってもよく、あるいは他の何らかのタイプのコンピュータであってもよく、本発明はこれらに限定されない。
【0022】
バス30はインターフェイス90へ接続され、このインターフェイスは、メモリバスまたはメモリコントローラ、周辺バス、ローカルバス等、様々なバスアーキテクチャによる数種のバス構造のいずれであってもよい。インターフェイス90はダイレクトメモリアクセス(DMA)コントローラを含み、このコントローラは、メモリ25と、I/O装置との間で、例えば図1Bに見られるメモリシステム100との間で、データとコマンドを転送する。メモリ25は、基本入出力システム(BIOS)40を有する読み出し専用メモリ(ROM)40と、ランダムアクセスメモリ(RAM)45とを含む。RAM45はオペレーティングシステム50と、アプリケーションプログラム70と、プログラムデータ85と、後ほど詳述するドライバを含むプログラムモジュール80とを随時収容できる。
【0023】
図1Bには、前述したメモリシステム100が機能的に表示されている。不揮発性メモリシステム100は通常、フラッシュメモリアレイ140とコントローラ105とを含む。メモリセルアレイ140はフラッシュであってもよく、さもなくば他の何らかのタイプの不揮発性メモリであってもよい。コントローラ105とメモリセルアレイ140との間ではユーザデータが転送される。
【0024】
コントローラ105は、本発明の実施形態しだいでは、例えばプロセッサ110と、タイマー115と、読み出し専用メモリ(ROM)135と、ランダムアクセスメモリ(RAM)120とを含む。図1Bではタイマー115がハードウェアブロックとして示されているが、これをコードで実装してコントローラ105の中に蓄積することもできれば、ハードウェアとコードとの組み合わせとして実装することもできる。RAM120には、メモリシステム100の動作を制御するためのプロセッサ110によってアクセスされるファームウェアとソフトウェアとを蓄積できる。
【0025】
コントローラ105はまた、ダイレクトメモリアクセス(DMA)エンジンを含むフラッシュインターフェイス125と、同じくダイレクトメモリアクセス(DMA)エンジンを含むホストインターフェイス130とを含む。フラッシュインターフェイス125とホストインターフェイス130の役割は、コントローラ105とメモリセルアレイ140との間で、およびコントローラ105とコンピュータシステム10との間で、それぞれ通信および転送を管理することと制御することとを含む。
【0026】
具体的に、フラッシュインターフェイス125のDMAエンジンは、RAM120とのデータ転送とメモリセルアレイ140とのデータ転送とを管理し、かつ制御するように構成される。ホストインターフェイス130のDMAエンジンは、コンピュータシステム10とのデータ転送とRAM120とのデータ転送とを管理し、かつ制御するように構成される。コントローラ105は、メモリシステム100内での操作とそのバス上での操作とが非同期的に行われるように構成される。ホストインターフェイス130のDMAエンジンは本発明の一実施形態において、例えばレディ信号等の状態信号をアサートまたはデアサートすることによってバスを制御するように構成される。メモリシステム100がアクセス可能な状態になるとレディ信号がアサートされる。逆に、メモリシステム100がコマンドの処理や操作の実行でビジー状態にあるときには、レディ信号がデアサートされる。本発明の原理はコンピュータシステム10とメモリシステム100で具現する。本発明の原理によると、メモリシステム100は、例えばその仕様またはプロトコルのバスタイムアウト時限を超過する読み出し操作と書き込み操作を実行できる。本発明のこの実施形態で、メモリシステム100はSDカード仕様に基づく。コンピュータシステム10とメモリシステム100はいずれもSDカード仕様に適合するように構成され、いずれもバスタイムアウト時限を認識する。しかし、これとは別の仕様を、例えばパーソナルコンピュータメモリカード国際協会(PCMCIA)、コンパクトフラッシュ(CF)、マルチメディアカード(MMC)、セキュアデジタル(SD)カード等の仕様を本発明に従い実施できることを理解すべきである。
【0027】
一般的に、本発明の一実施形態によると、ある特定の仕様のバスタイムアウトより長い期間にわたってメモリシステムでアプリケーションを実行したりデータを処理できるようにしたりするには、メモリシステムのコントローラがレディ信号をデアサートし、メモリシステムが時間切れになる寸前までコンピュータシステムへ至るバスを「ビジー」状態に保つ。書き込み操作のときには、書き込みバスタイムアウト時限が満了する前にコントローラがコンピュータシステムからダミーデータブロックを受信することで、バスタイムアウト時限はリセットされる。読み出し操作のときには、読み出しバスタイムアウト時限が満了する前にコントローラがコンピュータシステムへダミーデータブロックを送信することで、バスタイムアウト時限はリセットされる。
前述したように、コンピュータシステム10のメモリ45にはアプリケーションプログラム70が蓄積される。この例のアプリケーションプログラム70のうちの少なくとも1つのアプリケーションプログラムは、メモリシステム100のRAM120に蓄積されたセキュリティアプリケーションをサポートするセキュリティアプリケーションである。
【0028】
さらに、プログラムモジュール80はドライバ(または結線ロジック)を含み、このドライバは、カードサービスの存在を検出し、カードファイルシステム(例えば、フラッシュファイルシステム)と連係し、メモリサービスに対するコールを処理し、バスタイムアウト時限を監視するように構成される。このドライバ(またはロジック)は、アプリケーションプログラム70とメモリシステム100との連係を図る。メモリシステム100にアクセスするための方法は、メモリシステムに実装されるメモリシステム(すなわちメモリ技術)のタイプしだいで異なるが、この例のメモリシステムはフラッシュ仕様を実装する。ドライバ(またはロジック)は、メモリシステム100へコマンドを提供し、メモリシステム100との間でデータを送受し、物理プロトコルレベルでバスタイムアウト時限(例えば、書き込み/読み出し)を管理するように構成される。ドライバ(またはロジック)の一機能として、ドライバはメモリシステム100からのレディ信号を監視し、特定の操作またはコマンドによるバスタイムアウト時限の超過を確認にする。前述したように、レディ信号はメモリシステム100が次のトランザクションに向けて準備がととのっていることを意味する。デアサートされたレディ信号は、メモリシステム100がコマンドや操作の実行でビジー状態にあり、次のトランザクションにかかれないことを意味する。
【0029】
前述したように、システムの柔軟性を損なう真の問題は、これらの機能をドライバが引き受けるのではなく、少なくとも部分的にはハードウェアに組み込まれる場合に起こる。(ドライバは更新できるが、ハードウェアの変更はさほど容易くない。)これまで様々な製造業者がSDカードやその他インターフェイスのルールをFPGAまたはASICで実装し、これらのハードウェア実装を保持するレガシー機器には柔軟性がない。
【0030】
先行技術のシステムの場合、メモリシステムで実行するアプリケーションや操作が長いプロセス、例えば書き込みまたは読み出しバスタイムアウト時限仕様を超過するプロセスなら、メモリシステムでバスタイムアウトが発生する。この場合はドライバのタイプにもよるが、通常ならばドライバがリセット信号やパワーサイクル等、メモリシステムのリカバリプロセスに着手する。いずれにせよドライバがバスタイムアウトを認識すると、コンピュータシステムはメモリシステムを正常に機能していないものとして扱い、メモリシステムで実行しているアプリケーションや操作は打ち切られる。
【0031】
一般的に、典型的な書き込み操作ではコンピュータがメモリへ書き込みコマンドを送信し、メモリでデータ受信の準備がととのったことを伝える指示がメモリから届くのを待つ。この準備完了の指示は、例えば信号であったり、ステータスであったり、他の何らかのプロトコル機構であったりする。準備がととのったメモリはコンピュータへ指示を送信し、これを受けてコンピュータは一連のデータブロックをメモリへ送信する。メモリは準備がととのっているため、少なくとも1つのデータブロックは受信でき、データブロックの合間にはビジー信号をトリガーし、発行し、駆動できる。コンピュータはメモリからの信号を監視し、メモリの準備がととのうとメモリへデータブロックを送信する。
【0032】
図2は、本発明の一実施形態に従い書き込み操作を例示する概括的フローチャートである。本発明のこの例示的実施形態では、コンピュータシステム10に蓄積されたセキュリティアプリケーションとメモリシステム100に蓄積されたセキュリティアプリケーションの脈絡の中で書き込み操作が実行される。開示するダミーブロックの使用は、時間がかかるアプリケーションでバスタイムアウトを阻止するのに適している。このコンセプトは、メモリシステムのバスタイムアウト仕様より長い処理時間を要するアプリケーションであればどのようなタイプのものにでも役立てることができる。前述したように、本発明はメモリシステム100で実行されるアプリケーションのタイプに限定されず、例えばメモリシステム内でのファイル削除やデータ圧縮にも応用できる。
【0033】
図2を参照し、本発明のこの実施形態においてコンピュータシステム10のアプリケーション(例えば、セキュリティプロセス)は、ブロック205でクエリコマンドをメモリシステム100へ送信する。具体的に、コンピュータシステム10のアプリケーションは、書き込みバスタイムアウトを回避するためにメモリシステム100へ送信するべきダミーデータブロックの数をメモリシステム100に照会することをプロセッサ15に命じる。
【0034】
ダミーデータブロックはセクタとブロックを持つ通常のデータブロックであり、そのサイズはメモリシステム100の仕様によって異なる。ダミーデータブロックの定義しだいでは、ダミーデータブロック内のデータに意味がなく、何でも含まれる。本発明のこの実施形態では、ダミーデータブロック内のデータに意味はない。有効データブロックからダミーデータブロックを区別するための識別子、例えば署名やパターンを、ダミーデータブロックに入れることもできる。
【0035】
コントローラ105はRAM120に蓄積された命令を実行し、書き込みバスタイムアウトを阻止するにあたってコンピュータシステム10のアプリケーションからメモリシステム100へ送信する必要のあるダミーデータブロック数を判断する(ブロック210)。メモリシステム100でアプリケーションの実行にかかる最大時間と書き込みバスタイムアウト時限仕様を知っているコントローラ105は、書き込みバスタイムアウトを回避するためにコンピュータシステム10のアプリケーションが送信しなければならないダミーデータブロック数を判断する。コントローラ105は本発明のこの実施形態で、メモリシステム仕様の書き込みバスタイムアウト時限を、メモリシステムでアプリケーションの実行にかかる最大時間に分けることによってダミーデータブロック数を判断する。
【0036】
例えばメモリシステム100でアプリケーション(例えば、セキュリティプロセス)の完了に10秒かかるなら、コントローラ105は、メモリシステム100で書き込みバスタイムアウト時限を超過せずにアプリケーションを実行するにあたって受信しなければならないダミーデータブロック数を判断する。メモリシステム100がSDカードなら、必然的に書き込みバスタイムアウトは250msである。これを知っているコントローラ105は、バスを1秒間ビジー状態に保つのに4個のダミーデータブロックがメモリシステム100に必要と判断する。メモリシステム100でアプリケーションが完了するのに10秒かかるなら、書き込みバスタイムアウトを回避するため、メモリシステム100は250ms毎に1ダミーデータブロック、全部で40個のダミーデータブロックを、受信しなければならない。読み出し操作の場合でも、読み出しタイムアウト時限が書き込みタイムアウト時限と異なることが見込まれるだけであって、計算の仕方は同じであることに注意すべきである。
【0037】
図2を参照し、ダミーデータブロック数が判明したコントローラ105は、ブロック215でそのダミーデータブロック数をコンピュータシステム10のアプリケーションへ送信する。本発明のこの実施形態によると、これらの通信はアプリケーションレベルで始まる。アプリケーションレベルでの通信により、ドライバは出来合いのまま変える必要はない。
【0038】
コンピュータシステム10のアプリケーションはクエリの結果を読み出し、適切なダミーデータブロック数でダミー書き込みコマンドを開始する。コンピュータシステム10のアプリケーションはダミー書き込みコマンドとダミーデータブロックをメモリシステム100へ送信する。ブロック220ではメモリシステム100がダミーデータブロックを受信し、ダミー書き込みコマンドの指示によりコントローラ105は処理中にダミー書き込み状態に入る。この状態のコントローラ105は、コンピュータシステム10のアプリケーションから受信するダミーデータブロックを無視する。前述したように、ダミーデータブロックはコンピュータシステム10のドライバによって監視され、ドライバには有効なデータブロックと何ら変わりなく映るため、ドライバはバスタイムアウトを発動しない。その後、メモリシステム100によってダミー書き込みコマンドが受信される。これを受けてコントローラ105はホストインターフェイス130を通じてレディ信号をデアサートし(つまり、バスをビジーに設定し)、メモリシステム100でアプリケーションを実行する。
【0039】
コントローラ105はブロック225で、アプリケーションの実行に割り振られた期間を監視する。例えば、ダミー書き込みコマンドが受信されるとコントローラ105がタイマー115を起動し、書き込み操作のバスタイムアウト時限を監視できるようにする。この例のメモリシステム100はSD仕様に基づくもののため、書き込みバスタイムアウト時限は250msである。ブロック230では、書き込みバスタイムアウト時限を超過する前に、タイマー115によってタイムアウト満了割り込みが発生し、これによりプロセッサ110は中断し、ホストインターフェイス130はレディ信号をアサートする。レディ信号を認識するコンピュータシステム10のドライバは、メモリシステム100に向けて次のダミーデータブロックの転送を開始し、その結果、書き込みバスタイムアウトは阻止される。ブロック235ではメモリシステム100がダミーデータブロックを受信し、無視する。
【0040】
前述したように、ドライバはダミーデータブロックと有効データブロックとの違いに気づかない。ドライバはダミーデータブロックの転送を監視し、書き込みバスタイムアウト時限内に転送が行われたものと認識するため、書き込みバスタイムアウトを発動しない。このため、メモリシステム100のアプリケーションはバスタイムアウトで中断されることなく実行し続けることができる。新たなダミーデータブロックが到着すると新規ダミーデータブロック割り込みによってタイマー115が起動し、これによりプロセッサ110は書き込みバスタイムアウト時限の満了に先立ち中断される。引き続きコントローラ105は、メモリシステム100のリセットやリカバリプロセスをともなわずにアプリケーションを実行できる。
【0041】
タイムアウト満了割り込みと新規ダミーデータブロック到着割り込みは、メモリシステム100のプロセッサ110によるアプリケーションの実行と並行して起動される。2つの割り込みはアプリケーションの実行中に周期的に継続する。メモリシステム100がその内部プロセスを完了すると、コンピュータシステム10によって送信される残りのダミーデータブロックは、ダミーデータブロックの合間に遅延をはさまず、メモリシステム100によって回収される。2ダミーデータブロック間の遅延時間はパラメータで制御でき、アプリケーションやメモリシステム仕様によって異なる。
【0042】
一般的に、典型的な読み出し操作ではコンピュータシステムがメモリシステムへ読み出しコマンドを送信し、メモリシステムでデータ送信の準備がととのったことを伝える指示がメモリシステムから届くのを待つ。前述したように、この準備完了の指示は、例えば信号であったり、ステータスであったり、他の何らかのプロトコル機構であったりする。準備がととのったメモリシステムは一連のデータブロックをコンピュータシステムへ送信する。メモリシステムは準備がととのっているため、少なくとも1つのデータブロックを送信でき、データブロックの合間にはビジー信号をトリガーし、発行し、駆動できる。
【0043】
図3は、本発明の一実施形態に従い読み出し操作を例示するフローチャートである。本発明のこの例示的実施形態では、メモリシステム100に蓄積されたセキュリティアプリケーションとコンピュータシステム10に蓄積されたセキュリティアプリケーションの脈絡の中で読み出し操作が実行される。書き込みの例と同様に、本発明は時間がかかるアプリケーションでバスタイムアウトを阻止するのに適している。したがって、読み出し操作中に処理時間がメモリシステム仕様を上回るメモリシステム100のアプリケーションであればどのようなタイプのものでも当てはめることができる。前述したように、本発明はメモリシステム100で実行されるアプリケーションのタイプに限定されず、例えばメモリシステム内でのファイル削除やデータ圧縮にも応用できる。
【0044】
本発明のこの実施形態で、RAM120に蓄積された命令を実行するコントローラ105は、読み出しバスタイムアウトを阻止するにあたってメモリシステム100からコンピュータシステム10へ送信する必要のあるダミーデータブロック数をブロック305で判断する。メモリシステム100でアプリケーションの実行にかかる最大時間と読み出しバスタイムアウト時限仕様を知っているコントローラ105は、読み出しバスタイムアウトを回避するためにアプリケーションが送信しなければならないダミーデータブロック数を判断する。コントローラ105は本発明のこの実施形態で、メモリシステム仕様の読み出しバスタイムアウト時限を、メモリシステムでアプリケーションの実行にかかる最大時間に分けることによってダミーデータブロック数を判断する。
【0045】
例えばメモリシステム100でアプリケーション(例えば、セキュリティプロセス)の完了に10秒かかるなら、コントローラ105は、読み出しバスタイムアウトを阻止するためにコンピュータシステム10のアプリケーションへ送信する必要のあるダミーデータブロック数を判断する。メモリシステム100がSDカードなら、必然的に読み出しバスタイムアウトは100msである。これを知っているコントローラ105は、バスを1秒間ビジー状態に保つのに10個のダミーデータブロックがメモリシステム100に必要と判断する。メモリシステム100でアプリケーションが完了するのに10秒かかるなら、読み出しバスタイムアウトを回避するため、メモリシステム100は100ms毎に1ダミーデータブロック、全部で100個のダミーデータブロックを送信しなければならない。
【0046】
書き込みの例と同様に、このダミーデータブロック数は、コンピュータシステム10のドライバがメモリシステム100におけるアプリケーションの実行中に読み出しバスタイムアウトを発動しないようにするために監視するダミーデータブロックの数量に相当する。
ダミーデータブロック数が判明したメモリシステム100のアプリケーション(例えば、セキュリティプロセス)は、ブロック310でコンピュータシステム10へクエリコマンドを送信する。具体的に、メモリシステム100のアプリケーションは、コンピュータシステム10へクエリコマンドを送信することをコントローラ105に命じる。このクエリコマンドは、読み出しコマンドの実行中に読み出しバスタイムアウトを回避するためにメモリシステム100から送信されるダミーデータブロック数をコンピュータシステム10に報告する。前述したように、これらの通信はアプリケーションレベルで始まるから、ドライバは出来合いのまま変える必要はない。
【0047】
コンピュータシステム10のアプリケーションはメモリシステム100からのクエリ結果を読み出し、ダミー読み出しコマンドを開始する。コンピュータシステム10のアプリケーションはメモリシステム100へダミー読み出しコマンドを送信する。ブロック315ではメモリシステム100がダミー読み出しコマンドを受信し、処理中はダミー読み出し状態に入ることをコントローラ105に指示する。この状態のコントローラ105は、読み出しバスタイムアウト時限が満了する前にダミーデータブロックをコンピュータシステム10へ送信する。前述したように、これらのダミーデータブロックはコンピュータシステム10のドライバによって監視され、ドライバには有効なデータブロックと何ら変わりなく映る。メモリシステム100でダミー読み出しコマンドが受信されると、コントローラ105はレディ信号をデアサートする(つまり、バスをビジーに設定する)。
【0048】
コントローラ105はブロック320で、アプリケーションの実行に割り振られた期間を監視する。例えば、ダミー読み出しコマンドが受信されるとコントローラ105がタイマー115を起動し、メモリシステム100で読み出し操作のバスタイムアウト時限を監視できるようにする。この例のメモリシステム100はSD仕様に基づくもののため、読み出しバスタイムアウト時限は100msである。ブロック325では、読み出しバスタイムアウト時限を超過する前にタイマー115によってタイムアウト満了割り込みが発生し、これによりプロセッサ110は中断し、ホストインターフェイス130はレディ信号をアサートする。
【0049】
その後ブロック330では、コントローラ105がコンピュータシステム10のアプリケーションへダミーデータブロックと署名を送信する。コンピュータシステム10のアプリケーションはこの署名をもとに、有効データブロックからダミーデータブロックを区別できる。署名を認識するコンピュータシステム10のアプリケーションは、ダミーデータブロックを無視できる。
【0050】
コンピュータシステム10のドライバはダミーデータブロックの転送を監視し、読み出しバスタイムアウト時限内に転送が行われたものと認識するため、読み出しバスタイムアウトを発動しない。前述したように、ドライバはダミーデータブロックと有効データブロックとの違いに気づかない。コンピュータシステム10のアプリケーションはダミーデータブロックを受信し、ダミーデータブロックの署名を認識し、ダミーデータブロックを無視する。
【0051】
新たなダミーデータブロックが送信されると、新規データブロック送信割り込みによってタイマー115が起動し、これによりプロセッサ110は読み出しバスタイムアウト時限の満了に先立ち中断され、コントローラ105は、メモリシステム100のリセットやリカバリプロセスをともなわずにアプリケーションを実行できる。
タイムアウト満了割り込みと新規ダミーデータブロック送信割り込みは、メモリシステム100のプロセッサ110によるアプリケーションの実行と並行して起動される。2つの割り込みはアプリケーションの実行中に周期的に継続する。2ダミーデータブロック間の遅延時間はパラメータで制御でき、アプリケーションやメモリシステムのアーキテクチャによって異なる。
【0052】
開示された種々の実施形態によると、ホストシステムと保安アクセスメモリを収容する分離可能な電子モジュールとを連係する方法が提供され、この方法は、a)コマンドによる書き込みで分離可能なモジュールにおける保安蓄積操作が要求される場合に、バスタイムアウトをともなうことなく分離可能なモジュールで保安蓄積操作を完了するにあたって十分に長い一連のダミー書き込みを実行するアクションと、b)コマンドによる読み出しで所望データの組み立てにあたって暗号操作が要求される場合に、タイムアウトを回避するためのダミー読み出しサイクルを実行するアクションと、を含み、これにより、レガシーバスアーキテクチャに複雑な手順を上乗せすることができる。
【0053】
開示された種々の実施形態によると、ホストシステムとデータモジュールとを連係する方法が提供され、この方法は、a)コマンドによる書き込みサイクルで複雑な計算の完了が要求される場合に、複雑な計算が終了するまで、タイムアウトを回避するためのダミーブロックを、このダミーブロック間に遅延をはさみながら書き込むアクションと、b)コマンドによる読み出しサイクルで複雑な計算の完了が要求される場合に、複雑な計算が終了するまで、タイムアウトを回避するためのダミー読み出しを、このダミー読み出し間に遅延をはさみながら実行するアクションと、を含む。
【0054】
開示された種々の実施形態によると、システムとメモリを収容する分離可能な電子モジュールとを連係する方法が提供され、この方法は、a)書き込みサイクル中に複雑な処理操作が要求される場合に、タイムアウトを回避するためのダミーブロックを書き込むアクションと、b)読み出しサイクル中に複雑な処理操作が要求される場合に、タイムアウトを回避するためのダミー読み出しを実行するアクションと、を含み、これにより、レガシーバスアーキテクチャに複雑な手順を上乗せすることができる。
【0055】
開示された種々の実施形態によると、コンピュータシステムとメモリシステムとの間でバスタイムアウトを回避する方法が提供され、この方法は、書き込みバスタイムアウト時限を出来させずにメモリシステムでアプリケーションを実行するにあたって必要なダミーデータブロック数を判断するステップと、ダミーデータブロック数をコンピュータシステムに報知するステップと、メモリシステムがダミーデータブロックを無視する状態にするダミー書き込みコマンドをコンピュータシステムから受信するステップと、メモリシステムがビジー状態にあることをコンピュータシステムに指示するステップと、メモリシステムでアプリケーションを実行するステップと、メモリシステムでアプリケーションの実行に割り振られた期間を監視するステップと、その期間が書き込みバスタイムアウト時限を超過する前にメモリシステムがレディ状態にあることを指示するステップと、コンピュータシステムからダミーデータブロックを受信するステップと、を含む。
【0056】
開示された種々の実施形態によると、保安アクセスメモリを収容する分離可能な電子モジュールで実装される、ホストシステムと連係する方法が提供され、この方法は、コマンドによる読み出しで所望データの組み立てにあたって暗号操作が要求される場合に、有効データが組み立てられかつ読み出されるまで、タイムアウトを回避するためのダミー読み出しサイクルを実行するアクションを含み、これにより、レガシーバスアーキテクチャに複雑な手順を上乗せすることができる。
【0057】
開示された種々の実施形態によると、保安データモジュールと連係する方法が提供され、コマンドによる書き込みサイクルで複雑な計算の完了が要求される場合に、複雑な計算が終了するまで、タイムアウトを回避するためのダミーブロックを、このダミーブロック間に遅延をはさみながら書き込むアクションと、少なくとも計算が終了しかつコマンドによる書き込みサイクルが完了するときまでに、ダミーブロックを破棄するアクションと、を備える。
【0058】
開示された種々の実施形態によると、コンピュータシステムとメモリシステムとの間でバスタイムアウトを回避する方法が提供され、この方法は、読み出しバスタイムアウト時限を出来させずにメモリシステムでアプリケーションを実行するにあたって必要なダミーデータブロック数を判断するステップと、ダミーデータブロック数をコンピュータシステムに報知するステップと、メモリシステムがビジー状態にあることをコンピュータシステムに指示するステップと、メモリシステムでアプリケーションを実行するステップと、メモリシステムでアプリケーションの実行に割り振られた期間を監視するステップと、その期間が読み出しバスタイムアウト時限を超過する前にメモリシステムがレディ状態にあることを指示するステップと、コンピュータシステムへダミーデータブロックと識別子とを送信するステップと、を含む。
【0059】
開示された種々の実施形態によると、コンピュータシステムとメモリシステムとの間でバスタイムアウトを回避するシステムが提供され、このメモリシステムは、メモリセルアレイと、メモリセルアレイへ接続されたコントローラと、を備え、このコントローラは、書き込みバスタイムアウト時限を出来させずにコントローラでアプリケーションを実行するにあたって必要なダミーデータブロック数を判断することと、ダミーデータブロック数をコンピュータシステムに報知することと、コントローラがダミーデータブロックを無視する状態にするダミー書き込みコマンドをコンピュータシステムから受信することと、メモリシステムがビジー状態にあることをコンピュータシステムに指示することと、コントローラでアプリケーションを実行することと、コントローラでアプリケーションの実行に割り振られた期間を監視することと、その期間が書き込みバスタイムアウト時限を超過する前にメモリシステムがレディ状態にあることを指示することと、コンピュータシステムからダミーデータブロックを受信することと、を実行するように構成される。
【0060】
開示された種々の実施形態によると、コンピュータシステムとメモリシステムとの間でバスタイムアウトを回避するシステムが提供され、このメモリシステムは、メモリセルアレイと、メモリセルアレイへ接続されたコントローラと、を備え、このコントローラは、読み出しバスタイムアウト時限を出来させずにコントローラでアプリケーションを実行するにあたって必要なダミーデータブロック数を判断することと、ダミーデータブロック数をコンピュータシステムに報知することと、メモリシステムがビジー状態にあることをコンピュータシステムに指示することと、コントローラでアプリケーションを実行することと、コントローラでアプリケーションの実行に割り振られた期間を監視することと、その期間が読み出しバスタイムアウト時限を超過する前にメモリシステムがレディ状態にあることを指示することと、コンピュータシステムへダミーデータブロックと識別子とを送信することと、を実行するように構成される。
【0061】
修正と変更
本願で説明した革新的コンセプトは幅広い用途にわたって修正、変更でき、提示された例示的な教示に特許されるべき主題の範囲が限定されないことは当業者によって理解されるべきである。これは、添付の特許請求の範囲の精神および広範囲内にあるそのような全ての代案、修正、変更を包含する。
前述した実施形態は革新的原理の2、3の実装例を例示するものにすぎない。本発明の原理を具現しその精神および範囲内にある数多くの別構成を当業者が考案できることは理解されるべきである。
【0062】
例えば、コントローラを内蔵するフラッシュメモリに使われている既存のリムーバブルカード規格または仕様に本発明の原理を容易く適応できることは、この開示から明らかである。そのような規格のひとつにあたるPCカード規格には3種類のPCカードの仕様がある。PCカード規格はパーソナルコンピュータメモリカード国際協会(PCMCIA)の産物である。コンパクトフラッシュカード(CFカード)は機能的にはPCカードと互換性があるが、PCカードよりはるかに小さい。マルチメディアカード(MMC)はさらに小さい不揮発性メモリカードである。その後のセキュアデジタル(SD)カードはMMCカードの改良版で、サイズはほぼ同じである。メモリカードとしての使用に適するこれらや他の電子カードには規格や仕様が存在する。これらの規格には一般に公開されているものと、カードの利用団体に公開されているものとがある。
【0063】
フラッシュEEPROMシステム、特にコンピュータシステムやホストシステムに取り外し可能な方式で接続される密閉カードにパッケージされたものは、数々の用途に応用されている。現在の商用メモリカード形式にはパーソナルコンピュータメモリカード国際協会(PCMCIA)、コンパクトフラッシュ(CF)、マルチメディアカード(MMC)、セキュアデジタル(SD)等のカード形式がある。本願の出願人にあたるサンディスク コーポレイションは、これらのカードの一供給業者である。そのようなカードとともに使用するコンピュータシステムまたはホストシステムには、パーソナルコンピュータ、ノートブック形コンピュータ、手持ち型計算装置、カメラ、音声再生装置等がある。フラッシュEEPROMシステムは、ホストシステムに内蔵された大容量ストレージとして利用されることもある。
【0064】
図1Bに見られるメモリシステムは、コンピュータシステムの一部として埋め込むことができるほか、前述のカード規格のいずれか1つに準拠するカード等、カードの中にパッケージすることもできる。カードの場合は、カード上の外部端子で終結するバスがコンピュータシステムまたはホストシステム内の相補ソケットと嵌合する。1枚のコントローラチップと多数のメモリチップの使用が一般的だが、トレンドは言うまでもなく、回路の組み合わせによってそのようなシステムに使用する単独チップ数を減らす方向にある。
【0065】
もうひとつの例として、コンピュータシステム10は、パーソナルコンピュータ、デジタルカメラ、個人用携帯情報端末(PDA)、携帯電話機、デジタルオーディオプレイヤ等、そのような不揮発性メモリシステムに対するニーズを持つ他の電子システムであってもよい。メモリシステム100は、コンピュータシステム10に埋め込まれてコンピュータシステムの一部を形成することもあれば、電気的かつ機械的に取り外し可能な方式でコンピュータシステムに接続されるカードの形をとることもある。
【0066】
さらに、システムは、様々な機能が個別の機能ブロックによって実行される形で開示されている。しかし、種々のメディアに蓄積されたソフトウェアプログラムを実行する適切にプログラムされた1つ以上の処理装置によっていずれか1つ以上のブロックの機能が実現される構成に、あるいは機能がファームウェアにプログラムされる構成に、いずれか1つ以上の機能を等しく具現することもできる。
【0067】
メモリモジュールが接続するバスは本発明の別の実装例で、例えばSPIバス、1ビットまたは4ビットのSDカードバス、MMCバス、その他のバスであってもよい。同様に、ホストと連係するモジュールはSDでなくてもよく、CF等、SD以外の各種形式のものであってもよい。
【0068】
さらに、手持ち型装置、マルチプロセッサシステム、マイクロプロセッサ方式またはプログラム可能な家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ等、他のコンピュータシステム構成で本発明を実践できることが当業者によって理解される。
【0069】
本願の説明は、特定の要素、ステップ、機能が特許請求の範囲に必ず含まれる必須の要素であると示唆するものと解釈してはならない。特許されるべき主題の範囲はもっぱら許容される特許請求の範囲によって定められる。さらに、用語「means for(の手段)」の後ろに分詞が続く場合を除き、これらの請求項は35 USC、第112節、第6項を引き合いに出すものではない。
【0070】
添付の特許請求の範囲は可能な限り包括的であることを意図するものであり、題材が意図的に放棄、献呈、または破棄されることはない。

【特許請求の範囲】
【請求項1】
ホストシステムと保安アクセスメモリを収容する分離可能な電子モジュールとを連係する方法であって、
a)コマンドによる書き込みで分離可能なモジュールにおける保安蓄積操作が要求される場合に、バスタイムアウトをともなうことなく分離可能なモジュールで保安蓄積操作を完了するにあたって十分に長い一連のダミー書き込みを実行するアクションと、
b)コマンドによる読み出しで所望データの組み立てにあたって暗号操作が要求される場合に、タイムアウトを回避するためのダミー読み出しサイクルを実行するアクションと、を含み、
これにより、レガシーバスアーキテクチャに複雑な手順を上乗せすることができる方法。
【請求項2】
ホストシステムとデータモジュールとを連係する方法であって、
a)コマンドによる書き込みサイクルで複雑な計算の完了が要求される場合に、前記複雑な計算が終了するまで、タイムアウトを回避するためのダミーブロックを、前記ダミーブロック間に遅延をはさみながら書き込むアクションと、
b)コマンドによる読み出しサイクルで複雑な計算の完了が要求される場合に、前記複雑な計算が終了するまで、タイムアウトを回避するためのダミー読み出しを、前記ダミー読み出しの間に遅延をはさみながら実行するアクションと、
を含む方法。
【請求項3】
システムとメモリを収容する分離可能な電子モジュールとを連係する方法であって、
a)書き込みサイクル中に複雑な処理操作が要求される場合に、タイムアウトを回避するためのダミーブロックを書き込むアクションと、
b)読み出しサイクル中に複雑な処理操作が要求される場合に、タイムアウトを回避するためのダミー読み出しを実行するアクションと、を含み、
これにより、レガシーバスアーキテクチャに複雑な手順を上乗せすることができる方法。
【請求項4】
コンピュータシステムとメモリシステムとの間でバスタイムアウトを回避する方法であって、
書き込みバスタイムアウト時限を出来させずにメモリシステムでアプリケーションを実行するにあたって必要なダミーデータブロック数を判断するステップと、
ダミーデータブロック数をコンピュータシステムに報知するステップと、
メモリシステムがダミーデータブロックを無視する状態にするダミー書き込みコマンドをコンピュータシステムから受信するステップと、
メモリシステムがビジー状態にあることをコンピュータシステムに指示するステップと、
メモリシステムでアプリケーションを実行するステップと、
メモリシステムでアプリケーションの実行に割り振られた期間を監視するステップと、
その期間が書き込みバスタイムアウト時限を超過する前にメモリシステムがレディ状態にあることを指示するステップと、
コンピュータシステムからダミーデータブロックを受信するステップと、
を含む方法。
【請求項5】
保安アクセスメモリを収容する分離可能な電子モジュールで実装される、ホストシステムと連係する方法であって、
コマンドによる読み出しで所望データの組み立てにあたって暗号操作が要求される場合に、有効データが組み立てられかつ読み出されるまで、タイムアウトを回避するためのダミー読み出しサイクルを実行するアクションを含み、
これにより、レガシーバスアーキテクチャに複雑な手順を上乗せすることができる方法。
【請求項6】
保安データモジュールと連係する方法であって、
コマンドによる書き込みサイクルで複雑な計算の完了が要求される場合に、前記複雑な計算が終了するまで、タイムアウトを回避するためのダミーブロックを、前記ダミーブロック間に遅延をはさみながら書き込むアクションと、
少なくとも前記計算が終了しかつコマンドによる書き込みサイクルが完了するときまでに、前記ダミーブロックを破棄するアクションと、
を含む方法。
【請求項7】
請求項4記載の方法において、
ダミーデータブロック数についてのクエリをコンピュータシステムから受信するステップをさらに含む方法。
【請求項8】
請求項7記載の方法において、
コンピュータシステムからのクエリは、コンピュータシステム内に蓄積されたアプリケーションによって開始される方法。
【請求項9】
請求項4記載の方法において、
前記ダミーデータブロック数を判断するステップは、メモリシステム仕様の書き込みバスタイムアウト時限を、メモリシステムでアプリケーションを実行するのにかかる最大時間に分けるステップをさらに含む方法。
【請求項10】
請求項4記載の方法において、
書き込みバスタイムアウト時限は、パーソナルコンピュータメモリカード国際協会(PCMCIA)、コンパクトフラッシュ(CF)、マルチメディアカード(MMC)、およびセキュアデジタル(SD)仕様のいずれか1つの書き込みバスタイムアウト時限を含む方法。
【請求項11】
請求項4記載の方法において、
前記期間を監視するステップは、書き込みバスタイムアウト時限より前の時間にメモリシステムに合図するように設定されたタイマーを始動させるステップをさらに含む方法。
【請求項12】
請求項4記載の方法において、
メモリシステム内のアプリケーションは、セキュリティプロセスを含む方法。
【請求項13】
請求項4記載の方法において、
コンピュータシステム内のドライバによって書き込みバスタイムアウト時限とダミーデータブロックとを監視するステップをさらに含む方法。
【請求項14】
コンピュータシステムとメモリシステムとの間でバスタイムアウトを回避する方法であって、
読み出しバスタイムアウト時限を出来させずにメモリシステムでアプリケーションを実行するにあたって必要なダミーデータブロック数を判断するステップと、
ダミーデータブロック数をコンピュータシステムに報知するステップと、
メモリシステムがビジー状態にあることをコンピュータシステムに指示するステップと、
メモリシステムでアプリケーションを実行するステップと、
メモリシステムでアプリケーションの実行に割り振られた期間を監視するステップと、
その期間が読み出しバスタイムアウト時限を超過する前にメモリシステムがレディ状態にあることを指示するステップと、
コンピュータシステムへダミーデータブロックと識別子とを送信するステップと、
を含む方法。
【請求項15】
請求項14記載の方法において、
ダミーデータブロック数を指示するクエリをメモリシステムからコンピュータシステムへ送信するステップをさらに含む方法。
【請求項16】
請求項14記載の方法において、
前記ダミーデータブロック数を判断するステップは、メモリシステム仕様の読み出しバスタイムアウト時限を、メモリシステムでアプリケーションを実行するのにかかる最大時間に分けるステップをさらに含む方法。
【請求項17】
請求項14記載の方法において、
読み出しバスタイムアウト時限は、パーソナルコンピュータメモリカード国際協会(PCMCIA)、コンパクトフラッシュ(CF)、マルチメディアカード(MMC)、およびセキュアデジタル(SD)仕様のいずれか1つの読み出しバスタイムアウト時限を含む方法。
【請求項18】
請求項14記載の方法において、
前記期間を監視するステップは、読み出しバスタイムアウト時限より前の時間にメモリシステムに合図するように設定されたタイマーを始動させるステップをさらに含む方法。
【請求項19】
請求項14記載の方法において、
メモリシステム内のアプリケーションは、セキュリティプロセスを含む方法。
【請求項20】
請求項14記載の方法において、
コンピュータシステム内のドライバによって読み出しバスタイムアウト時限とダミーデータブロックとを監視するステップをさらに含む方法。
【請求項21】
請求項14記載の方法において、
識別子は、署名またはパターンである方法。
【請求項22】
コンピュータシステムとメモリシステムとの間でバスタイムアウトを回避するシステムであって、
メモリセルアレイと、
メモリセルアレイへ接続されたコントローラであって、
書き込みバスタイムアウト時限を出来させずにコントローラでアプリケーションを実行するにあたって必要なダミーデータブロック数を判断することと、
ダミーデータブロック数をコンピュータシステムに報知することと、
コントローラがダミーデータブロックを無視する状態にするダミー書き込みコマンドをコンピュータシステムから受信することと、
メモリシステムがビジー状態にあることをコンピュータシステムに指示することと、 コントローラでアプリケーションを実行することと、
コントローラでアプリケーションの実行に割り振られた期間を監視することと、
その期間が書き込みバスタイムアウト時限を超過する前にメモリシステムがレディ状態にあることを指示することと、
コンピュータシステムからダミーデータブロックを受信することと、を実行するように構成されるコントローラと、
を備えるシステム。
【請求項23】
請求項22記載のシステムにおいて、
コントローラは、ダミーデータブロック数についてのクエリをコンピュータシステムから受信することを実行するようにさらに構成されるシステム。
【請求項24】
請求項22記載のシステムにおいて、
コンピュータシステムからのクエリは、コンピュータシステム内に蓄積されたアプリケーションによって開始されるシステム。
【請求項25】
請求項22記載のシステムにおいて、
コントローラは、メモリシステム仕様の書き込みバスタイムアウト時限を、コントローラでアプリケーションを実行するのにかかる最大時間に分けることによってダミーデータブロック数を判断することを実行するようにさらに構成されるシステム。
【請求項26】
請求項22記載のシステムにおいて、
コントローラは、書き込みバスタイムアウト時限より前の時間にコントローラに合図するように設定されたタイマーを始動させることによって期間を監視することを実行するようにさらに構成されるシステム。
【請求項27】
請求項22記載のシステムにおいて、
コントローラで実行されるアプリケーションは、セキュリティプロセスを備えるシステム。
【請求項28】
請求項22記載のシステムにおいて、
コントローラは、コンピュータシステム内のドライバによって書き込みバスタイムアウト時限とダミーデータブロックとを監視することを実行するようにさらに構成されるシステム。
【請求項29】
コンピュータシステムとメモリシステムとの間でバスタイムアウトを回避するシステムであって、
メモリセルアレイと、
メモリセルアレイへ接続されたコントローラであって、
読み出しバスタイムアウト時限を出来させずにコントローラでアプリケーションを実行するにあたって必要なダミーデータブロック数を判断することと、
ダミーデータブロック数をコンピュータシステムに報知することと、
メモリシステムがビジー状態にあることをコンピュータシステムに指示することと、
コントローラでアプリケーションを実行することと、
コントローラでアプリケーションの実行に割り振られた期間を監視することと、
その期間が読み出しバスタイムアウト時限を超過する前にメモリシステムがレディ状態にあることを指示することと、
コンピュータシステムへダミーデータブロックと識別子とを送信することと、を実行するように構成されるコントローラと、
を備えるシステム。
【請求項30】
請求項29記載のシステムにおいて、
コントローラは、ダミーデータブロック数を指示するクエリをコントローラからコンピュータシステムへ送信することを実行するようにさらに構成されるシステム。
【請求項31】
請求項29記載のシステムにおいて、
コントローラは、メモリシステム仕様の読み出しバスタイムアウト時限を、メモリシステムでアプリケーションを実行するのにかかる最大時間に分けることによってダミーデータブロック数を判断することを実行するようにさらに構成されるシステム。
【請求項32】
請求項29記載のシステムにおいて、
読み出しバスタイムアウト時限は、パーソナルコンピュータメモリカード国際協会(PCMCIA)、コンパクトフラッシュ(CF)、マルチメディアカード(MMC)、およびセキュアデジタル(SD)仕様のいずれか1つの読み出しバスタイムアウト時限を備えるシステム。
【請求項33】
請求項29記載のシステムにおいて、
コントローラは、読み出しバスタイムアウト時限より前の時間にコントローラに合図するように設定されたタイマーを始動させることによって期間を監視することを実行するようにさらに構成されるシステム。
【請求項34】
請求項29記載のシステムにおいて、
コントローラで実行されるアプリケーションは、セキュリティプロセスを備えるシステム。
【請求項35】
請求項29記載のシステムにおいて、
コントローラは、コンピュータシステム内のドライバによって読み出しバスタイムアウト時限とダミーデータブロックとを監視することを実行するようにさらに構成されるシステム。
【請求項36】
請求項29記載のシステムにおいて、
識別子は、署名またはパターンであるシステム。
【請求項37】
コンピュータシステムとメモリシステムとの間でバスタイムアウトを回避するシステムであって、
メモリアレイと、
メモリアレイと連携するコントローラであって、
書き込みサイクル中に複雑な処理操作が要求される場合に、タイムアウトを回避するためのダミーブロックを書き込むアクションと、
読み出しサイクル中に複雑な処理操作が要求される場合に、タイムアウトを回避するためのダミー読み出しを実行するアクションと、を実行するように構成されるコントローラと、
を備えるシステム。
【請求項38】
請求項37記載のシステムにおいて、
複雑な手順は、レガシーバスアーキテクチャに上乗せすることができるシステム。
【請求項39】
請求項37記載のシステムにおいて、
コントローラは、データブロック数を指示するクエリをコンピュータシステムへ送信するように構成されるシステム。
【請求項40】
請求項37記載のシステムにおいて、
ダミーデータブロック数は、アプリケーションの実行にかかる時間に関連するシステム。
【請求項41】
請求項40記載のシステムにおいて、
ダミーデータブロック数は、メモリシステム仕様の読み出しバスタイムアウト時限を、アプリケーションの実行にかかる最大時間に分けることによって判断されるシステム。
【請求項42】
請求項40記載のシステムにおいて、
バス読み出しタイムアウト時限は、パーソナルコンピュータメモリカード国際協会(PCMCIA)、コンパクトフラッシュ(CF)、マルチメディアカード(MMC)、およびセキュアデジタル(SD)仕様のいずれか1つのバス読み出しタイムアウト時限であるシステム。
【請求項43】
請求項37記載のシステムにおいて、
コントローラは、読み出しバスタイムアウト時限より前の時間にメモリシステムに合図するように設定されたタイマーを始動させるシステム。

【図1A】
image rotate

【図1B】
image rotate

【図2】
image rotate

【図3】
image rotate


【公表番号】特表2010−511934(P2010−511934A)
【公表日】平成22年4月15日(2010.4.15)
【国際特許分類】
【出願番号】特願2009−539368(P2009−539368)
【出願日】平成19年12月4日(2007.12.4)
【国際出願番号】PCT/US2007/024797
【国際公開番号】WO2008/070053
【国際公開日】平成20年6月12日(2008.6.12)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.コンパクトフラッシュ
【出願人】(506197901)サンディスク コーポレイション (175)
【Fターム(参考)】