(57)【特許請求の範囲】
【請求項１】
メモリをもつコンピュータシステムにおいて、I/Oチャネルとプロセッサの間のデータ整合性を保つ方法であって、
DMA完了の通知を受け取ったとき、上記コンピュータシステム内の全てのI/Oチャネルに対しDMA_SYNCトランザクションをブロードキャストするステップと、
上記I/Oチャネルが報告手段を介して、上記DMA_SYNCトランザクションが完了したことを示すステップと、を含み、
上記DMA_SYNCトランザクションは、上記I/Oチャネルに、一貫性を実現し、一貫性が保証された後でのみ応答を返すように、命令するためのものであり、
上記DMA_SYNCトランザクションは分割可能である、データ整合性を保つ方法。
【請求項２】
メモリをもつコンピュータシステムにおいて、I/Oチャネルとプロセッサの間のデータ整合性を保つ装置であって、
DMA完了の通知が受信されると、上記コンピュータシステム内の全てのI/Oチャネルに対しDMA_SYNCトランザクションをブロードキャストするプロセッサと、
上記DMA_SYNCトランザクションが完了したときを示す報告手段と、を備え、
上記DMA_SYNCトランザクションは、上記I/Oチャネルに、一貫性を実現し、一貫性が保証された後でのみ応答を返すように、命令するためのものである、装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、コンピュータシステムに関連する。特に、この発明は、コンピュータシステム内のI/Oチャネルとプロセッサとの間のデータ整合性を保証する方法および装置に関連する。
【０００２】
【従来の技術】
先行技術のコンピュータシステムにおいて、入力/出力(I/O)アダプタ(チャネルとも呼ばれる)が、メモリに対し読取りおよび書込み操作を実施してきた。この方法は、非効率的であった。従って、今日の先行技術のI/Oアダプタは、ダイレクト・メモリ・アクセス(DMA)トランザクションに関するシステムメモリ待ち時間および帯域幅を改善するようにキャッシュを含む。DMA要求を処理するとき、I/Oアダプタは、キャッシュが更新されると要求が完了したものとみなす。キャッシュは一貫性を保たれる。ほとんどの場合、このプロトコルは、受け入れ可能である。
【０００３】
しかし、Hewlett-Packard Company(Palo Alto、California)によって製造されるPA-RISCアーキテクチャのようないくつかのコンピュータシステムでは、プロセッサ・データ要求が、一貫性をもつ。すなわち、システム内の全てのキャッシュを効果的に調べて、データの特定部分の最新のコピーがどこに位置するかを見る。しかし、そのようなシステムでは、例えばフェッチング(fetching)コード命令のようなプロセッサの命令要求は、命令の内容が修正可能でないため、一貫性をもたないとみなされる。このように、システム・ソフトウェアは、命令が修正される場合のみ一貫性を果たすよう設計されている。それゆえ、命令要求は、メモリ内にあるものを何でも読み取る。一貫性を調べる必要がないので、結果として命令要求は、比較できるデータ要求よりも速く処理することができる。
【０００４】
残念ながら、メモリに一連の命令を書き込むDMAシーケンスがあるとき、すなわち、命令が最初にメモリのキャッシュに書き込まれる場合に問題が生じる。そのような場合、システムは、典型的には割込みトランザクションを介して、プロセッサに対しDMAシーケンスを終了したことを伝える。そしてプロセッサが、新しく書き込まれた一連の命令に分岐する場合、データの新しいDMAバージョンがまだI/Oアダプタのキャッシュ内にあるならば、一貫性のない読取りは、メモリ内でデータの前のバージョン(すなわち新鮮でない)を見つけることがある。
【０００５】
この問題を解く１つの方法は、命令読取りトランザクションを一貫性のあるトランザクションにすることであり、それによってI/Oアダプタのキャッシュ内の新しいDMAバージョンを見つけることが可能になる。しかし、この方法は、全ての他の命令読取りトランザクションを遅くする。
【０００６】
この問題を解く別の方法は、DMA完了の通知を受け取ったとき、そのキャッシュからメモリに修正されたラインを書き込むように、I/Oアダプタを修正することである。しかし、DMAシーケンスが完了したことをI/O装置がプロセッサに通知することができるいくつかの異なる方法があるので、この技法を実現するのは困難であり、それらの方法のうちのあるものは、それ自体DMAシーケンスの一部に似ている。
【０００７】
【発明が解決しようとする課題】
コンピュータシステム演算を不必要に複雑にすることなく、および/またはコンピュータシステム性能を下げることなく、I/Oチャネルとプロセッサの間のデータ整合性を保証する方法および装置を提供することが有利である。
【０００８】
【課題を解決するための手段】
この発明は、コンピュータシステム演算を不必要に複雑にすることなく、また、コンピュータシステム性能を下げることなく、I/Oチャネルとプロセッサの間のデータ整合性を保証する方法および装置を提供する。この発明の好ましい実施例で、システム・ソフトウェアは、DMA完了の通知が受信されたときにトランザクションの発行をもたらす命令を発行する。トランザクションは、I/Oチャネルに一貫性を守るよう命令し、一貫性が保証された後でのみ応答を返す。
【０００９】
特に、この発明の好ましい実施例は、Hewlett-Packard CompanyのPA-RISCアーキテクチャの中で実現され、DMA_SYNCトランザクションと呼ばれるトランザクションを使用する。DMA_SYNCトランザクションは、システム内の全てのI/Oチャネルにブロードキャストされる。それに応答して、それぞれのI/Oチャネルは、システムによって完了したと既に報告されたDMAシーケンスに対するDMAデータを含むことができるそのキャッシュ内の修正されたラインを、メモリにライトバックする。パイプライン化されたトランザクション・プロトコルを使用するシステムの中で、それぞれのI/Oチャネルは、このトランザクションが完了したときを示す独立した側波帯(sideband)報告手段をもつ。それゆえ、DMA_SYNCトランザクションは、パイプライン順序で完了する必要がない。このようにして、I/Oチャネルは、DMA_SYNCトランザクションに応答する前に新しいトランザクションを発行することができる。
【００１０】
【発明の実施の形態】
この発明は、コンピュータシステム演算を不必要に複雑にすることなく、また、コンピュータシステム性能を下げることなく、I/Oチャネルとプロセッサの間のデータ整合性を保証する方法および装置を提供する。この発明の好ましい実施例で、システム・ソフトウェアは、DMA完了の通知が受信されたときに、トランザクションの発行を引き起こす命令を発行する。トランザクションは、I/Oチャネルに一貫性を守るよう命令し、一貫性が保証されたあとにのみ応答を返す。
【００１１】
特に、この発明の好ましい実施例は、Hewlett-Packard CompanyのPA-RISCアーキテクチャの中で実現され、DMA_SYNCトランザクションと呼ばれるトランザクションを提供する。一意に、DMA_SYNCトランザクションは、システム内の全てのI/Oチャネルへブロードキャストされる。それに応答して、それぞれのI/Oチャネルは、システムによって完了したと既に報告されたDMAシーケンスに対するDMAデータを含むことがあるそのキャッシュ内の修正されたラインを、メモリにライトバックする。
【００１２】
分割トランザクション・プロトコルを使用するシステムにおいて、当業者に良く知られた方法で、通常の応答報告手段を使用し、または拡張して、トランザクションの完了を要求元に知らせることができる。
【００１３】
パイプライン化されたプロトコルを使用するシステムにおいて、それぞれのI/Oチャネルは、このトランザクションが完了したときを示す独立した側波帯報告手段をもつ。従って、DMA_SYNCトランザクションは、パイプライン順序で完了する必要がない。このように、I/Oチャネルは、DMA_SYNCトランザクションに応答する前に、新しいトランザクション、具体的には必要なライトバック(write-backs)を発行することができる。そうでなければ、DMA_SYNCはライトバックの完了を待ち、ライトバックは、前のDMA_SYNCがパイプラインから出るまで完了することができなくなる。
【００１４】
この発明の好ましい実施例で、パイプライン順序で進行するいくつかの演算フェーズがある。異なる演算フェーズの実行は、必要に応じて時間的に引き伸ばされたり、引き伸ばされなかったりするので、パイプラインは、柔軟なパイプラインとみなされる。典型的に、あるトランザクションは、前のトランザクションが特定の演算フェーズを完了した後に、その特定の演算フェーズを通る。ある時点で、読取りが厳密なパイプライン順序で演算しないように、読取りトランザクションを分割し、または遅らせることが可能である。しかし、書込みトランザクションは、常にパイプライン順序であるので、この特定のプロトコルにおいて書込みトランザクションを分割することができない。
【００１５】
この発明の好ましい実施例は、独立した報告手段を備える。その独立した報告手段によって、DMA_SYNCトランザクションに対する応答を受け取り、DMA_SYNCトランザクションを分割することができ、従ってシステムは、もはや厳密なパイプライン順序で動作しない。他の報告手段も機能し、それは当業者にとって明らかであろう。
【００１６】
図1は、この発明に従うシステム・アーキテクチャのブロック概略図である。この発明は、単一バス・システムで容易に実践されるが、この発明の好ましい実施例は、２バス・アーキテクチャに関連して示される。
【００１７】
２バス・アーキテクチャで、２ポート・メモリ・コントローラ12が、第１のバス17aと第２のバス17bの間に配置される。それぞれのバスは、プロセッサ・モジュール14aおよび14bまたはI/Oアダプタ・モジュールのような少なくとも１つの個別のモジュールを含む。さらにそれぞれのバスは、少なくとも１つのチャネルまたはI/Oアダプタ10a/10bを含むことができ、そのチャネルによって、システムは、例えば多様な周辺装置およびネットワークに対し複数の入力および出力接続を確立する。
【００１８】
構造上、DMA_SYNCトランザクションは、完了したと報告されるDMAトランザクションの全ての部分が完了していることを保証することができるか、全てのモジュールに調べさせる。それぞれのI/Oアダプタは、(それ自身のために)DMA_SYNCトランザクションに応答し、反則している(offending)ラインをそのキャッシュからフラッシュすることだけが必要である。典型的に、オペレーティングシステムは、コード・ページについてのDMA入力が常にラインに調整され(line-aligned)、完全なラインを含むことを保証するので、ライトバックされなければならないラインは、その最後のバイトが書き込まれていることが保証される。I/Oアダプタは、DMA入力によって完全に書き込まれ、従ってメモリへライトバックするために既にマークされているラインをライトバックするだけでよい。論理上、マーカが待ち行列の前部に達すると、I/Oアダプタは、マーカをライトバック待ち行列に入れる。さらに、それぞれのI/Oコントローラは、完全な連想キャッシュ24/25をもつ。DMA_SYNCトランザクションが、バス上に現れると、情報が、I/Oコントローラ内のキャッシュに通される。キャッシュは、DMA_SYNCトランザクションの要求を履行するため、ライトバックされなければならないそれらのメモリ・ラインのスナップショットをとる。キャッシュは、これらのメモリ・ラインがいつライトバックされたかを常に把握し、それらが全てキャッシュから出るまで、それらをスナップショットから取り去り、またはマークを外す。DMA_SYNCトランザクションが完了すると、I/Oアダプタは、SND信号をデアサートする(後述する)。
【００１９】
その後の読取りコード・トランザクションが、要求されたライトバックからのデータを見つけるとき、モジュールは、DMA_SYNCのその部分が完了したとみなすことができる。
【００２０】
この発明は、トランザクションのスヌープ(snoop:せんさくする)・フェーズでアサートされるSyncNotDone(SND)と呼ばれる信号を供給する(より詳しく後述する)。SND信号は、独立した信号経路18a/18bを通して伝搬され、DMA_SYNCトランザクションが最終的に完了したとき、すなわちSNDがデアサートされたときを示す手段となる独立した信号である。
【００２１】
局所DMA_SYNCトランザクションのスヌープ・フェーズが始まると、SNDがアサートされ、DMA_SYNCトランザクションがまだ進行中であることを示すことができる。SNDは、スヌープ・フェーズの終了後もアサートされたままであり、必要であればDMA_SYNCトランザクションの応答フェーズの後もアサートされたままである。この構成は、DMA_SYNCトランザクションを完了するのに必要とされるトランザクションのためにシステムバスを解放する。例えば、I/Oアダプタは、DMA_SYNCトランザクションを完了するために他のトランザクションを発行しなければならないことがあるので、DMA_SYNCトランザクションが進行中であるにもかかわらず多様なトランザクションが続行することを許す必要がある。通常のケースで、プロセッサは、必要に応じてシステムバス上に進められるDMA_SYNCトランザクションを発行する。I/Oアダプタは、少なくともゼロまたはそれ以上のライトバックを発行する。全ての必要なライトバックが、メモリがトランザクションに対し責任をもつ点になると、I/Oアダプタは、SNDを解放することができ、それによってDMA_SYNCトランザクションが完了したことを示す。
【００２２】
(この発明を取り入れたシステムで任意の数のバスを設けることができるが、)この発明の好ましい実施例は、２バス・システムを支援するので、システム内で同時に２つのDMA_SYNCトランザクションがありえる。従って、一方のバスから発生した１つのDMA_SYNCトランザクションと、他方のバスから発生した別のDMA_SYNCトランザクションがありえるので、それぞれのバスが、DMA_SYNCトランザクションを始めることができる。特定のバスから開始されたアクティブなDMA_SYNCトランザクションがある間、そのバス上のプロセッサは監視し、前のDMA_SYNCトランザクションが完了するまで新しいDMA_SYNCトランザクションを送り出さない。それゆえ、この発明の好ましい実施例は、２つの側波帯信号経路、すなわち局所DMA_SYNCトランザクションのためのSND18a/18b、および遠隔DMA_SYNCトランザクションのためのREMSND19a/19bを提供する。当業者であれば、この発明は、単一バスシステムに容易に適用され、その場合REMSND信号経路は必要でないことが分かるであろう。
【００２３】
I/Oアダプタは、トランザクションが局所バス上のプロセッサによって、あるいは局所バス上のメモリ・コントローラによって送り出されたのかを判断することができる。２バス・システムで、それぞれのバスは、SNDおよびREMSND側波帯信号経路をもつ。プロセッサは、SND信号経路を見る。トランザクションが局所トランザクションである場合、DMA_SYNCトランザクションが必要に応じてそのライトバックの全てを完了するまで、I/OアダプタはSND信号経路をドライブする。
【００２４】
２つの同様の信号経路が、それぞれのバス上に供給される。従って、遠隔バス上のI/Oアダプタは、REMSND信号経路を介して応答するが、遠隔バス上のプロセッサは、DMA_SYNCトランザクションに関連する演算を実施することができる。I/Oアダプタは、DMA_SYNCトランザクションが局所バス上または遠隔バス上で発生したかを見分けることができる。DMA_SYNCトランザクションの完了後、I/Oアダプタは、DMA_SYNCトランザクションが局所トランザクションである場合はSND信号経路を介して、DNA_SYNCトランザクションが遠隔トランザクションである場合はREMSND信号を介して応答する。DMA_SYNCが発生バス上のスヌープ・フェーズに達してから、DMA_SYNCが遠隔バス上のスヌープ・フェーズに達するまでの間、遠隔I/OアダプタがREMSNDをアサートすることはまだ正当ではないので、メモリ・コントローラが、発生バス上のSNDをアサートする。DMA_SYNCが両方のバス上でスヌープ・フェーズに達した後、メモリ・コントローラは、遠隔バスからのREMSND信号を見て、それを発生バス上のSND信号経路に論理的に伝搬し、従って発生バス上に応答を送り返す。プロセッサが最終的に、SND信号経路がスヌープ・フェーズ後に解放されたことを認めると(後述する−図3を参照)、DMA_SYNCトランザクションが完了し、プロセッサは、その演算を続ける。この方法は、SNDおよびREMSND信号を使用して任意の数のバスを支援するように推測することができる。そのようなシステムで、局所的に生成されたDMA_SYNCは、全ての他のバスに転送される。
【００２５】
図2は、この発明に従うI/Oアダプタのブロック概略図である。I/Oアダプタは、システムバス上のプロトコルに応答して、トランザクションをバッファするバス・インタフェース・ブロック20を含む。この発明の現在の好ましい実施例で供給されるI/Oアダプタの中には、２つの独立したI/Oコントローラ21/23がある。それぞれのI/Oコントローラは、ＰＣＩバスへの複数のインタフェースを支援する。この発明は、I/Oアダプタが異なる構造および構成をもつシステムにおいて容易に実践することができることを理解されたい。
【００２６】
図3は、この発明に従う、SND信号を含むDMA_SYNCトランザクションを示すタイミング図である。図3で、システムバス上のそれぞれの信号グループは、異なるトランザクション・フェーズを取り扱う。この設計は、トランザクションが重ね合わせられ、完全にパイプライン化されることを可能にする。この発明の好ましい実施例のバスは、アービトレーション、アドレス、データ、および応答信号を含むいくつかの信号グループから構成される。それぞれのグループは、バス・トランザクションが重ねられることを許しながら、独立に、他と並行にその仕事を実施する。トランザクションは、パイプライン化されたプロセッサ内の命令実行とほぼ同じように、完全にパイプライン化することができる。
【００２７】
図３は、このパイプライン化がどのように作用するかを示す。第１の信号グループは、アービトレーション40を扱う。図3で、第１のトランザクション(「A」)のためのアービトレーションは、サイクル1(t1)で生じる。サイクル2の間、全てのプロセッサは、アービトレーション結果を解析し、次のトランザクションのためのマスタであるものについて同意する。t3で、マスタは、要求バス上のアドレスをアサートし(41)、次のサイクルに、補足情報が続く。この時までに、次のトランザクション(「B」)のためのアービトレーションが、すでにアービトレーション・バス上で進行中である。
【００２８】
一方で、バス装置をチェックして、それらのキャッシュ内でアドレスがヒットするかどうか調べる。t7で、これらの装置は、スヌープ信号を使用して(44)ヒットを示し、その場合、データは、元のターゲットではなくスヌーピング装置によって返すことができる。スヌープ・ヒットがない場合、ターゲット装置は、時間t9で応答バスを使用して、このトランザクションがうまく完了していることを示す(42)。そうであれば、データがデータバス上に転送され、同じサイクルに開始する。
【００２９】
この時までに、アービトレーション・バスは、すでにトランザクションDに達していることに注意されたい。全速力で、64バイトの読取りは、完了するのに12サイクルかかるが、それらのサイクルのうち４サイクルの間だけデータバスを使用する。前進する他のバスがあるので、データバスを長い時間十分に使用することができる。こうして、３つまたは４つのトランザクションが、同時に進行することができる。好ましいバスは、同時に最高で12トランザクションを支援し、これは、装置がバスを抑制して(throttle)、トランザクション待ち時間を延長する場合に起きる。
【００３０】
この発明の好ましい実施例に従うシステムは、異なる信号について、バス上のどのモジュールでも信号をアサートすることができるOR結合されるプロトコルを支援する。SND信号は、電気的にアクティブなローになり、任意のまたは全てのモジュールが、SND信号を電気的にローの状態にドライブする。どのモジュールもSND信号をロー・レベルにドライブしていないときだけ、信号は電気的に高い状態をもつ。SND信号47(図3)は、システムのOR結合能力を使用する。応答フェーズで、システムは、(データ・フェーズで)順序通り(in-order)のデータを供給することができ、または、システムは、データを順序通りに供給することとは対照的に、遅らせたり再試行することができる。
【００３１】
最初の４フェーズは、パイプライン順に実施されるが、SND信号は、その使用に関する限り特別なケースである。なぜなら、システムでは一般に、１度に１つのDMA_SYNCトランザクションを支援するからである。従って、DMA_SYNCトランザクションが、スヌープ・フェーズで発行される場合、他のトランザクションが進行することができるが、SND信号は、DMA_SYNCが完了するまでアサートされ続ける。この特定のトランザクションは、パイプラインの外で続行する。DMA_SYNCトランザクションは、フェーズの残りを通るが、SND信号は、関連するDMAが完了するまで、すなわちデータがキャッシュからメモリに移されるまで、アサートされ続ける。
【００３２】
失速(stall)は、一貫性の結果と相対的であるが、SNDは独立した信号である。スヌープ・フェーズで、一貫性の結果が受け取られる。DMA_SYNCトランザクションがある場合、SND信号が生成される。理想的には、一貫性の結果はすぐに達成され、システムは次のフェーズに進む。上述したように、SND(およびREMSND)は、ユーザ・バスのDMA_SYNCトランザクションに関連する独立した信号経路を通して伝搬される。SND信号は、他のトランザクションによって使用されず、SNDがまだアサートされていても、フェーズの残りが続行する。一貫性の結果が達成されると、トランザクションは、応答フェーズに進む。トランザクションは、パイプラインで進行するので、システムは、その後のトランザクションが、それらのスヌープ・フェーズを通り、それらのデータ・フェーズに達することを許すことができる。
【００３３】
この発明の好ましい実施例で、DMA書込みとも呼ばれるDMA入力は、I/Oアダプタが一貫性のある読込みを実施してメモリ・ラインの所有権(ownership)を取得するときに達成され、キャッシュ内の経路に上書きし、メモリへのライトバックを実施する。このプロセスは、完全なDMAが処理されるまで繰り返される。その時点で、オペレーティングシステムは、DMAが完了したことを通知される。システムは、DMAが完了したという通知を発行する。典型的に、これが生じる３つの方法がある。
・I/Oアダプタによって生成されるトランザクションとして供給することができる外部割込がある。
・プロセッサは、PCIカード上のレジスタにアクセスし、そのレジスタのステータスを取得して、DMAが完了しているかどうか判断する。
・ステータス読込みとして予約されたメモリの領域があり、プロセッサが、一貫性のある読取りを使用して、そのステータス書込みの更新された値を認めることができるように、I/O装置は、その位置に書き込みすることができる。
【００３４】
プロセッサは、DMAが完了したという前述の任意の証拠(indication)を認識することができるが、一貫性のない読取りの目的で、データに実際にアクセスすることができる保証はない。従って、システム・ソフトウェアは、プロセッサが続行する前に、キャッシュ内で知らされることを待っている任意のデータが知らされたことをDMA_SYNCトランザクションに確かめさせる命令を実行する。
【００３５】
トランザクションは、通常パイプラインを横切る。それはスヌープ・フェーズを通り、SND信号がディスパッチされる。DMA_SYNCトランザクションは、パイプラインの残りを続行し、他のトランザクションは、普通にパイプラインを通り続ける。しかし、SNDは、パイプラインに結び付けられていない。従って、重要な情報がキャッシュから出てメモリ内に入れられるときに、SND信号は、SND信号経路が解放される演算の非同期モードを提供する。その時点で、情報は、通常の形態でメモリを読み取ることによって得ることができる。２バス・システムで、メモリ・コントローラは、少なくとも遠隔バス上のスヌープ・フェーズまで、発生バス上でSND信号をアサートする。従って、システムは、遠隔バスからのREMSNDがアサートされているかどうか判断することができる。
【００３６】
その時間まで、遠隔バス上のトランザクションの進行があると仮定すると、メモリ・コントローラはSNDをアサートする。トランザクションが遠隔バス上のスヌープ・フェーズに達すると、メモリ・コントローラは、局所SND信号経路にREMSNDの結果を送り返す。遠隔バス上の全てのI/OアダプタがREMSNDを解放すると、メモリ・コントローラは、局所SND信号経路を解放する。単独に、局所I/Oアダプタが、必要なキャッシュ・ラインをフラッシュし終えたとき、それらは、局所SND信号経路をアサートすることを止める。SNDまたはREMSNDのどちらの信号が後からこうようとも、完了したという結果を発行プロセッサが最終的に認めるときを判断する。プロセッサは、メモリへのコード読取りを発行し始めることができる。
【００３７】
この発明は、好ましい実施例に関して記述されでいるが、当業者であれば、この発明の理念から逸脱することなく他の応用が上述したものと取って代わることができることが容易に分かるであろう。
【００３８】
本発明は例として次の実施態様を含む。
【００３９】
（１）メモリをもつコンピュータシステムにおいて、I/Oチャネルとプロセッサの間のデータ整合性を保証する方法であって、
DMA完了の通知を受け取ったとき、上記コンピュータシステム内の全てのI/Oチャネルに対しDMA_SYNCトランザクションをブロードキャストするステップであって、上記DMA_SYNCトランザクションは、さらに、一貫性を守るよう上記I/Oチャネルに命令し、一貫性が保証された後でのみ応答することを含むステップと、
上記DMA_SYNCトランザクションが完了したことを示す報告手段を提供するステップと、
を含み、上記DMA_SYNCトランザクションは、上記I/Oチャネルに一貫性を守るよう命令し、一貫性が保証された後でのみ応答を返す方法。
【００４０】
（２）上記DMA_SYNCトランザクションに応答して、それぞれの上記I/Oチャネルは、完了したと上記システムによって報告されたDMAシーケンスに対するDMAデータを含むことができるI/Oチャネル・キャッシュ内の修正されたラインを、上記メモリにライトバックする、上記(１)に記載の方法。
【００４１】
（３）上記DMA_SYNCトランザクションは、パイプライン順序で完了する必要がなく、上記I/Oチャネルは、上記DMA_SYNCトランザクションに応答する前に、新しいトランザクションを発行することができる、上記(１)に記載の方法。
【００４２】
（４）上記報告手段は、上記コンピュータシステムがパイプライン順序で動作することを可能にする独立した側波帯報告手段である、上記(1)に記載の方法。
【００４３】
（５)上記コンピュータシステムは、第１のバスと少なくとも第２のバスとの間に配置されるメモリ・コントローラをもつ多重バス・アーキテクチャを含み、それぞれのバスは、プロセッサおよびI/Oアダプタのいずれをも含む、上記(1)に記載の方法。
【００４４】
（６）さらに、上記DMA_SYNCトランザクションが開始されたときを示すように上記報告手段を介してアサートされ、上記DMA_SYNCトランザクションが完了するときデアサートされるSyncNotDone(SND)信号を供給するステップを含む、上記(1)に記載の方法。
【００４５】
（７）さらに、
上記プロセッサが上記DMA_SYNCトランザクションを発行するステップと、
それに応答して、上記I/Oアダプタがライトバックを発行するステップと、
を含み、上記ライトバックが、上記メモリが上記DMA_SYNCトランザクションに対する責任を負うときになると、上記I/Oアダプタは、上記SNDを解放し、それによって上記DMA_SYNCトランザクションが完了したことを示す、上記(6)に記載の方法。
【００４６】
（８）上記コンピュータシステムは、複数のDMA_SYNCトランザクションを同時に支援する多重バス・システムを含み、そこで、１つのDMA_SYNCトランザクションは、第１のバスから生じ、少なくとも１つの他のDMA_SYNCトランザクションは、別のバスから生じる、上記(1)に記載の方法。
【００４７】
（９）上記プロセッサは、それ自身のバスから始まったアクティブなDMA_SYNCトランザクションがある間は監視し、その特定のDMA_SYNCトランザクションが完了するまで新しいDMA_SYNCトランザクションを送り出さない、上記(8)に記載の方法。
【００４８】
（１０）さらに、２つの報告手段を提供するステップを含み、上記報告手段の一方は、局所的に発行されたDMA_SYNCトランザクションのために提供され、上記報告手段の他方は、発行されたDMA_SYNCトランザクションの遠隔のために備えられる、上記(8)に記載の方法。
【００４９】
（１１）上記DMA_SYNCトランザクションが開始されるときを示すよう上記報告手段を介してアサートされ、局所バスDMA_SYNCトランザクションが完了するとデアサートされるSyncNotDone(SND)信号を供給するステップと、
上記DMA_SYNCトランザクションが開始されるときを示すよう上記報告手段を介してアサートされ、遠隔バスDMA_SYNCトランザクションが完了するとデアサートされるRemoteSyncNotDone(REMSND)信号を供給するステップと、
上記遠隔バスからのREMSND信号を上記他の局所バス上のSND信号経路に伝搬する手段を提供するステップと、
を含む上記(8)に記載の方法。
【００５０】
（１２）メモリをもつコンピュータシステムにおいて、I/Oチャネルとプロセッサの間のデータ整合性を保証する装置であって、
DMA完了の通知が受信されると、上記コンピュータシステム内の全てのI/Oチャネルに対しDMA_SYNCトランザクションをブロードキャストするプロセッサであって、上記DMA_SYNCトランザクションは、上記I/Oチャネルに一貫性を守るよう命令し、一貫性が保証された後でのみ応答するプロセッサと、
上記DMA_SYNCトランザクションが完了したときを示す報告手段と、
を備え、上記DMA_SYNCトランザクションは、上記I/Oチャネルに一貫性を守るよう命令し、一貫性が保証された後でのみ応答を返す装置。
【００５１】
（１３）上記DMA_SYNCトランザクションに応答して、それぞれの上記I/Oチャネルは、完了したと上記システムによって報告されたDMAシーケンスに対するDMAデータを含むことができるI/Oチャネル・キャッシュ内の修正されたラインを、上記メモリに対しライトバックする、上記(12)に記載の装置。
【００５２】
（１４）上記DMA_SYNCトランザクションに応答して、それぞれのI/Oチャネルは、完了したと上記システムによって報告されたDMAシーケンスに対するDMAデータを含むことができるI/Oチャネル・キャッシュ内の完全に上書きされたラインのみを、上記メモリに対しライトバックする、上記(12)に記載の装置。
【００５３】
（１５）上記DMA_SYNCトランザクションは、パイプラインの順序で完了する必要がなく、上記I/Oチャネルは、上記DMA_SYNCトランザクションに応答する前に新しいトランザクションを発行することができる、上記(12)に記載の装置。
【００５４】
（１６）上記報告手段は、上記コンピュータシステムがパイプライン順序で動作することを許す独立した側波帯報告手段ある、上記(12)に記載の装置。
【００５５】
（１７）上記コンピュータシステムはさらに、第１のバスと少なくとも第２のバスとの間に配置されるメモリ・コントローラを有する多重バス・アーキテクチャを備え、それぞれのバスは、プロセッサおよびI/Oアダプタのいずれも含む、上記(12)に記載の装置。
【００５６】
（１８）SyncNotDone(SND)は、上記DMA_SYNCトランザクションが開始されるときを示すように上記報告手段を通してアサートされ、上記DMA_SYNCトランザクションが完了するときデアサートされる、上記(12)に記載の装置。
【００５７】
（１９）上記プロセッサは、上記DMA_SYNCトランザクションを発行し、それに応答して、上記I/Oアダプタは、必要に応じて少なくとも１つのライトバックを発行し、
上記ライトバックが、上記メモリが上記DMA_SYNCトランザクションに対する責任を負うときになると、上記I/Oアダプタは、上記SNDを解放し、それによって上記DMA_SYNCトランザクションが完了したことを示す、上記(18)に記載の装置。
【００５８】
（２０）上記コンピュータシステムは、それぞれのバスから１つのDMA_SYNCトランザクションを同時に支援する多重バス・システムを含む、上記(12)に記載の装置。
【００５９】
（２１）上記プロセッサは、局所バスから開始されたアクティブなDMA_SYNCトランザクションがある間は監視し、上記局所バスからの前のDMA_SYNCトランザクションが完了するまで新しいDMA_SYNCトランザクションを送り出さない、上記(20)に記載の装置。
【００６０】
（２２）さらに多重手段を含み、上記報告手段のうちの１つは、局所DMA_SYNCトランザクションのために提供され、少なくとも１つの他の報告手段は、遠隔DMA_SYNCトランザクションのために提供される、上記(20)に記載の装置。
【００６１】
（２３）上記DMA_SYNCトランザクションが開始されるときを示すよう上記１つの報告手段を介してアサートされ、局所バスDMA_SYNCトランザクションが完了するときデアサートされるSyncNotDone(SND)信号と、
上記DMA_SYNCトランザクションが開始されるときを示すように上記他の報告手段を介してアサートされ、遠隔バスDMA_SYNCトランザクションが完了するときデアサートされるRemoteSyncNotDone(REMSND)信号と、
上記遠隔バスからのREMSND信号を、上記他の局所バス上のSND信号経路に伝搬する手段と、
を備える上記(20)に記載の装置。
【００６２】
【発明の効果】
本発明の方法によれば、コンピュータシステム演算を不必要に複雑にすることなく、また、コンピュータシステム性能を下げることなく、Ｉ／Ｏチャネルとプロセッサの間のデータ整合性を保証することができる。
【図面の簡単な説明】
【図１】この発明に従うシステム・アーキテクチャのブロック概略図。
【図２】この発明に従うI/Oアダプタのブロック概略図。
【図３】この発明に従う、SND信号を含むDMA_SYNCトランザクションを示すフロー図。
【符号の説明】
10a、10b    Ｉ／Ｏアダプタ
20          バス・インタフェース・ブロック
21、23      Ｉ／Ｏコントローラ
【図１】
0004499850.tif 000002
【図２】
0004499850.tif 000003
【図３】
0004499850.tif 000004