JP2002229775A - コンピュータ算術演算のための部分一致部分出力キャッシュ装置 - Google Patents

コンピュータ算術演算のための部分一致部分出力キャッシュ装置

Info

Publication number
JP2002229775A
JP2002229775A JP2001031314A JP2001031314A JP2002229775A JP 2002229775 A JP2002229775 A JP 2002229775A JP 2001031314 A JP2001031314 A JP 2001031314A JP 2001031314 A JP2001031314 A JP 2001031314A JP 2002229775 A JP2002229775 A JP 2002229775A
Authority
JP
Japan
Prior art keywords
result
operand
partial
cache
arithmetic operation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2001031314A
Other languages
English (en)
Other versions
JP4574030B2 (ja
Inventor
Hoi-Jin Lee
会 鎮 李
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2002229775A publication Critical patent/JP2002229775A/ja
Application granted granted Critical
Publication of JP4574030B2 publication Critical patent/JP4574030B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 コンピュータ算術演算のための部分一致部分
出力キャッシュを提供する。 【解決手段】 本発明による演算装置はコンピュータ算
術演算のための部分一致部分出力キャッシュを含む。前
記キャッシュは、以前に遂行された結果データと算術演
算を遂行するためのオペランドとを貯蔵し、同一のオペ
ランドが遂行される場合、該当する結果を出力し、プロ
セッサによる処理及び演算をバイパスさせる。そして、
前記キャッシュを備えた装置は部分的に一致するオペラ
ンドのために、部分的に結果を出力できるように構成さ
れる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はキャッシュメモリと
共にコンピュータ算術演算を遂行する装置及び方法に係
り、より詳細には、部分出力が可能なキャッシュメモリ
を備えた装置及び方法に関する。
【0002】
【従来の技術】コンピュータは、掛け算、繰り返される
シフト(shift)を通じたデータの操作による割り算、
足し算、そして、引き算のような算術演算(arithmetic
operations)を遂行する。そして、結果を導出するた
めに、データの頻繁なアクセス及び操作上のサイクル
(operational cycles)を必要とする。平方根(square
root)演算のような複雑な演算機能や、三角関数(tri
gonometry functions)演算などを遂行するための普通
のコンピューティングプロセッサは、非常に時間消費的
な特徴を有する。そして、このようなコンピューティン
グプロセッサは幾つかのアプリケーションで、適用が容
易ではない問題点があった。
【0003】さらに複雑な算術演算のうち、一部はルッ
クアップテーブル(look-up table)を使用できるが、
様々な演算にルックアップテーブルを適用するために
は、ルックアップテーブルの大きさが十分に大きくなけ
ればならない。もし、遂行される演算で1ビットだけが
違っても、ルックアップテーブルは正確な機能を遂行で
きず、ルックアップテーブルから導出されるデータも正
しくない。従って、正確な結果を得るためには、演算の
全ての数の桁に対する全体計算を再び遂行しなければな
らない。
【0004】複雑な算術演算を遂行する他の方法とし
て、例えば、サットクリフ(Sutcliffe)によって取得さ
れた米国特許(USP 4,734,878)“CIRCUIT FOR PERFOR
MING SQUARE ROOT FUNCTIONS”のように専用回路(dedi
cated circuitry)を使用する方法がある。しかし、専
用回路は時間消費は少ないが、追加的なハードウェアを
必要とするため、特定関数だけに使用される。サットク
リフによる専用回路はただ平方根演算だけを遂行でき、
掛け算器(multiplier)はただ掛け算演算だけを遂行す
る。
【0005】キャッシュメモリ(cache memory)は高速
RAM(Random Access Memory)として用いられ、CPU(Centr
al Processing Unit)は普通のメモリよりキャッシュメ
モリをより速くアクセスすることができる。一般的に、
キャッシュメモリはCPUによって頻繁にアクセスされる
データを貯蔵するためのメモリである。CPUはキャッシ
ュメモリからアクセスされたデータを使ってより多数の
演算を遂行することができる。また、この演算は普通の
メモリからアクセスされたデータを用いて遂行される演
算よりも高速に遂行することが出来る。
【0006】キャッシュメモリはCPUによって直接アク
セスされ(例えば、外部メモリ管理ユニット(external
memory management unit)を)経由しないで)、CPUと
キャッシュメモリとの間の信号伝達時間を縮めるため
に、物理的にCPUに近いところに位置する。Alpha AXP 2
1064マイクロプロセッサ内のデータキャッシュの動作
は、1996年、David A. PaternsとJohn L. Henn
essyによってMorgan Kaufmann Publishers Inc.で出版
された“Computer Architecture A Quantitive A
pproach”のpp.380〜383に説明されている。CPUがリー
ド又はフェッチ(fetch)動作を遂行すると、データ(dat
a)又は命令語(instructions)がキャッシュ内にあるか
が判別される。もし、データ又は命令語がキャッシュ内
に存在すると、高速でアクセスされ、もし、そうではな
いと、データ又は命令語は普通のメモリ(例えば、DRAM
又はROM)からフェッチされ、消費時間が長くなる。
【0007】図1は、一般的なキャッシュメモリの構成
を示す図である。キャッシュメモリ10は、プロセッサ
によって最近又は頻繁にアクセスされたデータ、アドレ
ス又はファイルを貯蔵するための多数のバッファを備え
たキャッシュタグ11を含む。キャッシュメモリ10
は、タグに貯蔵されたデータと一番最近に入力されたデ
ータとを比較するための回路を含む。図1に示すよう
に、XOR(exclusive OR)ゲートはキャッシュタグ11
内に備えられた各バッファの各々のビットに連関してい
る。新たに入力されたデータがキャッシュタグ11内の
バッファのうち、1つに貯蔵されたデータと一致する
と、実際比較結果(true comparison)がゲート15、
16乃至19から出力される。キャッシュデータ12は
キャッシュタグ11内の各バッファに対応するデータを
貯蔵するファイルである。対応するゲート15、16、
…、19から取り込んだ実際比較結果はキャッシュデー
タ12の該当位置にあるq4、q3、q2、…、q0として出力
される。図1に示されたキャッシュは5ビット幅を有す
る。
【0008】キャッシュメモリは、高速演算を遂行する
演算装置のためのデータ貯蔵装置(data storing devic
e)として有用である。例えば、図1に示されたような
キャッシュメモリはキャッシュタグ11にオペランド
(operands)を貯蔵し、キャッシュデータ12に対応す
る演算結果を貯蔵する。もし、先に遂行される同一な算
術演算に関するオペランドがキャッシュタグ11内で発
見されると、その算術演算はバイパス(bypass)され
る。このような場合、キャッシュはルック-アップテー
ブルとして使用され、アクセス時間はルック-アップテ
ーブルROMと同程度に縮まる。しかし、ルック-アップテ
ーブルROMにおいて、ルック-アップテーブルモードでの
キャッシュの使用は、オペランドがキャッシュタグに貯
蔵されたデータと正確に一致する場合だけ、全体処理量
を減少させるにとどまる。従って、部分的に一致するオ
ペランドに対する演算結果を部分的に出力できる演算装
置に使用されるキャッシュメモリを備えた装置が要求さ
れる。
【0009】
【発明が解決しようとする課題】本発明は、前述の問題
点を解決するために提案されたもので、TAGレジスタ及
びキャッシュデータメモリを備えたキャッシュ構造及び
これを利用した算術演算遂行方法を提供することを目的
とする。
【0010】
【課題を解決するための手段】前述の目的を達成するた
めの本発明の特徴によると、TAGレジスタ及びキャッシ
ュデータメモリを備えたキャッシュ構造を利用した算術
演算遂行方法は、多数の知られているオペランドをTAG
レジスタに貯蔵し、各々のオペランド算術演算から誘導
された結果を有する。結果はキャッシュデータメモリ内
の該当位置に貯蔵され、遂行される算術演算に対する新
たなオペランドをTAGレジスタに入力させ、知られてい
る多数のオペランドと新たなオペランドとを比較し、も
し、知られているオペランドのうち、新たに入力された
オペランドと一致するものがあるか否かを判別し、判別
の結果、一致するものがあると、新たなオペランドと一
致するオペランドに対応する結果をキャッシュデータメ
モリから出力する。
【0011】望ましい実施形態において、前記方法は、
判別ステップで一致するオペランドが存在しない場合に
は、知られているオペランドと新たなオペランドとが部
分的に一致するか否かを判別し、知られているオペラン
ドのうち、新たなオペランドと一致する上位ビット(MSB
s)を有するオペランドを選択し、一番多く一致する上位
ビット(MSBs)を有するオペランドに対応する結果をキャ
ッシュデータメモリからアクセスし、知られているオペ
ランドの一致した上位ビットから導出されてアクセスさ
れた結果の第1部分を決定し、第1部分の外にアクセス
された結果の第2部分をマスキングし、マスキングされ
た結果を第1部分結果として提供する。
【0012】望ましい実施形態において、前記方法は、
第2部分結果を発生させるために、一致された上位ビッ
トの外に該当する新たなオペランドのビットに対する算
術演算を遂行し、第1部分結果と第2部分結果とを結合
して最終結果を出力する。
【0013】望ましくは、前述の本発明による方法は、
平方根又は掛け算演算のような算術演算を遂行すること
を特徴とする。
【0014】算術演算の遂行のために提供されるキャッ
シュ装置は、各々が算術演算から導出された該当結果を
有する、知られている多数のオペランドを貯蔵するため
のタグレジスタと、知られているオペランドに対応する
結果を貯蔵するためのキャッシュデータメモリと、遂行
される算術演算のための新たなオペランドを知られてい
る多数のオペランドと比較するための、タグレジスタ内
に備えられた比較ロジックとを含む。ここで、知られて
いるオペランドのうちの1つが新たなオペランドと一致
すると、キャッシュデータメモリは新たなオペランドと
一致する知られているオペランドに対する知られている
結果を出力する。
【0015】キャッシュ装置は、共通ロジックレベル
(common logic level)を有するデータグループを検出
し、新たなオペランドの上位ビット(MSBs)と一致する
一番多い数の上位ビット(MSBs)を有する、知られてい
るオペランドを検出するためのロジックグループ検出器
(logic group detector)と、一番多く一致する上位ビ
ット(MSBs)を有する、知られているオペランドに対応
する結果を部分的にマスキングし、知られているオペラ
ンドの一致した上位ビット(MSBs)から導出された該当
結果の第1部分を通過させ、第1部分を除いた該当結果
の第2部分をマスキングするためのマスキングロジック
(masking logic)と、算術ユニット(arithmetic uni
t)で該当結果の第1部分をマルチプレクシングをする
ためのマルチプレクサとを含む。
【0016】望ましい実施形態において、本発明による
キャッシュ装置は第2マルチプレクサを含む。ここで、
演算ユニットは第2部分結果を発生させるために一致す
る上位ビット(MSBs)を除いた新たなオペランドのビッ
トに対する算術演算を遂行し、第2マルチプレクサは第
2部分結果を演算ユニットでマルチプレクシングする。
第2部分結果は第1部分結果と結合されて最終結果を形
成する。
【0017】
【発明の実施の形態】以下、本発明の実施の形態を添付
した図2乃至図6を参照して詳細に説明する。
【0018】もし、現在のオペランド(current operan
d)が同一な算術演算を遂行した以前のオペランド(pre
vious operand)と同一の場合には、本発明の演算用キ
ャッシュ(operational cache)は以前に遂行した算術
演算結果を貯蔵し、結果データ(resultant data)を出
力する。もし、現在のオペランドが演算用キャッシュに
貯蔵された以前のオペランドと部分的に一致すると、本
発明の演算用キャッシュは部分的な演算結果を出力す
る。本発明による演算用キャッシュを使用した演算ユニ
ットの構造及び動作を以下説明する。
【0019】図2は、平方根演算を遂行する演算ユニッ
トの構成を示す図である。図2に示された演算ユニット
は本発明による部分一致部分出力(partical match pat
icaloutput:以下PMPOと呼ぶ)キャッシュを示す。例示
された本発明による演算装置は、PMPOキャッシュタグ2
1とPMPOキャッシュデータ22とで構成されたPMPOキャ
ッシュ100を含む。平方根モジュール27は被平方根
数Xの平方根を計算するためのソフトウェア又はハード
ウェアである。平方根モジュール27は平方根演算を遂
行するためのプログラミングステップ又はアルゴリズム
で構成される。平方根演算は1993年Israel Korenに
よって ISBN D-13-151952-2に掲載された“Computer Ar
ithmetic Algorithms”の第7章の“Restoring Divisio
n Scheme”と概念的に同一に平方根を計算する“完全平
方”(completing the square)方法で遂行される。ま
た、平方根モジュール27は伝送的な割り算及び残り計
算方法によって入力された被平方根数の平方根を計算す
るための回路又はプログラムステップを含む。一例とし
て、8-ビットオペランドの‘割り算及び残り’平方根
演算を遂行するプロセッサは平方根結果を導出するため
に8サイクルを要求する。平方根結果データはQ’バッ
ファ29に集合される。平方根演算が完了すると、平方
根演算結果は、貯蔵のためにQ’バッファ29からPMPO
キャッシュデータ22内のD1、D2、…、Dnのうち、1つ
に伝達される被平方根数XはPMPOキャッシュタグ21内
の対応するバッファ(T1、T2、…、Tn)に貯蔵される。
ここで、図2に示された算術ユニットは、平方根演算が
遂行される新たな入力の被平方根数X’がPMPOキャッシ
ュタグ21内の対応するバッファ内の被平方根数X’と
一致するかが決定されると、PMPOキャッシュデータ22
から平方根Q’を出力する。新たな平方根数の一致判別
はキャッシュタグ21内のエクスクルーシブNORゲート
によって遂行される。エクスクルーシブNORゲートは新
たに入力された被平方根数X’の各ビットと完全に一致
するビットXを貯蔵するバッファに対して、全部‘1’
を出力する。被平方根数X’と完全に一致する被平方根X
を貯蔵したバッファ(T1、T2、…、Tn)と対応するキャ
ッシュデータ22に貯蔵されたデータが平方根結果Q’
として出力される。このような場合、平方根結果Q’は
キャッシュデータ22からマルチプレクサ63を通じて
Q’バッファ29に出力される。このような被平方根一
致及びQ’バッファ29への平方根結果Q’の出力は平方
根モジュール27の処理をバイパス(bypass)させる。
【0020】また、図2に示す本発明によるPMPOキャッ
シュを備えた演算装置は、新たに入力されたオペランド
X’とバッファ(T1、T2、…、Tn)に貯蔵された複数の
オペランドXsとが部分的に一致する場合、部分平方根結
果を出力できる構成を有する。つぎに、部分出力部分一
致(PMPO)動作の実施形態を図2乃至図5を参照して説
明する。平方根演算が遂行される新たなオペランドX’
が入力されると(ステップ410)、オペランドX’はP
MPOキャッシュタグ21内のバッファ(T1、T2、…、T
n)に貯蔵されたオペランドXsと比較される(ステップ
412)。この実施形態で、オペランドと平方根データ
とは各々8ビット、即ち、X’[7:0]及びQ’
[7:0]である。図2に示されたPMPOキャッシュは一
実施形態を図示したもので、オペランドのビット幅は様
々に変更され得ることは当業者には周知である。キャッ
シュタグ21の1つのバッファTxに対するエクスクルー
シブNORゲートは58ビットバッファで実現された検出
ロジック42と連結される。検出ロジック42はエクス
クルーシブNORバッファグループ各々から出力される5
8ビットを貯蔵する。従って、オペランドX’とキャッ
シュタグ21内のバッファのうち、いずれか1つに貯蔵
されたオペランドXとが完全に一致すると、検出ロジッ
ク42の対応する回路は58ビットバッファに全部
‘1’を貯蔵する。一方、キャッシュタグ21にエクス
クルーシブORゲートが使用される場合、オペランドX’
とキャッシュタグ21内のバッファのうち、いずれか1
つに貯蔵されたオペランドXとが完全に一致すると、検
出ロジック42には全部‘0’を貯蔵する。部分的に一
致する場合、検出ロジック42はオペランドX’のビッ
トと一致するキャッシュタグ21内のオペランドXnのビ
ットに論理‘1’を表示する。ステップ414では、新
たに入力されたオペランドX’がキャッシュタグ21の
バッファに貯蔵された複数のオペランドXのうち、1つ
と完全に又は部分的に一致するか否かが判別される。選
択及びマスクロジック43は検出ロジック42からの出
力信号(Det_1 、Det_2、…、 Det_n)をデコーディン
グするためのロジック回路と完全に又は部分的に一致す
るか否かを判別するためのロジック回路を含む。部分的
に一致する場合、マッチされた長さが判別される。選択
及びマスクロジック43はキャッシュデータ22とマス
クレジスタ45とにイネーブル信号を出力する。検出ロ
ジック42からの検出信号(Det_1 、Det_2、…、 Det
_n)のうち、いずれか1つが全部‘1’を含む場合、オ
ペランドX’の完全一致が判別される。もし、完全に又
は部分的にも一致しないと、PMPOキャッシュ100は平
方根データがないことを示す信号を出力する。不一致信
号はマルチプレクサ62,63に伝送され、新たに入力
された被平方根数X’が平方根モジュール27に入力さ
れるようにして、平方根モジュール27で被平方根数
X’のノーマル平方根演算が遂行されるようにする(ス
テップ416)。平方根モジュール27から導出された
結果データはオペランドX’を貯蔵するために使用され
るキャッシュタグ21のバッファTxと対応する位置に貯
蔵されるように、キャッシュデータ22に伝達される
(ステップ418)。
【0021】部分的に又は完全に一致すると判別される
場合、完全に一致するかを知るために検出ロジックから
の検出信号(Det_1 、Det_2、…、 Det_n)が検査され
る(ステップ420)。完全に一致する場合、選択及び
マスクロジック43はキャッシュタグ21で完全に一致
するバッファと対応する位置のキャッシュデータ22に
信号を出力する。このような場合、キャッシュデータ2
2からの出力データがマスクレジスタ45を通じて平方
根バッファ48に出力され、このデータは平方根演算の
結果としてマルチプレクサ63を通じてQ’バッファ2
9に伝達される(ステップ422)。
【0022】オペランドX’が部分的に一致する場合、
選択及びマスクロジック43は最上位ビット(MSB)か
ら一番多く連続的に一致する検出信号(Det_1 、Det_
2、…、 Det_n)を選択する(ステップ424)。検出
ロジック42はデータ(M1〜Mn)のうち、一番先に0に
なる次のデータは‘Don't care’にする。図4は検出ロ
ジック42からの出力(Det_1〜Det_n)に対応するM1〜
Mnを示す。選択及びマスクロジック43は信号(Det_1
、Det_2、…、 Det_n)を取り込み、検出ロジック4
2から出力される信号(Det_1〜Det_n)のうち、連続的
に論理1が2つあるごとに通過(pass-through)信号を
発生させるマスキング演算を遂行する。信号(Det_1〜D
et_n)のマスクテーブルは選択及びマスクロジック43
からの対応するマスク入力を入力する。図4は8ビット
マスクデータ(Mask[7:0])を示す。選択及びマス
クロジック43はキャッシュデータ22で一番類似した
パターン(Det_max)に対応する位置をアクセスするた
めのイネーブル信号Enを出力する。このパターン(Det_
max)に対応するマスクデータ(Mask[7:0])は部
分出力ユニット45に入力され、パターン(Det_max)
に対応するマスクデータとキャッシュデータ22からリ
ードされたデータ出力Qiに対するAND演算が遂行される
(ステップ426)。
【0023】前述のプロセスが適用された一例は次のよ
うである。オペランド(100000002、100011112、及び10
1011112)はキャッシュタグ21のT1〜Tnに貯蔵され、
前記オペランドに対応する平方根結果データはキャッシ
ュデータメモリ22の対応する位置に貯蔵される。被平
方根数X’100000012は算術装置に入力されて、平方根演
算が遂行される。検出ロジック42はオペランドに対応
する信号(11111110、11110xxx、及び1110XXXX)を入力
信号(M1〜Mn)として各々取り込み、比較結果に対応す
るパターン(Det_1〜Det_n)として(11111110、111100
0、及び11000000)を各々出力する。従って、論理
‘1’はT1〜Tnに貯蔵されたオペランドと被平方根数
X’の対応するビットが一致することを示し、論理
‘0’は対応するビットが不一致することを示す。ここ
で、‘x’は‘Don't care’を意味する。
【0024】検出ロジック42で発生したパターン(De
t_1=11111110 、Det_2=11110000、及び Det_3=1100000
0)は選択及びマスクロジック43に入力され、パター
ン(Det_1=11111110)は一番類似したパターン(Det_ma
x)に選択される。このパターン(11111110)は被平方
根数X’の対応するビットと最上位ビット(MSB)とから連
続的に一番多く、一致するものである。図4に示す真理
値を参照すると、選択及びマスクロジック43はパター
ン(11111110)に対応するマスクパターン(11100000)
を発生させる。類似したパターン(Det_max)、即ち、
データが11111110のパターン(Det_1)に対応する結果
データQiを出力するために出力イネーブル信号Enはデー
タキャッシュメモリ22に伝送される。
【0025】部分出力ユニット45は結果データQiとマ
スクデータ(11100000)とをAND演算し、その結果のq
[x:0]をバッファ48に貯蔵する。前述のように、
もし、検出ロジック42からの検出信号(Det_1〜Det_
n)全部が0xxxxxxx2であると、‘0’がQ’バッファ2
9の初期値として入力され、オペランドX’は平方根モ
ジュール27に入力される。この実施形態のような算術
演算で、オペランドX’の全ての数の桁に対する平方根
演算は算術モジュール(27、この実施形態では平方根
モジュール)で遂行される。そして、もし、キャッシュ
タグ21に貯蔵されたオペランド(T1〜Tn)のうち、1
つが被平方根X’と同一であると、即ち、検出ロジック
42から出力される検出信号(Det_1〜Det_n)が(11111
111)なら、検出信号(11111111)に対応するデータQiがキ
ャッシュデータ22から結果データQ’に出力され、モ
ジュール27はどんな演算又は処理も遂行しない。
【0026】演算子分割ユニット61と第1及び第2マ
ルチプレクサ62,63を含む媒介回路は選択及びマス
クロジック43によって制御される。媒介回路はデータ
をモジュール27とQ’バッファ29とに伝達する。演
算子分割ユニット61は被平方根X’の大きな不一致部
分から部分オペランドX’’を抽出するために使用され
る。平方根演算において、平方根結果データ(q[x:
0])は部分被平方根X’’を得るために、二乗演算さ
れた後、入力被平方根数X’から減算される(X’’=X2
−q2)。部分被平方根数X’’は平方根演算を遂行する
ために、モジュール27に入力される。部分結果出力
(q[x:0])は部分結果データとして、Q’バッファ
29に入力される(ステップ428)。部分被平方根数
X’’とデータ(q[x:0])とは各々が、選択マスク
ロジックによって制御されるマルチプレクサ62,63
を通じて選択される。
【0027】モジュール27が部分入力X’’に対する
プロセスを完了すると、結果データはQ’バッファ29
に貯蔵された部分結果データと結合されて、最終結果デ
ータを形成する。
【0028】本発明による部分一致部分出力の長所は算
術演算が頻繁に遂行される場合、システム処理量を顕著
に減少させ得ることにある。
【0029】この実施形態では平方根演算を示すが、図
2に示された装置は最小限の変更によって、平方根、割
り算、掛け算、三角法機能のような他の算術演算にも適
用され得ることは当業者には周知である。
【0030】平方根計算は次のように行なわれる。
【数1】
【0031】割り算計算は次のように行なわれる。
【数2】
【0032】ここで、X=11101001、Y=Kである場合、新
たなオペランドX’が11111011で、Y’=Kであると、割
り算演算は2つの演算子X,Yが必要になるのを除いて
は、平方根演算と同一である。もし、新たなオペランド
Y’が以前のオペランドYと完全に一致すると、前記割
り算は単項演算であるので、割り算はPMPOキャッシュ1
00で遂行することが出来る。
【0033】掛け算で、Q=X×Yで、X=11101001 、Y=
K、そして、X’=11111011、Y’=Kであると、部分掛け算
は本発明によるPMPOキャッシュで遂行することが出来
る。図5で、マスキング動作は(X xor X’)、そし
て、X=0000_0000である場合だけ有効とする。図6は、
図2に示された装置を変形したものであって、図2に示
された構成要素と同一の番号を付されたものは同一の動
作を遂行する。逆関数(inversefunction:61)は部分
オペランドを抽出するためにX’’=X’−Xを遂行する
ために変形されたものである。
【0034】以上で、本発明による回路の構成及び動作
を実施の形態と図面とに基づいて説明したが、本発明の
技術的な思想に外れない範囲で、様々な変化及び変更が
可能である。
【0035】
【発明の効果】本発明によると、算術演算が頻繁に遂行
される場合、システム処理量を顕著に減少させることが
出来る。
【図面の簡単な説明】
【図1】一般的なキャッシュメモリを示す図である。
【図2】本発明の一実施形態による演算装置を示す図で
ある。
【図3】図2に示された装置を利用して、平方根演算を
遂行するための手順を示すフローチャートである。
【図4】図2に示されたキャッシュメモリ内の検出ロジ
ックの入出力データを示すためのテーブルである。
【図5】本発明の一実施形態による入出力データに対す
るマスキング動作を示すためのテーブルである。
【図6】本発明の他の実施形態による演算装置を示す図
である。
【符号の説明】
21 キャッシュタグ 22 キャッシュデータ 27 プロセスモジュール 29 Q’バッファ 42 検出ロジック 43 選択及びマスクロジック 45 マスクレジスタ 48 バッファ 61 被平方根分割ユニット 62 マルチプレクサ 63 マルチプレクサ 100 PMPOキャッシュメモリ

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 TAGレジスタ及びキャッシュデータメモ
    リを備えたキャッシュ構造を利用した算術演算遂行の方
    法において、 多数の知られているオペランドを前記TAGレジスタに貯
    蔵し、前記各々のオペランドは算術演算から誘導された
    結果を有し、前記結果は前記キャッシュデータメモリ内
    の該当位置に貯蔵されるステップと、 遂行される算術演算に対する新たなオペランドを前記TA
    Gレジスタに入力するステップと、 前記知られている多数のオペランドと前記新たなオペラ
    ンドとを比較するステップと、 前記知られているオペランドのうちに前記新たなオペラ
    ンドと一致するものがあるか否かを判別し、一致するも
    のが存在する場合には、前記新たなオペランドと一致す
    るオペランドに対応する結果を前記キャッシュデータメ
    モリから出力するステップとを含むことを特徴とするコ
    ンピュータ算術演算のための部分一致部分出力キャッシ
    ュの算術演算方法。
  2. 【請求項2】 前記判別ステップで一致するオペランド
    が存在しない場合には、 前記知られているオペランドと前記新たなオペランドと
    が部分的に一致するか否かを判別するステップと、 前記知られているオペランドのうちに前記新たなオペラ
    ンドと一致する上位ビットを有するオペランドを選択す
    るステップと、 一番多く一致する上位ビットを有するオペランドに対応
    する結果を前記キャッシュデータメモリからアクセスす
    るステップと、 前記知られているオペランドの一致した上位ビットから
    導出されてアクセスされた結果の第1部分を決定するス
    テップと、 前記第1部分の外にアクセスされた結果の第2部分をマ
    スキングするステップと、 マスキングされた前記結果を第1部分結果として提供す
    るステップとを含むことを特徴とする請求項1に記載の
    コンピュータ算術演算のための部分一致部分出力キャッ
    シュの算術演算方法。
  3. 【請求項3】 第2部分結果を発生させるために、一致
    する前記上位ビットの外に該当する前記新たなオペラン
    ドのビットに対する算術演算を遂行するステップと、 前記第1部分結果と前記第2部分結果とを結合して最終
    結果を出力するステップとを含むことを特徴とする請求
    項2に記載のコンピュータ算術演算のための部分一致部
    分出力キャッシュの算術演算方法。
  4. 【請求項4】 前記算術演算は前記新たなオペランドの
    平方根演算であることを特徴とする請求項1に記載のコ
    ンピュータ算術演算のための部分一致部分出力キャッシ
    ュの算術演算方法。
  5. 【請求項5】 前記算術演算は割り算であり、前記新た
    なオペランドは除数であることを特徴とする請求項1に
    記載のコンピュータ算術演算のための部分一致部分出力
    キャッシュの算術演算方法。
  6. 【請求項6】 前記算術演算は掛け算であり、前記新た
    なオペランドは被乗数であることを特徴とする請求項1
    に記載のコンピュータ算術演算のための部分一致部分出
    力キャッシュの算術演算方法。
  7. 【請求項7】 算術演算を遂行するためのキャッシュ装
    置において、 各々が算術演算から導出された該当結果を有する、知ら
    れている多数のオペランドを貯蔵するためのタグレジス
    タと、 前記知られているオペランドに対応する結果を貯蔵する
    ためのキャッシュデータメモリと、 遂行される算術演算のための新たなオペランドを前記知
    られている多数のオペランドと比較するための、前記タ
    グレジスタ内に備えられた比較ロジックとを含み、 前記知られているオペランドのうちの1つが前記新たな
    オペランドと一致すると、前記キャッシュデータメモリ
    が前記新たなオペランドと一致する、前記知られている
    オペランドに対応する結果を出力することを特徴とする
    コンピュータ算術演算のための部分一致部分出力キャッ
    シュ装置。
  8. 【請求項8】 前記キャッシュ装置が、 共通ロジックレベルを有するデータグループを検出し、
    前記新たなオペランドの上位ビットと一致する一番多い
    数の上位ビットを有する、知られているオペランドを検
    出するためのロジックグループ検出器と、 一番多く一致する上位ビットを有する、知られているオ
    ペランドに対応する結果を部分的にマスキングし、前記
    知られているオペランドの一致された上位ビットから導
    出された該当結果の第1部分を通過させ、前記第1部分
    を除いた前記該当結果の第2部分をマスキングするため
    のマスキングロジックと、 算術ユニットで、前記該当結果の前記第1部分をマルチ
    プレクシングするためのマルチプレクサとを含むことを
    特徴とする請求項7に記載のコンピュータ算術演算のた
    めの部分一致部分出力キャッシュ装置。
  9. 【請求項9】 前記キャッシュ装置は第2マルチプレク
    サを含み、 前記演算ユニットは第2部分結果を発生させるために、
    前記一致された上位ビットを除いた前記新たなオペラン
    ドのビットに対する算術演算を遂行し、前記第2マルチ
    プレクサは前記第2部分結果を前記演算ユニットでマル
    チプレクシングし、前記第2部分結果は前記第1部分結
    果と結合して最終結果を形成することを特徴とする請求
    項8に記載のコンピュータ算術演算のための部分一致部
    分出力キャッシュ装置。
JP2001031314A 2001-01-10 2001-02-07 コンピュータ算術演算のための部分一致部分出力キャッシュ装置 Expired - Fee Related JP4574030B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/757,789 US6542963B2 (en) 2001-01-10 2001-01-10 Partial match partial output cache for computer arithmetic operations
US09/757789 2001-01-10

Publications (2)

Publication Number Publication Date
JP2002229775A true JP2002229775A (ja) 2002-08-16
JP4574030B2 JP4574030B2 (ja) 2010-11-04

Family

ID=25049225

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001031314A Expired - Fee Related JP4574030B2 (ja) 2001-01-10 2001-02-07 コンピュータ算術演算のための部分一致部分出力キャッシュ装置

Country Status (7)

Country Link
US (1) US6542963B2 (ja)
EP (1) EP1223505B1 (ja)
JP (1) JP4574030B2 (ja)
KR (1) KR100423893B1 (ja)
CN (1) CN1194301C (ja)
DE (1) DE60127524T2 (ja)
TW (1) TW501026B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11467958B2 (en) 2020-03-25 2022-10-11 Casio Computer Co., Ltd. Cache management method, cache management system, and information processing apparatus

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050108368A1 (en) * 2003-10-30 2005-05-19 Aditya Mohan Method and apparatus for representing data available in a peer-to-peer network using bloom-filters
DE102004019967B4 (de) * 2004-04-23 2014-02-13 Rohde & Schwarz Gmbh & Co. Kg Signalverarbeitungseinrichtung mit Nachverarbeitung
US9189412B2 (en) * 2013-03-07 2015-11-17 Mips Technologies, Inc. Apparatus and method for operating a processor with an operation cache
GB2525263B (en) * 2014-04-17 2021-06-02 Advanced Risc Mach Ltd Reuse of results of back-to-back micro-operations
US9933841B2 (en) 2014-04-17 2018-04-03 Arm Limited Reuse of results of back-to-back micro-operations
US9817466B2 (en) 2014-04-17 2017-11-14 Arm Limited Power saving by reusing results of identical micro-operations
US10514928B2 (en) 2014-04-17 2019-12-24 Arm Limited Preventing duplicate execution by sharing a result between different processing lanes assigned micro-operations that generate the same result
US9946331B2 (en) * 2014-06-27 2018-04-17 Samsung Electronics Co., Ltd. System and method to process signals having a common component
GB2528497B (en) * 2014-07-24 2021-06-16 Advanced Risc Mach Ltd Apparatus And Method For Performing Floating-Point Square Root Operation
US10261911B2 (en) * 2016-09-08 2019-04-16 The Johns Hopkins University Apparatus and method for computational workflow management
US11269643B2 (en) 2017-04-09 2022-03-08 Intel Corporation Data operations and finite state machine for machine learning via bypass of computational tasks based on frequently-used data values

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06318154A (ja) * 1992-03-13 1994-11-15 Sun Microsyst Inc 算術演算の必要性を最小にする方法及びそのための結果キャッシュ
JP2000112714A (ja) * 1998-09-30 2000-04-21 Stmicroelectronics Inc 高速乗算器

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4734878A (en) 1985-10-31 1988-03-29 General Electric Company Circuit for performing square root functions
JP2613223B2 (ja) * 1987-09-10 1997-05-21 株式会社日立製作所 演算装置
CA2074769C (en) * 1991-08-09 2001-03-20 International Business Machines Corporation Formula processor
US5828591A (en) * 1992-11-02 1998-10-27 Intel Corporation Method and apparatus for using a cache memory to store and retrieve intermediate and final results
US5537560A (en) * 1994-03-01 1996-07-16 Intel Corporation Method and apparatus for conditionally generating a microinstruction that selects one of two values based upon control states of a microprocessor
US5845103A (en) * 1997-06-13 1998-12-01 Wisconsin Alumni Research Foundation Computer with dynamic instruction reuse
WO1999045463A1 (fr) * 1998-03-04 1999-09-10 Hitachi, Ltd. Processeur de donnees
US6253287B1 (en) * 1998-09-09 2001-06-26 Advanced Micro Devices, Inc. Using three-dimensional storage to make variable-length instructions appear uniform in two dimensions
US6343359B1 (en) * 1999-05-18 2002-01-29 Ip-First, L.L.C. Result forwarding cache

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06318154A (ja) * 1992-03-13 1994-11-15 Sun Microsyst Inc 算術演算の必要性を最小にする方法及びそのための結果キャッシュ
JP2000112714A (ja) * 1998-09-30 2000-04-21 Stmicroelectronics Inc 高速乗算器

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11467958B2 (en) 2020-03-25 2022-10-11 Casio Computer Co., Ltd. Cache management method, cache management system, and information processing apparatus

