JPH10289197A - プロセッサ・データをバースト転送する方法及びコンピュータ・システム - Google Patents
プロセッサ・データをバースト転送する方法及びコンピュータ・システムInfo
- Publication number
- JPH10289197A JPH10289197A JP10090346A JP9034698A JPH10289197A JP H10289197 A JPH10289197 A JP H10289197A JP 10090346 A JP10090346 A JP 10090346A JP 9034698 A JP9034698 A JP 9034698A JP H10289197 A JPH10289197 A JP H10289197A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- memory
- data
- address
- cache
- 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; 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/0877—Cache access modes
- G06F12/0879—Burst mode
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)
- Record Information Processing For Printing (AREA)
- Multi Processors (AREA)
Abstract
(57)【要約】
【課題】 プロセッサ・データをI/O装置との間でバ
ースト転送する方法を提供する。 【解決手段】 正規のキャッシュ可能プロセッサ命令を
用い、プロセッサまたはそのインタフェースを変更する
こと無しに、プロセッサとI/O装置との間のバースト
転送を可能にするためにI/Oブリッジ・ユニットが使
用される。I/Oブリッジ・ユニットは、指定されたメ
モリ・ページへのキャッシュ可能プロセッサ命令を横取
りし、"トリガ"・コマンドを処理することにより、中間
キャッシュ・エミュレーション論理を実行する。結局、
適切なバイト長のバースト通信が、キャッシュ・エミュ
レーション・バッファとプロセッサまたはI/O装置と
の間で処理される。
ースト転送する方法を提供する。 【解決手段】 正規のキャッシュ可能プロセッサ命令を
用い、プロセッサまたはそのインタフェースを変更する
こと無しに、プロセッサとI/O装置との間のバースト
転送を可能にするためにI/Oブリッジ・ユニットが使
用される。I/Oブリッジ・ユニットは、指定されたメ
モリ・ページへのキャッシュ可能プロセッサ命令を横取
りし、"トリガ"・コマンドを処理することにより、中間
キャッシュ・エミュレーション論理を実行する。結局、
適切なバイト長のバースト通信が、キャッシュ・エミュ
レーション・バッファとプロセッサまたはI/O装置と
の間で処理される。
Description
【0001】
【発明の属する技術分野】本発明は、プロセッサ・デー
タをバスを通じて、I/O装置との間でバースト転送す
る方法に関する。
タをバスを通じて、I/O装置との間でバースト転送す
る方法に関する。
【0002】
【従来の技術】コンピュータ・ワークステーションなど
のコンピュータ・システムは、少なくとも1つのマイク
ロプロセッサと、様々なサブシステムとの間の情報の転
送により動作する。マイクロプロセッサとサブシステム
との間の通信は、バスと呼ばれるデータ通信路を通じて
発生する。今日のシステムでは、バスを介して情報をマ
イクロプロセッサとの間で送受信するために、モニタ、
グラフィックス・アダプタ、及びIDEタイプの装置な
どの入出力(I/O)サブシステムが、しばしば必要と
される。
のコンピュータ・システムは、少なくとも1つのマイク
ロプロセッサと、様々なサブシステムとの間の情報の転
送により動作する。マイクロプロセッサとサブシステム
との間の通信は、バスと呼ばれるデータ通信路を通じて
発生する。今日のシステムでは、バスを介して情報をマ
イクロプロセッサとの間で送受信するために、モニタ、
グラフィックス・アダプタ、及びIDEタイプの装置な
どの入出力(I/O)サブシステムが、しばしば必要と
される。
【0003】今日のコンピュータ・システムは、漸次高
速化するマイクロプロセッサにより設計されるが、I/
Oサブシステムはそれと歩調が合っていない。I/O装
置は横断されなければならないチップ及びバス、並びに
これらの装置にプログラムされた操作の待ち時間の点で
プロセッサから一層遠ざかりつつある。このことが、プ
ロセッサがアプリケーションにおいてI/O装置との間
でデータを送受信するために使用されるときの、潜在的
な性能の損失につながっている。これらのアプリケーシ
ョンは、プロセッサを用いてグラフィックス・アダプタ
及びIDEタイプの装置を制御したりする。
速化するマイクロプロセッサにより設計されるが、I/
Oサブシステムはそれと歩調が合っていない。I/O装
置は横断されなければならないチップ及びバス、並びに
これらの装置にプログラムされた操作の待ち時間の点で
プロセッサから一層遠ざかりつつある。このことが、プ
ロセッサがアプリケーションにおいてI/O装置との間
でデータを送受信するために使用されるときの、潜在的
な性能の損失につながっている。これらのアプリケーシ
ョンは、プロセッサを用いてグラフィックス・アダプタ
及びIDEタイプの装置を制御したりする。
【0004】通常、これらのI/O装置はプロセッサの
メモリ空間に"マップされる"。従来のプロセッサにおい
て一般的なように、入出力命令を発行する代わりに今日
のプロセッサは、あたかもI/O装置がメモリの一部で
あるかのようにメモリ・タイプの命令(例えばロードま
たはストア)を発行することにより、I/O装置との間
で情報を送受信する。しかしながら、これらの装置は実
際にはメモリに内在するのではなくISAまたはPCI
などのI/Oバスに接続される。これらの装置は、プロ
セッサのメモリのキャッシュ不能なメモリ空間にマップ
されなければならない。なぜなら、これらの装置はフル
・コヒーレンス、バースト・オーダリング、デッドロッ
ク回避などのキャッシュ可能なメモリ・プロトコルの全
ての規則に従わないからである。これらの装置はキャッ
シュ不能な空間内にあるので、各プロセッサ・アクセス
は外部バスに発行されなければならず、非常に小さなデ
ータ転送だけが実行され、各ロードまたはストアは通
常、1バイト乃至8バイトのデータを転送する。これら
のバスは今日のプロセッサより数倍遅く稼働しているの
で、(調停、非同期境界の横断など)バス階層を横断す
る複数の転送により、性能の重大な損失が発生する。
メモリ空間に"マップされる"。従来のプロセッサにおい
て一般的なように、入出力命令を発行する代わりに今日
のプロセッサは、あたかもI/O装置がメモリの一部で
あるかのようにメモリ・タイプの命令(例えばロードま
たはストア)を発行することにより、I/O装置との間
で情報を送受信する。しかしながら、これらの装置は実
際にはメモリに内在するのではなくISAまたはPCI
などのI/Oバスに接続される。これらの装置は、プロ
セッサのメモリのキャッシュ不能なメモリ空間にマップ
されなければならない。なぜなら、これらの装置はフル
・コヒーレンス、バースト・オーダリング、デッドロッ
ク回避などのキャッシュ可能なメモリ・プロトコルの全
ての規則に従わないからである。これらの装置はキャッ
シュ不能な空間内にあるので、各プロセッサ・アクセス
は外部バスに発行されなければならず、非常に小さなデ
ータ転送だけが実行され、各ロードまたはストアは通
常、1バイト乃至8バイトのデータを転送する。これら
のバスは今日のプロセッサより数倍遅く稼働しているの
で、(調停、非同期境界の横断など)バス階層を横断す
る複数の転送により、性能の重大な損失が発生する。
【0005】それに対して、キャッシュ可能メモリとの
間でデータを送受信するプロセッサの能力は、大量のデ
ータをバスを通じて一度に"バースト転送"する能力によ
り、より効率的である。1命令当たり1バイト乃至8バ
イトを転送する代わりに、キャッシュ可能システムは、
データの全キャッシュ・ライン(通常32バイト、64
バイトまたは128バイト)を1命令でバースト転送で
きる。
間でデータを送受信するプロセッサの能力は、大量のデ
ータをバスを通じて一度に"バースト転送"する能力によ
り、より効率的である。1命令当たり1バイト乃至8バ
イトを転送する代わりに、キャッシュ可能システムは、
データの全キャッシュ・ライン(通常32バイト、64
バイトまたは128バイト)を1命令でバースト転送で
きる。
【0006】キャッシュ不能なフェッチを実行するため
に使用される現状の技術では、プロセッサは、自身がI
/O装置から要求したデータの各パケットを受信するの
を待機しなければならない。それに対してI/O装置か
ら読出されるキャッシュラインの本発明によるエミュレ
ーションは、プロセッサが所望のI/O装置にマップさ
れるキャッシュ不能なメモリから、追加のフェッチを実
行する代わりに(数百プロセッサ・サイクル)、キャッ
シュをアクセスすることにより(1プロセッサ・サイク
ル乃至2プロセッサ・サイクル)、追加のデータをアク
セスできるようにすることにより、従来システムのこの
制限を克服するものである。
に使用される現状の技術では、プロセッサは、自身がI
/O装置から要求したデータの各パケットを受信するの
を待機しなければならない。それに対してI/O装置か
ら読出されるキャッシュラインの本発明によるエミュレ
ーションは、プロセッサが所望のI/O装置にマップさ
れるキャッシュ不能なメモリから、追加のフェッチを実
行する代わりに(数百プロセッサ・サイクル)、キャッ
シュをアクセスすることにより(1プロセッサ・サイク
ル乃至2プロセッサ・サイクル)、追加のデータをアク
セスできるようにすることにより、従来システムのこの
制限を克服するものである。
【0007】本発明のこの態様に関する第2の利点は、
プロセッサがそのキャッシュを転送以前または以後のデ
ータ処理のために使用することを可能にし、その間に同
時に、追加のデータをI/O装置との間で転送するもの
である。こうした"パイプライン式"機構は、プログラム
式I/O転送による現方法では可能でない。
プロセッサがそのキャッシュを転送以前または以後のデ
ータ処理のために使用することを可能にし、その間に同
時に、追加のデータをI/O装置との間で転送するもの
である。こうした"パイプライン式"機構は、プログラム
式I/O転送による現方法では可能でない。
【0008】
【発明が解決しようとする課題】本発明は、プロセッサ
・データをコンピュータ・システム内のI/O装置との
間でバースト転送する方法に関する。この方法は、プロ
セッサがキャッシュ不能なI/O装置からデータを読み
書きするとき、キャッシュ可能なシステムのバースト能
力をエミュレートするために使用される。それ故、本方
法はプロセッサがDMA機構を用いて、データをキャッ
シュ不能なI/O装置との間で送受信しなければならな
い従来システムにおいて見い出される多くの欠点を解決
する。
・データをコンピュータ・システム内のI/O装置との
間でバースト転送する方法に関する。この方法は、プロ
セッサがキャッシュ不能なI/O装置からデータを読み
書きするとき、キャッシュ可能なシステムのバースト能
力をエミュレートするために使用される。それ故、本方
法はプロセッサがDMA機構を用いて、データをキャッ
シュ不能なI/O装置との間で送受信しなければならな
い従来システムにおいて見い出される多くの欠点を解決
する。
【0009】
【課題を解決するための手段】本発明は、少なくとも1
つのマイクロプロセッサと、少なくとも1つのI/O装
置との間で、少なくとも1つのバスを介して情報を転送
することを可能にするコンピュータ・ワークステーショ
ン・システムの状況において実現される。好適な実施例
は、エミュレートされるキャッシュライン・データ転送
の3つのモード、すなわち、プロセッサからI/O装置
への書込み(WRITE)、I/O装置からプロセッサ
へデータを転送する読出し(READ)、及びI/O装
置からプロセッサへではなく、別のI/O装置へデータ
を転送するMOVEを含む。これらの機能は、プロセッ
サからシステムのメモリ/I/O制御装置への"書込み
トリガ(Write Trigger)"または"読出しトリガ(Read
Trigger)"コマンドの受信により開始される。好適な実
施例では、本方法の機能はメモリ/I/O制御装置の一
部であるI/Oブリッジ・ユニット内で実行される。ト
リガ・コマンドの受信に際して、I/Oブリッジ・ユニ
ットはI/O装置と内部キャッシュエミュレーション・
バッファとの間でデータを転送する中間処理を開始す
る。本方法はまた、本発明において実現されるエミュレ
ート式キャッシュライン転送機構に参加するページとし
て指定されるメモリ・ページへの、プロセッサ・キャッ
シュ可能読出し及び書込み命令を横取りするI/Oブリ
ッジ・ユニットを提供する。これはメモリ/I/O制御
装置内のレジスタを用いることにより達成され、これら
のレジスタは主メモリ空間の外部にマップされ、キャッ
シュエミュレーション・バッファとして使用される指定
メモリ・ページのアドレスをロードされる。I/Oブリ
ッジ・ユニットはこの時、プロセッサ・キャッシュ可能
読出し及び書込み命令を、I/O空間またはメモリ・マ
ップドI/O空間内の対応するI/Oアダプタ・アドレ
スに対応付けることができる。これはI/Oアダプタ・
アドレスをロードされるメモリ/I/O制御装置内のレ
ジスタを用いて達成される。
つのマイクロプロセッサと、少なくとも1つのI/O装
置との間で、少なくとも1つのバスを介して情報を転送
することを可能にするコンピュータ・ワークステーショ
ン・システムの状況において実現される。好適な実施例
は、エミュレートされるキャッシュライン・データ転送
の3つのモード、すなわち、プロセッサからI/O装置
への書込み(WRITE)、I/O装置からプロセッサ
へデータを転送する読出し(READ)、及びI/O装
置からプロセッサへではなく、別のI/O装置へデータ
を転送するMOVEを含む。これらの機能は、プロセッ
サからシステムのメモリ/I/O制御装置への"書込み
トリガ(Write Trigger)"または"読出しトリガ(Read
Trigger)"コマンドの受信により開始される。好適な実
施例では、本方法の機能はメモリ/I/O制御装置の一
部であるI/Oブリッジ・ユニット内で実行される。ト
リガ・コマンドの受信に際して、I/Oブリッジ・ユニ
ットはI/O装置と内部キャッシュエミュレーション・
バッファとの間でデータを転送する中間処理を開始す
る。本方法はまた、本発明において実現されるエミュレ
ート式キャッシュライン転送機構に参加するページとし
て指定されるメモリ・ページへの、プロセッサ・キャッ
シュ可能読出し及び書込み命令を横取りするI/Oブリ
ッジ・ユニットを提供する。これはメモリ/I/O制御
装置内のレジスタを用いることにより達成され、これら
のレジスタは主メモリ空間の外部にマップされ、キャッ
シュエミュレーション・バッファとして使用される指定
メモリ・ページのアドレスをロードされる。I/Oブリ
ッジ・ユニットはこの時、プロセッサ・キャッシュ可能
読出し及び書込み命令を、I/O空間またはメモリ・マ
ップドI/O空間内の対応するI/Oアダプタ・アドレ
スに対応付けることができる。これはI/Oアダプタ・
アドレスをロードされるメモリ/I/O制御装置内のレ
ジスタを用いて達成される。
【0010】
図面の詳細な説明:本発明の方法は、少なくとも1つの
バスを用いて情報を互いに転送できる、少なくとも1つ
のマイクロプロセッサ及び少なくとも1つのI/O装置
を有するコンピュータ・ワークステーションの状況にお
いて実現される。コンピュータ・システムが図1に示さ
れ、これはマイクロプロセッサとI/O装置との間の通
信を制御するソフトウェア・オペレーティング・システ
ムと一緒に通常、使用される。コンピュータ・ワークス
テーション・システムは、相互接続される構成要素の組
み合わせである。例えばマイクロプロセッサ10は、デ
ータ・リンク14によりデータ・バス20に接続され、
データ・リンク16によりアドレス・バス22に接続さ
れる。追加のマイクロプロセッサ10b、10cも同様
にプロセッサ・データ・バス20、及びプロセッサ・ア
ドレス・バス22に接続される。アービタ12は一般に
プロセッサ10からの要求を処理し、アクセスをデータ
・バス20及びアドレス・バス22に割当てる。本発明
の好適な実施例は、複数のプロセッサ10a、10b、
10cを含むが、代替実施例では単一のプロセッサを含
み得る。単一プロセッサ・システムはアービタ12を必
要としない。
バスを用いて情報を互いに転送できる、少なくとも1つ
のマイクロプロセッサ及び少なくとも1つのI/O装置
を有するコンピュータ・ワークステーションの状況にお
いて実現される。コンピュータ・システムが図1に示さ
れ、これはマイクロプロセッサとI/O装置との間の通
信を制御するソフトウェア・オペレーティング・システ
ムと一緒に通常、使用される。コンピュータ・ワークス
テーション・システムは、相互接続される構成要素の組
み合わせである。例えばマイクロプロセッサ10は、デ
ータ・リンク14によりデータ・バス20に接続され、
データ・リンク16によりアドレス・バス22に接続さ
れる。追加のマイクロプロセッサ10b、10cも同様
にプロセッサ・データ・バス20、及びプロセッサ・ア
ドレス・バス22に接続される。アービタ12は一般に
プロセッサ10からの要求を処理し、アクセスをデータ
・バス20及びアドレス・バス22に割当てる。本発明
の好適な実施例は、複数のプロセッサ10a、10b、
10cを含むが、代替実施例では単一のプロセッサを含
み得る。単一プロセッサ・システムはアービタ12を必
要としない。
【0011】コンピュータ・ワークステーション・シス
テムは更に、少なくとも1つのシステム・メモリ・カー
ド46またはメモリ・モジュールを含む。アービタ12
がプロセッサ10の要求に応答して、アクセスをデータ
・バス20及びアドレス・バス22上に割当てると、こ
うした要求は通常、データ・チップ32及びアドレス・
チップ34により実行されるメモリ制御装置論理により
処理される。メモリ制御装置は、メモリ/I/Oバス制
御装置30と呼ばれる1構成要素内のI/Oバス制御装
置機能に選択的に結合される。メモリ/I/Oバス制御
装置30は、プロセッサ10のメモリ46への、及びI
/Oメザニン(mezzanine)・バス36へのアクセスを
制御する。I/Oメザニン・バス36はデータ・リンク
38により、1つ以上のI/Oブリッジ40に接続さ
れ、それらの機能はメモリ/I/Oバス制御装置30内
に組み込まれ得る。好適な実施例では、本発明の方法は
I/Oブリッジ40内で実行される。エミュレーション
論理は、好適な実施例では、メモリ/I/Oバス制御装
置30に内在するI/Oブリッジ40により実行される
が、特定の支援機能はプロセッサ10により実行されな
ければならない点に注意されたい。これらのプロセッサ
の機能は、図5、図6及び図10の説明の中で詳述され
る。
テムは更に、少なくとも1つのシステム・メモリ・カー
ド46またはメモリ・モジュールを含む。アービタ12
がプロセッサ10の要求に応答して、アクセスをデータ
・バス20及びアドレス・バス22上に割当てると、こ
うした要求は通常、データ・チップ32及びアドレス・
チップ34により実行されるメモリ制御装置論理により
処理される。メモリ制御装置は、メモリ/I/Oバス制
御装置30と呼ばれる1構成要素内のI/Oバス制御装
置機能に選択的に結合される。メモリ/I/Oバス制御
装置30は、プロセッサ10のメモリ46への、及びI
/Oメザニン(mezzanine)・バス36へのアクセスを
制御する。I/Oメザニン・バス36はデータ・リンク
38により、1つ以上のI/Oブリッジ40に接続さ
れ、それらの機能はメモリ/I/Oバス制御装置30内
に組み込まれ得る。好適な実施例では、本発明の方法は
I/Oブリッジ40内で実行される。エミュレーション
論理は、好適な実施例では、メモリ/I/Oバス制御装
置30に内在するI/Oブリッジ40により実行される
が、特定の支援機能はプロセッサ10により実行されな
ければならない点に注意されたい。これらのプロセッサ
の機能は、図5、図6及び図10の説明の中で詳述され
る。
【0012】I/Oブリッジ40が後述のようにトリガ
・コマンドを横取りし、プロセッサ10が入出力(I/
O)装置60との通信を要求する。I/Oブリッジ40
は次にこれらの要求を処理し、I/O装置60との間で
I/Oバス50を介してデータのエミュレート式キャッ
シュライン・バースト転送を可能にする。この機能につ
いても、図7、図8の説明の中で述べられる。
・コマンドを横取りし、プロセッサ10が入出力(I/
O)装置60との通信を要求する。I/Oブリッジ40
は次にこれらの要求を処理し、I/O装置60との間で
I/Oバス50を介してデータのエミュレート式キャッ
シュライン・バースト転送を可能にする。この機能につ
いても、図7、図8の説明の中で述べられる。
【0013】図2は、本発明の実現において使用される
様々なレジスタ及びメモリ空間割当てを示す内部メモリ
・マップの概略図である。キャッシュライン・バッファ
・アドレス・レジスタ("CLBAR")100は、通
常、メモリ46の外部にマップされ、データをI/O装
置60に転送するために使用されるページ・アドレス1
12を含む。CLBAR100内のページ・アドレス1
12は、マップド・ページ108の初期メモリ・アドレ
スに対応する。
様々なレジスタ及びメモリ空間割当てを示す内部メモリ
・マップの概略図である。キャッシュライン・バッファ
・アドレス・レジスタ("CLBAR")100は、通
常、メモリ46の外部にマップされ、データをI/O装
置60に転送するために使用されるページ・アドレス1
12を含む。CLBAR100内のページ・アドレス1
12は、マップド・ページ108の初期メモリ・アドレ
スに対応する。
【0014】I/Oターゲット・アドレス・レジス
タ("IOTAR")102は、通常、キャッシュ不能メ
モリ内のI/Oアダプタ・アドレス114を含む。IO
TAR102内のアドレス114は、I/O装置60の
メモリ・マップドI/O空間内の初期アドレスに対応す
る。
タ("IOTAR")102は、通常、キャッシュ不能メ
モリ内のI/Oアダプタ・アドレス114を含む。IO
TAR102内のアドレス114は、I/O装置60の
メモリ・マップドI/O空間内の初期アドレスに対応す
る。
【0015】図2に関連して、好適な実施例は、複数の
CLBARレジスタ100及び複数のIOTARレジス
タ102を含む。指標X308が特定の所望のCLBA
R100/IOTAR102レジスタ対をアクセスする
ためのオフセットとして使用される。
CLBARレジスタ100及び複数のIOTARレジス
タ102を含む。指標X308が特定の所望のCLBA
R100/IOTAR102レジスタ対をアクセスする
ためのオフセットとして使用される。
【0016】最後に、トリガ・アドレス空間104は、
図4に関連して後述されるトリガ・コマンドを復号する
ために、メモリ/I/Oバス制御装置30により使用さ
れる所定のアドレス範囲である。
図4に関連して後述されるトリガ・コマンドを復号する
ために、メモリ/I/Oバス制御装置30により使用さ
れる所定のアドレス範囲である。
【0017】図3は、マイクロプロセッサ10、マイク
ロプロセッサ・キャッシュ200、I/Oブリッジ40
及びI/Oバス50との間のデータ流れの概略図であ
る。プロセッサ10が指定の"マップド・ページ"108
を示すCLBAR100の内容112に合致するアドレ
スから、データを送信または受信することを要求する場
合、I/Oブリッジ制御装置40が命令を横取りし、後
述のI/Oバースト・エミュレーション論理を続け、結
局、適切な量のデータをI/Oバス50を通じてキャッ
シュエミュレーション・バッファ120とI/O装置と
の間で転送する。それ以外では、システムは公知のよう
にメモリ46に対してキャッシュライン操作を実行す
る。
ロプロセッサ・キャッシュ200、I/Oブリッジ40
及びI/Oバス50との間のデータ流れの概略図であ
る。プロセッサ10が指定の"マップド・ページ"108
を示すCLBAR100の内容112に合致するアドレ
スから、データを送信または受信することを要求する場
合、I/Oブリッジ制御装置40が命令を横取りし、後
述のI/Oバースト・エミュレーション論理を続け、結
局、適切な量のデータをI/Oバス50を通じてキャッ
シュエミュレーション・バッファ120とI/O装置と
の間で転送する。それ以外では、システムは公知のよう
にメモリ46に対してキャッシュライン操作を実行す
る。
【0018】図4は、"トリガ"・コマンド300のデー
タ形式を示す。トリガ・コマンド300はプロセッサ1
0によりメモリ/I/Oバス制御装置30に発行され
る。トリガ・コマンド30の最左端ビット302は、メ
モリ/I/Oバス制御装置30により、トリガ・コマン
ド300を復号するために使用されるトリガ・アドレス
空間の範囲内のアドレスを含む。中間ビット304は所
望の操作のために使用されるCLBAR100/IOT
AR102アドレス対を示す数値指標を含む。最右端ビ
ット306は、所望の操作において転送されるデータの
バイト数を示す数値310を含む。
タ形式を示す。トリガ・コマンド300はプロセッサ1
0によりメモリ/I/Oバス制御装置30に発行され
る。トリガ・コマンド30の最左端ビット302は、メ
モリ/I/Oバス制御装置30により、トリガ・コマン
ド300を復号するために使用されるトリガ・アドレス
空間の範囲内のアドレスを含む。中間ビット304は所
望の操作のために使用されるCLBAR100/IOT
AR102アドレス対を示す数値指標を含む。最右端ビ
ット306は、所望の操作において転送されるデータの
バイト数を示す数値310を含む。
【0019】プロセッサ書込み操作:図5は、本方法の
書込み操作を開始するために、プロセッサ10により実
行されるステップ400を示すフローチャートである。
最初にプロセッサ10は、メモリ/I/Oバス制御装置
30内に指標化されるCLBARレジスタ100を、メ
モリ・ページ108の実アドレス112により初期化し
ようとする(ステップ402)。同様にプロセッサ10
は、メモリ/I/Oバス制御装置30内のIOTARレ
ジスタ102を、PCI空間106内のマップドI/O
アダプタの実アドレス114により初期化しようとする
(ステップ404)。指標X308は、操作のために使
用されるCLBAR100/IOTAR102レジスタ
対を決定するために使用される。これらの初期化要求4
02、404は、メモリ/I/Oバス制御装置30によ
り受信される点に注意されたい(図7、図8のステップ
602参照)。読出しまたは書込みが保留の場合(図
7、図8のステップ604参照)、初期化要求402、
404はメモリ/I/Oバス制御装置30により拒絶さ
れ、プロセッサ10により再試行されなければならない
(図7、図8のステップ606参照)。適切なCLBA
R100/IOTAR102対の初期化が成功すると、
プロセッサは次に、書込み操作に使用されるプロセッサ
・キャッシュ200内のライン202を割当てる(ステ
ップ406)。割当てられるキャッシュラインはページ
108に対応付けられ、そのアドレス112は指標化さ
れたCLBARレジスタ100内にプログラムされる。
プロセッサ10はポインタ(図示せず)を、キャッシュ
ライン202の開始アドレスを指し示すように初期化す
る(ステップ408)。内部キャッシュライン・バイト
カウント(図示せず)もまた、0にリセットされる(ス
テップ408)。プロセッサ10は次に、プロセッサ・
ストアを用い、I/O装置60に向けられるキャッシュ
ライン202内のデータをメモリ・ページ108に入力
する(ステップ410)。この時、メモリ・ページ10
8のアドレス112は、現在使用されている指標化され
たCLBAR100にロード済みである。各プロセッサ
・ストアにより、内部キャッシュライン・ポインタ(図
示せず)が更新される。内部キャッシュライン・バイト
カウント・レジスタ(図示せず)もまた、キャッシュラ
イン202に記憶されるデータのバイト数を反映するよ
うに更新される(ステップ412)。
書込み操作を開始するために、プロセッサ10により実
行されるステップ400を示すフローチャートである。
最初にプロセッサ10は、メモリ/I/Oバス制御装置
30内に指標化されるCLBARレジスタ100を、メ
モリ・ページ108の実アドレス112により初期化し
ようとする(ステップ402)。同様にプロセッサ10
は、メモリ/I/Oバス制御装置30内のIOTARレ
ジスタ102を、PCI空間106内のマップドI/O
アダプタの実アドレス114により初期化しようとする
(ステップ404)。指標X308は、操作のために使
用されるCLBAR100/IOTAR102レジスタ
対を決定するために使用される。これらの初期化要求4
02、404は、メモリ/I/Oバス制御装置30によ
り受信される点に注意されたい(図7、図8のステップ
602参照)。読出しまたは書込みが保留の場合(図
7、図8のステップ604参照)、初期化要求402、
404はメモリ/I/Oバス制御装置30により拒絶さ
れ、プロセッサ10により再試行されなければならない
(図7、図8のステップ606参照)。適切なCLBA
R100/IOTAR102対の初期化が成功すると、
プロセッサは次に、書込み操作に使用されるプロセッサ
・キャッシュ200内のライン202を割当てる(ステ
ップ406)。割当てられるキャッシュラインはページ
108に対応付けられ、そのアドレス112は指標化さ
れたCLBARレジスタ100内にプログラムされる。
プロセッサ10はポインタ(図示せず)を、キャッシュ
ライン202の開始アドレスを指し示すように初期化す
る(ステップ408)。内部キャッシュライン・バイト
カウント(図示せず)もまた、0にリセットされる(ス
テップ408)。プロセッサ10は次に、プロセッサ・
ストアを用い、I/O装置60に向けられるキャッシュ
ライン202内のデータをメモリ・ページ108に入力
する(ステップ410)。この時、メモリ・ページ10
8のアドレス112は、現在使用されている指標化され
たCLBAR100にロード済みである。各プロセッサ
・ストアにより、内部キャッシュライン・ポインタ(図
示せず)が更新される。内部キャッシュライン・バイト
カウント・レジスタ(図示せず)もまた、キャッシュラ
イン202に記憶されるデータのバイト数を反映するよ
うに更新される(ステップ412)。
【0020】プロセッサ10が、現書込み操作に対する
データをキャッシュライン202に入力し終わると(ス
テップ414)、プロセッサは全キャッシュライン20
2のバースト・トランザクションにおいて、データをキ
ャッシュ200からメモリ/I/Oバス制御装置30に
強制的に転送する(ステップ416)。このアクション
はプロセッサ書込みコマンドを生成し、これがメモリ/
I/Oバス制御装置30により横取りされて処理される
(図7、図8のステップ680参照)。キャッシュエミ
ュレーション・バッファ120の中間処理を開始するた
めに、プロセッサは図4に示される形式の書込みトリガ
・コマンド300を発行する(ステップ418)。トリ
ガ・コマンド300は、内部キャッシュライン・バイト
カウント(図示せず)の現在値310を最右端ビット3
06に、また指標X308を中間ビット304に含む。
ステップ408乃至418は、プロセッサがもはや送信
すべきデータを有さなくなるまで、追加のI/O書込み
を達成するために繰り返され得る。
データをキャッシュライン202に入力し終わると(ス
テップ414)、プロセッサは全キャッシュライン20
2のバースト・トランザクションにおいて、データをキ
ャッシュ200からメモリ/I/Oバス制御装置30に
強制的に転送する(ステップ416)。このアクション
はプロセッサ書込みコマンドを生成し、これがメモリ/
I/Oバス制御装置30により横取りされて処理される
(図7、図8のステップ680参照)。キャッシュエミ
ュレーション・バッファ120の中間処理を開始するた
めに、プロセッサは図4に示される形式の書込みトリガ
・コマンド300を発行する(ステップ418)。トリ
ガ・コマンド300は、内部キャッシュライン・バイト
カウント(図示せず)の現在値310を最右端ビット3
06に、また指標X308を中間ビット304に含む。
ステップ408乃至418は、プロセッサがもはや送信
すべきデータを有さなくなるまで、追加のI/O書込み
を達成するために繰り返され得る。
【0021】プロセッサ読出し操作:図6は、本発明の
読出し操作を開始するために、プロセッサ10により実
行されるステップ500を示すフローチャートである。
最初にメモリ/I/Oバス制御装置30内のCLBAR
レジスタ100が、メモリ・ページ108の実アドレス
112により初期化される(ステップ502)。同様に
メモリ/I/Oバス制御装置30内のIOTARレジス
タ102が、PCI空間106内のマップドI/Oアダ
プタの実アドレス114により初期化される(ステップ
504)。指標X308は操作のために使用されるCL
BAR100/IOTAR102レジスタ対を決定する
ために使用される。初期化ステップ502、504は、
読出しまたは書込みが保留の場合(図7、図8のステッ
プ604、606参照)、メモリ/I/Oバス制御装置
30により処理される。初期化が成功の場合、プロセッ
サ10は図4に示される形式の読出しトリガ・コマンド
300を発行する(ステップ506)。トリガ・コマン
ド300の最右端ビット306内の数値310は、I/
O装置60からプロセッサ・キャッシュ200に転送さ
れるデータのバイト数を表す。ステップ506でプロセ
ッサ10により発行される読出しトリガ・コマンドは、
キャッシュエミュレーション・バッファ120が既にフ
ルの場合、メモリ/I/Oバス制御装置30により処理
されない(図7、図8のステップ616参照)。こうし
た状況では、プロセッサ10は読出しトリガ・コマンド
を再試行しなければならない。
読出し操作を開始するために、プロセッサ10により実
行されるステップ500を示すフローチャートである。
最初にメモリ/I/Oバス制御装置30内のCLBAR
レジスタ100が、メモリ・ページ108の実アドレス
112により初期化される(ステップ502)。同様に
メモリ/I/Oバス制御装置30内のIOTARレジス
タ102が、PCI空間106内のマップドI/Oアダ
プタの実アドレス114により初期化される(ステップ
504)。指標X308は操作のために使用されるCL
BAR100/IOTAR102レジスタ対を決定する
ために使用される。初期化ステップ502、504は、
読出しまたは書込みが保留の場合(図7、図8のステッ
プ604、606参照)、メモリ/I/Oバス制御装置
30により処理される。初期化が成功の場合、プロセッ
サ10は図4に示される形式の読出しトリガ・コマンド
300を発行する(ステップ506)。トリガ・コマン
ド300の最右端ビット306内の数値310は、I/
O装置60からプロセッサ・キャッシュ200に転送さ
れるデータのバイト数を表す。ステップ506でプロセ
ッサ10により発行される読出しトリガ・コマンドは、
キャッシュエミュレーション・バッファ120が既にフ
ルの場合、メモリ/I/Oバス制御装置30により処理
されない(図7、図8のステップ616参照)。こうし
た状況では、プロセッサ10は読出しトリガ・コマンド
を再試行しなければならない。
【0022】"陳腐な(stale)"データを読出さないよ
うにするため、プロセッサは最初にプロセッサ・キャッ
シュライン202を無効にする(ステップ508)。プ
ロセッサ10は、"データ・キャッシュ無効"命令を指標
化されたCLBARレジスタ100に内在するアドレス
112に発行することにより、この無効化機能を達成す
る。メモリ/I/Oバス制御装置30が、ステップ50
6でプロセッサIOにより発行された読出しトリガ・コ
マンドを処理し、バースト転送を用いてI/Oからキャ
ッシュライン・バッファ120を充填すると(図9のス
テップ704、706参照)、キャッシュライン・バッ
ファ120がプロセッサ・キャッシュライン202に読
込まれる準備が整う。従って、プロセッサは読出し命令
を指標化されたCLBARレジスタ100にロードされ
た実アドレス112に発行する(ステップ510)。こ
の操作は指標化されたCLBARレジスタ100内のア
ドレス112に対応付けられるキャッシュライン・バッ
ファ120から、プロセッサ・キャッシュライン202
にデータのキャッシュライン・ブロックをダンプする機
能を実行する。プロセッサ10は次にステップ512に
進み、キャッシュライン202内のデータを処理する。
プロセッサはもはやI/O読出しが不要となるまでステ
ップ506乃至512を繰り返し、追加のI/O読出し
を要求する。
うにするため、プロセッサは最初にプロセッサ・キャッ
シュライン202を無効にする(ステップ508)。プ
ロセッサ10は、"データ・キャッシュ無効"命令を指標
化されたCLBARレジスタ100に内在するアドレス
112に発行することにより、この無効化機能を達成す
る。メモリ/I/Oバス制御装置30が、ステップ50
6でプロセッサIOにより発行された読出しトリガ・コ
マンドを処理し、バースト転送を用いてI/Oからキャ
ッシュライン・バッファ120を充填すると(図9のス
テップ704、706参照)、キャッシュライン・バッ
ファ120がプロセッサ・キャッシュライン202に読
込まれる準備が整う。従って、プロセッサは読出し命令
を指標化されたCLBARレジスタ100にロードされ
た実アドレス112に発行する(ステップ510)。こ
の操作は指標化されたCLBARレジスタ100内のア
ドレス112に対応付けられるキャッシュライン・バッ
ファ120から、プロセッサ・キャッシュライン202
にデータのキャッシュライン・ブロックをダンプする機
能を実行する。プロセッサ10は次にステップ512に
進み、キャッシュライン202内のデータを処理する。
プロセッサはもはやI/O読出しが不要となるまでステ
ップ506乃至512を繰り返し、追加のI/O読出し
を要求する。
【0023】プロセッサ転送操作:特定のアプリケーシ
ョンでは、プロセッサ10はメモリ/I/Oバス制御装
置30に対して、あるI/O装置60からキャッシュエ
ミュレーション・バッファ120にデータのバーストを
読出し、IOTAR102を再プログラムし、プロセッ
サ・キャッシュ200へのデータの転送を指令すること
無しに、別のI/O装置60への書込みをトリガするよ
うに指令する。これはデータを圧縮または非圧縮した
り、データを符号化する上で特に有用な機能である。こ
の機能は本発明のMOVE部分である。この機能に関連
するステップ800が、図10のフローチャートに示さ
れる。操作を開始するためにプロセッサ10は、指標化
されたCLBARレジスタ100をMOVE操作におい
て使用されるメモリ・ページ108の実アドレス112
により初期化することを要求する(ステップ802)。
プロセッサ10はまた、指標化されたIOTARレジス
タ102を、PCI空間106内のI/Oアダプタの実
アドレス114により初期化することを要求する(ステ
ップ804)。このアドレス114はソースI/O装置
60に対応する。プロセッサ読出し及び書込み機能に関
して、初期化ステップ802及び804は、読出しまた
は書込みが保留の場合(図7、図8のステップ604、
606参照)、メモリ/I/Oバス制御装置30により
処理されない。初期化が成功の場合、プロセッサ10
は、図4に示される形式の読出しトリガ・コマンド30
0を発行する(ステップ806)。(このことはメモリ
/I/Oバス制御装置30に対して、指標化されたIO
TAR102内に見い出されるI/Oアドレス114に
バースト読出しを発行し(ステップ704)、読出され
たデータをCLBAR100内のメモリ・ページ・アド
レス112に対応付けられるキャッシュエミュレーショ
ン・バッファ120内に配置する(ステップ706)よ
うに指示する。図9参照。)プロセッサは次に、指標化
されたIOTARレジスタ102をターゲットI/O装
置60の実アドレスにより初期化することを要求する
(ステップ808)。プロセッサは次に、書込みトリガ
をメモり/I/Oバス制御装置30に発行する(ステッ
プ810)。(このことはメモリ/I/Oバス制御装置
30に対して、キャッシュエミュレーション・バッファ
120内のデータをターゲットI/O装置60に送信す
るように指示する(ステップ618)。図7、図8参
照。)ステップ804乃至810は、プロセッサがもは
や追加のMOVE操作を要求しなくなるまで繰り返され
得る。
ョンでは、プロセッサ10はメモリ/I/Oバス制御装
置30に対して、あるI/O装置60からキャッシュエ
ミュレーション・バッファ120にデータのバーストを
読出し、IOTAR102を再プログラムし、プロセッ
サ・キャッシュ200へのデータの転送を指令すること
無しに、別のI/O装置60への書込みをトリガするよ
うに指令する。これはデータを圧縮または非圧縮した
り、データを符号化する上で特に有用な機能である。こ
の機能は本発明のMOVE部分である。この機能に関連
するステップ800が、図10のフローチャートに示さ
れる。操作を開始するためにプロセッサ10は、指標化
されたCLBARレジスタ100をMOVE操作におい
て使用されるメモリ・ページ108の実アドレス112
により初期化することを要求する(ステップ802)。
プロセッサ10はまた、指標化されたIOTARレジス
タ102を、PCI空間106内のI/Oアダプタの実
アドレス114により初期化することを要求する(ステ
ップ804)。このアドレス114はソースI/O装置
60に対応する。プロセッサ読出し及び書込み機能に関
して、初期化ステップ802及び804は、読出しまた
は書込みが保留の場合(図7、図8のステップ604、
606参照)、メモリ/I/Oバス制御装置30により
処理されない。初期化が成功の場合、プロセッサ10
は、図4に示される形式の読出しトリガ・コマンド30
0を発行する(ステップ806)。(このことはメモリ
/I/Oバス制御装置30に対して、指標化されたIO
TAR102内に見い出されるI/Oアドレス114に
バースト読出しを発行し(ステップ704)、読出され
たデータをCLBAR100内のメモリ・ページ・アド
レス112に対応付けられるキャッシュエミュレーショ
ン・バッファ120内に配置する(ステップ706)よ
うに指示する。図9参照。)プロセッサは次に、指標化
されたIOTARレジスタ102をターゲットI/O装
置60の実アドレスにより初期化することを要求する
(ステップ808)。プロセッサは次に、書込みトリガ
をメモり/I/Oバス制御装置30に発行する(ステッ
プ810)。(このことはメモリ/I/Oバス制御装置
30に対して、キャッシュエミュレーション・バッファ
120内のデータをターゲットI/O装置60に送信す
るように指示する(ステップ618)。図7、図8参
照。)ステップ804乃至810は、プロセッサがもは
や追加のMOVE操作を要求しなくなるまで繰り返され
得る。
【0024】メモリ制御装置の操作:図7、図8は、本
方法においてメモリ/I/Oバス制御装置30(特にI
/Oブリッジ・ユニット40)により実行される機能の
フローチャートである。メモリ/I/Oバス制御装置3
0は、4つの基本クラスの機能を実行する。それらは、
1)CLBAR100及びIOTAR102レジスタ内
容112、114の初期化、2)トリガ・コマンド30
0の処理、3)プロセッサ10からのキャッシュライ
ン"読出し"コマンドの処理、4)プロセッサ10からの
キャッシュライン"書込み"コマンドの処理である。図
7、図8のステップ602乃至608により示される初
期化は比較的小さな機能であり、本方法のメモリ/I/
Oバス制御装置30の大部分は、トリガ・コマンド30
0、"読出し"コマンド及び"書込み"コマンドの処理に関
連する。
方法においてメモリ/I/Oバス制御装置30(特にI
/Oブリッジ・ユニット40)により実行される機能の
フローチャートである。メモリ/I/Oバス制御装置3
0は、4つの基本クラスの機能を実行する。それらは、
1)CLBAR100及びIOTAR102レジスタ内
容112、114の初期化、2)トリガ・コマンド30
0の処理、3)プロセッサ10からのキャッシュライ
ン"読出し"コマンドの処理、4)プロセッサ10からの
キャッシュライン"書込み"コマンドの処理である。図
7、図8のステップ602乃至608により示される初
期化は比較的小さな機能であり、本方法のメモリ/I/
Oバス制御装置30の大部分は、トリガ・コマンド30
0、"読出し"コマンド及び"書込み"コマンドの処理に関
連する。
【0025】初期化:プロセッサ10が、CLBAR1
00またはIOTAR102レジスタに割当てられるア
ドレス範囲に対応するアドレスへの読出し、またはそこ
からの書込みを試行するとき、こうした試行がメモリ/
I/Oバス制御装置30により横取りされる。メモリ/
I/Oバス制御装置30は、プロセッサ10の試行した
読出しまたは書込みが、これらのレジスタ100、10
2の1つに向けられるか否かをチェックする(ステップ
602)。向けられる場合、メモリ/I/Oバス制御装
置30はキャッシュライン・バースト読出しまたは書込
みエミュレーション操作が進行中か否かを判断する(ス
テップ604)。(トリガ・コマンドを処理するとき、
メモリ/I/Oバス制御装置30はこれらの"保留"標識
をセットし、レジスタ100、102への読出しまたは
それらからの書込みを禁止する。図7、図8のステップ
614及び図9のステップ702参照。)キャッシュラ
イン・バースト読出しまたは書込みエミュレーション操
作が進行中の場合、メモリ/I/Oバス制御装置30は
読出しまたは書込みを拒絶し、プロセッサ10に操作を
再試行させる(ステップ606)。読出しまたは書込み
が保留の場合、メモリ/I/Oバス制御装置30は、C
LBAR100またはIOTAR102レジスタの内容
112または114をプロセッサ10により要求される
ように更新する。
00またはIOTAR102レジスタに割当てられるア
ドレス範囲に対応するアドレスへの読出し、またはそこ
からの書込みを試行するとき、こうした試行がメモリ/
I/Oバス制御装置30により横取りされる。メモリ/
I/Oバス制御装置30は、プロセッサ10の試行した
読出しまたは書込みが、これらのレジスタ100、10
2の1つに向けられるか否かをチェックする(ステップ
602)。向けられる場合、メモリ/I/Oバス制御装
置30はキャッシュライン・バースト読出しまたは書込
みエミュレーション操作が進行中か否かを判断する(ス
テップ604)。(トリガ・コマンドを処理するとき、
メモリ/I/Oバス制御装置30はこれらの"保留"標識
をセットし、レジスタ100、102への読出しまたは
それらからの書込みを禁止する。図7、図8のステップ
614及び図9のステップ702参照。)キャッシュラ
イン・バースト読出しまたは書込みエミュレーション操
作が進行中の場合、メモリ/I/Oバス制御装置30は
読出しまたは書込みを拒絶し、プロセッサ10に操作を
再試行させる(ステップ606)。読出しまたは書込み
が保留の場合、メモリ/I/Oバス制御装置30は、C
LBAR100またはIOTAR102レジスタの内容
112または114をプロセッサ10により要求される
ように更新する。
【0026】トリガ・コマンド:I/O装置60とのエ
ミュレート式バースト・キャッシュライン通信は、2ス
テップのプロセスである。最後のステップ、すなわちプ
ロセッサ・キャッシュ200へのまたはそこからのデー
タの伝送が発生するために中間ステップが実行されなけ
ればならない。"トリガ"・コマンド300の処理は、こ
の中間ステップを表す。この中間ステップは、書込み操
作における内部キャッシュエミュレーション・バッファ
120からI/O装置60へのデータのダンピングを含
む。読出し操作では、中間ステップはI/O装置60か
ら内部キャッシュエミュレーション・バッファ120へ
のデータのフェッチを含む。トリガ・コマンド300は
メモリ/I/Oバス制御装置30に対して、I/O装置
60から内部キャッシュエミュレーション・バッファ1
20に、或いはその逆に転送されるデータのバイト数3
10、及び使用されるCLBAR100/IOTAR1
02レジスタ対を示す。指標化されたIOTARレジス
タ102内のアドレス114は、メモリ/I/Oバス制
御装置30に操作に関わるI/O装置60を示す。指標
化されたCLBARレジスタ100内のアドレス112
は、メモリ/I/Oバス制御装置30に、操作に関わる
マップド・ページ108を示す。プロセッサIOからの
トリガ・コマンド300の受信に際してメモリ/I/O
バス制御装置30は、最左端ビット302がトリガ・コ
マンド空間104として割当てられるアドレス範囲内の
アドレスを含むことを判断することにより、それをトリ
ガ・コマンドとして認識する(ステップ610)。これ
らのアドレス104は、メモリ/I/Oバス制御装置3
0により、トリガ・コマンド300を復号するために使
用される。メモリ/I/Oバス制御装置30が読出しト
リガを受信した場合、メモリ/I/Oバス制御装置30
は図9に関連して後述されるように読出しトリガ操作を
実行する。メモリ/I/Oバス制御装置30が書込みト
リガを受信した場合、メモリ/I/Oバス制御装置30
は次のように、中間I/Oバッファ・ダンプ・ステップ
を実行する。
ミュレート式バースト・キャッシュライン通信は、2ス
テップのプロセスである。最後のステップ、すなわちプ
ロセッサ・キャッシュ200へのまたはそこからのデー
タの伝送が発生するために中間ステップが実行されなけ
ればならない。"トリガ"・コマンド300の処理は、こ
の中間ステップを表す。この中間ステップは、書込み操
作における内部キャッシュエミュレーション・バッファ
120からI/O装置60へのデータのダンピングを含
む。読出し操作では、中間ステップはI/O装置60か
ら内部キャッシュエミュレーション・バッファ120へ
のデータのフェッチを含む。トリガ・コマンド300は
メモリ/I/Oバス制御装置30に対して、I/O装置
60から内部キャッシュエミュレーション・バッファ1
20に、或いはその逆に転送されるデータのバイト数3
10、及び使用されるCLBAR100/IOTAR1
02レジスタ対を示す。指標化されたIOTARレジス
タ102内のアドレス114は、メモリ/I/Oバス制
御装置30に操作に関わるI/O装置60を示す。指標
化されたCLBARレジスタ100内のアドレス112
は、メモリ/I/Oバス制御装置30に、操作に関わる
マップド・ページ108を示す。プロセッサIOからの
トリガ・コマンド300の受信に際してメモリ/I/O
バス制御装置30は、最左端ビット302がトリガ・コ
マンド空間104として割当てられるアドレス範囲内の
アドレスを含むことを判断することにより、それをトリ
ガ・コマンドとして認識する(ステップ610)。これ
らのアドレス104は、メモリ/I/Oバス制御装置3
0により、トリガ・コマンド300を復号するために使
用される。メモリ/I/Oバス制御装置30が読出しト
リガを受信した場合、メモリ/I/Oバス制御装置30
は図9に関連して後述されるように読出しトリガ操作を
実行する。メモリ/I/Oバス制御装置30が書込みト
リガを受信した場合、メモリ/I/Oバス制御装置30
は次のように、中間I/Oバッファ・ダンプ・ステップ
を実行する。
【0027】第1に、メモリ/I/Oバス制御装置30
は、書込み保留ラッチ(図示せず)をセットし、プロセ
ッサ10がCLBAR100またはIOTAR102レ
ジスタに読出すまたはそれらから書込むことを禁止する
(ステップ614)。書込み保留ラッチは、制御装置書
込みコマンドの処理にも不可欠である(図7、図8のス
テップ688参照)。指標化されたCLBARレジスタ
100内のアドレス112に対応するキャッシュエミュ
レーション・バッファ120がフルの場合(ステップ6
16)、バッファはI/O装置60への伝送の準備が整
う。従って、メモリ/I/Oバス制御装置30は、IO
TARレジスタ102内のアドレス114にバースト転
送を実行することにより、データをこうしたキャッシュ
エミュレーション・バッファ120からI/O装置60
へ送信する(ステップ618)。メモリ/I/Oバス制
御装置30はこの時、書込みトリガ・コマンド300内
に示されるバイト数310のデータをI/Oバス50を
介して、PCI空間106内のアダプタに転送する。デ
ータのこの転送の後、メモリ/I/Oバス制御装置30
は、"バッファ・フル"標識(図示せず)及び書込み保留
ラッチ(図示せず)をリセットする(ステップ62
0)。本方法のこの部分により、メモリ/I/Oバス制
御装置30はキャッシュライン書込みを横取りし、I/
O装置60に適切なバイト長のバースト転送を実行する
中間ステップを実行する。
は、書込み保留ラッチ(図示せず)をセットし、プロセ
ッサ10がCLBAR100またはIOTAR102レ
ジスタに読出すまたはそれらから書込むことを禁止する
(ステップ614)。書込み保留ラッチは、制御装置書
込みコマンドの処理にも不可欠である(図7、図8のス
テップ688参照)。指標化されたCLBARレジスタ
100内のアドレス112に対応するキャッシュエミュ
レーション・バッファ120がフルの場合(ステップ6
16)、バッファはI/O装置60への伝送の準備が整
う。従って、メモリ/I/Oバス制御装置30は、IO
TARレジスタ102内のアドレス114にバースト転
送を実行することにより、データをこうしたキャッシュ
エミュレーション・バッファ120からI/O装置60
へ送信する(ステップ618)。メモリ/I/Oバス制
御装置30はこの時、書込みトリガ・コマンド300内
に示されるバイト数310のデータをI/Oバス50を
介して、PCI空間106内のアダプタに転送する。デ
ータのこの転送の後、メモリ/I/Oバス制御装置30
は、"バッファ・フル"標識(図示せず)及び書込み保留
ラッチ(図示せず)をリセットする(ステップ62
0)。本方法のこの部分により、メモリ/I/Oバス制
御装置30はキャッシュライン書込みを横取りし、I/
O装置60に適切なバイト長のバースト転送を実行する
中間ステップを実行する。
【0028】プロセッサ10は任意の順序で、書込みト
リガ・コマンドを発行し(ステップ418)、キャッシ
ュラインを書込むことができる(ステップ416)。し
かしながら、両者はキャッシュエミュレーション・バッ
ファ120内のデータが、I/O装置60に送信される
(ステップ618)以前に発生しなければならない。こ
のことが、書込みトリガ・コマンドの受信に際して(ス
テップ610)、チェック616でバッファ120が充
填済みであることを確認し、また書込みコマンドの受信
に際して(ステップ680)、チェック688で書込み
トリガ・コマンドが受信済みであることを確認する理由
である。
リガ・コマンドを発行し(ステップ418)、キャッシ
ュラインを書込むことができる(ステップ416)。し
かしながら、両者はキャッシュエミュレーション・バッ
ファ120内のデータが、I/O装置60に送信される
(ステップ618)以前に発生しなければならない。こ
のことが、書込みトリガ・コマンドの受信に際して(ス
テップ610)、チェック616でバッファ120が充
填済みであることを確認し、また書込みコマンドの受信
に際して(ステップ680)、チェック688で書込み
トリガ・コマンドが受信済みであることを確認する理由
である。
【0029】読出しトリガが受信された場合(ステップ
612)、メモリ/I/Oバス制御装置30は、図9に
示されるステップ700乃至710を実行する。メモリ
/I/Oバス制御装置30は、中間エミュレート式キャ
ッシュライン・バースト読出し操作が、既に保留である
か否かを判断する(ステップ700)。保留の場合、メ
モリ/I/Oバス制御装置30は、制御装置30からの
読出しトリガ伝送を拒絶し、プロセッサ10に伝送を再
試行するように指示する(ステップ710)。中間キャ
ッシュライン・バースト・エミュレーション読出しが以
前に進行中でなかった場合、メモリ/I/Oバス制御装
置30は伝送を受諾し、"読出し保留"ラッチ(図示せ
ず)をセットすることにより(ステップ702)、読出
しエミュレーションを開始する。メモリ/I/Oバス制
御装置30は次に、指標化されたIOTAR102に内
在するアドレス114に相当するI/O装置60に読出
しバーストを発行することにより、中間読出しを実行す
る(ステップ704)。この伝送は、以前にメモり/I
/Oバス制御装置30により復号された(ステップ61
0、612)読出しトリガ・コマンドの最右端バイト3
05により示されるバイト数310のデータを受信す
る。中間I/O読出し操作(ステップ704)の間に受
信されるデータが、指標化されたCLBARレジスタ1
00内のアドレス112に対応付けられるキャッシュエ
ミュレーション・バッファ120に記憶される(ステッ
プ706)。メモリ/I/Oバス制御装置30は次
に、"バッファ・フル"・ラッチ(図示せず)をセットし
(ステップ706)、中間読出しステップが完了したこ
と、従ってデータがプロセッサ・キャッシュ200に伝
送される準備が整ったことを示す。中間読出しステップ
が完了したので、メモリ/I/Oバス制御装置30は"
読出し保留"ラッチ(図示せず)をリセットする。
612)、メモリ/I/Oバス制御装置30は、図9に
示されるステップ700乃至710を実行する。メモリ
/I/Oバス制御装置30は、中間エミュレート式キャ
ッシュライン・バースト読出し操作が、既に保留である
か否かを判断する(ステップ700)。保留の場合、メ
モリ/I/Oバス制御装置30は、制御装置30からの
読出しトリガ伝送を拒絶し、プロセッサ10に伝送を再
試行するように指示する(ステップ710)。中間キャ
ッシュライン・バースト・エミュレーション読出しが以
前に進行中でなかった場合、メモリ/I/Oバス制御装
置30は伝送を受諾し、"読出し保留"ラッチ(図示せ
ず)をセットすることにより(ステップ702)、読出
しエミュレーションを開始する。メモリ/I/Oバス制
御装置30は次に、指標化されたIOTAR102に内
在するアドレス114に相当するI/O装置60に読出
しバーストを発行することにより、中間読出しを実行す
る(ステップ704)。この伝送は、以前にメモり/I
/Oバス制御装置30により復号された(ステップ61
0、612)読出しトリガ・コマンドの最右端バイト3
05により示されるバイト数310のデータを受信す
る。中間I/O読出し操作(ステップ704)の間に受
信されるデータが、指標化されたCLBARレジスタ1
00内のアドレス112に対応付けられるキャッシュエ
ミュレーション・バッファ120に記憶される(ステッ
プ706)。メモリ/I/Oバス制御装置30は次
に、"バッファ・フル"・ラッチ(図示せず)をセットし
(ステップ706)、中間読出しステップが完了したこ
と、従ってデータがプロセッサ・キャッシュ200に伝
送される準備が整ったことを示す。中間読出しステップ
が完了したので、メモリ/I/Oバス制御装置30は"
読出し保留"ラッチ(図示せず)をリセットする。
【0030】読出しコマンド:図6に関連して上述した
ように、本方法の読出し部分の間にプロセッサ10は"
読出しトリガ"・コマンドを発行して(ステップ50
6)、中間バッファ処理を開始し(ステップ508)、
次に読出し命令("読出しコマンド")を、指標化された
CLBARレジスタ100にロードされた実アドレス1
12に発行する(ステップ510)。この読出しコマン
ドのメモリ/I/Oバス制御装置30による処理に対応
付けられるステップ650乃至660が、図7、図8に
示される。
ように、本方法の読出し部分の間にプロセッサ10は"
読出しトリガ"・コマンドを発行して(ステップ50
6)、中間バッファ処理を開始し(ステップ508)、
次に読出し命令("読出しコマンド")を、指標化された
CLBARレジスタ100にロードされた実アドレス1
12に発行する(ステップ510)。この読出しコマン
ドのメモリ/I/Oバス制御装置30による処理に対応
付けられるステップ650乃至660が、図7、図8に
示される。
【0031】メモリ/I/Oバス制御装置30が、読出
しコマンドがプロセッサ10から制御装置30に発行さ
れた(ステップ510)と判断すると(ステップ65
0)、メモリ/I/Oバス制御装置30は、プロセッサ
10がCLBARレジスタ100として割当てられたア
ドレス範囲内のアドレスから読出そうとしたか否かをチ
ェックする(ステップ652)。そうでない場合、読出
しは正規のキャッシュライン読出し操作として、公知の
ように処理される(ステップ670)。読出しコマンド
がCLBAR100に対して試行した場合、メモリ/I
/Oバス制御装置30はそれを横取りし、ステップ65
4乃至660を次のように実行する。
しコマンドがプロセッサ10から制御装置30に発行さ
れた(ステップ510)と判断すると(ステップ65
0)、メモリ/I/Oバス制御装置30は、プロセッサ
10がCLBARレジスタ100として割当てられたア
ドレス範囲内のアドレスから読出そうとしたか否かをチ
ェックする(ステップ652)。そうでない場合、読出
しは正規のキャッシュライン読出し操作として、公知の
ように処理される(ステップ670)。読出しコマンド
がCLBAR100に対して試行した場合、メモリ/I
/Oバス制御装置30はそれを横取りし、ステップ65
4乃至660を次のように実行する。
【0032】最初に、メモリ/I/Oバス制御装置30
は、指標化されたCLBAR100に対応付けられるキ
ャッシュエミュレーション・バッファ120がフルか否
か、すなわちプロセッサ10への伝送の準備が整ってい
るか否かを判断する(ステップ654)。フルの場合、
キャッシュエミュレーション・バッファ120内のデー
タが、プロセッサ10にバーストにより送信され(ステ
ップ656)、エミュレーション方法の第2のステップ
が完了する。キャッシュエミュレーション・バッファ1
20がフルでない場合、メモリ/I/Oバス制御装置3
0は、バッファ120のステータスをポーリングし続け
ることにより(ステップ654)、バッファ120がI
/O装置60からフルになるのを待機する(すなわち、
中間バッファ充填ステップがまだ完了していない)。本
方法のエラー・チェック機構は、キャッシュエミュレー
ション・バッファ120が空であるが、中間処理が発生
していない場合、メモリ/I/Oバス制御装置30に読
出しコマンドを拒否するように指示する。こうした場合
では、メモリ/I/Oバス制御装置30が、"読出し保
留"ラッチ(図示せず)がリセットされている(図9の
ステップ708参照)ことを検出すると(ステップ65
8)、プロセッサ10は操作を再試行するように強要さ
れる(ステップ660)。読出しの成功の後、I/O装
置60から更にデータが所望される場合、本方法はプロ
セッサ10が別の読出しトリガ・コマンド300を発行
することを可能にする一方で(ステップ506)、同時
に、以前の読出し転送(ステップ656)において受信
されたキャッシュライン202データを処理する。この
オーバラップは、従来のI/O通信機構において可能で
なかった効率的な"パイプライン"効果を可能にする。
は、指標化されたCLBAR100に対応付けられるキ
ャッシュエミュレーション・バッファ120がフルか否
か、すなわちプロセッサ10への伝送の準備が整ってい
るか否かを判断する(ステップ654)。フルの場合、
キャッシュエミュレーション・バッファ120内のデー
タが、プロセッサ10にバーストにより送信され(ステ
ップ656)、エミュレーション方法の第2のステップ
が完了する。キャッシュエミュレーション・バッファ1
20がフルでない場合、メモリ/I/Oバス制御装置3
0は、バッファ120のステータスをポーリングし続け
ることにより(ステップ654)、バッファ120がI
/O装置60からフルになるのを待機する(すなわち、
中間バッファ充填ステップがまだ完了していない)。本
方法のエラー・チェック機構は、キャッシュエミュレー
ション・バッファ120が空であるが、中間処理が発生
していない場合、メモリ/I/Oバス制御装置30に読
出しコマンドを拒否するように指示する。こうした場合
では、メモリ/I/Oバス制御装置30が、"読出し保
留"ラッチ(図示せず)がリセットされている(図9の
ステップ708参照)ことを検出すると(ステップ65
8)、プロセッサ10は操作を再試行するように強要さ
れる(ステップ660)。読出しの成功の後、I/O装
置60から更にデータが所望される場合、本方法はプロ
セッサ10が別の読出しトリガ・コマンド300を発行
することを可能にする一方で(ステップ506)、同時
に、以前の読出し転送(ステップ656)において受信
されたキャッシュライン202データを処理する。この
オーバラップは、従来のI/O通信機構において可能で
なかった効率的な"パイプライン"効果を可能にする。
【0033】書込コマンド:図5に関連して上述したよ
うに、本方法の書込み部分の間、プロセッサ10は、書
込み操作において転送されるキャッシュライン202を
充填する際、キャッシュ200からデータを強制的に取
り出そうとする(図5のステップ416参照)。このア
クション416は、メモリ/I/Oバス制御装置30に
より受信される書込みコマンドを生成する。こうした書
込みコマンドのメモリ/I/Oバス制御装置30による
処理が、図7、図8のステップ670乃至688に示さ
れる。
うに、本方法の書込み部分の間、プロセッサ10は、書
込み操作において転送されるキャッシュライン202を
充填する際、キャッシュ200からデータを強制的に取
り出そうとする(図5のステップ416参照)。このア
クション416は、メモリ/I/Oバス制御装置30に
より受信される書込みコマンドを生成する。こうした書
込みコマンドのメモリ/I/Oバス制御装置30による
処理が、図7、図8のステップ670乃至688に示さ
れる。
【0034】書込みコマンドの受信に際してメモリ/I
/Oバス制御装置30は、試行される書込みのメモリ・
アドレスが、指標化されたCLBARレジスタ100内
にプログラムされたアドレス112であるか否かを判断
する(ステップ682)。そうである場合、メモリ/I
/Oバス制御装置30はデータを横取りし、それを指標
化されたCLBARレジスタ100に対応付けられるキ
ャッシュエミュレーション・バッファ120に記憶す
る。メモリ/I/Oバス制御装置30は次に、"バッフ
ァ・フル"・ラッチ(図示せず)をセットすることによ
り(ステップ686)、指標化されたCLBARレジス
タ100内のアドレス112に対応付けられるキャッシ
ュエミュレーション・バッファ120をフルとマークす
る。
/Oバス制御装置30は、試行される書込みのメモリ・
アドレスが、指標化されたCLBARレジスタ100内
にプログラムされたアドレス112であるか否かを判断
する(ステップ682)。そうである場合、メモリ/I
/Oバス制御装置30はデータを横取りし、それを指標
化されたCLBARレジスタ100に対応付けられるキ
ャッシュエミュレーション・バッファ120に記憶す
る。メモリ/I/Oバス制御装置30は次に、"バッフ
ァ・フル"・ラッチ(図示せず)をセットすることによ
り(ステップ686)、指標化されたCLBARレジス
タ100内のアドレス112に対応付けられるキャッシ
ュエミュレーション・バッファ120をフルとマークす
る。
【0035】プロセッサ10は任意の順序で、書込みト
リガ・コマンドを発行し(ステップ418)、キャッシ
ュラインを書込むことができる(ステップ416)。そ
の結果、メモリ/I/Oバス制御装置30は、プロセッ
サ10からの書込みコマンドの処理に際して(ステップ
680乃至688)、書込みトリガ・コマンドが受信済
みであることを保証しなければならない。そのために、
メモリ/I/Oバス制御装置10は、キャッシュエミュ
レーション・バッファを充填した後(ステップ684、
685)、書込みが保留(すなわち、書込みトリガが前
に受信された)か否かをチェックする(ステップ68
8)。ここでメモリ/I/Oバス制御装置30は、書込
みトリガ・コマンドの受信に際して(ステップ61
0)、書込み保留ラッチをセットする(ステップ61
4)点に注意されたい。従って、1)プロセッサ10が
キャッシュライン202データをキャッシュエミュレー
ション・バッファ120に書込み済みであり、2)書込
みトリガが受信済みの場合、メモリ/I/Oバス制御装
置30は、データをキャッシュエミュレーション・バッ
ファ120からI/O装置に送信し(ステップ61
8)、"バッファ・フル"・ラッチ(図示せず)及び"書
込み保留"ラッチ(図示せず)をリセットする(ステッ
プ620)。もちろん、メモリ/I/Oバス制御装置3
0により横取りされた書込みコマンド(ステップ68
0)が、指標化されたCLBARレジスタ100内のア
ドレス112に書込もうとしない場合には、正規のキャ
ッシュライン書込み操作が公知のように実行される(ス
テップ670)。
リガ・コマンドを発行し(ステップ418)、キャッシ
ュラインを書込むことができる(ステップ416)。そ
の結果、メモリ/I/Oバス制御装置30は、プロセッ
サ10からの書込みコマンドの処理に際して(ステップ
680乃至688)、書込みトリガ・コマンドが受信済
みであることを保証しなければならない。そのために、
メモリ/I/Oバス制御装置10は、キャッシュエミュ
レーション・バッファを充填した後(ステップ684、
685)、書込みが保留(すなわち、書込みトリガが前
に受信された)か否かをチェックする(ステップ68
8)。ここでメモリ/I/Oバス制御装置30は、書込
みトリガ・コマンドの受信に際して(ステップ61
0)、書込み保留ラッチをセットする(ステップ61
4)点に注意されたい。従って、1)プロセッサ10が
キャッシュライン202データをキャッシュエミュレー
ション・バッファ120に書込み済みであり、2)書込
みトリガが受信済みの場合、メモリ/I/Oバス制御装
置30は、データをキャッシュエミュレーション・バッ
ファ120からI/O装置に送信し(ステップ61
8)、"バッファ・フル"・ラッチ(図示せず)及び"書
込み保留"ラッチ(図示せず)をリセットする(ステッ
プ620)。もちろん、メモリ/I/Oバス制御装置3
0により横取りされた書込みコマンド(ステップ68
0)が、指標化されたCLBARレジスタ100内のア
ドレス112に書込もうとしない場合には、正規のキャ
ッシュライン書込み操作が公知のように実行される(ス
テップ670)。
【0036】上述の説明から、本発明が少なくとも1つ
のプロセッサ、及び少なくとも1つのI/O装置を有す
るコンピュータ・システムを考慮することが理解されよ
う。従って、ここで詳述された開示は単に一例として提
供されたものであり、本発明を制限するものではないこ
とが理解されよう。様々な変更及び改良が、当業者には
明らかとなり、本発明の趣旨及び範囲から逸脱すること
無しに実現されよう。
のプロセッサ、及び少なくとも1つのI/O装置を有す
るコンピュータ・システムを考慮することが理解されよ
う。従って、ここで詳述された開示は単に一例として提
供されたものであり、本発明を制限するものではないこ
とが理解されよう。様々な変更及び改良が、当業者には
明らかとなり、本発明の趣旨及び範囲から逸脱すること
無しに実現されよう。
【0037】まとめとして、本発明の構成に関して以下
の事項を開示する。
の事項を開示する。
【0038】(1)入出力(I/O)装置とプロセッサ
との間でデータをバースト転送する方法であって、 a)前記I/O装置との通信を要求するキャッシュ可能
なプロセッサ・コマンドを横取りするステップと、 b)前記プロセッサ・コマンドを処理する中間キャッシ
ュ・エミュレーション論理を実行するステップと、 を含む、方法。 (2)c)キャッシュエミュレーション・バッファと前
記I/O装置との間でデータのバーストを転送するステ
ップを含む、前記(1)記載の方法。 (3)d)前記キャッシュエミュレーション・バッファ
と前記プロセッサとの間でデータ転送を実行するステッ
プを含む、前記(2)記載の方法。 (4)前記ステップa)が、前記プロセッサからの書込
みトリガ・コマンドを横取りするステップを含む、前記
(1)記載の方法。 (5)前記ステップa)が、前記プロセッサからの読出
しトリガ・コマンドを横取りするステップを含む、前記
(1)記載の方法。 (6)前記ステップb)が、メモリ/I/O制御装置内
のI/Oブリッジ内でエミュレーション論理を実行する
ステップを含む、前記(1)記載の方法。 (7)前記I/Oブリッジ・ユニットが、少なくとも1
メモリ・ページへのプロセッサ・キャッシュ可能コマン
ドを横取りする、前記(6)記載の方法。 (8)前記メモリ/I/O制御装置内の少なくとも1つ
のレジスタに、主メモリ空間の外部にマップされ、前記
キャッシュエミュレーション・バッファとして使用され
る前記メモリ・ページのアドレスをロードするステップ
を含む、前記(7)記載の方法。 (9)前記プロセッサ・キャッシュ可能コマンドを、I
/O空間またはメモリ・マップドI/O空間内の対応す
るI/Oアダプタ・アドレスに対応付けるステップを含
む、前記(8)記載の方法。 (10)前記メモリ/I/O制御装置内のレジスタに前
記I/Oアダプタ・アドレスをロードするステップを含
む、前記(9)記載の方法。 (11)プロセッサ及び入出力(I/O)装置を有する
コンピュータ・システムであって、 a)前記I/O装置との通信を要求するキャッシュ可能
なプロセッサ・コマンドを横取りする手段と、 b)前記プロセッサ・コマンドを処理する中間キャッシ
ュ・エミュレーション論理を実行する手段と、を含む、
コンピュータ・システム。 (12)c)キャッシュエミュレーション・バッファと
前記I/O装置との間でデータのバーストを転送する手
段を含む、前記(11)記載のコンピュータ・システ
ム。 (13)d)前記キャッシュエミュレーション・バッフ
ァと前記プロセッサとの間でデータ転送を実行する手段
を含む、前記(12)記載のコンピュータ・システム。 (14)メモリ/I/O制御装置内のI/Oブリッジ内
でエミュレーション論理を実行する手段を含む、前記
(11)記載のコンピュータ・システム。 (15)前記I/Oブリッジ・ユニットが、少なくとも
1メモリ・ページへのプロセッサ・キャッシュ可能コマ
ンドを横取りする、前記(14)記載のコンピュータ・
システム。 (16)前記メモリ/I/O制御装置内の少なくとも1
つのレジスタに、主メモリ空間の外部にマップされ、前
記キャッシュエミュレーション・バッファとして使用さ
れる前記メモリ・ページのアドレスをロードする手段を
含む、前記(15)記載のコンピュータ・システム。 (17)前記プロセッサ・キャッシュ可能コマンドを、
I/O空間またはメモリ・マップドI/O空間内の対応
するI/Oアダプタ・アドレスに対応付ける手段を含
む、前記(16)記載のコンピュータ・システム。 (18)前記メモリ/I/O制御装置内のレジスタに前
記I/Oアダプタ・アドレスをロードする手段を含む、
前記(17)記載のコンピュータ・システム。
との間でデータをバースト転送する方法であって、 a)前記I/O装置との通信を要求するキャッシュ可能
なプロセッサ・コマンドを横取りするステップと、 b)前記プロセッサ・コマンドを処理する中間キャッシ
ュ・エミュレーション論理を実行するステップと、 を含む、方法。 (2)c)キャッシュエミュレーション・バッファと前
記I/O装置との間でデータのバーストを転送するステ
ップを含む、前記(1)記載の方法。 (3)d)前記キャッシュエミュレーション・バッファ
と前記プロセッサとの間でデータ転送を実行するステッ
プを含む、前記(2)記載の方法。 (4)前記ステップa)が、前記プロセッサからの書込
みトリガ・コマンドを横取りするステップを含む、前記
(1)記載の方法。 (5)前記ステップa)が、前記プロセッサからの読出
しトリガ・コマンドを横取りするステップを含む、前記
(1)記載の方法。 (6)前記ステップb)が、メモリ/I/O制御装置内
のI/Oブリッジ内でエミュレーション論理を実行する
ステップを含む、前記(1)記載の方法。 (7)前記I/Oブリッジ・ユニットが、少なくとも1
メモリ・ページへのプロセッサ・キャッシュ可能コマン
ドを横取りする、前記(6)記載の方法。 (8)前記メモリ/I/O制御装置内の少なくとも1つ
のレジスタに、主メモリ空間の外部にマップされ、前記
キャッシュエミュレーション・バッファとして使用され
る前記メモリ・ページのアドレスをロードするステップ
を含む、前記(7)記載の方法。 (9)前記プロセッサ・キャッシュ可能コマンドを、I
/O空間またはメモリ・マップドI/O空間内の対応す
るI/Oアダプタ・アドレスに対応付けるステップを含
む、前記(8)記載の方法。 (10)前記メモリ/I/O制御装置内のレジスタに前
記I/Oアダプタ・アドレスをロードするステップを含
む、前記(9)記載の方法。 (11)プロセッサ及び入出力(I/O)装置を有する
コンピュータ・システムであって、 a)前記I/O装置との通信を要求するキャッシュ可能
なプロセッサ・コマンドを横取りする手段と、 b)前記プロセッサ・コマンドを処理する中間キャッシ
ュ・エミュレーション論理を実行する手段と、を含む、
コンピュータ・システム。 (12)c)キャッシュエミュレーション・バッファと
前記I/O装置との間でデータのバーストを転送する手
段を含む、前記(11)記載のコンピュータ・システ
ム。 (13)d)前記キャッシュエミュレーション・バッフ
ァと前記プロセッサとの間でデータ転送を実行する手段
を含む、前記(12)記載のコンピュータ・システム。 (14)メモリ/I/O制御装置内のI/Oブリッジ内
でエミュレーション論理を実行する手段を含む、前記
(11)記載のコンピュータ・システム。 (15)前記I/Oブリッジ・ユニットが、少なくとも
1メモリ・ページへのプロセッサ・キャッシュ可能コマ
ンドを横取りする、前記(14)記載のコンピュータ・
システム。 (16)前記メモリ/I/O制御装置内の少なくとも1
つのレジスタに、主メモリ空間の外部にマップされ、前
記キャッシュエミュレーション・バッファとして使用さ
れる前記メモリ・ページのアドレスをロードする手段を
含む、前記(15)記載のコンピュータ・システム。 (17)前記プロセッサ・キャッシュ可能コマンドを、
I/O空間またはメモリ・マップドI/O空間内の対応
するI/Oアダプタ・アドレスに対応付ける手段を含
む、前記(16)記載のコンピュータ・システム。 (18)前記メモリ/I/O制御装置内のレジスタに前
記I/Oアダプタ・アドレスをロードする手段を含む、
前記(17)記載のコンピュータ・システム。
【図1】本発明が採用され得るコンピュータ・システム
を示す図である。
を示す図である。
【図2】本方法を実現するために使用される様々なメモ
リ割当て及びレジスタを示す内部メモリ・マップの概略
図である。
リ割当て及びレジスタを示す内部メモリ・マップの概略
図である。
【図3】本方法におけるマイクロプロセッサ・キャッシ
ュ、I/Oブリッジ制御装置、及びI/Oバスとの間の
データ流れを示すブロック図である。
ュ、I/Oブリッジ制御装置、及びI/Oバスとの間の
データ流れを示すブロック図である。
【図4】"トリガ"・コマンドの形式を示す図である。
【図5】本方法の書込み部分に関連するプロセッサ機能
のフローチャートを示す図である。
のフローチャートを示す図である。
【図6】本方法の読出し部分に関連するプロセッサ機能
のフローチャートを示す図である。
のフローチャートを示す図である。
【図7】本方法におけるI/Oブリッジ・ユニット("
制御装置")の操作のフローチャートを示す図である。
制御装置")の操作のフローチャートを示す図である。
【図8】本方法におけるI/Oブリッジ・ユニット("
制御装置")の操作のフローチャートを示す図である。
制御装置")の操作のフローチャートを示す図である。
【図9】図7、図8に示されるフローチャートの続きで
あり、本方法の制御装置の読出しトリガ部分のフローチ
ャートを示す図である。
あり、本方法の制御装置の読出しトリガ部分のフローチ
ャートを示す図である。
【図10】I/O装置から別のI/O装置への情報のエ
ミュレート式キャッシュライン・バースト転送を可能に
する、本方法のMOVE部分に関連するプロセッサ機能
のフローチャートを示す図である。
ミュレート式キャッシュライン・バースト転送を可能に
する、本方法のMOVE部分に関連するプロセッサ機能
のフローチャートを示す図である。
10、10a、10b、10c マイクロプロセッサ 12 アービタ 14、16、38 データ・リンク 20 データ・バス 22 アドレス・バス 30 メモリ/I/Oバス制御装置 32 データ・チップ 34 アドレス・チップ 36 I/Oメザニン・バス 40 I/Oブリッジ 46 システム・メモリ・カード 50 I/Oバス 60 入出力(I/O)装置 100 キャッシュライン・バッファ・アドレス・レジ
スタ(CLBAR) 102 I/Oターゲット・アドレス・レジスタ(IO
TAR) 104 トリガ・アドレス空間 106 PCI空間 108 マップド・ページ 112 ページ・アドレス 114 I/Oアダプタ・アドレス 120 キャッシュエミュレーション・バッファ 200 マイクロプロセッサ・キャッシュ 202 キャッシュライン 300 トリガ・コマンド 302 最左端ビット 304 中間ビット 306 最右端ビット 308 指標X 310 数値 402、404 初期化要求
スタ(CLBAR) 102 I/Oターゲット・アドレス・レジスタ(IO
TAR) 104 トリガ・アドレス空間 106 PCI空間 108 マップド・ページ 112 ページ・アドレス 114 I/Oアダプタ・アドレス 120 キャッシュエミュレーション・バッファ 200 マイクロプロセッサ・キャッシュ 202 キャッシュライン 300 トリガ・コマンド 302 最左端ビット 304 中間ビット 306 最右端ビット 308 指標X 310 数値 402、404 初期化要求
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョン・マイケル・カイザー アメリカ合衆国78613、テキサス州シダ ー・パーク、カプリン・マウント 204 (72)発明者 キョンミー・エル・キム アメリカ合衆国78550、テキサス州オース ティン、グァバ・コーブ 7206 (72)発明者 ワーレン・エドワード・マウル アメリカ合衆国78613、テキサス州シダ ー・パーク、タク・ロード 12131
Claims (18)
- 【請求項1】入出力(I/O)装置とプロセッサとの間
でデータをバースト転送する方法であって、 a)前記I/O装置との通信を要求するキャッシュ可能
なプロセッサ・コマンドを横取りするステップと、 b)前記プロセッサ・コマンドを処理する中間キャッシ
ュ・エミュレーション論理を実行するステップと、 を含む、方法。 - 【請求項2】c)キャッシュエミュレーション・バッフ
ァと前記I/O装置との間でデータのバーストを転送す
るステップを含む、請求項1記載の方法。 - 【請求項3】d)前記キャッシュエミュレーション・バ
ッファと前記プロセッサとの間でデータ転送を実行する
ステップを含む、請求項2記載の方法。 - 【請求項4】前記ステップa)が、前記プロセッサから
の書込みトリガ・コマンドを横取りするステップを含
む、請求項1記載の方法。 - 【請求項5】前記ステップa)が、前記プロセッサから
の読出しトリガ・コマンドを横取りするステップを含
む、請求項1記載の方法。 - 【請求項6】前記ステップb)が、メモリ/I/O制御
装置内のI/Oブリッジ内でエミュレーション論理を実
行するステップを含む、請求項1記載の方法。 - 【請求項7】前記I/Oブリッジ・ユニットが、少なく
とも1メモリ・ページへのプロセッサ・キャッシュ可能
コマンドを横取りする、請求項6記載の方法。 - 【請求項8】前記メモリ/I/O制御装置内の少なくと
も1つのレジスタに、主メモリ空間の外部にマップさ
れ、前記キャッシュエミュレーション・バッファとして
使用される前記メモリ・ページのアドレスをロードする
ステップを含む、請求項7記載の方法。 - 【請求項9】前記プロセッサ・キャッシュ可能コマンド
を、I/O空間またはメモリ・マップドI/O空間内の
対応するI/Oアダプタ・アドレスに対応付けるステッ
プを含む、請求項8記載の方法。 - 【請求項10】前記メモリ/I/O制御装置内のレジス
タに前記I/Oアダプタ・アドレスをロードするステッ
プを含む、請求項9記載の方法。 - 【請求項11】プロセッサ及び入出力(I/O)装置を
有するコンピュータ・システムであって、 a)前記I/O装置との通信を要求するキャッシュ可能
なプロセッサ・コマンドを横取りする手段と、 b)前記プロセッサ・コマンドを処理する中間キャッシ
ュ・エミュレーション論理を実行する手段と、 を含む、コンピュータ・システム。 - 【請求項12】c)キャッシュエミュレーション・バッ
ファと前記I/O装置との間でデータのバーストを転送
する手段を含む、 請求項11記載のコンピュータ・システム。 - 【請求項13】d)前記キャッシュエミュレーション・
バッファと前記プロセッサとの間でデータ転送を実行す
る手段を含む、 請求項12記載のコンピュータ・システム。 - 【請求項14】メモリ/I/O制御装置内のI/Oブリ
ッジ内でエミュレーション論理を実行する手段を含む、
請求項11記載のコンピュータ・システム。 - 【請求項15】前記I/Oブリッジ・ユニットが、少な
くとも1メモリ・ページへのプロセッサ・キャッシュ可
能コマンドを横取りする、請求項14記載のコンピュー
タ・システム。 - 【請求項16】前記メモリ/I/O制御装置内の少なく
とも1つのレジスタに、主メモリ空間の外部にマップさ
れ、前記キャッシュエミュレーション・バッファとして
使用される前記メモリ・ページのアドレスをロードする
手段を含む、請求項15記載のコンピュータ・システ
ム。 - 【請求項17】前記プロセッサ・キャッシュ可能コマン
ドを、I/O空間またはメモリ・マップドI/O空間内
の対応するI/Oアダプタ・アドレスに対応付ける手段
を含む、請求項16記載のコンピュータ・システム。 - 【請求項18】前記メモリ/I/O制御装置内のレジス
タに前記I/Oアダプタ・アドレスをロードする手段を
含む、請求項17記載のコンピュータ・システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US83718497A | 1997-04-11 | 1997-04-11 | |
US08/837184 | 1997-04-11 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10289197A true JPH10289197A (ja) | 1998-10-27 |
JP3251903B2 JP3251903B2 (ja) | 2002-01-28 |
Family
ID=25273761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP09034698A Expired - Fee Related JP3251903B2 (ja) | 1997-04-11 | 1998-04-02 | プロセッサ・データをバースト転送する方法及びコンピュータ・システム |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP0871129A3 (ja) |
JP (1) | JP3251903B2 (ja) |
CN (1) | CN1120424C (ja) |
HK (1) | HK1015048A1 (ja) |
SG (1) | SG70629A1 (ja) |
TW (1) | TW384445B (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000315186A (ja) * | 1999-05-06 | 2000-11-14 | Hitachi Ltd | 半導体装置 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004510365A (ja) * | 2000-09-20 | 2004-04-02 | ロックヒード マーティン コーポレイション | 感知及び/又は制御環境用オブジェクト指向型枠組み構造 |
CN101118523B (zh) * | 2006-08-01 | 2011-10-19 | 飞思卡尔半导体公司 | 存储器访问控制装置及其方法、存储器访问控制器及其方法 |
US9336029B2 (en) | 2010-08-04 | 2016-05-10 | International Business Machines Corporation | Determination via an indexed structure of one or more partitionable endpoints affected by an I/O message |
US8495271B2 (en) * | 2010-08-04 | 2013-07-23 | International Business Machines Corporation | Injection of I/O messages |
US20120036302A1 (en) | 2010-08-04 | 2012-02-09 | International Business Machines Corporation | Determination of one or more partitionable endpoints affected by an i/o message |
US8549202B2 (en) | 2010-08-04 | 2013-10-01 | International Business Machines Corporation | Interrupt source controller with scalable state structures |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69130588T2 (de) * | 1990-05-29 | 1999-05-27 | Nat Semiconductor Corp | Cache-Speicher von partiell decodierten Befehlen und Verfahren hierfür |
US5430862A (en) * | 1990-06-29 | 1995-07-04 | Bull Hn Information Systems Inc. | Emulation of CISC instructions by RISC instructions using two pipelined stages for overlapped CISC decoding and RISC execution |
US5579512A (en) * | 1994-12-30 | 1996-11-26 | Compaq Computer Corporation | Systempro emulation in a symmetric multiprocessing computer system |
-
1997
- 1997-11-04 TW TW086116351A patent/TW384445B/zh not_active IP Right Cessation
-
1998
- 1998-03-17 SG SG1998000575A patent/SG70629A1/en unknown
- 1998-03-20 CN CN98105843A patent/CN1120424C/zh not_active Expired - Fee Related
- 1998-03-26 EP EP98302308A patent/EP0871129A3/en not_active Withdrawn
- 1998-04-02 JP JP09034698A patent/JP3251903B2/ja not_active Expired - Fee Related
-
1999
- 1999-01-04 HK HK99100005A patent/HK1015048A1/xx not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000315186A (ja) * | 1999-05-06 | 2000-11-14 | Hitachi Ltd | 半導体装置 |
Also Published As
Publication number | Publication date |
---|---|
JP3251903B2 (ja) | 2002-01-28 |
CN1196525A (zh) | 1998-10-21 |
EP0871129A2 (en) | 1998-10-14 |
CN1120424C (zh) | 2003-09-03 |
EP0871129A3 (en) | 2002-03-13 |
TW384445B (en) | 2000-03-11 |
SG70629A1 (en) | 2000-02-22 |
HK1015048A1 (en) | 1999-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5265211A (en) | Arbitration control logic for computer system having dual bus architecture | |
US5682512A (en) | Use of deferred bus access for address translation in a shared memory clustered computer system | |
US5761458A (en) | Intelligent bus bridge for input/output subsystems in a computer system | |
US5915104A (en) | High bandwidth PCI to packet switched router bridge having minimized memory latency | |
US4843542A (en) | Virtual memory cache for use in multi-processing systems | |
KR0154533B1 (ko) | 데이타 프로세서 | |
US5659696A (en) | Method and apparatus for determining address location and taking one of two actions depending on the type of read/write data transfer required | |
US5247648A (en) | Maintaining data coherency between a central cache, an I/O cache and a memory | |
US5263142A (en) | Input/output cache with mapped pages allocated for caching direct (virtual) memory access input/output data based on type of I/O devices | |
EP0392657B1 (en) | System providing cache coherent direct memory access between dissimilar bus systems | |
KR100420706B1 (ko) | 가변폭버스의동시적인액세스를이용하는다중프로세서시스템에서i/o제어를위한방법및시스템 | |
US5359715A (en) | Architectures for computer systems having multiple processors, multiple system buses and multiple I/O buses interfaced via multiple ported interfaces | |
US5561783A (en) | Dynamic cache coherency method and apparatus using both write-back and write-through operations | |
US20050114559A1 (en) | Method for efficiently processing DMA transactions | |
US5269005A (en) | Method and apparatus for transferring data within a computer system | |
US5765022A (en) | System for transferring data from a source device to a target device in which the address of data movement engine is determined | |
JPH08263424A (ja) | コンピュータ装置 | |
JP3701076B2 (ja) | セグメント化したメモリを備えたコンピュータ・システム | |
US6898646B1 (en) | Highly concurrent DMA controller with programmable DMA channels | |
US6732249B1 (en) | Host computer virtual memory within a network interface adapter | |
US5088028A (en) | Lock converting bus-to-bus interface system | |
JP3266470B2 (ja) | 強制順序で行う要求毎ライト・スルー・キャッシュを有するデータ処理システム | |
JP3886189B2 (ja) | バースト可でキャッシュ不可のメモリアクセスを支援するマイクロプロセッサ装置 | |
JP3251903B2 (ja) | プロセッサ・データをバースト転送する方法及びコンピュータ・システム | |
EP1041492A2 (en) | Method and system for optimizing of peripheral component interconnect (PCI) bus transfers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |