JP3576992B2 - 画像処理装置、画像処理方法、プログラム - Google Patents
画像処理装置、画像処理方法、プログラム Download PDFInfo
- Publication number
- JP3576992B2 JP3576992B2 JP2001121316A JP2001121316A JP3576992B2 JP 3576992 B2 JP3576992 B2 JP 3576992B2 JP 2001121316 A JP2001121316 A JP 2001121316A JP 2001121316 A JP2001121316 A JP 2001121316A JP 3576992 B2 JP3576992 B2 JP 3576992B2
- Authority
- JP
- Japan
- Prior art keywords
- function
- processing
- vertex
- data
- image processing
- 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
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Image Processing (AREA)
- Image Generation (AREA)
Description
【発明の属する技術分野】
本発明は画像処理装置、画像処理方法に関し、特にOPEN GLに準拠したライブラリ関数を高速に実行する装置および方法に関する。
【0002】
【従来の技術】
CPUの性能は年々向上し、実行性能における、さらなる高性能な処理への要求が高まっていく中で、キャッシュをいかにうまく利用して、システムの性能を向上させるかも問題となってきている。その中で、少しでも効率よくデータや命令を先読みし、キャッシュのヒット率を向上させ、システムの実行性能の向上を図っている。
【0003】
特に、最近のCPU(中央処理装置)では、プリフェッチ(PreFetch)命令という、メモリからキャッシュへのデータの先読み命令を持つものがある。メモリ上の連続領域に配置された一連のデータを処理する場合、あるいは、次に処理されるべきデータがメモリ上のどこに置かれているかが明白な場合には、プリフェッチ命令を使用して、次の処理されるべきデータの先読みを行い、効率よくデータ処理を行っていた。
【0004】
特開平11−212802号公報「コンパイル装置」には、データキャッシュを「有効に活用したプログラムを生成して実行時性能を向上するようにしたコンパイル装置であって、コンパイル段階でプログラムの構造の特徴を解析してロード命令に先立ってデータキャッシュに必要なメモリの内容をコピーする技術が開示されている。
【0005】
【発明が解決しようとする課題】
上述の従来のキャッシュの使用方法では、不特定多数のユーザから利用される、一連の関数群からなるライブラリを実現する場合には、ライブラリとして提供する関数においては、その呼び出された時に受け渡されたデータ(パラメータ)以外の情報はないので、プリフェッチ命令を効果的に利用できないという問題があった。
【0006】
特開平11−212802号公報「コンパイル装置」は、不特定多数のユーザから利用される、一連の関数群からなるライブラリには適用することが難しかった。
【0007】
しかし、一定の規則にしたがって、繰り返し呼び出されることが予測できるケースもある。本発明の目的は、プリフェッチ命令を持った装置上での、不特定ユーザから利用されるライブラリ(関数群)の実現において、その関数の特性と、それまでに呼び出された関数でのパラメータのメモリ上のアドレスから、次に呼び出される関数で受け渡されるデータのメモリ上のアドレスを予測して、事前にそのアドレスのデータのプリフェッチを実施することによって、効率的にデータを処理し画像処理の性能向上を図ることである。
【0008】
【課題を解決するための手段】
本発明第一の画像処理装置は、キャッシュメモリへのプリフェッチ機能をもつ処理装置により、グラフィックスライブラリの関数を処理する画像処理装置であって、前記処理装置からなる関数処理部と、前記関数の処理のあとに使用されるであろうデータまたは命令のアドレスを予測するエリア予測部と、前記エリア予測部により予測されたアドレスに格納されている命令またはデータを前記キャッシュメモリへプリフェッチするプリフェッチ部からなる。
【0009】
本発明第一の画像処理方法は、キャッシュメモリへのプリフェッチ機能をもつ処理装置によりグラフィックスライブラリの関数を処理する画像処理方法であって、前記処理装置により前記グラフィックスライブラリの関数を処理する第一のステップと、前記関数の処理のあとに使用されるであろうデータまたは命令のアドレスを予測する第2のステップと、前記エリア予測部により予測されたアドレスに格納されている命令またはデータを前記キャッシュメモリへプリフェッチする第3のステップからなる。
【0010】
本発明第一のプログラムは、コンピュータに、キャッシュメモリへのプリフェッチ機能をもつ処理装置によりグラフィックスライブラリの関数を処理する画像処理プログラムであって、前記処理装置により前記グラフィックスライブラリの関数を処理する第一のステップと、前記関数の処理のあとに使用されるであろうデータまたは命令のアドレスを予測する第2のステップと、前記エリア予測部により予測されたアドレスに格納されている命令またはデータを前記キャッシュメモリへプリフェッチする第3のステップ各ステップを実行させる。
【0011】
本発明第二の画像処理装置は、キャッシュメモリへのプリフェッチ機能をもつ処理装置により、複数のグラフィックスライブラリの関数により第一の頂点と第二の頂点から構成される折れ線を描画する画像処理装置であって、前記処理装置からなる関数処理部において第一の頂点の座標の座標を前記関数へ渡し描画する関数処理装置と、前記関数の処理のあとに前記第二の頂点のアドレスを予測するエリア予測部と、前記エリア予測部により予測された前記アドレスに格納されている命令またはデータを前記キャッシュメモリへプリフェッチするプリフェッチ部からなる。
【0012】
本発明第二の画像処理方法は、キャッシュメモリへのプリフェッチ機能をもつ処理装置により、複数のグラフィックスライブラリの関数により第一の頂点と第二の頂点から構成される折れ線を描画する画像処理方法であって、前記処理装置からなる関数処理部において第一の頂点の座標の座標を前記関数へ渡し描画する第一のステップと、前記関数の処理のあとに前記第二の頂点のアドレスを予測する第二のステップと、前記エリア予測部により予測された前記アドレスに格納されている命令またはデータを前記キャッシュメモリへプリフェッチする第三のステップからなることを特徴とする画像処理装置。
【0013】
本発明第二のプログラムは、コンピュータに、キャッシュメモリへのプリフェッチ機能をもつ処理プログラムにより、複数のグラフィックスライブラリの関数により第一の頂点と第二の頂点から構成される折れ線を描画する画像処理方法であって、前記処理装置からなる関数処理部において第一の頂点の座標の座標を前記関数へ渡し描画する第一のステップと、前記関数の処理のあとに前記第二の頂点のアドレスを予測する第二のステップと、前記エリア予測部により予測された前記アドレスに格納されている命令またはデータを前記キャッシュメモリへプリフェッチする第三のステップ各ステップを実行させる。
【0014】
本発明第三の画像処理装置は、本発明第一の画像処理装置であって、前記関数の種類により前記エリア予測部での予測方法を変更する。
【0015】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して詳細に説明する。以下図面を参照しつつ実施例に従って説明する。図1は本発明実施の形態の画像処理装置の構成を示すブロック図である。画像処理装置1は、関数処理部11とエリア予測部12とプリフェッチ部13から構成される。ライブラリの中に実装される関数は、関数処理部11により実行される。関数処理部はキャッシュ111を有する。エリア予測部12は、関数の処理の後に使用されるであろうデータ(または命令)エリアを予測する。プリフェッチ部13は、エリア予測部12での予測結果に基づいて、そのデータ(または命令)のプリフェッチを行ってキャッシュ111上に先読みする。
【0016】
図2は、本発明実施の形態の画像処理方法の動作を示すフローチャートである。まず、関数Aの本来の処理を関数が呼ばれた際に渡されたデータに従って実行する(ステップA−1)。次に、関数Aが呼ばれた際に渡されたデータとは直接関係のない、その後の処理で使われる事が予想されるデータ(または命令)を予測する(ステップA−2)。最後に、関数Aの呼び出しの中では使われないデータ(または命令)をキャッシュ111上に先読みする(ステップA−3)。これにより、キャッシュのミスヒットを削減し、効率的な処理を行う。
【0017】
次に、本発明の実施の形態の動作について図面を参照して説明する。
図3は、アプリケーションプログラムにおいて、折れ線を描画するための各頂点の座標データのメモリ上での配置を示す図である。図4は、3次元グラフィックスのライブラリ、OpenGLの仕様での、個々の頂点の処理を行う関数を示す図である。たとえば、3次元グラフィックス機能を提供するライブラリを例にとって考える。アプリケーションプログラムにおいて、一般に、折れ線を描画するための各頂点の座標データは、図3のようにメモリ上の連続領域に配置されることが多い。また、3次元グラフィックスのライブラリとして、最も広く使われているOpenGLの仕様では、図4のように、個々の頂点の処理を行う関数を持っている。
【0018】
この場合、第一の頂点の処理を行う関数呼び出し(b1)においては、第一の頂点の処理のみを行えばよい(第一の頂点の情報以外の情報は渡されない)が、次には、第二の頂点が処理されることが予想され、第二の頂点のデータの格納アドレスを予測し、そのアドレスのデータをプリフェッチしておくことによって、次の第二の頂点を処理する関数の呼び出し(b2)においては、そこで処理すべきデータがすでにキャッシュ上に存在する状況になっており、効率的に処理することができる。第二の頂点のデータの格納アドレスの最も単純な予測の方法としては、図3のように連続的に配置されていると考え、次のキャッシュラインをプリフェッチすることである。
【0019】
図6は、アプリケーションプログラムにおいて、各頂点について、座標データの他に、その頂点の描画すべき色とか、その頂点にかかる圧力の情報などを持つ場合の座標データのメモリ上での配置を示す図である。図6のようなケースでは、各頂点について、座標データの他に、その頂点の描画すべき色とか、その頂点にかかる圧力の情報などをメモリ上に連続して持つこともよくあるケースである。このような場合には、先に関数が呼ばれたときに渡されたデータのアドレスを保持しておき、今回関数が呼ばれた際のデータのアドレスとの差分(mワード)を求め、次のデータの格納アドレスは、今回のデータのアドレスから、その差分であるmワード先と予測する。
【0020】
第一の頂点を処理する関数の呼び出し(b1)の中で、そこでは、参照されることのない、次のデータの格納アドレスを予測し、そのデータをプリフェッチしておくことによって、第二の頂点を処理する関数の呼び出し(b2)の処理を高速に実施することができる。最後の頂点である第n番目の処理(bn)においては、意味のないデータをプリフェッチすることになるが、全体の処理効率は向上する。
【0021】
図7は、図5に示した折れ線を描画するためのすべての頂点データを一括して受け渡し、一括処理するような関数でのプリフェッチ方法を示すフローチャートである。図5に示したような折れ線を描画するためのすべての頂点データを一括して受け渡し、一括処理するような関数がある。この場合には、関数の中で、処理効率を考慮して、図7のようにプリフェッチを実行する。
【0022】
図8は、本発明第二の実施の形態のデータ、命令エリアの予測方法を示すフロ−チャートである。図3、6図に示したように、データは連続的に格納されていたり、ある一定間隔で格納されていたり、様々なケースが考えられる。しかし、格納方法は、アプリケーションプログラムごとに、一定のルールで格納される。そこで、前記「後に使用されるであろうデータ(または命令)エリアの予測手段1」に、アプリケーションプログラムが何であるかを判別する手段を持たせ、アプリケーションプログラムごとに、予測の方法を変更する。
【0023】
先の実施例においては、データのプリフェッチの例を示した。現在、広く使用されているPentiumIIIというCPUでは、データのプリフェッチの命令しか用意されていない。しかし、命令キャッシュへの命令のプリフェッチ命令を持った装置では、たとえば、第4の例では、Begin()という関数の次には、Vertex()という関数が呼ばれることが多いと予想され、Begin()という関数において、次に呼ばれるであろう関数を予測して、その関数のアドレスを求め、その関数の命令を命令キャッシュにプリフェッチする。
【0024】
上述の各ステップはコンピュータのプログラムにより実現することが可能である。図9は、本発明実施の形態の画像処理プログラムを実行するコンピュータ60とそのプログラムが記録された記録媒体を示す図である。
【0025】
【発明の効果】
本発明によれば、先に呼ばれた同一もしくは別の関数の実行の際に、次に処理されるであろうデータを予測し、そのデータのアドレスを予測して、プリフェッチしておくことによって、関数が呼ばれた際には、すでに、そこで処理されるべきデータはキャッシュ上にプリフェッチされているために、効率的に処理できるというメリットがある。
【図面の簡単な説明】
【図1】本発明実施の形態の画像処理装置の構成を示すブロック図である。
【図2】本発明実施の形態の画像処理方法の動作を示すフローチャートである。
【図3】アプリケーションプログラムにおいて、折れ線を描画するための各頂点の座標データのメモリ上での配置を示す図である。
【図4】3次元グラフィックスのライブラリ、OpenGLの仕様での、個々の頂点の処理を行う関数を示す図である。
【図5】3次元グラフィックスのライブラリ、OpenGLの仕様での、折れ線を描画するためのすべての頂点データを一括して受け渡し、一括処理する関数を示す図である。
【図6】アプリケーションプログラムにおいて、各頂点について、座標データの他に、その頂点の描画すべき色とか、その頂点にかかる圧力の情報などを持つ場合の座標データのメモリ上での配置を示す図である。
【図7】図5に示した折れ線を描画するためのすべての頂点データを一括して受け渡し、一括処理するような関数でのプリフェッチ方法を示すフローチャートである。
【図8】本発明第二の実施の形態のデータ、命令エリアの予測方法を示すフロ−チャートである。
【図9】本発明実施の形態の画像処理プログラムを実行するコンピュータ60とそのプログラムが記録された記録媒体を示す図である。
【符号の説明】
1 画像処理装置
11 関数処理部
12 エリア予測部
13 プリフェッチ部
111 キャッシュ
Claims (7)
- キャッシュメモリへのプリフェッチ機能をもつ処理装置により、グラフィックスライブラリの関数を処理する画像処理装置であって、前記処理装置からなる関数処理部と、前記関数の処理のあとに使用されるであろうデータまたは命令のアドレスを予測するエリア予測部と、前記エリア予測部により予測されたアドレスに格納されている命令またはデータを前記キャッシュメモリへプリフェッチするプリフェッチ部からなることを特徴とする画像処理装置。
- キャッシュメモリへのプリフェッチ機能をもつ処理装置によりグラフィックスライブラリの関数を処理する画像処理方法であって、前記処理装置により前記グラフィックスライブラリの関数を処理する第一のステップと、前記関数の処理のあとに使用されるであろうデータまたは命令のアドレスを予測する第2のステップと、前記エリア予測部により予測されたアドレスに格納されている命令またはデータを前記キャッシュメモリへプリフェッチする第3のステップからなることを特徴とする画像処理方法。
- コンピュータに、キャッシュメモリへのプリフェッチ機能をもつ処理装置によりグラフィックスライブラリの関数を処理する画像処理プログラムであって、前記処理装置により前記グラフィックスライブラリの関数を処理する第一のステップと、前記関数の処理のあとに使用されるであろうデータまたは命令のアドレスを予測する第2のステップと、前記エリア予測部により予測されたアドレスに格納されている命令またはデータを前記キャッシュメモリへプリフェッチする第3のステップの各ステップを実行させるプログラム。
- キャッシュメモリへのプリフェッチ機能をもつ処理装置により、複数のグラフィックスライブラリの関数により第一の頂点と第二の頂点から構成される折れ線を描画する画像処理装置であって、前記処理装置からなる関数処理部において第一の頂点の座標の座標を前記関数へ渡し描画する関数処理装置と、前記関数の処理のあとに前記第二の頂点のアドレスを予測するエリア予測部と、前記エリア予測部により予測された前記アドレスに格納されている命令またはデータを前記キャッシュメモリへプリフェッチするプリフェッチ部からなることを特徴とする画像処理装置。
- キャッシュメモリへのプリフェッチ機能をもつ処理装置により、複数のグラフィックスライブラリの関数により第一の頂点と第二の頂点から構成される折れ線を描画する画像処理方法であって、前記処理装置からなる関数処理部において第一の頂点の座標の座標を前記関数へ渡し描画する第一のステップと、前記関数の処理のあとに前記第二の頂点のアドレスを予測する第二のステップと、前記エリア予測部により予測された前記アドレスに格納されている命令またはデータを前記キャッシュメモリへプリフェッチする第三のステップからなることを特徴とする画像処理装置。
- コンピュータに、キャッシュメモリへのプリフェッチ機能をもつ処理装置により、複数のグラフィックスライブラリの関数により第一の頂点と第二の頂点から構成される折れ線を描画する画像処理プログラムであって、前記処理装置からなる関数処理部において第一の頂点の座標の座標を前記関数へ渡し描画する第一のステップと、前記関数の処理のあとに前記第二の頂点のアドレスを予測する第二のステップと、前記エリア予測部により予測された前記アドレスに格納されている命令またはデータを前記キャッシュメモリへプリフェッチする第三のステップの各ステップを実行させるプログラム。
- 前記関数の種類により前記エリア予測部での予測方法を変更することを特徴とする請求項1記載の画像処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001121316A JP3576992B2 (ja) | 2001-04-19 | 2001-04-19 | 画像処理装置、画像処理方法、プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001121316A JP3576992B2 (ja) | 2001-04-19 | 2001-04-19 | 画像処理装置、画像処理方法、プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002318688A JP2002318688A (ja) | 2002-10-31 |
JP3576992B2 true JP3576992B2 (ja) | 2004-10-13 |
Family
ID=18971218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001121316A Expired - Fee Related JP3576992B2 (ja) | 2001-04-19 | 2001-04-19 | 画像処理装置、画像処理方法、プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3576992B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1731998A1 (en) | 2004-03-29 | 2006-12-13 | Kyoto University | Data processing device, data processing program, and recording medium containing the data processing program |
-
2001
- 2001-04-19 JP JP2001121316A patent/JP3576992B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002318688A (ja) | 2002-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106251392B (zh) | 用于执行交织的方法和设备 | |
Patel et al. | rePLay: A hardware framework for dynamic optimization | |
KR102356705B1 (ko) | 커널 퓨징, 리사이징 및 인터리빙 자동 연산 방법 | |
US7533242B1 (en) | Prefetch hardware efficiency via prefetch hint instructions | |
US8310497B2 (en) | Anisotropic texture filtering with texture data prefetching | |
JP4821907B2 (ja) | メモリアクセス制御システム、メモリアクセス制御方法およびそのプログラム | |
CN110073329A (zh) | 访存设备、计算设备和应用于卷积神经网络运算的设备 | |
US20040268051A1 (en) | Program-directed cache prefetching for media processors | |
US20130047162A1 (en) | Efficient cache reuse through application determined scheduling | |
US20080141253A1 (en) | Cascaded Delayed Float/Vector Execution Pipeline | |
JP6925473B2 (ja) | 後方互換性のためのアプリケーション固有動作パラメータのリアルタイム調整 | |
JP5808450B1 (ja) | マルチコアプロセッサを使用して逐次プログラムを実行する制御装置 | |
US20110113411A1 (en) | Program optimization method | |
EP3137993B1 (en) | Combining compute tasks for a graphics processing unit | |
Zhang et al. | Locality based warp scheduling in GPGPUs | |
EP1316015B1 (en) | Method and apparatus for using an assist processor to prefetch instructions for a primary processor | |
JP4030314B2 (ja) | 演算処理装置 | |
Cho et al. | Adaptive scratch pad memory management for dynamic behavior of multimedia applications | |
JP3576992B2 (ja) | 画像処理装置、画像処理方法、プログラム | |
You et al. | Vector-aware register allocation for GPU shader processors | |
Tran et al. | High throughput parallel implementation of Aho-Corasick algorithm on a GPU | |
Wang et al. | Opencl optimization and best practices for qualcomm adreno gpus | |
Kyriacou et al. | Cacheflow: A short-term optimal cache management policy for data driven multithreading | |
CN112602058A (zh) | 处理器存储器存取 | |
JPH08161230A (ja) | オンデマンドページングにおける先読み方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040615 |
|
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: 20040629 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040708 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S633 | Written request for registration of reclamation of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313633 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070716 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080716 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090716 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100716 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110716 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110716 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120716 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120716 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130716 Year of fee payment: 9 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |