JP3717212B2 - 情報処理装置及び情報処理ユニット - Google Patents

情報処理装置及び情報処理ユニット Download PDF

Info

Publication number
JP3717212B2
JP3717212B2 JP28083695A JP28083695A JP3717212B2 JP 3717212 B2 JP3717212 B2 JP 3717212B2 JP 28083695 A JP28083695 A JP 28083695A JP 28083695 A JP28083695 A JP 28083695A JP 3717212 B2 JP3717212 B2 JP 3717212B2
Authority
JP
Japan
Prior art keywords
instruction
cache
data
information processing
software prefetch
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
JP28083695A
Other languages
English (en)
Other versions
JPH09128293A (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.)
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,724 priority patent/US6598126B2/en
Priority to US10/086,736 priority patent/US6598127B2/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

Images

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)

Description

【0001】
【発明が属する技術分野】
本発明は、階層構成のキャッシュを有する情報処理装置及び情報処理ユニットに係り、特に、演算に使用するオペランドデータを予め主記憶からキャッシュに転送しておくことにより、キャッシュミスによるオーバヘッドを隠すことができるようにしたソフトウェアプリフェッチ命令を備えた情報処理装置及び情報処理ユニットに関する。
【0002】
【従来の技術】
一般に、キャッシュを有する情報処理装置は、命令により参照したオペランドがキャッシュに存在しない場合、すなわち、キャッシュミスが生じた場合、前記オペランドを主記憶から読み出して使用している。通常、この読み出しには、キャッシュアクセスの数倍から数十倍の時間を要する。このため、この種の情報処理装置は、キャッシュミスが生じると、オペランドが主記憶から読み出されるまでの間、後続命令の実行を待たせることになり、実行時間が長くなってその性能が抑えられてしまうという問題点を有している。
【0003】
前述の問題点を解決することのできる技術として、予め将来用いるオペランドデータを主記憶からキャッシュに転送し、そのオペランドデータを用いるときにはキャッシュヒットとなるようにして、キャッシュミスのペナルティを抑えるようにした技術が知られており、これを実現するためのソフトウェアプリフェッチ命令に関する研究がなされ、様々な情報処理装置で使用されている。
【0004】
ソフトウェアプリフェッチ命令に関する従来技術として、例えば、論文 Callahan,D.,Kennedy,K.Porterfield,A.,“Software Prefetching," Proceedings of the 4th International Conference on Architectural Support for Programming Languages and Operating Systems,April 1991,pp.40-52等に記載された技術が知られている。
【0005】
以下、従来技術による情報処理装置によるソフトウェアプリフェッチ命令の動作を図面により説明する。
【0006】
図5は従来技術による情報処理装置の構成例を示すブロック図、図6はソフトウェアプリフェッチの有無による処理動作を説明するタイムチャートである。図5において、21はCPU(中央処理装置)、22は1次キャッシュ、24はSCU(記憶制御装置)、25は主記憶である。
【0007】
図5に示す従来技術は、1階層キャッシュを持つ情報処理装置の例であり、この情報処理装置は、情報の処理を行うCPU21と、1次キャッシャ22と、主記憶25と、主記憶25に対する情報の書き込み、読み出しを制御するSCU24とにより構成されている。この情報処理装置において、CPU21は、オペランドデータを参照する際1次キャッシュ22を検索し、キャッシュミスの場合SCU24に対して、リクエスト線201、アドレス線202を介して該オペランドデータの転送要求を発行する。SCU24は、主記憶25から該オペランドデータを読み出し、そのデータをデータ線204を介してCPU21に転送する。CPU21は、受け取ったオペランドデータを1次キャッシュ22に格納すると共に演算のために使用する。
【0008】
次に、CPU21による命令の処理が、IF(命令フェッチ)、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サイクル、ライン転送には40サイクルを要するものとして、前述の従来技術の問題点を説明する。
【0022】
ソフトウェアプリフェッチ命令が使用される例として、最も一般的な連続領域に配置されている配列A[i](i=0、1、2、……)を順番に参照する場合を考える。配列A[i]の個々のデータサイズを8Bとすると、ライン、ブロックのアドレス関係は図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】
【課題を解決するための手段】
本発明によれば前記目的は、主記憶と階層化された複数のキャッシュを有し、演算で用いるオペランドデータを該演算の実行に先立って予め主記憶からキャッシュに転送するソフトウェアプリフェッチ命令を実行する情報処理装置において、前記ソフトウェアプリフェッチ命令の命令コードにプリフェッチするデータの転送先のキャッシュ階層を指定する指示ビットを設け、プリフェッチ命令実行時、前記指示ビットの内容に応じて指示された階層のキャッシュにデータの転送を行うことにより達成される。
【0029】
また、前記目的は、前記情報処理装置が2階層のキャッシュを有する情報処理装置であり、前記指示ビットにより指示される内容が、プリフェッチするキャッシュの階層の指定、プリフェッチするオペランドのデータ量の指定、または、その両方であり、あるいは、主記憶から2次キャッシュへある量のオペランドデータの転送を行うとき、該オペランドデータを同じ量だけ1次キャッシュへもプリフェッチする指示、または、ソフトウェアプリフェッチでない通常のキャッシュアクセスを行う命令により転送されるデータ量の整数倍を転送する指示とすることにより達成される。
【0030】
本発明は、2階層以上のキャッシュ構成を有する情報処理装置において、コンパイラが命令を生成するとき、前記指示ビットを用いて、転送を行うキャッシュの階層または転送するデータサイズを明示的に指定することができるので、規則的にソフトウェアプリフェッチ命令を生成することが可能となる。このため、本発明は、命令列が、配列データのアクセス、配列データの演算のように命令のループで構成される場合に、アドレス関係を判定する命令等を生成する必要をなくすことができる。
【0031】
また、本発明は、アドレスが連続するオペランドデータに対するアクセスを行う場合、1個のソフトウェアプリフェッチ命令により、一度に複数ラインのデータを転送することができるので、ソフトウェアプリフェッチ命令の数を減らすことが可能となる。
【0032】
さらに、本発明によるセットアーキテクチャと従来技術のセットアーキテクチャとの互換性を容易に実現することができる。例えば、ブロックサイズが32バイトの場合、ソフトウェアプリフェッチ命令のオペランドアドレスの下位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のとき、オペランドアドレスで示されるラインを含むアラインされた512B、すなわち、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がミスであれば、CPU21は、何も動作を起こさない。すなわち、この場合、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、アドレス線202、PFビット線203を介しライン転送要求をSCU24へ送出する。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へ格納することもできる。これにより、SCU24の設計を全く変更することなく、本発明によるソフトウェアプリフェッチを実現することができる。
【0053】
前述した本発明の一実施形態によるソフトウェアプリフェッチの動作のタイムチャートが図4に示されている。この例では、ブロック転送に4サイクル、ライン転送に40サイクルを要するものとしている。
【0054】
ソフトウェアプリフェッチ命令が使用される例として、従来技術において説明した最も一般的な連続領域に配置されている配列A[i](i=0、1、2、……)を順番に参照する場合を例とし、配列A[i]の個々のデータサイズを8Bとすると、ライン、ブロックのアドレス関係は、すでに説明した図9に示すようになる。
【0055】
図4に示す例は、ソフトウェアプリフェッチ命令内のPFビットの値を1として、1ライン128Bのデータを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. 主記憶と階層化された複数のキャッシュを有し、演算で用いるオペランドデータを該演算の実行に先立って予め主記憶からキャッシュに転送するソフトウェアプリフェッチ命令を実行する情報処理装置において、前記ソフトウェアプリフェッチ命令の命令コードにプリフェッチするデータの転送先のキャッシュ階層を指定する指示ビットを設け、プリフェッチ命令実行時、前記指示ビットの内容に応じて指示された階層のキャッシュにデータの転送を行うことを特徴とする情報処理装置。
  2. 前記指示ビットにより指示された内容が、プリフェッチしたオペランドデータを前記階層化された複数のキャッシュの全ての階層のキャッシュに転送する指示であることを特徴とする請求項1記載の情報処理装置。
  3. 前記指示ビットにより指示される内容が、プリフェッチしたオペランドデータを前記階層化された複数のキャッシュの1次キャッシュ以外の全ての階層のキャッシュに転送する指示であることを特徴とする請求項1記載の情報処理装置。
  4. 1次キャッシュと2次キャッシュとからなる2階層キャッシュを有し、演算で用いるオペランドデータを該演算の実行に先立って予め外部主記憶からキャッシュに転送するソフトウェアプリフェッチ命令を実行する情報処理ユニットにおいて、前記ソフトウェアプリフェッチ命令の命令コードにプリフェッチするデータの転送先のキャッシュ階層を指定する指示ビットを設け、プリフェッチ命令実行時、前記指示ビットの内容に応じて指定された階層のキャッシュにオペランドデータを転送することを特徴とする情報処理ユニット。
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,724 US6598126B2 (en) 1995-10-27 2002-03-04 Processing device which prefetches 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/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 JPH09128293A (ja) 1997-05-16
JP3717212B2 true 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)

