JP3718667B2 - 情報処理装置及び情報処理ユニット - Google Patents
情報処理装置及び情報処理ユニット Download PDFInfo
- Publication number
- JP3718667B2 JP3718667B2 JP2002309609A JP2002309609A JP3718667B2 JP 3718667 B2 JP3718667 B2 JP 3718667B2 JP 2002309609 A JP2002309609 A JP 2002309609A JP 2002309609 A JP2002309609 A JP 2002309609A JP 3718667 B2 JP3718667 B2 JP 3718667B2
- 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
Images
Landscapes
- Executing Machine-Instructions (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【発明の属する技術分野】
本発明は、階層構成のキャッシュを有する情報処理装置及び情報処理ユニットに係り、特に、演算に使用するオペランドデータを予め主記憶からキャッシュに転送しておくことにより、キャッシュミスによるオーバヘッドを隠すことができるようにしたソフトウェアプリフェッチ命令を備えた情報処理装置及び情報処理ユニットに関する。
【0002】
【従来の技術】
一般に、キャッシュを有する情報処理装置は、命令により参照したオペランドがキャッシュに存在しない場合、すなわち、キャッシュミスが生じた場合、前記オペランドを主記憶から読み出して使用している。通常、この読み出しには、キャッシュアクセスの数倍から数十倍の時間を要する。このため、この種の情報処理装置は、キャッシュミスが生じると、オペランドが主記憶から読み出されるまでの間、後続命令の実行を待たせることになり、実行時間が長くなってその性能が抑えられてしまうという問題点を有している。
【0003】
前述の問題点を解決することのできる技術として、予め将来用いるオペランドデータを主記憶からキャッシュに転送し、そのオペランドデータを用いるときにはキャッシュヒットとなるようにして、キャッシュミスのペナルティを抑えるようにした技術が知られており、これを実現するためのソフトウェアプリフェッチ命令に関する研究がなされ、様々な情報処理装置で使用されている。
【0004】
ソフトウェアプリフェッチ命令に関する従来技術として、例えば、非特許文献1等に記載された技術が知られている。
【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】
【非特許文献1】
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
【0020】
【発明が解決しようとする課題】
前述した2階層以上のキャッシュ構成を有する従来技術による情報処理装置は、オペランドデータがどの階層のキャッシュにヒットするかによりソフトウェアプリフェッチ命令を実行する時期を変える必要がある。このため、前述の従来技術は、コンパイラがソフトウェアプリフェッチ命令を生成しようとする際の制御が複雑になり、ソフトウェアプリフェッチ命令の効果を十分に生かすことが困難になるという問題点が生じる。
【0021】
図9はソフトウェアプリフェッチ動作の対象となる連続領域に配置された配列データのアドレス関係を示す図、図10はソフトウェアプリフェッチ命令を用いて図9に示すように配列されているオペランドデータを転送する場合の動作を説明するタイムチャートである。
【0022】
以下、図7に示す装置においてブロックサイズが32Bであり、ラインサイズが128Bであり、また、ブロック転送には4サイクル、ライン転送には40サイクルを要するものとして、前述の従来技術の問題点を説明する。
【0023】
ソフトウェアプリフェッチ命令が使用される例として、最も一般的な連続領域に配置されている配列A[i](i=0、1、2、……)を順番に参照する場合を考える。配列A[i]の個々のデータサイズを8Bとすると、ライン、ブロックのアドレス関係は図9に示すようになる。
【0024】
初期状態において、配列A[i]のデータは、全て1次、2次キャッシュともにキャッシュミスとなったとする。この場合、まず、A[0]のデータを主記憶からライン転送するため、A[0]のデータを参照する命令の40サイクル前にソフトウェアプリフェッチ命令が実行される。この実行により、1ブロック相当の32Bのデータ、すなわち、A[0]からA[3]までのデータが1次キャッシュヒットになる。同様に、ライン相当の128Bのデータ、すなわち、A[0]からA[15]までのデータが2次キャッシュヒットになる。
【0025】
従って、その後の命令の処理における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である。
【0026】
図10から判るように、また、図8によりすでに説明したように、ソフトウェアプリフェッチ命令の実行間隔は一定でなく、不規則なものになっている。この理由は、主記憶からライン転送を行うためのソフトウェアプリフェッチ命令と、2次キャッシュからブロック転送を行うためのソフトウェアプリフェッチ命令との実行間隔が一致していないためである。
【0027】
一方、前述したような配列を持つデータに対するアクセスおよび演算は、極めて規則的な繰り返しであるため、通常、分岐命令によるループで構成される命令列により実行される。ソフトウェアプリフェッチ命令の実行間隔が不規則であると、これらのソフトウェアプリフェッチ命令をループに組み込むことが困難となる。また、ライン転送かブロック転送かを判断するための命令が必要になり、このため、命令数の増加を招きソフトウェアプリフェッチ命令による処理装置の性能の向上が妨げられることになる。さらに、1ループでライン全てのデータを扱うようにした場合でも、同様に命令数の増加になりソフトウェアプリフェッチ命令による処理装置の性能の向上が妨げられる。
【0028】
本発明の目的は、前述した従来技術の問題点を解決し、2階層以上のキャッシュ構成を有する情報処理装置において、コンパイラが命令列を生成しやすいソフトウェアプリフェッチ命令を提供し、キャッシュミスによる性能の低下を効果的に抑えることができ、これにより、性能の向上が図られた情報処理装置及び情報処理ユニットを提供することにある。
【0029】
【課題を解決するための手段】
本発明によれば前記目的は、主記憶と1次キャッシュ及び2次キャッシュからなる2階層キャッシュを有し、演算で用いるオペランドデータを該演算の実行に先立って予め主記憶からキャッシュに転送するソフトウェアプリフェッチ命令を実行する情報処理装置であって、前記ソフトウェアプリフェッチ命令のオペレーションコードに、プリフェッチするオペランドデータの転送先キャッシュ階層およびデータ量を指定する指示ビットを設け、ソフトウェアプリフェッチ命令実行時、前記指示ビットの内容に基づいてオペランドデータのプリフェッチを行うことにより達成される。
【0030】
また、前記目的は、1次キャッシュと外部2次キャッシュを制御する制御部とを有し、演算で用いるオペランドデータを該演算の実行に先立って予め外部主記憶からキャッシュに転送するソフトウェアプリフェッチ命令を実行する情報処理ユニットであって、前記ソフトウェアプリフェッチ命令のオペレーションコードに、プリフェッチするオペランドデータの転送先およびデータ量を指定する指示ビットを設け、ソフトウェアプリフェッチ命令実行時、前記指示ビットの内容に基づいてオペランドデータのプリフェッチ動作の制御を行うことにより達成される。
【0031】
さらに、前記目的は、主記憶と階層化された複数のキャッシュを有し、演算で用いるオペランドデータを該演算の実行に先立って予め前記主記憶から前記キャッシュに転送するソフトウェアプリフェッチ命令を実行する情報処理装置において、前記ソフトウェアプリフェッチ命令の命令コードにプリフェッチするオペランドデータの転送先のキャッシュ階層およびデータ量を指定する指示ビットを設け、プリフェッチ命令実行時、前記指示ビットの内容に基づいてオペランドデータのプリフェッチを行うことにより達成される。
【0032】
本発明は、2階層のキャッシュ構成を有する情報処理装置において、コンパイラが命令を生成するとき、前記指示ビットを用いて、転送を行うキャッシュの階層または転送するデータサイズを明示的に指定することができるので、規則的にソフトウェアプリフェッチ命令を生成することが可能となる。このため、本発明は、命令列が、配列データのアクセス、配列データの演算のように命令のループで構成される場合に、アドレス関係を判定する命令等を生成する必要をなくすことができる。
【0033】
さらに、本発明は、本発明によるセットアーキテクチャと従来技術のセットアーキテクチャとの互換性を容易に実現することができる。例えば、ブロックサイズが32バイトの場合、ソフトウェアプリフェッチ命令のオペランドアドレスの下位5ビットは、アドレスとして用いられることはない。この5ビットを使用して前述した指示を行うようにすれば、命令セットのアーキテクチャを拡張することなく、互換性を保つことができる。
【0034】
本発明は、以上のように、ソフトウェアプリフェッチ命令を有効に用いることができ、これにより、情報処理装置の性能の向上を図ることができる。
【0035】
【発明の実施の形態】
以下、本発明による情報処理装置及び情報処理ユニットの一実施形態を図面により詳細に説明する。
【0036】
図1は本発明の一実施形態で使用するソフトウェアプリフェッチ命令のオペランドアドレスのフォーマットを示す図、図2は本発明の一実施形態による情報処理装置の構成例を示すブロック図、図3はソフトウェアプリフェッチ命令のオペランドアドレス中の指示ビットにより指示される動作を説明する図、図4は本発明の一実施形態によるソフトウェアプリフェッチ命令動作を説明するタイムチャートである。図2における符号は図7の場合と同一である。
【0037】
以下に説明する本発明の一実施形態において、2次キャッシュから1次キャッシュに転送するデータのブロックサイズは32Bであり、主記憶から2次キャッシュに転送するデータのラインサイズは128Bであるとする。図1に示すソフトウェアプリフェッチ命令のオペランドアドレスのフォーマットにおいて、オペランドアドレスは、ブロックサイズが32Bであることより、オペランドアドレスの下位5ビットがソフトウェアプリフェッチ命令では不要である。このため、本発明の一実施形態では、この下位5ビットを、プリフェッチ動作の内容を指示するビット(以下、PFビットという)として用いる。
【0038】
この下位5ビットのPFビットの値とソフトウェアプリフェッチ動作との対応の例が図3に示されており、以下、これについて説明する。
【0039】
PFビットの値が0のとき、何の指示もないことを示す。このとき、ソフトウェアプリフェッチは、従来技術の場合と同様に実行される。この指示は従来技術との互換性を保ちたい場合に有効である。
【0040】
PFビットの値が1のとき、オペランドアドレスで示されるラインの全てを1次キャッシュ22にプリフェッチすることを示す。2次キャッシュヒットの場合、1ライン分128B、すなわち、4ブロックを1次キャッシュ22に転送する。2次キャッシュミスの場合、主記憶25から当該ラインをライン転送し、1次および2次キャッシュに格納することを示す。
【0041】
PFビットの値が2のとき、オペランドアドレスで示されるブロックを2次キャッシュ23から1次キャッシュ22へブロック転送することを示す。2次キャッシュミスの場合、主記憶から当該ラインのライン転送は行わない。
【0042】
PFビットの値が3のとき、オペランドアドレスで示されるラインを主記憶25から2次キャッシュ23のみへ転送することを示す。すなわち、2次キャッシュミスの場合、主記憶25から当該ラインを2次キャッシュにライン転送する。1次キャッシュ22へは転送しない。
【0043】
PFビットの値が4のとき、オペランドアドレスで示されるラインを含むアラインされた512B、すなわち、4ラインを主記憶から2次キャッシュのみへ転送することを示す。
【0044】
次に、図2に示す本発明の一実施形態による情報処理装置におけるソフトウェアプリフェッチ命令の動作を説明する。図示本発明が適用される情報処理装置は、2階層のキャッシュ構成を有する情報処理装置であり、図7に示す従来技術の場合と同一の構成を有する。
【0045】
図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の全てのデータを格納する。
【0046】
この動作により、1ライン128Bのデータの全てを1つのソフトウェアプリフェッチ命令により1次キャッシュ22にプリフェッチすることができる。
【0047】
PFビットの値が2であるとする。この場合、CPU21は、オペランドアドレスにより2次キャッシュ23を検索し、2次キャッシュヒットであれば、2次キャッシュ23よりオペランドアドレスで示される1ブロック32Bのデータを1次キャッシュ22へ転送する。また、2次キャッシュ23がミスであれば、CPU21は、何も動作を起こさない。すなわち、この場合、CPU21は、SCU24へはライン転送要求を送らない。
【0048】
この動作により、予め2次キャッシュ23へプリフェッチされているオペランドデータを1次キャッシュ22へブロック転送することができる。
【0049】
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次キャッシュへの格納は行わない。
【0050】
この動作により、1次キャッシュに影響を与えることなく、主記憶25から2次キャッシュ23へデータをプリフェッチすることができる。
【0051】
PFビットの値が4であるとする。この場合、CPU21は、リクエスト線201、アドレス線202、PFビット線203を介しライン転送要求をSCU24へ送出する。SCU24は、これにより、主記憶25より4ライン分の合計512Bのデータを読み出し、このデータをデータ線204を介してCPU21へ転送する。CPU21は、受け取ったオペランドデータ512Bを2次キャッシュ23へ格納する。この場合、1次キャッシュへの格納は行わない。
【0052】
この動作により、通常のキャッシュアクセスを行う命令により転送されるデータ量の4倍(4倍に限らず整数倍であればよい)の4ライン分の512Bのデータの全てを、1つのソフトウェアプリフェッチ命令により1次キャッシュに影響を与えることなく、主記憶25から2次キャッシュ23へプリフェッチすることができる。
【0053】
前述したPFビットの値が4の場合において、CPU21がSCU24に対し4回ライン転送要求を発行するようにして、512Bのデータを2次キャッシュ23へ格納することもできる。これにより、SCU24の設計を全く変更することなく、本発明によるソフトウェアプリフェッチを実現することができる。
【0054】
前述した本発明の一実施形態によるソフトウェアプリフェッチの動作のタイムチャートが図4に示されている。この例では、ブロック転送に4サイクル、ライン転送に40サイクルを要するものとしている。
【0055】
ソフトウェアプリフェッチ命令が使用される例として、従来技術において説明した最も一般的な連続領域に配置されている配列A[i](i=0、1、2、……)を順番に参照する場合を例とし、配列A[i]の個々のデータサイズを8Bとすると、ライン、ブロックのアドレス関係は、すでに説明した図9に示すようになる。
【0056】
図4に示す例は、ソフトウェアプリフェッチ命令内のPFビットの値を1として、1ライン128Bのデータを1次キャッシュ22にプリフェッチする場合のタイムチャートである。この場合、128B、すなわち配列データを16個アクセスする度にその40サイクル前にソフトウェアプリフェッチ命令を発行すればよいことになる。
【0057】
前述した本発明一実施形態は、ソフトウェアプリフェッチ命令内のPFビットを命令のオペランドアドレスの使用しないビットに設けるとし、また、PFビットによる指示内容をその5種類について例示して説明したが、本発明は、PFビットを命令のオペランドコードの使用しないビットに設けるようにすることもでき、また、指示内容をさらに多種類とすることもできる。
【0058】
また、前述した本発明一実施形態は、2層のキャッシュを備える情報処理装置に本発明を適用したものとして説明したが、本発明は、さらに多層のキャッシュを備える情報処理装置に対しても適用することができる。
【0059】
【発明の効果】
以上説明したように本発明によれば、ソフトウェアプリフェッチ命令の中で、データを転送するキャッシュの階層を明示的に指示することができ、また、ソフトウェアプリフェッチ命令を規則的な間隔で発行することができるので、コンパイラにとって命令コードを生成しやすく、アドレスを判定するための余分な分岐命令も不要とすることができる。
【0060】
また、本発明によれば、ソフトウェアプリフェッチ命令の中で、転送するデータ量をライン、ブロックの整数倍に指定することができるので、大量のデータを少ない数のソフトウェアプリフェッチ命令により転送することができる。さらに、本発明によれば、ソフトウェアプリフェッチ命令の中の従来のオペランドコードで未使用であった部分、または、オペランドアドレスの下位の未使用である部分に、前述の指示ビットを設けることができるので、従来技術の場合とのアーキテクチャ上の互換性を保つことができる。
【0061】
本発明によれば、前述により、ソフトウェアプリフェッチ命令による情報処理装置の性能の向上を効果的に図ることができる。
【図面の簡単な説明】
【図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 (5)
- 主記憶と1次キャッシュ及び2次キャッシュからなる2階層キャッシュを有し、演算で用いるオペランドデータを該演算の実行に先立って予め主記憶からキャッシュに転送するソフトウェアプリフェッチ命令を実行する情報処理装置であって、前記ソフトウェアプリフェッチ命令のオペレーションコードに、プリフェッチするオペランドデータの転送先キャッシュ階層およびデータ量を指定する指示ビットを設け、ソフトウェアプリフェッチ命令実行時、前記指示ビットの内容に基づいてオペランドデータのプリフェッチを行うことを特徴とする情報処理装置。
- 前記指示ビットにより指示される内容が、前記2次キャッシュにソフトウェアプリフェッチ命令ではない通常のキャッシュアクセスを行う命令により転送されるデータ量の整数倍を転送する指示であることを特徴とする請求項1記載の情報処理装置。
- 1次キャッシュと外部2次キャッシュを制御する制御部とを有し、演算で用いるオペランドデータを該演算の実行に先立って予め外部主記憶からキャッシュに転送するソフトウェアプリフェッチ命令を実行する情報処理ユニットであって、前記ソフトウェアプリフェッチ命令のオペレーションコードに、プリフェッチするオペランドデータの転送先およびデータ量を指定する指示ビットを設け、ソフトウェアプリフェッチ命令実行時、前記指示ビットの内容に基づいてオペランドデータのプリフェッチ動作の制御を行うことを特徴とする情報処理ユニット。
- 前記指示ビットにより指示される内容が、前記外部2次キャッシュにソフトウェアプリフェッチ命令ではない通常のキャッシュアクセスを行う命令により転送されるデータ量の整数倍を転送する指示であることを特徴とする請求項3記載の情報処理ユニット。
- 主記憶と階層化された複数のキャッシュを有し、演算で用いるオペランドデータを該演算の実行に先立って予め前記主記憶から前記キャッシュに転送するソフトウェアプリフェッチ命令を実行する情報処理装置において、前記ソフトウェアプリフェッチ命令の命令コードにプリフェッチするオペランドデータの転送先のキャッシュ階層およびデータ量を指定する指示ビットを設け、プリフェッチ命令実行時、前記指示ビットの内容に基づいてオペランドデータのプリフェッチを行うことを特徴とする情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002309609A JP3718667B2 (ja) | 2002-10-24 | 2002-10-24 | 情報処理装置及び情報処理ユニット |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002309609A JP3718667B2 (ja) | 2002-10-24 | 2002-10-24 | 情報処理装置及び情報処理ユニット |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP28083695A Division JP3717212B2 (ja) | 1995-10-27 | 1995-10-27 | 情報処理装置及び情報処理ユニット |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003177961A JP2003177961A (ja) | 2003-06-27 |
JP3718667B2 true JP3718667B2 (ja) | 2005-11-24 |
Family
ID=19197465
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002309609A Expired - Fee Related JP3718667B2 (ja) | 2002-10-24 | 2002-10-24 | 情報処理装置及び情報処理ユニット |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3718667B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006107041A (ja) * | 2004-10-04 | 2006-04-20 | Hitachi Ltd | ハードウェアイベントハンドルモジュール |
JP2012133416A (ja) | 2010-12-17 | 2012-07-12 | Toshiba Corp | メモリシステム |
US9996350B2 (en) | 2014-12-27 | 2018-06-12 | Intel Corporation | Hardware apparatuses and methods to prefetch a multidimensional block of elements from a multidimensional array |
-
2002
- 2002-10-24 JP JP2002309609A patent/JP3718667B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003177961A (ja) | 2003-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3717212B2 (ja) | 情報処理装置及び情報処理ユニット | |
JP3512678B2 (ja) | キャッシュメモリ制御装置および計算機システム | |
US6742106B2 (en) | Vector transfer system generating address error exception when vector to be transferred does not start and end on same memory page | |
JP4218820B2 (ja) | ダイレクトマップドキャッシュとフルアソシアティブバッファとを含んだキャッシュシステム、その制御方法及び記録媒体 | |
JPH0588888A (ja) | アドレス生成機構及びデータの事前取り出し方法 | |
US6553486B1 (en) | Context switching for vector transfer unit | |
CN111213132A (zh) | 用飞行中预取服务于cpu需求请求 | |
JP4888839B2 (ja) | キャッシュメモリを備えるベクトル計算機システム、及びその動作方法 | |
US6560676B1 (en) | Cache memory system having a replace way limitation circuit and a processor | |
CN115827065A (zh) | 使用早期和后期地址以及循环计数寄存器来跟踪架构状态的流引擎 | |
JP2000298618A (ja) | セットアソシアティブ型キャッシュメモリ装置 | |
EP1316015A2 (en) | Method and apparatus for using an assist processor to prefetch instructions for a primary processor | |
JP3718667B2 (ja) | 情報処理装置及び情報処理ユニット | |
KR20190130570A (ko) | 슈퍼-스레드 프로세서 | |
KR19990087830A (ko) | 컴퓨터 장치, 컴파일러 방법 및 다중 캐시 라인 사전적재방법 | |
JP5223220B2 (ja) | ベクトル処理装置及びベクトル処理システム | |
JP7346883B2 (ja) | ベクトルプロセッサ装置及び生成方法 | |
JP2002236614A (ja) | キャッシュ制御方法及びキャッシュ制御回路 | |
JP2000047942A (ja) | キャッシュメモリ制御装置及びその制御方法 | |
JP4664011B2 (ja) | 情報処理装置及び情報処理方法 | |
TW202331713A (zh) | 用於儲存和存取在記憶體單元中的資料運算元之方法 | |
JP2004152292A (ja) | 予測アドレス値を生成するための計算回路、および計算回路で次アドレスを予測する方法 | |
JP2001505327A (ja) | 1クロックサイクル内でデータをストアするよう構成されたデータメモリユニット、およびその動作方法 | |
JP2008305082A (ja) | メモリシステム | |
JP2005535045A (ja) | Vliw命令を処理するためのプロセッサおよび方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050329 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050531 |
|
A521 | Written amendment |
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: 20050830 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050905 |
|
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 |