JPH0822415A - 入力/出力アダプタにより使用されるコヒーレンス・インデックス生成 - Google Patents
入力/出力アダプタにより使用されるコヒーレンス・インデックス生成Info
- Publication number
- JPH0822415A JPH0822415A JP7026362A JP2636295A JPH0822415A JP H0822415 A JPH0822415 A JP H0822415A JP 7026362 A JP7026362 A JP 7026362A JP 2636295 A JP2636295 A JP 2636295A JP H0822415 A JPH0822415 A JP H0822415A
- Authority
- JP
- Japan
- Prior art keywords
- index
- register
- memory
- coherence
- 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0835—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
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)
Abstract
てアクセスされるデータのコヒーレンスを保証する。 【構成】 コンピュータ・システムには、メモリ・バス
9、主メモリ12、I/Oアダプタ13、及びプロセッ
サ10,11が含まれる。主メモリ12、I/Oアダプ
タ13、及びプロセッサ10,11は、バス9に接続さ
れる。I/Oアダプタ19は翻訳マップ19を含む。翻
訳マップ19は、I/Oページ番号をメモリ・アドレス
・ページ番号にマッピングする。翻訳マップ19はコヒ
ーレンス・インデックスを含む。プロセッサ10,11
には、キャシュ17,18、及び命令実行手段が含まれ
る。命令実行手段は、翻訳マップ19に格納すべきコヒ
ーレンス・インデックスを生成する。命令実行手段は、
ハードウェアにおいてハッシュを実行し、コヒーレンス
・インデックスを生成する。
Description
より使用されるコヒーレンス・インデックス生成に関す
る。
には、中央演算処理装置(CPU)及び主メモリが含ま
れている。CPUが命令及びオペランドを復号化し、実
行することが可能な速度は、命令及びオペランドを主メ
モリからCPUに転送することが可能な速度に依存す
る。CPUが主メモリから命令及びオペランドを得るの
に必要な時間を短縮する試みとして、多くのコンピュー
タ・システムには、CPUと主メモリの間にキャッシュ
・メモリが含まれる。
い将来に用いられるであろうと思われる、主メモリの内
容の一部を一時的に保持するために利用される、小形
で、高速のバッファ・メモリである。キャッシュ・メモ
リの主要目的は、データまたは命令の取り出しのため、
メモリのアクセスを実行するのに必要な時間を短縮する
ことにある。キャッシュ・メモリに納められた情報は、
主メモリに納められた情報に比べると、かなり短い時間
でアクセスすることが可能である。従って、キャッシュ
・メモリを備えたCPUは、命令及びオペランドの取り
出し、及び/又は格納の待機に費やす必要のある時間を
大幅に短縮することになる。
ータによる多くのブロックから構成される。各ブロック
は、それが主メモリのどのブロックのコピーであるかを
独自に識別するアドレス・タグに関連づけられている。
プロセッサが、メモリを参照する毎に、アドレス・タグ
を比較して、要求されたデータのコピーが、キャッシュ
・メモリに納められているか否かの確認が行われる。所
望のメモリ・ブロックがキャッシュ・メモリ内になけれ
ば、該ブロックは、主メモリから検索され、キャッシュ
・メモリに格納され、プロセッサに供給される。
からデータを検索する以外に、CPUは、主メモリに直
接ではなく、キャッシュ・メモリにデータを書き込むこ
とも可能である。プロセッサが、メモリに対するデータ
の書き込みを所望する場合、キャッシュ・メモリは、ア
ドレス・タグの比較を行って、データを書き込むべきデ
ータ・ブロックがキャッシュ・メモリに残っているか否
かを確認する。データ・ブロックがキャッシュ・メモリ
に存在する場合、データはキャッシュ・メモリのデータ
・ブロックに書き込まれる。多くのシステムでは、次
に、データ・ブロックに関するデータである「ダーティ
・ビット」がセットされる。ダーティ・ビットは、デー
タ・ブロック内のデータが、ダーティである(すなわ
ち、変更された)ことを表しており、従って、キャッシ
ュ・メモリからデータ・ブロックを削除する前に、変更
されたデータを主メモリに書き込まなければならない。
データを書き込むべきデータ・ブロックが、キャッシュ
・メモリ内に存在しなければ、データ・ブロックをキャ
ッシュ・メモリに取り出すか、又は主メモリに直接デー
タを書き込まなければならない。新たなデータがキャッ
シュ・メモリに納められる場合、重ね書きされる、又は
キャッシュ・メモリからコピーされるデータ・ブロック
は、犠牲ブロックまたは犠牲ラインと呼ばれる。
するシステムにおいて、I/Oアダプタが、主メモリに
アクセスする場合、メモリにおいてアクセスを受けるデ
ータの完全性を保証するステップを踏む必要がある。例
えば、I/Oアダプタが、メモリからデータをアクセス
する(書き込むか、又は読み取る)場合、更新バージョ
ンのデータが、システムにおけるプロセッサのキャッシ
ュに残っているか否かを判定することが重要である。更
新バージョンのデータが存在する場合には、I/Oアダ
プタが更新バージョンのデータをアクセスすることを保
証するためにしなければならないことがある。ここで、
更新バージョンのデータが利用されることを確実にする
操作をコヒーレンス操作と呼ぶことにする。
に、考慮すべき必要のある多くの要因がある。例えば、
多くのシステムの場合、キャッシュに格納されたデータ
は、一般に、仮想アドレスから導き出されたインデック
スを利用してアクセスされる。さらに、ハッシュ・アル
ゴリズムを用いて、キャッシュ内のデータを分散させる
場合が多い。しかし、システム・メモリからのアクセス
は、実アドレスを利用して実施される。
I/Oアダプタによってアクセスされるデータのコヒー
レンスを保証するため、さまざまな提案がされている。
例えば、解決策の1つは、データが主メモリからアクセ
スを受ける毎に、ソフトウェアによって、システムにお
ける各プロセッサのキャッシュを明示的にフラッシュす
ることである。キャッシュをフラッシュすると、I/O
アダプタによるデータ・アクセスの前に、更新バージョ
ンのデータが、確実に主メモリに戻されることになる。
しかし、この案によれば、I/Oアダプタによるメモリ
・アクセスのオーバヘッドが大幅に増大する可能性があ
る。
は、実アドレスを仮想アドレスに変換する「BLT」テ
ーブルが含まれる。I/Oアダプタが、システム・メモ
リにアクセスすると、各システム・プロセッサは、実ア
ドレスを仮想アドレスに変換し、そのキャッシュにアク
セスして、アクセスしたデータがキャッシュ内に存在す
るか否かを判定する。存在すれば、I/Oアダプタがア
クセスを完了する前に、アクセスしたデータがメモリに
フラッシュされる。代替案として、I/Oアダプタがキ
ャッシュから直接データをアクセスすることも可能であ
る。
クセスすると、I/Oアダプタが、各プロセッサにコヒ
ーレンス・インデックスを送る。コヒーレンス・インデ
ックスは、各プロセッサによって、プロセッサに関連し
たキャッシュにアクセスし、アクセスしたデータがキャ
ッシュに存在するか否かを判定するために利用される。
存在すれば、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の汎用レジスタである。
インデックス・レジスタは、一般にインデックス値を格
納する第2の汎用レジスタである。ターゲット・レジス
タは、コヒーレンス・インデックスを受信する第3の汎
用レジスタである。
ックスは、I/Oアダプタ内の翻訳マップに格納され
る。データ転送を実施すると、I/Oアダプタは、プロ
セッサに適合するコヒーレンス・インデックスを送る。
プロセッサは、I/Oアダプタからコヒーレンス・イン
デックスを受信すると、コヒーレンス・インデックスを
利用して、キャッシュ内のデータをアクセスする。
(I/O)アダプタ内の翻訳テーブルに関するコヒーレ
ンス・インデックスの生成が、最小限のオーバヘッドで
可能になる。キャッシュ・インデックスの生成に用いら
れる既存のハードウェアが、コヒーレンス・インデック
ス・ロード命令に応答して、コヒーレンス・インデック
スの生成にも利用される場合、本発明の実施には、既存
のハードウェアに最小限の変更しか必要としない。
ロック図が示されている。プロセッサ10、プロセッサ
11、及びメモリ12が、図示のように、メモリ・バス
9に接続されている。プロセッサ10はデータ・キャッ
シュ17を利用する。プロセッサ11はデータ・キャッ
シュ18を利用する。メモリ・バス9には、入力/出力
(I/O)アダプタ13も接続されている。I/Oアダ
プタ13は、I/Oバス14に接続されている。I/O
バス14には、I/O装置15及びI/O装置16も接
続されている。翻訳マップ19を利用して、I/Oバス
14で使用さられるアドレスがメモリ12で使用される
アドレスに変換される。
マップ19の実施態様が示されている。翻訳マップ19
を利用して、I/Oバス・アドレス21がメモリ・アド
レス23に変換される。翻訳マップ19は、I/O変換
の直接マップ方式キャッシュとして実施される。代替案
として、翻訳マップ19は、完全連想方式キャッシュ、
セット連想方式キャッシュ、又はI/Oページ翻訳が完
全に納められたテーブルとして実施することも可能であ
る。当業者であれば、どの実施態様についても明確に理
解できるであろう。
ージを用いて、翻訳マップ19内の対応するメモリ・ペ
ージにアクセスする。図2に示す実施例の場合、I/O
ページ・ビットの第1の部分が、翻訳マップ19へのイ
ンデックスとして利用され、I/Oページ・ビットの第
2の部分が、比較器25によって、現在捜し求められて
いる翻訳が翻訳マップ19内にあるか否かの判定のため
に利用される。I/Oアドレス・オフセットは、メモリ
・アドレス・オフセットと同じである。例えば、好適実
施例の場合、I/Oバス14は、それぞれ、20ビット
のI/Oページ番号と12ビットのオフセットを備え
た、32ビットのアドレスを利用する。メモリ・バス9
は、それぞれ、28ビットのメモリ・ページ番号と12
ビットのオフセットを備えた、40ビットのアドレスを
利用する。 好適実施例の場合、各メモリ・ページ毎
に、翻訳マップ19には、コヒーレンス・インデックス
も含まれる。コヒーレンス・インデックスは、仮想アド
レスから導き出され、プロセッサ10内のインデックス
・キャッシュ17、及びプロセッサ11内のキャッシュ
18に対して用いられる。コヒーレンス・インデックス
がメモリ・アクセス処理の一部として送られると、プロ
セッサ10及び11は、それぞれ、可能性のあるコヒー
レンスの矛盾に対して、キャッシュ17及び18の情報
を探索することが可能になる。
ペレーティング・システムのソフトウェアは、I/Oア
ダプタ13内の翻訳マップ19にアドレス翻訳情報をロ
ードする。この情報には、コヒーレンス・インデックス
が含まれる。例えば、図3には、仮想アドレス31が示
されている。仮想アドレス31には、仮想部分と物理部
分が含まれる。非ハッシュ仮想キャッシュ・インデック
スを利用するシステムの場合、コヒーレンス・インデッ
クス32は、仮想アドレス31の仮想部分を形成するビ
ット部分集合を利用して生成される。キャッシュ・イン
デックス38は、物理部分のビット部分集合に加えて、
仮想アドレス31の仮想部分を形成するビット部分集合
を利用することにより生成される。こうしたシステムの
場合、キャッシュ・インデックスの仮想部分は、コヒー
レンス・インデックスであり、オペレーティング・シス
テムが、仮想アドレスから直接これを抽出し、I/Oア
ダプタ13内の翻訳マップ19に格納することが可能で
ある。
る。仮想アドレスには、スペース識別子、仮想ページ、
及び物理部分が含まれている。このシステムにおいて、
キャッシュ・インデックス39は、ハッシュ・ハードウ
ェア36を利用して仮想アドレス33のスペース識別子
を形成するビット部分集合と、仮想アドレス33の仮想
部分を形成するビット部分集合をハッシュし、仮想アド
レスの物理部分の部分集合を連結することによって、生
成される。コヒーレンス・インデックス37は、図3に
示すように、キャッシュ・インデックス39の仮想部分
と同様に生成される。
は最上位端がビット0で、右端または最下位端が大きい
番号のビットになる、「ビッグ・エンディアン」・フォ
ーマットで番号が付けられる。
33は、48ビットのアドレスである。ビット0〜15
(spac[16,17,...,31])は、スペース識別子を指定す
る。ビット16〜35(virt[0,1,...,19])は、仮想ペ
ージ番号を指定する。ビット36〜47(virt[20,2
1,...,31])は、アドレスの物理部分を指定する。キャ
ッシュ・アドレス・ビット(cach[12,13,...,26])は、
下記の表1で示されるように導出されるキャッシュ17
にアクセスするために用いられる。
適実施例に用いられるハッシュには、キャッシュ・ビッ
トのうちの8つ(cach[12...19])を生成するために、
実施すべき論理「排他的OR」(XOR)機能が必要に
なる。ソフトウェアにおけるハッシュの実行は、キャッ
シュ・インデックスを生成するために、いくつかのソフ
トウェア命令を必要とする。さらに、プロセッサが異な
る世代の場合、キャッシュにアクセスするために、異な
るハッシュが用いられる可能性がある。従って、ソフト
ウェアは、プロセッサのタイプまたは改訂に依存して異
なる計算を実行する必要がある。
セッサ10及びプロセッサ11は、それぞれ、その命令
セット内に、仮想コヒーレントI/Oを支援するプロセ
ッサ命令を含んでいる。図4には、こうしたプロセッサ
命令に関する簡略レイアウトが示されている。命令に
は、命令コード、スペース識別子を含む第1のソース・
レジスタに対する参照(R1)、仮想オフセット(仮想
ページに物理部分を加えたもの)を含む第2のソース・
レジスタに対する参照(R2)、及びターゲット値(コ
ヒーレンス・インデックス)が配置された宛先レジスタ
(D)が含まれている。当業者であれば明らかなよう
に、あるプロセッサ・アーキテクチャの中には、単一レ
ジスタを利用して、仮想アドレスの指定を行うことがで
きるものもある。一度生成されると、コヒーレンス・イ
ンデックスは、I/Oアダプタ13内の翻訳マップ19
に格納することが可能である。好適実施例の場合、命令
を実行する際、プロセッサ10及びプロセッサ11は、
それぞれ、ハードウェアを用いて、コヒーレンス・イン
デックスを生成する。例えば、プロセッサ10は、ハー
ドウェア33を用いて、コヒーレンス・インデックスを
生成する。また、プロセッサ10は、ハードウェア33
を利用して、キャッシュ17へのアクセスに備えてキャ
ッシュ・インデックスも生成する。従って、コヒーレン
ス・インデックスを生成する操作の好適実施態様では、
下記の表2に示す機能を利用する。下記の表2に示す機
能を利用して実施する場合、8ビットの規定された結果
は、キャッシュ・インデックスのハッシュ部分の生成に
用いられる計算と整合する。
コヒーレンス・インデックスを生成する命令のためのフ
ォーマットの別の実施例が示されている。図5に示され
たコヒーレンス・インデックス・ロード命令50を呼び
出すアセンブリ言語は、LCIx(s,b),tである。参照命
令「LCI」によって、命令コード欄51、命令コード
欄55、命令コード欄56に格納すべき値が決まる。好
適実施例の場合、6ビットの命令コード欄51には、1
6進数値01が格納され、8ビットの命令コード欄55
には、16進数値4Cが格納され、1ビットの命令コー
ド欄56には、16進数値の0が格納される。さらに、
インデックス値を格納する汎用レジスタ[x]が、5ビ
ットのパラメータ欄53において指定され、ベース値を
格納する汎用レジスタ[b]が、5ビットのパラメータ
欄52において指定され、ターゲット値を受信する汎用
レジスタ[t]が、5ビットのパラメータ欄57におい
て指定され、スペース・レジスタ選択値[s]が、2ビ
ットのパラメータ欄54において指定される。スペース
・レジスタ選択欄54は、48ビットの仮想アドレスの
生成に用いられる。
汎用レジスタ[b]に格納されているベース値、及びス
ペース・レジスタ選択値[s]の関数として生成され
る。オフセットは、汎用レジスタ[b]に格納されてい
るベース値、及び汎用レジスタ[x]に格納されている
インデックス値の関数として生成される。スペース及び
オフセットからコヒーレンス・インデックスが計算さ
れ、ターゲット値として汎用レジスタ[t]に配置され
る。例えば、表2を参照すると、ターゲット値(宛先ビ
ット[0...31])が生成される。
コヒーレンス・インデックス・ロード命令50から48
ビットの仮想アドレス60を生成する方法が示されてい
る。48ビット仮想アドレス60は、16ビットのスペ
ース識別子61、及び32ビットのオフセット62を備
える。5ビットのパラメータ欄52のベース値が、汎用
レジスタ70へのインデックスとして使用される。汎用
レジスタ70は、それぞれ、32ビットからなる32個
のレジスタを備えている。5ビットのパラメータ欄52
のベース値によって選択される汎用レジスタは、ベース
・レジスタ・データ68を提供する。5ビットのパラメ
ータ欄53において指定のインデックス値は、汎用レジ
スタ70へのインデックスとしても利用される。5ビッ
トのパラメータ欄53において指定のインデックス値に
よって選択される汎用レジスタは、インデックス・レジ
スタ・データ69を提供する。加算器64は、ベース・
レジスタ・データ68とインデックス・レジスタ・デー
タ69を加算して、オフセット62を生成する。
ス・レジスタ63のうちの1つによって提供される。各
スペース・レジスタは16ビットである。コヒーレンス
・インデックス・ロード命令50の場合、スペース・レ
ジスタは下記のように選択される。比較器66による判
定で、2ビットのパラメータ欄54におけるスペース・
レジスタ選択値がゼロに等しくない場合、セレクタ67
は、インデックスとして、2ビットのパラメータ欄54
におけるスペース・レジスタ選択値を利用して、スペー
ス・レジスタ63からスペース・レジスタを選択し、ス
ペース識別子61の値を得る。比較器66による判定
で、2ビットのパラメータ欄54におけるスペース・レ
ジスタ選択値がゼロに等しければ、セレクタ67は、イ
ンデックスとして、ベース・レジスタ・データ68の2
つの最上位ビットと4を加えたものを利用し、スペース
・レジスタ63からスペース・レジスタを選択して、ス
ペース識別子61の値を得る。
にコヒーレンス・インデックスを用いると、データがI
/Oアダプタ13と共用の場合に、データ・キャッシュ
17、又はキャッシュ18からデータをフラッシュ、又
は除去するソフトウェアの必要性が緩和される。I/O
出力(例えば、I/Oアダプタ13を介したメモリ12
からI/O装置への転送)の場合、I/Oアダプタ13
は、最新のコピーがどこに配置されているかに依存し
て、メモリ、又はプロセッサのデータ・キャッシュから
データを読み取るコヒーレント読み取り操作を実行す
る。I/O入力の場合、I/Oアダプタ13は、メモリ
にデータを書き込み、さらに、プロセッサ10内のキャ
ッシュ17、又はプロセッサ11内のキャッシュ18に
おける整合ラインを更新、又は無効にするコヒーレント
書き込み操作を実行する。コヒーレント読み取り、及び
書き込み操作に関するより多くの情報を得るには、19
90年にカリフォルニア州、San Mateo の Morgan Kauf
fman Publishers,Inc.から発行された、David A.Patter
son、John L.Hennessy による「Computer ArchitectureA
Quantitative Approach」第8章、466〜474ペー
ジを参照されたい。
の方法及び実施例を開示し、説明した。当業者には明ら
かなように、本発明は、その精神、又はその本質的な特
性から逸脱することなく、他の特定の形態によって実施
することも可能である。従って、本発明の開示は、特許
請求項に規定された本発明の範囲の例示を意図したもの
であって、それを制限するものではない。
手段と、相互接続手段に結合された主メモリと、翻訳マ
ップが設けられており、この翻訳マップによって、I/
Oページ番号がメモリ・アドレス・ページ番号にマッピ
ングされ、該翻訳マップにコヒーレンス・インデックス
が備わっている、相互接続手段に結合されたI/Oアダ
プタと、キャッシュ、及び翻訳マップに格納されるコヒ
ーレンス・インデックスを生成する命令実行手段が設け
られており、該命令実行手段が、ハードウェアにおいて
ハッシュ操作を行い、コヒーレンス・インデックスを生
成する、相互接続手段に結合されたプロセッサから構成
される、コンピュータ・システム。
デックス・ロード操作、仮想メモリ・オフセット、及び
スペース識別子を指定する命令に応答して、仮想メモリ
・オフセットからのビット部分集合、及びスペース識別
子からのビット部分集合にハッシュ操作を実行し、コヒ
ーレンス・インデックスを生成することを特徴とする前
項1に記載のコンピュータ・システム。
用レジスタに格納され、スペース識別子が、第2の汎用
レジスタに格納され、コヒーレンス・インデックスが、
汎用ターゲット・レジスタに配置されることを特徴とす
る前項2に記載のコンピュータ・システム。
を識別することによって、仮想メモリ・オフセットを指
定し、第2の汎用レジスタを識別することによって、ス
ペース識別子を指定し、汎用ターゲット・レジスタを指
定することを特徴とする前項3に記載のコンピュータ・
システム。
インデックス・レジスタ、選択スペース・レジスタ、及
びターゲット・レジスタを指定する命令に応答して、ベ
ース・レジスタ、及び選択スペース・レジスタに格納さ
れた情報からスペース識別子を生成し、ベース・レジス
タに格納された情報、及びインデックス・レジスタに格
納された情報からオフセットを生成し、オフセットから
のビット部分集合、及びスペース識別子からのビット部
分集合にハッシュ操作を実行し、コヒーレンス・インデ
ックスを生成することを特徴とする前項1に記載のコン
ピュータ・システム。
値を格納する第1の汎用レジスタであり、インデックス
・レジスタが、一般に、インデックス値を格納する第2
の汎用レジスタであり、ターゲット・レジスタが、コヒ
ーレンス・インデックスを受信する第3の汎用レジスタ
であることを特徴とする前項5に記載のコンピュータ・
システム。
するために用いられる少なくとも1つのレジスタを指定
する命令に応答して、コヒーレンス・インデックスを生
成することを特徴とする前項1に記載のコンピュータ・
システム。
(a)コヒーレンス・インデックス・ロード命令に応答
して、ハードウェアでハッシュ操作を実行し、コヒーレ
ンス・インデックスを生成するサブ・ステップ(a.1)
から成る、プロセッサによってコヒーレンス・インデッ
クスを生成するステップと、(b)I/Oアダプタ内の
翻訳マップにコヒーレンス・インデックスを格納するス
テップと、(c)データ転送の実行の際に、I/Oアダ
プタからプロセッサにコヒーレンス・インデックスを送
るステップと、(d)ステップ(c)において、I/O
アダプタからコヒーレンス・インデックスを受信する
と、プロセッサが、このコヒーレンス・インデックスを
利用して、プロセッサ内のキャッシュ内のデータをアク
セスするステップ、から構成される方法。
ーレンス・インデックス・ロード命令が、コヒーレンス
・インデックス・ロード操作、仮想メモリ・オフセッ
ト、及びスペース識別子を指定し、サブステップ(a.
1)には、仮想メモリ・オフセットからのビット部分集
合、及びスペース識別子からのビット部分集合にハッシ
ュ操作を実行して、コヒーレンス・インデックスを生成
するステップが含まれることを特徴とする前項8に記載
の方法。
想メモリ・オフセットが第1の汎用レジスタに格納さ
れ、スペース識別子が第2の汎用レジスタに格納され、
コヒーレンス・インデックスが汎用ターゲット・レジス
タに配置されることを特徴とする前項9に記載の方法。
令レジスタが、第1の汎用レジスタを識別することによ
って、仮想メモリ・オフセットを指定し、第2の汎用レ
ジスタを識別することによって、スペース識別子を指定
し、汎用ターゲット・レジスタを指定することを特徴と
する前項10に記載の方法。
コヒーレンス・インデックス・ロード命令が、ベース・
レジスタ、インデックス・レジスタ、選択スペース・レ
ジスタ、及びターゲット・レジスタを指定し、サブステ
ップ(a.1)には、ベース・レジスタ、及び選択スペー
ス・レジスタに格納された情報からスペース識別子を生
成するステップと、ベース・レジスタに格納された情
報、及びインデックス・レジスタに格納された情報から
オフセットを生成するステップと、オフセットからのビ
ット部分集合、及びスペース識別子からのビット部分集
合にハッシュ操作を実行して、コヒーレンス・インデッ
クスを生成するステップ、とが含まれることを特徴とす
る前項8に記載の方法。
ース・レジスタが、一般に、ベース値を格納する第1の
汎用レジスタであり、インデックス・レジスタが、一般
に、インデックス値を格納する第2の汎用レジスタであ
り、ターゲット・レジスタが、コヒーレンス・インデッ
クスを受信する第3の汎用レジスタであることを特徴と
する前項12に記載の方法。
ヒーレンス・インデックス・ロード命令が、コヒーレン
ス・インデックス・ロード操作と、仮想アドレスを生成
するために用いられる少なくとも1つのレジスタとを指
定することを特徴とする前項8に記載の方法。
れて、I/Oアダプタ内の翻訳マップに格納すべきコヒ
ーレンス・インデックスを生成するための命令実行手段
から構成され、該命令実行手段が、ハードウェアにおい
てハッシュ操作を実行し、コヒーレンス・インデックス
を生成することを特徴とする、プロセッサ。
ンデックス・ロード操作、仮想メモリ・オフセット、及
びスペース識別子を指定する命令に応答して、仮想メモ
リ・オフセットからのビット部分集合、及びスペース識
別子からのビット部分集合にハッシュ操作を実行し、コ
ヒーレンス・インデックスを生成することを特徴とする
前項15に記載のプロセッサ。
汎用レジスタに格納され、スペース識別子が、第2の汎
用レジスタに格納され、コヒーレンス・インデックス
が、汎用ターゲット・レジスタに配置されることを特徴
とする、請求項16に記載のプロセッサ。
タを識別することによって、仮想メモリ・オフセットを
指定し、第2の汎用レジスタを識別することによって、
スペース識別子を指定し、汎用ターゲット・レジスタを
指定することを特徴とする前項17に記載のプロセッ
サ。
タ、インデックス・レジスタ、選択スペース・レジス
タ、及びターゲット・レジスタを指定する命令に応答し
て、ベース・レジスタ、及び選択スペース・レジスタに
格納された情報からスペース識別子を生成し、ベース・
レジスタに格納された情報、及びインデックス・レジス
タに格納された情報からオフセットを生成し、オフセッ
トからのビット部分集合、及びスペース識別子からのビ
ット部分集合にハッシュ操作を実行し、コヒーレンス・
インデックスを生成することを特徴とする前項15に記
載のプロセッサ。
ス値を格納する第1の汎用レジスタであり、インデック
ス・レジスタが、一般に、インデックス値を格納する第
2の汎用レジスタであり、ターゲット・レジスタが、コ
ヒーレンス・インデックスを受信する第3の汎用レジス
タであることを特徴とする前項19に記載のプロセッ
サ。
成するために用いられる少なくとも1つのレジスタを指
定する命令に応答して、コヒーレンス・インデックスを
生成することを特徴とする前項15に記載のプロセッ
サ。
度生成されると、コヒーレンス・インデックスは、I/
Oアダプタ内の翻訳マップに格納される。データ転送を
実施すると、I/Oアダプタは、プロセッサに適合する
コヒーレンス・インデックスを送る。プロセッサは、I
/Oアダプタからコヒーレンス・インデックスを受信す
ると、コヒーレンス・インデックスを利用して、キャッ
シュ内のデータをアクセスする。このようにして、I/
Oアダプタ内の翻訳テーブルに関するコヒーレンス・イ
ンデックスの生成が、最小限のオーバヘッドで可能にな
る。また、キャッシュ・インデックスの生成に用いられ
る既存のハードウェアが、コヒーレンス・インデックス
・ロード命令に応答して、コヒーレンス・インデックス
の生成にも利用される場合、本発明の実施には、既存の
ハードウェアに最小限の変更しか必要としないという効
果がある。
O)アダプタを備えたコンピュータ・システムの簡略ブ
ロック図を示す。
アダプタ内の変換マップの実施態様を示す。
ュータ・システムに対するキャッシュ/コヒーレンス・
インデックスの生成を例示する。
ンデックスを生成する簡略化された命令に関するフォー
マット、及び該命令によって着手する操作のハードウェ
ア実施態様を示す。
ンデックスを生成する命令に関するフォーマットの別の
実施態様を示す。
成を例示する。
Claims (1)
- 【請求項1】情報の転送を提供するための相互接続手段
と、 相互接続手段に結合された主メモリと、 翻訳マップが設けられており、この翻訳マップによっ
て、I/Oページ番号がメモリ・アドレス・ページ番号
にマッピングされ、該翻訳マップにコヒーレンス・イン
デックスが備わっている、相互接続手段に結合されたI
/Oアダプタと、 キャッシュ、及び翻訳マップに格納されるコヒーレンス
・インデックスを生成する命令実行手段が設けられてお
り、該命令実行手段が、ハードウェアにおいてハッシュ
操作を行い、コヒーレンス・インデックスを生成する、
相互接続手段に結合されたプロセッサから構成される、
コンピュータ・システム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201433 | 1994-02-24 | ||
| US08/201,433 US5515522A (en) | 1994-02-24 | 1994-02-24 | Coherence index generation for use by an input/output adapter located outside of the processor to detect whether the updated version of data resides within the cache |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0822415A true JPH0822415A (ja) | 1996-01-23 |
| JP3662619B2 JP3662619B2 (ja) | 2005-06-22 |
Family
ID=22745800
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP02636295A Expired - Fee Related JP3662619B2 (ja) | 1994-02-24 | 1995-02-15 | 入力/出力アダプタにより使用されるコヒーレンス・インデックス生成 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US5515522A (ja) |
| EP (1) | EP0669579B1 (ja) |
| JP (1) | JP3662619B2 (ja) |
| DE (1) | DE69418852T2 (ja) |
Families Citing this family (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5754819A (en) * | 1994-07-28 | 1998-05-19 | Sun Microsystems, Inc. | Low-latency memory indexing method and structure |
| US5787476A (en) * | 1995-05-05 | 1998-07-28 | Silicon Graphics, Inc. | System and method for maintaining coherency of virtual-to-physical memory translations in a multiprocessor computer |
| US5951657A (en) * | 1996-06-19 | 1999-09-14 | Wisconsin Alumni Research Foundation | Cacheable interface control registers for high speed data transfer |
| US5991819A (en) * | 1996-12-03 | 1999-11-23 | Intel Corporation | Dual-ported memory controller which maintains cache coherency using a memory line status table |
| GB9704542D0 (en) * | 1997-03-05 | 1997-04-23 | Sgs Thomson Microelectronics | A cache coherency mechanism |
| US6253301B1 (en) * | 1998-04-16 | 2001-06-26 | Compaq Computer Corporation | Method and apparatus for a dedicated physically indexed copy of the data cache tag arrays |
| US6253285B1 (en) * | 1998-04-16 | 2001-06-26 | Compaq Computer Corporation | Method and apparatus for minimizing dcache index match aliasing using hashing in synonym/subset processing |
| EP1030243B1 (en) * | 1999-02-18 | 2002-10-30 | Texas Instruments France | Optimized hardware cleaning function for virtual index virtual tag data cache |
| US7058667B2 (en) * | 2000-12-27 | 2006-06-06 | Microsoft Corporation | Method and system for creating and maintaining version-specific properties in a file |
| US6598060B2 (en) * | 2000-12-27 | 2003-07-22 | Microsoft Corporation | Method and system for creating and maintaining version-specific properties in a distributed environment |
| US20020083150A1 (en) * | 2000-12-27 | 2002-06-27 | Linden Minnick | Accessing information from memory |
| US6895013B1 (en) * | 2001-02-23 | 2005-05-17 | Cisco Technology, Inc. | Coherent access to and update of configuration information in multiprocessor environment |
| US7120747B2 (en) * | 2004-03-15 | 2006-10-10 | International Business Machines Corporation | Lower overhead shared cache invalidations |
| US7581042B2 (en) * | 2004-12-29 | 2009-08-25 | Intel Corporation | I/O hub resident cache line monitor and device register update |
| US9026698B2 (en) * | 2013-03-15 | 2015-05-05 | Intel Corporation | Apparatus, system and method for providing access to a device function |
| JP6179355B2 (ja) * | 2013-10-31 | 2017-08-16 | 富士通株式会社 | 情報処理装置、データ転送制御方法及びデータ転送制御プログラム |
| US9760492B2 (en) * | 2014-11-21 | 2017-09-12 | Mediatek Singapore Pte. Ltd. | Method for controlling access of cache through using programmable hashing address and related cache controller |
| KR102710288B1 (ko) * | 2018-11-07 | 2024-09-25 | 에스케이하이닉스 주식회사 | 비트 카운터를 이용하는 컴퓨팅 시스템 및 방법 |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4727482A (en) * | 1983-08-30 | 1988-02-23 | Amdahl Corporation | Apparatus for enhancing searches of data tables |
| US4680700A (en) * | 1983-12-07 | 1987-07-14 | International Business Machines Corporation | Virtual memory address translation mechanism with combined hash address table and inverted page table |
| JPH083805B2 (ja) * | 1985-06-28 | 1996-01-17 | ヒューレット・パッカード・カンパニー | Tlb制御方法 |
| US4885680A (en) * | 1986-07-25 | 1989-12-05 | International Business Machines Corporation | Method and apparatus for efficiently handling temporarily cacheable data |
| US4797817A (en) * | 1986-12-10 | 1989-01-10 | Ncr Corporation | Single cycle store operations in a virtual memory |
| GB2200483B (en) * | 1987-01-22 | 1991-10-16 | Nat Semiconductor Corp | Memory referencing in a high performance microprocessor |
| US5029070A (en) * | 1988-08-25 | 1991-07-02 | Edge Computer Corporation | Coherent cache structures and methods |
| US5025365A (en) * | 1988-11-14 | 1991-06-18 | Unisys Corporation | Hardware implemented cache coherency protocol with duplicated distributed directories for high-performance multiprocessors |
| US5197133A (en) * | 1988-12-19 | 1993-03-23 | Bull Hn Information Systems Inc. | Control store addressing from multiple sources |
| US5155843A (en) * | 1990-06-29 | 1992-10-13 | Digital Equipment Corporation | Error transition mode for multi-processor system |
| WO1993017384A1 (en) * | 1992-02-27 | 1993-09-02 | Wang Laboratories, Inc. | Cpu having pipelined instruction unit and effective address calculation unit with retained virtual address capability |
-
1994
- 1994-02-24 US US08/201,433 patent/US5515522A/en not_active Expired - Lifetime
- 1994-10-12 EP EP94116110A patent/EP0669579B1/en not_active Expired - Lifetime
- 1994-10-12 DE DE69418852T patent/DE69418852T2/de not_active Expired - Fee Related
-
1995
- 1995-02-15 JP JP02636295A patent/JP3662619B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP3662619B2 (ja) | 2005-06-22 |
| EP0669579B1 (en) | 1999-06-02 |
| EP0669579A3 (en) | 1995-11-29 |
| DE69418852D1 (de) | 1999-07-08 |
| DE69418852T2 (de) | 1999-12-30 |
| US5515522A (en) | 1996-05-07 |
| EP0669579A2 (en) | 1995-08-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN100397368C (zh) | 无效存储器,清除缓冲区表项 | |
| JP3662619B2 (ja) | 入力/出力アダプタにより使用されるコヒーレンス・インデックス生成 | |
| JP3924206B2 (ja) | 不均一メモリ・アクセス(numa)データ処理システム | |
| JP2618175B2 (ja) | キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル | |
| JPH03194632A (ja) | 変換予見にもとづくキャッシュアクセス | |
| US7249225B1 (en) | Method and apparatus for supporting read-only objects within an object-addressed memory hierarchy | |
| JPH0326863B2 (ja) | ||
| US20230401161A1 (en) | Translation support for a virtual cache | |
| US10606762B2 (en) | Sharing virtual and real translations in a virtual cache | |
| JP3045952B2 (ja) | フルアソシアティブ・アドレス変換器 | |
| EP0173909B1 (en) | Look-aside buffer least recently used marker controller | |
| JPH04213135A (ja) | 外部メモリアクセスシステム | |
| JP2000339221A (ja) | 変換装置のエントリを無効化するシステム及び方法 | |
| JP2007048296A (ja) | 複数のアドレス・キャッシュ・エントリーを無効にする方法、装置およびシステム | |
| US11748107B2 (en) | Complex I/O value prediction for multiple values with physical or virtual addresses | |
| US7171540B1 (en) | Object-addressed memory hierarchy that facilitates accessing objects stored outside of main memory | |
| JPH09167143A (ja) | メッセージ受信制御方式 | |
| CN115080464A (zh) | 数据处理方法和数据处理装置 | |
| CN120849312A (zh) | 一种信息处理方法、装置、电子设备、存储介质及产品 | |
| JPS6410858B2 (ja) | ||
| JPS6324337A (ja) | キャッシュ・メモリ管理方式 | |
| JPH0635801A (ja) | 階層メモリ制御方式 | |
| JPH07334422A (ja) | キャッシュメモリ装置 | |
| JPH0235543A (ja) | ページテーブルエントリ無効化装置 | |
| JPH03241426A (ja) | キャッシュメモリシステム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040903 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040907 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20041207 |
|
| A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20041210 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050223 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050315 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050324 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090401 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100401 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110401 Year of fee payment: 6 |
|
| LAPS | Cancellation because of no payment of annual fees |