KR100375251B1 - 퍼지논리규칙을평가하는데이타처리시스템및그방법 - Google Patents

퍼지논리규칙을평가하는데이타처리시스템및그방법 Download PDF

Info

Publication number
KR100375251B1
KR100375251B1 KR1019950054209A KR19950054209A KR100375251B1 KR 100375251 B1 KR100375251 B1 KR 100375251B1 KR 1019950054209 A KR1019950054209 A KR 1019950054209A KR 19950054209 A KR19950054209 A KR 19950054209A KR 100375251 B1 KR100375251 B1 KR 100375251B1
Authority
KR
South Korea
Prior art keywords
rule
fuzzy
value
input
output
Prior art date
Application number
KR1019950054209A
Other languages
English (en)
Other versions
KR960024927A (ko
Inventor
그레그 바이옷 제임스
Original Assignee
모토로라 인코포레이티드
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 모토로라 인코포레이티드 filed Critical 모토로라 인코포레이티드
Publication of KR960024927A publication Critical patent/KR960024927A/ko
Application granted granted Critical
Publication of KR100375251B1 publication Critical patent/KR100375251B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • 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

Landscapes

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

Abstract

데이타 처리 시스템(10)은 개개의 "REVW" 소프트웨어 명령어에 응답하여 퍼지 논리 규칙에 선택적으로 가중치를 부여한다. REVW 명령어에 응답하여 상기 데이타 처리 시스템(10)은 상기 퍼지 논리 규칙과 연결된 한 세트의 퍼지 입력을 패치하고, 상기 세트로부터 최소한의 퍼지 입력을 결정한다. 상기 데이타 처리 시스템(10)은 다음으로 최소한의 퍼지 입력과 대응하는 가중치를 곱하므로써 최소 퍼지 입력에 선택적으로 가중치를 부여하여 퍼지 논리 규칙의 퍼지 출력을 제공한다. 한 실시예에서, 조건 코드 레지스터(60)의 캐리 비트는 퍼지 논리 규칙에 가중치가 부여될 것인지를 결정한다. 개개의 REVW 명령어에 응답하여 데이타 처리 시스템(10)은 퍼지 규칙 기준의 모든 규칙을 위한 동작에 가중치를 부여하는 이 선택적 퍼지 규칙을 더 실행한다.

Description

퍼지 논리 규칙을 평가하는 데이타 처리 시스템 및 그 방법{Data processing system for evaluating fuzzy logic rules and method therefor}
본 발명의 분야
본 발명은 일반적으로 데이타 처리 시스템에 관한 것이며, 특히 퍼지 논리동작(operation)을 실행하는 데이타 처리 시스템에 관한 것이다.
본 발명의 배경
데이터 처리기는 입력 및 출력이 1 또는 0 으로 해석되며, 다른 가능성은 존재하지 않는 이진 기계로 기능하도록 개발되었다. 이것은 대부분의 경우에 잘 동작하는 반면, 때때로 대답은 단순히 "예" 또는 "아니오"가 아니라 그 둘 사이에 있는 경우가 있다, "퍼지 논리"라 불리는 개념은 이진 논리에 기초한 데이타 처리기가 "예"와 "아니오" 사이의 대답을 제공할 수 있도록 개발되었다.
퍼지 논리는 퍼지 경계가 있는 멤버쉽 기능을 갖는 논리 시스템이다. 멤버쉽 기능은 "온도가 따뜻하다"와 같은 주관적 표현을 통상의 데이타 처리기가 인식할 수 있는 값으로 해석한다. "따뜻한"과 같은 레이블은 입력값의 경계가 한쪽이 참이고 다른 쪽이 거짓인 레이블을 가리키지 않는 입력값의 범위를 식별하는데 이용된다. 더 바람직하게는, 퍼지 논리를 이행하는 시스템에서, 멤버쉽 기능의 경계가 점차적으로 바뀌어 인접한 멤버쉽 세트의 경계를 오버랩할 수 있다. 그러므로, 멤버쉽의 디그리(degree)는 통상적으로 입력값에 할당한다. 예컨대, 온도의 범위가 멤버쉽 기능을 제공하면, 입력 온도는 "차가운"과 "따뜻한"으로 분류된 두 기능의 겹치는 영역에 해당한다. 다른 처리는 각각의 멤버쉽 기능에서 멤버쉽의 디그리(즉, 현재의 온도가 각각의 멤버쉽 세트 '차갑고 따뜻한'과 일치하는 디그리)를 결정하는데 필요하다.
"퍼지피케이션"이라 불리는 단계는 퍼지 논리를 이행하는 시스템에서 멤버쉽 기능과 입력을 관련시키는데 이용된다. 퍼지피케이션 처리는 "온도가 따뜻하다"와 같은 주관적 표현에 구체적인 수치를 부여한다. 이러한 수치들은 인간이 인식하기에 우수한 근사치를 제공하게 한다.
퍼지피케이션 단계가 끝난 후, 규칙 평가라 불리는 단계가 실행된다. 규칙 평가 단계가 진행되는 동안, 퍼지 입력값에 따르는 규칙 표현은 퍼지 출력을 추론하기 위해 평가된다. 예컨대, 평가될 규칙이 다음과 같이 서술될 수 있다고 가정하자.
(온도가 따뜻하다)와 (압력이 높다)이면, (팬 속도는 중간이다)
이 규칙에서, 두 엔터시던트(antecedents) "온도가 따뜻하다"와 "압력이 높다"는 결론 "팬 속도가 중간이다"라는 규칙 강도를 정하도록 평가되어야 한다. 규칙 평가의 단계가 진행되는 동안, 엔터시던트가 참인 디그리는 규칙이 참인 디그리에 영향을 미친다. 최소한의 엔터시던트는 규칙 결과의 규칙 강도로서 적용된다. 그러므로, 하나 이상의 규칙이 평가되고, 팬에 하나 이상의 명령어가 주어지면, 각각의 규칙 결과의 규칙 강도는 팬의 가동을 결정하는데 총괄적으로 이용된다. 예를 들어, 위에서 제공된 규칙은 X 의 규칙 강도를 갖도록 평가될 수 있다. 또한, 제 2규칙은 Y 가 X보다 더 큰 Y 의 규칙 강도로 높은 속도에서 팬을 돌리도록 평가된다. 또한 각각의 규칙에 원한다면 가중치를 줄 수 있다. 엔터시던트에 선택된 가중치를 곱하는 것은 선택된 규칙에 대해 원하는 엠퍼시스(emphasis)를 제공한다.
퍼지 논리 동작의 마지막 단계는 규칙 평가 단계에 의해 제공된 퍼지 출력에 응답하여 적합한 작용(action)을 하는 것이다. 퍼지 논리 처리의 마지막 단계는 "디퍼지피케이션"이라 물린다. 이 단계는 규칙 평가 단계의 경합 결과를 단일 작용으로 해결한다. 디퍼지피케이션은 표준 데이타 처리 시스템에 인가되는 합성 결과로 모든 퍼지 출력을 조합하는 처리이다. 퍼지 논리에 관한 더 많은 정보를 위해 James M. Sibigtroth 의 "하드웨어의 퍼지 전문 규칙 실행"이라는 제목의 논술을 참조한다. 이 논술은 Al EXPERT 의 1992년 4월판 25∼31 페이지에 발행되었다.
요약하자면, 규칙은 하나 이상의 작용(결과)이 뒤따르는 일련의 전제(엔터시던트)로 구성된다. 각각의 엔터시던트는 퍼지 입력에 대응하고, 각각의 작용은 퍼지 출력에 대응한다. 규칙 강도는 선택된 규칙을 강조하도록 선택된 가중치만큼 곱해질 수 있다.
규칙 평가 단계의 하드웨어 실행에서, 전용의 접속과 회로는 퍼지 입력을 퍼지 출력에 관련시키는데 사용된다. 이러한 접근은 종종 전용 메모리 회로 소자를 필요로 하며, 확고한 방법이다. 규칙 평가 단계의 소프트웨어 실행에서 명령어의 프로그램은 규칙을 평가하는데 이용된다. 소프트웨어 접근은 통상적으로 하드웨어접근보다 더 느리며, 방대한 양의 프로그램 메모리를 필요로 한다. 데이타가 계산되고, 이동되고, 가능한 한 빨리 다뤄져야 하는 산업계에서, 빠른 실행 시간은 필수적이다. 그러므로, 소프트웨어는 몇몇 응용예를 위해 존속할 수 있는 해결방법이 아니다.
그러므로, 규칙 평가 단계를 빠르게 실행하는 회로 또는 방법이 필요하지만, 광범위한 하드웨어를 필요로 하지는 않는다. 하드웨어 해결법과 통상적으로 관련된 속도는 그러한 해결법과 일반적으로 관련된 전용 회로 영역 없이 필요하다. 이러한 필요사항은 본 발명에 의해 충족되고, 본 발명의 특징과 이점은 첨부된 도면과 관련하여 취해진 다음 상세한 설명에서 더욱 명백히 이해할 수 있다. 도면은 본 발명의 형태만을 나타내려고 한 것은 아니다.
바람직한 실시예의 상세한 설명
본 발명은 데이타 처리 시스템과 데이타 처리 시스템에서 최소량의 회로 소자를 가지고 가중치가 부여된 규칙 평가 동작을 빠르게 실행하는 방법을 제공한다. 가중치가 부여된 규칙 평가 동작은 데이타 처리 시스템에서 부가된 회로 소자의 초과량 없이 효과적으로 실행되는 단일 명령어로 인코딩된다. 그러므로, 본 발명은 데이타 처리 시스템의 사용자가 길고 시간이 걸리는 소프트웨어 프로그램 없이 빠르게 가중치가 부여된 규칙 평가 단계를 실행할 수 있는 명령어를 제공한다.
본 발명에 따르면, 연상기호 레이블 "REVW"로 불리는 새로운 명령어에 의해 데이타 처리 시스템은 메모리에서의 오퍼랜드 검색과 그러한 오퍼랜드를 이용하여 연산 동작의 실행을 포함하는 일련의 단계를 실행한다. 멤버쉽 기능이 평가될 규칙의 엔터시던트의 가치 평가를 하고, 그 규칙의 결과가 REVW 명령어의 실행에 앞서 메모리에 적합하게 저장되면, REVW 명령어의 실행은 적합한 평가와 규칙의 가중치를 구한다. 엔터시던트와 결과가 특정한 포맷으로 메모리에 저장된다고 가정할 때, 상술한 명령어의 실행이 가능한 현존하는 하드웨어를 신중하게 사용하므로써, 본 발명에 따른 데이타 처리 시스템은 매우 적은 추가 하드웨어로 퍼지 논리 규칙의 효과적인 평가를 허가한다. 예를 들어, 데이타 처리기의 표시된 연산을 실행하는 과정에서 사용된 조건 코드 레지스터의 오버플로 또는 V 비트가 메모리로 부터 오퍼랜드의 처리와 관련하여 플래그로서 본 발명에 이용된다. 또한, 조건 코드 레지스터의 자리올림 또는 C 비트가 이용되어 가중치 동작이 실행될 수 있음을 나타내는데 사용된다.
본 발명의 이행을 설명하는 동안, 용어 "표명(assert)"과 "부정(negate)" 및 그로 인한 다양한 문법적 형태가 "액티브 하이"와 "액티브 로우" 논리 신호 혼합체를 다룰 때, 혼동을 피하기 위해 사용된다. "표명"은 논리 신호 또는 레지스터 비트를 액티브 또는 논리적으로 참인 상태로 렌더링하는 것을 나타내는데 이용된다. "부정"은 논리 신호 또는 레지스터 비트를 인액티브 또는 논리적으로 거짓인 상태로 렌더링하는 것을 나타내는데 이용된다. 또한 16 진수 값은 수치 앞에 "$" 기호를 붙여 표시될 수 있다.
제 1 도는 퍼지 논리의 몇몇 기본 용어 및 개념을 도시하는 그래프를 제공한다. 제 1 도에 도시된 퍼지 논리 시스템에서 "시스템 입력"은 화씨 온도이다. 4개의 "멤버쉽 기능"은 온도의 범위를 하기 위해 제공된다. 예를 들어, 0 에서 35도까지의 온도는 "추운"으로 분류된다. 유사하게, 25 에서 60 도까지의 온도는 "차가운"으로 분류된다. 각각의 멤버쉽 세트의 경계는 이웃하는 세트와 경계를 오버랩함을 주목한다. 그러므로, 온도는 하나 이상의 멤버쉽 세트에 있다. 예를들어, 시스템 입력이 58 도의 온도를 나타낸다고 가정하자. 제 1 도에서, 차가운과 따뜻한 양 쪽의 경계선 내에 58 도가 있음을 주목한다. 그러나, 각각의 멤버쉽 세트의 멤버쉽 디그리는 얻어질 수 있다. 시스틱 입력은 차가운 멤버쉽 세트에 대해서 $33의 16 진수값을 갖는 멤버쉽 디그리와 따뜻한 멤버쉽 세트에 대해서 $CC의 16 진수값을 갖는 멤버쉽 디그리를 갖는다. 만약 시스템 입력이 70 도를 나타내면, 온도는 따뜻한 멤버쉽 세트에서 $FF의 16 진수값과 함께 멤버쉽의 디그리를 가진다. 마찬가지로, 70 도의 온도는 뜨거운 멤버쉽 세트에서 $00의 16 진수값을 가지는 멤버쉽의 디그리를 가진다. 제 1 도에 도시된 퍼지 논리 시스템에서, 멤버쉽의 디그리는 0.00에서 0.996의 분수에 대응하는 $00에서 $FF의 16 진수값 범위에 걸친다. 당업자들은 두자리의 16 진수값이 한자리 8 비트의 2 바이트로 나타낼 수 있음을 알 것이다.
상술한 명령어의 한 실시예와 동작 방법이 MC68HC11 마이크로 제어기의 변형된 형태로 이행된다. MC68HC11은 16 비트 어드레스와 저장 레지스터를 포함하는 8비트 마이크로 제어기이며, 텍사스 오스틴의 모토로라 주식회사에서 입수할 수 있다. 이러한 실행은 제 2 도에서 더욱 상세히 도시된다.
제 2 도는 가중치가 부여된 규칙 평가 명령어가 실행되는 데이타 처리 시스템(10)을 도시한다. 데이타 처리 시스템(10)은 일반적으로 중앙 처리 장치(CPU)(12), 오실레이터(24), 파워 회로(26), 타이밍 회로(28), 외부 버스 인터페이스(30), 및 내부 메모리(32)를 구비한다, CPU(12)는 일반적으로 실행유닛(14), 버스 제어 논리 회로(16), 명령어 디코드 논리 회로(18), 제어 유닛(20), 및 시퀀서(22)를 갖는다.
동작하는 동안, "Osc(1)" 신호는 크리스탈과 같은 외부 소스를 통해 오실레이터(24)에 제공된다. 크리스탈은 크리스탈을 발진시키는 Osc 1 와 Osc 2 신호 사이에 접속된다. Osc(1)는 "클락" 신호를 데이타 처리 시스템(10)의 나머지 부분에 제공한다. 크리스탈 오실레이터의 동작은 데이타 처리 기술에서 잘 알려져 있으며, 보통의 당업자들이 잘 알고 있어야 한다.
파워 회로(26)는 "Vdd"와 "Vss" 신호 양 쪽을 외부 파워 소스로부터 수신한다. Vdd 신호는 양극 5 볼트를 제공하고, Vss 신호는 기준 또는 그라운드 전압을 제공한다. Vdd 와 Vss 신호는 데이타 처리 시스템(10)의 나머지 구성 요소의 각각에 제공된다. 이러한 신호의 경로는 데이타처리 기술에서 잘 알려져 있으며, 보통의 당업자들에게 명백할 것이다.
타이밍 회로(28)는 클락 신호를 수신하고, 이어서 타이밍 제어 버스(38)를 통해 CPU(12), 외부 버스 인터페이스(30), 및 내부 메모리(32)의 각각에 적합한 타이밍 신호를 제공한다.
다수의 어드레스값은 외부 버스 인터페이스(30)로부터 외부 어드레스 버스(35)로 제공된다. 유사하게, 다수의 데이타 값은 외부 데이타 버스(33)를 통해 외부 버스 인터페이스(30)에 의해 전달된다. 외부 버스 인터페이스(30)는 외부 사용자와 데이타 처리 시스템(10) 사이의 어드레스 및 데이타 값의 수신과 송신을 제어한다. 외부 버스 인터페이스(30)는 다수의 어드레스와 데이타값을 내부 어드레스버스(36)와 내부 데이타 버스(34) 각각을 통해 데이타 처리 시스템(10)의 나머지 부분에 전달한다.
내부 메모리(32)는 데이타 처리 시스템(10)의 적합한 동작에 필요한 정보를 저장하도록 기능한다. 또한, 다른 데이타 값은, 내부 어드레스 버스(36)와 내부데이타 버스(34)를 통해 제공된 사용자 프로그램에 지정되면, 내부 메모리(32)에 저장될 수 있다.
CPU(12)는 데이타 처리 시스템(10)이 동작하는 동안, 필요한 각각의 명령어를 실행한다. 내부 어드레스 버스(36)와 내부 데이타 버스(34)는 실행 유닛(14)과 데이타 처리 시스템 (10)의 나머지 부분 사이에서 정보를 전달한다. 버스 제어 논리 회로(16)는 명령어와 오퍼랜드를 패치한다. 각각의 명령어는 다음으로 명령어 디코드 논리 회로(18)에 의해 디코딩 되고, 제어 유닛(20)과 시퀀서(22)에 제공된다. 제어 유닛 (20)과 시퀀서(22)는 각각의 명령어의 실행 시퀀스를 유지하여 가장 효과적으로 데이타 처리 시스템(10)의 계산 기능을 이용한다. 또한, 제어 유닛(20)은 다수의 제어 정보를 마이크로-롬 제어 버스(65)를 통하여 실행 유닛 (14), 버스 제어 논리(16), 명령어 디코딩 논리(18) 각각에 제공하는 마이크로-롬 메모리(도시되지 않음)를 구비한다. 다수의 제어 정보는 REVW 명령어의 적합한 실행에 필요하다.
실행 유닛(14)은 제 3 도에 좀 더 상세히 도시된다. 실행 유닛 (14)은 일반적으로 데이타 버퍼(40), 제 1 선택기(42), 인덱스 레지스터(43), 제 2 선택기(44), 레지스터 스와프 논리 회로 (46), 조건 코드 논리 회로(47), A-입력제어 회로(48), 제 3 실린더(49), A-입력 멀티플렉서(50), 제 4 선택기(51), 연산 논리 장치(ALU)(52), B-입력 제어 회로(54), B-입력 멀티플렉서 (56), 어큐뮬레이터(58), 조건 코드 레지스터(60), 비교기(72), 및 어드레스 버퍼(45)를 구비한다. 어큐뮬레이터(58)와 조건 코드 레지스터(60)에 부가하여, 다른 저장 레지스터는 인덱스 레지스터 X(43) 및 인덱스 레지스터 Y(53)와 같은 실행 유닛(14)에서 실행될 수 있고, 제 2 어큐뮬레이터 또한 포함될 수 있다.
외부 정보 버스(41)는 어드레스와 데이타 정보를 데이타 버퍼(40)에 제공한다. 외부 정보 버스(41)는 내부 어드레스 버스(36)와 내부 데이타 버스(34) 각각으로부터(제 2 도를 보시오) 어드레스 및 데이타 정보를 수신한다. 데이타 버퍼(40)는 선택기(42, 44)가 각각 정보를 전송할 수 있을 때, 정보 버스 A(66)와 정보버스 B(64)를 통해 실행 유닛(14)의 나머지 부분에 외부 정보 버스(41)를 통하여 전송된 값을 제공한다. 본 도면에 상세히 도시되지는 않았지만, 정보 버스 A(66)와 정보 버스 B(64)는 폭이 16 비트이고, 하이 사이드(비트 15∼비트 8)와 로우 사이드(비트 7~비트 0)로 나뉜다. 또한, 데이타 버퍼(40)는 어드레스 정보를 비교기(72)에 제공한다. 어드레스 버퍼(45)는 인덱스 레지스터(Y)(53), 또는 데이타 버퍼(40)로부터 공급되는 퍼지 입력 또는 출력의 어드레스로부터 응용될 가중치의 어드레스를 수신한다.
어큐뮬레이터(58)의 제 1 및 제 2 입력은 정보 버스 A(66)와 정보 버스 B(64) 각각에 두 방향으로 연결된다, 부가적인 인덱스 레지스터 X(43)와 인덱스 레지스터 Y(53)는 유사하게 정보 버스(A)(66)와 정보 버스 B (64)에 연결된다.
다수의 제어 신호는 A-입력 제어 논리(48)와 B-입력 제어 논리(54)에 마이크로-롬 제어 버스(65)를 통해 제공된다. 마이크로-롬 제어 버스(65)는 제어 유닛(20)의 마이크로-롬 메모리(도시되지 않음)에 의해 제공된 정보에 응답하여 다수의 제어 신호를 제공한다.
A-입력 제어(48)는 "제어 A" 신호를 A-입력 멀티플렉서(50)의 제어 입력에 제공한다. 정보 버스 A(66)는 A-입력 멀티플렉서(50)의 데이타 입력에 접속된다. A-입력 멀티플렉서(50)는 "A-입력 로우 사이드"로 분류된 제 1 10비트 출력을 ALU(52)의 제 1 입력에 제공하고, "A-입력 하이 사이드"라 분류된 제 2 10비트 출력을 ALU(52)의 제 2 입력에 제공한다. B-입력 제어(54)는 "제어 B" 신호를 B-입력 멀티 플렉서(56)의 제어 입력에 제공한다. 정보 버스 B(64)는 B-입력 멀티플렉서(56)의 데이타 입력에 접속된다. B-입력 멀티플렉서(56)는 "B-입력 로우 사이드"라 분류된 제 1 10비트 출력을 ALU(52)의 제 3 입력에 제공하고, "B-입력 하이 사이드"라 분류된 제 2 10비트 출력을 ALU(52)의 제 4 입력에 제공한다.
ALU(52)는 결과 버스(120)를 통해 전송되는 다수의 결과를 제공하기 위해 각각의 입력을 처리한다. 결과 버스(120)는 ALU(52)에 의해 제공된 결과를 레지스터 스와프 논리(46)와 조건 코드 논리(47)에 제공한다. 또한, 결과 버스(120)는 다수의 결과를 정보 버스 B(64)에 제공한다.
조건 코드 논리(47)는 또한 비교기(72)에 연결되어 토글(toggle) 신호를 수신한다. 조건 코드 논리(47)는 조건 코드 레지스터(60)에 연결되어 "조건 코드" 신호를 제공한다.
조건 코드 레지스터(60)는 VCCR신호를 레지스터 스와프 논리(46)의 제 2 제어 입력에 제공하고, CCCR신호를 스와프 논리(46)의 제 3 제어 입력에 제공한다. 또한, 타이밍 제어 신호는 레지스터 스와프 논리(46)의 제 1 제어 입력에 제공된다. 타이밍 제어 신호는 타이밍 제어 버스(38)를 통해 제공된다.
레지스터 스와프 논리(46)는 "인에이블(A)"과 "인에이블(B)"로 각각 분류되는 제 1 및 제 2 출력을 제공하고, "인에이블(C)"과 "인에이블(D)"로 각각 분류된 제 3 및 제 4 출력을 제공한다. 인에이블(A) 신호는 선택기(42)의 제 1 제어 입력에 제공된다. 정보 버스 A(66)는 선택기(42)에 두 방향으로 연결된다. 선택기(42)의 출력부는 데이타 버스(40)에 연결되어, 다수의 선택된 신호를 전달한다. 유사하게, 인에이블(B) 신호는 선택기(44)의 제 1 입력에 제공된다. 정보 버스 B(64)는 선택기(44)에 두 방향으로 연결된다. 선택기(44)의 출력은 데이타 버퍼(40)에 연결되어, 다수의 제 2 선택된 신호를 전달한다. 인에이블(C) 신호는 선택기(49)의 제 1 제어 입력에 제공된다. 정보 버스(A)(66)는 선택기(49)와 어드레스 버퍼(45)에 두 방향으로 연결되어, 선택된 가중치의 어드레스를 전달한다. 유사하게, 인에이블(C) 신호는 선택기(51)의 제 1 제어 입력에 제공된다. 정보 버스(B)(64)는 선택기(51)에 두 방향으로 연결되어, 선택된 가중치의 어드레스를 전달한다.
레지스터 스와프 논리(46)는 제 4 도에 더욱 상세히 도시된다. 일반적으로, 레지스터 스와프 논리(46)는 AND 게이트(62, 70, 74, 및 76)와 인버터(68, 73)를 구비한다. AND 게이트(62)는 신호 VCCR을 수신하기 위한 제 1 입력 터미널을 가지고있고, 타이밍 제어 신호를 수신하기 위한 제 2 입력 터미널을 가지고 있고, 결과 버스(120)를 통해 ALU 로부터 "N"으로 분류된 신호를 수신하기 위한 제 3 입력을 가지고 있으며, 인에이블(A) 신호를 제공하기 위한 출력 터미널을 가지고 있다. 인버터(68)는 신호 VCCR을 수신하기 위한 입력 터미널과 출력 터미널을 갖는다. AND 게이트(70)는 인버터(68)의 출력 터미널에 접속된 제 1 입력 터미널 타이밍 제어 신호를 수신하기 위한 제 2 입력 터미널, 결과 버스(120)를 통해 ALU(52)로부터 "N"으로 분류된 신호를 수신하기 위한 제 3 입력, 신호 인에이블(B)을 제공하기 위한 출력 터미널을 갖는다. 인버터(73)는 신호(CCCR)를 수신하기 위한 입력 터미널과 출력 터미널을 갖는다. AND 게이트(74)는 신호(CCCR)를 수신하기 위한 제 1 입력 터미널, 타이밍 제어 신호를 수신하기 위한 제 2 입력 터미널, 인버터(68)의 출력 터미널에 접속된 제 3 입력, 신호 인에이블(C)을 제공하기 위한 출력 터미널을 갖는다. AND 게이트(76)는 신호(VCCR)를 수신하기 위한 제 1 입력 터미널, 타이밍 제어 신호를 수신하기 위한 제 2 입력 터미널, 인버터(73)의 출력 터미널에 접속된 제 3 입력, 신호 인에이블(D)을 제공하기 위한 출력 터미널을 갖는다.
퍼지 논리 동작이 실행되는 동안, 데이타 처리 시스템(10)의 사용자는 퍼지 입력의 규칙 평가 단계를 실행하는 명령어 REVW(가중치가 부여된 규칙 평가)를 사용할 수 있다. 상술한 바와 같이, 퍼지 입력은 시스템 입력 신호에 각각의 다수의 한정된 멤버쉽 세트의 멤버쉽 디그리가 할당되는 퍼지피케이션 단계의 결과로서 제공된다. 본 명세서에 기술된 본 발명의 이행에 있어서, 퍼지 입력에 할당된 각각의멤버쉽의 디그리는 REVW 명령어의 실행에 앞서 데이타 처리 시스템(10)의 내부 메모리의 소정의 메모리 위치에 저장된다. J. Greg Viot의 "효과적인 퍼지 논리 동작을 실행하는 데이타 처리 시스템 및 그 방법"이라는 제목의 공동 계류중인 상호 참조의 특허출원 일련번호에서뿐만 아니라 "퍼지 논리가 동작하는 동안 세트의 멤버쉽을 정하는 회로 및 방법"이라는 제목의 미국 특허 출원번호 제 5,295,229호에 다수의 퍼지 입력에 각각의 멤버쉽의 디그리를 할당하는 것이 상세히 개시되어 있다. 본 명세서에 설명된 예에서, 두 그룹의 멤버쉽 세트가 제 1 및 제 2 시스템 입력의 퍼지피케이션동안 사용된다고 가정하자. 두 그룹 중 제 1 그룹은 추운, 차가운, 따뜻한, 그리고 더운의 멤버쉽 세트로 분리되는 온도 측정치를 제공한다. 퍼지화될 때, 차가운 멤버쉽 세트에서 제 1 시스템 입력의 멤버쉽 디그리는 가변적인 레이블(Tcool)을 사용하는 것으로 한다. 유사하게, 각각의 추운, 따뜻한, 그리고 뜨거운 멤버쉽 세트에서 제 1 시스템 입력의 멤버쉽 디그리는 언어 변수(Tcold, Twarm, 및 Thot)의 각각 하나로 한다.
두 그룹 중 제 2 그룹은 약한, 중간인, 센의 멤버쉽 세트로 분리되는 압력 측정치를 제공한다. 퍼지화될 때, 약한, 중간인, 센 멤버쉽 세트의 제 2 시스템 입력부의 멤버쉽 디그리는 각각 Plight, Pmedium, Pheavy으로 분류된 언어 변수 중 하나를 사용하는 것으로 한다. 시스템 입력이 퍼지화된 후, 각각의 멤버쉽 세트의 제 1 및 제 2 시스템의 멤버쉽 디그리는 메모리의 소정의 위치에 저장된다. 또한, 규칙은 적합한 동작을 하도록 평가되어야 한다. 이 예시에서 평가될 세가지 규칙은 다음형태를 갖는다.
(1) 규칙 1 : 온도가 차갑고(Tcool) 압력이 낮으면(Plight),
(작용 1)과 (작용 2)
(2) 규칙 2 : 온도가 따뜻하고(Twarm) 압력이 중간이면(Pmedium),
(작용 3)
(3) 규칙 3 : 압력이 중간이면(Pmedium),
(작용 3)
각각의 규칙은 통상적으로 다음과 같은 형태를 가짐을 주목한다.
(4) (퍼지 입력 1)과 (퍼지 입력 2)이면, (작용 X)와 (작용 Y)
규칙을 평가하는 동안, 규칙의 "if" 부분은 멤버쉽값의 최소한도를 정하도록 최초로 평가된다. 규칙의 "if" 부분은 퍼지 입력(1)값과 퍼지 입력(2)값 양 쪽을 포함한다. 규칙 강도를 결정하는 일반적 방법은 평가되는 퍼지 입력의 최소한도의 멤버쉽을 결정하는 것이다. 그러나, 다른 이행 방법도 있다. 예를 들어, 규칙 강도는 각각의 엔터시던트의 멤버쉽 디그리의 합계로서 추정될 수 있다. 유사하게, 멤버쉽의 디그리는 규칙 강도를 정하도록 어떤 타입의 계산으로도 곱해지거나 또는 다루어질 수 있다.
이러한 실행에서, 규칙 강도는 가장 약한 구성요소만큼 밖에 강하지 못하다. 멤버쉽의 가장 약한 디그리는 규칙의 "then" 부분에서 지정된 각각의 작용의 규칙 강도값을 정하는데 이용된다. 형태(4)에서 보여지는 규칙에서, 퍼지 입력(1)과 퍼지 입력(2)값의 최소한도에 대응하는 규칙 강도는 작용(X)과 작용(Y)값의 어드레스로 지적되는 내부 메모리(32)의 제 1 및 제 2 어드레스 위치에 저장된다. 다수의 작용값 중 소정의 한 값에 대응하는 각각의 규칙 강도는 각각의 작용에 대응하는 퍼지 출력값을 제공하는데 이용된다. 퍼지 출력값은 다음으로 사용자에 의해 지정된 동작을 실행하도록 디퍼지화될 수 있다. 단지 두 퍼지 입력값과 두 작용값만 형태(4)에 제공되어도, 더 큰 값 또는 더 작은 값 중 하나가 제공될 수 있다. 데이타 처리 시스템(10)의 사용자는 규칙의 형태를 결정하고, 실행될 퍼지 입력 또는 작용의 어떤 번호도 제공할 수 있다.
또한, 하나 이상의 규칙이 평가될 때, 작용은 할당된 하나 이상의 규칙 강도일 가능성이 존재한다. 그러한 경우, 더 큰 값의 규칙 강도는 작용에 할당되어야 한다. 그러므로, 작용은 가장 큰 값의 규칙 강도가 할당된다.
본 발명에 따르면, 데이타 처리 시스템(10)은 또한 REVW 명령어에 응답하여 규칙 강도에 가중치를 부여한다. 데이타 처리 시스템(10)은 가중치와 상술한 최소값을 곱하여, 퍼지 입력의 최소한도로서 얻어진 규칙 강도를 증가시키므로써 규칙강도에 가중치를 부여한다. 등식(5와 6)은 "W1"과 "W2"가 동작 X 와 작용(Y) 각각의 퍼지 출력을 평가하는데 사용될 가중치가 부여된 규칙 평가 동작을 수학적으로 설명한다.
(5) MAX([MIN(FUZZY 입력 1, 피지 입력 2)] ·W1, 작용 X)
(6) MAX([MIN(FUZZY 입력 1, 퍼지 입력 2)] ·W2, 작용 Y)
데이타 처리 시스템(10)은 작용(X 와 Y)의 결과값으로서 이러한 최대값을 저장한다.
본 명세서에 기재된 본 발명의 실행에 있어서, 내부 메모리(32)는 일반적으로 매모리 저장을 위해 사용된다. 그러나, 데이타 처리 시스템의 외부에 있는 다른 메모리 회로(도시되지 않음)도 또한 사용될 수 있다. 그러한 외부 메모리 회로의 실행과 사용은 데이타 처리 기술에서 공지되어 있으며, 이 기술의 보통의 숙련된 자 중 누구에게도 명백할 것이다. 이러한 실행에서, 각각의 퍼지 입력은 다음 형태로 내부 메모리(32)에 저장된다.
어레이(1)에 도시된 바와 같이, 두 시스템 입력, 즉, 온도, 및 압력에 대하여, "퍼지 입력"으로 표시된 멤버쉽 디그리는 각각의 시스템 입력을 위한 각각의 멤버쉽 세트에 제공된다. 제 1 도를 참조하여 앞서 서술한 바와 같이, 제 1 시스템 입력은 화씨 58 도의 온도이다. 화씨 58 도의 온도는 춥고 뜨거운 멤버쉽 세트에서$00의 멤버쉽 디그리, 차가운 멤버쉽 세트에서 $33의 멤버쉽 디그리, 따뜻한 멤버쉽 세트에서 $CC의 멤버쉽 디그리를 갖도록 퍼지화되었다. 어레이(1)에 도시된 바와 같이, Tcold 와 Thot 변수 양 쪽의 값은 $00이고, 그것은 제 1 시스템 입력이 두개의 멤버쉽 세트의 어느 쪽에도 들어 있지 않음을 나타낸다. 그러나, 제1 시스템 입력은 $33 값의 Tcool과 $CC 값의 Twarm을 갖는다. 그러므로, 제 1 입력은 차가운 멤버쉽 세트에서 $33의 멤버쉽 디그리와 따뜻한 멤버쉽 세트에서 $CC의 멤버쉽 디그리를 갖는다.
유사하게, 제 2 입력은 약하고 센 압력 멤버쉽 세트 양 쪽에서 $00의 멤버쉽 디그리를 나타내도록 퍼지화된다. 따라서, Plight, 와 Pheavey변수값은 $00이며, 그것은 제 2 입력이 그들 두 멤버쉽 세트의 어느 쪽에도 포함되지 않음을 나타낸다. 그러나, 제 2 입력은 증간의 멤버쉽 세트에서 $FF 멤버쉽 디그리를 갖는다. 따라서, Pmedium변수는 $FF 값을 갖는다.
퍼지 입력과 같이, 평가될 각각의 규칙은 (규칙 1∼규칙 3) 또한 내부 메모리(32)의 규칙 어레이에 저장된다. 제 5 도에 규칙 어레이가 도시된다. 각각의 규칙을 위해, 퍼지 입력과 퍼지 출력 양 쪽에 어드레스 위치가 제공된다. 퍼지 입력과 퍼지 출력의 어드레스는 제 5 도의 형태로 어레이(1)에 앞서 도시된 바와 같은 데이타 값의 표를 참조하여 저장된다. 퍼지 입력과 같이, 퍼지 출력에 대응하는 데이타값의 표는 본 명세서에 상세히 도시된 어레이로 제공된다.
규칙 어레이의 개시는 데이타 처리 시스템(10)의 사용자에 의해 지정된 소정의 어드레스에 위치한다. 본 명세서에 기재되고, 제 5 도에 도시된 예시에서, 소정의 어드레스는 $E000와 동일하고, REVW 명령어의 실행에 앞서 인덱스 레지스터에 저장된다. 규칙 1 의 퍼지 입력 중 제 1 입력의 어드레스는 규칙 기반의 개시인 16 진수 어드레스($E000)에 위치한다. 이 예시에서, Tcool은 규칙(1)의 제 1 퍼지 입력이고, $1001의 어드레스는 규칙 어레이의 어드레스($E000)에 저장된다. Plight, 값이 규칙 1 의 제 2 퍼지 입력이므로, $1004의 어드레스는 어드레스($E002)의 규칙 어레이에 저장된다.
퍼지 입력을 퍼지 출력으로부터 분리시키기 위해, $FFFE의 값을 가진 버퍼는 어드레스($E004)의 규칙 어레이에 저장된다. 이어서, 규칙(1)의 퍼지 출력은 $FFFE의 값을 가진 버퍼에 의해 규칙(2)의 퍼지 입력으로부터 분리된다. 퍼지 입력의 임의의 숫자가 퍼지 출력의 임의의 숫자로부터 분리되는 이러한 포맷은 $FFFE의 값을 가진 버퍼에 의해 다수의 규칙의 각각의 퍼지 입력 및 출력이 메모리에 저장될 때까지 반복된다. 퍼지 출력에서 퍼지 입력을 분리하는 $FFFE의 각각의 버퍼값은 동일한 규칙 내에서 그 규칙의 가중치를 부여하는 처리를 개시한다. 그 점에서, 특정한 버퍼값은 규칙 기준의 종료를 나타낸다. 본 명세서에 기재된 예시에서, 규칙 기준의 종료는 $FFFF 값으로 표시된다. 동일한 버퍼값이 각각의 규칙의 퍼지 출력으로부터 퍼지 입력을 분리하는데 사용되어도, 버퍼의 임의의 숫자는 데이타 처리 시스템(10)의 설계자에 의해 사용될 수 있다.
입출력의 순서로 각각의 규칙의 각각의 퍼지 입력과 출력을 배치하므로써,각각의 규칙은 각각의 퍼지 입력과 출력 섹션 사이의 분할 인디케이터로서 버퍼 어드레스를 사용하므로써 연속적으로 평가될 수 있다. 그러므로 규칙은 퍼지 입력과 퍼지 출력의 특정 숫자(동작)를 갖는 고정된 포맷을 따를 필요가 없다. 이것으로 퍼지 시스템의 규칙을 융통성 있게 제공할 수 있다. 규칙(1), 규칙(2), 규칙(3)[(1), (2), (3)]에서 보여지는 바와 같이, 퍼지 입력의 숫자 및 대응하는 동작은 본 발명의 본 실행에서 규칙에서 규칙으로 바뀔 수 있다.
REVW 명령어를 실행하기 위해, 규칙의 각각의 퍼지 입력 및 출력은 제 5 도에 도시된 소정의 포맷을 가지는 규칙 어레이의 메모리에 저장되어야 한다. 그리고, 규칙에 가중치가 부여되면 각각의 규칙의 가중치값은 가중치 어레이의 메모리에 저장되어야 한다. 또한, 규칙 어레이의 개시 어드레스는 인덱스 레지스터 X(43)에 저장되어야 하고, 어큐뮬레이터(58)는 $FF의 16 진수값으로 초기화되어야 하며, 인덱스 레지스터 Y(53)는 규칙 가중치가 부여되면, REVW 명령어의 실행에 앞서 규칙 어레이의 개시 어드레스로 초기화되어야 한다. 또한, 각각의 퍼지 출력은 REVW 명령어의 실행에 앞서 $00의 16 진수값이 할당되어야 한다. REVW 명령어의 실행은 다음으로 제 6 도에 도시된 플로우 챠트에 따라 수행될 수 있다. 플로우 차트는 REVW 명령어가 실행되는 동안, 수행된 각각의 기능을 간략하게 나타낸다. 각각의 기능의 더욱 상세한 설명은 REVW 명령어가 실행되는 예시의 과정동안에 이루어진다.
제 6 도에 도시된 바와 같이, REVW 명령어 실행의 제 1 단계는 REVW 명령어가 디코딩될 때 수행된다. 인덱스 레지스터에 저장된 어드레스는 본 명세서에서"X"로 표시되며, 제 1 규칙 오퍼랜드를 패치하는데 사용된다. 어드레스 X 는 다음 어드레스 위치(X+2)를 지적하도록 증가된다.
제 1 규칙 오퍼랜드 X 값은 16 진수($FFFE)와 동일한지 아닌지를 결정하도록 테스트된다. 만약 2 값이 16 진수($FFFE)와 동일하면 VCCR신호는 버퍼값이 검색되었음을 표시하도록 토글된다. 만약 VCCR신호가 토글된 후에 0 이 되면, 규칙의 제 1 퍼지 입력은 평가되고, 어큐뮬레이터(58)는 $FF의 16 진수값으로 초기화되어야 한다. 그렇지 않으면, 어큐뮬레이터(58)값은 수정되지 않는다.
제 1 규칙 오퍼랜드값이 $FFF와 동일하지 않으면, 그 값이 16 진수($FFFF)와 동일한지 아닌지를 정하도록 테스트된다. 만약 그 값이 16 진수($FFFF)와 동일하면, 규칙 어레이의 끝은 액세스되고, REVW 명령어는 종료된다.
만약 제 1 규칙 오퍼랜드값이 $FFFF와 동일하지 않으면, 제 1 규칙 오퍼랜드 값은 내부 메모리(32)로부터 퍼지 입력 또는 출력값을 액세스하도록 이용된다. 어큐뮬레이터(58)의 내용은 퍼지 입력 또는 출력값으로부터 공제되어, 신호로된 결과를 제공한다. 결과는 N 신호값으로 표시된다.
만약 N 신호가 0 이면, 어큐뮬레이터(58)와 데이타 버퍼(40) 양 쪽의 내용은 스와프되어서도 안되고, 인덱스 레지스터에 저장된 어드레스는 다음 규칙 오퍼랜드를 액세스한다. 그러나, N 신호가 1 이면, VCCR신호는 테스트된다.
만약 VCCR신호가 0 이면, 어큐뮬레이터(58)의 내용은 제 1 규칙 오퍼랜드로 엑세스된 퍼지 입력값으로 대체되어야 한다. 그러므로, 최소한의 기능은 현재 평가되는 규칙의 퍼지 출력에 할당될 규칙 강도를 정하는데 이용된다. 다음으로, 인덱스 레지스터에 저장된 어드레스는 다음 규칙 오퍼랜드를 액세스하는데 이용된다.
만약 VCCR신호가 1 이면, 데이타 버퍼(40)의 내용은 어큐뮬레이터(58)의 더 강한 규칙 강도로 대체되어야 한다. 따라서 최대한의 규칙 강도는 현재 평가되는 퍼지 출력에 할당된다. 다음으로, 인덱스 레지스터에 저장된 어드레스는 다음 규칙 오퍼랜드를 액세스하는데 사용된다.
제 6 도에 도시된 플로우차트는 데이타 처리 시스템(10)의 REVW 명령어의 실행을 개략적으로 나타낸다. 더욱 상세한 예시는 이제 설명된다.
REVW 명령어의 기본적 동작은 다음과 같다: 각각의 엔터시던트값은 메모리로부터 검색되고, 최소한의 엔터시던트 값이 정해지고, 가중치에 의해 영향을 받으며, 다음으로 각각의 결과값이 규칙 강도값과 비교하여 검색되고, 기존의 결과값이 그 규칙 강도값보다 작을 경우만 그 규칙 강도값으로 메모리에 대체 된다.
앞서 설명된 바와 같이, 다수의 퍼지 입력은 REVW 명령어의 실행에 앞서 데이타 처리 시스템(10)의 사용자에 의해 내부 메모리(32)의 소정의 제 1 메모리 위치에 저장된다. 다수의 퍼지 입력은 어레이(1)에 따라 저장된다. 또한 다수의 퍼지 입력을 평가하는 각각의 규칙은 제 5 도에 도시된 형태로 내부 메모리(32)의 소정의 제 2 메모리 위치에 처장된다. 가중치 또한 메모리에 연속적 방식으로 저장되며, 인덱스 레지스터 Y(53)로부터의 어드레스에 의해 어드레스될 수 있다. 본 명세서에 상세히 도시되지는 않았지만, 퍼지 출력에 대응하는 각각의 규칙 강도값 또한어레이(1)와 유사한 어레이의 $2000의 개시 어드레스로 내부 메모리(32)에 저장된다. 데이타 처리 시스템(10)의 사용자는 REVW 명령어의 실행에 앞서 $00의 16 진수값을 퍼지 출력의 모든 값에 할당해야 한다. 또한, 데이타 처리 시스템(10)의 사용자는 REVW 명령어의 실행에 앞서 $FF의 16 진수값으로 어큐뮬레이터(58)를 초기화해야 한다. 앞서 설명한 바와 같이, 어큐뮬레이터(58)가 $FF로 초기화될 때, VCCR신호는 부정된다.
동작이 실행되는 동안, 사용자는 REVW 명령어를 메모리(32)의 외부 또는 내부에 저장된 소프트웨어 프로그램을 통해 데이타 처리 시스템(10)에 제공할 수 있다. REVW 명령어는 데이타 처리 시스템(10) 외부의 소스에 의해 제공되어야 하며, REVW 명령어는 외부 데이타 버스(33)를 거쳐 외부 버스 인터페이스(30)에 입력된다. 외부 버스 인터페이스(30)는 이어서 REVW 명령어를 내부 데이타 버스(34)를 거쳐 CPU(12)에 제공한다. 만약 REVW 명령어가 내부 메모리(32)의 소프트웨어 프로그램에 의해 제공되면, REVW 명령어는 내부 데이타 버스(34)를 통해 CPU(12)에 제공된다. CPU(12)에서 실행 유닛(14)은 각각의 버스 제어 논리 회로(16), 제어 유닛(20), 시퀀서(22)로부터 수신한 제어 신호에 응답하여 명령어 디코드 논리 회로(18)에 REVW 명령어를 제공한다, 또한, 각각의 CPU(12) 구성 요소는 타이밍 제어 버스(38)에 의해 타이밍 제어 신호를 수신한다. 그러한 타이밍 제어 신호의 루팅과 사용은 데이타 처리 기술에서 공지되어 있으며, 따라서 본 명세서에서 상세히 논의하지는 않는다.
명령어 디코드 논리 회로(18)는 REVW 명령어를 디코딩 하여 REVW 명령어의 적합한 실행에 필요한 다수의 제어 및 정보 신호를 제공한다. REVW 명령어의 수신 및 디코딩에 관하여 실행 유닛(14)은 내부 메모리(32)에 저장된 다수의 퍼지 입력을 평가하는데 필요한 단계를 개시한다. 제 2 도의 CPU(12)의 제어 유닛(20)과 시퀀서(22)는 내부 메모리(32)로부터의 퍼지 입력 및 퍼지 출력 양 쪽의 어드레스에 대한 포인터를 실행 유닛(14)에 전달하는데 필요한 일련의 시퀀싱 제어 신호를 총괄적으로 제공한다.
REVW 명령어의 실행 개시를 위해 실행 유닛(14)의 인덱스 레지스터 X(43)는 규칙 기준의 개시에 대한 포인터를 제공한다. 데이타 처리 시스템에서의 인덱스 레지스터와 그들의 사용은 데이타 처리 기술에서 공지되어 있으므로, 본 명세서에서 상세히 설명하지는 않는다. 차가운 온도 멤버쉽 세트의 제 1 입력 멤버쉽 디그리는 저장되는 내부 메모리(32)의 규칙 기준 어드레스 개시를 지적한다. 그 어드레스는 규칙(1)의 제 1 퍼지 입력값이 저장되는 어드레스를 표시한다. 본 명세서에 설명된 예시에서 16 진수 어드레스($1001)는 내부 메모리(32)에 어드레스($E000)로 저장된다.
규칙(1)의 제 1 퍼지 입력값의 어드레스가 규칙 어레이로부터 액세스될 때, 어드레스는 외부 정보 버스(41)를 통해 데이타 버퍼(40)에 제공된다. 데이타 버퍼(40)는 이어서 어드레스값이 $FFFE의 16 진수값과 비교되는 비교기(72)에 어드레스 값을 제공한다. 만약 어드레스값이 $FFFE와 동일하면, 버퍼 어드레스는 지적되고, VCCR비트는 토글되어야 한다. 통상, VCCR비트는 부호로된 연산으로 오버플로우 에러를 표시하는데 사용된다. 그러나, 본 발명의 이러한 실행에서 조건 코드 레지스터의 오버플로우 비트(VCCR)는 액세스된 어드레스가 퍼지 입력 어드레스, 버퍼 어드레스, 또는 퍼지 출력 어드레스에 대응하는지를 표시하도록 세트된다. 제 1 규칙의 퍼지 입력에 대응하는 어드레스가 액세스될 때, VCCR비트는 부정된 채로 남는다. 만약 액세스된 어드레스가 버퍼값이면, VCCR비트는 토글된다. 본 명세서에 기재된 예시에서 버퍼값은 $FFFE의 16 진수값과 동일하다. 또한, 퍼지 출력의 어드레스가 액세스될 때, VCCR비트는 표명된 채로 남는다.
어드레스값이 $FFFE와 동일할 때, 비교기(72)는 토글 신호를 표명한다. 조건 코드 논리 회로(47)는 토글 신호를 수신하고, 이어서, 조건 코드 레지스터(60)에 표명된 조건 코드 신호를 제공한다. 차례로, 조건 코드 레지스터(60)는 VCCR신호를 그에 따라서 표명하거나 또는 부정한다. 신호(VCCR과 CCCR)가 표명되면, 인덱스 레지스터(Y)(53)는 패치되는 가중치의 어드레스를 메모리에 제공한다. 가중치는 퍼지 논리 출력에 영향을 끼치도록 최소한의 퍼지 논리 입력을 증가시킨다.
본 명세서에 기재된 예시에서, $1001의 어드레스 값은 규칙 어레이의 규칙(1)의 제 1 퍼지 입력값의 어드레스인 어드레스($E000)로부터 액세스된다. $1001이 $FFFE와 동일하지 않으므로 비교기(72)는 토글 신호를 표명하지 않는다. 따라서, 조건 코드 논리 회로(47)에 의해 제공된 조건 코드 신호로 조건 코드 레지스터(60)가 VCCR신호를 토글하지는 않는다.
비교기(72)는 또한 규칙(1)의 제 1 퍼지 입력의 어드레스 값을 $FFFF의 16 진수값과 비교한다. 만약 어드레스값이 $FFFF와 동일하면, 규칙 어레이 어드레스의 종료가 지시되고 REVW 명령어의 실행이 끝난다.
또한, 어드레스 $1001가 내부 메모리(30)로부터 액세스될 때, 차가운 온도 멤버쉽 세트의 제 1 시스템 입력의 멤버쉽 디그리가 제공된다. 어레이(1)에 도시된 바와 같이, 멤버쉽의 디그리는 $33의 16 진수값과 동일하다. 내부 메모리(32)는 내부 데이타 버스(34)를 통해 실행 유닛(14)의 데이타 버퍼(40)에 정보를 제공한다. 외부 정보 버스(41)는 내부 어드레스 버스(36)와 내부 데이타 버스(34)를 통해 전송된 정보를 제공한다.
제 1 퍼지 입력($33)은 이어지는 처리를 위해 데이타 버퍼(40)에 저장된다. 규칙(1)의 엔터시던트의 최소한의 멤버쉽 디그리를 결정하기 위해, 어큐뮬레이터(58)($FF)의 현재 내용은 제 1 퍼지 입력($33)으로부터 공제된다. 이러한 기능을 실행하기 위해 어큐뮬레이터(58)의 내용은 정보 버스 A(66)에 제공되고, 데이타 버퍼(40)의 내용은 정보 버스 B(64)에 제공된다. 또한, 다수의 제어 및 타이밍 신호는 마이크로-롬 제어 버스(65)를 통해 실행 유닛(14)에 제공된다. 다수의 제어 및 타이밍 신호는 제 2 도의 명령어 디코드 논리에 의해 REVW 명령어를 디코딩하는 결과로서 제공된다.
실행 유닛(14)에서, 제 1 퍼지 입력은 A-입력 멀티플렉서(50)에 제공되고,어큐뮬레이터(58)의 내용은 마이크로-롬 제어 버스(65)를 통해 전송된 타이밍 신호에 따라 정해지는 시간의 포인트에서 B-입력 멀티플렉서(56)에 제공된다. B-입력 제어 회로(54)는 B-입력 멀티플렉서(56)의 동작을 제어하기 위해 "제어 B" 신호를 제공한다. 이러한 예시에서, 제어 B 신호로 인해 B-입력 멀티플렉서(56)가 수정되지 않은 제 1 퍼지 입력값을 ALU(52)에 제공한다. 유사하게, A-입력 제어 회로(54)는 "제어 A" 신호를 A-입력 멀티플렉서(50)에 제공한다. 제어 A 신호로 인해 A-입력 멀티플렉서(50)는 어큐뮬레이터(58)의 내용이 ALU(52)의 제 1 퍼지 입력으로부터 공제될 수 있게 어큐뮬레이터(58)의 내용을 부정한다.
제 1 퍼지 입력값과 부정된 어큐뮬레이터 내용값에 관해서, ALU(52)는 제 1 퍼지 입력($33)으로부터 어큐뮬레이터(58)의 내용을 공제하여 결과를 제공한다. 위 결과는 음수($33 - $FF = -$CC)이며 N 신호는 표명된다. 표명된 N 신호는 결과 버스(120)를 통해 전송된다. 만약 결과가 양수이면, N 플래그는 세트되지 않으며, 부정된 N 신호는 결과 버스(120)를 통해 제공된다. 공제 동작의 수적 결과는 필요치 않으며, 따라서, 이어지는 연산 동작동안 기록된다.
레지스터 스와프 논리(46)로 사용자는 규칙 각각의 퍼지 입력의 최소한의 멤버쉽 디그리를 정할 수 있다. 이점에서, 어큐뮬레이터(58)의 내용은 선택된 가중치만큼 곱해진다. 다음으로, 가중치가 부여된 결과는 규칙에 의해 지정된 각각의 동작의 규칙 강도로서 이용된다. 동작이 실행되는 동안, 레지스터 스와프 논리(46)는 VCCR과 N 신호값에 따라 어큐뮬레이터(58)와 데이타 버퍼(40)의 내용을 바꾸거나 또는 바꾸지 않을 수 있다.
레지스터 스와프 논리(46)는 어큐뮬레이터(58)와 버퍼(40)의 내용이 바뀌는 것을 제어하도록 VCCR신호, N 신호, 타이밍 제어 신호를 수신한다. 앞서 설명한 바와 같이, 퍼지 입력값이 내부 메모리(32)로부터 실행 유닛(14)에 제공될 때, VCCR신호는 부정된 채로 남는다. 또한, ALU(52)는 데이타 버퍼(40)의 내용으로부터 어큐뮬레이터(58)의 내용을 공제한 결과가 양수인지 또는 음수인지를 표시하도록 N 신호를 제공한다. 만약 어큐뮬레이터(58)의 내용이 데이타 버퍼(40)에 저장된 제 1 퍼지 입력보다 크면, N 신호는 음수 결과를 표시하도록 표명된다. 거꾸로 만약 제 1 퍼지 입력이 어큐뮬레이터(58)의 내용보다 작으면, N 신호는 양수 결과를 표시하도록 부정된 채로 남는다. 타이밍 회로(28)에 의해 정해진 적합한 시간에 타이밍 제어 신호는 레지스터 스와프 논리 회로(46)가 데이타 버퍼(40)의 내용을 어큐뮬레이터(58)에 전송하거나. 데이타 버퍼(40)에 어큐뮬레이터의 내용을 전송하고, 또는 어큐뮬레이터(50)와 데이타 버퍼(40) 양 쪽의 내용이 같도록 표명된다.
레지스터 스와프 논리(46)(제 4 도)는 또한 AND 게이트(74)에 인가된 신호 CCCR를 수신한다. 부정 신호(CCCR)는 AND 게이트(76)에 인가된다. AND 게이트(74)의 출력인 신호 인에이블(C)은 가중치를 부여하는 동작이 행해질 때, 표명된다. 신호 인에이블(D)은 가중치 부여가 행해지지 않을 때, AND 게이트(76)의 출력으로 표명된다.
제 3 도를 설명하면, 인에이블(C) 신호는 인덱스 레지스터(Y)로부터의 어드레스가 어드레스 버퍼(45)로 삽입될 수 있게 하는 선택기(49)를 활성화한다. 어드레스 버퍼(45)는, 상술한 바와 같이, 타이밍 제어 신호로 정해진 적합한 시간에 인덱스 레지스터 Y(53)로부터의 어드레스에서 메모리로부터의 가중치를 패치한다. 패치된 가중치는 어큐뮬레이터(58)의 내용을 증가시키도록 사용된다. 만약 D 신호가 인에이블되면, 어드레스 버퍼(45)에 기록될 수 없고, 따라서, 메모리로부터의 어떠한 가중치도 검색하지 않는다.
규칙(1)의 "if" 부분을 평가하는 동안, 어큐뮬레이터(58)의 내용이 제 1 퍼지 입력으로부터 공제될 때, 음수의 결과가 발생한다($33 - $FF = -$CC). 따라서 N 신호는 표명된 채로 남는다. 또한 VCCR신호는 퍼지 입력이 내부 메모리(32)로부터 검색됨을 표시하도록 부정된다. 타이밍 제어 신호가 표명될 때, AND 게이트(62)의 출력은 0 이고, 인에이블(A) 신호는 표명된다. 그러나, 인버터(68)의 출력이 표명되고, AND 게이트(70)는 인에이블(B) 신호를 표명하도록 인에이블된다. 인에이블(B) 신호가 표명될 때, 선택기(44)는 데이타 버퍼(40)로부터 어큐뮬레이터(58)로 데이타를 전송하도록 인에이블된다. 멤버쉽의 최소한의 디그리는 이점에서 $33이고, 어큐뮬레이터(58)에 저장된다.
유사하게, 규칙(1)의 제 2 퍼지 입력은 데이타 버퍼(40)에 제공된다. 제 2 퍼지 입력은 낮은 압력(Plight) 멤버쉽 세트에서 제 2 시스템 입력이 가지는 멤버쉽의 디그리이다. 이 예시에서, 멤버쉽의 디그리는$00의 16 진수값을 갖는다. 다시 내부 메모리(32)는 외부 정보 버스(41)를 통해 실행 유닛(14)의 데이타 버퍼(40)에제 2 퍼지 입력의 멤버쉽 디그리를 제공한다.
멤버쉽의 최소한의 디그리를 정하기 위해 제 1 퍼지 입력은 제 2 퍼지 입력에서 공제된다. 실행 유닛(14)에서, 제 1 퍼지 입력은 A-입력 멀티플렉서(14)에 제공되고, 제 2 퍼지 입력은 마이크로-롬 제어 버스(65)를 통해 전송되는 타이밍 신호에 따라 정해진 시간의 점에서 B-입력 멀티플렉서(56)에 제공된다. B-입력 제어 회로(54)는 "제어(B)" 신호를 제공하여, B-입력 멀티플렉서(56)의 동작을 제어한다. 이 예시에서, 제어(B) 신호에 의해 B-입력 멀티플렉서(56)가 ALU(52)에 수정된 제 2 퍼지값을 통과시킨다. 제어(A) 신호에 의해 A-입력 멀티플렉서(50)는 ALU(52)에서 제 1 퍼지 입력이 제 2 퍼지 입력으로부터 공제되도록 제 1 퍼지 입력을 부정한다.
제 2 퍼지 입력값과 부정된 제 1 퍼지 입력값의 수신에 대해, ALU(52)는 다시 음수의 결과를 제공하도록 제 1 퍼지 입력값을 제 2 퍼지 입력값에서 공제한다. 따라서, N 신호는 표명된다. 또한 VCCR신호는 부정되어 퍼지 입력이 내부 메모리(32)로부터 또 검색된다.
타이밍 제어 신호가 표명될 때, AND 게이트(62)의 출력은 0 이고, 인에이블(A) 신호는 표명되지 않는다. 이 제 1 예시에서는, AND 게이트(70)가 인에이블(B) 신호를 표명한다. 인에이블(B) 신호가 표명될 때, 선택기(44)는 데이타 버퍼(40)에서 어큐뮬레이터(58)로 데이타를 전송하도록 인에이블된다. 따라서, 멤버쉽의 최소한의 디그리는 이점에서 $00이며, 어큐뮬레이터(58)에 저장된다.
규칙(1)의 퍼지 입력의 메모리 위치 끝에서, 버퍼 어드레스는 비교기(72)에의해 인지된다. 비교기(72)는 표명된 토글 신호를 조건 코드 논리 회로(47)에 제공한다. 조건 코드 논리 회로(47)는 다음으로 조건 코드 레지스터(60)의 V 비트가 토글되어 표명된 VCCR신호를 제공하도록 조건 코드 페지스터에 조건 코드 신호를 제공한다. 앞서 설명한 바와 같이, VCCR신호는 규칙(1)의 퍼지 출력의 어드레스가 내부 메모리(32)에서 검색될 다음 어드레스임을 표시하도록 표명된다. 본 명세서에 기재한 예시에서, VCCR신호는 규칙 1 의 퍼지 출력의 어드레스가 내부 메모리(32)에서 검색될 때, REVW 명령어의 "then" 부분이 실행되는 동안 표명된다.
다수의 퍼지 출력 중 하나가 선택될 때, 최대한의 동작이 실행된다. 따라서, REVW 명령어의 "then" 부분을 위해 최대한의 규칙 강도가 각각의 퍼지 출력에 할당된다. 앞서 설명한 바와 같이, 최대한의 규칙 강도는 각각의 퍼지 출력에 대하여 할당되어야 한다. 따라서 REVW 명령어의 "if" 부분의 실행 결과로서 어큐뮬레이터(58)에 저장된 멤버쉽값의 최소한의 디그리가 내부 메모리(32)의 퍼지 출력 어드레스에 현재 저장된 규칙 강도값과 비교된다. 현재의 규칙 강도값은 REVW 명령어의 "then" 부분이 실행되는 동안 어큐뮬레이터(58)에 저장되어 존재한다. 최대한의 규칙 강도값은 내부 메모리(32)에 항상 저장된다. 앞서 논의된 바와 같이, 멤버쉽값의 최소한의 디그리는 각각의 퍼지 입력의 멤버쉽 디그리가 최소값을 정하도록 비교되고, 필요하면 가중치에 의해 수정되는 REVW 명령어의 제 1 부분에서 계산된다. 만약 이 가중치가 0 이면, 어큐뮬레이터(58)의 산출은 0 이고, 그것은 퍼지 출력에 아무런 영향도 주지 않는다. 본래 0의 가중치를 갖는 규칙은 "턴 오프(turn off)"된다.
퍼지 입력의 최소값은 어큐뮬레이터(58)에 남는다. 현재 평가되는 규칙의 퍼지 출력에 대한 어드레스 포인터는 다음으로 규칙 어레이에서 제공된다. 실행유닛(14)의 인덱스 레지스터(도시되지 않음)는 제 1 퍼지 출력의 어드레스를 지시하도록 포인터를 증가시킨다. 이 예시에서 포인터는 어드레스 $E006까지 증가된다. 어드레스 $E006에 의해 제 1 출력의 어드레스인 16 진수 어드레스($2000)가 제공된다. 데이타 처리 시스템(10)의 사용자가 REVW 명령어의 실행에 앞서 퍼지출력 어레이에 저장된 모든 데이타값에 16 진수값($06)을 할당하므로, 내부 메모리(32)는 어드레스($2000)가 액세스될 때, 16 진수값($00)을 제공한다. 퍼지 출력값($00)은 퍼지 출력값이 이어지는 동작을 위해 저장되는 내부 정보 버스(41)를 통해 데이타 버퍼(40)에 제공된다.
최대한의 규칙 강도를 정하기 위해, 어큐뮬레이터(58)의 내용은 데이타 버퍼(40)로부터 공제되어 어느 것이 더 큰 값을 가졌는가를 정한다. 즉 규칙 평가 단계의 "if" 부분이 실행되는 동안 계산되는 멤버쉽값의 최소한의 디그리가 규칙 가중치만큼 곱해지고(가중치가 이용될 때), 다음으로 규칙(1)의 제 1 퍼지 출력의 어드레스 위치에 현재 저장된 규칙 강도값에서 공제된다. 이러한 기능을 실행하기 위해 어큐뮬레이터(58)의 내용은 정보 버스(A)(66)에 제공되고, 데이타 버퍼(40)의 내용은 정보 버스(B)(64)에 제공된다. 또한, 다수의 제어 및 타이밍 신호는 마이크로-롬 제어 버스(65)를 통해 실행 유닛(14)에 제공된다. 다수의 제어 및 타이밍 신호는 제 2 도의 명령어 디코드 논리(18)에 의해 REVW 명령어를 디코딩한 결과로서 제공된다.
실행 유닛(14)에서, 어큐율레이터(58)에 저장된 규칙 강도 결과값은 A-입력 멀티플렉서(50)에 제공되고, 데이타 버퍼(40)에 저장된 현재의 퍼지 출력값은 마이크로-롬 제어 버스(65)를 통해 전송된 타이밍 신호에 따라 정해진 시간의 포인트에서 B-입력 멀티플렉서(56)에 제공된다. 이러한 예시에서, 제어(B) 신호로 B-입력 멀티플렉서는 내부 메모리(32)로부터의 수정되지 않은 퍼지 출력값을 ALU(52)에 통과시킨다. 유사하게, A-입력 제어 회로(48)는 제어(A) 신호를 A-입력 멀티플렉서(50)에 제공한다. 제어(A) 신호로 A-입력 멀티플렉서(50)는 ALU(52)의 이어지는 공제 동작을 위해 어큐뮬레이터(58)의 내용을 부정한다.
A-입력 멀티플렉서(50)와 B-입력 멀티플렉서(56) 양 쪽으로부터 값을 수신할 때, ALU(52)는 규칙(1)의 제 1 퍼지 입력에 대응하는 소정의 메모리 위치에 저장된 퍼지 출력값으로부터 어큐뮬레이터(58)에 저장된 규칙 강도 결과값을 공제한다. 본 명세서에 기재된 예시에서, 어큐뮬레이터(58)에 저장된 값은 16 진수 값($00)을 갖는다. 규칙(1)의 각각의 퍼지 출력은 16 진수값($00)이 할당되고, ALU(52)에 의해 제공된 결과는 $00이다. 응답이 음수가 아니므로 N 신호는 부정된 채로 남고, 이어서 레지스터 스와프 논리(46)에 제공된다.
앞서 논의된 바와 같이, 조건 코드 레지스터(60)는 VCCR신호를 레지스터 스와프 논리(46)에 제공한다. 또한 타이밍 제어 신호는 외부 소스인 타이밍 회로(28)에 의해 레지스터 스와프 논리(46)에 제공된다. 각각의 VCCR, N, 타이밍 제어신호를 수신할 때, 레지스터 스와프 논리(46)는 인에이블(A)과 인에이블(B) 신호 양 쪽을 부정한다. 따라서, 선택기(42, 44)는 각각 인에이블되지 않으며, 데이타 버퍼(40)와 어큐물레이터(58) 사이의 데이타 전송을 허가하지 않는다. 따라서, 내부 메모리(32)의 제 1 퍼지 출력의 규칙 강도는 수정되지 않으며, 16 진수값($00)을 계속 갖는다.
유사하게, 규칙 1 의 제 2 퍼지 출력의 규칙 강도를 결정하는 동안, 어큐뮬레이터(58)에 저장된 값과 내부 메모리(32)에서 검색된 규칙 강도값은 16 진수값($00)을 갖는다. 따라서 ALU(52)는 다시 N 신호를 부정하고, 레지스터 스와프 논리(46)는 이어서 인에이블(A)과 인에이블(B) 신호 양 쪽을 부정하도록 인에이블된다. 따라서, 규칙 1 의 평가 후 각각의 지정된 퍼지 출력의 규칙 강도인 작용(1)과 작용(2)은 16 진수값($00)을 갖는다.
다시, 규칙 1 의 퍼지 출력의 메모리 끝 위치에서, 버퍼 어드레스는 비교기에 의해 인지된다. 비교기(72)는 표명된 토글 신호를 조건 코드 논리 회로(47)에 제공한다. 조건 코드 논리 회로(47)는 조건 코드 레지스터(60)의 V 비트가 토글되어, 부정된 VCCR신호를 제공하도록 조건 코드 레지스터에 조건 코드 신호를 제공한다. 앞서 설명한 바와 같이, VCCR신호는 규칙 2 의 퍼지 입력의 어드레스가 내부 메모리(30)에서 검색될 다음 어드레스임을 표시하도록 부정된다. 본 명세서에 기재된 예시에서, 규칙 2 의 퍼지 입력 어드레스가 내부 메모리(32)에서 검색될 때, REVW명령어의 "if" 부분이 실행되는 동안 VCCR신호는 부정된다. VCCR신호가 부정될 때, 어큐뮬레이터(58)의 내용은 다시 $FF의 값으로 초기화된다.
REVW 명령어를 계속적으로 실행하는데 규칙(2)의 평가가 필요하다. 앞서 설명한 바와 같이, 제어 유닛(20)은 규칙(2)의 각각의 퍼지 입력을 내부 메모리(32)에서 실행 유닛(14)으로 전송하는데 필요한 일련의 시퀀싱 제어 신호를 제공한다. 규칙(2)을 평가하는 동안, 내부 메모리(32)는 따뜻한 온도 멤버쉽 세트의 제 1 시스템 입력의 멤버쉽 디그리가 저장되는 제 1 어드레스를 제공한다. 본 명세서에 기재된 예시에서, 어드레스는 내부 메모리(32)의 16 진수 어드레스($1002)를 지시한다. 어드레스($1002)가 내부 메모리(32)로부터 액세스될 때, 16 진수값($CC)을 가진 멤버쉽 디그리는 내부 데이타 버스(34)를 통해 데이타 버퍼(40)에 제공된다.
규칙(1)을 평가하는 동안에서와 같이, 규칙(2)의 제 1 퍼지 입력은 어큐뮬레이터(58)의 초기화된 내용과 비교된다. 어큐뮬레이터(58)는 제 2 버퍼 어드레스가 인지될 때, 16 진수값($FF)으로 초기화된다. 그러므로, 최소한의 값은 앞서 기재한 방법에 따라 탐지되고, $CC는 어큐뮬레이터(58)에 저장된다.
유사하게, 규칙(2)의 제 2 퍼지 입력은 어드레스 버퍼(45)의 어드레스에서 메모리로부터 데이타 버퍼(40)에 제공된다. 제 2 퍼지 입력은 제 2 시스템 입력이중간 압력 멤버쉽 세트에서 갖는 멤버쉽 디그리이다. 이러한 예시에서, 멤버쉽의 디그리는 16 진수값($FF)을 갖는다.
멤버쉽의 최소한의 디그리를 정하기 위해, ALU(52)는 제 2 퍼지 입력으로부터 제 1 퍼지 입력을 공제하여 양수($33)의 결과를 제공한다. 결과가 양수이기 때문에, N 플래그는 지워지고, 부정된 N 신호는 결과 버스(120)를 통해 제공된다.
이어서, 레지스터 스와프 논리(46)는 VCCR신호, N 신호, 타이밍 제어 신호를 수신하여, 어큐뮬레이터(58)와 데이타 버퍼(40)의 내용의 변동을 제어한다. 레지스터 스와프 논리(46)는 인에이블(A)과 인에이블(B) 신호 양 쪽을 부정한다.
멤버쉽의 최소한의 디그리인 16 진수값($CC)은 어큐뮬레이터(58)에 저장된 채로 남는다.
규칙(2)의 퍼지 입력의 메모리 위치의 끝에서, 버퍼 어드레스는 비교기(72)에 의해 인지된다. 비교기(72)는 표명된 토글 신호를 조건 코드 논리 회로(47)에 제공한다. 조건 코드 논리 회로(47)는 다음으로 조건 코드 레지스터(60)의 V 비트가 토글되어, 표명된 VCCR신호를 제공하도록 조건 코드 레지스터에 조건 코드 신호를 제공한다. 앞서 설명한 바와 같이, VCCR신호는 규칙(2)의 퍼지 출력의 어드레스가 내부 메모리(32)로부터 검색될 다음 어드레스임을 표시하도록 부정된다. 만약 CCCR신호가 표명되면, 어큐뮬레이터(58)의 내용은 인덱스 레지스터(Y)(53)로부터 밖의 어드레스 버퍼(45)의 어드레스 세트에서 메모리에서 얻어진 가중치에 의해 수정된다. 결과는 어큐뮬레이터(58)에 다시 저장된다.
규칙(2)의 강도값은 어큐뮬레이터(58)에 남는다. 어큐뮬레이터(58)의 결과값은 $66이라 가정하자. 현재 평가되는 규칙의 퍼지 출력은 규칙 어레이로부터 제공된다. 실행 유닛(14)의 인덱스 레지스터는 제 1 퍼지 출력의 어드레스를 지시하도록 포인터를 증가시킨다. 이러한 예시에서, 포인터는 어드레스($E012)로 증가된다. 어드레스($E012)에서 제 1 퍼지 출력의 어드레스인 16 진수 어드레스($2002)가 제공된다. 데이타 처리 시스템(10)의 사용자가 퍼지 출력 어레이에 저장된 모든 데이타값에 REVW 명령어의 실행에 앞서 16 진수값($00)을 할당하기 때문에, 내부 메모리(32)는 어드레스 $2002가 액세스될 때, 16 진수값($00)을 제공한다. 퍼지 출력값($00)은 다음으로 이어지는 동작을 위해 퍼지 출력값이 저장되는 외부 정보 버스(41)를 통해 데이타 버퍼(40)에 제공된다.
ALU(52)는 다음으로 데이타 버퍼(40)에 저장된 16 진수값($00)으로부터 어큐뮬레이터(58)에 저장된 16 진수값($66)을 공제한다. 결과는 음수값($66)이고, N 신호는 표명된다. 각각의 N, VCCR, 타이밍 신호는 레지스터 스와프 논리(46)에 제공될 때, 레지스터 스와프 논리(46)는 인에이블(A) 신호를 표명하고, 인에이블(B) 신호를 부정한다.
인에이블 A 신호가 표명될 때, 선택기(42)는 어큐뮬레이터(58)의 내용을 데이타 버퍼(40)로 보내도록 인에이블된다. 데이타 버퍼(40)는 일시적으로 최대 규칙 강도값으로서 어큐뮬레이터(58)로 제공된 앞선 규칙 강도값($66)을 저장한다. 또한 데이타 버퍼(40)는 최대 규칙 강도값을 규칙(2)의 제 1 퍼지 출력의 어드레스위치($2002)에 전송한다. 그러므로, $66의 값은 REVW 명령어가 실행되는 동안 내부 매모리(32)의 어드레스($2002)에서의 작용(3)의 현재 규칙 강도값이다.
다시, 규칙 2 의 퍼지 출력의 메모리 위치의 끝에서, 버퍼 어드레스는 비교기(72)로 인지된다. 비교기(72)는 표명된 토글 신호를 조건 코드 논리 회로(47)에 제공한다. 조건 코드 논리 회로(47)는 조건 코드 신호를 조건 코드 레지스터(60)의 V 비트가 토글되어 부정된 VCCR신호를 제공하도록 조건 코드 레지스터에 제공한다. 앞서 설명한 바와 같이, VCCR신호는 부정되어 규칙(3)의 퍼지 입력의 어드레스가 내부 메모리(32)에서 검색될 다음 어드레스임을 표시한다. 본 명세서에 기재한 예시에서, VCCR신호는 규칙(3)의 퍼지 입력의 어드레스가 내부 메모리(32)에서 검색될 때, REVW 명령어의 "if" 부분이 실행되는 동안 부정된다. VCCR신호가 부정될 때, 어큐뮬레이터(58)의 내용은 다시 $FF의 값으로 초기화된다.
REVW 명령어의 실행이 계속되는 동안, 규칙(3)의 평가가 개시된다. 앞서 설명한 바와 같이, CPU(12)의 제어 유닛(20)은 내부 메모리(32)에서 실행 유닛(14)으로 규칙(3)의 각각의 퍼지 입력을 전송하는데 필요한 일련의 시퀀싱 제어 신호를 제공한다. 규칙(3)이 평가되는 동안, 내부 메모리(32)는 증간 압력 멤버쉽 세트의 제 2 시스템 입력의 멤버쉽 디그리가 저장된 제 1 어드레스를 제공한다. 본 명세서에 기재된 예시에서, 어드레스는 내부 메모리(32)의 16 진수 어드레스($1005)를 지시한다. 어드레스($1005)가 내부 메모리(32)에서 액세스될 때, 16 진수값($FF)을 갖는 멤버쉽 디그리가 내부 데이타 버스(34)를 통해 데이타 버퍼(40)에 제공된다.
앞서 언급한 바와 같이, 어큐뮬레이터(58)의 내용은 VCCR신호가 부정될 때, $FF로 초기화된다. 데이타 버퍼(40)에 저장된 멤버쉽 디그리가 ALU(52)에 산출된다. 결과가 음수가 아니므로 N 신호는 표명되지 않는다. 따라서, 레지스터 스와프 논리(46)는 인에이블(A) 또는 인에이블(B) 신호를 표명하지 않으며, 정보는 데이타 버퍼(40)와 어큐뮬레이터(58) 사이에서 전송되지 않는다.
규칙(3)의 퍼지 입력의 메모리 위치 끝에서, 버퍼 어드레스는 비교기(72)에 의해 인지된다. 비교기(72)는 표명된 토글 신호를 조건 코드 논리 회로(47)에 제공한다. 조건 코드 논리 회로(47)는 다음으로 조건 코드 레지스터(60)의 V 비트가 토글되어 표명된 VCCR신호를 제공하도록 조건 코드 레지스터(60)에 조건 코드 신호를 제공한다. 앞서 설명한 바와 같이, VCCR신호는 규칙(3)의 퍼지 출력의 어드레스가 내부 메모리(32)에서 검색될 다음 어드레스 임을 지시한다. 이점에서 패치된 가중치는 어큐뮬레이터(58)의 내용만큼 곱해져 가중치가 부여된 출력을 한다.
이어서, 규칙(3)의 퍼지 출력의 어드레스는 내부 메모리(32)에서 액세스되고 16 진수값($66)은 데이타 버퍼(40)에 제공된다. 16 진수값($66)은 퍼지 출력인 작용(3)에 16 진수($66)의 규칙 강도값이 할당된 규칙(2)의 평가 결과로서 제공된다. 따라서, 16 진수값($66)은 데이타 버퍼(40)에 제공된다.
ALU(52)는 다음으로 데이타 버퍼(40)에 저장된 16 진수값($66)에서 어큐물레이터(58)에 저장된 16 진수값($FF)을 공제한다. 레지스터 스와프 논리(46)에 제공될 때, 레지스터 스와프 논리(46)는 인에이블(A)을 표명한다. 따라서, 선택기(42)는 인에이블되며, 어큐뮬레이터(58)에서 데이타 버퍼(40)로 데이타를 전달한다. 데이타 버퍼(40)는 멤버쉽값의 최소한의 디그리를 규칙(3)의 퍼지 출력의 어드레스위치에 전송하며, 그것은 작용(3) 출력이다. 따라서, 16 진수값($FF)는 REVW 명령어가 실행되는 동안 $FF에서의 작용(3) 의 현재 규칙 강도값이다.
규칙(3)의 평가이후, 평가될 규칙의 어레이 끝을 표시하는 특정 버퍼 어드레스는 비교기(12)에 의해 탐지되고, REVW 명령어는 종료된다. 그 점에서 각각의 규칙(1, 2, 3)은 평가되고, 각각의 대응하는 퍼지 출력은 규칙 강도값이 할당된다. 본 명세서에 기재된 예시에서 각각의 작용(1, 2)은 규칙 강도값 16 진수($00)가 할당된다. 또한, 작용(3)은 규칙 강도값 16 진수($FF)가 할당된다. 각각의 동작은 다음으로 퍼지 출력으로서 데이타 처리 시스템(10)의 적합한 동작을 결정하는데 사용될 디퍼지피케이션 루틴에 제공된다. 예를 들어, 작용(3)은 디퍼지화 되어 밸브를 열거나, 팬을 가동시킬 수 있다. 또한, 작용(1∼3)의 규칙 강도는 디퍼지화되어 팬이 가동되거나, 밸브가 열리는 디그리를 정할 수 있다. 디퍼지피케이션 동작은 데이타 처리 기술에서 공지되어 있으며, 따라서, 본 명세서에 상세히 기재하지는 않는다.
따라서, 데이타 처리 시스템(10)의 REVW 명령어가 실행되는 동안 각각의 규칙(1), 규칙(2), 규칙(3)은 빠르게 평가되고, 소량의 회로가 부가된다. 제 3 도에 도시된 대부분의 회로 소자는 일반적으로 데이타 처리기에서 일반 용도 처리를 실행하는데 사용된다. 마이크로-롬의 소량의 추가 메모리와 소량의 부가된 명령어 디코드 논리는 본 발명을 이행하는데 필요하다. 또한 실행 유닛(14)에서 비교기(72)와 레지스터 스위치 논리 회로(46)는 통상적으로 요구되는 논리에 덧붙여 필요하다.
모든 규칙 평가 단계가 REVW 명령어가 실행되는 동안 완전하게 처리되기 때문에. 바른 실행시간이 성취될 수 있다. 규칙 평가 단계의 앞선 이행에서 많은 단계를 갖는 소프트웨어 프로그램이 필요하다. 예를 들어, MC68HC-11 명령어 세트를 이용하여 실행되는 소프트웨어 프로그램은 통상적으로 규칙 평가 단계를 실행하기 위해 30 명령어를 필요로 한다. REVW 명령어는 MC68HC 11 프로그램의 전체 31 명령어를 대체한다. 따라서, 규칙 평가 단계를 실행하는데 통상적으로 필요한 실행 시간은 개개의 REVW 명령어의 이행으로 상당히 감소된다.
또한, REVW 명령어는 다루기가 쉬우며, 고정된 수의 퍼지 입력 또는 퍼지 출력을 필요로 하지 않는다. 버퍼 어드레스를 탐지하고, 그에 따라서 VCCR 신호를 세팅하므로써 실행 유닛(14)은 퍼지 출력 및 퍼지 입력 각각의 최대 또는 최소값을 제공한다. 데이타 처리 시스템(10)의 사용자는 내부 메모리(32)의 소정의 위치에서 평가될 규칙의 포맷을 저장하기만 하면 된다. 소정의 메모리 위치에 규칙이 저장된 종래 기술의 해결 방법에서, 규칙은 규칙당 퍼지 입력의 소정의 제 1 숫자와 피지 출력의 소정의 제 2 숫자를 가지고 고정된 포맷을 따라야 한다. 만약 버퍼 어드레스가 탐지되지 않고, 각각의 규칙이 퍼지 입력 및 퍼지 출력의 고정된 숫자를 필요로 하면, 더 적은 퍼지 입력 또는 퍼지 출력을 갖는 규칙 때문에 메모리의 상당량이 낭비된다.
또한 외부 소스로부터의 인터럽트 없이 평가될 수 있는 메모리의 어레이에 규칙이 저장되기 때문에, 하나 이상의 규칙은 각각의 REVW 명령어를 위해 평가될 수 있다. 제 1 규칙이 평가된 후, 제 2 규칙은 데이타 처리 시스템(10)의 사용자가추가 정보를 검색하지 않고 즉시 평가될 수 있다. 규칙은 어레이의 끝에 도달할 떼까지 검색될 수 있다. 어레이의 끝은 특정 버퍼 어드레스로 표시된다. 앞선 실시예에서, 규칙 평가 단계가 실행되는 동안 각각의 규칙은 개별적으로 평가된다. 따라서, 이전히 소프트웨어 기법을 이용하는 다수의 규칙을 평가하는데 필요한 시간은 REW 명령어를 이용하여 그와 동일한 다수의 명령어를 평가하는데 필요한 시간보다 더 길다.
본 명세서에 기재된 본 발명의 실시예에서, REVW 명령어의 실행은 어떤 중간결과를 놓치지 않고 인터럽트될 수 있다. 인터럽트가 처리된 후, REVW 명령어의 실행은 REVW 명령어가 인터럽트된 점에서 재개될 수 있다. 내부 메모리(32)의 규칙 어레이에 대한 포인터가 인터럽트되는 동안 세이브되는 인덱스 레지스터에 저장되기 때문에 REVW 명령어는 인터럽트될 수 있다. 또한, VCCR비트의 상태는 인터럽트되는 동안 수정되지 않는데, 왜냐하면 VCCR비트는 인터립트가 동작되는 동안 바뀌지 않는 처리기 상태 레지스터인 조건 코드 레지스터(60)에 저장되기 때문이다. 최소 및 최대 동작의 중간 결과가 어큐뮬레이터(58)에 또한 저장된다. 또, 어큐뮬레이터(58)는 인터럽트가 동작되는 동안 수정되지 않는다. 따라서, REVW 명령어가 다수의 규칙을 처리할 때, 시간이 걸리더라도 그 명령어는 더 급한 동작이 실행될 수 있도록 데이타 처리 시스템(10)의 사용자에 의해 인터럽트될 수 있다. REVW 명령어의 실행은 더 급한 동작이 완료될 때 재개된다.
본 명세서에 기재한 본 발명의 실시예는 예시로써만 제공된다. 그러나, 본명세서에 기재한 기능을 실행하는 다른 많은 실시예가 있다. 예를 들어, 평가될 규칙의 규칙 기준의 개시는 REVW 명령어의 오퍼랜드로서 제공될 수 있다. 또한, 데이타 처리 시스템(10)의 외부에 있는 메모리 회로는 규칙을 평가하는 동안 사용되는 퍼지 입력과 각각의 규칙을 저장하는데 사용될 수 있다. 또한, N 과 VCCR신호가 사용되어 본 발명의 이 실시예에서, 레지스터 스와프 논리(46)의 동작을 제어하고, CCCR신호가 사용되어 가중치 부여 동작을 제어하여도, 데이타 처리 시스템(10)내의 다른 신호도 쉽게 채용하여 사용할 수 있다. 또한, 레지스터 스와프 논리(46)에서 사용된 논리 게이트 또한 NAND, OR, NOR 또는 배타적 OR 게이트와 같은 다른 논리 회로로 대체될 수 있다.
본 발명의 한 측면에서, 실행 유닛(14)은 조건 코드 레지스터(60)를 구비하며, 실행 유닛(14)은, 만약 조건 코드 레지스터(60)가 소정의 상태에 있으면, 다수의 퍼지 입력 중 최소한의 입력에 선택적으로 가중치를 부여한다.
본 발명의 다른 측면에서, 데이타 처리 시스템(10)은 메모리(32)를 갖는 집적 회로 마이크로 컨트롤러인 것을 특징으로 한다.
본 발명의 또 다른 측면에서, 명령어 디코더(18)와 실행 유닛(14)이 집적 회로 마이크로컨트롤러의 중앙 처리 장치(12)를 형성한다.
본 발명의 또 다른 측면에서, 실행 유닛(14)은 제 1 및 제 2 인덱스 레지스터(43, 53)를 구비하며, 실행 유닛(14)은 제 1 인덱스 레지스터(43)를 이용하여 다수의 퍼지 입력을 패칭하는 대응하는 어드레스를 검색하며, 제 2 인덱스레지스터(53)를 이용하여 가중치를 패칭한다.
본 발명의 다른 측면에서, 데이타 처리 시스템은 다수의 퍼지 입력 중 최소한의 입력을 수신하는 제 1 입력부와, 가중치를 수신하는 제 2 입력부와, 퍼지 출력을 제공하는 출력부를 갖는 연산 논리 장치(52)를 더 구비한다.
본 발명의 다른 측면에서, 퍼지 논리 규칙을 평가하는 방법은 규칙 기준의 다수의 각각의 퍼지 논리 규칙을 위해 단계((a)-(c))를 반복하는 단계를 더 포함한다.
본 발명의 다른 측면에서, 다수의 퍼지 입력에 대해 소정의 수학적 동작을 실행하는 단계가 다수의 퍼지 입력 중 최소한의 입력을 정하는 단계를 포함한다.
본 발명의 다른 측면에서, 퍼지 논리 규칙에 가중치를 부여하는 단계가 연산 논리 장치(52)의 제 1 입력에 다수의 피지 입력 중 최소한의 입력을 제공하는 단계와, 연산 논리 장치(52)의 제 2 입력에 가중치를 제공하는 단계와, 증배(multiplication)를 실행하도록 연산 논리 장치(52)를 활성화되는 단계와, 퍼지 출력으로서 연산 논리 장치(52)의 출력을 제공하는 단계를 포함한다.
본 발명의 다른 측면에서, 퍼지 논리 규칙을 평가하는 방법은 퍼지 출력과 앞선 제 2 퍼지 출력 사이의 소정의 제 2 수학적 동작을 실행하므로써 제 2 퍼지 출력을 제공하는 단계를 더 포함한다.
본 발명의 다른 측면에서, 제 2 퍼지 출력을 제공하는 단계는 최대한의 퍼지 출력과 앞선 제 2 퍼지 출력을 정하므로써 제 2 퍼지 출력을 제공하는 단계를 포함한다.
본 발명의 다른 측면에서, 조건 코드 레지스터(60)의 제어 비트를 조사하는 단계가 조건 코드 레지스터(60)의 캐리(carry) 비트를 조사하는 단계를 포함한다.
본 발명의 원리rk 본 명세서에 기재되었지만, 이 기술의 숙련된 자들은 본 설명이 예시로써만 이루어지고 본 발명의 범위에 대한 제한으로서 설명된 것이 아님을 명백하게 알 것이다. 예를 들어, REVW 명령어는 CPU 내에서 완전히 실행되거나, CPU와 코프로세서 양 쪽에 의해 실행될 수 있다. 후자의 경우에, CPU는 명령어 디코더를 구비하는 것으로 간주되고, 코프로세서는 실행 유닛을 구비하는 것으로 간주된다. 따라서 추가된 청구범위로 본 발명의 진정한 사상과 범위 내에 있는 본 발명의 모든 변형을 다룰 것이다.
제 1 도는 퍼지 논리를 설명하는데 사용된 몇몇의 일반 개념 및 기본 용어를 도시하는 그래프.
제 2 도는 본 발명에 따른 데이타 처리 시스템을 도시하는 블록도.
제 3 도는 제 2 도의 실행 유닛을 도시하는 블록도.
제 4 도는 제 3 도의 레지스터 스와프(swap) 논리 회로를 도시하는 논리 회로도.
제 5 도는 제 2 도의 내부 메모리에서 평가될 규칙의 어레이를 도시하는 메모리 사상도.
제 6 도는 본 명세서에 설명된 본 발명에 따른 REVW 명령어가 실행되는 동안 수행되는 기능의 흐름을 도시하는 흐름도.
♣ 도면의 주요부분에 대한 부호의 설명 ♣
10 : 데이타 처리 시스템 14 : 실행 유닛
18 : 명령어 디코더 32 : 메모리
52 : 연산 논리 장치 53 : 인덱스 레지스터
58 : 어큐뮬레이터 60 : 조건 코드 레지스터
72 : 비교기 91 : 정보 버스

Claims (5)

  1. 퍼지 논리 규칙을 평가하는 데이타 처리 시스템(10)에 있어서,
    규칙 평가 명령어를 포함하는 다수의 명령어들 중 한 명령어를 수신하는 입력과, 상기 명령어에 응답하여 다수의 제어 신호를 제공하는 출력을 갖는 명령어 디코더(18)와,
    정보 버스(41)에 연결되고, 명령어 디코더(18)의 출력에 연결된 제어 입력부를 갖는 실행 유닛(14)을 포함하고,
    상기 실행 유닛은 소정의 제어 신호를 제공하기 위한 출력을 갖는 레지스터(60)를 더 포함하고,
    상기 명령어 디코더는 규칙 평가 명령어와 다른 명령어에 응답하여 레지스터(60)에 값을 저장하도록 실행 유닛을 제어하고,
    상기 명령어 디코더(18)는 상기 규칙 평가 명령어에 응답하여 정보 버스(41)를 통해 다수의 퍼지 입력을 실행 유닛(14)이 패치하도록 실행 유닛(14)을 제어하고,
    상기 명령어 디코더(18)는 다수의 퍼지 입력 중 최소한의 한 입력을 결정하도록 실행 유닛(14)을 더 제어하고, 소정의 제어 신호의 논리 상태에 응답하여 퍼지 출력을 제공하기 위해 다수의 퍼지 입력 중 최소한의 입력에 선택적으로 가중치를 부여하는 데이타 처리 시스템.
  2. 데이터 처리 시스템(10)의 퍼지 논리 규칙을 평가하는 방법에 있어서,
    (a) 가중치가 부여되지 않은 출력을 제공하기 위해 퍼지 논리 규칙과 연결된 다수의 퍼지 입력에 소정의 수학적 동작을 실행하는 단계와,
    (b) 퍼지 논리 규칙에 가중치가 부여될 것인지를 결정하기 위해 데이타 처리시스템(10)의 조건 코드 레지스터(60)의 제어 비트를 조사하는 단계와,
    (c) 퍼지 논리 규칙에 대응하는 가중치를 패칭하고, 소정의 상태에 있는 제어 비트에 응답하여, 퍼지 출력을 제공하기 위해 가중치가 부여되지 않은 출력에 가중치를 곱하므로써 퍼지 논리 규칙에 가중치를 부여하는 단계를 포함하는 퍼지 논리 규칙 평가 방법.
  3. 데이타 처리 시스템(10)의 퍼지 논리 규칙을 평가하는 방법에 있어서,
    규칙 평가 명령어에 가중치가 부여될 것인지 여부를 지시하도록 레지스터(60)에 값을 저장하는 단계와,
    규칙 평가 명령어를 수신하고, 상기 규칙 평가 명령어의 수신에 응답하여,
    (a) 가중치가 부여되지 않은 출력을 제공하기 위해 퍼지 논리 규칙과 연결된 다수의 퍼지 입력에 소정의 수학적 동작을 실행하는 단계와,
    (b) 레지스터에 상기 값을 조사하므로써 퍼지 논리 규칙에 가중치가 부여될 것인지를 결정하는 단계와, 상기 퍼지 논리 규칙에 가중치가 부여된다면,
    (c) 인덱스 레지스터(53)를 이용하여 가중치를 패칭하는 단계와,
    (d) 퍼지 출력을 제공하기 위해 가중치와 가중치가 부여되지 않은 출력을 곱하므로써 퍼지 논리 규칙에 가중치를 부여하는 단계를 실행하는 단계를 포함하는 퍼지 논리 규칙 평가 방법.
  4. 데이타 처리 시스템(10)의 퍼지 논리 규칙 평가 방법에 있어서,
    규칙 평가 명령어를 수신하고, 상기 규칙 평가 명령어의 수신에 응답하여,
    (a) 테이블 어드레스를 이용하여 테이블로부터 규칙오퍼랜드를 판독하는 단계와,
    (b) 상기 테이블 어드레스를 증가시키는 단계와,
    (c) 상기 규칙 오퍼랜드를 이용하여 데이타값을 패칭하는 단계와,
    (d) 상기 테이블 어드레스를 이용하여 이어지는 값을 패칭하고, 상기 테이블 어드레스를 증가시키며, 이어지는 값으로 규칙 오퍼랜드를 업데이팅하는 단계와,
    (e) 데이타값과 앞의 출력 사이에서 소정의 수학적 동작을 실행하므로써 출력을 제공하는 단계와,
    (f) 단계(c)-(e)를 반복하고, 규칙 오퍼랜드가 소정의 제 1 버퍼값과 동일할매까지 최소한의 기능으로서 상기 소정의 수학적 동작을 실행하는 단계와,
    (g) 인덱스 레지스터(53)를 이용하여 가중치를 패칭하고, 인덱스 레지스터(53)를 증가시키는 단계와,
    (h) 단계(d)를 반복하는 단계와,
    (i) 상기 출력과 가중치를 곱하여 결과를 제공하고, 상기 결과로 상기 출력을 업데이트하는 단계와,
    (j) 단계(c)-(e)를 반복하고, 최대 기능으로서 상기 소정의 수학적 동작을 실행하는 단계와,
    (k) 상기 규칙 오퍼랜드가 상기 제 1 소정의 버퍼값 또는 제 2 소정의 버퍼값과 동일할 때까지 단계(j)를 반복하는 단계와,
    (1) 상기 규칙 오퍼랜드가 상기 제 2 소정의 버퍼값과 동일하지 않는 동안 단계(c)-(k)를 반복하는 단계를 수행하는 단계를 포함하는 퍼지 논리 규칙 평가 방법.
  5. 데이타 처리 시스템(10)의 퍼지 논리 규칙 평가 방법에 있어서,
    (a) 제 1 상태 비트를 제 1 논리 상태로 세팅하는 단계와,
    (b) 제 1 인덱스 레지스터(43)를 이용하여 규칙 기준 테이블로부터 규칙 오퍼랜드를 판독하는 단계와,
    (c) 상기 제 1 인덱스 레지스터(43)의 값을 증가시키는 단계와,
    (d) 상기 규칙 오퍼랜드가 소정의 제 1 버퍼값과 동일하면,
    (i) 상기 제 1 상태 비트를 토글하는 단계와,
    (ii) 상기 제 1 상태 비트가 상기 제 1 논리 상태에 있지 않으면, 제 2 상태 비트를 체크하고, 상기 제 2 상태 비트가 제 2 논리 상태에 있으면,
    (1) 규칙 가중치를 패치하기 위해 제 2 인덱스 레지스터(53)를 이용하는 단계와,
    (2) 상기 제 2 인덱스 레지스터(53) 값을 증가시키는 단계와,
    (3) 규칙 오퍼랜드를 패치하기 위해 상기 제 1 인덱스 레지스터(43)를 이용하는 단계와,
    (4) 상기 제 1 인덱스 레지스터(43) 값을 증가시키는 단계와,
    (5) 상기 규칙 가중치와 어큐뮬레이터(58) 값을 곱하고, 상기 어큐뮬레이터(58)의 곱셈 단계 결과를 저장하는 단계를 실행하는 단계와,
    (iii) 상기 제 1 상태 비트가 상기 제 1 논리 상태에 있으면, 상기 어큐뮬레이터(58)를 그에 따라 최대값으로 세팅하는 단계를 실행하는 단계와,
    (e) 상기 규칙 오퍼랜드가 상기 소정의 제 1 버퍼값 또는 소정의 제 2 버퍼값과 동일하지 않으면,
    (i) 상기 규칙 오퍼랜드를 이용하여 데이타 성분을 패칭하는 단계와,
    (ii) 상기 제 1 인덱스 레지스터(43)를 이용하여 이어지는 값을 패칭하고, 상기 이어지는 값으로 상기 규칙 오퍼랜드를 업데이트하는 단계와,
    (iii) 상기 제 1 인덱스 레지스터(43)의 값을 증가시키는 단계와,
    (iv) 상기 어큐뮬레이터(58) 값과 상기 데이타 성분을 비교하고, 상기 데이타 성분이 상기 어큐뮬레이터(58) 값보다 작으면, 제 3 논리 제 3 상태 비트를 제 3 논리 상태로 세팅하는 단계와,
    (v) 상기 제 1 상태 비트가 상기 제 1 논리 상태에 있고, 상기 제 3 상태 비트가 상기 제 3 논리 상태에 있으면, 상기 데이타 성분으로 상기 어큐뮬레이터(58) 값을 대체하는 단계와,
    (vi) 상기 제 1 상태 비트가 상기 제 1 논리 상태에 있고, 상기 제 3 상태비트가 상기 제 3 논리 상태에 있으면, 상기 규칙 오퍼랜드를 이용하는 메모리(32)의 상기 어큐뮬레이터(58) 값을 저장하는 단계를 실행하는 단계와,
    (f) 상기 규칙 오퍼랜드가 소정의 상기 제 2 버퍼값과 동일하지 않는 동안 단계 (d)와 (e)를 반복하는 단계를 포함하는 퍼지 논리 규칙 평가 방법.
KR1019950054209A 1994-12-22 1995-12-22 퍼지논리규칙을평가하는데이타처리시스템및그방법 KR100375251B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US36343494A 1994-12-22 1994-12-22
US363,434 1994-12-22

Publications (2)

Publication Number Publication Date
KR960024927A KR960024927A (ko) 1996-07-20
KR100375251B1 true KR100375251B1 (ko) 2003-06-09

Family

ID=23430200

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950054209A KR100375251B1 (ko) 1994-12-22 1995-12-22 퍼지논리규칙을평가하는데이타처리시스템및그방법

Country Status (5)

Country Link
US (1) US5787407A (ko)
EP (1) EP0718753A1 (ko)
JP (1) JPH08234989A (ko)
KR (1) KR100375251B1 (ko)
CN (1) CN1133457A (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6260030B1 (en) * 1997-12-01 2001-07-10 Talib Janabi Multi grade fuzzy logic controller
US6035390A (en) * 1998-01-12 2000-03-07 International Business Machines Corporation Method and apparatus for generating and logically combining less than (LT), greater than (GT), and equal to (EQ) condition code bits concurrently with the execution of an arithmetic or logical operation
WO2001093084A1 (en) * 2000-06-02 2001-12-06 Johnson Joseph E Apparatus and method for handling logical and numerical uncertainty utilizing novel underlying precepts
CA2411203A1 (en) * 2002-11-05 2004-05-05 Alphaglobal It Inc. Intelligent data management system and method
US7725513B2 (en) * 2003-01-15 2010-05-25 Ikanos Communications, Inc. Minimum processor instruction for implementing weighted fair queuing and other priority queuing
US7130770B2 (en) * 2004-09-09 2006-10-31 International Business Machines Corporation Monitoring method and system with corrective actions having dynamic intensities
US7415448B2 (en) * 2006-03-20 2008-08-19 Microsoft Corporation Adaptive engine for processing geographic data
JP5332172B2 (ja) * 2006-11-10 2013-11-06 セイコーエプソン株式会社 画像表示制御装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0360256A2 (en) * 1988-09-20 1990-03-28 Omron Tateisi Electronics Co. Fuzzy computer system
KR920022119A (ko) * 1991-05-20 1992-12-19 다떼이시 요시오 퍼지 추론 처리 시스템
JPH05241840A (ja) * 1992-02-26 1993-09-21 Mitsubishi Electric Corp ファジィ推論処理装置
US5305424A (en) * 1990-07-26 1994-04-19 Apt Instruments (N.A.) Inc. Data forming method for a multi-stage fuzzy processing system
JPH06168134A (ja) * 1992-11-30 1994-06-14 Nec Corp ファジイ制御のためのファジイ推論プロセッサ

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5131071A (en) * 1988-09-26 1992-07-14 Omron Tateisi Electronics Co. Fuzzy inference apparatus
EP0373628B1 (en) * 1988-12-14 1998-03-18 Omron Corporation Fuzzy apparatus
JPH0561283A (ja) * 1991-08-30 1993-03-12 Minolta Camera Co Ltd 複写機管理方式
US5295229A (en) * 1992-06-17 1994-03-15 Motorola, Inc. Circuit and method for determining membership in a set during a fuzzy logic operation
US5263125A (en) * 1992-06-17 1993-11-16 Motorola, Inc. Circuit and method for evaluating fuzzy logic rules
US5376752A (en) * 1993-02-10 1994-12-27 Korg, Inc. Open architecture music synthesizer with dynamic voice allocation
US5684928A (en) * 1995-12-11 1997-11-04 Motorola, Inc. Circuit and method for evaluating fuzzy logic rules

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0360256A2 (en) * 1988-09-20 1990-03-28 Omron Tateisi Electronics Co. Fuzzy computer system
US5305424A (en) * 1990-07-26 1994-04-19 Apt Instruments (N.A.) Inc. Data forming method for a multi-stage fuzzy processing system
KR920022119A (ko) * 1991-05-20 1992-12-19 다떼이시 요시오 퍼지 추론 처리 시스템
JPH05241840A (ja) * 1992-02-26 1993-09-21 Mitsubishi Electric Corp ファジィ推論処理装置
JPH06168134A (ja) * 1992-11-30 1994-06-14 Nec Corp ファジイ制御のためのファジイ推論プロセッサ

Also Published As

Publication number Publication date
EP0718753A1 (en) 1996-06-26
JPH08234989A (ja) 1996-09-13
US5787407A (en) 1998-07-28
KR960024927A (ko) 1996-07-20
CN1133457A (zh) 1996-10-16

Similar Documents

Publication Publication Date Title
EP0574713B1 (en) A method for operating a digital data processor to perform a fuzzy rule evaluation operation
US4578750A (en) Code determination using half-adder based operand comparator
EP0378830B1 (en) Method and apparatus for handling multiple condition codes as for a parallel pipeline computer
US5530825A (en) Data processor with branch target address cache and method of operation
KR100251443B1 (ko) 퍼지 논리 연산 수행 방법과 데이타 처리 시스템, 및 산술 연산 수행용 데이터 처리 시스템
KR100375251B1 (ko) 퍼지논리규칙을평가하는데이타처리시스템및그방법
US4656581A (en) Vector mask control system
US5657427A (en) Fuzzy logic electronic controller and associated method for setting up memories
US5124910A (en) Microprogram control apparatus for generating a branch condition signal to be designated by a micro-branch instruction
KR100519862B1 (ko) 퍼지논리규칙들을평가하기위한회로및방법
KR19980086627A (ko) 특정 유형의 인스트럭션을 동시에 처리할 수 있는 방법 및 데이터 프로세싱 시스템
KR20040111559A (ko) 주소 레지스터의 내용을 스와핑하기 위한 방법 및 장치
US5671332A (en) Data processing system for performing efficient fuzzy logic operations and method therefor
US5737493A (en) Instruction set for evaluating fuzzy logic rules
JP2793357B2 (ja) 並列演算装置
US4914581A (en) Method and apparatus for explicitly evaluating conditions in a data processor
JPH07262006A (ja) 分岐ターゲットアドレスキャッシュを備えたデータプロセッサ
JPS62256035A (ja) 可変のデ−タバス幅をもつプログラム装置におけるプログラム制御のシフト機構
JPH06332698A (ja) 情報処理装置
JP2510295B2 (ja) レジスタ更新割出し制御装置
JPS58127245A (ja) マイクロプログラム制御デ−タ処理装置
JPH01159730A (ja) マイクロプログラム制御装置
JPS62271135A (ja) 絶対値判定回路
JPS62202264A (ja) ベクトル演算処理方式
JPS5935450B2 (ja) 条件処理装置

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130208

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20140211

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee