JP2561162B2 - 演算処理用半導体装置 - Google Patents

演算処理用半導体装置

Info

Publication number
JP2561162B2
JP2561162B2 JP2019451A JP1945190A JP2561162B2 JP 2561162 B2 JP2561162 B2 JP 2561162B2 JP 2019451 A JP2019451 A JP 2019451A JP 1945190 A JP1945190 A JP 1945190A JP 2561162 B2 JP2561162 B2 JP 2561162B2
Authority
JP
Japan
Prior art keywords
output
value
address
input
column
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 - Lifetime
Application number
JP2019451A
Other languages
English (en)
Other versions
JPH03223935A (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2019451A priority Critical patent/JP2561162B2/ja
Priority to US07/638,722 priority patent/US5299283A/en
Publication of JPH03223935A publication Critical patent/JPH03223935A/ja
Priority to US08/218,958 priority patent/US5448713A/en
Application granted granted Critical
Publication of JP2561162B2 publication Critical patent/JP2561162B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/02Computing arrangements based on specific mathematical models using fuzzy logic
    • G06N7/04Physical realisation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S706/00Data processing: artificial intelligence
    • Y10S706/90Fuzzy logic
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S706/00Data processing: artificial intelligence
    • Y10S706/902Application using ai with detail of the ai system
    • Y10S706/919Designing, planning, programming, CAD, CASE

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Fuzzy Systems (AREA)
  • Biomedical Technology (AREA)
  • Algebra (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Automation & Control Theory (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Devices For Executing Special Programs (AREA)
  • Feedback Control In General (AREA)

Description

【発明の詳細な説明】 [産業上の利用分野] この発明は演算処理用半導体装置に関し、特に、曖昧
さを伴う推論すなわちファジィ推論を行なうための半導
体装置の構成に関する。
[従来の技術] 近年、「大きい」、「速い」などの人間の主観を伴う
曖昧さを取扱うファジィ理論を応用したシステムが実用
化されつつある。ファジィ理論をシステムに応用する際
には、ファジィ推論が行なわれる。
典型的なファジィ推論の方式は、個々のファジィ・ル
ールが満足される度合に応じて各ルール結果を足し合わ
せ(max−min演算)、ルールの合成結果の重心を求め
(デファジファイア)、この重心を推論結果とするステ
ップを含む。
ファジィ・ルールはたとえば「Aが大であり、かつB
が普通ならば、Xを小さくせよ」のような形で、入力値
A,Bと出力値Xとの関係を定義する。ファジィ推論にお
いては、或る入力値は0ないし1の値に変換して演算さ
れる。この変換を定義するのがメンバシップ関数であ
る。メンバシップ関数は、ファジィ集合を示し、ファジ
ィ・ルールが扱う命題(たとえば「大きい」、「普
通」、および「小さい」など)ごとに定義される。
第8図の2つのファジィ・ルール、2入力値および1
出力値の場合におけるファジィ推論の最も一般的な方法
を示す。第8図において、ファジィ・ルール1は、入力
値aに対して定義されたメンバシップ関数m1a(a)を
有する、このメンバシップ関数m1a(a)を通すことに
より、入力値a0に対するメンバシップ値m1a(a0)が求
められる。出力値xに対しても、メンバシップ関数m1x
(x)が定義される。
入力値aに対するファジイ集合(メンバシップ関数m1
a(a)により与えられる)は条件部と呼ばれ、出力値
xに対するファジィ集合(メンバシップ関数m1x(x)
により与えられる)は結論部と呼ばれる。このファジィ
・ルール1は「aがm1a(1)ならば、xをm1x(1)に
せよ」というルールを記述する。
ファジィ・ルール2も同様に、入力値aに対してメン
バシップ関数m2a(a)が定義され、入力値bに対して
メンバシップm2b(b)が定義される。さらに、ファジ
ィ・ルール2の結論部においては、出力値xに対してメ
ンバシップ関数m2x(x)が定義される。
このファジィ・ルール2は入力、1出力のルールを記
述しており、「aがm2a(1)でありかつbがm2b(1)
であるならば、xをm2x(1)にせよ)という命題を記
述する。
一般には、1つのファジィ推論システムは複数のファ
ジィ・ルールを含んでおり、複数の入力値に対して各ル
ール対応に出力値を出力するため、複数の出力値が得ら
れる。次に、第8図を参照してファジィ推論の方法につ
いて説明する。
第8図のファジィ集合により示されたシステムにおい
て、入力変数a,bとして入力軸a0,b0が与えられたとす
る。ファジィ・ルール1の条件部においては、メンバシ
ップ関数m1a(a)よりメンバシップ値m1a(a0)が求め
られ、一方、ファジィ・ルール2の条件部においては、
メンバシップ関数m2a(a)およびm2b(b)によりメン
バシップ値m2a(a0)およびm2b(b0)が求められる。こ
れにより、各入力値が各条件を満足する度合が計算され
る。
次いで、入力値a0,b0がルールを満足する度合を求め
るために、各ルールにおいてメンバシップ値の最小値を
求める。この演算はmin演算と呼ばれる。図に示すよう
にルール1においては、m1a(a0)が最小値であり、ル
ール2においてはm2b(b0)が最小値である。
続いて、各ルール内において得られたメンバシップ値
の最小値を用いて各ルールの結論部のファジィ集合を制
限する。すなわち、ルール1においては結論部のメンバ
シップ関数m1x(x)をm1a(a0)で切取り、ルール2に
おいては、結論部のメンバシップ関数m2x(x)をメン
バシップ値の最小値m2b(b0)で切取る。この結論部に
おけるメンバシップ関数の残った部分(第8図において
斜線で示す)をそれぞれm1x′(x)、m2x′(x)とす
る。
続いて、各ルールにおける結論部の各出力値xに対す
るメンバシップ値を比較してその最大値をとり新しいメ
ンバシップ関数を形成するために、メンバシップ関数m1
x′(x)およびm2x′(x)の論理和をとる。この最大
値を求める演算はmax演算と呼ばれる。この論理和をと
ることにより得られた関数を、最終的に得られた出力変
数xに対するメンバシップ関数mx(x)とする。
一般的には、このメンバシップ関数mx(x)の重心の
値x0を求め、この重心値x0が出力xに対する最終出力値
として用いられ、すなわち推論結果として用いられる。
以上がファジィ推論の最も一般的な方法である。
このファジィ推論は、メンバシップ値の計算、最
小値の計算(min演算)、最大値の計算(max演算)お
よび重心の計算を一連の計算により実行することがで
きる。このファジィ推論をソフトウェアで実行する場
合、各ルールを1つずつ計算する必要がある。すなわ
ち、各ルールごとにメンバシップ値の計算、min演算を
実行する。これをすべてのルールに対して行なった後、
最後のすべての結果に対してmax演算を実行する必要が
ある。このため、ソフトウェアを用いたファジィ推論に
おいては、ルール数に比例してその処理速度は低下す
る。
このため、各ルールを並列に処理するハードウェア構
成のファジィ推論実行装置が種々提案されている。
第9図に、たとえば「日経エレクトロニクス」の1987
年7月27日号(第426号)の第150頁に示された従来のフ
ァジィ推論を行なう半導体チップの構成の一例を示す。
第9図に示すファジィ推論チップは、16ルール、4入力
変数(最大)、および2出力変数(最大)のファジィ推
論システムを実現することができる。入力変数および出
力変数は一般にファジィ集合である。
第9図を参照して、ファジィ推論チップは、入力信号
線1−1〜1−4の各々を介して伝達される入力変数a,
b,cおよびdの各々に対応して16ルール分のメンバシッ
プ関数を記憶するメモリ2−1,2−2,2−3,2−4を含
む。入力信号線1−1〜1−4の各々は4ビット幅を有
する信号線である。
従来のファジィ推論チップはさらに、16ルールの各々
に対する最小メンバシップ値を求めるために、各々がメ
モリ2−1〜2−4から対応のルールのメンバシップ値
を受け、その最小値を求めるmin演算回路103−1〜103
−16を有する。
ファジィ推論チップはさらに、ファジィ推論の結論部
の構成を与えるために、出力変数xに対し16ルール各々
のメンバシップ関数を記憶するメモリ4と、出力変数y
に対する16ルール各々のメンバシップ関数を記憶するメ
モリ5と、出力変数x,yそれぞれに対する16ルールのメ
ンバシップ関数を各ルールの最小値のメンバシップ値に
より切取るための比較回路6−1〜6−16,7−1〜7−
16を備える。比較回路6−1〜6−16はmin演算回路103
−1〜103−16出力とメモリ4からの出力とをそれぞれ
受けて比較する。比較回路7−1〜7−16は、メモリ5
からの出力とmin演算回路103−1〜103−16出力とを比
較する。
従来のファジィ推論チップはさらに、比較回路6−1
〜6−16出力を受けてその最大値を求めるmax演算回路
8と、比較回路7−1〜7−16出力を受けその最大値を
求めるmax演算回路9と、max演算回路8の出力の重心を
計算する重心計算回路10と、max演算回路9の出力によ
り出力yのメンバシップ関数の重心を求める重心計算回
路11とを含む。重心計算回路10の出力は6ビット幅の出
力信号線12を介して伝達され、出力変数xに対する推論
結果x0を示す。重心計算回路11からの出力信号は、6ビ
ット幅の出力信号線13を介して伝達され、出力変数yに
対する推論結果y0を導出する。次に動作について説明す
る。
メモリ2−1〜2−4の各々には、入力変数a〜dの
各々に対する16ルールそれぞれのファジィ集合を表わす
メンバシップ関数が記憶されている。同様に、メモリ4
および5には、出力変数xに対する16ルール分のファジ
ィ集合を表わすメンバシップ関数が記憶されている。メ
モリ2−1〜2−4,4および5の各々は、4ビットの入
力または出力変数をアドレスとし、各アドレスに対応の
4ビットの2進メンバシップ値を記憶する。したがっ
て、入力変数、出力変数およびメンバシップ値はともに
16分割(4ビット)の精度で処理される。
この状態で、入力値(a,b,c,d)を与えると、ファジ
ィ推論チップは推論を実行する。すなわち、たとえばメ
モリ2−1に対し、入力信号線1−1を介して4ビット
入力データaが与えられると、メモリ2−1は、16個の
ルール各々に対応する16個のメンバシップ値を表わす4
ビットのデータを出力する。このメモリ2−1からの16
個の4ビットデータは、16ルール各々に対応して設けら
れたmin演算回路103−1〜103−16へ与えられる。同様
にメモリ2−2〜2−4の各々に対しても、入力信号線
1−2〜1−4を介して入力値b,cおよびdがそれぞれ
与えられ、16個のメンバシップ値がそれぞれ出力され、
min演算回路103−1〜103−16へ与えられる。
min演算回路103−1〜103−16の各々は、メモリ2−
1〜2−4から与えられた4つのメンバシップ値を表わ
す4個の4ビットデータのうち最小値を求める。これに
より16ルール各々に対する最小のメンバシップ値が求め
られる。このmin演算回路103−1〜103−16の各々の出
力は、各ルール対応に設けられた比較回路6−1〜6−
16および7−1〜7−16の対応のものへ伝達される。
比較回路6−1〜6−16の各々は、対応のmin演算回
路からのメンバシップ値とメモリ4からの対応のメンバ
シップ値とを比較し、小さい方のメンバシップ値を通過
させてmax演算回路8へ与える。同様に、比較回路7−
1〜7−16の各々は、対応のmin演算回路からのメンバ
シップ値とメモリ5からの対応のメンバシップ値とを比
較し、小さい方のメンバシップ値を通過させてmax演算
回路9へ与える。この処理操作は、第8図において結論
部のメンバシップ関数の斜線領域を求める操作に相当す
る。
max演算回路8(9)は、比較回路6−1〜6−16
(7−1〜7−16)からの16個のルールそれぞれに対応
するメンバシップ値の最大値を出力変数x(y)各々に
対して求め、重心計算回路10(11)へ伝達する。この処
理動作は、第8図において結論部の切取られたメンバシ
ップ関数の論理和を求める操作に相当する。
重心計算回路10(11)は、与えられた各出力変数x
(y)に対する最大値から出力変数x(y)に対するメ
ンバシップ関数の重心を求め、信号線12(13)を介して
推論結果x0(y0)として出力する。
[発明が解決しようとする課題] 上述の従来のファジィ推論チップは、各ルールを並列
に処理することができるので、ソフトウェア処理に比べ
て高速でファジィ推論を実行することができる。しかし
ながら、従来のファジィ推論チップにおいては、min演
算、max演算および結論部の出力変数に対するメンバシ
ップ関数を最小メンバシップ値で切取るための演算を行
なうためには、2進数(第8図の例では4ビット表示の
2進デジタル値)で表わされたメンバシップ値の大小比
較を行なう必要がある。この大小比較は、メンバシップ
値の上位ビットから順次比較する必要があるため、この
比較処理を高速で実行することは困難であるという問題
がある。
また、従来のファジィ推論チップでは、ハードウェア
は半導体チップ上に固定的に設けられるため、そのハー
ドウェア上の制限により、ルールの数、入力変数の数お
よび出力変数の数などが制限され、推論の自由度が著し
く低下するという問題がある。
また、従来のファジィ推論チップにおいては、各ルー
ル対応にmin演算回路および比較回路を設ける必要があ
り、装置構成が大規模となり、かつ複雑になるという問
題がある。
それゆえ、この発明の目的は、上述の従来のファジィ
推論用半導体装置の有する問題点を除去する改良された
演算処理用半導体装置を提供することである。
この発明の他の目的は、簡易な回路構成で高速でファ
ジィ推論を実行することのできるファジィ推論用半導体
装置を提供することである。
この発明のさらに他の目的は、高速でメンバシップ値
の大小比較を行なうことのできるファジィ推論用半導体
装置を提供することである。
この発明のさらに他の目的は、簡易な構成で、複数の
関数の出力値の大小比較を高速で実行することのできる
演算処理用半導体装置を提供することである。
この発明のさらに他の目的は、高速でファジィ推論を
行なうことができるとともにファジィ推論の自由度を高
めることのできる半導体装置を提供することである。
[課題を解決するための手段] この発明に係る演算処理用半導体装置は、ファジィ推
論においてファジィ集合を表わす複数のメンバシップ関
数を各々メモリアレイ上にビットマップ状に展開して記
憶させ、メンバシップ値の最大値または最小値を、この
メモリアレイにおけるメンバシップ値の物理的な位置関
係に基づいて求めるようにしたことを特徴とする。
すなわち、この発明に係る演算処理用半導体装置は、
第1の入力データをXアドレスとし、この第1の入力デ
ータの第1の関数として決定される第1の出力データを
Yアドレスとし、この第1の入力データおよび第1の出
力データをビットマップ状に展開して記憶する第1のメ
モリエリアと、第2の入力データをXアドレスとし、こ
の第2の入力データの第2の関数として決定される第2
の出力データをYアドレスとし、この第2の入力データ
と第2の出力データとの対応関係をビットマップに展開
して記憶する第2のメモリエリアと、この第1および第
2のメモリエリアのYアドレスの各々に共通して設けら
れ、この第1および第2のメモリエリアのYアドレス出
力値に従って第1の出力データと第2の出力データとの
大小比較を行なう手段とを少なくとも備える。この比較
手段は、第1および第2のメモリエリアから並列に読出
されるYアドレスの出力ビット値に所定の演算処理を各
Yアドレスごとに施し、論理の一致/不一致を判定する
判定手段と、この判定手段の出力に従って、所定の関係
を満たすYアドレスを選択して出力することにより、第
1および第2の出力データの大小いずれかの値を出力す
る手段を備える。
この第1および第2の関数は、ファジィ推論において
ファジィ集合を表わすメンバシップ関数であり、第1お
よび第2の出力データはそれぞれメンバシップ値を示
す。
[作用] この発明においては、メンバシップ値である第1およ
び第2の出力データはそれぞれビットマップ状に展開し
てメモリセルアレイ上に格納されており、第1および第
2の入力データに応答して第1および第2の出力データ
がそれぞれ同時に読出される。この第1および第2の出
力データの大小判定は、この第1および第2の出力デー
タ対応のYアドレスの大小により判定されるため、出力
データを2進表示する構成の場合と異なり、出力データ
ビットを逐次比較する必要がなく、高速で大小比較を行
なうことが可能となるとともに、この大小比較を行なう
ための回路を排除することが可能となるため回路構成を
大幅に簡略化することができる。
さらに、ファジィ推論実行用半導体装置においてはmi
n演算回路、比較回路およびmax演算回路を各ルール対応
に設ける必要がなく、単にメモリアレイ内にメンバシッ
プ関数をビットマップ状に展開して格納するだけで済む
ため、十分なメモリ容量が準備されておれば、容易にル
ール数を増加させることができるとともに、入力変数お
よび出力変数がそれぞれXアドレスを多重化して用いる
構成とすれば、装置構成を複雑化させずかつ大規模化さ
せずに、推論の自由度を著しく改善することができる。
[発明の実施例] 以下、この発明の一実施例について図面を参照して説
明する。
第1図はこの発明の一実施例であるファジィ推論用半
導体装置の全体の構成を概略的に示す図である。第1図
に示す半導体装置は、ルール数2、入力数1および出力
数1のファジィ推論を行なうことができる。
第1図を参照して、ファジィ推論用半導体装置は、条
件部(入力変数)に対するメンバシップ関数をビットマ
ップ状に展開して記憶するメモリセルアレイ21と、結論
部(出力変数)に対するメンバシップ関数をビットマッ
プ状に展開して記憶するメモリアレイ22とを含む。メモ
リアレイ21は、16列を有し各列に対し列アドレス23−0
〜23−15が付与される。列23−0〜23−15のうち奇数列
は第1のルールに対するメンバシップ関数をビットマッ
プ状に記憶し、偶数列は第2のルールに対するメンバシ
ップ関数をビットマップ状に展開して記憶する。メモリ
アレイ22も同様に、列アドレス24−0〜24−15で表わさ
れる16個の列を有する。このメモリアレイ22も、その偶
数列と奇数列とはそれぞれ異なるルールに対するメンバ
シップ関数をビットマップ状に展開して記憶する。メモ
リアレイ21および22には、それぞれの1行を選択するた
めに、入力信号線29を介して与えられる入力変数aをデ
コードし、メモリアレイ21の対応の行を選択するXデコ
ーダ27と、信号線30を介して与えられる出力変数xをデ
コードし、メモリアレイ22の対応の行を選択するXデコ
ーダ28が設けられる。
入力変数aおよび出力変数xに対するメンバシップ値
の大小比較を行なうために、メモリアレイ21,22のそれ
ぞれの列に対し共通に配設されるAND回路25−0〜25−1
5と、AND回路25−0〜25−15出力を受け、受けた信号の
うち論理値“1"を出力する複数の列アドレスのうち最も
大きい列アドレスを示す値を出力する複数選択分離エン
コーダ26とが設けられる。AND回路25−0〜25−15の各
々は、メモリアレイ21,22のそれぞれ対応の列の出力値
を受け、その論理積を出力する。たとえばAND回路25−
0は列23−0の出力値と列24−0の出力値との論理積を
出力する。複数選択分離エンコーダ26からは、最終的に
得られる出力メンバシップ値に対応するYアドレス(列
アドレス)値が信号線31を介して出力されるとともに、
AND回路25−0〜25−15の出力がすべて論理値“0"の場
合、信号線32を介して論理値“1"の非選択信号を出力す
る。
さらに、半導体装置は、複数選択分離エンコーダ26か
らの出力信号に応答して対応の出力メンバシップ値を求
めるデコーダ回路33と、デコーダ回路33出力に応答して
重心を計算して推論結果xgを出力する重心計算回路34と
を含む。次に動作について説明する。
メモリアレイ21には、条件部に対するメンバシップ関
数がビットマップ状に展開されて記憶されている。この
メモリアレイの格納内容の一例を第2図に示す。第2図
(1)は、ルール1の条件部における入力変数aに対す
るメンバシップ関数m1(a)を示し、第2図(a)はル
ール2の条件部における入力変数aに対するメンバシッ
プ関数m2(a)を示す。入力変数aは16分割されてお
り、4ビット表示で表現され、メンバシップ値は8分割
されており、3ビットで表示される。この第2図(1)
および(2)に示すメンバシップ関数がメモリアレイ21
上にビットマップ状に展開して記憶された様子を第2図
(3)に示す。第2図(3)においては入力変数aの値
をXアドレスとし、メンバシップ値m1(a)およびm2
(a)がメモリアレイの各列に交互に格納される。ここ
で第2図(1)、(2)および(3)において斜線で示
す領域はその対応のメモリセルが論理値“1"を格納して
いることを示している。この第2図(3)に示す格納内
容においては、メモリアレイ21の偶数列アドレスに対し
てルール1のメンバシップ関数m1(a)が格納され、奇
数列アドレスに対しルール2のメンバシップ関数m2
(a)が格納されている。たとえばYアドレスが0,1に
対してはメンバシップ値m1(a)=1およびm2(a)1
がそれぞれ格納され、Yアドレスの2および3に対して
はメンバシップ値m1(a)=2およびm2(a)=2がそ
れぞれ格納される。但し、ここではメンバシップ値m1
(a)およびm2(a)は最大値は“1"には正規化されて
おらず、その最大値は“8"に設定されている。
第1図に示すメモリアレイ22に対しても、結論部にお
けるルール1およびルール2に対するメンバシップ関数
が第2図(1)〜(3)に示すようにビットマップ状に
展開して格納されており、その出力変数xをXアドレス
とし、対応のメンバシップ値がYアドレスに対応するよ
うにそのメンバシップ関数がビットマップ状に記憶され
ている。
今、条件部のメンバシップ関数に対しメモリアレイ21
のXアドレス“9"に対応する入力変数a9が与えられたと
する。この場合、第2図(3)よりXアドレスが“9"の
場合、メンバシップ値m1(a9)=1〜5およびm2(a9)
=1〜2に対する列上には論理値“1"のデータがXデコ
ーダ27の行選択に応答して出力される。すなわち、メモ
リセルアレイ21のYアドレスが0,1,2,3,4,6,8で指定さ
れる列上には論理値“1"の信号が出力される。このメモ
リアレイ21におけるXアドレスが“9"の行に接続される
1行のメモリセルのデータはAND回路25−0〜25−15の
一方入力へ伝達される。
次に、この状態で、結論部のメンバシップ関数に対し
て、メモリアレイ22のXアドレスを“0"に設定する出力
変数x0がXデコーダ28へ信号線30を介して伝達される。
Xデコーダ28は、メモリアレイ22のXアドレス“0"に対
応する行を選択する。これにより、メモリアレイ22のX
アドレスが“0"に対する行に接続される1行のメモリセ
ルのデータが列24−0〜24−15上に伝達され、AND回路2
5−0〜25−15の他方入力へ伝達される。
したがって、AND回路25−0〜25−15の他方入力へ
は、メモリアレイ22のXアドレスが“0"に対応する行の
メモリセルのうち“1"を格納するメモリセルが接続され
る列上にのみ論理値“1"の信号電位が伝達される。した
がってこの場合、メモリアレイ21およびメモリアレイ22
の各列からの出力がともに論理値“1"である列に対して
設けられたAND回路のみ論理値“1"を出力する。このAND
回路25−0〜25−15の出力は複数選択分離エンコーダ26
へ伝達される。複数選択分離エンコーダ26は、AND回路2
5−0〜25−15からの入力信号のうち論理値が“1"であ
る列のうちで最も列アドレスの値が大きい列、すなわ
ち、第1図においてAND回路25−0〜25−15の出力値が
論理値“1"である列のうちで最も図面上方にある列のY
アドレス値を信号線31上に出力する。
次に、条件部のメモリアレイ21の入力変数値をa9に固
定したまま、結論部のメモリアレイ22の出力変数値をx0
からx1へ変化させ、その出力変数値x1に対し、論理値
“1"を出力するAND回路の対応の列のうち最大の列アド
レス値を信号線31上に複数選択分離エンコーダ26を介し
て出力する。この操作を、入力変数値a9を固定したま
ま、出力変数値をx0からx15まで繰返すことにより、入
力変数値がa9である場合の出力変数値x0〜x15の各値に
対するYアドレス値が複数分離エンコーダ26から信号線
31を介して出力される。
以上の操作によって得られたアドレス値が、出力変数
値x0〜x15に対しそれぞれY0〜Y15であったとする。この
アドレス値Y0〜Y15に基づいて出力変数xに対するメン
バシップ関数mx(x)をデコーダ回路33により計算す
る。すなわち、max演算を容易に行なうことができる。
たとえば、信号線31上に与えられたアドレス値がY0=
8、Y1=7、Y2=6,…であれば、それに対するメンバシ
ップ関数は、第2図(3)から、mx(x0)=5、mx(x
1)=4、mx(X2)=4、…となる。
すなわち、この第1図に示す構成においては、ルール
1に対するメンバシップ関数とルール2に対するメンバ
シップ関数とがYアドレス方向(列方向)に関して交互
に配置されているため、 Yアドレスが奇数の場合、 Yn=2・mx(xn)−1、 Yアドレスが偶数の場合、 Yn=2・mx(xn)−2 という関係が得られる。したがってこの上式より、Yア
ドレスの値Ynの偶数/奇数(これはYアドレスの最下位
ビットの“0"、“1"検出により容易に判定することがで
きる)に従って上式のうちのいずれかの式を行なえば、
max演算処理後の出力変数xに対するメンバシップ関数m
x(x)を求めることができる。このYアドレスからメ
ンバシップ値(関数)mx(x)を求める処理は、デコー
ダ回路33により行なわれる。このデコーダ回路33出力は
重心計算回路34へ伝達され、そのメンバシップ関数mx
(x)に対する重心計算が行なわれ推論結果xgが出力さ
れる。
複数選択分離エンコーダ26から信号線32上に非選択信
号が発生され、信号線32上の信号電位が論理値“1"とな
った場合、AND回路25−0〜25−15の出力はすべて論理
値“0"であることを示しており、その出力変数値xiに対
するメンバシップ関数mx(xi)は“0"である。
上述の操作により、第8図に示すファジィ推論におい
て任意の入力変数値a9に対して最終的な出力のメンバシ
ップ関数を得ることが可能である。
デコーダ回路33の構成としては、上述の式より、複数
選択分離エンコーダ26の出力Ynを“2"で除算する処理が
含まれているので、このYアドレスYnが2進表示で与え
られる場合には、その偶奇に応じて“1"(01)または
“2"(10)を加算した後、この加算値を1ビット下位側
へシフトして出力する構成とすることにより容易に実現
することができる。
なお第1図に示す構成においては入力変数は1個であ
り、また条件部の入力変数に対するメンバシップ関数は
各ルールにつき1個である。この構成をさらに拡張し
て、条件部の入力変数の数を2に拡張することも可能で
ある。
第3図に、この発明の他の実施例である半導体装置の
全体の構成を概略的に示す。この第3図に示す半導体装
置は、ルール数2、入力数2および出力数1のファジィ
推論を行なうことが可能である。すなわち、この第3図
に示す半導体装置は、第8図に示すファジィ推論をその
まま実行することのできる構成を備えている。
第3図を参照して、半導体装置は、ルール1およびル
ール2の入力変数aに対する条件部のメンバシップ関数
m1a(a)およびm2a(a)と、ルール2の入力変数bに
対する条件部のメンバシップ関数m2b(b)と、ルール
1およびルール2の出力変数xに対する結論部のメンバ
シップ関数m1x(x)およびm2x(x)の合計5個のメン
バシップ関数をすべてビットマップ状に展開して記憶す
るメモリアレイ130を含む。メモリアレイ130は列アドレ
ス3−0〜3−39で表わされる40本の列を有している。
この40本の列は5列ずつが組になり、この組を構成する
5列において順次前述のメンバシップ関数m1a(a)、m
1x(x)、m2a(a)、m2b(b)およびm2x(x)がこ
の順にビットマップ状に展開されて記憶されている。こ
のビットマップ状の記憶形態を第2図に示すものと同様
であり、入力変数aまたはbをXアドレスとし、そのX
アドレスに対応するメンバシップ関数がその各列のメモ
リセルに2値情報の形態で記憶される。したがって、こ
のメモリアレイ130には、この5個のメンバシップ関数
をそれぞれ記憶する5列の組が合計8組存在し、この各
組はYアドレスの小さい順(第3図の下から順)に、メ
ンバシップ値1,2,3,…8に対応している。
このメモリアレイ130の1行を選択するために、信号
線39を介して与えられる入力変数aiまたはbiまたは出力
変数xをデコードし、対応の行を選択するXデコーダ27
が設けられる。今、入力変数値ai、bj、および出力変数
xはすべて4ビットであるとすると、Xデコーダ7は4
ビットデコーダであり、メモリアレイ130は16行40列に
配置されたメモリセルを有し、各メモリセルにメンバシ
ップ関数を示す値(2値情報)が格納される。
このメンバシップ関数の大小比較を行なうために、大
小比較回路50−1〜50−8が各列の組に対して設けられ
る。大小比較回路50−Nは、トライステートバッファ45
−1〜45−3と、レジスタ46−1〜46−3、AND回路45
−1,45−2、OR回路47、およびAND回路48を含む。トラ
イステートバッファ45−1は、信号線43上に伝達される
制御信号φ1に応答して導通状態となり、列3−(n+
4)上の信号電位をレジスタ46−1へ伝達する。トライ
ステートバッファ45−2は、信号線43上の制御信号φ1
に応答して導通状態となり、列3−(n+2)上のデー
タをレジスタ46−2へ伝達する。トライズテートバッフ
ァ45−3は、信号線44上の制御信号φ2に応答して導通
状態となり、列3−(n+1)上のデータをレジスタ46
−3へ伝達する。レジスタ46−1,46−2および46−3は
それぞれ、対応のトライステートバッファが導通状態と
なったときに活性化され、伝達された信号電位をラッチ
するとともにそのラッチデータを持続的に出力する。
AND回路45−1は、レジスタ46−1出力と列3−(n
+3)出力の論理積をとる。AND回路45−2は、レジス
タ46−2,46−3の出力と列3−n上の信号電位の論理積
をとる。OR回路47は、AND回路45−1,45−2の出力の論
理和をとる。AND回路48は、制御信号φ3に応答して活
性化され、OR回路47出力を通過させ、複数選択分離エン
コーダ26′の対応の列へその出力信号を伝達する。
複数選択分離エンコーダ26′は、第1図に示す複数選
択分離エンコーダ26と同様の動作を行ない、その入力信
号数が単に16ビットから8ビットに低減されているだけ
であり、同様に、論理値“1"を出力する最大の列アドレ
スを示す情報を信号線31上に伝達するとともに、信号線
38−1〜38−8上の信号電位がすべて論理値“0"の場合
には非選択信号を発生して信号線32上へ伝達する。次に
動作について説明する。今、入力変数aに対する入力値
としてai、入力変数bに対する入力値としてbjが与えら
れた場合について説明する。信号線39上に入力信号とし
てaiがデコーダ回路7へ伝達される。デコーダ回路7
は、この入力軸aiをデコードし、メモリアレイ30のXア
ドレスがiの行上に“1"を出力し、この行“i"を選択状
態とする。これにより、この選択行iに接続されるメモ
リセルは各列に接続され、各列にその記憶情報を伝達す
る。この結果、メモリアレイ130上の各列3−0〜3−3
9はそれぞれ論理値“0"または“1"の信号電位となる。
この各列上の信号電位は各列対応に設けられるAND回路4
9−1、49−2またはトライステートバッファ45−1〜4
5−3の入力端子へ伝達される。
続いて、制御信号φ1を論理値“1"の活性状態にして
信号線43上へ伝達する。これにより、入力変数aに対す
るメンバシップ関数を格納する列上の信号出力のみがト
ライステートバッファ45−1,45−2を介してレジスタ46
−1,46−2に伝達され、列3−(n+4)および3−
(n+2)に格納されたメンバシップ関数m1a(a)お
よびm2a(a)のみが選択的にレジスタ46−1,46−2に
ラッチされる。
このとき、制御信号φ2は不活性状態であり、トライ
ステートバッファ45−3は遮断状態のままであり、入力
変数bに対するメンバシップ関数m2b(b)はまだ伝達
されない。これにより、入力変数aに対するメンバシッ
プ関数m1a(a)およびm2a(a)を記憶している列に対
応して設けられたすべてのレジスタ46−1,46−2には、
入力変数aに対するすべての列の出力の論理値“0"また
は“1"がラッチされる。次いで制御信号φ1を不活性状
態とし、大小比較検出回路50とメモリアレイ130とを切
離し、メモリアレイ130を一旦スタンバイ状態とした
後、入力変数bjを受入れる準備をする。このときレジス
タ46−1,46−2には先のラッチされたデータが依然保持
されている。
次に入力信号線39上に入力変数bとして入力値biをデ
コーダ回路27へ与える。デコーダ回路27は、メモリアレ
イ130のXアドレスが“j"の行上の信号電位を論理値
“1"とし、行“j"を選択状態とする。これにより、この
選択行“j"に接続されるメモリセルアレイ情報が各列上
に伝達され、各列3−0〜3−39上の信号電位が論理値
“0"または“1"となる。次いで、信号線(入力b選択
線)44上に制御信号φ2を発生し、その信号電位を論理
値“1"に設定する。これにより入力変数bに対応するメ
ンバシップ関数m2b(b)を記憶している列3−(n+
1)の出力のみが活性状態とされたトライステートバッ
ファ45−3を介してレジスタ46−3にラッチされる。こ
の結果、入力変数bに対応する列に対して設けられたす
べてのレジスタ46−3には、対応の列上の信号電位の論
理値“0"または“1"が書込まれ、そこにラッチされる。
次いで制御信号φ2を不活性状態し、かつメモリアレイ
130をもスタンバイ状態に復帰させる。この結果、レジ
スタ46−1〜46−3には、それぞれ入力変数a,bに対す
るメンバシップ関数に対応する理論値が格納されたこと
になる。
次に、入力信号線39上に出力変数xとして出力値x0〜
x15を順次デコーダ回路27へ与える。これに応答して、
デコーダ回路27は、メモリアレイ130のXアドレス0〜1
5の行上の信号電位の論理値“1"に順次設定し、各行を
順次選択状態にする。したがって、メモリアレイ130の
出力変数xに対するメンバシップ関数m1x(x)およびm
2x(x)を記憶している列の出力値はAND回路49−1,49
−2の入力端子へ伝達される。このとき、入力変数aを
選択するための信号線43および入力変数bを選択するた
めの信号線44上の信号電位はともに論理値“0"であり、
したがってすべてのトライステートバッファ45−1〜45
−3はオフ状態となる。この状態においてレジスタ46−
1〜46−3の各々は入力値aiおよびbiに対するメンバシ
ップ値m1a(ai)およびm2a(ai)およびm2b(bj)に関
する情報を保持している。
AND回路49−1,49−2はそれぞれ入出力変数xに対す
るメンバシップ値m1x(x)およびm2x(x)に関する出
力値との論理積をとる。
AND回路49−1はルール1に関する出力変化xのメン
バシップ関数を、AND回路49−2はルール2に関する出
力変数xのメンバシップ関数に関する情報を、出力変数
値x0からx15に対応してそれぞれ順次出力する。
OR回路47はこのAND回路49−1,49−2出力の論理和を
とる。次いで、各出力変数値x0〜x15の各々の確定状態
に対応して制御信号φ3を活性状態とし、AND回路48を
イネーブル状態とする。これによりAND回路48からは各
出力変数値に対する大小比較結果すなわち第8図に示す
方法においてmax演算を行なった結果が出力される。
1つの出力変数値に関して、出力信号線38はメモリア
レイ130の5列からなる組に対して1本ずつ設けられて
いる。すなわち、メモリアレイ130全体の40列に対して
出力信号線38−1〜38−8は8本設けられており、この
出力信号線38−1〜38−8上の信号電位はYアドレス方
向に沿って小さい順にそれぞれメンバシップ値mx(x)
=1〜8に対応している。
この8本の出力信号線38−1〜38−8上の信号電位は
複数選択分離エンコーダ26′へ伝達される。複数選択分
離エンコーダ26′は、論理“1"を伝達している出力信号
線のうち最も大きいYアドレスを示すアドレス情報を3
ビットデータとして信号線31上に伝達する。これによ
り、複数選択分離エンコーダ26′からは、出力変数xに
対する複数のメンバシップ値における最大値に対応する
アドレス値を示す信号が出力される。この場合、メンバ
シップ値は1ないし8であり、大小比較検出回路50も8
個設けられており、このため、複数選択分離エンコーダ
26′出力はメンバシップ値の最大値をそのまま与えてい
ることになり、第1図に示すデコーダ回路33は省略する
ことができる。
この第3図に示す構成においては、AND回路49−1,49
−2は、常にイネーブル状態とされており、メモリアレ
イ130の選択状態にかかわらず或る信号電位を伝達する
場合が生じ、この回路構成が誤動作する可能性も考えら
れる。この場合、AND回路49−1,49−2をともに、出力
変数値xが与えられてそれに対応するメンバシップ値が
確定した状態でイネーブル状態とするように、制御信号
φ3に対応する制御信号をそれぞれAND回路49−1,49−
2へ与える構成とすれば確実なmin−max演算を行なうこ
とが可能となる。
上述の操作により、条件部入力変数aに対する入力値
がai、条件部入力変数bに対する入力値がbjの場合にお
ける結論部における出力変数x{x|x=x0,x1,x2,…x1
5}に対する最終的な出力のメンバシップ関数mx(x)
{mx(x)|x=x0,x1,x2,…,x15}を得ることがきる。
第4図に、複数選択分離エンコーダの構成の一例を示
す。第4図に示す複数選択分離エンコーダは、8列のう
ち、論理値“1"を出力する列のうち最大の列アドレスを
有する列を示す信号を出力する構成を有し、第3図に示
す複数選択分離エンコーダ26′に対応する。
第4図を参照して、複数選択分離エンコーダは、非選
択信号を信号線32上に導出するために、その一方入力が
偽入力であり、他方入力が真入力であるANDゲートによ
り構成される論理ゲート50−1〜50−8を含む。論理ゲ
ート50−8は、その偽入力に列38−8上の信号電位を受
け、その真入力にたとえば電源電位である基準電位Vdd
を受ける。論理ゲート50−7はその偽入力に列38−7上
の信号電位を受け、その真入力に論理ゲート50−8出力
を受ける。論理ゲート50−6は、その偽入力に列38−6
上の信号電位を受け、その真入力に論理ゲート50−7出
力を受ける。論理ゲート50−5は、その偽入力に列38−
5上の信号電位を受け、その真入力に論理ゲート50−6
出力を受ける。論理ゲート50−4は、その偽入力に列38
−4上の信号電位を受け、その真入力に論理ゲート50−
5出力を受ける。論理ゲート50−3は、その偽入力に列
38−3上の信号電位を受け、その真入力に論理ゲート50
−4出力を受ける。論理ゲート50−2はその偽入力に列
38−2上の信号電位を受け、その真入力に論理ゲート50
−3出力を受ける。論理ゲート50−1は、その偽入力に
列38−1上の信号電位を受け、その真入力に論理ゲート
50−2出力を受ける。論理ゲート50−1から信号線32上
に非選択信号が出力される。
複数選択分離エンコーダはさらに、論理値“1"を出力
する列のうち最大の列アドレスを有する列を指定する信
号を出力するために、AND回路51−1〜51−7と、絶縁
ゲート型電界効果トランジスタ53−10〜53−12、53−2
1,53−22,53−30,53−32、53−42、53−50,53−51、53
−61、53−70を備える。AND回路51−1は、列38−1上
の信号電位と論理ゲート50−2出力とを受ける。AND回
路51−2は、列38−2上の信号電位と論理ゲート50−3
出力とを受ける。AND回路51−3は、列38−3上の信号
電位と論理ゲート50−4出力とを受ける。ANDゲート51
−4は、列38−4上の信号電位と論理ゲート50−5出力
とを受ける。AND回路51−5は、列38−5上の信号電位
と論理ゲート50−6出力とを受ける。AND回路51−6
は、列38−6上の信号電位と論理ゲート50−7出力とを
受ける。AND回路51−7は、列38−7上の信号電位と論
理ゲート50−8出力とを受ける。
トランジスタ53−10はAND回路51−1出力に応答して
導通状態となり、信号線31−0を論理値“0"を示す基準
電位(以下、接地電位と称す)に接続する。トランジス
タ53−11は、AND回路51−1出力に応答して導通状態と
なり、信号線31−1を接地電位に接続する。トランジス
タ53−12は、AND回路51−1出力に応答して導通状態と
なり、信号線31−2を接地電位に接続する。
トランジスタ53−21は、AND回路50−3出力に応答し
て導通状態となり、信号線31−1を接地電位に接続す
る。トランジスタ53−22は、AND回路51−2出力に応答
して導通状態となり、信号線31−2を接地電位に接続す
る。トランジスタ53−30,およびトランジスタ53−32
は、AND回路51−3出力に応答して導通状態となり、信
号線31−0および信号線31−2をそれぞれ接地電位に接
続する。
トランジスタ53−42は、AND回路51−4出力に応答し
て導通状態となり、信号線31−2を接地電位に接続す
る。トランジスタ53−50および53−51は、AND回路51−
5出力に応答して導通状態となり、信号線31−0および
31−1をそれぞれ接地電位に接続する。
トランジスタ53−61はAND回路51−6出力に応答して
導通状態となり、信号線31−1を接地電位に接続する。
トランジスタ53−70は、AND回路51−7出力に応答して
導通状態となり、信号線31−0を接地電位に接続する。
信号線31−0,31−1および31−2の各々に対しては、
その一方端子が論理値“1"を与える基準電位(たとえば
電源電位)に接続されるプルアップ抵抗52−0,52−1お
よび52−2が設けられる。次に動作について説明する。
今、列38−3および38−5に論理値“1"が出力され、
残りの列上には論理値“0"が伝達される場合も考える。
列38−6、38−7および38−8上には論理値“0"が伝
達されているため、論理ゲート50−6、50−7および50
−8はすべて論理値“1"を出力する。したがって、AND
回路51−5、51−6および51−7の一方入力端子には論
理値“1"が与えられる。一方、列38−6および38−7に
は、論理値“0"が伝達されているため、AND回路51−6
および51−7の他方入力端子には論理値“0"が与えられ
る。これにより、AND回路51−6および51−7は論理値
“0"を出力する。
列38−5上には論理値“1"が伝達されているので、AN
D回路51−5の他方入力端子には論理値“1"が与えられ
る。したがって、AND回路51−5は論理値“1"を出力す
る。
論理ゲート50−5の2つの入力はともに論理値“1"の
信号を受けるため、この論理ゲート50−5は論理値“0"
を出力する。これにより、AND回路50−1、50−2、50
−3および50−4の出力はすべて論理値“0"となる。こ
の結果、AND回路51−1、51−2、51−3および51−4
の出力もすべて論理値“0"となる。
上述の論理ゲートの機能により、AND回路51−1〜51
−7のうちAND回路51−5のみが論理値“1"を出力す
る。これに応答して、トランジスタ53−50および53−51
がそのゲートに論理値“1"を受けて導通状態となり、信
号線51−0および51−1は接地電位に近い電位レベルに
まで低下させられる。一方、信号線51−2は、そこに接
続されるトランジスタはすべて遮断状態であるため、プ
ルアップ抵抗52−2を介して電源電位Vddレベルに保持
される。
これにより、3本の信号線31−0,31−1および31−2
上には各々論理値“1"、“0"、“0"が出力される。すな
わち、列アドレス(100)が出力され、論理値“1"を出
力する列のうち最大の列アドレスを有する列を示す信号
を得ることができる。
一方、信号線12上には、論理ゲート50−1を介して論
理値“0"が出力される。
以上のような動作の結果、論理値“1"が伝達されてい
る列のうち最も列アドレス値の大きい列すなわち第4図
において最も上方に位置する列を示すアドレス値が信号
線31−0〜31−2上に出力される。たとえば、最大の列
アドレスを有する列が列38−8の場合には、信号線31−
0〜31−2には3ビットデータ(1,1,1)が出力され
る。同様に、この列が列38−7の場合には(1,1,0)
が、列38−6の場合には(1,0,1)が、列38−5の場合
には(1,0,0)が、列38−4の場合には(0,1,1)が、列
38−3の場合には、(0,1,0)が、列38−2の場合には
(0,0,1)が、列38−1の場合には(0,0,0)が出力され
る。一方、列38−1〜38−8の8列すべてに論理値“0"
が伝達された場合、信号線32上には論理値“1"が出力さ
れる。
複数選択分離エンコーダは上述のように動作するの
で、たとえば列38−8に対してYアドレス=7、列38−
7に対しては、Yアドレス=6、…、列38−1に対して
Yアドレス=0と定めた場合、信号線11−2,11−1,11−
0の3ビットの出力値は論理が“1"である列のうち最も
アドレス値の大きい列のアドレス値を2進数にエンコー
ドした値に等しくなる。また、列38−1〜38−8のすべ
てに対し論理値“0"が与えられた場合のみ非選択信号出
力信号線32は論理値“1"を出力する。
上述の構成は、8列のうちの最もアドレス値の大き
い、論理値“1"を出力する列のアドレスをエンコードす
る構成を示しているが、第1図に示すような列が16列存
在する場合においても、このトランジスタを各列を4ビ
ット2進表示するように配置すれば容易に拡張すること
が可能となる。
第5図にこの発明のさらに他の実施例である半導体装
置の要部の構成を示す。第5図において、メモリアレイ
60は、CAM(内容アドレスメモリ)サブアレイ(データ
フィールド)により構成され、入力変数aのためのCAM
サブアレイ60−1、入力変数bのためのCAMサブアレイ6
0−2および出力変数xのためのCAMサブアレイ60−3を
含む。CAMアレイ60は、各列がワードを格納する16列3
−0〜3−15を有しており、交互の列にルール1に対す
るメンバシップ値m1a(a)、m1b(b)およびm1x
(x)と、ルール2に対するメンバシップ値m2a
(a)、m2b(b)およびm2x(x)をそれぞれデータフ
ィールド対応に格納する。
CAMサブアレイ60−1、60−2および60−3の各々に
対して検索データを導出するために検索データ導出回路
59−1、59−2および59−3が設けられる。
この半導体装置はさらに、CAMサブアレイ60−1〜60
−3の各列におけるワードと検索データとの一致/不一
致結果を示す信号を保持するレジスタ56と、レジスタ56
の保持データに従って論理値“1"を出力する列(検索ワ
ードと保持ワードとが一致した列)のうち最大の列アド
レス(図面上方向)の列アドレスを出力する複数選択分
離エンコーダ26を備える。次に動作について説明する。
まず、第6図を参照してCAMアレイの動作について説
明する。第6図においては、説明を簡略化するために、
検索データは8ビットであり、CAMアレイ60は8行6列
のメモリセル配置を有しており、列3−0〜3−5の各
々には8ビットデータからなるワードが格納されてお
り、各列には図に示すような8ビットデータが各列に格
納されているものとする。
今、8ビット検索データとして(XX1X1XXX)というデ
ータをCAMアレイ60へ与え、一致検索動作を行なう場合
を考える。ここで、8ビット検索データのうち、“1"は
CAMアレイ60に記憶されている対応のビットのデータが
“1"である場合にそのビットとの一致を示す。また、8
ビット検索データのうち“X"は、CAMアレイ60に記憶さ
れている各ビットのデータが“1"であっても“0"であっ
てもそのビットとの一致を示している。したがって、CA
Mアレイ60に上述のような8ビット検索データを与えた
場合、CAMアレイ60の各ビット位置において、一致/不
一致の判定が行なわれる。
CAMサブアレイ60の列3−0〜3−15のそれぞれにお
いて、もし或る列を構成する8ビットデータがすべて検
索データとの一致を示した場合だけ、その列は論理値
“1"を出力し、レジスタ56の対応ビット位置に論理値
“1"を書込む。
一方、列を構成する8ビットデータのうち、1ビット
でも検索ワードと保持ワードとの不一致を示した場合
は、その列は論理値“0"を出力し、レジスタ56の対応の
ビット位置に論理値“0"を書込む。この第6図に示す場
合、列3−1および3−0のみが8ビットデータすべて
が検索データとの一致を示し、レジスタ56の対応のレジ
スタ56−1および56−0に論理値“1"が書込まれる。
第5図に示す構成を用いて2入力変数a,b、1出力変
数xおよび2ルールのファジィ推論を行なう場合を考え
る。CAMアレイ60は、Nビットのデータフィールド(サ
ブアレイ)60−1,60−2および60−3を有し、各列3−
0〜3−15は3Nビットのワードを格納するものと想定す
る。各データフィールドには、第2図(3)に一例を示
すように、入力変数a,bおよび出力変数xに対するメン
バシップ関数がビットマップに展開されて記憶される。
また、偶数列アドレスの列がルール1のメンバシップ関
数を、奇数列アドレスの列にはルール2のメンバシップ
関数が記憶されているものとする。
上述のようにメンバシップ関数が記憶されているCAM
アレイ60に対し、次に示す検索データを与える。
出力変数x0: (1XX…X)…フィールド60−3、 この検索データは、入力変数aに対応するフィールド60
−1に対しては図の左からiビット目だけが論理値“1"
であり、残りのビットに対しては“X"である。また、入
力変数bに対するフィールド60−2に対しては、このフ
ィールド60−2の図面の左からjビット目に対するビッ
トのみが論理値“1"であり、残りのビットは“X"であ
る。また、出力変数xに対するフィールド60−3に対し
ては、このフィールド60−3の図面の左から1ビット目
だけが“1"であり、残りのビットに対しては“X"のデー
タが伝達される。
上述のような検索データをCAMアレイ60に与えること
により、CAMアレイ60の列3−0〜3〜15の各々におい
て、入力変数aに対するフィールド60−1において図面
の左からiビット目が論理値“1"であり、かつ入力変数
bに対するフィールド60−2において図面の左からjビ
ット目が論理値“1"6であり、かつ出力変数xに対する
フィールド60−3において図面の左から1ビット目が論
理値“1"であるワードを格納する列のみが、レジスタ56
の対応のビット位置のレジスタに論理値“1"に書込む。
すなわち、3Nビットのデータ長を持つ各列において、
左からiビット目と(n+j)ビット目と(2n+1)ビ
ット目が論理値“1"であるようなワードを格納する列の
みがレジスタ56の対応のビット位置に論理値“1"を書込
み、残りの列はレジスタ56に論理値“0"を書込む。
上述の操作により得られたレジスタ56に格納された結
果データは、複数選択分離エンコーダ26へ与えられ、そ
こから、論理値“1"を書込まれたレジスタ56のうち最も
アドレス値の大きい、すなわち第5図の上方に位置する
レジスタビット位置のアドレス値を示す4ビットデータ
が信号線31上に出力される。
この複数選択分離エンコーダ26からの4ビット出力ア
ドレス値をY0とすると、入力値ai−1およびbi−1なら
びに出力変数値x0に対応する最終的な出力のメンバシッ
プ値mx(x0)は、 mx(x0)={Y0−(Y0mod2)}÷2+1 によって対応づけられる。この式は、第1図に示した場
合の最終的な出力メンバシップ値と出力アドレス値との
対応関係と同一である。したがって、この複数選択分離
エンコーダ26からの信号をデコーダ回路を用いてデコー
ドすることにより、最終的な出力メンバシップ値を得る
ことができる。
もし信号線32上の非選択信号が論理値“1"となれば、
その場合のメンバシップ値mx(x0)は“0"である。
次に、検索データとして、入力変数aおよびbに対す
るフィールドの状態を固定したまま、出力変数xに対応
するフィールド60−3に対して、図面の左から2ビット
目のみを論理値“1"にしたデータを与える。この結果、
信号線31に与えられた4ビット出力アドレス値をY1とす
ると、この出力変数に対する最終的なメンバシップ値mx
(x1)は、 mx(x1)={Y1−(Y1mod2)}÷2+1 として得られる。
以上のようにして、k回目の検索データとして、入力
変数aに対応するフィールド60−1対しては図面の左か
らiビット目のみを論理値“1"に固定し、入力変数bに
対応するフィールド60−2に対しては図面の左からjビ
ット目のみを論理値“1"に固定し、出力変数xに対する
フィールド60−3に対しては左からkビット目のみを論
理値“1"に固定し、残りのすべてのビットは“X"である
データを用いる。このような検索データを導出する回路
構成は、第1図または第3図に示すようなXデコーダを
用いて容易に実現することができる。
この検索によって得られた4ビット出力アドレス値を
Y(k−1)とすると、出力変数値xk−1に対応する最
終的なメンバシップ値mx(xk−1)は、 mx(xk−1) ={Y(k−1)−(Y(k−1)mod2)} ÷2+1 によって対応づけられる。但し信号線32上の論理値が
“1"の場合にはmx(xk−1)=0となる。
したがって、上述の構成を用いることにより、入力値
ai−1およびbj−1、出力変数x{x|x|=0,…,N}に対
する最終的なメンバシップ関数mx(x){x|x=0,…,
N}は、k=1からk=NまでのN回の検索を行うこと
により得ることができる。上述の構成のようなCAMアレ
イを用いれば、レジスタ56は通常CAMに内蔵されてお
り、第1図、または第3図に示すようなANDゲートを用
いる必要がなく、簡易な回路構成で容易にファジィ推論
におけるmin演算およびmax演算を高速で実行することの
できる半導体装置を得ることができる。
第7図に、第5図に示すファジィ推論を実行可能にす
るCAMアレイの構成の一例を示す。第7図においては3
個のCAMセル70−1〜70−3が代表的に示される。
第7図を参照して、CAMセル70−1は、情報を記憶す
るキャパシタ77−1と、ワード線72上の信号電位に応答
して導通状態となり、キャパシタ77−1を入力信号線71
−1に接続するnチャネル絶縁ゲート型電界効果トラン
ジスタ74−1と、キャパシタ77−1の充電電位に応答し
て導通状態となり、入力信号線71−1上の信号電位を伝
達するnチャネルMIS(絶縁ゲート型電界効果型)トラ
ンジスタ75−1と、そのゲートおよび一方導通端子が出
力信号線73に接続され、その他方導通端子にトランジス
タ75−1の伝達した信号電位を受けるnチャネルMISト
ランジスタ76−1を備える。CAMセル70−2および70−
3も、CAMセル70−1と同様の構成を有しており、対応
する部分には、ハイフン付き数字を異ならせて同様の参
照番号で示している。次に動作について説明する。
以下の説明においては、入力信号線71−1〜71−3に
与えられる論理値“1"は電位レベル“L"に、論理値“0"
または“X"は電位レベル“H"に対応する。今、このCAM
セル70−1〜70−3で3ビットワードすなわちCAMアレ
イの1列を構成している場合を想定する。まず、メンバ
シップ関数の記憶動作について説明する。まず、出力信
号線73の電位レベルを“L"に設定する。この状態で入力
信号線71−1〜71−3の各々へ“L"、“H"、および“L"
の電位を与え、ワード線72の電位を“H"にする。これに
より、トランジスタ74−1〜74−3が導通状態となり、
キャパシタ77−1〜77−3へはそれぞれ“L"、“H"、お
よび“L"の電位が伝達される。これにより、CAMセル列
には(101)のデータが記憶されることになる。上述の
動作をCAMアレイ60の各列に対して繰返すことにより、C
AMアレイ60に、メンバシップ関数をビットマップ状に展
開して記憶させることが可能となる。
次に検索動作について説明する。
メンバシップ関数を記憶したCAMアレイ60に対し、出
力信号線73を“H"のフローティング状態とし、この状態
で入力信号線71−1〜71−3にそれぞれ“L"、“H"、お
よび“H"、すなわちデータ(1XX)を与える。この状態
においては、ワード線72の電位は“L"である。このと
き、キャパシタ77−1および77−3は電位“L"に充電さ
れているため、トランジスタ75−1、および75−3はオ
フ状態である。一方、キャパシタ77−2は電位“H"に充
電されているが、入力信号線71−2上の信号電位も“H"
であるため、トランジスタ75−2もオフ状態である。こ
の結果、出力信号線73はその電位“H"を保持する。
今、入力信号線71−1〜71−3にそれぞれ“L"、
“L"、および“H"を、すなわちデータ(11X)を与えた
場合を考える。この場合、トランジスタ75−2が導通状
態となり、出力信号線73からトランジスタ76−2および
75−2を介して入力信号線71−2へ向かって電流が流
れ、出力信号線73の電位は“H"から“L"へ変化する。
したがって論理値“0"を記憶しているCAMセルに対し
検索データ“1"が与えられた場合のみ、そのCAMセルを
含むCAM列に対応する出力信号線73は、その電位レベル
が“L"となる。したがって、出力信号線の電位に関して
はその電位レベルが“H"の場合の論理を“1"、電位レベ
ルが“L"である場合の論理を“0"と設定することによ
り、第6図にその一例を示すように、或る列を構成する
複数ビットデータがすべて検索データと一致を示した場
合においてのみその列を論理値“1"を出力する。
以上のように、メモリアレイにメンバシップ関数をビ
ットマップ状に展開して記憶させることにより高速で、
ファジィ推論において単に各列上の信号電位を検出する
ことによりmin演算およびmax演算を行なうことが可能と
なり、高速でファジィ推論を行なうことが可能な半導体
装置を得ることができる。
なお、上記実施例においては、ファジィ推論における
ファジィ集合を示すメンバシップ関数をビットマップ状
に展開してメモリアレイ内に記憶する構成を示したが、
このメモリアレイにビットマップ状に展開されて書込ま
れる関数としては、このようなファジィ推論におけるメ
ンバシップ関数に限定されず、一般に、入力信号に対応
する関数値の大小比較演算が行なわれるべきすべての関
数をメモリアレイにビットマップ状に展開して書込む構
成とすれば、複数の関数値の大小比較演算を高速に実行
することが可能である。
さらに、CAMアレイの構成としては、単にマッチアド
レスを出力する構成を有するCAMアレイであればどのよ
うな構成のものを用いても上記実施例と同様の効果を得
ることができる。
また複数選択分離エンコーダの構成としても、第4図
に示す構成に限定されず、他の構成を用いても同一の基
能を果たす構成であれば上記実施例と同様の効果を得る
ことができる。
[発明の効果] 以上のように、この発明によれば、複数の関数をビッ
トマップ状に展開してメモリアレイに記憶し、出力関数
値の大小比較を、出力値のそのメモリアレイにおける物
理的位置関係に従って行なうように構成したので、簡易
な構成で高速に複数の関数値の大小比較を行なうことの
できる演算処理用半導体装置を得ることができる。
さらに、ビットマップ状に展開される関数としてファ
ジィ推論におけるファジィ集合を示すメンバシップ関数
を用いた場合、min演算およびmax演算は、メンバシップ
値のメモリアレイにおける物理的位置関係に基づいての
み行なうことが可能となり、高速でファジィ推論を実行
することのできるファジィ推論用半導体装置を得ること
ができる。
さらに、入出力変数およびファジィ・ルールの数が増
大したとしても、単にメモリ容量を増大させるだけで対
応することができるので、推論の自由度を大幅に改善す
ることのできる小占有面積で簡易な構成のファジィ推論
用半導体装置を得ることができる。
【図面の簡単な説明】
第1図はこの発明の一実施例であるファジィ推論用半導
体装置の全体の構成を概略的に示す図である。第2図は
メンバシップ関数を記憶するメモリアルイの内容の一例
を示す図である。第3図はこの発明の他の実施例である
半導体装置の要部の構成を概略的に示す図である。第4
図は第3図に示す複数選択分離エンコーダの構成の一例
を示す図である。第5図はこの発明のさらに他の実施例
である半導体装置の要部の構成を概略的に示す図であ
る。第6図は第5図に示すCAMアレイの動作を説明する
ための図である。第7図は第5図に示したCAMアレイの
具体的構成の一例を示す図である。第8図はファジィ推
論の方法を説明するための図である。第9図は従来のフ
ァジィ推論用半導体装置の全体の構成を概略的に示す図
である。 図において、21は条件部に対するメンバシップを格納す
るメモリアレイ、22は結論部に対するメンバシップ関数
を格納するメモリアレイ、3−0〜3−15、23−0〜23
−15はメモリアレイにおける列、24−0〜24−15はメモ
リアレイ22の列、25−0〜25−15はAND回路、26,26′は
複数選択分離エンコーダ、27はメモリアレイ21に対する
Xデコーダ、28はメモリアレイ22に対するXデコーダ、
33はメンバシップ値を導出するためのデコーダ回路、34
は重心計算回路、50−1〜50−8は、メモリアレイ130
の各列出力によりメンバシップ値の大小比較を行なう演
算回路、56はレジスタ、59は検索データを導出するため
の回路、60はCAMアレイ、60−1,60−2,60−3はCAMアレ
イのデータフィールド、130は入出力変数に対するメン
バシップ関数を格納するメモリアレイである。 図中、同一符号は同一または相当部分を示す。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】第1の入力信号をXアドレスとし、前記第
    1の入力信号の予め定められた関数として決定される第
    1の出力信号値をYアドレスとし、前記第1の入力信号
    と前記第1の出力信号との対応関係をビットマップ状に
    展開して記憶する第1の記憶手段、 第2の入力信号をXアドレスとし、前記第2の入力信号
    の予め定められた関数として与えられる第2の出力信号
    値をYアドレスとし、前記第2の入力信号と前記第2の
    出力信号との対応関係をビットマップ状に展開して記憶
    する第2の記憶手段、および 前記第1および第2の記憶手段の前記Yアドレスそれぞ
    れのビット値を並列にかつ対応のYアドレスのビット値
    を共通に受けるように設けられ、前記第1および第2の
    入力信号が前記第1および第2の記憶手段へそれぞれ与
    えられたとき、前記第1および第2の記憶手段の各Yア
    ドレスの出力ビット値に従って前記第1および第2の出
    力信号の大小比較を行ない、かつ大小いずれかの出力信
    号を出力する比較手段を備え、 前記比較手段は、前記第1および第2の記憶手段から並
    列に読出された各前記Yアドレスのビット値に所定の論
    理処理を施して各対応のYアドレスのビット値の一致/
    不一致を判定し各Yアドレスごとに出力する判定手段
    と、 前記判定手段の各前記Yアドレスに対応する出力に従っ
    て所定の関係を満たすYアドレスを選択して出力するこ
    とにより、前記第1および第2の出力信号の大小比較結
    果により求められた大小いずれかの出力信号を出力する
    手段を備える、演算処理用半導体装置。
