JP4485064B2 - コンピュータシステムバスのアーキテクチャと関連方法 - Google Patents

コンピュータシステムバスのアーキテクチャと関連方法 Download PDF

Info

Publication number
JP4485064B2
JP4485064B2 JP2000587270A JP2000587270A JP4485064B2 JP 4485064 B2 JP4485064 B2 JP 4485064B2 JP 2000587270 A JP2000587270 A JP 2000587270A JP 2000587270 A JP2000587270 A JP 2000587270A JP 4485064 B2 JP4485064 B2 JP 4485064B2
Authority
JP
Japan
Prior art keywords
address
bit
signal
target device
pci
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.)
Expired - Fee Related
Application number
JP2000587270A
Other languages
English (en)
Other versions
JP2002532781A (ja
Inventor
ピーター、チェンバーズ
スブラマニアン、エス.メイヤパン
スワループ、アドゥシュミリ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NXP BV
Original Assignee
NXP BV
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NXP BV filed Critical NXP BV
Publication of JP2002532781A publication Critical patent/JP2002532781A/ja
Application granted granted Critical
Publication of JP4485064B2 publication Critical patent/JP4485064B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus 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/423Bus 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 synchronous protocol

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)

Description

【0001】
(技術分野)
本発明はコンピュータシステムバスのアーキテクチャに関する。より詳しくは、本発明はペリフェラルコンポーネントを相互接続するバスシステムにおけるアドレスサイクルを最適化する方法に関する。ペリフェラルコンポーネント相互接続環境下での二重アドレスサイクルを解消するスマートなターゲットメカニズムについて説明する。
【0002】
(背景技術)
コンピュータシステムのバスアーキテクチャは、コンピュータシステムの動作にまつわる情報と信号の大部分を運搬する。一般的なコンピュータシステムでは、データ信号と制御信号が様々なコンポーネント間で容易に送信されるように、1つ以上のバスを用いて中央処理装置(CPU)をメモリーデバイスと入/出力デバイスに接続している。コンピュータシステムがそのプログラムを実行するときには、コンピュータシステムがユーザーにとってできるだけ反応性を高めるようにデータと情報ができるかぎり迅速に流れることが肝要である。図形アダプタやフルモーションビデオアダプタや小型コンピュータシステムインタフェース(SCSI)ホストバスアダプタなどのペリフェラルデバイスとサブシステムが多く接続されているため、大きなブロックのデータ転送を迅速に遂行することが肝要である。これらの応用例は、非常に高速なバス転送速度から実質的に恩典を受けるペリフェラルデバイスとサブシステムのほんの数例に過ぎない。
【0003】
コンピュータシステムがユーザーに対して持つ機能と有用性の多くは、ペリフェラルデバイスの機能から得られるものである。例えば、図形アダプタの速度と反応性は、娯楽デバイスとしてのコンピュータシステムが持つ有用性の主要な要素である。すなわち、例えば、ビデオファイルをハードディスクドライブから検索して図形アダプタでプレイできる速度によって、訓練支援装置としてのコンピュータシステムの有用性が決まる。したがって、様々なペリフェラルデバイス間でデータを転送できる速度によってしばしば、そのコンピュータシステムが特定の目的に適しているかどうかが決まってしまう。
【0004】
電子産業は今まで、いくつかのタイプのバスアーキテクチャを開発してきた。PCI(ペリフェラルコンポーネント相互接続:Peripheral Component Interconnect)バスアーキテクチャは、業界で最も広く使用され支持されているバスアーキテクチャの内の1つとなっている。PCIバスは、様々なシステムの開発の基礎となる高速で待ち時間の少ないバスアーキテクチャを提供する目的で開発されたものである。
【0005】
PCI規格は、PCIバスアーキテクチャで動作するPCIデバイスの均一性とコンパティビリティを容易化する基準を確立するのに用いられる。PCI規格は、最初は32ニットデバイスと32ビットトランザクションを用いることを提起したが、それ以来、64ビットデバイスと64ビットトランザクションにまで拡張されている。
【0006】
例えばコンピュータシステム中で実現された、先行技術による簡略化された例示のPCIバスアーキテクチャ100を図1に示す。PCIバス120がPCIイニシエータ110にカップリングされている。PCIバス120はまた、PCIターゲットデバイスA112、B114、C116およびD118の各々にカップリングされている。PCIイニシエータ110は、図示するようにバスブリッジ130に統合でき、また、このバスブリッジ130を用いて、PCIバス120をホストバス(図示せず)にカップリングされている。バスブリッジ130は一般的には双方向性のブリッジであり、多くのコンポーネントから成っているが:分かりやすいように、バスブリッジ130はPCIイニシエータ110を備えるだけのものとして図示されている。
【0007】
PCIバス120は、機能信号ライン、例えば、インタフェース制御ライン、アドレス/データライン、エラー信号ラインなどから成っている。PCIターゲットデバイス112〜118の各々がPCIバス120を含んでいる機能信号ラインにカップリングされている。
【0008】
先行技術を示す図1を参照すると、PCIターゲットB114とD118が32ビットターゲットデバイスとなっている。すなわち、PCIターゲットB114とD118は最大で32ビットまでその範囲に収めるアドレスを有し、これによって、32ビットメモリー空間中で最大4ギガバイト(GB)のアドレス範囲となっている。同様に、PCIターゲットA112とC116は64ビットのターゲットデバイスであり、最大で64ビットを範囲に収めるアドレスを有するが、これは、64ビットメモリー空間中で最大16ギガバイトの範囲を可能としている。加えて、PCIバス120は64ビットバスであり、PCIイニシエータ110は64ビットデバイスである。32ビットデバイスと64ビットデバイスのこのような混合体は、PCI規格を64ビットデバイスに拡張したことによる今日のコンピュータシステムでは一般的なことであり、これらのデバイスが一緒になってシームレスに機能し、また、PCI規格に適合することが必要である。したがって、コンピュータシステムをその機能を全開まで利用するには、PCIバスアーキテクチャ100は64ビットデバイス間で64ビットトランザクションを実行可能でなければならず、また、64ビットイニシエータと32ビットターゲットデバイス間でのシームレスなトランザクションをサポートしなければならない。
【0009】
64ビットイニシエータは、自身がトランザクションを発生させるとき、ターゲットデバイスの属性を意識していない:すなわち、ターゲットが32ビットデバイスであるか64ビットデバイスであるかを知らない。したがって、イニシエータとターゲットデバイスが持つそれぞれの範囲(range)と無関係にコンパティビリティを保証するために、先行技術においては、ターゲットデバイスは32ビットオペランドしか取り扱えないという仮定がなされる。したがって、64ビットアドレスを送信する先行技術による技法では、64ビットアドレスを2つの32ビットオペランドとして表して、そのアドレスを、1サイクルで32ビットオペランドの各々を送信する二重アドレスサイクル(二重アドレスコマンド、すなわちDACとしても知られている)を用いてバス上で駆動する。2つのオペランドがPCIバス上を通過するので、1つのDACを実行するのに2つのPCIクロックサイクルが必要である。
【0010】
ここで図2の先行技術を参照すると、先行技術によるDACを用いて簡略化された読み取りトランザクションを例示するタイムチャート200が図示されている。分かりやすいように、先行技術の図2では、読み取りトランザクションに関連する信号のすべてを図示するのではなく、ここでの説明内容に関連する信号だけを図示している。タイムチャート200では、64ビットトランザクションをサポートできるPCIバス(例えば、先行技術の図1のPCIイニシエータ110とPCIバス120)の上で64ビットイニシエータデバイスによって始動される読み取りトランザクションが図示されている。
【0011】
先行技術の図2をさらに参照すると、PCIイニシエータ1120が、FRAME#信号とREQ64#信号を(それぞれポイント245と250で)オンする(assertする)ことによってPCIクロックサイクルの立ち上がりエッジでトランザクションを開始する。一般に、FRAME#を用いてトランザクションの開始を示し、REQ64#は、そのトランザクションが64ビットデータの転送を伴うことを示す。これらの信号は技術上周知であり、PCI規格で定義されているとおりである。
【0012】
クロックサイクル1では、PCIイニシエータ110もまたアドレスの下位部分(例えば低位アドレス210)をAD[31:0]上に駆動し、アドレスの上位部分(例えば高位アドレス20)をAD[63:32]上に駆動し、また、DACの双方のアドレスフェーズの持続時間中は高位アドレス220をAD[63:43]上に駆動し続ける。クロックサイクル2中は、PCIイニシエータ110は、高位アドレス215をAD[31:0]上に駆動することによって、DACの第2のアドレスフェーズを開始する。PCIバス上のすべてのデバイスはこれらのアドレス上にラッチし、クロックサイクル3の間でアドレスをデコーディングする。アドレスによって指定されたターゲットは、DEVSEL#信号を(ポイント240で)オンする(assertする)ことによってクロックサイクル3でのトランザクションを要求する。クロックサイクル4の立ち上がりエッジで、読み取りトランザクションターンアラウンドサイクル225がAD[31:0]とAD[63:32]に挿入される。次に、データA230とデータB232が、トランザクションのタイプにに基づいて、ターゲットデバイスとイニシエータのどちらかによってバス上に駆動される。したがって、先行技術では、たとえターゲットデバイスが64ビットデバイスであり、したがって64ビットアドレスを読み取りことが可能であっても、64ビットアドレスが2つの32ビットアドレスに分割されてDACによって送信される。
【0013】
先行技術は、たとえ64ビットイニシエータが、ターゲットデバイスが64ビットデバイスであることを知っている場合でも、1つのアドレスサイクル(または1つのアドレスコマンドSAC)を用いて64ビットアドレスを、32ビットターゲットデバイスが存在する場合に1つの64ビットオペランドとして64ビットターゲットデバイスに送信することはできないので、問題がある。PCI規格によれば、イニシエータデバイスは、自身がトランザクションを始動する場合、自身がそのトランザクションとの実行を希望している相手側のターゲットデバイスのアドレスをPCIバス上に駆動する。トランザクションのこの段階では、PCIバス上のすべてのターゲットデバイスはこのアドレスにラッチされ、次に、各ターゲットデバイスがそのアドレスをデコーディングしてそれがアドレスによって指定された意図されたターゲットであるかどうか決定する。したがって、64ビットアドレスがPCIバス上で1つのアドレスサイクルで送信されると、PCIバス上にある32ビットターゲットデバイスの各々と64ビットターゲットデバイスの各々がそのアドレス上にラッチする。しかしながら、32ビットターゲットはアドレスの1部分(すなわち、アドレスの下位32ビット)しか読み取ることができないが、その理由は、これらのデバイスがアドレスの上位32ビットにはアクセスしないからである。64ビットアドレスの下位半分が32ビットデバイスの32ビットアドレスに一致するような場合では、その32ビットデバイスはトランザクションに対する要求(claim)を間違ってオンする(assertする)。その間に、そのアドレスの意図された受信側である64ビットデバイスもまた、自身がそのアドレスをデコーディングして認識した後でそのトランザクションに対する要求をオンするので、この2つのデバイスは同じトランザクションに対して要求をオンしてしまうことになる。
【0014】
例えば、32ビットメモリー空間中でアドレス0000 0000hから0000 FFFFh中にマッピングされた32ビットターゲットを考える。すると、64ビットイニシエータが、64ビットメモリー空間にマッピングされた64ビットターゲットに対して0000 0001 0000 1000hというアドレスを指定する。この32ビットターゲットはこのアドレス上にラッチするが、このアドレスの上位部分、具体的には、この32ビットターゲットから見れば自身がマッピングされているアドレスの範囲内に収まるように見える0000 1000hという部分しか読み取ることができない。したがって、この32ビットターゲットは、64ターゲットのように反応する。このタイプのエラーはアドレスのエリアシング(aliasing)として知られている。アドレスエリアシングによって、不正確なデータが送られたり、複数の同時ドライブによるバスの競合などの他のタイプのエラーが発生する。したがって、先行技術は、64ビットターゲットデバイス用に意図された64ビットアドレスに対してSACを用いることがアドレスのエリアシングのためにできないので、問題がある。先行技術では、SACを64ビットアドレスに対して用いると、アドレスエリアシングによって32ビットターゲットが誤って反応する。
【0015】
先行技術の図2から分かるように、64ビットアドレスを送信して32ビットターゲットに対してAD[31:0]上のアドレスの双方のフェーズ(32ビットターゲットはAD[63:32]にはアクセスしない)を読み取ることを可能とするためには2つのクロックサイクルが必要である。したがって、先行技術のもう1つの欠点は、意図された受信側が1つのクロックで十分な64ビットターゲットデバイスである場合に、64ビットアドレスを送信するのに2クロックサイクルが用いられるという点である。したがって、先行技術においては、アドレスフェーズに後続するデータ転送が1クロックサイクルだけ遅延する。加えて、トランザクション中は、PCIイニシエータはPCIバスの所有権を必要とし、したがって、PCIバスは他のトランザクションに対しては利用可能ではない。このように、先行技術においては、コンピュータのデータ転送帯域幅の一部が、不必要なクロックサイクルによって消費されるため、他のトランザクションもまた遅延する。この欠点は、PCIバス上で発生するトランザクションの数が倍加すると特に深刻である。
【0016】
したがって、DACを解消することによって、したがってDACに伴うクロックサイクルという不必要な消費を解消することによってコンピュータシステムのデータ転送帯域幅を最適に利用する方法および/またはシステムが必要である。また、上記の必要性を提起し、同時に、SACを用いる際のアドレスエリアシングとこのアドレスエリアシングに関連するエラーとを引き起こすことのない方法および/またはシステムが必要とされる。本発明は上記の必要性に対する新規な解決策を提供するものである。
【0017】
本発明の上記のおよび他の目的および利点は、多様な図面に図示されている好ましい実施形態の以下の詳細な説明を読めば当業者には明らかであろう。
【0018】
(発明の開示)
本発明は、DACに伴うクロックサイクルという不必要な消費を解消することによってコンピュータシステムのデータ転送帯域幅を最適に利用するシステムと方法を提供する。本発明はまた、上記の必要性を提起し、また、SACを用いる際のアドレスエリアシングとアドレスエリアシングに伴う他のエラーを引き起こさないシステムと方法を提供する。
【0019】
本発明は、1つのアドレスサイクル(SAC)を用いて様々なサイズのターゲットデバイスを含むコンピュータシステム中でターゲットアドレスを送信する際にアドレスエリアシングを防止するシステムと方法である。このようなコンピュータシステムは、バス、このバスにカップリングされたイニシエータデバイス、このバスにカップリングされた第1のターゲットデバイスおよびこのバスにカップリングされた第2のターゲットデバイスを備えている。第1のターゲットデバイスは、複数のビットを含む第1のアドレス範囲を有し、第2のターゲットデバイスは第1のアドレス範囲より少ない数のビットを含む第2のアドレス範囲を有している。イニシエータデバイスは、ターゲットアドレスのサイズを示す信号を送信することによってトランザクションを始動する。イニシエータはまた、ターゲットアドレスをSAC中に入れて送信する。第2のターゲットデバイスは、ターゲットアドレスのサイズが第2のアドレスの範囲より大きい場合には、ターゲットアドレスに先行したイニシエータからの信号に反応して自身のアドレスデコーディング用ロジックをディスエーブルする。このようにして、第2のターゲットデバイスはターゲットアドレスに反応しないようにされ、これによって、アドレスエリアシングを防止する。
【0020】
ある1つのペリフェラルコンポーネント相互接続(PCI)に適合した実施形態では、バス、イニシエータデバイス、第1のターゲットデバイスおよび第2のターゲットデバイスはPCIデバイスである。第1のターゲットデバイスは、64ビットアドレス範囲を持つ64ビットデバイスであり、第2のターゲットデバイスは32ビットアドレス範囲を持つ32ビットデバイスである。加えて、第2のターゲットデバイスは、イニシエータデバイスからのREQ64#に反応して自身のアドレスデコーディング用ロジックをディスエーブルする。
【0021】
したがって、本発明によれば、64ビットイニシエータから64ビットターゲットへのトランザクションは、このターゲットの64ビットアドレスを指定するSACで、32ビットターゲットの存在下でアドレスエリアシングを引き起こすことなく実行される。64ビットイニシエータと32ビットイニシエータのどちらかから32ビットターゲットへのトランザクションもまた、このターゲットの32ビットアドレスを指定するSACで実行される。
【0022】
本明細書に組み込まれまたその1部を成す添付図面が、説明文と共に本発明の実施形態を示し、本発明の原理を説明する。
【0023】
(発明を実施するための最良の形態)
添付図面に例示される、本発明の好ましい実施形態をここで詳細に参照する。本発明は好ましい実施形態を参照して説明するが、本発明をこれらの実施形態に限る意図はないことが理解されよう。反対に、本発明は、添付クレームによって記載される本発明の精神と範囲に含まれる代替例、修正例および等化例を範囲に御さめることを意図するものである。さらに、本発明に関する以下の詳細な説明では、多くの具体的な詳細を記載して、本発明を完全に理解しようとするものである。しかしながら、通常の技術を持つ者であれば、本発明はこれらの具体的な詳細なしでも実行可能であることが理解されよう。他の例では、周知の方法、手順、コンポーネントおよび回路を詳細に説明して、本発明の態様を不必要に曖昧化しないようにする。
【0024】
以下の詳細な説明の一部は手順、ロジックブロック、処理および、コンピュータメモリー内でのデータビットに対する動作を記号で表示して提示されている。これらの説明と表示は、データ処理技術の当業者が、自身の業績の実態を他の当業者に最も効率的に伝えるに際に用いられる手段である。本出願においては、手順、ロジックブロック、プロセスなどは、所望の結果に導くステップまたは命令から成るつじつまの合うシーケンスであると考えられる。これらのステップは、物理的な分量の物理的な操作を必要とするステップである。通常は、常に当てはまるわけではないが、これらの分量は、コンピュータシステム中で記憶し、転送し、合成し、比較しまた別様に操作することが可能な電気信号または磁気信号という形態を取る。時によっては、主として通常的に使用する理由上、これらの信号をトランザクション、ビット、値、エレメント、記号、キャラクタ、フラグメント、画素などと呼ぶと便利であることが分かっている。
【0025】
ここでは、トランザクションと言えば、データや他の類似のメッセージ情報を送信したり受信したりすることである。トランザクションは、特定のコンピュータシステム動作(例えば、リクエストとかコマンド)と関連するすべてのデータから成っている。トランザクションはまた、特定の動作と関連するデータから成るブロックから成るが;例えば、データを転送する場合、いくつかのデータブロックに分割されるが、これらのブロックの個々が後続のブロックの転送に先立って転送され、また、各ブロックがトランザクションを形成している。
【0026】
しかしながら、上記のすべての用語および類似の用語はすべてが適切な物理量と関連し、また、これらの量に対して単に便利なラベルが当てられているに過ぎないことを心に留めるべきである。以下の説明から分かるように、時に別様に記載のない限り、本発明の全体にわたって、「処理」、「動作」、「計算」、「決定」、表示」などの用語を用いた説明は、コンピュータシステムまたは類似の出に計算デバイスの動作およびプロセスを意味することが理解されよう。このコンピュータシステムや類似の電気計算デバイスは、物理的(電子的な)量として表されたデータをコンピュータシステムのメモリー、レジスタもしくは他の類似の情報記憶装置、送信デバイスまたは表示デバイス内で操作して変換する。本発明は他のコンピュータシステムの用法にも適している。
【0027】
本発明は、イニシエータデバイスが1つのアドレスサイクル(SAC)を用いてターゲットアドレスをバスを介して、様々なサイズのアドレスを有するターゲットデバイスに送信する際のアドレスエリアシングを防止するシステムと方法である。したがって、本発明は、二重アドレスサイクル(DAC)にまつわるクロックサイクルの不必要な消費を解消することによってコンピュータシステムのデータ転送帯域幅を最適に利用するシステムと方法を提供する。
【0028】
以下の実施形態の説明において、イニシエータデバイス、ターゲットデバイスおよびバスは、ペリフェラルコンポーネント相互接続(PCI)適合デバイスである。したがって、以下の説明はPCI適合するバスシステムの文脈でなされる。しかしながら、例えばマイクロチャネル(Micro Channel)、EISA(拡張産業規格アーキテクチャ:Extened Industry Standard Architecture)などの本発明による他のバスシステムの構成を用いてもよいことが理解されよう。
【0029】
ここで図3を参照すると、本発明のPCI適合の実施形態によるコンピュータシステム300中で実現される例示のPCIバスシステムが図示されている。コンピュータシステム300のPCIバスシステムは、PCIイニシエータ310にカップリングされたPCIバス320を含んでいる。この実施形態では、PCIイニシエータ310はPCI/ホストブリッジ330中に組み込まれている。PCI/ホストブリッジ330は双方向性のPCIブリッジ(分かりやすいように、この双方向性PCIイニシエータ310の部品は図示されていない)である。PCI/ホストブリッジ330を用いて、PCIバス320を中央処理装置(CPU)バス345を介してPCIバス320に、また、メモリーバス335を介してメインメモリー350にカップリングしている。
【0030】
PCIバス320はまた、64ビットPCIターゲットA312とPCIターゲットC316の各々にカップリングされている。PCIターゲットA312とPCIターゲットc316は、最大で64ビットまでの範囲で収まるアドレスを有している;すなわち、64ビットアドレスとは、最大で64ビットのサイズを持つアドレスのことである。一般的に、64ビットアドレスはサイズが64ビット未満のアドレスを含んでいる。
【0031】
PCIバス320はまた、32ビットPCIスマートターゲットB314とPCIスマートターゲットD318の各々にカップリングされている。PCIスマートターゲットB314とPCIスマートターゲットD318は、サイズが最大で32ビットまでの範囲に収まるアドレスを有している。本発明によれば、PCIスマートターゲットB314とPCIスマートターゲットD318は、以下に詳述するような、PCIイニシエータ310からの信号に基づいて、ある種の環境下では自身のアドレスデコーディング用ロジックをディスエーブルするようになっている。
【0032】
ここで図4を参照すると、本発明の本実施形態によるPCIスマートターゲットD318(以降、PCIターゲット318と呼ぶ)が図示されている。本実施形態では、PCIターゲット318はアドレスデコーダ460を組み込んでいる。アドレスデコーダ460は、PCIイニシエータ(例えば、図3のPCIイニシエータ310)から送信されたアドレスがPCIターゲット318に割り当てられたアドレスの範囲に収まるかどうかを判断する技術上周知のメカニズムである。
【0033】
本実施形態では、発生するデータトランザクションが64ビットトランザクションである場合、PCIターゲット318はPCIバス320を介してPCIイニシエータ310からREQ64#信号464を受信するが;本発明によれば、この信号は32ビットデータのトランザクションの場合には送信されない。PCIバスシステム(例えば、図3のPCIバスシステム300)のPCIスロット中にあるすべての32ビットターゲットが、REQ64#をサンプリングする。
【0034】
PCI規格によるREQ64#信号の後ではなくトランザクションの開始時に、PCIイニシエータ310もまた、所望のターゲットデバイスのアドレスをPCIバス320上のすべてのターゲットデバイスに送信する。64ビットアドレスの場合、本発明によれば、アドレスはPCIバス320中のAD[63:32]とAD[31:0]上に送信されるが;32ビットアドレスの場合、アドレスはAD[31:0]上でだけ送信される。PCIターゲット318は32ビットターゲットであるので、PCIイニシエータ310によって指定されたターゲットアドレスをAD[31:0]466を介して受信する。
【0035】
さらに図4を参照すると、本発明によると、64ビットデータのトランザクションが発生することを示すREQ64#信号464がPCIターゲット318によって受信されると、アドレスデコーダ460がPCIターゲット318によってディスエーブルされる様子が図示されている。したがって、64ビットデータのトランザクションの場合、PCIターゲット318はPCIイニシエータ310が送った64ビットアドレスをデコーディングすることは不可能であり、したがって、DEVSEL#信号462をオンすることによってこの64ビットデータトランザクションを要求することはできない。したがって、本発明によれば、PCIバスシステム300(図3)は、32ビットターゲットが4ギガバイト(GB)未満のメモリーアドレスに対するアクセスを要求するだけであり、また、64ビットターゲットは4GBを越えるメモリーアドレスに対するアクセスを要求するだけであるように設計される。このようにして、アドレスエリアシングと、これにまつわるバス競合などのエラーは本発明によって防止されるが、それは、32ビットターゲット(例えば、PCIターゲット318)は64ビットアドレスには応答することができないからである。
【0036】
REQ64#信号464がPCIターゲット318によって受信されない場合、それはデフォルトによって、発生しようとするトランザクションが32ビットデータのトランザクションであり、アドレスデコーダ460はアクティブの状態のままであり、従ってそのトランザクションに関連する32ビットアドレスをデコーディングすることが可能であることを示す。PCIターゲット318が32ビットアドレスによって指定されたターゲットデバイスであると仮定すると、PCIターゲット318はそれに反応して、DEVSEL#信号462を要求する。したがって、本発明によって、32ビットデバイスと64ビットデバイスが同じシステム中で相互作用することが可能となる。
【0037】
図5とさらに図3も参照すると、本発明の本実施形態に従って用いられるプロセスのフローチャート500が図示されている。プロセス500で、64ビットPCIイニシエータ(例えば、PCIイニシエータ310)は、64ビットアドレスを1つのアドレスサイクル(SAC)で、32ビットデバイスと64ビットデバイスの双方を備えたPCIバスシステム(例えば、コンピュータシステム300のPCIバスシステム)中のPCIバス(例えば、PCIバス320)を介して送信することができる。プロセス500は、アドレスエリアシングが発生しないように工夫されている。プロセス500はまた、DACにまつわる追加のクロックサイクルを解消する。
【0038】
ステップ505では、PCIイニシエータ310がPCI規格によるFRAME#信号とREQ64#信号をオンすると、64ビットデータトランザクションが始動される。これらの信号は、PCIバス320上のすべてのPCIターゲットによって受信される。REQ64#信号は、このトランザクションが64ビットデータのトランザクションであることを示す。この信号は32ビットデータトランザクションの場合にはオンされない(assertされない)。
【0039】
ステップ510では、イニシエータ310は、このトランザクション用に指定された64ビットアドレスをPCIバス320上に駆動する。このアドレスはPCIバス320上のすべてのPCIターゲットに送信される。本発明によれば、SACを用いて、64ビットアドレスを送信する。この実施形態では、64ビットアドレスは2つの32ビットオペランドに分割されて、AD[31:0]とAD[63:32]を介して送信される;しかしながら、これらのオペランドは同じPCIクロックサイクル間で送信される。このようにして、本発明はDACにまつわる不必要なクロックサイクルを解消する。
【0040】
ステップ515では、REQ64#信号がPCIバス320上のすべてのPCIターゲット(例えば、64ビットターゲットA312およびC316並びに32ビットPCIスマートターゲットB314およびD318)によって受信される。
【0041】
ステップ520では、図4を参照して説明したように、本実施形態では、各32ビットPCIスマートターゲットは、REQ64#信号を受信すると自身のアドレスデコーダをディスエーブルするようになっている。このため、アドレスデコーダがディスエーブルされた状態では、各32ビットスマートターゲットはPCIイニシエータ310から受信したアドレスをデコーディングすることができない。したがって、本発明によれば、32ビットスマートターゲットはトランザクションに対する要求をオンすることができない。このようにして、本発明は、アドレスエリアシングとバス競合などのこれにまつわるエラーとを発生することを防止する。
【0042】
ステップ525では、ステップ520の結果として、本発明によって、64ビットターゲットだけがステップ510で送信されたアドレスをデコーディングすることができる。このアドレスによって指定されたターゲットである64ビットターゲットはこのアドレスを自分自身のアドレスであると認識して、PCI規格に従って、DEVSEL#を用いてトランザクションに対する要求をオンする。この時点から、データトランザクションはPCI規格に従って進行し続ける。
【0043】
図6に、本発明に従って64ビットイニシエータデバイス(例えば、図3のPCIイニシエータ310)と64ビットターゲット(例えば、図3のPCIターゲットA312)間での64ビットデータトランザクションを例示するタイムチャート600を示す。分かりやすいように、図6では、データトランザクションに関連するすべての信号を図示しているわけではなく、ここで説明する際にまつわる信号だけを図示している。
【0044】
PCIイニシエータ310は、それぞれポイント645と650でFRAME#信号とREQ64#信号をオンすることによってPCIクロックサイクル1の立ち上がりエッジでトランザクションを開始する。またクロックサイクル1では、本発明に従って、PCIイニシエータ310はアドレスの下位部分(例えば、低位アドレス610)とアドレスの上位部分(例えば、高位アドレス620)をそれぞれAD[31:0]とAD[63:32]上でPCIバス320(図3)上に駆動する。PCIターゲットA312このアドレスの双方の部分を受信してこのアドレスをクロックサイクル2でデコーディングする。このアドレスを自身のアドレスと認識して、PCIターゲットA312は、ポイント640でクロックサイクル2でDEVSEL#をオンすることによってトランザクションを要求する。ターンアラウンドサイクル625はクロックサイクル3の間にオンされて、データA630とB632がこれで、そのトランザクションのタイプによって(例えば、読み取りトランザクションか書き込みトランザクションかによって)PCIイニシエータ310とPCIターゲットA312とのどちらかによってPCIバス320上に駆動される。したがって、図6に示すように、本発明によって、アドレスサイクルの完了とデータ転送とを、64ビットアドレスを送信するのにDACを用いる場合より1クロックサイクル速く発生させることができる。したがって、本発明はコンピュータシステムのデータ転送帯域幅を最適に利用し、また、ラップトップ型コンピュータなどのバッテリ駆動式の電力が限られるデバイスの電力を節約するものである。
【0045】
図7に、本発明による64ビットイニシエータデバイス(例えば、図3のPCIイニシエータ310)と32ビットスマートターゲット(例えば、図3のPCIスマートターゲットD318)間での64ビットデータのトランザクションを例示するタイムチャート700を示す。分かりやすいように、図7にはデータトランザクションに関連するすべての信号を図示するわけではなく、ここでの説明に関わる信号だけを図示している。
【0046】
図6を参照して上述したのと同様に、PCIイニシエータ310は、それぞれポイント645と650でFRAME#信号とREQ64#信号をオンすることによってPCIクロックサイクル1の対置上がりエッジでトランザクションを開始する。またクロックサイクル1では、本発明に従って、PCIイニシエータ310は、それぞれAD[31:0]とAD[63:32]上でPCIバス320(図3)上にアドレスの下位部分(例えば、低位アドレス610)とアドレスの上位部分(例えば、高位アドレス620)を駆動する。PCIスマートターゲットD318はREQ64#信号を受信して、本発明に従って、自身のアドレスデコーダをディスエーブルする。その結果、PCIスマートターゲットD318はAD[31:0]上で低位アドレス610だけを受信しても、そのアドレスをデコードできない(その理由は、32ビットターゲットであるため、PCIスマートターゲットD318はAD[63:32]にアクセスしないからである)。その結果、PCIスマートターゲットD318はDEVSEL#をオンして、トランザクションを要求することはない。したがって、図7に示すように、本発明によって、64ビットターゲットと32ビットターゲットの双方を備えたシステム中でSACを用いて64ビットアドレスを送信することが可能となる;しかしながら、本発明によれば、32ビットターゲットはこのアドレスには反応せず、これによって、アドレスエリアシング、バス競合などを防止する。
【0047】
本発明はさらに、64ビットイニシエータが32ビットターゲットとSACを用いてデータトランザクションを実行することを可能とすることに注意されたい。この場合、64ビットイニシエータがSAC中で32ビットアドレスを送信するがREQ64#をオンすることはない。したがって、32ビットターゲットのアドレスデコーダはアクティブのままであるので、そのアドレスをデコーディングする。したがって、本発明によって、64ビットデバイスと32ビットデバイスの双方が、64ビットアドレスと32ビットアドレスのすべてを使用可能としながらも、一緒にシームレスに機能することが可能となる。
【0048】
したがって、本発明は、互いに異なったサイズのアドレスを有するターゲットデバイスを含むコンピュータシステム中でターゲットアドレスを送信するためにSACを用いる場合にアドレスのエリアシングを防止するシステムと方法を提供する。本発明は、DACと関連するクロックサイクルの不必要な消費を解消することによってコンピュータシステムのデータ転送帯域幅を最適に利用するものである。本発明はまた、アドレスエリアシングやこれにまつわる他のエラーを発生させない方法とシステムを提供する。さらに、クロックサイクルの不必要な消費を解消し、また、本発明に従ってPCIスマートターゲットのアドレスデコーダをディスエーブルすることによって、本発明は、ラップトップ型コンピュータなどの電力が制限されるデバイスでの電力の節約をもたらす。
【0049】
二重アドレスサイクルを解消してPCI帯域幅を増加させる本発明による好ましい実施形態をこのように説明した。本発明は特定の実施形態について説明したが、本発明はこのような実施形態に限られる者ではなく、添付クレームによって制限されるものであることを理解すべきである。
【図面の簡単な説明】
【図1】 先行技術による簡略化された例示のペリフェラルコンポーネント相互接続(PCI)バスアーキテクチャのブロック図である。
【図2】 先行技術による64ビット読み取りトランザクションのアドレスフェーズを示すタイミングチャートである。
【図3】 本発明に係る1つの実施形態によるコンピュータシステム中で実現される例示のPCIバスアーキテクチャのブロック図である。
【図4】 本発明に係る1つの実施形態による例示のスマートターゲットメカニズムのブロック図である。
【図5】 本発明に係る1つの実施形態による64ビットアドレスを送信するために用いられるプロセスのフローチャートである。
【図6】 本発明に係る1つの実施形態による64ビットアドレスに対する64ビットターゲットの反応を示すタイミングチャートである。
【図7】 本発明に係る1つの実施形態による64ビットアドレスに対する32ビットターゲットの反応を示すタイミングチャートである。

