(57)【要約】【課題】  キャッシュ機構を用いて、任意の入力データにおけるパフォーマンス（ヒット率）を維持しつつ同時処理可能な出力色数を可変とし、同一のキャッシュ容量にて更なるパフォーマンスの向上を実現する。【解決手段】  独立に動作可能な複数のサブキャッシュを備え、複数のサブキャッシュで複数のウエイを構成してヒット率を向上させるモードと、複数のサブキャッシュに異なるデータを割り当てて同時出力数を増加させるモードとを備える。また、ヒット率（スループット）に応じて、複数のサブキャッシュの割り当てを変更する。【選択図】      図２
2007316951.tif 000002
【特許請求の範囲】
【請求項１】
メモリから読み出されたデータを一時保持する複数の保持手段と、
前記一時保持されたデータに対するアクセスのヒット率を判定する判定手段と、
前記ヒット率に応じて前記一時保持されたデータの種類を変更する変更手段とを備えることを特徴とするデータ変換装置。
【請求項２】
前記判定手段は、タグに格納されているアドレスが正しいものであるか否かを判定する手段を備え、タグに格納されているアドレスが正しくない場合、ヒットとして扱うことを特徴とする請求項１記載のデータ変換装置。
【請求項３】
前記複数の保持手段は、単体ではダイレクトマッピング方式のキャッシュとして動作し、同種のデータを格納するように構成した場合は複数ウエイのキャッシュとして動作することを特徴とする請求項１記載のデータ変換装置。
【請求項４】
前記一時保持されたデータの種類の変更は、画素単位で行うことを特徴とする請求項１記載のデータ変換装置。
【請求項５】
前記一時保持されたデータの種類を変更した際には、前記ヒット率を初期化することを特徴とする請求項１記載のデータ変換装置。
【請求項６】
前記判定手段は、前記ヒット率が閾値に達しているか否かを判定し、
前記ヒット率が閾値に達している場合、前記複数の保持手段は複数のダイレクトマッピング方式から徐々にウエイ数を増やし、同時に出力するデータを徐々に減らすように動作することを特徴とする請求項１記載のデータ変換装置。
【請求項７】
前記判定手段は、ウエイセット毎にミスヒットをカウントするミスヒットカウンタと、処理データ数をカウントするデータ数カウンタと、タグに格納されているアドレスが正しいものであるかの判定をするタグ真偽判定手段とを備え、タグに格納されているアドレスが正しくない場合、前記ミスヒットカウンタ及びデータ数カウンタの何れもカウントアップしないように制御し、前記ミスヒットカウンタ値とデータ数カウンタにミスヒット率を乗じた値との比較によってヒット率の判定を行うことを特徴とする請求項６記載のデータ変換装置。
【請求項８】
前記保持手段毎のミスヒットをカウントするミスヒットカウンタを備え、前記ヒット率が閾値を超えた場合、前記ミスヒットカウンタ値の大きい方を無効にして前記ウエイ数を増加させることを特徴とする請求項６記載のデータ変換装置。
【請求項９】
前記保持手段毎のミスヒットをカウントするミスヒットカウンタと、ウエイセット毎に前記ミスヒットカウンタ値の総和を求める手段とを備え、前記ウエイセット毎に前記ミスヒットカウンタ値の総和の比較を行い、総和の大きい方を無効にして前記ウエイ数を増加させることを特徴とする請求項６記載のデータ変換装置。
【請求項１０】
前記保持手段毎のミスヒットをカウントするミスヒットカウンタと、ウエイセット毎に前記ミスヒットカウンタ値の最大値を求める手段とを備え、前記ウエイセット毎に前記ミスヒットカウンタ値の最大値の比較を行い、最大値の大きい方を無効にして前記ウエイ数を増加させることを特徴とする請求項６記載のデータ変換装置。
【請求項１１】
前記ヒット率に応じて前記一時保持されたデータの種類は、出力色の種類であることを特徴とする請求項１記載のデータ変換装置。
【請求項１２】
前記ヒット率に応じて前記一時保持されたデータの種類は、入力色空間の上位ビットの演算で分類される格子点データの種類であることを特徴とする請求項１記載のデータ変換装置。
【請求項１３】
前記補間手段は、ウエイ数に応じて補間処理のサイクル数を変更する補間処理サイクル数変更手段を備えることを特徴とする請求項１２記載のデータ変換装置。
【請求項１４】
メモリから読み出されたデータを一時保持する複数の保持工程と、
前記一時保持されたデータに対するアクセスのヒット率を判定する判定工程と、
前記ヒット率に応じて前記一時保持されたデータの種類を変更する変更工程とを有することを特徴とするデータ変換方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ変換装置及びデータ変換方法に関するものである。
【背景技術】
【０００２】
近年、入力機器としては、例えばスキャナ、ビデオカメラなどが普及している。一方、出力機器としては、インクジェット、染料熱昇華型、電子写真などの方式を用いた、各種カラープリンタが普及している。これら入力機器及び出力機器は、それぞれ固有の色空間（デバイス色空間）を有している。そのため、入力機器で読み取ったデータを出力機器にて印刷（表示）するには、入力機器の色空間を出力機器の色空間に変換する処理（色空間変換）が必要となる。
【０００３】
例えば、スキャナで読み取ったＲＧＢの画像データを印刷する場合、スキャナのＲＧＢ色空間から標準のＲＧＢ色空間（例えばAdobe ＲＧＢ）に変換する。その後、プリンタの色材（インク又はトナー）の色空間であるシアン、マゼンタ、イエロー、ブラックで構成されるＣＭＹＫ色空間に変換する。また、同じＲＧＢ色空間においても、例えばスキャナやモニタなど、ＲＧＢの色空間特性（色再現範囲）が異なる場合には色変換が行われる。具体的には、スキャナで読み込んだ画像をモニタに表示する際には、カラーマッチングのために、スキャナのＲＧＢ色空間からモニタのＲＧＢ色空間へ変換が必要になる。
【０００４】
このような色変換の一例として、三次元ルックアップテーブル（３Ｄ−ＬＵＴ）と補間演算を組み合わせた色変換手法がある。また、補間演算手法として、演算量及び隣接する直方体間での色の連続性、グレー軸の再現特性の良好さから四面体補間が優れた補間演算方法として知られている。例えば、特許文献１参照。
【０００５】
しかしながら、上述の３Ｄ−ＬＵＴ＋補間による色変換方法では、色変換の精度を向上させるため、３Ｄ−ＬＵＴの１軸当たりの格子点数（グリッド数）を増加させると、そのＬＵＴの容量は３次元では３乗で増加する。
【０００６】
また、色再現性向上のため、ＲＧＢ以外の色フィルタを追加したデジタルカメラも登場しており、この場合、上記ＬＵＴの容量はグリッド数の４乗となり、膨大なメモリ容量が必要となる。
【０００７】
一方、プリンタ等の出力装置においても、色再現性や階調性、粒状性の向上のために、多数の色材（インク）を用いるものがあり、この場合のＬＵＴ容量は色材の数に比例して増加する。
【特許文献１】特開2000-22973号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述したキャッシュ機構では、キャッシュのヒット率が全体のパフォーマンスを決定している。そのため、想定される最悪の入力データにおいても、所定の時間内に処理を終了させるために必要なヒット率を確保するように、キャッシュ容量を大きめに確保しておく必要があった。
【０００９】
本発明は、キャッシュ機構を用いたデータ変換処理において、任意の入力データにおけるパフォーマンス（ヒット率）を維持しつつ同時処理可能な出力色数を可変とし、同一のキャッシュ容量にて更なるパフォーマンスの向上を実現することを目的とする。
【課題を解決するための手段】
【００１０】
本発明のデータ変換装置は、メモリから読み出されたデータを一時保持する複数の保持手段と、前記一時保持されたデータに対するアクセスのヒット率を判定する判定手段と、前記ヒット率に応じて前記一時保持されたデータの種類を変更する変更手段とを備えることを特徴とする。
【００１１】
また、本発明のデータ変換方法は、メモリから読み出されたデータを一時保持する複数の保持工程と、前記一時保持されたデータに対するアクセスのヒット率を判定する判定工程と、前記ヒット率に応じて前記一時保持されたデータの種類を変更する変更工程とを有することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、キャッシュのヒット率を維持しつつ入力データの存在範囲や相関性に応じたキャッシュ構成やキャッシュ容量の割り当てが行える。従って、キャッシュを効率的に使用でき、処理パフォーマンスが向上する。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
【００１４】
まず、図１を用いて、実施形態におけるキャッシュ機構の全体構成について説明する。尚、ＬＵＴはメモリ上に格納されており、通常、入力データからメモリアドレス生成部を通してＬＵＴのアドレスを生成し、必要な格子点データを取る。ここで、メモリアクセスを軽減するため、或いは高速化のために、キャッシュ機構が採用されることが多い。
【００１５】
図１は、実施形態におけるキャッシュ機構を用いたデータ変換装置の構成の一例を示す図である。図１に示すＬＵＴアドレス生成部１０３は、入力データからＬＵＴアドレスを生成する。通常、ＬＵＴアドレスは各入力軸の上位ビットにて生成される。キャッシュ部１０４は、内部のタグに格納されている情報（タグ情報）より、既にキャッシュにデータが格納されているか否かを判断する。その結果、キャッシュにデータが格納されていると判断した場合は、キャッシュ部１０４に格納されているデータを出力する。
【００１６】
一方、キャッシュにデータが格納されていないと判断した場合は、メモリアドレス生成部１０１が入力データから生成したアドレスのメモリ１０２にアクセスし、必要な格子点データを読み取り、タグ情報と共にキャッシュ部１０４に格納する。ここで、キャッシュ部１０４への出力として、メモリ１０２より読み取ったデータを出力する。
【００１７】
通常、メモリ１０２のアドレスは、ＬＵＴアドレスにメモリ１０２のベースアドレスを加算することにより簡単に求まる。しかし、１７グリッドのＬＵＴのように各軸の格子点数が２のべき乗でない場合は、無駄なメモリ空間を無くすため、メモリアドレスの生成に複雑な演算が必要な場合もある。
【００１８】
図１に示す補間部１０５は、キャッシュ部１０４より出力された格子点データを各軸の下位ビットより加重平均し、変換されたデータを得る。また、ヒット率判定部１０６は、キャッシュ部１０４のヒット率を判定し、キャッシュの構成を変更するためのヒット情報を出力する。そして、このヒット情報に基づいてキャッシュ制御部がキャッシュの構成を変更する。尚、このキャッシュ制御部による具体的な処理については、更に後述する。
【００１９】
［第１の実施形態］
次に、図面を参照しながら本発明に係る第１の実施形態について詳細に説明する。尚、第１の実施形態では、入力されたＲＧＢの色空間データをＣＭＹＫの色空間データに変換する際にキャッシュ機能を適用したデータ変換装置を例に挙げて説明する。
【００２０】
図２は、第１の実施形態におけるキャッシュ部２００の構成例を示す図である。ここで、図２に示すキャッシュ部２００は、図１に示すキャッシュ部１０４及びヒット率判定部１０６に相当する。図２に示す例では、４つのサブキャッシュ２０１ａ〜２０１ｄによりキャッシュ部２００が構成されている。また、キャッシュ部２００には、キャッシュ制御部２０２、セレクタ２０３〜２０５が含まれる。
【００２１】
図３は、第１の実施形態におけるサブキャッシュの構成例を示す図である。ここでは、ＬＵＴアドレスを１５ビットとし、データメモリ３０４のアドレス入力をａビットとし、タグメモリ３０２のアドレス入力をａ−ｂビットとする。
【００２２】
各サブキャッシュは、ダイレクトマッピング方式のキャッシュとして動作する。従って、ビット分割部３０１で、入力されたＬＵＴアドレスはデータメモリ３０４（タグメモリ３０２）のアドレス入力とそれ以外に分割される。通常、アドレスの連続性を考慮して、下位ビットがタグメモリ３０２のエントリ（入力アドレス）にマッピングされる。
【００２３】
タグメモリ３０２には、データメモリ３０４に格納されているデータの上位アドレスが格納されている。この上位アドレスと入力されたＬＵＴアドレスの上位アドレスとを比較器３０２が比較する。ここで、一致した場合は、キャッシュにヒットしたと判定し、一致の判定信号（ＨＩＴ＝１）を図２に示すキャッシュ制御部２０２に出力する。
【００２４】
一方、一致しなかった場合は、比較器３０３は不一致の判定信号（ＨＩＴ＝０）を出力する。これにより、キャッシュ制御部２０２は図１に示すメモリ１０２から該当アドレスのデータを読み出すために、メモリアドレス生成部１０１にリクエスト信号を出力する。このリクエスト信号により、メモリアドレス生成部１０１がメモリ１０２の該当アドレスを生成し、メモリ１０２から該当アドレスのデータが読み出される。そして、そのデータはキャッシュ部２００のサブキャッシュ２０１に入力され、データメモリ３０４に新しいデータとして格納される。また、タグメモリ３０２には、新しい上位アドレスが格納される。
【００２５】
尚、タグメモリ３０２に格納されているアドレスが正しいか否かを示すダーティビットもタグメモリ３０２に格納されている。例えば、データメモリ３０４にデータが格納されていない場合にも、タグメモリ３０２の読み出しデータがたまたま入力されたＬＵＴアドレスの上位アドレスと一致してしまうことがある。この場合、比較器３０３がキャッシュにヒットしたと判定すると、無関係なデータが出力されてしまう。
【００２６】
これを防止するために、タグメモリ３０２にダーティビットを設け、初期化でダーティビットをセットし、正しいデータがデータメモリ３０４に格納された時に、該当アドレスのダーティビットをリセットする。このダーティビットをモニタすることで、タグメモリ３０２に格納されているアドレスが正しいか否かを判定することができる。
【００２７】
また、現実には存在しない（使用しない）アドレスがある場合、そのアドレスを初期化時にタグメモリ３０２に格納することでも、上述の誤動作を防止できる。
【００２８】
尚、ダーティビットはタグの初期化を省略するため、タグとは別のメモリ（レジスタ）に構成しても良い。この場合、サブキャッシュの初期化はダーティビットの初期化のみでよい。
【００２９】
また、キャッシュのフィル効率を上げるため、通常は所定単位（「ライン」と呼ぶ）でキャッシュのフィルが行われる。この場合、タグメモリ３０２のエントリ数が削減される（所定単位が１６ならばｂ＝４となり、下位４ビットがタグメモリ３０２のアドレス入力から削除される）。
【００３０】
次に、図２、図３を用いて、第１の実施形態におけるキャッシュ部２００の動作を説明する。まず、プレスキャンなしの場合について説明する。
【００３１】
プレスキャンなしの場合は、最初はダイレクトマッピング方式のキャッシュとして動作する。例えば、上述したデバイスカラー（ＣＭＹＫ）への色変換に適用した場合、ＲＧＢ入力よりＣＭＹＫの４色の出力が必要になる。そこで、各サブキャッシュにてＣＭＹＫへのデータ変換を同時に行うように設定する。
【００３２】
例えば、サブキャッシュ２０１ａにＣ（シアン）データを、サブキャッシュ２０１ｃにＭ（マゼンタ）データを、サブキャッシュ２０１ｂにＹ（イエロー）データを、サブキャッシュ２０１ｄにＫ（ブラック）データを格納する。この場合、タグメモリ３０２の内容は各サブキャッシュで同一となり、比較器３０３の判定も一致する。
【００３３】
従って、この場合は、ヒット判定部（タグメモリ３０２及び比較器３０３）を共有する（何れか１つのみを動作させる）ようにしても良い。
【００３４】
キャッシュ制御部２０２は、キャッシュのヒット率を監視しており、ヒット率が下がり、平均サイクル数が閾値以下になった場合、出力色数を削減し、キャッシュのウエイ数を増加させる。例えば、キャッシュのフィルにかかるサイクル数をＦ、ヒット率をＨ、平均サイクル数の閾値をＴｈとし、次式を満たさない場合、出力色数を減らし、キャッシュのウエイ数を増やす。
【００３５】
Ｆ×（１−Ｈ）＋１×Ｈ≦Ｔｈ  （式１）
例えば、平均サイクル数を４以下に設定したい場合、ＴＨ＝４となり、このときのキャッシュのフィルにかかるサイクル数を５０とすると、上記式１は次のようになり、ヒット率が約９３．９％以上必要なことが分かる。
【００３６】
Ｈ≧（５０−４）／（５０−１）＝0.938775…
従って、ヒット率が上記値以下となった場合に出力色数を削減し、削減した色プレーンに割り当てられていたサブキャッシュを残った色プレーンに割り当て、ウエイ数を増加させる。例えば、上記設定の場合、モニタしていたヒット率が９３．９％未満となったとき、Ｙ（イエロー）データとＫ（ブラック）データに割り当てていたサブキャッシュ２０１ｂとサブキャッシュ２０１ｄを開放する。そして、新たにＣ（シアン）データ、Ｍ（マゼンタ）データの追加ウエイとして動作させる。
【００３７】
このように、複数のウエイとして動作させるため、キャッシュ制御部２０２の内部にはＬＲＵ（Least Recently Used）メモリが内蔵されている。このメモリはウエイ０、ウエイ１の何れか最近に使用されたウエイでない方（即ち、古いデータの方）を示しており、ミスヒットした時の格納先を表している。
【００３８】
従って、上記ウエイ数が追加された時、全てのエントリに対するＬＲＵメモリのデータは全て“１”に初期化される。この例では、サブキャッシュ２０１ｂ（２０１ｄ）が開放されたので、開放されたサブキャッシュ２０１ｂ（２０１ｄ）が最後に使用されたウエイとしてＬＲＵメモリのデータは初期化される。また、サブキャッシュ２０１ｂ（２０１ｄ）のダーティビットも全てセットされる（ダーティとして初期化される）。
【００３９】
尚、上述のヒット率の算出には、ダーティビットがセットされているアドレスは含まないものとする。これは、初期状態ではキャッシュにデータが格納されていないため、ダーティビットがセットされているアドレスもカウントしてしまうとヒット率が低くなってしまうためである。また、局所的な変動要因やウエイ数の切換タイミングを考慮して、ある程度の画素数の変換が終わった後、所定画素数単位でウエイ数切換の判定を行うのが現実的である。
【００４０】
更にヒット率が下がり、２ウエイでも上記式１が満たされない場合は、サブキャッシュ２０１ｃ、サブキャッシュ２０１ｄも開放し、４ウエイとして動作させる。４ウエイとして動作させるため、キャッシュ制御部２０２の内部には３つのＬＲＵメモリが内蔵されている。２つは上述した２ウエイ用のＬＲＵメモリ０，１であり、残りは上記２ウエイ間のＬＲＵメモリ２である。つまり、ＬＲＵメモリ２はサブキャッシュ２０１ａ、２０１ｂの２ウエイとサブキャッシュ２０１ｃ、２０１ｄの２ウエイで、最近に使用された２ウエイでない方（古いデータの方）を示している。そして、このＬＲＵメモリ３は示す古い方の２ウエイのＬＲＵメモリが示す古い方がキャッシュ更新先となる。
【００４１】
尚、２ウエイへの切換時と同様に、ＬＲＵメモリ１，２は４ウエイへの切換時に初期化される（ＬＲＵメモリ０は保持される）。また、開放されたサブキャッシュ２０１ｃ、２０１ｄのダーティビットも全てセットされる（サブキャッシュ２０１ａ、２０１ｂのダーティビットは保持される）。
【００４２】
この場合、２番目に古いデータが更新される場合があり、厳密にはＬＲＵとなっていないが、実用上差し支えない。
【００４３】
一方、キャッシュ制御部２０２が制御するセレクタ２０３〜２０５によってヒットしている方のデータが選択される。４出力の場合は図中、４出力の楕円（実線）で束ねた部分より出力される。また同様に、２出力の場合は図中、２出力の楕円（１点鎖線）で束ねた部分より出力される。
【００４４】
また、同時ヒット時の優先順位をサブキャッシュ２０１ａ＞サブキャッシュ２０１ｃ＞サブキャッシュ２０１ｂ、２０１ｄとすることで、１出力、２出力のポートを兼用できる。この場合、２出力のセレクタ２０３の出力及び４出力のサブキャッシュ２０１ａの出力（点線部）は１出力と兼用され、４出力のサブキャッシュ２０１ｃの出力（破線部）は２出力のセレクタ２０４の出力と兼用される。
【００４５】
尚、上述したヒット率の判定方法として、ミスヒットカウンタを用いても良い。通常、ミスヒットの数の方が少なく、ミスヒットの上限が限られているので、カウンタのビット数が削減できる。また、上述したヒット率による判定は、ミスヒットカウンタの値と処理したデータ数にミスヒット率を乗じた値とを比較することでも判定できる。
【００４６】
以上、プレスキャンなしの場合について説明したが、プレスキャン有り（又は同一画像の変換）の場合、プレスキャン時に同時処理数の判定のみ実施する。この場合、判定のみで良く、キャッシュをフィルする必要がないので、高速に処理できる。また、同時処理数を確定した後、本スキャンの処理を行うので、処理シーケンスが簡単になる。
【００４７】
［第２の実施形態］
次に、図面を参照しながら本発明に係る第２の実施形態について詳細に説明する。尚、第２の実施形態では、三次元ルックアップテーブル（３Ｄ−ＬＵＴ）にキャッシュ機能を適用したデータ変換装置を例に挙げて説明する。
【００４８】
図４は、第２の実施形態におけるキャッシュ部４００の構成例を示す図である。ここで、図４に示すキャッシュ部４００は、図１に示すキャッシュ部１０４及びヒット率判定部１０６に相当する。図４に示す例では、４つのサブキャッシュ４０１ａ〜４０１ｄによりキャッシュ部４００が構成されている。また、各サブキャッシュには、４つの異なるアドレスが入力可能に構成され、この４つのアドレスより１つを選択してキャッシュデータを読み出す。以下、第１の実施形態と異なる部分についてのみ説明する。
【００４９】
例えば、キャッシュ部４００にて３Ｄ−ＬＵＴを構成し、補間方法として四面体補間を用いる場合には、四面体補間の４頂点にあたる格子点データが必要である。この４頂点のアドレスは異なるので、４頂点を同時に出力するためには４つのキャッシュ機構が必要になる。つまり、ここでは４つのサブキャッシュ４０１ａ〜４０１ｄに各頂点データを割り振ることにより、４頂点データを同時に出力可能とするものである。
【００５０】
図５は、第２の実施形態におけるサブキャッシュの構成例を示す図である。尚、図５に示す５０１〜５０４は、第１の実施形態で説明した図３に示す３０１〜３０４に対応するものである。
【００５１】
図５に示すセレクタ５０５には、四面体補間の４頂点のアドレスが入力される。即ち、各軸の上位ビットで構成される四面体補間の基準点に対して、対角頂点のアドレスは各軸を全て＋１したものである。また、基準点に近い方の側頂点のアドレスは、補間時の重み係数となる各軸の下位ビットの最も大きい軸を＋１したものである。また、対角点に近い方の側頂点のアドレスは、補間時の重み係数となる各軸の下位ビットの最も大きい軸と、次に大きい軸を＋１したものである。
【００５２】
従って、各軸の下位２ビットの総和を求めると、その総和の下位２ビットでキャッシュを分離すれば、何れの場合においても４頂点の同時読み出しが可能となる。そこで、セレクタ５０５が各軸の下位２ビットの総和に対して予め決められた２ビットに合致する入力アドレスを選択する。例えば、サブキャッシュ４０１ａでは「００」となるアドレスを、サブキャッシュ４０１ｂでは「０１」となるアドレスを選択する。また、サブキャッシュ４０１ｃでは「１０」となるアドレスを、そしてサブキャッシュ４０１ｄでは「１１」となるアドレスを選択する。
【００５３】
次に、図４、図５を用いて、第２の実施形態におけるキャッシュ部４００の動作を説明する。
【００５４】
第２の実施形態においても、キャッシュ制御部４０２がキャッシュのヒット率を監視しており、ヒット率が下がり平均サイクル数が閾値以下になった場合、同時に出力する格子点数を削減し、キャッシュのウエイ数を増加させる。例えば、キャッシュのフィルにかかるサイクル数をＦ、各頂点のヒット率をＨ０，Ｈ１，Ｈ２，Ｈ３、平均サイクル数の閾値をＴｈとすると、１ウエイ（ダイレクトマッピング方式）の場合は次の式２となる。
【００５５】
Ｆ×（（１−Ｈ０）＋（１−Ｈ１）＋（１−Ｈ２）＋（１−Ｈ３））
＋１×Ｈ０×Ｈ１×Ｈ２×Ｈ３≦Ｔｈ  （式２）
一方、上記条件が満たされず、２ウエイとなった場合は、次の式３となる。
【００５６】
Ｆ×（（１−Ｈ０）＋（１−Ｈ１）＋（１−Ｈ２）＋（１−Ｈ３））
＋２×Ｈ０×Ｈ１×Ｈ２×Ｈ３≦Ｔｈ  （式３）
これは、キャッシュにヒットしても、４頂点の出力に２サイクルかかってしまうためである。このとき、セレクタ５０５は、各軸の総和の２ビットパターンの内、２つのビットパターンのアドレスを２回に分けてアクセスするように制御される。
【００５７】
更に、上記条件式２が満たされず、４ウエイとなった場合の平均サイクル数Ｃは、次の式４となる。
【００５８】
Ｃ＝Ｆ×（（１−Ｈ０）＋（１−Ｈ１）＋（１−Ｈ２）＋（１−Ｈ３））
＋４×Ｈ０×Ｈ１×Ｈ２×Ｈ３  （式４）
これは、キャッシュにヒットしても４頂点の出力に４サイクルかかってしまうためである。このとき、セレクタ５０５は、各軸の総和の２ビットパターン全て、即ち、４頂点のアドレスを４回に分けてアクセスするように制御される。
【００５９】
このように、第２の実施形態では、キャッシュの構成によりヒット時の処理サイクル数が異なってくる。従って、図１に示す補間部１０５は上述した構成に合わせて補間処理のサイクル数を変更するようにしても良い。
【００６０】
具体的には、１ウエイの時は１サイクルで処理するが、２ウエイ時は２サイクルで処理することで、消費電力を削減できる。更に、４ウエイ時は４サイクルで処理することで、一層、消費電力を削減できる。例えば、このような消費電力の削減は、２サイクル（又は４サイクル）中、１サイクルのみ演算部をアクティブにする、或いは２分の１（又は４分の１）の演算器を用いて演算を行い、２分の１（又は４分の３）の演算器を休止することで実現できる。
【００６１】
上述したように、第２の実施形態では、入力アドレスがサブキャッシュ毎に異なるため、各サブキャッシュのヒット率も異なってくる。そこで、サブキャッシュ毎にミスヒットカウンタを設け、ヒット率による判定は、各サブキャッシュの中でミスヒットカウンタの最大値を用いて判定しても良い。或いは、各サブキャッシュのミスヒットカウンタの総和を用いても良い。
【００６２】
また、ウエイ数の切換時に無効化するサブキャッシュは、２ウエイ×２に変更する時はミスヒットカウンタの値が大きい方を選択するのが良い。更に、４ウエイ×１に変更する時はミスヒットカウンタの最大値が含まれる方、２ウエイセットのミスヒットカウンタの総和が大きい方を選択するのが良い。
【００６３】
第２の実施形態では、サブキャッシュの数を４として説明してきたが、これに限らず、２又は４以上としても良いことは言うまでもない。また、キャッシュの更新アルゴリズムもＬＲＵに限定されることなく、また、ここで説明した方法に拠らず、公知のキャッシュ更新方法を用いても良い。
【００６４】
以上説明したように、実施形態によれば、色変換の出力色数を可変にできるので、入力データの存在範囲に偏りがある場合や相関性が強い場合、多数の出力色を同時に変換でき、処理速度が飛躍的に向上する。
【００６５】
［他の実施形態］
前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行する。これによっても、本発明の目的が達成されることは言うまでもない。
【００６６】
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【００６７】
このプログラムコードを供給するための記録媒体として、例えばフレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００６８】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、次の場合も含まれることは言うまでもない。即ち、プログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合である。
【００６９】
更に、記録媒体から読出されたプログラムコードがコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００７０】
【図１】実施形態におけるキャッシュ機構を用いたデータ変換装置の構成の一例を示す図である。
【図２】第１の実施形態におけるキャッシュ部２００の構成例を示す図である。
【図３】第１の実施形態におけるサブキャッシュの構成例を示す図である。
【図４】第２の実施形態におけるキャッシュ部４００の構成例を示す図である。
【図５】第２の実施形態におけるサブキャッシュの構成例を示す図である。
【符号の説明】
【００７１】
１０１  メモリアドレス生成部
１０２  メモリ
１０３  ＬＵＴアドレス生成部
１０４  キャッシュ部
１０５  補間部
１０６  ビット率
２００  キャッシュ部
２０１  サブキャッシュ
２０２  キャッシュ制御部
２０３  セレクタ
２０４  セレクタ
２０５  セレクタ
３０１  ビット分割部
３０２  タグメモリ
３０３  比較器
３０４  データメモリ
４００  キャッシュ部
４０１  サブキャッシュ
４０２  キャッシュ制御部
４０３  セレクタ
４０４  セレクタ
４０５  セレクタ
５０１  ビット分割部
５０２  タグメモリ
５０３  比較器
５０４  データメモリ
５０５  セレクタ
【図１】
2007316951.tif 000003
【図２】
2007316951.tif 000004
【図３】
2007316951.tif 000005
【図４】
2007316951.tif 000006
【図５】
2007316951.tif 000007