JPH09128293A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPH09128293A
JPH09128293A JP7280836A JP28083695A JPH09128293A JP H09128293 A JPH09128293 A JP H09128293A JP 7280836 A JP7280836 A JP 7280836A JP 28083695 A JP28083695 A JP 28083695A JP H09128293 A JPH09128293 A JP H09128293A
Authority
JP
Japan
Prior art keywords
instruction
cache
data
information processing
processing apparatus
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
JP7280836A
Other languages
English (en)
Other versions
JP3717212B2 (ja
Inventor
Kenji Matsubara
健二 松原
Toshihiko Kurihara
俊彦 栗原
Hiromitsu Imori
弘充 位守
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 JP28083695A priority Critical patent/JP3717212B2/ja
Priority to US08/738,912 priority patent/US6131145A/en
Publication of JPH09128293A publication Critical patent/JPH09128293A/ja
Priority to US09/609,376 priority patent/US6381679B1/en
Priority to US10/086,736 priority patent/US6598127B2/en
Priority to US10/086,724 priority patent/US6598126B2/en
Priority to US10/424,706 priority patent/US7028159B2/en
Priority to US10/464,484 priority patent/US7028160B2/en
Application granted granted Critical
Publication of JP3717212B2 publication Critical patent/JP3717212B2/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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30047Prefetch instructions; cache control instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6028Prefetching based on hints or prefetch instructions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】 【課題】 ソフトウェアプリフェッチ命令による情報処
理装置の性能の向上を効果的に図る。 【解決手段】 情報処理装置は、少なくとも、1次キャ
ッシュ22と2次キャッシュ23とを備えて構成され
る。ソフトウェアプリフェッチ命令の中に、オペランド
データを転送するキャッシュ階層、オペランドデータの
転送量、または、その両方を指示することのできる指示
ビットが設けられる。ブロックデータまたはラインデー
タの転送時、前述のソフトウェアプリフェッチ命令内の
指示ビットに基づいて、所要のデータをキャッシュに転
送する。本発明は、これにより、ソフトウェアプリフェ
ッチ命令を効果的に用いて、情報処理装置の性能向上を
図ることができる。

Description

【発明の詳細な説明】
【0001】
【発明が属する技術分野】本発明は、階層構成のキャッ
シュを有する情報処理装置に係り、特に、演算に使用す
るオペランドデータを予め主記憶からキャッシュに転送
しておくことにより、キャッシュミスによるオーバヘッ
ドを隠すことができるようにしたソフトウェアプリフェ
ッチ命令を備えた情報処理装置に関する。
【0002】
【従来の技術】一般に、キャッシュを有する情報処理装
置は、命令により参照したオペランドがキャッシュに存
在しない場合、すなわち、キャッシュミスが生じた場
合、前記オペランドを主記憶から読み出して使用してい
る。通常、この読み出しには、キャッシュアクセスの数
倍から数十倍の時間を要する。このため、この種の情報
処理装置は、キャッシュミスが生じると、オペランドが
主記憶から読み出されるまでの間、後続命令の実行を待
たせることになり、実行時間が長くなってその性能が抑
えられてしまうという問題点を有している。
【0003】前述の問題点を解決することのできる技術
として、予め将来用いるオペランドデータを主記憶から
キャッシュに転送し、そのオペランドデータを用いると
きにはキャッシュヒットとなるようにして、キャッシュ
ミスのペナルティを抑えるようにした技術が知られてお
り、これを実現するためのソフトウェアプリフェッチ命
令に関する研究がなされ、様々な情報処理装置で使用さ
れている。
【0004】ソフトウェアプリフェッチ命令に関する従
来技術として、例えば、論文 Callahan,D.,Kennedy,K.
Porterfield,A.,“Software Prefetching," Proceeding
s ofthe 4th International Conference on Architectu
ral Support for Programming Languages and Operatin
g Systems,April 1991,pp.40-52等に記載された技術が
知られている。
【0005】以下、従来技術による情報処理装置による
ソフトウェアプリフェッチ命令の動作を図面により説明
する。
【0006】図5は従来技術による情報処理装置の構成
例を示すブロック図、図6はソフトウェアプリフェッチ
の有無による処理動作を説明するタイムチャートであ
る。図5において、21はCPU(中央処理装置)、2
2は1次キャッシュ、24はSCU(記憶制御装置)、
25は主記憶である。
【0007】図5に示す従来技術は、1階層キャッシュ
を持つ情報処理装置の例であり、この情報処理装置は、
情報の処理を行うCPU21と、1次キャッシャ22
と、主記憶25と、主記憶25に対する情報の書き込
み、読み出しを制御するSCU24とにより構成されて
いる。この情報処理装置において、CPU21は、オペ
ランドデータを参照する際1次キャッシュ22を検索
し、キャッシュミスの場合SCU24に対して、リクエ
スト線201、アドレス線202を介して該オペランド
データの転送要求を発行する。SCU24は、主記憶2
5から該オペランドデータを読み出し、そのデータをデ
ータ線204を介してCPU21に転送する。CPU2
1は、受け取ったオペランドデータを1次キャッシュ2
2に格納すると共に演算のために使用する。
【0008】次に、CPU21による命令の処理が、I
F(命令フェッチ)、D(デコード)、E(実行)、A
(オペランドアクセス)、W(レジスタ書き込み)の5
段のパイプラインステージにより処理されるものとし
て、図5に示す情報処理装置の動作を説明する。
【0009】前述のように構成される情報処理装置にお
いて、命令0〜命令3が順次パイプラインに投入されて
処理が行われ、ソフトウェアプリフェッチを行わない場
合のタイムチャートが図6(a)に示されている。
【0010】図6(a)に示す例は、ロード命令である
命令1のオペランドアクセスでキャッシュミスが生じた
としている。この場合、命令1の処理は、オペランドア
クセスを行うAステージで、主記憶からオペランドが読
み出されるまでの間待たされることになり、命令1のW
ステージの処理は、それまで実行されずに待たされるこ
とになる。これに伴い、命令2、3のA、Eステージ及
び以降の命令処理が待たされることになるため、キャッ
シュミスにより主記憶からオペランドを読み出すために
要する時間の全てがペナルティとして表れてしまう。
【0011】図6(b)に示すタイムチャートは、ソフ
トウェアプリフェッチを行う場合の例であり、この場
合、ロード命令である命令1の実行に対して、オペラン
ドを主記憶から転送するに要する時間だけ先立って、命
令1’として示すソフトウェアプリフェッチ命令を実行
する。この結果、命令1’によるソフトウェアプリフェ
ッチによってオペランドが主記憶から転送される間、パ
イプラインステージは、処理を中断することなく先に進
み、命令1’に続く命令2、命令3の処理が実行され
る。そして、命令1がオペランドデータをアクセスする
時点では、この命令1が必要とするオペランドデータ
は、ソフトウェアプリフェッチ命令である命令1’によ
り1次キャッシュ22に格納されていることになり、キ
ャッシャヒットとなる。これにより、キャッシュミスに
よるペナルティを隠すことができる。
【0012】図7は従来技術による情報処理装置の他の
構成例を示すブロック図、図8はソフトウェアプリフェ
ッチが行われる場合の処理動作を説明するタイムチャー
トである。図7において、23は2次キャッシュであ
り、他の符号は図5の場合と同一である。
【0013】図7に示す従来技術は、2階層キャッシュ
を持つ情報処理装置の構成例であり、この情報処理装置
は、CPU21内に1次キャッシュ22を内蔵し、2次
キャッシュ23を備えて構成される点で図5に示す従来
技術と相違し、その他の点で同一である。
【0014】図7に示す従来技術において、CPU21
は、オペランドデータを参照する際、まず、1次キャッ
シュ22を検索し、1次キャッシュ22がキャッシュミ
スの場合、2次キャッシュ23を検索する。2次キャッ
シュ23がヒットであれば、2次キャッシュ23から1
次キャッシュ22へオペランドデータが転送される。以
降の説明において、この転送をブロック転送、転送され
るオペランドデータをブロックと呼ぶこととする。
【0015】2次キャッシュ23がキャッシュミスとな
ると、SCU24は、主記憶25からそのオペランドデ
ータを読み出してCPU21に転送する。以降の説明に
おいて、この転送をライン転送、転送されるデータをラ
インと呼ぶこととする。通常、ブロックのデータ量はラ
インのデータ量より小さく、ライン転送の際に2次キャ
ッシュ23にはラインのデータが格納され、1次キャッ
シュ22には参照された1ブロックのデータのみが格納
される。
【0016】次に、前述した場合と同様に、CPU21
による命令の処理が、IF(命令フェッチ)、D(デコ
ード)、E(実行)、A(オペランドアクセス)、W
(レジスタ書き込み)の5段のパイプラインステージに
より処理されるものとして、図7に示す情報処理装置の
動作を説明する。
【0017】前述のように構成される情報処理装置にお
いて、命令0〜命令3が順次パイプラインに投入されて
処理が行われる場合の処理が図8に示されている。図8
(a)は1次キャッシュミスを防止するためのソフトウ
ェアプリフェッチ命令を実行する場合のタイムチャー
ト、図8(b)は1次キャッシュミス、2次キャッシュ
ミスの両方を防止するためのソフトウェアプリフェッチ
命令を実行する場合のタイムチャートである。
【0018】通常、1次キャッシュミス、2次キャッシ
ュミスによるペナルティサイクル数は、それらの間に相
当に大きな差異がある。例えば、前者が4〜5サイク
ル、後者が30〜40サイクル程度である。従って、前
述した2階層キャッシュ構成の情報処理装置において、
オペランドデータの1次キャッシュミスを避けるための
ソフトウェアプリフェッチ命令の実行は、実際にオペラ
ンドデータを参照する命令の少なくとも5サイクル以上
前に行われればよいが、2次キャッシュミスを避けるた
めのソフトウェアプリフェッチ命令の実行は、実際にオ
ペランドデータを参照する命令の少なくとも40サイク
ル以上前に行う必要がある。すなわち、前述した従来技
術は、1次キャッシュミスを避けるか、2次キャッシュ
ミスを避けるかによって、ソフトウェアプリフェッチ命
令と実際にオペランドデータを参照する命令との間隔を
分けなければならない。
【0019】
【発明が解決しようとする課題】前述した2階層以上の
キャッシュ構成を有する従来技術による情報処理装置
は、オペランドデータがどの階層のキャッシュにヒット
するかによりソフトウェアプリフェッチ命令を実行する
時期を変える必要がある。このため、前述の従来技術
は、コンパイラがソフトウェアプリフェッチ命令を生成
しようとする際の制御が複雑になり、ソフトウェアプリ
フェッチ命令の効果を十分に生かすことが困難になると
いう問題点が生じる。
【0020】図9はソフトウェアプリフェッチ動作の対
象となる連続領域に配置された配列データのアドレス関
係を示す図、図10はソフトウェアプリフェッチ命令を
用いて図9に示すように配列されているオペランドデー
タを転送する場合の動作を説明するタイムチャートであ
る。
【0021】以下、図7に示す装置においてブロックサ
イズが32Bであり、ラインサイズが128Bであり、
また、ブロック転送には4サイクル、ライン転送には4
0サイクルを要するものとして、前述の従来技術の問題
点を説明する。
【0022】ソフトウェアプリフェッチ命令が使用され
る例として、最も一般的な連続領域に配置されている配
列A[i](i=0、1、2、……)を順番に参照する
場合を考える。配列A[i]の個々のデータサイズを8
Bとすると、ライン、ブロックのアドレス関係は図9に
示すようになる。
【0023】初期状態において、配列A[i]のデータ
は、全て1次、2次キャッシュともにキャッシュミスと
なったとする。この場合、まず、A[0]のデータを主
記憶からライン転送するため、A[0]のデータを参照
する命令の40サイクル前にソフトウェアプリフェッチ
命令が実行される。この実行により、1ブロック相当の
32Bのデータ、すなわち、A[0]からA[3]まで
のデータが1次キャッシュヒットになる。同様に、ライ
ン相当の128Bのデータ、すなわち、A[0]からA
[15]までのデータが2次キャッシュヒットになる。
【0024】従って、その後の命令の処理におけるA
[1]からA[3]のデータの参照は、すでにこれらの
データが1次キャッシュ22に存在するため、ソフトウ
ェアプリフェッチ命令を必要としない。しかし、A
[4]のデータを必要とする場合、A[4]のデータ
は、2次キャッシュにのみ存在するので、2次キャッシ
ュからブロック転送を行うため、A[4]のデータを参
照する命令の4サイクル前にソフトウェアプリフェッチ
命令が実行される。この実行により、1ブロック相当の
32Bのデータ、すなわち、A[4]からA[7]まで
のデータが1次キャッシュヒットになる。A[8]以降
のデータの参照は、前述と同様なソフトウェアプリフェ
ッチ命令の発行を繰り返えすことにより可能となる。前
述の動作のタイムチャートを示したのが図10である。
【0025】図10から判るように、また、図8により
すでに説明したように、ソフトウェアプリフェッチ命令
の実行間隔は一定でなく、不規則なものになっている。
この理由は、主記憶からライン転送を行うためのソフト
ウェアプリフェッチ命令と、2次キャッシュからブロッ
ク転送を行うためのソフトウェアプリフェッチ命令との
実行間隔が一致していないためである。
【0026】一方、前述したような配列を持つデータに
対するアクセスおよび演算は、極めて規則的な繰り返し
であるため、通常、分岐命令によるループで構成される
命令列により実行される。ソフトウェアプリフェッチ命
令の実行間隔が不規則であると、これらのソフトウェア
プリフェッチ命令をループに組み込むことが困難とな
る。また、ライン転送かブロック転送かを判断するため
の命令が必要になり、このため、命令数の増加を招きソ
フトウェアプリフェッチ命令による処理装置の性能の向
上が妨げられることになる。さらに、1ループでライン
全てのデータを扱うようにした場合でも、同様に命令数
の増加になりソフトウェアプリフェッチ命令による処理
装置の性能の向上が妨げられる。
【0027】本発明の目的は、前述した従来技術の問題
点を解決し、2階層以上のキャッシュ構成を有する情報
処理装置において、コンパイラが命令列を生成しやすい
ソフトウェアプリフェッチ命令を提供し、キャッシュミ
スによる性能の低下を効果的に抑えることができ、これ
により、性能の向上が図られた情報処理装置を提供する
ことにある。
【0028】
【課題を解決するための手段】本発明によれば前記目的
は、演算で用いるオペランドデータを演算の実行に先立
って、予め主記憶からキャッシュに転送するソフトウェ
アプリフェッチ命令を備えた情報処理装置において、前
記ソフトウェアプリフェッチ命令のオペランドコードま
たはオペランドアドレスに、プリフェッチ動作の内容を
指示する1または複数の指示ビットを設け、プリフェッ
チ動作時、前記指示ビットの内容に基づいて、データの
プリフェッチを行うようにすることにより達成される。
【0029】また、前記目的は、前記情報処理装置が2
階層のキャッシュを有する情報処理装置であり、前記指
示ビットにより指示される内容が、プリフェッチするキ
ャッシュの階層の指定、プリフェッチするオペランドの
データ量の指定、または、その両方であり、あるいは、
主記憶から2次キャッシュへある量のオペランドデータ
の転送を行うとき、該オペランドデータを同じ量だけ1
次キャッシュへもプリフェッチする指示、または、ソフ
トウェアプリフェッチでない通常のキャッシュアクセス
を行う命令により転送されるデータ量の整数倍を転送す
る指示とすることにより達成される。
【0030】本発明は、2階層以上のキャッシュ構成を
有する情報処理装置において、コンパイラが命令を生成
するとき、前記指示ビットを用いて、転送を行うキャッ
シュの階層または転送するデータサイズを明示的に指定
することができるので、規則的にソフトウェアプリフェ
ッチ命令を生成することが可能となる。このため、本発
明は、命令列が、配列データのアクセス、配列データの
演算のように命令のループで構成される場合に、アドレ
ス関係を判定する命令等を生成する必要をなくすことが
できる。
【0031】また、本発明は、アドレスが連続するオペ
ランドデータに対するアクセスを行う場合、1個のソフ
トウェアプリフェッチ命令により、一度に複数ラインの
データを転送することができるので、ソフトウェアプリ
フェッチ命令の数を減らすことが可能となる。
【0032】さらに、本発明によるセットアーキテクチ
ャと従来技術のセットアーキテクチャとの互換性を容易
に実現することができる。例えば、ブロックサイズが3
2バイトの場合、ソフトウェアプリフェッチ命令のオペ
ランドアドレスの下位5ビットは、アドレスとして用い
られることはない。この5ビットを使用して前述した指
示を行うようにすれば、命令セットのアーキテクチャを
拡張することなく、互換性を保つことができる。
【0033】本発明は、以上のように、ソフトウェアプ
リフェッチ命令を有効に用いることができ、これによ
り、情報処理装置の性能の向上を図ることができる。
【0034】
【発明の実施の形態】以下、本発明による情報処理装置
の一実施形態を図面により詳細に説明する。
【0035】図1は本発明の一実施形態で使用するソフ
トウェアプリフェッチ命令のオペランドアドレスのフォ
ーマットを示す図、図2は本発明の一実施形態による情
報処理装置の構成例を示すブロック図、図3はソフトウ
ェアプリフェッチ命令のオペランドアドレス中の指示ビ
ットにより指示される動作を説明する図、図4は本発明
の一実施形態によるソフトウェアプリフェッチ命令動作
を説明するタイムチャートである。図2における符号は
図7の場合と同一である。
【0036】以下に説明する本発明の一実施形態におい
て、2次キャッシュから1次キャッシュに転送するデー
タのブロックサイズは32Bであり、主記憶から2次キ
ャッシュに転送するデータのラインサイズは128Bで
あるとする。図1に示すソフトウェアプリフェッチ命令
のオペランドアドレスのフォーマットにおいて、オペラ
ンドアドレスは、ブロックサイズが32Bであることよ
り、オペランドアドレスの下位5ビットがソフトウェア
プリフェッチ命令では不要である。このため、本発明の
一実施形態では、この下位5ビットを、プリフェッチ動
作の内容を指示するビット(以下、PFビットという)
として用いる。
【0037】この下位5ビットのPFビットの値とソフ
トウェアプリフェッチ動作との対応の例が図3に示され
ており、以下、これについて説明する。
【0038】PFビットの値が0のとき、何の指示もな
いことを示す。このとき、ソフトウェアプリフェッチ
は、従来技術の場合と同様に実行される。この指示は従
来技術との互換性を保ちたい場合に有効である。
【0039】PFビットの値が1のとき、オペランドア
ドレスで示されるラインの全てを1次キャッシュ22に
プリフェッチすることを示す。2次キャッシュヒットの
場合、1ライン分128B、すなわち、4ブロックを1
次キャッシュ22に転送する。2次キャッシュミスの場
合、主記憶25から当該ラインをライン転送し、1次お
よび2次キャッシュに格納することを示す。
【0040】PFビットの値が2のとき、オペランドア
ドレスで示されるブロックを2次キャッシュ23から1
次キャッシュ22へブロック転送することを示す。2次
キャッシュミスの場合、主記憶から当該ラインのライン
転送は行わない。
【0041】PFビットの値が3のとき、オペランドア
ドレスで示されるラインを主記憶25から2次キャッシ
ュ23のみへ転送することを示す。すなわち、2次キャ
ッシュミスの場合、主記憶25から当該ラインを2次キ
ャッシュにライン転送する。1次キャッシュ22へは転
送しない。
【0042】PFビットの値が4のとき、オペランドア
ドレスで示されるラインを含むアラインされた512
B、すなわち、4ラインを主記憶から2次キャッシュの
みへ転送することを示す。
【0043】次に、図2に示す本発明の一実施形態によ
る情報処理装置におけるソフトウェアプリフェッチ命令
の動作を説明する。図示本発明が適用される情報処理装
置は、2階層のキャッシュ構成を有する情報処理装置で
あり、図7に示す従来技術の場合と同一の構成を有す
る。
【0044】図2において、いま、ソフトウェアプリフ
ェッチ命令が実行され、該命令のPFビットの値が1で
あるとする。この場合、CPU21は、オペランドアド
レスにより2次キャッシュ23を検索し、2次キャッシ
ュヒットであれば、2次キャッシュ23よりオペランド
アドレスで示される1ライン128Bのデータを1次キ
ャッシュ22へ転送する。また、2次キャッシュ23が
ミスであれば、CPU21は、リクエスト線201、ア
ドレス線202、PFビット線203を介してライン転
送要求をSCU24へ送出する。SCU24は、主記憶
25より1ライン128Bのデータを読み出し、そのデ
ータをデータ線204を介してCPU21へ転送する。
CPU21は、受け取ったオペランドデータ128Bを
2次キャッシュへ格納すると共に、1次キャッシュ22
へも128Bの全てのデータを格納する。
【0045】この動作により、1ライン128Bのデー
タの全てを1つのソフトウェアプリフェッチ命令により
1次キャッシュ22にプリフェッチすることができる。
【0046】PFビットの値が2であるとする。この場
合、CPU21は、オペランドアドレスにより2次キャ
ッシュ23を検索し、2次キャッシュヒットであれば、
2次キャッシュ23よりオペランドアドレスで示される
1ブロック32Bのデータを1次キャッシュ22へ転送
する。また、2次キャッシュ23がミスであれば、CP
U21は、何も動作を起こさない。すなわち、この場
合、CPU21は、SCU24へはライン転送要求を送
らない。
【0047】この動作により、予め2次キャッシュ23
へプリフェッチされているオペランドデータを1次キャ
ッシュ22へブロック転送することができる。
【0048】PFビットの値が3であるとする。この場
合、CPU21は、オペランドアドレスにより2次キャ
ッシュ23を検索し、2次キャッシュヒットであれば、
CPU21は何も動作を起こさない。すなわち、この場
合、2次キャッシュ23から1次キャッシュ22へのデ
ータの転送は行わない。また、2次キャッシュ23がミ
スであれば、CPU21は、リクエスト線201、アド
レス線202、PFビット線204を介してライン転送
要求をSCU24へ送出する。SCU24は、これによ
り、主記憶25より1ライン128Bのデータを読み出
し、このデータをデータ線204を介してCPU21へ
転送する。CPU21は、受け取ったオペランドデータ
128Bを2次キャッシュへ格納する。この場合、1次
キャッシュへの格納は行わない。
【0049】この動作により、1次キャッシュに影響を
与えることなく、主記憶25から2次キャッシュ23へ
データをプリフェッチすることができる。
【0050】PFビットの値が4であるとする。この場
合、CPU21は、リクエスト線201、アドレス線2
02、PFビット線203を介しライン転送要求をSC
U24へ送出する。SCU24は、これにより、主記憶
25より4ライン分の合計512Bのデータを読み出
し、このデータをデータ線204を介してCPU21へ
転送する。CPU21は、受け取ったオペランドデータ
512Bを2次キャッシュ23へ格納する。この場合、
1次キャッシュへの格納は行わない。
【0051】この動作により、通常のキャッシュアクセ
スを行う命令により転送されるデータ量の4倍(4倍に
限らず整数倍であればよい)の4ライン分の512Bの
データの全てを、1つのソフトウェアプリフェッチ命令
により1次キャッシュに影響を与えることなく、主記憶
25から2次キャッシュ23へプリフェッチすることが
できる。
【0052】前述したPFビットの値が4の場合におい
て、CPU21がSCU24に対し4回ライン転送要求
を発行するようにして、512Bのデータを2次キャッ
シュ23へ格納することもできる。これにより、SCU
24の設計を全く変更することなく、本発明によるソフ
トウェアプリフェッチを実現することができる。
【0053】前述した本発明の一実施形態によるソフト
ウェアプリフェッチの動作のタイムチャートが図4に示
されている。この例では、ブロック転送に4サイクル、
ライン転送に40サイクルを要するものとしている。
【0054】ソフトウェアプリフェッチ命令が使用され
る例として、従来技術において説明した最も一般的な連
続領域に配置されている配列A[i](i=0、1、
2、……)を順番に参照する場合を例とし、配列A
[i]の個々のデータサイズを8Bとすると、ライン、
ブロックのアドレス関係は、すでに説明した図9に示す
ようになる。
【0055】図4に示す例は、ソフトウェアプリフェッ
チ命令内のPFビットの値を1として、1ライン128
Bのデータを1次キャッシュ22にプリフェッチする場
合のタイムチャートである。この場合、128B、すな
わち配列データを16個アクセスする度にその40サイ
クル前にソフトウェアプリフェッチ命令を発行すればよ
いことになる。
【0056】前述した本発明一実施形態は、ソフトウェ
アプリフェッチ命令内のPFビットを命令のオペランド
アドレスの使用しないビットに設けるとし、また、PF
ビットによる指示内容をその5種類について例示して説
明したが、本発明は、PFビットを命令のオペランドコ
ードの使用しないビットに設けるようにすることもで
き、また、指示内容をさらに多種類とすることもでき
る。
【0057】また、前述した本発明一実施形態は、2層
のキャッシュを備える情報処理装置に本発明を適用した
ものとして説明したが、本発明は、さらに多層のキャッ
シュを備える情報処理装置に対しても適用することがで
きる。
【0058】
【発明の効果】以上説明したように本発明によれば、ソ
フトウェアプリフェッチ命令の中で、データを転送する
キャッシュの階層を明示的に指示することができ、ま
た、ソフトウェアプリフェッチ命令を規則的な間隔で発
行することができるので、コンパイラにとって命令コー
ドを生成しやすく、アドレスを判定するための余分な分
岐命令も不要とすることができる。
【0059】また、本発明によれば、ソフトウェアプリ
フェッチ命令の中で、転送するデータ量をライン、ブロ
ックの整数倍に指定することができるので、大量のデー
タを少ない数のソフトウェアプリフェッチ命令により転
送することができる。さらに、本発明によれば、ソフト
ウェアプリフェッチ命令の中の従来のオペランドコード
で未使用であった部分、または、オペランドアドレスの
下位の未使用である部分に、前述の指示ビットを設ける
ことができるので、従来技術の場合とのアーキテクチャ
上の互換性を保つことができる。
【0060】本発明によれば、前述により、ソフトウェ
アプリフェッチ命令による情報処理装置の性能の向上を
効果的に図ることができる。
【図面の簡単な説明】
【図1】本発明の一実施形態で使用するソフトウェアプ
リフェッチ命令のオペランドアドレスのフォーマットを
示す図である。
【図2】本発明の一実施形態による情報処理装置の構成
例を示すブロック図である。
【図3】ソフトウェアプリフェッチ命令のオペランドア
ドレス中の指示ビットにより指示される動作を説明する
図である。
【図4】本発明の一実施形態によるソフトウェアプリフ
ェッチ命令動作を説明するタイムチャートである。
【図5】従来技術による情報処理装置の構成例を示すブ
ロック図である。
【図6】ソフトウェアプリフェッチの有無による処理動
作を説明するタイムチャートである。
【図7】従来技術による情報処理装置の他の構成例を示
すブロック図である。
【図8】ソフトウェアプリフェッチが有る場合の処理動
作を説明するタイムチャートである。
【図9】ソフトウェアプリフェッチ動作の対象となる連
続領域に配置された配列データのアドレス関係を示す図
である。
【図10】ソフトウェアプリフェッチ命令を用いて図9
に示すオペランドデータを転送する場合の動作を説明す
るタイムチャートである。
【符号の説明】
21 CPU 22 1次キャッシュ 23 2次キャッシュ 24 SCU 25 主記憶 201 リクエスト線 202 アドレス線 203 PFビット線 204 データ線

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 演算で用いるオペランドデータを演算の
    実行に先立って、予め主記憶からキャッシュに転送する
    ソフトウェアプリフェッチ命令を備えた情報処理装置に
    おいて、前記ソフトウェアプリフェッチ命令のオペラン
    ドコードまたはオペランドアドレスに、プリフェッチ動
    作の内容を指示する1または複数の指示ビットを設け、
    プリフェッチ動作時、前記指示ビットの内容に基づい
    て、データのプリフェッチを行うことを特徴とする情報
    処理装置。
  2. 【請求項2】 前記情報処理装置が2階層のキャッシュ
    を有する情報処理装置であり、前記指示ビットにより指
    示される内容が、プリフェッチするキャッシュの階層の
    指定、プリフェッチするオペランドのデータ量の指定、
    または、その両方であることを特徴とする請求項1記載
    の情報処理装置。
  3. 【請求項3】 前記情報処理装置が2階層のキャッシュ
    を有する情報処理装置であり、前記指示ビットにより指
    示される内容が、主記憶から2次キャッシュへある量の
    オペランドデータの転送を行うとき、該オペランドデー
    タを同じ量だけ1次キャッシュへもプリフェッチする指
    示であることを特徴とする請求項1記載の情報処理装
    置。
  4. 【請求項4】 前記情報処理装置が2階層のキャッシュ
    を有する情報処理装置であり、前記指示ビットにより指
    示される内容が、ソフトウェアプリフェッチでない通常
    のキャッシュアクセスを行う命令により転送されるデー
    タ量の整数倍を転送する指示であることを特徴とする請
    求項1記載の情報処理装置。
JP28083695A 1995-10-27 1995-10-27 情報処理装置及び情報処理ユニット Expired - Fee Related JP3717212B2 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP28083695A JP3717212B2 (ja) 1995-10-27 1995-10-27 情報処理装置及び情報処理ユニット
US08/738,912 US6131145A (en) 1995-10-27 1996-10-28 Information processing unit and method for controlling a hierarchical cache utilizing indicator bits to control content of prefetching operations
US09/609,376 US6381679B1 (en) 1995-10-27 2000-07-03 Information processing system with prefetch instructions having indicator bits specifying cache levels for prefetching
US10/086,736 US6598127B2 (en) 1995-10-27 2002-03-04 Information processing system with prefetch instructions having indicator bits specifying a quantity of operand data for prefetching
US10/086,724 US6598126B2 (en) 1995-10-27 2002-03-04 Processing device which prefetches instructions having indicator bits specifying cache levels for prefetching
US10/424,706 US7028159B2 (en) 1995-10-27 2003-04-29 Processing device with prefetch instructions having indicator bits specifying cache levels for prefetching
US10/464,484 US7028160B2 (en) 1995-10-27 2003-06-19 Processing device with prefetch instructions having indicator bits specifying cache levels for prefetching

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP28083695A JP3717212B2 (ja) 1995-10-27 1995-10-27 情報処理装置及び情報処理ユニット

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2002309609A Division JP3718667B2 (ja) 2002-10-24 2002-10-24 情報処理装置及び情報処理ユニット

Publications (2)

Publication Number Publication Date
JPH09128293A true JPH09128293A (ja) 1997-05-16
JP3717212B2 JP3717212B2 (ja) 2005-11-16

Family

ID=17630671

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28083695A Expired - Fee Related JP3717212B2 (ja) 1995-10-27 1995-10-27 情報処理装置及び情報処理ユニット

Country Status (2)

Country Link
US (6) US6131145A (ja)
JP (1) JP3717212B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000267901A (ja) * 1999-03-16 2000-09-29 Toshiba Corp ソフトウェア実行システム
JP2002251321A (ja) * 2001-02-21 2002-09-06 Handotai Rikougaku Kenkyu Center:Kk キャッシュメモリシステム装置
US6473836B1 (en) * 1999-05-27 2002-10-29 Fujitsu Limited Computing system and cache memory control apparatus controlling prefetch in hierarchical cache memories
WO2007099598A1 (ja) * 2006-02-28 2007-09-07 Fujitsu Limited プリフェッチ機能を有するプロセッサ
JP2010176692A (ja) * 2010-03-15 2010-08-12 Fujitsu Ltd 演算処理装置、情報処理装置及び制御方法
JP2014016812A (ja) * 2012-07-09 2014-01-30 Fujitsu Ltd メモリ装置、演算処理装置、及びキャッシュメモリの制御方法

Families Citing this family (102)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7301541B2 (en) 1995-08-16 2007-11-27 Microunity Systems Engineering, Inc. Programmable processor and method with wide operations
JP3717212B2 (ja) 1995-10-27 2005-11-16 株式会社日立製作所 情報処理装置及び情報処理ユニット
KR19990049284A (ko) * 1997-12-12 1999-07-05 구본준 데이터 프로그램 장치
US6088789A (en) * 1998-05-13 2000-07-11 Advanced Micro Devices, Inc. Prefetch instruction specifying destination functional unit and read/write access mode
US7932911B2 (en) * 1998-08-24 2011-04-26 Microunity Systems Engineering, Inc. Processor for executing switch and translate instructions requiring wide operands
EP2241968B1 (en) 1998-08-24 2012-06-27 MicroUnity Systems Engineering, Inc. System with wide operand architecture, and method
US6532521B1 (en) 1999-06-30 2003-03-11 International Business Machines Corporation Mechanism for high performance transfer of speculative request data between levels of cache hierarchy
US6496921B1 (en) 1999-06-30 2002-12-17 International Business Machines Corporation Layered speculative request unit with instruction optimized and storage hierarchy optimized partitions
US6393528B1 (en) 1999-06-30 2002-05-21 International Business Machines Corporation Optimized cache allocation algorithm for multiple speculative requests
US6421763B1 (en) 1999-06-30 2002-07-16 International Business Machines Corporation Method for instruction extensions for a tightly coupled speculative request unit
US6421762B1 (en) * 1999-06-30 2002-07-16 International Business Machines Corporation Cache allocation policy based on speculative request history
US6360299B1 (en) 1999-06-30 2002-03-19 International Business Machines Corporation Extended cache state with prefetched stream ID information
US6510494B1 (en) 1999-06-30 2003-01-21 International Business Machines Corporation Time based mechanism for cached speculative data deallocation
US6574712B1 (en) * 1999-11-08 2003-06-03 International Business Machines Corporation Software prefetch system and method for predetermining amount of streamed data
US6460115B1 (en) * 1999-11-08 2002-10-01 International Business Machines Corporation System and method for prefetching data to multiple levels of cache including selectively using a software hint to override a hardware prefetch mechanism
US6446167B1 (en) * 1999-11-08 2002-09-03 International Business Machines Corporation Cache prefetching of L2 and L3
US6662273B1 (en) 2000-09-29 2003-12-09 Intel Corporation Least critical used replacement with critical cache
US6760816B1 (en) * 2000-09-29 2004-07-06 Intel Corporation Critical loads guided data prefetching
US6782469B1 (en) 2000-09-29 2004-08-24 Intel Corporation Runtime critical load/data ordering
US8171266B2 (en) * 2001-08-02 2012-05-01 Hewlett-Packard Development Company, L.P. Look-ahead load pre-fetch in a processor
US7093077B2 (en) 2001-11-30 2006-08-15 Intel Corporation Method and apparatus for next-line prefetching from a predicted memory address
US7260704B2 (en) 2001-11-30 2007-08-21 Intel Corporation Method and apparatus for reinforcing a prefetch chain
US6954840B2 (en) 2001-11-30 2005-10-11 Intel Corporation Method and apparatus for content-aware prefetching
US6675280B2 (en) 2001-11-30 2004-01-06 Intel Corporation Method and apparatus for identifying candidate virtual addresses in a content-aware prefetcher
US6931494B2 (en) * 2002-09-09 2005-08-16 Broadcom Corporation System and method for directional prefetching
TW576977B (en) * 2002-09-11 2004-02-21 Sunplus Technology Co Ltd Structure and method for planning control commands and data access
JP3973597B2 (ja) * 2003-05-14 2007-09-12 株式会社ソニー・コンピュータエンタテインメント プリフェッチ命令制御方法、プリフェッチ命令制御装置、キャッシュメモリ制御装置、オブジェクトコードの生成方法および装置
US7380059B2 (en) * 2003-05-16 2008-05-27 Pillar Data Systems, Inc. Methods and systems of cache memory management and snapshot operations
US20050071821A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Method and apparatus to autonomically select instructions for selective counting
US20050071611A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Method and apparatus for counting data accesses and instruction executions that exceed a threshold
US7395527B2 (en) * 2003-09-30 2008-07-01 International Business Machines Corporation Method and apparatus for counting instruction execution and data accesses
US7937691B2 (en) 2003-09-30 2011-05-03 International Business Machines Corporation Method and apparatus for counting execution of specific instructions and accesses to specific data locations
US7373637B2 (en) * 2003-09-30 2008-05-13 International Business Machines Corporation Method and apparatus for counting instruction and memory location ranges
US7421681B2 (en) * 2003-10-09 2008-09-02 International Business Machines Corporation Method and system for autonomic monitoring of semaphore operation in an application
US8381037B2 (en) * 2003-10-09 2013-02-19 International Business Machines Corporation Method and system for autonomic execution path selection in an application
US7635358B2 (en) * 2003-10-15 2009-12-22 Boston Scientific Scimed, Inc. Medical device having anti-microbial properties and a false lumen and method of making the same
US7162584B2 (en) * 2003-12-29 2007-01-09 Intel Corporation Mechanism to include hints within compressed data
US7415705B2 (en) * 2004-01-14 2008-08-19 International Business Machines Corporation Autonomic method and apparatus for hardware assist for patching code
US7526757B2 (en) * 2004-01-14 2009-04-28 International Business Machines Corporation Method and apparatus for maintaining performance monitoring structures in a page table for use in monitoring performance of a computer program
US7197586B2 (en) * 2004-01-14 2007-03-27 International Business Machines Corporation Method and system for recording events of an interrupt using pre-interrupt handler and post-interrupt handler
US20050155018A1 (en) * 2004-01-14 2005-07-14 International Business Machines Corporation Method and apparatus for generating interrupts based on arithmetic combinations of performance counter values
US7496908B2 (en) 2004-01-14 2009-02-24 International Business Machines Corporation Method and apparatus for optimizing code execution using annotated trace information having performance indicator and counter information
US7895382B2 (en) * 2004-01-14 2011-02-22 International Business Machines Corporation Method and apparatus for qualifying collection of performance monitoring events by types of interrupt when interrupt occurs
US7107384B1 (en) 2004-03-01 2006-09-12 Pericom Semiconductor Corp. Dynamic PCI-bus pre-fetch with separate counters for commands of commands of different data-transfer lengths
US7987453B2 (en) * 2004-03-18 2011-07-26 International Business Machines Corporation Method and apparatus for determining computer program flows autonomically using hardware assisted thread stack tracking and cataloged symbolic data
US7296130B2 (en) * 2004-03-22 2007-11-13 International Business Machines Corporation Method and apparatus for providing hardware assistance for data access coverage on dynamically allocated data
US7526616B2 (en) 2004-03-22 2009-04-28 International Business Machines Corporation Method and apparatus for prefetching data from a data structure
US7421684B2 (en) 2004-03-22 2008-09-02 International Business Machines Corporation Method and apparatus for autonomic test case feedback using hardware assistance for data coverage
US20050210450A1 (en) * 2004-03-22 2005-09-22 Dimpsey Robert T Method and appartus for hardware assistance for data access coverage
US8135915B2 (en) * 2004-03-22 2012-03-13 International Business Machines Corporation Method and apparatus for hardware assistance for prefetching a pointer to a data structure identified by a prefetch indicator
US7299319B2 (en) * 2004-03-22 2007-11-20 International Business Machines Corporation Method and apparatus for providing hardware assistance for code coverage
US7480899B2 (en) * 2004-03-22 2009-01-20 International Business Machines Corporation Method and apparatus for autonomic test case feedback using hardware assistance for code coverage
US7383418B2 (en) * 2004-09-01 2008-06-03 Intel Corporation Method and apparatus for prefetching data to a lower level cache memory
US7716424B2 (en) * 2004-11-16 2010-05-11 International Business Machines Corporation Victim prefetching in a cache hierarchy
EP1854011A2 (en) * 2005-02-15 2007-11-14 Koninklijke Philips Electronics N.V. Enhancing performance of a memory unit of a data processing device by separating reading and fetching functionalities
US20060224832A1 (en) * 2005-04-01 2006-10-05 Kimming So System and method for performing a prefetch operation
US7472225B2 (en) * 2005-06-20 2008-12-30 Arm Limited Caching data
KR100833178B1 (ko) * 2005-08-26 2008-05-28 삼성전자주식회사 캐시 메모리에 저장되는 블록개수를 제어할 수 있는 캐시메모리 시스템 및 동작 방법
US7984241B2 (en) * 2005-09-16 2011-07-19 Hewlett-Packard Development Company, L.P. Controlling processor access to cache memory
US7958312B2 (en) * 2005-11-15 2011-06-07 Oracle America, Inc. Small and power-efficient cache that can provide data for background DMA devices while the processor is in a low-power state
US7873788B1 (en) * 2005-11-15 2011-01-18 Oracle America, Inc. Re-fetching cache memory having coherent re-fetching
US7934054B1 (en) 2005-11-15 2011-04-26 Oracle America, Inc. Re-fetching cache memory enabling alternative operational modes
US7516274B2 (en) * 2005-11-15 2009-04-07 Sun Microsystems, Inc. Power conservation via DRAM access reduction
US7899990B2 (en) * 2005-11-15 2011-03-01 Oracle America, Inc. Power conservation via DRAM access
US7454585B2 (en) 2005-12-22 2008-11-18 International Business Machines Corporation Efficient and flexible memory copy operation
US7484062B2 (en) * 2005-12-22 2009-01-27 International Business Machines Corporation Cache injection semi-synchronous memory copy operation
US7506132B2 (en) * 2005-12-22 2009-03-17 International Business Machines Corporation Validity of address ranges used in semi-synchronous memory copy operations
US7917701B2 (en) * 2007-03-12 2011-03-29 Arm Limited Cache circuitry, data processing apparatus and method for prefetching data by selecting one of a first prefetch linefill operation and a second prefetch linefill operation
US8250304B2 (en) * 2007-12-03 2012-08-21 International Business Machines Corporation Cache memory device and system with set and group limited priority and casting management of I/O type data injection
US8140771B2 (en) * 2008-02-01 2012-03-20 International Business Machines Corporation Partial cache line storage-modifying operation based upon a hint
US8255635B2 (en) * 2008-02-01 2012-08-28 International Business Machines Corporation Claiming coherency ownership of a partial cache line of data
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
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
US8250307B2 (en) * 2008-02-01 2012-08-21 International Business Machines Corporation Sourcing differing amounts of prefetch data in response to data prefetch requests
US8055849B2 (en) * 2008-04-04 2011-11-08 International Business Machines Corporation Reducing cache pollution of a software controlled cache
US8239841B2 (en) 2008-04-04 2012-08-07 International Business Machines Corporation Prefetching irregular data references for software controlled caches
US8146064B2 (en) * 2008-04-04 2012-03-27 International Business Machines Corporation Dynamically controlling a prefetching range of a software controlled cache
US8347037B2 (en) * 2008-10-22 2013-01-01 International Business Machines Corporation Victim cache replacement
US8209489B2 (en) 2008-10-22 2012-06-26 International Business Machines Corporation Victim cache prefetching
US8499124B2 (en) * 2008-12-16 2013-07-30 International Business Machines Corporation Handling castout cache lines in a victim cache
US8117397B2 (en) * 2008-12-16 2012-02-14 International Business Machines Corporation Victim cache line selection
US8225045B2 (en) * 2008-12-16 2012-07-17 International Business Machines Corporation Lateral cache-to-cache cast-in
US8458439B2 (en) * 2008-12-16 2013-06-04 International Business Machines Corporation Block driven computation using a caching policy specified in an operand data structure
US8489819B2 (en) * 2008-12-19 2013-07-16 International Business Machines Corporation Victim cache lateral castout targeting
US8949540B2 (en) * 2009-03-11 2015-02-03 International Business Machines Corporation Lateral castout (LCO) of victim cache line in data-invalid state
US8285939B2 (en) * 2009-04-08 2012-10-09 International Business Machines Corporation Lateral castout target selection
US8312220B2 (en) * 2009-04-09 2012-11-13 International Business Machines Corporation Mode-based castout destination selection
US8347036B2 (en) * 2009-04-09 2013-01-01 International Business Machines Corporation Empirically based dynamic control of transmission of victim cache lateral castouts
US8327073B2 (en) * 2009-04-09 2012-12-04 International Business Machines Corporation Empirically based dynamic control of acceptance of victim cache lateral castouts
US8117390B2 (en) * 2009-04-15 2012-02-14 International Business Machines Corporation Updating partial cache lines in a data processing system
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
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
US9189403B2 (en) * 2009-12-30 2015-11-17 International Business Machines Corporation Selective cache-to-cache lateral castouts
EP2690561A4 (en) * 2011-03-22 2014-12-31 Fujitsu Ltd PROCESSING UNIT, INFORMATION PROCESSING DEVICE, AND PROCESSING UNIT CONTROL METHOD
US9201796B2 (en) * 2012-09-27 2015-12-01 Apple Inc. System cache with speculative read engine
US10599433B2 (en) 2013-07-15 2020-03-24 Texas Instruments Incorported Cache management operations using streaming engine
US10606596B2 (en) 2013-07-15 2020-03-31 Texas Instruments Incorporated Cache preload operations using streaming engine
US9785565B2 (en) 2014-06-30 2017-10-10 Microunity Systems Engineering, Inc. System and methods for expandably wide processor instructions
US20170123796A1 (en) * 2015-10-29 2017-05-04 Intel Corporation Instruction and logic to prefetch information from a persistent memory
WO2018205117A1 (zh) * 2017-05-08 2018-11-15 华为技术有限公司 一种多核***内存访问方法、相关装置、***及存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5146578A (en) * 1989-05-01 1992-09-08 Zenith Data Systems Corporation Method of varying the amount of data prefetched to a cache memory in dependence on the history of data requests
US5287467A (en) * 1991-04-18 1994-02-15 International Business Machines Corporation Pipeline for removing and concurrently executing two or more branch instructions in synchronization with other instructions executing in the execution unit
EP0551090B1 (en) * 1992-01-06 1999-08-04 Hitachi, Ltd. Computer having a parallel operating capability
US5689679A (en) * 1993-04-28 1997-11-18 Digital Equipment Corporation Memory system and method for selective multi-level caching using a cache level code
US5652858A (en) * 1994-06-06 1997-07-29 Hitachi, Ltd. Method for prefetching pointer-type data structure and information processing apparatus therefor
US5732242A (en) * 1995-03-24 1998-03-24 Silicon Graphics, Inc. Consistently specifying way destinations through prefetching hints
US5758119A (en) * 1995-08-23 1998-05-26 International Business Machines Corp. System and method for indicating that a processor has prefetched data into a primary cache and not into a secondary cache
US5740399A (en) * 1995-08-23 1998-04-14 International Business Machines Corporation Modified L1/L2 cache inclusion for aggressive prefetch
JP3717212B2 (ja) 1995-10-27 2005-11-16 株式会社日立製作所 情報処理装置及び情報処理ユニット

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000267901A (ja) * 1999-03-16 2000-09-29 Toshiba Corp ソフトウェア実行システム
US6473836B1 (en) * 1999-05-27 2002-10-29 Fujitsu Limited Computing system and cache memory control apparatus controlling prefetch in hierarchical cache memories
JP2002251321A (ja) * 2001-02-21 2002-09-06 Handotai Rikougaku Kenkyu Center:Kk キャッシュメモリシステム装置
KR100917491B1 (ko) * 2001-02-21 2009-09-16 가부시키가이샤 한도다이 리코가쿠 겐큐 센터 캐시 메모리 시스템
WO2007099598A1 (ja) * 2006-02-28 2007-09-07 Fujitsu Limited プリフェッチ機能を有するプロセッサ
JPWO2007099598A1 (ja) * 2006-02-28 2009-07-16 富士通株式会社 プリフェッチ機能を有するプロセッサ
JP4574712B2 (ja) * 2006-02-28 2010-11-04 富士通株式会社 演算処理装置、情報処理装置及び制御方法
US8074029B2 (en) 2006-02-28 2011-12-06 Fujitsu Limited Processor equipped with a pre-fetch function and pre-fetch control method
JP2010176692A (ja) * 2010-03-15 2010-08-12 Fujitsu Ltd 演算処理装置、情報処理装置及び制御方法
JP2014016812A (ja) * 2012-07-09 2014-01-30 Fujitsu Ltd メモリ装置、演算処理装置、及びキャッシュメモリの制御方法

Also Published As

Publication number Publication date
US7028159B2 (en) 2006-04-11
US6381679B1 (en) 2002-04-30
US6598126B2 (en) 2003-07-22
US20030208659A1 (en) 2003-11-06
US20030196045A1 (en) 2003-10-16
US6598127B2 (en) 2003-07-22
JP3717212B2 (ja) 2005-11-16
US7028160B2 (en) 2006-04-11
US20020083272A1 (en) 2002-06-27
US6131145A (en) 2000-10-10
US20020083273A1 (en) 2002-06-27

Similar Documents

Publication Publication Date Title
JP3717212B2 (ja) 情報処理装置及び情報処理ユニット
US4583165A (en) Apparatus and method for controlling storage access in a multilevel storage system
JP3512678B2 (ja) キャッシュメモリ制御装置および計算機システム
EP0439025B1 (en) A data processor having a deferred cache load
JP3618385B2 (ja) データをバッファリングする方法およびそのシステム
JP3548616B2 (ja) 情報処理装置
US6321326B1 (en) Prefetch instruction specifying destination functional unit and read/write access mode
JP3739491B2 (ja) プリフェッチ命令を用いるハーバードアーキテクチャキャッシュメモリの調和したソフトウェア制御
JP4218820B2 (ja) ダイレクトマップドキャッシュとフルアソシアティブバッファとを含んだキャッシュシステム、その制御方法及び記録媒体
US6892280B2 (en) Multiprocessor system having distributed shared memory and instruction scheduling method used in the same system
JP2596712B2 (ja) 近接した分岐命令を含む命令の実行を管理するシステム及び方法
KR19990037572A (ko) 뱅크 어드레스 값을 공급하는 다중 소스를 구비하는 프로세서구조 설계 및 그 설계방법
JPH06318174A (ja) キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法
JPH06202951A (ja) キャッシュ・メモリ・システム
JPH0410102B2 (ja)
JP2000515276A (ja) スーパースカラマイクロプロセッサのための非ブロッキングロードを実現するロード/ストアユニットおよびロード/ストアバッファから非ブロッキング的にロードを選択する方法
JP3718667B2 (ja) 情報処理装置及び情報処理ユニット
KR19990087830A (ko) 컴퓨터 장치, 컴파일러 방법 및 다중 캐시 라인 사전적재방법
US5933856A (en) System and method for processing of memory data and communication system comprising such system
JP4796580B2 (ja) フェッチ・バーストを用いて情報をキャッシュ・モジュールに与える装置及び方法
JPH08161226A (ja) データ先読み制御方法,キャッシュ制御装置およびデータ処理装置
JPH11249959A (ja) キャッシュメモリ制御方法および装置
JPH01193938A (ja) 命令先読み装置
JPH08286914A (ja) メモリ制御装置
JPH1083347A (ja) キャッシュメモリ装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050531

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050801

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: 20050823

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050830

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: 20080909

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090909

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090909

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100909

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100909

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110909

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120909

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees