(57)【特許請求の範囲】
【請求項１】
第一のデータ処理を複数のプロセッサが並列処理して記憶手段に格納し、前記記憶手段に格納されたデータに対して第二のデータ処理を行うデータ処理装置であって、
第一のデータ処理を複数のプロセッサに並列処理させる第一のデータ処理手段と、
前記第一のデータ処理手段で並列処理されたデータを記憶手段に格納する際に、前記複数のプロセッサのデータキャッシュのサイズに基づいて、前記第一のデータ処理手段による並列処理として前記複数のプロセッサそれぞれで処理されたデータの前記記憶手段に対するアドレスを、前記プロセッサのデータキャッシュのキャッシュラインのサイズに対応するアドレスに変換するアドレス変換手段と、
前記記憶手段に格納されたデータを読み出し、読み出したデータに対して第二のデータ処理を行う第二のデータ処理手段と、
を有することを特徴とするデータ処理装置。
【請求項２】
前記複数のプロセッサの数と前記データキャッシュのサイズとから各プロセッサに並列処理させるデータの領域の幅を設定する設定手段を更に有し、
前記アドレス変換手段は、前記設定手段で設定された領域の幅に基づいて前記記憶手段に対するアドレスを変換することを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記第二のデータ処理手段は、前記記憶手段に格納されたデータをラスタ順に読み出すことを特徴とする請求項１又は２に記載のデータ処理装置。
【請求項４】
前記第二のデータ処理手段は、二次元のデータを矩形単位で前記記憶手段から読み出すことを特徴とする請求項１又は２に記載のデータ処理装置。
【請求項５】
ｘ方向とｙ方向で規定される二次元の配列の入力データについて、第一のサイズごとに並列処理する複数の処理手段であって、前記第一のサイズは、前記複数の処理手段それぞれが担当するｘ方向の幅であり、かつ前記処理手段のキャッシュラインのサイズよりも小さい、前記複数の処理手段と、
前記複数の処理手段のそれぞれの処理によって得られる結果を、前記処理手段のキャッシュラインのサイズごとに、前記複数の処理手段について順番に繰り返し記憶する記憶手段と、
前記記憶手段に記憶されている結果を第二のサイズごとに読み出して転送する転送手段と、
を有することを特徴とするデータ処理装置。
【請求項６】
第一のデータ処理を複数のプロセッサが並列処理して記憶手段に格納し、前記記憶手段に格納されたデータに対して第二のデータ処理を行うデータ処理装置で実行されるデータ処理方法であって、
第一のデータ処理手段が、第一のデータ処理を複数のプロセッサに並列処理させる第一のデータ処理工程と、
アドレス変換手段が、前記第一のデータ処理工程において並列処理されたデータを記憶手段に格納する際に、前記複数のプロセッサのデータキャッシュのサイズに基づいて、前記第一のデータ処理工程による並列処理として前記複数のプロセッサそれぞれで処理されたデータの前記記憶手段に対するアドレスを、前記プロセッサのデータキャッシュのキャッシュラインのサイズに対応するアドレスに変換するアドレス変換工程と、
第二のデータ処理手段が、前記記憶手段に格納されたデータを読み出し、読み出したデータに対して第二のデータ処理を行う第二のデータ処理工程と、
を有することを特徴とするデータ処理方法。
【請求項７】
複数の処理手段と当該複数の処理手段で共有する記憶手段とを有するデータ処理装置によるデータ処理方法であって、
ｘ方向とｙ方向で規定される二次元の配列の入力データについて、前記複数の処理手段であって、前記第一のサイズは、前記複数の処理手段それぞれが担当するｘ方向の幅であり、かつ前記処理手段のキャッシュラインのサイズよりも小さい、前記複数の処理手段によって第一のサイズごとに並列処理する処理工程と、
前記処理工程によって得られる結果を、前記処理手段のキャッシュラインのサイズごとに、前記複数の処理手段について順番に繰り返し前記記憶手段に記憶させる記憶工程と、
前記記憶手段に記憶されている結果を第二のサイズごとに読み出して転送する転送工程と、
を有することを特徴とするデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置及びデータ処理方法に関するものである。
【背景技術】
【０００２】
画像形成装置等において、画像データを処理する際に、一部の処理を専用ハードウェアではなく組み込みプロセッサ上のソフトウェアに実行させる場合がある。ソフトウェアで実行させることにより、複数の機能をユースケース毎に使い分け、また機能の追加実装等、システム全体として柔軟な対応が可能となる。プロセッサは一般に複数搭載され、また近年ではその数も増加傾向にある。複数のプロセッサを用いることにより、複数の処理をパイプライン処理する、１つの処理を並列処理する、といったことが可能となる。
【０００３】
ところで、組み込みプロセッサによるソフトウェア処理は、専用ハードウェアによる処理と比べて処理時間が長く、画像形成装置等においてはシステム全体の処理時間のボトルネックとなりやすい。そのため、複数のプロセッサを搭載した際に、１つの画像データを領域分割して分割した画像データを複数のプロセッサの其々で並列処理する方法がある。例えば特許文献１では、複数のプロセッサを用いてＪＰＥＧ圧縮、伸長を並列に実行する手法が提案されている。
【０００４】
現在の一般的なプロセッサは、キャッシュメモリを備えており、複数のプロセッサが１つの共有メモリ型の主記憶装置に対して領域分割してデータを出力する際に、キャッシュコヒーレンシを保つ必要がある。複数のプロセッサは、独立にデータキャッシュを備えており、キャッシュラインのサイズ毎にデータの一貫性保持トランザクションが行われる。同一のキャッシュラインを複数のプロセッサで独立して読み書きする場合は、一方の書き込みにより他方のデータを誤って上書きする恐れがある。この対策としては、例えば特許文献２のように専用ハードウェアを実装することにより、キャッシュコヒーレンシを保つ方法がある。また、専用ハードウェアを実装しない場合、各プロセッサが分担する領域の割り当てをキャッシュラインサイズに合わせることで、複数のプロセッサが同一のキャッシュラインを共有しないことをシステム的に保障する。これにより、キャッシュコヒーレンシを保つという方法がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−７３２１０号公報
【特許文献２】特開平０８−１８５３５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１では出力データは離散的であり、そもそもキャッシュコヒーレンシを保つ構成がない。
【０００７】
複数のプロセッサのキャッシュ間でキャッシュコヒーレンシを保つために、特許文献２のように構成するとキャッシュコヒーレンシを保つためのトランザクションが頻発し、システム全体の性能が低下するおそれがある。
【０００８】
また、各プロセッサが分担する領域の割り当てをキャッシュラインのサイズに合わせることでキャッシュコヒーレンシを保とうとすると、処理対象のデータをキャッシュラインサイズより小さく分割できない。複数のプロセッサが実装されているシステムにおいて、並列処理を分担させることができないプロセッサが発生しプロセッサの数に見合った処理速度上昇の効果が得られないおそれがある。
【０００９】
本発明は、領域を分割して複数のプロセッサに並列処理させる際に効率的な並列処理を可能にするシステム及び方法を提供する。
【課題を解決するための手段】
【００１０】
本発明は、第一のデータ処理を複数のプロセッサが並列処理して記憶手段に格納し、前記記憶手段に格納されたデータに対して第二のデータ処理を行うデータ処理装置であって、
第一のデータ処理を複数のプロセッサに並列処理させる第一のデータ処理手段と、
前記第一のデータ処理手段で並列処理されたデータを記憶手段に格納する際に、前記複数のプロセッサのデータキャッシュのサイズに基づいて、前記第一のデータ処理手段による並列処理として前記複数のプロセッサそれぞれで処理されたデータの前記記憶手段に対するアドレスを、前記プロセッサのデータキャッシュのキャッシュラインのサイズに対応するアドレスに変換するアドレス変換手段と、
前記記憶手段に格納されたデータを読み出し、読み出したデータに対して第二のデータ処理を行う第二のデータ処理手段と、
を有することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、領域を分割して複数のプロセッサに並列処理させる際に、効率的に並列処理を実行させることができる。
【図面の簡単な説明】
【００１２】
【図１】第一の実施形態におけるデータ処理システムの構成例を示す図である。
【図２】図１に示すデータ処理システムの詳細な構成例を示す図である。
【図３】第一の実施形態におけるデータ処理の流れを示す図である。
【図４】第一のデータ処理でプロセッサ毎に処理する領域を分割した様子を示す図である。
【図５】第一のデータ処理が行われたアドレス変換前データの配列を示す図である。
【図６】アドレス変換処理による中間データの書き込み順を示す図である。
【図７】具体的なパラメータにおける第二のデータ処理部の読み出し順を示す図である。
【図８】アドレス変換前データの一般的なパラメータの様子を説明するための図である。
【図９】中間データが一般的なパラメータで生成される様子を示す図である。
【図１０】第二のデータ処理部が中間データを読み取る様子を説明するための図である。
【図１１】第二の実施形態における第二のデータ処理部の読み出し順を示す図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照しながら発明を実施するための形態について詳細に説明する。
【００１４】
［第一の実施形態］
図１は、第一の実施形態におけるデータ処理システムの構成例を示す図である。第一のデータ処理部１０２は、複数のプロセッサによって構成され、各プロセッサ上のソフトウェアによってデータ処理が実行される。第一のデータ処理領域分割部１０１は、第一のデータ処理部１０２とは別のプロセッサ等によって構成され、第一のデータ処理部１０２のマルチプロセッサに並列処理させるための領域分割に関する設定を行う。第一のデータ処理部１０２で実行される第一のデータ処理３０１（図３参照）は画像データの２値化処理とするが、本発明はこれに限定されるものではなく、二次元のデータを取り扱う処理（フィルタ処理、変倍処理、変換処理等）であっても構わない。
【００１５】
第二のデータ処理部１０３は、プロセッサや専用のハードウェアによって構成される。第二のデータ処理部１０３で実行される第二のデータ処理３０４（図３）は第一のデータ処理３０１で画像処理された結果を用いて更に別の画像処理を行うものである。ここではＪＢＩＧ圧縮処理とするが、本発明はこれに限定されるものではなく、例えばラスタ順にデータ処理を行う別の画像処理（２値化処理、フィルタ処理等）であっても構わない。
【００１６】
主記憶部１０４は、第一のデータ処理部１０２と第二のデータ処理部１０３とから読み書き可能な共有メモリ型のＤＲＡＭであり、各種データが格納される。この例では、入力データ１０４１は第一のデータ処理３０１を実行する前のデータ、中間データ１０４２は第一のデータ処理３０１を実行し、アドレス変換処理３０３（図３）を経て第二のデータ処理を実行する前のデータである。出力データ１０４３は第二のデータ処理３０４を実行した後のデータである。
【００１７】
図２は、図１に示すデータ処理システムの詳細な構成例を示す図である。第一のデータ処理部１０２は、Ｎ個のプロセッサ１０２１１、１０２１２、…、１０２１Ｎからなる。Ｎ個のプロセッサは、独立にデータキャッシュ１０２２１、１０２２２、…、１０２２Ｎを備え、プロセッサ間でデータのコヒーレンシを保つハードウェア等は備えていないものとする。ここで、データキャッシュ１０２２１、１０２２２、…、１０２２Ｎは、ライトバック方式のデータキャッシュであり、キャッシュラインサイズでデータの一貫性を保持する。また、各プロセッサは、アドレス変換方法１０２３１、１０２３２、…、１０２３Ｎを備え、共有の主記憶部１０４に演算結果を書き込む際にアドレス変換を行う。
【００１８】
第二のデータ処理部１０３は、第二のデータ処理プロセッサ１０３１と入出力転送用ＤＭＡＣ１０３２、１０３３からなる。ＤＭＡＣ１０３２は、データ再配置機能を備え、アドレス変換と整合が取れるように、第二のデータ処理プロセッサ１０３１に、主記憶部１０４から中間データ１０４２を転送する。ＤＭＡＣ１０３３は、第二のデータ処理プロセッサ１０３１（ＪＢＩＧ圧縮部）によって生成された出力データ１０４３を主記憶部１０４に転送する。
【００１９】
第一のデータ処理領域分割部１０１は、データ処理システム全体の制御用のプロセッサを有し、第一のデータ処理部１０２と第二のデータ処理部１０３とに対して動作に必要となる設定パラメータをセットし、それらの動作を制御する。この設定パラメータについては更に後述する。
【００２０】
図３は、第一の実施形態におけるデータ処理の流れを示す図である。第一のデータ処理３０１が入力データ１０４１をアドレス変換前データ３０２に変換する（または、入力データ１０４１に基づいてアドレス変換前データを生成する）。次に、各プロセッサのアドレス変換処理３０３によってアドレス変換前データ３０２を中間データ１０４２に変換する。ここで、本実施形態では第一のデータ処理３０１とアドレス変換処理３０３は、第一のデータ処理部１０２によって連続的に実行されるので、アドレス変換前データ３０２は主記憶部１０４に書き込まれない。最後に、第二のデータ処理３０４が中間データ１０４２を出力データ１０４３に変換する（または、中間データ１０４２に基づいて出力データ１０４３を生成する）。
【００２１】
図４は、第一のデータ処理３０１においてプロセッサ毎に処理する領域を分割した様子を示す図である。図４では、４つのプロセッサ（プロセッサ１０２１１、１０２１２、１０２１３、１０２１４）を用いて並列処理を行うものとして説明する。並列処理させるデータは二次元のビットマップデータであり、メモリのアドレスが連続しているｘ方向とｘ方向のページ幅に基づいてアドレスのオフセットが加わるｙ方向とがあるとする。また、二次元のビットマップデータをｘ方向に短冊状に分割し、各プロセッサが第一のデータ処理３０１を行う。第一のデータ処理３０１において各プロセッサはｘ方向に並ぶ画素を順番に処理し、ｘ方向の最後の画素まで処理をするとｙ方向に処理を進める。
【００２２】
図５は、第一のデータ処理３０１が行われたアドレス変換前データ３０２の配列を示す図であり、図４を拡大表示したものである。プロセッサ１０２１１は、まず先頭アドレスから、プロセッサ１０２１１が担当するｘ方向の幅だけデータ処理を行う、その処理結果（画像データ５１１）をアドレス変換前データ３０２とする。次に、画像データ５１１の開始アドレスから画像のｘ方向のページ幅だけオフセットを加えたアドレスから、プロセッサ１０２１１が担当するｘ方向の幅だけデータ処理を行う。以下同様にプロセッサ１０２１１は、画像データ５１３、５１４と、順にデータ処理を行う。
【００２３】
プロセッサ１０２１２は、先頭アドレスからプロセッサ１０２１１が担当するｘ方向の幅だけオフセットを加えたアドレスから、プロセッサ１０２１２が担当するｘ方向の幅だけデータ処理を行う。データ処理の結果（画像データ５２１）をアドレス変換前データ３０２とする。次に、画像データ５２１の開始アドレスから画像のｘ方向のページ幅だけオフセットを加えたアドレスから、プロセッサ１０２１２が担当するｘ方向の幅だけデータ処理を行う。以下同様にプロセッサ１０２１２、画像データ５２３、５２４と、順にデータ処理を行う。
【００２４】
尚、プロセッサ１０２１３、１０２１４もプロセッサ１０２１１、１０２１２と同様の処理を実施してアドレス変換前データ３０２に変換（生成）する。
【００２５】
図６は、アドレス変換処理３０３による中間データ１０４２の書き込み順を示す図である。第一のデータ処理部１０２を構成するプロセッサ１０２１１、１０２１２、１０２１３、１０２１４が、処理した画像データを中間データ１０４２に書き込む際にアドレス変換処理３０３を行う。ここでは、各プロセッサの担当するｘ方向の幅がキャッシュラインサイズの１／２（第一のサイズ）の場合を示している。
【００２６】
プロセッサ１０２１１は処理した画像データ５１１を、キャッシュの先頭アドレスから書き込む。次の画像データ５１２は画像データ５１１の書き込み開始アドレスから画像のｘ方向のページ幅だけオフセットを加えたアドレスに書き込まれるのではなく、画像データ５１１の続きから書き込まれる。第一の実施形態では、画像データ５１１、５１２の２つで１キャッシュラインサイズに対応している。また、プロセッサ１０２１２が処理した画像データ５２１は、キャッシュの先頭アドレスに１キャッシュラインサイズ分のオフセットを加えたアドレスから書き込まれる。次の画像データ５２２は画像データ５２１の続きに書き込まれる。この画像データ５２１、５２２も２つで１キャッシュラインサイズに対応する。以下、プロセッサ１０２１３が処理した画像データ５３１、５３２、プロセッサ１０２１４が処理した画像データ５４１、５４２も同様である。
【００２７】
次に、プロセッサ１０２１１が処理した画像データ５１３は、先頭アドレスに、キャッシュラインサイズ×プロセッサ数、のオフセットを加えたアドレスに書き込まれる。画像データ５１４以降の、プロセッサ１０２１２が処理した画像データ５２３、５２４、プロセッサ１０２１３が処理した画像データ５３３、５３４、プロセッサ１０２１４が処理した画像データ５４３、５４４も同様に書き込まれる。
【００２８】
図７は、具体的なパラメータにおける第二のデータ処理部１０３の読み出し順を示す図である。上述のアドレス変換処理３０３により主記憶部１０４上の中間データ１０４２は二次元のラスタデータ（またはビットマップデータ）とは配列が異なっている。本実施形態では、第二のデータ処理３０４はＪＢＩＧ圧縮処理であり、第二のデータ処理プロセッサ１０３１は二次元のラスタ順にデータを必要としているものとする。
【００２９】
そのため、データ再配置機能を備えているダイレクトメモリアクセス制御部１０３２（以下、ＤＭＡＣ１０３２と称す）が、アドレス変換処理３０３と整合したデータの読み取りを行う必要があり、矩形転送のできるＤＭＡＣを用いることで実現する。矩形転送とは、二次元の画像データをある長方形サイズ（第二のサイズ）を単位に転送することである。具体的には、まず画像データ５１１、５２１、５３１、５４１を、この順に転送する。すなわち、矩形のサイズは、（プロセッサが担当したｘ方向の幅）×（プロセッサ数）である。
【００３０】
次に、画像データ５１２、５２２、５３２、５４２を、矩形サイズとしてこの順に転送する。その後も、画像データ５１３、５２３、…と同様に転送を行う。以上のように、ＤＭＡＣ１０３２の矩形転送処理により、第二のデータ処理プロセッサ１０３１には、二次元のラスタデータの配列順にデータが転送される。
【００３１】
以上、ページ幅がキャッシュラインサイズの２倍で、４個のプロセッサを用いて分割処理する場合を説明した。しかし、本願発明は上述の設定以外であっても適用できる。次に、プロセッサ数、ページ幅、キャッシュラインサイズ等をパラメータ化し一般化した例を説明する。
【００３２】
図８は、アドレス変換前データ３０２の一般的なパラメータの様子を説明するための図である。注目しているプロセッサ番号を一般的にｎとし、これはＮ個のプロセッサのうちのどれか１つを示す変数である。また、二次元ビットマップにおいて注目しているライン番号を一般的にｙとし、これはｙ方向のどれか１ラインを示す変数である。プロセッサ数がＮ、ページの横幅がＸ、キャッシュラインサイズがＬであるとする。
【００３３】
尚、ページの横幅Ｘは、本発明を実施するためにキャッシュラインサイズの倍数となるように、予め任意のデータを埋めておくものとする。また、中間データが、例えばＲＧＢの画像データであり、１ピクセルが３バイトで構成され、ｘバイト単位で扱う必要があるデータである場合には、キャッシュラインサイズＬとｘの最小公倍数を新しいキャッシュラインサイズとして設定を行う。ここで、キャッシュラインサイズＬの約数をＭとする。Ｎ＞Ｘ／Ｌである場合は、プロセッサ全てに処理を割り当てることができないため、Ｍを用いて、Ｎ≦Ｍ×Ｘ／Ｌを満たす最小のＭを探すことで、全てのプロセッサに処理を割り当てる。
【００３４】
但し、Ｍの決め方は一例であり、この例のように、上記の条件で最小の値と制限される必要はなく、Ｌの約数であれば任意の値で構わない。また、Ｎ＜Ｘ／Ｌの場合であっても、Ｍを設定して本発明を適用しても構わない。プロセッサが処理する処理の最小幅をＺと定義する。Ｚ＝Ｌ／Ｍである。
【００３５】
ここで、プロセッサ数ＮがＮ＝Ｍ×Ｘ／Ｌを満たす場合には、処理の最小幅Ｚを全てのプロセッサに割り当てることで処理を行う。しかし、Ｎ＜Ｍ×Ｘ／Ｌの場合には、いくつかのプロセッサは処理の最小幅Ｚの数倍の幅を処理することとなる。この場合のアドレス変換処理３０３のルールは、仮にプロセッサがＭ×Ｘ／Ｌ個あった場合のアドレス変換処理と同じになるようにする。そのため、ここでは、Ｎ＝Ｍ×Ｘ／Ｌである場合を例に説明する。
【００３６】
図９は、中間データ１０４２が一般的なパラメータで生成される様子を示す図である。図８に示すプロセッサｎでのｙライン目の処理結果は、中間データ１０４２を書き始めるベースアドレスから、以下の３つのオフセットを加えたアドレスに書き込まれる。ここで、ＱＵＯＮＴＩＥＮＴ（Ａ、Ｂ）はＡをＢで割った時の商、ＭＯＤ（Ａ、Ｂ）はＡをＢで割った時の余りである。
・オフセット９０１：Ｌ×Ｎ×ＱＵＯＮＴＩＥＮＴ（（ｙ−１）、Ｍ）
・オフセット９０２：Ｌ×（ｎ−１）
・オフセット９０３：Ｚ×ＭＯＤ（（ｙ−１）、Ｍ）
このように、オフセットは３つからなる。オフセット９０１はキャッシュラインサイズＬ×プロセッサ数Ｎが何個あるかを示している。キャッシュラインサイズにはＭ個の最小幅Ｚからなるため、ライン番号ｙをＭで除算することによりキャッシュラインサイズＬ×プロセッサ数Ｎが何個あるかを求めることができる。オフセット９０２はプロセッサ数によるオフセットを示している。キャッシュラインサイズＬと注目しているプロセッサｎとの乗算により求めることができる。そして、オフセット９０３はライン数ｙの端数によるオフセットを示している。処理の最小幅Ｚとライン数ｙのＭでの除算の余りとを乗算することで求めることができる。
【００３７】
図１０は、第一の実施形態での一般的なパラメータにおける第二のデータ処理部１０３が中間データを読み取る様子を説明するための図である。図７で説明した理由に準じて、第二のデータ処理３０４でＤＭＡＣ１０３２がアドレス変換処理３０３と整合したデータの読み取りを行う必要があり、矩形転送のできるＤＭＡＣを用いることで実現している。この際に用いるパラメータは、ページ横幅をキャッシュラインサイズＬとし、矩形読み取り単位を（処理の最小幅Ｚ×プロセッサＮ）とする。ページサイズと矩形読み取り単位を設定することにより、矩形単位で読み取りを行うことができる。尚、矩形単位で読み取る方法は公知であり、その説明は省略する。
【００３８】
第一の実施形態によれば、第一のデータ処理３０１の領域を分割して複数のプロセッサに並列処理させる際に、処理対象のデータを分割する単位をキャッシュラインのサイズより小さくすることができる。また、第二のデータ処理３０４でラスタデータの配列順にデータが必要とされる場合であっても、整合性が取れるようにすることができる。
【００３９】
［第二の実施形態］
次に、図面を参照しながら本発明に係る第二の実施形態を詳細に説明する。尚、第二の実施形態におけるデータ処理システムの構成は図１に示す第一の実施形態と同様であり、その説明は省略する。
【００４０】
第二の実施形態では、第二のデータ処理部１０３で実行される第二のデータ処理３０４（図３）がＪＰＥＧ圧縮処理とする。図２に示す第二のデータ処理プロセッサ１０３１としてＪＰＥＧ圧縮機能を備える。しかし、本発明はこれに限定されるものではなく、第二のデータ処理３０４は矩形単位でデータ処理を行う別の画像処理であっても構わない。例えば、矩形単位で印刷画像をスプールするスプール処理であってもよい。
【００４１】
図３に示す中間データ１０４２を主記憶部１０４に出力するまでは、第一の実施形態と同様である。第二の実施形態においては、第二のデータ処理３０４を行う上で中間データ１０４２からＤＭＡＣ１０３２がデータを読み出す手順が第一の実施形態と異なる。
【００４２】
図１１は、第二の実施形態における第二のデータ処理部１０３の読み出し順を示す図である。アドレス変換処理３０３によって主記憶部１０４上の中間データ１０４２は二次元のラスタデータと配列が異なっている点は第一の実施形態と同様である。ここで、第二のデータ処理３０４はＪＰＥＧ圧縮処理であり、第二のデータ処理ハードウェア１０３１は矩形単位でデータを必要としているものとする。
【００４３】
そのため、アドレス変換処理３０３と整合したデータの読み取りを行う必要があるが、これらの要件は中間データ１０４２をＤＭＡＣ１０３２がラスタ順に転送するだけで達成される。即ち、ＤＭＡＣ１０３２がデータを、図１１に示すように、画像データ１１０１、１１０２、…、１１０８、１１０９、１１１０、…、１１１６、１１１７、…の順に、ラスタ読み取りする。
【００４４】
尚、上述のように、ラスタ転送ＤＭＡＣ１０３２によって自動的にデータ再配置が行われるためには、プロセッサが処理する処理の最小幅ＺをＪＰＥＧ圧縮のＭＣＵ（Minimum Coded Unit）に合わせる必要がある。第一の実施形態で説明した通り、処理の最小幅Ｚを決める要因である、キャッシュラインサイズＬの約数Ｍは任意に設定可能である。このＭを適切に設定することによって処理の最小幅ＺをＪＰＧＥ圧縮のＭＣＵに合わせる。
【００４５】
第二の実施形態によれば、第二のデータ処理３０４が、矩形単位でデータを必要とする場合にも、アドレス変換処理３０３と整合したデータ読み取りを行うことができる。
【００４６】
［他の実施形態］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005706754.tif 000002
【図２】
0005706754.tif 000003
【図３】
0005706754.tif 000004
【図４】
0005706754.tif 000005
【図５】
0005706754.tif 000006
【図６】
0005706754.tif 000007
【図７】
0005706754.tif 000008
【図８】
0005706754.tif 000009
【図９】
0005706754.tif 000010
【図１０】
0005706754.tif 000011
【図１１】
0005706754.tif 000012