Also Published As

Publication number Publication date
CN1365049A (zh) 2002-08-21
DE60127524T2 (de) 2008-01-31
EP1223505A3 (en) 2004-06-16
CN1194301C (zh) 2005-03-23
EP1223505A2 (en) 2002-07-17
EP1223505B1 (en) 2007-03-28
TW501026B (en) 2002-09-01
JP4574030B2 (ja) 2010-11-04
US6542963B2 (en) 2003-04-01
KR20020060547A (ko) 2002-07-18
KR100423893B1 (ko) 2004-03-24
US20020120814A1 (en) 2002-08-29
DE60127524D1 (de) 2007-05-10

Similar Documents

Publication Publication Date Title
US5408626A (en) One clock address pipelining in segmentation unit
US5001662A (en) Method and apparatus for multi-gauge computation
US4578750A (en) Code determination using half-adder based operand comparator
JP3573755B2 (ja) 画像処理プロセッサ
KR100239029B1 (ko) 가산기와 함께 사용하기 위한 결과 정규화기 및 결과 정규화 방법과 그를 포함하는 데이터 프로세서
US5381360A (en) Modulo arithmetic addressing circuit
EP0755015B1 (en) Combining data values
US7769982B2 (en) Data processing apparatus and method for accelerating execution of subgraphs
JP2001520775A (ja) 算術プロセッサ
US5426600A (en) Double precision division circuit and method for digital signal processor
US4466077A (en) Method and apparatus for division employing associative memory
JPH07210369A (ja) 並列加算および平均演算を行うための回路およびその方法
JP4574030B2 (ja) コンピュータ算術演算のための部分一致部分出力キャッシュ装置
AU5353990A (en) Improved cpu pipeline having register file bypass on update/access address compare
US4954947A (en) Instruction processor for processing branch instruction at high speed
US4905178A (en) Fast shifter method and structure
US20040230634A1 (en) Method and system for determining quotient digits for decimal division in a superscaler processor
US5867413A (en) Fast method of floating-point multiplication and accumulation
KR100431726B1 (ko) 부호달린나눗셈을이행하는방법
US5655139A (en) Execution unit architecture to support X86 instruction set and X86 segmented addressing
JP3519765B2 (ja) 小修正を行って既存ハードウェアで実現する2進乗算
US6240540B1 (en) Cyclic redundancy check in a computer system
US5754460A (en) Method for performing signed division
US4870606A (en) Trigonometric function preprocessing system
US5327571A (en) Processor having decoder for decoding unmodified instruction set for addressing register to read or write in parallel or serially shift in from left or right

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080121

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100202

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100430

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100727

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100818

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4574030

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130827

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees