JPH02226448A - 入出力キヤツシユ - Google Patents
入出力キヤツシユInfo
- Publication number
- JPH02226448A JPH02226448A JP1338898A JP33889889A JPH02226448A JP H02226448 A JPH02226448 A JP H02226448A JP 1338898 A JP1338898 A JP 1338898A JP 33889889 A JP33889889 A JP 33889889A JP H02226448 A JPH02226448 A JP H02226448A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- memory
- input
- bus
- line
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
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)
- Information Transfer Systems (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
A、産業上の利用分野
本発明は一般にコンピュータ・システムに、特に入出力
装置により使用されるキャッシュ制御装置に関する。 B、従来の技術 一般にコンピュータ・システムはメモリ階層を規定する
幾つかの異なる記憶層を有する。N通、これらの層は中
央演算処理装置内のレジスタ、メイン・システム・メモ
リ、及びディスクのような人界h(記憶装置を含む、こ
れらの異なるレベルのパフォーマンスは全く異なる。プ
ロセッサ・レジスタはシステム・メモリよりもずっと速
く、システム−メモリは大容量記憶装置に対するアクセ
スよりもかなり速い。 システム・パフォーマンスを向上させるために。 中央プロセッサとシステム・メモリの間にしばしば、小
容量高速のメモリから成るキャッシュが用いられる。キ
ャッシュはコンピュータ・プログラム内の参照動作の局
所性を利用して再使用される見込みのあるデータを記憶
する。 同様の隘路はシステム・メモリと、該システtトメモリ
との間でデータを転送する必要があるずっと低速の人界
!ム(記憶装置及び他の入出力装置との間にも生じる1
入出力装置(本明細書で用いるときは大容量記憶装置を
含む)間のデータ転送をより効率的にするシステ11設
計はどれも総合的なシステム・パフォーマンスによい影
響を与える。 しかしながら、中央プロセッサとシステム・メモリの間
で用いられるような従来のキャッシュ技術は入出力装置
とはうまく整合しない。 これは、主として、単一の中央演算処理装置及び複数の
入出力装置で見つかるアクセス・パターンの相違による
。中央プロセッサは単一のユニット・アクセス・メモリ
であり、システム・メモリ全体にわたる異なる位置に対
する多数の比較的ランダムなアクセスを行なう、入出力
装置によるメモリ・アクセスは使用するパターンが異な
る0通常、各装置は幾つかのメモリ位1aだけをアクセ
スするが、それぞれの装置は異なるメモリ位1コtをア
クセスする。更に、それぞれの装置は予81+1できな
いパターンでメモリをアクセスする。 中にはかなりまれにしかメモリをアクセスしない入出力
装置もあるから、これらの装置のキャッシュ・ヒラ1〜
はめったに生じない、これは特に。 ある入出力装置1例えばディスクが多数の連続するメモ
リ位置を読取ったり書込んだりする時にあてはまる。こ
のような転送の後、キャッシュは当該装置によって転送
されたデータで満たされる傾向がある。入出力装置毎に
別々のキャッシュ・メモリを設けることは通常は不可能
である。 もしメイン・システム・メモリのある部分が入出力装置
及び中央プロセッサの両者によってアクセス可能であれ
ば1通常のCIIUキャッシュによるキャーツシュの一
貫性の問題を回避するために、中央プロセッサは前記メ
モリを入出力キャッシュを通じてアクセスする必要があ
るかも知れない、これは入出力装置によって入出力キャ
ッシュの使用を妨げる傾向がある。 入出力インタフェース装置は中央プロセッサ及び入出力
装置がメイン・システム・メ・モリの共用領域に対する
アクセスを共有することを可能にすることが望ましい、
更に、このようなインタフェースはメモリ・アドレス空
間の一部が入出力バスに接続された装置に割当てられる
ようにする機構を提供することが望ましい。 C1発明が解決しようとする課題 本発明の目的はシステム・メモリを入出力装置インタフ
ェースに提供し中央プロセッサ及び入出力装置がメイン
・システム・メモリ内の共用メモリ領域をアクセスする
ことを可能にすることである。 本発明のもう1つの目的はシステム・メモリを入出力装
置インタフェースに提供しメモリ・アドレス空間の一部
が入出力バスに接続された入出力装置に実際に割当てら
れることを可能にすることである。 本発明の更にもう1一つの目的はシステム・メモリを入
出力装置インタフェースに提供し仮想メモリ・アドレス
をシステム・メモリ内の物理アドレスに変換することで
ある。 00課題を解決するための手段 本発明に従って、入出力キャッシュは入出力装置をメイ
ン・システム・メモリから緩衝するのに用いられる。各
入出力装置は入出力キャッシュの一部を利用し、中央プ
ロセッサは入出力キャッシュのセクションを割振られ該
キャッシュを入出力装置と同様にアクセスする0入出力
バスに接続された装置で実際に見つかる。システム・メ
モリ・アドレス空間内のメモリ位置に対する全ての要求
は、それが入出力装置によるものでも中央プロセッサに
よるものでも、要求元の入出力装置又は中央プロセッサ
に透明な方法で自動的に前記装置に回される。メイン・
システム・メモリで実際に見つかるメモリ位置の要求だ
けが実際に入出力キャッシュ内にキャッシュされる。 E、実施例 第2図で、システム・メモリ 10は入出力キャッシュ
制御装置 (IOCC) 14を介して入出力 (I
lo)バス12に接続される。システム・バス15はシ
ステム・メモリ 10と [OCC14を接続し、アド
レス、データ及び制御ラインを含む、 l0CC14は
アドレス、データ及び制御ライン16を介してI10バ
ス 12に接続される。 入出力装置17はI10バス12に接続される。 入出力装置17は、例えば、ビデオ表示装置、ディスク
及びテープ鄭動制御装置、並びに直載列■10ポートを
含む、後で説明するように、システム・メモリのように
アドレス可能なバス・メモリ18も 110バス12に
接続される。 I10バス I2に接続された装置とシ
ステム・メモリ IOの間の全てのデータ転送はl0C
C14を介して行なわれる。 システム・メモリ 10のパフォーマンスを向上させる
ために、技術的によく知られているようにそれはインタ
ーリーブされるか、さもなければ。 高速ブロック転送のために最適化されることがある。高
速のブロック転送通信を用いて信号ライン16に沿って
データが転送される。 l0CC14はそのとき必要に
応じてI10バス 12で装置と自由に通信することが
できる。 良好な実施例では、 10cc 14はI10バス12
のデータ・キャッシュ及び仮想メモリ対実メモリ・アド
レス変換の機能を実行する。更に、良好なl0CCI4
は全ての I10要求についてアクセス許可の検査を実
行する。良好な実施例では、データ書込みはシステム・
メモリ 10に直接には書込まれない9代りに、それら
は該書込まれたデータがl0CC14から取り除かれる
まで l0CC14に保持される。 第1図はl0CC14の詳細を示す、I10データ・バ
ッファ 20はキャッシュ・バッファ 22に接続され
る。このキャッシュ・バッファ 22は各々が64バイ
トの16ラインとして構成されることが望ましい、そし
てキャッシュ・バッファ 22はシステム・メモリ 1
0に接続される。データはキャッシュ・バッファ 22
とシステム・メモリ 10の間では高速のブロック・デ
ータ転送によって転送される。このブロック転送の特性
の詳細は本発明の部分を構成するものではない。 システム・メモリ 10はページ、更にページ内ではラ
インで構成されることが望ましい、ページ及びラインの
大きさは本発明の部分を構成するものではないが、本明
細書に記述される実施例のページの大きさは4にバイト
であり、ラインの大きさは64バイトである。よって、
1ページは64ラインである。システム・メモリ lO
との間の転送は最小の大きさの単位1ラインで実行され
る。 4ビツト・アドレス・ライン24及び6ビツト・アドレ
ス・ライン26によってアドレス指定されたメモリ位置
により、データはI10データ・バッファ 20とキャ
ッシュ・バッファ 22の間で転送される。ライン24
上の値はキャッシュ・バッファ 22内の 16ライン
の1つを選択し、ライン26上の値は該選択されたライ
ン内の64バイトの1つを選択する。 アドレスはI10バス12から I10アドレス・バッ
ファ 28に記憶される。ライン26から供給される
I10アドレス・バッファ 28の6つの最下位(LS
Il)ビットはキャッシュ・バッファ 22のバイト・
アドレス値として用いられる。I10アドレス・バッフ
ァ 28のより上位の次の6ビツ1−は、信号ライン3
0を介して比較器32に、ライン34を介してシステム
・メモリ 10に供給される。ライン34上の信号は、
システム・メモリ IOで、1ページ内の64ラインか
ら1ラインを選択するのに用いられる。 I10アドレス・バッファ 28から20の最上位ビッ
ト(MS[l)がライン36を介して比較器38及び変
換制御ワード(TCW)テーブル40に供給される。
TCWテーブル40はページ・テーブルとしても技術的
に知られている。それはl0CC14に接続された高速
の専用メモリであり、システムのアドレス空間には存在
しない、もしTCWテーブル40全体を記憶する十分に
大きい(す用メモリが使用可能ではないなら、該専用メ
モリは該テーブルのキャッシュとして用いることができ
る。該テーブルは実際にはシステムのメモリ・アドレス
空間に記憶される0通常、これはパフォーマンスの観点
から望ましくない。 多くのシステムで、■10装置はシステム・アドレス空
間のわずかな部分にしかアクセスしない。 アドレス空間の当該部分−110装置がアクセスするー
だけがTCWテーブル40に表示されればよい、前記シ
ステムで、 TCWテーブル40の専用メモリはI10
装置に必要なTCWC−テーブル全体を保持することが
できればよく、極端に大きい必要はない、 TCWメモ
リ 40の構成は以下に説明する。 キャッシュ制御レジスタ 42のファイルは 16の別
々のレジスタを含む、ファイルの1つのレジスタは任意
の所与の時点で活動状151である。活動状態のレジス
タはライン44上の4ビツト信号によって選択される。 現に選択されたキャッシュ制御レジスタ 42から 2
0のMSロビッ1−が信ぢ一ライン46を介して比較器
38に供給される。より下位の次の6ビツトは選択され
たキャッシュ制御レジスタ 42から信号ライン/I8
を介して比較器32に接続される。3つのLBSビット
はり、C及び■の標識が付される。これらのビットはダ
ーティ・ビット (Dビット)、カレント・ビット (
Cビット)及び無効ビット (Iピッ1〜)である、こ
れらのビットの使用は第3図に関連して説明する。 16のレジスタ 50のファイルはTCWキャッシュを
規定する。信号ライン52上の値によって1つの活動状
態のレジスタが選択される。ライン52上の値は常にラ
イン44上の値と同じである9選択されたTCWキャッ
シュ・レジスタ 50から20のMS8ビットがアドレ
ス・ライン54を介してシステム・メモリ lOに供給
される。この 20ビツト・アドレスはシステム・メモ
リ 10内で1つの実ページをアドレス指定するのに用
いられる。 TCWキャッシュ・レジスタ 50のより下位の次のビ
ットは4ビツト幅のDIRフィールドを規定する。DI
I+フィールドの[1的及びDIR信号の機能は以下に
説明する。DIR信号は信号ライン58を介して選択回
路56に供給される。信号ライン52上の値と同じ値を
含む4ビツト信号ライン60も選択回路56に接続され
る。 TCWキャッシュ50の8つの1、SBビットは2つの
4ピッドフィールドに分割される。4つのLSllビッ
トは以下に説明する機能を有する制御ピッ1−である1
次の4ピツ1へは旧>Vフィールドを規定する。これは
システム・メモリ IOで各ページのアクセス許可を決
定するのに用いられる。旧ΣYビット及びその下位の2
つの制御ビットはそれぞれ信号ライン62及び64を介
して復号/選択回路66に供給される。 チャネル状況レジスタ 68のファイルは16のレジス
タを含む、その1つは4ビツトの信号ライン70の値に
より活動状態になる。信号ライン70は以下に説明する
ようにDEVICE 5ELECT (装置選択)信号
によって駆動される。 チャネル状況レジスタ 68の 16のMSI3ピッ1
−は信号ライン72を介して復号/選択回路66に供給
される。 DIRフィールドを規定する4つのLSロ
ビットは活動状態のチャネル状況レジスタ68からライ
ン74に伝達される。前述のように、このラインは信号
ライン4/I、 52及び60に接続される。 丁CVテーブル40は、各々の位置に、TCWキャッシ
ュ・レジスタ 50のエン1〜りと同じ形式を持つエン
トリを含むメモリである。このように、TCWテーブル
40にある各々のエントリは実ページ番号、DIRエン
トリ、KEY、及び4つのCNTL(制御)ビットを含
む、エントリはTCWテーブル40から読取られると、
信号ライン78を介して保持レジスタ 76に伝達され
る。 TCWテーブル40でD I Rフィールドに対
応するエントリの4ビツトは信汗ライン80を介して活
動状態のチャネル状況レジスタ 68のDIRフィール
ドに直接伝達される。エントリがTCWテーブル40か
らTCυキャッシュ・レジスタ 50に伝達されるとき
、該エントリは保持レジスタ76から信号ライン82を
介して伝達される。 I10バス12に接続された各装置は】6のチャネル状
況レジスタ 68の1つで表示される。ライン70に接
続されたDEVTCE STシl、ECC倍信号 I1
0バス12に接続された装置の特定の1つを識別する。 この信号はどの装置がI10動作を実行中であるかを示
す、DI5VICI? SEt、lECT信号は任意の
所望の方法で生成することができる。良好なl0CC]
/Iが18Mマイクロチャネル・バスを利用するコンピ
ュータ・システムとともに使用されるときは、DEVI
CE S [!: L E CT信号はむしろバス調停
信号と同じである。各装置はマイクロチャネル・バスに
特定の調停レベルを持っており、この識別はDEVTC
E 5UECT信号として用いることができる。 ライン70の信号によってチャネル状況レジスタ 68
の1つが選択されると54つのL 11 SビットがD
IR(ディレクトリ)信号として用いられ、キャッシュ
制御レジスタ 42. TCWキャッシュ・レジスタ
50、及びキャッシュ・バッファ 22の1つのライン
を選択する。以下に説明する1つの状況を除き5選択回
路56はキャッシュ・バッファ 22のラインを選択す
るためにライン60の信号をライン24に供給する0選
択されたキャッシュ制御レジスタ 42. TCWキャ
ッシュ・レジスタ 50.及びキャッシュ・バッファ
22のラインは常に対応し。 仮想ページ番号、ライン番号、及びキャッシュ・バッフ
ァ 22内の選択されたラインの実ページ番号を記述す
る0選択されたラインの仮想ページ番号は選択されたキ
ャッシュ制御レジスタの20のMSBビットに記憶され
るが、キャッシュ・バッファ 22の選択されたライン
のライン番号に対応するシステム・メモリ・ライン番号
はキャッシュ制御レジスタ 42の6つのLSBビット
に記憶される。 対応する実ページ番号はTCWキャッシュ・レジスタ
50の 20のMS8ビットに記憶される。 キャッシュ制御レジスタ 42からの仮想ページ番号及
びライン番号は比較器38及び32で、そ才りぞれ、■
10アドレス・バッファ 28にある仮想ページ番号及
びライン番号と比較される。もしこれらの比較がどちら
も一致すれば、TCW有幼有量信号キャッシュ・ライン
有効信号はこのテ1
装置により使用されるキャッシュ制御装置に関する。 B、従来の技術 一般にコンピュータ・システムはメモリ階層を規定する
幾つかの異なる記憶層を有する。N通、これらの層は中
央演算処理装置内のレジスタ、メイン・システム・メモ
リ、及びディスクのような人界h(記憶装置を含む、こ
れらの異なるレベルのパフォーマンスは全く異なる。プ
ロセッサ・レジスタはシステム・メモリよりもずっと速
く、システム−メモリは大容量記憶装置に対するアクセ
スよりもかなり速い。 システム・パフォーマンスを向上させるために。 中央プロセッサとシステム・メモリの間にしばしば、小
容量高速のメモリから成るキャッシュが用いられる。キ
ャッシュはコンピュータ・プログラム内の参照動作の局
所性を利用して再使用される見込みのあるデータを記憶
する。 同様の隘路はシステム・メモリと、該システtトメモリ
との間でデータを転送する必要があるずっと低速の人界
!ム(記憶装置及び他の入出力装置との間にも生じる1
入出力装置(本明細書で用いるときは大容量記憶装置を
含む)間のデータ転送をより効率的にするシステ11設
計はどれも総合的なシステム・パフォーマンスによい影
響を与える。 しかしながら、中央プロセッサとシステム・メモリの間
で用いられるような従来のキャッシュ技術は入出力装置
とはうまく整合しない。 これは、主として、単一の中央演算処理装置及び複数の
入出力装置で見つかるアクセス・パターンの相違による
。中央プロセッサは単一のユニット・アクセス・メモリ
であり、システム・メモリ全体にわたる異なる位置に対
する多数の比較的ランダムなアクセスを行なう、入出力
装置によるメモリ・アクセスは使用するパターンが異な
る0通常、各装置は幾つかのメモリ位1aだけをアクセ
スするが、それぞれの装置は異なるメモリ位1コtをア
クセスする。更に、それぞれの装置は予81+1できな
いパターンでメモリをアクセスする。 中にはかなりまれにしかメモリをアクセスしない入出力
装置もあるから、これらの装置のキャッシュ・ヒラ1〜
はめったに生じない、これは特に。 ある入出力装置1例えばディスクが多数の連続するメモ
リ位置を読取ったり書込んだりする時にあてはまる。こ
のような転送の後、キャッシュは当該装置によって転送
されたデータで満たされる傾向がある。入出力装置毎に
別々のキャッシュ・メモリを設けることは通常は不可能
である。 もしメイン・システム・メモリのある部分が入出力装置
及び中央プロセッサの両者によってアクセス可能であれ
ば1通常のCIIUキャッシュによるキャーツシュの一
貫性の問題を回避するために、中央プロセッサは前記メ
モリを入出力キャッシュを通じてアクセスする必要があ
るかも知れない、これは入出力装置によって入出力キャ
ッシュの使用を妨げる傾向がある。 入出力インタフェース装置は中央プロセッサ及び入出力
装置がメイン・システム・メ・モリの共用領域に対する
アクセスを共有することを可能にすることが望ましい、
更に、このようなインタフェースはメモリ・アドレス空
間の一部が入出力バスに接続された装置に割当てられる
ようにする機構を提供することが望ましい。 C1発明が解決しようとする課題 本発明の目的はシステム・メモリを入出力装置インタフ
ェースに提供し中央プロセッサ及び入出力装置がメイン
・システム・メモリ内の共用メモリ領域をアクセスする
ことを可能にすることである。 本発明のもう1つの目的はシステム・メモリを入出力装
置インタフェースに提供しメモリ・アドレス空間の一部
が入出力バスに接続された入出力装置に実際に割当てら
れることを可能にすることである。 本発明の更にもう1一つの目的はシステム・メモリを入
出力装置インタフェースに提供し仮想メモリ・アドレス
をシステム・メモリ内の物理アドレスに変換することで
ある。 00課題を解決するための手段 本発明に従って、入出力キャッシュは入出力装置をメイ
ン・システム・メモリから緩衝するのに用いられる。各
入出力装置は入出力キャッシュの一部を利用し、中央プ
ロセッサは入出力キャッシュのセクションを割振られ該
キャッシュを入出力装置と同様にアクセスする0入出力
バスに接続された装置で実際に見つかる。システム・メ
モリ・アドレス空間内のメモリ位置に対する全ての要求
は、それが入出力装置によるものでも中央プロセッサに
よるものでも、要求元の入出力装置又は中央プロセッサ
に透明な方法で自動的に前記装置に回される。メイン・
システム・メモリで実際に見つかるメモリ位置の要求だ
けが実際に入出力キャッシュ内にキャッシュされる。 E、実施例 第2図で、システム・メモリ 10は入出力キャッシュ
制御装置 (IOCC) 14を介して入出力 (I
lo)バス12に接続される。システム・バス15はシ
ステム・メモリ 10と [OCC14を接続し、アド
レス、データ及び制御ラインを含む、 l0CC14は
アドレス、データ及び制御ライン16を介してI10バ
ス 12に接続される。 入出力装置17はI10バス12に接続される。 入出力装置17は、例えば、ビデオ表示装置、ディスク
及びテープ鄭動制御装置、並びに直載列■10ポートを
含む、後で説明するように、システム・メモリのように
アドレス可能なバス・メモリ18も 110バス12に
接続される。 I10バス I2に接続された装置とシ
ステム・メモリ IOの間の全てのデータ転送はl0C
C14を介して行なわれる。 システム・メモリ 10のパフォーマンスを向上させる
ために、技術的によく知られているようにそれはインタ
ーリーブされるか、さもなければ。 高速ブロック転送のために最適化されることがある。高
速のブロック転送通信を用いて信号ライン16に沿って
データが転送される。 l0CC14はそのとき必要に
応じてI10バス 12で装置と自由に通信することが
できる。 良好な実施例では、 10cc 14はI10バス12
のデータ・キャッシュ及び仮想メモリ対実メモリ・アド
レス変換の機能を実行する。更に、良好なl0CCI4
は全ての I10要求についてアクセス許可の検査を実
行する。良好な実施例では、データ書込みはシステム・
メモリ 10に直接には書込まれない9代りに、それら
は該書込まれたデータがl0CC14から取り除かれる
まで l0CC14に保持される。 第1図はl0CC14の詳細を示す、I10データ・バ
ッファ 20はキャッシュ・バッファ 22に接続され
る。このキャッシュ・バッファ 22は各々が64バイ
トの16ラインとして構成されることが望ましい、そし
てキャッシュ・バッファ 22はシステム・メモリ 1
0に接続される。データはキャッシュ・バッファ 22
とシステム・メモリ 10の間では高速のブロック・デ
ータ転送によって転送される。このブロック転送の特性
の詳細は本発明の部分を構成するものではない。 システム・メモリ 10はページ、更にページ内ではラ
インで構成されることが望ましい、ページ及びラインの
大きさは本発明の部分を構成するものではないが、本明
細書に記述される実施例のページの大きさは4にバイト
であり、ラインの大きさは64バイトである。よって、
1ページは64ラインである。システム・メモリ lO
との間の転送は最小の大きさの単位1ラインで実行され
る。 4ビツト・アドレス・ライン24及び6ビツト・アドレ
ス・ライン26によってアドレス指定されたメモリ位置
により、データはI10データ・バッファ 20とキャ
ッシュ・バッファ 22の間で転送される。ライン24
上の値はキャッシュ・バッファ 22内の 16ライン
の1つを選択し、ライン26上の値は該選択されたライ
ン内の64バイトの1つを選択する。 アドレスはI10バス12から I10アドレス・バッ
ファ 28に記憶される。ライン26から供給される
I10アドレス・バッファ 28の6つの最下位(LS
Il)ビットはキャッシュ・バッファ 22のバイト・
アドレス値として用いられる。I10アドレス・バッフ
ァ 28のより上位の次の6ビツ1−は、信号ライン3
0を介して比較器32に、ライン34を介してシステム
・メモリ 10に供給される。ライン34上の信号は、
システム・メモリ IOで、1ページ内の64ラインか
ら1ラインを選択するのに用いられる。 I10アドレス・バッファ 28から20の最上位ビッ
ト(MS[l)がライン36を介して比較器38及び変
換制御ワード(TCW)テーブル40に供給される。
TCWテーブル40はページ・テーブルとしても技術的
に知られている。それはl0CC14に接続された高速
の専用メモリであり、システムのアドレス空間には存在
しない、もしTCWテーブル40全体を記憶する十分に
大きい(す用メモリが使用可能ではないなら、該専用メ
モリは該テーブルのキャッシュとして用いることができ
る。該テーブルは実際にはシステムのメモリ・アドレス
空間に記憶される0通常、これはパフォーマンスの観点
から望ましくない。 多くのシステムで、■10装置はシステム・アドレス空
間のわずかな部分にしかアクセスしない。 アドレス空間の当該部分−110装置がアクセスするー
だけがTCWテーブル40に表示されればよい、前記シ
ステムで、 TCWテーブル40の専用メモリはI10
装置に必要なTCWC−テーブル全体を保持することが
できればよく、極端に大きい必要はない、 TCWメモ
リ 40の構成は以下に説明する。 キャッシュ制御レジスタ 42のファイルは 16の別
々のレジスタを含む、ファイルの1つのレジスタは任意
の所与の時点で活動状151である。活動状態のレジス
タはライン44上の4ビツト信号によって選択される。 現に選択されたキャッシュ制御レジスタ 42から 2
0のMSロビッ1−が信ぢ一ライン46を介して比較器
38に供給される。より下位の次の6ビツトは選択され
たキャッシュ制御レジスタ 42から信号ライン/I8
を介して比較器32に接続される。3つのLBSビット
はり、C及び■の標識が付される。これらのビットはダ
ーティ・ビット (Dビット)、カレント・ビット (
Cビット)及び無効ビット (Iピッ1〜)である、こ
れらのビットの使用は第3図に関連して説明する。 16のレジスタ 50のファイルはTCWキャッシュを
規定する。信号ライン52上の値によって1つの活動状
態のレジスタが選択される。ライン52上の値は常にラ
イン44上の値と同じである9選択されたTCWキャッ
シュ・レジスタ 50から20のMS8ビットがアドレ
ス・ライン54を介してシステム・メモリ lOに供給
される。この 20ビツト・アドレスはシステム・メモ
リ 10内で1つの実ページをアドレス指定するのに用
いられる。 TCWキャッシュ・レジスタ 50のより下位の次のビ
ットは4ビツト幅のDIRフィールドを規定する。DI
I+フィールドの[1的及びDIR信号の機能は以下に
説明する。DIR信号は信号ライン58を介して選択回
路56に供給される。信号ライン52上の値と同じ値を
含む4ビツト信号ライン60も選択回路56に接続され
る。 TCWキャッシュ50の8つの1、SBビットは2つの
4ピッドフィールドに分割される。4つのLSllビッ
トは以下に説明する機能を有する制御ピッ1−である1
次の4ピツ1へは旧>Vフィールドを規定する。これは
システム・メモリ IOで各ページのアクセス許可を決
定するのに用いられる。旧ΣYビット及びその下位の2
つの制御ビットはそれぞれ信号ライン62及び64を介
して復号/選択回路66に供給される。 チャネル状況レジスタ 68のファイルは16のレジス
タを含む、その1つは4ビツトの信号ライン70の値に
より活動状態になる。信号ライン70は以下に説明する
ようにDEVICE 5ELECT (装置選択)信号
によって駆動される。 チャネル状況レジスタ 68の 16のMSI3ピッ1
−は信号ライン72を介して復号/選択回路66に供給
される。 DIRフィールドを規定する4つのLSロ
ビットは活動状態のチャネル状況レジスタ68からライ
ン74に伝達される。前述のように、このラインは信号
ライン4/I、 52及び60に接続される。 丁CVテーブル40は、各々の位置に、TCWキャッシ
ュ・レジスタ 50のエン1〜りと同じ形式を持つエン
トリを含むメモリである。このように、TCWテーブル
40にある各々のエントリは実ページ番号、DIRエン
トリ、KEY、及び4つのCNTL(制御)ビットを含
む、エントリはTCWテーブル40から読取られると、
信号ライン78を介して保持レジスタ 76に伝達され
る。 TCWテーブル40でD I Rフィールドに対
応するエントリの4ビツトは信汗ライン80を介して活
動状態のチャネル状況レジスタ 68のDIRフィール
ドに直接伝達される。エントリがTCWテーブル40か
らTCυキャッシュ・レジスタ 50に伝達されるとき
、該エントリは保持レジスタ76から信号ライン82を
介して伝達される。 I10バス12に接続された各装置は】6のチャネル状
況レジスタ 68の1つで表示される。ライン70に接
続されたDEVTCE STシl、ECC倍信号 I1
0バス12に接続された装置の特定の1つを識別する。 この信号はどの装置がI10動作を実行中であるかを示
す、DI5VICI? SEt、lECT信号は任意の
所望の方法で生成することができる。良好なl0CC]
/Iが18Mマイクロチャネル・バスを利用するコンピ
ュータ・システムとともに使用されるときは、DEVI
CE S [!: L E CT信号はむしろバス調停
信号と同じである。各装置はマイクロチャネル・バスに
特定の調停レベルを持っており、この識別はDEVTC
E 5UECT信号として用いることができる。 ライン70の信号によってチャネル状況レジスタ 68
の1つが選択されると54つのL 11 SビットがD
IR(ディレクトリ)信号として用いられ、キャッシュ
制御レジスタ 42. TCWキャッシュ・レジスタ
50、及びキャッシュ・バッファ 22の1つのライン
を選択する。以下に説明する1つの状況を除き5選択回
路56はキャッシュ・バッファ 22のラインを選択す
るためにライン60の信号をライン24に供給する0選
択されたキャッシュ制御レジスタ 42. TCWキャ
ッシュ・レジスタ 50.及びキャッシュ・バッファ
22のラインは常に対応し。 仮想ページ番号、ライン番号、及びキャッシュ・バッフ
ァ 22内の選択されたラインの実ページ番号を記述す
る0選択されたラインの仮想ページ番号は選択されたキ
ャッシュ制御レジスタの20のMSBビットに記憶され
るが、キャッシュ・バッファ 22の選択されたライン
のライン番号に対応するシステム・メモリ・ライン番号
はキャッシュ制御レジスタ 42の6つのLSBビット
に記憶される。 対応する実ページ番号はTCWキャッシュ・レジスタ
50の 20のMS8ビットに記憶される。 キャッシュ制御レジスタ 42からの仮想ページ番号及
びライン番号は比較器38及び32で、そ才りぞれ、■
10アドレス・バッファ 28にある仮想ページ番号及
びライン番号と比較される。もしこれらの比較がどちら
も一致すれば、TCW有幼有量信号キャッシュ・ライン
有効信号はこのテ1
【実を示す、これらの信号が一致を
表わすとき、I10アドレス・バッファ 28にある該
要求された仮想アドレスはキャッシュ・バッファ 22
でライン24に示されたライン番号に現に存在する。 良好なアクセス保護機構では、各ページは、サブジェク
1−とも呼ばれる下位区分を割当てられる。 特定のサブジェクhにアクセスすることを許可されるプ
ロセス及び装置は当該サブジェクトを含む仮想ページの
アクセスを許される。チャネル状況レジスタの16のM
SIIピッ1−は、I10バス 12に接続された装置
毎に、当1依装置がアクセスを許可されるサブジェクト
を明確にする。この許可は許可マスクを規定するピッ1
〜・マツプとして実現される。16の1丁能なサブジェ
ク1−のうち、装置がアクセスを許可されるものは対応
するピッ1〜位置に1が置かれ、アクセスが許可されな
いサブジェクトに対応するピッ1−位置にはOが置かれ
ろ。 TCWキャッシュ・レジスタ 50のKEYフィールド
は対応するページのサブジェクトを規定し、ライン72
にある許可マスク信号からビット位置を選択するのに用
いられる0例えば5もしライン62の信号が■?16で
あれば、活動化されたチャネル状況レジスタ 68の左
端のビットは、現在の装置が現在のページのアクセスを
許可されるためには1でなければならない、各ページは
厳密に1つの関連したアクセス許可区分を有するので、
1ページはアクセス区分を写像する最小の単位である。 サブジェクト本文のアクセスの外、 TC−キャッシュ
・レジスタ 50の2つのL S Bビットによって読
取り及び書込みアクセスが示される。これらのビットは
ページ誤りがある(このページはシステム・メモリ 1
0にはなく、ページ・アラ1−されている)かどうか、
即ちアクセスされたメモリ・ページがシステム・メモリ
10の代りにバス・メモリで見つかるかどうかも表わ
す、これらの信号もI10バス12からの読取り/書込
み信号(図示せず)として、復号/選択回路66に接続
される。 これらの信号は、例えば、装置が読取り専用仮想ページ
への書込み動作の実行を試みてはいないことを確認する
ために使用される。復号/選択回路66からのアクセス
OK信号は該試みられているアクセスが有効であるかど
うかを判定する0表■にTCWキャッシュ・レジスタ
50にある2つのLSBビットの意味を示す。 表1−2つのLS11制御ビット 00− バス・メモリ 01− ページ誤り 10− 読取り専用 11− 読取り/書込み バス・メモリはI10バス 12に接続されたメモリで
ある。バス・メモリ・アドレス空間の部分はシステム・
アドレス空間の部分に写像することができる。徒って、
I10バス12に接する装置、及びシステム中央プロセ
ッサにとっては、バス・メモリはシステム・メモリ 1
0と同じように見える。 しかしながら、バス・メモリをキャッシュするのにキャ
ッシュ・バッファ 22は使用されない、バス・メモリ
を取扱う際の相違は第3図に示す、バス・メモリは、大
容量の記憶を要求する I10装置。 例えばビデオ表示制御装置を接続するのに用いることが
できる。 選択されたTCWキャッシュ・レジスタ 50の制御フ
ィールドの、残る2つのビットは”参照された”ことと
”変更された“ことを意味するR及びCの標識が付され
る。これらのピッ1〜はページ誤りが起きたとき、どの
仮想ページをディスクとスワップすべきかを決定するた
め、なるべくなら仮想メモリ・マネジャによって使用さ
れる方がよい。 メモリ管理のためのRCビットの使用は技術的に知られ
ている。 第1図のキャッシュ制御装置はI10バス12に接続さ
れたシステム中央プロセッサ並びにI10装置によって
アクセスできるように設計されている。 第3図に示す制御の流れは、l0CC14が中央プロセ
ッサ又はI10装置によって使用中であるかどうかにか
かわらず、基本的に同じである。制御動作の最初の幾つ
かのステップは、システム中央プロセッサがrocc
1/Iを介してメモリをアクセスしている時にだけ用い
られ、残りのステップは中央プロセッサ及びl109
iJのどちらにも用いられる。 l0CC14を介してロード又は記憶動作を実行するシ
ステム中央プロセッサは2つのモードのうちの1つで動
作することができる。もし中央プロセッサが監視モード
で動作しているならば、常に全てのメモリ位置をアクセ
スし、アクセス検査は実行されない、もし中央プロセッ
サが非監視モードで動作しているならば、第3図に示す
ようにアクセス検査が行なわれる。I10バス12に接
続された装置に対する全てのアクセスがl0CC14を
経由して行なわれるとは限らない0通常のシステム・メ
モリ・アドレス空間におけるメモリ位置に対するメモリ
・アクセスだけがl0CC1/Iの動作を行なう、イン
テルの80X86フアミリのプロセッサによってサポー
トされるような5離れたI10アドレス空間に対するア
クセスはl0CC14をバイパスし。 直接I10バス12に向かう、このタイプのアクセスの
ため、バイパス・フラグがセットされ、 l0CC14
がバイパスされる予定であることを表示する。 第3a図、第3b図、第3c図及び第3d図をまとめて
第3図と呼ぶ、 l0cc 14の詳細な動作を第3図
に関連して説明する。良好な実施例では。 10CC14にとって中央プロセッサは、第1図に関連
して説明したように、単にそれ自身に予約されたチャネ
ル状況レジスタ 68を有するもう1つの110装置の
ように見える。 110バス12に接続された装置−もしそれが10CC
14を介してロード/記憶動作の実行を試みているなら
ばシステム中央プロセッサを含むほどの装置がl0CC
14をアクセスするかの決定について調停する。前述の
ように、前記調停の勝者はDEVICE 5ELECT
信号として用いられる特定の調停レベル識別子を得る。 制御の流れのなかの数箇所で、誤り検査が実行される。 もし誤りが検出されれば、制御はステップ94に分岐し
、誤りが記録される。4ビット誤り標識、及び誤りが生
じたバッファ 28からのページ並びにラインが、該選
択された装置のチャネル状況レジスタ 68に入れられ
る。誤りが処理された後、許可マスク及びDII?フィ
ールドがレジスタ68に再ロードされる。そしてステッ
プ96で誤りは該装置に報告される。 11EVICE 5ELECT信号はステップ106テ
装置レジスタを選択するのに用いられ、キャッシュ・バ
ッファ 22内の適切なキャッシュ・ラインと、キャッ
シュ制御レジスタ 42のファイル及びTCνキャッシ
ュ・レジスタ 50のファイル内の対応するレジスタと
が、ステップ108でD111信号を用いて選択される
0回時に、i10バス 12の調停の戦いに勝った装置
はステップ+10で所望のアドレスを主張する。 範囲外のページの検査がステップ112で行われ。 I10装置によってアクセスできる仮想メモリ空間の当
該部分の範囲内に該主張されたアドレスがあるかどうか
を判定する。もしページが範囲外であれば、制御はステ
ップ94に移り、誤りが記録され報告される。もしペー
ジが適切な範囲内であれば、ステップ114で、該主張
されたアドレスとキャッシュ・バッファ 22の間にペ
ージ・ヒツトがあるかどうかを検査する。この判定は比
較器38で行われ、TCW有効信号によって示される。 もしキャッシュ制御レジスタ 42に記憶された。 前にアクセスされたページがI10バッファ 28内の
ページに一致すれば、ページ・ヒツトがあるので、制御
はステップ116(第3b図)に移る。ステップ11B
はページ誤りを検査し、その結果は選択されたTCWキ
ャッシュ・レジスタ 5oの、表1に示すビット・パタ
ーンを用いる2つのLS11ビットによって示される。 もしページ誤りがあれば。 誤りは記録されプロセッサに報告される。 もしページ誤りがない一要求された仮想ページが現にシ
ステム・メモリ 10か又はシステム・アドレス空1f
ilに写像されたバス・メモリに存在することを示す−
ならば、ステップ118で、要求元の装置が当該ページ
をアクセスすることが許可されるかどうかを検査する。 TCWキャッシュ・レジスタ 50のKEYフィール
ドとチャネル状況レジスタ 68の許可マスク・フィー
ルドとの比較によって行われるサブジェクト本文の検査
の外に、装置が読取り専用ページへの書込みを試みてい
ないことを保証するための検査が行われる。もしアクセ
スOK信号が該試みられたアクセスは有効ではないこと
を示すならば、誤りが記録されプロセッサに報告される
。 もし装置が該要求されたページに対する有効なアクセス
を有するならば、バッファ 22内の選択されたキャッ
シュ・ラインが無効であるかどうかを検査する。この検
査は選択されたキャッシュ制御レジスタ42の■ビット
を検査することによって行われる。Iピッ1−がセラ1
〜されると、データはバッファ 22内の、アクセス中
の装置をアクセスできない選択されたキャッシュ・ライ
ンに存在する。これはプロセス及び装置が互いのメモリ
空間からのデータをアクセスするのを阻止する安全保護
の特性である。キャッシュ・ラインを用いるI10転送
が終了するとエビッ1〜はセットされるが、データはバ
ッファ 22内のキャッシュ・ラインがら消されない、
良好な実施例では、バッファ 22からシステム・メモ
リにキャッシュ・ラインが書込まれる毎に、当該キャッ
シュ・ラインは0で満たされ、前にそこに記憶されたデ
ータを削除する。 しかしながら、データがシステム・メモリ10から11
0装置に読込まれているときは、キャッシュ・バッファ
22にロードされた最後のラインのデータは触れられ
ずに残る。■10転送が終了したとき。 システム監視プログラムは、当該キャッシュ・ラインが
システム・メモリ 10に書込まれて全Oにされない限
り、対応する1ビツトに1を書込む。 キャッシュ・ラインが無効かどうかを調べるステップ1
20の検査の結果がイエスであれば、ステップ122の
検査はスキップされる。ステップ122はキャッシュ・
ラインがヒツトであったかどうかを判定する検査である
。もしそうなら、制御はステップ124に移る。もしキ
ャッシュ・ラインのヒツトがなければ、ページは正しい
が現にキャッシュ・バッファ 22に存在するのは当該
ページからの間違ったラインである。もし当該キャッシ
ュがキャッシュ制御レジスタ 42内のDビットによっ
てダーティではないことが示されるならば、それを保管
する必要はない、ステップ126で、もしキャッシュ・
ラインがダーティなら、キャッシュ・ラインはステップ
+28でメモリに書込まれ、前述のように全Oにされ
る。もしステップ130で転送の誤りがあれば、誤りは
記録されプロセッサに報告される。もしjz4りがなけ
れば、ステップ132でDビット及びCビットはどちら
もOにリセットされる。 次に、これはバス・メモリへの動作又はバス・メモリか
らの動作であるかどうかを検査する。この検査は選択さ
れたTCWキャッシュ・レジスタ50の、表1で規定さ
れたパターンの2つのLS11ビットについて行われる
6もし動作がバス・メモリの動作であれば、制御は残り
のキャッシュ動作をバイパスし、直ちにデータ転送に向
かってスキップする。 もし動作がシステム・メモリへの動作であれば、ステッ
プ124の検査の結果はノーとなり、ステップ126で
、ページが前に参照されたかどうかを調べるもう1つの
検査が行われる。この検査は選択されたTCWキャッシ
ュ・レジスタ 50内のRビットについて行われる。I
クビットは、もしセットされれば、該選択されたページ
が前に参照されたことを表わす、もしページが参照され
ていたならば。 ステップ128で、現在の動作が読取り動作であるかど
うかを検査する。もし読取り!JJ作でなければ。 このページが前に変更されているかどうかを検査する。 もし変更されていれば、 RCビットは、現在の動作
が読取り動作である場合と同様に不変である。もしペー
ジが前に変更されておらず、且つこれが書込み動作であ
れば、 TCυテーブル40及び選択されたTCWキャ
ッシュ・レジスタ 50にあるRCビットはステップ+
32で更新される。それらは、ステップ126の検査で
、このページが前に参照されていないことを示す場合に
も更新される。 次に、ステップ134で、キャッシュ・ラインが無効か
どうかを検査する。前述のように、これは1ビツトの検
査である。もしキャッシュ・ラインが無効であれば1次
の幾つかのステップがスキップされ、ステップ136A
で、システム・メモリI0からキャッシュ・バッファ
22への新しいラインの読取りを強制する。これは前に
当該キャッシュ・ラインに存在するデータを破壊する。 ステップ+36Aで新しいラインをキャッシュ・バッフ
ァ 22に読取ると、ステップ+37で、対応するIピ
ッ1−を0にリセッ1へする。 ステップ+34で、キャッシュ・ラインが無効ではない
ならば、現在の動作が読取り動作であるかどうかを再び
ステップ1:36で検査する。もしそうなら、ステップ
138で、Cビットが1にセットされているかどうかを
検査する。もし現在の動作が書込み動作であれば、ステ
ップ136の結果はノーとなり、ステップ+40で、要
求された位置がキャッシュ・アドレスと位置合わせされ
ているかどうかを検査する。これは、I10アドレス・
バッファ28の6つのLSIIビットが全0の場合、要
求された位置がライン境界と位置合わせされていること
を意味する。もし要求された位置が位置合わせされてい
なければ、制御はステップ138に移る。もし位置合わ
せされており且つステップ141で中央プロセッサが現
に I10バスを用いる装置であれば。 ステップ142で、現在の転送が64バイトのキャッシ
ュ・バッファのサイズよりも小さいかどうかを検査する
。もしそうなら、制御はステップ138に移る。もし6
4バイトよりも大きい転送が行われているならば、ステ
ップ142の結果はノーであり、制御部はステップ14
6にスキップする。制御の流れがこの点に達するのは、
キャッシュ・バッファ 22の選択されたラインのあら
ゆるバイトを満たすかなりの書込み動作が行われている
ことによる。このような状況では、当該ラインが現在の
書込み動作によって重ね書きされようとしているから、
システム・メモリ IOからラインに読込む努力は無駆
になる。従って、システム・メモリ 同からの読込み
(ステップ136A)はスキップされる。 ステップ141で、もし中央プロセッサがバスを用いて
いないならば、I10装置が順次モードで動作している
かどうかの検査がステップ143で行われる。順次モー
ドは大きなブロックのデータを読み書きする装置、例え
ばディスク装置に割当てられる、装置の順次モードはチ
ャネル状況レジスタ68にあるビット(図示せず)によ
って示すことができる。もし装置が順次モードで書込み
しているならば、キャッシュ・ラインをロードする必要
もない、従って5もしステップ143の結果がイエスで
あれば、制御はステップ14Gにスキップする。 さもなければ、制御はステップ138に移る。 もしステップ136Aのキャッシュ・バッファ22のロ
ードが行オ〕れるならば、ステップ137でエビットが
Oにセットされ、ステップ144で、転送の誤りがあっ
たかどうかを検査する。もしそうなら、誤りは記録され
プロセッサに報告される。さもなければ、ステップ14
(iでキャッシュ制御レジスタ42にあるCピッ1〜及
びDビットが更新される。Cビットは1にセットされる
。 I)ピッ1へはDピッ1〜の現在の値とこれが書込
み動作であるかどうかを示す信号との論理和にセットさ
れる。即ち、もしキャッシュ・ラインが既にダーティに
なフていたならば、又は現在書込まれているならば、該
ダーティ・ビットはセットされる。この時点で、 l0
CC14は正しくセットアツプされ、ステップ148で
。 データ転送を開始することができる。 ステップ150で1ワードのデータが転送される。 このワードは1バイト、2バイト、4バイト、又はシス
テムのハードウェア構成によって設定される他の値とす
ることができる。とにかく、ステップ150の転送は1
バス・サイクルで行われる単一の転送である。ステップ
152で、転送の誤りがあれば、前述のように記録され
プロセッサに報告される。ステップ+53で、もし中央
プロセッサが現に I10バスを用いているなら、ステ
ップ154で。 転送が終了しているかどうかを検査する。もしそうなら
、動作ステップは終了する。 もし転送が終了していなれけば、ステップ+56で、こ
の動作がバス・メモリ動作であるかどうかを検査する。 前述のように、バス・メモリ動作はTCWキャッシュ・
レジスタ 50の2つのLSBビットによって示される
。もしこれがシステム・メモリ 10の動作であれば、
ステップ158で、次のアドレスがキャッシュ・ライン
・ヒツトであるかどうかを検査する。もしそうなら、次
のワードを転送するため制御はステップ150に戻る。 さもなければ、キャッシュ・ライン境界が交差されてい
るので、制御はステップ160に移る。ステップ160
は現在の I10動作がもう1つの装置によって優先使
用されているかどうかを検査する。もし優先使用されて
いなければ、制御はステップ!+4に戻り、キャッシュ
検査プロセス全体が反復される。ステップ160で、も
し現在の動作が優先使用されていれば、この動作は終Y
する。そして中央プロセッサはその転送を終了するよう
にアクセスを調停しなければならない。 ステップ156の検査で、もし現在の動作がバス・メモ
リ動作であれば、ステップ166で、現在の転送が優先
使用されているかどうかを検査する。 もし優先使用されておらず、且つステップ】68で。 次のアドレスのページが現在のアドレスのページと一致
している(ページ・ヒツトを示す)ならば、次のワード
を転送するため制御はステップ150に戻る。もしステ
ップ+68の結果がページ・ヒツトでなければ、117
r述のように、制御はステップ114に戻る。 文テップ156〜168の制御の流れは究極的にはバス
・メモリに対する動作をいつでも優先使用できるように
することであるが、キャッシュされたシステム・メモリ
位置に対する動作はライン境界が交差された時にだけ優
先使用することができろ。 もしステップ153の結果がノーであり、ステップ16
2で、転送が終了していないならば、ステップ164で
、キャッシュ・ライン・ヒツトが検査される。もしヒツ
トがあれば、制御はステップ+50に戻り、転送が続行
される。さもなければ、制御はステップ114に戻る。 I10装置は優先使用することができず、良好な実施例
では自発的に I10バスを放棄しなければならない。 次に、第3a図のステップ114でページ・ミスが検出
される場合に行われる動作について説明する。ステップ
114で、ページ・ヒツトがなければ。 現に装置がアクセス中の仮想ページは当該装置が前にア
クセスした仮想ページと異なる。その場合には、ステッ
プ170で、次のTCWエン1〜りがTCWテーブル4
0から取出され保持レジスタ 76に入れられる。ステ
ップ17+で、もしパリティ誤りがあれば、1亥誤りは
記録され報告される0次のTCWエントリは r10バ
ッファ 28の 20のMS[lビットによってアドレ
ス指定された当該エントリである。 ステップ172で、チャネル状況レジスタ 68の4つ
のLSロビッ1−がライン80にあるDI11信号を用
いて更新される。この信号はライン74で直ちに使II
I Iir能となり、ステップ174で、キャッシュ・
バッファ 22内の新しいライン、及びそれに対応する
、キャッシュ制御レジスタ 42のファイル並びにTC
Wキャッシュ・レジスタ 50のファイル内のレジスタ
が選択される。そして比較器38はライン46で使用I
If能な新たに選択された前のページと f10アドレ
ス・バッファ 28内のページを比較する。ステップ1
7tiで、もしTC讐ヒッ]−があれば、現に要求され
たページは直ぐ前のアクセスの前の時点で同じ装置によ
ってアクセスされており。 当該ページはなおキャッシュ制御レジスタ 42及びT
Cυキャッシュ・レジスタ 50で使用可能である。新
しいTCWエントリがTC讐キャッシュ 50にロード
される毎に、古いエントリによってアドレス指定された
キャッシュ・ラインは、もしそれがダーティならば、先
ずメモリ IOにフラッシュされなければならない、こ
れはキャッシュ制御レジスタ 42のDビットを用いて
回路56で実行される。 ステップ176で、もしページ・ミスが起これば、TC
Wテーブルから新しいエントリをロードする必要がある
。先ず、ステップ178で、Iビットを用いてキャッシ
ュ・ラインが無効であるかどうかを検査する。もし無効
でなければ、ステップ180で、現に選択されたキャッ
シュ・ラインがダーティであるかどうかを検査する。こ
の検査はキャッシュ制御レジスタ 42内のDピッ1−
について行われる。 もしダーティなら、ステップ182で、前述のように当
該キャッシュ・ラインがメモリに書込まれる。 ステップ184で、転送の誤りがあったかどうかを検査
し、もしあれば、記録され報告される。もし誤りがなけ
れば、ステップ+86で、Dビット及びCビットをどち
らもOにセラ1へする。 次に、キャッシュ・ラインがダーティであったかどうか
に関係なく、ステップ188で、TCWキャッシュに新
しいTCWエン1へりをロードする。このエン1〜りは
現に保持レジスタ 76に存在し、TCWテーブル40
の+Ijアクセスを必要とすることなく、Te1ilキ
ヤツシユ50にロードすることができる。 そして現在の I/()ア1〜レスの zOのMSII
ビットがステップ 190でキャッシュ制御レジスタに
ロードされ、制御はステップ1lfiに移る。 大抵の場合、110バストの各装置はキャッシュ・バッ
ファ 22内の単一のラインを割振られる。 これらの装置では、TCWテーブル40のDI++フィ
ールドは全て、各装置に対応するDEVICE 5EL
ECT信号と同じ値にセットされなければならない、あ
る場合には、装置によってはキャッシュ・バッファ 2
2内の2ライン以上を11)ることか望ましい。 これらの装置では、TCWテーブル40内のエントリに
あるl) I Itフィールドはキャッシュ・バッファ
22内の適切なラインを指すようにセラ1−される。 111f述のように1丁CW ミスがあるとき、rCリ
テーブル40内の次のエントリはキャッシュ・バッファ
22のどのラインが次に用いられるかを決定する。 単一の装置に予約されているキャッシュ・バッファ 2
2のそれぞれのラインを指すようにこれらのエン1〜り
のDIRフィールドをセラ1−することにより、当該装
置はキャッシュ・バッファ 22内の2つ以−にのライ
ンを用いることができる。 TC−テーブル40内のDIRフィールドはユーザ通常
はオペレーティング・システム・プログラムである−に
よって割振られる。統計的に使用量が異なるシステムは
、オペレーティング・システムによってTCWテーブル
40のDIRフィールド内の値を調整することにより再
構成され、キャッシュ・バッファ 22を最も効率的に
利用することができる。キャッシュ内のDIRフィール
ドの操作は、本発明での利用方法は異なるが、米国特許
第4719568号の明細書に記述されている。 装置が始動される(多くの場合、システムに電源が投入
される)と、該装置に一部のメモリ空間が割振られる。 その時点で、該装置が用いるキャッシュ・バッファ 2
2内の1つ又は複数のラインが決定される。 TCWテ
ーブル40内の、割振られたメモリ空間に対応するDl
llエントリは、キャッシュ・バッファ 22内の選択
された1つ又は複数のラインを指すようにセットされる
。該装置が割振り解除されると、キャッシュ・バッファ
22内のラインは他の装置による使用のため解放され
る。 当業者には理解されているように、前述の人出カキャッ
シュ制御装置は I10バス12に接続されたI10装
置とシステム・メモリ IOの間に効率的なインタフェ
ースを提供する。DIRフィールドの使用はキャッシュ
・バッファ 22内の2つ以上の64ビツト・ラインを
単一の入出力装置に割振ることを可能にする。水明却1
書に記述されたバッファ 22及び制御装置14はユー
ザには16ウエイ・セット・アソシアティブ・キャッシ
ュのように見える。 本明細書に記述された入出力キャッシュ制御装置は仮想
ページ対実ページ変換、及び自動的なハードウェア・ア
クセス許可検査も提供する。アクセスは仮想ページに基
づいて割振られ、入出力装置による全てのアクセスは当
該装置が動作の実行を許可されるかどうかを検査される
。許可の検査はハードウェアで実行されるから、高速で
あるが、オペレーティング・システム内の委任された誤
りハンドラから離脱することなくソフトウェアによって
バイパスすることはできない。 F8発明の効果 前述のように1本発明はデータ転送の効率を高める入出
力キャッシュを提供する。
表わすとき、I10アドレス・バッファ 28にある該
要求された仮想アドレスはキャッシュ・バッファ 22
でライン24に示されたライン番号に現に存在する。 良好なアクセス保護機構では、各ページは、サブジェク
1−とも呼ばれる下位区分を割当てられる。 特定のサブジェクhにアクセスすることを許可されるプ
ロセス及び装置は当該サブジェクトを含む仮想ページの
アクセスを許される。チャネル状況レジスタの16のM
SIIピッ1−は、I10バス 12に接続された装置
毎に、当1依装置がアクセスを許可されるサブジェクト
を明確にする。この許可は許可マスクを規定するピッ1
〜・マツプとして実現される。16の1丁能なサブジェ
ク1−のうち、装置がアクセスを許可されるものは対応
するピッ1〜位置に1が置かれ、アクセスが許可されな
いサブジェクトに対応するピッ1−位置にはOが置かれ
ろ。 TCWキャッシュ・レジスタ 50のKEYフィールド
は対応するページのサブジェクトを規定し、ライン72
にある許可マスク信号からビット位置を選択するのに用
いられる0例えば5もしライン62の信号が■?16で
あれば、活動化されたチャネル状況レジスタ 68の左
端のビットは、現在の装置が現在のページのアクセスを
許可されるためには1でなければならない、各ページは
厳密に1つの関連したアクセス許可区分を有するので、
1ページはアクセス区分を写像する最小の単位である。 サブジェクト本文のアクセスの外、 TC−キャッシュ
・レジスタ 50の2つのL S Bビットによって読
取り及び書込みアクセスが示される。これらのビットは
ページ誤りがある(このページはシステム・メモリ 1
0にはなく、ページ・アラ1−されている)かどうか、
即ちアクセスされたメモリ・ページがシステム・メモリ
10の代りにバス・メモリで見つかるかどうかも表わ
す、これらの信号もI10バス12からの読取り/書込
み信号(図示せず)として、復号/選択回路66に接続
される。 これらの信号は、例えば、装置が読取り専用仮想ページ
への書込み動作の実行を試みてはいないことを確認する
ために使用される。復号/選択回路66からのアクセス
OK信号は該試みられているアクセスが有効であるかど
うかを判定する0表■にTCWキャッシュ・レジスタ
50にある2つのLSBビットの意味を示す。 表1−2つのLS11制御ビット 00− バス・メモリ 01− ページ誤り 10− 読取り専用 11− 読取り/書込み バス・メモリはI10バス 12に接続されたメモリで
ある。バス・メモリ・アドレス空間の部分はシステム・
アドレス空間の部分に写像することができる。徒って、
I10バス12に接する装置、及びシステム中央プロセ
ッサにとっては、バス・メモリはシステム・メモリ 1
0と同じように見える。 しかしながら、バス・メモリをキャッシュするのにキャ
ッシュ・バッファ 22は使用されない、バス・メモリ
を取扱う際の相違は第3図に示す、バス・メモリは、大
容量の記憶を要求する I10装置。 例えばビデオ表示制御装置を接続するのに用いることが
できる。 選択されたTCWキャッシュ・レジスタ 50の制御フ
ィールドの、残る2つのビットは”参照された”ことと
”変更された“ことを意味するR及びCの標識が付され
る。これらのピッ1〜はページ誤りが起きたとき、どの
仮想ページをディスクとスワップすべきかを決定するた
め、なるべくなら仮想メモリ・マネジャによって使用さ
れる方がよい。 メモリ管理のためのRCビットの使用は技術的に知られ
ている。 第1図のキャッシュ制御装置はI10バス12に接続さ
れたシステム中央プロセッサ並びにI10装置によって
アクセスできるように設計されている。 第3図に示す制御の流れは、l0CC14が中央プロセ
ッサ又はI10装置によって使用中であるかどうかにか
かわらず、基本的に同じである。制御動作の最初の幾つ
かのステップは、システム中央プロセッサがrocc
1/Iを介してメモリをアクセスしている時にだけ用い
られ、残りのステップは中央プロセッサ及びl109
iJのどちらにも用いられる。 l0CC14を介してロード又は記憶動作を実行するシ
ステム中央プロセッサは2つのモードのうちの1つで動
作することができる。もし中央プロセッサが監視モード
で動作しているならば、常に全てのメモリ位置をアクセ
スし、アクセス検査は実行されない、もし中央プロセッ
サが非監視モードで動作しているならば、第3図に示す
ようにアクセス検査が行なわれる。I10バス12に接
続された装置に対する全てのアクセスがl0CC14を
経由して行なわれるとは限らない0通常のシステム・メ
モリ・アドレス空間におけるメモリ位置に対するメモリ
・アクセスだけがl0CC1/Iの動作を行なう、イン
テルの80X86フアミリのプロセッサによってサポー
トされるような5離れたI10アドレス空間に対するア
クセスはl0CC14をバイパスし。 直接I10バス12に向かう、このタイプのアクセスの
ため、バイパス・フラグがセットされ、 l0CC14
がバイパスされる予定であることを表示する。 第3a図、第3b図、第3c図及び第3d図をまとめて
第3図と呼ぶ、 l0cc 14の詳細な動作を第3図
に関連して説明する。良好な実施例では。 10CC14にとって中央プロセッサは、第1図に関連
して説明したように、単にそれ自身に予約されたチャネ
ル状況レジスタ 68を有するもう1つの110装置の
ように見える。 110バス12に接続された装置−もしそれが10CC
14を介してロード/記憶動作の実行を試みているなら
ばシステム中央プロセッサを含むほどの装置がl0CC
14をアクセスするかの決定について調停する。前述の
ように、前記調停の勝者はDEVICE 5ELECT
信号として用いられる特定の調停レベル識別子を得る。 制御の流れのなかの数箇所で、誤り検査が実行される。 もし誤りが検出されれば、制御はステップ94に分岐し
、誤りが記録される。4ビット誤り標識、及び誤りが生
じたバッファ 28からのページ並びにラインが、該選
択された装置のチャネル状況レジスタ 68に入れられ
る。誤りが処理された後、許可マスク及びDII?フィ
ールドがレジスタ68に再ロードされる。そしてステッ
プ96で誤りは該装置に報告される。 11EVICE 5ELECT信号はステップ106テ
装置レジスタを選択するのに用いられ、キャッシュ・バ
ッファ 22内の適切なキャッシュ・ラインと、キャッ
シュ制御レジスタ 42のファイル及びTCνキャッシ
ュ・レジスタ 50のファイル内の対応するレジスタと
が、ステップ108でD111信号を用いて選択される
0回時に、i10バス 12の調停の戦いに勝った装置
はステップ+10で所望のアドレスを主張する。 範囲外のページの検査がステップ112で行われ。 I10装置によってアクセスできる仮想メモリ空間の当
該部分の範囲内に該主張されたアドレスがあるかどうか
を判定する。もしページが範囲外であれば、制御はステ
ップ94に移り、誤りが記録され報告される。もしペー
ジが適切な範囲内であれば、ステップ114で、該主張
されたアドレスとキャッシュ・バッファ 22の間にペ
ージ・ヒツトがあるかどうかを検査する。この判定は比
較器38で行われ、TCW有効信号によって示される。 もしキャッシュ制御レジスタ 42に記憶された。 前にアクセスされたページがI10バッファ 28内の
ページに一致すれば、ページ・ヒツトがあるので、制御
はステップ116(第3b図)に移る。ステップ11B
はページ誤りを検査し、その結果は選択されたTCWキ
ャッシュ・レジスタ 5oの、表1に示すビット・パタ
ーンを用いる2つのLS11ビットによって示される。 もしページ誤りがあれば。 誤りは記録されプロセッサに報告される。 もしページ誤りがない一要求された仮想ページが現にシ
ステム・メモリ 10か又はシステム・アドレス空1f
ilに写像されたバス・メモリに存在することを示す−
ならば、ステップ118で、要求元の装置が当該ページ
をアクセスすることが許可されるかどうかを検査する。 TCWキャッシュ・レジスタ 50のKEYフィール
ドとチャネル状況レジスタ 68の許可マスク・フィー
ルドとの比較によって行われるサブジェクト本文の検査
の外に、装置が読取り専用ページへの書込みを試みてい
ないことを保証するための検査が行われる。もしアクセ
スOK信号が該試みられたアクセスは有効ではないこと
を示すならば、誤りが記録されプロセッサに報告される
。 もし装置が該要求されたページに対する有効なアクセス
を有するならば、バッファ 22内の選択されたキャッ
シュ・ラインが無効であるかどうかを検査する。この検
査は選択されたキャッシュ制御レジスタ42の■ビット
を検査することによって行われる。Iピッ1−がセラ1
〜されると、データはバッファ 22内の、アクセス中
の装置をアクセスできない選択されたキャッシュ・ライ
ンに存在する。これはプロセス及び装置が互いのメモリ
空間からのデータをアクセスするのを阻止する安全保護
の特性である。キャッシュ・ラインを用いるI10転送
が終了するとエビッ1〜はセットされるが、データはバ
ッファ 22内のキャッシュ・ラインがら消されない、
良好な実施例では、バッファ 22からシステム・メモ
リにキャッシュ・ラインが書込まれる毎に、当該キャッ
シュ・ラインは0で満たされ、前にそこに記憶されたデ
ータを削除する。 しかしながら、データがシステム・メモリ10から11
0装置に読込まれているときは、キャッシュ・バッファ
22にロードされた最後のラインのデータは触れられ
ずに残る。■10転送が終了したとき。 システム監視プログラムは、当該キャッシュ・ラインが
システム・メモリ 10に書込まれて全Oにされない限
り、対応する1ビツトに1を書込む。 キャッシュ・ラインが無効かどうかを調べるステップ1
20の検査の結果がイエスであれば、ステップ122の
検査はスキップされる。ステップ122はキャッシュ・
ラインがヒツトであったかどうかを判定する検査である
。もしそうなら、制御はステップ124に移る。もしキ
ャッシュ・ラインのヒツトがなければ、ページは正しい
が現にキャッシュ・バッファ 22に存在するのは当該
ページからの間違ったラインである。もし当該キャッシ
ュがキャッシュ制御レジスタ 42内のDビットによっ
てダーティではないことが示されるならば、それを保管
する必要はない、ステップ126で、もしキャッシュ・
ラインがダーティなら、キャッシュ・ラインはステップ
+28でメモリに書込まれ、前述のように全Oにされ
る。もしステップ130で転送の誤りがあれば、誤りは
記録されプロセッサに報告される。もしjz4りがなけ
れば、ステップ132でDビット及びCビットはどちら
もOにリセットされる。 次に、これはバス・メモリへの動作又はバス・メモリか
らの動作であるかどうかを検査する。この検査は選択さ
れたTCWキャッシュ・レジスタ50の、表1で規定さ
れたパターンの2つのLS11ビットについて行われる
6もし動作がバス・メモリの動作であれば、制御は残り
のキャッシュ動作をバイパスし、直ちにデータ転送に向
かってスキップする。 もし動作がシステム・メモリへの動作であれば、ステッ
プ124の検査の結果はノーとなり、ステップ126で
、ページが前に参照されたかどうかを調べるもう1つの
検査が行われる。この検査は選択されたTCWキャッシ
ュ・レジスタ 50内のRビットについて行われる。I
クビットは、もしセットされれば、該選択されたページ
が前に参照されたことを表わす、もしページが参照され
ていたならば。 ステップ128で、現在の動作が読取り動作であるかど
うかを検査する。もし読取り!JJ作でなければ。 このページが前に変更されているかどうかを検査する。 もし変更されていれば、 RCビットは、現在の動作
が読取り動作である場合と同様に不変である。もしペー
ジが前に変更されておらず、且つこれが書込み動作であ
れば、 TCυテーブル40及び選択されたTCWキャ
ッシュ・レジスタ 50にあるRCビットはステップ+
32で更新される。それらは、ステップ126の検査で
、このページが前に参照されていないことを示す場合に
も更新される。 次に、ステップ134で、キャッシュ・ラインが無効か
どうかを検査する。前述のように、これは1ビツトの検
査である。もしキャッシュ・ラインが無効であれば1次
の幾つかのステップがスキップされ、ステップ136A
で、システム・メモリI0からキャッシュ・バッファ
22への新しいラインの読取りを強制する。これは前に
当該キャッシュ・ラインに存在するデータを破壊する。 ステップ+36Aで新しいラインをキャッシュ・バッフ
ァ 22に読取ると、ステップ+37で、対応するIピ
ッ1−を0にリセッ1へする。 ステップ+34で、キャッシュ・ラインが無効ではない
ならば、現在の動作が読取り動作であるかどうかを再び
ステップ1:36で検査する。もしそうなら、ステップ
138で、Cビットが1にセットされているかどうかを
検査する。もし現在の動作が書込み動作であれば、ステ
ップ136の結果はノーとなり、ステップ+40で、要
求された位置がキャッシュ・アドレスと位置合わせされ
ているかどうかを検査する。これは、I10アドレス・
バッファ28の6つのLSIIビットが全0の場合、要
求された位置がライン境界と位置合わせされていること
を意味する。もし要求された位置が位置合わせされてい
なければ、制御はステップ138に移る。もし位置合わ
せされており且つステップ141で中央プロセッサが現
に I10バスを用いる装置であれば。 ステップ142で、現在の転送が64バイトのキャッシ
ュ・バッファのサイズよりも小さいかどうかを検査する
。もしそうなら、制御はステップ138に移る。もし6
4バイトよりも大きい転送が行われているならば、ステ
ップ142の結果はノーであり、制御部はステップ14
6にスキップする。制御の流れがこの点に達するのは、
キャッシュ・バッファ 22の選択されたラインのあら
ゆるバイトを満たすかなりの書込み動作が行われている
ことによる。このような状況では、当該ラインが現在の
書込み動作によって重ね書きされようとしているから、
システム・メモリ IOからラインに読込む努力は無駆
になる。従って、システム・メモリ 同からの読込み
(ステップ136A)はスキップされる。 ステップ141で、もし中央プロセッサがバスを用いて
いないならば、I10装置が順次モードで動作している
かどうかの検査がステップ143で行われる。順次モー
ドは大きなブロックのデータを読み書きする装置、例え
ばディスク装置に割当てられる、装置の順次モードはチ
ャネル状況レジスタ68にあるビット(図示せず)によ
って示すことができる。もし装置が順次モードで書込み
しているならば、キャッシュ・ラインをロードする必要
もない、従って5もしステップ143の結果がイエスで
あれば、制御はステップ14Gにスキップする。 さもなければ、制御はステップ138に移る。 もしステップ136Aのキャッシュ・バッファ22のロ
ードが行オ〕れるならば、ステップ137でエビットが
Oにセットされ、ステップ144で、転送の誤りがあっ
たかどうかを検査する。もしそうなら、誤りは記録され
プロセッサに報告される。さもなければ、ステップ14
(iでキャッシュ制御レジスタ42にあるCピッ1〜及
びDビットが更新される。Cビットは1にセットされる
。 I)ピッ1へはDピッ1〜の現在の値とこれが書込
み動作であるかどうかを示す信号との論理和にセットさ
れる。即ち、もしキャッシュ・ラインが既にダーティに
なフていたならば、又は現在書込まれているならば、該
ダーティ・ビットはセットされる。この時点で、 l0
CC14は正しくセットアツプされ、ステップ148で
。 データ転送を開始することができる。 ステップ150で1ワードのデータが転送される。 このワードは1バイト、2バイト、4バイト、又はシス
テムのハードウェア構成によって設定される他の値とす
ることができる。とにかく、ステップ150の転送は1
バス・サイクルで行われる単一の転送である。ステップ
152で、転送の誤りがあれば、前述のように記録され
プロセッサに報告される。ステップ+53で、もし中央
プロセッサが現に I10バスを用いているなら、ステ
ップ154で。 転送が終了しているかどうかを検査する。もしそうなら
、動作ステップは終了する。 もし転送が終了していなれけば、ステップ+56で、こ
の動作がバス・メモリ動作であるかどうかを検査する。 前述のように、バス・メモリ動作はTCWキャッシュ・
レジスタ 50の2つのLSBビットによって示される
。もしこれがシステム・メモリ 10の動作であれば、
ステップ158で、次のアドレスがキャッシュ・ライン
・ヒツトであるかどうかを検査する。もしそうなら、次
のワードを転送するため制御はステップ150に戻る。 さもなければ、キャッシュ・ライン境界が交差されてい
るので、制御はステップ160に移る。ステップ160
は現在の I10動作がもう1つの装置によって優先使
用されているかどうかを検査する。もし優先使用されて
いなければ、制御はステップ!+4に戻り、キャッシュ
検査プロセス全体が反復される。ステップ160で、も
し現在の動作が優先使用されていれば、この動作は終Y
する。そして中央プロセッサはその転送を終了するよう
にアクセスを調停しなければならない。 ステップ156の検査で、もし現在の動作がバス・メモ
リ動作であれば、ステップ166で、現在の転送が優先
使用されているかどうかを検査する。 もし優先使用されておらず、且つステップ】68で。 次のアドレスのページが現在のアドレスのページと一致
している(ページ・ヒツトを示す)ならば、次のワード
を転送するため制御はステップ150に戻る。もしステ
ップ+68の結果がページ・ヒツトでなければ、117
r述のように、制御はステップ114に戻る。 文テップ156〜168の制御の流れは究極的にはバス
・メモリに対する動作をいつでも優先使用できるように
することであるが、キャッシュされたシステム・メモリ
位置に対する動作はライン境界が交差された時にだけ優
先使用することができろ。 もしステップ153の結果がノーであり、ステップ16
2で、転送が終了していないならば、ステップ164で
、キャッシュ・ライン・ヒツトが検査される。もしヒツ
トがあれば、制御はステップ+50に戻り、転送が続行
される。さもなければ、制御はステップ114に戻る。 I10装置は優先使用することができず、良好な実施例
では自発的に I10バスを放棄しなければならない。 次に、第3a図のステップ114でページ・ミスが検出
される場合に行われる動作について説明する。ステップ
114で、ページ・ヒツトがなければ。 現に装置がアクセス中の仮想ページは当該装置が前にア
クセスした仮想ページと異なる。その場合には、ステッ
プ170で、次のTCWエン1〜りがTCWテーブル4
0から取出され保持レジスタ 76に入れられる。ステ
ップ17+で、もしパリティ誤りがあれば、1亥誤りは
記録され報告される0次のTCWエントリは r10バ
ッファ 28の 20のMS[lビットによってアドレ
ス指定された当該エントリである。 ステップ172で、チャネル状況レジスタ 68の4つ
のLSロビッ1−がライン80にあるDI11信号を用
いて更新される。この信号はライン74で直ちに使II
I Iir能となり、ステップ174で、キャッシュ・
バッファ 22内の新しいライン、及びそれに対応する
、キャッシュ制御レジスタ 42のファイル並びにTC
Wキャッシュ・レジスタ 50のファイル内のレジスタ
が選択される。そして比較器38はライン46で使用I
If能な新たに選択された前のページと f10アドレ
ス・バッファ 28内のページを比較する。ステップ1
7tiで、もしTC讐ヒッ]−があれば、現に要求され
たページは直ぐ前のアクセスの前の時点で同じ装置によ
ってアクセスされており。 当該ページはなおキャッシュ制御レジスタ 42及びT
Cυキャッシュ・レジスタ 50で使用可能である。新
しいTCWエントリがTC讐キャッシュ 50にロード
される毎に、古いエントリによってアドレス指定された
キャッシュ・ラインは、もしそれがダーティならば、先
ずメモリ IOにフラッシュされなければならない、こ
れはキャッシュ制御レジスタ 42のDビットを用いて
回路56で実行される。 ステップ176で、もしページ・ミスが起これば、TC
Wテーブルから新しいエントリをロードする必要がある
。先ず、ステップ178で、Iビットを用いてキャッシ
ュ・ラインが無効であるかどうかを検査する。もし無効
でなければ、ステップ180で、現に選択されたキャッ
シュ・ラインがダーティであるかどうかを検査する。こ
の検査はキャッシュ制御レジスタ 42内のDピッ1−
について行われる。 もしダーティなら、ステップ182で、前述のように当
該キャッシュ・ラインがメモリに書込まれる。 ステップ184で、転送の誤りがあったかどうかを検査
し、もしあれば、記録され報告される。もし誤りがなけ
れば、ステップ+86で、Dビット及びCビットをどち
らもOにセラ1へする。 次に、キャッシュ・ラインがダーティであったかどうか
に関係なく、ステップ188で、TCWキャッシュに新
しいTCWエン1へりをロードする。このエン1〜りは
現に保持レジスタ 76に存在し、TCWテーブル40
の+Ijアクセスを必要とすることなく、Te1ilキ
ヤツシユ50にロードすることができる。 そして現在の I/()ア1〜レスの zOのMSII
ビットがステップ 190でキャッシュ制御レジスタに
ロードされ、制御はステップ1lfiに移る。 大抵の場合、110バストの各装置はキャッシュ・バッ
ファ 22内の単一のラインを割振られる。 これらの装置では、TCWテーブル40のDI++フィ
ールドは全て、各装置に対応するDEVICE 5EL
ECT信号と同じ値にセットされなければならない、あ
る場合には、装置によってはキャッシュ・バッファ 2
2内の2ライン以上を11)ることか望ましい。 これらの装置では、TCWテーブル40内のエントリに
あるl) I Itフィールドはキャッシュ・バッファ
22内の適切なラインを指すようにセラ1−される。 111f述のように1丁CW ミスがあるとき、rCリ
テーブル40内の次のエントリはキャッシュ・バッファ
22のどのラインが次に用いられるかを決定する。 単一の装置に予約されているキャッシュ・バッファ 2
2のそれぞれのラインを指すようにこれらのエン1〜り
のDIRフィールドをセラ1−することにより、当該装
置はキャッシュ・バッファ 22内の2つ以−にのライ
ンを用いることができる。 TC−テーブル40内のDIRフィールドはユーザ通常
はオペレーティング・システム・プログラムである−に
よって割振られる。統計的に使用量が異なるシステムは
、オペレーティング・システムによってTCWテーブル
40のDIRフィールド内の値を調整することにより再
構成され、キャッシュ・バッファ 22を最も効率的に
利用することができる。キャッシュ内のDIRフィール
ドの操作は、本発明での利用方法は異なるが、米国特許
第4719568号の明細書に記述されている。 装置が始動される(多くの場合、システムに電源が投入
される)と、該装置に一部のメモリ空間が割振られる。 その時点で、該装置が用いるキャッシュ・バッファ 2
2内の1つ又は複数のラインが決定される。 TCWテ
ーブル40内の、割振られたメモリ空間に対応するDl
llエントリは、キャッシュ・バッファ 22内の選択
された1つ又は複数のラインを指すようにセットされる
。該装置が割振り解除されると、キャッシュ・バッファ
22内のラインは他の装置による使用のため解放され
る。 当業者には理解されているように、前述の人出カキャッ
シュ制御装置は I10バス12に接続されたI10装
置とシステム・メモリ IOの間に効率的なインタフェ
ースを提供する。DIRフィールドの使用はキャッシュ
・バッファ 22内の2つ以上の64ビツト・ラインを
単一の入出力装置に割振ることを可能にする。水明却1
書に記述されたバッファ 22及び制御装置14はユー
ザには16ウエイ・セット・アソシアティブ・キャッシ
ュのように見える。 本明細書に記述された入出力キャッシュ制御装置は仮想
ページ対実ページ変換、及び自動的なハードウェア・ア
クセス許可検査も提供する。アクセスは仮想ページに基
づいて割振られ、入出力装置による全てのアクセスは当
該装置が動作の実行を許可されるかどうかを検査される
。許可の検査はハードウェアで実行されるから、高速で
あるが、オペレーティング・システム内の委任された誤
りハンドラから離脱することなくソフトウェアによって
バイパスすることはできない。 F8発明の効果 前述のように1本発明はデータ転送の効率を高める入出
力キャッシュを提供する。
第1図は入出力キャッシュ制御装置を示す図である。
第2図はコンピュータ・システムの一部のブロック図で
ある。 第3a図、第3 b図、第3C図及び第3d図は第1図
のキャッシュ制御装置の動作を説明する流れ図である。 10・・・・システム・メモリ、12・・・・I10バ
ス、14・・・・l0CC,15・・・・システム・バ
ス、 17・・・・I10装置、 +8−6・・バス・
メモリ、20・・・・I10データ・バッファ、22・
・・・キャッシュ・バッファ、 28・・・・I10ア
ドレス・バッファ、32.38・・・・比較器、40・
・・・TCWテーブル、42・・・・キャッシュ制御レ
ジスタ、50・・・・TCWキャッシュ・レジスタ、5
6・・・・選択回路、66・・・・復号/選択回路、6
8・・・・チャネル状況レジスタ、76・・・・保持レ
ジスタ。 出Lfi人 インターナショナル・ビジネス・マシー
ンズ・コーポレーション 復代理人 弁理L 澤 II+ 俊 夫M
2図 10バス (亙)858図から 05MAc図へ !l1lSb図から φM3σ図へ
ある。 第3a図、第3 b図、第3C図及び第3d図は第1図
のキャッシュ制御装置の動作を説明する流れ図である。 10・・・・システム・メモリ、12・・・・I10バ
ス、14・・・・l0CC,15・・・・システム・バ
ス、 17・・・・I10装置、 +8−6・・バス・
メモリ、20・・・・I10データ・バッファ、22・
・・・キャッシュ・バッファ、 28・・・・I10ア
ドレス・バッファ、32.38・・・・比較器、40・
・・・TCWテーブル、42・・・・キャッシュ制御レ
ジスタ、50・・・・TCWキャッシュ・レジスタ、5
6・・・・選択回路、66・・・・復号/選択回路、6
8・・・・チャネル状況レジスタ、76・・・・保持レ
ジスタ。 出Lfi人 インターナショナル・ビジネス・マシー
ンズ・コーポレーション 復代理人 弁理L 澤 II+ 俊 夫M
2図 10バス (亙)858図から 05MAc図へ !l1lSb図から φM3σ図へ
Claims (2)
- (1)入出力バスを有するコンピュータ・システムのバ
ッファであって、 該入出力バス及びシステム・メモリに結合されたバッフ
ァ・メモリ、 該入出力バスに結合されたバス・メモリ、及び該入出力
バス上のアドレスが該システム・メモリに含まれるか又
は前記バス・メモリに含まれるかを示す標識を含む ことを特徴とする入出力キャッシュ。 - (2)入出力バスを有するコンピュータ・システムのバ
ッファであって、 システム・メモリからデータをキャッシュするバッファ
・メモリ、 該入出力バスでアドレス指定された仮想メモリ位置が現
に前記キャッシュ・バッファに含まれるかどうかを示す
手段、及び 仮想メモリ位置に対応するシステム・メモリ位置を含み
、もし該入出力バス上でアドレス指定された位置が現に
前記キャッシュ・バッファに含まれていないならば、該
システム・メモリは前記変換バッファによりアクセスさ
れ前記入出力バスでアドレス指定された位置を前記バッ
ファ・メモリにロードする変換バッファを含む ことを特徴とする入出力キャッシュ。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US29771289A | 1989-01-13 | 1989-01-13 | |
| US297712 | 1989-01-13 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH02226448A true JPH02226448A (ja) | 1990-09-10 |
| JPH0526218B2 JPH0526218B2 (ja) | 1993-04-15 |
Family
ID=23147428
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1338898A Granted JPH02226448A (ja) | 1989-01-13 | 1989-12-28 | 入出力キヤツシユ |
Country Status (3)
| Country | Link |
|---|---|
| EP (1) | EP0377971B1 (ja) |
| JP (1) | JPH02226448A (ja) |
| DE (1) | DE68921869T2 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH086856A (ja) * | 1994-06-15 | 1996-01-12 | Nec Corp | バスインタフェースアダプタ |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5842041A (en) * | 1994-05-20 | 1998-11-24 | Advanced Micro Devices, Inc. | Computer system employing a control signal indicative of whether address is within address space of devices on processor local bus |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4481573A (en) * | 1980-11-17 | 1984-11-06 | Hitachi, Ltd. | Shared virtual address translation unit for a multiprocessor system |
-
1989
- 1989-12-11 DE DE68921869T patent/DE68921869T2/de not_active Expired - Fee Related
- 1989-12-11 EP EP89312897A patent/EP0377971B1/en not_active Expired - Lifetime
- 1989-12-28 JP JP1338898A patent/JPH02226448A/ja active Granted
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH086856A (ja) * | 1994-06-15 | 1996-01-12 | Nec Corp | バスインタフェースアダプタ |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0377971B1 (en) | 1995-03-22 |
| DE68921869D1 (de) | 1995-04-27 |
| EP0377971A2 (en) | 1990-07-18 |
| JPH0526218B2 (ja) | 1993-04-15 |
| EP0377971A3 (en) | 1991-03-20 |
| DE68921869T2 (de) | 1995-10-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH02228745A (ja) | 入出力キヤツシユ | |
| US6360282B1 (en) | Protected control of devices by user applications in multiprogramming environments | |
| US6728836B1 (en) | Segmenting cache to provide varying service levels | |
| KR101662969B1 (ko) | 동적으로 할당된 더티 마스크 공간을 이용한 메모리 관리 | |
| JPH0345407B2 (ja) | ||
| JPS60221851A (ja) | メモリ・アクセス・コントローラを具えるデータ処理装置 | |
| US5287482A (en) | Input/output cache | |
| US6950909B2 (en) | System and method for reducing contention in a multi-sectored cache | |
| JPS604493B2 (ja) | マイクロプログラム化データ処理システム | |
| JPS61114353A (ja) | 要求時ペ−ジングメモリを有するデジタルデ−タ処理システムのアクセス照合構成体 | |
| JP3900025B2 (ja) | 共有キャッシュメモリのヒット判定制御方法及び共有キャッシュメモリのヒット判定制御方式 | |
| US20030097536A1 (en) | System and method for physical memory allocation in advanced operating systems | |
| JP3839655B2 (ja) | 変化するサービスレベルを提供するためのキャッシュのセグメント化 | |
| KR102658600B1 (ko) | 디바이스를 디버깅할 때 메타데이터에 액세스하기 위한 장치 및 방법 | |
| JP4047281B2 (ja) | キャッシュメモリをメインメモリに同期させる方法 | |
| JPH01108651A (ja) | コンピュータ装置およびコンピュータ装置においてキャッシュデータアレイ内のデータの不一致を検出して修正する方法 | |
| JPH02226448A (ja) | 入出力キヤツシユ | |
| JPH0210446A (ja) | バッファ記憶装置 | |
| JPS59112479A (ja) | キヤツシユメモリの高速アクセス方式 | |
| US6317857B1 (en) | System and method for utilizing checksums to recover data | |
| JPH03118650A (ja) | キャッシュサポート構造 | |
| EP0880099B1 (en) | Cache-type memory structure | |
| EP0400851A2 (en) | Efficient cache utilizing a store buffer | |
| JPS6031664A (ja) | キヤツシユ先行アクセス方式 | |
| JPH01156848A (ja) | メモリアクセス処理装置 |