JP4932827B2 - モーダル区間プロセッサ - Google Patents

モーダル区間プロセッサ Download PDF

Info

Publication number
JP4932827B2
JP4932827B2 JP2008505470A JP2008505470A JP4932827B2 JP 4932827 B2 JP4932827 B2 JP 4932827B2 JP 2008505470 A JP2008505470 A JP 2008505470A JP 2008505470 A JP2008505470 A JP 2008505470A JP 4932827 B2 JP4932827 B2 JP 4932827B2
Authority
JP
Japan
Prior art keywords
value
stn
logic circuit
arithmetic
afu
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.)
Expired - Fee Related
Application number
JP2008505470A
Other languages
English (en)
Other versions
JP2008541202A5 (ja
JP2008541202A (ja
Inventor
ティ. ヘイズ、ネイサン
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.)
Sunfish Studio LLC
Original Assignee
Sunfish Studio LLC
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 Sunfish Studio LLC filed Critical Sunfish Studio LLC
Publication of JP2008541202A publication Critical patent/JP2008541202A/ja
Publication of JP2008541202A5 publication Critical patent/JP2008541202A5/ja
Application granted granted Critical
Publication of JP4932827B2 publication Critical patent/JP4932827B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/485Adding; Subtracting
    • 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49989Interval arithmetic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/483Indexing scheme relating to group G06F7/483

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Nonlinear Science (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

本発明は、区間演算処理回路の分野に関し、より詳細には、モーダル区間(modal interval:MI)データ・タイプに対して信頼性の高い演算を行うことができるMIプロセッサに関する。
従来技術の区間プロセッサは、ラモン・ムーア(Ramon Moore )のいわゆる「伝統的な」区間演算である集合論的区間演算(set-theoretical interval arithmetic )の排他的実装によって特徴付けられる。こうしたプロセッサの設計は、区間演算が従来の浮動小数点演算より複雑であるという事実によって動機付けられる。
既存の区間プロセッサ設計が検討していない重大な問題がある。この問題は、区間演算自体のシステムにあるという意味で、根本的である。2001年、ミゲル・サインツ(Miguel Sainz)によって発表された一連の論文は、「モーダル区間」として知られる新しいタイプの数学的な区間を紹介した。これらの論文は、ある区間の根本的な概念を再定義することによって、区間プロセッサ設計の分野における従来のすべての業績よりも上回っている。1つの視点では、モーダル区間は、集合論的区間の一般化である。モーダル区間の分析は、集合論的区間関数に基づく既存のコンピューティング・ハードウェアに根本的に欠陥があり、完全性および正確さが欠けていることを示す。
以下の参考文献は、モーダル区間、モーダル区間計算、および本発明の理解に関連する。
[集合論的区間]
ジョラン、ルーク他(Jaulin, Luc, et.al.)「Applied Interval Analysis」Springer Verlag 2001年
ハンセン、エルドン(Hansen, Eldon )およびウィリアム・ウォルスタ(William Walster )「Global Optimization Using Interval Analysis」2nd ed., Marcel Dekker 2004年
ムーア、ラモン(Moore, Ramon)「Interval Analysis 」Prentice Hall 1966年
[モーダル区間]
サインツ、ミゲル他(Sainz, Miguel et.al.)「Ground Construction of Modal Intervals」ジローナ大学(University of Girona)、スペイン所在 2001年
サインツ、ミゲル他「Interpretability and Optimality of Rational Functions 」ジローナ大学、スペイン所在 2001年
サインツ、ミゲル他「Modal Intervals 」Reliable Computing 7.2 2001年 77ページ
サインツ、ミゲル他「Semantic and Rational Extensions of Real Continuous Functions 」ジローナ大学、スペイン所在 2001年
現在「www.mice.udg.es/cgi-bin/mi_fstar.cgi?t=1&h=1」のURLを有するWebサイトはWebベースのモーダル区間計算器を提供する。Reliable Computing 7.2のサインツ(Sainz )の記事を本願明細書に援用する。
本発明の1つの形態は、セレクタ信号の第1および第2の値にそれぞれ対応する第1および第2の異なるモーダル区間(MI)数学関数における第1および第2のMI結果値を計算する論理回路を含む。この演算関数は、オペランド信号に符号化された少なくとも1つのMIオペランド値に基づく。各MI値は、当該分野では公知の、ある範囲の実数の第1および第2の端点(end point )を定義する第1および第2のマルチビットの集合論的数字(set theoretical number:STN)を含む。各MIオペランドおよび結果値は、全称量化値(universal quantification value)および存在量化値(existential quantification value)のうちの一方をさらに符号化する。
量化値は、2つの表記のいずれかによって表すことができる。明示的な表記では、各MI値は、全称量化値または存在量化値のいずれかを指定する量化または量化子のビットを含む。この場合、2つのSTN値のうちの提示された第1の値は、第2の値以下の符号付き値を有していなければならない。暗黙的な規約では、小さいSTNと大きいSTNの位置関係は、量化値を定義する。したがって、暗黙的な表記の場合、MI値の第1のSTNが第2のSTN以上であるとき、MIは、全称量化値を有している可能性がある。他のすべてのMIは、存在量化値を有する。
少なくとも第1および第2の算術関数ユニット(arithmetic functional unit:AFU)は、オペランド信号を受信するように接続されている。各AFUは、オペランド信号に符号化された1つまたは2つのMIオペランド値を引数として使用して算術演算を行う。各AFUは、第1および第2の結果信号における第1および第2のMI結果値を提供する。
マルチプレクサは、セレクタ信号を受信するセレクタ入力、およびMI結果値を符号化した出力信号を出力するマルチビット出力ポートを有する。マルチプレクサはさらに、第1および第2のAFUのオペランド信号として提供される第1および第2の結果信号をそれぞれ受信するように接続された少なくとも第1および第2のマルチビット入力ポートを有する。各入力ポートは、単一のセレクタ信号値に関連付けられている。マルチプレクサは、現在のセレクタ信号値と関連付けられている入力ポートに提供されたMI結果値を、出力ポートによって提供される出力信号に符号化して提供する。
結果レジスタは、マルチプレクサ出力ポートによって提供される出力信号を受信するように接続されており、出力信号に符号化された各MI結果値を格納する。
本発明は、実数のコンパクト集合、およびモーダル量化子(modal quantifier)、すなわちモーダル区間をそれぞれ表す複数のデータ・フォーマットに対して演算を行う区間演算プロセッサの改良を含む。複数のデータ・フォーマットを、複数のデータ・フォーマットのいずれかより大きいモーダル区間領域を有するファイル・フォーマットに変換したり、そのフォーマットから変換したりする手段は、モーダル区間バスに接続されている。そのファイル・フォーマットでモーダル区間情報を格納するように構成されている複数のハードウェア・レジスタを含むレジスタ・ファイルは、そのモーダル区間バスに結合されており、そのモーダル区間情報に対してファイル・フォーマットでモーダル区間演算を行うために使用されるモーダル区間処理ユニットも、そのモーダル区間バスに接続されている。要素のこの組み合わせにより、すべてのデータ・フォーマットは、任意のモーダル区間量よりダイナミック・レンジが大きく、モーダル区間プロセッサがそれを操作することを求められ得るファイル・フォーマットに変換され、それによって、変換後に、ファイル・フォーマットがすべてのサポートされたデータ・フォーマットを含むことができるため、混合モードのモーダル区間演算が可能になる。
また、本発明は、任意の計算作業中、例外条件を検出し、示し、処理する機能も含む。演算中に例外条件が生じるたびに識別を行うことができる各例外条件への特定の応答が行われる。各例外条件の場合、1組のユーザ選択可能スイッチが、どの固有の応答が生成されるかを決定する。応答は、処理を停止するかまたは演算のその時点で、生じた例外条件の正確な状況によって決定される特定の応答を挿入することによって演算を続行する割り込み(interrupt )の生成を含み得る。すべての場合において、ユーザが、例外条件の正確な本質に気づき、次いでソフトウェアで適切な対策を講じる選択肢を有するように、例外条件が生じたことの表れは、失われず、演算全体を通じてモーダル区間プロセッサ内に格納されたままである。
モーダル区間プロセッサは、符号付きゼロおよび符号付き無限大の両方を処理することができ、それによって、ゼロまたは無限大の逆数を伴うモーダル区間演算において対称性を保持する機能をその能力内に含めることができる。また、モーダル区間プロセッサは、空のモーダル区間を処理し、演算によりそれらを静かに(silently)伝播する機能を備えてもよい。さらに、本発明は、モーダル区間演算によって必要とされる「外向きの丸め(outward rounding)」に従ってモーダル区間情報を丸める手段を含む。
本発明のシステムおよび方法を理解するために、まず、集合論的区間の欠陥およびモーダル区間に対する動機付けについて検討する。集合論的区間は、もっぱら実数のコンパクト集合として定義される。例えば、集合論的区間[2,7]は、2≦x≦7になるようなすべての実数xを表す。伝統的な区間演算は、区間関係および区間演算を純粋に集合論的に定義する。しかし、区間のこの狭い定義には、問題がある。
簡単な例、A+X=Bについて検討する。一例として、Xが未知の変数である場合、A、X、およびBは、集合論的区間[3,7]+X=[1,2]の式によって与えられると仮定する。Xについて解くには、式をX=[1,2]−[3,7]と並べ替える必要があり、結果X=[−6,−1]が得られる。次いで、置換によって、[3,7]+[−6,−1]≠[1,2]となる。元の式は、もはや真ではない。これは、集合論的区間演算の欠陥の一例であるが、文献は、他の例も多数見られる。一般に、こうした欠陥は、集合論的区間演算子および関係にも同様に当てはまる。
純粋な集合論的区間とは異なり、モーダル区間は、2つの基本成分または要素からなる。これら2つの成分のうちの第1の成分は、集合論的区間である。この事実のため、モーダル区間の集合論的区間との関係を、明らかに真の上位集合と考えることができる。すなわち、モーダル区間は、集合論的区間のすべての特徴以上を有する。モーダル区間の第2の成分は、モーダル量化値であり、これは、「存在」または「全称」の様相の二値の指標である。すべての実数を符号および大きさで表すことができるのと同じように、すべてのモーダル区間も量化子および集合論的区間で表すことができる。したがって、複素数が実数のより高次元の構成体であるように、モーダル区間は、本質的に、集合論的区間のより高次元の構成体である。上記の「課題を解決するための手段」で説明したように、量化値は、明示的な表記または暗黙的な表記のいずれかによって定義することができる。
モーダル区間の本質そのものが、それと共に集合論的区間より多くの情報を持っているため、モーダル区間演算子および関係は、伝統的な集合論的区間演算子および関係より複雑である。したがって、既存の区間プロセッサ設計は、モーダル区間演算に使用するには、不十分であり、不適当である。共通集合について2つの集合論的区間を比較するための比較的簡単なハードウェア設計でさえ、モーダル区間についての正しい結果を算出することができない。とりわけ、既存の区間プロセッサ設計は、純粋に集合論的区間に基づく任意の設計に常に欠けている重大な要素であるモーダル量化子を検討する機能がない。
次に、モーダル区間プロセッサが対応する必要のあるデータ・フォーマットについて検討する。コンピュータ内でモーダル区間を表す方法はたくさんある。実際のバイナリ・データ・フォーマットに関係なく、いくつかの基本的な要件が満たされなければならない。最低限でも、データ・フォーマットは、集合論的区間およびモーダル量化子の表現に対応していなければならない。伝統的な区間との下位互換性は、ユーザから見て、単に、モーダル区間プロセッサに送信された各集合論的区間の任意のしかし一貫したデフォルトの量化子を提供することによって、容易に対応できる。したがって、モーダル区間プロセッサは、純粋な集合論的区間をモーダル区間に格上げする任意の明確な機能を必要としない。
最後に、現代の区間計算を使用して演算を行う者の窮状について検討する。こうしたユーザは、モーダル区間演算はもちろん、任意のタイプの区間計算のネイティブ・サポートを欠く汎用ハードウェアにおける集合論的区間演算およびモーダル区間演算の性能不足を経験する。「モーダル区間計算器」という名称で現在「http://mice.udg.es/cgi-bin/mi_fstar.cgi?t=1&h=1 」のURLを有するWebサイトは、ソフトウェアにMI演算を実装している。このWebサイトは、要求された演算に60秒の制限時間を課している。
1980年のインテル(Intel )8087などの浮動小数点プロセッサの導入前は、ソフトウェア・エミュレーションのみが浮動小数点演算を可能にしていた。これは、ほとんどの中央演算処理装置の論理演算装置は、整数データ・フォーマットおよび整数命令(integer instruction )のみをサポートしていたという事実による。したがって、ソフトウェアは、正しい浮動小数点結果を算出するために、浮動小数点データ・フォーマットを、整数ハードウェア・レジスタ内で操作できる2進表現に分解する必要があった。これによって、演算が遅くなり、ソフトウェア開発者にとって複雑なプログラミング・インターフェイスがもたらされた。実際に、乗算など、簡単な浮動小数点算術演算の実行は、何十のプロセッサ命令および多分岐条件(multiple branch conditions)を必要とする可能性がある。
こうしたことは、現代の区間の実践者にも当てはまるが、状況はいっそう悪くなる。現代のほとんどの区間演算は、汎用コンピュータ・チップ・メーカーのすべての有名ブランド名における区間データ・タイプおよび区間命令のネイティブ・サポートの欠如のために、依然としてソフトウェアで実行されている。「モーダル区間計算器」という上記のWebサイトを参照されたい。集合論的区間演算用のソフトウェア・エミュレーション・ライブラリが多数存在し、そのほとんどは、集合論的区間の端点を指定する数字にIEEE754浮動小数点表現を使用している。区間演算を行うために、ソフトウェア・ルーチンは、区間の端点に一連の浮動小数点演算を実行する必要がある。2つの集合論的区間の乗算は、例えば、2つの集合論的区間を表す4つのSTN値の符号に基づく一連の複雑な分岐条件の実行を必要とする。この問題は、2つのモーダル区間を乗算としたときに悪化する。その理由は、各モーダル区間のモーダル量化子によってもたらされた複雑さを適切に考慮するために、考え得る分岐条件の数が倍増するからである。
しかし、すべての場合において、ソフトウェアにおける区間演算の実行の最悪の側面は、有向の丸め(directed rounding )に関するものである。集合論的区間演算およびモーダル区間演算はいずれも、「外向きの丸め」の概念を必要とする。例えば、小数点2桁の精度しかサポートしない何らかの仮定のコンピュータにおいて、区間[1.3998,1.7912]は、[1.39,1.80]に丸められるはずである。すなわち、より下の区間境界(interval bound)は、負の無限大に丸められ、上側の区間境界は、正の無限大に丸められる。すべて現代のIEEE754準拠のプロセッサでは、この有向の丸めは、浮動小数点プロセッサの丸めモードの変更を必要とする。
現代のほとんどの浮動小数点プロセッサは、深いパイプライン・アーキテクチャを実装しており、プロセッサの丸めモードの変更は、しばしばパイプラインを強制的にフラッシュする可能性がある。区間演算のソフトウェア・エミュレーションは、前の丸めモードに戻る前に1つまたは2つだけの浮動小数点演算を行うために、しばしば、丸めモードの切替の必要がある。これによって、プロセッサは停止し、性能の膨大な損失がもたらされる。すなわち、区間演算のソフトウェア・エミュレーションにおいて有向の丸め操作を処理するのに費やされた時間は、余分なプロセッサ命令または分岐条件の簡単なオーバーヘッドよりかなり悪いことが多い。研究者は、浮動小数点数に対する単一命令・複数データ(Single Instruction Multiple Data:SIMD)演算をサポートする人気のあるデスクトップ・プロセッサに見られるマルチメディア・ハードウェア・レジスタの使用を調査している。これらの場合でさえ、有向の丸めは非常に有害であることがわかる。
その結果、よく知られているベクトル演算ハードウェア回路は、集合論的演算またはMI演算のソフトウェア実装に解決策や利益をもたらさない。
現段階では、いくつかの点が主張されている。まず、モーダル区間プロセッサに対する動機付けは、集合論的区間の欠陥、したがって純粋な集合論の実装に基づく区間プロセッサの欠陥に基づいている。第2に、モーダル区間プロセッサが演算を行うことになっているデータ・フォーマットは、集合論的区間および量化子からなるモーダル区間を表すことができなければならない。第3に、モーダル区間プロセッサは、簡略化されたプログラミング・モデルをユーザに提供すると同時に、性能の犠牲およびソフトウェア・エミュレーションのオーバーヘッドを取り除き、この場合の最も重要な性能の犠牲は、区間演算によって必要とされる有向の丸めの結果である。
モーダル区間プロセッサを含む論理回路の目的は、実数のコンパクト集合、およびモーダル量化子、すなわちモーダル区間をそれぞれ表す複数のデータ・フォーマットに対して計算を行うことである。したがって、モーダル区間プロセッサは、3つの主要成分からなる。第1に、複数のデータ・フォーマットを、複数のデータ・フォーマットのいずれかより大きいモーダル区間領域を有するファイル・フォーマットに変換したり、そのフォーマットから変換したりする手段は、モーダル区間バスに接続されている。第2に、ファイル・フォーマットでモーダル区間情報を格納するように構成されている複数のハードウェア・レジスタを含むレジスタ・ファイルは、モーダル区間バスに結合されている。第3に、モーダル区間情報に対してファイル・フォーマットでモーダル区間演算を実行するために使用されるモーダル区間処理ユニット(MIPU)も、モーダル区間バスに接続されている。要素のこの組み合わせにより、すべてのデータ・フォーマットは、任意のモーダル区間量よりダイナミック・レンジが大きく、モーダル区間プロセッサがそれを操作することを求められ得るファイル・フォーマットに変換され、それによって、変換後に、ファイル・フォーマットがすべてのサポートされたデータ・フォーマットを含むことができるため、混合モードのモーダル区間計算が可能になる。
モーダル区間プロセッサ・ユニット(MIPU)の好ましい実施形態は、集積回路として作られた高性能プロセッサ・ロジックである。この回路は、コプロセッサの形の個別のパッケージ、または、中央演算処理装置のコアと同じシリコンを共有する、より一般的な中央演算処理装置の一体部分とすることができる。フィールド・プログラマブル・ゲート・アレイ(FPGA)技術における近年の進歩のため、回路は、シリコン・チップに流されるソフトウェア・マイクロコードであってもよい。こうした状況では、ソフトウェアは、永久的な物理的存在を有しているという点で、ハードウェアのすべての特徴を得る。
本発明の一実施形態は、端点を定義する2つの集合論的数字(STN)と共に、MIを量化値として格納する。各STNは、スケーリングされた整数、固定小数点、または2つの整数の比を含み得る。本発明の別の実施形態は、よく知られているIEEE754規約を使用して、MIの各STNの端点を定義することができる。量化値は、記憶素子における専用のビット位置による明示的なものでもよく、あるいは、STNが記憶素子の第1および第2の位置に格納されている順によって定義される値による暗黙的なものでもよい。これについては上述したとおりである。
MIPUの機能的属性は、モーダル区間プロセッサの最も重要な特徴、すなわち、複数のハードウェア・レジスタ内にファイル・フォーマットで格納されたモーダル区間情報の処理を提供する。好ましい実施形態は、4つの基本的なモーダル区間算術演算子、+、−、×および÷、基本的なモーダル区間関係<、≦、≧、>、⊆、⊇、=および≠、格子演算子(lattice operator)min、max、∧(適合)および∨(結合)、およびモーダル区間双対(dual)演算子を実装する構造を提供する。sqrt、ln、exp、sin、cos、tanなど、超越(transcendental)モーダル区間演算子を含む追加のプロセッサ命令を提供することもできる。
好ましい一実施形態では、モーダル区間プロセッサは、ファイル・フォーマットを使用し、モーダル区間情報が、集合論的数字(STN)と呼ばれる2つの浮動小数点数、および暗黙的に指定された量化子値によって表される。この場合、浮動小数点演算の回路は、MIPUの構成要素を形成し、構成要素は、モーダル区間超越関数および三角関数の端点を評価するために、多項近似法およびCORDIC法の使用の基礎を提供する。
モーダル区間の双対性のため、モーダル区間演算によって必要とされる内外の丸めモードは、実際には、単一の丸めモードのみを提供することによって実施することができる。例えば、ハードウェア回路において外向きの丸めのみが実施される場合、モーダル区間の双対に行われる外向きの丸めは、元のモーダル区間の正しい内向きの丸めを提供することができる。これによって、MIPUの回路設計を簡略化し、高度に最適化することができる。その理由は、外向きの丸めを回路の機能設計に組み込むことができ、それによって、複数の丸めモードをサポートしたり複数の丸めモード間で切替を行ったりする必要性を回避できるからである。
こうした好ましい実施形態は、組み込まれた複数の浮動小数点回路を使用して、モーダル区間の端点を処理することができる。この場合、浮動小数点回路の中には、負の無限大の方に丸めるように組み込まれるものがある一方で、正の無限大の方に丸めるように組み込まれるものもある。
トランジスタ数が重要である場合、好ましい実施形態は、組み込まれた単一の浮動小数点回路のみをサポートし、通常の手を使用して反対方向に丸められる浮動小数点演算を評価することができる。例えば、浮動小数点回路が正の無限大の方に丸めるように組み込まれている場合、z=−((−x)−y)の評価は、負の無限大の方に丸めるように組み込まれた浮動小数点回路において、まさに式z=x+yが評価されたかのように、浮動小数点値zを生成する。
こうしたすべての理由により、実際、MIPUは、丸めモードの動的な切替を決してサポートしてはならず、それによって高度に最適化された回路、さらにはパイプライン設計の機会が提供される。
モーダル区間プロセッサは、符号付きゼロおよび符号付き無限大の両方を処理することができ、それによって、ゼロまたは無限大の逆数を伴うモーダル区間演算において対称性を保持する機能をその能力内に含めることができる。また、モーダル区間プロセッサは、空のモーダル区間を処理し、演算によりそれらを静かに伝播する機能を備えていてもよい。
モーダル区間プロセッサは、ハードウェア・レジスタ内に格納されたモーダル区間情報に対する演算を行うため、モーダル区間プロセッサの残りの機能的属性は、任意の演算中の例外条件を検出し、示し、処理することである。演算中に例外条件が生じるたびに識別を行うことができる各例外条件への特定の応答が行われる。
各例外条件の場合、1組のユーザ選択可能スイッチが、どの固有の応答が生成されるかを決定する。応答は、処理を停止する、または演算のその時点で、生じた例外条件の正確な状況によって決定される特定の応答を挿入することによって演算を続行する中断の生成を含み得る。識別できる例外条件の正確な性質は、本発明の特定の実施形態によって決まる。例えば、モーダル区間情報が2つの浮動小数点数および暗黙的な量化子値によって表されるファイル・フォーマットを使用する一実施形態、IEEE754によって指定された通常の組の例外条件を検出することができる。
本発明のこうした特定の実施形態によって生じ得る例外条件に関係なく、モーダル区間プロセッサは、常に、負の数を含むモーダル区間の平方根をとるなど、演算の有効な領域外で働く任意のモーダル区間演算から生じる例外的条件を検出する。
この場合、ユーザ選択可能スイッチに応じて、モーダル区間プロセッサは、例外条件の結果、処理を停止するための中断を生成したり、空のモーダル区間を戻したりすることができる。すべての場合において、ユーザに、例外条件の正確な本質に気づき、次いでソフトウェアで適切な対策を講じる選択肢があるように、例外条件が生じたことの表れは、失われず、演算全体を通じてモーダル区間プロセッサ内に格納されたままである。
したがって、本発明は、純粋な集合論的区間プロセッサに改良を導入して、モーダル区間を確実に処理できる機能を追加する。演算の信頼性は、モーダル区間プロセッサが処理を求められる任意のデータ・フォーマットより大きいダイナミック・レンジですべての演算を行うことによって容易にされ、演算の追加の信頼性は、識別を行うことができる各例外条件を処理する頑強な機構によって容易にされる。最も重要なことには、記載されたすべての部分の組み合わせによって、モーダル区間プロセッサは、モーダル区間演算はもちろん、任意のタイプの区間演算のネイティブ・サポートを欠く汎用ハードウェアにおけるモーダル区間演算の性能に現在制限されているユーザに、簡単で洗練された、計算上効率的なプログラミング・インターフェイスを提供する。
次に、図1〜図4を参照すると、すべてのMIを、量化値の暗黙的な規約または表記と共に示している。明示的な表記および暗黙的な表記は、完全に同等である。
図1は、STNA1部35aおよびSTNA2部35bを有する第1のオペランド・レジスタ35と、STNB1部40aおよびSTNB2部40bを有する第2のオペランド・レジスタ40とを示している。オペランド・レジスタ35,40はそれぞれ、パス42,45上にオペランド信号を提供する。
MI演算装置(MIAU)20は、オペランド・レジスタ35,40から2つのオペランド信号を受信する。また、MIAU20は、パス42,45の信号に符号化されたMIオペランド上で算術演算を実行する。
マルチプレクサ(MUX)68は、MAIU20内の様々な算術関数ユニット(AFU)から複数の結果信号内のMIAU20の出力を受信する。演算制御装置(ACU)30からセレクタ信号パス32上のセレクタ信号がマルチプレクサ68に供給され、それによって、マルチプレクサ68は、MIAU20内の複数のAFUのうちの1つからの結果信号を選択する。この信号は、結果信号内の結果レジスタ43のSTN部43a,43bに送信される。当然、オペランド・レジスタ35,40の各々および結果レジスタはすべて、示される2つのSTN値、この場合は量化子値を有するMI値を記録する。
図2は、図1をより詳しく示している。オペランド・レジスタ内の値は、オペランド・バス52,55に適用され、それぞれSTNパス52a,52bおよびSTNパス55a,55b上で、オペランド・レジスタA35,B40の部分にそれぞれ記録されたSTN,STNの値が運ばれる。バス52,55は、それぞれSTNA1,STNA2,STNB1,STNB2の値を、様々なAFU要素80a,80b,…80nにそれぞれ配信する。算出された算術関数の中には、単一のオペランドしか受信しないものもあり得る。AFU80bは、STNA1,STNA2の値のみを受信する、単一要素からなる算術関数の一例である。
AFU〜AFU80a〜80nは、バス52,55上のオペランド信号を受信する。AFU〜AFU80a〜80nの各々は、割り当てられた算術関数を算出し、算出されたMI中の各STN結果R1,R2の結果信号に符号化された演算の結果を提供する。当然、R1,R2の値に符号化された符号付きの相対的大きさは、特定のAFU80aなどによって提供されたMIの量化値を決定する。
マルチプレクサ68は、それぞれ2つのSTN値R1,R2のうちの一方を処理する2つの個別のマルチプレクサ部A68a,B68bからなる。マルチプレクサ部A68a,B68bはそれぞれ、マルチビット入力ポート71a,71bを有する。AFU80aからのR1値は、セクションA68aの入力ポート71aにおけるポート0に割り当てられ、AFU80aからのR2値は、セクションB68bの入力ポート71bにおけるポート0に割り当てられる。ACU30は、セレクタ信号をパス32上に提供し、各マルチプレクサ部68a,68bの複数のポートのうちの一つに適用される信号のみが結果レジスタを通過できるようにする。例えば、セレクタ信号値が0の場合、R1,R2の値を結果レジスタ43に送信するように、マルチプレクサ部68a,68bの両方の入力ポート0が作動される。
図3は、一例として、2つのMIオペランドを必要とする追加ユニットとしてAFU80aの構成を示している。加算器58aは、パス52a,52b上の信号中のSTNA1,STNB1の値を受信し、第1の予備結果値STNA1+STNB1 を生成する。加算器58bは、パス55a,55b上の信号中のSTNA2,STNB2の値を受信し、第2の予備結果値STNA2+STNB2 を生成する。
丸め要素84aは、上記第1予備補正値を−無限大に丸める。丸め要素84bは、上記第2予備補正値を+無限大に丸める。次いで、丸め要素84aからの丸められたMIR1は、マルチプレクサ部A68aの入力ポート71aのポート0に送信される。丸め要素84bからの丸められたMIR2は、マルチプレクサ部B68bの入力ポート71bのポート0に送信される。
図4は、dual関数を計算するために単一のMIオペランド入力のみを必要とするAFUの非常に簡単な例である。図4の回路は、結果レジスタ43におけるSTNA1,STNB1の位置を逆にすることによってオペランドAの量化値を逆にする。よく知られているように、ほとんどの超越関数は、似ており、入力として単一のMIオペランドのみを有する。
複数のMI数学関数を演算するための論理回路のブロック図。 論理図の詳細なブロック図。 市販版の論理回路に含まれ得る2つの一般的な数学関数の図。 市販版の論理回路に含まれ得る2つの一般的な数学関数の図。

Claims (29)

  1. オペランド信号に符号化された少なくとも1つのモーダル区間(MI)オペランド値に基づいて、セレクタ信号の第1および第2の値にそれぞれ対応する少なくとも第1および第2の異なるMI関数における第1および第2のMI結果値を算出する論理回路であって、各MI値が、ある範囲の実数の第1および第2の端点を定義する第1および第2のマルチビットの集合論的数字(STN)を含んでおり、全称量化値および存在量化値のうちの一方を符号化する論理回路であって、
    a)前記オペランド信号を受信するように接続された少なくとも第1および第2の算術関数ユニット(AFU)であって、前記オペランド信号に符号化された各MIオペランド値を引数として用いて算術演算を行い、第1および第2の結果信号である前記第1および第2のMI結果値をそれぞれ出力する第1および第2の算術関数ユニット(AFU)と、
    b)前記セレクタ信号を受信するセレクタ入力と、MI結果値を符号化した出力信号を出力するマルチビット出力ポートと、前記第1および第2のAFUによりオペランド信号として供給される前記第1および第2の結果信号をそれぞれ受信するように接続された少なくとも第1および第2のマルチビット入力ポートとを有するマルチプレクサであって、前記第1および第2の入力ポートの各々は単一のセレクタ信号値に関連付けられており、現在のセレクタ信号値に関連付けられている入力ポートに入力された前記MI結果値を、前記出力ポートより出力される出力信号に符号化して出力するマルチプレクサと、
    c)各MI結果値を格納し、前記マルチプレクサの出力ポートより出力された値を受信するように接続された結果レジスタと、
    を備える論理回路。
  2. 第1および第2のオペランド信号に符号化された第1および第2のMIオペランドに基づいて少なくとも1つのMI関数が計算され、
    前記第1のAFUは第1および第2の算術要素を含み、前記第1および第2の算術要素の各々は第1および第2のSTN入力を有し、前記第1のAFUの第1の算術要素は前記第1および第2のMIオペランド信号から前記第1のSTN値を受信するように接続されており、前記第1のAFUの第2の算術要素は前記第1および第2のMIオペランド信号から前記第2のSTN値を受信するように接続されており、各算術要素は、入力されたSTN値に基づいて算術関数を前記結果信号に符号化する、請求項1に記載の論理回路。
  3. 前記第1のAFUの第1および第2の算術要素の各々は、入力されたSTN値の合計を求める加算器を含む、請求項2に記載の論理回路。
  4. 前記第1の算術要素は、該第1の算術要素により求められたSTN値の合計を負の無限大に丸める丸め要素を含み、前記第2の算術要素は、該第2の算術要素により求められたSTN値の合計を正の無限大に丸める丸め要素を含む、請求項3に記載の論理回路。
  5. 前記第1および第2の算術要素は、標準化された浮動小数点フォーマットに基づいてMI値をそれぞれ算出する、請求項4に記載の論理回路。
  6. 前記少なくとも第1および第2のAFUのうちの1つは、加算、減算、乗算、および除算からなる群から選択されたMI算術演算を実行する構造を含む、請求項1に記載の論理回路
  7. 前記少なくとも第1および第2のAFUのうちの1つは、<、≦、≧、>、⊆、⊇、=、および≠からなる群から選択されたMI関係を評価する構造を含む、請求項1に記載の論理回路。
  8. 前記少なくとも第1および第2のAFUのうちの1つは、min、max、∧、および∨からなる群から選択されたMI格子(lattice)演算を実行する構造を含む、請求項1に記載の論理回路。
  9. 前記少なくとも第1および第2のAFUのうちの1つは、sqrt、ln、exp、sin、cos、およびtanからなる群から選択されたMI超越(transcendental)演算を実行する構造を含む、請求項1に記載の論理回路。
  10. 前記少なくとも第1および第2のAFUのうちの1つは、MI双対(dual)演算を実行する構造を含む、請求項1に記載の論理回路。
  11. 集積回路として構成される請求項1に記載の論理回路。
  12. コプロセッサとして構成される請求項1に記載の論理回路。
  13. ソフトウェア・マイクロコードとして構成される請求項1に記載の論理回路。
  14. シリコンチップ内に埋め込まれるソフトウェア・マイクロコードとして構成される請求項1に記載の論理回路。
  15. 第1および第2のオペランド信号に符号化された第1および第2のMIオペランドに基づいて少なくとも1つのMI関数が計算され、
    前記第1のAFUは第1および第2の算術要素を含み、前記第1および第2の算術要素の各々は第1および第2のSTN入力を有し、前記第1のAFUの前記第1の算術要素は前記第1のMIオペランド信号から前記第1のSTN値を受信するとともに前記第2のMIオペランド信号から前記第2のSTN値を受信するように接続されており、前記第1のAFUの前記第2の算術要素は前記第1のMIオペランド信号から前記第2のSTN値を受信するとともに前記第2のMIオペランド信号から前記第1のSTN値を受信するように接続されており、各算術要素は、入力されたSTN値に基づいて算術関数を前記結果信号に符号化する、請求項1に記載の論理回路。
  16. 前記第1のAFUの前記第1および第2の算術要素の各々は、入力されたSTN値の差を得る減算器を含む、請求項14に記載の論理回路。
  17. 前記第1の算術要素は、該第1の算術要素により求められたSTN値の差を負の無限大に丸める丸め要素を含み、前記第2の算術要素は、該第2の算術要素により求められたSTN値の差を正の無限大に丸める丸め要素を含む、請求項15に記載の論理回路。
  18. 前記第1および第2の算術要素は、標準化された浮動小数点フォーマットに基づいてMI値をそれぞれ算出する、請求項16に記載の論理回路。
  19. 前記少なくとも第1および第2のAFUのうちの1つが、前記オペランド信号に符号化された前記少なくとも1つのMIオペランド値のうちの第1MIオペランド値のマルチビット集合論的数字STN A1 ,STN A2 と、前記オペランド信号に符号化された前記少なくとも1つのMIオペランド値のうちの第2MIオペランド値のマルチビット集合論的数字STN B1 ,STN B2 とを選択的に受信するように構成されており、当該AFUが、前記第1および第2の結果信号において、それぞれR1,R2で表される前記第1および第2のMI結果値を生成する、請求項1に記載の論理回路。
  20. 当該AFUが、前記第1および第2のMI結果値を丸める少なくとも1つの丸め要素を含む、請求項19に記載の論理回路。
  21. 当該AFUが、前記第1のMI結果値R1を負の無限大に丸める第1の丸め要素と、前記第2のMI結果値R2を正の無限大に丸める第2の丸め要素とを含む、請求項19に記載の論理回路。
  22. 加算、減算、乗算、および除算からなる群から選択される前記算術演算が当該AFUによって前記MI結果値R1,R2を生成するように行われる、請求項21に記載の論理回路。
  23. 加算、減算、乗算、および除算からなる群から選択される前記算術演算が当該AFUによって前記MI結果値R1,R2を生成するように行われる、請求項19に記載の論理回路。
  24. 前記少なくとも第1および第2のAFUのうちの1つが、前記オペランド信号に符号化された前記少なくとも1つのMIオペランド値のうちの第1MIオペランド値のマルチビット集合論的数字STN A1 ,STN A2 を選択的に受信するように構成されており、当該AFUが、前記第1および第2の結果信号において、それぞれR1,R2で表される前記第1および第2のMI結果値を生成する、請求項1に記載の論理回路。
  25. 当該AFUが、前記第1および第2のMI結果値を丸める少なくとも1つの丸め要素を含む、請求項24に記載の論理回路。
  26. 当該AFUが、前記第1のMI結果値R1を負の無限大に丸める第1の丸め要素と、前記第2のMI結果値R2を正の無限大に丸める第2の丸め要素とを含む、請求項24に記載の論理回路。
  27. 加算、減算、乗算、および除算からなる群から選択される前記算術演算が当該AFUによって前記MI結果値R1,R2を生成するように行われる、請求項26に記載の論理回路。
  28. 加算、減算、乗算、および除算からなる群から選択される前記算術演算が当該AFUによって前記MI結果値R1,R2を生成するように行われる、請求項24に記載の論理回路。
  29. 当該AFUがMI双対演算を行うことにより、STN A2 によって特徴化されるR1と、STN A1 によって特徴化されるR2とを求める、請求項24に記載の論理回路。
