JPH02228745A - 入出力キヤツシユ - Google Patents
入出力キヤツシユInfo
- Publication number
- JPH02228745A JPH02228745A JP2006052A JP605290A JPH02228745A JP H02228745 A JPH02228745 A JP H02228745A JP 2006052 A JP2006052 A JP 2006052A JP 605290 A JP605290 A JP 605290A JP H02228745 A JPH02228745 A JP H02228745A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- memory
- line
- buffer
- access
- 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
- 239000000872 buffer Substances 0.000 claims abstract description 69
- 238000012546 transfer Methods 0.000 abstract description 30
- 238000012360 testing method Methods 0.000 description 15
- 238000000034 method Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 230000014616 translation Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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/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)
- Storage Device Security (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
A、産業上の利用分野
本発明は一般にコンピュータ・システムに、特に入出力
装置により使用されるキャッシュ制御装置に関する。
装置により使用されるキャッシュ制御装置に関する。
B、従来の技術
一般にコンピュータ・システムはメモリ階層を規定する
幾つかの異なる記憶層を有する。普通、これらの層は中
央演算処理装置内のレジスタ、メイン・システム・メモ
リ、及びディスクのような大容量記憶装置を含む、これ
らの異なるレベルのパフォーマンスは全く異なる。プロ
セッサ・レジスタはシステム・メモリよりもずっと速く
、システム・メモリは大容量記憶装置に対するアクセス
よりもかなり速い。
幾つかの異なる記憶層を有する。普通、これらの層は中
央演算処理装置内のレジスタ、メイン・システム・メモ
リ、及びディスクのような大容量記憶装置を含む、これ
らの異なるレベルのパフォーマンスは全く異なる。プロ
セッサ・レジスタはシステム・メモリよりもずっと速く
、システム・メモリは大容量記憶装置に対するアクセス
よりもかなり速い。
システム・パフォーマンスを向上させるために、中央プ
ロセッサとシステム・メモリの間にしばしば、小容量高
速のメモリから成るキャッシュが用いられる。キャッシ
ュはコンピュータ・プログラム内の参照動作の局所性を
利用して再使用される見込みのあるデータを記憶する。
ロセッサとシステム・メモリの間にしばしば、小容量高
速のメモリから成るキャッシュが用いられる。キャッシ
ュはコンピュータ・プログラム内の参照動作の局所性を
利用して再使用される見込みのあるデータを記憶する。
同様の隘路はシステム・メモリと、該システム・メモリ
との間でデータを転送する必要があるずっと低速の大容
量記憶装置及び他の入出力装置との間にも生じる。入出
力装置(本明細書で用いるときは大容量記憶装置を含む
)間のデータ転送をより効率的にするシステム設計はど
れも総合的なシステム・パフォーマンスによい影響を与
える。
との間でデータを転送する必要があるずっと低速の大容
量記憶装置及び他の入出力装置との間にも生じる。入出
力装置(本明細書で用いるときは大容量記憶装置を含む
)間のデータ転送をより効率的にするシステム設計はど
れも総合的なシステム・パフォーマンスによい影響を与
える。
しかしながら、中央プロセッサとシステム・メモリの間
で用いら九るような従来のキャッシュ技術は入出力装置
とはうまく整合しない。
で用いら九るような従来のキャッシュ技術は入出力装置
とはうまく整合しない。
これは、主として、単一の中央演算処理装置及び複数の
入出力装置で見つかるアクセス・パターンの相違による
。中央プロセッサは単一のユニット・アクセス・メモリ
であり、システム・メモリ全体にわたる異なる位置に対
する多数の比較的ランダムなアクセスを行なう、入出力
装置によるメモリ・アクセスは使用するパターンが異な
る0通常、各装置は幾つかのメモリ位置だけをアクセス
するが、それぞれの装置は異なるメモリ位置をアクセス
する。更に、それぞれの装置は予測できないパターンで
メモリをアクセスする。
入出力装置で見つかるアクセス・パターンの相違による
。中央プロセッサは単一のユニット・アクセス・メモリ
であり、システム・メモリ全体にわたる異なる位置に対
する多数の比較的ランダムなアクセスを行なう、入出力
装置によるメモリ・アクセスは使用するパターンが異な
る0通常、各装置は幾つかのメモリ位置だけをアクセス
するが、それぞれの装置は異なるメモリ位置をアクセス
する。更に、それぞれの装置は予測できないパターンで
メモリをアクセスする。
中にはかなりまれにしかメモリをアクセスしない入出力
装置もあるから、これらの装置のキャッシュ・ヒツトは
めったに生じない、これは特に、ある入出力装置1例え
ばディスクが多数の連続するメモリ位置を読取ったり書
込んだりする時にあてはまる。このような転送の後、キ
ャッシュは当該装置によって転送されたデータで満たさ
れる傾向がある。入出力装置毎に別々のキャッシュ・メ
そりを設けることは通常は不可能である。
装置もあるから、これらの装置のキャッシュ・ヒツトは
めったに生じない、これは特に、ある入出力装置1例え
ばディスクが多数の連続するメモリ位置を読取ったり書
込んだりする時にあてはまる。このような転送の後、キ
ャッシュは当該装置によって転送されたデータで満たさ
れる傾向がある。入出力装置毎に別々のキャッシュ・メ
そりを設けることは通常は不可能である。
もしメイン・システム・メモリのある部分が入出力装置
及び中央プロセッサの両者によってアクセス可能であれ
ば1通常のCPUキャッシュによるキャッシュの一貫性
の問題を回避するために、中央プロセッサは前記メモリ
を入出力キャッシュを通じてアクセスする必要があるか
も知れない、これは入出力装置によって入出力キャッシ
ュの使用を妨げる傾向がある。
及び中央プロセッサの両者によってアクセス可能であれ
ば1通常のCPUキャッシュによるキャッシュの一貫性
の問題を回避するために、中央プロセッサは前記メモリ
を入出力キャッシュを通じてアクセスする必要があるか
も知れない、これは入出力装置によって入出力キャッシ
ュの使用を妨げる傾向がある。
マルチユーザ環境をサポートするコンピュータ・システ
ムの設計者が考慮しなければならないもう1つの問題は
アクセス保護の問題である。他のプロセスによって用い
られるメモリ位置のアクセス、及びオペレーティング・
システムにより特別な目的に用いられるメモリ位置のア
クセスの同時処理は防がなければならない、当業者には
多数のアクセス制御方式が知られている。アクセス制御
を実現するハードウェアの機構はソフトウェアに基づく
解決方法よりもすぐれたパフォーマンスを与える。
ムの設計者が考慮しなければならないもう1つの問題は
アクセス保護の問題である。他のプロセスによって用い
られるメモリ位置のアクセス、及びオペレーティング・
システムにより特別な目的に用いられるメモリ位置のア
クセスの同時処理は防がなければならない、当業者には
多数のアクセス制御方式が知られている。アクセス制御
を実現するハードウェアの機構はソフトウェアに基づく
解決方法よりもすぐれたパフォーマンスを与える。
前記マルチユーザ・システムでは、種々の装置からの入
出力はどうにか調停されなければならない、マルチユー
ザ・システム1こ必要なメモリ保護方式を実現するため
、メモリの一定の領域に対しては、入出力アクセスが起
きるのを防がなければならない、この問題の解決方法を
工夫する試みは困難に直面している。
出力はどうにか調停されなければならない、マルチユー
ザ・システム1こ必要なメモリ保護方式を実現するため
、メモリの一定の領域に対しては、入出力アクセスが起
きるのを防がなければならない、この問題の解決方法を
工夫する試みは困難に直面している。
入出力インタフェース装置が装置毎にメモリ・アクセス
保護ハードウェアを設けることが望ましい、更に、この
ようなインタフェースがシステム・メモリに仮想メモリ
対実メモリ・アドレス変換を実行する効率的な入出力バ
ッファを提供することが望ましい。
保護ハードウェアを設けることが望ましい、更に、この
ようなインタフェースがシステム・メモリに仮想メモリ
対実メモリ・アドレス変換を実行する効率的な入出力バ
ッファを提供することが望ましい。
C2発明が解決しようとする課題
本発明の目的はシステム・メモリを入出力装置インタフ
ェースに提供しメモリ・アクセスを効率的に緩衝記憶さ
せることである。
ェースに提供しメモリ・アクセスを効率的に緩衝記憶さ
せることである。
本発明のもう1つの目的はシステム・メモリを入出力装
置インタフェースに提供しシステム・メモリのアクセス
保護を提供することである。
置インタフェースに提供しシステム・メモリのアクセス
保護を提供することである。
本発明の更にもう1つの目的はシステム・メモリを入出
力装置インタフェースに提供しインタフェース・バッフ
ァの予約された部分に対し別々の入出力装置アクセスを
可能にすることである。
力装置インタフェースに提供しインタフェース・バッフ
ァの予約された部分に対し別々の入出力装置アクセスを
可能にすることである。
00課題を解決するための手段
本発明に従って、入出力キャッシュは複数のキャッシュ
・ラインを有する。各入出力装置はディレクトリ・フィ
ールドを含む予約されたレジスタを有する。ディレクト
リ・フィールドは各入出力装置に関連した少なくとも1
つのキャッシュ・ラインを選択するのに用いられる。予
約されたレジスタは入出力毎のアクセス許可情報も含む
、この許可は仮想ページ・テーブルに含まれたアクセス
情報に対して検査されてから、入出力装置が仮想ページ
のアクセスを許される。
・ラインを有する。各入出力装置はディレクトリ・フィ
ールドを含む予約されたレジスタを有する。ディレクト
リ・フィールドは各入出力装置に関連した少なくとも1
つのキャッシュ・ラインを選択するのに用いられる。予
約されたレジスタは入出力毎のアクセス許可情報も含む
、この許可は仮想ページ・テーブルに含まれたアクセス
情報に対して検査されてから、入出力装置が仮想ページ
のアクセスを許される。
E、実施例
第2図で、システム・メモリ 10は入出力キャッシュ
制御装置(IOCC) 14を介して入出力 (Ilo
)バス12に接続される。システム・バス15はシステ
ム・メモリ 10とl0CC14を接続し、アドレス、
データ及び制御ラインを含む、 l0CC14はアドレ
ス、データ及び制御ライン16を介してI10バス12
に接続される。
制御装置(IOCC) 14を介して入出力 (Ilo
)バス12に接続される。システム・バス15はシステ
ム・メモリ 10とl0CC14を接続し、アドレス、
データ及び制御ラインを含む、 l0CC14はアドレ
ス、データ及び制御ライン16を介してI10バス12
に接続される。
入出力装置17はI10バス12に接続される。
入出力装置17は1例えば、ビデオ表示装置、ディスク
及びテープ駆動制御装置、並びに直並列■lOボートを
含む、後で説明するように、システム・メモリのように
アドレス可能なバス・メモリ18もI10バス12に接
続される。 I10バス12に接続された装置とシステ
ム・メモリ 10の間の全てのデータ転送はl0CC1
4を介して行なわれる。
及びテープ駆動制御装置、並びに直並列■lOボートを
含む、後で説明するように、システム・メモリのように
アドレス可能なバス・メモリ18もI10バス12に接
続される。 I10バス12に接続された装置とシステ
ム・メモリ 10の間の全てのデータ転送はl0CC1
4を介して行なわれる。
システム・メモリ 10のパフォーマンスを向上させる
ために、技術的によく知られているようにそれはインタ
ーリーブされるか、さもなければ、高速ブロック転送の
ために最適化されることがある。高速のブロック転送通
信を用いて信号ライン16に沿ってデータが転送される
。 l0CC14はそのとき必要に応じてI10バス1
2で装置と自由に通信することができる。
ために、技術的によく知られているようにそれはインタ
ーリーブされるか、さもなければ、高速ブロック転送の
ために最適化されることがある。高速のブロック転送通
信を用いて信号ライン16に沿ってデータが転送される
。 l0CC14はそのとき必要に応じてI10バス1
2で装置と自由に通信することができる。
良好な実施例では、 l0CC14はI10バス12の
データ・キャッシュ及び仮想メモリ対実メモリ・アドレ
ス変換の機能を実行する。更に、良好なl0CC14は
全てのI10要求についてアクセス許可の検査を実行す
る。良好な実施例では、データ書込みはシステム・メモ
リ 10に直接には書込まれない0代りに、それらは該
書込まれたデータがl0CC14から取り除かれるまで
l0CC14に保持される。
データ・キャッシュ及び仮想メモリ対実メモリ・アドレ
ス変換の機能を実行する。更に、良好なl0CC14は
全てのI10要求についてアクセス許可の検査を実行す
る。良好な実施例では、データ書込みはシステム・メモ
リ 10に直接には書込まれない0代りに、それらは該
書込まれたデータがl0CC14から取り除かれるまで
l0CC14に保持される。
第1図はl0CC14の詳細を示す、■10データ・バ
ッファ 20はキャッシュ・バッファ 22に接続され
る。このキャッシュ・バッファ 22は各々が64バイ
トの16ラインとして構成されることが望ましい、そし
てキャッシュ・バッファ 22はシステム・メモリ 1
0に接続される。データはキャッシュ・バッファ 22
とシステム・メモリ 10の間では高速のブロック・デ
ータ転送によって転送される。このブロック転送の特性
の詳細は本発明の部分を構成するものではない。
ッファ 20はキャッシュ・バッファ 22に接続され
る。このキャッシュ・バッファ 22は各々が64バイ
トの16ラインとして構成されることが望ましい、そし
てキャッシュ・バッファ 22はシステム・メモリ 1
0に接続される。データはキャッシュ・バッファ 22
とシステム・メモリ 10の間では高速のブロック・デ
ータ転送によって転送される。このブロック転送の特性
の詳細は本発明の部分を構成するものではない。
システム・メモリ 10はページ、更にページ内ではラ
インで構成されることが望ましい、ページ及びラインの
大きさは本発明の部分を構成するものではないが1本明
細書に記述される実施例のページの大きさは4にバイト
であり、ラインの大きさは64バイトである。よって、
1ページは64ラインである。システム・メモリ 10
との間の転送は最小の大きさの単位1ラインで実行され
る。
インで構成されることが望ましい、ページ及びラインの
大きさは本発明の部分を構成するものではないが1本明
細書に記述される実施例のページの大きさは4にバイト
であり、ラインの大きさは64バイトである。よって、
1ページは64ラインである。システム・メモリ 10
との間の転送は最小の大きさの単位1ラインで実行され
る。
4ビツト・アドレス・ライン24及び6ビツト・アドレ
ス・ライン26によってアドレス指定されたメモリ位置
により、データはI10データ・バッファ 20とキャ
ッシュ・バッファ 22の間で転送される。ライン24
上の値はキャッシュ・バッファ 22内の16ラインの
1つを選択し、ライン26上の値は該選択されたライン
内の64バイトの1つを選択する。
ス・ライン26によってアドレス指定されたメモリ位置
により、データはI10データ・バッファ 20とキャ
ッシュ・バッファ 22の間で転送される。ライン24
上の値はキャッシュ・バッファ 22内の16ラインの
1つを選択し、ライン26上の値は該選択されたライン
内の64バイトの1つを選択する。
アドレスはI10バス12から I10アドレス・バッ
ファ 28に記憶される。ライン26から供給される
I10アドレス・バッファ 28の6つの最下位(LS
B)ビットはキャッシュ・バッファ 22のバイト・ア
ドレス値として用いられる。I10アドレス・バッファ
28のより上位の次の6ビツトは、信号ライン301
介して比較器32に、ライン34を介してシステム・メ
モリ 10に供給される。ライン34上の信号は、シス
テム・メモリ 10で、1ページ内の64ラインから1
ラインを選択するのに用いられる。
ファ 28に記憶される。ライン26から供給される
I10アドレス・バッファ 28の6つの最下位(LS
B)ビットはキャッシュ・バッファ 22のバイト・ア
ドレス値として用いられる。I10アドレス・バッファ
28のより上位の次の6ビツトは、信号ライン301
介して比較器32に、ライン34を介してシステム・メ
モリ 10に供給される。ライン34上の信号は、シス
テム・メモリ 10で、1ページ内の64ラインから1
ラインを選択するのに用いられる。
I10アドレス・バッファ 28から 20の最上位ビ
ット(MSB)がライン36を介して比較器38及び変
換制御ワード(Tcw)テーブル40に供給される。
TCWテーブル40はページ・テーブルとしても技術的
に知られている。それはl0CC14に接続された高速
の専用メモリであり、システムのアドレス空間には存在
しない、もしTCWC−テーブル全体を記憶する十分に
大きい専用メモリが使用可能ではないなら、該専用メモ
リは該テーブルのキャッシュとして用いることができる
。該テーブルは実際にはシステムのメモリ・アドレス空
間に記憶される0通常、これはパフォーマンスの観点か
ら望ましくない。
ット(MSB)がライン36を介して比較器38及び変
換制御ワード(Tcw)テーブル40に供給される。
TCWテーブル40はページ・テーブルとしても技術的
に知られている。それはl0CC14に接続された高速
の専用メモリであり、システムのアドレス空間には存在
しない、もしTCWC−テーブル全体を記憶する十分に
大きい専用メモリが使用可能ではないなら、該専用メモ
リは該テーブルのキャッシュとして用いることができる
。該テーブルは実際にはシステムのメモリ・アドレス空
間に記憶される0通常、これはパフォーマンスの観点か
ら望ましくない。
多くのシステムで、I10装置はシステム・アドレス空
間のわずかな部分にしかアクセスしない。
間のわずかな部分にしかアクセスしない。
アドレス空間の当該部分−I10装置がアクセスするー
だけがTCWテーブル40に表示されればよい、前記シ
ステムで、 TCυテニブル40の専用メモリはI10
装置に必要なTCWC−テーブル全体を保持することが
できればよく、極端に大きい必要はない、 TCVメモ
リ40の構成は以下に説明する。
だけがTCWテーブル40に表示されればよい、前記シ
ステムで、 TCυテニブル40の専用メモリはI10
装置に必要なTCWC−テーブル全体を保持することが
できればよく、極端に大きい必要はない、 TCVメモ
リ40の構成は以下に説明する。
キャッシュ制御レジスタ 42のファイルは16の別々
のレジスタを含む、ファイルの1つのレジスタは任意の
所与の時点で活動状態である。活動状態のレジスタはラ
イン44上の4ビツト信号によって選択される。現に選
択されたキャッシュ制御レジスタ 42から 20のM
SBビットが信号ライン46を介して比較器38に供給
される。より下位の次の6ビツトは選択されたキャッシ
ュ制御レジスタ 42から信号ライン48を介して比較
器32に接続される。3つのLBSビットはり、C及び
■の標識が付される。これらのビットはダーティ・ビッ
ト (Dビット)、カレント・ビット (Cビット)及
び無効ビット (Iビット)である、これらのビットの
使用は第3図に関連して説明する。
のレジスタを含む、ファイルの1つのレジスタは任意の
所与の時点で活動状態である。活動状態のレジスタはラ
イン44上の4ビツト信号によって選択される。現に選
択されたキャッシュ制御レジスタ 42から 20のM
SBビットが信号ライン46を介して比較器38に供給
される。より下位の次の6ビツトは選択されたキャッシ
ュ制御レジスタ 42から信号ライン48を介して比較
器32に接続される。3つのLBSビットはり、C及び
■の標識が付される。これらのビットはダーティ・ビッ
ト (Dビット)、カレント・ビット (Cビット)及
び無効ビット (Iビット)である、これらのビットの
使用は第3図に関連して説明する。
16のレジスタ 50のファイルはTC−キャッシュを
規定する。信号ライン52上の値によって1つの活動状
態のレジスタが選択される。ライン52上の値は常にラ
イン44上の値と同じである0選択されたTCWキャッ
シュ・レジスタ 50から20のMSBビットがアドレ
ス・ライン54を介してシステム・メモリ 10に供給
される。この 20ビツト・アドレスはシステム・メモ
リ 10内で1つの実ページをアドレス指定するのに用
いられる。
規定する。信号ライン52上の値によって1つの活動状
態のレジスタが選択される。ライン52上の値は常にラ
イン44上の値と同じである0選択されたTCWキャッ
シュ・レジスタ 50から20のMSBビットがアドレ
ス・ライン54を介してシステム・メモリ 10に供給
される。この 20ビツト・アドレスはシステム・メモ
リ 10内で1つの実ページをアドレス指定するのに用
いられる。
TCWキャッシュ・レジスタ 50のより下位の次のビ
ットは4ビツト幅の DIRフィールドを規定する。
DIRフィールドの目的及びDIR信号の機能は以下に
説明する。 DIR信号は信号ライン58を介して選択
回路56に供給される。信号ライン52上の値と同じ値
を含む4ビツト信号ライン60も選択回路56に接続さ
れる。
ットは4ビツト幅の DIRフィールドを規定する。
DIRフィールドの目的及びDIR信号の機能は以下に
説明する。 DIR信号は信号ライン58を介して選択
回路56に供給される。信号ライン52上の値と同じ値
を含む4ビツト信号ライン60も選択回路56に接続さ
れる。
TCWキャッシュ50の8つのLSBビットは2つの4
ビツト・フィールドに分割される。4つのしSBビット
は以下に説明する機能を有する制御ビットである0次の
4ビツトはにE’/フィールドを規定する。これはシス
テム・メモリ lOで各ページのアクセス許可を決定す
るのに用いられる。 KEYビット及びその下位の2つ
の制御ビットはそれぞれ信号ライン62及び64を介し
て復号/選択回路66に供給される。
ビツト・フィールドに分割される。4つのしSBビット
は以下に説明する機能を有する制御ビットである0次の
4ビツトはにE’/フィールドを規定する。これはシス
テム・メモリ lOで各ページのアクセス許可を決定す
るのに用いられる。 KEYビット及びその下位の2つ
の制御ビットはそれぞれ信号ライン62及び64を介し
て復号/選択回路66に供給される。
チャネル状況レジスタ 68のファイルは16のレジス
タを含む、その1つは4ビツトの信号ライン70の値に
より活動状態になる。信号ライン70は以下に説明する
ようにDEVICE 5ELECT (装置選択)信号
によって駆動される。
タを含む、その1つは4ビツトの信号ライン70の値に
より活動状態になる。信号ライン70は以下に説明する
ようにDEVICE 5ELECT (装置選択)信号
によって駆動される。
チャネル状況レジスタ 68の16のMS8ビットは信
号ライン72を介して復号/選択回路66に供給される
。 DI)lフィールドを規定する4つのLSBビッ
トは活動状態のチャネル状況レジスタ68からライン7
4に伝達される。前述のように、このラインは信号ライ
ン44.52及び60に接続される。
号ライン72を介して復号/選択回路66に供給される
。 DI)lフィールドを規定する4つのLSBビッ
トは活動状態のチャネル状況レジスタ68からライン7
4に伝達される。前述のように、このラインは信号ライ
ン44.52及び60に接続される。
TCWテーブル40は、各々の位置に、TCWキャッシ
ュ・レジスタ 50のエントリと同じ形式を持つエント
リを含むメモリである。このように、TCWテーブル4
0にある各々のエントリは実ページ番号、DIRエント
リ、KEY、及び4つのCNTL(制御)ビットを含む
、エントリはTCWテーブル40から読取られると、信
号ライン78を介して保持レジスタ 76に伝達される
。 TCWテーブル40でDIRフィールドに対応する
エントリの4ビツトは信号ライン80を介して活動状態
のチャネル状況レジスタ 68のDIRフィールドに直
接伝達される。エントリがTCWテーブル40から T
C−キャッシュ・レジスタ 50に伝達されるとき、該
エントリは保持レジスタ76から信号ライン82を介し
て伝達される。
ュ・レジスタ 50のエントリと同じ形式を持つエント
リを含むメモリである。このように、TCWテーブル4
0にある各々のエントリは実ページ番号、DIRエント
リ、KEY、及び4つのCNTL(制御)ビットを含む
、エントリはTCWテーブル40から読取られると、信
号ライン78を介して保持レジスタ 76に伝達される
。 TCWテーブル40でDIRフィールドに対応する
エントリの4ビツトは信号ライン80を介して活動状態
のチャネル状況レジスタ 68のDIRフィールドに直
接伝達される。エントリがTCWテーブル40から T
C−キャッシュ・レジスタ 50に伝達されるとき、該
エントリは保持レジスタ76から信号ライン82を介し
て伝達される。
I10バス12に接続された各装置は16のチャネル状
況レジスタ 68の1つで表示される。ライン70に接
続されたDEVICE 5ELECT信号は I10バ
ス12に接続された装置の特定の1つを識別する。
況レジスタ 68の1つで表示される。ライン70に接
続されたDEVICE 5ELECT信号は I10バ
ス12に接続された装置の特定の1つを識別する。
この信号はどの装置がI10動作を実行中であるかを示
す、 DEVICE 5ELECT信号は任意の所望の
方法で生成することができる。良好な l0CC14が
18Mマイクロチャネル・バスを利用するコンピュータ
・システムとともに使用されるときは、DEV ICE
5ELECT信号はむしろバス調停信号と同じである
。各装置はマイクロチャネル・バスに特定の調停レベル
を持っており、この識別はDEVICE 5ELECT
信号として用いることができる。
す、 DEVICE 5ELECT信号は任意の所望の
方法で生成することができる。良好な l0CC14が
18Mマイクロチャネル・バスを利用するコンピュータ
・システムとともに使用されるときは、DEV ICE
5ELECT信号はむしろバス調停信号と同じである
。各装置はマイクロチャネル・バスに特定の調停レベル
を持っており、この識別はDEVICE 5ELECT
信号として用いることができる。
ライン70の信号によってチャネル状況レジスタ 68
の1つが選択されると、4つのLBSビットがDIR(
ディレクトリ)信号として用いられ、キャッシュ制御レ
ジスタ 42. TCWキャッシュ・レジスタ 50.
及びキャッシュ・バッファ 22の1つのラインを選択
する。以下に説明する1つの状況を除き、選択回路56
はキャッシュ・バッファ 22のラインを選択するため
にライン60の信号をライン24に供給する0選択され
たキャッシュ制御レジスタ 42、TCWキャッシュ・
レジスタ 50.及びキャッシュ・バッファ 22のラ
インは常に対応し、仮想ページ番号、ライン番号、及び
キャッシュ・バッファ 22内の選択されたラインの実
ページ番号を記述する8選択されたラインの仮想ページ
番号は選択されたキャッシュ制御レジスタの20のMS
8ビットに記憶されるが、キャッシュ・バッファ 22
の選択されたラインのライン番号に対応するシステム・
メモリ・ライン番号はキャッシュ制御レジスタ42の6
つのLSBビットに記憶される。
の1つが選択されると、4つのLBSビットがDIR(
ディレクトリ)信号として用いられ、キャッシュ制御レ
ジスタ 42. TCWキャッシュ・レジスタ 50.
及びキャッシュ・バッファ 22の1つのラインを選択
する。以下に説明する1つの状況を除き、選択回路56
はキャッシュ・バッファ 22のラインを選択するため
にライン60の信号をライン24に供給する0選択され
たキャッシュ制御レジスタ 42、TCWキャッシュ・
レジスタ 50.及びキャッシュ・バッファ 22のラ
インは常に対応し、仮想ページ番号、ライン番号、及び
キャッシュ・バッファ 22内の選択されたラインの実
ページ番号を記述する8選択されたラインの仮想ページ
番号は選択されたキャッシュ制御レジスタの20のMS
8ビットに記憶されるが、キャッシュ・バッファ 22
の選択されたラインのライン番号に対応するシステム・
メモリ・ライン番号はキャッシュ制御レジスタ42の6
つのLSBビットに記憶される。
対応する実ページ番号はTCυキャッシュ・レジスタ
50の 20のMS8ビットに記憶される。
50の 20のMS8ビットに記憶される。
キャッシュ制御レジスタ 42からの仮想ページ番号及
びライン番号は比較器38及び32で、それぞれ、I1
0アドレス・バッファ 28にある仮想ページ番号及び
ライン番号と比較される。もしこれらの比較がどちらも
一致すれば、TCW有効信号及びキャッシュ・ライン有
効信号はこの事実を示す、これらの信号が一致を表わす
とき、I10アドレス・バッファ 28にある該要求さ
れた仮想アドレスはキャッシュ・バッファ 22でライ
ン24に示されたライン番号に現に存在する。
びライン番号は比較器38及び32で、それぞれ、I1
0アドレス・バッファ 28にある仮想ページ番号及び
ライン番号と比較される。もしこれらの比較がどちらも
一致すれば、TCW有効信号及びキャッシュ・ライン有
効信号はこの事実を示す、これらの信号が一致を表わす
とき、I10アドレス・バッファ 28にある該要求さ
れた仮想アドレスはキャッシュ・バッファ 22でライ
ン24に示されたライン番号に現に存在する。
良好なアクセス保護機構では、各ページは、サブジェク
トとも呼ばれる下位区分を割当てられる。
トとも呼ばれる下位区分を割当てられる。
特定のサブジェクトにアクセスすることを許可されるプ
ロセス及び装置は当該サブジェクトを含む仮想ページの
アクセスを許される。チャネル状況レジスタの16のM
SBビットは、I10バス12に接続された装置毎に、
当該装置がアクセスを許可されるサブジェクトを明確に
する。この許可は許可マスクを規定するビット・マツプ
として実現される。16の可能なサブジェクトのうち、
装置がアクセスを許可されるものは対応するビット位置
に1が置かれ、アクセスが許可されないサブジェクトに
対応するビット位置にはOが置かれる。
ロセス及び装置は当該サブジェクトを含む仮想ページの
アクセスを許される。チャネル状況レジスタの16のM
SBビットは、I10バス12に接続された装置毎に、
当該装置がアクセスを許可されるサブジェクトを明確に
する。この許可は許可マスクを規定するビット・マツプ
として実現される。16の可能なサブジェクトのうち、
装置がアクセスを許可されるものは対応するビット位置
に1が置かれ、アクセスが許可されないサブジェクトに
対応するビット位置にはOが置かれる。
TCWキャッシュ・レジスタ 50のKEYフィールド
は対応するページのサブジェクトを規定し、ライン72
にある許可マスク信号からビット位置を選択するのに用
いられる0例えば、もしライン62の信号がF16であ
れば、活動化されたチャネル状況レジスタ 68の左端
のビットは、現在の装置が現在のページのアクセスを許
可されるためには1でなければならない、各ページは厳
密に1つの関連したアクセス許可区分を有するので、1
ページはアクセス区分を写像する最小の単位である。
は対応するページのサブジェクトを規定し、ライン72
にある許可マスク信号からビット位置を選択するのに用
いられる0例えば、もしライン62の信号がF16であ
れば、活動化されたチャネル状況レジスタ 68の左端
のビットは、現在の装置が現在のページのアクセスを許
可されるためには1でなければならない、各ページは厳
密に1つの関連したアクセス許可区分を有するので、1
ページはアクセス区分を写像する最小の単位である。
サブジェクト本文のアクセスの外、TCWキャッシュ・
レジスタ 50の2つのL5Bビットによって読取り及
び書込みアクセスが示される。これらのビットはページ
誤りがある(このページはシステム・メモリ 10には
なく、ページ・アウトされている)かどうか、即ちアク
セスされたメモリ・ページがシステム・メモリ IOの
代りにバス・メモリで見つかるかどうかも表わす8これ
らの信号もI10バス12からの読取り/書込み信号(
図示せず)として、復号/選択回路66に接続される。
レジスタ 50の2つのL5Bビットによって読取り及
び書込みアクセスが示される。これらのビットはページ
誤りがある(このページはシステム・メモリ 10には
なく、ページ・アウトされている)かどうか、即ちアク
セスされたメモリ・ページがシステム・メモリ IOの
代りにバス・メモリで見つかるかどうかも表わす8これ
らの信号もI10バス12からの読取り/書込み信号(
図示せず)として、復号/選択回路66に接続される。
これらの信号は、例えば、装置が読取り専用仮想ページ
への書込み動作の実行を試みてはいないことを確認する
ために使用される。復号/選択回路66からのアクセス
OK信号は該試みられているアクセスが有効であるかど
うかを判定する0表■にTCυキャッシュ・レジスタ
50にある2つのLSBビットの意味を示す。
への書込み動作の実行を試みてはいないことを確認する
ために使用される。復号/選択回路66からのアクセス
OK信号は該試みられているアクセスが有効であるかど
うかを判定する0表■にTCυキャッシュ・レジスタ
50にある2つのLSBビットの意味を示す。
表1−2つのLSB制御ビット
00− バス・メモリ
01− ページ誤り
10− 読取り専用
11− 読取り/書込み
バス・メモリはI10バス12に接続されたメモリであ
る。バス・メモリ・アドレス空間の部分はシステム・ア
ドレス空間の部分に写像することができる。従って5I
10バス12に接する装置、及びシステム中央プロセッ
サにとっては、バス・メモリはシステム・メモリ lO
と同じように見える。
る。バス・メモリ・アドレス空間の部分はシステム・ア
ドレス空間の部分に写像することができる。従って5I
10バス12に接する装置、及びシステム中央プロセッ
サにとっては、バス・メモリはシステム・メモリ lO
と同じように見える。
しかしながら、バス・メモリをキャッシュするのにキャ
ッシュ・バッファ 22は使用されない、バス・メモリ
を取扱う際の相違は第3図に示す、バス・メモリは、大
容量の記憶を要求する I10装置、例えばビデオ表示
制御装置を接続するのに用いることができる。
ッシュ・バッファ 22は使用されない、バス・メモリ
を取扱う際の相違は第3図に示す、バス・メモリは、大
容量の記憶を要求する I10装置、例えばビデオ表示
制御装置を接続するのに用いることができる。
選択されたTCυキャッシュ・レジスタ 50の制御フ
ィールドの、残る2つのビットは”参照された”ことと
”変更された”ことを意味するR及びCの標識が付され
る。これらのビットはページ誤りが起きたとき、どの仮
想ページをディスクとスワップすべきかを決定するため
、なるべくなら仮想メモリ・マネジャによって使用され
る方がよい。
ィールドの、残る2つのビットは”参照された”ことと
”変更された”ことを意味するR及びCの標識が付され
る。これらのビットはページ誤りが起きたとき、どの仮
想ページをディスクとスワップすべきかを決定するため
、なるべくなら仮想メモリ・マネジャによって使用され
る方がよい。
メモリ管理のためのRCビットの使用は技術的に知られ
ている。
ている。
第1図のキャッシュ制御装置はI10バス12に接続さ
れたシステム中央プロセッサ並びにI10装置によって
アクセスできるように設計されている。
れたシステム中央プロセッサ並びにI10装置によって
アクセスできるように設計されている。
第3図に示す制御の流れは、l0CC14が中央プロセ
ッサ又はI10装置によって使用中であるかどうかにか
かわらず、基本的に同じである。制御動作の最初の幾つ
かのステップは、システム中央プロセッサがl0CC1
4を介してメモリをアクセスしている時にだけ用いられ
、残りのステップは中央プロセッサ及びI10装置のど
ちらにも用いられる。
ッサ又はI10装置によって使用中であるかどうかにか
かわらず、基本的に同じである。制御動作の最初の幾つ
かのステップは、システム中央プロセッサがl0CC1
4を介してメモリをアクセスしている時にだけ用いられ
、残りのステップは中央プロセッサ及びI10装置のど
ちらにも用いられる。
l0CC14を介してロード又は記憶動作を実行するシ
ステム中央プロセッサは2つのモードのうちの1つで動
作することができる。もし中央プロセッサが監視モード
で動作しているならば、常に全てのメモリ位置をアクセ
スし、アクセス検査は実行されない、もし中央プロセッ
サが非監視モードで動作しているならば、第3図に示す
ようにアクセス検査が行なわれる。工10バス12に接
続された装置に対する全てのアクセスがl0CC14を
経由して行なわれるとは限らない0通常のシステム・メ
モリ・アドレス空間におけるメモリ位置に対するメモリ
・アクセスだけがl0CC14の動作を行なう、インテ
ルの80X86フアミリのプロセッサによってサポート
されるような、離れたI10アドレス空間に対するアク
セスはl0CC14をバイパスし。
ステム中央プロセッサは2つのモードのうちの1つで動
作することができる。もし中央プロセッサが監視モード
で動作しているならば、常に全てのメモリ位置をアクセ
スし、アクセス検査は実行されない、もし中央プロセッ
サが非監視モードで動作しているならば、第3図に示す
ようにアクセス検査が行なわれる。工10バス12に接
続された装置に対する全てのアクセスがl0CC14を
経由して行なわれるとは限らない0通常のシステム・メ
モリ・アドレス空間におけるメモリ位置に対するメモリ
・アクセスだけがl0CC14の動作を行なう、インテ
ルの80X86フアミリのプロセッサによってサポート
されるような、離れたI10アドレス空間に対するアク
セスはl0CC14をバイパスし。
直接I10バス 12に向かう、このタイプのアクセス
のため、バイパス・フラグがセットされ、l0CC14
がバイパスされる予定であることを表示する。
のため、バイパス・フラグがセットされ、l0CC14
がバイパスされる予定であることを表示する。
第3a図、第3b図、第3c図及び第3d図をまとめて
第3図と呼ぶ、 l0CC14の詳細な動作を第3図に
関連して説明する。良好な実施例では。
第3図と呼ぶ、 l0CC14の詳細な動作を第3図に
関連して説明する。良好な実施例では。
l0CC14にとって中央プロセッサは、第1図に関連
して説明したように、単にそれ自身に予約されたチャネ
ル状況レジスタ 68を有するもう1つの110装置の
ように見える。
して説明したように、単にそれ自身に予約されたチャネ
ル状況レジスタ 68を有するもう1つの110装置の
ように見える。
I10バス12に接続された装置−もしそれが10CC
14を介してロード/記憶動作の実行を試みているなら
ばシステム中央プロセッサを含むはどの装置がl0CC
14をアクセスするかの決定について調停する。前述の
ように、前記調停の勝者はDEVICE 5ELECT
信号として用いられる特定の調停レベル識別子を得る。
14を介してロード/記憶動作の実行を試みているなら
ばシステム中央プロセッサを含むはどの装置がl0CC
14をアクセスするかの決定について調停する。前述の
ように、前記調停の勝者はDEVICE 5ELECT
信号として用いられる特定の調停レベル識別子を得る。
制御の流れのなかの数箇所で、誤り検査が実行される。
もし誤りが検出されれば、制御はステップ94に分岐し
、誤りが記録される。4ビット誤り標識、及び誤りが生
じたバッファ 28からのページ並びにラインが、該選
択された装置のチャネル状況レジスタ 68に入れられ
る。誤りが処理された後、許可マスク及びDIRフィー
ルドがレジスタ 68に再ロードされる。そしてステッ
プ96で誤りは該装置に報告される。
、誤りが記録される。4ビット誤り標識、及び誤りが生
じたバッファ 28からのページ並びにラインが、該選
択された装置のチャネル状況レジスタ 68に入れられ
る。誤りが処理された後、許可マスク及びDIRフィー
ルドがレジスタ 68に再ロードされる。そしてステッ
プ96で誤りは該装置に報告される。
DEVICE 5ELECT信号はステップ106テ装
置レジスタを選択するのに用いられ、キャッシュ・バッ
ファ 22内の適切なキャッシュ・ラインと、キャッシ
ュ制御レジスタ 42のファイル及び丁Cvキャッシュ
・レジスタ 50のファイル内の対応するレジスタとが
、ステップ108でDIR信号を用いて選択される。同
時に、I10バス12の調停の戦いに勝った装置はステ
ップ110で所望のアドレスを主張する。
置レジスタを選択するのに用いられ、キャッシュ・バッ
ファ 22内の適切なキャッシュ・ラインと、キャッシ
ュ制御レジスタ 42のファイル及び丁Cvキャッシュ
・レジスタ 50のファイル内の対応するレジスタとが
、ステップ108でDIR信号を用いて選択される。同
時に、I10バス12の調停の戦いに勝った装置はステ
ップ110で所望のアドレスを主張する。
範囲外のページの検査がステップ112で行われ。
I10装置によってアクセスできる仮想メモリ空間の当
該部分の範囲内に該主張されたアドレスがあるかどうか
を判定する。もしページが範囲外であれば、制御はステ
ップ94に移り、誤りが記録され報告される。もしペー
ジが適切な範囲内であれば、ステップ114で、該主張
されたアドレスとキャッシュ・バッファ 22の間にペ
ージ・ヒツトがあるかどうかを検査する。この判定は比
較器38で行われ、TCW有効信号によって示される。
該部分の範囲内に該主張されたアドレスがあるかどうか
を判定する。もしページが範囲外であれば、制御はステ
ップ94に移り、誤りが記録され報告される。もしペー
ジが適切な範囲内であれば、ステップ114で、該主張
されたアドレスとキャッシュ・バッファ 22の間にペ
ージ・ヒツトがあるかどうかを検査する。この判定は比
較器38で行われ、TCW有効信号によって示される。
もしキャッシュ制御レジスタ 42に記憶された。
前にアクセスされたページがI10バッファ 28内の
ページに一致すれば、ページ・ヒツトがあるので、制御
はステップ116(第3b図)に移る。ステップ116
はページ誤りを検査し、その結果は選択された10wキ
ャッシュ・レジスタ 50の、表■に示すビット・パタ
ーンを用いる2つのLSBビットによって示される。も
しページ誤りがあれば、誤りは記録されプロセッサに報
告される。
ページに一致すれば、ページ・ヒツトがあるので、制御
はステップ116(第3b図)に移る。ステップ116
はページ誤りを検査し、その結果は選択された10wキ
ャッシュ・レジスタ 50の、表■に示すビット・パタ
ーンを用いる2つのLSBビットによって示される。も
しページ誤りがあれば、誤りは記録されプロセッサに報
告される。
もしページ誤りがない一要求された仮想ページが現にシ
ステム・メモリ 10か又はシステム・アドレス空間に
写像されたバス・メモリに存在することを示す−ならば
、ステップ118で、要求元の装置が当該ページをアク
セスすることが許可されるかどうかを検査する。 TC
Wキャッシュ・レジスタ 50のKE’/フィールドと
チャネル状況レジスタ 68の許可マスク・フィールド
との比較によって行われるサブジェクト本文の検査の外
に、装置が読取り専用ページへの書込みを試みていない
ことを保証するための検査が行われる。もしアクセス0
に信号が該試みられたアクセスは有効ではないことを示
すならば、誤りが記録されプロセッサに報告される。
ステム・メモリ 10か又はシステム・アドレス空間に
写像されたバス・メモリに存在することを示す−ならば
、ステップ118で、要求元の装置が当該ページをアク
セスすることが許可されるかどうかを検査する。 TC
Wキャッシュ・レジスタ 50のKE’/フィールドと
チャネル状況レジスタ 68の許可マスク・フィールド
との比較によって行われるサブジェクト本文の検査の外
に、装置が読取り専用ページへの書込みを試みていない
ことを保証するための検査が行われる。もしアクセス0
に信号が該試みられたアクセスは有効ではないことを示
すならば、誤りが記録されプロセッサに報告される。
もし装置が該要求されたページに対する有効なアクセス
を有するならば、バッファ 22内の選択されたキャッ
シュ・ラインが無効であるかどうかを検査する。この検
査は選択されたキャッシュ制御レジスタ42のIビット
を検査することによって行われる。■ビットがセットさ
れると、データはバッファ 22内の、アクセス中の装
置をアクセスできない選択されたキャッシュ・ラインに
存在する。これはプロセス及び装置が互いのメモリ空間
からのデータをアクセスするのを阻止する安全保護の特
性である。キャッシュ・ラインを用いるI10転送が終
了するとエビットはセットされるが、データはバッファ
22内のキャッシュ・ラインから消されない、良好な
実施例では、バッファ 22からシステム・メモリにキ
ャッシュ・ラインが書込まれる毎に、当該キャッシュ・
ラインはOで満たされ、前にそこに記憶されたデータを
削除する。
を有するならば、バッファ 22内の選択されたキャッ
シュ・ラインが無効であるかどうかを検査する。この検
査は選択されたキャッシュ制御レジスタ42のIビット
を検査することによって行われる。■ビットがセットさ
れると、データはバッファ 22内の、アクセス中の装
置をアクセスできない選択されたキャッシュ・ラインに
存在する。これはプロセス及び装置が互いのメモリ空間
からのデータをアクセスするのを阻止する安全保護の特
性である。キャッシュ・ラインを用いるI10転送が終
了するとエビットはセットされるが、データはバッファ
22内のキャッシュ・ラインから消されない、良好な
実施例では、バッファ 22からシステム・メモリにキ
ャッシュ・ラインが書込まれる毎に、当該キャッシュ・
ラインはOで満たされ、前にそこに記憶されたデータを
削除する。
しかしながら、データがシステム・メモリ10からI1
0装置に読込まれているときは、キャッシュ・バッファ
22にロードされた最後のラインのデータは触れられ
ずに残る。I10転送が終了したとき、システム監視プ
ログラムは、当該キャッシュ・ラインがシステム・メモ
リ 10に書込まれて全Oにされない限り、対応するI
ビットに1を書込む。
0装置に読込まれているときは、キャッシュ・バッファ
22にロードされた最後のラインのデータは触れられ
ずに残る。I10転送が終了したとき、システム監視プ
ログラムは、当該キャッシュ・ラインがシステム・メモ
リ 10に書込まれて全Oにされない限り、対応するI
ビットに1を書込む。
キャッシュ・ラインが無効かどうかを調べるステップ1
20の検査の結果がイエスであれば、ステツブ122の
検査はスキップされる。ステップ122はキャッシュ・
ラインがヒツトであったかどうかを判定する検査である
。もしそうなら、制御はステップ124に移る。もしキ
ャッシュ・ラインのヒツトがなければ、ページは正しい
が現にキャッシュ・バッファ 22に存在するのは当該
ページからの間違ったラインである。もし当該キャッシ
ュがキャッシュ制御レジスタ 42内のDビットによっ
てダーティではないことが示されるならば、それを保管
する必要はない、ステップ126で、もしキャッシュ・
ラインがダーティなら、キャッシュ・ラインはステップ
128でメモリに書込まれ、前述のように全0にされる
。もしステップ130で転送の誤りがあれば、誤りは記
録されプロセッサに報告される。もし誤りがなければ、
ステップ132でDビット及びCビットはどちらもOに
リセットされる。
20の検査の結果がイエスであれば、ステツブ122の
検査はスキップされる。ステップ122はキャッシュ・
ラインがヒツトであったかどうかを判定する検査である
。もしそうなら、制御はステップ124に移る。もしキ
ャッシュ・ラインのヒツトがなければ、ページは正しい
が現にキャッシュ・バッファ 22に存在するのは当該
ページからの間違ったラインである。もし当該キャッシ
ュがキャッシュ制御レジスタ 42内のDビットによっ
てダーティではないことが示されるならば、それを保管
する必要はない、ステップ126で、もしキャッシュ・
ラインがダーティなら、キャッシュ・ラインはステップ
128でメモリに書込まれ、前述のように全0にされる
。もしステップ130で転送の誤りがあれば、誤りは記
録されプロセッサに報告される。もし誤りがなければ、
ステップ132でDビット及びCビットはどちらもOに
リセットされる。
次に、これはバス・メモリへの動作又はバス・メモリか
らの動作であるかどうかを検査する。この検査は選択さ
れたTCWキャッシュ・レジスタ50の1表■で規定さ
れたパターンの2つのLSBビットについて行われる。
らの動作であるかどうかを検査する。この検査は選択さ
れたTCWキャッシュ・レジスタ50の1表■で規定さ
れたパターンの2つのLSBビットについて行われる。
もし動作がバス・メモリの動作であれば、制御は残りの
キャッシュ動作をバイパスし、直ちにデータ転送に向か
ってスキップする。
キャッシュ動作をバイパスし、直ちにデータ転送に向か
ってスキップする。
もし動作がシステム・メモリへの動作であれば、ステッ
プ124の検査の結果はノーとなり、ステップ126で
、ページが前に参照されたかどうかを調べるもう1つの
検査が行われる。この検査は選択されたTCWキャッシ
ュ・レジスタ 50内のRビットについて行われる。R
ビットは、もしセットされれば、該選択されたページが
前に参照されたことを表わす、もしページが参照されて
いたならば、ステップ128で、現在の動作が読取り動
作であるかどうかを検査する。もし読取り動作でなけれ
ば、このページが前に変更されているかどうかを検査す
る。もし変更されていれば、 RCビットは、現在の
動作が読取り動作である場合と同様に不変である。もし
ページが前に変更されておらず、且つこれが書込み動作
であれば、TCWテーブル40及び選択されたTCνキ
ャッシュ・レジスタ 50にあるRCビットはステップ
132で更新される。それらは、ステップ126の検査
で、このページが前に参照されていないことを示す場合
にも更新される。
プ124の検査の結果はノーとなり、ステップ126で
、ページが前に参照されたかどうかを調べるもう1つの
検査が行われる。この検査は選択されたTCWキャッシ
ュ・レジスタ 50内のRビットについて行われる。R
ビットは、もしセットされれば、該選択されたページが
前に参照されたことを表わす、もしページが参照されて
いたならば、ステップ128で、現在の動作が読取り動
作であるかどうかを検査する。もし読取り動作でなけれ
ば、このページが前に変更されているかどうかを検査す
る。もし変更されていれば、 RCビットは、現在の
動作が読取り動作である場合と同様に不変である。もし
ページが前に変更されておらず、且つこれが書込み動作
であれば、TCWテーブル40及び選択されたTCνキ
ャッシュ・レジスタ 50にあるRCビットはステップ
132で更新される。それらは、ステップ126の検査
で、このページが前に参照されていないことを示す場合
にも更新される。
次に、ステップ134で、キャッシュ・ラインが無効か
どうかを検査する。前述のように、これは1ビツトの検
査である。もしキャッシュ・ラインが無効であれば1次
の幾つかのステップがスキップされ、ステップ136A
で、システム・メモリ10からキャッシュ・バッファ
22への新しいラインの読取りを強制する。これは前に
当該キャッシュ・ラインに存在するデータを破壊する。
どうかを検査する。前述のように、これは1ビツトの検
査である。もしキャッシュ・ラインが無効であれば1次
の幾つかのステップがスキップされ、ステップ136A
で、システム・メモリ10からキャッシュ・バッファ
22への新しいラインの読取りを強制する。これは前に
当該キャッシュ・ラインに存在するデータを破壊する。
ステップ138Aで新しいラインをキャッシュ・バッフ
ァ 22に読取ると、ステップ137で、対応するIビ
ットを0にリセットする。
ァ 22に読取ると、ステップ137で、対応するIビ
ットを0にリセットする。
ステップ134で、キャッシュ・ラインが無効ではない
ならば、現在の動作が読取り動作であるかどうかを再び
ステップ136で検査する。もしそうなら、ステップ1
38で、Cビットが1にセットされているかどうかを検
査する。もし現在の動作が書込み動作であれば、ステッ
プ138の結果はノーとなり、ステップ140で、要求
された位置がキャッシュ・アドレスと位置合わせされて
いるかどうかを検査する。これは、I10アドレス・バ
ッファ28の6つのLSBビットが全0の場合、要求さ
れた位置がライン境界と位置合わせされていることを意
味する。もし要求された位置が位置合わせされていなけ
れば、制御はステップ138に移る。もし位置合わせさ
れており且つステップ141で中・央プロセッサが現に
I10バスを用いる装置であれば、ステップ142で、
現在の転送が64バイトのキャッシュ・バッファのサイ
ズよりも小さいかどうかを検査する。もしそうなら、制
御はステップ138に移る。もし64バイトよりも大き
い転送が行われているならば、ステップ142の結果は
ノーであり、制御はステップ146にスキップする。制
御の流れがこの点に達するのは、キャッシュ・バッファ
22の選択されたラインのあらゆるバイトを満たすか
なりの書込み動作が行われていることによる。このよう
な状況では、当該ラインが現在の書込み動作によって重
ね書きされようとしているから、システム・メモリ 1
0からラインに読込む努力は無駄になる。従って、シス
テム・メモリ lOからの読込み (ステップ136A
)はスキップされる。
ならば、現在の動作が読取り動作であるかどうかを再び
ステップ136で検査する。もしそうなら、ステップ1
38で、Cビットが1にセットされているかどうかを検
査する。もし現在の動作が書込み動作であれば、ステッ
プ138の結果はノーとなり、ステップ140で、要求
された位置がキャッシュ・アドレスと位置合わせされて
いるかどうかを検査する。これは、I10アドレス・バ
ッファ28の6つのLSBビットが全0の場合、要求さ
れた位置がライン境界と位置合わせされていることを意
味する。もし要求された位置が位置合わせされていなけ
れば、制御はステップ138に移る。もし位置合わせさ
れており且つステップ141で中・央プロセッサが現に
I10バスを用いる装置であれば、ステップ142で、
現在の転送が64バイトのキャッシュ・バッファのサイ
ズよりも小さいかどうかを検査する。もしそうなら、制
御はステップ138に移る。もし64バイトよりも大き
い転送が行われているならば、ステップ142の結果は
ノーであり、制御はステップ146にスキップする。制
御の流れがこの点に達するのは、キャッシュ・バッファ
22の選択されたラインのあらゆるバイトを満たすか
なりの書込み動作が行われていることによる。このよう
な状況では、当該ラインが現在の書込み動作によって重
ね書きされようとしているから、システム・メモリ 1
0からラインに読込む努力は無駄になる。従って、シス
テム・メモリ lOからの読込み (ステップ136A
)はスキップされる。
ステップ141で、もし中央プロセッサがバスを用いて
いないならば、I10装置が順次モードで動作している
かどうかの検査がステップ143で行われる。順次モー
ドは大きなブロックのデータを読み書きする装置、例え
ばディスク装置に割当てられる。装置の順次モードはチ
ャネル状況レジスタ68にあるビット(図示せず)によ
って示すことができる。もし装置が順次モードで書込み
しているならば、キャッシュ・ラインをロードする必要
もない、従って、もしステップ143の結果がイエスで
あれば、制御はステップ146にスキップする。
いないならば、I10装置が順次モードで動作している
かどうかの検査がステップ143で行われる。順次モー
ドは大きなブロックのデータを読み書きする装置、例え
ばディスク装置に割当てられる。装置の順次モードはチ
ャネル状況レジスタ68にあるビット(図示せず)によ
って示すことができる。もし装置が順次モードで書込み
しているならば、キャッシュ・ラインをロードする必要
もない、従って、もしステップ143の結果がイエスで
あれば、制御はステップ146にスキップする。
さもなければ、制御はステップ138に移る。
もしステップ!36Aのキャッシュ・バッファ22のロ
ードが行われるならば、ステップ137でIビットがO
にセットされ、ステップ144で5転送の誤りがあった
かどうかを検査する。もしそうなら、誤りは記録されプ
ロセッサに報告される。さもなければ、ステップ146
でキャッシュ制御レジスタ42にあるCビット及びDビ
ットが更新される。Cビットは1にセットされる。Dビ
ットはDビットの現在の値とこれが書込み動作であるか
どうかを示す信号との論理和にセットされる。即ち、も
しキャッシュ・ラインが既にダーティになっていたなら
ば、又は現在書込まれているならば、該ダーティ・ビッ
トはセットされる。この時点で、l0CC14は正しく
セットアツプされ、ステップ148で、データ転送を開
始することができる。
ードが行われるならば、ステップ137でIビットがO
にセットされ、ステップ144で5転送の誤りがあった
かどうかを検査する。もしそうなら、誤りは記録されプ
ロセッサに報告される。さもなければ、ステップ146
でキャッシュ制御レジスタ42にあるCビット及びDビ
ットが更新される。Cビットは1にセットされる。Dビ
ットはDビットの現在の値とこれが書込み動作であるか
どうかを示す信号との論理和にセットされる。即ち、も
しキャッシュ・ラインが既にダーティになっていたなら
ば、又は現在書込まれているならば、該ダーティ・ビッ
トはセットされる。この時点で、l0CC14は正しく
セットアツプされ、ステップ148で、データ転送を開
始することができる。
ステップ150で1ワードのデータが転送される。
このワードは1バイト、2バイト、4バイト5又はシス
テムのハードウェア構成によって設定される他の値とす
ることができる。とにかく、ステップ150の転送は1
バス・サイクルで行われる単一の転送である。ステップ
152で、転送の誤りがあれば、前述のように記録され
プロセッサに報告される。ステップ153で、もし中央
プロセッサが現にI10バスを用いているなら、ステッ
プ154で、転送が終了しているかどうかを検査する。
テムのハードウェア構成によって設定される他の値とす
ることができる。とにかく、ステップ150の転送は1
バス・サイクルで行われる単一の転送である。ステップ
152で、転送の誤りがあれば、前述のように記録され
プロセッサに報告される。ステップ153で、もし中央
プロセッサが現にI10バスを用いているなら、ステッ
プ154で、転送が終了しているかどうかを検査する。
もしそうなら、動作ステップは終了する。
もし転送が終了していなれけば、ステップ156で、こ
の動作がバス・メモリ動作であるかどうかを検査する。
の動作がバス・メモリ動作であるかどうかを検査する。
前述のように、バス・メモリ動作はTCWキャッシュ・
レジスタ 50の2つのしSBビットによって示される
。もしこれがシステム・メモリ 10の動作であれば、
ステップ158で、次のアドレスがキャッシュ・ライン
・ヒツトであるかどうかを検査する。もしそうなら、次
のワードを転送するため制御はステップ150に戻る。
レジスタ 50の2つのしSBビットによって示される
。もしこれがシステム・メモリ 10の動作であれば、
ステップ158で、次のアドレスがキャッシュ・ライン
・ヒツトであるかどうかを検査する。もしそうなら、次
のワードを転送するため制御はステップ150に戻る。
さもなければ、キャッシュ・ライン境界が交差されてい
るので、制御はステップ180に移る。ステップ160
は現在の I10動作がもう1つの装置によって優先使
用されているかどうかを検査する。もし優先使用されて
いなければ、制御はステップ114に戻り、キャッシュ
検査プロセス全体が反復される。ステップ160で、も
し現在の動作が優先使用されていれば、この動作は終了
する。そして中央プロセッサはその転送を終了するよう
にアクセスを調停しなければならない。
るので、制御はステップ180に移る。ステップ160
は現在の I10動作がもう1つの装置によって優先使
用されているかどうかを検査する。もし優先使用されて
いなければ、制御はステップ114に戻り、キャッシュ
検査プロセス全体が反復される。ステップ160で、も
し現在の動作が優先使用されていれば、この動作は終了
する。そして中央プロセッサはその転送を終了するよう
にアクセスを調停しなければならない。
ステップ156の検査で、もし現在の動作がバス・メモ
リ動作であれば、ステップ166で、現在の転送が優先
使用されているかどうかを検査する。
リ動作であれば、ステップ166で、現在の転送が優先
使用されているかどうかを検査する。
もし優先使用されておらず、且つステップ168で、次
のアドレスのページが現在のアドレスのページと一致し
ている(ページ・ヒツトを示す)ならば、次のワードを
転送するため制御はステップ150に戻る。もしステッ
プ168の結果がページ・ヒツトでなければ、前述のよ
うに、制御はステップ114に戻る。
のアドレスのページが現在のアドレスのページと一致し
ている(ページ・ヒツトを示す)ならば、次のワードを
転送するため制御はステップ150に戻る。もしステッ
プ168の結果がページ・ヒツトでなければ、前述のよ
うに、制御はステップ114に戻る。
ステップ156〜168の制御の流れは究極的にはバス
・メモリに対する動作をいつでも優先使用できるように
することであるが、キャッシュされたシステム・メモリ
位置に対する動作はライン境界が交差された時にだけ優
先使用することができる。
・メモリに対する動作をいつでも優先使用できるように
することであるが、キャッシュされたシステム・メモリ
位置に対する動作はライン境界が交差された時にだけ優
先使用することができる。
もしステップ153の結果がノーであり、ステップ16
2で、転送が終了していないならば、ステップ164で
、キャッシュ・ライン・ヒツトが検査される。もしヒツ
トがあれば、制御はステップ150に戻り、転送が続行
される。さもなければ、制御はステップ114に戻る。
2で、転送が終了していないならば、ステップ164で
、キャッシュ・ライン・ヒツトが検査される。もしヒツ
トがあれば、制御はステップ150に戻り、転送が続行
される。さもなければ、制御はステップ114に戻る。
I10装置は優先使用することができず、良好な実施例
では自発的にI10バスを放棄しなければならない。
では自発的にI10バスを放棄しなければならない。
次に、第3a図のステップ114でページ・ミスが検出
される場合に行われる動作について説明する。ステップ
114で、ページ・ヒツトがなければ、現に装置がアク
セス中の仮想ページは当該装置が前にアクセスした仮想
ページと異なる。その場合には、ステップ170で1次
のTCVエントリがTCvテーブル40から取出され保
持レジスタ 76に入れられる。ステップ171で、も
しパリティ誤りがあれば、該誤りは記録され報告される
0次のTCWエントリはI10バッファ 28の20の
MSBビットによってアドレス指定された当該エントリ
である。
される場合に行われる動作について説明する。ステップ
114で、ページ・ヒツトがなければ、現に装置がアク
セス中の仮想ページは当該装置が前にアクセスした仮想
ページと異なる。その場合には、ステップ170で1次
のTCVエントリがTCvテーブル40から取出され保
持レジスタ 76に入れられる。ステップ171で、も
しパリティ誤りがあれば、該誤りは記録され報告される
0次のTCWエントリはI10バッファ 28の20の
MSBビットによってアドレス指定された当該エントリ
である。
ステップ172で、チャネル状況レジスタ 68の4つ
のLSBビットがライン80にあるDIR信号を用いて
更新される。この信号はライン74で直ちに使用可能と
なり、ステップ174で、キャッシュ・バッファ 22
内の新しいライン、及びそれに対応する、キャッシュ制
御レジスタ 42のファイル並びにTCVキャッシュ・
レジスタ 50のファイル内のレジスタが選択される。
のLSBビットがライン80にあるDIR信号を用いて
更新される。この信号はライン74で直ちに使用可能と
なり、ステップ174で、キャッシュ・バッファ 22
内の新しいライン、及びそれに対応する、キャッシュ制
御レジスタ 42のファイル並びにTCVキャッシュ・
レジスタ 50のファイル内のレジスタが選択される。
そして比較器38はライン4Bで使用可能な新たに選択
された前のページと I10アドレス・バッファ 28
内のページを比較する。ステップ176で、もしTCν
ヒットがあれば、現に要求されたページは直ぐ前のアク
セスの前の時点で同じ装置によってアクセスされており
、当該ページはなおキャッシュ制御レジスタ 42及び
TCvキャッシュ・レジスタ 50で使用可能である。
された前のページと I10アドレス・バッファ 28
内のページを比較する。ステップ176で、もしTCν
ヒットがあれば、現に要求されたページは直ぐ前のアク
セスの前の時点で同じ装置によってアクセスされており
、当該ページはなおキャッシュ制御レジスタ 42及び
TCvキャッシュ・レジスタ 50で使用可能である。
新しい丁CvエントリがTCυキャッシュ50にロード
される毎に、古いエントリによってアドレス指定された
キャッシュ・ラインは、もしそれがダーティならば、先
ずメモリ 10にフラッシュされなければならない、こ
れはキャッシュ制御レジスタ42のDビットを用いて回
路56で実行される。
される毎に、古いエントリによってアドレス指定された
キャッシュ・ラインは、もしそれがダーティならば、先
ずメモリ 10にフラッシュされなければならない、こ
れはキャッシュ制御レジスタ42のDビットを用いて回
路56で実行される。
ステップ17Bで、もしページ・ミスが起これば、TC
Wテーブルから新しいエントリをロードする必要がある
。先ず、ステップ178で、■ビットを用いてキャッシ
ュ・ラインが無効であるかどうかを検査する。もし無効
でなければ、ステップ180で。
Wテーブルから新しいエントリをロードする必要がある
。先ず、ステップ178で、■ビットを用いてキャッシ
ュ・ラインが無効であるかどうかを検査する。もし無効
でなければ、ステップ180で。
現に選択されたキャッシュ・ラインがダーティであるか
どうかを検査する。この検査はキャッシュ制御レジスタ
42内のDビットについて行われる。
どうかを検査する。この検査はキャッシュ制御レジスタ
42内のDビットについて行われる。
もしダーティなら、ステップ182で、前述のように当
該キャッシュ・ラインがメモリに書込まれる。
該キャッシュ・ラインがメモリに書込まれる。
ステップ184で、転送の誤りがあったかどうかを検査
し、もしあれば、記録され報告される。もし誤りがなけ
れば、ステップ18Bで、Dビット及びCビットをどち
らもOにセットする。
し、もしあれば、記録され報告される。もし誤りがなけ
れば、ステップ18Bで、Dビット及びCビットをどち
らもOにセットする。
次に、キャッシュ・ラインがダーティであったかどうか
に関係なく、ステップ188で、丁CWキャッシュに新
しいTCWエントリをロードする。このエントリは現に
保持レジスタ 76に存在し、TCVテーブル40の再
アクセスを必要とすることなく。
に関係なく、ステップ188で、丁CWキャッシュに新
しいTCWエントリをロードする。このエントリは現に
保持レジスタ 76に存在し、TCVテーブル40の再
アクセスを必要とすることなく。
TCWキャッシュ 50にロードすることができる。
そして現在のI10アドレスの20のMSBビットがス
テップ190でキャッシュ制御レジスタにロードされ、
制御はステップ116に移る。
テップ190でキャッシュ制御レジスタにロードされ、
制御はステップ116に移る。
大抵の場合、■10バス上の各装置はキャッシュ・バッ
ファ 22内の単一のラインを割振られる。
ファ 22内の単一のラインを割振られる。
これらの装置では、TCWテーブル40のDIRフィー
ルドは全て、各装置に対応するDEVICE 5ELE
CT信号と同じ値にセットされなければならない、ある
場合には5装置によってはキャッシュ・バッファ 22
内の2ライク以上を得ることが望ましい。
ルドは全て、各装置に対応するDEVICE 5ELE
CT信号と同じ値にセットされなければならない、ある
場合には5装置によってはキャッシュ・バッファ 22
内の2ライク以上を得ることが望ましい。
これらの装置では、 rcwテーブル40内のエントリ
にあるDII’lフィールドはキャッシュ°バッファ2
z内の適切なラインを指すようにセットされる。
にあるDII’lフィールドはキャッシュ°バッファ2
z内の適切なラインを指すようにセットされる。
前述のように、 TCυミスがあるとき、TCWテーブ
ル40内の次のエントリはキャッシュ・バッファ22の
どのラインが次に用いられるかを決定する。
ル40内の次のエントリはキャッシュ・バッファ22の
どのラインが次に用いられるかを決定する。
単一の装置に予約されているキャッシュ・バッファ 2
2のそれぞれの、ラインを指すようにこれらのエントリ
のDIRフィールドをセットすることにより、当該装置
はキャッシュ・バッファ 22内ノ2つ以上のラインを
用いることができる。
2のそれぞれの、ラインを指すようにこれらのエントリ
のDIRフィールドをセットすることにより、当該装置
はキャッシュ・バッファ 22内ノ2つ以上のラインを
用いることができる。
TCWテーブル40内のDIRフィールドはユーザー通
常はオペレーティング・システム・プログラムである−
によって割振られる。統計的に使用量が異なるシステム
は、オペレーティング・システムによってTCC子テー
ブル40DIRフィールド内の値を調整することにより
再構成され、キャッシュ・バッファ 22を最も効率的
に利用することができる。キャッシュ内のDIRフィー
ルドの操作は、本発明での利用方法は異なるが、米国特
許第4719568号の明細書に記述されている。
常はオペレーティング・システム・プログラムである−
によって割振られる。統計的に使用量が異なるシステム
は、オペレーティング・システムによってTCC子テー
ブル40DIRフィールド内の値を調整することにより
再構成され、キャッシュ・バッファ 22を最も効率的
に利用することができる。キャッシュ内のDIRフィー
ルドの操作は、本発明での利用方法は異なるが、米国特
許第4719568号の明細書に記述されている。
装置が始動される(多くの場合、システムに電源が投入
される)と、該装置に一部のメモリ空間が割振られる。
される)と、該装置に一部のメモリ空間が割振られる。
その時点で、該装置が用いるキャッシュ・バッファ 2
2内の1つ又は複数のラインが決定される。 TCWテ
ーブル40内の、割振られたメモリ空間に対応するDI
Rエントリは、キャッシュ・バッファ 22内の選択さ
れた1つ又は複数のラインを指すようにセットされる。
2内の1つ又は複数のラインが決定される。 TCWテ
ーブル40内の、割振られたメモリ空間に対応するDI
Rエントリは、キャッシュ・バッファ 22内の選択さ
れた1つ又は複数のラインを指すようにセットされる。
該装置が割振り解除されると、キャッシュ・バッファ2
2内のラインは他の装置による使用のため解放される。
2内のラインは他の装置による使用のため解放される。
当業者には理解されているように、前述の入出力キャッ
シュ制御装置はI10バスI2に接続されたI10装置
とシステム・メモリ 10の間に効率的なインタフェー
スを提供する。 DIRフィールドの使用はキャッシュ
・バッファ 22内の2つ以上の64ビツト・ラインを
単一の入出力装置に割振ることを可能にする8本明細書
に記述されたバッファ 22及び制御装置14はユーザ
には16ウエイ・セット・アソシアティブ・キャッシュ
のように見える。
シュ制御装置はI10バスI2に接続されたI10装置
とシステム・メモリ 10の間に効率的なインタフェー
スを提供する。 DIRフィールドの使用はキャッシュ
・バッファ 22内の2つ以上の64ビツト・ラインを
単一の入出力装置に割振ることを可能にする8本明細書
に記述されたバッファ 22及び制御装置14はユーザ
には16ウエイ・セット・アソシアティブ・キャッシュ
のように見える。
本明細書に記述された入出力キャッシュ制御装置は仮想
ページ対実ページ変換、及び自動的なハードウェア・ア
クセス許可検査も提供する。アクセスは仮想ページに基
づいて割振られ、入出力装置による全てのアクセスは当
該装置が動作の実行を許可されるかどうかを検査される
。許可の検査はハードウェアで実行されるから、高速で
あるが、オペレーティング・システム内の委任された誤
りハンドラから離脱することなくソフトウェアによって
バイパスすることはできない。
ページ対実ページ変換、及び自動的なハードウェア・ア
クセス許可検査も提供する。アクセスは仮想ページに基
づいて割振られ、入出力装置による全てのアクセスは当
該装置が動作の実行を許可されるかどうかを検査される
。許可の検査はハードウェアで実行されるから、高速で
あるが、オペレーティング・システム内の委任された誤
りハンドラから離脱することなくソフトウェアによって
バイパスすることはできない。
F0発明の効果
前述のように1本発明はアクセス保護機能を有する入出
力キャッシュを提供する。
力キャッシュを提供する。
第1図は入出力キャッシュ制御装置を示す図である。
第2図はコンピュータ・システムの一部のブロック図で
ある 第3a図、第3b図、第3C図及び第3d図は第1図の
キャッシュ制御装置の動作を説明する流れ図である。 10・・・・システム・メモリ、12・・・・I10バ
ス、14・・・・l0CC115・・・・システム・バ
ス、17・・・・I10装置、 18・・・・バス・メ
モリ、20・・・・I10データ・バッファ、22・・
・・キャッシュ・バッファ、28・・・・I’10アド
レス・バッファ、32,38・・・・比較器、40・・
・・TCWテーブル、42・・・・キャッシュ制御レジ
スタ、50・・・・TCνキャッシュ・レジスタ、56
・・・・選択回路、66・・・・復号/選択回路、68
・・・・チャネル状況レジスタ、7B・・・・保持レジ
スタ。 110バス 第2図
ある 第3a図、第3b図、第3C図及び第3d図は第1図の
キャッシュ制御装置の動作を説明する流れ図である。 10・・・・システム・メモリ、12・・・・I10バ
ス、14・・・・l0CC115・・・・システム・バ
ス、17・・・・I10装置、 18・・・・バス・メ
モリ、20・・・・I10データ・バッファ、22・・
・・キャッシュ・バッファ、28・・・・I’10アド
レス・バッファ、32,38・・・・比較器、40・・
・・TCWテーブル、42・・・・キャッシュ制御レジ
スタ、50・・・・TCνキャッシュ・レジスタ、56
・・・・選択回路、66・・・・復号/選択回路、68
・・・・チャネル状況レジスタ、7B・・・・保持レジ
スタ。 110バス 第2図
Claims (2)
- (1)メモリをアクセスする入出力装置のキャッシュで
あって、 該入出力装置及び該メモリに結合され、複数のラインと
してアドレス可能なバッファ・メモリ、及び 入出力装置毎に少なくとも1つのエントリを有し、該エ
ントリが前記バッファ・メモリ内のラインをアドレス指
定するディレクトリを含み、各入出力装置は前記装置の
ディレクトリ・エントリによってアドレス指定されたバ
ッファ・メモリ・ラインにメモリ位置をキャッシュする
ことによりそれらをアクセスする ことを特徴とする入出力キャッシュ。 - (2)メモリをアクセスする入出力装置のキャッシュで
あって、 該入出力装置及び該メモリに結合され、複数のラインと
してアドレス可能なバッファ・メモリ、前記バッファ・
メモリ内のライン毎に、アクセス保護クラスの保護標識
、 入出力装置毎に、当該装置がアクセスを許可されるアク
セス保護クラスの許可標識、及び 前記保護標識及び前記許可標識に結合され、入出力装置
がアクセスを許可される、アクセス保護クラスを有する
これらのラインに入出力装置がアクセスするのを制限す
るアクセス保護回路を含むことを特徴とする入出力キャ
ッシュ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US29777989A | 1989-01-13 | 1989-01-13 | |
US297779 | 1989-01-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH02228745A true JPH02228745A (ja) | 1990-09-11 |
JPH0526217B2 JPH0526217B2 (ja) | 1993-04-15 |
Family
ID=23147708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006052A Granted JPH02228745A (ja) | 1989-01-13 | 1990-01-13 | 入出力キヤツシユ |
Country Status (4)
Country | Link |
---|---|
US (1) | US5418927A (ja) |
EP (1) | EP0377970B1 (ja) |
JP (1) | JPH02228745A (ja) |
DE (1) | DE68923863T2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04182845A (ja) * | 1990-11-19 | 1992-06-30 | Pfu Ltd | 入出力バスのキャッシュ・タグ検索方式 |
JPH08249229A (ja) * | 1995-03-13 | 1996-09-27 | Nec Corp | 入出力制御装置 |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5469555A (en) * | 1991-12-19 | 1995-11-21 | Opti, Inc. | Adaptive write-back method and apparatus wherein the cache system operates in a combination of write-back and write-through modes for a cache-based microprocessor system |
US5551000A (en) * | 1993-03-18 | 1996-08-27 | Sun Microsystems, Inc. | I/O cache with dual tag arrays |
US5748922A (en) * | 1993-04-05 | 1998-05-05 | Packard Bell Nec | Method and apparatus for reading data from a write only port |
US5526512A (en) * | 1993-09-20 | 1996-06-11 | International Business Machines Corporation | Dynamic management of snoop granularity for a coherent asynchronous DMA cache |
US5619673A (en) * | 1994-06-29 | 1997-04-08 | Intel Corporation | Virtual access cache protection bits handling method and apparatus |
US5687347A (en) * | 1994-09-19 | 1997-11-11 | Matsushita Electric Industrial Co., Ltd. | Data providing device, file server device, and data transfer control method |
US5893147A (en) * | 1994-12-22 | 1999-04-06 | Intel Corporation | Method and apparatus for distinguishing system memory data from alternative memory data in a shared cache memory |
US5712991A (en) * | 1995-01-18 | 1998-01-27 | Texas Instrument Incorporated | Buffer memory for I/O writes programmable selective |
US5640591A (en) * | 1995-05-15 | 1997-06-17 | Nvidia Corporation | Method and apparatus for naming input/output devices in a computer system |
US5623692A (en) * | 1995-05-15 | 1997-04-22 | Nvidia Corporation | Architecture for providing input/output operations in a computer system |
US5805930A (en) * | 1995-05-15 | 1998-09-08 | Nvidia Corporation | System for FIFO informing the availability of stages to store commands which include data and virtual address sent directly from application programs |
US5860138A (en) * | 1995-10-02 | 1999-01-12 | International Business Machines Corporation | Processor with compiler-allocated, variable length intermediate storage |
US5862316A (en) * | 1996-07-01 | 1999-01-19 | Sun Microsystems, Inc. | Multiprocessing system having coherency-related error logging capabilities |
US5802564A (en) * | 1996-07-08 | 1998-09-01 | International Business Machines Corp. | Method and apparatus for increasing processor performance |
US6065100A (en) * | 1996-11-12 | 2000-05-16 | Micro-Design International | Caching apparatus and method for enhancing retrieval of data from an optical storage device |
US5896544A (en) * | 1996-12-26 | 1999-04-20 | Intel Corporation | Software device for supporting a new class of PC peripherals |
US5974497A (en) * | 1997-05-22 | 1999-10-26 | Dell Computer Corporation | Computer with cache-line buffers for storing prefetched data for a misaligned memory access |
US6195730B1 (en) | 1998-07-24 | 2001-02-27 | Storage Technology Corporation | Computer system with storage device mapping input/output processor |
US6536000B1 (en) | 1999-10-15 | 2003-03-18 | Sun Microsystems, Inc. | Communication error reporting mechanism in a multiprocessing computer system |
DE10143556A1 (de) * | 2001-09-06 | 2003-03-27 | Daimler Chrysler Ag | Fahrzeugmanagementsystem |
US8108692B1 (en) | 2006-06-27 | 2012-01-31 | Siliconsystems, Inc. | Solid-state storage subsystem security solution |
US8719807B2 (en) * | 2006-12-28 | 2014-05-06 | Intel Corporation | Handling precompiled binaries in a hardware accelerated software transactional memory system |
JP5157424B2 (ja) * | 2007-12-26 | 2013-03-06 | 富士通セミコンダクター株式会社 | キャッシュメモリシステム及びキャッシュメモリの制御方法 |
US8356184B1 (en) | 2009-06-25 | 2013-01-15 | Western Digital Technologies, Inc. | Data storage device comprising a secure processor for maintaining plaintext access to an LBA table |
US9305142B1 (en) | 2011-12-19 | 2016-04-05 | Western Digital Technologies, Inc. | Buffer memory protection unit |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3723976A (en) * | 1972-01-20 | 1973-03-27 | Ibm | Memory system with logical and real addressing |
US3713107A (en) * | 1972-04-03 | 1973-01-23 | Ncr | Firmware sort processor system |
US3848234A (en) * | 1973-04-04 | 1974-11-12 | Sperry Rand Corp | Multi-processor system with multiple cache memories |
US4070706A (en) * | 1976-09-20 | 1978-01-24 | Sperry Rand Corporation | Parallel requestor priority determination and requestor address matching in a cache memory system |
US4084225A (en) * | 1976-09-24 | 1978-04-11 | Sperry Rand Corporation | Virtual address translator |
US4071890A (en) * | 1976-11-29 | 1978-01-31 | Data General Corporation | CPU-Synchronous parallel data processor apparatus |
US4293910A (en) * | 1979-07-02 | 1981-10-06 | International Business Machines Corporation | Reconfigurable key-in-storage means for protecting interleaved main storage |
US4527237A (en) * | 1979-10-11 | 1985-07-02 | Nanodata Computer Corporation | Data processing system |
US4395758A (en) * | 1979-12-10 | 1983-07-26 | Digital Equipment Corporation | Accelerator processor for a data processing system |
US4399506A (en) * | 1980-10-06 | 1983-08-16 | International Business Machines Corporation | Store-in-cache processor means for clearing main storage |
US4394731A (en) * | 1980-11-10 | 1983-07-19 | International Business Machines Corporation | Cache storage line shareability control for a multiprocessor system |
US4463424A (en) * | 1981-02-19 | 1984-07-31 | International Business Machines Corporation | Method for dynamically allocating LRU/MRU managed memory among concurrent sequential processes |
DE3175351D1 (en) * | 1981-10-28 | 1986-10-23 | Ibm | Scanning device for communication lines, adapted for a communication controller |
US4484267A (en) * | 1981-12-30 | 1984-11-20 | International Business Machines Corporation | Cache sharing control in a multiprocessor |
IT1151351B (it) * | 1982-01-19 | 1986-12-17 | Italtel Spa | Disposizione circuitale atta a realizzare lo scambio di dati tra una coppia di elaboratori operanti secondo il principio master-slave |
US4451884A (en) * | 1982-02-02 | 1984-05-29 | International Business Machines Corporation | Cycle stealing I/O controller with programmable offline mode of operation |
US4509116A (en) * | 1982-04-21 | 1985-04-02 | Digital Equipment Corporation | Special instruction processing unit for data processing system |
US4471430A (en) * | 1982-09-27 | 1984-09-11 | Data General Corp. | Encachement apparatus |
DE3380645D1 (en) * | 1982-12-28 | 1989-11-02 | Ibm | Method and apparatus for controlling a single physical cache memory to provide multiple virtual caches |
US4586133A (en) * | 1983-04-05 | 1986-04-29 | Burroughs Corporation | Multilevel controller for a cache memory interface in a multiprocessing system |
US4729094A (en) * | 1983-04-18 | 1988-03-01 | Motorola, Inc. | Method and apparatus for coordinating execution of an instruction by a coprocessor |
US4667288A (en) * | 1983-06-30 | 1987-05-19 | Honeywell Information Systems Inc. | Enable/disable control checking apparatus |
JPS6093563A (ja) * | 1983-10-27 | 1985-05-25 | Hitachi Ltd | バツフア記憶制御方式 |
US4669043A (en) * | 1984-02-17 | 1987-05-26 | Signetics Corporation | Memory access controller |
JPS617967A (ja) * | 1984-06-15 | 1986-01-14 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | I/oコントロ−ラ |
US4654778A (en) * | 1984-06-27 | 1987-03-31 | International Business Machines Corporation | Direct parallel path for storage accesses unloading common system path |
US4677546A (en) * | 1984-08-17 | 1987-06-30 | Signetics | Guarded regions for controlling memory access |
US4794521A (en) * | 1985-07-22 | 1988-12-27 | Alliant Computer Systems Corporation | Digital computer with cache capable of concurrently handling multiple accesses from parallel processors |
US4775955A (en) * | 1985-10-30 | 1988-10-04 | International Business Machines Corporation | Cache coherence mechanism based on locking |
JPS62145340A (ja) * | 1985-12-20 | 1987-06-29 | Toshiba Corp | キヤツシユメモリ制御方式 |
US4885680A (en) * | 1986-07-25 | 1989-12-05 | International Business Machines Corporation | Method and apparatus for efficiently handling temporarily cacheable data |
US5091846A (en) * | 1986-10-03 | 1992-02-25 | Intergraph Corporation | Cache providing caching/non-caching write-through and copyback modes for virtual addresses and including bus snooping to maintain coherency |
US5029070A (en) * | 1988-08-25 | 1991-07-02 | Edge Computer Corporation | Coherent cache structures and methods |
US4928225A (en) * | 1988-08-25 | 1990-05-22 | Edgcore Technology, Inc. | Coherent cache structures and methods |
-
1989
- 1989-12-11 EP EP89312896A patent/EP0377970B1/en not_active Expired - Lifetime
- 1989-12-11 DE DE68923863T patent/DE68923863T2/de not_active Expired - Fee Related
-
1990
- 1990-01-13 JP JP2006052A patent/JPH02228745A/ja active Granted
-
1992
- 1992-12-23 US US07/996,501 patent/US5418927A/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04182845A (ja) * | 1990-11-19 | 1992-06-30 | Pfu Ltd | 入出力バスのキャッシュ・タグ検索方式 |
JPH08249229A (ja) * | 1995-03-13 | 1996-09-27 | Nec Corp | 入出力制御装置 |
Also Published As
Publication number | Publication date |
---|---|
EP0377970A3 (en) | 1991-03-20 |
US5418927A (en) | 1995-05-23 |
EP0377970A2 (en) | 1990-07-18 |
JPH0526217B2 (ja) | 1993-04-15 |
EP0377970B1 (en) | 1995-08-16 |
DE68923863D1 (de) | 1995-09-21 |
DE68923863T2 (de) | 1996-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH02228745A (ja) | 入出力キヤツシユ | |
US6457102B1 (en) | Cache using multiple LRU's | |
US10896128B2 (en) | Partitioning shared caches | |
US6751680B2 (en) | Protected control of devices by user applications in multiprogramming environments | |
JP4714396B2 (ja) | 共有データキャッシュのための調停プロトコル | |
US7047322B1 (en) | System and method for performing conflict resolution and flow control in a multiprocessor system | |
JP4295111B2 (ja) | メモリ管理システム及び線形アドレスに基づいたメモリアクセスセキュリティ付与方法 | |
TWI522802B (zh) | 確保微處理器之快取記憶體層級之資料一致性的裝置與方法 | |
JP3634932B2 (ja) | データ完全性を維持するためのスピン・バッファおよび方法 | |
JP3987577B2 (ja) | システム管理モード情報を他の情報と共にキャッシュに入れる方法および装置 | |
US7590802B2 (en) | Direct deposit using locking cache | |
KR970011207B1 (ko) | 원자 억세스를 제공하는 레지스터가 소프트웨어 인터록 없이 공유된 레지스터의 개별 비트를 세트하고 클리어하기 위한 방법 및 장치 | |
KR101662969B1 (ko) | 동적으로 할당된 더티 마스크 공간을 이용한 메모리 관리 | |
JPS60221851A (ja) | メモリ・アクセス・コントローラを具えるデータ処理装置 | |
JP2006196011A (ja) | 変化するサービスレベルを提供するためのキャッシュのセグメント化 | |
US5724551A (en) | Method for managing I/O buffers in shared storage by structuring buffer table having entries include storage keys for controlling accesses to the buffers | |
US5287482A (en) | Input/output cache | |
US7000087B2 (en) | Programmatically pre-selecting specific physical memory blocks to allocate to an executing application | |
JP3900025B2 (ja) | 共有キャッシュメモリのヒット判定制御方法及び共有キャッシュメモリのヒット判定制御方式 | |
JPS61114353A (ja) | 要求時ペ−ジングメモリを有するデジタルデ−タ処理システムのアクセス照合構成体 | |
JP2024513734A (ja) | 入出力デバイスによってアクセス可能なメモリのページの移行 | |
WO2019177721A1 (en) | Memory objects | |
JP4047281B2 (ja) | キャッシュメモリをメインメモリに同期させる方法 | |
JPH0115903B2 (ja) | ||
JP2021515308A (ja) | デバイスをデバッグするときにメタデータにアクセスするための装置及び方法 |