JP4499850B2 - データ整合性を保証する方法 - Google Patents
データ整合性を保証する方法 Download PDFInfo
- Publication number
- JP4499850B2 JP4499850B2 JP16652199A JP16652199A JP4499850B2 JP 4499850 B2 JP4499850 B2 JP 4499850B2 JP 16652199 A JP16652199 A JP 16652199A JP 16652199 A JP16652199 A JP 16652199A JP 4499850 B2 JP4499850 B2 JP 4499850B2
- Authority
- JP
- Japan
- Prior art keywords
- dma
- transaction
- sync
- bus
- snd
- 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
Links
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/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/122—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware performs an I/O function other than control of data transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0835—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
-
- 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/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Bus Control (AREA)
- Information Transfer Systems (AREA)
Description
【発明の属する技術分野】
この発明は、コンピュータシステムに関連する。特に、この発明は、コンピュータシステム内のI/Oチャネルとプロセッサとの間のデータ整合性を保証する方法および装置に関連する。
【0002】
【従来の技術】
先行技術のコンピュータシステムにおいて、入力/出力(I/O)アダプタ(チャネルとも呼ばれる)が、メモリに対し読取りおよび書込み操作を実施してきた。この方法は、非効率的であった。従って、今日の先行技術のI/Oアダプタは、ダイレクト・メモリ・アクセス(DMA)トランザクションに関するシステムメモリ待ち時間および帯域幅を改善するようにキャッシュを含む。DMA要求を処理するとき、I/Oアダプタは、キャッシュが更新されると要求が完了したものとみなす。キャッシュは一貫性を保たれる。ほとんどの場合、このプロトコルは、受け入れ可能である。
【0003】
しかし、Hewlett-Packard Company(Palo Alto、California)によって製造されるPA-RISCアーキテクチャのようないくつかのコンピュータシステムでは、プロセッサ・データ要求が、一貫性をもつ。すなわち、システム内の全てのキャッシュを効果的に調べて、データの特定部分の最新のコピーがどこに位置するかを見る。しかし、そのようなシステムでは、例えばフェッチング(fetching)コード命令のようなプロセッサの命令要求は、命令の内容が修正可能でないため、一貫性をもたないとみなされる。このように、システム・ソフトウェアは、命令が修正される場合のみ一貫性を果たすよう設計されている。それゆえ、命令要求は、メモリ内にあるものを何でも読み取る。一貫性を調べる必要がないので、結果として命令要求は、比較できるデータ要求よりも速く処理することができる。
【0004】
残念ながら、メモリに一連の命令を書き込むDMAシーケンスがあるとき、すなわち、命令が最初にメモリのキャッシュに書き込まれる場合に問題が生じる。そのような場合、システムは、典型的には割込みトランザクションを介して、プロセッサに対しDMAシーケンスを終了したことを伝える。そしてプロセッサが、新しく書き込まれた一連の命令に分岐する場合、データの新しいDMAバージョンがまだI/Oアダプタのキャッシュ内にあるならば、一貫性のない読取りは、メモリ内でデータの前のバージョン(すなわち新鮮でない)を見つけることがある。
【0005】
この問題を解く1つの方法は、命令読取りトランザクションを一貫性のあるトランザクションにすることであり、それによってI/Oアダプタのキャッシュ内の新しいDMAバージョンを見つけることが可能になる。しかし、この方法は、全ての他の命令読取りトランザクションを遅くする。
【0006】
この問題を解く別の方法は、DMA完了の通知を受け取ったとき、そのキャッシュからメモリに修正されたラインを書き込むように、I/Oアダプタを修正することである。しかし、DMAシーケンスが完了したことをI/O装置がプロセッサに通知することができるいくつかの異なる方法があるので、この技法を実現するのは困難であり、それらの方法のうちのあるものは、それ自体DMAシーケンスの一部に似ている。
【0007】
【発明が解決しようとする課題】
コンピュータシステム演算を不必要に複雑にすることなく、および/またはコンピュータシステム性能を下げることなく、I/Oチャネルとプロセッサの間のデータ整合性を保証する方法および装置を提供することが有利である。
【0008】
【課題を解決するための手段】
この発明は、コンピュータシステム演算を不必要に複雑にすることなく、また、コンピュータシステム性能を下げることなく、I/Oチャネルとプロセッサの間のデータ整合性を保証する方法および装置を提供する。この発明の好ましい実施例で、システム・ソフトウェアは、DMA完了の通知が受信されたときにトランザクションの発行をもたらす命令を発行する。トランザクションは、I/Oチャネルに一貫性を守るよう命令し、一貫性が保証された後でのみ応答を返す。
【0009】
特に、この発明の好ましい実施例は、Hewlett-Packard CompanyのPA-RISCアーキテクチャの中で実現され、DMA_SYNCトランザクションと呼ばれるトランザクションを使用する。DMA_SYNCトランザクションは、システム内の全てのI/Oチャネルにブロードキャストされる。それに応答して、それぞれのI/Oチャネルは、システムによって完了したと既に報告されたDMAシーケンスに対するDMAデータを含むことができるそのキャッシュ内の修正されたラインを、メモリにライトバックする。パイプライン化されたトランザクション・プロトコルを使用するシステムの中で、それぞれのI/Oチャネルは、このトランザクションが完了したときを示す独立した側波帯(sideband)報告手段をもつ。それゆえ、DMA_SYNCトランザクションは、パイプライン順序で完了する必要がない。このようにして、I/Oチャネルは、DMA_SYNCトランザクションに応答する前に新しいトランザクションを発行することができる。
【0010】
【発明の実施の形態】
この発明は、コンピュータシステム演算を不必要に複雑にすることなく、また、コンピュータシステム性能を下げることなく、I/Oチャネルとプロセッサの間のデータ整合性を保証する方法および装置を提供する。この発明の好ましい実施例で、システム・ソフトウェアは、DMA完了の通知が受信されたときに、トランザクションの発行を引き起こす命令を発行する。トランザクションは、I/Oチャネルに一貫性を守るよう命令し、一貫性が保証されたあとにのみ応答を返す。
【0011】
特に、この発明の好ましい実施例は、Hewlett-Packard CompanyのPA-RISCアーキテクチャの中で実現され、DMA_SYNCトランザクションと呼ばれるトランザクションを提供する。一意に、DMA_SYNCトランザクションは、システム内の全てのI/Oチャネルへブロードキャストされる。それに応答して、それぞれのI/Oチャネルは、システムによって完了したと既に報告されたDMAシーケンスに対するDMAデータを含むことがあるそのキャッシュ内の修正されたラインを、メモリにライトバックする。
【0012】
分割トランザクション・プロトコルを使用するシステムにおいて、当業者に良く知られた方法で、通常の応答報告手段を使用し、または拡張して、トランザクションの完了を要求元に知らせることができる。
【0013】
パイプライン化されたプロトコルを使用するシステムにおいて、それぞれのI/Oチャネルは、このトランザクションが完了したときを示す独立した側波帯報告手段をもつ。従って、DMA_SYNCトランザクションは、パイプライン順序で完了する必要がない。このように、I/Oチャネルは、DMA_SYNCトランザクションに応答する前に、新しいトランザクション、具体的には必要なライトバック(write-backs)を発行することができる。そうでなければ、DMA_SYNCはライトバックの完了を待ち、ライトバックは、前のDMA_SYNCがパイプラインから出るまで完了することができなくなる。
【0014】
この発明の好ましい実施例で、パイプライン順序で進行するいくつかの演算フェーズがある。異なる演算フェーズの実行は、必要に応じて時間的に引き伸ばされたり、引き伸ばされなかったりするので、パイプラインは、柔軟なパイプラインとみなされる。典型的に、あるトランザクションは、前のトランザクションが特定の演算フェーズを完了した後に、その特定の演算フェーズを通る。ある時点で、読取りが厳密なパイプライン順序で演算しないように、読取りトランザクションを分割し、または遅らせることが可能である。しかし、書込みトランザクションは、常にパイプライン順序であるので、この特定のプロトコルにおいて書込みトランザクションを分割することができない。
【0015】
この発明の好ましい実施例は、独立した報告手段を備える。その独立した報告手段によって、DMA_SYNCトランザクションに対する応答を受け取り、DMA_SYNCトランザクションを分割することができ、従ってシステムは、もはや厳密なパイプライン順序で動作しない。他の報告手段も機能し、それは当業者にとって明らかであろう。
【0016】
図1は、この発明に従うシステム・アーキテクチャのブロック概略図である。この発明は、単一バス・システムで容易に実践されるが、この発明の好ましい実施例は、2バス・アーキテクチャに関連して示される。
【0017】
2バス・アーキテクチャで、2ポート・メモリ・コントローラ12が、第1のバス17aと第2のバス17bの間に配置される。それぞれのバスは、プロセッサ・モジュール14aおよび14bまたはI/Oアダプタ・モジュールのような少なくとも1つの個別のモジュールを含む。さらにそれぞれのバスは、少なくとも1つのチャネルまたはI/Oアダプタ10a/10bを含むことができ、そのチャネルによって、システムは、例えば多様な周辺装置およびネットワークに対し複数の入力および出力接続を確立する。
【0018】
構造上、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信号をデアサートする(後述する)。
【0019】
その後の読取りコード・トランザクションが、要求されたライトバックからのデータを見つけるとき、モジュールは、DMA_SYNCのその部分が完了したとみなすことができる。
【0020】
この発明は、トランザクションのスヌープ(snoop:せんさくする)・フェーズでアサートされるSyncNotDone(SND)と呼ばれる信号を供給する(より詳しく後述する)。SND信号は、独立した信号経路18a/18bを通して伝搬され、DMA_SYNCトランザクションが最終的に完了したとき、すなわちSNDがデアサートされたときを示す手段となる独立した信号である。
【0021】
局所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トランザクションが完了したことを示す。
【0022】
(この発明を取り入れたシステムで任意の数のバスを設けることができるが、)この発明の好ましい実施例は、2バス・システムを支援するので、システム内で同時に2つのDMA_SYNCトランザクションがありえる。従って、一方のバスから発生した1つのDMA_SYNCトランザクションと、他方のバスから発生した別のDMA_SYNCトランザクションがありえるので、それぞれのバスが、DMA_SYNCトランザクションを始めることができる。特定のバスから開始されたアクティブなDMA_SYNCトランザクションがある間、そのバス上のプロセッサは監視し、前のDMA_SYNCトランザクションが完了するまで新しいDMA_SYNCトランザクションを送り出さない。それゆえ、この発明の好ましい実施例は、2つの側波帯信号経路、すなわち局所DMA_SYNCトランザクションのためのSND18a/18b、および遠隔DMA_SYNCトランザクションのためのREMSND19a/19bを提供する。当業者であれば、この発明は、単一バスシステムに容易に適用され、その場合REMSND信号経路は必要でないことが分かるであろう。
【0023】
I/Oアダプタは、トランザクションが局所バス上のプロセッサによって、あるいは局所バス上のメモリ・コントローラによって送り出されたのかを判断することができる。2バス・システムで、それぞれのバスは、SNDおよびREMSND側波帯信号経路をもつ。プロセッサは、SND信号経路を見る。トランザクションが局所トランザクションである場合、DMA_SYNCトランザクションが必要に応じてそのライトバックの全てを完了するまで、I/OアダプタはSND信号経路をドライブする。
【0024】
2つの同様の信号経路が、それぞれのバス上に供給される。従って、遠隔バス上の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は、全ての他のバスに転送される。
【0025】
図2は、この発明に従うI/Oアダプタのブロック概略図である。I/Oアダプタは、システムバス上のプロトコルに応答して、トランザクションをバッファするバス・インタフェース・ブロック20を含む。この発明の現在の好ましい実施例で供給されるI/Oアダプタの中には、2つの独立したI/Oコントローラ21/23がある。それぞれのI/Oコントローラは、PCIバスへの複数のインタフェースを支援する。この発明は、I/Oアダプタが異なる構造および構成をもつシステムにおいて容易に実践することができることを理解されたい。
【0026】
図3は、この発明に従う、SND信号を含むDMA_SYNCトランザクションを示すタイミング図である。図3で、システムバス上のそれぞれの信号グループは、異なるトランザクション・フェーズを取り扱う。この設計は、トランザクションが重ね合わせられ、完全にパイプライン化されることを可能にする。この発明の好ましい実施例のバスは、アービトレーション、アドレス、データ、および応答信号を含むいくつかの信号グループから構成される。それぞれのグループは、バス・トランザクションが重ねられることを許しながら、独立に、他と並行にその仕事を実施する。トランザクションは、パイプライン化されたプロセッサ内の命令実行とほぼ同じように、完全にパイプライン化することができる。
【0027】
図3は、このパイプライン化がどのように作用するかを示す。第1の信号グループは、アービトレーション40を扱う。図3で、第1のトランザクション(「A」)のためのアービトレーションは、サイクル1(t1)で生じる。サイクル2の間、全てのプロセッサは、アービトレーション結果を解析し、次のトランザクションのためのマスタであるものについて同意する。t3で、マスタは、要求バス上のアドレスをアサートし(41)、次のサイクルに、補足情報が続く。この時までに、次のトランザクション(「B」)のためのアービトレーションが、すでにアービトレーション・バス上で進行中である。
【0028】
一方で、バス装置をチェックして、それらのキャッシュ内でアドレスがヒットするかどうか調べる。t7で、これらの装置は、スヌープ信号を使用して(44)ヒットを示し、その場合、データは、元のターゲットではなくスヌーピング装置によって返すことができる。スヌープ・ヒットがない場合、ターゲット装置は、時間t9で応答バスを使用して、このトランザクションがうまく完了していることを示す(42)。そうであれば、データがデータバス上に転送され、同じサイクルに開始する。
【0029】
この時までに、アービトレーション・バスは、すでにトランザクションDに達していることに注意されたい。全速力で、64バイトの読取りは、完了するのに12サイクルかかるが、それらのサイクルのうち4サイクルの間だけデータバスを使用する。前進する他のバスがあるので、データバスを長い時間十分に使用することができる。こうして、3つまたは4つのトランザクションが、同時に進行することができる。好ましいバスは、同時に最高で12トランザクションを支援し、これは、装置がバスを抑制して(throttle)、トランザクション待ち時間を延長する場合に起きる。
【0030】
この発明の好ましい実施例に従うシステムは、異なる信号について、バス上のどのモジュールでも信号をアサートすることができるOR結合されるプロトコルを支援する。SND信号は、電気的にアクティブなローになり、任意のまたは全てのモジュールが、SND信号を電気的にローの状態にドライブする。どのモジュールもSND信号をロー・レベルにドライブしていないときだけ、信号は電気的に高い状態をもつ。SND信号47(図3)は、システムのOR結合能力を使用する。応答フェーズで、システムは、(データ・フェーズで)順序通り(in-order)のデータを供給することができ、または、システムは、データを順序通りに供給することとは対照的に、遅らせたり再試行することができる。
【0031】
最初の4フェーズは、パイプライン順に実施されるが、SND信号は、その使用に関する限り特別なケースである。なぜなら、システムでは一般に、1度に1つのDMA_SYNCトランザクションを支援するからである。従って、DMA_SYNCトランザクションが、スヌープ・フェーズで発行される場合、他のトランザクションが進行することができるが、SND信号は、DMA_SYNCが完了するまでアサートされ続ける。この特定のトランザクションは、パイプラインの外で続行する。DMA_SYNCトランザクションは、フェーズの残りを通るが、SND信号は、関連するDMAが完了するまで、すなわちデータがキャッシュからメモリに移されるまで、アサートされ続ける。
【0032】
失速(stall)は、一貫性の結果と相対的であるが、SNDは独立した信号である。スヌープ・フェーズで、一貫性の結果が受け取られる。DMA_SYNCトランザクションがある場合、SND信号が生成される。理想的には、一貫性の結果はすぐに達成され、システムは次のフェーズに進む。上述したように、SND(およびREMSND)は、ユーザ・バスのDMA_SYNCトランザクションに関連する独立した信号経路を通して伝搬される。SND信号は、他のトランザクションによって使用されず、SNDがまだアサートされていても、フェーズの残りが続行する。一貫性の結果が達成されると、トランザクションは、応答フェーズに進む。トランザクションは、パイプラインで進行するので、システムは、その後のトランザクションが、それらのスヌープ・フェーズを通り、それらのデータ・フェーズに達することを許すことができる。
【0033】
この発明の好ましい実施例で、DMA書込みとも呼ばれるDMA入力は、I/Oアダプタが一貫性のある読込みを実施してメモリ・ラインの所有権(ownership)を取得するときに達成され、キャッシュ内の経路に上書きし、メモリへのライトバックを実施する。このプロセスは、完全なDMAが処理されるまで繰り返される。その時点で、オペレーティングシステムは、DMAが完了したことを通知される。システムは、DMAが完了したという通知を発行する。典型的に、これが生じる3つの方法がある。
・I/Oアダプタによって生成されるトランザクションとして供給することができる外部割込がある。
・プロセッサは、PCIカード上のレジスタにアクセスし、そのレジスタのステータスを取得して、DMAが完了しているかどうか判断する。
・ステータス読込みとして予約されたメモリの領域があり、プロセッサが、一貫性のある読取りを使用して、そのステータス書込みの更新された値を認めることができるように、I/O装置は、その位置に書き込みすることができる。
【0034】
プロセッサは、DMAが完了したという前述の任意の証拠(indication)を認識することができるが、一貫性のない読取りの目的で、データに実際にアクセスすることができる保証はない。従って、システム・ソフトウェアは、プロセッサが続行する前に、キャッシュ内で知らされることを待っている任意のデータが知らされたことをDMA_SYNCトランザクションに確かめさせる命令を実行する。
【0035】
トランザクションは、通常パイプラインを横切る。それはスヌープ・フェーズを通り、SND信号がディスパッチされる。DMA_SYNCトランザクションは、パイプラインの残りを続行し、他のトランザクションは、普通にパイプラインを通り続ける。しかし、SNDは、パイプラインに結び付けられていない。従って、重要な情報がキャッシュから出てメモリ内に入れられるときに、SND信号は、SND信号経路が解放される演算の非同期モードを提供する。その時点で、情報は、通常の形態でメモリを読み取ることによって得ることができる。2バス・システムで、メモリ・コントローラは、少なくとも遠隔バス上のスヌープ・フェーズまで、発生バス上でSND信号をアサートする。従って、システムは、遠隔バスからのREMSNDがアサートされているかどうか判断することができる。
【0036】
その時間まで、遠隔バス上のトランザクションの進行があると仮定すると、メモリ・コントローラはSNDをアサートする。トランザクションが遠隔バス上のスヌープ・フェーズに達すると、メモリ・コントローラは、局所SND信号経路にREMSNDの結果を送り返す。遠隔バス上の全てのI/OアダプタがREMSNDを解放すると、メモリ・コントローラは、局所SND信号経路を解放する。単独に、局所I/Oアダプタが、必要なキャッシュ・ラインをフラッシュし終えたとき、それらは、局所SND信号経路をアサートすることを止める。SNDまたはREMSNDのどちらの信号が後からこうようとも、完了したという結果を発行プロセッサが最終的に認めるときを判断する。プロセッサは、メモリへのコード読取りを発行し始めることができる。
【0037】
この発明は、好ましい実施例に関して記述されでいるが、当業者であれば、この発明の理念から逸脱することなく他の応用が上述したものと取って代わることができることが容易に分かるであろう。
【0038】
本発明は例として次の実施態様を含む。
【0039】
(1)メモリをもつコンピュータシステムにおいて、I/Oチャネルとプロセッサの間のデータ整合性を保証する方法であって、
DMA完了の通知を受け取ったとき、上記コンピュータシステム内の全てのI/Oチャネルに対しDMA_SYNCトランザクションをブロードキャストするステップであって、上記DMA_SYNCトランザクションは、さらに、一貫性を守るよう上記I/Oチャネルに命令し、一貫性が保証された後でのみ応答することを含むステップと、
上記DMA_SYNCトランザクションが完了したことを示す報告手段を提供するステップと、
を含み、上記DMA_SYNCトランザクションは、上記I/Oチャネルに一貫性を守るよう命令し、一貫性が保証された後でのみ応答を返す方法。
【0040】
(2)上記DMA_SYNCトランザクションに応答して、それぞれの上記I/Oチャネルは、完了したと上記システムによって報告されたDMAシーケンスに対するDMAデータを含むことができるI/Oチャネル・キャッシュ内の修正されたラインを、上記メモリにライトバックする、上記(1)に記載の方法。
【0041】
(3)上記DMA_SYNCトランザクションは、パイプライン順序で完了する必要がなく、上記I/Oチャネルは、上記DMA_SYNCトランザクションに応答する前に、新しいトランザクションを発行することができる、上記(1)に記載の方法。
【0042】
(4)上記報告手段は、上記コンピュータシステムがパイプライン順序で動作することを可能にする独立した側波帯報告手段である、上記(1)に記載の方法。
【0043】
(5)上記コンピュータシステムは、第1のバスと少なくとも第2のバスとの間に配置されるメモリ・コントローラをもつ多重バス・アーキテクチャを含み、それぞれのバスは、プロセッサおよびI/Oアダプタのいずれをも含む、上記(1)に記載の方法。
【0044】
(6)さらに、上記DMA_SYNCトランザクションが開始されたときを示すように上記報告手段を介してアサートされ、上記DMA_SYNCトランザクションが完了するときデアサートされるSyncNotDone(SND)信号を供給するステップを含む、上記(1)に記載の方法。
【0045】
(7)さらに、
上記プロセッサが上記DMA_SYNCトランザクションを発行するステップと、
それに応答して、上記I/Oアダプタがライトバックを発行するステップと、
を含み、上記ライトバックが、上記メモリが上記DMA_SYNCトランザクションに対する責任を負うときになると、上記I/Oアダプタは、上記SNDを解放し、それによって上記DMA_SYNCトランザクションが完了したことを示す、上記(6)に記載の方法。
【0046】
(8)上記コンピュータシステムは、複数のDMA_SYNCトランザクションを同時に支援する多重バス・システムを含み、そこで、1つのDMA_SYNCトランザクションは、第1のバスから生じ、少なくとも1つの他のDMA_SYNCトランザクションは、別のバスから生じる、上記(1)に記載の方法。
【0047】
(9)上記プロセッサは、それ自身のバスから始まったアクティブなDMA_SYNCトランザクションがある間は監視し、その特定のDMA_SYNCトランザクションが完了するまで新しいDMA_SYNCトランザクションを送り出さない、上記(8)に記載の方法。
【0048】
(10)さらに、2つの報告手段を提供するステップを含み、上記報告手段の一方は、局所的に発行されたDMA_SYNCトランザクションのために提供され、上記報告手段の他方は、発行されたDMA_SYNCトランザクションの遠隔のために備えられる、上記(8)に記載の方法。
【0049】
(11)上記DMA_SYNCトランザクションが開始されるときを示すよう上記報告手段を介してアサートされ、局所バスDMA_SYNCトランザクションが完了するとデアサートされるSyncNotDone(SND)信号を供給するステップと、
上記DMA_SYNCトランザクションが開始されるときを示すよう上記報告手段を介してアサートされ、遠隔バスDMA_SYNCトランザクションが完了するとデアサートされるRemoteSyncNotDone(REMSND)信号を供給するステップと、
上記遠隔バスからのREMSND信号を上記他の局所バス上のSND信号経路に伝搬する手段を提供するステップと、
を含む上記(8)に記載の方法。
【0050】
(12)メモリをもつコンピュータシステムにおいて、I/Oチャネルとプロセッサの間のデータ整合性を保証する装置であって、
DMA完了の通知が受信されると、上記コンピュータシステム内の全てのI/Oチャネルに対しDMA_SYNCトランザクションをブロードキャストするプロセッサであって、上記DMA_SYNCトランザクションは、上記I/Oチャネルに一貫性を守るよう命令し、一貫性が保証された後でのみ応答するプロセッサと、
上記DMA_SYNCトランザクションが完了したときを示す報告手段と、
を備え、上記DMA_SYNCトランザクションは、上記I/Oチャネルに一貫性を守るよう命令し、一貫性が保証された後でのみ応答を返す装置。
【0051】
(13)上記DMA_SYNCトランザクションに応答して、それぞれの上記I/Oチャネルは、完了したと上記システムによって報告されたDMAシーケンスに対するDMAデータを含むことができるI/Oチャネル・キャッシュ内の修正されたラインを、上記メモリに対しライトバックする、上記(12)に記載の装置。
【0052】
(14)上記DMA_SYNCトランザクションに応答して、それぞれのI/Oチャネルは、完了したと上記システムによって報告されたDMAシーケンスに対するDMAデータを含むことができるI/Oチャネル・キャッシュ内の完全に上書きされたラインのみを、上記メモリに対しライトバックする、上記(12)に記載の装置。
【0053】
(15)上記DMA_SYNCトランザクションは、パイプラインの順序で完了する必要がなく、上記I/Oチャネルは、上記DMA_SYNCトランザクションに応答する前に新しいトランザクションを発行することができる、上記(12)に記載の装置。
【0054】
(16)上記報告手段は、上記コンピュータシステムがパイプライン順序で動作することを許す独立した側波帯報告手段ある、上記(12)に記載の装置。
【0055】
(17)上記コンピュータシステムはさらに、第1のバスと少なくとも第2のバスとの間に配置されるメモリ・コントローラを有する多重バス・アーキテクチャを備え、それぞれのバスは、プロセッサおよびI/Oアダプタのいずれも含む、上記(12)に記載の装置。
【0056】
(18)SyncNotDone(SND)は、上記DMA_SYNCトランザクションが開始されるときを示すように上記報告手段を通してアサートされ、上記DMA_SYNCトランザクションが完了するときデアサートされる、上記(12)に記載の装置。
【0057】
(19)上記プロセッサは、上記DMA_SYNCトランザクションを発行し、それに応答して、上記I/Oアダプタは、必要に応じて少なくとも1つのライトバックを発行し、
上記ライトバックが、上記メモリが上記DMA_SYNCトランザクションに対する責任を負うときになると、上記I/Oアダプタは、上記SNDを解放し、それによって上記DMA_SYNCトランザクションが完了したことを示す、上記(18)に記載の装置。
【0058】
(20)上記コンピュータシステムは、それぞれのバスから1つのDMA_SYNCトランザクションを同時に支援する多重バス・システムを含む、上記(12)に記載の装置。
【0059】
(21)上記プロセッサは、局所バスから開始されたアクティブなDMA_SYNCトランザクションがある間は監視し、上記局所バスからの前のDMA_SYNCトランザクションが完了するまで新しいDMA_SYNCトランザクションを送り出さない、上記(20)に記載の装置。
【0060】
(22)さらに多重手段を含み、上記報告手段のうちの1つは、局所DMA_SYNCトランザクションのために提供され、少なくとも1つの他の報告手段は、遠隔DMA_SYNCトランザクションのために提供される、上記(20)に記載の装置。
【0061】
(23)上記DMA_SYNCトランザクションが開始されるときを示すよう上記1つの報告手段を介してアサートされ、局所バスDMA_SYNCトランザクションが完了するときデアサートされるSyncNotDone(SND)信号と、
上記DMA_SYNCトランザクションが開始されるときを示すように上記他の報告手段を介してアサートされ、遠隔バスDMA_SYNCトランザクションが完了するときデアサートされるRemoteSyncNotDone(REMSND)信号と、
上記遠隔バスからのREMSND信号を、上記他の局所バス上のSND信号経路に伝搬する手段と、
を備える上記(20)に記載の装置。
【0062】
【発明の効果】
本発明の方法によれば、コンピュータシステム演算を不必要に複雑にすることなく、また、コンピュータシステム性能を下げることなく、I/Oチャネルとプロセッサの間のデータ整合性を保証することができる。
【図面の簡単な説明】
【図1】この発明に従うシステム・アーキテクチャのブロック概略図。
【図2】この発明に従うI/Oアダプタのブロック概略図。
【図3】この発明に従う、SND信号を含むDMA_SYNCトランザクションを示すフロー図。
【符号の説明】
10a、10b I/Oアダプタ
20 バス・インタフェース・ブロック
21、23 I/Oコントローラ
Claims (2)
- メモリをもつコンピュータシステムにおいて、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チャネルに、一貫性を実現し、一貫性が保証された後でのみ応答を返すように、命令するためのものである、装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US107008 | 1987-10-13 | ||
US09/107,008 US6108721A (en) | 1998-06-29 | 1998-06-29 | Method and apparatus for ensuring data consistency between an i/o channel and a processor |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2000082012A JP2000082012A (ja) | 2000-03-21 |
JP2000082012A5 JP2000082012A5 (ja) | 2007-04-26 |
JP4499850B2 true JP4499850B2 (ja) | 2010-07-07 |
Family
ID=22314370
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP16652199A Expired - Fee Related JP4499850B2 (ja) | 1998-06-29 | 1999-06-14 | データ整合性を保証する方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6108721A (ja) |
JP (1) | JP4499850B2 (ja) |
DE (1) | DE19914487A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6714994B1 (en) * | 1998-12-23 | 2004-03-30 | Advanced Micro Devices, Inc. | Host bridge translating non-coherent packets from non-coherent link to coherent packets on conherent link and vice versa |
US6609171B1 (en) * | 1999-12-29 | 2003-08-19 | Intel Corporation | Quad pumped bus architecture and protocol |
US6807586B2 (en) * | 2002-01-09 | 2004-10-19 | International Business Machines Corporation | Increased computer peripheral throughput by using data available withholding |
US7484122B2 (en) * | 2004-06-17 | 2009-01-27 | International Business Machines Corporation | Controlling timing of execution of test instruction by target computing device |
US8990501B1 (en) * | 2005-10-12 | 2015-03-24 | Azul Systems, Inc. | Multiple cluster processor |
US8756377B2 (en) * | 2010-02-02 | 2014-06-17 | Arm Limited | Area and power efficient data coherency maintenance |
US8527684B2 (en) * | 2010-11-12 | 2013-09-03 | Lsi Corporation | Closed loop dynamic interconnect bus allocation method and architecture for a multi layer SoC |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03220645A (ja) * | 1990-01-26 | 1991-09-27 | Fujitsu Ltd | 情報処理装置 |
JPH08115260A (ja) * | 1994-10-03 | 1996-05-07 | Internatl Business Mach Corp <Ibm> | データ処理システムのi/oチャネル・コントローラのコヒーレンシと同期化装置及び方法 |
JPH1165988A (ja) * | 1997-08-21 | 1999-03-09 | Fujitsu Ltd | チャネル装置制御方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3266470B2 (ja) * | 1994-10-03 | 2002-03-18 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 強制順序で行う要求毎ライト・スルー・キャッシュを有するデータ処理システム |
JP3872118B2 (ja) * | 1995-03-20 | 2007-01-24 | 富士通株式会社 | キャッシュコヒーレンス装置 |
US5778437A (en) * | 1995-09-25 | 1998-07-07 | International Business Machines Corporation | Invalidation bus optimization for multiprocessors using directory-based cache coherence protocols in which an address of a line to be modified is placed on the invalidation bus simultaneously with sending a modify request to the directory |
US5918070A (en) * | 1996-10-18 | 1999-06-29 | Samsung Electronics Co., Ltd. | DMA controller with channel tagging |
US6003106A (en) * | 1998-05-27 | 1999-12-14 | International Business Machines Corporation | DMA cache control logic |
-
1998
- 1998-06-29 US US09/107,008 patent/US6108721A/en not_active Expired - Lifetime
-
1999
- 1999-03-30 DE DE19914487A patent/DE19914487A1/de not_active Withdrawn
- 1999-06-14 JP JP16652199A patent/JP4499850B2/ja not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03220645A (ja) * | 1990-01-26 | 1991-09-27 | Fujitsu Ltd | 情報処理装置 |
JPH08115260A (ja) * | 1994-10-03 | 1996-05-07 | Internatl Business Mach Corp <Ibm> | データ処理システムのi/oチャネル・コントローラのコヒーレンシと同期化装置及び方法 |
JPH1165988A (ja) * | 1997-08-21 | 1999-03-09 | Fujitsu Ltd | チャネル装置制御方法 |
Also Published As
Publication number | Publication date |
---|---|
US6108721A (en) | 2000-08-22 |
JP2000082012A (ja) | 2000-03-21 |
DE19914487A1 (de) | 1999-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6785776B2 (en) | DMA exclusive cache state providing a fully pipelined input/output DMA write mechanism | |
US5572703A (en) | Method and apparatus for snoop stretching using signals that convey snoop results | |
US5463753A (en) | Method and apparatus for reducing non-snoop window of a cache controller by delaying host bus grant signal to the cache controller | |
US6112016A (en) | Method and apparatus for sharing a signal line between agents | |
US6405271B1 (en) | Data flow control mechanism for a bus supporting two-and three-agent transactions | |
KR100360064B1 (ko) | 고도로파이프라인된버스구조 | |
US6353877B1 (en) | Performance optimization and system bus duty cycle reduction by I/O bridge partial cache line write | |
US5953538A (en) | Method and apparatus providing DMA transfers between devices coupled to different host bus bridges | |
US6021456A (en) | Method for communicating interrupt data structure in a multi-processor computer system | |
US5528764A (en) | Bus system with cache snooping signals having a turnaround time between agents driving the bus for keeping the bus from floating for an extended period | |
US6018792A (en) | Apparatus for performing a low latency memory read with concurrent snoop | |
US5659709A (en) | Write-back and snoop write-back buffer to prevent deadlock and to enhance performance in an in-order protocol multiprocessing bus | |
WO1994008297A1 (en) | Method and apparatus for concurrency of bus operations | |
WO1994008297A9 (en) | Method and apparatus for concurrency of bus operations | |
JP3696012B2 (ja) | 書込み動作順序付けバスブリッジ | |
JP2532191B2 (ja) | 複式バス・ア―キテクチャを有する計算システムに使用するデ―タ伝送の管理方法 | |
KR100310399B1 (ko) | 프로세서 인터페이스 버스를 통해 데이터를 전달하기 위한 방법 및 장치 | |
US5961621A (en) | Mechanism for efficiently processing deferred order-dependent memory access transactions in a pipelined system | |
US5991855A (en) | Low latency memory read with concurrent pipe lined snoops | |
JP4499850B2 (ja) | データ整合性を保証する方法 | |
US5923857A (en) | Method and apparatus for ordering writeback data transfers on a bus | |
US6782456B2 (en) | Microprocessor system bus protocol providing a fully pipelined input/output DMA write mechanism | |
US6226703B1 (en) | Method and apparatus for reducing the apparent read latency when connecting busses with fixed read replay timeouts to CPU'S with write-back caches | |
US7543094B2 (en) | Target readiness protocol for contiguous write | |
US6266741B1 (en) | Method and apparatus to reduce system bus latency on a cache miss with address acknowledgments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060609 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060609 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20091125 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091208 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100305 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20100305 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100310 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100319 |
|
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: 20100406 |
|
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: 20100416 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130423 Year of fee payment: 3 |
|
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: 20130423 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140423 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |