JP3120382B2 - コンピュータによる三路転送動作 - Google Patents

コンピュータによる三路転送動作

Info

Publication number
JP3120382B2
JP3120382B2 JP01510702A JP51070289A JP3120382B2 JP 3120382 B2 JP3120382 B2 JP 3120382B2 JP 01510702 A JP01510702 A JP 01510702A JP 51070289 A JP51070289 A JP 51070289A JP 3120382 B2 JP3120382 B2 JP 3120382B2
Authority
JP
Japan
Prior art keywords
data
address
bus
cache
write
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 - Lifetime
Application number
JP01510702A
Other languages
English (en)
Other versions
JPH04502827A (ja
Inventor
ソロモン,ダグラス
ジェルモラク,トーマス・アラン
Original Assignee
シリコン・グラフィクス・インコーポレーテッド
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 シリコン・グラフィクス・インコーポレーテッド filed Critical シリコン・グラフィクス・インコーポレーテッド
Publication of JPH04502827A publication Critical patent/JPH04502827A/ja
Application granted granted Critical
Publication of JP3120382B2 publication Critical patent/JP3120382B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はディジタル・コンピュータにおけるディジタ
ル情報の効率的な転送に関する。特に、本発明は中央処
理装置からバス(母線)への、記憶装置からバス(母
線)への、又、バス(母線)から図形サブシステムを含
むサブシステムへのディジタル情報の転送に関する。
〔従来の技術〕
ディジタル・コンピュータは、記憶装置から図形サブ
システムを含むコンピュータの種々のサブシステムへ
と、ディジタル情報を転送するための方法とシステムを
従来から利用してきた。図形サブシステムは、部分的に
コンピュータのワークステーションすなわち端末機のデ
ィスプレイを制御する。
従来の構造の一つでは、図形情報は、先ずコンピュー
タの主記憶装置(すなわち、ホスト・メモリ)の部分に
ダウンロードされた。従来型のコンピュータは、ホスト
・プロセッサの他に専用ディスプレイ・リスト・プロセ
ッサを備えていた。このディスプレイ・リスト・プロセ
ッサは次に、図形情報をホスト・メモリからディスプレ
イ・リスト・メモリへと転送した。次にディスプレイ・
リスト・プロセッサは、ディスプレイ・リストを継続的
に走査することによって図形情報をディスプレイ・リス
ト・メモリから図形サブシステムへと伝送した。
この従来型の構造の欠点の1つは、1度の転送ではな
く、2度の転送、すなわちホスト・メモリからディスプ
レイ・リスト・メモリへの1度目の転送と、ディスプレ
イ・リスト・メモリから図形サブシステムへの2度目の
転送とが必要であったことである。
この従来型の構造の別の欠点は、ホスト・プロセッサ
とホスト・メモリの他に特別のハードウェア、すなわち
ディスプレイ・リスト・プロセッサとディスプレイ・リ
スト・メモリが含まれていることであった。
別の従来型の構造では、専用のディスプレイ・リスト
・プロセッサと専用のディスプレイ・リスト・メモリは
ないが、その代わりに、図形情報は、主(すなわちホス
ト)メモリに記憶され、ホスト・プロセッサによって主
記憶装置から図形サブシステムに転送された。
この別の従来型の構造の欠点の1つは、プロセッサの
処理時間の多くを、図形情報をメモリから図形サブシス
テムに転送するために費やしてしまうことであった。そ
れによってプロセッサによる他の動作の実行が遅れた。
他の欠点は、図形サブシステムがデータを受信できる速
度にプロセッサが追いつかないことであった。言い換え
ると、転送は、可能な筈の速度に比べてそれ程迅速では
なかった。
〔発明が解決しようとする課題と、課題を解決するための手段〕
コンピュータ・記憶装置から図形サブシステムを含む
コンピュータのサブシステムへとディジタル情報を転送
するための公知の方法およびシステムにおける前記の限
界に鑑み、本発明の課題の1つは、コンピュータの効率
を高めるため、図形サブシステムを含むコンピュータの
サブシステムにデータを転送する効率的な手段を提供す
ることである。
本発明の別の課題は、中央処理装置(“CPU")の制御
の下で、ディジタル情報をコンピュータのサブシステム
に転送する際に、CPUが転送のために費やす時間を最小
限にして、CPUがその転送以外の他のコンピュータ動作
をより多くの時間にわたって行えるようにする方法を提
供することである。従って本発明の課題は、転送がCPU
の処理時間を占領することを避けることである。
本発明のもう一つの課題は、ディジタル情報をコンピ
ュータのサブシステムに転送する際に、その転送に必要
なコンピュータ・ハードウェアの量を最小限にできる方
法を提供することである。
本発明の別の課題は、コンピュータがディジタル情報
をサブシステムに伝送する速度が、サブシステムがディ
ジタル情報を受信できる最大速度とほぼ適合するように
充分な高速度であるように、ディジタル情報をコンピュ
ータのサブシステムに転送するための方法を提供するこ
とである。
本発明の別の課題は、2つ又はそれ以上のデータ語が
同時に転送される、ディジタル情報をコンピュータのサ
ブシステムに転送するための方法を提供することであ
る。
本発明の別の課題は、ディジタル情報をキャッシュ準
拠のマルチプロセッサ・コンピュータのサブシステムに
転送する際に、そのデータ伝送が、キャッシュの2以上
のラインにわたるデータについても可能となる方法を提
供することである。
本発明の更に別の課題は、転送中に割り込みが発生し
たとき、割り込みの後でコンピュータが割り込み前の状
態に復元可能であるようにディジタル情報をコンピュー
タのサブシステムに転送する方法を提供することであ
る。
本発明のこれらの課題は、ディジタル・コンピュータ
内でディジタル情報の三路転送を実行する方法と装置と
によって達成される。ディジタルコンピュータはCPU
と、CPUに結合されたデコード回路と、デコード回路に
結合されたバスと、バスに結合されたメモリと、バスに
結合されたサブシステムとを備えている。ディジタル情
報には、データ・ブロックが含まれ、そのデータ・ブロ
ックには、(1)当該データ・ブロックの第1の語のア
ドレスである開始アドレスと、(2)当該データ・ブロ
ック内の語数を表す語カウントとが含まれている。書き
込み動作用のトリガ・アドレスが、CPUからデコード回
路に伝送される。トリガ・アドレスはデコードされ、そ
して、後続の書き込み動作によってメモリを変更するこ
とが抑止される。書き込み動作の開始アドレスが、CPU
からバスに伝送される。次に開始アドレスは、バスから
メモリへ、かつサブシステムへと伝送される。語カウン
トを含むデータがCPUからバスへと伝送される。2つ、
又はそれ以上の一連のデータ語がメモリからバスへと伝
送される。一連のデータ語の語数は語カウントよりも多
いか、それに等しい。それらの一連のデータ語のうちの
1つのデータ語は、メモリの開始アドレスの位置にあ
る。一連のデータ語はバスからサブシステムに伝送され
る。このようにしてデータ・ブロックがバスを経てメモ
リから直接サブシステムへと転送される。
本発明の前述の課題は、更に、次のようなディジタル
・コンピュータ内でディジタル情報の三路転送を実行す
る方法と装置によって達成される。ディジタル・コンピ
ュータはCPUと、CPUに結合されたデコード回路と、デコ
ード回路に結合されたバスと、バスに結合されたメモリ
と、バスに結合されたサブシステムとを備えている。デ
ィジタル情報には、(1)データ・ブロックの第1の語
のアドレスである開始アドレスと、(2)データ・ブロ
ック内の最後の語のアドレスである終了アドレスと、
(3)データブロック内の語数を表す語カウントとが含
まれている。書き込み動作のためのトリガ・アドレス
が、CPUからデコード回路に伝送される。トリガ・アド
レスはデコードされ、そして、後続の書き込み動作によ
ってメモリを変更することが抑止される。書き込み動作
のための第1の開始アドレスが、CPUからデコード回路
へと伝送される。第1の開始アドレスのビットがタグ
(標識)ビットとして記憶される。タグ(標識)ビット
は、開始アドレス内でのタグ(標識)ビットの位置を表
す配列順を有している。第1の開始アドレスはデコード
回路からバスに伝送される。第1の開始アドレスは、バ
スから、メモリと、サブシステムへと伝送される。語カ
ウントを含むデータはバスらサブシステムへと伝送され
る。N個のデータ語の第1シークェンスはメモリからバ
スに伝送される。Nは1よりも大きく、語カウントより
も大きいか、これと等しい整数である。N個のデータ語
の第1シークェンスの1つのデータ語がメモリ内の第1
の開始アドレスの位置にある。N個のデータ語の第1の
シークェンスはバスからサブシステムへと転送される。
語カウントはNで除算され、1が減算され、その結果に
端数があれば、その結果は次の最大整数に丸められて、
整数Xが生成される。Xが0以上の正の整数である場合
は、前記のステップがX回だけ繰り返される。前記ステ
ップを繰り返す前に、(1)第1の開始アドレスがNだ
け増分されて第2の開始アドレスが生成され、(2)第
1の開始アドレスが第2の開始アドレスになり、(3)
タグ(標識)ビットがクリアされ、そして、(4)N個
のデータ語の第1のシークェンスが、連続する一連の
(N個のデータ語の)シークェンスのうちの次の(N個
のデータ個の)シークェンスになり、連続する一連のシ
ークェンスについての操作は、前記ステップがX回反復
されると、終わることになる。これらのステップの終了
後、書き込み動作の終了アドレスがCPUからデコード回
路に伝送される。タグ(標識)ビットが、それと同じ配
列順を有する終了アドレスのビットと比較される。2つ
のビットが同一ではない場合は、(1)終了アドレスが
デコード回路からバスに伝送され、(2)終了アドレス
がバスからメモリ及びサブシステムに伝送され、(3)
語カウントを含むデータがCPUからバスに伝送され、
(4)語カウントを含むデータがバスからサブシステム
に伝送され、(5)N個のデータ語の終了シークェンス
がメモリからバスに伝送され(ここで、データ語の終了
シークェンスのデータ語の1つはメモリの終了アドレス
の位置にある)、そして、(6)Nデータ語の終了シー
クェンスがバスからサブシステムへと転送される。デー
タ・ブロックは、このようにしてバスを経てメモリから
サブシステムへと直接に転送される。
本発明のその他の課題、特徴及び利点は添付図面を参
照した本発明の以下の詳細な説明によって明らかにされ
る。
〔図面の簡単な説明〕
添付図面は本発明を例示するものであり、本発明は添
付図面に限定されるものではない。図面において、同一
の参照符号は同一の素子を示す。
図1は、2つのCPUと、デコード回路と、バスと、メ
モリと、図形サブシステムとを備えたディジタル・コン
ピュータの体系の構成図である。
図2は、種々の語カウントを有するデータ・ブロック
の図である。
図3は、ディジタル情報の三路転送のタイミング図で
ある。
〔発明の詳細な説明〕
図面を参照すると、図1は、グラフィック能力を増進
させたキャッシュ準拠のマルチプロセッサ・ディジタル
・コンピュータのアーキテクチャを構成する回路10の構
成図である。図1の左側から見ると、CPU20は、カリフ
ォルニア州、サニーベルのMIPコンピュータ社から市販
されている32ビットのR3000型のRISC(命令セット簡略
化)コンピュータのマイクロプロセッサである。各々の
データ語は32ビットから成っている。命令キャッシュ22
がCPU20に結合され、データ・キャッシュ24が同様にCPU
20に結合されている。命令キャッシュ22及びデータ・キ
ャッシュ24は、プロセッサ20と主記憶装置80との間に配
置された小型の高速メモリとして機能する。命令キャッ
シュ22とデータ・キャッシュ24は、各々ダイレクト・マ
ッピング(直接マップ)をされている。キャッシュ22お
よびキャッシュ24がダイレクト・マッピング(直接マッ
プ)形であるということは、データが主記憶装置80の何
処からキャッシュ22と24に入るのかをCPU20が認識でき
ることを意味する。このようなデュアル・キャッシュ方
式によって、命令とデータとは、ダイレクト・マッピン
グ方式としても、同じキャッシュ領域で競合しないこと
が保証される。命令キャッシュとデータ・キャッシュが
別個であることによって、命令の帯域幅が拡大する。回
路10は更に、書き込みバッファ30とバス70との間に結合
された第2のダイレクト・マッピング(直接マップ)さ
れるデータ・キャッシュ40を備えている。図形サブルー
チンは、CPU20の命令キャッシュ22およびデータ・キャ
ッシュ24にあり、又、CPU100の命令キャッシュ102およ
びデータ・キャッシュ104にある。
本発明の好ましい実施例では、回路10内でのディジタ
ル情報の三路転送が行われる。三路転送動作において、
開始アドレスが、CPU20からバス70を経て、記憶装置80
に伝送される。開始アドレスは、CPU20からバス70を経
て、図形サブシステム90にも伝送される。そして、デー
タ・ブロック(最初の語のアドレスである開始アドレス
と、データ・ブロック内の語数を表す語カウントとを有
するデータ・ブロック)が、記憶装置80又はデータ・キ
ャッシュ40からバス70を経て図形サブシステム90へと、
直接に伝送される。図形サブシステム90はそのようにし
て伝送されたデータ・ブロックを利用する。
データ・キャッシュ24はライトスルー・キャッシュで
ある。データ・キャッシュ24のようなライトスルー・キ
ャッシュの場合、CPU20は、常に、データ・キャッシュ
(すなわちデータ・キャッシュ24)と主記憶装置80の双
方に、書き込みを行う。データ・キャッシュ24はライト
スルーであるから、主記憶装置90は、データ・キャッシ
ュ24中のすべてのデータの最新のコピーを、常に有して
いる。ライトスルー・キャッシュのアーキテクチャで
は、CPUは、常にキャッシュをミスしたようになり、キ
ャッシュ(すなわちキャッシュ24)と記憶装置80の双方
への書き込みを行う。キャッシュ40へのタグ(標識)も
更新される。
しかし、第2レベルのデータ・キャッシュ40はライト
バック・キャッシュである。ライト・バック・キャッシ
ュ方式では、キャッシュ40が、記憶装置80内の同じアド
レス位置にあるデータ語よりも、より新しいバージョン
のデータ語を有することあり得る。ライトバック・キャ
ッシュ方式では、CPU20はキャッシュ40だけに書き込み
を行い、キャッシュ40と記憶装置80の双方に同時には書
き込みをしない。言い換えると、ライトバック・キャッ
シュ方式では、キャッシュ40が、変更された最新のデー
タ語の専有コピーを有することがあり得る。CPU20は、
同じ記憶域に書込みを2回行う場合には、記憶装置80に
は一度だけ書き込めぱよいので、ライトバック・キャッ
シュ方式ではバスの通信量が最小限になる。
書き込みバッファ30は、深さ4段の書き込みバッファ
である。すなわち、書き込みバッファ30は、各メモリ場
所に4語のディジタル情報を保持することができる。書
き込みバッファ30は、更に、先入れ先出し(“FIFO")
書き込みバッファである。書き込みバッファ30は線82を
経て第2レベルのデータ・キャッシュ40に結合されてい
る。書き込みバッファ30は更に線34を経てアドレス・デ
コーダ50に結合されている。
書き込みバッファ30は線26を経てCPU20とデータ・キ
ャッシュ24に結合されている。書き込みバッファ30によ
ってライトスルー・キャッシュ24は、書き込みサイクル
(周期)を完了するために速度が遅い主記憶装置80を待
つ必要がなくなる。CPU20は、(第2レベルのデータ・
キャッシュ40又は記憶装置80に)書き込みたいディジタ
ル情報を、書き込みバッファ30にダンプする。次いで、
書き込みバッファ30は、第2レベルのデータ・キャッシ
ュ40および主記憶装置80への比較的遅い速度での書き込
みを行うが、その書き込み中には、CPU20は、別のコン
ピュータ動作を行える。本発明の好ましい実施例では、
CPU20はディジタル情報を比較的迅速に転送する25MHzの
マイクロプロセッサである。このように書き込みバッフ
ァ30は、CPU20が別のコンピュータ動作に移れるよう
に、CPU20からのディジタル情報を保持する。
CPU20は読出し又は書き込み動作を実行する。読出し
動作(すなわちロード動作)では、CPU20は、キャッシ
ュ22,24及び40、又は記憶装置80から、命令とアドレス
及びデータを得ることができる。CPU20の読出し動作中
にキャッシュ・ミスが生じると、CPU20は、命令,アド
レス,データを得るために、キャッシュ22,24又は40で
はなく、記憶装置80に向かうことになる。読出し動作
中、CPU20はデータを待機しなければならない。一方、
書き込み動作(すなわち記憶動作)中には、CPU20はア
ドレス及びデータをキャッシュ24及び40、又は記憶装置
80に伝送する。CPU20が書き込み動作中にキャッシュ24
又は40を“ミスする”と、キャッシュ22が、アドレス及
びデータをキャッシュ24及び40の双方に伝送する。
CPU20は、線26でアドレス及びデータを伝送し、受信
する。書き込みバッファ30は、線32でアドレス及びデー
タを伝送し、受信する。第2レベルのデータ・キャッシ
ュ40は、線44でアドレス及びデータを伝送し、受信す
る。
図1の右側を参照すると、CPU100は、同じくカリフォ
ルニア州、サニーベルのMIPコンピュータ社から市販さ
れている32ビットのR3000マイクロプロセッサである。
図1の右側の回路は図1の左側の回路と同様である。命
令キキッシュ102はCPU100に結合されている。データ・
キャッシュ104もCPU100に結合されている。命令キャッ
シュ102とデータキャッシュ104は、双方ともダイレクト
・マッピング(直接マップ)されている。データ・キャ
ッシュ104は、ライトスルー・データ・キャッシュであ
る。CPU100は線106を経てアドレス及ぴデータを書き込
みバッファ110に伝送する。書き込みバッファ110は、同
様にFIFOで深さ4段の書き込みバッファである。書き込
みバッファ110は、線112を経てアドレス及びデータを第
2レベルのデータ・キャッシュ120へと伝送する。書き
込みバッファ110は更に線114を経てアドレス・デコーダ
130に結合されている。第2レベルのデータ・キャッシ
ュ120は、ダイレクト・マッピング(直接マップ)のラ
イトバック・データ・キャッシュである。第2レベルの
データ・キャッシュ120は、線124を経てアドレス及びデ
ータをバス70へと伝送する。第2レベルのデータ・キャ
ッシュ120は更に線122を経てアドレス・デコーダ130に
結合されている。
図1の下部を参照すると、アドレス及びデータは、線
82を介して記憶装置80とバス70の間で通信される。アド
レス及びデータは、線92を介して図形サブシステム90と
バス70の間を通信される。
本発明の別の実施例では、バス70,記憶装置80,図形サ
ブシステム90を共用する追加のプロセッサを備えること
ができる。例えば、2つのマイクロプロセッサではな
く、4つのマイクロプロセッサでバス70を共用すること
ができる。
更に、本発明のもう一つの別の実施例では、バス70に
複数のプロセッサではなく、単一のプロセッサを結合す
ることもできよう。このような別の実施例では、CPU20
および図1の左下の回路はそのような実施例の回路の一
部であるが、CPU100は回路の一部ではなくなる。
本発明の更に別の実施例では、本発明の回路は書き込
みバッファもしくは第2レベルのデータ・キャッシ40,1
20を備えていない。言い換えると、書き込みバッファ30
及び110、及びデータ・キャッシュ40及び120は備えられ
ていない。しかし、ディジタル・コンピュータは、CPU
と、CPUに結合されたデコード回路と、CPUに結合された
バスと、バスに結合されたメモリと、バスに結合された
サブシステムとを備えている。
回路10に複数のデータ・キャッシュが備えられている
図1の好ましい実施例に戻ると、キャッシュの一貫性、
もしくはキャッシュのコヒレンシを保持する手段がなけ
ればならない。キャッシュの一貫性、もしくはキャッシ
ュのコヒレンシが保持されていれば、CPU20がデータ・
キャッシュ40に書き込みをした場合にも、CPU100が、キ
ャッシュ40に書き込まれた同じデータをアクセスできる
ことが保証される。
発明の好ましい実施例におけるキャッシュ・コヒレン
シの保持手法の一部として、2つの状態ビットが使用さ
れる。2つの状態ビットにより、次の4つの可能な状態
を示すことができる。
(1)妥当状態(バリッド) (2)不当状態(インバリッド) (3)共用状態(シェアード) (4)汚染状態(ダーティ) である。
本発明の好ましい実施例では、状態ビットは、(キャ
ッシュにおける)データ・ラインと関連している。好ま
しい実施例では、(キャッシュのマッピングの単位に対
応する)データ・ライン(ないしデータのライン)は、
4つのデータ語から成っている。データ・ラインを構成
するデータ語のうちのいずれかのデータ語を変更するこ
とは、データ・ラインが変更されたことを意味する。
妥当状態(バリッド)は、メモリからの特定のデータ
・ラインが、1つのデータ・キャッシュだけにしかな
く、且つ、そのデータ・ラインが変更されていないこと
を示す。言い換えると、変更されていないデータ・ライ
ンは、メモリおよびデータ・キャッシュの双方におい
て、同一である。例えば、変更されていないデータ・ラ
インはデータ・キャッシュ40及び記憶装置80の双方に現
れる。
不当状態(インバリッド)は、キャッシュ内にデータ
がないことを意味する。そこでキャッシュは不当状態へ
と初期設定される。不当状態は、また、“ミス”と同じ
状態であることを意味する。
共用状態(シェアード)は、特定のデータ・ラインが
おそらく1つ以上のキャッシュ内にあり、未だ変更され
ていないことを示す。例えば、データ・ラインは、デー
タ・キャッシュ40とデータ・キャッシュ120の双方にあ
る。
汚染状態(ダーティ)は、特定のデータ・ラインのコ
ピーが1つしかなく、それが最新のコピーであり、その
特定のデータを有するのはそのキャッシュだけであり、
かつ、記憶装置80にはその特定のデータが含まれていな
いことを示す。言い換えると、キャッシュ40に対応する
状態ビットが、汚染状態(ダーティ)を示すようにセッ
トされていると、キャッシュ40は、その特定のデータ・
ラインの専有コピーを有することを意味する。すなわ
ち、その特定のデータ・ラインは、回路10における他の
データ・キャッシュ又は記憶装置80では発見できないこ
とを意味する。このように、状態ビットによってデータ
・キャッシュ40の汚染状態が示されると、データ・キャ
ッシュ120にも、記憶装置80にも、その特定のデータ・
ラインのコピーは存在しない、言うことを意味する。
バス70が関係する全ての動作では、データ・キャッシ
ュ40とデータ・キャッシュ120、及び、記憶装置80の関
与が必要となる。このように、キャッシュ40とキャッシ
ュ120は、バス70上のアドレスを探索するという意味
で、何れも、“スヌービング”キャッシュである。
キャッシュの状態を例にあげて、キャッシュの一貫性
のプロトコルを説明する。データ・キャッシュ40とデー
タ・キャッシュ120は、先ず、不当状態に設定される。
次に、データ・キャッシュ40が妥当状態になる。データ
・キャッシュ40が妥当状態になった後、CPU100が主記憶
装置80から読出すことを要求する。それでキャッシュ40
とキャッシュ120の両方が共用状態になる。
ここで例えば、CPU20が、データ・キャッシュ40に対
する同じアドレスでの書き込みを要求すると想定してみ
る。言い換えると、CPU20が、共用のデータ・ラインへ
の書き込みを要求したと想定する。CPU20は、それに応
じてバス70を経てのバス動作を行って、当該データ・ラ
インについては、データ・キャッシュ120が、共用状態
から不当状態になることを告げる。このようにしてキャ
ッシュ120は不当状態になる。それで、データ・キャッ
シュ40は汚染状態になる。
このように、その特定のデータ・ラインの汚染状態
(ダーティ)コピーが、データ・キャッシュ40内にはあ
るが、データ・キャッシュ120内にも主記憶装置80内に
もないことになる。もし、CPU100が、その特定の汚染状
態のデータ・ラインを読み出したいと要求すると、当該
データは、主記憶装置80からではなく、データ・キャッ
シュ40から出てくることになる。その理由は、データ・
キャッシュ40が、その変更されたデータ・ラインの専有
コピーを有しているからである。CPU100によってそのデ
ータが読み出されると、データはキャッシュ40からバス
70を経てキャッシュ120へと向かう。そこでデータ・キ
ャッシュ40とデータ・キャッシュ120が共用状態に戻
る。
三路転送動作中にキャッシュの一貫性プロトコルの状
態ビットにより、例えば転送すべきデータ・ラインの専
有コピーをデータ・キャッシュ40が有していること(す
なわち汚染状態のコピーをキャッシュ40が有しているこ
と)が示されると、データ・ラインは、記憶装置80から
ではなく、キャッシュ40から、バス70を経て図形サブシ
ステム90へと転送される。同様に、三路転送動作中に転
送すべきデータの変更された専有コピーをデータ・キャ
ッシュ120が有している(すなわち汚染状態のコピーを
キャッシュ120が有している)ならば、データは、記憶
装置80からではなく、キャッシュ120から図形サブシス
テム90へと転送される。三路転送動作中にキャッシュの
一貫性プロトコルが考慮されることによって、データ語
の古い、以前のコピーではなく、データ語のコピーのう
ちで最も新たに変更されたコピーだけが、三路転送動作
の一部として転送されることが保証される。
バス70は64ビットバスである。バス70は、アドレス線
及びデータ線を個別に含んでいる。CPU20とCPU100は、
別の時間にバス70をアクセスすることができ、従ってバ
ス70は多重化されたバスである。三路転送動作は特殊な
バス動作である。
本発明の好ましい実施例では、各キャッシュ転送は4
語の伝送である。このようにバス70を用いる転送では、
アドレスそれぞれ毎に、4つのデータ語(1語32ビット
として128ビット)が転送される。従って、単一のバス
・サイクル(周期)で単一のデータ語が転送されるので
はなく、単一のバス・サイクルで4つのデータ語が転送
される。単一のメモリ読み出し又は書き込みの動作が行
われる毎に、同時に4語が転送される。CPU20が4語を
必要としているか、又は4語以下の語を必要としている
かに拘わらず、同時に4語が転送される。例えば、CPU2
0が4語ではなく3語を必要としている場合でも、4語
未満のデータが決して転送されないから、CPU20は4語
を受信することになる。
記憶装置80とキャッシュ22,24,40,102,104及び120
は、キャッシュのワード・バウンダリ(境界)を基礎と
して編成されている。キャッシュのワード・バウンダリ
301,302,304,306及び307が、図2に示されている。デー
タは、“データ”と表記された段の下に示され、アドレ
スは“アドレス”と表記された段の下に示されている。
キャッシュのワード・バウンダリ301,302,304,306及び3
07は、データを4データ語の群へと編成する。例えば、
バウンダリ302とバウンダリ304の間には4語がある。こ
のように、バウンダリ301,302,304,306及び307のそれぞ
れは、4語の境界である。
図1に示されるように、図形サブシステム90は、線92
を経てバス70に結合されている。本発明の好ましい実施
例では、図形サブシステム90は、ディジタル・コンピュ
ータのための、図形情報の変換、レンダリング及びディ
スプレイを処理する。これらの動作は、パイプラインの
“VLSI"プロセッサ、並列有限状態プロセッサ、高速記
憶装置及び32ビット・マイクロプロセッサ(全て図示せ
ず)を利用して局部的に実行される。図形サブシステム
90は、幾何学サブシステム(図示せず)、レンダリング
・サブシステム(図示せず)、及び、ディスプレイ・サ
ブシステム(図示せず)を備えている。図形管理ボード
(図示せず)はレンダリング・サブシステムの一部であ
り、このレンダリング・サブシステムは図形サブシステ
ム90の一部である。図形管理ボードは、マイクロプロセ
ッサ(図示せず)と局部記憶装置(図示せず)とを備え
ている。図形管理ボードのマイクロプロセッサは、回路
10のマイクロプロセッサ20及び100と通信する。図形サ
ブシステム90の図形管理ボードも、図形サブシステム90
内の幾何学的なパイプラインの活動を監視する。
アドレス・デコーダ50は、線34を経て書き込みバッフ
ァ30に結合されている。アドレス・デコーダ50は、書き
込みバッファ30内にあるアドレスをデコードするデコー
ダ回路を含んでいる。アドレス・デコーダ50から得られ
た情報は、バス70の要求を行うか否かの決定に使用さ
れ、読み出し,書き込み,又は三路転送動作のどれを行
うかを決定するためにも利用され、データ・キャッシュ
40に対して何を行うかの決定に利用される。
アドレス・デコーダ50は、線42を経てデータ・キャッ
シュ40に信号を伝送する。アドレス・デコーダ50は、線
52を介してデコード又は状態ビットをレジスタ60に送り
出す。状態又はデコード・ビットはレジスタ60内に記憶
することができる。状態又はデコード・ビットは、三路
転送ビット又は単に三路ビットとも言われる。線54,56
及び58によって、レジスタ60はアドレス・デコーダ50に
結合される。線54,56及び58は、レジスタ60が三路転送
ビットをレジスタ50に伝送する手段を提供する。
三路転送ビットには、(1)開始アドレス・トリガ・
ビット、(2)終了アドレス・トリガ・ビット、及び、
(3)タグ(標識)ビットが、含まれる。本発明の好ま
しい実施例では、タグ(標識)ビツトは、三路転送動作
と関連する開始アドレスの5番目のビットである。言い
換えると、タグ(標識)ビットは、開始アドレス(A0,A
2,・・,A4,・・)のA4ビットである。
開始アドレス・トリガ・ビット、終了アドレス・トリ
ガ・ビット、及びタグ(標識)ビットは、アドレス・デ
コーダ50からを経てレジスタ60へと伝送されて記憶され
る。レジスタ60に記憶されたビットは、クリヤされてリ
セットされることもできる。アドレス・デコーダ50は、
更に書き込みバッファ30内の終了アドレスのビットをサ
ンプル(標本抽出)し、そのビットを記憶をするために
線52を経てレジスタ60に伝送することができる。本発明
の好ましい実施例では、終了アドレスの5番目のビット
がサンプル(標本抽出)され、保持される。言い換える
と、終了アドレスのA4ビットがサンプル(標本抽出)さ
れ、保存される。
アドレス・デコーダ50により供給される開始アドレス
・トリガ・ビットは、三路転送動作中に更に書き込みが
行われることを抑止するために使用される。開始アドレ
ス・トリガ・ビットは更に、次の書き込み動作が開始ア
ドレスへの書き込みとなることを指示する。アドレス・
デコーダ50は、開始アドレスへの書き込みがあると、直
ちに終了アドレス・トリガ・ビットを生成する。終了ア
ドレス・トリガ・ビットは、次の書き込み動作が終了ア
ドレスへの書き込みとなることを指示する。
図1の右側のアドレス・デコーダ130及びレジスタ140
は、アドレス・デコーダ50及びレジスタ60とそれぞれ同
様の機能を果たす。アドレス・デコーダ130は、線114を
経て書き込みバッファ110から伝送されるアドレスをデ
コードする。アドレス・デコーダ130は、線122を経てデ
ータ・キャッシュ120に制御信号を伝送する。アドレス
・デコーダ130は、三路ビット(すなわちデコード又は
状態ビット)を、記憶をするため線132を経てレジスタ1
40に伝送する。三路ビットには、開始アドレス・トリガ
・ビット、終了アドレス・トリガ・ビット、タグ(標
識)ビット、及び、タグ(標識)ビットと同じ配列順の
終了アドレスのビットが含まれている。レジスタ140は
クリヤされることができ、レジスタ140に記憶された三
路ビットをリセットできる。レジスタ140は、線134,136
および138を経てアドレス・デコーダ130に結合されてい
る。このようにして、レジスタ140の内容は、線134,186
及び138を経てアドレス・デコーダ130に伝送される。
プログラム可能なアレイ論理素子(“PAL")150は、
ディジタル・コンピュータの回路10のための制御論理を
備えている。PAL150は、線152を介して入力信号を受
け、線154を経て制御信号を発信する。PAL160も回路10
のための制御論理を備えている。PAL160は、線162を経
て入力を受け、線164を経て制御信号を発信する。
PAL150及び160は、バス70のサイクル(周期)の全て
を制御する。PAL150及び160は、バス70がリクエストさ
れているか否かを判定する。PAL150及ぴ160は、読み出
し/書き込み動作が行われるべきか、又は三路転送動作
が行われるべきかを最終的に決定する。PAL150及び160
は、三路転送動作を監視する。PAL150及び160は、書き
込み動作を、三路転送動作中に、抑止すべきかどうかを
決定する。PAL150及び160は、レジスタ60及び140内の三
路ビットの状態を監視して、制御の決定を下すために三
路ビットを受ける。PAL150及び160は、割込みがあるか
どうか、及び三路転送動作中に回路10がどの段階にある
かに応じて、三路ビットが確実に保存、復元またはクリ
ヤされるようにする。PAL150及び160は、回路10の大部
分を通るアドレスとデータの流れ方向を制御するトラン
シーバ(図示せず)に制御信号を送る。
本発明の好ましい実施例では、PAL150及び160は、フ
リップ−フロップ、状態機械(ステートマシン)及び論
理ゲートから成っている。本発明の別の実施例では、PA
L150及び160による制御はマイクロコード化されてい
る。PAL150及び160をプログラム、又はマイクロコード
化するために用いられる論理はディジタル情報の三路転
送を行うためにここに記載する方法に従う。
本発明の三路転送動作によって、データを図形サブシ
ステム90の図形管理ボード(図示せず)に転送する効率
のよい手段が得られる。
本発明の好ましい実施例では、ディジタル・コンピュ
ータのディスプレイに図形画像をディスプレイするには
多角形タイリングが用いられる。多角形タイリングで
は、画像を複数個の比較的小さいポリゴンで構成する。
このような多角形の各々の座標は、図形サブシステム90
の図形パイプラインで受領できるように、バス70から図
形サブシステム90へと伝送されなければならない。各多
角形の各々の頂点には、X,Y及びZの空間成分と、R,G,B
(すなわち赤、緑、青)のカラー・コードが関連づけら
れる。このように、各多角形の各頂点は、X語、Y語、
Z語、R語、G語及びB語を有しており、これらの語
は、線70を経て図形サブシステム90に伝送されなければ
ならない。これらの語は各々、浮動小数点の数値であ
る。6つの語が各頂点と関連づけられており、多角形に
は通常4つの頂点があると想定すると、多角形毎に24の
語があることになる。デイスプレイされる各画像が多く
の多角形から構成されることを想起すると、図形サブシ
ステム90には多数のデータ語が伝送されなければならな
い。更に、このような語は図形サブシステム90の性能を
最適化するため充分な高速度で図形サブシステム90に伝
送されなければならない。
三路転送動作中にデータ・ブロックは、(1)主記憶
装置80、又は(2)キャッシュ0又はキャッシュ120
(キャッシュ40又はキャッシュ120がデータの専有コピ
ーを有している場合)のいずれかから、線70を経て図形
サブシステム90に転送される。転送されるデータ・ブロ
ックは、(1)データ・ブロック内の最初の語のアドレ
スである開始アドレスと、(2)データ・ブロック内の
最後の語のアドレスである終了アドレスと、(3)デー
タ・ブロック内の語数を表す語カウントとを有してい
る。
図2は三路転送動作の一部として転送可能であるデー
タ・ブロックを例示している。図2の各“X"は、バス70
を経て転送されるデータ・ブロックの語を図示してい
る。前述のとおり、記憶装置80及びキャッシュ40及び12
0は、図2の301,302,304,306及び307のようなキャッシ
ュのバウンダリにより編成されている。キャッシュのバ
ウンダリは、4つのデータ語づつのグループに分ける。
バス動作すなわちバスを用いたデータ転送がなされる毎
に、同時に4つの語が転送される。
図2に示すように、三路転送動作の一部として転送さ
れるべきデータのブロックは、種々の語長を有し得る。
データ・ブロックは、更に異なる開始アドレス及び異な
る終了アドレスを有することができる。例えば、図2の
列Aのデータ・ブロックは、語カウント3と、開始アド
レス0と、終了アドレス2とを有している。更に、列A
のブロックは、バウンダリと交叉しない。
列Bのデータ・ブロックは、開始アドレス1、終了ア
ドレス3、および語カウント3である。
任意のデータをバス70を経て転送するには、同時に4
つの語を転送しなければならない。一方、バス70を経て
列Aのデータ・ブロックを転送するには、アドレス0か
らアドレス3までのデータ語のシークェンスが転送され
なければならない。従って、図1のCPU20が、アドレス
0から開始されてアドレス2で終了する列Aのデータ・
ブロックだけを転送したい場合でも、アドレス3にある
データも転送される。このように、回路10のキャッシュ
におけるデータ・ラインの構成では、任意の三路転送動
作の一部として余分なデータが転送されることがある。
同様に、CPU20が図2の列Bのデータ・ブロックを転送
したい場合は、開始アドレス1、終了アドレス3および
データ語3を有するデータ・ブロックと共に、アドレス
0にあるデータも転送される。
このように、CPU20が転送したいデータ・ブロックの
全てが、隣接の2つのバウンダリにより挟まれた4つの
データ語のシークェンス内にある場合は、CPU20はその
4つの語シークェンスのどの特定の語を転送したいのか
を特定することができず、CPU20は、必要としているか
どうかにかかわりなく、4つの語を全て得る。換言する
と、アドレスの低位のビットが、4つのデータ語のシー
クェンス内において特定のデータ語が何処にあるかを特
定するだけの場合、アドレスのこの低位のビットは、無
意味なものであるということである。すなわち、CPU20
は、4つのデータ語のグループ中から単一のデータ語だ
けを得ることができず、同じグループの他のデータ語の
伝送も受けなければならない。キャッシュにおいてグル
ープとされた4つのデータ語は、まとめて、データのラ
インないしデータ・ラインと称されることもある。
図2の列Cのデータ・ブロックは、開始アドレス2、
終了アドレス4、及び語カウント3のデータ語である。
この列Cのデータ・ブロックは、バウンダリ302と交叉
する。しかし、バス70を経た単一のデータ転送では、2
つの隣接バウンダリの間にある4つのデータ語のシーク
ェンスだけを転送する。従って、列Cのブロックのため
の単一のバス転送動作では、アドレス0で開始され、ア
ドレス3で終了する4つのデータ語のシークェンスが転
送される。列Cのデータ・ブロックの中のアドレス4に
あるデータは、最初の単一バス転送動作の一部としては
転送されない。その理由は、バウンダリ301と302の間に
あるデータだけが単一バス転送動作の一部としては転送
されるからである。CPU20は、アドレス4にあるデータ
を転送するためには、次のバス転送動作を開始しなけれ
ばならない。勿論、この第2のバス転送動作の一部とし
て、アドレス4のデータが転送されるだけではなく、ア
ドレス5,6、及び7のデータも(これらがバウンダリ302
と304との間にあるので)、転送される。
同様に、開始アドレス3、終了アドレス5及び語カウ
ント3を有する列Dのデータ・ブロックの転送には、2
度の(三路転送動作のような)バス転送動作が必要とさ
れる。最初のバス転送動作中にアドレス0,1,2及び3に
あるデータ語が転送される。第2のバス転送動作中、ア
ドレス4,5,6及び7にあるデータ語が(データ語が隣接
のバウンダリ302と304の間にあるので)、転送される。
従って、三路転送動作中にデータ・ブロックを図形サブ
システム90に伝送するべき場合でも、4つのデータ語の
シークェンスが各々の単一の転送中に図形サブシステム
90に伝送される。図2の列Eは、三路転送動作の一部と
して転送されるべきデータ・ブロックが語カウント1を
有することができることを示している。図2の列Fは、
三路転送動作の一部として転送されるべきデータ・ブロ
ックが語カウント4を有することができることを示して
いる。列A,B,E及びFに関する転送では、各々三路転送
動作の一部としてデータ線の単一の転送だけを必要とす
る。しかし、バウンダリ302と交叉する列C及び列Dの
データ・ブロックでは、三路転送動作の一部として2度
のバス転送を必要とする。列Eのデータ・ブロックの転
送は、アドレス1,2、及び3のデータが、アドレス0の
データと同様に転送されてしまうことを意味する。
列Gデータ・ブロックは、語カウント6、開始アドレ
ス1および終了アドレス6を有している。列Gのデータ
・ブロックは、更にキャッシュ境界302と交叉してい
る。従って、列Gのデータ・ブロック全体を転送するに
は、2度のバス転送が必要である。
図2の列Hでは、2つのバウンダリ302及び304と交叉
するデータ・ブロックを示している。列Hのデータ・ブ
ロックは、語カウント8、開始アドレス2及び終了アド
レス9を有している。列Hのデータ・ブロックを完全に
転送するには、三路転送動作の一部として3回のバス転
送が必要である。この場合もバス転送の一部としてアド
レス0,1,10,11の余分なデータが転送される。図2の列
Iのデータ・ブロックは、3つのバウンダリ302,304,30
6と交叉する。
列Iのデータ・ブロックは、開始アドレス1、語カウ
ント14及び終了アドレス14を有している。列Iのデータ
・ブロック全体を転送するには、4回のバス転送が必要
である。この場合も、バス転送の一部としてアドレス0
及び15のデータも転送される。
本発明に従って、図2に示されていない他の開始アド
レス、他の終了アドレス及び他の語カウントを有する他
のデータ・ブロックも転送可能であることが理解されよ
う。例えば、倍精度数を伝送する場合、4以上の語カウ
ントを有するデータ・ブロックを伝送できる。
図3は三路転送動作中に発生する事象のシークェンス
を示すタイミング図である。図3の上部にクロック信号
が図示されている。本発明の好ましい実施例では、サイ
クルタイム(周期時間)は、クロックの立ち上がり縁と
クロックの次の立ち上がり縁との間の時間の長さとして
定義される。
図3の波形NAは“次のアドレス(Next Address)”線
を示す。図3の波形NAは、線34及び32上に書き込みバッ
ファ30から出力されるアドレスを示している。これらの
アドレスは、CPU20から発生され、線26を経て書き込み
バッファ30に伝送されたものである。
図3の波形TAは、第2レベルのデータ・キャッシュ40
内に現れるタグ(標識)アドレス(Tag Address)を示
している。このタグ(標識)アドレスはCPU20から発生
されたものである。波形TAに現れるアドレスは、波形NA
に現れるアドレスから単に遅延したものである。
図3の波形DAは、データ・キャッシュ40内に現れる第
2レベルのデータ・アドレス(Data Address)を示して
いる。波形DAに示したアドレスは、波形TAおよび波形NA
上のアドレスを単に遅延したものである。
波形CDは、書き込みバッファ30から線32に現れるデー
タを示している。このデータは、CPU20から発生され、
線26を経て書き込みバッファ30に伝送されたものであ
る。
別の見方をすると、波形NAは、CPU100から発生され
て、書き込みバッファ110から出て線114及び112に現れ
る次のアドレスを示すものである。同様に、波形TAはデ
ータ・キャッシュ120内のタグ(標識)アドレスを示す
と見ることができ、波形CDは、CPU100から発生されて、
書き込みバッファ110から出て線112に現れるデータを示
すと見ることができる。
図3に示すように、CPU20は、三路トリガ・アドレス
への書き込みを行うことによって三路転送動作を開始す
る。図3では、“3WT"が三路トリガ・アドレスを表して
いる。これは波形NAでの最初のアドレスである。三路ト
リガ・アドレスは、CPU20から、線26を経て、書き込み
バッファ30に伝送される。書き込みバッファ30と線34お
よびアドレス・デコーダ50が、デコード回路を構成し、
この回路が書き込みバッファ30に送られたアドレスをデ
コードする。アドレス・デコーダ50は、CPU20による次
の書き込み動作が三路転送動作中に転送されるべきデー
タ・ブロックの開始アドレスへの書き込みであることを
指示する開始アドレス・トリガ・ビットをセットするた
めに、三路トリガ・アドレスをデコードする。アドレス
・デコーダ50による開始アドレス・トリガ・ビットのセ
ットによって、第2レベルのデータ・キャッシュ40に対
して、次の2回の書き込み動作が“特別”であることを
通知する機能も果たされる。アドレス・デコーダ50は、
前記の通知をする信号を、アドレス・デコーダ50と第2
レベルのデータ・キャッシュ40との間に結合された線42
を介して第2レベルのデータ・キャッシュ40に伝送す
る。開始アドレス・トリガ・ビットは、それをアドレス
・デコーダから線52を介して送られて、レジスタ60に保
存される。
次の二回の書き込みは、“特別”な書き込みである。
両方の書き込みとも第2レベルのデータ・キャッシュ40
への書き込みが抑止される。両方の書き込みでは、更に
記憶装置80を変更することも抑止される。次の二回の書
き込みは、部分的書き込みである。本発明の好ましい実
施例では、次の二回の書き込みは、データ・キャッシュ
24を自動的に不当状態(インバリッド)にする。その理
由は、データ・キャッシュ24への部分的な書き込みが試
みられると、データ・キャッシュ24は不当になるように
構成されるからである。次の二回の書き込みが部分的な
書き込みであることは、更に、図形指令及び語カウント
を含んでいる低位バイトのデータが、最終的にバス70に
転送されることをも意味する。
三路転送動作は次の3つの種類の書き込みを含んでい
る。
(1)トリガ・アドレスへの書き込み (2)最初の開始アドレスへの書き込み、又、データ・
ブロックがより長い場合は、それに後続の中間アドレス
への1回以上の書き込み (3)終了アドレスへの書き込み(但し必要な場合の
み) 書き込み動作及び読み出し動作において、データは、
常にアドレスに従う。言い換えると、ディジタル情報の
転送に際してはアドレスが最初に現れる。アドレスが波
形NAに現れた語、データは波形CD上に現れる。図3の波
形CDにD0で示したデータは、使用されないデータを表し
ている。その理由は、CPU20がトリガ・アドレスへの書
き込み動作を行っており、従ってトリガ・アドレスへの
書き込みに関連するデータには関わりないからである。
図3の波形MPREQは、CPU20からバス70へと伝送される
マイクロプロセッサバス要求信号を示している。図3に
示す波形MPGRNTは、バス70からCPU20およびCPU100に伝
送されるマイクロプロセッサバス許諾線信号を示してい
る。
図3の波形NAに示すように、線32及び34に現れる次の
信号は書き込み動作用の開始アドレスA1である。書き込
み動作用の最初の開始アドレスが第2レベルのデータ・
キャッシュ40と遭遇すると、マイクロプロセッサバス70
が要求され、マイクロプロセッサバスの三路転送動作が
更に実行される。
波形MPREQ及ぴMPGRNTが低レベルにされたことをCPU20
が見出すと直ちに、CPU20は図3の波形NAに現れる情報
をマイクロプロセッサバス70に伝送する。波形MPAがマ
イクロプロセッサバス70のアドレス線に現れるアドレス
を表すとすれば、このことは図3から明白である。この
ように、開始アドレスA1が次のアドレス波形NAに現れた
後で、かつ、信号MPREQ及びMPGRNTが低レベルにされた
後、開始アドレスA1は、波形MPAに現れる。マイクロプ
ロセッサバス70によって受信される前に、開始アドレス
はCPU20から線26を経て書き込みバッファ30に伝送され
ている。アドレス・デコーダ50は、(線34を経てアドレ
ス・デコーダに送られる)開始アドレスをデコードす
る。その結果、三路開始アドレス・トリガ・ビットがク
リヤされ、三路終了アドレス・トリガ・ビットがセット
される。三路開始アドレス・トリガ・ビットは、クリヤ
信号をレジスタ60に伝送することによってクリヤされ
る。三路終了アドレス・トリガ・ビットが、アドレス・
デコーダ50によってセットされ、線52を経てレジスタ60
に送られて記憶される。このようにして終了アドレス・
トリガ・ビットは保存される。書き込みバッファ30内に
含まれる物理的開始アドレスは、次にマイクロプロセッ
サバス70のアドレス線に置かれる。これは図3の波形MP
AのA1によって示されている。
語カウント及び図形指令は、通常はデータのライトバ
ック用に予約された期間中にマイクロプロセッサバス70
の低位の16のデータ線上に置かれる。語カウントは、図
3の波形MPD(書き込み)内の“W"によって表される。
図形指令は、図3の波形MPD(書き込み)内の“C"によ
って表される。波形MPD(書き込み)及び波形MPD(読み
出し)は、共にマイクロプロセッサバス70のデータ線上
のデータを表す。
図形指令は、三路転送動作の一部として転送されてい
るデータをどう処理するかを指示する。図形指令の例に
は、指令“多角形描画”がある。図形指令は、図1の回
路10に示されたディジタル・コンピュータのソフトウェ
アから発生される。
クロックサイクル(周期)の始まりに、データがバス
70に置かれる。クロックサイクル(周期)の終わりに、
図形サブシステム90はデータをラッチし、それによって
データはバス70から線92を経て図形サブシステム90に伝
送される。従って、クロックサイクル(周期)の始まり
とクロックサイクル(周期)の終わりの間にギャップが
あるので、そのデータの整定時間が得られる。語カウン
ト及び図形指令がマイクロプロセッサバス70に到達する
時点では、図形サブシステム90は既に開始アドレスA1を
ラッテしている。
物理的開始アドレスA1により指定された16バイトのデ
ータ・ラインは、キャッシュ40が、16バイトの変更され
たデータ・ラインの専有コピーを有している場合に、か
つその場合に限って、第2レベルのキャッシュ40によっ
てマイクロプロセッサバス70上に置かれる。物理的アド
レスによって指定された16バイトのデータ・ラインは、
主記憶装置80が有しているのが16バイトのデータ・ライ
ンの最新のバージョンであり、他のキャッシュには16バ
イトのデータ・ラインの変更された専有コピーを有して
いない場合には、主記憶装置80によってマイクロプロセ
ッサバス70上に置かれる。
次に図形サブシステム90は、マイクロプロセッサバス
70から16バイトのデータ・ライン(すなわちデータ・ブ
ロック)を獲得すなわちラッチする。このように、三路
転送動作の一部として、図形システム90は、マイクロプ
ロセッサバス上の開始アドレス、語カウント、図形指令
及び16バイトのデータ・ライン(すなわちデータ・ブロ
ック)を獲得する。
第2のアドレスへの第2の書き込みがデータ・キャッ
シュ40に入ると、最初の三路転送動作中に転送されない
追加の語が残っている場合に限って、第2のバス転送が
三路バス転送の一部として開始される。これは第2の書
き込みアドレスの5番目のアドレス・ビット(すなわち
ビットA4)を、最初の書き込みアドレスから保存された
5番目のアドレス・ビット(すなわちビットA4)と比較
することによって決定される。ビットが異なる場合は、
図3に示すように三路転送動作の一部として追加のマイ
クロプロセッサバス転送動作が実行される。
三路終了トリガ・ビットは、後続の三路転送動作が行
われるかどうかに関係なくクリヤされる。
図3を参照すると、波形MCWREQ0,MCWREQ1,MCWREQ2及
びMCWREQ3のそれぞれが、書込バッファ30の対応するレ
ベルに対応する。上記の波形のそれぞれが、低レベルに
されている場合は、特定レベルの書き込みバッファにデ
ータが満ちていることを示している。
波形WACK0,WACK1,WACK2及びWACK3それぞれは、書き込
みバッファ30の各レベルに関連するハンドシェーク信号
である。
図3の波形CWREQは、単に全ての波形MCWREQ0〜MCWREQ
3の論理和である。従って、CWREQは、少なくとも一つの
書き込みが保留であることを示す。図3の波形WBSEL
は、書き込みバッファ30の何れのレベルが動作中である
かを示す。
本発明の一実施例では、三路転送動作中に転送されな
い追加の語が残っている場合に限って、第2,第3,第4,第
5等の書き込み動作が三路転送動作の一部として開始さ
れる。図3に示すように、T1は三路転送動作のバス70上
の最初の書き込み動作の時間を表している。時間T2は、
バス70上の第2の書き込み動作を表している。時間T3は
バス70上の最後の書き込み動作を表している。更に長い
データ語ブロックで更に多くの書き込み動作を行うこと
は、大きな語カウントのデータ・ブロックがサブシステ
ム90に完全に転送されるまでに、時間T4,T5,T6等が続く
ことを意味する。例えば、図2の列Iのデータ・ブロッ
クは、図3に示す3回の動作ではなく、4回の動作を必
要とするであろう。
三路転送の最後の書き込み動作は常に終了アドレスの
伝送を含んでいる。図3において、最後から1つ前の書
き込み動作と終了動作との間では、トリガ・アドレスが
伝送されないことに留意されたい。図3の波形NAではT1
の最初の書き込み動作と、T2の第2の書き込み動作の間
には、トリガ・アドレスは現れている。例えば、三路転
送動作の一部として4回の書き込み動作があるとした場
合は、トリガ・アドレスへの書き込みが、第2と第3の
書き込み動作の間で行われるが、第3と最後の動作の間
では行われない。その理由は、トリガ・アドレスへの書
き込みはリセットの形式の機能を果たすからである。
三路転送動作が完了すると、次の書込が可能となる。
本発明の一実施例では、三路転送動作の一部として終
了アドレスへの書き込みが行われる前に、三路転送動作
中に行われることが必要な書き込みの回数を決定するた
めの予備計算が行われる。転送されるべきデータ・ブロ
ックの語カウントはNで除算され、ここにNは2つの隣
接するキャッシュのバウンダリの相互間にあるデータ語
の数である。言い換えると、Nは任意のバス転送動作中
に転送されるデータ語の数である。次に商から1が減算
される。この減算後の結果が整数の端数を含んでいる場
合は、結果は次に大きい整数に丸められる。例えば、結
果が1.25である場合は、結果は2に丸められる。それに
よって、整数Xが生ずる。前の例ではXは2となる。X
が0以外の正の整数である場合は、三路転送動作の最初
の書き込み動作の後で、最後の書き込み動作の前にX回
の書き込み動作がなされることになる。この計算はPAL1
50及び160と連携したソフトウェアによって行うことが
できる。
本発明の別の実施例では、各々のバス転送動作中に転
送されるデータ語の数はNであることができ、ここにN
は1以上であり、かつ語カウント以上であるか、これと
等しい整数である。すなわち、N個のデータ語が隣接す
るキャッシュのバウンダリ間にあることを意味する。
CPU20の例外、従って、コンテキスト・スイッチが、
図3の三路転送に関連する3回の書き込みのいずれかの
間に生じることがある。従って、図1に示した回路で
は、最初の二回の書き込みによる状態を使用不能、保存
及び復元する機能が備えられる。この機能は、次を保存
すること、すなわち、(1)三路開始アドレス・トリガ
・ビット,(2)三路終了アドレス・トリガ・ビット,
(3)タグ(標識)ビット(開始アドレスの5番目のビ
ット(すなわちビットA4))を、保存することによって
備えられる。これらのビットは、図1のレジスタ60に記
憶することができる。図1の回路10には、レジスタ60内
の3つのビットを読み出し、これらに書き込む能力も備
えられている。三路転送動作中に割り込みが生じた場合
は、ディジタル・コンピュータののオペレーティング・
システムが先ずレジスタ60内に記憶された3つのビット
の状態を読み出して、記憶する。オペレーティング・シ
ステムは次にレジスタ60の実ビットを使用不能にする。
オペレーティング・システムが割り込みの直前のシステ
ム状態に戻して復元する場合には、オペレーティング・
システムは3つのビットをレジスタ60内の割り込み直前
の状態に復元する。それを行うために、オペレーティン
グ・システムは、先ず3つのビットが使用不能にされる
前に、それらビットの状態を読み出して記憶しておくの
である。
本発明の別の実施例では、三路転送動作の一部として
図形サブシステム90に書き込まずに、例えば直列ポート
に書き込むことができよう。更に、三路転送動作の一部
として図形サブシステム90に書き込まずに、第2メモリ
に書き込むこともできよう。
本発明の更に別の実施例では、三路転送動作の一部と
して、データ・ブロックをサブシステム90からバス70を
経てメモリ80へと直接転送することも可能であろう。
これまで本発明を特定の実施例に関して説明してき
た。しかし、添付の請求の範囲に記載し発明の精神と範
囲から逸脱することなく多くの変更と修正が可能である
ことは明らかであろう。従って、明細書と図面は限定的
な意味ではなく、説明のための例示であるとみなされる
べきものである。
フロントページの続き (72)発明者 ジェルモラク,トーマス・アラン アメリカ合衆国 94025 カリフォルニ ア州・ロス アルトス・セント ジョセ フ アヴェニュ・892 (56)参考文献 特開 昭63−70386(JP,A) 特開 平3−31947(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 13/38 - 13/42 G06F 12/08 - 12/12 G06F 13/10 - 13/14 G06F 15/16

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】中央処理装置と、この中央処理装置に結合
    されたデコード回路と、このデコード回路に結合された
    キャッシュメモリと、このキャッシュメモリに結合され
    たバスと、このバスに結合された主記憶装置と、前記バ
    スに結合された図形サブシステムとを備えたディジタル
    ・コンピュータにおいて、書込みで開始される特別の伝
    送動作を、開始アドレスおよびデータ・ブロックから成
    るデジタル情報について、実行する方法であって、その
    特別の伝送動作でデジタル情報が図形サブシステムへと
    伝送され、(1)前記開始アドレスはデータ・ブロック
    の最初の語のアドレスであり、(2)データ・ブロック
    の語数が語カウントで表されており、 (a) 前記中央処理装置の1番目の書込み動作を実行
    して、前記中央処理装置から前記デコード回路へとトリ
    ガ・アドレスの伝送をすることによって、前記特別の伝
    送を開始し; (b) 前記トリガ・アドレスを前記デコード回路によ
    ってデコードし、そして、(1)前記中央処理装置の1
    番目の書込み動作に続く2番目の書込み動作と(2)前
    記中央処理装置の2番目の書込み動作に続く3番目の書
    込み動作とによって前記主記憶装置および前記キャッシ
    ュメモリが変更されてしまうことを抑止し; (c) 前記中央処理装置の2番目の書込み動作を実行
    して、前記中央処理装置から前記キャッシュメモリおよ
    び前記バスへと、(1)開始アドレス、および、(2)
    語カウントおよび図形指令を含むデータを伝送し; (d) 前記バスから前記主記憶装置および前記図形サ
    ブシステムへと、開始アドレスを伝送し; (e) 前記バスから前記主記憶装置および前記図形サ
    ブシステムへと、語カウントおよび図形指令を含む前記
    データを伝送し; (f) もし、前記キャッシュメモリにのみ、N個のデ
    ータ語の変更されたシークェンスがある場合には、前記
    キャッシュメモリに専有のその変更されたシークェンス
    を、前記キャッシュメモリから前記バスを介して前記図
    形サブシステムへと、特別の伝送を開始させた前記中央
    処理装置へと送ることなしに直接に伝送し、ここで、N
    は語カウント以上の整数であり、N個のデータ語のシー
    クェンス中のデータ語の1つは開始アドレスにあり、デ
    ータ・ブロックはN個のデータ語のシークェンスに含ま
    れており; (g) もし、N個のデータ語の最新のシークェンスが
    前記主記憶装置にあって、かつ、前記キャッシュメモリ
    には、そのキャッシュメモリに専有の変更されたシーク
    ェンスがない場合には、N個のデータ語のその最新のシ
    ークェンスを、前記主記憶装置から前記バスを介して前
    記図形サブシステムへと、特別の伝送を開始させた前記
    中央処理装置へと送ることなしに直接に伝送する ことを特徴とする方法。
JP01510702A 1988-10-03 1989-10-02 コンピュータによる三路転送動作 Expired - Lifetime JP3120382B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US25320688A 1988-10-03 1988-10-03
US253,206 1988-10-03

Publications (2)

Publication Number Publication Date
JPH04502827A JPH04502827A (ja) 1992-05-21
JP3120382B2 true JP3120382B2 (ja) 2000-12-25

Family

ID=22959325

Family Applications (1)

Application Number Title Priority Date Filing Date
JP01510702A Expired - Lifetime JP3120382B2 (ja) 1988-10-03 1989-10-02 コンピュータによる三路転送動作

Country Status (5)

Country Link
EP (1) EP0436641B1 (ja)
JP (1) JP3120382B2 (ja)
KR (1) KR900702448A (ja)
DE (1) DE68926168T2 (ja)
WO (1) WO1990004226A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970071323A (ko) * 1996-04-22 1997-11-07 포만 제프리 엘 그래픽 서브시스템
EP1199897A3 (en) 2000-10-16 2003-03-26 THOMSON multimedia Method and device for storing stream data such as digital video and non-stream data

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1113771B (it) * 1977-07-07 1986-01-20 Sits Soc It Telecom Siemens Unita' di interfaccia atta a consentire lo scambio di dati a velocita' elevata tra la memoria centrale di un elaboratore ed una unita' periferica
US4296476A (en) * 1979-01-08 1981-10-20 Atari, Inc. Data processing system with programmable graphics generator
JPS5911135B2 (ja) * 1979-01-17 1984-03-13 株式会社日立製作所 デ−タ処理システムのデ−タ転送方式
FR2479532B1 (fr) * 1980-04-01 1986-09-19 Bull Sa Procede et dispositif pour gerer les transferts d'informations entre un ensemble memoire et les differentes unites de traitement d'un systeme de traitement numerique de l'information
US4426679A (en) * 1980-09-29 1984-01-17 Honeywell Information Systems Inc. Communication multiplexer using a random access memory for storing an acknowledge response to an input/output command from a central processor
US4729095A (en) * 1986-05-19 1988-03-01 Ncube Corporation Broadcast instruction for use in a high performance computer system

Also Published As

Publication number Publication date
EP0436641B1 (en) 1996-04-03
DE68926168T2 (de) 1996-08-29
KR900702448A (ko) 1990-12-07
EP0436641A1 (en) 1991-07-17
WO1990004226A1 (en) 1990-04-19
EP0436641A4 (en) 1993-02-24
DE68926168D1 (de) 1996-05-09
JPH04502827A (ja) 1992-05-21

Similar Documents

Publication Publication Date Title
US6185629B1 (en) Data transfer controller employing differing memory interface protocols dependent upon external input at predetermined time
US5560030A (en) Transfer processor with transparency
US5487146A (en) Plural memory access address generation employing guide table entries forming linked list
US5524265A (en) Architecture of transfer processor
US6405271B1 (en) Data flow control mechanism for a bus supporting two-and three-agent transactions
JP3317329B2 (ja) 逐次符号化スヌープ応答を使用してキャッシュの一貫性を保つ方法およびシステム
US5551005A (en) Apparatus and method of handling race conditions in mesi-based multiprocessor system with private caches
JP3067112B2 (ja) 遅延プッシュをコピー・バック・データ・キャッシュに再ロードする方法
JP3026756B2 (ja) デジタル・データ及びビデオ信号の処理デバイス及びシステム
US6463510B1 (en) Apparatus for identifying memory requests originating on remote I/O devices as noncacheable
EP0671718B1 (en) Data processor for guided transfer line drawing
US7016984B2 (en) System controller using plural CPU's
US5724599A (en) Message passing and blast interrupt from processor
JPH0345407B2 (ja)
US6748493B1 (en) Method and apparatus for managing memory operations in a data processing system using a store buffer
US5493646A (en) Pixel block transfer with transparency
JPH0337744A (ja) データ処理装置
US5651127A (en) Guided transfers with variable stepping
US5696985A (en) Video processor
JPH1031625A (ja) マルチ・プロセッサ・システムにおける改良されたコピーバック性能のためのライトバック・バッファ
US5784076A (en) Video processor implementing various data translations using control registers
US5511226A (en) System for generating snoop addresses and conditionally generating source addresses whenever there is no snoop hit, the source addresses lagging behind the corresponding snoop addresses
JP3084229B2 (ja) デジタル・データ及びビデオ信号の処理デバイス及びシステム
US6321302B1 (en) Stream read buffer for efficient interface with block oriented devices
US5617556A (en) System and method to prevent the occurrence of a snoop push during read and write operations

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081020

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091020

Year of fee payment: 9

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091020

Year of fee payment: 9