JP2008505470A 2005-04-05 2006-04-05 モーダル区間プロセッサ Expired - Fee Related JP4932827B2 (ja)

Applications Claiming Priority (13)

Application Number Priority Date Filing Date Title
US66853905P 2005-04-05 2005-04-05
US60/668,539 2005-04-05
US72210305P 2005-09-30 2005-09-30
US72210705P 2005-09-30 2005-09-30
US60/722,107 2005-09-30
US60/722,103 2005-09-30
US72321605P 2005-10-03 2005-10-03
US72305905P 2005-10-03 2005-10-03
US72324905P 2005-10-03 2005-10-03
US60/723,216 2005-10-03
US60/723,249 2005-10-03
US60/723,059 2005-10-03
PCT/US2006/012547 WO2006107996A2 (en) 2005-04-05 2006-04-05 Modal interval processor

Publications (3)

Publication Number Publication Date
JP2008541202A JP2008541202A (ja) 2008-11-20
JP2008541202A5 JP2008541202A5 (ja) 2009-05-28
JP4932827B2 true JP4932827B2 (ja) 2012-05-16

Family

ID=37074049

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008505470A Expired - Fee Related JP4932827B2 (ja) 2005-04-05 2006-04-05 モーダル区間プロセッサ

Country Status (7)