JP2019451A 1990-01-29 1990-01-29 演算処理用半導体装置 Expired - Lifetime JP2561162B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2019451A JP2561162B2 (ja) 1990-01-29 1990-01-29 演算処理用半導体装置
US07/638,722 US5299283A (en) 1990-01-29 1991-01-03 Semiconductor device for executing fuzzy inference and method of operation thereof
US08/218,958 US5448713A (en) 1990-01-29 1994-03-28 Semiconductor device for logical operation processing and method of operation processing therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019451A JP2561162B2 (ja) 1990-01-29 1990-01-29 演算処理用半導体装置

Publications (2)

Publication Number Publication Date
JPH03223935A JPH03223935A (ja) 1991-10-02
JP2561162B2 true JP2561162B2 (ja) 1996-12-04

Family

ID=11999679

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019451A Expired - Lifetime JP2561162B2 (ja) 1990-01-29 1990-01-29 演算処理用半導体装置

Country Status (2)

Country Link
US (2) US5299283A (ja)
JP (1) JP2561162B2 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR950012380B1 (ko) * 1990-03-12 1995-10-17 후지쓰 가부시끼가이샤 뉴로-퍼지 융합 데이터처리 시스템
US5285414A (en) * 1990-09-26 1994-02-08 Hitachi, Ltd. Semiconductor memory having transistors which drive data lines in accordance with values of write data and column select signal
US5710868A (en) * 1991-06-12 1998-01-20 Microchip Technology Incorporated Apparatus and method for generating a fuzzy number for use in fuzzy logic systems
IT1252131B (it) * 1991-11-27 1995-06-05 Sgs Thomson Microelectronics Architettura e metodo di organizzazione della memoria di un controllore elettronico operante con modalita' logiche di tipo fuzzy
JPH05181987A (ja) * 1991-12-28 1993-07-23 Rohm Co Ltd ファジイニューロンチップ
EP0557675B1 (en) * 1992-02-28 1995-07-19 STMicroelectronics S.r.l. A fuzzy logic electronic controller and associated method for setting up memories thereof
KR100218522B1 (ko) * 1992-12-30 1999-09-01 윤종용 파이프 라이닝을 이용한 퍼지 제어기의 최소-최대처리회로
JP2850082B2 (ja) * 1993-03-31 1999-01-27 モトローラ株式会社 ファジイ推論のmin−max 演算回路
EP0675431A1 (en) * 1994-03-31 1995-10-04 Co.Ri.M.Me. Consorzio Per La Ricerca Sulla Microelettronica Nel Mezzogiorno Method for memorizing membership functions in a fuzzy logic processor
DE4433350C1 (de) * 1994-09-19 1995-08-10 Siemens Ag Vorrichtung zur direkten Verarbeitung von Regeln mit linguistischen NICHT-, ODER- sowie UND-Operationen in einem Fuzzy-Inferenz-Prozessor
US5586217A (en) * 1994-11-30 1996-12-17 Motorola Inc. Min/max computing circuit for fuzzy inference
US5671332A (en) * 1994-12-22 1997-09-23 Motorola, Inc. Data processing system for performing efficient fuzzy logic operations and method therefor
US5615357A (en) * 1994-12-29 1997-03-25 Sun Microsystems, Inc. System and method for verifying processor performance
DE59607523D1 (de) * 1995-07-28 2001-09-27 Infineon Technologies Ag Verfahren zur Mehrfachnutzung einer Regelbasis in einem Fuzzy-Logic-Coprozessor
US5737493A (en) * 1995-12-11 1998-04-07 Motorola, Inc. Instruction set for evaluating fuzzy logic rules
US7143070B2 (en) * 2002-05-02 2006-11-28 Winbond Electronics, Corp. Current-mode digital programmable neural fuzzy classifier
US6987683B2 (en) * 2003-05-19 2006-01-17 Micron Technology, Inc. Magnitude comparator based content addressable memory for search and sorting
US7318168B2 (en) * 2004-07-28 2008-01-08 International Business Machines Corporation Bit map write logging with write order preservation in support asynchronous update of secondary storage
US7500233B2 (en) * 2005-04-14 2009-03-03 Microsoft Corporation Parallel filter check using an arithmetic memory location

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS641368A (en) * 1987-06-24 1989-01-05 Canon Inc Image forming device

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4989256A (en) * 1981-08-06 1991-01-29 Buckley Bruce S Self-organizing circuits
JPS6242228A (ja) * 1985-08-19 1987-02-24 Nec Corp 表示情報処理システム
US5218684A (en) * 1987-09-04 1993-06-08 Digital Equipment Corporation Memory configuration system
JPH028787A (ja) * 1988-06-27 1990-01-12 Toshiba Corp ポロイダル磁場コイル
US5167005A (en) * 1988-08-19 1992-11-24 Research Development Corporation Of Japan Fuzzy computer
US5179625A (en) * 1988-09-26 1993-01-12 Omron Tateisi Electronics Co. Fuzzy inference system having a dominant rule detection unit
JPH02155043A (ja) * 1988-12-07 1990-06-14 Aputo Instr Kk 真理値発生基本回路および真理値発生回路
JPH02187993A (ja) * 1989-01-13 1990-07-24 Mitsubishi Electric Corp 連想メモリ装置
JPH02208787A (ja) * 1989-02-09 1990-08-20 Yasuo Nagazumi フアジイ演算回路および該回路を用いたファジイ計算機
CA2063544C (en) * 1992-03-19 2002-12-17 Kenneth D. Saulnier Buoy for storing line connected to underwater object

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS641368A (en) * 1987-06-24 1989-01-05 Canon Inc Image forming device

