JP2001297035A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JP2001297035A
JP2001297035A JP2000109707A JP2000109707A JP2001297035A JP 2001297035 A JP2001297035 A JP 2001297035A JP 2000109707 A JP2000109707 A JP 2000109707A JP 2000109707 A JP2000109707 A JP 2000109707A JP 2001297035 A JP2001297035 A JP 2001297035A
Authority
JP
Japan
Prior art keywords
cache
level
data
request
invalidation
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.)
Pending
Application number
JP2000109707A
Other languages
English (en)
Inventor
Nobuo Yagi
伸夫 八木
Euwe Chikovski Jens
ウベ チコフスキ イエンス
Hiroshi Kakita
宏 柿田
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2000109707A priority Critical patent/JP2001297035A/ja
Priority to US09/828,983 priority patent/US6564302B1/en
Publication of JP2001297035A publication Critical patent/JP2001297035A/ja
Pending 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/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0824Distributed directories, e.g. linked lists of caches
    • 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/0817Cache consistency protocols using directory methods

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

(57)【要約】 【課題】 少ない論理量でパスのビジー率を低減し、か
つ、キャッシュミスを増大させないことを可能とした複
数のプロセッサと複数階層のキャッシュメモリとを有す
る情報処理装置。 【解決手段】 レベル2キャッシュの各ラインについて
そのラインのデータを持つプロセッサ番号の一覧からな
るデータ所有者表45を備え、ストア命令が指すアドレ
スのデータがレベル2キャッシュに存在している場合、
データ所有者表を参照し当該アドレスのデータが存在し
ているプロセッサにのみ選択的に無効化リクエストを発
行し、存在していないプロセッサには無効化リクエスト
を発行しない機能を備える。また、SCが独立に動作で
きる複数の系に分割された場合、各系が無効化リクエス
トを発行する際、各系から発行された無効化リクエスト
を、キューに入れ、送付先プロセッサ番号が重複してい
ないリクエストを同時に発行する機能を備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、情報処理装置に係
り、複数のプロセッサと、キャッシュの一致保証を行っ
ている複数階層のキャッシュメモリとを有する情報処理
装置に関する。
【0002】
【従来の技術】近年、情報処理装置は、その高性能化の
ため多数のプロセッサを備えて構成されるようになって
きている。それに伴い、複数のプロセッサを持つ情報処
理装置は、各プロセッサが持つレベル1キャッシュ、記
憶制御装置(SC)内に設けられ各プロセッサから共有
されるレベル2キャッシュ等を備え、より複雑な階層構
造を持つキャッシュメモリを備えて構成されるようにな
ってきている。
【0003】しかし、複数のプロセッサを持つ情報処理
装置は、ある1つのプロセッサがあるアドレスの内容を
更新したとき、他のプロセッサ内に更新されていない古
い対応アドレスのキャッシュを存在させないように、存
在する場合には無効化、あるいは、更新を行う必要が生
じ、このようなデータの一致を保証するために、主に以
下に説明するような手段が講じられてきた。
【0004】従来、キャッシュ相互間のデータの一致保
証は、各プロセッサがストア命令を発行する際に、その
プロセッサのキャッシュへのストア情報を、そのプロセ
ッサから、あるいは、SCから他の各プロセッサに発行
することにより、各プロセッサの更新されていないその
アドレスのキャッシュを無効化し、あるいは、更新する
という方式により行われている。この方式は、ストア命
令が発行される度に全てのプロセッサにストア情報を発
行する必要があるため、プロセッサ数の増加に伴って、
プロセッサに発行されるストア情報によるパスの利用率
が高くなってしまうという問題点を有している。
【0005】前述したような問題点を解決するため、各
プロセッサの持つレベル1キャッシュのディレクトリ情
報のコピーをSC内に持つ方式も用いられている。この
方式は、SCが全てのプロセッサのキャッシュのアドレ
ス情報を持つディレクトリを備えているため、ストア命
令が発行されたとき、そのアドレスのデータを持つレベ
ル1キャッシュにのみ無効化リクエストを発行すること
が可能であり、バスを有効利用することができるという
利点を有している。しかし、この方式は、全てのプロセ
ッサに対応するディレクトリをSCに持たせなければな
らないため、プロセッサ数の増加に従いその論理量が非
常に大きくなるという問題点を有している。
【0006】また、ストア命令を発行する前に、他の全
てのプロセッサの対応するアドレスのキャッシュを無効
化し、キャッシュを排他的に使用する方式も知られてい
る。この方式は、SC内のレベル2キャッシュのディレ
クトリに、各ラインのデータを持つプロセッサ番号をラ
インごとに記録し、ストア命令を発行する前に、排他的
フェッチ命令を発行し、SC内のディレクトリに記録さ
れているプロセッサに無効化リクエストを発行し、その
アドレスのデータが他のプロセッサのキャッシュに存在
していない状態で更新するというものである。この方式
は、ストアの度に無効化リクエストを発行せずに済むた
めバスの利用率を低くすることができるが、SCが各プ
ロセッサの持つキャッシュ情報を持つ必要があるため、
よりプロセッサに近い上位階層のキャッシュが遠い階層
のキャッシュに完全に含有される必要があるという制約
がある。この方式は、前述のような制約により、遠い階
層のキャッシュが消されると全ての近い階層のキャッシ
ュも消されなければならないため、キャッシュの無効化
が多くなり、必要なデータがキャッシュに存在しないキ
ャッシュミスが多くなるという問題点を有している。
【0007】
【発明が解決しようとする課題】前述したように、従来
技術による複数のプロセッサを持ち階層記憶構造を持っ
たメモリを備えた情報処理装置は、キャッシュの一致保
証を行うという点で種々の問題点を有している。
【0008】本発明の目的は、少ない論理量でパスのビ
ジー率を低減し、かつ、キャッシュミスを増大させない
ことを可能とした複数のプロセッサと複数階層のキャッ
シュメモリとを有する情報処理装置を提供することにあ
る。
【0009】
【課題を解決するための手段】本発明によれば前記目的
は、ストアスルー型のレベル1キャッシュを有する複数
のプロセッサと、これらのプロセッサが接続され、その
内部に前記複数のプロセッサのそれぞれから共有される
ストアイン型のレベル2キャッシュを有する記憶制御装
置と、該記憶制御装置に接続された主記憶装置とを備
え、前記レベル1キャッシュ、レベル2キャッシュ、主
記憶装置が階層構造の記憶装置として構成されている情
報処理装置において、前記記憶制御装置が、前記レベル
2キャッシュの各ラインについて、そのラインのデータ
を持つプロセッサ番号の一覧からなるデータ所有者表
と、前記プロセッサからストア命令が発行されたとき、
そのストア命令を発行したプロセッサ以外のプロセッサ
内の該当アドレスのレベル1キャッシュを無効化するた
めのリクエストを、前記データ所有者表の内容に基づい
て発行する無効化リクエスト発行手段とを備えることに
より達成される。
【0010】また、前記目的は、記憶制御装置が独立に
動作できる複数の系に分割されている場合に、各系が無
効化リクエストを発行する際、各系から発行された無効
化リクエストを、キューに入れ、送付先プロセッサ番号
が重複していない無効化リクエストを統合して同時に発
行する機能を備えることにより達成される。
【0011】
【発明の実施の形態】以下、本発明による情報処理装置
の一実施形態を図面により詳細に説明する。
【0012】図1は本発明の一実施形態による情報処理
装置の構成を示すブロック図、図2はレベル1.5キャ
ッシュの制御機構の構成を示すブロック図、図3は記憶
制御装置の構成を示すブロック図、図4はSCにおいて
メモリリクエストがリクエストプライオリティを通過
し、無効化ベクトルを生成するまでの過程を説明する
図、図5は所有者表内のレベル2キャッシュの各ライン
に対応した所有者データの構成を説明する図、図6は各
リクエストに対する無効化リクエスト発行について説明
する図である。図1〜図4において、10a〜10nは
クラスタ、11は記憶制御装置(SC)、12は主記憶
装置、13a〜13mはプロセッサ(IP)、14a〜
14mはレベル1キャッシュ、15a〜15nはレベル
1.5キャッシュ、16はI/Oプロセッサ、17はレ
ベル2キャッシュ、20はクラスタ内リクエストプライ
オリティユニット、22はレベル1.5キャッシュディ
レクトリ、23、42はヒット論理、24はブロック転
送制御機能、25は置換論理、27は無効化リクエスト
チェック回路、30a〜30nはリクエストキュー、3
1はI/Oリクエストキュー、32はリクエストプライ
オリティ、37は無効化リクエスト発行機能、41はレ
ベル2キャッシュディレクトリ、43はライン転送制御
論理、44はディレクトリ置換論理、45は所有者表&
所有者表更新論理、46は無効化ベクトル論理である。
【0013】本発明の実施形態による情報処理装置は、
図1に示すように、レベル1キャッシュ14a〜14m
を持つ複数のIP13a〜13mを有する複数のクラス
タ10a〜10nがSC11に接続されて構成されてい
る。SC11内には、各クラスタから共有されるレベル
2キャッシュ17が設けられ、また、クラスタ10a〜
10nのそれぞれには、クラスタ内プロセッサに共有さ
れるレベル1.5キャッシュ15a−15nが設けられ
ている。さらに、SC11には、I/Oプロセッサ16
や主記憶装置12が接続されている。
【0014】前述したように構成される情報処理装置に
おいて、あるクラスタ内のあるIPがフェッチ命令を発
行し、その命令のアドレスのデータがレベル1キャッシ
ュに存在する(レベル1キャッシュヒット)場合、レベ
ル1キャッシュからデータがフェッチされ、存在しない
(レベル1キャッシュミス)場合、レベル1.5キャッ
シュにフェッチ命令が発行される。レベル1、レベル
1.5キャッシュ共にキャッシュミスの場合、フェッチ
命令はレベル2キャッシュまで届く。また、IPからの
ストア命令のメモリアクセスは、全てレベル2キャッシ
ュメモリまで届き、レベル1、レベル1.5キャッシュ
でキャッシュヒットした場合、データが更新される。す
なわち、本発明の実施形態において、レベル1キャッシ
ュ、レベル1.5キャッシュはストアスルー型のもので
あり、レベル2キャッシュはストアイン型のものであ
る。
【0015】IPが発行したメモリリクエストは、まず
レベル1キャッシュ14a〜14mにアクセスするが、
レベル1キャッシュミスの場合やメモリリクエストがス
トアの場合、クラスタ内のレベル1.5キャッシュ15
aにアクセスする。このとき、レベル1.5キャッシュ
15aからレベル1キャッシュ14a〜14mへはデー
タユニット(ここでの実施形態では128B)単位、レ
ベル2キャッシュ17からレベル1.5キャッシュ15
a〜15nへはデータブロック(ここでの実施形態では
256B)単位、主記憶装置12からレベル2キャッシ
ュ17へはライン(ここでの実施形態では512B)単
位でデータ転送が行われるものとする。従って、レベル
1キャッシュはデータユニット単位、レベル1.5キャ
ッシュはブロック単位、レベル2キャッシュはライン単
位でデータが登録される。
【0016】各クラスタ10a〜10n内のレベル1.
5キャッシュ制御機構は、図2に示すように、クラスタ
内リクエストプライオリティユニット20、レベル1.
5キャッシュディレクトリ22、ヒット論理23、ブロ
ック転送制御機能24、置換論理25、無効化リクエス
トチェック回路27により構成されている。
【0017】前述において、クラスタ内リクエストプラ
イオリティユニット20には、レベル1キャッシュから
のコマンド及びアドレスを持つメモリリクエスト21a
〜21nと無効化リクエスト21zとが伝えられる。無
効化リクエスト21zは、各プロセッサ、キャッシュ間
のデータの一致保証を取るためにSC11から発行さ
れ、無効化リクエストを発行するメモリリクエスト、例
えば、ストア命令を発行したプロセッサ番号あるいはI
/Oプロセッサ番号、無効化すべきアドレスからなる。
クラスタ内リクエストプライオリティユニット20は、
これらメモリリクエスト、無効化リクエストを予め定め
られた優先順位により順番に処理する。クラスタ内リク
エストプライオリティユニット20により選択されたメ
モリリクエストは、レベル1.5キャッシュのディレク
トリ22を検索し、ヒット論理23により、そのメモリ
リクエストがアクセスするデータがレベル1.5キャッ
シュの中に存在するか否かを判定する。
【0018】処理すべきメモリリクエストがフェッチ命
令であるとし、そのフェッチ命令の指すアドレスのデー
タがレベル1.5キャッシュに存在しない場合、ブロッ
ク転送制御機能24は、レベル2キャッシュにそのアド
レスのブロックのデータ転送リクエストを発行する。レ
ベル2キャッシュからブロックデータが転送されると、
置換論理25は、レベル1.5ディレクトリ22を更新
し、レベル1.5キャッシュにブロックデータを登録す
る。
【0019】SCから届いた無効化リクエストは、無効
化リクエストチェック回路27によってその無効化リク
エストを発行する要因となったメモリリクエストを発行
したプロセッサ番号あるいはI/Oプロセッサ番号(リ
クエスト発信元)がチェックされる。このチェックの結
果、他のクラスタやI/Oプロセッサがリクエスト発信
元であった場合、クラスタ内のキャッシュに存在するそ
のアドレスのデータは全て最新のデータではないので無
効化する必要があり、無効化リクエストチェック回路2
7は、全てのレベル1キャッシュに無効化リクエスト信
号28a−28nを通して発行する。さらに、レベル
1.5キャッシュへの無効化リクエストは、図示しない
クラスタ内の無効化リクエストキュー26に格納され
る。
【0020】無効化リクエスト発信元がクラスタ内プロ
セッサである場合、レベル1キャッシュ、レベル1.5
キャッシュともにストアスルーであるため、リクエスト
発信元プロセッサのレベル1キャッシュとレベル1.5
キャッシュとはすでに最新のデータに更新されているた
め、そのデータの無効化処理を行う必要はない。そのた
め、無効化リクエストは、無効化リクエスト信号28a
〜28mは、発信元以外のプロセッサのレベル1キャッ
シュのみに送られる。また、無効化リクエストチェック
回路27は、全てのレベル1、レベル1.5キャッシュ
において無効化リクエストによるデータの無効化の完了
を確認した後、SC内のリクエスト発行機能に通知す
る。
【0021】SC11は、すでに説明したようにレベル
2キャッシュを備えるものであるが、本発明の実施形態
に使用するSC11は、図3に示すように、アドレスの
範囲により複数のSC系A33a〜R33rに分割さ
れ、それぞれにレベル2キャッシュ34a〜34rを備
えて構成されている。これに伴って、主記憶装置12
も、これらの各系に対応して主記憶装置A36a〜R3
6rに分割され、それぞれに主記憶制御装置(MC)A
35a〜R35rが設けられている。
【0022】各クラスタから発行されるメモリリクエス
トは、リクエストキュー30a〜30nに格納される。
また、I/Oプロセッサ16からのメモリリクエスト
は、I/Oリクエストキュー31に格納される。リクエ
ストプライオリティ32は、全てのリクエストキュー3
0a〜30n、31からリクエストを選択し、決められ
たアドレスビットにより、これらのリクエストを1つの
SC系に割り振る。それぞれのSC系A33a〜R33
rに設けられているレベル2キャッシュ34a−34r
は、各SC系に対応する主記憶装置36a〜36rのM
CA35a〜R35rに接続される。無効化リクエスト
発行機能37は、全てのSC系からの無効化リクエスト
を統合し、無効化リクエスト発行バス38a〜38nを
用いて、各クラスタに無効化リクエストを発行する。な
お、無効化リクエストの発行機能37の詳細と無効化リ
クエスト発行機能37からのフィードバック機構39に
ついては図7により後述する。
【0023】次に、図4を参照して、SC11において
メモリリクエストがリクエストプライオリティを通過
し、無効化ベクトルを生成するまでの過程を説明する。
図4にはSC11内の1つのSC系のみを示しており、
1つのSC系は、レベル2キャッシュディレクトリ4
1、ヒット論理42、ライン転送制御論理43、ディレ
クトリ置換論理44、所有者表&所有者表更新論理4
5、無効化ベクトル論理46により構成されている。
【0024】図4において、リクエストプライオリティ
32を通過したメモリリクエスト40は、まず、レベル
2キャッシュのディレクトリ41を検索し、ヒット論理
42により、そのデータがレベル2キャッシュ上に存在
するか否かを判定する。そのデータがレベル2キャッシ
ュ上に存在する場合(レベル2キャッシュヒット)、レ
ベル2キャッシュのディレクトリに対応する所有者表4
5にアクセスし、そのデータの存在するレベル2キャッ
シュのラインに対応する所有者データを参照する。この
所有者データには、このメモリリクエストデータを含む
データユニットを所持するクラスタが示されている。無
効化ベクトル論理46は、この所有者データとリクエス
トの種類とにより無効化ベクトルを生成し、これを後述
する無効化リクエスト発行機能に送る。この無効化ベク
トルは、SC11に接続されるクラスタと同数のビット
からなり、無効化する必要のあるデータユニットを所有
しているクラスタに対応するビットがセットされてい
る。
【0025】リクエストに対応するデータがレベル2キ
ャッシュ上にない場合(レベル2キャッシュミス)、ラ
イン転送制御論理43は、このデータが含まれるライン
を主記憶からレベル2キャッシュに転送/登録する。こ
のとき、ディレクトリ置換論理44は、レベル2キャッ
シュのディレクトリ41を更新し、レベル2キャッシュ
ディレクトリ41が更新されたため、所有者表のそのラ
インに対応する所有者データをリクエストの種類に応じ
て再作成して初期化する。所有者データが初期化された
ことにより、無効化ベクトル論理46は、リクエストの
種類から、無効化リクエストの発行が必要と判断した場
合、全クラスタに対応するビットをセットした無効化ベ
クトルを生成して、無効化リクエスト発行機能に送る。
【0026】所有者表45は、レベル2キャッシュの各
ラインに対応して1つの所有者データを持ち、所有者デ
ータは、図5に示すように構成される。すでに説明した
ように、レベル2キャッシュのラインは512B、レベ
ル1.5キャッシュのブロックは256B、レベル1キ
ャッシュのデータユニットは128Bであるとしている
ので、1つのラインは2つのブロックからなり、1つの
ブロックは2つのデータユニットからなる。また、1つ
のラインは4つのデータユニットからなる。
【0027】所有者データは、クラスタの数と同数のデ
ータレコードからなり、各データレコードはクラスタに
対応する。データレコードは、レベル1キャッシュのデ
ータユニット毎に対応するビットを持ち、このデータレ
コードに対応するクラスタがデータユニットを持つ場
合、そのデータユニットに対応するビットがセットされ
る。このビットがセットされているデータユニットを持
つレベル1、レベル1.5キャッシュに無効化リクエス
トが発行されるが、レベル1.5キャッシュではブロッ
ク単位でデータが無効化される。所有者表45内の更新
論理は、レベル2キャッシュミスによる所有者データの
初期化、フェッチによる新規所有者の増加、無効化リク
エスト発行による所有者の減少が発生したときに所有者
表45の更新を行う。
【0028】次に、図6を参照し各リクエストに対する
無効化リクエスト発行について説明する。
【0029】まず、プロセッサがフェッチ命令を発行し
た場合について説明する。プロセッサがフェッチ命令を
発行し、レベル1.5、レベル2キャッシュが共にキャ
ッシュミスであったとき、主記憶からレベル2キャッシ
ュへそのデータを含むラインが転送/登録され、レベル
2キャッシュからレベル1.5キャッシュへそのデータ
を含むブロックが転送/登録され、さらに、レベル1.
5キャッシュからレベル1キャッシュにそのデータユニ
ットが転送/登録される。このとき、そのラインに対応
する所有者データが新規に生成されるが、フェッチ命令
発行以前に、どのプロセッサがどのデータユニットを保
持しているか不明であるためそのデータユニットに対応
するビットが全てセットされる。レベル2キャッシュヒ
ットのとき、レベル2キャッシュからレベル1.5キャ
ッシュへそのデータを含むブロックが転送/登録され、
さらに、レベル1.5キャッシュからレベル1キャッシ
ュにそのデータユニットが転送/登録される。このと
き、所有者表のこのラインに対応する所有者データのフ
ェッチ命令を発行したプロセッサを含むクラスタに対応
するデータレコードのそのデータブロックに対応するビ
ットの全てがセットされる。
【0030】次に、プロセッサがストア命令を発行した
場合について説明する。プロセッサがストア命令を発行
し、レベル2キャッシュミスのとき、主記憶からレベル
2キャッシュにそのラインが転送/登録され、レベル2
キャッシュ上のそのラインにデータがストアされる。フ
ェッチのときと同様に、所有者データを新規に生成する
が、ストア命令発行以前に、どのプロセッサがどのデー
タユニットを持っているか不明であるため、そのデータ
を他の全てのクラスタが持っているとして、無効化リク
エストが全クラスタに対して発行される。このため、所
有者表の所有者データは、ストアを発行したクラスタ内
の全てのデータユニットに対応するビットがセットされ
る。ストアを発行したクラスタ以外のクラスタは、その
データユニットに対応するビットがクリアされ、それ以
外のデータユニットに対応するビットがセットされる。
レベル2キャッシュヒットのとき、レベル2キャッシュ
にそのデータユニットがストアされる。このとき、その
データユニットを持つクラスタに無効化リクエストが発
行されるため、ストアを発行したクラスタ以外のクラス
タのそのデータユニットに対応するビットがクリアされ
る。
【0031】次に、プロセッサがロック命令を発行した
場合について説明する。プロセッサは、データに排他処
理を行う場合、“Fetch & Set Lock”命令と、“Store
& Release Lock”命令とを発行する。すなわち、プロセ
ッサは、前者の命令でデータをフェッチしてロックをか
ける。ロックをかけられたデータは、他のプロセッサか
らアクセスすることができないため、排他的に処理をす
ることができる。その後、プロセッサは、後者の命令に
より、処理したデータをレベル2キャッシュにストアし
てロックを解除する。
【0032】プロセッサが“Fetch & Set Lock”を発行
したとき、そのデータを所有するクラスタに無効化リク
エストが発行されるため、全てのクラスタのそのデータ
を含むデータユニットに対応するビットはクリアされ
る。この命令によるデータ転送は、リクエストを発行し
たプロセッサに直接必要なデータ長だけの転送として行
われ、レベル1キャッシュ、レベル1.5キャッシュに
は転送されない。このため、レベル2キャッシュヒット
のとき、リクエストを発行したクラスタのキャッシュへ
のデータ転送は行われず、従って、そのクラスタの所有
者データは変更されない。また、キャッシュミスのと
き、所有者データが新規に生成されるため、前述で無効
化リクエストの発行によってクリアされたビット以外の
ビットの全てがセットされる。
【0033】プロセッサが“Store & Release Lock”命
令を発行したとき、そのデータの排他的処理が行われて
いたため、キャッシュヒットのとき、“Fetch & Set Lo
ck”命令の発行時点から所有者データの変更はない。キ
ャッシュミスのとき、所有者データが新規に生成される
ため、“Fetch & Set Lock”命令の発行時にクリアした
ビット以外の全てのビットがセットされる。
【0034】次に、I/Oプロセッサがフェッチ命令及
びストア命令を発行した場合について説明する。I/O
プロセッサがフェッチ命令を発行し、レベル2キャッシ
ュミスののとき、データは、レベル2キャッシュに転送
されずに直接主記憶からI/Oに転送されるため、所有
者データの更新は行われない。また、キャッシュヒット
のときも、I/O内部にはキャッシュメモリがないため
所有者データにはI/Oに対応するビットがないため所
有者表の更新は行なわれない。同様に、通常のI/Oス
トア命令は、レベル2キャッシュミスのとき、直接主記
憶にストアされるため、所有者データを変更する必要が
ない。
【0035】次に、I/Oプロセッサがパーシャルスト
ア命令を発行した場合について説明する。主記憶装置
は、1バイトの更新をサポートしようとすると複雑なハ
ードウェアが必要になる。これを避けるため、ライン以
下のデータ長のストアを、一度、レベル2キャッシュの
ラインにストアを行なった後、そのラインを主記憶装置
に書き戻すことにより実現するパーシャルI/Oストア
という方法が使用される。I/Oプロセッサがこのパー
シャルストア命令を発行し、キャッシュミスのとき、主
記憶装置からそのラインがレベル2キャッシュに転送/
登録され、そのラインにストアされる。そのデータユニ
ットを持つ全てのクラスタに無効化リクエストを発行す
るため、全てのクラスタのそのデータユニットに対応す
るビットがクリアされる。このとき、所有者データを新
規に生成するため、その他のビットはすべてセットされ
る。キャッシュヒットのとき、そのデータユニットを所
持しているクラスタに対して無効化リクエストを発行
し、結果として所有者データのそのデータユニットに対
応するビットは全てクリアされる。
【0036】図7は無効化リクエスト発行機能の構成を
示すブロック図、図8はリクエストキューの構成を説明
する図であり、以下、無効化リクエスト発行機能につい
て説明する。無効化リクエスト発行機能37は、各SC
系からのプロセッサやI/Oプロセッサから発行された
メモリリクエストと、図4により説明した無効化ベクト
ル論理で生成された無効化ベクトルとを用いて無効化リ
クエストを発行する機能である。
【0037】図7において、各SC系から発行されるリ
クエストと無効化ベクトルとは、リクエストキュー71
に入力される。なお、リクエストキュー71の構成と動
作については図8により後述する。コンフリクト検知&
フロー制御論理72のコンフリクト検知論理は、各SC
系の無効化ベクトル70a〜70rを比較し、同一のク
ラスタに対応するビットが重複していない複数の無効化
ベクトルを選択する。統合ユニット74は、この複数の
無効化ベクトルとリクエストとにより、各クラスタに無
効化リクエストを発行する。このとき、無効化リクエス
トには、無効化リクエストを発行する要因となるメモリ
リクエストを発行したプロセッサやI/Oプロセッサの
番号が含まれる。
【0038】一方、コンフリクト検知&フロー制御論理
72のフロー制御論理は、発行した無効化リクエストの
数とクラスタからの無効化完了信号73とにより、クラ
スタ内の図示しない無効化リクエストキュー26がオー
バーフローする前にリクエストプライオリティ32に信
号39を送り、無効化リクエストを発行するリクエスト
(全てのストア命令及び“Fetch & Set Lock”)を切り
出さないようにする。また、フロー制御論理は、無効化
リクエスト発行機能37内のリクエストキュー71につ
いても、前述と同様に、リクエストプライオリティ32
から無効化リクエストを発行するリクエストを切り出さ
ないようにする。
【0039】リクエストキュー71は、図8に示すよう
に、各SC系対応に設けられている。そして、無効化リ
クエストは、無効化ベクトルが生成された順、すなわ
ち、リクエストプライオリティ32がリクエストを選択
した順に発行する必要があるため、リクエストキュー7
1は、ヘッド82とテール81との1つずつのポインタ
で管理される。各SC系から発行された無効化ベクトル
等は、キューの中のテールポインタ81が指す行の各S
C系に対応する列に格納され、1つのSC系からでも無
効化ベクトルが発行されてキューに格納されると、テー
ル81は1つ上がり、次の無効化ベクトルは次の行に格
納される。コンフリクト検知論理は、ヘッドポインタの
指す行にある無効化ベクトルの重複を調べ、その行の全
ての無効化ベクトルが切り出されたとき、ヘッド82を
1つ上げて次の行を調べる。ヘッド82とテール81と
が同じ行を指す場合、すなわち、キューが空の場合、コ
ンフリクト検知論理は各SC系から入力される無効化ベ
クトルを直接調べる。
【0040】SC系の数と各クラスタの無効化リクエス
トを発行するリクエストの頻度とによっては、各クラス
タへの無効化リクエスト発行頻度より無効化ベクトル生
成頻度が大きくなる場合があり得る。この場合、統合ユ
ニット74におけるスループットがシステム全体のスル
ープットを制限してしまうことになる。この解決策とし
て、本発明の実施形態は、1つのコンフリクト検知で生
成した無効化ベクトルから、複数の統合ユニット74を
用いて一度により多くの無効化リクエストを発行するよ
うにすることもでき、また、順序問題を守ったまま、リ
クエストキュー71の先頭だけでなく、次の無効化ベク
トルもコンフリクト検知の対象とし、より効率的に無効
化リクエストを発行するようにすることもできる。
【0041】図9はクラスタがフェッチ命令を発行した
ときのSCでの処理動作を説明するフローチャートであ
り、以下、これについて説明する。
【0042】(1)クラスタがフェッチ命令を発行した
とき、対応するデータがレベル2キャッシュにあるか否
かを検索する(ステップ100、102)。
【0043】(2)ステップ102の検索でレベル2キ
ャッシュミスの場合、主記憶装置からレベル2キャッシ
ュに該当するデータを含むラインを転送/登録して、レ
ベル2キャッシュのディレクトリを更新し、レベル2キ
ャッシュからレベル1.5キャッシュにブロックを転送
/登録する(ステップ103)。
【0044】(3)ステップ103の処理で、レベル2
キャッシュのラインが置換されたため、所有者表のデー
タを新規に生成する。これにより所有者データが置換さ
れたため、そのラインのデータを持つプロセッサが不明
であるため、全てのプロセッサとクラスタとがそのライ
ンのデータを持つとして、そのラインに含まれる全ての
データユニットのビットを、全てのクラスタに対してセ
ットし、キャッシュミスの場合の処理を終了する(ステ
ップ104、105)。
【0045】(4)ステップ102の検索でレベル2キ
ャッシュヒットの場合、レベル2キャッシュからレベル
1.5キャッシュへ対応するデータを含むブロックを転
送/登録し、クラスタからのフェッチにより所有者表の
所有者データのそのクラスタのそのブロック内の全ての
データユニットに対応するビットをセットする(ステッ
プ106)。
【0046】(5)ステップ106の処理後、所有者デ
ータが従来の所有者データから変更されているか否か、
すなわち、所有者データの更新が必要か否かを判定し、
変更がない場合、ここでの処理を終了し、更新が必要な
場合、所有者表の更新を行ってクラスタのフェッチに関
する処理を終了する(ステップ107、108)。
【0047】図10はプロセッサがストア命令を発行し
たときのSCでの処理動作を説明するフローチャートで
あり、以下、これについて説明する。
【0048】(1)プロセッサがストア命令を発行した
とき、図9により説明したクラスタからのフェッチと同
様に、対応するデータがレベル2キャッシュにあるか否
かを検索する(ステップ110、102)。
【0049】(2)ステップ102の検索でレベル2キ
ャッシュミスの場合、主記憶装置からレベル2キャッシ
ュに該当するデータを含むラインを転送/登録しそのラ
インにストアする(ステップ113)。
【0050】(3)そのデータユニットの所有者が不明
であるため、全てのクラスタに無効化リクエストを発行
する。この無効化リクエストにより、そのデータユニッ
トは他のクラスタには存在しないことになる(ステップ
114)。
【0051】(4)所有者表の所有者データに、ストア
を発行したクラスタ内の全てのデータユニットに対応す
るビットをセットし、ストアを発行したクラスタ以外の
クラスタは、そのデータユニットに対応するビットをク
リアし、それ以外のデータユニットに対応するビットを
セットして新規所有者データを生成してキャッシュミス
の時のデータ処理を終了する(ステップ115、10
5)。
【0052】(5)ステップ102の検索でレベル2キ
ャッシュヒットの場合、レベル2キャッシュのそのライ
ンに命令内のデータをストアし、所有者表からレベル2
キャッシュの対応ラインの無効化データを参照する(ス
テップ117、118)。
【0053】(6)次に、ステップ118で参照された
無効化データを用い、そのデータユニットを保持する全
てのクラスタに無効化リクエストを発行する。そして、
無効化リクエストの発行による所有者表の新規生成を行
うため、新しい所有者表の無効化データを図6に示した
ように生成する(ステップ119、120)。
【0054】(7)それまでの無効化データと新しい無
効化データとを比較し、所有者データの更新が必要か否
かを判定し、変更の必要のない場合、ここでの処理を終
了し、変更の必要がある場合、新しい無効化データによ
り所有者表を更新して、プロセッサストアのときのキャ
ッシュヒットの時の処理を終了する(ステップ121、
122、105)。
【0055】図11はプロセッサが“Fetch & Set Loc
k”命令を発行したときのSCでの処理動作を説明する
フローチャートであり、以下、これについて説明する。
【0056】(1)プロセッサが“Fetch & Set Lock”
命令を発行すると、このリクエストは、フェッチしたデ
ータを他のプロセッサがロックをしていないか否かのロ
ックチェックを行い、ロックがかかっている場合、ロッ
クが解除されるまで待つ(ステップ131)。
【0057】(2)ステップ131で他のプロセッサが
ロックをしていないことを確認した後、そのデータにロ
ックをセットし、図9、図10の場合と同様に、対応す
るデータがレベル2キャッシュにあるか否かを検索する
(ステップ132、102)。
【0058】(3)ステップ102の検索でレベル2キ
ャッシュミスの場合、主記憶装置からレベル2キャッシ
ュに該当するデータを含むラインを転送/登録し、レベ
ル1キャッシュ、レベル1.5キャッシュを変更するこ
となく、プロセッサにそのデータを転送する(ステップ
133)。
【0059】(4)その後、図10により説明したプロ
セッサのストア命令の場合と同様に、全てのクラスタに
無効化リクエストを発行し、新規所有者データを生成し
てキャッシュミスの時の処理を終了する(ステップ11
4、115、105)。
【0060】(5)ステップ102の検索でレベル2キ
ャッシュヒットの場合、データをプロセッサに転送する
(ステップ137)。
【0061】(6)その後、図10により説明したと同
様に、無効化リクエストを発行し、所有者表を更新し
て、プロセッサが“Fetch & Set Lock”命令を出した時
の処理を終了する(ステップ118〜122、10
5)。
【0062】図12はプロセッサが“Store & Release
Lock”命令を発行したときのSCでの処理動作を説明す
るフローチャートであり、以下、これについて説明す
る。なお、この“Store & Release Lock”命令は、“Fe
tch & Set Lock”命令と対となって発行される。そし
て、“Fetch & Set Lock”命令と“Store & Release Lo
ck”命令との間では排他処理が行われ、前者の命令で無
効化リクエスト発行と所有者表の更新とを行うため、こ
れらの処理は後者の命令では必要がない。但し、前者と
後者との間にデータがレベル2キャッシュから追い出さ
れて、所有者表が置換されている場合、所有者表の更新
を行う必要がある。
【0063】(1)プロセッサが“Store & Release Lo
ck”命令を発行すると、まず、データのロックを解除
し、図9、図10の場合と同様に、対応するデータがレ
ベル2キャッシュにあるか否かを検索する(ステップ1
40、141、102)。
【0064】(2)ステップ102の検索でレベル2キ
ャッシュミスの場合、主記憶装置からレベル2キャッシ
ュへライン転送を行ってデータをストアし、さらに、通
常のストアと同様に、所有者表の新しいキャッシュライ
ンのデータレコードをセットして所有者表の更新を行っ
て、この処理を終了する(ステップ113、115、1
05)。
【0065】(3)ステップ102の検索でレベル2キ
ャッシュヒットの場合、そのデータをれべる2キャッシ
ュにストアして、プロセッサが“Store & Release Loc
k”命令を発行した場合の処理を終了する(ステップ1
17、105)。
【0066】図13はI/Oプロセッサがフェッチ命令
を発行したときのSCでの処理動作を説明するフローチ
ャートであり、以下、これについて説明する。
【0067】(1)I/Oプロセッサがフェッチ命令を
発行すると、レベル2キャッシュにそのアドレスのデー
タが存在するか否かを検索し、レベル2キャッシュミス
の場合、対応するラインのデータを主記憶装置から直接
I/Oプロセッサに転送して処理を終了する(ステップ
150、102、153、105)。
【0068】(2)ステップ102の検索でレベル2キ
ャッシュヒットの場合、レベル2キャッシュからI/O
プロセッサにデータを転送し、I/Oプロセッサからの
フェッチ処理を終了する(ステップ154、105)。
【0069】図14はI/Oプロセッサがストア命令を
発行したときのSCでの処理動作を説明するフローチャ
ートであり、以下、これについて説明する。
【0070】(1)I/Oプロセッサがストア命令を発
行すると、レベル2キャッシュにそのアドレスのデータ
があるか否かを検索する(ステップ160、102)。
【0071】(2)ステップ102の検索で、レベル2
キャッシュミスの場合、全てのクラスタに無効化リクエ
ストを発行し、次に、このリクエストがパーシャルスト
アか否かを判別する。パーシャルストアではない通常の
ストア命令の場合、I/Oプロセッサから主記憶装置に
直接データのストアを行って処理を終了する(ステップ
165、166、105)。
【0072】(3)ステップ165でリクエストがパー
シャルストアであった場合、主記憶装置からレベル2キ
ャッシュにそのデータのアドレスを含むラインを転送/
登録し、レベル2キャッシュにストアを行い、全てのク
ラスタの対応データを含むデータユニットに対応する無
効化データのビットをセットして新規所有者データを生
成して処理を終了する(ステップ115、167、10
5)。
【0073】(4)ステップ102の検索で、レベル2
キャッシュヒットの場合、そのデータに対応する所有者
データを参照し、そのデータを持つクラスタに無効化リ
クエストを発行する(ステップ117、118)。
【0074】(5)次に、無効化リクエストの発行によ
る所有者表の更新を行うための新しい無効化データを図
6により説明したように生成し、これまでの無効化デー
タと新しい無効化データとを比較して所有者データの更
新が必要か否か判定し、更新が必要でない場合そのまま
処理を終了する(ステップ168、121、105)。
【0075】(6)ステップ121でのこれまでの無効
化データと新しい無効化データとを比較で、所有者デー
タの更新が必要な場合、新しい無効化データで所有者表
を更新して、I/Oプロセッサからのストア命令発行時
の処理を終了する(ステップ122、105)。
【0076】前述した本発明の実施形態は、ストアスル
ー型のレベル1キャッシュを有する複数のプロセッサ及
びこれらの複数のプロセッサから共有されるストアスル
ー型のレベル1.5キャッシュにより構成されるクラス
タの複数と、これらの複数のクラスタが接続され、その
内部に前記複数のプロセッサのそれぞれから共有される
ストアイン型のレベル2キャッシュを有する記憶制御装
置とを有し、レベル1キャッシュ、レベル1.5キャッ
シュ、レベル2キャッシュ、主記憶装置が階層構造の記
憶装置として構成されている情報処理装置に本発明を適
用したものとして説明したが、本発明は、ストアスルー
型のレベル1キャッシュを有する複数のプロセッサと、
これらのプロセッサが接続され、その内部に前記複数の
プロセッサのそれぞれから共有されるストアイン型のレ
ベル2キャッシュを有する記憶制御装置とを有し、レベ
ル1キャッシュ、レベル2キャッシュ、主記憶装置が階
層構造の記憶装置として構成されている情報処理装置に
対しても適用することができる。
【0077】
【発明の効果】以上説明したように本発明によれば、複
数のプロセッサと階層構造のキャッシュメモリとを備え
た情報処理装置のキャッシュメモリの一致制御を、少な
い論理量で、バスのビジー率を低減し、キャッシュミス
を増大させないように行うことができる。
【図面の簡単な説明】
【図1】本発明の一実施形態による情報処理装置の構成
を示すブロック図である。
【図2】レベル1.5キャッシュの制御機構の構成を示
すブロック図である。
【図3】記憶制御装置の構成を示すブロック図である。
【図4】SCにおいてメモリリクエストがリクエストプ
ライオリティを通過し、無効化ベクトルを生成するまで
の過程を説明する図である。
【図5】所有者表内のレベル2キャッシュの各ラインに
対応した所有者データの構成を説明する図である。
【図6】各リクエストに対する無効化リクエスト発行に
ついて説明する図である。
【図7】無効化リクエスト発行機能の構成を示すブロッ
ク図である。
【図8】リクエストキューの構成を説明する図である。
【図9】クラスタがフェッチ命令を発行したときのSC
での処理動作を説明するフローチャートである。
【図10】プロセッサがストア命令を発行したときのS
Cでの処理動作を説明するフローチャートである。
【図11】プロセッサが“Fetch & Set Lock”命令を発
行したときのSCでの処理動作を説明するフローチャー
トである。
【図12】プロセッサが“Store & Release Lock”命令
を発行したときのSCでの処理動作を説明するフローチ
ャートである。
【図13】I/Oプロセッサがフェッチ命令を発行した
ときのSCでの処理動作を説明するフローチャートであ
る。
【図14】I/Oプロセッサがストア命令を発行したと
きのSCでの処理動作を説明するフローチャートであ
る。
【符号の説明】
10a〜10n クラスタ 11 記憶制御装置(SC) 12 主記憶装置 13a〜13m プロセッサ(IP) 14a〜14m レベル1キャッシュ 15a〜15n レベル1.5キャッシュ 16 I/Oプロセッサ 17 レベル2キャッシュ 20 クラスタ内リクエストプライオリティユニット 22 レベル1.5キャッシュディレクトリ 23、42 ヒット論理 24 ブロック転送制御機能 25 置換論理 27 無効化リクエストチェック回路 30a〜30n リクエストキュー 31 I/Oリクエストキュー 32 リクエストプライオリティ 37 無効化リクエスト発行機能 41 レベル2キャッシュディレクトリ 43 ライン転送制御論理 44 ディレクトリ置換論理 45 所有者表&所有者表更新論理 46 無効化ベクトル論理
───────────────────────────────────────────────────── フロントページの続き (72)発明者 柿田 宏 神奈川県秦野市堀山下1番地 株式会社日 立製作所エンタープライズサーバ事業部内 Fターム(参考) 5B005 JJ11 KK13 MM05 NN31 PP02 PP21 UU32

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 ストアスルー型のレベル1キャッシュを
    有する複数のプロセッサと、これらのプロセッサが接続
    され、その内部に前記複数のプロセッサのそれぞれから
    共有されるストアイン型のレベル2キャッシュを有する
    記憶制御装置と、該記憶制御装置に接続された主記憶装
    置とを備え、前記レベル1キャッシュ、レベル2キャッ
    シュ、主記憶装置が階層構造の記憶装置として構成され
    ている情報処理装置において、前記記憶制御装置は、前
    記レベル2キャッシュの各ラインについて、そのライン
    のデータを持つプロセッサ番号の一覧からなるデータ所
    有者表と、前記プロセッサからストア命令が発行された
    とき、そのストア命令を発行したプロセッサ以外のプロ
    セッサ内の該当アドレスのレベル1キャッシュを無効化
    するためのリクエストを、前記データ所有者表の内容に
    基づいて発行する無効化リクエスト発行手段とを備える
    ことを特徴とする情報処理装置。
  2. 【請求項2】 前記無効化リクエスト発行手段は、前記
    ストア命令が指すアドレスのデータがレベル2キャッシ
    ュに存在している場合、該当アドレスのデータが存在し
    ているプロセッサに対して選択的に無効化リクエストを
    発行することを特徴とする請求項1記載の情報処理装
    置。
  3. 【請求項3】 ストアスルー型のレベル1キャッシュを
    有する複数のプロセッサ及びこれらの複数のプロセッサ
    から共有されるストアスルー型のレベル1.5キャッシ
    ュにより構成されるクラスタの複数と、これらの複数の
    クラスタが接続され、その内部に前記複数のプロセッサ
    のそれぞれから共有されるストアイン型のレベル2キャ
    ッシュを有する記憶制御装置と、該記憶制御装置に接続
    された主記憶装置とを備え、前記レベル1キャッシュ、
    レベル1.5キャッシュ、レベル2キャッシュ、主記憶
    装置が階層構造の記憶装置として構成されている情報処
    理装置において、前記記憶制御装置は、前記レベル2キ
    ャッシュの各ラインについて、そのラインのデータを持
    つクラスタ番号の一覧からなるデータ所有者表と、前記
    クラスタからストア命令が発行されたとき、そのストア
    命令を発行したクラスタ以外のクラスタ内の該当アドレ
    スのレベル1.5キャッシュ、レベル1キャッシュを無
    効化するためのリクエストを、前記データ所有者表の内
    容に基づいて発行する無効化リクエスト発行手段を備え
    ることを特徴とする情報処理装置。
  4. 【請求項4】 前記無効化リクエスト発行手段は、前記
    ストア命令が指すアドレスのデータがレベル2キャッシ
    ュに存在している場合、該当アドレスのデータが存在し
    ているクラスタに対して選択的に無効化リクエストを発
    行することを特徴とする請求項3記載の情報処理装置。
  5. 【請求項5】 前記無効化リクエストは、該無効化リク
    エストの要因となったストア命令を発行したプロセッサ
    番号を伝える情報を持ち、クラスタ内のプロセッサは、
    自プロセッサからのストア命令による無効化リクエスト
    に対してはレベル1キャッシュの無効化を行わないこと
    を特徴とする請求項3または4記載の情報処理装置。
  6. 【請求項6】 前記記憶制御装置は、ラインアドレス毎
    に独立に動作する複数の系にインタリーブされているレ
    ベル2キャッシュを制御する複数の記憶制御系により構
    成され、前記複数の記憶制御系が無効化リクエストを同
    時に発行する際、各系から発行された無効化リクエスト
    を一旦キューに保持し、無効化リクエストの送付先プロ
    セッサ番号が重複していない複数の無効化リクエストを
    統合して発行する手段を備えることを特徴とする請求項
    3、4または5記載の情報処理装置。
