JP3662619B2 - 入力/出力アダプタにより使用されるコヒーレンス・インデックス生成 - Google Patents

入力/出力アダプタにより使用されるコヒーレンス・インデックス生成 Download PDF

Info

Publication number
JP3662619B2
JP3662619B2 JP02636295A JP2636295A JP3662619B2 JP 3662619 B2 JP3662619 B2 JP 3662619B2 JP 02636295 A JP02636295 A JP 02636295A JP 2636295 A JP2636295 A JP 2636295A JP 3662619 B2 JP3662619 B2 JP 3662619B2
Authority
JP
Japan
Prior art keywords
register
index
processor
coherence
coherence index
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP02636295A
Other languages
English (en)
Other versions
JPH0822415A (ja
Inventor
ケイ・モンロー・ブリッジス
ウイリアム・アール・ブライグ
スティーブン・ジー・バーガー
ジェイムズ・エム・ハル
マイケル・エル・ジグラー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH0822415A publication Critical patent/JPH0822415A/ja
Application granted granted Critical
Publication of JP3662619B2 publication Critical patent/JP3662619B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0835Cache 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)

Description

【0001】
【産業上の利用分野】
本発明は、入力/出力アダプタにより使用されるコヒーレンス・インデックス生成に関する。
【0002】
【従来の技術】
最新のコンピュータ・システムの大部分には、中央演算処理装置(CPU)及び主メモリが含まれている。CPUが命令及びオペランドを復号化し、実行することが可能な速度は、命令及びオペランドを主メモリからCPUに転送することが可能な速度に依存する。CPUが主メモリから命令及びオペランドを得るのに必要な時間を短縮する試みとして、多くのコンピュータ・システムには、CPUと主メモリの間にキャッシュ・メモリが含まれる。
【0003】
キャッシュ・メモリは、CPUによって近い将来に用いられるであろうと思われる、主メモリの内容の一部を一時的に保持するために利用される、小形で、高速のバッファ・メモリである。キャッシュ・メモリの主要目的は、データまたは命令の取り出しのため、メモリのアクセスを実行するのに必要な時間を短縮することにある。キャッシュ・メモリに納められた情報は、主メモリに納められた情報に比べると、かなり短い時間でアクセスすることが可能である。従って、キャッシュ・メモリを備えたCPUは、命令及びオペランドの取り出し、及び/又は格納の待機に費やす必要のある時間を大幅に短縮することになる。
【0004】
キャッシュ・メモリは、1ワード以上のデータによる多くのブロックから構成される。各ブロックは、それが主メモリのどのブロックのコピーであるかを独自に識別するアドレス・タグに関連づけられている。プロセッサが、メモリを参照する毎に、アドレス・タグを比較して、要求されたデータのコピーが、キャッシュ・メモリに納められているか否かの確認が行われる。所望のメモリ・ブロックがキャッシュ・メモリ内になければ、該ブロックは、主メモリから検索され、キャッシュ・メモリに格納され、プロセッサに供給される。
【0005】
キャッシュ・メモリを利用して、主メモリからデータを検索する以外に、CPUは、主メモリに直接ではなく、キャッシュ・メモリにデータを書き込むことも可能である。プロセッサが、メモリに対するデータの書き込みを所望する場合、キャッシュ・メモリは、アドレス・タグの比較を行って、データを書き込むべきデータ・ブロックがキャッシュ・メモリに残っているか否かを確認する。データ・ブロックがキャッシュ・メモリに存在する場合、データはキャッシュ・メモリのデータ・ブロックに書き込まれる。多くのシステムでは、次に、データ・ブロックに関するデータである「ダーティ・ビット」がセットされる。ダーティ・ビットは、データ・ブロック内のデータが、ダーティである(すなわち、変更された)ことを表しており、従って、キャッシュ・メモリからデータ・ブロックを削除する前に、変更されたデータを主メモリに書き込まなければならない。データを書き込むべきデータ・ブロックが、キャッシュ・メモリ内に存在しなければ、データ・ブロックをキャッシュ・メモリに取り出すか、又は主メモリに直接データを書き込まなければならない。新たなデータがキャッシュ・メモリに納められる場合、重ね書きされる、又はキャッシュ・メモリからコピーされるデータ・ブロックは、犠牲ブロックまたは犠牲ラインと呼ばれる。
【0006】
1つ以上のプロセッサがキャッシュを利用するシステムにおいて、I/Oアダプタが、主メモリにアクセスする場合、メモリにおいてアクセスを受けるデータの完全性を保証するステップを踏む必要がある。例えば、I/Oアダプタが、メモリからデータをアクセスする(書き込むか、又は読み取る)場合、更新バージョンのデータが、システムにおけるプロセッサのキャッシュに残っているか否かを判定することが重要である。更新バージョンのデータが存在する場合には、I/Oアダプタが更新バージョンのデータをアクセスすることを保証するためにしなければならないことがある。ここで、更新バージョンのデータが利用されることを確実にする操作をコヒーレンス操作と呼ぶことにする。
【0007】
コヒーレンス操作の成功を確実にするために、考慮すべき必要のある多くの要因がある。例えば、多くのシステムの場合、キャッシュに格納されたデータは、一般に、仮想アドレスから導き出されたインデックスを利用してアクセスされる。さらに、ハッシュ・アルゴリズムを用いて、キャッシュ内のデータを分散させる場合が多い。しかし、システム・メモリからのアクセスは、実アドレスを利用して実施される。
【0008】
【発明が解決しようとする課題】
システム・メモリからI/Oアダプタによってアクセスされるデータのコヒーレンスを保証するため、さまざまな提案がされている。例えば、解決策の1つは、データが主メモリからアクセスを受ける毎に、ソフトウェアによって、システムにおける各プロセッサのキャッシュを明示的にフラッシュすることである。キャッシュをフラッシュすると、I/Oアダプタによるデータ・アクセスの前に、更新バージョンのデータが、確実に主メモリに戻されることになる。しかし、この案によれば、I/Oアダプタによるメモリ・アクセスのオーバヘッドが大幅に増大する可能性がある。
【0009】
別の案では、各システム・プロセッサには、実アドレスを仮想アドレスに変換する「BLT」テーブルが含まれる。I/Oアダプタが、システム・メモリにアクセスすると、各システム・プロセッサは、実アドレスを仮想アドレスに変換し、そのキャッシュにアクセスして、アクセスしたデータがキャッシュ内に存在するか否かを判定する。存在すれば、I/Oアダプタがアクセスを完了する前に、アクセスしたデータがメモリにフラッシュされる。代替案として、I/Oアダプタがキャッシュから直接データをアクセスすることも可能である。
【0010】
別の案では、I/Oアダプタがメモリにアクセスすると、I/Oアダプタが、各プロセッサにコヒーレンス・インデックスを送る。コヒーレンス・インデックスは、各プロセッサによって、プロセッサに関連したキャッシュにアクセスし、アクセスしたデータがキャッシュに存在するか否かを判定するために利用される。存在すれば、I/Oアダプタがアクセスを完了する前に、アクセスしたデータは、メモリにフラッシュされる。代替案として、I/Oアダプタは、キャッシュから直接データをアクセスすることが可能である。
【0011】
メモリ・アクセスに関するコヒーレンス・インデックスは、I/Oアダプタ内の翻訳テーブルに格納することが可能である。I/Oアクセスを開始するプロセッサは、適合するインデックスをI/Oアダプタ内の翻訳テーブルに配置することが可能である。仮想アドレスの一部を利用してプロセッサ・キャッシュにアクセスするコンピュータ・システムの場合、I/Oアダプタ内の翻訳テーブルに適当なインデックスを配置することは、仮想アドレスからキャッシュ・インデックスを抽出し、該インデックスのデータ転送をI/Oアダプタ内の翻訳テーブルに対して行うこととすることができる。しかし、仮想アドレスをハッシュすることによりキャッシュ・インデックスが導き出されるコンピュータ・システムの場合、コヒーレンス・インデックスを得るには、いくつかの追加操作を行ってハッシュ操作を実施することが必要となる可能性がある。これは、I/Oアダプタによるメモリ・アクセスのオーバヘッドを大幅に増大させるものとなり得る。
【0012】
【課題を解決するための手段】
本発明の好適実施例によれば、コンピュータ・システムには、相互接続手段、主メモリ、入力/出力(I/O)アダプタ、及びプロセッサが含まれる。好適実施例の場合、相互接続手段はバスである。代替案として、相互接続手段は、リング・ネットワーク、クロス・バー・スイッチ、または、コヒーレントI/Oを利用する任意のメモリ相互接続とすることが可能である。
【0013】
主メモリ、I/Oアダプタ、及びプロセッサは、バスに接続される。I/Oアダプタには、翻訳マップが含まれている。翻訳マップは、I/Oページ番号をメモリ・アドレス・ページ番号にマッピングする。翻訳マップには、コヒーレンス・インデックスが含まれる。プロセッサには、キャッシュ及び命令実行手段が含まれる。命令実行手段は、翻訳マップに格納すべきコヒーレンス・インデックスを生成する。命令実行手段は、ハードウェアにおいて、ハッシュ操作を実施して、コヒーレンス・インデックスを生成する。
【0014】
本発明の好適実施例の場合、命令実行手段は、コヒーレンス・インデックス・ロード命令を実行する。コヒーレンス・インデックス・ロード命令には、パラメータとして、ベース・レジスタ、インデックス・レジスタ、選択スペース・レジスタ、及びターゲット・レジスタが含まれる。命令の実行においては、コヒーレンス・インデックス・ロード命令及びそれに伴うパラメータに応答して、仮想アドレスが生成される。次に、命令の実行において、仮想アドレスに基づくビット部分集合にハッシュ操作を実施し、コヒーレンス・インデックスが生成される。
【0015】
好適実施例の場合、仮想アドレスが、ベース・レジスタ及び選択スペース・レジスタに格納された情報からスペース識別子を利用して形成される。仮想アドレスの形成には、また、ベース・レジスタに格納された情報、及びインデックス・レジスタに格納された情報からのオフセットも利用される。仮想アドレスは、スペース識別子、及びオフセットを連結したものである。
【0016】
好適実施例の場合、ベース・レジスタは、一般にベース値を格納する第1の汎用レジスタである。インデックス・レジスタは、一般にインデックス値を格納する第2の汎用レジスタである。ターゲット・レジスタは、コヒーレンス・インデックスを受信する第3の汎用レジスタである。
【0017】
一度生成されると、コヒーレンス・インデックスは、I/Oアダプタ内の翻訳マップに格納される。データ転送を実施すると、I/Oアダプタは、プロセッサに適合するコヒーレンス・インデックスを送る。プロセッサは、I/Oアダプタからコヒーレンス・インデックスを受信すると、コヒーレンス・インデックスを利用して、キャッシュ内のデータをアクセスする。
【0018】
本発明の好適実施例によれば、入力/出力(I/O)アダプタ内の翻訳テーブルに関するコヒーレンス・インデックスの生成が、最小限のオーバヘッドで可能になる。キャッシュ・インデックスの生成に用いられる既存のハードウェアが、コヒーレンス・インデックス・ロード命令に応答して、コヒーレンス・インデックスの生成にも利用される場合、本発明の実施には、既存のハードウェアに最小限の変更しか必要としない。
【0019】
【実施例】
図1には、コンピュータ・システムの簡略ブロック図が示されている。プロセッサ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で使用されるアドレスに変換される。
【0020】
図2には、本発明の好適実施例による翻訳マップ19の実施態様が示されている。翻訳マップ19を利用して、I/Oバス・アドレス21がメモリ・アドレス23に変換される。翻訳マップ19は、I/O変換の直接マップ方式キャッシュとして実施される。代替案として、翻訳マップ19は、完全連想方式キャッシュ、セット連想方式キャッシュ、又はI/Oページ翻訳が完全に納められたテーブルとして実施することも可能である。当業者であれば、どの実施態様についても明確に理解できるであろう。
【0021】
好適実施例において、翻訳時に、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の情報を探索することが可能になる。
【0022】
プロセッサ10または11で実行されるオペレーティング・システムのソフトウェアは、I/Oアダプタ13内の翻訳マップ19にアドレス翻訳情報をロードする。この情報には、コヒーレンス・インデックスが含まれる。例えば、図3には、仮想アドレス31が示されている。仮想アドレス31には、仮想部分と物理部分が含まれる。非ハッシュ仮想キャッシュ・インデックスを利用するシステムの場合、コヒーレンス・インデックス32は、仮想アドレス31の仮想部分を形成するビット部分集合を利用して生成される。キャッシュ・インデックス38は、物理部分のビット部分集合に加えて、仮想アドレス31の仮想部分を形成するビット部分集合を利用することにより生成される。こうしたシステムの場合、キャッシュ・インデックスの仮想部分は、コヒーレンス・インデックスであり、オペレーティング・システムが、仮想アドレスから直接これを抽出し、I/Oアダプタ13内の翻訳マップ19に格納することが可能である。
【0023】
図3には、仮想アドレス33も示されている。仮想アドレスには、スペース識別子、仮想ページ、及び物理部分が含まれている。このシステムにおいて、キャッシュ・インデックス39は、ハッシュ・ハードウェア36を利用して仮想アドレス33のスペース識別子を形成するビット部分集合と、仮想アドレス33の仮想部分を形成するビット部分集合をハッシュし、仮想アドレスの物理部分の部分集合を連結することによって、生成される。コヒーレンス・インデックス37は、図3に示すように、キャッシュ・インデックス39の仮想部分と同様に生成される。
【0024】
以下の説明において、ビットは、左端または最上位端がビット0で、右端または最下位端が大きい番号のビットになる、「ビッグ・エンディアン」・フォーマットで番号が付けられる。
【0025】
例えば、好適実施例の場合、仮想アドレス33は、48ビットのアドレスである。ビット0〜15(spac[16,17,...,31])は、スペース識別子を指定する。ビット16〜35(virt[0,1,...,19])は、仮想ページ番号を指定する。ビット36〜47(virt[20,21,...,31])は、アドレスの物理部分を指定する。キャッシュ・アドレス・ビット(cach[12,13,...,26])は、下記の表1で示されるように導出されるキャッシュ17にアクセスするために用いられる。
【0026】
【表1】
Figure 0003662619
【0027】
上記表1から明らかなように、本発明の好適実施例に用いられるハッシュには、キャッシュ・ビットのうちの8つ(cach[12...19])を生成するために、実施すべき論理「排他的OR」(XOR)機能が必要になる。ソフトウェアにおけるハッシュの実行は、キャッシュ・インデックスを生成するために、いくつかのソフトウェア命令を必要とする。さらに、プロセッサが異なる世代の場合、キャッシュにアクセスするために、異なるハッシュが用いられる可能性がある。従って、ソフトウェアは、プロセッサのタイプまたは改訂に依存して異なる計算を実行する必要がある。
【0028】
しかし、本発明の好適実施例の場合、プロセッサ10及びプロセッサ11は、それぞれ、その命令セット内に、仮想コヒーレントI/Oを支援するプロセッサ命令を含んでいる。図4には、こうしたプロセッサ命令に関する簡略レイアウトが示されている。命令には、命令コード、スペース識別子を含む第1のソース・レジスタに対する参照(R1)、仮想オフセット(仮想ページに物理部分を加えたもの)を含む第2のソース・レジスタに対する参照(R2)、及びターゲット値(コヒーレンス・インデックス)が配置された宛先レジスタ(D)が含まれている。当業者であれば明らかなように、あるプロセッサ・アーキテクチャの中には、単一レジスタを利用して、仮想アドレスの指定を行うことができるものもある。一度生成されると、コヒーレンス・インデックスは、I/Oアダプタ13内の翻訳マップ19に格納することが可能である。好適実施例の場合、命令を実行する際、プロセッサ10及びプロセッサ11は、それぞれ、ハードウェアを用いて、コヒーレンス・インデックスを生成する。例えば、プロセッサ10は、ハードウェア33を用いて、コヒーレンス・インデックスを生成する。また、プロセッサ10は、ハードウェア33を利用して、キャッシュ17へのアクセスに備えてキャッシュ・インデックスも生成する。従って、コヒーレンス・インデックスを生成する操作の好適実施態様では、下記の表2に示す機能を利用する。下記の表2に示す機能を利用して実施する場合、8ビットの規定された結果は、キャッシュ・インデックスのハッシュ部分の生成に用いられる計算と整合する。
【0029】
【表2】
Figure 0003662619
【0030】
図5には、本発明の好適実施例に従って、コヒーレンス・インデックスを生成する命令のためのフォーマットの別の実施例が示されている。図5に示されたコヒーレンス・インデックス・ロード命令50を呼び出すアセンブリ言語は、LCIx(s,b),tである。参照命令「LCI」によって、命令コード欄51、命令コード欄55、命令コード欄56に格納すべき値が決まる。好適実施例の場合、6ビットの命令コード欄51には、16進数値01が格納され、8ビットの命令コード欄55には、16進数値4Cが格納され、1ビットの命令コード欄56には、16進数値の0が格納される。さらに、インデックス値を格納する汎用レジスタ[x]が、5ビットのパラメータ欄53において指定され、ベース値を格納する汎用レジスタ[b]が、5ビットのパラメータ欄52において指定され、ターゲット値を受信する汎用レジスタ[t]が、5ビットのパラメータ欄57において指定され、スペース・レジスタ選択値[s]が、2ビットのパラメータ欄54において指定される。スペース・レジスタ選択欄54は、48ビットの仮想アドレスの生成に用いられる。
【0031】
仮想アドレスに関するスペース識別子が、汎用レジスタ[b]に格納されているベース値、及びスペース・レジスタ選択値[s]の関数として生成される。オフセットは、汎用レジスタ[b]に格納されているベース値、及び汎用レジスタ[x]に格納されているインデックス値の関数として生成される。スペース及びオフセットからコヒーレンス・インデックスが計算され、ターゲット値として汎用レジスタ[t]に配置される。例えば、表2を参照すると、ターゲット値(宛先ビット[0...31])が生成される。
【0032】
図6には、本発明の好適実施例に従って、コヒーレンス・インデックス・ロード命令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を生成する。
【0033】
スペース識別子61の値は、8つのスペース・レジスタ63のうちの1つによって提供される。各スペース・レジスタは16ビットである。コヒーレンス・インデックス・ロード命令50の場合、スペース・レジスタは下記のように選択される。比較器66による判定で、2ビットのパラメータ欄54におけるスペース・レジスタ選択値がゼロに等しくない場合、セレクタ67は、インデックスとして、2ビットのパラメータ欄54におけるスペース・レジスタ選択値を利用して、スペース・レジスタ63からスペース・レジスタを選択し、スペース識別子61の値を得る。比較器66による判定で、2ビットのパラメータ欄54におけるスペース・レジスタ選択値がゼロに等しければ、セレクタ67は、インデックスとして、ベース・レジスタ・データ68の2つの最上位ビットと4を加えたものを利用し、スペース・レジスタ63からスペース・レジスタを選択して、スペース識別子61の値を得る。
【0034】
本発明の好適実施例において、データ転送にコヒーレンス・インデックスを用いると、データが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における整合ラインを更新、又は無効にするコヒーレント書き込み操作を実行する。コヒーレント読み取り、及び書き込み操作に関するより多くの情報を得るには、1990年にカリフォルニア州、San Mateo の Morgan Kauffman Publishers,Inc.から発行された、David A.Patterson、John L.Hennessy による「Computer Architecture A Quantitative Approach」第8章、466〜474ページを参照されたい。
【0035】
以上の説明において、本発明の単なる例示の方法及び実施例を開示し、説明した。当業者には明らかなように、本発明は、その精神、又はその本質的な特性から逸脱することなく、他の特定の形態によって実施することも可能である。従って、本発明の開示は、特許請求項に規定された本発明の範囲の例示を意図したものであって、それを制限するものではない。
【0036】
以下に、本発明の実施態様を列挙する。
【0037】
1.情報の転送を提供するための相互接続手段と、
相互接続手段に結合された主メモリと、
翻訳マップが設けられており、この翻訳マップによって、I/Oページ番号がメモリ・アドレス・ページ番号にマッピングされ、該翻訳マップにコヒーレンス・インデックスが備わっている、相互接続手段に結合されたI/Oアダプタと、
キャッシュ、及び翻訳マップに格納されるコヒーレンス・インデックスを生成する命令実行手段が設けられており、該命令実行手段が、ハードウェアにおいてハッシュ操作を行い、コヒーレンス・インデックスを生成する、相互接続手段に結合されたプロセッサから構成される、コンピュータ・システム。
【0038】
2.命令実行手段が、コヒーレンス・インデックス・ロード操作、仮想メモリ・オフセット、及びスペース識別子を指定する命令に応答して、仮想メモリ・オフセットからのビット部分集合、及びスペース識別子からのビット部分集合にハッシュ操作を実行し、コヒーレンス・インデックスを生成することを特徴とする前項1に記載のコンピュータ・システム。
【0039】
3.仮想メモリ・オフセットが、第1の汎用レジスタに格納され、スペース識別子が、第2の汎用レジスタに格納され、コヒーレンス・インデックスが、汎用ターゲット・レジスタに配置されることを特徴とする前項2に記載のコンピュータ・システム。
【0040】
4.命令レジスタが、第1の汎用レジスタを識別することによって、仮想メモリ・オフセットを指定し、第2の汎用レジスタを識別することによって、スペース識別子を指定し、汎用ターゲット・レジスタを指定することを特徴とする前項3に記載のコンピュータ・システム。
【0041】
5.命令実行手段が、ベース・レジスタ、インデックス・レジスタ、選択スペース・レジスタ、及びターゲット・レジスタを指定する命令に応答して、ベース・レジスタ、及び選択スペース・レジスタに格納された情報からスペース識別子を生成し、ベース・レジスタに格納された情報、及びインデックス・レジスタに格納された情報からオフセットを生成し、オフセットからのビット部分集合、及びスペース識別子からのビット部分集合にハッシュ操作を実行し、コヒーレンス・インデックスを生成することを特徴とする前項1に記載のコンピュータ・システム。
【0042】
6.ベース・レジスタが、一般に、ベース値を格納する第1の汎用レジスタであり、インデックス・レジスタが、一般に、インデックス値を格納する第2の汎用レジスタであり、ターゲット・レジスタが、コヒーレンス・インデックスを受信する第3の汎用レジスタであることを特徴とする前項5に記載のコンピュータ・システム。
【0043】
7.命令実行手段が、仮想アドレスを生成するために用いられる少なくとも1つのレジスタを指定する命令に応答して、コヒーレンス・インデックスを生成することを特徴とする前項1に記載のコンピュータ・システム。
【0044】
8.コンピュータ・システムにおいて、
(a)コヒーレンス・インデックス・ロード命令に応答して、ハードウェアでハッシュ操作を実行し、コヒーレンス・インデックスを生成するサブ・ステップ(a.1)から成る、プロセッサによってコヒーレンス・インデックスを生成するステップと、
(b)I/Oアダプタ内の翻訳マップにコヒーレンス・インデックスを格納するステップと、
(c)データ転送の実行の際に、I/Oアダプタからプロセッサにコヒーレンス・インデックスを送るステップと、
(d)ステップ(c)において、I/Oアダプタからコヒーレンス・インデックスを受信すると、プロセッサが、このコヒーレンス・インデックスを利用して、プロセッサ内のキャッシュ内のデータをアクセスするステップ、から構成される方法。
【0045】
9.サブステップ(a.1)において、コヒーレンス・インデックス・ロード命令が、コヒーレンス・インデックス・ロード操作、仮想メモリ・オフセット、及びスペース識別子を指定し、サブステップ(a.1)には、仮想メモリ・オフセットからのビット部分集合、及びスペース識別子からのビット部分集合にハッシュ操作を実行して、コヒーレンス・インデックスを生成するステップが含まれることを特徴とする前項8に記載の方法。
【0046】
10.サブステップ(a.1)において、仮想メモリ・オフセットが第1の汎用レジスタに格納され、スペース識別子が第2の汎用レジスタに格納され、コヒーレンス・インデックスが汎用ターゲット・レジスタに配置されることを特徴とする前項9に記載の方法。
【0047】
11.サブステップ(a.1)において、命令レジスタが、第1の汎用レジスタを識別することによって、仮想メモリ・オフセットを指定し、第2の汎用レジスタを識別することによって、スペース識別子を指定し、汎用ターゲット・レジスタを指定することを特徴とする前項10に記載の方法。
【0048】
12. サブステップ(a.1)において、コヒーレンス・インデックス・ロード命令が、ベース・レジスタ、インデックス・レジスタ、選択スペース・レジスタ、及びターゲット・レジスタを指定し、サブステップ(a.1)には、ベース・レジスタ、及び選択スペース・レジスタに格納された情報からスペース識別子を生成するステップと、ベース・レジスタに格納された情報、及びインデックス・レジスタに格納された情報からオフセットを生成するステップと、オフセットからのビット部分集合、及びスペース識別子からのビット部分集合にハッシュ操作を実行して、コヒーレンス・インデックスを生成するステップ、とが含まれることを特徴とする前項8に記載の方法。
【0049】
13.サブステップ(a.1)において、ベース・レジスタが、一般に、ベース値を格納する第1の汎用レジスタであり、インデックス・レジスタが、一般に、インデックス値を格納する第2の汎用レジスタであり、ターゲット・レジスタが、コヒーレンス・インデックスを受信する第3の汎用レジスタであることを特徴とする前項12に記載の方法。
【0050】
14.サブステップ(a.1)において、コヒーレンス・インデックス・ロード命令が、コヒーレンス・インデックス・ロード操作と、仮想アドレスを生成するために用いられる少なくとも1つのレジスタとを指定することを特徴とする前項8に記載の方法。
【0051】
15.キャッシュと、
キャッシュに結合されて、I/Oアダプタ内の翻訳マップに格納すべきコヒーレンス・インデックスを生成するための命令実行手段から構成され、該命令実行手段が、ハードウェアにおいてハッシュ操作を実行し、コヒーレンス・インデックスを生成することを特徴とする、プロセッサ。
【0052】
16.命令実行手段が、コヒーレンス・インデックス・ロード操作、仮想メモリ・オフセット、及びスペース識別子を指定する命令に応答して、仮想メモリ・オフセットからのビット部分集合、及びスペース識別子からのビット部分集合にハッシュ操作を実行し、コヒーレンス・インデックスを生成することを特徴とする前項15に記載のプロセッサ。
【0053】
17.仮想メモリ・オフセットが、第1の汎用レジスタに格納され、スペース識別子が、第2の汎用レジスタに格納され、コヒーレンス・インデックスが、汎用ターゲット・レジスタに配置されることを特徴とする、請求項16に記載のプロセッサ。
【0054】
18.命令レジスタが、第1の汎用レジスタを識別することによって、仮想メモリ・オフセットを指定し、第2の汎用レジスタを識別することによって、スペース識別子を指定し、汎用ターゲット・レジスタを指定することを特徴とする前項17に記載のプロセッサ。
【0055】
19.命令実行手段が、ベース・レジスタ、インデックス・レジスタ、選択スペース・レジスタ、及びターゲット・レジスタを指定する命令に応答して、ベース・レジスタ、及び選択スペース・レジスタに格納された情報からスペース識別子を生成し、ベース・レジスタに格納された情報、及びインデックス・レジスタに格納された情報からオフセットを生成し、オフセットからのビット部分集合、及びスペース識別子からのビット部分集合にハッシュ操作を実行し、コヒーレンス・インデックスを生成することを特徴とする前項15に記載のプロセッサ。
【0056】
20.ベース・レジスタが、一般に、ベース値を格納する第1の汎用レジスタであり、インデックス・レジスタが、一般に、インデックス値を格納する第2の汎用レジスタであり、ターゲット・レジスタが、コヒーレンス・インデックスを受信する第3の汎用レジスタであることを特徴とする前項19に記載のプロセッサ。
【0057】
21.命令実行手段が、仮想アドレスを生成するために用いられる少なくとも1つのレジスタを指定する命令に応答して、コヒーレンス・インデックスを生成することを特徴とする前項15に記載のプロセッサ。
【0058】
【発明の効果】
本発明は上述のように構成したので、一度生成されると、コヒーレンス・インデックスは、I/Oアダプタ内の翻訳マップに格納される。データ転送を実施すると、I/Oアダプタは、プロセッサに適合するコヒーレンス・インデックスを送る。プロセッサは、I/Oアダプタからコヒーレンス・インデックスを受信すると、コヒーレンス・インデックスを利用して、キャッシュ内のデータをアクセスする。このようにして、I/Oアダプタ内の翻訳テーブルに関するコヒーレンス・インデックスの生成が、最小限のオーバヘッドで可能になる。また、キャッシュ・インデックスの生成に用いられる既存のハードウェアが、コヒーレンス・インデックス・ロード命令に応答して、コヒーレンス・インデックスの生成にも利用される場合、本発明の実施には、既存のハードウェアに最小限の変更しか必要としないという効果がある。
【図面の簡単な説明】
【図1】本発明の好適実施例による、入力/出力(I/O)アダプタを備えたコンピュータ・システムの簡略ブロック図を示す。
【図2】本発明の好適実施例による、図1に示すI/Oアダプタ内の変換マップの実施態様を示す。
【図3】本発明の好適実施例による、図1に示すコンピュータ・システムに対するキャッシュ/コヒーレンス・インデックスの生成を例示する。
【図4】本発明の好適実施例による、コヒーレンス・インデックスを生成する簡略化された命令に関するフォーマット、及び該命令によって着手する操作のハードウェア実施態様を示す。
【図5】本発明の好適実施例による、コヒーレンス・インデックスを生成する命令に関するフォーマットの別の実施態様を示す。
【図6】本発明の好適実施例による、仮想アドレスの生成を例示する。
【符号の説明】
9 メモリ・バス
10,11 プロセッサ
12 メモリ
13 入力/出力(I/O)アダプタ
14 I/Oバス
15,16 I/O装置
17,18 データ・キャッシュ
19 翻訳マップ
21 I/Oバス・アドレス
22 コヒーレンス・インデックス
23 メモリ・アドレス
25 比較器
31,33 仮想アドレス
36 ハッシュ・ハードウェア
37 コヒーレンス・インデックス
39 キャッシュ・インデックス
50 コヒーレンス・インデックス・ロード命令
51,55,56 命令コード欄
52 ベース欄
53 インデックス欄
54 スペース・レジスタ選択欄
57 ターゲット欄
60 仮想アドレス
61 スペース識別子
62 オフセット
63 スペース・レジスタ
64 加算器
66 比較器
67 セレクタ
68 ベース・レジスタ・データ
69 インデックス・レジスタ・データ
70 汎用レジスタ

