(57)【特許請求の範囲】
【請求項１】
複数のプロセッサと共有メモリを含むプラットホーム上で動作し、画像の行方向と列方向の並びを転置するコーナーターン処理を含む画像の再生処理を実行する画像処理プログラムに上記複数のプロセッサへの上記共有メモリの対象領域の割り付けを指示する並列画像処理装置において、
処理対象の画像サイズや各画素のデータサイズ等の画像情報を設定している画像情報設定手段と、
画像処理で使用する上記プロセッサの個数情報を設定している使用プロセッサ数設定手段と、
上記各プロセッサに搭載されているキャッシュの構成やラインサイズ等のキャッシュ情報を設定しているキャッシュ情報設定手段と、
上記画像情報設定手段に設定されている画像情報、及び上記キャッシュ情報設定手段に設定されているキャッシュ情報を入手し、キャッシュのラインサイズを一辺とする正方形の画像ブロックと、この画像ブロックが使用するキャッシュのライン数からなる画像ブロック情報を算出するメモリ割付手段と、
上記画像情報設定手段に設定されている画像情報、上記キャッシュ情報設定手段に設定されているキャッシュ情報、及び上記メモリ割付手段により算出された画像ブロック情報に基づき、同じキャッシュ・ライン・セットを使用する共有メモリ領域の間隔を算出し、算出した同じキャッシュ・ライン・セットを使用する共有メモリ領域の間隔から、画像ブロック単位のコーナーターン処理で、同じキャッシュ・ライン・セットを使用するか否かを判定し、コーナーターン処理を実行するときに、最大でいくつ同じキャッシュ・ライン・セットを使用するかの最大キャッシュ・ライン・セット重複数を算出し、算出した最大キャッシュ・ライン・セット重複数と、１つのキャッシュ・ライン・セットあたりで使用可能なキャッシュラインの数を示すキャッシュ・ライン・セット利用可能ライン数を比較することにより、各画像ブロック単位のコーナーターン処理でのキャッシュのラインの過不足を判定し、上記最大キャッシュ・ライン・セット重複数が上記キャッシュ・ライン・セット利用可能ライン数より大きく、キャッシュのラインが不足時にはキャッシュのラインの不足を解消するサイズのオフセット量を算出するキャッシュライン重複判定手段と、
上記キャッシュライン重複判定手段により算出されたオフセット量の領域を、処理対象の画像領域に追加するオフセット追加手段とを備え、
上記メモリ割付手段が、上記使用プロセッサ数設定手段に設定されているプロセッサの個数情報を入手し、上記各プロセッサが上記コーナーターン処理を実行するように上記共有メモリの対象領域を割り付ける
ことを特徴とする並列画像処理装置。
【請求項２】
コーナーターン処理以外の処理に対するオフセット量についての要求を設定する外部処理用オフセット設定手段を備え、
キャッシュライン重複判定手段が、キャッシュのラインが不足時には、上記外部処理用オフセット設定手段に設定されているコーナーターン処理以外の処理に対するオフセット量についての要求を参照して、キャッシュのラインの不足を解消するサイズのオフセット量を算出する
ことを特徴とする請求項１記載の並列画像処理装置。
【請求項３】
複数のプロセッサと共有メモリを含むプラットホーム上で動作し、画像の行方向と列方向の並びを転置するコーナーターン処理を含む画像の再生処理を実行する画像処理プログラムに上記複数のプロセッサへの上記共有メモリの対象領域の割り付けを指示する並列画像処理装置において、
処理対象の画像サイズや各画素のデータサイズ等の画像情報を設定している画像情報設定手段と、
画像処理で使用する上記プロセッサの個数情報を設定している使用プロセッサ数設定手段と、
上記各プロセッサに搭載されているキャッシュの構成やラインサイズ等のキャッシュ情報を設定しているキャッシュ情報設定手段と、
上記画像情報設定手段に設定されている画像情報、及び上記キャッシュ情報設定手段に設定されているキャッシュ情報を入手し、キャッシュのラインサイズを一辺とする正方形の画像ブロックと、この画像ブロックが使用するキャッシュのライン数からなる画像ブロック情報を算出するメモリ割付手段と、
上記画像情報設定手段に設定されている画像情報、上記キャッシュ情報設定手段に設定されているキャッシュ情報、及び上記メモリ割付手段により算出された画像ブロック情報に基づき、キャッシュの各階層において、同じキャッシュ・ライン・セットを使用する共有メモリ領域の間隔を算出し、算出した同じキャッシュ・ライン・セットを使用する共有メモリ領域の間隔から、画像ブロック単位のコーナーターン処理で、同じキャッシュ・ライン・セットを使用するか否かを判定し、コーナーターン処理を実行するときに、最大でいくつ同じキャッシュ・ライン・セットを使用するかの最大キャッシュ・ライン・セット重複数を算出し、算出した最大キャッシュ・ライン・セット重複数と、１つのキャッシュ・ライン・セットあたりで使用可能なキャッシュラインの数を示すキャッシュ・ライン・セット利用可能ライン数を比較することにより、各画像ブロック単位のコーナーターン処理でのキャッシュのラインの過不足をキャッシュの各階層間に跨って判定し、上記最大キャッシュ・ライン・セット重複数が上記キャッシュ・ライン・セット利用可能ライン数より大きく、キャッシュのラインが不足時には、キャッシュの各階層でのキャッシュのラインの不足を解消するサイズのオフセット量を算出する階層型キャッシュライン重複判定手段と、
上記階層型キャッシュライン重複判定手段により算出されたオフセット量の領域を、処理対象の画像領域に追加するオフセット追加手段とを備え、
上記メモリ割付手段が、上記使用プロセッサ数設定手段に設定されているプロセッサの個数情報を入手し、上記各プロセッサが上記コーナーターン処理を実行するように上記共有メモリの対象領域を割り付ける
ことを特徴とする並列画像処理装置。
【請求項４】
コーナーターン処理以外の処理に対するオフセット量についての要求を設定する外部処理用オフセット設定手段を備え、
階層型キャッシュライン重複判定手段が、キャッシュのラインが不足時には、上記外部処理用オフセット設定手段に設定されているコーナーターン処理以外の処理に対するオフセット量についての要求を参照して、キャッシュの各階層でのキャッシュのラインの不足を解消するサイズのオフセット量を算出する
ことを特徴とする請求項３記載の並列画像処理装置。
【請求項５】
キャッシュライン重複判定手段又は階層型キャッシュライン重複判定手段により算出されたオフセット量と、外部処理用オフセット設定手段に設定されているコーナーターン処理以外の処理に対するオフセット量についての要求を参照して、コーナーターン処理以外の処理へ処理範囲や方向を画像処理プログラムに指示する外部処理用実行範囲制御手段を
備えたことを特徴とする請求項２又は請求項４記載の並列画像処理装置。
【請求項６】
複数のプロセッサと共有メモリを含むプラットホーム上で動作し、画像の行方向と列方向の並びを転置するコーナーターン処理を含む画像の再生処理を実行する画像処理プログラムに上記複数のプロセッサへの上記共有メモリの対象領域の割り付けを指示する並列画像処理装置において、
処理対象の画像サイズや各画素のデータサイズ等の画像情報を設定している画像情報設定手段と、
画像処理で使用する上記プロセッサの個数情報を設定している使用プロセッサ数設定手段と、
上記各プロセッサに搭載されているキャッシュの構成やラインサイズ等のキャッシュ情報を設定しているキャッシュ情報設定手段と、
上記画像情報設定手段に設定されている画像情報、及び上記キャッシュ情報設定手段に設定されているキャッシュ情報を入手し、キャッシュのラインサイズを一辺とする正方形の画像ブロックと、この画像ブロックが使用するキャッシュのライン数からなる画像ブロック情報を算出するメモリ割付手段と、
上記画像情報設定手段に設定されている画像情報、上記キャッシュ情報設定手段に設定されているキャッシュ情報、及び上記メモリ割付手段により算出された画像ブロック情報に基づき、同じキャッシュ・ライン・セットを使用する共有メモリ領域の間隔を算出し、算出した同じキャッシュ・ライン・セットを使用する共有メモリ領域の間隔から、画像ブロック単位のコーナーターン処理で、同じキャッシュ・ライン・セットを使用するか否かを判定し、コーナーターン処理を実行するときに、最大でいくつ同じキャッシュ・ライン・セットを使用するかの最大キャッシュ・ライン・セット重複数を算出し、算出した最大キャッシュ・ライン・セット重複数と、１つのキャッシュ・ライン・セットあたりで使用可能なキャッシュラインの数を示すキャッシュ・ライン・セット利用可能ライン数を比較することにより、各画像ブロック単位のコーナーターン処理でのキャッシュのラインの過不足を判定するキャッシュライン重複判定手段と、
上記キャッシュライン重複判定手段による判定の結果、上記最大キャッシュ・ライン・セット重複数が上記キャッシュ・ライン・セット利用可能ライン数より大きく、キャッシュのラインが不足時には、上記画像情報設定手段に設定されている画像情報、上記キャッシュ情報設定手段に設定されているキャッシュ情報、及び上記メモリ割付手段により算出された画像ブロック情報に基づき、キャッシュのラインの不足を解消するサイズの種々のオフセット量を算出し、算出した種々のオフセット量に対する実行時間を計測することにより、最短の実行時間となる最適のオフセット量を求めるオフセット実測手段と、
上記オフセット実測手段により求められた最適のオフセット量の領域を、処理対象の画像領域に追加するオフセット追加手段とを備え、
上記メモリ割付手段が、上記使用プロセッサ数設定手段に設定されているプロセッサの個数情報を入手し、上記各プロセッサが上記コーナーターン処理を実行するように上記共有メモリの対象領域を割り付ける
ことを特徴とする並列画像処理装置。
【請求項７】
複数のプロセッサと共有メモリを含むプラットホーム上で動作し、画像の行方向と列方向の並びを転置するコーナーターン処理を含む画像の再生処理を実行する画像処理プログラムに上記複数のプロセッサへの上記共有メモリの対象領域の割り付けを指示する並列画像処理装置において、
処理対象の画像サイズや各画素のデータサイズ等の画像情報を設定している画像情報設定手段と、
画像処理で使用する上記プロセッサの個数情報を設定している使用プロセッサ数設定手段と、
上記各プロセッサに搭載されているキャッシュの構成やラインサイズ等のキャッシュ情報を設定しているキャッシュ情報設定手段と、
上記画像情報設定手段に設定されている画像情報、及び上記キャッシュ情報設定手段に設定されているキャッシュ情報を入手し、キャッシュのラインサイズを一辺とする正方形の画像ブロックと、この画像ブロックが使用するキャッシュのライン数からなる画像ブロック情報を算出するメモリ割付手段と、
上記画像情報設定手段に設定されている画像情報、上記キャッシュ情報設定手段に設定されているキャッシュ情報、及び上記メモリ割付手段により算出された画像ブロック情報に基づき、キャッシュの各階層において、同じキャッシュ・ライン・セットを使用する共有メモリ領域の間隔を算出し、算出した同じキャッシュ・ライン・セットを使用する共有メモリ領域の間隔から、画像ブロック単位のコーナーターン処理で、同じキャッシュ・ライン・セットを使用するか否かを判定し、コーナーターン処理を実行するときに、最大でいくつ同じキャッシュ・ライン・セットを使用するかの最大キャッシュ・ライン・セット重複数を算出し、算出した最大キャッシュ・ライン・セット重複数と、１つのキャッシュ・ライン・セットあたりで使用可能なキャッシュラインの数を示すキャッシュ・ライン・セット利用可能ライン数を比較することにより、各画像ブロック単位のコーナーターン処理でのキャッシュのラインの過不足をキャッシュの各階層間に跨って判定する階層型キャッシュライン重複判定手段と、
上記階層型キャッシュライン重複判定手段による判定の結果、上記最大キャッシュ・ライン・セット重複数が上記キャッシュ・ライン・セット利用可能ライン数より大きく、キャッシュのラインが不足時には、上記画像情報設定手段に設定されている画像情報、上記キャッシュ情報設定手段に設定されているキャッシュ情報、及び上記メモリ割付手段により算出された画像ブロック情報に基づき、キャッシュの各階層でのキャッシュのラインの不足を解消するサイズの種々のオフセット量を算出し、算出した種々のオフセット量に対する実行時間を計測することにより、最短の実行時間となる最適のオフセット量を求めるオフセット実測手段と、
上記オフセット実測手段により求められた最適のオフセット量の領域を、処理対象の画像領域に追加するオフセット追加手段とを備え、
上記メモリ割付手段が、上記使用プロセッサ数設定手段に設定されているプロセッサの個数情報を入手し、算出した画像ブロック単位で、上記各プロセッサが上記コーナーターン処理を実行するように上記共有メモリの対象領域を割り付ける
ことを特徴とする並列画像処理装置。
【請求項８】
オフセット実測手段により求められた最適のオフセット量と、最適のオフセット量を求めたときのキャッシュ情報及び画像情報等の入力パラメータを記録する実測値記録手段を備え、
キャッシュのラインが不足時には、オフセット実測手段が、上記実測値記録手段に記録されている入力パラメータと最適のオフセット量を参照して、最適のオフセット量を求める
ことを特徴とする請求項６又は請求項７記載の並列画像処理装置。
【請求項９】
複数のプロセッサと共有メモリを使用し、画像の行方向と列方向の並びを転置するコーナーターン処理を含む画像の再生処理を実行する際に、上記複数のプロセッサへの上記共有メモリの対象領域の割り付けを指示する並列画像処理方法において、
処理対象の画像サイズや各画素のデータサイズ等の画像情報を入手し、
上記各プロセッサに搭載されているキャッシュの構成やラインサイズ等のキャッシュ情報を入手し、
入手した画像情報とキャッシュ情報により、キャッシュのラインサイズを一辺とする正方形の画像ブロックと、この画像ブロックが使用するキャッシュのライン数からなる画像ブロック情報を算出し、
入手した画像情報とキャッシュ情報、及び算出された画像ブロック情報に基づき、同じキャッシュ・ライン・セットを使用する共有メモリ領域の間隔を算出し、算出した同じキャッシュ・ライン・セットを使用する共有メモリ領域の間隔から、画像ブロック単位のコーナーターン処理で、同じキャッシュ・ライン・セットを使用するか否かを判定し、コーナーターン処理を実行するときに、最大でいくつ同じキャッシュ・ライン・セットを使用するかの最大キャッシュ・ライン・セット重複数を算出し、算出した最大キャッシュ・ライン・セット重複数と、１つのキャッシュ・ライン・セットあたりで使用可能なキャッシュラインの数を示すキャッシュ・ライン・セット利用可能ライン数を比較することにより、各画像ブロック単位のコーナーターン処理でのキャッシュのラインの過不足を判定し、上記最大キャッシュ・ライン・セット重複数が上記キャッシュ・ライン・セット利用可能ライン数より大きく、キャッシュのラインが不足時にはキャッシュのラインの不足を解消するサイズのオフセット量を算出し、
算出されたオフセット量の領域を、処理対象の画像領域に追加し、
画像処理で使用する上記プロセッサの個数情報を入手し、上記各プロセッサが上記コーナーターン処理を実行するように上記共有メモリの対象領域を割り付ける
ことを特徴とする並列画像処理方法。
【請求項１０】
キャッシュのラインが不足時には、設定されているコーナーターン処理以外の処理に対するオフセット量についての要求を参照して、キャッシュのラインの不足を解消するサイズのオフセット量を算出する
ことを特徴とする請求項９記載の並列画像処理方法。
【請求項１１】
複数のプロセッサと共有メモリを使用し、画像の行方向と列方向の並びを転置するコーナーターン処理を含む画像の再生処理を実行する際に、上記複数のプロセッサへの上記共有メモリの対象領域の割り付けを指示する並列画像処理方法において、
処理対象の画像サイズや各画素のデータサイズ等の画像情報を入手し、
上記各プロセッサに搭載されているキャッシュの構成やラインサイズ等のキャッシュ情報を入手し、
入手した画像情報とキャッシュ情報により、キャッシュのラインサイズを一辺とする正方形の画像ブロックと、この画像ブロックが使用するキャッシュのライン数からなる画像ブロック情報を算出し、
入手した画像情報とキャッシュ情報、及び算出された画像ブロック情報に基づき、キャッシュの各階層において、同じキャッシュ・ライン・セットを使用する共有メモリ領域の間隔を算出し、算出した同じキャッシュ・ライン・セットを使用する共有メモリ領域の間隔から、画像ブロック単位のコーナーターン処理で、同じキャッシュ・ライン・セットを使用するか否かを判定し、コーナーターン処理を実行するときに、最大でいくつ同じキャッシュ・ライン・セットを使用するかの最大キャッシュ・ライン・セット重複数を算出し、算出した最大キャッシュ・ライン・セット重複数と、１つのキャッシュ・ライン・セットあたりで使用可能なキャッシュラインの数を示すキャッシュ・ライン・セット利用可能ライン数を比較することにより、各画像ブロック単位のコーナーターン処理でのキャッシュのラインの過不足をキャッシュの各階層間に跨って判定し、上記最大キャッシュ・ライン・セット重複数が上記キャッシュ・ライン・セット利用可能ライン数より大きく、キャッシュのラインが不足時には、キャッシュの各階層でのキャッシュのラインの不足を解消するサイズのオフセット量を算出し、
算出されたオフセット量の領域を、処理対象の画像領域に追加し、
画像処理で使用する上記プロセッサの個数情報を入手し、上記各プロセッサが上記コーナーターン処理を実行するように上記共有メモリの対象領域を割り付ける
ことを特徴とする並列画像処理方法。
【請求項１２】
キャッシュのラインが不足時には、設定されているコーナーターン処理以外の処理に対するオフセット量についての要求を参照して、キャッシュの各階層でのキャッシュのラインの不足を解消するサイズのオフセット量を算出する
ことを特徴とする請求項１１記載の並列画像処理方法。
【請求項１３】
算出されたオフセット量と、設定されているコーナーターン処理以外の処理に対するオフセット量についての要求を参照して、コーナーターン処理以外の処理へ処理範囲や方向を、コーナーターン処理を含む画像の再生処理を実行する画像処理プログラムに指示する
ことを特徴とする請求項１０又は請求項１２記載の並列画像処理方法。
【請求項１４】
複数のプロセッサと共有メモリを使用し、画像の行方向と列方向の並びを転置するコーナーターン処理を含む画像の再生処理を実行する際に、上記複数のプロセッサへの上記共有メモリの対象領域の割り付けを指示する並列画像処理方法において、
処理対象の画像サイズや各画素のデータサイズ等の画像情報を入手し、
上記各プロセッサに搭載されているキャッシュの構成やラインサイズ等のキャッシュ情報を入手し、
入手した画像情報とキャッシュ情報により、キャッシュのラインサイズを一辺とする正方形の画像ブロックと、この画像ブロックが使用するキャッシュのライン数からなる画像ブロック情報を算出し、
入手した画像情報とキャッシュ情報、及び算出された画像ブロック情報に基づき、同じキャッシュ・ライン・セットを使用する共有メモリ領域の間隔を算出し、算出した同じキャッシュ・ライン・セットを使用する共有メモリ領域の間隔から、画像ブロック単位のコーナーターン処理で、同じキャッシュ・ライン・セットを使用するか否かを判定し、コーナーターン処理を実行するときに、最大でいくつ同じキャッシュ・ライン・セットを使用するかの最大キャッシュ・ライン・セット重複数を算出し、算出した最大キャッシュ・ライン・セット重複数と、１つのキャッシュ・ライン・セットあたりで使用可能なキャッシュラインの数を示すキャッシュ・ライン・セット利用可能ライン数を比較することにより、各画像ブロック単位のコーナーターン処理でのキャッシュのラインの過不足を判定し、
判定の結果、上記最大キャッシュ・ライン・セット重複数が上記キャッシュ・ライン・セット利用可能ライン数より大きく、キャッシュのラインが不足時には、入手した画像情報とキャッシュ情報、及び算出された画像ブロック情報に基づき、キャッシュのラインの不足を解消するサイズの種々のオフセット量を算出し、算出した種々のオフセット量に対する実行時間を計測することにより、最短の実行時間となる最適のオフセット量を求め、
求められた最適のオフセット量の領域を、処理対象の画像領域に追加し、
画像処理で使用する上記プロセッサの個数情報を入手し、上記各プロセッサが上記コーナーターン処理を実行するように上記共有メモリの対象領域を割り付ける
ことを特徴とする並列画像処理方法。
【請求項１５】
複数のプロセッサと共有メモリを使用し、画像の行方向と列方向の並びを転置するコーナーターン処理を含む画像の再生処理を実行する際に、上記複数のプロセッサへの上記共有メモリの対象領域の割り付けを指示する並列画像処理方法において、
処理対象の画像サイズや各画素のデータサイズ等の画像情報を入手し、
上記各プロセッサに搭載されているキャッシュの構成やラインサイズ等のキャッシュ情報を入手し、
入手した画像情報とキャッシュ情報により、キャッシュのラインサイズを一辺とする正方形の画像ブロックと、この画像ブロックが使用するキャッシュのライン数からなる画像ブロック情報を算出し、
入手した画像情報とキャッシュ情報、及び算出された画像ブロック情報に基づき、キャッシュの各階層において、同じキャッシュ・ライン・セットを使用する共有メモリ領域の間隔を算出し、算出した同じキャッシュ・ライン・セットを使用する共有メモリ領域の間隔から、画像ブロック単位のコーナーターン処理で、同じキャッシュ・ライン・セットを使用するか否かを判定し、コーナーターン処理を実行するときに、最大でいくつ同じキャッシュ・ライン・セットを使用するかの最大キャッシュ・ライン・セット重複数を算出し、算出した最大キャッシュ・ライン・セット重複数と、１つのキャッシュ・ライン・セットあたりで使用可能なキャッシュラインの数を示すキャッシュ・ライン・セット利用可能ライン数を比較することにより、各画像ブロック単位のコーナーターン処理でのキャッシュのラインの過不足をキャッシュの各階層間に跨って判定し、
判定の結果、上記最大キャッシュ・ライン・セット重複数が上記キャッシュ・ライン・セット利用可能ライン数より大きく、キャッシュのラインが不足時には、入手した画像情報とキャッシュ情報、及び算出された画像ブロック情報に基づき、キャッシュの各階層でのキャッシュのラインの不足を解消するサイズの種々のオフセット量を算出し、算出した種々のオフセット量に対する実行時間を計測することにより、最短の実行時間となる最適のオフセット量を求め、
求められた最適のオフセット量の領域を、処理対象の画像領域に追加し、
画像処理で使用する上記プロセッサの個数情報を入手し、上記各プロセッサが上記コーナーターン処理を実行するように上記共有メモリの対象領域を割り付ける
ことを特徴とする並列画像処理方法。
【請求項１６】
求められた最適のオフセット量と、最適のオフセット量を求めたときのキャッシュ情報及び画像情報等の入力パラメータを記録し、
キャッシュのラインが不足時には、記録されている入力パラメータと最適のオフセット量を参照して、最適のオフセット量を求める
ことを特徴とする請求項１４又は請求項１５記載の並列画像処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、共有メモリ型の並列計算機上で実行する画像処理において、プロセッサへの共有メモリの割り当てと、プロセッサの共有メモリへのアクセス制御に係る並列画像処理装置及び並列画像処理方法に関するものである。
【０００２】
【従来の技術】
画像処理の高速化手法の１つに、複数のプロセッサを使った並列処理がある。並列処理は、画像処理内での依存関係が少なく、画像サイズが大きいケースや処理負荷が高いケースで有効である。このような画像処理の１つに、ＳＡＲ（Ｓｙｎｔｈｅｔｉｃ  Ａｐｅｒｔｕｒｅ  Ｒａｄａｒ：合成開口レーダ）画像の再生処理がある。
【０００３】
ＳＡＲ画像再生処理をＳＭＰ（Ｓｙｍｍｔｅｒｉｃ  Ｍｕｌｔｉ−ｐｒｏｃｅｓｓｏｒ）等の、共有メモリを有する並列計算機上で実行する場合に、この画像再生処理における、画像の行方向と列方向の並びを転置するコーナーターン処理で、単純に並列化するとキャッシュミスを起こしやすいという課題があった。
【０００４】
この課題を改善する従来例として、本件の出願人が出願した特願平１１−２９０１１４号の「並列画像処理装置及び並列画像処理方法」がある。図１３はこの従来の並列画像処理装置の構成を示すブロック図である。図において、１はＳＡＲ画像の再生処理を実行する画像処理プログラムで、２は、プロセッサや共有メモリ、キャッシュ等のＨ／Ｗ（Ｈａｒｄｗａｒｅ）、ＯＳ（ＯｐｅｒａｔｉｎｇＳｙｓｔｅｍ）、並列化ライブラリ等により構成されたプラットホームで、３は、プラットホーム２上で動作し、コーナーターン処理における各プロセッサへの共有メモリの対象領域の割り付け方法等を画像処理プログラム１に指示する並列画像処理装置である。
【０００５】
また、図１３の並列画像処理装置３において、１１は、処理対象の画像サイズ（画素数）、各画素のデータサイズ、コーナーターン処理前後に実行可能な処理情報等の処理対象の画像情報を設定している画像情報設定手段で、１２は画像処理で使用するプロセッサの個数情報を設定している使用プロセッサ数設定手段で、１３は各プロセッサに搭載されているキャッシュの構成やラインサイズ等のキャッシュ情報を設定しているキャッシュ情報設定手段である。
【０００６】
さらに、図１３の並列画像処理装置３において、１４はメモリ割付手段で、画像情報設定手段１１に設定されている画像情報とキャッシュ情報設定手段１３に設定されているキャッシュ情報を入手し、キャッシュのラインサイズを一辺とする正方形の画像ブロックと、この画像ブロックが使用するキャッシュのライン数からなる画像ブロック情報を算出すると共に、使用プロセッサ数設定手段１２に設定されているプロセッサの個数情報を入手し、算出した画像ブロック単位で各プロセッサがコーナーターン処理を実行するように共有メモリの対象領域を割り付けし、決定された対象領域の割り付けに従って、各プロセッサが画像ブロック単位でコーナーターン処理を実行するように画像処理プログラム１に指示するものである。
【０００７】
次に動作について説明する。
並列画像処理装置３の実装法には、並列化支援ライブラリとして独立して提供する方法、プラットホームであるＯＳや並列化ライブラリへ組み込む方法、画像処理プログラム中へ組み込む方法がある。ここでは、並列化支援ライブラリとして独立して提供する方法で説明する。
【０００８】
図１４はメモリ割付手段１４の処理を示すフローチャートである。ステップＳＴ１において、メモリ割付手段１４はキャッシュ情報設定手段１３に設定されている各プロセッサに搭載されているキャッシュのキャッシュ情報を入手し、ステップＳＴ２において、メモリ割付手段１４は画像情報設定手段１１に設定されている処理対象の画像情報を入手し、ステップＳＴ３において、メモリ割付手段１４は使用プロセッサ数設定手段１２に設定されている画像処理で使用するプロセッサの個数情報を入手する。
【０００９】
ステップＳＴ４において、メモリ割付手段１４は、ステップＳＴ１で入手したキャッシュ情報と、ステップＳＴ２で入手した画像情報に基づき、画像ブロック情報を算出する。算出する画像ブロック情報としては、処理単位である画像ブロックのサイズと、画像ブロックが使用するキャッシュのライン数である。この画像ブロックは、キャッシュのライトミスとリードミスにかかるオーバーヘッド時間が最小となる処理領域であり、ここでは、キャッシュのラインサイズを一辺とする正方形の画像上の領域である。
【００１０】
ステップＳＴ５において、メモリ割付手段１４は、ステップＳＴ３で入手した使用プロセッサの個数情報に基づき、算出した画像ブロック単位で、各プロセッサがコーナーターン処理を実行するように共有メモリの対象領域の割り付けを決定する。また、メモリ割付手段１４は、各画像ブロック内のアクセス方法や、各プロセッサに割り当てられた画像ブロック毎の処理順序等を決定する。そして、メモリ割付手段４は、決定された対象領域の割り付けやアクセス方法、処理順序に従って、各プロセッサが画像ブロック単位でコーナーターン処理を実行するように画像処理プログラム１に指示する。
【００１１】
画像処理プログラム１では、外部から指定された共有メモリの領域毎に、各プロセッサでコーナーターン処理を実行するようにプログラムされている。
【００１２】
なお、説明は省略するが、上記従来の並列画像処理装置では、階層キャッシュへの対応機能や処理画像のサイズが画像ブロックの定数倍にならないケースでの補整手段等も提供している。
【００１３】
図１５はキャッシュアクセスの概念を示す図であり、画像ブロック単位でのコーナーターン処理を行っているときの４個のプロセッサ内部でのキャッシュの使用状況を示している。ここでは、読み込みと書き込みに、全て異なったキャッシュのラインを使用して、各画像ブロック単位のコーナーターン処理を実行することを前提にしている。
【００１４】
図１６はキャッシュの各ラインへのデータの読み込み方法を示す図である。図に示すように、共有メモリ（又はプロセッサから遠い下位のキャッシュ）からのキャッシュの各ラインへのデータの読み込み方法として、Ｄｉｒｅｃｔ  Ｍａｐｐｉｎｇ、Ｓｅｔ−ａｓｓｏｃｉａｔｉｖｅ  Ｍａｐｐｉｎｇ、Ｆｕｌｌ−ａｓｓｏｃｉａｔｉｖｅ  Ｍａｐｐｉｎｇがある。なお、以下では、プロセッサに近いキャッシュを上位層のキャッシュ、プロセッサから遠いキャッシュを下位層のキャッシュと呼び、プロセッサに最も近い１次キャッシュが最上位層のキャッシュとなる。
【００１５】
図１６に示すように、Ｄｉｒｅｃｔ  Ｍａｐｐｉｎｇの場合には、共有メモリのアドレスにより１個の固定されたキャッシュのラインにデータが読み込まれ、Ｓｅｔ−ａｓｓｏｃｉａｔｉｖｅ  Ｍａｐｐｉｎｇの場合には、共有メモリのアドレスにより複数のキャッシュのラインから選択してデータが読み込まれる。この選択可能なライン数をウェイ数（ｗａｙ数）と呼ぶ。Ｆｕｌｌ−ａｓｓｏｃｉａｔｉｖｅ  Ｍａｐｐｉｎｇの場合には、任意のキャッシュのラインにデータを読み込むことができる。
【００１６】
このように、Ｄｉｒｅｃｔ  Ｍａｐｐｉｎｇ又はＳｅｔ−ａｓｓｏｃｉａｔｉｖｅ  Ｍａｐｐｉｎｇの場合には、共有メモリのアドレスにより使用できるキャッシュのラインに制約を受ける。例えば、２ｗａｙ  Ｓｅｔ−ａｓｓｏｃｉａｔｉｖｅ  Ｍａｐｐｉｎｇのキャッシュで、キャッシュのラインサイズが３２ｂｙｔｅ、ライン総数１０２４個、総容量が３２Ｋｂｙｔｅの場合には、１６Ｋｂｙｔｅ毎に同じキャッシュのラインの組を選択してデータを読み込むことになる。以後、この同じキャッシュのラインの組をキャッシュ・ライン・セットと呼ぶ。ここでは、あるアドレスが利用できるキャッシュのラインが２つ（２ウェイ）であるため、２つのキャッシュラインのペアがキャッシュ・ライン・セットになる。
【００１７】
ここで、画像サイズが８，１９２×８，１９２画素のＳＡＲ画像再生処理を考える。図１７はコーナーターン処理の概要を示す図である。１画素のサイズを８ｂｙｔｅとすると、各行又は各列は８，１９２画素なので６４Ｋｂｙｔｅになる。この画像に対して、図１３に示す並列画像処理装置が画像ブロック単位のコーナーターン処理を実行する場合に、キャッシュのラインサイズが３２ｂｙｔｅで１画素のサイズが８ｂｙｔｅのため、画像ブロックは４画素×４画素の正方形になる。
【００１８】
この画像ブロックの正方形の領域は、図１７に示すように、４つのキャッシュラインを利用する。ここで、４つのキャッシュのラインは、画像全体から見ると同じ列の要素にアクセスしている。この画像サイズでは、各行が６４Ｋｂｙｔｅで１６Ｋｂｙｔｅの定数倍となり、１６Ｋｂｙｔｅ毎に同じキャッシュのラインの組を選択してデータを読み込むことになる。このため、画像の同じ列の要素は同じキャッシュ・ライン・セットを使用することになる。
【００１９】
よって、この画像ブロック単位のアクセスでは、同じキャッシュ・ライン・セットに集中してアクセスすることになる。この場合、プロセッサのキャッシュのラインは１０２４個あるにもかかわらず、画像ブロック単位のコーナーターン処理では、２つのキャッシュラインに集中して処理を実行することになる。このため、キャッシュのラインが足りなくなり、キャッシュの利用効率が低下する。
【００２０】
【発明が解決しようとする課題】
従来の並列画像処理装置は以上のように構成されているので、Ｓｅｔ−ａｓｓｏｃｉａｔｉｖｅ  Ｍａｐｐｉｎｇのキャッシュで画像ブロック単位のコーナーターン処理を行う場合には、処理対象の画像領域のサイズによって、特定のキャッシュ・ライン・セットにアクセスが集中するケースがあり、このときのキャッシュの利用効率が低下するという課題があった。
【００２１】
なお、ここでは、Ｓｅｔ−ａｓｓｏｃｉａｔｉｖｅ  Ｍａｐｐｉｎｇの例で説明したが、Ｄｉｒｅｃｔ  Ｍａｐｐｉｎｇの場合であっても同様の課題が発生する。
【００２２】
また、ここでは、ＳＡＲ画像再生処理の例で説明したが、ＳＡＲ画像再生処理と同様に、各処理部分では処理に方向性があり、かつ、処理結果への依存性が低く、途中でコーナーターン処理を実施する画像処理では同じ課題が発生する。
【００２３】
この発明は上記のような課題を解決するためになされたもので、画像ブロック単位のコーナーターン処理を実行するときに、キャッシュ情報と画像サイズと画像ブロックの大きさから、特定のキャッシュ・ライン・セットへの集中アクセスによるキャッシュのラインの過不足を判定し、キャッシュのラインが不足時には、これを解消するサイズの領域を処理対象の画像領域に加えることで、特定のキャッシュ・ライン・セットへの集中アクセスを解消し、キャッシュの利用効率を改善する並列画像処理装置及び並列画像処理方法を得ることを目的とする。
【００２４】
また、キャッシュのライン不足を解消するのに最適な処理対象の画像領域に加えるオフセット量を、実機での計測をもとに算出できる並列画像処理装置及び並列画像処理方法を得ることを目的とする。
【００２５】
さらに、コーナーターン処理以外の処理部分の影響をも考慮して、処理対象の画像領域に加えるオフセット量やコーナーターン処理方法を最適化できる並列画像処理装置及び並列画像処理方法を得ることを目的とする。
【００２６】
【課題を解決するための手段】
この発明に係る並列画像処理装置は、複数のプロセッサと共有メモリを含むプラットホーム上で動作し、画像の行方向と列方向の並びを転置するコーナーターン処理を含む画像の再生処理を実行する画像処理プログラムに上記複数のプロセッサへの上記共有メモリの対象領域の割り付けを指示するものにおいて、処理対象の画像サイズや各画素のデータサイズ等の画像情報を設定している画像情報設定手段と、画像処理で使用する上記プロセッサの個数情報を設定している使用プロセッサ数設定手段と、上記各プロセッサに搭載されているキャッシュの構成やラインサイズ等のキャッシュ情報を設定しているキャッシュ情報設定手段と、上記画像情報設定手段に設定されている画像情報、及び上記キャッシュ情報設定手段に設定されているキャッシュ情報を入手し、キャッシュのラインサイズを一辺とする正方形の画像ブロックと、この画像ブロックが使用するキャッシュのライン数からなる画像ブロック情報を算出するメモリ割付手段と、上記画像情報設定手段に設定されている画像情報、上記キャッシュ情報設定手段に設定されているキャッシュ情報、及び上記メモリ割付手段により算出された画像ブロック情報に基づき、同じキャッシュ・ライン・セットを使用する共有メモリ領域の間隔を算出し、算出した同じキャッシュ・ライン・セットを使用する共有メモリ領域の間隔から、画像ブロック単位のコーナーターン処理で、同じキャッシュ・ライン・セットを使用するか否かを判定し、コーナーターン処理を実行するときに、最大でいくつ同じキャッシュ・ライン・セットを使用するかの最大キャッシュ・ライン・セット重複数を算出し、算出した最大キャッシュ・ライン・セット重複数と、１つのキャッシュ・ライン・セットあたりで使用可能なキャッシュラインの数を示すキャッシュ・ライン・セット利用可能ライン数を比較することにより、各画像ブロック単位のコーナーターン処理でのキャッシュのラインの過不足を判定し、上記最大キャッシュ・ライン・セット重複数が上記キャッシュ・ライン・セット利用可能ライン数より大きく、キャッシュのラインが不足時にはキャッシュのラインの不足を解消するサイズのオフセット量を算出するキャッシュライン重複判定手段と、上記キャッシュライン重複判定手段により算出されたオフセット量の領域を、処理対象の画像領域に追加するオフセット追加手段とを備え、上記メモリ割付手段が、上記使用プロセッサ数設定手段に設定されているプロセッサの個数情報を入手し、上記各プロセッサが上記コーナーターン処理を実行するように上記共有メモリの対象領域を割り付けるものである。
【００２７】
この発明に係る並列画像処理装置は、コーナーターン処理以外の処理に対するオフセット量についての要求を設定する外部処理用オフセット設定手段を備え、キャッシュライン重複判定手段が、キャッシュのラインが不足時には、上記外部処理用オフセット設定手段に設定されているコーナーターン処理以外の処理に対するオフセット量についての要求を参照して、キャッシュのラインの不足を解消するサイズのオフセット量を算出するものである。
【００２８】
この発明に係る並列画像処理装置は、複数のプロセッサと共有メモリを含むプラットホーム上で動作し、画像の行方向と列方向の並びを転置するコーナーターン処理を含む画像の再生処理を実行する画像処理プログラムに上記複数のプロセッサへの上記共有メモリの対象領域の割り付けを指示するものにおいて、処理対象の画像サイズや各画素のデータサイズ等の画像情報を設定している画像情報設定手段と、画像処理で使用する上記プロセッサの個数情報を設定している使用プロセッサ数設定手段と、上記各プロセッサに搭載されているキャッシュの構成やラインサイズ等のキャッシュ情報を設定しているキャッシュ情報設定手段と、上記画像情報設定手段に設定されている画像情報、及び上記キャッシュ情報設定手段に設定されているキャッシュ情報を入手し、キャッシュのラインサイズを一辺とする正方形の画像ブロックと、この画像ブロックが使用するキャッシュのライン数からなる画像ブロック情報を算出するメモリ割付手段と、上記画像情報設定手段に設定されている画像情報、上記キャッシュ情報設定手段に設定されているキャッシュ情報、及び上記メモリ割付手段により算出された画像ブロック情報に基づき、キャッシュの各階層において、同じキャッシュ・ライン・セットを使用する共有メモリ領域の間隔を算出し、算出した同じキャッシュ・ライン・セットを使用する共有メモリ領域の間隔から、画像ブロック単位のコーナーターン処理で、同じキャッシュ・ライン・セットを使用するか否かを判定し、コーナーターン処理を実行するときに、最大でいくつ同じキャッシュ・ライン・セットを使用するかの最大キャッシュ・ライン・セット重複数を算出し、算出した最大キャッシュ・ライン・セット重複数と、１つのキャッシュ・ライン・セットあたりで使用可能なキャッシュラインの数を示すキャッシュ・ライン・セット利用可能ライン数を比較することにより、各画像ブロック単位のコーナーターン処理でのキャッシュのラインの過不足をキャッシュの各階層間に跨って判定し、上記最大キャッシュ・ライン・セット重複数が上記キャッシュ・ライン・セット利用可能ライン数より大きく、キャッシュのラインが不足時には、キャッシュの各階層でのキャッシュのラインの不足を解消するサイズのオフセット量を算出する階層型キャッシュライン重複判定手段と、上記階層型キャッシュライン重複判定手段により算出されたオフセット量の領域を、処理対象の画像領域に追加するオフセット追加手段とを備え、上記メモリ割付手段が、上記使用プロセッサ数設定手段に設定されているプロセッサの個数情報を入手し、上記各プロセッサが上記コーナーターン処理を実行するように上記共有メモリの対象領域を割り付けるものである。
【００２９】
この発明に係る並列画像処理装置は、コーナーターン処理以外の処理に対するオフセット量についての要求を設定する外部処理用オフセット設定手段を備え、階層型キャッシュライン重複判定手段が、キャッシュのラインが不足時には、上記外部処理用オフセット設定手段に設定されているコーナーターン処理以外の処理に対するオフセット量についての要求を参照して、キャッシュの各階層でのキャッシュのラインの不足を解消するサイズのオフセット量を算出するものである。
【００３０】
この発明に係る並列画像処理装置は、キャッシュライン重複判定手段又は階層型キャッシュライン重複判定手段により算出されたオフセット量と、外部処理用オフセット設定手段に設定されているコーナーターン処理以外の処理に対するオフセット量についての要求を参照して、コーナーターン処理以外の処理へ処理範囲や方向を画像処理プログラムに指示する外部処理用実行範囲制御手段を備えたものである。
【００３１】
この発明に係る並列画像処理装置は、複数のプロセッサと共有メモリを含むプラットホーム上で動作し、画像の行方向と列方向の並びを転置するコーナーターン処理を含む画像の再生処理を実行する画像処理プログラムに上記複数のプロセッサへの上記共有メモリの対象領域の割り付けを指示するものにおいて、処理対象の画像サイズや各画素のデータサイズ等の画像情報を設定している画像情報設定手段と、画像処理で使用する上記プロセッサの個数情報を設定している使用プロセッサ数設定手段と、上記各プロセッサに搭載されているキャッシュの構成やラインサイズ等のキャッシュ情報を設定しているキャッシュ情報設定手段と、上記画像情報設定手段に設定されている画像情報、及び上記キャッシュ情報設定手段に設定されているキャッシュ情報を入手し、キャッシュのラインサイズを一辺とする正方形の画像ブロックと、この画像ブロックが使用するキャッシュのライン数からなる画像ブロック情報を算出するメモリ割付手段と、上記画像情報設定手段に設定されている画像情報、上記キャッシュ情報設定手段に設定されているキャッシュ情報、及び上記メモリ割付手段により算出された画像ブロック情報に基づき、同じキャッシュ・ライン・セットを使用する共有メモリ領域の間隔を算出し、算出した同じキャッシュ・ライン・セットを使用する共有メモリ領域の間隔から、画像ブロック単位のコーナーターン処理で、同じキャッシュ・ライン・セットを使用するか否かを判定し、コーナーターン処理を実行するときに、最大でいくつ同じキャッシュ・ライン・セットを使用するかの最大キャッシュ・ライン・セット重複数を算出し、算出した最大キャッシュ・ライン・セット重複数と、１つのキャッシュ・ライン・セットあたりで使用可能なキャッシュラインの数を示すキャッシュ・ライン・セット利用可能ライン数を比較することにより、各画像ブロック単位のコーナーターン処理でのキャッシュのラインの過不足を判定するキャッシュライン重複判定手段と、上記キャッシュライン重複判定手段による判定の結果、上記最大キャッシュ・ライン・セット重複数が上記キャッシュ・ライン・セット利用可能ライン数より大きく、キャッシュのラインが不足時には、上記画像情報設定手段に設定されている画像情報、上記キャッシュ情報設定手段に設定されているキャッシュ情報、及び上記メモリ割付手段により算出された画像ブロック情報に基づき、キャッシュのラインの不足を解消するサイズの種々のオフセット量を算出し、算出した種々のオフセット量に対する実行時間を計測することにより、最短の実行時間となる最適のオフセット量を求めるオフセット実測手段と、上記オフセット実測手段により求められた最適のオフセット量の領域を、処理対象の画像領域に追加するオフセット追加手段とを備え、上記メモリ割付手段が、上記使用プロセッサ数設定手段に設定されているプロセッサの個数情報を入手し、上記各プロセッサが上記コーナーターン処理を実行するように上記共有メモリの対象領域を割り付けるものである。
【００３２】
この発明に係る並列画像処理装置は、複数のプロセッサと共有メモリを含むプラットホーム上で動作し、画像の行方向と列方向の並びを転置するコーナーターン処理を含む画像の再生処理を実行する画像処理プログラムに上記複数のプロセッサへの上記共有メモリの対象領域の割り付けを指示するものにおいて、処理対象の画像サイズや各画素のデータサイズ等の画像情報を設定している画像情報設定手段と、画像処理で使用する上記プロセッサの個数情報を設定している使用プロセッサ数設定手段と、上記各プロセッサに搭載されているキャッシュの構成やラインサイズ等のキャッシュ情報を設定しているキャッシュ情報設定手段と、上記画像情報設定手段に設定されている画像情報、及び上記キャッシュ情報設定手段に設定されているキャッシュ情報を入手し、キャッシュのラインサイズを一辺とする正方形の画像ブロックと、この画像ブロックが使用するキャッシュのライン数からなる画像ブロック情報を算出するメモリ割付手段と、上記画像情報設定手段に設定されている画像情報、上記キャッシュ情報設定手段に設定されているキャッシュ情報、及び上記メモリ割付手段により算出された画像ブロック情報に基づき、キャッシュの各階層において、同じキャッシュ・ライン・セットを使用する共有メモリ領域の間隔を算出し、算出した同じキャッシュ・ライン・セットを使用する共有メモリ領域の間隔から、画像ブロック単位のコーナーターン処理で、同じキャッシュ・ライン・セットを使用するか否かを判定し、コーナーターン処理を実行するときに、最大でいくつ同じキャッシュ・ライン・セットを使用するかの最大キャッシュ・ライン・セット重複数を算出し、算出した最大キャッシュ・ライン・セット重複数と、１つのキャッシュ・ライン・セットあたりで使用可能なキャッシュラインの数を示すキャッシュ・ライン・セット利用可能ライン数を比較することにより、各画像ブロック単位のコーナーターン処理でのキャッシュのラインの過不足をキャッシュの各階層間に跨って判定する階層型キャッシュライン重複判定手段と、上記階層型キャッシュライン重複判定手段による判定の結果、上記最大キャッシュ・ライン・セット重複数が上記キャッシュ・ライン・セット利用可能ライン数より大きく、キャッシュのラインが不足時には、上記画像情報設定手段に設定されている画像情報、上記キャッシュ情報設定手段に設定されているキャッシュ情報、及び上記メモリ割付手段により算出された画像ブロック情報に基づき、キャッシュの各階層でのキャッシュのラインの不足を解消するサイズの種々のオフセット量を算出し、算出した種々のオフセット量に対する実行時間を計測することにより、最短の実行時間となる最適のオフセット量を求めるオフセット実測手段と、上記オフセット実測手段により求められた最適のオフセット量の領域を、処理対象の画像領域に追加するオフセット追加手段とを備え、上記メモリ割付手段が、上記使用プロセッサ数設定手段に設定されているプロセッサの個数情報を入手し、算出した画像ブロック単位で、上記各プロセッサが上記コーナーターン処理を実行するように上記共有メモリの対象領域を割り付けるものである。
【００３３】
この発明に係る並列画像処理装置は、オフセット実測手段により求められた最適のオフセット量と、最適のオフセット量を求めたときのキャッシュ情報及び画像情報等の入力パラメータを記録する実測値記録手段を備え、キャッシュのラインが不足時には、オフセット実測手段が、上記実測値記録手段に記録されている入力パラメータと最適のオフセット量を参照して、最適のオフセット量を求めるものである。
【００３４】
この発明に係る並列画像処理方法は、複数のプロセッサと共有メモリを使用し、画像の行方向と列方向の並びを転置するコーナーターン処理を含む画像の再生処理を実行する際に、上記複数のプロセッサへの上記共有メモリの対象領域の割り付けを指示するものにおいて、処理対象の画像サイズや各画素のデータサイズ等の画像情報を入手し、上記各プロセッサに搭載されているキャッシュの構成やラインサイズ等のキャッシュ情報を入手し、入手した画像情報とキャッシュ情報により、キャッシュのラインサイズを一辺とする正方形の画像ブロックと、この画像ブロックが使用するキャッシュのライン数からなる画像ブロック情報を算出し、入手した画像情報とキャッシュ情報、及び算出された画像ブロック情報に基づき、同じキャッシュ・ライン・セットを使用する共有メモリ領域の間隔を算出し、算出した同じキャッシュ・ライン・セットを使用する共有メモリ領域の間隔から、画像ブロック単位のコーナーターン処理で、同じキャッシュ・ライン・セットを使用するか否かを判定し、コーナーターン処理を実行するときに、最大でいくつ同じキャッシュ・ライン・セットを使用するかの最大キャッシュ・ライン・セット重複数を算出し、算出した最大キャッシュ・ライン・セット重複数と、１つのキャッシュ・ライン・セットあたりで使用可能なキャッシュラインの数を示すキャッシュ・ライン・セット利用可能ライン数を比較することにより、各画像ブロック単位のコーナーターン処理でのキャッシュのラインの過不足を判定し、上記最大キャッシュ・ライン・セット重複数が上記キャッシュ・ライン・セット利用可能ライン数より大きく、キャッシュのラインが不足時にはキャッシュのラインの不足を解消するサイズのオフセット量を算出し、算出されたオフセット量の領域を、処理対象の画像領域に追加し、画像処理で使用する上記プロセッサの個数情報を入手し、上記各プロセッサが上記コーナーターン処理を実行するように上記共有メモリの対象領域を割り付けるものである。
【００３５】
この発明に係る並列画像処理方法は、キャッシュのラインが不足時には、設定されているコーナーターン処理以外の処理に対するオフセット量についての要求を参照して、キャッシュのラインの不足を解消するサイズのオフセット量を算出するものである。
【００３６】
この発明に係る並列画像処理方法は、複数のプロセッサと共有メモリを使用し、画像の行方向と列方向の並びを転置するコーナーターン処理を含む画像の再生処理を実行する際に、上記複数のプロセッサへの上記共有メモリの対象領域の割り付けを指示するものにおいて、処理対象の画像サイズや各画素のデータサイズ等の画像情報を入手し、上記各プロセッサに搭載されているキャッシュの構成やラインサイズ等のキャッシュ情報を入手し、入手した画像情報とキャッシュ情報により、キャッシュのラインサイズを一辺とする正方形の画像ブロックと、この画像ブロックが使用するキャッシュのライン数からなる画像ブロック情報を算出し、入手した画像情報とキャッシュ情報、及び算出された画像ブロック情報に基づき、キャッシュの各階層において、同じキャッシュ・ライン・セットを使用する共有メモリ領域の間隔を算出し、算出した同じキャッシュ・ライン・セットを使用する共有メモリ領域の間隔から、画像ブロック単位のコーナーターン処理で、同じキャッシュ・ライン・セットを使用するか否かを判定し、コーナーターン処理を実行するときに、最大でいくつ同じキャッシュ・ライン・セットを使用するかの最大キャッシュ・ライン・セット重複数を算出し、算出した最大キャッシュ・ライン・セット重複数と、１つのキャッシュ・ライン・セットあたりで使用可能なキャッシュラインの数を示すキャッシュ・ライン・セット利用可能ライン数を比較することにより、各画像ブロック単位のコーナーターン処理でのキャッシュのラインの過不足をキャッシュの各階層間に跨って判定し、上記最大キャッシュ・ライン・セット重複数が上記キャッシュ・ライン・セット利用可能ライン数より大きく、キャッシュのラインが不足時には、キャッシュの各階層でのキャッシュのラインの不足を解消するサイズのオフセット量を算出し、算出されたオフセット量の領域を、処理対象の画像領域に追加し、画像処理で使用する上記プロセッサの個数情報を入手し、上記各プロセッサが上記コーナーターン処理を実行するように上記共有メモリの対象領域を割り付けるものである。
【００３７】
この発明に係る並列画像処理方法は、キャッシュのラインが不足時には、設定されているコーナーターン処理以外の処理に対するオフセット量についての要求を参照して、キャッシュの各階層でのキャッシュのラインの不足を解消するサイズのオフセット量を算出するものである。
【００３８】
この発明に係る並列画像処理方法は、算出されたオフセット量と、設定されているコーナーターン処理以外の処理に対するオフセット量についての要求を参照して、コーナーターン処理以外の処理へ処理範囲や方向を、コーナーターン処理を含む画像の再生処理を実行する画像処理プログラムに指示するものである。
【００３９】
この発明に係る並列画像処理方法は、複数のプロセッサと共有メモリを使用し、画像の行方向と列方向の並びを転置するコーナーターン処理を含む画像の再生処理を実行する際に、上記複数のプロセッサへの上記共有メモリの対象領域の割り付けを指示するものにおいて、処理対象の画像サイズや各画素のデータサイズ等の画像情報を入手し、上記各プロセッサに搭載されているキャッシュの構成やラインサイズ等のキャッシュ情報を入手し、入手した画像情報とキャッシュ情報により、キャッシュのラインサイズを一辺とする正方形の画像ブロックと、この画像ブロックが使用するキャッシュのライン数からなる画像ブロック情報を算出し、入手した画像情報とキャッシュ情報、及び算出された画像ブロック情報に基づき、同じキャッシュ・ライン・セットを使用する共有メモリ領域の間隔を算出し、算出した同じキャッシュ・ライン・セットを使用する共有メモリ領域の間隔から、画像ブロック単位のコーナーターン処理で、同じキャッシュ・ライン・セットを使用するか否かを判定し、コーナーターン処理を実行するときに、最大でいくつ同じキャッシュ・ライン・セットを使用するかの最大キャッシュ・ライン・セット重複数を算出し、算出した最大キャッシュ・ライン・セット重複数と、１つのキャッシュ・ライン・セットあたりで使用可能なキャッシュラインの数を示すキャッシュ・ライン・セット利用可能ライン数を比較することにより、各画像ブロック単位のコーナーターン処理でのキャッシュのラインの過不足を判定し、判定の結果、上記最大キャッシュ・ライン・セット重複数が上記キャッシュ・ライン・セット利用可能ライン数より大きく、キャッシュのラインが不足時には、入手した画像情報とキャッシュ情報、及び算出された画像ブロック情報に基づき、キャッシュのラインの不足を解消するサイズの種々のオフセット量を算出し、算出した種々のオフセット量に対する実行時間を計測することにより、最短の実行時間となる最適のオフセット量を求め、求められた最適のオフセット量の領域を、処理対象の画像領域に追加し、画像処理で使用する上記プロセッサの個数情報を入手し、上記各プロセッサが上記コーナーターン処理を実行するように上記共有メモリの対象領域を割り付けるものである。
【００４０】
この発明に係る並列画像処理方法は、複数のプロセッサと共有メモリを使用し、画像の行方向と列方向の並びを転置するコーナーターン処理を含む画像の再生処理を実行する際に、上記複数のプロセッサへの上記共有メモリの対象領域の割り付けを指示するものにおいて、処理対象の画像サイズや各画素のデータサイズ等の画像情報を入手し、上記各プロセッサに搭載されているキャッシュの構成やラインサイズ等のキャッシュ情報を入手し、入手した画像情報とキャッシュ情報により、キャッシュのラインサイズを一辺とする正方形の画像ブロックと、この画像ブロックが使用するキャッシュのライン数からなる画像ブロック情報を算出し、入手した画像情報とキャッシュ情報、及び算出された画像ブロック情報に基づき、キャッシュの各階層において、同じキャッシュ・ライン・セットを使用する共有メモリ領域の間隔を算出し、算出した同じキャッシュ・ライン・セットを使用する共有メモリ領域の間隔から、画像ブロック単位のコーナーターン処理で、同じキャッシュ・ライン・セットを使用するか否かを判定し、コーナーターン処理を実行するときに、最大でいくつ同じキャッシュ・ライン・セットを使用するかの最大キャッシュ・ライン・セット重複数を算出し、算出した最大キャッシュ・ライン・セット重複数と、１つのキャッシュ・ライン・セットあたりで使用可能なキャッシュラインの数を示すキャッシュ・ライン・セット利用可能ライン数を比較することにより、各画像ブロック単位のコーナーターン処理でのキャッシュのラインの過不足をキャッシュの各階層間に跨って判定し、判定の結果、上記最大キャッシュ・ライン・セット重複数が上記キャッシュ・ライン・セット利用可能ライン数より大きく、キャッシュのラインが不足時には、入手した画像情報とキャッシュ情報、及び算出された画像ブロック情報に基づき、キャッシュの各階層でのキャッシュのラインの不足を解消するサイズの種々のオフセット量を算出し、算出した種々のオフセット量に対する実行時間を計測することにより、最短の実行時間となる最適のオフセット量を求め、求められた最適のオフセット量の領域を、処理対象の画像領域に追加し、画像処理で使用する上記プロセッサの個数情報を入手し、上記各プロセッサが上記コーナーターン処理を実行するように上記共有メモリの対象領域を割り付けるのである。
【００４１】
この発明に係る並列画像処理方法は、求められた最適のオフセット量と、最適のオフセット量を求めたときのキャッシュ情報及び画像情報等の入力パラメータを記録し、キャッシュのラインが不足時には、記録されている入力パラメータと最適のオフセット量を参照して、最適のオフセット量を求めるものである。
【００４２】
【発明の実施の形態】
以下、この発明の実施の一形態を説明する。
実施の形態１．
図１はこの発明の実施の形態１による並列画像処理装置の構成を示すブロック図である。図において、２１は、画像情報設定手段１１に設定されている画像情報、キャッシュ情報設定手段１３に設定されているキャッシュ情報、及びメモリ割付手段１４により算出された画像ブロック情報に基づき、各画像ブロック単位のコーナーターン処理でのキャッシュのラインの過不足を判定し、キャッシュのラインが不足時にはキャッシュのラインの不足を解消するサイズのオフセット量を算出するキャッシュライン重複判定手段である。
【００４３】
また、図１において、２２は、キャッシュライン重複判定手段２１に算出されたオフセット量の領域を、処理対象の画像領域に追加するオフセット追加手段である。
【００４４】
さらに、図１において、メモリ割付手段１４は、画像情報設定手段１１に設定されている画像情報、及びキャッシュ情報設定手段１３に設定されているキャッシュ情報を入手し、キャッシュのラインサイズを一辺とする正方形の画像ブロックと、この画像ブロックが使用するキャッシュのライン数からなる画像ブロック情報を算出し、使用プロセッサ数設定手段１２に設定されているプロセッサの個数情報を入手し、算出した画像ブロック単位で、オフセット追加手段２２により追加された領域をアクセスしないようにして、各プロセッサがコーナーターン処理を実行するように共有メモリの対象領域を割り付ける。
【００４５】
その他の画像処理プログラム１、プラットホーム２、画像情報設定手段１１、使用プロセッサ数設定手段１２、キャッシュ情報設定手段１３は、従来の図１３に示す構成と同等である。
【００４６】
次に動作について説明する。
図１４に示す従来の並列画像処理装置における処理と基本的に同様の処理手順であるが、図１４のステップＳＴ４における画像ブロック情報の算出後に、メモリ割付手段１４はキャッシュライン重複判定手段２１にキャッシュのラインの過不足判定を指示する。そして、キャッシュライン重複判定手段２１は、後述する処理手順に従ってキャッシュのラインの過不足判定を行い、処理対象の画像領域の拡張が必要と判断した場合には、オフセット追加手段２２に処理対象の画像領域の拡張を指示する。
【００４７】
キャッシュライン重複判定手段２１が、キャッシュのラインの不足無しと判定して終了した場合には、従来と同様にして、図１４のステップＳＴ５における処理を行う。
【００４８】
一方、キャッシュライン重複判定手段２１が処理対象の画像領域の拡張の指示をした場合には、オフセット追加手段２２は、キャッシュライン重複判定手段２１により通知されたオフセット量の領域を、処理対象の画像領域に追加する。また、メモリ割付手段１４は、拡張後の画像領域を対象に、画像ブロック単位でコーナーターン処理を実行するように、各プロセッサへのメモリ割り付けを行う。画像処理プログラム１では、拡張後の処理対象の画像領域を対象にＳＡＲ画像処理を行う。
【００４９】
次にキャッシュライン重複判定手段２１の動作について説明する。
図２はキャッシュライン重複判定手段２１の処理を示すフローチャートである。ステップＳＴ１１において、キャッシュライン重複判定手段２１は、キャッシュ情報設定手段１３に設定されているキャッシュ情報を入手する。ここで、入手するキャッシュ情報は、キャッシュのライン情報（ラインサイズとライン数）と、データの読み込み制御方式（Ｄｉｒｅｃｔ  Ｍａｐｐｉｎｇ、Ｓｅｔ−ａｓｓｏｃｉａｔｉｖｅ  Ｍａｐｐｉｎｇ、Ｆｕｌｌ−ａｓｓｏｃｉａｔｉｖｅ  Ｍａｐｐｉｎｇ等）及びＳｅｔ−ａｓｓｏｃｉａｔｉｖｅ  Ｍａｐｐｉｎｇでのウェイ数等の制御パラメータ情報である。
【００５０】
図１７の例では、キャッシュライン重複判定手段２１は、キャッシュのラインサイズが３２ｂｙｔｅ、ライン数が１０２４ｌｉｎｅ（キャッシュの総容量＝ラインサイズ×ライン数＝３２Ｋｂｙｔｅ）であることと、データの読み込み制御方式が２ｗａｙ  Ｓｅｔ−ａｓｓｏｃｉａｔｉｖｅ  Ｍａｐｐｉｎｇであるという情報を入手する。
【００５１】
キャッシュ情報を入手後に、ステップＳＴ１２において、キャッシュライン重複判定手段２１は、入手したキャッシュ情報をもとに、同じキャッシュ・ライン・セットを使用する共有メモリ領域の間隔を算出する。この共有メモリ領域の間隔は、Ｓｅｔ−ａｓｓｏｃｉａｔｉｖｅ  Ｍａｐｐｉｎｇの場合には、
（キャッシュのライン数）×（キャッシュのラインサイズ）／（ウェイ数）
により算出され、Ｄｉｒｅｃｔ  Ｍａｐｐｉｎｇの場合には、
（キャッシュのライン数）×（キャッシュのラインサイズ）
により算出される。ただし、データの読み込み制御方式がＦｕｌｌ−ａｓｓｏｃｉａｔｉｖｅ  Ｍａｐｐｉｎｇの場合は、画像領域にオフセットを追加する本方式では改善が困難なため、キャッシュライン重複判定手段２１はここで処理を打ち切る。
【００５２】
図１７の例では、キャッシュライン重複判定手段２１は入手したキャッシュ情報から、キャッシュのラインサイズが３２ｂｙｔｅ、キャッシュのライン数が１０２４、ウェイ数が２なので、共有メモリ領域の１６Ｋｂｙｔｅ間隔で、同じキャッシュ・ライン・セットを使用することを算出する。なお、計算結果と入手したキャッシュ情報（２ｗａｙ  Ｓｅｔ−ａｓｓｏｃｉａｔｉｖｅ  Ｍａｐｐｉｎｇ）から、共有メモリ領域の１６Ｋｂｙｔｅ間隔で、２つのキャッシュラインのペアで構成されるキャッシュ・ライン・セットを利用することがわかる。
【００５３】
ステップＳＴ１３において、キャッシュライン重複判定手段２１は、画像情報設定手段１１に設定されている処理対象の画像情報を入手する。ここで入手する画像情報は、画像サイズ（画素数）と各画素のデータサイズである。図１７の例では、キャッシュライン重複判定手段２１は、画像サイズが８，１９２×８，１９２画素で、１画素のサイズが８ｂｙｔｅという情報を入手する。
【００５４】
処理対象の画像情報を入手後、ステップＳＴ１４において、キャッシュライン重複判定手段２１は、メモリ割付手段１４により算出された画像ブロック情報を入手する。ここでは、画像ブロック情報として、画像ブロックの大きさ（領域のサイズ）と１回のコーナーターンで使用するキャッシュのライン数を入手する。
【００５５】
図１７の例では、キャッシュライン重複判定手段２１は、キャッシュのラインサイズが３２ｂｙｔｅなので、画像ブロックは３２ｂｙｔｅ×３２ｂｙｔｅ分の領域であることを入手する。また、１画素のデータが８ｂｙｔｅなので、１つのキャッシュラインに４画素分のデータが格納され、画像ブロックは４画素×４画素の画像上の領域となる。このため、キャッシュライン重複判定手段２１は、１つの画像ブロックのコーナーターン処理で使用するキャッシュのライン数が４であるという情報を入手する。
【００５６】
画像ブロック情報を入手後、ステップＳＴ１５において、キャッシュライン重複判定手段２１は、入手した画像情報と画像ブロック情報と、算出した同じキャッシュ・ライン・セットを使用する共有メモリ領域の間隔から、画像ブロック単位のコーナーターン処理で、同じキャッシュ・ライン・セットを使用するか否かを判定する。ここで、同じキャッシュ・ライン・セットを使わずにコーナーターン処理を実行できる場合には、処理対象の画像領域にオフセット量を追加改善する処理は不要のため、ステップＳＴ１６において、キャッシュライン重複判定手段２１は処理を終了する。
【００５７】
図１７の例では、処理対象の画像が８，１９２×８，１９２画素で、１画素のサイズが８ｂｙｔｅであり、１行（１列）分の共有メモリ領域が６４Ｋｂｙｔｅになる。算出情報から、共有メモリ領域は１６Ｋｂｙｔｅ間隔で同じキャッシュ・ライン・セットを利用するから、この画像サイズでは、同じ列の画素に対するアクセスは、同じキャッシュ・ライン・セットを使うことがわかる。このため、１辺がキャッシュのラインサイズの大きさの正方形である画像ブロック単位でコーナーターン処理を行う場合には、同じキャッシュ・ライン・セットを使うことがわかる。
【００５８】
同じキャッシュ・ライン・セットを使って、コーナーターン処理を実行することがわかった場合、ステップＳＴ１７において、キャッシュライン重複判定手段２１は、そのコーナーターン処理を実行するときに、最大でいくつ同じキャッシュ・ライン・セットを使用するか（以後、これを最大キャッシュ・ライン・セット重複数と呼ぶ）を算出する。図１７の例では、１つの画像ブロックのコーナーターン処理で使用する４個のキャッシュラインが全て同じキャッシュ・ライン・セットを使用するため、最大キャッシュ・ライン・セット重複数は４となる。
【００５９】
また、最大キャッシュ・ライン・セット重複数を算出後、ステップＳＴ１８において、キャッシュライン重複判定手段２１は、最大キャッシュ・ライン・セット重複数と、１つのキャッシュ・ライン・セットあたりで使用可能なキャッシュラインの数（以後、これをキャッシュ・ライン・セット利用可能ライン数と呼び、この数は、Ｓｅｔ−ａｓｓｏｃｉａｔｉｖｅ  Ｍａｐｐｉｎｇの場合はウェイ数、Ｄｉｒｅｃｔ  Ｍａｐｐｉｎｇの場合は１となる）を比較する。
【００６０】
この比較の結果、
最大キャッシュ・ライン・セット重複数＜キャッシュ・ライン・セット利用可能ライン数
の場合には、画像領域にオフセット量を追加改善する処理は不要のため、ステップＳＴ１６において、キャッシュライン重複判定手段２１は処理を終了する。
【００６１】
一方、
最大キャッシュ・ライン・セット重複数＞キャッシュ・ライン・セット利用可能ライン数
の場合には、ステップＳＴ１９において、キャッシュライン重複判定手段２１は、画像領域の端に一定の共有メモリ領域であるオフセット量を設定する。図３はオフセット量追加前後の画像処理領域を説明する図であり、図３に示すように、画像領域の右端と下端にオフセット量を設定している。
【００６２】
ステップＳＴ２０において、キャッシュライン重複判定手段２１は、再度、最大キャッシュ・ライン・セット重複数を算出し、ステップＳＴ２１において、キャッシュライン重複判定手段２１は、最大キャッシュ・ライン・セット重複数と、キャッシュ・ライン・セット利用可能ライン数を比較する。
最大キャッシュ・ライン・セット重複数＞キャッシュ・ライン・セット利用可能ライン数
の場合には、ステップＳＴ１９に戻り、キャッシュライン重複判定手段２１は、さらに、オフセット量を加えて設定し、ステップＳＴ２０において、キャッシュライン重複判定手段２１は、再度、最大キャッシュ・ライン・セット重複数を算出する。
【００６３】
このステップＳＴ１９からステップＳＴ２１までの処理を、
最大キャッシュ・ライン・セット重複数＜キャッシュ・ライン・セット利用可能ライン数
になるまで繰り返す。ステップＳＴ２１で、
最大キャッシュ・ライン・セット重複数＜キャッシュ・ライン・セット利用可能ライン数
となった場合には、キャッシュライン重複判定手段２１は、このオフセット量をオフセット追加手段２２に通知する。
【００６４】
オフセット追加手段２２は、通知されたオフセット量の領域を処理対象の画像領域に追加して拡張し、オフセット追加手段２２から、処理対象の画像領域の拡張が完了したとの報告を受けた後で、ステップＳＴ２３において、キャッシュライン重複判定手段２１は、メモリ割付手段１４にオフセット量と拡張後の画像サイズを通知し処理を終了する。
【００６５】
なお、最大キャッシュ・ライン・セット重複数と、キャッシュ・ライン・セット利用可能ライン数が同じ場合の判定条件については、あらかじめ、
最大キャッシュ・ライン・セット重複数＜キャッシュ・ライン・セット利用可能ライン数
と判断するか、又は、
最大キャッシュ・ライン・セット重複数＞キャッシュ・ライン・セット利用可能ライン数
と判断するかを、ユーザ設定等により定義しておく。
【００６６】
図２の例では、最大キャッシュ・ライン・セット重複数と、キャッシュ・ライン・セット利用可能ライン数が等しい場合は、
最大キャッシュ・ライン・セット重複数＞キャッシュ・ライン・セット利用可能ライン数
と判断するように設定されていると仮定し、また、図３のオフセット量については、キャッシュの１ラインサイズ分の領域を順次加えていると仮定している。
【００６７】
図１７の例では、前述の算出結果から、最大キャッシュ・ライン・セット重複数は４で、キャッシュ・ライン・セット利用可能ライン数は２である。このため、キャッシュライン重複判定手段２１は、画像領域にオフセット量として４画素（３２ｂｙｔｅ：キャッシュの１ラインサイズ分の共有メモリ領域）を加えて、再度、最大キャッシュ・ライン・セット重複数を算出する。
【００６８】
このとき、オフセット量追加後の処理対象の画像領域は、８，１９６×８，１９６画素となる。図４はオフセット量を追加後の図１７のコーナーターン処理でのキャッシュアクセスの概要を示す図である。すると、１行下の列の画素とは、使用するキャッシュ・ライン・セットがちょうどキャッシュの１ラインサイズ分だけずれることになる。このため、画像ブロック単位のコーナーターン処理を、異なったキャッシュ・ライン・セットを使って実行できるため、最大キャッシュ・ライン・セット重複数が０になる。
【００６９】
最大キャッシュ・ライン・セット重複数がキャッシュ・ライン・セット利用可能ライン数より小さくなるため、キャッシュライン重複判定手段２１は、このときのオフセット量である３２ｂｙｔｅをオフセット追加手段２２に通知する。オフセット追加手段２２から、処理対象の画像領域を８，１９６×８，１９６画素に拡張したとの報告を受けた後で、キャッシュライン重複判定手段２１は、メモリ割付手段１４にオフセット量と拡張後の画像サイズ８，１９６×８，１９６画素を通知し処理を終了する。
【００７０】
この実施の形態では、キャッシュライン重複判定手段２１からの指示で、オフセット追加手段２２が処理対象の画像領域を拡張した後で、メモリ割付手段１４は、オフセット量として追加した領域にはアクセスしないようにして、画像ブロック単位のコーナーターン処理を実行するように、各プロセッサに処理領域を割り当てていく。ここで、オフセット量分のアクセスを回避する以外は、従来例の並列画像処理装置と同様である。
【００７１】
また、画像処理プログラム１でも、処理対象の画像領域の変更に伴い、各ＳＡＲ画像再生処理において、オフセット量として追加した領域を使わないで処理を実行するが、基本的に従来の並列画像処理装置と同じように動作する。
【００７２】
以上のように、この実施の形態１によれば、画像ブロック単位のコーナーターン処理を実行するときに、特定のキャッシュ・ライン・セットへの集中アクセスによるキャッシュラインの過不足を判定し、キャッシュのラインの不足時に、これを解消するサイズのオフセット量の領域を処理対象の画像領域に追加することで、特定のキャッシュ・ライン・セットへの集中アクセスを解消し、キャッシュの利用効率を改善できるという効果が得られる。
【００７３】
また、画像ブロック単位のコーナーターン処理で必要とされる領域に限定してキャッシュ・ライン・セットへのアクセス状況を判定することで、無駄なオフセット量を追加することがないという効果が得られる。
【００７４】
この実施の形態では、処理対象の画像サイズが画像ブロックの定数倍になる例で説明したが、定数倍とならないケースであっても、この実施の形態１と同様の効果が得られる。この場合には、処理対象の画像領域を画像ブロックの定数倍になるように拡張した後で、拡張済みの画像領域を対象にキャッシュラインの過不足を判定し、必要な場合にはオフセット量をさらに加えれば良い。
【００７５】
この実施の形態では、図３に示すように、処理対象の画像領域の右端と下端に、同じ量のオフセット量の領域を追加する例で説明したが、それぞれ適切な異なった大きさのオフセット量の領域を追加しても良く、この実施の形態１と同様の効果が得られる。
【００７６】
また、コーナーターン処理を１回だけ実施するようなケースでは、下端にはオフセット量の領域を追加せず、右端にだけオフセット量の領域を追加しても、この実施の形態１と同様の効果が得られる。例えば、レンジ方向に連続アドレスとなる画像から、アジマス方向に連続アドレスとなる画像へ１回コーナーターンするケースでは、処理前の画像の右端（レンジ行方向の端、処理前画像では行方向、処理結果画像では列方向）にだけオフセット量の領域を追加しても、この実施の形態１と同様の効果が得られる。
【００７７】
この実施の形態ではＳＡＲ画像再生処理で説明したが、ＳＡＲ画像再生処理以外でも、コーナーターン処理に相当する処理を実行する並列画像処理であれば、この実施の形態１と同様の効果が得られる。
【００７８】
実施の形態２．
図５はこの発明の実施の形態２による並列画像処理装置の構成を示すブロック図である。図において、２３は、画像情報設定手段１１に設定されている画像情報、キャッシュ情報設定手段１３に設定されているキャッシュ情報、及びメモリ割付手段１４により算出された画像ブロック情報に基づき、各画像ブロック単位のコーナーターン処理でのキャッシュのラインの過不足をキャッシュの各階層間に跨って判定し、キャッシュのラインが不足時には、キャッシュの各階層でのキャッシュのラインの不足を解消するサイズのオフセット量を算出する階層型キャッシュライン重複判定手段である。
【００７９】
この実施の形態では、実施の形態１の図１におけるキャッシュライン重複判定手段２１を、階層型キャッシュライン重複判定手段２３に入れ換えて並列画像処理装置を構成し、階層型キャッシュライン重複判定手段２３が階層キャッシュを考慮して、キャッシュラインの過不足を判定することが実施の形態１と異なり、その他は実施の形態１と同等である。
【００８０】
次に動作について説明する。
図６は階層型キャッシュライン重複判定手段２３の全体の処理を示すフローチャートである。ステップＳＴ３１において、階層型キャッシュライン重複判定手段２３は、まず、オフセット量と、継承オフセット量を０に初期化する。なお、継承オフセット量については後述する。
【００８１】
ステップＳＴ３２において、階層型キャッシュライン重複判定手段２３は、プロセッサから最も遠い最下位層のキャッシュを選択し、ステップＳＴ３３において、階層型キャッシュライン重複判定手段２３は、キャッシュの各階層（ここでは最下位層）でのキャッシュのラインの過不足を判定する。
【００８２】
図７は階層型キャッシュライン重複判定手段２３の各キャッシュ階層毎のキャッシュラインの過不足判定処理を示すフローチャートである。ステップＳＴ６１において、階層型キャッシュライン重複判定手段２３は、１つ下の階層からのオフセット量と継承オフセット量（ここでは共に０）を受け取る。ステップＳＴ６２，ＳＴ６３は、実施の形態１の図２に示すステップＳＴ１１，ＳＴ１２と同様である。
【００８３】
ステップＳＴ６４において、階層型キャッシュライン重複判定手段２３は、処理対象の画像情報を入手し、処理対象の画像領域に、１つ下の階層からのオフセット量と継承オフセット量を加えた画像領域（ここでは元の画像領域）を判定対象の画像領域に設定する。次のステップＳＴ６５，ＳＴ６６，ＳＴ６８，ＳＴ６９は、実施の形態１の図２に示すステップＳＴ１４，ＳＴ１５，ＳＴ１７，ＳＴ１８と同様である。
【００８４】
ここで、ステップＳＴ６６で同じキャッシュ・ライン・セットを使用しないとき、及びステップＳＴ６９で
最大キャッシュ・ライン・セット重複数＜キャッシュ・ライン・セット利用可能ライン数
の場合には、ステップＳＴ６７において、次の処理、すなわち、図６のステップＳＴ３４へ移行する。
【００８５】
ステップＳＴ７０，ＳＴ７１，ＳＴ７２は、実施の形態１の図２に示すステップＳＴ１９，ＳＴ２０，ＳＴ２１と同様である。ステップＳＴ７２で
最大キャッシュ・ライン・セット重複数＜キャッシュ・ライン・セット利用可能ライン数
の場合には、ステップＳＴ７３において、次の処理、すなわち、図６のステップＳＴ３４へ移行する。
【００８６】
このように、図６のステップＳＴ３３における最下位層のキャッシュの過不足判定では、図７の一連の処理を行うことにより、実施の形態１のキャッシュライン重複判定手段２１と同様の手順で、対象階層でのキャッシュ情報及び画像ブロック情報を基準に判定を行っている。
【００８７】
そして、図７の一連の処理で、
最大キャッシュ・ライン・セット重複数＞キャッシュ・ライン・セット利用可能ライン数
の場合には、実施の形態１と同様にして、キャッシュラインの不足が解消されるまで、ステップＳＴ７０，ＳＴ７１，ＳＴ７２の処理を繰り返しながら、画像領域の端に一定のオフセット量を追加していく。ただし、キャッシュのラインの不足が解消されるオフセット量を求めた後は、このオフセット量をオフセット追加手段２に伝えず、この階層での判定処理を終了し、ステップＳＴ７３において、図６のステップＳＴ３４へ移行する。
【００８８】
なお、図７のステップＳＴ６９，ＳＴ７２において、最大キャッシュ・ライン・セット重複数がキャッシュ・ライン・セット利用可能ライン数と等しい場合の判定条件については、実施の形態１と同様に、あらかじめ、最大キャッシュ・ライン・セット重複数がキャッシュ・ライン・セット利用可能ライン数より小さい又は大きいのどちらと判断するかを、ユーザ設定等により定義しておく。
【００８９】
図８はこの実施の形態２におけるコーナーターン処理の概要を示す図である。図８の例では２次キャッシュの情報から、２次キャッシュに対応する２次画像ブロックを対象にキャッシュのラインの過不足判定を行う。ここでは、２次キャッシュの情報から、２次キャッシュのラインサイズが１２８ｂｙｔｅで、ライン数が３２，７６８であるため、２Ｍｂｙｔｅ毎に同じキャッシュ・ライン・セットを使用することになり、この階層ではキャッシュラインの不足が発生せずオフセット量は０である。
【００９０】
図６のステップＳＴ３４において、最上位層のキャッシュであるかを判定するが、ここでは、最下位層のキャッシュであるため、ステップＳＴ３５において、階層型キャッシュライン重複判定手段２３は、前の階層から受け継いだオフセット量（ここは、先頭のため、０になっている）と、自分の階層で算出したオフセット量の和を、次の階層へ引き継ぐ新たなオフセット量として設定する。図８の例では、２次キャッシュにおけるオフセット量が０なので、次の階層へ引き継ぐ新たなオフセット量は０である。
【００９１】
ステップＳＴ３６において、階層型キャッシュライン重複判定手段２３は１つ上位層のキャッシュを選択し、ステップＳＴ３３に戻り、図７に示す１つ上位層のキャッシュ階層での判定を開始する。ただし、図７のステップＳＴ６１において、１つ下の階層からのオフセット量が０でない場合に、ステップＳＴ６４において、処理対象の画像領域にこのオフセット量を追加した画像領域に対して判定する。
【００９２】
図８の例では、２次キャッシュにおけるオフセット量が０なので、元の処理対象の画像領域（８，１９２×８，１９２画素）をそのまま使用して、１次キャッシュの情報と、１次キャッシュに対応する１次画像ブロックを対象に判定を行う。ここでは、１つ上位層のキャッシュである１次キャッシュのキャッシュ情報は実施の形態１と同じ条件であり、オフセット量は３２ｂｙｔｅとなる。
【００９３】
このようにして、ステップＳＴ３３からステップＳＴ３６までの処理を繰り返し、ステップＳＴ３４において、最上位層のキャッシュになると、ステップＳＴ３７において、階層型キャッシュライン重複判定手段２３は、最上位層で加えたオフセット量と下位層のキャッシュから受け取ったオフセット量の和を１次判定オフセット量として算出する。図８の例では、最上位層で加えたオフセット量が３２ｂｙｔｅで、下位層のキャッシュから受け取ったオフセット量が０なので、１次判定オフセット量は３２ｂｙｔｅとなる。ステップＳＴ３８において、１次判定オフセット量が０の場合には、ステップＳＴ３９において、階層型キャッシュライン重複判定手段２３は処理を終了する。
【００９４】
ステップＳＴ３８で１次判定オフセット量が０以外の場合には、ステップＳＴ４０以降の処理において、１次判定オフセット量を使って再び最下位層のキャッシュから、各キャッシュ階層毎に、キャッシュのラインの過不足を判定及びオフセット量の算出を行う。ここでは、ステップＳＴ４０において、１回目の１次判定オフセット量の算出のため、１次判定オフセット量を、そのまま継承オフセット量として算出する。継承オフセット量とは前回までに算出した１次判定オフセット量の和である。図８の例では、１次判定のオフセット量が３２ｂｙｔｅなので、継承オフセット量も３２ｂｙｔｅとなる。
【００９５】
ステップＳＴ４１において、最下位層のキャッシュが引き継ぐ下位層のキャッシュからのオフセット量は０にする。ステップＳＴ４２，ＳＴ４３，ＳＴ４４，ＳＴ４５，ＳＴ４６において、階層型キャッシュライン重複判定手段２３が、ＳＴ３２，ＳＴ３３，ＳＴ３４，ＳＴ３５，ＳＴ３６と同様にして、再度、最下位層のキャッシュから、各キャッシュ階層毎に、キャッシュのラインの過不足を判定及びオフセット量の算出を行う。
【００９６】
ここで、ステップＳＴ４３におけるキャッシュのラインの過不足判定は、図７に示す一連の処理を行うが、図７のステップＳＴ６４において、各階層で判定に使用する処理対象の画像領域のサイズを、継承オフセット量と、１つ下位層のキャッシュから受け取ったオフセット量とを、元の処理対象の画像領域に追加した画像領域とする。
【００９７】
また、図７のステップＳＴ６６で同じキャッシュ・ライン・セットを使用しないとき、及びステップＳＴ６９で
最大キャッシュ・ライン・セット重複数＜キャッシュ・ライン・セット利用可能ライン数
の場合には、ステップＳＴ６７において、次の処理、すなわち、図６のステップＳＴ４４へ移行する。
【００９８】
さらに、図７のステップＳＴ７２で
最大キャッシュ・ライン・セット重複数＜キャッシュ・ライン・セット利用可能ライン数
の場合には、ステップＳＴ７３において、次の処理、すなわち、図６のステップＳＴ４４へ移行する。
【００９９】
ステップＳＴ４４において、最上位層のキャッシュである場合に、ステップＳＴ４７において、階層型キャッシュライン重複判定手段２３は、再度の各キャッシュの階層でのキャッシュのラインの過不足の判定及びオフセット量の算出を行った結果として、今回の判定での１次判定オフセット量を算出する。
【０１００】
ステップＳＴ４８において、再び１次判定オフセット量が０以外の場合には、ステップＳＴ４９において、階層型キャッシュライン重複判定手段２３は、今回の判定で使用した継承オフセット量に、今回算出した１次判定オフセット量を新たな継承オフセット量として、ステップＳＴ４３において、再度各キャッシュの階層でのキャッシュのラインの過不足の判定及びオフセット量の算出を行い、ステップＳＴ４８において、１次判定オフセット量が０になるまでこの処理を繰り返す。
【０１０１】
ステップＳＴ４８において、再度の判定で、１次判定オフセット量が０の場合には、ステップＳＴ５０において、階層型キャッシュライン重複判定手段２３は、継承オフセット量と拡張後の画像サイズ（元の画像領域の端に継承オフセット量を追加したサイズ）を、メモリ割付手段１４に通知し処理を終了する。
【０１０２】
ステップＳＴ５１において、継承オフセット量と拡張後の画像サイズを受け取ったメモリ割付手段１４の処理は、実施の形態１の図２におけるステップＳＴ２３と同様である。
【０１０３】
図８の例では、１回目の継承オフセット量が３２ｂｙｔｅ（４画素分）であるため、８，１９６×８，１９６画素の画像領域を基準に、再度２次と１次のキャッシュで判定を行う。この結果、各階層では、キャッシュのライン不足は発生せず、ステップＳＴ４７における１次判定オフセット量が０になる。このため、階層型キャッシュライン重複判定手段２３は、継承オフセット量３２ｂｙｔｅと、拡張後の画像サイズ８，１９６×８，１９６画素を、メモリ割付手段１４に伝えて処理を終了する。
【０１０４】
以上のように、この実施の形態２によれば、階層構造のキャッシュにおいても、画像ブロック単位のコーナーターン処理を実行するときに、特定のキャッシュ・ライン・セットへの集中アクセスによるキャッシュラインの過不足を判定し、キャッシュラインの不足時に、これを解消するサイズのオフセット量の領域を処理対象の画像領域に追加することで特定のキャッシュ・ライン・セットへの集中アクセスを解消し、キャッシュの利用効率を改善できるという効果が得られる。ここでは、全ての階層に対して、コーナーターン処理でキャッシュラインの不足が起こらないことを確認してから、オフセット量を決定するコーナーターン処理方法を得ることができる。
【０１０５】
また、この実施の形態２によれば、各階層毎に画像ブロック単位のコーナーターン処理で必要とされる領域に限定して、キャッシュ・ライン・セットへのアクセス状況を判定することで、無駄なオフセット量を追加することがないという効果が得られる。
【０１０６】
この実施の形態２では、１次と２次の２つの階層のキャッシュで説明したが、階層の数によらず、多階層構成のキャッシュに対しても、この実施の形態２と同様の効果が得られる。
【０１０７】
また、この実施の形態２では、処理対象の画像のサイズが画像ブロックの定数倍になる例で説明したが、実施の形態１と同様に、定数倍とならないケースであっても、この実施の形態２と同様の効果が得られる。
【０１０８】
さらに、この実施の形態２では、実施の形態１と同じように、追加するオフセット量の領域を画像領域の右端と下端で変えたり、右端だけ加えるようなケースについても、この実施の形態２と同様の効果が得られる。
【０１０９】
実施の形態３．
図９はこの発明の実施の形態３による並列画像処理装置の構成を示すブロック図である。図において、２１は、画像情報設定手段１１に設定されている画像情報、キャッシュ情報設定手段１３に設定されているキャッシュ情報、及びメモリ割付手段１４により算出された画像ブロック情報に基づき、各画像ブロック単位のコーナーターン処理でのキャッシュのラインの過不足を判定するキャッシュライン重複判定手段である。
【０１１０】
また、図９において、２４は、キャッシュライン重複判定手段２１による判定の結果、キャッシュのラインが不足時には、画像情報設定手段１１に設定されている画像情報、キャッシュ情報設定手段１３に設定されているキャッシュ情報、及びメモリ割付手段１４により算出された画像ブロック情報に基づき、キャッシュのラインの不足を解消するサイズの種々のオフセット量を算出し、算出した種々のオフセット量に対する実行時間を計測することにより、最短の実行時間となる最適のオフセット量を求めるオフセット実測手段である。
【０１１１】
さらに、図９において、２２は、オフセット実測手段２４により求められた最適のオフセット量の領域を、処理対象の画像領域に追加するオフセット追加手段であり、その他の構成は実施の形態１の図１の構成と同等である。
【０１１２】
次に動作について説明する。
この実施の形態では、最大キャッシュ・ライン・セット重複数がキャッシュ・ライン・セット利用可能ライン数より大きくなったときのオフセット量を、オフセット実測手段１１が決定することが実施の形態１と異なり、その他は実施の形態１と同等である。
【０１１３】
キャッシュライン重複判定手段２１は、最大キャッシュ・ライン・セット重複数がキャッシュ・ライン・セット利用可能ライン数より大きくなったときに、オフセット実測手段２４にオフセット量の算出を指示する。このとき、キャッシュライン重複判定手段２１は、画像情報とキャッシュ情報による計算結果である最大キャッシュ・ライン・セット重複数とキャッシュ・ライン・セット利用可能ライン数と、処理対象の画像領域のサイズと、画像ブロックのサイズをオフセット実測手段２４に通知する。
【０１１４】
オフセット実測手段２４は、キャッシュライン重複判定手段２１から通知された情報に基づき種々のオフセット量を算出し、算出したオフセット量に対する実行時間を計測する。この計測の結果、最適（最短時間）となったオフセット量を求めてキャッシュライン重複判定手段２１に通知する。なお、オフセット量を変える範囲は、キャッシュライン重複判定手段２１からの最大キャッシュ・ライン・セット重複数と、キャッシュ・ライン・セット利用可能ライン数情報に基づき決定する。
【０１１５】
キャッシュライン重複判定手段２１は、オフセット実測手段２４が算出したオフセット量を最終的なオフセット量として選択して、オフセット追加手段２２に通知する。その後の処理については実施の形態１と同じである。
【０１１６】
図１７から図４への例に当てはめると、実施の形態１では、オフセット量は実行性能と無関係に４画素（３２ｂｙｔｅ）に決定されていた。この実施の形態３では、実測結果に基づいてオフセット量を決定するため、例えば、その倍の８画素（６４ｂｙｔｅ）の場合の方が、若干性能が上回る場合には、こちらをオフセット量として選択できる。
【０１１７】
以上のように、この実施の形態３によれば、キャッシュのラインの不足時に、実行性能が最適となるオフセット量を選択して、画像ブロック単位のコーナーターン処理を実行できるという効果が得られる。最適のオフセット量を算出するには、ハードウェアやオペレーティングシステムやコンパイラのメモリ割り付け方法等、様々な要素の相互作用を検証する必要がある。また、処理対象の画像サイズの影響も受ける。このため、事前に最適のオフセット量を決定することが難しいが、この実施の形態３では、実測値に基づいて最適のオフセット量を決定することで、この難しい課題を解決できる。
【０１１８】
また、この実施の形態３によれば、オフセット量を検証する範囲を、最大キャッシュ・ライン・セット重複数と、キャッシュ・ライン・セット利用可能ライン数の情報をもとに決定することで、無駄な検証を抑えることができるという効果が得られる。
【０１１９】
この実施の形態３では、オフセット量を１個求める例で説明したが、オフセット実測手段２４では画像領域の右端と下端で別々のオフセット量を算出したり、右端だけオフセット量を算出するようなケースについても、この実施の形態３と同様の効果が得られる。
【０１２０】
この実施の形態３では、実施の形態１への拡張で説明を行ったが、多階層のキャッシュに対応した実施の形態２の並列画像処理装置に対しても、オフセット実測手段２４を加えても良く同様の効果が得られる。
【０１２１】
実施の形態４．
図１０はこの発明の実施の形態４による並列画像処理装置の構成を示すブロック図である。図において、２５は、オフセット実測手段２４により求められた最適のオフセット量と、最適のオフセット量を求めたときのキャッシュ情報及び画像情報等の入力パラメータを記録する実測値記録手段であり、キャッシュのラインが不足時には、オフセット実測手段２４が、実測値記録手段２５に記録されている入力パラメータと最適のオフセット量を参照して、最適のオフセット量を求める。その他の構成は、実施の形態３の図９に示す構成と同等である。
【０１２２】
次に動作について説明する。
この実施の形態では、オフセット実測手段２４が、最適のオフセット量算出前に実測値記録手段２５を参照することと、オフセット量の算出後に、その結果を実測値記録手段２５に通知することが実施の形態３と異なる。
【０１２３】
実測値記録手段２５は、オフセット実測手段２４が、最適のオフセット量を算出したときに、そのときの入力パラメータ（キャッシュ情報や処理対象の画像情報等）と、算出結果である最適のオフセット量を内部に記録する。
【０１２４】
オフセット実測手段２４が、次にキャッシュライン重複判定手段２１からオフセット量の算出を指示された場合には、実測値記録手段２５を参照する。入力パラメータが同じであれば、オフセット実測手段２４は以前の算出結果を最適のオフセット量としてキャッシュライン重複判定手段２１に通知する。同じ入力パラメータがない場合には、オフセット実測手段２４は、記録されている入力パラメータを参照して、オフセット量を変える範囲を絞り込んでから実行時間の計測を行う。
【０１２５】
そして、最適のオフセット量を算出したときに、オフセット実測手段２４は、キャッシュライン重複判定手段２１からの入力パラメータと最適のオフセット量を実測値記録手段２５に記録する。これ以外の処理については実施の形態３と同じである。
【０１２６】
以上のように、この実施の形態４によれば、キャッシュのラインの不足時に、実行性能が最適となるオフセット量を効率良く求めることができるという効果が得られる。
【０１２７】
実施の形態５．
図１１はこの発明の実施の形態５による並列画像処理装置の構成を示すブロック図である。図において、２６は、コーナーターン処理以外の処理に対するオフセット量についての要求、すなわち、コーナーターン処理以外の処理に対する最大キャッシュ・ライン・セット重複数とその処理の重要度（全実行時間に占める割合等）を設定する外部処理用オフセット設定手段である。
【０１２８】
また、図１１において、キャッシュライン重複判定手段２１は、キャッシュのラインが不足時には、外部処理用オフセット設定手段２６に設定されているコーナーターン処理以外の処理に対するオフセット量についての要求を参照して、キャッシュのラインの不足を解消するサイズのオフセット量を算出する。その他の構成は実施の形態１の図１に示す構成と同等である。
【０１２９】
次に動作について説明する。
この実施の形態では、キャッシュライン重複判定手段２１が、最大キャッシュ・ライン・セット重複数を算出するときに、外部処理用オフセット設定手段２６を参照して、最大キャッシュ・ライン・セット重複数を調整することが実施の形態１と異なる。その他は実施の形態１と同じである。
【０１３０】
外部処理用オフセット設定手段２６は、コーナーターン処理以外の処理で、画像ブロック単位のコーナーターン処理と同様に、画像サイズによってメモリアクセスが不利となるアクセスを含む処理について、その処理に対する最大キャッシュ・ライン・セット重複数とその処理の重要度（全実行時間に占める割合等）を設定する。
【０１３１】
キャッシュライン重複判定手段２１は、最大キャッシュ・ライン・セット重複数を算出するときに、外部処理用オフセット設定手段２６を参照し、外部処理用オフセット設定手段２６により設定されているコーナーターン以外の処理に対する最大キャッシュ・ライン・セット重複数とその処理の重要度から、キャッシュライン重複判定手段２１内部で保持する最大キャッシュ・ライン・セット重複数の値を調整する。キャッシュライン重複判定手段２１は、この調整後の値を使って、実施の形態１と同様の手順で処理を行う。
【０１３２】
以上のように、この実施の形態５によれば、コーナーターン処理以外の処理で発生するキャッシュラインの不足も考慮して、実行性能が最適となるオフセット量を選択して、画像ブロック単位のコーナーターン処理を実行できるという効果が得られる。
【０１３３】
この実施の形態５では、実施の形態１への拡張で説明を行ったが、多階層のキャッシュに対応した実施の形態２の並列画像処理装置に対しても、外部処理用オフセット設定手段２６を加えても良く同様の効果が得られる。
【０１３４】
実施の形態６．
図１２はこの発明の実施の形態６による並列画像処理装置の構成を示すブロック図である。図において、２７は、キャッシュライン重複判定手段２１により算出されたオフセット量と、外部処理用オフセット設定手段２６に設定されているコーナーターン処理以外の処理に対するオフセット量についての要求を参照して、コーナーターン処理以外の処理へ処理範囲や方向を画像処理プログラム１に指示する外部処理用実行範囲制御手段であり、その他の構成は実施の形態５の図１１に示す構成と同等である。
【０１３５】
次に動作について説明する。
この実施の形態では、キャッシュライン重複判定手段２１が、算出したオフセット量を外部処理用実行範囲制御手段２７に通知し、外部処理用実行範囲制御手段２７が、このオフセット量と外部処理用オフセット設定手段２６の情報を参照して、コーナーターン処理以外の処理へ処理範囲や方向を画像処理プログラム１に指示することが実施の形態５と異なる。
【０１３６】
外部処理用実行範囲制御手段２７は、キャッシュライン重複判定手段２１により算出されたオフセット量と、外部処理用オフセット設定手段２６により設定されているコーナーターン処理以外の処理に対する最大キャッシュ・ライン・セット重複数から、コーナーターン処理以外の処理に対して、キャッシュ・ライン・セットの重複を極力抑えるような共有メモリ上の処理範囲や方向を指示する。
【０１３７】
キャッシュライン重複判定手段２１は、オフセット量を決定したときに、外部処理用実行範囲制御手段２７にこのオフセット量を通知する以外は、実施の形態５と同様の手順で処理を行う。
【０１３８】
以上のように、この実施の形態６によれば、算出したオフセット量を基準に、コーナーターン処理以外の処理へもキャッシュ・ライン・セットの重複を抑え、実行効率の良いキャッシュアクセスを実現する処理範囲や方向を指示することができるという効果が得られる。
【０１３９】
【発明の効果】
以上のように、この発明によれば、画像情報とキャッシュ情報を入手し画像ブロック情報を算出するメモリ割付手段と、画像情報、キャッシュ情報、及び算出された画像ブロック情報に基づき、各画像ブロック単位のコーナーターン処理でのキャッシュのラインの過不足を判定し、キャッシュのラインの不足を解消するサイズのオフセット量を算出するキャッシュライン重複判定手段と、算出されたオフセット量の領域を、処理対象の画像領域に追加するオフセット追加手段とを備え、メモリ割付手段が、プロセッサの個数情報を入手し、各プロセッサがコーナーターン処理を実行するように共有メモリの対象領域を割り付けることにより、特定のキャッシュ・ライン・セットへの集中アクセスを解消し、キャッシュの利用効率を改善できるという効果がある。
【０１４０】
この発明によれば、コーナーターン処理以外の処理に対するオフセット量についての要求を設定する外部処理用オフセット設定手段を備え、キャッシュライン重複判定手段が、キャッシュのラインが不足時には、設定されているコーナーターン処理以外の処理に対するオフセット量についての要求を参照して、キャッシュのラインの不足を解消するサイズのオフセット量を算出することにより、コーナーターン処理以外の処理で発生するキャッシュラインの不足も考慮し、実行性能が最適となるオフセット量を選択して、画像ブロック単位のコーナーターン処理を実行できるという効果がある。
【０１４１】
この発明によれば、画像情報とキャッシュ情報を入手し画像ブロック情報を算出するメモリ割付手段と、画像情報、キャッシュ情報、及び算出された画像ブロック情報に基づき、各画像ブロック単位のコーナーターン処理でのキャッシュのラインの過不足をキャッシュの各階層間に跨って判定し、キャッシュの各階層でのキャッシュのラインの不足を解消するサイズのオフセット量を算出する階層型キャッシュライン重複判定手段と、算出されたオフセット量の領域を、処理対象の画像領域に追加するオフセット追加手段とを備え、メモリ割付手段が、プロセッサの個数情報を入手し、各プロセッサがコーナーターン処理を実行するように共有メモリの対象領域を割り付けることにより、階層構造のキャッシュにおいても、特定のキャッシュ・ライン・セットへの集中アクセスを解消し、キャッシュの利用効率を改善できるという効果がある。
【０１４２】
この発明によれば、コーナーターン処理以外の処理に対するオフセット量についての要求を設定する外部処理用オフセット設定手段を備え、階層型キャッシュライン重複判定手段が、キャッシュのラインが不足時には、コーナーターン処理以外の処理に対するオフセット量についての要求を参照して、キャッシュの各階層でのキャッシュのラインの不足を解消するサイズのオフセット量を算出することにより、コーナーターン処理以外の処理で発生するキャッシュラインの不足も考慮し、実行性能が最適となるオフセット量を選択して、画像ブロック単位のコーナーターン処理を実行できるという効果がある。
【０１４３】
この発明によれば、キャッシュライン重複判定手段又は階層型キャッシュライン重複判定手段により算出されたオフセット量と、外部処理用オフセット設定手段に設定されているコーナーターン処理以外の処理に対するオフセット量についての要求を参照して、コーナーターン処理以外の処理へ処理範囲や方向を画像処理プログラムに指示する外部処理用実行範囲制御手段を備えたことにより、算出したオフセット量を基準に、コーナーターン処理以外の処理へもキャッシュ・ライン・セットの重複を抑え、実行効率の良いキャッシュアクセスを実現する処理範囲や方向を指示することができるという効果がある。
【０１４４】
この発明によれば、画像情報とキャッシュ情報を入手し画像ブロック情報を算出するメモリ割付手段と、画像情報、キャッシュ情報、及び算出された画像ブロック情報に基づき、各画像ブロック単位のコーナーターン処理でのキャッシュのラインの過不足を判定するキャッシュライン重複判定手段と、判定の結果、キャッシュのラインが不足時には、画像情報、キャッシュ情報、及び算出された画像ブロック情報に基づき、キャッシュのラインの不足を解消するサイズの種々のオフセット量を算出し、算出した種々のオフセット量に対する実行時間を計測することにより、最短の実行時間となる最適のオフセット量を求めるオフセット実測手段と、求められた最適のオフセット量の領域を処理対象の画像領域に追加するオフセット追加手段とを備え、メモリ割付手段が、プロセッサの個数情報を入手し、各プロセッサがコーナーターン処理を実行するように共有メモリの対象領域を割り付けることにより、キャッシュのラインの不足時に、実行性能が最適となるオフセット量を選択して、画像ブロック単位のコーナーターン処理を実行できるという効果がある。
【０１４５】
この発明によれば、画像情報とキャッシュ情報を入手し画像ブロック情報を算出するメモリ割付手段と、画像情報、キャッシュ情報、及び算出された画像ブロック情報に基づき、各画像ブロック単位のコーナーターン処理でのキャッシュのラインの過不足をキャッシュの各階層間に跨って判定する階層型キャッシュライン重複判定手段と、判定の結果、キャッシュのラインが不足時には、画像情報、キャッシュ情報、及び算出された画像ブロック情報に基づき、キャッシュの各階層でのキャッシュのラインの不足を解消するサイズの種々のオフセット量を算出し、算出した種々のオフセット量に対する実行時間を計測することにより、最短の実行時間となる最適のオフセット量を求めるオフセット実測手段と、求められた最適のオフセット量の領域を、処理対象の画像領域に追加するオフセット追加手段とを備え、メモリ割付手段が、プロセッサの個数情報を入手し、算出した画像ブロック単位で、各プロセッサがコーナーターン処理を実行するように共有メモリの対象領域を割り付けることにより、キャッシュのラインの不足時に、実行性能が最適となるオフセット量を選択して、画像ブロック単位のコーナーターン処理を実行できるという効果がある。
【０１４６】
この発明によれば、オフセット実測手段により求められた最適のオフセット量と、最適のオフセット量を求めたときのキャッシュ情報及び画像情報等の入力パラメータを記録する実測値記録手段を備え、キャッシュのラインが不足時には、オフセット実測手段が、記録されている入力パラメータと最適のオフセット量を参照して、最適のオフセット量を求めることにより、キャッシュのラインの不足時に、実行性能が最適となるオフセット量を効率良く求めることができるという効果がある。
【０１４７】
この発明によれば、入手した画像情報とキャッシュ情報により画像ブロック情報を算出し、入手した画像情報とキャッシュ情報、及び算出された画像ブロック情報に基づき、各画像ブロック単位のコーナーターン処理でのキャッシュのラインの過不足を判定し、キャッシュのラインの不足を解消するサイズのオフセット量を算出し、算出されたオフセット量の領域を、処理対象の画像領域に追加し、プロセッサの個数情報を入手し、各プロセッサがコーナーターン処理を実行するように共有メモリの対象領域を割り付けることにより、特定のキャッシュ・ライン・セットへの集中アクセスを解消し、キャッシュの利用効率を改善できるという効果がある。
【０１４８】
この発明によれば、キャッシュのラインが不足時には、設定されているコーナーターン処理以外の処理に対するオフセット量についての要求を参照して、キャッシュのラインの不足を解消するサイズのオフセット量を算出することにより、コーナーターン処理以外の処理で発生するキャッシュラインの不足も考慮して、実行性能が最適となるオフセット量を選択して、画像ブロック単位のコーナーターン処理を実行できるという効果がある。
【０１４９】
この発明によれば、入手した画像情報とキャッシュ情報により画像ブロック情報を算出し、入手した画像情報とキャッシュ情報、及び算出された画像ブロック情報に基づき、各画像ブロック単位のコーナーターン処理でのキャッシュのラインの過不足をキャッシュの各階層間に跨って判定し、キャッシュのラインが不足時には、キャッシュの各階層でのキャッシュのラインの不足を解消するサイズのオフセット量を算出し、算出されたオフセット量の領域を、処理対象の画像領域に追加し、プロセッサの個数情報を入手し、各プロセッサがコーナーターン処理を実行するように共有メモリの対象領域を割り付けることにより、階層構造のキャッシュにおいても、特定のキャッシュ・ライン・セットへの集中アクセスを解消し、キャッシュの利用効率を改善できるという効果がある。
【０１５０】
この発明によれば、キャッシュのラインが不足時には、設定されているコーナーターン処理以外の処理に対するオフセット量についての要求を参照して、キャッシュの各階層でのキャッシュのラインの不足を解消するサイズのオフセット量を算出することにより、コーナーターン処理以外の処理で発生するキャッシュラインの不足も考慮し、実行性能が最適となるオフセット量を選択して、画像ブロック単位のコーナーターン処理を実行できるという効果がある。
【０１５１】
この発明によれば、算出されたオフセット量と、設定されているコーナーターン処理以外の処理に対するオフセット量についての要求を参照して、コーナーターン処理以外の処理へ処理範囲や方向を、コーナーターン処理を含む画像の再生処理を実行する画像処理プログラムに指示することにより、算出したオフセット量を基準に、コーナーターン処理以外の処理へもキャッシュ・ライン・セットの重複を抑え、実行効率の良いキャッシュアクセスを実現する処理範囲や方向を指示することができるという効果がある。
【０１５２】
この発明によれば、入手した画像情報とキャッシュ情報により画像ブロック情報を算出し、入手した画像情報とキャッシュ情報、及び算出された画像ブロック情報に基づき、各画像ブロック単位のコーナーターン処理でのキャッシュのラインの過不足を判定し、判定の結果、キャッシュのラインが不足時には、入手した画像情報とキャッシュ情報、及び算出された画像ブロック情報に基づき、キャッシュのラインの不足を解消するサイズの種々のオフセット量を算出し、算出した種々のオフセット量に対する実行時間を計測することにより、最短の実行時間となる最適のオフセット量を求め、求められた最適のオフセット量の領域を、処理対象の画像領域に追加し、プロセッサの個数情報を入手し、各プロセッサがコーナーターン処理を実行するように共有メモリの対象領域を割り付けることにより、キャッシュのラインの不足時に、実行性能が最適となるオフセット量を選択して、画像ブロック単位のコーナーターン処理を実行できるという効果がある。
【０１５３】
この発明によれば、入手した画像情報とキャッシュ情報により画像ブロック情報を算出し、入手した画像情報とキャッシュ情報、及び算出された画像ブロック情報に基づき、各画像ブロック単位のコーナーターン処理でのキャッシュのラインの過不足をキャッシュの各階層間に跨って判定し、判定の結果、キャッシュのラインが不足時には、入手した画像情報とキャッシュ情報、及び算出された画像ブロック情報に基づき、キャッシュの各階層でのキャッシュのラインの不足を解消するサイズの種々のオフセット量を算出し、算出した種々のオフセット量に対する実行時間を計測することにより、最短の実行時間となる最適のオフセット量を求め、求められた最適のオフセット量の領域を、処理対象の画像領域に追加し、プロセッサの個数情報を入手し、各プロセッサがコーナーターン処理を実行するように共有メモリの対象領域を割り付けることにより、階層構造のキャッシュにおいても、キャッシュのラインの不足時に、実行性能が最適となるオフセット量を選択して、画像ブロック単位のコーナーターン処理を実行できるという効果がある。
【０１５４】
この発明によれば、求められた最適のオフセット量と、最適のオフセット量を求めたときのキャッシュ情報及び画像情報等の入力パラメータを記録し、キャッシュのラインが不足時には、記録されている入力パラメータと最適のオフセット量を参照して、最適のオフセット量を求めることにより、キャッシュのラインの不足時に、実行性能が最適となるオフセット量を効率良く求めることができるという効果がある。
【図面の簡単な説明】
【図１】  この発明の実施の形態１による並列画像処理装置の構成を示すブロック図である。
【図２】  この発明の実施の形態１による並列画像処理装置におけるキャッシュライン重複判定手段の処理を示すフローチャートである。
【図３】  この発明の実施の形態１による並列画像処理装置におけるオフセット量追加前後の画像処理領域を説明する図である。
【図４】  この発明の実施の形態１による並列画像処理装置におけるオフセットを追加後のコーナーターン処理でのキャッシュアクセスの概要を示す図である。
【図５】  この発明の実施の形態２による並列画像処理装置の構成を示すブロック図である。
【図６】  この発明の実施の形態２による並列画像処理装置における階層型キャッシュライン重複判定手段の全体の処理を示すフローチャートである。
【図７】  この発明の実施の形態２による並列画像処理装置における階層型キャッシュライン重複判定手段の各キャッシュ階層毎のキャッシュラインの過不足判定処理を示すフローチャートである。
【図８】  この発明の実施の形態２による並列画像処理装置におけるコーナーターン処理の概要を示す図である。
【図９】  この発明の実施の形態３による並列画像処理装置の構成を示すブロック図である。
【図１０】  この発明の実施の形態４による並列画像処理装置の構成を示すブロック図である。
【図１１】  この発明の実施の形態５による並列画像処理装置の構成を示すブロック図である。
【図１２】  この発明の実施の形態６による並列画像処理装置の構成を示すブロック図である。
【図１３】  従来の並列画像処理装置の構成を示すブロック図である。
【図１４】  従来の並列画像処理装置におけるメモリ割付手段の処理を示すフローチャートである。
【図１５】  従来の並列画像処理装置におけるキャッシュアクセスの概念を示す図である。
【図１６】  従来の並列画像処理装置におけるキャッシュの各ラインへのデータの読み込み方法を示す図である。
【図１７】  従来の並列画像処理装置におけるコーナーターン処理の概要を示す図である。
【符号の説明】
１  画像処理プログラム、２  プラットホーム、３  並列画像処理装置、１１画像情報設定手段、１２  使用プロセッサ数設定手段、１３  キャッシュ情報設定手段、１４  メモリ割付手段、２１  キャッシュライン重複判定手段、２２オフセット追加手段、２３  階層型キャッシュライン重複判定手段、２４  オフセット実測手段、２５  実測値記録手段、２６  外部処理用オフセット設定手段、２７  外部処理用実行範囲制御手段。
【図１】
0003781974.tif 000002
【図２】
0003781974.tif 000003
【図３】
0003781974.tif 000004
【図４】
0003781974.tif 000005
【図５】
0003781974.tif 000006
【図６】
0003781974.tif 000007
【図７】
0003781974.tif 000008
【図８】
0003781974.tif 000009
【図９】
0003781974.tif 000010
【図１０】
0003781974.tif 000011
【図１１】
0003781974.tif 000012
【図１２】
0003781974.tif 000013
【図１３】
0003781974.tif 000014
【図１４】
0003781974.tif 000015
【図１５】
0003781974.tif 000016
【図１６】
0003781974.tif 000017
【図１７】
0003781974.tif 000018