Country Link
US (3) US7949700B2 (ja)
EP (1) EP1872201A4 (ja)
JP (1) JP4932827B2 (ja)
AU (1) AU2006231545B9 (ja)
CA (2) CA2604043C (ja)
NZ (1) NZ563047A (ja)
WO (1) WO2006107996A2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007041561A2 (en) * 2005-10-03 2007-04-12 Sunfish Studio, Llc Representation of modal intervals within a computer
CA2624263C (en) * 2005-10-03 2016-06-21 Sunfish Studio, Llc Reliable and efficient computation of modal interval arithmetic operations
US8005885B1 (en) * 2005-10-14 2011-08-23 Nvidia Corporation Encoded rounding control to emulate directed rounding during arithmetic operations
WO2013067297A1 (en) * 2011-11-04 2013-05-10 Sunfish Studio, Llc Digital encoding method for parallel rendering of synthesized images
CA2882032C (en) 2012-08-15 2021-07-27 Sunfish Studio Llc Modal interval calculations based on decoration configurations
US11061993B2 (en) 2012-08-15 2021-07-13 Modal Technology Corporation Apparatus for performing modal interval calculations based on decoration configuration
GB2572622B (en) 2018-04-05 2022-02-16 Imagination Tech Ltd Evaluating a mathematical function in a computational environment

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4417314A (en) * 1981-07-14 1983-11-22 Rockwell International Corporation Parallel operating mode arithmetic logic unit apparatus
US5027308A (en) * 1989-02-14 1991-06-25 Intel Corporation Circuit for adding/subtracting two floating point operands
US5010508A (en) * 1989-02-14 1991-04-23 Intel Corporation Prenormalization for a floating-point adder
EP0429733B1 (en) * 1989-11-17 1999-04-28 Texas Instruments Incorporated Multiprocessor with crossbar between processors and memories
DE4334294C1 (de) * 1993-10-08 1995-04-20 Ibm Prozessor für Zeichenketten variabler Länge
US5598362A (en) * 1994-12-22 1997-01-28 Motorola Inc. Apparatus and method for performing both 24 bit and 16 bit arithmetic
US6351760B1 (en) * 1999-01-29 2002-02-26 Sun Microsystems, Inc. Division unit in a processor using a piece-wise quadratic approximation technique
US7107302B1 (en) * 1999-05-12 2006-09-12 Analog Devices, Inc. Finite impulse response filter algorithm for implementation on digital signal processor having dual execution units
US6697832B1 (en) * 1999-07-30 2004-02-24 Mips Technologies, Inc. Floating-point processor with improved intermediate result handling
US6658443B1 (en) * 1999-11-03 2003-12-02 Sun Microsystems, Inc. Method and apparatus for representing arithmetic intervals within a computer system
US7069288B2 (en) * 2001-05-25 2006-06-27 Sun Microsystems, Inc. Floating point system with improved support of interval arithmetic
US7640285B1 (en) * 2004-10-20 2009-12-29 Nvidia Corporation Multipurpose arithmetic functional unit

