(57)【特許請求の範囲】
【請求項１】
バスと；
前記バスにカップリングされたイニシエータデバイスと；
前記バスにカップリングされた第１のターゲットデバイスであって、複数のビットを含む第１のアドレス範囲を有する、前記第１のターゲットデバイスと；
前記バスにカップリングされた第２のターゲットデバイスであって、第２のアドレス範囲を有し、この第２のアドレス範囲が、前記第１のアドレス範囲より少ない数のビットを含む、前記第２のターゲットデバイスと；
を備えるとともに、
前記イニシエータデバイスが、１つのアドレスサイクルでターゲットアドレスを、前記第１のターゲットデバイスと前記第２のターゲットデバイスとに、送信するように構成されており、さらに、前記イニシエータデバイスは、前記ターゲットアドレスのサイズを示す信号を送信するように構成されており；
前記ターゲットアドレスのサイズが前記第２のアドレス範囲より大きいことを前記信号が示している場合、前記第２のターゲットデバイスは、前記イニシエータデバイスから受信した前記ターゲットアドレスに反応しないように構成されており、これによってアドレスのエリアシングを防止する、
コンピュータシステム。
【請求項２】
前記ターゲットアドレスのサイズが前記第２のアドレス範囲より大きいことを前記信号が示す場合に、前記イニシエータデバイスからの前記信号に基づいて、前記第２のターゲットデバイスが自身のアドレスデコーディング用ロジックをディスエーブルように構成されている、請求項１に記載のコンピュータシステム。
【請求項３】
前記第１のターゲットデバイスが６４ビットデバイスであり、前記第１のアドレスが６４ビットアドレスであり、前記第２のターゲットデバイスが３２ビットデバイスであり、且つ、前記第２のアドレスが３２ビットアドレスである、請求項１に記載のコンピュータシステム。
【請求項４】
前記イニシエータデバイスからの前記信号が、前記６４ビットアドレスが用いられることを示す信号である、請求項３に記載のコンピュータシステム。
【請求項５】
前記バス、前記イニシエータデバイス、前記第１のターゲットデバイスおよび前記第２のターゲットデバイスが、ペリフェラルコンポーネント相互接続（ＰＣＩ）適合デバイスである、請求項１に記載のコンピュータシステム。
【請求項６】
前記信号と前記アドレスデコーディング用ロジックが、ＰＣＩ規格に適合する、請求項５に記載のコンピュータシステム。
【請求項７】
前記信号がＲＥＱ６４＃信号であり、前記アドレスデコーディング用ロジックがＤＥＶＳＥＬ＃信号と関連している、請求項６に記載のコンピュータシステム。
【請求項８】
６４ビットターゲットデバイスと３２ビットターゲットデバイスを備えるコンピュータシステムで、１つのアドレスサイクルを用いて６４ビットアドレスを送信する方法であって、
ａ）前記コンピュータシステムのイニシエータデバイスが、前記６４ビットアドレスが用いられることを示す信号を発生するステップと；
ｂ）前記６４ビットターゲットデバイスと前記３２ビットターゲットデバイスで、前記信号を受信するステップと；
ｃ）前記信号に基づいて、前記３２ビットターゲットデバイスが前記６４ビットアドレスに反応することを防止するステップと；
ｄ）前記イニシエータデバイスが、前記６４ビットアドレスを、前記６４ビットターゲットデバイスと前記３２ビットターゲットデバイスに、１つのアドレスサイクルで、送信するステップと、
を備える方法。
【請求項９】
前記ステップｃ）が、前記３２ビットターゲットデバイスによって用いられるアドレスデコーディング用ロジックをディスエーブルして、前記イニシエータデバイスからアドレスを読み取るステップをさらに備える、請求項８に記載の方法。
【請求項１０】
前記６４ビットターゲットデバイスが、前記６４ビットアドレスをデコーディングして、前記６４ビットアドレスに対する要求をオンするステップｅ）をさらに備える、請求項８に記載の方法。
【請求項１１】
前記６４ビットターゲットデバイス、前記３２ビットターゲットデバイスおよび前記イニシエータデバイスが、ペリフェラルコンポーネント相互接続（ＰＣＩ）適合デバイスである、請求項８に記載の方法。
【請求項１２】
前記信号は、前記６４ビットアドレスに対してのみ発生される、請求項８に記載の方法。
【請求項１３】
前記信号と前記アドレスデコーディング用ロジックは、ＰＣＩ規格に適合する、請求項８に記載の方法。
【請求項１４】
前記信号がＲＥＱ６４＃信号であり、前記アドレスデコーディング用ロジックがＤＥＶＳＥＬ＃信号と関連している、請求項１３に記載の方法。
【請求項１５】
イニシエータデバイス、６４ビットターゲットデバイスおよび３２ビットターゲットデバイスを備えるコンピュータシステムにおいて、前記イニシエータデバイスが１つのアドレスサイクルで６４ビットアドレスを送信する方法であって、
ａ）前記イニシエータデバイスから信号を前記３２ビットターゲットデバイスで受信し、前記信号は前記６４ビットアドレスが用いられることを示しているステップと；
ｂ）前記信号に基づいて、前記イニシエータデバイスからのアドレスを読み取る前記３２ビットターゲットデバイスにより用いられるアドレスデコーディング用ロジックをディスエーブルすることによって、前記３２ビットターゲットデバイスが前記６４ビットアドレスに反応することを防止するステップと；
ｃ）前記イニシエータデバイスが、前記６４ビットアドレスを、前記６４ビットターゲットデバイスと前記３２ビットターゲットデバイスに、１つのアドレスサイクルで、送信するステップと、
を備える方法。
【請求項１６】
前記イニシエータデバイス、前記６４ビットターゲットデバイスおよび前記３２ビットターゲットデバイスが、ペリフェラルコンポーネント相互接続（ＰＣＩ）適合デバイスである、請求項１５に記載の方法。
【請求項１７】
前記信号が前記６４ビットアドレスに対してのみ発生される、請求項１５に記載の方法。
【請求項１８】
前記信号と前記アドレスデコーディング用ロジックがＰＣＩ基準に適合する、請求項１５に記載の方法。
【請求項１９】
前記信号がＲＥＱ６４＃信号であり、前記アドレスデコーディング用ロジックがＤＥＶＳＥＬ＃信号と関連する、請求項１８に記載の方法。
【発明の詳細な説明】
【０００１】
（技術分野）
本発明はコンピュータシステムバスのアーキテクチャに関する。より詳しくは、本発明はペリフェラルコンポーネントを相互接続するバスシステムにおけるアドレスサイクルを最適化する方法に関する。ペリフェラルコンポーネント相互接続環境下での二重アドレスサイクルを解消するスマートなターゲットメカニズムについて説明する。
【０００２】
（背景技術）
コンピュータシステムのバスアーキテクチャは、コンピュータシステムの動作にまつわる情報と信号の大部分を運搬する。一般的なコンピュータシステムでは、データ信号と制御信号が様々なコンポーネント間で容易に送信されるように、１つ以上のバスを用いて中央処理装置（ＣＰＵ）をメモリーデバイスと入／出力デバイスに接続している。コンピュータシステムがそのプログラムを実行するときには、コンピュータシステムがユーザーにとってできるだけ反応性を高めるようにデータと情報ができるかぎり迅速に流れることが肝要である。図形アダプタやフルモーションビデオアダプタや小型コンピュータシステムインタフェース（ＳＣＳＩ）ホストバスアダプタなどのペリフェラルデバイスとサブシステムが多く接続されているため、大きなブロックのデータ転送を迅速に遂行することが肝要である。これらの応用例は、非常に高速なバス転送速度から実質的に恩典を受けるペリフェラルデバイスとサブシステムのほんの数例に過ぎない。
【０００３】
コンピュータシステムがユーザーに対して持つ機能と有用性の多くは、ペリフェラルデバイスの機能から得られるものである。例えば、図形アダプタの速度と反応性は、娯楽デバイスとしてのコンピュータシステムが持つ有用性の主要な要素である。すなわち、例えば、ビデオファイルをハードディスクドライブから検索して図形アダプタでプレイできる速度によって、訓練支援装置としてのコンピュータシステムの有用性が決まる。したがって、様々なペリフェラルデバイス間でデータを転送できる速度によってしばしば、そのコンピュータシステムが特定の目的に適しているかどうかが決まってしまう。
【０００４】
電子産業は今まで、いくつかのタイプのバスアーキテクチャを開発してきた。ＰＣＩ（ペリフェラルコンポーネント相互接続：Peripheral Component Interconnect）バスアーキテクチャは、業界で最も広く使用され支持されているバスアーキテクチャの内の１つとなっている。ＰＣＩバスは、様々なシステムの開発の基礎となる高速で待ち時間の少ないバスアーキテクチャを提供する目的で開発されたものである。
【０００５】
ＰＣＩ規格は、ＰＣＩバスアーキテクチャで動作するＰＣＩデバイスの均一性とコンパティビリティを容易化する基準を確立するのに用いられる。ＰＣＩ規格は、最初は３２ニットデバイスと３２ビットトランザクションを用いることを提起したが、それ以来、６４ビットデバイスと６４ビットトランザクションにまで拡張されている。
【０００６】
例えばコンピュータシステム中で実現された、先行技術による簡略化された例示のＰＣＩバスアーキテクチャ１００を図１に示す。ＰＣＩバス１２０がＰＣＩイニシエータ１１０にカップリングされている。ＰＣＩバス１２０はまた、ＰＣＩターゲットデバイスＡ１１２、Ｂ１１４、Ｃ１１６およびＤ１１８の各々にカップリングされている。ＰＣＩイニシエータ１１０は、図示するようにバスブリッジ１３０に統合でき、また、このバスブリッジ１３０を用いて、ＰＣＩバス１２０をホストバス（図示せず）にカップリングされている。バスブリッジ１３０は一般的には双方向性のブリッジであり、多くのコンポーネントから成っているが：分かりやすいように、バスブリッジ１３０はＰＣＩイニシエータ１１０を備えるだけのものとして図示されている。
【０００７】
ＰＣＩバス１２０は、機能信号ライン、例えば、インタフェース制御ライン、アドレス／データライン、エラー信号ラインなどから成っている。ＰＣＩターゲットデバイス１１２〜１１８の各々がＰＣＩバス１２０を含んでいる機能信号ラインにカップリングされている。
【０００８】
先行技術を示す図１を参照すると、ＰＣＩターゲットＢ１１４とＤ１１８が３２ビットターゲットデバイスとなっている。すなわち、ＰＣＩターゲットＢ１１４とＤ１１８は最大で３２ビットまでその範囲に収めるアドレスを有し、これによって、３２ビットメモリー空間中で最大４ギガバイト（ＧＢ）のアドレス範囲となっている。同様に、ＰＣＩターゲットＡ１１２とＣ１１６は６４ビットのターゲットデバイスであり、最大で６４ビットを範囲に収めるアドレスを有するが、これは、６４ビットメモリー空間中で最大１６ギガバイトの範囲を可能としている。加えて、ＰＣＩバス１２０は６４ビットバスであり、ＰＣＩイニシエータ１１０は６４ビットデバイスである。３２ビットデバイスと６４ビットデバイスのこのような混合体は、ＰＣＩ規格を６４ビットデバイスに拡張したことによる今日のコンピュータシステムでは一般的なことであり、これらのデバイスが一緒になってシームレスに機能し、また、ＰＣＩ規格に適合することが必要である。したがって、コンピュータシステムをその機能を全開まで利用するには、ＰＣＩバスアーキテクチャ１００は６４ビットデバイス間で６４ビットトランザクションを実行可能でなければならず、また、６４ビットイニシエータと３２ビットターゲットデバイス間でのシームレスなトランザクションをサポートしなければならない。
【０００９】
６４ビットイニシエータは、自身がトランザクションを発生させるとき、ターゲットデバイスの属性を意識していない：すなわち、ターゲットが３２ビットデバイスであるか６４ビットデバイスであるかを知らない。したがって、イニシエータとターゲットデバイスが持つそれぞれの範囲（range）と無関係にコンパティビリティを保証するために、先行技術においては、ターゲットデバイスは３２ビットオペランドしか取り扱えないという仮定がなされる。したがって、６４ビットアドレスを送信する先行技術による技法では、６４ビットアドレスを２つの３２ビットオペランドとして表して、そのアドレスを、１サイクルで３２ビットオペランドの各々を送信する二重アドレスサイクル（二重アドレスコマンド、すなわちＤＡＣとしても知られている）を用いてバス上で駆動する。２つのオペランドがＰＣＩバス上を通過するので、１つのＤＡＣを実行するのに２つのＰＣＩクロックサイクルが必要である。
【００１０】
ここで図２の先行技術を参照すると、先行技術によるＤＡＣを用いて簡略化された読み取りトランザクションを例示するタイムチャート２００が図示されている。分かりやすいように、先行技術の図２では、読み取りトランザクションに関連する信号のすべてを図示するのではなく、ここでの説明内容に関連する信号だけを図示している。タイムチャート２００では、６４ビットトランザクションをサポートできるＰＣＩバス（例えば、先行技術の図１のＰＣＩイニシエータ１１０とＰＣＩバス１２０）の上で６４ビットイニシエータデバイスによって始動される読み取りトランザクションが図示されている。
【００１１】
先行技術の図２をさらに参照すると、ＰＣＩイニシエータ１１２０が、ＦＲＡＭＥ＃信号とＲＥＱ６４＃信号を（それぞれポイント２４５と２５０で）オンする（assertする）ことによってＰＣＩクロックサイクルの立ち上がりエッジでトランザクションを開始する。一般に、ＦＲＡＭＥ＃を用いてトランザクションの開始を示し、ＲＥＱ６４＃は、そのトランザクションが６４ビットデータの転送を伴うことを示す。これらの信号は技術上周知であり、ＰＣＩ規格で定義されているとおりである。
【００１２】
クロックサイクル１では、ＰＣＩイニシエータ１１０もまたアドレスの下位部分（例えば低位アドレス２１０）をＡＤ［３１：０］上に駆動し、アドレスの上位部分（例えば高位アドレス２０）をＡＤ［６３：３２］上に駆動し、また、ＤＡＣの双方のアドレスフェーズの持続時間中は高位アドレス２２０をＡＤ［６３：４３］上に駆動し続ける。クロックサイクル２中は、ＰＣＩイニシエータ１１０は、高位アドレス２１５をＡＤ［３１：０］上に駆動することによって、ＤＡＣの第２のアドレスフェーズを開始する。ＰＣＩバス上のすべてのデバイスはこれらのアドレス上にラッチし、クロックサイクル３の間でアドレスをデコーディングする。アドレスによって指定されたターゲットは、ＤＥＶＳＥＬ＃信号を（ポイント２４０で）オンする（assertする）ことによってクロックサイクル３でのトランザクションを要求する。クロックサイクル４の立ち上がりエッジで、読み取りトランザクションターンアラウンドサイクル２２５がＡＤ［３１：０］とＡＤ［６３：３２］に挿入される。次に、データＡ２３０とデータＢ２３２が、トランザクションのタイプにに基づいて、ターゲットデバイスとイニシエータのどちらかによってバス上に駆動される。したがって、先行技術では、たとえターゲットデバイスが６４ビットデバイスであり、したがって６４ビットアドレスを読み取りことが可能であっても、６４ビットアドレスが２つの３２ビットアドレスに分割されてＤＡＣによって送信される。
【００１３】
先行技術は、たとえ６４ビットイニシエータが、ターゲットデバイスが６４ビットデバイスであることを知っている場合でも、１つのアドレスサイクル（または１つのアドレスコマンドＳＡＣ）を用いて６４ビットアドレスを、３２ビットターゲットデバイスが存在する場合に１つの６４ビットオペランドとして６４ビットターゲットデバイスに送信することはできないので、問題がある。ＰＣＩ規格によれば、イニシエータデバイスは、自身がトランザクションを始動する場合、自身がそのトランザクションとの実行を希望している相手側のターゲットデバイスのアドレスをＰＣＩバス上に駆動する。トランザクションのこの段階では、ＰＣＩバス上のすべてのターゲットデバイスはこのアドレスにラッチされ、次に、各ターゲットデバイスがそのアドレスをデコーディングしてそれがアドレスによって指定された意図されたターゲットであるかどうか決定する。したがって、６４ビットアドレスがＰＣＩバス上で１つのアドレスサイクルで送信されると、ＰＣＩバス上にある３２ビットターゲットデバイスの各々と６４ビットターゲットデバイスの各々がそのアドレス上にラッチする。しかしながら、３２ビットターゲットはアドレスの１部分（すなわち、アドレスの下位３２ビット）しか読み取ることができないが、その理由は、これらのデバイスがアドレスの上位３２ビットにはアクセスしないからである。６４ビットアドレスの下位半分が３２ビットデバイスの３２ビットアドレスに一致するような場合では、その３２ビットデバイスはトランザクションに対する要求（claim）を間違ってオンする（assertする）。その間に、そのアドレスの意図された受信側である６４ビットデバイスもまた、自身がそのアドレスをデコーディングして認識した後でそのトランザクションに対する要求をオンするので、この２つのデバイスは同じトランザクションに対して要求をオンしてしまうことになる。
【００１４】
例えば、３２ビットメモリー空間中でアドレス００００  ００００ｈから００００  ＦＦＦＦｈ中にマッピングされた３２ビットターゲットを考える。すると、６４ビットイニシエータが、６４ビットメモリー空間にマッピングされた６４ビットターゲットに対して００００  ０００１  ００００  １０００ｈというアドレスを指定する。この３２ビットターゲットはこのアドレス上にラッチするが、このアドレスの上位部分、具体的には、この３２ビットターゲットから見れば自身がマッピングされているアドレスの範囲内に収まるように見える００００  １０００ｈという部分しか読み取ることができない。したがって、この３２ビットターゲットは、６４ターゲットのように反応する。このタイプのエラーはアドレスのエリアシング（aliasing）として知られている。アドレスエリアシングによって、不正確なデータが送られたり、複数の同時ドライブによるバスの競合などの他のタイプのエラーが発生する。したがって、先行技術は、６４ビットターゲットデバイス用に意図された６４ビットアドレスに対してＳＡＣを用いることがアドレスのエリアシングのためにできないので、問題がある。先行技術では、ＳＡＣを６４ビットアドレスに対して用いると、アドレスエリアシングによって３２ビットターゲットが誤って反応する。
【００１５】
先行技術の図２から分かるように、６４ビットアドレスを送信して３２ビットターゲットに対してＡＤ［３１：０］上のアドレスの双方のフェーズ（３２ビットターゲットはＡＤ［６３：３２］にはアクセスしない）を読み取ることを可能とするためには２つのクロックサイクルが必要である。したがって、先行技術のもう１つの欠点は、意図された受信側が１つのクロックで十分な６４ビットターゲットデバイスである場合に、６４ビットアドレスを送信するのに２クロックサイクルが用いられるという点である。したがって、先行技術においては、アドレスフェーズに後続するデータ転送が１クロックサイクルだけ遅延する。加えて、トランザクション中は、ＰＣＩイニシエータはＰＣＩバスの所有権を必要とし、したがって、ＰＣＩバスは他のトランザクションに対しては利用可能ではない。このように、先行技術においては、コンピュータのデータ転送帯域幅の一部が、不必要なクロックサイクルによって消費されるため、他のトランザクションもまた遅延する。この欠点は、ＰＣＩバス上で発生するトランザクションの数が倍加すると特に深刻である。
【００１６】
したがって、ＤＡＣを解消することによって、したがってＤＡＣに伴うクロックサイクルという不必要な消費を解消することによってコンピュータシステムのデータ転送帯域幅を最適に利用する方法および／またはシステムが必要である。また、上記の必要性を提起し、同時に、ＳＡＣを用いる際のアドレスエリアシングとこのアドレスエリアシングに関連するエラーとを引き起こすことのない方法および／またはシステムが必要とされる。本発明は上記の必要性に対する新規な解決策を提供するものである。
【００１７】
本発明の上記のおよび他の目的および利点は、多様な図面に図示されている好ましい実施形態の以下の詳細な説明を読めば当業者には明らかであろう。
【００１８】
（発明の開示）
本発明は、ＤＡＣに伴うクロックサイクルという不必要な消費を解消することによってコンピュータシステムのデータ転送帯域幅を最適に利用するシステムと方法を提供する。本発明はまた、上記の必要性を提起し、また、ＳＡＣを用いる際のアドレスエリアシングとアドレスエリアシングに伴う他のエラーを引き起こさないシステムと方法を提供する。
【００１９】
本発明は、１つのアドレスサイクル（ＳＡＣ）を用いて様々なサイズのターゲットデバイスを含むコンピュータシステム中でターゲットアドレスを送信する際にアドレスエリアシングを防止するシステムと方法である。このようなコンピュータシステムは、バス、このバスにカップリングされたイニシエータデバイス、このバスにカップリングされた第１のターゲットデバイスおよびこのバスにカップリングされた第２のターゲットデバイスを備えている。第１のターゲットデバイスは、複数のビットを含む第１のアドレス範囲を有し、第２のターゲットデバイスは第１のアドレス範囲より少ない数のビットを含む第２のアドレス範囲を有している。イニシエータデバイスは、ターゲットアドレスのサイズを示す信号を送信することによってトランザクションを始動する。イニシエータはまた、ターゲットアドレスをＳＡＣ中に入れて送信する。第２のターゲットデバイスは、ターゲットアドレスのサイズが第２のアドレスの範囲より大きい場合には、ターゲットアドレスに先行したイニシエータからの信号に反応して自身のアドレスデコーディング用ロジックをディスエーブルする。このようにして、第２のターゲットデバイスはターゲットアドレスに反応しないようにされ、これによって、アドレスエリアシングを防止する。
【００２０】
ある１つのペリフェラルコンポーネント相互接続（ＰＣＩ）に適合した実施形態では、バス、イニシエータデバイス、第１のターゲットデバイスおよび第２のターゲットデバイスはＰＣＩデバイスである。第１のターゲットデバイスは、６４ビットアドレス範囲を持つ６４ビットデバイスであり、第２のターゲットデバイスは３２ビットアドレス範囲を持つ３２ビットデバイスである。加えて、第２のターゲットデバイスは、イニシエータデバイスからのＲＥＱ６４＃に反応して自身のアドレスデコーディング用ロジックをディスエーブルする。
【００２１】
したがって、本発明によれば、６４ビットイニシエータから６４ビットターゲットへのトランザクションは、このターゲットの６４ビットアドレスを指定するＳＡＣで、３２ビットターゲットの存在下でアドレスエリアシングを引き起こすことなく実行される。６４ビットイニシエータと３２ビットイニシエータのどちらかから３２ビットターゲットへのトランザクションもまた、このターゲットの３２ビットアドレスを指定するＳＡＣで実行される。
【００２２】
本明細書に組み込まれまたその１部を成す添付図面が、説明文と共に本発明の実施形態を示し、本発明の原理を説明する。
【００２３】
（発明を実施するための最良の形態）
添付図面に例示される、本発明の好ましい実施形態をここで詳細に参照する。本発明は好ましい実施形態を参照して説明するが、本発明をこれらの実施形態に限る意図はないことが理解されよう。反対に、本発明は、添付クレームによって記載される本発明の精神と範囲に含まれる代替例、修正例および等化例を範囲に御さめることを意図するものである。さらに、本発明に関する以下の詳細な説明では、多くの具体的な詳細を記載して、本発明を完全に理解しようとするものである。しかしながら、通常の技術を持つ者であれば、本発明はこれらの具体的な詳細なしでも実行可能であることが理解されよう。他の例では、周知の方法、手順、コンポーネントおよび回路を詳細に説明して、本発明の態様を不必要に曖昧化しないようにする。
【００２４】
以下の詳細な説明の一部は手順、ロジックブロック、処理および、コンピュータメモリー内でのデータビットに対する動作を記号で表示して提示されている。これらの説明と表示は、データ処理技術の当業者が、自身の業績の実態を他の当業者に最も効率的に伝えるに際に用いられる手段である。本出願においては、手順、ロジックブロック、プロセスなどは、所望の結果に導くステップまたは命令から成るつじつまの合うシーケンスであると考えられる。これらのステップは、物理的な分量の物理的な操作を必要とするステップである。通常は、常に当てはまるわけではないが、これらの分量は、コンピュータシステム中で記憶し、転送し、合成し、比較しまた別様に操作することが可能な電気信号または磁気信号という形態を取る。時によっては、主として通常的に使用する理由上、これらの信号をトランザクション、ビット、値、エレメント、記号、キャラクタ、フラグメント、画素などと呼ぶと便利であることが分かっている。
【００２５】
ここでは、トランザクションと言えば、データや他の類似のメッセージ情報を送信したり受信したりすることである。トランザクションは、特定のコンピュータシステム動作（例えば、リクエストとかコマンド）と関連するすべてのデータから成っている。トランザクションはまた、特定の動作と関連するデータから成るブロックから成るが；例えば、データを転送する場合、いくつかのデータブロックに分割されるが、これらのブロックの個々が後続のブロックの転送に先立って転送され、また、各ブロックがトランザクションを形成している。
【００２６】
しかしながら、上記のすべての用語および類似の用語はすべてが適切な物理量と関連し、また、これらの量に対して単に便利なラベルが当てられているに過ぎないことを心に留めるべきである。以下の説明から分かるように、時に別様に記載のない限り、本発明の全体にわたって、「処理」、「動作」、「計算」、「決定」、表示」などの用語を用いた説明は、コンピュータシステムまたは類似の出に計算デバイスの動作およびプロセスを意味することが理解されよう。このコンピュータシステムや類似の電気計算デバイスは、物理的（電子的な）量として表されたデータをコンピュータシステムのメモリー、レジスタもしくは他の類似の情報記憶装置、送信デバイスまたは表示デバイス内で操作して変換する。本発明は他のコンピュータシステムの用法にも適している。
【００２７】
本発明は、イニシエータデバイスが１つのアドレスサイクル（ＳＡＣ）を用いてターゲットアドレスをバスを介して、様々なサイズのアドレスを有するターゲットデバイスに送信する際のアドレスエリアシングを防止するシステムと方法である。したがって、本発明は、二重アドレスサイクル（ＤＡＣ）にまつわるクロックサイクルの不必要な消費を解消することによってコンピュータシステムのデータ転送帯域幅を最適に利用するシステムと方法を提供する。
【００２８】
以下の実施形態の説明において、イニシエータデバイス、ターゲットデバイスおよびバスは、ペリフェラルコンポーネント相互接続（ＰＣＩ）適合デバイスである。したがって、以下の説明はＰＣＩ適合するバスシステムの文脈でなされる。しかしながら、例えばマイクロチャネル（Micro Channel）、ＥＩＳＡ（拡張産業規格アーキテクチャ：Extened Industry Standard Architecture）などの本発明による他のバスシステムの構成を用いてもよいことが理解されよう。
【００２９】
ここで図３を参照すると、本発明のＰＣＩ適合の実施形態によるコンピュータシステム３００中で実現される例示のＰＣＩバスシステムが図示されている。コンピュータシステム３００のＰＣＩバスシステムは、ＰＣＩイニシエータ３１０にカップリングされたＰＣＩバス３２０を含んでいる。この実施形態では、ＰＣＩイニシエータ３１０はＰＣＩ／ホストブリッジ３３０中に組み込まれている。ＰＣＩ／ホストブリッジ３３０は双方向性のＰＣＩブリッジ（分かりやすいように、この双方向性ＰＣＩイニシエータ３１０の部品は図示されていない）である。ＰＣＩ／ホストブリッジ３３０を用いて、ＰＣＩバス３２０を中央処理装置（ＣＰＵ）バス３４５を介してＰＣＩバス３２０に、また、メモリーバス３３５を介してメインメモリー３５０にカップリングしている。
【００３０】
ＰＣＩバス３２０はまた、６４ビットＰＣＩターゲットＡ３１２とＰＣＩターゲットＣ３１６の各々にカップリングされている。ＰＣＩターゲットＡ３１２とＰＣＩターゲットｃ３１６は、最大で６４ビットまでの範囲で収まるアドレスを有している；すなわち、６４ビットアドレスとは、最大で６４ビットのサイズを持つアドレスのことである。一般的に、６４ビットアドレスはサイズが６４ビット未満のアドレスを含んでいる。
【００３１】
ＰＣＩバス３２０はまた、３２ビットＰＣＩスマートターゲットＢ３１４とＰＣＩスマートターゲットＤ３１８の各々にカップリングされている。ＰＣＩスマートターゲットＢ３１４とＰＣＩスマートターゲットＤ３１８は、サイズが最大で３２ビットまでの範囲に収まるアドレスを有している。本発明によれば、ＰＣＩスマートターゲットＢ３１４とＰＣＩスマートターゲットＤ３１８は、以下に詳述するような、ＰＣＩイニシエータ３１０からの信号に基づいて、ある種の環境下では自身のアドレスデコーディング用ロジックをディスエーブルするようになっている。
【００３２】
ここで図４を参照すると、本発明の本実施形態によるＰＣＩスマートターゲットＤ３１８（以降、ＰＣＩターゲット３１８と呼ぶ）が図示されている。本実施形態では、ＰＣＩターゲット３１８はアドレスデコーダ４６０を組み込んでいる。アドレスデコーダ４６０は、ＰＣＩイニシエータ（例えば、図３のＰＣＩイニシエータ３１０）から送信されたアドレスがＰＣＩターゲット３１８に割り当てられたアドレスの範囲に収まるかどうかを判断する技術上周知のメカニズムである。
【００３３】
本実施形態では、発生するデータトランザクションが６４ビットトランザクションである場合、ＰＣＩターゲット３１８はＰＣＩバス３２０を介してＰＣＩイニシエータ３１０からＲＥＱ６４＃信号４６４を受信するが；本発明によれば、この信号は３２ビットデータのトランザクションの場合には送信されない。ＰＣＩバスシステム（例えば、図３のＰＣＩバスシステム３００）のＰＣＩスロット中にあるすべての３２ビットターゲットが、ＲＥＱ６４＃をサンプリングする。
【００３４】
ＰＣＩ規格によるＲＥＱ６４＃信号の後ではなくトランザクションの開始時に、ＰＣＩイニシエータ３１０もまた、所望のターゲットデバイスのアドレスをＰＣＩバス３２０上のすべてのターゲットデバイスに送信する。６４ビットアドレスの場合、本発明によれば、アドレスはＰＣＩバス３２０中のＡＤ［６３：３２］とＡＤ［３１：０］上に送信されるが；３２ビットアドレスの場合、アドレスはＡＤ［３１：０］上でだけ送信される。ＰＣＩターゲット３１８は３２ビットターゲットであるので、ＰＣＩイニシエータ３１０によって指定されたターゲットアドレスをＡＤ［３１：０］４６６を介して受信する。
【００３５】
さらに図４を参照すると、本発明によると、６４ビットデータのトランザクションが発生することを示すＲＥＱ６４＃信号４６４がＰＣＩターゲット３１８によって受信されると、アドレスデコーダ４６０がＰＣＩターゲット３１８によってディスエーブルされる様子が図示されている。したがって、６４ビットデータのトランザクションの場合、ＰＣＩターゲット３１８はＰＣＩイニシエータ３１０が送った６４ビットアドレスをデコーディングすることは不可能であり、したがって、ＤＥＶＳＥＬ＃信号４６２をオンすることによってこの６４ビットデータトランザクションを要求することはできない。したがって、本発明によれば、ＰＣＩバスシステム３００（図３）は、３２ビットターゲットが４ギガバイト（ＧＢ）未満のメモリーアドレスに対するアクセスを要求するだけであり、また、６４ビットターゲットは４ＧＢを越えるメモリーアドレスに対するアクセスを要求するだけであるように設計される。このようにして、アドレスエリアシングと、これにまつわるバス競合などのエラーは本発明によって防止されるが、それは、３２ビットターゲット（例えば、ＰＣＩターゲット３１８）は６４ビットアドレスには応答することができないからである。
【００３６】
ＲＥＱ６４＃信号４６４がＰＣＩターゲット３１８によって受信されない場合、それはデフォルトによって、発生しようとするトランザクションが３２ビットデータのトランザクションであり、アドレスデコーダ４６０はアクティブの状態のままであり、従ってそのトランザクションに関連する３２ビットアドレスをデコーディングすることが可能であることを示す。ＰＣＩターゲット３１８が３２ビットアドレスによって指定されたターゲットデバイスであると仮定すると、ＰＣＩターゲット３１８はそれに反応して、ＤＥＶＳＥＬ＃信号４６２を要求する。したがって、本発明によって、３２ビットデバイスと６４ビットデバイスが同じシステム中で相互作用することが可能となる。
【００３７】
図５とさらに図３も参照すると、本発明の本実施形態に従って用いられるプロセスのフローチャート５００が図示されている。プロセス５００で、６４ビットＰＣＩイニシエータ（例えば、ＰＣＩイニシエータ３１０）は、６４ビットアドレスを１つのアドレスサイクル（ＳＡＣ）で、３２ビットデバイスと６４ビットデバイスの双方を備えたＰＣＩバスシステム（例えば、コンピュータシステム３００のＰＣＩバスシステム）中のＰＣＩバス（例えば、ＰＣＩバス３２０）を介して送信することができる。プロセス５００は、アドレスエリアシングが発生しないように工夫されている。プロセス５００はまた、ＤＡＣにまつわる追加のクロックサイクルを解消する。
【００３８】
ステップ５０５では、ＰＣＩイニシエータ３１０がＰＣＩ規格によるＦＲＡＭＥ＃信号とＲＥＱ６４＃信号をオンすると、６４ビットデータトランザクションが始動される。これらの信号は、ＰＣＩバス３２０上のすべてのＰＣＩターゲットによって受信される。ＲＥＱ６４＃信号は、このトランザクションが６４ビットデータのトランザクションであることを示す。この信号は３２ビットデータトランザクションの場合にはオンされない（assertされない）。
【００３９】
ステップ５１０では、イニシエータ３１０は、このトランザクション用に指定された６４ビットアドレスをＰＣＩバス３２０上に駆動する。このアドレスはＰＣＩバス３２０上のすべてのＰＣＩターゲットに送信される。本発明によれば、ＳＡＣを用いて、６４ビットアドレスを送信する。この実施形態では、６４ビットアドレスは２つの３２ビットオペランドに分割されて、ＡＤ［３１：０］とＡＤ［６３：３２］を介して送信される；しかしながら、これらのオペランドは同じＰＣＩクロックサイクル間で送信される。このようにして、本発明はＤＡＣにまつわる不必要なクロックサイクルを解消する。
【００４０】
ステップ５１５では、ＲＥＱ６４＃信号がＰＣＩバス３２０上のすべてのＰＣＩターゲット（例えば、６４ビットターゲットＡ３１２およびＣ３１６並びに３２ビットＰＣＩスマートターゲットＢ３１４およびＤ３１８）によって受信される。
【００４１】
ステップ５２０では、図４を参照して説明したように、本実施形態では、各３２ビットＰＣＩスマートターゲットは、ＲＥＱ６４＃信号を受信すると自身のアドレスデコーダをディスエーブルするようになっている。このため、アドレスデコーダがディスエーブルされた状態では、各３２ビットスマートターゲットはＰＣＩイニシエータ３１０から受信したアドレスをデコーディングすることができない。したがって、本発明によれば、３２ビットスマートターゲットはトランザクションに対する要求をオンすることができない。このようにして、本発明は、アドレスエリアシングとバス競合などのこれにまつわるエラーとを発生することを防止する。
【００４２】
ステップ５２５では、ステップ５２０の結果として、本発明によって、６４ビットターゲットだけがステップ５１０で送信されたアドレスをデコーディングすることができる。このアドレスによって指定されたターゲットである６４ビットターゲットはこのアドレスを自分自身のアドレスであると認識して、ＰＣＩ規格に従って、ＤＥＶＳＥＬ＃を用いてトランザクションに対する要求をオンする。この時点から、データトランザクションはＰＣＩ規格に従って進行し続ける。
【００４３】
図６に、本発明に従って６４ビットイニシエータデバイス（例えば、図３のＰＣＩイニシエータ３１０）と６４ビットターゲット（例えば、図３のＰＣＩターゲットＡ３１２）間での６４ビットデータトランザクションを例示するタイムチャート６００を示す。分かりやすいように、図６では、データトランザクションに関連するすべての信号を図示しているわけではなく、ここで説明する際にまつわる信号だけを図示している。
【００４４】
ＰＣＩイニシエータ３１０は、それぞれポイント６４５と６５０でＦＲＡＭＥ＃信号とＲＥＱ６４＃信号をオンすることによってＰＣＩクロックサイクル１の立ち上がりエッジでトランザクションを開始する。またクロックサイクル１では、本発明に従って、ＰＣＩイニシエータ３１０はアドレスの下位部分（例えば、低位アドレス６１０）とアドレスの上位部分（例えば、高位アドレス６２０）をそれぞれＡＤ［３１：０］とＡＤ［６３：３２］上でＰＣＩバス３２０（図３）上に駆動する。ＰＣＩターゲットＡ３１２このアドレスの双方の部分を受信してこのアドレスをクロックサイクル２でデコーディングする。このアドレスを自身のアドレスと認識して、ＰＣＩターゲットＡ３１２は、ポイント６４０でクロックサイクル２でＤＥＶＳＥＬ＃をオンすることによってトランザクションを要求する。ターンアラウンドサイクル６２５はクロックサイクル３の間にオンされて、データＡ６３０とＢ６３２がこれで、そのトランザクションのタイプによって（例えば、読み取りトランザクションか書き込みトランザクションかによって）ＰＣＩイニシエータ３１０とＰＣＩターゲットＡ３１２とのどちらかによってＰＣＩバス３２０上に駆動される。したがって、図６に示すように、本発明によって、アドレスサイクルの完了とデータ転送とを、６４ビットアドレスを送信するのにＤＡＣを用いる場合より１クロックサイクル速く発生させることができる。したがって、本発明はコンピュータシステムのデータ転送帯域幅を最適に利用し、また、ラップトップ型コンピュータなどのバッテリ駆動式の電力が限られるデバイスの電力を節約するものである。
【００４５】
図７に、本発明による６４ビットイニシエータデバイス（例えば、図３のＰＣＩイニシエータ３１０）と３２ビットスマートターゲット（例えば、図３のＰＣＩスマートターゲットＤ３１８）間での６４ビットデータのトランザクションを例示するタイムチャート７００を示す。分かりやすいように、図７にはデータトランザクションに関連するすべての信号を図示するわけではなく、ここでの説明に関わる信号だけを図示している。
【００４６】
図６を参照して上述したのと同様に、ＰＣＩイニシエータ３１０は、それぞれポイント６４５と６５０でＦＲＡＭＥ＃信号とＲＥＱ６４＃信号をオンすることによってＰＣＩクロックサイクル１の対置上がりエッジでトランザクションを開始する。またクロックサイクル１では、本発明に従って、ＰＣＩイニシエータ３１０は、それぞれＡＤ［３１：０］とＡＤ［６３：３２］上でＰＣＩバス３２０（図３）上にアドレスの下位部分（例えば、低位アドレス６１０）とアドレスの上位部分（例えば、高位アドレス６２０）を駆動する。ＰＣＩスマートターゲットＤ３１８はＲＥＱ６４＃信号を受信して、本発明に従って、自身のアドレスデコーダをディスエーブルする。その結果、ＰＣＩスマートターゲットＤ３１８はＡＤ［３１：０］上で低位アドレス６１０だけを受信しても、そのアドレスをデコードできない（その理由は、３２ビットターゲットであるため、ＰＣＩスマートターゲットＤ３１８はＡＤ［６３：３２］にアクセスしないからである）。その結果、ＰＣＩスマートターゲットＤ３１８はＤＥＶＳＥＬ＃をオンして、トランザクションを要求することはない。したがって、図７に示すように、本発明によって、６４ビットターゲットと３２ビットターゲットの双方を備えたシステム中でＳＡＣを用いて６４ビットアドレスを送信することが可能となる；しかしながら、本発明によれば、３２ビットターゲットはこのアドレスには反応せず、これによって、アドレスエリアシング、バス競合などを防止する。
【００４７】
本発明はさらに、６４ビットイニシエータが３２ビットターゲットとＳＡＣを用いてデータトランザクションを実行することを可能とすることに注意されたい。この場合、６４ビットイニシエータがＳＡＣ中で３２ビットアドレスを送信するがＲＥＱ６４＃をオンすることはない。したがって、３２ビットターゲットのアドレスデコーダはアクティブのままであるので、そのアドレスをデコーディングする。したがって、本発明によって、６４ビットデバイスと３２ビットデバイスの双方が、６４ビットアドレスと３２ビットアドレスのすべてを使用可能としながらも、一緒にシームレスに機能することが可能となる。
【００４８】
したがって、本発明は、互いに異なったサイズのアドレスを有するターゲットデバイスを含むコンピュータシステム中でターゲットアドレスを送信するためにＳＡＣを用いる場合にアドレスのエリアシングを防止するシステムと方法を提供する。本発明は、ＤＡＣと関連するクロックサイクルの不必要な消費を解消することによってコンピュータシステムのデータ転送帯域幅を最適に利用するものである。本発明はまた、アドレスエリアシングやこれにまつわる他のエラーを発生させない方法とシステムを提供する。さらに、クロックサイクルの不必要な消費を解消し、また、本発明に従ってＰＣＩスマートターゲットのアドレスデコーダをディスエーブルすることによって、本発明は、ラップトップ型コンピュータなどの電力が制限されるデバイスでの電力の節約をもたらす。
【００４９】
二重アドレスサイクルを解消してＰＣＩ帯域幅を増加させる本発明による好ましい実施形態をこのように説明した。本発明は特定の実施形態について説明したが、本発明はこのような実施形態に限られる者ではなく、添付クレームによって制限されるものであることを理解すべきである。
【図面の簡単な説明】
【図１】  先行技術による簡略化された例示のペリフェラルコンポーネント相互接続（ＰＣＩ）バスアーキテクチャのブロック図である。
【図２】  先行技術による６４ビット読み取りトランザクションのアドレスフェーズを示すタイミングチャートである。
【図３】  本発明に係る１つの実施形態によるコンピュータシステム中で実現される例示のＰＣＩバスアーキテクチャのブロック図である。
【図４】  本発明に係る１つの実施形態による例示のスマートターゲットメカニズムのブロック図である。
【図５】  本発明に係る１つの実施形態による６４ビットアドレスを送信するために用いられるプロセスのフローチャートである。
【図６】  本発明に係る１つの実施形態による６４ビットアドレスに対する６４ビットターゲットの反応を示すタイミングチャートである。
【図７】  本発明に係る１つの実施形態による６４ビットアドレスに対する３２ビットターゲットの反応を示すタイミングチャートである。
【図１】
0004485064.tif 000002
【図２】
0004485064.tif 000003
【図３】
0004485064.tif 000004
【図４】
0004485064.tif 000005
【図５】
0004485064.tif 000006
【図６】
0004485064.tif 000007
【図７】
0004485064.tif 000008