Also Published As

Publication number Publication date
US5448713A (en) 1995-09-05
JPH03223935A (ja) 1991-10-02
US5299283A (en) 1994-03-29

Similar Documents

Publication Publication Date Title
JP2561162B2 (ja) 演算処理用半導体装置
US4755974A (en) Content-addressable memory
KR0178878B1 (ko) 반도체 메모리를 사용한 정보처리 시스템
US5710869A (en) Daisy chain circuit for serial connection of neuron circuits
US3961750A (en) Expandable parallel binary shifter/rotator
WO2016112149A1 (en) Longest element length determination in memory
CN109859786B (zh) 一种基于自旋磁存储器的数据运算方法
US4520456A (en) Dual reciprocating pipelined sorter
US11354569B2 (en) Neural network computation circuit including semiconductor storage elements
JP3703518B2 (ja) 連想メモリシステム
JPH0531176B2 (ja)
JPS5911980B2 (ja) ランダムアクセスメモリソウチ
JPS5999568A (ja) プロセツサセル及び該プロセツサセルから形成されるアレ−
JPH0683622A (ja) 情報処理装置
JPH0519797B2 (ja)
SU894717A1 (ru) Вычислительный узел цифровой сеточной модели дл решени дифференциальных уравнений в частных производных
JPH11184858A (ja) 二分探索方法及び装置
JPH0550079B2 (ja)
JPH06101232B2 (ja) 連想記憶装置
SU736171A1 (ru) Ассоциативное запоминающее устройство
SU982091A1 (ru) Накопитель дл ассоциативного запоминающего устройства
SU424141A1 (ru) Устройство для сортировки информации
CN117290635A (zh) 一种基于dram的用于求解组合优化问题的退火***
JP3063956B2 (ja) 連想メモリ
SU1674145A1 (ru) Устройство дл обработки нечеткой информации