Claims (19)

  1. バスと;
    前記バスにカップリングされたイニシエータデバイスと;
    前記バスにカップリングされた第1のターゲットデバイスであって、複数のビットを含む第1のアドレス範囲を有する、前記第1のターゲットデバイスと;
    前記バスにカップリングされた第2のターゲットデバイスであって、第2のアドレス範囲を有し、この第2のアドレス範囲が、前記第1のアドレス範囲より少ない数のビットを含む、前記第2のターゲットデバイスと;
    を備えるとともに、
    前記イニシエータデバイスが、1つのアドレスサイクルでターゲットアドレスを、前記第1のターゲットデバイスと前記第2のターゲットデバイスとに、送信するように構成されており、さらに、前記イニシエータデバイスは前記ターゲットアドレスのサイズを示す信号を送信するように構成されており;
    前記ターゲットアドレスのサイズが前記第2のアドレス範囲より大きいことを前記信号が示している場合、前記第2のターゲットデバイス、前記イニシエータデバイスから受信した前記ターゲットアドレスに反応しないように構成されており、これによってアドレスのエリアシングを防止する、
    コンピュータシステム。
  2. 前記ターゲットアドレスのサイズが前記第2のアドレス範囲より大きいことを前記信号が示す場合に、前記イニシエータデバイスからの前記信号に基づいて、前記第2のターゲットデバイスが自身のアドレスデコーディング用ロジックをディスエーブルように構成されている、請求項1に記載のコンピュータシステム。
  3. 前記第1のターゲットデバイスが64ビットデバイスであり、前記第1のアドレスが64ビットアドレスであり、前記第2のターゲットデバイスが32ビットデバイスであり、且つ、前記第2のアドレスが32ビットアドレスである、請求項1に記載のコンピュータシステム。
  4. 前記イニシエータデバイスからの前記信号が、前記64ビットアドレスが用いられることを示す信号である、請求項3に記載のコンピュータシステム。
  5. 前記バス、前記イニシエータデバイス、前記第1のターゲットデバイスおよび前記第2のターゲットデバイスが、ペリフェラルコンポーネント相互接続(PCI)適合デバイスである、請求項1に記載のコンピュータシステム。
  6. 前記信号と前記アドレスデコーディング用ロジックが、PCI規格に適合する、請求項5に記載のコンピュータシステム。
  7. 前記信号がREQ64#信号であり、前記アドレスデコーディング用ロジックがDEVSEL#信号と関連している、請求項6に記載のコンピュータシステム。
  8. 64ビットターゲットデバイスと32ビットターゲットデバイスを備えるコンピュータシステムで、1つのアドレスサイクルを用いて64ビットアドレスを送信する方法であって、
    a)前記コンピュータシステムのイニシエータデバイスが、前記64ビットアドレスが用いられることを示す信号を発生するステップと;
    b)前記64ビットターゲットデバイスと前記32ビットターゲットデバイスで、前記信号を受信するステップと;
    c)前記信号に基づいて、前記32ビットターゲットデバイスが前記64ビットアドレスに反応することを防止するステップと;
    d)前記イニシエータデバイスが、前記64ビットアドレスを、前記64ビットターゲットデバイスと前記32ビットターゲットデバイスに、1つのアドレスサイクルで、送信するステップと、
    備える方法。
  9. 前記ステップc)が、前記32ビットターゲットデバイスによって用いられるアドレスデコーディング用ロジックをディスエーブルして、前記イニシエータデバイスからアドレスを読み取るステップをさらに備える、請求項8に記載の方法。
  10. 前記64ビットターゲットデバイスが、前記64ビットアドレスをデコーディングして、前記64ビットアドレスに対する要求をオンするステップe)をさらに備える、請求項8に記載の方法。
  11. 記64ビットターゲットデバイス、前記32ビットターゲットデバイスおよび前記イニシエータデバイスが、ペリフェラルコンポーネント相互接続(PCI)適合デバイスである、請求項8に記載の方法。
  12. 前記信号は、前記64ビットアドレスに対してのみ発生される、請求項8に記載の方法。
  13. 前記信号と前記アドレスデコーディング用ロジックは、PCI規格に適合する、請求項8に記載の方法。
  14. 前記信号がREQ64#信号であり、前記アドレスデコーディング用ロジックがDEVSEL#信号と関連している、請求項13に記載の方法。
  15. イニシエータデバイス、64ビットターゲットデバイスおよび32ビットターゲットデバイスを備えるコンピュータシステムにおいて、前記イニシエータデバイスが1つのアドレスサイクルで64ビットアドレスを送信する方法であって、
    a)前記イニシエータデバイスから信号を前記32ビットターゲットデバイスで受信し、前記信号は前記64ビットアドレスが用いられることを示しているステップ
    b)前記信号に基づいて、前記イニシエータデバイスからのアドレスを読み取る前記32ビットターゲットデバイスにより用いられるアドレスデコーディング用ロジックをディスエーブルすることによって、前記32ビットターゲットデバイスが前記64ビットアドレスに反応することを防止するステップと
    c)前記イニシエータデバイスが、前記64ビットアドレスを、前記64ビットターゲットデバイスと前記32ビットターゲットデバイスに、1つのアドレスサイクルで、送信するステップと、
    備える方法。
  16. 前記イニシエータデバイス、前記64ビットターゲットデバイスおよび前記32ビットターゲットデバイスが、ペリフェラルコンポーネント相互接続(PCI)適合デバイスである、請求項15に記載の方法。
  17. 前記信号が前記64ビットアドレスに対してのみ発生される、請求項15に記載の方法。
  18. 前記信号と前記アドレスデコーディング用ロジックがPCI基準に適合する、請求項15に記載の方法。
  19. 前記信号がREQ64#信号であり、前記アドレスデコーディング用ロジックがDEVSEL#信号と関連する、請求項18に記載の方法。
JP2000587270A 1998-12-11 1999-12-08 コンピュータシステムバスのアーキテクチャと関連方法 Expired - Fee Related JP4485064B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/210,103 1998-12-11
US09/210,103 US6178478B1 (en) 1998-12-11 1998-12-11 Smart target mechanism for eliminating dual address cycles in a peripheral component interconnect environment
PCT/US1999/029077 WO2000034879A1 (en) 1998-12-11 1999-12-08 Computer system bus architecture and related method

Publications (2)

Publication Number Publication Date
JP2002532781A JP2002532781A (ja) 2002-10-02
JP4485064B2 true JP4485064B2 (ja) 2010-06-16

Family

ID=22781590

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000587270A Expired - Fee Related JP4485064B2 (ja) 1998-12-11 1999-12-08 コンピュータシステムバスのアーキテクチャと関連方法

Country Status (5)

Country Link
US (1) US6178478B1 (ja)
EP (1) EP1137998A1 (ja)
JP (1) JP4485064B2 (ja)
AU (1) AU2046300A (ja)
WO (1) WO2000034879A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103455361B (zh) * 2013-09-06 2017-02-08 南京南自信息技术有限公司 一种在64位操作系统下调用32位解码库的方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2026768C (en) * 1989-11-13 1996-07-23 Russell S. Padgett Extended addressing using sub-addressed segment registers
US5430847A (en) * 1992-10-22 1995-07-04 International Business Machines Corporation Method and system for extending system buses to external devices
US5448703A (en) * 1993-05-28 1995-09-05 International Business Machines Corporation Method and apparatus for providing back-to-back data transfers in an information handling system having a multiplexed bus
US5848249A (en) * 1995-06-15 1998-12-08 Intel Corporation Method and apparatus for enabling intelligent I/O subsystems using PCI I/O devices
US5828865A (en) * 1995-12-27 1998-10-27 Intel Corporation Dual mode bus bridge for interfacing a host bus and a personal computer interface bus
US5790814A (en) * 1996-01-23 1998-08-04 Dell U.S.A., L.P. Technique for supporting semi-compliant PCI devices behind a PCI-to-PCI bridge
US5778199A (en) * 1996-04-26 1998-07-07 Compaq Computer Corporation Blocking address enable signal from a device on a bus
US6018810A (en) * 1997-12-12 2000-01-25 Compaq Computer Corporation Fault-tolerant interconnection means in a computer system