Families Citing this family (108)

* 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
ATE467171T1 (de) * 1998-08-24 2010-05-15 Microunity Systems Eng System mit breiter operandenarchitektur und verfahren
US7932911B2 (en) * 1998-08-24 2011-04-26 Microunity Systems Engineering, Inc. Processor for executing switch and translate instructions requiring wide operands
JP2000267901A (ja) * 1999-03-16 2000-09-29 Toshiba Corp ソフトウェア実行システム
JP3512678B2 (ja) * 1999-05-27 2004-03-31 富士通株式会社 キャッシュメモリ制御装置および計算機システム
US6421763B1 (en) 1999-06-30 2002-07-16 International Business Machines Corporation Method for instruction extensions for a tightly coupled speculative request unit
US6496921B1 (en) 1999-06-30 2002-12-17 International Business Machines Corporation Layered speculative request unit with instruction optimized and storage hierarchy optimized partitions
US6360299B1 (en) 1999-06-30 2002-03-19 International Business Machines Corporation Extended cache state with prefetched stream ID information
US6421762B1 (en) * 1999-06-30 2002-07-16 International Business Machines Corporation Cache allocation policy based on speculative request history
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
US6393528B1 (en) 1999-06-30 2002-05-21 International Business Machines Corporation Optimized cache allocation algorithm for multiple speculative requests
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
US6782469B1 (en) 2000-09-29 2004-08-24 Intel Corporation Runtime critical load/data ordering
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
JP3681647B2 (ja) * 2001-02-21 2005-08-10 株式会社半導体理工学研究センター キャッシュメモリシステム装置
US8171266B2 (en) * 2001-08-02 2012-05-01 Hewlett-Packard Development Company, L.P. Look-ahead load pre-fetch in a processor
US7260704B2 (en) 2001-11-30 2007-08-21 Intel Corporation Method and apparatus for reinforcing a prefetch chain
US6675280B2 (en) 2001-11-30 2004-01-06 Intel Corporation Method and apparatus for identifying candidate virtual addresses in a content-aware prefetcher
US6954840B2 (en) 2001-11-30 2005-10-11 Intel Corporation Method and apparatus for content-aware prefetching
US7093077B2 (en) 2001-11-30 2006-08-15 Intel Corporation Method and apparatus for next-line prefetching from a predicted memory address
US7167954B2 (en) * 2002-09-09 2007-01-23 Broadcom Corporation System and method for caching
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
US7395527B2 (en) * 2003-09-30 2008-07-01 International Business Machines Corporation Method and apparatus for counting instruction execution and data accesses
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
US7373637B2 (en) * 2003-09-30 2008-05-13 International Business Machines Corporation Method and apparatus for counting instruction and memory location ranges
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
US8381037B2 (en) * 2003-10-09 2013-02-19 International Business Machines Corporation Method and system for autonomic execution path selection in an application
US7421681B2 (en) * 2003-10-09 2008-09-02 International Business Machines Corporation Method and system for autonomic monitoring of semaphore operation 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
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
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
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
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
US7415705B2 (en) 2004-01-14 2008-08-19 International Business Machines Corporation Autonomic method and apparatus for hardware assist for patching code
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
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
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
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
CN100527099C (zh) * 2005-02-15 2009-08-12 皇家飞利浦电子股份有限公司 用于提高数据处理设备的存储单元的性能的装置和方法
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
US7934054B1 (en) 2005-11-15 2011-04-26 Oracle America, Inc. Re-fetching cache memory enabling alternative operational modes
US7873788B1 (en) * 2005-11-15 2011-01-18 Oracle America, Inc. Re-fetching cache memory having coherent re-fetching
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
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
US7506132B2 (en) * 2005-12-22 2009-03-17 International Business Machines Corporation Validity of address ranges used in semi-synchronous memory copy operations
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
EP1990731B1 (en) * 2006-02-28 2015-05-27 Fujitsu Limited Processor having prefetch function
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
US8117401B2 (en) * 2008-02-01 2012-02-14 International Business Machines Corporation Interconnect operation indicating acceptability of partial data delivery
US8108619B2 (en) * 2008-02-01 2012-01-31 International Business Machines Corporation Cache management for partial cache line operations
US8250307B2 (en) * 2008-02-01 2012-08-21 International Business Machines Corporation Sourcing differing amounts of prefetch data in response to data prefetch requests
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
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
US8255635B2 (en) * 2008-02-01 2012-08-28 International Business Machines Corporation Claiming coherency ownership of a partial cache line of data
US8146064B2 (en) * 2008-04-04 2012-03-27 International Business Machines Corporation Dynamically controlling a prefetching range of a software controlled cache
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
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
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
US8225045B2 (en) * 2008-12-16 2012-07-17 International Business Machines Corporation Lateral cache-to-cache cast-in
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
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
US8327073B2 (en) * 2009-04-09 2012-12-04 International Business Machines Corporation Empirically based dynamic control of acceptance of victim cache lateral castouts
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
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
JP2010176692A (ja) * 2010-03-15 2010-08-12 Fujitsu Ltd 演算処理装置、情報処理装置及び制御方法
EP2690561A4 (en) * 2011-03-22 2014-12-31 Fujitsu Ltd PROCESSING UNIT, INFORMATION PROCESSING DEVICE, AND PROCESSING UNIT CONTROL METHOD
JP5978814B2 (ja) * 2012-07-09 2016-08-24 富士通株式会社 メモリ装置、演算処理装置、及びキャッシュメモリの制御方法
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 株式会社日立製作所 情報処理装置及び情報処理ユニット

