JP3428618B2 - プログラムのキャッシュ局所性改善方法 - Google Patents

プログラムのキャッシュ局所性改善方法

Info

Publication number
JP3428618B2
JP3428618B2 JP26433997A JP26433997A JP3428618B2 JP 3428618 B2 JP3428618 B2 JP 3428618B2 JP 26433997 A JP26433997 A JP 26433997A JP 26433997 A JP26433997 A JP 26433997A JP 3428618 B2 JP3428618 B2 JP 3428618B2
Authority
JP
Japan
Prior art keywords
cache
program
improving
locality
threads
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
JP26433997A
Other languages
English (en)
Other versions
JPH10116198A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of JPH10116198A publication Critical patent/JPH10116198A/ja
Application granted granted Critical
Publication of JP3428618B2 publication Critical patent/JP3428618B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータシス
テムに関し、特に、キャッシュ局所性を高める方法、即
ち、特定の適用プログラムやデータがキャッシュ内にて
発見される可能性を増大させる方法に関する。
【0002】
【従来の技術】プロセッサ(中央処理装置)とメモリと
の能力差は過去数年継続して拡大してきた。特に、プロ
セッサの性能が年率50%で向上している一方、メモリ
の性能、特にダイナミックランダムアクセスメモリ(D
RAM)の性能増大は年率僅か10%であった(例とし
て下記参照;John L. Hennessy 及び Norman P. Jouppi
“コンピュータ技術及び構成:進展する相互作用”IEEE
コンピュータ 1991年9月 24巻9号 頁18-29 及び Willi
am A. Wulf Sally A. McKee“メモリ壁をヒット:隠さ
れた暗示”コンピュータ構成ニュース 1995年3月 23巻1
号 頁20-24)。
【0003】適当なメモリの価格を維持しながら現在の
プロセッサで達成できる高速クロックレートを利用する
ため、アドレスパイプラインまたは高速一時保管(キャ
ッシュ)の様な技術がしばしば使用されている。キャッ
シュとは、プロセッサと大型で遅いメモリとの間に配置
された比較的小型で高速のメモリである。現在の設計方
法論ではしばしばマルチプルレベルのキャッシュが採用
されている。
【0004】図5は、従来のキャッシュメモリシステム
の一構成例を示すブロック図である。
【0005】図5に示すように本従来例においては、中
央プロセッサ110は相互連絡線160を通じて外部キ
ャッシュ100と連結されており、外部キャッシュ10
0には、速いキャッシュ130と、オプションとしての
キャッシュコントローラ140とが設けられている。な
お、典型的な実行例として、速いキャッシュ130はス
タティックランダムアクセスメモリ(SRAM)で遅い
主メモリ150はダイナミックランダムアクセスメモリ
(DRAM)が挙げられる。また、現在の多くの高性能
中央プロセッサにおいては、しばしばチップ上キャッシ
ュ120が設けられている。とり決めとしてL1キャッ
シュはプロセッサ110に最も近いキャッシュ120
で、最低レベルのLkキャッシュはメモリ150に最も
近いキャッシュ130とする。
【0006】プログラム実行中においては、チップ上に
設けられたキャッシュ120とキャッシュ130とは共
に主メモリ150の内容の一部を含んでいる。プロセッ
サがメモリ内の希望する部分にアクセスしようと試みた
場合、メモリ内の希望する部分がキャッシュ内(チップ
上及びチップ外で)にあるかどうかを判断するためチェ
ックが行われる。希望する部分がキャッシュ内にあると
判断された場合は、その希望する部分は実行のために簡
単にプロセッサに送付され、希望する部分がキャッシュ
内に存在しないと判断された場合は、メモリ内の希望す
る部分がキャッシュ内に送付され、次いでプロセッサに
送られる。メモリ内の希望する部分を取り出しキャッシ
ュ内に置くことができれば、今後の参照は一部を取り出
したメモリの他の部分に向かうことになる。
【0007】ここで、重要なことは、キャッシュの大き
さが、主メモリの全体量に比べて合理的に小さくなけれ
ばならないことである。さもなければ、キャッシュを使
用することによる経済性が失わてしまう。また、キャッ
シュシステムは、所定時間内にアクセスされるべきプロ
グラムコードとデータとがキャッシュ内に存在する可能
性が高くなるように設計されていなければならない。さ
もなければ、システム性能の信頼性が低下してしまう。
【0008】適用コードやデータがキャッシュからアク
セスされたときは、キャッシュ“ヒット”が生じ、遅い
主メモリからアクセスされたときは、キャッシュ“ミ
ス”が生じる。キャッシュの有効性は、キャッシュ内に
おいて適用コードやデータを発見した単なるアクセス確
率であるヒット率と呼ばれる要因で測定される。ヒット
率は数個の要素即ち、キャッシュの大きさ(主要因)、
キャッシュが満杯であるときに置き換える場所を定める
方法及びその時作動する適用プログラムの性質等により
作用される。
【0009】プロセッサとメモリとの性能ギャップが広
がるにつれて、適用プログラムの性能はキャッシュミス
の存在に影響を受けやすい。キャッシュ内に希望の部分
があるかどうかを判断し、その後、遅い主メモリから適
用コードやデータをアクセスする場合、それに要する時
間は、キャッシュ無しのシステムに比べて全体アクセス
時間が数クロックサイクル増大してしまう。第二レベル
のキャッシュミスに関連する処理損失時間は数十CPU
サイクルであるが、特にキャッシュの大きさより大きな
データセットを有し広範囲のメモリ参照局所性を明示し
ない適用プログラムの場合にはその損失がかなり増大し
てしまう。
【0010】本例においては、適用プログラムのデータ
局所性に関する改善を行い、それにより、プロセッサと
メモリとの性能ギャップを最小限にしようと試みた。か
かる従来型のソフトウェア技術の一つはブロッキングと
呼ばれ、W. Abu-Sufah, D. J. Kuck 及び D. J. Lawrie
等が “仮想メモリコンピュータの為の自動プログラム
変換”と題して記述し1979 ナショナルコンピュータ会
議議事録 1979年6月 頁969-974 に発表し、また D. Cal
lahan, K. Kennedy 及び A. Porterfield 等が“ソフト
ウエヤ事前呼び出し”と題して記述し プログラム言語
及びオペレイティングシステムの構成サポートに関する
第4回国際会議議事録 1991年4月 頁40-52に発表した。
【0011】ブロッキング方法を支える基本的構想は、
キャッシュにはめ込まれたある塊のデータを再使用する
ようにプログラムを再構築することである。この方法は
キャッシュミスを最大限に減少させ、仮想メモリ、キャ
ッシュ及びレジスタを含め如何なる記憶階層にも適用で
きるものとして提示されてきた。しかしながら、ブロッ
キング方法は自動的にも手動でも行うことができるが、
自動的施行は限定された状況においてのみ有効であり、
手動施行はしばしば実施が複雑となり困難である。
【0012】
【発明が解決しようとする課題】従ってこの技術分野に
おいては、適用プログラムの局所性問題を効率的にまた
簡単且つ有効に改善する方法の必要性、ゆえに、キャッ
シュメモリの有効性確保の必要性が依然残されている。
【0013】
【課題を解決するための手段】上記問題点を解決するた
めに本発明は、コンピュータシステムにて実行される適
用プログラムがキャッシュ内に所在する度合いを改善す
るプログラムのキャッシュ局所性改善方法であって、前
記プログラムを1つ以上のスレッドに分解する手順と、
次のスレッドが前記キャッシュ中に存在するように前記
スレッドを引き続き作動させるようにスケジューリング
する手順とを有し、前記スケジューリング手順は、k個
のデータを参照するスレッドをk次元のスペース内にて
該スレッドと関連したキャッシュのアドレスに基づいて
表示された点として表現し、キャッシュミスを減少させ
る要求を満足する、その点を辿る経路を抽出する手順
と、スケジューラに対して前記スレッドの各々と関連し
キャッシュのアドレスを与える手順と、抽出された経
路に基づいてスレッドの実行手順を決定する手順とを
備することを特徴とする。
【0014】
【0015】
【0016】
【0017】
【0018】
【0019】前記k次元スペースを同じ大きさのブロッ
クに分割する手順と、前記スレッドと関連したキャッシ
ュのアドレスを用いてブロックの一つを特定する手順と
を有することを特徴とする。
【0020】
【0021】また、前記経路は、スペース内の異なるブ
ロック間を通過する経路であることを特徴とする。
【0022】また、前記経路は、異なるブロック間を結
ぶ最短経路であることを特徴とする。
【0023】また、前記ブロックの一つが高レベルキャ
ッシュに対するスペースであることを特徴とする。
【0024】
【0025】
【0026】
【0027】(作用)上記のように構成された本発明に
おいては、コンピュータシステム上で適用プログラムの
局所性問題を有利に改善するスレッド計画方法の開発に
向けて技術の進歩を計り、それにより全体のシステム性
能を強化する一方、スレッドの創設、スケジューリング
及び終了に関する経費を最小にすることができる。
【0028】この方法は適用プログラムをきめ細かいス
レッドに分解し、次いで適用プログラムの局所性問題を
改善する様にスレッドをスケジューリングする。
【0029】スケジューリング方法においては、適用プ
ログラムに組み込まれており、適用プログラム自身の上
で作動することや、コンピュータオペレーティングシス
テム内で作動し、その下で作動する個々の適用プログラ
ムに作用を及ぼすこと等が考えられる。
【0030】この方法は同じ大きさのブロックに分割さ
れるk次元のスペースを作り出す。
【0031】そこでは各スレッドが一つ以上の情報、例
えばk次元のスペース内で座標として働くデータのアド
レスを有し、それによりスペース内の相当する場所が画
定される。スケジューラはキャッシュミスを最小にする
各点を通る移動路即ち経路を決定する。好適なことにこ
の方は多数のレベルのキャッシュにも拡大できる。
【0032】
【発明の実施の形態】以下に、本発明の実施の形態につ
いて図面を参照して説明する。なお、以下に示す実施の
形態においては、簡略化のため、様々の場合で2次元の
スペースについて説明を行うが、原理はk次元のスペー
スにも同様に適用できる。
【0033】図1は、本発明のプログラムのキャッシュ
局所性改善方法の実施の一形態を説明するための図であ
り、(a)は、本発明がユーザ適用プログラムに組み込
まれた状態を示すブロック線図、(b)は、本発明が作
動システムに組み込まれた状態を示すブロック線図であ
る。
【0034】本発明の主題である方法は、適用プログラ
ムをきめ細かいスレッドに分解し、その後、プログラム
の局所性状態を改善するようにこれらのスレッドのスケ
ジューラを作成する。作成されたスケジューラは図1に
示すように、ユーザレベルの適用プログラム内(ユーザ
スペース)に組み込むかオペレーティングシステムの中
核(中核スペース)に組み込むことができる。
【0035】これらの背景として現在のオペレーティン
グシステムにおいては、システム構築用ブロックとして
役立つ多数のプログラム作成用抽象観念が提供されてい
る。これら抽象観念の一つはタスクと呼ばれ、この抽象
観念は一般に、仮想メモリや通信ポートの様な共同体の
グループに対する資源を全て包含している。他の抽象観
念はスレッドで、特定のタスクと関連した有効な計算方
法である。システム内の全てのスレッドはそれぞれ一つ
のタスクと関連し、また多数のスレッドがしばしば同一
のタスクと関連することがある。現在のシステムで重要
なことは、スレッドが同時に作動できることで、単一プ
ロセッサの機械では使用できるプロセッサ時間を作動可
能スレッド間に割り当てることができ、また多数プロセ
ッサシステムではスレッドが並列作動できることであ
る。
【0036】本形態に戻ってマトリックス乗法例を考え
てみる。C=A×B。ここにA,B,Cは全てn行n列
のマトリックスである。プログラムの局所性問題を改善
するためにBが計算の前後に位置を交換される(列主体
の保管と仮定して)。一つの計算実行には次のように、
入れ子ループ計算を行う。
【0037】 ここに最内側ループ(for k = 1 to n)が二つのn−要
素ベクトルの内積を計算する。
【0038】非常に細分化されたスレッドを使用し、内
積ループを下記のスレッドで置換できる。
【0039】 上述したような簡単な例は、例示の如く手計算で容易に
できるが、実用上の変換においては、更に重要な実行上
の問題が生じてくる。特に、スレッド創造、スケジュー
リング、作動開始及び作動終了における計算コストは、
内積計算中のキャッシュミスの場合の計算コストよりも
低くなければならない。さらに、スレッドのスケジュー
リング方法はプログラムの局所性問題を改善する合理的
な決定を行わなければならない。
【0040】スレッドのスケジューリングを合理的に行
うためには、スケジューラに対して、スレッドが行った
メモリ参照の内容を知らせなければならない。ここで、
問題を完全に理解するため、一つのスレッドがその作業
実行中にk個のデータを参照すると仮定し、またk個の
データの最初のアドレスがスレッドスケジューラに知ら
れていると仮定し、さらにまた、全てのスレッドが互い
に独立であると仮定する。
【0041】スレッドtiがその実行中に参照したj番
目のデータの最初のアドレスをaijとすると、スレッド
iはti(ai1,・・・,aik)で表される。それ故、
n個のスレッドがt1,t2,・・・,tnの順に実行さ
れればその値は次の順列で表示できる。
【0042】 t1(a11,・・・,a1k)、 t2(a21,・・・,a2k)、 ・ ・ ・ tn(an1,・・・,ank)、 一度この形になるとスケジューリング上の問題点は、k
次元の幾何学的問題となる。特に、スレッドt
i(ai1,・・・,aik)はk次元スペース内の点で、
そこでの点の座標は(ai1,・・・,aik)である。そ
こで、スケジューリング上の問題点は、最小キャッシュ
ミスの要求を満足するスペース内のスレッド点の移動経
路を発見するのに等しいと見なすことができる。
【0043】そして、各スレッドと関連したデータセッ
ト(ai1,・・・,aik)をスケジューラに対する情報
のセットと置き換えることによりこの一般的な問題が解
決される。典型的な情報としては、関連するデータのア
ドレスがある。また、単一多次元スペース内の座標等の
他のタイプの情報も可能である。二次元の場合はこのよ
うな2つのアドレスがある。この様に問題を解決してい
くと、スケジューリング上の問題は図2に示すように二
次元平面上の点の移動経路を発見する問題に縮小するこ
とができる。
【0044】図2は、二次元平面において本発明の教義
に準拠してスレッドのスケジューリングを行う状態を示
す図であり、図3は、本発明のプログラムのキャッシュ
局所性改善方法の実施の一形態を説明するためのフロー
チャートである。
【0045】ここで図2を参照すると、各スレッドは二
つの情報(hi,hj)で定まる座標を有する平面内の点
として表示されている。キャッシュミスを最小にするた
め、スケジューリング方法においては “群”特性、即
ち、同じまたは類似の情報を有するスレッドが移動中群
れ集まるという特性を有する移動経路を発見する。
【0046】本方法においては、まず、k次元のスペー
スを同寸法のブロックに分割する(ステップS1)。こ
こで、スレッドと関連する情報はスレッドを特有のブロ
ックに配置するための座標として使用される。例えば、
二次元のスペースにおいて、スレッドの二つの情報(h
i,hj)が、スレッドを特有のブロックに配置するため
の座標として使用されている。好適な実施の形態におい
て実現したように、各ブロックは二次元スペース内のブ
ロックの各寸法から一つずつ合計二つのユーザメモリを
包含する。もし、ブロックのk次元の合計がキャッシュ
寸法Cよりも少なければ、そしてもし同ブロックに並ぶ
スレッドが一緒にスケジューリングされたら、ブロック
内のスレッドの実行によりキャッシュミスが生じること
はない。それ故、ブロックの各寸法の大きさはキャッシ
ュ寸法の1/kである。
【0047】次に、ブロックを経路、好ましくは最短の
経路に沿って移動させる(ステップS2)。
【0048】そして、空でない各ブロックに対してはス
ケジューラはすべてのスレッドをある順番に実行する
(ステップS3)。もし、スケジューラが最低レベルの
キャッシュ、即ち、二つのレベルのキャッシュを有する
システム内での第二レベルのキャッシュのキャッシュミ
スを最小化すれば良いのならば、同ブロック内のスレッ
ドのスケジューラを作成するとき、スケジューラは任意
の順序でスケジューリングすることができる。同じブロ
ック内のスレッドのデータ参照は全てキャッシュに適合
するからキャッシュミスは生じない。
【0049】加えて、スケジューリング方法は、マルチ
レベルのキャッシュを取扱うことができる。これは、上
述したスペースを複数組み合せて行われる。2レベルの
キャッシュを取扱うため、ブロックを第一レベルキャッ
シュのためのスペースと考えることができる。この平面
は次に同じ大きさの小さなブロックに分割される。各小
ブロックの大きさは、第一レベルのキャッシュ寸法の1
/2未満が好ましい。スケジューラは次いで最上位レベ
ルのスペース内の正規ブロックに適用したと同じ方法
で、入れ子状の平面内の小ブロックをある経路に沿って
横移動する。
【0050】図4は、本発明の作業が実行されるシステ
ムの一構成例を示す図である。
【0051】本システムは図4に示すように、中央プロ
セッサ410と、メモリ間に挟まれた一つ以上のレベル
のキャッシュ430,440を有するメモリ420とか
ら構成されている。
【0052】当業者には明らかなように、Lkキャッシ
ュ440は典型的には最大、最遅でメモリ420に最も
近いキャッシュブロックであって、一般的には最低レベ
ルキャッシュと呼ばれている。この様なマルチレベルの
キャッシュ配置は一般に知られており、現在のコンピュ
ータシステムにも容易に組み込むことができる。なお、
上述した実施の形態は、本発明の単なる説明例であり、
本技術に熟達した者が本発明の範囲を逸脱することな
く、各種のまた多数の他の配置を考え得ることは当然で
ある。従って本発明は添付の請求項に定めるように規定
される。
【0053】
【発明の効果】本発明は、以上説明したように構成され
ているので、コンピュータシステム上で適用プログラム
の局所性問題を有利に改善するスレッド計画方法の開発
に向けて技術の進歩を計り、それにより全体のシステム
性能を強化する一方、スレッドの創設、スケジューリン
グ及び終了に関する経費を最小にすることができる。
【図面の簡単な説明】
【図1】本発明のプログラムのキャッシュ局所性改善方
法の実施の一形態を説明するための図であり、(a)
は、本発明がユーザ適用プログラムに組み込まれた状態
を示すブロック線図、(b)は、本発明が作動システム
に組み込まれた状態を示すブロック線図である。
【図2】二次元平面において本発明の教義に準拠してス
レッドのスケジューリングを行う状態を示す図である。
【図3】本発明のプログラムのキャッシュ局所性改善方
法の実施の一形態を説明するためのフローチャートであ
る。
【図4】本発明の作業が実行されるシステムの一構成例
を示す図である。
【図5】従来のキャッシュメモリシステムの一構成例を
示すブロック図である。
【符号の説明】
210 スレッド 220 適用プログラム 230 オペレーティングシステム 250 スケジューラ 410 中央プロセッサ 420 メモリ 430,440 キャッシュ
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI G06F 12/08 581 G06F 9/44 322G 322H (72)発明者 ジェームス エフ.フィルビン アメリカ合衆国 08840 ニュージャー ジー州 メトゥチェン ヒルサイド ア ヴェニュー 116 (56)参考文献 特開 平6−96039(JP,A) 特開 平7−84799(JP,A) 特開 平8−212054(JP,A) 特開 平8−328870(JP,A) James Philbin,et. al.,”Thread Schedu ling for Cache Loc ality”,ACM SIGPLAN Notices,1996年 9月,Vo l.31,No.9,pp.60−71,JS T資料番号:D0915A、ISSN:0362 −1340 Frank Mueller,”Co mpiler Support for Software−Based Ca che Partitioning”, ACM SIGPLAN Notice s,1995年11月,Vol.30,No. 11,pp.125−133,ISSN:0362− 1340 尾形三喜雄・他,「RISCプロセッ サ「VR3000」研究3」,インターフェ ース,日本,CQ出版株式会社,1991年 1月 1日,Vol.17,NO.1, pp.253−270 牧晋広・他,「URCHMSのプログ ラムによる高速化手法」,情報処理学会 研究報告,日本,1996年 8月29日,V ol.96,No.80,pp.73−78 北島宏之・他,「FL階層化並列簡約 システムの性能評価」,情報処理学会研 究報告,日本,1995年 6月 1日,V ol.95,No.56,pp.1−8 小沢年弘・他,「ロード命令の先行実 行とその評価」,情報処理学会研究報 告,日本,1994年12月13日,Vol. 94,NO.107,pp.1−8 (58)調査した分野(Int.Cl.7,DB名) G06F 9/45 G06F 9/46 G06F 12/08 - 12/12 G06F 11/28 G06F 11/34 JSTファイル(JOIS) CSDB(日本国特許庁) WPI/L(QUESTEL) INSPEC(DIALOG)

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】 コンピュータシステムにて実行される適
    用プログラムがキャッシュ内に所在する度合いを改善す
    るプログラムのキャッシュ局所性改善方法であって、 前記プログラムを1つ以上のスレッドに分解する手順
    と、 次のスレッドが前記キャッシュ中に存在するように前記
    スレッドを引き続き作動させるようにスケジューリング
    する手順とを有し、 前記スケジューリング手順は、k個のデータを参照するスレッドをk次元のスペース内
    にて該スレッドと関連したキャッシュのアドレスに基づ
    いて表示された点として表現し、 キャッシュミスを減少
    させる要求を満足する、その点を辿る経路を抽出する手
    順と、 スケジューラに対して前記スレッドの各々と関連した
    ャッシュのアドレスを与える手順と、抽出された経路に基づいてスレッドの実行手順を決定す
    る手順とを 具備することを特徴とするプログラムのキャ
    ッシュ局所性改善方法。
  2. 【請求項2】 請求項1に記載のプログラムのキャッシ
    ュ局所性改善方法において、 前記k次元スペースを同じ大きさのブロックに分割する
    手順と、 前記スレッドと関連したキャッシュのアドレスを用いて
    ブロックの一つを特定する手順とを有することを特徴と
    するプログラムのキャッシュ局所性改善方法。
  3. 【請求項3】 請求項に記載のプログラムのキャッシ
    ュ局所性改善方法において、 前記経路は、スペース内の異なるブロック間を通過する
    経路であることを特徴とするプログラムのキャッシュ局
    所性改善方法。
  4. 【請求項4】 請求項に記載のプログラムのキャッシ
    ュ局所性改善方法において、 前記経路は、異なるブロック間を結ぶ最短経路であるこ
    とを特徴とするプログラムのキャッシュ局所性改善方
    法。
  5. 【請求項5】 請求項3に記載のプログラムのキャッシ
    ュ局所性改善方法において、 前記ブロックの一つが高レベルキャッシュに対するスペ
    ースであることを特徴とするプログラムのキャッシュ局
    所性改善方法。
