説明

カード識別の互換性

【課題】ホストと1つ以上のデータラインを介してホストに結合される1つ以上のメディアカードとを含む高速通信の自動検出のための高速マルチメディアカードシステムを提供すること。
【解決手段】本発明のシステムは、ホストと1つ以上のデータラインを介してホストに結合される1つ以上のメディアカードとを含み、1つ以上のデータラインのうちの少なくとも1つはシリアルデータラインである。1つ以上のメディアカードはそれぞれそれに関連した固有CIDを有する。各カードの固有CIDを要求するホストからの第1のコマンドに応答し、かつ、ホストに応答して、1つ以上のメディアカードは、シリアルデータラインを介してそのメディアカードの各CIDをホストへ送信し、送信されたCIDがホストから予測されたものと一致する場合、ホストは、CIDが一致したカードに相対カードアドレス(RCA)を割り当てる、第2のコマンドを転送する。

【発明の詳細な説明】
【技術分野】
【0001】
(発明の分野)
本発明は、一般に、メディアカードの識別のための高速の方法および装置に関し、特に、不揮発性メモリを使用するマルチメディアカード(MMC)およびユニバーサルシリアルバス(USB)アプリケーションに用いられるメディアカードなどを識別する速度の増加に関する。
【背景技術】
【0002】
(従来技術の記載)
現在のマルチメディアカード(MMC)システムにおいて、ホストは、使用されるデータビット数の要件に応じた様々な方法で、ホストに接続される1つ以上のメディアカードと通信する。図1および2は、それぞれ従来のMMCシステムの2つ別々の例を示す。
【0003】
図1において、MMCシステム10は、2つのメディアカード14および16に結合されたホスト12を含むように図示される。2つのメディアカードだけがホスト12に結合されるように図示されるが、任意の数のカードが同様に結合されてもよい。メディアカードは、例えば、デジタルフィルムカードまたは任意の他のタイプの電子格納メディアといった格納メディアカードである。
【0004】
ホスト12は、データポート18、クロックポート20、およびコマンドポート22を含むように示される。これらは、それぞれ、メディアカード14のシリアルデータ入力/出力(SDIO)ポート24、メディアカード14のクロックポート26、およびメディアカード14のコマンドポート28に結合される。ホスト12はまた、メディアカード16と、そのホスト12のデータポート18、クロックポート20、およびコマンドポート22を介して通信する。すなわち、データポート18はメディアカード16のSDIOポート30に接続され、クロックポート20はメディアカード16のクロックポート32に接続され、コマンドポート22はメディアカード16のコマンドポート34に接続される。
【0005】
データポート18、SDIOポート24およびSDIOポート30は、それぞれシングルビットポートであり、従って、1ビットのデータが、任意の所定の時間においてホスト12とメディアカード14および16との間で転送される。このことは、一般にシリアルビット転送と呼ばれる。ホストは、コマンドポート22を介して、どのメディアカードがアドレスされるかに依存してコマンドポート28または34にコマンドを発行し、次に、データポート18を介して直列にホストによって発行される特定のコマンドに関連した任意のデータを転送する。ポート26および32と通信するクロックポート20を用いて、ホストとメディアカード14および16との間に発行されるデータと同期をとり、おそらくコマンド情報とを同期化する。故に、このような情報は、それらの間に正確に転送される。
【0006】
システム10が有する問題は、1ビットデータ転送の制限のために、カード14および16とホスト12との間でデータ転送レートが制限されることである。
【0007】
図2において、別の従来技術のシステムの例が示される。MMCシステム40は、以下にさらに詳細に記載されるように、ホストのデータポート48、クロックポート50およびコマンドポート52を介してカード44および46上の様々なポートへ、古いメディアカード44および新しいメディアカード46に結合されるホスト42を含むように図示される。古いメディアカード44は、図1のメディアカード14および16に類似し、従って、図2の従来技術のシステムは、図1の従来技術のシステムの改良なので、間単に表されるという意味では、「古い」と呼ばれる。新しいメディアカード46は、「新しい」と呼ばれる。なぜなら、その動作は、カード44の動作とは幾分異なっているからである。
【0008】
データポート48は、カード44のSDIOポート54およびカード46のDIOポート60に結合される。同様に、クロックポート50は、カード44のクロックポート56およびカード46のクロックポート62に結合される。コマンドポート52は、カード44のコマンドポート58およびカード46のコマンドポート64に結合される。
【0009】
ホスト42とカード44との間の動作は、図1のホスト12とカード14および16との間の動作と類似する。図2において、データは、シリアル形式で、ホスト42のデータポート48とカード44のSDIOポート54との間で転送される。
【0010】
しかし、ホスト42とカード46との間の通信は、データポート60が1ビット(またはシリアル形式)か、あるいは、4ビット形式(すなわちパラレル)のいずれかでデータを受信または送信し得る。コマンドポート64を介して、メディアカード46は、同時に4ビットのデータを受信することが可能であることをホスト42に知らせ、あるいは、所望ならば、同時に1ビットのデータを受信することが可能であることを知らせ、その後、ホストはそれに応じて応答する。実際に、ポート58と52との間で通信されるカード44自体のコマンドを介して、カード44はまた、そのデータ転送性能についてホストに知らせ得る。しかし、この場合、常に、1ビットであるか、またはシリアル転送である。すなわち、カード44は、1ビットのデータ転送と4ビットのデータ転送との間のスイッチングを有さない。一方、カード46は、このような性能を有し、後者は、ホスト42とカード46との間の通信を介してスイッチングする。クロックポート56および62に関連して、クロックポート50は、図1に関して論じられるように、データと同期するように振る舞う。
【0011】
動作中、ホスト42は、そのコマンドポート52を介して、カード44および46のそれぞれから、それがサポートし得るデータラインの数を要求する。一旦、これがホスト42によって確立されると、そのポート52を介して別のコマンドに送信し、データラインの新しい数へのスイッチングを指示する。図2のシステム40は、例えば、ホストが0D2(16進数の表記法)のオフセットアドレスで属性レジスタを読み出し、カードが8ビットまたは16ビットをサポートするかどうかを決定する場合、PCメモリカード国際協会(PCMCIA)といった産業における多くの標準的なボディに使用される。次に、ホストは、設定レジスタに1ビットを設定し、例えば、メディアカードを8ビットのみに設定する。
【0012】
図1に示される従来技術のシステムを越える図2の従来技術のシステムの利点は、2要素ある。第1に、明らかに、より高速のデータレート転送が、4ビットデータ転送を用いて達成される。パフォーマンスを向上させるために、パラレル処理が為される必要があることは、当業者にとって明らかである。第2に、カード46が新しいメディアカードである(すなわち、1または4ビットフォーマットの一方でデータを転送することができる)一方で、カード46は、古いメディア44のタイプと同様のタイプのカードスロットに設置され得、古いメディア44は、4ビットフォーマットでデータを転送することができない。さらに、図2に示される2つのメディアカードに勝る多数のカードが、古いメディアカードと新しいメディアカードとの任意の組み合わせにおいてシステム40で使用され得る。
【0013】
図2の従来技術のシステムが有する問題は、ホストが、サポートされ得るデータラインの数を要求するコマンドを最初に送信する必要があり、決定されると、その後、データラインの異なる数へのスイッチを求める別のコマンドを送信する必要があることである。このことは、多数のメディアカードがある場合、ハウスキーピングおよび初期化処理を増加させ、システムの動作を遅くするので、特に厄介である。
【0014】
図2aにおいて、さらに別の従来技術のシステム41が、mux65に結合されたホストコントローラ53を含むホスト51を含むように示される。mux65およびコントローラ53を介して、ホスト51は、任意の数のソケットであり得るソケット53、55、および57に結合される。後者のソケットは、データの電子格納装置に使用されるメディアカードを受信するためである。ソケットに挿入され得るカード(図示されず)は、ホストに対して各カードを識別するための相対カードアドレス(Relative Card Address、RCA)を含む。これらのアドレスは、個々のカードに対してそれぞれ固有であり、利用されるセットアップに依存して、カードまたはホストによって選択され得る。
【0015】
ホストコントローラ53とソケット53〜57に挿入されるカードとの間のデータ転送は、ソケット内の各カードに対してシリアル(1ビット)あるいは4、または8ビットの転送(複数ビット)であり得る。システム41の4ビットデータ転送の例は、図2bに示される。複数ビット転送において、mux105は、ホストコントローラ53と4つのスイッチング論理回路11、111、113および115との間に結合される。4つのデータラインDAT0〜3は、mux105を介してホストコントローラ53から4つのスイッチング論理回路11、111、113、および115に提供される。スイッチング論理回路は、ソケット1〜n、117〜121に結合される。ソケットは、図2aに関連して説明されるように、ソケット内部に挿入されるメディアカードを有する。
【0016】
システム41により実行されるステップによって、固有相対アドレスは、システム41のソケットに挿入される各カードのRCAレジスタに書き込まれる。第1に、ソケット117、119、および121に差し込まれるカードのRCAレジスタのコンテンツは、ホストコントローラ53によって読み出される。各カードのレジスタのコンテンツは、カードがサポートし得る転送のタイプ(すなわち、1ビット、すなわちシリアル、あるいは4ビットまたは8ビット)に関する情報を含む。一旦、RCAレジスタのコンテンツが読み出されると、カードのビットは、ホストコントローラ53によって設定され、カードによってサポートされるデータラインの数をイネーブルにする。図2bの例において、これは4ビットデータ転送であり、従って、ビットは4ビット転送を表すように設定される。従って、データ転送の準備をするために2つのイベントが起こる。第1に、RCAレジスタは、例えば、4ビットデータ転送がカードによってサポートされていることを保証するために読み出され、第2に、ビットがカードにおいて、カードが4ビットモードで動作することを可能にするように設定される。
【発明の概要】
【発明が解決しようとする課題】
【0017】
従って、ホストに結合される各MMCの異なった数のデータライン間をスイッチするための1つ以上のMMCを含む高速MMCおよび方法に対する必要性が生じて、必要とされるだけのMMCに対して任意の数のデータライン間をスイッチングすることを可能にし、それにより遅延を減少することによるシステム処理能力を増大しながら、最少数のコマンドがMMCとホストとの間を転送される必要がある。
【課題を解決するための手段】
【0018】
本発明により、高速通信の自動検出のための高速マルチメディアカードシステムであって、ホストと、1つ以上のデータラインを介して該ホストに結合される1つ以上のメディアカードであって、該1つ以上のデータラインの少なくとも1つはシリアルデータラインであり、該1つ以上のメディアカードは、それぞれ関連した固有カード識別番号(CID)を有し、各カードの固有CIDを要求する該ホストからの第1のコマンドに応答して該ホストに応答し、該1つ以上のメディアカードは、該シリアルデータラインを介して該ホストへ該各カードの固有CIDを送信し、該送信されたCIDが該ホストから予測されるものと一致する場合、該ホストは、CIDが一致したカードに相対カードアドレス(RCA)を割り当てる第2のコマンドを転送し、かつ、該1つ以上のメディアカードは、該1つ以上のデータラインの全てまたは一部上の所定の値を動かし、該ホストは、該データライン上の所定の値を動かしたカードによって高速での動作表示である該所定の値を自動的に送信し、該ホストは、該データライン上の該所定の値を動かしたカードと高速で通信する、1つ以上のメディアカードとを含む、高速マルチメディアカードシステムが提供され、これにより上記目的が達成される。
【0019】
前記1つ以上のメディアカードは、前記1つ以上のデータラインに接続されるデータポートを含む特定のメディアカードを含み、該データポートは、該特定のメディアカードによってイネーブルにされる場合、該データラインを所定の値に駆動するためのトランジスタに接続してもよい。
【0020】
前記1つ以上のデータラインはプルアップレジスタに結合されてもよい。
【0021】
前記特定のメディアカードは高速メディアカードであってもよい。
【0022】
前記1つ以上のメディアカードは、前記1つ以上のデータラインに接続されるデータポートを含む特定のメディアカードを含み、前記1つ以上のデータポートのサブセットは、そこに接続される該データラインを第1の所定の値に駆動し、該1つ以上のデータポートは、そこに接続される該データラインを第2の所定の値に駆動するための前記トランジスタに結合されてもよい。
【0023】
前記特定のメディアカードは高速カードであってもよい。
【0024】
前記ホストは、前記1つ以上のデータラインに結合される1つ以上のデータポートを含み、前記少なくとも1つのホストデータポートはホストトランジスタに結合されてもよい。
【0025】
前記1つ以上のメディアカードの1つが前記シリアルデータラインを介してシリアルに前記ホストと通信し続けてもよい。
【0026】
本発明により、高速通信の自動検出のための高速マルチメディアカードシステムであって、ホストと、1つ以上のデータラインを介して該ホストに結合される1つ以上のメディアカードであって、該1つ以上のデータラインの少なくとも1つはシリアルデータラインであり、該カードに第1のコマンドを送信するための該ホストはマルチビット通信をサポートすることが可能であることを示し、該第1のコマンドに応答する該カードは、それらが該データラインのビットの数を表すことをサポートし得、該ホストと通信するように用いられ得、その後、ホストは後者によって駆動される該データラインの数を用いる該メディアカードと自動的に通信する、高速マルチメディアカードシステムが提供され、これにより上記目的が達成される。
【0027】
前記少なくとも1つのメディアカードは高速メディアカードであってもよい。
【0028】
前記1つ以上のメディアカードは、前記1つ以上のデータラインに接続されるデータポートを含む特定のメディアカードを含み、該1つ以上のデータポートのサブセットは、それに接続される該データラインを第1の所定の値に駆動するためのレジスタに結合され、該1つ以上のデータポートの別のサブセットは、そこに接続される該データラインを第2の所定の値に駆動するためのトランジスタに結合されてもよい。
【0029】
前記ホストは、前記1つ以上のデータラインに結合される1つ以上のデータポートを含み、少なくとも1つのホストデータポートはホストトランジスタに結合されてもよい。
【0030】
前記1つ以上のメディアカードのうちの1つは前記シリアルデータラインを介してシリアルに前記ホストと通信し続けてもよい。
【0031】
本発明により、高速マルチメディアカードシステムにおいて高速通信の自動検出のための方法であって、1つ以上のデータラインを介して、ホストに結合される1つ以上のメディアカードから固有識別番号(CID)を要求する該ホストから第1のコマンドを受信するステップと、該第1のコマンドに応答して、該シリアルデータラインを介して該ホストにそれぞれのCIDを送信するステップと、該送信されたCIDの1つが該ホストから予測されるものと一致する場合、該ホストが、CIDが一致した該カードにそれぞれのカードアドレス(RCA)を割り当てる第2のコマンドを送信するステップと、該1つ以上のデータラインの全てまたは一部上の所定の値を動かすステップと、該データライン上の所定の値を動かした該カードによって高速の動作を示す該所定の値を自動的に感知するステップと、高速モードで、該データライン上の所定の値を駆動した該カードと通信するステップと包含する、自動検出のための方法が提供され、これにより上記目的が達成される。
【0032】
前記送信されるCIDが前記ホストから予測されるものと一致しない場合、前記1つ以上のメディアカードは「準備」状態のままであってもよい。
【0033】
本発明により、高速通信の自動検出のための高速マルチメディアカードシステムであって、ホストと、1つ以上の信号ラインを介して該ホストに結合される1つ以上のメディアカードであって、該1つ以上の信号ラインのうちの少なくとも1つはデータラインであり、該ホストおよび1つ以上のメディアカードは、第1の通信モードを用い、所定の時間周期において、互いに通信し、該ホストは、該カードにコマンドまたはデータを送信し、該ホストおよび/または該1つ以上のメディアカードのうちの1つは、該1つ以上の信号ライン上の値を動かし、該ホストまたは該1つ以上のメディアカードが該値を感知する場合、第2の通信モードがそこにスイッチされる、1つ以上のメディアカードとを含む、高速マルチメディアカードシステムが提供され、これにより上記目的が達成される。
【0034】
前記第1の通信モードはシリアルであり、前記第2の通信モードはマルチビットであってもよい。
【0035】
前記第2の通信モードにおいて、4、または8以上の数のデータラインが使用されてもよい。
【0036】
本発明により、高速マルチメディアカードシステムにおいて使用される高速通信の自動検出のための方法であって、第1の通信モードを用いて、1つ以上の信号ラインを介して、ホストと1つ以上のメディアカードとの間で通信するステップと、該第1の通信モードを用いて、コマンドまたはデータを該カードに送信するステップと、所定の周期時間において、該ホストおよび/または該1つ以上のメディアカードのうちの1つが該1つ以上の信号ライン上の値を動かすステップと、該ホストまたは該1つ以上のメディアカードが該値を感知する場合、第2の通信モードにスイッチするステップとを包含する、自動検出のための方法が提供され、これにより上記目的が達成される。
【0037】
本発明により、高速通信の自動検出のための高速マルチメディアカードシステムであって、ホストと、複数の信号ラインを介して該ホストに結合される1つ以上のメディアカードであって、該複数の信号ラインのうち少なくとも1つはデータラインであり、該ホストおよび該1つ以上のメディアカードは、第1の通信モードを用いて互いに通信し、該ホストまたは該1つ以上のメディアカードが、該ホストおよび/または該1つ以上のメディアカードのうちの1つが該1つ以上の信号ライン上の該所定の値を動かしたことを示す該信号ライン上の所定の値を検出する場合、第2の通信モードに自動的にスイッチする、1つ以上のメディアカードと含む、高速マルチメディアカードシステムが提供され、これにより上記目的が達成される。
【0038】
本発明により、高速通信の自動検出のための高速マルチメディアカードシステムであって、ホストと、複数のデータラインを介して該ホストに結合される1つ以上のメディアカードであって、該複数のデータラインのうち少なくとも1つはシリアルデータラインであり、該1つ以上のメディアカードは、それぞれ該1つ以上およびメディアカードに関連した固有カード識別番号(CID)を有し、各カードの固有CIDを要求する該ホストから第1のコマンドに応答して、該ホストに応答し、該1つ以上のメディアカードは、該シリアルデータラインを介して、該ホストにそれらのそれぞれのCIDを送信し、該送信されるCIDが該ホストから予想されるものと一致した場合、該ホストは相対カードアドレス(RCA)を割り当てる第2のコマンドをCIDが一致した該カードに転送し、該1つ以上のメディアカードは、該複数のデータラインの全てまたは一部上の所定の値を動かし、該ホストは、該データライン上の該所定の値を動かした該カードによって高速での動作を示す該所定の値を自動的に感知し、該ホストは、該データライン上の該所定の値を動かした該カードと高速で通信する、1つ以上のメディアカードとを含む、高速マルチメディアカードシステムが提供され、これにより上記目的が達成される。
【0039】
前記1つ以上のメディアカードは、該複数のデータラインに接続されるデータポートを含む特定のメディアカードを含み、該データポートは、該特定のメディアカードによってイネーブルにされる場合、所定の値に該データラインを駆動するためのトランジスタに接続してもよい。
【0040】
前記複数のデータラインはプルアップレジスタに結合されてもよい。
【0041】
前記特定のメディアカードは高速メディアカードであってもよい。
【0042】
前記1つ以上のメディアカードは、前記複数のデータラインに接続されるデータポートを含む特定のメディアカードを含み、該1つ以上のデータポートのサブセットはそこに接続される該データラインを第1の所定の値に駆動するためのレジスタに結合され、該1つ以上のデータポートの別のサブセットはそこに接続される該データラインを第2の所定の値に駆動するためのトランジスタに結合されてもよい。
【0043】
前記特定のメディアカードは高速カードであってもよい。
【0044】
前記ホストは前記複数のデータラインに結合される1つ以上のデータポートを含み、該ホストデータポートのうち少なくとも1つがホストトランジスタに結合されてもよい。
【0045】
前記1つ以上のメディアカードのうちの1つは、前記シリアルデータラインを介してシリアルに前記ホストと通信し続けてもよい。
【0046】
本発明により、高速通信の自動検出のための高速マルチメディアカードシステムであって、ホストと、複数のデータラインを介して該ホストに結合される1つ以上のメディアカードであって、該複数のデータラインのうち少なくとも1つはシリアルデータラインであり、該カードに第1のコマンドを送信するための該ホストはマルチビット通信をサポートすることが可能であることを示し、該第1のコマンドに応答する該カードは、それらが該データラインのビットの数を表すことをサポートし得、該ホストと通信するように用いられ得、その後、ホストは後者によって駆動される該データラインの数を用いる該メディアカードと自動的に通信する、高速マルチメディアカードシステムが提供され、これにより上記目的が達成される。
【0047】
前記メディアカードの少なくとも1つは高速メディアカードであってもよい。
【0048】
前記1つ以上のメディアカードは前記複数のデータラインに接続されるデータポートを含む特定のメディアカードを含み、該1つ以上のデータポートのサブセットはそこに接続される該データラインを第1の所定の値に駆動するためのレジスタに結合され、該1つ以上のデータポートの別のサブセットはそこに接続される該データラインを第2の所定の値に駆動するためのトランジスタに結合されてもよい。
【0049】
前記ホストは、前記1つ以上のデータラインに結合される1つ以上のデータポートを含み、該ホストデータポートの少なくとも1つはホストトランジスタに結合されてもよい。
【0050】
前記1つ以上のメディアカードのうちの1つは、前記シリアルデータラインを介してシリアルに前記ホストと通信し続けてもよい。
【0051】
簡単に述べると、本発明の実施形態は、ホストと、少なくとも1つがシリアルデータラインである1つ以上のデータラインを介してホストに結合される1つ以上のメディアカードとを含む高速通信の自動検出のための高速マルチメディアカードシステムを含む。1つ以上のメディアカードは、それぞれ、それに関連した固有カード識別番号(CID)を有する。各カードの固有CIDを要求するホストからの第1のコマンドに応答して、1つ以上のメディアカードは、シリアルデータラインを介して、それらの各CIDをホストに送信し、送信されたCIDが、ホストに予想されるCIDと一致した場合、ホストは、一致したCIDのカードに相対カードアドレス(RCA)を割り当てる第2のコマンドを転送する。1つ以上のメディアカードは、1つ以上のデータラインの全ておよび一部を介して所定の値を動かし(drive)、ホストは、データラインを介して所定の値を動かしたカードによって、高速動作を示す所定の値を自動的に感知する。ホストは、データラインを介して所定の値を動かしたカードと、高速モードで通信する。
【0052】
本発明の前述および他の目的、特徴、ならびに利点は、いくつかの図面を参照する好適な実施形態の以下の詳細な説明から明白である。
【発明の効果】
【0053】
本発明により、ホストに結合される各MMCの異なった数のデータライン間をスイッチするための1つ以上のMMCを含む、高速のMMCおよび方法が提供される。これにより、必要とされるだけのMMCに対して任意の数のデータライン間をスイッチングすることが可能になり、それにより遅延を減少することによるシステム処理能力を増大させながら、最少数のコマンドがMMCとホストとの間で転送される。
【図面の簡単な説明】
【0054】
【図1】図1は、従来技術のMMCシステム10の例を示す。
【図2】図2は、従来技術のMMCシステム40の別の例を示す。
【図2a】図2aは、従来技術のシステム41のさらに別の例を示す。
【図2b】図2bは、従来技術のシステム41のさらに別の例を示す。
【図3】図3は、本発明の実施形態によるMMCシステム70を示す。
【図3a】図3aは、本発明の実施形態によるMMCシステム70を示す。
【図3b】図3bは、本発明の実施形態によるMMCシステム70を示す。
【図4】図4は、本発明の別の実施形態による別のMMCシステム200を示す。
【図4a】図4aは、本発明の別の実施形態による別のMMCシステム200を示す。
【図4b】図4bは、本発明の別の実施形態による別のMMCシステム200を示す。
【図5】図5は、図4のシステム70および200によって進められるステップを記載するフローチャート300を示す。
【発明を実施するための形態】
【0055】
ここで図3を参照すると、高速MMCシステム70は、本発明の実施形態に従って古いメディアカード74と新しいメディアカード76とに結合されるホスト72を含むように示される。
【0056】
ホスト72は、メディアアダプタインターフェースブロック78を含むように示され、メディアアダプタインターフェースブロック78は、クロックポート112、コマンドポート114、およびデータポート116を含む。データポート116は、本発明の一実施形態においてパラレルなデータ転送を可能にするパラレルな1ビットデータラインまたは複数(ビット)データラインの一方のデータラインを含む、信号ライン上の信号を承認する。図3の特定の実施形態において、ポート116への、およびポート116からの信号ラインまたはデータラインの数は4つであるように示されるが、他の実施形態においては、異なった数のデータラインが使用されてもよいし、複数のビットの選択(例えば、1あるいは4または8ビット)が使用されてもよい。さらに、2つのメディアカード74および76がホスト72に結合され、通信状態になるように図3に示されるが、任意の数のカードが本発明の範囲および意図から逸脱して使用され得る。
【0057】
メディアカード74は、マイクロプロセッサ80、ホストインターフェースコントロールロジック82、コントローラ/状態機械84、およびフラッシュアレイ84を含むように示される。さらに、メディアカード74は、クロックポート106、コマンドポート108、およびシングルビットデータポート110を含む。マイクロプロセッサは、ホストコントロールロジック82に接続されるように示され、ホストコントロールロジック82は、コントローラ/状態機械84に接続されるように示され、コントローラ/状態機械84は、順にフラッシュアレイ86に接続されるように示される。クロックポート106は、入来データと同期するためにホスト72からクロック信号を受信する。コマンドポート108を用いて、ホスト72とメディアカード74との間で1回で1ビットデータを転送するためのデータポート110から、コマンドを受信する。メディアカード74は、図2のメディアカード44のラベルと同様であることを、「古い(old)」のラベルが付けられる。
【0058】
3つのポート196〜110は、マイクロプロセッサ80に結合されるように示され、マイクロプロセッサ80は、ソフトウェアを実行し、その間に、メディアカード74内(特に、内部にある様々なブロック間)のプロセスのフローを制御する。マイクロプロセッサ80は、コマンドポート108を介してホスト72から受信されるコマンドを復号化するため、かつ、そこからのコマンドを送信するためにホストコントロールロジック82に結合されるように示される。
【0059】
ホストコントロールロジック82は、フラッシュアレイ86内のデータの格納および取り出しを制御するコントローラ/状態機械84に結合されるように示される。フラッシュアレイ86は、本質的に不揮発性であり、かつ、データポート110から受信されるデータの格納のために最終的に用いられるフラッシュメモリセルから成っている。図2に関して以前に示したように、ホスト72とメディアカード74との間のデータ転送レートは、大部分、ホストとメディアカード74との間の1ビットシリアルデータラインに起因して限定される。
【0060】
新しいメディアカード76は、マイクロプロセッサ90、バッファ92、およびコントローラ/状態機械94に結合されるホストインターフェースコントロールロジック88を含むように示される。バッファ92およびコントローラ/状態機械94は、フラッシュメモリアレイ96に結合される。メディアカード76はまた、4つのトランジスタ98、100、102、104を含み、これらのトランジスタそれぞれは異なるデータラインに対して使用される。従って、使用されるデータラインが4つ以上ある場合、トランジスタの数はそれに応じて増加し、また逆の場合もある。トランジスタ98〜104のそれぞれは、当業者に公知であるように、ソース、ゲート、およびドレインポートを含む。これらのトランジスタは、N型トランジスタであるが、他のタイプのトランジスタが本発明の範囲および意図から逸脱することなく使用され得る。
【0061】
ホストインターフェースコントロール88は、クロックポート118、コマンドポート120、コントロールイネーブルポート122、およびデータポート124を含むように示される。クロックポート118は、ホスト72のクロックポート112に結合される。コマンドポート120は、ホスト72のコマンドポート114に結合されるように示され、データポート124は、トランジスタ98〜104のソースポートに結合されるように示される。トランジスタ98〜104のゲートポートは、ホストインターフェースコントロールロジック88のコントロールイネーブルポート122に結合される。トランジスタ98および102のドレインポートは、Vccまたは5ボルトなどの等価な高レベル直流(DC)電圧に接続される。トランジスタ100および104のドレインポートは、グランドまたは実質的に0ボルトの低レベル電圧レベルに接続される。
【0062】
トランジスタ98〜104のソースポートはまた、ホスト72のデータポート116に結合されるように示される。図3の実施形態において、ホスト72およびメディアカード76のデータポートは、4つのデータライン、すなわち4ビットを受信するように示される。しかし、他の数のビットまたはデータラインが、上述のように使用されてもよい。データポート116および124を接続するデータラインはまた、プルアップ(pull−up)レジスタ130に結合されるように示される。すなわち、データラインのそれぞれ、D0 132、D1 134、D2 136、およびD3 140は、特定のレジスタに接続され、これらのデータラインの他のサイドは、Vccまたは高レベル電圧に接続される。データラインD0、D1、D2、およびD3、132〜140は、それぞれプルアップ、またはプルダウン(pull−down)レジスタの一方に接続され得ることは当業者には容易に理解されるべきである。プルアップレジスタの場合、レジスタは、一方でデータラインに接続され、他方でVccに接続され、プルダウンレジスタに場合において、レジスタは、一方でデータラインに接続され、他方でグランドに接続される。プルアップレジスタの場合において、プルアップされる特定のデータラインが信号によって駆動しない場合、データラインは、「1」のロジック状態にあり、プルダウンレジスタの場合において、プルダウンされる特定のデータラインが信号によって駆動しないとき、データラインは「0」のロジック状態にある。
【0063】
データラインは、それらがコントロールイネーブルポート122によって駆動もセットされない場合、既知の電圧レベルにプルアップされるか、またはセットされる。コントロールイネーブルポート122は、4つのラインを含み、それぞれのラインは、トランジスタ98〜104のガットポートの1つにそれぞれ接続される。
【0064】
カード74と同様に、カード76のホストインターフェースコントロールロジック88は、コントローラ/状態機械94に結合されるように示され、コントローラ/状態機械94は、フラッシュアレイ86内のデータの格納および取り出しをコントロールする。ホストコントロールロジック88は、ポート118、120、および124を用いてホスト72からコマンドを受信し、ホスト72のポート112、114、および116と通信する。フラッシュアレイ96は、本質的に不揮発性であり、かつ、最終的にデータポート124から受信されるデータの格納のために使用されるフラッシュメモリセルから成る。カード74とは異なり、ホスト72とカード76との間のデータ転送は、1ビットシリアル転送に限定されず、ホスト72およびメディアカード76は、間単に説明されるように、パラレルで一度に4ビット、その間でデータ転送する。異なる数のデータ転送が使用される場合、ホストとカードとの間のデータ転送は、結果的に異なる。
【0065】
マイクロプロセッサ90は、ソフトウェアを実行し、かつ、その際にメディアカード76内、とりわけ内部の様々なブロック間のプロセスのフローを制御する。マイクロプロセッサ90は、コマンドポート120を介してホスト72から受信したコマンドを復号化し、かつ、ホスト72からのコマンドを送信するためのホストコントロールロジック88に結合されるように示される。
【0066】
ホストコントロールロジック88は、コントローラ/状態機械94に結合されるように示され、これは、フラッシュアレイ96内のデータの格納および取り出しを制御する。フラッシュアレイ96は、本質的に不揮発性であり、かつ、バッファ92から受信されるデータの格納のために最終的に使用されるフラッシュメモリセルから成る。バッファ92は、データポート124を介してホスト72によって送信されるデータを受信し、転送およびアレイ96内のより永続的な格納のために同一のデータを一時的に格納する。
【0067】
動作中、システム70の初期化時に、ホストは、例えば、カード74および76のように、ホストに結合されるメディアカードの全てが1つのデータライン(すなわちシリアルに)を用いてデータを転送することを想定する。実際に、ホストに結合されるカードの全ては、それ自体を1ビットシリアル転送モードにセットする。しかし、初期化中、ホスト72は、それぞれのカード74および76にアプリケーションに特定のコマンドを送信し、ホスト72が4または8あるいはそれ以上の数のデータラインを用いる高速モードをサポートすることを示す。カード74および76がこのようなコマンドに注目する場合、それらは、それぞれ自動的に、高速モードにスイッチし、かつ、所定の値を有するデータラインを駆動する。
【0068】
すなわち、図3の実施形態において、カード76が、そのポート120上で、ホスト72からのアプリケーションに特定のコマンドを検出する場合、カード76は、この実施例において、16進法で5の所定の値に対して、データポート116にデータポート124を接続する4つのデータラインを自動的に駆動する。カード76は、ポート122から伝来し、かつ、トランジスタ98〜104のゲートポートに進むコントロールイネーブルポートラインを、トランジスタ98〜104を「オン」にするために「オン」すなわち高電圧レベルになるようにセットすることによって、自動的に駆動する。そうすることによって、トランジスタ98は、高電圧レベルまたはVccまでD0データライン132を駆動する(これは4つのデータライン132〜140の最下位ビットである)。なぜなら、トランジスタ98のドレインゲートはVccに接続され、トランジスタがここで「オン」になり、データライン132はVcc状態バイナリ表記で「1」になるからである。コントロールイネーブルポート122が高電圧レベルまでトランジスタ100のゲートポートを駆動することによってトランジスタ100を「オン」にする場合、トランジスタ100は、低電圧レベルまたはグランド、すなわち実質的に0ボルトまでD1データライン134を駆動する。なぜなら、トランジスタ100のドレインゲートはグランドに接続されるからである。トランジスタ102のゲートポートが、ポート122によて高電圧レベルにセットされる場合、トランジスタ102は「オン」にされ、D2データライン136は高電圧レベル、すなわちVccになる。トランジスタ104のゲートポートが高電圧レベルにセットされる場合、トランジスタ104は「オン」になり、D3データライン140、すなわちデータライン132〜140の最上位ビットは、トランジスタ100に関して記載されることと同様の理由でグランドに駆動される。従って、データライン132〜140のバイナリ状態は「0101」であり、これは、16進法で値「5」である。本発明の他の実施形態において、「5」以外になり得るこの値は、カード76が一度に4ビットを用いて通信し得、ホストとカード76との間の全ての通信は、パラレルで4ビットを用いて為されることをホスト72に示す。このような通信中、データライン132〜140は、レジスタ130を用いて前述されるように終端処理されるか、またはプルアップされる。レジスタ130を含む理由は、2つ以上メディアカードがデータライン132〜140を駆動するか、またはコントロールし得るからである。
【0069】
例示の目的で、カード76が8ビットデータラインをサポートし、ホストが同様に8ビットデータ転送をサポートする場合、カード76は、16進法で「55」の値に8データラインを駆動し、それ以降、ホストは、8ビットデータ転送を用いてカード76と通信する。カード76だけが4ビットデータ転送をサポートし、ホスト72が4または8ビット転送の一方をサポートすることが可能であった場合、カードは、4ビットモードのみに応答し、データライン132〜140の値を評価することによってホストは、4ビットデータ転送を用いてカード76と通信する。
【0070】
カード74の場合、それが1ビットデータよりも多い転送をサポートすることができないとき、それは、ホストによって送信されたアプリケーションに特定のコマンドを拒否し、シングルデータラインモードにおいて通信し続ける。ホスト72が、所定の16進法の値(例えばカード74からのデータライン上の「5」または「55」)を検出しないとき、ホスト72は同様に動作する。ホスト72は、例えばベンダーコマンドといったアプリケーションに特定のコマンドをそれと通信する各メディアカードに送信し、メディアカードは、個々に、所定の状態(例えば「5」の値)にまでデータラインを駆動するか、この様態でバスをイネーブルにする。この周期中、ホスト72はバスまたはデータラインをチェックし、各メディアカードがサポートし得るデータラインの数を決定する。それ以降、従って、ホストは各メディアカードと通信する。
【0071】
本発明の代替の実施形態において、異なるアプリケーションに特定のコマンドが、使用される異なった数のデータラインに対して用いられる。例えば、所定のコマンド「AcmdX0」は、ホスト72からカード74および76に伝達され、4ビットパラレルデータ転送を表す。このコマンドが任意のカードによって拒否される場合、ホストは、1ビットシリアル転送であるデフォルト状態でこのコマンドを拒否したカードと通信し続ける。しかし、任意のカードがコマンド「AcmdX0」を受け入れる場合、ホスト72は、別のコマンド(例えば「AcmdX1」)を送信し、カードが8ビットデータ転送を用いる通信を行うことができるかどうかを確かめるために8ビットパラレルデータ転送を表す。カードが「AcmdX1」コマンドを受け入れる場合、ホスト72およびカードは8ビットモードにおける通信を自動的に開始する。
【0072】
図3の実施形態において、「AcmdX0」がホスト72によってカード74に送信されるとき、それは拒否され、従って通信は1ビットシリアル転送を用いて再開する。しかし、同じコマンドがカード76に送信されるとき、コマンドはカード76によって受け入れられ、次に、ホストは「AcmdX1」コマンドをカード76に送信し、それが拒否され、故に、ホストは4ビットでカード76と通信を行うように認識する。ホスト72は、前述に記載されるように、コマンドがデータラインまたはバスの状態をチェックすることによって拒否される。
【0073】
本発明のさらに別の実施形態において、ホストは、カード74および76のそれぞれにコマンドを送信し、それが4または8ビットの一方をサポートし得ることを表す。データライン132〜140は、通常、メディアカードによって駆動されないとき、高レベル状態またはVccに駆動されるので、ホストからのコマンドに応答する各カードは、それがサポートし得るデータラインの数を駆動し、故に、ホストは各メディアカードによってサポートされるラインの数を認識し、その結果から各カードと通信する。例えば、カード76がホストからコマンドを受信する場合、カード76は4つ全てのラインを駆動し、その後、ホストは4つのパラレルデータラインを用いてカード76と通信するように認識する一方、カード74がホストコマンドを受信する場合、カード74は1つのデータラインのみを駆動し、従ってホストはシリアルに(すなわち1データビットを用いて)カード74と通信する。
【0074】
従って、本発明において、自動的な検出は、その間の高速通信に対してホストおよびメディアカードによって実行される。
【0075】
図4に関して、別の高速MMCシステム200は、本発明の別の実施形態に従って示される。システム200は、ホストおよび新しいメディアに対する変更により図3の多くの構造および接続を含む。実際に、図3に示されるものと同様の参照番号を有する全ての構造および接続は、同じである。しかし、ホスト72’および新しいメディアカード76’は、以下に詳細に示されるように変更される。図4に関して以下に述べられない全てのものは、図3のままである。
【0076】
図4において、ホスト72’がデータポート116を含み、データポート116のD1は、トランジスタ202に接続されるように示され、ソースポートにおけるトランジスタはVccに接続され、ゲートポートにおけるトランジスタはイネーブル信号に接続される。
【0077】
データポート116のD2は、プルダウンレジスタ204に接続されるように示され、一端でプルダウンレジスタはグランドに接続され、他端でプルダウンレジスタはD2ラインに接続され、さらにイネーブル信号に接続される。
【0078】
図3において、データポート124をなおも含んでいる新しいメディアカード76’は、D0がトランジスタにもはや接続されず、それどころか、ポート124からD0 132’に接続されるように変更される。D1 134’は、プルダウンされるレジスタ208に、あるいは、一方で0すなわちグランド電圧レベルに接続され、他方でD1 134’に接続され、さらに、ポート122によってコントロールされる。D2 136は、図3に関して記載および論じられるもの同様の様態でトランジスタ102に接続され、D3 140’は、例えば図3に示されるように、トランジスタと対抗するように、図4においてレジスタ206に接続される。レジスタ206は、一方でD3 140’に接続され、かつ、他方で実質的にゼロまたはグランドに接続されるプルダウンレジスタである。
【0079】
図4に関して、動作中、図4の実施形態は、高速通信のホスト72’およびメディアカード76’自動的な検出を提供する。ホスト72’は、図4の例示おいて、そこに接続される全てのカードに対して、コマンドをそのポート114を介して発行し、これらはカード74および76’であり、各カードの固有カード識別番号(CID)を要求する。全ての識別されないカードは、ビットワイズ(bit wise)がカードの外に出ていくビットストリームをモニタする間、シリアルにそれら各D0データライン(カード74の場合、これらはD0 110であり、カード76’の場合、これはD0 132’である)上のCIDを同時に送信する。すなわち、カードはまた、同時にD0ラインをモニタする。例えば、D0ラインが駆動されない場合、高いかまたは「1」値のままであるが、別のデバイスがD0ラインを駆動する場合、明らかに、それを駆動するデバイスに依存して低いかまたは「0」値を有し得るように、D0ラインはオープンドレインである。後者の場合、D0ラインは、次の段階までプロセスからそれ自体を取り除く。
【0080】
これらカード(これらカードの外に出ていくCIDは、ビット周期の任意の1つにおいてコマンドポート108および120上の対応するビットに一致しない)は、データバスライン(D0〜3データライン)からこれら自体除き、「準備」状態に進む。この場合、そのD0ライン上にあるコンテンツとコマンドラインとの一致に成功するカードは、識別状態に進む準備ができている。識別状態では、ホスト72’がCMD3(またはset_relative_addr)を発行して、D0ポートを介してカードにデータをシリアルに送信することによって相対カードアドレス(RCA)をカードに割り当てる。
【0081】
このとき、いくつかのD1およびD2ラインはアクティブではない。高速通信をサポートするホストは、トランジスタ202をイネーブルにし、プルダウンレジスタ204をイネーブルにすることによってそのD1ラインを高駆動する。
【0082】
CMD3コマンドの間、高速モードをサポートするメディアはまた、D1ライン上のトランジスタ102およびD1ライン134上のプルダウントランジスタをイネーブルにする。このとき、ホスト72’およびメディアカード76’は、D1およびD2データラインの状態をモニタする。すなわち、D1およびD2ラインが共に高い場合、ホスト72’は、カード(例えば、カード76’)がシリアルデータ転送とは対照的な複数のデータビット転送を介してより高速をサポートするか、またはより高速で動作することが可能である。後者の場合、ホスト72’は、モードを高速に変化させる。次にカード76’は、134’のD1データラインおよび136のD2データライン上の高い値または状態を検出または感知する。従って、カード76’は、高速モードにスイッチする。しかし、D1またはD2ラインの一方にある値が、高い状態にあるとして検出されない場合、カード76’およびホスト72’は、1ビットまたはシリアルモードにおいて動作し続ける。
【0083】
4ビットより大きい(例えば8ビット)をサポートするデバイスまたはメディアカード(例えばカード76’)では、データラインの最上位ビット(すなわち、4つの最上位ビット)は、ビット動作が1あるいは4または8ビット以上の間に選択するように復号化される。より大きいデータレートのために、この方法は、ホストおよびメディアカードが正しいモードを自動的に選択することを可能にする。また明らかに、パラレルにおけるより多数のデータラインの使用は、より速いデータ転送を引き起こし、故に、より高いシステム性能を引き起こす。
【0084】
図3および図4の実施形態ならびに本発明は、一般に、そこに接続されるホストおよびメディアカード(単数または複数)が、例えば、ホストとメディアカードとの間に結合される1、4、8、または任意の他の数のデータラインあるいはビットといった任意の動作モードにおいて選択および/または動作することを可能にするということに留意されたい。明らかに、パラレルデータラインの数が多くなればなるほど、システム全体の動作は速くなる。さらに、本発明は、上述のように、多様なアプリケーション(例えばMMCインターフェース)、あるいは、USBモード、または当業者によって理解される任意の他のタイプのアプリケーションにおいて使用され得る。
【0085】
ここで図5を参照すると、フローチャート300は、図3のシステム70および図4のシステム200によってそれぞれ進められるステップを記載するように示される。デフォルト状態では、全てのメディアカードは「準備」状態である。ステップ302において、読み出し動作が開始される。次に、ステップ304において、ホストは、それと通信状態にある全てのメディアカードに「CMD2」コマンドを発行する。次に、ステップ306において、全てのメディアカードは、D0ラインを介してホストにCID情報を動かす。次に、ステップ308において、全てのメディアカードは、D0ラインをモニタし、D0ライン上のCIDをメディアカード自体のCIDと比較する。次に、ステップ310において、D0ライン上に現れるCIDとメディアカード自体のCIDとの間の一致が為されるかどうかが決定される。
【0086】
310において、一致されることが決定される場合、プロセスは、識別段階に入る時点でステップ314に続く。ステップ310において、一致しないことが決定される場合、プロセスは、D0ラインがすぐに解放されるステップ312に進む(もはや駆動しない)。
【0087】
ステップ314の後、ステップ316において、ホストは、「CMD3」コマンドまたは「set_relative_address」コマンドを発行する。次に、318において、ホストと通信する任意のメディアカードが高速カードであるかどうか決定される。ステップ318において、少なくとも1つのメディアカードが高速カードである場合、その特定の高速メディアカードはD1ライン上のプルダウンレジスタをイネーブルにし、ステップ320においてD2ラインを高駆動する。次にステップ322において、ホストがさらに高速で動作する場合、ホストは、D1ラインを高駆動し、D2ライン上のプルダウンレジスタをイネーブルにする。次に、ステップ324において、D1およびD2ライン上の値が所定の値(例えば、「11」すなわちともに高い)であるかどうかが決定される。ステップ326において、その場合、ホストおよび高速メディアカードは4ビットモードにスイッチし、従って、これに基づいて動作する。しかし、324において、D1およびD2ライン上の値が「11」でないと決定されるとき、プロセスはステップ328に言及され、ホストが1ビットモードで動作し続ける。ステップ302、すなわち最初に、ホストおよびメディアカードは、1ビットモードで動作することに留意されたい。
【0088】
ステップ318において、高速メディアカードが存在しない場合、プロセスはステップ330に続き、ホストが高速なホストかどうかの決定が為され、そして高速であると決定される場合、ステップ332において、ホストはD1ラインを高駆動し、D2ライン上のプルダウンレジスタをイネーブルにし、かつ、D1およびD2ライン上の値をチェックする。この値は、「11」にならず、従って、ステップ334においてカードおよびホストは、1ビットモードで動作し続ける。ステップ330において、ホストが高速で動作しないと決定される場合、プロセスは、メディアカード(単数または複数)およびホストが1ビットモードで動作し続ける時点で、ステップ336に続く。
【0089】
以上のように、本発明の好ましい実施形態を用いて本発明を例示してきたが、本発明は、この実施形態に限定して解釈されるべきものではない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。当業者は、本発明の具体的な好ましい実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。本明細書において引用した特許、特許出願および文献は、その内容自体が具体的に本明細書に記載されているのと同様にその内容が本明細書に対する参考として援用されるべきであることが理解される。
(要約)
本発明の実施形態は、ホストと1つ以上のデータラインを介してホストに結合される1つ以上のメディアカードとを含む高速通信の自動検出のための高速マルチメディアカードシステムを含み、1つ以上のデータラインのうちの少なくとも1つはシリアルデータラインである。1つ以上のメディアカードはそれぞれそれに関連した固有カード識別番号(CID)を有する。各カードの固有CIDを要求するホストからの第1のコマンドに応答し、かつ、ホストに応答して、1つ以上のメディアカードは、シリアルデータラインを介してそのメディアカードの各CIDをホストへ送信し、送信されたCIDがホストから予測されたものと一致する場合、ホストは、CIDが一致したカードに相対カードアドレス(RCA)を割り当てる、第2のコマンドを転送する。1つ以上のメディアカードは、1つ以上のデータラインの全てまたは一部上の所定の値を動かし、ホストは、データライン上へ所定の値を動かしたカードによって高速での動作を示す所定の値を自動的に感知する。ホストは、データライン上へ所定の値を動かしたカードと、高速モードで通信する。

【特許請求の範囲】
【請求項1】
本願明細書に記載されたマルチメディアカードシステム。

【図1】
image rotate

【図2】
image rotate

【図2a】
image rotate

【図2b】
image rotate

【図3】
image rotate

【図3a】
image rotate

【図3b】
image rotate

【図4】
image rotate

【図4a】
image rotate

【図4b】
image rotate

【図5】
image rotate


【公開番号】特開2011−34593(P2011−34593A)
【公開日】平成23年2月17日(2011.2.17)
【国際特許分類】
【出願番号】特願2010−246901(P2010−246901)
【出願日】平成22年11月2日(2010.11.2)
【分割の表示】特願2004−166452(P2004−166452)の分割
【原出願日】平成16年6月3日(2004.6.3)
【出願人】(300005057)レクサー・メディア・インコーポレイテッド (13)
【氏名又は名称原語表記】Lexar Media,Inc
【Fターム(参考)】