JP2000109707A 2000-04-11 2000-04-11 情報処理装置 Pending JP2001297035A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000109707A JP2001297035A (ja) 2000-04-11 2000-04-11 情報処理装置
US09/828,983 US6564302B1 (en) 2000-04-11 2001-04-10 Information processing apparatus with cache coherency

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000109707A JP2001297035A (ja) 2000-04-11 2000-04-11 情報処理装置

Publications (1)

Publication Number Publication Date
JP2001297035A true JP2001297035A (ja) 2001-10-26

Family

ID=18622357

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000109707A Pending JP2001297035A (ja) 2000-04-11 2000-04-11 情報処理装置

Country Status (2)

Country Link
US (1) US6564302B1 (ja)
JP (1) JP2001297035A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005044342A (ja) * 2003-07-22 2005-02-17 Samsung Electronics Co Ltd マルチプロセッサシステム及びマルチプロセッサシステムのキャッシュ一貫性維持方法
JP2018159989A (ja) * 2017-03-22 2018-10-11 日本電気株式会社 計算機システム及びキャッシュ・コヒーレンス方法
JP2020135196A (ja) * 2019-02-15 2020-08-31 Necプラットフォームズ株式会社 情報処理装置、制御装置、制御方法、およびプログラム

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6697919B2 (en) * 2000-06-10 2004-02-24 Hewlett-Packard Development Company, L.P. System and method for limited fanout daisy chaining of cache invalidation requests in a shared-memory multiprocessor system
US6668308B2 (en) * 2000-06-10 2003-12-23 Hewlett-Packard Development Company, L.P. Scalable architecture based on single-chip multiprocessing
US6760819B2 (en) * 2001-06-29 2004-07-06 International Business Machines Corporation Symmetric multiprocessor coherence mechanism
US7243184B1 (en) * 2002-06-14 2007-07-10 Juniper Networks, Inc. Maintaining packet order using hash-based linked-list queues
US7363427B2 (en) * 2004-01-12 2008-04-22 Hewlett-Packard Development Company, L.P. Memory controller connection to RAM using buffer interface
US7388588B2 (en) * 2004-09-09 2008-06-17 International Business Machines Corporation Programmable graphics processing engine
EP1715405A1 (en) * 2005-04-19 2006-10-25 STMicroelectronics S.r.l. Processing method, system and computer program product for dynamic allocation of processing tasks in a multiprocessor cluster platforms with power adjustment
US7350027B2 (en) * 2006-02-10 2008-03-25 International Business Machines Corporation Architectural support for thread level speculative execution
WO2007099643A1 (ja) * 2006-03-03 2007-09-07 Fujitsu Limited マルチプロセッサシステム及びマルチプロセッサシステムの動作方法
CA2539908A1 (en) * 2006-03-16 2007-09-16 Ibm Canada Limited - Ibm Canada Limitee Lightweight single reader locks
US7958309B2 (en) 2008-02-01 2011-06-07 International Business Machines Corporation Dynamic selection of a memory access size
US8024527B2 (en) * 2008-02-01 2011-09-20 International Business Machines Corporation Partial cache line accesses based on memory access patterns
US8250307B2 (en) * 2008-02-01 2012-08-21 International Business Machines Corporation Sourcing differing amounts of prefetch data in response to data prefetch requests
US20090198910A1 (en) * 2008-02-01 2009-08-06 Arimilli Ravi K Data processing system, processor and method that support a touch of a partial cache line of data
US8140771B2 (en) * 2008-02-01 2012-03-20 International Business Machines Corporation Partial cache line storage-modifying operation based upon a hint
US8108619B2 (en) * 2008-02-01 2012-01-31 International Business Machines Corporation Cache management for partial cache line operations
US8266381B2 (en) * 2008-02-01 2012-09-11 International Business Machines Corporation Varying an amount of data retrieved from memory based upon an instruction hint
US8117401B2 (en) * 2008-02-01 2012-02-14 International Business Machines Corporation Interconnect operation indicating acceptability of partial data delivery
US8255635B2 (en) * 2008-02-01 2012-08-28 International Business Machines Corporation Claiming coherency ownership of a partial cache line of data
CN102067091A (zh) * 2008-06-17 2011-05-18 Nxp股份有限公司 具有混合软硬件控制的高速缓存管理的多处理器***
US8117390B2 (en) * 2009-04-15 2012-02-14 International Business Machines Corporation Updating partial cache lines in a data processing system
US8140759B2 (en) * 2009-04-16 2012-03-20 International Business Machines Corporation Specifying an access hint for prefetching partial cache block data in a cache hierarchy
US8176254B2 (en) * 2009-04-16 2012-05-08 International Business Machines Corporation Specifying an access hint for prefetching limited use data in a cache hierarchy
US8832415B2 (en) * 2010-01-08 2014-09-09 International Business Machines Corporation Mapping virtual addresses to different physical addresses for value disambiguation for thread memory access requests
US9507647B2 (en) * 2010-01-08 2016-11-29 Globalfoundries Inc. Cache as point of coherence in multiprocessor system
WO2013042240A1 (ja) * 2011-09-22 2013-03-28 富士通株式会社 情報処理装置及び情報処理装置の制御方法
KR20140075370A (ko) * 2012-12-11 2014-06-19 한국전자통신연구원 계층적 캐시 구조를 가지는 멀티코어 프로세서
GB2539436B (en) 2015-06-16 2019-02-06 Advanced Risc Mach Ltd Secure initialisation
GB2539428B (en) * 2015-06-16 2020-09-09 Advanced Risc Mach Ltd Data processing apparatus and method with ownership table
GB2539433B8 (en) 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Protected exception handling
GB2539435B8 (en) 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Data processing memory access control, in which an owning process for a region of memory is specified independently of privilege level
GB2539429B (en) 2015-06-16 2017-09-06 Advanced Risc Mach Ltd Address translation
US10387314B2 (en) * 2015-08-25 2019-08-20 Oracle International Corporation Reducing cache coherence directory bandwidth by aggregating victimization requests
US10579548B2 (en) * 2018-03-29 2020-03-03 Western Digital Technologies, Inc. Adaptive interleaving of data transfer requests
US11449336B2 (en) * 2019-05-24 2022-09-20 Texas Instmments Incorporated Method of storing register data elements to interleave with data elements of a different register, a processor thereof, and a system thereof
CN112395322B (zh) * 2020-12-07 2021-06-01 湖南新云网科技有限公司 一种基于分级缓存的列表数据显示方法、装置及终端设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5752264A (en) * 1995-03-31 1998-05-12 International Business Machines Corporation Computer architecture incorporating processor clusters and hierarchical cache memories
US5623632A (en) * 1995-05-17 1997-04-22 International Business Machines Corporation System and method for improving multilevel cache performance in a multiprocessing system
US6052760A (en) * 1997-11-05 2000-04-18 Unisys Corporation Computer system including plural caches and utilizing access history or patterns to determine data ownership for efficient handling of software locks
US6330591B1 (en) * 1998-03-09 2001-12-11 Lsi Logic Corporation High speed serial line transceivers integrated into a cache controller to support coherent memory transactions in a loosely coupled network
US6463507B1 (en) * 1999-06-25 2002-10-08 International Business Machines Corporation Layered local cache with lower level cache updating upper and lower level cache directories
US6356983B1 (en) * 2000-07-25 2002-03-12 Src Computers, Inc. System and method providing cache coherency and atomic memory operations in a multiprocessor computer architecture
US6763434B2 (en) * 2000-12-30 2004-07-13 International Business Machines Corporation Data processing system and method for resolving a conflict between requests to modify a shared cache line
US6711662B2 (en) * 2001-03-29 2004-03-23 Intel Corporation Multiprocessor cache coherence management

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005044342A (ja) * 2003-07-22 2005-02-17 Samsung Electronics Co Ltd マルチプロセッサシステム及びマルチプロセッサシステムのキャッシュ一貫性維持方法
JP2018159989A (ja) * 2017-03-22 2018-10-11 日本電気株式会社 計算機システム及びキャッシュ・コヒーレンス方法
JP2020135196A (ja) * 2019-02-15 2020-08-31 Necプラットフォームズ株式会社 情報処理装置、制御装置、制御方法、およびプログラム
JP7048524B2 (ja) 2019-02-15 2022-04-05 Necプラットフォームズ株式会社 情報処理装置、制御装置、制御方法、およびプログラム

Also Published As

Publication number Publication date
US6564302B1 (en) 2003-05-13

Similar Documents

Publication Publication Date Title
JP2001297035A (ja) 情報処理装置
EP0349122B1 (en) Method and apparatus for filtering invalidate requests
US7360031B2 (en) Method and apparatus to enable I/O agents to perform atomic operations in shared, coherent memory spaces
KR100704089B1 (ko) L2 디렉토리를 이용한 멀티프로세서 시스템의 가-로드촉진 방법 및 장치
JP3661764B2 (ja) 不均等メモリ・アクセス・コンピュータ・システムにおいてエヴィクション・プロトコルを提供するための方法およびシステム
JP2010507160A (ja) データ処理装置の共有メモリへの書込みアクセス要求の処理
JPH0743670B2 (ja) ストアスルーキャッシュ管理システム
KR20040012812A (ko) L2 디렉토리를 이용한 멀티프로세서 시스템의 가-저장촉진 방법 및 장치
US20110320738A1 (en) Maintaining Cache Coherence In A Multi-Node, Symmetric Multiprocessing Computer
US6915396B2 (en) Fast priority determination circuit with rotating priority
US5263144A (en) Method and apparatus for sharing data between processors in a computer system
US7159079B2 (en) Multiprocessor system
KR100851738B1 (ko) 로우-레벨 캐시를 포함한 액세스 촉진용 리버스 디렉토리
KR100828869B1 (ko) 사이클당 다중 캐시 라인 무효화 지원 장치 및 방법
US6950906B2 (en) System for and method of operating a cache
US6178484B1 (en) DCBST with ICBI mechanism to maintain coherency of bifurcated data and instruction caches
JP2000330965A (ja) マルチプロセッサシステム及びそのメモリアクセストランザクションの転送方法
WO1997004392A1 (en) Shared cache memory device
EP3850490B1 (en) Accelerating accesses to private regions in a region-based cache directory scheme
KR100380674B1 (ko) 멀티프로세서 시스템에서의 기록-통과 기억 동작동안 캐시코히어런스를 유지하는 방법 및 시스템
US6934810B1 (en) Delayed leaky write system and method for a cache memory
US10489292B2 (en) Ownership tracking updates across multiple simultaneous operations
JP2001092801A (ja) マルチプロセッサ装置
JP2002055881A (ja) キャッシュ一致制御の実現方法およびこれを用いたデータ処理装置
Mak et al. Shared-cache clusters in a system with a fully shared memory