CN1167299A - 用于评估模糊逻辑规则的电路和方法 - Google Patents
用于评估模糊逻辑规则的电路和方法 Download PDFInfo
- Publication number
- CN1167299A CN1167299A CN96120166A CN96120166A CN1167299A CN 1167299 A CN1167299 A CN 1167299A CN 96120166 A CN96120166 A CN 96120166A CN 96120166 A CN96120166 A CN 96120166A CN 1167299 A CN1167299 A CN 1167299A
- Authority
- CN
- China
- Prior art keywords
- value
- fuzzy
- rule evaluation
- regular basis
- address value
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/02—Computing arrangements based on specific mathematical models using fuzzy logic
- G06N7/04—Physical realisation
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S706/00—Data processing: artificial intelligence
- Y10S706/90—Fuzzy logic
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)
- Feedback Control In General (AREA)
Abstract
在实施模糊逻辑操作的数据处理***(10)中,采用转换机构(802)在可变格式规则基准(803)和固定格式规则基准之间提供选择。该可变格式规则基准的模糊输入地址和模糊输出地址之间采用缓冲器,而对于固定格式规则基准,由于模糊输入地址和模糊输出地址数量是预定的,该固定格式规则基准不需要该缓冲器。
Description
本发明涉及数据处理***,特别是在数据处理***中执行模糊逻辑操作。
数据处理器已经被开发成将输入和输出看作1或0而不存在其它可能性的二进制设备。在大多数情况下其工作良好,但有时答案并不只是简单的"是"或"否",而是介于其之间。已经发展起来一种称为"模糊逻辑"的概念,以便根据二进制逻辑使数据处理器提供介于"是"和"否"之间的答案。
模糊逻辑是具有带模糊边界的隶属函数(membership function)的逻辑***。隶属函数将诸如"气温是暖和的"之类的主观表达转换成可由常用数据处理器识别的值。说明“暖和的”这类词的标记用于标出一个输入值的范围,其边界不是该标记处于其一侧为“真”处于其另一侧为“假”的点。另外,在采用模糊逻辑的***中,隶属函数的边界逐渐改变并可与相邻隶属组的边界重叠。因此,通常赋予输入值一个隶属程度。例如,如果将一个温度范围提供给隶属函数,输入的温度可落入标为"冷"和"暖"的两个函数的重叠区。进一步的处理是要确定在每个隶属函数中的隶属程度(即,当前温度与冷和暖隶属组中每一个的适合程度)。
在采用模糊逻辑的***中使用被称为"模糊化"(fuzzification)的步骤使输入与隶属函数相联系。模糊化处理将具体数值附加到诸如"气温是暖和的"之类的主观表达。这些数值试图提供非常近似于人的感觉。
模糊化步骤之后,执行称为规则评估(rule evaluation)的步骤。在规则评估步骤过程中,对取决于模糊输入值的规则表达加以评估以产生模糊输出。例如,假设所评估的规则可表示为:
如果(气温是暖和的)并且(气压高),那么(风扇速度为中速)。在该规则中必须评估两个前提"气温是暖和的"和"气压高",以确定结论"风扇速度为中速"的规则强度。规则评估步骤过程中,前提为真的程度影响规则为真的程度。将前提的最小值作为该规则结论的规则强度应用。另外,当对多于一个规则进行评估时,存在着将一个动作(action)赋予多于一个规则强度的可能性。这种情况下,应将具有较大值的规则强度赋予该动作。因此,该动作被赋予最大值的规则强度。
模糊逻辑处理中的最后一个步骤称为"去模糊化"(defuzzification)。该步骤将规则评估步骤中所允许的结果转化成单个动作。去模糊化是将所有模糊输出组合成可施加到标准数据处理***的复合结果的过程。有关模糊逻辑的其它信息可参考由James M.Sibigtroth提出并引入本文作为参考的题为"在硬件中采用的模糊专家规则"(lmplementing Fuzzy Expert Rules in Hardware)的文章。该文章发表在1992年4月出版的AL EXPERT的第25至31页。
总之,这些规则由一系列跟着一个或多个动作(结论)的假定(前提)组成。每个前提对应一个模糊输入,每个动作对应一个模糊输出。在硬件中实施规则评估步骤要使用专用接线和电路使模糊输入与模糊输出相联系。该方法通常需要专用存储器并且不可改变。在软件中实施规则估算步骤要使用指令程序评估这些规则。软件方法通常比硬件方法慢并且需要大量的程序存储器。在必须尽可能快地进行数据计算、传送和操作的工业应用中,必须加快执行时间。因此,对某些应用来说软件并不是可行的解决方法。
因此,需要一种快速执行规则评估步骤而不扩大硬件需求的电路或方法。需要通常与硬件解决方法相关的速度而不需要通常与该解决方法相关的专用电路区。
与本申请交叉引用作为参考的美国专利No.5,263,125描述了模糊规则基准的使用,该规则基准为允许这些规则具有任何数量输入和输出的可变格式。该可变格式规则基准包含描绘该规则的附加缓冲(overhead buffering)。反之,在固定格式规则基准中,每个规则具有相同预定数量的输入和输出,允许在无附加缓冲的情况下评估该规则。结果是,固定格式规则基准需要较少的规定存储器和较少的执行时间。固定的规则基格式准的缺点是每个规则必须符合预定结构。因此,两种规则基准格式各有利弊,在某些情况下对一种格式的需求可能超过另一种格式。
作为上述结果,需要一种在模糊逻辑***中提供进行固定或可变规则基准选择的电路和方法。
为了更完整地理解本发明及其优点,下面参考附图对本发明进行描述,其中:
图1以图解形式说明一些一般概念和用于描述模糊逻辑的基本术语;
图2以方框图形式说明根据本发明的数据处理***;
图3以方框图形式说明图2的执行单元;
图4以逻辑电路形式说明图3的寄存器交换逻辑电路;
图5以存储变换形式说明可变格式中图2的内存储器中所评估规则的数组;
图6以流程图形式说明根据可变格式在REV指令执行过程中所执行函数的流程;
图7以存储变换形式说明固定格式中图2的内存储器中所评估规则的数组;
图8以流程图形式说明根据这里描述的本发明在规则评估(REV)指令执行过程中所执行函数的流程。
在下面的描述中,规定了大量诸如专用字或字节长度等等之类的具体细节,以便提供对本发明的彻底理解。然而,很显然,本领域技术人员不需这些具体细节即可实施本发明。在其它例子中,已经以方框图形式示出已知的电路以避免在不必要的细节上与本发明混淆。由于与所需考虑的定时和类似情况有关的多半细节对完整理解本发明不是必要的,并且在相关领域中的普通技术人员的知识范围内,因此已经将这些细节省略。
现在参考附图,其中无需按比例示出所描绘的元件,并用相同参考标号指示的类似或相同元件。
本发明提供在数据处理***的模糊逻辑操作中以最少量的电路快速执行规则评估步骤的电路和方法。将该规则评估步骤在数据处理***中编码成可被有效执行而无需大量附加电路的单指令。因此,本发明提供可使数据处理***用户快速执行规则评估步骤而无需冗长和耗时的软件程序的指令。
用助记标记"REV"表示的本发明指令使数据处理***执行一系列涉及从存储器恢复操作数以及使用这些操作数进行算术运算的步骤。如果在本发明的REV指令执行前已经将所欲评估的规则的前提的隶属函数值和该规则的结论适当地存储在存储器中,REV指令的执行会导致正确的规则评估。通过假定这些前提和结论以特定格式存储在存储器中,以及通过有创见地使用可执行该指令的现有硬件,可使本发明几乎不用的附加硬件在一般应用的数据处理***中有效地执行模糊逻辑规则。例如,将在数据处理器中进行带符号运算过程所使用的特征码寄存器的溢出或V比特在本发明中用作与来自存储器的操作数处理有关的标记。
在描述本发明实施的过程中,采用术语"肯定"和"否定"及其各种语法形式以避免在处理"有效高"和"有效低"逻辑信号混合时造成混淆。"肯定"用来表示将逻辑信号或寄存器比特译成其有效,或逻辑真状态。"否定"用来表示将逻辑信号或寄存器比特译成其无效,或逻辑假状态。另外,可通过在一个值前加上"$"符号表示其为十六进制值。
图1提供了说明几个基本术语及模糊逻辑概念的示意图。图1所描述的模糊逻辑***中,"***输入"是华氏温度。提供四个"隶属函数"以给出温度范围标记。例如,将温度从0度至35度标为"冷"。同样,将温度从25度至60度标为"凉"。应注意,每个隶属组的边界与相邻组的边界重叠。因此,温度可以处在多于一个隶属组中。例如,假设***输入表明为58度的温度。参考图1,应注意58度处在凉和暖两个隶属组的边界内。然而,可以获得其在每个隶属组中的隶属程度。该***输入针对凉隶属组的隶属程度为十六进制值$33,而针对暖隶属组的隶属程度为十六进制值$CC。如果***输入表明为70度温度,该温度在暖隶属组中的隶属程度应为十六进制值$FF。同样,70度的温度在热隶属组中的隶属程度为十六进制值$00。在图1所描述的模糊逻辑***中,隶属程度的范围可以是十六进制值$00至$FF,与从0.00至0.996的小数对应。本领域技术人员可以理解可用八比特的二进制字节表示两位的十六进制值。
上述指令执行和操作方法的一种实施是在改进型的MC68HC11微控制器中进行的。MC68HC11是包括16比特地址和存储寄存器的8比特微控制器,可从设在得克萨斯Austin的Motorola公司得到。图2更详细说明了该执行过程。图2描绘了可执行规则评估指令的数据处理***10。数据处理***10通常包括一个中央处理单元(CPU)12、一个振荡器24、一个电源电路26、一个定时电路28、一个外部总线接口30、和一个内存储器32。CPU12通常包括一个执行单元14、一个总线控制逻辑电路16、一个指令解码逻辑电路18、一个控制单元20、和一个序列发生器22。
操作过程中,经诸如晶体之类的外部信源向振荡器24提供"Osc1"信号。该晶体连在Osc1和Osc2信号之间,以使该晶体振荡。Osc1向数据处理***10的其余部分提供"时钟"信号。晶体振荡器的操作在数据处理技术中是已知的并且对本领域普通技术人员是显而易见的。
电源电路26从外部电源接收"Vdd"和"Vss"信号。Vdd信号提供正5V电压,Vss信号提供参考或接地电压。将Vdd和Vss信号提供给数据处理***10的每个其余部分。这些信号的路由在数据处理技术中是已知的并且对本领域普通技术人员是显而易见的。
定时电路28接收该时钟信号并经定时控制总线38依次向CPU12、外部总线接口30和内存储器32提供相应的定时信号。
将多个地址值从外部总线接口30提供给外部地址总线35。同样,由外部总线接口30经外部数据总线33传递多个数据值。外部总线接口30控制外部用户和数据处理***10之间地址和数据值的接收和发送。外部总线30分别经内部地址总线36和内部数据总线34将多个地址和数据值传递到数据处理***10的其余部分。
内存储器32用来存储数据处理***10正确操作所需的信息。另外,可将其它数据值存储在其中,如果在经内部地址总线36和内部数据总线34提供的用户程序中规定了的话。
CPU12执行数据处理***10操作过中所需的每个指令。内部地址总线36和内部数据总线34在执行单元14和数据处理***10的其余部分之间传递信息。总线控制逻辑电路16取出指令和操作数。然后由指令解码逻辑电路18对每个指令解码并提供给控制单元20和序列发生器22。控制单元20和序列发生器22保持每个指令的执行顺序,以便最有效地利用数据处理***10的计算容量。另外,控制单元20包括一个经微-ROM(Micro-ROM)控制总线65向执行单元14、总线控制逻辑电路16、和指令解码逻辑电路18的每一个提供多个控制信息的微ROM存储器(未示出)。该多个控制信息是正确执行REV指令所必需的。
图3更详细地说明了执行单元14。执行单元14通常包括一个数据缓冲器40、一个第一选择器42、一个第二选择器44、一个寄存器交换逻辑电路46、一个特征码逻辑电路47、一个A-输入控制电路48、一个A-输入多路复用器50、一个算术逻辑运算单元(ALU)52、一个B-输入控制电路54、一个B-输入多路复用器56、一个累加器58、一个特征码寄存器60、和一个比较器72。除累加器58和特征码寄存器60之外还可在执行单元14中使用其它存储寄存器。例如,也可包括变址寄存器或第二累加器。该存储寄存器的实施和使用在该技术领域中是已知的并且对本领域普通技术人员是显而易见的。
外部信息总线41向数据缓冲器40提供地址和数据信息。外部信息总线41分别从内部地址总线36和内部数据总线34接收地址和数据信息。数据缓冲器40将经外部信息总线40传送的值在选择器42和44分别可允许传送信息时经信息总线A66和信息总线B64提供给执行单元14的其余部分。虽然这里未详细示出,信息总线A66和信息总线B64二者都是16比特宽并且分成高端(比特15至比特8)和低端(比特7至比特0)。另外,数据缓冲器40向比较器72提供地址信息。
累加器58的第一和第二输入端分别双向耦合到信息总线A66和信息总线B64。任何诸如累加器和变址寄存器之类的附加寄存器同样耦合到信息总线A66和信息总线B64。
将多个控制信号经微ROM控制总线65提供给A-输入控制逻辑电路48和B-输入控制逻辑电路54。微ROM控制总线65响应由控制单元20中的微-ROM存储器(未示出)提供的信息提供该多个控制信号。
A-输入控制逻辑电路48向A-输入多路复用器50的控制输入端提供"控制A"信号。信息总线A66连到A-输入多路复用器50的数据输入端。A-输入多路复用器50向ALU52第一输入端提供标为"A-输入低端"的前10比特输出,向ALU52第二输入端提供标为"A-输入高端"的第二10比特输出。B-输入控制逻辑电路54向B-输入多路复用器56的控制输入端提供"控制B"信号。信息总线B64连到B-输入多路复用器56的数据输入端。B-输入多路复用器56向ALU52第三输入端提供标为"B-输入低端"的前10比特输出,向ALU52第四输入端提供标为"B-输入高端"的第二10比特输出。
ALU52处理每一个输入以便提供经结果总线120传送的多个结果。结果总线120将由ALU52提供的结果提供给寄存器交换逻辑电路46和特征码逻辑电路47。另外,结果总线120向信息总线B64提供该多个结果。
特征码逻辑电路47还耦合到比较器72以便接收触发信号。特征码逻辑电路47还耦合到特征码寄存器60以便提供"特征码"信号。
特征码寄存器60向寄存器交换逻辑电路46的第二控制输入端提供VCCR信号。另外,将定时控制信号提供给寄存器交换逻辑电路46的第一控制输入端。该定时控制信号是经定时控制总线38提供的。寄存器交换逻辑电路46提供分别标为"选通A"和"选通B"的第一和第二输出。选通A信号提供给选择器42第一控制输入端。信息总线A66双向耦合到选择器42。选择器42的输出耦合到数据缓冲器40以传递所选择的多个信号。同样,选通B信号提供给选择器44的第一输入端。信息总线B64双向耦合到选择器44。选择器44的一个输出耦合到数据缓冲器40以传递所选择的多个信号的第二部分。
图4更详细地说明了寄存器交换逻辑电路46。通常,寄存器交换逻辑电路46包括一个"与"门62、一个"与"门70、和一个倒相器68。VCCR信号提供给“与”门62的第一输入端及倒相器的一个输入端。倒相器68的输出提供给"与"门70的第一输入端。定时控制信号提供给“与”门62和“与”门70的第二输入端。结果总线120将来自ALU52标为"N"的信号提供给"与"门62和"与"门70的第三输入端。"与"门62的输出端提供选通A信号,"与"门70的输出端提供选通B信号。
模糊逻辑操作的执行过程中,数据处理***10的用户可使用带有助记REV(Rule EValualion))的指令对模糊输入执行规则评估步骤。如前所述,模糊输入是作为模糊化步骤的结果提供的,在该模糊化步骤中***输入信号被赋予对所定义的多个隶属组中每一个的隶属程度。在这里所述本发明的实施中,执行REV指令前将赋予模糊输入的每个隶属程度存储在数据处理***10的内存储器32中的预定存储位置。在由J.Greg Viot,James M.Sibigtroth,和James L. Broseghini提交的题为"模糊逻辑操作过程中在一个组中确定隶属的电路和方法",序列号为07/899,975的相互参考未决专利申请中更详细地揭示了为多个模糊输入赋予各个隶属程度。
这里所描述的实例中,假设在第一和第二***输入的模糊化过程中使用两组隶属组。两组中的第一组设置被分成冷、凉、暖和热隶属组的温度测量结果。模糊化时,凉隶属组中第一***输入的隶属程度用标为T凉的变量表示。同样,冷、暖和热隶属组中第一***输入的隶属程度分别用语言上对应的变量T冷、T暖和T热之一表示。
两组中的第二组设置被分成低、中、高隶属组的气压测量结果。模糊化时,低、中、和高隶属组中第二***输入的隶属程度用语言上对应地标为P低、P中和P高的变量之一表示。***输入模糊化之后,各相应隶属组中第一和第二***输入的隶属程度存储在存储器中的预定位置。另外,必须评估规则以提供适当的动作。假设该实例中所评估的三个规则具有下列形式:
(1)规则1:如果温度为凉(T凉)并且气压为低(P低),则
(动作1)和(动作2);
(2)规则2:如果温度为暖(T暖)并且气压为中(P中),则
(动作3);和
(3)规则3:如果气压为中(P中),则(动作3)。
应指出,每个规则所具有的形式是通常所应具有的形式:
(4)如果(模糊输入1)和(模糊输入2),则(动作X)和(动作Y)。
规则评估过程中,首先评估规则的"如果"部分以确定最小隶属程度值。规则的"如果"部分包括模糊输入1的值和模糊输入2的值。确定规则强度的常用方法是确定所评估模糊输入的最小隶属程度。然而,也存在其它实施方法。例如,可将规则强度作为其每个前提的隶属程度总和计算。同样,可以任何计算形式乘或处理该隶属程度以确定规则强度。
在该实施方法中,该规则强度仅与最弱的分量一样强。最弱的隶属程度值被用来确定规则的"则"部分中所规定的每个动作的规则强度值。形式(4)所示的规则中,将与模糊输入1和模糊输入2值最小值对应的规则强度分别存储在内存储器32中由动作X和动作Y值的地址所指向的第一和第二地址位置。与预定的多个动作值之一对应的每个规则强度被用于提供与各个动作对应的模糊输出值。然后可将该模糊输出值去模糊化以执行由用户规定的操作。虽然形式(4)中仅提供两个模糊输入值和两个动作输出值,也可提供更多或更少的值。数据处理***10的用户确定规则的形式并可设置任何数量的模糊输入或所执行的动作。
另外,当评估多于一个规则时,存在将一个动作赋予多于一个规则强度的可能性。这种情况下,应将具有较大值的规则强度赋予该动作。因此,将该动作赋予最大值的规则强度。
这里所述本发明的实施中,内存储器32通常用作存储存储器。然而,也可使用数据处理***10外部的其它存储电路(未示出)。外部存储电路的实施和使用在数据处理领域中是已知的并且对本领域普通技术人员应是显而易见的。在该实施中,每个模糊输入以下列形式存储在内存储器32中:
存储地址 | 模糊输入 | 注释 |
$1000 | $00 | T冷 |
$1001 | $33 | T凉 |
$1002 | $CC | T暖 |
$1003 | $00 | T热 |
$1004 | $00 | P低 |
$1005 | $FF | P中 |
$1006 | $00 | P高 |
如数组1所说明的,对于温度和气压这两个***输入,将表示为"模糊输入"的隶属程度提供给相对于每个***输入的每个隶属组。如前面参考图1所描述的,第一***输入是华氏58度的温度,将58度的华氏温度模糊化以便在冷和热隶属组中的隶属程度为$00,在凉隶属组中的隶属程度为$33,和在暖隶属组中的隶属程度为$CC。如数组1所示,T冷和T热两个变量的值为$00,表示第一***输入不在这两个隶属组的任何一个之中。然而,第一***输入具有带$33值的T凉和带$CC值的T暖。因此,第一输入在凉隶属组中的隶属程度为$33,在暖隶属组中的隶属程度为$CC。
同样,将第二输入模糊化以表示在低和高这两个气压隶属组中隶属程度为$00。因此,P低和P高两个变量的值为$00,表示第二输入不包括在这两个隶属组的任何一个之中。然而,第二输入在中度隶属组中的隶属程度为$FF,因此,P中变量的值为$FF
如同模糊输入,所评估的每个规则(规则1至规则3)也存储在内存储器32的规则数组中。图5中以可变格式说明了这样一个规则数组。对于每个规则,提供模糊输入和模糊输出两者的地址位置。以图5的形式存储模糊输入和模糊输出的地址并参考诸如前面数组1所示的数据值表。同模糊输入一样,与模糊输出对应的数据值表也提供在一个数组中,这里未详细示出。
规则数组的起始位于由数据处理***10用户规定的预定位置。在这里所描述以及图5说明的实例中,该预定地置等于$E000并在执行REV指令前存储在变址寄存器中。规则1的第一模糊输入的地址位于十六进制值地址$E000中,规则基准的始端。在该实例中,T凉是规则1的第一模糊输入并且地址$1001存储在规则数组的地址$E000。由于P低值是规则1的第二模糊输入,地址$1004存储在规则数组的地址$E002。
对应于可变格式的规则基准,为从模糊输出中分离模糊输入,将带有$FFFE值的缓冲器存储在规则数组的地址$E004中。此后,用带有$FFFE值的缓冲器从规则2的模糊输入中分离出规则1的模糊输出。通过重复用带有$FFFE值的缓冲器从任何数量的模糊输出中分离出任何数量的模糊输入的这种格式直到将多个规则的每个模糊输入和输出存储在存储器为止。此时,规定的缓冲值表明规则基准结束。在这里描述的实例中,由$FFFF值表示规则基准结束。虽然用相同的缓冲值从每个规则的模糊输出分离模糊输入,数据处理***10的设计者可使用任何数量的缓冲器。
通过按该顺序排列每个规则的模糊输入和输出,可利用作为每个模糊输入和输出部分之间分隔标志的缓冲器地址依次评估每个规则。因此,该规则不必遵循带有规定数量模糊输入和模糊输出(动作)的固定格式。这样可更灵活地针对模糊***提供规则。如在规则1、规则2、和规则3[(1)、(2)和(3)]中所看到的,模糊输入和相应动作的数量在本发明的实施中可在规则与规则间变化。
反之,接下来参考图7,该图说明两个输入和一个输出这种固定格式中的存储规则数组。请注意,可通过任何预定数量的模糊输入和模糊输出地址指针实施固定格式。这种情况下,通过以与图5说明的可变格式规则数组同样实施的以结束标记706结束的固定格式规则基准实现两个输入701和702,然后是一个输出703,其次是两个输入704和705等。支持一个特定的固定格式规则基准除提供执行和存储效率外具有下列优点。第一,可用固定格式表示所有规则基准。第二,固定格式规则基准的控制表面可视,例如,通过三维图表两输入、和一输出规则基准是可视的。第三,可将复杂***分解成两输入、一输出的子***以避免规则矩阵的组合激增。
为了向程序员、用户、或***提供固定或可变格式规则基准之间的选择余地,根据图3说明的特征码寄存器60内实施的特征码比特(Z比特)的状态引入并采用一个转换机构作为微码分支(microcode branch)。在本发明的一个实施例中,由于规则评估指令执行过程中不需将Z比特用于其常用目的,Z比特(Z(零)特征码比特)被用来发微码信号以使用固定或可变格式的规则基准。
接下来参考图8,该图是描述转换机构和固定格式规则基准实施的流程图。该过程在步骤801开始,对REV指令解码。接下来,在步骤802,确定是否已经做出采用可变格式规则基准或固定格式规则基准的预定。该过程是通过确定Z比特(ZCCR)是否等于0或1的微码分支指令进行的。该Z比特可位于特征寄存器60中。
如果Z比特等于0,该程序则进展到步骤803,根据图6所示流程图利用可变格式规则基准处理模糊逻辑操作。
如果Z比特等于1,程序则进展到步骤804-810(将在下文详述)以通过诸如图7所说明的固定格式规则基准实施模糊逻辑操作。步骤804-810说明作为两输入一输出结构的固定格式。然而,如上面所指出的,可对固定格式编程以具有任何预定数量的模糊输入和模糊输出。
步骤804-810的操作除不需评估是否已经遇到各种$FFFE缓冲器外与图6中说明的那些步骤相同。
为开始执行REV指令,将规则的每个模糊输入和输出以具有图5和7所说明的预定格式之一的规则数组存储在存储器中。另外,规则数组的起始地址存储在执行单元14的变址寄存器中,并且每个模糊输出被赋予一个十六进制值$00。最后,为准备处理可变格式规则基准,通过强制ZCCR=0(可变格式规则基准)和VCCR=0(图6中步骤606和613正确操作所需的先决条件),使累加器58初始化成$FF。另一方面,为准备处理固定格式规则基准,通过强制ZCCR=1(固定格式基准),使累加器58初始化成$00。然后根据图6和8说明的规则基准之一执行REV指令。这些流程图将提供可变或固定格式规则基准的REV指令执行期间所执行的每个函数的简要概述。下面更详细地说明REV指令执行实例过程中的每个函数。
如图8所示,REV指令执行的第一步是在对REV指令解码时进行的。
如果该程序进展到步骤803,则遵循图6中的程序(步骤601)。用变址寄存器中所存储的此处称之为"X"的地址取出第一规则操作数(步骤602)。然后将地址X增加到下一个地址位置(X+2)点(步骤603)。
测试第一规则操作数的值以确定该值是否等于十六进制值$FFFE(步骤604)。如果该值等于十六进制值$FFFE,则触发VCCR信号以指示缓冲值被恢复(步骤605),如果VCCR信号触发后等于零(步骤606),则评估规则的第一模糊输入并且应将累加器58初始化为十六进制值$FF(步骤607)。否则,不改变累加器58的值。
如果第一规则操作数的值不等于$FFFE(步骤604),则测试该值以确定其是否等于十六进制值$FFFF(步骤608)。如果该值等于十六进制值$FFFF,则已经访问规则数组结尾并终止REV指令(步骤609)。
然而,如果第一规则操作数的值不等于$FFFF,则用第一规则操作数的值从内存储器32(步骤610)访问模糊输入或模糊输出值。然后从该模糊输入或输出值减去累加器58的内容以提供有符号结果(步骤611)。用N信号的值表示结果的符号。
如果N信号等于零(步骤612),则不应交换累加器58和数据划冲器40的内容并且变址寄存器中存储的地址访问下一个规则操作数(步骤602)。然而,如果N信号等于1,则测试VCCR信号(步骤613)。
如果VCCR信号等于0,应由第一规则操作数访问的模糊输入值的值替换累加器58的内容(步骤615)。(步骤614用来表示指示模糊输出评估的VCCR被肯定时的处理部分,如下面更详细描述的)。因此,用最小函数确定将赋予到当前所评估规则的模糊输出的规则强度。接下来,用变址寄存器中存储的地址访问下一个操作数(步骤602)。
图6说明的流程提供了采用可变格式规则基准时数据处理***10中REV指令执行的概述。如上面所指出以及下面更详细描述的,根据图8所说明的流程图的固定格式规则基准的实施与可变格式规则基准的实施相似,其主要区别之一是所采用的缓冲器不需将模糊输入和输出分离。
现在更详细地给出本发明的实例。
REV指令的基本操作如下:从存储器恢复每个前提值并确定最小前提值,然后恢复每个结论值并与该规则强度值比较,当且仅当预存结论值小于该规则强度值时以该规则强度值在存储器中替换。
如前面所描述的,执行REV指令之前由数据处理***10的用户将该多个模糊输入存储到内存储器32中的第一预定存储位置。无论采用固定格式或可变格式的规则基准其都是正确的。按照数组1存储该多个模糊输入。另外,以图5和7中所说明的形式之一还将用于评估该多个模糊输入的每个规则存储在内存储器32中的第二预定存储位置。虽然这里未详细示出,与模糊输出对应的每个规则强度值也以与数组1相似的数组存储在内存储器32中的起始地址$2000。REV指令执行前数据处理***10的用户将十六进制值$00赋予所有模糊输出的值。另外,REV指令执行前数据处理***10的用户将累加器58初始化成针对可变规则基准的十六进制值$FF或针对固定规则基准的$00。如前所述,当累加器58初始化成表示可变格式规则基准的$FF时,否定VCCR信号并否定ZCCR信号。当采用固定规则基准时,将累加器58初始化成肯定ZCCR信号的$00(VCCR的值"不关心"固定规则基准)。
操作期间,用户可通过外部或内存储器32中存储的软件程序向数据处理***10提供REV指令。如果由外部信源向数据处理***10提供REV指令,则应经外部数据总线33向外部总线接口30输入REV指令。此后,外部总线接口30经内部数据总线34依次向CPU12提供REV指令。如果由内存储器32中的软件程序提供REV指令,则经内部数据总线34向CPU12提供REV指令。在CPU12中,执行单元14响应从总线控制逻辑电路16、控制单元20、和序列发生器22中的每一个接收的控制信号向指令解码逻辑电路18提供REV指令。另外,CPU12的每个部件经定时控制总线38接收定时控制信号。该定时控制信号的路由选择和使用在数据处理领域是已知的,这里不再详细讨论。
指令解码逻辑电路18对REV指令解码以便提供正确执行REV指令所需的多个控制和信息信号。根据REV指定的接收和解码,执行单元14起动评估内存储器32中存储的多个模糊输入所需的步骤。图2中CPU12的控制单元20和序列发生器22共同提供一系列序列控制信号,该序列控制信号是将指针从内存储器32向执行单元14转移到模糊输入和模糊输出二者的地址所必需的。
为开始执行REV指令,执行单元14中的变址寄存器(未示出)向规则基准的始端提供一个指针。变址寄存器和其在数据处理***中的使用在数据处理领域中是已知的,因此这里不再详细说明。该指针指向内存储器32中规则基准的起始地址,该地址存储有凉温度隶属组中第一输入的隶属程度。该地址表示存储规则1的第一模糊输入值的地址。相对于图5和7所描述的实例,十六进制地址$1001或第一输入指针存储在内存储器32的地址$E000处。
在图6所述可变格式规则基准的情形下,当从该规则数组访问规则1的第一模糊输入值的地址时,将该地址经外部信息总线41提供给数据缓冲器40。此后数据缓冲器40将该地址值提供给比较器72,在此将该地址值与十六进制值$FFFE比较。如果该地址值等于$FFFE,则指向该缓冲器地址并应触发VCCR比特。通常,用该VCCR比特表示带符号算术计算中的溢出错误。然而,在本发明的该实施例中,设定特征码寄存器中的溢出比特(VCCR)表示所访问的地址是否对应于模糊输入地址、缓冲器地址、或模糊输出地址之一。当访问与第一规则的模糊输入对应的地址时,该\VCCR比特保持否定。如果所访问的地址是一个缓冲器值,则触发VCCR比特。这里所描述的实例中,该缓冲器值等于十六进制值$FFFE。另外,当访问模糊输出的地址时该VCCR比特保持肯定。
当该地址值等于$FFFE时,比较器72肯定该触发信号。特征码逻辑电路47接收该触发信号并随后将所肯定的特征码信号提供给特征码寄存器60。而特征码寄存器60因此要么肯定要么否定VCCR信号。
这里所描述的实例中,从规则数组中规则1第一模糊输入值的地址,即地址$E000访问地址值$1001。由于$1001不等于$FFFE,比较器72不肯定该触发信号。因此,由特征码逻辑电路47提供的特征码信号不能使特征码寄存器60触发VCCR信号。
在下一个步骤中(步骤608),比较器72将规则1第一模糊输入的地址值与十六进制值$FFFF比较。如果该地址值等于$FFFF,则指向规则数组地址的结尾并终止执行REV指令(步骤609)。
这里,下面的讨论与根据图5和6的可变格式规则基准的实施有关。讨论完带有可变格式规则基准的模糊逻辑***的实施后,将讨论根据图7和8说明的固定格式规则基准的实施。
当从内存储器32访问地址$1001时,提供凉温度隶属组中第一***输入的隶属程度。如数组1所示,该隶属程度等于十六进制值$33。内存储器32将该信息经内部数据总线34提供给执行单元14的数据缓冲器40。外部信息总线41提供经内部地址总线36和内部数据总线34传送的信息。
为了后续处理而将第一模糊输入($33)存储在数据缓冲器40中。为确定规则1前提的最小隶属程度,从第一模糊输入($33)减去累加器58($FF)的当前内容。为执行该功能,将累加器58的内容提供给信息总线A66并将数据缓冲器40的内容提供给信息总线B64。另外,将多个控制和定时信号经微ROM控制总线65提供给执行单元14。该多个控制和定时信号是作为由图2的指令解码逻辑电路18解码REV指令的结果提供的。
在执行单元14中,在根据经微ROM控制总线65传送的定时信号所确定的时刻将第一模糊输入提供给A-输入多路复用器50并将累加器58的内容提供给B-输入多路复用器56。B-输入控制电路54将"控制B"信号提供给B-输入多路复用器56的控制操作。该实例中,控制B信号允许B-输入多路复用器46传递一个未改变的第一模糊输入值到ALU52。同样,A-输入控制电路54将"控制A"信号提供给A-输入多路复用器50。控制A信号允许A-输入多路复用器50否定累加器58的内容,以便在ALU52中从第一模糊输入减去该内容。
根据第一模糊输入值和所否定的累加器内容值的接收,ALU52从第一模糊输入($33)减去累加器58($FF)的内容以便提供一个结果。该结果为负数($33-$FF=-$CC)并肯定N信号。经结果总线120传送所肯定的N信号。如果该结果已经为正,则不应设定N标记并应经结果总线120提供所否定的N信号。不需要减法运算的数值结果并因此在其后的算术运算过程中写入。
寄存器交换逻辑电路46允许用户确定一个规则每个模糊输入中的最小隶属程度并在其后使用该最小隶属程度作为由该规则规定的每个动作的规则强度。操作期间,寄存器交换逻辑电路46依据VCCR和N信号值可以或不可以转换累加器58和数据缓冲器40的内容。
寄存器交换逻辑电路46接收VCCR信号、N信号和定时控制信号以控制累加器58和数据缓冲器40的内容。如前所述,当将模糊输入值从内存储器32提供给执行单元14时,VCCR信号保持否定。另外,ALU52提供该N信号以指示从数据缓冲器40的内容减去累加器58的内容的结果是正或负。如果累加器58的内容大于存储在数据缓冲器40中的第一模糊输入,则N信号为肯定以表示一个负结果。反之,如果第一模糊输入小于累加器58的内容,该N信号保持否定以表示一个正结果。在由定时电路28确定的适当时间,肯定该定时控制信号以使寄存器交换逻辑电路46将累加器58的内容传送到数据缓冲器40,将数据缓冲器40的内容传送到累加器58,或使累加器58和数据缓冲器40二者的内容相同。
在评估规则1的"如果"部分的过程中,当从第一模糊输入减去累加器58的内容时,产生负结果($33-$FF=-$$CC)。因此,N信号保持肯定。另外,VCCR信号为否定以指示模糊输入正在从内存储器32恢复的。当定时控制信号为肯定时,"与"电路62的输出等于零并且选通A不被肯定。然而,倒相器68的输出为肯定并且"与"电路70能够肯定选通B信号。当选通B信号为肯定时,选择器44可从数据缓冲器40向累加器58传送数据。此刻,最小隶属程度为$33并存储在累加器58中。
同样,将规则1的第二模糊输入提供给数据缓冲器40。第二模糊输入是第二***输入在低气压P低隶属组中具有的隶属程度。在该实例中,该隶属程度为十六进制值$00。另外。内存储器32经外部信息总线41向执行单元14的数据缓冲器40提供第二模糊输入的隶属程度。
为确定最小隶属程度,从第二模糊输入减去第一模糊输入。在执行单元14中,在根据经微ROM控制总线65传送的定时信号确定的时刻将第一模糊输入提供给A输入多路复用器50并将第二模糊输入提供给B输入多路复用器56。B-输入控制电路54将"控制B"信号提供给B-输入多路复用器56的控制操作。在该实例中,控制B信号允许B-输入多路复用器46将未改变的第二模糊值传递到ALU52。同样,A-输入控制电路54将"控制A"信号提供给A-输入多路复用器50。控制A信号允许A-输入多路复用器50否定第一模糊输入,以便在ALU52中从第二模糊输入减去该内容。
根据第二模糊输入值和所否定的第一模糊输入值的接收,ALU52从第二模糊输入值减去第一模糊输值以便再提供一个负结果。因此,肯定N信号。另外,VCCR信号为否定以表示该模糊输入是从内存储器32恢复的。
当定时控制信号为肯定时,"与"电路62的输出等于零并且选通A信号不肯定。在该第一实例中,"与"电路70肯定选通B信号。当选通B信号为肯定时,选择器44可从数据缓冲器40向累加器58传送数据。因此,此刻的最小隶属程度为$00并存储在累加器58中。
在规则1的模糊输入的存储位置结尾,由比较器72识别缓冲器地址。比较器72向特征码逻辑电路47提供肯定的触发信号。然后特征码逻辑电路47向特征码寄存器提供特征码信号以触发特征码寄存器60中的V比特以便提供一个肯定的VCCR信号。如前所述,该VCCR信号为肯定以表示规则1模糊输出的地址是从内存储器32恢复的下一个地址。这里所描述的实例中,当从内存储器32恢复规则1模糊输出的地址时,在执行REV指令"则"部分的过程中肯定该VCCR信号。
当选择多个模糊输出之一时,进行最大操作。因此,对于REV指令的"则"部分,将最大规则强度赋予每个模糊输出。如前所述,应将最大规则强度赋予每个模糊输出。因此,将存储在累加器58中作为REV指令"如果"部分执行结果的最小隶属程度值与当前存储在内存储器32中模糊输出地址的规则强度值比较。在REV指令"则"部分的执行过程中当前规则强度值驻存在累加器58中。最大规则强度值总是存储在内存储器32中。如前面的讨论的,在比较每个模糊输入的隶属程度以确定最小值的REV指令的第一部分计算最小隶属程度值。
该模糊输入的最小值保持在累加器58中。然后从规则数组提供到当前所评估规则的模糊输出的地址指针。执行单元14中的变址寄存器(未示出)增加该指针指向第一模糊输出的地址。该实例中,指针增加到地址$E006。在地址$E006,提供第一模糊输出地址,即十六进制值地址$2000。由于数据处理***10用户在REV指令执行前将一个十六进制值$00赋予模糊输出数组存储的所有数据值,当访问地址$2000时内存储器32提供十六进制值$00。然后经外部信息总线41将模糊输出值($00)提供给存储用于后续操作的模糊输出值的数据缓冲器40。
为确定最小规则强度值从数据缓冲器40的内容减去累加器58的内容以确定哪个值更大。换句话说,从当前存储在规则1第一模糊输出地址位置中的规则强度值减去规则评估步骤"如果"部分的过程中所计算的最小隶属程度值。为执行该功能,将累加器58的内容提供给信息总线A66并将数据缓冲器40的内容提供给信息总线B64。另外,将多个控制和定时信号经微ROM控制总线65提供给执行单元14。该多个控制和定时信号是作为由图2的指令解码逻辑电路18解码该REV指令的结果提供的。
在执行单元14中,在根据经微ROM控制总线65传送的定时信号确定的时刻将累加器58中存储的最小隶属程度值提供给A-输入多路复用器50并将数据缓冲器40中存储的当前模糊输出值提供给B-输入多路复用器56。B-输入控制电路54向B-输入多路复用器56的控制操作提供控制B信号。在该实例中,控制B信号允许B-输入多路复用器从内存储器32向ALU52传递未改变的模糊输出值。同样,A-输入控制电路48向A-输入多路复用器40提供控制A信号。该控制A信号使A-输入多路复用器50针对ALU52中的后续减法运算否定累加器58的内容。
根据A-输入多路复用器50和B输入多路复用器56二者接收的这些值,ALU52从与规则1第一模糊输出对应的预定存储位置存储的该模糊输出值减去累加器58中存储的最小隶属程度值。这里所描述的实例中,累加器58中存储的值为十六进制值$00。由于规则1的每个模糊输出被赋予一个十六进制值$00,由ALU52提供的结果为$00。由于该答案不是负数,N信号保持否定并在此后提供给寄存器交换逻辑电路46。
如前面所讨论的,特征码寄存器60将VCCR信号提供给寄存器交换逻辑电路46。另外,由外部信源,即定时电路28将定时控制信号提供给寄存器交换逻辑电路46。根据VCCR、N、和定时控制信号的每一个的接收,寄存器交换逻辑电路46对选通A和选通B信号全部否定。因此,选择器42和44都不能选通并且不能在数据缓冲器40和累加器58之间传送数据。因此,不改变内存储器32中第一模糊输出的规则强度并继续为十六进制值$00。
同样,确定规则1第二模糊输出的规则强度过程中,累加器58中存储的值和从内存储器32恢复的规则强度值二者都是十六进制值$00。因此,ALU52再次否定N信号并且此后寄存器交换逻辑电路46否定选通A和选通B信号。因此,对规则1进行评估之后,每个所规定的模糊输出,即动作1和动作2的规则强度为十六进制值$00。
另外,在规则1的模糊输出存储地址的结尾,由比较器72识别缓冲器地址。比较器72向特征码逻辑电路47提供肯定的触发信号。特征码逻辑电路47向特征码寄存器提供特征码信号以触发特征码寄存器60中的V比特以便提供一个否定的VCCR信号。如前所说明的,该VCCR信号为否定以表示规则2的模糊输入的地址是从内存储器32恢复的下一个地址。这里所描述的实例中,当从内存储器32恢复规则2模糊输入的地址时,在REV指令"如果"部分的执行过程中否定该VCCR信号。当否定该VCCR信号时,再次将累加器58的内容初始化成$FF值。
继续执行REV指令需要评估规则2。如前面所说明的,控制单元20从内存储器32向执行单元14提供传送规则2每个模糊输入所需的一系列后续控制信号。规则2的评估过程中,内存储器32提供其中存储暖温度隶属组中第一***输入隶属程度的第一地址。这里描述的实例中,该地址指向内存储器32中的十六进制地址$1002。当从内存储器32访问地址$1002时,将为十六进制值$CC的隶属程度经内部数据总线34提供给数据缓冲器40。
正如规则1评估过程中,将规则2的第一模糊输入与累加器58的初始内容比较。当识别第二缓冲器地址时再次将累加器58初始化成十六进制值$FF。因此,根据前面所述方法检测最小值并将$CC存储在累加器58中。
同样,将规则2的第二模糊输入提供给数据缓冲器40。该第二模糊输入是第二***输入在中气压隶属组中具有的隶属程度。该实例中,该隶属程度为十六进制值$FF。
为确定最小隶属程度,ALU52从第二模糊输入减去第一模糊输入以提供正$33的结果。由于该结果为正,清除N标记并经结果总线120提供否定的N信号。
此后,寄存器交换逻辑电路46接收VCCR信号、N信号和定时控制信号,以便控制累加器58和数据缓冲器40内容的交换。寄存器交换逻辑电路46否定选通A和选通B信号。保持累加器58中存储的最小隶属程度为十六进制值$CC。
在规则2模糊输入的存储地址结尾,由比较器72识别缓冲器地址。比较器72向特征码逻辑电路47提供肯定的触发信号。特征码逻辑电路47向特征码寄存器提供该特征码信号以触发特征码寄存器60中的V比特以便提供一个肯定的VCCR信号。如前所述,该VCCR信号为否定表示规则2模糊输出的地址是从内存储器32恢复的下一个地址。
规则2模糊输入的最小值保持在累加器58中。然后从该规则数组提供当前正在评估的规则的模糊输出。执行单元14中的变址寄存器增加该指针指向第一模糊输出的地址。该实例中,指针增加到地址$E012。在地址$E012,提供第一模糊输出的地址,即十六进制地址$2002。由于数据处理***10用户在REV指令执行前将十六进制值$00赋予模糊输出数组中存储的所有数据值,当访问地址$2002时内存储器32提供十六进制值$00。然后经外部信息总线41向存储用于后续操作的模糊输出值的数据缓冲器40提供模糊输出值($00)。
然后ALU52从数据缓冲器40中存储的十六进制值$00减去累加器58中存储的十六进制值$CC。其结果是负$CC值并肯定N信号。当将N、VCCR、和定时信号分别提供给寄存器交换逻辑电路46时,寄存器交换逻辑电路46肯定选通A信号并否定选通B信号。
当肯定选通A信号时,选择器42将累加器58的内容传送到数据缓冲器40。数据缓冲器40临时存储由累加器58提供的前一个最小隶属程度值($CC)作为最大规则强度值。另外,数据缓冲器40将该最大规则强度值传送到规则2第一模糊输出的地址位置($2002)。因此,在REV指令执行过程中$CC值是内存储器32中地址$2002处动作3的当前规则强度值。
另外,在规则2模糊输出的存储位置结尾,由比较器72识别缓冲器地址。比较器72向特征码逻辑电路47提供肯定的触发信号。特征码逻辑电路47向特征码寄存器提供该特征码信号以触发特征码寄存器60中的V比特以便提供一个否定的VCCR信号。如前所述,该VCCR信号为否定表示规则3模糊输入的地址是从内存储器32恢复的下一个地址。这里所描述的实例中,当从内存储器32恢复规则3模糊输入的地址时,REV指令"如果"部分的执行过程中否定该VCCR信号。当否定该VCCR信号时,再次将累加器58的内容初始化成$FF值。
继续执行REV指令开始评估规则3。如前所述,CPU12的控制单元20从内存储器32向执行单元14提供传送规则3每个模糊输入所需的一系列后续控制信号。规则3的评估过程中,内存储器32提供其中存储中气压隶属组中第二***输入隶属程度的第一地址。这里描述的实例中,该地址指向内存储器32中的十六进制地址$1005。当从内存储器32访问地址$1005时,将为十六进制值$FF的隶属程度经内部数据总线34提供给数据缓冲器40。
如前所述,当VCCR信号为否定时将累加器58的内容初始化成$FF。当由ALU52从累加器58的内容减去数据缓冲器40中存储的隶属程度时,产生的结果为零。由于该结果不是负数,不肯定N信号。因此,寄存器交换逻辑电路56不肯定选通A或选通B信号并且不在数据缓冲器40和累加器58之间传送信息。
在规则3模糊输入的存储位置结尾,由比较器72识别缓冲器地址。比较器72向特征码逻辑电路47提供肯定的触发信号。特征码逻辑电路47向特征码寄存器60提供该特征码信号以触发特征码寄存器60中的V比特以便提供一个肯定的VCCR信号。如前所述,该VCCR信号为肯定表示规则3模糊输出的地址是从内存储器32恢复的下一个地址。
此后,从内存储器32访问规则3的模糊输出地址并将十六进制值$CC提供给数据缓冲器40。十六进制值$CC是作为规则2评估结果提供的,其中向模糊输出,即动作3赋予十六进制$CC的规则强度值。因此,十六进制值$CC提供给数据缓冲器40。
ALU52从数据缓冲器40中存储的十六进制值$CC减去累加器58中存储的十六进制值$FF,其结果为负值$-33。当该结果提供给寄存器交换逻辑电路46时,寄存器交换逻辑电路46肯定选通A。因此,选择器42可从累加器58向数据缓冲器40传送数据。数据缓冲器40向规则3模糊输出,即动作3输出的地址位置传送最小隶属程度值。因此,十六进制值$FF是REV指令执行过程中此时动作3的当前规则强度值。
评估规则3后,由比较器72检测指示所评估规则数组结尾的规定缓冲器地址并终止该REV指令。此时,已对规则1、2和3的每一个进行评估并且已将规则强度值赋予了每个对应的模糊输出。这里所描述的实例中,已经分别赋予动作1和2的规则强度值是十六进制值$00。另外,赋予动作3的规则强度值是十六进制值$FF。然后将每个动作作为模糊输出提供给所使用的去模糊化程序以确定数据处理***10的适当动作。例如,可将动作3去模糊化以打开阀门或开通电扇。另外,可将动作1至3的规则强度去模糊化以确定电扇开通或阀门打开的程度。去模糊化操作在数据处理领域是已知的,因此这里不再详细说明。
因此,数据处理***10中REV指令的执行过程中,以少量的附加电路并且快速地评估每一个规则1、规则2、和规则3。图3中所示的大量电路通常用于数据处理器中一般目的的处理。微ROM中的少量附加电路和少量附加指令解码逻辑电路是实施本发明所必需的。另外,在执行单元14中,除通常所需的逻辑电路外还需要比较器72和寄存器交换逻辑电路46。
相对于图8,在步骤804中,用变址寄存器访问前三个规则操作数、或指针(701、702、703),以便随后访问内存储器32中存储的两个模糊输入和该模糊输出。在步骤805中,更新变址寄存器中的地址。在步骤806中,比较器72将规则1第一模糊输入的地址值与十六进制值$FFFF比较。如果该地址值等于$FFFF,则指向规则数组地址的结尾并终止执行REV指令(步骤810)。
图8中说明的步骤807-809不需采用VCCR比特和与其相关的处理。然而,固定格式规则基准的实施要以相同方式利用图1-3中说明的硬件。
步骤806后,如果仍未到达结束标记706,该程序则进展到步骤807,利用操作数1、2和3分别为一个规则取出两个模糊输入1和2和该模糊输出。
此后,在步骤808,执行一个或多个指令以计算新的模糊输出。可以以与上面图6描述的相同方式进行。其实质在于比较两个模糊输入从中选择最小值。然后,将该最小值与所恢复的模糊输出值比较,并选择两个值中较大的一个作为所计算的模糊输出。此后,步骤809,将新模糊输出写入由规则操作数3指示的位置。然后程序返回到步骤804针对下一组的两个模糊输入和一个模糊输出继续进行模糊逻辑操作。
这里所述的本发明的实施仅是通过实例给出的。然而,还存在许多其它实施方式执行这里所描述的功能。例如,可以将所评估规则的规则基准的起动作为REV指令的操作数提供。另外,可使用数据处理***10外部的存储电路存储规则评估过程中使用的规则和模糊输入中的每一个。同样,虽然在本发明的实施中采用N和VCCR信号控制寄存器交换逻辑电路46的操作,也很容易将数据处理***10中的其它信号应用于此。另外,寄存器交换逻辑电路56中使用的逻辑门电路也可由诸如"与非"、"或"、"或非"、或"异或"门之类的其它逻辑电路代替。
至此已描述了本发明的原理,本领域的技术人员很清楚地理解,该描述仅是通过实例进行的而不是对本发明范围的限定。另外,附属权利要求的目的是覆盖落入本发明精神和范围内的所有改进。
虽然已经详细描述了本发明及其优点,应该理解,在不脱离由附属权利要求定义的本发明精神和范围的情况下可对本发明进行各种改进、代替和替换。
Claims (10)
1.一种用于操作数字数据处理器以执行模糊规则评估操作的方法,所述方法其特征在于包括步骤:
解码规则评估指令;
确定是固定格式规则基准还是可变格式规则基准与所述规则评估指令一起使用;
如果确定所述固定格式规则基准与所述规则评估指令一起使用则用所述固定格式规则基准处理所述规则评估指令;和
如果确定所述可变格式规则基准与所述规则评估指令一起使用则用所述可变格式规则基准处理所述规则评估指令。
2.根据权利要求1所述的方法,其特征在于如果确定所述固定格式规则基准与所述规则评估指令一起使用则用所述固定格式规则基准处理所述规则评估指令的所述步骤进一步包括步骤:
1)从预定数量的存储位置恢复地址值;
2)将所述地址值之一与一个边界值比较,并且如果所述地址值之一与所述边界值匹配则终止所述模糊规则评估操作;
3)如果所述模糊规则评估操作未终止,从由所述地址值所指向的存储位置恢复一个或多个模糊输入值和一个或多个模糊输出值;和
4)用所述一个或多个模糊输入值和所述一个或多个模糊输出值计算一个模糊输出值。
3.根据权利要求2所述的方法,其特征在于所述计算步骤进一步包括步骤:
确定所述模糊输入值的最小值;和
确定所述模糊输入值的所述最小值和步骤(3)中恢复的所述模糊输出值之间的最大值。
4.根据权利要求1所述的方法,其特征在于如果确定所述可变格式规则基准与所述规则评估指令一起使用则用所述可变格式规则基准处理所述规则评估指令的所述步骤进一步包括步骤:
1)从一个存储位置恢复一个地址值;
2)将该地址值与第一边界值比较,并且如果该地址值与第一边界值匹配则终止模糊规则评估操作;
3)将该地址值与第二边界值比较,并且如果该地址值与第二边界值匹配则改变第一标记信号的状态;
4)如果该地址值与第一和第二边界值都不匹配并且如果该第一标记信号处在第一状态,从由该地址值规定的存储位置恢复一个隶属函数值,并使用该隶属函数值执行第一算术运算;
5)如果该地址值与第一和第二边界值都不匹配并且如果该第一标记信号处在第二状态,从由该地址值规定的存储位置恢复一个结论值,并使用该结论值执行第二算术运算和有选择地将第二算术运算的结果写入由该地址值规定的存储位置;
6)重复步骤1)-5)。
5.根据权利要求4所述的方法,其特征在于执行第一算术运算的步骤进一步包括步骤:
从该隶属函数值减去数据寄存器中包含的值;和
如果减法运算步骤得到的结果为负,则用该隶属函数值替代数据寄存器中包含的值。
6.根据权利要求5所述的方法,其特征在于执行第二算术运算的步骤进一步包括步骤:
从数据寄存器中包含的值减去该结论值;和
如果减法运算步骤得到的结果为正,则用该数据寄存器中包含的值替代由该地址值规定的存储位置存储的结论值。
7.可适合在数据处理***中存储的计算机编程产品,所述可操作的计算机编程产品操作数字数据处理器以执行模糊规则评估操作,所述计算机编程产品的特征在于:
用于解码规则评估指令的指令装置;
用于确定是固定格式规则基准还是可变格式规则基准与所述规则评估指令一起使用的指令装置;
如果确定所述固定格式规则基准与所述规则评估指令一起使用则用所述固定格式规则基准处理所述规则评估指令的指令装置;和
如果确定所述可变格式规则基准与所述规则评估指令一起使用则用所述可变格式规则基准处理所述规则评估指令的指令装置。
8.根据权利要求7所述的计算机编程产品,其特征在于如果确定所述可变格式规则基准与所述规则评估指令一起使用则用所述可变格式规则基准处理所述规则评估指令的所述指令装置进一步包括步骤:
1)从一个存储位置恢复一个地址值的指令装置;
2)将该地址值与第一边界值比较,并且如果该地址值与第一边界值匹配则终止模糊规则评估操作的指令装置;
3)将该地址值与第二边界值比较,并且如果该地址值与第二边界值匹配则改变第一标记信号状态的指令装置;
4)如果该地址值与第一和第二边界值都不匹配并且如果该第一标记信号处在第一状态,从由该地址值规定的存储位置恢复一个隶属函数值,并使用该隶属函数值执行第一算术运算的指令装置;和
5)如果该地址值与第一和第二边界值都不匹配并且如果该第一标记信号处在第二状态,从由该地址值规定的存储位置恢复一个结论值,并使用该结论值执行第二算术运算和有选择地将第二算术运算的结果写入由该地址值规定的存储位置的指令装置。
9.一种数字数据处理器,可操作地执行模糊规则评估操作,所述处理其特征在于包括:
可操作的指令解码逻辑电路,用于对规则评估指令解码;和
可操作的执行单元,用于:
确定是固定格式规则基准还是可变格式规则基准与所述规则评估指令一起使用;
如果确定所述固定格式规则基准与所述规则评估指令一起使用则用所述固定格式规则基准处理所述规则评估指令;和
如果确定所述可变格式规则基准与所述规则评估指令一起使用则用所述可变格式规则基准处理所述规则评估指令。
10.根据权利要求7所述的处理器,其特征在于如果确定所述固定格式规则基准与所述规则评估指令一起使用,所述可操作执行单元执行下列功能:
1)在耦合到所述执行单元的内存储器中从预定数量的存储位置恢复地址值;
2)将所述地址值之一与一个边界比较,并且如果所述地址值之一与所述边界值匹配则终止所述模糊规则评估操作;
3)如果所述模糊规则评估操作未终止,在所述内存储器中从由所述地址值所指向的存储位置恢复一个或多个模糊输入值和一个或多个模糊输出值;和
4)用所述一个或多个模糊输入值和所述一个或多个模糊输出值计算一个模糊输出值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/570,454 US5684928A (en) | 1995-12-11 | 1995-12-11 | Circuit and method for evaluating fuzzy logic rules |
US08/570,454 | 1995-12-11 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1167299A true CN1167299A (zh) | 1997-12-10 |
Family
ID=24279709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN96120166A Pending CN1167299A (zh) | 1995-12-11 | 1996-10-21 | 用于评估模糊逻辑规则的电路和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5684928A (zh) |
EP (1) | EP0779576A1 (zh) |
JP (1) | JP3992771B2 (zh) |
KR (1) | KR100519862B1 (zh) |
CN (1) | CN1167299A (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0718753A1 (en) * | 1994-12-22 | 1996-06-26 | Motorola, Inc. | Data processing system for evaluating fuzzy logic rules and method therefor |
US6278986B1 (en) * | 1996-06-27 | 2001-08-21 | Yahama Hatsudoki Kabushiki Kaisha | Integrated controlling system |
KR200482821Y1 (ko) | 2015-03-31 | 2017-03-10 | 김재황 | 텐션장치가 구비된 전동식 차양막 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02140804A (ja) * | 1988-11-21 | 1990-05-30 | Maikomu Kk | プログラマブルロジック回路 |
JPH02273834A (ja) * | 1989-04-14 | 1990-11-08 | Omron Corp | ファジィ推論装置 |
AU8762391A (en) * | 1990-10-29 | 1992-05-26 | Omron Corporation | Device for performing fuzzy inference and method for monitoring operation thereof |
US5371832A (en) * | 1992-06-12 | 1994-12-06 | Siemens Aktiengesellschaft | Fuzzy logic controller having high processing speed |
US5263125A (en) | 1992-06-17 | 1993-11-16 | Motorola, Inc. | Circuit and method for evaluating fuzzy logic rules |
DE4225758C2 (de) * | 1992-08-04 | 1996-04-11 | Siemens Ag | Schaltungsanordnung mit einer Wirts-Recheneinheit (Host-CPU), einem Fuzzy-Logic-Coprozessor und einem Wissensbasis-Speicher |
US5561738A (en) * | 1994-03-25 | 1996-10-01 | Motorola, Inc. | Data processor for executing a fuzzy logic operation and method therefor |
KR960025151A (ko) * | 1994-12-14 | 1996-07-20 | 배순훈 | 퍼지 제어기의 최적 설계 방법 |
-
1995
- 1995-12-11 US US08/570,454 patent/US5684928A/en not_active Expired - Lifetime
-
1996
- 1996-10-21 CN CN96120166A patent/CN1167299A/zh active Pending
- 1996-11-19 JP JP32357896A patent/JP3992771B2/ja not_active Expired - Fee Related
- 1996-11-29 EP EP96119206A patent/EP0779576A1/en not_active Withdrawn
- 1996-12-09 KR KR1019960062967A patent/KR100519862B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR970049813A (ko) | 1997-07-29 |
US5684928A (en) | 1997-11-04 |
JP3992771B2 (ja) | 2007-10-17 |
EP0779576A1 (en) | 1997-06-18 |
KR100519862B1 (ko) | 2005-11-29 |
JPH09160781A (ja) | 1997-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1129843C (zh) | 使用组合的数据处理器***和指令*** | |
CN1052315C (zh) | 用于模糊逻辑规则计值的方法 | |
TWI279715B (en) | Method, system and machine-readable medium of translating and executing binary of program code, and apparatus to process binaries | |
CN1834899A (zh) | 使浮点格式实现指令级规格的设备及方法 | |
CN1009592B (zh) | 微处理器芯片上的堆栈式超高速缓冲存储器 | |
CN1655118A (zh) | 处理器和编译器 | |
JPH07191859A (ja) | データ処理システム | |
US20240061928A1 (en) | Apparatus and method for power virus protection in a processor | |
WO2017112182A1 (en) | Apparatus and method for accelerating graph analytics | |
CN1514352A (zh) | 多重高速缓冲存储器线写回和作废技术 | |
WO2018057258A1 (en) | Processors, methods, systems, and instruction conversion modules for instructions with compact instruction encodings | |
CN1788251A (zh) | 处理安全消息认证控制指令 | |
CN1278931A (zh) | 特别适于译码数字音频信号的数字信号处理器 | |
CN1381797A (zh) | 高速信息检索*** | |
CN1167299A (zh) | 用于评估模糊逻辑规则的电路和方法 | |
CN1133457A (zh) | 估计模糊逻辑规则的数据处理***及其方法 | |
CN100343799C (zh) | 产生流水线微处理器的早期状态标志的装置及方法 | |
KR100431726B1 (ko) | 부호달린나눗셈을이행하는방법 | |
CN115686636A (zh) | 用于动态调整流水线深度以改善执行等待时间的方法和装置 | |
CN1300675C (zh) | 在寄存器中使用硬件辅助功能处理多个任意规模数据元素的***和方法 | |
CN1237441C (zh) | 选择性控制存储器属性的装置及方法 | |
EP0772815A2 (en) | Method for performing signed division | |
CN1133994A (zh) | 执行有效模糊逻辑运算的数据处理***及其方法 | |
US20080209171A1 (en) | System and Method For Managing a Register-Based Stack of Operand Tags | |
CN1497432A (zh) | 微处理器标记寄存器屏蔽移入弹出装置和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C01 | Deemed withdrawal of patent application (patent law 1993) | ||
WD01 | Invention patent application deemed withdrawn after publication |