JP26433997A 1996-09-30 1997-09-29 プログラムのキャッシュ局所性改善方法 Expired - Fee Related JP3428618B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/724562 1996-09-30
US08/724,562 US5724586A (en) 1996-09-30 1996-09-30 Method for improving cache locality of a computer program

Publications (2)

Publication Number Publication Date
JPH10116198A JPH10116198A (ja) 1998-05-06
JP3428618B2 true JP3428618B2 (ja) 2003-07-22

Family

ID=24910934

Family Applications (1)

Application Number Title Priority Date Filing Date
JP26433997A Expired - Fee Related JP3428618B2 (ja) 1996-09-30 1997-09-29 プログラムのキャッシュ局所性改善方法

Country Status (3)

Country Link
US (1) US5724586A (ja)
EP (1) EP0833247A3 (ja)
JP (1) JP3428618B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008544417A (ja) * 2005-06-29 2008-12-04 インテル コーポレイション キャッシュする方法、装置及びシステム

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3178403B2 (ja) * 1998-02-16 2001-06-18 日本電気株式会社 プログラム変換方法、プログラム変換装置及びプログラム変換プログラムを記憶した記憶媒体
US6243788B1 (en) * 1998-06-17 2001-06-05 International Business Machines Corporation Cache architecture to enable accurate cache sensitivity
US6938252B2 (en) * 2000-12-14 2005-08-30 International Business Machines Corporation Hardware-assisted method for scheduling threads using data cache locality
US7337443B2 (en) * 2003-06-30 2008-02-26 Microsoft Corporation Method and apparatus for processing program threads
US20050044538A1 (en) * 2003-08-18 2005-02-24 Srinivas Mantripragada Interprocedural computing code optimization method and system
US7441101B1 (en) 2003-12-10 2008-10-21 Cisco Technology, Inc. Thread-aware instruction fetching in a multithreaded embedded processor
US7360064B1 (en) 2003-12-10 2008-04-15 Cisco Technology, Inc. Thread interleaving in a multithreaded embedded processor
US7206922B1 (en) 2003-12-30 2007-04-17 Cisco Systems, Inc. Instruction memory hierarchy for an embedded processor
US7818747B1 (en) * 2005-11-03 2010-10-19 Oracle America, Inc. Cache-aware scheduling for a chip multithreading processor
DE102006020178A1 (de) * 2006-05-02 2007-11-08 Fujitsu Siemens Computers Gmbh Verfahren und Computerprogrammprodukt zur Ausführung eines Programms auf einem Prozessor mit Multithreading-Architektur
US10140210B2 (en) * 2013-09-24 2018-11-27 Intel Corporation Method and apparatus for cache occupancy determination and instruction scheduling
GB2521151B (en) * 2013-12-10 2021-06-02 Advanced Risc Mach Ltd Configurable thread ordering for a data processing apparatus
GB2521155B (en) 2013-12-10 2021-06-02 Advanced Risc Mach Ltd Configuring thread scheduling on a multi-threaded data processing apparatus
CN104717152B (zh) * 2013-12-17 2019-07-19 深圳市中兴微电子技术有限公司 一种实现接口缓存动态分配的方法和装置
JP2019179417A (ja) * 2018-03-30 2019-10-17 株式会社デンソー スケジューリング方法、スケジューリング装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5185861A (en) * 1991-08-19 1993-02-09 Sequent Computer Systems, Inc. Cache affinity scheduler
US5287508A (en) * 1992-04-07 1994-02-15 Sun Microsystems, Inc. Method and apparatus for efficient scheduling in a multiprocessor system

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
Frank Mueller,"Compiler Support for Software−Based Cache Partitioning",ACM SIGPLAN Notices,1995年11月,Vol.30,No.11,pp.125−133,ISSN:0362−1340
James Philbin,et.al.,"Thread Scheduling for Cache Locality",ACM SIGPLAN Notices,1996年 9月,Vol.31,No.9,pp.60−71,JST資料番号:D0915A、ISSN:0362−1340
北島宏之・他,「FL階層化並列簡約システムの性能評価」,情報処理学会研究報告,日本,1995年 6月 1日,Vol.95,No.56,pp.1−8
小沢年弘・他,「ロード命令の先行実行とその評価」,情報処理学会研究報告,日本,1994年12月13日,Vol.94,NO.107,pp.1−8
尾形三喜雄・他,「RISCプロセッサ「VR3000」研究3」,インターフェース,日本,CQ出版株式会社,1991年 1月 1日,Vol.17,NO.1,pp.253−270
牧晋広・他,「URCHMSのプログラムによる高速化手法」,情報処理学会研究報告,日本,1996年 8月29日,Vol.96,No.80,pp.73−78

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008544417A (ja) * 2005-06-29 2008-12-04 インテル コーポレイション キャッシュする方法、装置及びシステム

