JP2000082012A - デ―タ整合性を保証する方法 - Google Patents
デ―タ整合性を保証する方法Info
- Publication number
- JP2000082012A JP2000082012A JP11166521A JP16652199A JP2000082012A JP 2000082012 A JP2000082012 A JP 2000082012A JP 11166521 A JP11166521 A JP 11166521A JP 16652199 A JP16652199 A JP 16652199A JP 2000082012 A JP2000082012 A JP 2000082012A
- Authority
- JP
- Japan
- Prior art keywords
- dma
- transaction
- bus
- sync
- consistency
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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)
Abstract
を保証する。 【解決手段】システム・ソフトウェアは、DMA終了の通
知を受信すると、DMA_SYNCトランザクションを発行し、
SND信号をアサートする。トランザクションの発行に応
じて、各I/Oチャネル10は、終了したと報告されたDMA
シーケンスのDMAデータを含むそのキャッシュ内の修正
されたラインを、メモリにライトバックする。キャッシ
ュ内の関連するラインがメモリにライトバックされる
と、SND信号をデアサートして、DMA_SYNCトランザクシ
ョンの終了を知らせる。DMA_SYNCトランザクションは、
I/Oチャネルに一貫性を守るよう命令し、一貫性が保証
された後にのみ応答を返す。
Description
ステムに関連する。特に、この発明は、コンピュータシ
ステム内のI/Oチャネルとプロセッサとの間のデータ整
合性を保証する方法および装置に関連する。
て、入力/出力(I/O)アダプタ(チャネルとも呼ばれる)
が、メモリに対し読取りおよび書込み操作を実施してき
た。この方法は、非効率的であった。従って、今日の先
行技術のI/Oアダプタは、ダイレクト・メモリ・アクセ
ス(DMA)トランザクションに関するシステムメモリ待ち
時間および帯域幅を改善するようにキャッシュを含む。
DMA要求を処理するとき、I/Oアダプタは、キャッシュが
更新されると要求が完了したものとみなす。キャッシュ
は一貫性を保たれる。ほとんどの場合、このプロトコル
は、受け入れ可能である。
lto、California)によって製造されるPA-RISCアーキテ
クチャのようないくつかのコンピュータシステムでは、
プロセッサ・データ要求が、一貫性をもつ。すなわち、
システム内の全てのキャッシュを効果的に調べて、デー
タの特定部分の最新のコピーがどこに位置するかを見
る。しかし、そのようなシステムでは、例えばフェッチ
ング(fetching)コード命令のようなプロセッサの命令要
求は、命令の内容が修正可能でないため、一貫性をもた
ないとみなされる。このように、システム・ソフトウェ
アは、命令が修正される場合のみ一貫性を果たすよう設
計されている。それゆえ、命令要求は、メモリ内にある
ものを何でも読み取る。一貫性を調べる必要がないの
で、結果として命令要求は、比較できるデータ要求より
も速く処理することができる。
むDMAシーケンスがあるとき、すなわち、命令が最初に
メモリのキャッシュに書き込まれる場合に問題が生じ
る。そのような場合、システムは、典型的には割込みト
ランザクションを介して、プロセッサに対しDMAシーケ
ンスを終了したことを伝える。そしてプロセッサが、新
しく書き込まれた一連の命令に分岐する場合、データの
新しいDMAバージョンがまだI/Oアダプタのキャッシュ内
にあるならば、一貫性のない読取りは、メモリ内でデー
タの前のバージョン(すなわち新鮮でない)を見つけるこ
とがある。
トランザクションを一貫性のあるトランザクションにす
ることであり、それによってI/Oアダプタのキャッシュ
内の新しいDMAバージョンを見つけることが可能にな
る。しかし、この方法は、全ての他の命令読取りトラン
ザクションを遅くする。
知を受け取ったとき、そのキャッシュからメモリに修正
されたラインを書き込むように、I/Oアダプタを修正す
ることである。しかし、DMAシーケンスが完了したこと
をI/O装置がプロセッサに通知することができるいくつ
かの異なる方法があるので、この技法を実現するのは困
難であり、それらの方法のうちのあるものは、それ自体
DMAシーケンスの一部に似ている。
演算を不必要に複雑にすることなく、および/またはコ
ンピュータシステム性能を下げることなく、I/Oチャネ
ルとプロセッサの間のデータ整合性を保証する方法およ
び装置を提供することが有利である。
タシステム演算を不必要に複雑にすることなく、また、
コンピュータシステム性能を下げることなく、I/Oチャ
ネルとプロセッサの間のデータ整合性を保証する方法お
よび装置を提供する。この発明の好ましい実施例で、シ
ステム・ソフトウェアは、DMA完了の通知が受信された
ときにトランザクションの発行をもたらす命令を発行す
る。トランザクションは、I/Oチャネルに一貫性を守る
よう命令し、一貫性が保証された後でのみ応答を返す。
ett-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チャネルに一貫性を守るよう
命令し、一貫性が保証されたあとにのみ応答を返す。
ett-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_SY
NCトランザクションを分割することができ、従ってシス
テムは、もはや厳密なパイプライン順序で動作しない。
他の報告手段も機能し、それは当業者にとって明らかで
あろう。
テクチャのブロック概略図である。この発明は、単一バ
ス・システムで容易に実践されるが、この発明の好まし
い実施例は、2バス・アーキテクチャに関連して示され
る。
モリ・コントローラ12が、第1のバス17aと第2のバス1
7bの間に配置される。それぞれのバスは、プロセッサ・
モジュール14aおよび14bまたはI/Oアダプタ・モジュー
ルのような少なくとも1つの個別のモジュールを含む。
さらにそれぞれのバスは、少なくとも1つのチャネルま
たはI/Oアダプタ10a/10bを含むことができ、そのチャネ
ルによって、システムは、例えば多様な周辺装置および
ネットワークに対し複数の入力および出力接続を確立す
る。
了したと報告されるDMAトランザクションの全ての部分
が完了していることを保証することができるか、全ての
モジュールに調べさせる。それぞれのI/Oアダプタは、
(それ自身のために)DMA_SYNCトランザクションに応答
し、反則している(offending)ラインをそのキャッシュ
からフラッシュすることだけが必要である。典型的に、
オペレーティングシステムは、コード・ページについて
のDMA入力が常にラインに調整され(line-aligned)、完
全なラインを含むことを保証するので、ライトバックさ
れなければならないラインは、その最後のバイトが書き
込まれていることが保証される。I/Oアダプタは、DMA入
力によって完全に書き込まれ、従ってメモリへライトバ
ックするために既にマークされているラインをライトバ
ックするだけでよい。論理上、マーカが待ち行列の前部
に達すると、I/Oアダプタは、マーカをライトバック待
ち行列に入れる。さらに、それぞれのI/Oコントローラ
は、完全な連想キャッシュ24/25をもつ。DMA_SYNCトラ
ンザクションが、バス上に現れると、情報が、I/Oコン
トローラ内のキャッシュに通される。キャッシュは、DM
A_SYNCトランザクションの要求を履行するため、ライト
バックされなければならないそれらのメモリ・ラインの
スナップショットをとる。キャッシュは、これらのメモ
リ・ラインがいつライトバックされたかを常に把握し、
それらが全てキャッシュから出るまで、それらをスナッ
プショットから取り去り、またはマークを外す。DMA_SY
NCトランザクションが完了すると、I/Oアダプタは、SND
信号をデアサートする(後述する)。
が、要求されたライトバックからのデータを見つけると
き、モジュールは、DMA_SYNCのその部分が完了したとみ
なすことができる。
(snoop:せんさくする)・フェーズでアサートされるSync
NotDone(SND)と呼ばれる信号を供給する(より詳しく後
述する)。SND信号は、独立した信号経路18a/18bを通し
て伝搬され、DMA_SYNCトランザクションが最終的に完了
したとき、すなわちSNDがデアサートされたときを示す
手段となる独立した信号である。
・フェーズが始まると、SNDがアサートされ、DMA_SYNC
トランザクションがまだ進行中であることを示すことが
できる。SNDは、スヌープ・フェーズの終了後もアサー
トされたままであり、必要であればDMA_SYNCトランザク
ションの応答フェーズの後もアサートされたままであ
る。この構成は、DMA_SYNCトランザクションを完了する
のに必要とされるトランザクションのためにシステムバ
スを解放する。例えば、I/Oアダプタは、DMA_SYNCトラ
ンザクションを完了するために他のトランザクションを
発行しなければならないことがあるので、DMA_SYNCトラ
ンザクションが進行中であるにもかかわらず多様なトラ
ンザクションが続行することを許す必要がある。通常の
ケースで、プロセッサは、必要に応じてシステムバス上
に進められるDMA_SYNCトランザクションを発行する。I/
Oアダプタは、少なくともゼロまたはそれ以上のライト
バックを発行する。全ての必要なライトバックが、メモ
リがトランザクションに対し責任をもつ点になると、I/
Oアダプタは、SNDを解放することができ、それによって
DMA_SYNCトランザクションが完了したことを示す。
数のバスを設けることができるが、)この発明の好まし
い実施例は、2バス・システムを支援するので、システ
ム内で同時に2つのDMA_SYNCトランザクションがありえ
る。従って、一方のバスから発生した1つのDMA_SYNCト
ランザクションと、他方のバスから発生した別のDMA_SY
NCトランザクションがありえるので、それぞれのバス
が、DMA_SYNCトランザクションを始めることができる。
特定のバスから開始されたアクティブなDMA_SYNCトラン
ザクションがある間、そのバス上のプロセッサは監視
し、前のDMA_SYNCトランザクションが完了するまで新し
いDMA_SYNCトランザクションを送り出さない。それゆ
え、この発明の好ましい実施例は、2つの側波帯信号経
路、すなわち局所DMA_SYNCトランザクションのためのSN
D18a/18b、および遠隔DMA_SYNCトランザクションのため
のREMSND19a/19bを提供する。当業者であれば、この発
明は、単一バスシステムに容易に適用され、その場合RE
MSND信号経路は必要でないことが分かるであろう。
バス上のプロセッサによって、あるいは局所バス上のメ
モリ・コントローラによって送り出されたのかを判断す
ることができる。2バス・システムで、それぞれのバス
は、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は、全ての他の
バスに転送される。
ック概略図である。I/Oアダプタは、システムバス上の
プロトコルに応答して、トランザクションをバッファす
るバス・インタフェース・ブロック20を含む。この発明
の現在の好ましい実施例で供給されるI/Oアダプタの中
には、2つの独立したI/Oコントローラ21/23がある。そ
れぞれのI/Oコントローラは、PCIバスへの複数のイ
ンタフェースを支援する。この発明は、I/Oアダプタが
異なる構造および構成をもつシステムにおいて容易に実
践することができることを理解されたい。
A_SYNCトランザクションを示すタイミング図である。図
3で、システムバス上のそれぞれの信号グループは、異
なるトランザクション・フェーズを取り扱う。この設計
は、トランザクションが重ね合わせられ、完全にパイプ
ライン化されることを可能にする。この発明の好ましい
実施例のバスは、アービトレーション、アドレス、デー
タ、および応答信号を含むいくつかの信号グループから
構成される。それぞれのグループは、バス・トランザク
ションが重ねられることを許しながら、独立に、他と並
行にその仕事を実施する。トランザクションは、パイプ
ライン化されたプロセッサ内の命令実行とほぼ同じよう
に、完全にパイプライン化することができる。
作用するかを示す。第1の信号グループは、アービトレ
ーション40を扱う。図3で、第1のトランザクション
(「A」)のためのアービトレーションは、サイクル1(t1)
で生じる。サイクル2の間、全てのプロセッサは、アー
ビトレーション結果を解析し、次のトランザクションの
ためのマスタであるものについて同意する。t3で、マス
タは、要求バス上のアドレスをアサートし(41)、次のサ
イクルに、補足情報が続く。この時までに、次のトラン
ザクション(「B」)のためのアービトレーションが、す
でにアービトレーション・バス上で進行中である。
のキャッシュ内でアドレスがヒットするかどうか調べ
る。t7で、これらの装置は、スヌープ信号を使用して(4
4)ヒットを示し、その場合、データは、元のターゲット
ではなくスヌーピング装置によって返すことができる。
スヌープ・ヒットがない場合、ターゲット装置は、時間
t9で応答バスを使用して、このトランザクションがうま
く完了していることを示す(42)。そうであれば、データ
がデータバス上に転送され、同じサイクルに開始する。
は、すでにトランザクションDに達していることに注意
されたい。全速力で、64バイトの読取りは、完了するの
に12サイクルかかるが、それらのサイクルのうち4サイ
クルの間だけデータバスを使用する。前進する他のバス
があるので、データバスを長い時間十分に使用すること
ができる。こうして、3つまたは4つのトランザクショ
ンが、同時に進行することができる。好ましいバスは、
同時に最高で12トランザクションを支援し、これは、装
置がバスを抑制して(throttle)、トランザクション待ち
時間を延長する場合に起きる。
は、異なる信号について、バス上のどのモジュールでも
信号をアサートすることができるOR結合されるプロトコ
ルを支援する。SND信号は、電気的にアクティブなロー
になり、任意のまたは全てのモジュールが、SND信号を
電気的にローの状態にドライブする。どのモジュールも
SND信号をロー・レベルにドライブしていないときだ
け、信号は電気的に高い状態をもつ。SND信号47(図3)
は、システムのOR結合能力を使用する。応答フェーズ
で、システムは、(データ・フェーズで)順序通り(in-or
der)のデータを供給することができ、または、システム
は、データを順序通りに供給することとは対照的に、遅
らせたり再試行することができる。
施されるが、SND信号は、その使用に関する限り特別な
ケースである。なぜなら、システムでは一般に、1度に
1つのDMA_SYNCトランザクションを支援するからであ
る。従って、DMA_SYNCトランザクションが、スヌープ・
フェーズで発行される場合、他のトランザクションが進
行することができるが、SND信号は、DMA_SYNCが完了す
るまでアサートされ続ける。この特定のトランザクショ
ンは、パイプラインの外で続行する。DMA_SYNCトランザ
クションは、フェーズの残りを通るが、SND信号は、関
連するDMAが完了するまで、すなわちデータがキャッシ
ュからメモリに移されるまで、アサートされ続ける。
あるが、SNDは独立した信号である。スヌープ・フェー
ズで、一貫性の結果が受け取られる。DMA_SYNCトランザ
クションがある場合、SND信号が生成される。理想的に
は、一貫性の結果はすぐに達成され、システムは次のフ
ェーズに進む。上述したように、SND(およびREMSND)
は、ユーザ・バスのDMA_SYNCトランザクションに関連す
る独立した信号経路を通して伝搬される。SND信号は、
他のトランザクションによって使用されず、SNDがまだ
アサートされていても、フェーズの残りが続行する。一
貫性の結果が達成されると、トランザクションは、応答
フェーズに進む。トランザクションは、パイプラインで
進行するので、システムは、その後のトランザクション
が、それらのスヌープ・フェーズを通り、それらのデー
タ・フェーズに達することを許すことができる。
とも呼ばれるDMA入力は、I/Oアダプタが一貫性のある読
込みを実施してメモリ・ラインの所有権(ownership)を
取得するときに達成され、キャッシュ内の経路に上書き
し、メモリへのライトバックを実施する。このプロセス
は、完全なDMAが処理されるまで繰り返される。その時
点で、オペレーティングシステムは、DMAが完了したこ
とを通知される。システムは、DMAが完了したという通
知を発行する。典型的に、これが生じる3つの方法があ
る。 ・I/Oアダプタによって生成されるトランザクションと
して供給することができる外部割込がある。 ・プロセッサは、PCIカード上のレジスタにアクセス
し、そのレジスタのステータスを取得して、DMAが完了
しているかどうか判断する。 ・ステータス読込みとして予約されたメモリの領域があ
り、プロセッサが、一貫性のある読取りを使用して、そ
のステータス書込みの更新された値を認めることができ
るように、I/O装置は、その位置に書き込みすることが
できる。
の任意の証拠(indication)を認識することができるが、
一貫性のない読取りの目的で、データに実際にアクセス
することができる保証はない。従って、システム・ソフ
トウェアは、プロセッサが続行する前に、キャッシュ内
で知らされることを待っている任意のデータが知らされ
たことをDMA_SYNCトランザクションに確かめさせる命令
を実行する。
横切る。それはスヌープ・フェーズを通り、SND信号が
ディスパッチされる。DMA_SYNCトランザクションは、パ
イプラインの残りを続行し、他のトランザクションは、
普通にパイプラインを通り続ける。しかし、SNDは、パ
イプラインに結び付けられていない。従って、重要な情
報がキャッシュから出てメモリ内に入れられるときに、
SND信号は、SND信号経路が解放される演算の非同期モー
ドを提供する。その時点で、情報は、通常の形態でメモ
リを読み取ることによって得ることができる。2バス・
システムで、メモリ・コントローラは、少なくとも遠隔
バス上のスヌープ・フェーズまで、発生バス上でSND信
号をアサートする。従って、システムは、遠隔バスから
のREMSNDがアサートされているかどうか判断することが
できる。
ョンの進行があると仮定すると、メモリ・コントローラ
はSNDをアサートする。トランザクションが遠隔バス上
のスヌープ・フェーズに達すると、メモリ・コントロー
ラは、局所SND信号経路にREMSNDの結果を送り返す。遠
隔バス上の全てのI/OアダプタがREMSNDを解放すると、
メモリ・コントローラは、局所SND信号経路を解放す
る。単独に、局所I/Oアダプタが、必要なキャッシュ・
ラインをフラッシュし終えたとき、それらは、局所SND
信号経路をアサートすることを止める。SNDまたはREMSN
Dのどちらの信号が後からこうようとも、完了したとい
う結果を発行プロセッサが最終的に認めるときを判断す
る。プロセッサは、メモリへのコード読取りを発行し始
めることができる。
されでいるが、当業者であれば、この発明の理念から逸
脱することなく他の応用が上述したものと取って代わる
ことができることが容易に分かるであろう。
において、I/Oチャネルとプロセッサの間のデータ整合
性を保証する方法であって、DMA完了の通知を受け取っ
たとき、上記コンピュータシステム内の全てのI/Oチャ
ネルに対しDMA_SYNCトランザクションをブロードキャス
トするステップであって、上記DMA_SYNCトランザクショ
ンは、さらに、一貫性を守るよう上記I/Oチャネルに命
令し、一貫性が保証された後でのみ応答することを含む
ステップと、上記DMA_SYNCトランザクションが完了した
ことを示す報告手段を提供するステップと、を含み、上
記DMA_SYNCトランザクションは、上記I/Oチャネルに一
貫性を守るよう命令し、一貫性が保証された後でのみ応
答を返す方法。
答して、それぞれの上記I/Oチャネルは、完了したと上
記システムによって報告されたDMAシーケンスに対するD
MAデータを含むことができるI/Oチャネル・キャッシュ
内の修正されたラインを、上記メモリにライトバックす
る、上記(1)に記載の方法。
パイプライン順序で完了する必要がなく、上記I/Oチャ
ネルは、上記DMA_SYNCトランザクションに応答する前
に、新しいトランザクションを発行することができる、
上記(1)に記載の方法。
システムがパイプライン順序で動作することを可能にす
る独立した側波帯報告手段である、上記(1)に記載の方
法。
のバスと少なくとも第2のバスとの間に配置されるメモ
リ・コントローラをもつ多重バス・アーキテクチャを含
み、それぞれのバスは、プロセッサおよびI/Oアダプタ
のいずれをも含む、上記(1)に記載の方法。
ョンが開始されたときを示すように上記報告手段を介し
てアサートされ、上記DMA_SYNCトランザクションが完了
するときデアサートされるSyncNotDone(SND)信号を供給
するステップを含む、上記(1)に記載の方法。
SYNCトランザクションを発行するステップと、それに応
答して、上記I/Oアダプタがライトバックを発行するス
テップと、を含み、上記ライトバックが、上記メモリが
上記DMA_SYNCトランザクションに対する責任を負うとき
になると、上記I/Oアダプタは、上記SNDを解放し、それ
によって上記DMA_SYNCトランザクションが完了したこと
を示す、上記(6)に記載の方法。
のDMA_SYNCトランザクションを同時に支援する多重バス
・システムを含み、そこで、1つのDMA_SYNCトランザク
ションは、第1のバスから生じ、少なくとも1つの他の
DMA_SYNCトランザクションは、別のバスから生じる、上
記(1)に記載の方法。
から始まったアクティブなDMA_SYNCトランザクションが
ある間は監視し、その特定のDMA_SYNCトランザクション
が完了するまで新しいDMA_SYNCトランザクションを送り
出さない、上記(8)に記載の方法。
るステップを含み、上記報告手段の一方は、局所的に発
行されたDMA_SYNCトランザクションのために提供され、
上記報告手段の他方は、発行されたDMA_SYNCトランザク
ションの遠隔のために備えられる、上記(8)に記載の方
法。
開始されるときを示すよう上記報告手段を介してアサー
トされ、局所バス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チャネルに一貫性を守るよう命令し、一貫性が保
証された後でのみ応答を返す装置。
応答して、それぞれの上記I/Oチャネルは、完了したと
上記システムによって報告されたDMAシーケンスに対す
るDMAデータを含むことができるI/Oチャネル・キャッシ
ュ内の修正されたラインを、上記メモリに対しライトバ
ックする、上記(12)に記載の装置。
応答して、それぞれのI/Oチャネルは、完了したと上記
システムによって報告されたDMAシーケンスに対するDMA
データを含むことができるI/Oチャネル・キャッシュ内
の完全に上書きされたラインのみを、上記メモリに対し
ライトバックする、上記(12)に記載の装置。
は、パイプラインの順序で完了する必要がなく、上記I/
Oチャネルは、上記DMA_SYNCトランザクションに応答す
る前に新しいトランザクションを発行することができ
る、上記(12)に記載の装置。
タシステムがパイプライン順序で動作することを許す独
立した側波帯報告手段ある、上記(12)に記載の装置。
に、第1のバスと少なくとも第2のバスとの間に配置さ
れるメモリ・コントローラを有する多重バス・アーキテ
クチャを備え、それぞれのバスは、プロセッサおよびI/
Oアダプタのいずれも含む、上記(12)に記載の装置。
NCトランザクションが開始されるときを示すように上記
報告手段を通してアサートされ、上記DMA_SYNCトランザ
クションが完了するときデアサートされる、上記(12)に
記載の装置。
トランザクションを発行し、それに応答して、上記I/O
アダプタは、必要に応じて少なくとも1つのライトバッ
クを発行し、上記ライトバックが、上記メモリが上記DM
A_SYNCトランザクションに対する責任を負うときになる
と、上記I/Oアダプタは、上記SNDを解放し、それによっ
て上記DMA_SYNCトランザクションが完了したことを示
す、上記(18)に記載の装置。
れぞれのバスから1つのDMA_SYNCトランザクションを同
時に支援する多重バス・システムを含む、上記(12)に記
載の装置。
開始されたアクティブなDMA_SYNCトランザクションがあ
る間は監視し、上記局所バスからの前のDMA_SYNCトラン
ザクションが完了するまで新しいDMA_SYNCトランザクシ
ョンを送り出さない、上記(20)に記載の装置。
手段のうちの1つは、局所DMA_SYNCトランザクションの
ために提供され、少なくとも1つの他の報告手段は、遠
隔DMA_SYNCトランザクションのために提供される、上記
(20)に記載の装置。
開始されるときを示すよう上記1つの報告手段を介して
アサートされ、局所バスDMA_SYNCトランザクションが完
了するときデアサートされるSyncNotDone(SND)信号と、
上記DMA_SYNCトランザクションが開始されるときを示す
ように上記他の報告手段を介してアサートされ、遠隔バ
スDMA_SYNCトランザクションが完了するときデアサート
されるRemoteSyncNotDone(REMSND)信号と、上記遠隔バ
スからのREMSND信号を、上記他の局所バス上のSND信号
経路に伝搬する手段と、を備える上記(20)に記載の装
置。
ステム演算を不必要に複雑にすることなく、また、コン
ピュータシステム性能を下げることなく、I/Oチャネ
ルとプロセッサの間のデータ整合性を保証することがで
きる。
ロック概略図。
図。
ンザクションを示すフロー図。
Claims (1)
- 【請求項1】メモリをもつコンピュータシステムにおい
て、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 true JP2000082012A (ja) | 2000-03-21 |
| JP2000082012A5 JP2000082012A5 (ja) | 2007-04-26 |
| JP4499850B2 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 |
|---|---|
| JP4499850B2 (ja) | 2010-07-07 |
| US6108721A (en) | 2000-08-22 |
| DE19914487A1 (de) | 1999-12-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6353877B1 (en) | Performance optimization and system bus duty cycle reduction by I/O bridge partial cache line write | |
| US5651137A (en) | Scalable cache attributes for an input/output bus | |
| US6405271B1 (en) | Data flow control mechanism for a bus supporting two-and three-agent transactions | |
| US6785776B2 (en) | DMA exclusive cache state providing a fully pipelined input/output DMA write mechanism | |
| US5953538A (en) | Method and apparatus providing DMA transfers between devices coupled to different host bus bridges | |
| US5572703A (en) | Method and apparatus for snoop stretching using signals that convey snoop results | |
| US6021456A (en) | Method for communicating interrupt data structure in a multi-processor computer system | |
| EP0422103B1 (en) | I/o bus to system bus interface | |
| 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 | |
| JP2532191B2 (ja) | 複式バス・ア―キテクチャを有する計算システムに使用するデ―タ伝送の管理方法 | |
| JP2003518693A (ja) | クアド・ポンプ・バス・アーキテクチャおよびプロトコル | |
| JP2000235543A (ja) | 書込み動作順序付けバスブリッジ | |
| USRE40921E1 (en) | Mechanism for efficiently processing deferred order-dependent memory access transactions in a pipelined system | |
| KR100310399B1 (ko) | 프로세서 인터페이스 버스를 통해 데이터를 전달하기 위한 방법 및 장치 | |
| US5991855A (en) | Low latency memory read with concurrent pipe lined snoops | |
| JP3266470B2 (ja) | 強制順序で行う要求毎ライト・スルー・キャッシュを有するデータ処理システム | |
| US6418497B1 (en) | Method and system for interrupt handling using system pipelined packet transfers | |
| JP4499850B2 (ja) | データ整合性を保証する方法 | |
| US5923857A (en) | Method and apparatus for ordering writeback data transfers on a bus | |
| US6209068B1 (en) | Read line buffer and signaling protocol for processor | |
| 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 | |
| US5809534A (en) | Performing a write cycle to memory in a multi-processor system |
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 |