JPH05324471A - キャッシュ制御装置 - Google Patents

キャッシュ制御装置

Info

Publication number
JPH05324471A
JPH05324471A JP4130442A JP13044292A JPH05324471A JP H05324471 A JPH05324471 A JP H05324471A JP 4130442 A JP4130442 A JP 4130442A JP 13044292 A JP13044292 A JP 13044292A JP H05324471 A JPH05324471 A JP H05324471A
Authority
JP
Japan
Prior art keywords
cache
bit
output port
side input
network side
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
Application number
JP4130442A
Other languages
English (en)
Other versions
JP3309425B2 (ja
Inventor
Hiroaki Hirata
博章 平田
Kozo Kimura
浩三 木村
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP13044292A priority Critical patent/JP3309425B2/ja
Priority to US08/066,709 priority patent/US5535361A/en
Publication of JPH05324471A publication Critical patent/JPH05324471A/ja
Application granted granted Critical
Publication of JP3309425B2 publication Critical patent/JP3309425B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

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/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • G06F12/127Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms
    • 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/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • 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

Abstract

(57)【要約】 【目的】 多重スレッド・プロセッサにおいて、(1)
スレッド間の干渉によるキャッシュ・ヒット率の低下を
防ぎ、(2)キャッシュ・コヒーレンス制御における所
有権取得のサスペンド待ち合わせを実現し、(3)効率
の良いリード・モディファイ・ライト操作機能を実現す
るキャッシュ制御装置を提供する。 【構成】 プロセッサ側入出力ポート12およびネットワ
ーク側入出力ポート13を介してメッセージの授受を行な
うアクセス制御部11と、アクセス制御部11から参照さ
れ、活動体番号フィールド、痕跡ビット、予約ビット、
局所共有ビット、否定ビットを含むキャッシュ管理情報
15を複数格納するディレクトリ部14と、アクセス制御部
11から参照される否定履歴情報17を記憶する否定履歴記
憶部16とを設ける。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はマルチプロセッサ・シス
テムにおいて各プロセッサに付加されるキャッシュを制
御するキャッシュ制御装置に関するものである。
【0002】
【従来の技術】近年、コンピュータなどの情報処理装置
は、複数のプロセッサを用いた並列処理方式を採り入れ
ることで情報処理能力の向上が図られている。
【0003】図3はそのような並列処理を実現するマル
チプロセッサ・システムの構成例を示している。図3に
おいて、31は主記憶装置、32はネットワーク、33
はキャッシュ、34はプロセッサである。
【0004】各プロセッサ34が必要とするデータは主
記憶装置31にあり、頻繁に使用されるデータはそれぞ
れのプライベートなキャッシュ33に一時的に記憶する
ことによって、処理速度の向上を図ることが可能であ
る。
【0005】さて、システム規模が大きくなると、ネッ
トワーク32の構成方式にも依存するが、プロセッサが
主記憶上のデータをアクセスする際の遅延時間も増大す
る。プロセッサがアクセス要求を発してから必要なデー
タがプロセッサに返されるまでプロセッサが待たなけれ
ばならないものとすれば、その間、プロセッサはアイド
ル状態となり、並列処理によっても飛躍的な処理速度の
向上を達成することは不可能である。そこで、このよう
なデータ・アクセス遅延を隠蔽し、スループットを向上
させるアーキテクチャとして、多重スレッド方式が提案
されている(例えば、「プロセッシング オブ ザ 1
7 アニュアル インターナショナルシンポジウム コ
ンピュータ アーキテクチャ」(「Proceedings of the
17thAnnual International Symposiumon Conputer Arc
hitecture」, IEEE, pp.104-114, 1990))。
【0006】各プロセッサでは、あるプログラム(その
実行単位をスレッドと呼ぶ)の実行中にそのスレッドが
キャッシュ・ミスを起こし、遠くの主記憶にアクセスし
なければならない事態に遭遇すると、プロセッサはその
スレッドの実行を中断して別のスレッドの実行を開始
(または再開)する。従って、遠隔主記憶アクセス中も
プロセッサは有用な処理を行なうことができ、スループ
ットは向上する。
【0007】しかし、このような多重スレッド方式を採
用する際のキャッシュの構成および制御方法について、
特別な報告はなされていない。
【0008】
【発明が解決しようとする課題】しかしながら多重スレ
ッド方式において、シングルプロセッサあるいはマルチ
プロセッサ用に提案されている従来構成のキャッシュ制
御装置を用いた場合には、データがキャッシュにロード
されてからそのデータを必要としていたスレッドの実行
が再開されるまでに時間的な間隔が存在するので、その
間に、実行中のスレッドによってそのデータ・ブロック
がリプレースされると、そのデータを必要としていたス
レッドの実行が再開されても再びキャッシュ・ミスを発
生するという問題点を有していた。
【0009】本発明は上記問題点に鑑み、上記のような
スレッド間のアクセス干渉によるキャッシュ・ミスの発
生を防止し、また、並列処理における同期プリミティブ
を効率良く実現するキャッシュ制御装置を提供すること
を目的とする。
【0010】
【課題を解決するための手段】上記課題を解決するため
に、第1の発明は、プロセッサ側入出力ポートとネット
ワーク側入出力ポートとを介してメッセージの授受を行
なうアクセス制御部と、前記アクセス制御部から参照さ
れるキャッシュ管理情報を複数格納するディレクトリ部
とを具備し、前記キャッシュ管理情報は痕跡ビットを含
み、前記アクセス制御部は、前記プロセッサ側入出力ポ
ートからアクセス要求メッセージを入力して前記キャッ
シュ管理情報を検索し、ヒットの場合には前記痕跡ビッ
トをセットし、また、ミスの場合には前記ネットワーク
側入出力ポートから発したフェッチ要求メッセージに対
する肯定応答メッセージを前記ネットワーク側入出力ポ
ートから入力した時点で前記痕跡ビットをリセットする
ことを特徴としている。
【0011】また、第2の発明は、キャッシュ・ブロッ
ク・リプレースメントを行なう場合に前記痕跡ビットが
セットされているキャッシュ・ブロックを置き換え対象
として優先的に選択することを特徴としている。
【0012】また、第3の発明は、前記キャッシュ管理
情報は活動体番号フィールドを含み、キャッシュ・ブロ
ック・リプレースメントを行なう場合には、前記活動体
番号フィールドの値が前記アクセス要求メッセージ中に
含まれる活動体番号と一致するキャッシュ・ブロックの
優先度を低くして置き換え対象を選択することを特徴と
している。
【0013】また、第4の発明は、前記キャッシュ管理
情報は前記活動体番号フィールドに加えて局所共有ビッ
トを含み、キャッシュ・ヒット時には、前記局所共有ビ
ットがリセットされていれば前記アクセス要求メッセー
ジ中に含まれる活動体番号と前記活動体番号フィールド
の値とを比較し、異なっていれば前記局所共有ビットを
セットし、さらに、キャッシュ・ブロック・リプレース
メントを行なう場合には、前記局所共有ビットがリセッ
トされているキャッシュ・ブロックを置き換え対象とし
て優先的に選択することを特徴としている。
【0014】また、第5の発明は、前記キャッシュ管理
情報は、前記痕跡ビットに替えて予約ビットを含み、前
記アクセス制御部は、前記プロセッサ側入出力ポートか
ら書き込み要求メッセージを入力して前記キャッシュ管
理情報を検索し、ヒットの場合には前記予約ビットをセ
ットし、また、ミスの場合には前記ネットワーク側入出
力ポートから発した書き込みフェッチ要求メッセージに
対する肯定応答メッセージを前記ネットワーク側入出力
ポートから入力した時点で前記予約ビットをリセットす
ることを特徴としている。
【0015】また、第6の発明は、前記アクセス制御部
が前記ネットワーク側入出力ポートから書き込み権要求
メッセージを入力した場合、前記予約ビットがセットさ
れていれば肯定応答メッセージを前記ネットワーク側入
出力ポートから出力し、また、前記予約ビットがリセッ
トされていれば否定応答メッセージを前記ネットワーク
側入出力ポートから出力することを特徴としている。
【0016】また、第7の発明は、前記キャッシュ管理
情報は、前記予約ビットに加えて否定ビットを含み、前
記アクセス制御部は、前記ネットワーク側入出力ポート
からの書き込み権要求メッセージに対して否定応答メッ
セージを出力する場合には前記否定ビットをセットし、
また、前記予約ビットをリセット状態からセット状態へ
遷移させる際に前記否定ビットがセットされていれば、
書き込み完了メッセージを前記ネットワーク側入出力ポ
ートから出力することを特徴としている。
【0017】また、第8の発明は、前記アクセス制御部
は、前記プロセッサ側入出力ポートから同期要求メッセ
ージを入力した場合、前記キャッシュ管理情報を検索
し、ヒットの場合には前記予約ビットをリセットし、ミ
スの場合には前記ネットワーク側入出力ポートから発し
た書き込みフェッチ要求メッセージに対する肯定応答メ
ッセージを前記ネットワーク側入出力ポートから入力し
た時点で前記予約ビットをリセットし、また、前記プロ
セッサ側入出力ポートから読み出し要求メッセージを入
力しても前記予約ビットを変更しないことを特徴として
いる。
【0018】また、第9の発明は、プロセッサ側入出力
ポートとネットワーク側入出力ポートとを介してメッセ
ージの授受を行なうアクセス制御部と、前記アクセス制
御部から参照される否定履歴情報を記憶する否定履歴記
憶部とを具備し、前記アクセス制御部は、前記ネットワ
ーク側入出力ポートから否定応答メッセージを入力した
場合にはその情報を前記否定履歴記憶部に記憶し、ま
た、前記ネットワーク側入出力ポートから書き込み完了
メッセージを入力した場合には前記否定履歴記憶部を検
索し、前記書き込み完了メッセージに対応する否定履歴
情報が前記否定履歴記憶部に存在する場合には、前記ネ
ットワーク側入出力ポートから書き込みフェッチ要求メ
ッセージを再出力することを特徴としている。
【0019】
【作用】以上の構成により、第1の発明に係わるキャッ
シュ制御装置においては、キャッシュ管理情報に痕跡ビ
ットを含み、プロセッサ側からのアクセス要求に対して
キャッシュ・ヒットの場合には前記痕跡ビットをセット
し、また、ミスの場合にはデータをキャッシュにロード
した時点で前記痕跡ビットをリセットするため、キャッ
シュ上のデータが実際にアクセスされたかどうかをデー
タ・ブロックごとに記憶することとなる。
【0020】また、第2の発明に係わるキャッシュ制御
装置においては、キャッシュ・ブロック・リプレースメ
ントを行なう場合に前記痕跡ビットがセットされている
キャッシュ・ブロックを置き換え対象として優先的に選
択するため、未アクセスのキャッシュ・ブロックがキャ
ッシュから追い出される可能性が小さくなる。
【0021】また、第3の発明に係わるキャッシュ制御
装置においては、前記キャッシュ管理情報は活動体番号
フィールドを含み、キャッシュ・ブロック・リプレース
メントを行なう場合には、前記活動体番号フィールドの
値が前記アクセス要求メッセージ中に含まれる活動体番
号と一致するキャッシュ・ブロックの優先度を低くして
置き換え対象を選択するため、実行中のスレッドが使用
するキャッシュ・ブロックがキャッシュから追い出され
る可能性が小さくなる。
【0022】また、第4の発明に係わるキャッシュ制御
装置においては、前記キャッシュ管理情報は局所共有ビ
ットを含み、キャッシュ・ヒット時には、前記局所共有
ビットがリセットされていれば前記アクセス要求メッセ
ージ中に含まれる活動体番号と前記活動体番号フィール
ドの値とを比較し、異なっていれば前記局所共有ビット
をセットし、さらに、キャッシュ・ブロック・リプレー
スメントを行なう場合には、前記局所共有ビットがリセ
ットされているキャッシュ・ブロックを置き換え対象と
して優先的に選択するため、複数のスレッドがアクセス
する共有ブロックがキャッシュから追い出される可能性
が小さくなる。
【0023】また、第5の発明に係わるキャッシュ制御
装置においては、前記キャッシュ管理情報に予約ビット
を含み、プロセッサ側からの書き込み要求に対してキャ
ッシュ・ヒットの場合には前記予約ビットをセットし、
また、ミスの場合にはデータをキャッシュにロードした
時点で前記予約ビットをリセットするため、キャッシュ
上のデータに実際に書き込みが行なわれたかどうかをデ
ータ・ブロックごとに記憶することとなる。
【0024】また、第6の発明に係わるキャッシュ制御
装置においては、ネットワーク側からの書き込み権要求
に対して、前記予約ビットがセットされていれば肯定応
答を行ない、前記予約ビットがリセットされていれば否
定応答を行うため、未書き込みのデータ・ブロックに対
するキャッシュ・コヒーレンス維持のための書き込み権
(所有権)の移動が禁止されることとなる。
【0025】また、第7の発明に係わるキャッシュ制御
装置においては、前記キャッシュ管理情報に否定ビット
を含み、ネットワーク側からの書き込み権要求に対して
否定応答を行なう場合には前記否定ビットをセットし、
前記予約ビットをリセット状態からセット状態へ遷移さ
せる際に前記否定ビットがセットされていれば書き込み
の完了を通知するため、他のプロセッサ(キャッシュ)
はいつの時点で書き込み権の移動禁止が解除されたかを
知ることとなる。
【0026】また、第8の発明に係わるキャッシュ制御
装置においては、プロセッサ側からの同期要求に対して
キャッシュ・ヒットの場合には前記予約ビットをリセッ
トし、ミスの場合にはデータをキャッシュにロードした
時点で前記予約ビットをリセットし、また、プロセッサ
側からの読み出し要求に対しては前記予約ビットを変更
しないため、同期要求によってデータ・ブロック書き込
み権移動を強制的に禁止するとともにそのデータ・ブロ
ックを読み出しても書き込み権移動禁止は解除されない
こととなる。
【0027】また、第9の発明に係わるキャッシュ制御
装置においては、アクセス要求に対して否定応答が返さ
れた場合にはこれを記憶し、書き込み完了通知を受けた
時点で再びアクセス要求を行なうため、書き込み権の移
動が禁止されている間はアクセス要求を控え、これによ
ってネットワークのトラフィック量が減少することとな
る。
【0028】
【実施例】以下本発明のキャッシュ制御装置の一実施例
について、図面を参照しながら説明する。
【0029】図1は本発明の実施例におけるキャッシュ
制御装置の構成を示すものである。図1において、11
はアクセス制御部、12はプロセッサ側入出力ポート、
13はネットワーク側入出力ポート、14はディレクト
リ部、15はキャッシュ管理情報、16は否定履歴記憶
部、17は否定履歴情報である。
【0030】以上のように構成されたキャッシュ制御装
置について、以下図面を用いてその動作を説明する。
【0031】まず、図2はキャッシュ管理情報15のフ
ィールド構成を示すものであって、21は活動体番号フ
ィールド、22は痕跡ビット、23は予約ビット、24
は局所共有ビット、25は否定ビットである。
【0032】キャッシュ管理情報15には、ここに示し
たフィールドの他、キャッシュ検索のためのアドレス・
タグはもちろんのこと、汚れビット(dirty bit)やリ
プレースのためのLRU(Least Recently Used)ビッ
ト、およびキャッシュ・コヒーレンシ維持のための諸ビ
ットを含むが、これらについては本発明と直接の関係が
ないため、省略している。
【0033】図1において、ディレクトリ部14は複数
のキャッシュ管理情報15を記憶するメモリであり、各
キャッシュ管理情報15は各キャッシュ・ブロックに対
応して用意されている。
【0034】また、否定履歴記憶部16は複数の否定履
歴情報17を記憶するメモリである。また、アクセス制
御部11はプロセッサ側入出力ポート12およびネット
ワーク側入出力ポート13を介して、外部との間でメッ
セージの授受を行なう。プロセッサ側入出力ポート12
で入力するメッセージには、アクセス要求メッセージと
同期要求メッセージとがある。また、出力メッセージに
はアクセス状態メッセージと活動状態メッセージとがあ
る。
【0035】一方、ネットワーク側入出力ポート13で
入出力するメッセージには、フェッチ要求メッセージ、
書き込み完了メッセージ、肯定応答メッセージ、否定応
答メッセージがある。
【0036】以下、これらのメッセージについて簡単に
説明する。アクセス要求メッセージには、読み出し要求
メッセージと書き込み要求メッセージとの2種がある。
読み出し要求メッセージはプロセッサ上でのロード命令
の実行によってプロセッサから出力されるものであり、
また、書き込み要求メッセージはストア命令の実行によ
って出力されるものである。
【0037】同期要求メッセージは、特殊な同期命令の
実行によってプロセッサから出力されるものである。
【0038】アクセス状態メッセージは、キャッシュ検
索の結果をプロセッサに報告するためのものであり、
「ヒット」と「ミス」のいずれかの値をとる。
【0039】活動状態メッセージはプロセッサがスレッ
ド状態の管理に用いる情報を提供するものであり、「中
断」と「再開」のいずれかの値をとる。プロセッサがア
クセス制御部11から「中断」の活動状態メッセージを
受け取ると、プロセッサは実行中のスレッドを待ち状態
に遷移させ、別のレディ状態のスレッドの実行を開始す
る。また、「再開」の活動状態メッセージを受け取った
場合には、プロセッサは待ち状態においてあったスレッ
ドをレディ状態に遷移させる。本実施例では、簡単のた
め、アクセス状態メッセージが「ミス」のときには活動
状態メッセージに「中断」を出力するものと仮定する。
【0040】フェッチ要求メッセージには、読み出しフ
ェッチ要求メッセージと書き込みフェッチ要求メッセー
ジとの2種がある。読み出しフェッチ要求メッセージは
読み出し目的でデータをキャッシュにロードすることを
主記憶または他のキャッシュ制御装置に要求・通知する
ものであり、また、書き込みフェッチ要求メッセージは
書き込み目的でデータをキャッシュにロードすることを
要求・通知するものである。特に、他のキャッシュ制御
装置からの書き込みフェッチ要求メッセージを書き込み
権要求メッセージと呼ぶことにする。
【0041】書き込み完了メッセージは、他のプロセッ
サが自キャッシュ上のデータにアクセスしてよいことを
知らせるためのものである。
【0042】肯定応答メッセージは他のキャッシュ制御
装置からのフェッチ要求メッセージに対して肯定(許
可)応答を行なうものである。逆に、否定応答メッセー
ジはそれらのメッセージに対して否定(拒絶)応答を行
なうものである。
【0043】さて、アクセス制御部11は、外部からの
メッセージ入力により動作を開始する。以下、それぞれ
のメッセージ入力による動作およびリプレース処理時の
動作について詳述する。
【0044】[読み出し要求メッセージ入力時の動作]
アクセス制御部11はディレクトリ部14中のキャッシ
ュ管理情報15を検索し、キャッシュ・ヒットの場合に
は、痕跡ビット22をセットし、アクセス状態メッセー
ジとして「ヒット」を出力する。また、読み出し要求メ
ッセージ中に含まれるスレッド番号と活動体番号フィー
ルド21に記憶されている番号とが異なっていれば局所
共有ビット24をセットする。
【0045】一方、キャッシュ・ミスの場合には、読み
出しフェッチ要求メッセージを出力する。また、アクセ
ス状態メッセージとして「ミス」を、活動状態メッセー
ジとして「中断」をそれぞれ出力する。
【0046】[書き込み要求メッセージ入力時の動作]
アクセス制御部11はディレクトリ部14中のキャッシ
ュ管理情報15を検索し、キャッシュ・ヒットの場合に
は、痕跡ビット22および予約ビット23を共にセット
し、アクセス状態メッセージとして「ヒット」を出力す
る。また、書き込み要求メッセージ中に含まれるスレッ
ド番号と活動体番号フィールド21に記憶されている番
号とが異なっていれば局所共有ビット24をセットす
る。さらに、否定ビット25がセットされている場合に
は否定ビット25をリセットするとともに書き込み完了
メッセージを出力する。
【0047】一方、キャッシュ・ミスの場合には、書き
込みフェッチ要求メッセージを出力する。また、アクセ
ス状態メッセージとして「ミス」を、活動状態メッセー
ジとして「中断」をそれぞれ出力する。
【0048】ここで、キャッシュ・ヒットとは、単にデ
ータがキャッシュ上に存在するだけでなく、プロセッサ
(キャッシュ)がそのデータ・ブロックに対する書き込
み権を有していることを意味する。つまり、書き込み時
のキャッシュのヒット/ミスはキャッシュ・コヒーレン
ス制御を含めて考えるものとする点に注意されたい。
【0049】[読み出しフェッチ要求メッセージ入力時
の動作]この場合のアクセス制御部11の動作はキャッ
シュ・コヒーレンス制御方式によって規定されるもので
あり、本発明の範囲に含まれるものではないので省略す
る。
【0050】[書き込み権要求メッセージ入力時の動
作]アクセス制御部11はディレクトリ部14中のキャ
ッシュ管理情報15を検索し、キャッシュ・ヒットの場
合には、予約ビット23の値を調べ、予約ビット23が
リセットされていれば否定ビット25をセットするとと
もに否定応答メッセージを出力する。
【0051】予約ビット23がセットされている場合の
動作の大部分はキャッシュ・コヒーレンス制御方式によ
って規定されるものであり、本発明の範囲に含まれるも
のではないので省略するが、結果的には肯定応答メッセ
ージを出力する。
【0052】また、キャッシュ・ミスの場合には、そこ
で処理を終了する。 [肯定応答メッセージ入力時の動作]肯定応答メッセー
ジは、キャッシュ制御装置が出力したフェッチ要求メッ
セージに対して、キャッシュ・コヒーレンス制御をも含
めて、肯定的な応答が返されたことを意味する。従っ
て、所要のデータ・ブロックをキャッシュ上にロード
し、キャッシュ管理情報15を初期化する。また、フェ
ッチ要求メッセージ出力の原因をつくったスレッド(ア
クセス要求を行なったスレッド)の番号とともに「再
開」の活動状態メッセージをプロセッサ側入出力ポート
12から出力する。
【0053】ここで、キャッシュ管理情報15の初期化
には、活動体番号フィールド21にフェッチ要求メッセ
ージ出力の原因をつくったスレッドの番号を記録し、痕
跡ビット22、予約ビット23、局所共有ビット24、
否定ビット25をすべてリセットすることを含む。ただ
し、予約ビット23のリセットに関しては、出力したフ
ェッチ要求メッセージが書き込みフェッチ要求メッセー
ジであった場合にのみ意味を有する。
【0054】データのキャッシュへのロード時にリプレ
ースの問題が生じる場合のアクセス制御部11の動作に
ついては後述する。
【0055】[否定応答メッセージ入力時の動作]否定
応答メッセージは、キャッシュ制御装置が出力したフェ
ッチ要求メッセージに対して、フェッチ要求が拒絶され
たことを意味する。
【0056】そこで、アクセス制御部11はそのフェッ
チ要求メッセージを否定履歴情報17として否定履歴記
憶部16に記憶する。
【0057】[書き込み完了メッセージ入力時の動作]
書き込み完了メッセージを受け取ると、アクセス制御部
11はその書き込み完了メッセージに対応する否定履歴
情報17が否定履歴記憶部16に存在するかどうかを調
べる。
【0058】その結果、存在していれば否定履歴情報1
7からフェッチ要求メッセージを生成して出力し、否定
履歴情報17を否定履歴記憶部16から削除する。
【0059】また、否定履歴情報17が否定履歴記憶部
16に存在しない場合にはそこで処理を終了する。
【0060】[同期要求メッセージ入力時の動作]アク
セス制御部11はディレクトリ部14中のキャッシュ管
理情報15を検索し、キャッシュ・ヒットの場合には、
痕跡ビット22および予約ビット23を共にリセット
し、アクセス状態メッセージとして「ヒット」を出力す
る。
【0061】一方、キャッシュ・ミスの場合には、書き
込みフェッチ要求メッセージを出力する。また、アクセ
ス状態メッセージとして「ミス」を、活動状態メッセー
ジとして「中断」をそれぞれ出力する。
【0062】ここで、キャッシュ・ヒットとは、書き込
み要求メッセージ入力時の動作の場合と同様、単にデー
タがキャッシュ上に存在するだけでなく、プロセッサ
(キャッシュ)がそのデータ・ブロックに対する書き込
み権を有していることを意味する。
【0063】さて、本発明によって実現できる同期プリ
ミティブは不可分なリード・モディファイ・ライト操作
である。プロセッサ上で、同期命令、ロード命令、演算
命令、ストア命令をこの順に実行すると、キャッシュ制
御装置には同期要求メッセージ、読み出し要求メッセー
ジ、書き込み要求メッセージの順でメッセージが与えら
れる。同期要求メッセージの処理で予約ビット23がリ
セットされるので、以後、他のキャッシュが書き込みあ
るいは同期目的でそのデータ・ブロックにアクセスする
ことはできない。従って、他のプロセッサからは、同期
命令とロード命令とが不可分に連続して実行されるよう
にみえる。読み出し要求メッセージの処理では予約ビッ
ト23の値を変更しないので、ロード命令からストア命
令までの間も不可分に連続して実行される。書き込み要
求メッセージの処理で予約ビット23がセットされるの
で、以後は、他のキャッシュが書き込みあるいは同期目
的でそのデータ・ブロックにアクセスすることができ
る。
【0064】[リプレース時の動作]キャッシュ領域が
不足する場合には、既にキャッシュ上に存在するデータ
を追い出して、新たにデータをロードする領域を確保す
る。
【0065】本実施例では、キャッシュは2ウェイのセ
ット・アソシアティブ方式で構成されており、基本とす
る置き換えアルゴリズムはLRUを採用する。
【0066】インデキシングの結果、2つのウェイの両
方のブロックが使用中であるとき、アクセス制御部11
は表1に示すポリシーに従って追い出すブロックを決定
する。
【0067】
【表1】
【0068】表1において、Nはアクセス要求メッセー
ジに含まれるスレッド番号と活動体番号フィールド21
の値との比較結果を表しており、「1」は一致、「0」
は不一致を示す。Rは予約ビット23、Pは痕跡ビット
22、Sは局所共有ビット24をそれぞれ表しており、
いずれのビットも「1」がセット、「0」がリセットを
示す。LはLRUのためのビットで、その値は最近アク
セスされた方を「1」、そうでない方を「0」としてい
る。また、記号「*」は「0」、「1」のいずれでもよ
いことを表しており、記号「=」は2つのウェイの対応
するビットの値が等しいことを表している。
【0069】アクセス制御部11は、まず、Nについて
調べ、2つのウェイでその値が異なるときはN=0のウ
ェイのブロックを追い出すものと決定する。スレッドの
切り替えには多少のオーバヘッドがかかるので、実行中
のスレッドが使用するデータを追い出さないようにして
スレッド切り替えの多発を防ぐ。
【0070】Nの値が等しい場合には、Rについて調
べ、2つのウェイでその値が異なるときはR=1のウェ
イのブロックを追い出すものと決定する。さらにRの値
も等しい場合には、Pについて調べ、2つのウェイでそ
の値が異なるときはP=1のウェイのブロックを追い出
すものと決定する。Pがリセットされていることは、そ
のブロックがまだアクセスされていないことを示してお
り、そのようなブロックを追い出すと、その同一のブロ
ックに対して再びキャッシュ・ミスが発生するため、既
にアクセスされた形跡のあるブロックを選択する。
【0071】Pの値も等しい場合には、Sについて調
べ、2つのウェイでその値が異なるときはS=0のウェ
イのブロックを追い出すものと決定する。S=1のブロ
ックは複数のスレッドがアクセスする性質のものである
ため、このようなブロックをキャッシュ上に残すことに
よって、ヒット率の向上を図る。
【0072】N、R、P、Sのすべてが等しい場合のブ
ロックの選択方針はLRU方式を採用する従来のキャッ
シュ制御装置の選択方針と同一である。L=0の方のブ
ロックを追い出すものと決定する。
【0073】以上のように、本実施例によれば、プロセ
ッサ側入出力ポートとネットワーク側入出力ポートとを
介してメッセージの授受を行なうアクセス制御部と、前
記アクセス制御部から参照されるキャッシュ管理情報を
複数格納するディレクトリ部と、前記アクセス制御部か
ら参照される否定履歴情報を記憶する否定履歴記憶部と
を具備し、前記キャッシュ管理情報は痕跡ビットを含
み、前記アクセス制御部は、前記プロセッサ側入出力ポ
ートからアクセス要求メッセージを入力して前記キャッ
シュ管理情報を検索し、ヒットの場合には前記痕跡ビッ
トをセットし、また、ミスの場合には前記ネットワーク
側入出力ポートから発したフェッチ要求メッセージに対
する肯定応答メッセージを前記ネットワーク側入出力ポ
ートから入力した時点で前記痕跡ビットをリセットする
ことにより、キャッシュ上のデータが実際にアクセスさ
れたかどうかを容易に検出することができる。
【0074】また、前記キャッシュ管理情報は予約ビッ
トを含み、前記アクセス制御部は、前記プロセッサ側入
出力ポートから書き込み要求メッセージを入力して前記
キャッシュ管理情報を検索し、ヒットの場合には前記予
約ビットをセットし、また、ミスの場合には前記ネット
ワーク側入出力ポートから発した書き込みフェッチ要求
メッセージに対する肯定応答メッセージを前記ネットワ
ーク側入出力ポートから入力した時点で前記予約ビット
をリセットすることにより、キャッシュ上のデータ・ブ
ロックに実際に書き込みが行なわれたかどうかを容易に
検出することができる。
【0075】また、前記アクセス制御部が前記ネットワ
ーク側入出力ポートから書き込み権要求メッセージを入
力した場合、前記予約ビットがセットされていれば肯定
応答メッセージを前記ネットワーク側入出力ポートから
出力し、また、前記予約ビットがリセットされていれば
否定応答メッセージを前記ネットワーク側入出力ポート
から出力することにより、キャッシュ・コヒーレンス維
持のための書き込み権移動の制御を効率的に行なうこと
ができる。
【0076】また、前記キャッシュ管理情報は否定ビッ
トを含み、前記アクセス制御部は、前記ネットワーク側
入出力ポートからの書き込み権要求メッセージに対して
否定応答メッセージを出力する場合には前記否定ビット
をセットし、また、前記予約ビットをリセット状態から
セット状態へ遷移させる際に前記否定ビットがセットさ
れていれば、書き込み完了メッセージを前記ネットワー
ク側入出力ポートから出力することにより、不要な書き
込み権要求メッセージの出力を抑止し、各プロセッサ
(キャッシュ)からの書き込み権取得の要求を効率的に
調停することができる。
【0077】また、前記アクセス制御部は、前記プロセ
ッサ側入出力ポートから同期要求メッセージを入力した
場合、前記キャッシュ管理情報を検索し、ヒットの場合
には前記予約ビットをリセットし、ミスの場合には前記
ネットワーク側入出力ポートから発した書き込みフェッ
チ要求メッセージに対する肯定応答メッセージを前記ネ
ットワーク側入出力ポートから入力した時点で前記予約
ビットをリセットし、また、前記プロセッサ側入出力ポ
ートから読み出し要求メッセージを入力しても前記予約
ビットを変更しないことにより、アトミックなリード・
モディファイ・ライト操作を効率良く実現することがで
きる。
【0078】また、前記アクセス制御部は、前記ネット
ワーク側入出力ポートから否定応答メッセージを入力し
た場合にはその情報を前記否定履歴記憶部に記憶し、ま
た、前記ネットワーク側入出力ポートから書き込み完了
メッセージを入力した場合には前記否定履歴記憶部を検
索し、前記書き込み完了メッセージに対応する否定履歴
情報が前記否定履歴記憶部に存在する場合には、前記ネ
ットワーク側入出力ポートから書き込みフェッチ要求メ
ッセージを再出力することにより、不要な書き込み権要
求メッセージの出力を控え、ネットワークのトラフィッ
クを軽減することができる。
【0079】また、キャッシュ・ブロック・リプレース
メントを行なう場合には、前記予約ビットがセットされ
ているキャッシュ・ブロックを置き換え対象として優先
的に選択し、また、前記痕跡ビットがセットされている
キャッシュ・ブロックを置き換え対象として優先的に選
択することにより、未アクセスのキャッシュ・ブロック
の追い出しを抑止してキャッシュ・ヒット率を向上さ
せ、また、コンテクスト・スイッチ回数を減らしてプロ
セッサ資源の利用率を高めることができる。また、前記
キャッシュ管理情報は活動体番号フィールドを含み、キ
ャッシュ・ブロック・リプレースメントを行なう場合に
は、前記活動体番号フィールドの値が前記アクセス要求
メッセージ中に含まれる活動体番号と一致するキャッシ
ュ・ブロックの優先度を低くして置き換え対象を選択す
ることにより、実行中のスレッドが使用するデータを追
い出さないようにして、キャッシュのミス・ヒットおよ
びスレッド切り替えの多発を防ぐことができる。
【0080】また、前記キャッシュ管理情報は前記活動
体番号フィールドに加えて局所共有ビットを含み、キャ
ッシュ・ヒット時には、前記局所共有ビットがリセット
されていれば前記アクセス要求メッセージ中に含まれる
活動体番号と前記活動体番号フィールドの値とを比較
し、異なっていれば前記局所共有ビットをセットし、ま
た、キャッシュ・ブロック・リプレースメントを行なう
場合には、前記局所共有ビットがリセットされているキ
ャッシュ・ブロックを置き換え対象として優先的に選択
することにより、複数のスレッドがアクセスするブロッ
クをキャッシュ上に残してヒット率を向上させることが
できる。
【0081】本発明において、予約ビットは、痕跡ビッ
トを書き込みアクセスに対してのみ限定して使用するも
のであるが、このような限定を行なうことにより、キャ
ッシュ・ブロック・リプレースのみでなく、キャッシュ
・コヒーレンス制御においても有効な効果を生むもので
ある。
【0082】また、予約ビットは、書き込みが行なわれ
たかどうかを記憶するという点で、いわゆる汚れビット
と類似するものであるが、本質的には全く異なる。汚れ
ビットはキャッシュ・ブロックのメモリへの書き戻しを
省略できるか否かを指示するものであり、本実施例で示
した予約ビットに関する操作と照らし合わせれば、予約
ビットと汚れビットとを1つのビットで代用できないこ
とは明らかである。
【0083】なお、本発明は、キャッシュ・コヒーレン
ス制御や多重スレッド方式、および置き換えアルゴリズ
ムと深く係わりながらも、本質的にはそれらの技術と直
交する独立の内容を有するものであり、例えば、既に報
告されている種々のキャッシュ・コヒーレンス制御方式
と組み合わせて使用することができる。従って、本発明
は上記実施例に限定されるものではなく、本発明の趣旨
に基づいて種々の変形が可能であり、これらを本発明の
範囲から除外するものではない。
【0084】
【発明の効果】以上のように本発明は、プロセッサ側入
出力ポートとネットワーク側入出力ポートとを介してメ
ッセージの授受を行なうアクセス制御部と、前記アクセ
ス制御部から参照され、活動体番号フィールド、痕跡ビ
ット、予約ビット、局所共有ビット、否定ビットを含む
キャッシュ管理情報を複数格納するディレクトリ部と、
前記アクセス制御部から参照される否定履歴情報を記憶
する否定履歴記憶部とを設けることにより、多重スレッ
ド処理プロセッサにおけるスレッド間のアクセス干渉に
よるキャッシュ・ミスの発生を防止してキャッシュ・ヒ
ット率を向上し、また、キャッシュ・コヒーレンス制御
における無駄なメッセージ通信を排除してプロセッサ資
源およびプロセッサ間ネットワーク資源を有効に利用
し、また、効率の良いリード・モディファイ・ライト操
作を実現し、これらの結果、マルチプロセッサ・システ
ムのスループットを向上して並列プログラムの実行速度
を短縮することができるといった優れた効果を奏する。
【図面の簡単な説明】
【図1】本発明の一実施例におけるキャッシュ制御装置
の構成図
【図2】本発明の実施例におけるキャッシュ管理情報の
フィールド構成図
【図3】本発明が対象とするマルチプロセッサ・システ
ムの構成例を示した図
【符号の説明】
11 アクセス制御部 12 プロセッサ側入出力ポート 13 ネットワーク側入出力ポート 14 ディレクトリ部 15 キャッシュ管理情報 16 否定履歴記憶部 17 否定履歴情報 21 活動体番号フィールド 22 痕跡ビット 23 予約ビット 24 局所共有ビット 25 否定ビット 31 主記憶装置 32 ネットワーク 33 キャッシュ 34 プロセッサ

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】プロセッサ側入出力ポートとネットワーク
    側入出力ポートとを介してメッセージの授受を行なうア
    クセス制御部と、前記アクセス制御部から参照されるキ
    ャッシュ管理情報を複数格納するディレクトリ部とを具
    備し、前記キャッシュ管理情報は痕跡ビットを含み、前
    記アクセス制御部は、前記プロセッサ側入出力ポートか
    らアクセス要求メッセージを入力して前記キャッシュ管
    理情報を検索し、ヒットの場合には前記痕跡ビットをセ
    ットし、ミスの場合には前記ネットワーク側入出力ポー
    トから発したフェッチ要求メッセージに対する肯定応答
    メッセージを前記ネットワーク側入出力ポートから入力
    した時点で前記痕跡ビットをリセットすることを特徴と
    するキャッシュ制御装置。
  2. 【請求項2】キャッシュ・ブロック・リプレースメント
    を行なう場合には、痕跡ビットがセットされているキャ
    ッシュ・ブロックを置き換え対象として優先的に選択す
    ることを特徴とする請求項1記載のキャッシュ制御装
    置。
  3. 【請求項3】キャッシュ管理情報は、活動体番号フィー
    ルドを含み、キャッシュ・ブロック・リプレースメント
    を行なう場合には、活動体番号フィールドの値がアクセ
    ス要求メッセージ中に含まれる活動体番号と一致するキ
    ャッシュ・ブロックの優先度を低くして置き換え対象を
    選択することを特徴とする請求項2記載のキャッシュ制
    御装置。
  4. 【請求項4】キャッシュ管理情報は、活動体番号フィー
    ルドに加えて局所共有ビットを含み、キャッシュ・ヒッ
    ト時には、前記局所共有ビットがリセットされていれば
    アクセス要求メッセージ中に含まれる活動体番号と前記
    活動体番号フィールドの値とを比較し、異なっていれば
    前記局所共有ビットをセットすることを特徴とする請求
    項3記載のキャッシュ制御装置。
  5. 【請求項5】キャッシュ・ブロック・リプレースメント
    を行なう場合には、局所共有ビットがリセットされてい
    るキャッシュ・ブロックを置き換え対象として優先的に
    選択することを特徴とする請求項4記載のキャッシュ制
    御装置。
  6. 【請求項6】キャッシュ管理情報は、痕跡ビットに替え
    て予約ビットを含み、アクセス制御部は、プロセッサ側
    入出力ポートから書き込み要求メッセージを入力して前
    記キャッシュ管理情報を検索し、ヒットの場合には前記
    予約ビットをセットし、ミスの場合には前記ネットワー
    ク側入出力ポートから発した書き込みフェッチ要求メッ
    セージに対する肯定応答メッセージを前記ネットワーク
    側入出力ポートから入力した時点で前記予約ビットをリ
    セットすることを特徴とする請求項1記載のキャッシュ
    制御装置。
  7. 【請求項7】キャッシュ・ブロック・リプレースメント
    を行なう場合には、予約ビットがセットされているキャ
    ッシュ・ブロックを置き換え対象として優先的に選択す
    ることを特徴とする請求項6記載のキャッシュ制御装
    置。
  8. 【請求項8】アクセス制御部がネットワーク側入出力ポ
    ートから書き込み権要求メッセージを入力した場合、予
    約ビットがセットされていれば肯定応答メッセージを前
    記ネットワーク側入出力ポートから出力し、前記予約ビ
    ットがリセットされていれば否定応答メッセージを前記
    ネットワーク側入出力ポートから出力することを特徴と
    する請求項6記載のキャッシュ制御装置。
  9. 【請求項9】キャッシュ管理情報は、予約ビットに加え
    て否定ビットを含み、アクセス制御部は、ネットワーク
    側入出力ポートからの書き込み権要求メッセージに対し
    て否定応答メッセージを出力する場合には前記否定ビッ
    トをセットし、前記予約ビットをリセット状態からセッ
    ト状態へ遷移させる際に前記否定ビットがセットされて
    いれば、書き込み完了メッセージを前記ネットワーク側
    入出力ポートから出力することを特徴とする請求項8記
    載のキャッシュ制御装置。
  10. 【請求項10】アクセス制御部は、プロセッサ側入出力
    ポートから同期要求メッセージを入力した場合、キャッ
    シュ管理情報を検索し、ヒットの場合には予約ビットを
    リセットし、ミスの場合には前記ネットワーク側入出力
    ポートから発した書き込みフェッチ要求メッセージに対
    する肯定応答メッセージを前記ネットワーク側入出力ポ
    ートから入力した時点で前記予約ビットをリセットし、
    また、前記プロセッサ側入出力ポートから読み出し要求
    メッセージを入力しても前記予約ビットを変更しないこ
    とを特徴とする請求項6記載のキャッシュ制御装置。
  11. 【請求項11】プロセッサ側入出力ポートとネットワー
    ク側入出力ポートとを介してメッセージの授受を行なう
    アクセス制御部と、前記アクセス制御部から参照される
    否定履歴情報を記憶する否定履歴記憶部とを具備し、前
    記アクセス制御部は、前記ネットワーク側入出力ポート
    から否定応答メッセージを入力した場合にはその情報を
    前記否定履歴記憶部に記憶し、前記ネットワーク側入出
    力ポートから書き込み完了メッセージを入力した場合に
    は前記否定履歴記憶部を検索し、前記書き込み完了メッ
    セージに対応する否定履歴情報が前記否定履歴記憶部に
    存在する場合には、前記ネットワーク側入出力ポートか
    ら書き込みフェッチ要求メッセージを再出力することを
    特徴とするキャッシュ制御装置。
JP13044292A 1992-05-22 1992-05-22 キャッシュ制御装置 Expired - Lifetime JP3309425B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP13044292A JP3309425B2 (ja) 1992-05-22 1992-05-22 キャッシュ制御装置
US08/066,709 US5535361A (en) 1992-05-22 1993-05-24 Cache block replacement scheme based on directory control bit set/reset and hit/miss basis in a multiheading multiprocessor environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP13044292A JP3309425B2 (ja) 1992-05-22 1992-05-22 キャッシュ制御装置

Publications (2)

Publication Number Publication Date
JPH05324471A true JPH05324471A (ja) 1993-12-07
JP3309425B2 JP3309425B2 (ja) 2002-07-29

Family

ID=15034345

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13044292A Expired - Lifetime JP3309425B2 (ja) 1992-05-22 1992-05-22 キャッシュ制御装置

Country Status (2)

Country Link
US (1) US5535361A (ja)
JP (1) JP3309425B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088788A (en) * 1996-12-27 2000-07-11 International Business Machines Corporation Background completion of instruction and associated fetch request in a multithread processor
WO2008155827A1 (ja) * 2007-06-20 2008-12-24 Fujitsu Limited キャッシュ制御装置及び制御方法
JP2010134584A (ja) * 2008-12-03 2010-06-17 Nec Corp メモリ管理装置、メモリ管理方法およびプログラム
JP2011141831A (ja) * 2010-01-08 2011-07-21 Toshiba Corp マルチコアシステム

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5659784A (en) * 1994-01-28 1997-08-19 Nec Corporation Multi-processor system having communication register modules using test-and-set request operation for synchronizing communications
US5933627A (en) * 1996-07-01 1999-08-03 Sun Microsystems Thread switch on blocked load or store using instruction thread field
JP2000515657A (ja) * 1996-08-02 2000-11-21 トランソフト コーポレイション 共有資源の分散制御を可能にする方法と装置
US6049866A (en) * 1996-09-06 2000-04-11 Silicon Graphics, Inc. Method and system for an efficient user mode cache manipulation using a simulated instruction
JP3139392B2 (ja) * 1996-10-11 2001-02-26 日本電気株式会社 並列処理システム
US5961639A (en) * 1996-12-16 1999-10-05 International Business Machines Corporation Processor and method for dynamically inserting auxiliary instructions within an instruction stream during execution
US6098156A (en) * 1997-07-22 2000-08-01 International Business Machines Corporation Method and system for rapid line ownership transfer for multiprocessor updates
US6098152A (en) * 1997-10-17 2000-08-01 International Business Machines Corporation Method and apparatus for miss sequence cache block replacement utilizing a most recently used state
US6212544B1 (en) 1997-10-23 2001-04-03 International Business Machines Corporation Altering thread priorities in a multithreaded processor
US6076157A (en) * 1997-10-23 2000-06-13 International Business Machines Corporation Method and apparatus to force a thread switch in a multithreaded processor
US6105051A (en) * 1997-10-23 2000-08-15 International Business Machines Corporation Apparatus and method to guarantee forward progress in execution of threads in a multithreaded processor
US6697935B1 (en) 1997-10-23 2004-02-24 International Business Machines Corporation Method and apparatus for selecting thread switch events in a multithreaded processor
US6567839B1 (en) 1997-10-23 2003-05-20 International Business Machines Corporation Thread switch control in a multithreaded processor system
US6061710A (en) * 1997-10-29 2000-05-09 International Business Machines Corporation Multithreaded processor incorporating a thread latch register for interrupt service new pending threads
US6263404B1 (en) * 1997-11-21 2001-07-17 International Business Machines Corporation Accessing data from a multiple entry fully associative cache buffer in a multithread data processing system
US6256775B1 (en) 1997-12-11 2001-07-03 International Business Machines Corporation Facilities for detailed software performance analysis in a multithreaded processor
US6018759A (en) * 1997-12-22 2000-01-25 International Business Machines Corporation Thread switch tuning tool for optimal performance in a computer processor
US6016542A (en) * 1997-12-31 2000-01-18 Intel Corporation Detecting long latency pipeline stalls for thread switching
US6205519B1 (en) * 1998-05-27 2001-03-20 Hewlett Packard Company Cache management for a multi-threaded processor
US6209066B1 (en) * 1998-06-30 2001-03-27 Sun Microsystems, Inc. Method and apparatus for memory allocation in a multi-threaded virtual machine
US6269425B1 (en) * 1998-08-20 2001-07-31 International Business Machines Corporation Accessing data from a multiple entry fully associative cache buffer in a multithread data processing system
US6506264B1 (en) * 1998-12-18 2003-01-14 Dowa Mining Co., Ltd. Ferromagnetic powder
US6574725B1 (en) * 1999-11-01 2003-06-03 Advanced Micro Devices, Inc. Method and mechanism for speculatively executing threads of instructions
US6799247B1 (en) 2001-08-23 2004-09-28 Cisco Technology, Inc. Remote memory processor architecture
US20030097582A1 (en) * 2001-11-19 2003-05-22 Yves Audebert Method and system for reducing personal security device latency
US6990557B2 (en) * 2002-06-04 2006-01-24 Sandbridge Technologies, Inc. Method and apparatus for multithreaded cache with cache eviction based on thread identifier
US6912623B2 (en) * 2002-06-04 2005-06-28 Sandbridge Technologies, Inc. Method and apparatus for multithreaded cache with simplified implementation of cache replacement policy
US20040186823A1 (en) * 2003-02-12 2004-09-23 International Business Machines Corporation Data packet processing
KR20060063804A (ko) * 2003-09-19 2006-06-12 마쯔시다덴기산교 가부시키가이샤 캐시 메모리 및 캐시 메모리 제어 방법
JP3981070B2 (ja) * 2003-12-26 2007-09-26 株式会社東芝 キャッシュリプレース装置及びキャッシュリプレース方法
US20050182902A1 (en) * 2004-02-12 2005-08-18 Shuji Miyasaka Signal processing apparatus
JP4487744B2 (ja) * 2004-11-29 2010-06-23 富士通株式会社 マルチスレッド制御装置及び制御方法
US8195886B2 (en) * 2007-03-16 2012-06-05 Arm Limited Data processing apparatus and method for implementing a replacement scheme for entries of a storage unit
US20110055838A1 (en) * 2009-08-28 2011-03-03 Moyes William A Optimized thread scheduling via hardware performance monitoring
US8504042B2 (en) 2010-08-25 2013-08-06 Htc Corporation Method of handling service group ownership transfer in a communication system and related communication device

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4484267A (en) * 1981-12-30 1984-11-20 International Business Machines Corporation Cache sharing control in a multiprocessor
US4807110A (en) * 1984-04-06 1989-02-21 International Business Machines Corporation Prefetching system for a cache having a second directory for sequentially accessed blocks
US4885680A (en) * 1986-07-25 1989-12-05 International Business Machines Corporation Method and apparatus for efficiently handling temporarily cacheable data
US4843542A (en) * 1986-11-12 1989-06-27 Xerox Corporation Virtual memory cache for use in multi-processing systems
US4882642A (en) * 1987-07-02 1989-11-21 International Business Machines Corporation Sequentially processing data in a cached data storage system
US4928225A (en) * 1988-08-25 1990-05-22 Edgcore Technology, Inc. Coherent cache structures and methods
JPH0289145A (ja) * 1988-09-26 1990-03-29 Mitsubishi Electric Corp キャッシュメモリ
US5185875A (en) * 1989-01-27 1993-02-09 Digital Equipment Corporation Method and apparatus for reducing memory read latency in a shared memory system with multiple processors
JPH0363851A (ja) * 1989-08-02 1991-03-19 Nec Corp キャッシュメモリ
US5179702A (en) * 1989-12-29 1993-01-12 Supercomputer Systems Limited Partnership System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling
US5297269A (en) * 1990-04-26 1994-03-22 Digital Equipment Company Cache coherency protocol for multi processor computer system
JPH04288647A (ja) * 1991-02-27 1992-10-13 Mitsubishi Electric Corp キャッシュメモリにおける置き換え制御装置
JPH04315235A (ja) * 1991-04-12 1992-11-06 Fuji Xerox Co Ltd キャッシュメモリにおけるキャッシュデータリプレース方法及びキャッシュデータリプレース装置
US5313609A (en) * 1991-05-23 1994-05-17 International Business Machines Corporation Optimum write-back strategy for directory-based cache coherence protocols
US5430850A (en) * 1991-07-22 1995-07-04 Massachusetts Institute Of Technology Data processing system with synchronization coprocessor for multiple threads

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088788A (en) * 1996-12-27 2000-07-11 International Business Machines Corporation Background completion of instruction and associated fetch request in a multithread processor
WO2008155827A1 (ja) * 2007-06-20 2008-12-24 Fujitsu Limited キャッシュ制御装置及び制御方法
JPWO2008155827A1 (ja) * 2007-06-20 2010-08-26 富士通株式会社 キャッシュ制御装置及び制御方法
US8261021B2 (en) 2007-06-20 2012-09-04 Fujitsu Limited Cache control device and control method
JP2010134584A (ja) * 2008-12-03 2010-06-17 Nec Corp メモリ管理装置、メモリ管理方法およびプログラム
JP2011141831A (ja) * 2010-01-08 2011-07-21 Toshiba Corp マルチコアシステム

Also Published As

Publication number Publication date
US5535361A (en) 1996-07-09
JP3309425B2 (ja) 2002-07-29

Similar Documents

Publication Publication Date Title
JP3309425B2 (ja) キャッシュ制御装置
US8370584B2 (en) Predictive ownership control of shared memory computing system data
US7698508B2 (en) System and method for reducing unnecessary cache operations
US6957304B2 (en) Runahead allocation protection (RAP)
US8688951B2 (en) Operating system virtual memory management for hardware transactional memory
CA1238984A (en) Cooperative memory hierarchy
CN101446923B (zh) 一种响应于指令而清洗高速缓冲存储器线的装置和方法
KR100567099B1 (ko) L2 디렉토리를 이용한 멀티프로세서 시스템의 가-저장촉진 방법 및 장치
US7194586B2 (en) Method and apparatus for implementing cache state as history of read/write shared data
US7925839B1 (en) System and method for performing memory operations in a computing system
KR100704089B1 (ko) L2 디렉토리를 이용한 멀티프로세서 시스템의 가-로드촉진 방법 및 장치
US6640289B2 (en) Software controlled cache line ownership affinity enhancements in a multiprocessor environment
JPH03217963A (ja) マルチプロセッサ・システムおよびそのプライベート・キャッシュ制御方法
JP2010507160A (ja) データ処理装置の共有メモリへの書込みアクセス要求の処理
JP2005018772A (ja) 複数のコヒーレンシ領域およびキャッシュ・パージのないコヒーレンシ領域間ソフトウェア・プロセス移行を備えるマルチプロセッサ・コンピュータ・システム
JPH0625984B2 (ja) マルチプロセツサ・システム
JPH09223118A (ja) スヌープキャッシュメモリ制御システム
JP2000250812A (ja) メモリ・キャッシュ・システムおよびその管理方法
JPH10133943A (ja) リンクリスト形成方法
US5214766A (en) Data prefetching based on store information in multi-processor caches
JP3236287B2 (ja) マルチプロセッサシステム
JPH0452741A (ja) キャッシュメモリ装置
US20060294319A1 (en) Managing snoop operations in a data processing apparatus
JP2001249846A (ja) キャッシュメモリ装置及びデータ処理システム
JP2002202960A (ja) データ処理方法および装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090524

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100524

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110524

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110524

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120524

Year of fee payment: 10

EXPY Cancellation because of completion of term