Claims (20)

  1. 情報の転送を提供するための相互接続手段と、
    該相互接続手段に結合された主メモリと、
    該相互接続手段に結合されたI/Oアダプタであって、I/Oページ番号をメモリ・アドレス・ページ番号へとマッピングする翻訳マップを含み、該翻訳マップがコヒーレンス・インデックスを含む、I/Oアダプタと、
    前記相互接続手段に結合されたプロセッサであって、キャッシュと、該プロセッサにより実行される命令に応じて前記翻訳マップに格納されるべきコヒーレンス・インデックスを生成する命令実行手段とを含み、及び該命令実行手段がハードウェアにおいてハッシュ操作を行ってコヒーレンス・インデックスを生成し、該プロセッサ内に前記I/Oアダプタを含まない、プロセッサとを備えたコンピュータ・システムであって、
    前記I/Oアダプタがデータ転送の実行中に該I/Oアダプタから前記プロセッサへコヒーレンス・インデックスを送る際に、前記プロセッサが、該コヒーレンス・インデックスを使用して、更新された関連するデータが前記キャッシュ内に存在するか否かを検出し、更新された関連するデータが前記キャッシュ内に存在することを該プロセッサが検出した際に、前記主メモリ内の旧いデータではなく該更新された関連するデータがデータ転送に使用される、コンピュータ・システム。
  2. 前記命令が、コヒーレンス・インデックス・ロード操作、仮想メモリ・オフセット、及びスペース識別子を指定し、前記命令実行手段が、該命令に応じて、前記仮想メモリ・オフセットからのビット部分集合及び前記スペース識別子からのビット部分集合にハッシュ操作を実行してコヒーレンス・インデックスを生成する、請求項1に記載のコンピュータ・システム。
  3. 前記仮想メモリ・オフセットが第1の汎用レジスタに格納され、前記スペース識別子が第2の汎用レジスタに格納され、前記コヒーレンス・インデックスが汎用ターゲット・レジスタに配置される、請求項2に記載のコンピュータ・システム。
  4. 前記命令が、前記第1の汎用レジスタを識別することにより前記仮想メモリ・オフセットを指定し、前記第2の汎用レジスタを識別することにより前記スペース識別子を指定し、及び前記汎用ターゲット・レジスタを指定する、請求項3に記載のコンピュータ・システム。
  5. 前記命令が、ベース・レジスタ、インデックス・レジスタ、選択スペース・レジスタ、及びターゲット・レジスタを指定し、前記命令実行手段が、該命令に応じて、前記ベース・レジスタ及び前記選択スペース・レジスタに格納された情報からスペース識別子を生成し、前記ベース・レジスタに格納された情報及び前記インデックス・レジスタに格納された情報からオフセットを生成し、該オフセットからのビット部分集合及び前記スペース識別子からのビット部分集合にハッシュ操作を実行してコヒーレンス・インデックスを生成する、請求項1に記載のコンピュータ・システム。
  6. 前記ベース・レジスタが一般にベース値を格納する第1の汎用レジスタであり、前記インデックス・レジスタが一般にインデックス値を格納する第2の汎用レジスタであり、前記ターゲット・レジスタが前記コヒーレンス・インデックスを受信する第3の汎用レジスタである、請求項5に記載のコンピュータ・システム。
  7. 前記命令が、仮想アドレスを生成するために用いられる少なくとも1つのレジスタを指定する、請求項1に記載のコンピュータ・システム。
  8. コンピュータ・システムにおいて、
    (a)プロセッサによりコヒーレンス・インデックスを生成するステップであって、
    (a.1)前記プロセッサにより実行されたコヒーレンス・インデックス・ロード命令に応じてハードウェアでハッシュ操作を実行してコヒーレンス・インデックスを生成する、
    というサブ・ステップを含む、コヒーレンス・インデックス生成ステップと、
    (b)前記プロセッサ内に含まれないI/Oアダプタ内の翻訳マップであって、I/Oページ番号をメモリ・アドレス・ページ番号へとマッピングするものである前記翻訳マップ前記コヒーレンス・インデックスを格納するステップと、
    (c)データ転送の実行時に前記I/Oアダプタから前記プロセッサに前記コヒーレンス・インデックスを送るステップと、
    (d)前記ステップ(c)における前記I/Oアダプタからの前記コヒーレンス・インデックスを前記プロセッサが受信した際に、該コヒーレンス・インデックスを該プロセッサにより使用して該プロセッサ内のキャッシュ内に更新された関連するデータが存在するか否かを検出し、該プロセッサが該キャッシュ内に更新された関連するデータが存在することを検出した際に、該プロセッサの外部にある主メモリ内の旧いデータではなく前記更新された関連するデータをデータ転送に使用するステップと
    からなる方法。
  9. 前記サブステップ(a.1)において、前記コヒーレンス・インデックス・ロード命令が、コヒーレンス・インデックス・ロード操作、仮想メモリ・オフセット、及びスペース識別子を指定し、該サブステップ(a.1)が、前記仮想メモリ・オフセットからのビット部分集合及び前記スペース識別子からのビット部分集合にハッシュ操作を実行してコヒーレンス・インデックスを生成するステップを含む、請求項8に記載の方法。
  10. 前記サブステップ(a.1)において、前記仮想メモリ・オフセットが第1の汎用レジスタに格納され、前記スペース識別子が第2の汎用レジスタに格納され、前記コヒーレンス・インデックスが汎用ターゲット・レジスタに配置される、請求項9に記載の方法。
  11. 前記サブステップ(a.1)において、前記コヒーレンス・インデックス・ロード命令が、前記第1の汎用レジスタを識別することにより前記仮想メモリ・オフセットを指定し、前記第2の汎用レジスタを識別することにより前記スペース識別子を指定し、及び汎用ターゲット・レジスタを指定する、請求項10に記載の方法。
  12. 前記サブステップ(a.1)において、前記コヒーレンス・インデックス・ロード命令が、ベース・レジスタ、インデックス・レジスタ、選択スペース・レジスタ、及びターゲット・レジスタを指定し、該サブステップ(a.1)が、前記ベース・レジスタ及び前記選択スペース・レジスタに格納された情報から前記スペース識別子を生成するステップと、前記ベース・レジスタに格納された情報及び前記インデックス・レジスタに格納された情報からオフセットを生成するステップと、該オフセットからのビット部分集合及び前記スペース識別子からのビット部分集合にハッシュ操作を実行してコヒーレンス・インデックスを生成するステップとを含む、請求項8に記載の方法。
  13. 前記サブステップ(a.1)において、前記ベース・レジスタが一般にベース値を格納する第1の汎用レジスタであり、前記インデックス・レジスタが一般にインデックス値を格納する第2の汎用レジスタであり、前記ターゲット・レジスタが前記コヒーレンス・インデックスを受信する第3の汎用レジスタである、請求項12に記載の方法。
  14. 前記サブステップ(a.1)において、前記コヒーレンス・インデックス・ロード命令が、コヒーレンス・インデックス・ロード操作と、仮想アドレスを生成するために用いられる少なくとも1つのレジスタとを指定する、請求項8に記載の方法。
  15. プロセッサであって、
    キャッシュと、
    該キャッシュに結合された命令実行手段であって、該プロセッサにより実行される命令に応じて、I/Oページ番号をメモリ・アドレス・ページ番号へとマッピングするI/Oアダプタ内の翻訳マップに格納すべきコヒーレンス・インデックスを生成し、ハードウェアでハッシュ操作を実行してコヒーレンス・インデックスを生成する、命令実行手段とを備えており、
    前記I/Oアダプタが該プロセッサ内に含まれておらず、
    該I/Oアダプタが、データ転送の実行時に前記コヒーレンス・インデックスを該I/Oアダプタから該プロセッサへと送り、該プロセッサが、該コヒーレンス・インデックスを使用して、更新された関連するデータが前記キャッシュ内に存在するか否かを検出し、更新された関連するデータが前記キャッシュ内に存在することを検出した際に、該プロセッサの外部にある主メモリ内の旧いデータではなく前記更新された関連するデータをデータ転送のために使用する、
    プロセッサ。
  16. 前記命令が、コヒーレンス・インデックス・ロード操作、仮想メモリ・オフセット、及びスペース識別子を指定し、前記命令実行手段が、該命令に応じて、前記仮想メモリ・オフセットからのビット部分集合及び前記スペース識別子からのビット部分集合にハッシュ操作を実行してコヒーレンス・インデックスを生成する、請求項15に記載のプロセッサ。
  17. 前記仮想メモリ・オフセットが第1の汎用レジスタに格納され、前記スペース識別子が第2の汎用レジスタに格納され、前記コヒーレンス・インデックスが汎用ターゲット・レジスタに配置される、請求項16に記載のプロセッサ。
  18. 前記命令が、前記第1の汎用レジスタを識別することにより前記仮想メモリ・オフセットを指定し、前記第2の汎用レジスタを識別することにより前記スペース識別子を指定し、及び前記汎用ターゲット・レジスタを指定する、請求項17に記載のプロセッサ。
  19. 前記命令が、ベース・レジスタ、インデックス・レジスタ、選択スペース・レジスタ、及びターゲット・レジスタを指定し、前記命令実行手段が、該命令に応じて、前記ベース・レジスタ及び前記選択スペース・レジスタに格納された情報からスペース識別子を生成し、前記ベース・レジスタに格納された情報及び前記インデックス・レジスタに格納された情報からオフセットを生成し、該オフセットからのビット部分集合及び前記スペース識別子からのビット部分集合にハッシュ操作を実行してコヒーレンス・インデックスを生成する、請求項15に記載のプロセッサ。
  20. 前記ベース・レジスタが一般にベース値を格納する第1の汎用レジスタであり、前記インデックス・レジスタが一般にインデックス値を格納する第2の汎用レジスタであり、前記ターゲット・レジスタが前記コヒーレンス・インデックスを受信する第3の汎用レジスタである、請求項19に記載のプロセッサ。
JP02636295A 1994-02-24 1995-02-15 入力/出力アダプタにより使用されるコヒーレンス・インデックス生成 Expired - Fee Related JP3662619B2 (ja)

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 JPH0822415A (ja) 1996-01-23
JP3662619B2 true 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)

* Cited by examiner, † Cited by third party
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
DE69903707T2 (de) * 1999-02-18 2003-07-10 Texas Instruments Inc Optimierte Hardware-Reinigungsfunktion für einen Daten-Cache-Speicher mit virtuellen Indizes und Tags
US7058667B2 (en) * 2000-12-27 2006-06-06 Microsoft Corporation Method and system for creating and maintaining version-specific properties in a file
US20020083150A1 (en) * 2000-12-27 2002-06-27 Linden Minnick Accessing information from memory
US6598060B2 (en) * 2000-12-27 2003-07-22 Microsoft Corporation Method and system for creating and maintaining version-specific properties in a distributed environment
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
KR20200052528A (ko) * 2018-11-07 2020-05-15 에스케이하이닉스 주식회사 비트 카운터를 이용하는 컴퓨팅 시스템 및 방법

Family Cites Families (11)

* Cited by examiner, † Cited by third party
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
AU665368B2 (en) * 1992-02-27 1996-01-04 Samsung Electronics Co., Ltd. CPU having pipelined instruction unit and effective address calculation unit with retained virtual address capability

