(57)【特許請求の範囲】
【請求項１】
タグレジスタ及びキャッシュデータメモリを備えたキャッシュ構造を利用した算術演算遂行の方法において、
複数の知られているオペランドを前記タグレジスタに貯蔵し、前記複数の知られているオペランドの各々は算術演算から誘導された結果を有し、前記結果を前記キャッシュデータメモリ内の該当位置に貯蔵するステップと、
算術演算が遂行される新たなオペランドを前記タグレジスタに入力するステップと、
前記知られている複数のオペランドと前記新たなオペランドとを比較するステップと、
前記知られているオペランドのうちに前記新たなオペランドと一致するものがあるか否かを判別し、
一致するものが存在する場合には、前記新たなオペランドと一致するオペランドに対応する結果を前記キャッシュデータメモリから出力するステップと、
一致するオペランドが存在しない場合には、前記知られているオペランドと前記新たなオペランドとが部分的に一致するか否かを判別するステップと、
前記知られているオペランドのうちで前記新たなオペランドと一致する上位ビットを有するオペランドを選択するステップと、
一番多く一致する上位ビットを有するオペランドに対応する前記結果を前記キャッシュデータメモリからアクセスするステップと、
前記知られているオペランドの一致した上位ビットから導出されてアクセスされた結果の第１部分を決定するステップと、
前記第１部分の外にアクセスされた結果の第２部分をマスキングするステップと、
マスキングされた前記結果を第１部分結果として提供するステップとを含むことを特徴とするコンピュータ算術演算のための部分一致部分出力キャッシュの算術演算方法。
【請求項２】
第２部分結果を発生させるために、前記新たなオペランドの一致する前記上位ビット以外のビットに対する算術演算を遂行するステップと、
前記第１部分結果と前記第２部分結果とを結合して最終結果を出力するステップとを含むことを特徴とする請求項１に記載のコンピュータ算術演算のための部分一致部分出力キャッシュの算術演算方法。
【請求項３】
前記算術演算は前記新たなオペランドの平方根演算であることを特徴とする請求項１に記載のコンピュータ算術演算のための部分一致部分出力キャッシュの算術演算方法。
【請求項４】
前記算術演算は割り算であり、前記新たなオペランドは除数であることを特徴とする請求項１に記載のコンピュータ算術演算のための部分一致部分出力キャッシュの算術演算方法。
【請求項５】
前記算術演算は掛け算であり、前記新たなオペランドは被乗数であることを特徴とする請求項１に記載のコンピュータ算術演算のための部分一致部分出力キャッシュの算術演算方法。
【請求項６】
算術演算を遂行するためのキャッシュ装置において、
各々が算術演算から導出された該当結果を有する、知られている複数のオペランドを貯蔵するためのタグレジスタと、
前記知られているオペランドの算術演算から導出された結果を貯蔵するためのキャッシュデータメモリと、
算術演算が遂行される新たなオペランドを前記知られている複数のオペランドと比較するための、前記タグレジスタ内に備えられた比較ロジックとを含み、
前記知られているオペランドのうちの１つが前記新たなオペランドと一致すると、前記キャッシュデータメモリが前記新たなオペランドと一致する、前記知られているオペランドに対応する結果を出力し、
前記キャッシュ装置が、さらに
共通ロジックレベルを有するデータグループを検出し、前記新たなオペランドの上位ビットと一致する一番多い数の上位ビットを有する、知られているオペランドを検出するためのロジックグループ検出器と、
一番多く一致する上位ビットを有する、知られているオペランドの算術演算から導出された結果を部分的にマスキングし、前記知られているオペランドの一致した上位ビットから導出された該当結果の第１部分を通過させるため、前記第１部分を除いた前記該当結果の第２部分をマスキングするためのマスキングロジックと、
前記該当結果の前記第１部分をマルチプレクシングするためのマルチプレクサを含む演算ユニットとを含むことを特徴とするコンピュータ算術演算のための部分一致部分出力キャッシュ装置。
【請求項７】
前記キャッシュ装置は第２マルチプレクサを含み、
前記演算ユニットは第２部分結果を発生させるために、前記一致した上位ビットを除いた前記新たなオペランドのビットに対する算術演算を遂行し、前記第２マルチプレクサは前記第２部分結果を前記演算ユニットでマルチプレクシングし、前記第２部分結果は前記第１部分結果と結合されて最終結果を形成することを特徴とする請求項６に記載のコンピュータ算術演算のための部分一致部分出力キャッシュ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はキャッシュメモリと共にコンピュータ算術演算を遂行する装置及び方法に係り、より詳細には、部分出力が可能なキャッシュメモリを備えた装置及び方法に関する。
【０００２】
【従来の技術】
コンピュータは、掛け算、繰り返されるシフト（shift）を通じたデータの操作による割り算、足し算、そして、引き算のような算術演算（arithmetic operations）を遂行する。そして、結果を導出するために、データの頻繁なアクセス及び操作上のサイクル（operational cycles）を必要とする。平方根（square root）演算のような複雑な演算機能や、三角関数（trigonometry functions）演算などを遂行するための普通のコンピューティングプロセッサは、非常に時間消費的な特徴を有する。そして、このようなコンピューティングプロセッサは幾つかのアプリケーションで、適用が容易ではない問題点があった。
【０００３】
さらに複雑な算術演算のうち、一部はルックアップテーブル（look-up table）を使用できるが、様々な演算にルックアップテーブルを適用するためには、ルックアップテーブルの大きさが十分に大きくなければならない。もし、遂行される演算で１ビットだけが違っても、ルックアップテーブルは正確な機能を遂行できず、ルックアップテーブルから導出されるデータも正しくない。従って、正確な結果を得るためには、演算の全ての数の桁に対する全体計算を再び遂行しなければならない。
【０００４】
複雑な算術演算を遂行する他の方法として、例えば、サットクリフ(Sutcliffe)によって取得された米国特許（USP  4,734,878）“CIRCUIT FOR PERFORMING SQUARE ROOT FUNCTIONS”のように専用回路（dedicated circuitry）を使用する方法がある。しかし、専用回路は時間消費は少ないが、追加的なハードウェアを必要とするため、特定関数だけに使用される。サットクリフによる専用回路はただ平方根演算だけを遂行でき、掛け算器（multiplier）はただ掛け算演算だけを遂行する。
【０００５】
キャッシュメモリ（cache memory）は高速RAM(Random Access Memory)として用いられ、CPU(Central Processing Unit)は普通のメモリよりキャッシュメモリをより速くアクセスすることができる。一般的に、キャッシュメモリはCPUによって頻繁にアクセスされるデータを貯蔵するためのメモリである。CPUはキャッシュメモリからアクセスされたデータを使ってより多数の演算を遂行することができる。また、この演算は普通のメモリからアクセスされたデータを用いて遂行される演算よりも高速に遂行することが出来る。
【０００６】
キャッシュメモリはCPUによって直接アクセスされ（例えば、外部メモリ管理ユニット（external memory management unit）を）経由しないで）、CPUとキャッシュメモリとの間の信号伝達時間を縮めるために、物理的にCPUに近いところに位置する。Alpha AXP 21064マイクロプロセッサ内のデータキャッシュの動作は、１９９６年、David  A.  PaternsとJohn  L.  HennessyによってMorgan Kaufmann Publishers Inc.で出版された“Computer   Architecture  A  Quantitive   Approach”のpp.380〜383に説明されている。CPUがリード又はフェッチ(fetch)動作を遂行すると、データ(data)又は命令語（instructions）がキャッシュ内にあるかが判別される。もし、データ又は命令語がキャッシュ内に存在すると、高速でアクセスされ、もし、そうではないと、データ又は命令語は普通のメモリ（例えば、DRAM又はROM）からフェッチされ、消費時間が長くなる。
【０００７】
図１は、一般的なキャッシュメモリの構成を示す図である。キャッシュメモリ１０は、プロセッサによって最近又は頻繁にアクセスされたデータ、アドレス又はファイルを貯蔵するための多数のバッファを備えたキャッシュタグ１１を含む。キャッシュメモリ１０は、タグに貯蔵されたデータと一番最近に入力されたデータとを比較するための回路を含む。図１に示すように、XOR（exclusive OR）ゲートはキャッシュタグ１１内に備えられた各バッファの各々のビットに連関している。新たに入力されたデータがキャッシュタグ１１内のバッファのうち、１つに貯蔵されたデータと一致すると、実際比較結果（true comparison）がゲート１５、１６乃至１９から出力される。キャッシュデータ１２はキャッシュタグ１１内の各バッファに対応するデータを貯蔵するファイルである。対応するゲート１５、１６、…、１９から取り込んだ実際比較結果はキャッシュデータ１２の該当位置にあるq4、q3、q2、…、q0として出力される。図１に示されたキャッシュは５ビット幅を有する。
【０００８】
キャッシュメモリは、高速演算を遂行する演算装置のためのデータ貯蔵装置（data storing device）として有用である。例えば、図１に示されたようなキャッシュメモリはキャッシュタグ１１にオペランド（operands）を貯蔵し、キャッシュデータ１２に対応する演算結果を貯蔵する。もし、先に遂行される同一な算術演算に関するオペランドがキャッシュタグ１１内で発見されると、その算術演算はバイパス（bypass）される。このような場合、キャッシュはルック-アップテーブルとして使用され、アクセス時間はルック-アップテーブルROMと同程度に縮まる。しかし、ルック-アップテーブルROMにおいて、ルック-アップテーブルモードでのキャッシュの使用は、オペランドがキャッシュタグに貯蔵されたデータと正確に一致する場合だけ、全体処理量を減少させるにとどまる。従って、部分的に一致するオペランドに対する演算結果を部分的に出力できる演算装置に使用されるキャッシュメモリを備えた装置が要求される。
【０００９】
【発明が解決しようとする課題】
本発明は、前述の問題点を解決するために提案されたもので、TAGレジスタ及びキャッシュデータメモリを備えたキャッシュ構造及びこれを利用した算術演算遂行方法を提供することを目的とする。
【００１０】
【課題を解決するための手段】
前述の目的を達成するための本発明の特徴によると、TAGレジスタ及びキャッシュデータメモリを備えたキャッシュ構造を利用した算術演算遂行方法は、多数の知られているオペランドをTAGレジスタに貯蔵し、各々のオペランド算術演算から誘導された結果を有する。結果はキャッシュデータメモリ内の該当位置に貯蔵され、遂行される算術演算に対する新たなオペランドをTAGレジスタに入力させ、知られている多数のオペランドと新たなオペランドとを比較し、もし、知られているオペランドのうち、新たに入力されたオペランドと一致するものがあるか否かを判別し、判別の結果、一致するものがあると、新たなオペランドと一致するオペランドに対応する結果をキャッシュデータメモリから出力する。
【００１１】
望ましい実施形態において、前記方法は、判別ステップで一致するオペランドが存在しない場合には、知られているオペランドと新たなオペランドとが部分的に一致するか否かを判別し、知られているオペランドのうち、新たなオペランドと一致する上位ビット(MSBs)を有するオペランドを選択し、一番多く一致する上位ビット(MSBs)を有するオペランドに対応する結果をキャッシュデータメモリからアクセスし、知られているオペランドの一致した上位ビットから導出されてアクセスされた結果の第１部分を決定し、第１部分の外にアクセスされた結果の第２部分をマスキングし、マスキングされた結果を第１部分結果として提供する。
【００１２】
望ましい実施形態において、前記方法は、第２部分結果を発生させるために、一致された上位ビットの外に該当する新たなオペランドのビットに対する算術演算を遂行し、第１部分結果と第２部分結果とを結合して最終結果を出力する。
【００１３】
望ましくは、前述の本発明による方法は、平方根又は掛け算演算のような算術演算を遂行することを特徴とする。
【００１４】
算術演算の遂行のために提供されるキャッシュ装置は、各々が算術演算から導出された該当結果を有する、知られている多数のオペランドを貯蔵するためのタグレジスタと、知られているオペランドに対応する結果を貯蔵するためのキャッシュデータメモリと、遂行される算術演算のための新たなオペランドを知られている多数のオペランドと比較するための、タグレジスタ内に備えられた比較ロジックとを含む。ここで、知られているオペランドのうちの１つが新たなオペランドと一致すると、キャッシュデータメモリは新たなオペランドと一致する知られているオペランドに対する知られている結果を出力する。
【００１５】
キャッシュ装置は、共通ロジックレベル（common logic level）を有するデータグループを検出し、新たなオペランドの上位ビット（MSBs）と一致する一番多い数の上位ビット（MSBs）を有する、知られているオペランドを検出するためのロジックグループ検出器（logic group detector）と、一番多く一致する上位ビット（MSBs）を有する、知られているオペランドに対応する結果を部分的にマスキングし、知られているオペランドの一致した上位ビット（MSBs）から導出された該当結果の第１部分を通過させ、第１部分を除いた該当結果の第２部分をマスキングするためのマスキングロジック（masking logic）と、算術ユニット（arithmetic unit）で該当結果の第１部分をマルチプレクシングをするためのマルチプレクサとを含む。
【００１６】
望ましい実施形態において、本発明によるキャッシュ装置は第２マルチプレクサを含む。ここで、演算ユニットは第２部分結果を発生させるために一致する上位ビット（MSBs）を除いた新たなオペランドのビットに対する算術演算を遂行し、第２マルチプレクサは第２部分結果を演算ユニットでマルチプレクシングする。第２部分結果は第１部分結果と結合されて最終結果を形成する。
【００１７】
【発明の実施の形態】
以下、本発明の実施の形態を添付した図２乃至図６を参照して詳細に説明する。
【００１８】
もし、現在のオペランド（current operand）が同一な算術演算を遂行した以前のオペランド（previous operand）と同一の場合には、本発明の演算用キャッシュ（operational cache）は以前に遂行した算術演算結果を貯蔵し、結果データ（resultant data）を出力する。もし、現在のオペランドが演算用キャッシュに貯蔵された以前のオペランドと部分的に一致すると、本発明の演算用キャッシュは部分的な演算結果を出力する。本発明による演算用キャッシュを使用した演算ユニットの構造及び動作を以下説明する。
【００１９】
図２は、平方根演算を遂行する演算ユニットの構成を示す図である。図２に示された演算ユニットは本発明による部分一致部分出力（partical match patical output:以下PMPOと呼ぶ）キャッシュを示す。例示された本発明による演算装置は、PMPOキャッシュタグ２１とPMPOキャッシュデータ２２とで構成されたPMPOキャッシュ１００を含む。平方根モジュール２７は被平方根数Ｘの平方根を計算するためのソフトウェア又はハードウェアである。平方根モジュール２７は平方根演算を遂行するためのプログラミングステップ又はアルゴリズムで構成される。
平方根演算は１９９３年Israel Korenによって ISBN D-13-151952-2に掲載された“Computer Arithmetic Algorithms”の第７章の“Restoring Division Scheme”と概念的に同一に平方根を計算する“完全平方”（completing the square）方法で遂行される。また、平方根モジュール２７は伝送的な割り算及び残り計算方法によって入力された被平方根数の平方根を計算するための回路又はプログラムステップを含む。一例として、８-ビットオペランドの‘割り算及び残り’平方根演算を遂行するプロセッサは平方根結果を導出するために８サイクルを要求する。平方根結果データはQ’バッファ２９に集合される。平方根演算が完了すると、平方根演算結果は、貯蔵のためにQ’バッファ２９からPMPOキャッシュデータ２２内のD1、D2、…、Dnのうち、１つに伝達される被平方根数XはPMPOキャッシュタグ２１内の対応するバッファ（T1、T2、…、Tn）に貯蔵される。ここで、図２に示された算術ユニットは、平方根演算が遂行される新たな入力の被平方根数X’がPMPOキャッシュタグ２１内の対応するバッファ内の被平方根数X’と一致するかが決定されると、PMPOキャッシュデータ２２から平方根Q’を出力する。新たな平方根数の一致判別はキャッシュタグ２１内のエクスクルーシブNORゲートによって遂行される。エクスクルーシブNORゲートは新たに入力された被平方根数X’の各ビットと完全に一致するビットＸを貯蔵するバッファに対して、全部‘１’を出力する。被平方根数X’と完全に一致する被平方根Xを貯蔵したバッファ（T1、T2、…、Tn）と対応するキャッシュデータ２２に貯蔵されたデータが平方根結果Q’として出力される。このような場合、平方根結果Q’はキャッシュデータ２２からマルチプレクサ６３を通じてQ’バッファ２９に出力される。このような被平方根一致及びQ’バッファ２９への平方根結果Q’の出力は平方根モジュール２７の処理をバイパス（bypass）させる。
【００２０】
また、図２に示す本発明によるPMPOキャッシュを備えた演算装置は、新たに入力されたオペランドX’とバッファ（T1、T2、…、Tn）に貯蔵された複数のオペランドXsとが部分的に一致する場合、部分平方根結果を出力できる構成を有する。つぎに、部分出力部分一致（PMPO）動作の実施形態を図２乃至図５を参照して説明する。平方根演算が遂行される新たなオペランドX’が入力されると（ステップ４１０）、オペランドX’はPMPOキャッシュタグ２１内のバッファ（T1、T2、…、Tn）に貯蔵されたオペランドXsと比較される（ステップ４１２）。この実施形態で、オペランドと平方根データとは各々８ビット、即ち、X’［７：０］及びＱ’［７：０］である。図２に示されたPMPOキャッシュは一実施形態を図示したもので、オペランドのビット幅は様々に変更され得ることは当業者には周知である。キャッシュタグ２１の１つのバッファTxに対するエクスクルーシブNORゲートは５８ビットバッファで実現された検出ロジック４２と連結される。検出ロジック４２はエクスクルーシブNORバッファグループ各々から出力される５８ビットを貯蔵する。従って、オペランドX’とキャッシュタグ２１内のバッファのうち、いずれか１つに貯蔵されたオペランドXとが完全に一致すると、検出ロジック４２の対応する回路は５８ビットバッファに全部‘１’を貯蔵する。一方、キャッシュタグ２１にエクスクルーシブORゲートが使用される場合、オペランドX’とキャッシュタグ２１内のバッファのうち、いずれか１つに貯蔵されたオペランドXとが完全に一致すると、検出ロジック４２には全部‘０’を貯蔵する。部分的に一致する場合、検出ロジック４２はオペランドX’のビットと一致するキャッシュタグ２１内のオペランドXnのビットに論理‘１’を表示する。ステップ４１４では、新たに入力されたオペランドX’がキャッシュタグ２１のバッファに貯蔵された複数のオペランドXのうち、１つと完全に又は部分的に一致するか否かが判別される。選択及びマスクロジック４３は検出ロジック４２からの出力信号（Det_1 、Det_２、…、 Det_n）をデコーディングするためのロジック回路と完全に又は部分的に一致するか否かを判別するためのロジック回路を含む。部分的に一致する場合、マッチされた長さが判別される。選択及びマスクロジック４３はキャッシュデータ２２とマスクレジスタ４５とにイネーブル信号を出力する。検出ロジック４２からの検出信号（Det_1 、Det_２、…、 Det_n）のうち、いずれか１つが全部‘１’を含む場合、オペランドX’の完全一致が判別される。もし、完全に又は部分的にも一致しないと、PMPOキャッシュ１００は平方根データがないことを示す信号を出力する。不一致信号はマルチプレクサ６２，６３に伝送され、新たに入力された被平方根数X’が平方根モジュール２７に入力されるようにして、平方根モジュール２７で被平方根数X’のノーマル平方根演算が遂行されるようにする（ステップ４１６）。平方根モジュール２７から導出された結果データはオペランドX’を貯蔵するために使用されるキャッシュタグ２１のバッファTxと対応する位置に貯蔵されるように、キャッシュデータ２２に伝達される（ステップ４１８）。
【００２１】
部分的に又は完全に一致すると判別される場合、完全に一致するかを知るために検出ロジックからの検出信号（Det_1 、Det_２、…、 Det_n）が検査される（ステップ４２０）。完全に一致する場合、選択及びマスクロジック４３はキャッシュタグ２１で完全に一致するバッファと対応する位置のキャッシュデータ２２に信号を出力する。このような場合、キャッシュデータ２２からの出力データがマスクレジスタ４５を通じて平方根バッファ４８に出力され、このデータは平方根演算の結果としてマルチプレクサ６３を通じてQ’バッファ２９に伝達される（ステップ４２２）。
【００２２】
オペランドX’が部分的に一致する場合、選択及びマスクロジック４３は最上位ビット（MSB）から一番多く連続的に一致する検出信号（Det_1 、Det_２、…、 Det_n）を選択する（ステップ４２４）。検出ロジック４２はデータ（M1〜Mn）のうち、一番先に０になる次のデータは‘Don't care’にする。図４は検出ロジック４２からの出力（Det_1〜Det_n）に対応するM1〜Mnを示す。選択及びマスクロジック４３は信号（Det_1 、Det_２、…、 Det_n）を取り込み、検出ロジック４２から出力される信号（Det_1〜Det_n）のうち、連続的に論理１が２つあるごとに通過（pass-through）信号を発生させるマスキング演算を遂行する。信号（Det_1〜Det_n）のマスクテーブルは選択及びマスクロジック４３からの対応するマスク入力を入力する。図５は８ビットマスクデータ（Mask［７：０］）を示す。選択及びマスクロジック４３はキャッシュデータ２２で一番類似したパターン（Det_max）に対応する位置をアクセスするためのイネーブル信号Enを出力する。このパターン（Det_max）に対応するマスクデータ（Mask［７：０］）は部分出力ユニット４５に入力され、パターン（Det_max）に対応するマスクデータとキャッシュデータ２２からリードされたデータ出力Qiに対するAND演算が遂行される（ステップ４２６）。
【００２３】
前述のプロセスが適用された一例は次のようである。オペランド（100000002、100011112、及び101011112）はキャッシュタグ２１のT1〜Tnに貯蔵され、前記オペランドに対応する平方根結果データはキャッシュデータメモリ２２の対応する位置に貯蔵される。被平方根数X’100000012は算術装置に入力されて、平方根演算が遂行される。検出ロジック４２はオペランドに対応する信号（11111110、11110xxx、及び110XXXXX）を入力信号（M1〜Mn）として各々取り込み、比較結果に対応するパターン（Det_1〜Det_n）として（11111110、1111000、及び11000000）を各々出力する。従って、論理‘１’はT1〜Tnに貯蔵されたオペランドと被平方根数X’の対応するビットが一致することを示し、論理‘０’は対応するビットが不一致することを示す。ここで、‘x’は‘Don't care’を意味する。
【００２４】
検出ロジック４２で発生したパターン（Det_1=11111110 、Det_2=11110000、及び Det_3=11000000）は選択及びマスクロジック４３に入力され、パターン（Det_1=11111110）は一番類似したパターン（Det_max）に選択される。このパターン（11111110）は被平方根数X’の対応するビットが最上位ビット(MSB)から連続的に一番多く、一致するものである。図５に示す真理値を参照すると、選択及びマスクロジック４３はパターン（11111110）に対応するマスクパターン（11100000）を発生させる。類似したパターン（Det_max）、即ち、データが11111110のパターン（Det_1）に対応する結果データQiを出力するために出力イネーブル信号Enはデータキャッシュメモリ２２に伝送される。
【００２５】
部分出力ユニット４５は結果データQiとマスクデータ（11100000）とをAND演算し、その結果のq［x：０］をバッファ４８に貯蔵する。前述のように、もし、検出ロジック４２からの検出信号（Det_1〜Det_n）全部が0xxxxxxx2であると、‘０’がQ’バッファ２９の初期値として入力され、オペランドX’は平方根モジュール２７に入力される。この実施形態のような算術演算で、オペランドX’の全ての数の桁に対する平方根演算は算術モジュール（２７、この実施形態では平方根モジュール）で遂行される。そして、もし、キャッシュタグ２１に貯蔵されたオペランド（T1〜Tn）のうち、１つが被平方根X’と同一であると、即ち、検出ロジック４２から出力される検出信号（Det_1〜Det_n）が(11111111)なら、検出信号(11111111)に対応するデータQiがキャッシュデータ２２から結果データQ’に出力され、モジュール２７はどんな演算又は処理も遂行しない。
【００２６】
演算子分割ユニット６１と第１及び第２マルチプレクサ６２，６３を含む媒介回路は選択及びマスクロジック４３によって制御される。媒介回路はデータをモジュール２７とQ’バッファ２９とに伝達する。演算子分割ユニット６１は被平方根X’の大きな不一致部分から部分オペランドX’’を抽出するために使用される。平方根演算において、平方根結果データ（q［x：０］）は部分被平方根X’’を得るために、二乗演算された後、入力被平方根数X’から減算される（X’’＝X2−q2）。部分被平方根数X’’は平方根演算を遂行するために、モジュール２７に入力される。部分結果出力（q［x：０］）は部分結果データとして、Q’バッファ２９に入力される（ステップ４２８）。部分被平方根数X’’とデータ（q［x：０］）とは各々が、選択マスクロジックによって制御されるマルチプレクサ６２，６３を通じて選択される。
【００２７】
モジュール２７が部分入力X’’に対するプロセスを完了すると、結果データはQ’バッファ２９に貯蔵された部分結果データと結合されて、最終結果データを形成する。
【００２８】
本発明による部分一致部分出力の長所は算術演算が頻繁に遂行される場合、システム処理量を顕著に減少させ得ることにある。
【００２９】
この実施形態では平方根演算を示すが、図２に示された装置は最小限の変更によって、平方根、割り算、掛け算、三角法機能のような他の算術演算にも適用され得ることは当業者には周知である。
【００３０】
平方根計算は次のように行なわれる。
【数１】
0004574030.tif 000002
【００３１】
割り算計算は次のように行なわれる。
【数２】
0004574030.tif 000003
【００３２】
ここで、X=11101001、Y=Kである場合、新たなオペランドＸ’が11111011で、Y’=Ｋであると、割り算演算は２つの演算子Ｘ，Ｙが必要になるのを除いては、平方根演算と同一である。もし、新たなオペランドＹ’が以前のオペランドＹと完全に一致すると、前記割り算は単項演算であるので、割り算はPMPOキャッシュ１００で遂行することが出来る。
【００３３】
掛け算で、Q=X×Yで、X＝11101001 、Y=K、そして、X’=11111011、Y’=Kであると、部分掛け算は本発明によるPMPOキャッシュで遂行することが出来る。図５で、マスキング動作は(X  xor  X’)、そして、X=0000_0000である場合だけ有効とする。図６は、図２に示された装置を変形したものであって、図２に示された構成要素と同一の番号を付されたものは同一の動作を遂行する。逆関数(inverse function：６１)は部分オペランドを抽出するためにX’’＝X’−Xを遂行するために変形されたものである。
【００３４】
以上で、本発明による回路の構成及び動作を実施の形態と図面とに基づいて説明したが、本発明の技術的な思想に外れない範囲で、様々な変化及び変更が可能である。
【００３５】
【発明の効果】
本発明によると、算術演算が頻繁に遂行される場合、システム処理量を顕著に減少させることが出来る。
【図面の簡単な説明】
【図１】一般的なキャッシュメモリを示す図である。
【図２】本発明の一実施形態による演算装置を示す図である。
【図３】図２に示された装置を利用して、平方根演算を遂行するための手順を示すフローチャートである。
【図４】図２に示されたキャッシュメモリ内の検出ロジックの入出力データを示すためのテーブルである。
【図５】本発明の一実施形態による入出力データに対するマスキング動作を示すためのテーブルである。
【図６】本発明の他の実施形態による演算装置を示す図である。
【符号の説明】
２１    キャッシュタグ
２２    キャッシュデータ
２７    プロセスモジュール
２９    Q’バッファ
４２    検出ロジック
４３    選択及びマスクロジック
４５    マスクレジスタ
４８    バッファ
６１    被平方根分割ユニット
６２    マルチプレクサ
６３    マルチプレクサ
１００    PMPOキャッシュメモリ
【図１】
0004574030.tif 000004
【図２】
0004574030.tif 000005
【図３】
0004574030.tif 000006
【図４】
0004574030.tif 000007
【図５】
0004574030.tif 000008
【図６】
0004574030.tif 000009