説明

モーダル区間プロセッサ

論理回路は、複数の算術関数ユニット(20)を使用して様々なモーダル区間計算値を算出する。マルチプレクサ(68)は、所望の計算値を記憶レジスタ(43)にゲート制御によって出力する。

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

【特許請求の範囲】
【請求項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のAFUの第1の算術要素は、入力されたMI値の双対を形成する回路を含む、請求項2に記載の論理回路。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公表番号】特表2008−541202(P2008−541202A)
【公表日】平成20年11月20日(2008.11.20)
【国際特許分類】
【出願番号】特願2008−505470(P2008−505470)
【出願日】平成18年4月5日(2006.4.5)
【国際出願番号】PCT/US2006/012547
【国際公開番号】WO2006/107996
【国際公開日】平成18年10月12日(2006.10.12)
【出願人】(505458337)サンフィッシュ スタジオ エルエルシー (1)
【氏名又は名称原語表記】SUNFISH STUDIO,LLC
【Fターム(参考)】