JP2004500656A - データ・トランザクション・アクセス・システムおよび方法 - Google Patents
データ・トランザクション・アクセス・システムおよび方法 Download PDFInfo
- Publication number
- JP2004500656A JP2004500656A JP2001556869A JP2001556869A JP2004500656A JP 2004500656 A JP2004500656 A JP 2004500656A JP 2001556869 A JP2001556869 A JP 2001556869A JP 2001556869 A JP2001556869 A JP 2001556869A JP 2004500656 A JP2004500656 A JP 2004500656A
- Authority
- JP
- Japan
- Prior art keywords
- bus
- pcmcia
- coupled
- master
- host
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims description 31
- 230000006854 communication Effects 0.000 claims abstract description 7
- 238000004891 communication Methods 0.000 claims abstract description 4
- 230000003111 delayed effect Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 description 14
- 238000012546 transfer Methods 0.000 description 10
- 230000000694 effects Effects 0.000 description 9
- 230000002093 peripheral effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000002411 adverse Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
- G06F13/4226—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus with asynchronous protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/368—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
- G06F13/372—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a time-dependent priority, e.g. individually loaded time counters or time slot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Information Transfer Systems (AREA)
Abstract
PCMCIAバス装置に結合された組み込みマイクロプロセッサーーのためのデータ・トランザクション・アクセス・システム。バス・マスターおよびホスト・バス・アダプタは、ローカル・バスに結合され、バス・マスターとPCMCIA装置との間で通信を可能にする。PCMCIA装置は、PCMCIAバスを介してホスト・バス・アダプタに結合される。バス・マスターは、ローカル・バスを使用し、ホスト・バス・アダプタを介してPCMCIA装置と通信する。ウェイト・レジスターは、ホスト・バス・アダプタに結合され、データトランザクションを完了する場合、この装置の待ち時間を表す遅延入力をPCMCIA装置から受信する。遅延入力によって示された待ち時間が所定量よりも小さい場合、ホスト・バス・アダプタは、待ち状態をバス・マスターのデータトランザクションに挿入するように構成される。待ち時間が所定量よりも大きい場合、ホスト・バス・アダプタは、前記バス・マスターのデータ・トランザクションをリトライするように構成される。一方、ウェイト・レジスターは、前記バス・マスターがターゲットPCIエージェントへのその後のアクセスを効率的に完了するために待ち時間の終了でPCMCIA装置へのその後のアクセスを開始するように遅延入力をバス・マスターに結合するように構成される。一方、ウェイト・レジスターは、アービターが待ち時間の終了までその後のアクセスのためにローカル・バスをバス・マスターに与えないようにアービターに結合される。
Description
【0001】
(技術分野)
本開示は、コンピュータ・システム・バス・アーキテクチャの分野に関する。特に、本開示は、ホスト・バスを最適化する方法およびシステムに関し、このホスト・バスは、16ビットのPCMCIAホスト・バス・アダプタに直接インタフェースする。より詳細には、16ビットのPCMCIAホス・バス・アダプタトに直接インタフェースするホスト・バスを最適化する方法およびシステムは開示される。
【0002】
(背景技術)
コンピュータ・システムのバス・アーキテクチャは、コンピュータ・システムの動作に必要とされる情報および信号の多くを伝達する。典型的なコンピュータ・システムでは、1つあるいはそれ以上のバスは、中央処理装置(CPU)をメモリおよび入出力要素に接続するために使用され、これによりデータおよび制御信号はこれらの異なる構成要素間で容易に伝送できる。コンピュータ・システムがこのシステムのプログラムを実行する場合、データおよび情報がコンピュータをユーザにできるだけ応答させるようにするためにできるだけ速く流れることは絶対必要である。グラフィックス・アダプタ、完全動画ビデオ・アダプタ、小形コンピュータ・システム・インタフェース(SCSI)ホスト・バス・アダプタ等のような多数の周辺装置の場合、大きなブロックデータ転送が迅速に行われるべきであることが絶対必要である。これらの用途は、高速有効バス転送速度から実質的に利益を受けるサブシステムのちょうどいくつかの例である。
【0003】
ユーザのためのコンピュータ・システムの機能性および有用性の多くは、周辺装置の機能性から得られる。例えば、グラフィックス・アダプタの速度および応答の速さは娯楽装置のようなコンピュータ・システムの有用性において主要な要因である。すなわち、例えば、ビデオ・ファイルをハード・ドライブから検索し、グラフィックス・アダプタによって再生できる速度は、訓練補助器具のようなコンピュータ・システムの有用性を決定する。したがって、データがいろいろの周辺装置の中で転送できる速度は、コンピュータシステムが特定の目的に適しているかどうかをしばしば決定する。エレクトロニクス産業は、時代を通していくつかの種類のバスアーキテクチャを開発した。最近、PCMCIAバス・アーキテクチャは、特に「ラップトップ」コンピュータのようなモバイル・コンピュータ装置に関する産業において最も広く用いられ、広くサポートされたバス・アーキテクチャの中の1つになった。PCMCIAバスは、適度の速度の低待ち時間バス・アーキテクチャを提供するように開発され、このバス・アーキテクチャから、非常に多様な交換可能装置を開発できた。
【0004】
次に、従来技術の図1を参照すると、従来技術による典型的なPCMCIAバス・システム100が示されている。図1に示されるように、システム100は、16ビットのホスト・バス・アダプタ104およびPCMCIA装置120に結合されたPCMCIAバス115を含む。PCMCIA装置120は、ソケット116を介してPCMCIAバス115に結合される。PCMCIA装置120は、例えば、交換可能モデム、ハードディスク・ドライブ、イーサネット・アダプタ等のような典型的な交換可能装置である。典型的な実装において、システム100は、交換可能PCMCIA装置を受け入れるように構成される2つあるいはそれ以上のソケット116を含む。ホスト・バス・アダプタ104は、サウスブリッジ103に結合され、このサウスブリッジ103は同様にノースブリッジ102に結合される。このノースブリッジ102は、プロセッサー・ローカルバス110を介してホストx86プロセッサー101に結合される。
【0005】
PCMCIA仕様は2つのバス規格を含む。この規格は、PCカード16規格およびカードバス規格と呼ばれる。このPCカード16規格は、16ビットの「ISAの特徴をもつ」インタフェース(工業規格アーキテクチャ)であり、最も広く実現される。カードバス規格は、最も最新であり、PCI(周辺コンポーネント相互接続)プロトコルに厳密に従う。図1のシステム100は、PCカード16互換システムである。
【0006】
さらに図1を参照すると、PCカード16準拠システム(例えばシステム100)の場合、ホスト・プロセッサー101は、ホスト・バス・アダプタ104を介してPCMCIA装置120と通信する。ホスト・バス・アダプタは、PCMCIA規格プロトコルをサポートし、システム100の典型的なx86アーキテクチャとPCMCIA準拠装置との間のブリッジの機能を果たす。PCMCIA HBA(ホストバスアダプタ)は、一般的には、ラップトップ・コンピュータにあり、このラップトップ・コンピュータの電力、可搬性、およびスループットは主要な問題である。図1のシステム100は1つのこのようなシステムである。コンポーネント101〜115は、ラップトップ・コンピュータ内にあるが、外部PCMCIA装置120は、コネクタ116を介してラップトップ・コンピュータに結合される。ラップトップ・コンピュータ内で、ノースブリッジ102は、通常高速高性能装置を含み、サウスブリッジ103は、より遅い周辺装置のインタフェースの役目を果たす。
【0007】
システム100のアーキテクチャでは、PCMCIA装置(例えば、PCMCIA装置120)が作動する速度、したがってHBA104への動作はプロセッサー・ローカルバス110の性能に影響を及ぼさないことに注目すべきである。PCMCIA装置120のような16ビットのPCカード装置は、一般的には遅い装置であり、したがって、関連「PC16−カード」インタフェースは一般的には遅いインタフェースである。レガシー理由(例えば、レガシー・システムとの互換性)のために、PCMCIAカードは、4.77MHzから8MHzに及ぶISA周波数で実行する。結合された外部装置(例えば、PCMCIA装置120)の速度に基づいて、HBA104は、ホスト・バス(例えば、HBA104とサウスブリッジ103との間のバス)を保持するかあるいはトランザクションがPCMCIAバス115で完了できるまでホスト(あるいは任意の他のバス・マスター)をリトライする。
【0008】
半導体技術の進歩とともに、ASIC(アプリケーション専用集積回路)内部の組み込みマイクロプロセッサーの使用は非常に一般的である。市場の多数のPCMCIA装置を利用できるために、これらの組み込みマイクロプロセッサー・ベースASIC PCMCIA HBAをサポートし、これによりいかなるPCMCIA装置も「プラグイン」および使用できることが絶対必要である。
【0009】
しかしながら、組み込みマイクロプロセッサー・ベース・システムが一般的には複数のレベルのバス階層をサポートしないという問題がある。アクセス待ち時間を最少にするために、複数レベルのバスを実装するのに必要とされるブリッジは除去される。組み込みシステムのPCMCIAホスト・バス・アダプタの典型的な実装は、従来技術の図2に示されている。
【0010】
従来技術の図2は、従来技術による典型的なPCMCIAバスシステム200を示す。従来技術のシステム200は、ホスト・プロセッサー201と、プロセッサー・ローカルバス210と、ホスト・バス・アダプタ204とを含んでいる。システム200のコンポーネント201、210、および204は、図1のシステム100のこのコンポーネントの対応するコンポーネント101、110および104とほぼ同様に機能を果たす。システム200は、単一ASICとして実装される組み込みシステムの例である。例えば、プロセッサー201は、ARM(最新RISCマイクロプロセッサー)プロセッサーであってもよく、ローカルバス210はASBバス(最新システムバス)であってもよい。
【0011】
したがって、システム200は、ホスト・バス・アダプタの設計と関連した1つの問題を示し、このホスト・バス・アダプタは、組み込みマイクロプロセッサーASICのプロセッサー・ローカルバスに直接インタフェースする。例えば、HBA204がIOトランザクションをサポートし、I/O装置を収容する装置120とインタフェースする場合、HBA204は、プロセッサー・ローカルバス210を占有し、独占すると同時に装置120に関するI/Oトランザクションが完了することを待つ。例えば、ホスト・プロセッサー201がIO装置120を読むかあるいはIO装置120に書き込む場合、装置120のアクセス待ち時間がPCMCIA204からのアクセスの待ち状態を挿入するほどのものであると仮定し、プロセッサー・ローカルバス210が100MHzで作動すると同時にHBA204は8MHzで実行すると仮定すると、装置インタフェースは、250nsの間WAIT#信号を表明する。WAIT#が非表明されるまで、これはホスト・バス・アダプタのサイクルを2サイクル以上に延ばす。ホスト・バスがこのトランザクションが完了するまでHBA204によってホールドオフされる場合、全トランザクションは少なくとも500nsかかり、この全トランザクションは、50クロックサイクル間他の装置/マスターに役立たないプロセッサー・ローカルバス210に変換する。これは、ローカルバス210の性能およびスループットに非常に著しい悪影響を及ぼす。WAIT#信号は最大12ns間表明できることに注目すべきである。したがって、HBA204がこのトランザクションをPCMCIAバス115に引き起こす場合、プロセッサー・ローカルバス210は、過度に長い間他の資源に使用されない。
【0012】
さらに従来技術の図2を参照すると、この問題の典型的な解決策は、リトライ機構を含み、このリトライ機構によってHBA204は、トランザクションを完了できるまでプロセッサー・ローカルバス210をリトライする。しかしながら、装置120がレディであるまであらゆるアクセスでプロセッサー・ローカルバス210を単にリトライすることはこの状態をあまり改良しない。例えば、毎回バス210のマスターは応答し、装置120をHBA204を通してアクセスし、プロセッサー・ローカルバス210は、なおマスターによって使用され、HBA204としてのHBA204はリトライサイクルに応答しなければならない。さらに、リトライ機構は、一般的にはプロセッサー・ローカルバス204の調停待ち時間および付加スイッチング動作を含み、それによって不必要な電力利用を生じる。さらに幾つかの従来技術の実施において、HBA204は、データ・トランザクションを開始するように構成され、WAIT#信号をサンプルし、装置120がレディであるかどうか調べ、次にプロセッサーローカルバス210の応答を表明する。
【0013】
したがって、必要とされるものは、ローカルバス独占問題を最少にする方法およびシステムであり、組み込みマイクロプロセッサーASICのプロセッサー・ローカルバス上のより速い装置が連続的にPCMCIAバス上のより遅いPCカード装置をアクセスしようと試みる場合、このローカルバス独占問題が生じる。必要とされるシステムは、付加スイッチング動作あるいは待ち時間をローカルバスの動作に加えないでローカルバス独占問題を最少にすべきである。必要とされるシステムは、組み込みマイクロプロセッサー用途に利用される使用可能ローカルバス・データ転送バンド幅を著しく増加すべきである。本発明は、上記の要件の新規の解決策を提供する。
【0014】
(発明の開示)
本発明は、ローカルバス独占問題を最少にする方法およびシステムを提供し、組み込みマイクロプロセッサーASICのプロセッサー・ローカルバス上のより速い装置が連続的にPCMCIAバス上のより遅いPCカード装置をアクセスしようと試みる場合、このローカルバス独占問題が生じる。本発明のシステムは、付加スイッチング動作あるいは待ち時間をローカルバスの動作に加えないでローカルバス独占問題を最少にする。さらに、本発明のシステムは、組み込みマイクロプロセッサーに利用される使用可能ローカルバス・データ転送バンド幅を著しく増加させる。
【0015】
一実施形態では、本発明は、PCMCIAバス装置に結合された組み込みマイクロプロセッサーのためのデータ・トランザクション・アクセス・システムとして実施される。本実施形態では、データ・トランザクション・アクセス・システムは、単一ASICとして組み込みマイクロプロセッサーと統合される。このシステムは、プロセッサー・ローカルバスと、ローカルバスに結合された少なくともバス・マスター(例えば、マイクロプロセッサー)と、ローカルバスに結合され、バス・マスターとPCMCIA装置との間の通信を可能にするホスト・バス・アダプタとを含む。PCMCIA装置は、PCMCIAバスを介してホストバスアダプタに結合される。このバス・マスターは、ローカルバスを使用し、ホスト・バス・アダプタを介してPCMCIA装置と通信する。ウェイト・レジスターは、ホスト・バス・アダプタに結合され、データ・トランザクションを完了する場合、装置の待ち時間を示す遅延入力をPCMCIA装置から受け取る。遅延入力によって示された待ち時間が所定量よりも小さい場合、ホスト・バス・アダプタは、待ち状態をバス・マスターのデータ・トランザクションに挿入するように構成される。待ち時間が所定量よりも大きい場合、ホスト・バス・アダプタはバス・マスターのデータ・トランザクションをリトライするように構成される。
【0016】
第2の実施形態では、ウェイト・レジスターは、遅延入力をバス・マスターに結合するように構成され、これによりバス・マスターは、待ち時間の終了でPCMCIA装置へのその後のアクセスを開始する。最初のアクセスがリトライされた後、バス・マスターは、ウェイト・レジスターに記憶された遅延入力を読み、指定された遅延に従ってその後のアクセスを試みる。このように行う際に、データ・トランザクションは、プロセッサー・ローカルバスに課された多数のむだにされたリトライなしに完了される。
【0017】
第3の実施形態では、組み込みシステムは、プロセッサー・ローカルバスへのアクセスを制御するアービターを含んでいる。このアービターは、ウェイト・レジスターに記憶された遅延入力を読み出すように結合される。アービターは、待ち時間の完了まで、ローカルバスをその後のアクセスのためのリクエスト・バス・マスターに与えないでプロセッサー・ローカルバスの有効な利用を保証する。一旦待ち時間が終了すると、アービターは、ローカルバスをバス・マスターに与え、バス・マスターはデータ・トランザクションを完了する。
【0018】
(発明を実施するためのベストモード)
次に、本発明の好ましい実施形態、すなわち16ビットのPCMCIAホスト・バス・アダプタに直接インタフェースするホスト・バスを最適化する方法およびシステムに対する参照が詳細に行われ、この16ビットのPCMCIAホスト・バス・アダプタの例は添付図面に示される。本発明は好ましい実施形態とともに記載されているが、好ましい実施形態が本発明をこれらの実施形態に限定することを目的としないことが分かる。これに反して、本発明は、変更例、修正例および均等物を保護することを目的とし、この変更例、修正例および均等物は、添付された特許請求の範囲によって規定されるような本発明の精神および範囲内に含まれ得る。さらに、本発明の下記の詳細な説明、すなわち多数の特定の詳細は本発明の完全な理解を行うために詳述される。しかしながら、本発明がこれらの特定の詳細なしに実施できることは当業者に明らかである。他の例では、周知の方法、手順、コンポーネント、および回路は本発明の態様を不必要に不明瞭にしないように詳述されない。
【0019】
本発明は、ホスト・バスを最適化する方法およびシステムであり、このホスト・バスは、16ビットのPCMCIAホスト・バス・アダプタに直接インタフェースする。本発明のシステムは、ローカルバス独占問題を最少にする方法およびシステムを提供し、組み込みマイクロプロセッサーASICのプロセッサー・ローカルバス上のより速い装置が連続的にPCMCIAバス上のより遅いPCカード装置をアクセスしようと試みる場合、このローカルバス独占問題が生じる。本発明のシステムは、付加スイッチング動作あるいは待ち時間をローカルバスの動作に加えないでローカルバス独占問題を最少にする。さらに、本発明のシステムは、組み込みマイクロプロセッサーに利用される使用可能ローカルバス・データ転送バンド幅を著しく増加させる。本発明および本発明の長所はさらに後述される。
【0020】
次に図3Aを参照すると、本発明の一実施形態によるPCMCIAバス・システム300が示されている。図3Aに示されるように、システム300は、PCMCIAバス315を含み、このPCMCIAバス315は、PCMCIA装置320をホスト・バス・アダプタ(HBA)304に結合する。HBA304は、プロセッサー・ローカルバス310に結合される。第1のバス・マスター301および第2のバス・マスター302はプロセッサー・ローカルバス310にも結合される。HBA304は、内部アドレス・コンパレーター340を含み、ウェイト・レジスター330に結合される。本実施形態では、バス・マスター301〜302の1つはシステム300のホスト・マイクロプロセッサーである。
【0021】
図3Aに示されるように、PCMCIA装置320は、例えば、交換可能モデム、ハードディスク・ドライバ、イーサネット・アダプタ等のような典型的な交換可能装置である。典型的な実装では、PCMCIA装置320は、ソケット316を介してシステム300のコンポーネントに差し込むように構成される交換可能PCカード装置である。本実施形態では、システム300(PCMCIA装置320を除く)は、例えば、ハンドヘルドPDA(パーソナル・ディジタル・アシスタント)のような組み込みマイクロプロセッサー形システムである。バス・マスター301〜302、プロセッサー・ローカルバス310、HBA304およびウェイト・レジスター330は、単一ASICに組み込まれるので、非常に小さい波形係数(例えば、PDAにおいて必要とされるように)を与えると同時にソケット316の包含によって与えられる拡張できる機能性およびPCMCIA装置320のような外部PCカード装置を接続できる能力を保持する。
【0022】
PCMCIA装置320は、自動的に構成され、ユーザによるソケット320への挿入の際に作動される。PCMCIA装置320は、PCMCIAバス315およびHBA304を介してホスト・バス・アダプタに結合される。一旦結合されると、プロセッサー・ローカルバス上のバス・マスターは、ホスト・バス・アダプタを介してPCMCIA装置320と通信できる。このように、HBA304は、プロセッサー・ローカルバス310の速度およびプロトコルとPCMCIA装置315の速度およびプロトコルとの間のブリッジの役目を果たす。
【0023】
図3Aをさらに参照すると、本実施形態では、ウェイト・レジスター330は、ホスト・バス・アダプタ304に結合され、データ・トランザクションを完了する場合、装置の待ち時間を表す遅延入力をPCMCIA装置320から受け取る。この待ち時間は、プロセッサー・ローカルバス310およびPCMCIAバス315の動作速度が非常に異なり得る事実による。したがって、PCMCIAバス315に結合される装置(例えば、PCMCIA装置320)が通信する速度は、プロセッサー・ローカルバス310に結合される装置(例えば、バス・マスター301〜302)が通信する速度とは非常に異なる。例えば、PCMCIAバス315は8MHzで作動するのに対してプロセッサー・ローカルバス310は66MHzあるいはそれ以上で作動できる。
【0024】
本発明によれば、システム300は、2つのバス310および315の速度差により背負い込まれる悪い性能の影響を最少にする。HBA304は、ウェイト・レジスター330の中にプログラム化された情報を使用し、性能劣化を最少にする。一実施形態では、ウェイトレジスター330は、PCMCIA装置320を読み出すことによって遅延入力でホスト・プロセッサーによってプログラムされる。この遅延入力は装置320の待ち時間を表す。本実施形態では、装置320がソケット316に挿入される場合、PCMCIA装置320の装置ドライバは自動的にロードされる。この装置ドライバは、その後にウェイトレジスター330を遅延入力でロードする。HBA304は、PCMCIA装置320に割り当てられたI/Oアドレスも記憶する。したがって、バス・マスター301〜302の1つがPCMCIA装置320に関するデータ・トランザクションを試みる場合、HBA304は、ウェイト・レジスター330の遅延入力およびアドレスコンパレーター340に記憶されたアドレスを使用するトランザクションのアドレスを使用し、どの装置がアドレス指定されているかを決定する。トランザクションが(アドレス・コンパレーター340に記憶されたアドレスに一致するトランザクションのアドレスによって決定されるような)PCMCIA装置320を目標に向ける場合、HBA304は、PCMCIA装置320の待ち時間に応じてトランザクションをリトライするかあるいはプロセッサー・ローカルバス304上の待ち状態を挿入するかのいずれかを決定する。HBA304は、ウェイト・レジスター330に記憶された遅延入力を所定量と比較することによって決定を行う。この所定量は、システム300がプロセッサー・ローカルバス310上の待ち時間を許容できる程度を特徴付ける。
【0025】
例えば、PCMCIA装置320が比較的低い待ち時間を有するメモリカードである場合、低い遅延入力はウェイト・レジスター330に記憶されるので、HBA304は、リトライを出すのとは対照的に適切な数の待ち状態をトランザクションに挿入する。PCMCIA装置320が高い待ち時間装置(例えば、電話モデム)である場合、高い遅延入力はウェイト・レジスター330に記憶され、次にHBA304は、多数の待ち状態を挿入するのとは対照的にトランザクションをリトライするので、バスを多数の待ち状態のストリームで独占するのとは対照的に他のトランザクションのためのプロセッサー・ローカルバス310を解放する。プロセッサー・ローカルバス310がPCMCIAバス320よりも非常に速い場合、より低い所定量は遅延入力と比較するために使用されるので、より低い許容量を招き、全システムはプロセッサー・ローカルバス310の待ち時間のために有する。このように、システム300のHBA304は、PCMCIA装置320に向けられたトランザクションに活発に関与し、プロセッサー・ローカルバス310のスループットを増加させる。
【0026】
さらに、システム300のHBA304は、PCMCIAバス315上のトランザクションを実際に実行する前にプロセッサー・ローカルバス上の応答を「断定的に」表明するように構成される。この態様は付加時間を節約する。本発明の応答の断定的な表明は、従来技術の方法に比較して電力も節約し、応答待ち時間を減少させる。
【0027】
図3Bは、本発明の一実施形態によるプロセッサー350のフローチャートを示す。プロセッサー350は、システム300で実行されるような通信処理の動作ステップを示し、HBA304は、PCMCIA装置320に向けられたトランザクションに活発に関与し、(例えば、待ち状態を挿入するかあるいはリトライを出すことによって)プロセッサー・ローカルバス310の独占を最少にする。
【0028】
処理350は、ステップ351で開始し、このステップでPCMCIA装置320はソケット316に挿入される。本実施形態では、PCMCIA装置320は「16ビット」PCカード装置である。挿入の際、PCMCIA装置320のための装置ドライバは自動的にロードされ、装置320は自動的に動作のために構成される。
【0029】
ステップ352では、装置ドライバは、PCカード320(例えば、PCMCIA装置320)のI/Oアドレスを有するアドレス・コンパレーター340を自動的にプログラムする。
【0030】
ステップ353では、装置ドライバは、特定のPCカードのための待ち時間を表す遅延入力を有するウェイト・レジスター330を自動的にプログラムする。前述のように、PCカード320によって実行された種類の装置(例えば、電話モデム、フラッシュメモリ等)に応じて、PCカードは所定量のデータ転送待ち時間を有する。この遅延入力はこの特定の待ち時間を表す。
【0031】
ステップ354では、PCカード320は、バス・マスター301〜302の1つによってHBA304を介してアクセスされる。前述のように、HBA304は、プロセッサー・ローカルバス310上の装置とPCMCIAバス315との間のブリッジの機能を果たす。
【0032】
ステップ355では、PCカード320で実行された特定の種類の装置に応じて、HBA304はリトライを出すかあるいは出さないかのいずれかである。データが直ちに利用可能である場合、例えば、データトランザクションが書き込みトランザクションであり、書き込みデータを後で転送するためにHBA304で「通知」できる場合、リトライは出されなく、処理350は、トランザクションが完了されるステップ358に直接進む。データ・トランザクションが、直ぐに実行できないようなもの(例えば、読み出しトランザクション)である場合、処理350はステップ356に進む。
【0033】
ステップ356では、HBA304は、アドレス・コンパレーター340に記憶されたアドレスおよびウェイト・レジスター330に記憶された遅延入力を使用し、遅延入力によって表された待ち時間が所定量よりも大きいかどうかを決定する。アドレス・コンパレーター340は、PCカード320に向けられたトランザクションを認識するために使用される。所定量は、(例えば、製造中あるいはプログラム可能な「システム構成レジスター」に)予めセットされ、待ち時間量を表す、この待ち時間量は、全システムがプロセッサー・ローカルバス310で許容できるものである。待ち時間が所定量よりも大きい場合、処理350は、ステップ354まで戻り、トランザクションが首尾よく完了されるまで、データ・トランザクションを単に完了し続ける。待ち時間が所定量よりも小さい場合、処理350はステップ357に進む。
【0034】
ステップ357では、待ち時間が所定量よりも小さい場合、待ち状態は待ち時間に基づいてデータ・トランザクションに挿入される。これは、トランザクションの完了までプロセッサー・ローカルバス310を保持する。
【0035】
ステップ358では、待ち状態は、待ち時間に基づいて終了し、このトランザクションは首尾よく完了する。
【0036】
次に図4Aを参照すると、本発明の第2の実施形態によるPCMCIAバス・システム400の図が示されている。図4Aに示されるように、システム400は、PCMCIA装置320をHBA404に結合するPCMCIAバス315を含む。HBA404はプロセッサー・ローカルバス310に結合される。第1のバス・マスター401および第2のバス・マスター402は、プロセッサー・ローカルバス310にも結合される。HBA404はウェイト・レジスター430に結合される。
【0037】
図4Aに示されるように、システム400のコンポーネント310、340、315、316、および320は、図3Aのシステム300の検討に記載されているように機能する。本実施形態では、ウェイト・レジスター430は、PCMCIA装置320からその中に記憶された遅延入力をバス・マスター401〜402の各々に結合するように構成され、これにより、バス・マスターが待ち時間の終了でPCMCIA装置320へのその後のアクセスを開始する。バス・マスター401〜402は、ライン411を介して遅延時間を受け取る。最初のアクセスがリトライされた後、アクセスを試みるバス・マスターは、ウェイト・レジスター430に記憶された遅延入力を読み出し、指定された遅延に従ってその後のアクセスを試みる。このように行う際に、データトランザクションは、プロセッサー・ローカルバスに課される多数のむだにされたリトライなしにおよびプロセッサー・ローカルバス310上に待ち状態を課すことなしに完了される。
【0038】
本実施形態のウェイト・レジスター430がプロセッサー・ローカルバス310に結合された各バス・マスターに利用されるグローバル・レジスターとしての機能を果たすことに注目すべきである。さらに、アドレス・コンパレーター340によって記憶されたアドレス情報は、PCMCIA装置320へのアクセスを認識するために使用される。ウェイト・レジスター430によって指定された時間が経過した後、バス・マスター装置は、HBA404のトランザクションをリトライする。したがって、このトランザクションは高い完了の見込みを有する。このように、本実施形態のシステム400は、トランザクションがプロセッサー・ローカルバス310上で2つのデータ・サイクルのみで完了されることを保証する。これは、他のマスターのためのプロセッサー・ローカルバス310の負担を軽くし、このバス310を得て、より有用な目的のためにこのバス310を使用する。
【0039】
図4Bは、本発明の一実施形態による処理450のフローチャートを示す。処理450は、システム400で実行される通信処理の動作ステップを示し、ウェイト・レジスター430に記憶された遅延入力はその後のアクセスを調時するために各バス・マスターに利用され、それによってプロセッサー・ローカルバス310の独占を最少にする。
【0040】
ステップ451〜455に関しては、ステップ451〜455は図3Bの処理350の対応するステップ351〜355とほぼ同様に機能を果たすので、これらのステップの説明が繰り返されないことを下記の処理450の検討で注目すべきである。
【0041】
ステップ456では、バス・マスターは、アドレス・コンパレーター340に記憶されたアドレスおよびウェイト・レジスター430に記憶された遅延入力を使用し、PCカード320のアドレスが予め試みられたアクセスのアドレスに一致するかどうかを決定する。このバス・マスターは、この情報を使用し、(前のトランザクションがステップ455でリトライを受信した)その後のトランザクションが同じPCカード装置320に向けられたかどうかを決定する。アドレスが一致する場合、バス・マスターは、ウェイト・レジスター430に記憶された待ち時間をライン411を介して読み出し、待ち時間に基づいてある時間待つ。
【0042】
ステップ457では、このバス・マスターは、ウェイト・レジスター430に記憶された待ち時間に基づいてある時間待つ。前述のように、この時間は、データ・トランザクションをPCカード装置320で完了する際に必要とされる待ち時間の量に一致する。
【0043】
ステップ458では、待ち時間の終了後、バス・マスターは、バスのために再調停し、首尾よくトランザクションを完了する高い見込みを有する。待ち時間によって左右される時間量待つことによって、バス・マスターは、プロセッサー・ローカルバス310を待ち状態あるいはむだにされたアクセスの試みと結合させることを避ける。
【0044】
次に、図5Aを参照すると、本発明の第3の実施形態によるPCMCIAバスシステム500の図は示される。図5Aに示されるように、システム500は、PCMCIAバス315を含み、このPCMCIAバス315は、PCMCIA装置320をHBA504に結合する。このHBA504はプロセッサー・ローカルバス310に結合される。第1のバス・マスター501および第2のバス・マスター502はプロセッサー・ローカルバス310にも結合される。本実施形態では、アービター540は、それぞれのリクエスト許可ライン541〜542および543〜544を介してバス・マスター501および502に結合される。アービター540はウェイト・レジスター530にも結合される。
【0045】
図5Aに示されるように、システム500のコンポーネント310、315、316、および320は、図3Aのシステム300の検討で記載されているように機能を果たす。本実施形態では、アドレス・コンパレーター340は必要ない。さらに、本実施形態では、ウェイト・レジスター530は、図4Aのシステム400におけるような各バス・マスターとは対照的に(ライン511を介して)PCMCIA装置320からその中に記憶された入力遅延をアービター540に結合するように構成される。ウェイト・レジスター530のこの構成によって、アービター542は、データ・トランザクションの完了のためにPCMCIA装置320内のデータの有用性に基づいてプロセッサー・ローカルバス310へのアクセスを制御できる。待ち時間は、システム300およびシステム400の検討で示されたようにウェイト・レジスター530内に記憶される。この待ち時間は、アービター540によって使用され、何時バス・マスターがプロセッサー・ローカルバス310の制御を許可されるかを制御し、予め試みられたデータ・トランザクションを完了する。
【0046】
本実施形態では、アービター540は、バス・マスターの「番号」(例えば、バス・マスター501、502等)およびウェイト・レジスター530内に記憶された待ち時間を使用し、何時バス・マスター501〜502の中の1つが例えば、PCMCIA装置320へのその後のアクセスを試みるかを決定する。例えば、アービター540は、どのマスターがPCMCIAバス315上の装置(例えば、装置320)への前のアクセス中に最後のリトライをされたかを検出するためにプロセッサー・ローカルバス310に結合された各マスターのマスター番号を監視する。アービター540は、ウェイト・レジスター530に記憶された待ち時間に対応するこのような時間が経過するまで、プロセッサー・ローカルバス310へのアクセスをその後否定する(例えば、バス310を要求するバス・マスターに与えない)。したがって、本実施形態では、アービター540は、プロセッサー・ローカルバス310が効率的に利用されることを保証する責任を負う。
【0047】
したがって、このように上記実施形態(例えば、システム300、400、および500)の各々は、プロセッサー・ローカルバス310のスループットを指数関数的に増加させる。上記実施形態の各々は、リトライされたデータ・トランザクションに関連した不必要なサイクルによりスイッチング動作を減少させ、それによって電力を減少させる。上記実施形態の各々は、PCカード装置がプロセッサー・ローカルバスを通してバスマスター(例えば、マイクロプロセッサー)と直接インタフエースする場合、よくあることだが、比較的遅い装置の場合、特に有用である。
【0048】
次に図5Bを関して、本発明の一実施形態による処理550のフローチャートが示される。処理550は、システム500上で実行されるような通信処理の動作ステップを示し、ウェイト・レジスター430に記憶された遅延入力は、プロセッサー・ローカルバス310へのアクセスを制御するアービターによって使用され、それによってその後のアクセスのタイミングを制御し、独占を最少する。
【0049】
処理550は、PCMCIA装置320がソケット316に挿入されるステップ551で開始する。本実施形態では、PCMCIA装置320は「16ビット」PCカード装置である。挿入の際に、PCMCIA装置320のための装置ドライバは、自動的にロードされ、装置320は動作のために自動的に構成される。
【0050】
ステップ552では、装置ドライバは、特定PCカードのための待ち時間を表す遅延入力を有するウェイト・レジスター530を自動的にプログラムする。前述されたように、PCカード320で実現された種類の装置(例えば、電話モデム、フラッシュメモリ等)に応じて、PCカードは、所定量のデータ転送待ち時間を有する。この遅延入力はこの特定の待ち時間を表す。
【0051】
ステップ553では、PCカード320は、HBA504を介してバス・マスター501〜502の中の1つによってアクセスされる。HBA504は、プロセッサー・ローカルバス310およびPCMCIAバス315上の装置間のブリッジの役目を果たす。
【0052】
ステップ554では、PCカード320に実装された特定の種類の装置に応じて、HBA504はリトライを出すかあるいは出さないかのいずれかである。データ・トランザクションが書き込みトランザクションであり、書き込みデータが後に転送するためにHBA504に「通知」できる場合のようなデータが直ちに利用可能である場合、リトライは、出されなく、処理550は、トランザクションが完了されるステップ556に直接進む。データ・トランザクションが、直ちに実行できないようなものである(例えば、読み出しトランザクション)場合、処理550はステップ555に進む。
【0053】
ステップ556では、アービター540は、マスターがPCカード320への前のアクセス中どのマスターが最後にリトライされたかを検出するためにプロセッサー・ローカルバス310に結合された各マスターのマスター番号を監視し、ウェイト・レジスター530に記憶された遅延入力を読み出す。アービター540は、この情報を使用し、その後のトランザクション(前のトランザクションはステップ555でリトライを受け取った)が同じPCカード装置320に向けられたかどうかを決定する。前述されるように、アービター540は、ライン511を介してウェイト・レジスター430に記憶された待ち時間を読み出し、プロセッサー・ローカルバス310を要求バス・マスターに与える前に待ち時間に基づいてある時間待つ。
【0054】
ステップ557では、待ち時間の終了後、バス・マスターは、プロセッサー・ローカルバス310の制御を許可され、首尾よくトランザクションを完了する。待ち時間によって左右される時間量待つことによって、アービターは、いかなる1つのバス・マスターもプロセッサー・ローカルバス310を待ち状態あるいはむだにされたアクセスの試みに従事させることを防止する。
【0055】
したがって、本発明は、16ビットPCMCIAホスト・バス・アダプタに直接インタフェースするホスト・バスを最適化する方法およびシステムである。本発明のシステムは、組み込みマイクロプロセッサーASICのプロセッサー・ローカルバス上のより速い装置がPCMCIAバス上のより遅いPCカード装置へのアクセスを連続的に試みる場合に生じるローカルバス独占問題を最少にする方法およびシステムを提供する。本発明のシステムは、付加的スイッチング動作あるいは待ち時間をローカルバスの動作に付加しないでローカルバス独占問題を最少にする。さらに、本発明のシステムは、組み込みマイクロプロセッサーに利用される利用可能なローカルバス・データ転送バンド幅を著しく増加させる。
【0056】
本発明の特定の実施形態の前述の説明は、例証および説明の目的のために示される。この実施形態は、完全であるかあるいは本発明を開示された正確な形式に限定することを目的としないで、明らかに多数の修正および変更は上記の教示に照らして可能である。この実施形態は、本発明の原理および本発明の実際の用途を一番最適に説明するために選択され、説明され、それによって当業者は、本発明および熟考された特定の使用に適しているようないろいろの修正を有するいろいろの実施形態を最適に利用できる。本発明の範囲はそれに添付された特許請求の範囲およびこの特許請求の範囲の均等物によって規定されるべきことが意図される。
【図面の簡単な説明】
本明細書の一部に組み込まれ、本明細書の一部を形成する添付図面は、本発明の実施形態を示し、説明とともに本発明の原理を説明するのに役立つ。
【図1】
典型的な従来技術のPCMCIAバスアーキテクチャを示す。
【図2】
典型的な従来技術の組み込みPCMCIAバス・システム・アーキテクチャを示す。
【図3A】
本発明の一実施形態によるPCMCIAバスシステムを示す。
【図3B】
本発明の一実施形態による処理のステップのフローチャートを示す。
【図4A】
本発明の第2の実施形態によるPCMCIAバス・システムを示す。
【図4B】
本発明の第2の実施形態による処理のステップのフローチャートを示す。
【図5A】
本発明の第3の実施形態によるPCMCIAバス・システムを示す。
【図5B】
本発明の第3の実施形態による処理のステップのフローチャートを示す。
(技術分野)
本開示は、コンピュータ・システム・バス・アーキテクチャの分野に関する。特に、本開示は、ホスト・バスを最適化する方法およびシステムに関し、このホスト・バスは、16ビットのPCMCIAホスト・バス・アダプタに直接インタフェースする。より詳細には、16ビットのPCMCIAホス・バス・アダプタトに直接インタフェースするホスト・バスを最適化する方法およびシステムは開示される。
【0002】
(背景技術)
コンピュータ・システムのバス・アーキテクチャは、コンピュータ・システムの動作に必要とされる情報および信号の多くを伝達する。典型的なコンピュータ・システムでは、1つあるいはそれ以上のバスは、中央処理装置(CPU)をメモリおよび入出力要素に接続するために使用され、これによりデータおよび制御信号はこれらの異なる構成要素間で容易に伝送できる。コンピュータ・システムがこのシステムのプログラムを実行する場合、データおよび情報がコンピュータをユーザにできるだけ応答させるようにするためにできるだけ速く流れることは絶対必要である。グラフィックス・アダプタ、完全動画ビデオ・アダプタ、小形コンピュータ・システム・インタフェース(SCSI)ホスト・バス・アダプタ等のような多数の周辺装置の場合、大きなブロックデータ転送が迅速に行われるべきであることが絶対必要である。これらの用途は、高速有効バス転送速度から実質的に利益を受けるサブシステムのちょうどいくつかの例である。
【0003】
ユーザのためのコンピュータ・システムの機能性および有用性の多くは、周辺装置の機能性から得られる。例えば、グラフィックス・アダプタの速度および応答の速さは娯楽装置のようなコンピュータ・システムの有用性において主要な要因である。すなわち、例えば、ビデオ・ファイルをハード・ドライブから検索し、グラフィックス・アダプタによって再生できる速度は、訓練補助器具のようなコンピュータ・システムの有用性を決定する。したがって、データがいろいろの周辺装置の中で転送できる速度は、コンピュータシステムが特定の目的に適しているかどうかをしばしば決定する。エレクトロニクス産業は、時代を通していくつかの種類のバスアーキテクチャを開発した。最近、PCMCIAバス・アーキテクチャは、特に「ラップトップ」コンピュータのようなモバイル・コンピュータ装置に関する産業において最も広く用いられ、広くサポートされたバス・アーキテクチャの中の1つになった。PCMCIAバスは、適度の速度の低待ち時間バス・アーキテクチャを提供するように開発され、このバス・アーキテクチャから、非常に多様な交換可能装置を開発できた。
【0004】
次に、従来技術の図1を参照すると、従来技術による典型的なPCMCIAバス・システム100が示されている。図1に示されるように、システム100は、16ビットのホスト・バス・アダプタ104およびPCMCIA装置120に結合されたPCMCIAバス115を含む。PCMCIA装置120は、ソケット116を介してPCMCIAバス115に結合される。PCMCIA装置120は、例えば、交換可能モデム、ハードディスク・ドライブ、イーサネット・アダプタ等のような典型的な交換可能装置である。典型的な実装において、システム100は、交換可能PCMCIA装置を受け入れるように構成される2つあるいはそれ以上のソケット116を含む。ホスト・バス・アダプタ104は、サウスブリッジ103に結合され、このサウスブリッジ103は同様にノースブリッジ102に結合される。このノースブリッジ102は、プロセッサー・ローカルバス110を介してホストx86プロセッサー101に結合される。
【0005】
PCMCIA仕様は2つのバス規格を含む。この規格は、PCカード16規格およびカードバス規格と呼ばれる。このPCカード16規格は、16ビットの「ISAの特徴をもつ」インタフェース(工業規格アーキテクチャ)であり、最も広く実現される。カードバス規格は、最も最新であり、PCI(周辺コンポーネント相互接続)プロトコルに厳密に従う。図1のシステム100は、PCカード16互換システムである。
【0006】
さらに図1を参照すると、PCカード16準拠システム(例えばシステム100)の場合、ホスト・プロセッサー101は、ホスト・バス・アダプタ104を介してPCMCIA装置120と通信する。ホスト・バス・アダプタは、PCMCIA規格プロトコルをサポートし、システム100の典型的なx86アーキテクチャとPCMCIA準拠装置との間のブリッジの機能を果たす。PCMCIA HBA(ホストバスアダプタ)は、一般的には、ラップトップ・コンピュータにあり、このラップトップ・コンピュータの電力、可搬性、およびスループットは主要な問題である。図1のシステム100は1つのこのようなシステムである。コンポーネント101〜115は、ラップトップ・コンピュータ内にあるが、外部PCMCIA装置120は、コネクタ116を介してラップトップ・コンピュータに結合される。ラップトップ・コンピュータ内で、ノースブリッジ102は、通常高速高性能装置を含み、サウスブリッジ103は、より遅い周辺装置のインタフェースの役目を果たす。
【0007】
システム100のアーキテクチャでは、PCMCIA装置(例えば、PCMCIA装置120)が作動する速度、したがってHBA104への動作はプロセッサー・ローカルバス110の性能に影響を及ぼさないことに注目すべきである。PCMCIA装置120のような16ビットのPCカード装置は、一般的には遅い装置であり、したがって、関連「PC16−カード」インタフェースは一般的には遅いインタフェースである。レガシー理由(例えば、レガシー・システムとの互換性)のために、PCMCIAカードは、4.77MHzから8MHzに及ぶISA周波数で実行する。結合された外部装置(例えば、PCMCIA装置120)の速度に基づいて、HBA104は、ホスト・バス(例えば、HBA104とサウスブリッジ103との間のバス)を保持するかあるいはトランザクションがPCMCIAバス115で完了できるまでホスト(あるいは任意の他のバス・マスター)をリトライする。
【0008】
半導体技術の進歩とともに、ASIC(アプリケーション専用集積回路)内部の組み込みマイクロプロセッサーの使用は非常に一般的である。市場の多数のPCMCIA装置を利用できるために、これらの組み込みマイクロプロセッサー・ベースASIC PCMCIA HBAをサポートし、これによりいかなるPCMCIA装置も「プラグイン」および使用できることが絶対必要である。
【0009】
しかしながら、組み込みマイクロプロセッサー・ベース・システムが一般的には複数のレベルのバス階層をサポートしないという問題がある。アクセス待ち時間を最少にするために、複数レベルのバスを実装するのに必要とされるブリッジは除去される。組み込みシステムのPCMCIAホスト・バス・アダプタの典型的な実装は、従来技術の図2に示されている。
【0010】
従来技術の図2は、従来技術による典型的なPCMCIAバスシステム200を示す。従来技術のシステム200は、ホスト・プロセッサー201と、プロセッサー・ローカルバス210と、ホスト・バス・アダプタ204とを含んでいる。システム200のコンポーネント201、210、および204は、図1のシステム100のこのコンポーネントの対応するコンポーネント101、110および104とほぼ同様に機能を果たす。システム200は、単一ASICとして実装される組み込みシステムの例である。例えば、プロセッサー201は、ARM(最新RISCマイクロプロセッサー)プロセッサーであってもよく、ローカルバス210はASBバス(最新システムバス)であってもよい。
【0011】
したがって、システム200は、ホスト・バス・アダプタの設計と関連した1つの問題を示し、このホスト・バス・アダプタは、組み込みマイクロプロセッサーASICのプロセッサー・ローカルバスに直接インタフェースする。例えば、HBA204がIOトランザクションをサポートし、I/O装置を収容する装置120とインタフェースする場合、HBA204は、プロセッサー・ローカルバス210を占有し、独占すると同時に装置120に関するI/Oトランザクションが完了することを待つ。例えば、ホスト・プロセッサー201がIO装置120を読むかあるいはIO装置120に書き込む場合、装置120のアクセス待ち時間がPCMCIA204からのアクセスの待ち状態を挿入するほどのものであると仮定し、プロセッサー・ローカルバス210が100MHzで作動すると同時にHBA204は8MHzで実行すると仮定すると、装置インタフェースは、250nsの間WAIT#信号を表明する。WAIT#が非表明されるまで、これはホスト・バス・アダプタのサイクルを2サイクル以上に延ばす。ホスト・バスがこのトランザクションが完了するまでHBA204によってホールドオフされる場合、全トランザクションは少なくとも500nsかかり、この全トランザクションは、50クロックサイクル間他の装置/マスターに役立たないプロセッサー・ローカルバス210に変換する。これは、ローカルバス210の性能およびスループットに非常に著しい悪影響を及ぼす。WAIT#信号は最大12ns間表明できることに注目すべきである。したがって、HBA204がこのトランザクションをPCMCIAバス115に引き起こす場合、プロセッサー・ローカルバス210は、過度に長い間他の資源に使用されない。
【0012】
さらに従来技術の図2を参照すると、この問題の典型的な解決策は、リトライ機構を含み、このリトライ機構によってHBA204は、トランザクションを完了できるまでプロセッサー・ローカルバス210をリトライする。しかしながら、装置120がレディであるまであらゆるアクセスでプロセッサー・ローカルバス210を単にリトライすることはこの状態をあまり改良しない。例えば、毎回バス210のマスターは応答し、装置120をHBA204を通してアクセスし、プロセッサー・ローカルバス210は、なおマスターによって使用され、HBA204としてのHBA204はリトライサイクルに応答しなければならない。さらに、リトライ機構は、一般的にはプロセッサー・ローカルバス204の調停待ち時間および付加スイッチング動作を含み、それによって不必要な電力利用を生じる。さらに幾つかの従来技術の実施において、HBA204は、データ・トランザクションを開始するように構成され、WAIT#信号をサンプルし、装置120がレディであるかどうか調べ、次にプロセッサーローカルバス210の応答を表明する。
【0013】
したがって、必要とされるものは、ローカルバス独占問題を最少にする方法およびシステムであり、組み込みマイクロプロセッサーASICのプロセッサー・ローカルバス上のより速い装置が連続的にPCMCIAバス上のより遅いPCカード装置をアクセスしようと試みる場合、このローカルバス独占問題が生じる。必要とされるシステムは、付加スイッチング動作あるいは待ち時間をローカルバスの動作に加えないでローカルバス独占問題を最少にすべきである。必要とされるシステムは、組み込みマイクロプロセッサー用途に利用される使用可能ローカルバス・データ転送バンド幅を著しく増加すべきである。本発明は、上記の要件の新規の解決策を提供する。
【0014】
(発明の開示)
本発明は、ローカルバス独占問題を最少にする方法およびシステムを提供し、組み込みマイクロプロセッサーASICのプロセッサー・ローカルバス上のより速い装置が連続的にPCMCIAバス上のより遅いPCカード装置をアクセスしようと試みる場合、このローカルバス独占問題が生じる。本発明のシステムは、付加スイッチング動作あるいは待ち時間をローカルバスの動作に加えないでローカルバス独占問題を最少にする。さらに、本発明のシステムは、組み込みマイクロプロセッサーに利用される使用可能ローカルバス・データ転送バンド幅を著しく増加させる。
【0015】
一実施形態では、本発明は、PCMCIAバス装置に結合された組み込みマイクロプロセッサーのためのデータ・トランザクション・アクセス・システムとして実施される。本実施形態では、データ・トランザクション・アクセス・システムは、単一ASICとして組み込みマイクロプロセッサーと統合される。このシステムは、プロセッサー・ローカルバスと、ローカルバスに結合された少なくともバス・マスター(例えば、マイクロプロセッサー)と、ローカルバスに結合され、バス・マスターとPCMCIA装置との間の通信を可能にするホスト・バス・アダプタとを含む。PCMCIA装置は、PCMCIAバスを介してホストバスアダプタに結合される。このバス・マスターは、ローカルバスを使用し、ホスト・バス・アダプタを介してPCMCIA装置と通信する。ウェイト・レジスターは、ホスト・バス・アダプタに結合され、データ・トランザクションを完了する場合、装置の待ち時間を示す遅延入力をPCMCIA装置から受け取る。遅延入力によって示された待ち時間が所定量よりも小さい場合、ホスト・バス・アダプタは、待ち状態をバス・マスターのデータ・トランザクションに挿入するように構成される。待ち時間が所定量よりも大きい場合、ホスト・バス・アダプタはバス・マスターのデータ・トランザクションをリトライするように構成される。
【0016】
第2の実施形態では、ウェイト・レジスターは、遅延入力をバス・マスターに結合するように構成され、これによりバス・マスターは、待ち時間の終了でPCMCIA装置へのその後のアクセスを開始する。最初のアクセスがリトライされた後、バス・マスターは、ウェイト・レジスターに記憶された遅延入力を読み、指定された遅延に従ってその後のアクセスを試みる。このように行う際に、データ・トランザクションは、プロセッサー・ローカルバスに課された多数のむだにされたリトライなしに完了される。
【0017】
第3の実施形態では、組み込みシステムは、プロセッサー・ローカルバスへのアクセスを制御するアービターを含んでいる。このアービターは、ウェイト・レジスターに記憶された遅延入力を読み出すように結合される。アービターは、待ち時間の完了まで、ローカルバスをその後のアクセスのためのリクエスト・バス・マスターに与えないでプロセッサー・ローカルバスの有効な利用を保証する。一旦待ち時間が終了すると、アービターは、ローカルバスをバス・マスターに与え、バス・マスターはデータ・トランザクションを完了する。
【0018】
(発明を実施するためのベストモード)
次に、本発明の好ましい実施形態、すなわち16ビットのPCMCIAホスト・バス・アダプタに直接インタフェースするホスト・バスを最適化する方法およびシステムに対する参照が詳細に行われ、この16ビットのPCMCIAホスト・バス・アダプタの例は添付図面に示される。本発明は好ましい実施形態とともに記載されているが、好ましい実施形態が本発明をこれらの実施形態に限定することを目的としないことが分かる。これに反して、本発明は、変更例、修正例および均等物を保護することを目的とし、この変更例、修正例および均等物は、添付された特許請求の範囲によって規定されるような本発明の精神および範囲内に含まれ得る。さらに、本発明の下記の詳細な説明、すなわち多数の特定の詳細は本発明の完全な理解を行うために詳述される。しかしながら、本発明がこれらの特定の詳細なしに実施できることは当業者に明らかである。他の例では、周知の方法、手順、コンポーネント、および回路は本発明の態様を不必要に不明瞭にしないように詳述されない。
【0019】
本発明は、ホスト・バスを最適化する方法およびシステムであり、このホスト・バスは、16ビットのPCMCIAホスト・バス・アダプタに直接インタフェースする。本発明のシステムは、ローカルバス独占問題を最少にする方法およびシステムを提供し、組み込みマイクロプロセッサーASICのプロセッサー・ローカルバス上のより速い装置が連続的にPCMCIAバス上のより遅いPCカード装置をアクセスしようと試みる場合、このローカルバス独占問題が生じる。本発明のシステムは、付加スイッチング動作あるいは待ち時間をローカルバスの動作に加えないでローカルバス独占問題を最少にする。さらに、本発明のシステムは、組み込みマイクロプロセッサーに利用される使用可能ローカルバス・データ転送バンド幅を著しく増加させる。本発明および本発明の長所はさらに後述される。
【0020】
次に図3Aを参照すると、本発明の一実施形態によるPCMCIAバス・システム300が示されている。図3Aに示されるように、システム300は、PCMCIAバス315を含み、このPCMCIAバス315は、PCMCIA装置320をホスト・バス・アダプタ(HBA)304に結合する。HBA304は、プロセッサー・ローカルバス310に結合される。第1のバス・マスター301および第2のバス・マスター302はプロセッサー・ローカルバス310にも結合される。HBA304は、内部アドレス・コンパレーター340を含み、ウェイト・レジスター330に結合される。本実施形態では、バス・マスター301〜302の1つはシステム300のホスト・マイクロプロセッサーである。
【0021】
図3Aに示されるように、PCMCIA装置320は、例えば、交換可能モデム、ハードディスク・ドライバ、イーサネット・アダプタ等のような典型的な交換可能装置である。典型的な実装では、PCMCIA装置320は、ソケット316を介してシステム300のコンポーネントに差し込むように構成される交換可能PCカード装置である。本実施形態では、システム300(PCMCIA装置320を除く)は、例えば、ハンドヘルドPDA(パーソナル・ディジタル・アシスタント)のような組み込みマイクロプロセッサー形システムである。バス・マスター301〜302、プロセッサー・ローカルバス310、HBA304およびウェイト・レジスター330は、単一ASICに組み込まれるので、非常に小さい波形係数(例えば、PDAにおいて必要とされるように)を与えると同時にソケット316の包含によって与えられる拡張できる機能性およびPCMCIA装置320のような外部PCカード装置を接続できる能力を保持する。
【0022】
PCMCIA装置320は、自動的に構成され、ユーザによるソケット320への挿入の際に作動される。PCMCIA装置320は、PCMCIAバス315およびHBA304を介してホスト・バス・アダプタに結合される。一旦結合されると、プロセッサー・ローカルバス上のバス・マスターは、ホスト・バス・アダプタを介してPCMCIA装置320と通信できる。このように、HBA304は、プロセッサー・ローカルバス310の速度およびプロトコルとPCMCIA装置315の速度およびプロトコルとの間のブリッジの役目を果たす。
【0023】
図3Aをさらに参照すると、本実施形態では、ウェイト・レジスター330は、ホスト・バス・アダプタ304に結合され、データ・トランザクションを完了する場合、装置の待ち時間を表す遅延入力をPCMCIA装置320から受け取る。この待ち時間は、プロセッサー・ローカルバス310およびPCMCIAバス315の動作速度が非常に異なり得る事実による。したがって、PCMCIAバス315に結合される装置(例えば、PCMCIA装置320)が通信する速度は、プロセッサー・ローカルバス310に結合される装置(例えば、バス・マスター301〜302)が通信する速度とは非常に異なる。例えば、PCMCIAバス315は8MHzで作動するのに対してプロセッサー・ローカルバス310は66MHzあるいはそれ以上で作動できる。
【0024】
本発明によれば、システム300は、2つのバス310および315の速度差により背負い込まれる悪い性能の影響を最少にする。HBA304は、ウェイト・レジスター330の中にプログラム化された情報を使用し、性能劣化を最少にする。一実施形態では、ウェイトレジスター330は、PCMCIA装置320を読み出すことによって遅延入力でホスト・プロセッサーによってプログラムされる。この遅延入力は装置320の待ち時間を表す。本実施形態では、装置320がソケット316に挿入される場合、PCMCIA装置320の装置ドライバは自動的にロードされる。この装置ドライバは、その後にウェイトレジスター330を遅延入力でロードする。HBA304は、PCMCIA装置320に割り当てられたI/Oアドレスも記憶する。したがって、バス・マスター301〜302の1つがPCMCIA装置320に関するデータ・トランザクションを試みる場合、HBA304は、ウェイト・レジスター330の遅延入力およびアドレスコンパレーター340に記憶されたアドレスを使用するトランザクションのアドレスを使用し、どの装置がアドレス指定されているかを決定する。トランザクションが(アドレス・コンパレーター340に記憶されたアドレスに一致するトランザクションのアドレスによって決定されるような)PCMCIA装置320を目標に向ける場合、HBA304は、PCMCIA装置320の待ち時間に応じてトランザクションをリトライするかあるいはプロセッサー・ローカルバス304上の待ち状態を挿入するかのいずれかを決定する。HBA304は、ウェイト・レジスター330に記憶された遅延入力を所定量と比較することによって決定を行う。この所定量は、システム300がプロセッサー・ローカルバス310上の待ち時間を許容できる程度を特徴付ける。
【0025】
例えば、PCMCIA装置320が比較的低い待ち時間を有するメモリカードである場合、低い遅延入力はウェイト・レジスター330に記憶されるので、HBA304は、リトライを出すのとは対照的に適切な数の待ち状態をトランザクションに挿入する。PCMCIA装置320が高い待ち時間装置(例えば、電話モデム)である場合、高い遅延入力はウェイト・レジスター330に記憶され、次にHBA304は、多数の待ち状態を挿入するのとは対照的にトランザクションをリトライするので、バスを多数の待ち状態のストリームで独占するのとは対照的に他のトランザクションのためのプロセッサー・ローカルバス310を解放する。プロセッサー・ローカルバス310がPCMCIAバス320よりも非常に速い場合、より低い所定量は遅延入力と比較するために使用されるので、より低い許容量を招き、全システムはプロセッサー・ローカルバス310の待ち時間のために有する。このように、システム300のHBA304は、PCMCIA装置320に向けられたトランザクションに活発に関与し、プロセッサー・ローカルバス310のスループットを増加させる。
【0026】
さらに、システム300のHBA304は、PCMCIAバス315上のトランザクションを実際に実行する前にプロセッサー・ローカルバス上の応答を「断定的に」表明するように構成される。この態様は付加時間を節約する。本発明の応答の断定的な表明は、従来技術の方法に比較して電力も節約し、応答待ち時間を減少させる。
【0027】
図3Bは、本発明の一実施形態によるプロセッサー350のフローチャートを示す。プロセッサー350は、システム300で実行されるような通信処理の動作ステップを示し、HBA304は、PCMCIA装置320に向けられたトランザクションに活発に関与し、(例えば、待ち状態を挿入するかあるいはリトライを出すことによって)プロセッサー・ローカルバス310の独占を最少にする。
【0028】
処理350は、ステップ351で開始し、このステップでPCMCIA装置320はソケット316に挿入される。本実施形態では、PCMCIA装置320は「16ビット」PCカード装置である。挿入の際、PCMCIA装置320のための装置ドライバは自動的にロードされ、装置320は自動的に動作のために構成される。
【0029】
ステップ352では、装置ドライバは、PCカード320(例えば、PCMCIA装置320)のI/Oアドレスを有するアドレス・コンパレーター340を自動的にプログラムする。
【0030】
ステップ353では、装置ドライバは、特定のPCカードのための待ち時間を表す遅延入力を有するウェイト・レジスター330を自動的にプログラムする。前述のように、PCカード320によって実行された種類の装置(例えば、電話モデム、フラッシュメモリ等)に応じて、PCカードは所定量のデータ転送待ち時間を有する。この遅延入力はこの特定の待ち時間を表す。
【0031】
ステップ354では、PCカード320は、バス・マスター301〜302の1つによってHBA304を介してアクセスされる。前述のように、HBA304は、プロセッサー・ローカルバス310上の装置とPCMCIAバス315との間のブリッジの機能を果たす。
【0032】
ステップ355では、PCカード320で実行された特定の種類の装置に応じて、HBA304はリトライを出すかあるいは出さないかのいずれかである。データが直ちに利用可能である場合、例えば、データトランザクションが書き込みトランザクションであり、書き込みデータを後で転送するためにHBA304で「通知」できる場合、リトライは出されなく、処理350は、トランザクションが完了されるステップ358に直接進む。データ・トランザクションが、直ぐに実行できないようなもの(例えば、読み出しトランザクション)である場合、処理350はステップ356に進む。
【0033】
ステップ356では、HBA304は、アドレス・コンパレーター340に記憶されたアドレスおよびウェイト・レジスター330に記憶された遅延入力を使用し、遅延入力によって表された待ち時間が所定量よりも大きいかどうかを決定する。アドレス・コンパレーター340は、PCカード320に向けられたトランザクションを認識するために使用される。所定量は、(例えば、製造中あるいはプログラム可能な「システム構成レジスター」に)予めセットされ、待ち時間量を表す、この待ち時間量は、全システムがプロセッサー・ローカルバス310で許容できるものである。待ち時間が所定量よりも大きい場合、処理350は、ステップ354まで戻り、トランザクションが首尾よく完了されるまで、データ・トランザクションを単に完了し続ける。待ち時間が所定量よりも小さい場合、処理350はステップ357に進む。
【0034】
ステップ357では、待ち時間が所定量よりも小さい場合、待ち状態は待ち時間に基づいてデータ・トランザクションに挿入される。これは、トランザクションの完了までプロセッサー・ローカルバス310を保持する。
【0035】
ステップ358では、待ち状態は、待ち時間に基づいて終了し、このトランザクションは首尾よく完了する。
【0036】
次に図4Aを参照すると、本発明の第2の実施形態によるPCMCIAバス・システム400の図が示されている。図4Aに示されるように、システム400は、PCMCIA装置320をHBA404に結合するPCMCIAバス315を含む。HBA404はプロセッサー・ローカルバス310に結合される。第1のバス・マスター401および第2のバス・マスター402は、プロセッサー・ローカルバス310にも結合される。HBA404はウェイト・レジスター430に結合される。
【0037】
図4Aに示されるように、システム400のコンポーネント310、340、315、316、および320は、図3Aのシステム300の検討に記載されているように機能する。本実施形態では、ウェイト・レジスター430は、PCMCIA装置320からその中に記憶された遅延入力をバス・マスター401〜402の各々に結合するように構成され、これにより、バス・マスターが待ち時間の終了でPCMCIA装置320へのその後のアクセスを開始する。バス・マスター401〜402は、ライン411を介して遅延時間を受け取る。最初のアクセスがリトライされた後、アクセスを試みるバス・マスターは、ウェイト・レジスター430に記憶された遅延入力を読み出し、指定された遅延に従ってその後のアクセスを試みる。このように行う際に、データトランザクションは、プロセッサー・ローカルバスに課される多数のむだにされたリトライなしにおよびプロセッサー・ローカルバス310上に待ち状態を課すことなしに完了される。
【0038】
本実施形態のウェイト・レジスター430がプロセッサー・ローカルバス310に結合された各バス・マスターに利用されるグローバル・レジスターとしての機能を果たすことに注目すべきである。さらに、アドレス・コンパレーター340によって記憶されたアドレス情報は、PCMCIA装置320へのアクセスを認識するために使用される。ウェイト・レジスター430によって指定された時間が経過した後、バス・マスター装置は、HBA404のトランザクションをリトライする。したがって、このトランザクションは高い完了の見込みを有する。このように、本実施形態のシステム400は、トランザクションがプロセッサー・ローカルバス310上で2つのデータ・サイクルのみで完了されることを保証する。これは、他のマスターのためのプロセッサー・ローカルバス310の負担を軽くし、このバス310を得て、より有用な目的のためにこのバス310を使用する。
【0039】
図4Bは、本発明の一実施形態による処理450のフローチャートを示す。処理450は、システム400で実行される通信処理の動作ステップを示し、ウェイト・レジスター430に記憶された遅延入力はその後のアクセスを調時するために各バス・マスターに利用され、それによってプロセッサー・ローカルバス310の独占を最少にする。
【0040】
ステップ451〜455に関しては、ステップ451〜455は図3Bの処理350の対応するステップ351〜355とほぼ同様に機能を果たすので、これらのステップの説明が繰り返されないことを下記の処理450の検討で注目すべきである。
【0041】
ステップ456では、バス・マスターは、アドレス・コンパレーター340に記憶されたアドレスおよびウェイト・レジスター430に記憶された遅延入力を使用し、PCカード320のアドレスが予め試みられたアクセスのアドレスに一致するかどうかを決定する。このバス・マスターは、この情報を使用し、(前のトランザクションがステップ455でリトライを受信した)その後のトランザクションが同じPCカード装置320に向けられたかどうかを決定する。アドレスが一致する場合、バス・マスターは、ウェイト・レジスター430に記憶された待ち時間をライン411を介して読み出し、待ち時間に基づいてある時間待つ。
【0042】
ステップ457では、このバス・マスターは、ウェイト・レジスター430に記憶された待ち時間に基づいてある時間待つ。前述のように、この時間は、データ・トランザクションをPCカード装置320で完了する際に必要とされる待ち時間の量に一致する。
【0043】
ステップ458では、待ち時間の終了後、バス・マスターは、バスのために再調停し、首尾よくトランザクションを完了する高い見込みを有する。待ち時間によって左右される時間量待つことによって、バス・マスターは、プロセッサー・ローカルバス310を待ち状態あるいはむだにされたアクセスの試みと結合させることを避ける。
【0044】
次に、図5Aを参照すると、本発明の第3の実施形態によるPCMCIAバスシステム500の図は示される。図5Aに示されるように、システム500は、PCMCIAバス315を含み、このPCMCIAバス315は、PCMCIA装置320をHBA504に結合する。このHBA504はプロセッサー・ローカルバス310に結合される。第1のバス・マスター501および第2のバス・マスター502はプロセッサー・ローカルバス310にも結合される。本実施形態では、アービター540は、それぞれのリクエスト許可ライン541〜542および543〜544を介してバス・マスター501および502に結合される。アービター540はウェイト・レジスター530にも結合される。
【0045】
図5Aに示されるように、システム500のコンポーネント310、315、316、および320は、図3Aのシステム300の検討で記載されているように機能を果たす。本実施形態では、アドレス・コンパレーター340は必要ない。さらに、本実施形態では、ウェイト・レジスター530は、図4Aのシステム400におけるような各バス・マスターとは対照的に(ライン511を介して)PCMCIA装置320からその中に記憶された入力遅延をアービター540に結合するように構成される。ウェイト・レジスター530のこの構成によって、アービター542は、データ・トランザクションの完了のためにPCMCIA装置320内のデータの有用性に基づいてプロセッサー・ローカルバス310へのアクセスを制御できる。待ち時間は、システム300およびシステム400の検討で示されたようにウェイト・レジスター530内に記憶される。この待ち時間は、アービター540によって使用され、何時バス・マスターがプロセッサー・ローカルバス310の制御を許可されるかを制御し、予め試みられたデータ・トランザクションを完了する。
【0046】
本実施形態では、アービター540は、バス・マスターの「番号」(例えば、バス・マスター501、502等)およびウェイト・レジスター530内に記憶された待ち時間を使用し、何時バス・マスター501〜502の中の1つが例えば、PCMCIA装置320へのその後のアクセスを試みるかを決定する。例えば、アービター540は、どのマスターがPCMCIAバス315上の装置(例えば、装置320)への前のアクセス中に最後のリトライをされたかを検出するためにプロセッサー・ローカルバス310に結合された各マスターのマスター番号を監視する。アービター540は、ウェイト・レジスター530に記憶された待ち時間に対応するこのような時間が経過するまで、プロセッサー・ローカルバス310へのアクセスをその後否定する(例えば、バス310を要求するバス・マスターに与えない)。したがって、本実施形態では、アービター540は、プロセッサー・ローカルバス310が効率的に利用されることを保証する責任を負う。
【0047】
したがって、このように上記実施形態(例えば、システム300、400、および500)の各々は、プロセッサー・ローカルバス310のスループットを指数関数的に増加させる。上記実施形態の各々は、リトライされたデータ・トランザクションに関連した不必要なサイクルによりスイッチング動作を減少させ、それによって電力を減少させる。上記実施形態の各々は、PCカード装置がプロセッサー・ローカルバスを通してバスマスター(例えば、マイクロプロセッサー)と直接インタフエースする場合、よくあることだが、比較的遅い装置の場合、特に有用である。
【0048】
次に図5Bを関して、本発明の一実施形態による処理550のフローチャートが示される。処理550は、システム500上で実行されるような通信処理の動作ステップを示し、ウェイト・レジスター430に記憶された遅延入力は、プロセッサー・ローカルバス310へのアクセスを制御するアービターによって使用され、それによってその後のアクセスのタイミングを制御し、独占を最少する。
【0049】
処理550は、PCMCIA装置320がソケット316に挿入されるステップ551で開始する。本実施形態では、PCMCIA装置320は「16ビット」PCカード装置である。挿入の際に、PCMCIA装置320のための装置ドライバは、自動的にロードされ、装置320は動作のために自動的に構成される。
【0050】
ステップ552では、装置ドライバは、特定PCカードのための待ち時間を表す遅延入力を有するウェイト・レジスター530を自動的にプログラムする。前述されたように、PCカード320で実現された種類の装置(例えば、電話モデム、フラッシュメモリ等)に応じて、PCカードは、所定量のデータ転送待ち時間を有する。この遅延入力はこの特定の待ち時間を表す。
【0051】
ステップ553では、PCカード320は、HBA504を介してバス・マスター501〜502の中の1つによってアクセスされる。HBA504は、プロセッサー・ローカルバス310およびPCMCIAバス315上の装置間のブリッジの役目を果たす。
【0052】
ステップ554では、PCカード320に実装された特定の種類の装置に応じて、HBA504はリトライを出すかあるいは出さないかのいずれかである。データ・トランザクションが書き込みトランザクションであり、書き込みデータが後に転送するためにHBA504に「通知」できる場合のようなデータが直ちに利用可能である場合、リトライは、出されなく、処理550は、トランザクションが完了されるステップ556に直接進む。データ・トランザクションが、直ちに実行できないようなものである(例えば、読み出しトランザクション)場合、処理550はステップ555に進む。
【0053】
ステップ556では、アービター540は、マスターがPCカード320への前のアクセス中どのマスターが最後にリトライされたかを検出するためにプロセッサー・ローカルバス310に結合された各マスターのマスター番号を監視し、ウェイト・レジスター530に記憶された遅延入力を読み出す。アービター540は、この情報を使用し、その後のトランザクション(前のトランザクションはステップ555でリトライを受け取った)が同じPCカード装置320に向けられたかどうかを決定する。前述されるように、アービター540は、ライン511を介してウェイト・レジスター430に記憶された待ち時間を読み出し、プロセッサー・ローカルバス310を要求バス・マスターに与える前に待ち時間に基づいてある時間待つ。
【0054】
ステップ557では、待ち時間の終了後、バス・マスターは、プロセッサー・ローカルバス310の制御を許可され、首尾よくトランザクションを完了する。待ち時間によって左右される時間量待つことによって、アービターは、いかなる1つのバス・マスターもプロセッサー・ローカルバス310を待ち状態あるいはむだにされたアクセスの試みに従事させることを防止する。
【0055】
したがって、本発明は、16ビットPCMCIAホスト・バス・アダプタに直接インタフェースするホスト・バスを最適化する方法およびシステムである。本発明のシステムは、組み込みマイクロプロセッサーASICのプロセッサー・ローカルバス上のより速い装置がPCMCIAバス上のより遅いPCカード装置へのアクセスを連続的に試みる場合に生じるローカルバス独占問題を最少にする方法およびシステムを提供する。本発明のシステムは、付加的スイッチング動作あるいは待ち時間をローカルバスの動作に付加しないでローカルバス独占問題を最少にする。さらに、本発明のシステムは、組み込みマイクロプロセッサーに利用される利用可能なローカルバス・データ転送バンド幅を著しく増加させる。
【0056】
本発明の特定の実施形態の前述の説明は、例証および説明の目的のために示される。この実施形態は、完全であるかあるいは本発明を開示された正確な形式に限定することを目的としないで、明らかに多数の修正および変更は上記の教示に照らして可能である。この実施形態は、本発明の原理および本発明の実際の用途を一番最適に説明するために選択され、説明され、それによって当業者は、本発明および熟考された特定の使用に適しているようないろいろの修正を有するいろいろの実施形態を最適に利用できる。本発明の範囲はそれに添付された特許請求の範囲およびこの特許請求の範囲の均等物によって規定されるべきことが意図される。
【図面の簡単な説明】
本明細書の一部に組み込まれ、本明細書の一部を形成する添付図面は、本発明の実施形態を示し、説明とともに本発明の原理を説明するのに役立つ。
【図1】
典型的な従来技術のPCMCIAバスアーキテクチャを示す。
【図2】
典型的な従来技術の組み込みPCMCIAバス・システム・アーキテクチャを示す。
【図3A】
本発明の一実施形態によるPCMCIAバスシステムを示す。
【図3B】
本発明の一実施形態による処理のステップのフローチャートを示す。
【図4A】
本発明の第2の実施形態によるPCMCIAバス・システムを示す。
【図4B】
本発明の第2の実施形態による処理のステップのフローチャートを示す。
【図5A】
本発明の第3の実施形態によるPCMCIAバス・システムを示す。
【図5B】
本発明の第3の実施形態による処理のステップのフローチャートを示す。
Claims (16)
- PCMCIAバス装置に結合された組み込みマイクロプロセッサーのためのデータ・トランザクション・アクセス・システムであって、
ディジタル信号を伝達するように構成されるローカルバスと、
前記ローカルバスに結合されたバス・マスターと、
前記ローカルバスに結合され、前記バス・マスターとPCMCIAバスを介してホスト・バス・アダプタに結合されたPCMCIA装置との間の通信を可能にするホスト・バス・アダプタと、
前記ホスト・バス・アダプタに結合されたウェイト・レジスターとを備え、前記ウェイト・レジスターが、前記PCMCIA装置の待ち時間を表す遅延入力を受信するように構成されるデータ・トランザクション・アクセス・システム。 - 前記遅延入力が所定量よりも小さい場合、前記ホスト・バス・アダプタが、待ち状態を前記バス・マスターからPCMCIA装置へのデータ・トランザクションに挿入し、かつ前記遅延入力が前記所定量よりも大きい場合、前記ホスト・バス・アダプタが、前記バス・マスターをリトライするように構成される請求項1に記載のシステム。
- 前記ウェイト・レジスターが、前記バス・マスターがPCMCIA装置へのその後のアクセスを効率的に完了するために前記待ち時間の終了でPCMCIA装置へのその後のアクセスを開始するように前記遅延入力を前記バス・マスターに結合するように構成されることを特徴とする請求項1に記載のシステム。
- 前記ローカルバスに結合された複数のバス・マスターと、
前記バス・マスターおよび前記ウェイト・レジスターの各々に結合され、前記ローカルバスを調停するアービターとをさらに含み、
前記アービターが、前記1つのバス・マスターが前記待ち時間の終了で前記PCMCIA装置へのその後のアクセスを開始するように前記遅延入力によって示された前記待ち時間の終了で前記バス・マスターの中の1つに前記ローカルバスを与えるように構成されることを特徴とする請求項1に記載のシステム。 - 前記ホスト・バス・アダプタに結合されたアドレス・コンパレーターをさらに含み、前記アドレス・コンパレーターが、前記ホスト・バス・アダプタが前記PCMCIA装置に向けられたアクセスを認識するように前記PCMCIA装置に対応するアドレスを記憶するように構成されることを特徴とする請求項1あるいは2に記載のシステム。
- 前記バス・マスターがマイクロプロセッサーであることを特徴とする請求項1乃至4に記載のいずれかのシステム。
- 前記PCMCIA装置がPCカード16装置であることを特徴とする請求項1乃至4に記載のいずれかのシステム。
- 前記ローカルバス、前記バス・マスター、前記ホスト・バス・アダプタ、および前記ウェイト・レジスターが単一集積回路装置として実現されることを特徴とする請求項1乃至3に記載のいずれかのシステム。
- 前記ホスト・バス・アダプタに結合されたアドレス・コンパレーターをさらに含み、前記アドレス・コンパレーターが、前記バス・マスターおよびホスト・バス・アダプタが前記PCMCIA装置に向けられたアクセスを認識するように前記PCMCIA装置に対応するアドレスを記憶するように構成されたことを特徴とする請求項1あるいは3に記載のシステム。
- 前記ローカルバスに結合され、前記PCMCIA装置と通信する複数のバス・マスターをさらに含み、前記ウェイト・レジスターが、前記遅延入力を前記複数のバス・マスターの各々に結合するように構成されたことを特徴とする請求項3に記載のシステム。
- 前記アービターが、前記プロセッサー・ローカルバスを監視し、かつ多数の前記バス・マスターを使用し、前記PCMCIA装置に向けられたアクセスを認識するように構成されたことを特徴とする請求項4に記載のシステム。
- 前記ローカルバス、前記バス・マスター、前記ホスト・バス・アダプタ、アービター、および前記ウェイト・レジスターが単一集積回路装置として実現されることを特徴とする請求項4に記載のシステム。
- PCMCIAバス装置に結合された組み込みマイクロプロセッサー装置のためのデータ・トランザクション・アクセス方法であって、
ローカルバス上のディジタル信号を伝達するステップと、
バス・マスターとPCMCIAバスを介してホスト・バス・アダプタに結合されたPCMCIA装置との間で通信するステップであって、前記通信が、前記ホスト・バス・アダプタに結合された前記ローカルバスを介して実行されることと、
前記PCMCIA装置の待ち時間を表す遅延入力をウェイト・レジスターで受信するステップであって、前記ウェイト・レジスターが前記ホスト・バス・アダプタに結合されていることと、
待ち状態を前記遅延入力が所定量よりも小さい場合、前記バス・マスターから前記PCMCIA装置へのデータトランザクションに挿入するステップであって、前記待ち状態が前記ホスト・バス・アダプタによって挿入されることと、
前記遅延入力が前記所定量よりも大きい場合、前記バス・マスターをリトライするステップとを含み、前記リトライが、前記ホスト・バス・アダプタによって実行されることを特徴とするデータ・トランザクション・アクセス方法。 - 前記ホスト・バス・アダプタが前記PCMCIA装置に向けられたアクセスを認識するように前記PCMCIA装置に対応するアドレスを記憶することをさらに含み、前記記憶することが、前記ホスト・バス・アダプタに結合されたアドレス・コンパレーターで実行されることを特徴とする請求項13に記載の方法。
- 前記バス・マスターがマイクロプロセッサーであることを特徴とする請求項13に記載の方法。
- 前記PCMCIA装置がPCカード16装置であることを特徴とする請求項13に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/498,399 US6519670B1 (en) | 2000-02-04 | 2000-02-04 | Method and system for optimizing a host bus that directly interfaces to a 16-bit PCMCIA host bus adapter |
PCT/US2001/002710 WO2001057680A2 (en) | 2000-02-04 | 2001-01-26 | Data transaction access system and method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004500656A true JP2004500656A (ja) | 2004-01-08 |
Family
ID=23980925
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001556869A Withdrawn JP2004500656A (ja) | 2000-02-04 | 2001-01-26 | データ・トランザクション・アクセス・システムおよび方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6519670B1 (ja) |
EP (1) | EP1297430A2 (ja) |
JP (1) | JP2004500656A (ja) |
KR (1) | KR20010108428A (ja) |
WO (1) | WO2001057680A2 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE60000012T2 (de) * | 2000-01-15 | 2002-05-29 | Agilent Technologies, Inc. (N.D.Ges.D.Staates Delaware) | Fernmessungsystem mit Bestimmung der Positionsanweisung des Senders |
DE10019239B4 (de) * | 2000-04-18 | 2008-09-04 | Fujitsu Siemens Computers Gmbh | Datenverarbeitungseinrichtung mit einer Schaltungsanordnung zur Verbindung eines ersten Kommunikationsbusses mit einem zweiten Kommunikationsbus |
US20030061429A1 (en) * | 2001-09-24 | 2003-03-27 | Wu Ming Hsiu | Synchronizer for processor facility and PCMCIA card |
US20030061453A1 (en) * | 2001-09-27 | 2003-03-27 | Cosky Jason E. | Method and apparatus for arbitrating a memory bus |
US7149823B2 (en) * | 2003-08-29 | 2006-12-12 | Emulex Corporation | System and method for direct memory access from host without processor intervention wherein automatic access to memory during host start up does not occur |
US7676621B2 (en) | 2003-09-12 | 2010-03-09 | Hewlett-Packard Development Company, L.P. | Communications bus transceiver |
TWI304935B (en) * | 2004-11-02 | 2009-01-01 | Via Tech Inc | Method for determining data transmission specification and combination of bridge chipset and memory used in the same |
TWI268427B (en) * | 2004-11-02 | 2006-12-11 | Via Tech Inc | Coordinating method of bus data transmission specification |
TWI256558B (en) * | 2004-11-02 | 2006-06-11 | Via Tech Inc | Method for coordinating bus data transmission specification and CPU and bridge chip used in the same |
US7634609B2 (en) * | 2005-09-29 | 2009-12-15 | Via Technologies, Inc. | Data transmission coordinating method |
US7757031B2 (en) * | 2005-10-24 | 2010-07-13 | Via Technologies, Inc. | Data transmission coordinating method and system |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2109682C (en) * | 1993-11-22 | 1998-11-03 | Lee F. Hartley | Multiple bus interface |
US5848247A (en) * | 1994-09-13 | 1998-12-08 | Hitachi, Ltd. | Microprocessor having PC card interface |
KR0140032B1 (ko) * | 1994-12-12 | 1998-07-01 | 김광호 | 엑스 터미널에서의 피시엠시아이에이 카드 제어기 접속 장치 |
EP0775347B1 (en) * | 1995-05-26 | 2002-03-06 | National Semiconductor Corporation | Integrated primary bus and secondary bus controller with reduced pin count |
DE69633166T2 (de) * | 1995-05-26 | 2005-08-18 | National Semiconductor Corp., Santa Clara | Integrierter schaltkreis mit mehreren funktionen und gemeinsamer verwendung mehrerer interner signalbusse zur verteilung der steuerung des buszugriffes und der arbitration |
JPH10293744A (ja) * | 1997-04-18 | 1998-11-04 | Nec Corp | Pciバス・システム |
-
2000
- 2000-02-04 US US09/498,399 patent/US6519670B1/en not_active Expired - Fee Related
-
2001
- 2001-01-26 WO PCT/US2001/002710 patent/WO2001057680A2/en not_active Application Discontinuation
- 2001-01-26 EP EP01906724A patent/EP1297430A2/en not_active Withdrawn
- 2001-01-26 JP JP2001556869A patent/JP2004500656A/ja not_active Withdrawn
- 2001-01-26 KR KR1020017012444A patent/KR20010108428A/ko not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
US6519670B1 (en) | 2003-02-11 |
KR20010108428A (ko) | 2001-12-07 |
EP1297430A2 (en) | 2003-04-02 |
WO2001057680A3 (en) | 2003-01-16 |
WO2001057680A2 (en) | 2001-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5887194A (en) | Locking protocol for peripheral component interconnect utilizing master device maintaining assertion of lock signal after relinquishing control of bus such that slave device remains locked | |
US6085278A (en) | Communications interface adapter for a computer system including posting of system interrupt status | |
JP4194274B2 (ja) | クアド・ポンプ・バス・アーキテクチャおよびプロトコル | |
US5838932A (en) | Transparent PCI to PCI bridge with dynamic memory and I/O map programming | |
US5557758A (en) | Bridge between two buses of a computer system that determines the location of memory or accesses from bus masters on one of the buses | |
US5533204A (en) | Split transaction protocol for the peripheral component interconnect bus | |
US7069350B2 (en) | Data transfer control system, electronic instrument, and data transfer control method | |
US6122690A (en) | On-chip bus architecture that is both processor independent and scalable | |
EP1226506B1 (en) | Apparatus for initializing a computer interface | |
US5919254A (en) | Method and apparatus for switching between source-synchronous and common clock data transfer modes in a multiple processing system | |
US5564114A (en) | Method and an arrangement for handshaking on a bus to transfer information between devices in a computer system | |
US6134625A (en) | Method and apparatus for providing arbitration between multiple data streams | |
KR20010071327A (ko) | 버스 브리지 및 유효 폭 설정 방법 | |
WO2005091812A2 (en) | Pvdm (packet voice data module) generic bus protocol | |
US5678064A (en) | Local bus-ISA bridge for supporting PIO and third party DMA data transfers to IDE drives | |
US6233632B1 (en) | Optimizing peripheral component interconnect transactions in a mixed 32/64-bit environment by eliminating unnecessary data transfers | |
JPH0771103B2 (ja) | データ通信ネットワークおよびトークン・リング調停方法 | |
US6519670B1 (en) | Method and system for optimizing a host bus that directly interfaces to a 16-bit PCMCIA host bus adapter | |
US8527667B2 (en) | Apparatuses and methods for transferring data | |
US6014717A (en) | PCMCIA host adapter and method for variable data transfers | |
US6425071B1 (en) | Subsystem bridge of AMBA's ASB bus to peripheral component interconnect (PCI) bus | |
JPH05227247A (ja) | データを捕捉・検証するための回路および方法 | |
JP3602435B2 (ja) | 制御チップセット間におけるデータトランザクション方法 | |
US6311248B1 (en) | Method and system for optimized data transfers in a mixed 64-bit/32-bit PCI environment | |
US6178477B1 (en) | Method and system for pseudo delayed transactions through a bridge to guarantee access to a shared resource |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20080401 |