Also Published As

Publication number Publication date
WO2000034879A9 (en) 2000-11-23
EP1137998A1 (en) 2001-10-04
US6178478B1 (en) 2001-01-23
WO2000034879A1 (en) 2000-06-15
JP2002532781A (ja) 2002-10-02
AU2046300A (en) 2000-06-26

Similar Documents

Publication Publication Date Title
US5592682A (en) Interface circuit for transferring data between host device and mass storage device in response to designated address in host memory space assigned as data port
US5533204A (en) Split transaction protocol for the peripheral component interconnect bus
US5600793A (en) Method and system of bi-directional parallel port data transfer between data processing systems
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
US6131127A (en) I/O transactions on a low pin count bus
KR100742718B1 (ko) 컴퓨터 시스템의 제1 및 제2버스사이에 연결된 투명브리지, 이를 포함하는 시스템 및 컴퓨터 시스템의 제1 및 제2 버스의 브리징 방법
US6233632B1 (en) Optimizing peripheral component interconnect transactions in a mixed 32/64-bit environment by eliminating unnecessary data transfers
US7069350B2 (en) Data transfer control system, electronic instrument, and data transfer control method
JP2565659B2 (ja) 情報処理システムで異なるバス・アーキテクチャの間の正確かつ完全な通信を提供する方法および装置
JP2001236304A (ja) マイクロコンピュータ
KR20010024260A (ko) 핀-총수가 적은 버스 상에서의 직접 메모리 억세스 트랜잭션
JPH01197866A (ja) インターフエース装置と方法
US6266723B1 (en) Method and system for optimizing of peripheral component interconnect PCI bus transfers
US7096290B2 (en) On-chip high speed data interface
KR100579203B1 (ko) 능률화된 ata 장치 초기화 방법 및 장치
US6230216B1 (en) Method for eliminating dual address cycles in a peripheral component interconnect environment
US20030217218A1 (en) Interface for devices having different data bus widths and data transfer method using the interface
JP4485064B2 (ja) コンピュータシステムバスのアーキテクチャと関連方法
US6301631B1 (en) Memory mapping method for eliminating dual address cycles in a peripheral component interconnect environment
JPH0981505A (ja) コンピュータシステム
US6311248B1 (en) Method and system for optimized data transfers in a mixed 64-bit/32-bit PCI environment
US7694004B2 (en) Bit-granular writes of control registers
US6230227B1 (en) Computer system with support for a subtractive agent on the secondary side of a PCI-to-PCI bridge
US6954816B2 (en) Peripheral device with shared bus interface and operating method thereof
JP2000112878A (ja) デ―タ処理装置内の転送要求タイミングを制御するための装置および方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061207

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20080515

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091016

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091027

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100113

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100223

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100324

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130402

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130402

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140402

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees