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
Application number
JP11166521A
Other languages
English (en)
Other versions
JP4499850B2 (ja
JP2000082012A5 (ja
Inventor
R Brigg William
ウィリアム・アール・ブリグ
Monish S Shah
モニシュ・エス・シャー
Thomas V Spencer
トマス・ヴィー・スペンサー
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JP2000082012A publication Critical patent/JP2000082012A/ja
Publication of JP2000082012A5 publication Critical patent/JP2000082012A5/ja
Application granted granted Critical
Publication of JP4499850B2 publication Critical patent/JP4499850B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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

(57)【要約】 (修正有) 【課題】I/Oチャネルとプロセッサの間のデータ整合性
を保証する。 【解決手段】システム・ソフトウェアは、DMA終了の通
知を受信すると、DMA_SYNCトランザクションを発行し、
SND信号をアサートする。トランザクションの発行に応
じて、各I/Oチャネル10は、終了したと報告されたDMA
シーケンスのDMAデータを含むそのキャッシュ内の修正
されたラインを、メモリにライトバックする。キャッシ
ュ内の関連するラインがメモリにライトバックされる
と、SND信号をデアサートして、DMA_SYNCトランザクシ
ョンの終了を知らせる。DMA_SYNCトランザクションは、
I/Oチャネルに一貫性を守るよう命令し、一貫性が保証
された後にのみ応答を返す。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、コンピュータシ
ステムに関連する。特に、この発明は、コンピュータシ
ステム内のI/Oチャネルとプロセッサとの間のデータ整
合性を保証する方法および装置に関連する。
【0002】
【従来の技術】先行技術のコンピュータシステムにおい
て、入力/出力(I/O)アダプタ(チャネルとも呼ばれる)
が、メモリに対し読取りおよび書込み操作を実施してき
た。この方法は、非効率的であった。従って、今日の先
行技術のI/Oアダプタは、ダイレクト・メモリ・アクセ
ス(DMA)トランザクションに関するシステムメモリ待ち
時間および帯域幅を改善するようにキャッシュを含む。
DMA要求を処理するとき、I/Oアダプタは、キャッシュが
更新されると要求が完了したものとみなす。キャッシュ
は一貫性を保たれる。ほとんどの場合、このプロトコル
は、受け入れ可能である。
【0003】しかし、Hewlett-Packard Company(Palo A
lto、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】特に、この発明の好ましい実施例は、Hewl
ett-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】特に、この発明の好ましい実施例は、Hewl
ett-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_SY
NCトランザクションを分割することができ、従ってシス
テムは、もはや厳密なパイプライン順序で動作しない。
他の報告手段も機能し、それは当業者にとって明らかで
あろう。
【0016】図1は、この発明に従うシステム・アーキ
テクチャのブロック概略図である。この発明は、単一バ
ス・システムで容易に実践されるが、この発明の好まし
い実施例は、2バス・アーキテクチャに関連して示され
る。
【0017】2バス・アーキテクチャで、2ポート・メ
モリ・コントローラ12が、第1のバス17aと第2のバス1
7bの間に配置される。それぞれのバスは、プロセッサ・
モジュール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コン
トローラ内のキャッシュに通される。キャッシュは、DM
A_SYNCトランザクションの要求を履行するため、ライト
バックされなければならないそれらのメモリ・ラインの
スナップショットをとる。キャッシュは、これらのメモ
リ・ラインがいつライトバックされたかを常に把握し、
それらが全てキャッシュから出るまで、それらをスナッ
プショットから取り去り、またはマークを外す。DMA_SY
NCトランザクションが完了すると、I/Oアダプタは、SND
信号をデアサートする(後述する)。
【0019】その後の読取りコード・トランザクション
が、要求されたライトバックからのデータを見つけると
き、モジュールは、DMA_SYNCのその部分が完了したとみ
なすことができる。
【0020】この発明は、トランザクションのスヌープ
(snoop:せんさくする)・フェーズでアサートされるSync
NotDone(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_SY
NCトランザクションがありえるので、それぞれのバス
が、DMA_SYNCトランザクションを始めることができる。
特定のバスから開始されたアクティブなDMA_SYNCトラン
ザクションがある間、そのバス上のプロセッサは監視
し、前のDMA_SYNCトランザクションが完了するまで新し
いDMA_SYNCトランザクションを送り出さない。それゆ
え、この発明の好ましい実施例は、2つの側波帯信号経
路、すなわち局所DMA_SYNCトランザクションのためのSN
D18a/18b、および遠隔DMA_SYNCトランザクションのため
のREMSND19a/19bを提供する。当業者であれば、この発
明は、単一バスシステムに容易に適用され、その場合RE
MSND信号経路は必要でないことが分かるであろう。
【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信号を含むDM
A_SYNCトランザクションを示すタイミング図である。図
3で、システムバス上のそれぞれの信号グループは、異
なるトランザクション・フェーズを取り扱う。この設計
は、トランザクションが重ね合わせられ、完全にパイプ
ライン化されることを可能にする。この発明の好ましい
実施例のバスは、アービトレーション、アドレス、デー
タ、および応答信号を含むいくつかの信号グループから
構成される。それぞれのグループは、バス・トランザク
ションが重ねられることを許しながら、独立に、他と並
行にその仕事を実施する。トランザクションは、パイプ
ライン化されたプロセッサ内の命令実行とほぼ同じよう
に、完全にパイプライン化することができる。
【0027】図3は、このパイプライン化がどのように
作用するかを示す。第1の信号グループは、アービトレ
ーション40を扱う。図3で、第1のトランザクション
(「A」)のためのアービトレーションは、サイクル1(t1)
で生じる。サイクル2の間、全てのプロセッサは、アー
ビトレーション結果を解析し、次のトランザクションの
ためのマスタであるものについて同意する。t3で、マス
タは、要求バス上のアドレスをアサートし(41)、次のサ
イクルに、補足情報が続く。この時までに、次のトラン
ザクション(「B」)のためのアービトレーションが、す
でにアービトレーション・バス上で進行中である。
【0028】一方で、バス装置をチェックして、それら
のキャッシュ内でアドレスがヒットするかどうか調べ
る。t7で、これらの装置は、スヌープ信号を使用して(4
4)ヒットを示し、その場合、データは、元のターゲット
ではなくスヌーピング装置によって返すことができる。
スヌープ・ヒットがない場合、ターゲット装置は、時間
t9で応答バスを使用して、このトランザクションがうま
く完了していることを示す(42)。そうであれば、データ
がデータバス上に転送され、同じサイクルに開始する。
【0029】この時までに、アービトレーション・バス
は、すでにトランザクションDに達していることに注意
されたい。全速力で、64バイトの読取りは、完了するの
に12サイクルかかるが、それらのサイクルのうち4サイ
クルの間だけデータバスを使用する。前進する他のバス
があるので、データバスを長い時間十分に使用すること
ができる。こうして、3つまたは4つのトランザクショ
ンが、同時に進行することができる。好ましいバスは、
同時に最高で12トランザクションを支援し、これは、装
置がバスを抑制して(throttle)、トランザクション待ち
時間を延長する場合に起きる。
【0030】この発明の好ましい実施例に従うシステム
は、異なる信号について、バス上のどのモジュールでも
信号をアサートすることができるOR結合されるプロトコ
ルを支援する。SND信号は、電気的にアクティブなロー
になり、任意のまたは全てのモジュールが、SND信号を
電気的にローの状態にドライブする。どのモジュールも
SND信号をロー・レベルにドライブしていないときだ
け、信号は電気的に高い状態をもつ。SND信号47(図3)
は、システムのOR結合能力を使用する。応答フェーズ
で、システムは、(データ・フェーズで)順序通り(in-or
der)のデータを供給することができ、または、システム
は、データを順序通りに供給することとは対照的に、遅
らせたり再試行することができる。
【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またはREMSN
Dのどちらの信号が後からこうようとも、完了したとい
う結果を発行プロセッサが最終的に認めるときを判断す
る。プロセッサは、メモリへのコード読取りを発行し始
めることができる。
【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シーケンスに対するD
MAデータを含むことができる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_SY
NCトランザクションが開始されるときを示すように上記
報告手段を通してアサートされ、上記DMA_SYNCトランザ
クションが完了するときデアサートされる、上記(12)に
記載の装置。
【0057】(19)上記プロセッサは、上記DMA_SYNC
トランザクションを発行し、それに応答して、上記I/O
アダプタは、必要に応じて少なくとも1つのライトバッ
クを発行し、上記ライトバックが、上記メモリが上記DM
A_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コントローラ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 モニシュ・エス・シャー アメリカ合衆国80526コロラド州フォー ト・コリンズ、ヒンズデイル・ドライヴ 1025 (72)発明者 トマス・ヴィー・スペンサー アメリカ合衆国80525コロラド州フォー ト・コリンズ、モッキンバード・ドライヴ 8031

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】メモリをもつコンピュータシステムにおい
    て、I/Oチャネルとプロセッサの間のデータ整合性を保
    証する方法であって、 DMA完了の通知を受け取ったとき、上記コンピュータシ
    ステム内の全てのI/Oチャネルに対しDMA_SYNCトランザ
    クションをブロードキャストするステップと、 上記DMA_SYNCトランザクションが完了したことを示す報
    告手段を提供するステップと、を含み、上記DMA_SYNCト
    ランザクションは、上記I/Oチャネルに一貫性を守るよ
    う命令し、一貫性が保証された後でのみ応答を返す、デ
    ータ整合性を保証する方法。
JP16652199A 1998-06-29 1999-06-14 データ整合性を保証する方法 Expired - Fee Related JP4499850B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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&#39;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