(57)【要約】論理回路は、複数の算術関数ユニット（２０）を使用して様々なモーダル区間計算値を算出する。マルチプレクサ（６８）は、所望の計算値を記憶レジスタ（４３）にゲート制御によって出力する。
2008541202.tif 000002
【特許請求の範囲】
【請求項１】
オペランド信号に符号化された少なくとも１つのモーダル区間（ＭＩ）オペランド値に基づいて、セレクタ信号の第１および第２の値にそれぞれ対応する少なくとも第１および第２の異なるＭＩ関数における第１および第２のＭＩ結果値を算出する論理回路であって、各ＭＩ値が、ある範囲の実数の第１および第２の端点を定義する第１および第２のマルチビットの集合論的数字（ＳＴＮ）を含んでおり、全称量化値および存在量化値のうちの一方を符号化する論理回路であって、
ａ）前記オペランド信号を受信するように接続された少なくとも第１および第２の算術関数ユニット（ＡＦＵ）であって、前記オペランド信号に符号化された各ＭＩオペランド値を引数として用いて算術演算を行い、第１および第２の結果信号である前記第１および第２のＭＩ結果値をそれぞれ出力する第１および第２の算術関数ユニット（ＡＦＵ）と、
ｂ）前記セレクタ信号を受信するセレクタ入力と、ＭＩ結果値を符号化した出力信号を出力するマルチビット出力ポートと、前記第１および第２のＡＦＵによりオペランド信号として供給される前記第１および第２の結果信号をそれぞれ受信するように接続された少なくとも第１および第２のマルチビット入力ポートとを有するマルチプレクサであって、前記第１および第２の入力ポートの各々は単一のセレクタ信号値に関連付けられており、現在のセレクタ信号値に関連付けられている入力ポートに入力された前記ＭＩ結果値を、前記出力ポートより出力される出力信号に符号化して出力するマルチプレクサと、
ｃ）各ＭＩ結果値を格納し、前記マルチプレクサの出力ポートより出力された値を受信するように接続された結果レジスタと、
を備える論理回路。
【請求項２】
第１および第２のオペランド信号に符号化された第１および第２のＭＩオペランドに基づいて少なくとも１つのＭＩ関数が計算され、
前記第１のＡＦＵは第１および第２の算術要素を含み、前記第１および第２の算術要素の各々は第１および第２のＳＴＮ入力を有し、前記第１のＡＦＵの第１の算術要素は前記第１および第２のＭＩオペランド信号から前記第１のＳＴＮ値を受信するように接続されており、前記第１のＡＦＵの第２の算術要素は前記第１および第２のＭＩオペランド信号から前記第２のＳＴＮ値を受信するように接続されており、各算術要素は、入力されたＳＴＮ値に基づいて算術関数を前記結果信号に符号化する、請求項１に記載の論理回路。
【請求項３】
前記第１のＡＦＵの第１および第２の算術要素の各々は、入力されたＳＴＮ値の合計を求める加算器を含む、請求項２に記載の論理回路。
【請求項４】
前記第１の算術要素は、該第１の算術要素により求められたＳＴＮ値の合計を負の無限大に丸める丸め要素を含み、前記第２の算術要素は、該第２の算術要素により求められたＳＴＮ値の合計を正の無限大に丸める丸め要素を含む、請求項３に記載の論理回路。
【請求項５】
前記第１および第２の算術要素は、標準化された浮動小数点フォーマットに基づいてＭＩ値をそれぞれ算出する、請求項４に記載の論理回路。
【請求項６】
前記第１のＡＦＵの第１の算術要素は、入力されたＭＩ値の双対を形成する回路を含む、請求項２に記載の論理回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、区間演算処理回路の分野に関し、より詳細には、モーダル区間（modal interval：ＭＩ）データ・タイプに対して信頼性の高い演算を行うことができるＭＩプロセッサに関する。
【背景技術】
【０００２】
従来技術の区間プロセッサは、ラモン・ムーア（Ramon Moore ）のいわゆる「伝統的な」区間演算である集合論的区間演算（set-theoretical interval arithmetic ）の排他的実装によって特徴付けられる。こうしたプロセッサの設計は、区間演算が従来の浮動小数点演算より複雑であるという事実によって動機付けられる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
既存の区間プロセッサ設計が検討していない重大な問題がある。この問題は、区間演算自体のシステムにあるという意味で、根本的である。２００１年、ミゲル・サインツ（Miguel Sainz）によって発表された一連の論文は、「モーダル区間」として知られる新しいタイプの数学的な区間を紹介した。これらの論文は、ある区間の根本的な概念を再定義することによって、区間プロセッサ設計の分野における従来のすべての業績よりも上回っている。１つの視点では、モーダル区間は、集合論的区間の一般化である。モーダル区間の分析は、集合論的区間関数に基づく既存のコンピューティング・ハードウェアに根本的に欠陥があり、完全性および正確さが欠けていることを示す。
【０００４】
以下の参考文献は、モーダル区間、モーダル区間計算、および本発明の理解に関連する。
［集合論的区間］
ジョラン、ルーク他（Jaulin, Luc, et.al.）「Applied Interval Analysis」Springer Verlag ２００１年
ハンセン、エルドン（Hansen, Eldon ）およびウィリアム・ウォルスタ（William Walster ）「Global Optimization Using Interval Analysis」2nd ed., Marcel Dekker ２００４年
ムーア、ラモン（Moore, Ramon）「Interval Analysis 」Prentice Hall １９６６年
［モーダル区間］
サインツ、ミゲル他（Sainz, Miguel et.al.）「Ground Construction of Modal Intervals」ジローナ大学（University of Girona）、スペイン所在  ２００１年
サインツ、ミゲル他「Interpretability and Optimality of Rational Functions 」ジローナ大学、スペイン所在  ２００１年
サインツ、ミゲル他「Modal Intervals 」Reliable Computing 7.2  ２００１年  ７７ページ
サインツ、ミゲル他「Semantic and Rational Extensions of Real Continuous Functions 」ジローナ大学、スペイン所在  ２００１年
現在「www.mice.udg.es/cgi-bin/mi_fstar.cgi?t=1&h=1」のＵＲＬを有するＷｅｂサイトはＷｅｂベースのモーダル区間計算器を提供する。Reliable Computing 7.2のサインツ（Sainz ）の記事を本願明細書に援用する。
【課題を解決するための手段】
【０００５】
本発明の１つの形態は、セレクタ信号の第１および第２の値にそれぞれ対応する第１および第２の異なるモーダル区間（ＭＩ）数学関数における第１および第２のＭＩ結果値を計算する論理回路を含む。この演算関数は、オペランド信号に符号化された少なくとも１つのＭＩオペランド値に基づく。各ＭＩ値は、当該分野では公知の、ある範囲の実数の第１および第２の端点（end point ）を定義する第１および第２のマルチビットの集合論的数字（set theoretical number：ＳＴＮ）を含む。各ＭＩオペランドおよび結果値は、全称量化値（universal quantification value）および存在量化値（existential quantification value）のうちの一方をさらに符号化する。
【０００６】
量化値は、２つの表記のいずれかによって表すことができる。明示的な表記では、各ＭＩ値は、全称量化値または存在量化値のいずれかを指定する量化または量化子のビットを含む。この場合、２つのＳＴＮ値のうちの提示された第１の値は、第２の値以下の符号付き値を有していなければならない。暗黙的な規約では、小さいＳＴＮと大きいＳＴＮの位置関係は、量化値を定義する。したがって、暗黙的な表記の場合、ＭＩ値の第１のＳＴＮが第２のＳＴＮ以上であるとき、ＭＩは、全称量化値を有している可能性がある。他のすべてのＭＩは、存在量化値を有する。
【０００７】
少なくとも第１および第２の算術関数ユニット（arithmetic functional unit：ＡＦＵ）は、オペランド信号を受信するように接続されている。各ＡＦＵは、オペランド信号に符号化された１つまたは２つのＭＩオペランド値を引数として使用して算術演算を行う。各ＡＦＵは、第１および第２の結果信号における第１および第２のＭＩ結果値を提供する。
【０００８】
マルチプレクサは、セレクタ信号を受信するセレクタ入力、およびＭＩ結果値を符号化した出力信号を出力するマルチビット出力ポートを有する。マルチプレクサはさらに、第１および第２のＡＦＵのオペランド信号として提供される第１および第２の結果信号をそれぞれ受信するように接続された少なくとも第１および第２のマルチビット入力ポートを有する。各入力ポートは、単一のセレクタ信号値に関連付けられている。マルチプレクサは、現在のセレクタ信号値と関連付けられている入力ポートに提供されたＭＩ結果値を、出力ポートによって提供される出力信号に符号化して提供する。
【０００９】
結果レジスタは、マルチプレクサ出力ポートによって提供される出力信号を受信するように接続されており、出力信号に符号化された各ＭＩ結果値を格納する。
【発明を実施するための最良の形態】
【００１０】
本発明は、実数のコンパクト集合、およびモーダル量化子（modal quantifier）、すなわちモーダル区間をそれぞれ表す複数のデータ・フォーマットに対して演算を行う区間演算プロセッサの改良を含む。複数のデータ・フォーマットを、複数のデータ・フォーマットのいずれかより大きいモーダル区間領域を有するファイル・フォーマットに変換したり、そのフォーマットから変換したりする手段は、モーダル区間バスに接続されている。そのファイル・フォーマットでモーダル区間情報を格納するように構成されている複数のハードウェア・レジスタを含むレジスタ・ファイルは、そのモーダル区間バスに結合されており、そのモーダル区間情報に対してファイル・フォーマットでモーダル区間演算を行うために使用されるモーダル区間処理ユニットも、そのモーダル区間バスに接続されている。要素のこの組み合わせにより、すべてのデータ・フォーマットは、任意のモーダル区間量よりダイナミック・レンジが大きく、モーダル区間プロセッサがそれを操作することを求められ得るファイル・フォーマットに変換され、それによって、変換後に、ファイル・フォーマットがすべてのサポートされたデータ・フォーマットを含むことができるため、混合モードのモーダル区間演算が可能になる。
【００１１】
また、本発明は、任意の計算作業中、例外条件を検出し、示し、処理する機能も含む。演算中に例外条件が生じるたびに識別を行うことができる各例外条件への特定の応答が行われる。各例外条件の場合、１組のユーザ選択可能スイッチが、どの固有の応答が生成されるかを決定する。応答は、処理を停止するかまたは演算のその時点で、生じた例外条件の正確な状況によって決定される特定の応答を挿入することによって演算を続行する割り込み（interrupt ）の生成を含み得る。すべての場合において、ユーザが、例外条件の正確な本質に気づき、次いでソフトウェアで適切な対策を講じる選択肢を有するように、例外条件が生じたことの表れは、失われず、演算全体を通じてモーダル区間プロセッサ内に格納されたままである。
【００１２】
モーダル区間プロセッサは、符号付きゼロおよび符号付き無限大の両方を処理することができ、それによって、ゼロまたは無限大の逆数を伴うモーダル区間演算において対称性を保持する機能をその能力内に含めることができる。また、モーダル区間プロセッサは、空のモーダル区間を処理し、演算によりそれらを静かに（silently）伝播する機能を備えてもよい。さらに、本発明は、モーダル区間演算によって必要とされる「外向きの丸め（outward rounding）」に従ってモーダル区間情報を丸める手段を含む。
【００１３】
本発明のシステムおよび方法を理解するために、まず、集合論的区間の欠陥およびモーダル区間に対する動機付けについて検討する。集合論的区間は、もっぱら実数のコンパクト集合として定義される。例えば、集合論的区間［２，７］は、２≦ｘ≦７になるようなすべての実数ｘを表す。伝統的な区間演算は、区間関係および区間演算を純粋に集合論的に定義する。しかし、区間のこの狭い定義には、問題がある。
【００１４】
簡単な例、Ａ＋Ｘ＝Ｂについて検討する。一例として、Ｘが未知の変数である場合、Ａ、Ｘ、およびＢは、集合論的区間［３，７］＋Ｘ＝［１，２］の式によって与えられると仮定する。Ｘについて解くには、式をＸ＝［１，２］−［３，７］と並べ替える必要があり、結果Ｘ＝［−６，−１］が得られる。次いで、置換によって、［３，７］＋［−６，−１］≠［１，２］となる。元の式は、もはや真ではない。これは、集合論的区間演算の欠陥の一例であるが、文献は、他の例も多数見られる。一般に、こうした欠陥は、集合論的区間演算子および関係にも同様に当てはまる。
【００１５】
純粋な集合論的区間とは異なり、モーダル区間は、２つの基本成分または要素からなる。これら２つの成分のうちの第１の成分は、集合論的区間である。この事実のため、モーダル区間の集合論的区間との関係を、明らかに真の上位集合と考えることができる。すなわち、モーダル区間は、集合論的区間のすべての特徴以上を有する。モーダル区間の第２の成分は、モーダル量化値であり、これは、「存在」または「全称」の様相の二値の指標である。すべての実数を符号および大きさで表すことができるのと同じように、すべてのモーダル区間も量化子および集合論的区間で表すことができる。したがって、複素数が実数のより高次元の構成体であるように、モーダル区間は、本質的に、集合論的区間のより高次元の構成体である。上記の「課題を解決するための手段」で説明したように、量化値は、明示的な表記または暗黙的な表記のいずれかによって定義することができる。
【００１６】
モーダル区間の本質そのものが、それと共に集合論的区間より多くの情報を持っているため、モーダル区間演算子および関係は、伝統的な集合論的区間演算子および関係より複雑である。したがって、既存の区間プロセッサ設計は、モーダル区間演算に使用するには、不十分であり、不適当である。共通集合について２つの集合論的区間を比較するための比較的簡単なハードウェア設計でさえ、モーダル区間についての正しい結果を算出することができない。とりわけ、既存の区間プロセッサ設計は、純粋に集合論的区間に基づく任意の設計に常に欠けている重大な要素であるモーダル量化子を検討する機能がない。
【００１７】
次に、モーダル区間プロセッサが対応する必要のあるデータ・フォーマットについて検討する。コンピュータ内でモーダル区間を表す方法はたくさんある。実際のバイナリ・データ・フォーマットに関係なく、いくつかの基本的な要件が満たされなければならない。最低限でも、データ・フォーマットは、集合論的区間およびモーダル量化子の表現に対応していなければならない。伝統的な区間との下位互換性は、ユーザから見て、単に、モーダル区間プロセッサに送信された各集合論的区間の任意のしかし一貫したデフォルトの量化子を提供することによって、容易に対応できる。したがって、モーダル区間プロセッサは、純粋な集合論的区間をモーダル区間に格上げする任意の明確な機能を必要としない。
【００１８】
最後に、現代の区間計算を使用して演算を行う者の窮状について検討する。こうしたユーザは、モーダル区間演算はもちろん、任意のタイプの区間計算のネイティブ・サポートを欠く汎用ハードウェアにおける集合論的区間演算およびモーダル区間演算の性能不足を経験する。「モーダル区間計算器」という名称で現在「http://mice.udg.es/cgi-bin/mi_fstar.cgi?t=1&h=1 」のＵＲＬを有するＷｅｂサイトは、ソフトウェアにＭＩ演算を実装している。このＷｅｂサイトは、要求された演算に６０秒の制限時間を課している。
【００１９】
１９８０年のインテル（Intel ）８０８７などの浮動小数点プロセッサの導入前は、ソフトウェア・エミュレーションのみが浮動小数点演算を可能にしていた。これは、ほとんどの中央演算処理装置の論理演算装置は、整数データ・フォーマットおよび整数命令（integer instruction ）のみをサポートしていたという事実による。したがって、ソフトウェアは、正しい浮動小数点結果を算出するために、浮動小数点データ・フォーマットを、整数ハードウェア・レジスタ内で操作できる２進表現に分解する必要があった。これによって、演算が遅くなり、ソフトウェア開発者にとって複雑なプログラミング・インターフェイスがもたらされた。実際に、乗算など、簡単な浮動小数点算術演算の実行は、何十のプロセッサ命令および多分岐条件（multiple branch conditions）を必要とする可能性がある。
【００２０】
こうしたことは、現代の区間の実践者にも当てはまるが、状況はいっそう悪くなる。現代のほとんどの区間演算は、汎用コンピュータ・チップ・メーカーのすべての有名ブランド名における区間データ・タイプおよび区間命令のネイティブ・サポートの欠如のために、依然としてソフトウェアで実行されている。「モーダル区間計算器」という上記のＷｅｂサイトを参照されたい。集合論的区間演算用のソフトウェア・エミュレーション・ライブラリが多数存在し、そのほとんどは、集合論的区間の端点を指定する数字にＩＥＥＥ７５４浮動小数点表現を使用している。区間演算を行うために、ソフトウェア・ルーチンは、区間の端点に一連の浮動小数点演算を実行する必要がある。２つの集合論的区間の乗算は、例えば、２つの集合論的区間を表す４つのＳＴＮ値の符号に基づく一連の複雑な分岐条件の実行を必要とする。この問題は、２つのモーダル区間を乗算としたときに悪化する。その理由は、各モーダル区間のモーダル量化子によってもたらされた複雑さを適切に考慮するために、考え得る分岐条件の数が倍増するからである。
【００２１】
しかし、すべての場合において、ソフトウェアにおける区間演算の実行の最悪の側面は、有向の丸め（directed rounding ）に関するものである。集合論的区間演算およびモーダル区間演算はいずれも、「外向きの丸め」の概念を必要とする。例えば、小数点２桁の精度しかサポートしない何らかの仮定のコンピュータにおいて、区間［１．３９９８，１．７９１２］は、［１．３９，１．８０］に丸められるはずである。すなわち、より下の区間境界（interval bound）は、負の無限大に丸められ、上側の区間境界は、正の無限大に丸められる。すべて現代のＩＥＥＥ７５４準拠のプロセッサでは、この有向の丸めは、浮動小数点プロセッサの丸めモードの変更を必要とする。
【００２２】
現代のほとんどの浮動小数点プロセッサは、深いパイプライン・アーキテクチャを実装しており、プロセッサの丸めモードの変更は、しばしばパイプラインを強制的にフラッシュする可能性がある。区間演算のソフトウェア・エミュレーションは、前の丸めモードに戻る前に１つまたは２つだけの浮動小数点演算を行うために、しばしば、丸めモードの切替の必要がある。これによって、プロセッサは停止し、性能の膨大な損失がもたらされる。すなわち、区間演算のソフトウェア・エミュレーションにおいて有向の丸め操作を処理するのに費やされた時間は、余分なプロセッサ命令または分岐条件の簡単なオーバーヘッドよりかなり悪いことが多い。研究者は、浮動小数点数に対する単一命令・複数データ（Single Instruction Multiple Data：ＳＩＭＤ）演算をサポートする人気のあるデスクトップ・プロセッサに見られるマルチメディア・ハードウェア・レジスタの使用を調査している。これらの場合でさえ、有向の丸めは非常に有害であることがわかる。
【００２３】
その結果、よく知られているベクトル演算ハードウェア回路は、集合論的演算またはＭＩ演算のソフトウェア実装に解決策や利益をもたらさない。
現段階では、いくつかの点が主張されている。まず、モーダル区間プロセッサに対する動機付けは、集合論的区間の欠陥、したがって純粋な集合論の実装に基づく区間プロセッサの欠陥に基づいている。第２に、モーダル区間プロセッサが演算を行うことになっているデータ・フォーマットは、集合論的区間および量化子からなるモーダル区間を表すことができなければならない。第３に、モーダル区間プロセッサは、簡略化されたプログラミング・モデルをユーザに提供すると同時に、性能の犠牲およびソフトウェア・エミュレーションのオーバーヘッドを取り除き、この場合の最も重要な性能の犠牲は、区間演算によって必要とされる有向の丸めの結果である。
【００２４】
モーダル区間プロセッサを含む論理回路の目的は、実数のコンパクト集合、およびモーダル量化子、すなわちモーダル区間をそれぞれ表す複数のデータ・フォーマットに対して計算を行うことである。したがって、モーダル区間プロセッサは、３つの主要成分からなる。第１に、複数のデータ・フォーマットを、複数のデータ・フォーマットのいずれかより大きいモーダル区間領域を有するファイル・フォーマットに変換したり、そのフォーマットから変換したりする手段は、モーダル区間バスに接続されている。第２に、ファイル・フォーマットでモーダル区間情報を格納するように構成されている複数のハードウェア・レジスタを含むレジスタ・ファイルは、モーダル区間バスに結合されている。第３に、モーダル区間情報に対してファイル・フォーマットでモーダル区間演算を実行するために使用されるモーダル区間処理ユニット（ＭＩＰＵ）も、モーダル区間バスに接続されている。要素のこの組み合わせにより、すべてのデータ・フォーマットは、任意のモーダル区間量よりダイナミック・レンジが大きく、モーダル区間プロセッサがそれを操作することを求められ得るファイル・フォーマットに変換され、それによって、変換後に、ファイル・フォーマットがすべてのサポートされたデータ・フォーマットを含むことができるため、混合モードのモーダル区間計算が可能になる。
【００２５】
モーダル区間プロセッサ・ユニット（ＭＩＰＵ）の好ましい実施形態は、集積回路として作られた高性能プロセッサ・ロジックである。この回路は、コプロセッサの形の個別のパッケージ、または、中央演算処理装置のコアと同じシリコンを共有する、より一般的な中央演算処理装置の一体部分とすることができる。フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）技術における近年の進歩のため、回路は、シリコン・チップに流されるソフトウェア・マイクロコードであってもよい。こうした状況では、ソフトウェアは、永久的な物理的存在を有しているという点で、ハードウェアのすべての特徴を得る。
【００２６】
本発明の一実施形態は、端点を定義する２つの集合論的数字（ＳＴＮ）と共に、ＭＩを量化値として格納する。各ＳＴＮは、スケーリングされた整数、固定小数点、または２つの整数の比を含み得る。本発明の別の実施形態は、よく知られているＩＥＥＥ７５４規約を使用して、ＭＩの各ＳＴＮの端点を定義することができる。量化値は、記憶素子における専用のビット位置による明示的なものでもよく、あるいは、ＳＴＮが記憶素子の第１および第２の位置に格納されている順によって定義される値による暗黙的なものでもよい。これについては上述したとおりである。
【００２７】
ＭＩＰＵの機能的属性は、モーダル区間プロセッサの最も重要な特徴、すなわち、複数のハードウェア・レジスタ内にファイル・フォーマットで格納されたモーダル区間情報の処理を提供する。好ましい実施形態は、４つの基本的なモーダル区間算術演算子、＋、−、×および÷、基本的なモーダル区間関係＜、≦、≧、＞、⊆、⊇、＝および≠、格子演算子（lattice operator）ｍｉｎ、ｍａｘ、Ｌ２１７＼ｆ“Ｓｙｍｂｏｌ”＼ｓ１２（適合）および∨（結合）、およびモーダル区間ｄｕａｌ演算子を実装する構造を提供する。ｓｑｒｔ、Ｉｎ、ｅｘｐ、ｓｉｎ、ｃｏｓ、ｔａｎなど、超越（transcendental）モーダル区間演算子を含む追加のプロセッサ命令を提供することもできる。
【００２８】
好ましい一実施形態では、モーダル区間プロセッサは、ファイル・フォーマットを使用し、モーダル区間情報が、集合論的数字（ＳＴＮ）と呼ばれる２つの浮動小数点数、および暗黙的に指定された量化子値によって表される。この場合、浮動小数点演算の回路は、ＭＩＰＵの構成要素を形成し、構成要素は、モーダル区間超越関数および三角関数の端点を評価するために、多項近似法およびＣＯＲＤＩＣ法の使用の基礎を提供する。
【００２９】
モーダル区間の双対性のため、モーダル区間演算によって必要とされる内外の丸めモードは、実際には、単一の丸めモードのみを提供することによって実施することができる。例えば、ハードウェア回路において外向きの丸めのみが実施される場合、モーダル区間の双対に行われる外向きの丸めは、元のモーダル区間の正しい内向きの丸めを提供することができる。これによって、ＭＩＰＵの回路設計を簡略化し、高度に最適化することができる。その理由は、外向きの丸めを回路の機能設計に組み込むことができ、それによって、複数の丸めモードをサポートしたり複数の丸めモード間で切替を行ったりする必要性を回避できるからである。
【００３０】
こうした好ましい実施形態は、組み込まれた複数の浮動小数点回路を使用して、モーダル区間の端点を処理することができる。この場合、浮動小数点回路の中には、負の無限大の方に丸めるように組み込まれるものがある一方で、正の無限大の方に丸めるように組み込まれるものもある。
【００３１】
トランジスタ数が重要である場合、好ましい実施形態は、組み込まれた単一の浮動小数点回路のみをサポートし、通常の手を使用して反対方向に丸められる浮動小数点演算を評価することができる。例えば、浮動小数点回路が正の無限大の方に丸めるように組み込まれている場合、ｚ＝−（（−ｘ）−ｙ）の評価は、負の無限大の方に丸めるように組み込まれた浮動小数点回路において、まさに式ｚ＝ｘ＋ｙが評価されたかのように、浮動小数点値ｚを生成する。
【００３２】
こうしたすべての理由により、実際、ＭＩＰＵは、丸めモードの動的な切替を決してサポートしてはならず、それによって高度に最適化された回路、さらにはパイプライン設計の機会が提供される。
【００３３】
モーダル区間プロセッサは、符号付きゼロおよび符号付き無限大の両方を処理することができ、それによって、ゼロまたは無限大の逆数を伴うモーダル区間演算において対称性を保持する機能をその能力内に含めることができる。また、モーダル区間プロセッサは、空のモーダル区間を処理し、演算によりそれらを静かに伝播する機能を備えていてもよい。
【００３４】
モーダル区間プロセッサは、ハードウェア・レジスタ内に格納されたモーダル区間情報に対する演算を行うため、モーダル区間プロセッサの残りの機能的属性は、任意の演算中の例外条件を検出し、示し、処理することである。演算中に例外条件が生じるたびに識別を行うことができる各例外条件への特定の応答が行われる。
【００３５】
各例外条件の場合、１組のユーザ選択可能スイッチが、どの固有の応答が生成されるかを決定する。応答は、処理を停止する、または演算のその時点で、生じた例外条件の正確な状況によって決定される特定の応答を挿入することによって演算を続行する中断の生成を含み得る。識別できる例外条件の正確な性質は、本発明の特定の実施形態によって決まる。例えば、モーダル区間情報が２つの浮動小数点数および暗黙的な量化子値によって表されるファイル・フォーマットを使用する一実施形態、ＩＥＥＥ７５４によって指定された通常の組の例外条件を検出することができる。
【００３６】
本発明のこうした特定の実施形態によって生じ得る例外条件に関係なく、モーダル区間プロセッサは、常に、負の数を含むモーダル区間の平方根をとるなど、演算の有効な領域外で働く任意のモーダル区間演算から生じる例外的条件を検出する。
【００３７】
この場合、ユーザ選択可能スイッチに応じて、モーダル区間プロセッサは、例外条件の結果、処理を停止するための中断を生成したり、空のモーダル区間を戻したりすることができる。すべての場合において、ユーザに、例外条件の正確な本質に気づき、次いでソフトウェアで適切な対策を講じる選択肢があるように、例外条件が生じたことの表れは、失われず、演算全体を通じてモーダル区間プロセッサ内に格納されたままである。
【００３８】
したがって、本発明は、純粋な集合論的区間プロセッサに改良を導入して、モーダル区間を確実に処理できる機能を追加する。演算の信頼性は、モーダル区間プロセッサが処理を求められる任意のデータ・フォーマットより大きいダイナミック・レンジですべての演算を行うことによって容易にされ、演算の追加の信頼性は、識別を行うことができる各例外条件を処理する頑強な機構によって容易にされる。最も重要なことには、記載されたすべての部分の組み合わせによって、モーダル区間プロセッサは、モーダル区間演算はもちろん、任意のタイプの区間演算のネイティブ・サポートを欠く汎用ハードウェアにおけるモーダル区間演算の性能に現在制限されているユーザに、簡単で洗練された、計算上効率的なプログラミング・インターフェイスを提供する。
【００３９】
次に、図１〜図４を参照すると、すべてのＭＩを、量化値の暗黙的な規約または表記と共に示している。明示的な表記および暗黙的な表記は、完全に同等である。
図１は、ＳＴＮＡ１部３５ａおよびＳＴＮＡ２部３５ｂを有する第１のオペランド・レジスタ３５と、ＳＴＮＢ１部４０ａおよびＳＴＮＢ２部４０ｂを有する第２のオペランド・レジスタ４０とを示している。オペランド・レジスタ３５，４０はそれぞれ、パス４２，４５上にオペランド信号を提供する。
【００４０】
ＭＩ演算装置（ＭＩＡＵ）２０は、オペランド・レジスタ３５，４０から２つのオペランド信号を受信する。また、ＭＩＡＵ２０は、演算制御装置（ＡＣＵ）３０からセレクタ信号パス３２上のセレクタ信号を受信する。セレクタ信号は、ＭＩＡＵ２０がパス４２，４５上の信号に符号化されたＭＩオペランドを実行するための算術関数を指定する。
【００４１】
マルチプレクサ６８は、ＭＡＩＵ２０内の様々な算術関数ユニット（ＡＦＵ）から複数の結果信号内のＭＩＡＵ２０の出力を受信する。マルチプレクサ６８に適用されたセレクタ信号によって、マルチプレクサ６８は、複数のＡＦＵのうちの１つからの結果信号を選択し、この信号は、結果信号内の結果レジスタ４３のＳＴＮ部４３ａ，４３ｂに送信される。当然、オペランド・レジスタ３５，４０の各々および結果レジスタはすべて、示される２つのＳＴＮ値、この場合は量化子値を有するＭＩ値を記録する。
【００４２】
図２は、図１をより詳しく示している。オペランド・レジスタ内の値は、オペランド・バス５２，５５に適用され、それぞれＳＴＮパス５２ａ，５２ｂおよびＳＴＮパス５５ａ，５５ｂ上で、オペランド・レジスタＡ３５，Ｂ４０の部分にそれぞれ記録されたＳＴＮ１，ＳＴＮ２の値が運ばれる。バス５２，５５は、それぞれＳＴＮＡ１，ＳＴＮＡ２，ＳＴＮＢ１，ＳＴＮＢ２の値を、様々なＡＦＵ要素８０ａ，８０ｂ，…８０ｎにそれぞれ配信する。算出された算術関数の中には、単一のオペランドしか受信しないものもあり得る。ＡＦＵ１８０ｂは、ＳＴＮＡ１，ＳＴＮＡ２の値のみを受信する、単一要素からなる算術関数の一例である。
【００４３】
ＡＦＵ０〜ＡＦＵＮ８０ａ〜８０ｎは、バス５２，５５上のオペランド信号を受信する。ＡＦＵ０〜ＡＦＵＮ８０ａ〜８０ｎの各々は、割り当てられた算術関数を算出し、算出されたＭＩ中の各ＳＴＮ値の結果信号に符号化された演算の結果を提供する。当然、Ｒ１，Ｒ２の値に符号化された符号付きの相対的大きさは、特定のＡＦＵ８０ａなどによって提供されたＭＩの量化値を決定する。
【００４４】
マルチプレクサ６８は、それぞれ２つのＳＴＮ値のうちの一方を処理する２つの個別のマルチプレクサ部Ａ６８ａ，Ｂ６８ｂからなる。ＡＦＵ０８０ａからのＲ１値は、セクションＡ６８ａのポート０に割り当てられ、ＡＦＵ０８０ａからのＲ２値は、セクションＢ６８ｂのポート０に割り当てられる。ＡＣＵ３０は、セレクタ信号をパス３０上に提供し、各マルチプレクサ部６８ａ，６８ｂの複数のポートのうちの一つに適用される信号のみが結果レジスタを通過できるようにする。例えば、セレクタ信号値が０の場合、Ｒ１，Ｒ２の値を結果レジスタ４３に送信するように、マルチプレクサ部６８ａ，６８ｂの両方の入力ポート０が作動される。
【００４５】
図３は、一例として、２つのＭＩオペランドを必要とする追加ユニットとしてＡＦＵ０８０ａの構成を示している。加算器５８ａは、パス５２ａ，５２ｂ上の信号中のＳＴＮＡ１，ＳＴＮＢ１の値を受信し、結果値Ｒ１＝ＳＴＮＡ１＋ＳＴＮＢ１を生成する。加算器５８ｂは、パス５５ａ，５５ｂ上の信号中のＳＴＮＡ２，ＳＴＮＢ２の値を受信し、結果値Ｒ２＝ＳＴＮＡ２＋ＳＴＮＢ２を生成する。
【００４６】
丸め要素８４ａは、Ｒ１値を−無限大に丸める。丸め要素８４ｂは、Ｒ２値を＋無限大に丸める。次いで、丸め要素８４ａからの丸められた値は、マルチプレクサ部Ａ６８ａのポート０に送信される。丸め要素８４ｂからの丸められた値は、マルチプレクサ部Ｂ６８ｂのポート０に送信される。
【００４７】
図４は、ｄｕａｌ関数を計算するために単一のＭＩオペランド入力のみを必要とするＡＦＵの非常に簡単な例である。図４の回路は、結果レジスタ４３におけるＳＴＮＡ１，ＳＴＮＢ１の位置を逆にすることによってオペランドＡの量化値を逆にする。よく知られているように、ほとんどの超越関数は、似ており、入力として単一のＭＩオペランドのみを有する。
【図面の簡単な説明】
【００４８】
【図１】複数のＭＩ数学関数を演算するための論理回路のブロック図。
【図２】論理図の詳細なブロック図。
【図３】市販版の論理回路に含まれ得る２つの一般的な数学関数の図。
【図４】市販版の論理回路に含まれ得る２つの一般的な数学関数の図。
【図１】
2008541202.tif 000003
【図２】
2008541202.tif 000004
【図３】
2008541202.tif 000005
【図４】
2008541202.tif 000006
【手続補正書】
【提出日】平成19年12月21日(2007.12.21)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００２７
【補正方法】変更
【補正の内容】
【００２７】
ＭＩＰＵの機能的属性は、モーダル区間プロセッサの最も重要な特徴、すなわち、複数のハードウェア・レジスタ内にファイル・フォーマットで格納されたモーダル区間情報の処理を提供する。好ましい実施形態は、４つの基本的なモーダル区間算術演算子、＋、−、×および÷、基本的なモーダル区間関係＜、≦、≧、＞、⊆、⊇、＝および≠、格子演算子（l attice operator）ｍｉｎ、ｍａｘ、∧（適合）および∨（結合）、およびモーダル区間ｄｕａｌ演算子を実装する構造を提供する。ｓｑｒｔ、Ｉｎ、ｅｘｐ、ｓｉｎ、ｃｏｓ、ｔａｎなど、超越（transcendental）モーダル区間演算子を含む追加のプロセッサ命令を提供することもできる。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００４０
【補正方法】変更
【補正の内容】
【００４０】
ＭＩ演算装置（ＭＩＡＵ）２０は、オペランド・レジスタ３５，４０から２つのオペランド信号を受信する。また、ＭＩＡＵ２０は、パス４２，４５の信号に符号化されたＭＩオペランド上で算術演算を実行する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００４１
【補正方法】変更
【補正の内容】
【００４１】
マルチプレクサ６８は、ＭＡＩＵ２０内の様々な算術関数ユニット（ＡＦＵ）から複数の結果信号内のＭＩＡＵ２０の出力を受信する。演算制御装置（ＡＣＵ）３０からセレクタ信号パス３２上のセレクタ信号がマルチプレクサ６８に供給され、それによって、マルチプレクサ６８は、ＭＩＡＵ２０内の複数のＡＦＵのうちの１つからの結果信号を選択する。この信号は、結果信号内の結果レジスタ４３のＳＴＮ部４３ａ，４３ｂに送信される。当然、オペランド・レジスタ３５，４０の各々および結果レジスタはすべて、示される２つのＳＴＮ値、この場合は量化子値を有するＭＩ値を記録する。
【手続補正４】
【補正対象書類名】図面
【補正対象項目名】図２
【補正方法】変更
【補正の内容】
【図２】
2008541202.tif 000007
【手続補正５】
【補正対象書類名】図面
【補正対象項目名】図３
【補正方法】変更
【補正の内容】
【図３】
2008541202.tif 000008
【国際調査報告】
2008541202.tif 000009
2008541202.tif 000010