Also Published As

Publication number Publication date
US5515522A (en) 1996-05-07
EP0669579A2 (en) 1995-08-30
JPH0822415A (ja) 1996-01-23
EP0669579A3 (en) 1995-11-29
EP0669579B1 (en) 1999-06-02
DE69418852D1 (de) 1999-07-08
DE69418852T2 (de) 1999-12-30

Similar Documents

Publication Publication Date Title
JP3662619B2 (ja) 入力/出力アダプタにより使用されるコヒーレンス・インデックス生成
JP4268332B2 (ja) 仮想アドレスからページ・テーブル・インデックスを計算する方法および装置
JP3924206B2 (ja) 不均一メモリ・アクセス(numa)データ処理システム
JP3640978B2 (ja) ページテーブル中のハッシュアドレスタグを用いたメモリアドレス制御装置
JP3548616B2 (ja) 情報処理装置
US5586297A (en) Partial cache line write transactions in a computing system with a write back cache
JP2618175B2 (ja) キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル
JP2833062B2 (ja) キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置
JP4608484B2 (ja) ストレージの無効化、バッファ・エントリの消去
JP3666689B2 (ja) 仮想アドレス変換方法
JPH0326863B2 (ja)
JPH03194632A (ja) 変換予見にもとづくキャッシュアクセス
US7249225B1 (en) Method and apparatus for supporting read-only objects within an object-addressed memory hierarchy
JP2007048296A (ja) 複数のアドレス・キャッシュ・エントリーを無効にする方法、装置およびシステム
JP2020523682A (ja) 仮想キャッシュにおける仮想および実変換の共有
JP2020523676A (ja) 仮想キャッシュのための変換支援
JP2000227874A (ja) コンピュ―タ・システムにおいてディレクトリ構造を含むメイン・メモリの内容にアドレスするための方法および装置
JP2010134956A (ja) 状況切換え環境中におけるアドレス変換技術
JPH06236353A (ja) マルチプロセッサ・コンピュータ・システムのシステム・メモリの並行性を増大する方法およびシステム
EP0173909B1 (en) Look-aside buffer least recently used marker controller
JPH04213135A (ja) 外部メモリアクセスシステム
JP3618868B2 (ja) 二重モード変換索引バッファを利用したデータ処理システムにおける効率的メモリ管理の方法およびシステム
US6338128B1 (en) System and method for invalidating an entry in a translation unit
JPH0371355A (ja) キヤツシユ検索装置および検索方法
JPH05100956A (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