Also Published As

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

Similar Documents

Publication Publication Date Title
JP3717212B2 (ja) 情報処理装置及び情報処理ユニット
JP3512678B2 (ja) キャッシュメモリ制御装置および計算機システム
US6496902B1 (en) Vector and scalar data cache for a vector multiprocessor
US5091851A (en) Fast multiple-word accesses from a multi-way set-associative cache memory
EP0439025B1 (en) A data processor having a deferred cache load
JP3425158B2 (ja) マルチバッファデータキャッシュを具えているコンピュータシステム
JP4218820B2 (ja) ダイレクトマップドキャッシュとフルアソシアティブバッファとを含んだキャッシュシステム、その制御方法及び記録媒体
US6813701B1 (en) Method and apparatus for transferring vector data between memory and a register file
US6742106B2 (en) Vector transfer system generating address error exception when vector to be transferred does not start and end on same memory page
US6041393A (en) Array padding for higher memory throughput in the presence of dirty misses
JPH0588888A (ja) アドレス生成機構及びデータの事前取り出し方法
JPH03217963A (ja) マルチプロセッサ・システムおよびそのプライベート・キャッシュ制御方法
US6553486B1 (en) Context switching for vector transfer unit
US7406579B2 (en) Selectively changeable line width memory
JP2000298618A (ja) セットアソシアティブ型キャッシュメモリ装置
JP2001195304A (ja) キャッシュ記憶装置
JP3718667B2 (ja) 情報処理装置及び情報処理ユニット
JPS638851A (ja) キャッシュ・メモリ制御方式
KR19990087830A (ko) 컴퓨터 장치, 컴파일러 방법 및 다중 캐시 라인 사전적재방법
US6625720B1 (en) System for posting vector synchronization instructions to vector instruction queue to separate vector instructions from different application programs
US6754791B1 (en) Cache memory system and method for accessing a cache memory having a redundant array without displacing a cache line in a main array
JP2000047942A (ja) キャッシュメモリ制御装置及びその制御方法
US5933856A (en) System and method for processing of memory data and communication system comprising such system
JP2001505327A (ja) 1クロックサイクル内でデータをストアするよう構成されたデータメモリユニット、およびその動作方法
JP2004152292A (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