Also Published As

Publication number Publication date
EP0833247A3 (en) 1999-05-12
EP0833247A2 (en) 1998-04-01
US5724586A (en) 1998-03-03
JPH10116198A (ja) 1998-05-06

Similar Documents

Publication Publication Date Title
JP3428618B2 (ja) プログラムのキャッシュ局所性改善方法
Rogers et al. Cache-conscious wavefront scheduling
Joseph et al. Prefetching using markov predictors
US6324623B1 (en) Computing system for implementing a shared cache
EP0747816B1 (en) Method and system for high performance multithread operation in a data processing system
Larus et al. Using cohort scheduling to enhance server performance
Solihin et al. Using a user-level memory thread for correlation prefetching
US6618737B2 (en) Speculative caching of individual fields in a distributed object system
US5784697A (en) Process assignment by nodal affinity in a myultiprocessor system having non-uniform memory access storage architecture
Chen et al. Improving hash join performance through prefetching
Kaxiras et al. Improving CC-NUMA performance using instruction-based prediction
US5737750A (en) Partitioned single array cache memory having first and second storage regions for storing non-branch and branch instructions
Snyder et al. Fast context switches: Compiler and architectural support for preemptive scheduling
JPH07271674A (ja) キャッシュ最適化の方法
Kavi et al. Design of cache memories for multi-threaded dataflow architecture
Guo et al. Mira: A program-behavior-guided far memory system
US20080005726A1 (en) Methods and systems for modifying software applications to implement memory allocation
JPH03129454A (ja) マルチプロセッサシステム
Ahn et al. SEOF: an adaptable object prefetch policy for object-oriented database systems
Bellew et al. Update propagation in distributed memory hierarchy
Eickemeyer et al. Evaluation of multithreaded processors and thread-switch policies
Bellosa Locality-information-based scheduling in shared-memory multiprocessors
Kavi et al. Design of cache memories for dataflow architecture
Lin et al. I-structure software cache: a split-phase transaction runtime cache system
Hurson et al. Cache memories for dataflow systems

Legal Events

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

Free format text: PAYMENT UNTIL: 20090516

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100516

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110516

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20110516

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20120516

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20120516

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20130516

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20140516

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees