(57)【特許請求の範囲】
【請求項１】
効率的なファジー論理操作を行なうためのデータ処理システムであって、
（ａ）メンバシップ関数における帰属度を決定するための命令を受けるための入力を有する命令デコーダであって、前記命令は複数の命令からなる命令セットから処理されるべきものであり、かつ前記命令デコーダは出力を有するもの、そして
（ｂ）前記命令デコーダの出力からの複数の入力信号に応答して複数の演算および論理機能を実行する実行ユニットであって、前記複数の入力信号はメンバシップ関数における帰属度を決定するための前記命令に応じての少なくとも１つの入力信号を含み、前記実行ユニットはまた前記メンバシップ関数の所定の特性を調べることにより前記メンバシップ関数が複数のメンバシップ関数の内の最後のメンバシップ関数であるか否かを判定するもの、
を具備し、
（ｃ）前記実行ユニットは、同実行ユニットにおける操作の結果を格納する条件符号レジスタを含み、かつ前記メンバシップ関数が前記複数のメンバシップ関数の内の最後のメンバシップ関数であることを判定したことに応じて、前記条件符号レジスタにおいてキャリービットを所定の論理状態に設定すること、
を特徴とする効率的なファジー論理操作を行なうためのデータ処理システム。
【請求項２】
効率的なファジー論理操作を行なうためのデータ処理システムであって、
命令を受けるための入力、および複数の制御信号を提供するための出力を有する命令デコーダ、そして
前記命令デコーダの出力に結合された制御入力、および情報バスに結合されたデータターミナルを有する実行ユニット、を具備し、
前記命令デコーダは前記実行ユニットを制御して、前記実行ユニットに前記データターミナルを介して入力値を受け入れさせ、かつファジーメンバシップ命令に応答してメンバシップ関数における前記入力値の帰属度を決定させ、
前記命令デコーダはさらに前記実行ユニットを制御して前記メンバシップ関数が複数のメンバシップ関数の内の最後のメンバシップ関数であるか否かを判定させ、
前記実行ユニットは、
キャリービットを含む複数の条件符号ビットおよび終了信号を受けるための制御入力端子を有し、前記終了信号を取得して前記キャリービットをセットする条件符号レジスタ、お
よび
前記命令デコーダに結合された制御入力、および前記終了信号を提供するための出力端子を有するフラグ発生論理回路であって、前記命令デコーダが、前記メンバシップ関数が複数のメンバシップ関数の内の最後のメンバシップ関数であることを判定したことに応じて、前記終了信号を発する前期フラグ発生論理回路、
を具備することを特徴とする効率的なファジー論理操作を行なうためのデータ処理システム。
【請求項３】
データ処理システムにおける、観察される可変入力ポイントの複数のメンバシップ関数の内の少なくとも１つの帰属度を決定する一方で、あるメンバシップ関数が前記複数のメンバシップ関数の内の最後のメンバシップ関数であるか否かを決定する方法であって、
（ａ）前記観察される可変入力ポイントの帰属度を決定するために複数の命令からなる命令セットからある命令を受け入れる段階、
（ｂ）前記複数のメンバシップ関数の各々の境界を規定する第１および第２の境界値を検出する段階、
（ｃ）前記複数のメンバシップ関数の各々の前記第１および第２の境界値の各々を引き続き調べることにより、前記境界が前記複数のメンバシップ関数のエンドポイントを構成するか否かを判定する段階、
（ｄ）調べられているメンバシップ関数が前記複数のメンバシップ関数の内の最後のメンバシップ関数であることを、前記観察される可変入力ポイントに関する試験段階の終了を通知するための終了信号を提供することによって指示する段階、そして
（ｅ）条件符号レジスタの選択されたキャリービットを所定の論理状態に設定する段階、を具備することを特徴とするデータ処理システムにおいて、あるメンバシップ関数が最後のメンバシップ関数であるか否かを決定する方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、一般的にはデータ処理システムに関し、かつより特定的にはファジー論理操作を行なうためのデータ処理システムに関する。
【０００２】
【従来の技術】
データ処理システムはその入力および出力が１または０のいずれかとして解釈され、何らの他の可能性も存在できない２進機械として機能するよう開発されてきた。これは大部分の状況においてうまく動作するが、時には答えは単に「イエス」または「ノー」ではなく、それらの間の何かである。「ファジー論理」と称される概念が開発されて２進論理に基づくデータプロセッサが「イエス」および「ノー」の間の答えを与えることが可能になった。
【０００３】
ファジー論理はファジー境界を有するメンバシップ関数を有する論理システムである。メンバシップ関数は、「温度が暖かい」のような、主観的な表現を典型的なデータプロセッサが認識できる値に変換する。「暖かい」のようなラベルが使用されて、それらの境界が前記ラベルが一方の側で真でありかつ他方の側で偽であるポイントではないある範囲の入力値を識別するために使用される。むしろ、ファジー論理を実施するシステムにおいては、メンバシップ関数の境界は徐々に変化しかつ隣接するメンバシップ集合の境界とオーバラップすることができる。従って、帰属度（ｄｅｇｒｅｅ  ｏｆ  ｍｅｍｂｅｒｓｈｉｐ）が一般にある入力値に割当てられる。例えば、ある範囲の温度にわたり２つのメンバシップ関数が与えられれば、ある入力温度は「涼しい」および「暖かい」と名付けられた関数の双方の領域にオーバラップして存在することになる。メンバシップ関数の各々において帰属度（すなわち、前記入力温度がメンバシップ集合、涼しいおよび暖かい、の各々に適合するか否か）を決定するためにはさらに処理が必要とされる。
【０００４】
「ファジー化（ｆｕｚｚｉｆｉｃａｔｉｏｎ）」と称されるステップが使用されて入力をファジー論理を実施するシステムにおけるメンバシップ関数と関係付ける。ファジー化プロセスは、「温度が暖かい」のような主観的な表現に対し具体的な数値を与える。これらの数値は一般に絶対的な真実の環境に制限されない人間の知覚の良好な近似を与えるよう試みるものである。ファジー化ステップの後に、ルール評価ステップ（ｒｕｌｅ  ｅｖａｌｕｔｉｏｎ  ｓｔｅｐ）が実行される。該ルール評価ステップの実行の間に、“ｍｉｎ−ｍａｘ”推論と称される技術が使用されてユーザによって規定される言語上のルールに対する数字的な結論が計算される。ルール評価ステップからの結論は「ファジー出力」と称されかつ種々の程度で真となり得る。従って、競合する結果が生じ得る。ファジー論理プロセスにおける最後の処理は「非ファジー化（ｄｅｆｕｚｚｉｆｉｃａｔｉｏｎ）」と称される。名前が示すように、非ファジー化はすべてのファジー出力を組合わせてある複合的結果を得るプロセスであり、該複合的結果は標準のデータ処理システムに印加できる。ファジー論理に関するこれ以上の情報については、Ｊａｍｅｓ  Ｍ．Ｓｉｂｉｇｔｒｏｔｈによる、“ＩｍｐｌｅｍｅｎｔｉｎｇＦｕｚｚｙ  Ｅｘｐｅｒｔ  Ｒｕｌｅｓ  ｉｎ  Ｈａｒｄｗａｒｅ”と題する論文を参照。この論文はＡＩ  ＥＸＰＥＲＴのページ２５〜３１において、１９９２年４月に発行されている。また、１９９４年３月１５日に発行され、「ファジー論理操作の間に集合におけるメンバシップを決定する回路および方法（Ｃｉｒｃｕｉｔ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｄｅｔｅｒｍｉｎｉｇ  Ｍｅｍｂｅｒｓｈｉｐ  ｉｎ  ａ  Ｓｅｔ  Ｄｕｒｉｎｇ  ａ  Ｆｕｚｚｙ  ＬｏｇｉｃＯｐｅｒａｔｉｏｎ）」と題し、本発明と同じ譲渡人に譲渡された、米国特許第５，２９５，２２９号を参照されたい。
【０００５】
【発明が解決しようとする課題】
典型的には、ファジー化ステップは周辺装置またはデータプロセッサにより実行されるソフトウェアプログラムによって実施されてきた。そのようなソフトウェアプログラムは多量の処理時間を必要とする数学的方程式を使用して帰属度を計算する。従って、ソフトウェアプログラムは正確な結果を提供するが、前記処理時間のため一般にそれが実施されるシステムの性能が制限される。他の一般的なソフトウェア解決方法は「テーブルルックアップ」ルーチンを使用し、そこではメモリに記憶されたデータのテーブルが特定の入力値に対応する値に対してアクセスされる。数学的な計算よりは早いが、テーブルルックアップルーチンは実施するのが高価になる多量の専用メモリを必要とする。ファジー化ステップの実施に対するハードウェア的な解決方法はさらに迅速に結果を提供する。しかしながら、ハードウェアの解決方法は一般に多量の柔軟性のない専用回路を必要とする。ファジー化ステップに対するハードウェア的な解決方法は一般にはソフトウェア的な構成よりも高速であるが、ハードウェアによる解決方法は多量の専用回路領域を必要としかつしばしばデータ処理システムにおいて実施するにはあまりにも高価になる。
【０００６】
従って、コストのかかるハードウェアを必要とすることなく、ファジー化ステップを迅速に行うための回路および方法の必要性が存在する。ハードウェアによる解決方法で一般に得られる速度が通常ソフトウェア解決方法に関連するメモリなしに得られることが必要である。
【０００７】
この必要性は本発明によって満たされ、本発明の特徴および利点は添付の図面と共に以下の詳細な説明を参照することによりさらに明瞭に理解できるであろう。図面は本発明の唯一の形態を表わすことを意図するものでないことに注意を要する。
【０００８】
【課題を解決するための手段】
本発明はデータ処理システムへ入力される１組のファジー操作の終りを迅速にかつ最小量の専用の回路によって指示するための回路および方法を提供する。データ処理システムのユーザが困難なかつ長いソフトウェアプログラムなしに迅速にファジー化ステップを行なうことができるようにする命令が与えられる。単一の入力ラベルのファジー化ステップが前記命令においてエンコードされデータ処理システムにおける過剰な量の付加回路なしに迅速かつ効率的に実行される。特定のシステム入力のためのもののような、１組のファジー化操作の終りがカウンタその他を必要とすることなく容易に検出される。
【０００９】
本発明の構成を説明する場合に、用語「肯定する（ａｓｓｅｒｔ）」および「否定する（ｎｅｇａｔｅ）」、およびその種々の文法的な形態が使用されて「アクティブハイ」および「アクティブロー」論理信号の混合物を扱う上での混乱を避けている。「肯定する」は論理信号またはレジスタビットをそのアクティブな、または論理的に真な、状態にすることを言及するために使用されている。「否定する」は論理信号またはレジスタビットをそのインアクティブな、または論理的に偽の、状態にすることを言及するために使用されている。さらに、１６進値はその値に先行する“＄”記号によって表示される。
【００１０】
図１は、ファジー論理のいくつかの基本的な用語および概念を示すグラフを与える。図１に示されたファジー論理システムにおいては、「システム入力」はカ氏（ｄｅｇｒｅｅｓ  Ｆａｈｒｅｎｈｅｉｔ）における温度である。５つの「メンバシップ関数」はラベルを温度範囲に関係付けるために与えられている。例えば、０度から３０度では、温度は「寒い」と名付けられている。同様に、２０度から５０度では、温度は「涼しい」と名付けられている。メンバシップ集合の各々の境界は隣接集合の境界とオーバラップしていることに注意を要する。従って、ある温度は１つより多くの集合に存在し得る。例えば、システム入力が６８度の温度を示しているものと仮定する。図１を参照すると、６８度は「暖かい」および「非常に暖かい」メンバシップ集合の双方の境界内にあり、各々のメンバシップ集合におけるゼロでない帰属度が得られることに注意を要する。前記システム入力は「暖かい」メンバシップ集合に対して＄３３の帰属度を有し、かつ前記「非常に暖かい」メンバシップ集合に対しては＄ＣＣの帰属度を有する。もしシステム入力が７５度の温度を示していたとすれば、該温度は「非常に暖かい」メンバシップ集合における＄ＦＦの帰属度を有する。同様に、７５度の温度は「暑い」メンバシップ集合における＄００の帰属度を有することになる。図１のファジー論理構成においては、帰属度は＄００から＄ＦＦの１６進値の範囲におよび、これは０．００〜０．９９６の範囲の小数（ｆｒａｃｔｉｏｎ）に対応させることができる。
【００１１】
図２は、４つの値、すなわち、ポイント１（Ｐｏｉｎｔ  １）、ポイント２（Ｐｏｉｎｔ  ２）、スロープ１（Ｓｌｏｐｅ  １）、およびスロープ２（Ｓｌｏｐｅ  ２）、によって表すことができる単一のメンバシップ集合を示す。「デルタ１（Ｄｅｌｔａ  １）」と称される第１の値はシステム入力（ポイント“Ｘ”）およびポイント１の間の差として計算される。同様に、「デルタ２（Ｄｅｌｔａ  ２）」と称される第２の値はポイント２と前記システム入力との間の差として計算される。デルタ１およびデルタ２の値の計算から、本発明の方法に従って帰属度（所属の程度：ｄｅｇｒｅｅ  ｏｆ  ｍｅｍｂｅｒｓｈｉｐ）が与えられる。デルタ１またはデルタ２のいずれかの値がゼロより小さければ、対応するメンバシップ集合に対する帰属度は０．００である。これ以外では、帰属度はデルタ１とスロープ１の積、デルタ２とスロープ２の積、あるいは飽和値のいずれかの内の最小値に等しい。該最小値は試験されているメンバシップ集合における現在の入力値の帰属度となる。ここに述べた例においては、前記飽和値は１６進値＄ＦＦを有する。しかしながら、他の構成であってもファジー論理システムのユーザがある特定のシステムの仕様に従って飽和値を選択できるようにすることができる。
【００１２】
ニーモニックラベル“ＭＥＭ”で参照される、本発明の命令はデータ処理システムが複数のメンバシップ集合の内の１つにおけるシステム入力値の帰属度を決定するために一連のステップを行わせる。また、前記ＭＥＭ命令は「終了（ｔｅｒｍｉｎａｔｉｏｎ）」信号が肯定されかつ記録できるようにする。前記メンバシップ集合の各々はメモリから読出される複数の境界値（ポイント１、ポイント２、スロープ１、およびスロープ２）によって特徴付けられる。もし前記複数の境界値の各々が適切にメモリに格納されかつもし前記システム入力値がＭＥＭ命令の実行の前に適切にあるレジスタ位置に格納されていれば、前記複数のメンバシップ集合の内の１つにおけるシステム入力の帰属度が決定できる。続いて、前記複数のメンバシップ集合の各々における前記システム入力の帰属度がメモリ内の所定の位置に記憶される。ＭＥＭ命令の実施によってデータ処理システムのユーザが伝統的なソフトウェア構成よりも迅速にかつ典型的なハードウェア構成によって必要とされるよりもより少ない専用回路領域によってメンバシップ計算機能を達成できるようになる。例えば、前記データ処理システムの通常動作に必要な演算論理ユニットを、スプリット動作モードで動作するために変更または修正できる。典型的には、演算論理ユニットは所定の時点において単一の１６ビットの操作を行うことができる。しかしながら、ここに開示された演算論理ユニットは単一の１６ビット操作あるいは２つの同時的な８ビット操作を行うために選択的にイネーブルできる。従って、あるメンバシップ集合における帰属度の計算に必要な演算操作は伝統的に必要とされるよりも短い時間で同時に計算される。非常に少しの付加回路が必要とされるのみである。演算論理ユニットをスプリットモードで動作させるために、単一のイネーブル信号が現存するバッファ回路に与えられる。さらに、ＭＥＭ命令を実施するためには少しの量の付加回路を必要とするのみである。
【００１３】
上に述べた命令および動作方法の１つの構成が図３に示されている。図３は、ファジー化命令が実施できるデータ処理システム１０を示す。データ処理システム１０は一般に中央処理ユニット（ＣＰＵ）１２、発振器２４、電源回路２６、タイミング回路２８、外部バスインタフェース３０、および内部メモリ３２を含む。ＣＰＵ１２は一般に実行ユニット１４、バス制御論理回路１６、命令デコード論理回路１８、制御ユニット２０、およびシーケンサ２２を有する。
【００１４】
動作においては、“Ｏｓｃ  １”信号が、水晶のような、外部ソースを介して発振器２４に与えられる。該水晶はＯｓｃ  １およびＯｓｃ  ２信号の間に接続されて該水晶が発振できるようにする。Ｏｓｃ  １は「クロック」信号をデータ処理システム１０の残りの部分に提供する。水晶発振器の動作はデータ処理技術においてよく知られておりかつ当業者には明らかであるべきである。
【００１５】
同様に、電源回路２６は外部電源から“Ｖｄｄ”および“Ｖｓｓ”信号を受ける。Ｖｄｄ信号は正の５ボルトを提供しかつＶｓｓ信号は基準、またはグランド電圧を提供する。ＶｄｄおよびＶｓｓ信号はデータ処理システム１０の残りの構成要素の各々に与えられる。これらの信号のルーティングはデータ処理技術においてよく知られておりかつ当業者には明らかであろう。
【００１６】
タイミング回路２８はクロック信号を受け取りかつ続いて適切なタイミング信号をタイミング制御バス３８を介してＣＰＵ１２、外部バスインタフェース３０、および内部メモリ３２の各々に提供する。
【００１７】
複数のアドレス値が外部バスインタフェース３０から外部アドレスバス３５を介して与えられる。同様に、複数のデータ値が外部データバス３３を介して外部バスインタフェース３０に通信される。外部バスインタフェース３０は外部ユーザとデータ処理システム１０との間でアドレスおよびデータ値を通信するよう機能する。外部バスインタフェース３０は複数のアドレスおよびデータ値を、それぞれ、内部アドレスバス３６および内部データバス３４を介してデータ処理システム１０の残りの部分に提供する。内部メモリ３２はデータ処理システム１０の適切な動作に必要な情報値を格納するよう機能する。さらに、内部アドレスバス３６および内部データバス３４を介して与えられるユーザプログラムにおいて特定されれば、他のデータ値をそこに記憶することができる。
【００１８】
ＣＰＵ１２はデータ処理システム１０の動作の間に必要な各々の命令を実行する。内部アドレスバス３６および内部データバス３４は実行ユニット１４とデータ処理システム１０の残りの部分との間で情報を通信する。バス制御論理回路１６は命令およびオペランドをフェッチする。該命令の各々は次に命令デコード論理回路１８によってデコードされかつ制御ユニット２０およびシーケンサ２２に与えられる。制御ユニット２０およびシーケンサ２２はデータ処理システム１０の計算機的な能力を最も効率よく利用するために前記命令の各々の実行のシーケンスを維持する。さらに、制御ユニット２０はマイクロ−ＲＯＭメモリ（図示せず）を含み、該マイクロ−ＲＯＭメモリは複数の制御情報を実行ユニット１４、バス制御論理１６、および命令デコード論理１８の各々にマイクロ−ＲＯＭ制御バス６５を介して提供する。
【００１９】
実行ユニット１４は図４に非常に詳細に示されている。実行ユニット１４は概略的にデータバッファ４２、結果選択論理回路４６、フラグ発生論理回路４８、オペランド割当て論理回路５０、Ａ−入力制御論理回路５２、Ａ−入力マルチプレクサ５４、演算論理ユニット（ＡＬＵ）５６、Ｂ−入力マルチプレクサ５８、デルタレジスタ６０、システム入力レジスタ６４、および条件符号レジスタ６９を含む。ここには示されていないが、当業者は実行ユニット１４にはさらに他のレジスタも含めることが可能なことを理解すべきである。例えば、実行ユニット１４はインデックスレジスタまたはアキュムレータを含むことができる。さらに、典型的なデータ処理システムにおいては、システム入力レジスタ６４はアキュムレータとして実現できる。
【００２０】
外部情報バス４０はアドレスおよびデータ情報をデータバッファ４２に与える。外部情報バス４０は該アドレスおよびデータ情報を、それぞれ、内部アドレスバス３６および内部データバス３４から受け取る。データバッファ４２は外部情報バス４０を介して転送される値を情報バスＡ  ６６および情報バスＢ  ６８を介して実行ユニット１４の残りの部分に提供する。ここには詳細に示されていないが、情報バスＡ  ６６および情報バスＢ  ６８は共に１６ビットの幅でありかつハイ側（ビット１５〜ビット８）およびロー側（ビット７〜ビット０）に分割される。
【００２１】
情報バスＡ  ６６のロー側はシステム入力レジスタ６４の第１の入力に双方向的に結合されている。同様に、情報バスＢ  ６８のハイ側はシステム入力レジスタ６４の第２の入力に双方向的に結合されている。「デルタ１」と称される第１のデルタ値が情報バスＢ  ６８のハイ側を介してデルタレジスタの第１の入力に与えられる。第２のデルタ値、「デルタ２」、が情報バスＢ  ６８のロー側を介してデルタレジスタ６０の第２の入力に与えられる。デルタレジスタ６０はまた情報バスＡ  ６６および情報バスＢ  ６８の双方に接続されて実行ユニット１４の他の構成要素に情報を提供する。アキュムレータおよびインデクスレジスタのような何らかの付加的なレジスタを同様に情報バスＡ  ６６および情報バスＢ  ６８に結合することかできる。
【００２２】
情報バスＡ  ６６はＡ−入力マルチプレクサ５４の第１の入力に接続されている。「制御」と名付けられたｎビット幅の信号がＡ−入力マルチプレクサ５４の第２の入力に与えられ、ここでｎは整数である。Ａ−入力マルチプレクサ５４は「Ａ−入力ロー側」と名付けられた第１の１０ビットの出力をＡＬＵ５６の第１の入力に提供しかつ「Ａ−入力ハイ側」と名付けられた第２の１０ビットの出力をＡＬＵ５６の第２の入力に提供する。
【００２３】
情報バスＢ  ６８はＢ−入力マルチプレクサ５８の入力に接続されている。Ｂ−入力マルチプレクサ５８をイネーブルして正しく機能させるのに必要な制御情報は、制御ユニット２０においてマイクロ−ＲＯＭ（図示せず）によって発生されかつマイクロ−ＲＯＭ制御バス６５を介して転送される複数の信号を介して制御入力に与えられる。Ｂ−入力マルチプレクサ５８は「Ｂ−入力ロー側」と名付けられた第１の１０ビットの出力をＡＬＵ５６の第３の入力に提供する。さらに、Ｂ−入力マルチプレクサ５８は「Ｂ−入力ハイ側」と名付けられた第２の１０ビットの出力をＡＬＵ５６の第４の入力に提供する。
【００２４】
「スプリットモード制御」と名付けられた信号がＡＬＵ５６の第５の入力に与えられる。該スプリットモード制御信号は前記ＭＥＭ命令の実行に応じて制御ユニット２０のマイクロ−ＲＯＭメモリによって発生される。ＡＬＵ５６は前記入力の各々を処理して複数の結果を提供し、これらは結果バス１２０を介して転送される。結果バス１２０は複数の情報値を結果選択論理回路４６およびフラグ発生論理回路４８の各々に提供する。さらに、結果バス１２０は情報バスＢ  ６８に結合されている。
【００２５】
結果バス（Ｒｅｓｕｌｔｓ  ｂｕｓ）１２０に加えて、フラグ発生論理回路４８がデルタレジスタ６０およびデータバッファ４２の双方に結合されている。フラグ発生論理４８はデルタレジスタ６０から「デルタ」信号を受けかつデータバッファ４２から「バッファド・データ」信号を受け取る。フラグ発生論理回路４８もまたオペランド割当て論理回路５０および結果選択論理回路４６の双方に結合され、フラグバス７０を介して複数のフラグ値を提供する。さらに、フラグ発生論理回路４８がＡＬＵ５６に結合されてＪｈｉｇｈおよびＪｌｏｗ信号を、それぞれ、ＡＬＵ５６の第６および第７の入力に提供する。
【００２６】
オペランド割当て論理回路５０もまた情報バスＡ  ６６、情報バスＢ  ６８、およびフラグバス７０に接続されている。オペランド割当て論理回路５０はＡ−入力制御論理回路５２に接続されて「マルチプライヤ１」と名付けられた第１の入力信号および「マルチプライヤ２」と名付けられた第２の入力信号の双方を提供する。さらに、オペランド割当て論理回路５０がデルタレジスタ６０に結合されて前記デルタ信号を受信する。Ａ−入力制御論理５２はＡ−入力マルチプレクサ５４に接続されて前記制御信号を提供する。
【００２７】
結果選択論理４６はフラグバス７０および結果バス１２０の双方を介して情報を受け取る。該情報は処理されて「選択（Ｓｅｌｅｃｔ）」と名付けられた第１の出力および「フォース（Ｆｏｒｃｅ）＄ＦＦ」と名付けられた第２の出力を提供する。
【００２８】
フラグ発生論理回路４８は図５に非常に詳細に示されている。フラグ発生論理回路４８は概略的にＮＯＲゲート１１０、ＮＯＲゲート１１２、ＯＲゲート１１４、ＮＯＲゲート１１６、ＮＯＲゲート１１８、ＡＮＤゲート１３２、ＡＮＤゲート１３４、ラッチ１３６、ＡＮＤゲート１３８、ＮＯＲゲート１４０、ＮＯＲゲート１４２、ＯＲゲート１４４、ＮＯＲゲート１４６、ＮＯＲゲート１４８、そしてＯＲゲート１５０を含む。ラッチ１３０および１３６は各々Ｄフリップフロップとして実施され、該Ｄフリップフロップはデータ入力（Ｄ）、クロック入力（Ｃ）、リセット入力（Ｒ）、そしてデータ出力（Ｑ）を有する。Ｄフリップフロップはデータ処理技術においてはよく知られており、従って、これ以上詳細に説明しない。
【００２９】
データバッファ４２（図４）は第１の情報値のビット１５〜８をＮＯＲゲート１１２に提供する。ここに述べた例では、前記第１の情報値は、以後バッファド・データ１信号と称される、第１のバッファリングされたデータ信号を介して与えられる。バッファド・データ１信号はポイント１の値またはスロープ１の値を提供する。ＮＯＲゲート１１２の出力は“Ｚ２”と名付けられかつラッチ１３６のデータ入力（Ｄ）およびＡＮＤゲート１３４の第１の入力に与えられる。前記タイミング制御信号はタイミング制御バス３８によってラッチ１３６のクロック入力（Ｃ）に提供される。ラッチ１３６のデータ出力（Ｑ）はＡＮＤゲート１３４の第２の入力に接続されて“ＺＰ２”と名付けられた信号を提供する。ＡＮＤゲート１３４の出力はＪＰｈｉｇｈと名付けられかつＯＲゲート１４４の第１の入力に提供される。
【００３０】
さらに、バッファド・データ１信号のビット１５〜１２（Ｂ１５〜Ｂ１２）はＮＯＲゲート１４０に与えられる。ＮＯＲゲート１４０の出力は“Ｓ２”と名付けられかつＮＯＲゲート１４２の第１の入力に提供される。
【００３１】
データバッファ４２はまた第２の情報値のビット７〜０をＮＯＲゲート１１８およびＡＮＤゲート１３８の双方に提供する。前記第２の情報値は、バッファド・データ２信号と称される、第２のバッファリングされたデータ信号を介して提供される。該バッファド・データ２信号は前記ポイント２の値のビット７〜０をＡＮＤゲート１３８に提供しかつスロープ２の値のビット７〜０をＮＯＲゲート１１８に提供する。ＡＮＤゲート１３８は出力をラッチ１３０のデータ入力（Ｄ）に提供する。前記ＮＯＲゲート１１８の出力が肯定されたとき、“０”のスロープが指示される。ＡＮＤゲート１３８の出力が肯定されたとき、その入力の全てが肯定され、ポイント２のそのＢ０〜Ｂ７がすべて“１”であることを示す。そのＢ０〜Ｂ７がすべて“１”であるとき、ポイント２は最大値に到達している。ＮＯＲゲート１１８は“Ｚ４”と名付けられた出力を提供する。このＺ４信号はＡＮＤゲート１３２の第１の入力に転送される。前記タイミング制御信号はタイミング制御バス３８によってラッチ１３０のクロック入力（Ｃ）に与えられる。ラッチ１３０のデータ出力（Ｄ）はＡＮＤゲート１３２の第２の入力に接続されて“ＺＰ４”と名付けられた信号を提供する。
【００３２】
ＡＮＤゲート１３２の出力は“ＪＰｌｏｗ”と名付けられかつＯＲゲート１５０の第１の入力に供給されている。ＡＮＤゲート１３２の出力は、肯定されたとき、ポイントＰ２に対する最大値およびスロープ２に対する“０”の値を指示し、したがって所定の限界に到達したことを示しかつライン１５１上の信号ＪＰｌｏｗが終了信号（ｔｅｒｍｉｎａｔｉｏｎ  ｓｉｇｎａｌ）であることを示す。そのような終了信号が肯定されない場合、特定のシステム入力値のファジー化が継続する。信号ＪＰｌｏｗは条件符号レジスタ６９の入力に供給される。条件符号レジスタ６９は実行ユニット１４における操作の結果を示すためにいくつかの伝統的なビットを含む。これらのビットはストップディスエーブルビット（Ｓ）、Ｘ割込みマスクビット（Ｘ）、ハーフキャリービット（Ｈ）、Ｉ割込みマスクビット（Ｉ）、負ビット（Ｎ）、ゼロビット（Ｚ）、オーバフロービット（Ｖ）、およびキャリー／ボロービット（Ｃ）を含む。これらのビットは一般に技術的によく知られた伝統的な方法でセットされかつクリアされる。
【００３３】
しかしながら、フラグ発生論理４８がメンバシップ関数が最後のセットであること、すなわち、右の境界が＄ＦＦのエンドポイントおよび＄００のスロープを有することを検出するＭＥＭ命令の間に、信号ライン１５１上の信号ＪＰｌｏｗはＣビットがセットされるようにする。そうでない場合は、ＭＥＭ命令はこのビットをクリアする。条件符号レジスタ６９のＣビットをこのようにセットすることはファジー化操作のより効率的な符号化、およびファジー化操作によって必要とされるレジスタの数を低減できるようにする。この有利性につき以下にさらに明瞭に説明する。
【００３４】
さらに、バッファド・データ２信号のビット７〜４（Ｂ７〜Ｂ４）はＮＯＲゲート１４６に与えられる。ＮＯＲゲート１４６の出力は“Ｓ４”と名付けられかつＮＯＲゲート１４８の第１の入力に提供される。
【００３５】
デルタレジスタ６０は第３の情報値のビット１５〜１２をＮＯＲゲート１１０に提供する。この構成においては、前記第３の情報値はデルタ１信号と称される第１のデルタ信号によって与えられる。ＮＯＲゲート１１０の出力は“Ｚ１”と名付けられかつまたフラグバス７０を介して転送される。このＺ１信号はまたＮＯＲゲート１４２の第２の入力に提供される。同様に、デルタレジスタ６０は第４の情報値のビット７〜４をＮＯＲゲート１１６に提供する。ＮＯＲゲート１１６の出力は“Ｚ３”と名付けられかつフラグバス７０を介して転送される。前記第４の情報値はデルタ２信号と称される第２のデルタ信号を介して与えられる。前記Ｚ３信号はまたＮＯＲゲート１４８の第２の入力に提供される。
【００３６】
結果バス１２０はＮｌｏｗおよびＮｈｉｇｈ信号を、それぞれ、ＯＲゲート１１４の第１および第２の入力に提供する。ＯＲゲート１１４の出力はＮｍｅｍと名付けられている。Ｎｍｅｍ信号はラッチ１３０およびラッチ１３６の双方のリセット入力（Ｒ）に与えられる。さらに、前記Ｎｍｅｍ信号はＮＯＲゲート１４２およびＮＯＲゲート１４８の各々の第３の入力に与えられる。
【００３７】
ＮＯＲゲート１４２の出力は“ＪＳｈｉｇｈ”と名付けられかつＯＲゲート１４４の第２の入力に与えられる。ＯＲゲート１４４の出力は“Ｊｈｉｇｈ”と名付けられている。さらに、ＮＯＲゲート１４８の出力は“ＪＳｌｏｗ”と名付けられておりかつＯＲゲート１５０の第２の入力に与えられる。ＯＲゲート１５０の出力は“Ｊｌｏｗ”と名付けられている。これらのＪｌｏｗおよびＪｈｉｇｈ信号はフラグバス７０を介して通信される。
【００３８】
オペランド割当て論理回路５０が図６にさらに詳細に示されている。オペランド割当て論理回路５０は概略的に第１のマルチプレクサ７２、第２のマルチプレクサ７４、第３のマルチプレクサ７６、および第４のマルチプレクサ７８を含む。
【００３９】
デルタレジスタ６０およびデータバッファ４２はそれぞれデルタ１およびスロープ１の値の双方の下位４ビットをマルチプレクサ７２の第１および第２の入力に提供する。さらに、デルタレジスタ６０およびデータバッファ４２はそれぞれデルタ１およびスロープ１の値の全８ビットをマルチプレクサ７４の第１および第２の入力に提供する。同様に、デルタレジスタ６０およびデータバッファ４２はそれぞれ前記デルタ２およびスロープ２の値の下位４ビットをマルチプレクサ７６の第１および第２の入力に与える。デルタレジスタ６０およびデータバッファ４２はそれぞれデルタ２およびスロープ２の値の全８ビットをマルチプレクサ７８の第１および第２の入力に与える。
【００４０】
前記“Ｚ１”信号はフラグバス７０を介してマルチプレクサ７２の第３の入力に提供される。さらに、前記Ｚ１信号はフラグバス７０を介してマルチプレクサ７４の第３の入力に提供される。同様に、“Ｚ３”と名付けられた信号が、それぞれ、マルチプレクサ７６およびマルチプレクサ７８の第３の入力に与えられる。同様に、前記Ｚ３信号はフラグバス７０を介して転送される。
【００４１】
マルチプレクサ７２は４ビットの乗数１（ｍｕｌｔｉｐｌｉｅｒ  １）信号を出力し、かつマルチプレクサ７６は４ビットの乗数２信号を提供する。マルチプレクサ７４は「被乗数（Ｍｕｌｔｉｐｌｉｃａｎｄ）１」と名付けられた８ビットの信号を出力し、この信号は情報バスＡ  ６６のハイ側を介して転送される。マルチプレクサ７８は「被乗数２」と名付けられた８ビットの信号を出力し、これは情報バスＡ  ６６のロー側を介して転送される。
【００４２】
ＡＬＵ５６が図７にさらに詳細に示されている。ＡＬＵ５６は概略的に複数の加算器回路（８０，８２，８４，８６，８８，９２，９４，９６，９８および１００）、バッファ９０、ハイキャリールックアヘッド論理回路１０２、ローキャリールックアヘッド論理回路１０４、ハイステータスフラグ回路１０６、およびローステータスフラグ回路１０８を含む。
【００４３】
前記Ａ−入力ロー側信号はそれぞれ“Ａ０”，“Ａ１”，“Ａ２”，“Ａ８”および“Ａ９”と名付けられた第１の複数のビットを提供する。ビットＡ０は加算器１００の第１の入力への入力である。同様に、ビットＡ１〜Ａ９はそれぞれ加算器９８、加算器９６、加算器９４および加算器９２の第１の入力にそれぞれ提供される。前記Ｂ−入力ロー側信号はそれぞれ“Ｂ０”，“Ｂ１”，“Ｂ２”，“Ｂ８”および“Ｂ９”と名付けられた第２の複数のビットを提供する。ビットＢ０は加算器１００の第２の入力に提供される。同様に、ビットＢ１〜Ｂ９はそれぞれ加算器９８、加算器９６、加算器９４および加算器９２の第２の入力に各々与えられる。図７には詳細に示されていないが、ビットＡ３〜Ａ７およびＢ３〜Ｂ７の各々は第１の複数の加算器（図示せず）のそれぞれの１つに提供される。前記第１の複数の加算器（図示せず）の各々は加算器９２〜１００と同様に機能しかつ、従って、同様に構成されている。
【００４４】
“Ｃ０”と名付けられた信号がローキャリールックアヘッド論理１０４の第１の入力および加算器１００の第３の入力の双方に与えられる。加算器１００は“Ｓ０”と名付けられた和信号を出力する。さらに、加算器１００は“Ｐ０”と名付けられた伝搬信号および“Ｇ０”と名付けられた発生信号の双方をローキャリールックアヘッド論理回路１０４に提供する。
【００４５】
“Ｃ１”と名付けられた信号が加算器９８の第３の入力に提供される。加算器９８は“Ｓ１”と名付けられた和信号を提供する。加算器９８もまた伝搬信号“Ｐ１”および発生信号“Ｇ１”を発生する。同様に、“Ｃ２”と名付けられた信号が加算器９６の第３の入力に与えられる。加算器９６は“Ｓ２”と名付けられた和出力、“Ｐ２”と名付けられた伝搬信号、および“Ｇ２”と名付けられた発生信号を提供する。同様に、“Ｃ８”と名付けられた信号は加算器９４の第３の入力に与えられる。加算器９４は“Ｓ８”と名付けられた和信号、“Ｐ８”と名付けられた伝搬信号、および“Ｇ８”と名付けられた発生信号を出力する。“Ｃ９”と名付けられたキャリー信号は加算器９２に対し第３の入力を提供する。加算器９２は“Ｓ９”と名付けられた和信号、“Ｐ９”と名付けられた伝搬信号および“Ｇ９”と名付けられた発生信号を出力する。加算器９２〜１００によって出力される伝搬および発生信号の各々はローキャリールックアヘッド論理回路１０４に提供される。
【００４６】
ローキャリールックアヘッド論理回路１０４は“Ｃ１０”と名付けられたキャリー信号をバッファ９０に提供する。スプリットモード制御信号もまたバッファ９０に与えられる。バッファ９０は“Ｃｉｎ”と名付けられた信号を提供する。
【００４７】
前記Ａ−入力ハイ側信号はそれぞれ“Ａ１０”，“Ａ１１”，“Ａ１２”，“Ａ１８”および“Ａ１９”と名付けられた第１の複数のビットを提供する。ビットＡ１０は加算器８８の第１の入力に入力される。同様に、ビットＡ１１〜Ａ１９は、それぞれ、加算器８６、加算器８４、加算器８２および加算器８０の第１の入力に各々与えられる。前記Ｂ−入力ハイ側信号はそれぞれ“Ｂ１０”，“Ｂ１１”，“Ｂ１２”“Ｂ１８”および“Ｂ１９”と名付けられた第２の複数のビットを提供する。ビットＢ１０は加算器８８の第２の入力に提供される。同様に、ビットＢ１１〜Ｂ１９は、それぞれ、加算器８６、加算器８４、加算器８２および加算器８０の第２の入力に各々提供される。図７には詳細に示されていないが、ビットＡ１３〜Ａ１７およびＢ１３〜Ｂ１７の各々は第２の複数の加算器（図示せず）のそれぞれの１つに与えられる。前記複数の加算器（図示せず）の各々は加算器８０〜８８と同様に機能しかつ、従って、同様に構成されている。
【００４８】
前記Ｃｉｎ信号は加算器８８の第３の入力に提供される。加算器８８は“Ｓ１０”と名付けられた和信号を出力する。さらに、加算器８８は“Ｐ１０”と名付けられた伝搬信号および“Ｇ１０”と名付けられた発生信号の双方をハイキャリールックアヘッド論理回路１０２に提供する。
【００４９】
“Ｃ１１”と名付けられた信号は加算器８６の第３の入力に与えられる。加算器８６は“Ｓ１１”と名付けられた和信号を提供する。加算器８６はまた伝搬信号“Ｐ１１”および発生信号“Ｇ１１”を発生する。同様に、“Ｃ１２”と名付けられた信号が加算器８４の第３の入力に与えられる。加算器８４は“Ｓ１２”と名付けられた和出力、“Ｐ１２”と名付けられた伝搬信号、および“Ｇ１２”と名付けられた発生信号を提供する。同様に、“Ｃ１８”と名付けられた信号が加算器８２の第３の入力に与えられる。加算器８２は“Ｓ１８”と名付けられた和信号、“Ｐ１８”と名付けられた伝搬信号、および“Ｇ１８”と名付けられた発生信号を出力する。“Ｃ１９”と名付けられたキャリー信号は加算器８０への第３の入力を提供する。加算器８０は“Ｓ１９”と名付けられた和信号、“Ｐ１９”と名付けられた伝搬信号、および“Ｇ１９”と名付けられた発生信号を出力する。加算器８０〜８８によって出力される伝搬および発生信号の各々はハイキャリールックアヘッド論理回路１０２に与えられる。ハイキャリールックアヘッド論理回路１０２は“Ｃ２０”と名付けられたキャリー信号を出力する。
【００５０】
図７には示されていないが、加算器９２〜１００およびローキャリールックアヘッド論理回路１０４によって発生されるキャリー、和、伝搬、および発生信号の各々はローステータスフラグ回路１０８にも供給される。Ｊｌｏｗ信号もまたローステータスフラグ回路１０８に供給される。同様に加算器８０〜８８およびハイキャリールックアヘッド論理回路１０２によって発生されるキャリー、和、伝搬、および発生信号の各々もまたハイステータスフラグ回路１０６に供給される。ＪＰｈｉｇｈ信号もまたハイステータスフラグ回路１０６に供給される。ローステータスフラグ回路１０８はそれぞれ“Ｓｌｏｗ”，“Ｖｌｏｗ”，“Ｎｌｏｗ”，“Ｈｌｏｗ”および“Ｚｌｏｗ”と名付けられた複数の信号を供給する。ハイステータスフラグ回路１０６はそれぞれ“Ｓｈｉｇｈ”，“Ｖｈｉｇｈ”，“Ｎｈｉｇｈ”，“Ｈｈｉｇｈ”および“Ｚｈｉｇｈ”と名付けられた複数の信号を供給する。ローステータスフラグ回路１０８およびハイステータスフラグ回路１０６の双方からの各々の出力は結果バス１２０を介して転送される。
【００５１】
ファジー論理操作の実行中に、データ処理システム１０のユーザはシステム入力のファジー化を行うためにニーモニック形式ＭＥＭ（Ｍｅｍｂｅｒｓｈｉｐ  Ｅｖａｌｕａｔｉｏｎ）を有する命令を使用することができる。ここに説明する本発明の構成においては、ユーザはファジー化されるべき入力をＭＥＭ命令の実行に先立ちシステム入力レジスタ６４に格納しなければならない。さらに、ユーザはまた実行ユニット１４における第１のインデクスレジスタ（図示せず）にポインタを格納しなければならない。該ポインタはあるメンバシップ集合の台形を識別するのに必要な４つの点のスタートアドレス位置を指し示す。図２において前に述べたように、前記４つの点はそれぞれポイント１、ポイント２、スロープ１、およびスロープ２と名付けられている。他の形式では、ユーザはこれらの値の各々を前記命令のオペランドとして提供することができる。そのような技術はデータ処理技術においてよく知られておりかつ従って、その構成はここでは詳細に説明しない。ユーザはＭＥＭ命令の実行の後のファジー化されたデータのために記憶位置を特定しなければならない。１つの形式では、該ファジー化されたデータの記憶位置を示すために第２のインデクスレジスタを使用することができる。さらに、前記システム入力値はアキュムレータ６４に格納されるべきである。
【００５２】
本発明のこの構成においては、ＭＥＭ命令の実行は図８に示されるフローチャートに従って行われる。該フローチャートはＭＥＭ命令の実行の間に行われる各々の機能の要約した概観（ｏｖｅｒｖｉｅｗ）を提供する。該機能の各々のより詳細な説明は後にＭＥＭ命令の実行の１つの例について行われる。
【００５３】
図８に示されるように、ＭＥＭ命令の実行の第１のステップは該ＭＥＭ命令がデコードされた場合に行われる。前記インデクスレジスタに格納されたアドレスが読出されかつ内部メモリ３２におけるアドレスＸからポイント１およびポイント２の値を同時にアクセスするために使用される。該アドレスは次に増分されて次のアドレス、Ｘ＋２、を指し示す。
【００５４】
次にデルタ１およびデルタ２の値が同時に発生される。デルタ１の値はポイント１の値をシステム入力レジスタ６４の内容から減算した結果として発生される。デルタ２の値はシステム入力レジスタ６４の内容を前記ポイント２の値から減算した結果として発生される。デルタ１およびデルタ２の値はともにデルタレジスタ６０に格納される。
【００５５】
次に、もし前記ポイント１の値が＄００に等しければ、ＺＰ２信号が肯定されかつ２進値１と共にラッチされる。同様に、もし前記ポイント２の値が＄ＦＦに等しければ、ＺＰ４信号が肯定されかつ２進値１と共にラッチされる。
【００５６】
次に、スロープ１およびスロープ２の値が内部メモリ３２のアドレスＸ＋２から読出されかつ同時にデータバッファ４２に格納される。該アドレスは次に増分されて次のアドレス、Ｘ＋４、をさし示す。
【００５７】
前記デルタ１およびデルタ２の値が調べられていずれかが負であるか否かが判定される。もしデルタ１またはデルタ２の値のいずれかが負であれば、システム入力値は現在調べられているメンバシップ集合の外側にある。従って、データバッファ４２の内容がクリアされ＄００の帰属度にされる。さらに、それぞれラッチ１３６および１３０に格納された前記ＺＰ２およびＺＰ４の値がクリアされる。
【００５８】
次に、デルタ１およびデルタ２の値の各々の上位４ビットが調べられてもしいずれかが＄０の１６進値に等しいか否かが判定される。もしデルタ１の値の上位４ビットが＄０に等しければ、Ｚ１フラグが肯定される。同様にデルタ２の値の上位４ビットが＄０に等しければ、Ｚ３フラグが肯定される。
【００５９】
もしＺ１フラグが肯定されていれば、デルタ１の値は乗数（Ｍｕｌｔｉｐｌｉｅｒ）１の値でありかつスロープ１の値は被乗数（Ｍｕｌｔｉｐｌｉｃａｎｄ）１の値である。そうでなければ、スロープ１の値が乗数１の値でありかつデルタ１の値が被乗数１の値である。もしＺ３フラグが肯定されていれば、デルタ２の値が乗数２の値でありかつスロープ２の値が被乗数２の値である。そうでなければ、スロープ２の値が乗数２の値でありかつデルタ２の値が被乗数１の値である。
【００６０】
デルタ１の値とスロープ１の値の積が次に発生される。さらに、デルタ２の値とスロープ２の値の積が同時に２つの同時的乗算操作によって発生される。
【００６１】
次にもしデルタ１の値とスロープ１の値の積が＄ＦＦより大きければハイサチュレーション・フラグ（Ｓｈｉｇｈ）が肯定される。さらに、もしＪｈｉｇｈ信号が肯定されればＳｈｉｇｈ信号が肯定される。もしスロープ１またはデルタ１の値のいずれもその上位４ビットにおいて＄０の１６進値を持たなければＪｈｉｇｈが肯定される。Ｊｈｉｇｈはまたポイント１およびスロープ１の値が＄００の１６進値を持つ特別の場合に肯定される。もしポイント１の値が＄００に等しければ、ＺＰ２信号が肯定され、かつもしスロープ１の値が＄００に等しければ、Ｚ２信号が肯定される。
【００６２】
同様に、もしデルタ２の値とスロープ２の値の積が＄ＦＦより大きければローサチュレーション・フラグ（Ｓｌｏｗ）が肯定される。さらに、もしＪｌｏｗ信号が肯定されればＳｌｏｗ信号が肯定される。もしスロープ２またはデルタ２の値のいずれもその上位４ビットにおいて＄０の１６進値を持たなければＪｌｏｗが肯定される。さらに、Ｚ１およびＺ２信号は否定されなければならない。Ｊｌｏｗはまたポイント２の値が＄ＦＦの１６進値を持ちかつスロープ２の値が＄００の１６進値を持つ特別の場合に肯定される。もしポイント２の値が＄ＦＦに等しければ、ＺＰ４信号が肯定され、かつもしスロープ２の値が＄００に等しければ、Ｚ４信号が肯定される。もしＺ４およびＺＰ４信号の双方が肯定されれば、前記ＪＰｌｏｗ信号が肯定されて終了条件が検出されたことを示す。
【００６３】
もしＳｈｉｇｈおよびＳｌｏｗ信号が共に肯定されれば、前記システム入力の帰属度は＄ＦＦである。もしＳｈｉｇｈが否定されかつＳｌｏｗが肯定されれば、システム入力の帰属度はデルタ１の値とスロープ１の値の積に等しい。そうでなければ、帰属度はデルタ２およびスロープ２の値の積に等しい。
【００６４】
次に前記帰属度はユーザによって特定された内部メモリ３２のアドレスに提供されかつＭＥＭ命令の実行が終了する。
【００６５】
図８に示されるフローチャートはデータ処理システム１０におけるＭＥＭ命令の実行の概観を与えている。より詳細な例を次に説明する。
【００６６】
動作において、ユーザは外部に記憶されたあるいは内部メモリ３０に記憶されたソフトウェアプログラムによってＭＥＭ命令をデータ処理システム１０に与えることができる。ＭＥＭ命令がデータ処理システム１０の外部のソースから提供されれば、該ＭＥＭ命令は外部データバス３３を介して外部バスインタフェース３０に入力されることになる。外部バスインタフェース３０は次に該ＭＥＭ命令を内部データバス３４を介してＣＰＵ１２に与える。もし該ＭＥＭ命令が内部メモリ３２におけるソフトウェアプログラムによって与えられれば、該ＭＥＭ命令は内部データバス３４を介してＣＰＵ１２に与えられることになる。ＣＰＵ１２においては、実行ユニット１４が該ＭＥＭ命令をバス制御論理回路１６、制御ユニット２０、およびシーケンサ２２の各々から受信した制御信号に応じて命令デコード論理回路１４に提供する。命令デコード論理回路１８は次に該ＭＥＭ命令をデコードして該ＭＥＭ命令の適切な実行に必要な複数の制御および情報信号を提供する。
【００６７】
ＭＥＭ命令の受信およびデコードに応じて、実行ユニット１４はシステム入力をファジー化する（ｆｕｚｚｉｆｙ）ために必要なステップを開始する。前に述べたように、ファジー化されるべき値を示すシステム入力はＭＥＭ命令の実行の前にデータ処理システム１０のユーザによってシステム入力レジスタ６４に格納されている。
【００６８】
前記システム入力値に加えて、データ処理システム１０のユーザはまたファジー論理操作の特定の構成における各々のメンバシップ集合を規定する４つの値を入力することを要求される。例えば、図１において、もし温度がファジー化されていれば、５つのメンバシップ集合が規定される必要がある。従って、全システムにおける各々のメンバシップ集合を適切に区別するのに合計２０の値が必要になる。図２において前に説明しかつ示したように、１つのメンバシップ集合を識別するのに必要な値はポイント１、ポイント２、スロープ１、およびスロープ２である。これらの境界の各々は８ビットの２進値によって表される。
【００６９】
ファジー化操作の間に、メンバシップ集合の各々がシステム入力値に関して計算されなければならない。図１に示されるファジー論理システムの場合は、システム入力の温度に対し５つのメンバシップ集合の計算がある。従って、各々のメンバシップ集合における帰属度を決定するのに必要な時間量を最少化することが重要である。
【００７０】
前記インデクスレジスタにおけるポインタは内部メモリ３２におけるポイント１の値のアドレスを指し示す。内部メモリ３２からアクセスされた時、前記ポイント１の値は外部情報バス４０を介してデータバッファ４２に与えられる。データバッファ４２はそのポイント１の値を情報バスＡ  ６６を介してＡ−入力マルチプレクサ５４に渡す。Ａ−入力マルチプレクサ５４は続いて該ポイント１の値をＡＬＵ５６に提供し、該ＡＬＵ５６においてその値はシステム入力値から減算されてデルタ１の値を提供する。デルタ１の値は情報バスＢ  ６８を介してデルタレジスタ６０に与えられる。さらに、データバッファ４２は前記ポイント１の値をバッファド・データ１信号を介してフラグ発生論理回路４８に提供する。図５のフラグ発生論理回路４８において、該ポイント１の値の各ビットがＮＯＲゲート１１２の入力に提供される。ＮＯＲ操作の結果、すなわちＺ２信号、は前記タイミング制御信号に従って決定される時点でラッチ１３６に格納される。
【００７１】
本発明のこの構成においては、ポイント１およびポイント２の値は同時に内部メモリ３２からアクセスされる。双方の値は外部情報バス４０を介してデータバッファ４２に転送される。データバッファ４２はそのポイント２の値を情報バスＢ  ６８を介してＢ−入力マルチプレクサ５８に受け渡す。Ｂ−入力マルチプレクサ５８は次にそのポイント２の値をＡＬＵ５６に与え、該ＡＬＵ５６においてシステム入力値が減算されてデルタ２の値を提供する。情報バスＢ  ６８はデルタ２の値をデルタレジスタ６０に提供する。さらに、データバッファ４２は該ポイント２の値をバッファド・データ２信号を介してフラグ発生論理回路４８に提供する。図５のフラグ発生論理回路４８においては、該ポイント２の値の各ビットはＡＮＤゲート１３８の入力に与えられる。該ＡＮＤ操作の結果は前記タイミング制御信号に従って決定される時点でラッチ１３０に格納される。該ＡＮＤ操作はポイント２の値が＄ＦＦに等しいか否かを検出する。
【００７２】
ＡＬＵ５６は上に述べた各々の減算操作を実行し、それによってデルタ１およびデルタ２の値が同時に計算されるようにする。ＡＬＵ５６は通常の動作モードにある場合は１６ビットの演算操作を行う。さらに、ＡＬＵ５６はスプリットモードの動作状態にある時２つの独立の８ビットの計算を同時に行うことができる。２つの８ビットの計算は同時に行われるから、１６ビットの操作のみを行っていたＡＬＵの場合のように何らのサイクルも浪費されない。従って、ＡＬＵ５６は８ビットの演算を行う場合に実行ユニット１８の速度および効率を大幅に増大する。ＡＬＵ５６の動作は後により詳細に説明する。
【００７３】
インデクスレジスタのポインタは次に内部メモリ３２のスロープ１の値のアドレスを指し示す。内部メモリ３２は３ビットのスロープ１の値および８ビットのスロープ２の値を外部情報バス４０を介してデータバッファ４２に与える。データバッファ４２は前記スロープの値の双方を１６ビットのバッファド・データ信号を介してフラグ発生論理４８に受け渡す。
【００７４】
デルタ１およびデルタ２の値の計算に際しかつスロープ１およびスロープ２の値の受信に応じて、フラグ発生論理回路４８はイネーブルされて現在試験されているメンバシップ集合における帰属度を決定するのに必要な複数のフラグを発生する。図５に示されるように、デルタ１、デルタ２、スロープ１、およびスロープ２の値の上位４ビットはそれぞれＮＯＲゲート１１０、ＮＯＲゲート１１６、ＮＯＲゲート１４０、およびＮＯＲゲート１４６に提供される。
【００７５】
ＮＯＲゲート１４０はＳ２信号を発生しかつＮＯＲゲート１４６はＳ４信号を発生する。Ｓ２信号はスロープ１の値の上位４ビットが＄０の１６進値を有する場合に肯定される。同様に、Ｓ４信号はスロープ２の値の上位４ビットが＄０の１６進値を有する場合に肯定される。
【００７６】
フラグ発生論理４８においては、スロープ１およびスロープ２の値はそれぞれバッファド・データ信号によってＮＯＲゲート１１２およびＮＯＲゲート１１８に提供される。Ｚ２フラグはスロープ１の値が１６進＄００に等しい場合に肯定される。ＮＯＲゲート１１２によって発生されるＺ２フラグはラッチ１３６のデータ入力およびＡＮＤゲート１３４に与えられる。Ｚ２フラグは前記タイミング制御信号が第１の所定の論理値を有する場合にラッチ１３６においてラッチされる。さらに、該タイミング制御信号が第２の所定の論理値を有する場合に、ラッチ１３６は前にラッチされたＺＰ２信号をＡＮＤゲート１３４に提供する。ＡＮＤゲート１３４はＪＰｈｉｇｈ信号を発生するために使用される。
【００７７】
Ｚ４フラグはスロープ２の値が１６進＄００に等しい場合に肯定される。ＮＯＲゲート１１８によって発生されるＺ４フラグはＡＮＤゲート１３２に提供される。ＡＮＤゲート１３８の出力はラッチ１３０のデータ入力に与えられる。ＡＮＤゲート１３８の出力は前記タイミング制御信号が第１の所定の論理値を有する場合にラッチ１３０においてラッチされる。さらに、前記タイミング制御信号が第２の所定の論理値を有する場合に、ラッチ１３０は前にラッチしたＺＰ４信号をＡＮＤゲート１３２に提供する。ＡＮＤゲート１３２はＪＰｌｏｗ信号を発生するために使用される。前記ＪＰｌｏｗ信号の状態は図４の条件符号レジスタ６９にラッチされ終了条件が検出されたことを記録する。
【００７８】
Ｚ１フラグ信号はデルタ１の値の上位４ビットの各々が否定された場合にのみ肯定される。同様に、Ｚ３フラグ信号はデルタ２の値の上位４ビットが＄０の１６進値を有する場合にのみ肯定される。各フラグ、Ｚ１およびＺ３、は次にオペランド割当てステップの間に使用され、該オペランド割当てステップは後にさらに詳細に説明する。
【００７９】
デルタ１およびデルタ２の値に加えて、結果バス１２０もまたＮｈｉｇｈおよびＮｌｏｗ信号をＯＲゲート１１４に転送してＮｍｅｍ信号を発生する。Ｎｌｏｗ信号はＡＬＵ５６によって提供されるデルタ２の値がゼロより小さい場合に肯定される。同様に、Ｎｈｉｇｈ信号はもしＡＬＵ５６によって提供されるデルタ１の値がゼロより小さければ肯定される。前に述べたように、デルタ１またはデルタ２の値のいずれかがゼロより小さければシステム入力は試験されているメンバシップ集合のメンバではない。
【００８０】
従って、Ｎｍｅｍ信号が肯定された時、システム入力は現在試験されているメンバシップ集合においてゼロの帰属度を有することになる。続いて、Ｎｍｅｍ信号がＡ−入力制御論理５２に与えられる。肯定された時、該Ｎｍｅｍ信号はＡ−入力制御論理５２がＡ−制御信号を肯定できるようにし、それによってＡ−入力マルチプレクサ５２が＄００の１６進値をＡＬＵ５６に提供できるようにする。続いて、ＡＬＵ５６は＄００の値を情報バスＢ  ６８を介してデータバッファ４２に提供する。
【００８１】
さらに、Ｎｍｅｍ信号が肯定された時、ラッチ１３０はリセットされそれによってＺＰ４信号が否定される。従って、ＪＰｌｏｗ信号は誤って肯定されることはない。同様に、ラッチ１３６がリセットされそれによってＺＰ２信号が否定されるようにする。従って、ＪＰｈｉｇｈ信号は誤って肯定されることはない。
Ｎｍｅｍ信号、Ｓ２信号、およびＺ１信号は各々ＮＯＲゲート１４２に提供されてＪＳｈｉｇｈ信号を発生する。ＪＳｈｉｇｈおよびＪＰｈｉｇｈ信号は次にＯＲ演算されてＪｈｉｇｈ信号を提供する。
【００８２】
ＪＰｈｉｇｈ信号はポイント１の値およびスロープ１の値が共に＄００の１６進値を有する特別の場合を表示するために提供される。そのような場合は、メンバシップ集合が、帰属度がポイント１の境界値において＄ＦＦの値を有するように配置された部分台形である場合に発生する。図１に示される「寒い」温度のメンバシップ関数はこの特別の場合の例である。Ｊｈｉｇｈ信号はＡＬＵ５６に提供されて飽和フラグ、Ｓｈｉｇｈ、が前記入力値が評価されているメンバシップ集合内にある場合に肯定される。Ｊｈｉｇｈ信号もまたＺ１，Ｓ２およびＮｍｅｍ信号がすべて否定されれば肯定される。これはデルタ１の値もスロープ１の値も＄０Ｆまたはそれ以下ではなく、かつ現在の入力が前記メンバシップ集合内にある場合に対応する。
【００８３】
Ｎｍｅｍ信号、Ｓ４信号、およびＺ３信号は各々ＮＯＲゲート１４８に与えられてＪＳｌｏｗ信号を発生する。ＪＳｌｏｗ信号およびＪＰｌｏｗ信号は次にＯＲ演算されてＪｌｏｗ信号を提供する。
【００８４】
Ｊｌｏｗ信号はポイント２の値が＄ＦＦの１６進値を有しかつスロープ２の値が＄００の１６進値を有する特別の場合を表示するために与えられる。そのようなケースは、メンバシップ集合が、帰属度がポイント２の境界値における＄ＦＦで終了するように配置された部分台形である場合に発生する。もちろん、前記Ｊｌｏｗ信号はまたデルタ２およびスロープ２の値の積が＄ＦＦより大きい場合に肯定される。しかしながら、信号ＪＰｌｏｗは、肯定されたとき、最後のファジー集合を示す、＄ＦＦおよび＄００のスロープ２で終了するファジー集合のみを示し、かつ、したがって、現在のシステム入力値に対するファジー化の終了を示す。図１に示された「暑い」温度のメンバシップ関数はこの特別の場合の例である。Ｊｌｏｗ信号はＡＬＵ５６に提供されて飽和フラグ、Ｓｌｏｗ、が前記入力値が現在評価されているメンバシップ集合内にある場合に肯定されるようにする。Ｊｌｏｗ信号もまたＺ３，Ｓ４およびＮｍｅｍ信号がすべて否定されれば肯定される。これはデルタ２の値もスロープ２の値も＄０Ｆまたはそれ以下ではなく、かつ現在の入力が前記メンバシップ集合内にある場合に対応する。
【００８５】
しかしながら、もし前記システム入力値が現在試験されているメンバシップ集合内にある場合は、Ｎｍｅｍ信号は否定されかつＺ１およびＺ３フラグ信号がオペランド割当て論理５０および結果選択論理４６の双方に提供されて前記メンバシップ集合内のデイグリーオブメンバシップを決定する。
【００８６】
あるメンバシップ集合における帰属度は該メンバシップ集合を規定する台形の飽和点、デルタ１およびスロープ１の積、またはデルタ２およびスロープ２の積の内の最小値を得ることにより決定される。図２で示される例においては、前記飽和点は＄ＦＦの１６進値を有し、これは０．９９６の小数であると解釈される。
【００８７】
デルタ１およびスロープ１、そしてデルタ２およびスロープ２の双方の積を計算するために、高速乗算操作を保証するための方法が開発された。技術上一般に知られているように、乗算操作は乗数（ｍｕｌｔｉｐｌｉｅｒ）が被乗数（ｍｕｌｔｉｐｌｉｃａｎｄ）より小さい場合により迅速に完了する。もし、この例のように、前記メンバシップ集合の飽和値が＄ＦＦであれば、数学的な解析によって積を形成するデルタまたはスロープ項の少なくともいずれか１つは＄０Ｆより小さいかまた等しくなければならないことが分かる。しかしながら、この場合の１つの例外は現在のシステム入力値が前記メンバシップ集合の外側にあるかあるいは前記メンバシップ集合の飽和領域にある場合に発生する。
【００８８】
前記デルタおよびスロープ値の各々の上位４ビットを調べることにより、＄０Ｆまたはそれにより小さな１６進値を有する第１の項は乗数として使用できる。したがって、乗算操作を完了させるのに必要な時間が短縮される。もしデルタ１およびスロープ１の値が双方とも＄０Ｆより大きな１６進値を有しておれば、Ｊｈｉｇｈ信号はＳｈｉｇｈ飽和フラグが肯定されるようにする。同様に、もしデルタ２およびスロープ２の値の双方とも＄０Ｆより大きな１６進値を有していれば、Ｊｌｏｗ信号はＳｌｏｗ飽和フラグを肯定されるようにする。
【００８９】
Ｚ１フラグ信号はデルタ１またはスロープ１の値が前記４ビットの乗数１信号として提供されるべきか否かを示すために使用される。同様に、Ｚ３フラグ信号はデルタ２またはスロープ２の値が４ビットの乗数２信号として提供されるべきか否かを示すために使用される。図６に示されるオペランド割当て論理５０は行なわれるべき２つの乗算操作の各々に対する乗数の値を決定するための１つの構成を与える。
【００９０】
図６に示されるように、マルチプレクサ７２はデルタ１またはスロープ１の値が前記４ビットの乗数１信号に割当てられるべきか否かを判定する。もしＺ１フラグ信号が肯定されれば、デルタ１の値が前記４ビットの乗数１信号を介して転送される。もしＺ１信号が肯定されていなければ、４ビットの乗数１信号にはスロープ１の値が割当てられることになる。さらに、もしＺ１信号が肯定されていれば、マルチプレクサ７４はスロープ１の値を８ビットの被乗数１信号としてＡｈｉｇｈに提供する。もしＺ１信号が否定されていれば、デルタ１の値が８ビットの被乗数１信号に割当てられる。
【００９１】
同様に、マルチプレクサ７６はデルタ２またはスロープ２の値がＺ３フラグ信号の値に基づき乗数２信号に割当てられるべきであるか否かを判定する。もしＺ３フラグ信号が肯定されれば、マルチプレクサ７６はデルタ２信号を乗数２信号として提供する。もしＺ３信号が肯定されていなければ、４ビットの乗数２信号はスロープ２の値を割当てられる。さらに、もしＺ３フラグ信号が肯定されていれば、マルチプレクサ７８はスロープ２信号を被乗数２信号として提供する。もしＺ３信号が否定されていれば、デルタ２の値が８ビットの被乗数１信号に割当てられる。
【００９２】
乗数１および乗数２信号はオペランド割当て論理５０からＡ−入力制御論理回路５２に転送される。Ａ−入力制御論理回路５２は乗数１および乗数２信号の各々を処理してＡ−入力マルチプレクサ５４の特定のシフト動作を決定するＡ−制御信号を提供する。
【００９３】
動作の間に、デルタ１またはスロープ１の値のいずれかである、乗数１信号はＡ−入力制御論理５２に与えられて前記被乗数１信号が第１の乗算操作を行うために０，１または２のいずれだけシフトされるべきかを決定する。さらに、Ａ−入力制御論理５２は被乗数１信号を否定するかあるいはゼロにする。Ａ−制御信号はＡ−入力マルチプレクサ５４に提供されて行われるべき操作の形式を表示する。被乗数１信号は情報バスＡ  ６６のハイ側を介してＡ−入力マルチプレクサ５４に転送される。Ａ−入力制御論理５２は被乗数１信号をＡ−制御信号に従って修正しかつその修正された被乗数１信号をＡＬＵ５６に提供する。同様に、デルタ２またはスロープ２の値のいずれかである、乗数２信号もまたＡ−入力制御論理５２に提供される。乗数２信号は第２の乗算操作を同時に行うために被乗数２信号を０，１または２のいずれかだけシフトするために使用される。さらに、Ａ−入力制御論理５２は被乗数２信号を否定しあるいはゼロにすることができる。乗数２信号は情報バスＡ  ６６のロー側を介してＡ−入力マルチプレクサ５４に転送される。Ａ−入力制御論理５２は被乗数２信号をＡ−制御信号に従って修正し、かつ次にその修正された被乗数２信号をＡＬＵ５６に提供する。
【００９４】
Ｂ−入力マルチプレクサ５８の制御はＭＥＭ命令のデコード中に発生されかつマイクロ−ＲＯＭ制御バス６５を介して転送される外部のマイクロ−ＲＯＭ制御信号によって与えられる。そのようなマイクロ−ＲＯＭ制御信号の発生、ルーティング、および使用はデータ処理技術においてよく知られており、従って、ここで詳細には説明しない。ここに述べた例においては、＄００の初期化された部分積がＢ−入力マルチプレクサ５８を介してＡＬＵ５６に与えられる。
【００９５】
Ａ−入力制御論理回路５２から適切なＡ−制御信号を受信すると、Ａ−入力マルチプレクサ５４は修正された被乗数１および修正された被乗数２信号を、それぞれ、ＡＬＵ５６のハイ側およびロー側に提供する。Ｂ−入力マルチプレクサ５８は同時に初期化された部分積を、それぞれ、ＡＬＵ５６のハイ側およびロー側に提供する。
【００９６】
ＡＬＵ５６は図７にさらに詳細に示されている。動作においては、前記修正された被乗数２信号が加算器９２〜１００のそれぞれの１つに提供される。“ａ９”と名付けられた、前記修正された被乗数２信号のビット９は加算器９２の第１の入力に接続されている。同様に、修正された被乗数２信号のビット８〜０は、それぞれ、加算器９４，９６，９８および１００の第１の入力に接続されている。“ｂ９”と名付けられた、前記初期化された部分積のビット９は加算器９２の第２の入力に接続されている。前記初期化された部分積のビット８〜０はまた、それぞれ、加算器９４，９６，９８および１００の第２の入力に接続されている。
【００９７】
“Ｃ０”と名付けられたキャリー信号が加算器１００の第３の入力に与えられる。該Ｃ０信号は一般に実行されている操作および乗数２信号の値に応じてＡＬＵ５６の外部のソースによって与えられる。これらの入力信号の各々に基づき、加算器１００は３つの出力信号を提供する。第１の出力信号、すなわちＳ０信号、は次式で表わされるものに等しい。
Ｓ０＝ａ０＝：ｂ０＝：ｃ０                                    （１）
なお、ここで＝：なる記号はほぼ等しいことを表わすものとする。
【００９８】
第２の出力信号は前記発生、またはＧ０信号であり、これは次式に等しい。
Ｇ０＝ａ０・ｂ０                                              （２）
【００９９】
第３の出力信号は伝搬、またはＰ０信号であり、これは次式に等しい。
Ｐ０＝ａ０＋ｂ０                                              （３）
【０１００】
前記Ｇ０およびＰ０信号の双方に応じて、ローキャリールックアヘッド論理回路１０４はＣ１信号を発生し、これは加算器９８の第３の入力に与えられる。該Ｃ１信号は次のように表わされる。
Ｃ１＝Ｇ０＋Ｐ０・Ｃ０                                        （４）
【０１０１】
ａ１，ｂ１およびＣ１信号の各々に応じて、加算器９８は“Ｇ１”と名付けられた信号を発生しかつ“Ｐ１”と名付けられた信号をローキャリールックアヘッド論理回路１０４に伝搬する。
【０１０２】
Ｇ１，Ｐ１およびＣ１信号に応じて、ローキャリールックアヘッド論理回路１０４はＣ２信号を発生し、これは加算器９６の第３の入力に与えられる。該Ｃ２信号は次の式で計算される。
Ｃ２＝Ｇ１＋Ｐ１（Ｇ０＋Ｐ０）Ｃ０                            （５）
【０１０３】
加算器９６は次に“Ｇ２”と名付けられた信号を発生しかつ“Ｐ２”と名付けられた信号をローキャリールックアヘッド論理回路１０４に伝搬する。
【０１０４】
続いて、ローキャリールックアヘッド論理回路１０４はキャリー信号を発生し、該キャリー信号はＡＬＵ５６のロー側の残りの加算器（９４，９２）の各々の第３の入力に与えられる。各々の残りのキャリー信号は前の発生項および前の伝搬およびキャリー項の積の和として計算される。ここには示されていないが、Ａ−入力ロー側およびＢ−入力ロー側によって与えられる値のビット３〜７の和を計算するために付加的な加算器が使用される。
【０１０５】
最後の加算器、すなわち加算器９２、から伝搬（ｐｒｏｐａｇａｔｅ）および発生（ｇｅｎｅｒａｔｅ）項を受信すると、ローキャリールックアヘッド論理回路１０４は“Ｃ１０”と名付けられたキャリー信号を発生する。該Ｃ１０信号はバッファ９０に与えられる。スプリットモード制御信号に応じて、バッファ９０は前記Ｃ１０キャリー信号をＡＬＵ５６のハイ側の次の加算器に送るか、あるいはそこで発生した他のキャリー値を提供する。スプリットモード制御信号は実行ユニット１４の外部のソースによって与えられる。例えば、ＭＥＭ命令の実行の間に、スプリットモード制御信号が命令のデコード中に発生される。さらに、該スプリットモード制御信号はデータ処理システムのユーザによって特定される命令以外のソースによって与えられてもよい。
【０１０６】
もし前記Ｃ１０キャリー信号が加算器８８にＣｉｎキャリー信号として送られれば、ＡＬＵ５６は技術的によく知られた典型的な１６ビットの演算論理ユニットとして動作する。しかしながら、もし該Ｃｉｎキャリー信号がローキャリールックアヘッド論理回路１０４以外のソースによって与えられれば、ＡＬＵ５６はスプリット動作モードで動作する。スプリット動作モードにおいては、ＡＬＵ５６は関係のない２つの８ビットの結果を同時に提供することができる。ＭＥＭ命令の実行の間に、ＡＬＵ５６はスプリット動作モードで動作して同時にデルタ１信号およびスロープ１信号の積ならびにデルタ２信号およびスロープ２信号の積の双方を提供する。さらに、ＡＬＵ５６はまたスプリットモードで動作している間に同時にデルタ１およびデルタ２の値を計算している。従って、スプリット動作モードで動作することにより、ＡＬＵ５６は８ビットの操作の結果をより迅速かつ効率的に提供することができる。
【０１０７】
さらに、ＡＬＵ５６においては、ローステータスフラグ回路１０８はＡＬＵ５６のロー側の動作に関するステータス情報を提供する。ローステータスフラグ回路１０８は複数のステータス信号、Ｓｌｏｗ，Ｖｌｏｗ，Ｎｌｏｗ，ＨｌｏｗおよびＺｌｏｗを提供し、これらの各々は結果バス１２０を介して転送される。ここには示されていないが、加算器９２〜１００の出力の各々はローステータスフラグ回路１０８に提供される。そのようなルーティングは一般にデータ処理技術において知られておりかつ当業者に容易に実施されるべきものである。ステータス信号の各々はＡＬＵ５６のロー側によって発生される複数の和およびキャリー信号を組合わせることによって決定される。
【０１０８】
ここに述べた本発明の構成においては、Ｓｌｏｗ信号は次の式で表わされる。
Ｓｌｏｗ＝Ｓ９＋Ｓ８＋Ｊｌｏｗ                                （６）
【０１０９】
Ｖｌｏｗ，Ｎｌｏｗ，ＨｌｏｗおよびＺｌｏｗ信号はそれぞれ次のように表わされる。
Ｖｌｏｗ＝Ｃ６＝：Ｃ７                                        （７）
Ｎｌｏｗ＝Ｓ８                                                （８）
Ｈｌｏｗ＝Ｃ３、および                                        （９）
Ｚｌｏｗ＝反転（Ｓ７＋Ｓ６＋Ｓ５…＋Ｓ０）                  （１０）
【０１１０】
さらに、加算器９２〜１００の各々によって出力される和信号はＡＬＵ５６から結果バス１２０を介して転送される。加算器９２〜１００によって出力される和信号の各々は乗数２および被乗数２信号の積のそれぞれのビットを表わす。次に、乗数２および被乗数２信号の積はデルタ２信号およびスロープ２信号の積に等しい。
【０１１１】
動作の間に、ＡＬＵ１０６の上位側は下位側と同様に機能する。“Ｃｉｎ”と名付けられたキャリー信号は加算器８８の第３の入力に与えられる。前に述べたように、Ｃｉｎ信号はＡＬＵ５６の外部のソースによって与えられてもよく、あるいはローキャリールックアヘッド論理回路１０４からの前記Ｃ１０キャリー信号によって与えられてもよい。前記３つの入力信号の各々に基づき、加算器８８は３つの出力信号を提供する。第１の出力信号、すなわちＳ１０信号は次式で表される。
Ｓ１０＝ａ１０＝：ｂ１０＝：Ｃｉｎ                          （１１）
【０１１２】
第２の出力信号は発生、またはＧ１０信号であり、これは次式に等しい。
Ｇ１０＝ａ１０・ｂ１０                                      （１２）
【０１１３】
第３の出力信号は伝搬、またはＰ１０信号であり、これは次式に等しい。
Ｐ１０＝ａ１０＋ｂ１０                                      （１３）
【０１１４】
前記Ｇ１０およびＰ１０信号の双方に応答して、ハイキャリールックアヘッド論理回路１０２はＣ１１信号を発生し、これは加算器８６の第３の入力に与えられる。該Ｃ１１信号は次式で表わされる。
Ｃ１１＝Ｇ１０＋Ｐ１０・Ｃ１０                              （１４）
【０１１５】
ａ１１，ｂ１１およびＣ１１信号の各々に応じて、加算器８６は“Ｇ１１”と名付けられた発生信号および“Ｐ１１”と名付けられた伝搬信号をハイキャリールックアヘッド論理回路１０２に提供する。
【０１１６】
Ｇ１１，Ｐ１１およびＣ１１信号に応じて、ハイキャリールックアヘッド論理回路１０２はＣ１２信号を発生し、これは加算器８４の第３の入力に与えられる。該Ｃ１２信号は次の式によって計算される。
Ｃ１２＝Ｇ１１＋Ｐ１１（Ｇ１０＋Ｐ１０）Ｃ１０              （１５）
【０１１７】
加算器８４は次に“Ｇ１２”と名付けられた発生信号および“Ｐ１２”と名付けられた伝搬信号をハイキャリールックアヘッド論理回路１０２に提供する。
【０１１８】
次に、ハイキャリールックアヘッド論理回路１０２はキャリー信号を発生し、該キャリー信号はＡＬＵ５６のハイ側の残りの加算器（８０，８２）の各々の第３の入力に提供される。残りのキャリー信号の各々は前の発生項および前の伝搬項とキャリー項との積の和として計算される。ここでは図示されていないが、付加的な加算器が使用されてＡ−入力ハイ側およびＢ−入力ハイ側の双方によって与えられる値のビット１３〜１７の和を計算する。
【０１１９】
最後の加算器、すなわち加算器８０、から伝搬および発生項を受信すると、ハイキャリールックアヘッド論理回路１０２は“Ｃ２０”と名付けられたキャリー信号を提供する。該Ｃ２０信号は後の操作に使用するために結果バス１２０を介してＡＬＵ５６から出力される。
【０１２０】
さらに、ＡＬＵ５６において、ハイステータスフラグ回路１０６はＡＬＵ５６のハイ側の動作に関するステータス情報を提供する。ハイステータスフラグ回路１０６は複数のステータス信号、Ｓｈｉｇｈ，Ｖｈｉｇｈ，Ｎｈｉｇｈ，ＨｈｉｇｈおよびＺｈｉｇｈを提供し、これらの各々は結果バス１２０を介して転送される。加算器８０〜８８の出力の各々はハイステータスフラグ回路１０６に提供される。前と同様に、そのようなルーティングはデータ処理技術において一般に知られておりかつ当業者に容易に実施されるべきものである。前記ステータス信号の各々はＡＬＵ５６のハイ側によって発生される複数の和およびキャリー信号を組合わせることによって決定される。
【０１２１】
ここに述べた本発明の構成において、前記Ｓｈｉｇｈ信号は次の式で表わされる。
Ｓｈｉｇｈ＝Ｓ１９＋Ｓ１８＋Ｊｈｉｇｈ                      （１６）
【０１２２】
前記Ｖｈｉｇｈ，ＮｈｉｇｈおよびＨｈｉｇｈ信号はそれぞれ次のように表わされる。
Ｖｈｉｇｈ＝Ｃ１６＝：Ｃ１７                                （１７）
Ｎｈｉｇｈ＝Ｓ１８                                          （１８）
Ｈｈｉｇｈ＝Ｃ１３、および                                  （１９）
Ｚｈｉｇｈ＝反転（Ｓ１９＋Ｓ１８＋Ｓ１７＋…＋Ｓ１０）      （２０）
【０１２３】
さらに、加算器８０〜８８の各々によって出力される和信号は結果バス１２０を介してＡＬＵ５６から転送される。加算器８０〜８８によって出力される前記和信号の各々は乗数１および被乗数１信号の積のそれぞれのビットを表わす。従って、乗数１信号および被乗数１信号の積はデルタ１信号およびスロープ１信号の積に等しい。
【０１２４】
ＡＬＵ５６のハイおよびロー側からのステータスビットの各々は次に結果選択論理４６に提供される。結果選択論理４６は続いて前記ＳｌｏｗおよびＳｈｉｇｈ信号の各々を使用してデルタ１およびスロープ１信号の積、デルタ２およびスロープ２信号の積、または＄ＦＦの飽和値のいずれが調べられているメンバシップ集合における帰属度として供給されるべきかを決定する。
【０１２５】
システム入力値がメンバシップ集合の台形内にある全ての場合に、Ｓｈｉｇｈが肯定されるか、Ｓｌｏｗが肯定されるか、或いはＳｈｉｇｈおよびＳｌｏｗの双方が肯定される。もし前記ＳｌｏｗおよびＳｈｉｇｈ信号の双方が肯定されれば、システム入力は前記飽和点（この例では、＄ＦＦ）の帰属度を有する調べられているメンバシップ集合のメンバである。従って、ＳｌｏｗおよびＳｈｉｇｈの双方が肯定される場合は、結果選択論理回路４６はフォース（Ｆｏｒｃｅ）＄ＦＦ信号を肯定してデータバッファ４２の内容を＄ＦＦになるようにしシステム入力が前記メンバシップ集合のメンバでありかつ＄ＦＦの帰属度を有することを示す。
【０１２６】
もしＳｌｏｗ信号が肯定されているが、Ｓｈｉｇｈ信号は否定されている場合は、結果選択論理回路４６はデルタ１およびスロープ１信号の積をデータバッファ４２に格納するために選択（Ｓｅｌｅｃｔ）信号を肯定する。同様に、もしＳｌｏｗ信号が否定されているが、Ｓｈｉｇｈ信号が肯定されている場合は、結果選択論理回路は前記選択信号を否定してデルタ２およびスロープ２信号の積をデータバッファ４２に格納させる。
【０１２７】
もしＳｈｉｇｈおよびＳｌｏｗの双方が否定されれば、システム入力値は前記境界値によって規定されるメンバシップ集合の台形内に無いことになる。システム入力値がメンバシップ集合の台形の外側にある全ての場合に、Ｎｍｅｍ信号が肯定される。該Ｎｍｅｍ信号は、次に、Ａ−入力制御論理５２に乗算操作の間にＡＬＵ５６にゼロが入力されることを選択させる。結果選択論理回路４６は前記フォース＄ＦＦ信号および前記選択信号の双方を否定しかつ＄００の１６進値がデータバッファ４２に格納される。結果選択論理回路４６は、従って、ＭＥＭの帰属度の計算の結果の値を決定しかつその結果をデータバッファ４２に提供する。実行ユニット１４の外部のソースから要求された場合、データバッファ４２はその結果を外部情報バス４０を介して提供する。
【０１２８】
【発明の効果】
単一のソフトウェア命令を使用してメンバシップ集合の帰属度を決定する回路および方法が提供された。ここに説明した例においては、該ソフトウェア命令はＭＥＭ命令である。該ＭＥＭ命令によってプログラムされた時、データ処理システム１０は非常に高速で実行される単一のソフトウェア命令によってメンバシップ集合の帰属度を決定することができる。従来の構成は多量のソフトウェアコードを必要とし、これは一般に実行するのにかなり多くの時間を必要とする。帰属度の計算を行う典型的なソフトウェアプログラムにおいて、ＭＥＭ命令はかなりの数のソフトウェア命令を軽減する。例えば、ＭＣ６８ＨＣ１１の命令セットを使用して実施されるソフトウェアプログラムは典型的には帰属度の計算を行うのに３１個の命令を必要とする。ＭＥＭ命令はＭＣ６８ＨＣ１１のプログラムの３１個の命令全てに置換えられる。更に、ＭＥＭ命令は結果を帰属度の計算の従来のソフトウェアによる実施の場合よりも７１サイクルまで早く提供する。
【０１２９】
ＭＥＭ命令は帰属度の計算をより早くかつ効率的に行うことができるが、その理由はそれがデータ処理システム１０の命令セットのメンバであるからである。命令セットのメンバである命令はその命令をエミュレートするために該データ処理システム１０をプログラムする外部ルーチンよりも迅速に実行されることはよく知られている。更に、オペランド割り当て論理回路５０によって行われる機能はまたＭＥＭ命令を実現するデータ処理システム１０の性能を増強する働きを成す。オペランド割り当て論理回路５０は帰属度の計算の間に使用される乗数または被乗数の内の少なくとも１つは上位４ビットにおいて＄０の１６進値を持たなければならないことを認識する。従って、上位４ビットに＄０を有する値を乗数とすることにより乗算操作がかなり短縮されかつよりタイミングよく完了することになる。
【０１３０】
更に、２つの８ビットの結果が同時に生成されるスプリットモードでＡＬＵ５６を動作させることにより、更に時間が節約される。ＡＬＵ５６はスプリット動作モードにある時２つの８ビットの結果を生成し、スプリット動作モードにない場合に１６ビットの結果を生成するために使用できる独特の回路を提供する。ここに説明した実施例の性格によって、８ビットの結果のみが前記デルタ値およびスロープ値の減算および乗算の間に生成される。従って、ＡＬＵ５６はＭＥＭ命令の実行中にスプリットモードで動作しかつ２つの減算または乗算操作が同時に行われる。従って、これらの操作を行うのに通常必要な時間はスプリットモードの動作の間は実効的に半分になる。
【０１３１】
通常、カウンタが使用されてユーザが評価されたファジー集合の数をカウントできるようにする。本発明は＄ＦＦの最大ポイント値および＄００のスロープによってトリガされる終了信号を使用することにより最後の集合を識別してカウンタの必要性を除去する。この利点は一連のメンバシップ関数における入力値の帰属度を決定するために米国特許第５，２９５，２２９号の教示にしたがって書くことができるアセンブリ言語プログラムを比較することにより説明できる。
【０１３２】
ＬＤＡＡ  ＳＹＳＴＥＭ＿ＩＮＰＵＴ
ＬＤＡＢ  ＃５  ；メンバシップ関数のためのループカウンタ
Ｌ１  ＭＥＭ  ；単一のメンバシップ計算
ＤＢＮＺ  Ｂ，Ｌ１  ；ゼロでなければカウンタを減分して分岐
【０１３３】
本発明に係わるデータ処理システムにおいては、このアセンブリ言語プログラムは次のように書くことができる。
【０１３４】
ＬＤＡＡ  ＳＹＳＴＥＭ＿ＩＮＰＵＴ
Ｌ１  ＭＥＭ  ；単一のメンバシップ計算
ＢＣＣ  Ｌ１  ；キャリークリアであれば分岐
【０１３５】
データ処理システム１０においては、ＢＣＣ命令はＤＢＮＺ命令よりも高速度で実行するが、それはループカウンタをたえず減分する必要がないからである。さらに、このシーケンスは使用するレジスタが１つ少ない。
【０１３６】
この技術は最後のメンバシップ関数が＄００の右スロープおよび＄ＦＦの右エンドポイントを有することを保証することができるファジーシステムにとって有用である。この条件は一般的なものである。しかしながら、最後のメンバシップ関数に対してこの制約を持たないシステムにおいては、前記最初の４命令シーケンスを依然として使用することができる。
【０１３７】
ここに説明した本発明の構成は実例によってのみ与えられている。しかしながら、ここに述べた機能を実行するために数多くの他の構成も存在し得る。例えば、メンバシップ集合を定義するのに必要なポイントは、メモリにあらかじめ格納されたデータ値としてよりはむしろ、ＭＥＭ命令のオペランドとしてデータ処理システム１０のユーザによって提供することができる。更に、ＡＬＵ５６は３２ビットの結果が得られるように構成することもできる。乗算または減算操作のいずれかの場合に、前記ロー側およびハイ側の各々はスプリット動作モードの間に１６ビットの結果を生成することになる。
【０１３８】
本発明の原理がここに説明されたが、当業者には前記説明は実例によってのみ行われかつ本発明の範囲を制限するものとして行われたものでないことは明らかに理解されるべきである。
【０１３９】
他の実施形態では、ＭＥＭ命令はエンドポイントと異なるファジー論理集合の特性を検出することによりあるファジー論理集合が最後のファジー論理集合であることを判定することができる。例えば、別のシステムではポイント２の値をポイント１の値より小さくなるようセットすることにより最後のファジー論理集合の発生を示すことができる。この場合、ＭＥＭ命令はこの別の特性を検出することになる。さらに、ＭＥＭ命令は完全にＣＰＵ内でまたはＣＰＵとコプロセッサの双方によって実行することができる。後者の場合、ＣＰＵは命令デコーダを含むものと考えられかつコプロセッサは実行ユニットを含むものと考えられる。したがって、添付の特許請求の範囲により、本発明の真の精神および範囲内にあるこの発明のすべての変形をカバーするものと考えている。
【図面の簡単な説明】
【図１】ファジー論理を説明するために使用される幾つかの概念および基本的な用語を示すグラフである。
【図２】図１のメンバシップ集合を詳細に示すグラフである。
【図３】本発明に係わるデータ処理システムの構成を示すブロック図である。
【図４】図３の実行ユニットの構成を示すブロック図である。
【図５】図４のフラグ発生論理回路の構成を示す論理回路である。
【図６】図４のオペランド割り当て論理回路の構成を示すブロック図である。
【図７】図４の演算論理ユニットの構成を示すブロック図である。
【図８】本発明に係わるＭＥＭ命令の実行の間に行われる機能の流れを示すフローチャートである。
【符号の説明】
１０  データ処理システム
１２  中央処理ユニット（ＣＰＵ）
１４  実行ユニット
１６  バス制御論理
１８  命令デコード論理
２０  制御ユニット
２２  シーケンサ
２４  発振器
２６  電源回路
２８  タイミング回路
３０  外部バスインタフェース
３２  内部メモリ
３４  内部データバス
３６  内部アドレスバス
３８  タイミング制御バス
４２  データバッファ
４６  結果選択論理
４８  フラグ発生論理
５０  オペランド割り当て論理
５２  Ａ−入力制御論理
５４  Ａ−入力マルチプレクサ
５６  ＡＬＵ
５８  Ｂ−入力マルチプレクサ
６０  デルタレジスタ
６４  システム入力レジスタ
６６  情報バスＡ
６８  情報バスＢ
６９  条件符号レジスタ
７０  フラグバス
１２０  結果バス
【図１】
0003958381.tif 000002
【図２】
0003958381.tif 000003
【図３】
0003958381.tif 000004
【図４】
0003958381.tif 000005
【図５】
0003958381.tif 000006
【図６】
0003958381.tif 000007
【図７】
0003958381.tif 000008
【図８】
0003958381.tif 000009