JP3717212B2 - 情報処理装置及び情報処理ユニット - Google Patents
情報処理装置及び情報処理ユニット Download PDFInfo
- 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
Links
- 230000010365 information processing Effects 0.000 title claims description 49
- 238000012546 transfer Methods 0.000 claims description 37
- 238000012545 processing Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 11
- 238000000034 method Methods 0.000 description 4
- 238000007796 conventional method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30047—Prefetch instructions; cache control instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6028—Prefetching 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
【発明が属する技術分野】
本発明は、階層構成のキャッシュを有する情報処理装置及び情報処理ユニットに係り、特に、演算に使用するオペランドデータを予め主記憶からキャッシュに転送しておくことにより、キャッシュミスによるオーバヘッドを隠すことができるようにしたソフトウェアプリフェッチ命令を備えた情報処理装置及び情報処理ユニットに関する。
【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記載の情報処理装置。
- 前記指示ビットにより指示される内容が、プリフェッチしたオペランドデータを前記階層化された複数のキャッシュの1次キャッシュ以外の全ての階層のキャッシュに転送する指示であることを特徴とする請求項1記載の情報処理装置。
- 1次キャッシュと2次キャッシュとからなる2階層キャッシュを有し、演算で用いるオペランドデータを該演算の実行に先立って予め外部主記憶からキャッシュに転送するソフトウェアプリフェッチ命令を実行する情報処理ユニットにおいて、前記ソフトウェアプリフェッチ命令の命令コードにプリフェッチするデータの転送先のキャッシュ階層を指定する指示ビットを設け、プリフェッチ命令実行時、前記指示ビットの内容に応じて指定された階層のキャッシュにオペランドデータを転送することを特徴とする情報処理ユニット。
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)
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)
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 | 株式会社日立製作所 | 情報処理装置及び情報処理ユニット |
-
1995
- 1995-10-27 JP JP28083695A patent/JP3717212B2/ja not_active Expired - Fee Related
-
1996
- 1996-10-28 US US08/738,912 patent/US6131145A/en not_active Expired - Fee Related
-
2000
- 2000-07-03 US US09/609,376 patent/US6381679B1/en not_active Expired - Fee Related
-
2002
- 2002-03-04 US US10/086,724 patent/US6598126B2/en not_active Expired - Fee Related
- 2002-03-04 US US10/086,736 patent/US6598127B2/en not_active Expired - Fee Related
-
2003
- 2003-04-29 US US10/424,706 patent/US7028159B2/en not_active Expired - Fee Related
- 2003-06-19 US US10/464,484 patent/US7028160B2/en not_active Expired - Fee Related
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 |