(57)【要約】【課題】演算処理の高速化とメモリ資源の効率的な活用とを両立する。【解決手段】偏り判定登録部５は、入力される演算命令に偏りがあるか否かを判定し、偏りがあると判定した場合に、入力される頻度の高い演算命令と演算回路の演算結果とを対応付けて可変テーブル４に登録する。選択部６、７は、入力された演算命令が可変テーブル４に登録されている場合には、可変テーブル４の出力を演算結果として選択して出力し、入力された演算命令が固定テーブル３に登録されている場合には、固定テーブル３の出力を演算結果として選択して出力する。【選択図】図１
2013167978.tif 000002
【特許請求の範囲】
【請求項１】
入力された演算命令に対する演算結果を出力する演算装置であって、
入力された演算命令に対して演算を行い、その演算結果を出力する演算回路と、
演算命令と演算結果とが対応付けられて読出可能に登録され、登録された内容に基づいて入力された演算命令に対応する演算結果を出力する固定テーブルと、
演算命令と演算結果とが対応付けられて書換可能に登録され、登録された内容に基づいて入力された演算命令に対応する演算結果を出力する可変テーブルと、
入力される演算命令に偏りがあるか否かを判定し、偏りがあると判定した場合に、入力される頻度の高い前記演算命令と前記演算回路の演算結果とを対応付けて前記可変テーブ
ルに登録する登録部と、
前記可変テーブルの出力と、前記固定テーブルの出力とのいずれかを演算結果として選択して出力する選択部と、
を備える演算装置。
【請求項２】
前記選択部は、
入力された演算命令が前記可変テーブルに登録されている場合には、前記可変テーブルの出力を演算結果として選択して出力し、
入力された演算命令が前記固定テーブルに登録されている場合には、前記固定テーブルの出力を演算結果として選択して出力し、
入力された演算命令が前記可変テーブル及び前記固定テーブルに登録されていない場合には、前記演算回路の出力を演算結果として選択して出力する、
請求項１に記載の演算装置。
【請求項３】
前記登録部は、
入力される頻度の高い複数の演算命令のオペランドの中心値を基準として所定範囲の値をオペランドとする複数の演算命令と、それぞれの演算命令を前記演算回路に入力したときの演算結果とを対応づけて前記可変テーブルに登録する、
請求項１又は２に記載の演算装置。
【請求項４】
前記登録部は、
入力される演算命令に偏りがあるか否かを繰り返し判定し、入力される演算命令に偏りがあると判定する度に、入力される頻度の高い前記演算命令と前記演算回路の演算結果とを対応付けて前記可変テーブルに上書き登録する、
請求項１乃至３のいずれか一項に記載の演算装置。
【請求項５】
前記可変テーブルには、
入力される頻度の高い前記演算命令と前記演算回路の演算結果との組み合わせのグループを複数組登録可能である、
請求項１乃至４のいずれか一項に記載の演算装置。
【請求項６】
前記登録部は、
入力される頻度の高い前記演算命令と前記演算回路の演算結果との組み合わせの前記可変テーブルへの登録数が、登録可能数を超える場合に、
演算時間の長い前記演算命令と前記演算回路の演算結果との組み合わせを優先して前記可変テーブルに登録する、
ことを特徴とする請求項１乃至５のいずれか一項に記載の演算装置。
【請求項７】
前記登録部は、
入力される頻度の高い前記演算命令と前記演算回路の演算結果との組み合わせの前記可変テーブルへの登録数が、登録可能数を超える場合に、
アクセス回数の高い前記演算命令と前記演算回路の演算結果との組み合わせを優先して前記可変テーブルに登録する、
ことを特徴とする請求項１乃至５のいずれか一項に記載の演算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、演算装置に関する。
【背景技術】
【０００２】
コンピュータによる演算は、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field-Programmable Gate Array）等のＬＳＩ（Large Scale Integration）によって設計されたＣＰＵ（Central Processing Unit）又は専用のＡＬＵ（Arithmetic Logic Unit）において、足し算、引き算、掛け算、割り算、シフト演算を実行することにより行われる。これらの演算は、命令の命令フェッチ、命令デコード、演算実行、結果のライトバックの手順で行われる。各手順は、動作クロックに対して数サイクル〜数十サイクルの間に行われる。演算時間に要するサイクル数が短いほど演算性能は高くなる。
【０００３】
さらに、複雑な演算を実行する場合は、メモリにルックアップテーブルを用意し、演算命令とその演算命令の演算結果とを予め格納しておく方法がとられる場合がある。演算回路で演算を実際に行う代わりに、演算命令に対応する演算結果をルックアップテーブルから出力させるようにすれば、演算時間をより短くすることができる。しかし、ルックアップテーブルを用いる方法では、幾つかの演算命令に対する演算結果を予め用意しておく必要があるため、汎用的な演算にこの方法を適用する場合には、莫大なメモリ容量を用意するか、ある限られた演算結果だけを参照するだけに留めなければならない。
【０００４】
また、固定テーブルに、予めサンプルされた演算結果を登録しておき、サンプルされた演算結果の線形補間により、関数演算を行うものが開示されている（例えば、特許文献１参照）。
【０００５】
演算時間を短縮するもう１つの方法として、キャッシュを使用する方法がある（例えば、特許文献２参照）。これは過去の演算結果をキャッシュに格納し、同じ演算を行う場合はキャッシュから演算結果を抽出することにより演算速度を上げる方法である。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平６−２０２７５２号公報
【特許文献２】特開２００２−２２９７７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記特許文献１に記載された方法では、演算処理を高速化することはできるが、線形補間を行っているため、演算結果として、必ずしも精度の高いものが得られるとは限らない。
【０００８】
また、上記特許文献２に記載された方法は、キャッシュがヒットしやすい演算に対しては有効であるが、ヒットしにくい（頻度の低い）演算に対しては効果が出にくい。ヒット率を高めるのであれば、キャッシュの容量を大きくする必要があるが、この場合はメモリ使用量が増大し、コスト高を招く。
【０００９】
この発明は、上記実情に鑑みてなされたものであり、演算処理の高速化とメモリ資源の効率的な活用とを両立することができる演算装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、この発明に係る演算装置は、
入力された演算命令に対する演算結果を出力する演算装置であって、
入力された演算命令に対して演算を行い、その演算結果を出力する演算回路と、
演算命令と演算結果とが対応付けられて読出可能に登録され、登録された内容に基づいて入力された演算命令に対応する演算結果を出力する固定テーブルと、
演算命令と演算結果とが対応付けられて書換可能に登録され、登録された内容に基づいて入力された演算命令に対応する演算結果を出力する可変テーブルと、
入力される演算命令に偏りがあるか否かを判定し、偏りがあると判定した場合に、入力される頻度の高い前記演算命令と前記演算回路の演算結果とを対応付けて前記可変テーブ
ルに登録する登録部と、
前記可変テーブルの出力と、前記固定テーブルの出力とのいずれかを演算結果として選択して出力する選択部と、
を備える。
【発明の効果】
【００１１】
この発明によれば、入力される演算命令に偏りがあると判定されると、入力される頻度が高い演算命令と演算結果とが可変テーブルに登録される。このようにすれば、メモリ使用量を増やすことなく、テーブルへの演算命令のヒット率を高めることができる。この結果、演算処理の高速化とメモリ資源の効率的な活用とを両立することができる。
【図面の簡単な説明】
【００１２】
【図１】この発明の実施の形態１に係る演算装置の概略的な構成を示すブロック図である。
【図２】図２（Ａ）は、固定テーブルに登録される演算命令と演算結果との関係を模式的に示す図である。図２（Ｂ）は、可変テーブルに登録される演算命令と演算結果との関係を模式的に示す図である。
【図３】図３（Ａ）乃至図３（Ｃ）は、図１の可変テーブルへ演算命令及び演算結果を登録する方法の一例を示す図である。
【図４】この発明の実施の形態２に係る演算装置の概略的な構成を示すブロック図である。
【図５】図４の偏り判定登録部による可変テーブルへ演算命令及び演算結果を登録する方法を説明するための図である。
【図６】この発明の実施の形態３に係る演算装置において、入力される頻度の高い演算命令の演算結果を可変テーブルに動的に上書き登録する方法を説明するための図である。
【図７】図７（Ａ）及び図７（Ｂ）は、可変テーブルの内容が更新される様子を示す図である。
【図８】図８（Ａ）乃至図８（Ｃ）は、この発明の実施の形態４に係る演算装置において、可変テーブルに演算命令のグループを複数登録する方法を説明するための図である。
【図９】図９（Ａ）乃至図９（Ｃ）は、この発明の実施の形態５に係る演算装置において、可変テーブルに複数のグループを登録する方法を説明するための図である。
【図１０】図１０（Ａ）乃至図１０（Ｃ）は、この発明の実施の形態６に係る演算装置において、可変テーブルに複数のグループを登録する方法を説明するための図である。
【発明を実施するための形態】
【００１３】
この発明の実施の形態について、図面を参照して詳細に説明する。
【００１４】
実施の形態１．
まず、この発明の実施の形態１について説明する。
【００１５】
図１には、この発明の実施の形態１に係る演算装置１の概略的な構成が示されている。演算装置１は、入力された演算命令に対する演算結果を出力する。演算命令はオペランドとオペレータとの組み合わせである。オペランドとは、演算の対象となる値や変数である。オペレータ（演算子）とは、演算内容を指示する記号などのことである。演算結果とは、オペランドをオペレータで演算した場合に得られる演算値である。
【００１６】
図１に示すように、演算回路２と、固定テーブル３と、可変テーブル４と、偏り判定登録部５と、選択部６、７とを備える。図１では、演算回路２では、演算命令８が入力されて演算結果９が出力される。
【００１７】
演算回路２は、入力された演算命令８に対して、演算を行い、演算結果を出力する。より具体的には、演算回路２は、入力された演算命令８をオペランドとオペレータとに分解し、オペランドをオペレータに応じて演算し、その演算結果を出力する。
【００１８】
固定テーブル３は、演算命令と演算結果とが対応付けられて読出可能に登録され、登録された内容に基づいて入力された演算命令に対応する演算結果を出力する。より具体的には、固定テーブル３は、演算命令と演算結果とが対応付けられて読出可能に登録され、入力された演算命令に対応する演算結果がある場合に、その演算結果を出力する。
【００１９】
固定テーブル３に登録される演算命令と演算結果との組み合わせは固定である。演算装置１の実際の運用に先だって、演算回路２に演算命令を入力したときに演算回路２から出力される演算結果とをサンプルし、そのときの演算命令と、サンプルされた演算結果との組み合わせが、固定テーブル３に登録されている。
【００２０】
固定テーブル３に登録される演算命令には、任意のものを用いることができる。ただし、登録される演算命令のオペレータやオペランドに偏りができるだけ出ないように（すなわちそれらが分散するように）、固定テーブル３に登録される演算命令が選択されるのが望ましい。
【００２１】
例えば、図２（Ａ）には、演算命令におけるあるオペレータでのオペランド（１入力）と、演算結果（１出力）との関係が模式的に示されている。図２（Ａ）では、横軸の目盛りの位置が、固定テーブル３に登録される演算命令のオペランドを示している。図２（Ａ）に示すように、固定テーブル３に登録される演算命令のオペランドは、その間隔が均等になるように、設定されている。
【００２２】
可変テーブル４は、演算命令と演算結果とが対応付けられて書換可能に登録され、登録された内容に基づいて入力された演算命令に対応する演算結果を出力する。より具体的には、可変テーブル４は、演算命令と演算結果とが対応付けられて書換可能に登録され、入力された演算命令に対応する演算結果がある場合に、その演算結果を出力する。可変テーブル４に登録される演算命令と演算結果の組み合わせは動的に変更可能である。
【００２３】
可変テーブル４には、後述するように、入力される頻度の高い演算命令が登録される。例えば、図２（Ａ）に示すように、入力される演算命令に偏りが出て、例えばＢで示される範囲のオペランドの演算命令の入力頻度が高い場合には、その範囲のオペランドを有する演算命令が、可変テーブル４に登録される。
【００２４】
図２（Ｂ）には、Ｂの範囲でのオペランドと演算結果との関係が模式的に示されている。図２（Ｂ）では、横軸の目盛りの位置が、可変テーブル４に登録される演算命令のオペランドを示している。図２（Ｂ）に示すように、可変テーブル４に登録される演算命令のオペランドも、その間隔が均等になるように、設定されているが、実際には均等でなくてもよい。
【００２５】
偏り判定登録部５は、入力される演算命令に偏りがあるか否かを判定する。さらに、偏り判定登録部５は、入力される演算命令に偏りがあると判定した場合に、入力される頻度の高い演算命令と演算回路２の演算結果とを対応付けて可変テーブル４に登録する。この実施の形態では、偏り判定登録部５が登録部に対応する。
【００２６】
選択部６は、入力される演算命令８が固定テーブル３に登録されている場合、固定テーブル３の出力を演算結果として選択して出力する。一方、選択部６は、入力される演算命令８が固定テーブル３に登録されていない場合、演算回路２の出力を演算結果として選択して出力する。
【００２７】
選択部７は、入力される演算命令８が可変テーブル４に登録されている場合、可変テーブル４の出力を演算結果として選択して出力する。一方、選択部７は、入力される演算命令８が可変テーブル４に登録されていない場合、選択部６の出力を、演算結果として選択して出力する。演算装置１は、選択部７の出力を、最終的な演算結果として出力する。
【００２８】
要するに、選択部６、７は、入力された演算命令８が可変テーブル４に登録されている場合には、可変テーブル４の出力を演算結果として選択して出力する。選択部６、７は、入力された演算命令８が固定テーブル３に登録されている場合には、固定テーブル３の出力を演算結果として選択して出力する。さらに、選択部６、７は、入力された演算命令８が可変テーブル４及び固定テーブル３に登録されていない場合には、演算回路２の出力を演算結果として選択して出力する。
【００２９】
次に、この実施の形態に係る演算装置１の動作について説明する。
【００３０】
ここで、演算装置１が、複数の演算命令を連続して実行する場合について考える。図３（Ａ）乃至図３（Ｃ）には、可変テーブル４への登録方法を説明するための図が示されている。図３（Ａ）に示すように、複数の演算命令が、グループＡ、Ｂ、Ｃ、Ｄのいずれかに分けられているものとする。グループＡ、Ｂ、Ｃ、Ｄは、例えば、オペレータが同一で、かつ、オペランドの値が近いものとしてまとめられている。
【００３１】
偏差判定登録部５は、演算命令が入力される度に、演算命令を記憶するとともに、入力された演算命令を各グループに分けて、各グループの入力数を加算していく。そして、偏差判定登録部５は、所定数の演算命令が入力されると、グループＢに分類される演算命令の入力数が、予め定めた閾値を越えた場合に、入力されるグループＢに分類される演算命令に偏っており、入力される演算命令に偏りがあると判定する。一方、偏差判定登録部５は、いずれのグループの演算命令の入力数も閾値を超えていなければ、入力される演算命令に偏りがないと判定する。
【００３２】
入力される演算命令に偏りがあると判定した偏差判定登録部５は、保持する演算命令のうちのグループＢに分類される演算命令と、その演算命令が演算回路２に入力されたときの演算結果とを、可変テーブル４に登録する。演算命令と演算結果との組み合わせが所定数登録されると、演算装置１は、グループＢに分類される演算命令が入力された場合に、演算回路２の出力ではなく、可変テーブル４の出力を演算結果として出力するようになる。
【００３３】
以上詳細に説明したように、この実施の形態によれば、演算命令８の入力頻度の偏りが判定されると、入力される頻度が高い演算命令と演算結果とが可変テーブル４に登録される。このようにすれば、メモリ使用量を増やすことなく、可変テーブル４へのヒット率を高めることができる。この結果、演算処理の高速化とメモリ資源の効率的な活用とを両立することができる。
【００３４】
なお、偏差判定登録部５における入力される演算命令の偏りの判定方法は、上述のものには限られない。例えば、各グループの演算命令の入力数の比率が所定の比率を上回る場合に、入力される演算命令に偏りがあると判定するようにしてもよい。
【００３５】
実施の形態２．
次に、この発明の実施の形態２について説明する。
【００３６】
この実施の形態では、入力される頻度が高いグループの演算命令と演算結果との組み合わせを可変テーブル４に登録する点については、上記実施の形態１と同じである。この実施の形態では、可変テーブル４への演算命令及び演算結果の組み合わせを登録する方法が、上記実施の形態１と異なる。
【００３７】
図４には、この実施の形態に係る演算装置の概略的な構成が示されている。図４に示すように、この実施の形態では、偏り判定登録部５が、演算回路２に対して演算命令を入力できる点が、上記実施の形態１と異なっている。
【００３８】
図５には、偏り判定登録部５により可変テーブル４へ演算命令及び演算結果の組み合わせを登録する方法を説明するための図が示されている。偏り判定登録部５は、演算命令のグループに偏りがあると判定した場合（図３参照）、入力される頻度が高い演算命令のグループのオペランド（三角でしめされる入力された演算命令のオペランド）の中心値を算出する。
【００３９】
さらに、図５に示すように、偏り判定登録部５は、入力される頻度が高いグループのオペランドの中心値から、＋α、−βの範囲をオペランドとする複数の演算命令を新たに演算回路２に入力する。演算回路２は、入力された演算命令に対する演算結果を偏り判定登録部５に出力する。偏り判定登録部５は、演算回路２に出力した演算命令と、入力された演算結果との組み合わせを可変テーブル４に登録する。
【００４０】
すなわち、この実施の形態２に係る演算装置１では、演算命令の入力頻度に偏りがあると判定される場合、入力頻度の高い演算命令のグループのオペランドの中心値を基準とする所定範囲にオペランドが含まれる複数の演算命令各々について演算回路２で演算が行われ、それらの演算命令と演算結果との組み合わせが可変テーブル４に登録される。
【００４１】
その後、オペランドが−βから＋αの範囲内にある演算命令については、演算回路２の出力ではなく、可変テーブル４の出力が演算装置１の演算結果として選択され、出力される。これにより、演算回路２による演算結果の出力に比べ、演算時間を、各段に短くすることができる。−βから＋αの範囲内にあるオペランドの演算命令は、入力頻度の高い演算命令の近傍にあるため、入力される可能性が高い演算命令であるとみなすことができる。そこで、この実施の形態では、これらの近傍にある演算命令についても、可変テーブル４に登録しておく。このようにすれば、可変テーブル４のヒット率をさらに向上させることができる。
【００４２】
以上詳細に説明したように、この実施の形態によれば、入力される可能性の高い演算命令についても、可変テーブル４に記憶しておくことができるので、可変テーブル４のヒット率をさらに向上することができる。
【００４３】
＋αとーβは、その値を適宜調整することができる。これにより、可変テーブル４に登録される演算命令のオペランドの範囲を、実際に入力される頻度の高い演算命令のオペランドの範囲に合わせることができる。これにより、可変テーブル４のヒット率をさらに高めることができる。
【００４４】
実施の形態３．
次に、この発明の実施の形態３について説明する。
【００４５】
この実施の形態３に係る演算装置１の構成は、上記実施の形態２に係る演算装置１の構成と同じである。この実施の形態では、前提として、可変テーブル４に、オペランドが所定の範囲内にある演算命令と演算結果との組み合わせのグループを既に登録済みであるものとする。
【００４６】
偏差判定登録部５は、入力される演算命令に偏りがあるか否かを繰り返し判定する。すなわち、偏差判定登録部５は、可変テーブル４への演算命令及び演算結果の組み合わせの登録後も、繰り返し（例えば定期的に）演算命令を監視する。そして、偏差判定登録部５は、入力される演算命令に新たに偏りが生じてきた場合、入力される頻度の高い演算命令を変更し、変更された再度演算回路３で演算を行い、新たな演算命令と演算回路３の演算結果との組み合わせを可変テーブル４に登録する。
【００４７】
このとき、偏差判定登録部５は、入力される頻度の高い演算命令と演算回路２の演算結果との組み合わせを可変テーブル４に上書き登録する。この上書きにより、可変テーブル４の内容は、新たな内容に更新される。
【００４８】
図６には、入力される頻度の高い演算命令の演算結果を可変テーブル４に動的に上書き登録する方法を説明するための図が示されている。
【００４９】
図３に示すように、演算命令のグループに偏りがあると判定された場合、偏り判定登録部５は、図６に示すように、入力頻度の高い演算命令のオペランドの中心値から予め定めた＋α、−βの範囲にオペランドがある複数の演算命令をそれぞれ演算回路２に入力する。さらに、偏り判定登録部５は、演算回路２の演算結果を入力する。そして、偏り判定登録部５は、演算命令と演算回路２の演算結果との組み合わせを可変テーブル４に登録する。これにより、図７（Ａ）に示すように、可変テーブル４には、グループＢの演算命令が登録される。
【００５０】
その後も、偏り判定登録部５は、入力される演算命令を監視している。入力される頻度の高い演算命令に偏りがあると判定した場合、偏り判定登録部５は、可変テーブル４に登録する演算命令とその演算結果との組み合わせを動的に変更する。例えば、可変テーブル４には、図６に示す＋α、−βの範囲にオペランドがある演算命令とその演算結果との組み合わせを可変テーブル４に登録しているものとする。
【００５１】
偏り判定登録部５は、新たに演算命令に偏りがあると判定すると、入力される頻度が高い演算命令のオペランドの新たな中心値から＋α’、−β’の範囲にあるオペランドがある演算命令を、再度演算回路２に演算させ、それらの演算命令と演算結果との組み合わせを新たに可変テーブル４に上書き登録する。これにより、例えば、可変テーブル４に登録された演算命令のグループは、グループＢ（図７（Ａ）参照）からグループＣ（図７（Ｂ）参照）に更新される。なお、＋α’、−β’は、＋α、−βと同じであってもよいし、異なっていてもよい。
【００５２】
以上詳細に説明したように、この実施の形態３によれば、偏り判定登録部５は、入力される演算命令の偏りを繰り返し検出し、その都度、入力頻度が高い演算命令及び演算結果との組み合わせを登録し直すことで、可変テーブル４に登録される演算命令と演算結果との組み合わせを動的に変更する。このようにすれば、入力される演算命令の偏りにズレが発生した場合でも、可変テーブル４の登録内容をそのズレに合わせて変化させることができるので、可変テーブル４のヒット率の低下を防止することができる。この結果、演算処理の高速化を維持し続けることができる。
【００５３】
実施の形態４．
次に、この発明の実施の形態４について説明する。
【００５４】
上記実施の形態３に係る演算装置１では、偏り判定登録部５は、入力される演算命令に偏りがあると判定した場合に、入力される頻度の高い演算命令のグループを更新した。これに対し、この実施の形態では、偏り判定登録部５は、過去に登録された演算命令と演算結果の組み合わせを可変テーブル４から消去することなく、新たな演算命令と演算結果の組み合わせを可変テーブル４に登録する。すなわち、この実施の形態では、演算命令と演算結果の組み合わせのグループを可変テーブル４に複数組登録できるようにしている。
【００５５】
図８（Ａ）乃至図８（Ｃ）には、可変テーブル４に演算命令のグループを複数登録する方法を説明するための図である。図８（Ａ）に示すように、複数の演算命令が、グループＡ、Ｂ、Ｃ、Ｄに分割されているものとする。ここで、グループＢ、Ｄのように所定の閾値を越えたグループが複数ある場合、偏り判定登録部５は、グループＢ、Ｄの演算命令と演算結果との組み合わせをそれぞれ可変テーブル４に登録する。
【００５６】
以上詳細に説明したように、この発明の実施の形態４に係る演算装置１は、入力される頻度の高い演算命令のグループを複数登録する。これにより、入力される頻度の高い演算命令の集団が局所的に複数存在する場合でも、可変テーブル４を参照して演算結果を得ることができるので、可変テーブル４のヒット率の低下を防ぐことができる。この結果、演算処理の高速化を実現することができる。
【００５７】
実施の形態５．
次に、この発明の実施の形態５について説明する。
【００５８】
この実施の形態５に係る演算装置１は、可変テーブル４への演算命令の登録可能数を超えて、可変テーブル４に新たに入力される頻度の高い演算命令のグループを登録しなければならない場合、演算に要する時間の長い（演算コストの高い）演算命令と演算結果との組み合わせのグループを、優先的に可変テーブル４に登録する。なお、偏り判定登録部５は、各グループの演算コストを保持している。
【００５９】
図９（Ａ）乃至図９（Ｃ）には、可変テーブル４への入力頻度の高い演算命令の登録数が、登録可能数を超えた場合に、演算時間の高い演算結果を優先的に登録する方法を説明するための図が示されている。ここで、図９（Ａ）に示すように、演算命令のグループＡ、Ｂ、Ｃ、Ｄは、可変テーブル４に既に登録済みであり、可変テーブル４の登録数は、登録可能数に達しているものとする。
【００６０】
ここで、図９（Ｂ）に示すように、演算命令の新たなグループＥが閾値を越えた場合について考える。この場合、偏り判定登録部５は、可変テーブル４の登録数がすでに登録可能数に達しているので、演算時間の長い演算命令（演算コストの高い演算命令）についての演算命令と演算結果との組み合わせを優先的に可変テーブル４に登録する。
【００６１】
例えば、グループＡの演算コストは”１０”、グループＢは”５”、グループＣは”２”グループＤは”４”、グループＥは”８”であるものとする。この場合、図９（Ｃ）に示すように、偏り判定登録部５は、演算コストの一番低いグループＣの演算結果を可変テーブル４から削除し、新たにグループＥの演算結果を可変テーブル４に登録する。
【００６２】
以上詳細に説明したように、この発明の実施の形態５に係る演算装置１では、可変テーブル４の登録可能数を超えて、新たに可変テーブルに偏差グループを登録しなければならない場合でも、演算コスト（処理時間）の高い演算結果を優先的に可変テーブルに登録するので、演算時間を極力短くして、演算処理の高速化を実現することができる。
【００６３】
実施の形態５．
次に、この発明の実施の形態５について説明する。
【００６４】
実施の形態５に係る演算装置１では、可変テーブル４の登録可能数を超えて、新たに可変テーブル４に入力頻度の高い演算命令のグループを登録しなければならない場合、可変判定登録部５は、アクセス回数の高い演算結果を優先的に可変テーブル４に登録する。
【００６５】
図１０（Ａ）乃至図１０（Ｃ）には、この実施の形態において、可変テーブル４への演算命令の登録方法を説明するための図が示されている。図１０（Ａ）に示すように、演算命令のグループＡ、Ｂ、Ｃ、Ｄは、可変テーブル４に演算結果を既に登録済みであり、可変テーブルの登録可能数に達しているものとする。偏り判定登録部５は、各グループへのアクセス数をカウントし、保持している。図１０（Ａ）には、各グループのアクセス数も示されている。
【００６６】
ここで、図１０（Ａ）に示すように、演算命令の他のグループＥの入力数が閾値を越えたものとする。偏り判定登録部５は、既に可変テーブル４の登録数が登録可能数に達しているので、アクセス数の高いものを優先的に可変テーブル４に登録する。
【００６７】
例えば、図１０（Ｂ）に示すように、グループＡのアクセス回数は”２”、グループＢは”１”、グループＣは”５”グループＤは”８”であるので、偏り判定登録部５は、アクセス回数の一番低いグループＢの演算結果を可変テーブル４から削除し、新たにグループＥの演算結果を可変テーブルに登録する。
【００６８】
以上詳細に説明したように、この実施の形態５に係る演算装置１では、アクセス回数の高い演算命令と演算結果との組み合わせを優先的に可変テーブル４に登録するので、可変テーブル４に登録される組み合わせをアクセス回数の高いものに維持することができる。この結果、可変テーブル４のヒット率の低下を防止して、高速な演算処理を実現することができる。
【００６９】
なお、偏り判定登録部５における演算命令の入力頻度の判定は、上記各実施の形態で説明したものには限られない。例えば、偏り判定登録部５は、同じ演算命令が複数回（例えば３回）続けて入力されたことを条件として偏りを判定するようにしてもよい。
【００７０】
なお、上記各実施の形態では、固定テーブル３、可変テーブル４のサンプルを用いた線形補間により、演算結果を求めるようにしてもよい。
【００７１】
また、上記各実施の形態では、演算装置１の出力を、演算回路２の出力か、固定テーブル３の出力か、可変テーブル４の出力かのいずれかとした。しかしながら、可変テーブル４に所定量のサンプルが登録された場合には、選択部６、７は、演算回路２を選択せずに、固定テーブル３の出力と、可変テーブル２の出力とのいずれかを用いて線形補間により得られた演算値を、演算結果として出力するようにしてもよい。
【００７２】
また、上記各実施の形態では、偏り判定登録部５は、演算命令の入力頻度に偏りがないと判定した場合に、可変テーブル４のサンプルを消去するようにしてもよい。
【００７３】
また、上記各実施の形態において、可変テーブル４に複数のグループが登録されており、新たなグループを、登録されたグループに上書きする場合には、アクセス時間が最も古いグループを優先して、可変テーブル４に残すようにしてもよい。
【００７４】
また、上記実施の形態では、演算命令と演算結果との複数の組み合わせ、すなわちグループ単位で、可変テーブル４の登録、更新等を行ったが、１つの組み合わせについて、可変テーブル４への登録、更新等を行うようにしてもよい。
【００７５】
また、偏り判定登録部５を、演算命令の偏りを判定する判定部と、可変テーブル４へのサンプルの登録を行う登録部に分けてもよい。
【００７６】
この発明は、この発明の広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施の形態は、この発明を説明するためのものであり、この発明の範囲を限定するものではない。すなわち、この発明の範囲は、実施の形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、この発明の範囲内とみなされる。
【産業上の利用可能性】
【００７７】
この発明は、プロセッサ内に組み込まれる演算装置に好適である。
【符号の説明】
【００７８】
１    演算装置
２    演算回路
３    固定テーブル
４    可変テーブル
５    偏り判定登録部
６、７    選択部
８    演算命令
９    演算結果
【図１】
2013167978.tif 000003
【図２】
2013167978.tif 000004
【図３】
2013167978.tif 000005
【図４】
2013167978.tif 000006
【図５】
2013167978.tif 000007
【図６】
2013167978.tif 000008
【図７】
2013167978.tif 000009
【図８】
2013167978.tif 000010
【図９】
2013167978.tif 000011
【図１０】
2013167978.tif 000012