Also Published As

Publication number Publication date
US20110225221A1 (en) 2011-09-15
US20150019609A1 (en) 2015-01-15
CA2604043A1 (en) 2006-10-12
EP1872201A2 (en) 2008-01-02
AU2006231545B9 (en) 2011-09-29
US9588736B2 (en) 2017-03-07
AU2006231545A1 (en) 2006-10-12
US7949700B2 (en) 2011-05-24
WO2006107996A2 (en) 2006-10-12
CA2822125A1 (en) 2006-10-12
CA2822125C (en) 2016-06-07
CA2604043C (en) 2013-08-06
US20080012599A1 (en) 2008-01-17
US8849881B2 (en) 2014-09-30
WO2006107996A3 (en) 2007-03-22
JP2008541202A (ja) 2008-11-20
EP1872201A4 (en) 2009-10-28
NZ563047A (en) 2011-02-25
AU2006231545B2 (en) 2011-09-22

Similar Documents

Publication Publication Date Title
JP4932827B2 (ja) モーダル区間プロセッサ
JP4953644B2 (ja) 正規化および丸め処理前にフィードバックを行う浮動小数点ユニットのためのシステムおよび方法
CN107077415B (zh) 用于执行转换运算的装置和方法
JP6684713B2 (ja) 融合積和演算を実行するための方法及びマイクロプロセッサ
US7236995B2 (en) Data processing apparatus and method for converting a number between fixed-point and floating-point representations
Kulisch Computer arithmetic and validity: theory, implementation, and applications
US7555514B2 (en) Packed add-subtract operation in a microprocessor
Schulte et al. A family of variable-precision interval arithmetic processors
GB2497469B (en) Multiply add functional unit capable of executing scale,round,Getexp,round,getmant,reduce,range and class instructions
TWI389028B (zh) 多用途之乘加法功能單元
US7219117B2 (en) Methods and systems for computing floating-point intervals
Schulte et al. Variable-precision, interval arithmetic coprocessors
US7475104B2 (en) System and method for providing a double adder for decimal floating point operations
US6615228B1 (en) Selection based rounding system and method for floating point operations
US20090265529A1 (en) Processor apparatus and method of processing multiple data by single instructions
US8204926B2 (en) Reliable and efficient computation of modal interval arithmetic operations
de Dinechin et al. A proven correctly rounded logarithm in double-precision
Alajmi Implementing Booth Algorithms on FPGA
Underwood Ieee Floating-Point Extension for Managing Error Using Residual Registers
JP2006171827A (ja) 演算処理装置および演算処理プログラム
Pant Discrete sine and cosine transforms on parallel processors
Amăricăi On the Design of Floating Point Units for I nterval Arithmetic
Zhang A high performance pseudo-multi-core elliptic curve cryptographic processor over GF (2^ 163)
Ottoy et al. Modular Simultaneous Exponentiation IP Core Specification
JPH1069372A (ja) 演算実行方法及び演算装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090406

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090406

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: 20120124

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: 20120215

R150 Certificate of patent or registration of utility model

Ref document number: 4932827

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150224

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