(57)【要約】【課題】  複数のデータをメモリより読み出し同期化する処理を効率化する。【解決手段】制御ブロック１０から入力された所望のデータのメインメモリ３０におけるアドレスを、アドレス処理部４２がそのデータの種別に基づき３つのヒット判定部４４のいずれかへ振り分ける。ヒット判定部４４によって、振り分けられたアドレスに格納されたデータが対応するキャッシュメモリ５０に存在しないと判定されたら、リクエスト発行部４６はメインメモリ３０からキャッシュメモリ５０へのデータの転送要求をリクエスト調停部４８に対し発行する。リクエスト調停部４８は、転送するデータのサイズが大きい転送要求を優先してメインメモリ３０へ伝送する。メインメモリ３０は転送要求に従いデータをキャッシュメモリ５０へ転送する。データ同期化部５２は複数のキャッシュメモリ５０から複数の転送単位のデータを読み出し、データストリームを生成し、ストリーム送出部５４は生成されたデータストリームを後段の処理回路へ出力する。【選択図】  図２
2006227912.tif 000002
【特許請求の範囲】
【請求項１】
メモリに格納されたデータの読み出し要求を発行する複数のリクエスト発行部と、
前記読み出し要求を受け付け、複数の読み出し要求を調停し、前記メモリに伝送するリクエスト調停部と、
伝送された読み出し要求に従って前記メモリから読み出されたデータを蓄積し、複数の読み出し単位のデータを一のデータストリームに同期化して出力するデータ同期化部と、を備え、
前記リクエスト調停部は、前記データ同期化部における同期化待ち時間を短縮する方針で、複数の読み出し要求の調停を行うことを特徴とする情報処理装置。
【請求項２】
前記リクエスト調停部は、複数の読み出し要求を前記メモリに伝送する順序の調停を行うことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記リクエスト調停部による複数の読み出し要求に対する調停の結果、当該複数の読み出し要求を前記メモリに伝送する時間間隔が調整されることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
複数のキャッシュメモリと、
前記複数のキャッシュメモリのそれぞれに対応して備えられ、入力されたメインメモリ内のアドレスに格納されたデータが、前記キャッシュメモリに存在するか否かを判定する複数のヒット判定部と、
前記複数のヒット判定部のそれぞれに対応して備えられ、前記データが前記キャッシュメモリに存在しないと判定された場合に、前記メインメモリから前記キャッシュメモリへのデータの転送要求を発行する複数のリクエスト発行部と、
前記転送要求を受け付け、複数の転送要求の調停を行い、前記メインメモリに伝送するリクエスト調停部と、
伝送された転送要求に従って前記メインメモリより前記複数のキャッシュメモリへ転送された複数の転送単位のデータを、一のデータストリームに同期化して後段の回路へ出力するデータ同期化部と、を備え、
前記リクエスト調停部は、前記データ同期化部における同期化待ち時間を短縮する方針で、前記複数の転送要求の調停を行うことを特徴とする情報処理装置。
【請求項５】
前記データストリームは、後段で行われる画像処理において一のフレームデータの生成に用いられる画像データのセットであり、前記複数のキャッシュメモリは、画像データの種目ごとにそれぞれデータを格納することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記リクエスト調停部は、複数の転送要求を前記メインメモリに伝送する順序を調停することを特徴とする請求項４または５に記載の情報処理装置。
【請求項７】
前記リクエスト調停部は、前記ヒット判定部によってキャッシュメモリに存在しないと判定される確率の高いデータの転送要求を優先して前記メインメモリへ伝送することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記リクエスト調停部は、サイズが大きいデータの転送要求を優先して前記メインメモリへ伝送することを特徴とする請求項６に記載の情報処理装置。
【請求項９】
前記リクエスト調停部は、前記複数の転送要求のうち、所定の種目に属するデータの読み出し要求を優先して、前記メインメモリに伝送することを特徴とする請求項６に記載の情報処理装置。
【請求項１０】
前記リクエスト調停部による複数の転送要求に対する調停の結果、複数の転送要求を前記メインメモリに伝送する時間間隔が調整されることを特徴とする請求項４または５に記載の情報処理装置。
【請求項１１】
前記キャッシュメモリに含まれるキャッシュラインの先頭アドレスに対して、当該キャッシュラインに格納するデータの先頭アドレスに、キャッシュメモリごとに異なるオフセットを与えることにより、前記リクエスト調停部が複数の転送要求を前記メインメモリへ伝送する時間間隔が調整されることを特徴とする請求項１０に記載の情報処理装置。
【請求項１２】
メモリに格納されたデータの読み出し要求を受け付けるステップと、
複数の読み出し要求の調停を行うステップと、
前記調停の結果に従い複数の読み出し要求を前記メモリに順次伝送するステップと、
伝送された読み出し要求に従い前記メモリから読み出されたデータを蓄積するステップと、
蓄積された複数の読み出し単位のデータを一のデータストリームに同期化して出力するステップと、を含み、
前記複数の読み出し要求の調停を行うステップは、同期化待ち時間を短縮する方針で調停を行うことを特徴とする情報処理方法。
【請求項１３】
入力されたメインメモリ内のアドレスに格納されたデータが複数のキャッシュメモリののうち所定のキャッシュメモリに存在するか否かを判定するステップと、
データが所定のキャッシュメモリに存在しないと判定された場合に、前記メインメモリから前記所定のキャッシュメモリへのデータの転送要求を発行するステップと、
複数の転送要求の調停を行うステップと、
調停の結果に従い複数の転送要求を前記メインメモリに伝送するステップと、
伝送された転送要求に従って前記メインメモリより前記所定のキャッシュメモリへデータを転送するステップと、
前記複数のキャッシュメモリへ転送された複数の転送単位のデータを一のデータストリームに同期化して出力するステップと、を含み、
前記複数の転送要求の調停を行うステップは、同期化待ち時間を短縮する方針で調停を行うことを特徴とする情報処理方法。
【請求項１４】
前記複数の転送要求の調停を行うステップは、キャッシュメモリに存在しないと判定される確率の高いデータの転送要求を優先して、前記メインメモリへ伝送する順序を決定することを特徴とする請求項１３に記載の情報処理装置。
【請求項１５】
前記キャッシュメモリに含まれるキャッシュラインの先頭アドレスに対して、当該キャッシュラインに格納するデータの先頭アドレスに、キャッシュメモリごとに異なるオフセットを与えることにより、前記複数の転送要求の調停を行うステップにおいて、複数の転送要求を前記メインメモリへ伝送する時間間隔が調整されることを特徴とする請求項１３または１４に記載の情報処理方法。
【請求項１６】
複数の読み出し要求によって複数のデータ要素をメモリから読み出して同期化し、一のデータストリームを生成するデータストリーム生成方法であって、
前記同期化待ち時間を短縮する方針で、前記複数の読み出し要求の発行タイミングを調整することを特徴とするデータストリーム生成方法。
【請求項１７】
メモリに格納されたデータの読み出し要求を発行する複数のリクエスト発行部と、
前記読み出し要求を受け付け、複数の読み出し要求を調停し、前記メモリに伝送するリクエスト調停部と、
伝送された読み出し要求に従って前記メモリから読み出されたデータを蓄積し、複数の読み出し単位のデータを一のデータストリームにパケット化して出力するデータ同期化部と、を備え、
前記リクエスト調停部は、前記複数の読み出し要求を前記メモリに伝送する順序の調停を行うことを特徴とする情報処理装置。
【請求項１８】
メモリに格納されたデータの読み出し要求を発行する複数のリクエスト発行部と、
前記読み出し要求を受け付け、複数の読み出し要求を調停し、前記メモリに伝送するリクエスト調停部と、
伝送された読み出し要求に従って前記メモリから読み出されたデータを蓄積し、複数の読み出し単位のデータを一のデータストリームに同期化して出力するデータ同期化部と、を備え、
前記リクエスト調停部による複数の読み出し要求に対する調停の結果、前記複数の読み出し要求を前記メモリに伝送する時間間隔が調整されることを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理技術に関し、特に複数の読み出し単位のデータをメモリから読み出し、データストリームを生成する情報処理装置と、その装置による情報処理方法、およびデータストリーム生成方法に関する。
【背景技術】
【０００２】
近年のコンピュータゲームやディジタル放送などの分野に利用されるコンピュータグラフィックス技術や画像処理技術の著しい進歩に伴い、コンピュータ、ゲーム機器、テレビなどの情報処理装置はよりサイズの大きなデータをより高速に処理する能力を求められている。これらの情報処理装置において高性能な演算処理を実現するためには、プロセッサ自体の処理速度を向上させたり、複数のプロセッサを設けて並列処理を行ったりすることが有効である。
【０００３】
上述の動作クロックの向上やマルチプロセッサの構成などの技術的発展によってプロセッサの動作速度が向上すると、メモリへのアクセス時間の問題が表面化する。アクセス時間を短縮するための対策のひとつとして、キャッシュメモリの導入によるメモリシステムの階層化が挙げられる。キャッシュメモリは高速、小容量の補助メモリであり、メインメモリに格納されたデータの一部をコピーして格納する。データアクセスに局所性のあるタスク処理の場合、繰り返しアクセスを行うデータをキャッシュメモリに格納することによって、アクセス時間を短縮することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
キャッシュメモリの導入によってメモリへのアクセス時間は短縮されるが、情報処理装置の高速化の要請は日々厳しくなり、さらなるアクセス時間短縮が望まれている。例えばキャッシュシステムにおいては、キャッシュヒット率が低いアプリケーションでは、当然メインメモリへのアクセス頻度が高くなり、情報処理装置に望まれるパフォーマンスが得にくくなる。しかしながら、キャッシュミスによるペナルティを低減するために、メインメモリの高速化、キャッシュメモリの大容量化、転送に用いるバス帯域の拡張など別の改良を加えることは、製造コスト、実装の容易性の観点から制約がある。
【０００５】
本発明はこのような課題に鑑みてなされたものであり、その目的は情報処理装置においてより高速なメモリアクセスを実現する技術の提供にある。
【課題を解決するための手段】
【０００６】
本発明のある態様は情報処理装置に関する。この情報処理装置は、メモリに格納されたデータの読み出し要求を発行する複数のリクエスト発行部と、前記読み出し要求を受け付け、複数の読み出し要求を調停し、前記メモリに伝送するリクエスト調停部と、伝送された読み出し要求に従って前記メモリから読み出されたデータを蓄積し、複数の読み出し単位のデータを一のデータストリームに同期化して出力するデータ同期化部と、を備え、前記リクエスト調停部は、前記データ同期化部における同期化待ち時間を短縮する方針で、複数の読み出し要求の調停を行うことを特徴とする。
【０００７】
本発明の別の態様もまた情報処理装置に関する。この情報処理装置は、複数のキャッシュメモリと、前記複数のキャッシュメモリのそれぞれに対応して備えられ、入力されたメインメモリ内のアドレスに格納されたデータが、前記キャッシュメモリに存在するか否かを判定する複数のヒット判定部と、前記複数のヒット判定部のそれぞれに対応して備えられ、前記データが前記キャッシュメモリに存在しないと判定された場合に、前記メインメモリから前記キャッシュメモリへのデータの転送要求を発行する複数のリクエスト発行部と、前記転送要求を受け付け、複数の転送要求の調停を行い、前記メインメモリに伝送するリクエスト調停部と、伝送された転送要求に従って前記メインメモリより前記複数のキャッシュメモリへ転送された複数の転送単位のデータを、一のデータストリームに同期化して後段の回路へ出力するデータ同期化部と、を備え、前記リクエスト調停部は、前記データ同期化部における同期化待ち時間を短縮する方針で、前記複数の転送要求の調停を行うことを特徴とする。
【０００８】
ここで「メインメモリ」とはキャッシュメモリよりアクセス時間の遅い記憶装置または記憶素子であり、情報処理装置におけるメインプロセッサが主に参照するメインメモリの他、グラフィックプロセッサが主に参照するグラフィックメモリや、ハードディスク、ＣＤ−ＲＯＭ（Compact Disc - Read Only Memory）などの外部記憶装置のいずれかでよい。
【０００９】
本発明の別の態様は情報処理方法に関する。この情報処理方法は、入力されたメインメモリ内のアドレスに格納されたデータが複数のキャッシュメモリののうち所定のキャッシュメモリに存在するか否かを判定するステップと、データが所定のキャッシュメモリに存在しないと判定された場合に、前記メインメモリから前記所定のキャッシュメモリへのデータの転送要求を発行するステップと、複数の転送要求の調停を行うステップと、調停の結果に従い複数の転送要求を前記メインメモリに伝送するステップと、伝送された転送要求に従って前記メインメモリより前記所定のキャッシュメモリへデータを転送するステップと、前記複数のキャッシュメモリへ転送された複数の転送単位のデータを一のデータストリームに同期化して出力するステップと、を含み、前記複数の転送要求の調停を行うステップは、同期化待ち時間を短縮する方針で調停を行うことを特徴とする。
【００１０】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１１】
本発明によれば、複数のデータをメモリより読み出し同期化する処理を効率化できる。
【発明を実施するための最良の形態】
【００１２】
（第一の実施の形態）
図１は、本実施の形態に係る情報処理装置１００の構成図である。情報処理装置１００は描画機能を強化したコンピュータであり、制御ブロック１０、描画ブロック２０および入出力ブロック４０がバス９０で接続されて構成され、入出力ブロック４０にはメインメモリ３０と表示装置８０が接続される。メインメモリ３０は入出力ブロック４０とネットワークを経由して接続されていてもよい。
【００１３】
制御ブロック１０は、この情報処理装置１００全体を制御するブロックであり、メインメモリ３０からのデータの読み出し制御、メインメモリ３０、表示装置８０との間のデータ転送の同期管理、情報処理装置１００内部の各ユニットからの割り込みの処理、タイマーの管理などを行う。
【００１４】
入出力ブロック４０は、メインメモリ３０に格納された、頂点座標、頂点パラメータ、クリップパラメータなど、表示したいフレームデータを生成するための情報（以下、画像データと呼ぶ）を読み込み、描画ブロック２０に提供する。メインメモリ３０にはこれらの情報が種別ごとにまとめて格納してあり、入出力ブロック４０は制御ブロック１０から入力された情報に基づき、種別ごとに所望の画像データを抽出し、それらをデータストリームと呼ばれるひとつのデータ列として出力する。以後、複数のデータからデータストリームを生成することをデータの「同期化」とよぶ。データ抽出処理の効率化のため、入出力ブロック４０には複数のキャッシュメモリ５０が備えられ、メインメモリ３０に格納された画像データの一部を、種別ごとにコピーして格納している。所望とする画像データがキャッシュメモリ５０にすでに格納されている場合、その画像データは当該キャッシュメモリ５０より抽出される。図１においてキャッシュメモリ５０は、第一キャッシュメモリ５０ａ、第二キャッシュメモリ５０ｂ、および第三キャッシュメモリ５０ｃより構成されている。キャッシュメモリ５０の数はこれに限られないが、以後、3つのキャッシュメモリ５０ａ、５０ｂおよび５０ｃとして説明する。
【００１５】
さらに入出力ブロック４０は、描画ブロック２０が出力するフレームデータに基づき表示装置８０に画像を表示する。
【００１６】
描画ブロック２０は、入出力ブロック４０から与えられる画像データのデータストリームをもとにフレームデータを生成し、メインメモリ３０内の図示しないフレームバッファに書き込むレンダリング処理を行う。
【００１７】
図２は、入出力ブロック４０の構成図である。上述のように、入出力ブロック４０は３つのキャッシュメモリ５０ａ、５０ｂおよび５０ｃを含む。キャッシュメモリ５０は例えば高速ＳＲＡＭ（Static Random Access Memory）など、高速アクセスが可能な半導体メモリで構成する。また、キャッシュメモリ５０は図示しないタグメモリを内蔵している。さらにキャッシュメモリ５０は、メインメモリ３０からのデータの読み出し単位の容量を有する「キャッシュライン」の集合体と考えることができる。すなわち、メインメモリ３０からキャッシュメモリ５０への一回の転送によって、ひとつのキャッシュラインが更新されることになる。
【００１８】
入出力ブロック４０はさらに、制御ブロック１０より受け取ったアドレス情報を、第一キャッシュメモリ５０ａ、第二キャッシュメモリ５０ｂおよび第三キャッシュメモリ５０ｃのいずれかへ振り分けるアドレス処理部４２を含む。アドレス情報には必要な画像データのメインメモリ３０内のアドレスが記述されている。アドレス情報は例えば画像データの種別とアドレスとを関連づけた情報であり、アドレス処理部４２は画像データの種別に応じて振り分け先のキャッシュメモリ５０を選択する。またはあらかじめアドレスと識別番号とを関連付けたアドレス識別テーブルを別に容易しておき、アドレス情報を、画像データの種別と識別番号とを関連づけた情報としてもよい。この場合アドレス処理部４２は、アドレス情報とアドレス識別テーブルを参照して、制御ブロック１０が指定するアドレスを特定し、データ種別ごとにキャッシュメモリ５０ａ、５０ｂおよび５０ｃのいずれかへ振り分ける。
【００１９】
入出力ブロック４０はさらに、３つのキャッシュメモリ５０ａ、５０ｂ、および５０ｃにそれぞれ対応して設けられた、第一ヒット判定部４４ａ、第二ヒット判定部４４ｂ、および第三ヒット判定部４４ｃと、第一リクエスト発行部４６ａ、第二リクエスト発行部４６ｂ、および第三リクエスト発行部４６ｃと、を含む。ヒット判定部４４は、アドレス処理部４２より渡されたアドレスの所定のビットと、対応するキャッシュメモリ５０に含まれるタグメモリ内のタグデータとを入力し、比較を行う図示しないコンパレータを含み、キャッシュメモリ５０に所望のデータが存在するかどうかを判定する。比較手法については後述する。リクエスト発行部４６は、対応するキャッシュメモリ５０に所望のデータが存在しないと判定された場合に、メインメモリ３０からの転送要求を発行する。
【００２０】
入出力ブロック４０はさらに、３つのリクエスト発行部４６ａ、４６ｂおよび４６ｃよりそれぞれの信号線を介して伝送された複数の転送要求の順序を調停してメインメモリ３０へ伝送するリクエスト調停部４８と、３つのキャッシュメモリ５０ａ、５０ｂ、および５０ｃに格納された所望のデータを読み出し、それらをデータストリームとして同期化するデータ同期化部５２と、生成されたデータストリームを描画ブロック２０へ送出するストリーム送出部５４と、を含む。リクエスト調停部４８からメインメモリ３０へ転送要求を伝送する際の信号線は、1本でも複数でもよい。リクエスト調停部４８による転送要求の順序の調停は、データ同期化部５２における複数のデータの同期化処理におけるデータの読み出し待ちの時間が少なくなるように行われる。順序の決定については後に詳述する。
【００２１】
本実施の形態におけるデータストリームは上述のとおり、描画ブロック２０がラスタライズ、シェーディングなどの処理を行い、最終的に表示装置８０へ表示する画像のフレームデータを生成するための画像データのセットである。描画ブロック２０ではこのデータストリームを一単位として処理することによりラスタライズを効率的に行うことができる。データストリームを構成するデータは、３つのキャッシュメモリ５０ａ、５０ｂ、および５０ｃの全てから読み出す必要はなく、それらのうちいずれかふたつのキャッシュメモリからのデータをもってデータストリームとしてもよい。あるいは、ひとつのキャッシュメモリのデータをそのままストリーム送出部５４より出力してもよい。このように本実施の形態では、キャッシュメモリ５０を複数備え、小さいサイズのデータはそのまま、大きいサイズのデータは同期化して出力することにより、余分なデータの転送頻度を極力抑制し、効率のよいデータ読み出しを行うことができる。
【００２２】
さらに画像データは、リアルタイム性を求められるフレームデータ生成において用いられるため、本実施の形態ではそれらのデータをいったんキャッシュメモリ５０に格納し、繰り返し用いるデータはキャッシュメモリ５０から読み出すことによって、フレームデータ生成に係る処理速度を向上させている。
【００２３】
画像データのようにデータストリームを構成するデータの種類が変化しない場合は、上述のように、例えば第一キャッシュメモリ５０ａには頂点座標を、第二キャッシュメモリ５０ｂには頂点パラメータを、第三キャッシュメモリ５０ｃにはクリップパラメータをそれぞれ格納するなど、複数のキャッシュメモリ５０のそれぞれが格納するデータの種別をあらかじめ設定しておくことができる。メインメモリ３０には、各データを種別ごとに連続した領域にまとめて格納しておき、フレームデータ生成に際して後からデータストリームとして組み合わせ、体裁を整えることによって、例えば画像データの一部のみを読み出したい場合に余分なデータへのアクセス頻度が軽減されるなど、より自由度の高い読み出しが効率的に行うことができる。また読み出し単位より小さいサイズのデータも連続して格納できるため、メインメモリ３０の使用容量の節約になる。
【００２４】
次に図２に示した入出力ブロック４０の動作について説明する。図３は主に入出力ブロック４０において行われるデータの読み出しおよびデータストリームの生成処理の手順を示すフローチャートである。
【００２５】
ます制御ブロック１０が、生成するフレームデータに対応する画像データのメインメモリ３０におけるアドレス情報を入出力ブロック４０へ入力する（Ｓ１０）。入出力ブロック４０のアドレス処理部４２は、入力されたアドレス情報に基づき、指定されたアドレスを３つのヒット判定部４４ａ、４４ｂおよび４４ｃへ振り分ける（Ｓ１２）。ヒット判定部４４は受け取ったアドレスとキャッシュメモリ内の情報とを比較し、アドレスに対応するデータがあるかどうかを判定する（Ｓ１４）。比較にはダイレクトマップ方式やフルアソシエイティブ方式など、一般的に用いられる手法をあらかじめ選択しておく。前者は、メインメモリ３０におけるアドレスの中間ビットがキャッシュラインを示すアドレスとなり、上位ビットが各キャッシュラインに対応するタグメモリに格納されるため、まず中間ビットによってキャッシュラインを特定し、上位ビットとタグデータとをコンパレータにより比較する。後者は、上位ビットおよび中間ビットが全てタグメモリに格納されるため、アドレスの上位ビットおよび中間ビットと、タグデータとを比較する。いずれの場合も、キャッシュメモリ５０に一致するタグデータがあった場合は、キャッシュメモリ５０に所望のデータが存在する、すなわち「ヒット」と判定され（Ｓ１４のＹ）、一致するタグデータがなかった場合はキャッシュメモリ５０に所望のデータが存在しない、すなわち「ミス」と判定される（Ｓ１４のＮ）。
【００２６】
判定が「ミス」であった場合（Ｓ１４のＮ）、対応するリクエスト発行部４６はメインメモリ３０から、当該リクエスト発行部４６に対応するキャッシュメモリ５０への該当データの転送要求を発行し、リクエスト調停部４８がそれを受け付ける（Ｓ１６）。制御ブロック１０による1回のアドレス入力で、ひとつのデータストリームを構成する頂点座標、頂点パラメータなど複数のデータ要素に対する読み出し要求が一度に発生するため、リクエスト調停部４８は「ミス」と判定されたデータに対する複数の転送要求をほぼ同時に受け付けることになる。
【００２７】
複数の転送要求を受け付けたリクエスト調停部４８は、それらをメインメモリ３０に伝送する順序を決定し、その結果に基づいて転送要求を伝送する（Ｓ２０）。上述のようにリクエスト調停部４８は、データストリームの生成処理におけるデータ同期化部５２のストール時間、すなわち処理停止時間が短くなるように転送要求の順序を決定する。一方、リクエスト調停部４８はリクエスト発行部４６が発行した転送要求を常時受け付け、メインメモリ３０へ伝送するまで保持しておく。
【００２８】
メインメモリ３０は転送要求に従い、指定されたアドレスに格納されたデータを指定されたキャッシュメモリ５０に転送する（Ｓ２２）。アドレスは、リクエスト発行部４６が発行する転送要求に含まれていてもよいし、制御ブロック１０がアドレスを指定した際、アドレス処理部４２がそれをメインメモリ３０へ先に送信しておき、転送要求が伝送された場合にのみそのアドレスを有効にし、参照するようにしてもよい。データの転送はある読み出し単位（以下、一例として「８バイト単位」とする）で行われ、キャッシュメモリ５０において８バイトのデータを格納したそれぞれの領域をキャッシュラインとする。キャッシュメモリ５０に転送されたデータの、メインメモリ３０におけるアドレスの一部は、タグデータとしてキャッシュメモリ５０に内蔵されたタグメモリに格納される。
【００２９】
データ同期化部５２は、ヒット判定部４４によって「ヒット」と判定された（Ｓ１４のＹ）キャッシュメモリ５０、もしくは転送要求の発行によってメインメモリ３０から転送されたデータを格納した（Ｓ２２）キャッシュメモリ５０から、データストリームを構成する所望のデータ要素をそれぞれ読み出す（Ｓ２４）。データ要素がそろうまで読み出しを繰り返し（Ｓ２６のＮ）、全てのデータ要素がそろったら（Ｓ２６のＹ）、ストリーム送出部５４によって当該データストリームが描画ブロック２０へ出力される（Ｓ２８）。
【００３０】
次にリクエスト調停部４８が決定する、複数の転送要求の発行順序について説明する。上述のとおりメインメモリ３０からキャッシュメモリ５０へのデータ転送は、８バイト単位で行われ、データ同期化部５２が読み出すデータ要素は８バイト単位のデータを格納したキャッシュラインのうちの一部となる場合も多い。図４はデータ同期化部５２が３つのキャッシュメモリ５０ａ、５０ｂおよび５０ｃに含まれる、あるキャッシュラインＬ０に格納されたデータを読み出し、データストリームを生成する様子を模式的に示している。ここではひとつのキャッシュラインを８等分したデータサイズ、すなわち１バイトを１単位として１矩形で表している。同図において、第一キャッシュメモリ５０ａのキャッシュラインＬ０の３〜６バイト目に格納された４バイト（図中、「ｓ」と表記）、第二キャッシュメモリ５０ｂのキャッシュラインＬ０の１〜７バイト目に格納された７バイト（図中、「ｔ」と表記）、および第三キャッシュメモリ５０ｃのキャッシュラインＬ０の５バイト目に格納された１バイト（図中、「ｕ」と表記）をデータ同期化部５２が読み出し、１２バイトのデータストリームを生成している。
【００３１】
データ同期化部５２においてデータストリームを完成させるためには、それを構成するデータ要素、すなわちデータ「ｓ」、データ「ｔ」およびデータ「ｕ」の全てが、図４に示すようにキャッシュメモリ５０に含まれるキャッシュラインのいずれかに書き込まれている必要がある。ところが図４における第二キャッシュメモリ５０ｂのデータ「ｔ」のように、データ同期化部５２によって１回に読み出されるデータサイズ（以後、単にデータサイズと呼ぶ）が大きいほど、キャッシュメモリ５０の有限領域に格納することのできるデータ数が小さくなり、ヒット判定において「ミス」と判定される確率が大きくなる。ここで「データ数」とは、上述のデータサイズを単位としたデータの数である。一方、第三キャッシュメモリ５０ｃのデータ「ｕ」のように、データサイズが小さいと、キャッシュメモリ５０に格納できるデータ数が大きくなり、「ヒット」となる可能性が高い。
【００３２】
第二キャッシュメモリ５０ｂがデータ「ｔ」のように大きなサイズのデータを常に担当しているとすると、新たなデータをメインメモリ３０より転送し、書き込みを行う必要性が生じる確率が他のキャッシュメモリ５０ａ、および５０ｃより高くなる。データの書き込みが終了し、所望のデータがキャッシュメモリに格納されるまでは、当該データを読み出すことができないため、データ同期化部５２はこの書き込み期間が終了するまでデータストリームの完成を待たなければならない。このように、他のモジュールの処理終了を待って、本来行うべき処理を中断せざるを得ない時間がストール時間となって現れる。本実施の形態の場合、画像データのデータストリームを構成する頂点座標、頂点パラメータ、クリップパラメータなどデータの種別によってデータサイズの大小が概ね決まってしまうため、データの種別で担当するキャッシュメモリ５０を振り分けると、あるキャッシュメモリ５０のみデータの書き込み頻度が高くなり、ストール時間が増大する。
【００３３】
そこでリクエスト調停部４８は、データ同期化部５２におけるストール時間を軽減するように、複数の転送要求のメインメモリ３０への伝送順序を決定する。具体的には上述のように、キャッシュメモリ５０への書き込みの必要性が生じる確率が高い、すなわち、メインメモリ３０からキャッシュメモリ５０へのデータ転送頻度が高くなる、サイズの大きなデータの転送要求を優先してメインメモリ３０へ伝送する。
【００３４】
例えば、リクエスト調停部４８に既知の手法で最大値判定回路（図示せず）を設ける。そしてリクエスト発行部４６が発行する転送要求にデータサイズを含ませ、当該最大値判定回路によって、リクエスト調停部４８が受け付けた複数の転送要求のうち、データサイズの最も大きい転送要求を特定する。データの種別によってそのサイズが固定値である場合は、転送先のキャッシュメモリ５０によって一意的かつ固定的に優先度を設定しておいてもよい。この場合は、上述のように、３つのリクエスト発行部４６ａ、４６ｂおよび４６ｃが個別の信号線によってリクエスト調停部４８へ転送要求を入力すれば、転送要求と３つのキャッシュメモリ５０ａ、５０ｂおよび５０ｃのいずれかとの関連づけが取得できる。リクエスト調停部４８は、ひとつのデータストリームを構成するデータの転送要求ごとにデータサイズを比較してもよいし、蓄積した全ての転送要求から、サイズの大きいデータ順に転送要求を伝送してもよい。
【００３５】
本実施の形態によれば、サイズの大きいデータは優先的にキャッシュメモリ５０に格納されるため、「ミス」と判定される確率の差によるメモリアクセスのためのペナルティの差を軽減できる。結果として、そのキャッシュメモリへのデータ書き込みのためのストール時間を短縮することができ、さらに「ヒット」する確率の高い小さいサイズのデータとの構成によってデータストリームが完成するまでの時間が短縮される。これにより、フレームデータの生成に必要な画像データの取得処理が高速化され、フレームデータの効率的な生成が可能となる。本実施の形態は回路の挿入やプログラムの変更など比較的簡素な改良で実現でき、バス帯域を増加させたりメインメモリ３０を高速化したりするより安価で容易にデータ読み出し時間の短縮効果を得ることができる。
【００３６】
本実施の形態では上述のとおり、サイズの大きいデータほど、キャッシュメモリ５０への書き込み頻度が高くなるため、データサイズの大きい順にその転送要求の伝送を行うとしたが、実際のデータサイズやその他の環境により、適宜他の順番形態と組み合わせてもよい。例えば、あるデータ種目以外はデータサイズがそれほど変わらない場合や、描画ブロック２０へのデータストリームの送出に所定の時間制限がある場合などは、あらかじめ定めた所定の種目に属するデータの転送要求のみ優先して行い、その他の種目に属するデータはリクエスト調停部４８が受け付けた順番に転送要求を伝送するように設定してもよい。これにより、データの重要度などを考慮したうえで最大限のストール時間短縮効果を、上述と同じ原理により取得することができ、より柔軟な態様となる。
【００３７】
（第二の実施の形態）
第一の実施の形態では、複数の転送要求をメインメモリ３０に伝送する順序をデータのサイズに基づき決定した。本実施の形態におけるリクエスト調停部４８は、転送要求を伝送するタイミングの調整を行う。本実施の形態も、第一の実施の形態における図１に示した情報処理装置１００、および図２に示した入出力ブロック４０と同様の構成によって実現でき、入出力ブロック４０によって主に処理される手順も第一の実施の形態における図３と同様である。ここでは第一の実施の形態と異なる点、すなわちリ伝送タイミングの調整について説明する。
【００３８】
まず本実施の形態の効果を明らかにするために、転送要求のタイミングを調整しない場合について説明する。図５は第一キャッシュメモリ５０ａ、第二キャッシュメモリ５０ｂ、および第三キャッシュメモリ５０ｃにおけるデータの読み出しおよび書き込みのタイミングを示すタイミングチャートである。ここで各キャッシュメモリ５０は、説明の簡単のため、２つのキャッシュラインＬ０、Ｌ１のみで構成され、ＬＲＵ（Least Recently Used）方式の２ウェイで、各エントリがひとつずつの構成とする。したがって、あるアドレスのデータが一方のキャッシュラインＬ０に書き込まれると、つぎに「ミス」と判定されたデータが発生したときには、当該データは他方のキャッシュラインＬ１へ書き込まれ、以降、ふたつのキャッシュラインＬ０、Ｌ１へ交互に書き込みが行われるとする。図の横軸は時間を示しており、キャッシュラインごとに示された矩形は白抜きがメインメモリ３０からのデータ転送によるリフィル期間、すなわち書き込み期間、網掛けがデータ同期化部５２によるデータの読み出し期間を示す。
【００３９】
本実施の形態は、いったんキャッシュメモリ５０にデータを書き込んだ後、はじめてデータ同期化部５２へ向けた出力がなされる構造とする。この構造は「ミス」と判定された場合にはある程度のペナルティがあるものの、メインメモリ３０からデータ同期化部５２へ直接データを伝送するためのバスが不要となり、実装上のメリットが大きい。したがって、比較的高いヒット率が見込めるアプリケーションにおいては有用である。
【００４０】
同図に戻り、各矩形内に記された数字は動作に必要なクロック数を表している。すなわち、全てのキャッシュメモリ５０のキャッシュラインＬ０およびＬ１は、８０周期で書き込みが行われ、１００周期で１キャッシュライン分のデータがすべて読み出されるとする。
【００４１】
本実施の形態では簡単のために、データストリームを構成するデータは全て同じサイズであり、メインメモリ３０から転送されるデータサイズと等しいとして説明する。したがってひとつのキャッシュラインの全てのデータを読み出すのに必要な時間は同一であり、これが上述の１００周期に当たる。また本実施の形態では、メインメモリ３０からのデータ転送には３つのキャッシュメモリ５０ａ、５０ｂおよび５０ｃで共通のバスを使用し、図の右に示したように、第一キャッシュメモリ５０ａ、第二キャッシュメモリ５０ｂ、第三キャッシュメモリ５０ｃの順でデータ転送が繰り返される。各キャッシュメモリ５０へのデータ転送は、バスネックが原因となり、ある周期をおいてしか実行できない。ここでは２０周期に一度、各キャッシュメモリ５０へデータの書き込みが行われるとしている。なお、同図からもわかるとおり、ここでは最悪の状況、すなわちすべてのアクセスにおいて「ミス」と判定され、キャッシュメモリ５０への書き込みが行われるとする。実際には多くの場合「ヒット」と判定されることが一般的であり、同図ほど恒常的に「ミス」判定となりペナルティが発生するわけではない。
【００４２】
同図において時刻Ａは各キャッシュメモリ５０のキャッシュラインＬ０の読みだし期間が開始したタイミングを示す。時刻ＢはキャッシュラインＬ０からの読み出し期間が終了するとともに、つぎの読み出しが他方のキャッシュラインＬ１から開始されるタイミングを示す。この時刻Ｂでは、さらにつぎのアクセスが「ミス」と判定され、キャッシュラインＬ０への転送要求がメインメモリ３０へ伝送されている。しかし上述のごとくバスネックが原因となり、キャッシュラインＬ０への書き込み期間の開始は、３つのキャッシュメモリ５０においてそれぞれ２０周期ずつずれている。時刻ＣはキャッシュラインＬ１に格納されたデータの読み出しが終了し、キャッシュラインＬ０に格納されたデータの読み出しを行うことができる状態となったタイミングを示している。
【００４３】
図５の場合、時刻Ｃにおいて、全てのキャッシュメモリ５０のキャッシュラインＬ１のデータ読み出しが終了している。しかし、第三キャッシュメモリ５０ｃのキャッシュラインＬ０において、上述のバスネックが原因となり、まだ書き込みが行われているため、データストリームを構成するデータがそろわない。このため、データ同期化部５２によるキャッシュラインＬ０の読み出しを開始することができない。第三キャッシュメモリ５０ｃのキャッシュラインＬ０へのデータの書き込みが終了した時刻（同図では２回目の「時刻Ａ」と表記）において初めて、読み出しを開始することができる。したがって時刻Ｃから時刻Ａまでの時間がストール時間となる。
【００４４】
３つのキャッシュメモリ５０ａ、５０ｂおよび５０ｃの各キャッシュラインへデータ転送を行う転送要求は、時刻Ｂ、すなわちそのキャッシュラインにおける前のデータの読み出し終了とともにメインメモリ３０へ伝送される。図５の場合、キャッシュラインの読み出し開始タイミングは、データストリームを構成するデータが全てそろったタイミングと等しいため、全てのキャッシュメモリ５０ａ、５０ｂおよび５０ｃで同一となる。したがって、次のデータの転送要求は上述のとおり時刻Ｂに一斉にメインメモリ３０へ伝送される。
【００４５】
上述のとおり、各キャッシュメモリ５０へのデータの書き込みは２０周期に一度行われるため、時刻Ｂにおいて各キャッシュメモリ５０への転送要求をほぼ同時期にメインメモリ３０に伝送したとしても、データの書き込みは同時には開始できない。このため、第三キャッシュメモリ５０ｃの書き込み終了タイミングは他のキャッシュメモリ５０ａ、および５０ｃより遅れ、これがストール時間発生の原因となる。この現象は、ひとつのデータストリームを構成するデータを格納するキャッシュメモリ５０の数が増加するほど顕著になる。
【００４６】
次に本実施の形態について説明する。本実施の形態は、３つの転送要求の伝送に時間間隔を設けられるように構成される。具体的には、メインメモリ３０において、アドレスの上位ビットおよび中間ビットで特定される読み出し単位の区切りに対し、データの種別ごとに異なるオフセットを与えたアドレスにデータを格納する。そのため制御ブロック１０が指定するアドレスはある読み出し単位のデータ列の中間のアドレスとなる。
【００４７】
図６は、上述のようにオフセットを与えてメインメモリ３０に格納されたデータを、第一キャッシュメモリ５０ａ、第二キャッシュメモリ５０ｂ、および第三キャッシュメモリ５０ｃに格納した際のデータの配置例を模式的に示している。図４と同様、一例としてキャッシュラインは８バイト単位で構成され、１バイトを１単位として１矩形で表している。第一キャッシュメモリ５０ａのキャッシュラインＬ０の７、８バイト目に格納された２バイト、およびキャッシュラインＬ１の１〜６バイト目に格納された６バイトの、合計８バイト（図中、「ｖ」と表記）が、データ同期化部５２によって一度に読み出される。第二キャッシュメモリ５０ｂおよび第三キャッシュメモリ５０ｃにおける「ｖ」と表記された８バイトも同様である。また各キャッシュメモリ５０ａ、５０ｂおよび５０ｃにおいて、「ｗ」と表記された数バイトは、「ｖ」と表記されたデータの次にメインメモリ３０に格納されたデータを示している。
【００４８】
図６は、第一キャッシュメモリ５０ａが格納するデータが６バイトのオフセットを、第二キャッシュメモリ５０ｂが格納するデータが４バイトのオフセットを、第三キャッシュメモリ５０ｃが格納するデータが２バイトのオフセットを与えられてメインメモリ３０に格納されていることを示している。これにより、データ同期化部５２によって一度に読み出される８バイトのデータ「ｖ」は、ふたつのキャッシュラインをまたいで格納される。そのためこの例では、制御ブロック１０による一回のアドレス入力から、１６バイト分のデータを８バイトずつ、ふたつのキャッシュラインＬ０およびＬ１へ転送する２回の転送要求を行う。ふたつの転送要求とするかどうかは、データサイズおよびオフセット値を決定するデータ種別ごとにあらかじめ判明するため、リクエスト発行部４６は転送要求にその情報を含ませる。そしてリクエスト調停部４８は、制御ブロック１０が指定したデータの先頭アドレスからオフセット分を減算して得た、読み出し単位の区切りの先頭アドレスと、その次にメインメモリ３０に格納されている読み出し単位の区切りの先頭アドレスと、を転送すべきキャッシュラインの識別情報にそれぞれ関連付けて、メインメモリ３０へ伝送する転送要求に含ませる。そのためリクエスト調停部４８は、既知の手法で備えられた、図示しないオフセット減算回路およびアドレス加算回路を含む。
【００４９】
図７は本実施の形態における第一キャッシュメモリ５０ａ、第二キャッシュメモリ５０ｂ、および第三キャッシュメモリ５０ｃにおけるデータの読み出しおよび書き込みのタイミングを示すタイミングチャートである。同図の基礎となる条件は図５と同一である。
【００５０】
図７においてキャッシュラインＬ０の最初の読み出し期間は、図６のデータ「ｖ」を読み出す期間に相当する。すなわち第一キャッシュメモリ５０ａからは２バイトのデータを２０周期で読み出し、第二キャッシュメモリ５０ｂからは４バイトのデータを４０周期で読み出し、第三キャッシュメモリ５０ｃからは６バイトのデータを６０周期で読み出す。本実施の形態では、この読み出し期間が終了した時点でキャッシュラインＬ０の更新を行う。すなわちリクエスト調停部４８は、各キャッシュメモリ５０のキャッシュラインＬ０へのデータ転送を行う転送要求を、それぞれの読み出し期間が終了した時点でメインメモリ３０に伝送する。本実施の形態の場合、読み出し期間の終了のタイミングがキャッシュメモリ５０によって異なるため、転送要求の伝送のタイミングは、第一キャッシュメモリ５０ａについては時刻Ｂ、第二キャッシュメモリ５０ｂについては時刻Ｂ'、第三キャッシュメモリ５０ｃについては時刻Ｂ''と、異なる。すなわち３つの転送要求の伝送には２０周期分の時間間隔が設けられたことになる。転送要求の伝送に時間間隔が設けられると、上述したバスネックが原因の、転送要求の伝送タイミングに対するキャッシュメモリ５０への書き込み開始の遅延時間をなくすことができる。
【００５１】
キャッシュラインＬ０の読み出し期間が終了すると、キャッシュラインＬ０へ次の転送要求に従ったデータの書き込みが行われている間に、キャッシュラインＬ１の読み出しが行われる。図６の場合、キャッシュラインＬ１に格納されたデータ「ｖ」の残りの部分、およびデータ「ｗ」の一部がこの期間に読み出される。同様の処理を繰り返すことにより、読み出し期間の終了タイミングがキャッシュメモリ５０によって異なることになり、転送要求の伝送のタイミングを時刻Ｂ、Ｂ'、Ｂ''と、常に分散させることができる。なお図を煩雑にしないため、図７では図５と同様、時刻Ａ、時刻Ｂなどの表示は片方のキャッシュラインについてのみ行っている。
【００５２】
本実施の形態によれば、メインメモリ３０における本来の読み出し単位の区切りを示すアドレスに対し、データの種別によって異なるオフセットをもたせたアドレスにデータを格納することにより、各キャッシュメモリ５０のキャッシュライン上の格納アドレスもキャッシュメモリ５０によって異なるオフセットを有する。このため、ひとつのデータストリームを構成する複数のデータの読み出し完了のタイミングが同一でも、キャッシュラインの全てのデータを読み出し終えたタイミングがキャッシュメモリ５０によって異なり、結果的に転送要求の伝送タイミングが転送先のキャッシュメモリ５０によって異なるようにできる。これにより、バスネックによる転送要求の伝送タイミングに対するキャッシュメモリへの書き込み開始の遅延がなくなるため、データストリームを構成するデータを格納するキャッシュメモリの数が多くても、その遅延時間に起因するストール時間の増大を回避できる。また、転送要求の伝送タイミングが分散されるため、複数のキャッシュメモリ５０によって共有されるバスの負荷が分散し、書き込み期間そのものも短縮することができる場合がある。したがって、画像データの取得処理がより高速化され、フレームデータ生成の効率が顕著に向上する。第一の実施の形態同様、本実施の形態も安価かつ容易に上述の効果を得ることができる。
【００５３】
上述の説明では、データストリームを構成するデータ要素のサイズは全て等しいとしたが、サイズが異なっていても同じ原理によって同様の効果を得ることができる。
【００５４】
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００５５】
本実施の形態におけるデータストリームは、フレームデータを生成するための画像データのセットによって構成したが、複数の種別のデータをセットとして用いて加工処理を行う態様のものでよく、例えば音声データなどでもよい。この場合も、比較的安価で容易にデータの読み出し効率が向上し、結果的に加工処理を高速化することができる。
【００５６】
また本実施の形態では種別ごとにデータをメインメモリに格納し、転送するキャッシュメモリもデータの種別ごとに設定したが、種別に関わらずメインメモリへ格納したデータを、アドレスの範囲別に振り分けたキャッシュメモリへ転送するなど、他の属性に基づきキャッシュメモリの分担を設定してよい。または特に属性にかかわらず、制御ブロックからの読み出し要求を順次振り分けてもよい。後段で行われる処理内容やデータストリームの構造などによってより効率の良い態様を選択し、本実施の形態を適用することにより、上述のストール時間の短縮による読み出し処理の高速化の効果を、より効率的に得ることができる。
【図面の簡単な説明】
【００５７】
【図１】第一の実施の形態における、情報処理装置の構成図である。
【図２】第一の実施の形態における、入出力ブロックの構成図である。
【図３】第一の実施の形態における、データの読み出しおよびデータストリームの生成処理の手順を示すフローチャートである。
【図４】第一の実施の形態において、キャッシュラインに格納されたデータからデータストリームを生成する様子を模式的に示す図である。
【図５】従来の、転送要求のタイミング調整を行わないときの、各キャッシュメモリにおけるデータの読み出しおよび書き込みのタイミングを示すタイミングチャートである。
【図６】第二の実施の形態において、キャッシュラインに格納されたデータの配置例を模式的に示す図である。
【図７】第二の実施の形態における、各キャッシュメモリにおけるデータの読み出しおよび書き込みのタイミングを示すタイミングチャートである。
【符号の説明】
【００５８】
１０  制御ブロック、  ２０  描画ブロック、  ３０  メインメモリ、  ４０  入出力ブロック、  ４２  アドレス処理部、  ４４  ヒット判定部、  ４６  リクエスト発行部、  ４８  リクエスト調停部、  ５０  キャッシュメモリ、  ５２  データ同期化部、  ５４  ストリーム送出部、  ８０  表示装置、  １００  情報処理装置。
【図１】
2006227912.tif 000003
【図２】
2006227912.tif 000004
【図３】
2006227912.tif 000005
【図４】
2006227912.tif 000006
【図５】
2006227912.tif 000007
【図６】
2006227912.tif 000008
【図７】
2006227912.tif 000009
【手続補正書】
【提出日】平成17年12月16日(2005.12.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１４
【補正方法】変更
【補正の内容】
【請求項１４】
前記複数の転送要求の調停を行うステップは、キャッシュメモリに存在しないと判定される確率の高いデータの転送要求を優先して、前記メインメモリへ伝送する順序を決定することを特徴とする請求項１３に記載の情報処理方法。